pokeheartgold/asm/unk_0205A44C.s
2021-09-16 16:07:39 -04:00

1219 lines
25 KiB
ArmAsm

.include "asm/macros.inc"
.include "global.inc"
.rodata
_020FC7D4:
.byte 0x25, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00
_020FC7DC:
.byte 0x47, 0x00, 0x00, 0x00
.byte 0x83, 0x00, 0x00, 0x00
_020FC7E4:
.byte 0x27, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00
_020FC7EC:
.byte 0x26, 0x00, 0x00, 0x00
.byte 0x62, 0x00, 0x00, 0x00
_020FC7F4:
.byte 0x5C, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00
_020FC7FC:
.byte 0x28, 0x00, 0x00, 0x00
.byte 0x64, 0x00, 0x00, 0x00
_020FC804:
.byte 0x44, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00
.byte 0x81, 0x00, 0x00, 0x00
_020FC814:
.byte 0x2C, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x2D, 0x00, 0x00, 0x00
.byte 0x69, 0x00, 0x00, 0x00
.public _020FC824
_020FC824:
.byte 0x0A, 0x00, 0x0E, 0x00, 0x12, 0x00, 0x16, 0x00, 0x1A, 0x00, 0x1E, 0x00
.byte 0x22, 0x00, 0x26, 0x00, 0x2A, 0x00, 0x2E, 0x00
_020FC838:
.byte 0x31, 0x00, 0x00, 0x00, 0x6D, 0x00, 0x00, 0x00
.byte 0x4B, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00
_020FC850:
.byte 0x33, 0x00, 0x00, 0x00, 0x6F, 0x00, 0x00, 0x00, 0x4D, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00
.byte 0x59, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00
_020FC868:
.byte 0x32, 0x00, 0x00, 0x00, 0x6E, 0x00, 0x00, 0x00
.byte 0x4C, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00
_020FC880:
.byte 0x3C, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00
.byte 0x56, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00
_020FC898:
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF
.byte 0x05, 0x00, 0x00, 0x00
_020FC8B4:
.byte 0x35, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00
.byte 0x72, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00
.byte 0x74, 0x00, 0x00, 0x00
_020FC8D4:
.byte 0x3D, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00
.byte 0x7A, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x7B, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00
.byte 0x7C, 0x00, 0x00, 0x00
_020FC8F4:
.byte 0x4F, 0x00, 0x00, 0x00, 0x8B, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00
.byte 0x8C, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x8D, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00
.byte 0x8E, 0x00, 0x00, 0x00
_020FC914:
.byte 0x5D, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x5E, 0x00, 0x00, 0x00
.byte 0x9A, 0x00, 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, 0x9B, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00
.byte 0x9C, 0x00, 0x00, 0x00
_020FC934:
.byte 0x2B, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00
.byte 0x6C, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00
.byte 0x7F, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00
_020FC95C:
.byte 0x4A, 0x00, 0x00, 0x00
.byte 0x86, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00
.byte 0x75, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x7D, 0x00, 0x00, 0x00, 0x2E, 0x00, 0x00, 0x00
.byte 0x6A, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00
.byte 0x8F, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x8F, 0x00, 0x00, 0x00
_020FC99C:
.byte 0x2C, 0x00, 0x00, 0x00
.byte 0x68, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00
.byte 0x7E, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00, 0x6B, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00
.byte 0x85, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00
.byte 0x90, 0x00, 0x00, 0x00
_020FC9D4:
.byte 0xA9, 0x00, 0x00, 0x00, 0xAA, 0x00, 0x00, 0x00, 0xAB, 0x00, 0x00, 0x00
.byte 0xAC, 0x00, 0x00, 0x00, 0xAD, 0x00, 0x00, 0x00, 0xAE, 0x00, 0x00, 0x00, 0xAF, 0x00, 0x00, 0x00
.byte 0xB0, 0x00, 0x00, 0x00, 0xB1, 0x00, 0x00, 0x00, 0xB2, 0x00, 0x00, 0x00, 0xB3, 0x00, 0x00, 0x00
.byte 0xB4, 0x00, 0x00, 0x00, 0xB5, 0x00, 0x00, 0x00, 0xB6, 0x00, 0x00, 0x00, 0xB7, 0x00, 0x00, 0x00
.byte 0xB8, 0x00, 0x00, 0x00, 0xB9, 0x00, 0x00, 0x00, 0xBA, 0x00, 0x00, 0x00, 0xBB, 0x00, 0x00, 0x00
.byte 0xBC, 0x00, 0x00, 0x00
.text
thumb_func_start sub_0205A44C
sub_0205A44C: ; 0x0205A44C
push {r3, lr}
add r0, r3, #0
add r0, #0x80
ldr r0, [r0]
mov r1, #1
str r1, [r0, #0x2c]
add r3, #0x80
ldrb r1, [r2]
ldr r0, [r3]
str r1, [r0, #0x40]
ldrb r0, [r2]
cmp r0, #4
bne _0205A46A
bl sub_020388E0
_0205A46A:
pop {r3, pc}
thumb_func_end sub_0205A44C
thumb_func_start sub_0205A46C
sub_0205A46C: ; 0x0205A46C
add r3, #0x80
ldr r0, [r3]
mov r1, #1
str r1, [r0, #0x44]
bx lr
.balign 4, 0
thumb_func_end sub_0205A46C
thumb_func_start sub_0205A478
sub_0205A478: ; 0x0205A478
ldr r0, [r0, #0x44]
bx lr
thumb_func_end sub_0205A478
thumb_func_start sub_0205A47C
sub_0205A47C: ; 0x0205A47C
push {r4, lr}
ldr r0, [r0, #0x30]
add r4, r1, #0
cmp r0, #0
bne _0205A494
mov r1, #0
mov r0, #0x68
add r2, r1, #0
bl sub_02037030
add r0, r4, #0
pop {r4, pc}
_0205A494:
mov r0, #0
pop {r4, pc}
thumb_func_end sub_0205A47C
thumb_func_start sub_0205A498
sub_0205A498: ; 0x0205A498
push {r4, lr}
add r4, r2, #0
bl sub_0203769C
mov r1, #1
eor r0, r1
bl sub_02034818
ldr r0, _0205A4B0 ; =0x0000066A
mov r1, #1
strh r1, [r4, r0]
pop {r4, pc}
.balign 4, 0
_0205A4B0: .word 0x0000066A
thumb_func_end sub_0205A498
thumb_func_start sub_0205A4B4
sub_0205A4B4: ; 0x0205A4B4
add r1, #0x80
ldr r1, [r1]
lsl r0, r0, #2
add r1, r1, r0
mov r0, #0x62
lsl r0, r0, #2
ldr r0, [r1, r0]
bx lr
thumb_func_end sub_0205A4B4
thumb_func_start sub_0205A4C4
sub_0205A4C4: ; 0x0205A4C4
add r3, #0x80
ldr r1, [r3]
ldrb r2, [r2]
add r1, r1, r0
ldr r0, _0205A4D4 ; =0x00000176
strb r2, [r1, r0]
bx lr
nop
_0205A4D4: .word 0x00000176
thumb_func_end sub_0205A4C4
thumb_func_start sub_0205A4D8
sub_0205A4D8: ; 0x0205A4D8
push {r4, lr}
add r4, r0, #0
bl sub_0203769C
ldr r2, _0205A504 ; =0x00000176
add r1, r4, r0
ldrb r1, [r1, r2]
cmp r1, #2
bne _0205A4EE
mov r0, #1
pop {r4, pc}
_0205A4EE:
mov r1, #1
eor r0, r1
add r0, r4, r0
ldrb r0, [r0, r2]
cmp r0, #2
bne _0205A4FE
mov r0, #2
pop {r4, pc}
_0205A4FE:
mov r0, #0
pop {r4, pc}
nop
_0205A504: .word 0x00000176
thumb_func_end sub_0205A4D8
thumb_func_start sub_0205A508
sub_0205A508: ; 0x0205A508
push {r3, lr}
add r1, sp, #0
strb r0, [r1]
mov r0, #0x65
add r1, sp, #0
mov r2, #1
bl sub_02037030
pop {r3, pc}
.balign 4, 0
thumb_func_end sub_0205A508
thumb_func_start sub_0205A51C
sub_0205A51C: ; 0x0205A51C
ldr r3, _0205A540 ; =_020FC824
mov r2, #0
_0205A520:
ldrh r1, [r3]
cmp r1, r0
bgt _0205A530
add r1, r1, #4
cmp r1, r0
ble _0205A530
add r0, r2, #0
bx lr
_0205A530:
add r2, r2, #1
add r3, r3, #2
cmp r2, #0xa
blt _0205A520
mov r0, #0
mvn r0, r0
bx lr
nop
_0205A540: .word _020FC824
thumb_func_end sub_0205A51C
thumb_func_start sub_0205A544
sub_0205A544: ; 0x0205A544
push {r3, r4, r5, r6, r7, lr}
add r4, r1, #0
add r6, r0, #0
cmp r4, #9
ble _0205A564
add r0, r4, #0
bl sub_0205A51C
add r5, r0, #0
mov r0, #0
mvn r0, r0
cmp r4, r0
bne _0205A566
bl GF_AssertFail
b _0205A566
_0205A564:
add r5, r4, #0
_0205A566:
mov r0, #0x11
lsl r0, r0, #4
add r6, r6, r0
lsl r7, r5, #2
ldr r0, [r6, r7]
cmp r0, #0
bne _0205A578
mov r0, #0x28
pop {r3, r4, r5, r6, r7, pc}
_0205A578:
add r0, r5, #0
bl sub_02035798
ldr r5, [r6, r7]
add r5, #0x50
add r5, #0x30
cmp r0, #0
bne _0205A58C
mov r0, #0x28
pop {r3, r4, r5, r6, r7, pc}
_0205A58C:
cmp r4, #9
ble _0205A5A6
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, #7
b _0205A5AC
_0205A5A6:
bl PlayerProfile_GetTrainerGender
add r4, r0, #0
_0205A5AC:
ldrb r0, [r5, #0x1c]
cmp r0, #0xd
bhi _0205A68A
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_0205A5BE: ; jump table
.short _0205A68A - _0205A5BE - 2 ; case 0
.short _0205A636 - _0205A5BE - 2 ; case 1
.short _0205A652 - _0205A5BE - 2 ; case 2
.short _0205A66E - _0205A5BE - 2 ; case 3
.short _0205A5DA - _0205A5BE - 2 ; case 4
.short _0205A5E2 - _0205A5BE - 2 ; case 5
.short _0205A5FE - _0205A5BE - 2 ; case 6
.short _0205A61A - _0205A5BE - 2 ; case 7
.short _0205A636 - _0205A5BE - 2 ; case 8
.short _0205A652 - _0205A5BE - 2 ; case 9
.short _0205A66E - _0205A5BE - 2 ; case 10
.short _0205A5DA - _0205A5BE - 2 ; case 11
.short _0205A66E - _0205A5BE - 2 ; case 12
.short _0205A66E - _0205A5BE - 2 ; case 13
_0205A5DA:
ldr r0, _0205A690 ; =_020FC7FC
lsl r1, r4, #2
ldr r0, [r0, r1]
pop {r3, r4, r5, r6, r7, pc}
_0205A5E2:
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, #3
ldr r0, _0205A694 ; =_020FC814
lsl r1, r4, #2
add r0, r0, r2
ldr r0, [r1, r0]
pop {r3, r4, r5, r6, r7, pc}
_0205A5FE:
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, #3
ldr r0, _0205A698 ; =_020FC8D4
lsl r1, r4, #2
add r0, r0, r2
ldr r0, [r1, r0]
pop {r3, r4, r5, r6, r7, pc}
_0205A61A:
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, #3
ldr r0, _0205A69C ; =_020FC804
lsl r1, r4, #2
add r0, r0, r2
ldr r0, [r1, r0]
pop {r3, r4, r5, r6, r7, pc}
_0205A636:
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, #3
ldr r0, _0205A6A0 ; =_020FC8B4
lsl r1, r4, #2
add r0, r0, r2
ldr r0, [r1, r0]
pop {r3, r4, r5, r6, r7, pc}
_0205A652:
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, #3
ldr r0, _0205A6A4 ; =_020FC8F4
lsl r1, r4, #2
add r0, r0, r2
ldr r0, [r1, r0]
pop {r3, r4, r5, r6, r7, pc}
_0205A66E:
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, #3
ldr r0, _0205A6A8 ; =_020FC914
lsl r1, r4, #2
add r0, r0, r2
ldr r0, [r1, r0]
pop {r3, r4, r5, r6, r7, pc}
_0205A68A:
mov r0, #0x28
pop {r3, r4, r5, r6, r7, pc}
nop
_0205A690: .word _020FC7FC
_0205A694: .word _020FC814
_0205A698: .word _020FC8D4
_0205A69C: .word _020FC804
_0205A6A0: .word _020FC8B4
_0205A6A4: .word _020FC8F4
_0205A6A8: .word _020FC914
thumb_func_end sub_0205A544
thumb_func_start sub_0205A6AC
sub_0205A6AC: ; 0x0205A6AC
push {r3, r4, r5, r6, r7, lr}
str r0, [sp]
bl sub_0203769C
bl sub_020348A8
lsl r0, r0, #0x18
lsr r7, r0, #0x18
bl sub_0203769C
mov r1, #1
eor r0, r1
bl sub_020348A8
lsl r0, r0, #0x18
lsr r4, r0, #0x18
bl sub_0203769C
bl sub_020348CC
lsl r0, r0, #0x18
lsr r6, r0, #0x18
bl sub_0203769C
mov r1, #1
eor r0, r1
bl sub_020348CC
lsl r0, r0, #0x18
lsr r5, r0, #0x18
cmp r4, #0
bne _0205A6F0
mov r0, #0xf
pop {r3, r4, r5, r6, r7, pc}
_0205A6F0:
beq _0205A70C
ldr r0, [sp]
mov r1, #3
add r2, r4, #0
bl BufferCountryName
cmp r5, #0
beq _0205A70C
ldr r0, [sp]
mov r1, #4
add r2, r4, #0
add r3, r5, #0
bl BufferCityName
_0205A70C:
cmp r7, r4
beq _0205A724
cmp r5, #0
bne _0205A718
mov r0, #0xd
pop {r3, r4, r5, r6, r7, pc}
_0205A718:
cmp r6, r5
bne _0205A720
mov r0, #0xd
pop {r3, r4, r5, r6, r7, pc}
_0205A720:
mov r0, #0xc
pop {r3, r4, r5, r6, r7, pc}
_0205A724:
cmp r6, r5
beq _0205A72C
mov r0, #0xe
pop {r3, r4, r5, r6, r7, pc}
_0205A72C:
mov r0, #0xf
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end sub_0205A6AC
thumb_func_start sub_0205A730
sub_0205A730: ; 0x0205A730
push {r3, lr}
cmp r0, #0
beq _0205A742
lsl r2, r0, #3
ldr r0, _0205A74C ; =_020FC99C
lsl r1, r1, #2
add r0, r0, r2
ldr r0, [r1, r0]
pop {r3, pc}
_0205A742:
add r0, r2, #0
bl sub_0205A6AC
pop {r3, pc}
nop
_0205A74C: .word _020FC99C
thumb_func_end sub_0205A730
thumb_func_start sub_0205A750
sub_0205A750: ; 0x0205A750
push {r4, r5, r6, lr}
add r4, r2, #0
add r5, r0, #0
add r6, r3, #0
cmp r4, #0
bne _0205A764
sub r1, r1, #1
bl sub_0205A544
pop {r4, r5, r6, pc}
_0205A764:
sub r0, r1, #1
bl sub_02035798
cmp r0, #0
bne _0205A780
mov r0, #1
add r1, r0, #0
bl sub_020398D4
mov r0, #1
bl sub_02039AD8
mov r0, #0
pop {r4, r5, r6, pc}
_0205A780:
bl PlayerProfile_GetTrainerGender
add r1, r0, #0
cmp r4, #0x1a
bhi _0205A860
add r0, r4, r4
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_0205A796: ; jump table
.short _0205A860 - _0205A796 - 2 ; case 0
.short _0205A7CC - _0205A796 - 2 ; case 1
.short _0205A7D8 - _0205A796 - 2 ; case 2
.short _0205A804 - _0205A796 - 2 ; case 3
.short _0205A804 - _0205A796 - 2 ; case 4
.short _0205A804 - _0205A796 - 2 ; case 5
.short _0205A804 - _0205A796 - 2 ; case 6
.short _0205A804 - _0205A796 - 2 ; case 7
.short _0205A804 - _0205A796 - 2 ; case 8
.short _0205A7E0 - _0205A796 - 2 ; case 9
.short _0205A812 - _0205A796 - 2 ; case 10
.short _0205A812 - _0205A796 - 2 ; case 11
.short _0205A812 - _0205A796 - 2 ; case 12
.short _0205A820 - _0205A796 - 2 ; case 13
.short _0205A820 - _0205A796 - 2 ; case 14
.short _0205A820 - _0205A796 - 2 ; case 15
.short _0205A82E - _0205A796 - 2 ; case 16
.short _0205A82E - _0205A796 - 2 ; case 17
.short _0205A82E - _0205A796 - 2 ; case 18
.short _0205A7F6 - _0205A796 - 2 ; case 19
.short _0205A7F6 - _0205A796 - 2 ; case 20
.short _0205A7F6 - _0205A796 - 2 ; case 21
.short _0205A83C - _0205A796 - 2 ; case 22
.short _0205A844 - _0205A796 - 2 ; case 23
.short _0205A84C - _0205A796 - 2 ; case 24
.short _0205A854 - _0205A796 - 2 ; case 25
.short _0205A858 - _0205A796 - 2 ; case 26
_0205A7CC:
ldr r0, [r5, #0x34]
add r2, r6, #0
sub r0, r0, #1
bl sub_0205A730
pop {r4, r5, r6, pc}
_0205A7D8:
ldr r0, _0205A868 ; =_020FC7D4
lsl r1, r1, #2
ldr r0, [r0, r1]
pop {r4, r5, r6, pc}
_0205A7E0:
ldr r0, [r5, #0x34]
cmp r0, #0
bne _0205A7EA
mov r0, #0
pop {r4, r5, r6, pc}
_0205A7EA:
lsl r2, r0, #3
ldr r0, _0205A86C ; =_020FC95C
lsl r1, r1, #2
add r0, r0, r2
ldr r0, [r1, r0]
pop {r4, r5, r6, pc}
_0205A7F6:
sub r4, #0x13
ldr r0, _0205A870 ; =_020FC880
lsl r2, r4, #3
lsl r1, r1, #2
add r0, r0, r2
ldr r0, [r1, r0]
pop {r4, r5, r6, pc}
_0205A804:
sub r0, r4, #3
lsl r2, r0, #3
ldr r0, _0205A874 ; =_020FC934
lsl r1, r1, #2
add r0, r0, r2
ldr r0, [r1, r0]
pop {r4, r5, r6, pc}
_0205A812:
sub r4, #0xa
ldr r0, _0205A878 ; =_020FC838
lsl r2, r4, #3
lsl r1, r1, #2
add r0, r0, r2
ldr r0, [r1, r0]
pop {r4, r5, r6, pc}
_0205A820:
sub r4, #0xd
ldr r0, _0205A87C ; =_020FC850
lsl r2, r4, #3
lsl r1, r1, #2
add r0, r0, r2
ldr r0, [r1, r0]
pop {r4, r5, r6, pc}
_0205A82E:
sub r4, #0x10
ldr r0, _0205A880 ; =_020FC868
lsl r2, r4, #3
lsl r1, r1, #2
add r0, r0, r2
ldr r0, [r1, r0]
pop {r4, r5, r6, pc}
_0205A83C:
ldr r0, _0205A884 ; =_020FC7E4
lsl r1, r1, #2
ldr r0, [r0, r1]
pop {r4, r5, r6, pc}
_0205A844:
ldr r0, _0205A888 ; =_020FC7DC
lsl r1, r1, #2
ldr r0, [r0, r1]
pop {r4, r5, r6, pc}
_0205A84C:
ldr r0, _0205A88C ; =_020FC7EC
lsl r1, r1, #2
ldr r0, [r0, r1]
pop {r4, r5, r6, pc}
_0205A854:
mov r0, #0xda
pop {r4, r5, r6, pc}
_0205A858:
ldr r0, _0205A890 ; =_020FC7F4
lsl r1, r1, #2
ldr r0, [r0, r1]
pop {r4, r5, r6, pc}
_0205A860:
bl GF_AssertFail
mov r0, #0x28
pop {r4, r5, r6, pc}
.balign 4, 0
_0205A868: .word _020FC7D4
_0205A86C: .word _020FC95C
_0205A870: .word _020FC880
_0205A874: .word _020FC934
_0205A878: .word _020FC838
_0205A87C: .word _020FC850
_0205A880: .word _020FC868
_0205A884: .word _020FC7E4
_0205A888: .word _020FC7DC
_0205A88C: .word _020FC7EC
_0205A890: .word _020FC7F4
thumb_func_end sub_0205A750
thumb_func_start sub_0205A894
sub_0205A894: ; 0x0205A894
push {r4, lr}
bl sub_0203769C
mov r1, #1
eor r0, r1
bl sub_02034818
add r4, r0, #0
bne _0205A8AA
bl GF_AssertFail
_0205A8AA:
add r0, r4, #0
bl PlayerProfile_GetVersion
pop {r4, pc}
.balign 4, 0
thumb_func_end sub_0205A894
thumb_func_start sub_0205A8B4
sub_0205A8B4: ; 0x0205A8B4
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
mov r7, #1
_0205A8BA:
add r0, r7, #0
sub r4, r7, #1
bl sub_02034818
add r6, r0, #0
beq _0205A8F2
bl sub_0203769C
cmp r0, #0
bne _0205A8FC
add r0, r6, #0
bl PlayerProfile_GetTrainerID
lsl r1, r4, #2
str r0, [r5, r1]
add r0, r6, #0
bl PlayerProfile_GetAvatar
str r0, [sp]
add r0, r6, #0
bl PlayerProfile_GetTrainerGender
lsl r1, r0, #7
ldr r0, [sp]
orr r1, r0
add r0, r5, r4
strb r1, [r0, #0x18]
b _0205A8FC
_0205A8F2:
lsl r1, r4, #2
mov r0, #0
str r0, [r5, r1]
add r1, r5, r4
strb r0, [r1, #0x18]
_0205A8FC:
add r7, r7, #1
cmp r7, #5
blt _0205A8BA
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end sub_0205A8B4
thumb_func_start sub_0205A904
sub_0205A904: ; 0x0205A904
push {r4, lr}
sub sp, #0x20
add r4, r0, #0
add r0, sp, #0
mov r1, #0
mov r2, #0x20
bl MI_CpuFill8
cmp r4, #0xd
bhi _0205A98E
add r0, r4, r4
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_0205A924: ; jump table
.short _0205A98E - _0205A924 - 2 ; case 0
.short _0205A95E - _0205A924 - 2 ; case 1
.short _0205A972 - _0205A924 - 2 ; case 2
.short _0205A986 - _0205A924 - 2 ; case 3
.short _0205A98E - _0205A924 - 2 ; case 4
.short _0205A94A - _0205A924 - 2 ; case 5
.short _0205A94A - _0205A924 - 2 ; case 6
.short _0205A94A - _0205A924 - 2 ; case 7
.short _0205A954 - _0205A924 - 2 ; case 8
.short _0205A968 - _0205A924 - 2 ; case 9
.short _0205A97C - _0205A924 - 2 ; case 10
.short _0205A940 - _0205A924 - 2 ; case 11
.short _0205A97C - _0205A924 - 2 ; case 12
.short _0205A986 - _0205A924 - 2 ; case 13
_0205A940:
add r0, sp, #0
mov r1, #2
bl sub_0205A8B4
b _0205A98E
_0205A94A:
add r0, sp, #0
mov r1, #2
bl sub_0205A8B4
b _0205A98E
_0205A954:
add r0, sp, #0
mov r1, #5
bl sub_0205A8B4
b _0205A98E
_0205A95E:
add r0, sp, #0
mov r1, #4
bl sub_0205A8B4
b _0205A98E
_0205A968:
add r0, sp, #0
mov r1, #5
bl sub_0205A8B4
b _0205A98E
_0205A972:
add r0, sp, #0
mov r1, #4
bl sub_0205A8B4
b _0205A98E
_0205A97C:
add r0, sp, #0
mov r1, #5
bl sub_0205A8B4
b _0205A98E
_0205A986:
add r0, sp, #0
mov r1, #4
bl sub_0205A8B4
_0205A98E:
add r0, sp, #0
strb r4, [r0, #0x1c]
add r0, sp, #0
bl sub_02035854
bl sub_0203588C
add sp, #0x20
pop {r4, pc}
thumb_func_end sub_0205A904
thumb_func_start sub_0205A9A0
sub_0205A9A0: ; 0x0205A9A0
push {r4, r5, r6, lr}
add r5, r0, #0
mov r3, #0
mov r0, #0x11
add r6, r1, #0
add r2, r3, #0
add r4, r5, #0
lsl r0, r0, #4
_0205A9B0:
ldr r1, [r4, r0]
cmp r1, #0
beq _0205A9B8
add r3, r3, #1
_0205A9B8:
add r2, r2, #1
add r4, r4, #4
cmp r2, #0xa
blt _0205A9B0
cmp r3, #0
beq _0205A9C8
mov r0, #0xa6
pop {r4, r5, r6, pc}
_0205A9C8:
mov r0, #0x5e
lsl r0, r0, #2
add r0, r5, r0
bl MailMsg_IsInit
cmp r0, #0
bne _0205A9DA
mov r0, #0xa7
pop {r4, r5, r6, pc}
_0205A9DA:
mov r0, #0x5e
lsl r0, r0, #2
add r0, r5, r0
bl MailMsg_GetMsgBank
cmp r0, #4
beq _0205AA0C
ldr r0, [r5, #8]
bl PlayerProfile_GetAvatar
add r4, r0, #0
ldr r0, [r5, #8]
bl PlayerProfile_GetTrainerGender
add r1, r4, #0
mov r2, #2
bl sub_0205B46C
add r2, r0, #0
add r0, r6, #0
mov r1, #0
bl BufferTrainerClassName
mov r0, #0xa8
pop {r4, r5, r6, pc}
_0205AA0C:
mov r0, #0x5e
lsl r0, r0, #2
add r0, r5, r0
bl MailMsg_GetMsgNo
add r4, r0, #0
cmp r4, #0x14
blt _0205AA1E
mov r4, #0
_0205AA1E:
mov r0, #0x5e
lsl r0, r0, #2
add r0, r5, r0
mov r1, #0
bl MailMsg_GetFieldI
add r2, r0, #0
ldr r0, _0205AA44 ; =0x0000FFFF
cmp r2, r0
beq _0205AA3A
add r0, r6, #0
mov r1, #0
bl sub_0200C528
_0205AA3A:
ldr r0, _0205AA48 ; =_020FC9D4
lsl r1, r4, #2
ldr r0, [r0, r1]
pop {r4, r5, r6, pc}
nop
_0205AA44: .word 0x0000FFFF
_0205AA48: .word _020FC9D4
thumb_func_end sub_0205A9A0
thumb_func_start sub_0205AA4C
sub_0205AA4C: ; 0x0205AA4C
push {r3, r4}
mov r3, #0
strb r3, [r0, #0x1c]
add r4, r0, #0
add r2, r3, #0
_0205AA56:
stmia r4!, {r2}
add r1, r0, r3
strb r2, [r1, #0x18]
strb r2, [r1, #0x10]
add r3, r3, #1
strb r2, [r1, #0x14]
cmp r3, #4
blt _0205AA56
pop {r3, r4}
bx lr
.balign 4, 0
thumb_func_end sub_0205AA4C
thumb_func_start sub_0205AA6C
sub_0205AA6C: ; 0x0205AA6C
push {r4, lr}
add r4, r0, #0
mov r0, #0x5e
lsl r0, r0, #2
add r0, r4, r0
bl MailMsg_copy
mov r0, #6
mov r1, #1
lsl r0, r0, #6
str r1, [r4, r0]
pop {r4, pc}
thumb_func_end sub_0205AA6C
thumb_func_start sub_0205AA84
sub_0205AA84: ; 0x0205AA84
mov r1, #6
lsl r1, r1, #6
ldr r2, [r0, r1]
cmp r2, #0
bne _0205AA92
mov r0, #0
bx lr
_0205AA92:
mov r2, #0
str r2, [r0, r1]
sub r1, #8
add r0, r0, r1
bx lr
thumb_func_end sub_0205AA84
thumb_func_start sub_0205AA9C
sub_0205AA9C: ; 0x0205AA9C
push {r4, r5, r6, r7, lr}
sub sp, #0xc
add r7, r2, #0
add r5, r0, #0
add r4, r1, #0
str r3, [sp, #8]
ldr r2, _0205AB80 ; =0x000002E2
mov r0, #1
mov r1, #0x1b
mov r3, #4
bl NewMsgDataFromNarc
add r6, r0, #0
cmp r4, #0
bne _0205AAC2
sub r0, r7, #1
bl sub_02035798
b _0205AACE
_0205AAC2:
bl sub_0203769C
mov r1, #1
eor r0, r1
bl sub_02034818
_0205AACE:
add r4, r0, #0
cmp r4, #0
bne _0205AADE
add r0, r6, #0
bl DestroyMsgData
add sp, #0xc
pop {r4, r5, r6, r7, pc}
_0205AADE:
add r0, r5, #0
mov r1, #0
add r2, r4, #0
bl BufferPlayersName
ldr r2, [sp, #8]
add r0, r5, #0
mov r1, #1
bl BufferPlayersName
add r0, r4, #0
bl PlayerProfile_GetLanguage
add r4, r0, #0
cmp r4, #1
blt _0205AB1C
cmp r4, #7
bgt _0205AB1C
sub r0, r4, #1
lsl r0, r0, #0x10
lsr r0, r0, #0x10
cmp r0, #7
bhs _0205AB1C
lsl r1, r0, #2
ldr r0, _0205AB84 ; =_020FC898
ldr r1, [r0, r1]
cmp r1, #0
blt _0205AB1C
ldr r0, [sp, #0x20]
bl sub_02015CFC
_0205AB1C:
cmp r4, #7
bhi _0205AB54
add r0, r4, r4
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_0205AB2C: ; jump table
.short _0205AB54 - _0205AB2C - 2 ; case 0
.short _0205AB3C - _0205AB2C - 2 ; case 1
.short _0205AB40 - _0205AB2C - 2 ; case 2
.short _0205AB44 - _0205AB2C - 2 ; case 3
.short _0205AB48 - _0205AB2C - 2 ; case 4
.short _0205AB4C - _0205AB2C - 2 ; case 5
.short _0205AB54 - _0205AB2C - 2 ; case 6
.short _0205AB50 - _0205AB2C - 2 ; case 7
_0205AB3C:
mov r1, #0xd3
b _0205AB56
_0205AB40:
mov r1, #0xd4
b _0205AB56
_0205AB44:
mov r1, #0xd5
b _0205AB56
_0205AB48:
mov r1, #0xd6
b _0205AB56
_0205AB4C:
mov r1, #0xd7
b _0205AB56
_0205AB50:
mov r1, #0xd8
b _0205AB56
_0205AB54:
mov r1, #0xd9
_0205AB56:
add r0, r6, #0
bl NewString_ReadMsgData
add r7, r0, #0
mov r0, #1
str r0, [sp]
add r0, r5, #0
mov r1, #2
add r2, r7, #0
mov r3, #0
str r4, [sp, #4]
bl BufferString
add r0, r7, #0
bl FreeToHeap
add r0, r6, #0
bl DestroyMsgData
add sp, #0xc
pop {r4, r5, r6, r7, pc}
.balign 4, 0
_0205AB80: .word 0x000002E2
_0205AB84: .word _020FC898
thumb_func_end sub_0205AA9C
thumb_func_start sub_0205AB88
sub_0205AB88: ; 0x0205AB88
push {r4, lr}
sub sp, #0x20
add r4, r0, #0
add r0, sp, #0
bl sub_0205AA4C
mov r1, #0
add r0, sp, #0
strb r1, [r0, #0x1c]
add r0, r4, #0
bl sub_02035838
add r0, sp, #0
bl sub_02035854
bl sub_0203588C
add sp, #0x20
pop {r4, pc}
.balign 4, 0
thumb_func_end sub_0205AB88
thumb_func_start sub_0205ABB0
sub_0205ABB0: ; 0x0205ABB0
mov r1, #0
str r1, [r0, #0x30]
str r1, [r0, #0x40]
str r1, [r0, #0x44]
bx lr
.balign 4, 0
thumb_func_end sub_0205ABB0
thumb_func_start sub_0205ABBC
sub_0205ABBC: ; 0x0205ABBC
mov r2, #0
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, #2
strh r2, [r0, r1]
add r1, #0xc
str r2, [r0, r1]
str r2, [r0, #0x44]
bx lr
.balign 4, 0
thumb_func_end sub_0205ABBC
thumb_func_start sub_0205ABD8
sub_0205ABD8: ; 0x0205ABD8
push {r3, r4, r5, lr}
sub sp, #8
add r4, r0, #0
mov r0, #0
bl sub_020691A8
mov r1, #0x61
lsl r1, r1, #2
str r0, [r4, r1]
mov r0, #0
bl sub_020691A8
mov r1, #0x62
lsl r1, r1, #2
str r0, [r4, r1]
mov r0, #0
bl sub_020691A8
mov r1, #0x63
lsl r1, r1, #2
str r0, [r4, r1]
ldr r0, [r4, #8]
bl PlayerProfile_GetTrainerGender
add r5, r0, #0
ldr r0, [r4, #8]
bl PlayerProfile_GetAvatar
add r1, r0, #0
add r0, r5, #0
mov r2, #0
bl sub_0205B46C
add r3, r0, #0
ldr r0, [r4]
lsl r3, r3, #0x18
str r0, [sp]
mov r0, #0x61
lsl r0, r0, #2
ldr r0, [r4, r0]
lsr r3, r3, #0x18
str r0, [sp, #4]
mov r0, #0
add r1, r0, #0
add r2, r0, #0
bl sub_02068FC8
bl sub_0203769C
mov r1, #1
eor r0, r1
lsl r0, r0, #2
add r1, r4, r0
mov r0, #0x62
lsl r0, r0, #2
ldr r0, [r1, r0]
add sp, #8
pop {r3, r4, r5, pc}
thumb_func_end sub_0205ABD8
thumb_func_start sub_0205AC4C
sub_0205AC4C: ; 0x0205AC4C
push {r4, lr}
add r4, r0, #0
mov r0, #0x62
lsl r0, r0, #2
ldr r0, [r4, r0]
bl FreeToHeap
mov r0, #0x63
lsl r0, r0, #2
ldr r0, [r4, r0]
bl FreeToHeap
mov r0, #0x61
lsl r0, r0, #2
ldr r0, [r4, r0]
bl FreeToHeap
pop {r4, pc}
thumb_func_end sub_0205AC4C
thumb_func_start sub_0205AC70
sub_0205AC70: ; 0x0205AC70
mov r1, #0x61
add r2, r0, #0
lsl r1, r1, #2
ldr r1, [r2, r1]
ldr r3, _0205AC80 ; =sub_02036FD8
mov r0, #0x69
ldr r2, _0205AC84 ; =0x0000066C
bx r3
.balign 4, 0
_0205AC80: .word sub_02036FD8
_0205AC84: .word 0x0000066C
thumb_func_end sub_0205AC70