pokeheartgold/asm/script_buffers.s
2021-11-25 19:47:50 -05:00

2354 lines
44 KiB
ArmAsm

.include "asm/macros.inc"
.include "global.inc"
.rodata
_020F5C1C:
.byte 0x17, 0x01, 0x19, 0x01
.byte 0x18, 0x01, 0x00, 0x00
_020F5C24:
.byte 0x40, 0x01
_020F5C26:
.byte 0x08, 0x00, 0x60, 0x01, 0x10, 0x00, 0xA0, 0x01, 0x10, 0x00
.byte 0xE0, 0x01, 0x10, 0x00, 0x20, 0x02, 0x10, 0x00, 0x60, 0x02, 0x10, 0x00, 0xA0, 0x02, 0x10, 0x00
.text
thumb_func_start ScrStrBufs_new
ScrStrBufs_new: ; 0x0200BD08
ldr r3, _0200BD14 ; =ScrStrBufs_new_custom
add r2, r0, #0
mov r0, #8
mov r1, #0x20
bx r3
nop
_0200BD14: .word ScrStrBufs_new_custom
thumb_func_end ScrStrBufs_new
thumb_func_start ScrStrBufs_new_custom
ScrStrBufs_new_custom: ; 0x0200BD18
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
add r7, r0, #0
str r1, [sp]
str r2, [sp, #4]
bne _0200BD28
bl GF_AssertFail
_0200BD28:
ldr r0, [sp]
cmp r0, #0
bne _0200BD32
bl GF_AssertFail
_0200BD32:
ldr r0, [sp, #4]
mov r1, #0x10
bl AllocFromHeapAtEnd
add r4, r0, #0
beq _0200BD98
ldr r0, [sp, #4]
str r7, [r4]
str r0, [r4, #4]
ldr r0, [sp]
ldr r1, [sp, #4]
bl String_ctor
str r0, [r4, #0xc]
cmp r0, #0
beq _0200BD98
ldr r0, [sp, #4]
lsl r1, r7, #3
bl AllocFromHeapAtEnd
str r0, [r4, #8]
cmp r0, #0
beq _0200BD98
mov r6, #0
cmp r7, #0
bls _0200BD8E
add r5, r6, #0
_0200BD68:
add r0, r0, r5
bl ScrStrBufs_InitSub
ldr r0, [sp]
ldr r1, [sp, #4]
bl String_ctor
ldr r1, [r4, #8]
add r1, r1, r5
str r0, [r1, #4]
ldr r0, [r4, #8]
add r1, r0, r5
ldr r1, [r1, #4]
cmp r1, #0
beq _0200BD8E
add r6, r6, #1
add r5, #8
cmp r6, r7
blo _0200BD68
_0200BD8E:
cmp r6, r7
bne _0200BD98
add sp, #8
add r0, r4, #0
pop {r3, r4, r5, r6, r7, pc}
_0200BD98:
mov r0, #0
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end ScrStrBufs_new_custom
thumb_func_start ScrStrBufs_delete
ScrStrBufs_delete: ; 0x0200BDA0
push {r4, r5, r6, lr}
add r5, r0, #0
ldr r0, [r5]
cmp r0, #0
bne _0200BDAE
bl GF_AssertFail
_0200BDAE:
ldr r0, [r5, #8]
cmp r0, #0
beq _0200BDDC
ldr r0, [r5]
mov r6, #0
cmp r0, #0
bls _0200BDD6
add r4, r6, #0
_0200BDBE:
ldr r0, [r5, #8]
add r0, r0, r4
ldr r0, [r0, #4]
cmp r0, #0
beq _0200BDD6
bl String_dtor
ldr r0, [r5]
add r6, r6, #1
add r4, #8
cmp r6, r0
blo _0200BDBE
_0200BDD6:
ldr r0, [r5, #8]
bl FreeToHeap
_0200BDDC:
ldr r0, [r5, #0xc]
cmp r0, #0
beq _0200BDE6
bl String_dtor
_0200BDE6:
mov r0, #0
str r0, [r5]
add r0, r5, #0
bl FreeToHeap
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_end ScrStrBufs_delete
thumb_func_start ScrStrBufs_InitSub
ScrStrBufs_InitSub: ; 0x0200BDF4
bx lr
.balign 4, 0
thumb_func_end ScrStrBufs_InitSub
thumb_func_start SetStringAsPlaceholder
SetStringAsPlaceholder: ; 0x0200BDF8
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
ldr r0, [r5]
add r6, r1, #0
add r7, r2, #0
add r4, r3, #0
cmp r6, r0
blo _0200BE0C
bl GF_AssertFail
_0200BE0C:
ldr r0, [r5]
cmp r6, r0
bhs _0200BE3A
cmp r4, #0
beq _0200BE2C
ldrb r0, [r4]
ldr r3, [r5, #8]
lsl r2, r6, #3
strb r0, [r3, r2]
ldrb r0, [r4, #1]
add r1, r3, r2
strb r0, [r1, #1]
ldrb r0, [r4, #2]
strb r0, [r1, #2]
ldrb r0, [r4, #3]
strb r0, [r1, #3]
_0200BE2C:
ldr r1, [r5, #8]
lsl r0, r6, #3
add r0, r1, r0
ldr r0, [r0, #4]
add r1, r7, #0
bl StringCopy
_0200BE3A:
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end SetStringAsPlaceholder
thumb_func_start BufferString
BufferString: ; 0x0200BE3C
push {r3, lr}
mov r3, #0
bl SetStringAsPlaceholder
pop {r3, pc}
.balign 4, 0
thumb_func_end BufferString
thumb_func_start BufferPlayersName
BufferPlayersName: ; 0x0200BE48
push {r3, r4, r5, lr}
add r5, r0, #0
add r0, r2, #0
add r4, r1, #0
bl PlayerProfile_GetNamePtr
add r1, r0, #0
ldr r0, [r5, #0xc]
bl CopyU16ArrayToString
ldr r2, [r5, #0xc]
add r0, r5, #0
add r1, r4, #0
mov r3, #0
bl SetStringAsPlaceholder
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_end BufferPlayersName
thumb_func_start BufferRivalsName
BufferRivalsName: ; 0x0200BE6C
push {r3, r4, r5, lr}
add r5, r0, #0
add r0, r2, #0
add r4, r1, #0
bl Sav2_Misc_const_get
bl Sav2_Misc_RivalName_const_get
add r1, r0, #0
ldr r0, [r5, #0xc]
bl CopyU16ArrayToString
ldr r2, [r5, #0xc]
add r0, r5, #0
add r1, r4, #0
mov r3, #0
bl SetStringAsPlaceholder
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_end BufferRivalsName
thumb_func_start BufferFriendsName
BufferFriendsName: ; 0x0200BE94
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r0, r2, #0
add r6, r1, #0
bl Sav2_PlayerData_GetProfileAddr
add r7, r0, #0
ldr r2, _0200BEE4 ; =0x000001BD
ldr r3, [r5, #4]
mov r0, #1
mov r1, #0x1b
bl NewMsgDataFromNarc
add r4, r0, #0
add r0, r7, #0
bl PlayerProfile_GetTrainerGender
cmp r0, #0
bne _0200BEC6
ldr r2, [r5, #0xc]
add r0, r4, #0
mov r1, #1
bl ReadMsgDataIntoString
b _0200BED0
_0200BEC6:
ldr r2, [r5, #0xc]
add r0, r4, #0
mov r1, #0
bl ReadMsgDataIntoString
_0200BED0:
ldr r2, [r5, #0xc]
add r0, r5, #0
add r1, r6, #0
mov r3, #0
bl SetStringAsPlaceholder
add r0, r4, #0
bl DestroyMsgData
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_0200BEE4: .word 0x000001BD
thumb_func_end BufferFriendsName
thumb_func_start BufferSpeciesName
BufferSpeciesName: ; 0x0200BEE8
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
ldr r3, [r5, #4]
add r4, r1, #0
add r6, r2, #0
mov r0, #1
mov r1, #0x1b
mov r2, #0xed
bl NewMsgDataFromNarc
ldr r2, [r5, #0xc]
add r1, r6, #0
add r7, r0, #0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0
add r1, r4, #0
mov r3, #0
bl SetStringAsPlaceholder
add r0, r7, #0
bl DestroyMsgData
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end BufferSpeciesName
thumb_func_start BufferBoxMonSpeciesName
BufferBoxMonSpeciesName: ; 0x0200BF1C
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
add r0, r2, #0
mov r1, #5
mov r2, #0
bl GetBoxMonData
add r2, r0, #0
lsl r2, r2, #0x10
add r0, r5, #0
add r1, r4, #0
lsr r2, r2, #0x10
bl BufferSpeciesName
pop {r3, r4, r5, pc}
thumb_func_end BufferBoxMonSpeciesName
thumb_func_start BufferBoxMonSpeciesNameWithArticle
BufferBoxMonSpeciesNameWithArticle: ; 0x0200BF3C
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
add r0, r2, #0
mov r1, #5
mov r2, #0
bl GetBoxMonData
add r2, r0, #0
add r0, r5, #0
add r1, r4, #0
bl BufferSpeciesNameWithArticle
pop {r3, r4, r5, pc}
thumb_func_end BufferBoxMonSpeciesNameWithArticle
thumb_func_start BufferSpeciesNameWithArticle
BufferSpeciesNameWithArticle: ; 0x0200BF58
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
ldr r3, [r5, #4]
add r4, r1, #0
add r6, r2, #0
mov r0, #1
mov r1, #0x1b
mov r2, #0xee
bl NewMsgDataFromNarc
ldr r2, [r5, #0xc]
add r1, r6, #0
add r7, r0, #0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0
add r1, r4, #0
mov r3, #0
bl SetStringAsPlaceholder
add r0, r7, #0
bl DestroyMsgData
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end BufferSpeciesNameWithArticle
thumb_func_start BufferBoxMonNickname
BufferBoxMonNickname: ; 0x0200BF8C
push {r3, r4, r5, lr}
add r5, r0, #0
add r0, r2, #0
add r4, r1, #0
ldr r2, [r5, #0xc]
mov r1, #0x77
bl GetBoxMonData
ldr r2, [r5, #0xc]
add r0, r5, #0
add r1, r4, #0
mov r3, #0
bl SetStringAsPlaceholder
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_end BufferBoxMonNickname
thumb_func_start BufferBoxMonOTName
BufferBoxMonOTName: ; 0x0200BFAC
push {r3, r4, r5, lr}
add r5, r0, #0
add r0, r2, #0
add r4, r1, #0
ldr r2, [r5, #0xc]
mov r1, #0x91
bl GetBoxMonData
ldr r2, [r5, #0xc]
add r0, r5, #0
add r1, r4, #0
mov r3, #0
bl SetStringAsPlaceholder
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_end BufferBoxMonOTName
thumb_func_start BufferIntegerAsString
BufferIntegerAsString: ; 0x0200BFCC
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r0, [sp, #0x14]
add r4, r1, #0
str r0, [sp]
add r1, r2, #0
add r2, r3, #0
ldr r0, [r5, #0xc]
ldr r3, [sp, #0x10]
bl String16_FormatInteger
ldr r2, [r5, #0xc]
add r0, r5, #0
add r1, r4, #0
mov r3, #0
bl SetStringAsPlaceholder
pop {r3, r4, r5, pc}
thumb_func_end BufferIntegerAsString
thumb_func_start BufferMoveName
BufferMoveName: ; 0x0200BFF0
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r6, r2, #0
add r4, r1, #0
ldr r2, _0200C024 ; =0x000002EE
ldr r3, [r5, #4]
mov r0, #1
mov r1, #0x1b
bl NewMsgDataFromNarc
add r7, r0, #0
beq _0200C022
ldr r2, [r5, #0xc]
add r1, r6, #0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0
add r1, r4, #0
mov r3, #0
bl SetStringAsPlaceholder
add r0, r7, #0
bl DestroyMsgData
_0200C022:
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_0200C024: .word 0x000002EE
thumb_func_end BufferMoveName
thumb_func_start BufferRibbonNameOrDesc
BufferRibbonNameOrDesc: ; 0x0200C028
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r6, r2, #0
mov r2, #0x6a
add r4, r1, #0
ldr r3, [r5, #4]
mov r0, #1
mov r1, #0x1b
lsl r2, r2, #2
bl NewMsgDataFromNarc
add r7, r0, #0
beq _0200C05C
ldr r2, [r5, #0xc]
add r1, r6, #0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0
add r1, r4, #0
mov r3, #0
bl SetStringAsPlaceholder
add r0, r7, #0
bl DestroyMsgData
_0200C05C:
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end BufferRibbonNameOrDesc
thumb_func_start BufferAbilityName
BufferAbilityName: ; 0x0200C060
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r6, r2, #0
mov r2, #0x2d
add r4, r1, #0
ldr r3, [r5, #4]
mov r0, #1
mov r1, #0x1b
lsl r2, r2, #4
bl NewMsgDataFromNarc
add r7, r0, #0
beq _0200C094
ldr r2, [r5, #0xc]
add r1, r6, #0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0
add r1, r4, #0
mov r3, #0
bl SetStringAsPlaceholder
add r0, r7, #0
bl DestroyMsgData
_0200C094:
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end BufferAbilityName
thumb_func_start BufferNatureName
BufferNatureName: ; 0x0200C098
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
ldr r3, [r5, #4]
add r4, r1, #0
add r6, r2, #0
mov r0, #1
mov r1, #0x1b
mov r2, #0x22
bl NewMsgDataFromNarc
ldr r2, [r5, #0xc]
add r1, r6, #0
add r7, r0, #0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0
add r1, r4, #0
mov r3, #0
bl SetStringAsPlaceholder
add r0, r7, #0
bl DestroyMsgData
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end BufferNatureName
thumb_func_start BufferItemName
BufferItemName: ; 0x0200C0CC
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
ldr r3, [r5, #4]
add r4, r1, #0
add r6, r2, #0
mov r0, #1
mov r1, #0x1b
mov r2, #0xde
bl NewMsgDataFromNarc
add r7, r0, #0
beq _0200C0FE
ldr r2, [r5, #0xc]
add r1, r6, #0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0
add r1, r4, #0
mov r3, #0
bl SetStringAsPlaceholder
add r0, r7, #0
bl DestroyMsgData
_0200C0FE:
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end BufferItemName
thumb_func_start BufferItemNameWithIndefArticle
BufferItemNameWithIndefArticle: ; 0x0200C100
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
ldr r3, [r5, #4]
add r4, r1, #0
add r6, r2, #0
mov r0, #1
mov r1, #0x1b
mov r2, #0xdf
bl NewMsgDataFromNarc
add r7, r0, #0
beq _0200C132
ldr r2, [r5, #0xc]
add r1, r6, #0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0
add r1, r4, #0
mov r3, #0
bl SetStringAsPlaceholder
add r0, r7, #0
bl DestroyMsgData
_0200C132:
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end BufferItemNameWithIndefArticle
thumb_func_start BufferItemNamePlural
BufferItemNamePlural: ; 0x0200C134
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
ldr r3, [r5, #4]
add r4, r1, #0
add r6, r2, #0
mov r0, #1
mov r1, #0x1b
mov r2, #0xe0
bl NewMsgDataFromNarc
add r7, r0, #0
beq _0200C166
ldr r2, [r5, #0xc]
add r1, r6, #0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0
add r1, r4, #0
mov r3, #0
bl SetStringAsPlaceholder
add r0, r7, #0
bl DestroyMsgData
_0200C166:
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end BufferItemNamePlural
thumb_func_start BufferPocketName
BufferPocketName: ; 0x0200C168
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
ldr r3, [r5, #4]
add r4, r1, #0
add r6, r2, #0
mov r0, #1
mov r1, #0x1b
mov r2, #0xe2
bl NewMsgDataFromNarc
add r7, r0, #0
beq _0200C19A
ldr r2, [r5, #0xc]
add r1, r6, #0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0
add r1, r4, #0
mov r3, #0
bl SetStringAsPlaceholder
add r0, r7, #0
bl DestroyMsgData
_0200C19A:
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end BufferPocketName
thumb_func_start BufferTypeName
BufferTypeName: ; 0x0200C19C
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r6, r2, #0
add r4, r1, #0
ldr r2, _0200C1D0 ; =0x000002DF
ldr r3, [r5, #4]
mov r0, #1
mov r1, #0x1b
bl NewMsgDataFromNarc
add r7, r0, #0
beq _0200C1CE
ldr r2, [r5, #0xc]
add r1, r6, #0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0
add r1, r4, #0
mov r3, #0
bl SetStringAsPlaceholder
add r0, r7, #0
bl DestroyMsgData
_0200C1CE:
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_0200C1D0: .word 0x000002DF
thumb_func_end BufferTypeName
thumb_func_start BufferStatName
BufferStatName: ; 0x0200C1D4
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r6, r2, #0
add r4, r1, #0
ldr r2, _0200C208 ; =0x000001BB
ldr r3, [r5, #4]
mov r0, #1
mov r1, #0x1b
bl NewMsgDataFromNarc
add r7, r0, #0
beq _0200C206
ldr r2, [r5, #0xc]
add r1, r6, #0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0
add r1, r4, #0
mov r3, #0
bl SetStringAsPlaceholder
add r0, r7, #0
bl DestroyMsgData
_0200C206:
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_0200C208: .word 0x000001BB
thumb_func_end BufferStatName
thumb_func_start BufferStatusName
BufferStatusName: ; 0x0200C20C
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
ldr r3, [r5, #4]
add r4, r1, #0
add r6, r2, #0
mov r0, #1
mov r1, #0x1b
mov r2, #0x2c
bl NewMsgDataFromNarc
add r7, r0, #0
beq _0200C23E
ldr r2, [r5, #0xc]
add r1, r6, #0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0
add r1, r4, #0
mov r3, #0
bl SetStringAsPlaceholder
add r0, r7, #0
bl DestroyMsgData
_0200C23E:
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end BufferStatusName
thumb_func_start BufferFlavorDislikeText
BufferFlavorDislikeText: ; 0x0200C240
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r6, r2, #0
add r4, r1, #0
ldr r2, _0200C274 ; =0x0000027F
ldr r3, [r5, #4]
mov r0, #1
mov r1, #0x1b
bl NewMsgDataFromNarc
add r7, r0, #0
beq _0200C272
ldr r2, [r5, #0xc]
add r1, r6, #0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0
add r1, r4, #0
mov r3, #0
bl SetStringAsPlaceholder
add r0, r7, #0
bl DestroyMsgData
_0200C272:
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_0200C274: .word 0x0000027F
thumb_func_end BufferFlavorDislikeText
thumb_func_start BufferLandmarkName
BufferLandmarkName: ; 0x0200C278
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r7, r1, #0
mov r1, #0x1b
add r4, r2, #0
add r2, r1, #0
ldr r3, [r5, #4]
mov r0, #1
add r2, #0xfc
bl NewMsgDataFromNarc
add r6, r0, #0
beq _0200C2D2
cmp r4, #0
beq _0200C29E
bl MsgDataGetCount
cmp r4, r0
blo _0200C2B6
_0200C29E:
add r0, r6, #0
bl DestroyMsgData
mov r1, #0x1b
add r2, r1, #0
ldr r3, [r5, #4]
mov r0, #1
add r2, #0xfd
bl NewMsgDataFromNarc
add r6, r0, #0
mov r4, #2
_0200C2B6:
ldr r2, [r5, #0xc]
add r0, r6, #0
add r1, r4, #0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0
add r1, r7, #0
mov r3, #0
bl SetStringAsPlaceholder
add r0, r6, #0
bl DestroyMsgData
_0200C2D2:
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end BufferLandmarkName
thumb_func_start BufferTrainerClassName
BufferTrainerClassName: ; 0x0200C2D4
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r6, r2, #0
add r4, r1, #0
ldr r2, _0200C308 ; =0x000002DA
ldr r3, [r5, #4]
mov r0, #1
mov r1, #0x1b
bl NewMsgDataFromNarc
add r7, r0, #0
beq _0200C306
ldr r2, [r5, #0xc]
add r1, r6, #0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0
add r1, r4, #0
mov r3, #0
bl SetStringAsPlaceholder
add r0, r7, #0
bl DestroyMsgData
_0200C306:
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_0200C308: .word 0x000002DA
thumb_func_end BufferTrainerClassName
thumb_func_start BufferTrainerClassNameWithArticle
BufferTrainerClassNameWithArticle: ; 0x0200C30C
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r6, r2, #0
add r4, r1, #0
ldr r2, _0200C340 ; =0x000002DB
ldr r3, [r5, #4]
mov r0, #1
mov r1, #0x1b
bl NewMsgDataFromNarc
add r7, r0, #0
beq _0200C33E
ldr r2, [r5, #0xc]
add r1, r6, #0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0
add r1, r4, #0
mov r3, #0
bl SetStringAsPlaceholder
add r0, r7, #0
bl DestroyMsgData
_0200C33E:
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_0200C340: .word 0x000002DB
thumb_func_end BufferTrainerClassNameWithArticle
thumb_func_start BufferTrainerClassNameFromDataStruct
BufferTrainerClassNameFromDataStruct: ; 0x0200C344
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r4, r2, #0
add r6, r1, #0
ldr r2, _0200C378 ; =0x000002DA
ldr r3, [r5, #4]
mov r0, #1
mov r1, #0x1b
bl NewMsgDataFromNarc
add r7, r0, #0
beq _0200C376
ldrb r1, [r4, #1]
ldr r2, [r5, #0xc]
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0
add r1, r6, #0
mov r3, #0
bl SetStringAsPlaceholder
add r0, r7, #0
bl DestroyMsgData
_0200C376:
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_0200C378: .word 0x000002DA
thumb_func_end BufferTrainerClassNameFromDataStruct
thumb_func_start BufferTrainerName
BufferTrainerName: ; 0x0200C37C
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r6, r2, #0
add r4, r1, #0
ldr r2, _0200C3B0 ; =0x000002D9
ldr r3, [r5, #4]
mov r0, #1
mov r1, #0x1b
bl NewMsgDataFromNarc
add r7, r0, #0
beq _0200C3AE
ldr r2, [r5, #0xc]
add r1, r6, #0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0
add r1, r4, #0
mov r3, #0
bl SetStringAsPlaceholder
add r0, r7, #0
bl DestroyMsgData
_0200C3AE:
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_0200C3B0: .word 0x000002D9
thumb_func_end BufferTrainerName
thumb_func_start BufferFrontierOpponentName
BufferFrontierOpponentName: ; 0x0200C3B4
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r4, r1, #0
mov r1, #0x1b
add r6, r2, #0
ldr r3, [r5, #4]
mov r0, #1
add r2, r1, #0
bl NewMsgDataFromNarc
add r7, r0, #0
beq _0200C3E6
ldr r2, [r5, #0xc]
add r1, r6, #0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0
add r1, r4, #0
mov r3, #0
bl SetStringAsPlaceholder
add r0, r7, #0
bl DestroyMsgData
_0200C3E6:
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end BufferFrontierOpponentName
thumb_func_start BufferTrainerNameFromDataStruct
BufferTrainerNameFromDataStruct: ; 0x0200C3E8
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r0, [r5, #0xc]
add r2, #0x14
add r4, r1, #0
add r1, r2, #0
bl CopyU16ArrayToString
ldr r2, [r5, #0xc]
add r0, r5, #0
add r1, r4, #0
mov r3, #0
bl SetStringAsPlaceholder
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_end BufferTrainerNameFromDataStruct
thumb_func_start BufferDecorationName
BufferDecorationName: ; 0x0200C408
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r6, r2, #0
add r4, r1, #0
ldr r2, _0200C43C ; =0x000002E1
ldr r3, [r5, #4]
mov r0, #1
mov r1, #0x1b
bl NewMsgDataFromNarc
add r7, r0, #0
beq _0200C43A
ldr r2, [r5, #0xc]
add r1, r6, #0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0
add r1, r4, #0
mov r3, #0
bl SetStringAsPlaceholder
add r0, r7, #0
bl DestroyMsgData
_0200C43A:
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_0200C43C: .word 0x000002E1
thumb_func_end BufferDecorationName
thumb_func_start sub_0200C440
sub_0200C440: ; 0x0200C440
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
ldr r3, [r5, #4]
add r6, r1, #0
add r4, r2, #0
mov r0, #1
mov r1, #0x1b
mov r2, #0x28
bl NewMsgDataFromNarc
add r7, r0, #0
cmp r4, #0
beq _0200C460
cmp r4, #1
beq _0200C46A
b _0200C474
_0200C460:
ldr r2, [r5, #0xc]
mov r1, #0x37
bl ReadMsgDataIntoString
b _0200C47A
_0200C46A:
ldr r2, [r5, #0xc]
mov r1, #0x38
bl ReadMsgDataIntoString
b _0200C47A
_0200C474:
ldr r0, [r5, #0xc]
bl StringSetEmpty
_0200C47A:
ldr r2, [r5, #0xc]
add r0, r5, #0
add r1, r6, #0
mov r3, #0
bl SetStringAsPlaceholder
add r0, r7, #0
bl DestroyMsgData
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end sub_0200C440
thumb_func_start sub_0200C490
sub_0200C490: ; 0x0200C490
push {r3, r4, r5, lr}
add r5, r0, #0
add r0, r2, #0
add r4, r1, #0
ldr r2, [r5, #0xc]
add r1, r3, #0
bl PCStorage_GetBoxName
ldr r2, [r5, #0xc]
add r0, r5, #0
add r1, r4, #0
mov r3, #0
bl SetStringAsPlaceholder
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_end sub_0200C490
thumb_func_start BufferCountryName
BufferCountryName: ; 0x0200C4B0
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r6, r2, #0
add r4, r1, #0
ldr r2, _0200C4E4 ; =0x0000031E
ldr r3, [r5, #4]
mov r0, #1
mov r1, #0x1b
bl NewMsgDataFromNarc
add r7, r0, #0
beq _0200C4E2
ldr r2, [r5, #0xc]
add r1, r6, #0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0
add r1, r4, #0
mov r3, #0
bl SetStringAsPlaceholder
add r0, r7, #0
bl DestroyMsgData
_0200C4E2:
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_0200C4E4: .word 0x0000031E
thumb_func_end BufferCountryName
thumb_func_start BufferCityName
BufferCityName: ; 0x0200C4E8
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r0, r2, #0
add r6, r1, #0
add r4, r3, #0
bl GetCityNamesMsgdataIdByCountry
add r2, r0, #0
beq _0200C526
cmp r4, #0
beq _0200C526
ldr r3, [r5, #4]
mov r0, #1
mov r1, #0x1b
bl NewMsgDataFromNarc
add r7, r0, #0
beq _0200C526
ldr r2, [r5, #0xc]
add r1, r4, #0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0
add r1, r6, #0
mov r3, #0
bl SetStringAsPlaceholder
add r0, r7, #0
bl DestroyMsgData
_0200C526:
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end BufferCityName
thumb_func_start sub_0200C528
sub_0200C528: ; 0x0200C528
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
ldr r1, [r5, #0xc]
add r0, r2, #0
bl GetECWordIntoStringByIndex
ldr r2, [r5, #0xc]
add r0, r5, #0
add r1, r4, #0
mov r3, #0
bl SetStringAsPlaceholder
pop {r3, r4, r5, pc}
thumb_func_end sub_0200C528
thumb_func_start BufferSealName
BufferSealName: ; 0x0200C544
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
ldr r3, [r5, #4]
add r4, r1, #0
add r6, r2, #0
mov r0, #1
mov r1, #0x1b
mov r2, #0xf
bl NewMsgDataFromNarc
add r7, r0, #0
beq _0200C576
ldr r2, [r5, #0xc]
add r1, r6, #0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0
add r1, r4, #0
mov r3, #0
bl SetStringAsPlaceholder
add r0, r7, #0
bl DestroyMsgData
_0200C576:
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end BufferSealName
thumb_func_start BufferSealNamePlural
BufferSealNamePlural: ; 0x0200C578
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
ldr r3, [r5, #4]
add r4, r1, #0
add r6, r2, #0
mov r0, #1
mov r1, #0x1b
mov r2, #0x10
bl NewMsgDataFromNarc
add r7, r0, #0
beq _0200C5AA
ldr r2, [r5, #0xc]
add r1, r6, #0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0
add r1, r4, #0
mov r3, #0
bl SetStringAsPlaceholder
add r0, r7, #0
bl DestroyMsgData
_0200C5AA:
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end BufferSealNamePlural
thumb_func_start BufferLocationName
BufferLocationName: ; 0x0200C5AC
push {r3, r4, r5, r6, r7, lr}
add r4, r2, #0
add r5, r0, #0
add r0, r4, #0
str r1, [sp]
bl sub_02017FAC
add r6, r0, #0
add r0, r4, #0
bl sub_02017FCC
add r4, r0, #0
ldr r2, _0200C64C ; =_020F5C1C
lsl r3, r6, #1
ldrh r2, [r2, r3]
ldr r3, [r5, #4]
mov r0, #1
mov r1, #0x1b
bl NewMsgDataFromNarc
add r7, r0, #0
beq _0200C648
bl MsgDataGetCount
cmp r4, r0
bhs _0200C606
cmp r6, #0
bne _0200C5E8
cmp r4, #0
beq _0200C606
_0200C5E8:
ldr r2, [r5, #0xc]
add r0, r7, #0
add r1, r4, #0
bl ReadMsgDataIntoString
ldr r1, [sp]
ldr r2, [r5, #0xc]
add r0, r5, #0
mov r3, #0
bl SetStringAsPlaceholder
add r0, r7, #0
bl DestroyMsgData
pop {r3, r4, r5, r6, r7, pc}
_0200C606:
add r0, r7, #0
bl DestroyMsgData
cmp r6, #0
bne _0200C61A
cmp r4, #0
bne _0200C61A
ldr r2, _0200C650 ; =0x00000119
mov r4, #0xc
b _0200C620
_0200C61A:
mov r2, #0x46
lsl r2, r2, #2
mov r4, #2
_0200C620:
ldr r3, [r5, #4]
mov r0, #1
mov r1, #0x1b
bl NewMsgDataFromNarc
add r6, r0, #0
beq _0200C648
ldr r2, [r5, #0xc]
add r1, r4, #0
bl ReadMsgDataIntoString
ldr r1, [sp]
ldr r2, [r5, #0xc]
add r0, r5, #0
mov r3, #0
bl SetStringAsPlaceholder
add r0, r6, #0
bl DestroyMsgData
_0200C648:
pop {r3, r4, r5, r6, r7, pc}
nop
_0200C64C: .word _020F5C1C
_0200C650: .word 0x00000119
thumb_func_end BufferLocationName
thumb_func_start BufferFashionName
BufferFashionName: ; 0x0200C654
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
ldr r3, [r5, #4]
add r4, r1, #0
add r6, r2, #0
mov r0, #1
mov r1, #0x1b
mov r2, #0xd8
bl NewMsgDataFromNarc
add r7, r0, #0
beq _0200C686
ldr r2, [r5, #0xc]
add r1, r6, #0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0
add r1, r4, #0
mov r3, #0
bl SetStringAsPlaceholder
add r0, r7, #0
bl DestroyMsgData
_0200C686:
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end BufferFashionName
thumb_func_start BufferFashionNameWithArticle
BufferFashionNameWithArticle: ; 0x0200C688
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
ldr r3, [r5, #4]
add r4, r1, #0
add r6, r2, #0
mov r0, #1
mov r1, #0x1b
mov r2, #0xd9
bl NewMsgDataFromNarc
add r7, r0, #0
beq _0200C6BA
ldr r2, [r5, #0xc]
add r1, r6, #0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0
add r1, r4, #0
mov r3, #0
bl SetStringAsPlaceholder
add r0, r7, #0
bl DestroyMsgData
_0200C6BA:
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end BufferFashionNameWithArticle
thumb_func_start BufferContestBackgroundName
BufferContestBackgroundName: ; 0x0200C6BC
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
ldr r3, [r5, #4]
add r4, r1, #0
add r6, r2, #0
mov r0, #1
mov r1, #0x1b
mov r2, #0xda
bl NewMsgDataFromNarc
add r7, r0, #0
beq _0200C6EE
ldr r2, [r5, #0xc]
add r1, r6, #0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0
add r1, r4, #0
mov r3, #0
bl SetStringAsPlaceholder
add r0, r7, #0
bl DestroyMsgData
_0200C6EE:
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end BufferContestBackgroundName
thumb_func_start BufferEasyChatWord
BufferEasyChatWord: ; 0x0200C6F0
push {r4, r5, r6, r7, lr}
sub sp, #0x14
str r0, [sp, #8]
add r5, r2, #0
add r0, r1, #0
str r3, [sp, #0xc]
bl sub_0202C854
add r6, r0, #0
add r1, r5, #0
bl sub_0202C830
str r0, [sp, #0x10]
add r0, r6, #0
add r1, r5, #0
bl sub_0202C83C
add r7, r0, #0
mov r0, #0x40
mov r1, #4
bl String_ctor
add r4, r0, #0
ldr r2, [sp, #0x28]
add r0, r6, #0
add r1, r5, #0
bl sub_0202C7E0
add r1, r0, #0
add r0, r4, #0
bl CopyU16ArrayToString
mov r0, #1
str r0, [sp]
ldr r0, [sp, #8]
ldr r1, [sp, #0xc]
ldr r3, [sp, #0x10]
add r2, r4, #0
str r7, [sp, #4]
bl BufferString
add r0, r4, #0
bl String_dtor
add sp, #0x14
pop {r4, r5, r6, r7, pc}
thumb_func_end BufferEasyChatWord
thumb_func_start sub_0200C74C
sub_0200C74C: ; 0x0200C74C
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r6, r2, #0
add r4, r1, #0
ldr r2, _0200C780 ; =0x000002F3
ldr r3, [r5, #4]
mov r0, #1
mov r1, #0x1b
bl NewMsgDataFromNarc
add r7, r0, #0
beq _0200C77E
ldr r2, [r5, #0xc]
add r1, r6, #0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0
add r1, r4, #0
mov r3, #0
bl SetStringAsPlaceholder
add r0, r7, #0
bl DestroyMsgData
_0200C77E:
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_0200C780: .word 0x000002F3
thumb_func_end sub_0200C74C
thumb_func_start sub_0200C784
sub_0200C784: ; 0x0200C784
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r6, r2, #0
add r4, r1, #0
ldr r2, _0200C7B8 ; =0x000002F1
ldr r3, [r5, #4]
mov r0, #1
mov r1, #0x1b
bl NewMsgDataFromNarc
add r7, r0, #0
beq _0200C7B6
ldr r2, [r5, #0xc]
add r1, r6, #0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0
add r1, r4, #0
mov r3, #0
bl SetStringAsPlaceholder
add r0, r7, #0
bl DestroyMsgData
_0200C7B6:
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_0200C7B8: .word 0x000002F1
thumb_func_end sub_0200C784
thumb_func_start sub_0200C7BC
sub_0200C7BC: ; 0x0200C7BC
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r6, r2, #0
mov r2, #0xbd
add r4, r1, #0
ldr r3, [r5, #4]
mov r0, #1
mov r1, #0x1b
lsl r2, r2, #2
bl NewMsgDataFromNarc
add r7, r0, #0
beq _0200C7F0
ldr r2, [r5, #0xc]
add r1, r6, #0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0
add r1, r4, #0
mov r3, #0
bl SetStringAsPlaceholder
add r0, r7, #0
bl DestroyMsgData
_0200C7F0:
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end sub_0200C7BC
thumb_func_start sub_0200C7F4
sub_0200C7F4: ; 0x0200C7F4
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r6, r2, #0
add r4, r1, #0
ldr r2, _0200C828 ; =0x00000303
ldr r3, [r5, #4]
mov r0, #1
mov r1, #0x1b
bl NewMsgDataFromNarc
add r7, r0, #0
beq _0200C826
ldr r2, [r5, #0xc]
add r1, r6, #0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0
add r1, r4, #0
mov r3, #0
bl SetStringAsPlaceholder
add r0, r7, #0
bl DestroyMsgData
_0200C826:
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_0200C828: .word 0x00000303
thumb_func_end sub_0200C7F4
thumb_func_start sub_0200C82C
sub_0200C82C: ; 0x0200C82C
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r6, r2, #0
add r4, r1, #0
ldr r2, _0200C860 ; =0x000002FF
ldr r3, [r5, #4]
mov r0, #1
mov r1, #0x1b
bl NewMsgDataFromNarc
add r7, r0, #0
beq _0200C85E
ldr r2, [r5, #0xc]
add r1, r6, #0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0
add r1, r4, #0
mov r3, #0
bl SetStringAsPlaceholder
add r0, r7, #0
bl DestroyMsgData
_0200C85E:
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_0200C860: .word 0x000002FF
thumb_func_end sub_0200C82C
thumb_func_start sub_0200C864
sub_0200C864: ; 0x0200C864
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r6, r2, #0
mov r2, #3
add r4, r1, #0
ldr r3, [r5, #4]
mov r0, #1
mov r1, #0x1b
lsl r2, r2, #8
bl NewMsgDataFromNarc
add r7, r0, #0
beq _0200C898
ldr r2, [r5, #0xc]
add r1, r6, #0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0
add r1, r4, #0
mov r3, #0
bl SetStringAsPlaceholder
add r0, r7, #0
bl DestroyMsgData
_0200C898:
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end sub_0200C864
thumb_func_start sub_0200C89C
sub_0200C89C: ; 0x0200C89C
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r6, r2, #0
add r4, r1, #0
ldr r2, _0200C8D0 ; =0x00000302
ldr r3, [r5, #4]
mov r0, #1
mov r1, #0x1b
bl NewMsgDataFromNarc
add r7, r0, #0
beq _0200C8CE
ldr r2, [r5, #0xc]
add r1, r6, #0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0
add r1, r4, #0
mov r3, #0
bl SetStringAsPlaceholder
add r0, r7, #0
bl DestroyMsgData
_0200C8CE:
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_0200C8D0: .word 0x00000302
thumb_func_end sub_0200C89C
thumb_func_start sub_0200C8D4
sub_0200C8D4: ; 0x0200C8D4
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r6, r2, #0
add r4, r1, #0
ldr r2, _0200C908 ; =0x00000301
ldr r3, [r5, #4]
mov r0, #1
mov r1, #0x1b
bl NewMsgDataFromNarc
add r7, r0, #0
beq _0200C906
ldr r2, [r5, #0xc]
add r1, r6, #0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0
add r1, r4, #0
mov r3, #0
bl SetStringAsPlaceholder
add r0, r7, #0
bl DestroyMsgData
_0200C906:
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_0200C908: .word 0x00000301
thumb_func_end sub_0200C8D4
thumb_func_start sub_0200C90C
sub_0200C90C: ; 0x0200C90C
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r6, r2, #0
mov r2, #0xc1
add r4, r1, #0
ldr r3, [r5, #4]
mov r0, #1
mov r1, #0x1b
lsl r2, r2, #2
bl NewMsgDataFromNarc
add r7, r0, #0
beq _0200C940
ldr r2, [r5, #0xc]
add r1, r6, #0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0
add r1, r4, #0
mov r3, #0
bl SetStringAsPlaceholder
add r0, r7, #0
bl DestroyMsgData
_0200C940:
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end sub_0200C90C
thumb_func_start sub_0200C944
sub_0200C944: ; 0x0200C944
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r4, r2, #0
add r7, r1, #0
ldr r2, _0200C980 ; =0x00000139
ldr r3, [r5, #4]
mov r0, #1
mov r1, #0x1b
bl NewMsgDataFromNarc
add r6, r0, #0
cmp r4, #0xb
blo _0200C962
bl GF_AssertFail
_0200C962:
ldr r2, [r5, #0xc]
add r0, r6, #0
add r1, r4, #0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0
add r1, r7, #0
mov r3, #0
bl SetStringAsPlaceholder
add r0, r6, #0
bl DestroyMsgData
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_0200C980: .word 0x00000139
thumb_func_end sub_0200C944
thumb_func_start sub_0200C984
sub_0200C984: ; 0x0200C984
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r4, r2, #0
add r7, r1, #0
ldr r2, _0200C9C4 ; =0x00000139
ldr r3, [r5, #4]
mov r0, #1
mov r1, #0x1b
bl NewMsgDataFromNarc
add r6, r0, #0
cmp r4, #5
blo _0200C9A2
bl GF_AssertFail
_0200C9A2:
add r4, #0xf
ldr r2, [r5, #0xc]
add r0, r6, #0
add r1, r4, #0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0
add r1, r7, #0
mov r3, #0
bl SetStringAsPlaceholder
add r0, r6, #0
bl DestroyMsgData
pop {r3, r4, r5, r6, r7, pc}
nop
_0200C9C4: .word 0x00000139
thumb_func_end sub_0200C984
thumb_func_start sub_0200C9C8
sub_0200C9C8: ; 0x0200C9C8
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r4, r2, #0
add r7, r1, #0
ldr r2, _0200CA08 ; =0x00000139
ldr r3, [r5, #4]
mov r0, #1
mov r1, #0x1b
bl NewMsgDataFromNarc
add r6, r0, #0
cmp r4, #0xa
blo _0200C9E6
bl GF_AssertFail
_0200C9E6:
add r4, #0x14
ldr r2, [r5, #0xc]
add r0, r6, #0
add r1, r4, #0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0
add r1, r7, #0
mov r3, #0
bl SetStringAsPlaceholder
add r0, r6, #0
bl DestroyMsgData
pop {r3, r4, r5, r6, r7, pc}
nop
_0200CA08: .word 0x00000139
thumb_func_end sub_0200C9C8
thumb_func_start sub_0200CA0C
sub_0200CA0C: ; 0x0200CA0C
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
ldr r3, [r5, #4]
add r7, r1, #0
add r4, r2, #0
mov r0, #1
mov r1, #0x1b
mov r2, #0x15
bl NewMsgDataFromNarc
add r6, r0, #0
cmp r4, #7
blo _0200CA2E
blo _0200CA2C
bl GF_AssertFail
_0200CA2C:
mov r4, #0
_0200CA2E:
ldr r2, [r5, #0xc]
add r0, r6, #0
add r1, r4, #7
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0
add r1, r7, #0
mov r3, #0
bl SetStringAsPlaceholder
add r0, r6, #0
bl DestroyMsgData
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end sub_0200CA0C
thumb_func_start sub_0200CA4C
sub_0200CA4C: ; 0x0200CA4C
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r4, r2, #0
add r7, r1, #0
ldr r2, _0200CA90 ; =0x000001AE
ldr r3, [r5, #4]
mov r0, #1
mov r1, #0x1b
bl NewMsgDataFromNarc
add r6, r0, #0
cmp r4, #0x18
blo _0200CA6E
blo _0200CA6C
bl GF_AssertFail
_0200CA6C:
mov r4, #0
_0200CA6E:
add r4, #0xe
ldr r2, [r5, #0xc]
add r0, r6, #0
add r1, r4, #0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0
add r1, r7, #0
mov r3, #0
bl SetStringAsPlaceholder
add r0, r6, #0
bl DestroyMsgData
pop {r3, r4, r5, r6, r7, pc}
nop
_0200CA90: .word 0x000001AE
thumb_func_end sub_0200CA4C
thumb_func_start BufferSafariZoneAreaName
BufferSafariZoneAreaName: ; 0x0200CA94
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r4, r2, #0
mov r2, #0x6b
add r7, r1, #0
ldr r3, [r5, #4]
mov r0, #1
mov r1, #0x1b
lsl r2, r2, #2
bl NewMsgDataFromNarc
add r6, r0, #0
cmp r4, #0xc
blo _0200CAB8
blo _0200CAB6
bl GF_AssertFail
_0200CAB6:
mov r4, #0
_0200CAB8:
ldr r2, [r5, #0xc]
add r0, r6, #0
add r1, r4, #0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0
add r1, r7, #0
mov r3, #0
bl SetStringAsPlaceholder
add r0, r6, #0
bl DestroyMsgData
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end BufferSafariZoneAreaName
thumb_func_start BufferPokewalkerMessage
BufferPokewalkerMessage: ; 0x0200CAD8
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r7, r1, #0
mov r1, #0x1b
add r4, r2, #0
add r2, r1, #0
ldr r3, [r5, #4]
mov r0, #1
add r2, #0xf7
bl NewMsgDataFromNarc
add r6, r0, #0
cmp r4, #0x1b
blo _0200CAFC
blo _0200CAFA
bl GF_AssertFail
_0200CAFA:
mov r4, #0
_0200CAFC:
add r4, #0x5b
ldr r2, [r5, #0xc]
add r0, r6, #0
add r1, r4, #0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0
add r1, r7, #0
mov r3, #0
bl SetStringAsPlaceholder
add r0, r6, #0
bl DestroyMsgData
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end BufferPokewalkerMessage
thumb_func_start BufferMonthNameAbbr
BufferMonthNameAbbr: ; 0x0200CB1C
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
ldr r3, [r5, #4]
add r7, r1, #0
add r4, r2, #0
mov r0, #1
mov r1, #0x1b
mov r2, #0xef
bl NewMsgDataFromNarc
add r6, r0, #0
beq _0200CB5A
cmp r4, #1
blo _0200CB3C
cmp r4, #0xc
bls _0200CB3E
_0200CB3C:
mov r4, #1
_0200CB3E:
ldr r2, [r5, #0xc]
add r0, r6, #0
sub r1, r4, #1
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0
add r1, r7, #0
mov r3, #0
bl SetStringAsPlaceholder
add r0, r6, #0
bl DestroyMsgData
_0200CB5A:
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end BufferMonthNameAbbr
thumb_func_start ScrStrBufs_UpperFirstChar
ScrStrBufs_UpperFirstChar: ; 0x0200CB5C
ldr r2, [r0, #8]
lsl r0, r1, #3
add r0, r2, r0
ldr r3, _0200CB6C ; =StrUpperFirstChar
ldr r0, [r0, #4]
mov r1, #0
bx r3
nop
_0200CB6C: .word StrUpperFirstChar
thumb_func_end ScrStrBufs_UpperFirstChar
thumb_func_start sub_0200CB70
sub_0200CB70: ; 0x0200CB70
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
ldr r3, [r5, #4]
add r7, r1, #0
add r4, r2, #0
mov r0, #1
mov r1, #0x1b
mov r2, #0xbf
bl NewMsgDataFromNarc
add r6, r0, #0
cmp r4, #6
bls _0200CB8E
bl GF_AssertFail
_0200CB8E:
cmp r6, #0
beq _0200CBB8
cmp r4, #0
bne _0200CB9A
mov r4, #0x7a
b _0200CB9C
_0200CB9A:
add r4, #0x73
_0200CB9C:
ldr r2, [r5, #0xc]
add r0, r6, #0
add r1, r4, #0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0
add r1, r7, #0
mov r3, #0
bl SetStringAsPlaceholder
add r0, r6, #0
bl DestroyMsgData
_0200CBB8:
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end sub_0200CB70
thumb_func_start StringExpandPlaceholders
StringExpandPlaceholders: ; 0x0200CBBC
push {r3, r4, r5, r6, r7, lr}
add r7, r0, #0
add r6, r1, #0
add r0, r2, #0
bl String_c_str
add r5, r0, #0
add r0, r6, #0
bl StringSetEmpty
ldrh r1, [r5]
ldr r0, _0200CC48 ; =0x0000FFFF
cmp r1, r0
beq _0200CC44
_0200CBD8:
ldr r0, _0200CC4C ; =0x0000FFFE
cmp r1, r0
bne _0200CC32
add r0, r5, #0
bl MsgArray_ControlCodeIsStrVar
cmp r0, #0
beq _0200CC14
add r0, r5, #0
mov r1, #0
bl MsgArray_ControlCodeGetField
add r4, r0, #0
ldr r0, [r7]
cmp r4, r0
blo _0200CBFC
bl GF_AssertFail
_0200CBFC:
ldr r2, [r7, #8]
lsl r1, r4, #3
add r1, r2, r1
ldr r1, [r1, #4]
add r0, r6, #0
bl StringCat_HandleTrainerName
add r0, r5, #0
bl MsgArray_SkipControlCode
add r5, r0, #0
b _0200CC3C
_0200CC14:
add r0, r5, #0
add r4, r5, #0
bl MsgArray_SkipControlCode
add r5, r0, #0
cmp r4, r5
bhs _0200CC3C
_0200CC22:
ldrh r1, [r4]
add r0, r6, #0
add r4, r4, #2
bl StrAddChar
cmp r4, r5
blo _0200CC22
b _0200CC3C
_0200CC32:
ldrh r1, [r5]
add r0, r6, #0
add r5, r5, #2
bl StrAddChar
_0200CC3C:
ldrh r1, [r5]
ldr r0, _0200CC48 ; =0x0000FFFF
cmp r1, r0
bne _0200CBD8
_0200CC44:
pop {r3, r4, r5, r6, r7, pc}
nop
_0200CC48: .word 0x0000FFFF
_0200CC4C: .word 0x0000FFFE
thumb_func_end StringExpandPlaceholders
thumb_func_start ScrStrBufs_ResetBuffers
ScrStrBufs_ResetBuffers: ; 0x0200CC50
push {r4, r5, r6, lr}
add r5, r0, #0
ldr r0, [r5]
mov r6, #0
cmp r0, #0
bls _0200CC72
add r4, r6, #0
_0200CC5E:
ldr r0, [r5, #8]
add r0, r0, r4
ldr r0, [r0, #4]
bl StringSetEmpty
ldr r0, [r5]
add r6, r6, #1
add r4, #8
cmp r6, r0
blo _0200CC5E
_0200CC72:
pop {r4, r5, r6, pc}
thumb_func_end ScrStrBufs_ResetBuffers
thumb_func_start MessagePrinter_new
MessagePrinter_new: ; 0x0200CC74
push {r4, r5, r6, r7, lr}
sub sp, #0x2c
add r4, r3, #0
add r5, r0, #0
add r6, r1, #0
add r0, r4, #0
mov r1, #0x2c
str r2, [sp, #4]
bl AllocFromHeap
str r0, [sp, #8]
cmp r0, #0
beq _0200CD8E
ldr r3, [sp, #8]
mov r0, #0x10
mov r1, #5
mov r2, #1
add r3, r3, #4
str r4, [sp]
bl GfGfxLoader_GetCharData
ldr r1, [sp, #8]
mov r3, #0
str r0, [r1]
add r0, r1, #0
ldr r0, [r0, #4]
ldr r4, [r0, #0x14]
ldr r0, [r0, #0x10]
cmp r0, #0
bls _0200CD88
ldr r0, [sp, #4]
ldr r1, [sp, #4]
lsl r0, r0, #4
orr r1, r0
str r1, [sp, #0xc]
add r1, r0, #0
orr r1, r5
str r1, [sp, #0x10]
orr r0, r6
str r0, [sp, #0x14]
ldr r1, [sp, #4]
lsl r0, r5, #4
orr r1, r0
str r1, [sp, #0x18]
add r1, r5, #0
orr r1, r0
str r1, [sp, #0x1c]
orr r0, r6
lsl r2, r6, #4
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x20]
ldr r0, [sp, #0x1c]
ldr r1, [sp, #4]
add r7, r2, #0
orr r7, r1
add r1, r2, #0
orr r1, r5
lsl r1, r1, #0x18
lsr r1, r1, #0x18
orr r2, r6
str r1, [sp, #0x28]
lsl r1, r7, #0x18
lsl r0, r0, #0x18
lsr r7, r0, #0x18
ldr r0, [sp, #0x18]
lsl r2, r2, #0x18
lsr r2, r2, #0x18
lsr r1, r1, #0x18
lsl r0, r0, #0x18
mov ip, r2
str r1, [sp, #0x24]
lsr r6, r0, #0x18
ldr r0, [sp, #0x14]
ldr r1, [sp, #0x10]
ldr r2, [sp, #0xc]
lsl r0, r0, #0x18
lsl r1, r1, #0x18
lsl r2, r2, #0x18
lsr r0, r0, #0x18
lsr r1, r1, #0x18
lsr r2, r2, #0x18
_0200CD18:
ldrb r5, [r4, r3]
cmp r5, #0x12
bgt _0200CD40
bge _0200CD66
cmp r5, #0x10
bgt _0200CD3A
bge _0200CD5E
cmp r5, #2
bgt _0200CD7C
cmp r5, #0
blt _0200CD7C
beq _0200CD52
cmp r5, #1
beq _0200CD56
cmp r5, #2
beq _0200CD5A
b _0200CD7C
_0200CD3A:
cmp r5, #0x11
beq _0200CD62
b _0200CD7C
_0200CD40:
cmp r5, #0x21
bgt _0200CD4C
bge _0200CD72
cmp r5, #0x20
beq _0200CD6C
b _0200CD7C
_0200CD4C:
cmp r5, #0x22
beq _0200CD78
b _0200CD7C
_0200CD52:
strb r2, [r4, r3]
b _0200CD7C
_0200CD56:
strb r1, [r4, r3]
b _0200CD7C
_0200CD5A:
strb r0, [r4, r3]
b _0200CD7C
_0200CD5E:
strb r6, [r4, r3]
b _0200CD7C
_0200CD62:
strb r7, [r4, r3]
b _0200CD7C
_0200CD66:
ldr r5, [sp, #0x20]
strb r5, [r4, r3]
b _0200CD7C
_0200CD6C:
ldr r5, [sp, #0x24]
strb r5, [r4, r3]
b _0200CD7C
_0200CD72:
ldr r5, [sp, #0x28]
strb r5, [r4, r3]
b _0200CD7C
_0200CD78:
mov r5, ip
strb r5, [r4, r3]
_0200CD7C:
ldr r5, [sp, #8]
add r3, r3, #1
ldr r5, [r5, #4]
ldr r5, [r5, #0x10]
cmp r3, r5
blo _0200CD18
_0200CD88:
ldr r1, [sp, #4]
ldr r0, [sp, #8]
str r1, [r0, #0x28]
_0200CD8E:
ldr r0, [sp, #8]
add sp, #0x2c
pop {r4, r5, r6, r7, pc}
thumb_func_end MessagePrinter_new
thumb_func_start MessagePrinter_delete
MessagePrinter_delete: ; 0x0200CD94
push {r4, lr}
add r4, r0, #0
beq _0200CDAA
ldr r0, [r4]
cmp r0, #0
beq _0200CDA4
bl FreeToHeap
_0200CDA4:
add r0, r4, #0
bl FreeToHeap
_0200CDAA:
pop {r4, pc}
thumb_func_end MessagePrinter_delete
thumb_func_start sub_0200CDAC
sub_0200CDAC: ; 0x0200CDAC
push {r3, r4, r5, lr}
sub sp, #0x18
add r4, r0, #0
ldr r0, _0200CDE8 ; =_020F5C26
lsl r5, r1, #2
ldrh r1, [r0, r5]
lsl r3, r3, #0x10
mov r0, #8
str r1, [sp]
str r0, [sp, #4]
lsr r3, r3, #0x10
str r3, [sp, #8]
ldr r3, [sp, #0x28]
lsl r3, r3, #0x10
lsr r3, r3, #0x10
str r3, [sp, #0xc]
str r1, [sp, #0x10]
str r0, [sp, #0x14]
ldr r1, [r4, #4]
add r0, r2, #0
ldr r2, [r1, #0x14]
ldr r1, _0200CDEC ; =_020F5C24
ldrh r1, [r1, r5]
add r1, r2, r1
mov r2, #0
add r3, r2, #0
bl BlitBitmapRectToWindow
add sp, #0x18
pop {r3, r4, r5, pc}
.balign 4, 0
_0200CDE8: .word _020F5C26
_0200CDEC: .word _020F5C24
thumb_func_end sub_0200CDAC
thumb_func_start sub_0200CDF0
sub_0200CDF0: ; 0x0200CDF0
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x18
add r6, r0, #0
ldr r0, [sp, #0x30]
add r4, r2, #0
str r0, [sp, #0x30]
add r0, r6, #0
add r2, r3, #0
add r0, #8
add r3, r4, #0
ldr r5, [sp, #0x34]
ldr r7, [sp, #0x38]
bl ConvertUIntToDecimalString
ldrh r1, [r6, #8]
ldr r0, _0200CE78 ; =0x0000FFFF
cmp r1, r0
beq _0200CE72
lsl r0, r7, #0x10
add r4, r6, #0
lsr r7, r0, #0x10
_0200CE1A:
ldrh r2, [r4, #8]
cmp r2, #0xa2
blo _0200CE4E
cmp r2, #0xab
bhi _0200CE4E
mov r0, #8
str r0, [sp]
str r0, [sp, #4]
lsl r0, r5, #0x10
lsr r0, r0, #0x10
str r0, [sp, #8]
str r7, [sp, #0xc]
mov r0, #8
str r0, [sp, #0x10]
str r0, [sp, #0x14]
ldr r1, [r6, #4]
sub r2, #0xa2
ldr r1, [r1, #0x14]
lsl r2, r2, #5
add r1, r1, r2
mov r2, #0
ldr r0, [sp, #0x30]
add r3, r2, #0
bl BlitBitmapRectToWindow
b _0200CE66
_0200CE4E:
mov r0, #8
str r0, [sp]
str r0, [sp, #4]
ldr r1, [r6, #0x28]
lsl r2, r5, #0x10
lsl r1, r1, #0x18
ldr r0, [sp, #0x30]
lsr r1, r1, #0x18
lsr r2, r2, #0x10
add r3, r7, #0
bl FillWindowPixelRect
_0200CE66:
add r4, r4, #2
ldrh r1, [r4, #8]
ldr r0, _0200CE78 ; =0x0000FFFF
add r5, #8
cmp r1, r0
bne _0200CE1A
_0200CE72:
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
nop
_0200CE78: .word 0x0000FFFF
thumb_func_end sub_0200CDF0