.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 FUN_020520AC FUN_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 CreateHeapAtEnd add r0, r4, #0x0 bl FUN_02052110 add r5, r0, #0x0 bne _020520D8 ldr r5, [r4, #0x78] _020520D8: add r0, r4, #0x0 bl FUN_0208881C mov r0, #0x2 bl FUN_02032B6C ldr r1, _020520F4 ; =FUN_02052178 add r0, r5, #0x0 mov r2, #0x28 bl FUN_02052300 add r0, r5, #0x0 pop {r3-r5, pc} nop _020520F4: .word FUN_02052178 thumb_func_start FUN_020520F8 FUN_020520F8: ; 0x020520F8 push {r3, lr} ldr r0, [r0, #0x78] cmp r0, #0x0 beq _02052108 ldr r1, _0205210C ; =FUN_02052348 mov r2, #0x5 bl FUN_02052300 _02052108: pop {r3, pc} nop _0205210C: .word FUN_02052348 thumb_func_start FUN_02052110 FUN_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 ScriptEnvironment_GetSav2Ptr add r6, r0, #0x0 bl FUN_02031A7C mov r1, #0x19 mov r0, #0x1f lsl r1, r1, #0x4 bl AllocFromHeap 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 ; =FUN_02052308 add r1, r4, #0x0 mov r2, #0xa bl FUN_0200CA44 str r0, [r4, #0xc] str r5, [r4, #0x0] str r6, [r4, #0x4] add r0, r6, #0x0 bl Sav2_PlayerData_GetProfileAddr str r0, [r4, #0x8] add r0, r4, #0x0 bl FUN_02052E1C mov r0, #0x15 lsl r0, r0, #0x4 add r0, r4, r0 bl FUN_020312BC add r0, r4, #0x0 pop {r4-r6, pc} nop _02052174: .word FUN_02052308 thumb_func_start FUN_02052178 FUN_02052178: ; 0x02052178 push {r4, lr} sub sp, #0x8 add r4, r0, #0x0 bl FUN_0202EDF8 cmp r0, #0x0 beq _020521A4 add r0, sp, #0x0 bl MailMsg_init_default add r0, sp, #0x0 bl FUN_02052DE8 add r0, r4, #0x0 add r1, sp, #0x0 bl FUN_02052CD8 ldr r1, _020521A8 ; =FUN_020521AC add r0, r4, #0x0 mov r2, #0x28 bl FUN_02052300 _020521A4: add sp, #0x8 pop {r4, pc} .balign 4 _020521A8: .word FUN_020521AC thumb_func_start FUN_020521AC FUN_020521AC: ; 0x020521AC push {r4, lr} add r4, r0, #0x0 bl FUN_02031B2C cmp r0, #0x0 beq _020521C8 ldr r0, _02052208 ; =UNK_021C5A70 mov r2, #0x0 str r2, [r0, #0x0] ldr r1, _0205220C ; =FUN_0205225C add r0, r4, #0x0 bl FUN_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 FUN_020328F4 b _020521FC _020521E6: bl FUN_02031AC8 b _020521FC _020521EC: cmp r0, #0x2 bne _020521FC mov r0, #0x0 bl FUN_02083D48 ldr r0, [r4, #0x18] bl FUN_020328C0 _020521FC: ldr r1, _02052210 ; =FUN_02052380 add r0, r4, #0x0 mov r2, #0xc bl FUN_02052300 _02052206: pop {r4, pc} .balign 4 _02052208: .word UNK_021C5A70 _0205220C: .word FUN_0205225C _02052210: .word FUN_02052380 thumb_func_start FUN_02052214 FUN_02052214: ; 0x02052214 push {r4, lr} add r4, r0, #0x0 bl FUN_02031BD0 cmp r0, #0x1 bne _02052230 ldr r0, [r4, #0x0] bl FUN_0208881C ldr r1, _02052234 ; =FUN_020521AC add r0, r4, #0x0 mov r2, #0x2 bl FUN_02052300 _02052230: pop {r4, pc} nop _02052234: .word FUN_020521AC thumb_func_start FUN_02052238 FUN_02052238: ; 0x02052238 push {r3-r5, lr} mov r5, #0x0 mov r4, #0x1 _0205223E: add r0, r4, #0x0 bl FUN_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 FUN_0205225C FUN_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 FUN_020311E8 cmp r0, #0x0 beq _020522A0 bl FUN_02052238 cmp r0, #0x1 bne _020522A0 bl FUN_0202DBE0 mov r0, #0x1 add r1, r0, #0x0 bl FUN_020334E8 mov r0, #0xb bl FUN_02052B74 ldr r1, _020522C8 ; =FUN_020522D0 add r0, r4, #0x0 mov r2, #0x0 bl FUN_02052300 _020522A0: bl FUN_02031B2C cmp r0, #0x0 bne _020522C2 bl FUN_02031B50 add r0, r4, #0x0 bl FUN_02052E1C mov r0, #0x0 bl FUN_02052B74 ldr r1, _020522CC ; =FUN_02052214 add r0, r4, #0x0 mov r2, #0x2 bl FUN_02052300 _020522C2: pop {r4, pc} .balign 4 _020522C4: .word UNK_021C5A70 _020522C8: .word FUN_020522D0 _020522CC: .word FUN_02052214 thumb_func_start FUN_020522D0 FUN_020522D0: ; 0x020522D0 push {r4, lr} add r4, r0, #0x0 bl FUN_020311E8 bl FUN_020311E8 cmp r0, #0x0 bne _020522FA bl FUN_02031B50 add r0, r4, #0x0 bl FUN_02052E1C mov r0, #0x0 bl FUN_02052B74 ldr r1, _020522FC ; =FUN_02052214 add r0, r4, #0x0 mov r2, #0x2 bl FUN_02052300 _020522FA: pop {r4, pc} .balign 4 _020522FC: .word FUN_02052214 thumb_func_start FUN_02052300 FUN_02052300: ; 0x02052300 str r1, [r0, #0x10] str r2, [r0, #0x14] bx lr .balign 4 thumb_func_start FUN_02052308 FUN_02052308: ; 0x02052308 push {r3-r7, lr} str r1, [sp, #0x0] cmp r1, #0x0 bne _02052316 bl FUN_0200CAB4 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 FUN_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 FUN_02052348 FUN_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 FUN_02031BF4 ldr r1, _02052368 ; =FUN_0205236C add r0, r4, #0x0 mov r2, #0x0 bl FUN_02052300 pop {r4, pc} .balign 4 _02052368: .word FUN_0205236C thumb_func_start FUN_0205236C FUN_0205236C: ; 0x0205236C push {r4, lr} add r4, r0, #0x0 bl FUN_02030F40 cmp r0, #0x0 bne _0205237E add r0, r4, #0x0 bl FUN_020524A0 _0205237E: pop {r4, pc} thumb_func_start FUN_02052380 FUN_02052380: ; 0x02052380 push {r4, lr} add r4, r0, #0x0 bl FUN_02031AF4 cmp r0, #0x1 bne _0205239C bl FUN_0202DBE0 ldr r1, _020523D4 ; =FUN_02052410 add r0, r4, #0x0 mov r2, #0x3 bl FUN_02052300 pop {r4, pc} _0205239C: bl FUN_020311E8 cmp r0, #0x0 beq _020523B4 mov r2, #0x0 str r2, [r4, #0x20] mov r0, #0x3 str r0, [r4, #0x1c] ldr r1, _020523D8 ; =FUN_0205225C add r0, r4, #0x0 bl FUN_02052300 _020523B4: bl FUN_02031AF4 cmp r0, #0x0 beq _020523D2 ldr r1, _020523DC ; =FUN_020523E0 add r0, r4, #0x0 mov r2, #0x2 bl FUN_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 FUN_02052410 _020523D8: .word FUN_0205225C _020523DC: .word FUN_020523E0 thumb_func_start FUN_020523E0 FUN_020523E0: ; 0x020523E0 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_0204646C cmp r0, #0x0 bne _02052408 bl FUN_02031B50 add r0, r4, #0x0 bl FUN_02052E1C mov r0, #0x0 bl FUN_02052B74 ldr r1, _0205240C ; =FUN_02052214 add r0, r4, #0x0 mov r2, #0x2 bl FUN_02052300 _02052408: pop {r4, pc} nop _0205240C: .word FUN_02052214 thumb_func_start FUN_02052410 FUN_02052410: ; 0x02052410 push {r4, lr} add r4, r0, #0x0 bl FUN_02031AF4 cmp r0, #0x1 bne _02052444 bl FUN_02031190 bl FUN_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 FUN_020334E8 ldr r1, _02052470 ; =FUN_02052478 add r0, r4, #0x0 mov r2, #0x3 bl FUN_02052300 pop {r4, pc} _02052444: bl FUN_02031AF4 cmp r0, #0x0 bne _0205246C bl FUN_02031B50 add r0, r4, #0x0 bl FUN_02052E1C ldr r1, _02052474 ; =FUN_02052214 add r0, r4, #0x0 mov r2, #0x2 bl FUN_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 FUN_02052478 _02052474: .word FUN_02052214 thumb_func_start FUN_02052478 FUN_02052478: ; 0x02052478 push {r4, lr} add r4, r0, #0x0 bl FUN_02031AF4 cmp r0, #0x0 bne _02052498 bl FUN_02031B50 add r0, r4, #0x0 bl FUN_02052E1C ldr r1, _0205249C ; =FUN_02052214 add r0, r4, #0x0 mov r2, #0x2 bl FUN_02052300 _02052498: pop {r4, pc} nop _0205249C: .word FUN_02052214 thumb_func_start FUN_020524A0 FUN_020524A0: ; 0x020524A0 push {r4, lr} add r4, r0, #0x0 beq _020524B8 ldr r0, [r4, #0xc] bl FUN_0200CAB4 add r0, r4, #0x0 bl FreeToHeap mov r0, #0x1f bl DestroyHeap _020524B8: pop {r4, pc} .balign 4 thumb_func_start FUN_020524BC FUN_020524BC: ; 0x020524BC ldr r0, [r0, #0x0] bx lr thumb_func_start FUN_020524C0 FUN_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 FUN_020524CC FUN_020524CC: ; 0x020524CC push {r4-r6, lr} add r5, r1, #0x0 add r4, r0, #0x0 sub r0, r5, #0x1 bl FUN_0202EF84 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_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 FUN_02052544 FUN_02052544: ; 0x02052544 push {r4-r6, lr} add r6, r1, #0x0 add r4, r0, #0x0 sub r0, r6, #0x1 add r5, r2, #0x0 bl FUN_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 FUN_02052604 FUN_02052604: ; 0x02052604 ldr r0, [r0, #0x1c] bx lr thumb_func_start FUN_02052608 FUN_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 FUN_02030F20 cmp r0, #0x2 bge _02052622 mov r0, #0x7 pop {r4, pc} _02052622: bl FUN_02031190 cmp r0, #0x0 bne _02052636 bl FUN_02031B2C cmp r0, #0x1 bne _02052642 ldr r0, [r4, #0x40] pop {r4, pc} _02052636: bl FUN_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 FUN_02052648 FUN_02052648: ; 0x02052648 push {r4, lr} add r4, r0, #0x0 bl FUN_02031B2C cmp r0, #0x1 bne _02052658 ldr r0, [r4, #0x30] pop {r4, pc} _02052658: mov r0, #0x7 pop {r4, pc} thumb_func_start FUN_0205265C FUN_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 FUN_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 FUN_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 FUN_02030BC4 str r4, [r5, #0x3c] _020526B0: pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020526B4 FUN_020526B4: ; 0x020526B4 bx lr .balign 4 thumb_func_start FUN_020526B8 FUN_020526B8: ; 0x020526B8 bx lr .balign 4 thumb_func_start FUN_020526BC FUN_020526BC: ; 0x020526BC push {r4, lr} add r4, r3, #0x0 ldr r0, [r4, #0x78] ldr r1, _020526D4 ; =FUN_020521AC mov r2, #0x2 bl FUN_02052300 ldr r0, [r4, #0x78] bl FUN_02052E1C pop {r4, pc} nop _020526D4: .word FUN_020521AC thumb_func_start FUN_020526D8 FUN_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 FUN_020526F0 FUN_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 FUN_02032888 _02052708: pop {r3, pc} .balign 4 thumb_func_start FUN_0205270C FUN_0205270C: ; 0x0205270C ldr r0, [r3, #0x78] mov r1, #0x1 str r1, [r0, #0x44] bx lr thumb_func_start FUN_02052714 FUN_02052714: ; 0x02052714 ldr r0, [r0, #0x44] bx lr thumb_func_start FUN_02052718 FUN_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 FUN_02030ADC add r0, r4, #0x0 pop {r4, pc} _02052730: mov r0, #0x0 pop {r4, pc} thumb_func_start FUN_02052734 FUN_02052734: ; 0x02052734 push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 add r4, r3, #0x0 bl FUN_02031190 mov r1, #0x1 eor r0, r1 bl FUN_0202DFA4 add r7, r0, #0x0 ldr r0, _02052784 ; =0x0000066A mov r1, #0x1 strh r1, [r6, r0] bl FUN_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 FUN_0202942C add r4, #0x98 add r1, r0, #0x0 ldr r0, [r4, #0x0] mov r2, #0x4 bl FUN_02028AD4 _02052780: pop {r3-r7, pc} nop _02052784: .word 0x0000066A thumb_func_start FUN_02052788 FUN_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 FUN_02052798 FUN_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 FUN_020527A8 FUN_020527A8: ; 0x020527A8 push {r4, lr} add r4, r0, #0x0 bl FUN_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 FUN_020527D8 FUN_020527D8: ; 0x020527D8 push {r3, lr} add r1, sp, #0x0 strb r0, [r1, #0x0] mov r0, #0x65 add r1, sp, #0x0 mov r2, #0x1 bl FUN_02030ADC pop {r3, pc} .balign 4 thumb_func_start FUN_020527EC FUN_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 FUN_02052814 FUN_02052814: ; 0x02052814 push {r4-r6, lr} add r4, r1, #0x0 add r6, r0, #0x0 cmp r4, #0x9 ble _02052834 add r0, r4, #0x0 bl FUN_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 FUN_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 FUN_0205296C FUN_0205296C: ; 0x0205296C push {r3-r7, lr} str r0, [sp, #0x0] bl FUN_02031190 bl FUN_0202E020 lsl r0, r0, #0x18 lsr r7, r0, #0x18 bl FUN_02031190 mov r1, #0x1 eor r0, r1 bl FUN_0202E020 lsl r0, r0, #0x18 lsr r4, r0, #0x18 bl FUN_02031190 bl FUN_0202E044 lsl r0, r0, #0x18 lsr r6, r0, #0x18 bl FUN_02031190 mov r1, #0x1 eor r0, r1 bl FUN_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 FUN_020529F0 FUN_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 FUN_0205296C pop {r3, pc} nop _02052A0C: .word UNK_020F5A14 thumb_func_start FUN_02052A10 FUN_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 FUN_02052814 pop {r4-r6, pc} _02052A24: sub r0, r1, #0x1 bl FUN_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 FUN_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 FUN_02052B2C FUN_02052B2C: ; 0x02052B2C push {r3-r7, lr} add r5, r0, #0x0 mov r6, #0x1 _02052B32: add r0, r6, #0x0 sub r4, r6, #0x1 bl FUN_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 FUN_02052B74 FUN_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 FUN_02052B2C b _02052BFA _02052BB6: add r0, sp, #0x0 mov r1, #0x2 bl FUN_02052B2C b _02052BFA _02052BC0: add r0, sp, #0x0 mov r1, #0x5 bl FUN_02052B2C b _02052BFA _02052BCA: add r0, sp, #0x0 mov r1, #0x4 bl FUN_02052B2C b _02052BFA _02052BD4: add r0, sp, #0x0 mov r1, #0x5 bl FUN_02052B2C b _02052BFA _02052BDE: add r0, sp, #0x0 mov r1, #0x4 bl FUN_02052B2C b _02052BFA _02052BE8: add r0, sp, #0x0 mov r1, #0x4 bl FUN_02052B2C b _02052BFA _02052BF2: add r0, sp, #0x0 mov r1, #0x4 bl FUN_02052B2C _02052BFA: add r0, sp, #0x0 strb r4, [r0, #0x1c] add r0, sp, #0x0 bl FUN_0202F094 bl FUN_0202F0B8 add sp, #0x20 pop {r4, pc} thumb_func_start FUN_02052C0C FUN_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 FUN_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 FUN_0200B518 _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 FUN_02052CB8 FUN_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 FUN_02052CD8 FUN_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 FUN_02052CF0 FUN_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 FUN_02052D08 FUN_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 FUN_0202EF84 b _02052D3C _02052D30: bl FUN_02031190 mov r1, #0x1 eor r0, r1 bl FUN_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 FUN_02013C18 _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 FreeToHeap add r0, r7, #0x0 bl DestroyMsgData _02052DE0: add sp, #0xc pop {r4-r7, pc} .balign 4 _02052DE4: .word UNK_020F5948 thumb_func_start FUN_02052DE8 FUN_02052DE8: ; 0x02052DE8 push {r4, lr} sub sp, #0x20 add r4, r0, #0x0 add r0, sp, #0x0 bl FUN_02052CB8 mov r1, #0x0 add r0, sp, #0x0 strb r1, [r0, #0x1c] add r0, r4, #0x0 bl FUN_0202F078 add r0, sp, #0x0 bl FUN_0202F094 bl FUN_0202F0B8 add sp, #0x20 pop {r4, pc} .balign 4 thumb_func_start FUN_02052E10 FUN_02052E10: ; 0x02052E10 mov r1, #0x0 str r1, [r0, #0x30] str r1, [r0, #0x40] str r1, [r0, #0x44] bx lr .balign 4 thumb_func_start FUN_02052E1C FUN_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 FUN_02052E38 FUN_02052E38: ; 0x02052E38 push {r3-r5, lr} sub sp, #0x8 add r4, r0, #0x0 mov r0, #0x0 bl FUN_02065054 mov r1, #0x61 lsl r1, r1, #0x2 str r0, [r4, r1] mov r0, #0x0 bl FUN_02065054 mov r1, #0x62 lsl r1, r1, #0x2 str r0, [r4, r1] mov r0, #0x0 bl FUN_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 FUN_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 FUN_02064E90 bl FUN_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 FUN_02052EAC FUN_02052EAC: ; 0x02052EAC push {r4, lr} add r4, r0, #0x0 mov r0, #0x62 lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FreeToHeap mov r0, #0x63 lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FreeToHeap mov r0, #0x61 lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FreeToHeap pop {r4, pc} thumb_func_start FUN_02052ED0 FUN_02052ED0: ; 0x02052ED0 mov r1, #0x61 add r2, r0, #0x0 lsl r1, r1, #0x2 ldr r1, [r2, r1] ldr r3, _02052EE0 ; =FUN_02030A78 mov r0, #0x69 ldr r2, _02052EE4 ; =0x0000066C bx r3 .balign 4 _02052EE0: .word FUN_02030A78 _02052EE4: .word 0x0000066C