mirror of
https://github.com/pret/pokediamond.git
synced 2026-03-21 17:54:29 -05:00
924 lines
15 KiB
ArmAsm
924 lines
15 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "global.inc"
|
|
|
|
.section .bss
|
|
|
|
.global UNK_021C5998
|
|
UNK_021C5998: ; 0x021C5998
|
|
.space 0x4
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_0201E00C
|
|
sub_0201E00C: ; 0x0201E00C
|
|
push {r3-r7, lr}
|
|
add r6, r0, #0x0
|
|
ldr r0, _0201E064 ; =UNK_021C5998
|
|
add r4, r1, #0x0
|
|
ldr r0, [r0, #0x0]
|
|
cmp r0, #0x0
|
|
bne _0201E060
|
|
add r0, r4, #0x0
|
|
mov r1, #0x28
|
|
bl Heap_Alloc
|
|
add r1, r0, #0x0
|
|
ldr r0, _0201E064 ; =UNK_021C5998
|
|
mov r2, #0x28
|
|
str r1, [r0, #0x0]
|
|
mov r0, #0x0
|
|
bl MIi_CpuClear32
|
|
ldr r0, _0201E064 ; =UNK_021C5998
|
|
mov r1, #0x30
|
|
ldr r0, [r0, #0x0]
|
|
mul r1, r6
|
|
str r6, [r0, #0x4]
|
|
add r0, r4, #0x0
|
|
bl Heap_Alloc
|
|
ldr r7, _0201E064 ; =UNK_021C5998
|
|
mov r4, #0x0
|
|
ldr r1, [r7, #0x0]
|
|
cmp r6, #0x0
|
|
str r0, [r1, #0x0]
|
|
ble _0201E060
|
|
add r5, r4, #0x0
|
|
_0201E04E:
|
|
ldr r0, [r7, #0x0]
|
|
ldr r0, [r0, #0x0]
|
|
add r0, r0, r5
|
|
bl sub_0201E2F8
|
|
add r4, r4, #0x1
|
|
add r5, #0x30
|
|
cmp r4, r6
|
|
blt _0201E04E
|
|
_0201E060:
|
|
pop {r3-r7, pc}
|
|
nop
|
|
_0201E064: .word UNK_021C5998
|
|
|
|
thumb_func_start sub_0201E068
|
|
sub_0201E068: ; 0x0201E068
|
|
cmp r1, #0x1
|
|
bne _0201E078
|
|
ldr r1, _0201E088 ; =UNK_021C5998
|
|
ldr r2, [r1, #0x0]
|
|
ldrh r1, [r2, #0x24]
|
|
orr r0, r1
|
|
strh r0, [r2, #0x24]
|
|
bx lr
|
|
_0201E078:
|
|
cmp r1, #0x2
|
|
bne _0201E086
|
|
ldr r1, _0201E088 ; =UNK_021C5998
|
|
ldr r2, [r1, #0x0]
|
|
ldrh r1, [r2, #0x26]
|
|
orr r0, r1
|
|
strh r0, [r2, #0x26]
|
|
_0201E086:
|
|
bx lr
|
|
.balign 4
|
|
_0201E088: .word UNK_021C5998
|
|
|
|
thumb_func_start sub_0201E08C
|
|
sub_0201E08C: ; 0x0201E08C
|
|
push {r3, lr}
|
|
ldr r0, _0201E0B4 ; =UNK_021C5998
|
|
ldr r0, [r0, #0x0]
|
|
cmp r0, #0x0
|
|
beq _0201E0B2
|
|
bl sub_0201E1F0
|
|
ldr r0, _0201E0B4 ; =UNK_021C5998
|
|
ldr r0, [r0, #0x0]
|
|
ldr r0, [r0, #0x0]
|
|
bl Heap_Free
|
|
ldr r0, _0201E0B4 ; =UNK_021C5998
|
|
ldr r0, [r0, #0x0]
|
|
bl Heap_Free
|
|
ldr r0, _0201E0B4 ; =UNK_021C5998
|
|
mov r1, #0x0
|
|
str r1, [r0, #0x0]
|
|
_0201E0B2:
|
|
pop {r3, pc}
|
|
.balign 4
|
|
_0201E0B4: .word UNK_021C5998
|
|
|
|
thumb_func_start sub_0201E0B8
|
|
sub_0201E0B8: ; 0x0201E0B8
|
|
bx lr
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0201E0BC
|
|
sub_0201E0BC: ; 0x0201E0BC
|
|
push {r3, lr}
|
|
ldr r0, _0201E0E0 ; =UNK_021C5998
|
|
mov r2, #0x0
|
|
ldr r1, [r0, #0x0]
|
|
str r2, [r1, #0xc]
|
|
ldr r1, [r0, #0x0]
|
|
str r2, [r1, #0x10]
|
|
ldr r1, [r0, #0x0]
|
|
str r2, [r1, #0x14]
|
|
ldr r0, [r0, #0x0]
|
|
str r2, [r0, #0x18]
|
|
bl sub_0201E464
|
|
ldr r0, _0201E0E0 ; =UNK_021C5998
|
|
ldr r0, [r0, #0x0]
|
|
bl sub_0201E574
|
|
pop {r3, pc}
|
|
.balign 4
|
|
_0201E0E0: .word UNK_021C5998
|
|
|
|
thumb_func_start sub_0201E0E4
|
|
sub_0201E0E4: ; 0x0201E0E4
|
|
push {r3-r5, lr}
|
|
add r5, r0, #0x0
|
|
bl sub_0201E428
|
|
add r4, r0, #0x0
|
|
bne _0201E0F8
|
|
bl GF_AssertFail
|
|
mov r0, #0x0
|
|
pop {r3-r5, pc}
|
|
_0201E0F8:
|
|
add r0, r5, #0x0
|
|
add r1, r4, #0x0
|
|
bl sub_0201E2C4
|
|
cmp r0, #0x0
|
|
bne _0201E108
|
|
mov r0, #0x0
|
|
pop {r3-r5, pc}
|
|
_0201E108:
|
|
add r0, r5, #0x0
|
|
add r1, r4, #0x0
|
|
bl sub_0201E314
|
|
cmp r0, #0x0
|
|
bne _0201E11E
|
|
ldr r0, [r5, #0xc]
|
|
bl sub_0201E1C8
|
|
mov r0, #0x0
|
|
pop {r3-r5, pc}
|
|
_0201E11E:
|
|
add r0, r4, #0x0
|
|
bl sub_0201E57C
|
|
mov r0, #0x1
|
|
pop {r3-r5, pc}
|
|
|
|
thumb_func_start sub_0201E128
|
|
sub_0201E128: ; 0x0201E128
|
|
push {r3-r5, lr}
|
|
add r5, r0, #0x0
|
|
bl sub_0201E428
|
|
add r4, r0, #0x0
|
|
bne _0201E13C
|
|
bl GF_AssertFail
|
|
mov r0, #0x0
|
|
pop {r3-r5, pc}
|
|
_0201E13C:
|
|
add r0, r5, #0x0
|
|
add r1, r4, #0x0
|
|
bl sub_0201E2C4
|
|
cmp r0, #0x0
|
|
bne _0201E14C
|
|
mov r0, #0x0
|
|
pop {r3-r5, pc}
|
|
_0201E14C:
|
|
add r0, r5, #0x0
|
|
add r1, r4, #0x0
|
|
bl sub_0201E36C
|
|
cmp r0, #0x0
|
|
bne _0201E162
|
|
ldr r0, [r5, #0xc]
|
|
bl sub_0201E1C8
|
|
mov r0, #0x0
|
|
pop {r3-r5, pc}
|
|
_0201E162:
|
|
mov r0, #0x1
|
|
pop {r3-r5, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0201E168
|
|
sub_0201E168: ; 0x0201E168
|
|
push {r3-r5, lr}
|
|
add r4, r0, #0x0
|
|
add r5, r1, #0x0
|
|
bne _0201E174
|
|
bl GF_AssertFail
|
|
_0201E174:
|
|
add r0, r4, #0x0
|
|
bl sub_0201E3F0
|
|
add r4, r0, #0x0
|
|
bne _0201E182
|
|
bl GF_AssertFail
|
|
_0201E182:
|
|
str r5, [r4, #0x0]
|
|
ldr r1, [r4, #0x4]
|
|
mov r0, #0x1
|
|
tst r0, r1
|
|
beq _0201E19A
|
|
ldr r3, [r4, #0x8]
|
|
ldr r1, [r4, #0x24]
|
|
ldr r2, [r5, #0xc]
|
|
mov r0, #0xe
|
|
lsl r3, r3, #0x5
|
|
bl sub_0201C2C8
|
|
_0201E19A:
|
|
ldr r1, [r4, #0x4]
|
|
mov r0, #0x2
|
|
tst r0, r1
|
|
beq _0201E1B0
|
|
ldr r3, [r4, #0x8]
|
|
ldr r1, [r4, #0x28]
|
|
ldr r2, [r5, #0xc]
|
|
mov r0, #0x1e
|
|
lsl r3, r3, #0x5
|
|
bl sub_0201C2C8
|
|
_0201E1B0:
|
|
pop {r3-r5, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0201E1B4
|
|
sub_0201E1B4: ; 0x0201E1B4
|
|
push {r3, lr}
|
|
bl sub_0201E3F0
|
|
cmp r0, #0x0
|
|
beq _0201E1C2
|
|
mov r0, #0x1
|
|
pop {r3, pc}
|
|
_0201E1C2:
|
|
mov r0, #0x0
|
|
pop {r3, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0201E1C8
|
|
sub_0201E1C8: ; 0x0201E1C8
|
|
push {r4, lr}
|
|
bl sub_0201E3F0
|
|
add r4, r0, #0x0
|
|
bne _0201E1D6
|
|
bl GF_AssertFail
|
|
_0201E1D6:
|
|
add r0, r4, #0x0
|
|
add r0, #0x2c
|
|
ldrb r0, [r0, #0x0]
|
|
cmp r0, #0x1
|
|
bne _0201E1EC
|
|
add r0, r4, #0x0
|
|
bl sub_0201E5B8
|
|
add r0, r4, #0x0
|
|
bl sub_0201E2BC
|
|
_0201E1EC:
|
|
pop {r4, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0201E1F0
|
|
sub_0201E1F0: ; 0x0201E1F0
|
|
push {r4-r6, lr}
|
|
ldr r6, _0201E22C ; =UNK_021C5998
|
|
mov r4, #0x0
|
|
ldr r1, [r6, #0x0]
|
|
ldr r0, [r1, #0x4]
|
|
cmp r0, #0x0
|
|
ble _0201E228
|
|
add r5, r4, #0x0
|
|
_0201E200:
|
|
ldr r1, [r1, #0x0]
|
|
add r0, r1, r5
|
|
add r0, #0x2c
|
|
ldrb r0, [r0, #0x0]
|
|
cmp r0, #0x1
|
|
bne _0201E21C
|
|
add r0, r1, r5
|
|
bl sub_0201E5B8
|
|
ldr r0, [r6, #0x0]
|
|
ldr r0, [r0, #0x0]
|
|
add r0, r0, r5
|
|
bl sub_0201E2BC
|
|
_0201E21C:
|
|
ldr r1, [r6, #0x0]
|
|
add r4, r4, #0x1
|
|
ldr r0, [r1, #0x4]
|
|
add r5, #0x30
|
|
cmp r4, r0
|
|
blt _0201E200
|
|
_0201E228:
|
|
pop {r4-r6, pc}
|
|
nop
|
|
_0201E22C: .word UNK_021C5998
|
|
|
|
thumb_func_start sub_0201E230
|
|
sub_0201E230: ; 0x0201E230
|
|
push {r3, lr}
|
|
bl sub_0201E3F0
|
|
cmp r0, #0x0
|
|
bne _0201E244
|
|
bne _0201E240
|
|
bl GF_AssertFail
|
|
_0201E240:
|
|
mov r0, #0x0
|
|
pop {r3, pc}
|
|
_0201E244:
|
|
add r1, r0, #0x0
|
|
add r1, #0x2c
|
|
ldrb r1, [r1, #0x0]
|
|
cmp r1, #0x1
|
|
bne _0201E252
|
|
add r0, #0x10
|
|
pop {r3, pc}
|
|
_0201E252:
|
|
mov r0, #0x0
|
|
pop {r3, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0201E258
|
|
sub_0201E258: ; 0x0201E258
|
|
push {r4, lr}
|
|
add r4, r1, #0x0
|
|
bl sub_0201E3F0
|
|
cmp r0, #0x0
|
|
bne _0201E26E
|
|
bne _0201E26A
|
|
bl GF_AssertFail
|
|
_0201E26A:
|
|
mov r0, #0x0
|
|
pop {r4, pc}
|
|
_0201E26E:
|
|
add r1, r0, #0x0
|
|
add r1, #0x2c
|
|
ldrb r1, [r1, #0x0]
|
|
cmp r1, #0x1
|
|
beq _0201E27C
|
|
mov r0, #0x0
|
|
pop {r4, pc}
|
|
_0201E27C:
|
|
ldr r1, [r0, #0x0]
|
|
ldr r1, [r1, #0x4]
|
|
cmp r1, #0x0
|
|
beq _0201E288
|
|
mov r1, #0x1
|
|
str r1, [r4, #0x18]
|
|
_0201E288:
|
|
add r0, #0x10
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_0201E28C
|
|
sub_0201E28C: ; 0x0201E28C
|
|
push {r4, lr}
|
|
ldr r2, [r0, #0x4]
|
|
cmp r2, #0x0
|
|
beq _0201E29A
|
|
mov r4, #0x2
|
|
lsl r4, r4, #0x8
|
|
b _0201E2A6
|
|
_0201E29A:
|
|
ldr r2, [r0, #0x0]
|
|
cmp r2, #0x4
|
|
bne _0201E2A4
|
|
mov r4, #0x0
|
|
b _0201E2A6
|
|
_0201E2A4:
|
|
mov r4, #0x20
|
|
_0201E2A6:
|
|
cmp r4, #0x0
|
|
beq _0201E2B6
|
|
bl NNS_G2dGetImagePaletteLocation
|
|
add r1, r4, #0x0
|
|
bl _u32_div_f
|
|
pop {r4, pc}
|
|
_0201E2B6:
|
|
mov r0, #0x0
|
|
pop {r4, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0201E2BC
|
|
sub_0201E2BC: ; 0x0201E2BC
|
|
ldr r3, _0201E2C0 ; =sub_0201E2F8
|
|
bx r3
|
|
.balign 4
|
|
_0201E2C0: .word sub_0201E2F8
|
|
|
|
thumb_func_start sub_0201E2C4
|
|
sub_0201E2C4: ; 0x0201E2C4
|
|
push {r3-r5, lr}
|
|
add r5, r0, #0x0
|
|
ldr r0, [r5, #0x0]
|
|
add r4, r1, #0x0
|
|
str r0, [r4, #0x0]
|
|
ldr r0, [r5, #0xc]
|
|
bl sub_0201E1B4
|
|
cmp r0, #0x1
|
|
bne _0201E2E0
|
|
bl GF_AssertFail
|
|
mov r0, #0x0
|
|
pop {r3-r5, pc}
|
|
_0201E2E0:
|
|
ldr r0, [r5, #0xc]
|
|
add r1, r4, #0x0
|
|
str r0, [r4, #0xc]
|
|
ldr r0, [r5, #0x4]
|
|
add r1, #0x2c
|
|
str r0, [r4, #0x4]
|
|
mov r0, #0x1
|
|
strb r0, [r1, #0x0]
|
|
ldr r1, [r5, #0x8]
|
|
str r1, [r4, #0x8]
|
|
pop {r3-r5, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0201E2F8
|
|
sub_0201E2F8: ; 0x0201E2F8
|
|
push {r4, lr}
|
|
mov r1, #0x0
|
|
mov r2, #0x30
|
|
add r4, r0, #0x0
|
|
bl memset
|
|
mov r0, #0x0
|
|
mvn r0, r0
|
|
str r0, [r4, #0xc]
|
|
add r4, #0x10
|
|
add r0, r4, #0x0
|
|
bl NNS_G2dInitImagePaletteProxy
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_0201E314
|
|
sub_0201E314: ; 0x0201E314
|
|
push {r3-r6, lr}
|
|
sub sp, #0x4
|
|
add r6, r1, #0x0
|
|
ldr r0, [r6, #0x0]
|
|
ldr r0, [r0, #0x4]
|
|
cmp r0, #0x0
|
|
beq _0201E334
|
|
ldr r0, _0201E368 ; =UNK_021C5998
|
|
ldr r0, [r0, #0x0]
|
|
add r4, r0, #0x0
|
|
add r5, r0, #0x0
|
|
ldr r3, [r0, #0x1c]
|
|
add r4, #0x14
|
|
add r5, #0x18
|
|
ldr r0, [r0, #0x20]
|
|
b _0201E344
|
|
_0201E334:
|
|
ldr r0, _0201E368 ; =UNK_021C5998
|
|
mov r3, #0x2
|
|
ldr r5, [r0, #0x0]
|
|
lsl r3, r3, #0x8
|
|
add r4, r5, #0x0
|
|
add r4, #0xc
|
|
add r5, #0x10
|
|
add r0, r3, #0x0
|
|
_0201E344:
|
|
str r0, [sp, #0x0]
|
|
ldr r1, [r4, #0x0]
|
|
ldr r2, [r5, #0x0]
|
|
add r0, r6, #0x0
|
|
bl sub_0201E5F4
|
|
add r0, r6, #0x0
|
|
bl sub_0201E4AC
|
|
add r0, r6, #0x0
|
|
add r1, r4, #0x0
|
|
add r2, r5, #0x0
|
|
bl sub_0201E640
|
|
mov r0, #0x1
|
|
add sp, #0x4
|
|
pop {r3-r6, pc}
|
|
nop
|
|
_0201E368: .word UNK_021C5998
|
|
|
|
thumb_func_start sub_0201E36C
|
|
sub_0201E36C: ; 0x0201E36C
|
|
push {r4-r6, lr}
|
|
add r5, r1, #0x0
|
|
ldr r0, [r5, #0x0]
|
|
ldr r0, [r0, #0x4]
|
|
cmp r0, #0x0
|
|
beq _0201E37C
|
|
bl GF_AssertFail
|
|
_0201E37C:
|
|
ldr r1, [r5, #0x4]
|
|
mov r0, #0x1
|
|
tst r0, r1
|
|
beq _0201E39E
|
|
ldr r0, _0201E3EC ; =UNK_021C5998
|
|
ldr r1, [r5, #0x8]
|
|
ldr r0, [r0, #0x0]
|
|
ldrh r0, [r0, #0x24]
|
|
bl sub_0201E534
|
|
add r6, r0, #0x0
|
|
mov r0, #0x0
|
|
mvn r0, r0
|
|
cmp r6, r0
|
|
bne _0201E39E
|
|
mov r0, #0x0
|
|
pop {r4-r6, pc}
|
|
_0201E39E:
|
|
ldr r1, [r5, #0x4]
|
|
mov r0, #0x2
|
|
tst r0, r1
|
|
beq _0201E3C0
|
|
ldr r0, _0201E3EC ; =UNK_021C5998
|
|
ldr r1, [r5, #0x8]
|
|
ldr r0, [r0, #0x0]
|
|
ldrh r0, [r0, #0x26]
|
|
bl sub_0201E534
|
|
add r4, r0, #0x0
|
|
mov r0, #0x0
|
|
mvn r0, r0
|
|
cmp r4, r0
|
|
bne _0201E3C0
|
|
mov r0, #0x0
|
|
pop {r4-r6, pc}
|
|
_0201E3C0:
|
|
ldr r1, [r5, #0x4]
|
|
mov r0, #0x1
|
|
tst r0, r1
|
|
beq _0201E3CA
|
|
str r6, [r5, #0x24]
|
|
_0201E3CA:
|
|
ldr r1, [r5, #0x4]
|
|
mov r0, #0x2
|
|
tst r0, r1
|
|
beq _0201E3D4
|
|
str r4, [r5, #0x28]
|
|
_0201E3D4:
|
|
ldr r0, [r5, #0x8]
|
|
lsl r1, r0, #0x5
|
|
ldr r0, [r5, #0x0]
|
|
str r1, [r0, #0x8]
|
|
add r0, r5, #0x0
|
|
bl sub_0201E4BC
|
|
add r0, r5, #0x0
|
|
bl sub_0201E57C
|
|
mov r0, #0x1
|
|
pop {r4-r6, pc}
|
|
.balign 4
|
|
_0201E3EC: .word UNK_021C5998
|
|
|
|
thumb_func_start sub_0201E3F0
|
|
sub_0201E3F0: ; 0x0201E3F0
|
|
push {r4-r5}
|
|
ldr r2, _0201E424 ; =UNK_021C5998
|
|
mov r1, #0x0
|
|
ldr r5, [r2, #0x0]
|
|
ldr r2, [r5, #0x4]
|
|
cmp r2, #0x0
|
|
ble _0201E41C
|
|
ldr r2, [r5, #0x0]
|
|
add r4, r2, #0x0
|
|
_0201E402:
|
|
ldr r3, [r4, #0xc]
|
|
cmp r0, r3
|
|
bne _0201E412
|
|
mov r0, #0x30
|
|
mul r0, r1
|
|
add r0, r2, r0
|
|
pop {r4-r5}
|
|
bx lr
|
|
_0201E412:
|
|
ldr r3, [r5, #0x4]
|
|
add r1, r1, #0x1
|
|
add r4, #0x30
|
|
cmp r1, r3
|
|
blt _0201E402
|
|
_0201E41C:
|
|
mov r0, #0x0
|
|
pop {r4-r5}
|
|
bx lr
|
|
nop
|
|
_0201E424: .word UNK_021C5998
|
|
|
|
thumb_func_start sub_0201E428
|
|
sub_0201E428: ; 0x0201E428
|
|
push {r3-r4}
|
|
ldr r1, _0201E460 ; =UNK_021C5998
|
|
mov r0, #0x0
|
|
ldr r4, [r1, #0x0]
|
|
ldr r1, [r4, #0x4]
|
|
cmp r1, #0x0
|
|
ble _0201E458
|
|
ldr r1, [r4, #0x0]
|
|
add r3, r1, #0x0
|
|
_0201E43A:
|
|
add r2, r3, #0x0
|
|
add r2, #0x2c
|
|
ldrb r2, [r2, #0x0]
|
|
cmp r2, #0x0
|
|
bne _0201E44E
|
|
mov r2, #0x30
|
|
mul r2, r0
|
|
add r0, r1, r2
|
|
pop {r3-r4}
|
|
bx lr
|
|
_0201E44E:
|
|
ldr r2, [r4, #0x4]
|
|
add r0, r0, #0x1
|
|
add r3, #0x30
|
|
cmp r0, r2
|
|
blt _0201E43A
|
|
_0201E458:
|
|
mov r0, #0x0
|
|
pop {r3-r4}
|
|
bx lr
|
|
nop
|
|
_0201E460: .word UNK_021C5998
|
|
|
|
thumb_func_start sub_0201E464
|
|
sub_0201E464: ; 0x0201E464
|
|
push {r3, lr}
|
|
bl GX_GetBankForOBJExtPltt
|
|
cmp r0, #0x20
|
|
beq _0201E472
|
|
cmp r0, #0x40
|
|
bne _0201E47E
|
|
_0201E472:
|
|
ldr r0, _0201E4A8 ; =UNK_021C5998
|
|
mov r1, #0x2
|
|
ldr r0, [r0, #0x0]
|
|
lsl r1, r1, #0xc
|
|
str r1, [r0, #0x1c]
|
|
b _0201E486
|
|
_0201E47E:
|
|
ldr r0, _0201E4A8 ; =UNK_021C5998
|
|
mov r1, #0x0
|
|
ldr r0, [r0, #0x0]
|
|
str r1, [r0, #0x1c]
|
|
_0201E486:
|
|
bl GX_GetBankForSubOBJExtPltt
|
|
mov r1, #0x1
|
|
lsl r1, r1, #0x8
|
|
cmp r0, r1
|
|
bne _0201E49C
|
|
ldr r0, _0201E4A8 ; =UNK_021C5998
|
|
lsl r1, r1, #0x5
|
|
ldr r0, [r0, #0x0]
|
|
str r1, [r0, #0x20]
|
|
pop {r3, pc}
|
|
_0201E49C:
|
|
ldr r0, _0201E4A8 ; =UNK_021C5998
|
|
mov r1, #0x0
|
|
ldr r0, [r0, #0x0]
|
|
str r1, [r0, #0x20]
|
|
pop {r3, pc}
|
|
nop
|
|
_0201E4A8: .word UNK_021C5998
|
|
|
|
thumb_func_start sub_0201E4AC
|
|
sub_0201E4AC: ; 0x0201E4AC
|
|
ldr r1, [r0, #0x8]
|
|
ldr r3, _0201E4B8 ; =sub_0201E4BC
|
|
lsl r2, r1, #0x5
|
|
ldr r1, [r0, #0x0]
|
|
str r2, [r1, #0x8]
|
|
bx r3
|
|
.balign 4
|
|
_0201E4B8: .word sub_0201E4BC
|
|
|
|
thumb_func_start sub_0201E4BC
|
|
sub_0201E4BC: ; 0x0201E4BC
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
add r0, #0x10
|
|
bl NNS_G2dInitImagePaletteProxy
|
|
ldr r0, [r4, #0x4]
|
|
mov r2, #0x1
|
|
tst r0, r2
|
|
beq _0201E4DA
|
|
add r3, r4, #0x0
|
|
ldr r0, [r4, #0x0]
|
|
ldr r1, [r4, #0x24]
|
|
add r3, #0x10
|
|
bl NNS_G2dLoadPalette
|
|
_0201E4DA:
|
|
ldr r0, [r4, #0x4]
|
|
mov r2, #0x2
|
|
tst r0, r2
|
|
beq _0201E4EE
|
|
ldr r0, [r4, #0x0]
|
|
ldr r1, [r4, #0x28]
|
|
add r4, #0x10
|
|
add r3, r4, #0x0
|
|
bl NNS_G2dLoadPalette
|
|
_0201E4EE:
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_0201E4F0
|
|
sub_0201E4F0: ; 0x0201E4F0
|
|
push {r4-r7}
|
|
mov r3, #0x0
|
|
cmp r1, #0x0
|
|
ble _0201E50E
|
|
mov r5, #0x1
|
|
_0201E4FA:
|
|
ldrh r7, [r0, #0x0]
|
|
add r4, r2, r3
|
|
add r6, r5, #0x0
|
|
lsl r6, r4
|
|
add r4, r7, #0x0
|
|
orr r4, r6
|
|
add r3, r3, #0x1
|
|
strh r4, [r0, #0x0]
|
|
cmp r3, r1
|
|
blt _0201E4FA
|
|
_0201E50E:
|
|
pop {r4-r7}
|
|
bx lr
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0201E514
|
|
sub_0201E514: ; 0x0201E514
|
|
push {r4-r7}
|
|
mov r4, #0x0
|
|
cmp r1, #0x0
|
|
ble _0201E530
|
|
mov r6, #0x1
|
|
_0201E51E:
|
|
add r5, r2, r4
|
|
add r7, r6, #0x0
|
|
ldrh r3, [r0, #0x0]
|
|
lsl r7, r5
|
|
bic r3, r7
|
|
add r4, r4, #0x1
|
|
strh r3, [r0, #0x0]
|
|
cmp r4, r1
|
|
blt _0201E51E
|
|
_0201E530:
|
|
pop {r4-r7}
|
|
bx lr
|
|
|
|
thumb_func_start sub_0201E534
|
|
sub_0201E534: ; 0x0201E534
|
|
push {r4-r7}
|
|
mov r3, #0x0
|
|
mov r6, #0x1
|
|
add r2, r3, #0x0
|
|
_0201E53C:
|
|
add r4, r2, #0x0
|
|
b _0201E546
|
|
_0201E540:
|
|
cmp r5, #0x10
|
|
bge _0201E554
|
|
add r4, r4, #0x1
|
|
_0201E546:
|
|
add r5, r3, r4
|
|
add r7, r6, #0x0
|
|
lsl r7, r5
|
|
tst r7, r0
|
|
bne _0201E554
|
|
cmp r4, r1
|
|
blt _0201E540
|
|
_0201E554:
|
|
cmp r4, r1
|
|
bge _0201E560
|
|
add r3, r3, r4
|
|
add r3, r3, #0x1
|
|
cmp r3, #0x10
|
|
blt _0201E53C
|
|
_0201E560:
|
|
cmp r3, #0x10
|
|
blt _0201E56C
|
|
mov r0, #0x0
|
|
mvn r0, r0
|
|
pop {r4-r7}
|
|
bx lr
|
|
_0201E56C:
|
|
lsl r0, r3, #0x5
|
|
pop {r4-r7}
|
|
bx lr
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0201E574
|
|
sub_0201E574: ; 0x0201E574
|
|
mov r1, #0x0
|
|
strh r1, [r0, #0x24]
|
|
strh r1, [r0, #0x26]
|
|
bx lr
|
|
|
|
thumb_func_start sub_0201E57C
|
|
sub_0201E57C: ; 0x0201E57C
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
ldr r1, [r4, #0x4]
|
|
mov r0, #0x1
|
|
tst r0, r1
|
|
beq _0201E598
|
|
ldr r0, _0201E5B4 ; =UNK_021C5998
|
|
ldr r2, [r4, #0x24]
|
|
ldr r0, [r0, #0x0]
|
|
ldr r1, [r4, #0x8]
|
|
add r0, #0x24
|
|
lsr r2, r2, #0x5
|
|
bl sub_0201E4F0
|
|
_0201E598:
|
|
ldr r1, [r4, #0x4]
|
|
mov r0, #0x2
|
|
tst r0, r1
|
|
beq _0201E5B0
|
|
ldr r0, _0201E5B4 ; =UNK_021C5998
|
|
ldr r2, [r4, #0x28]
|
|
ldr r0, [r0, #0x0]
|
|
ldr r1, [r4, #0x8]
|
|
add r0, #0x26
|
|
lsr r2, r2, #0x5
|
|
bl sub_0201E4F0
|
|
_0201E5B0:
|
|
pop {r4, pc}
|
|
nop
|
|
_0201E5B4: .word UNK_021C5998
|
|
|
|
thumb_func_start sub_0201E5B8
|
|
sub_0201E5B8: ; 0x0201E5B8
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
ldr r1, [r4, #0x4]
|
|
mov r0, #0x1
|
|
tst r0, r1
|
|
beq _0201E5D4
|
|
ldr r0, _0201E5F0 ; =UNK_021C5998
|
|
ldr r2, [r4, #0x24]
|
|
ldr r0, [r0, #0x0]
|
|
ldr r1, [r4, #0x8]
|
|
add r0, #0x24
|
|
lsr r2, r2, #0x5
|
|
bl sub_0201E514
|
|
_0201E5D4:
|
|
ldr r1, [r4, #0x4]
|
|
mov r0, #0x2
|
|
tst r0, r1
|
|
beq _0201E5EC
|
|
ldr r0, _0201E5F0 ; =UNK_021C5998
|
|
ldr r2, [r4, #0x28]
|
|
ldr r0, [r0, #0x0]
|
|
ldr r1, [r4, #0x8]
|
|
add r0, #0x26
|
|
lsr r2, r2, #0x5
|
|
bl sub_0201E514
|
|
_0201E5EC:
|
|
pop {r4, pc}
|
|
nop
|
|
_0201E5F0: .word UNK_021C5998
|
|
|
|
thumb_func_start sub_0201E5F4
|
|
sub_0201E5F4: ; 0x0201E5F4
|
|
push {r3-r5, lr}
|
|
add r5, r0, #0x0
|
|
add r4, r2, #0x0
|
|
ldr r2, [r5, #0x4]
|
|
mov r0, #0x1
|
|
tst r2, r0
|
|
beq _0201E61A
|
|
ldr r2, [r5, #0x8]
|
|
lsl r2, r2, #0x5
|
|
add r2, r1, r2
|
|
cmp r2, r3
|
|
bls _0201E618
|
|
bl GF_AssertFail
|
|
bl sub_0201E0B8
|
|
mov r0, #0x0
|
|
b _0201E61A
|
|
_0201E618:
|
|
str r1, [r5, #0x24]
|
|
_0201E61A:
|
|
ldr r2, [r5, #0x4]
|
|
mov r1, #0x2
|
|
tst r1, r2
|
|
beq _0201E63C
|
|
ldr r1, [r5, #0x8]
|
|
lsl r1, r1, #0x5
|
|
add r2, r4, r1
|
|
ldr r1, [sp, #0x10]
|
|
cmp r2, r1
|
|
bls _0201E63A
|
|
bl GF_AssertFail
|
|
bl sub_0201E0B8
|
|
mov r0, #0x0
|
|
pop {r3-r5, pc}
|
|
_0201E63A:
|
|
str r4, [r5, #0x28]
|
|
_0201E63C:
|
|
pop {r3-r5, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0201E640
|
|
sub_0201E640: ; 0x0201E640
|
|
push {r3-r4}
|
|
ldr r4, [r0, #0x4]
|
|
mov r3, #0x1
|
|
tst r3, r4
|
|
beq _0201E654
|
|
ldr r3, [r0, #0x8]
|
|
ldr r4, [r1, #0x0]
|
|
lsl r3, r3, #0x5
|
|
add r3, r4, r3
|
|
str r3, [r1, #0x0]
|
|
_0201E654:
|
|
ldr r3, [r0, #0x4]
|
|
mov r1, #0x2
|
|
tst r1, r3
|
|
beq _0201E666
|
|
ldr r0, [r0, #0x8]
|
|
ldr r1, [r2, #0x0]
|
|
lsl r0, r0, #0x5
|
|
add r0, r1, r0
|
|
str r0, [r2, #0x0]
|
|
_0201E666:
|
|
pop {r3-r4}
|
|
bx lr
|
|
.balign 4
|