mirror of https://github.com/zeldaret/tmc.git
1815 lines
30 KiB
ArmAsm
1815 lines
30 KiB
ArmAsm
.include "asm/macros.inc"
|
|
|
|
.include "constants/constants.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_080692A0
|
|
sub_080692A0: @ 0x080692A0
|
|
push {lr}
|
|
adds r2, r0, #0
|
|
ldrb r0, [r2, #0xc]
|
|
cmp r0, #0
|
|
bne _080692C6
|
|
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, #0xf
|
|
bl sub_080042AC
|
|
b _080692CC
|
|
_080692C6:
|
|
adds r0, r2, #0
|
|
bl sub_080042B8
|
|
_080692CC:
|
|
pop {pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_080692D0
|
|
sub_080692D0: @ 0x080692D0
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r1, [r4, #0x10]
|
|
movs r0, #2
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080692F4
|
|
ldr r0, _080692F0 @ =gUnk_08111A8C
|
|
ldrb r1, [r4, #0xc]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldr r1, [r1]
|
|
adds r0, r4, #0
|
|
bl _call_via_r1
|
|
b _0806930A
|
|
.align 2, 0
|
|
_080692F0: .4byte gUnk_08111A8C
|
|
_080692F4:
|
|
ldr r0, _0806930C @ =gUnk_08111A80
|
|
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
|
|
_0806930A:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_0806930C: .4byte gUnk_08111A80
|
|
|
|
thumb_func_start sub_08069310
|
|
sub_08069310: @ 0x08069310
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl sub_08078778
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
adds r0, r4, #0
|
|
movs r1, #2
|
|
bl sub_080042AC
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08069328
|
|
sub_08069328: @ 0x08069328
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xf]
|
|
adds r0, #1
|
|
strb r0, [r4, #0xf]
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #0x10
|
|
bls _0806934E
|
|
movs r0, #0
|
|
strb r0, [r4, #0xf]
|
|
adds r0, r4, #0
|
|
movs r1, #0x28
|
|
movs r2, #0x28
|
|
bl sub_0806ED9C
|
|
cmp r0, #0
|
|
blt _0806934E
|
|
strb r0, [r4, #0x14]
|
|
_0806934E:
|
|
adds r0, r4, #0
|
|
adds r0, #0x58
|
|
ldrb r0, [r0]
|
|
ldrb r1, [r4, #0x14]
|
|
cmp r0, r1
|
|
beq _08069362
|
|
ldrb r1, [r4, #0x14]
|
|
adds r0, r4, #0
|
|
bl sub_080042AC
|
|
_08069362:
|
|
adds r0, r4, #0
|
|
adds r0, #0x39
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #0x18
|
|
asrs r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _0806938E
|
|
movs r0, #2
|
|
strb r0, [r4, #0xc]
|
|
adds r0, r4, #0
|
|
bl sub_0805E47C
|
|
adds r0, r4, #0
|
|
movs r1, #8
|
|
bl sub_080042AC
|
|
ldrb r0, [r4, #0xe]
|
|
movs r1, #0x90
|
|
lsls r1, r1, #5
|
|
adds r0, r0, r1
|
|
bl TextboxTryNoOverlap
|
|
_0806938E:
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_08069390
|
|
sub_08069390: @ 0x08069390
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl sub_080042B8
|
|
ldr r0, _080693C0 @ =gTextBox
|
|
ldrb r0, [r0]
|
|
movs r1, #0x7f
|
|
ands r1, r0
|
|
cmp r1, #0
|
|
bne _080693BC
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
adds r0, r4, #0
|
|
adds r0, #0x39
|
|
strb r1, [r0]
|
|
adds r0, r4, #0
|
|
bl sub_0805E584
|
|
ldrb r1, [r4, #0x14]
|
|
adds r0, r4, #0
|
|
bl sub_080042AC
|
|
_080693BC:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_080693C0: .4byte gTextBox
|
|
|
|
thumb_func_start sub_080693C4
|
|
sub_080693C4: @ 0x080693C4
|
|
push {lr}
|
|
movs r1, #1
|
|
strb r1, [r0, #0xc]
|
|
bl sub_0807DD50
|
|
pop {pc}
|
|
|
|
thumb_func_start sub_080693D0
|
|
sub_080693D0: @ 0x080693D0
|
|
push {r4, r5, r6, lr}
|
|
adds r5, r0, #0
|
|
movs r1, #0
|
|
bl sub_0807DD94
|
|
adds r0, r5, #0
|
|
adds r0, #0x58
|
|
ldrb r0, [r0]
|
|
cmp r0, #8
|
|
bne _08069422
|
|
adds r0, r5, #0
|
|
adds r0, #0x82
|
|
ldrh r0, [r0]
|
|
movs r1, #0xf
|
|
ands r1, r0
|
|
rsbs r0, r1, #0
|
|
orrs r0, r1
|
|
lsrs r6, r0, #0x1f
|
|
adds r4, r5, #0
|
|
adds r4, #0x5a
|
|
ldrb r0, [r4]
|
|
cmp r0, #1
|
|
bne _0806940C
|
|
movs r0, #0
|
|
strb r0, [r4]
|
|
ldr r1, _08069424 @ =0xFFF80000
|
|
adds r0, r5, #0
|
|
adds r2, r6, #0
|
|
bl sub_08069428
|
|
_0806940C:
|
|
ldrb r0, [r4]
|
|
cmp r0, #2
|
|
bne _08069422
|
|
movs r0, #0
|
|
strb r0, [r4]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0xc
|
|
adds r0, r5, #0
|
|
adds r2, r6, #0
|
|
bl sub_08069428
|
|
_08069422:
|
|
pop {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_08069424: .4byte 0xFFF80000
|
|
|
|
thumb_func_start sub_08069428
|
|
sub_08069428: @ 0x08069428
|
|
push {r4, r5, r6, r7, lr}
|
|
adds r5, r0, #0
|
|
adds r7, r1, #0
|
|
adds r6, r2, #0
|
|
movs r1, #4
|
|
movs r2, #0
|
|
bl CreateFX
|
|
adds r4, r0, #0
|
|
cmp r4, #0
|
|
beq _08069452
|
|
ldr r3, _0806947C @ =0xFFF00000
|
|
adds r0, r5, #0
|
|
adds r1, r4, #0
|
|
adds r2, r7, #0
|
|
bl PositionRelative
|
|
adds r0, r5, #0
|
|
adds r1, r4, #0
|
|
bl sub_0806FAB0
|
|
_08069452:
|
|
cmp r6, #0
|
|
beq _0806947A
|
|
adds r0, r5, #0
|
|
movs r1, #0x41
|
|
movs r2, #0
|
|
bl CreateFX
|
|
adds r4, r0, #0
|
|
cmp r4, #0
|
|
beq _0806947A
|
|
ldr r3, _0806947C @ =0xFFF00000
|
|
adds r0, r5, #0
|
|
adds r1, r4, #0
|
|
adds r2, r7, #0
|
|
bl PositionRelative
|
|
adds r0, r5, #0
|
|
adds r1, r4, #0
|
|
bl sub_0806FAB0
|
|
_0806947A:
|
|
pop {r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_0806947C: .4byte 0xFFF00000
|
|
|
|
thumb_func_start sub_08069480
|
|
sub_08069480: @ 0x08069480
|
|
push {lr}
|
|
bl sub_0801E99C
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
pop {pc}
|
|
|
|
thumb_func_start sub_0806948C
|
|
sub_0806948C: @ 0x0806948C
|
|
push {r4, lr}
|
|
adds r4, r1, #0
|
|
bl sub_08069480
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
bl sub_0801E7F4
|
|
str r0, [r4, #0x14]
|
|
ldr r2, _080694AC @ =gUnk_02033280
|
|
ldrb r1, [r2, #7]
|
|
movs r0, #1
|
|
orrs r0, r1
|
|
strb r0, [r2, #7]
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_080694AC: .4byte gUnk_02033280
|
|
|
|
thumb_func_start sub_080694B0
|
|
sub_080694B0: @ 0x080694B0
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
bl sub_08069480
|
|
lsls r0, r0, #0x18
|
|
lsrs r5, r0, #0x18
|
|
adds r0, r5, #0
|
|
bl sub_0801E7F4
|
|
cmp r0, #0
|
|
beq _080694CE
|
|
adds r0, r4, #0
|
|
bl sub_08078778
|
|
b _080694D6
|
|
_080694CE:
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
bl sub_08078784
|
|
_080694D6:
|
|
pop {r4, r5, pc}
|
|
|
|
thumb_func_start sub_080694D8
|
|
sub_080694D8: @ 0x080694D8
|
|
push {lr}
|
|
ldrb r1, [r0, #0xa]
|
|
lsls r1, r1, #3
|
|
ldr r2, _080694E8 @ =gUnk_08111A94
|
|
adds r1, r1, r2
|
|
bl sub_0806F1AC
|
|
pop {pc}
|
|
.align 2, 0
|
|
_080694E8: .4byte gUnk_08111A94
|
|
|
|
thumb_func_start sub_080694EC
|
|
sub_080694EC: @ 0x080694EC
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
movs r0, #4
|
|
strb r0, [r4, #0x14]
|
|
movs r5, #2
|
|
movs r0, #0x2f
|
|
bl sub_0801E7F4
|
|
cmp r0, #0
|
|
bne _08069502
|
|
movs r5, #8
|
|
_08069502:
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
bl sub_080042AC
|
|
adds r0, r4, #0
|
|
adds r0, #0x80
|
|
strh r5, [r0]
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08069514
|
|
sub_08069514: @ 0x08069514
|
|
push {lr}
|
|
adds r2, r0, #0
|
|
ldrb r0, [r2, #0xc]
|
|
cmp r0, #0
|
|
bne _0806953A
|
|
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 _08069540
|
|
_0806953A:
|
|
adds r0, r2, #0
|
|
bl sub_080042B8
|
|
_08069540:
|
|
pop {pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08069544
|
|
sub_08069544: @ 0x08069544
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r1, [r4, #0x10]
|
|
movs r0, #2
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08069568
|
|
ldr r0, _08069564 @ =gUnk_08111B98
|
|
ldrb r1, [r4, #0xc]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldr r1, [r1]
|
|
adds r0, r4, #0
|
|
bl _call_via_r1
|
|
b _0806957E
|
|
.align 2, 0
|
|
_08069564: .4byte gUnk_08111B98
|
|
_08069568:
|
|
ldr r0, _08069580 @ =gUnk_08111B88
|
|
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
|
|
_0806957E:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_08069580: .4byte gUnk_08111B88
|
|
|
|
thumb_func_start sub_08069584
|
|
sub_08069584: @ 0x08069584
|
|
push {lr}
|
|
adds r1, r0, #0
|
|
ldr r0, _08069598 @ =gUnk_030010A0
|
|
adds r0, #0x2c
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _0806959C
|
|
movs r0, #3
|
|
b _0806959E
|
|
.align 2, 0
|
|
_08069598: .4byte gUnk_030010A0
|
|
_0806959C:
|
|
movs r0, #1
|
|
_0806959E:
|
|
strb r0, [r1, #0xc]
|
|
adds r0, r1, #0
|
|
movs r1, #2
|
|
bl sub_080042AC
|
|
pop {pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_080695AC
|
|
sub_080695AC: @ 0x080695AC
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xf]
|
|
adds r0, #1
|
|
strb r0, [r4, #0xf]
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #0x10
|
|
bls _080695D2
|
|
movs r0, #0
|
|
strb r0, [r4, #0xf]
|
|
adds r0, r4, #0
|
|
movs r1, #0x28
|
|
movs r2, #0x28
|
|
bl sub_0806ED9C
|
|
cmp r0, #0
|
|
blt _080695D2
|
|
strb r0, [r4, #0x14]
|
|
_080695D2:
|
|
adds r0, r4, #0
|
|
adds r0, #0x58
|
|
ldrb r0, [r0]
|
|
ldrb r1, [r4, #0x14]
|
|
cmp r0, r1
|
|
beq _080695E6
|
|
ldrb r1, [r4, #0x14]
|
|
adds r0, r4, #0
|
|
bl sub_080042AC
|
|
_080695E6:
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_080695E8
|
|
sub_080695E8: @ 0x080695E8
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl sub_080042B8
|
|
ldr r0, _08069618 @ =gTextBox
|
|
ldrb r0, [r0]
|
|
movs r1, #0x7f
|
|
ands r1, r0
|
|
cmp r1, #0
|
|
bne _08069614
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
adds r0, r4, #0
|
|
adds r0, #0x39
|
|
strb r1, [r0]
|
|
adds r0, r4, #0
|
|
bl sub_0805E584
|
|
ldrb r1, [r4, #0x14]
|
|
adds r0, r4, #0
|
|
bl sub_080042AC
|
|
_08069614:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_08069618: .4byte gTextBox
|
|
|
|
thumb_func_start sub_0806961C
|
|
sub_0806961C: @ 0x0806961C
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldr r0, _08069638 @ =gUnk_030010A0
|
|
adds r0, #0x2c
|
|
ldrb r0, [r0]
|
|
cmp r0, #2
|
|
bne _08069630
|
|
adds r0, r4, #0
|
|
bl sub_080042B8
|
|
_08069630:
|
|
adds r0, r4, #0
|
|
bl sub_0806FD3C
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_08069638: .4byte gUnk_030010A0
|
|
|
|
thumb_func_start sub_0806963C
|
|
sub_0806963C: @ 0x0806963C
|
|
push {lr}
|
|
movs r3, #1
|
|
movs r1, #1
|
|
strb r1, [r0, #0xc]
|
|
ldrb r2, [r0, #0x18]
|
|
subs r1, #5
|
|
ands r1, r2
|
|
orrs r1, r3
|
|
strb r1, [r0, #0x18]
|
|
bl sub_0807DD50
|
|
pop {pc}
|
|
|
|
thumb_func_start sub_08069654
|
|
sub_08069654: @ 0x08069654
|
|
push {lr}
|
|
movs r1, #0
|
|
bl sub_0807DD94
|
|
pop {pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08069660
|
|
sub_08069660: @ 0x08069660
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldr r0, _0806967C @ =0x00002C1C
|
|
adds r1, r4, #0
|
|
bl TextboxNoOverlap
|
|
adds r0, r4, #0
|
|
bl sub_080696BC
|
|
ldr r1, _08069680 @ =gTextBox
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
str r0, [r1, #0x10]
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_0806967C: .4byte 0x00002C1C
|
|
_08069680: .4byte gTextBox
|
|
|
|
thumb_func_start sub_08069684
|
|
sub_08069684: @ 0x08069684
|
|
push {lr}
|
|
movs r0, #9
|
|
movs r1, #0x31
|
|
movs r2, #8
|
|
bl sub_0805EB00
|
|
cmp r0, #0
|
|
bne _080696AE
|
|
bl sub_0805E8D4
|
|
adds r1, r0, #0
|
|
cmp r1, #0
|
|
beq _080696AE
|
|
movs r0, #9
|
|
strb r0, [r1, #8]
|
|
movs r0, #0x31
|
|
strb r0, [r1, #9]
|
|
adds r0, r1, #0
|
|
movs r1, #8
|
|
bl sub_0805EA2C
|
|
_080696AE:
|
|
pop {pc}
|
|
|
|
thumb_func_start sub_080696B0
|
|
sub_080696B0: @ 0x080696B0
|
|
ldr r1, _080696B8 @ =gUnk_02034350
|
|
movs r0, #0
|
|
strb r0, [r1, #6]
|
|
bx lr
|
|
.align 2, 0
|
|
_080696B8: .4byte gUnk_02034350
|
|
|
|
thumb_func_start sub_080696BC
|
|
sub_080696BC: @ 0x080696BC
|
|
push {r4, r5, lr}
|
|
ldr r0, _08069710 @ =gUnk_02034350
|
|
ldrb r0, [r0, #7]
|
|
movs r5, #0
|
|
cmp r0, #0x70
|
|
ble _080696CA
|
|
movs r5, #1
|
|
_080696CA:
|
|
cmp r0, #0x72
|
|
ble _080696D0
|
|
movs r5, #2
|
|
_080696D0:
|
|
movs r0, #0x3e
|
|
bl GetProgressFlag
|
|
rsbs r1, r0, #0
|
|
orrs r1, r0
|
|
lsrs r4, r1, #0x1f
|
|
movs r0, #0x3f
|
|
bl GetProgressFlag
|
|
cmp r0, #0
|
|
beq _080696E8
|
|
movs r4, #2
|
|
_080696E8:
|
|
movs r0, #0x40
|
|
bl GetProgressFlag
|
|
cmp r0, #0
|
|
beq _080696F4
|
|
movs r4, #3
|
|
_080696F4:
|
|
movs r0, #0x41
|
|
bl GetProgressFlag
|
|
cmp r0, #0
|
|
beq _08069700
|
|
movs r4, #4
|
|
_08069700:
|
|
ldr r0, _08069714 @ =gUnk_08111BA0
|
|
lsls r1, r4, #1
|
|
adds r1, r1, r4
|
|
adds r1, r1, r5
|
|
lsls r1, r1, #1
|
|
adds r1, r1, r0
|
|
ldrh r0, [r1]
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
_08069710: .4byte gUnk_02034350
|
|
_08069714: .4byte gUnk_08111BA0
|
|
|
|
thumb_func_start sub_08069718
|
|
sub_08069718: @ 0x08069718
|
|
push {r4, r5, r6, r7, lr}
|
|
adds r4, r0, #0
|
|
adds r7, r1, #0
|
|
bl sub_080696BC
|
|
adds r6, r0, #0
|
|
ldr r0, _08069754 @ =gUnk_02002A40
|
|
adds r0, #0xc0
|
|
ldrh r0, [r0]
|
|
cmp r6, r0
|
|
bgt _08069764
|
|
ldr r5, _08069758 @ =gUnk_02034350
|
|
ldrb r0, [r5, #7]
|
|
bl sub_0801E7D0
|
|
cmp r0, #0x62
|
|
bhi _0806975C
|
|
rsbs r0, r6, #0
|
|
bl ModRupees
|
|
ldrb r1, [r5, #7]
|
|
movs r0, #0x5c
|
|
movs r2, #0
|
|
bl sub_080A7C18
|
|
movs r0, #0
|
|
strb r0, [r5, #6]
|
|
strb r0, [r5, #7]
|
|
movs r0, #1
|
|
b _0806976E
|
|
.align 2, 0
|
|
_08069754: .4byte gUnk_02002A40
|
|
_08069758: .4byte gUnk_02034350
|
|
_0806975C:
|
|
ldr r0, _08069760 @ =0x00002C1F
|
|
b _08069766
|
|
.align 2, 0
|
|
_08069760: .4byte 0x00002C1F
|
|
_08069764:
|
|
ldr r0, _0806977C @ =0x00002C1E
|
|
_08069766:
|
|
adds r1, r4, #0
|
|
bl TextboxNoOverlap
|
|
movs r0, #0
|
|
_0806976E:
|
|
str r0, [r7, #0x14]
|
|
ldr r2, _08069780 @ =gUnk_02033280
|
|
ldrb r1, [r2, #7]
|
|
movs r0, #1
|
|
orrs r0, r1
|
|
strb r0, [r2, #7]
|
|
pop {r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_0806977C: .4byte 0x00002C1E
|
|
_08069780: .4byte gUnk_02033280
|
|
|
|
thumb_func_start sub_08069784
|
|
sub_08069784: @ 0x08069784
|
|
push {lr}
|
|
adds r2, r0, #0
|
|
ldrb r1, [r2, #0x10]
|
|
movs r0, #2
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0806979A
|
|
adds r0, r2, #0
|
|
bl sub_08069838
|
|
b _080697A0
|
|
_0806979A:
|
|
adds r0, r2, #0
|
|
bl sub_080697A4
|
|
_080697A0:
|
|
pop {pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_080697A4
|
|
sub_080697A4: @ 0x080697A4
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldr r1, _080697C0 @ =gUnk_08111C48
|
|
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
|
|
_080697C0: .4byte gUnk_08111C48
|
|
|
|
thumb_func_start sub_080697C4
|
|
sub_080697C4: @ 0x080697C4
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldr r1, _080697E8 @ =gUnk_08111C3C
|
|
bl sub_0806FDEC
|
|
cmp r0, #0
|
|
beq _080697E4
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
adds r0, r4, #0
|
|
movs r1, #2
|
|
bl sub_08004260
|
|
adds r0, r4, #0
|
|
bl sub_08078778
|
|
_080697E4:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_080697E8: .4byte gUnk_08111C3C
|
|
|
|
thumb_func_start sub_080697EC
|
|
sub_080697EC: @ 0x080697EC
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
movs r1, #0x20
|
|
movs r2, #0x20
|
|
bl sub_0806ED9C
|
|
adds r1, r0, #0
|
|
cmp r1, #0
|
|
blt _0806981E
|
|
ldrb r0, [r4, #0xf]
|
|
cmp r0, #0
|
|
bne _0806981A
|
|
movs r0, #0x10
|
|
strb r0, [r4, #0xf]
|
|
adds r0, r4, #0
|
|
adds r0, #0x58
|
|
ldrb r0, [r0]
|
|
cmp r0, r1
|
|
beq _0806981E
|
|
adds r0, r4, #0
|
|
bl sub_08004260
|
|
b _0806981E
|
|
_0806981A:
|
|
subs r0, #1
|
|
strb r0, [r4, #0xf]
|
|
_0806981E:
|
|
adds r1, r4, #0
|
|
adds r1, #0x39
|
|
movs r0, #0
|
|
ldrsb r0, [r1, r0]
|
|
cmp r0, #0
|
|
beq _08069834
|
|
movs r0, #0
|
|
strb r0, [r1]
|
|
adds r0, r4, #0
|
|
bl sub_08069888
|
|
_08069834:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08069838
|
|
sub_08069838: @ 0x08069838
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
ldrb r5, [r4, #0xc]
|
|
cmp r5, #0
|
|
bne _08069862
|
|
ldr r1, _08069884 @ =gUnk_08111C3C
|
|
bl sub_0806FDEC
|
|
cmp r0, #0
|
|
beq _08069880
|
|
ldrb r0, [r4, #0xc]
|
|
adds r0, #1
|
|
strb r0, [r4, #0xc]
|
|
adds r0, r4, #0
|
|
adds r0, #0x68
|
|
strb r5, [r0]
|
|
adds r0, #1
|
|
strb r5, [r0]
|
|
adds r0, r4, #0
|
|
bl sub_0807DD64
|
|
_08069862:
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
bl sub_0807DD94
|
|
adds r1, r4, #0
|
|
adds r1, #0x39
|
|
movs r0, #0
|
|
ldrsb r0, [r1, r0]
|
|
cmp r0, #0
|
|
beq _08069880
|
|
movs r0, #0
|
|
strb r0, [r1]
|
|
adds r0, r4, #0
|
|
bl sub_08069888
|
|
_08069880:
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
_08069884: .4byte gUnk_08111C3C
|
|
|
|
thumb_func_start sub_08069888
|
|
sub_08069888: @ 0x08069888
|
|
push {r4, r5, lr}
|
|
adds r5, r0, #0
|
|
movs r0, #0x47
|
|
bl GetProgressFlag
|
|
cmp r0, #0
|
|
bne _080698A0
|
|
movs r4, #0
|
|
movs r0, #0x47
|
|
bl sub_0807CD04
|
|
b _08069906
|
|
_080698A0:
|
|
movs r0, #0x2b
|
|
bl GetProgressFlag
|
|
cmp r0, #0
|
|
bne _080698C2
|
|
movs r0, #0x2c
|
|
bl GetProgressFlag
|
|
cmp r0, #0
|
|
bne _080698C2
|
|
movs r0, #0x2d
|
|
bl GetProgressFlag
|
|
cmp r0, #0
|
|
bne _080698C2
|
|
movs r4, #1
|
|
b _08069906
|
|
_080698C2:
|
|
movs r0, #0x18
|
|
bl GetProgressFlag
|
|
cmp r0, #0
|
|
bne _080698D0
|
|
movs r4, #2
|
|
b _08069906
|
|
_080698D0:
|
|
movs r0, #0x48
|
|
bl GetProgressFlag
|
|
cmp r0, #0
|
|
bne _080698E4
|
|
movs r4, #3
|
|
movs r0, #0x48
|
|
bl sub_0807CD04
|
|
b _08069906
|
|
_080698E4:
|
|
movs r0, #0x2e
|
|
bl GetProgressFlag
|
|
cmp r0, #0
|
|
bne _08069904
|
|
movs r0, #0x2f
|
|
bl GetProgressFlag
|
|
cmp r0, #0
|
|
bne _08069904
|
|
movs r0, #0x30
|
|
bl GetProgressFlag
|
|
movs r4, #4
|
|
cmp r0, #0
|
|
beq _08069906
|
|
_08069904:
|
|
movs r4, #5
|
|
_08069906:
|
|
ldr r0, _08069918 @ =gUnk_08111C50
|
|
lsls r1, r4, #1
|
|
adds r1, r1, r0
|
|
ldrh r0, [r1]
|
|
adds r1, r5, #0
|
|
bl TextboxNoOverlap
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
_08069918: .4byte gUnk_08111C50
|
|
|
|
thumb_func_start sub_0806991C
|
|
sub_0806991C: @ 0x0806991C
|
|
push {r4, r5, r6, lr}
|
|
adds r5, r0, #0
|
|
adds r4, r1, #0
|
|
bl Random
|
|
movs r1, #0x1f
|
|
ands r0, r1
|
|
adds r0, #0x3c
|
|
adds r1, r5, #0
|
|
adds r1, #0x68
|
|
movs r3, #0
|
|
strb r0, [r1]
|
|
adds r0, r5, #0
|
|
adds r0, #0x69
|
|
movs r1, #0
|
|
ldrsb r1, [r0, r1]
|
|
lsls r1, r1, #2
|
|
ldr r0, _0806999C @ =gUnk_08111C5C
|
|
adds r1, r1, r0
|
|
ldr r2, _080699A0 @ =gRoomControls
|
|
ldrh r0, [r1]
|
|
ldrh r6, [r2, #6]
|
|
adds r0, r0, r6
|
|
strh r0, [r4, #0x1e]
|
|
ldrh r0, [r1, #2]
|
|
ldrh r2, [r2, #8]
|
|
adds r0, r0, r2
|
|
strh r0, [r4, #0x22]
|
|
movs r0, #8
|
|
strb r0, [r4, #0x19]
|
|
ldr r0, [r4, #8]
|
|
movs r1, #2
|
|
orrs r0, r1
|
|
str r0, [r4, #8]
|
|
str r3, [r4, #0x14]
|
|
movs r1, #0x1e
|
|
ldrsh r0, [r4, r1]
|
|
movs r2, #0x2e
|
|
ldrsh r1, [r5, r2]
|
|
subs r0, r0, r1
|
|
movs r3, #0x22
|
|
ldrsh r1, [r4, r3]
|
|
movs r6, #0x32
|
|
ldrsh r2, [r5, r6]
|
|
subs r1, r1, r2
|
|
bl sub_080045DA
|
|
strb r0, [r5, #0x15]
|
|
ldrb r2, [r5, #0x14]
|
|
movs r1, #0x80
|
|
ands r1, r2
|
|
ldr r2, _080699A4 @ =gUnk_08111C74
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x1c
|
|
adds r0, r0, r2
|
|
ldrb r0, [r0]
|
|
orrs r1, r0
|
|
strb r1, [r5, #0x14]
|
|
ldr r2, _080699A8 @ =gUnk_02033280
|
|
ldrb r1, [r2, #7]
|
|
movs r0, #1
|
|
orrs r0, r1
|
|
strb r0, [r2, #7]
|
|
pop {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_0806999C: .4byte gUnk_08111C5C
|
|
_080699A0: .4byte gRoomControls
|
|
_080699A4: .4byte gUnk_08111C74
|
|
_080699A8: .4byte gUnk_02033280
|
|
|
|
thumb_func_start sub_080699AC
|
|
sub_080699AC: @ 0x080699AC
|
|
push {r4, r5, r6, lr}
|
|
adds r5, r0, #0
|
|
adds r4, r1, #0
|
|
bl Random
|
|
movs r1, #0x1f
|
|
ands r0, r1
|
|
adds r0, #0x3c
|
|
adds r1, r5, #0
|
|
adds r1, #0x68
|
|
movs r3, #0
|
|
strb r0, [r1]
|
|
adds r0, r5, #0
|
|
adds r0, #0x69
|
|
movs r1, #0
|
|
ldrsb r1, [r0, r1]
|
|
lsls r1, r1, #2
|
|
ldr r0, _08069A2C @ =gUnk_08111C84
|
|
adds r1, r1, r0
|
|
ldr r2, _08069A30 @ =gRoomControls
|
|
ldrh r0, [r1]
|
|
ldrh r6, [r2, #6]
|
|
adds r0, r0, r6
|
|
strh r0, [r4, #0x1e]
|
|
ldrh r0, [r1, #2]
|
|
ldrh r2, [r2, #8]
|
|
adds r0, r0, r2
|
|
strh r0, [r4, #0x22]
|
|
movs r0, #8
|
|
strb r0, [r4, #0x19]
|
|
ldr r0, [r4, #8]
|
|
movs r1, #2
|
|
orrs r0, r1
|
|
str r0, [r4, #8]
|
|
str r3, [r4, #0x14]
|
|
movs r1, #0x1e
|
|
ldrsh r0, [r4, r1]
|
|
movs r2, #0x2e
|
|
ldrsh r1, [r5, r2]
|
|
subs r0, r0, r1
|
|
movs r3, #0x22
|
|
ldrsh r1, [r4, r3]
|
|
movs r6, #0x32
|
|
ldrsh r2, [r5, r6]
|
|
subs r1, r1, r2
|
|
bl sub_080045DA
|
|
strb r0, [r5, #0x15]
|
|
ldrb r2, [r5, #0x14]
|
|
movs r1, #0x80
|
|
ands r1, r2
|
|
ldr r2, _08069A34 @ =gUnk_08111C8C
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x1c
|
|
adds r0, r0, r2
|
|
ldrb r0, [r0]
|
|
orrs r1, r0
|
|
strb r1, [r5, #0x14]
|
|
ldr r2, _08069A38 @ =gUnk_02033280
|
|
ldrb r1, [r2, #7]
|
|
movs r0, #1
|
|
orrs r0, r1
|
|
strb r0, [r2, #7]
|
|
pop {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_08069A2C: .4byte gUnk_08111C84
|
|
_08069A30: .4byte gRoomControls
|
|
_08069A34: .4byte gUnk_08111C8C
|
|
_08069A38: .4byte gUnk_02033280
|
|
|
|
thumb_func_start sub_08069A3C
|
|
sub_08069A3C: @ 0x08069A3C
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl Random
|
|
ldr r2, _08069A5C @ =gUnk_08111C9C
|
|
movs r1, #1
|
|
ands r1, r0
|
|
adds r4, #0x69
|
|
movs r0, #0
|
|
ldrsb r0, [r4, r0]
|
|
lsls r0, r0, #1
|
|
adds r1, r1, r0
|
|
adds r1, r1, r2
|
|
ldrb r0, [r1]
|
|
strb r0, [r4]
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_08069A5C: .4byte gUnk_08111C9C
|
|
|
|
thumb_func_start sub_08069A60
|
|
sub_08069A60: @ 0x08069A60
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl Random
|
|
ldr r2, _08069A80 @ =gUnk_08111CA8
|
|
movs r1, #1
|
|
ands r1, r0
|
|
adds r4, #0x69
|
|
movs r0, #0
|
|
ldrsb r0, [r4, r0]
|
|
lsls r0, r0, #1
|
|
adds r1, r1, r0
|
|
adds r1, r1, r2
|
|
ldrb r0, [r1]
|
|
strb r0, [r4]
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_08069A80: .4byte gUnk_08111CA8
|
|
|
|
thumb_func_start sub_08069A84
|
|
sub_08069A84: @ 0x08069A84
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl Random
|
|
ldr r2, _08069AA4 @ =gUnk_08111CB4
|
|
movs r1, #1
|
|
ands r1, r0
|
|
adds r4, #0x69
|
|
movs r0, #0
|
|
ldrsb r0, [r4, r0]
|
|
lsls r0, r0, #1
|
|
adds r1, r1, r0
|
|
adds r1, r1, r2
|
|
ldrb r0, [r1]
|
|
strb r0, [r4]
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_08069AA4: .4byte gUnk_08111CB4
|
|
|
|
thumb_func_start sub_08069AA8
|
|
sub_08069AA8: @ 0x08069AA8
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl Random
|
|
ldr r2, _08069AC8 @ =gUnk_08111CB8
|
|
movs r1, #1
|
|
ands r1, r0
|
|
adds r4, #0x69
|
|
movs r0, #0
|
|
ldrsb r0, [r4, r0]
|
|
lsls r0, r0, #1
|
|
adds r1, r1, r0
|
|
adds r1, r1, r2
|
|
ldrb r0, [r1]
|
|
strb r0, [r4]
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_08069AC8: .4byte gUnk_08111CB8
|
|
|
|
thumb_func_start sub_08069ACC
|
|
sub_08069ACC: @ 0x08069ACC
|
|
push {lr}
|
|
adds r2, r1, #0
|
|
adds r0, #0x68
|
|
ldrb r1, [r0]
|
|
subs r1, #1
|
|
strb r1, [r0]
|
|
lsls r1, r1, #0x18
|
|
cmp r1, #0
|
|
bgt _08069AE2
|
|
movs r0, #1
|
|
b _08069AE4
|
|
_08069AE2:
|
|
movs r0, #0
|
|
_08069AE4:
|
|
str r0, [r2, #0x14]
|
|
pop {pc}
|
|
|
|
thumb_func_start sub_08069AE8
|
|
sub_08069AE8: @ 0x08069AE8
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
adds r0, #0x5a
|
|
ldrb r0, [r0]
|
|
movs r2, #7
|
|
ands r2, r0
|
|
adds r2, #0xf
|
|
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}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08069B1C
|
|
sub_08069B1C: @ 0x08069B1C
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldr r1, _08069B40 @ =gUnk_08111D88
|
|
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
|
|
adds r0, r4, #0
|
|
bl sub_08069FE8
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_08069B40: .4byte gUnk_08111D88
|
|
|
|
thumb_func_start sub_08069B44
|
|
sub_08069B44: @ 0x08069B44
|
|
push {r4, r5, r6, lr}
|
|
adds r5, r0, #0
|
|
bl sub_08069EF0
|
|
cmp r0, #0
|
|
beq _08069C30
|
|
adds r0, r5, #0
|
|
bl sub_0805ACC0
|
|
cmp r0, #0
|
|
bne _08069B64
|
|
movs r0, #0x2e
|
|
ldrsh r1, [r5, r0]
|
|
movs r2, #0x32
|
|
ldrsh r4, [r5, r2]
|
|
b _08069B68
|
|
_08069B64:
|
|
lsrs r1, r0, #0x10
|
|
adds r4, r0, #0
|
|
_08069B68:
|
|
ldrb r0, [r5, #0xe]
|
|
movs r3, #0x20
|
|
cmp r0, #0
|
|
beq _08069B72
|
|
adds r3, r0, #0
|
|
_08069B72:
|
|
subs r0, r1, r3
|
|
adds r2, r5, #0
|
|
adds r2, #0x6e
|
|
strh r0, [r2]
|
|
adds r1, r1, r3
|
|
adds r0, r5, #0
|
|
adds r0, #0x6c
|
|
strh r1, [r0]
|
|
adds r1, r4, #0
|
|
subs r1, #8
|
|
adds r0, #4
|
|
strh r1, [r0]
|
|
adds r0, r4, #0
|
|
adds r0, #8
|
|
adds r2, #4
|
|
strh r0, [r2]
|
|
movs r0, #0x80
|
|
lsls r0, r0, #1
|
|
strh r0, [r5, #0x24]
|
|
movs r0, #0x1e
|
|
strb r0, [r5, #0xe]
|
|
movs r4, #2
|
|
strb r4, [r5, #0x14]
|
|
adds r1, r5, #0
|
|
adds r1, #0x6a
|
|
movs r0, #0xff
|
|
strb r0, [r1]
|
|
adds r0, r5, #0
|
|
bl sub_0801E99C
|
|
adds r1, r5, #0
|
|
adds r1, #0x74
|
|
strb r0, [r1]
|
|
adds r0, r5, #0
|
|
movs r1, #2
|
|
bl sub_0805E3A0
|
|
adds r0, r5, #0
|
|
movs r1, #0xa
|
|
bl sub_080042AC
|
|
ldrb r0, [r5, #0x10]
|
|
ands r4, r0
|
|
cmp r4, #0
|
|
beq _08069BD2
|
|
adds r0, r5, #0
|
|
bl sub_0807DD50
|
|
_08069BD2:
|
|
ldrb r0, [r5, #0xa]
|
|
cmp r0, #0
|
|
bne _08069BF2
|
|
ldr r0, _08069C34 @ =gLinkState
|
|
ldr r0, [r0, #0x30]
|
|
movs r1, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08069BF2
|
|
movs r0, #0x36
|
|
bl GetInventoryValue
|
|
cmp r0, #2
|
|
beq _08069BF2
|
|
movs r0, #4
|
|
strb r0, [r5, #0xc]
|
|
_08069BF2:
|
|
ldrb r0, [r5, #0xa]
|
|
cmp r0, #2
|
|
bne _08069C30
|
|
movs r0, #0xcf
|
|
bl sub_0807CBD0
|
|
cmp r0, #0
|
|
bne _08069C30
|
|
ldr r0, _08069C38 @ =0x00004072
|
|
movs r6, #0x2e
|
|
ldrsh r1, [r5, r6]
|
|
ldr r3, _08069C3C @ =gRoomControls
|
|
ldrh r2, [r3, #6]
|
|
subs r1, r1, r2
|
|
asrs r1, r1, #4
|
|
movs r4, #0x3f
|
|
ands r1, r4
|
|
movs r6, #0x32
|
|
ldrsh r2, [r5, r6]
|
|
ldrh r3, [r3, #8]
|
|
adds r3, #8
|
|
subs r2, r2, r3
|
|
asrs r2, r2, #4
|
|
ands r2, r4
|
|
lsls r2, r2, #6
|
|
orrs r1, r2
|
|
adds r2, r5, #0
|
|
adds r2, #0x38
|
|
ldrb r2, [r2]
|
|
bl sub_0800015E
|
|
_08069C30:
|
|
pop {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_08069C34: .4byte gLinkState
|
|
_08069C38: .4byte 0x00004072
|
|
_08069C3C: .4byte gRoomControls
|
|
|
|
thumb_func_start sub_08069C40
|
|
sub_08069C40: @ 0x08069C40
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl sub_080042B8
|
|
adds r0, r4, #0
|
|
bl sub_08069F90
|
|
cmp r0, #0
|
|
beq _08069C80
|
|
ldr r0, _08069C68 @ =gLinkState
|
|
ldr r0, [r0, #0x30]
|
|
movs r1, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08069C6C
|
|
adds r0, r4, #0
|
|
bl sub_08069CB8
|
|
b _08069C7A
|
|
.align 2, 0
|
|
_08069C68: .4byte gLinkState
|
|
_08069C6C:
|
|
adds r0, r4, #0
|
|
bl sub_0806EDC4
|
|
strb r0, [r4, #0x14]
|
|
adds r0, r4, #0
|
|
bl sub_08069D00
|
|
_08069C7A:
|
|
movs r0, #0x1e
|
|
strb r0, [r4, #0xe]
|
|
b _08069CB2
|
|
_08069C80:
|
|
ldrb r0, [r4, #0xe]
|
|
subs r0, #1
|
|
strb r0, [r4, #0xe]
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _08069CB2
|
|
movs r0, #2
|
|
strb r0, [r4, #0xc]
|
|
bl Random
|
|
movs r1, #0x1f
|
|
ands r0, r1
|
|
adds r0, #0x1e
|
|
strb r0, [r4, #0xe]
|
|
bl Random
|
|
ldr r2, _08069CB4 @ =gUnk_08111DA8
|
|
movs r1, #7
|
|
ands r1, r0
|
|
adds r1, r1, r2
|
|
ldrb r0, [r1]
|
|
strb r0, [r4, #0x15]
|
|
adds r0, r4, #0
|
|
bl sub_08069F6C
|
|
_08069CB2:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_08069CB4: .4byte gUnk_08111DA8
|
|
|
|
thumb_func_start sub_08069CB8
|
|
sub_08069CB8: @ 0x08069CB8
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
ldr r1, _08069CF8 @ =gLinkEntity
|
|
bl sub_080045C4
|
|
ldr r2, _08069CFC @ =gUnk_08111DB0
|
|
ldrb r1, [r4, #0x14]
|
|
lsls r1, r1, #5
|
|
adds r0, r0, r1
|
|
adds r0, r0, r2
|
|
ldrb r1, [r0]
|
|
lsrs r0, r1, #6
|
|
strb r0, [r4, #0x14]
|
|
movs r0, #0x3f
|
|
ands r1, r0
|
|
adds r5, r4, #0
|
|
adds r5, #0x6b
|
|
strb r1, [r5]
|
|
adds r0, r4, #0
|
|
bl sub_0806A028
|
|
adds r0, r4, #0
|
|
adds r0, #0x58
|
|
ldrb r0, [r0]
|
|
ldrb r1, [r5]
|
|
cmp r0, r1
|
|
beq _08069CF6
|
|
ldrb r1, [r5]
|
|
adds r0, r4, #0
|
|
bl sub_080042AC
|
|
_08069CF6:
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
_08069CF8: .4byte gLinkEntity
|
|
_08069CFC: .4byte gUnk_08111DB0
|
|
|
|
thumb_func_start sub_08069D00
|
|
sub_08069D00: @ 0x08069D00
|
|
push {r4, r5, r6, r7, lr}
|
|
adds r4, r0, #0
|
|
adds r5, r4, #0
|
|
adds r5, #0x6b
|
|
movs r7, #8
|
|
strb r7, [r5]
|
|
bl sub_0806A028
|
|
adds r6, r4, #0
|
|
adds r6, #0x58
|
|
ldrb r0, [r6]
|
|
cmp r0, #0x1f
|
|
bls _08069D2A
|
|
adds r0, r4, #0
|
|
adds r0, #0x5a
|
|
ldrb r1, [r0]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08069D4E
|
|
strb r7, [r5]
|
|
_08069D2A:
|
|
bl Random
|
|
ldr r1, _08069D50 @ =0x000001FF
|
|
ands r1, r0
|
|
cmp r1, #2
|
|
bhi _08069D3C
|
|
adds r0, r4, #0
|
|
bl sub_08069FBC
|
|
_08069D3C:
|
|
ldrb r2, [r6]
|
|
ldrb r1, [r5]
|
|
ldrb r0, [r4, #0x14]
|
|
adds r1, r1, r0
|
|
cmp r2, r1
|
|
beq _08069D4E
|
|
adds r0, r4, #0
|
|
bl sub_080042AC
|
|
_08069D4E:
|
|
pop {r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_08069D50: .4byte 0x000001FF
|
|
|
|
thumb_func_start sub_08069D54
|
|
sub_08069D54: @ 0x08069D54
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl sub_08069F90
|
|
cmp r0, #0
|
|
bne _08069DD8
|
|
ldrb r0, [r4, #0xe]
|
|
subs r0, #1
|
|
strb r0, [r4, #0xe]
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _08069DD8
|
|
adds r0, r4, #0
|
|
bl sub_080042B8
|
|
adds r0, r4, #0
|
|
bl sub_080AEF88
|
|
ldrh r1, [r4, #0x2a]
|
|
movs r0, #0x2e
|
|
ldrsh r2, [r4, r0]
|
|
adds r0, r4, #0
|
|
adds r0, #0x6e
|
|
ldrh r0, [r0]
|
|
cmp r2, r0
|
|
bge _08069D92
|
|
adds r0, #1
|
|
strh r0, [r4, #0x2e]
|
|
movs r1, #0xe0
|
|
lsls r1, r1, #4
|
|
b _08069DA4
|
|
_08069D92:
|
|
adds r0, r4, #0
|
|
adds r0, #0x6c
|
|
ldrh r0, [r0]
|
|
cmp r2, r0
|
|
ble _08069DA4
|
|
subs r0, #1
|
|
strh r0, [r4, #0x2e]
|
|
movs r1, #0xe0
|
|
lsls r1, r1, #8
|
|
_08069DA4:
|
|
movs r0, #0x32
|
|
ldrsh r2, [r4, r0]
|
|
adds r0, r4, #0
|
|
adds r0, #0x70
|
|
ldrh r0, [r0]
|
|
cmp r2, r0
|
|
bge _08069DBA
|
|
adds r0, #1
|
|
strh r0, [r4, #0x32]
|
|
movs r1, #0xe
|
|
b _08069DCA
|
|
_08069DBA:
|
|
adds r0, r4, #0
|
|
adds r0, #0x72
|
|
ldrh r0, [r0]
|
|
cmp r2, r0
|
|
ble _08069DCA
|
|
subs r0, #1
|
|
strh r0, [r4, #0x32]
|
|
movs r1, #0xe0
|
|
_08069DCA:
|
|
adds r0, r4, #0
|
|
bl sub_0800417E
|
|
adds r0, r4, #0
|
|
bl sub_08069F6C
|
|
b _08069DF6
|
|
_08069DD8:
|
|
adds r0, r4, #0
|
|
bl sub_08069F90
|
|
cmp r0, #0
|
|
beq _08069DE6
|
|
movs r0, #1
|
|
b _08069DE8
|
|
_08069DE6:
|
|
movs r0, #3
|
|
_08069DE8:
|
|
strb r0, [r4, #0xc]
|
|
bl Random
|
|
movs r1, #0x1f
|
|
ands r0, r1
|
|
adds r0, #0x1e
|
|
strb r0, [r4, #0xe]
|
|
_08069DF6:
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_08069DF8
|
|
sub_08069DF8: @ 0x08069DF8
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl sub_080042B8
|
|
adds r0, r4, #0
|
|
bl sub_08069F90
|
|
cmp r0, #0
|
|
beq _08069E0E
|
|
movs r0, #1
|
|
b _08069E34
|
|
_08069E0E:
|
|
ldrb r0, [r4, #0xe]
|
|
subs r0, #1
|
|
strb r0, [r4, #0xe]
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _08069E22
|
|
adds r0, r4, #0
|
|
bl sub_08069D00
|
|
b _08069E42
|
|
_08069E22:
|
|
bl Random
|
|
movs r1, #0xff
|
|
ands r1, r0
|
|
cmp r1, #0x2f
|
|
bhi _08069E32
|
|
movs r0, #2
|
|
b _08069E34
|
|
_08069E32:
|
|
movs r0, #3
|
|
_08069E34:
|
|
strb r0, [r4, #0xc]
|
|
bl Random
|
|
movs r1, #0x1f
|
|
ands r0, r1
|
|
adds r0, #0x1e
|
|
strb r0, [r4, #0xe]
|
|
_08069E42:
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_08069E44
|
|
sub_08069E44: @ 0x08069E44
|
|
push {lr}
|
|
movs r1, #0
|
|
bl sub_0807DD94
|
|
pop {pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08069E50
|
|
sub_08069E50: @ 0x08069E50
|
|
push {r4, r5, r6, r7, lr}
|
|
adds r4, r0, #0
|
|
bl sub_0806EDC4
|
|
strb r0, [r4, #0x14]
|
|
adds r5, r4, #0
|
|
adds r5, #0x6b
|
|
movs r7, #8
|
|
strb r7, [r5]
|
|
adds r0, r4, #0
|
|
bl sub_0806A028
|
|
adds r0, r4, #0
|
|
bl sub_080042B8
|
|
adds r6, r4, #0
|
|
adds r6, #0x58
|
|
ldrb r0, [r6]
|
|
cmp r0, #0x1f
|
|
bls _08069E88
|
|
adds r0, r4, #0
|
|
adds r0, #0x5a
|
|
ldrb r1, [r0]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08069EC8
|
|
strb r7, [r5]
|
|
_08069E88:
|
|
adds r0, r4, #0
|
|
bl sub_08069FBC
|
|
ldrb r2, [r6]
|
|
ldrb r1, [r5]
|
|
ldrb r0, [r4, #0x14]
|
|
adds r1, r1, r0
|
|
cmp r2, r1
|
|
beq _08069EA0
|
|
adds r0, r4, #0
|
|
bl sub_080042AC
|
|
_08069EA0:
|
|
movs r0, #0x36
|
|
bl GetInventoryValue
|
|
cmp r0, #2
|
|
bne _08069EC8
|
|
movs r0, #7
|
|
strb r0, [r4, #0xc]
|
|
adds r0, r4, #0
|
|
movs r1, #0x29
|
|
bl sub_080042AC
|
|
adds r0, r4, #0
|
|
bl sub_080788E0
|
|
movs r0, #0xd1
|
|
bl sub_08004488
|
|
movs r0, #0xcd
|
|
bl sub_08004488
|
|
_08069EC8:
|
|
pop {r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08069ECC
|
|
sub_08069ECC: @ 0x08069ECC
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl sub_0806F148
|
|
cmp r0, #0
|
|
beq _08069EDC
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
_08069EDC:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08069EE0
|
|
sub_08069EE0: @ 0x08069EE0
|
|
push {lr}
|
|
bl sub_080042B8
|
|
pop {pc}
|
|
|
|
thumb_func_start sub_08069EE8
|
|
sub_08069EE8: @ 0x08069EE8
|
|
movs r1, #5
|
|
strb r1, [r0, #0xc]
|
|
bx lr
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08069EF0
|
|
sub_08069EF0: @ 0x08069EF0
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xa]
|
|
lsls r1, r0, #1
|
|
adds r1, r1, r0
|
|
lsls r1, r1, #2
|
|
ldr r0, _08069F20 @ =gUnk_08111D58
|
|
adds r1, r1, r0
|
|
adds r0, r4, #0
|
|
bl sub_0806FDEC
|
|
cmp r0, #0
|
|
beq _08069F28
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
ldr r1, _08069F24 @ =gUnk_08111E30
|
|
ldrb r0, [r4, #0xa]
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
adds r0, r4, #0
|
|
adds r0, #0x68
|
|
strh r1, [r0]
|
|
movs r0, #1
|
|
b _08069F2A
|
|
.align 2, 0
|
|
_08069F20: .4byte gUnk_08111D58
|
|
_08069F24: .4byte gUnk_08111E30
|
|
_08069F28:
|
|
movs r0, #0
|
|
_08069F2A:
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_08069F2C
|
|
sub_08069F2C: @ 0x08069F2C
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
adds r0, #0x5a
|
|
ldrb r2, [r0]
|
|
movs r0, #0x81
|
|
rsbs r0, r0, #0
|
|
ands r2, r0
|
|
cmp r2, #0
|
|
beq _08069F46
|
|
adds r0, r4, #0
|
|
adds r0, #0x68
|
|
ldrh r0, [r0]
|
|
adds r2, r2, r0
|
|
_08069F46:
|
|
subs r2, #1
|
|
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_08069F6C
|
|
sub_08069F6C: @ 0x08069F6C
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0x15]
|
|
bl sub_0806F5A4
|
|
strb r0, [r4, #0x14]
|
|
ldrb r0, [r4, #0x14]
|
|
adds r1, r0, #4
|
|
adds r0, r4, #0
|
|
adds r0, #0x58
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
beq _08069F8C
|
|
adds r0, r4, #0
|
|
bl sub_080042AC
|
|
_08069F8C:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08069F90
|
|
sub_08069F90: @ 0x08069F90
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xa]
|
|
cmp r0, #2
|
|
bne _08069FA8
|
|
movs r0, #0xcf
|
|
bl sub_0807CBD0
|
|
cmp r0, #0
|
|
bne _08069FA8
|
|
movs r0, #1
|
|
b _08069FB4
|
|
_08069FA8:
|
|
ldr r1, _08069FB8 @ =gLinkEntity
|
|
adds r0, r4, #0
|
|
movs r2, #0x14
|
|
movs r3, #0x14
|
|
bl sub_080041A0
|
|
_08069FB4:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_08069FB8: .4byte gLinkEntity
|
|
|
|
thumb_func_start sub_08069FBC
|
|
sub_08069FBC: @ 0x08069FBC
|
|
push {lr}
|
|
adds r2, r0, #0
|
|
ldr r0, _08069FE4 @ =gLinkState
|
|
ldr r0, [r0, #0x30]
|
|
movs r1, #0x80
|
|
ands r0, r1
|
|
movs r1, #0x20
|
|
cmp r0, #0
|
|
beq _08069FD0
|
|
movs r1, #0x24
|
|
_08069FD0:
|
|
ldrb r0, [r2, #0x14]
|
|
cmp r0, #1
|
|
beq _08069FDA
|
|
cmp r0, #3
|
|
bne _08069FE0
|
|
_08069FDA:
|
|
adds r0, r2, #0
|
|
adds r0, #0x6b
|
|
strb r1, [r0]
|
|
_08069FE0:
|
|
pop {pc}
|
|
.align 2, 0
|
|
_08069FE4: .4byte gLinkState
|
|
|
|
thumb_func_start sub_08069FE8
|
|
sub_08069FE8: @ 0x08069FE8
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
ldr r0, _0806A010 @ =gLinkState
|
|
ldr r0, [r0, #0x30]
|
|
movs r1, #0x80
|
|
ands r0, r1
|
|
rsbs r0, r0, #0
|
|
lsrs r5, r0, #0x1f
|
|
adds r0, r4, #0
|
|
adds r0, #0x6a
|
|
ldrb r0, [r0]
|
|
cmp r5, r0
|
|
beq _0806A020
|
|
cmp r5, #0
|
|
bne _0806A014
|
|
adds r0, r4, #0
|
|
bl sub_08078778
|
|
b _0806A020
|
|
.align 2, 0
|
|
_0806A010: .4byte gLinkState
|
|
_0806A014:
|
|
adds r0, r4, #0
|
|
adds r0, #0x74
|
|
ldrb r1, [r0]
|
|
adds r0, r4, #0
|
|
bl sub_080787A8
|
|
_0806A020:
|
|
adds r0, r4, #0
|
|
adds r0, #0x6a
|
|
strb r5, [r0]
|
|
pop {r4, r5, pc}
|
|
|