pokediamond/arm9/asm/unk_02079C70.s

4859 lines
84 KiB
ArmAsm

.include "asm/macros.inc"
.include "global.inc"
.extern gSystem
.section .rodata
.global UNK_020FA624
UNK_020FA624: ; 0x020FA624
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.global UNK_020FA634
UNK_020FA634: ; 0x020FA634
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x1E, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.global UNK_020FA650
UNK_020FA650: ; 0x020FA650
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x1F, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.global UNK_020FA66C
UNK_020FA66C: ; 0x020FA66C
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x04, 0x00, 0x1B, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.global UNK_020FA688
UNK_020FA688: ; 0x020FA688
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x1A, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.global UNK_020FA6A4
UNK_020FA6A4: ; 0x020FA6A4
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x1F, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.global UNK_020FA6C0
UNK_020FA6C0: ; 0x020FA6C0
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00
.global UNK_020FA6E8
UNK_020FA6E8: ; 0x020FA6E8
.word sub_02079C7C, sub_02079DB4, sub_02079ECC, 0xFFFFFFFF
.text
thumb_func_start sub_02079C70
sub_02079C70: ; 0x02079C70
push {r3, lr}
bl Save_VarsFlags_Get
bl sub_0205F184
pop {r3, pc}
thumb_func_start sub_02079C7C
sub_02079C7C: ; 0x02079C7C
push {r3-r5, lr}
add r4, r0, #0x0
mov r0, #0x0
add r1, r0, #0x0
bl Main_SetVBlankIntrCB
bl sub_02015F1C
bl GfGfx_DisableEngineAPlanes
bl GfGfx_DisableEngineBPlanes
mov r1, #0x1
lsl r1, r1, #0x1a
ldr r0, [r1, #0x0]
ldr r2, _02079DA0 ; =0xFFFFE0FF
and r0, r2
str r0, [r1, #0x0]
ldr r0, _02079DA4 ; =0x04001000
ldr r3, [r0, #0x0]
and r2, r3
str r2, [r0, #0x0]
ldr r3, [r1, #0x0]
ldr r2, _02079DA8 ; =0xFFFF1FFF
and r3, r2
str r3, [r1, #0x0]
ldr r3, [r0, #0x0]
add r1, #0x50
and r2, r3
str r2, [r0, #0x0]
mov r2, #0x0
strh r2, [r1, #0x0]
add r0, #0x50
strh r2, [r0, #0x0]
mov r0, #0x4
mov r1, #0x8
bl SetKeyRepeatTimers
mov r2, #0x1
mov r0, #0x3
mov r1, #0x13
lsl r2, r2, #0x12
bl Heap_Create
ldr r1, _02079DAC ; =0x0000069C
add r0, r4, #0x0
mov r2, #0x13
bl OverlayManager_CreateAndGetData
ldr r2, _02079DAC ; =0x0000069C
mov r1, #0x0
add r5, r0, #0x0
bl memset
add r0, r4, #0x0
bl OverlayManager_GetField18
mov r1, #0x93
lsl r1, r1, #0x2
str r0, [r5, r1]
mov r0, #0x13
bl BgConfig_Alloc
mov r1, #0x1
str r0, [r5, #0x0]
mov r0, #0x13
add r2, r1, #0x0
bl sub_02014BF4
mov r1, #0x2d
lsl r1, r1, #0x4
str r0, [r5, r1]
mov r0, #0x0
mov r1, #0x13
bl sub_02002C84
bl sub_0201CC08
mov r0, #0x4
bl sub_0201CC24
add r0, r5, #0x0
bl sub_0207B028
bl sub_02079F58
ldr r0, [r5, #0x0]
bl sub_02079F78
add r0, r5, #0x0
bl sub_0207A0CC
bl sub_0207A188
add r0, r5, #0x0
bl sub_0207EF6C
add r0, r5, #0x0
bl sub_0207A1A0
add r0, r5, #0x0
bl sub_0207AAB0
add r0, r5, #0x0
bl sub_0207C328
add r0, r5, #0x0
bl sub_0207C448
add r0, r5, #0x0
bl sub_0207F840
add r0, r5, #0x0
bl sub_0207C71C
add r0, r5, #0x0
bl sub_0207C77C
add r0, r5, #0x0
bl sub_0207D5BC
add r0, r5, #0x0
bl sub_0207AF58
add r0, r5, #0x0
bl sub_0207F95C
add r0, r5, #0x0
bl sub_0207F098
ldr r0, _02079DB0 ; =sub_02079F24
add r1, r5, #0x0
bl Main_SetVBlankIntrCB
bl GfGfx_BothDispOn
mov r1, #0x0
mov r0, #0x3d
add r2, r1, #0x0
bl sub_0200433C
bl sub_02033F20
mov r0, #0x1
pop {r3-r5, pc}
nop
_02079DA0: .word 0xFFFFE0FF
_02079DA4: .word 0x04001000
_02079DA8: .word 0xFFFF1FFF
_02079DAC: .word 0x0000069C
_02079DB0: .word sub_02079F24
thumb_func_start sub_02079DB4
sub_02079DB4: ; 0x02079DB4
push {r3-r5, lr}
add r4, r1, #0x0
bl OverlayManager_GetData
ldr r1, [r4, #0x0]
add r5, r0, #0x0
cmp r1, #0x13
bhi _02079EA2
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #0x6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_02079DD0: ; jump table (using 16-bit offset)
.short _02079DF8 - _02079DD0 - 2; case 0
.short _02079E06 - _02079DD0 - 2; case 1
.short _02079E0E - _02079DD0 - 2; case 2
.short _02079E16 - _02079DD0 - 2; case 3
.short _02079E1E - _02079DD0 - 2; case 4
.short _02079E26 - _02079DD0 - 2; case 5
.short _02079E2E - _02079DD0 - 2; case 6
.short _02079E36 - _02079DD0 - 2; case 7
.short _02079E3E - _02079DD0 - 2; case 8
.short _02079E46 - _02079DD0 - 2; case 9
.short _02079E4E - _02079DD0 - 2; case 10
.short _02079E56 - _02079DD0 - 2; case 11
.short _02079E5E - _02079DD0 - 2; case 12
.short _02079E66 - _02079DD0 - 2; case 13
.short _02079E6E - _02079DD0 - 2; case 14
.short _02079E76 - _02079DD0 - 2; case 15
.short _02079E7E - _02079DD0 - 2; case 16
.short _02079E86 - _02079DD0 - 2; case 17
.short _02079E8E - _02079DD0 - 2; case 18
.short _02079E96 - _02079DD0 - 2; case 19
_02079DF8:
mov r0, #0x0
mov r1, #0x13
bl sub_02079A70
mov r0, #0x1
str r0, [r4, #0x0]
b _02079EA2
_02079E06:
bl sub_0207A2D8
str r0, [r4, #0x0]
b _02079EA2
_02079E0E:
bl sub_0207A310
str r0, [r4, #0x0]
b _02079EA2
_02079E16:
bl sub_0207A448
str r0, [r4, #0x0]
b _02079EA2
_02079E1E:
bl sub_0207A45C
str r0, [r4, #0x0]
b _02079EA2
_02079E26:
bl sub_0207A470
str r0, [r4, #0x0]
b _02079EA2
_02079E2E:
bl sub_0207A484
str r0, [r4, #0x0]
b _02079EA2
_02079E36:
bl sub_0207A498
str r0, [r4, #0x0]
b _02079EA2
_02079E3E:
bl sub_0207A57C
str r0, [r4, #0x0]
b _02079EA2
_02079E46:
bl sub_0207A654
str r0, [r4, #0x0]
b _02079EA2
_02079E4E:
bl sub_0207A760
str r0, [r4, #0x0]
b _02079EA2
_02079E56:
bl sub_0207A77C
str r0, [r4, #0x0]
b _02079EA2
_02079E5E:
bl sub_0207A790
str r0, [r4, #0x0]
b _02079EA2
_02079E66:
bl sub_0207A7A4
str r0, [r4, #0x0]
b _02079EA2
_02079E6E:
bl sub_0207A818
str r0, [r4, #0x0]
b _02079EA2
_02079E76:
bl sub_0207A884
str r0, [r4, #0x0]
b _02079EA2
_02079E7E:
bl sub_0207AA20
str r0, [r4, #0x0]
b _02079EA2
_02079E86:
bl sub_0207AA70
str r0, [r4, #0x0]
b _02079EA2
_02079E8E:
bl sub_0207AA88
str r0, [r4, #0x0]
b _02079EA2
_02079E96:
bl sub_0207AA98
cmp r0, #0x1
bne _02079EA2
mov r0, #0x1
pop {r3-r5, pc}
_02079EA2:
add r0, r5, #0x0
bl sub_0207C3F4
add r0, r5, #0x0
bl sub_0207CC88
add r0, r5, #0x0
bl sub_0207D3F4
ldr r0, _02079EC8 ; =0x00000404
ldr r0, [r5, r0]
bl sub_0200BC1C
add r0, r5, #0x0
bl sub_0207F008
mov r0, #0x0
pop {r3-r5, pc}
nop
_02079EC8: .word 0x00000404
thumb_func_start sub_02079ECC
sub_02079ECC: ; 0x02079ECC
push {r3-r5, lr}
add r4, r0, #0x0
bl OverlayManager_GetData
add r5, r0, #0x0
mov r0, #0x0
add r1, r0, #0x0
bl Main_SetVBlankIntrCB
add r0, r5, #0x0
bl sub_0207F068
add r0, r5, #0x0
bl sub_0207C3D4
add r0, r5, #0x0
bl sub_0207D74C
ldr r0, [r5, #0x0]
bl sub_0207A08C
bl sub_0201CD04
bl sub_0201C29C
add r0, r5, #0x0
bl sub_0207A264
mov r0, #0x0
bl sub_02002CC0
ldr r0, _02079F20 ; =0x04000050
mov r1, #0x0
strh r1, [r0, #0x0]
add r0, r4, #0x0
bl OverlayManager_FreeData
mov r0, #0x13
bl Heap_Destroy
mov r0, #0x1
pop {r3-r5, pc}
.balign 4
_02079F20: .word 0x04000050
thumb_func_start sub_02079F24
sub_02079F24: ; 0x02079F24
push {r4, lr}
add r4, r0, #0x0
ldr r0, [r4, #0x0]
bl DoScheduledBgGpuUpdates
mov r0, #0xae
lsl r0, r0, #0x2
ldr r0, [r4, r0]
bl sub_020081C4
bl sub_0201C30C
bl sub_0200BC30
ldr r3, _02079F50 ; =0x027E0000
ldr r1, _02079F54 ; =0x00003FF8
mov r0, #0x1
ldr r2, [r3, r1]
orr r0, r2
str r0, [r3, r1]
pop {r4, pc}
nop
_02079F50: .word 0x027E0000
_02079F54: .word 0x00003FF8
thumb_func_start sub_02079F58
sub_02079F58: ; 0x02079F58
push {r4, lr}
sub sp, #0x28
ldr r4, _02079F74 ; =UNK_020FA6C0
add r3, sp, #0x0
mov r2, #0x5
_02079F62:
ldmia r4!, {r0-r1}
stmia r3!, {r0-r1}
sub r2, r2, #0x1
bne _02079F62
add r0, sp, #0x0
bl GfGfx_SetBanks
add sp, #0x28
pop {r4, pc}
.balign 4
_02079F74: .word UNK_020FA6C0
thumb_func_start sub_02079F78
sub_02079F78: ; 0x02079F78
push {r4-r5, lr}
sub sp, #0x9c
ldr r5, _0207A074 ; =UNK_020FA624
add r3, sp, #0x8c
add r4, r0, #0x0
add r2, r3, #0x0
ldmia r5!, {r0-r1}
stmia r3!, {r0-r1}
ldmia r5!, {r0-r1}
stmia r3!, {r0-r1}
add r0, r2, #0x0
bl SetBothScreensModesAndDisable
ldr r5, _0207A078 ; =UNK_020FA650
add r3, sp, #0x70
ldmia r5!, {r0-r1}
add r2, r3, #0x0
stmia r3!, {r0-r1}
ldmia r5!, {r0-r1}
stmia r3!, {r0-r1}
ldmia r5!, {r0-r1}
stmia r3!, {r0-r1}
ldr r0, [r5, #0x0]
mov r1, #0x1
str r0, [r3, #0x0]
add r0, r4, #0x0
mov r3, #0x0
bl InitBgFromTemplate
add r0, r4, #0x0
mov r1, #0x1
bl BgClearTilemapBufferAndCommit
ldr r5, _0207A07C ; =UNK_020FA66C
add r3, sp, #0x54
ldmia r5!, {r0-r1}
add r2, r3, #0x0
stmia r3!, {r0-r1}
ldmia r5!, {r0-r1}
stmia r3!, {r0-r1}
ldmia r5!, {r0-r1}
stmia r3!, {r0-r1}
ldr r0, [r5, #0x0]
mov r1, #0x2
str r0, [r3, #0x0]
add r0, r4, #0x0
mov r3, #0x0
bl InitBgFromTemplate
add r0, r4, #0x0
mov r1, #0x2
bl BgClearTilemapBufferAndCommit
add r0, r4, #0x0
mov r1, #0x2
mov r2, #0x0
mov r3, #0x88
bl ScheduleSetBgPosText
ldr r5, _0207A080 ; =UNK_020FA688
add r3, sp, #0x38
ldmia r5!, {r0-r1}
add r2, r3, #0x0
stmia r3!, {r0-r1}
ldmia r5!, {r0-r1}
stmia r3!, {r0-r1}
ldmia r5!, {r0-r1}
stmia r3!, {r0-r1}
ldr r0, [r5, #0x0]
mov r1, #0x3
str r0, [r3, #0x0]
add r0, r4, #0x0
mov r3, #0x0
bl InitBgFromTemplate
ldr r5, _0207A084 ; =UNK_020FA6A4
add r3, sp, #0x1c
ldmia r5!, {r0-r1}
add r2, r3, #0x0
stmia r3!, {r0-r1}
ldmia r5!, {r0-r1}
stmia r3!, {r0-r1}
ldmia r5!, {r0-r1}
stmia r3!, {r0-r1}
ldr r0, [r5, #0x0]
mov r1, #0x4
str r0, [r3, #0x0]
add r0, r4, #0x0
mov r3, #0x0
bl InitBgFromTemplate
add r0, r4, #0x0
mov r1, #0x4
bl BgClearTilemapBufferAndCommit
ldr r5, _0207A088 ; =UNK_020FA634
add r3, sp, #0x0
ldmia r5!, {r0-r1}
add r2, r3, #0x0
stmia r3!, {r0-r1}
ldmia r5!, {r0-r1}
stmia r3!, {r0-r1}
ldmia r5!, {r0-r1}
stmia r3!, {r0-r1}
ldr r0, [r5, #0x0]
mov r1, #0x5
str r0, [r3, #0x0]
add r0, r4, #0x0
mov r3, #0x0
bl InitBgFromTemplate
mov r0, #0x1
mov r1, #0x20
mov r2, #0x0
mov r3, #0x13
bl BG_ClearCharDataRange
mov r0, #0x4
mov r1, #0x20
mov r2, #0x0
mov r3, #0x13
bl BG_ClearCharDataRange
add sp, #0x9c
pop {r4-r5, pc}
nop
_0207A074: .word UNK_020FA624
_0207A078: .word UNK_020FA650
_0207A07C: .word UNK_020FA66C
_0207A080: .word UNK_020FA688
_0207A084: .word UNK_020FA6A4
_0207A088: .word UNK_020FA634
thumb_func_start sub_0207A08C
sub_0207A08C: ; 0x0207A08C
push {r4, lr}
add r4, r0, #0x0
bl GfGfx_DisableEngineAPlanes
bl GfGfx_DisableEngineBPlanes
add r0, r4, #0x0
mov r1, #0x5
bl FreeBgTilemapBuffer
add r0, r4, #0x0
mov r1, #0x4
bl FreeBgTilemapBuffer
add r0, r4, #0x0
mov r1, #0x3
bl FreeBgTilemapBuffer
add r0, r4, #0x0
mov r1, #0x2
bl FreeBgTilemapBuffer
add r0, r4, #0x0
mov r1, #0x1
bl FreeBgTilemapBuffer
mov r0, #0x13
add r1, r4, #0x0
bl Heap_FreeExplicit
pop {r4, pc}
.balign 4
thumb_func_start sub_0207A0CC
sub_0207A0CC: ; 0x0207A0CC
push {r4, lr}
sub sp, #0x10
mov r1, #0x0
str r1, [sp, #0x0]
str r1, [sp, #0x4]
add r4, r0, #0x0
str r1, [sp, #0x8]
mov r0, #0x13
str r0, [sp, #0xc]
ldr r2, [r4, #0x0]
mov r0, #0x27
mov r3, #0x3
bl GfGfxLoader_LoadCharData
mov r0, #0x0
str r0, [sp, #0x0]
str r0, [sp, #0x4]
str r0, [sp, #0x8]
mov r0, #0x13
str r0, [sp, #0xc]
mov r1, #0x3
ldr r2, [r4, #0x0]
mov r0, #0x27
add r3, r1, #0x0
bl GfGfxLoader_LoadScrnData
mov r2, #0x0
str r2, [sp, #0x0]
mov r0, #0x13
str r0, [sp, #0x4]
mov r0, #0x27
mov r1, #0x1
add r3, r2, #0x0
bl GfGfxLoader_GXLoadPal
mov r0, #0x0
str r0, [sp, #0x0]
str r0, [sp, #0x4]
str r0, [sp, #0x8]
mov r0, #0x13
str r0, [sp, #0xc]
ldr r2, [r4, #0x0]
mov r0, #0x27
mov r1, #0xb
mov r3, #0x2
bl GfGfxLoader_LoadScrnData
mov r0, #0x0
str r0, [sp, #0x0]
str r0, [sp, #0x4]
str r0, [sp, #0x8]
mov r0, #0x13
str r0, [sp, #0xc]
ldr r2, [r4, #0x0]
mov r0, #0x27
mov r1, #0x2
mov r3, #0x4
bl GfGfxLoader_LoadCharData
mov r0, #0x0
str r0, [sp, #0x0]
str r0, [sp, #0x4]
str r0, [sp, #0x8]
mov r0, #0x13
str r0, [sp, #0xc]
ldr r2, [r4, #0x0]
mov r0, #0x27
mov r1, #0x10
mov r3, #0x5
bl GfGfxLoader_LoadCharData
mov r0, #0x0
str r0, [sp, #0x0]
str r0, [sp, #0x4]
str r0, [sp, #0x8]
mov r0, #0x13
str r0, [sp, #0xc]
ldr r2, [r4, #0x0]
mov r0, #0x27
mov r1, #0xf
mov r3, #0x5
bl GfGfxLoader_LoadScrnData
mov r3, #0x0
str r3, [sp, #0x0]
mov r0, #0x13
str r0, [sp, #0x4]
mov r0, #0x27
mov r1, #0xe
mov r2, #0x4
bl GfGfxLoader_GXLoadPal
add sp, #0x10
pop {r4, pc}
thumb_func_start sub_0207A188
sub_0207A188: ; 0x0207A188
push {r3, lr}
mov r0, #0x8
str r0, [sp, #0x0]
ldr r0, _0207A19C ; =0x04000050
mov r1, #0x1
mov r2, #0x1e
mov r3, #0x17
bl G2x_SetBlendAlpha_
pop {r3, pc}
.balign 4
_0207A19C: .word 0x04000050
thumb_func_start sub_0207A1A0
sub_0207A1A0: ; 0x0207A1A0
push {r4, lr}
mov r2, #0x65
add r4, r0, #0x0
mov r0, #0x0
mov r1, #0x1a
lsl r2, r2, #0x2
mov r3, #0x13
bl NewMsgDataFromNarc
ldr r1, _0207A250 ; =0x00000674
mov r2, #0x79
str r0, [r4, r1]
mov r0, #0x1
mov r1, #0x1a
lsl r2, r2, #0x2
mov r3, #0x13
bl NewMsgDataFromNarc
ldr r1, _0207A254 ; =0x00000678
mov r2, #0x0
str r0, [r4, r1]
mov r0, #0x1
mov r1, #0x2
mov r3, #0x13
bl MessagePrinter_New
mov r1, #0x67
lsl r1, r1, #0x4
str r0, [r4, r1]
mov r0, #0x13
bl MessageFormat_New
ldr r1, _0207A258 ; =0x0000067C
str r0, [r4, r1]
mov r0, #0xc
mov r1, #0x13
bl String_New
mov r1, #0x25
lsl r1, r1, #0x4
str r0, [r4, r1]
mov r0, #0xc
mov r1, #0x13
bl String_New
mov r1, #0x95
lsl r1, r1, #0x2
str r0, [r4, r1]
mov r0, #0x8
mov r1, #0x13
bl String_New
mov r1, #0x96
lsl r1, r1, #0x2
str r0, [r4, r1]
mov r0, #0x80
mov r1, #0x13
bl String_New
mov r1, #0x1a
lsl r1, r1, #0x6
str r0, [r4, r1]
mov r2, #0x93
mov r0, #0x0
mov r1, #0x1a
lsl r2, r2, #0x2
mov r3, #0x13
bl NewMsgDataFromNarc
ldr r1, _0207A25C ; =0x00000688
str r0, [r4, r1]
mov r0, #0x8
mov r1, #0x13
bl String_New
ldr r2, _0207A260 ; =0x00000684
str r0, [r4, r2]
mov r0, #0x93
lsl r0, r0, #0x2
ldr r0, [r4, r0]
ldr r1, [r0, #0x8]
cmp r1, #0x0
beq _0207A24C
ldr r0, [r4, r2]
bl CopyU16ArrayToString
_0207A24C:
pop {r4, pc}
nop
_0207A250: .word 0x00000674
_0207A254: .word 0x00000678
_0207A258: .word 0x0000067C
_0207A25C: .word 0x00000688
_0207A260: .word 0x00000684
thumb_func_start sub_0207A264
sub_0207A264: ; 0x0207A264
push {r4, lr}
add r4, r0, #0x0
ldr r0, _0207A2C4 ; =0x00000688
ldr r0, [r4, r0]
bl DestroyMsgData
ldr r0, _0207A2C8 ; =0x00000678
ldr r0, [r4, r0]
bl DestroyMsgData
ldr r0, _0207A2CC ; =0x00000674
ldr r0, [r4, r0]
bl DestroyMsgData
mov r0, #0x67
lsl r0, r0, #0x4
ldr r0, [r4, r0]
bl MessagePrinter_Delete
ldr r0, _0207A2D0 ; =0x0000067C
ldr r0, [r4, r0]
bl MessageFormat_Delete
mov r0, #0x25
lsl r0, r0, #0x4
ldr r0, [r4, r0]
bl String_Delete
mov r0, #0x95
lsl r0, r0, #0x2
ldr r0, [r4, r0]
bl String_Delete
mov r0, #0x96
lsl r0, r0, #0x2
ldr r0, [r4, r0]
bl String_Delete
mov r0, #0x1a
lsl r0, r0, #0x6
ldr r0, [r4, r0]
bl String_Delete
ldr r0, _0207A2D4 ; =0x00000684
ldr r0, [r4, r0]
bl String_Delete
pop {r4, pc}
.balign 4
_0207A2C4: .word 0x00000688
_0207A2C8: .word 0x00000678
_0207A2CC: .word 0x00000674
_0207A2D0: .word 0x0000067C
_0207A2D4: .word 0x00000684
thumb_func_start sub_0207A2D8
sub_0207A2D8: ; 0x0207A2D8
push {r4, lr}
add r4, r0, #0x0
bl IsPaletteFadeFinished
cmp r0, #0x1
bne _0207A30C
add r0, r4, #0x0
bl sub_0207F8D0
add r0, r4, #0x0
bl sub_0207AF20
mov r0, #0x93
lsl r0, r0, #0x2
ldr r0, [r4, r0]
ldrb r0, [r0, #0x12]
cmp r0, #0x2
bne _0207A300
mov r0, #0x9
pop {r4, pc}
_0207A300:
cmp r0, #0x4
bne _0207A308
mov r0, #0xf
pop {r4, pc}
_0207A308:
mov r0, #0x2
pop {r4, pc}
_0207A30C:
mov r0, #0x1
pop {r4, pc}
thumb_func_start sub_0207A310
sub_0207A310: ; 0x0207A310
push {r4-r6, lr}
ldr r3, _0207A438 ; =0x0000068F
add r4, r0, #0x0
ldrb r1, [r4, r3]
lsl r1, r1, #0x18
lsr r1, r1, #0x1c
cmp r1, #0x1
bne _0207A32E
mov r0, #0x93
lsl r0, r0, #0x2
ldr r0, [r4, r0]
mov r1, #0x1
strb r1, [r0, #0x17]
mov r0, #0x12
pop {r4-r6, pc}
_0207A32E:
ldr r2, _0207A43C ; =gSystem
mov r1, #0x20
ldr r5, [r2, #0x4c]
add r6, r5, #0x0
tst r6, r1
beq _0207A344
sub r1, #0x21
bl sub_0207B178
mov r0, #0x2
pop {r4-r6, pc}
_0207A344:
mov r1, #0x10
tst r1, r5
beq _0207A354
mov r1, #0x1
bl sub_0207B178
mov r0, #0x2
pop {r4-r6, pc}
_0207A354:
mov r1, #0x40
add r6, r5, #0x0
tst r6, r1
beq _0207A366
sub r1, #0x41
bl sub_0207B3F0
mov r0, #0x2
pop {r4-r6, pc}
_0207A366:
mov r1, #0x80
tst r1, r5
beq _0207A376
mov r1, #0x1
bl sub_0207B3F0
mov r0, #0x2
pop {r4-r6, pc}
_0207A376:
ldr r1, [r2, #0x48]
mov r0, #0x2
tst r0, r1
beq _0207A394
sub r3, #0xb2
add r0, r3, #0x0
bl PlaySE
mov r0, #0x93
lsl r0, r0, #0x2
ldr r0, [r4, r0]
mov r1, #0x1
strb r1, [r0, #0x17]
mov r0, #0x12
pop {r4-r6, pc}
_0207A394:
mov r0, #0x1
tst r0, r1
beq _0207A420
mov r0, #0x93
lsl r0, r0, #0x2
ldr r0, [r4, r0]
ldrb r0, [r0, #0x12]
cmp r0, #0x3
bne _0207A3BE
sub r0, r3, #0x3
ldrsb r0, [r4, r0]
cmp r0, #0x4
bne _0207A3BE
sub r3, #0xb2
add r0, r3, #0x0
bl PlaySE
add r0, r4, #0x0
bl sub_0207C23C
pop {r4-r6, pc}
_0207A3BE:
ldr r0, _0207A440 ; =0x0000068C
ldrsb r1, [r4, r0]
cmp r1, #0x3
bne _0207A3D6
add r0, #0x10
bl PlaySE
ldr r0, _0207A444 ; =0x0000068E
mov r1, #0x0
strb r1, [r4, r0]
mov r0, #0x3
pop {r4-r6, pc}
_0207A3D6:
cmp r1, #0x5
bne _0207A3EA
add r0, #0x10
bl PlaySE
ldr r0, _0207A444 ; =0x0000068E
mov r1, #0x0
strb r1, [r4, r0]
mov r0, #0x5
pop {r4-r6, pc}
_0207A3EA:
cmp r1, #0x6
bne _0207A408
add r1, r0, #0x0
add r1, #0xd
ldrb r1, [r4, r1]
cmp r1, #0x0
beq _0207A420
sub r0, #0xaf
bl PlaySE
ldr r0, _0207A444 ; =0x0000068E
mov r1, #0x0
strb r1, [r4, r0]
mov r0, #0xb
pop {r4-r6, pc}
_0207A408:
cmp r1, #0x7
bne _0207A420
sub r0, #0xaf
bl PlaySE
mov r0, #0x93
lsl r0, r0, #0x2
ldr r0, [r4, r0]
mov r1, #0x1
strb r1, [r0, #0x17]
mov r0, #0x12
pop {r4-r6, pc}
_0207A420:
add r0, r4, #0x0
bl sub_0207B200
cmp r0, #0x1
bne _0207A434
ldr r0, _0207A444 ; =0x0000068E
mov r1, #0x2
strb r1, [r4, r0]
mov r0, #0xe
pop {r4-r6, pc}
_0207A434:
mov r0, #0x2
pop {r4-r6, pc}
.balign 4
_0207A438: .word 0x0000068F
_0207A43C: .word gSystem
_0207A440: .word 0x0000068C
_0207A444: .word 0x0000068E
thumb_func_start sub_0207A448
sub_0207A448: ; 0x0207A448
push {r3, lr}
bl sub_0207B66C
cmp r0, #0x1
bne _0207A456
mov r0, #0x7
pop {r3, pc}
_0207A456:
mov r0, #0x3
pop {r3, pc}
.balign 4
thumb_func_start sub_0207A45C
sub_0207A45C: ; 0x0207A45C
push {r3, lr}
bl sub_0207B788
cmp r0, #0x1
bne _0207A46A
mov r0, #0x2
pop {r3, pc}
_0207A46A:
mov r0, #0x4
pop {r3, pc}
.balign 4
thumb_func_start sub_0207A470
sub_0207A470: ; 0x0207A470
push {r3, lr}
bl sub_0207BAEC
cmp r0, #0x1
bne _0207A47E
mov r0, #0x7
pop {r3, pc}
_0207A47E:
mov r0, #0x5
pop {r3, pc}
.balign 4
thumb_func_start sub_0207A484
sub_0207A484: ; 0x0207A484
push {r3, lr}
bl sub_0207BBF0
cmp r0, #0x1
bne _0207A492
mov r0, #0x2
pop {r3, pc}
_0207A492:
mov r0, #0x6
pop {r3, pc}
.balign 4
thumb_func_start sub_0207A498
sub_0207A498: ; 0x0207A498
push {r4, lr}
ldr r1, _0207A568 ; =gSystem
add r4, r0, #0x0
ldr r2, [r1, #0x48]
mov r1, #0x40
add r3, r2, #0x0
tst r3, r1
beq _0207A4C2
sub r1, #0x41
bl sub_0207B878
cmp r0, #0x1
bne _0207A4BE
ldr r0, _0207A56C ; =0x000005DC
bl PlaySE
add r0, r4, #0x0
bl sub_0207B8D8
_0207A4BE:
mov r0, #0x7
pop {r4, pc}
_0207A4C2:
mov r1, #0x80
tst r1, r2
beq _0207A4E2
mov r1, #0x1
bl sub_0207B878
cmp r0, #0x1
bne _0207A4DE
ldr r0, _0207A56C ; =0x000005DC
bl PlaySE
add r0, r4, #0x0
bl sub_0207B8D8
_0207A4DE:
mov r0, #0x7
pop {r4, pc}
_0207A4E2:
mov r0, #0x1
tst r0, r2
beq _0207A542
ldr r0, _0207A570 ; =0x0000068D
ldrb r1, [r4, r0]
lsl r1, r1, #0x1c
lsr r1, r1, #0x1c
cmp r1, #0x4
bne _0207A510
add r0, #0xf
bl PlaySE
ldr r0, _0207A574 ; =0x0000068E
mov r1, #0x0
strb r1, [r4, r0]
sub r0, r0, #0x2
ldrsb r0, [r4, r0]
cmp r0, #0x3
bne _0207A50C
mov r0, #0x4
pop {r4, pc}
_0207A50C:
mov r0, #0x6
pop {r4, pc}
_0207A510:
mov r1, #0x93
lsl r1, r1, #0x2
ldr r1, [r4, r1]
ldrb r1, [r1, #0x12]
cmp r1, #0x1
beq _0207A542
sub r0, #0xb0
bl PlaySE
add r0, r4, #0x0
bl sub_0207CBE8
ldr r2, _0207A570 ; =0x0000068D
mov r1, #0xf0
ldrb r3, [r4, r2]
add r0, r3, #0x0
bic r0, r1
lsl r1, r3, #0x1c
lsr r1, r1, #0x1c
lsl r1, r1, #0x1c
lsr r1, r1, #0x18
orr r0, r1
strb r0, [r4, r2]
mov r0, #0x8
pop {r4, pc}
_0207A542:
mov r0, #0x2
tst r0, r2
beq _0207A564
ldr r0, _0207A578 ; =0x0000069C
bl PlaySE
ldr r0, _0207A574 ; =0x0000068E
mov r1, #0x0
strb r1, [r4, r0]
sub r0, r0, #0x2
ldrsb r0, [r4, r0]
cmp r0, #0x3
bne _0207A560
mov r0, #0x4
pop {r4, pc}
_0207A560:
mov r0, #0x6
pop {r4, pc}
_0207A564:
mov r0, #0x7
pop {r4, pc}
.balign 4
_0207A568: .word gSystem
_0207A56C: .word 0x000005DC
_0207A570: .word 0x0000068D
_0207A574: .word 0x0000068E
_0207A578: .word 0x0000069C
thumb_func_start sub_0207A57C
sub_0207A57C: ; 0x0207A57C
push {r4, lr}
ldr r1, _0207A644 ; =gSystem
add r4, r0, #0x0
ldr r2, [r1, #0x48]
mov r1, #0x40
add r3, r2, #0x0
tst r3, r1
beq _0207A5A6
sub r1, #0x41
bl sub_0207B878
cmp r0, #0x1
bne _0207A5A2
ldr r0, _0207A648 ; =0x000005DC
bl PlaySE
add r0, r4, #0x0
bl sub_0207B8D8
_0207A5A2:
mov r0, #0x8
pop {r4, pc}
_0207A5A6:
mov r1, #0x80
tst r1, r2
beq _0207A5C6
mov r1, #0x1
bl sub_0207B878
cmp r0, #0x1
bne _0207A5C2
ldr r0, _0207A648 ; =0x000005DC
bl PlaySE
add r0, r4, #0x0
bl sub_0207B8D8
_0207A5C2:
mov r0, #0x8
pop {r4, pc}
_0207A5C6:
mov r0, #0x1
tst r0, r2
beq _0207A622
mov r0, #0x43
lsl r0, r0, #0x4
ldr r0, [r4, r0]
mov r1, #0x0
bl sub_020200A0
ldr r0, _0207A64C ; =0x0000068D
ldrb r1, [r4, r0]
lsl r2, r1, #0x1c
lsr r2, r2, #0x1c
cmp r2, #0x4
beq _0207A618
lsl r1, r1, #0x18
lsr r1, r1, #0x1c
cmp r2, r1
beq _0207A618
sub r0, #0xb0
bl PlaySE
add r0, r4, #0x0
bl sub_0207B9C0
ldr r1, _0207A64C ; =0x0000068D
add r0, r4, #0x0
ldrb r2, [r4, r1]
lsl r1, r2, #0x1c
lsl r2, r2, #0x18
lsr r1, r1, #0x1c
lsr r2, r2, #0x1c
bl sub_0207CB08
add r0, r4, #0x0
bl sub_0207ED30
add r0, r4, #0x0
bl sub_0207B8D8
b _0207A61E
_0207A618:
ldr r0, _0207A650 ; =0x000005DD
bl PlaySE
_0207A61E:
mov r0, #0x7
pop {r4, pc}
_0207A622:
mov r0, #0x2
tst r0, r2
beq _0207A63E
ldr r0, _0207A650 ; =0x000005DD
bl PlaySE
mov r0, #0x43
lsl r0, r0, #0x4
ldr r0, [r4, r0]
mov r1, #0x0
bl sub_020200A0
mov r0, #0x7
pop {r4, pc}
_0207A63E:
mov r0, #0x8
pop {r4, pc}
nop
_0207A644: .word gSystem
_0207A648: .word 0x000005DC
_0207A64C: .word 0x0000068D
_0207A650: .word 0x000005DD
thumb_func_start sub_0207A654
sub_0207A654: ; 0x0207A654
push {r4, lr}
ldr r1, _0207A750 ; =gSystem
add r4, r0, #0x0
ldr r2, [r1, #0x48]
mov r1, #0x20
add r3, r2, #0x0
tst r3, r1
beq _0207A66E
sub r1, #0x21
bl sub_0207B178
mov r0, #0x9
pop {r4, pc}
_0207A66E:
mov r1, #0x10
tst r1, r2
beq _0207A67E
mov r1, #0x1
bl sub_0207B178
mov r0, #0x9
pop {r4, pc}
_0207A67E:
mov r1, #0x40
add r3, r2, #0x0
tst r3, r1
beq _0207A6A0
sub r1, #0x41
bl sub_0207B878
cmp r0, #0x1
bne _0207A69C
ldr r0, _0207A754 ; =0x000005DC
bl PlaySE
add r0, r4, #0x0
bl sub_0207B8D8
_0207A69C:
mov r0, #0x9
pop {r4, pc}
_0207A6A0:
mov r1, #0x80
tst r1, r2
beq _0207A6C0
mov r1, #0x1
bl sub_0207B878
cmp r0, #0x1
bne _0207A6BC
ldr r0, _0207A754 ; =0x000005DC
bl PlaySE
add r0, r4, #0x0
bl sub_0207B8D8
_0207A6BC:
mov r0, #0x9
pop {r4, pc}
_0207A6C0:
mov r0, #0x1
tst r0, r2
beq _0207A72C
ldr r0, _0207A758 ; =0x000005DD
bl PlaySE
ldr r0, _0207A75C ; =0x0000068D
ldrb r0, [r4, r0]
lsl r0, r0, #0x1c
lsr r0, r0, #0x1c
cmp r0, #0x4
beq _0207A712
lsl r0, r0, #0x1
add r1, r4, r0
mov r0, #0xa1
lsl r0, r0, #0x2
ldrh r0, [r1, r0]
bl MoveIsHM
cmp r0, #0x1
bne _0207A712
mov r0, #0x93
lsl r0, r0, #0x2
ldr r0, [r4, r0]
ldrh r0, [r0, #0x18]
cmp r0, #0x0
beq _0207A712
mov r0, #0x45
lsl r0, r0, #0x4
ldr r0, [r4, r0]
mov r1, #0x0
bl sub_0200C63C
add r0, r4, #0x0
bl sub_0207BD58
add r0, r4, #0x0
bl sub_0207EDB4
mov r0, #0xa
pop {r4, pc}
_0207A712:
ldr r0, _0207A75C ; =0x0000068D
ldrb r0, [r4, r0]
lsl r0, r0, #0x1c
lsr r2, r0, #0x1c
mov r0, #0x93
lsl r0, r0, #0x2
ldr r1, [r4, r0]
strb r2, [r1, #0x16]
ldr r0, [r4, r0]
mov r1, #0x0
strb r1, [r0, #0x17]
mov r0, #0x12
pop {r4, pc}
_0207A72C:
mov r0, #0x2
tst r0, r2
beq _0207A74C
ldr r0, _0207A758 ; =0x000005DD
bl PlaySE
mov r0, #0x93
lsl r0, r0, #0x2
ldr r1, [r4, r0]
mov r2, #0x4
strb r2, [r1, #0x16]
ldr r0, [r4, r0]
mov r1, #0x1
strb r1, [r0, #0x17]
mov r0, #0x12
pop {r4, pc}
_0207A74C:
mov r0, #0x9
pop {r4, pc}
.balign 4
_0207A750: .word gSystem
_0207A754: .word 0x000005DC
_0207A758: .word 0x000005DD
_0207A75C: .word 0x0000068D
thumb_func_start sub_0207A760
sub_0207A760: ; 0x0207A760
push {r3, lr}
ldr r1, _0207A778 ; =gSystem
ldr r2, [r1, #0x48]
mov r1, #0x3
tst r1, r2
beq _0207A774
bl sub_0207B8D8
mov r0, #0x9
pop {r3, pc}
_0207A774:
mov r0, #0xa
pop {r3, pc}
.balign 4
_0207A778: .word gSystem
thumb_func_start sub_0207A77C
sub_0207A77C: ; 0x0207A77C
push {r3, lr}
bl sub_0207BE68
cmp r0, #0x1
bne _0207A78A
mov r0, #0xd
pop {r3, pc}
_0207A78A:
mov r0, #0xb
pop {r3, pc}
.balign 4
thumb_func_start sub_0207A790
sub_0207A790: ; 0x0207A790
push {r3, lr}
bl sub_0207BF90
cmp r0, #0x1
bne _0207A79E
mov r0, #0x2
pop {r3, pc}
_0207A79E:
mov r0, #0xc
pop {r3, pc}
.balign 4
thumb_func_start sub_0207A7A4
sub_0207A7A4: ; 0x0207A7A4
push {r3-r5, lr}
ldr r3, _0207A80C ; =gSystem
mov r1, #0x20
ldr r2, [r3, #0x4c]
add r4, r0, #0x0
add r5, r2, #0x0
tst r5, r1
beq _0207A7BE
sub r1, #0x21
bl sub_0207C07C
mov r0, #0xd
pop {r3-r5, pc}
_0207A7BE:
mov r1, #0x10
tst r1, r2
beq _0207A7CE
mov r1, #0x1
bl sub_0207C07C
mov r0, #0xd
pop {r3-r5, pc}
_0207A7CE:
mov r1, #0x40
add r5, r2, #0x0
tst r5, r1
beq _0207A7E0
sub r1, #0x44
bl sub_0207C07C
mov r0, #0xd
pop {r3-r5, pc}
_0207A7E0:
mov r1, #0x80
tst r1, r2
beq _0207A7F0
mov r1, #0x4
bl sub_0207C07C
mov r0, #0xd
pop {r3-r5, pc}
_0207A7F0:
ldr r1, [r3, #0x48]
mov r0, #0x3
tst r0, r1
beq _0207A808
ldr r0, _0207A810 ; =0x000005DD
bl PlaySE
ldr r0, _0207A814 ; =0x0000068E
mov r1, #0x0
strb r1, [r4, r0]
mov r0, #0xc
pop {r3-r5, pc}
_0207A808:
mov r0, #0xd
pop {r3-r5, pc}
.balign 4
_0207A80C: .word gSystem
_0207A810: .word 0x000005DD
_0207A814: .word 0x0000068E
thumb_func_start sub_0207A818
sub_0207A818: ; 0x0207A818
push {r4, lr}
add r4, r0, #0x0
bl sub_0207FB28
cmp r0, #0x1
bne _0207A82A
ldr r0, _0207A878 ; =0x0000068E
ldrb r0, [r4, r0]
pop {r4, pc}
_0207A82A:
ldr r1, _0207A87C ; =0x00000695
ldrb r0, [r4, r1]
cmp r0, #0x1
bne _0207A874
add r1, r1, #0x1
ldrb r1, [r4, r1]
add r0, r4, #0x0
bl sub_0207FC40
add r1, r0, #0x0
cmp r1, #0x7
bne _0207A850
ldr r2, _0207A880 ; =0x0000068F
mov r0, #0xf0
ldrb r3, [r4, r2]
bic r3, r0
mov r0, #0x10
orr r0, r3
strb r0, [r4, r2]
_0207A850:
mov r0, #0x2a
lsl r0, r0, #0x4
ldr r0, [r4, r0]
lsl r0, r0, #0x3
lsr r0, r0, #0x1f
cmp r0, #0x1
bne _0207A86E
cmp r1, #0x1
beq _0207A866
cmp r1, #0x7
bne _0207A874
_0207A866:
add r0, r4, #0x0
bl sub_0207B0CC
b _0207A874
_0207A86E:
add r0, r4, #0x0
bl sub_0207B0CC
_0207A874:
mov r0, #0xe
pop {r4, pc}
.balign 4
_0207A878: .word 0x0000068E
_0207A87C: .word 0x00000695
_0207A880: .word 0x0000068F
thumb_func_start sub_0207A884
sub_0207A884: ; 0x0207A884
push {r4-r6, lr}
sub sp, #0x8
ldr r1, _0207AA00 ; =gSystem
add r5, r0, #0x0
ldr r2, [r1, #0x48]
mov r1, #0x3
tst r1, r2
bne _0207A896
b _0207A9FA
_0207A896:
mov r1, #0x93
lsl r1, r1, #0x2
ldr r1, [r5, r1]
ldrb r1, [r1, #0x11]
cmp r1, #0x2
bne _0207A8BA
bl sub_0207B628
add r6, r0, #0x0
mov r0, #0x13
bl AllocMonZeroed
add r4, r0, #0x0
add r0, r6, #0x0
add r1, r4, #0x0
bl CopyBoxPokemonToPokemon
b _0207A8C0
_0207A8BA:
bl sub_0207B628
add r4, r0, #0x0
_0207A8C0:
mov r0, #0x93
lsl r0, r0, #0x2
ldr r0, [r5, r0]
add r1, r4, #0x0
ldr r0, [r0, #0x24]
bl sub_0208821C
ldr r0, _0207AA04 ; =0x0000068E
mov r2, #0x0
strb r2, [r5, r0]
ldr r0, _0207AA08 ; =0x00000295
mov r1, #0x13
ldrb r6, [r5, r0]
add r0, r4, #0x0
bl GetMonData
ldr r1, _0207AA08 ; =0x00000295
strb r0, [r5, r1]
ldrb r0, [r5, r1]
cmp r6, r0
beq _0207A8F4
ldr r1, _0207AA04 ; =0x0000068E
mov r0, #0x1
ldrb r2, [r5, r1]
orr r0, r2
strb r0, [r5, r1]
_0207A8F4:
ldr r0, _0207AA0C ; =0x00000296
mov r1, #0x14
ldrb r6, [r5, r0]
add r0, r4, #0x0
mov r2, #0x0
bl GetMonData
ldr r1, _0207AA0C ; =0x00000296
strb r0, [r5, r1]
ldrb r0, [r5, r1]
cmp r6, r0
beq _0207A916
ldr r1, _0207AA04 ; =0x0000068E
mov r0, #0x2
ldrb r2, [r5, r1]
orr r0, r2
strb r0, [r5, r1]
_0207A916:
ldr r0, _0207AA10 ; =0x00000297
mov r1, #0x15
ldrb r6, [r5, r0]
add r0, r4, #0x0
mov r2, #0x0
bl GetMonData
ldr r1, _0207AA10 ; =0x00000297
strb r0, [r5, r1]
ldrb r0, [r5, r1]
cmp r6, r0
beq _0207A938
ldr r1, _0207AA04 ; =0x0000068E
mov r0, #0x4
ldrb r2, [r5, r1]
orr r0, r2
strb r0, [r5, r1]
_0207A938:
mov r0, #0xa6
lsl r0, r0, #0x2
ldrb r6, [r5, r0]
add r0, r4, #0x0
mov r1, #0x16
mov r2, #0x0
bl GetMonData
mov r1, #0xa6
lsl r1, r1, #0x2
strb r0, [r5, r1]
ldrb r0, [r5, r1]
cmp r6, r0
beq _0207A95E
ldr r1, _0207AA04 ; =0x0000068E
mov r0, #0x8
ldrb r2, [r5, r1]
orr r0, r2
strb r0, [r5, r1]
_0207A95E:
ldr r0, _0207AA14 ; =0x00000299
mov r1, #0x17
ldrb r6, [r5, r0]
add r0, r4, #0x0
mov r2, #0x0
bl GetMonData
ldr r1, _0207AA14 ; =0x00000299
strb r0, [r5, r1]
ldrb r0, [r5, r1]
cmp r6, r0
beq _0207A980
ldr r1, _0207AA04 ; =0x0000068E
mov r0, #0x10
ldrb r2, [r5, r1]
orr r0, r2
strb r0, [r5, r1]
_0207A980:
add r0, r4, #0x0
mov r1, #0x18
mov r2, #0x0
bl GetMonData
ldr r1, _0207AA18 ; =0x0000029A
strb r0, [r5, r1]
sub r1, #0x4e
ldr r0, [r5, r1]
ldrb r0, [r0, #0x11]
cmp r0, #0x2
bne _0207A99E
add r0, r4, #0x0
bl Heap_Free
_0207A99E:
mov r1, #0x7
mov r0, #0x0
lsl r1, r1, #0x6
mov r2, #0x13
bl LoadFontPal1
mov r0, #0x93
lsl r0, r0, #0x2
ldr r0, [r5, r0]
ldr r0, [r0, #0x4]
bl Options_GetFrame
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x0]
mov r0, #0x13
str r0, [sp, #0x4]
ldr r0, [r5, #0x0]
ldr r2, _0207AA1C ; =0x000003E2
mov r1, #0x1
mov r3, #0xd
bl sub_0200CD68
ldr r0, _0207AA04 ; =0x0000068E
ldrb r0, [r5, r0]
cmp r0, #0x0
bne _0207A9E2
add r0, r5, #0x0
mov r1, #0xfe
bl sub_0207EECC
add sp, #0x8
mov r0, #0x11
pop {r4-r6, pc}
_0207A9E2:
add r0, r5, #0x0
bl sub_0207F608
add r0, r5, #0x0
bl sub_0207CC24
add r0, r5, #0x0
bl sub_0207CF78
add sp, #0x8
mov r0, #0x10
pop {r4-r6, pc}
_0207A9FA:
mov r0, #0xf
add sp, #0x8
pop {r4-r6, pc}
.balign 4
_0207AA00: .word gSystem
_0207AA04: .word 0x0000068E
_0207AA08: .word 0x00000295
_0207AA0C: .word 0x00000296
_0207AA10: .word 0x00000297
_0207AA14: .word 0x00000299
_0207AA18: .word 0x0000029A
_0207AA1C: .word 0x000003E2
thumb_func_start sub_0207AA20
sub_0207AA20: ; 0x0207AA20
push {r3-r5, lr}
add r5, r0, #0x0
ldr r0, _0207AA68 ; =gSystem
ldr r1, [r0, #0x48]
mov r0, #0x3
tst r0, r1
beq _0207AA62
ldr r0, _0207AA6C ; =0x0000068E
mov r1, #0x0
ldrb r2, [r5, r0]
mov r0, #0x1
_0207AA36:
add r4, r0, #0x0
lsl r4, r1
add r3, r2, #0x0
tst r3, r4
beq _0207AA58
add r0, r5, #0x0
bl sub_0207EECC
ldr r0, _0207AA6C ; =0x0000068E
ldrb r1, [r5, r0]
eor r1, r4
strb r1, [r5, r0]
ldrb r0, [r5, r0]
cmp r0, #0x0
bne _0207AA62
mov r0, #0x11
pop {r3-r5, pc}
_0207AA58:
add r1, r1, #0x1
lsl r1, r1, #0x18
lsr r1, r1, #0x18
cmp r1, #0x5
blo _0207AA36
_0207AA62:
mov r0, #0x10
pop {r3-r5, pc}
nop
_0207AA68: .word gSystem
_0207AA6C: .word 0x0000068E
thumb_func_start sub_0207AA70
sub_0207AA70: ; 0x0207AA70
ldr r0, _0207AA84 ; =gSystem
ldr r1, [r0, #0x48]
mov r0, #0x3
tst r0, r1
beq _0207AA7E
mov r0, #0x12
bx lr
_0207AA7E:
mov r0, #0x11
bx lr
nop
_0207AA84: .word gSystem
thumb_func_start sub_0207AA88
sub_0207AA88: ; 0x0207AA88
push {r3, lr}
mov r0, #0x1
mov r1, #0x13
bl sub_02079A70
mov r0, #0x13
pop {r3, pc}
.balign 4
thumb_func_start sub_0207AA98
sub_0207AA98: ; 0x0207AA98
push {r3, lr}
bl IsPaletteFadeFinished
cmp r0, #0x1
bne _0207AAA6
mov r0, #0x1
b _0207AAA8
_0207AAA6:
mov r0, #0x0
_0207AAA8:
lsl r0, r0, #0x18
lsr r0, r0, #0x18
pop {r3, pc}
.balign 4
thumb_func_start sub_0207AAB0
sub_0207AAB0: ; 0x0207AAB0
push {r4, lr}
add r4, r0, #0x0
bl sub_0207B628
mov r2, #0x93
lsl r2, r2, #0x2
add r1, r0, #0x0
ldr r0, [r4, r2]
ldrb r0, [r0, #0x11]
cmp r0, #0x2
bne _0207AAD2
add r2, r2, #0x4
add r0, r4, #0x0
add r2, r4, r2
bl sub_0207AAE0
pop {r4, pc}
_0207AAD2:
add r2, r2, #0x4
add r0, r4, #0x0
add r2, r4, r2
bl sub_0207AB0C
pop {r4, pc}
.balign 4
thumb_func_start sub_0207AAE0
sub_0207AAE0: ; 0x0207AAE0
push {r3-r7, lr}
add r5, r0, #0x0
mov r0, #0x13
add r6, r1, #0x0
add r7, r2, #0x0
bl AllocMonZeroed
add r4, r0, #0x0
add r0, r6, #0x0
add r1, r4, #0x0
bl CopyBoxPokemonToPokemon
add r0, r5, #0x0
add r1, r4, #0x0
add r2, r7, #0x0
bl sub_0207AB0C
add r0, r4, #0x0
bl Heap_Free
pop {r3-r7, pc}
.balign 4
thumb_func_start sub_0207AB0C
sub_0207AB0C: ; 0x0207AB0C
push {r3-r7, lr}
sub sp, #0x8
add r6, r1, #0x0
add r7, r0, #0x0
add r0, r6, #0x0
add r5, r2, #0x0
bl AcquireMonLock
str r0, [sp, #0x4]
add r0, r6, #0x0
mov r1, #0x5
mov r2, #0x0
bl GetMonData
strh r0, [r5, #0xc]
add r0, r6, #0x0
bl sub_020690E4
ldr r2, _0207AEAC ; =0x00000674
add r4, r0, #0x0
ldr r0, [r7, r2]
add r2, #0xc
ldr r2, [r7, r2]
mov r1, #0xb
bl ReadMsgDataIntoString
ldr r0, _0207AEB0 ; =0x0000067C
mov r1, #0x0
ldr r0, [r7, r0]
add r2, r4, #0x0
bl BufferBoxMonSpeciesName
ldr r2, _0207AEB0 ; =0x0000067C
mov r1, #0x25
ldr r0, [r7, r2]
lsl r1, r1, #0x4
add r2, r2, #0x4
ldr r1, [r7, r1]
ldr r2, [r7, r2]
bl StringExpandPlaceholders
ldr r2, _0207AEAC ; =0x00000674
mov r1, #0x0
ldr r0, [r7, r2]
add r2, #0xc
ldr r2, [r7, r2]
bl ReadMsgDataIntoString
ldr r0, _0207AEB0 ; =0x0000067C
mov r1, #0x0
ldr r0, [r7, r0]
add r2, r4, #0x0
bl BufferBoxMonNickname
ldr r2, _0207AEB0 ; =0x0000067C
mov r1, #0x95
ldr r0, [r7, r2]
lsl r1, r1, #0x2
add r2, r2, #0x4
ldr r1, [r7, r1]
ldr r2, [r7, r2]
bl StringExpandPlaceholders
ldr r2, _0207AEAC ; =0x00000674
mov r1, #0xe
ldr r0, [r7, r2]
add r2, #0xc
ldr r2, [r7, r2]
bl ReadMsgDataIntoString
ldr r0, _0207AEB0 ; =0x0000067C
mov r1, #0x0
ldr r0, [r7, r0]
add r2, r4, #0x0
bl BufferBoxMonOTName
ldr r2, _0207AEB0 ; =0x0000067C
mov r1, #0x96
ldr r0, [r7, r2]
lsl r1, r1, #0x2
add r2, r2, #0x4
ldr r1, [r7, r1]
ldr r2, [r7, r2]
bl StringExpandPlaceholders
add r0, r6, #0x0
mov r1, #0x6
mov r2, #0x0
bl GetMonData
strh r0, [r5, #0xe]
add r0, r6, #0x0
mov r1, #0xa0
mov r2, #0x0
bl GetMonData
ldrb r1, [r5, #0x12]
mov r2, #0x7f
lsl r0, r0, #0x18
bic r1, r2
lsr r2, r0, #0x18
mov r0, #0x7f
and r0, r2
orr r0, r1
strb r0, [r5, #0x12]
add r0, r6, #0x0
mov r1, #0x4c
mov r2, #0x0
bl GetMonData
lsl r0, r0, #0x1f
ldr r2, [r5, #0x50]
ldr r1, _0207AEB4 ; =0xEFFFFFFF
lsr r0, r0, #0x3
and r1, r2
orr r0, r1
str r0, [r5, #0x50]
add r0, r6, #0x0
mov r1, #0xaf
mov r2, #0x0
bl GetMonData
cmp r0, #0x1
bne _0207AC16
ldr r0, [r5, #0x50]
lsl r0, r0, #0x3
lsr r0, r0, #0x1f
bne _0207AC16
ldrb r1, [r5, #0x12]
mov r0, #0x80
bic r1, r0
strb r1, [r5, #0x12]
b _0207AC1E
_0207AC16:
ldrb r1, [r5, #0x12]
mov r0, #0x80
orr r0, r1
strb r0, [r5, #0x12]
_0207AC1E:
add r0, r6, #0x0
bl GetMonGender
ldrb r1, [r5, #0x13]
mov r2, #0x3
bic r1, r2
mov r2, #0x3
and r0, r2
orr r0, r1
strb r0, [r5, #0x13]
add r0, r6, #0x0
mov r1, #0x9a
mov r2, #0x0
bl GetMonData
lsl r0, r0, #0x18
lsr r0, r0, #0x18
lsl r0, r0, #0x1a
ldrb r1, [r5, #0x13]
mov r2, #0xfc
lsr r0, r0, #0x18
bic r1, r2
orr r0, r1
strb r0, [r5, #0x13]
add r0, r6, #0x0
mov r1, #0xb0
mov r2, #0x0
bl GetMonData
strb r0, [r5, #0x10]
add r0, r6, #0x0
mov r1, #0xb1
mov r2, #0x0
bl GetMonData
strb r0, [r5, #0x11]
add r0, r6, #0x0
mov r1, #0x7
mov r2, #0x0
bl GetMonData
str r0, [r5, #0x14]
add r0, r6, #0x0
mov r1, #0x8
mov r2, #0x0
bl GetMonData
str r0, [r5, #0x18]
add r0, r6, #0x0
mov r1, #0x9c
mov r2, #0x0
bl GetMonData
add r1, r5, #0x0
add r1, #0x44
strb r0, [r1, #0x0]
ldrb r1, [r5, #0x12]
ldrh r0, [r5, #0xc]
lsl r1, r1, #0x19
lsr r1, r1, #0x19
bl GetMonExpBySpeciesAndLevel
str r0, [r5, #0x1c]
ldrb r0, [r5, #0x12]
lsl r0, r0, #0x19
lsr r1, r0, #0x19
cmp r1, #0x64
bne _0207ACAA
ldr r0, [r5, #0x1c]
b _0207ACB2
_0207ACAA:
ldrh r0, [r5, #0xc]
add r1, r1, #0x1
bl GetMonExpBySpeciesAndLevel
_0207ACB2:
str r0, [r5, #0x20]
add r0, r6, #0x0
mov r1, #0xa2
mov r2, #0x0
bl GetMonData
strh r0, [r5, #0x24]
add r0, r6, #0x0
mov r1, #0xa3
mov r2, #0x0
bl GetMonData
strh r0, [r5, #0x26]
add r0, r6, #0x0
mov r1, #0xa4
mov r2, #0x0
bl GetMonData
strh r0, [r5, #0x28]
add r0, r6, #0x0
mov r1, #0xa5
mov r2, #0x0
bl GetMonData
strh r0, [r5, #0x2a]
add r0, r6, #0x0
mov r1, #0xa7
mov r2, #0x0
bl GetMonData
strh r0, [r5, #0x2c]
add r0, r6, #0x0
mov r1, #0xa8
mov r2, #0x0
bl GetMonData
strh r0, [r5, #0x2e]
add r0, r6, #0x0
mov r1, #0xa6
mov r2, #0x0
bl GetMonData
strh r0, [r5, #0x30]
add r0, r6, #0x0
mov r1, #0xa
mov r2, #0x0
bl GetMonData
add r1, r5, #0x0
add r1, #0x32
strb r0, [r1, #0x0]
add r0, r6, #0x0
bl GetMonNature
add r1, r5, #0x0
add r1, #0x33
strb r0, [r1, #0x0]
mov r4, #0x0
_0207AD26:
lsl r0, r4, #0x1
add r0, r5, r0
add r1, r4, #0x0
str r0, [sp, #0x0]
add r0, r6, #0x0
add r1, #0x36
mov r2, #0x0
bl GetMonData
ldr r1, [sp, #0x0]
mov r2, #0x0
strh r0, [r1, #0x34]
add r1, r4, #0x0
add r0, r6, #0x0
add r1, #0x3a
bl GetMonData
add r1, r5, r4
add r1, #0x3c
strb r0, [r1, #0x0]
add r1, r4, #0x0
add r0, r6, #0x0
add r1, #0x3e
mov r2, #0x0
bl GetMonData
lsl r0, r0, #0x18
lsr r1, r0, #0x18
ldr r0, [sp, #0x0]
ldrh r0, [r0, #0x34]
bl WazaGetMaxPp
add r1, r5, r4
add r1, #0x40
strb r0, [r1, #0x0]
add r0, r4, #0x1
lsl r0, r0, #0x10
lsr r4, r0, #0x10
cmp r4, #0x4
blo _0207AD26
add r0, r6, #0x0
mov r1, #0x13
mov r2, #0x0
bl GetMonData
add r1, r5, #0x0
add r1, #0x45
strb r0, [r1, #0x0]
add r0, r6, #0x0
mov r1, #0x14
mov r2, #0x0
bl GetMonData
add r1, r5, #0x0
add r1, #0x46
strb r0, [r1, #0x0]
add r0, r6, #0x0
mov r1, #0x15
mov r2, #0x0
bl GetMonData
add r1, r5, #0x0
add r1, #0x47
strb r0, [r1, #0x0]
add r0, r6, #0x0
mov r1, #0x16
mov r2, #0x0
bl GetMonData
add r1, r5, #0x0
add r1, #0x48
strb r0, [r1, #0x0]
add r0, r6, #0x0
mov r1, #0x17
mov r2, #0x0
bl GetMonData
add r1, r5, #0x0
add r1, #0x49
strb r0, [r1, #0x0]
add r0, r6, #0x0
mov r1, #0x18
mov r2, #0x0
bl GetMonData
add r1, r5, #0x0
add r1, #0x4a
strb r0, [r1, #0x0]
add r0, r5, #0x0
mov r1, #0x5
add r0, #0x4b
strb r1, [r0, #0x0]
mov r4, #0x0
_0207ADE0:
add r0, r6, #0x0
add r1, r4, #0x0
bl MonGetFlavorPreference
cmp r0, #0x1
bne _0207ADF4
add r0, r5, #0x0
add r0, #0x4b
strb r4, [r0, #0x0]
b _0207ADFE
_0207ADF4:
add r0, r4, #0x1
lsl r0, r0, #0x10
lsr r4, r0, #0x10
cmp r4, #0x5
blo _0207ADE0
_0207ADFE:
add r0, r6, #0x0
mov r1, #0xb
mov r2, #0x0
bl GetMonData
add r1, r5, #0x0
add r1, #0x4c
strh r0, [r1, #0x0]
add r0, r6, #0x0
mov r1, #0x70
mov r2, #0x0
bl GetMonData
add r1, r5, #0x0
add r1, #0x4e
strh r0, [r1, #0x0]
add r0, r6, #0x0
bl sub_0207C2D4
mov r1, #0xf
ldr r2, [r5, #0x50]
lsl r1, r1, #0x1c
and r2, r1
ldr r1, _0207AEB8 ; =0x0FFFFFFF
and r0, r1
orr r0, r2
str r0, [r5, #0x50]
add r0, r6, #0x0
bl Pokemon_IsImmuneToPokerus
cmp r0, #0x1
bne _0207AE4E
ldr r1, [r5, #0x50]
ldr r0, _0207AEBC ; =0x3FFFFFFF
and r1, r0
mov r0, #0x2
lsl r0, r0, #0x1e
orr r0, r1
str r0, [r5, #0x50]
b _0207AE84
_0207AE4E:
add r0, r6, #0x0
bl Pokemon_HasPokerus
cmp r0, #0x1
bne _0207AE7C
ldr r2, [r5, #0x50]
ldr r1, _0207AEBC ; =0x3FFFFFFF
add r0, r5, #0x0
and r2, r1
add r1, r1, #0x1
orr r1, r2
str r1, [r5, #0x50]
lsl r1, r1, #0x4
lsr r1, r1, #0x4
add r0, #0x50
cmp r1, #0x7
bne _0207AE84
mov r1, #0xf
ldr r2, [r0, #0x0]
lsl r1, r1, #0x1c
and r1, r2
str r1, [r0, #0x0]
b _0207AE84
_0207AE7C:
ldr r1, [r5, #0x50]
ldr r0, _0207AEBC ; =0x3FFFFFFF
and r0, r1
str r0, [r5, #0x50]
_0207AE84:
add r0, r6, #0x0
bl MonIsShiny
cmp r0, #0x1
ldr r1, [r5, #0x50]
bne _0207AE98
mov r0, #0x2
lsl r0, r0, #0x1c
orr r0, r1
b _0207AE9C
_0207AE98:
ldr r0, _0207AEC0 ; =0xDFFFFFFF
and r0, r1
_0207AE9C:
str r0, [r5, #0x50]
mov r4, #0x0
str r4, [r5, #0x54]
str r4, [r5, #0x58]
str r4, [r5, #0x5c]
ldr r0, _0207AEC4 ; =0x00000699
b _0207AEC8
nop
_0207AEAC: .word 0x00000674
_0207AEB0: .word 0x0000067C
_0207AEB4: .word 0xEFFFFFFF
_0207AEB8: .word 0x0FFFFFFF
_0207AEBC: .word 0x3FFFFFFF
_0207AEC0: .word 0xDFFFFFFF
_0207AEC4: .word 0x00000699
_0207AEC8:
str r4, [r5, #0x60]
strb r4, [r7, r0]
_0207AECC:
lsl r0, r4, #0x18
lsr r0, r0, #0x18
mov r1, #0x0
bl sub_0207FC5C
add r1, r0, #0x0
add r0, r6, #0x0
mov r2, #0x0
bl GetMonData
cmp r0, #0x0
beq _0207AF04
lsr r0, r4, #0x5
lsl r0, r0, #0x2
add r0, r5, r0
mov r1, #0x1f
add r2, r4, #0x0
and r2, r1
mov r1, #0x1
ldr r3, [r0, #0x54]
lsl r1, r2
orr r1, r3
str r1, [r0, #0x54]
ldr r0, _0207AF1C ; =0x00000699
ldrb r0, [r7, r0]
add r1, r0, #0x1
ldr r0, _0207AF1C ; =0x00000699
strb r1, [r7, r0]
_0207AF04:
add r0, r4, #0x1
lsl r0, r0, #0x10
lsr r4, r0, #0x10
cmp r4, #0x50
blo _0207AECC
ldr r1, [sp, #0x4]
add r0, r6, #0x0
bl ReleaseMonLock
add sp, #0x8
pop {r3-r7, pc}
nop
_0207AF1C: .word 0x00000699
thumb_func_start sub_0207AF20
sub_0207AF20: ; 0x0207AF20
push {r3, lr}
mov r2, #0x2a
lsl r2, r2, #0x4
ldr r1, [r0, r2]
lsl r1, r1, #0x3
lsr r1, r1, #0x1f
bne _0207AF54
add r1, r2, #0x0
sub r1, #0x44
ldrh r3, [r0, r1]
add r1, r2, #0x0
sub r1, #0xe7
cmp r3, r1
bne _0207AF4E
sub r2, #0x54
ldr r0, [r0, r2]
mov r1, #0x0
ldr r0, [r0, #0x28]
mov r2, #0x64
add r3, r1, #0x0
bl sub_02005E90
pop {r3, pc}
_0207AF4E:
add r0, r3, #0x0
bl sub_02005578
_0207AF54:
pop {r3, pc}
.balign 4
thumb_func_start sub_0207AF58
sub_0207AF58: ; 0x0207AF58
push {r4, lr}
mov r1, #0x93
add r4, r0, #0x0
lsl r1, r1, #0x2
ldr r0, [r4, r1]
ldrb r0, [r0, #0x12]
cmp r0, #0x4
bhi _0207AFA4
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #0x6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_0207AF74: ; jump table (using 16-bit offset)
.short _0207AF7E - _0207AF74 - 2; case 0
.short _0207AF7E - _0207AF74 - 2; case 1
.short _0207AF96 - _0207AF74 - 2; case 2
.short _0207AF9E - _0207AF74 - 2; case 3
.short _0207AF9E - _0207AF74 - 2; case 4
_0207AF7E:
add r1, #0x54
ldr r0, [r4, r1]
lsl r0, r0, #0x3
lsr r0, r0, #0x1f
ldr r0, _0207AFFC ; =0x0000068C
bne _0207AF90
mov r1, #0x0
strb r1, [r4, r0]
b _0207AFA4
_0207AF90:
mov r1, #0x1
strb r1, [r4, r0]
b _0207AFA4
_0207AF96:
ldr r0, _0207AFFC ; =0x0000068C
mov r1, #0x3
strb r1, [r4, r0]
b _0207AFA4
_0207AF9E:
ldr r0, _0207AFFC ; =0x0000068C
mov r1, #0x4
strb r1, [r4, r0]
_0207AFA4:
add r0, r4, #0x0
mov r1, #0x0
bl sub_0207CFAC
add r0, r4, #0x0
bl sub_0207C5D4
add r0, r4, #0x0
bl sub_0207C838
add r0, r4, #0x0
bl sub_0207D2C8
add r0, r4, #0x0
bl sub_0207C6A4
add r0, r4, #0x0
bl sub_0207CE4C
add r0, r4, #0x0
bl sub_0207CC24
add r0, r4, #0x0
bl sub_0207D604
add r0, r4, #0x0
bl sub_0207DD88
add r0, r4, #0x0
bl sub_0207B228
add r0, r4, #0x0
bl sub_0207F2A0
mov r0, #0x93
lsl r0, r0, #0x2
ldr r0, [r4, r0]
ldrb r0, [r0, #0x12]
cmp r0, #0x2
bne _0207AFFA
add r0, r4, #0x0
bl sub_0207BA74
_0207AFFA:
pop {r4, pc}
.balign 4
_0207AFFC: .word 0x0000068C
thumb_func_start sub_0207B000
sub_0207B000: ; 0x0207B000
push {r3-r6}
mov r6, #0x0
strb r6, [r0, #0x15]
add r0, #0x15
mov r3, #0x1
_0207B00A:
ldrb r5, [r1, r6]
cmp r5, #0x8
beq _0207B024
add r2, r3, #0x0
ldrb r4, [r0, #0x0]
lsl r2, r5
orr r2, r4
strb r2, [r0, #0x0]
add r2, r6, #0x1
lsl r2, r2, #0x18
lsr r6, r2, #0x18
cmp r6, #0x8
blo _0207B00A
_0207B024:
pop {r3-r6}
bx lr
thumb_func_start sub_0207B028
sub_0207B028: ; 0x0207B028
push {r3-r4}
mov r1, #0x93
lsl r1, r1, #0x2
ldr r4, [r0, r1]
ldr r1, [r4, #0x2c]
cmp r1, #0x1
beq _0207B06C
ldrb r2, [r4, #0x15]
mov r1, #0x10
add r3, r2, #0x0
tst r3, r1
beq _0207B044
eor r1, r2
strb r1, [r4, #0x15]
_0207B044:
mov r1, #0x93
lsl r1, r1, #0x2
ldr r4, [r0, r1]
mov r1, #0x20
ldrb r2, [r4, #0x15]
add r3, r2, #0x0
tst r3, r1
beq _0207B058
eor r1, r2
strb r1, [r4, #0x15]
_0207B058:
mov r1, #0x93
lsl r1, r1, #0x2
ldr r3, [r0, r1]
mov r0, #0x40
ldrb r1, [r3, #0x15]
add r2, r1, #0x0
tst r2, r0
beq _0207B06C
eor r0, r1
strb r0, [r3, #0x15]
_0207B06C:
pop {r3-r4}
bx lr
thumb_func_start sub_0207B070
sub_0207B070: ; 0x0207B070
mov r2, #0x2a
lsl r2, r2, #0x4
ldr r2, [r0, r2]
lsl r2, r2, #0x3
lsr r2, r2, #0x1f
beq _0207B088
cmp r1, #0x1
beq _0207B088
cmp r1, #0x7
beq _0207B088
mov r0, #0x0
bx lr
_0207B088:
mov r2, #0x93
lsl r2, r2, #0x2
ldr r0, [r0, r2]
ldrb r2, [r0, #0x15]
mov r0, #0x1
lsl r0, r1
and r0, r2
lsl r0, r0, #0x18
lsr r0, r0, #0x18
bx lr
thumb_func_start sub_0207B09C
sub_0207B09C: ; 0x0207B09C
push {r3-r4}
mov r3, #0x93
lsl r3, r3, #0x2
ldr r0, [r0, r3]
mov r2, #0x0
ldrb r0, [r0, #0x15]
add r1, r2, #0x0
mov r3, #0x1
_0207B0AC:
add r4, r3, #0x0
lsl r4, r1
tst r4, r0
beq _0207B0BA
add r2, r2, #0x1
lsl r2, r2, #0x18
lsr r2, r2, #0x18
_0207B0BA:
add r1, r1, #0x1
lsl r1, r1, #0x18
lsr r1, r1, #0x18
cmp r1, #0x8
blo _0207B0AC
add r0, r2, #0x0
pop {r3-r4}
bx lr
.balign 4
thumb_func_start sub_0207B0CC
sub_0207B0CC: ; 0x0207B0CC
push {r3-r5, lr}
sub sp, #0x10
add r4, r1, #0x0
ldr r1, _0207B174 ; =0x0000068C
add r5, r0, #0x0
ldrsb r1, [r5, r1]
cmp r1, r4
beq _0207B170
mov r1, #0x93
lsl r1, r1, #0x2
ldr r1, [r5, r1]
ldrb r1, [r1, #0x12]
cmp r1, #0x2
bne _0207B0EC
bl sub_0207BDD8
_0207B0EC:
add r0, r5, #0x0
bl sub_0207D6F8
ldr r0, _0207B174 ; =0x0000068C
mov r1, #0x0
strb r4, [r5, r0]
add r0, r5, #0x0
bl sub_0207CFAC
add r0, r5, #0x0
bl sub_0207C5D4
add r0, r5, #0x0
bl sub_0207C6A4
add r0, r5, #0x0
bl sub_0207C838
add r0, r5, #0x0
bl sub_0207D2C8
add r0, r5, #0x0
bl sub_0207CC24
add r0, r5, #0x0
bl sub_0207D604
add r0, r5, #0x0
mov r1, #0x0
bl sub_0207D418
mov r0, #0x4
str r0, [sp, #0x0]
mov r0, #0x13
str r0, [sp, #0x4]
mov r0, #0x14
str r0, [sp, #0x8]
mov r2, #0x0
str r2, [sp, #0xc]
ldr r0, [r5, #0x0]
mov r1, #0x1
mov r3, #0xe
bl FillBgTilemapRect
ldr r0, [r5, #0x0]
mov r1, #0x1
bl BgCommitTilemapBufferToVram
add r0, r5, #0x0
bl sub_0207DD88
add r0, r5, #0x0
bl sub_0207B228
add r0, r5, #0x0
bl sub_0207F2A0
mov r0, #0x93
lsl r0, r0, #0x2
ldr r0, [r5, r0]
ldrb r0, [r0, #0x12]
cmp r0, #0x2
bne _0207B170
add r0, r5, #0x0
bl sub_0207BDF4
_0207B170:
add sp, #0x10
pop {r3-r5, pc}
.balign 4
_0207B174: .word 0x0000068C
thumb_func_start sub_0207B178
sub_0207B178: ; 0x0207B178
push {r3-r7, lr}
add r5, r0, #0x0
ldr r0, _0207B1F8 ; =0x0000068C
mov r6, #0x1
ldrsb r4, [r5, r0]
mov r0, #0x2a
lsl r0, r0, #0x4
ldr r0, [r5, r0]
mov r12, r4
lsl r0, r0, #0x3
lsr r0, r0, #0x1f
add r7, r6, #0x0
_0207B190:
add r2, r4, r1
lsl r2, r2, #0x18
asr r4, r2, #0x18
bpl _0207B19C
mov r4, #0x7
b _0207B1A2
_0207B19C:
cmp r4, #0x7
ble _0207B1A2
mov r4, #0x0
_0207B1A2:
cmp r0, #0x0
bne _0207B1B8
mov r2, #0x93
lsl r2, r2, #0x2
ldr r2, [r5, r2]
ldrb r3, [r2, #0x15]
add r2, r6, #0x0
lsl r2, r4
tst r2, r3
bne _0207B1D0
b _0207B190
_0207B1B8:
mov r2, #0x93
lsl r2, r2, #0x2
ldr r2, [r5, r2]
ldrb r3, [r2, #0x15]
add r2, r7, #0x0
lsl r2, r4
tst r2, r3
beq _0207B190
cmp r4, #0x1
beq _0207B1D0
cmp r4, #0x7
bne _0207B190
_0207B1D0:
mov r0, r12
cmp r4, r0
beq _0207B1F4
ldr r0, _0207B1FC ; =0x000005E1
bl PlaySE
add r0, r5, #0x0
bl sub_0207FA38
add r0, r5, #0x0
mov r1, #0x0
bl sub_0207D418
lsl r1, r4, #0x18
add r0, r5, #0x0
lsr r1, r1, #0x18
bl sub_0207B0CC
_0207B1F4:
pop {r3-r7, pc}
nop
_0207B1F8: .word 0x0000068C
_0207B1FC: .word 0x000005E1
thumb_func_start sub_0207B200
sub_0207B200: ; 0x0207B200
push {r4, lr}
add r4, r0, #0x0
bl sub_0207FA80
cmp r0, #0xff
bne _0207B210
mov r0, #0x0
pop {r4, pc}
_0207B210:
ldr r1, _0207B224 ; =0x00000694
mov r3, #0x0
strb r3, [r4, r1]
add r2, r1, #0x2
strb r0, [r4, r2]
add r0, r1, #0x1
strb r3, [r4, r0]
mov r0, #0x1
pop {r4, pc}
nop
_0207B224: .word 0x00000694
thumb_func_start sub_0207B228
sub_0207B228: ; 0x0207B228
push {r3-r5, lr}
sub sp, #0x10
add r5, r0, #0x0
mov r0, #0x93
lsl r0, r0, #0x2
ldr r1, [r5, r0]
ldrb r0, [r1, #0x12]
cmp r0, #0x2
bne _0207B250
ldrh r0, [r1, #0x18]
cmp r0, #0x0
beq _0207B250
ldr r0, _0207B2AC ; =0x0000068C
ldrsb r0, [r5, r0]
cmp r0, #0x3
bne _0207B24C
mov r1, #0xc
b _0207B256
_0207B24C:
mov r1, #0xd
b _0207B256
_0207B250:
ldr r0, _0207B2AC ; =0x0000068C
ldrsb r0, [r5, r0]
add r1, r0, #0x3
_0207B256:
mov r0, #0x27
mov r2, #0x13
bl AllocAndReadWholeNarcMemberByIdPair
add r1, sp, #0xc
add r4, r0, #0x0
bl NNS_G2dGetUnpackedScreenData
mov r3, #0x0
str r3, [sp, #0x0]
mov r0, #0x20
str r0, [sp, #0x4]
str r0, [sp, #0x8]
ldr r2, [sp, #0xc]
ldr r0, [r5, #0x0]
mov r1, #0x3
add r2, #0xc
bl LoadRectToBgTilemapRect
ldr r0, [r5, #0x0]
mov r1, #0x3
bl ScheduleBgTilemapBufferTransfer
add r0, r4, #0x0
bl Heap_Free
ldr r0, _0207B2AC ; =0x0000068C
ldrsb r0, [r5, r0]
cmp r0, #0x0
bne _0207B29C
add r0, r5, #0x0
bl sub_0207B364
add sp, #0x10
pop {r3-r5, pc}
_0207B29C:
cmp r0, #0x2
bne _0207B2A6
add r0, r5, #0x0
bl sub_0207B2B0
_0207B2A6:
add sp, #0x10
pop {r3-r5, pc}
nop
_0207B2AC: .word 0x0000068C
thumb_func_start sub_0207B2B0
sub_0207B2B0: ; 0x0207B2B0
push {r4-r7, lr}
sub sp, #0x14
mov r1, #0x9d
add r6, r0, #0x0
lsl r1, r1, #0x2
ldrh r0, [r6, r1]
add r1, r1, #0x2
ldrh r1, [r6, r1]
mov r2, #0x30
bl sub_02079A54
cmp r0, #0x4
bhi _0207B2EC
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #0x6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_0207B2D6: ; jump table (using 16-bit offset)
.short _0207B2E0 - _0207B2D6 - 2; case 0
.short _0207B2E8 - _0207B2D6 - 2; case 1
.short _0207B2E4 - _0207B2D6 - 2; case 2
.short _0207B2E0 - _0207B2D6 - 2; case 3
.short _0207B2E0 - _0207B2D6 - 2; case 4
_0207B2E0:
ldr r7, _0207B35C ; =0x0000A0C0
b _0207B2EC
_0207B2E4:
ldr r7, _0207B360 ; =0x0000A0E0
b _0207B2EC
_0207B2E8:
mov r7, #0xa1
lsl r7, r7, #0x8
_0207B2EC:
mov r1, #0x9d
lsl r1, r1, #0x2
ldrh r0, [r6, r1]
add r1, r1, #0x2
ldrh r1, [r6, r1]
mov r2, #0x30
bl sub_02079A0C
add r4, r0, #0x0
add r0, r7, #0x0
add r0, #0x8
lsl r0, r0, #0x10
lsr r0, r0, #0x10
mov r5, #0x0
str r0, [sp, #0x10]
_0207B30A:
cmp r4, #0x8
blo _0207B312
ldr r2, [sp, #0x10]
b _0207B318
_0207B312:
add r0, r7, r4
lsl r0, r0, #0x10
lsr r2, r0, #0x10
_0207B318:
mov r0, #0x6
str r0, [sp, #0x0]
mov r0, #0x1
str r0, [sp, #0x4]
add r3, r5, #0x0
str r0, [sp, #0x8]
mov r0, #0x11
add r3, #0x18
str r0, [sp, #0xc]
lsl r3, r3, #0x18
ldr r0, [r6, #0x0]
mov r1, #0x3
lsr r3, r3, #0x18
bl FillBgTilemapRect
cmp r4, #0x8
bhs _0207B33E
mov r4, #0x0
b _0207B344
_0207B33E:
sub r4, #0x8
lsl r0, r4, #0x18
lsr r4, r0, #0x18
_0207B344:
add r0, r5, #0x1
lsl r0, r0, #0x18
lsr r5, r0, #0x18
cmp r5, #0x6
blo _0207B30A
ldr r0, [r6, #0x0]
mov r1, #0x3
bl ScheduleBgTilemapBufferTransfer
add sp, #0x14
pop {r4-r7, pc}
nop
_0207B35C: .word 0x0000A0C0
_0207B360: .word 0x0000A0E0
thumb_func_start sub_0207B364
sub_0207B364: ; 0x0207B364
push {r3-r7, lr}
sub sp, #0x10
ldr r2, _0207B3EC ; =0x00000262
add r6, r0, #0x0
ldrb r0, [r6, r2]
lsl r0, r0, #0x19
lsr r0, r0, #0x19
cmp r0, #0x64
bhs _0207B38C
add r0, r2, #0x0
add r1, r2, #0x0
add r0, #0xa
add r1, #0xe
add r2, r2, #0x6
ldr r0, [r6, r0]
ldr r1, [r6, r1]
ldr r2, [r6, r2]
sub r1, r1, r0
sub r0, r2, r0
b _0207B390
_0207B38C:
mov r1, #0x0
add r0, r1, #0x0
_0207B390:
mov r2, #0x38
bl sub_02079A0C
add r4, r0, #0x0
mov r5, #0x0
mov r7, #0x17
_0207B39C:
cmp r4, #0x8
blo _0207B3A4
mov r2, #0xb4
b _0207B3AC
_0207B3A4:
add r0, r4, #0x0
add r0, #0xac
lsl r0, r0, #0x10
lsr r2, r0, #0x10
_0207B3AC:
str r7, [sp, #0x0]
mov r0, #0x1
str r0, [sp, #0x4]
add r3, r5, #0x0
str r0, [sp, #0x8]
mov r0, #0x11
add r3, #0x17
str r0, [sp, #0xc]
lsl r3, r3, #0x18
ldr r0, [r6, #0x0]
mov r1, #0x3
lsr r3, r3, #0x18
bl FillBgTilemapRect
cmp r4, #0x8
bhs _0207B3D0
mov r4, #0x0
b _0207B3D6
_0207B3D0:
sub r4, #0x8
lsl r0, r4, #0x18
lsr r4, r0, #0x18
_0207B3D6:
add r0, r5, #0x1
lsl r0, r0, #0x18
lsr r5, r0, #0x18
cmp r5, #0x7
blo _0207B39C
ldr r0, [r6, #0x0]
mov r1, #0x3
bl ScheduleBgTilemapBufferTransfer
add sp, #0x10
pop {r3-r7, pc}
.balign 4
_0207B3EC: .word 0x00000262
thumb_func_start sub_0207B3F0
sub_0207B3F0: ; 0x0207B3F0
push {r4, lr}
add r4, r0, #0x0
bl sub_0207B4A4
mov r1, #0x0
mvn r1, r1
cmp r0, r1
beq _0207B49C
mov r1, #0x93
lsl r1, r1, #0x2
ldr r1, [r4, r1]
strb r0, [r1, #0x14]
add r0, r4, #0x0
bl sub_0207AAB0
add r0, r4, #0x0
bl sub_0207AF20
add r0, r4, #0x0
bl sub_0207D768
add r0, r4, #0x0
bl sub_0207D800
add r0, r4, #0x0
bl sub_0207D8A0
ldr r0, _0207B4A0 ; =0x0000068C
ldrsb r0, [r4, r0]
cmp r0, #0x0
bne _0207B436
add r0, r4, #0x0
bl sub_0207B364
b _0207B44C
_0207B436:
cmp r0, #0x2
bne _0207B442
add r0, r4, #0x0
bl sub_0207B2B0
b _0207B44C
_0207B442:
cmp r0, #0x4
bne _0207B44C
add r0, r4, #0x0
bl sub_0207F608
_0207B44C:
add r0, r4, #0x0
bl sub_0207F934
add r0, r4, #0x0
mov r1, #0x0
bl sub_0207CFAC
add r0, r4, #0x0
bl sub_0207C5D4
add r0, r4, #0x0
bl sub_0207C6A4
add r0, r4, #0x0
bl sub_0207CA44
add r0, r4, #0x0
bl sub_0207C838
add r0, r4, #0x0
bl sub_0207D2C8
add r0, r4, #0x0
bl sub_0207CFEC
add r0, r4, #0x0
bl sub_0207C71C
add r0, r4, #0x0
bl sub_0207C77C
add r0, r4, #0x0
bl sub_0207CC24
add r0, r4, #0x0
bl sub_0207CE4C
add r0, r4, #0x0
bl sub_0207DD88
_0207B49C:
pop {r4, pc}
nop
_0207B4A0: .word 0x0000068C
thumb_func_start sub_0207B4A4
sub_0207B4A4: ; 0x0207B4A4
push {r3, lr}
mov r2, #0x93
lsl r2, r2, #0x2
ldr r2, [r0, r2]
ldrb r2, [r2, #0x11]
cmp r2, #0x0
beq _0207B4BC
cmp r2, #0x1
beq _0207B4C2
cmp r2, #0x2
beq _0207B4C8
b _0207B4CE
_0207B4BC:
bl sub_0207B4FC
pop {r3, pc}
_0207B4C2:
bl sub_0207B564
pop {r3, pc}
_0207B4C8:
bl sub_0207B5C0
pop {r3, pc}
_0207B4CE:
mov r0, #0x0
mvn r0, r0
pop {r3, pc}
thumb_func_start sub_0207B4D4
sub_0207B4D4: ; 0x0207B4D4
mov r1, #0x93
lsl r1, r1, #0x2
ldr r1, [r0, r1]
ldrb r1, [r1, #0x12]
cmp r1, #0x3
bne _0207B4E4
mov r0, #0x0
bx lr
_0207B4E4:
ldr r1, _0207B4F8 ; =0x0000068C
ldrsb r0, [r0, r1]
cmp r0, #0x1
beq _0207B4F4
cmp r0, #0x7
beq _0207B4F4
mov r0, #0x0
bx lr
_0207B4F4:
mov r0, #0x1
bx lr
.balign 4
_0207B4F8: .word 0x0000068C
thumb_func_start sub_0207B4FC
sub_0207B4FC: ; 0x0207B4FC
push {r3-r7, lr}
add r5, r0, #0x0
mov r0, #0x93
lsl r0, r0, #0x2
str r1, [sp, #0x0]
ldr r1, [r5, r0]
mov r0, #0x14
ldrsb r4, [r1, r0]
_0207B50C:
ldr r0, [sp, #0x0]
add r0, r4, r0
lsl r0, r0, #0x18
asr r4, r0, #0x18
bmi _0207B522
mov r0, #0x93
lsl r0, r0, #0x2
ldr r0, [r5, r0]
ldrb r0, [r0, #0x13]
cmp r4, r0
blt _0207B528
_0207B522:
mov r0, #0x0
mvn r0, r0
pop {r3-r7, pc}
_0207B528:
bl sub_020690C4
mov r1, #0x93
lsl r1, r1, #0x2
ldr r1, [r5, r1]
add r7, r4, #0x0
ldr r6, [r1, #0x0]
mul r7, r0
add r0, r6, r7
mov r1, #0x5
mov r2, #0x0
bl GetMonData
cmp r0, #0x0
beq _0207B50C
add r0, r6, r7
mov r1, #0x4c
mov r2, #0x0
bl GetMonData
cmp r0, #0x0
beq _0207B55E
add r0, r5, #0x0
bl sub_0207B4D4
cmp r0, #0x1
bne _0207B50C
_0207B55E:
add r0, r4, #0x0
pop {r3-r7, pc}
.balign 4
thumb_func_start sub_0207B564
sub_0207B564: ; 0x0207B564
push {r3-r7, lr}
add r5, r0, #0x0
mov r0, #0x93
lsl r0, r0, #0x2
add r7, r1, #0x0
ldr r1, [r5, r0]
mov r0, #0x14
ldrsb r4, [r1, r0]
_0207B574:
add r0, r4, r7
lsl r0, r0, #0x18
asr r4, r0, #0x18
bmi _0207B588
mov r0, #0x93
lsl r0, r0, #0x2
ldr r1, [r5, r0]
ldrb r0, [r1, #0x13]
cmp r4, r0
blt _0207B58E
_0207B588:
mov r0, #0x0
mvn r0, r0
pop {r3-r7, pc}
_0207B58E:
ldr r0, [r1, #0x0]
add r1, r4, #0x0
bl Party_GetMonByIndex
mov r1, #0x5
mov r2, #0x0
add r6, r0, #0x0
bl GetMonData
cmp r0, #0x0
beq _0207B574
add r0, r6, #0x0
mov r1, #0x4c
mov r2, #0x0
bl GetMonData
cmp r0, #0x0
beq _0207B5BC
add r0, r5, #0x0
bl sub_0207B4D4
cmp r0, #0x1
bne _0207B574
_0207B5BC:
add r0, r4, #0x0
pop {r3-r7, pc}
thumb_func_start sub_0207B5C0
sub_0207B5C0: ; 0x0207B5C0
push {r3-r7, lr}
add r5, r0, #0x0
mov r0, #0x93
lsl r0, r0, #0x2
str r1, [sp, #0x0]
ldr r1, [r5, r0]
mov r0, #0x14
ldrsb r4, [r1, r0]
_0207B5D0:
ldr r0, [sp, #0x0]
add r0, r4, r0
lsl r0, r0, #0x18
asr r4, r0, #0x18
bmi _0207B5E6
mov r0, #0x93
lsl r0, r0, #0x2
ldr r0, [r5, r0]
ldrb r0, [r0, #0x13]
cmp r4, r0
blt _0207B5EC
_0207B5E6:
mov r0, #0x0
mvn r0, r0
pop {r3-r7, pc}
_0207B5EC:
bl sub_020690C8
mov r1, #0x93
lsl r1, r1, #0x2
ldr r1, [r5, r1]
add r7, r4, #0x0
ldr r6, [r1, #0x0]
mul r7, r0
add r0, r6, r7
mov r1, #0x5
mov r2, #0x0
bl GetBoxMonData
cmp r0, #0x0
beq _0207B5D0
add r0, r6, r7
mov r1, #0x4c
mov r2, #0x0
bl GetBoxMonData
cmp r0, #0x0
beq _0207B622
add r0, r5, #0x0
bl sub_0207B4D4
cmp r0, #0x1
bne _0207B5D0
_0207B622:
add r0, r4, #0x0
pop {r3-r7, pc}
.balign 4
thumb_func_start sub_0207B628
sub_0207B628: ; 0x0207B628
push {r4, lr}
mov r1, #0x93
lsl r1, r1, #0x2
ldr r4, [r0, r1]
ldrb r0, [r4, #0x11]
cmp r0, #0x0
beq _0207B640
cmp r0, #0x1
beq _0207B64E
cmp r0, #0x2
beq _0207B658
b _0207B666
_0207B640:
bl sub_020690C4
ldrb r1, [r4, #0x14]
ldr r2, [r4, #0x0]
mul r0, r1
add r0, r2, r0
pop {r4, pc}
_0207B64E:
ldrb r1, [r4, #0x14]
ldr r0, [r4, #0x0]
bl Party_GetMonByIndex
pop {r4, pc}
_0207B658:
bl sub_020690C8
ldrb r1, [r4, #0x14]
ldr r2, [r4, #0x0]
mul r0, r1
add r0, r2, r0
pop {r4, pc}
_0207B666:
mov r0, #0x0
pop {r4, pc}
.balign 4
thumb_func_start sub_0207B66C
sub_0207B66C: ; 0x0207B66C
push {r4, lr}
ldr r1, _0207B774 ; =0x0000068E
add r4, r0, #0x0
ldrb r1, [r4, r1]
cmp r1, #0x0
beq _0207B682
cmp r1, #0x1
beq _0207B6E2
cmp r1, #0x2
beq _0207B70E
b _0207B76E
_0207B682:
ldr r0, [r4, #0x0]
mov r1, #0x2
mov r2, #0x0
mov r3, #0x88
bl ScheduleSetBgPosText
ldr r0, [r4, #0x0]
mov r1, #0x2
mov r2, #0x3
mov r3, #0x0
bl ScheduleSetBgPosText
add r0, r4, #0x0
mov r1, #0x0
bl sub_0207C6F0
mov r0, #0x85
lsl r0, r0, #0x2
add r0, r4, r0
bl ClearWindowTilemapAndScheduleTransfer
add r0, r4, #0x0
add r0, #0x64
bl ClearWindowTilemapAndScheduleTransfer
mov r0, #0x81
lsl r0, r0, #0x2
add r0, r4, r0
bl ClearWindowTilemapAndScheduleTransfer
mov r0, #0x8d
lsl r0, r0, #0x2
add r0, r4, r0
bl ClearWindowTilemapAndScheduleTransfer
add r0, r4, #0x0
mov r1, #0x0
bl sub_0207CFAC
ldr r1, _0207B778 ; =0x0000068D
mov r0, #0xf
ldrb r2, [r4, r1]
bic r2, r0
strb r2, [r4, r1]
mov r2, #0x1
add r0, r1, #0x1
strb r2, [r4, r0]
b _0207B76E
_0207B6E2:
ldr r0, [r4, #0x0]
mov r1, #0x2
bl Bg_GetXpos
cmp r0, #0x40
ldr r0, [r4, #0x0]
bgt _0207B702
mov r2, #0x0
mov r1, #0x2
add r3, r2, #0x0
bl ScheduleSetBgPosText
ldr r0, _0207B774 ; =0x0000068E
mov r1, #0x2
strb r1, [r4, r0]
b _0207B76E
_0207B702:
mov r1, #0x2
add r2, r1, #0x0
mov r3, #0x40
bl ScheduleSetBgPosText
b _0207B76E
_0207B70E:
bl sub_0207ECDC
mov r0, #0x93
lsl r0, r0, #0x2
ldr r0, [r4, r0]
ldrb r0, [r0, #0x12]
cmp r0, #0x1
beq _0207B732
add r0, r4, #0x0
mov r1, #0x98
bl sub_0207D924
mov r1, #0x8d
lsl r1, r1, #0x2
add r0, r4, #0x0
add r1, r4, r1
bl sub_0207CFAC
_0207B732:
add r0, r4, #0x0
bl sub_0207B8D8
ldr r0, _0207B77C ; =0x00000434
mov r1, #0x1
ldr r0, [r4, r0]
bl sub_0200C63C
add r0, r4, #0x0
bl sub_0207D06C
mov r0, #0x26
lsl r0, r0, #0x4
ldrb r1, [r4, r0]
add r0, r0, #0x1
ldrb r0, [r4, r0]
cmp r1, r0
beq _0207B760
ldr r0, _0207B780 ; =0x00000438
mov r1, #0x1
ldr r0, [r4, r0]
bl sub_0200C63C
_0207B760:
ldr r0, _0207B784 ; =0x0000042C
mov r1, #0x1
ldr r0, [r4, r0]
bl sub_020200A0
mov r0, #0x1
pop {r4, pc}
_0207B76E:
mov r0, #0x0
pop {r4, pc}
nop
_0207B774: .word 0x0000068E
_0207B778: .word 0x0000068D
_0207B77C: .word 0x00000434
_0207B780: .word 0x00000438
_0207B784: .word 0x0000042C
thumb_func_start sub_0207B788
sub_0207B788: ; 0x0207B788
push {r4, lr}
add r4, r0, #0x0
ldr r0, _0207B864 ; =0x0000068E
ldrb r0, [r4, r0]
cmp r0, #0x0
beq _0207B79E
cmp r0, #0x1
beq _0207B7F8
cmp r0, #0x2
beq _0207B824
b _0207B860
_0207B79E:
ldr r0, _0207B868 ; =0x00000434
mov r1, #0x0
ldr r0, [r4, r0]
bl sub_0200C63C
ldr r0, _0207B86C ; =0x00000438
mov r1, #0x0
ldr r0, [r4, r0]
bl sub_0200C63C
mov r0, #0x45
lsl r0, r0, #0x4
ldr r0, [r4, r0]
mov r1, #0x0
bl sub_0200C63C
ldr r0, _0207B870 ; =0x00000454
mov r1, #0x0
ldr r0, [r4, r0]
bl sub_0200C63C
ldr r0, _0207B874 ; =0x0000042C
mov r1, #0x0
ldr r0, [r4, r0]
bl sub_020200A0
mov r0, #0x8d
lsl r0, r0, #0x2
add r0, r4, r0
bl ClearWindowTilemapAndScheduleTransfer
add r0, r4, #0x0
mov r1, #0x0
bl sub_0207CFAC
add r0, r4, #0x0
bl sub_0207ED18
add r0, r4, #0x0
bl sub_0207EC94
ldr r0, _0207B864 ; =0x0000068E
mov r1, #0x1
strb r1, [r4, r0]
b _0207B860
_0207B7F8:
ldr r0, [r4, #0x0]
mov r1, #0x2
bl Bg_GetXpos
cmp r0, #0x80
ldr r0, [r4, #0x0]
blt _0207B818
mov r1, #0x2
mov r2, #0x0
mov r3, #0x88
bl ScheduleSetBgPosText
ldr r0, _0207B864 ; =0x0000068E
mov r1, #0x2
strb r1, [r4, r0]
b _0207B860
_0207B818:
mov r1, #0x2
mov r2, #0x1
mov r3, #0x40
bl ScheduleSetBgPosText
b _0207B860
_0207B824:
mov r0, #0x85
lsl r0, r0, #0x2
add r0, r4, r0
bl ScheduleWindowCopyToVram
add r0, r4, #0x0
add r0, #0x64
bl ScheduleWindowCopyToVram
mov r0, #0x81
lsl r0, r0, #0x2
add r0, r4, r0
bl ScheduleWindowCopyToVram
add r0, r4, #0x0
mov r1, #0x81
bl sub_0207D924
add r0, r4, #0x0
mov r1, #0x1
bl sub_0207C6F0
mov r1, #0x8d
lsl r1, r1, #0x2
add r0, r4, #0x0
add r1, r4, r1
bl sub_0207CFAC
mov r0, #0x1
pop {r4, pc}
_0207B860:
mov r0, #0x0
pop {r4, pc}
.balign 4
_0207B864: .word 0x0000068E
_0207B868: .word 0x00000434
_0207B86C: .word 0x00000438
_0207B870: .word 0x00000454
_0207B874: .word 0x0000042C
thumb_func_start sub_0207B878
sub_0207B878: ; 0x0207B878
push {r4-r7}
add r5, r0, #0x0
ldr r0, _0207B8D4 ; =0x0000068D
mov r6, #0xa1
ldrb r0, [r5, r0]
mov r2, #0x4
lsl r6, r6, #0x2
lsl r0, r0, #0x1c
lsr r4, r0, #0x1c
add r3, r4, #0x0
mov r0, #0x0
_0207B88E:
add r3, r3, r1
lsl r3, r3, #0x18
asr r3, r3, #0x18
bpl _0207B89A
add r3, r2, #0x0
b _0207B8A0
_0207B89A:
cmp r3, #0x5
bne _0207B8A0
add r3, r0, #0x0
_0207B8A0:
lsl r7, r3, #0x1
add r7, r5, r7
ldrh r7, [r7, r6]
cmp r7, #0x0
bne _0207B8AE
cmp r3, #0x4
bne _0207B88E
_0207B8AE:
cmp r3, r4
beq _0207B8CC
ldr r2, _0207B8D4 ; =0x0000068D
mov r1, #0xf
ldrb r0, [r5, r2]
bic r0, r1
lsl r1, r3, #0x18
lsr r3, r1, #0x18
mov r1, #0xf
and r1, r3
orr r0, r1
strb r0, [r5, r2]
mov r0, #0x1
pop {r4-r7}
bx lr
_0207B8CC:
mov r0, #0x0
pop {r4-r7}
bx lr
nop
_0207B8D4: .word 0x0000068D
thumb_func_start sub_0207B8D8
sub_0207B8D8: ; 0x0207B8D8
push {r4, lr}
add r4, r0, #0x0
bl sub_0207CBC0
ldr r2, _0207B95C ; =0x0000068D
ldrb r0, [r4, r2]
lsl r0, r0, #0x1c
lsr r1, r0, #0x1c
cmp r1, #0x4
bne _0207B930
mov r0, #0x93
lsl r0, r0, #0x2
ldr r0, [r4, r0]
ldrh r1, [r0, #0x18]
cmp r1, #0x0
beq _0207B910
sub r0, r2, #0x1
ldrsb r0, [r4, r0]
cmp r0, #0x3
bne _0207B908
add r0, r4, #0x0
bl sub_0207B960
pop {r4, pc}
_0207B908:
add r0, r4, #0x0
bl sub_0207B99C
pop {r4, pc}
_0207B910:
sub r0, r2, #0x1
ldrsb r0, [r4, r0]
cmp r0, #0x3
bne _0207B924
mov r1, #0x0
add r0, r4, #0x0
mvn r1, r1
bl sub_0207B960
pop {r4, pc}
_0207B924:
mov r1, #0x0
add r0, r4, #0x0
mvn r1, r1
bl sub_0207B99C
pop {r4, pc}
_0207B930:
sub r0, r2, #0x1
ldrsb r0, [r4, r0]
cmp r0, #0x3
bne _0207B94A
lsl r1, r1, #0x1
add r2, r4, r1
mov r1, #0xa1
lsl r1, r1, #0x2
ldrh r1, [r2, r1]
add r0, r4, #0x0
bl sub_0207B960
pop {r4, pc}
_0207B94A:
lsl r1, r1, #0x1
add r2, r4, r1
mov r1, #0xa1
lsl r1, r1, #0x2
ldrh r1, [r2, r1]
add r0, r4, #0x0
bl sub_0207B99C
pop {r4, pc}
.balign 4
_0207B95C: .word 0x0000068D
thumb_func_start sub_0207B960
sub_0207B960: ; 0x0207B960
push {r3-r5, lr}
mov r2, #0x0
add r4, r1, #0x0
mvn r2, r2
add r5, r0, #0x0
cmp r4, r2
bne _0207B980
bl sub_0207EC94
mov r0, #0x45
lsl r0, r0, #0x4
ldr r0, [r5, r0]
mov r1, #0x0
bl sub_0200C63C
pop {r3-r5, pc}
_0207B980:
bl sub_0207EB64
add r0, r5, #0x0
add r1, r4, #0x0
bl sub_0207CB70
mov r0, #0x45
lsl r0, r0, #0x4
ldr r0, [r5, r0]
mov r1, #0x1
bl sub_0200C63C
pop {r3-r5, pc}
.balign 4
thumb_func_start sub_0207B99C
sub_0207B99C: ; 0x0207B99C
push {r3-r5, lr}
add r5, r0, #0x0
add r4, r1, #0x0
bl sub_0207BD84
mov r0, #0x0
mvn r0, r0
cmp r4, r0
bne _0207B9B6
add r0, r5, #0x0
bl sub_0207EEB0
pop {r3-r5, pc}
_0207B9B6:
add r0, r5, #0x0
add r1, r4, #0x0
bl sub_0207EE2C
pop {r3-r5, pc}
thumb_func_start sub_0207B9C0
sub_0207B9C0: ; 0x0207B9C0
push {r3-r7, lr}
add r4, r0, #0x0
bl sub_0207B628
mov r1, #0x93
lsl r1, r1, #0x2
ldr r1, [r4, r1]
ldrb r1, [r1, #0x11]
cmp r1, #0x2
ldr r1, _0207BA70 ; =0x0000068D
bne _0207B9E6
ldrb r2, [r4, r1]
lsl r1, r2, #0x1c
lsl r2, r2, #0x18
lsr r1, r1, #0x1c
lsr r2, r2, #0x1c
bl sub_020698E8
b _0207B9F4
_0207B9E6:
ldrb r2, [r4, r1]
lsl r1, r2, #0x1c
lsl r2, r2, #0x18
lsr r1, r1, #0x1c
lsr r2, r2, #0x1c
bl sub_020698E0
_0207B9F4:
ldr r0, _0207BA70 ; =0x0000068D
mov r1, #0xa1
ldrb r6, [r4, r0]
lsl r1, r1, #0x2
add r5, r4, r1
lsl r2, r6, #0x1c
lsl r6, r6, #0x18
lsr r6, r6, #0x1c
lsl r6, r6, #0x1
lsr r3, r2, #0x1b
add r6, r4, r6
ldrh r2, [r5, r3]
ldrh r6, [r6, r1]
strh r6, [r5, r3]
ldrb r3, [r4, r0]
lsl r3, r3, #0x18
lsr r3, r3, #0x1c
lsl r3, r3, #0x1
add r3, r4, r3
strh r2, [r3, r1]
add r2, r1, #0x0
add r2, #0x8
ldrb r6, [r4, r0]
add r5, r4, r2
lsl r2, r6, #0x1c
lsl r6, r6, #0x18
lsr r6, r6, #0x1c
add r7, r4, r6
add r6, r1, #0x0
lsr r3, r2, #0x1c
add r6, #0x8
ldrb r2, [r5, r3]
ldrb r6, [r7, r6]
strb r6, [r5, r3]
ldrb r3, [r4, r0]
lsl r3, r3, #0x18
lsr r3, r3, #0x1c
add r5, r4, r3
add r3, r1, #0x0
add r3, #0x8
strb r2, [r5, r3]
add r2, r1, #0x0
add r2, #0xc
ldrb r6, [r4, r0]
add r5, r4, r2
lsl r2, r6, #0x1c
lsl r6, r6, #0x18
lsr r6, r6, #0x1c
add r7, r4, r6
add r6, r1, #0x0
lsr r3, r2, #0x1c
add r6, #0xc
ldrb r2, [r5, r3]
ldrb r6, [r7, r6]
add r1, #0xc
strb r6, [r5, r3]
ldrb r0, [r4, r0]
lsl r0, r0, #0x18
lsr r0, r0, #0x1c
add r0, r4, r0
strb r2, [r0, r1]
pop {r3-r7, pc}
.balign 4
_0207BA70: .word 0x0000068D
thumb_func_start sub_0207BA74
sub_0207BA74: ; 0x0207BA74
push {r4, lr}
add r4, r0, #0x0
mov r0, #0x85
lsl r0, r0, #0x2
add r0, r4, r0
bl ClearWindowTilemapAndScheduleTransfer
add r0, r4, #0x0
add r0, #0x64
bl ClearWindowTilemapAndScheduleTransfer
mov r0, #0x81
lsl r0, r0, #0x2
add r0, r4, r0
bl ClearWindowTilemapAndScheduleTransfer
mov r2, #0x0
ldr r0, [r4, #0x0]
mov r1, #0x2
add r3, r2, #0x0
bl ScheduleSetBgPosText
add r0, r4, #0x0
bl sub_0207ECDC
add r0, r4, #0x0
bl sub_0207B8D8
ldr r0, _0207BAE0 ; =0x00000434
mov r1, #0x1
ldr r0, [r4, r0]
bl sub_0200C63C
add r0, r4, #0x0
bl sub_0207D06C
mov r0, #0x26
lsl r0, r0, #0x4
ldrb r1, [r4, r0]
add r0, r0, #0x1
ldrb r0, [r4, r0]
cmp r1, r0
beq _0207BAD4
ldr r0, _0207BAE4 ; =0x00000438
mov r1, #0x1
ldr r0, [r4, r0]
bl sub_0200C63C
_0207BAD4:
ldr r0, _0207BAE8 ; =0x0000042C
mov r1, #0x1
ldr r0, [r4, r0]
bl sub_020200A0
pop {r4, pc}
.balign 4
_0207BAE0: .word 0x00000434
_0207BAE4: .word 0x00000438
_0207BAE8: .word 0x0000042C
thumb_func_start sub_0207BAEC
sub_0207BAEC: ; 0x0207BAEC
push {r4, lr}
ldr r1, _0207BBE4 ; =0x0000068E
add r4, r0, #0x0
ldrb r1, [r4, r1]
cmp r1, #0x0
beq _0207BB02
cmp r1, #0x1
beq _0207BB6E
cmp r1, #0x2
beq _0207BB9A
b _0207BBDE
_0207BB02:
ldr r0, [r4, #0x0]
mov r1, #0x2
mov r2, #0x0
mov r3, #0x88
bl ScheduleSetBgPosText
mov r2, #0x3
add r3, r2, #0x0
ldr r0, [r4, #0x0]
mov r1, #0x2
add r3, #0xfd
bl ScheduleSetBgPosText
mov r1, #0x0
add r0, r4, #0x0
mvn r1, r1
bl sub_0207BD84
add r0, r4, #0x0
mov r1, #0x0
bl sub_0207C6F0
mov r0, #0x85
lsl r0, r0, #0x2
add r0, r4, r0
bl ClearWindowTilemapAndScheduleTransfer
add r0, r4, #0x0
add r0, #0x64
bl ClearWindowTilemapAndScheduleTransfer
mov r0, #0x81
lsl r0, r0, #0x2
add r0, r4, r0
bl ClearWindowTilemapAndScheduleTransfer
mov r0, #0x8d
lsl r0, r0, #0x2
add r0, r4, r0
bl ClearWindowTilemapAndScheduleTransfer
add r0, r4, #0x0
mov r1, #0x0
bl sub_0207CFAC
ldr r1, _0207BBE8 ; =0x0000068D
mov r0, #0xf
ldrb r2, [r4, r1]
bic r2, r0
strb r2, [r4, r1]
mov r2, #0x1
add r0, r1, #0x1
strb r2, [r4, r0]
b _0207BBDE
_0207BB6E:
ldr r0, [r4, #0x0]
mov r1, #0x2
bl Bg_GetXpos
cmp r0, #0x40
ldr r0, [r4, #0x0]
bgt _0207BB8E
mov r2, #0x0
mov r1, #0x2
add r3, r2, #0x0
bl ScheduleSetBgPosText
ldr r0, _0207BBE4 ; =0x0000068E
mov r1, #0x2
strb r1, [r4, r0]
b _0207BBDE
_0207BB8E:
mov r1, #0x2
add r2, r1, #0x0
mov r3, #0x40
bl ScheduleSetBgPosText
b _0207BBDE
_0207BB9A:
bl sub_0207ECDC
mov r0, #0x93
lsl r0, r0, #0x2
ldr r0, [r4, r0]
ldrb r0, [r0, #0x12]
cmp r0, #0x1
beq _0207BBBE
add r0, r4, #0x0
mov r1, #0x98
bl sub_0207D924
mov r1, #0x8d
lsl r1, r1, #0x2
add r0, r4, #0x0
add r1, r4, r1
bl sub_0207CFAC
_0207BBBE:
add r0, r4, #0x0
bl sub_0207B8D8
add r0, r4, #0x0
bl sub_0207D06C
add r0, r4, #0x0
bl sub_0207D10C
ldr r0, _0207BBEC ; =0x0000042C
mov r1, #0x1
ldr r0, [r4, r0]
bl sub_020200A0
mov r0, #0x1
pop {r4, pc}
_0207BBDE:
mov r0, #0x0
pop {r4, pc}
nop
_0207BBE4: .word 0x0000068E
_0207BBE8: .word 0x0000068D
_0207BBEC: .word 0x0000042C
thumb_func_start sub_0207BBF0
sub_0207BBF0: ; 0x0207BBF0
push {r4, lr}
ldr r1, _0207BCBC ; =0x0000068E
add r4, r0, #0x0
ldrb r1, [r4, r1]
cmp r1, #0x0
beq _0207BC06
cmp r1, #0x1
beq _0207BC4E
cmp r1, #0x2
beq _0207BC7A
b _0207BCB6
_0207BC06:
bl sub_0207D22C
ldr r0, _0207BCC0 ; =0x00000454
mov r1, #0x0
ldr r0, [r4, r0]
bl sub_0200C63C
mov r1, #0x0
add r0, r4, #0x0
mvn r1, r1
bl sub_0207BD84
ldr r0, _0207BCC4 ; =0x0000042C
mov r1, #0x0
ldr r0, [r4, r0]
bl sub_020200A0
mov r0, #0x8d
lsl r0, r0, #0x2
add r0, r4, r0
bl ClearWindowTilemapAndScheduleTransfer
add r0, r4, #0x0
mov r1, #0x0
bl sub_0207CFAC
add r0, r4, #0x0
bl sub_0207ED18
add r0, r4, #0x0
bl sub_0207EEB0
ldr r0, _0207BCBC ; =0x0000068E
mov r1, #0x1
strb r1, [r4, r0]
b _0207BCB6
_0207BC4E:
ldr r0, [r4, #0x0]
mov r1, #0x2
bl Bg_GetXpos
cmp r0, #0x80
ldr r0, [r4, #0x0]
blt _0207BC6E
mov r1, #0x2
mov r2, #0x0
mov r3, #0x88
bl ScheduleSetBgPosText
ldr r0, _0207BCBC ; =0x0000068E
mov r1, #0x2
strb r1, [r4, r0]
b _0207BCB6
_0207BC6E:
mov r1, #0x2
mov r2, #0x1
mov r3, #0x40
bl ScheduleSetBgPosText
b _0207BCB6
_0207BC7A:
mov r0, #0x85
lsl r0, r0, #0x2
add r0, r4, r0
bl ScheduleWindowCopyToVram
add r0, r4, #0x0
add r0, #0x64
bl ScheduleWindowCopyToVram
mov r0, #0x81
lsl r0, r0, #0x2
add r0, r4, r0
bl ScheduleWindowCopyToVram
add r0, r4, #0x0
mov r1, #0x9e
bl sub_0207D924
add r0, r4, #0x0
mov r1, #0x1
bl sub_0207C6F0
mov r1, #0x8d
lsl r1, r1, #0x2
add r0, r4, #0x0
add r1, r4, r1
bl sub_0207CFAC
mov r0, #0x1
pop {r4, pc}
_0207BCB6:
mov r0, #0x0
pop {r4, pc}
nop
_0207BCBC: .word 0x0000068E
_0207BCC0: .word 0x00000454
_0207BCC4: .word 0x0000042C
thumb_func_start sub_0207BCC8
sub_0207BCC8: ; 0x0207BCC8
push {r3-r7, lr}
sub sp, #0x10
add r5, r0, #0x0
mov r0, #0x2f
str r0, [sp, #0x0]
mov r0, #0x1
lsl r6, r2, #0x1
add r4, r1, #0x0
str r0, [sp, #0x4]
add r7, r6, #0x2
str r0, [sp, #0x8]
mov r0, #0x10
str r0, [sp, #0xc]
lsl r3, r7, #0x18
ldr r0, [r5, #0x0]
mov r1, #0x2
add r2, r4, #0x0
lsr r3, r3, #0x18
bl FillBgTilemapRect
mov r0, #0x2f
str r0, [sp, #0x0]
mov r0, #0x1
str r0, [sp, #0x4]
add r6, r6, #0x3
str r0, [sp, #0x8]
mov r0, #0x10
add r2, r4, #0x1
str r0, [sp, #0xc]
lsl r2, r2, #0x10
lsl r3, r6, #0x18
ldr r0, [r5, #0x0]
mov r1, #0x2
lsr r2, r2, #0x10
lsr r3, r3, #0x18
bl FillBgTilemapRect
mov r0, #0x30
str r0, [sp, #0x0]
mov r0, #0x1
str r0, [sp, #0x4]
add r2, r4, #0x0
str r0, [sp, #0x8]
mov r0, #0x10
add r2, #0x20
str r0, [sp, #0xc]
lsl r2, r2, #0x10
lsl r3, r7, #0x18
ldr r0, [r5, #0x0]
mov r1, #0x2
lsr r2, r2, #0x10
lsr r3, r3, #0x18
bl FillBgTilemapRect
mov r0, #0x30
str r0, [sp, #0x0]
mov r0, #0x1
str r0, [sp, #0x4]
str r0, [sp, #0x8]
mov r0, #0x10
add r4, #0x21
str r0, [sp, #0xc]
lsl r2, r4, #0x10
lsl r3, r6, #0x18
ldr r0, [r5, #0x0]
mov r1, #0x2
lsr r2, r2, #0x10
lsr r3, r3, #0x18
bl FillBgTilemapRect
add sp, #0x10
pop {r3-r7, pc}
thumb_func_start sub_0207BD58
sub_0207BD58: ; 0x0207BD58
push {r4-r6, lr}
ldr r6, _0207BD80 ; =0x0000012E
add r5, r0, #0x0
mov r4, #0x0
_0207BD60:
lsl r2, r4, #0x18
add r0, r5, #0x0
add r1, r6, #0x0
lsr r2, r2, #0x18
bl sub_0207BCC8
add r0, r4, #0x1
lsl r0, r0, #0x10
lsr r4, r0, #0x10
cmp r4, #0x6
blo _0207BD60
ldr r0, [r5, #0x0]
mov r1, #0x2
bl ScheduleBgTilemapBufferTransfer
pop {r4-r6, pc}
.balign 4
_0207BD80: .word 0x0000012E
thumb_func_start sub_0207BD84
sub_0207BD84: ; 0x0207BD84
push {r3-r7, lr}
add r5, r0, #0x0
add r4, r1, #0x0
bl sub_0207BD58
mov r0, #0x0
mvn r0, r0
cmp r4, r0
beq _0207BDCC
add r0, r4, #0x0
mov r1, #0xa
bl GetWazaAttr
bl sub_02083114
mov r1, #0xa
bl _s32_div_f
lsl r0, r0, #0x18
asr r6, r0, #0x18
mov r4, #0x0
cmp r6, #0x0
ble _0207BDCC
mov r7, #0x4b
lsl r7, r7, #0x2
_0207BDB6:
lsl r2, r4, #0x18
add r0, r5, #0x0
add r1, r7, #0x0
lsr r2, r2, #0x18
bl sub_0207BCC8
add r0, r4, #0x1
lsl r0, r0, #0x10
lsr r4, r0, #0x10
cmp r4, r6
blt _0207BDB6
_0207BDCC:
ldr r0, [r5, #0x0]
mov r1, #0x2
bl ScheduleBgTilemapBufferTransfer
pop {r3-r7, pc}
.balign 4
thumb_func_start sub_0207BDD8
sub_0207BDD8: ; 0x0207BDD8
push {r3, lr}
ldr r1, _0207BDF0 ; =0x0000068C
ldrsb r1, [r0, r1]
cmp r1, #0x3
bne _0207BDE8
bl sub_0207EC94
pop {r3, pc}
_0207BDE8:
bl sub_0207EEB0
pop {r3, pc}
nop
_0207BDF0: .word 0x0000068C
thumb_func_start sub_0207BDF4
sub_0207BDF4: ; 0x0207BDF4
push {r4, lr}
add r4, r0, #0x0
bl sub_0207ECDC
add r0, r4, #0x0
bl sub_0207B8D8
add r0, r4, #0x0
bl sub_0207D06C
ldr r0, _0207BE5C ; =0x0000068C
ldrsb r0, [r4, r0]
cmp r0, #0x3
bne _0207BE46
add r0, r4, #0x0
bl sub_0207D22C
ldr r0, _0207BE60 ; =0x00000434
mov r1, #0x1
ldr r0, [r4, r0]
bl sub_0200C63C
mov r0, #0x26
lsl r0, r0, #0x4
ldrb r1, [r4, r0]
add r0, r0, #0x1
ldrb r0, [r4, r0]
cmp r1, r0
beq _0207BE38
ldr r0, _0207BE64 ; =0x00000438
mov r1, #0x1
ldr r0, [r4, r0]
bl sub_0200C63C
_0207BE38:
ldr r0, [r4, #0x0]
mov r1, #0x2
mov r2, #0x3
mov r3, #0x0
bl ScheduleSetBgPosText
pop {r4, pc}
_0207BE46:
add r0, r4, #0x0
bl sub_0207D10C
mov r2, #0x3
add r3, r2, #0x0
ldr r0, [r4, #0x0]
mov r1, #0x2
add r3, #0xfd
bl ScheduleSetBgPosText
pop {r4, pc}
.balign 4
_0207BE5C: .word 0x0000068C
_0207BE60: .word 0x00000434
_0207BE64: .word 0x00000438
thumb_func_start sub_0207BE68
sub_0207BE68: ; 0x0207BE68
push {r4, lr}
ldr r1, _0207BF78 ; =0x0000068E
add r4, r0, #0x0
ldrb r1, [r4, r1]
cmp r1, #0x0
beq _0207BE7E
cmp r1, #0x1
beq _0207BEEA
cmp r1, #0x2
beq _0207BF16
b _0207BF74
_0207BE7E:
mov r1, #0x2
add r3, r1, #0x0
ldr r0, [r4, #0x0]
mov r2, #0x0
add r3, #0xfe
bl ScheduleSetBgPosText
ldr r0, [r4, #0x0]
mov r1, #0x2
mov r2, #0x3
mov r3, #0x0
bl ScheduleSetBgPosText
add r0, r4, #0x0
mov r1, #0x0
bl sub_0207C6F0
add r0, r4, #0x0
add r0, #0x64
bl ClearWindowTilemapAndScheduleTransfer
mov r0, #0x81
lsl r0, r0, #0x2
add r0, r4, r0
bl ClearWindowTilemapAndScheduleTransfer
mov r0, #0x79
lsl r0, r0, #0x2
add r0, r4, r0
bl ClearWindowTilemapAndScheduleTransfer
mov r0, #0x8d
lsl r0, r0, #0x2
add r0, r4, r0
bl ClearWindowTilemapAndScheduleTransfer
mov r0, #0x91
lsl r0, r0, #0x2
ldr r0, [r4, r0]
bl ClearWindowTilemapAndScheduleTransfer
add r0, r4, #0x0
mov r1, #0x0
bl sub_0207CFAC
ldr r1, _0207BF7C ; =0x00000697
mov r2, #0x0
strb r2, [r4, r1]
add r0, r1, #0x1
strb r2, [r4, r0]
mov r0, #0x1
sub r1, #0x9
strb r0, [r4, r1]
b _0207BF74
_0207BEEA:
ldr r0, [r4, #0x0]
mov r1, #0x2
bl Bg_GetYpos
cmp r0, #0x30
ldr r0, [r4, #0x0]
blt _0207BF0A
mov r1, #0x2
mov r2, #0x3
mov r3, #0x38
bl ScheduleSetBgPosText
ldr r0, _0207BF78 ; =0x0000068E
mov r1, #0x2
strb r1, [r4, r0]
b _0207BF74
_0207BF0A:
mov r1, #0x2
mov r2, #0x4
mov r3, #0x10
bl ScheduleSetBgPosText
b _0207BF74
_0207BF16:
mov r1, #0xb5
bl sub_0207D924
mov r1, #0x8d
lsl r1, r1, #0x2
add r0, r4, #0x0
add r1, r4, r1
bl sub_0207CFAC
ldr r0, _0207BF80 ; =0x00000514
mov r1, #0x1
ldr r0, [r4, r0]
bl sub_020200A0
mov r0, #0x52
lsl r0, r0, #0x4
ldr r0, [r4, r0]
mov r1, #0x1
bl sub_020200A0
ldr r0, _0207BF84 ; =0x00000504
mov r1, #0x0
ldr r0, [r4, r0]
bl sub_020200A0
ldr r0, _0207BF88 ; =0x00000508
mov r1, #0x0
ldr r0, [r4, r0]
bl sub_020200A0
ldr r0, _0207BF8C ; =0x0000050C
mov r1, #0x0
ldr r0, [r4, r0]
bl sub_020200A0
mov r0, #0x51
lsl r0, r0, #0x4
ldr r0, [r4, r0]
mov r1, #0x0
bl sub_020200A0
add r0, r4, #0x0
mov r1, #0x0
bl sub_0207C07C
mov r0, #0x1
pop {r4, pc}
_0207BF74:
mov r0, #0x0
pop {r4, pc}
.balign 4
_0207BF78: .word 0x0000068E
_0207BF7C: .word 0x00000697
_0207BF80: .word 0x00000514
_0207BF84: .word 0x00000504
_0207BF88: .word 0x00000508
_0207BF8C: .word 0x0000050C
thumb_func_start sub_0207BF90
sub_0207BF90: ; 0x0207BF90
push {r4, lr}
ldr r1, _0207C078 ; =0x0000068E
add r4, r0, #0x0
ldrb r0, [r4, r1]
cmp r0, #0x0
beq _0207BFA6
cmp r0, #0x1
beq _0207BFF6
cmp r0, #0x2
beq _0207C022
b _0207C072
_0207BFA6:
add r0, r1, #0x0
mov r2, #0x0
add r0, #0x9
strb r2, [r4, r0]
add r1, #0xa
mov r0, #0x91
strb r2, [r4, r1]
lsl r0, r0, #0x2
ldr r0, [r4, r0]
add r0, #0x10
bl ClearWindowTilemapAndScheduleTransfer
mov r0, #0x91
lsl r0, r0, #0x2
ldr r0, [r4, r0]
add r0, #0x20
bl ClearWindowTilemapAndScheduleTransfer
mov r0, #0x91
lsl r0, r0, #0x2
ldr r0, [r4, r0]
add r0, #0x30
bl ClearWindowTilemapAndScheduleTransfer
mov r0, #0x8d
lsl r0, r0, #0x2
add r0, r4, r0
bl ClearWindowTilemapAndScheduleTransfer
add r0, r4, #0x0
mov r1, #0x0
bl sub_0207CFAC
add r0, r4, #0x0
bl sub_0207D2C8
ldr r0, _0207C078 ; =0x0000068E
mov r1, #0x1
strb r1, [r4, r0]
b _0207C072
_0207BFF6:
ldr r0, [r4, #0x0]
mov r1, #0x2
bl Bg_GetYpos
cmp r0, #0x8
ldr r0, [r4, #0x0]
bgt _0207C016
mov r1, #0x2
mov r2, #0x3
mov r3, #0x0
bl ScheduleSetBgPosText
ldr r0, _0207C078 ; =0x0000068E
mov r1, #0x2
strb r1, [r4, r0]
b _0207C072
_0207C016:
mov r1, #0x2
mov r2, #0x5
mov r3, #0x10
bl ScheduleSetBgPosText
b _0207C072
_0207C022:
add r0, r4, #0x0
add r0, #0x64
bl ScheduleWindowCopyToVram
mov r0, #0x81
lsl r0, r0, #0x2
add r0, r4, r0
bl ScheduleWindowCopyToVram
mov r0, #0x79
lsl r0, r0, #0x2
add r0, r4, r0
bl ScheduleWindowCopyToVram
mov r0, #0x8d
lsl r0, r0, #0x2
add r0, r4, r0
bl ScheduleWindowCopyToVram
mov r0, #0x91
lsl r0, r0, #0x2
ldr r0, [r4, r0]
bl ScheduleWindowCopyToVram
add r0, r4, #0x0
mov r1, #0xb4
bl sub_0207D924
add r0, r4, #0x0
mov r1, #0x1
bl sub_0207C6F0
mov r1, #0x8d
lsl r1, r1, #0x2
add r0, r4, #0x0
add r1, r4, r1
bl sub_0207CFAC
mov r0, #0x1
pop {r4, pc}
_0207C072:
mov r0, #0x0
pop {r4, pc}
nop
_0207C078: .word 0x0000068E
thumb_func_start sub_0207C07C
sub_0207C07C: ; 0x0207C07C
push {r4-r6, lr}
ldr r2, _0207C1D0 ; =0x00000697
add r5, r0, #0x0
add r3, r2, #0x1
ldrb r0, [r5, r2]
ldrb r4, [r5, r3]
cmp r1, #0x1
bne _0207C0A8
mov r1, #0x3
and r1, r0
cmp r1, #0x3
beq _0207C0B6
lsl r1, r4, #0x2
add r1, r0, r1
add r3, r1, #0x1
add r1, r2, #0x2
ldrb r1, [r5, r1]
cmp r3, r1
bge _0207C14A
add r1, r0, #0x1
strb r1, [r5, r2]
b _0207C14A
_0207C0A8:
mov r3, #0x0
mvn r3, r3
cmp r1, r3
bne _0207C0BE
mov r1, #0x3
tst r1, r0
bne _0207C0B8
_0207C0B6:
b _0207C1CE
_0207C0B8:
sub r1, r0, #0x1
strb r1, [r5, r2]
b _0207C14A
_0207C0BE:
cmp r1, #0x4
bne _0207C12C
cmp r0, #0x4
bhs _0207C0F2
add r1, r2, #0x2
ldrb r3, [r5, r1]
lsl r1, r4, #0x2
add r1, r0, r1
add r1, r1, #0x4
cmp r1, r3
blt _0207C0EC
cmp r3, #0x4
bls _0207C14A
lsr r1, r3, #0x1f
lsl r6, r3, #0x1e
sub r6, r6, r1
mov r3, #0x1e
ror r6, r3
add r1, r1, r6
beq _0207C14A
add r1, r1, #0x3
strb r1, [r5, r2]
b _0207C14A
_0207C0EC:
add r1, r0, #0x4
strb r1, [r5, r2]
b _0207C14A
_0207C0F2:
add r1, r2, #0x2
ldrb r1, [r5, r1]
lsl r3, r4, #0x2
add r3, #0x8
cmp r3, r1
bge _0207C14A
add r1, r2, #0x1
ldrb r1, [r5, r1]
add r6, r2, #0x1
add r3, r1, #0x1
add r1, r2, #0x1
strb r3, [r5, r1]
add r1, r2, #0x2
ldrb r6, [r5, r6]
ldrb r3, [r5, r1]
ldrb r1, [r5, r2]
lsl r6, r6, #0x2
add r1, r1, r6
cmp r1, r3
blt _0207C14A
lsr r1, r3, #0x1f
lsl r6, r3, #0x1e
sub r6, r6, r1
mov r3, #0x1e
ror r6, r3
add r1, r1, r6
add r1, r1, #0x3
strb r1, [r5, r2]
b _0207C14A
_0207C12C:
sub r3, r3, #0x3
cmp r1, r3
bne _0207C14A
cmp r0, #0x4
blo _0207C13C
sub r1, r0, #0x4
strb r1, [r5, r2]
b _0207C14A
_0207C13C:
cmp r4, #0x0
beq _0207C14A
add r1, r2, #0x1
ldrb r1, [r5, r1]
sub r3, r1, #0x1
add r1, r2, #0x1
strb r3, [r5, r1]
_0207C14A:
ldr r1, _0207C1D0 ; =0x00000697
ldrb r2, [r5, r1]
cmp r0, r2
bne _0207C15A
add r0, r1, #0x1
ldrb r0, [r5, r0]
cmp r4, r0
beq _0207C160
_0207C15A:
ldr r0, _0207C1D4 ; =0x000005DC
bl PlaySE
_0207C160:
ldr r1, _0207C1D0 ; =0x00000697
add r0, r5, #0x0
ldrb r1, [r5, r1]
bl sub_0207C1E8
ldr r1, _0207C1D8 ; =0x0000069A
strb r0, [r5, r1]
add r0, r5, #0x0
bl sub_0207D3C4
ldr r0, _0207C1DC ; =0x00000698
ldrb r0, [r5, r0]
cmp r4, r0
beq _0207C182
add r0, r5, #0x0
bl sub_0207D364
_0207C182:
add r0, r5, #0x0
bl sub_0207E9A0
add r0, r5, #0x0
bl sub_0207E840
ldr r0, _0207C1DC ; =0x00000698
ldrb r0, [r5, r0]
cmp r0, #0x0
ldr r0, _0207C1E0 ; =0x00000518
beq _0207C1A2
ldr r0, [r5, r0]
mov r1, #0x1
bl sub_020200A0
b _0207C1AA
_0207C1A2:
ldr r0, [r5, r0]
mov r1, #0x0
bl sub_020200A0
_0207C1AA:
ldr r0, _0207C1DC ; =0x00000698
ldrb r1, [r5, r0]
add r0, r0, #0x1
ldrb r0, [r5, r0]
lsl r1, r1, #0x2
add r1, #0x8
cmp r1, r0
ldr r0, _0207C1E4 ; =0x0000051C
bge _0207C1C6
ldr r0, [r5, r0]
mov r1, #0x1
bl sub_020200A0
pop {r4-r6, pc}
_0207C1C6:
ldr r0, [r5, r0]
mov r1, #0x0
bl sub_020200A0
_0207C1CE:
pop {r4-r6, pc}
.balign 4
_0207C1D0: .word 0x00000697
_0207C1D4: .word 0x000005DC
_0207C1D8: .word 0x0000069A
_0207C1DC: .word 0x00000698
_0207C1E0: .word 0x00000518
_0207C1E4: .word 0x0000051C
thumb_func_start sub_0207C1E8
sub_0207C1E8: ; 0x0207C1E8
push {r4-r7}
ldr r2, _0207C238 ; =0x00000698
mov r6, #0x0
ldrb r2, [r0, r2]
add r4, r6, #0x0
lsl r2, r2, #0x2
add r1, r1, r2
lsl r1, r1, #0x18
lsr r5, r1, #0x18
mov r1, #0xa9
mov r2, #0x1
lsl r1, r1, #0x2
_0207C200:
mov r3, #0x1f
add r7, r4, #0x0
and r7, r3
add r3, r2, #0x0
lsl r3, r7
lsr r7, r4, #0x5
lsl r7, r7, #0x2
add r7, r0, r7
ldr r7, [r7, r1]
tst r3, r7
beq _0207C228
cmp r5, r6
bne _0207C222
lsl r0, r4, #0x18
lsr r0, r0, #0x18
pop {r4-r7}
bx lr
_0207C222:
add r3, r6, #0x1
lsl r3, r3, #0x18
lsr r6, r3, #0x18
_0207C228:
add r3, r4, #0x1
lsl r3, r3, #0x10
lsr r4, r3, #0x10
cmp r4, #0x50
blo _0207C200
mov r0, #0x0
pop {r4-r7}
bx lr
.balign 4
_0207C238: .word 0x00000698
thumb_func_start sub_0207C23C
sub_0207C23C: ; 0x0207C23C
push {r4, lr}
sub sp, #0x8
ldr r1, _0207C29C ; =0x0000029A
add r4, r0, #0x0
ldrb r0, [r4, r1]
cmp r0, #0xff
bne _0207C28E
mov r0, #0x0
sub r1, #0xda
mov r2, #0x13
bl LoadFontPal1
mov r0, #0x93
lsl r0, r0, #0x2
ldr r0, [r4, r0]
ldr r0, [r0, #0x4]
bl Options_GetFrame
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x0]
mov r0, #0x13
str r0, [sp, #0x4]
ldr r0, [r4, #0x0]
ldr r2, _0207C2A0 ; =0x000003E2
mov r1, #0x1
mov r3, #0xd
bl sub_0200CD68
add r0, r4, #0x0
mov r1, #0xff
bl sub_0207EECC
mov r0, #0x93
lsl r0, r0, #0x2
ldr r0, [r4, r0]
mov r1, #0x1
strb r1, [r0, #0x17]
add sp, #0x8
mov r0, #0x11
pop {r4, pc}
_0207C28E:
sub r1, #0x4e
ldr r0, [r4, r1]
mov r2, #0x0
strb r2, [r0, #0x17]
mov r0, #0x12
add sp, #0x8
pop {r4, pc}
.balign 4
_0207C29C: .word 0x0000029A
_0207C2A0: .word 0x000003E2
thumb_func_start sub_0207C2A4
sub_0207C2A4: ; 0x0207C2A4
push {r3-r5, lr}
add r4, r1, #0x0
add r5, r0, #0x0
add r0, r4, #0x0
bl PlayerProfile_GetNamePtr
str r0, [r5, #0x8]
add r0, r4, #0x0
bl PlayerProfile_GetTrainerID
str r0, [r5, #0xc]
add r0, r4, #0x0
bl PlayerProfile_GetTrainerGender
strb r0, [r5, #0x10]
pop {r3-r5, pc}
thumb_func_start sub_0207C2C4
sub_0207C2C4: ; 0x0207C2C4
mov r0, #0x40
bx lr
thumb_func_start sub_0207C2C8
sub_0207C2C8: ; 0x0207C2C8
mov r0, #0x41
bx lr
thumb_func_start sub_0207C2CC
sub_0207C2CC: ; 0x0207C2CC
mov r0, #0x3f
bx lr
thumb_func_start sub_0207C2D0
sub_0207C2D0: ; 0x0207C2D0
mov r0, #0x3e
bx lr
thumb_func_start sub_0207C2D4
sub_0207C2D4: ; 0x0207C2D4
push {r3-r5, lr}
add r5, r0, #0x0
mov r1, #0x9f
mov r2, #0x0
bl GetMonData
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0xa2
mov r2, #0x0
bl GetMonData
cmp r0, #0x0
bne _0207C2F4
mov r0, #0x6
pop {r3-r5, pc}
_0207C2F4:
mov r0, #0x88
tst r0, r4
beq _0207C2FE
mov r0, #0x4
pop {r3-r5, pc}
_0207C2FE:
mov r0, #0x7
add r1, r4, #0x0
tst r1, r0
beq _0207C30A
mov r0, #0x3
pop {r3-r5, pc}
_0207C30A:
mov r1, #0x10
tst r1, r4
beq _0207C314
mov r0, #0x5
pop {r3-r5, pc}
_0207C314:
mov r1, #0x20
tst r1, r4
beq _0207C31E
mov r0, #0x2
pop {r3-r5, pc}
_0207C31E:
mov r1, #0x40
tst r1, r4
beq _0207C326
mov r0, #0x1
_0207C326:
pop {r3-r5, pc}