summaryrefslogtreecommitdiff
path: root/arm9/asm/filesystem.s
diff options
context:
space:
mode:
Diffstat (limited to 'arm9/asm/filesystem.s')
-rw-r--r--arm9/asm/filesystem.s1332
1 files changed, 667 insertions, 665 deletions
diff --git a/arm9/asm/filesystem.s b/arm9/asm/filesystem.s
index f3a28462..a3336558 100644
--- a/arm9/asm/filesystem.s
+++ b/arm9/asm/filesystem.s
@@ -1,665 +1,667 @@
- .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]
- bl FS_InitFile
- add r0, sp, #0x18
- add r1, r4, #0x0
- bl FS_OpenFile
- add r0, sp, #0x18
- mov r1, #0xc
- mov r2, #0x0
- bl FS_SeekFile
- add r0, sp, #0x18
- add r1, sp, #0x14
- mov r2, #0x2
- bl FS_ReadFile
- ldr r4, [sp, #0x14]
- add r0, sp, #0x18
- add r1, r4, #0x4
- mov r2, #0x0
- bl FS_SeekFile
- add r0, sp, #0x18
- add r1, sp, #0x14
- mov r2, #0x4
- bl FS_ReadFile
- add r0, sp, #0x18
- add r1, sp, #0x8
- mov r2, #0x2
- bl 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
- bl FS_SeekFile
- add r0, sp, #0x18
- add r1, sp, #0x14
- mov r2, #0x4
- bl FS_ReadFile
- add r4, #0xc
- lsl r1, r5, #0x3
- add r0, sp, #0x18
- add r1, r4, r1
- mov r2, #0x0
- ldr r7, [sp, #0x14]
- bl FS_SeekFile
- add r0, sp, #0x18
- add r1, sp, #0x10
- mov r2, #0x4
- bl FS_ReadFile
- add r0, sp, #0x18
- add r1, sp, #0xc
- mov r2, #0x4
- bl 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
- bl 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
- bl FS_ReadFile
- add r0, sp, #0x18
- bl 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]
- bl FS_InitFile
- add r0, sp, #0x18
- add r1, r4, #0x0
- bl FS_OpenFile
- add r0, sp, #0x18
- mov r1, #0xc
- mov r2, #0x0
- bl FS_SeekFile
- add r0, sp, #0x18
- add r1, sp, #0x14
- mov r2, #0x2
- bl FS_ReadFile
- ldr r4, [sp, #0x14]
- add r0, sp, #0x18
- add r1, r4, #0x4
- mov r2, #0x0
- bl FS_SeekFile
- add r0, sp, #0x18
- add r1, sp, #0x14
- mov r2, #0x4
- bl FS_ReadFile
- add r0, sp, #0x18
- add r1, sp, #0x8
- mov r2, #0x2
- bl 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
- bl FS_SeekFile
- add r0, sp, #0x18
- add r1, sp, #0x14
- mov r2, #0x4
- bl FS_ReadFile
- add r4, #0xc
- lsl r1, r5, #0x3
- add r0, sp, #0x18
- add r1, r4, r1
- mov r2, #0x0
- ldr r7, [sp, #0x14]
- bl FS_SeekFile
- add r0, sp, #0x18
- add r1, sp, #0x10
- mov r2, #0x4
- bl FS_ReadFile
- add r0, sp, #0x18
- add r1, sp, #0xc
- mov r2, #0x4
- bl 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
- bl 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
- bl FS_ReadFile
- add r0, sp, #0x18
- bl 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
- bl FS_InitFile
- ldr r1, _0200666C ; =0x021058A0
- lsl r2, r4, #0x2
- ldr r1, [r1, r2]
- add r0, sp, #0x10
- bl FS_OpenFile
- add r0, sp, #0x10
- mov r1, #0xc
- mov r2, #0x0
- bl FS_SeekFile
- add r0, sp, #0x10
- add r1, sp, #0xc
- mov r2, #0x2
- bl FS_ReadFile
- ldr r4, [sp, #0xc]
- add r0, sp, #0x10
- add r1, r4, #0x4
- mov r2, #0x0
- bl FS_SeekFile
- add r0, sp, #0x10
- add r1, sp, #0xc
- mov r2, #0x4
- bl FS_ReadFile
- add r0, sp, #0x10
- add r1, sp, #0x0
- mov r2, #0x2
- bl 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
- bl FS_SeekFile
- add r0, sp, #0x10
- add r1, sp, #0xc
- mov r2, #0x4
- bl FS_ReadFile
- add r4, #0xc
- lsl r1, r5, #0x3
- add r0, sp, #0x10
- add r1, r4, r1
- mov r2, #0x0
- ldr r7, [sp, #0xc]
- bl FS_SeekFile
- add r0, sp, #0x10
- add r1, sp, #0x8
- mov r2, #0x4
- bl FS_ReadFile
- add r0, sp, #0x10
- add r1, sp, #0x4
- mov r2, #0x4
- bl FS_ReadFile
- add r2, r6, r7
- ldr r1, [sp, #0x8]
- add r2, #0x8
- add r1, r2, r1
- add r0, sp, #0x10
- mov r2, #0x0
- bl 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]
- bl FS_InitFile
- ldr r1, _020066F0 ; =0x021058A0
- lsl r2, r5, #0x2
- ldr r1, [r1, r2]
- add r0, r4, #0x0
- bl FS_OpenFile
- add r0, r4, #0x0
- mov r1, #0xc
- mov r2, #0x0
- bl FS_SeekFile
- add r1, r4, #0x0
- add r0, r4, #0x0
- add r1, #0x48
- mov r2, #0x2
- bl FS_ReadFile
- ldr r1, [r4, #0x48]
- add r0, r4, #0x0
- add r1, r1, #0x4
- mov r2, #0x0
- bl FS_SeekFile
- add r0, r4, #0x0
- add r1, sp, #0x0
- mov r2, #0x4
- bl FS_ReadFile
- add r1, r4, #0x0
- add r0, r4, #0x0
- add r1, #0x50
- mov r2, #0x2
- bl 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
- bl FS_SeekFile
- add r0, r4, #0x0
- add r1, sp, #0x0
- mov r2, #0x4
- bl 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
- bl 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
- bl FS_SeekFile
- add r0, r5, #0x0
- add r1, sp, #0x4
- mov r2, #0x4
- bl FS_ReadFile
- add r0, r5, #0x0
- add r1, sp, #0x0
- mov r2, #0x4
- bl FS_ReadFile
- ldr r2, [r5, #0x4c]
- ldr r1, [sp, #0x4]
- add r2, #0x8
- add r1, r2, r1
- add r0, r5, #0x0
- mov r2, #0x0
- bl 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
- bl 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
- bl FS_SeekFile
- add r0, r5, #0x0
- add r1, sp, #0x4
- mov r2, #0x4
- bl FS_ReadFile
- add r0, r5, #0x0
- add r1, sp, #0x0
- mov r2, #0x4
- bl FS_ReadFile
- ldr r2, [r5, #0x4c]
- ldr r1, [sp, #0x4]
- add r2, #0x8
- add r1, r2, r1
- add r0, r5, #0x0
- mov r2, #0x0
- bl FS_SeekFile
- ldr r3, [sp, #0x0]
- ldr r2, [sp, #0x4]
- add r0, r5, #0x0
- add r1, r6, #0x0
- sub r2, r3, r2
- bl 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
- bl FS_SeekFile
- add r0, r5, #0x0
- add r1, sp, #0x4
- mov r2, #0x4
- bl FS_ReadFile
- add r0, r5, #0x0
- add r1, sp, #0x0
- mov r2, #0x4
- bl 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
- bl FS_SeekFile
- add r0, r5, #0x0
- add r1, sp, #0x0
- mov r2, #0x4
- bl 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
- bl FS_SeekFile
- ldr r1, [sp, #0x18]
- add r0, r5, #0x0
- add r2, r7, #0x0
- bl FS_ReadFile
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_02006864
-FUN_02006864: ; 0x02006864
- add r3, r1, #0x0
- add r1, r2, #0x0
- add r2, r3, #0x0
- ldr r3, _02006870 ; =FS_ReadFile
- bx r3
- nop
-_02006870: .word FS_ReadFile
-
- thumb_func_start FUN_02006874
-FUN_02006874: ; 0x02006874
- add r0, #0x50
- ldrh r0, [r0, #0x0]
- bx lr
- .balign 4
+ .include "asm/macros.inc"
+ .include "global.inc"
+
+ .extern UNK_021058A0
+
+ .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]
+ bl FS_InitFile
+ add r0, sp, #0x18
+ add r1, r4, #0x0
+ bl FS_OpenFile
+ add r0, sp, #0x18
+ mov r1, #0xc
+ mov r2, #0x0
+ bl FS_SeekFile
+ add r0, sp, #0x18
+ add r1, sp, #0x14
+ mov r2, #0x2
+ bl FS_ReadFile
+ ldr r4, [sp, #0x14]
+ add r0, sp, #0x18
+ add r1, r4, #0x4
+ mov r2, #0x0
+ bl FS_SeekFile
+ add r0, sp, #0x18
+ add r1, sp, #0x14
+ mov r2, #0x4
+ bl FS_ReadFile
+ add r0, sp, #0x18
+ add r1, sp, #0x8
+ mov r2, #0x2
+ bl 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
+ bl FS_SeekFile
+ add r0, sp, #0x18
+ add r1, sp, #0x14
+ mov r2, #0x4
+ bl FS_ReadFile
+ add r4, #0xc
+ lsl r1, r5, #0x3
+ add r0, sp, #0x18
+ add r1, r4, r1
+ mov r2, #0x0
+ ldr r7, [sp, #0x14]
+ bl FS_SeekFile
+ add r0, sp, #0x18
+ add r1, sp, #0x10
+ mov r2, #0x4
+ bl FS_ReadFile
+ add r0, sp, #0x18
+ add r1, sp, #0xc
+ mov r2, #0x4
+ bl 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
+ bl 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
+ bl FS_ReadFile
+ add r0, sp, #0x18
+ bl 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]
+ bl FS_InitFile
+ add r0, sp, #0x18
+ add r1, r4, #0x0
+ bl FS_OpenFile
+ add r0, sp, #0x18
+ mov r1, #0xc
+ mov r2, #0x0
+ bl FS_SeekFile
+ add r0, sp, #0x18
+ add r1, sp, #0x14
+ mov r2, #0x2
+ bl FS_ReadFile
+ ldr r4, [sp, #0x14]
+ add r0, sp, #0x18
+ add r1, r4, #0x4
+ mov r2, #0x0
+ bl FS_SeekFile
+ add r0, sp, #0x18
+ add r1, sp, #0x14
+ mov r2, #0x4
+ bl FS_ReadFile
+ add r0, sp, #0x18
+ add r1, sp, #0x8
+ mov r2, #0x2
+ bl 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
+ bl FS_SeekFile
+ add r0, sp, #0x18
+ add r1, sp, #0x14
+ mov r2, #0x4
+ bl FS_ReadFile
+ add r4, #0xc
+ lsl r1, r5, #0x3
+ add r0, sp, #0x18
+ add r1, r4, r1
+ mov r2, #0x0
+ ldr r7, [sp, #0x14]
+ bl FS_SeekFile
+ add r0, sp, #0x18
+ add r1, sp, #0x10
+ mov r2, #0x4
+ bl FS_ReadFile
+ add r0, sp, #0x18
+ add r1, sp, #0xc
+ mov r2, #0x4
+ bl 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
+ bl 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
+ bl FS_ReadFile
+ add r0, sp, #0x18
+ bl 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 ; =UNK_021058A0
+ str r3, [sp, #0x0]
+ ldr r1, [r1, r4]
+ bl ReadNARCFile
+ add sp, #0x4
+ pop {r3-r4, pc}
+ nop
+_02006508: .word UNK_021058A0
+
+ 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 ; =UNK_021058A0
+ str r3, [sp, #0x4]
+ ldr r0, [r0, r4]
+ bl LoadFileIntoMemory
+ add sp, #0x8
+ pop {r4, pc}
+ .balign 4
+_02006524: .word UNK_021058A0
+
+ 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 ; =UNK_021058A0
+ ldr r0, [r0, r4]
+ bl LoadFileIntoMemory
+ add sp, #0x8
+ pop {r4, pc}
+ nop
+_02006544: .word UNK_021058A0
+
+ 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 ; =UNK_021058A0
+ ldr r1, [r1, r4]
+ bl ReadNARCFile
+ add sp, #0x4
+ pop {r3-r4, pc}
+ nop
+_02006560: .word UNK_021058A0
+
+ 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 ; =UNK_021058A0
+ ldr r0, [r0, r4]
+ bl LoadFileIntoMemory
+ add sp, #0x8
+ pop {r4, pc}
+ nop
+_02006580: .word UNK_021058A0
+
+ 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 ; =UNK_021058A0
+ ldr r0, [r0, r4]
+ bl LoadFileIntoMemory
+ add sp, #0x8
+ pop {r4, pc}
+ nop
+_020065A0: .word UNK_021058A0
+
+ 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
+ bl FS_InitFile
+ ldr r1, _0200666C ; =UNK_021058A0
+ lsl r2, r4, #0x2
+ ldr r1, [r1, r2]
+ add r0, sp, #0x10
+ bl FS_OpenFile
+ add r0, sp, #0x10
+ mov r1, #0xc
+ mov r2, #0x0
+ bl FS_SeekFile
+ add r0, sp, #0x10
+ add r1, sp, #0xc
+ mov r2, #0x2
+ bl FS_ReadFile
+ ldr r4, [sp, #0xc]
+ add r0, sp, #0x10
+ add r1, r4, #0x4
+ mov r2, #0x0
+ bl FS_SeekFile
+ add r0, sp, #0x10
+ add r1, sp, #0xc
+ mov r2, #0x4
+ bl FS_ReadFile
+ add r0, sp, #0x10
+ add r1, sp, #0x0
+ mov r2, #0x2
+ bl 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
+ bl FS_SeekFile
+ add r0, sp, #0x10
+ add r1, sp, #0xc
+ mov r2, #0x4
+ bl FS_ReadFile
+ add r4, #0xc
+ lsl r1, r5, #0x3
+ add r0, sp, #0x10
+ add r1, r4, r1
+ mov r2, #0x0
+ ldr r7, [sp, #0xc]
+ bl FS_SeekFile
+ add r0, sp, #0x10
+ add r1, sp, #0x8
+ mov r2, #0x4
+ bl FS_ReadFile
+ add r0, sp, #0x10
+ add r1, sp, #0x4
+ mov r2, #0x4
+ bl FS_ReadFile
+ add r2, r6, r7
+ ldr r1, [sp, #0x8]
+ add r2, #0x8
+ add r1, r2, r1
+ add r0, sp, #0x10
+ mov r2, #0x0
+ bl 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 UNK_021058A0
+
+ 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]
+ bl FS_InitFile
+ ldr r1, _020066F0 ; =UNK_021058A0
+ lsl r2, r5, #0x2
+ ldr r1, [r1, r2]
+ add r0, r4, #0x0
+ bl FS_OpenFile
+ add r0, r4, #0x0
+ mov r1, #0xc
+ mov r2, #0x0
+ bl FS_SeekFile
+ add r1, r4, #0x0
+ add r0, r4, #0x0
+ add r1, #0x48
+ mov r2, #0x2
+ bl FS_ReadFile
+ ldr r1, [r4, #0x48]
+ add r0, r4, #0x0
+ add r1, r1, #0x4
+ mov r2, #0x0
+ bl FS_SeekFile
+ add r0, r4, #0x0
+ add r1, sp, #0x0
+ mov r2, #0x4
+ bl FS_ReadFile
+ add r1, r4, #0x0
+ add r0, r4, #0x0
+ add r1, #0x50
+ mov r2, #0x2
+ bl 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
+ bl FS_SeekFile
+ add r0, r4, #0x0
+ add r1, sp, #0x0
+ mov r2, #0x4
+ bl 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 UNK_021058A0
+
+ thumb_func_start FUN_020066F4
+FUN_020066F4: ; 0x020066F4
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl 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
+ bl FS_SeekFile
+ add r0, r5, #0x0
+ add r1, sp, #0x4
+ mov r2, #0x4
+ bl FS_ReadFile
+ add r0, r5, #0x0
+ add r1, sp, #0x0
+ mov r2, #0x4
+ bl FS_ReadFile
+ ldr r2, [r5, #0x4c]
+ ldr r1, [sp, #0x4]
+ add r2, #0x8
+ add r1, r2, r1
+ add r0, r5, #0x0
+ mov r2, #0x0
+ bl 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
+ bl 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
+ bl FS_SeekFile
+ add r0, r5, #0x0
+ add r1, sp, #0x4
+ mov r2, #0x4
+ bl FS_ReadFile
+ add r0, r5, #0x0
+ add r1, sp, #0x0
+ mov r2, #0x4
+ bl FS_ReadFile
+ ldr r2, [r5, #0x4c]
+ ldr r1, [sp, #0x4]
+ add r2, #0x8
+ add r1, r2, r1
+ add r0, r5, #0x0
+ mov r2, #0x0
+ bl FS_SeekFile
+ ldr r3, [sp, #0x0]
+ ldr r2, [sp, #0x4]
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ sub r2, r3, r2
+ bl 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
+ bl FS_SeekFile
+ add r0, r5, #0x0
+ add r1, sp, #0x4
+ mov r2, #0x4
+ bl FS_ReadFile
+ add r0, r5, #0x0
+ add r1, sp, #0x0
+ mov r2, #0x4
+ bl 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
+ bl FS_SeekFile
+ add r0, r5, #0x0
+ add r1, sp, #0x0
+ mov r2, #0x4
+ bl 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
+ bl FS_SeekFile
+ ldr r1, [sp, #0x18]
+ add r0, r5, #0x0
+ add r2, r7, #0x0
+ bl FS_ReadFile
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02006864
+FUN_02006864: ; 0x02006864
+ add r3, r1, #0x0
+ add r1, r2, #0x0
+ add r2, r3, #0x0
+ ldr r3, _02006870 ; =FS_ReadFile
+ bx r3
+ nop
+_02006870: .word FS_ReadFile
+
+ thumb_func_start FUN_02006874
+FUN_02006874: ; 0x02006874
+ add r0, #0x50
+ ldrh r0, [r0, #0x0]
+ bx lr
+ .balign 4