mirror of
https://github.com/pret/pmd-red.git
synced 2024-11-24 05:29:47 +00:00
941 lines
15 KiB
ArmAsm
941 lines
15 KiB
ArmAsm
#include "asm/constants/gba_constants.inc"
|
|
#include "asm/macros.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_808417C
|
|
sub_808417C:
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
lsls r2, 24
|
|
lsrs r6, r2, 24
|
|
movs r2, 0
|
|
ldrsh r0, [r1, r2]
|
|
movs r2, 0x2
|
|
ldrsh r1, [r1, r2]
|
|
bl sub_808411C
|
|
adds r4, r0, 0
|
|
adds r0, r5, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080841DC
|
|
adds r0, r5, 0
|
|
bl GetEntityType
|
|
cmp r0, 0x1
|
|
bne _080841DC
|
|
cmp r6, 0
|
|
beq _080841DC
|
|
adds r0, r5, 0
|
|
movs r1, 0x12
|
|
bl HasIQSkill
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080841C4
|
|
cmp r4, 0x7F
|
|
beq _080841C4
|
|
lsrs r0, r4, 31
|
|
adds r0, r4, r0
|
|
asrs r4, r0, 1
|
|
_080841C4:
|
|
adds r0, r5, 0
|
|
movs r1, 0x14
|
|
bl HasAbility
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080841DC
|
|
cmp r4, 0x7F
|
|
beq _080841DC
|
|
cmp r4, 0x4
|
|
ble _080841DC
|
|
movs r4, 0x5
|
|
_080841DC:
|
|
cmp r4, 0
|
|
bgt _080841E2
|
|
movs r4, 0x1
|
|
_080841E2:
|
|
adds r0, r4, 0
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_808417C
|
|
|
|
thumb_func_start sub_80841EC
|
|
sub_80841EC:
|
|
push {r4-r6,lr}
|
|
mov r6, r8
|
|
push {r6}
|
|
sub sp, 0xC4
|
|
add r0, sp, 0x60
|
|
mov r8, r0
|
|
movs r1, 0
|
|
movs r2, 0x60
|
|
bl memset
|
|
movs r0, 0x6
|
|
str r0, [sp, 0x64]
|
|
add r1, sp, 0x68
|
|
movs r6, 0
|
|
movs r0, 0x4
|
|
strh r0, [r1]
|
|
movs r2, 0x3
|
|
strh r2, [r1, 0x2]
|
|
add r1, sp, 0x6C
|
|
movs r0, 0x16
|
|
strh r0, [r1]
|
|
mov r0, sp
|
|
adds r0, 0x6E
|
|
movs r5, 0xE
|
|
movs r1, 0xE
|
|
strh r1, [r0]
|
|
add r0, sp, 0x70
|
|
strh r1, [r0]
|
|
add r4, sp, 0xC0
|
|
str r4, [sp, 0x74]
|
|
str r2, [sp, 0x7C]
|
|
add r0, sp, 0x90
|
|
str r2, [r0, 0x4]
|
|
add r0, sp, 0xA8
|
|
str r2, [r0, 0x4]
|
|
mov r0, sp
|
|
mov r1, r8
|
|
movs r2, 0x60
|
|
bl memcpy
|
|
movs r0, 0x1
|
|
strb r0, [r4]
|
|
strb r6, [r4, 0x1]
|
|
strb r5, [r4, 0x2]
|
|
strb r6, [r4, 0x3]
|
|
mov r1, sp
|
|
movs r0, 0x14
|
|
strh r0, [r1, 0xA]
|
|
mov r0, sp
|
|
movs r1, 0x1
|
|
bl sub_803ECB4
|
|
ldr r0, _0808426C
|
|
ldr r0, [r0]
|
|
ldr r1, _08084270
|
|
adds r0, r1
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
ldr r0, _08084274
|
|
cmp r1, r0
|
|
ble _08084278
|
|
bl sub_8083DE0
|
|
b _0808427C
|
|
.align 2, 0
|
|
_0808426C: .4byte gDungeonGlobalData
|
|
_08084270: .4byte 0x0001ceac
|
|
_08084274: .4byte 0x00000225
|
|
_08084278:
|
|
bl sub_8083D98
|
|
_0808427C:
|
|
ldr r0, _080842B8
|
|
ldr r1, [r0]
|
|
ldr r0, _080842BC
|
|
ldr r2, [r0]
|
|
ldr r0, _080842C0
|
|
adds r2, r0
|
|
movs r0, 0
|
|
bl sub_8094558
|
|
mov r4, sp
|
|
_08084290:
|
|
movs r0, 0x36
|
|
bl sub_803E668
|
|
bl sub_8083F58
|
|
ldrh r1, [r4, 0xA]
|
|
movs r2, 0xA
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0x3
|
|
ble _080842C4
|
|
subs r0, r1, 0x1
|
|
strh r0, [r4, 0xA]
|
|
movs r0, 0xA0
|
|
strb r0, [r4]
|
|
mov r0, sp
|
|
movs r1, 0x1
|
|
bl sub_803ECB4
|
|
b _08084290
|
|
.align 2, 0
|
|
_080842B8: .4byte gUnknown_80FE6E8
|
|
_080842BC: .4byte gDungeonGlobalData
|
|
_080842C0: .4byte 0x0001ce98
|
|
_080842C4:
|
|
bl sub_8094D14
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080842DA
|
|
ldr r0, _080842EC
|
|
ldrh r1, [r0, 0x2]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08084290
|
|
_080842DA:
|
|
bl sub_8083D08
|
|
add sp, 0xC4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080842EC: .4byte gRealInputs
|
|
thumb_func_end sub_80841EC
|
|
|
|
thumb_func_start sub_80842F0
|
|
sub_80842F0:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
ldr r1, _0808436C
|
|
ldr r0, [r1]
|
|
ldr r2, _08084370
|
|
adds r0, r2
|
|
movs r2, 0
|
|
strb r2, [r0]
|
|
ldr r0, [r1]
|
|
ldr r3, _08084374
|
|
adds r0, r3
|
|
strb r2, [r0]
|
|
ldr r0, [r1]
|
|
movs r5, 0xCF
|
|
lsls r5, 3
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x2
|
|
bne _080843AE
|
|
movs r6, 0
|
|
ldr r0, _08084378
|
|
mov r8, r0
|
|
movs r7, 0x1
|
|
_08084320:
|
|
lsls r0, r6, 24
|
|
lsrs r0, 24
|
|
bl sub_8096AB4
|
|
adds r4, r0, 0
|
|
ldrb r0, [r4]
|
|
cmp r0, 0x6
|
|
bne _080843A8
|
|
ldr r3, _0808436C
|
|
ldr r5, [r3]
|
|
ldr r1, _0808437C
|
|
adds r0, r5, r1
|
|
ldrh r0, [r0]
|
|
ldrh r2, [r4, 0x4]
|
|
mov r1, r8
|
|
ands r1, r0
|
|
mov r0, r8
|
|
ands r0, r2
|
|
cmp r1, r0
|
|
bne _080843A8
|
|
ldrb r0, [r4, 0x1]
|
|
cmp r0, 0x3
|
|
beq _080843A8
|
|
cmp r0, 0x4
|
|
bne _08084380
|
|
ldrb r1, [r4, 0x10]
|
|
ldr r2, _08084374
|
|
adds r0, r5, r2
|
|
strb r1, [r0]
|
|
ldr r2, [r3]
|
|
ldrh r1, [r4, 0xE]
|
|
movs r3, 0xD1
|
|
lsls r3, 3
|
|
adds r0, r2, r3
|
|
strh r1, [r0]
|
|
strb r7, [r2, 0x9]
|
|
b _080843A8
|
|
.align 2, 0
|
|
_0808436C: .4byte gDungeonGlobalData
|
|
_08084370: .4byte 0x00000677
|
|
_08084374: .4byte 0x0000068a
|
|
_08084378: .4byte 0x0000ffff
|
|
_0808437C: .4byte 0x00000644
|
|
_08084380:
|
|
cmp r0, 0
|
|
beq _0808438C
|
|
cmp r0, 0x2
|
|
beq _0808438C
|
|
cmp r0, 0x1
|
|
bne _080843A8
|
|
_0808438C:
|
|
ldr r2, [r3]
|
|
ldrh r0, [r4, 0xE]
|
|
movs r5, 0xD1
|
|
lsls r5, 3
|
|
adds r1, r2, r5
|
|
strh r0, [r1]
|
|
ldrb r0, [r4, 0x1]
|
|
cmp r0, 0x2
|
|
bne _080843A4
|
|
ldr r1, _080843B8
|
|
adds r0, r2, r1
|
|
strb r7, [r0]
|
|
_080843A4:
|
|
ldr r0, [r3]
|
|
strb r7, [r0, 0x9]
|
|
_080843A8:
|
|
adds r6, 0x1
|
|
cmp r6, 0x7
|
|
ble _08084320
|
|
_080843AE:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080843B8: .4byte 0x00000677
|
|
thumb_func_end sub_80842F0
|
|
|
|
thumb_func_start sub_80843BC
|
|
sub_80843BC:
|
|
push {r4-r6,lr}
|
|
lsls r0, 16
|
|
asrs r6, r0, 16
|
|
movs r4, 0
|
|
ldr r5, _08084418
|
|
_080843C6:
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl sub_8096AB4
|
|
adds r3, r0, 0
|
|
ldrb r0, [r3]
|
|
cmp r0, 0x6
|
|
bne _0808440C
|
|
ldr r0, _0808441C
|
|
ldr r0, [r0]
|
|
ldr r1, _08084420
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
ldrh r2, [r3, 0x4]
|
|
adds r1, r5, 0
|
|
ands r1, r0
|
|
adds r0, r5, 0
|
|
ands r0, r2
|
|
cmp r1, r0
|
|
bne _0808440C
|
|
ldrb r0, [r3, 0x1]
|
|
cmp r0, 0
|
|
beq _08084400
|
|
cmp r0, 0x4
|
|
beq _08084400
|
|
cmp r0, 0x2
|
|
beq _08084400
|
|
cmp r0, 0x1
|
|
bne _0808440C
|
|
_08084400:
|
|
movs r1, 0xE
|
|
ldrsh r0, [r3, r1]
|
|
cmp r6, r0
|
|
bne _0808440C
|
|
movs r0, 0x8
|
|
strb r0, [r3]
|
|
_0808440C:
|
|
adds r4, 0x1
|
|
cmp r4, 0x7
|
|
ble _080843C6
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08084418: .4byte 0x0000ffff
|
|
_0808441C: .4byte gDungeonGlobalData
|
|
_08084420: .4byte 0x00000644
|
|
thumb_func_end sub_80843BC
|
|
|
|
thumb_func_start sub_8084424
|
|
sub_8084424:
|
|
push {r4,lr}
|
|
movs r4, 0
|
|
_08084428:
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl sub_8096AB4
|
|
adds r1, r0, 0
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x8
|
|
bne _0808443C
|
|
movs r0, 0x9
|
|
strb r0, [r1]
|
|
_0808443C:
|
|
adds r4, 0x1
|
|
cmp r4, 0x7
|
|
ble _08084428
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8084424
|
|
|
|
thumb_func_start sub_8084448
|
|
sub_8084448:
|
|
push {r4-r7,lr}
|
|
adds r5, r0, 0
|
|
ldr r7, [r5, 0x70]
|
|
ldr r4, _0808447C
|
|
bl GetLeaderEntity
|
|
adds r1, r0, 0
|
|
adds r0, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r4, 0x50
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r0, r5, 0
|
|
bl sub_8070BC0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08084484
|
|
ldr r0, _08084480
|
|
b _080844F0
|
|
.align 2, 0
|
|
_0808447C: .4byte gAvailablePokemonNames
|
|
_08084480: .4byte gUnknown_80FA464
|
|
_08084484:
|
|
ldr r4, _080844FC
|
|
ldr r0, [r4]
|
|
ldr r6, _08084500
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08084540
|
|
ldr r0, _08084504
|
|
ldr r1, [r0]
|
|
movs r0, 0
|
|
movs r2, 0x1
|
|
bl sub_8052B8C
|
|
cmp r0, 0x1
|
|
beq _080844A4
|
|
b _080845D4
|
|
_080844A4:
|
|
ldr r0, _08084508
|
|
ldr r1, [r4]
|
|
adds r1, r6
|
|
ldrb r1, [r1]
|
|
movs r2, 0
|
|
bl sub_8090DC4
|
|
movs r3, 0
|
|
ldr r0, _0808450C
|
|
adds r6, r0, 0
|
|
ldr r2, [r6]
|
|
_080844BA:
|
|
ldrb r1, [r2]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080844E2
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080844E2
|
|
movs r0, 0x18
|
|
ands r0, r1
|
|
cmp r0, 0x18
|
|
beq _080844E2
|
|
ldr r0, [r4]
|
|
ldr r1, _08084500
|
|
adds r0, r1
|
|
ldrb r1, [r2, 0x2]
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
beq _080844EA
|
|
_080844E2:
|
|
adds r2, 0x4
|
|
adds r3, 0x1
|
|
cmp r3, 0x13
|
|
ble _080844BA
|
|
_080844EA:
|
|
cmp r3, 0x14
|
|
bne _08084514
|
|
ldr r0, _08084510
|
|
_080844F0:
|
|
ldr r1, [r0]
|
|
movs r0, 0
|
|
movs r2, 0x1
|
|
bl PrintFieldMessage
|
|
b _080845D4
|
|
.align 2, 0
|
|
_080844FC: .4byte gDungeonGlobalData
|
|
_08084500: .4byte 0x0000068a
|
|
_08084504: .4byte gUnknown_80FA32C
|
|
_08084508: .4byte gUnknown_202DE58
|
|
_0808450C: .4byte gTeamInventory_203B460
|
|
_08084510: .4byte gUnknown_80FA448
|
|
_08084514:
|
|
lsls r1, r3, 2
|
|
ldr r0, [r6]
|
|
adds r1, r0
|
|
movs r0, 0
|
|
strb r0, [r1, 0x2]
|
|
strb r0, [r1, 0x1]
|
|
strb r0, [r1]
|
|
bl FillInventoryGaps
|
|
ldr r0, _08084538
|
|
ldr r1, [r0]
|
|
movs r0, 0
|
|
movs r2, 0x1
|
|
bl PrintFieldMessage
|
|
ldr r0, _0808453C
|
|
b _0808455E
|
|
.align 2, 0
|
|
_08084538: .4byte gUnknown_80FA2B0
|
|
_0808453C: .4byte gUnknown_80FA370
|
|
_08084540:
|
|
ldr r0, _080845B0
|
|
ldr r1, [r0]
|
|
movs r0, 0
|
|
movs r2, 0x1
|
|
bl sub_8052B8C
|
|
cmp r0, 0x1
|
|
bne _080845D4
|
|
ldr r0, _080845B4
|
|
ldr r1, [r0]
|
|
movs r0, 0
|
|
movs r2, 0x1
|
|
bl PrintFieldMessage
|
|
ldr r0, _080845B8
|
|
_0808455E:
|
|
ldr r4, [r0]
|
|
movs r1, 0x2
|
|
ldrsh r0, [r7, r1]
|
|
bl sub_80843BC
|
|
adds r0, r5, 0x4
|
|
bl sub_8042A34
|
|
movs r1, 0x87
|
|
lsls r1, 2
|
|
adds r0, r5, 0
|
|
movs r2, 0
|
|
bl sub_8068FE0
|
|
movs r0, 0x1
|
|
bl sub_804178C
|
|
ldr r5, _080845BC
|
|
_08084582:
|
|
movs r0, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x1
|
|
bl sub_8052B8C
|
|
cmp r0, 0x1
|
|
bne _080845C4
|
|
ldr r0, _080845C0
|
|
ldr r1, [r0]
|
|
movs r0, 0
|
|
movs r2, 0
|
|
bl sub_8052B8C
|
|
adds r1, r0, 0
|
|
cmp r1, 0x1
|
|
bne _08084582
|
|
ldr r0, [r5]
|
|
strb r1, [r0, 0x4]
|
|
ldr r1, [r5]
|
|
movs r0, 0x2
|
|
strb r0, [r1, 0x11]
|
|
b _080845D4
|
|
.align 2, 0
|
|
_080845B0: .4byte gUnknown_80FA2F0
|
|
_080845B4: .4byte gUnknown_80FA260
|
|
_080845B8: .4byte gUnknown_80FA36C
|
|
_080845BC: .4byte gDungeonGlobalData
|
|
_080845C0: .4byte gUnknown_80FA394
|
|
_080845C4:
|
|
ldr r0, _080845DC
|
|
ldr r1, [r0]
|
|
movs r0, 0
|
|
movs r2, 0
|
|
bl sub_8052B8C
|
|
cmp r0, 0x1
|
|
bne _08084582
|
|
_080845D4:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080845DC: .4byte gUnknown_80FA3B8
|
|
thumb_func_end sub_8084448
|
|
|
|
thumb_func_start sub_80845E0
|
|
sub_80845E0:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
adds r6, r0, 0
|
|
ldr r0, [r6, 0x70]
|
|
mov r8, r0
|
|
movs r7, 0
|
|
movs r1, 0
|
|
mov r9, r1
|
|
ldr r4, _08084620
|
|
bl GetLeaderEntity
|
|
adds r1, r0, 0
|
|
adds r0, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r4, 0x50
|
|
adds r0, r4, 0
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r0, r6, 0
|
|
bl sub_8070BC0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08084630
|
|
ldr r0, _08084624
|
|
b _080846B4
|
|
.align 2, 0
|
|
_08084620: .4byte gAvailablePokemonNames
|
|
_08084624: .4byte gUnknown_80FA530
|
|
_08084628:
|
|
adds r7, r4, 0
|
|
ldr r2, [r7, 0x70]
|
|
mov r9, r2
|
|
b _08084674
|
|
_08084630:
|
|
movs r5, 0
|
|
_08084632:
|
|
ldr r0, _08084660
|
|
ldr r0, [r0]
|
|
lsls r1, r5, 2
|
|
ldr r2, _08084664
|
|
adds r0, r2
|
|
adds r0, r1
|
|
ldr r4, [r0]
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0808466E
|
|
ldr r0, [r4, 0x70]
|
|
adds r0, 0x40
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x4A
|
|
beq _0808465A
|
|
cmp r0, 0x47
|
|
bne _08084668
|
|
_0808465A:
|
|
movs r0, 0x1
|
|
b _0808466A
|
|
.align 2, 0
|
|
_08084660: .4byte gDungeonGlobalData
|
|
_08084664: .4byte 0x0001357c
|
|
_08084668:
|
|
movs r0, 0
|
|
_0808466A:
|
|
cmp r0, 0
|
|
bne _08084628
|
|
_0808466E:
|
|
adds r5, 0x1
|
|
cmp r5, 0x3
|
|
ble _08084632
|
|
_08084674:
|
|
cmp r7, 0
|
|
bne _08084680
|
|
ldr r0, _0808467C
|
|
b _080846B4
|
|
.align 2, 0
|
|
_0808467C: .4byte gUnknown_80FA52C
|
|
_08084680:
|
|
ldr r0, _0808469C
|
|
adds r1, r7, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r0, r7, 0
|
|
bl sub_8070BC0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080846A4
|
|
ldr r0, _080846A0
|
|
b _080846B4
|
|
.align 2, 0
|
|
_0808469C: .4byte gUnknown_202E038
|
|
_080846A0: .4byte gUnknown_80FA54C
|
|
_080846A4:
|
|
adds r0, r6, 0
|
|
adds r1, r7, 0
|
|
bl CanSee
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080846C4
|
|
ldr r0, _080846C0
|
|
_080846B4:
|
|
ldr r1, [r0]
|
|
movs r0, 0
|
|
movs r2, 0x1
|
|
bl PrintFieldMessage
|
|
b _08084768
|
|
.align 2, 0
|
|
_080846C0: .4byte gUnknown_80FA500
|
|
_080846C4:
|
|
ldr r0, _08084744
|
|
ldr r1, [r0]
|
|
movs r0, 0
|
|
movs r2, 0x1
|
|
bl PrintFieldMessage
|
|
mov r1, r8
|
|
movs r2, 0x2
|
|
ldrsh r0, [r1, r2]
|
|
bl sub_80843BC
|
|
ldr r5, _08084748
|
|
ldr r0, [r5]
|
|
ldr r1, _0808474C
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
mov r0, r9
|
|
adds r0, 0x40
|
|
strb r1, [r0]
|
|
adds r0, r6, 0x4
|
|
bl sub_8042A34
|
|
adds r0, r7, 0x4
|
|
bl sub_8042A34
|
|
movs r4, 0x87
|
|
lsls r4, 2
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl sub_8068FE0
|
|
adds r0, r7, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl sub_8068FE0
|
|
movs r0, 0x1
|
|
bl sub_804178C
|
|
ldr r4, _08084750
|
|
_08084716:
|
|
movs r0, 0
|
|
ldr r1, [r4]
|
|
movs r2, 0x1
|
|
bl sub_8052B8C
|
|
cmp r0, 0x1
|
|
bne _08084758
|
|
ldr r0, _08084754
|
|
ldr r1, [r0]
|
|
movs r0, 0
|
|
movs r2, 0
|
|
bl sub_8052B8C
|
|
adds r1, r0, 0
|
|
cmp r1, 0x1
|
|
bne _08084716
|
|
ldr r0, [r5]
|
|
strb r1, [r0, 0x4]
|
|
ldr r1, [r5]
|
|
movs r0, 0x2
|
|
strb r0, [r1, 0x11]
|
|
b _08084768
|
|
.align 2, 0
|
|
_08084744: .4byte gUnknown_80FA4D4
|
|
_08084748: .4byte gDungeonGlobalData
|
|
_0808474C: .4byte 0x00000644
|
|
_08084750: .4byte gUnknown_80FA4D8
|
|
_08084754: .4byte gUnknown_80FA394
|
|
_08084758:
|
|
ldr r0, _08084774
|
|
ldr r1, [r0]
|
|
movs r0, 0
|
|
movs r2, 0
|
|
bl sub_8052B8C
|
|
cmp r0, 0x1
|
|
bne _08084716
|
|
_08084768:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08084774: .4byte gUnknown_80FA3B8
|
|
thumb_func_end sub_80845E0
|
|
|
|
thumb_func_start sub_8084778
|
|
sub_8084778:
|
|
push {r4,lr}
|
|
ldr r0, _080847B8
|
|
ldr r1, _080847BC
|
|
bl strcpy
|
|
movs r4, 0
|
|
_08084784:
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl sub_8096AB4
|
|
adds r1, r0, 0
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x6
|
|
bne _080847C8
|
|
ldr r0, _080847C0
|
|
ldr r0, [r0]
|
|
ldr r2, _080847C4
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
ldrb r2, [r1, 0x4]
|
|
cmp r0, r2
|
|
bne _080847C8
|
|
ldrb r0, [r1, 0x1]
|
|
cmp r0, 0x2
|
|
bne _080847C8
|
|
movs r0, 0xE
|
|
ldrsh r1, [r1, r0]
|
|
ldr r0, _080847B8
|
|
bl CopyCyanSpeciesNametoBuffer
|
|
b _080847CE
|
|
.align 2, 0
|
|
_080847B8: .4byte gUnknown_202E088
|
|
_080847BC: .4byte gUnknown_8107224
|
|
_080847C0: .4byte gDungeonGlobalData
|
|
_080847C4: .4byte 0x00000644
|
|
_080847C8:
|
|
adds r4, 0x1
|
|
cmp r4, 0x7
|
|
ble _08084784
|
|
_080847CE:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8084778
|
|
|
|
thumb_func_start sub_80847D4
|
|
sub_80847D4:
|
|
push {r4,r5,lr}
|
|
ldr r2, _08084820
|
|
ldr r0, [r2]
|
|
ldr r1, _08084824
|
|
adds r0, r1
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
ldr r0, [r2]
|
|
ldr r2, _08084828
|
|
adds r0, r2
|
|
strb r1, [r0]
|
|
bl sub_8040A84
|
|
movs r4, 0
|
|
ldr r0, _0808482C
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08084846
|
|
movs r3, 0
|
|
_080847FA:
|
|
ldr r0, _08084820
|
|
ldr r0, [r0]
|
|
ldr r5, _08084830
|
|
adds r0, r5
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
adds r0, r1, 0
|
|
subs r0, 0x1C
|
|
cmp r0, 0x15
|
|
bhi _08084810
|
|
movs r1, 0x1B
|
|
_08084810:
|
|
ldr r2, _0808482C
|
|
adds r0, r3, r2
|
|
ldrb r5, [r0]
|
|
cmp r1, r5
|
|
bne _08084834
|
|
bl sub_8084854
|
|
b _08084846
|
|
.align 2, 0
|
|
_08084820: .4byte gDungeonGlobalData
|
|
_08084824: .4byte 0x00003a0d
|
|
_08084828: .4byte 0x0001356c
|
|
_0808482C: .4byte gUnknown_8107234
|
|
_08084830: .4byte 0x00003a14
|
|
_08084834:
|
|
adds r3, 0x8
|
|
adds r4, 0x1
|
|
ldr r0, _08084850
|
|
cmp r4, r0
|
|
bgt _08084846
|
|
adds r0, r3, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _080847FA
|
|
_08084846:
|
|
bl sub_8097FF8
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08084850: .4byte 0x000003e6
|
|
thumb_func_end sub_80847D4
|
|
|
|
thumb_func_start sub_8084854
|
|
sub_8084854:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
ldr r5, _08084874
|
|
ldr r2, [r5]
|
|
movs r1, 0xCF
|
|
lsls r1, 3
|
|
adds r0, r2, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0808487C
|
|
ldrb r1, [r4, 0x5]
|
|
ldr r3, _08084878
|
|
adds r0, r2, r3
|
|
strb r1, [r0]
|
|
b _080848C8
|
|
.align 2, 0
|
|
_08084874: .4byte gDungeonGlobalData
|
|
_08084878: .4byte 0x00003a0d
|
|
_0808487C:
|
|
ldrb r0, [r4, 0x4]
|
|
bl sub_8098100
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08084898
|
|
ldr r0, [r5]
|
|
ldrb r1, [r4, 0x5]
|
|
ldr r2, _08084894
|
|
adds r0, r2
|
|
strb r1, [r0]
|
|
b _080848C8
|
|
.align 2, 0
|
|
_08084894: .4byte 0x00003a0d
|
|
_08084898:
|
|
ldrb r0, [r4, 0x2]
|
|
bl sub_8098100
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080848B4
|
|
ldr r0, [r5]
|
|
ldrb r1, [r4, 0x3]
|
|
ldr r3, _080848B0
|
|
adds r0, r3
|
|
strb r1, [r0]
|
|
b _080848C8
|
|
.align 2, 0
|
|
_080848B0: .4byte 0x00003a0d
|
|
_080848B4:
|
|
ldr r0, [r5]
|
|
ldrb r1, [r4, 0x1]
|
|
ldr r2, _080848E0
|
|
adds r0, r2
|
|
strb r1, [r0]
|
|
ldrb r0, [r4, 0x2]
|
|
cmp r0, 0x40
|
|
beq _080848C8
|
|
bl sub_8097FA8
|
|
_080848C8:
|
|
ldr r0, _080848E4
|
|
ldr r0, [r0]
|
|
ldr r3, _080848E8
|
|
adds r0, r3
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
movs r0, 0
|
|
bl sub_807E5E4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080848E0: .4byte 0x00003a0d
|
|
_080848E4: .4byte gDungeonGlobalData
|
|
_080848E8: .4byte 0x00000675
|
|
thumb_func_end sub_8084854
|
|
|
|
.align 2,0
|