summaryrefslogtreecommitdiff
path: root/arm9/modules/05/asm/mod05_021DB900.s
diff options
context:
space:
mode:
Diffstat (limited to 'arm9/modules/05/asm/mod05_021DB900.s')
-rw-r--r--arm9/modules/05/asm/mod05_021DB900.s137
1 files changed, 137 insertions, 0 deletions
diff --git a/arm9/modules/05/asm/mod05_021DB900.s b/arm9/modules/05/asm/mod05_021DB900.s
new file mode 100644
index 00000000..9edf9e7c
--- /dev/null
+++ b/arm9/modules/05/asm/mod05_021DB900.s
@@ -0,0 +1,137 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD05_021DB900
+MOD05_021DB900: ; 0x021DB900
+ push {r4, lr}
+ mov r0, #4
+ mov r1, #8
+ bl AllocFromHeap
+ add r4, r0, #0
+ bne _021DB912
+ bl ErrorHandling
+_021DB912:
+ add r0, r4, #0
+ pop {r4, pc}
+ .balign 4, 0
+
+ thumb_func_start MOD05_021DB918
+MOD05_021DB918: ; 0x021DB918
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x4c
+ add r4, r0, #0
+ add r0, sp, #4
+ add r5, r1, #0
+ bl FS_InitFile
+ add r0, sp, #4
+ add r1, r4, #0
+ bl FS_OpenFile
+ cmp r0, #0
+ beq _021DB9B4
+ add r1, sp, #0
+ add r0, sp, #4
+ add r1, #2
+ mov r2, #2
+ bl FS_ReadFile
+ cmp r0, #0
+ bge _021DB946
+ bl ErrorHandling
+_021DB946:
+ add r0, sp, #4
+ add r1, sp, #0
+ mov r2, #2
+ bl FS_ReadFile
+ cmp r0, #0
+ bge _021DB958
+ bl ErrorHandling
+_021DB958:
+ add r0, sp, #0
+ ldrh r1, [r0, #2]
+ ldrh r0, [r0]
+ lsl r6, r1, #2
+ lsl r4, r0, #2
+ mov r0, #4
+ add r1, r6, #0
+ bl AllocFromHeap
+ str r0, [r5]
+ cmp r0, #0
+ bne _021DB974
+ bl ErrorHandling
+_021DB974:
+ mov r0, #4
+ add r1, r4, #0
+ bl AllocFromHeap
+ str r0, [r5, #4]
+ cmp r0, #0
+ bne _021DB986
+ bl ErrorHandling
+_021DB986:
+ ldr r1, [r5]
+ add r0, sp, #4
+ add r2, r6, #0
+ bl FS_ReadFile
+ cmp r0, #0
+ bge _021DB998
+ bl ErrorHandling
+_021DB998:
+ ldr r1, [r5, #4]
+ add r0, sp, #4
+ add r2, r4, #0
+ bl FS_ReadFile
+ cmp r0, #0
+ bge _021DB9AA
+ bl ErrorHandling
+_021DB9AA:
+ add r0, sp, #4
+ bl FS_CloseFile
+ add sp, #0x4c
+ pop {r3, r4, r5, r6, pc}
+_021DB9B4:
+ bl ErrorHandling
+ add sp, #0x4c
+ pop {r3, r4, r5, r6, pc}
+
+ thumb_func_start MOD05_021DB9BC
+MOD05_021DB9BC: ; 0x021DB9BC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ bl FreeToHeap
+ ldr r0, [r4]
+ bl FreeToHeap
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r4, pc}
+
+ thumb_func_start MOD05_021DB9D4
+MOD05_021DB9D4: ; 0x021DB9D4
+ ldr r1, [r1]
+ lsl r0, r0, #2
+ ldrh r0, [r1, r0]
+ strh r0, [r2]
+ bx lr
+ .balign 4, 0
+
+ thumb_func_start MOD05_021DB9E0
+MOD05_021DB9E0: ; 0x021DB9E0
+ push {r3, r4}
+ lsl r4, r0, #2
+ ldr r0, [r1]
+ ldrh r0, [r0, r4]
+ strh r0, [r2]
+ ldr r0, [r1]
+ add r0, r0, r4
+ ldrh r0, [r0, #2]
+ strh r0, [r3]
+ pop {r3, r4}
+ bx lr
+ .balign 4, 0
+
+ thumb_func_start MOD05_021DB9F8
+MOD05_021DB9F8: ; 0x021DB9F8
+ ldr r1, [r1, #4]
+ lsl r0, r0, #2
+ add r0, r1, r0
+ bx lr