pokeheartgold/asm/unk_0203E348.s
2021-11-28 12:24:40 -05:00

3475 lines
67 KiB
ArmAsm

.include "asm/macros.inc"
.include "global.inc"
.public _020FA0B0
.rodata
_020FA17C:
.byte 0x40, 0x00, 0x00, 0x00
.byte 0xFF, 0xFF, 0xFF, 0xFF, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
_020FA190:
.byte 0x3C, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xB7, 0x02, 0x00, 0x00, 0x8D, 0x01, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00
_020FA1A4:
.byte 0x00, 0xFF, 0x00, 0x00
_020FA1A8:
.byte 0x01, 0x04, 0x00, 0x00
_020FA1AC:
.byte 0x04, 0xFF, 0x00, 0x00
_020FA1B0:
.byte 0x00, 0x01, 0x02, 0x03, 0x04, 0x00, 0x00, 0x00
_020FA1B8:
.byte 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07
.byte 0xFF, 0x00, 0x00, 0x00
_020FA1C4:
.word sub_020192D0, sub_0201935C, sub_02019490, SDK_OVERLAY_OVY_39_ID
_020FA1D4:
.word ov105_021E5900, ov105_021E59DC, ov105_021E5B14, SDK_OVERLAY_OVY_105_ID
_020FA1E4:
.word ov68_021E5900, ov68_021E5968, ov68_021E5A3C, SDK_OVERLAY_OVY_68_ID
_020FA1F4:
.word ov76_021E5900, ov76_021E5B60, ov76_021E5AA0, SDK_OVERLAY_OVY_76_ID
_020FA204:
.word ov64_021E5900, ov64_021E5A18, ov64_021E59C8, SDK_OVERLAY_OVY_64_ID
_020FA214:
.word ov63_0221BE20, ov63_0221BF88, ov63_0221BF28, SDK_OVERLAY_OVY_63_ID
_020FA224:
.word ov69_021E5900, ov69_021E5A34, ov69_021E6080, SDK_OVERLAY_OVY_69_ID
_020FA234:
.word ov122_021E82A8, ov122_021E8360, ov122_021E8308, SDK_OVERLAY_OVY_122_ID
_020FA244:
.word ov96_021E5900, ov96_021E5A40, ov96_021E5B88, SDK_OVERLAY_OVY_96_ID
_020FA254:
.word ov52_021E80C0, ov52_021E8248, ov52_021E82AC, SDK_OVERLAY_OVY_52_ID
_020FA264:
.word ov70_02238430, ov70_022385C0, ov70_022386F4, SDK_OVERLAY_OVY_70_ID
_020FA274:
.word ov61_021E5900, ov61_021E5A38, ov61_021E5F74, SDK_OVERLAY_OVY_61_ID
_020FA284:
.word ov18_021E5AA0, ov18_021E5B64, ov18_021E5B80, SDK_OVERLAY_OVY_18_ID
_020FA294:
.word ov50_021E5924, ov50_021E595C, ov50_021E59A8, SDK_OVERLAY_OVY_50_ID
_020FA2A4:
.word ov43_02229EE0, ov43_02229FB4, ov43_0222A0AC, SDK_OVERLAY_OVY_43_ID
_020FA2B4:
.word ov73_021E5900, ov73_021E5AB8, ov73_021E5BAC, SDK_OVERLAY_OVY_73_ID
_020FA2C4:
.word ov37_021E5900, ov37_021E5A84, ov37_021E5B94, SDK_OVERLAY_OVY_37_ID
_020FA2D4:
.word ov71_02246960, ov71_02246BB8, ov71_02246B58, SDK_OVERLAY_OVY_71_ID
_020FA2E4:
.word ov67_021E5900, ov67_021E5984, ov67_021E5968, SDK_OVERLAY_OVY_67_ID
_020FA2F4:
.word ov103_021EC940, ov103_021EC988, ov103_021EC9A4, SDK_OVERLAY_OVY_103_ID
_020FA304:
.word ov78_021E5900, ov78_021E59EC, ov78_021E5B24, SDK_OVERLAY_OVY_78_ID
_020FA314:
.word ov99_021E7818, ov99_021E794C, ov99_021E78F0, SDK_OVERLAY_OVY_99_ID
_020FA324:
.word ov99_021E8304, ov99_021E83F4, ov99_021E83AC, SDK_OVERLAY_OVY_99_ID
_020FA334:
.word ov72_02237E20, ov72_02237F9C, ov72_02238070, SDK_OVERLAY_OVY_72_ID
_020FA344:
.word ov99_021E5900, ov99_021E5A38, ov99_021E5A04, SDK_OVERLAY_OVY_99_ID
_020FA354:
.word ov54_021E5900, ov54_021E5B3C, ov54_021E5A10, SDK_OVERLAY_OVY_54_ID
_020FA364:
.word ov111_021E5900, ov111_021E59B8, ov111_021E5960, SDK_OVERLAY_OVY_111_ID
_020FA374:
.word ov58_022378E4, ov58_02237924, ov58_0223799C, SDK_OVERLAY_OVY_58_ID
_020FA384:
.word ov16_0220196C, ov16_022019B8, ov16_02201A04, SDK_OVERLAY_OVY_16_ID
_020FA394:
.word ov113_021E5900, ov113_021E5968, ov113_021E59C8, SDK_OVERLAY_OVY_113_ID
_020FA3A4:
.word ov110_021E5900, ov110_021E5974, ov110_021E59F4, SDK_OVERLAY_OVY_110_ID
_020FA3B4:
.word ov109_021E5900, ov109_021E5968, ov109_021E59F0, SDK_OVERLAY_OVY_109_ID
_020FA3C4:
.word ov108_021E8850, ov108_021E8904, ov108_021E88C4, SDK_OVERLAY_OVY_108_ID
_020FA3D4:
.word ov108_021E5900, ov108_021E5978, ov108_021E5948, SDK_OVERLAY_OVY_108_ID
_020FA3E4:
.word ov101_Radio_OvyInit, ov101_Radio_OvyExec, ov101_Radio_OvyExit, SDK_OVERLAY_OVY_101_ID
_020FA3F4:
.word ov100_021E642C, ov100_021E6520, ov100_021E65BC, SDK_OVERLAY_OVY_100_ID
_020FA404:
.word ov102_021E7740, ov102_021E77B8, ov102_021E7868, SDK_OVERLAY_OVY_102_ID
_020FA414:
.word ov14_021E5900, ov14_021E596C, ov14_021E5988, SDK_OVERLAY_OVY_14_ID
_020FA424:
.word ov99_021E677C, ov99_021E6888, ov99_021E6840, SDK_OVERLAY_OVY_99_ID
_020FA434:
.word ov55_021E5924, ov55_021E598C, ov55_021E5AE8, SDK_OVERLAY_OVY_55_ID
_020FA444:
.word ov73_021E7E4C, ov73_021E7FB8, ov73_021E808C, SDK_OVERLAY_OVY_72_ID
_020FA454:
.word ov104_021E5900, ov104_021E59E4, ov104_021E5B14, SDK_OVERLAY_OVY_104_ID
_020FA464:
.word ov15_021F9380, ov15_021F9608, ov15_021F982C, SDK_OVERLAY_OVY_15_ID
_020FA474:
.word sub_02097B78, sub_02097BAC, sub_02097BD0, SDK_OVERLAY_OVY_106_ID
.public _020FA484
_020FA484:
.word sub_0203E3A8, sub_0203E3AC, sub_0203E3C0, SDK_OVERLAY_OVY_12_ID
_020FA494:
.word ov121_021E5900, ov121_021E590C, ov121_021E59BC, SDK_OVERLAY_OVY_121_ID
.data
_0210F978:
.word 0x00000000
_0210F97C:
.word ov87_021E5900, ov87_021E59B4, ov87_021E5AC0, SDK_OVERLAY_OVY_87_ID
_0210F98C:
.word ov65_0221BE20, ov65_0221C250, ov65_0221CD74, SDK_OVERLAY_OVY_65_ID
_0210F99C:
.word ov41_0224BA10, ov41_0224BACC, ov41_0224BBA4, SDK_OVERLAY_OVY_41_ID
_0210F9AC:
.word ov41_02246DE0, ov41_02246F08, ov41_02247150, SDK_OVERLAY_OVY_41_ID
_0210F9BC:
.word ov86_021E5900, ov86_021E5A40, ov86_021E5AA4, SDK_OVERLAY_OVY_86_ID
.text
thumb_func_start sub_0203E368
sub_0203E368: ; 0x0203E368
ldr r2, _0203E37C ; =_020FA17C
add r3, r0, #0
ldmia r2!, {r0, r1}
stmia r3!, {r0, r1}
ldmia r2!, {r0, r1}
stmia r3!, {r0, r1}
ldr r0, [r2]
str r0, [r3]
bx lr
nop
_0203E37C: .word _020FA17C
thumb_func_end sub_0203E368
thumb_func_start sub_0203E380
sub_0203E380: ; 0x0203E380
ldr r2, _0203E394 ; =_020FA190
add r3, r0, #0
ldmia r2!, {r0, r1}
stmia r3!, {r0, r1}
ldmia r2!, {r0, r1}
stmia r3!, {r0, r1}
ldr r0, [r2]
str r0, [r3]
bx lr
nop
_0203E394: .word _020FA190
thumb_func_end sub_0203E380
thumb_func_start sub_0203E398
sub_0203E398: ; 0x0203E398
push {r3, lr}
bl sub_0203B9C4
bl sub_0203B958
bl sub_0203E368
pop {r3, pc}
thumb_func_end sub_0203E398
thumb_func_start sub_0203E3A8
sub_0203E3A8: ; 0x0203E3A8
mov r0, #1
bx lr
thumb_func_end sub_0203E3A8
thumb_func_start sub_0203E3AC
sub_0203E3AC: ; 0x0203E3AC
push {r3, lr}
bl ov12_022378C0
cmp r0, #0
beq _0203E3BA
mov r0, #1
pop {r3, pc}
_0203E3BA:
mov r0, #0
pop {r3, pc}
.balign 4, 0
thumb_func_end sub_0203E3AC
thumb_func_start sub_0203E3C0
sub_0203E3C0: ; 0x0203E3C0
mov r0, #1
bx lr
thumb_func_end sub_0203E3C0
thumb_func_start sub_0203E3C4
sub_0203E3C4: ; 0x0203E3C4
ldr r3, _0203E3CC ; =ScrUnk80_AddOvyMan
add r2, r1, #0
ldr r1, _0203E3D0 ; =_020FA484
bx r3
.balign 4, 0
_0203E3CC: .word ScrUnk80_AddOvyMan
_0203E3D0: .word _020FA484
thumb_func_end sub_0203E3C4
thumb_func_start sub_0203E3D4
sub_0203E3D4: ; 0x0203E3D4
push {r4, r5, r6, lr}
sub sp, #0x10
ldr r5, _0203E3F8 ; =_020FA464
add r4, sp, #0
add r6, r0, #0
add r2, r1, #0
add r3, r4, #0
ldmia r5!, {r0, r1}
stmia r4!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r4!, {r0, r1}
add r0, r6, #0
add r1, r3, #0
bl ScrUnk80_AddOvyMan
add sp, #0x10
pop {r4, r5, r6, pc}
nop
_0203E3F8: .word _020FA464
thumb_func_end sub_0203E3D4
thumb_func_start sub_0203E3FC
sub_0203E3FC: ; 0x0203E3FC
push {r3, r4, r5, r6, lr}
sub sp, #4
add r5, r0, #0
ldr r0, [r5, #0xc]
add r6, r1, #0
bl Sav2_Bag_get
ldr r1, _0203E45C ; =_020FA1B8
mov r2, #0xb
bl CreateBagView
mov r1, #0x43
lsl r1, r1, #2
add r1, r5, r1
add r3, r5, #0
str r1, [sp]
add r3, #0x94
ldr r1, [r5, #0xc]
ldr r3, [r3]
mov r2, #0
add r4, r0, #0
bl sub_0207789C
ldr r1, [r5, #0x70]
add r0, r4, #0
lsl r1, r1, #0x10
lsr r1, r1, #0x10
bl sub_020778E8
ldr r0, [r5, #0x40]
bl sub_0205C700
cmp r0, #1
bne _0203E446
add r0, r4, #0
bl sub_020778C8
_0203E446:
add r0, r4, #0
add r1, r6, #0
bl sub_020778DC
add r0, r5, #0
add r1, r4, #0
bl sub_0203E3D4
add r0, r4, #0
add sp, #4
pop {r3, r4, r5, r6, pc}
.balign 4, 0
_0203E45C: .word _020FA1B8
thumb_func_end sub_0203E3FC
thumb_func_start sub_0203E460
sub_0203E460: ; 0x0203E460
push {r3, r4, r5, r6, lr}
sub sp, #4
add r5, r0, #0
ldr r0, [r5, #0xc]
add r4, r1, #0
bl Sav2_Bag_get
add r6, r0, #0
cmp r4, #0
beq _0203E47A
cmp r4, #1
beq _0203E482
b _0203E48A
_0203E47A:
ldr r1, _0203E4C0 ; =_020FA1A4
ldr r0, _0203E4C4 ; =_0210F978
str r1, [r0]
b _0203E48E
_0203E482:
ldr r1, _0203E4C8 ; =_020FA1AC
ldr r0, _0203E4C4 ; =_0210F978
str r1, [r0]
b _0203E48E
_0203E48A:
bl GF_AssertFail
_0203E48E:
ldr r1, _0203E4C4 ; =_0210F978
add r0, r6, #0
ldr r1, [r1]
mov r2, #0x20
bl CreateBagView
mov r1, #0x43
lsl r1, r1, #2
add r1, r5, r1
add r3, r5, #0
str r1, [sp]
add r3, #0x94
ldr r1, [r5, #0xc]
ldr r3, [r3]
add r4, r0, #0
mov r2, #3
bl sub_0207789C
add r0, r5, #0
add r1, r4, #0
bl sub_0203E3D4
add r0, r4, #0
add sp, #4
pop {r3, r4, r5, r6, pc}
.balign 4, 0
_0203E4C0: .word _020FA1A4
_0203E4C4: .word _0210F978
_0203E4C8: .word _020FA1AC
thumb_func_end sub_0203E460
thumb_func_start sub_0203E4CC
sub_0203E4CC: ; 0x0203E4CC
push {r3, r4, r5, lr}
add r5, r0, #0
bl sub_02077904
add r4, r0, #0
beq _0203E4E6
add r0, r5, #0
bl sub_0207790C
cmp r0, #5
bne _0203E4E6
bl GF_AssertFail
_0203E4E6:
add r0, r4, #0
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_end sub_0203E4CC
thumb_func_start sub_0203E4EC
sub_0203E4EC: ; 0x0203E4EC
ldr r3, _0203E4F4 ; =ScrUnk80_AddOvyMan
add r2, r1, #0
ldr r1, _0203E4F8 ; =_02103A1C
bx r3
.balign 4, 0
_0203E4F4: .word ScrUnk80_AddOvyMan
_0203E4F8: .word _02103A1C
thumb_func_end sub_0203E4EC
thumb_func_start sub_0203E4FC
sub_0203E4FC: ; 0x0203E4FC
push {r3, r4, r5, r6, r7, lr}
add r5, r1, #0
mov r1, #0x44
add r6, r2, #0
add r7, r3, #0
bl AllocFromHeap
add r4, r0, #0
mov r0, #0
add r1, r4, #0
mov r2, #0x44
bl MIi_CpuClearFast
ldr r0, [r5, #0xc]
bl SavArray_PlayerParty_get
str r0, [r4]
ldr r0, [r5, #0xc]
bl Sav2_Bag_get
str r0, [r4, #4]
ldr r0, [r5, #0xc]
bl Sav2_Mailbox_get
str r0, [r4, #8]
ldr r0, [r5, #0xc]
bl Sav2_PlayerData_GetOptionsAddr
str r0, [r4, #0xc]
add r0, r4, #0
add r0, #0x25
strb r6, [r0]
add r0, r4, #0
add r0, #0x24
strb r7, [r0]
mov r0, #0x43
lsl r0, r0, #2
str r5, [r4, #0x1c]
add r0, r5, r0
str r0, [r4, #0x20]
add r0, r4, #0
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end sub_0203E4FC
thumb_func_start sub_0203E550
sub_0203E550: ; 0x0203E550
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r7, r2, #0
mov r2, #0
add r6, r1, #0
mov r0, #0xb
add r1, r5, #0
add r3, r2, #0
bl sub_0203E4FC
add r4, r0, #0
str r6, [r4, #0x18]
add r0, #0x26
strb r7, [r0]
ldr r1, _0203E57C ; =_0210159C
add r0, r5, #0
add r2, r4, #0
bl ScrUnk80_AddOvyMan
add r0, r4, #0
pop {r3, r4, r5, r6, r7, pc}
nop
_0203E57C: .word _0210159C
thumb_func_end sub_0203E550
thumb_func_start sub_0203E580
sub_0203E580: ; 0x0203E580
push {r3, r4, r5, lr}
mov r0, #0xb
mov r2, #0
mov r3, #3
add r5, r1, #0
bl sub_0203E4FC
add r4, r0, #0
ldr r1, _0203E5A0 ; =_0210159C
add r0, r5, #0
add r2, r4, #0
bl ScrUnk80_AddOvyMan
add r0, r4, #0
pop {r3, r4, r5, pc}
nop
_0203E5A0: .word _0210159C
thumb_func_end sub_0203E580
thumb_func_start sub_0203E5A4
sub_0203E5A4: ; 0x0203E5A4
push {r3, r4, r5, lr}
mov r0, #0xb
mov r2, #0
mov r3, #0x13
add r5, r1, #0
bl sub_0203E4FC
add r4, r0, #0
ldr r1, _0203E5C4 ; =_0210159C
add r0, r5, #0
add r2, r4, #0
bl ScrUnk80_AddOvyMan
add r0, r4, #0
pop {r3, r4, r5, pc}
nop
_0203E5C4: .word _0210159C
thumb_func_end sub_0203E5A4
thumb_func_start sub_0203E5C8
sub_0203E5C8: ; 0x0203E5C8
add r0, #0x26
ldrb r0, [r0]
bx lr
.balign 4, 0
thumb_func_end sub_0203E5C8
thumb_func_start sub_0203E5D0
sub_0203E5D0: ; 0x0203E5D0
push {r4, r5, r6, lr}
add r4, r2, #0
mov r0, #0xb
mov r2, #0
mov r3, #0x12
add r5, r1, #0
bl sub_0203E4FC
add r6, r0, #0
add r0, #0x26
strb r4, [r0]
ldr r1, _0203E5F4 ; =_0210159C
add r0, r5, #0
add r2, r6, #0
bl ScrUnk80_AddOvyMan
add r0, r6, #0
pop {r4, r5, r6, pc}
.balign 4, 0
_0203E5F4: .word _0210159C
thumb_func_end sub_0203E5D0
thumb_func_start sub_0203E5F8
sub_0203E5F8: ; 0x0203E5F8
add r0, #0x27
ldrb r0, [r0]
bx lr
.balign 4, 0
thumb_func_end sub_0203E5F8
thumb_func_start sub_0203E600
sub_0203E600: ; 0x0203E600
ldrb r0, [r0, #0x14]
bx lr
thumb_func_end sub_0203E600
thumb_func_start sub_0203E604
sub_0203E604: ; 0x0203E604
push {r4, r5, r6, lr}
add r5, r0, #0
bl sub_0205064C
add r6, r0, #0
add r0, r5, #0
bl sub_02050650
add r4, r0, #0
add r0, r5, #0
bl sub_02050654
add r5, r0, #0
ldr r0, [r5]
cmp r0, #4
bhi _0203E6CC
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_0203E630: ; jump table
.short _0203E63A - _0203E630 - 2 ; case 0
.short _0203E64A - _0203E630 - 2 ; case 1
.short _0203E680 - _0203E630 - 2 ; case 2
.short _0203E6A2 - _0203E630 - 2 ; case 3
.short _0203E6C2 - _0203E630 - 2 ; case 4
_0203E63A:
ldr r1, _0203E6D0 ; =_0210159C
ldr r2, [r4, #4]
add r0, r6, #0
bl ScrUnk80_AddOvyMan
mov r0, #1
str r0, [r5]
b _0203E6CC
_0203E64A:
add r0, r6, #0
bl sub_020505A0
cmp r0, #0
bne _0203E6CC
ldr r0, [r4, #4]
add r0, #0x26
ldrb r0, [r0]
cmp r0, #6
beq _0203E66E
cmp r0, #7
bne _0203E67A
mov r0, #2
bl sub_0205A508
mov r0, #4
str r0, [r5]
b _0203E6CC
_0203E66E:
mov r0, #1
bl sub_0205A508
mov r0, #4
str r0, [r5]
b _0203E6CC
_0203E67A:
mov r0, #2
str r0, [r5]
b _0203E6CC
_0203E680:
ldr r1, [r4]
add r0, r6, #0
mov r2, #0
bl sub_0203E76C
str r0, [r4, #8]
ldr r1, [r4, #4]
add r1, #0x26
ldrb r1, [r1]
strb r1, [r0, #0x14]
ldr r1, [r4, #8]
add r0, r6, #0
bl sub_0203E4EC
mov r0, #3
str r0, [r5]
b _0203E6CC
_0203E6A2:
add r0, r6, #0
bl sub_020505A0
cmp r0, #0
bne _0203E6CC
ldr r0, [r4, #8]
ldrb r1, [r0, #0x14]
ldr r0, [r4, #4]
add r0, #0x26
strb r1, [r0]
ldr r0, [r4, #8]
bl FreeToHeap
mov r0, #0
str r0, [r5]
b _0203E6CC
_0203E6C2:
add r0, r4, #0
bl FreeToHeap
mov r0, #1
pop {r4, r5, r6, pc}
_0203E6CC:
mov r0, #0
pop {r4, r5, r6, pc}
.balign 4, 0
_0203E6D0: .word _0210159C
thumb_func_end sub_0203E604
thumb_func_start sub_0203E6D4
sub_0203E6D4: ; 0x0203E6D4
push {r3, r4, r5, r6, r7, lr}
add r5, r1, #0
add r7, r0, #0
bl sub_0205064C
add r6, r0, #0
add r0, r5, #0
mov r1, #0xc
bl AllocFromHeap
add r4, r0, #0
add r0, r5, #0
add r1, r6, #0
mov r2, #0
mov r3, #2
str r5, [r4]
bl sub_0203E4FC
add r5, r0, #0
add r0, #0x36
ldrb r1, [r0]
mov r0, #0xf
add r2, r4, #0
bic r1, r0
mov r0, #2
orr r1, r0
add r0, r5, #0
add r0, #0x36
strb r1, [r0]
add r0, r5, #0
add r0, #0x36
ldrb r1, [r0]
mov r0, #0xf0
bic r1, r0
mov r0, #0x20
orr r1, r0
add r0, r5, #0
add r0, #0x36
strb r1, [r0]
add r0, r5, #0
mov r1, #0x1e
add r0, #0x37
strb r1, [r0]
mov r0, #0
str r0, [r5, #0x14]
ldr r1, _0203E73C ; =sub_0203E604
add r0, r7, #0
str r5, [r4, #4]
bl sub_02050530
add r0, r5, #0
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_0203E73C: .word sub_0203E604
thumb_func_end sub_0203E6D4
thumb_func_start sub_0203E740
sub_0203E740: ; 0x0203E740
push {r4, r5, r6, lr}
add r5, r0, #0
add r4, r1, #0
mov r0, #0xb
add r1, r5, #0
mov r2, #0
mov r3, #0x15
bl sub_0203E4FC
add r6, r0, #0
add r0, #0x26
strb r4, [r0]
ldr r1, _0203E768 ; =_0210159C
add r0, r5, #0
add r2, r6, #0
bl ScrUnk80_AddOvyMan
add r0, r6, #0
pop {r4, r5, r6, pc}
nop
_0203E768: .word _0210159C
thumb_func_end sub_0203E740
thumb_func_start sub_0203E76C
sub_0203E76C: ; 0x0203E76C
push {r3, r4, r5, r6, r7, lr}
add r6, r0, #0
add r0, r1, #0
ldr r5, [r6, #0xc]
mov r1, #0x3c
add r7, r2, #0
bl AllocFromHeapAtEnd
mov r1, #0
mov r2, #0x3c
add r4, r0, #0
bl MI_CpuFill8
add r0, r5, #0
bl Sav2_PlayerData_GetOptionsAddr
str r0, [r4, #4]
add r0, r5, #0
bl SavArray_PlayerParty_get
str r0, [r4]
mov r0, #1
strb r0, [r4, #0x11]
mov r0, #0
strb r0, [r4, #0x14]
ldr r0, [r4]
bl GetPartyCount
strb r0, [r4, #0x13]
mov r0, #0
strh r0, [r4, #0x18]
strb r7, [r4, #0x12]
add r0, r5, #0
bl SavArray_IsNatDexEnabled
str r0, [r4, #0x1c]
add r0, r5, #0
bl sub_02088288
str r0, [r4, #0x2c]
add r0, r5, #0
bl sub_0202D95C
str r0, [r4, #0x20]
mov r0, #0x43
lsl r0, r0, #2
add r0, r6, r0
str r0, [r4, #0x30]
ldr r0, [r6, #0xc]
bl sub_0208828C
str r0, [r4, #0x34]
ldr r1, _0203E7F0 ; =_020FA1B0
add r0, r4, #0
bl sub_02089D40
add r0, r5, #0
bl Sav2_PlayerData_GetProfileAddr
add r1, r0, #0
add r0, r4, #0
bl sub_0208AD34
add r0, r4, #0
pop {r3, r4, r5, r6, r7, pc}
nop
_0203E7F0: .word _020FA1B0
thumb_func_end sub_0203E76C
thumb_func_start sub_0203E7F4
sub_0203E7F4: ; 0x0203E7F4
push {r3, r4, r5, r6, r7, lr}
add r5, r1, #0
mov r1, #0x3c
add r6, r2, #0
add r7, r3, #0
bl AllocFromHeap
mov r1, #0
mov r2, #0x3c
add r4, r0, #0
bl MI_CpuFill8
ldr r0, [r5, #0xc]
bl SavArray_PlayerParty_get
str r0, [r4]
ldr r0, [r5, #0xc]
bl Sav2_PlayerData_GetOptionsAddr
str r0, [r4, #4]
mov r0, #1
strb r0, [r4, #0x11]
strb r6, [r4, #0x14]
strb r0, [r4, #0x13]
strh r7, [r4, #0x18]
mov r0, #2
strb r0, [r4, #0x12]
ldr r0, [r5, #0xc]
bl SavArray_IsNatDexEnabled
str r0, [r4, #0x1c]
mov r0, #0
str r0, [r4, #0x2c]
mov r0, #0x43
lsl r0, r0, #2
add r0, r5, r0
str r0, [r4, #0x30]
ldr r1, _0203E860 ; =_020FA1A8
add r0, r4, #0
bl sub_02089D40
ldr r0, [r5, #0xc]
bl Sav2_PlayerData_GetProfileAddr
add r1, r0, #0
add r0, r4, #0
bl sub_0208AD34
add r0, r5, #0
add r1, r4, #0
bl sub_0203E4EC
add r0, r4, #0
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_0203E860: .word _020FA1A8
thumb_func_end sub_0203E7F4
thumb_func_start sub_0203E864
sub_0203E864: ; 0x0203E864
ldrb r0, [r0, #0x16]
bx lr
thumb_func_end sub_0203E864
thumb_func_start sub_0203E868
sub_0203E868: ; 0x0203E868
ldr r3, _0203E870 ; =ScrUnk80_AddOvyMan
add r2, r1, #0
ldr r1, _0203E874 ; =_020FA414
bx r3
.balign 4, 0
_0203E870: .word ScrUnk80_AddOvyMan
_0203E874: .word _020FA414
thumb_func_end sub_0203E868
thumb_func_start sub_0203E878
sub_0203E878: ; 0x0203E878
push {r3, r4, r5, r6, lr}
sub sp, #0xc
add r6, r0, #0
bl sub_02050654
add r5, r0, #0
add r0, r6, #0
bl sub_02050650
add r4, r0, #0
add r0, r6, #0
bl sub_0205064C
ldr r1, [r5]
add r6, r0, #0
cmp r1, #0
beq _0203E8A4
cmp r1, #1
beq _0203E8B2
cmp r1, #2
beq _0203E8C2
b _0203E958
_0203E8A4:
ldr r1, [r4, #0xc]
bl sub_0203EA24
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _0203E958
_0203E8B2:
bl sub_020505A0
cmp r0, #0
bne _0203E958
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _0203E958
_0203E8C2:
ldr r0, [r4, #0xc]
bl sub_02090D48
cmp r0, #0
bne _0203E8D6
ldr r0, [r4, #0xc]
bl sub_02090D4C
cmp r0, #0
bne _0203E8DE
_0203E8D6:
ldr r0, [r4]
mov r1, #0
strh r1, [r0]
b _0203E946
_0203E8DE:
ldr r0, [r4]
mov r1, #1
strh r1, [r0]
ldr r0, [r4, #0x10]
cmp r0, #5
bhi _0203E902
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_0203E8F6: ; jump table
.short _0203E902 - _0203E8F6 - 2 ; case 0
.short _0203E90E - _0203E8F6 - 2 ; case 1
.short _0203E926 - _0203E8F6 - 2 ; case 2
.short _0203E926 - _0203E8F6 - 2 ; case 3
.short _0203E926 - _0203E8F6 - 2 ; case 4
.short _0203E926 - _0203E8F6 - 2 ; case 5
_0203E902:
ldr r0, [r4, #0xc]
bl sub_02090D50
ldr r1, [r4, #4]
strh r0, [r1]
b _0203E946
_0203E90E:
ldr r0, [r4, #0xc]
add r1, sp, #8
bl sub_02090D54
add r0, sp, #0
ldrh r2, [r0, #8]
ldr r1, [r4, #4]
strh r2, [r1]
ldrh r1, [r0, #0xa]
ldr r0, [r4, #8]
strh r1, [r0]
b _0203E946
_0203E926:
ldr r0, [r4, #0xc]
add r1, sp, #0
bl sub_02090D60
ldr r1, [r4, #0x10]
ldr r0, [r6, #0xc]
sub r1, r1, #2
add r2, sp, #0
bl sub_0202D640
add r0, sp, #0
mov r1, #0
bl MailMsg_GetFieldI
ldr r1, [r4, #4]
strh r0, [r1]
_0203E946:
ldr r0, [r4, #0xc]
bl sub_02090D0C
add r0, r4, #0
bl FreeToHeap
add sp, #0xc
mov r0, #1
pop {r3, r4, r5, r6, pc}
_0203E958:
mov r0, #0
add sp, #0xc
pop {r3, r4, r5, r6, pc}
.balign 4, 0
thumb_func_end sub_0203E878
thumb_func_start sub_0203E960
sub_0203E960: ; 0x0203E960
push {r4, r5, r6, r7, lr}
sub sp, #0xc
str r0, [sp, #4]
add r6, r1, #0
str r2, [sp, #8]
add r7, r3, #0
bl sub_0205064C
add r5, r0, #0
mov r0, #0x20
mov r1, #0x14
bl AllocFromHeap
add r4, r0, #0
ldr r0, [sp, #8]
cmp r6, #5
str r0, [r4]
ldr r0, [sp, #0x20]
str r7, [r4, #4]
str r0, [r4, #8]
str r6, [r4, #0x10]
bhi _0203E9A4
add r0, r6, r6
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_0203E998: ; jump table
.short _0203E9A4 - _0203E998 - 2 ; case 0
.short _0203E9C0 - _0203E998 - 2 ; case 1
.short _0203E9E0 - _0203E998 - 2 ; case 2
.short _0203E9E0 - _0203E998 - 2 ; case 3
.short _0203E9E0 - _0203E998 - 2 ; case 4
.short _0203E9E0 - _0203E998 - 2 ; case 5
_0203E9A4:
mov r3, #0x20
str r3, [sp]
mov r0, #0
add r3, #0xec
ldr r2, [r5, #0xc]
add r1, r0, #0
add r3, r5, r3
bl sub_02090C94
str r0, [r4, #0xc]
ldrh r1, [r7]
bl sub_02090D14
b _0203EA12
_0203E9C0:
mov r3, #0x20
str r3, [sp]
add r3, #0xec
ldr r2, [r5, #0xc]
mov r0, #1
mov r1, #0
add r3, r5, r3
bl sub_02090C94
str r0, [r4, #0xc]
ldr r2, [sp, #0x20]
ldrh r1, [r7]
ldrh r2, [r2]
bl sub_02090D18
b _0203EA12
_0203E9E0:
mov r3, #0x20
str r3, [sp]
add r3, #0xec
ldr r2, [r5, #0xc]
mov r0, #2
mov r1, #0
add r3, r5, r3
bl sub_02090C94
str r0, [r4, #0xc]
bl sub_02090D40
sub r1, r6, #2
lsl r1, r1, #0x18
ldr r0, [r5, #0xc]
lsr r1, r1, #0x18
bl sub_0202D660
add r1, r0, #0
ldr r0, [r4, #0xc]
bl sub_02090D20
ldr r0, [r4, #0xc]
bl sub_02090D34
_0203EA12:
ldr r0, [sp, #4]
ldr r1, _0203EA20 ; =sub_0203E878
add r2, r4, #0
bl sub_02050530
add sp, #0xc
pop {r4, r5, r6, r7, pc}
.balign 4, 0
_0203EA20: .word sub_0203E878
thumb_func_end sub_0203E960
thumb_func_start sub_0203EA24
sub_0203EA24: ; 0x0203EA24
ldr r3, _0203EA2C ; =ScrUnk80_AddOvyMan
add r2, r1, #0
ldr r1, _0203EA30 ; =_020FA404
bx r3
.balign 4, 0
_0203EA2C: .word ScrUnk80_AddOvyMan
_0203EA30: .word _020FA404
thumb_func_end sub_0203EA24
thumb_func_start sub_0203EA34
sub_0203EA34: ; 0x0203EA34
push {r4, r5, r6, lr}
sub sp, #0x10
ldr r5, _0203EA58 ; =_020FA3F4
add r4, sp, #0
add r6, r0, #0
add r2, r1, #0
add r3, r4, #0
ldmia r5!, {r0, r1}
stmia r4!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r4!, {r0, r1}
add r0, r6, #0
add r1, r3, #0
bl ScrUnk80_AddOvyMan
add sp, #0x10
pop {r4, r5, r6, pc}
nop
_0203EA58: .word _020FA3F4
thumb_func_end sub_0203EA34
thumb_func_start SwitchToPokegearApp_Radio
SwitchToPokegearApp_Radio: ; 0x0203EA5C
push {r4, r5, r6, lr}
sub sp, #0x10
ldr r5, _0203EA80 ; =_020FA3E4
add r4, sp, #0
add r6, r0, #0
add r2, r1, #0
add r3, r4, #0
ldmia r5!, {r0, r1}
stmia r4!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r4!, {r0, r1}
add r0, r6, #0
add r1, r3, #0
bl ScrUnk80_AddOvyMan
add sp, #0x10
pop {r4, r5, r6, pc}
nop
_0203EA80: .word _020FA3E4
thumb_func_end SwitchToPokegearApp_Radio
thumb_func_start sub_0203EA84
sub_0203EA84: ; 0x0203EA84
push {r3, r4, r5, lr}
add r5, r0, #0
mov r0, #0xb
mov r1, #0x2c
bl AllocFromHeapAtEnd
add r4, r0, #0
mov r1, #0
mov r2, #0x2c
bl MI_CpuFill8
add r0, r5, #0
add r1, r4, #0
bl sub_02092D80
add r0, r5, #0
add r1, r4, #0
bl sub_0203EA34
add r0, r4, #0
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_end sub_0203EA84
thumb_func_start Radio_new
Radio_new: ; 0x0203EAB0
push {r4, r5, r6, lr}
add r5, r0, #0
add r6, r1, #0
mov r0, #0xb
mov r1, #0x2c
bl AllocFromHeapAtEnd
add r4, r0, #0
mov r1, #0
mov r2, #0x2c
bl MI_CpuFill8
add r0, r5, #0
add r1, r4, #0
bl sub_02092D8C
add r0, r5, #0
add r1, r4, #0
strb r6, [r4]
bl SwitchToPokegearApp_Radio
add r0, r4, #0
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_end Radio_new
thumb_func_start sub_0203EAE0
sub_0203EAE0: ; 0x0203EAE0
push {r4, r5, r6, lr}
sub sp, #0x10
ldr r5, _0203EB04 ; =_020FA3D4
add r4, sp, #0
add r6, r0, #0
add r2, r1, #0
add r3, r4, #0
ldmia r5!, {r0, r1}
stmia r4!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r4!, {r0, r1}
add r0, r6, #0
add r1, r3, #0
bl ScrUnk80_AddOvyMan
add sp, #0x10
pop {r4, r5, r6, pc}
nop
_0203EB04: .word _020FA3D4
thumb_func_end sub_0203EAE0
thumb_func_start sub_0203EB08
sub_0203EB08: ; 0x0203EB08
push {r3, r4, r5, lr}
add r5, r0, #0
mov r0, #0xb
mov r1, #0x24
bl AllocFromHeapAtEnd
mov r1, #0
mov r2, #0x24
add r4, r0, #0
bl MI_CpuFill8
add r0, r5, #0
bl ScriptEnvironment_GetSav2Ptr
str r0, [r4]
mov r0, #0x43
lsl r0, r0, #2
add r0, r5, r0
str r0, [r4, #4]
add r0, r5, #0
add r1, r4, #0
bl sub_0203EAE0
add r0, r4, #0
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_end sub_0203EB08
thumb_func_start sub_0203EB3C
sub_0203EB3C: ; 0x0203EB3C
push {r4, r5, r6, lr}
sub sp, #0x10
ldr r5, _0203EB60 ; =_020FA3C4
add r4, sp, #0
add r6, r0, #0
add r2, r1, #0
add r3, r4, #0
ldmia r5!, {r0, r1}
stmia r4!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r4!, {r0, r1}
add r0, r6, #0
add r1, r3, #0
bl ScrUnk80_AddOvyMan
add sp, #0x10
pop {r4, r5, r6, pc}
nop
_0203EB60: .word _020FA3C4
thumb_func_end sub_0203EB3C
thumb_func_start sub_0203EB64
sub_0203EB64: ; 0x0203EB64
push {r3, r4, r5, lr}
mov r1, #0xb
add r5, r0, #0
bl ov02_0224E4EC
add r4, r0, #0
add r0, r5, #0
add r1, r4, #0
bl sub_0203EB3C
add r0, r4, #0
pop {r3, r4, r5, pc}
thumb_func_end sub_0203EB64
thumb_func_start sub_0203EB7C
sub_0203EB7C: ; 0x0203EB7C
push {r4, r5, r6, lr}
sub sp, #0x10
ldr r5, _0203EBA0 ; =_020FA3B4
add r4, sp, #0
add r6, r0, #0
add r2, r1, #0
add r3, r4, #0
ldmia r5!, {r0, r1}
stmia r4!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r4!, {r0, r1}
add r0, r6, #0
add r1, r3, #0
bl ScrUnk80_AddOvyMan
add sp, #0x10
pop {r4, r5, r6, pc}
nop
_0203EBA0: .word _020FA3B4
thumb_func_end sub_0203EB7C
thumb_func_start sub_0203EBA4
sub_0203EBA4: ; 0x0203EBA4
push {r4, r5, r6, lr}
add r5, r0, #0
mov r0, #0xb
mov r1, #0x10
add r6, r2, #0
bl AllocFromHeapAtEnd
mov r1, #0
mov r2, #0x10
add r4, r0, #0
bl MI_CpuFill8
add r0, r5, #0
bl ScriptEnvironment_GetSav2Ptr
str r0, [r4, #0xc]
mov r0, #0x43
lsl r0, r0, #2
add r0, r5, r0
str r0, [r4, #8]
add r0, r5, #0
add r1, r4, #0
strb r6, [r4, #2]
bl sub_0203EB7C
add r0, r4, #0
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_end sub_0203EBA4
thumb_func_start sub_0203EBDC
sub_0203EBDC: ; 0x0203EBDC
push {r4, r5, r6, lr}
sub sp, #0x10
ldr r5, _0203EC00 ; =_020FA3A4
add r4, sp, #0
add r6, r0, #0
add r2, r1, #0
add r3, r4, #0
ldmia r5!, {r0, r1}
stmia r4!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r4!, {r0, r1}
add r0, r6, #0
add r1, r3, #0
bl ScrUnk80_AddOvyMan
add sp, #0x10
pop {r4, r5, r6, pc}
nop
_0203EC00: .word _020FA3A4
thumb_func_end sub_0203EBDC
thumb_func_start sub_0203EC04
sub_0203EC04: ; 0x0203EC04
push {r4, r5, r6, lr}
add r5, r0, #0
add r6, r1, #0
mov r0, #0xb
mov r1, #0x10
bl AllocFromHeapAtEnd
mov r1, #0
mov r2, #0x10
add r4, r0, #0
bl MI_CpuFill8
add r0, r5, #0
bl ScriptEnvironment_GetSav2Ptr
str r0, [r4, #0xc]
mov r0, #0x43
lsl r0, r0, #2
add r0, r5, r0
str r0, [r4, #8]
add r0, r5, #0
add r1, r4, #0
strb r6, [r4, #5]
bl sub_0203EBDC
add r0, r4, #0
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_end sub_0203EC04
thumb_func_start sub_0203EC3C
sub_0203EC3C: ; 0x0203EC3C
push {r4, r5, r6, lr}
sub sp, #0x10
ldr r5, _0203EC60 ; =_020FA394
add r4, sp, #0
add r6, r0, #0
add r2, r1, #0
add r3, r4, #0
ldmia r5!, {r0, r1}
stmia r4!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r4!, {r0, r1}
add r0, r6, #0
add r1, r3, #0
bl ScrUnk80_AddOvyMan
add sp, #0x10
pop {r4, r5, r6, pc}
nop
_0203EC60: .word _020FA394
thumb_func_end sub_0203EC3C
thumb_func_start sub_0203EC64
sub_0203EC64: ; 0x0203EC64
push {r3, r4, r5, lr}
add r5, r0, #0
mov r0, #0xb
mov r1, #8
bl AllocFromHeapAtEnd
mov r1, #0
mov r2, #8
add r4, r0, #0
bl MI_CpuFill8
add r0, r5, #0
bl ScriptEnvironment_GetSav2Ptr
str r0, [r4, #4]
mov r0, #0x43
lsl r0, r0, #2
add r0, r5, r0
str r0, [r4]
add r0, r5, #0
add r1, r4, #0
bl sub_0203EC3C
add r0, r4, #0
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_end sub_0203EC64
thumb_func_start sub_0203EC98
sub_0203EC98: ; 0x0203EC98
push {r4, r5, r6, lr}
sub sp, #0x10
ldr r5, _0203ECBC ; =_020FA384
add r4, sp, #0
add r6, r0, #0
add r2, r1, #0
add r3, r4, #0
ldmia r5!, {r0, r1}
stmia r4!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r4!, {r0, r1}
add r0, r6, #0
add r1, r3, #0
bl ScrUnk80_AddOvyMan
add sp, #0x10
pop {r4, r5, r6, pc}
nop
_0203ECBC: .word _020FA384
thumb_func_end sub_0203EC98
thumb_func_start sub_0203ECC0
sub_0203ECC0: ; 0x0203ECC0
push {r3, r4, r5, lr}
add r5, r0, #0
mov r0, #0xb
mov r1, #0x10
bl AllocFromHeapAtEnd
mov r1, #0
mov r2, #0x10
add r4, r0, #0
bl MI_CpuFill8
add r0, r5, #0
bl ScriptEnvironment_GetSav2Ptr
str r0, [r4, #0xc]
mov r0, #0x43
lsl r0, r0, #2
add r0, r5, r0
str r0, [r4, #4]
add r0, r5, #0
add r0, #0x94
ldr r0, [r0]
add r1, r4, #0
str r0, [r4, #8]
add r0, r5, #0
bl sub_0203EC98
add r0, r4, #0
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_end sub_0203ECC0
thumb_func_start sub_0203ECFC
sub_0203ECFC: ; 0x0203ECFC
push {r4, r5, r6, lr}
sub sp, #0x10
ldr r5, _0203ED20 ; =_020FA374
add r4, sp, #0
add r6, r0, #0
add r2, r1, #0
add r3, r4, #0
ldmia r5!, {r0, r1}
stmia r4!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r4!, {r0, r1}
add r0, r6, #0
add r1, r3, #0
bl ScrUnk80_AddOvyMan
add sp, #0x10
pop {r4, r5, r6, pc}
nop
_0203ED20: .word _020FA374
thumb_func_end sub_0203ECFC
thumb_func_start sub_0203ED24
sub_0203ED24: ; 0x0203ED24
push {r4, r5, r6, lr}
add r5, r0, #0
add r6, r1, #0
mov r0, #0xb
mov r1, #0x1c
bl AllocFromHeapAtEnd
mov r1, #0
mov r2, #0x1c
add r4, r0, #0
bl MI_CpuFill8
add r0, r5, #0
bl ScriptEnvironment_GetSav2Ptr
str r0, [r4, #0x18]
mov r0, #0x43
lsl r0, r0, #2
add r0, r5, r0
str r0, [r4, #0x14]
ldr r0, [r4, #0x18]
bl Sav2_GameStats_get
mov r1, #0
bl GameStats_GetCapped
str r0, [r4, #0x10]
cmp r6, #1
bne _0203ED72
ldr r0, [r5, #0xc]
bl SavArray_Flags_get
bl sub_02066A0C
cmp r0, #0
bne _0203ED72
mov r0, #0
strb r0, [r4]
b _0203ED74
_0203ED72:
strb r6, [r4]
_0203ED74:
add r0, r5, #0
add r1, r4, #0
bl sub_0203ECFC
add r0, r4, #0
pop {r4, r5, r6, pc}
thumb_func_end sub_0203ED24
thumb_func_start sub_0203ED80
sub_0203ED80: ; 0x0203ED80
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r6, r1, #0
mov r0, #0xb
mov r1, #0x1c
add r7, r2, #0
bl AllocFromHeapAtEnd
mov r1, #0
mov r2, #0x1c
add r4, r0, #0
bl MI_CpuFill8
add r0, r5, #0
bl ScriptEnvironment_GetSav2Ptr
str r0, [r4, #0x18]
mov r0, #0x43
lsl r0, r0, #2
add r0, r5, r0
str r0, [r4, #0x14]
ldr r0, [r4, #0x18]
bl Sav2_GameStats_get
mov r1, #0
bl GameStats_GetCapped
str r0, [r4, #0x10]
mov r0, #3
strb r0, [r4]
str r6, [r4, #0xc]
add r0, r5, #0
add r1, r4, #0
str r7, [r4, #8]
bl sub_0203ECFC
add r0, r4, #0
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end sub_0203ED80
thumb_func_start sub_0203EDCC
sub_0203EDCC: ; 0x0203EDCC
ldr r3, _0203EDD4 ; =ScrUnk80_AddOvyMan
add r2, r1, #0
ldr r1, _0203EDD8 ; =_020FA364
bx r3
.balign 4, 0
_0203EDD4: .word ScrUnk80_AddOvyMan
_0203EDD8: .word _020FA364
thumb_func_end sub_0203EDCC
thumb_func_start sub_0203EDDC
sub_0203EDDC: ; 0x0203EDDC
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r6, r1, #0
mov r0, #0xb
mov r1, #0x14
add r7, r2, #0
str r3, [sp]
bl AllocFromHeap
add r4, r0, #0
mov r1, #0
mov r2, #0x14
bl MI_CpuFill8
str r6, [r4]
ldr r0, [sp]
str r7, [r4, #4]
str r0, [r4, #8]
ldr r0, [r5, #0xc]
bl Sav2_PlayerData_GetOptionsAddr
str r0, [r4, #0xc]
add r0, r5, #0
add r1, r4, #0
bl sub_0203EDCC
add r0, r4, #0
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end sub_0203EDDC
thumb_func_start sub_0203EE14
sub_0203EE14: ; 0x0203EE14
ldr r3, _0203EE1C ; =ScrUnk80_AddOvyMan
add r2, r1, #0
ldr r1, _0203EE20 ; =_020FA354
bx r3
.balign 4, 0
_0203EE1C: .word ScrUnk80_AddOvyMan
_0203EE20: .word _020FA354
thumb_func_end sub_0203EE14
thumb_func_start sub_0203EE24
sub_0203EE24: ; 0x0203EE24
push {r3, r4, r5, lr}
add r5, r0, #0
mov r0, #0xb
mov r1, #0xc
bl AllocFromHeapAtEnd
add r4, r0, #0
add r0, r5, #0
bl ScriptEnvironment_GetSav2Ptr
bl Sav2_PlayerData_GetOptionsAddr
str r0, [r4, #4]
mov r0, #0x43
lsl r0, r0, #2
add r0, r5, r0
str r0, [r4, #8]
add r0, r5, #0
add r1, r4, #0
bl sub_0203EE14
add r0, r4, #0
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_end sub_0203EE24
thumb_func_start sub_0203EE54
sub_0203EE54: ; 0x0203EE54
push {r4, lr}
add r4, r0, #0
bl SavArray_Flags_get
mov r1, #0xef
bl CheckFlagInArray
cmp r0, #0
beq _0203EE8A
add r0, r4, #0
bl SavArray_Flags_get
mov r1, #0xf0
bl CheckFlagInArray
cmp r0, #0
beq _0203EE8A
add r0, r4, #0
bl SavArray_Flags_get
mov r1, #0xf1
bl CheckFlagInArray
cmp r0, #0
beq _0203EE8A
mov r0, #1
pop {r4, pc}
_0203EE8A:
mov r0, #0
pop {r4, pc}
.balign 4, 0
thumb_func_end sub_0203EE54
thumb_func_start sub_0203EE90
sub_0203EE90: ; 0x0203EE90
ldr r3, _0203EE98 ; =ScrUnk80_AddOvyMan
add r2, r1, #0
ldr r1, _0203EE9C ; =_020FA344
bx r3
.balign 4, 0
_0203EE98: .word ScrUnk80_AddOvyMan
_0203EE9C: .word _020FA344
thumb_func_end sub_0203EE90
thumb_func_start sub_0203EEA0
sub_0203EEA0: ; 0x0203EEA0
push {r4, r5, r6, lr}
add r5, r0, #0
mov r0, #0xb
mov r1, #8
bl AllocFromHeapAtEnd
add r4, r0, #0
add r0, r5, #0
bl ScriptEnvironment_GetSav2Ptr
add r6, r0, #0
bl sub_02031968
bl sub_02031974
str r0, [r4]
add r0, r6, #0
bl sub_0203EE54
str r0, [r4, #4]
add r0, r5, #0
add r1, r4, #0
bl sub_0203EE90
add r0, r4, #0
pop {r4, r5, r6, pc}
thumb_func_end sub_0203EEA0
thumb_func_start sub_0203EED4
sub_0203EED4: ; 0x0203EED4
ldr r3, _0203EEDC ; =ScrUnk80_AddOvyMan
add r2, r1, #0
ldr r1, _0203EEE0 ; =_020FA314
bx r3
.balign 4, 0
_0203EEDC: .word ScrUnk80_AddOvyMan
_0203EEE0: .word _020FA314
thumb_func_end sub_0203EED4
thumb_func_start sub_0203EEE4
sub_0203EEE4: ; 0x0203EEE4
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
mov r0, #0xb
mov r1, #0x10
bl AllocFromHeapAtEnd
add r4, r0, #0
add r0, r5, #0
bl ScriptEnvironment_GetSav2Ptr
add r6, r0, #0
bl sub_02031968
add r7, r0, #0
add r0, r6, #0
bl Sav2_Pokedex_get
str r0, [sp]
str r0, [r4]
add r0, r7, #0
bl sub_02031978
str r0, [r4, #4]
ldr r0, [sp]
bl Pokedex_GetNatDexFlag
str r0, [r4, #8]
add r0, r6, #0
bl sub_0203EE54
str r0, [r4, #0xc]
add r0, r5, #0
add r1, r4, #0
bl sub_0203EED4
add r0, r4, #0
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end sub_0203EEE4
thumb_func_start sub_0203EF30
sub_0203EF30: ; 0x0203EF30
ldr r3, _0203EF38 ; =ScrUnk80_AddOvyMan
add r2, r1, #0
ldr r1, _0203EF3C ; =_020FA324
bx r3
.balign 4, 0
_0203EF38: .word ScrUnk80_AddOvyMan
_0203EF3C: .word _020FA324
thumb_func_end sub_0203EF30
thumb_func_start sub_0203EF40
sub_0203EF40: ; 0x0203EF40
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
mov r0, #0xb
mov r1, #0x14
bl AllocFromHeapAtEnd
add r4, r0, #0
add r0, r5, #0
bl ScriptEnvironment_GetSav2Ptr
add r6, r0, #0
bl sub_02031968
add r7, r0, #0
bl sub_0203197C
str r0, [r4]
add r0, r7, #0
bl sub_02031984
str r0, [r4, #4]
add r0, r6, #0
bl Sav2_PlayerData_GetProfileAddr
str r0, [r4, #0xc]
add r0, r6, #0
bl sub_0203EE54
str r0, [r4, #0x10]
add r0, r7, #0
bl sub_02031990
str r0, [r4, #8]
add r0, r5, #0
add r1, r4, #0
bl sub_0203EF30
add r0, r4, #0
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end sub_0203EF40
thumb_func_start sub_0203EF90
sub_0203EF90: ; 0x0203EF90
ldr r3, _0203EF98 ; =ScrUnk80_AddOvyMan
add r2, r1, #0
ldr r1, _0203EF9C ; =_020FA424
bx r3
.balign 4, 0
_0203EF98: .word ScrUnk80_AddOvyMan
_0203EF9C: .word _020FA424
thumb_func_end sub_0203EF90
thumb_func_start sub_0203EFA0
sub_0203EFA0: ; 0x0203EFA0
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
mov r0, #3
mov r1, #8
bl AllocFromHeapAtEnd
add r4, r0, #0
add r0, r5, #0
bl ScriptEnvironment_GetSav2Ptr
add r7, r0, #0
bl Sav2_PlayerData_GetProfileAddr
add r6, r0, #0
add r0, r7, #0
bl sub_02031968
str r0, [r4]
add r0, r5, #0
add r1, r4, #0
str r6, [r4, #4]
bl sub_0203EF90
add r0, r4, #0
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end sub_0203EFA0
thumb_func_start sub_0203EFD4
sub_0203EFD4: ; 0x0203EFD4
add r2, r1, #0
mov r1, #0x43
lsl r1, r1, #2
add r1, r0, r1
str r1, [r2, #0x1c]
ldr r3, _0203EFE4 ; =ScrUnk80_AddOvyMan
ldr r1, _0203EFE8 ; =_020FA434
bx r3
.balign 4, 0
_0203EFE4: .word ScrUnk80_AddOvyMan
_0203EFE8: .word _020FA434
thumb_func_end sub_0203EFD4
thumb_func_start sub_0203EFEC
sub_0203EFEC: ; 0x0203EFEC
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r4, r1, #0
add r6, r2, #0
add r7, r3, #0
bl ScriptEnvironment_GetSav2Ptr
mov r1, #0xb
str r1, [sp]
add r1, r4, #0
add r2, r6, #0
add r3, r7, #0
bl sub_02090E68
add r4, r0, #0
add r0, r5, #0
add r1, r4, #0
bl sub_0203EFD4
add r0, r4, #0
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end sub_0203EFEC
thumb_func_start sub_0203F018
sub_0203F018: ; 0x0203F018
push {r3, r4, r5, r6, r7, lr}
add r5, r1, #0
add r7, r0, #0
add r4, r2, #0
add r6, r3, #0
cmp r5, #3
bne _0203F034
bl ScriptEnvironment_GetSav2Ptr
add r1, r4, #0
add r2, r6, #0
bl sub_02090F38
b _0203F042
_0203F034:
bl ScriptEnvironment_GetSav2Ptr
add r1, r5, #0
add r2, r4, #0
add r3, r6, #0
bl sub_02090EC0
_0203F042:
add r4, r0, #0
add r0, r7, #0
add r1, r4, #0
bl sub_0203EFD4
add r0, r4, #0
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end sub_0203F018
thumb_func_start sub_0203F050
sub_0203F050: ; 0x0203F050
push {r4, r5, r6, lr}
add r4, r1, #0
add r6, r2, #0
add r5, r0, #0
bl ScriptEnvironment_GetSav2Ptr
add r1, r4, #0
add r2, r6, #0
bl sub_02090F00
add r4, r0, #0
add r0, r5, #0
add r1, r4, #0
bl sub_0203EFD4
add r0, r4, #0
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_end sub_0203F050
thumb_func_start sub_0203F074
sub_0203F074: ; 0x0203F074
push {r3, r4, r5, lr}
add r5, r0, #0
add r0, r1, #0
mov r1, #0xc
bl AllocFromHeap
add r4, r0, #0
add r0, r5, #0
bl ScriptEnvironment_GetSav2Ptr
str r0, [r4]
mov r0, #0x43
lsl r0, r0, #2
str r5, [r4, #4]
add r0, r5, r0
str r0, [r4, #8]
ldr r1, _0203F0A4 ; =_020FA2F4
add r0, r5, #0
add r2, r4, #0
bl ScrUnk80_AddOvyMan
add r0, r4, #0
pop {r3, r4, r5, pc}
nop
_0203F0A4: .word _020FA2F4
thumb_func_end sub_0203F074
thumb_func_start sub_0203F0A8
sub_0203F0A8: ; 0x0203F0A8
push {r4, r5, r6, lr}
sub sp, #0x10
ldr r5, _0203F0CC ; =_020FA2E4
add r4, sp, #0
add r6, r0, #0
add r2, r1, #0
add r3, r4, #0
ldmia r5!, {r0, r1}
stmia r4!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r4!, {r0, r1}
add r0, r6, #0
add r1, r3, #0
bl ScrUnk80_AddOvyMan
add sp, #0x10
pop {r4, r5, r6, pc}
nop
_0203F0CC: .word _020FA2E4
thumb_func_end sub_0203F0A8
thumb_func_start sub_0203F0D0
sub_0203F0D0: ; 0x0203F0D0
push {r3, r4, r5, r6, r7, lr}
add r6, r1, #0
mov r1, #0x24
add r4, r2, #0
add r7, r3, #0
bl AllocFromHeap
mov r1, #0
mov r2, #0x24
add r5, r0, #0
bl memset
add r0, r6, #0
bl SavArray_PlayerParty_get
add r1, r4, #0
bl GetPartyMonByIndex
str r0, [r5]
add r0, r6, #0
bl Save_DressupData_get
str r0, [sp]
mov r1, #0
bl sub_0202B9B8
add r4, r0, #0
ldr r0, [sp]
bl SaveDressupData_GetFashionCase
str r4, [r5, #4]
str r0, [r5, #8]
add r0, r6, #0
bl Sav2_PlayerData_GetOptionsAddr
str r0, [r5, #0xc]
add r0, r6, #0
bl Sav2_GameStats_get
str r0, [r5, #0x10]
add r0, r6, #0
bl Sav2_PlayerData_GetProfileAddr
str r0, [r5, #0x14]
ldr r0, [sp, #0x18]
str r7, [r5, #0x18]
str r0, [r5, #0x1c]
add r0, r5, #0
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end sub_0203F0D0
thumb_func_start sub_0203F134
sub_0203F134: ; 0x0203F134
push {r3, r4, r5, lr}
add r5, r0, #0
bl sub_0205064C
add r4, r0, #0
add r0, r5, #0
bl sub_02050650
add r5, r0, #0
ldr r0, [r5]
cmp r0, #0
beq _0203F152
cmp r0, #1
beq _0203F162
b _0203F192
_0203F152:
ldr r1, [r5, #0xc]
add r0, r4, #0
bl sub_0203F1E8
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _0203F192
_0203F162:
add r0, r4, #0
bl sub_020505A0
cmp r0, #0
bne _0203F192
ldr r1, [r5, #4]
cmp r1, #0
beq _0203F182
ldr r0, [r5, #8]
cmp r0, #1
bne _0203F17E
mov r0, #1
strh r0, [r1]
b _0203F182
_0203F17E:
mov r0, #0
strh r0, [r1]
_0203F182:
ldr r0, [r5, #0xc]
bl FreeToHeap
add r0, r5, #0
bl FreeToHeap
mov r0, #1
pop {r3, r4, r5, pc}
_0203F192:
mov r0, #0
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_end sub_0203F134
thumb_func_start sub_0203F198
sub_0203F198: ; 0x0203F198
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
add r6, r0, #0
add r5, r1, #0
mov r0, #0x20
mov r1, #0x10
add r7, r2, #0
str r3, [sp, #4]
bl AllocFromHeap
add r4, r0, #0
add r2, r4, #0
mov r1, #0x10
mov r0, #0
_0203F1B4:
strb r0, [r2]
add r2, r2, #1
sub r1, r1, #1
bne _0203F1B4
add r0, sp, #0x10
ldrh r0, [r0, #0x10]
add r3, r4, #0
add r1, r7, #0
str r0, [sp]
ldr r2, [sp, #4]
mov r0, #0x20
add r3, #8
bl sub_0203F0D0
str r0, [r4, #0xc]
ldr r1, _0203F1E4 ; =sub_0203F134
add r0, r6, #0
add r2, r4, #0
str r5, [r4, #4]
bl sub_02050530
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
nop
_0203F1E4: .word sub_0203F134
thumb_func_end sub_0203F198
thumb_func_start sub_0203F1E8
sub_0203F1E8: ; 0x0203F1E8
push {r3, lr}
add r2, r1, #0
mov r1, #0x43
lsl r1, r1, #2
add r1, r0, r1
str r1, [r2, #0x20]
ldr r1, _0203F200 ; =_0210F9AC
bl ScrUnk80_AddOvyMan
mov r0, #1
pop {r3, pc}
nop
_0203F200: .word _0210F9AC
thumb_func_end sub_0203F1E8
thumb_func_start sub_0203F204
sub_0203F204: ; 0x0203F204
push {r3, lr}
add r2, r1, #0
ldr r1, _0203F214 ; =_0210F99C
bl ScrUnk80_AddOvyMan
mov r0, #1
pop {r3, pc}
nop
_0203F214: .word _0210F99C
thumb_func_end sub_0203F204
thumb_func_start sub_0203F218
sub_0203F218: ; 0x0203F218
push {r3, r4, r5, lr}
add r4, r1, #0
add r5, r0, #0
ldr r0, [r4, #0xc]
bl Sav2_PlayerData_GetProfileAddr
str r0, [r5, #4]
ldr r0, [r4, #0xc]
bl SavArray_PlayerParty_get
str r0, [r5, #8]
ldr r0, [r4, #0xc]
mov r1, #8
bl SavArray_get
str r0, [r5, #0xc]
ldr r0, [r4, #0xc]
bl sub_0202CA44
str r0, [r5, #0x14]
ldr r0, [r4, #0xc]
bl Sav2_PlayerData_GetOptionsAddr
str r0, [r5, #0x18]
ldr r0, [r4, #0xc]
bl Sav2_Pokedex_get
str r0, [r5, #0x20]
ldr r0, [r4, #0xc]
bl SavArray_IsNatDexEnabled
str r0, [r5, #0x2c]
ldr r0, [r4, #0xc]
str r0, [r5, #0x10]
ldr r0, [r4, #0xc]
bl Sav2_GameStats_get
str r0, [r5, #0x1c]
bl PlayerProfile_sizeof
add r1, r0, #0
mov r0, #0x20
bl AllocFromHeap
str r0, [r5, #0x34]
bl sub_02070D90
add r1, r0, #0
mov r0, #0x20
bl AllocFromHeap
str r0, [r5, #0x38]
bl sub_02070D90
add r1, r0, #0
mov r0, #0x20
bl AllocFromHeap
str r0, [r5, #0x3c]
str r4, [r5]
mov r0, #0
str r0, [r5, #0x30]
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_end sub_0203F218
thumb_func_start sub_0203F298
sub_0203F298: ; 0x0203F298
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0x34]
cmp r0, #0
beq _0203F2AA
bl FreeToHeap
mov r0, #0
str r0, [r4, #0x34]
_0203F2AA:
ldr r0, [r4, #0x38]
cmp r0, #0
beq _0203F2B8
bl FreeToHeap
mov r0, #0
str r0, [r4, #0x38]
_0203F2B8:
ldr r0, [r4, #0x3c]
cmp r0, #0
beq _0203F2C6
bl FreeToHeap
mov r0, #0
str r0, [r4, #0x3c]
_0203F2C6:
pop {r4, pc}
thumb_func_end sub_0203F298
thumb_func_start sub_0203F2C8
sub_0203F2C8: ; 0x0203F2C8
push {r4, r5, r6, r7, lr}
sub sp, #0x2c
add r6, r0, #0
bl sub_0205064C
add r5, r0, #0
add r0, r6, #0
bl sub_02050650
add r4, r0, #0
ldr r0, [r4]
cmp r0, #7
bls _0203F2E4
b _0203F49A
_0203F2E4:
add r1, r0, r0
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_0203F2F0: ; jump table
.short _0203F300 - _0203F2F0 - 2 ; case 0
.short _0203F316 - _0203F2F0 - 2 ; case 1
.short _0203F324 - _0203F2F0 - 2 ; case 2
.short _0203F336 - _0203F2F0 - 2 ; case 3
.short _0203F354 - _0203F2F0 - 2 ; case 4
.short _0203F3C2 - _0203F2F0 - 2 ; case 5
.short _0203F446 - _0203F2F0 - 2 ; case 6
.short _0203F472 - _0203F2F0 - 2 ; case 7
_0203F300:
bl sub_02039998
cmp r0, #0
bne _0203F30E
add r0, r6, #0
bl sub_0205525C
_0203F30E:
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _0203F49A
_0203F316:
add r0, r4, #4
add r1, r5, #0
bl sub_0203F218
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
_0203F324:
ldr r1, _0203F4A0 ; =_0210F98C
add r0, r6, #0
add r2, r4, #4
bl sub_02050624
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _0203F49A
_0203F336:
ldr r1, [r4, #0x28]
cmp r1, #0
bne _0203F34E
add r0, r4, #4
bl sub_0203F298
add r0, r4, #0
bl FreeToHeap
add sp, #0x2c
mov r0, #1
pop {r4, r5, r6, r7, pc}
_0203F34E:
add r0, r0, #1
str r0, [r4]
b _0203F49A
_0203F354:
ldr r0, [r4, #0x38]
str r0, [r4, #0x4c]
ldr r0, [r4, #0x3c]
bl Mon_GetBoxMon
str r0, [r4, #0x44]
ldr r0, [r4, #0x40]
bl Mon_GetBoxMon
str r0, [r4, #0x48]
ldr r0, [r5, #0xc]
bl Sav2_PlayerData_GetOptionsAddr
str r0, [r4, #0x58]
mov r0, #1
str r0, [r4, #0x54]
add r0, r5, #0
bl sub_020555E0
cmp r0, #4
bhi _0203F394
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_0203F38A: ; jump table
.short _0203F394 - _0203F38A - 2 ; case 0
.short _0203F394 - _0203F38A - 2 ; case 1
.short _0203F39A - _0203F38A - 2 ; case 2
.short _0203F3A0 - _0203F38A - 2 ; case 3
.short _0203F3A0 - _0203F38A - 2 ; case 4
_0203F394:
mov r0, #0
str r0, [r4, #0x50]
b _0203F3A4
_0203F39A:
mov r0, #1
str r0, [r4, #0x50]
b _0203F3A4
_0203F3A0:
mov r0, #2
str r0, [r4, #0x50]
_0203F3A4:
bl sub_02039998
cmp r0, #0
beq _0203F3B0
mov r0, #3
str r0, [r4, #0x50]
_0203F3B0:
add r2, r4, #0
ldr r1, _0203F4A4 ; =_020FA2D4
add r0, r6, #0
add r2, #0x44
bl sub_02050624
mov r0, #5
str r0, [r4]
b _0203F49A
_0203F3C2:
ldr r0, [r4, #0x40]
mov r1, #6
mov r2, #0
bl GetMonData
add r3, r0, #0
add r0, sp, #0x28
str r0, [sp]
lsl r3, r3, #0x10
ldr r1, [r4, #0x40]
mov r0, #0
mov r2, #1
lsr r3, r3, #0x10
bl GetMonEvolution
str r0, [sp, #0x1c]
cmp r0, #0
beq _0203F440
mov r0, #3
mov r1, #0x1a
lsl r2, r0, #0x10
bl CreateHeap
ldr r0, [r5, #0xc]
bl Sav2_PlayerData_GetOptionsAddr
str r0, [sp, #0x20]
ldr r0, [r5, #0xc]
bl sub_02088288
add r6, r0, #0
ldr r0, [r5, #0xc]
bl Sav2_Pokedex_get
add r7, r0, #0
ldr r0, [r5, #0xc]
bl Sav2_Bag_get
str r0, [sp, #0x24]
ldr r0, [r5, #0xc]
bl Sav2_GameStats_get
str r6, [sp]
ldr r1, [sp, #0x24]
str r7, [sp, #4]
str r1, [sp, #8]
str r0, [sp, #0xc]
ldr r0, [sp, #0x28]
ldr r2, [sp, #0x1c]
str r0, [sp, #0x10]
mov r0, #4
str r0, [sp, #0x14]
mov r0, #0x1a
str r0, [sp, #0x18]
ldr r1, [r4, #0x40]
ldr r3, [sp, #0x20]
mov r0, #0
bl sub_02075A7C
str r0, [r4, #0x5c]
mov r0, #6
str r0, [r4]
b _0203F49A
_0203F440:
mov r0, #7
str r0, [r4]
b _0203F49A
_0203F446:
ldr r0, [r4, #0x5c]
bl sub_02075D3C
cmp r0, #0
beq _0203F49A
ldr r0, [r4, #0xc]
ldr r1, [r4, #0x2c]
bl GetPartyMonByIndex
add r1, r0, #0
ldr r0, [r4, #0x40]
bl CopyPokemonToPokemon
ldr r0, [r4, #0x5c]
bl sub_02075D4C
mov r0, #0x1a
bl DestroyHeap
mov r0, #7
str r0, [r4]
b _0203F49A
_0203F472:
ldr r0, [r4, #0x34]
add r0, r0, #1
str r0, [r4, #0x34]
mov r0, #2
str r0, [r4]
ldr r0, [r5, #0xc]
bl Sav2_GameStats_get
mov r1, #0x10
add r4, r0, #0
bl GameStats_AddSpecial
bl sub_02039998
cmp r0, #0
beq _0203F49A
add r0, r4, #0
mov r1, #0x72
bl GameStats_Inc
_0203F49A:
mov r0, #0
add sp, #0x2c
pop {r4, r5, r6, r7, pc}
.balign 4, 0
_0203F4A0: .word _0210F98C
_0203F4A4: .word _020FA2D4
thumb_func_end sub_0203F2C8
thumb_func_start sub_0203F4A8
sub_0203F4A8: ; 0x0203F4A8
push {r4, lr}
add r4, r0, #0
mov r0, #0x20
mov r1, #0x64
bl AllocFromHeap
add r2, r0, #0
mov r0, #0
str r0, [r2]
ldr r1, _0203F4C4 ; =sub_0203F2C8
add r0, r4, #0
bl sub_02050530
pop {r4, pc}
.balign 4, 0
_0203F4C4: .word sub_0203F2C8
thumb_func_end sub_0203F4A8
thumb_func_start sub_0203F4C8
sub_0203F4C8: ; 0x0203F4C8
push {r3, r4, r5, lr}
add r5, r0, #0
mov r0, #0x20
mov r1, #8
bl AllocFromHeap
add r4, r0, #0
add r0, r5, #0
add r0, #0x84
ldr r0, [r0]
str r0, [r4]
ldr r0, [r5, #0xc]
bl Sav2_PlayerData_GetOptionsAddr
str r0, [r4, #4]
ldr r1, _0203F4F4 ; =_020FA2C4
add r0, r5, #0
add r2, r4, #0
bl ScrUnk80_AddOvyMan
pop {r3, r4, r5, pc}
nop
_0203F4F4: .word _020FA2C4
thumb_func_end sub_0203F4C8
thumb_func_start sub_0203F4F8
sub_0203F4F8: ; 0x0203F4F8
push {r3, r4, r5, lr}
add r5, r0, #0
mov r0, #0xb
mov r1, #0x14
bl AllocFromHeap
add r4, r0, #0
ldr r0, [r5, #0xc]
str r0, [r4]
add r0, r5, #0
add r0, #0x84
ldr r0, [r0]
str r0, [r4, #4]
ldr r0, [r5, #0xc]
bl Sav2_PlayerData_GetOptionsAddr
str r0, [r4, #8]
ldr r0, [r5, #0xc]
bl Sav2_GameStats_get
str r0, [r4, #0xc]
mov r0, #0x43
lsl r0, r0, #2
add r0, r5, r0
str r0, [r4, #0x10]
ldr r1, _0203F538 ; =_020FA2B4
add r0, r5, #0
add r2, r4, #0
bl ScrUnk80_AddOvyMan
add r0, r4, #0
pop {r3, r4, r5, pc}
.balign 4, 0
_0203F538: .word _020FA2B4
thumb_func_end sub_0203F4F8
thumb_func_start sub_0203F53C
sub_0203F53C: ; 0x0203F53C
push {r4, r5, r6, lr}
add r5, r0, #0
add r6, r1, #0
add r0, r2, #0
mov r1, #8
bl AllocFromHeap
mov r1, #0
mov r2, #8
add r4, r0, #0
bl MI_CpuFill8
mov r0, #0x43
lsl r0, r0, #2
str r6, [r4]
add r0, r5, r0
str r0, [r4, #4]
ldr r1, _0203F56C ; =_020FA2A4
add r0, r5, #0
add r2, r4, #0
bl ScrUnk80_AddOvyMan
add r0, r4, #0
pop {r4, r5, r6, pc}
.balign 4, 0
_0203F56C: .word _020FA2A4
thumb_func_end sub_0203F53C
thumb_func_start sub_0203F570
sub_0203F570: ; 0x0203F570
ldr r3, _0203F578 ; =ScrUnk80_AddOvyMan
ldr r1, _0203F57C ; =_02102830
add r2, r0, #0
bx r3
.balign 4, 0
_0203F578: .word ScrUnk80_AddOvyMan
_0203F57C: .word _02102830
thumb_func_end sub_0203F570
thumb_func_start sub_0203F580
sub_0203F580: ; 0x0203F580
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
bl sub_0205064C
add r6, r0, #0
add r0, r5, #0
bl sub_02050650
add r4, r0, #0
ldr r0, [r4]
cmp r0, #3
bhi _0203F648
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_0203F5A4: ; jump table
.short _0203F5AC - _0203F5A4 - 2 ; case 0
.short _0203F5BA - _0203F5A4 - 2 ; case 1
.short _0203F5CC - _0203F5A4 - 2 ; case 2
.short _0203F5DA - _0203F5A4 - 2 ; case 3
_0203F5AC:
add r0, r5, #0
bl sub_0205525C
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _0203F648
_0203F5BA:
ldr r1, _0203F64C ; =_02102610
ldr r2, [r4, #0xc]
add r0, r5, #0
bl sub_02050624
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _0203F648
_0203F5CC:
add r0, r5, #0
bl sub_020552A4
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _0203F648
_0203F5DA:
ldr r1, [r4, #0xc]
ldr r0, [r1]
cmp r0, #1
bne _0203F5F6
ldr r0, [r1, #0x18]
ldr r1, [r4, #0x10]
bl StringCompare
cmp r0, #0
bne _0203F618
ldr r0, [r4, #0xc]
mov r1, #1
str r1, [r0, #0x14]
b _0203F618
_0203F5F6:
cmp r0, #5
bne _0203F618
ldr r0, [r1, #0x18]
bl String_c_str
add r7, r0, #0
ldr r0, [r6, #0xc]
bl sub_0202C854
add r1, r7, #0
bl sub_0202C88C
cmp r0, #0
beq _0203F618
ldr r0, [r4, #0xc]
mov r1, #2
str r1, [r0, #0x14]
_0203F618:
ldr r0, [r4, #0xc]
ldr r0, [r0, #0x14]
cmp r0, #0
bne _0203F626
add r0, r5, #0
bl NamingScreen_SetName
_0203F626:
ldr r1, [r4, #8]
cmp r1, #0
beq _0203F632
ldr r0, [r4, #0xc]
ldr r0, [r0, #0x14]
strh r0, [r1]
_0203F632:
ldr r0, [r4, #0xc]
bl sub_0208311C
ldr r0, [r4, #0x10]
bl String_dtor
add r0, r4, #0
bl FreeToHeap
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_0203F648:
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_0203F64C: .word _02102610
thumb_func_end sub_0203F580
thumb_func_start NamingScreen_SetName
NamingScreen_SetName: ; 0x0203F650
push {r4, r5, r6, lr}
add r4, r0, #0
bl sub_0205064C
add r5, r0, #0
add r0, r4, #0
bl sub_02050650
add r4, r0, #0
ldr r0, [r4, #0xc]
ldr r0, [r0]
cmp r0, #5
bhi _0203F6DC
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_0203F676: ; jump table
.short _0203F682 - _0203F676 - 2 ; case 0
.short _0203F6A2 - _0203F676 - 2 ; case 1
.short _0203F6DC - _0203F676 - 2 ; case 2
.short _0203F692 - _0203F676 - 2 ; case 3
.short _0203F6DC - _0203F676 - 2 ; case 4
.short _0203F6CA - _0203F676 - 2 ; case 5
_0203F682:
ldr r0, [r5, #0xc]
bl Sav2_PlayerData_GetProfileAddr
ldr r1, [r4, #0xc]
add r1, #0x1c
bl Sav2_Profile_PlayerName_set
pop {r4, r5, r6, pc}
_0203F692:
ldr r0, [r5, #0xc]
bl Sav2_Misc_get
ldr r1, [r4, #0xc]
ldr r1, [r1, #0x18]
bl Sav2_Misc_RivalName_set
pop {r4, r5, r6, pc}
_0203F6A2:
ldr r6, [r4, #4]
cmp r6, #0xff
bne _0203F6B2
add r0, r5, #0
bl sub_0206DB28
ldr r0, [r0, #0x10]
b _0203F6BE
_0203F6B2:
ldr r0, [r5, #0xc]
bl SavArray_PlayerParty_get
add r1, r6, #0
bl GetPartyMonByIndex
_0203F6BE:
ldr r2, [r4, #0xc]
mov r1, #0x76
add r2, #0x1c
bl SetMonData
pop {r4, r5, r6, pc}
_0203F6CA:
ldr r0, [r5, #0xc]
bl sub_0202C854
ldr r3, [r4, #0xc]
mov r1, #0
ldr r3, [r3, #0x18]
add r2, r1, #0
bl sub_0202C7F8
_0203F6DC:
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_end NamingScreen_SetName
thumb_func_start sub_0203F6E0
sub_0203F6E0: ; 0x0203F6E0
push {r4, r5, r6, r7, lr}
sub sp, #0x14
str r0, [sp, #8]
add r7, r1, #0
str r2, [sp, #0xc]
str r3, [sp, #0x10]
ldr r5, [sp, #0x2c]
bl sub_0205064C
add r6, r0, #0
mov r0, #0xb
mov r1, #0x14
bl AllocFromHeapAtEnd
add r4, r0, #0
mov r0, #0
str r0, [r4]
ldr r0, [sp, #0x28]
str r0, [r4, #4]
ldr r0, [sp, #0x30]
str r0, [r4, #8]
ldr r0, [r6, #0xc]
bl Sav2_PlayerData_GetOptionsAddr
str r0, [sp]
mov r0, #0x43
lsl r0, r0, #2
add r0, r6, r0
str r0, [sp, #4]
ldr r2, [sp, #0xc]
ldr r3, [sp, #0x10]
mov r0, #0xb
add r1, r7, #0
bl sub_020830D8
str r0, [r4, #0xc]
mov r0, #0xc
mov r1, #0xb
bl String_ctor
str r0, [r4, #0x10]
cmp r7, #1
beq _0203F73C
cmp r7, #5
beq _0203F784
b _0203F78E
_0203F73C:
ldr r0, [sp, #0x28]
cmp r0, #0xff
bne _0203F74C
add r0, r6, #0
bl sub_0206DB28
ldr r6, [r0, #0x10]
b _0203F75A
_0203F74C:
ldr r0, [r6, #0xc]
bl SavArray_PlayerParty_get
ldr r1, [r4, #4]
bl GetPartyMonByIndex
add r6, r0, #0
_0203F75A:
add r0, r6, #0
mov r1, #0x6f
mov r2, #0
bl GetMonData
ldr r1, [r4, #0xc]
mov r2, #0
str r0, [r1, #0x10]
add r0, r6, #0
mov r1, #0x70
bl GetMonData
ldr r1, [r4, #0xc]
cmp r5, #0
str r0, [r1, #8]
beq _0203F79C
ldr r0, [r4, #0x10]
add r1, r5, #0
bl CopyU16ArrayToString
b _0203F79C
_0203F784:
ldr r0, [r4, #0x10]
add r1, r5, #0
bl CopyU16ArrayToString
b _0203F79C
_0203F78E:
cmp r5, #0
beq _0203F79C
ldr r0, [r4, #0xc]
add r1, r5, #0
ldr r0, [r0, #0x18]
bl CopyU16ArrayToString
_0203F79C:
ldr r0, [sp, #8]
ldr r1, _0203F7AC ; =sub_0203F580
add r2, r4, #0
bl sub_02050530
add sp, #0x14
pop {r4, r5, r6, r7, pc}
nop
_0203F7AC: .word sub_0203F580
thumb_func_end sub_0203F6E0
thumb_func_start sub_0203F7B0
sub_0203F7B0: ; 0x0203F7B0
push {r3, r4, r5, lr}
add r5, r0, #0
mov r0, #0x43
lsl r0, r0, #2
add r4, r1, #0
add r1, r5, r0
ldr r0, _0203F7E8 ; =0x0000066C
str r1, [r4, r0]
ldr r1, [r5, #0xc]
add r0, r0, #4
str r1, [r4, r0]
ldr r0, [r5, #0xc]
bl SavArray_Flags_get
bl sub_02066614
ldr r1, _0203F7EC ; =0x00000678
mov r2, #0
str r0, [r4, r1]
sub r0, r1, #4
str r2, [r4, r0]
ldr r1, _0203F7F0 ; =_020FA294
add r0, r5, #0
add r2, r4, #0
bl ScrUnk80_AddOvyMan
pop {r3, r4, r5, pc}
nop
_0203F7E8: .word 0x0000066C
_0203F7EC: .word 0x00000678
_0203F7F0: .word _020FA294
thumb_func_end sub_0203F7B0
thumb_func_start sub_0203F7F4
sub_0203F7F4: ; 0x0203F7F4
push {r3, lr}
add r2, r1, #0
ldr r1, _0203F804 ; =_020FA284
bl ScrUnk80_AddOvyMan
mov r0, #1
pop {r3, pc}
nop
_0203F804: .word _020FA284
thumb_func_end sub_0203F7F4
thumb_func_start sub_0203F808
sub_0203F808: ; 0x0203F808
ldr r3, _0203F810 ; =ScrUnk80_AddOvyMan
add r2, r1, #0
ldr r1, _0203F814 ; =_020FA274
bx r3
.balign 4, 0
_0203F810: .word ScrUnk80_AddOvyMan
_0203F814: .word _020FA274
thumb_func_end sub_0203F808
thumb_func_start sub_0203F818
sub_0203F818: ; 0x0203F818
push {r3, r4, r5, lr}
sub sp, #0x10
add r4, r0, #0
ldr r0, [r4, #0xc]
bl sub_0202C9D8
ldr r5, _0203F840 ; =_020FA254
add r3, sp, #0
add r2, r3, #0
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
add r1, r2, #0
ldr r2, [r4, #0xc]
add r0, r4, #0
bl ScrUnk80_AddOvyMan
add sp, #0x10
pop {r3, r4, r5, pc}
.balign 4, 0
_0203F840: .word _020FA254
thumb_func_end sub_0203F818
thumb_func_start sub_0203F844
sub_0203F844: ; 0x0203F844
push {r4, r5, r6, lr}
sub sp, #0x10
ldr r3, _0203F8E8 ; =_020FA264
add r2, sp, #0
add r5, r0, #0
add r6, r1, #0
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
mov r0, #0xb
mov r1, #0x40
bl AllocFromHeapAtEnd
add r4, r0, #0
ldr r0, [r5, #0xc]
bl sub_0202DB34
str r0, [r4]
ldr r0, [r5, #0xc]
bl Sav2_SysInfo_get
str r0, [r4, #4]
ldr r0, [r5, #0xc]
mov r1, #2
bl SavArray_get
str r0, [r4, #8]
ldr r0, [r5, #0xc]
bl GetStoragePCPointer
str r0, [r4, #0xc]
ldr r0, [r5, #0xc]
bl Sav2_Pokedex_get
str r0, [r4, #0x10]
ldr r0, [r5, #0xc]
bl sub_0202C6F4
str r0, [r4, #0x14]
ldr r0, [r5, #0xc]
bl sub_0202CA44
str r0, [r4, #0x18]
ldr r0, [r5, #0xc]
bl Sav2_PlayerData_GetProfileAddr
str r0, [r4, #0x1c]
ldr r0, [r5, #0xc]
bl Sav2_PlayerData_GetOptionsAddr
str r0, [r4, #0x24]
ldr r0, [r5, #0xc]
bl Sav2_GameStats_get
str r0, [r4, #0x28]
ldr r0, [r5, #0xc]
bl sub_02088288
str r0, [r4, #0x38]
ldr r0, [r5, #0xc]
str r0, [r4, #0x20]
ldr r0, [r5, #0xc]
bl SavArray_IsNatDexEnabled
str r0, [r4, #0x30]
ldr r0, [r4, #0x14]
bl sub_0203A040
str r0, [r4, #0x34]
ldr r0, [r5, #0xc]
bl Sav2_Bag_get
str r0, [r4, #0x2c]
add r0, r5, #0
add r1, sp, #0
add r2, r4, #0
str r6, [r4, #0x3c]
bl ScrUnk80_AddOvyMan
add sp, #0x10
pop {r4, r5, r6, pc}
.balign 4, 0
_0203F8E8: .word _020FA264
thumb_func_end sub_0203F844
thumb_func_start sub_0203F8EC
sub_0203F8EC: ; 0x0203F8EC
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x10
ldr r3, _0203F960 ; =_020FA334
add r7, r2, #0
add r2, sp, #0
add r5, r0, #0
add r6, r1, #0
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
mov r0, #0xb
mov r1, #0x28
bl AllocFromHeapAtEnd
add r4, r0, #0
ldr r0, [r5, #0xc]
bl Save_FrontierData_get
str r0, [r4]
ldr r0, [r5, #0xc]
bl sub_0202D928
str r0, [r4, #4]
ldr r0, [r5, #0xc]
bl Sav2_SysInfo_get
str r0, [r4, #8]
ldr r0, [r5, #0xc]
bl Sav2_PlayerData_GetOptionsAddr
str r0, [r4, #0x10]
ldr r0, [r5, #0xc]
bl sub_0202C6F4
bl sub_0202C08C
str r0, [r4, #0x14]
ldr r0, [r5, #0xc]
str r0, [r4, #0xc]
ldr r0, [r5, #0xc]
bl sub_0202C6F4
bl sub_0203A040
str r0, [r4, #0x1c]
str r6, [r4, #0x18]
str r7, [r4, #0x24]
mov r0, #1
str r0, [r4, #0x20]
add r0, r5, #0
add r1, sp, #0
add r2, r4, #0
bl ScrUnk80_AddOvyMan
add r0, r4, #0
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_0203F960: .word _020FA334
thumb_func_end sub_0203F8EC
thumb_func_start sub_0203F964
sub_0203F964: ; 0x0203F964
ldr r3, _0203F96C ; =ScrUnk80_AddOvyMan
ldr r1, _0203F970 ; =_020FA224
ldr r2, [r0, #0xc]
bx r3
.balign 4, 0
_0203F96C: .word ScrUnk80_AddOvyMan
_0203F970: .word _020FA224
thumb_func_end sub_0203F964
thumb_func_start sub_0203F974
sub_0203F974: ; 0x0203F974
ldr r3, _0203F97C ; =ScrUnk80_AddOvyMan
add r2, r1, #0
ldr r1, _0203F980 ; =_020FA214
bx r3
.balign 4, 0
_0203F97C: .word ScrUnk80_AddOvyMan
_0203F980: .word _020FA214
thumb_func_end sub_0203F974
thumb_func_start sub_0203F984
sub_0203F984: ; 0x0203F984
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r0, [r5, #0xc]
mov r1, #0xb
add r2, sp, #0
bl LoadHallOfFame
ldr r1, [sp]
add r4, r0, #0
cmp r1, #2
bne _0203F9A2
bl FreeToHeap
mov r0, #0
pop {r3, r4, r5, pc}
_0203F9A2:
ldr r1, _0203F9B0 ; =_020FA204
add r0, r5, #0
add r2, r4, #0
bl ScrUnk80_AddOvyMan
add r0, r4, #0
pop {r3, r4, r5, pc}
.balign 4, 0
_0203F9B0: .word _020FA204
thumb_func_end sub_0203F984
thumb_func_start sub_0203F9B4
sub_0203F9B4: ; 0x0203F9B4
ldr r3, _0203F9BC ; =ScrUnk80_AddOvyMan
add r2, r1, #0
ldr r1, _0203F9C0 ; =_020FA1F4
bx r3
.balign 4, 0
_0203F9BC: .word ScrUnk80_AddOvyMan
_0203F9C0: .word _020FA1F4
thumb_func_end sub_0203F9B4
thumb_func_start sub_0203F9C4
sub_0203F9C4: ; 0x0203F9C4
push {r4, r5, r6, lr}
sub sp, #0x10
ldr r6, _0203F9F0 ; =_020FA1E4
add r5, sp, #0
add r3, r0, #0
add r2, r1, #0
add r4, r5, #0
ldmia r6!, {r0, r1}
stmia r5!, {r0, r1}
ldmia r6!, {r0, r1}
stmia r5!, {r0, r1}
mov r0, #0x43
lsl r0, r0, #2
add r0, r3, r0
str r0, [r2, #0xc]
add r0, r3, #0
add r1, r4, #0
bl ScrUnk80_AddOvyMan
add sp, #0x10
pop {r4, r5, r6, pc}
nop
_0203F9F0: .word _020FA1E4
thumb_func_end sub_0203F9C4
thumb_func_start sub_0203F9F4
sub_0203F9F4: ; 0x0203F9F4
push {r3, r4, r5, lr}
sub sp, #0x10
add r4, r0, #0
ldr r0, [r4, #0xc]
bl SavArray_PlayerParty_get
bl sub_0206CE44
add r5, r0, #0
bne _0203FA0C
bl GF_AssertFail
_0203FA0C:
str r5, [sp]
ldr r0, [r4, #0xc]
bl Sav2_PlayerData_GetOptionsAddr
str r0, [sp, #4]
ldr r0, [r4, #0xc]
bl Sav2_PlayerData_GetProfileAddr
str r0, [sp, #8]
ldr r1, [r4, #0x20]
add r0, r4, #0
ldr r1, [r1]
bl sub_02054F60
add r1, sp, #0
strh r0, [r1, #0xc]
ldr r0, [r4, #0x10]
add r1, sp, #0
bl sub_02091240
add sp, #0x10
pop {r3, r4, r5, pc}
thumb_func_end sub_0203F9F4
thumb_func_start sub_0203FA38
sub_0203FA38: ; 0x0203FA38
push {r4, r5, r6, lr}
add r5, r0, #0
mov r0, #0xb
mov r1, #0x14
bl AllocFromHeapAtEnd
mov r1, #0
mov r2, #0x14
add r4, r0, #0
bl MI_CpuFill8
add r0, r5, #0
bl ScriptEnvironment_GetSav2Ptr
add r6, r0, #0
bl Sav2_PlayerData_GetCoinsAddr
str r0, [r4, #4]
add r0, r6, #0
bl Sav2_PlayerData_GetOptionsAddr
str r0, [r4]
mov r0, #0x43
lsl r0, r0, #2
add r0, r5, r0
str r0, [r4, #8]
add r0, r6, #0
bl Sav2_PlayerData_GetProfileAddr
str r0, [r4, #0xc]
ldr r0, [r5, #0xc]
ldr r1, _0203FA88 ; =_020FA234
str r0, [r4, #0x10]
add r0, r5, #0
add r2, r4, #0
bl ScrUnk80_AddOvyMan
add r0, r4, #0
pop {r4, r5, r6, pc}
nop
_0203FA88: .word _020FA234
thumb_func_end sub_0203FA38
thumb_func_start sub_0203FA8C
sub_0203FA8C: ; 0x0203FA8C
push {r4, r5, r6, lr}
add r5, r0, #0
add r0, r1, #0
mov r1, #8
add r6, r2, #0
bl AllocFromHeap
add r4, r0, #0
str r6, [r4, #4]
ldr r0, [r5, #0xc]
ldr r1, _0203FAB0 ; =_020FA304
str r0, [r4]
add r0, r5, #0
add r2, r4, #0
bl ScrUnk80_AddOvyMan
add r0, r4, #0
pop {r4, r5, r6, pc}
.balign 4, 0
_0203FAB0: .word _020FA304
thumb_func_end sub_0203FA8C
thumb_func_start sub_0203FAB4
sub_0203FAB4: ; 0x0203FAB4
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r6, r1, #0
ldr r0, [sp, #0x18]
mov r1, #8
add r7, r2, #0
str r3, [sp]
bl AllocFromHeap
add r4, r0, #0
strb r6, [r4, #4]
strb r7, [r4, #5]
ldr r0, [sp]
ldr r1, _0203FAE4 ; =_0210F9BC
strh r0, [r4, #6]
ldr r0, [r5, #0xc]
add r2, r4, #0
str r0, [r4]
add r0, r5, #0
bl ScrUnk80_AddOvyMan
add r0, r4, #0
pop {r3, r4, r5, r6, r7, pc}
nop
_0203FAE4: .word _0210F9BC
thumb_func_end sub_0203FAB4
thumb_func_start sub_0203FAE8
sub_0203FAE8: ; 0x0203FAE8
push {r4, r5, r6, lr}
add r5, r0, #0
add r0, r1, #0
mov r1, #0x44
add r6, r2, #0
bl AllocFromHeap
mov r1, #0
mov r2, #0x44
add r4, r0, #0
bl memset
ldr r0, [r5, #0xc]
bl SavArray_PlayerParty_get
str r0, [r4]
ldr r0, [r5, #0xc]
bl Sav2_Bag_get
str r0, [r4, #4]
ldr r0, [r5, #0xc]
bl Sav2_Mailbox_get
str r0, [r4, #8]
ldr r0, [r5, #0xc]
bl Sav2_PlayerData_GetOptionsAddr
str r0, [r4, #0xc]
ldr r0, [r5, #0xc]
bl sub_020270C4
str r0, [r4, #0x10]
mov r0, #0
add r1, r4, #0
str r0, [r4, #0x18]
add r1, #0x25
strb r0, [r1]
add r1, r4, #0
mov r2, #5
add r1, #0x24
strb r2, [r1]
add r1, r4, #0
strh r6, [r4, #0x28]
add r1, #0x26
strb r0, [r1]
mov r0, #0x43
lsl r0, r0, #2
str r5, [r4, #0x1c]
add r0, r5, r0
str r0, [r4, #0x20]
ldr r1, _0203FB5C ; =_0210159C
add r0, r5, #0
add r2, r4, #0
bl ScrUnk80_AddOvyMan
add r0, r4, #0
pop {r4, r5, r6, pc}
nop
_0203FB5C: .word _0210159C
thumb_func_end sub_0203FAE8
thumb_func_start sub_0203FB60
sub_0203FB60: ; 0x0203FB60
push {r3, r4, r5, lr}
add r5, r0, #0
add r0, r1, #0
mov r1, #0x18
bl AllocFromHeap
add r4, r0, #0
add r2, r4, #0
mov r1, #0x18
mov r0, #0
_0203FB74:
strb r0, [r2]
add r2, r2, #1
sub r1, r1, #1
bne _0203FB74
ldr r0, [r5, #0xc]
ldr r1, _0203FB90 ; =_0210F97C
str r0, [r4]
add r0, r5, #0
add r2, r4, #0
bl ScrUnk80_AddOvyMan
add r0, r4, #0
pop {r3, r4, r5, pc}
nop
_0203FB90: .word _0210F97C
thumb_func_end sub_0203FB60
thumb_func_start sub_0203FB94
sub_0203FB94: ; 0x0203FB94
push {r4, r5, r6, lr}
add r5, r1, #0
mov r0, #0xb
mov r1, #0x3c
add r6, r2, #0
bl AllocFromHeap
add r4, r0, #0
ldr r0, [r5, #0xc]
bl SavArray_PlayerParty_get
str r0, [r4]
ldr r0, [r5, #0xc]
bl Sav2_PlayerData_GetOptionsAddr
str r0, [r4, #4]
mov r0, #1
strb r0, [r4, #0x11]
strb r6, [r4, #0x14]
ldr r0, [r4]
bl GetPartyCount
strb r0, [r4, #0x13]
mov r0, #0
strh r0, [r4, #0x18]
strb r0, [r4, #0x12]
ldr r0, [r5, #0xc]
bl sub_0202D95C
str r0, [r4, #0x20]
ldr r0, [r5, #0xc]
bl SavArray_IsNatDexEnabled
str r0, [r4, #0x1c]
mov r0, #0
str r0, [r4, #0x2c]
str r0, [r4, #0x28]
ldr r0, [r5, #0xc]
bl sub_0208828C
str r0, [r4, #0x34]
ldr r1, _0203FC0C ; =_020FA0B0
add r0, r4, #0
bl sub_02089D40
ldr r0, [r5, #0xc]
bl Sav2_PlayerData_GetProfileAddr
add r1, r0, #0
add r0, r4, #0
bl sub_0208AD34
ldr r1, _0203FC10 ; =_02103A1C
add r0, r5, #0
add r2, r4, #0
bl ScrUnk80_AddOvyMan
add r0, r4, #0
pop {r4, r5, r6, pc}
nop
_0203FC0C: .word _020FA0B0
_0203FC10: .word _02103A1C
thumb_func_end sub_0203FB94
thumb_func_start sub_0203FC14
sub_0203FC14: ; 0x0203FC14
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x10
ldr r3, _0203FC54 ; =_020FA1C4
add r7, r2, #0
add r2, sp, #0
add r5, r0, #0
add r6, r1, #0
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
mov r0, #0xb
mov r1, #0x10
bl AllocFromHeapAtEnd
add r4, r0, #0
mov r1, #0
mov r2, #0x10
bl MI_CpuFill8
str r5, [r4]
ldr r0, [r5, #0xc]
add r1, sp, #0
str r0, [r4, #4]
str r6, [r4, #8]
add r0, r5, #0
add r2, r4, #0
strb r7, [r4, #0xc]
bl ScrUnk80_AddOvyMan
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_0203FC54: .word _020FA1C4
thumb_func_end sub_0203FC14
thumb_func_start sub_0203FC58
sub_0203FC58: ; 0x0203FC58
ldr r3, _0203FC60 ; =ScrUnk80_AddOvyMan
add r2, r1, #0
ldr r1, _0203FC64 ; =_020FA244
bx r3
.balign 4, 0
_0203FC60: .word ScrUnk80_AddOvyMan
_0203FC64: .word _020FA244
thumb_func_end sub_0203FC58
thumb_func_start sub_0203FC68
sub_0203FC68: ; 0x0203FC68
push {r4, r5, r6, lr}
sub sp, #0x10
ldr r5, _0203FC8C ; =_020FA454
add r4, sp, #0
add r6, r0, #0
add r2, r1, #0
add r3, r4, #0
ldmia r5!, {r0, r1}
stmia r4!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r4!, {r0, r1}
add r0, r6, #0
add r1, r3, #0
bl ScrUnk80_AddOvyMan
add sp, #0x10
pop {r4, r5, r6, pc}
nop
_0203FC8C: .word _020FA454
thumb_func_end sub_0203FC68
thumb_func_start sub_0203FC90
sub_0203FC90: ; 0x0203FC90
push {r4, r5, r6, lr}
sub sp, #0x10
ldr r5, _0203FCB4 ; =_020FA1D4
add r4, sp, #0
add r6, r0, #0
add r2, r1, #0
add r3, r4, #0
ldmia r5!, {r0, r1}
stmia r4!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r4!, {r0, r1}
add r0, r6, #0
add r1, r3, #0
bl ScrUnk80_AddOvyMan
add sp, #0x10
pop {r4, r5, r6, pc}
nop
_0203FCB4: .word _020FA1D4
thumb_func_end sub_0203FC90
thumb_func_start sub_0203FCB8
sub_0203FCB8: ; 0x0203FCB8
push {r3, r4, r5, r6, r7, lr}
add r6, r0, #0
add r5, r1, #0
ldr r0, [sp, #0x18]
mov r1, #0x50
add r7, r2, #0
str r3, [sp]
bl AllocFromHeap
mov r1, #0
mov r2, #0x50
add r4, r0, #0
bl memset
add r0, r6, #0
bl ScriptEnvironment_GetSav2Ptr
str r0, [r4]
add r3, r4, #4
mov r2, #9
_0203FCE0:
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
sub r2, r2, #1
bne _0203FCE0
add r0, r4, #0
add r0, #0x4c
strh r7, [r0]
add r1, r4, #0
ldr r0, [sp]
add r1, #0x4e
strh r0, [r1]
ldr r1, _0203FD04 ; =_020FA474
add r0, r6, #0
add r2, r4, #0
bl ScrUnk80_AddOvyMan
add r0, r4, #0
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_0203FD04: .word _020FA474
thumb_func_end sub_0203FCB8
thumb_func_start sub_0203FD08
sub_0203FD08: ; 0x0203FD08
ldr r3, _0203FD10 ; =ScrUnk80_AddOvyMan
add r2, r1, #0
ldr r1, _0203FD14 ; =_020FA494
bx r3
.balign 4, 0
_0203FD10: .word ScrUnk80_AddOvyMan
_0203FD14: .word _020FA494
thumb_func_end sub_0203FD08