Files
pokediamond/asm/filesystem.s
T
ProjectRevoTPP 3b932b9f2e update names
2020-04-20 19:05:55 -04:00

649 lines
12 KiB
ArmAsm

.include "asm/macros.inc"
.include "global.inc"
.text
thumb_func_start ReadNARCFile
ReadNARCFile: ; 0x02006314
push {r3-r7, lr}
sub sp, #0x60
add r4, r1, #0x0
mov r1, #0x0
str r0, [sp, #0x0]
str r1, [sp, #0x14]
str r1, [sp, #0x10]
str r1, [sp, #0xc]
add r0, sp, #0x8
strh r1, [r0, #0x0]
add r0, sp, #0x18
add r5, r2, #0x0
str r3, [sp, #0x4]
blx FS_InitFile
add r0, sp, #0x18
add r1, r4, #0x0
blx FS_OpenFile
add r0, sp, #0x18
mov r1, #0xc
mov r2, #0x0
blx FS_SeekFile
add r0, sp, #0x18
add r1, sp, #0x14
mov r2, #0x2
blx FS_ReadFile
ldr r4, [sp, #0x14]
add r0, sp, #0x18
add r1, r4, #0x4
mov r2, #0x0
blx FS_SeekFile
add r0, sp, #0x18
add r1, sp, #0x14
mov r2, #0x4
blx FS_ReadFile
add r0, sp, #0x18
add r1, sp, #0x8
mov r2, #0x2
blx FS_ReadFile
add r0, sp, #0x8
ldrh r0, [r0, #0x0]
cmp r0, r5
bgt _0200637A
bl ErrorHandling
_0200637A:
ldr r0, [sp, #0x14]
mov r2, #0x0
add r6, r4, r0
add r0, sp, #0x18
add r1, r6, #0x4
blx FS_SeekFile
add r0, sp, #0x18
add r1, sp, #0x14
mov r2, #0x4
blx FS_ReadFile
add r4, #0xc
lsl r1, r5, #0x3
add r0, sp, #0x18
add r1, r4, r1
mov r2, #0x0
ldr r7, [sp, #0x14]
blx FS_SeekFile
add r0, sp, #0x18
add r1, sp, #0x10
mov r2, #0x4
blx FS_ReadFile
add r0, sp, #0x18
add r1, sp, #0xc
mov r2, #0x4
blx FS_ReadFile
add r2, r6, r7
ldr r1, [sp, #0x10]
add r2, #0x8
add r2, r2, r1
ldr r1, [sp, #0x4]
add r0, sp, #0x18
add r1, r1, r2
mov r2, #0x0
blx FS_SeekFile
ldr r0, [sp, #0x78]
cmp r0, #0x0
bne _020063D6
ldr r1, [sp, #0xc]
ldr r0, [sp, #0x10]
sub r0, r1, r0
_020063D6:
str r0, [sp, #0x14]
cmp r0, #0x0
bne _020063E0
bl ErrorHandling
_020063E0:
ldr r1, [sp, #0x0]
ldr r2, [sp, #0x14]
add r0, sp, #0x18
blx FS_ReadFile
add r0, sp, #0x18
blx FS_CloseFile
add sp, #0x60
pop {r3-r7, pc}
thumb_func_start LoadFileIntoMemory
LoadFileIntoMemory: ; 0x020063F4
push {r3-r7, lr}
sub sp, #0x60
add r5, r1, #0x0
mov r1, #0x0
add r4, r0, #0x0
str r1, [sp, #0x14]
str r1, [sp, #0x10]
str r1, [sp, #0xc]
add r0, sp, #0x8
strh r1, [r0, #0x0]
add r0, sp, #0x18
str r2, [sp, #0x0]
str r3, [sp, #0x4]
blx FS_InitFile
add r0, sp, #0x18
add r1, r4, #0x0
blx FS_OpenFile
add r0, sp, #0x18
mov r1, #0xc
mov r2, #0x0
blx FS_SeekFile
add r0, sp, #0x18
add r1, sp, #0x14
mov r2, #0x2
blx FS_ReadFile
ldr r4, [sp, #0x14]
add r0, sp, #0x18
add r1, r4, #0x4
mov r2, #0x0
blx FS_SeekFile
add r0, sp, #0x18
add r1, sp, #0x14
mov r2, #0x4
blx FS_ReadFile
add r0, sp, #0x18
add r1, sp, #0x8
mov r2, #0x2
blx FS_ReadFile
add r0, sp, #0x8
ldrh r0, [r0, #0x0]
cmp r0, r5
bgt _0200645A
bl ErrorHandling
_0200645A:
ldr r0, [sp, #0x14]
mov r2, #0x0
add r6, r4, r0
add r0, sp, #0x18
add r1, r6, #0x4
blx FS_SeekFile
add r0, sp, #0x18
add r1, sp, #0x14
mov r2, #0x4
blx FS_ReadFile
add r4, #0xc
lsl r1, r5, #0x3
add r0, sp, #0x18
add r1, r4, r1
mov r2, #0x0
ldr r7, [sp, #0x14]
blx FS_SeekFile
add r0, sp, #0x18
add r1, sp, #0x10
mov r2, #0x4
blx FS_ReadFile
add r0, sp, #0x18
add r1, sp, #0xc
mov r2, #0x4
blx FS_ReadFile
add r2, r6, r7
ldr r1, [sp, #0x10]
add r2, #0x8
add r2, r2, r1
ldr r1, [sp, #0x4]
add r0, sp, #0x18
add r1, r1, r2
mov r2, #0x0
blx FS_SeekFile
ldr r0, [sp, #0x78]
cmp r0, #0x0
bne _020064B6
ldr r1, [sp, #0xc]
ldr r0, [sp, #0x10]
sub r0, r1, r0
_020064B6:
str r0, [sp, #0x14]
cmp r0, #0x0
bne _020064C0
bl ErrorHandling
_020064C0:
ldr r0, [sp, #0x7c]
cmp r0, #0x0
bne _020064D0
ldr r0, [sp, #0x0]
ldr r1, [sp, #0x14]
bl FUN_02016998
b _020064D8
_020064D0:
ldr r0, [sp, #0x0]
ldr r1, [sp, #0x14]
bl FUN_020169D8
_020064D8:
add r4, r0, #0x0
ldr r2, [sp, #0x14]
add r0, sp, #0x18
add r1, r4, #0x0
blx FS_ReadFile
add r0, sp, #0x18
blx FS_CloseFile
add r0, r4, #0x0
add sp, #0x60
pop {r3-r7, pc}
thumb_func_start LoadFromNARC
LoadFromNARC: ; 0x020064F0
push {r3-r4, lr}
sub sp, #0x4
mov r3, #0x0
lsl r4, r1, #0x2
ldr r1, _02006508 ; =0x021058A0
str r3, [sp, #0x0]
ldr r1, [r1, r4]
bl ReadNARCFile
add sp, #0x4
pop {r3-r4, pc}
nop
_02006508: .word 0x021058A0
thumb_func_start LoadFromNarc_2
LoadFromNarc_2: ; 0x0200650C
push {r4, lr}
sub sp, #0x8
mov r3, #0x0
str r3, [sp, #0x0]
lsl r4, r0, #0x2
ldr r0, _02006524 ; =0x021058A0
str r3, [sp, #0x4]
ldr r0, [r0, r4]
bl LoadFileIntoMemory
add sp, #0x8
pop {r4, pc}
.balign 4
_02006524: .word 0x021058A0
thumb_func_start FUN_02006528
FUN_02006528: ; 0x02006528
push {r4, lr}
sub sp, #0x8
mov r3, #0x0
str r3, [sp, #0x0]
mov r4, #0x1
str r4, [sp, #0x4]
lsl r4, r0, #0x2
ldr r0, _02006544 ; =0x021058A0
ldr r0, [r0, r4]
bl LoadFileIntoMemory
add sp, #0x8
pop {r4, pc}
nop
_02006544: .word 0x021058A0
thumb_func_start FUN_02006548
FUN_02006548: ; 0x02006548
push {r3-r4, lr}
sub sp, #0x4
ldr r4, [sp, #0x10]
str r4, [sp, #0x0]
lsl r4, r1, #0x2
ldr r1, _02006560 ; =0x021058A0
ldr r1, [r1, r4]
bl ReadNARCFile
add sp, #0x4
pop {r3-r4, pc}
nop
_02006560: .word 0x021058A0
thumb_func_start FUN_02006564
FUN_02006564: ; 0x02006564
push {r4, lr}
sub sp, #0x8
ldr r4, [sp, #0x10]
str r4, [sp, #0x0]
mov r4, #0x0
str r4, [sp, #0x4]
lsl r4, r0, #0x2
ldr r0, _02006580 ; =0x021058A0
ldr r0, [r0, r4]
bl LoadFileIntoMemory
add sp, #0x8
pop {r4, pc}
nop
_02006580: .word 0x021058A0
thumb_func_start FUN_02006584
FUN_02006584: ; 0x02006584
push {r4, lr}
sub sp, #0x8
ldr r4, [sp, #0x10]
str r4, [sp, #0x0]
mov r4, #0x1
str r4, [sp, #0x4]
lsl r4, r0, #0x2
ldr r0, _020065A0 ; =0x021058A0
ldr r0, [r0, r4]
bl LoadFileIntoMemory
add sp, #0x8
pop {r4, pc}
nop
_020065A0: .word 0x021058A0
thumb_func_start LoadFromNARC_7
LoadFromNARC_7: ; 0x020065A4
push {r3-r7, lr}
sub sp, #0x58
add r5, r1, #0x0
mov r1, #0x0
add r4, r0, #0x0
str r1, [sp, #0xc]
str r1, [sp, #0x8]
str r1, [sp, #0x4]
add r0, sp, #0x0
strh r1, [r0, #0x0]
add r0, sp, #0x10
blx FS_InitFile
ldr r1, _0200666C ; =0x021058A0
lsl r2, r4, #0x2
ldr r1, [r1, r2]
add r0, sp, #0x10
blx FS_OpenFile
add r0, sp, #0x10
mov r1, #0xc
mov r2, #0x0
blx FS_SeekFile
add r0, sp, #0x10
add r1, sp, #0xc
mov r2, #0x2
blx FS_ReadFile
ldr r4, [sp, #0xc]
add r0, sp, #0x10
add r1, r4, #0x4
mov r2, #0x0
blx FS_SeekFile
add r0, sp, #0x10
add r1, sp, #0xc
mov r2, #0x4
blx FS_ReadFile
add r0, sp, #0x10
add r1, sp, #0x0
mov r2, #0x2
blx FS_ReadFile
add r0, sp, #0x0
ldrh r0, [r0, #0x0]
cmp r0, r5
bgt _0200660A
bl ErrorHandling
_0200660A:
ldr r0, [sp, #0xc]
mov r2, #0x0
add r6, r4, r0
add r0, sp, #0x10
add r1, r6, #0x4
blx FS_SeekFile
add r0, sp, #0x10
add r1, sp, #0xc
mov r2, #0x4
blx FS_ReadFile
add r4, #0xc
lsl r1, r5, #0x3
add r0, sp, #0x10
add r1, r4, r1
mov r2, #0x0
ldr r7, [sp, #0xc]
blx FS_SeekFile
add r0, sp, #0x10
add r1, sp, #0x8
mov r2, #0x4
blx FS_ReadFile
add r0, sp, #0x10
add r1, sp, #0x4
mov r2, #0x4
blx FS_ReadFile
add r2, r6, r7
ldr r1, [sp, #0x8]
add r2, #0x8
add r1, r2, r1
add r0, sp, #0x10
mov r2, #0x0
blx FS_SeekFile
ldr r1, [sp, #0x4]
ldr r0, [sp, #0x8]
sub r0, r1, r0
str r0, [sp, #0xc]
bne _02006664
bl ErrorHandling
_02006664:
ldr r0, [sp, #0xc]
add sp, #0x58
pop {r3-r7, pc}
nop
_0200666C: .word 0x021058A0
thumb_func_start FUN_02006670
FUN_02006670: ; 0x02006670
push {r3-r5, lr}
add r5, r0, #0x0
add r0, r1, #0x0
mov r1, #0x54
bl FUN_02016998
add r4, r0, #0x0
beq _020066EC
mov r1, #0x0
str r1, [r4, #0x48]
blx FS_InitFile
ldr r1, _020066F0 ; =0x021058A0
lsl r2, r5, #0x2
ldr r1, [r1, r2]
add r0, r4, #0x0
blx FS_OpenFile
add r0, r4, #0x0
mov r1, #0xc
mov r2, #0x0
blx FS_SeekFile
add r1, r4, #0x0
add r0, r4, #0x0
add r1, #0x48
mov r2, #0x2
blx FS_ReadFile
ldr r1, [r4, #0x48]
add r0, r4, #0x0
add r1, r1, #0x4
mov r2, #0x0
blx FS_SeekFile
add r0, r4, #0x0
add r1, sp, #0x0
mov r2, #0x4
blx FS_ReadFile
add r1, r4, #0x0
add r0, r4, #0x0
add r1, #0x50
mov r2, #0x2
blx FS_ReadFile
ldr r1, [r4, #0x48]
ldr r0, [sp, #0x0]
mov r2, #0x0
add r5, r1, r0
add r0, r4, #0x0
add r1, r5, #0x4
blx FS_SeekFile
add r0, r4, #0x0
add r1, sp, #0x0
mov r2, #0x4
blx FS_ReadFile
ldr r0, [sp, #0x0]
add r0, r5, r0
str r0, [r4, #0x4c]
_020066EC:
add r0, r4, #0x0
pop {r3-r5, pc}
.balign 4
_020066F0: .word 0x021058A0
thumb_func_start FUN_020066F4
FUN_020066F4: ; 0x020066F4
push {r4, lr}
add r4, r0, #0x0
blx FS_CloseFile
add r0, r4, #0x0
bl FUN_02016A18
pop {r4, pc}
thumb_func_start FUN_02006704
FUN_02006704: ; 0x02006704
push {r4-r6, lr}
sub sp, #0x8
add r5, r0, #0x0
add r0, #0x50
ldrh r0, [r0, #0x0]
add r4, r1, #0x0
add r6, r2, #0x0
cmp r0, r4
bhi _0200671A
bl ErrorHandling
_0200671A:
ldr r2, [r5, #0x48]
lsl r1, r4, #0x3
add r2, #0xc
add r1, r2, r1
add r0, r5, #0x0
mov r2, #0x0
blx FS_SeekFile
add r0, r5, #0x0
add r1, sp, #0x4
mov r2, #0x4
blx FS_ReadFile
add r0, r5, #0x0
add r1, sp, #0x0
mov r2, #0x4
blx FS_ReadFile
ldr r2, [r5, #0x4c]
ldr r1, [sp, #0x4]
add r2, #0x8
add r1, r2, r1
add r0, r5, #0x0
mov r2, #0x0
blx FS_SeekFile
ldr r2, [sp, #0x0]
ldr r1, [sp, #0x4]
add r0, r6, #0x0
sub r1, r2, r1
bl FUN_02016998
add r4, r0, #0x0
beq _0200676C
ldr r3, [sp, #0x0]
ldr r2, [sp, #0x4]
add r0, r5, #0x0
add r1, r4, #0x0
sub r2, r3, r2
blx FS_ReadFile
_0200676C:
add r0, r4, #0x0
add sp, #0x8
pop {r4-r6, pc}
.balign 4
thumb_func_start FUN_02006774
FUN_02006774: ; 0x02006774
push {r4-r6, lr}
sub sp, #0x8
add r5, r0, #0x0
add r0, #0x50
ldrh r0, [r0, #0x0]
add r4, r1, #0x0
add r6, r2, #0x0
cmp r0, r4
bhi _0200678A
bl ErrorHandling
_0200678A:
ldr r2, [r5, #0x48]
lsl r1, r4, #0x3
add r2, #0xc
add r1, r2, r1
add r0, r5, #0x0
mov r2, #0x0
blx FS_SeekFile
add r0, r5, #0x0
add r1, sp, #0x4
mov r2, #0x4
blx FS_ReadFile
add r0, r5, #0x0
add r1, sp, #0x0
mov r2, #0x4
blx FS_ReadFile
ldr r2, [r5, #0x4c]
ldr r1, [sp, #0x4]
add r2, #0x8
add r1, r2, r1
add r0, r5, #0x0
mov r2, #0x0
blx FS_SeekFile
ldr r3, [sp, #0x0]
ldr r2, [sp, #0x4]
add r0, r5, #0x0
add r1, r6, #0x0
sub r2, r3, r2
blx FS_ReadFile
add sp, #0x8
pop {r4-r6, pc}
thumb_func_start FUN_020067D0
FUN_020067D0: ; 0x020067D0
push {r3-r5, lr}
sub sp, #0x8
add r5, r0, #0x0
add r0, #0x50
ldrh r0, [r0, #0x0]
add r4, r1, #0x0
cmp r0, r4
bhi _020067E4
bl ErrorHandling
_020067E4:
ldr r2, [r5, #0x48]
lsl r1, r4, #0x3
add r2, #0xc
add r1, r2, r1
add r0, r5, #0x0
mov r2, #0x0
blx FS_SeekFile
add r0, r5, #0x0
add r1, sp, #0x4
mov r2, #0x4
blx FS_ReadFile
add r0, r5, #0x0
add r1, sp, #0x0
mov r2, #0x4
blx FS_ReadFile
ldr r1, [sp, #0x0]
ldr r0, [sp, #0x4]
sub r0, r1, r0
add sp, #0x8
pop {r3-r5, pc}
.balign 4
thumb_func_start FUN_02006814
FUN_02006814: ; 0x02006814
push {r3-r7, lr}
add r5, r0, #0x0
add r0, #0x50
ldrh r0, [r0, #0x0]
add r4, r1, #0x0
add r6, r2, #0x0
add r7, r3, #0x0
cmp r0, r4
bhi _0200682A
bl ErrorHandling
_0200682A:
ldr r2, [r5, #0x48]
lsl r1, r4, #0x3
add r2, #0xc
add r1, r2, r1
add r0, r5, #0x0
mov r2, #0x0
blx FS_SeekFile
add r0, r5, #0x0
add r1, sp, #0x0
mov r2, #0x4
blx FS_ReadFile
ldr r2, [r5, #0x4c]
ldr r1, [sp, #0x0]
add r2, #0x8
add r1, r2, r1
add r0, r5, #0x0
add r1, r6, r1
mov r2, #0x0
blx FS_SeekFile
ldr r1, [sp, #0x18]
add r0, r5, #0x0
add r2, r7, #0x0
blx FS_ReadFile
pop {r3-r7, pc}
.balign 4