mirror of
https://github.com/pret/pokediamond.git
synced 2026-03-21 17:54:29 -05:00
3813 lines
71 KiB
ArmAsm
3813 lines
71 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "global.inc"
|
|
|
|
.extern UNK_020F96DC
|
|
.section .rodata
|
|
|
|
.global UNK_020F2A8C
|
|
UNK_020F2A8C: ; 0x020F2A8C
|
|
.byte 0x03, 0x05, 0x08, 0x00
|
|
|
|
.global UNK_020F2A90
|
|
UNK_020F2A90: ; 0x020F2A90
|
|
.byte 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0xFF
|
|
|
|
.balign 4, 0
|
|
.global UNK_020F2A9C
|
|
UNK_020F2A9C: ; 0x020F2A9C
|
|
.byte 0x00, 0x01, 0x02, 0x04, 0x03, 0x05, 0x06, 0x07, 0x08, 0x00, 0x00, 0x00
|
|
|
|
.global UNK_020F2AA8
|
|
UNK_020F2AA8: ; 0x020F2AA8
|
|
.byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
|
|
|
|
.global UNK_020F2AB4
|
|
UNK_020F2AB4: ; 0x020F2AB4
|
|
.byte 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
.global UNK_020F2ACC
|
|
UNK_020F2ACC: ; 0x020F2ACC
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
|
|
.global UNK_020F2AD0
|
|
UNK_020F2AD0: ; 0x020F2AD0
|
|
.word sub_02035D10, 0x00000001, sub_02035DF8, 0x00000002
|
|
.word sub_02036284, 0x00000003, sub_02036510, 0x00000004
|
|
.word sub_020365BC, 0x00000005, sub_02036684, 0x00000006
|
|
.word 0xFFFFFFFE, 0x00000007, sub_02036700, 0x00000008
|
|
.word sub_020367E8
|
|
|
|
.global UNK_020F2B14
|
|
UNK_020F2B14: ; 0x020F2B14
|
|
.byte 0xCC, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
|
|
.byte 0x01, 0x00, 0x00, 0x00, 0xD8, 0x34, 0x00, 0x00, 0xD8, 0x34, 0x00, 0x00, 0xD8, 0x34, 0x00, 0x00
|
|
.byte 0xD8, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
|
|
.global UNK_020F2B48
|
|
UNK_020F2B48: ; 0x020F2B48
|
|
.byte 0xAE, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x01, 0x00, 0x00, 0x00, 0xD9, 0x34, 0x00, 0x00, 0xD8, 0x34, 0x00, 0x00, 0xD9, 0x34, 0x00, 0x00
|
|
.byte 0xD9, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
|
|
.global UNK_020F2B7C
|
|
UNK_020F2B7C: ; 0x020F2B7C
|
|
.word sub_02037304, sub_0203731C, sub_02037334, 0xFFFFFFFF
|
|
|
|
.global UNK_020F2B8C
|
|
UNK_020F2B8C: ; 0x020F2B8C
|
|
.word sub_020372D4, sub_0203731C, sub_02037334, 0xFFFFFFFF
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_02035068
|
|
sub_02035068: ; 0x02035068
|
|
push {r3, lr}
|
|
ldr r0, [r0, #0x1c]
|
|
ldr r0, [r0, #0x0]
|
|
bl MapHeader_GetMapSec
|
|
cmp r0, #0x0
|
|
beq _0203507A
|
|
mov r0, #0x1
|
|
pop {r3, pc}
|
|
_0203507A:
|
|
mov r0, #0x0
|
|
pop {r3, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02035080
|
|
sub_02035080: ; 0x02035080
|
|
push {r3-r5, lr}
|
|
add r5, r0, #0x0
|
|
bl sub_02035254
|
|
add r4, r0, #0x0
|
|
ldr r0, [r5, #0xc]
|
|
bl Save_VarsFlags_Get
|
|
bl Save_VarsFlags_CheckSafariSysFlag
|
|
cmp r0, #0x1
|
|
bne _020350A6
|
|
add r0, r5, #0x0
|
|
bl sub_020352C4
|
|
mov r1, #0x7
|
|
lsl r1, r1, #0x6
|
|
str r0, [r4, r1]
|
|
b _020350E6
|
|
_020350A6:
|
|
ldr r0, [r5, #0xc]
|
|
bl Save_VarsFlags_Get
|
|
bl Save_VarsFlags_CheckPalParkSysFlag
|
|
cmp r0, #0x1
|
|
bne _020350C2
|
|
add r0, r5, #0x0
|
|
bl sub_020352C8
|
|
mov r1, #0x7
|
|
lsl r1, r1, #0x6
|
|
str r0, [r4, r1]
|
|
b _020350E6
|
|
_020350C2:
|
|
add r0, r5, #0x0
|
|
bl sub_02060144
|
|
cmp r0, #0x1
|
|
bne _020350DA
|
|
add r0, r5, #0x0
|
|
bl sub_020352CC
|
|
mov r1, #0x7
|
|
lsl r1, r1, #0x6
|
|
str r0, [r4, r1]
|
|
b _020350E6
|
|
_020350DA:
|
|
add r0, r5, #0x0
|
|
bl sub_02035270
|
|
mov r1, #0x7
|
|
lsl r1, r1, #0x6
|
|
str r0, [r4, r1]
|
|
_020350E6:
|
|
mov r0, #0x71
|
|
mov r1, #0x0
|
|
lsl r0, r0, #0x2
|
|
str r1, [r4, r0]
|
|
ldr r0, [r5, #0x38]
|
|
bl sub_02055B30
|
|
cmp r0, #0x1
|
|
bne _02035106
|
|
ldr r0, [r5, #0x38]
|
|
bl PlayerAvatar_GetFacingDirection
|
|
add r1, r0, #0x0
|
|
ldr r0, [r5, #0x38]
|
|
bl sub_02055B8C
|
|
_02035106:
|
|
ldr r1, _02035114 ; =sub_020352E4
|
|
add r0, r5, #0x0
|
|
add r2, r4, #0x0
|
|
bl FieldSystem_CreateTask
|
|
pop {r3-r5, pc}
|
|
nop
|
|
_02035114: .word sub_020352E4
|
|
|
|
thumb_func_start sub_02035118
|
|
sub_02035118: ; 0x02035118
|
|
push {r3-r5, lr}
|
|
add r5, r0, #0x0
|
|
bl sub_02035254
|
|
add r4, r0, #0x0
|
|
add r0, r5, #0x0
|
|
bl sub_020352D4
|
|
mov r1, #0x7
|
|
lsl r1, r1, #0x6
|
|
str r0, [r4, r1]
|
|
mov r2, #0x1
|
|
add r0, r1, #0x4
|
|
str r2, [r4, r0]
|
|
ldr r0, [r5, #0x38]
|
|
bl sub_02055B30
|
|
cmp r0, #0x1
|
|
bne _0203514C
|
|
ldr r0, [r5, #0x38]
|
|
bl PlayerAvatar_GetFacingDirection
|
|
add r1, r0, #0x0
|
|
ldr r0, [r5, #0x38]
|
|
bl sub_02055B8C
|
|
_0203514C:
|
|
ldr r1, _02035158 ; =sub_020352E4
|
|
add r0, r5, #0x0
|
|
add r2, r4, #0x0
|
|
bl FieldSystem_CreateTask
|
|
pop {r3-r5, pc}
|
|
.balign 4
|
|
_02035158: .word sub_020352E4
|
|
|
|
thumb_func_start sub_0203515C
|
|
sub_0203515C: ; 0x0203515C
|
|
push {r3-r5, lr}
|
|
add r5, r0, #0x0
|
|
bl sub_02035254
|
|
add r4, r0, #0x0
|
|
add r0, r5, #0x0
|
|
bl sub_020352DC
|
|
mov r1, #0x7
|
|
lsl r1, r1, #0x6
|
|
str r0, [r4, r1]
|
|
mov r2, #0x0
|
|
add r0, r1, #0x4
|
|
str r2, [r4, r0]
|
|
ldr r0, [r5, #0x38]
|
|
bl sub_02055B30
|
|
cmp r0, #0x1
|
|
bne _02035190
|
|
ldr r0, [r5, #0x38]
|
|
bl PlayerAvatar_GetFacingDirection
|
|
add r1, r0, #0x0
|
|
ldr r0, [r5, #0x38]
|
|
bl sub_02055B8C
|
|
_02035190:
|
|
ldr r1, _0203519C ; =sub_020352E4
|
|
add r0, r5, #0x0
|
|
add r2, r4, #0x0
|
|
bl FieldSystem_CreateTask
|
|
pop {r3-r5, pc}
|
|
.balign 4
|
|
_0203519C: .word sub_020352E4
|
|
|
|
thumb_func_start sub_020351A0
|
|
sub_020351A0: ; 0x020351A0
|
|
push {r3-r5, lr}
|
|
add r5, r0, #0x0
|
|
ldr r0, _0203524C ; =0x000005FD
|
|
bl PlaySE
|
|
bl sub_02035254
|
|
add r4, r0, #0x0
|
|
mov r0, #0x71
|
|
mov r1, #0x0
|
|
lsl r0, r0, #0x2
|
|
str r1, [r4, r0]
|
|
ldr r0, [r5, #0xc]
|
|
bl Save_VarsFlags_Get
|
|
bl Save_VarsFlags_CheckSafariSysFlag
|
|
cmp r0, #0x1
|
|
bne _020351D4
|
|
add r0, r5, #0x0
|
|
bl sub_020352C4
|
|
mov r1, #0x7
|
|
lsl r1, r1, #0x6
|
|
str r0, [r4, r1]
|
|
b _02035240
|
|
_020351D4:
|
|
ldr r0, [r5, #0xc]
|
|
bl Save_VarsFlags_Get
|
|
bl Save_VarsFlags_CheckPalParkSysFlag
|
|
cmp r0, #0x1
|
|
bne _020351F0
|
|
add r0, r5, #0x0
|
|
bl sub_020352C8
|
|
mov r1, #0x7
|
|
lsl r1, r1, #0x6
|
|
str r0, [r4, r1]
|
|
b _02035240
|
|
_020351F0:
|
|
add r0, r5, #0x0
|
|
bl sub_02060144
|
|
cmp r0, #0x1
|
|
bne _02035208
|
|
add r0, r5, #0x0
|
|
bl sub_020352CC
|
|
mov r1, #0x7
|
|
lsl r1, r1, #0x6
|
|
str r0, [r4, r1]
|
|
b _02035240
|
|
_02035208:
|
|
ldr r0, [r5, #0x6c]
|
|
cmp r0, #0x3
|
|
bne _0203521C
|
|
add r0, r5, #0x0
|
|
bl sub_020352DC
|
|
mov r1, #0x7
|
|
lsl r1, r1, #0x6
|
|
str r0, [r4, r1]
|
|
b _02035240
|
|
_0203521C:
|
|
cmp r0, #0x2
|
|
bne _02035234
|
|
add r0, r5, #0x0
|
|
bl sub_020352D4
|
|
mov r1, #0x7
|
|
lsl r1, r1, #0x6
|
|
str r0, [r4, r1]
|
|
mov r2, #0x1
|
|
add r0, r1, #0x4
|
|
str r2, [r4, r0]
|
|
b _02035240
|
|
_02035234:
|
|
add r0, r5, #0x0
|
|
bl sub_02035270
|
|
mov r1, #0x7
|
|
lsl r1, r1, #0x6
|
|
str r0, [r4, r1]
|
|
_02035240:
|
|
ldr r0, [r5, #0x10]
|
|
ldr r1, _02035250 ; =sub_020352E4
|
|
add r2, r4, #0x0
|
|
bl TaskManager_Jump
|
|
pop {r3-r5, pc}
|
|
.balign 4
|
|
_0203524C: .word 0x000005FD
|
|
_02035250: .word sub_020352E4
|
|
|
|
thumb_func_start sub_02035254
|
|
sub_02035254: ; 0x02035254
|
|
push {r3, lr}
|
|
mov r1, #0x2
|
|
mov r0, #0xb
|
|
lsl r1, r1, #0x8
|
|
bl Heap_Alloc
|
|
mov r2, #0x0
|
|
strh r2, [r0, #0x2a]
|
|
mov r1, #0x7e
|
|
strh r2, [r0, #0x28]
|
|
lsl r1, r1, #0x2
|
|
str r2, [r0, r1]
|
|
pop {r3, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02035270
|
|
sub_02035270: ; 0x02035270
|
|
push {r3-r5, lr}
|
|
add r5, r0, #0x0
|
|
ldr r0, [r5, #0xc]
|
|
mov r4, #0x0
|
|
bl Save_Pokedex_Get
|
|
bl Pokedex_GetSinnohDexFlag
|
|
cmp r0, #0x0
|
|
bne _02035288
|
|
mov r0, #0x1
|
|
orr r4, r0
|
|
_02035288:
|
|
ldr r0, [r5, #0xc]
|
|
bl Save_VarsFlags_Get
|
|
bl Save_VarsFlags_GetStarter
|
|
cmp r0, #0x0
|
|
bne _0203529A
|
|
mov r0, #0x2
|
|
orr r4, r0
|
|
_0203529A:
|
|
ldr r0, [r5, #0xc]
|
|
bl Save_VarsFlags_Get
|
|
bl sub_0205ECE0
|
|
cmp r0, #0x0
|
|
bne _020352AC
|
|
mov r0, #0x4
|
|
orr r4, r0
|
|
_020352AC:
|
|
ldr r0, [r5, #0x1c]
|
|
ldr r0, [r0, #0x0]
|
|
bl MapHeader_MapIsAmitySquare
|
|
cmp r0, #0x1
|
|
bne _020352BC
|
|
mov r0, #0x6
|
|
orr r4, r0
|
|
_020352BC:
|
|
mov r0, #0x6
|
|
lsl r0, r0, #0x6
|
|
orr r0, r4
|
|
pop {r3-r5, pc}
|
|
|
|
thumb_func_start sub_020352C4
|
|
sub_020352C4: ; 0x020352C4
|
|
mov r0, #0x90
|
|
bx lr
|
|
|
|
thumb_func_start sub_020352C8
|
|
sub_020352C8: ; 0x020352C8
|
|
mov r0, #0x94
|
|
bx lr
|
|
|
|
thumb_func_start sub_020352CC
|
|
sub_020352CC: ; 0x020352CC
|
|
ldr r0, _020352D0 ; =0x00000195
|
|
bx lr
|
|
.balign 4
|
|
_020352D0: .word 0x00000195
|
|
|
|
thumb_func_start sub_020352D4
|
|
sub_020352D4: ; 0x020352D4
|
|
mov r0, #0x11
|
|
lsl r0, r0, #0x4
|
|
bx lr
|
|
.balign 4
|
|
|
|
thumb_func_start sub_020352DC
|
|
sub_020352DC: ; 0x020352DC
|
|
ldr r0, _020352E0 ; =0x00000191
|
|
bx lr
|
|
.balign 4
|
|
_020352E0: .word 0x00000191
|
|
|
|
thumb_func_start sub_020352E4
|
|
sub_020352E4: ; 0x020352E4
|
|
push {r4-r6, lr}
|
|
add r6, r0, #0x0
|
|
bl TaskManager_GetFieldSystem
|
|
add r5, r0, #0x0
|
|
add r0, r6, #0x0
|
|
bl TaskManager_GetEnvironment
|
|
add r4, r0, #0x0
|
|
ldrh r1, [r4, #0x2a]
|
|
cmp r1, #0xf
|
|
bhi _02035362
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #0x6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_02035308: ; jump table (using 16-bit offset)
|
|
.short _02035328 - _02035308 - 2; case 0
|
|
.short _02035358 - _02035308 - 2; case 1
|
|
.short _02035368 - _02035308 - 2; case 2
|
|
.short _02035370 - _02035308 - 2; case 3
|
|
.short _02035378 - _02035308 - 2; case 4
|
|
.short _02035380 - _02035308 - 2; case 5
|
|
.short _02035388 - _02035308 - 2; case 6
|
|
.short _02035390 - _02035308 - 2; case 7
|
|
.short _020353C0 - _02035308 - 2; case 8
|
|
.short _020353D6 - _02035308 - 2; case 9
|
|
.short _020353F6 - _02035308 - 2; case 10
|
|
.short _02035412 - _02035308 - 2; case 11
|
|
.short _02035398 - _02035308 - 2; case 12
|
|
.short _02035440 - _02035308 - 2; case 13
|
|
.short _02035478 - _02035308 - 2; case 14
|
|
.short _02035432 - _02035308 - 2; case 15
|
|
_02035328:
|
|
ldr r0, [r5, #0x34]
|
|
bl MapObjectManager_PauseAllMovement
|
|
mov r1, #0x73
|
|
lsl r1, r1, #0x2
|
|
add r0, r5, #0x0
|
|
add r1, r4, r1
|
|
bl sub_0205CE80
|
|
mov r1, #0x7a
|
|
lsl r1, r1, #0x2
|
|
add r0, r5, #0x0
|
|
add r1, r4, r1
|
|
bl FieldMove_InitCheckData
|
|
add r0, r6, #0x0
|
|
bl sub_0203549C
|
|
add r0, r6, #0x0
|
|
bl sub_02035734
|
|
mov r0, #0x1
|
|
strh r0, [r4, #0x2a]
|
|
b _02035484
|
|
_02035358:
|
|
add r0, r6, #0x0
|
|
bl sub_020358E4
|
|
cmp r0, #0x0
|
|
beq _02035364
|
|
_02035362:
|
|
b _02035484
|
|
_02035364:
|
|
mov r0, #0x0
|
|
pop {r4-r6, pc}
|
|
_02035368:
|
|
add r0, r6, #0x0
|
|
bl sub_02035CA0
|
|
b _02035484
|
|
_02035370:
|
|
add r0, r6, #0x0
|
|
bl sub_02035CDC
|
|
b _02035484
|
|
_02035378:
|
|
add r0, r6, #0x0
|
|
bl sub_020365F0
|
|
b _02035484
|
|
_02035380:
|
|
add r0, r6, #0x0
|
|
bl sub_02036644
|
|
b _02035484
|
|
_02035388:
|
|
add r0, r6, #0x0
|
|
bl sub_02036E08
|
|
b _02035484
|
|
_02035390:
|
|
add r0, r6, #0x0
|
|
bl sub_02036F1C
|
|
b _02035484
|
|
_02035398:
|
|
add r0, r5, #0x0
|
|
bl sub_020464A4
|
|
cmp r0, #0x0
|
|
beq _02035484
|
|
ldr r0, [r5, #0x34]
|
|
bl MapObjectManager_PauseAllMovement
|
|
add r0, r6, #0x0
|
|
bl sub_0203549C
|
|
add r0, r6, #0x0
|
|
bl sub_02035734
|
|
mov r0, #0x1
|
|
bl ov05_021D7CA4
|
|
mov r0, #0xe
|
|
strh r0, [r4, #0x2a]
|
|
b _02035484
|
|
_020353C0:
|
|
add r0, r5, #0x0
|
|
bl sub_020464A4
|
|
cmp r0, #0x0
|
|
beq _02035484
|
|
mov r0, #0x1
|
|
bl ov05_021D7CA4
|
|
mov r0, #0x9
|
|
strh r0, [r4, #0x2a]
|
|
b _02035484
|
|
_020353D6:
|
|
bl IsPaletteFadeFinished
|
|
cmp r0, #0x0
|
|
beq _02035484
|
|
add r0, r4, #0x0
|
|
add r1, r5, #0x0
|
|
bl sub_0203598C
|
|
add r0, r4, #0x0
|
|
bl Heap_Free
|
|
ldr r0, [r5, #0x34]
|
|
bl MapObjectManager_UnpauseAllMovement
|
|
mov r0, #0x1
|
|
pop {r4-r6, pc}
|
|
_020353F6:
|
|
add r0, r5, #0x0
|
|
bl sub_020464A4
|
|
cmp r0, #0x0
|
|
beq _02035484
|
|
ldr r0, [r5, #0x34]
|
|
bl MapObjectManager_PauseAllMovement
|
|
mov r0, #0x1
|
|
bl ov05_021D7CA4
|
|
mov r0, #0xb
|
|
strh r0, [r4, #0x2a]
|
|
b _02035484
|
|
_02035412:
|
|
bl IsPaletteFadeFinished
|
|
cmp r0, #0x0
|
|
beq _02035484
|
|
mov r2, #0x72
|
|
lsl r2, r2, #0x2
|
|
ldr r1, [r4, r2]
|
|
add r2, #0x30
|
|
ldr r2, [r4, r2]
|
|
add r0, r6, #0x0
|
|
bl TaskManager_Jump
|
|
add r0, r4, #0x0
|
|
bl Heap_Free
|
|
b _02035484
|
|
_02035432:
|
|
bl Heap_Free
|
|
ldr r0, [r5, #0x34]
|
|
bl MapObjectManager_UnpauseAllMovement
|
|
mov r0, #0x1
|
|
pop {r4-r6, pc}
|
|
_02035440:
|
|
add r1, r5, #0x0
|
|
bl sub_0203598C
|
|
add r0, r4, #0x0
|
|
bl sub_02035718
|
|
add r0, r4, #0x0
|
|
mov r1, #0x1
|
|
bl ClearFrameAndWindow1
|
|
add r0, r4, #0x0
|
|
bl RemoveWindow
|
|
add r0, r6, #0x0
|
|
bl sub_020358A0
|
|
ldr r0, [r5, #0x8]
|
|
mov r1, #0x3
|
|
bl ScheduleBgTilemapBufferTransfer
|
|
add r0, r4, #0x0
|
|
bl Heap_Free
|
|
ldr r0, [r5, #0x34]
|
|
bl MapObjectManager_UnpauseAllMovement
|
|
mov r0, #0x1
|
|
pop {r4-r6, pc}
|
|
_02035478:
|
|
bl IsPaletteFadeFinished
|
|
cmp r0, #0x0
|
|
beq _02035484
|
|
mov r0, #0x1
|
|
strh r0, [r4, #0x2a]
|
|
_02035484:
|
|
ldr r0, [r4, #0x20]
|
|
cmp r0, #0x0
|
|
beq _02035496
|
|
add r0, r4, #0x0
|
|
bl sub_02035BB0
|
|
ldr r0, [r4, #0x38]
|
|
bl sub_0201FDEC
|
|
_02035496:
|
|
mov r0, #0x0
|
|
pop {r4-r6, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0203549C
|
|
sub_0203549C: ; 0x0203549C
|
|
push {r3-r7, lr}
|
|
sub sp, #0x30
|
|
add r4, r0, #0x0
|
|
bl TaskManager_GetFieldSystem
|
|
str r0, [sp, #0x1c]
|
|
add r0, r4, #0x0
|
|
bl TaskManager_GetEnvironment
|
|
add r4, r0, #0x0
|
|
add r1, r4, #0x0
|
|
add r1, #0x30
|
|
bl sub_0203566C
|
|
str r0, [sp, #0x14]
|
|
mov r0, #0x1
|
|
str r0, [sp, #0x0]
|
|
mov r0, #0xb
|
|
str r0, [sp, #0x4]
|
|
ldr r0, [sp, #0x14]
|
|
mov r2, #0x3
|
|
lsl r1, r0, #0x1
|
|
add r0, r0, r1
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp, #0x8]
|
|
mov r0, #0xc
|
|
str r0, [sp, #0xc]
|
|
ldr r0, _02035658 ; =0x0000023B
|
|
add r1, r4, #0x0
|
|
str r0, [sp, #0x10]
|
|
ldr r0, [sp, #0x1c]
|
|
mov r3, #0x14
|
|
ldr r0, [r0, #0x8]
|
|
bl AddWindowParameterized
|
|
mov r0, #0x1
|
|
str r0, [sp, #0x0]
|
|
mov r3, #0xb
|
|
ldr r0, [sp, #0x1c]
|
|
str r3, [sp, #0x4]
|
|
ldr r0, [r0, #0x8]
|
|
ldr r2, _0203565C ; =0x000003D9
|
|
mov r1, #0x3
|
|
bl LoadUserFrameGfx1
|
|
ldr r2, _0203565C ; =0x000003D9
|
|
add r0, r4, #0x0
|
|
mov r1, #0x1
|
|
mov r3, #0xb
|
|
bl DrawFrameAndWindow1
|
|
ldr r2, _02035660 ; =0x00000143
|
|
mov r0, #0x0
|
|
mov r1, #0x1a
|
|
mov r3, #0xb
|
|
bl NewMsgDataFromNarc
|
|
str r0, [sp, #0x18]
|
|
ldr r0, [sp, #0x14]
|
|
mov r1, #0xb
|
|
bl ListMenuItems_New
|
|
str r0, [r4, #0x24]
|
|
mov r5, #0x0
|
|
ldr r0, [sp, #0x14]
|
|
strh r5, [r4, #0x28]
|
|
cmp r0, #0x0
|
|
bls _020355BC
|
|
_02035526:
|
|
add r0, r4, r5
|
|
add r0, #0x30
|
|
ldrb r3, [r0, #0x0]
|
|
cmp r3, #0x3
|
|
bne _02035594
|
|
mov r0, #0xb
|
|
bl MessageFormat_New
|
|
add r6, r0, #0x0
|
|
mov r0, #0x8
|
|
mov r1, #0xb
|
|
bl String_New
|
|
add r1, r4, r5
|
|
add r1, #0x30
|
|
ldrb r1, [r1, #0x0]
|
|
add r7, r0, #0x0
|
|
ldr r0, [sp, #0x18]
|
|
lsl r2, r1, #0x3
|
|
ldr r1, _02035664 ; =UNK_020F2ACC
|
|
ldr r1, [r1, r2]
|
|
bl NewString_ReadMsgData
|
|
str r0, [sp, #0x20]
|
|
ldr r0, [sp, #0x1c]
|
|
ldr r0, [r0, #0xc]
|
|
bl Save_PlayerData_GetProfile
|
|
add r2, r0, #0x0
|
|
add r0, r6, #0x0
|
|
mov r1, #0x0
|
|
bl BufferPlayersName
|
|
ldr r2, [sp, #0x20]
|
|
add r0, r6, #0x0
|
|
add r1, r7, #0x0
|
|
bl StringExpandPlaceholders
|
|
add r2, r4, r5
|
|
add r2, #0x30
|
|
ldrb r2, [r2, #0x0]
|
|
ldr r0, [r4, #0x24]
|
|
add r1, r7, #0x0
|
|
bl ListMenuItems_AddItem
|
|
ldr r0, [sp, #0x20]
|
|
bl String_Delete
|
|
add r0, r7, #0x0
|
|
bl String_Delete
|
|
add r0, r6, #0x0
|
|
bl MessageFormat_Delete
|
|
b _020355A2
|
|
_02035594:
|
|
ldr r2, _02035664 ; =UNK_020F2ACC
|
|
lsl r6, r3, #0x3
|
|
ldr r0, [r4, #0x24]
|
|
ldr r1, [sp, #0x18]
|
|
ldr r2, [r2, r6]
|
|
bl ListMenuItems_AppendFromMsgData
|
|
_020355A2:
|
|
ldr r0, [sp, #0x1c]
|
|
add r0, #0x8c
|
|
ldr r1, [r0, #0x0]
|
|
add r0, r4, r5
|
|
add r0, #0x30
|
|
ldrb r0, [r0, #0x0]
|
|
cmp r1, r0
|
|
bne _020355B4
|
|
strh r5, [r4, #0x28]
|
|
_020355B4:
|
|
ldr r0, [sp, #0x14]
|
|
add r5, r5, #0x1
|
|
cmp r5, r0
|
|
blo _02035526
|
|
_020355BC:
|
|
ldrh r0, [r4, #0x28]
|
|
add r0, r4, r0
|
|
add r0, #0x30
|
|
ldrb r1, [r0, #0x0]
|
|
ldr r0, [sp, #0x1c]
|
|
add r0, #0x8c
|
|
str r1, [r0, #0x0]
|
|
ldr r0, [sp, #0x18]
|
|
bl DestroyMsgData
|
|
ldr r0, [r4, #0x24]
|
|
mov r1, #0x1
|
|
str r0, [sp, #0x24]
|
|
str r4, [sp, #0x28]
|
|
add r0, sp, #0x24
|
|
strb r1, [r0, #0x8]
|
|
strb r1, [r0, #0x9]
|
|
ldr r1, [sp, #0x14]
|
|
strb r1, [r0, #0xa]
|
|
ldrb r2, [r0, #0xb]
|
|
mov r1, #0xf
|
|
bic r2, r1
|
|
mov r1, #0x8
|
|
orr r1, r2
|
|
strb r1, [r0, #0xb]
|
|
ldrb r2, [r0, #0xb]
|
|
mov r1, #0x30
|
|
bic r2, r1
|
|
mov r1, #0x10
|
|
orr r1, r2
|
|
strb r1, [r0, #0xb]
|
|
ldr r1, [sp, #0x14]
|
|
ldrb r2, [r0, #0xb]
|
|
cmp r1, #0x4
|
|
blo _0203560E
|
|
mov r1, #0xc0
|
|
bic r2, r1
|
|
mov r1, #0x40
|
|
orr r1, r2
|
|
strb r1, [r0, #0xb]
|
|
b _02035614
|
|
_0203560E:
|
|
mov r1, #0xc0
|
|
bic r2, r1
|
|
strb r2, [r0, #0xb]
|
|
_02035614:
|
|
mov r0, #0xb
|
|
str r0, [sp, #0x0]
|
|
ldr r0, _02035668 ; =0x00000402
|
|
mov r1, #0x1c
|
|
str r0, [sp, #0x4]
|
|
ldrh r3, [r4, #0x28]
|
|
add r0, sp, #0x24
|
|
mov r2, #0x4
|
|
lsl r3, r3, #0x18
|
|
lsr r3, r3, #0x18
|
|
bl sub_02001B8C
|
|
str r0, [r4, #0x20]
|
|
add r0, r4, #0x0
|
|
bl ScheduleWindowCopyToVram
|
|
ldr r0, [sp, #0x1c]
|
|
ldr r0, [r0, #0xc]
|
|
bl Save_PlayerData_GetProfile
|
|
bl PlayerProfile_GetTrainerGender
|
|
add r3, r0, #0x0
|
|
add r0, r4, #0x0
|
|
add r4, #0x30
|
|
lsl r3, r3, #0x18
|
|
ldr r2, [sp, #0x14]
|
|
add r1, r4, #0x0
|
|
lsr r3, r3, #0x18
|
|
bl sub_020359B8
|
|
add sp, #0x30
|
|
pop {r3-r7, pc}
|
|
nop
|
|
_02035658: .word 0x0000023B
|
|
_0203565C: .word 0x000003D9
|
|
_02035660: .word 0x00000143
|
|
_02035664: .word UNK_020F2ACC
|
|
_02035668: .word 0x00000402
|
|
|
|
thumb_func_start sub_0203566C
|
|
sub_0203566C: ; 0x0203566C
|
|
push {r3-r4}
|
|
mov r3, #0x7
|
|
lsl r3, r3, #0x6
|
|
ldr r4, [r0, r3]
|
|
sub r3, #0xc0
|
|
mov r2, #0x0
|
|
tst r3, r4
|
|
bne _02035682
|
|
mov r3, #0x8
|
|
strb r3, [r1, #0x0]
|
|
add r2, r2, #0x1
|
|
_02035682:
|
|
mov r3, #0x7
|
|
lsl r3, r3, #0x6
|
|
ldr r4, [r0, r3]
|
|
mov r3, #0x80
|
|
tst r3, r4
|
|
bne _02035694
|
|
mov r3, #0x7
|
|
strb r3, [r1, r2]
|
|
add r2, r2, #0x1
|
|
_02035694:
|
|
mov r3, #0x7
|
|
lsl r3, r3, #0x6
|
|
ldr r4, [r0, r3]
|
|
mov r3, #0x1
|
|
tst r3, r4
|
|
bne _020356A6
|
|
mov r3, #0x0
|
|
strb r3, [r1, r2]
|
|
add r2, r2, #0x1
|
|
_020356A6:
|
|
mov r3, #0x7
|
|
lsl r3, r3, #0x6
|
|
ldr r4, [r0, r3]
|
|
mov r3, #0x2
|
|
tst r3, r4
|
|
bne _020356B8
|
|
mov r3, #0x1
|
|
strb r3, [r1, r2]
|
|
add r2, r2, #0x1
|
|
_020356B8:
|
|
mov r3, #0x7
|
|
lsl r3, r3, #0x6
|
|
ldr r4, [r0, r3]
|
|
mov r3, #0x4
|
|
tst r3, r4
|
|
bne _020356CA
|
|
mov r3, #0x2
|
|
strb r3, [r1, r2]
|
|
add r2, r2, #0x1
|
|
_020356CA:
|
|
mov r3, #0x7
|
|
lsl r3, r3, #0x6
|
|
ldr r4, [r0, r3]
|
|
mov r3, #0x8
|
|
tst r3, r4
|
|
bne _020356DC
|
|
mov r3, #0x3
|
|
strb r3, [r1, r2]
|
|
add r2, r2, #0x1
|
|
_020356DC:
|
|
mov r3, #0x7
|
|
lsl r3, r3, #0x6
|
|
ldr r4, [r0, r3]
|
|
mov r3, #0x10
|
|
tst r3, r4
|
|
bne _020356EE
|
|
mov r3, #0x4
|
|
strb r3, [r1, r2]
|
|
add r2, r2, #0x1
|
|
_020356EE:
|
|
mov r3, #0x7
|
|
lsl r3, r3, #0x6
|
|
ldr r4, [r0, r3]
|
|
mov r3, #0x20
|
|
tst r3, r4
|
|
bne _02035700
|
|
mov r3, #0x5
|
|
strb r3, [r1, r2]
|
|
add r2, r2, #0x1
|
|
_02035700:
|
|
mov r3, #0x7
|
|
lsl r3, r3, #0x6
|
|
ldr r3, [r0, r3]
|
|
mov r0, #0x40
|
|
tst r0, r3
|
|
bne _02035712
|
|
mov r0, #0x6
|
|
strb r0, [r1, r2]
|
|
add r2, r2, #0x1
|
|
_02035712:
|
|
add r0, r2, #0x0
|
|
pop {r3-r4}
|
|
bx lr
|
|
|
|
thumb_func_start sub_02035718
|
|
sub_02035718: ; 0x02035718
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
bl sub_02035B78
|
|
ldr r0, [r4, #0x20]
|
|
mov r1, #0x0
|
|
bl sub_02001C5C
|
|
ldr r0, [r4, #0x24]
|
|
bl ListMenuItems_Delete
|
|
mov r0, #0x0
|
|
str r0, [r4, #0x20]
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_02035734
|
|
sub_02035734: ; 0x02035734
|
|
push {r3-r7, lr}
|
|
sub sp, #0x20
|
|
add r5, r0, #0x0
|
|
bl TaskManager_GetFieldSystem
|
|
add r4, r0, #0x0
|
|
add r0, r5, #0x0
|
|
bl TaskManager_GetEnvironment
|
|
add r5, r0, #0x0
|
|
ldr r0, [r4, #0xc]
|
|
bl Save_VarsFlags_Get
|
|
bl Save_VarsFlags_CheckSafariSysFlag
|
|
cmp r0, #0x1
|
|
bne _0203575A
|
|
mov r6, #0x0
|
|
b _0203576C
|
|
_0203575A:
|
|
ldr r0, [r4, #0xc]
|
|
bl Save_VarsFlags_Get
|
|
bl Save_VarsFlags_CheckPalParkSysFlag
|
|
cmp r0, #0x1
|
|
beq _0203576A
|
|
b _0203588E
|
|
_0203576A:
|
|
mov r6, #0x1
|
|
_0203576C:
|
|
mov r3, #0x1
|
|
str r3, [sp, #0x0]
|
|
mov r0, #0xc
|
|
str r0, [sp, #0x4]
|
|
mov r0, #0x4
|
|
str r0, [sp, #0x8]
|
|
mov r0, #0xd
|
|
str r0, [sp, #0xc]
|
|
ldr r0, _02035894 ; =0x0000032D
|
|
add r1, r5, #0x0
|
|
str r0, [sp, #0x10]
|
|
ldr r0, [r4, #0x8]
|
|
add r1, #0x10
|
|
mov r2, #0x3
|
|
bl AddWindowParameterized
|
|
mov r0, #0x1
|
|
str r0, [sp, #0x0]
|
|
mov r3, #0xb
|
|
str r3, [sp, #0x4]
|
|
ldr r0, [r4, #0x8]
|
|
ldr r2, _02035898 ; =0x000003D9
|
|
mov r1, #0x3
|
|
bl LoadUserFrameGfx1
|
|
add r0, r5, #0x0
|
|
ldr r2, _02035898 ; =0x000003D9
|
|
add r0, #0x10
|
|
mov r1, #0x1
|
|
mov r3, #0xb
|
|
bl DrawFrameAndWindow1
|
|
add r0, r5, #0x0
|
|
add r0, #0x10
|
|
mov r1, #0xf
|
|
bl FillWindowPixelBuffer
|
|
ldr r2, _0203589C ; =0x00000143
|
|
mov r0, #0x0
|
|
mov r1, #0x1a
|
|
mov r3, #0xb
|
|
bl NewMsgDataFromNarc
|
|
str r0, [sp, #0x1c]
|
|
cmp r6, #0x0
|
|
bne _020357D0
|
|
mov r1, #0x9
|
|
bl NewString_ReadMsgData
|
|
b _020357D6
|
|
_020357D0:
|
|
mov r1, #0xa
|
|
bl NewString_ReadMsgData
|
|
_020357D6:
|
|
mov r1, #0x0
|
|
add r7, r0, #0x0
|
|
str r1, [sp, #0x0]
|
|
mov r0, #0xff
|
|
str r0, [sp, #0x4]
|
|
add r0, r5, #0x0
|
|
add r0, #0x10
|
|
add r2, r7, #0x0
|
|
add r3, r1, #0x0
|
|
str r1, [sp, #0x8]
|
|
bl AddTextPrinterParameterized
|
|
add r0, r7, #0x0
|
|
bl String_Delete
|
|
mov r0, #0xb
|
|
bl MessageFormat_New
|
|
add r7, r0, #0x0
|
|
mov r0, #0x20
|
|
mov r1, #0xb
|
|
bl String_New
|
|
str r0, [sp, #0x18]
|
|
ldr r0, [sp, #0x1c]
|
|
mov r1, #0xb
|
|
bl NewString_ReadMsgData
|
|
str r0, [sp, #0x14]
|
|
cmp r6, #0x0
|
|
bne _02035834
|
|
ldr r0, [r4, #0xc]
|
|
bl Save_LocalFieldData_Get
|
|
bl LocalFieldData_GetSafariBallsCounter
|
|
mov r1, #0x0
|
|
add r2, r0, #0x0
|
|
str r1, [sp, #0x0]
|
|
mov r0, #0x1
|
|
str r0, [sp, #0x4]
|
|
ldrh r2, [r2, #0x0]
|
|
add r0, r7, #0x0
|
|
mov r3, #0x2
|
|
bl BufferIntegerAsString
|
|
b _0203584C
|
|
_02035834:
|
|
add r0, r4, #0x0
|
|
bl PalPark_CountMonsNotCaught
|
|
mov r1, #0x0
|
|
add r2, r0, #0x0
|
|
str r1, [sp, #0x0]
|
|
mov r0, #0x1
|
|
str r0, [sp, #0x4]
|
|
add r0, r7, #0x0
|
|
mov r3, #0x2
|
|
bl BufferIntegerAsString
|
|
_0203584C:
|
|
ldr r1, [sp, #0x18]
|
|
ldr r2, [sp, #0x14]
|
|
add r0, r7, #0x0
|
|
bl StringExpandPlaceholders
|
|
mov r0, #0x10
|
|
str r0, [sp, #0x0]
|
|
mov r0, #0xff
|
|
str r0, [sp, #0x4]
|
|
mov r1, #0x0
|
|
add r0, r5, #0x0
|
|
ldr r2, [sp, #0x18]
|
|
add r0, #0x10
|
|
add r3, r1, #0x0
|
|
str r1, [sp, #0x8]
|
|
bl AddTextPrinterParameterized
|
|
ldr r0, [sp, #0x18]
|
|
bl String_Delete
|
|
ldr r0, [sp, #0x14]
|
|
bl String_Delete
|
|
add r0, r7, #0x0
|
|
bl MessageFormat_Delete
|
|
ldr r0, [sp, #0x1c]
|
|
bl DestroyMsgData
|
|
add r5, #0x10
|
|
add r0, r5, #0x0
|
|
bl ScheduleWindowCopyToVram
|
|
_0203588E:
|
|
add sp, #0x20
|
|
pop {r3-r7, pc}
|
|
nop
|
|
_02035894: .word 0x0000032D
|
|
_02035898: .word 0x000003D9
|
|
_0203589C: .word 0x00000143
|
|
|
|
thumb_func_start sub_020358A0
|
|
sub_020358A0: ; 0x020358A0
|
|
push {r3-r5, lr}
|
|
add r5, r0, #0x0
|
|
bl TaskManager_GetFieldSystem
|
|
add r4, r0, #0x0
|
|
add r0, r5, #0x0
|
|
bl TaskManager_GetEnvironment
|
|
add r5, r0, #0x0
|
|
ldr r0, [r4, #0xc]
|
|
bl Save_VarsFlags_Get
|
|
bl Save_VarsFlags_CheckSafariSysFlag
|
|
cmp r0, #0x0
|
|
bne _020358CE
|
|
ldr r0, [r4, #0xc]
|
|
bl Save_VarsFlags_Get
|
|
bl Save_VarsFlags_CheckPalParkSysFlag
|
|
cmp r0, #0x0
|
|
beq _020358E0
|
|
_020358CE:
|
|
add r0, r5, #0x0
|
|
add r0, #0x10
|
|
mov r1, #0x1
|
|
bl ClearFrameAndWindow1
|
|
add r5, #0x10
|
|
add r0, r5, #0x0
|
|
bl RemoveWindow
|
|
_020358E0:
|
|
pop {r3-r5, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_020358E4
|
|
sub_020358E4: ; 0x020358E4
|
|
push {r3-r7, lr}
|
|
add r7, r0, #0x0
|
|
bl TaskManager_GetFieldSystem
|
|
add r4, r0, #0x0
|
|
add r0, r7, #0x0
|
|
bl TaskManager_GetEnvironment
|
|
add r5, r0, #0x0
|
|
ldr r0, [r5, #0x20]
|
|
bl sub_02001E5C
|
|
add r6, r0, #0x0
|
|
mov r1, #0x5e
|
|
ldr r0, [r5, #0x20]
|
|
lsl r1, r1, #0x4
|
|
bl sub_02001D2C
|
|
str r0, [r5, #0x2c]
|
|
ldr r0, [r5, #0x20]
|
|
bl sub_02001E5C
|
|
strh r0, [r5, #0x28]
|
|
ldrh r1, [r5, #0x28]
|
|
cmp r6, r1
|
|
beq _0203593A
|
|
mov r0, #0x67
|
|
lsl r0, r0, #0x2
|
|
ldr r0, [r5, r0]
|
|
ldr r0, [r0, #0x0]
|
|
bl sub_02035BE8
|
|
ldrh r2, [r5, #0x28]
|
|
add r0, r5, #0x0
|
|
add r1, r6, #0x0
|
|
bl sub_02035C44
|
|
ldrh r0, [r5, #0x28]
|
|
add r4, #0x8c
|
|
add r0, r5, r0
|
|
add r0, #0x30
|
|
ldrb r0, [r0, #0x0]
|
|
str r0, [r4, #0x0]
|
|
_0203593A:
|
|
ldrh r0, [r5, #0x28]
|
|
add r0, r0, #0x1
|
|
lsl r0, r0, #0x2
|
|
add r1, r5, r0
|
|
mov r0, #0x67
|
|
lsl r0, r0, #0x2
|
|
ldr r0, [r1, r0]
|
|
ldr r0, [r0, #0x0]
|
|
bl sub_02035C78
|
|
mov r1, #0x1
|
|
ldr r2, [r5, #0x2c]
|
|
mvn r1, r1
|
|
cmp r2, r1
|
|
beq _02035960
|
|
add r0, r1, #0x1
|
|
cmp r2, r0
|
|
beq _02035982
|
|
b _02035966
|
|
_02035960:
|
|
mov r0, #0xd
|
|
strh r0, [r5, #0x2a]
|
|
b _02035982
|
|
_02035966:
|
|
ldr r0, _02035988 ; =UNK_020F2AD0
|
|
lsl r2, r2, #0x3
|
|
ldr r2, [r0, r2]
|
|
cmp r2, r1
|
|
bne _02035976
|
|
mov r0, #0xd
|
|
strh r0, [r5, #0x2a]
|
|
b _02035982
|
|
_02035976:
|
|
add r0, r1, #0x1
|
|
cmp r2, r0
|
|
beq _02035982
|
|
add r0, r7, #0x0
|
|
blx r2
|
|
pop {r3-r7, pc}
|
|
_02035982:
|
|
mov r0, #0x1
|
|
pop {r3-r7, pc}
|
|
nop
|
|
_02035988: .word UNK_020F2AD0
|
|
|
|
thumb_func_start sub_0203598C
|
|
sub_0203598C: ; 0x0203598C
|
|
push {r3-r5, lr}
|
|
add r5, r0, #0x0
|
|
add r4, r1, #0x0
|
|
bl sub_0202EDF8
|
|
cmp r0, #0x0
|
|
beq _020359B4
|
|
mov r0, #0x71
|
|
lsl r0, r0, #0x2
|
|
ldr r0, [r5, r0]
|
|
cmp r0, #0x0
|
|
beq _020359B4
|
|
ldr r0, [r4, #0x7c]
|
|
bl sub_02052F74
|
|
bl sub_02031B50
|
|
mov r0, #0x0
|
|
bl sub_02052B74
|
|
_020359B4:
|
|
pop {r3-r5, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_020359B8
|
|
sub_020359B8: ; 0x020359B8
|
|
push {r4-r7, lr}
|
|
sub sp, #0xb4
|
|
ldr r4, _02035B60 ; =UNK_020F2AB4
|
|
str r3, [sp, #0x18]
|
|
add r3, sp, #0x9c
|
|
str r2, [sp, #0x14]
|
|
str r0, [sp, #0xc]
|
|
str r1, [sp, #0x10]
|
|
add r2, r3, #0x0
|
|
ldmia r4!, {r0-r1}
|
|
stmia r3!, {r0-r1}
|
|
ldmia r4!, {r0-r1}
|
|
stmia r3!, {r0-r1}
|
|
ldmia r4!, {r0-r1}
|
|
stmia r3!, {r0-r1}
|
|
ldr r0, [sp, #0xc]
|
|
add r1, r2, #0x0
|
|
add r0, #0x38
|
|
mov r2, #0x8
|
|
mov r3, #0xb
|
|
bl ov05_021D959C
|
|
mov r0, #0x2
|
|
str r0, [sp, #0x0]
|
|
mov r0, #0x1
|
|
str r0, [sp, #0x4]
|
|
ldr r0, _02035B64 ; =0x000034D8
|
|
mov r1, #0x42
|
|
str r0, [sp, #0x8]
|
|
ldr r0, [sp, #0xc]
|
|
mov r2, #0x5
|
|
add r0, #0x38
|
|
mov r3, #0x0
|
|
bl ov05_021D967C
|
|
ldr r0, _02035B64 ; =0x000034D8
|
|
mov r1, #0x42
|
|
str r0, [sp, #0x0]
|
|
ldr r0, [sp, #0xc]
|
|
mov r2, #0x1
|
|
add r0, #0x38
|
|
mov r3, #0x0
|
|
bl ov05_021D96F4
|
|
ldr r0, _02035B64 ; =0x000034D8
|
|
mov r2, #0x0
|
|
str r0, [sp, #0x0]
|
|
ldr r0, [sp, #0xc]
|
|
mov r1, #0x42
|
|
add r0, #0x38
|
|
add r3, r2, #0x0
|
|
bl ov05_021D9708
|
|
mov r0, #0x1
|
|
str r0, [sp, #0x0]
|
|
ldr r0, _02035B64 ; =0x000034D8
|
|
mov r1, #0x42
|
|
str r0, [sp, #0x4]
|
|
ldr r0, [sp, #0xc]
|
|
mov r2, #0x2
|
|
add r0, #0x38
|
|
mov r3, #0x0
|
|
bl ov05_021D971C
|
|
ldr r0, [sp, #0xc]
|
|
ldr r1, _02035B68 ; =UNK_020F2B14
|
|
add r0, #0x38
|
|
bl ov05_021D9820
|
|
mov r2, #0x67
|
|
ldr r1, [sp, #0xc]
|
|
lsl r2, r2, #0x2
|
|
str r0, [r1, r2]
|
|
add r0, r1, #0x0
|
|
ldr r0, [r0, r2]
|
|
ldrh r1, [r1, #0x28]
|
|
ldr r0, [r0, #0x0]
|
|
bl sub_02035BE8
|
|
ldr r0, _02035B6C ; =0x000034D9
|
|
mov r1, #0x42
|
|
str r0, [sp, #0x0]
|
|
ldr r0, [sp, #0xc]
|
|
mov r2, #0x4
|
|
add r0, #0x38
|
|
mov r3, #0x0
|
|
bl ov05_021D96F4
|
|
ldr r0, _02035B6C ; =0x000034D9
|
|
mov r1, #0x42
|
|
str r0, [sp, #0x0]
|
|
ldr r0, [sp, #0xc]
|
|
mov r2, #0x3
|
|
add r0, #0x38
|
|
mov r3, #0x0
|
|
bl ov05_021D9708
|
|
mov r0, #0x1
|
|
str r0, [sp, #0x0]
|
|
ldr r0, _02035B6C ; =0x000034D9
|
|
mov r1, #0x42
|
|
str r0, [sp, #0x4]
|
|
ldr r0, [sp, #0xc]
|
|
mov r2, #0x6
|
|
add r0, #0x38
|
|
mov r3, #0x0
|
|
bl ov05_021D971C
|
|
ldr r0, [sp, #0x14]
|
|
mov r4, #0x0
|
|
cmp r0, #0x0
|
|
bls _02035B2C
|
|
ldr r5, [sp, #0xc]
|
|
ldr r3, _02035B70 ; =UNK_020F2B48
|
|
add r7, r4, #0x0
|
|
add r2, sp, #0x28
|
|
mov r6, #0x6
|
|
_02035AA2:
|
|
ldmia r3!, {r0-r1}
|
|
stmia r2!, {r0-r1}
|
|
sub r6, r6, #0x1
|
|
bne _02035AA2
|
|
ldr r0, [r3, #0x0]
|
|
ldr r3, _02035B74 ; =UNK_020F2AA8
|
|
str r0, [r2, #0x0]
|
|
ldmia r3!, {r0-r1}
|
|
add r2, sp, #0x1c
|
|
stmia r2!, {r0-r1}
|
|
ldr r0, [r3, #0x0]
|
|
str r0, [r2, #0x0]
|
|
_02035ABA:
|
|
add r6, sp, #0x28
|
|
add r3, sp, #0x68
|
|
mov r2, #0x6
|
|
_02035AC0:
|
|
ldmia r6!, {r0-r1}
|
|
stmia r3!, {r0-r1}
|
|
sub r2, r2, #0x1
|
|
bne _02035AC0
|
|
ldr r0, [r6, #0x0]
|
|
add r1, sp, #0x68
|
|
str r0, [r3, #0x0]
|
|
mov r0, #0x2
|
|
ldrsh r0, [r1, r0]
|
|
add r0, r0, r7
|
|
strh r0, [r1, #0x2]
|
|
ldr r0, [sp, #0x10]
|
|
ldrb r2, [r0, r4]
|
|
cmp r2, #0x2
|
|
bne _02035AEA
|
|
ldr r0, [sp, #0x18]
|
|
cmp r0, #0x1
|
|
bne _02035AEA
|
|
mov r0, #0x1b
|
|
strh r0, [r1, #0x6]
|
|
b _02035AF2
|
|
_02035AEA:
|
|
lsl r0, r2, #0x1
|
|
add r1, r2, r0
|
|
add r0, sp, #0x68
|
|
strh r1, [r0, #0x6]
|
|
_02035AF2:
|
|
ldr r0, [sp, #0xc]
|
|
add r1, sp, #0x68
|
|
add r0, #0x38
|
|
bl ov05_021D9820
|
|
mov r1, #0x1a
|
|
lsl r1, r1, #0x4
|
|
add r2, sp, #0x5c
|
|
add r3, sp, #0x1c
|
|
str r0, [r5, r1]
|
|
ldmia r3!, {r0-r1}
|
|
add r6, r2, #0x0
|
|
stmia r2!, {r0-r1}
|
|
ldr r0, [r3, #0x0]
|
|
add r1, r6, #0x0
|
|
str r0, [r2, #0x0]
|
|
mov r0, #0x1a
|
|
lsl r0, r0, #0x4
|
|
ldr r0, [r5, r0]
|
|
mov r2, #0x1
|
|
ldr r0, [r0, #0x0]
|
|
bl sub_02020074
|
|
ldr r0, [sp, #0x14]
|
|
add r4, r4, #0x1
|
|
add r7, #0x18
|
|
add r5, r5, #0x4
|
|
cmp r4, r0
|
|
blo _02035ABA
|
|
_02035B2C:
|
|
ldr r0, [sp, #0xc]
|
|
mov r2, #0x1
|
|
ldrh r0, [r0, #0x28]
|
|
add r0, r0, #0x1
|
|
lsl r1, r0, #0x2
|
|
ldr r0, [sp, #0xc]
|
|
add r1, r0, r1
|
|
mov r0, #0x67
|
|
lsl r0, r0, #0x2
|
|
ldr r0, [r1, r0]
|
|
mov r1, #0x2
|
|
ldr r0, [r0, #0x0]
|
|
bl sub_02035C18
|
|
ldr r0, [sp, #0x14]
|
|
mov r1, #0x6f
|
|
add r2, r0, #0x1
|
|
ldr r0, [sp, #0xc]
|
|
lsl r1, r1, #0x2
|
|
str r2, [r0, r1]
|
|
mov r0, #0x10
|
|
mov r1, #0x1
|
|
bl GfGfx_EngineATogglePlanes
|
|
add sp, #0xb4
|
|
pop {r4-r7, pc}
|
|
.balign 4
|
|
_02035B60: .word UNK_020F2AB4
|
|
_02035B64: .word 0x000034D8
|
|
_02035B68: .word UNK_020F2B14
|
|
_02035B6C: .word 0x000034D9
|
|
_02035B70: .word UNK_020F2B48
|
|
_02035B74: .word UNK_020F2AA8
|
|
|
|
thumb_func_start sub_02035B78
|
|
sub_02035B78: ; 0x02035B78
|
|
push {r3-r7, lr}
|
|
add r5, r0, #0x0
|
|
mov r0, #0x6f
|
|
lsl r0, r0, #0x2
|
|
ldr r0, [r5, r0]
|
|
mov r4, #0x0
|
|
cmp r0, #0x0
|
|
bls _02035BA6
|
|
mov r7, #0x67
|
|
lsl r7, r7, #0x2
|
|
add r6, r7, #0x0
|
|
add r6, #0x20
|
|
_02035B90:
|
|
lsl r0, r4, #0x2
|
|
add r0, r5, r0
|
|
ldr r0, [r0, r7]
|
|
bl sub_0200C3DC
|
|
add r0, r4, #0x1
|
|
lsl r0, r0, #0x10
|
|
lsr r4, r0, #0x10
|
|
ldr r0, [r5, r6]
|
|
cmp r4, r0
|
|
blo _02035B90
|
|
_02035BA6:
|
|
add r5, #0x38
|
|
add r0, r5, #0x0
|
|
bl ov05_021D99F8
|
|
pop {r3-r7, pc}
|
|
|
|
thumb_func_start sub_02035BB0
|
|
sub_02035BB0: ; 0x02035BB0
|
|
push {r3-r7, lr}
|
|
add r5, r0, #0x0
|
|
mov r0, #0x6f
|
|
lsl r0, r0, #0x2
|
|
ldr r0, [r5, r0]
|
|
mov r4, #0x0
|
|
cmp r0, #0x0
|
|
bls _02035BE4
|
|
mov r7, #0x67
|
|
lsl r7, r7, #0x2
|
|
add r6, r7, #0x0
|
|
add r6, #0x20
|
|
_02035BC8:
|
|
lsl r0, r4, #0x2
|
|
add r0, r5, r0
|
|
ldr r0, [r0, r7]
|
|
mov r1, #0x1
|
|
ldr r0, [r0, #0x0]
|
|
lsl r1, r1, #0xc
|
|
bl sub_020201E4
|
|
add r0, r4, #0x1
|
|
lsl r0, r0, #0x10
|
|
lsr r4, r0, #0x10
|
|
ldr r0, [r5, r6]
|
|
cmp r4, r0
|
|
blo _02035BC8
|
|
_02035BE4:
|
|
pop {r3-r7, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02035BE8
|
|
sub_02035BE8: ; 0x02035BE8
|
|
push {r3-r6, lr}
|
|
sub sp, #0xc
|
|
add r5, r0, #0x0
|
|
add r4, r1, #0x0
|
|
bl sub_0202011C
|
|
add r6, r0, #0x0
|
|
add r3, sp, #0x0
|
|
ldmia r6!, {r0-r1}
|
|
add r2, r3, #0x0
|
|
stmia r3!, {r0-r1}
|
|
ldr r0, [r6, #0x0]
|
|
add r1, r2, #0x0
|
|
str r0, [r3, #0x0]
|
|
mov r0, #0x18
|
|
mul r0, r4
|
|
add r0, #0x14
|
|
lsl r0, r0, #0xc
|
|
str r0, [sp, #0x4]
|
|
add r0, r5, #0x0
|
|
bl sub_02020044
|
|
add sp, #0xc
|
|
pop {r3-r6, pc}
|
|
|
|
thumb_func_start sub_02035C18
|
|
sub_02035C18: ; 0x02035C18
|
|
push {r4-r6, lr}
|
|
add r5, r0, #0x0
|
|
add r4, r1, #0x0
|
|
add r6, r2, #0x0
|
|
bl sub_020201DC
|
|
mov r1, #0x3
|
|
bl _u32_div_f
|
|
add r2, r0, #0x0
|
|
lsl r1, r2, #0x1
|
|
add r1, r2, r1
|
|
add r0, r5, #0x0
|
|
add r1, r4, r1
|
|
bl sub_02020130
|
|
add r0, r5, #0x0
|
|
add r1, r6, #0x0
|
|
bl sub_0202027C
|
|
pop {r4-r6, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02035C44
|
|
sub_02035C44: ; 0x02035C44
|
|
push {r3-r5, lr}
|
|
add r5, r0, #0x0
|
|
add r0, r1, #0x1
|
|
lsl r0, r0, #0x2
|
|
add r1, r5, r0
|
|
mov r0, #0x67
|
|
lsl r0, r0, #0x2
|
|
ldr r0, [r1, r0]
|
|
mov r1, #0x0
|
|
add r4, r2, #0x0
|
|
ldr r0, [r0, #0x0]
|
|
add r2, r1, #0x0
|
|
bl sub_02035C18
|
|
add r0, r4, #0x1
|
|
lsl r0, r0, #0x2
|
|
add r1, r5, r0
|
|
mov r0, #0x67
|
|
lsl r0, r0, #0x2
|
|
ldr r0, [r1, r0]
|
|
mov r1, #0x1
|
|
ldr r0, [r0, #0x0]
|
|
add r2, r1, #0x0
|
|
bl sub_02035C18
|
|
pop {r3-r5, pc}
|
|
|
|
thumb_func_start sub_02035C78
|
|
sub_02035C78: ; 0x02035C78
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
bl sub_020201DC
|
|
mov r1, #0x3
|
|
bl _u32_div_f
|
|
cmp r1, #0x1
|
|
bne _02035C9E
|
|
add r0, r4, #0x0
|
|
bl sub_02020388
|
|
cmp r0, #0x0
|
|
bne _02035C9E
|
|
add r0, r4, #0x0
|
|
mov r1, #0x2
|
|
mov r2, #0x1
|
|
bl sub_02035C18
|
|
_02035C9E:
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_02035CA0
|
|
sub_02035CA0: ; 0x02035CA0
|
|
push {r3-r5, lr}
|
|
add r5, r0, #0x0
|
|
bl IsPaletteFadeFinished
|
|
cmp r0, #0x0
|
|
beq _02035CD8
|
|
add r0, r5, #0x0
|
|
bl TaskManager_GetFieldSystem
|
|
add r0, r5, #0x0
|
|
bl TaskManager_GetEnvironment
|
|
add r4, r0, #0x0
|
|
bl sub_02035718
|
|
add r0, r4, #0x0
|
|
bl RemoveWindow
|
|
add r0, r5, #0x0
|
|
bl sub_020358A0
|
|
mov r1, #0x72
|
|
lsl r1, r1, #0x2
|
|
ldr r1, [r4, r1]
|
|
add r0, r5, #0x0
|
|
blx r1
|
|
mov r0, #0x3
|
|
strh r0, [r4, #0x2a]
|
|
_02035CD8:
|
|
pop {r3-r5, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02035CDC
|
|
sub_02035CDC: ; 0x02035CDC
|
|
push {r4-r6, lr}
|
|
add r5, r0, #0x0
|
|
bl TaskManager_GetFieldSystem
|
|
add r6, r0, #0x0
|
|
add r0, r5, #0x0
|
|
bl TaskManager_GetEnvironment
|
|
add r4, r0, #0x0
|
|
add r0, r6, #0x0
|
|
bl FieldSystem_ApplicationIsRunning
|
|
cmp r0, #0x0
|
|
bne _02035D02
|
|
mov r1, #0x72
|
|
lsl r1, r1, #0x2
|
|
ldr r1, [r4, r1]
|
|
add r0, r5, #0x0
|
|
blx r1
|
|
_02035D02:
|
|
pop {r4-r6, pc}
|
|
|
|
thumb_func_start StartMenu_SetExitTaskFunc
|
|
StartMenu_SetExitTaskFunc: ; 0x02035D04
|
|
mov r2, #0x72
|
|
lsl r2, r2, #0x2
|
|
str r1, [r0, r2]
|
|
mov r1, #0x3
|
|
strh r1, [r0, #0x2a]
|
|
bx lr
|
|
|
|
thumb_func_start sub_02035D10
|
|
sub_02035D10: ; 0x02035D10
|
|
push {r4, lr}
|
|
bl TaskManager_GetEnvironment
|
|
add r4, r0, #0x0
|
|
mov r0, #0x0
|
|
bl ov05_021D7CA4
|
|
mov r0, #0x72
|
|
ldr r1, _02035D30 ; =sub_02035D34
|
|
lsl r0, r0, #0x2
|
|
str r1, [r4, r0]
|
|
mov r0, #0x2
|
|
strh r0, [r4, #0x2a]
|
|
mov r0, #0x1
|
|
pop {r4, pc}
|
|
nop
|
|
_02035D30: .word sub_02035D34
|
|
|
|
thumb_func_start sub_02035D34
|
|
sub_02035D34: ; 0x02035D34
|
|
push {r3-r7, lr}
|
|
sub sp, #0x8
|
|
add r4, r0, #0x0
|
|
bl TaskManager_GetFieldSystem
|
|
add r5, r0, #0x0
|
|
add r0, r4, #0x0
|
|
bl TaskManager_GetEnvironment
|
|
add r6, r0, #0x0
|
|
mov r0, #0xb
|
|
mov r1, #0x20
|
|
bl Heap_Alloc
|
|
add r4, r0, #0x0
|
|
ldr r0, [r5, #0xc]
|
|
bl Save_Pokedex_Get
|
|
str r0, [sp, #0x0]
|
|
ldr r0, [r5, #0xc]
|
|
bl Save_PlayerData_GetProfile
|
|
str r0, [sp, #0x4]
|
|
ldr r0, [r5, #0xc]
|
|
bl Save_VarsFlags_Get
|
|
add r7, r0, #0x0
|
|
ldr r0, [sp, #0x0]
|
|
str r0, [r4, #0x0]
|
|
ldr r0, [sp, #0x4]
|
|
str r0, [r4, #0x4]
|
|
add r0, r5, #0x0
|
|
bl Script_GetTimeOfDay
|
|
str r0, [r4, #0x8]
|
|
add r0, r7, #0x0
|
|
mov r1, #0x0
|
|
bl sub_0205F524
|
|
str r0, [r4, #0xc]
|
|
add r0, r7, #0x0
|
|
mov r1, #0x1
|
|
bl sub_0205F524
|
|
str r0, [r4, #0x10]
|
|
add r0, r7, #0x0
|
|
mov r1, #0x2
|
|
bl sub_0205F524
|
|
str r0, [r4, #0x14]
|
|
add r0, r7, #0x0
|
|
mov r1, #0x3
|
|
bl sub_0205F524
|
|
str r0, [r4, #0x18]
|
|
add r0, r5, #0x0
|
|
add r0, #0xb0
|
|
ldr r0, [r0, #0x0]
|
|
add r1, r4, #0x0
|
|
str r0, [r4, #0x1c]
|
|
add r0, r5, #0x0
|
|
bl sub_02038690
|
|
mov r0, #0x7e
|
|
lsl r0, r0, #0x2
|
|
str r4, [r6, r0]
|
|
ldr r1, _02035DC4 ; =sub_02035DC8
|
|
sub r0, #0x30
|
|
str r1, [r6, r0]
|
|
mov r0, #0x0
|
|
add sp, #0x8
|
|
pop {r3-r7, pc}
|
|
.balign 4
|
|
_02035DC4: .word sub_02035DC8
|
|
|
|
thumb_func_start sub_02035DC8
|
|
sub_02035DC8: ; 0x02035DC8
|
|
push {r3-r5, lr}
|
|
add r4, r0, #0x0
|
|
bl TaskManager_GetFieldSystem
|
|
add r5, r0, #0x0
|
|
add r0, r4, #0x0
|
|
bl TaskManager_GetEnvironment
|
|
add r4, r0, #0x0
|
|
add r0, r5, #0x0
|
|
bl FieldSystem_LoadFieldOverlay
|
|
mov r0, #0x7e
|
|
lsl r0, r0, #0x2
|
|
ldr r1, [r4, r0]
|
|
cmp r1, #0x0
|
|
beq _02035DF0
|
|
mov r0, #0xb
|
|
bl Heap_FreeExplicit
|
|
_02035DF0:
|
|
mov r0, #0xc
|
|
strh r0, [r4, #0x2a]
|
|
mov r0, #0x0
|
|
pop {r3-r5, pc}
|
|
|
|
thumb_func_start sub_02035DF8
|
|
sub_02035DF8: ; 0x02035DF8
|
|
push {r4, lr}
|
|
bl TaskManager_GetEnvironment
|
|
add r4, r0, #0x0
|
|
mov r0, #0x0
|
|
bl ov05_021D7CA4
|
|
mov r0, #0x72
|
|
ldr r1, _02035E18 ; =sub_02035E1C
|
|
lsl r0, r0, #0x2
|
|
str r1, [r4, r0]
|
|
mov r0, #0x2
|
|
strh r0, [r4, #0x2a]
|
|
mov r0, #0x1
|
|
pop {r4, pc}
|
|
nop
|
|
_02035E18: .word sub_02035E1C
|
|
|
|
thumb_func_start sub_02035E1C
|
|
sub_02035E1C: ; 0x02035E1C
|
|
push {r3-r5, lr}
|
|
add r4, r0, #0x0
|
|
bl TaskManager_GetFieldSystem
|
|
add r5, r0, #0x0
|
|
add r0, r4, #0x0
|
|
bl TaskManager_GetEnvironment
|
|
mov r1, #0x7a
|
|
add r4, r0, #0x0
|
|
lsl r1, r1, #0x2
|
|
add r0, r5, #0x0
|
|
add r1, r4, r1
|
|
mov r2, #0x0
|
|
bl sub_020379C8
|
|
mov r1, #0x7e
|
|
lsl r1, r1, #0x2
|
|
str r0, [r4, r1]
|
|
ldr r0, _02035E4C ; =sub_02035E50
|
|
sub r1, #0x30
|
|
str r0, [r4, r1]
|
|
mov r0, #0x0
|
|
pop {r3-r5, pc}
|
|
.balign 4
|
|
_02035E4C: .word sub_02035E50
|
|
|
|
thumb_func_start sub_02035E50
|
|
sub_02035E50: ; 0x02035E50
|
|
push {r4-r7, lr}
|
|
sub sp, #0xc
|
|
add r7, r0, #0x0
|
|
bl TaskManager_GetFieldSystem
|
|
add r5, r0, #0x0
|
|
add r0, r7, #0x0
|
|
bl TaskManager_GetEnvironment
|
|
add r4, r0, #0x0
|
|
mov r0, #0xb
|
|
mov r1, #0x40
|
|
bl Heap_Alloc
|
|
mov r1, #0x7e
|
|
lsl r1, r1, #0x2
|
|
ldr r1, [r4, r1]
|
|
mov r2, #0x40
|
|
add r6, r0, #0x0
|
|
bl memcpy
|
|
mov r0, #0x7e
|
|
lsl r0, r0, #0x2
|
|
ldr r0, [r4, r0]
|
|
bl Heap_Free
|
|
add r0, r6, #0x0
|
|
add r0, #0x23
|
|
ldrb r0, [r0, #0x0]
|
|
cmp r0, #0x17
|
|
bls _02035E90
|
|
b _020361E6
|
|
_02035E90:
|
|
add r1, r0, r0
|
|
add r1, pc
|
|
ldrh r1, [r1, #0x6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_02035E9C: ; jump table (using 16-bit offset)
|
|
.short _020361E6 - _02035E9C - 2; case 0
|
|
.short _02035ECC - _02035E9C - 2; case 1
|
|
.short _020361E6 - _02035E9C - 2; case 2
|
|
.short _020360EA - _02035E9C - 2; case 3
|
|
.short _02035F4A - _02035E9C - 2; case 4
|
|
.short _02035FD0 - _02035E9C - 2; case 5
|
|
.short _02036056 - _02035E9C - 2; case 6
|
|
.short _020360AC - _02035E9C - 2; case 7
|
|
.short _02036144 - _02035E9C - 2; case 8
|
|
.short _02036170 - _02035E9C - 2; case 9
|
|
.short _020361CA - _02035E9C - 2; case 10
|
|
.short _020361A4 - _02035E9C - 2; case 11
|
|
.short _020361A4 - _02035E9C - 2; case 12
|
|
.short _020361A4 - _02035E9C - 2; case 13
|
|
.short _020361A4 - _02035E9C - 2; case 14
|
|
.short _020361A4 - _02035E9C - 2; case 15
|
|
.short _020361A4 - _02035E9C - 2; case 16
|
|
.short _020361A4 - _02035E9C - 2; case 17
|
|
.short _020361A4 - _02035E9C - 2; case 18
|
|
.short _020361A4 - _02035E9C - 2; case 19
|
|
.short _020361A4 - _02035E9C - 2; case 20
|
|
.short _020361A4 - _02035E9C - 2; case 21
|
|
.short _020361A4 - _02035E9C - 2; case 22
|
|
.short _020361A4 - _02035E9C - 2; case 23
|
|
_02035ECC:
|
|
mov r0, #0xb
|
|
mov r1, #0x30
|
|
bl Heap_Alloc
|
|
add r7, r0, #0x0
|
|
ldr r0, [r5, #0xc]
|
|
bl SaveArray_Party_Get
|
|
str r0, [r7, #0x0]
|
|
ldr r0, [r5, #0xc]
|
|
bl Save_PlayerData_GetOptionsAddr
|
|
str r0, [r7, #0x4]
|
|
mov r0, #0x1
|
|
strb r0, [r7, #0x11]
|
|
add r0, r6, #0x0
|
|
add r0, #0x22
|
|
ldrb r0, [r0, #0x0]
|
|
strb r0, [r7, #0x14]
|
|
ldr r0, [r7, #0x0]
|
|
bl Party_GetCount
|
|
strb r0, [r7, #0x13]
|
|
mov r0, #0x0
|
|
strh r0, [r7, #0x18]
|
|
strb r0, [r7, #0x12]
|
|
ldr r0, [r5, #0xc]
|
|
bl sub_0202A918
|
|
str r0, [r7, #0x20]
|
|
ldr r0, [r5, #0xc]
|
|
bl SaveArray_IsNatDexEnabled
|
|
str r0, [r7, #0x1c]
|
|
ldr r0, [r5, #0xc]
|
|
bl sub_02079C70
|
|
str r0, [r7, #0x2c]
|
|
mov r0, #0x0
|
|
str r0, [r7, #0x28]
|
|
ldr r1, _0203626C ; =UNK_020F2A9C
|
|
add r0, r7, #0x0
|
|
bl sub_0207B000
|
|
ldr r0, [r5, #0xc]
|
|
bl Save_PlayerData_GetProfile
|
|
add r1, r0, #0x0
|
|
add r0, r7, #0x0
|
|
bl sub_0207C2A4
|
|
add r0, r5, #0x0
|
|
add r1, r7, #0x0
|
|
bl sub_0203796C
|
|
mov r0, #0x7e
|
|
lsl r0, r0, #0x2
|
|
str r7, [r4, r0]
|
|
ldr r1, _02036270 ; =sub_0203684C
|
|
add r0, r4, #0x0
|
|
bl StartMenu_SetExitTaskFunc
|
|
b _0203625E
|
|
_02035F4A:
|
|
mov r0, #0xb
|
|
mov r1, #0x30
|
|
bl Heap_Alloc
|
|
add r7, r0, #0x0
|
|
ldr r0, [r5, #0xc]
|
|
bl SaveArray_Party_Get
|
|
str r0, [r7, #0x0]
|
|
ldr r0, [r5, #0xc]
|
|
bl Save_PlayerData_GetOptionsAddr
|
|
str r0, [r7, #0x4]
|
|
mov r1, #0x1
|
|
add r0, r6, #0x0
|
|
strb r1, [r7, #0x11]
|
|
add r0, #0x22
|
|
ldrb r0, [r0, #0x0]
|
|
strb r0, [r7, #0x14]
|
|
strb r1, [r7, #0x13]
|
|
ldrh r0, [r6, #0x26]
|
|
strh r0, [r7, #0x18]
|
|
mov r0, #0x2
|
|
strb r0, [r7, #0x12]
|
|
ldr r0, [r5, #0xc]
|
|
bl SaveArray_IsNatDexEnabled
|
|
str r0, [r7, #0x1c]
|
|
ldr r0, [r5, #0xc]
|
|
bl sub_02079C70
|
|
str r0, [r7, #0x2c]
|
|
mov r0, #0x0
|
|
str r0, [r7, #0x28]
|
|
ldr r1, _02036274 ; =UNK_020F2A8C
|
|
add r0, r7, #0x0
|
|
bl sub_0207B000
|
|
ldr r0, [r5, #0xc]
|
|
bl Save_PlayerData_GetProfile
|
|
add r1, r0, #0x0
|
|
add r0, r7, #0x0
|
|
bl sub_0207C2A4
|
|
add r0, r5, #0x0
|
|
add r1, r7, #0x0
|
|
bl sub_0203796C
|
|
mov r0, #0xb
|
|
mov r1, #0x4
|
|
bl Heap_Alloc
|
|
ldrh r1, [r6, #0x24]
|
|
strh r1, [r0, #0x0]
|
|
mov r1, #0x0
|
|
strh r1, [r0, #0x2]
|
|
mov r1, #0x7f
|
|
lsl r1, r1, #0x2
|
|
str r0, [r4, r1]
|
|
sub r0, r1, #0x4
|
|
str r7, [r4, r0]
|
|
ldr r1, _02036270 ; =sub_0203684C
|
|
add r0, r4, #0x0
|
|
bl StartMenu_SetExitTaskFunc
|
|
b _0203625E
|
|
_02035FD0:
|
|
mov r0, #0xb
|
|
mov r1, #0x30
|
|
bl Heap_Alloc
|
|
add r7, r0, #0x0
|
|
ldr r0, [r5, #0xc]
|
|
bl SaveArray_Party_Get
|
|
str r0, [r7, #0x0]
|
|
ldr r0, [r5, #0xc]
|
|
bl Save_PlayerData_GetOptionsAddr
|
|
str r0, [r7, #0x4]
|
|
mov r1, #0x1
|
|
add r0, r6, #0x0
|
|
strb r1, [r7, #0x11]
|
|
add r0, #0x22
|
|
ldrb r0, [r0, #0x0]
|
|
strb r0, [r7, #0x14]
|
|
strb r1, [r7, #0x13]
|
|
ldrh r0, [r6, #0x26]
|
|
strh r0, [r7, #0x18]
|
|
mov r0, #0x2
|
|
strb r0, [r7, #0x12]
|
|
ldr r0, [r5, #0xc]
|
|
bl SaveArray_IsNatDexEnabled
|
|
str r0, [r7, #0x1c]
|
|
ldr r0, [r5, #0xc]
|
|
bl sub_02079C70
|
|
str r0, [r7, #0x2c]
|
|
mov r0, #0x0
|
|
str r0, [r7, #0x28]
|
|
ldr r1, _02036274 ; =UNK_020F2A8C
|
|
add r0, r7, #0x0
|
|
bl sub_0207B000
|
|
ldr r0, [r5, #0xc]
|
|
bl Save_PlayerData_GetProfile
|
|
add r1, r0, #0x0
|
|
add r0, r7, #0x0
|
|
bl sub_0207C2A4
|
|
add r0, r5, #0x0
|
|
add r1, r7, #0x0
|
|
bl sub_0203796C
|
|
mov r0, #0xb
|
|
mov r1, #0x4
|
|
bl Heap_Alloc
|
|
mov r1, #0x0
|
|
strh r1, [r0, #0x0]
|
|
ldr r1, [r6, #0x34]
|
|
strh r1, [r0, #0x2]
|
|
mov r1, #0x7f
|
|
lsl r1, r1, #0x2
|
|
str r0, [r4, r1]
|
|
sub r0, r1, #0x4
|
|
str r7, [r4, r0]
|
|
ldr r1, _02036270 ; =sub_0203684C
|
|
add r0, r4, #0x0
|
|
bl StartMenu_SetExitTaskFunc
|
|
b _0203625E
|
|
_02036056:
|
|
ldrh r0, [r6, #0x24]
|
|
bl ItemToMailId
|
|
add r3, r0, #0x0
|
|
mov r0, #0xb
|
|
add r2, r6, #0x0
|
|
str r0, [sp, #0x0]
|
|
add r2, #0x22
|
|
ldrb r2, [r2, #0x0]
|
|
add r0, r5, #0x0
|
|
mov r1, #0x2
|
|
bl sub_02037F2C
|
|
mov r1, #0x7e
|
|
lsl r1, r1, #0x2
|
|
str r0, [r4, r1]
|
|
add r0, r6, #0x0
|
|
add r0, #0x20
|
|
ldrb r0, [r0, #0x0]
|
|
cmp r0, #0xa
|
|
ldrh r0, [r6, #0x24]
|
|
bne _02036090
|
|
add r2, r6, #0x0
|
|
add r2, #0x22
|
|
ldrb r2, [r2, #0x0]
|
|
mov r1, #0x0
|
|
bl sub_02036BC4
|
|
b _0203609C
|
|
_02036090:
|
|
add r2, r6, #0x0
|
|
add r2, #0x22
|
|
ldrb r2, [r2, #0x0]
|
|
mov r1, #0x1
|
|
bl sub_02036BC4
|
|
_0203609C:
|
|
mov r1, #0x7f
|
|
lsl r1, r1, #0x2
|
|
str r0, [r4, r1]
|
|
ldr r1, _02036278 ; =sub_02036BDC
|
|
add r0, r4, #0x0
|
|
bl StartMenu_SetExitTaskFunc
|
|
b _0203625E
|
|
_020360AC:
|
|
ldr r0, [r5, #0xc]
|
|
bl SaveArray_Party_Get
|
|
add r1, r6, #0x0
|
|
add r1, #0x22
|
|
ldrb r1, [r1, #0x0]
|
|
bl Party_GetMonByIndex
|
|
add r1, r0, #0x0
|
|
add r0, r5, #0x0
|
|
mov r2, #0xb
|
|
bl sub_02037F90
|
|
mov r1, #0x7e
|
|
lsl r1, r1, #0x2
|
|
str r0, [r4, r1]
|
|
add r2, r6, #0x0
|
|
add r2, #0x22
|
|
ldrh r0, [r6, #0x24]
|
|
ldrb r2, [r2, #0x0]
|
|
mov r1, #0x2
|
|
bl sub_02036BC4
|
|
mov r1, #0x7f
|
|
lsl r1, r1, #0x2
|
|
str r0, [r4, r1]
|
|
ldr r1, _02036278 ; =sub_02036BDC
|
|
add r0, r4, #0x0
|
|
bl StartMenu_SetExitTaskFunc
|
|
b _0203625E
|
|
_020360EA:
|
|
mov r0, #0xb
|
|
mov r1, #0x4
|
|
bl Heap_Alloc
|
|
add r1, r6, #0x0
|
|
add r1, #0x22
|
|
ldrb r1, [r1, #0x0]
|
|
str r1, [r0, #0x0]
|
|
mov r1, #0x7f
|
|
lsl r1, r1, #0x2
|
|
str r0, [r4, r1]
|
|
ldr r0, [r5, #0xc]
|
|
bl Save_Bag_Get
|
|
add r7, r0, #0x0
|
|
ldr r0, [r5, #0xc]
|
|
bl Save_PlayerData_GetProfile
|
|
ldr r1, _0203627C ; =UNK_020F2A90
|
|
add r0, r7, #0x0
|
|
mov r2, #0xb
|
|
bl Bag_CreateView
|
|
mov r1, #0x7e
|
|
lsl r1, r1, #0x2
|
|
add r3, r5, #0x0
|
|
str r0, [r4, r1]
|
|
add r3, #0x94
|
|
ldr r0, [r4, r1]
|
|
ldr r1, [r5, #0xc]
|
|
ldr r3, [r3, #0x0]
|
|
mov r2, #0x1
|
|
bl sub_0206E314
|
|
mov r1, #0x7e
|
|
lsl r1, r1, #0x2
|
|
ldr r1, [r4, r1]
|
|
add r0, r5, #0x0
|
|
bl sub_0203781C
|
|
ldr r1, _02036280 ; =sub_020362E4
|
|
add r0, r4, #0x0
|
|
bl StartMenu_SetExitTaskFunc
|
|
b _0203625E
|
|
_02036144:
|
|
mov r0, #0xb
|
|
mov r1, #0xc
|
|
bl Heap_Alloc
|
|
ldrh r1, [r6, #0x24]
|
|
strh r1, [r0, #0x2]
|
|
mov r1, #0x3
|
|
strb r1, [r0, #0x1]
|
|
add r1, r6, #0x0
|
|
add r1, #0x22
|
|
ldrb r1, [r1, #0x0]
|
|
strb r1, [r0, #0x0]
|
|
ldrh r1, [r6, #0x38]
|
|
strh r1, [r0, #0x4]
|
|
ldr r1, [r6, #0x3c]
|
|
str r1, [r0, #0x8]
|
|
mov r1, #0x7e
|
|
lsl r1, r1, #0x2
|
|
str r0, [r4, r1]
|
|
mov r0, #0x6
|
|
strh r0, [r4, #0x2a]
|
|
b _0203625E
|
|
_02036170:
|
|
mov r0, #0xb
|
|
mov r1, #0xc
|
|
bl Heap_Alloc
|
|
add r7, r0, #0x0
|
|
ldr r0, [r5, #0x1c]
|
|
ldr r0, [r0, #0x0]
|
|
bl MapHeader_GetMapEvolutionMethod
|
|
strh r0, [r7, #0x2]
|
|
mov r0, #0x0
|
|
strb r0, [r7, #0x1]
|
|
add r0, r6, #0x0
|
|
add r0, #0x22
|
|
ldrb r0, [r0, #0x0]
|
|
strb r0, [r7, #0x0]
|
|
ldrh r0, [r6, #0x38]
|
|
strh r0, [r7, #0x4]
|
|
ldr r0, [r6, #0x3c]
|
|
str r0, [r7, #0x8]
|
|
mov r0, #0x7e
|
|
lsl r0, r0, #0x2
|
|
str r7, [r4, r0]
|
|
mov r0, #0x6
|
|
strh r0, [r4, #0x2a]
|
|
b _0203625E
|
|
_020361A4:
|
|
sub r0, #0xb
|
|
add r1, sp, #0x4
|
|
strh r0, [r1, #0x6]
|
|
add r0, r6, #0x0
|
|
add r0, #0x22
|
|
ldrb r0, [r0, #0x0]
|
|
strh r0, [r1, #0x4]
|
|
str r7, [sp, #0x4]
|
|
ldrh r1, [r1, #0x6]
|
|
mov r0, #0x0
|
|
bl FieldMove_GetMoveFunc
|
|
mov r1, #0x7a
|
|
lsl r1, r1, #0x2
|
|
add r2, r0, #0x0
|
|
add r0, sp, #0x4
|
|
add r1, r4, r1
|
|
blx r2
|
|
b _0203625E
|
|
_020361CA:
|
|
mov r1, #0x73
|
|
lsl r1, r1, #0x2
|
|
add r0, r5, #0x0
|
|
add r1, r4, r1
|
|
bl sub_02037844
|
|
mov r1, #0x7e
|
|
lsl r1, r1, #0x2
|
|
str r0, [r4, r1]
|
|
ldr r1, _02036280 ; =sub_020362E4
|
|
add r0, r4, #0x0
|
|
bl StartMenu_SetExitTaskFunc
|
|
b _0203625E
|
|
_020361E6:
|
|
add r0, r6, #0x0
|
|
add r0, #0x20
|
|
ldrb r0, [r0, #0x0]
|
|
cmp r0, #0x5
|
|
beq _02036200
|
|
cmp r0, #0x6
|
|
beq _02036200
|
|
cmp r0, #0x7
|
|
beq _02036200
|
|
cmp r0, #0x10
|
|
beq _02036200
|
|
cmp r0, #0x8
|
|
bne _02036234
|
|
_02036200:
|
|
mov r1, #0x73
|
|
lsl r1, r1, #0x2
|
|
add r0, r5, #0x0
|
|
add r1, r4, r1
|
|
bl sub_02037844
|
|
mov r2, #0x7e
|
|
lsl r2, r2, #0x2
|
|
str r0, [r4, r2]
|
|
add r0, r6, #0x0
|
|
add r0, #0x22
|
|
ldrb r1, [r0, #0x0]
|
|
ldr r0, [r4, r2]
|
|
cmp r1, #0x6
|
|
blo _02036226
|
|
mov r1, #0x0
|
|
bl sub_0206E358
|
|
b _0203622A
|
|
_02036226:
|
|
bl sub_0206E358
|
|
_0203622A:
|
|
ldr r1, _02036280 ; =sub_020362E4
|
|
add r0, r4, #0x0
|
|
bl StartMenu_SetExitTaskFunc
|
|
b _0203625E
|
|
_02036234:
|
|
cmp r0, #0x9
|
|
bne _02036254
|
|
mov r1, #0x73
|
|
lsl r1, r1, #0x2
|
|
add r0, r5, #0x0
|
|
add r1, r4, r1
|
|
bl sub_02037844
|
|
mov r1, #0x7e
|
|
lsl r1, r1, #0x2
|
|
str r0, [r4, r1]
|
|
ldr r1, _02036280 ; =sub_020362E4
|
|
add r0, r4, #0x0
|
|
bl StartMenu_SetExitTaskFunc
|
|
b _0203625E
|
|
_02036254:
|
|
add r0, r5, #0x0
|
|
bl FieldSystem_LoadFieldOverlay
|
|
mov r0, #0xc
|
|
strh r0, [r4, #0x2a]
|
|
_0203625E:
|
|
add r0, r6, #0x0
|
|
bl Heap_Free
|
|
mov r0, #0x0
|
|
add sp, #0xc
|
|
pop {r4-r7, pc}
|
|
nop
|
|
_0203626C: .word UNK_020F2A9C
|
|
_02036270: .word sub_0203684C
|
|
_02036274: .word UNK_020F2A8C
|
|
_02036278: .word sub_02036BDC
|
|
_0203627C: .word UNK_020F2A90
|
|
_02036280: .word sub_020362E4
|
|
|
|
thumb_func_start sub_02036284
|
|
sub_02036284: ; 0x02036284
|
|
push {r4, lr}
|
|
bl TaskManager_GetEnvironment
|
|
add r4, r0, #0x0
|
|
mov r0, #0x0
|
|
bl ov05_021D7CA4
|
|
mov r0, #0x72
|
|
ldr r1, _020362A4 ; =sub_020362A8
|
|
lsl r0, r0, #0x2
|
|
str r1, [r4, r0]
|
|
mov r0, #0x2
|
|
strh r0, [r4, #0x2a]
|
|
mov r0, #0x1
|
|
pop {r4, pc}
|
|
nop
|
|
_020362A4: .word sub_020362A8
|
|
|
|
thumb_func_start sub_020362A8
|
|
sub_020362A8: ; 0x020362A8
|
|
push {r3-r5, lr}
|
|
add r4, r0, #0x0
|
|
bl TaskManager_GetFieldSystem
|
|
add r5, r0, #0x0
|
|
add r0, r4, #0x0
|
|
bl TaskManager_GetEnvironment
|
|
mov r1, #0x73
|
|
add r4, r0, #0x0
|
|
lsl r1, r1, #0x2
|
|
add r0, r5, #0x0
|
|
add r1, r4, r1
|
|
bl sub_02037844
|
|
mov r1, #0x7e
|
|
lsl r1, r1, #0x2
|
|
str r0, [r4, r1]
|
|
ldr r0, [r4, r1]
|
|
mov r1, #0x0
|
|
bl sub_0206E358
|
|
mov r0, #0x72
|
|
ldr r1, _020362E0 ; =sub_020362E4
|
|
lsl r0, r0, #0x2
|
|
str r1, [r4, r0]
|
|
mov r0, #0x0
|
|
pop {r3-r5, pc}
|
|
.balign 4
|
|
_020362E0: .word sub_020362E4
|
|
|
|
thumb_func_start sub_020362E4
|
|
sub_020362E4: ; 0x020362E4
|
|
push {r3-r7, lr}
|
|
sub sp, #0x18
|
|
add r5, r0, #0x0
|
|
bl TaskManager_GetFieldSystem
|
|
add r6, r0, #0x0
|
|
add r0, r5, #0x0
|
|
bl TaskManager_GetEnvironment
|
|
add r4, r0, #0x0
|
|
mov r0, #0xb
|
|
bl BagView_New
|
|
str r0, [sp, #0x8]
|
|
bl BagView_sizeof
|
|
mov r1, #0x7e
|
|
lsl r1, r1, #0x2
|
|
add r2, r0, #0x0
|
|
ldr r0, [sp, #0x8]
|
|
ldr r1, [r4, r1]
|
|
bl memcpy
|
|
mov r0, #0x7e
|
|
lsl r0, r0, #0x2
|
|
ldr r0, [r4, r0]
|
|
bl Heap_Free
|
|
ldr r0, [sp, #0x8]
|
|
bl sub_0206E384
|
|
cmp r0, #0x5
|
|
bls _02036328
|
|
b _020364EE
|
|
_02036328:
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #0x6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_02036334: ; jump table (using 16-bit offset)
|
|
.short _02036340 - _02036334 - 2; case 0
|
|
.short _0203637A - _02036334 - 2; case 1
|
|
.short _0203638A - _02036334 - 2; case 2
|
|
.short _020364EE - _02036334 - 2; case 3
|
|
.short _020363F6 - _02036334 - 2; case 4
|
|
.short _020364EE - _02036334 - 2; case 5
|
|
_02036340:
|
|
ldr r0, [sp, #0x8]
|
|
bl sub_0206E37C
|
|
add r1, sp, #0x10
|
|
strh r0, [r1, #0x4]
|
|
ldr r0, [sp, #0x8]
|
|
bl sub_0206E38C
|
|
add r1, sp, #0x10
|
|
strb r0, [r1, #0x6]
|
|
str r5, [sp, #0x10]
|
|
ldrh r0, [r1, #0x4]
|
|
mov r1, #0x6
|
|
mov r2, #0xb
|
|
bl GetItemAttr
|
|
add r1, r0, #0x0
|
|
lsl r1, r1, #0x10
|
|
mov r0, #0x0
|
|
lsr r1, r1, #0x10
|
|
bl sub_0205CE48
|
|
mov r1, #0x73
|
|
lsl r1, r1, #0x2
|
|
add r2, r0, #0x0
|
|
add r0, sp, #0x10
|
|
add r1, r4, r1
|
|
blx r2
|
|
b _020364F8
|
|
_0203637A:
|
|
ldr r0, [sp, #0x8]
|
|
bl sub_0206E37C
|
|
add r1, r0, #0x0
|
|
add r0, r5, #0x0
|
|
bl sub_0203695C
|
|
b _020364F8
|
|
_0203638A:
|
|
mov r0, #0xb
|
|
mov r1, #0x40
|
|
bl Heap_Alloc
|
|
mov r1, #0x0
|
|
mov r2, #0x40
|
|
add r5, r0, #0x0
|
|
bl memset
|
|
ldr r0, [r6, #0xc]
|
|
bl SaveArray_Party_Get
|
|
str r0, [r5, #0x0]
|
|
ldr r0, [r6, #0xc]
|
|
bl Save_Bag_Get
|
|
str r0, [r5, #0x4]
|
|
ldr r0, [r6, #0xc]
|
|
bl Save_Mailbox_Get
|
|
str r0, [r5, #0x8]
|
|
ldr r0, [r6, #0xc]
|
|
bl Save_PlayerData_GetOptionsAddr
|
|
str r0, [r5, #0xc]
|
|
mov r0, #0x7a
|
|
lsl r0, r0, #0x2
|
|
add r0, r4, r0
|
|
str r0, [r5, #0x18]
|
|
add r0, r5, #0x0
|
|
mov r1, #0x0
|
|
add r0, #0x21
|
|
strb r1, [r0, #0x0]
|
|
add r0, r5, #0x0
|
|
mov r1, #0x9
|
|
add r0, #0x20
|
|
strb r1, [r0, #0x0]
|
|
ldr r0, [sp, #0x8]
|
|
bl sub_0206E37C
|
|
strh r0, [r5, #0x24]
|
|
ldr r1, _02036504 ; =UNK_020F96DC
|
|
add r0, r6, #0x0
|
|
add r2, r5, #0x0
|
|
bl sub_020373D4
|
|
mov r0, #0x7e
|
|
lsl r0, r0, #0x2
|
|
str r5, [r4, r0]
|
|
ldr r1, _02036508 ; =sub_02035E50
|
|
add r0, r4, #0x0
|
|
bl StartMenu_SetExitTaskFunc
|
|
b _020364F8
|
|
_020363F6:
|
|
ldr r0, [r6, #0xc]
|
|
bl SaveArray_Party_Get
|
|
str r0, [sp, #0x4]
|
|
mov r0, #0x7f
|
|
lsl r0, r0, #0x2
|
|
ldr r0, [r4, r0]
|
|
ldr r7, [r0, #0x0]
|
|
ldr r0, [sp, #0x8]
|
|
bl sub_0206E37C
|
|
add r5, r0, #0x0
|
|
ldr r0, [sp, #0x4]
|
|
add r1, r7, #0x0
|
|
bl Party_GetMonByIndex
|
|
str r0, [sp, #0xc]
|
|
mov r0, #0x7f
|
|
lsl r0, r0, #0x2
|
|
ldr r0, [r4, r0]
|
|
bl Heap_Free
|
|
add r0, r5, #0x0
|
|
bl ItemIdIsMail
|
|
cmp r0, #0x1
|
|
bne _02036474
|
|
ldr r0, [sp, #0xc]
|
|
mov r1, #0x6
|
|
mov r2, #0x0
|
|
bl GetMonData
|
|
cmp r0, #0x0
|
|
bne _02036474
|
|
add r0, r5, #0x0
|
|
bl ItemToMailId
|
|
add r3, r0, #0x0
|
|
mov r0, #0xb
|
|
lsl r2, r7, #0x18
|
|
str r0, [sp, #0x0]
|
|
add r0, r6, #0x0
|
|
mov r1, #0x2
|
|
lsr r2, r2, #0x18
|
|
bl sub_02037F2C
|
|
mov r1, #0x7e
|
|
lsl r1, r1, #0x2
|
|
str r0, [r4, r1]
|
|
lsl r2, r7, #0x18
|
|
add r0, r5, #0x0
|
|
mov r1, #0x0
|
|
lsr r2, r2, #0x18
|
|
bl sub_02036BC4
|
|
mov r1, #0x7f
|
|
lsl r1, r1, #0x2
|
|
str r0, [r4, r1]
|
|
ldr r1, _0203650C ; =sub_02036BDC
|
|
add r0, r4, #0x0
|
|
bl StartMenu_SetExitTaskFunc
|
|
b _020364F8
|
|
_02036474:
|
|
mov r0, #0xb
|
|
mov r1, #0x40
|
|
bl Heap_Alloc
|
|
mov r1, #0x0
|
|
mov r2, #0x40
|
|
add r5, r0, #0x0
|
|
bl memset
|
|
ldr r0, [sp, #0x4]
|
|
str r0, [r5, #0x0]
|
|
ldr r0, [r6, #0xc]
|
|
bl Save_Bag_Get
|
|
str r0, [r5, #0x4]
|
|
ldr r0, [r6, #0xc]
|
|
bl Save_Mailbox_Get
|
|
str r0, [r5, #0x8]
|
|
ldr r0, [r6, #0xc]
|
|
bl Save_PlayerData_GetOptionsAddr
|
|
str r0, [r5, #0xc]
|
|
mov r0, #0x7a
|
|
lsl r0, r0, #0x2
|
|
add r0, r4, r0
|
|
str r0, [r5, #0x18]
|
|
add r0, r5, #0x0
|
|
mov r1, #0x0
|
|
add r0, #0x21
|
|
strb r1, [r0, #0x0]
|
|
ldr r0, [sp, #0x8]
|
|
bl sub_0206E37C
|
|
strh r0, [r5, #0x24]
|
|
add r0, r5, #0x0
|
|
add r0, #0x22
|
|
strb r7, [r0, #0x0]
|
|
str r6, [r5, #0x1c]
|
|
ldrh r0, [r5, #0x24]
|
|
cmp r0, #0x0
|
|
bne _020364CC
|
|
mov r1, #0x0
|
|
b _020364CE
|
|
_020364CC:
|
|
mov r1, #0xa
|
|
_020364CE:
|
|
add r0, r5, #0x0
|
|
add r0, #0x20
|
|
strb r1, [r0, #0x0]
|
|
ldr r1, _02036504 ; =UNK_020F96DC
|
|
add r0, r6, #0x0
|
|
add r2, r5, #0x0
|
|
bl sub_020373D4
|
|
mov r0, #0x7e
|
|
lsl r0, r0, #0x2
|
|
str r5, [r4, r0]
|
|
ldr r1, _02036508 ; =sub_02035E50
|
|
add r0, r4, #0x0
|
|
bl StartMenu_SetExitTaskFunc
|
|
b _020364F8
|
|
_020364EE:
|
|
add r0, r6, #0x0
|
|
bl FieldSystem_LoadFieldOverlay
|
|
mov r0, #0xc
|
|
strh r0, [r4, #0x2a]
|
|
_020364F8:
|
|
ldr r0, [sp, #0x8]
|
|
bl Heap_Free
|
|
mov r0, #0x0
|
|
add sp, #0x18
|
|
pop {r3-r7, pc}
|
|
.balign 4
|
|
_02036504: .word UNK_020F96DC
|
|
_02036508: .word sub_02035E50
|
|
_0203650C: .word sub_02036BDC
|
|
|
|
thumb_func_start sub_02036510
|
|
sub_02036510: ; 0x02036510
|
|
push {r4, lr}
|
|
bl TaskManager_GetEnvironment
|
|
add r4, r0, #0x0
|
|
mov r0, #0x0
|
|
bl ov05_021D7CA4
|
|
mov r0, #0x72
|
|
ldr r1, _02036530 ; =sub_02036534
|
|
lsl r0, r0, #0x2
|
|
str r1, [r4, r0]
|
|
mov r0, #0x2
|
|
strh r0, [r4, #0x2a]
|
|
mov r0, #0x1
|
|
pop {r4, pc}
|
|
nop
|
|
_02036530: .word sub_02036534
|
|
|
|
thumb_func_start sub_02036534
|
|
sub_02036534: ; 0x02036534
|
|
push {r3-r5, lr}
|
|
sub sp, #0x8
|
|
add r4, r0, #0x0
|
|
bl TaskManager_GetFieldSystem
|
|
add r5, r0, #0x0
|
|
add r0, r4, #0x0
|
|
bl TaskManager_GetEnvironment
|
|
add r4, r0, #0x0
|
|
mov r0, #0xb
|
|
bl sub_02065054
|
|
mov r1, #0x7e
|
|
lsl r1, r1, #0x2
|
|
str r0, [r4, r1]
|
|
str r5, [sp, #0x0]
|
|
ldr r0, [r4, r1]
|
|
mov r2, #0x0
|
|
str r0, [sp, #0x4]
|
|
mov r0, #0x1
|
|
add r1, r0, #0x0
|
|
mov r3, #0xff
|
|
bl sub_02064E90
|
|
mov r1, #0x7e
|
|
lsl r1, r1, #0x2
|
|
ldr r1, [r4, r1]
|
|
add r0, r5, #0x0
|
|
bl sub_02038680
|
|
mov r0, #0x72
|
|
ldr r1, _02036580 ; =sub_02036584
|
|
lsl r0, r0, #0x2
|
|
str r1, [r4, r0]
|
|
mov r0, #0x0
|
|
add sp, #0x8
|
|
pop {r3-r5, pc}
|
|
.balign 4
|
|
_02036580: .word sub_02036584
|
|
|
|
thumb_func_start sub_02036584
|
|
sub_02036584: ; 0x02036584
|
|
push {r3-r5, lr}
|
|
add r4, r0, #0x0
|
|
bl TaskManager_GetFieldSystem
|
|
add r5, r0, #0x0
|
|
add r0, r4, #0x0
|
|
bl TaskManager_GetEnvironment
|
|
mov r1, #0x7e
|
|
add r4, r0, #0x0
|
|
lsl r1, r1, #0x2
|
|
ldr r1, [r4, r1]
|
|
add r0, r5, #0x0
|
|
bl sub_02065314
|
|
mov r0, #0x7e
|
|
lsl r0, r0, #0x2
|
|
ldr r0, [r4, r0]
|
|
bl sub_02065070
|
|
add r0, r5, #0x0
|
|
bl FieldSystem_LoadFieldOverlay
|
|
mov r0, #0xc
|
|
strh r0, [r4, #0x2a]
|
|
mov r0, #0x0
|
|
pop {r3-r5, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_020365BC
|
|
sub_020365BC: ; 0x020365BC
|
|
push {r3-r5, lr}
|
|
add r5, r0, #0x0
|
|
bl TaskManager_GetEnvironment
|
|
add r4, r0, #0x0
|
|
bl sub_02035718
|
|
add r0, r4, #0x0
|
|
mov r1, #0x1
|
|
bl ClearFrameAndWindow1
|
|
ldrb r1, [r4, #0x4]
|
|
ldr r0, [r4, #0x0]
|
|
bl ScheduleBgTilemapBufferTransfer
|
|
add r0, r4, #0x0
|
|
bl RemoveWindow
|
|
add r0, r5, #0x0
|
|
bl sub_020358A0
|
|
mov r0, #0x4
|
|
strh r0, [r4, #0x2a]
|
|
mov r0, #0x1
|
|
pop {r3-r5, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_020365F0
|
|
sub_020365F0: ; 0x020365F0
|
|
push {r3-r5, lr}
|
|
add r5, r0, #0x0
|
|
bl TaskManager_GetEnvironment
|
|
add r4, r0, #0x0
|
|
add r0, r5, #0x0
|
|
bl TaskManager_GetFieldSystem
|
|
ldr r0, [r0, #0xc]
|
|
bl Save_FileDoesNotBelongToPlayer
|
|
cmp r0, #0x0
|
|
beq _02036618
|
|
mov r2, #0x0
|
|
ldr r1, _0203663C ; =0x000007F2
|
|
add r0, r5, #0x0
|
|
add r3, r2, #0x0
|
|
bl QueueScript
|
|
b _02036636
|
|
_02036618:
|
|
mov r0, #0x20
|
|
mov r1, #0x8
|
|
bl Heap_Alloc
|
|
mov r1, #0x7e
|
|
lsl r1, r1, #0x2
|
|
str r0, [r4, r1]
|
|
ldr r3, [r4, r1]
|
|
mov r2, #0x0
|
|
strh r2, [r3, #0x4]
|
|
ldr r1, _02036640 ; =0x000007D5
|
|
add r0, r5, #0x0
|
|
add r3, r3, #0x4
|
|
bl QueueScript
|
|
_02036636:
|
|
mov r0, #0x5
|
|
strh r0, [r4, #0x2a]
|
|
pop {r3-r5, pc}
|
|
.balign 4
|
|
_0203663C: .word 0x000007F2
|
|
_02036640: .word 0x000007D5
|
|
|
|
thumb_func_start sub_02036644
|
|
sub_02036644: ; 0x02036644
|
|
push {r4-r6, lr}
|
|
add r4, r0, #0x0
|
|
bl TaskManager_GetFieldSystem
|
|
add r6, r0, #0x0
|
|
add r0, r4, #0x0
|
|
bl TaskManager_GetEnvironment
|
|
add r4, r0, #0x0
|
|
mov r0, #0x7e
|
|
lsl r0, r0, #0x2
|
|
ldr r5, [r4, r0]
|
|
ldr r0, [r6, #0xc]
|
|
bl Save_FileDoesNotBelongToPlayer
|
|
cmp r0, #0x0
|
|
beq _0203666C
|
|
mov r0, #0x0
|
|
strh r0, [r4, #0x2a]
|
|
pop {r4-r6, pc}
|
|
_0203666C:
|
|
ldrh r0, [r5, #0x4]
|
|
cmp r0, #0x0
|
|
bne _02036676
|
|
mov r0, #0x0
|
|
b _02036678
|
|
_02036676:
|
|
mov r0, #0xf
|
|
_02036678:
|
|
strh r0, [r4, #0x2a]
|
|
add r0, r5, #0x0
|
|
bl Heap_Free
|
|
pop {r4-r6, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02036684
|
|
sub_02036684: ; 0x02036684
|
|
push {r4, lr}
|
|
bl TaskManager_GetEnvironment
|
|
add r4, r0, #0x0
|
|
mov r0, #0x0
|
|
bl ov05_021D7CA4
|
|
mov r0, #0x72
|
|
ldr r1, _020366A4 ; =sub_020366A8
|
|
lsl r0, r0, #0x2
|
|
str r1, [r4, r0]
|
|
mov r0, #0x2
|
|
strh r0, [r4, #0x2a]
|
|
mov r0, #0x1
|
|
pop {r4, pc}
|
|
nop
|
|
_020366A4: .word sub_020366A8
|
|
|
|
thumb_func_start sub_020366A8
|
|
sub_020366A8: ; 0x020366A8
|
|
push {r3-r5, lr}
|
|
add r4, r0, #0x0
|
|
bl TaskManager_GetFieldSystem
|
|
add r5, r0, #0x0
|
|
add r0, r4, #0x0
|
|
bl TaskManager_GetEnvironment
|
|
add r4, r0, #0x0
|
|
add r0, r5, #0x0
|
|
bl sub_02037EF8
|
|
mov r1, #0x7e
|
|
lsl r1, r1, #0x2
|
|
str r0, [r4, r1]
|
|
ldr r0, _020366D0 ; =sub_020366D4
|
|
sub r1, #0x30
|
|
str r0, [r4, r1]
|
|
mov r0, #0x0
|
|
pop {r3-r5, pc}
|
|
.balign 4
|
|
_020366D0: .word sub_020366D4
|
|
|
|
thumb_func_start sub_020366D4
|
|
sub_020366D4: ; 0x020366D4
|
|
push {r3-r5, lr}
|
|
add r4, r0, #0x0
|
|
bl TaskManager_GetFieldSystem
|
|
add r5, r0, #0x0
|
|
add r0, r4, #0x0
|
|
bl TaskManager_GetEnvironment
|
|
add r4, r0, #0x0
|
|
mov r0, #0x7e
|
|
lsl r0, r0, #0x2
|
|
ldr r0, [r4, r0]
|
|
bl Heap_Free
|
|
add r0, r5, #0x0
|
|
bl FieldSystem_LoadFieldOverlay
|
|
mov r0, #0xc
|
|
strh r0, [r4, #0x2a]
|
|
mov r0, #0x0
|
|
pop {r3-r5, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02036700
|
|
sub_02036700: ; 0x02036700
|
|
push {r4, lr}
|
|
bl TaskManager_GetEnvironment
|
|
add r4, r0, #0x0
|
|
mov r0, #0x0
|
|
bl ov05_021D7CA4
|
|
mov r0, #0x72
|
|
ldr r1, _02036720 ; =sub_02036724
|
|
lsl r0, r0, #0x2
|
|
str r1, [r4, r0]
|
|
mov r0, #0x2
|
|
strh r0, [r4, #0x2a]
|
|
mov r0, #0x1
|
|
pop {r4, pc}
|
|
nop
|
|
_02036720: .word sub_02036724
|
|
|
|
thumb_func_start sub_02036724
|
|
sub_02036724: ; 0x02036724
|
|
push {r3-r5, lr}
|
|
sub sp, #0x8
|
|
add r4, r0, #0x0
|
|
bl TaskManager_GetFieldSystem
|
|
add r5, r0, #0x0
|
|
add r0, r4, #0x0
|
|
bl TaskManager_GetEnvironment
|
|
add r4, r0, #0x0
|
|
ldr r2, [r5, #0xc]
|
|
mov r0, #0x2
|
|
mov r1, #0x0
|
|
mov r3, #0xb
|
|
bl sub_02085338
|
|
mov r1, #0x7e
|
|
lsl r1, r1, #0x2
|
|
str r0, [r4, r1]
|
|
add r0, sp, #0x0
|
|
mov r1, #0x4
|
|
bl MailMsg_Init_WithBank
|
|
mov r0, #0x7e
|
|
lsl r0, r0, #0x2
|
|
ldr r0, [r4, r0]
|
|
add r1, sp, #0x0
|
|
bl sub_020853BC
|
|
mov r1, #0x7e
|
|
lsl r1, r1, #0x2
|
|
ldr r1, [r4, r1]
|
|
add r0, r5, #0x0
|
|
bl sub_02037E80
|
|
mov r0, #0x72
|
|
ldr r1, _02036778 ; =sub_0203677C
|
|
lsl r0, r0, #0x2
|
|
str r1, [r4, r0]
|
|
mov r0, #0x0
|
|
add sp, #0x8
|
|
pop {r3-r5, pc}
|
|
.balign 4
|
|
_02036778: .word sub_0203677C
|
|
|
|
thumb_func_start sub_0203677C
|
|
sub_0203677C: ; 0x0203677C
|
|
push {r3-r5, lr}
|
|
sub sp, #0x8
|
|
add r5, r0, #0x0
|
|
bl TaskManager_GetFieldSystem
|
|
add r4, r0, #0x0
|
|
add r0, r5, #0x0
|
|
bl TaskManager_GetEnvironment
|
|
add r5, r0, #0x0
|
|
mov r0, #0x7e
|
|
lsl r0, r0, #0x2
|
|
ldr r0, [r5, r0]
|
|
bl sub_020853E4
|
|
cmp r0, #0x0
|
|
bne _020367C6
|
|
mov r0, #0x7e
|
|
lsl r0, r0, #0x2
|
|
ldr r0, [r5, r0]
|
|
add r1, sp, #0x0
|
|
bl sub_020853FC
|
|
bl sub_0202EDF8
|
|
cmp r0, #0x0
|
|
beq _020367C0
|
|
add r0, sp, #0x0
|
|
bl sub_02052DE8
|
|
ldr r0, [r4, #0x78]
|
|
add r1, sp, #0x0
|
|
bl sub_02052CD8
|
|
_020367C0:
|
|
mov r0, #0x8
|
|
strh r0, [r5, #0x2a]
|
|
b _020367CA
|
|
_020367C6:
|
|
mov r0, #0xc
|
|
strh r0, [r5, #0x2a]
|
|
_020367CA:
|
|
mov r0, #0x7e
|
|
lsl r0, r0, #0x2
|
|
ldr r0, [r5, r0]
|
|
bl sub_020853A8
|
|
add r0, r4, #0x0
|
|
bl FieldSystem_LoadFieldOverlay
|
|
ldr r0, [r4, #0x7c]
|
|
bl sub_02052F74
|
|
mov r0, #0x0
|
|
add sp, #0x8
|
|
pop {r3-r5, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_020367E8
|
|
sub_020367E8: ; 0x020367E8
|
|
push {r4-r6, lr}
|
|
add r5, r0, #0x0
|
|
bl TaskManager_GetFieldSystem
|
|
add r6, r0, #0x0
|
|
add r0, r5, #0x0
|
|
bl TaskManager_GetEnvironment
|
|
add r4, r0, #0x0
|
|
bl sub_02035718
|
|
add r0, r4, #0x0
|
|
mov r1, #0x1
|
|
bl ClearFrameAndWindow1
|
|
ldrb r1, [r4, #0x4]
|
|
ldr r0, [r4, #0x0]
|
|
bl ScheduleBgTilemapBufferTransfer
|
|
add r0, r4, #0x0
|
|
bl RemoveWindow
|
|
add r0, r5, #0x0
|
|
bl sub_020358A0
|
|
ldr r0, [r6, #0xc]
|
|
bl Save_VarsFlags_Get
|
|
bl Save_VarsFlags_CheckSafariSysFlag
|
|
cmp r0, #0x1
|
|
bne _02036834
|
|
ldr r1, _02036848 ; =0x00002275
|
|
add r0, r5, #0x0
|
|
mov r2, #0x0
|
|
bl StartScriptFromMenu
|
|
b _0203683E
|
|
_02036834:
|
|
add r0, r5, #0x0
|
|
mov r1, #0x4
|
|
mov r2, #0x0
|
|
bl StartScriptFromMenu
|
|
_0203683E:
|
|
add r0, r4, #0x0
|
|
bl Heap_Free
|
|
mov r0, #0x0
|
|
pop {r4-r6, pc}
|
|
.balign 4
|
|
_02036848: .word 0x00002275
|
|
|
|
thumb_func_start sub_0203684C
|
|
sub_0203684C: ; 0x0203684C
|
|
push {r3-r7, lr}
|
|
add r4, r0, #0x0
|
|
bl TaskManager_GetFieldSystem
|
|
add r6, r0, #0x0
|
|
add r0, r4, #0x0
|
|
bl TaskManager_GetEnvironment
|
|
add r4, r0, #0x0
|
|
mov r0, #0xb
|
|
mov r1, #0x30
|
|
bl Heap_Alloc
|
|
mov r1, #0x7e
|
|
lsl r1, r1, #0x2
|
|
ldr r1, [r4, r1]
|
|
mov r2, #0x30
|
|
add r7, r0, #0x0
|
|
bl memcpy
|
|
mov r0, #0x7e
|
|
lsl r0, r0, #0x2
|
|
ldr r0, [r4, r0]
|
|
bl Heap_Free
|
|
ldrb r0, [r7, #0x12]
|
|
cmp r0, #0x2
|
|
bne _0203692E
|
|
mov r0, #0xb
|
|
mov r1, #0x40
|
|
bl Heap_Alloc
|
|
mov r1, #0x7f
|
|
lsl r1, r1, #0x2
|
|
ldr r1, [r4, r1]
|
|
mov r2, #0x40
|
|
str r1, [sp, #0x0]
|
|
mov r1, #0x0
|
|
add r5, r0, #0x0
|
|
bl memset
|
|
ldr r0, [r6, #0xc]
|
|
bl SaveArray_Party_Get
|
|
str r0, [r5, #0x0]
|
|
ldr r0, [r6, #0xc]
|
|
bl Save_Bag_Get
|
|
str r0, [r5, #0x4]
|
|
ldr r0, [r6, #0xc]
|
|
bl Save_Mailbox_Get
|
|
str r0, [r5, #0x8]
|
|
ldr r0, [r6, #0xc]
|
|
bl Save_PlayerData_GetOptionsAddr
|
|
str r0, [r5, #0xc]
|
|
mov r0, #0x7a
|
|
lsl r0, r0, #0x2
|
|
add r0, r4, r0
|
|
add r1, r5, #0x0
|
|
str r0, [r5, #0x18]
|
|
mov r0, #0x0
|
|
add r1, #0x21
|
|
strb r0, [r1, #0x0]
|
|
ldr r1, [sp, #0x0]
|
|
str r6, [r5, #0x1c]
|
|
ldrh r1, [r1, #0x0]
|
|
cmp r1, #0x0
|
|
beq _020368E2
|
|
add r1, r5, #0x0
|
|
mov r2, #0x7
|
|
add r1, #0x20
|
|
strb r2, [r1, #0x0]
|
|
b _020368EE
|
|
_020368E2:
|
|
add r0, r5, #0x0
|
|
mov r1, #0x8
|
|
add r0, #0x20
|
|
strb r1, [r0, #0x0]
|
|
ldr r0, [sp, #0x0]
|
|
ldrh r0, [r0, #0x2]
|
|
_020368EE:
|
|
str r0, [r5, #0x34]
|
|
ldr r0, [sp, #0x0]
|
|
add r2, r5, #0x0
|
|
ldrh r0, [r0, #0x0]
|
|
strh r0, [r5, #0x24]
|
|
add r0, r5, #0x0
|
|
ldrb r1, [r7, #0x14]
|
|
add r0, #0x22
|
|
strb r1, [r0, #0x0]
|
|
ldrh r0, [r7, #0x18]
|
|
strh r0, [r5, #0x26]
|
|
add r0, r5, #0x0
|
|
ldrb r1, [r7, #0x16]
|
|
add r0, #0x28
|
|
strb r1, [r0, #0x0]
|
|
ldr r1, _02036954 ; =UNK_020F96DC
|
|
add r0, r6, #0x0
|
|
bl sub_020373D4
|
|
mov r0, #0x7f
|
|
lsl r0, r0, #0x2
|
|
ldr r0, [r4, r0]
|
|
bl Heap_Free
|
|
mov r0, #0x7e
|
|
lsl r0, r0, #0x2
|
|
str r5, [r4, r0]
|
|
ldr r1, _02036958 ; =sub_02035E50
|
|
add r0, r4, #0x0
|
|
bl StartMenu_SetExitTaskFunc
|
|
b _0203694A
|
|
_0203692E:
|
|
mov r1, #0x7a
|
|
lsl r1, r1, #0x2
|
|
ldrb r2, [r7, #0x14]
|
|
add r0, r6, #0x0
|
|
add r1, r4, r1
|
|
bl sub_020379C8
|
|
mov r1, #0x7e
|
|
lsl r1, r1, #0x2
|
|
str r0, [r4, r1]
|
|
ldr r1, _02036958 ; =sub_02035E50
|
|
add r0, r4, #0x0
|
|
bl StartMenu_SetExitTaskFunc
|
|
_0203694A:
|
|
add r0, r7, #0x0
|
|
bl Heap_Free
|
|
mov r0, #0x0
|
|
pop {r3-r7, pc}
|
|
.balign 4
|
|
_02036954: .word UNK_020F96DC
|
|
_02036958: .word sub_02035E50
|
|
|
|
thumb_func_start sub_0203695C
|
|
sub_0203695C: ; 0x0203695C
|
|
push {r4-r7, lr}
|
|
sub sp, #0xc
|
|
add r5, r0, #0x0
|
|
add r4, r1, #0x0
|
|
bl TaskManager_GetFieldSystem
|
|
str r0, [sp, #0x4]
|
|
add r0, r5, #0x0
|
|
bl TaskManager_GetEnvironment
|
|
add r6, r0, #0x0
|
|
mov r0, #0xb
|
|
bl sub_020851B8
|
|
mov r1, #0x7e
|
|
lsl r1, r1, #0x2
|
|
str r0, [r6, r1]
|
|
ldr r0, [sp, #0x4]
|
|
ldr r0, [r0, #0xc]
|
|
bl Save_Bag_Get
|
|
str r0, [sp, #0x0]
|
|
mov r0, #0x7e
|
|
lsl r0, r0, #0x2
|
|
ldr r0, [r6, r0]
|
|
add r1, r4, #0x0
|
|
mov r2, #0x1
|
|
bl sub_020851DC
|
|
mov r5, #0x0
|
|
add r4, r5, #0x0
|
|
_0203699A:
|
|
add r0, r4, #0x0
|
|
bl BerryToItemId
|
|
add r7, r0, #0x0
|
|
ldr r0, [sp, #0x0]
|
|
add r1, r7, #0x0
|
|
mov r2, #0x1
|
|
mov r3, #0xb
|
|
bl Bag_HasItem
|
|
cmp r0, #0x1
|
|
bne _020369C6
|
|
mov r0, #0x7e
|
|
lsl r0, r0, #0x2
|
|
ldr r0, [r6, r0]
|
|
add r1, r7, #0x0
|
|
mov r2, #0x0
|
|
bl sub_020851DC
|
|
add r0, r5, #0x1
|
|
lsl r0, r0, #0x18
|
|
lsr r5, r0, #0x18
|
|
_020369C6:
|
|
add r0, r4, #0x1
|
|
lsl r0, r0, #0x18
|
|
lsr r4, r0, #0x18
|
|
cmp r4, #0x40
|
|
blo _0203699A
|
|
ldr r0, [sp, #0x4]
|
|
add r3, sp, #0x8
|
|
add r0, #0x94
|
|
ldr r0, [r0, #0x0]
|
|
mov r1, #0x4
|
|
add r2, sp, #0x8
|
|
add r3, #0x1
|
|
bl BagCursor_Field_PocketGetPosition
|
|
mov r0, #0x7e
|
|
add r2, sp, #0x8
|
|
lsl r0, r0, #0x2
|
|
ldrb r1, [r2, #0x1]
|
|
add r3, r5, #0x3
|
|
lsl r3, r3, #0x18
|
|
ldrb r2, [r2, #0x0]
|
|
ldr r0, [r6, r0]
|
|
lsr r3, r3, #0x18
|
|
bl sub_020851F8
|
|
mov r1, #0x7e
|
|
lsl r1, r1, #0x2
|
|
ldr r0, [sp, #0x4]
|
|
ldr r1, [r6, r1]
|
|
bl sub_0203791C
|
|
ldr r1, _02036A10 ; =sub_02036A14
|
|
add r0, r6, #0x0
|
|
bl StartMenu_SetExitTaskFunc
|
|
add sp, #0xc
|
|
pop {r4-r7, pc}
|
|
.balign 4
|
|
_02036A10: .word sub_02036A14
|
|
|
|
thumb_func_start sub_02036A14
|
|
sub_02036A14: ; 0x02036A14
|
|
push {r3-r5, lr}
|
|
add r4, r0, #0x0
|
|
bl TaskManager_GetFieldSystem
|
|
add r5, r0, #0x0
|
|
add r0, r4, #0x0
|
|
bl TaskManager_GetEnvironment
|
|
add r4, r0, #0x0
|
|
mov r0, #0x7e
|
|
lsl r0, r0, #0x2
|
|
add r1, sp, #0x0
|
|
ldr r0, [r4, r0]
|
|
add r1, #0x1
|
|
add r2, sp, #0x0
|
|
bl sub_0208524C
|
|
add r0, r5, #0x0
|
|
add r3, sp, #0x0
|
|
add r0, #0x94
|
|
ldrb r2, [r3, #0x0]
|
|
ldrb r3, [r3, #0x1]
|
|
ldr r0, [r0, #0x0]
|
|
mov r1, #0x4
|
|
bl BagCursor_Field_PocketSetPosition
|
|
mov r1, #0x7e
|
|
lsl r1, r1, #0x2
|
|
ldr r1, [r4, r1]
|
|
mov r0, #0xb
|
|
bl Heap_FreeExplicit
|
|
mov r1, #0x73
|
|
lsl r1, r1, #0x2
|
|
add r0, r5, #0x0
|
|
add r1, r4, r1
|
|
bl sub_02037844
|
|
mov r1, #0x7e
|
|
lsl r1, r1, #0x2
|
|
str r0, [r4, r1]
|
|
ldr r1, _02036A74 ; =sub_020362E4
|
|
add r0, r4, #0x0
|
|
bl StartMenu_SetExitTaskFunc
|
|
mov r0, #0x0
|
|
pop {r3-r5, pc}
|
|
nop
|
|
_02036A74: .word sub_020362E4
|
|
|
|
thumb_func_start sub_02036A78
|
|
sub_02036A78: ; 0x02036A78
|
|
push {r3-r5, lr}
|
|
add r4, r0, #0x0
|
|
bl TaskManager_GetFieldSystem
|
|
add r5, r0, #0x0
|
|
add r0, r4, #0x0
|
|
bl TaskManager_GetEnvironment
|
|
mov r1, #0x7e
|
|
add r4, r0, #0x0
|
|
lsl r1, r1, #0x2
|
|
ldr r1, [r4, r1]
|
|
mov r0, #0xb
|
|
bl Heap_FreeExplicit
|
|
mov r1, #0x73
|
|
lsl r1, r1, #0x2
|
|
add r0, r5, #0x0
|
|
add r1, r4, r1
|
|
bl sub_02037844
|
|
mov r1, #0x7e
|
|
lsl r1, r1, #0x2
|
|
str r0, [r4, r1]
|
|
ldr r1, _02036AB4 ; =sub_020362E4
|
|
add r0, r4, #0x0
|
|
bl StartMenu_SetExitTaskFunc
|
|
mov r0, #0x0
|
|
pop {r3-r5, pc}
|
|
.balign 4
|
|
_02036AB4: .word sub_020362E4
|
|
|
|
thumb_func_start Task_UseFlyInField
|
|
Task_UseFlyInField: ; 0x02036AB8
|
|
push {r3-r7, lr}
|
|
sub sp, #0x8
|
|
add r4, r0, #0x0
|
|
bl TaskManager_GetFieldSystem
|
|
add r6, r0, #0x0
|
|
add r0, r4, #0x0
|
|
bl TaskManager_GetEnvironment
|
|
add r4, r0, #0x0
|
|
mov r0, #0x7f
|
|
lsl r0, r0, #0x2
|
|
ldr r1, [r4, r0]
|
|
mov r0, #0xb
|
|
ldr r7, [r1, #0x0]
|
|
bl Heap_FreeExplicit
|
|
mov r0, #0x7e
|
|
lsl r0, r0, #0x2
|
|
ldr r5, [r4, r0]
|
|
ldr r0, [r5, #0x10]
|
|
cmp r0, #0x0
|
|
bne _02036B0E
|
|
mov r0, #0xb
|
|
add r1, r5, #0x0
|
|
bl Heap_FreeExplicit
|
|
mov r1, #0x7a
|
|
lsl r1, r1, #0x2
|
|
lsl r2, r7, #0x18
|
|
add r0, r6, #0x0
|
|
add r1, r4, r1
|
|
lsr r2, r2, #0x18
|
|
bl sub_020379C8
|
|
mov r1, #0x7e
|
|
lsl r1, r1, #0x2
|
|
str r0, [r4, r1]
|
|
ldr r1, _02036B88 ; =sub_02035E50
|
|
add r0, r4, #0x0
|
|
bl StartMenu_SetExitTaskFunc
|
|
b _02036B82
|
|
_02036B0E:
|
|
ldr r0, [r6, #0xc]
|
|
bl SaveArray_Party_Get
|
|
add r1, r7, #0x0
|
|
bl Party_GetMonByIndex
|
|
add r2, r0, #0x0
|
|
ldr r0, [r5, #0x14]
|
|
add r1, r6, #0x0
|
|
lsl r0, r0, #0x5
|
|
add r0, #0x10
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
str r0, [sp, #0x0]
|
|
ldr r0, [r5, #0x18]
|
|
lsl r0, r0, #0x5
|
|
add r0, #0x10
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
str r0, [sp, #0x4]
|
|
ldr r3, [r5, #0x1c]
|
|
mov r0, #0xb
|
|
lsl r3, r3, #0x10
|
|
lsr r3, r3, #0x10
|
|
bl sub_02063888
|
|
ldr r1, [r5, #0x1c]
|
|
add r7, r0, #0x0
|
|
lsl r1, r1, #0x10
|
|
mov r0, #0x1
|
|
lsr r1, r1, #0x10
|
|
mov r2, #0xb
|
|
bl sub_0202914C
|
|
add r1, r0, #0x0
|
|
add r0, r6, #0x0
|
|
add r0, #0x98
|
|
ldr r0, [r0, #0x0]
|
|
mov r2, #0x1
|
|
bl sub_02028AD4
|
|
mov r1, #0x7e
|
|
lsl r1, r1, #0x2
|
|
ldr r1, [r4, r1]
|
|
mov r0, #0xb
|
|
bl Heap_FreeExplicit
|
|
add r0, r6, #0x0
|
|
bl FieldSystem_LoadFieldOverlay
|
|
mov r0, #0x72
|
|
ldr r1, _02036B8C ; =sub_020638BC
|
|
lsl r0, r0, #0x2
|
|
str r1, [r4, r0]
|
|
add r0, #0x30
|
|
str r7, [r4, r0]
|
|
mov r0, #0xa
|
|
strh r0, [r4, #0x2a]
|
|
_02036B82:
|
|
mov r0, #0x0
|
|
add sp, #0x8
|
|
pop {r3-r7, pc}
|
|
.balign 4
|
|
_02036B88: .word sub_02035E50
|
|
_02036B8C: .word sub_020638BC
|
|
|
|
thumb_func_start sub_02036B90
|
|
sub_02036B90: ; 0x02036B90
|
|
push {r3-r5, lr}
|
|
add r4, r0, #0x0
|
|
bl TaskManager_GetFieldSystem
|
|
add r5, r0, #0x0
|
|
add r0, r4, #0x0
|
|
bl TaskManager_GetEnvironment
|
|
mov r1, #0x73
|
|
add r4, r0, #0x0
|
|
lsl r1, r1, #0x2
|
|
add r0, r5, #0x0
|
|
add r1, r4, r1
|
|
bl sub_02037844
|
|
mov r1, #0x7e
|
|
lsl r1, r1, #0x2
|
|
str r0, [r4, r1]
|
|
ldr r1, _02036BC0 ; =sub_020362E4
|
|
add r0, r4, #0x0
|
|
bl StartMenu_SetExitTaskFunc
|
|
mov r0, #0x0
|
|
pop {r3-r5, pc}
|
|
.balign 4
|
|
_02036BC0: .word sub_020362E4
|
|
|
|
thumb_func_start sub_02036BC4
|
|
sub_02036BC4: ; 0x02036BC4
|
|
push {r4-r6, lr}
|
|
add r5, r0, #0x0
|
|
add r4, r1, #0x0
|
|
mov r0, #0xb
|
|
mov r1, #0x4
|
|
add r6, r2, #0x0
|
|
bl Heap_Alloc
|
|
strh r5, [r0, #0x0]
|
|
strb r6, [r0, #0x2]
|
|
strb r4, [r0, #0x3]
|
|
pop {r4-r6, pc}
|
|
|
|
thumb_func_start sub_02036BDC
|
|
sub_02036BDC: ; 0x02036BDC
|
|
push {r4-r6, lr}
|
|
add r4, r0, #0x0
|
|
bl TaskManager_GetFieldSystem
|
|
add r5, r0, #0x0
|
|
add r0, r4, #0x0
|
|
bl TaskManager_GetEnvironment
|
|
add r4, r0, #0x0
|
|
mov r0, #0x7f
|
|
lsl r0, r0, #0x2
|
|
ldr r6, [r4, r0]
|
|
ldrb r1, [r6, #0x3]
|
|
cmp r1, #0x3
|
|
bhi _02036CD4
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #0x6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_02036C06: ; jump table (using 16-bit offset)
|
|
.short _02036C58 - _02036C06 - 2; case 0
|
|
.short _02036C98 - _02036C06 - 2; case 1
|
|
.short _02036C32 - _02036C06 - 2; case 2
|
|
.short _02036C0E - _02036C06 - 2; case 3
|
|
_02036C0E:
|
|
sub r0, r0, #0x4
|
|
ldr r0, [r4, r0]
|
|
bl sub_0208562C
|
|
mov r1, #0x73
|
|
lsl r1, r1, #0x2
|
|
add r0, r5, #0x0
|
|
add r1, r4, r1
|
|
bl sub_02037844
|
|
mov r1, #0x7e
|
|
lsl r1, r1, #0x2
|
|
str r0, [r4, r1]
|
|
ldr r1, _02036CE4 ; =sub_020362E4
|
|
add r0, r4, #0x0
|
|
bl StartMenu_SetExitTaskFunc
|
|
b _02036CD4
|
|
_02036C32:
|
|
sub r0, r0, #0x4
|
|
ldr r0, [r4, r0]
|
|
bl sub_0208562C
|
|
mov r1, #0x7a
|
|
lsl r1, r1, #0x2
|
|
ldrb r2, [r6, #0x2]
|
|
add r0, r5, #0x0
|
|
add r1, r4, r1
|
|
bl sub_020379C8
|
|
mov r1, #0x7e
|
|
lsl r1, r1, #0x2
|
|
str r0, [r4, r1]
|
|
ldr r1, _02036CE8 ; =sub_02035E50
|
|
add r0, r4, #0x0
|
|
bl StartMenu_SetExitTaskFunc
|
|
b _02036CD4
|
|
_02036C58:
|
|
sub r0, r0, #0x4
|
|
ldr r0, [r4, r0]
|
|
bl sub_020855E4
|
|
cmp r0, #0x1
|
|
bne _02036C70
|
|
add r0, r5, #0x0
|
|
add r1, r4, #0x0
|
|
mov r2, #0xc
|
|
bl sub_02036CEC
|
|
b _02036CD4
|
|
_02036C70:
|
|
mov r0, #0x7e
|
|
lsl r0, r0, #0x2
|
|
ldr r0, [r4, r0]
|
|
bl sub_0208562C
|
|
mov r1, #0x7a
|
|
lsl r1, r1, #0x2
|
|
ldrb r2, [r6, #0x2]
|
|
add r0, r5, #0x0
|
|
add r1, r4, r1
|
|
bl sub_020379C8
|
|
mov r1, #0x7e
|
|
lsl r1, r1, #0x2
|
|
str r0, [r4, r1]
|
|
ldr r1, _02036CE8 ; =sub_02035E50
|
|
add r0, r4, #0x0
|
|
bl StartMenu_SetExitTaskFunc
|
|
b _02036CD4
|
|
_02036C98:
|
|
sub r0, r0, #0x4
|
|
ldr r0, [r4, r0]
|
|
bl sub_020855E4
|
|
cmp r0, #0x1
|
|
bne _02036CB0
|
|
add r0, r5, #0x0
|
|
add r1, r4, #0x0
|
|
mov r2, #0xb
|
|
bl sub_02036CEC
|
|
b _02036CD4
|
|
_02036CB0:
|
|
mov r0, #0x7e
|
|
lsl r0, r0, #0x2
|
|
ldr r0, [r4, r0]
|
|
bl sub_0208562C
|
|
mov r1, #0x73
|
|
lsl r1, r1, #0x2
|
|
add r0, r5, #0x0
|
|
add r1, r4, r1
|
|
bl sub_02037844
|
|
mov r1, #0x7e
|
|
lsl r1, r1, #0x2
|
|
str r0, [r4, r1]
|
|
ldr r1, _02036CE4 ; =sub_020362E4
|
|
add r0, r4, #0x0
|
|
bl StartMenu_SetExitTaskFunc
|
|
_02036CD4:
|
|
mov r0, #0x7f
|
|
lsl r0, r0, #0x2
|
|
ldr r0, [r4, r0]
|
|
bl Heap_Free
|
|
mov r0, #0x0
|
|
pop {r4-r6, pc}
|
|
nop
|
|
_02036CE4: .word sub_020362E4
|
|
_02036CE8: .word sub_02035E50
|
|
|
|
thumb_func_start sub_02036CEC
|
|
sub_02036CEC: ; 0x02036CEC
|
|
push {r3-r7, lr}
|
|
add r5, r0, #0x0
|
|
mov r0, #0x7f
|
|
add r6, r1, #0x0
|
|
str r2, [sp, #0x0]
|
|
lsl r0, r0, #0x2
|
|
ldr r7, [r6, r0]
|
|
mov r0, #0xb
|
|
mov r1, #0x40
|
|
bl Heap_Alloc
|
|
mov r1, #0x0
|
|
mov r2, #0x40
|
|
add r4, r0, #0x0
|
|
bl memset
|
|
ldr r0, [r5, #0xc]
|
|
bl SaveArray_Party_Get
|
|
str r0, [r4, #0x0]
|
|
ldr r0, [r5, #0xc]
|
|
bl Save_Bag_Get
|
|
str r0, [r4, #0x4]
|
|
ldr r0, [r5, #0xc]
|
|
bl Save_Mailbox_Get
|
|
str r0, [r4, #0x8]
|
|
ldr r0, [r5, #0xc]
|
|
bl Save_PlayerData_GetOptionsAddr
|
|
str r0, [r4, #0xc]
|
|
mov r0, #0x7a
|
|
lsl r0, r0, #0x2
|
|
add r0, r6, r0
|
|
str r0, [r4, #0x18]
|
|
add r0, r4, #0x0
|
|
mov r1, #0x0
|
|
add r0, #0x21
|
|
strb r1, [r0, #0x0]
|
|
ldrh r0, [r7, #0x0]
|
|
strh r0, [r4, #0x24]
|
|
add r0, r4, #0x0
|
|
ldrb r1, [r7, #0x2]
|
|
add r0, #0x22
|
|
strb r1, [r0, #0x0]
|
|
add r1, r4, #0x0
|
|
ldr r0, [sp, #0x0]
|
|
add r1, #0x20
|
|
strb r0, [r1, #0x0]
|
|
str r5, [r4, #0x1c]
|
|
ldrb r1, [r7, #0x2]
|
|
ldr r0, [r4, #0x0]
|
|
bl Party_GetMonByIndex
|
|
add r1, r0, #0x0
|
|
mov r0, #0x7e
|
|
lsl r0, r0, #0x2
|
|
ldr r0, [r6, r0]
|
|
bl sub_0208560C
|
|
mov r0, #0x7e
|
|
lsl r0, r0, #0x2
|
|
ldr r0, [r6, r0]
|
|
bl sub_0208562C
|
|
ldr r1, _02036D8C ; =UNK_020F96DC
|
|
add r0, r5, #0x0
|
|
add r2, r4, #0x0
|
|
bl sub_020373D4
|
|
mov r0, #0x7e
|
|
lsl r0, r0, #0x2
|
|
str r4, [r6, r0]
|
|
ldr r1, _02036D90 ; =sub_02035E50
|
|
add r0, r6, #0x0
|
|
bl StartMenu_SetExitTaskFunc
|
|
pop {r3-r7, pc}
|
|
nop
|
|
_02036D8C: .word UNK_020F96DC
|
|
_02036D90: .word sub_02035E50
|
|
|
|
thumb_func_start sub_02036D94
|
|
sub_02036D94: ; 0x02036D94
|
|
push {r3-r5, lr}
|
|
add r4, r0, #0x0
|
|
bl TaskManager_GetFieldSystem
|
|
add r5, r0, #0x0
|
|
add r0, r4, #0x0
|
|
bl TaskManager_GetEnvironment
|
|
add r4, r0, #0x0
|
|
mov r0, #0x7e
|
|
lsl r0, r0, #0x2
|
|
ldr r0, [r4, r0]
|
|
bl sub_02087E14
|
|
mov r1, #0x73
|
|
lsl r1, r1, #0x2
|
|
add r0, r5, #0x0
|
|
add r1, r4, r1
|
|
bl sub_02037844
|
|
mov r1, #0x7e
|
|
lsl r1, r1, #0x2
|
|
str r0, [r4, r1]
|
|
ldr r1, _02036DD0 ; =sub_020362E4
|
|
add r0, r4, #0x0
|
|
bl StartMenu_SetExitTaskFunc
|
|
mov r0, #0x0
|
|
pop {r3-r5, pc}
|
|
nop
|
|
_02036DD0: .word sub_020362E4
|
|
|
|
thumb_func_start sub_02036DD4
|
|
sub_02036DD4: ; 0x02036DD4
|
|
push {r3-r5, lr}
|
|
add r4, r0, #0x0
|
|
bl TaskManager_GetFieldSystem
|
|
add r5, r0, #0x0
|
|
add r0, r4, #0x0
|
|
bl TaskManager_GetEnvironment
|
|
mov r1, #0x73
|
|
add r4, r0, #0x0
|
|
lsl r1, r1, #0x2
|
|
add r0, r5, #0x0
|
|
add r1, r4, r1
|
|
bl sub_02037844
|
|
mov r1, #0x7e
|
|
lsl r1, r1, #0x2
|
|
str r0, [r4, r1]
|
|
ldr r1, _02036E04 ; =sub_020362E4
|
|
add r0, r4, #0x0
|
|
bl StartMenu_SetExitTaskFunc
|
|
mov r0, #0x0
|
|
pop {r3-r5, pc}
|
|
.balign 4
|
|
_02036E04: .word sub_020362E4
|
|
|
|
thumb_func_start sub_02036E08
|
|
sub_02036E08: ; 0x02036E08
|
|
push {r3-r7, lr}
|
|
sub sp, #0x48
|
|
add r5, r0, #0x0
|
|
bl TaskManager_GetFieldSystem
|
|
add r4, r0, #0x0
|
|
add r0, r5, #0x0
|
|
bl TaskManager_GetEnvironment
|
|
add r6, r0, #0x0
|
|
mov r0, #0x7e
|
|
lsl r0, r0, #0x2
|
|
ldr r5, [r6, r0]
|
|
bl sub_0200541C
|
|
mov r0, #0x3
|
|
mov r1, #0x49
|
|
lsl r2, r0, #0x10
|
|
bl Heap_Create
|
|
ldr r0, [r4, #0xc]
|
|
bl SaveArray_Party_Get
|
|
ldrb r1, [r5, #0x0]
|
|
str r0, [sp, #0x20]
|
|
bl Party_GetMonByIndex
|
|
str r0, [sp, #0x24]
|
|
ldrb r0, [r5, #0x1]
|
|
cmp r0, #0x0
|
|
ldr r0, [r4, #0xc]
|
|
bne _02036E9E
|
|
bl Save_PlayerData_GetOptionsAddr
|
|
str r0, [sp, #0x28]
|
|
ldr r0, [r4, #0xc]
|
|
bl sub_02079C70
|
|
add r7, r0, #0x0
|
|
ldr r0, [r4, #0xc]
|
|
bl Save_Pokedex_Get
|
|
str r0, [sp, #0x2c]
|
|
ldr r0, [r4, #0xc]
|
|
bl Save_Bag_Get
|
|
str r0, [sp, #0x30]
|
|
ldr r0, [r4, #0xc]
|
|
bl Save_GameStats_Get
|
|
str r0, [sp, #0x34]
|
|
ldr r0, [r4, #0xc]
|
|
bl Save_Poketch_Get
|
|
ldr r1, [sp, #0x2c]
|
|
str r7, [sp, #0x0]
|
|
str r1, [sp, #0x4]
|
|
ldr r1, [sp, #0x30]
|
|
ldr r3, [sp, #0x28]
|
|
str r1, [sp, #0x8]
|
|
ldr r1, [sp, #0x34]
|
|
str r1, [sp, #0xc]
|
|
str r0, [sp, #0x10]
|
|
ldr r0, [r5, #0x8]
|
|
ldr r1, [sp, #0x24]
|
|
str r0, [sp, #0x14]
|
|
mov r0, #0x1
|
|
str r0, [sp, #0x18]
|
|
mov r0, #0x49
|
|
str r0, [sp, #0x1c]
|
|
ldrh r2, [r5, #0x4]
|
|
ldr r0, [sp, #0x20]
|
|
bl sub_0206C700
|
|
b _02036EF2
|
|
_02036E9E:
|
|
bl Save_PlayerData_GetOptionsAddr
|
|
str r0, [sp, #0x38]
|
|
ldr r0, [r4, #0xc]
|
|
bl sub_02079C70
|
|
add r7, r0, #0x0
|
|
ldr r0, [r4, #0xc]
|
|
bl Save_Pokedex_Get
|
|
str r0, [sp, #0x3c]
|
|
ldr r0, [r4, #0xc]
|
|
bl Save_Bag_Get
|
|
str r0, [sp, #0x40]
|
|
ldr r0, [r4, #0xc]
|
|
bl Save_GameStats_Get
|
|
str r0, [sp, #0x44]
|
|
ldr r0, [r4, #0xc]
|
|
bl Save_Poketch_Get
|
|
ldr r1, [sp, #0x3c]
|
|
str r7, [sp, #0x0]
|
|
str r1, [sp, #0x4]
|
|
ldr r1, [sp, #0x40]
|
|
ldr r3, [sp, #0x38]
|
|
str r1, [sp, #0x8]
|
|
ldr r1, [sp, #0x44]
|
|
str r1, [sp, #0xc]
|
|
str r0, [sp, #0x10]
|
|
ldr r0, [r5, #0x8]
|
|
ldr r1, [sp, #0x24]
|
|
str r0, [sp, #0x14]
|
|
mov r0, #0x0
|
|
str r0, [sp, #0x18]
|
|
mov r0, #0x49
|
|
str r0, [sp, #0x1c]
|
|
ldrh r2, [r5, #0x4]
|
|
ldr r0, [sp, #0x20]
|
|
bl sub_0206C700
|
|
_02036EF2:
|
|
add r4, r0, #0x0
|
|
mov r0, #0xb
|
|
mov r1, #0x4
|
|
bl Heap_Alloc
|
|
ldrb r1, [r5, #0x0]
|
|
str r1, [r0, #0x0]
|
|
mov r1, #0x7f
|
|
lsl r1, r1, #0x2
|
|
str r0, [r6, r1]
|
|
sub r0, r1, #0x4
|
|
ldr r0, [r6, r0]
|
|
bl Heap_Free
|
|
mov r0, #0x7e
|
|
lsl r0, r0, #0x2
|
|
str r4, [r6, r0]
|
|
mov r0, #0x7
|
|
strh r0, [r6, #0x2a]
|
|
add sp, #0x48
|
|
pop {r3-r7, pc}
|
|
|
|
thumb_func_start sub_02036F1C
|
|
sub_02036F1C: ; 0x02036F1C
|
|
push {r3-r5, lr}
|
|
add r4, r0, #0x0
|
|
bl TaskManager_GetFieldSystem
|
|
add r5, r0, #0x0
|
|
add r0, r4, #0x0
|
|
bl TaskManager_GetEnvironment
|
|
add r4, r0, #0x0
|
|
mov r0, #0x7e
|
|
lsl r0, r0, #0x2
|
|
ldr r0, [r4, r0]
|
|
bl sub_0206C91C
|
|
cmp r0, #0x1
|
|
bne _02036F98
|
|
mov r0, #0x7e
|
|
lsl r0, r0, #0x2
|
|
ldr r0, [r4, r0]
|
|
bl sub_0206C92C
|
|
mov r0, #0x49
|
|
bl Heap_Destroy
|
|
ldr r0, _02036F9C ; =0x00000475
|
|
mov r1, #0x0
|
|
bl sub_02005350
|
|
mov r0, #0x0
|
|
bl sub_0200415C
|
|
ldr r1, [r5, #0x1c]
|
|
add r0, r5, #0x0
|
|
ldr r1, [r1, #0x0]
|
|
bl sub_0204ADBC
|
|
mov r1, #0x73
|
|
lsl r1, r1, #0x2
|
|
add r0, r5, #0x0
|
|
add r1, r4, r1
|
|
bl sub_02037844
|
|
mov r1, #0x7e
|
|
lsl r1, r1, #0x2
|
|
str r0, [r4, r1]
|
|
ldr r0, [r4, r1]
|
|
add r1, r1, #0x4
|
|
ldr r1, [r4, r1]
|
|
ldr r1, [r1, #0x0]
|
|
lsl r1, r1, #0x18
|
|
lsr r1, r1, #0x18
|
|
bl sub_0206E358
|
|
mov r0, #0x7f
|
|
lsl r0, r0, #0x2
|
|
ldr r0, [r4, r0]
|
|
bl Heap_Free
|
|
ldr r1, _02036FA0 ; =sub_020362E4
|
|
add r0, r4, #0x0
|
|
bl StartMenu_SetExitTaskFunc
|
|
_02036F98:
|
|
pop {r3-r5, pc}
|
|
nop
|
|
_02036F9C: .word 0x00000475
|
|
_02036FA0: .word sub_020362E4
|