pokediamond/arm9/asm/unk_0206C700.s

2751 lines
50 KiB
ArmAsm

.include "asm/macros.inc"
.include "global.inc"
.extern gSystem
.extern UNK_020FA6E8
.section .rodata
.global UNK_020F831C
UNK_020F831C: ; 0x020F831C
.byte 0x03, 0x05, 0x08, 0x00
.global UNK_020F8320
UNK_020F8320: ; 0x020F8320
.byte 0x02, 0x17, 0x0D, 0x07, 0x04, 0x0B, 0x0A, 0x00
.global UNK_020F8328
UNK_020F8328: ; 0x020F8328
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.global UNK_020F8338
UNK_020F8338: ; 0x020F8338
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.global UNK_020F8354
UNK_020F8354: ; 0x020F8354
.byte 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 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 0x03, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00
.global UNK_020F837C
UNK_020F837C: ; 0x020F837C
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x02, 0x03
.byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x06, 0x04, 0x00, 0x03, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.text
thumb_func_start sub_0206C700
sub_0206C700: ; 0x0206C700
push {r4-r7, lr}
sub sp, #0x24
ldr r5, [sp, #0x54]
add r6, r0, #0x0
str r1, [sp, #0x14]
add r0, r5, #0x0
mov r1, #0x80
add r7, r2, #0x0
str r3, [sp, #0x18]
bl Heap_Alloc
add r4, r0, #0x0
mov r0, #0x0
add r1, r4, #0x0
mov r2, #0x80
bl MIi_CpuClearFast
bl sub_020222F0
str r0, [sp, #0x1c]
bl sub_020222E8
add r1, r0, #0x0
ldr r2, [sp, #0x1c]
mov r0, #0x0
bl MIi_CpuClear16
bl sub_02022300
str r0, [sp, #0x20]
bl sub_020222F8
add r1, r0, #0x0
ldr r2, [sp, #0x20]
mov r0, #0x0
bl MIi_CpuClear16
ldr r0, [sp, #0x14]
str r6, [r4, #0x24]
mov r1, #0x5
mov r2, #0x0
str r0, [r4, #0x28]
bl GetMonData
add r1, r4, #0x0
add r1, #0x60
strh r0, [r1, #0x0]
add r0, r4, #0x0
add r0, #0x62
strh r7, [r0, #0x0]
str r5, [r4, #0x5c]
add r0, r5, #0x0
bl sub_02002FD0
str r0, [r4, #0x14]
mov r1, #0x1
bl sub_020038F0
mov r2, #0x2
ldr r0, [r4, #0x14]
mov r1, #0x0
lsl r2, r2, #0x8
add r3, r5, #0x0
bl PaletteData_AllocBuffers
mov r1, #0x1
ldr r0, [r4, #0x14]
lsl r2, r1, #0x9
add r3, r5, #0x0
bl PaletteData_AllocBuffers
mov r2, #0x7
ldr r0, [r4, #0x14]
mov r1, #0x2
lsl r2, r2, #0x6
add r3, r5, #0x0
bl PaletteData_AllocBuffers
mov r2, #0x2
ldr r0, [r4, #0x14]
mov r1, #0x3
lsl r2, r2, #0x8
add r3, r5, #0x0
bl PaletteData_AllocBuffers
add r0, r5, #0x0
bl BgConfig_Alloc
str r0, [r4, #0x0]
add r0, r5, #0x0
mov r1, #0x1
bl AllocWindows
str r0, [r4, #0x4]
ldr r0, [sp, #0x18]
str r0, [r4, #0x2c]
add r0, r5, #0x0
bl sub_0206DE78
str r0, [r4, #0x34]
bl sub_0206DE24
bl sub_0206DE4C
bl sub_0206DF18
ldr r1, [r4, #0x0]
add r0, r4, #0x0
bl sub_0206D9B4
mov r0, #0x13
str r0, [sp, #0x0]
mov r0, #0x1b
str r0, [sp, #0x4]
mov r0, #0x4
str r0, [sp, #0x8]
mov r0, #0xb
str r0, [sp, #0xc]
mov r0, #0x1f
str r0, [sp, #0x10]
ldr r0, [r4, #0x0]
ldr r1, [r4, #0x4]
mov r2, #0x1
mov r3, #0x2
bl AddWindowParameterized
ldr r0, [r4, #0x4]
mov r1, #0xff
bl FillWindowPixelBuffer
ldr r0, [r4, #0x4]
mov r1, #0x0
mov r2, #0x1
mov r3, #0xa
bl DrawFrameAndWindow2
add r0, r5, #0x0
bl sub_02006D98
str r0, [r4, #0x18]
add r0, r5, #0x0
mov r1, #0x1
mov r2, #0x0
bl sub_02014BF4
str r0, [r4, #0x44]
add r0, r4, #0x0
mov r2, #0x51
mov r1, #0x0
add r0, #0x67
strb r1, [r0, #0x0]
add r0, r4, #0x0
mov r1, #0x2
add r0, #0x66
strb r1, [r0, #0x0]
mov r0, #0x1
mov r1, #0x1a
lsl r2, r2, #0x2
add r3, r5, #0x0
bl NewMsgDataFromNarc
str r0, [r4, #0x8]
add r0, r5, #0x0
bl MessageFormat_New
str r0, [r4, #0xc]
mov r0, #0x5
lsl r0, r0, #0x6
add r1, r5, #0x0
bl String_New
str r0, [r4, #0x10]
add r0, r5, #0x0
mov r1, #0x30
bl Heap_Alloc
str r0, [r4, #0x3c]
ldr r1, [r4, #0x3c]
mov r0, #0x0
mov r2, #0x30
bl MIi_CpuClearFast
ldr r1, [sp, #0x38]
ldr r0, [r4, #0x3c]
str r1, [r0, #0x2c]
ldr r0, [sp, #0x3c]
str r0, [r4, #0x48]
ldr r0, [sp, #0x40]
str r0, [r4, #0x4c]
ldr r0, [sp, #0x44]
str r0, [r4, #0x50]
ldr r0, [sp, #0x48]
str r0, [r4, #0x54]
ldr r0, [sp, #0x4c]
str r0, [r4, #0x78]
ldr r0, [sp, #0x50]
str r0, [r4, #0x7c]
add r0, r4, #0x0
bl sub_0206DC80
mov r0, #0x10
str r0, [sp, #0x0]
mov r0, #0x0
str r0, [sp, #0x4]
str r0, [sp, #0x8]
ldr r0, [r4, #0x14]
ldr r2, _0206C8E4 ; =0x0000FFFF
mov r1, #0xf
mov r3, #0x1
bl sub_02003210
mov r2, #0x0
str r2, [sp, #0x0]
ldr r0, [r4, #0x18]
mov r1, #0x10
add r3, r2, #0x0
bl sub_02007E98
ldr r0, [r4, #0x14]
mov r1, #0x0
mov r2, #0xb
add r3, r5, #0x0
bl sub_020142EC
mov r1, #0x1
str r0, [r4, #0x58]
bl sub_020143A8
ldr r0, _0206C8E8 ; =sub_0206C8EC
add r1, r4, #0x0
mov r2, #0x0
bl SysTask_CreateOnMainQueue
mov r0, #0x1
bl TextFlags_SetCanABSpeedUpPrint
bl sub_02033E74
add r0, r4, #0x0
add sp, #0x24
pop {r4-r7, pc}
nop
_0206C8E4: .word 0x0000FFFF
_0206C8E8: .word sub_0206C8EC
thumb_func_start sub_0206C8EC
sub_0206C8EC: ; 0x0206C8EC
push {r3-r5, lr}
add r5, r1, #0x0
add r4, r0, #0x0
add r0, r5, #0x0
bl sub_0206C9C0
ldr r0, [r5, #0x18]
bl sub_02006ED4
bl sub_0206DF58
mov r0, #0x1
mov r1, #0x0
bl sub_020222B4
add r5, #0x67
ldrb r0, [r5, #0x0]
cmp r0, #0x0
beq _0206C918
add r0, r4, #0x0
bl SysTask_Destroy
_0206C918:
pop {r3-r5, pc}
.balign 4
thumb_func_start sub_0206C91C
sub_0206C91C: ; 0x0206C91C
add r0, #0x67
ldrb r0, [r0, #0x0]
cmp r0, #0x1
bne _0206C928
mov r0, #0x1
bx lr
_0206C928:
mov r0, #0x0
bx lr
thumb_func_start sub_0206C92C
sub_0206C92C: ; 0x0206C92C
push {r4, lr}
add r4, r0, #0x0
mov r0, #0x0
add r1, r0, #0x0
bl sub_0200E3A0
mov r0, #0x1
mov r1, #0x0
bl sub_0200E3A0
mov r0, #0x0
add r1, r0, #0x0
bl Main_SetVBlankIntrCB
ldr r0, [r4, #0x4]
mov r1, #0x1
bl WindowArray_Delete
ldr r0, [r4, #0x14]
mov r1, #0x0
bl PaletteData_FreeBuffers
ldr r0, [r4, #0x14]
mov r1, #0x1
bl PaletteData_FreeBuffers
ldr r0, [r4, #0x14]
mov r1, #0x2
bl PaletteData_FreeBuffers
ldr r0, [r4, #0x14]
mov r1, #0x3
bl PaletteData_FreeBuffers
ldr r0, [r4, #0x14]
bl sub_02002FEC
ldr r0, [r4, #0x18]
bl sub_020072E8
ldr r0, [r4, #0x44]
bl sub_02014C28
ldr r0, [r4, #0x34]
bl sub_020223BC
ldr r0, [r4, #0x0]
bl sub_0206DC48
ldr r0, [r4, #0x8]
bl DestroyMsgData
ldr r0, [r4, #0xc]
bl MessageFormat_Delete
ldr r0, [r4, #0x10]
bl Heap_Free
ldr r0, [r4, #0x3c]
bl Heap_Free
ldr r0, [r4, #0x58]
bl sub_020143D0
ldr r0, [r4, #0x0]
bl Heap_Free
add r0, r4, #0x0
bl Heap_Free
mov r0, #0x0
bl TextFlags_SetCanABSpeedUpPrint
pop {r4, pc}
thumb_func_start sub_0206C9C0
sub_0206C9C0: ; 0x0206C9C0
push {r3-r4, lr}
sub sp, #0x54
add r4, r0, #0x0
add r0, #0x70
ldrb r1, [r0, #0x0]
cmp r1, #0x0
beq _0206CA9C
mov r0, #0x1
tst r0, r1
ldr r0, [r4, #0x1c]
bne _0206CA2E
add r2, r4, #0x0
add r2, #0x71
ldrb r2, [r2, #0x0]
mov r1, #0xc
neg r2, r2
bl sub_020079E0
add r2, r4, #0x0
add r2, #0x71
ldrb r2, [r2, #0x0]
ldr r0, [r4, #0x1c]
mov r1, #0xd
neg r2, r2
bl sub_020079E0
add r2, r4, #0x0
add r2, #0x71
ldrb r2, [r2, #0x0]
ldr r0, [r4, #0x20]
mov r1, #0xc
bl sub_020079E0
add r2, r4, #0x0
add r2, #0x71
ldrb r2, [r2, #0x0]
ldr r0, [r4, #0x20]
mov r1, #0xd
bl sub_020079E0
ldr r0, [r4, #0x1c]
mov r1, #0xc
bl sub_0200782C
cmp r0, #0x0
bne _0206CA9C
add r0, r4, #0x0
add r0, #0x70
ldrb r1, [r0, #0x0]
mov r0, #0x1
eor r1, r0
add r0, r4, #0x0
add r0, #0x70
strb r1, [r0, #0x0]
b _0206CA9C
_0206CA2E:
add r2, r4, #0x0
add r2, #0x71
ldrb r2, [r2, #0x0]
mov r1, #0xc
bl sub_020079E0
add r2, r4, #0x0
add r2, #0x71
ldrb r2, [r2, #0x0]
ldr r0, [r4, #0x1c]
mov r1, #0xd
bl sub_020079E0
add r2, r4, #0x0
add r2, #0x71
ldrb r2, [r2, #0x0]
ldr r0, [r4, #0x20]
mov r1, #0xc
neg r2, r2
bl sub_020079E0
add r2, r4, #0x0
add r2, #0x71
ldrb r2, [r2, #0x0]
ldr r0, [r4, #0x20]
mov r1, #0xd
neg r2, r2
bl sub_020079E0
ldr r0, [r4, #0x20]
mov r1, #0xc
bl sub_0200782C
cmp r0, #0x0
bne _0206CA9C
add r0, r4, #0x0
add r0, #0x70
ldrb r1, [r0, #0x0]
mov r0, #0x1
eor r1, r0
add r0, r4, #0x0
add r0, #0x70
strb r1, [r0, #0x0]
add r0, r4, #0x0
add r0, #0x71
ldrb r0, [r0, #0x0]
cmp r0, #0x40
bhs _0206CA9C
add r0, r4, #0x0
add r0, #0x71
ldrb r0, [r0, #0x0]
lsl r1, r0, #0x1
add r0, r4, #0x0
add r0, #0x71
strb r1, [r0, #0x0]
_0206CA9C:
ldr r1, [r4, #0x7c]
mov r0, #0x1
tst r0, r1
beq _0206CAD6
add r0, r4, #0x0
add r0, #0x64
ldrb r0, [r0, #0x0]
cmp r0, #0x8
bne _0206CAD6
ldr r0, _0206CE0C ; =gSystem
ldr r1, [r0, #0x48]
mov r0, #0x2
tst r0, r1
beq _0206CAD6
mov r3, #0x0
str r3, [sp, #0x0]
mov r0, #0x10
str r0, [sp, #0x4]
ldr r0, _0206CE10 ; =0x00007FFF
ldr r2, _0206CE14 ; =0x0000F3FF
str r0, [sp, #0x8]
ldr r0, [r4, #0x14]
mov r1, #0xf
bl sub_02003210
add r0, r4, #0x0
mov r1, #0x29
add r0, #0x64
strb r1, [r0, #0x0]
_0206CAD6:
add r0, r4, #0x0
add r0, #0x64
ldrb r0, [r0, #0x0]
cmp r0, #0x2d
bhi _0206CBA8
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #0x6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_0206CAEC: ; jump table (using 16-bit offset)
.short _0206CB48 - _0206CAEC - 2; case 0
.short _0206CB70 - _0206CAEC - 2; case 1
.short _0206CB9E - _0206CAEC - 2; case 2
.short _0206CBCC - _0206CAEC - 2; case 3
.short _0206CBE4 - _0206CAEC - 2; case 4
.short _0206CC66 - _0206CAEC - 2; case 5
.short _0206CCB2 - _0206CAEC - 2; case 6
.short _0206CD34 - _0206CAEC - 2; case 7
.short _0206CDC8 - _0206CAEC - 2; case 8
.short _0206CE8A - _0206CAEC - 2; case 9
.short _0206CF18 - _0206CAEC - 2; case 10
.short _0206CF7E - _0206CAEC - 2; case 11
.short _0206CFFA - _0206CAEC - 2; case 12
.short _0206D06E - _0206CAEC - 2; case 13
.short _0206D0E8 - _0206CAEC - 2; case 14
.short _0206D188 - _0206CAEC - 2; case 15
.short _0206D12C - _0206CAEC - 2; case 16
.short _0206D188 - _0206CAEC - 2; case 17
.short _0206D162 - _0206CAEC - 2; case 18
.short _0206D188 - _0206CAEC - 2; case 19
.short _0206D1C0 - _0206CAEC - 2; case 20
.short _0206D20E - _0206CAEC - 2; case 21
.short _0206D260 - _0206CAEC - 2; case 22
.short _0206D2E2 - _0206CAEC - 2; case 23
.short _0206D360 - _0206CAEC - 2; case 24
.short _0206D480 - _0206CAEC - 2; case 25
.short _0206D188 - _0206CAEC - 2; case 26
.short _0206D4A6 - _0206CAEC - 2; case 27
.short _0206D188 - _0206CAEC - 2; case 28
.short _0206D4F8 - _0206CAEC - 2; case 29
.short _0206D188 - _0206CAEC - 2; case 30
.short _0206D51E - _0206CAEC - 2; case 31
.short _0206D398 - _0206CAEC - 2; case 32
.short _0206D188 - _0206CAEC - 2; case 33
.short _0206D3CC - _0206CAEC - 2; case 34
.short _0206D3EE - _0206CAEC - 2; case 35
.short _0206D44E - _0206CAEC - 2; case 36
.short _0206D5AA - _0206CAEC - 2; case 37
.short _0206D5C8 - _0206CAEC - 2; case 38
.short _0206D5F4 - _0206CAEC - 2; case 39
.short _0206D628 - _0206CAEC - 2; case 40
.short _0206D648 - _0206CAEC - 2; case 41
.short _0206D6EE - _0206CAEC - 2; case 42
.short _0206D748 - _0206CAEC - 2; case 43
.short _0206D79C - _0206CAEC - 2; case 44
.short _0206D7F6 - _0206CAEC - 2; case 45
_0206CB48:
add r0, r4, #0x0
add r0, #0x66
ldrb r0, [r0, #0x0]
sub r1, r0, #0x1
add r0, r4, #0x0
add r0, #0x66
strb r1, [r0, #0x0]
add r0, r4, #0x0
add r0, #0x66
ldrb r0, [r0, #0x0]
cmp r0, #0x0
bne _0206CBA8
add r0, r4, #0x0
add r0, #0x64
ldrb r0, [r0, #0x0]
add r4, #0x64
add sp, #0x54
add r0, r0, #0x1
strb r0, [r4, #0x0]
pop {r3-r4, pc}
_0206CB70:
mov r0, #0x0
bl SetMasterBrightnessNeutral
mov r0, #0x1
bl SetMasterBrightnessNeutral
ldr r0, [r4, #0x58]
mov r1, #0x0
bl sub_020143A8
ldr r1, [r4, #0x7c]
mov r0, #0x2
tst r1, r0
beq _0206CB94
add r4, #0x64
add sp, #0x54
strb r0, [r4, #0x0]
pop {r3-r4, pc}
_0206CB94:
mov r0, #0x4
add r4, #0x64
add sp, #0x54
strb r0, [r4, #0x0]
pop {r3-r4, pc}
_0206CB9E:
ldr r0, [r4, #0x14]
bl sub_020038E4
cmp r0, #0x0
beq _0206CBAC
_0206CBA8:
bl _0206D806
_0206CBAC:
mov r1, #0xe5
add r0, r4, #0x0
lsl r1, r1, #0x2
bl sub_0206DD6C
add r1, r4, #0x0
add r1, #0x65
strb r0, [r1, #0x0]
add r0, r4, #0x0
add r0, #0x64
ldrb r0, [r0, #0x0]
add r4, #0x64
add sp, #0x54
add r0, r0, #0x1
strb r0, [r4, #0x0]
pop {r3-r4, pc}
_0206CBCC:
add r0, r4, #0x0
add r0, #0x65
ldrb r0, [r0, #0x0]
bl sub_0201BD70
cmp r0, #0x0
bne _0206CCCA
mov r0, #0x4
add r4, #0x64
add sp, #0x54
strb r0, [r4, #0x0]
pop {r3-r4, pc}
_0206CBE4:
ldr r0, [r4, #0x14]
bl sub_020038E4
cmp r0, #0x0
bne _0206CCCA
mov r0, #0x0
str r0, [sp, #0x0]
str r0, [sp, #0x4]
str r0, [sp, #0x8]
add r2, r4, #0x0
add r2, #0x60
ldrh r2, [r2, #0x0]
ldr r0, [r4, #0x44]
ldr r1, [r4, #0x1c]
mov r3, #0x2
bl sub_02069038
add r1, r4, #0x0
add r1, #0x60
ldrh r1, [r1, #0x0]
add r0, sp, #0x40
bl sub_02069010
ldr r0, [r4, #0x1c]
add r1, sp, #0x40
bl sub_0200737C
ldr r0, [r4, #0x1c]
mov r1, #0x0
bl sub_02007314
add r0, r4, #0x0
add r0, #0x60
ldrh r0, [r0, #0x0]
bl sub_02005578
ldr r0, [r4, #0x28]
bl sub_020690E4
add r2, r0, #0x0
ldr r0, [r4, #0xc]
mov r1, #0x0
bl BufferBoxMonNickname
ldr r1, [r4, #0x7c]
mov r0, #0x2
tst r0, r1
beq _0206CC4E
ldr r1, _0206CE18 ; =0x00000395
add r0, r4, #0x0
bl sub_0206DD6C
b _0206CC56
_0206CC4E:
ldr r1, _0206CE1C ; =0x00000393
add r0, r4, #0x0
bl sub_0206DD6C
_0206CC56:
add r1, r4, #0x0
add r1, #0x65
strb r0, [r1, #0x0]
mov r0, #0x5
add r4, #0x64
add sp, #0x54
strb r0, [r4, #0x0]
pop {r3-r4, pc}
_0206CC66:
add r0, r4, #0x0
add r0, #0x65
ldrb r0, [r0, #0x0]
bl sub_0201BD70
cmp r0, #0x0
bne _0206CCCA
bl sub_02005670
cmp r0, #0x0
bne _0206CCCA
ldr r0, [r4, #0x44]
mov r1, #0x0
bl sub_02014D7C
cmp r0, #0x1
bne _0206CCCA
ldr r0, [r4, #0x1c]
bl sub_02007390
cmp r0, #0x0
bne _0206CCCA
ldr r0, [r4, #0x58]
mov r1, #0x1
bl sub_020143A8
ldr r0, _0206CE20 ; =0x00000475
bl sub_020051F4
add r0, r4, #0x0
mov r1, #0x14
add r0, #0x66
strb r1, [r0, #0x0]
mov r0, #0x6
add r4, #0x64
add sp, #0x54
strb r0, [r4, #0x0]
pop {r3-r4, pc}
_0206CCB2:
add r0, r4, #0x0
add r0, #0x66
ldrb r0, [r0, #0x0]
sub r1, r0, #0x1
add r0, r4, #0x0
add r0, #0x66
strb r1, [r0, #0x0]
add r0, r4, #0x0
add r0, #0x66
ldrb r0, [r0, #0x0]
cmp r0, #0x0
beq _0206CCCE
_0206CCCA:
bl _0206D806
_0206CCCE:
ldr r0, [r4, #0x5c]
str r0, [sp, #0x10]
mov r0, #0x0
str r0, [sp, #0x14]
add r0, sp, #0x10
bl sub_0206E07C
mov r1, #0x0
str r0, [r4, #0x30]
bl sub_0206E0AC
ldr r0, _0206CE10 ; =0x00007FFF
mov r1, #0x0
str r0, [sp, #0x0]
ldr r0, [r4, #0x1c]
mov r2, #0x10
mov r3, #0x4
bl sub_02007E68
ldr r0, _0206CE10 ; =0x00007FFF
mov r1, #0x0
str r0, [sp, #0x0]
ldr r0, [r4, #0x20]
mov r2, #0x10
mov r3, #0x4
bl sub_02007E68
ldr r0, [r4, #0x5c]
bl HeapExp_FndGetTotalFreeSize
mov r1, #0x2
lsl r1, r1, #0xe
cmp r0, r1
bhi _0206CD16
bl GF_AssertFail
_0206CD16:
ldr r0, _0206CE24 ; =0x000005F9
bl PlaySE
add r0, r4, #0x0
mov r1, #0x28
add r0, #0x66
strb r1, [r0, #0x0]
add r0, r4, #0x0
add r0, #0x64
ldrb r0, [r0, #0x0]
add r4, #0x64
add sp, #0x54
add r0, r0, #0x1
strb r0, [r4, #0x0]
pop {r3-r4, pc}
_0206CD34:
add r0, r4, #0x0
add r0, #0x73
ldrb r0, [r0, #0x0]
cmp r0, #0x28
bhs _0206CD5A
add r0, r4, #0x0
add r0, #0x73
ldrb r0, [r0, #0x0]
add r1, r0, #0x2
add r0, r4, #0x0
add r0, #0x73
strb r1, [r0, #0x0]
add r0, r4, #0x0
add r0, #0x75
ldrb r0, [r0, #0x0]
sub r1, r0, #0x2
add r0, r4, #0x0
add r0, #0x75
strb r1, [r0, #0x0]
_0206CD5A:
add r0, r4, #0x0
add r0, #0x66
ldrb r0, [r0, #0x0]
sub r1, r0, #0x1
add r0, r4, #0x0
add r0, #0x66
strb r1, [r0, #0x0]
add r0, r4, #0x0
add r0, #0x66
ldrb r0, [r0, #0x0]
cmp r0, #0x0
bne _0206CDD2
ldr r0, [r4, #0x30]
mov r1, #0x1
bl sub_0206E0AC
ldr r0, [r4, #0x30]
mov r1, #0x2
bl sub_0206E0AC
ldr r0, [r4, #0x30]
mov r1, #0x7
bl sub_0206E0AC
ldr r0, [r4, #0x30]
mov r1, #0x8
bl sub_0206E0AC
ldr r0, [r4, #0x30]
mov r1, #0x9
bl sub_0206E0AC
ldr r0, [r4, #0x30]
mov r1, #0xb
bl sub_0206E0AC
ldr r0, _0206CE28 ; =0x000005FA
bl PlaySE
add r0, r4, #0x0
mov r1, #0x10
add r0, #0x70
strb r1, [r0, #0x0]
add r0, r4, #0x0
mov r1, #0x8
add r0, #0x71
strb r1, [r0, #0x0]
add r0, r4, #0x0
add r0, #0x64
ldrb r0, [r0, #0x0]
add r4, #0x64
add sp, #0x54
add r0, r0, #0x1
strb r0, [r4, #0x0]
pop {r3-r4, pc}
_0206CDC8:
ldr r0, [r4, #0x30]
bl sub_0206E0C8
cmp r0, #0x0
beq _0206CDD6
_0206CDD2:
bl _0206D806
_0206CDD6:
ldr r0, [r4, #0x30]
mov r1, #0x3
bl sub_0206E0AC
ldr r0, [r4, #0x30]
mov r1, #0x4
bl sub_0206E0AC
ldr r0, [r4, #0x30]
mov r1, #0x5
bl sub_0206E0AC
ldr r0, [r4, #0x30]
mov r1, #0x6
bl sub_0206E0AC
ldr r0, [r4, #0x30]
mov r1, #0xa
bl sub_0206E0AC
mov r0, #0x0
str r0, [sp, #0x0]
mov r0, #0x10
str r0, [sp, #0x4]
ldr r0, _0206CE10 ; =0x00007FFF
ldr r2, _0206CE14 ; =0x0000F3FF
b _0206CE2C
.balign 4
_0206CE0C: .word gSystem
_0206CE10: .word 0x00007FFF
_0206CE14: .word 0x0000F3FF
_0206CE18: .word 0x00000395
_0206CE1C: .word 0x00000393
_0206CE20: .word 0x00000475
_0206CE24: .word 0x000005F9
_0206CE28: .word 0x000005FA
_0206CE2C:
str r0, [sp, #0x8]
ldr r0, [r4, #0x14]
mov r1, #0xf
mov r3, #0x2
bl sub_02003210
ldr r0, [r4, #0x1c]
mov r1, #0xc
mov r2, #0x0
bl sub_02007558
ldr r0, [r4, #0x1c]
mov r1, #0xd
mov r2, #0x0
bl sub_02007558
mov r1, #0xc
add r2, r1, #0x0
ldr r0, [r4, #0x20]
add r2, #0xf4
bl sub_02007558
mov r1, #0xd
add r2, r1, #0x0
ldr r0, [r4, #0x20]
add r2, #0xf3
bl sub_02007558
ldr r0, _0206D1C8 ; =0x000005FB
bl PlaySE
add r0, r4, #0x0
mov r1, #0x0
add r0, #0x70
strb r1, [r0, #0x0]
add r0, r4, #0x0
mov r1, #0x8
add r0, #0x66
strb r1, [r0, #0x0]
add r0, r4, #0x0
add r0, #0x64
ldrb r0, [r0, #0x0]
add r4, #0x64
add sp, #0x54
add r0, r0, #0x1
strb r0, [r4, #0x0]
pop {r3-r4, pc}
_0206CE8A:
add r0, r4, #0x0
add r0, #0x73
ldrb r0, [r0, #0x0]
cmp r0, #0x0
beq _0206CEB0
add r0, r4, #0x0
add r0, #0x73
ldrb r0, [r0, #0x0]
sub r1, r0, #0x2
add r0, r4, #0x0
add r0, #0x73
strb r1, [r0, #0x0]
add r0, r4, #0x0
add r0, #0x75
ldrb r0, [r0, #0x0]
add r1, r0, #0x2
add r0, r4, #0x0
add r0, #0x75
strb r1, [r0, #0x0]
_0206CEB0:
ldr r0, [r4, #0x14]
bl sub_020038E4
cmp r0, #0x0
bne _0206CF2C
add r0, r4, #0x0
add r0, #0x66
ldrb r0, [r0, #0x0]
sub r1, r0, #0x1
add r0, r4, #0x0
add r0, #0x66
strb r1, [r0, #0x0]
add r0, r4, #0x0
add r0, #0x66
ldrb r0, [r0, #0x0]
cmp r0, #0x0
bne _0206CF2C
ldr r0, [r4, #0x30]
mov r1, #0xc
bl sub_0206E0AC
mov r0, #0x10
str r0, [sp, #0x0]
mov r0, #0x0
str r0, [sp, #0x4]
ldr r0, _0206D1CC ; =0x00007FFF
ldr r2, _0206D1D0 ; =0x0000F3FF
str r0, [sp, #0x8]
ldr r0, [r4, #0x14]
mov r1, #0xf
mov r3, #0x4
bl sub_02003210
ldr r0, _0206D1CC ; =0x00007FFF
mov r1, #0x10
str r0, [sp, #0x0]
ldr r0, [r4, #0x18]
mov r2, #0x0
mov r3, #0x3
bl sub_02007E98
ldr r0, _0206D1D4 ; =0x000005FC
bl PlaySE
add r0, r4, #0x0
add r0, #0x64
ldrb r0, [r0, #0x0]
add r4, #0x64
add sp, #0x54
add r0, r0, #0x1
strb r0, [r4, #0x0]
pop {r3-r4, pc}
_0206CF18:
ldr r0, [r4, #0x14]
bl sub_020038E4
cmp r0, #0x0
bne _0206CF2C
ldr r0, [r4, #0x30]
bl sub_0206E0C8
cmp r0, #0x0
beq _0206CF30
_0206CF2C:
bl _0206D806
_0206CF30:
mov r0, #0x0
str r0, [sp, #0x0]
str r0, [sp, #0x4]
str r0, [sp, #0x8]
add r2, r4, #0x0
add r2, #0x62
ldrh r2, [r2, #0x0]
ldr r0, [r4, #0x44]
ldr r1, [r4, #0x20]
mov r3, #0x2
bl sub_02069038
add r1, r4, #0x0
add r1, #0x62
ldrh r1, [r1, #0x0]
add r0, sp, #0x2c
bl sub_02069010
ldr r0, [r4, #0x20]
add r1, sp, #0x2c
bl sub_0200737C
ldr r0, [r4, #0x20]
mov r1, #0x0
bl sub_02007314
add r0, r4, #0x0
add r0, #0x62
ldrh r0, [r0, #0x0]
bl sub_02005578
add r0, r4, #0x0
add r0, #0x64
ldrb r0, [r0, #0x0]
add r4, #0x64
add sp, #0x54
add r0, r0, #0x1
strb r0, [r4, #0x0]
pop {r3-r4, pc}
_0206CF7E:
bl sub_02005670
cmp r0, #0x0
bne _0206D084
ldr r0, [r4, #0x44]
mov r1, #0x0
bl sub_02014D7C
cmp r0, #0x1
bne _0206D084
ldr r0, [r4, #0x20]
bl sub_02007390
cmp r0, #0x0
bne _0206D084
add r2, r4, #0x0
ldr r0, [r4, #0x28]
mov r1, #0x5
add r2, #0x62
bl SetMonData
ldr r0, [r4, #0x28]
bl sub_0206A1C4
ldr r0, [r4, #0x28]
bl CalcMonLevelAndStats
ldr r0, [r4, #0x28]
bl sub_020690E4
add r2, r0, #0x0
ldr r0, [r4, #0xc]
mov r1, #0x0
bl BufferBoxMonNickname
ldr r0, [r4, #0x28]
bl sub_020690E4
add r2, r0, #0x0
ldr r0, [r4, #0xc]
mov r1, #0x1
bl BufferBoxMonSpeciesName
ldr r1, _0206D1D8 ; =0x00000396
add r0, r4, #0x0
bl sub_0206DD6C
add r1, r4, #0x0
add r1, #0x65
strb r0, [r1, #0x0]
add r0, r4, #0x0
mov r1, #0x28
add r0, #0x66
strb r1, [r0, #0x0]
add r0, r4, #0x0
add r0, #0x64
ldrb r0, [r0, #0x0]
add r4, #0x64
add sp, #0x54
add r0, r0, #0x1
strb r0, [r4, #0x0]
pop {r3-r4, pc}
_0206CFFA:
add r0, r4, #0x0
add r0, #0x65
ldrb r0, [r0, #0x0]
bl sub_0201BD70
cmp r0, #0x0
bne _0206D084
add r0, r4, #0x0
add r0, #0x66
ldrb r0, [r0, #0x0]
sub r1, r0, #0x1
add r0, r4, #0x0
add r0, #0x66
strb r1, [r0, #0x0]
add r0, r4, #0x0
add r0, #0x66
ldrb r0, [r0, #0x0]
cmp r0, #0x0
bne _0206D084
ldr r0, [r4, #0x48]
ldr r1, [r4, #0x28]
bl Pokedex_SetMonCaughtFlag
ldr r0, [r4, #0x50]
mov r1, #0xc
bl GameStats_Inc
ldr r0, [r4, #0x50]
mov r1, #0x16
bl GameStats_AddSpecial
ldr r0, [r4, #0x28]
bl sub_020690E4
add r1, r0, #0x0
ldr r0, [r4, #0x54]
bl Save_Poketch_PokemonHistoryAddMon
ldr r0, [r4, #0x28]
mov r1, #0x4d
mov r2, #0x0
bl GetMonData
cmp r0, #0x0
bne _0206D05E
ldr r0, [r4, #0x28]
mov r1, #0xb2
mov r2, #0x0
bl SetMonData
_0206D05E:
add r0, r4, #0x0
add r0, #0x64
ldrb r0, [r0, #0x0]
add r4, #0x64
add sp, #0x54
add r0, r0, #0x1
strb r0, [r4, #0x0]
pop {r3-r4, pc}
_0206D06E:
add r1, r4, #0x0
ldr r0, [r4, #0x28]
add r1, #0x68
add r2, sp, #0xc
bl sub_02069818
cmp r0, #0x0
beq _0206D08E
ldr r1, _0206D1DC ; =0x0000FFFE
cmp r0, r1
bne _0206D086
_0206D084:
b _0206D806
_0206D086:
add r1, r1, #0x1
cmp r0, r1
beq _0206D098
b _0206D0AC
_0206D08E:
mov r0, #0x27
add r4, #0x64
add sp, #0x54
strb r0, [r4, #0x0]
pop {r3-r4, pc}
_0206D098:
add r0, sp, #0xc
ldrh r1, [r0, #0x0]
add r0, r4, #0x0
add r0, #0x6c
strh r1, [r0, #0x0]
mov r0, #0xe
add r4, #0x64
add sp, #0x54
strb r0, [r4, #0x0]
pop {r3-r4, pc}
_0206D0AC:
ldr r0, [r4, #0x28]
bl sub_020690E4
add r2, r0, #0x0
ldr r0, [r4, #0xc]
mov r1, #0x0
bl BufferBoxMonNickname
add r2, sp, #0xc
ldrh r2, [r2, #0x0]
ldr r0, [r4, #0xc]
mov r1, #0x1
bl BufferMoveName
add r0, r4, #0x0
mov r1, #0x4
bl sub_0206DD6C
add r1, r4, #0x0
add r1, #0x65
strb r0, [r1, #0x0]
add r0, r4, #0x0
mov r1, #0x14
add r0, #0x66
strb r1, [r0, #0x0]
mov r0, #0x25
add r4, #0x64
add sp, #0x54
strb r0, [r4, #0x0]
pop {r3-r4, pc}
_0206D0E8:
ldr r0, [r4, #0x28]
bl sub_020690E4
add r2, r0, #0x0
ldr r0, [r4, #0xc]
mov r1, #0x0
bl BufferBoxMonNickname
add r2, r4, #0x0
add r2, #0x6c
ldrh r2, [r2, #0x0]
ldr r0, [r4, #0xc]
mov r1, #0x1
bl BufferMoveName
ldr r1, _0206D1E0 ; =0x000004A9
add r0, r4, #0x0
bl sub_0206DD6C
add r1, r4, #0x0
add r1, #0x65
strb r0, [r1, #0x0]
add r0, r4, #0x0
mov r1, #0x14
add r0, #0x66
strb r1, [r0, #0x0]
add r0, r4, #0x0
add r0, #0x64
ldrb r0, [r0, #0x0]
add r4, #0x64
add sp, #0x54
add r0, r0, #0x1
strb r0, [r4, #0x0]
pop {r3-r4, pc}
_0206D12C:
ldr r0, [r4, #0x28]
bl sub_020690E4
add r2, r0, #0x0
ldr r0, [r4, #0xc]
mov r1, #0x0
bl BufferBoxMonNickname
ldr r1, _0206D1E4 ; =0x000004AA
add r0, r4, #0x0
bl sub_0206DD6C
add r1, r4, #0x0
add r1, #0x65
strb r0, [r1, #0x0]
add r0, r4, #0x0
mov r1, #0x14
add r0, #0x66
strb r1, [r0, #0x0]
add r0, r4, #0x0
add r0, #0x64
ldrb r0, [r0, #0x0]
add r4, #0x64
add sp, #0x54
add r0, r0, #0x1
strb r0, [r4, #0x0]
pop {r3-r4, pc}
_0206D162:
ldr r1, _0206D1E8 ; =0x000004AB
add r0, r4, #0x0
bl sub_0206DD6C
add r1, r4, #0x0
add r1, #0x65
strb r0, [r1, #0x0]
add r0, r4, #0x0
mov r1, #0x1
add r0, #0x66
strb r1, [r0, #0x0]
add r0, r4, #0x0
add r0, #0x64
ldrb r0, [r0, #0x0]
add r4, #0x64
add sp, #0x54
add r0, r0, #0x1
strb r0, [r4, #0x0]
pop {r3-r4, pc}
_0206D188:
add r0, r4, #0x0
add r0, #0x65
ldrb r0, [r0, #0x0]
bl sub_0201BD70
cmp r0, #0x0
bne _0206D1AE
add r0, r4, #0x0
add r0, #0x66
ldrb r0, [r0, #0x0]
sub r1, r0, #0x1
add r0, r4, #0x0
add r0, #0x66
strb r1, [r0, #0x0]
add r0, r4, #0x0
add r0, #0x66
ldrb r0, [r0, #0x0]
cmp r0, #0x0
beq _0206D1B0
_0206D1AE:
b _0206D806
_0206D1B0:
add r0, r4, #0x0
add r0, #0x64
ldrb r0, [r0, #0x0]
add r4, #0x64
add sp, #0x54
add r0, r0, #0x1
strb r0, [r4, #0x0]
pop {r3-r4, pc}
_0206D1C0:
ldr r0, [r4, #0x5c]
ldr r1, _0206D1EC ; =UNK_020F8320
b _0206D1F0
nop
_0206D1C8: .word 0x000005FB
_0206D1CC: .word 0x00007FFF
_0206D1D0: .word 0x0000F3FF
_0206D1D4: .word 0x000005FC
_0206D1D8: .word 0x00000396
_0206D1DC: .word 0x0000FFFE
_0206D1E0: .word 0x000004A9
_0206D1E4: .word 0x000004AA
_0206D1E8: .word 0x000004AB
_0206D1EC: .word UNK_020F8320
_0206D1F0:
str r0, [sp, #0x0]
ldr r0, [r4, #0x0]
mov r2, #0x1
mov r3, #0x8
bl Std_CreateYesNoMenu
str r0, [r4, #0x40]
add r0, r4, #0x0
add r0, #0x64
ldrb r0, [r0, #0x0]
add r4, #0x64
add sp, #0x54
add r0, r0, #0x1
strb r0, [r4, #0x0]
pop {r3-r4, pc}
_0206D20E:
ldr r0, [r4, #0x40]
ldr r1, [r4, #0x5c]
bl sub_020021AC
cmp r0, #0x0
beq _0206D226
mov r1, #0x1
mvn r1, r1
cmp r0, r1
beq _0206D256
add sp, #0x54
pop {r3-r4, pc}
_0206D226:
add r0, r4, #0x0
mov r1, #0x16
add r0, #0x64
strb r1, [r0, #0x0]
mov r1, #0x0
str r1, [sp, #0x0]
mov r0, #0x10
str r0, [sp, #0x4]
str r1, [sp, #0x8]
ldr r0, [r4, #0x14]
ldr r2, _0206D540 ; =0x0000FFFF
mov r1, #0xf
mov r3, #0x1
bl sub_02003210
mov r1, #0x0
str r1, [sp, #0x0]
ldr r0, [r4, #0x18]
mov r2, #0x10
add r3, r1, #0x0
bl sub_02007E98
add sp, #0x54
pop {r3-r4, pc}
_0206D256:
mov r0, #0x20
add r4, #0x64
add sp, #0x54
strb r0, [r4, #0x0]
pop {r3-r4, pc}
_0206D260:
ldr r0, [r4, #0x14]
bl sub_020038E4
cmp r0, #0x0
bne _0206D2EC
mov r0, #0x0
add r1, r0, #0x0
bl sub_0200E3A0
mov r0, #0x1
mov r1, #0x0
bl sub_0200E3A0
ldr r0, [r4, #0x0]
bl sub_0206DC48
ldr r0, [r4, #0x1c]
mov r1, #0x6
mov r2, #0x1
bl sub_02007558
ldr r0, [r4, #0x20]
mov r1, #0x6
mov r2, #0x1
bl sub_02007558
ldr r1, [r4, #0x28]
ldr r0, [r4, #0x3c]
mov r2, #0x1
str r1, [r0, #0x0]
ldr r1, [r4, #0x2c]
ldr r0, [r4, #0x3c]
str r1, [r0, #0x4]
ldr r1, [r4, #0x3c]
mov r0, #0x0
strb r0, [r1, #0x11]
ldr r1, [r4, #0x3c]
strb r0, [r1, #0x14]
ldr r1, [r4, #0x3c]
strb r2, [r1, #0x13]
add r1, r4, #0x0
add r1, #0x6c
ldrh r2, [r1, #0x0]
ldr r1, [r4, #0x3c]
strh r2, [r1, #0x18]
ldr r1, [r4, #0x3c]
mov r2, #0x2
strb r2, [r1, #0x12]
ldr r1, [r4, #0x3c]
str r0, [r1, #0x28]
ldr r0, [r4, #0x3c]
ldr r1, _0206D544 ; =UNK_020F831C
bl sub_0207B000
add r0, r4, #0x0
bl sub_0206DE0C
add r0, r4, #0x0
add r0, #0x64
ldrb r0, [r0, #0x0]
add r4, #0x64
add sp, #0x54
add r0, r0, #0x1
strb r0, [r4, #0x0]
pop {r3-r4, pc}
_0206D2E2:
ldr r0, [r4, #0x38]
bl OverlayManager_Run
cmp r0, #0x0
bne _0206D2EE
_0206D2EC:
b _0206D806
_0206D2EE:
ldr r0, [r4, #0x38]
bl OverlayManager_Delete
ldr r1, [r4, #0x0]
add r0, r4, #0x0
bl sub_0206D9B4
ldr r0, [r4, #0x4]
mov r1, #0x0
mov r2, #0x1
mov r3, #0xa
bl DrawFrameAndWindow2
ldr r0, [r4, #0x1c]
mov r1, #0x6
mov r2, #0x0
bl sub_02007558
ldr r0, [r4, #0x20]
mov r1, #0x6
mov r2, #0x0
bl sub_02007558
ldr r0, [r4, #0x1c]
bl sub_020080D0
ldr r0, [r4, #0x20]
bl sub_020080D0
mov r0, #0x10
str r0, [sp, #0x0]
mov r0, #0x0
str r0, [sp, #0x4]
str r0, [sp, #0x8]
ldr r0, [r4, #0x14]
ldr r2, _0206D540 ; =0x0000FFFF
mov r1, #0xf
mov r3, #0x1
bl sub_02003210
mov r2, #0x0
str r2, [sp, #0x0]
ldr r0, [r4, #0x18]
mov r1, #0x10
add r3, r2, #0x0
bl sub_02007E98
bl sub_02033E74
add r0, r4, #0x0
add r0, #0x64
ldrb r0, [r0, #0x0]
add r4, #0x64
add sp, #0x54
add r0, r0, #0x1
strb r0, [r4, #0x0]
pop {r3-r4, pc}
_0206D360:
mov r0, #0x0
bl SetMasterBrightnessNeutral
mov r0, #0x1
bl SetMasterBrightnessNeutral
ldr r0, [r4, #0x14]
bl sub_020038E4
cmp r0, #0x0
bne _0206D474
ldr r0, [r4, #0x3c]
ldrb r1, [r0, #0x16]
cmp r1, #0x4
bne _0206D388
mov r0, #0x20
add r4, #0x64
add sp, #0x54
strb r0, [r4, #0x0]
pop {r3-r4, pc}
_0206D388:
add r0, r4, #0x0
add r0, #0x6e
strb r1, [r0, #0x0]
mov r0, #0x19
add r4, #0x64
add sp, #0x54
strb r0, [r4, #0x0]
pop {r3-r4, pc}
_0206D398:
add r2, r4, #0x0
add r2, #0x6c
ldrh r2, [r2, #0x0]
ldr r0, [r4, #0xc]
mov r1, #0x0
bl BufferMoveName
ldr r1, _0206D548 ; =0x000004AD
add r0, r4, #0x0
bl sub_0206DD6C
add r1, r4, #0x0
add r1, #0x65
strb r0, [r1, #0x0]
add r0, r4, #0x0
mov r1, #0x1
add r0, #0x66
strb r1, [r0, #0x0]
add r0, r4, #0x0
add r0, #0x64
ldrb r0, [r0, #0x0]
add r4, #0x64
add sp, #0x54
add r0, r0, #0x1
strb r0, [r4, #0x0]
pop {r3-r4, pc}
_0206D3CC:
ldr r0, [r4, #0x5c]
ldr r1, _0206D54C ; =UNK_020F8320
str r0, [sp, #0x0]
ldr r0, [r4, #0x0]
mov r2, #0x1
mov r3, #0x8
bl Std_CreateYesNoMenu
str r0, [r4, #0x40]
add r0, r4, #0x0
add r0, #0x64
ldrb r0, [r0, #0x0]
add r4, #0x64
add sp, #0x54
add r0, r0, #0x1
strb r0, [r4, #0x0]
pop {r3-r4, pc}
_0206D3EE:
ldr r0, [r4, #0x40]
ldr r1, [r4, #0x5c]
bl sub_020021AC
cmp r0, #0x0
beq _0206D406
mov r1, #0x1
mvn r1, r1
cmp r0, r1
beq _0206D444
add sp, #0x54
pop {r3-r4, pc}
_0206D406:
ldr r0, [r4, #0x28]
bl sub_020690E4
add r2, r0, #0x0
ldr r0, [r4, #0xc]
mov r1, #0x0
bl BufferBoxMonNickname
add r2, r4, #0x0
add r2, #0x6c
ldrh r2, [r2, #0x0]
ldr r0, [r4, #0xc]
mov r1, #0x1
bl BufferMoveName
ldr r1, _0206D550 ; =0x000004AE
add r0, r4, #0x0
bl sub_0206DD6C
add r1, r4, #0x0
add r1, #0x65
strb r0, [r1, #0x0]
add r0, r4, #0x0
mov r1, #0x14
add r0, #0x66
strb r1, [r0, #0x0]
mov r0, #0x24
add r4, #0x64
add sp, #0x54
strb r0, [r4, #0x0]
pop {r3-r4, pc}
_0206D444:
mov r0, #0xe
add r4, #0x64
add sp, #0x54
strb r0, [r4, #0x0]
pop {r3-r4, pc}
_0206D44E:
add r0, r4, #0x0
add r0, #0x65
ldrb r0, [r0, #0x0]
bl sub_0201BD70
cmp r0, #0x0
bne _0206D474
add r0, r4, #0x0
add r0, #0x66
ldrb r0, [r0, #0x0]
sub r1, r0, #0x1
add r0, r4, #0x0
add r0, #0x66
strb r1, [r0, #0x0]
add r0, r4, #0x0
add r0, #0x66
ldrb r0, [r0, #0x0]
cmp r0, #0x0
beq _0206D476
_0206D474:
b _0206D806
_0206D476:
mov r0, #0xd
add r4, #0x64
add sp, #0x54
strb r0, [r4, #0x0]
pop {r3-r4, pc}
_0206D480:
ldr r1, _0206D554 ; =0x000004AF
add r0, r4, #0x0
bl sub_0206DD6C
add r1, r4, #0x0
add r1, #0x65
strb r0, [r1, #0x0]
add r0, r4, #0x0
mov r1, #0x14
add r0, #0x66
strb r1, [r0, #0x0]
add r0, r4, #0x0
add r0, #0x64
ldrb r0, [r0, #0x0]
add r4, #0x64
add sp, #0x54
add r0, r0, #0x1
strb r0, [r4, #0x0]
pop {r3-r4, pc}
_0206D4A6:
ldr r0, [r4, #0x28]
bl sub_020690E4
add r2, r0, #0x0
ldr r0, [r4, #0xc]
mov r1, #0x0
bl BufferBoxMonNickname
add r1, r4, #0x0
add r1, #0x6e
ldrb r1, [r1, #0x0]
ldr r0, [r4, #0x28]
mov r2, #0x0
add r1, #0x36
bl GetMonData
add r2, r0, #0x0
ldr r0, [r4, #0xc]
mov r1, #0x1
bl BufferMoveName
mov r1, #0x4b
add r0, r4, #0x0
lsl r1, r1, #0x4
bl sub_0206DD6C
add r1, r4, #0x0
add r1, #0x65
strb r0, [r1, #0x0]
add r0, r4, #0x0
mov r1, #0x14
add r0, #0x66
strb r1, [r0, #0x0]
add r0, r4, #0x0
add r0, #0x64
ldrb r0, [r0, #0x0]
add r4, #0x64
add sp, #0x54
add r0, r0, #0x1
strb r0, [r4, #0x0]
pop {r3-r4, pc}
_0206D4F8:
ldr r1, _0206D558 ; =0x000004B1
add r0, r4, #0x0
bl sub_0206DD6C
add r1, r4, #0x0
add r1, #0x65
strb r0, [r1, #0x0]
add r0, r4, #0x0
mov r1, #0x14
add r0, #0x66
strb r1, [r0, #0x0]
add r0, r4, #0x0
add r0, #0x64
ldrb r0, [r0, #0x0]
add r4, #0x64
add sp, #0x54
add r0, r0, #0x1
strb r0, [r4, #0x0]
pop {r3-r4, pc}
_0206D51E:
ldr r0, [r4, #0x28]
bl sub_020690E4
add r2, r0, #0x0
ldr r0, [r4, #0xc]
mov r1, #0x0
bl BufferBoxMonNickname
add r2, r4, #0x0
add r2, #0x6c
ldrh r2, [r2, #0x0]
ldr r0, [r4, #0xc]
mov r1, #0x1
bl BufferMoveName
ldr r1, _0206D55C ; =0x000004B2
b _0206D560
.balign 4
_0206D540: .word 0x0000FFFF
_0206D544: .word UNK_020F831C
_0206D548: .word 0x000004AD
_0206D54C: .word UNK_020F8320
_0206D550: .word 0x000004AE
_0206D554: .word 0x000004AF
_0206D558: .word 0x000004B1
_0206D55C: .word 0x000004B2
_0206D560:
add r0, r4, #0x0
bl sub_0206DD6C
add r1, r4, #0x0
add r1, #0x65
strb r0, [r1, #0x0]
add r0, r4, #0x0
add r2, r4, #0x0
mov r1, #0x0
add r0, #0x66
strb r1, [r0, #0x0]
add r1, r4, #0x0
add r1, #0x6e
ldrb r1, [r1, #0x0]
ldr r0, [r4, #0x28]
add r2, #0x66
add r1, #0x3e
bl SetMonData
add r1, r4, #0x0
add r2, r4, #0x0
add r1, #0x6c
add r2, #0x6e
ldrh r1, [r1, #0x0]
ldrb r2, [r2, #0x0]
ldr r0, [r4, #0x28]
bl MonSetMoveInSlot
add r0, r4, #0x0
mov r1, #0x14
add r0, #0x66
strb r1, [r0, #0x0]
mov r0, #0x25
add r4, #0x64
add sp, #0x54
strb r0, [r4, #0x0]
pop {r3-r4, pc}
_0206D5AA:
add r0, r4, #0x0
add r0, #0x65
ldrb r0, [r0, #0x0]
bl sub_0201BD70
cmp r0, #0x0
bne _0206D5E8
add r0, r4, #0x0
add r0, #0x64
ldrb r0, [r0, #0x0]
add r4, #0x64
add sp, #0x54
add r0, r0, #0x1
strb r0, [r4, #0x0]
pop {r3-r4, pc}
_0206D5C8:
bl sub_02005CBC
cmp r0, #0x0
bne _0206D5E8
add r0, r4, #0x0
add r0, #0x66
ldrb r0, [r0, #0x0]
sub r1, r0, #0x1
add r0, r4, #0x0
add r0, #0x66
strb r1, [r0, #0x0]
add r0, r4, #0x0
add r0, #0x66
ldrb r0, [r0, #0x0]
cmp r0, #0x0
beq _0206D5EA
_0206D5E8:
b _0206D806
_0206D5EA:
mov r0, #0xd
add r4, #0x64
add sp, #0x54
strb r0, [r4, #0x0]
pop {r3-r4, pc}
_0206D5F4:
mov r1, #0x0
str r1, [sp, #0x0]
mov r0, #0x10
str r0, [sp, #0x4]
str r1, [sp, #0x8]
ldr r0, [r4, #0x14]
ldr r2, _0206D80C ; =0x0000FFFF
mov r1, #0xf
mov r3, #0x1
bl sub_02003210
mov r1, #0x0
str r1, [sp, #0x0]
ldr r0, [r4, #0x18]
mov r2, #0x10
add r3, r1, #0x0
bl sub_02007E98
add r0, r4, #0x0
add r0, #0x64
ldrb r0, [r0, #0x0]
add r4, #0x64
add sp, #0x54
add r0, r0, #0x1
strb r0, [r4, #0x0]
pop {r3-r4, pc}
_0206D628:
ldr r0, [r4, #0x14]
bl sub_020038E4
cmp r0, #0x0
bne _0206D6F8
ldr r0, [r4, #0x30]
bl sub_0206E0DC
add r0, r4, #0x0
bl sub_0206D820
mov r0, #0x1
add r4, #0x67
add sp, #0x54
strb r0, [r4, #0x0]
pop {r3-r4, pc}
_0206D648:
ldr r0, [r4, #0x14]
bl sub_020038E4
cmp r0, #0x0
bne _0206D6F8
mov r1, #0xc
add r2, r1, #0x0
ldr r0, [r4, #0x1c]
add r2, #0xf4
bl sub_02007558
mov r1, #0xd
add r2, r1, #0x0
ldr r0, [r4, #0x1c]
add r2, #0xf3
bl sub_02007558
ldr r0, [r4, #0x20]
mov r1, #0xc
mov r2, #0x0
bl sub_02007558
ldr r0, [r4, #0x20]
mov r1, #0xd
mov r2, #0x0
bl sub_02007558
ldr r0, [r4, #0x20]
mov r1, #0x6
mov r2, #0x1
bl sub_02007558
mov r0, #0x10
str r0, [sp, #0x0]
mov r3, #0x0
ldr r0, _0206D810 ; =0x00007FFF
str r3, [sp, #0x4]
str r0, [sp, #0x8]
ldr r0, [r4, #0x14]
ldr r2, _0206D814 ; =0x0000F3FF
mov r1, #0xf
bl sub_02003210
ldr r0, _0206D810 ; =0x00007FFF
mov r2, #0x0
str r0, [sp, #0x0]
ldr r0, [r4, #0x18]
mov r1, #0x10
add r3, r2, #0x0
bl sub_02007E98
add r0, r4, #0x0
mov r1, #0x0
add r0, #0x72
strb r1, [r0, #0x0]
add r0, r4, #0x0
add r0, #0x73
strb r1, [r0, #0x0]
add r0, r4, #0x0
mov r2, #0xff
add r0, #0x74
strb r2, [r0, #0x0]
add r0, r4, #0x0
mov r2, #0xa0
add r0, #0x75
strb r2, [r0, #0x0]
add r0, r4, #0x0
add r0, #0x70
strb r1, [r0, #0x0]
ldr r0, _0206D818 ; =0x00000475
bl sub_02005350
ldr r0, [r4, #0x30]
bl sub_0206E0DC
add r0, r4, #0x0
add r0, #0x64
ldrb r0, [r0, #0x0]
add r4, #0x64
add sp, #0x54
add r0, r0, #0x1
strb r0, [r4, #0x0]
pop {r3-r4, pc}
_0206D6EE:
ldr r0, [r4, #0x14]
bl sub_020038E4
cmp r0, #0x0
beq _0206D6FA
_0206D6F8:
b _0206D806
_0206D6FA:
mov r0, #0x0
str r0, [sp, #0x0]
str r0, [sp, #0x4]
str r0, [sp, #0x8]
add r2, r4, #0x0
add r2, #0x60
ldrh r2, [r2, #0x0]
ldr r0, [r4, #0x44]
ldr r1, [r4, #0x1c]
mov r3, #0x2
bl sub_02069038
add r1, r4, #0x0
add r1, #0x60
ldrh r1, [r1, #0x0]
add r0, sp, #0x18
bl sub_02069010
ldr r0, [r4, #0x1c]
add r1, sp, #0x18
bl sub_0200737C
ldr r0, [r4, #0x1c]
mov r1, #0x0
bl sub_02007314
add r0, r4, #0x0
add r0, #0x60
ldrh r0, [r0, #0x0]
bl sub_02005578
add r0, r4, #0x0
add r0, #0x64
ldrb r0, [r0, #0x0]
add r4, #0x64
add sp, #0x54
add r0, r0, #0x1
strb r0, [r4, #0x0]
pop {r3-r4, pc}
_0206D748:
bl sub_02005670
cmp r0, #0x0
bne _0206D806
ldr r0, [r4, #0x44]
mov r1, #0x0
bl sub_02014D7C
cmp r0, #0x1
bne _0206D806
ldr r0, [r4, #0x1c]
bl sub_02007390
cmp r0, #0x0
bne _0206D806
ldr r0, [r4, #0x28]
bl sub_020690E4
add r2, r0, #0x0
ldr r0, [r4, #0xc]
mov r1, #0x0
bl BufferBoxMonNickname
ldr r1, _0206D81C ; =0x00000397
add r0, r4, #0x0
bl sub_0206DD6C
add r1, r4, #0x0
add r1, #0x65
strb r0, [r1, #0x0]
add r0, r4, #0x0
mov r1, #0x14
add r0, #0x66
strb r1, [r0, #0x0]
add r0, r4, #0x0
add r0, #0x64
ldrb r0, [r0, #0x0]
add r4, #0x64
add sp, #0x54
add r0, r0, #0x1
strb r0, [r4, #0x0]
pop {r3-r4, pc}
_0206D79C:
add r0, r4, #0x0
add r0, #0x65
ldrb r0, [r0, #0x0]
bl sub_0201BD70
cmp r0, #0x0
bne _0206D806
add r0, r4, #0x0
add r0, #0x66
ldrb r0, [r0, #0x0]
sub r1, r0, #0x1
add r0, r4, #0x0
add r0, #0x66
strb r1, [r0, #0x0]
add r0, r4, #0x0
add r0, #0x66
ldrb r0, [r0, #0x0]
cmp r0, #0x0
bne _0206D806
mov r1, #0x0
str r1, [sp, #0x0]
mov r0, #0x10
str r0, [sp, #0x4]
str r1, [sp, #0x8]
ldr r0, [r4, #0x14]
ldr r2, _0206D80C ; =0x0000FFFF
mov r1, #0xf
mov r3, #0x1
bl sub_02003210
mov r1, #0x0
str r1, [sp, #0x0]
ldr r0, [r4, #0x18]
mov r2, #0x10
add r3, r1, #0x0
bl sub_02007E98
add r0, r4, #0x0
add r0, #0x64
ldrb r0, [r0, #0x0]
add r4, #0x64
add sp, #0x54
add r0, r0, #0x1
strb r0, [r4, #0x0]
pop {r3-r4, pc}
_0206D7F6:
ldr r0, [r4, #0x14]
bl sub_020038E4
cmp r0, #0x0
bne _0206D806
mov r0, #0x1
add r4, #0x67
strb r0, [r4, #0x0]
_0206D806:
add sp, #0x54
pop {r3-r4, pc}
nop
_0206D80C: .word 0x0000FFFF
_0206D810: .word 0x00007FFF
_0206D814: .word 0x0000F3FF
_0206D818: .word 0x00000475
_0206D81C: .word 0x00000397
thumb_func_start sub_0206D820
sub_0206D820: ; 0x0206D820
push {r4-r6, lr}
sub sp, #0x20
add r4, r0, #0x0
ldr r0, [r4, #0x78]
cmp r0, #0x6
bgt _0206D834
bne _0206D830
b _0206D9A0
_0206D830:
add sp, #0x20
pop {r4-r6, pc}
_0206D834:
sub r0, #0xd
cmp r0, #0x6
bhi _0206D86C
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #0x6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_0206D846: ; jump table (using 16-bit offset)
.short _0206D854 - _0206D846 - 2; case 0
.short _0206D854 - _0206D846 - 2; case 1
.short _0206D9AE - _0206D846 - 2; case 2
.short _0206D9AE - _0206D846 - 2; case 3
.short _0206D9AE - _0206D846 - 2; case 4
.short _0206D9A0 - _0206D846 - 2; case 5
.short _0206D9A0 - _0206D846 - 2; case 6
_0206D854:
ldr r0, [r4, #0x4c]
ldr r2, [r4, #0x5c]
mov r1, #0x4
bl Bag_GetQuantity
cmp r0, #0x0
beq _0206D86C
ldr r0, [r4, #0x24]
bl Party_GetCount
cmp r0, #0x6
blt _0206D86E
_0206D86C:
b _0206D9AE
_0206D86E:
ldr r0, [r4, #0x5c]
bl AllocMonZeroed
add r5, r0, #0x0
ldr r0, [r4, #0x28]
add r1, r5, #0x0
bl CopyPokemonToPokemon
mov r0, #0x49
lsl r0, r0, #0x2
str r0, [sp, #0x0]
add r0, r5, #0x0
mov r1, #0x5
add r2, sp, #0x0
bl SetMonData
mov r0, #0x4
str r0, [sp, #0x0]
add r0, r5, #0x0
mov r1, #0x9a
add r2, sp, #0x0
bl SetMonData
mov r0, #0x0
str r0, [sp, #0x0]
add r0, r5, #0x0
mov r1, #0x6
add r2, sp, #0x0
bl SetMonData
add r0, r5, #0x0
mov r1, #0xb
add r2, sp, #0x0
bl SetMonData
mov r1, #0x19
str r1, [sp, #0x4]
add r6, sp, #0x0
_0206D8BA:
add r0, r5, #0x0
add r2, r6, #0x0
bl SetMonData
ldr r0, [sp, #0x4]
add r1, r0, #0x1
str r1, [sp, #0x4]
cmp r1, #0x36
blt _0206D8BA
mov r1, #0x4e
str r1, [sp, #0x4]
add r6, sp, #0x0
_0206D8D2:
add r0, r5, #0x0
add r2, r6, #0x0
bl SetMonData
ldr r0, [sp, #0x4]
add r1, r0, #0x1
str r1, [sp, #0x4]
cmp r1, #0x6e
blt _0206D8D2
mov r1, #0x7a
str r1, [sp, #0x4]
add r6, sp, #0x0
_0206D8EA:
add r0, r5, #0x0
add r2, r6, #0x0
bl SetMonData
ldr r0, [sp, #0x4]
add r1, r0, #0x1
str r1, [sp, #0x4]
cmp r1, #0x8f
blt _0206D8EA
add r0, r5, #0x0
mov r1, #0xb2
mov r2, #0x0
bl SetMonData
add r0, r5, #0x0
mov r1, #0x4d
add r2, sp, #0x0
bl SetMonData
add r0, r5, #0x0
mov r1, #0x9f
add r2, sp, #0x0
bl SetMonData
ldr r0, [r4, #0x5c]
bl Mail_New
add r6, r0, #0x0
add r0, r5, #0x0
mov r1, #0xa9
add r2, r6, #0x0
bl SetMonData
add r0, r6, #0x0
bl Heap_Free
add r0, r5, #0x0
mov r1, #0xa1
add r2, sp, #0x0
bl SetMonData
mov r0, #0x0
add r1, sp, #0x8
mov r2, #0x18
bl MIi_CpuClearFast
add r0, r5, #0x0
mov r1, #0xaa
add r2, sp, #0x8
bl SetMonData
add r0, r5, #0x0
bl sub_0206A1C4
add r0, r5, #0x0
bl CalcMonLevelAndStats
ldr r0, [r4, #0x24]
add r1, r5, #0x0
bl Party_AddMon
ldr r0, [r4, #0x48]
add r1, r5, #0x0
bl Pokedex_SetMonCaughtFlag
ldr r0, [r4, #0x50]
mov r1, #0xc
bl GameStats_Inc
ldr r0, [r4, #0x50]
mov r1, #0x16
bl GameStats_AddSpecial
add r0, r5, #0x0
bl sub_020690E4
add r1, r0, #0x0
ldr r0, [r4, #0x54]
bl Save_Poketch_PokemonHistoryAddMon
add r0, r5, #0x0
bl Heap_Free
ldr r0, [r4, #0x4c]
ldr r3, [r4, #0x5c]
mov r1, #0x4
mov r2, #0x1
bl Bag_TakeItem
add sp, #0x20
pop {r4-r6, pc}
_0206D9A0:
mov r0, #0x0
str r0, [sp, #0x4]
ldr r0, [r4, #0x28]
mov r1, #0x6
add r2, sp, #0x4
bl SetMonData
_0206D9AE:
add sp, #0x20
pop {r4-r6, pc}
.balign 4
thumb_func_start sub_0206D9B4
sub_0206D9B4: ; 0x0206D9B4
push {r4-r6, lr}
sub sp, #0xb8
add r5, r0, #0x0
add r4, r1, #0x0
bl GfGfx_DisableEngineAPlanes
ldr r6, _0206DC28 ; =UNK_020F8354
add r3, sp, #0x3c
mov r2, #0x5
_0206D9C6:
ldmia r6!, {r0-r1}
stmia r3!, {r0-r1}
sub r2, r2, #0x1
bne _0206D9C6
add r0, sp, #0x3c
bl GfGfx_SetBanks
mov r1, #0x6
mov r2, #0x2
mov r0, #0x0
lsl r1, r1, #0x18
lsl r2, r2, #0x12
bl MIi_CpuClear32
mov r1, #0x62
mov r2, #0x2
mov r0, #0x0
lsl r1, r1, #0x14
lsl r2, r2, #0x10
bl MIi_CpuClear32
mov r1, #0x19
mov r2, #0x1
mov r0, #0x0
lsl r1, r1, #0x16
lsl r2, r2, #0x12
bl MIi_CpuClear32
mov r1, #0x66
mov r2, #0x2
mov r0, #0x0
lsl r1, r1, #0x14
lsl r2, r2, #0x10
bl MIi_CpuClear32
ldr r6, _0206DC2C ; =UNK_020F8328
add r3, sp, #0x2c
add r2, r3, #0x0
ldmia r6!, {r0-r1}
stmia r3!, {r0-r1}
ldmia r6!, {r0-r1}
stmia r3!, {r0-r1}
add r0, r2, #0x0
bl SetBothScreensModesAndDisable
ldr r6, _0206DC30 ; =UNK_020F837C
add r3, sp, #0x64
mov r2, #0xa
_0206DA26:
ldmia r6!, {r0-r1}
stmia r3!, {r0-r1}
sub r2, r2, #0x1
bne _0206DA26
ldr r0, [r6, #0x0]
mov r1, #0x1
str r0, [r3, #0x0]
add r0, r4, #0x0
add r2, sp, #0x64
mov r3, #0x0
bl InitBgFromTemplate
add r0, r4, #0x0
mov r1, #0x1
bl BgClearTilemapBufferAndCommit
add r0, r4, #0x0
mov r1, #0x2
add r2, sp, #0x80
mov r3, #0x0
bl InitBgFromTemplate
add r0, r4, #0x0
mov r1, #0x2
bl BgClearTilemapBufferAndCommit
add r0, r4, #0x0
mov r1, #0x3
add r2, sp, #0x9c
mov r3, #0x0
bl InitBgFromTemplate
add r0, r4, #0x0
mov r1, #0x3
bl BgClearTilemapBufferAndCommit
ldr r1, _0206DC34 ; =0x04000008
mov r0, #0x3
ldrh r2, [r1, #0x0]
bic r2, r0
mov r0, #0x1
orr r2, r0
strh r2, [r1, #0x0]
add r1, r0, #0x0
bl GfGfx_EngineATogglePlanes
ldr r6, _0206DC38 ; =UNK_020F8338
add r3, sp, #0x10
ldmia r6!, {r0-r1}
add r2, r3, #0x0
stmia r3!, {r0-r1}
ldmia r6!, {r0-r1}
stmia r3!, {r0-r1}
ldmia r6!, {r0-r1}
stmia r3!, {r0-r1}
ldr r0, [r6, #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 r0, [r5, #0x2c]
bl Options_GetFrame
add r6, r0, #0x0
lsl r0, r6, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x0]
ldr r0, [r5, #0x5c]
mov r1, #0x1
str r0, [sp, #0x4]
add r0, r4, #0x0
add r2, r1, #0x0
mov r3, #0xa
bl sub_0200D274
mov r1, #0x0
str r1, [sp, #0x0]
str r1, [sp, #0x4]
mov r0, #0x1
str r0, [sp, #0x8]
ldr r0, [r5, #0x5c]
add r2, r4, #0x0
str r0, [sp, #0xc]
mov r0, #0x76
mov r3, #0x3
bl GfGfxLoader_LoadCharData
mov r0, #0x0
str r0, [sp, #0x0]
str r0, [sp, #0x4]
mov r1, #0x1
str r1, [sp, #0x8]
ldr r0, [r5, #0x5c]
add r2, r4, #0x0
str r0, [sp, #0xc]
mov r0, #0x76
mov r3, #0x3
bl GfGfxLoader_LoadScrnData
mov r1, #0x0
str r1, [sp, #0x0]
mov r0, #0x40
str r0, [sp, #0x4]
str r1, [sp, #0x8]
ldr r0, [r5, #0x14]
ldr r3, [r5, #0x5c]
mov r1, #0x76
mov r2, #0x8
bl PaletteData_LoadNarc
add r0, r6, #0x0
bl sub_0200CD64
add r2, r0, #0x0
mov r0, #0x0
str r0, [sp, #0x0]
mov r0, #0x20
str r0, [sp, #0x4]
mov r0, #0xa0
str r0, [sp, #0x8]
ldr r0, [r5, #0x14]
ldr r3, [r5, #0x5c]
mov r1, #0x26
bl PaletteData_LoadNarc
mov r0, #0x0
str r0, [sp, #0x0]
mov r0, #0x20
str r0, [sp, #0x4]
mov r0, #0xb0
str r0, [sp, #0x8]
ldr r0, [r5, #0x14]
ldr r3, [r5, #0x5c]
mov r1, #0xe
mov r2, #0x7
bl PaletteData_LoadNarc
ldr r0, [r5, #0x5c]
mov r1, #0x2
str r0, [sp, #0x0]
ldr r0, [r5, #0x0]
mov r2, #0x1
mov r3, #0x0
bl sub_0200CABC
bl sub_0200CAFC
add r2, r0, #0x0
mov r0, #0x0
str r0, [sp, #0x0]
mov r0, #0x20
str r0, [sp, #0x4]
mov r0, #0x80
str r0, [sp, #0x8]
ldr r0, [r5, #0x14]
ldr r3, [r5, #0x5c]
mov r1, #0x26
bl PaletteData_LoadNarc
mov r0, #0x0
str r0, [sp, #0x0]
str r0, [sp, #0x4]
mov r0, #0x1
str r0, [sp, #0x8]
ldr r0, [r5, #0x5c]
mov r1, #0xa
str r0, [sp, #0xc]
mov r0, #0xc
add r2, r4, #0x0
mov r3, #0x4
bl GfGfxLoader_LoadCharData
mov r0, #0x0
str r0, [sp, #0x0]
str r0, [sp, #0x4]
mov r0, #0x1
str r0, [sp, #0x8]
ldr r0, [r5, #0x5c]
mov r1, #0xb
str r0, [sp, #0xc]
mov r0, #0xc
add r2, r4, #0x0
mov r3, #0x4
bl GfGfxLoader_LoadScrnData
mov r0, #0x1
str r0, [sp, #0x0]
mov r0, #0x20
str r0, [sp, #0x4]
mov r0, #0x0
str r0, [sp, #0x8]
mov r1, #0xc
ldr r0, [r5, #0x14]
ldr r3, [r5, #0x5c]
add r2, r1, #0x0
bl PaletteData_LoadNarc
mov r0, #0x1
lsl r0, r0, #0x1a
ldr r1, [r0, #0x0]
ldr r2, _0206DC3C ; =0xFFFF1FFF
add r3, r1, #0x0
and r3, r2
lsr r1, r0, #0xd
orr r1, r3
ldr r3, _0206DC40 ; =0x04001000
str r1, [r0, #0x0]
ldr r1, [r3, #0x0]
and r1, r2
str r1, [r3, #0x0]
add r3, r0, #0x0
add r3, #0x48
ldrh r4, [r3, #0x0]
mov r2, #0x3f
mov r1, #0x1f
bic r4, r2
orr r1, r4
strh r1, [r3, #0x0]
add r0, #0x4a
ldrh r3, [r0, #0x0]
mov r1, #0x12
bic r3, r2
orr r1, r3
strh r1, [r0, #0x0]
add r0, r5, #0x0
mov r1, #0x0
add r0, #0x72
strb r1, [r0, #0x0]
add r0, r5, #0x0
add r0, #0x73
strb r1, [r0, #0x0]
add r0, r5, #0x0
mov r1, #0xff
add r0, #0x74
strb r1, [r0, #0x0]
add r0, r5, #0x0
mov r1, #0xa0
add r0, #0x75
strb r1, [r0, #0x0]
bl GfGfx_BothDispOn
mov r0, #0x10
mov r1, #0x1
bl GfGfx_EngineATogglePlanes
ldr r0, _0206DC44 ; =sub_0206DD08
add r1, r5, #0x0
bl Main_SetVBlankIntrCB
add sp, #0xb8
pop {r4-r6, pc}
.balign 4
_0206DC28: .word UNK_020F8354
_0206DC2C: .word UNK_020F8328
_0206DC30: .word UNK_020F837C
_0206DC34: .word 0x04000008
_0206DC38: .word UNK_020F8338
_0206DC3C: .word 0xFFFF1FFF
_0206DC40: .word 0x04001000
_0206DC44: .word sub_0206DD08
thumb_func_start sub_0206DC48
sub_0206DC48: ; 0x0206DC48
push {r4, lr}
add r4, r0, #0x0
mov r0, #0x1
mov r1, #0x0
bl GfGfx_EngineATogglePlanes
mov r0, #0x2
mov r1, #0x0
bl GfGfx_EngineATogglePlanes
add r0, r4, #0x0
mov r1, #0x1
bl FreeBgTilemapBuffer
add r0, r4, #0x0
mov r1, #0x2
bl FreeBgTilemapBuffer
add r0, r4, #0x0
mov r1, #0x3
bl FreeBgTilemapBuffer
add r0, r4, #0x0
mov r1, #0x4
bl FreeBgTilemapBuffer
pop {r4, pc}
.balign 4
thumb_func_start sub_0206DC80
sub_0206DC80: ; 0x0206DC80
push {r3-r5, lr}
sub sp, #0x20
add r4, r0, #0x0
ldr r1, [r4, #0x28]
add r0, sp, #0x10
mov r2, #0x2
bl sub_02068B68
mov r0, #0x0
str r0, [sp, #0x0]
str r0, [sp, #0x4]
str r0, [sp, #0x8]
str r0, [sp, #0xc]
ldr r0, [r4, #0x18]
add r1, sp, #0x10
mov r2, #0x80
mov r3, #0x50
bl sub_020073A0
str r0, [r4, #0x1c]
ldr r0, [r4, #0x5c]
bl AllocMonZeroed
add r5, r0, #0x0
ldr r0, [r4, #0x28]
add r1, r5, #0x0
bl CopyPokemonToPokemon
add r2, r4, #0x0
add r0, r5, #0x0
mov r1, #0x5
add r2, #0x62
bl SetMonData
add r0, r5, #0x0
bl CalcMonLevelAndStats
add r0, sp, #0x10
add r1, r5, #0x0
mov r2, #0x2
bl sub_02068B68
add r0, r5, #0x0
bl Heap_Free
mov r0, #0x0
str r0, [sp, #0x0]
str r0, [sp, #0x4]
str r0, [sp, #0x8]
str r0, [sp, #0xc]
ldr r0, [r4, #0x18]
add r1, sp, #0x10
mov r2, #0x80
mov r3, #0x50
bl sub_020073A0
str r0, [r4, #0x20]
mov r1, #0xc
mov r2, #0x0
bl sub_02007558
ldr r0, [r4, #0x20]
mov r1, #0xd
mov r2, #0x0
bl sub_02007558
add sp, #0x20
pop {r3-r5, pc}
thumb_func_start sub_0206DD08
sub_0206DD08: ; 0x0206DD08
push {r3-r5, lr}
add r4, r0, #0x0
add r0, #0x75
ldrb r2, [r0, #0x0]
add r0, r4, #0x0
add r0, #0x73
ldrb r1, [r0, #0x0]
add r0, r4, #0x0
add r0, #0x72
ldrb r0, [r0, #0x0]
mov r3, #0xff
lsl r3, r3, #0x8
lsl r0, r0, #0x8
add r5, r0, #0x0
add r0, r4, #0x0
add r0, #0x74
lsl r1, r1, #0x8
and r1, r3
ldrb r0, [r0, #0x0]
and r5, r3
orr r1, r2
orr r5, r0
ldr r0, _0206DD60 ; =0x04000040
strh r5, [r0, #0x0]
strh r1, [r0, #0x4]
ldr r0, [r4, #0x18]
bl sub_020081C4
bl sub_0201C30C
ldr r0, [r4, #0x14]
bl sub_0200372C
ldr r0, [r4, #0x0]
bl DoScheduledBgGpuUpdates
ldr r3, _0206DD64 ; =0x027E0000
ldr r1, _0206DD68 ; =0x00003FF8
mov r0, #0x1
ldr r2, [r3, r1]
orr r0, r2
str r0, [r3, r1]
pop {r3-r5, pc}
nop
_0206DD60: .word 0x04000040
_0206DD64: .word 0x027E0000
_0206DD68: .word 0x00003FF8
thumb_func_start sub_0206DD6C
sub_0206DD6C: ; 0x0206DD6C
push {r4-r5, lr}
sub sp, #0xc
add r4, r0, #0x0
ldr r0, [r4, #0x8]
bl NewString_ReadMsgData
add r5, r0, #0x0
ldr r0, [r4, #0xc]
ldr r1, [r4, #0x10]
add r2, r5, #0x0
bl StringExpandPlaceholders
add r0, r5, #0x0
bl Heap_Free
ldr r0, [r4, #0x4]
mov r1, #0xff
bl FillWindowPixelBuffer
ldr r0, [r4, #0x2c]
bl Options_GetTextFrameDelay
mov r3, #0x0
str r3, [sp, #0x0]
str r0, [sp, #0x4]
ldr r0, _0206DDB0 ; =sub_0206DDB4
mov r1, #0x1
str r0, [sp, #0x8]
ldr r0, [r4, #0x4]
ldr r2, [r4, #0x10]
bl AddTextPrinterParameterized
add sp, #0xc
pop {r4-r5, pc}
.balign 4
_0206DDB0: .word sub_0206DDB4
thumb_func_start sub_0206DDB4
sub_0206DDB4: ; 0x0206DDB4
push {r4, lr}
mov r4, #0x0
cmp r1, #0x5
bhi _0206DDFA
add r0, r1, r1
add r0, pc
ldrh r0, [r0, #0x6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_0206DDC8: ; jump table (using 16-bit offset)
.short _0206DDFA - _0206DDC8 - 2; case 0
.short _0206DDD4 - _0206DDC8 - 2; case 1
.short _0206DDDC - _0206DDC8 - 2; case 2
.short _0206DDE4 - _0206DDC8 - 2; case 3
.short _0206DDEC - _0206DDC8 - 2; case 4
.short _0206DDF4 - _0206DDC8 - 2; case 5
_0206DDD4:
bl sub_02005514
add r4, r0, #0x0
b _0206DDFA
_0206DDDC:
bl sub_02005CBC
add r4, r0, #0x0
b _0206DDFA
_0206DDE4:
ldr r0, _0206DE00 ; =0x00000484
bl PlaySound
b _0206DDFA
_0206DDEC:
ldr r0, _0206DE04 ; =0x000005E6
bl PlaySE
b _0206DDFA
_0206DDF4:
ldr r0, _0206DE08 ; =0x00000483
bl PlaySound
_0206DDFA:
add r0, r4, #0x0
pop {r4, pc}
nop
_0206DE00: .word 0x00000484
_0206DE04: .word 0x000005E6
_0206DE08: .word 0x00000483
thumb_func_start sub_0206DE0C
sub_0206DE0C: ; 0x0206DE0C
push {r4, lr}
add r4, r0, #0x0
ldr r0, _0206DE20 ; =UNK_020FA6E8
ldr r1, [r4, #0x3c]
ldr r2, [r4, #0x5c]
bl OverlayManager_New
str r0, [r4, #0x38]
pop {r4, pc}
nop
_0206DE20: .word UNK_020FA6E8