pokediamond/arm9/asm/unk_02012CC8.s

1571 lines
27 KiB
ArmAsm

.include "asm/macros.inc"
.include "global.inc"
.extern NNS_G3dGlb
.section .rodata
.global UNK_020ED4E4
UNK_020ED4E4: ; 0x020ED4E4
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.global UNK_020ED4F0
UNK_020ED4F0: ; 0x020ED4F0
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.global UNK_020ED4FC
UNK_020ED4FC: ; 0x020ED4FC
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00
.global UNK_020ED508
UNK_020ED508: ; 0x020ED508
.word sub_02012ECC
.word sub_02012EF8
.word sub_02012F24
.word sub_02012F50
.word sub_02012F7C
.word sub_02012FA8
.word sub_02012FD4
.word sub_02013000
.word sub_0201302C
.word sub_02013058
.word sub_02013084
.word sub_020130B0
.word sub_020130DC
.word sub_02013108
.word sub_02013134
.word sub_02013160
.global UNK_020ED548
UNK_020ED548: ; 0x020ED548
.byte 0x1F, 0x01, 0xFF, 0xFF
.section .bss
.global UNK_021C4850
UNK_021C4850: ; 0x021C4850
.space 0x8
.global UNK_021C4858
UNK_021C4858: ; 0x021C4858
.space 0x40
.text
thumb_func_start sub_02012CC8
sub_02012CC8: ; 0x02012CC8
mov r1, #0x0
ldr r2, _02012CD8 ; =UNK_021C4858
add r0, r1, #0x0
_02012CCE:
add r1, r1, #0x1
stmia r2!, {r0}
cmp r1, #0x10
blt _02012CCE
bx lr
.balign 4
_02012CD8: .word UNK_021C4858
thumb_func_start sub_02012CDC
sub_02012CDC: ; 0x02012CDC
push {r3-r7, lr}
sub sp, #0x10
str r1, [sp, #0x8]
ldr r1, _02012DD0 ; =UNK_021C4858
add r7, r0, #0x0
add r6, r2, #0x0
str r3, [sp, #0xc]
mov r5, #0x0
_02012CEC:
ldr r0, [r1, #0x0]
cmp r0, #0x0
beq _02012CFA
add r5, r5, #0x1
add r1, r1, #0x4
cmp r5, #0x10
blt _02012CEC
_02012CFA:
cmp r5, #0x10
blt _02012D04
add sp, #0x10
mov r0, #0x0
pop {r3-r7, pc}
_02012D04:
ldr r0, [sp, #0x2c]
mov r1, #0xdc
bl Heap_Alloc
add r4, r0, #0x0
bne _02012D14
bl GF_AssertFail
_02012D14:
add r0, r4, #0x0
mov r1, #0x0
mov r2, #0xdc
bl memset
add r2, r4, #0x0
ldr r0, [sp, #0x8]
str r7, [r4, #0x18]
ldr r3, _02012DD4 ; =UNK_020ED4FC
str r0, [r4, #0x1c]
ldmia r3!, {r0-r1}
add r2, #0x34
stmia r2!, {r0-r1}
ldr r0, [r3, #0x0]
ldr r3, _02012DD8 ; =UNK_020ED4E4
str r0, [r2, #0x0]
add r2, r4, #0x0
ldmia r3!, {r0-r1}
add r2, #0x40
stmia r2!, {r0-r1}
ldr r0, [r3, #0x0]
ldr r3, _02012DDC ; =UNK_020ED4F0
str r0, [r2, #0x0]
add r2, r4, #0x0
ldmia r3!, {r0-r1}
add r2, #0x4c
stmia r2!, {r0-r1}
ldr r0, [r3, #0x0]
mov r1, #0x0
str r0, [r2, #0x0]
ldr r2, [sp, #0xc]
add r0, r6, #0x0
bl memset
ldr r0, [sp, #0xc]
str r6, [r4, #0xc]
str r6, [r4, #0x10]
add r0, r6, r0
str r0, [r4, #0x14]
add r0, r4, #0x0
add r0, #0xda
strb r5, [r0, #0x0]
ldr r0, _02012DD0 ; =UNK_021C4858
lsl r5, r5, #0x2
str r4, [r0, r5]
ldr r0, [sp, #0x28]
cmp r0, #0x1
bne _02012DA8
ldr r0, [sp, #0x2c]
bl Camera_New
str r0, [r4, #0x20]
mov r3, #0x0
str r3, [r4, #0x24]
str r3, [r4, #0x28]
mov r0, #0x2
str r3, [r4, #0x2c]
lsl r0, r0, #0xc
strh r0, [r4, #0x30]
str r3, [sp, #0x0]
ldr r0, [r4, #0x20]
ldr r1, _02012DD4 ; =UNK_020ED4FC
str r0, [sp, #0x4]
ldrh r2, [r4, #0x30]
ldr r0, _02012DDC ; =UNK_020ED4F0
bl Camera_Init_FromTargetAndPos
add r0, r4, #0x0
mov r1, #0x0
add r0, #0xdb
strb r1, [r0, #0x0]
ldr r0, [r4, #0x20]
bl Camera_SetStaticPtr
_02012DA8:
mov r0, #0x6
str r0, [sp, #0x0]
mov r0, #0x3f
str r0, [sp, #0x4]
ldr r0, _02012DE0 ; =UNK_020ED508
mov r1, #0x14
ldr r0, [r0, r5]
mov r2, #0xc8
mov r3, #0x5
bl sub_0208B4A0
str r0, [r4, #0x0]
ldr r1, _02012DD8 ; =UNK_020ED4E4
add r0, r4, #0x0
bl sub_020133FC
add r0, r4, #0x0
add sp, #0x10
pop {r3-r7, pc}
nop
_02012DD0: .word UNK_021C4858
_02012DD4: .word UNK_020ED4FC
_02012DD8: .word UNK_020ED4E4
_02012DDC: .word UNK_020ED4F0
_02012DE0: .word UNK_020ED508
thumb_func_start sub_02012DE4
sub_02012DE4: ; 0x02012DE4
push {r3-r7, lr}
add r5, r0, #0x0
bl sub_020133D0
add r0, r5, #0x0
add r0, #0xd8
ldrb r1, [r0, #0x0]
mov r0, #0x1
tst r0, r1
beq _02012E02
add r0, r5, #0x0
add r0, #0x58
bl NNS_GfdSetFrmTexVramState
b _02012E22
_02012E02:
mov r0, #0x2
tst r0, r1
beq _02012E22
mov r6, #0x0
add r4, r5, #0x0
add r7, r6, #0x0
_02012E0E:
ldr r0, [r4, #0x58]
cmp r0, #0x0
beq _02012E1A
bl NNS_GfdFreeLnkTexVram
str r7, [r4, #0x58]
_02012E1A:
add r6, r6, #0x1
add r4, r4, #0x4
cmp r6, #0x10
blt _02012E0E
_02012E22:
add r0, r5, #0x0
add r0, #0xd8
ldrb r1, [r0, #0x0]
mov r0, #0x4
tst r0, r1
beq _02012E38
add r0, r5, #0x0
add r0, #0x98
bl NNS_GfdSetFrmPlttVramState
b _02012E60
_02012E38:
mov r0, #0x8
tst r0, r1
beq _02012E60
mov r6, #0x0
add r4, r5, #0x0
add r7, r6, #0x0
_02012E44:
add r0, r4, #0x0
add r0, #0x98
ldr r0, [r0, #0x0]
cmp r0, #0x0
beq _02012E58
bl NNS_GfdFreeLnkPlttVram
add r0, r4, #0x0
add r0, #0x98
str r7, [r0, #0x0]
_02012E58:
add r6, r6, #0x1
add r4, r4, #0x4
cmp r6, #0x10
blt _02012E44
_02012E60:
add r0, r5, #0x0
mov r1, #0x0
add r0, #0xd8
strb r1, [r0, #0x0]
str r1, [r5, #0x8]
ldr r0, [r5, #0x4]
cmp r0, #0x0
beq _02012E78
bl Heap_Free
mov r0, #0x0
str r0, [r5, #0x4]
_02012E78:
ldr r2, _02012EA8 ; =UNK_021C4858
mov r1, #0x0
_02012E7C:
ldr r0, [r2, #0x0]
cmp r0, r5
bne _02012E8C
ldr r0, _02012EA8 ; =UNK_021C4858
mov r2, #0x0
lsl r1, r1, #0x2
str r2, [r0, r1]
b _02012E94
_02012E8C:
add r1, r1, #0x1
add r2, r2, #0x4
cmp r1, #0x10
blt _02012E7C
_02012E94:
ldr r0, [r5, #0x20]
cmp r0, #0x0
beq _02012E9E
bl Camera_Delete
_02012E9E:
add r0, r5, #0x0
bl Heap_Free
pop {r3-r7, pc}
nop
_02012EA8: .word UNK_021C4858
thumb_func_start sub_02012EAC
sub_02012EAC: ; 0x02012EAC
push {r3-r5, lr}
ldr r5, _02012EC8 ; =UNK_021C4858
mov r4, #0x0
_02012EB2:
ldr r0, [r5, #0x0]
cmp r0, #0x0
beq _02012EBC
bl sub_02012DE4
_02012EBC:
add r4, r4, #0x1
add r5, r5, #0x4
cmp r4, #0x10
blt _02012EB2
pop {r3-r5, pc}
nop
_02012EC8: .word UNK_021C4858
thumb_func_start sub_02012ECC
sub_02012ECC: ; 0x02012ECC
push {r4, lr}
ldr r1, _02012EF4 ; =UNK_021C4850
mov r2, #0x3
ldr r1, [r1, #0x8]
ldr r4, [r1, #0x10]
add r0, r4, r0
add r3, r0, #0x0
and r3, r2
beq _02012EE4
mov r2, #0x4
sub r2, r2, r3
add r0, r0, r2
_02012EE4:
str r0, [r1, #0x10]
ldr r1, [r1, #0x14]
cmp r0, r1
blo _02012EF0
bl GF_AssertFail
_02012EF0:
add r0, r4, #0x0
pop {r4, pc}
.balign 4
_02012EF4: .word UNK_021C4850
thumb_func_start sub_02012EF8
sub_02012EF8: ; 0x02012EF8
push {r4, lr}
ldr r1, _02012F20 ; =UNK_021C4850
mov r2, #0x3
ldr r1, [r1, #0xc]
ldr r4, [r1, #0x10]
add r0, r4, r0
add r3, r0, #0x0
and r3, r2
beq _02012F10
mov r2, #0x4
sub r2, r2, r3
add r0, r0, r2
_02012F10:
str r0, [r1, #0x10]
ldr r1, [r1, #0x14]
cmp r0, r1
blo _02012F1C
bl GF_AssertFail
_02012F1C:
add r0, r4, #0x0
pop {r4, pc}
.balign 4
_02012F20: .word UNK_021C4850
thumb_func_start sub_02012F24
sub_02012F24: ; 0x02012F24
push {r4, lr}
ldr r1, _02012F4C ; =UNK_021C4850
mov r2, #0x3
ldr r1, [r1, #0x10]
ldr r4, [r1, #0x10]
add r0, r4, r0
add r3, r0, #0x0
and r3, r2
beq _02012F3C
mov r2, #0x4
sub r2, r2, r3
add r0, r0, r2
_02012F3C:
str r0, [r1, #0x10]
ldr r1, [r1, #0x14]
cmp r0, r1
blo _02012F48
bl GF_AssertFail
_02012F48:
add r0, r4, #0x0
pop {r4, pc}
.balign 4
_02012F4C: .word UNK_021C4850
thumb_func_start sub_02012F50
sub_02012F50: ; 0x02012F50
push {r4, lr}
ldr r1, _02012F78 ; =UNK_021C4850
mov r2, #0x3
ldr r1, [r1, #0x14]
ldr r4, [r1, #0x10]
add r0, r4, r0
add r3, r0, #0x0
and r3, r2
beq _02012F68
mov r2, #0x4
sub r2, r2, r3
add r0, r0, r2
_02012F68:
str r0, [r1, #0x10]
ldr r1, [r1, #0x14]
cmp r0, r1
blo _02012F74
bl GF_AssertFail
_02012F74:
add r0, r4, #0x0
pop {r4, pc}
.balign 4
_02012F78: .word UNK_021C4850
thumb_func_start sub_02012F7C
sub_02012F7C: ; 0x02012F7C
push {r4, lr}
ldr r1, _02012FA4 ; =UNK_021C4850
mov r2, #0x3
ldr r1, [r1, #0x18]
ldr r4, [r1, #0x10]
add r0, r4, r0
add r3, r0, #0x0
and r3, r2
beq _02012F94
mov r2, #0x4
sub r2, r2, r3
add r0, r0, r2
_02012F94:
str r0, [r1, #0x10]
ldr r1, [r1, #0x14]
cmp r0, r1
blo _02012FA0
bl GF_AssertFail
_02012FA0:
add r0, r4, #0x0
pop {r4, pc}
.balign 4
_02012FA4: .word UNK_021C4850
thumb_func_start sub_02012FA8
sub_02012FA8: ; 0x02012FA8
push {r4, lr}
ldr r1, _02012FD0 ; =UNK_021C4850
mov r2, #0x3
ldr r1, [r1, #0x1c]
ldr r4, [r1, #0x10]
add r0, r4, r0
add r3, r0, #0x0
and r3, r2
beq _02012FC0
mov r2, #0x4
sub r2, r2, r3
add r0, r0, r2
_02012FC0:
str r0, [r1, #0x10]
ldr r1, [r1, #0x14]
cmp r0, r1
blo _02012FCC
bl GF_AssertFail
_02012FCC:
add r0, r4, #0x0
pop {r4, pc}
.balign 4
_02012FD0: .word UNK_021C4850
thumb_func_start sub_02012FD4
sub_02012FD4: ; 0x02012FD4
push {r4, lr}
ldr r1, _02012FFC ; =UNK_021C4850
mov r2, #0x3
ldr r1, [r1, #0x20]
ldr r4, [r1, #0x10]
add r0, r4, r0
add r3, r0, #0x0
and r3, r2
beq _02012FEC
mov r2, #0x4
sub r2, r2, r3
add r0, r0, r2
_02012FEC:
str r0, [r1, #0x10]
ldr r1, [r1, #0x14]
cmp r0, r1
blo _02012FF8
bl GF_AssertFail
_02012FF8:
add r0, r4, #0x0
pop {r4, pc}
.balign 4
_02012FFC: .word UNK_021C4850
thumb_func_start sub_02013000
sub_02013000: ; 0x02013000
push {r4, lr}
ldr r1, _02013028 ; =UNK_021C4850
mov r2, #0x3
ldr r1, [r1, #0x24]
ldr r4, [r1, #0x10]
add r0, r4, r0
add r3, r0, #0x0
and r3, r2
beq _02013018
mov r2, #0x4
sub r2, r2, r3
add r0, r0, r2
_02013018:
str r0, [r1, #0x10]
ldr r1, [r1, #0x14]
cmp r0, r1
blo _02013024
bl GF_AssertFail
_02013024:
add r0, r4, #0x0
pop {r4, pc}
.balign 4
_02013028: .word UNK_021C4850
thumb_func_start sub_0201302C
sub_0201302C: ; 0x0201302C
push {r4, lr}
ldr r1, _02013054 ; =UNK_021C4850
mov r2, #0x3
ldr r1, [r1, #0x28]
ldr r4, [r1, #0x10]
add r0, r4, r0
add r3, r0, #0x0
and r3, r2
beq _02013044
mov r2, #0x4
sub r2, r2, r3
add r0, r0, r2
_02013044:
str r0, [r1, #0x10]
ldr r1, [r1, #0x14]
cmp r0, r1
blo _02013050
bl GF_AssertFail
_02013050:
add r0, r4, #0x0
pop {r4, pc}
.balign 4
_02013054: .word UNK_021C4850
thumb_func_start sub_02013058
sub_02013058: ; 0x02013058
push {r4, lr}
ldr r1, _02013080 ; =UNK_021C4850
mov r2, #0x3
ldr r1, [r1, #0x2c]
ldr r4, [r1, #0x10]
add r0, r4, r0
add r3, r0, #0x0
and r3, r2
beq _02013070
mov r2, #0x4
sub r2, r2, r3
add r0, r0, r2
_02013070:
str r0, [r1, #0x10]
ldr r1, [r1, #0x14]
cmp r0, r1
blo _0201307C
bl GF_AssertFail
_0201307C:
add r0, r4, #0x0
pop {r4, pc}
.balign 4
_02013080: .word UNK_021C4850
thumb_func_start sub_02013084
sub_02013084: ; 0x02013084
push {r4, lr}
ldr r1, _020130AC ; =UNK_021C4850
mov r2, #0x3
ldr r1, [r1, #0x30]
ldr r4, [r1, #0x10]
add r0, r4, r0
add r3, r0, #0x0
and r3, r2
beq _0201309C
mov r2, #0x4
sub r2, r2, r3
add r0, r0, r2
_0201309C:
str r0, [r1, #0x10]
ldr r1, [r1, #0x14]
cmp r0, r1
blo _020130A8
bl GF_AssertFail
_020130A8:
add r0, r4, #0x0
pop {r4, pc}
.balign 4
_020130AC: .word UNK_021C4850
thumb_func_start sub_020130B0
sub_020130B0: ; 0x020130B0
push {r4, lr}
ldr r1, _020130D8 ; =UNK_021C4850
mov r2, #0x3
ldr r1, [r1, #0x34]
ldr r4, [r1, #0x10]
add r0, r4, r0
add r3, r0, #0x0
and r3, r2
beq _020130C8
mov r2, #0x4
sub r2, r2, r3
add r0, r0, r2
_020130C8:
str r0, [r1, #0x10]
ldr r1, [r1, #0x14]
cmp r0, r1
blo _020130D4
bl GF_AssertFail
_020130D4:
add r0, r4, #0x0
pop {r4, pc}
.balign 4
_020130D8: .word UNK_021C4850
thumb_func_start sub_020130DC
sub_020130DC: ; 0x020130DC
push {r4, lr}
ldr r1, _02013104 ; =UNK_021C4850
mov r2, #0x3
ldr r1, [r1, #0x38]
ldr r4, [r1, #0x10]
add r0, r4, r0
add r3, r0, #0x0
and r3, r2
beq _020130F4
mov r2, #0x4
sub r2, r2, r3
add r0, r0, r2
_020130F4:
str r0, [r1, #0x10]
ldr r1, [r1, #0x14]
cmp r0, r1
blo _02013100
bl GF_AssertFail
_02013100:
add r0, r4, #0x0
pop {r4, pc}
.balign 4
_02013104: .word UNK_021C4850
thumb_func_start sub_02013108
sub_02013108: ; 0x02013108
push {r4, lr}
ldr r1, _02013130 ; =UNK_021C4850
mov r2, #0x3
ldr r1, [r1, #0x3c]
ldr r4, [r1, #0x10]
add r0, r4, r0
add r3, r0, #0x0
and r3, r2
beq _02013120
mov r2, #0x4
sub r2, r2, r3
add r0, r0, r2
_02013120:
str r0, [r1, #0x10]
ldr r1, [r1, #0x14]
cmp r0, r1
blo _0201312C
bl GF_AssertFail
_0201312C:
add r0, r4, #0x0
pop {r4, pc}
.balign 4
_02013130: .word UNK_021C4850
thumb_func_start sub_02013134
sub_02013134: ; 0x02013134
push {r4, lr}
ldr r1, _0201315C ; =UNK_021C4850
mov r2, #0x3
ldr r1, [r1, #0x40]
ldr r4, [r1, #0x10]
add r0, r4, r0
add r3, r0, #0x0
and r3, r2
beq _0201314C
mov r2, #0x4
sub r2, r2, r3
add r0, r0, r2
_0201314C:
str r0, [r1, #0x10]
ldr r1, [r1, #0x14]
cmp r0, r1
blo _02013158
bl GF_AssertFail
_02013158:
add r0, r4, #0x0
pop {r4, pc}
.balign 4
_0201315C: .word UNK_021C4850
thumb_func_start sub_02013160
sub_02013160: ; 0x02013160
push {r4, lr}
ldr r1, _02013188 ; =UNK_021C4850
mov r2, #0x3
ldr r1, [r1, #0x44]
ldr r4, [r1, #0x10]
add r0, r4, r0
add r3, r0, #0x0
and r3, r2
beq _02013178
mov r2, #0x4
sub r2, r2, r3
add r0, r0, r2
_02013178:
str r0, [r1, #0x10]
ldr r1, [r1, #0x14]
cmp r0, r1
blo _02013184
bl GF_AssertFail
_02013184:
add r0, r4, #0x0
pop {r4, pc}
.balign 4
_02013188: .word UNK_021C4850
thumb_func_start sub_0201318C
sub_0201318C: ; 0x0201318C
ldr r3, _02013190 ; =AllocAndReadWholeNarcMemberByIdPair
bx r3
.balign 4
_02013190: .word AllocAndReadWholeNarcMemberByIdPair
thumb_func_start sub_02013194
sub_02013194: ; 0x02013194
push {r3-r7, lr}
add r5, r0, #0x0
ldr r0, [r5, #0x0]
add r6, r1, #0x0
add r4, r2, #0x0
add r7, r3, #0x0
cmp r0, #0x0
bne _020131A8
bl GF_AssertFail
_020131A8:
ldr r0, [r5, #0x4]
cmp r0, #0x0
beq _020131B2
bl GF_AssertFail
_020131B2:
add r0, r5, #0x0
add r0, #0xd8
strb r4, [r0, #0x0]
mov r0, #0x1
tst r0, r4
beq _020131C8
add r0, r5, #0x0
add r0, #0x58
bl NNS_GfdGetFrmTexVramState
b _020131DE
_020131C8:
mov r0, #0x2
tst r0, r4
beq _020131DE
mov r1, #0x0
add r2, r5, #0x0
add r0, r1, #0x0
_020131D4:
add r1, r1, #0x1
str r0, [r2, #0x58]
add r2, r2, #0x4
cmp r1, #0x10
blt _020131D4
_020131DE:
mov r0, #0x4
tst r0, r4
beq _020131EE
add r0, r5, #0x0
add r0, #0x98
bl NNS_GfdGetFrmPlttVramState
b _02013208
_020131EE:
mov r0, #0x8
tst r0, r4
beq _02013208
mov r2, #0x0
add r3, r5, #0x0
add r1, r2, #0x0
_020131FA:
add r0, r3, #0x0
add r0, #0x98
add r2, r2, #0x1
add r3, r3, #0x4
str r1, [r0, #0x0]
cmp r2, #0x10
blt _020131FA
_02013208:
str r6, [r5, #0x4]
cmp r7, #0x1
bne _02013216
add r0, r5, #0x0
bl sub_02013228
pop {r3-r7, pc}
_02013216:
ldr r0, _02013224 ; =sub_02013268
add r1, r5, #0x0
mov r2, #0x5
bl sub_0200CA98
pop {r3-r7, pc}
nop
_02013224: .word sub_02013268
thumb_func_start sub_02013228
sub_02013228: ; 0x02013228
push {r4, lr}
add r4, r0, #0x0
ldr r0, [r4, #0x0]
ldr r1, [r4, #0x4]
bl sub_0208B128
ldr r0, _02013264 ; =UNK_021C4850
str r4, [r0, #0x0]
ldr r1, [r4, #0x18]
ldr r0, [r4, #0x0]
cmp r1, #0x0
bne _02013246
bl sub_0208AF94
b _0201324A
_02013246:
bl sub_0208B05C
_0201324A:
ldr r1, [r4, #0x1c]
ldr r0, [r4, #0x0]
cmp r1, #0x0
bne _02013258
bl sub_0208AF80
b _0201325C
_02013258:
bl sub_0208AFA8
_0201325C:
ldr r0, _02013264 ; =UNK_021C4850
mov r1, #0x0
str r1, [r0, #0x0]
pop {r4, pc}
.balign 4
_02013264: .word UNK_021C4850
thumb_func_start sub_02013268
sub_02013268: ; 0x02013268
push {r4, lr}
add r4, r0, #0x0
add r0, r1, #0x0
bl sub_02013228
add r0, r4, #0x0
bl SysTask_Destroy
pop {r4, pc}
.balign 4
thumb_func_start sub_0201327C
sub_0201327C: ; 0x0201327C
push {r4, lr}
add r4, r0, #0x0
bne _02013286
bl GF_AssertFail
_02013286:
ldr r0, _020132B8 ; =UNK_021C4850
ldr r0, [r0, #0x0]
cmp r0, #0x0
bne _02013292
bl GF_AssertFail
_02013292:
ldr r0, _020132B8 ; =UNK_021C4850
mov r1, #0x0
ldr r3, [r0, #0x0]
add r2, r3, #0x0
_0201329A:
ldr r0, [r2, #0x58]
cmp r0, #0x0
bne _020132A8
lsl r0, r1, #0x2
add r0, r3, r0
str r4, [r0, #0x58]
pop {r4, pc}
_020132A8:
add r1, r1, #0x1
add r2, r2, #0x4
cmp r1, #0x10
blt _0201329A
bl GF_AssertFail
pop {r4, pc}
nop
_020132B8: .word UNK_021C4850
thumb_func_start sub_020132BC
sub_020132BC: ; 0x020132BC
push {r4, lr}
add r4, r0, #0x0
bne _020132C6
bl GF_AssertFail
_020132C6:
ldr r0, _020132FC ; =UNK_021C4850
ldr r0, [r0, #0x0]
cmp r0, #0x0
bne _020132D2
bl GF_AssertFail
_020132D2:
ldr r0, _020132FC ; =UNK_021C4850
mov r1, #0x0
ldr r3, [r0, #0x0]
add r2, r3, #0x0
_020132DA:
add r0, r2, #0x0
add r0, #0x98
ldr r0, [r0, #0x0]
cmp r0, #0x0
bne _020132EE
lsl r0, r1, #0x2
add r0, r3, r0
add r0, #0x98
str r4, [r0, #0x0]
pop {r4, pc}
_020132EE:
add r1, r1, #0x1
add r2, r2, #0x4
cmp r1, #0x10
blt _020132DA
bl GF_AssertFail
pop {r4, pc}
.balign 4
_020132FC: .word UNK_021C4850
thumb_func_start sub_02013300
sub_02013300: ; 0x02013300
push {r4, lr}
add r4, r0, #0x0
ldr r1, [r4, #0x20]
cmp r1, #0x0
beq _0201331C
add r0, #0xdb
ldrb r0, [r0, #0x0]
bl Camera_ApplyPerspectiveType
ldr r0, [r4, #0x20]
bl Camera_SetStaticPtr
bl Camera_PushLookAtToNNSGlb
_0201331C:
bl NNS_G3dGlbFlushP
ldr r0, [r4, #0x0]
ldr r1, _02013338 ; =NNS_G3dGlb + 0x4C
bl sub_0208AD80
ldr r0, [r4, #0x20]
cmp r0, #0x0
beq _02013332
bl Camera_UnsetStaticPtr
_02013332:
bl NNS_G3dGlbFlushP
pop {r4, pc}
.balign 4
_02013338: .word NNS_G3dGlb + 0x4C
thumb_func_start sub_0201333C
sub_0201333C: ; 0x0201333C
ldr r3, _02013344 ; =0x0208AE48
ldr r0, [r0, #0x0]
bx r3
nop
_02013344: .word sub_0208AE48
thumb_func_start sub_02013348
sub_02013348: ; 0x02013348
mov r0, #0x0
ldr r3, _02013360 ; =UNK_021C4858
add r2, r0, #0x0
_0201334E:
ldr r1, [r3, #0x0]
cmp r1, #0x0
beq _02013356
add r0, r0, #0x1
_02013356:
add r2, r2, #0x1
add r3, r3, #0x4
cmp r2, #0x10
blt _0201334E
bx lr
.balign 4
_02013360: .word UNK_021C4858
thumb_func_start sub_02013364
sub_02013364: ; 0x02013364
push {r4-r6, lr}
mov r4, #0x0
ldr r5, _02013384 ; =UNK_021C4858
add r6, r4, #0x0
_0201336C:
ldr r0, [r5, #0x0]
cmp r0, #0x0
beq _02013378
bl sub_02013300
add r4, r4, #0x1
_02013378:
add r6, r6, #0x1
add r5, r5, #0x4
cmp r6, #0x10
blt _0201336C
add r0, r4, #0x0
pop {r4-r6, pc}
.balign 4
_02013384: .word UNK_021C4858
thumb_func_start sub_02013388
sub_02013388: ; 0x02013388
push {r4-r6, lr}
mov r4, #0x0
ldr r5, _020133A8 ; =UNK_021C4858
add r6, r4, #0x0
_02013390:
ldr r0, [r5, #0x0]
cmp r0, #0x0
beq _0201339C
bl sub_0201333C
add r4, r4, #0x1
_0201339C:
add r6, r6, #0x1
add r5, r5, #0x4
cmp r6, #0x10
blt _02013390
add r0, r4, #0x0
pop {r4-r6, pc}
.balign 4
_020133A8: .word UNK_021C4858
thumb_func_start sub_020133AC
sub_020133AC: ; 0x020133AC
push {r4, lr}
add r4, r0, #0x0
ldr r0, _020133C4 ; =UNK_021C4850
str r3, [r0, #0x4]
ldr r0, [r4, #0x0]
bl sub_0208ACEC
ldr r1, _020133C4 ; =UNK_021C4850
mov r2, #0x0
str r2, [r1, #0x4]
str r0, [r4, #0x8]
pop {r4, pc}
.balign 4
_020133C4: .word UNK_021C4850
thumb_func_start sub_020133C8
sub_020133C8: ; 0x020133C8
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x8]
bx lr
.balign 4
thumb_func_start sub_020133D0
sub_020133D0: ; 0x020133D0
ldr r3, _020133D8 ; =0x0208AC14
ldr r0, [r0, #0x0]
bx r3
nop
_020133D8: .word sub_0208AC14
thumb_func_start sub_020133DC
sub_020133DC: ; 0x020133DC
ldr r3, _020133E4 ; =0x0208AC58
ldr r0, [r0, #0x0]
bx r3
nop
_020133E4: .word sub_0208AC58
thumb_func_start sub_020133E8
sub_020133E8: ; 0x020133E8
ldr r0, [r0, #0xc]
bx lr
thumb_func_start sub_020133EC
sub_020133EC: ; 0x020133EC
add r2, r0, #0x0
add r2, #0x40
add r3, r1, #0x0
ldmia r2!, {r0-r1}
stmia r3!, {r0-r1}
ldr r0, [r2, #0x0]
str r0, [r3, #0x0]
bx lr
thumb_func_start sub_020133FC
sub_020133FC: ; 0x020133FC
push {r3-r5, lr}
add r4, r1, #0x0
add r5, r0, #0x0
add r3, r4, #0x0
add r2, r5, #0x0
ldmia r3!, {r0-r1}
add r2, #0x40
stmia r2!, {r0-r1}
ldr r0, [r3, #0x0]
str r0, [r2, #0x0]
ldr r1, [r5, #0x20]
add r0, r4, #0x0
bl Camera_SetLookAtCamUp
pop {r3-r5, pc}
.balign 4
thumb_func_start sub_0201341C
sub_0201341C: ; 0x0201341C
ldr r0, _02013424 ; =UNK_021C4850
ldr r0, [r0, #0x4]
bx lr
nop
_02013424: .word UNK_021C4850
thumb_func_start sub_02013428
sub_02013428: ; 0x02013428
ldr r2, _02013438 ; =UNK_020ED4E4
add r3, r0, #0x0
ldmia r2!, {r0-r1}
stmia r3!, {r0-r1}
ldr r0, [r2, #0x0]
str r0, [r3, #0x0]
bx lr
nop
_02013438: .word UNK_020ED4E4
thumb_func_start sub_0201343C
sub_0201343C: ; 0x0201343C
ldr r0, [r0, #0x20]
bx lr
thumb_func_start sub_02013440
sub_02013440: ; 0x02013440
add r0, #0xdb
strb r1, [r0, #0x0]
bx lr
.balign 4
thumb_func_start sub_02013448
sub_02013448: ; 0x02013448
add r0, #0xdb
ldrb r0, [r0, #0x0]
bx lr
.balign 4
thumb_func_start sub_02013450
sub_02013450: ; 0x02013450
ldr r0, [r0, #0x20]
ldr r0, [r0, #0x0]
str r1, [r0, #0x10]
bx lr
thumb_func_start sub_02013458
sub_02013458: ; 0x02013458
push {r4-r7}
ldr r0, [r0, #0x20]
add r4, r1, #0x0
ldrh r2, [r0, #0x1c]
cmp r2, #0x0
bne _0201346A
mov r0, #0x0
pop {r4-r7}
bx lr
_0201346A:
mov r1, #0x0
cmp r2, #0x0
ble _020134F4
ldr r3, [r0, #0x18]
ldr r7, _020134FC ; =0x020908DC
ldr r0, _02013500 ; =0x020909A4
_02013476:
cmp r3, #0x0
beq _020134EC
cmp r4, #0x5
bhi _020134E6
add r5, r4, r4
add r5, pc
ldrh r5, [r5, #0x6]
lsl r5, r5, #0x10
asr r5, r5, #0x10
add pc, r5
_0201348A: ; jump table (using 16-bit offset)
.short _02013496 - _0201348A - 2; case 0
.short _020134A2 - _0201348A - 2; case 1
.short _020134AE - _0201348A - 2; case 2
.short _020134BC - _0201348A - 2; case 3
.short _020134CA - _0201348A - 2; case 4
.short _020134D8 - _0201348A - 2; case 5
_02013496:
ldr r5, [r3, #0x0]
cmp r5, r0
bne _020134EC
ldr r0, [r3, #0x4]
pop {r4-r7}
bx lr
_020134A2:
ldr r5, [r3, #0x0]
cmp r5, r7
bne _020134EC
ldr r0, [r3, #0x4]
pop {r4-r7}
bx lr
_020134AE:
ldr r6, [r3, #0x0]
ldr r5, _02013504 ; =0x02090858
cmp r6, r5
bne _020134EC
ldr r0, [r3, #0x4]
pop {r4-r7}
bx lr
_020134BC:
ldr r6, [r3, #0x0]
ldr r5, _02013508 ; =0x02090780
cmp r6, r5
bne _020134EC
ldr r0, [r3, #0x4]
pop {r4-r7}
bx lr
_020134CA:
ldr r6, [r3, #0x0]
ldr r5, _0201350C ; =0x02090664
cmp r6, r5
bne _020134EC
ldr r0, [r3, #0x4]
pop {r4-r7}
bx lr
_020134D8:
ldr r6, [r3, #0x0]
ldr r5, _02013510 ; =0x020905D0
cmp r6, r5
bne _020134EC
ldr r0, [r3, #0x4]
pop {r4-r7}
bx lr
_020134E6:
mov r0, #0x0
pop {r4-r7}
bx lr
_020134EC:
add r1, r1, #0x1
add r3, #0x8
cmp r1, r2
blt _02013476
_020134F4:
mov r0, #0x0
pop {r4-r7}
bx lr
nop
_020134FC: .word sub_020908DC
_02013500: .word sub_020909A4
_02013504: .word sub_02090858
_02013508: .word sub_02090780
_0201350C: .word sub_02090664
_02013510: .word sub_020905D0
thumb_func_start sub_02013514
sub_02013514: ; 0x02013514
push {r4, lr}
add r4, r1, #0x0
mov r1, #0x0
bl sub_02013458
cmp r0, #0x0
beq _0201352E
ldrh r1, [r4, #0x0]
strh r1, [r0, #0x0]
ldrh r1, [r4, #0x2]
strh r1, [r0, #0x2]
ldrh r1, [r4, #0x4]
strh r1, [r0, #0x4]
_0201352E:
pop {r4, pc}
thumb_func_start sub_02013530
sub_02013530: ; 0x02013530
push {r4, lr}
add r4, r1, #0x0
mov r1, #0x2
bl sub_02013458
add r2, r0, #0x0
beq _02013546
ldmia r4!, {r0-r1}
stmia r2!, {r0-r1}
ldr r0, [r4, #0x0]
str r0, [r2, #0x0]
_02013546:
pop {r4, pc}
thumb_func_start sub_02013548
sub_02013548: ; 0x02013548
push {r3-r4, lr}
sub sp, #0xc
add r4, r1, #0x0
mov r1, #0x2
bl sub_02013458
add r2, r0, #0x0
bne _0201356E
add r2, sp, #0x0
mov r0, #0x0
str r0, [r2, #0x0]
str r0, [r2, #0x4]
str r0, [r2, #0x8]
ldmia r2!, {r0-r1}
stmia r4!, {r0-r1}
ldr r0, [r2, #0x0]
add sp, #0xc
str r0, [r4, #0x0]
pop {r3-r4, pc}
_0201356E:
ldmia r2!, {r0-r1}
stmia r4!, {r0-r1}
ldr r0, [r2, #0x0]
str r0, [r4, #0x0]
add sp, #0xc
pop {r3-r4, pc}
.balign 4
thumb_func_start sub_0201357C
sub_0201357C: ; 0x0201357C
push {r4, lr}
add r4, r1, #0x0
mov r1, #0x2
bl sub_02013458
cmp r0, #0x0
beq _02013590
mov r1, #0x0
ldrsh r1, [r4, r1]
strh r1, [r0, #0xc]
_02013590:
pop {r4, pc}
.balign 4
thumb_func_start sub_02013594
sub_02013594: ; 0x02013594
push {r4, lr}
add r4, r1, #0x0
mov r1, #0x2
bl sub_02013458
cmp r0, #0x0
bne _020135A8
mov r0, #0x0
strh r0, [r4, #0x0]
pop {r4, pc}
_020135A8:
mov r1, #0xc
ldrsh r0, [r0, r1]
strh r0, [r4, #0x0]
pop {r4, pc}
thumb_func_start sub_020135B0
sub_020135B0: ; 0x020135B0
push {r4, lr}
add r4, r1, #0x0
mov r1, #0x3
bl sub_02013458
cmp r0, #0x0
beq _020135C2
ldrh r1, [r4, #0x0]
strh r1, [r0, #0x0]
_020135C2:
pop {r4, pc}
thumb_func_start sub_020135C4
sub_020135C4: ; 0x020135C4
push {r4, lr}
add r4, r1, #0x0
mov r1, #0x3
bl sub_02013458
cmp r0, #0x0
bne _020135D8
mov r0, #0x0
strh r0, [r4, #0x0]
pop {r4, pc}
_020135D8:
ldrh r0, [r0, #0x0]
strh r0, [r4, #0x0]
pop {r4, pc}
.balign 4
thumb_func_start sub_020135E0
sub_020135E0: ; 0x020135E0
push {r4, lr}
add r4, r1, #0x0
mov r1, #0x3
bl sub_02013458
cmp r0, #0x0
beq _020135F2
ldrh r1, [r4, #0x0]
strh r1, [r0, #0x2]
_020135F2:
pop {r4, pc}
thumb_func_start sub_020135F4
sub_020135F4: ; 0x020135F4
push {r4, lr}
add r4, r1, #0x0
mov r1, #0x3
bl sub_02013458
cmp r0, #0x0
bne _02013608
mov r0, #0x0
strh r0, [r4, #0x0]
pop {r4, pc}
_02013608:
ldrh r0, [r0, #0x2]
strh r0, [r4, #0x0]
pop {r4, pc}
.balign 4
thumb_func_start sub_02013610
sub_02013610: ; 0x02013610
push {r4, lr}
add r4, r1, #0x0
mov r1, #0x5
bl sub_02013458
add r2, r0, #0x0
beq _02013626
ldmia r4!, {r0-r1}
stmia r2!, {r0-r1}
ldr r0, [r4, #0x0]
str r0, [r2, #0x0]
_02013626:
pop {r4, pc}
thumb_func_start sub_02013628
sub_02013628: ; 0x02013628
push {r3-r4, lr}
sub sp, #0xc
add r4, r1, #0x0
mov r1, #0x5
bl sub_02013458
add r2, r0, #0x0
bne _0201364E
add r2, sp, #0x0
mov r0, #0x0
str r0, [r2, #0x0]
str r0, [r2, #0x4]
str r0, [r2, #0x8]
ldmia r2!, {r0-r1}
stmia r4!, {r0-r1}
ldr r0, [r2, #0x0]
add sp, #0xc
str r0, [r4, #0x0]
pop {r3-r4, pc}
_0201364E:
ldmia r2!, {r0-r1}
stmia r4!, {r0-r1}
ldr r0, [r2, #0x0]
str r0, [r4, #0x0]
add sp, #0xc
pop {r3-r4, pc}
.balign 4
thumb_func_start sub_0201365C
sub_0201365C: ; 0x0201365C
push {r4, lr}
add r4, r1, #0x0
mov r1, #0x5
bl sub_02013458
cmp r0, #0x0
beq _02013670
mov r1, #0x0
ldrsh r1, [r4, r1]
strh r1, [r0, #0xc]
_02013670:
pop {r4, pc}
.balign 4
thumb_func_start sub_02013674
sub_02013674: ; 0x02013674
push {r4, lr}
add r4, r1, #0x0
mov r1, #0x5
bl sub_02013458
cmp r0, #0x0
bne _02013688
mov r0, #0x0
strh r0, [r4, #0x0]
pop {r4, pc}
_02013688:
mov r1, #0xc
ldrsh r0, [r0, r1]
strh r0, [r4, #0x0]
pop {r4, pc}
thumb_func_start ListMenuCursorNew
ListMenuCursorNew: ; 0x02013690
push {r3-r5, lr}
mov r1, #0x8
add r5, r0, #0x0
bl Heap_Alloc
add r4, r0, #0x0
beq _020136B2
ldr r0, _020136B8 ; =0x0001020F
add r1, r5, #0x0
str r0, [r4, #0x0]
mov r0, #0x4
bl String_New
ldr r1, _020136BC ; =UNK_020ED548
str r0, [r4, #0x4]
bl CopyU16ArrayToString
_020136B2:
add r0, r4, #0x0
pop {r3-r5, pc}
nop
_020136B8: .word 0x0001020F
_020136BC: .word UNK_020ED548
thumb_func_start DestroyListMenuCursorObj
DestroyListMenuCursorObj: ; 0x020136C0
push {r4, lr}
add r4, r0, #0x0
bne _020136CA
bl GF_AssertFail
_020136CA:
cmp r4, #0x0
beq _020136DE
ldr r0, [r4, #0x4]
cmp r0, #0x0
beq _020136D8
bl String_Delete
_020136D8:
add r0, r4, #0x0
bl Heap_Free
_020136DE:
pop {r4, pc}
thumb_func_start ListMenuCursorSetColor
ListMenuCursorSetColor: ; 0x020136E0
push {r3-r5, lr}
add r5, r0, #0x0
add r4, r1, #0x0
cmp r5, #0x0
bne _020136EE
bl GF_AssertFail
_020136EE:
cmp r5, #0x0
beq _020136F4
str r4, [r5, #0x0]
_020136F4:
pop {r3-r5, pc}
.balign 4
thumb_func_start ListMenuUpdateCursorObj
ListMenuUpdateCursorObj: ; 0x020136F8
push {r4-r6, lr}
sub sp, #0x10
add r6, r0, #0x0
str r3, [sp, #0x0]
mov r0, #0xff
str r0, [sp, #0x4]
ldr r0, [r6, #0x0]
add r5, r1, #0x0
str r0, [sp, #0x8]
mov r1, #0x0
add r4, r2, #0x0
str r1, [sp, #0xc]
ldr r2, [r6, #0x4]
add r0, r5, #0x0
add r3, r4, #0x0
bl AddTextPrinterParameterized2
add r0, r5, #0x0
bl CopyWindowPixelsToVram_TextMode
add sp, #0x10
pop {r4-r6, pc}