mirror of
https://github.com/pret/pokediamond.git
synced 2026-03-21 17:54:29 -05:00
998 lines
16 KiB
ArmAsm
998 lines
16 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "global.inc"
|
|
|
|
.extern NNS_GfdDefaultFuncAllocTexVram
|
|
.extern NNS_GfdDefaultFuncAllocPlttVram
|
|
.extern NNS_GfdDefaultFuncFreePlttVram
|
|
.extern NNS_GfdDefaultFuncFreeTexVram
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_02020C44
|
|
sub_02020C44: ; 0x02020C44
|
|
push {r3-r7, lr}
|
|
add r4, r1, #0x0
|
|
add r7, r0, #0x0
|
|
add r0, r4, #0x0
|
|
mov r1, #0xc
|
|
bl Heap_Alloc
|
|
add r6, r0, #0x0
|
|
bne _02020C5A
|
|
bl GF_AssertFail
|
|
_02020C5A:
|
|
add r0, r4, #0x0
|
|
lsl r1, r7, #0x3
|
|
bl Heap_Alloc
|
|
str r0, [r6, #0x0]
|
|
cmp r0, #0x0
|
|
bne _02020C6C
|
|
bl GF_AssertFail
|
|
_02020C6C:
|
|
mov r4, #0x0
|
|
cmp r7, #0x0
|
|
ble _02020C84
|
|
add r5, r4, #0x0
|
|
_02020C74:
|
|
ldr r0, [r6, #0x0]
|
|
add r0, r0, r5
|
|
bl sub_02020E78
|
|
add r4, r4, #0x1
|
|
add r5, #0x8
|
|
cmp r4, r7
|
|
blt _02020C74
|
|
_02020C84:
|
|
str r7, [r6, #0x4]
|
|
mov r0, #0x0
|
|
str r0, [r6, #0x8]
|
|
add r0, r6, #0x0
|
|
pop {r3-r7, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02020C90
|
|
sub_02020C90: ; 0x02020C90
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
bne _02020C9A
|
|
bl GF_AssertFail
|
|
_02020C9A:
|
|
add r0, r4, #0x0
|
|
bl sub_02020D9C
|
|
ldr r0, [r4, #0x0]
|
|
bl Heap_Free
|
|
add r0, r4, #0x0
|
|
bl Heap_Free
|
|
pop {r4, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02020CB0
|
|
sub_02020CB0: ; 0x02020CB0
|
|
push {r3-r5, lr}
|
|
add r5, r0, #0x0
|
|
add r4, r1, #0x0
|
|
cmp r5, #0x0
|
|
bne _02020CBE
|
|
bl GF_AssertFail
|
|
_02020CBE:
|
|
add r0, r5, #0x0
|
|
add r1, r4, #0x0
|
|
bl sub_02020DD8
|
|
cmp r0, #0x0
|
|
bne _02020CCE
|
|
mov r0, #0x1
|
|
pop {r3-r5, pc}
|
|
_02020CCE:
|
|
mov r0, #0x0
|
|
pop {r3-r5, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02020CD4
|
|
sub_02020CD4: ; 0x02020CD4
|
|
push {r3-r7, lr}
|
|
add r5, r0, #0x0
|
|
add r7, r1, #0x0
|
|
add r6, r2, #0x0
|
|
cmp r5, #0x0
|
|
bne _02020CE4
|
|
bl GF_AssertFail
|
|
_02020CE4:
|
|
add r0, r5, #0x0
|
|
bl sub_02020E48
|
|
add r4, r0, #0x0
|
|
bne _02020CF2
|
|
bl GF_AssertFail
|
|
_02020CF2:
|
|
add r0, r5, #0x0
|
|
add r1, r6, #0x0
|
|
bl sub_02020CB0
|
|
cmp r0, #0x1
|
|
beq _02020D02
|
|
bl GF_AssertFail
|
|
_02020D02:
|
|
str r7, [r4, #0x4]
|
|
str r6, [r4, #0x0]
|
|
ldr r0, [r5, #0x8]
|
|
add r0, r0, #0x1
|
|
str r0, [r5, #0x8]
|
|
add r0, r4, #0x0
|
|
pop {r3-r7, pc}
|
|
|
|
thumb_func_start sub_02020D10
|
|
sub_02020D10: ; 0x02020D10
|
|
push {r3-r7, lr}
|
|
add r5, r0, #0x0
|
|
add r6, r1, #0x0
|
|
add r7, r2, #0x0
|
|
str r3, [sp, #0x0]
|
|
cmp r5, #0x0
|
|
bne _02020D22
|
|
bl GF_AssertFail
|
|
_02020D22:
|
|
cmp r6, #0x0
|
|
bne _02020D2A
|
|
bl GF_AssertFail
|
|
_02020D2A:
|
|
add r0, r5, #0x0
|
|
bl sub_02020E48
|
|
add r4, r0, #0x0
|
|
bne _02020D38
|
|
bl GF_AssertFail
|
|
_02020D38:
|
|
add r0, r5, #0x0
|
|
add r1, r7, #0x0
|
|
bl sub_02020CB0
|
|
cmp r0, #0x1
|
|
beq _02020D48
|
|
bl GF_AssertFail
|
|
_02020D48:
|
|
ldr r0, [sp, #0x0]
|
|
add r1, r6, #0x0
|
|
bl AllocAndReadFile
|
|
str r0, [r4, #0x4]
|
|
cmp r0, #0x0
|
|
bne _02020D5A
|
|
bl GF_AssertFail
|
|
_02020D5A:
|
|
str r7, [r4, #0x0]
|
|
ldr r0, [r5, #0x8]
|
|
add r0, r0, #0x1
|
|
str r0, [r5, #0x8]
|
|
add r0, r4, #0x0
|
|
pop {r3-r7, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02020D68
|
|
sub_02020D68: ; 0x02020D68
|
|
push {r3-r5, lr}
|
|
add r5, r0, #0x0
|
|
add r4, r1, #0x0
|
|
cmp r5, #0x0
|
|
bne _02020D76
|
|
bl GF_AssertFail
|
|
_02020D76:
|
|
cmp r4, #0x0
|
|
bne _02020D7E
|
|
bl GF_AssertFail
|
|
_02020D7E:
|
|
ldr r0, [r4, #0x4]
|
|
cmp r0, #0x0
|
|
beq _02020D8C
|
|
bl Heap_Free
|
|
mov r0, #0x0
|
|
str r0, [r4, #0x4]
|
|
_02020D8C:
|
|
mov r0, #0x0
|
|
mvn r0, r0
|
|
str r0, [r4, #0x0]
|
|
ldr r0, [r5, #0x8]
|
|
sub r0, r0, #0x1
|
|
str r0, [r5, #0x8]
|
|
pop {r3-r5, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02020D9C
|
|
sub_02020D9C: ; 0x02020D9C
|
|
push {r3-r7, lr}
|
|
add r5, r0, #0x0
|
|
bne _02020DA6
|
|
bl GF_AssertFail
|
|
_02020DA6:
|
|
ldr r0, [r5, #0x0]
|
|
cmp r0, #0x0
|
|
bne _02020DB0
|
|
bl GF_AssertFail
|
|
_02020DB0:
|
|
ldr r0, [r5, #0x4]
|
|
mov r6, #0x0
|
|
cmp r0, #0x0
|
|
ble _02020DD6
|
|
add r4, r6, #0x0
|
|
sub r7, r6, #0x1
|
|
_02020DBC:
|
|
ldr r1, [r5, #0x0]
|
|
ldr r0, [r1, r4]
|
|
cmp r0, r7
|
|
beq _02020DCC
|
|
add r0, r5, #0x0
|
|
add r1, r1, r4
|
|
bl sub_02020D68
|
|
_02020DCC:
|
|
ldr r0, [r5, #0x4]
|
|
add r6, r6, #0x1
|
|
add r4, #0x8
|
|
cmp r6, r0
|
|
blt _02020DBC
|
|
_02020DD6:
|
|
pop {r3-r7, pc}
|
|
|
|
thumb_func_start sub_02020DD8
|
|
sub_02020DD8: ; 0x02020DD8
|
|
push {r4-r6, lr}
|
|
add r5, r0, #0x0
|
|
add r4, r1, #0x0
|
|
cmp r5, #0x0
|
|
bne _02020DE6
|
|
bl GF_AssertFail
|
|
_02020DE6:
|
|
ldr r6, [r5, #0x4]
|
|
mov r1, #0x0
|
|
cmp r6, #0x0
|
|
ble _02020E06
|
|
ldr r3, [r5, #0x0]
|
|
add r2, r3, #0x0
|
|
_02020DF2:
|
|
ldr r0, [r2, #0x0]
|
|
cmp r4, r0
|
|
bne _02020DFE
|
|
lsl r0, r1, #0x3
|
|
add r0, r3, r0
|
|
pop {r4-r6, pc}
|
|
_02020DFE:
|
|
add r1, r1, #0x1
|
|
add r2, #0x8
|
|
cmp r1, r6
|
|
blt _02020DF2
|
|
_02020E06:
|
|
mov r0, #0x0
|
|
pop {r4-r6, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02020E0C
|
|
sub_02020E0C: ; 0x02020E0C
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
bne _02020E16
|
|
bl GF_AssertFail
|
|
_02020E16:
|
|
ldr r0, [r4, #0x4]
|
|
pop {r4, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02020E1C
|
|
sub_02020E1C: ; 0x02020E1C
|
|
push {r3-r5, lr}
|
|
add r5, r0, #0x0
|
|
add r4, r1, #0x0
|
|
cmp r5, #0x0
|
|
bne _02020E2A
|
|
bl GF_AssertFail
|
|
_02020E2A:
|
|
ldr r0, [r5, #0x4]
|
|
cmp r0, #0x0
|
|
beq _02020E34
|
|
bl Heap_Free
|
|
_02020E34:
|
|
str r4, [r5, #0x4]
|
|
pop {r3-r5, pc}
|
|
|
|
thumb_func_start sub_02020E38
|
|
sub_02020E38: ; 0x02020E38
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
bne _02020E42
|
|
bl GF_AssertFail
|
|
_02020E42:
|
|
ldr r0, [r4, #0x0]
|
|
pop {r4, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02020E48
|
|
sub_02020E48: ; 0x02020E48
|
|
push {r3-r5, lr}
|
|
add r4, r0, #0x0
|
|
bne _02020E52
|
|
bl GF_AssertFail
|
|
_02020E52:
|
|
ldr r5, [r4, #0x4]
|
|
mov r2, #0x0
|
|
cmp r5, #0x0
|
|
ble _02020E74
|
|
ldr r4, [r4, #0x0]
|
|
sub r0, r2, #0x1
|
|
add r3, r4, #0x0
|
|
_02020E60:
|
|
ldr r1, [r3, #0x0]
|
|
cmp r1, r0
|
|
bne _02020E6C
|
|
lsl r0, r2, #0x3
|
|
add r0, r4, r0
|
|
pop {r3-r5, pc}
|
|
_02020E6C:
|
|
add r2, r2, #0x1
|
|
add r3, #0x8
|
|
cmp r2, r5
|
|
blt _02020E60
|
|
_02020E74:
|
|
mov r0, #0x0
|
|
pop {r3-r5, pc}
|
|
|
|
thumb_func_start sub_02020E78
|
|
sub_02020E78: ; 0x02020E78
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
bne _02020E82
|
|
bl GF_AssertFail
|
|
_02020E82:
|
|
mov r0, #0x0
|
|
mvn r0, r0
|
|
str r0, [r4, #0x0]
|
|
mov r0, #0x0
|
|
str r0, [r4, #0x4]
|
|
pop {r4, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02020E90
|
|
sub_02020E90: ; 0x02020E90
|
|
push {r3-r7, lr}
|
|
add r4, r1, #0x0
|
|
add r6, r0, #0x0
|
|
add r0, r4, #0x0
|
|
mov r1, #0x8
|
|
bl Heap_Alloc
|
|
add r7, r0, #0x0
|
|
add r0, r6, #0x0
|
|
add r1, r4, #0x0
|
|
bl sub_02020C44
|
|
mov r1, #0x18
|
|
str r0, [r7, #0x0]
|
|
add r0, r4, #0x0
|
|
mul r1, r6
|
|
bl Heap_Alloc
|
|
mov r4, #0x0
|
|
str r0, [r7, #0x4]
|
|
cmp r6, #0x0
|
|
ble _02020ECE
|
|
add r5, r4, #0x0
|
|
_02020EBE:
|
|
ldr r0, [r7, #0x4]
|
|
add r0, r0, r5
|
|
bl sub_0202120C
|
|
add r4, r4, #0x1
|
|
add r5, #0x18
|
|
cmp r4, r6
|
|
blt _02020EBE
|
|
_02020ECE:
|
|
add r0, r7, #0x0
|
|
pop {r3-r7, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02020ED4
|
|
sub_02020ED4: ; 0x02020ED4
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
bne _02020EDE
|
|
bl GF_AssertFail
|
|
_02020EDE:
|
|
add r0, r4, #0x0
|
|
bl sub_02021010
|
|
ldr r0, [r4, #0x0]
|
|
bl sub_02020C90
|
|
ldr r0, [r4, #0x4]
|
|
bl Heap_Free
|
|
add r0, r4, #0x0
|
|
bl Heap_Free
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_02020EF8
|
|
sub_02020EF8: ; 0x02020EF8
|
|
push {r3-r5, lr}
|
|
add r5, r0, #0x0
|
|
add r4, r1, #0x0
|
|
cmp r5, #0x0
|
|
bne _02020F06
|
|
bl GF_AssertFail
|
|
_02020F06:
|
|
ldr r0, [r5, #0x0]
|
|
add r1, r4, #0x0
|
|
bl sub_02020CB0
|
|
pop {r3-r5, pc}
|
|
|
|
thumb_func_start sub_02020F10
|
|
sub_02020F10: ; 0x02020F10
|
|
push {r3-r7, lr}
|
|
add r5, r0, #0x0
|
|
add r6, r1, #0x0
|
|
add r7, r3, #0x0
|
|
str r2, [sp, #0x0]
|
|
cmp r5, #0x0
|
|
bne _02020F22
|
|
bl GF_AssertFail
|
|
_02020F22:
|
|
add r0, r5, #0x0
|
|
bl sub_020211DC
|
|
add r4, r0, #0x0
|
|
strh r7, [r4, #0x16]
|
|
ldrh r0, [r4, #0x16]
|
|
cmp r0, #0x1
|
|
bne _02020F40
|
|
ldr r1, [sp, #0x18]
|
|
add r0, r6, #0x0
|
|
bl sub_02021310
|
|
add r1, r0, #0x0
|
|
str r6, [r4, #0x10]
|
|
b _02020F46
|
|
_02020F40:
|
|
mov r0, #0x0
|
|
add r1, r6, #0x0
|
|
str r0, [r4, #0x10]
|
|
_02020F46:
|
|
ldr r0, [r5, #0x0]
|
|
ldr r2, [sp, #0x0]
|
|
bl sub_02020CD4
|
|
str r0, [r4, #0x0]
|
|
add r0, r4, #0x0
|
|
pop {r3-r7, pc}
|
|
|
|
thumb_func_start sub_02020F54
|
|
sub_02020F54: ; 0x02020F54
|
|
push {r3-r4, lr}
|
|
sub sp, #0x4
|
|
ldr r4, [sp, #0x10]
|
|
str r4, [sp, #0x0]
|
|
bl sub_02020F10
|
|
add r4, r0, #0x0
|
|
bl sub_02021174
|
|
add r0, r4, #0x0
|
|
add sp, #0x4
|
|
pop {r3-r4, pc}
|
|
|
|
thumb_func_start sub_02020F6C
|
|
sub_02020F6C: ; 0x02020F6C
|
|
push {r3-r5, lr}
|
|
add r5, r0, #0x0
|
|
add r4, r1, #0x0
|
|
cmp r5, #0x0
|
|
bne _02020F7A
|
|
bl GF_AssertFail
|
|
_02020F7A:
|
|
cmp r4, #0x0
|
|
bne _02020F82
|
|
bl GF_AssertFail
|
|
_02020F82:
|
|
ldrh r0, [r4, #0x16]
|
|
cmp r0, #0x1
|
|
bne _02020F98
|
|
ldrh r0, [r4, #0x14]
|
|
cmp r0, #0x0
|
|
bne _02020F98
|
|
ldr r0, [r4, #0x10]
|
|
bl Heap_Free
|
|
mov r0, #0x0
|
|
strh r0, [r4, #0x16]
|
|
_02020F98:
|
|
ldr r1, [r4, #0x0]
|
|
cmp r1, #0x0
|
|
beq _02020FA4
|
|
ldr r0, [r5, #0x0]
|
|
bl sub_02020D68
|
|
_02020FA4:
|
|
ldr r0, [r4, #0x4]
|
|
cmp r0, #0x0
|
|
beq _02020FB8
|
|
ldr r1, _02020FE8 ; =NNS_GfdDefaultFuncFreeTexVram
|
|
ldr r1, [r1, #0x0]
|
|
blx r1
|
|
cmp r0, #0x0
|
|
beq _02020FB8
|
|
bl GF_AssertFail
|
|
_02020FB8:
|
|
ldr r0, [r4, #0x8]
|
|
cmp r0, #0x0
|
|
beq _02020FCC
|
|
ldr r1, _02020FE8 ; =NNS_GfdDefaultFuncFreeTexVram
|
|
ldr r1, [r1, #0x0]
|
|
blx r1
|
|
cmp r0, #0x0
|
|
beq _02020FCC
|
|
bl GF_AssertFail
|
|
_02020FCC:
|
|
ldr r0, [r4, #0xc]
|
|
cmp r0, #0x0
|
|
beq _02020FE0
|
|
ldr r1, _02020FEC ; =NNS_GfdDefaultFuncFreePlttVram
|
|
ldr r1, [r1, #0x0]
|
|
blx r1
|
|
cmp r0, #0x0
|
|
beq _02020FE0
|
|
bl GF_AssertFail
|
|
_02020FE0:
|
|
add r0, r4, #0x0
|
|
bl sub_0202120C
|
|
pop {r3-r5, pc}
|
|
.balign 4
|
|
_02020FE8: .word NNS_GfdDefaultFuncFreeTexVram
|
|
_02020FEC: .word NNS_GfdDefaultFuncFreePlttVram
|
|
|
|
thumb_func_start sub_02020FF0
|
|
sub_02020FF0: ; 0x02020FF0
|
|
push {r3-r5, lr}
|
|
add r5, r0, #0x0
|
|
add r4, r1, #0x0
|
|
cmp r5, #0x0
|
|
bne _02020FFE
|
|
bl GF_AssertFail
|
|
_02020FFE:
|
|
add r0, r5, #0x0
|
|
add r1, r4, #0x0
|
|
bl sub_02021050
|
|
add r1, r0, #0x0
|
|
add r0, r5, #0x0
|
|
bl sub_02020F6C
|
|
pop {r3-r5, pc}
|
|
|
|
thumb_func_start sub_02021010
|
|
sub_02021010: ; 0x02021010
|
|
push {r4-r6, lr}
|
|
add r5, r0, #0x0
|
|
bne _0202101A
|
|
bl GF_AssertFail
|
|
_0202101A:
|
|
ldr r0, [r5, #0x4]
|
|
cmp r0, #0x0
|
|
bne _02021024
|
|
bl GF_AssertFail
|
|
_02021024:
|
|
ldr r0, [r5, #0x0]
|
|
mov r6, #0x0
|
|
ldr r0, [r0, #0x4]
|
|
cmp r0, #0x0
|
|
ble _0202104C
|
|
add r4, r6, #0x0
|
|
_02021030:
|
|
ldr r1, [r5, #0x4]
|
|
ldr r0, [r1, r4]
|
|
cmp r0, #0x0
|
|
beq _02021040
|
|
add r0, r5, #0x0
|
|
add r1, r1, r4
|
|
bl sub_02020F6C
|
|
_02021040:
|
|
ldr r0, [r5, #0x0]
|
|
add r6, r6, #0x1
|
|
ldr r0, [r0, #0x4]
|
|
add r4, #0x18
|
|
cmp r6, r0
|
|
blt _02021030
|
|
_0202104C:
|
|
pop {r4-r6, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02021050
|
|
sub_02021050: ; 0x02021050
|
|
push {r3-r7, lr}
|
|
add r6, r0, #0x0
|
|
add r7, r1, #0x0
|
|
cmp r6, #0x0
|
|
bne _0202105E
|
|
bl GF_AssertFail
|
|
_0202105E:
|
|
ldr r0, [r6, #0x0]
|
|
mov r4, #0x0
|
|
ldr r0, [r0, #0x4]
|
|
cmp r0, #0x0
|
|
ble _02021092
|
|
add r5, r4, #0x0
|
|
_0202106A:
|
|
ldr r1, [r6, #0x4]
|
|
ldr r0, [r1, r5]
|
|
cmp r0, #0x0
|
|
beq _02021086
|
|
add r0, r1, r5
|
|
bl sub_02021098
|
|
cmp r0, r7
|
|
bne _02021086
|
|
mov r0, #0x18
|
|
ldr r1, [r6, #0x4]
|
|
mul r0, r4
|
|
add r0, r1, r0
|
|
pop {r3-r7, pc}
|
|
_02021086:
|
|
ldr r0, [r6, #0x0]
|
|
add r4, r4, #0x1
|
|
ldr r0, [r0, #0x4]
|
|
add r5, #0x18
|
|
cmp r4, r0
|
|
blt _0202106A
|
|
_02021092:
|
|
mov r0, #0x0
|
|
pop {r3-r7, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02021098
|
|
sub_02021098: ; 0x02021098
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
bne _020210A2
|
|
bl GF_AssertFail
|
|
_020210A2:
|
|
ldr r0, [r4, #0x0]
|
|
bl sub_02020E38
|
|
pop {r4, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_020210AC
|
|
sub_020210AC: ; 0x020210AC
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
bne _020210B6
|
|
bl GF_AssertFail
|
|
_020210B6:
|
|
add r0, r4, #0x0
|
|
bl sub_02021220
|
|
pop {r4, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_020210C0
|
|
sub_020210C0: ; 0x020210C0
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
bne _020210CA
|
|
bl GF_AssertFail
|
|
_020210CA:
|
|
ldrh r0, [r4, #0x14]
|
|
cmp r0, #0x0
|
|
beq _020210D4
|
|
bl GF_AssertFail
|
|
_020210D4:
|
|
ldr r0, [r4, #0xc]
|
|
cmp r0, #0x0
|
|
bne _020210E0
|
|
bl GF_AssertFail
|
|
pop {r4, pc}
|
|
_020210E0:
|
|
add r0, r4, #0x0
|
|
bl sub_02021230
|
|
add r1, r4, #0x0
|
|
bl sub_020212B8
|
|
pop {r4, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_020210F0
|
|
sub_020210F0: ; 0x020210F0
|
|
push {r3-r5, lr}
|
|
add r5, r0, #0x0
|
|
add r4, r1, #0x0
|
|
cmp r5, #0x0
|
|
bne _020210FE
|
|
bl GF_AssertFail
|
|
_020210FE:
|
|
add r0, r5, #0x0
|
|
add r1, r4, #0x0
|
|
bl sub_02021050
|
|
bl sub_020210C0
|
|
pop {r3-r5, pc}
|
|
|
|
thumb_func_start sub_0202110C
|
|
sub_0202110C: ; 0x0202110C
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
bne _02021116
|
|
bl GF_AssertFail
|
|
_02021116:
|
|
ldrh r0, [r4, #0x16]
|
|
cmp r0, #0x0
|
|
bne _02021122
|
|
bl GF_AssertFail
|
|
pop {r4, pc}
|
|
_02021122:
|
|
ldrh r0, [r4, #0x14]
|
|
cmp r0, #0x0
|
|
beq _0202112E
|
|
bl GF_AssertFail
|
|
pop {r4, pc}
|
|
_0202112E:
|
|
add r0, r4, #0x0
|
|
bl sub_02021230
|
|
bl sub_020212F8
|
|
add r0, r4, #0x0
|
|
bl sub_02021220
|
|
ldr r1, [r4, #0x4]
|
|
ldr r2, [r4, #0x8]
|
|
ldr r3, [r4, #0xc]
|
|
bl sub_020212E4
|
|
ldr r0, [r4, #0x10]
|
|
bl Heap_Free
|
|
mov r0, #0x0
|
|
str r0, [r4, #0x10]
|
|
mov r0, #0x1
|
|
strh r0, [r4, #0x14]
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_02021158
|
|
sub_02021158: ; 0x02021158
|
|
push {r3-r5, lr}
|
|
add r5, r0, #0x0
|
|
add r4, r1, #0x0
|
|
cmp r5, #0x0
|
|
bne _02021166
|
|
bl GF_AssertFail
|
|
_02021166:
|
|
add r0, r5, #0x0
|
|
add r1, r4, #0x0
|
|
bl sub_02021050
|
|
bl sub_0202110C
|
|
pop {r3-r5, pc}
|
|
|
|
thumb_func_start sub_02021174
|
|
sub_02021174: ; 0x02021174
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
bne _0202117E
|
|
bl GF_AssertFail
|
|
_0202117E:
|
|
ldrh r0, [r4, #0x14]
|
|
cmp r0, #0x0
|
|
beq _02021188
|
|
bl GF_AssertFail
|
|
_02021188:
|
|
ldr r0, [r4, #0xc]
|
|
cmp r0, #0x0
|
|
beq _02021194
|
|
bl GF_AssertFail
|
|
pop {r4, pc}
|
|
_02021194:
|
|
add r0, r4, #0x0
|
|
bl sub_02021230
|
|
add r2, r4, #0x0
|
|
add r1, r4, #0x4
|
|
add r4, #0xc
|
|
add r2, #0x8
|
|
add r3, r4, #0x0
|
|
bl sub_02021248
|
|
pop {r4, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_020211AC
|
|
sub_020211AC: ; 0x020211AC
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
bne _020211B6
|
|
bl GF_AssertFail
|
|
_020211B6:
|
|
ldr r0, [r4, #0x4]
|
|
pop {r4, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_020211BC
|
|
sub_020211BC: ; 0x020211BC
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
bne _020211C6
|
|
bl GF_AssertFail
|
|
_020211C6:
|
|
ldr r0, [r4, #0x8]
|
|
pop {r4, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_020211CC
|
|
sub_020211CC: ; 0x020211CC
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
bne _020211D6
|
|
bl GF_AssertFail
|
|
_020211D6:
|
|
ldr r0, [r4, #0xc]
|
|
pop {r4, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_020211DC
|
|
sub_020211DC: ; 0x020211DC
|
|
push {r3-r4}
|
|
ldr r1, [r0, #0x0]
|
|
mov r2, #0x0
|
|
ldr r4, [r1, #0x4]
|
|
cmp r4, #0x0
|
|
ble _02021204
|
|
ldr r3, [r0, #0x4]
|
|
_020211EA:
|
|
ldr r1, [r3, #0x0]
|
|
cmp r1, #0x0
|
|
bne _020211FC
|
|
ldr r1, [r0, #0x4]
|
|
mov r0, #0x18
|
|
mul r0, r2
|
|
add r0, r1, r0
|
|
pop {r3-r4}
|
|
bx lr
|
|
_020211FC:
|
|
add r2, r2, #0x1
|
|
add r3, #0x18
|
|
cmp r2, r4
|
|
blt _020211EA
|
|
_02021204:
|
|
mov r0, #0x0
|
|
pop {r3-r4}
|
|
bx lr
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0202120C
|
|
sub_0202120C: ; 0x0202120C
|
|
mov r1, #0x0
|
|
str r1, [r0, #0x0]
|
|
str r1, [r0, #0x4]
|
|
str r1, [r0, #0x8]
|
|
str r1, [r0, #0xc]
|
|
strh r1, [r0, #0x14]
|
|
str r1, [r0, #0x10]
|
|
strh r1, [r0, #0x14]
|
|
bx lr
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02021220
|
|
sub_02021220: ; 0x02021220
|
|
push {r3, lr}
|
|
ldr r0, [r0, #0x0]
|
|
bl sub_02020E0C
|
|
bl NNS_G3dGetTex
|
|
pop {r3, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02021230
|
|
sub_02021230: ; 0x02021230
|
|
push {r3, lr}
|
|
ldrh r1, [r0, #0x16]
|
|
cmp r1, #0x0
|
|
bne _02021240
|
|
ldr r0, [r0, #0x0]
|
|
bl sub_02020E0C
|
|
b _02021242
|
|
_02021240:
|
|
ldr r0, [r0, #0x10]
|
|
_02021242:
|
|
bl NNS_G3dGetTex
|
|
pop {r3, pc}
|
|
|
|
thumb_func_start sub_02021248
|
|
sub_02021248: ; 0x02021248
|
|
push {r4-r7, lr}
|
|
sub sp, #0xc
|
|
add r5, r0, #0x0
|
|
str r1, [sp, #0x0]
|
|
str r2, [sp, #0x4]
|
|
str r3, [sp, #0x8]
|
|
bl NNS_G3dTexGetRequiredSize
|
|
add r7, r0, #0x0
|
|
add r0, r5, #0x0
|
|
bl NNS_G3dTex4x4GetRequiredSize
|
|
add r6, r0, #0x0
|
|
add r0, r5, #0x0
|
|
bl NNS_G3dPlttGetRequiredSize
|
|
add r4, r0, #0x0
|
|
cmp r7, #0x0
|
|
beq _0202127E
|
|
ldr r3, _020212B0 ; =NNS_GfdDefaultFuncAllocTexVram
|
|
mov r1, #0x0
|
|
ldr r3, [r3, #0x0]
|
|
add r0, r7, #0x0
|
|
add r2, r1, #0x0
|
|
blx r3
|
|
ldr r1, [sp, #0x0]
|
|
str r0, [r1, #0x0]
|
|
_0202127E:
|
|
cmp r6, #0x0
|
|
beq _02021292
|
|
ldr r3, _020212B0 ; =NNS_GfdDefaultFuncAllocTexVram
|
|
add r0, r6, #0x0
|
|
ldr r3, [r3, #0x0]
|
|
mov r1, #0x1
|
|
mov r2, #0x0
|
|
blx r3
|
|
ldr r1, [sp, #0x4]
|
|
str r0, [r1, #0x0]
|
|
_02021292:
|
|
cmp r4, #0x0
|
|
beq _020212AC
|
|
ldr r3, _020212B4 ; =NNS_GfdDefaultFuncAllocPlttVram
|
|
mov r1, #0x2
|
|
ldrh r2, [r5, #0x20]
|
|
lsl r1, r1, #0xe
|
|
ldr r3, [r3, #0x0]
|
|
and r1, r2
|
|
add r0, r4, #0x0
|
|
mov r2, #0x0
|
|
blx r3
|
|
ldr r1, [sp, #0x8]
|
|
str r0, [r1, #0x0]
|
|
_020212AC:
|
|
add sp, #0xc
|
|
pop {r4-r7, pc}
|
|
.balign 4
|
|
_020212B0: .word NNS_GfdDefaultFuncAllocTexVram
|
|
_020212B4: .word NNS_GfdDefaultFuncAllocPlttVram
|
|
|
|
thumb_func_start sub_020212B8
|
|
sub_020212B8: ; 0x020212B8
|
|
push {r4, lr}
|
|
add r3, r1, #0x0
|
|
ldr r1, [r3, #0x4]
|
|
ldr r2, [r3, #0x8]
|
|
ldr r3, [r3, #0xc]
|
|
add r4, r0, #0x0
|
|
bl sub_020212E4
|
|
ldr r1, [r4, #0x4]
|
|
add r0, r4, #0x0
|
|
bl DC_FlushRange
|
|
add r0, r4, #0x0
|
|
mov r1, #0x1
|
|
bl NNS_G3dTexLoad
|
|
add r0, r4, #0x0
|
|
mov r1, #0x1
|
|
bl NNS_G3dPlttLoad
|
|
pop {r4, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_020212E4
|
|
sub_020212E4: ; 0x020212E4
|
|
push {r3-r5, lr}
|
|
add r5, r0, #0x0
|
|
add r4, r3, #0x0
|
|
bl NNS_G3dTexSetTexKey
|
|
add r0, r5, #0x0
|
|
add r1, r4, #0x0
|
|
bl NNS_G3dPlttSetPlttKey
|
|
pop {r3-r5, pc}
|
|
|
|
thumb_func_start sub_020212F8
|
|
sub_020212F8: ; 0x020212F8
|
|
push {r4, lr}
|
|
sub sp, #0x8
|
|
add r4, r0, #0x0
|
|
add r1, sp, #0x4
|
|
add r2, sp, #0x0
|
|
bl NNS_G3dTexReleaseTexKey
|
|
add r0, r4, #0x0
|
|
bl NNS_G3dPlttReleasePlttKey
|
|
add sp, #0x8
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_02021310
|
|
sub_02021310: ; 0x02021310
|
|
push {r4-r6, lr}
|
|
add r6, r0, #0x0
|
|
add r4, r1, #0x0
|
|
bl sub_02021334
|
|
add r5, r0, #0x0
|
|
add r0, r4, #0x0
|
|
add r1, r5, #0x0
|
|
bl Heap_Alloc
|
|
add r1, r6, #0x0
|
|
add r2, r5, #0x0
|
|
add r4, r0, #0x0
|
|
bl memcpy
|
|
add r0, r4, #0x0
|
|
pop {r4-r6, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02021334
|
|
sub_02021334: ; 0x02021334
|
|
push {r3-r5, lr}
|
|
add r5, r0, #0x0
|
|
bl NNS_G3dGetTex
|
|
add r4, r0, #0x0
|
|
bne _02021344
|
|
bl GF_AssertFail
|
|
_02021344:
|
|
ldr r0, [r4, #0x14]
|
|
add r0, r4, r0
|
|
sub r0, r0, r5
|
|
pop {r3-r5, pc}
|