pokediamond/arm9/asm/unk_020625EC.s

2127 lines
39 KiB
ArmAsm

.include "asm/macros.inc"
.include "global.inc"
.extern gSystem
.section .rodata
.global UNK_020F7BC8
UNK_020F7BC8: ; 0x020F7BC8
.byte 0x03, 0x19, 0x0D, 0x06, 0x04, 0x0D, 0x55, 0x03
.global UNK_020F7BD0
UNK_020F7BD0: ; 0x020F7BD0
.word UNK_020F7C4C, UNK_020F7C0C, UNK_020F7BF4
.global UNK_020F7BDC
UNK_020F7BDC: ; 0x020F7BDC
.byte 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.global UNK_020F7BF4
UNK_020F7BF4: ; 0x020F7BF4
.byte 0x0F, 0x27, 0x00, 0x00, 0x04, 0x00, 0x15, 0x00, 0x64, 0x00, 0x00, 0x00, 0x04, 0x00, 0x14, 0x00
.byte 0xFF, 0xFF, 0x00, 0x00, 0x05, 0x00, 0x11, 0x00
.global UNK_020F7C0C
UNK_020F7C0C: ; 0x020F7C0C
.byte 0x3F, 0x42, 0x0F, 0x00, 0x06, 0x00, 0x13, 0x00, 0x3F, 0x42, 0x0F, 0x00, 0x06, 0x00, 0x13, 0x00
.byte 0x3F, 0x42, 0x0F, 0x00, 0x06, 0x00, 0x12, 0x00, 0x3F, 0x42, 0x0F, 0x00, 0x06, 0x00, 0x13, 0x00
.global UNK_020F7C2C
UNK_020F7C2C: ; 0x020F7C2C
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x07, 0x00, 0x02, 0x08, 0x01, 0x10, 0x2F, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00
.global UNK_020F7C4C
UNK_020F7C4C: ; 0x020F7C4C
.byte 0x0F, 0x27, 0x00, 0x00, 0x04, 0x00, 0x0F, 0x00, 0x0F, 0x27, 0x00, 0x00, 0x04, 0x00, 0x0F, 0x00
.byte 0x0F, 0x27, 0x00, 0x00, 0x04, 0x00, 0x0F, 0x00, 0x0F, 0x27, 0x00, 0x00, 0x04, 0x00, 0x0F, 0x00
.byte 0x0F, 0x27, 0x00, 0x00, 0x04, 0x00, 0x0F, 0x00, 0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x10, 0x00
.global UNK_020F7C7C
UNK_020F7C7C: ; 0x020F7C7C
.byte 0x7E, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00, 0xD8, 0x34, 0x00, 0x00, 0xD8, 0x34, 0x00, 0x00, 0xD8, 0x34, 0x00, 0x00
.byte 0xD8, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x4A, 0x00, 0x78, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xD8, 0x34, 0x00, 0x00, 0xD8, 0x34, 0x00, 0x00
.byte 0xD8, 0x34, 0x00, 0x00, 0xD8, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.text
thumb_func_start sub_020625EC
sub_020625EC: ; 0x020625EC
push {r3-r7, lr}
add r7, r0, #0x0
add r5, r1, #0x0
str r2, [sp, #0x0]
mov r0, #0x3
mov r1, #0x50
lsl r2, r0, #0xd
ldr r6, [r5, #0xc]
bl Heap_Create
mov r1, #0x2d
mov r0, #0x50
lsl r1, r1, #0x4
bl Heap_Alloc
mov r2, #0x2d
mov r1, #0x0
lsl r2, r2, #0x4
add r4, r0, #0x0
bl MI_CpuFill8
mov r0, #0x50
str r0, [r4, #0x0]
ldr r0, [sp, #0x0]
mov r1, #0x3
bl _s32_div_f
strb r1, [r4, #0x16]
ldr r0, [sp, #0x0]
mov r1, #0x3
bl _s32_div_f
strb r0, [r4, #0x17]
ldrb r0, [r4, #0x16]
bl sub_0202B870
strb r0, [r4, #0x18]
ldrb r0, [r4, #0x16]
bl sub_0202B87C
strb r0, [r4, #0x19]
add r0, r4, #0x0
add r0, #0xcc
str r5, [r0, #0x0]
add r0, r4, #0x0
ldr r1, [r5, #0x8]
add r0, #0xd0
str r1, [r0, #0x0]
add r0, r6, #0x0
bl sub_0202B8E4
mov r1, #0x2a
lsl r1, r1, #0x4
str r0, [r4, r1]
add r0, r6, #0x0
bl Save_PlayerData_GetOptionsAddr
bl Options_GetTextFrameDelay
strh r0, [r4, #0x1a]
add r0, r6, #0x0
bl Save_PlayerData_GetOptionsAddr
bl Options_GetFrame
strh r0, [r4, #0x1c]
str r4, [r7, #0x8]
mov r0, #0x1
pop {r3-r7, pc}
.balign 4
thumb_func_start sub_02062678
sub_02062678: ; 0x02062678
push {r3-r7, lr}
sub sp, #0x8
ldr r4, [r0, #0x8]
mov r0, #0x0
str r0, [sp, #0x4]
ldrb r0, [r4, #0x18]
cmp r0, #0x0
ble _020626FE
ldr r0, [sp, #0x4]
str r0, [sp, #0x0]
_0206268C:
mov r0, #0xb
lsl r0, r0, #0x6
ldr r2, [r4, r0]
ldr r0, [sp, #0x0]
mov r6, #0x0
add r1, r2, r0
ldr r0, [r2, r0]
add r7, r6, #0x0
cmp r0, #0x0
ble _020626EC
add r5, r6, #0x0
_020626A2:
add r0, r1, #0x4
add r1, r0, r5
ldrb r0, [r1, #0x6]
mov r12, r0
cmp r0, #0xff
beq _020626D6
ldrh r0, [r1, #0x4]
cmp r0, #0x0
bne _020626D6
ldrb r2, [r4, #0x17]
ldrb r3, [r4, #0x19]
mov r1, #0xd
mul r1, r2
add r2, r3, r1
ldr r1, [sp, #0x4]
mov r0, #0x2a
add r1, r1, r2
mov r2, r12
lsl r0, r0, #0x4
sub r2, r2, r6
lsl r2, r2, #0x18
ldr r0, [r4, r0]
lsr r2, r2, #0x18
bl sub_0202B8F0
add r6, r6, #0x1
_020626D6:
mov r0, #0xb
lsl r0, r0, #0x6
ldr r0, [r4, r0]
ldr r1, [sp, #0x0]
ldr r2, [sp, #0x0]
add r1, r1, r0
ldr r0, [r2, r0]
add r7, r7, #0x1
add r5, #0x8
cmp r7, r0
blt _020626A2
_020626EC:
ldr r0, [sp, #0x0]
ldrb r1, [r4, #0x18]
add r0, #0x3c
str r0, [sp, #0x0]
ldr r0, [sp, #0x4]
add r0, r0, #0x1
str r0, [sp, #0x4]
cmp r0, r1
blt _0206268C
_020626FE:
add r0, r4, #0x0
ldr r5, [r4, #0x0]
bl Heap_Free
mov r2, #0x2d
add r0, r4, #0x0
mov r1, #0x0
lsl r2, r2, #0x4
bl MI_CpuFill8
add r0, r5, #0x0
bl Heap_Destroy
mov r0, #0xc
add sp, #0x8
pop {r3-r7, pc}
.balign 4
thumb_func_start sub_02062720
sub_02062720: ; 0x02062720
push {r4, lr}
add r4, r0, #0x0
bl sub_02062A70
add r0, r4, #0x0
bl sub_02062C80
add r0, r4, #0x0
bl sub_02062DB0
add r0, r4, #0x0
bl sub_02062F3C
mov r0, #0x2
pop {r4, pc}
.balign 4
thumb_func_start sub_02062740
sub_02062740: ; 0x02062740
push {r4, lr}
add r4, r0, #0x0
bl sub_02062FFC
add r0, r4, #0x0
bl sub_02062EC4
add r0, r4, #0x0
bl sub_02062D38
add r0, r4, #0x0
bl sub_02062C4C
mov r0, #0xb
pop {r4, pc}
.balign 4
thumb_func_start sub_02062760
sub_02062760: ; 0x02062760
push {r3, lr}
ldrh r1, [r0, #0x22]
ldrh r2, [r0, #0x24]
bl sub_02063028
mov r0, #0x3
pop {r3, pc}
.balign 4
thumb_func_start sub_02062770
sub_02062770: ; 0x02062770
push {r4, lr}
add r4, r0, #0x0
add r0, #0xc0
ldr r0, [r0, #0x0]
bl ListMenu_ProcessInput
ldr r1, _020627C8 ; =gSystem
ldr r3, [r1, #0x48]
mov r1, #0x2
tst r1, r3
beq _02062790
add r0, r4, #0x0
bl sub_02063178
mov r0, #0xa
pop {r4, pc}
_02062790:
mov r2, #0x1
add r1, r3, #0x0
tst r1, r2
bne _0206279C
mov r0, #0x3
pop {r4, pc}
_0206279C:
sub r1, r2, #0x3
cmp r0, r1
beq _020627AE
sub r1, r2, #0x2
cmp r0, r1
beq _020627AE
ldr r1, _020627CC ; =0x0000FFFF
cmp r0, r1
bne _020627B8
_020627AE:
add r0, r4, #0x0
bl sub_02063178
mov r0, #0xa
pop {r4, pc}
_020627B8:
strb r0, [r4, #0x1f]
mov r0, #0x0
strh r0, [r4, #0x28]
add r0, r4, #0x0
bl sub_02063178
mov r0, #0x4
pop {r4, pc}
.balign 4
_020627C8: .word gSystem
_020627CC: .word 0x0000FFFF
thumb_func_start sub_020627D0
sub_020627D0: ; 0x020627D0
push {r3, lr}
ldrh r1, [r0, #0x28]
bl sub_02063430
mov r0, #0x5
pop {r3, pc}
thumb_func_start sub_020627DC
sub_020627DC: ; 0x020627DC
push {r3, lr}
ldr r1, _02062804 ; =gSystem
ldr r2, [r1, #0x48]
mov r1, #0x3
tst r1, r2
beq _020627F0
bl sub_020634DC
mov r0, #0x2
pop {r3, pc}
_020627F0:
mov r1, #0x4
tst r1, r2
beq _020627FE
bl sub_02063238
mov r0, #0x6
pop {r3, pc}
_020627FE:
mov r0, #0x5
pop {r3, pc}
nop
_02062804: .word gSystem
thumb_func_start sub_02062808
sub_02062808: ; 0x02062808
push {r4, lr}
ldr r1, _020628B8 ; =gSystem
mov r2, #0x2
ldr r1, [r1, #0x48]
add r4, r0, #0x0
tst r2, r1
beq _0206281E
bl sub_02063264
mov r0, #0x5
pop {r4, pc}
_0206281E:
mov r0, #0x1
tst r0, r1
beq _0206285C
mov r0, #0x0
str r0, [r4, #0xc]
mov r0, #0xb
lsl r0, r0, #0x6
ldrb r2, [r4, #0x1f]
mov r1, #0x3c
ldr r3, [r4, r0]
mul r1, r2
add r1, r3, r1
add r3, r1, #0x4
ldrh r1, [r4, #0x28]
add r2, r4, r1
add r1, r0, #0x0
add r1, #0x8
ldrb r1, [r2, r1]
lsl r1, r1, #0x3
add r2, r3, r1
add r1, r0, #0x4
str r2, [r4, r1]
add r0, r0, #0x4
ldr r0, [r4, r0]
ldrb r0, [r0, #0x6]
cmp r0, #0xff
bne _02062858
mov r0, #0x8
pop {r4, pc}
_02062858:
mov r0, #0x7
pop {r4, pc}
_0206285C:
mov r0, #0x40
tst r0, r1
beq _02062882
ldrh r0, [r4, #0x28]
cmp r0, #0x0
beq _02062882
sub r0, r0, #0x1
strh r0, [r4, #0x28]
ldrh r2, [r4, #0x28]
mov r0, #0xa6
lsl r0, r0, #0x2
lsl r2, r2, #0x4
add r2, #0x10
lsl r2, r2, #0x10
ldr r0, [r4, r0]
mov r1, #0x7e
asr r2, r2, #0x10
bl sub_0200C714
_02062882:
ldr r0, _020628B8 ; =gSystem
ldr r1, [r0, #0x48]
mov r0, #0x80
tst r0, r1
beq _020628B4
add r0, r4, #0x0
add r0, #0x21
ldrb r0, [r0, #0x0]
ldrh r1, [r4, #0x28]
sub r0, r0, #0x1
cmp r1, r0
bge _020628B4
add r0, r1, #0x1
strh r0, [r4, #0x28]
ldrh r2, [r4, #0x28]
mov r0, #0xa6
lsl r0, r0, #0x2
lsl r2, r2, #0x4
add r2, #0x10
lsl r2, r2, #0x10
ldr r0, [r4, r0]
mov r1, #0x7e
asr r2, r2, #0x10
bl sub_0200C714
_020628B4:
mov r0, #0x6
pop {r4, pc}
.balign 4
_020628B8: .word gSystem
thumb_func_start sub_020628BC
sub_020628BC: ; 0x020628BC
push {r3-r4, lr}
sub sp, #0x4
add r4, r0, #0x0
ldr r0, [r4, #0x0]
ldr r1, _020628E0 ; =UNK_020F7BC8
str r0, [sp, #0x0]
add r0, r4, #0x0
add r0, #0xd0
ldr r0, [r0, #0x0]
ldr r2, _020628E4 ; =0x000003D9
mov r3, #0xb
bl Std_CreateYesNoMenu
add r4, #0xc8
str r0, [r4, #0x0]
add sp, #0x4
pop {r3-r4, pc}
nop
_020628E0: .word UNK_020F7BC8
_020628E4: .word 0x000003D9
thumb_func_start sub_020628E8
sub_020628E8: ; 0x020628E8
push {r4, lr}
sub sp, #0x10
add r4, r0, #0x0
ldr r1, [r4, #0xc]
cmp r1, #0x3
bgt _0206290C
cmp r1, #0x0
blt _020629CE
add r2, r1, r1
add r2, pc
ldrh r2, [r2, #0x6]
lsl r2, r2, #0x10
asr r2, r2, #0x10
add pc, r2
_02062904: ; jump table (using 16-bit offset)
.short _02062912 - _02062904 - 2; case 0
.short _0206294E - _02062904 - 2; case 1
.short _02062966 - _02062904 - 2; case 2
.short _0206298C - _02062904 - 2; case 3
_0206290C:
cmp r1, #0xff
beq _020629B2
b _020629CE
_02062912:
add r0, #0xe4
mov r1, #0xff
bl FillWindowPixelBuffer
mov r3, #0x0
str r3, [sp, #0x0]
ldrh r0, [r4, #0x1a]
add r2, r4, #0x0
add r2, #0x98
str r0, [sp, #0x4]
ldr r0, _020629D4 ; =0x0001020F
mov r1, #0x1
str r0, [sp, #0x8]
str r3, [sp, #0xc]
add r0, r4, #0x0
ldr r2, [r2, #0x0]
add r0, #0xe4
bl AddTextPrinterParameterized2
strb r0, [r4, #0x1e]
mov r0, #0xa6
lsl r0, r0, #0x2
ldr r0, [r4, r0]
mov r1, #0x2
bl sub_0200C66C
ldr r0, [r4, #0xc]
add r0, r0, #0x1
str r0, [r4, #0xc]
b _020629CE
_0206294E:
ldrb r0, [r4, #0x1e]
bl sub_0201BD70
cmp r0, #0x0
bne _020629CE
add r0, r4, #0x0
bl sub_020628BC
ldr r0, [r4, #0xc]
add r0, r0, #0x1
str r0, [r4, #0xc]
b _020629CE
_02062966:
add r0, #0xc8
ldr r0, [r0, #0x0]
ldr r1, [r4, #0x0]
bl sub_020021AC
cmp r0, #0x0
beq _0206297E
mov r1, #0x1
mvn r1, r1
cmp r0, r1
beq _02062986
b _020629CE
_0206297E:
ldr r0, [r4, #0xc]
add r0, r0, #0x1
str r0, [r4, #0xc]
b _020629CE
_02062986:
mov r0, #0xff
str r0, [r4, #0xc]
b _020629CE
_0206298C:
mov r1, #0xb1
lsl r1, r1, #0x2
ldr r1, [r4, r1]
mov r2, #0x0
strh r2, [r1, #0x4]
mov r1, #0x1
bl sub_020632A4
mov r0, #0xa6
lsl r0, r0, #0x2
ldr r0, [r4, r0]
mov r1, #0x1
bl sub_0200C66C
mov r0, #0x0
str r0, [r4, #0xc]
add sp, #0x10
mov r0, #0x6
pop {r4, pc}
_020629B2:
add r0, r4, #0x0
bl sub_02063208
mov r0, #0xa6
lsl r0, r0, #0x2
ldr r0, [r4, r0]
mov r1, #0x1
bl sub_0200C66C
mov r0, #0x0
str r0, [r4, #0xc]
add sp, #0x10
mov r0, #0x6
pop {r4, pc}
_020629CE:
mov r0, #0x7
add sp, #0x10
pop {r4, pc}
.balign 4
_020629D4: .word 0x0001020F
thumb_func_start sub_020629D8
sub_020629D8: ; 0x020629D8
push {r4, lr}
sub sp, #0x10
add r4, r0, #0x0
ldr r1, [r4, #0xc]
cmp r1, #0x0
beq _020629EE
cmp r1, #0x1
beq _02062A2A
cmp r1, #0x2
beq _02062A3C
b _02062A60
_020629EE:
add r0, #0xe4
mov r1, #0xff
bl FillWindowPixelBuffer
mov r3, #0x0
str r3, [sp, #0x0]
ldrh r0, [r4, #0x1a]
add r2, r4, #0x0
add r2, #0x9c
str r0, [sp, #0x4]
ldr r0, _02062A68 ; =0x0001020F
mov r1, #0x1
str r0, [sp, #0x8]
str r3, [sp, #0xc]
add r0, r4, #0x0
ldr r2, [r2, #0x0]
add r0, #0xe4
bl AddTextPrinterParameterized2
strb r0, [r4, #0x1e]
mov r0, #0xa6
lsl r0, r0, #0x2
ldr r0, [r4, r0]
mov r1, #0x2
bl sub_0200C66C
ldr r0, [r4, #0xc]
add r0, r0, #0x1
str r0, [r4, #0xc]
b _02062A60
_02062A2A:
ldrb r0, [r4, #0x1e]
bl sub_0201BD70
cmp r0, #0x0
bne _02062A60
ldr r0, [r4, #0xc]
add r0, r0, #0x1
str r0, [r4, #0xc]
b _02062A60
_02062A3C:
ldr r1, _02062A6C ; =gSystem
ldr r2, [r1, #0x48]
mov r1, #0x3
tst r1, r2
beq _02062A60
bl sub_02063208
mov r0, #0xa6
lsl r0, r0, #0x2
ldr r0, [r4, r0]
mov r1, #0x1
bl sub_0200C66C
mov r0, #0x0
str r0, [r4, #0xc]
add sp, #0x10
mov r0, #0x6
pop {r4, pc}
_02062A60:
mov r0, #0x8
add sp, #0x10
pop {r4, pc}
nop
_02062A68: .word 0x0001020F
_02062A6C: .word gSystem
thumb_func_start sub_02062A70
sub_02062A70: ; 0x02062A70
push {r4-r7, lr}
sub sp, #0x14
add r4, r0, #0x0
ldrb r2, [r4, #0x18]
add r5, r1, #0x0
mov r1, #0x3c
ldr r0, [r4, #0x0]
mul r1, r2
bl Heap_Alloc
mov r1, #0xb
lsl r1, r1, #0x6
str r0, [r4, r1]
ldr r0, [r4, r1]
ldrb r3, [r4, #0x18]
mov r2, #0x3c
mov r1, #0x0
mul r2, r3
bl MI_CpuFill8
ldrb r1, [r4, #0x16]
ldr r2, [r4, #0x0]
add r0, r5, #0x0
bl sub_0202BD6C
mov r1, #0xa9
lsl r1, r1, #0x2
str r0, [r4, r1]
mov r0, #0x0
str r0, [sp, #0x10]
ldrb r0, [r4, #0x18]
cmp r0, #0x0
bgt _02062AB4
b _02062C48
_02062AB4:
ldr r0, [sp, #0x10]
str r4, [sp, #0x8]
str r0, [sp, #0x4]
add r5, r0, #0x0
_02062ABC:
ldrb r2, [r4, #0x17]
ldrb r3, [r4, #0x19]
mov r1, #0xd
mul r1, r2
mov r0, #0x2a
add r2, r3, r1
ldr r1, [sp, #0x10]
lsl r0, r0, #0x4
add r1, r1, r2
ldr r0, [r4, r0]
ldr r2, [r4, #0x0]
bl sub_0202BDF0
mov r1, #0xaa
mov r3, #0x0
ldr r2, [sp, #0x8]
lsl r1, r1, #0x2
str r0, [r2, r1]
add r0, r2, #0x0
ldr r0, [r0, r1]
mov r12, r3
str r0, [sp, #0xc]
ldr r0, [r0, #0x0]
cmp r0, #0x0
bne _02062B22
sub r0, r1, #0x4
ldr r0, [r4, r0]
add r3, r1, #0x0
add r2, r0, #0x4
ldr r0, [sp, #0x4]
add r3, #0x18
add r2, r2, r0
add r0, r1, #0x0
add r0, #0x18
ldr r0, [r4, r0]
add r0, r0, r5
str r2, [r0, #0x4]
add r0, r1, #0x0
add r0, #0x18
ldr r0, [r4, r0]
mov r2, #0x1
add r0, r0, r5
strh r2, [r0, #0x8]
ldr r3, [r4, r3]
mov r0, #0xff
add r3, r3, r5
add r1, #0x18
strb r0, [r3, #0xa]
ldr r0, [r4, r1]
str r2, [r0, r5]
b _02062C2C
_02062B22:
add r2, r3, #0x0
cmp r0, #0x0
ble _02062BE4
ldr r0, [sp, #0xc]
str r0, [sp, #0x0]
add r7, r0, #0x4
_02062B2E:
mov r0, r12
cmp r0, #0x0
bne _02062BA8
mov r0, #0xa9
lsl r0, r0, #0x2
ldr r0, [r4, r0]
ldr r1, [sp, #0x4]
add r1, r1, r0
ldr r6, [r1, #0x8]
ldr r1, [sp, #0x0]
ldr r1, [r1, #0x8]
cmp r6, r1
blo _02062BA8
add r6, r0, #0x4
ldr r0, [sp, #0x4]
lsl r1, r3, #0x3
add r0, r6, r0
mov r6, #0xb
lsl r6, r6, #0x6
ldr r6, [r4, r6]
add r3, r3, #0x1
add r6, r5, r6
add r6, r1, r6
str r0, [r6, #0x4]
mov r0, #0xb
lsl r0, r0, #0x6
ldr r0, [r4, r0]
add r0, r5, r0
add r6, r1, r0
mov r0, #0x1
strh r0, [r6, #0x8]
mov r0, #0xb
lsl r0, r0, #0x6
ldr r0, [r4, r0]
lsl r6, r3, #0x3
add r0, r5, r0
add r1, r1, r0
mov r0, #0xff
strb r0, [r1, #0xa]
mov r0, #0xb
lsl r0, r0, #0x6
ldr r0, [r4, r0]
add r0, r5, r0
add r0, r6, r0
str r7, [r0, #0x4]
mov r0, #0xb
lsl r0, r0, #0x6
ldr r0, [r4, r0]
add r0, r5, r0
add r1, r6, r0
mov r0, #0x1
strh r0, [r1, #0x8]
mov r0, #0xb
lsl r0, r0, #0x6
ldr r0, [r4, r0]
add r0, r5, r0
add r0, r6, r0
strb r2, [r0, #0xa]
mov r0, #0x1
mov r12, r0
b _02062BD0
_02062BA8:
mov r0, #0xb
lsl r0, r0, #0x6
ldr r0, [r4, r0]
lsl r6, r3, #0x3
add r0, r5, r0
add r0, r6, r0
str r7, [r0, #0x4]
mov r0, #0xb
lsl r0, r0, #0x6
ldr r0, [r4, r0]
add r0, r5, r0
add r1, r6, r0
mov r0, #0x1
strh r0, [r1, #0x8]
mov r0, #0xb
lsl r0, r0, #0x6
ldr r0, [r4, r0]
add r0, r5, r0
add r0, r6, r0
strb r2, [r0, #0xa]
_02062BD0:
ldr r0, [sp, #0x0]
add r2, r2, #0x1
add r0, #0xc
str r0, [sp, #0x0]
ldr r0, [sp, #0xc]
add r3, r3, #0x1
ldr r0, [r0, #0x0]
add r7, #0xc
cmp r2, r0
blt _02062B2E
_02062BE4:
mov r0, r12
cmp r0, #0x0
bne _02062C1E
mov r0, #0xa9
lsl r0, r0, #0x2
ldr r1, [r4, r0]
lsl r2, r3, #0x3
add r3, r1, #0x4
ldr r1, [sp, #0x4]
add r1, r3, r1
add r3, r0, #0x0
add r3, #0x1c
ldr r3, [r4, r3]
add r3, r3, r5
add r3, r2, r3
str r1, [r3, #0x4]
add r3, r0, #0x0
add r3, #0x1c
ldr r3, [r4, r3]
mov r1, #0x1
add r3, r3, r5
add r3, r2, r3
strh r1, [r3, #0x8]
add r0, #0x1c
ldr r0, [r4, r0]
mov r1, #0xff
add r0, r0, r5
add r0, r2, r0
strb r1, [r0, #0xa]
_02062C1E:
ldr r0, [sp, #0xc]
ldr r0, [r0, #0x0]
add r1, r0, #0x1
mov r0, #0xb
lsl r0, r0, #0x6
ldr r0, [r4, r0]
str r1, [r0, r5]
_02062C2C:
ldr r0, [sp, #0x8]
ldrb r1, [r4, #0x18]
add r0, r0, #0x4
str r0, [sp, #0x8]
ldr r0, [sp, #0x4]
add r5, #0x3c
add r0, #0xc
str r0, [sp, #0x4]
ldr r0, [sp, #0x10]
add r0, r0, #0x1
str r0, [sp, #0x10]
cmp r0, r1
bge _02062C48
b _02062ABC
_02062C48:
add sp, #0x14
pop {r4-r7, pc}
thumb_func_start sub_02062C4C
sub_02062C4C: ; 0x02062C4C
push {r3-r7, lr}
add r6, r0, #0x0
ldrb r0, [r6, #0x18]
mov r4, #0x0
add r0, r0, #0x1
cmp r0, #0x0
ble _02062C72
mov r7, #0xa9
add r5, r6, #0x0
lsl r7, r7, #0x2
_02062C60:
ldr r0, [r5, r7]
bl sub_0202BE6C
ldrb r0, [r6, #0x18]
add r4, r4, #0x1
add r5, r5, #0x4
add r0, r0, #0x1
cmp r4, r0
blt _02062C60
_02062C72:
mov r0, #0xb
lsl r0, r0, #0x6
ldr r0, [r6, r0]
bl Heap_Free
pop {r3-r7, pc}
.balign 4
thumb_func_start sub_02062C80
sub_02062C80: ; 0x02062C80
push {r4-r6, lr}
add r5, r0, #0x0
ldr r2, _02062D34 ; =0x000001E1
ldr r3, [r5, #0x0]
mov r0, #0x0
mov r1, #0x1a
bl NewMsgDataFromNarc
str r0, [r5, #0x2c]
ldr r2, [r5, #0x0]
mov r0, #0x2
mov r1, #0x4c
bl MessageFormat_New_Custom
str r0, [r5, #0x30]
ldr r1, [r5, #0x0]
mov r0, #0x4c
bl String_New
str r0, [r5, #0x34]
ldr r0, [r5, #0x2c]
mov r1, #0xd
bl NewString_ReadMsgData
str r0, [r5, #0x38]
ldr r0, [r5, #0x2c]
mov r1, #0x16
bl NewString_ReadMsgData
str r0, [r5, #0x3c]
ldr r0, [r5, #0x2c]
mov r1, #0x24
bl NewString_ReadMsgData
str r0, [r5, #0x40]
ldr r0, [r5, #0x2c]
mov r1, #0xe
bl NewString_ReadMsgData
str r0, [r5, #0x44]
ldrb r0, [r5, #0x18]
mov r4, #0x0
cmp r0, #0x0
ble _02062CFE
add r6, r5, #0x0
_02062CDA:
ldrb r1, [r5, #0x19]
ldr r0, [r5, #0x2c]
add r1, r1, r4
bl NewString_ReadMsgData
str r0, [r6, #0x64]
ldrb r1, [r5, #0x19]
ldr r0, [r5, #0x2c]
add r1, #0x17
add r1, r1, r4
bl NewString_ReadMsgData
str r0, [r6, #0x7c]
ldrb r0, [r5, #0x18]
add r4, r4, #0x1
add r6, r6, #0x4
cmp r4, r0
blt _02062CDA
_02062CFE:
mov r4, #0x0
add r6, r5, #0x0
_02062D02:
add r1, r4, #0x0
ldr r0, [r5, #0x2c]
add r1, #0xf
bl NewString_ReadMsgData
str r0, [r6, #0x48]
add r4, r4, #0x1
add r6, r6, #0x4
cmp r4, #0x7
blt _02062D02
mov r4, #0x0
add r6, r5, #0x0
_02062D1A:
add r1, r4, #0x0
ldr r0, [r5, #0x2c]
add r1, #0x25
bl NewString_ReadMsgData
add r1, r6, #0x0
add r1, #0x94
add r4, r4, #0x1
add r6, r6, #0x4
str r0, [r1, #0x0]
cmp r4, #0x3
blt _02062D1A
pop {r4-r6, pc}
.balign 4
_02062D34: .word 0x000001E1
thumb_func_start sub_02062D38
sub_02062D38: ; 0x02062D38
push {r4-r6, lr}
add r6, r0, #0x0
mov r4, #0x0
add r5, r6, #0x0
_02062D40:
add r0, r5, #0x0
add r0, #0x94
ldr r0, [r0, #0x0]
bl String_Delete
add r4, r4, #0x1
add r5, r5, #0x4
cmp r4, #0x3
blt _02062D40
mov r5, #0x0
add r4, r6, #0x0
_02062D56:
ldr r0, [r4, #0x48]
bl String_Delete
add r5, r5, #0x1
add r4, r4, #0x4
cmp r5, #0x7
blt _02062D56
ldrb r0, [r6, #0x18]
mov r5, #0x0
cmp r0, #0x0
ble _02062D84
add r4, r6, #0x0
_02062D6E:
ldr r0, [r4, #0x64]
bl String_Delete
ldr r0, [r4, #0x7c]
bl String_Delete
ldrb r0, [r6, #0x18]
add r5, r5, #0x1
add r4, r4, #0x4
cmp r5, r0
blt _02062D6E
_02062D84:
ldr r0, [r6, #0x44]
bl String_Delete
ldr r0, [r6, #0x40]
bl String_Delete
ldr r0, [r6, #0x3c]
bl String_Delete
ldr r0, [r6, #0x38]
bl String_Delete
ldr r0, [r6, #0x34]
bl String_Delete
ldr r0, [r6, #0x30]
bl MessageFormat_Delete
ldr r0, [r6, #0x2c]
bl DestroyMsgData
pop {r4-r6, pc}
thumb_func_start sub_02062DB0
sub_02062DB0: ; 0x02062DB0
push {r3-r4, lr}
sub sp, #0x14
add r4, r0, #0x0
mov r1, #0xad
ldr r3, [r4, #0x0]
mov r0, #0x1
lsl r1, r1, #0x6
mov r2, #0x0
bl BG_ClearCharDataRange
mov r2, #0x0
str r2, [sp, #0x0]
mov r0, #0x20
str r0, [sp, #0x4]
str r0, [sp, #0x8]
mov r0, #0x11
str r0, [sp, #0xc]
add r0, r4, #0x0
add r0, #0xd0
ldr r0, [r0, #0x0]
mov r1, #0x1
add r3, r2, #0x0
bl FillBgTilemapRect
add r0, r4, #0x0
add r0, #0xd0
ldr r0, [r0, #0x0]
mov r1, #0x1
bl ScheduleBgTilemapBufferTransfer
mov r0, #0x1
add r1, r0, #0x0
bl ToggleBgLayer
add r0, r4, #0x0
add r0, #0xd0
ldr r0, [r0, #0x0]
mov r1, #0x0
bl GetBgPriority
strh r0, [r4, #0x10]
add r0, r4, #0x0
add r0, #0xd0
ldr r0, [r0, #0x0]
mov r1, #0x1
bl GetBgPriority
strh r0, [r4, #0x12]
mov r0, #0x0
mov r1, #0x2
bl SetBgPriority
mov r0, #0x1
add r1, r0, #0x0
bl SetBgPriority
ldrh r0, [r4, #0x1c]
ldr r2, _02062EB8 ; =0x000003E2
mov r1, #0x3
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x0]
ldr r0, [r4, #0x0]
mov r3, #0xa
str r0, [sp, #0x4]
add r0, r4, #0x0
add r0, #0xd0
ldr r0, [r0, #0x0]
bl sub_0200CD68
mov r0, #0x0
str r0, [sp, #0x0]
ldr r0, [r4, #0x0]
ldr r2, _02062EBC ; =0x000003D9
str r0, [sp, #0x4]
add r0, r4, #0x0
add r0, #0xd0
ldr r0, [r0, #0x0]
mov r1, #0x3
mov r3, #0xb
bl LoadUserFrameGfx1
mov r0, #0x0
str r0, [sp, #0x0]
ldr r0, [r4, #0x0]
ldr r2, _02062EBC ; =0x000003D9
str r0, [sp, #0x4]
add r0, r4, #0x0
add r0, #0xd0
ldr r0, [r0, #0x0]
mov r1, #0x1
mov r3, #0xb
bl LoadUserFrameGfx1
mov r1, #0x1a
ldr r2, [r4, #0x0]
mov r0, #0x0
lsl r1, r1, #0x4
bl LoadFontPal0
mov r1, #0x6
ldr r2, [r4, #0x0]
mov r0, #0x0
lsl r1, r1, #0x6
bl LoadFontPal1
mov r0, #0x13
str r0, [sp, #0x0]
mov r0, #0x1b
str r0, [sp, #0x4]
mov r0, #0x4
str r0, [sp, #0x8]
mov r0, #0xc
str r0, [sp, #0xc]
ldr r0, _02062EC0 ; =0x0000036D
add r1, r4, #0x0
str r0, [sp, #0x10]
add r0, r4, #0x0
add r0, #0xd0
ldr r0, [r0, #0x0]
add r1, #0xe4
mov r2, #0x3
mov r3, #0x2
bl AddWindowParameterized
add r4, #0xe4
add r0, r4, #0x0
mov r1, #0xff
bl FillWindowPixelBuffer
add sp, #0x14
pop {r3-r4, pc}
.balign 4
_02062EB8: .word 0x000003E2
_02062EBC: .word 0x000003D9
_02062EC0: .word 0x0000036D
thumb_func_start sub_02062EC4
sub_02062EC4: ; 0x02062EC4
push {r4, lr}
sub sp, #0x10
add r4, r0, #0x0
add r0, #0xe4
mov r1, #0x1
bl ClearFrameAndWindow2
add r0, r4, #0x0
add r0, #0xe4
bl ClearWindowTilemapAndCopyToVram
add r0, r4, #0x0
add r0, #0xe4
bl RemoveWindow
mov r1, #0xad
ldr r3, [r4, #0x0]
mov r0, #0x1
lsl r1, r1, #0x6
mov r2, #0x0
bl BG_ClearCharDataRange
mov r2, #0x0
str r2, [sp, #0x0]
mov r0, #0x20
str r0, [sp, #0x4]
str r0, [sp, #0x8]
mov r0, #0x11
str r0, [sp, #0xc]
add r0, r4, #0x0
add r0, #0xd0
ldr r0, [r0, #0x0]
mov r1, #0x1
add r3, r2, #0x0
bl FillBgTilemapRect
add r0, r4, #0x0
add r0, #0xd0
ldr r0, [r0, #0x0]
mov r1, #0x1
bl ScheduleBgTilemapBufferTransfer
mov r0, #0x1
mov r1, #0x0
bl ToggleBgLayer
ldrh r1, [r4, #0x10]
mov r0, #0x0
lsl r1, r1, #0x18
lsr r1, r1, #0x18
bl SetBgPriority
ldrh r1, [r4, #0x12]
mov r0, #0x1
lsl r1, r1, #0x18
lsr r1, r1, #0x18
bl SetBgPriority
add sp, #0x10
pop {r4, pc}
thumb_func_start sub_02062F3C
sub_02062F3C: ; 0x02062F3C
push {r4-r7, lr}
sub sp, #0x24
ldr r4, _02062FF0 ; =UNK_020F7BDC
add r3, sp, #0xc
add r6, r0, #0x0
add r2, r3, #0x0
ldmia r4!, {r0-r1}
stmia r3!, {r0-r1}
ldmia r4!, {r0-r1}
stmia r3!, {r0-r1}
ldmia r4!, {r0-r1}
stmia r3!, {r0-r1}
mov r0, #0x4d
lsl r0, r0, #0x2
add r1, r2, #0x0
ldr r3, [r6, #0x0]
add r0, r6, r0
mov r2, #0x2
bl ov05_021D959C
mov r0, #0x3
str r0, [sp, #0x0]
mov r0, #0x1
str r0, [sp, #0x4]
ldr r0, _02062FF4 ; =0x000034D8
mov r2, #0x0
str r0, [sp, #0x8]
mov r0, #0x4d
lsl r0, r0, #0x2
add r0, r6, r0
mov r1, #0x82
add r3, r2, #0x0
bl ov05_021D967C
ldr r0, _02062FF4 ; =0x000034D8
mov r1, #0x82
str r0, [sp, #0x0]
mov r0, #0x4d
lsl r0, r0, #0x2
add r0, r6, r0
mov r2, #0x2
mov r3, #0x0
bl ov05_021D96F4
ldr r0, _02062FF4 ; =0x000034D8
mov r1, #0x82
str r0, [sp, #0x0]
mov r0, #0x4d
lsl r0, r0, #0x2
add r0, r6, r0
mov r2, #0x3
mov r3, #0x0
bl ov05_021D9708
mov r2, #0x1
ldr r0, _02062FF4 ; =0x000034D8
str r2, [sp, #0x0]
str r0, [sp, #0x4]
mov r0, #0x4d
lsl r0, r0, #0x2
add r0, r6, r0
mov r1, #0x82
mov r3, #0x0
bl ov05_021D971C
ldr r4, _02062FF8 ; =UNK_020F7C7C
mov r7, #0x0
add r5, r6, #0x0
_02062FC4:
mov r0, #0x4d
lsl r0, r0, #0x2
add r0, r6, r0
add r1, r4, #0x0
bl ov05_021D9820
mov r1, #0xa6
lsl r1, r1, #0x2
str r0, [r5, r1]
add r7, r7, #0x1
add r4, #0x34
add r5, r5, #0x4
cmp r7, #0x2
blt _02062FC4
add r0, r1, #0x4
ldr r0, [r6, r0]
mov r1, #0x0
bl sub_0200C644
add sp, #0x24
pop {r4-r7, pc}
nop
_02062FF0: .word UNK_020F7BDC
_02062FF4: .word 0x000034D8
_02062FF8: .word UNK_020F7C7C
thumb_func_start sub_02062FFC
sub_02062FFC: ; 0x02062FFC
push {r3-r7, lr}
add r7, r0, #0x0
mov r6, #0xa6
mov r4, #0x0
add r5, r7, #0x0
lsl r6, r6, #0x2
_02063008:
ldr r0, [r5, r6]
cmp r0, #0x0
beq _02063012
bl sub_0200C3DC
_02063012:
add r4, r4, #0x1
add r5, r5, #0x4
cmp r4, #0x2
blt _02063008
mov r0, #0x4d
lsl r0, r0, #0x2
add r0, r7, r0
bl ov05_021D99F8
pop {r3-r7, pc}
.balign 4
thumb_func_start sub_02063028
sub_02063028: ; 0x02063028
push {r4-r7, lr}
sub sp, #0x1c
str r1, [sp, #0x14]
add r5, r0, #0x0
str r2, [sp, #0x18]
ldrb r0, [r5, #0x18]
ldr r1, [r5, #0x0]
add r7, r0, #0x1
add r0, r7, #0x0
bl ListMenuItems_New
add r1, r5, #0x0
add r1, #0xc4
str r0, [r1, #0x0]
mov r2, #0x1
add r1, r5, #0x0
str r2, [sp, #0x0]
mov r0, #0x18
str r0, [sp, #0x4]
lsl r0, r7, #0x19
lsr r0, r0, #0x18
str r0, [sp, #0x8]
mov r0, #0xd
str r0, [sp, #0xc]
add r0, r5, #0x0
str r2, [sp, #0x10]
add r0, #0xd0
ldr r0, [r0, #0x0]
add r1, #0xd4
mov r3, #0x4
bl AddWindowParameterized
add r0, r5, #0x0
add r0, #0xd4
mov r1, #0xff
bl FillWindowPixelBuffer
ldrb r0, [r5, #0x18]
mov r6, #0x0
cmp r0, #0x0
ble _02063094
add r4, r5, #0x0
_0206307C:
add r0, r5, #0x0
add r0, #0xc4
ldr r0, [r0, #0x0]
ldr r1, [r4, #0x64]
add r2, r6, #0x0
bl ListMenuItems_AddItem
ldrb r0, [r5, #0x18]
add r6, r6, #0x1
add r4, r4, #0x4
cmp r6, r0
blt _0206307C
_02063094:
add r0, r5, #0x0
add r0, #0xc4
ldr r0, [r0, #0x0]
ldr r1, [r5, #0x38]
ldr r2, _02063160 ; =0x0000FFFF
bl ListMenuItems_AddItem
add r1, r5, #0x0
ldr r0, _02063164 ; =UNK_020F7C2C
add r1, #0xa0
mov r2, #0x20
bl MI_CpuCopy8
add r1, r5, #0x0
add r0, r5, #0x0
add r1, #0xd4
add r0, #0xac
str r1, [r0, #0x0]
add r0, r5, #0x0
add r0, #0xc4
ldr r1, [r0, #0x0]
add r0, r5, #0x0
add r0, #0xa0
str r1, [r0, #0x0]
add r0, r5, #0x0
add r0, #0xbc
str r5, [r0, #0x0]
add r0, r5, #0x0
add r0, #0xb0
strh r7, [r0, #0x0]
add r0, r5, #0x0
add r0, #0xb7
ldrb r1, [r0, #0x0]
mov r0, #0xf
bic r1, r0
add r0, r5, #0x0
add r0, #0xb7
strb r1, [r0, #0x0]
add r0, r5, #0x0
ldr r1, _02063168 ; =sub_020631C8
add r0, #0xa4
str r1, [r0, #0x0]
add r0, r5, #0x0
mov r1, #0x0
add r0, #0xa8
str r1, [r0, #0x0]
ldr r3, [r5, #0x0]
add r0, r5, #0x0
lsl r3, r3, #0x18
ldr r1, [sp, #0x14]
ldr r2, [sp, #0x18]
add r0, #0xa0
lsr r3, r3, #0x18
bl ListMenuInit
add r1, r5, #0x0
add r1, #0xc0
str r0, [r1, #0x0]
add r0, r5, #0x0
ldr r2, _0206316C ; =0x000003D9
add r0, #0xd4
mov r1, #0x0
mov r3, #0xb
bl DrawFrameAndWindow1
add r0, r5, #0x0
ldr r2, _02063170 ; =0x000003E2
add r0, #0xe4
mov r1, #0x1
mov r3, #0xa
bl DrawFrameAndWindow2
add r0, r5, #0x0
add r0, #0xe4
mov r1, #0xff
bl FillWindowPixelBuffer
mov r3, #0x0
str r3, [sp, #0x0]
ldr r0, _02063174 ; =0x0001020F
str r3, [sp, #0x4]
str r0, [sp, #0x8]
str r3, [sp, #0xc]
add r0, r5, #0x0
ldr r2, [r5, #0x3c]
add r0, #0xe4
mov r1, #0x1
bl AddTextPrinterParameterized2
mov r0, #0xa6
lsl r0, r0, #0x2
ldr r0, [r5, r0]
mov r1, #0x1
bl sub_0200C644
add r5, #0xd0
ldr r0, [r5, #0x0]
mov r1, #0x3
bl ScheduleBgTilemapBufferTransfer
add sp, #0x1c
pop {r4-r7, pc}
.balign 4
_02063160: .word 0x0000FFFF
_02063164: .word UNK_020F7C2C
_02063168: .word sub_020631C8
_0206316C: .word 0x000003D9
_02063170: .word 0x000003E2
_02063174: .word 0x0001020F
thumb_func_start sub_02063178
sub_02063178: ; 0x02063178
push {r4, lr}
add r4, r0, #0x0
add r0, #0xc0
add r1, r4, #0x0
add r2, r4, #0x0
ldr r0, [r0, #0x0]
add r1, #0x22
add r2, #0x24
bl DestroyListMenu
add r0, r4, #0x0
add r0, #0xc4
ldr r0, [r0, #0x0]
bl ListMenuItems_Delete
add r0, r4, #0x0
add r0, #0xd4
bl ClearWindowTilemapAndCopyToVram
add r0, r4, #0x0
add r0, #0xd4
mov r1, #0x0
bl ClearFrameAndWindow1
add r0, r4, #0x0
add r0, #0xd4
bl RemoveWindow
mov r0, #0xa6
lsl r0, r0, #0x2
ldr r0, [r4, r0]
mov r1, #0x0
bl sub_0200C644
add r4, #0xd0
ldr r0, [r4, #0x0]
mov r1, #0x3
bl ScheduleBgTilemapBufferTransfer
pop {r4, pc}
thumb_func_start sub_020631C8
sub_020631C8: ; 0x020631C8
push {r3-r5, lr}
mov r1, #0x13
add r5, r0, #0x0
bl ListMenuGetTemplateField
add r1, sp, #0x0
add r4, r0, #0x0
add r0, r5, #0x0
add r1, #0x2
add r2, sp, #0x0
bl ListMenuGetScrollAndRow
add r0, r5, #0x0
mov r1, #0x2
bl ListMenuGetTemplateField
add r2, sp, #0x0
ldrh r3, [r2, #0x0]
ldrh r2, [r2, #0x2]
mov r0, #0xa6
lsl r0, r0, #0x2
add r2, r3, r2
lsl r2, r2, #0x4
add r2, #0x10
lsl r2, r2, #0x10
ldr r0, [r4, r0]
mov r1, #0x7e
asr r2, r2, #0x10
bl sub_0200C714
pop {r3-r5, pc}
.balign 4
thumb_func_start sub_02063208
sub_02063208: ; 0x02063208
push {r4, lr}
sub sp, #0x10
add r4, r0, #0x0
add r0, #0xe4
mov r1, #0xff
bl FillWindowPixelBuffer
mov r3, #0x0
str r3, [sp, #0x0]
ldr r0, _02063234 ; =0x0001020F
str r3, [sp, #0x4]
str r0, [sp, #0x8]
add r0, r4, #0x0
str r3, [sp, #0xc]
add r4, #0x94
ldr r2, [r4, #0x0]
add r0, #0xe4
mov r1, #0x1
bl AddTextPrinterParameterized2
add sp, #0x10
pop {r4, pc}
.balign 4
_02063234: .word 0x0001020F
thumb_func_start sub_02063238
sub_02063238: ; 0x02063238
push {r4, lr}
add r4, r0, #0x0
bl sub_02063208
ldrh r2, [r4, #0x28]
mov r0, #0xa6
lsl r0, r0, #0x2
lsl r2, r2, #0x4
add r2, #0x10
lsl r2, r2, #0x10
ldr r0, [r4, r0]
mov r1, #0x7e
asr r2, r2, #0x10
bl sub_0200C714
mov r0, #0xa6
lsl r0, r0, #0x2
ldr r0, [r4, r0]
mov r1, #0x1
bl sub_0200C644
pop {r4, pc}
thumb_func_start sub_02063264
sub_02063264: ; 0x02063264
push {r4, lr}
sub sp, #0x10
add r4, r0, #0x0
add r0, #0xe4
mov r1, #0xff
bl FillWindowPixelBuffer
mov r3, #0x0
str r3, [sp, #0x0]
ldr r0, _020632A0 ; =0x0001020F
str r3, [sp, #0x4]
str r0, [sp, #0x8]
str r3, [sp, #0xc]
ldrb r2, [r4, #0x1f]
add r0, r4, #0x0
add r0, #0xe4
lsl r2, r2, #0x2
add r2, r4, r2
ldr r2, [r2, #0x7c]
mov r1, #0x1
bl AddTextPrinterParameterized2
mov r0, #0xa6
lsl r0, r0, #0x2
ldr r0, [r4, r0]
mov r1, #0x0
bl sub_0200C644
add sp, #0x10
pop {r4, pc}
.balign 4
_020632A0: .word 0x0001020F
thumb_func_start sub_020632A4
sub_020632A4: ; 0x020632A4
push {r4-r7, lr}
sub sp, #0x34
str r1, [sp, #0x10]
mov r1, #0xb
add r4, r0, #0x0
lsl r1, r1, #0x6
ldr r1, [r4, r1]
ldrb r0, [r4, #0x1f]
str r1, [sp, #0x24]
mov r1, #0x3c
mul r1, r0
str r1, [sp, #0x28]
ldrb r1, [r4, #0x16]
lsl r0, r0, #0x3
lsl r2, r1, #0x2
ldr r1, _02063428 ; =UNK_020F7BD0
ldr r1, [r1, r2]
add r0, r1, r0
str r0, [sp, #0x14]
add r0, r4, #0x0
add r0, #0xd4
mov r1, #0xff
bl FillWindowPixelBuffer
mov r0, #0x1
str r0, [sp, #0x1c]
mov r0, #0x0
add r1, r0, #0x0
str r1, [sp, #0x20]
ldr r2, [sp, #0x24]
ldr r1, [sp, #0x28]
str r0, [sp, #0x18]
ldr r1, [r2, r1]
cmp r1, #0x0
ble _020633EA
ldr r1, [sp, #0x28]
add r7, r2, r1
add r1, r0, #0x0
str r1, [sp, #0x30]
add r1, r4, #0x0
str r1, [sp, #0x2c]
add r1, #0xd4
str r1, [sp, #0x2c]
_020632FA:
ldrh r1, [r7, #0x8]
cmp r1, #0x0
beq _020633D6
ldr r1, [r7, #0x4]
ldr r5, [r1, #0x4]
ldr r1, [sp, #0x14]
ldr r1, [r1, #0x0]
cmp r5, r1
bls _0206330E
add r5, r1, #0x0
_0206330E:
cmp r5, r0
bge _02063318
ldr r0, [sp, #0x1c]
add r0, r0, #0x1
str r0, [sp, #0x1c]
_02063318:
mov r0, #0x1
str r0, [sp, #0x0]
str r0, [sp, #0x4]
ldr r0, [r4, #0x30]
ldr r2, [sp, #0x1c]
mov r1, #0x0
mov r3, #0x1
bl BufferIntegerAsString
mov r0, #0x1
str r0, [sp, #0x0]
mov r0, #0x2
str r0, [sp, #0x4]
ldr r2, [r7, #0x4]
ldr r0, [r4, #0x30]
ldr r2, [r2, #0x8]
mov r1, #0x1
mov r3, #0x2
bl BufferString
ldr r0, [r4, #0x30]
ldr r1, [r4, #0x34]
ldr r2, [r4, #0x44]
bl StringExpandPlaceholders
ldr r0, [sp, #0x30]
mov r1, #0x0
str r0, [sp, #0x0]
mov r0, #0xff
str r0, [sp, #0x4]
ldr r0, _0206342C ; =0x0001020F
mov r3, #0x8
str r0, [sp, #0x8]
mov r0, #0x0
str r0, [sp, #0xc]
ldr r0, [sp, #0x2c]
ldr r2, [r4, #0x34]
bl AddTextPrinterParameterized2
mov r0, #0x1
str r0, [sp, #0x0]
str r0, [sp, #0x4]
ldr r3, [sp, #0x14]
ldr r0, [r4, #0x30]
ldrh r3, [r3, #0x4]
mov r1, #0x0
add r2, r5, #0x0
bl BufferIntegerAsString
ldr r2, [sp, #0x14]
ldr r0, [r4, #0x30]
ldrh r2, [r2, #0x6]
ldr r1, [r4, #0x34]
lsl r2, r2, #0x2
add r2, r4, r2
ldr r2, [r2, #0xc]
bl StringExpandPlaceholders
mov r0, #0x0
ldr r1, [r4, #0x34]
add r2, r0, #0x0
bl sub_02002E14
mov r12, r0
ldr r0, [sp, #0x30]
mov r3, #0xb8
str r0, [sp, #0x0]
mov r0, #0xff
str r0, [sp, #0x4]
ldr r0, _0206342C ; =0x0001020F
mov r6, r12
str r0, [sp, #0x8]
mov r0, #0x0
str r0, [sp, #0xc]
ldr r0, [sp, #0x2c]
ldr r2, [r4, #0x34]
mov r1, #0x0
sub r3, r3, r6
bl AddTextPrinterParameterized2
ldr r0, [sp, #0x18]
ldr r1, [sp, #0x20]
add r2, r4, r0
mov r0, #0xb2
lsl r0, r0, #0x2
strb r1, [r2, r0]
ldr r1, [sp, #0x30]
add r0, r5, #0x0
add r1, #0x10
str r1, [sp, #0x30]
ldr r1, [sp, #0x18]
add r1, r1, #0x1
str r1, [sp, #0x18]
cmp r1, #0x6
bge _020633EA
_020633D6:
ldr r1, [sp, #0x20]
ldr r2, [sp, #0x24]
add r1, r1, #0x1
str r1, [sp, #0x20]
ldr r1, [sp, #0x28]
add r7, #0x8
ldr r2, [r2, r1]
ldr r1, [sp, #0x20]
cmp r1, r2
blt _020632FA
_020633EA:
add r0, r4, #0x0
add r0, #0xd4
bl CopyWindowToVram
add r1, r4, #0x0
ldr r0, [sp, #0x18]
add r1, #0x21
strb r0, [r1, #0x0]
ldrh r1, [r4, #0x28]
cmp r1, #0x0
beq _0206340E
add r0, r4, #0x0
add r0, #0x21
ldrb r0, [r0, #0x0]
cmp r1, r0
blt _0206340E
sub r0, r1, #0x1
strh r0, [r4, #0x28]
_0206340E:
ldr r0, [sp, #0x10]
cmp r0, #0x0
beq _0206341E
add r0, r4, #0x0
bl sub_02063238
add sp, #0x34
pop {r4-r7, pc}
_0206341E:
add r0, r4, #0x0
bl sub_02063264
add sp, #0x34
pop {r4-r7, pc}
.balign 4
_02063428: .word UNK_020F7BD0
_0206342C: .word 0x0001020F
thumb_func_start sub_02063430
sub_02063430: ; 0x02063430
push {r3-r4, lr}
sub sp, #0x14
mov r2, #0x1
add r4, r0, #0x0
str r2, [sp, #0x0]
mov r0, #0x18
str r0, [sp, #0x4]
mov r0, #0xc
str r0, [sp, #0x8]
mov r0, #0xd
str r0, [sp, #0xc]
add r0, r4, #0x0
add r1, r4, #0x0
str r2, [sp, #0x10]
add r0, #0xd0
ldr r0, [r0, #0x0]
add r1, #0xd4
mov r3, #0x4
bl AddWindowParameterized
add r0, r4, #0x0
ldr r2, _020634D0 ; =0x000003D9
add r0, #0xd4
mov r1, #0x1
mov r3, #0xb
bl DrawFrameAndWindow1
add r0, r4, #0x0
mov r1, #0x0
bl sub_020632A4
mov r0, #0xa7
lsl r0, r0, #0x2
ldr r0, [r4, r0]
mov r1, #0x1
bl sub_0200C644
mov r0, #0xe
str r0, [sp, #0x0]
mov r3, #0x8
add r1, r4, #0x0
str r3, [sp, #0x4]
mov r0, #0x2
str r0, [sp, #0x8]
mov r0, #0xd
str r0, [sp, #0xc]
ldr r0, _020634D4 ; =0x00000345
add r1, #0xf4
str r0, [sp, #0x10]
add r0, r4, #0x0
add r0, #0xd0
ldr r0, [r0, #0x0]
mov r2, #0x3
bl AddWindowParameterized
add r0, r4, #0x0
add r0, #0xf4
mov r1, #0x0
bl FillWindowPixelBuffer
mov r1, #0x0
str r1, [sp, #0x0]
ldr r0, _020634D8 ; =0x00010200
str r1, [sp, #0x4]
str r0, [sp, #0x8]
str r1, [sp, #0xc]
add r0, r4, #0x0
ldr r2, [r4, #0x40]
add r0, #0xf4
add r3, r1, #0x0
bl AddTextPrinterParameterized2
add r4, #0xd0
ldr r0, [r4, #0x0]
mov r1, #0x3
bl ScheduleBgTilemapBufferTransfer
add sp, #0x14
pop {r3-r4, pc}
nop
_020634D0: .word 0x000003D9
_020634D4: .word 0x00000345
_020634D8: .word 0x00010200
thumb_func_start sub_020634DC
sub_020634DC: ; 0x020634DC
push {r4, lr}
add r4, r0, #0x0
add r0, #0xd4
bl ClearWindowTilemapAndCopyToVram
add r0, r4, #0x0
add r0, #0xd4
mov r1, #0x0
bl ClearFrameAndWindow1
add r0, r4, #0x0
add r0, #0xd4
bl RemoveWindow
add r0, r4, #0x0
add r0, #0xf4
bl ClearWindowTilemapAndCopyToVram
add r0, r4, #0x0
add r0, #0xf4
bl RemoveWindow
mov r0, #0xa6
lsl r0, r0, #0x2
ldr r0, [r4, r0]
mov r1, #0x0
bl sub_0200C644
mov r0, #0xa7
lsl r0, r0, #0x2
ldr r0, [r4, r0]
mov r1, #0x0
bl sub_0200C644
pop {r4, pc}
.balign 4
thumb_func_start sub_02063524
sub_02063524: ; 0x02063524
push {r3-r5, lr}
add r4, r0, #0x0
bl TaskManager_GetFieldSystem
add r5, r0, #0x0
add r0, r4, #0x0
bl TaskManager_GetEnvironment
add r4, r0, #0x0
ldr r2, [r4, #0x0]
ldr r1, [r4, #0x8]
cmp r2, #0xc
bls _02063540
b _02063646
_02063540:
add r2, r2, r2
add r2, pc
ldrh r2, [r2, #0x6]
lsl r2, r2, #0x10
asr r2, r2, #0x10
add pc, r2
_0206354C: ; jump table (using 16-bit offset)
.short _02063566 - _0206354C - 2; case 0
.short _02063572 - _0206354C - 2; case 1
.short _0206357E - _0206354C - 2; case 2
.short _02063594 - _0206354C - 2; case 3
.short _020635AA - _0206354C - 2; case 4
.short _020635C0 - _0206354C - 2; case 5
.short _020635D6 - _0206354C - 2; case 6
.short _020635EC - _0206354C - 2; case 7
.short _02063602 - _0206354C - 2; case 8
.short _02063618 - _0206354C - 2; case 9
.short _0206362C - _0206354C - 2; case 10
.short _02063636 - _0206354C - 2; case 11
.short _0206363E - _0206354C - 2; case 12
_02063566:
ldrh r2, [r4, #0x4]
add r1, r5, #0x0
bl sub_020625EC
str r0, [r4, #0x0]
b _02063646
_02063572:
add r0, r1, #0x0
ldr r1, [r5, #0xc]
bl sub_02062720
str r0, [r4, #0x0]
b _02063646
_0206357E:
add r0, r1, #0x0
bl sub_02062760
str r0, [r4, #0x0]
mov r0, #0x4d
ldr r1, [r4, #0x8]
lsl r0, r0, #0x2
ldr r0, [r1, r0]
bl sub_0201FDEC
b _02063646
_02063594:
add r0, r1, #0x0
bl sub_02062770
str r0, [r4, #0x0]
mov r0, #0x4d
ldr r1, [r4, #0x8]
lsl r0, r0, #0x2
ldr r0, [r1, r0]
bl sub_0201FDEC
b _02063646
_020635AA:
add r0, r1, #0x0
bl sub_020627D0
str r0, [r4, #0x0]
mov r0, #0x4d
ldr r1, [r4, #0x8]
lsl r0, r0, #0x2
ldr r0, [r1, r0]
bl sub_0201FDEC
b _02063646
_020635C0:
add r0, r1, #0x0
bl sub_020627DC
str r0, [r4, #0x0]
mov r0, #0x4d
ldr r1, [r4, #0x8]
lsl r0, r0, #0x2
ldr r0, [r1, r0]
bl sub_0201FDEC
b _02063646
_020635D6:
add r0, r1, #0x0
bl sub_02062808
str r0, [r4, #0x0]
mov r0, #0x4d
ldr r1, [r4, #0x8]
lsl r0, r0, #0x2
ldr r0, [r1, r0]
bl sub_0201FDEC
b _02063646
_020635EC:
add r0, r1, #0x0
bl sub_020628E8
str r0, [r4, #0x0]
mov r0, #0x4d
ldr r1, [r4, #0x8]
lsl r0, r0, #0x2
ldr r0, [r1, r0]
bl sub_0201FDEC
b _02063646
_02063602:
add r0, r1, #0x0
bl sub_020629D8
str r0, [r4, #0x0]
mov r0, #0x4d
ldr r1, [r4, #0x8]
lsl r0, r0, #0x2
ldr r0, [r1, r0]
bl sub_0201FDEC
b _02063646
_02063618:
ldr r0, _0206364C ; =gSystem
ldr r1, [r0, #0x48]
mov r0, #0x1
tst r0, r1
bne _02063626
mov r0, #0x0
pop {r3-r5, pc}
_02063626:
mov r0, #0xa
str r0, [r4, #0x0]
b _02063646
_0206362C:
add r0, r1, #0x0
bl sub_02062740
str r0, [r4, #0x0]
b _02063646
_02063636:
bl sub_02062678
str r0, [r4, #0x0]
b _02063646
_0206363E:
bl Heap_Free
mov r0, #0x1
pop {r3-r5, pc}
_02063646:
mov r0, #0x0
pop {r3-r5, pc}
nop
_0206364C: .word gSystem
thumb_func_start sub_02063650
sub_02063650: ; 0x02063650
push {r3-r5, lr}
add r5, r1, #0x0
bl TaskManager_GetFieldSystem
add r4, r0, #0x0
mov r0, #0xb
mov r1, #0xc
bl Heap_Alloc
add r2, r0, #0x0
mov r0, #0x0
str r0, [r2, #0x0]
strh r5, [r2, #0x4]
str r0, [r2, #0x8]
ldr r0, [r4, #0x10]
ldr r1, _02063678 ; =sub_02063524
bl TaskManager_Call
pop {r3-r5, pc}
nop
_02063678: .word sub_02063524