mirror of
https://github.com/pret/pokediamond.git
synced 2026-04-26 08:17:27 -05:00
2175 lines
38 KiB
ArmAsm
2175 lines
38 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "global.inc"
|
|
|
|
.section .bss
|
|
|
|
.global UNK_021C5994
|
|
UNK_021C5994: ; 0x021C5994
|
|
.space 0x4
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_0201D040
|
|
sub_0201D040: ; 0x0201D040
|
|
ldr r1, _0201D054 ; =0x04001000
|
|
ldr r2, [r1, #0x0]
|
|
ldr r1, _0201D058 ; =0x00300010
|
|
lsl r3, r1, #0x16
|
|
ldr r3, [r3, #0x0]
|
|
and r2, r1
|
|
and r1, r3
|
|
ldr r3, _0201D05C ; =sub_0201D060
|
|
bx r3
|
|
nop
|
|
_0201D054: .word 0x04001000
|
|
_0201D058: .word 0x00300010
|
|
_0201D05C: .word sub_0201D060
|
|
|
|
thumb_func_start sub_0201D060
|
|
sub_0201D060: ; 0x0201D060
|
|
push {r3-r7, lr}
|
|
sub sp, #0x8
|
|
add r5, r0, #0x0
|
|
ldr r0, _0201D120 ; =UNK_021C5994
|
|
str r1, [sp, #0x0]
|
|
ldr r0, [r0, #0x0]
|
|
str r2, [sp, #0x4]
|
|
cmp r0, #0x0
|
|
bne _0201D11A
|
|
ldr r0, [r5, #0xc]
|
|
mov r1, #0x3c
|
|
bl Heap_Alloc
|
|
add r1, r0, #0x0
|
|
ldr r0, _0201D120 ; =UNK_021C5994
|
|
mov r2, #0x3c
|
|
str r1, [r0, #0x0]
|
|
mov r0, #0x0
|
|
bl MIi_CpuClear32
|
|
ldr r1, _0201D120 ; =UNK_021C5994
|
|
ldr r2, [r5, #0x0]
|
|
ldr r0, [r1, #0x0]
|
|
str r2, [r0, #0x4]
|
|
ldr r1, [r1, #0x0]
|
|
ldr r0, [r5, #0xc]
|
|
ldr r2, [r1, #0x4]
|
|
mov r1, #0x54
|
|
mul r1, r2
|
|
bl Heap_Alloc
|
|
ldr r7, _0201D120 ; =UNK_021C5994
|
|
mov r6, #0x0
|
|
ldr r1, [r7, #0x0]
|
|
str r0, [r1, #0x0]
|
|
ldr r0, [r5, #0x0]
|
|
cmp r0, #0x0
|
|
ble _0201D0C2
|
|
add r4, r6, #0x0
|
|
_0201D0AE:
|
|
ldr r0, [r7, #0x0]
|
|
ldr r0, [r0, #0x0]
|
|
add r0, r0, r4
|
|
bl sub_0201D690
|
|
ldr r0, [r5, #0x0]
|
|
add r6, r6, #0x1
|
|
add r4, #0x54
|
|
cmp r6, r0
|
|
blt _0201D0AE
|
|
_0201D0C2:
|
|
ldr r0, [sp, #0x0]
|
|
bl sub_0201DED0
|
|
ldr r1, _0201D120 ; =UNK_021C5994
|
|
ldr r1, [r1, #0x0]
|
|
str r0, [r1, #0x2c]
|
|
ldr r0, [sp, #0x4]
|
|
bl sub_0201DED0
|
|
ldr r2, _0201D120 ; =UNK_021C5994
|
|
mov r3, #0x1
|
|
ldr r1, [r2, #0x0]
|
|
lsl r3, r3, #0x1a
|
|
str r0, [r1, #0x30]
|
|
ldr r0, [r3, #0x0]
|
|
ldr r1, _0201D124 ; =0xFFCFFFEF
|
|
add r4, r0, #0x0
|
|
ldr r0, [sp, #0x0]
|
|
and r4, r1
|
|
orr r0, r4
|
|
str r0, [r3, #0x0]
|
|
ldr r3, _0201D128 ; =0x04001000
|
|
ldr r0, [r3, #0x0]
|
|
and r1, r0
|
|
ldr r0, [sp, #0x4]
|
|
orr r0, r1
|
|
str r0, [r3, #0x0]
|
|
ldr r1, [r2, #0x0]
|
|
ldr r0, [r5, #0x4]
|
|
ldr r1, [r1, #0x2c]
|
|
bl sub_0201DF2C
|
|
ldr r1, _0201D120 ; =UNK_021C5994
|
|
add r4, r0, #0x0
|
|
ldr r1, [r1, #0x0]
|
|
ldr r0, [r5, #0x8]
|
|
ldr r1, [r1, #0x30]
|
|
bl sub_0201DF2C
|
|
add r1, r0, #0x0
|
|
ldr r2, [r5, #0xc]
|
|
add r0, r4, #0x0
|
|
bl sub_0201DC58
|
|
_0201D11A:
|
|
add sp, #0x8
|
|
pop {r3-r7, pc}
|
|
nop
|
|
_0201D120: .word UNK_021C5994
|
|
_0201D124: .word 0xFFCFFFEF
|
|
_0201D128: .word 0x04001000
|
|
|
|
thumb_func_start sub_0201D12C
|
|
sub_0201D12C: ; 0x0201D12C
|
|
push {r3, lr}
|
|
ldr r0, _0201D164 ; =UNK_021C5994
|
|
ldr r0, [r0, #0x0]
|
|
cmp r0, #0x0
|
|
beq _0201D162
|
|
ldr r0, [r0, #0x34]
|
|
bl sub_0201DCC0
|
|
ldr r0, _0201D164 ; =UNK_021C5994
|
|
ldr r0, [r0, #0x0]
|
|
ldr r0, [r0, #0x38]
|
|
bl sub_0201DCC0
|
|
bl sub_0201D374
|
|
ldr r0, _0201D164 ; =UNK_021C5994
|
|
ldr r0, [r0, #0x0]
|
|
ldr r0, [r0, #0x0]
|
|
bl Heap_Free
|
|
ldr r0, _0201D164 ; =UNK_021C5994
|
|
ldr r0, [r0, #0x0]
|
|
bl Heap_Free
|
|
ldr r0, _0201D164 ; =UNK_021C5994
|
|
mov r1, #0x0
|
|
str r1, [r0, #0x0]
|
|
_0201D162:
|
|
pop {r3, pc}
|
|
.balign 4
|
|
_0201D164: .word UNK_021C5994
|
|
|
|
thumb_func_start sub_0201D168
|
|
sub_0201D168: ; 0x0201D168
|
|
push {r3, lr}
|
|
ldr r0, _0201D190 ; =UNK_021C5994
|
|
mov r2, #0x0
|
|
ldr r1, [r0, #0x0]
|
|
str r2, [r1, #0xc]
|
|
ldr r1, [r0, #0x0]
|
|
str r2, [r1, #0x10]
|
|
ldr r0, [r0, #0x0]
|
|
ldr r0, [r0, #0x34]
|
|
bl sub_0201DD00
|
|
ldr r0, _0201D190 ; =UNK_021C5994
|
|
ldr r0, [r0, #0x0]
|
|
ldr r0, [r0, #0x38]
|
|
bl sub_0201DD00
|
|
bl sub_0201DAE8
|
|
pop {r3, pc}
|
|
nop
|
|
_0201D190: .word UNK_021C5994
|
|
|
|
thumb_func_start sub_0201D194
|
|
sub_0201D194: ; 0x0201D194
|
|
push {r3-r4, lr}
|
|
sub sp, #0xc
|
|
add r4, r0, #0x0
|
|
add r3, r1, #0x0
|
|
cmp r2, #0x1
|
|
add r0, sp, #0x4
|
|
bne _0201D1CA
|
|
str r0, [sp, #0x0]
|
|
ldr r0, _0201D1F4 ; =UNK_021C5994
|
|
add r2, r3, #0x0
|
|
ldr r0, [r0, #0x0]
|
|
add r1, r4, #0x0
|
|
ldr r0, [r0, #0x1c]
|
|
add r3, sp, #0x8
|
|
bl sub_0201DFF0
|
|
ldr r3, [sp, #0x4]
|
|
cmp r3, #0x0
|
|
ble _0201D1F0
|
|
mov r2, #0x0
|
|
str r2, [sp, #0x0]
|
|
ldr r1, [sp, #0x8]
|
|
mov r0, #0x1
|
|
bl sub_0201D948
|
|
add sp, #0xc
|
|
pop {r3-r4, pc}
|
|
_0201D1CA:
|
|
str r0, [sp, #0x0]
|
|
ldr r0, _0201D1F4 ; =UNK_021C5994
|
|
add r2, r3, #0x0
|
|
ldr r0, [r0, #0x0]
|
|
add r1, r4, #0x0
|
|
ldr r0, [r0, #0x20]
|
|
add r3, sp, #0x8
|
|
bl sub_0201DFF0
|
|
ldr r0, [sp, #0x4]
|
|
cmp r0, #0x0
|
|
ble _0201D1F0
|
|
str r0, [sp, #0x0]
|
|
mov r1, #0x0
|
|
ldr r2, [sp, #0x8]
|
|
mov r0, #0x2
|
|
add r3, r1, #0x0
|
|
bl sub_0201D948
|
|
_0201D1F0:
|
|
add sp, #0xc
|
|
pop {r3-r4, pc}
|
|
.balign 4
|
|
_0201D1F4: .word UNK_021C5994
|
|
|
|
thumb_func_start sub_0201D1F8
|
|
sub_0201D1F8: ; 0x0201D1F8
|
|
push {r3-r5, lr}
|
|
add r5, r0, #0x0
|
|
ldr r0, [r5, #0x8]
|
|
bl sub_0201D2AC
|
|
cmp r0, #0x1
|
|
bne _0201D20A
|
|
bl GF_AssertFail
|
|
_0201D20A:
|
|
bl sub_0201DAAC
|
|
add r4, r0, #0x0
|
|
bne _0201D21A
|
|
bl GF_AssertFail
|
|
mov r0, #0x0
|
|
pop {r3-r5, pc}
|
|
_0201D21A:
|
|
add r0, r5, #0x0
|
|
add r1, r4, #0x0
|
|
bl sub_0201D6B4
|
|
cmp r0, #0x0
|
|
bne _0201D22A
|
|
mov r0, #0x0
|
|
pop {r3-r5, pc}
|
|
_0201D22A:
|
|
add r0, r4, #0x0
|
|
bl sub_0201D724
|
|
cmp r0, #0x0
|
|
bne _0201D23E
|
|
ldr r0, [r4, #0xc]
|
|
bl sub_0201D324
|
|
mov r0, #0x0
|
|
pop {r3-r5, pc}
|
|
_0201D23E:
|
|
ldr r0, _0201D24C ; =UNK_021C5994
|
|
ldr r1, [r0, #0x0]
|
|
ldr r0, [r1, #0x8]
|
|
add r0, r0, #0x1
|
|
str r0, [r1, #0x8]
|
|
mov r0, #0x1
|
|
pop {r3-r5, pc}
|
|
.balign 4
|
|
_0201D24C: .word UNK_021C5994
|
|
|
|
thumb_func_start sub_0201D250
|
|
sub_0201D250: ; 0x0201D250
|
|
push {r3-r5, lr}
|
|
add r5, r0, #0x0
|
|
ldr r0, [r5, #0x8]
|
|
bl sub_0201D2AC
|
|
cmp r0, #0x1
|
|
bne _0201D262
|
|
bl GF_AssertFail
|
|
_0201D262:
|
|
bl sub_0201DAAC
|
|
add r4, r0, #0x0
|
|
bne _0201D272
|
|
bl GF_AssertFail
|
|
mov r0, #0x0
|
|
pop {r3-r5, pc}
|
|
_0201D272:
|
|
add r0, r5, #0x0
|
|
add r1, r4, #0x0
|
|
bl sub_0201D6B4
|
|
cmp r0, #0x0
|
|
bne _0201D282
|
|
mov r0, #0x0
|
|
pop {r3-r5, pc}
|
|
_0201D282:
|
|
mov r0, #0x1
|
|
str r0, [r4, #0x40]
|
|
add r0, r4, #0x0
|
|
bl sub_0201D724
|
|
cmp r0, #0x0
|
|
bne _0201D29A
|
|
ldr r0, [r4, #0xc]
|
|
bl sub_0201D324
|
|
mov r0, #0x0
|
|
pop {r3-r5, pc}
|
|
_0201D29A:
|
|
ldr r0, _0201D2A8 ; =UNK_021C5994
|
|
ldr r1, [r0, #0x0]
|
|
ldr r0, [r1, #0x8]
|
|
add r0, r0, #0x1
|
|
str r0, [r1, #0x8]
|
|
mov r0, #0x1
|
|
pop {r3-r5, pc}
|
|
.balign 4
|
|
_0201D2A8: .word UNK_021C5994
|
|
|
|
thumb_func_start sub_0201D2AC
|
|
sub_0201D2AC: ; 0x0201D2AC
|
|
push {r3-r4}
|
|
ldr r1, _0201D2D8 ; =UNK_021C5994
|
|
mov r2, #0x0
|
|
ldr r4, [r1, #0x0]
|
|
ldr r1, [r4, #0x4]
|
|
cmp r1, #0x0
|
|
ble _0201D2D2
|
|
ldr r3, [r4, #0x0]
|
|
_0201D2BC:
|
|
ldr r1, [r3, #0xc]
|
|
cmp r0, r1
|
|
bne _0201D2C8
|
|
mov r0, #0x1
|
|
pop {r3-r4}
|
|
bx lr
|
|
_0201D2C8:
|
|
ldr r1, [r4, #0x4]
|
|
add r2, r2, #0x1
|
|
add r3, #0x54
|
|
cmp r2, r1
|
|
blt _0201D2BC
|
|
_0201D2D2:
|
|
mov r0, #0x0
|
|
pop {r3-r4}
|
|
bx lr
|
|
.balign 4
|
|
_0201D2D8: .word UNK_021C5994
|
|
|
|
thumb_func_start sub_0201D2DC
|
|
sub_0201D2DC: ; 0x0201D2DC
|
|
push {r3-r5, lr}
|
|
add r4, r0, #0x0
|
|
add r5, r1, #0x0
|
|
bne _0201D2E8
|
|
bl GF_AssertFail
|
|
_0201D2E8:
|
|
add r0, r4, #0x0
|
|
bl sub_0201D7F8
|
|
add r4, r0, #0x0
|
|
bne _0201D2F6
|
|
bl GF_AssertFail
|
|
_0201D2F6:
|
|
str r5, [r4, #0x0]
|
|
ldr r1, [r4, #0x4]
|
|
mov r0, #0x1
|
|
tst r0, r1
|
|
beq _0201D30C
|
|
ldr r1, [r4, #0x34]
|
|
ldr r2, [r5, #0x14]
|
|
ldr r3, [r5, #0x10]
|
|
mov r0, #0x13
|
|
bl sub_0201C2C8
|
|
_0201D30C:
|
|
ldr r1, [r4, #0x4]
|
|
mov r0, #0x2
|
|
tst r0, r1
|
|
beq _0201D320
|
|
ldr r1, [r4, #0x38]
|
|
ldr r2, [r5, #0x14]
|
|
ldr r3, [r5, #0x10]
|
|
mov r0, #0x23
|
|
bl sub_0201C2C8
|
|
_0201D320:
|
|
pop {r3-r5, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0201D324
|
|
sub_0201D324: ; 0x0201D324
|
|
push {r3-r7, lr}
|
|
add r6, r0, #0x0
|
|
mov r5, #0x1
|
|
mov r7, #0x0
|
|
_0201D32C:
|
|
add r0, r6, #0x0
|
|
bl sub_0201D7F8
|
|
add r4, r0, #0x0
|
|
bne _0201D33A
|
|
bl GF_AssertFail
|
|
_0201D33A:
|
|
add r0, r4, #0x0
|
|
add r0, #0x3c
|
|
ldrb r0, [r0, #0x0]
|
|
cmp r0, #0x4
|
|
bne _0201D34E
|
|
add r0, r4, #0x0
|
|
add r0, #0x10
|
|
bl sub_0201D4F0
|
|
b _0201D350
|
|
_0201D34E:
|
|
add r5, r7, #0x0
|
|
_0201D350:
|
|
cmp r5, #0x0
|
|
bne _0201D32C
|
|
add r0, r4, #0x0
|
|
add r0, #0x3c
|
|
ldrb r0, [r0, #0x0]
|
|
cmp r0, #0x0
|
|
beq _0201D36E
|
|
add r0, r4, #0x0
|
|
bl sub_0201D7E0
|
|
ldr r0, _0201D370 ; =UNK_021C5994
|
|
ldr r1, [r0, #0x0]
|
|
ldr r0, [r1, #0x8]
|
|
sub r0, r0, #0x1
|
|
str r0, [r1, #0x8]
|
|
_0201D36E:
|
|
pop {r3-r7, pc}
|
|
.balign 4
|
|
_0201D370: .word UNK_021C5994
|
|
|
|
thumb_func_start sub_0201D374
|
|
sub_0201D374: ; 0x0201D374
|
|
push {r4-r6, lr}
|
|
ldr r6, _0201D3AC ; =UNK_021C5994
|
|
mov r4, #0x0
|
|
ldr r1, [r6, #0x0]
|
|
ldr r0, [r1, #0x4]
|
|
cmp r0, #0x0
|
|
ble _0201D3AA
|
|
add r5, r4, #0x0
|
|
_0201D384:
|
|
ldr r1, [r1, #0x0]
|
|
add r0, r1, r5
|
|
add r0, #0x3c
|
|
ldrb r0, [r0, #0x0]
|
|
cmp r0, #0x0
|
|
beq _0201D39E
|
|
add r0, r1, r5
|
|
bl sub_0201D7E0
|
|
ldr r1, [r6, #0x0]
|
|
ldr r0, [r1, #0x8]
|
|
sub r0, r0, #0x1
|
|
str r0, [r1, #0x8]
|
|
_0201D39E:
|
|
ldr r1, [r6, #0x0]
|
|
add r4, r4, #0x1
|
|
ldr r0, [r1, #0x4]
|
|
add r5, #0x54
|
|
cmp r4, r0
|
|
blt _0201D384
|
|
_0201D3AA:
|
|
pop {r4-r6, pc}
|
|
.balign 4
|
|
_0201D3AC: .word UNK_021C5994
|
|
|
|
thumb_func_start sub_0201D3B0
|
|
sub_0201D3B0: ; 0x0201D3B0
|
|
push {r4, lr}
|
|
bl sub_0201D7F8
|
|
add r4, r0, #0x0
|
|
bne _0201D3BE
|
|
bl GF_AssertFail
|
|
_0201D3BE:
|
|
add r0, r4, #0x0
|
|
add r0, #0x3c
|
|
ldrb r0, [r0, #0x0]
|
|
cmp r0, #0x0
|
|
bne _0201D3CC
|
|
mov r0, #0x0
|
|
pop {r4, pc}
|
|
_0201D3CC:
|
|
add r4, #0x10
|
|
add r0, r4, #0x0
|
|
pop {r4, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0201D3D4
|
|
sub_0201D3D4: ; 0x0201D3D4
|
|
push {r3-r5, lr}
|
|
sub sp, #0x18
|
|
add r5, r1, #0x0
|
|
bl sub_0201D7F8
|
|
add r4, r0, #0x0
|
|
bne _0201D3E6
|
|
bl GF_AssertFail
|
|
_0201D3E6:
|
|
add r0, r4, #0x0
|
|
add r0, #0x3c
|
|
ldrb r0, [r0, #0x0]
|
|
cmp r0, #0x0
|
|
bne _0201D3F6
|
|
add sp, #0x18
|
|
mov r0, #0x0
|
|
pop {r3-r5, pc}
|
|
_0201D3F6:
|
|
add r0, sp, #0xc
|
|
str r0, [sp, #0x0]
|
|
add r0, sp, #0x8
|
|
str r0, [sp, #0x4]
|
|
ldr r0, [r4, #0x4]
|
|
add r1, sp, #0x14
|
|
add r2, sp, #0x10
|
|
add r3, r5, #0x0
|
|
bl sub_0201D86C
|
|
add r0, r4, #0x0
|
|
add r0, #0x3c
|
|
ldrb r0, [r0, #0x0]
|
|
cmp r0, #0x3
|
|
bne _0201D41A
|
|
add sp, #0x18
|
|
mov r0, #0x0
|
|
pop {r3-r5, pc}
|
|
_0201D41A:
|
|
add r0, r4, #0x0
|
|
mov r1, #0x3
|
|
add r0, #0x3c
|
|
strb r1, [r0, #0x0]
|
|
ldr r1, [sp, #0x14]
|
|
ldr r2, [sp, #0x10]
|
|
add r0, r4, #0x0
|
|
bl sub_0201D918
|
|
mov r0, #0x1
|
|
str r0, [r4, #0x48]
|
|
ldr r0, [sp, #0xc]
|
|
str r0, [r4, #0x4c]
|
|
ldr r0, [sp, #0x8]
|
|
str r0, [r4, #0x50]
|
|
add r0, r4, #0x0
|
|
bl sub_0201DA38
|
|
ldr r0, [sp, #0x8]
|
|
str r0, [sp, #0x0]
|
|
ldr r0, [r4, #0x4]
|
|
ldr r1, [sp, #0x14]
|
|
ldr r2, [sp, #0x10]
|
|
ldr r3, [sp, #0xc]
|
|
bl sub_0201D948
|
|
add r4, #0x10
|
|
add r0, r4, #0x0
|
|
add sp, #0x18
|
|
pop {r3-r5, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0201D458
|
|
sub_0201D458: ; 0x0201D458
|
|
push {r3-r5, lr}
|
|
sub sp, #0x18
|
|
bl sub_0201D6D8
|
|
add r4, r0, #0x0
|
|
bne _0201D468
|
|
bl GF_AssertFail
|
|
_0201D468:
|
|
bl sub_0201DAAC
|
|
add r5, r0, #0x0
|
|
bne _0201D474
|
|
bl GF_AssertFail
|
|
_0201D474:
|
|
add r0, r4, #0x0
|
|
add r0, #0x3c
|
|
ldrb r0, [r0, #0x0]
|
|
cmp r0, #0x3
|
|
beq _0201D484
|
|
add sp, #0x18
|
|
mov r0, #0x0
|
|
pop {r3-r5, pc}
|
|
_0201D484:
|
|
add r3, r5, #0x0
|
|
mov r2, #0xa
|
|
_0201D488:
|
|
ldmia r4!, {r0-r1}
|
|
stmia r3!, {r0-r1}
|
|
sub r2, r2, #0x1
|
|
bne _0201D488
|
|
ldr r0, [r4, #0x0]
|
|
mov r1, #0x4
|
|
str r0, [r3, #0x0]
|
|
add r0, r5, #0x0
|
|
add r0, #0x3c
|
|
strb r1, [r0, #0x0]
|
|
ldr r0, [r5, #0x4]
|
|
mov r1, #0x1
|
|
tst r1, r0
|
|
beq _0201D4A8
|
|
ldr r3, [r5, #0x4c]
|
|
b _0201D4AA
|
|
_0201D4A8:
|
|
ldr r3, [r5, #0x50]
|
|
_0201D4AA:
|
|
add r1, sp, #0xc
|
|
str r1, [sp, #0x0]
|
|
add r1, sp, #0x8
|
|
str r1, [sp, #0x4]
|
|
add r1, sp, #0x14
|
|
add r2, sp, #0x10
|
|
bl sub_0201D86C
|
|
ldr r1, [sp, #0x14]
|
|
ldr r2, [sp, #0x10]
|
|
add r0, r5, #0x0
|
|
bl sub_0201D918
|
|
mov r0, #0x1
|
|
str r0, [r5, #0x48]
|
|
ldr r0, [sp, #0xc]
|
|
str r0, [r5, #0x4c]
|
|
ldr r0, [sp, #0x8]
|
|
str r0, [r5, #0x50]
|
|
add r0, r5, #0x0
|
|
bl sub_0201DA38
|
|
ldr r0, [sp, #0x8]
|
|
str r0, [sp, #0x0]
|
|
ldr r0, [r5, #0x4]
|
|
ldr r1, [sp, #0x14]
|
|
ldr r2, [sp, #0x10]
|
|
ldr r3, [sp, #0xc]
|
|
bl sub_0201D948
|
|
add r5, #0x10
|
|
add r0, r5, #0x0
|
|
add sp, #0x18
|
|
pop {r3-r5, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0201D4F0
|
|
sub_0201D4F0: ; 0x0201D4F0
|
|
push {r4-r6, lr}
|
|
ldr r2, _0201D564 ; =UNK_021C5994
|
|
mov r1, #0x0
|
|
ldr r5, [r2, #0x0]
|
|
ldr r4, [r5, #0x4]
|
|
cmp r4, #0x0
|
|
ble _0201D52E
|
|
ldr r2, [r5, #0x0]
|
|
add r3, r1, #0x0
|
|
_0201D502:
|
|
add r6, r2, #0x0
|
|
add r6, #0x3c
|
|
ldrb r6, [r6, #0x0]
|
|
cmp r6, #0x3
|
|
beq _0201D518
|
|
ldr r6, [r5, #0x0]
|
|
add r6, r6, r3
|
|
add r6, #0x3c
|
|
ldrb r6, [r6, #0x0]
|
|
cmp r6, #0x4
|
|
bne _0201D522
|
|
_0201D518:
|
|
ldr r6, [r5, #0x0]
|
|
add r6, r6, r3
|
|
add r6, #0x10
|
|
cmp r6, r0
|
|
beq _0201D52E
|
|
_0201D522:
|
|
ldr r6, [r5, #0x4]
|
|
add r1, r1, #0x1
|
|
add r2, #0x54
|
|
add r3, #0x54
|
|
cmp r1, r6
|
|
blt _0201D502
|
|
_0201D52E:
|
|
cmp r1, r4
|
|
bge _0201D562
|
|
mov r0, #0x54
|
|
add r4, r1, #0x0
|
|
mul r4, r0
|
|
ldr r0, [r5, #0x0]
|
|
add r0, r0, r4
|
|
bl sub_0201DE4C
|
|
ldr r0, _0201D564 ; =UNK_021C5994
|
|
ldr r1, [r0, #0x0]
|
|
ldr r2, [r1, #0x0]
|
|
add r2, #0x3c
|
|
ldrb r1, [r2, r4]
|
|
cmp r1, #0x3
|
|
bne _0201D554
|
|
mov r0, #0x2
|
|
strb r0, [r2, r4]
|
|
pop {r4-r6, pc}
|
|
_0201D554:
|
|
mov r1, #0x0
|
|
strb r1, [r2, r4]
|
|
ldr r0, [r0, #0x0]
|
|
ldr r0, [r0, #0x0]
|
|
add r0, r0, r4
|
|
bl sub_0201D690
|
|
_0201D562:
|
|
pop {r4-r6, pc}
|
|
.balign 4
|
|
_0201D564: .word UNK_021C5994
|
|
|
|
thumb_func_start sub_0201D568
|
|
sub_0201D568: ; 0x0201D568
|
|
push {r3-r7, lr}
|
|
sub sp, #0x18
|
|
add r6, r0, #0x0
|
|
add r5, r2, #0x0
|
|
add r4, r3, #0x0
|
|
cmp r1, #0x0
|
|
bne _0201D5A0
|
|
add r1, r5, #0x0
|
|
add r2, sp, #0x14
|
|
add r3, sp, #0x10
|
|
bl sub_0201DF44
|
|
add r7, r0, #0x0
|
|
beq _0201D5E0
|
|
add r0, r6, #0x0
|
|
add r1, r5, #0x0
|
|
bl sub_0201DF94
|
|
str r5, [r4, #0x8]
|
|
str r6, [r4, #0x0]
|
|
cmp r5, #0x1
|
|
bne _0201D59A
|
|
ldr r0, [sp, #0x14]
|
|
str r0, [r4, #0x4]
|
|
b _0201D5E0
|
|
_0201D59A:
|
|
ldr r0, [sp, #0x10]
|
|
str r0, [r4, #0x4]
|
|
b _0201D5E0
|
|
_0201D5A0:
|
|
add r0, sp, #0xc
|
|
str r0, [sp, #0x0]
|
|
add r0, sp, #0x8
|
|
str r0, [sp, #0x4]
|
|
add r0, r5, #0x0
|
|
add r1, sp, #0x14
|
|
add r2, sp, #0x10
|
|
add r3, r6, #0x0
|
|
bl sub_0201D86C
|
|
add r7, r0, #0x0
|
|
beq _0201D5E0
|
|
ldr r0, [sp, #0x8]
|
|
str r0, [sp, #0x0]
|
|
ldr r1, [sp, #0x14]
|
|
ldr r2, [sp, #0x10]
|
|
ldr r3, [sp, #0xc]
|
|
add r0, r5, #0x0
|
|
bl sub_0201D948
|
|
str r5, [r4, #0x8]
|
|
cmp r5, #0x1
|
|
bne _0201D5D8
|
|
ldr r0, [sp, #0xc]
|
|
str r0, [r4, #0x0]
|
|
ldr r0, [sp, #0x14]
|
|
str r0, [r4, #0x4]
|
|
b _0201D5E0
|
|
_0201D5D8:
|
|
ldr r0, [sp, #0x8]
|
|
str r0, [r4, #0x0]
|
|
ldr r0, [sp, #0x10]
|
|
str r0, [r4, #0x4]
|
|
_0201D5E0:
|
|
add r0, r7, #0x0
|
|
add sp, #0x18
|
|
pop {r3-r7, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0201D5E8
|
|
sub_0201D5E8: ; 0x0201D5E8
|
|
push {r3-r5, lr}
|
|
add r4, r0, #0x0
|
|
ldr r1, [r4, #0x8]
|
|
mov r0, #0x1
|
|
tst r0, r1
|
|
beq _0201D61E
|
|
ldr r1, _0201D654 ; =UNK_021C5994
|
|
ldr r0, [r4, #0x0]
|
|
ldr r1, [r1, #0x0]
|
|
ldr r1, [r1, #0x2c]
|
|
bl sub_0201DF2C
|
|
add r5, r0, #0x0
|
|
ldr r0, _0201D654 ; =UNK_021C5994
|
|
ldr r1, [r4, #0x4]
|
|
ldr r2, [r0, #0x0]
|
|
ldr r0, [r2, #0x1c]
|
|
sub r0, r1, r0
|
|
ldr r1, [r2, #0x2c]
|
|
bl sub_0201DF2C
|
|
ldr r2, _0201D654 ; =UNK_021C5994
|
|
add r1, r5, #0x0
|
|
ldr r2, [r2, #0x0]
|
|
ldr r2, [r2, #0x34]
|
|
bl sub_0201DDFC
|
|
_0201D61E:
|
|
ldr r1, [r4, #0x8]
|
|
mov r0, #0x2
|
|
tst r0, r1
|
|
beq _0201D650
|
|
ldr r1, _0201D654 ; =UNK_021C5994
|
|
ldr r0, [r4, #0x0]
|
|
ldr r1, [r1, #0x0]
|
|
ldr r1, [r1, #0x30]
|
|
bl sub_0201DF2C
|
|
add r5, r0, #0x0
|
|
ldr r0, _0201D654 ; =UNK_021C5994
|
|
ldr r1, [r4, #0x4]
|
|
ldr r2, [r0, #0x0]
|
|
ldr r0, [r2, #0x20]
|
|
sub r0, r1, r0
|
|
ldr r1, [r2, #0x30]
|
|
bl sub_0201DF2C
|
|
ldr r2, _0201D654 ; =UNK_021C5994
|
|
add r1, r5, #0x0
|
|
ldr r2, [r2, #0x0]
|
|
ldr r2, [r2, #0x38]
|
|
bl sub_0201DDFC
|
|
_0201D650:
|
|
pop {r3-r5, pc}
|
|
nop
|
|
_0201D654: .word UNK_021C5994
|
|
|
|
thumb_func_start sub_0201D658
|
|
sub_0201D658: ; 0x0201D658
|
|
push {r3, lr}
|
|
ldr r0, _0201D670 ; =UNK_021C5994
|
|
ldr r0, [r0, #0x0]
|
|
cmp r0, #0x0
|
|
bne _0201D666
|
|
bl GF_AssertFail
|
|
_0201D666:
|
|
ldr r1, _0201D670 ; =UNK_021C5994
|
|
mov r2, #0x0
|
|
ldr r0, [r1, #0x0]
|
|
str r2, [r1, #0x0]
|
|
pop {r3, pc}
|
|
.balign 4
|
|
_0201D670: .word UNK_021C5994
|
|
|
|
thumb_func_start sub_0201D674
|
|
sub_0201D674: ; 0x0201D674
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
ldr r0, _0201D68C ; =UNK_021C5994
|
|
ldr r0, [r0, #0x0]
|
|
cmp r0, #0x0
|
|
beq _0201D684
|
|
bl GF_AssertFail
|
|
_0201D684:
|
|
ldr r0, _0201D68C ; =UNK_021C5994
|
|
str r4, [r0, #0x0]
|
|
pop {r4, pc}
|
|
nop
|
|
_0201D68C: .word UNK_021C5994
|
|
|
|
thumb_func_start sub_0201D690
|
|
sub_0201D690: ; 0x0201D690
|
|
mov r2, #0x0
|
|
str r2, [r0, #0x0]
|
|
str r2, [r0, #0x4]
|
|
strb r2, [r0, #0x8]
|
|
sub r1, r2, #0x1
|
|
str r1, [r0, #0xc]
|
|
str r2, [r0, #0x34]
|
|
add r1, r0, #0x0
|
|
str r2, [r0, #0x38]
|
|
add r1, #0x3c
|
|
strb r2, [r1, #0x0]
|
|
str r2, [r0, #0x40]
|
|
ldr r3, _0201D6B0 ; =NNS_G2dInitImageProxy
|
|
add r0, #0x10
|
|
bx r3
|
|
nop
|
|
_0201D6B0: .word NNS_G2dInitImageProxy
|
|
|
|
thumb_func_start sub_0201D6B4
|
|
sub_0201D6B4: ; 0x0201D6B4
|
|
ldr r2, [r0, #0x0]
|
|
str r2, [r1, #0x0]
|
|
ldr r2, [r0, #0x8]
|
|
str r2, [r1, #0xc]
|
|
ldr r2, [r0, #0x4]
|
|
str r2, [r1, #0x4]
|
|
ldr r2, [r1, #0x0]
|
|
ldr r2, [r2, #0xc]
|
|
lsr r2, r2, #0x8
|
|
strb r2, [r1, #0x8]
|
|
ldr r0, [r0, #0xc]
|
|
str r0, [r1, #0x44]
|
|
mov r0, #0x0
|
|
str r0, [r1, #0x48]
|
|
str r0, [r1, #0x4c]
|
|
str r0, [r1, #0x50]
|
|
mov r0, #0x1
|
|
bx lr
|
|
|
|
thumb_func_start sub_0201D6D8
|
|
sub_0201D6D8: ; 0x0201D6D8
|
|
push {r3-r6}
|
|
ldr r2, _0201D720 ; =UNK_021C5994
|
|
mov r1, #0x0
|
|
ldr r5, [r2, #0x0]
|
|
ldr r4, [r5, #0x4]
|
|
cmp r4, #0x0
|
|
ble _0201D70A
|
|
ldr r2, [r5, #0x0]
|
|
add r3, r1, #0x0
|
|
_0201D6EA:
|
|
add r6, r2, #0x0
|
|
add r6, #0x3c
|
|
ldrb r6, [r6, #0x0]
|
|
cmp r6, #0x0
|
|
beq _0201D6FE
|
|
ldr r6, [r5, #0x0]
|
|
add r6, r6, r3
|
|
add r6, #0x10
|
|
cmp r6, r0
|
|
beq _0201D70A
|
|
_0201D6FE:
|
|
ldr r6, [r5, #0x4]
|
|
add r1, r1, #0x1
|
|
add r2, #0x54
|
|
add r3, #0x54
|
|
cmp r1, r6
|
|
blt _0201D6EA
|
|
_0201D70A:
|
|
cmp r1, r4
|
|
blt _0201D714
|
|
mov r0, #0x0
|
|
pop {r3-r6}
|
|
bx lr
|
|
_0201D714:
|
|
mov r0, #0x54
|
|
ldr r2, [r5, #0x0]
|
|
mul r0, r1
|
|
add r0, r2, r0
|
|
pop {r3-r6}
|
|
bx lr
|
|
.balign 4
|
|
_0201D720: .word UNK_021C5994
|
|
|
|
thumb_func_start sub_0201D724
|
|
sub_0201D724: ; 0x0201D724
|
|
push {r3, lr}
|
|
ldrb r1, [r0, #0x8]
|
|
mov r2, #0x1
|
|
cmp r1, #0x0
|
|
beq _0201D736
|
|
mov r1, #0x2
|
|
add r0, #0x3c
|
|
strb r1, [r0, #0x0]
|
|
b _0201D750
|
|
_0201D736:
|
|
add r1, r0, #0x0
|
|
add r1, #0x3c
|
|
strb r2, [r1, #0x0]
|
|
ldr r1, [r0, #0x44]
|
|
cmp r1, #0x0
|
|
bne _0201D74A
|
|
bl sub_0201D754
|
|
add r2, r0, #0x0
|
|
b _0201D750
|
|
_0201D74A:
|
|
bl sub_0201D788
|
|
add r2, r0, #0x0
|
|
_0201D750:
|
|
add r0, r2, #0x0
|
|
pop {r3, pc}
|
|
|
|
thumb_func_start sub_0201D754
|
|
sub_0201D754: ; 0x0201D754
|
|
push {r3-r5, lr}
|
|
sub sp, #0x8
|
|
add r5, r0, #0x0
|
|
ldr r0, [r5, #0x0]
|
|
ldr r1, [r5, #0x4]
|
|
ldr r0, [r0, #0x10]
|
|
add r2, sp, #0x4
|
|
add r3, sp, #0x0
|
|
bl sub_0201DF44
|
|
add r4, r0, #0x0
|
|
beq _0201D780
|
|
ldr r1, [sp, #0x4]
|
|
ldr r2, [sp, #0x0]
|
|
add r0, r5, #0x0
|
|
bl sub_0201D858
|
|
ldr r0, [r5, #0x0]
|
|
ldr r1, [r5, #0x4]
|
|
ldr r0, [r0, #0x10]
|
|
bl sub_0201DF94
|
|
_0201D780:
|
|
add r0, r4, #0x0
|
|
add sp, #0x8
|
|
pop {r3-r5, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0201D788
|
|
sub_0201D788: ; 0x0201D788
|
|
push {r4, lr}
|
|
sub sp, #0x18
|
|
add r4, r0, #0x0
|
|
add r0, sp, #0xc
|
|
str r0, [sp, #0x0]
|
|
add r0, sp, #0x8
|
|
str r0, [sp, #0x4]
|
|
ldr r3, [r4, #0x0]
|
|
ldr r0, [r4, #0x4]
|
|
ldr r3, [r3, #0x10]
|
|
add r1, sp, #0x14
|
|
add r2, sp, #0x10
|
|
bl sub_0201D86C
|
|
cmp r0, #0x0
|
|
bne _0201D7AE
|
|
add sp, #0x18
|
|
mov r0, #0x0
|
|
pop {r4, pc}
|
|
_0201D7AE:
|
|
ldr r1, [sp, #0x14]
|
|
ldr r2, [sp, #0x10]
|
|
add r0, r4, #0x0
|
|
bl sub_0201D918
|
|
mov r0, #0x1
|
|
str r0, [r4, #0x48]
|
|
ldr r0, [sp, #0xc]
|
|
str r0, [r4, #0x4c]
|
|
ldr r0, [sp, #0x8]
|
|
str r0, [r4, #0x50]
|
|
add r0, r4, #0x0
|
|
bl sub_0201D9B0
|
|
ldr r0, [sp, #0x8]
|
|
str r0, [sp, #0x0]
|
|
ldr r0, [r4, #0x4]
|
|
ldr r1, [sp, #0x14]
|
|
ldr r2, [sp, #0x10]
|
|
ldr r3, [sp, #0xc]
|
|
bl sub_0201D948
|
|
mov r0, #0x1
|
|
add sp, #0x18
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_0201D7E0
|
|
sub_0201D7E0: ; 0x0201D7E0
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
ldr r1, [r4, #0x48]
|
|
cmp r1, #0x0
|
|
beq _0201D7EE
|
|
bl sub_0201DE4C
|
|
_0201D7EE:
|
|
add r0, r4, #0x0
|
|
bl sub_0201D690
|
|
pop {r4, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0201D7F8
|
|
sub_0201D7F8: ; 0x0201D7F8
|
|
push {r4-r5}
|
|
ldr r2, _0201D82C ; =UNK_021C5994
|
|
mov r1, #0x0
|
|
ldr r5, [r2, #0x0]
|
|
ldr r2, [r5, #0x4]
|
|
cmp r2, #0x0
|
|
ble _0201D824
|
|
ldr r2, [r5, #0x0]
|
|
add r4, r2, #0x0
|
|
_0201D80A:
|
|
ldr r3, [r4, #0xc]
|
|
cmp r0, r3
|
|
bne _0201D81A
|
|
mov r0, #0x54
|
|
mul r0, r1
|
|
add r0, r2, r0
|
|
pop {r4-r5}
|
|
bx lr
|
|
_0201D81A:
|
|
ldr r3, [r5, #0x4]
|
|
add r1, r1, #0x1
|
|
add r4, #0x54
|
|
cmp r1, r3
|
|
blt _0201D80A
|
|
_0201D824:
|
|
mov r0, #0x0
|
|
pop {r4-r5}
|
|
bx lr
|
|
nop
|
|
_0201D82C: .word UNK_021C5994
|
|
|
|
thumb_func_start sub_0201D830
|
|
sub_0201D830: ; 0x0201D830
|
|
cmp r1, #0x1
|
|
bne _0201D83C
|
|
mov r1, #0x1
|
|
lsl r1, r1, #0x1a
|
|
ldr r2, [r1, #0x0]
|
|
b _0201D840
|
|
_0201D83C:
|
|
ldr r1, _0201D850 ; =0x04001000
|
|
ldr r2, [r1, #0x0]
|
|
_0201D840:
|
|
ldr r1, _0201D854 ; =0x00300010
|
|
and r2, r1
|
|
ldr r1, [r0, #0x0]
|
|
str r2, [r1, #0x8]
|
|
ldr r0, [r0, #0x0]
|
|
ldr r0, [r0, #0x8]
|
|
bx lr
|
|
nop
|
|
_0201D850: .word 0x04001000
|
|
_0201D854: .word 0x00300010
|
|
|
|
thumb_func_start sub_0201D858
|
|
sub_0201D858: ; 0x0201D858
|
|
push {r3, lr}
|
|
str r1, [r0, #0x34]
|
|
str r2, [r0, #0x38]
|
|
ldrb r1, [r0, #0x8]
|
|
cmp r1, #0x0
|
|
bne _0201D868
|
|
bl sub_0201D9B0
|
|
_0201D868:
|
|
pop {r3, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0201D86C
|
|
sub_0201D86C: ; 0x0201D86C
|
|
push {r3-r7, lr}
|
|
add r5, r0, #0x0
|
|
ldr r0, [sp, #0x1c]
|
|
add r6, r2, #0x0
|
|
str r0, [sp, #0x1c]
|
|
mov r2, #0x1
|
|
add r0, r5, #0x0
|
|
add r4, r1, #0x0
|
|
str r3, [sp, #0x0]
|
|
ldr r7, [sp, #0x18]
|
|
tst r0, r2
|
|
beq _0201D8C4
|
|
ldr r1, _0201D914 ; =UNK_021C5994
|
|
add r0, r3, #0x0
|
|
ldr r1, [r1, #0x0]
|
|
ldr r1, [r1, #0x2c]
|
|
bl sub_0201DF10
|
|
ldr r1, _0201D914 ; =UNK_021C5994
|
|
str r0, [r7, #0x0]
|
|
ldr r1, [r1, #0x0]
|
|
ldr r1, [r1, #0x2c]
|
|
bl sub_0201DF2C
|
|
ldr r1, _0201D914 ; =UNK_021C5994
|
|
ldr r1, [r1, #0x0]
|
|
ldr r1, [r1, #0x34]
|
|
bl sub_0201DD74
|
|
mov r1, #0x0
|
|
mvn r1, r1
|
|
str r0, [r4, #0x0]
|
|
cmp r0, r1
|
|
bne _0201D8B8
|
|
bl GF_AssertFail
|
|
mov r0, #0x0
|
|
pop {r3-r7, pc}
|
|
_0201D8B8:
|
|
ldr r1, _0201D914 ; =UNK_021C5994
|
|
ldr r1, [r1, #0x0]
|
|
ldr r1, [r1, #0x2c]
|
|
bl sub_0201DF3C
|
|
str r0, [r4, #0x0]
|
|
_0201D8C4:
|
|
mov r0, #0x2
|
|
tst r0, r5
|
|
beq _0201D90E
|
|
ldr r1, _0201D914 ; =UNK_021C5994
|
|
ldr r0, [sp, #0x0]
|
|
ldr r1, [r1, #0x0]
|
|
mov r2, #0x1
|
|
ldr r1, [r1, #0x30]
|
|
bl sub_0201DF10
|
|
ldr r1, [sp, #0x1c]
|
|
str r0, [r1, #0x0]
|
|
ldr r1, _0201D914 ; =UNK_021C5994
|
|
ldr r1, [r1, #0x0]
|
|
ldr r1, [r1, #0x30]
|
|
bl sub_0201DF2C
|
|
ldr r1, _0201D914 ; =UNK_021C5994
|
|
ldr r1, [r1, #0x0]
|
|
ldr r1, [r1, #0x38]
|
|
bl sub_0201DD74
|
|
mov r1, #0x0
|
|
mvn r1, r1
|
|
str r0, [r6, #0x0]
|
|
cmp r0, r1
|
|
bne _0201D902
|
|
bl GF_AssertFail
|
|
mov r0, #0x0
|
|
pop {r3-r7, pc}
|
|
_0201D902:
|
|
ldr r1, _0201D914 ; =UNK_021C5994
|
|
ldr r1, [r1, #0x0]
|
|
ldr r1, [r1, #0x30]
|
|
bl sub_0201DF3C
|
|
str r0, [r6, #0x0]
|
|
_0201D90E:
|
|
mov r0, #0x1
|
|
pop {r3-r7, pc}
|
|
nop
|
|
_0201D914: .word UNK_021C5994
|
|
|
|
thumb_func_start sub_0201D918
|
|
sub_0201D918: ; 0x0201D918
|
|
push {r3-r4}
|
|
ldr r4, [r0, #0x4]
|
|
mov r3, #0x1
|
|
tst r3, r4
|
|
beq _0201D92C
|
|
ldr r3, _0201D944 ; =UNK_021C5994
|
|
ldr r3, [r3, #0x0]
|
|
ldr r3, [r3, #0x1c]
|
|
add r1, r1, r3
|
|
str r1, [r0, #0x34]
|
|
_0201D92C:
|
|
ldr r3, [r0, #0x4]
|
|
mov r1, #0x2
|
|
tst r1, r3
|
|
beq _0201D93E
|
|
ldr r1, _0201D944 ; =UNK_021C5994
|
|
ldr r1, [r1, #0x0]
|
|
ldr r1, [r1, #0x20]
|
|
add r1, r2, r1
|
|
str r1, [r0, #0x38]
|
|
_0201D93E:
|
|
pop {r3-r4}
|
|
bx lr
|
|
nop
|
|
_0201D944: .word UNK_021C5994
|
|
|
|
thumb_func_start sub_0201D948
|
|
sub_0201D948: ; 0x0201D948
|
|
push {r3-r7, lr}
|
|
add r5, r0, #0x0
|
|
mov r0, #0x1
|
|
add r4, r1, #0x0
|
|
add r6, r2, #0x0
|
|
tst r0, r5
|
|
beq _0201D97C
|
|
ldr r1, _0201D9AC ; =UNK_021C5994
|
|
add r0, r3, #0x0
|
|
ldr r1, [r1, #0x0]
|
|
ldr r1, [r1, #0x2c]
|
|
bl sub_0201DF2C
|
|
ldr r1, _0201D9AC ; =UNK_021C5994
|
|
add r7, r0, #0x0
|
|
ldr r1, [r1, #0x0]
|
|
add r0, r4, #0x0
|
|
ldr r1, [r1, #0x2c]
|
|
bl sub_0201DF2C
|
|
ldr r2, _0201D9AC ; =UNK_021C5994
|
|
add r1, r7, #0x0
|
|
ldr r2, [r2, #0x0]
|
|
ldr r2, [r2, #0x34]
|
|
bl sub_0201DD18
|
|
_0201D97C:
|
|
mov r0, #0x2
|
|
tst r0, r5
|
|
beq _0201D9A8
|
|
ldr r1, _0201D9AC ; =UNK_021C5994
|
|
ldr r0, [sp, #0x18]
|
|
ldr r1, [r1, #0x0]
|
|
ldr r1, [r1, #0x30]
|
|
bl sub_0201DF2C
|
|
ldr r1, _0201D9AC ; =UNK_021C5994
|
|
add r4, r0, #0x0
|
|
ldr r1, [r1, #0x0]
|
|
add r0, r6, #0x0
|
|
ldr r1, [r1, #0x30]
|
|
bl sub_0201DF2C
|
|
ldr r2, _0201D9AC ; =UNK_021C5994
|
|
add r1, r4, #0x0
|
|
ldr r2, [r2, #0x0]
|
|
ldr r2, [r2, #0x38]
|
|
bl sub_0201DD18
|
|
_0201D9A8:
|
|
pop {r3-r7, pc}
|
|
nop
|
|
_0201D9AC: .word UNK_021C5994
|
|
|
|
thumb_func_start sub_0201D9B0
|
|
sub_0201D9B0: ; 0x0201D9B0
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
add r0, #0x10
|
|
bl NNS_G2dInitImageProxy
|
|
ldr r1, [r4, #0x4]
|
|
cmp r1, #0x3
|
|
beq _0201D9C8
|
|
add r0, r4, #0x0
|
|
bl sub_0201D9DC
|
|
pop {r4, pc}
|
|
_0201D9C8:
|
|
add r0, r4, #0x0
|
|
mov r1, #0x1
|
|
bl sub_0201D9DC
|
|
add r0, r4, #0x0
|
|
mov r1, #0x2
|
|
bl sub_0201D9DC
|
|
pop {r4, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0201D9DC
|
|
sub_0201D9DC: ; 0x0201D9DC
|
|
push {r3-r5, lr}
|
|
add r5, r0, #0x0
|
|
ldr r2, [r5, #0x40]
|
|
add r4, r1, #0x0
|
|
cmp r2, #0x0
|
|
beq _0201D9EE
|
|
bl sub_0201D830
|
|
b _0201D9F0
|
|
_0201D9EE:
|
|
add r0, r4, #0x0
|
|
_0201D9F0:
|
|
cmp r4, #0x1
|
|
bne _0201D9FE
|
|
mov r2, #0x1
|
|
lsl r2, r2, #0x1a
|
|
ldr r1, [r5, #0x34]
|
|
ldr r2, [r2, #0x0]
|
|
b _0201DA04
|
|
_0201D9FE:
|
|
ldr r2, _0201DA34 ; =0x04001000
|
|
ldr r1, [r5, #0x38]
|
|
ldr r2, [r2, #0x0]
|
|
_0201DA04:
|
|
cmp r0, #0x0
|
|
ldr r0, [r5, #0x0]
|
|
bne _0201DA16
|
|
add r5, #0x10
|
|
add r2, r4, #0x0
|
|
add r3, r5, #0x0
|
|
bl NNS_G2dLoadImage2DMapping
|
|
b _0201DA20
|
|
_0201DA16:
|
|
add r5, #0x10
|
|
add r2, r4, #0x0
|
|
add r3, r5, #0x0
|
|
bl NNS_G2dLoadImage1DMapping
|
|
_0201DA20:
|
|
cmp r4, #0x1
|
|
bne _0201DA2C
|
|
mov r0, #0x1
|
|
lsl r0, r0, #0x1a
|
|
ldr r0, [r0, #0x0]
|
|
pop {r3-r5, pc}
|
|
_0201DA2C:
|
|
ldr r0, _0201DA34 ; =0x04001000
|
|
ldr r0, [r0, #0x0]
|
|
pop {r3-r5, pc}
|
|
nop
|
|
_0201DA34: .word 0x04001000
|
|
|
|
thumb_func_start sub_0201DA38
|
|
sub_0201DA38: ; 0x0201DA38
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
add r0, #0x10
|
|
bl NNS_G2dInitImageProxy
|
|
ldr r1, [r4, #0x4]
|
|
cmp r1, #0x3
|
|
beq _0201DA50
|
|
add r0, r4, #0x0
|
|
bl sub_0201DA64
|
|
pop {r4, pc}
|
|
_0201DA50:
|
|
add r0, r4, #0x0
|
|
mov r1, #0x1
|
|
bl sub_0201DA64
|
|
add r0, r4, #0x0
|
|
mov r1, #0x2
|
|
bl sub_0201DA64
|
|
pop {r4, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0201DA64
|
|
sub_0201DA64: ; 0x0201DA64
|
|
push {r3-r5, lr}
|
|
add r5, r0, #0x0
|
|
ldr r2, [r5, #0x40]
|
|
add r4, r1, #0x0
|
|
cmp r2, #0x0
|
|
beq _0201DA74
|
|
bl sub_0201D830
|
|
_0201DA74:
|
|
cmp r4, #0x1
|
|
bne _0201DA82
|
|
mov r0, #0x1
|
|
lsl r0, r0, #0x1a
|
|
ldr r1, [r5, #0x34]
|
|
ldr r0, [r0, #0x0]
|
|
b _0201DA88
|
|
_0201DA82:
|
|
ldr r0, _0201DAA8 ; =0x04001000
|
|
ldr r1, [r5, #0x38]
|
|
ldr r0, [r0, #0x0]
|
|
_0201DA88:
|
|
ldr r0, [r5, #0x0]
|
|
add r5, #0x10
|
|
add r2, r4, #0x0
|
|
add r3, r5, #0x0
|
|
bl NNS_G2dLoadImageVramTransfer
|
|
cmp r4, #0x1
|
|
bne _0201DAA0
|
|
mov r0, #0x1
|
|
lsl r0, r0, #0x1a
|
|
ldr r0, [r0, #0x0]
|
|
pop {r3-r5, pc}
|
|
_0201DAA0:
|
|
ldr r0, _0201DAA8 ; =0x04001000
|
|
ldr r0, [r0, #0x0]
|
|
pop {r3-r5, pc}
|
|
nop
|
|
_0201DAA8: .word 0x04001000
|
|
|
|
thumb_func_start sub_0201DAAC
|
|
sub_0201DAAC: ; 0x0201DAAC
|
|
push {r3-r4}
|
|
ldr r1, _0201DAE4 ; =UNK_021C5994
|
|
mov r0, #0x0
|
|
ldr r4, [r1, #0x0]
|
|
ldr r1, [r4, #0x4]
|
|
cmp r1, #0x0
|
|
ble _0201DADC
|
|
ldr r1, [r4, #0x0]
|
|
add r3, r1, #0x0
|
|
_0201DABE:
|
|
add r2, r3, #0x0
|
|
add r2, #0x3c
|
|
ldrb r2, [r2, #0x0]
|
|
cmp r2, #0x0
|
|
bne _0201DAD2
|
|
mov r2, #0x54
|
|
mul r2, r0
|
|
add r0, r1, r2
|
|
pop {r3-r4}
|
|
bx lr
|
|
_0201DAD2:
|
|
ldr r2, [r4, #0x4]
|
|
add r0, r0, #0x1
|
|
add r3, #0x54
|
|
cmp r0, r2
|
|
blt _0201DABE
|
|
_0201DADC:
|
|
mov r0, #0x0
|
|
pop {r3-r4}
|
|
bx lr
|
|
nop
|
|
_0201DAE4: .word UNK_021C5994
|
|
|
|
thumb_func_start sub_0201DAE8
|
|
sub_0201DAE8: ; 0x0201DAE8
|
|
push {r3, lr}
|
|
bl GX_GetBankForOBJ
|
|
cmp r0, #0x30
|
|
bgt _0201DB18
|
|
bge _0201DB60
|
|
cmp r0, #0x10
|
|
bgt _0201DB12
|
|
bge _0201DB54
|
|
cmp r0, #0x3
|
|
bhi _0201DB90
|
|
add r1, r0, r0
|
|
add r1, pc
|
|
ldrh r1, [r1, #0x6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_0201DB0A: ; jump table (using 16-bit offset)
|
|
.short _0201DB32 - _0201DB0A - 2; case 0
|
|
.short _0201DB78 - _0201DB0A - 2; case 1
|
|
.short _0201DB78 - _0201DB0A - 2; case 2
|
|
.short _0201DB84 - _0201DB0A - 2; case 3
|
|
_0201DB12:
|
|
cmp r0, #0x20
|
|
beq _0201DB3C
|
|
b _0201DB90
|
|
_0201DB18:
|
|
cmp r0, #0x50
|
|
bgt _0201DB24
|
|
bge _0201DB60
|
|
cmp r0, #0x40
|
|
beq _0201DB3C
|
|
b _0201DB90
|
|
_0201DB24:
|
|
cmp r0, #0x60
|
|
bgt _0201DB2C
|
|
beq _0201DB48
|
|
b _0201DB90
|
|
_0201DB2C:
|
|
cmp r0, #0x70
|
|
beq _0201DB6C
|
|
b _0201DB90
|
|
_0201DB32:
|
|
ldr r0, _0201DC38 ; =UNK_021C5994
|
|
mov r1, #0x0
|
|
ldr r0, [r0, #0x0]
|
|
str r1, [r0, #0x14]
|
|
b _0201DB98
|
|
_0201DB3C:
|
|
ldr r0, _0201DC38 ; =UNK_021C5994
|
|
mov r1, #0x1
|
|
ldr r0, [r0, #0x0]
|
|
lsl r1, r1, #0xe
|
|
str r1, [r0, #0x14]
|
|
b _0201DB98
|
|
_0201DB48:
|
|
ldr r0, _0201DC38 ; =UNK_021C5994
|
|
mov r1, #0x2
|
|
ldr r0, [r0, #0x0]
|
|
lsl r1, r1, #0xe
|
|
str r1, [r0, #0x14]
|
|
b _0201DB98
|
|
_0201DB54:
|
|
ldr r0, _0201DC38 ; =UNK_021C5994
|
|
mov r1, #0x1
|
|
ldr r0, [r0, #0x0]
|
|
lsl r1, r1, #0x10
|
|
str r1, [r0, #0x14]
|
|
b _0201DB98
|
|
_0201DB60:
|
|
ldr r0, _0201DC38 ; =UNK_021C5994
|
|
mov r1, #0x5
|
|
ldr r0, [r0, #0x0]
|
|
lsl r1, r1, #0xe
|
|
str r1, [r0, #0x14]
|
|
b _0201DB98
|
|
_0201DB6C:
|
|
ldr r0, _0201DC38 ; =UNK_021C5994
|
|
mov r1, #0x6
|
|
ldr r0, [r0, #0x0]
|
|
lsl r1, r1, #0xe
|
|
str r1, [r0, #0x14]
|
|
b _0201DB98
|
|
_0201DB78:
|
|
ldr r0, _0201DC38 ; =UNK_021C5994
|
|
mov r1, #0x2
|
|
ldr r0, [r0, #0x0]
|
|
lsl r1, r1, #0x10
|
|
str r1, [r0, #0x14]
|
|
b _0201DB98
|
|
_0201DB84:
|
|
ldr r0, _0201DC38 ; =UNK_021C5994
|
|
mov r1, #0x1
|
|
ldr r0, [r0, #0x0]
|
|
lsl r1, r1, #0x12
|
|
str r1, [r0, #0x14]
|
|
b _0201DB98
|
|
_0201DB90:
|
|
ldr r0, _0201DC38 ; =UNK_021C5994
|
|
mov r1, #0x0
|
|
ldr r0, [r0, #0x0]
|
|
str r1, [r0, #0x14]
|
|
_0201DB98:
|
|
bl GX_GetBankForSubOBJ
|
|
cmp r0, #0x0
|
|
beq _0201DBAE
|
|
cmp r0, #0x8
|
|
beq _0201DBC2
|
|
mov r1, #0x1
|
|
lsl r1, r1, #0x8
|
|
cmp r0, r1
|
|
beq _0201DBB8
|
|
b _0201DBCE
|
|
_0201DBAE:
|
|
ldr r0, _0201DC38 ; =UNK_021C5994
|
|
mov r1, #0x0
|
|
ldr r0, [r0, #0x0]
|
|
str r1, [r0, #0x18]
|
|
b _0201DBD6
|
|
_0201DBB8:
|
|
ldr r0, _0201DC38 ; =UNK_021C5994
|
|
lsl r1, r1, #0x6
|
|
ldr r0, [r0, #0x0]
|
|
str r1, [r0, #0x18]
|
|
b _0201DBD6
|
|
_0201DBC2:
|
|
ldr r0, _0201DC38 ; =UNK_021C5994
|
|
mov r1, #0x2
|
|
ldr r0, [r0, #0x0]
|
|
lsl r1, r1, #0x10
|
|
str r1, [r0, #0x18]
|
|
b _0201DBD6
|
|
_0201DBCE:
|
|
ldr r0, _0201DC38 ; =UNK_021C5994
|
|
mov r1, #0x0
|
|
ldr r0, [r0, #0x0]
|
|
str r1, [r0, #0x18]
|
|
_0201DBD6:
|
|
ldr r0, _0201DC38 ; =UNK_021C5994
|
|
ldr r1, [r0, #0x0]
|
|
ldr r0, [r1, #0x24]
|
|
ldr r1, [r1, #0x2c]
|
|
bl sub_0201DF3C
|
|
ldr r1, _0201DC38 ; =UNK_021C5994
|
|
ldr r3, [r1, #0x0]
|
|
ldr r2, [r3, #0x14]
|
|
sub r0, r2, r0
|
|
str r0, [r3, #0x1c]
|
|
ldr r1, [r1, #0x0]
|
|
ldr r0, [r1, #0x28]
|
|
ldr r1, [r1, #0x30]
|
|
bl sub_0201DF3C
|
|
ldr r1, _0201DC38 ; =UNK_021C5994
|
|
ldr r3, [r1, #0x0]
|
|
ldr r2, [r3, #0x18]
|
|
sub r0, r2, r0
|
|
str r0, [r3, #0x20]
|
|
ldr r1, [r1, #0x0]
|
|
mov r2, #0x0
|
|
ldr r0, [r1, #0x1c]
|
|
cmp r0, #0x0
|
|
blt _0201DC12
|
|
ldr r0, [r1, #0x20]
|
|
cmp r0, #0x0
|
|
blt _0201DC12
|
|
mov r2, #0x1
|
|
_0201DC12:
|
|
cmp r2, #0x0
|
|
bne _0201DC1A
|
|
bl GF_AssertFail
|
|
_0201DC1A:
|
|
ldr r0, _0201DC38 ; =UNK_021C5994
|
|
mov r2, #0x0
|
|
ldr r1, [r0, #0x0]
|
|
ldr r0, [r1, #0x1c]
|
|
cmp r0, #0x0
|
|
blt _0201DC2E
|
|
ldr r0, [r1, #0x20]
|
|
cmp r0, #0x0
|
|
blt _0201DC2E
|
|
mov r2, #0x1
|
|
_0201DC2E:
|
|
cmp r2, #0x0
|
|
bne _0201DC36
|
|
bl GF_AssertFail
|
|
_0201DC36:
|
|
pop {r3, pc}
|
|
.balign 4
|
|
_0201DC38: .word UNK_021C5994
|
|
|
|
thumb_func_start sub_0201DC3C
|
|
sub_0201DC3C: ; 0x0201DC3C
|
|
push {r3, lr}
|
|
ldr r0, _0201DC54 ; =UNK_021C5994
|
|
ldr r0, [r0, #0x0]
|
|
ldr r0, [r0, #0x34]
|
|
bl sub_0201DD00
|
|
ldr r0, _0201DC54 ; =UNK_021C5994
|
|
ldr r0, [r0, #0x0]
|
|
ldr r0, [r0, #0x38]
|
|
bl sub_0201DD00
|
|
pop {r3, pc}
|
|
.balign 4
|
|
_0201DC54: .word UNK_021C5994
|
|
|
|
thumb_func_start sub_0201DC58
|
|
sub_0201DC58: ; 0x0201DC58
|
|
push {r4-r6, lr}
|
|
add r5, r0, #0x0
|
|
ldr r0, _0201DCBC ; =UNK_021C5994
|
|
add r4, r1, #0x0
|
|
ldr r1, [r0, #0x0]
|
|
add r6, r2, #0x0
|
|
str r5, [r1, #0x24]
|
|
ldr r1, [r0, #0x0]
|
|
str r4, [r1, #0x28]
|
|
ldr r0, [r0, #0x0]
|
|
ldr r0, [r0, #0x34]
|
|
cmp r0, #0x0
|
|
beq _0201DC76
|
|
bl Heap_Free
|
|
_0201DC76:
|
|
ldr r0, _0201DCBC ; =UNK_021C5994
|
|
ldr r0, [r0, #0x0]
|
|
ldr r0, [r0, #0x38]
|
|
cmp r0, #0x0
|
|
beq _0201DC84
|
|
bl Heap_Free
|
|
_0201DC84:
|
|
ldr r0, _0201DCBC ; =UNK_021C5994
|
|
ldr r0, [r0, #0x0]
|
|
ldr r0, [r0, #0x24]
|
|
cmp r0, #0x0
|
|
beq _0201DC9C
|
|
add r0, r6, #0x0
|
|
lsr r1, r5, #0x3
|
|
bl Heap_Alloc
|
|
ldr r1, _0201DCBC ; =UNK_021C5994
|
|
ldr r1, [r1, #0x0]
|
|
str r0, [r1, #0x34]
|
|
_0201DC9C:
|
|
ldr r0, _0201DCBC ; =UNK_021C5994
|
|
ldr r0, [r0, #0x0]
|
|
ldr r0, [r0, #0x28]
|
|
cmp r0, #0x0
|
|
beq _0201DCB4
|
|
add r0, r6, #0x0
|
|
lsr r1, r4, #0x3
|
|
bl Heap_Alloc
|
|
ldr r1, _0201DCBC ; =UNK_021C5994
|
|
ldr r1, [r1, #0x0]
|
|
str r0, [r1, #0x38]
|
|
_0201DCB4:
|
|
bl sub_0201DC3C
|
|
pop {r4-r6, pc}
|
|
nop
|
|
_0201DCBC: .word UNK_021C5994
|
|
|
|
thumb_func_start sub_0201DCC0
|
|
sub_0201DCC0: ; 0x0201DCC0
|
|
push {r3, lr}
|
|
cmp r0, #0x0
|
|
beq _0201DCE2
|
|
ldr r1, _0201DCE4 ; =UNK_021C5994
|
|
ldr r2, [r1, #0x0]
|
|
ldr r1, [r2, #0x34]
|
|
cmp r0, r1
|
|
bne _0201DCDA
|
|
mov r1, #0x0
|
|
str r1, [r2, #0x24]
|
|
bl Heap_Free
|
|
pop {r3, pc}
|
|
_0201DCDA:
|
|
mov r1, #0x0
|
|
str r1, [r2, #0x28]
|
|
bl Heap_Free
|
|
_0201DCE2:
|
|
pop {r3, pc}
|
|
.balign 4
|
|
_0201DCE4: .word UNK_021C5994
|
|
|
|
thumb_func_start sub_0201DCE8
|
|
sub_0201DCE8: ; 0x0201DCE8
|
|
ldr r1, _0201DCFC ; =UNK_021C5994
|
|
ldr r2, [r1, #0x0]
|
|
ldr r1, [r2, #0x34]
|
|
cmp r0, r1
|
|
bne _0201DCF6
|
|
ldr r0, [r2, #0x24]
|
|
bx lr
|
|
_0201DCF6:
|
|
ldr r0, [r2, #0x28]
|
|
bx lr
|
|
nop
|
|
_0201DCFC: .word UNK_021C5994
|
|
|
|
thumb_func_start sub_0201DD00
|
|
sub_0201DD00: ; 0x0201DD00
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
beq _0201DD16
|
|
bl sub_0201DCE8
|
|
add r2, r0, #0x0
|
|
add r0, r4, #0x0
|
|
mov r1, #0x0
|
|
lsr r2, r2, #0x3
|
|
bl memset
|
|
_0201DD16:
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_0201DD18
|
|
sub_0201DD18: ; 0x0201DD18
|
|
push {r3-r7, lr}
|
|
sub sp, #0x8
|
|
add r5, r0, #0x0
|
|
add r6, r1, #0x0
|
|
add r4, r2, #0x0
|
|
beq _0201DD6E
|
|
add r0, r4, #0x0
|
|
bl sub_0201DCE8
|
|
add r6, r5, r6
|
|
add r7, r0, #0x0
|
|
cmp r5, r6
|
|
bhs _0201DD6E
|
|
_0201DD32:
|
|
cmp r5, r7
|
|
bhs _0201DD6E
|
|
add r0, r5, #0x0
|
|
add r1, sp, #0x4
|
|
add r2, sp, #0x0
|
|
bl sub_0201DFE4
|
|
add r0, sp, #0x0
|
|
ldrb r1, [r0, #0x0]
|
|
mov r0, #0x1
|
|
lsl r0, r1
|
|
ldr r1, [sp, #0x4]
|
|
ldrb r1, [r4, r1]
|
|
tst r0, r1
|
|
beq _0201DD54
|
|
bl GF_AssertFail
|
|
_0201DD54:
|
|
add r2, sp, #0x0
|
|
ldrb r3, [r2, #0x0]
|
|
ldr r1, [sp, #0x4]
|
|
mov r2, #0x1
|
|
lsl r2, r3
|
|
lsl r2, r2, #0x18
|
|
ldrb r0, [r4, r1]
|
|
lsr r2, r2, #0x18
|
|
add r5, r5, #0x1
|
|
orr r0, r2
|
|
strb r0, [r4, r1]
|
|
cmp r5, r6
|
|
blo _0201DD32
|
|
_0201DD6E:
|
|
add sp, #0x8
|
|
pop {r3-r7, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0201DD74
|
|
sub_0201DD74: ; 0x0201DD74
|
|
push {r3-r7, lr}
|
|
sub sp, #0x10
|
|
add r7, r0, #0x0
|
|
str r1, [sp, #0x0]
|
|
cmp r1, #0x0
|
|
beq _0201DDF2
|
|
add r0, r1, #0x0
|
|
bl sub_0201DCE8
|
|
mov r6, #0x0
|
|
str r0, [sp, #0x4]
|
|
cmp r0, #0x0
|
|
bls _0201DDF2
|
|
_0201DD8E:
|
|
add r0, r6, #0x0
|
|
add r1, sp, #0xc
|
|
add r2, sp, #0x8
|
|
bl sub_0201DFE4
|
|
add r0, sp, #0x8
|
|
ldrb r1, [r0, #0x0]
|
|
mov r0, #0x1
|
|
mov r4, #0x0
|
|
lsl r0, r1
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
b _0201DDD0
|
|
_0201DDA8:
|
|
add r5, r6, r4
|
|
add r0, r5, #0x0
|
|
add r1, sp, #0xc
|
|
add r2, sp, #0x8
|
|
bl sub_0201DFE4
|
|
add r0, sp, #0x8
|
|
ldrb r1, [r0, #0x0]
|
|
mov r0, #0x1
|
|
lsl r0, r1
|
|
lsl r0, r0, #0x18
|
|
ldr r1, [sp, #0x4]
|
|
lsr r0, r0, #0x18
|
|
cmp r5, r1
|
|
blo _0201DDCE
|
|
mov r0, #0x0
|
|
add sp, #0x10
|
|
mvn r0, r0
|
|
pop {r3-r7, pc}
|
|
_0201DDCE:
|
|
add r4, r4, #0x1
|
|
_0201DDD0:
|
|
ldr r2, [sp, #0xc]
|
|
ldr r1, [sp, #0x0]
|
|
ldrb r1, [r1, r2]
|
|
tst r0, r1
|
|
bne _0201DDDE
|
|
cmp r4, r7
|
|
bls _0201DDA8
|
|
_0201DDDE:
|
|
cmp r4, r7
|
|
bls _0201DDE8
|
|
add sp, #0x10
|
|
add r0, r6, #0x0
|
|
pop {r3-r7, pc}
|
|
_0201DDE8:
|
|
add r0, r6, r4
|
|
add r6, r0, #0x1
|
|
ldr r0, [sp, #0x4]
|
|
cmp r6, r0
|
|
blo _0201DD8E
|
|
_0201DDF2:
|
|
mov r0, #0x0
|
|
mvn r0, r0
|
|
add sp, #0x10
|
|
pop {r3-r7, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0201DDFC
|
|
sub_0201DDFC: ; 0x0201DDFC
|
|
push {r3-r7, lr}
|
|
sub sp, #0x8
|
|
add r5, r0, #0x0
|
|
add r4, r2, #0x0
|
|
beq _0201DE46
|
|
add r6, r5, r1
|
|
cmp r5, r6
|
|
bhs _0201DE46
|
|
add r7, sp, #0x0
|
|
_0201DE0E:
|
|
add r0, r5, #0x0
|
|
add r1, sp, #0x4
|
|
add r2, sp, #0x0
|
|
bl sub_0201DFE4
|
|
ldrb r1, [r7, #0x0]
|
|
mov r0, #0x1
|
|
lsl r0, r1
|
|
ldr r1, [sp, #0x4]
|
|
ldrb r1, [r4, r1]
|
|
tst r0, r1
|
|
bne _0201DE2A
|
|
bl GF_AssertFail
|
|
_0201DE2A:
|
|
ldrb r0, [r7, #0x0]
|
|
mov r1, #0x1
|
|
ldr r3, [sp, #0x4]
|
|
lsl r1, r0
|
|
mov r0, #0xff
|
|
eor r0, r1
|
|
lsl r0, r0, #0x18
|
|
ldrb r2, [r4, r3]
|
|
lsr r0, r0, #0x18
|
|
add r5, r5, #0x1
|
|
and r0, r2
|
|
strb r0, [r4, r3]
|
|
cmp r5, r6
|
|
blo _0201DE0E
|
|
_0201DE46:
|
|
add sp, #0x8
|
|
pop {r3-r7, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0201DE4C
|
|
sub_0201DE4C: ; 0x0201DE4C
|
|
push {r3-r5, lr}
|
|
add r4, r0, #0x0
|
|
ldr r0, [r4, #0x4]
|
|
mov r1, #0x1
|
|
tst r0, r1
|
|
beq _0201DE8A
|
|
add r0, r4, #0x0
|
|
add r0, #0x10
|
|
bl NNS_G2dGetImageLocation
|
|
ldr r1, _0201DECC ; =UNK_021C5994
|
|
ldr r2, [r1, #0x0]
|
|
ldr r1, [r2, #0x1c]
|
|
sub r0, r0, r1
|
|
ldr r1, [r2, #0x2c]
|
|
bl sub_0201DF2C
|
|
ldr r1, _0201DECC ; =UNK_021C5994
|
|
add r5, r0, #0x0
|
|
ldr r1, [r1, #0x0]
|
|
ldr r0, [r4, #0x4c]
|
|
ldr r1, [r1, #0x2c]
|
|
bl sub_0201DF2C
|
|
ldr r2, _0201DECC ; =UNK_021C5994
|
|
add r1, r0, #0x0
|
|
ldr r2, [r2, #0x0]
|
|
add r0, r5, #0x0
|
|
ldr r2, [r2, #0x34]
|
|
bl sub_0201DDFC
|
|
_0201DE8A:
|
|
ldr r0, [r4, #0x4]
|
|
mov r1, #0x2
|
|
tst r0, r1
|
|
beq _0201DEC4
|
|
add r0, r4, #0x0
|
|
add r0, #0x10
|
|
bl NNS_G2dGetImageLocation
|
|
ldr r1, _0201DECC ; =UNK_021C5994
|
|
ldr r2, [r1, #0x0]
|
|
ldr r1, [r2, #0x20]
|
|
sub r0, r0, r1
|
|
ldr r1, [r2, #0x30]
|
|
bl sub_0201DF2C
|
|
ldr r1, _0201DECC ; =UNK_021C5994
|
|
add r5, r0, #0x0
|
|
ldr r1, [r1, #0x0]
|
|
ldr r0, [r4, #0x50]
|
|
ldr r1, [r1, #0x30]
|
|
bl sub_0201DF2C
|
|
ldr r2, _0201DECC ; =UNK_021C5994
|
|
add r1, r0, #0x0
|
|
ldr r2, [r2, #0x0]
|
|
add r0, r5, #0x0
|
|
ldr r2, [r2, #0x38]
|
|
bl sub_0201DDFC
|
|
_0201DEC4:
|
|
mov r0, #0x0
|
|
str r0, [r4, #0x48]
|
|
pop {r3-r5, pc}
|
|
nop
|
|
_0201DECC: .word UNK_021C5994
|
|
|
|
thumb_func_start sub_0201DED0
|
|
sub_0201DED0: ; 0x0201DED0
|
|
ldr r1, _0201DF04 ; =0x00100010
|
|
cmp r0, r1
|
|
bgt _0201DEDE
|
|
bge _0201DEF4
|
|
cmp r0, #0x10
|
|
beq _0201DEF0
|
|
b _0201DF00
|
|
_0201DEDE:
|
|
ldr r1, _0201DF08 ; =0x00200010
|
|
cmp r0, r1
|
|
bgt _0201DEE8
|
|
beq _0201DEF8
|
|
b _0201DF00
|
|
_0201DEE8:
|
|
ldr r1, _0201DF0C ; =0x00300010
|
|
cmp r0, r1
|
|
beq _0201DEFC
|
|
b _0201DF00
|
|
_0201DEF0:
|
|
mov r0, #0x1
|
|
bx lr
|
|
_0201DEF4:
|
|
mov r0, #0x2
|
|
bx lr
|
|
_0201DEF8:
|
|
mov r0, #0x4
|
|
bx lr
|
|
_0201DEFC:
|
|
mov r0, #0x8
|
|
bx lr
|
|
_0201DF00:
|
|
mov r0, #0x1
|
|
bx lr
|
|
.balign 4
|
|
_0201DF04: .word 0x00100010
|
|
_0201DF08: .word 0x00200010
|
|
_0201DF0C: .word 0x00300010
|
|
|
|
thumb_func_start sub_0201DF10
|
|
sub_0201DF10: ; 0x0201DF10
|
|
push {r4-r6, lr}
|
|
add r5, r0, #0x0
|
|
add r4, r1, #0x0
|
|
add r6, r2, #0x0
|
|
bl _s32_div_f
|
|
cmp r1, #0x0
|
|
beq _0201DF28
|
|
sub r5, r5, r1
|
|
cmp r6, #0x1
|
|
bne _0201DF28
|
|
add r5, r5, r4
|
|
_0201DF28:
|
|
add r0, r5, #0x0
|
|
pop {r4-r6, pc}
|
|
|
|
thumb_func_start sub_0201DF2C
|
|
sub_0201DF2C: ; 0x0201DF2C
|
|
asr r2, r0, #0x4
|
|
lsr r2, r2, #0x1b
|
|
add r2, r0, r2
|
|
ldr r3, _0201DF38 ; =_s32_div_f
|
|
asr r0, r2, #0x5
|
|
bx r3
|
|
.balign 4
|
|
_0201DF38: .word _s32_div_f
|
|
|
|
thumb_func_start sub_0201DF3C
|
|
sub_0201DF3C: ; 0x0201DF3C
|
|
mul r1, r0
|
|
lsl r0, r1, #0x5
|
|
bx lr
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0201DF44
|
|
sub_0201DF44: ; 0x0201DF44
|
|
push {r3-r7, lr}
|
|
add r4, r1, #0x0
|
|
add r5, r0, #0x0
|
|
add r1, r2, #0x0
|
|
mov r0, #0x1
|
|
add r2, r4, #0x0
|
|
add r7, r3, #0x0
|
|
tst r2, r0
|
|
beq _0201DF6E
|
|
ldr r2, _0201DF90 ; =UNK_021C5994
|
|
ldr r2, [r2, #0x0]
|
|
ldr r6, [r2, #0xc]
|
|
ldr r2, [r2, #0x1c]
|
|
add r3, r6, r5
|
|
cmp r3, r2
|
|
bls _0201DF6C
|
|
bl GF_AssertFail
|
|
mov r0, #0x0
|
|
b _0201DF6E
|
|
_0201DF6C:
|
|
str r6, [r1, #0x0]
|
|
_0201DF6E:
|
|
mov r1, #0x2
|
|
tst r1, r4
|
|
beq _0201DF8C
|
|
ldr r1, _0201DF90 ; =UNK_021C5994
|
|
ldr r1, [r1, #0x0]
|
|
ldr r3, [r1, #0x10]
|
|
ldr r1, [r1, #0x20]
|
|
add r2, r3, r5
|
|
cmp r2, r1
|
|
bls _0201DF8A
|
|
bl GF_AssertFail
|
|
mov r0, #0x0
|
|
pop {r3-r7, pc}
|
|
_0201DF8A:
|
|
str r3, [r7, #0x0]
|
|
_0201DF8C:
|
|
pop {r3-r7, pc}
|
|
nop
|
|
_0201DF90: .word UNK_021C5994
|
|
|
|
thumb_func_start sub_0201DF94
|
|
sub_0201DF94: ; 0x0201DF94
|
|
push {r3-r5, lr}
|
|
add r4, r1, #0x0
|
|
add r5, r0, #0x0
|
|
mov r2, #0x1
|
|
add r0, r4, #0x0
|
|
tst r0, r2
|
|
beq _0201DFBC
|
|
ldr r0, _0201DFE0 ; =UNK_021C5994
|
|
ldr r3, [r0, #0x0]
|
|
ldr r1, [r3, #0xc]
|
|
add r1, r1, r5
|
|
str r1, [r3, #0xc]
|
|
ldr r1, [r0, #0x0]
|
|
ldr r0, [r1, #0xc]
|
|
ldr r1, [r1, #0x2c]
|
|
bl sub_0201DF10
|
|
ldr r1, _0201DFE0 ; =UNK_021C5994
|
|
ldr r1, [r1, #0x0]
|
|
str r0, [r1, #0xc]
|
|
_0201DFBC:
|
|
mov r0, #0x2
|
|
tst r0, r4
|
|
beq _0201DFDE
|
|
ldr r0, _0201DFE0 ; =UNK_021C5994
|
|
ldr r2, [r0, #0x0]
|
|
ldr r1, [r2, #0x10]
|
|
add r1, r1, r5
|
|
str r1, [r2, #0x10]
|
|
ldr r1, [r0, #0x0]
|
|
mov r2, #0x1
|
|
ldr r0, [r1, #0x10]
|
|
ldr r1, [r1, #0x30]
|
|
bl sub_0201DF10
|
|
ldr r1, _0201DFE0 ; =UNK_021C5994
|
|
ldr r1, [r1, #0x0]
|
|
str r0, [r1, #0x10]
|
|
_0201DFDE:
|
|
pop {r3-r5, pc}
|
|
.balign 4
|
|
_0201DFE0: .word UNK_021C5994
|
|
|
|
thumb_func_start sub_0201DFE4
|
|
sub_0201DFE4: ; 0x0201DFE4
|
|
asr r3, r0, #0x3
|
|
str r3, [r1, #0x0]
|
|
mov r1, #0x7
|
|
and r0, r1
|
|
strb r0, [r2, #0x0]
|
|
bx lr
|
|
|
|
thumb_func_start sub_0201DFF0
|
|
sub_0201DFF0: ; 0x0201DFF0
|
|
push {r3-r4}
|
|
sub r0, r1, r0
|
|
ldr r4, [sp, #0x8]
|
|
str r0, [r3, #0x0]
|
|
bpl _0201E006
|
|
add r0, r2, r0
|
|
str r0, [r4, #0x0]
|
|
mov r0, #0x0
|
|
str r0, [r3, #0x0]
|
|
pop {r3-r4}
|
|
bx lr
|
|
_0201E006:
|
|
str r2, [r4, #0x0]
|
|
pop {r3-r4}
|
|
bx lr
|