pokediamond/arm9/asm/unk_02035068.s

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