mirror of
https://github.com/pret/pokediamond.git
synced 2026-03-21 17:54:29 -05:00
2030 lines
39 KiB
ArmAsm
2030 lines
39 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "global.inc"
|
|
|
|
.section .rodata
|
|
|
|
.global UNK_020F588C
|
|
UNK_020F588C: ; 0x020F588C
|
|
.byte 0x27, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00
|
|
|
|
.global UNK_020F5894
|
|
UNK_020F5894: ; 0x020F5894
|
|
.byte 0x28, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00
|
|
|
|
.global UNK_020F589C
|
|
UNK_020F589C: ; 0x020F589C
|
|
.byte 0x26, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00
|
|
|
|
.global UNK_020F58A4
|
|
UNK_020F58A4: ; 0x020F58A4
|
|
.byte 0x47, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00
|
|
|
|
.global UNK_020F58AC
|
|
UNK_020F58AC: ; 0x020F58AC
|
|
.byte 0x25, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00
|
|
|
|
.global UNK_020F58B4
|
|
UNK_020F58B4: ; 0x020F58B4
|
|
.byte 0x44, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00
|
|
|
|
.global UNK_020F58C4
|
|
UNK_020F58C4: ; 0x020F58C4
|
|
.byte 0x2C, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x2D, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00
|
|
|
|
.global UNK_020F58D4
|
|
UNK_020F58D4: ; 0x020F58D4
|
|
.byte 0x0A, 0x00, 0x0E, 0x00, 0x12, 0x00, 0x16, 0x00, 0x1A, 0x00, 0x1E, 0x00, 0x22, 0x00, 0x26, 0x00
|
|
.byte 0x2A, 0x00, 0x2E, 0x00
|
|
|
|
.global UNK_020F58E8
|
|
UNK_020F58E8: ; 0x020F58E8
|
|
.byte 0x3C, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00
|
|
.byte 0x56, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00
|
|
|
|
.global UNK_020F5900
|
|
UNK_020F5900: ; 0x020F5900
|
|
.byte 0x31, 0x00, 0x00, 0x00, 0x6C, 0x00, 0x00, 0x00, 0x4B, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00
|
|
.byte 0x57, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00
|
|
|
|
.global UNK_020F5918
|
|
UNK_020F5918: ; 0x020F5918
|
|
.byte 0x33, 0x00, 0x00, 0x00, 0x6E, 0x00, 0x00, 0x00, 0x4D, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00
|
|
.byte 0x59, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00
|
|
|
|
.global UNK_020F5930
|
|
UNK_020F5930: ; 0x020F5930
|
|
.byte 0x32, 0x00, 0x00, 0x00, 0x6D, 0x00, 0x00, 0x00, 0x4C, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00
|
|
.byte 0x58, 0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00
|
|
|
|
.global UNK_020F5948
|
|
UNK_020F5948: ; 0x020F5948
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
|
|
.byte 0x04, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x05, 0x00, 0x00, 0x00
|
|
|
|
.global UNK_020F5964
|
|
UNK_020F5964: ; 0x020F5964
|
|
.byte 0x35, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00
|
|
.byte 0x37, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00
|
|
|
|
.global UNK_020F5984
|
|
UNK_020F5984: ; 0x020F5984
|
|
.byte 0x3D, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00
|
|
.byte 0x3F, 0x00, 0x00, 0x00, 0x7A, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x7B, 0x00, 0x00, 0x00
|
|
|
|
.global UNK_020F59A4
|
|
UNK_020F59A4: ; 0x020F59A4
|
|
.byte 0x4F, 0x00, 0x00, 0x00, 0x8A, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x8B, 0x00, 0x00, 0x00
|
|
.byte 0x51, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x8D, 0x00, 0x00, 0x00
|
|
|
|
.global UNK_020F59C4
|
|
UNK_020F59C4: ; 0x020F59C4
|
|
.byte 0x5C, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, 0x5D, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00
|
|
.byte 0x5E, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00
|
|
|
|
.global UNK_020F59DC
|
|
UNK_020F59DC: ; 0x020F59DC
|
|
.byte 0x5F, 0x00, 0x00, 0x00, 0x9A, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00
|
|
.byte 0x39, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00
|
|
.byte 0x2E, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00
|
|
.byte 0x53, 0x00, 0x00, 0x00, 0x8E, 0x00, 0x00, 0x00
|
|
|
|
.global UNK_020F5A14
|
|
UNK_020F5A14: ; 0x020F5A14
|
|
.byte 0x2C, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00
|
|
.byte 0x42, 0x00, 0x00, 0x00, 0x7D, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00, 0x6A, 0x00, 0x00, 0x00
|
|
.byte 0x49, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x8F, 0x00, 0x00, 0x00
|
|
|
|
.global UNK_020F5A44
|
|
UNK_020F5A44: ; 0x020F5A44
|
|
.byte 0x2B, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x6B, 0x00, 0x00, 0x00
|
|
.byte 0x3B, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00
|
|
.byte 0x55, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x4A, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00
|
|
|
|
.global UNK_020F5A74
|
|
UNK_020F5A74: ; 0x020F5A74
|
|
.byte 0xA7, 0x00, 0x00, 0x00, 0xA8, 0x00, 0x00, 0x00, 0xA9, 0x00, 0x00, 0x00, 0xAA, 0x00, 0x00, 0x00
|
|
.byte 0xAB, 0x00, 0x00, 0x00, 0xAC, 0x00, 0x00, 0x00, 0xAD, 0x00, 0x00, 0x00, 0xAE, 0x00, 0x00, 0x00
|
|
.byte 0xAF, 0x00, 0x00, 0x00, 0xB0, 0x00, 0x00, 0x00, 0xB1, 0x00, 0x00, 0x00, 0xB2, 0x00, 0x00, 0x00
|
|
.byte 0xB3, 0x00, 0x00, 0x00, 0xB4, 0x00, 0x00, 0x00, 0xB5, 0x00, 0x00, 0x00, 0xB6, 0x00, 0x00, 0x00
|
|
.byte 0xB7, 0x00, 0x00, 0x00, 0xB8, 0x00, 0x00, 0x00, 0xB9, 0x00, 0x00, 0x00, 0xBA, 0x00, 0x00, 0x00
|
|
|
|
.section .bss
|
|
|
|
.global UNK_021C5A70
|
|
UNK_021C5A70: ; 0x021C5A70
|
|
.space 0xc
|
|
|
|
.global UNK_021C5A7C
|
|
UNK_021C5A7C: ; 0x021C5A7C
|
|
.space 0x40
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_020520AC
|
|
sub_020520AC: ; 0x020520AC
|
|
push {r3-r5, lr}
|
|
add r4, r0, #0x0
|
|
bne _020520B6
|
|
bl GF_AssertFail
|
|
_020520B6:
|
|
ldr r0, [r4, #0x78]
|
|
cmp r0, #0x0
|
|
beq _020520C0
|
|
mov r0, #0x0
|
|
pop {r3-r5, pc}
|
|
_020520C0:
|
|
mov r2, #0x2a
|
|
mov r0, #0x3
|
|
mov r1, #0x1f
|
|
lsl r2, r2, #0x6
|
|
bl Heap_CreateAtEnd
|
|
add r0, r4, #0x0
|
|
bl sub_02052110
|
|
add r5, r0, #0x0
|
|
bne _020520D8
|
|
ldr r5, [r4, #0x78]
|
|
_020520D8:
|
|
add r0, r4, #0x0
|
|
bl sub_0208881C
|
|
mov r0, #0x2
|
|
bl sub_02032B6C
|
|
ldr r1, _020520F4 ; =sub_02052178
|
|
add r0, r5, #0x0
|
|
mov r2, #0x28
|
|
bl sub_02052300
|
|
add r0, r5, #0x0
|
|
pop {r3-r5, pc}
|
|
nop
|
|
_020520F4: .word sub_02052178
|
|
|
|
thumb_func_start sub_020520F8
|
|
sub_020520F8: ; 0x020520F8
|
|
push {r3, lr}
|
|
ldr r0, [r0, #0x78]
|
|
cmp r0, #0x0
|
|
beq _02052108
|
|
ldr r1, _0205210C ; =sub_02052348
|
|
mov r2, #0x5
|
|
bl sub_02052300
|
|
_02052108:
|
|
pop {r3, pc}
|
|
nop
|
|
_0205210C: .word sub_02052348
|
|
|
|
thumb_func_start sub_02052110
|
|
sub_02052110: ; 0x02052110
|
|
push {r4-r6, lr}
|
|
add r5, r0, #0x0
|
|
ldr r1, [r5, #0x78]
|
|
cmp r1, #0x0
|
|
beq _0205211E
|
|
mov r0, #0x0
|
|
pop {r4-r6, pc}
|
|
_0205211E:
|
|
bl FieldSystem_GetSaveData
|
|
add r6, r0, #0x0
|
|
bl sub_02031A7C
|
|
mov r1, #0x19
|
|
mov r0, #0x1f
|
|
lsl r1, r1, #0x4
|
|
bl Heap_Alloc
|
|
mov r2, #0x19
|
|
mov r1, #0x0
|
|
lsl r2, r2, #0x4
|
|
add r4, r0, #0x0
|
|
bl MI_CpuFill8
|
|
mov r0, #0x0
|
|
str r0, [r4, #0x10]
|
|
mov r0, #0x28
|
|
str r0, [r4, #0x14]
|
|
ldr r0, _02052174 ; =sub_02052308
|
|
add r1, r4, #0x0
|
|
mov r2, #0xa
|
|
bl SysTask_CreateOnMainQueue
|
|
str r0, [r4, #0xc]
|
|
str r5, [r4, #0x0]
|
|
str r6, [r4, #0x4]
|
|
add r0, r6, #0x0
|
|
bl Save_PlayerData_GetProfile
|
|
str r0, [r4, #0x8]
|
|
add r0, r4, #0x0
|
|
bl sub_02052E1C
|
|
mov r0, #0x15
|
|
lsl r0, r0, #0x4
|
|
add r0, r4, r0
|
|
bl sub_020312BC
|
|
add r0, r4, #0x0
|
|
pop {r4-r6, pc}
|
|
nop
|
|
_02052174: .word sub_02052308
|
|
|
|
thumb_func_start sub_02052178
|
|
sub_02052178: ; 0x02052178
|
|
push {r4, lr}
|
|
sub sp, #0x8
|
|
add r4, r0, #0x0
|
|
bl sub_0202EDF8
|
|
cmp r0, #0x0
|
|
beq _020521A4
|
|
add r0, sp, #0x0
|
|
bl MailMsg_Init_Default
|
|
add r0, sp, #0x0
|
|
bl sub_02052DE8
|
|
add r0, r4, #0x0
|
|
add r1, sp, #0x0
|
|
bl sub_02052CD8
|
|
ldr r1, _020521A8 ; =sub_020521AC
|
|
add r0, r4, #0x0
|
|
mov r2, #0x28
|
|
bl sub_02052300
|
|
_020521A4:
|
|
add sp, #0x8
|
|
pop {r4, pc}
|
|
.balign 4
|
|
_020521A8: .word sub_020521AC
|
|
|
|
thumb_func_start sub_020521AC
|
|
sub_020521AC: ; 0x020521AC
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
bl sub_02031B2C
|
|
cmp r0, #0x0
|
|
beq _020521C8
|
|
ldr r0, _02052208 ; =UNK_021C5A70
|
|
mov r2, #0x0
|
|
str r2, [r0, #0x0]
|
|
ldr r1, _0205220C ; =sub_0205225C
|
|
add r0, r4, #0x0
|
|
bl sub_02052300
|
|
pop {r4, pc}
|
|
_020521C8:
|
|
ldr r0, [r4, #0x20]
|
|
cmp r0, #0x0
|
|
beq _02052206
|
|
mov r0, #0x2
|
|
str r0, [r4, #0x28]
|
|
ldr r0, [r4, #0x20]
|
|
cmp r0, #0x1
|
|
bne _020521EC
|
|
ldr r0, [r4, #0x30]
|
|
cmp r0, #0x5
|
|
ldr r0, [r4, #0x18]
|
|
bne _020521E6
|
|
bl sub_020328F4
|
|
b _020521FC
|
|
_020521E6:
|
|
bl sub_02031AC8
|
|
b _020521FC
|
|
_020521EC:
|
|
cmp r0, #0x2
|
|
bne _020521FC
|
|
mov r0, #0x0
|
|
bl sub_02083D48
|
|
ldr r0, [r4, #0x18]
|
|
bl sub_020328C0
|
|
_020521FC:
|
|
ldr r1, _02052210 ; =sub_02052380
|
|
add r0, r4, #0x0
|
|
mov r2, #0xc
|
|
bl sub_02052300
|
|
_02052206:
|
|
pop {r4, pc}
|
|
.balign 4
|
|
_02052208: .word UNK_021C5A70
|
|
_0205220C: .word sub_0205225C
|
|
_02052210: .word sub_02052380
|
|
|
|
thumb_func_start sub_02052214
|
|
sub_02052214: ; 0x02052214
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
bl sub_02031BD0
|
|
cmp r0, #0x1
|
|
bne _02052230
|
|
ldr r0, [r4, #0x0]
|
|
bl sub_0208881C
|
|
ldr r1, _02052234 ; =sub_020521AC
|
|
add r0, r4, #0x0
|
|
mov r2, #0x2
|
|
bl sub_02052300
|
|
_02052230:
|
|
pop {r4, pc}
|
|
nop
|
|
_02052234: .word sub_020521AC
|
|
|
|
thumb_func_start sub_02052238
|
|
sub_02052238: ; 0x02052238
|
|
push {r3-r5, lr}
|
|
mov r5, #0x0
|
|
mov r4, #0x1
|
|
_0205223E:
|
|
add r0, r4, #0x0
|
|
bl sub_0202DFA4
|
|
cmp r0, #0x0
|
|
beq _0205224A
|
|
add r5, r5, #0x1
|
|
_0205224A:
|
|
add r4, r4, #0x1
|
|
cmp r4, #0x5
|
|
blt _0205223E
|
|
cmp r5, #0x1
|
|
blt _02052258
|
|
mov r0, #0x1
|
|
pop {r3-r5, pc}
|
|
_02052258:
|
|
mov r0, #0x0
|
|
pop {r3-r5, pc}
|
|
|
|
thumb_func_start sub_0205225C
|
|
sub_0205225C: ; 0x0205225C
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
ldr r0, [r4, #0x14]
|
|
cmp r0, #0x0
|
|
ble _0205226C
|
|
sub r0, r0, #0x1
|
|
str r0, [r4, #0x14]
|
|
pop {r4, pc}
|
|
_0205226C:
|
|
ldr r0, _020522C4 ; =UNK_021C5A70
|
|
ldr r1, [r0, #0x0]
|
|
add r1, r1, #0x1
|
|
str r1, [r0, #0x0]
|
|
bl sub_020311E8
|
|
cmp r0, #0x0
|
|
beq _020522A0
|
|
bl sub_02052238
|
|
cmp r0, #0x1
|
|
bne _020522A0
|
|
bl sub_0202DBE0
|
|
mov r0, #0x1
|
|
add r1, r0, #0x0
|
|
bl sub_020334E8
|
|
mov r0, #0xb
|
|
bl sub_02052B74
|
|
ldr r1, _020522C8 ; =sub_020522D0
|
|
add r0, r4, #0x0
|
|
mov r2, #0x0
|
|
bl sub_02052300
|
|
_020522A0:
|
|
bl sub_02031B2C
|
|
cmp r0, #0x0
|
|
bne _020522C2
|
|
bl sub_02031B50
|
|
add r0, r4, #0x0
|
|
bl sub_02052E1C
|
|
mov r0, #0x0
|
|
bl sub_02052B74
|
|
ldr r1, _020522CC ; =sub_02052214
|
|
add r0, r4, #0x0
|
|
mov r2, #0x2
|
|
bl sub_02052300
|
|
_020522C2:
|
|
pop {r4, pc}
|
|
.balign 4
|
|
_020522C4: .word UNK_021C5A70
|
|
_020522C8: .word sub_020522D0
|
|
_020522CC: .word sub_02052214
|
|
|
|
thumb_func_start sub_020522D0
|
|
sub_020522D0: ; 0x020522D0
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
bl sub_020311E8
|
|
bl sub_020311E8
|
|
cmp r0, #0x0
|
|
bne _020522FA
|
|
bl sub_02031B50
|
|
add r0, r4, #0x0
|
|
bl sub_02052E1C
|
|
mov r0, #0x0
|
|
bl sub_02052B74
|
|
ldr r1, _020522FC ; =sub_02052214
|
|
add r0, r4, #0x0
|
|
mov r2, #0x2
|
|
bl sub_02052300
|
|
_020522FA:
|
|
pop {r4, pc}
|
|
.balign 4
|
|
_020522FC: .word sub_02052214
|
|
|
|
thumb_func_start sub_02052300
|
|
sub_02052300: ; 0x02052300
|
|
str r1, [r0, #0x10]
|
|
str r2, [r0, #0x14]
|
|
bx lr
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02052308
|
|
sub_02052308: ; 0x02052308
|
|
push {r3-r7, lr}
|
|
str r1, [sp, #0x0]
|
|
cmp r1, #0x0
|
|
bne _02052316
|
|
bl SysTask_Destroy
|
|
pop {r3-r7, pc}
|
|
_02052316:
|
|
mov r7, #0x11
|
|
ldr r5, _02052344 ; =UNK_021C5A7C
|
|
mov r6, #0x0
|
|
add r4, r1, #0x0
|
|
lsl r7, r7, #0x4
|
|
_02052320:
|
|
add r0, r6, #0x0
|
|
bl sub_0202EF18
|
|
mov r1, #0x11
|
|
lsl r1, r1, #0x4
|
|
str r0, [r4, r1]
|
|
ldr r0, [r4, r7]
|
|
add r6, r6, #0x1
|
|
add r4, r4, #0x4
|
|
stmia r5!, {r0}
|
|
cmp r6, #0x10
|
|
blt _02052320
|
|
ldr r0, [sp, #0x0]
|
|
ldr r1, [r0, #0x10]
|
|
cmp r1, #0x0
|
|
beq _02052342
|
|
blx r1
|
|
_02052342:
|
|
pop {r3-r7, pc}
|
|
.balign 4
|
|
_02052344: .word UNK_021C5A7C
|
|
|
|
thumb_func_start sub_02052348
|
|
sub_02052348: ; 0x02052348
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
ldr r0, [r4, #0x14]
|
|
cmp r0, #0x0
|
|
beq _02052358
|
|
sub r0, r0, #0x1
|
|
str r0, [r4, #0x14]
|
|
pop {r4, pc}
|
|
_02052358:
|
|
bl sub_02031BF4
|
|
ldr r1, _02052368 ; =sub_0205236C
|
|
add r0, r4, #0x0
|
|
mov r2, #0x0
|
|
bl sub_02052300
|
|
pop {r4, pc}
|
|
.balign 4
|
|
_02052368: .word sub_0205236C
|
|
|
|
thumb_func_start sub_0205236C
|
|
sub_0205236C: ; 0x0205236C
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
bl sub_02030F40
|
|
cmp r0, #0x0
|
|
bne _0205237E
|
|
add r0, r4, #0x0
|
|
bl sub_020524A0
|
|
_0205237E:
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_02052380
|
|
sub_02052380: ; 0x02052380
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
bl sub_02031AF4
|
|
cmp r0, #0x1
|
|
bne _0205239C
|
|
bl sub_0202DBE0
|
|
ldr r1, _020523D4 ; =sub_02052410
|
|
add r0, r4, #0x0
|
|
mov r2, #0x3
|
|
bl sub_02052300
|
|
pop {r4, pc}
|
|
_0205239C:
|
|
bl sub_020311E8
|
|
cmp r0, #0x0
|
|
beq _020523B4
|
|
mov r2, #0x0
|
|
str r2, [r4, #0x20]
|
|
mov r0, #0x3
|
|
str r0, [r4, #0x1c]
|
|
ldr r1, _020523D8 ; =sub_0205225C
|
|
add r0, r4, #0x0
|
|
bl sub_02052300
|
|
_020523B4:
|
|
bl sub_02031AF4
|
|
cmp r0, #0x0
|
|
beq _020523D2
|
|
ldr r1, _020523DC ; =sub_020523E0
|
|
add r0, r4, #0x0
|
|
mov r2, #0x2
|
|
bl sub_02052300
|
|
mov r1, #0x0
|
|
str r1, [r4, #0x24]
|
|
mov r0, #0x2
|
|
str r0, [r4, #0x1c]
|
|
str r1, [r4, #0x20]
|
|
str r1, [r4, #0x44]
|
|
_020523D2:
|
|
pop {r4, pc}
|
|
.balign 4
|
|
_020523D4: .word sub_02052410
|
|
_020523D8: .word sub_0205225C
|
|
_020523DC: .word sub_020523E0
|
|
|
|
thumb_func_start sub_020523E0
|
|
sub_020523E0: ; 0x020523E0
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
ldr r0, [r4, #0x0]
|
|
bl sub_0204646C
|
|
cmp r0, #0x0
|
|
bne _02052408
|
|
bl sub_02031B50
|
|
add r0, r4, #0x0
|
|
bl sub_02052E1C
|
|
mov r0, #0x0
|
|
bl sub_02052B74
|
|
ldr r1, _0205240C ; =sub_02052214
|
|
add r0, r4, #0x0
|
|
mov r2, #0x2
|
|
bl sub_02052300
|
|
_02052408:
|
|
pop {r4, pc}
|
|
nop
|
|
_0205240C: .word sub_02052214
|
|
|
|
thumb_func_start sub_02052410
|
|
sub_02052410: ; 0x02052410
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
bl sub_02031AF4
|
|
cmp r0, #0x1
|
|
bne _02052444
|
|
bl sub_02031190
|
|
bl sub_0202DFA4
|
|
cmp r0, #0x0
|
|
beq _0205246C
|
|
mov r1, #0x0
|
|
str r1, [r4, #0x20]
|
|
mov r0, #0x1
|
|
str r0, [r4, #0x1c]
|
|
str r1, [r4, #0x44]
|
|
add r1, r0, #0x0
|
|
bl sub_020334E8
|
|
ldr r1, _02052470 ; =sub_02052478
|
|
add r0, r4, #0x0
|
|
mov r2, #0x3
|
|
bl sub_02052300
|
|
pop {r4, pc}
|
|
_02052444:
|
|
bl sub_02031AF4
|
|
cmp r0, #0x0
|
|
bne _0205246C
|
|
bl sub_02031B50
|
|
add r0, r4, #0x0
|
|
bl sub_02052E1C
|
|
ldr r1, _02052474 ; =sub_02052214
|
|
add r0, r4, #0x0
|
|
mov r2, #0x2
|
|
bl sub_02052300
|
|
mov r1, #0x0
|
|
str r1, [r4, #0x24]
|
|
mov r0, #0x2
|
|
str r0, [r4, #0x1c]
|
|
str r1, [r4, #0x20]
|
|
str r1, [r4, #0x44]
|
|
_0205246C:
|
|
pop {r4, pc}
|
|
nop
|
|
_02052470: .word sub_02052478
|
|
_02052474: .word sub_02052214
|
|
|
|
thumb_func_start sub_02052478
|
|
sub_02052478: ; 0x02052478
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
bl sub_02031AF4
|
|
cmp r0, #0x0
|
|
bne _02052498
|
|
bl sub_02031B50
|
|
add r0, r4, #0x0
|
|
bl sub_02052E1C
|
|
ldr r1, _0205249C ; =sub_02052214
|
|
add r0, r4, #0x0
|
|
mov r2, #0x2
|
|
bl sub_02052300
|
|
_02052498:
|
|
pop {r4, pc}
|
|
nop
|
|
_0205249C: .word sub_02052214
|
|
|
|
thumb_func_start sub_020524A0
|
|
sub_020524A0: ; 0x020524A0
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
beq _020524B8
|
|
ldr r0, [r4, #0xc]
|
|
bl SysTask_Destroy
|
|
add r0, r4, #0x0
|
|
bl Heap_Free
|
|
mov r0, #0x1f
|
|
bl Heap_Destroy
|
|
_020524B8:
|
|
pop {r4, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_020524BC
|
|
sub_020524BC: ; 0x020524BC
|
|
ldr r0, [r0, #0x0]
|
|
bx lr
|
|
|
|
thumb_func_start sub_020524C0
|
|
sub_020524C0: ; 0x020524C0
|
|
lsl r1, r1, #0x2
|
|
add r1, r0, r1
|
|
mov r0, #0x11
|
|
lsl r0, r0, #0x4
|
|
ldr r0, [r1, r0]
|
|
bx lr
|
|
|
|
thumb_func_start sub_020524CC
|
|
sub_020524CC: ; 0x020524CC
|
|
push {r4-r6, lr}
|
|
add r5, r1, #0x0
|
|
add r4, r0, #0x0
|
|
sub r0, r5, #0x1
|
|
bl sub_0202EF84
|
|
add r6, r0, #0x0
|
|
add r0, r4, #0x0
|
|
bl sub_02052E10
|
|
cmp r6, #0x0
|
|
bne _020524E8
|
|
mov r0, #0x5
|
|
pop {r4-r6, pc}
|
|
_020524E8:
|
|
sub r0, r5, #0x1
|
|
lsl r0, r0, #0x2
|
|
add r1, r4, r0
|
|
mov r0, #0x11
|
|
lsl r0, r0, #0x4
|
|
ldr r1, [r1, r0]
|
|
ldr r0, _02052540 ; =UNK_021C5A70
|
|
add r1, #0x50
|
|
add r1, #0x30
|
|
str r1, [r0, #0x4]
|
|
ldrb r0, [r1, #0x1c]
|
|
cmp r0, #0xb
|
|
bhi _0205253A
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #0x6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_0205250E: ; jump table (using 16-bit offset)
|
|
.short _02052526 - _0205250E - 2; case 0
|
|
.short _0205252A - _0205250E - 2; case 1
|
|
.short _0205252E - _0205250E - 2; case 2
|
|
.short _02052532 - _0205250E - 2; case 3
|
|
.short _02052536 - _0205250E - 2; case 4
|
|
.short _02052536 - _0205250E - 2; case 5
|
|
.short _02052536 - _0205250E - 2; case 6
|
|
.short _02052536 - _0205250E - 2; case 7
|
|
.short _02052536 - _0205250E - 2; case 8
|
|
.short _0205253A - _0205250E - 2; case 9
|
|
.short _0205253A - _0205250E - 2; case 10
|
|
.short _02052536 - _0205250E - 2; case 11
|
|
_02052526:
|
|
mov r0, #0x1
|
|
pop {r4-r6, pc}
|
|
_0205252A:
|
|
mov r0, #0x2
|
|
pop {r4-r6, pc}
|
|
_0205252E:
|
|
mov r0, #0x3
|
|
pop {r4-r6, pc}
|
|
_02052532:
|
|
mov r0, #0x4
|
|
pop {r4-r6, pc}
|
|
_02052536:
|
|
mov r0, #0x5
|
|
pop {r4-r6, pc}
|
|
_0205253A:
|
|
mov r0, #0x5
|
|
pop {r4-r6, pc}
|
|
nop
|
|
_02052540: .word UNK_021C5A70
|
|
|
|
thumb_func_start sub_02052544
|
|
sub_02052544: ; 0x02052544
|
|
push {r4-r6, lr}
|
|
add r6, r1, #0x0
|
|
add r4, r0, #0x0
|
|
sub r0, r6, #0x1
|
|
add r5, r2, #0x0
|
|
bl sub_0202EF84
|
|
sub r0, r6, #0x1
|
|
lsl r1, r0, #0x2
|
|
add r2, r4, r1
|
|
mov r1, #0x11
|
|
lsl r1, r1, #0x4
|
|
ldr r2, [r2, r1]
|
|
ldr r1, _02052600 ; =UNK_021C5A70
|
|
add r2, #0x50
|
|
add r2, #0x30
|
|
str r2, [r1, #0x4]
|
|
ldrb r1, [r2, #0x1c]
|
|
cmp r1, #0xb
|
|
bhi _020525F8
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #0x6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_02052578: ; jump table (using 16-bit offset)
|
|
.short _020525C6 - _02052578 - 2; case 0
|
|
.short _020525DC - _02052578 - 2; case 1
|
|
.short _020525AC - _02052578 - 2; case 2
|
|
.short _02052590 - _02052578 - 2; case 3
|
|
.short _020525F4 - _02052578 - 2; case 4
|
|
.short _020525F4 - _02052578 - 2; case 5
|
|
.short _020525F4 - _02052578 - 2; case 6
|
|
.short _020525F4 - _02052578 - 2; case 7
|
|
.short _020525F4 - _02052578 - 2; case 8
|
|
.short _020525F8 - _02052578 - 2; case 9
|
|
.short _020525F8 - _02052578 - 2; case 10
|
|
.short _020525F4 - _02052578 - 2; case 11
|
|
_02052590:
|
|
cmp r5, #0x4
|
|
beq _02052598
|
|
mov r0, #0x5
|
|
pop {r4-r6, pc}
|
|
_02052598:
|
|
mov r1, #0x6
|
|
str r1, [r4, #0x30]
|
|
str r0, [r4, #0x18]
|
|
mov r0, #0x2
|
|
str r0, [r4, #0x20]
|
|
mov r0, #0x0
|
|
str r0, [r4, #0x24]
|
|
str r0, [r4, #0x1c]
|
|
mov r0, #0x1
|
|
pop {r4-r6, pc}
|
|
_020525AC:
|
|
cmp r5, #0x3
|
|
beq _020525B4
|
|
mov r0, #0x5
|
|
pop {r4-r6, pc}
|
|
_020525B4:
|
|
mov r1, #0x5
|
|
str r1, [r4, #0x30]
|
|
str r0, [r4, #0x18]
|
|
mov r0, #0x1
|
|
str r0, [r4, #0x20]
|
|
mov r1, #0x0
|
|
str r1, [r4, #0x24]
|
|
str r1, [r4, #0x1c]
|
|
pop {r4-r6, pc}
|
|
_020525C6:
|
|
cmp r5, #0x1
|
|
beq _020525CE
|
|
mov r0, #0x5
|
|
pop {r4-r6, pc}
|
|
_020525CE:
|
|
str r0, [r4, #0x18]
|
|
mov r0, #0x1
|
|
str r0, [r4, #0x20]
|
|
mov r1, #0x0
|
|
str r1, [r4, #0x24]
|
|
str r1, [r4, #0x1c]
|
|
pop {r4-r6, pc}
|
|
_020525DC:
|
|
cmp r5, #0x2
|
|
beq _020525E4
|
|
mov r0, #0x5
|
|
pop {r4-r6, pc}
|
|
_020525E4:
|
|
str r0, [r4, #0x18]
|
|
mov r0, #0x2
|
|
str r0, [r4, #0x20]
|
|
mov r0, #0x0
|
|
str r0, [r4, #0x24]
|
|
str r0, [r4, #0x1c]
|
|
mov r0, #0x1
|
|
pop {r4-r6, pc}
|
|
_020525F4:
|
|
mov r0, #0x5
|
|
pop {r4-r6, pc}
|
|
_020525F8:
|
|
bl GF_AssertFail
|
|
mov r0, #0x0
|
|
pop {r4-r6, pc}
|
|
.balign 4
|
|
_02052600: .word UNK_021C5A70
|
|
|
|
thumb_func_start sub_02052604
|
|
sub_02052604: ; 0x02052604
|
|
ldr r0, [r0, #0x1c]
|
|
bx lr
|
|
|
|
thumb_func_start sub_02052608
|
|
sub_02052608: ; 0x02052608
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
ldr r0, [r4, #0x44]
|
|
cmp r0, #0x0
|
|
beq _02052616
|
|
mov r0, #0x7
|
|
pop {r4, pc}
|
|
_02052616:
|
|
bl sub_02030F20
|
|
cmp r0, #0x2
|
|
bge _02052622
|
|
mov r0, #0x7
|
|
pop {r4, pc}
|
|
_02052622:
|
|
bl sub_02031190
|
|
cmp r0, #0x0
|
|
bne _02052636
|
|
bl sub_02031B2C
|
|
cmp r0, #0x1
|
|
bne _02052642
|
|
ldr r0, [r4, #0x40]
|
|
pop {r4, pc}
|
|
_02052636:
|
|
bl sub_02031AF4
|
|
cmp r0, #0x1
|
|
bne _02052642
|
|
ldr r0, [r4, #0x40]
|
|
pop {r4, pc}
|
|
_02052642:
|
|
mov r0, #0x7
|
|
pop {r4, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02052648
|
|
sub_02052648: ; 0x02052648
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
bl sub_02031B2C
|
|
cmp r0, #0x1
|
|
bne _02052658
|
|
ldr r0, [r4, #0x30]
|
|
pop {r4, pc}
|
|
_02052658:
|
|
mov r0, #0x7
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_0205265C
|
|
sub_0205265C: ; 0x0205265C
|
|
push {r3-r5, lr}
|
|
add r5, r0, #0x0
|
|
add r4, r2, #0x0
|
|
add r0, sp, #0x0
|
|
strb r4, [r0, #0x2]
|
|
cmp r1, #0x0
|
|
beq _02052670
|
|
cmp r1, #0x1
|
|
beq _02052688
|
|
pop {r3-r5, pc}
|
|
_02052670:
|
|
ldr r1, [r5, #0x44]
|
|
cmp r1, #0x0
|
|
bne _020526B0
|
|
ldrb r0, [r0, #0x2]
|
|
add r1, sp, #0x0
|
|
add r1, #0x2
|
|
str r0, [r5, #0x34]
|
|
mov r0, #0x63
|
|
mov r2, #0x1
|
|
bl sub_02030ADC
|
|
pop {r3-r5, pc}
|
|
_02052688:
|
|
cmp r4, #0x0
|
|
bne _020526A0
|
|
ldr r1, [r5, #0x30]
|
|
mov r2, #0x1
|
|
strb r1, [r0, #0x1]
|
|
add r1, sp, #0x0
|
|
mov r0, #0x67
|
|
add r1, #0x1
|
|
bl sub_02030BC4
|
|
str r4, [r5, #0x3c]
|
|
pop {r3-r5, pc}
|
|
_020526A0:
|
|
mov r1, #0x7
|
|
strb r1, [r0, #0x0]
|
|
mov r0, #0x67
|
|
add r1, sp, #0x0
|
|
mov r2, #0x1
|
|
bl sub_02030BC4
|
|
str r4, [r5, #0x3c]
|
|
_020526B0:
|
|
pop {r3-r5, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_020526B4
|
|
sub_020526B4: ; 0x020526B4
|
|
bx lr
|
|
.balign 4
|
|
|
|
thumb_func_start sub_020526B8
|
|
sub_020526B8: ; 0x020526B8
|
|
bx lr
|
|
.balign 4
|
|
|
|
thumb_func_start sub_020526BC
|
|
sub_020526BC: ; 0x020526BC
|
|
push {r4, lr}
|
|
add r4, r3, #0x0
|
|
ldr r0, [r4, #0x78]
|
|
ldr r1, _020526D4 ; =sub_020521AC
|
|
mov r2, #0x2
|
|
bl sub_02052300
|
|
ldr r0, [r4, #0x78]
|
|
bl sub_02052E1C
|
|
pop {r4, pc}
|
|
nop
|
|
_020526D4: .word sub_020521AC
|
|
|
|
thumb_func_start sub_020526D8
|
|
sub_020526D8: ; 0x020526D8
|
|
ldr r1, [r3, #0x78]
|
|
ldr r0, [r1, #0x44]
|
|
cmp r0, #0x0
|
|
bne _020526EA
|
|
ldrb r0, [r2, #0x0]
|
|
str r0, [r1, #0x30]
|
|
ldrb r1, [r2, #0x0]
|
|
ldr r0, _020526EC ; =UNK_021C5A70
|
|
str r1, [r0, #0x8]
|
|
_020526EA:
|
|
bx lr
|
|
.balign 4
|
|
_020526EC: .word UNK_021C5A70
|
|
|
|
thumb_func_start sub_020526F0
|
|
sub_020526F0: ; 0x020526F0
|
|
push {r3, lr}
|
|
ldr r0, [r3, #0x78]
|
|
mov r1, #0x1
|
|
str r1, [r0, #0x2c]
|
|
ldrb r1, [r2, #0x0]
|
|
ldr r0, [r3, #0x78]
|
|
str r1, [r0, #0x40]
|
|
ldrb r0, [r2, #0x0]
|
|
cmp r0, #0x4
|
|
bne _02052708
|
|
bl sub_02032888
|
|
_02052708:
|
|
pop {r3, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0205270C
|
|
sub_0205270C: ; 0x0205270C
|
|
ldr r0, [r3, #0x78]
|
|
mov r1, #0x1
|
|
str r1, [r0, #0x44]
|
|
bx lr
|
|
|
|
thumb_func_start sub_02052714
|
|
sub_02052714: ; 0x02052714
|
|
ldr r0, [r0, #0x44]
|
|
bx lr
|
|
|
|
thumb_func_start sub_02052718
|
|
sub_02052718: ; 0x02052718
|
|
push {r4, lr}
|
|
ldr r0, [r0, #0x30]
|
|
add r4, r1, #0x0
|
|
cmp r0, #0x0
|
|
bne _02052730
|
|
mov r1, #0x0
|
|
mov r0, #0x68
|
|
add r2, r1, #0x0
|
|
bl sub_02030ADC
|
|
add r0, r4, #0x0
|
|
pop {r4, pc}
|
|
_02052730:
|
|
mov r0, #0x0
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_02052734
|
|
sub_02052734: ; 0x02052734
|
|
push {r3-r7, lr}
|
|
add r5, r0, #0x0
|
|
add r6, r2, #0x0
|
|
add r4, r3, #0x0
|
|
bl sub_02031190
|
|
mov r1, #0x1
|
|
eor r0, r1
|
|
bl sub_0202DFA4
|
|
add r7, r0, #0x0
|
|
ldr r0, _02052784 ; =0x0000066A
|
|
mov r1, #0x1
|
|
strh r1, [r6, r0]
|
|
bl sub_02031190
|
|
cmp r5, r0
|
|
beq _02052780
|
|
add r0, r7, #0x0
|
|
bl PlayerProfile_GetNamePtr
|
|
add r5, r0, #0x0
|
|
add r0, r7, #0x0
|
|
bl PlayerProfile_GetTrainerGender
|
|
add r1, r0, #0x0
|
|
lsl r1, r1, #0x18
|
|
add r0, r5, #0x0
|
|
lsr r1, r1, #0x18
|
|
mov r2, #0x1f
|
|
bl sub_0202942C
|
|
add r4, #0x98
|
|
add r1, r0, #0x0
|
|
ldr r0, [r4, #0x0]
|
|
mov r2, #0x4
|
|
bl sub_02028AD4
|
|
_02052780:
|
|
pop {r3-r7, pc}
|
|
nop
|
|
_02052784: .word 0x0000066A
|
|
|
|
thumb_func_start sub_02052788
|
|
sub_02052788: ; 0x02052788
|
|
ldr r1, [r1, #0x78]
|
|
lsl r0, r0, #0x2
|
|
add r1, r1, r0
|
|
mov r0, #0x62
|
|
lsl r0, r0, #0x2
|
|
ldr r0, [r1, r0]
|
|
bx lr
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02052798
|
|
sub_02052798: ; 0x02052798
|
|
ldr r1, [r3, #0x78]
|
|
ldrb r2, [r2, #0x0]
|
|
add r1, r1, r0
|
|
ldr r0, _020527A4 ; =0x00000176
|
|
strb r2, [r1, r0]
|
|
bx lr
|
|
.balign 4
|
|
_020527A4: .word 0x00000176
|
|
|
|
thumb_func_start sub_020527A8
|
|
sub_020527A8: ; 0x020527A8
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
bl sub_02031190
|
|
ldr r2, _020527D4 ; =0x00000176
|
|
add r1, r4, r0
|
|
ldrb r1, [r1, r2]
|
|
cmp r1, #0x2
|
|
bne _020527BE
|
|
mov r0, #0x1
|
|
pop {r4, pc}
|
|
_020527BE:
|
|
mov r1, #0x1
|
|
eor r0, r1
|
|
add r0, r4, r0
|
|
ldrb r0, [r0, r2]
|
|
cmp r0, #0x2
|
|
bne _020527CE
|
|
mov r0, #0x2
|
|
pop {r4, pc}
|
|
_020527CE:
|
|
mov r0, #0x0
|
|
pop {r4, pc}
|
|
nop
|
|
_020527D4: .word 0x00000176
|
|
|
|
thumb_func_start sub_020527D8
|
|
sub_020527D8: ; 0x020527D8
|
|
push {r3, lr}
|
|
add r1, sp, #0x0
|
|
strb r0, [r1, #0x0]
|
|
mov r0, #0x65
|
|
add r1, sp, #0x0
|
|
mov r2, #0x1
|
|
bl sub_02030ADC
|
|
pop {r3, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_020527EC
|
|
sub_020527EC: ; 0x020527EC
|
|
ldr r3, _02052810 ; =UNK_020F58D4
|
|
mov r2, #0x0
|
|
_020527F0:
|
|
ldrh r1, [r3, #0x0]
|
|
cmp r1, r0
|
|
bgt _02052800
|
|
add r1, r1, #0x4
|
|
cmp r1, r0
|
|
ble _02052800
|
|
add r0, r2, #0x0
|
|
bx lr
|
|
_02052800:
|
|
add r2, r2, #0x1
|
|
add r3, r3, #0x2
|
|
cmp r2, #0xa
|
|
blt _020527F0
|
|
mov r0, #0x0
|
|
mvn r0, r0
|
|
bx lr
|
|
nop
|
|
_02052810: .word UNK_020F58D4
|
|
|
|
thumb_func_start sub_02052814
|
|
sub_02052814: ; 0x02052814
|
|
push {r4-r6, lr}
|
|
add r4, r1, #0x0
|
|
add r6, r0, #0x0
|
|
cmp r4, #0x9
|
|
ble _02052834
|
|
add r0, r4, #0x0
|
|
bl sub_020527EC
|
|
add r5, r0, #0x0
|
|
mov r0, #0x0
|
|
mvn r0, r0
|
|
cmp r4, r0
|
|
bne _02052836
|
|
bl GF_AssertFail
|
|
b _02052836
|
|
_02052834:
|
|
add r5, r4, #0x0
|
|
_02052836:
|
|
add r0, r5, #0x0
|
|
bl sub_0202EF84
|
|
lsl r1, r5, #0x2
|
|
add r2, r6, r1
|
|
mov r1, #0x11
|
|
lsl r1, r1, #0x4
|
|
ldr r5, [r2, r1]
|
|
add r5, #0x50
|
|
add r5, #0x30
|
|
cmp r0, #0x0
|
|
bne _02052852
|
|
mov r0, #0x28
|
|
pop {r4-r6, pc}
|
|
_02052852:
|
|
cmp r4, #0x9
|
|
ble _0205286C
|
|
sub r4, #0xa
|
|
lsr r2, r4, #0x1f
|
|
lsl r1, r4, #0x1e
|
|
sub r1, r1, r2
|
|
mov r0, #0x1e
|
|
ror r1, r0
|
|
add r0, r2, r1
|
|
add r0, r5, r0
|
|
ldrb r0, [r0, #0x18]
|
|
asr r4, r0, #0x7
|
|
b _02052872
|
|
_0205286C:
|
|
bl PlayerProfile_GetTrainerGender
|
|
add r4, r0, #0x0
|
|
_02052872:
|
|
ldrb r0, [r5, #0x1c]
|
|
cmp r0, #0xb
|
|
bhi _0205294C
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #0x6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_02052884: ; jump table (using 16-bit offset)
|
|
.short _0205294C - _02052884 - 2; case 0
|
|
.short _020528F8 - _02052884 - 2; case 1
|
|
.short _02052914 - _02052884 - 2; case 2
|
|
.short _02052930 - _02052884 - 2; case 3
|
|
.short _0205289C - _02052884 - 2; case 4
|
|
.short _020528A4 - _02052884 - 2; case 5
|
|
.short _020528C0 - _02052884 - 2; case 6
|
|
.short _020528DC - _02052884 - 2; case 7
|
|
.short _020528F8 - _02052884 - 2; case 8
|
|
.short _02052914 - _02052884 - 2; case 9
|
|
.short _02052930 - _02052884 - 2; case 10
|
|
.short _0205289C - _02052884 - 2; case 11
|
|
_0205289C:
|
|
ldr r0, _02052950 ; =UNK_020F5894
|
|
lsl r1, r4, #0x2
|
|
ldr r0, [r0, r1]
|
|
pop {r4-r6, pc}
|
|
_020528A4:
|
|
bl LCRandom
|
|
lsr r2, r0, #0x1f
|
|
lsl r1, r0, #0x1f
|
|
sub r1, r1, r2
|
|
mov r0, #0x1f
|
|
ror r1, r0
|
|
add r0, r2, r1
|
|
lsl r2, r0, #0x3
|
|
ldr r0, _02052954 ; =UNK_020F58C4
|
|
lsl r1, r4, #0x2
|
|
add r0, r0, r2
|
|
ldr r0, [r1, r0]
|
|
pop {r4-r6, pc}
|
|
_020528C0:
|
|
bl LCRandom
|
|
lsr r2, r0, #0x1f
|
|
lsl r1, r0, #0x1e
|
|
sub r1, r1, r2
|
|
mov r0, #0x1e
|
|
ror r1, r0
|
|
add r0, r2, r1
|
|
lsl r2, r0, #0x3
|
|
ldr r0, _02052958 ; =UNK_020F5984
|
|
lsl r1, r4, #0x2
|
|
add r0, r0, r2
|
|
ldr r0, [r1, r0]
|
|
pop {r4-r6, pc}
|
|
_020528DC:
|
|
bl LCRandom
|
|
lsr r2, r0, #0x1f
|
|
lsl r1, r0, #0x1f
|
|
sub r1, r1, r2
|
|
mov r0, #0x1f
|
|
ror r1, r0
|
|
add r0, r2, r1
|
|
lsl r2, r0, #0x3
|
|
ldr r0, _0205295C ; =UNK_020F58B4
|
|
lsl r1, r4, #0x2
|
|
add r0, r0, r2
|
|
ldr r0, [r1, r0]
|
|
pop {r4-r6, pc}
|
|
_020528F8:
|
|
bl LCRandom
|
|
lsr r2, r0, #0x1f
|
|
lsl r1, r0, #0x1e
|
|
sub r1, r1, r2
|
|
mov r0, #0x1e
|
|
ror r1, r0
|
|
add r0, r2, r1
|
|
lsl r2, r0, #0x3
|
|
ldr r0, _02052960 ; =UNK_020F5964
|
|
lsl r1, r4, #0x2
|
|
add r0, r0, r2
|
|
ldr r0, [r1, r0]
|
|
pop {r4-r6, pc}
|
|
_02052914:
|
|
bl LCRandom
|
|
lsr r2, r0, #0x1f
|
|
lsl r1, r0, #0x1e
|
|
sub r1, r1, r2
|
|
mov r0, #0x1e
|
|
ror r1, r0
|
|
add r0, r2, r1
|
|
lsl r2, r0, #0x3
|
|
ldr r0, _02052964 ; =UNK_020F59A4
|
|
lsl r1, r4, #0x2
|
|
add r0, r0, r2
|
|
ldr r0, [r1, r0]
|
|
pop {r4-r6, pc}
|
|
_02052930:
|
|
bl LCRandom
|
|
lsr r2, r0, #0x1f
|
|
lsl r1, r0, #0x1e
|
|
sub r1, r1, r2
|
|
mov r0, #0x1e
|
|
ror r1, r0
|
|
add r0, r2, r1
|
|
lsl r2, r0, #0x3
|
|
ldr r0, _02052968 ; =UNK_020F59C4
|
|
lsl r1, r4, #0x2
|
|
add r0, r0, r2
|
|
ldr r0, [r1, r0]
|
|
pop {r4-r6, pc}
|
|
_0205294C:
|
|
mov r0, #0x28
|
|
pop {r4-r6, pc}
|
|
.balign 4
|
|
_02052950: .word UNK_020F5894
|
|
_02052954: .word UNK_020F58C4
|
|
_02052958: .word UNK_020F5984
|
|
_0205295C: .word UNK_020F58B4
|
|
_02052960: .word UNK_020F5964
|
|
_02052964: .word UNK_020F59A4
|
|
_02052968: .word UNK_020F59C4
|
|
|
|
thumb_func_start sub_0205296C
|
|
sub_0205296C: ; 0x0205296C
|
|
push {r3-r7, lr}
|
|
str r0, [sp, #0x0]
|
|
bl sub_02031190
|
|
bl sub_0202E020
|
|
lsl r0, r0, #0x18
|
|
lsr r7, r0, #0x18
|
|
bl sub_02031190
|
|
mov r1, #0x1
|
|
eor r0, r1
|
|
bl sub_0202E020
|
|
lsl r0, r0, #0x18
|
|
lsr r4, r0, #0x18
|
|
bl sub_02031190
|
|
bl sub_0202E044
|
|
lsl r0, r0, #0x18
|
|
lsr r6, r0, #0x18
|
|
bl sub_02031190
|
|
mov r1, #0x1
|
|
eor r0, r1
|
|
bl sub_0202E044
|
|
lsl r0, r0, #0x18
|
|
lsr r5, r0, #0x18
|
|
cmp r4, #0x0
|
|
bne _020529B0
|
|
mov r0, #0xf
|
|
pop {r3-r7, pc}
|
|
_020529B0:
|
|
beq _020529CC
|
|
ldr r0, [sp, #0x0]
|
|
mov r1, #0x3
|
|
add r2, r4, #0x0
|
|
bl BufferCountryName
|
|
cmp r5, #0x0
|
|
beq _020529CC
|
|
ldr r0, [sp, #0x0]
|
|
mov r1, #0x4
|
|
add r2, r4, #0x0
|
|
add r3, r5, #0x0
|
|
bl BufferCityName
|
|
_020529CC:
|
|
cmp r7, r4
|
|
beq _020529E4
|
|
cmp r5, #0x0
|
|
bne _020529D8
|
|
mov r0, #0xd
|
|
pop {r3-r7, pc}
|
|
_020529D8:
|
|
cmp r6, r5
|
|
bne _020529E0
|
|
mov r0, #0xd
|
|
pop {r3-r7, pc}
|
|
_020529E0:
|
|
mov r0, #0xc
|
|
pop {r3-r7, pc}
|
|
_020529E4:
|
|
cmp r6, r5
|
|
beq _020529EC
|
|
mov r0, #0xe
|
|
pop {r3-r7, pc}
|
|
_020529EC:
|
|
mov r0, #0xf
|
|
pop {r3-r7, pc}
|
|
|
|
thumb_func_start sub_020529F0
|
|
sub_020529F0: ; 0x020529F0
|
|
push {r3, lr}
|
|
cmp r0, #0x0
|
|
beq _02052A02
|
|
lsl r2, r0, #0x3
|
|
ldr r0, _02052A0C ; =UNK_020F5A14
|
|
lsl r1, r1, #0x2
|
|
add r0, r0, r2
|
|
ldr r0, [r1, r0]
|
|
pop {r3, pc}
|
|
_02052A02:
|
|
add r0, r2, #0x0
|
|
bl sub_0205296C
|
|
pop {r3, pc}
|
|
nop
|
|
_02052A0C: .word UNK_020F5A14
|
|
|
|
thumb_func_start sub_02052A10
|
|
sub_02052A10: ; 0x02052A10
|
|
push {r4-r6, lr}
|
|
add r4, r2, #0x0
|
|
add r5, r0, #0x0
|
|
add r6, r3, #0x0
|
|
cmp r4, #0x0
|
|
bne _02052A24
|
|
sub r1, r1, #0x1
|
|
bl sub_02052814
|
|
pop {r4-r6, pc}
|
|
_02052A24:
|
|
sub r0, r1, #0x1
|
|
bl sub_0202EF84
|
|
bl PlayerProfile_GetTrainerGender
|
|
add r1, r0, #0x0
|
|
cmp r4, #0x18
|
|
bhi _02052AFA
|
|
add r0, r4, r4
|
|
add r0, pc
|
|
ldrh r0, [r0, #0x6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_02052A40: ; jump table (using 16-bit offset)
|
|
.short _02052AFA - _02052A40 - 2; case 0
|
|
.short _02052A72 - _02052A40 - 2; case 1
|
|
.short _02052A7E - _02052A40 - 2; case 2
|
|
.short _02052AAA - _02052A40 - 2; case 3
|
|
.short _02052AAA - _02052A40 - 2; case 4
|
|
.short _02052AAA - _02052A40 - 2; case 5
|
|
.short _02052AAA - _02052A40 - 2; case 6
|
|
.short _02052AAA - _02052A40 - 2; case 7
|
|
.short _02052AAA - _02052A40 - 2; case 8
|
|
.short _02052A86 - _02052A40 - 2; case 9
|
|
.short _02052AB8 - _02052A40 - 2; case 10
|
|
.short _02052AB8 - _02052A40 - 2; case 11
|
|
.short _02052AB8 - _02052A40 - 2; case 12
|
|
.short _02052AC6 - _02052A40 - 2; case 13
|
|
.short _02052AC6 - _02052A40 - 2; case 14
|
|
.short _02052AC6 - _02052A40 - 2; case 15
|
|
.short _02052AD4 - _02052A40 - 2; case 16
|
|
.short _02052AD4 - _02052A40 - 2; case 17
|
|
.short _02052AD4 - _02052A40 - 2; case 18
|
|
.short _02052A9C - _02052A40 - 2; case 19
|
|
.short _02052A9C - _02052A40 - 2; case 20
|
|
.short _02052A9C - _02052A40 - 2; case 21
|
|
.short _02052AE2 - _02052A40 - 2; case 22
|
|
.short _02052AEA - _02052A40 - 2; case 23
|
|
.short _02052AF2 - _02052A40 - 2; case 24
|
|
_02052A72:
|
|
ldr r0, [r5, #0x34]
|
|
add r2, r6, #0x0
|
|
sub r0, r0, #0x1
|
|
bl sub_020529F0
|
|
pop {r4-r6, pc}
|
|
_02052A7E:
|
|
ldr r0, _02052B04 ; =UNK_020F58AC
|
|
lsl r1, r1, #0x2
|
|
ldr r0, [r0, r1]
|
|
pop {r4-r6, pc}
|
|
_02052A86:
|
|
ldr r0, [r5, #0x34]
|
|
cmp r0, #0x0
|
|
bne _02052A90
|
|
mov r0, #0x0
|
|
pop {r4-r6, pc}
|
|
_02052A90:
|
|
lsl r2, r0, #0x3
|
|
ldr r0, _02052B08 ; =UNK_020F59DC
|
|
lsl r1, r1, #0x2
|
|
add r0, r0, r2
|
|
ldr r0, [r1, r0]
|
|
pop {r4-r6, pc}
|
|
_02052A9C:
|
|
sub r4, #0x13
|
|
ldr r0, _02052B0C ; =UNK_020F58E8
|
|
lsl r2, r4, #0x3
|
|
lsl r1, r1, #0x2
|
|
add r0, r0, r2
|
|
ldr r0, [r1, r0]
|
|
pop {r4-r6, pc}
|
|
_02052AAA:
|
|
sub r0, r4, #0x3
|
|
lsl r2, r0, #0x3
|
|
ldr r0, _02052B10 ; =UNK_020F5A44
|
|
lsl r1, r1, #0x2
|
|
add r0, r0, r2
|
|
ldr r0, [r1, r0]
|
|
pop {r4-r6, pc}
|
|
_02052AB8:
|
|
sub r4, #0xa
|
|
ldr r0, _02052B14 ; =UNK_020F5900
|
|
lsl r2, r4, #0x3
|
|
lsl r1, r1, #0x2
|
|
add r0, r0, r2
|
|
ldr r0, [r1, r0]
|
|
pop {r4-r6, pc}
|
|
_02052AC6:
|
|
sub r4, #0xd
|
|
ldr r0, _02052B18 ; =UNK_020F5918
|
|
lsl r2, r4, #0x3
|
|
lsl r1, r1, #0x2
|
|
add r0, r0, r2
|
|
ldr r0, [r1, r0]
|
|
pop {r4-r6, pc}
|
|
_02052AD4:
|
|
sub r4, #0x10
|
|
ldr r0, _02052B1C ; =UNK_020F5930
|
|
lsl r2, r4, #0x3
|
|
lsl r1, r1, #0x2
|
|
add r0, r0, r2
|
|
ldr r0, [r1, r0]
|
|
pop {r4-r6, pc}
|
|
_02052AE2:
|
|
ldr r0, _02052B20 ; =UNK_020F588C
|
|
lsl r1, r1, #0x2
|
|
ldr r0, [r0, r1]
|
|
pop {r4-r6, pc}
|
|
_02052AEA:
|
|
ldr r0, _02052B24 ; =UNK_020F58A4
|
|
lsl r1, r1, #0x2
|
|
ldr r0, [r0, r1]
|
|
pop {r4-r6, pc}
|
|
_02052AF2:
|
|
ldr r0, _02052B28 ; =UNK_020F589C
|
|
lsl r1, r1, #0x2
|
|
ldr r0, [r0, r1]
|
|
pop {r4-r6, pc}
|
|
_02052AFA:
|
|
bl GF_AssertFail
|
|
mov r0, #0x28
|
|
pop {r4-r6, pc}
|
|
nop
|
|
_02052B04: .word UNK_020F58AC
|
|
_02052B08: .word UNK_020F59DC
|
|
_02052B0C: .word UNK_020F58E8
|
|
_02052B10: .word UNK_020F5A44
|
|
_02052B14: .word UNK_020F5900
|
|
_02052B18: .word UNK_020F5918
|
|
_02052B1C: .word UNK_020F5930
|
|
_02052B20: .word UNK_020F588C
|
|
_02052B24: .word UNK_020F58A4
|
|
_02052B28: .word UNK_020F589C
|
|
|
|
thumb_func_start sub_02052B2C
|
|
sub_02052B2C: ; 0x02052B2C
|
|
push {r3-r7, lr}
|
|
add r5, r0, #0x0
|
|
mov r6, #0x1
|
|
_02052B32:
|
|
add r0, r6, #0x0
|
|
sub r4, r6, #0x1
|
|
bl sub_0202DFA4
|
|
add r7, r0, #0x0
|
|
beq _02052B60
|
|
bl PlayerProfile_GetTrainerID
|
|
lsl r1, r4, #0x2
|
|
str r0, [r5, r1]
|
|
add r0, r7, #0x0
|
|
bl PlayerProfile_GetAvatar
|
|
str r0, [sp, #0x0]
|
|
add r0, r7, #0x0
|
|
bl PlayerProfile_GetTrainerGender
|
|
lsl r1, r0, #0x7
|
|
ldr r0, [sp, #0x0]
|
|
orr r1, r0
|
|
add r0, r5, r4
|
|
strb r1, [r0, #0x18]
|
|
b _02052B6A
|
|
_02052B60:
|
|
lsl r1, r4, #0x2
|
|
mov r0, #0x0
|
|
str r0, [r5, r1]
|
|
add r1, r5, r4
|
|
strb r0, [r1, #0x18]
|
|
_02052B6A:
|
|
add r6, r6, #0x1
|
|
cmp r6, #0x5
|
|
blt _02052B32
|
|
pop {r3-r7, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02052B74
|
|
sub_02052B74: ; 0x02052B74
|
|
push {r4, lr}
|
|
sub sp, #0x20
|
|
add r4, r0, #0x0
|
|
add r0, sp, #0x0
|
|
mov r1, #0x0
|
|
mov r2, #0x20
|
|
bl MI_CpuFill8
|
|
cmp r4, #0xb
|
|
bhi _02052BFA
|
|
add r0, r4, r4
|
|
add r0, pc
|
|
ldrh r0, [r0, #0x6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_02052B94: ; jump table (using 16-bit offset)
|
|
.short _02052BFA - _02052B94 - 2; case 0
|
|
.short _02052BCA - _02052B94 - 2; case 1
|
|
.short _02052BDE - _02052B94 - 2; case 2
|
|
.short _02052BF2 - _02052B94 - 2; case 3
|
|
.short _02052BFA - _02052B94 - 2; case 4
|
|
.short _02052BB6 - _02052B94 - 2; case 5
|
|
.short _02052BB6 - _02052B94 - 2; case 6
|
|
.short _02052BB6 - _02052B94 - 2; case 7
|
|
.short _02052BC0 - _02052B94 - 2; case 8
|
|
.short _02052BD4 - _02052B94 - 2; case 9
|
|
.short _02052BE8 - _02052B94 - 2; case 10
|
|
.short _02052BAC - _02052B94 - 2; case 11
|
|
_02052BAC:
|
|
add r0, sp, #0x0
|
|
mov r1, #0x2
|
|
bl sub_02052B2C
|
|
b _02052BFA
|
|
_02052BB6:
|
|
add r0, sp, #0x0
|
|
mov r1, #0x2
|
|
bl sub_02052B2C
|
|
b _02052BFA
|
|
_02052BC0:
|
|
add r0, sp, #0x0
|
|
mov r1, #0x5
|
|
bl sub_02052B2C
|
|
b _02052BFA
|
|
_02052BCA:
|
|
add r0, sp, #0x0
|
|
mov r1, #0x4
|
|
bl sub_02052B2C
|
|
b _02052BFA
|
|
_02052BD4:
|
|
add r0, sp, #0x0
|
|
mov r1, #0x5
|
|
bl sub_02052B2C
|
|
b _02052BFA
|
|
_02052BDE:
|
|
add r0, sp, #0x0
|
|
mov r1, #0x4
|
|
bl sub_02052B2C
|
|
b _02052BFA
|
|
_02052BE8:
|
|
add r0, sp, #0x0
|
|
mov r1, #0x4
|
|
bl sub_02052B2C
|
|
b _02052BFA
|
|
_02052BF2:
|
|
add r0, sp, #0x0
|
|
mov r1, #0x4
|
|
bl sub_02052B2C
|
|
_02052BFA:
|
|
add r0, sp, #0x0
|
|
strb r4, [r0, #0x1c]
|
|
add r0, sp, #0x0
|
|
bl sub_0202F094
|
|
bl sub_0202F0B8
|
|
add sp, #0x20
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_02052C0C
|
|
sub_02052C0C: ; 0x02052C0C
|
|
push {r4-r6, lr}
|
|
add r5, r0, #0x0
|
|
mov r3, #0x0
|
|
mov r0, #0x11
|
|
add r6, r1, #0x0
|
|
add r2, r3, #0x0
|
|
add r4, r5, #0x0
|
|
lsl r0, r0, #0x4
|
|
_02052C1C:
|
|
ldr r1, [r4, r0]
|
|
cmp r1, #0x0
|
|
beq _02052C24
|
|
add r3, r3, #0x1
|
|
_02052C24:
|
|
add r2, r2, #0x1
|
|
add r4, r4, #0x4
|
|
cmp r2, #0xa
|
|
blt _02052C1C
|
|
cmp r3, #0x0
|
|
beq _02052C34
|
|
mov r0, #0xa4
|
|
pop {r4-r6, pc}
|
|
_02052C34:
|
|
mov r0, #0x5e
|
|
lsl r0, r0, #0x2
|
|
add r0, r5, r0
|
|
bl MailMsg_IsInit
|
|
cmp r0, #0x0
|
|
bne _02052C46
|
|
mov r0, #0xa5
|
|
pop {r4-r6, pc}
|
|
_02052C46:
|
|
mov r0, #0x5e
|
|
lsl r0, r0, #0x2
|
|
add r0, r5, r0
|
|
bl MailMsg_GetMsgBank
|
|
cmp r0, #0x4
|
|
beq _02052C78
|
|
ldr r0, [r5, #0x8]
|
|
bl PlayerProfile_GetAvatar
|
|
add r4, r0, #0x0
|
|
ldr r0, [r5, #0x8]
|
|
bl PlayerProfile_GetTrainerGender
|
|
add r1, r4, #0x0
|
|
mov r2, #0x2
|
|
bl sub_020536D0
|
|
add r2, r0, #0x0
|
|
add r0, r6, #0x0
|
|
mov r1, #0x0
|
|
bl BufferTrainerClassName
|
|
mov r0, #0xa6
|
|
pop {r4-r6, pc}
|
|
_02052C78:
|
|
mov r0, #0x5e
|
|
lsl r0, r0, #0x2
|
|
add r0, r5, r0
|
|
bl MailMsg_GetMsgNo
|
|
add r4, r0, #0x0
|
|
cmp r4, #0x14
|
|
blt _02052C8A
|
|
mov r4, #0x0
|
|
_02052C8A:
|
|
mov r0, #0x5e
|
|
lsl r0, r0, #0x2
|
|
add r0, r5, r0
|
|
mov r1, #0x0
|
|
bl MailMsg_GetFieldI
|
|
add r2, r0, #0x0
|
|
ldr r0, _02052CB0 ; =0x0000FFFF
|
|
cmp r2, r0
|
|
beq _02052CA6
|
|
add r0, r6, #0x0
|
|
mov r1, #0x0
|
|
bl BufferECWord
|
|
_02052CA6:
|
|
ldr r0, _02052CB4 ; =UNK_020F5A74
|
|
lsl r1, r4, #0x2
|
|
ldr r0, [r0, r1]
|
|
pop {r4-r6, pc}
|
|
nop
|
|
_02052CB0: .word 0x0000FFFF
|
|
_02052CB4: .word UNK_020F5A74
|
|
|
|
thumb_func_start sub_02052CB8
|
|
sub_02052CB8: ; 0x02052CB8
|
|
push {r3-r4}
|
|
mov r3, #0x0
|
|
strb r3, [r0, #0x1c]
|
|
add r4, r0, #0x0
|
|
add r2, r3, #0x0
|
|
_02052CC2:
|
|
stmia r4!, {r2}
|
|
add r1, r0, r3
|
|
strb r2, [r1, #0x18]
|
|
strb r2, [r1, #0x10]
|
|
add r3, r3, #0x1
|
|
strb r2, [r1, #0x14]
|
|
cmp r3, #0x4
|
|
blt _02052CC2
|
|
pop {r3-r4}
|
|
bx lr
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02052CD8
|
|
sub_02052CD8: ; 0x02052CD8
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
mov r0, #0x5e
|
|
lsl r0, r0, #0x2
|
|
add r0, r4, r0
|
|
bl MailMsg_Copy
|
|
mov r0, #0x6
|
|
mov r1, #0x1
|
|
lsl r0, r0, #0x6
|
|
str r1, [r4, r0]
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_02052CF0
|
|
sub_02052CF0: ; 0x02052CF0
|
|
mov r1, #0x6
|
|
lsl r1, r1, #0x6
|
|
ldr r2, [r0, r1]
|
|
cmp r2, #0x0
|
|
bne _02052CFE
|
|
mov r0, #0x0
|
|
bx lr
|
|
_02052CFE:
|
|
mov r2, #0x0
|
|
str r2, [r0, r1]
|
|
sub r1, #0x8
|
|
add r0, r0, r1
|
|
bx lr
|
|
|
|
thumb_func_start sub_02052D08
|
|
sub_02052D08: ; 0x02052D08
|
|
push {r4-r7, lr}
|
|
sub sp, #0xc
|
|
add r6, r2, #0x0
|
|
mov r2, #0x9
|
|
add r5, r0, #0x0
|
|
add r4, r1, #0x0
|
|
str r3, [sp, #0x8]
|
|
mov r0, #0x1
|
|
mov r1, #0x1a
|
|
lsl r2, r2, #0x6
|
|
mov r3, #0x4
|
|
bl NewMsgDataFromNarc
|
|
add r7, r0, #0x0
|
|
cmp r4, #0x0
|
|
bne _02052D30
|
|
sub r0, r6, #0x1
|
|
bl sub_0202EF84
|
|
b _02052D3C
|
|
_02052D30:
|
|
bl sub_02031190
|
|
mov r1, #0x1
|
|
eor r0, r1
|
|
bl sub_0202DFA4
|
|
_02052D3C:
|
|
add r4, r0, #0x0
|
|
cmp r4, #0x0
|
|
beq _02052DE0
|
|
add r0, r5, #0x0
|
|
mov r1, #0x0
|
|
add r2, r4, #0x0
|
|
bl BufferPlayersName
|
|
ldr r2, [sp, #0x8]
|
|
add r0, r5, #0x0
|
|
mov r1, #0x1
|
|
bl BufferPlayersName
|
|
add r0, r4, #0x0
|
|
bl PlayerProfile_GetLanguage
|
|
add r4, r0, #0x0
|
|
cmp r4, #0x1
|
|
blt _02052D80
|
|
cmp r4, #0x7
|
|
bgt _02052D80
|
|
sub r0, r4, #0x1
|
|
lsl r0, r0, #0x10
|
|
lsr r0, r0, #0x10
|
|
cmp r0, #0x7
|
|
bhs _02052D80
|
|
lsl r1, r0, #0x2
|
|
ldr r0, _02052DE4 ; =UNK_020F5948
|
|
ldr r1, [r0, r1]
|
|
cmp r1, #0x0
|
|
blt _02052D80
|
|
ldr r0, [sp, #0x20]
|
|
bl Save_EasyChat_SetGreetingFlag
|
|
_02052D80:
|
|
cmp r4, #0x7
|
|
bhi _02052DB8
|
|
add r0, r4, r4
|
|
add r0, pc
|
|
ldrh r0, [r0, #0x6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_02052D90: ; jump table (using 16-bit offset)
|
|
.short _02052DB8 - _02052D90 - 2; case 0
|
|
.short _02052DA0 - _02052D90 - 2; case 1
|
|
.short _02052DA4 - _02052D90 - 2; case 2
|
|
.short _02052DA8 - _02052D90 - 2; case 3
|
|
.short _02052DAC - _02052D90 - 2; case 4
|
|
.short _02052DB0 - _02052D90 - 2; case 5
|
|
.short _02052DB8 - _02052D90 - 2; case 6
|
|
.short _02052DB4 - _02052D90 - 2; case 7
|
|
_02052DA0:
|
|
mov r1, #0xd1
|
|
b _02052DBA
|
|
_02052DA4:
|
|
mov r1, #0xd2
|
|
b _02052DBA
|
|
_02052DA8:
|
|
mov r1, #0xd3
|
|
b _02052DBA
|
|
_02052DAC:
|
|
mov r1, #0xd4
|
|
b _02052DBA
|
|
_02052DB0:
|
|
mov r1, #0xd5
|
|
b _02052DBA
|
|
_02052DB4:
|
|
mov r1, #0xd6
|
|
b _02052DBA
|
|
_02052DB8:
|
|
mov r1, #0xd7
|
|
_02052DBA:
|
|
add r0, r7, #0x0
|
|
bl NewString_ReadMsgData
|
|
add r6, r0, #0x0
|
|
mov r0, #0x1
|
|
str r0, [sp, #0x0]
|
|
add r0, r5, #0x0
|
|
mov r1, #0x2
|
|
add r2, r6, #0x0
|
|
mov r3, #0x0
|
|
str r4, [sp, #0x4]
|
|
bl BufferString
|
|
add r0, r6, #0x0
|
|
bl Heap_Free
|
|
add r0, r7, #0x0
|
|
bl DestroyMsgData
|
|
_02052DE0:
|
|
add sp, #0xc
|
|
pop {r4-r7, pc}
|
|
.balign 4
|
|
_02052DE4: .word UNK_020F5948
|
|
|
|
thumb_func_start sub_02052DE8
|
|
sub_02052DE8: ; 0x02052DE8
|
|
push {r4, lr}
|
|
sub sp, #0x20
|
|
add r4, r0, #0x0
|
|
add r0, sp, #0x0
|
|
bl sub_02052CB8
|
|
mov r1, #0x0
|
|
add r0, sp, #0x0
|
|
strb r1, [r0, #0x1c]
|
|
add r0, r4, #0x0
|
|
bl sub_0202F078
|
|
add r0, sp, #0x0
|
|
bl sub_0202F094
|
|
bl sub_0202F0B8
|
|
add sp, #0x20
|
|
pop {r4, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02052E10
|
|
sub_02052E10: ; 0x02052E10
|
|
mov r1, #0x0
|
|
str r1, [r0, #0x30]
|
|
str r1, [r0, #0x40]
|
|
str r1, [r0, #0x44]
|
|
bx lr
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02052E1C
|
|
sub_02052E1C: ; 0x02052E1C
|
|
mov r2, #0x0
|
|
str r2, [r0, #0x20]
|
|
str r2, [r0, #0x24]
|
|
str r2, [r0, #0x2c]
|
|
str r2, [r0, #0x30]
|
|
mov r1, #0x5d
|
|
str r2, [r0, #0x40]
|
|
lsl r1, r1, #0x2
|
|
strh r2, [r0, r1]
|
|
add r1, #0xc
|
|
str r2, [r0, r1]
|
|
str r2, [r0, #0x44]
|
|
bx lr
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02052E38
|
|
sub_02052E38: ; 0x02052E38
|
|
push {r3-r5, lr}
|
|
sub sp, #0x8
|
|
add r4, r0, #0x0
|
|
mov r0, #0x0
|
|
bl sub_02065054
|
|
mov r1, #0x61
|
|
lsl r1, r1, #0x2
|
|
str r0, [r4, r1]
|
|
mov r0, #0x0
|
|
bl sub_02065054
|
|
mov r1, #0x62
|
|
lsl r1, r1, #0x2
|
|
str r0, [r4, r1]
|
|
mov r0, #0x0
|
|
bl sub_02065054
|
|
mov r1, #0x63
|
|
lsl r1, r1, #0x2
|
|
str r0, [r4, r1]
|
|
ldr r0, [r4, #0x8]
|
|
bl PlayerProfile_GetTrainerGender
|
|
add r5, r0, #0x0
|
|
ldr r0, [r4, #0x8]
|
|
bl PlayerProfile_GetAvatar
|
|
add r1, r0, #0x0
|
|
add r0, r5, #0x0
|
|
mov r2, #0x0
|
|
bl sub_020536D0
|
|
add r3, r0, #0x0
|
|
ldr r0, [r4, #0x0]
|
|
lsl r3, r3, #0x18
|
|
str r0, [sp, #0x0]
|
|
mov r0, #0x61
|
|
lsl r0, r0, #0x2
|
|
ldr r0, [r4, r0]
|
|
lsr r3, r3, #0x18
|
|
str r0, [sp, #0x4]
|
|
mov r0, #0x0
|
|
add r1, r0, #0x0
|
|
add r2, r0, #0x0
|
|
bl sub_02064E90
|
|
bl sub_02031190
|
|
mov r1, #0x1
|
|
eor r0, r1
|
|
lsl r0, r0, #0x2
|
|
add r1, r4, r0
|
|
mov r0, #0x62
|
|
lsl r0, r0, #0x2
|
|
ldr r0, [r1, r0]
|
|
add sp, #0x8
|
|
pop {r3-r5, pc}
|
|
|
|
thumb_func_start sub_02052EAC
|
|
sub_02052EAC: ; 0x02052EAC
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
mov r0, #0x62
|
|
lsl r0, r0, #0x2
|
|
ldr r0, [r4, r0]
|
|
bl Heap_Free
|
|
mov r0, #0x63
|
|
lsl r0, r0, #0x2
|
|
ldr r0, [r4, r0]
|
|
bl Heap_Free
|
|
mov r0, #0x61
|
|
lsl r0, r0, #0x2
|
|
ldr r0, [r4, r0]
|
|
bl Heap_Free
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_02052ED0
|
|
sub_02052ED0: ; 0x02052ED0
|
|
mov r1, #0x61
|
|
add r2, r0, #0x0
|
|
lsl r1, r1, #0x2
|
|
ldr r1, [r2, r1]
|
|
ldr r3, _02052EE0 ; =sub_02030A78
|
|
mov r0, #0x69
|
|
ldr r2, _02052EE4 ; =0x0000066C
|
|
bx r3
|
|
.balign 4
|
|
_02052EE0: .word sub_02030A78
|
|
_02052EE4: .word 0x0000066C
|