summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arm9/arm9.lsf2
-rw-r--r--arm9/global.inc6
-rw-r--r--arm9/modules/05/asm/mod05_021E779C.s621
-rw-r--r--arm9/modules/05/asm/mod05_021E7C00.s708
-rw-r--r--arm9/modules/05/asm/module_05.s1317
5 files changed, 1337 insertions, 1317 deletions
diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf
index d77a4c21..84d10f58 100644
--- a/arm9/arm9.lsf
+++ b/arm9/arm9.lsf
@@ -556,6 +556,8 @@ Overlay MODULE_05
Object mod05_021E5FD8.o
Object mod05_021E72FC.o
Object mod05_021E7504.o
+ Object mod05_021E779C.o
+ Object mod05_021E7C00.o
Object module_05.o
}
diff --git a/arm9/global.inc b/arm9/global.inc
index 0a00bc9b..65781a0c 100644
--- a/arm9/global.inc
+++ b/arm9/global.inc
@@ -6511,12 +6511,16 @@
.extern MOD05_021E72FC
.extern MOD05_021E7358
.extern MOD05_021E7750
+.extern MOD05_021E779C
+.extern MOD05_021E77B0
.extern MOD05_021E799C
.extern MOD05_021E7AC0
.extern MOD05_021E7C00
.extern MOD05_021E7C14
.extern MOD05_021E7C1C
.extern MOD05_021E7C80
+.extern MOD05_021E7CD8
+.extern MOD05_021E7DD8
.extern MOD05_021E7E9C
.extern MOD05_021E7EA0
.extern MOD05_021E7EB0
@@ -6677,8 +6681,10 @@
.extern MOD05_021F4BF8
.extern MOD05_021F4C74
.extern MOD05_021F4C88
+.extern MOD05_021F4C9C
.extern MOD05_021F4CBC
.extern MOD05_021F4CD4
+.extern MOD05_021F4CE4
.extern MOD05_021F4CF8
.extern MOD05_021F4D1C
.extern MOD05_021F4D2C
diff --git a/arm9/modules/05/asm/mod05_021E779C.s b/arm9/modules/05/asm/mod05_021E779C.s
new file mode 100644
index 00000000..ad4118ff
--- /dev/null
+++ b/arm9/modules/05/asm/mod05_021E779C.s
@@ -0,0 +1,621 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD05_021E779C
+MOD05_021E779C: ; 0x021E779C
+ push {r4, lr}
+ mov r2, #0
+ mov r1, #0x14
+ add r3, r2, #0
+ add r4, r0, #0
+ bl MOD05_021E4BE8
+ str r4, [r0, #0x10]
+ pop {r4, pc}
+ .balign 4, 0
+
+ thumb_func_start MOD05_021E77B0
+MOD05_021E77B0: ; 0x021E77B0
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD05_021E78B4
+ add r0, r4, #0
+ bl MOD05_021E4C00
+ pop {r4, pc}
+
+ thumb_func_start MOD05_021E77C0
+MOD05_021E77C0: ; 0x021E77C0
+ ldr r1, [r0]
+ add r1, r1, #1
+ str r1, [r0]
+ bx lr
+
+ thumb_func_start MOD05_021E77C8
+MOD05_021E77C8: ; 0x021E77C8
+ push {r3, lr}
+ ldr r1, [r0]
+ sub r1, r1, #1
+ str r1, [r0]
+ bpl _021E77D6
+ bl ErrorHandling
+_021E77D6:
+ pop {r3, pc}
+
+ thumb_func_start MOD05_021E77D8
+MOD05_021E77D8: ; 0x021E77D8
+ ldr r1, [r0, #4]
+ add r1, r1, #1
+ str r1, [r0, #4]
+ bx lr
+
+ thumb_func_start MOD05_021E77E0
+MOD05_021E77E0: ; 0x021E77E0
+ push {r3, lr}
+ ldr r1, [r0, #4]
+ sub r1, r1, #1
+ str r1, [r0, #4]
+ bpl _021E77EE
+ bl ErrorHandling
+_021E77EE:
+ pop {r3, pc}
+
+ thumb_func_start MOD05_021E77F0
+MOD05_021E77F0: ; 0x021E77F0
+ push {r3, lr}
+ cmp r1, #0
+ bne _021E77FC
+ bl MOD05_021E77C0
+ pop {r3, pc}
+_021E77FC:
+ bl MOD05_021E77D8
+ pop {r3, pc}
+ .balign 4, 0
+
+ thumb_func_start MOD05_021E7804
+MOD05_021E7804: ; 0x021E7804
+ push {r3, lr}
+ cmp r1, #0
+ bne _021E7810
+ bl MOD05_021E77C8
+ pop {r3, pc}
+_021E7810:
+ bl MOD05_021E77E0
+ pop {r3, pc}
+ .balign 4, 0
+
+ thumb_func_start MOD05_021E7818
+MOD05_021E7818: ; 0x021E7818
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ bne _021E785C
+ mov r1, #1
+ str r1, [r4, #8]
+ ldr r0, [r4, #0x10]
+ mov r2, #0x55
+ bl MOD05_021E5078
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ mov r2, #0x75
+ bl MOD05_021E50AC
+ mov r1, #1
+ ldr r0, [r4, #0x10]
+ mov r2, #4
+ add r3, r1, #0
+ bl MOD05_021E50D4
+ mov r1, #1
+ str r1, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r0, _021E7860 ; =UNK05_021F7854
+ add r2, r1, #0
+ str r0, [sp, #8]
+ ldr r0, [r4, #0x10]
+ add r3, r1, #0
+ bl MOD05_021E4EFC
+_021E785C:
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .balign 4, 0
+_021E7860: .word UNK05_021F7854
+
+ thumb_func_start MOD05_021E7864
+MOD05_021E7864: ; 0x021E7864
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ ldr r0, [r4, #0xc]
+ cmp r0, #0
+ bne _021E78AC
+ mov r0, #1
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #0x10]
+ mov r1, #0xa
+ mov r2, #0x6c
+ bl MOD05_021E5078
+ ldr r0, [r4, #0x10]
+ mov r1, #0xa
+ mov r2, #0x75
+ bl MOD05_021E50AC
+ ldr r0, [r4, #0x10]
+ mov r1, #0xb
+ mov r2, #0xd
+ mov r3, #1
+ bl MOD05_021E50D4
+ mov r0, #0xb
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r0, _021E78B0 ; =UNK05_021F7854
+ mov r2, #0xa
+ str r0, [sp, #8]
+ ldr r0, [r4, #0x10]
+ mov r1, #0xc
+ add r3, r2, #0
+ bl MOD05_021E4EFC
+_021E78AC:
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .balign 4, 0
+_021E78B0: .word UNK05_021F7854
+
+ thumb_func_start MOD05_021E78B4
+MOD05_021E78B4: ; 0x021E78B4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #1
+ bne _021E78E2
+ mov r0, #0
+ str r0, [r4, #8]
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl MOD05_021E50A0
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl MOD05_021E50C8
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl MOD05_021E5114
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl MOD05_021E506C
+_021E78E2:
+ pop {r4, pc}
+
+ thumb_func_start MOD05_021E78E4
+MOD05_021E78E4: ; 0x021E78E4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0xc]
+ cmp r0, #1
+ bne _021E7912
+ mov r0, #0
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #0x10]
+ mov r1, #0xa
+ bl MOD05_021E50A0
+ ldr r0, [r4, #0x10]
+ mov r1, #0xa
+ bl MOD05_021E50C8
+ ldr r0, [r4, #0x10]
+ mov r1, #0xb
+ bl MOD05_021E5114
+ ldr r0, [r4, #0x10]
+ mov r1, #0xc
+ bl MOD05_021E506C
+_021E7912:
+ pop {r4, pc}
+
+ thumb_func_start MOD05_021E7914
+MOD05_021E7914: ; 0x021E7914
+ push {r3, lr}
+ ldr r1, [r0]
+ cmp r1, #0
+ bne _021E7920
+ bl MOD05_021E7818
+_021E7920:
+ pop {r3, pc}
+ .balign 4, 0
+
+ thumb_func_start MOD05_021E7924
+MOD05_021E7924: ; 0x021E7924
+ push {r3, lr}
+ ldr r1, [r0, #4]
+ cmp r1, #0
+ bne _021E7930
+ bl MOD05_021E7864
+_021E7930:
+ pop {r3, pc}
+ .balign 4, 0
+
+ thumb_func_start MOD05_021E7934
+MOD05_021E7934: ; 0x021E7934
+ push {r3, lr}
+ ldr r1, [r0]
+ cmp r1, #0
+ bne _021E7940
+ bl MOD05_021E78B4
+_021E7940:
+ pop {r3, pc}
+ .balign 4, 0
+
+ thumb_func_start MOD05_021E7944
+MOD05_021E7944: ; 0x021E7944
+ push {r3, lr}
+ ldr r1, [r0, #4]
+ cmp r1, #0
+ bne _021E7950
+ bl MOD05_021E78E4
+_021E7950:
+ pop {r3, pc}
+ .balign 4, 0
+
+ thumb_func_start MOD05_021E7954
+MOD05_021E7954: ; 0x021E7954
+ push {r3, lr}
+ cmp r1, #0
+ bne _021E7960
+ bl MOD05_021E7914
+ pop {r3, pc}
+_021E7960:
+ bl MOD05_021E7924
+ pop {r3, pc}
+ .balign 4, 0
+
+ thumb_func_start MOD05_021E7968
+MOD05_021E7968: ; 0x021E7968
+ push {r3, lr}
+ cmp r1, #0
+ bne _021E7974
+ bl MOD05_021E7934
+ pop {r3, pc}
+_021E7974:
+ bl MOD05_021E7944
+ pop {r3, pc}
+ .balign 4, 0
+
+ thumb_func_start MOD05_021E797C
+MOD05_021E797C: ; 0x021E797C
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ ldr r3, _021E7998 ; =UNK05_021F7824
+ add r4, sp, #0
+ ldr r5, [r3]
+ ldr r3, [r3, #4]
+ str r5, [sp]
+ str r3, [sp, #4]
+ lsl r1, r1, #2
+ ldr r1, [r4, r1]
+ bl MOD05_021E4EE4
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .balign 4, 0
+_021E7998: .word UNK05_021F7824
+
+ thumb_func_start MOD05_021E799C
+MOD05_021E799C: ; 0x021E799C
+ push {r3, lr}
+ bl FUN_02064738
+ ldr r0, [r0, #0x14]
+ pop {r3, pc}
+ .balign 4, 0
+
+ thumb_func_start MOD05_021E79A8
+MOD05_021E79A8: ; 0x021E79A8
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ bl FUN_0206475C
+ add r2, r4, #0
+ add r3, r0, #0
+ add r2, #0x30
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ mov r0, #6
+ lsl r0, r0, #0xc
+ str r0, [r4, #0x28]
+ ldr r0, [r4, #0x38]
+ ldr r1, [r4, #0x30]
+ bl MOD05_021E7954
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_0206477C
+ ldr r0, [r4, #0x34]
+ ldr r1, [r4, #0x30]
+ add r2, sp, #0
+ bl MOD05_021E797C
+ str r0, [r4, #0x40]
+ ldr r0, [r4, #0x38]
+ ldr r1, [r4, #0x30]
+ bl MOD05_021E77F0
+ add r0, r5, #0
+ bl FUN_02064754
+ cmp r0, #1
+ bne _021E79FC
+ ldr r0, _021E7A04 ; =0x000005DD
+ bl FUN_020054C8
+_021E79FC:
+ mov r0, #1
+ add sp, #0xc
+ pop {r4, r5, pc}
+ nop
+_021E7A04: .word 0x000005DD
+
+ thumb_func_start MOD05_021E7A08
+MOD05_021E7A08: ; 0x021E7A08
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r1, sp, #0
+ add r5, r0, #0
+ bl FUN_0206477C
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _021E7A24
+ cmp r0, #1
+ beq _021E7A46
+ cmp r0, #2
+ b _021E7A5E
+_021E7A24:
+ ldr r1, [r4, #0x1c]
+ ldr r0, [r4, #0x28]
+ add r0, r1, r0
+ str r0, [r4, #0x1c]
+ beq _021E7A3A
+ mov r0, #2
+ ldr r1, [r4, #0x28]
+ lsl r0, r0, #0xc
+ sub r0, r1, r0
+ str r0, [r4, #0x28]
+ b _021E7A5E
+_021E7A3A:
+ mov r0, #0
+ str r0, [r4, #0x28]
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021E7A5E
+_021E7A46:
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ cmp r0, #0x1e
+ blt _021E7A5E
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ mov r0, #0
+ str r0, [r4, #4]
+ mov r0, #1
+ str r0, [r4, #0x14]
+_021E7A5E:
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_0206476C
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .balign 4, 0
+
+ thumb_func_start MOD05_021E7A6C
+MOD05_021E7A6C: ; 0x021E7A6C
+ push {r4, lr}
+ add r4, r1, #0
+ ldr r0, [r4, #0x40]
+ bl FUN_0201F744
+ ldr r0, [r4, #0x38]
+ ldr r1, [r4, #0x30]
+ bl MOD05_021E7804
+ ldr r0, [r4, #0x38]
+ ldr r1, [r4, #0x30]
+ bl MOD05_021E7968
+ pop {r4, pc}
+
+ thumb_func_start MOD05_021E7A88
+MOD05_021E7A88: ; 0x021E7A88
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ ldr r1, [r4, #0x10]
+ cmp r1, #1
+ beq _021E7ABA
+ add r1, sp, #0
+ bl FUN_0206477C
+ ldr r1, [sp]
+ ldr r0, [r4, #0x18]
+ add r0, r1, r0
+ str r0, [sp]
+ ldr r1, [sp, #4]
+ ldr r0, [r4, #0x1c]
+ add r0, r1, r0
+ str r0, [sp, #4]
+ ldr r1, [sp, #8]
+ ldr r0, [r4, #0x20]
+ add r0, r1, r0
+ str r0, [sp, #8]
+ ldr r0, [r4, #0x40]
+ add r1, sp, #0
+ bl FUN_0201F7C8
+_021E7ABA:
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .balign 4, 0
+
+ thumb_func_start MOD05_021E7AC0
+MOD05_021E7AC0: ; 0x021E7AC0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r5, r0, #0
+ add r6, r1, #0
+ add r7, r2, #0
+ bl MOD05_021E4C24
+ add r4, r0, #0
+ mov r1, #0x16
+ str r6, [sp, #0x14]
+ str r4, [sp, #0x18]
+ bl MOD05_021E4C08
+ str r0, [sp, #0x1c]
+ add r0, r5, #0
+ add r1, sp, #8
+ str r5, [sp, #0x20]
+ bl FUN_02058B5C
+ add r0, r5, #0
+ bl FUN_02058744
+ add r1, r0, #1
+ add r0, sp, #0x14
+ str r0, [sp]
+ str r1, [sp, #4]
+ ldr r1, _021E7B04 ; =UNK05_021F7840
+ add r0, r4, #0
+ add r2, sp, #8
+ add r3, r7, #0
+ bl MOD05_021E4DC4
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ .balign 4, 0
+_021E7B04: .word UNK05_021F7840
+
+ thumb_func_start MOD05_021E7B08
+MOD05_021E7B08: ; 0x021E7B08
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ bl FUN_0206475C
+ add r2, r4, #0
+ add r3, r0, #0
+ add r2, #0x30
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r0, [r4, #0x3c]
+ bl FUN_02058448
+ str r0, [r4, #8]
+ ldr r0, [r4, #0x3c]
+ bl FUN_02058450
+ str r0, [r4, #0xc]
+ mov r0, #6
+ lsl r0, r0, #0xc
+ str r0, [r4, #0x28]
+ ldr r0, [r4, #0x38]
+ ldr r1, [r4, #0x30]
+ bl MOD05_021E7954
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_0206477C
+ ldr r0, [r4, #0x34]
+ ldr r1, [r4, #0x30]
+ add r2, sp, #0
+ bl MOD05_021E797C
+ str r0, [r4, #0x40]
+ ldr r0, [r4, #0x38]
+ ldr r1, [r4, #0x30]
+ bl MOD05_021E77F0
+ add r0, r5, #0
+ bl FUN_02064754
+ cmp r0, #1
+ bne _021E7B6C
+ ldr r0, _021E7B74 ; =0x000005DD
+ bl FUN_020054C8
+_021E7B6C:
+ mov r0, #1
+ add sp, #0xc
+ pop {r4, r5, pc}
+ nop
+_021E7B74: .word 0x000005DD
+
+ thumb_func_start MOD05_021E7B78
+MOD05_021E7B78: ; 0x021E7B78
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ ldr r6, [r4, #0x3c]
+ ldr r1, [r4, #8]
+ add r5, r0, #0
+ ldr r2, [r4, #0xc]
+ add r0, r6, #0
+ bl FUN_020582A8
+ cmp r0, #0
+ bne _021E7B94
+ bl ErrorHandling
+_021E7B94:
+ add r0, r6, #0
+ add r1, sp, #0
+ bl MOD05_021F1E64
+ mov r0, #2
+ ldr r1, [sp, #4]
+ lsl r0, r0, #0x10
+ add r1, r1, r0
+ str r1, [sp, #4]
+ ldr r2, [sp, #8]
+ lsr r1, r0, #5
+ add r1, r2, r1
+ str r1, [sp, #8]
+ ldr r1, [r4]
+ cmp r1, #0
+ beq _021E7BBC
+ cmp r1, #1
+ beq _021E7BDC
+ cmp r1, #2
+ b _021E7BF4
+_021E7BBC:
+ ldr r2, [r4, #0x1c]
+ ldr r1, [r4, #0x28]
+ add r1, r2, r1
+ str r1, [r4, #0x1c]
+ beq _021E7BD0
+ ldr r1, [r4, #0x28]
+ lsr r0, r0, #4
+ sub r0, r1, r0
+ str r0, [r4, #0x28]
+ b _021E7BF4
+_021E7BD0:
+ mov r0, #0
+ str r0, [r4, #0x28]
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021E7BF4
+_021E7BDC:
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ cmp r0, #0x1e
+ blt _021E7BF4
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ mov r0, #0
+ str r0, [r4, #4]
+ mov r0, #1
+ str r0, [r4, #0x14]
+_021E7BF4:
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_0206476C
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+
+ .section .rodata
+
+ .global UNK05_021F7824
+UNK05_021F7824: ; 0x021F7824
+ .word 0x00000001, 0x0000000C, 0x00000044, MOD05_021E79A8
+ .word MOD05_021E7A6C, MOD05_021E7A08, MOD05_021E7A88
+
+ .global UNK05_021F7840
+UNK05_021F7840: ; 0x021F7840
+ .word 0x00000044, MOD05_021E7B08, MOD05_021E7A6C, MOD05_021E7B78
+ .word MOD05_021E7A88
+
+ .global UNK05_021F7854
+UNK05_021F7854: ; 0x021F7854
+ .word 0x00000000, 0x00000001, 0x00000000, 0x00000000
+ .word 0x00000000, 0x00000002
diff --git a/arm9/modules/05/asm/mod05_021E7C00.s b/arm9/modules/05/asm/mod05_021E7C00.s
new file mode 100644
index 00000000..2e968e4f
--- /dev/null
+++ b/arm9/modules/05/asm/mod05_021E7C00.s
@@ -0,0 +1,708 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD05_021E7C00
+MOD05_021E7C00: ; 0x021E7C00
+ push {r4, lr}
+ mov r1, #0x46
+ lsl r1, r1, #6
+ bl AllocFromHeap
+ add r4, r0, #0
+ bl MOD05_021E7C1C
+ add r0, r4, #0
+ pop {r4, pc}
+
+ thumb_func_start MOD05_021E7C14
+MOD05_021E7C14: ; 0x021E7C14
+ ldr r3, _021E7C18 ; =FreeToHeap
+ bx r3
+ .balign 4, 0
+_021E7C18: .word FreeToHeap
+
+ thumb_func_start MOD05_021E7C1C
+MOD05_021E7C1C: ; 0x021E7C1C
+ push {r3, r4, r5, r6, r7}
+ sub sp, #0xc
+ mov r4, #0
+ mov ip, r0
+ add r7, sp, #0
+ add r3, r4, #0
+_021E7C28:
+ str r3, [r7]
+ str r3, [r7, #4]
+ mov r0, #0x8c
+ add r1, r4, #0
+ mul r1, r0
+ mov r0, ip
+ add r2, r0, r1
+ add r5, r2, #0
+ str r3, [r7, #8]
+ mov r0, ip
+ str r3, [r0, r1]
+ str r3, [r2, #4]
+ str r3, [r2, #8]
+ str r3, [r2, #0xc]
+ add r6, r7, #0
+ ldmia r6!, {r0, r1}
+ add r5, #0x68
+ stmia r5!, {r0, r1}
+ ldr r0, [r6]
+ add r6, r7, #0
+ str r0, [r5]
+ add r5, r2, #0
+ ldmia r6!, {r0, r1}
+ add r5, #0x74
+ stmia r5!, {r0, r1}
+ ldr r0, [r6]
+ add r6, r7, #0
+ str r0, [r5]
+ add r5, r2, #0
+ ldmia r6!, {r0, r1}
+ add r5, #0x80
+ stmia r5!, {r0, r1}
+ ldr r0, [r6]
+ str r0, [r5]
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ str r3, [r2, #0x64]
+ cmp r4, #0x20
+ blo _021E7C28
+ add sp, #0xc
+ pop {r3, r4, r5, r6, r7}
+ bx lr
+ .balign 4, 0
+
+ thumb_func_start MOD05_021E7C80
+MOD05_021E7C80: ; 0x021E7C80
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ add r4, r1, #0
+ cmp r5, #0x20
+ blt _021E7C90
+ bl ErrorHandling
+_021E7C90:
+ add r6, sp, #0
+ mov r3, #0
+ str r3, [r6]
+ str r3, [r6, #4]
+ mov r0, #0x8c
+ mul r0, r5
+ str r3, [r6, #8]
+ str r3, [r4, r0]
+ add r2, r4, r0
+ str r3, [r2, #4]
+ str r3, [r2, #8]
+ add r4, r2, #0
+ str r3, [r2, #0xc]
+ add r5, r6, #0
+ ldmia r5!, {r0, r1}
+ add r4, #0x68
+ stmia r4!, {r0, r1}
+ ldr r0, [r5]
+ add r5, r6, #0
+ str r0, [r4]
+ add r4, r2, #0
+ ldmia r5!, {r0, r1}
+ add r4, #0x74
+ stmia r4!, {r0, r1}
+ ldr r0, [r5]
+ str r0, [r4]
+ add r4, r2, #0
+ ldmia r6!, {r0, r1}
+ add r4, #0x80
+ stmia r4!, {r0, r1}
+ ldr r0, [r6]
+ str r0, [r4]
+ str r3, [r2, #0x64]
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .balign 4, 0
+
+ thumb_func_start MOD05_021E7CD8
+MOD05_021E7CD8: ; 0x021E7CD8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r6, r0, #0
+ ldr r0, [sp, #0x28]
+ add r4, r1, #0
+ str r0, [sp, #0x28]
+ mov r0, #0
+ add r7, r2, #0
+ add r5, r3, #0
+ str r0, [sp, #4]
+ cmp r4, #0
+ beq _021E7D0E
+ mov r0, #4
+ bl AllocFromHeapAtEnd
+ str r0, [sp, #4]
+ ldr r2, [sp, #4]
+ add r0, r6, #0
+ add r1, r4, #0
+ bl NARC_ReadFile
+ add r0, r4, #0
+ mov r1, #0x30
+ bl _u32_div_f
+ str r0, [sp]
+ b _021E7D10
+_021E7D0E:
+ str r0, [sp]
+_021E7D10:
+ ldr r4, [sp, #4]
+ mov r6, #0
+_021E7D14:
+ ldr r0, [sp]
+ cmp r6, r0
+ bhs _021E7D82
+ ldr r0, [r4]
+ add r2, r5, #0
+ str r0, [r5]
+ mov r0, #1
+ str r0, [r5, #4]
+ mov r0, #0
+ add r3, r4, #4
+ str r0, [r5, #0xc]
+ ldmia r3!, {r0, r1}
+ add r2, #0x68
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ add r3, r4, #0
+ str r0, [r2]
+ add r3, #0x10
+ add r2, r5, #0
+ ldmia r3!, {r0, r1}
+ add r2, #0x74
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ add r3, r4, #0
+ str r0, [r2]
+ add r3, #0x1c
+ add r2, r5, #0
+ ldmia r3!, {r0, r1}
+ add r2, #0x80
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ add r3, r5, #0
+ str r0, [r2]
+ add r2, r5, #0
+ ldr r0, [r5]
+ add r1, r7, #0
+ add r2, #0x10
+ add r3, #0x64
+ bl MOD05_021E7F10
+ ldr r1, [r5]
+ add r0, r7, #0
+ bl MOD05_021F4CE4
+ cmp r0, #0
+ bne _021E7D74
+ mov r0, #0
+ str r0, [r5]
+_021E7D74:
+ add r1, r5, #0
+ ldr r0, [r5]
+ ldr r2, [sp, #0x28]
+ add r1, #0x10
+ bl MOD05_021D9E80
+ b _021E7DBE
+_021E7D82:
+ mov r1, #0
+ add r0, sp, #8
+ str r1, [r0]
+ str r1, [r0, #4]
+ str r1, [r0, #8]
+ add r0, r1, #0
+ str r0, [r5]
+ str r0, [r5, #4]
+ add r2, r5, #0
+ add r3, sp, #8
+ str r0, [r5, #0xc]
+ ldmia r3!, {r0, r1}
+ add r2, #0x68
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ add r3, sp, #8
+ str r0, [r2]
+ add r2, r5, #0
+ ldmia r3!, {r0, r1}
+ add r2, #0x74
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ add r3, sp, #8
+ str r0, [r2]
+ add r2, r5, #0
+ ldmia r3!, {r0, r1}
+ add r2, #0x80
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+_021E7DBE:
+ add r6, r6, #1
+ add r5, #0x8c
+ add r4, #0x30
+ cmp r6, #0x20
+ blt _021E7D14
+ ldr r0, [sp, #4]
+ cmp r0, #0
+ beq _021E7DD2
+ bl FreeToHeap
+_021E7DD2:
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .balign 4, 0
+
+ thumb_func_start MOD05_021E7DD8
+MOD05_021E7DD8: ; 0x021E7DD8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x48
+ ldr r4, _021E7E94 ; =UNK05_021F7878
+ str r2, [sp, #0xc]
+ str r3, [sp, #0x10]
+ add r6, r0, #0
+ str r1, [sp, #8]
+ add r3, sp, #0x18
+ mov r2, #4
+_021E7DEA:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _021E7DEA
+ ldr r0, [r4]
+ ldr r5, [sp, #0x60]
+ str r0, [r3]
+ mov r7, #0
+_021E7DFA:
+ ldr r0, [r5, #4]
+ cmp r0, #0
+ beq _021E7E86
+ ldr r0, [r5, #8]
+ cmp r0, #0
+ bne _021E7E86
+ add r4, r5, #0
+ add r4, #0x68
+ ldmia r4!, {r0, r1}
+ add r3, sp, #0x3c
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r4]
+ str r0, [r3]
+ ldr r1, [sp, #0x3c]
+ ldr r0, [r6]
+ add r3, r5, #0
+ add r0, r1, r0
+ str r0, [sp, #0x3c]
+ ldr r1, [sp, #0x44]
+ ldr r0, [r6, #8]
+ add r3, #0x80
+ add r0, r1, r0
+ str r0, [sp, #0x44]
+ add r1, r2, #0
+ ldr r0, [r5, #0x64]
+ add r2, sp, #0x18
+ bl FUN_0201B6D0
+ cmp r0, #0
+ beq _021E7E86
+ ldr r0, [sp, #8]
+ bl MOD05_021F4C9C
+ add r4, r0, #0
+ ldr r0, [sp, #0xc]
+ cmp r0, #1
+ bne _021E7E50
+ ldr r0, [sp, #0x10]
+ ldr r1, [r5, #0x64]
+ ldr r2, _021E7E98 ; =0x00000F33
+ bl MOD05_021DBB8C
+_021E7E50:
+ ldr r0, [r5]
+ add r1, r4, #0
+ add r2, sp, #0x14
+ bl MOD05_021DB9D4
+ add r0, sp, #0x14
+ ldrh r0, [r0]
+ add r1, sp, #0x3c
+ cmp r0, #0
+ bne _021E7E74
+ add r0, r5, #0
+ add r3, r5, #0
+ add r0, #0x10
+ add r2, sp, #0x18
+ add r3, #0x80
+ bl FUN_0201B26C
+ b _021E7E86
+_021E7E74:
+ str r4, [sp]
+ ldr r0, [r5]
+ add r3, r5, #0
+ str r0, [sp, #4]
+ ldr r0, [r5, #0x64]
+ add r2, sp, #0x18
+ add r3, #0x80
+ bl MOD05_021E7F34
+_021E7E86:
+ add r7, r7, #1
+ add r5, #0x8c
+ cmp r7, #0x20
+ blt _021E7DFA
+ add sp, #0x48
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021E7E94: .word UNK05_021F7878
+_021E7E98: .word 0x00000F33
+
+ thumb_func_start MOD05_021E7E9C
+MOD05_021E7E9C: ; 0x021E7E9C
+ add r0, #0x74
+ bx lr
+
+ thumb_func_start MOD05_021E7EA0
+MOD05_021E7EA0: ; 0x021E7EA0
+ add r2, r1, #0
+ add r2, #0x68
+ add r3, r0, #0
+ ldmia r2!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r2]
+ str r0, [r3]
+ bx lr
+
+ thumb_func_start MOD05_021E7EB0
+MOD05_021E7EB0: ; 0x021E7EB0
+ add r3, r1, #0
+ add r2, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, #0x68
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ bx lr
+
+ thumb_func_start MOD05_021E7EC0
+MOD05_021E7EC0: ; 0x021E7EC0
+ str r1, [r0, #8]
+ bx lr
+
+ thumb_func_start MOD05_021E7EC4
+MOD05_021E7EC4: ; 0x021E7EC4
+ ldr r0, [r0]
+ bx lr
+
+ thumb_func_start MOD05_021E7EC8
+MOD05_021E7EC8: ; 0x021E7EC8
+ add r0, #0x10
+ bx lr
+
+ thumb_func_start MOD05_021E7ECC
+MOD05_021E7ECC: ; 0x021E7ECC
+ ldr r0, [r0, #0x64]
+ bx lr
+
+ thumb_func_start MOD05_021E7ED0
+MOD05_021E7ED0: ; 0x021E7ED0
+ mov r2, #0x8c
+ mul r2, r1
+ add r0, r0, r2
+ bx lr
+
+ thumb_func_start MOD05_021E7ED8
+MOD05_021E7ED8: ; 0x021E7ED8
+ mov r3, #0
+_021E7EDA:
+ ldr r2, [r0]
+ cmp r2, r1
+ beq _021E7EEA
+ add r3, r3, #1
+ add r0, #0x8c
+ cmp r3, #0x20
+ blt _021E7EDA
+ mov r0, #0
+_021E7EEA:
+ bx lr
+
+ thumb_func_start MOD05_021E7EEC
+MOD05_021E7EEC: ; 0x021E7EEC
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ cmp r4, #0x20
+ blt _021E7EFA
+ bl ErrorHandling
+_021E7EFA:
+ mov r0, #0x8c
+ mul r0, r4
+ add r4, r5, r0
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ bne _021E7F0A
+ bl ErrorHandling
+_021E7F0A:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .balign 4, 0
+
+ thumb_func_start MOD05_021E7F10
+MOD05_021E7F10: ; 0x021E7F10
+ push {r3, r4, r5, lr}
+ add r5, r2, #0
+ add r4, r3, #0
+ bl MOD05_021F4BD0
+ ldr r0, [r0]
+ bl FUN_020BC13C
+ ldrh r1, [r0, #0xe]
+ add r1, r0, r1
+ ldr r1, [r1, #0xc]
+ add r1, r0, r1
+ add r0, r5, #0
+ str r1, [r4]
+ bl FUN_020B80B4
+ pop {r3, r4, r5, pc}
+ .balign 4, 0
+
+ thumb_func_start MOD05_021E7F34
+MOD05_021E7F34: ; 0x021E7F34
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r0, r1, #0
+ add r4, r2, #0
+ add r5, r3, #0
+ bl FUN_020B8474
+ ldr r1, _021E7FB4 ; =UNK_021CEDD4
+ add r0, r4, #0
+ bl MI_Copy36B
+ ldr r1, _021E7FB8 ; =UNK_021CED98
+ mov r0, #0xa4
+ ldr r2, [r1, #0x7c]
+ bic r2, r0
+ add r0, r5, #0
+ str r2, [r1, #0x7c]
+ bl FUN_020B844C
+ bl FUN_020B849C
+ add r2, sp, #0
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x18]
+ add r2, #2
+ add r3, sp, #0
+ bl MOD05_021DB9E0
+ add r0, sp, #0
+ ldrh r0, [r0]
+ ldr r1, [sp, #0x18]
+ bl MOD05_021DB9F8
+ add r6, r0, #0
+ add r0, sp, #0
+ ldrh r0, [r0, #2]
+ mov r5, #0xff
+ mov r4, #0
+ cmp r0, #0
+ ble _021E7FB0
+_021E7F84:
+ lsl r0, r4, #2
+ add r2, r6, r0
+ ldrh r0, [r6, r0]
+ cmp r5, r0
+ beq _021E7F96
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ mov r3, #1
+ b _021E7F98
+_021E7F96:
+ mov r3, #0
+_021E7F98:
+ ldrh r2, [r2, #2]
+ add r0, r7, #0
+ add r1, r5, #0
+ bl FUN_020BAFB8
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ add r0, sp, #0
+ ldrh r0, [r0, #2]
+ cmp r4, r0
+ blt _021E7F84
+_021E7FB0:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021E7FB4: .word UNK_021CEDD4
+_021E7FB8: .word UNK_021CED98
+
+ thumb_func_start MOD05_021E7FBC
+MOD05_021E7FBC: ; 0x021E7FBC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ ldr r5, _021E8058 ; =UNK05_021F786C
+ add r6, r0, #0
+ add r7, r1, #0
+ ldmia r5!, {r0, r1}
+ add r4, sp, #4
+ stmia r4!, {r0, r1}
+ ldr r0, [r5]
+ str r0, [r4]
+ mov r4, #0
+ mov r0, #0x8c
+_021E7FD4:
+ add r1, r4, #0
+ mul r1, r0
+ add r5, r6, r1
+ ldr r1, [r5, #4]
+ cmp r1, #0
+ bne _021E8044
+ mov r0, #1
+ str r0, [r5, #4]
+ add r6, r5, #0
+ ldmia r3!, {r0, r1}
+ add r6, #0x68
+ stmia r6!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r6]
+ ldr r6, [sp, #0x28]
+ cmp r6, #0
+ beq _021E8008
+ mov r0, #1
+ str r0, [r5, #0xc]
+ add r3, r5, #0
+ ldmia r6!, {r0, r1}
+ add r3, #0x74
+ stmia r3!, {r0, r1}
+ ldr r0, [r6]
+ str r0, [r3]
+ b _021E800C
+_021E8008:
+ mov r0, #0
+ str r0, [r5, #0xc]
+_021E800C:
+ add r6, sp, #4
+ add r3, r5, #0
+ ldmia r6!, {r0, r1}
+ add r3, #0x80
+ stmia r3!, {r0, r1}
+ ldr r0, [r6]
+ add r1, r7, #0
+ str r0, [r3]
+ add r3, r5, #0
+ str r2, [r5]
+ add r0, r2, #0
+ add r2, r5, #0
+ add r2, #0x10
+ add r3, #0x64
+ bl MOD05_021E7F10
+ ldr r0, [sp, #0x2c]
+ mov r1, #0
+ str r0, [sp]
+ ldr r0, [r5]
+ add r5, #0x10
+ add r2, r1, #0
+ add r3, r5, #0
+ bl MOD05_021D9DC0
+ add sp, #0x10
+ add r0, r4, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_021E8044:
+ add r1, r4, #1
+ lsl r1, r1, #0x18
+ lsr r4, r1, #0x18
+ cmp r4, #0x20
+ blo _021E7FD4
+ bl ErrorHandling
+ mov r0, #0x20
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .balign 4, 0
+_021E8058: .word UNK05_021F786C
+
+ thumb_func_start MOD05_021E805C
+MOD05_021E805C: ; 0x021E805C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x38
+ ldr r4, _021E80F4 ; =UNK05_021F789C
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ add r3, sp, #0x14
+ mov r2, #4
+_021E806A:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _021E806A
+ ldr r0, [r4]
+ mov r4, #0
+ str r0, [r3]
+ add r7, sp, #0x14
+_021E807A:
+ mov r0, #0x8c
+ add r1, r4, #0
+ mul r1, r0
+ ldr r0, [sp, #8]
+ add r5, r0, r1
+ ldr r0, [r5, #4]
+ cmp r0, #0
+ beq _021E80E4
+ ldr r0, [r5, #8]
+ cmp r0, #0
+ bne _021E80E4
+ ldr r0, [sp, #0xc]
+ bl MOD05_021F4C9C
+ add r6, r0, #0
+ ldr r0, [r5]
+ add r1, r6, #0
+ add r2, sp, #0x10
+ bl MOD05_021DB9D4
+ ldr r0, [r5, #0xc]
+ cmp r0, #0
+ beq _021E80B2
+ add r1, r5, #0
+ add r0, r7, #0
+ add r1, #0x74
+ bl FUN_0201CAA8
+_021E80B2:
+ add r0, sp, #0x10
+ ldrh r0, [r0]
+ cmp r0, #0
+ bne _021E80CE
+ add r0, r5, #0
+ add r1, r5, #0
+ add r5, #0x80
+ add r0, #0x10
+ add r1, #0x68
+ add r2, r7, #0
+ add r3, r5, #0
+ bl FUN_0201B26C
+ b _021E80E4
+_021E80CE:
+ str r6, [sp]
+ ldr r0, [r5]
+ add r1, r5, #0
+ str r0, [sp, #4]
+ ldr r0, [r5, #0x64]
+ add r5, #0x80
+ add r1, #0x68
+ add r2, r7, #0
+ add r3, r5, #0
+ bl MOD05_021E7F34
+_021E80E4:
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #0x20
+ blo _021E807A
+ add sp, #0x38
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021E80F4: .word UNK05_021F789C
+
+ .section .rodata
+
+ .global UNK05_021F786C
+UNK05_021F786C: ; 0x021F786C
+ .word 0x00001000, 0x00001000, 0x00001000
+
+ .global UNK05_021F7878
+UNK05_021F7878: ; 0x021F7878
+ .byte 0x00, 0x10, 0x00, 0x00 ;word
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
+
+ .global UNK05_021F789C
+UNK05_021F789C: ; 0x021F789C
+ .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ;word
+ .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x10, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00
diff --git a/arm9/modules/05/asm/module_05.s b/arm9/modules/05/asm/module_05.s
index 38ca97a9..96673023 100644
--- a/arm9/modules/05/asm/module_05.s
+++ b/arm9/modules/05/asm/module_05.s
@@ -3,1292 +3,6 @@
.section .text
.balign 4, 0
- thumb_func_start MOD05_021E779C
-MOD05_021E779C: ; 0x021E779C
- push {r4, lr}
- mov r2, #0
- mov r1, #0x14
- add r3, r2, #0
- add r4, r0, #0
- bl MOD05_021E4BE8
- str r4, [r0, #0x10]
- pop {r4, pc}
- .balign 4, 0
-
- thumb_func_start MOD05_021E77B0
-MOD05_021E77B0: ; 0x021E77B0
- push {r4, lr}
- add r4, r0, #0
- bl MOD05_021E78B4
- add r0, r4, #0
- bl MOD05_021E4C00
- pop {r4, pc}
-
- thumb_func_start MOD05_021E77C0
-MOD05_021E77C0: ; 0x021E77C0
- ldr r1, [r0]
- add r1, r1, #1
- str r1, [r0]
- bx lr
-
- thumb_func_start MOD05_021E77C8
-MOD05_021E77C8: ; 0x021E77C8
- push {r3, lr}
- ldr r1, [r0]
- sub r1, r1, #1
- str r1, [r0]
- bpl _021E77D6
- bl ErrorHandling
-_021E77D6:
- pop {r3, pc}
-
- thumb_func_start MOD05_021E77D8
-MOD05_021E77D8: ; 0x021E77D8
- ldr r1, [r0, #4]
- add r1, r1, #1
- str r1, [r0, #4]
- bx lr
-
- thumb_func_start MOD05_021E77E0
-MOD05_021E77E0: ; 0x021E77E0
- push {r3, lr}
- ldr r1, [r0, #4]
- sub r1, r1, #1
- str r1, [r0, #4]
- bpl _021E77EE
- bl ErrorHandling
-_021E77EE:
- pop {r3, pc}
-
- thumb_func_start MOD05_021E77F0
-MOD05_021E77F0: ; 0x021E77F0
- push {r3, lr}
- cmp r1, #0
- bne _021E77FC
- bl MOD05_021E77C0
- pop {r3, pc}
-_021E77FC:
- bl MOD05_021E77D8
- pop {r3, pc}
- .balign 4, 0
-
- thumb_func_start MOD05_021E7804
-MOD05_021E7804: ; 0x021E7804
- push {r3, lr}
- cmp r1, #0
- bne _021E7810
- bl MOD05_021E77C8
- pop {r3, pc}
-_021E7810:
- bl MOD05_021E77E0
- pop {r3, pc}
- .balign 4, 0
-
- thumb_func_start MOD05_021E7818
-MOD05_021E7818: ; 0x021E7818
- push {r3, r4, lr}
- sub sp, #0xc
- add r4, r0, #0
- ldr r0, [r4, #8]
- cmp r0, #0
- bne _021E785C
- mov r1, #1
- str r1, [r4, #8]
- ldr r0, [r4, #0x10]
- mov r2, #0x55
- bl MOD05_021E5078
- ldr r0, [r4, #0x10]
- mov r1, #1
- mov r2, #0x75
- bl MOD05_021E50AC
- mov r1, #1
- ldr r0, [r4, #0x10]
- mov r2, #4
- add r3, r1, #0
- bl MOD05_021E50D4
- mov r1, #1
- str r1, [sp]
- mov r0, #0
- str r0, [sp, #4]
- ldr r0, _021E7860 ; =UNK05_021F7854
- add r2, r1, #0
- str r0, [sp, #8]
- ldr r0, [r4, #0x10]
- add r3, r1, #0
- bl MOD05_021E4EFC
-_021E785C:
- add sp, #0xc
- pop {r3, r4, pc}
- .balign 4, 0
-_021E7860: .word UNK05_021F7854
-
- thumb_func_start MOD05_021E7864
-MOD05_021E7864: ; 0x021E7864
- push {r3, r4, lr}
- sub sp, #0xc
- add r4, r0, #0
- ldr r0, [r4, #0xc]
- cmp r0, #0
- bne _021E78AC
- mov r0, #1
- str r0, [r4, #0xc]
- ldr r0, [r4, #0x10]
- mov r1, #0xa
- mov r2, #0x6c
- bl MOD05_021E5078
- ldr r0, [r4, #0x10]
- mov r1, #0xa
- mov r2, #0x75
- bl MOD05_021E50AC
- ldr r0, [r4, #0x10]
- mov r1, #0xb
- mov r2, #0xd
- mov r3, #1
- bl MOD05_021E50D4
- mov r0, #0xb
- str r0, [sp]
- mov r0, #0
- str r0, [sp, #4]
- ldr r0, _021E78B0 ; =UNK05_021F7854
- mov r2, #0xa
- str r0, [sp, #8]
- ldr r0, [r4, #0x10]
- mov r1, #0xc
- add r3, r2, #0
- bl MOD05_021E4EFC
-_021E78AC:
- add sp, #0xc
- pop {r3, r4, pc}
- .balign 4, 0
-_021E78B0: .word UNK05_021F7854
-
- thumb_func_start MOD05_021E78B4
-MOD05_021E78B4: ; 0x021E78B4
- push {r4, lr}
- add r4, r0, #0
- ldr r0, [r4, #8]
- cmp r0, #1
- bne _021E78E2
- mov r0, #0
- str r0, [r4, #8]
- ldr r0, [r4, #0x10]
- mov r1, #1
- bl MOD05_021E50A0
- ldr r0, [r4, #0x10]
- mov r1, #1
- bl MOD05_021E50C8
- ldr r0, [r4, #0x10]
- mov r1, #1
- bl MOD05_021E5114
- ldr r0, [r4, #0x10]
- mov r1, #1
- bl MOD05_021E506C
-_021E78E2:
- pop {r4, pc}
-
- thumb_func_start MOD05_021E78E4
-MOD05_021E78E4: ; 0x021E78E4
- push {r4, lr}
- add r4, r0, #0
- ldr r0, [r4, #0xc]
- cmp r0, #1
- bne _021E7912
- mov r0, #0
- str r0, [r4, #0xc]
- ldr r0, [r4, #0x10]
- mov r1, #0xa
- bl MOD05_021E50A0
- ldr r0, [r4, #0x10]
- mov r1, #0xa
- bl MOD05_021E50C8
- ldr r0, [r4, #0x10]
- mov r1, #0xb
- bl MOD05_021E5114
- ldr r0, [r4, #0x10]
- mov r1, #0xc
- bl MOD05_021E506C
-_021E7912:
- pop {r4, pc}
-
- thumb_func_start MOD05_021E7914
-MOD05_021E7914: ; 0x021E7914
- push {r3, lr}
- ldr r1, [r0]
- cmp r1, #0
- bne _021E7920
- bl MOD05_021E7818
-_021E7920:
- pop {r3, pc}
- .balign 4, 0
-
- thumb_func_start MOD05_021E7924
-MOD05_021E7924: ; 0x021E7924
- push {r3, lr}
- ldr r1, [r0, #4]
- cmp r1, #0
- bne _021E7930
- bl MOD05_021E7864
-_021E7930:
- pop {r3, pc}
- .balign 4, 0
-
- thumb_func_start MOD05_021E7934
-MOD05_021E7934: ; 0x021E7934
- push {r3, lr}
- ldr r1, [r0]
- cmp r1, #0
- bne _021E7940
- bl MOD05_021E78B4
-_021E7940:
- pop {r3, pc}
- .balign 4, 0
-
- thumb_func_start MOD05_021E7944
-MOD05_021E7944: ; 0x021E7944
- push {r3, lr}
- ldr r1, [r0, #4]
- cmp r1, #0
- bne _021E7950
- bl MOD05_021E78E4
-_021E7950:
- pop {r3, pc}
- .balign 4, 0
-
- thumb_func_start MOD05_021E7954
-MOD05_021E7954: ; 0x021E7954
- push {r3, lr}
- cmp r1, #0
- bne _021E7960
- bl MOD05_021E7914
- pop {r3, pc}
-_021E7960:
- bl MOD05_021E7924
- pop {r3, pc}
- .balign 4, 0
-
- thumb_func_start MOD05_021E7968
-MOD05_021E7968: ; 0x021E7968
- push {r3, lr}
- cmp r1, #0
- bne _021E7974
- bl MOD05_021E7934
- pop {r3, pc}
-_021E7974:
- bl MOD05_021E7944
- pop {r3, pc}
- .balign 4, 0
-
- thumb_func_start MOD05_021E797C
-MOD05_021E797C: ; 0x021E797C
- push {r3, r4, r5, lr}
- sub sp, #8
- ldr r3, _021E7998 ; =UNK05_021F7824
- add r4, sp, #0
- ldr r5, [r3]
- ldr r3, [r3, #4]
- str r5, [sp]
- str r3, [sp, #4]
- lsl r1, r1, #2
- ldr r1, [r4, r1]
- bl MOD05_021E4EE4
- add sp, #8
- pop {r3, r4, r5, pc}
- .balign 4, 0
-_021E7998: .word UNK05_021F7824
-
- thumb_func_start MOD05_021E799C
-MOD05_021E799C: ; 0x021E799C
- push {r3, lr}
- bl FUN_02064738
- ldr r0, [r0, #0x14]
- pop {r3, pc}
- .balign 4, 0
-
- thumb_func_start MOD05_021E79A8
-MOD05_021E79A8: ; 0x021E79A8
- push {r4, r5, lr}
- sub sp, #0xc
- add r4, r1, #0
- add r5, r0, #0
- bl FUN_0206475C
- add r2, r4, #0
- add r3, r0, #0
- add r2, #0x30
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- mov r0, #6
- lsl r0, r0, #0xc
- str r0, [r4, #0x28]
- ldr r0, [r4, #0x38]
- ldr r1, [r4, #0x30]
- bl MOD05_021E7954
- add r0, r5, #0
- add r1, sp, #0
- bl FUN_0206477C
- ldr r0, [r4, #0x34]
- ldr r1, [r4, #0x30]
- add r2, sp, #0
- bl MOD05_021E797C
- str r0, [r4, #0x40]
- ldr r0, [r4, #0x38]
- ldr r1, [r4, #0x30]
- bl MOD05_021E77F0
- add r0, r5, #0
- bl FUN_02064754
- cmp r0, #1
- bne _021E79FC
- ldr r0, _021E7A04 ; =0x000005DD
- bl FUN_020054C8
-_021E79FC:
- mov r0, #1
- add sp, #0xc
- pop {r4, r5, pc}
- nop
-_021E7A04: .word 0x000005DD
-
- thumb_func_start MOD05_021E7A08
-MOD05_021E7A08: ; 0x021E7A08
- push {r4, r5, lr}
- sub sp, #0xc
- add r4, r1, #0
- add r1, sp, #0
- add r5, r0, #0
- bl FUN_0206477C
- ldr r0, [r4]
- cmp r0, #0
- beq _021E7A24
- cmp r0, #1
- beq _021E7A46
- cmp r0, #2
- b _021E7A5E
-_021E7A24:
- ldr r1, [r4, #0x1c]
- ldr r0, [r4, #0x28]
- add r0, r1, r0
- str r0, [r4, #0x1c]
- beq _021E7A3A
- mov r0, #2
- ldr r1, [r4, #0x28]
- lsl r0, r0, #0xc
- sub r0, r1, r0
- str r0, [r4, #0x28]
- b _021E7A5E
-_021E7A3A:
- mov r0, #0
- str r0, [r4, #0x28]
- ldr r0, [r4]
- add r0, r0, #1
- str r0, [r4]
- b _021E7A5E
-_021E7A46:
- ldr r0, [r4, #4]
- add r0, r0, #1
- str r0, [r4, #4]
- cmp r0, #0x1e
- blt _021E7A5E
- ldr r0, [r4]
- add r0, r0, #1
- str r0, [r4]
- mov r0, #0
- str r0, [r4, #4]
- mov r0, #1
- str r0, [r4, #0x14]
-_021E7A5E:
- add r0, r5, #0
- add r1, sp, #0
- bl FUN_0206476C
- add sp, #0xc
- pop {r4, r5, pc}
- .balign 4, 0
-
- thumb_func_start MOD05_021E7A6C
-MOD05_021E7A6C: ; 0x021E7A6C
- push {r4, lr}
- add r4, r1, #0
- ldr r0, [r4, #0x40]
- bl FUN_0201F744
- ldr r0, [r4, #0x38]
- ldr r1, [r4, #0x30]
- bl MOD05_021E7804
- ldr r0, [r4, #0x38]
- ldr r1, [r4, #0x30]
- bl MOD05_021E7968
- pop {r4, pc}
-
- thumb_func_start MOD05_021E7A88
-MOD05_021E7A88: ; 0x021E7A88
- push {r3, r4, lr}
- sub sp, #0xc
- add r4, r1, #0
- ldr r1, [r4, #0x10]
- cmp r1, #1
- beq _021E7ABA
- add r1, sp, #0
- bl FUN_0206477C
- ldr r1, [sp]
- ldr r0, [r4, #0x18]
- add r0, r1, r0
- str r0, [sp]
- ldr r1, [sp, #4]
- ldr r0, [r4, #0x1c]
- add r0, r1, r0
- str r0, [sp, #4]
- ldr r1, [sp, #8]
- ldr r0, [r4, #0x20]
- add r0, r1, r0
- str r0, [sp, #8]
- ldr r0, [r4, #0x40]
- add r1, sp, #0
- bl FUN_0201F7C8
-_021E7ABA:
- add sp, #0xc
- pop {r3, r4, pc}
- .balign 4, 0
-
- thumb_func_start MOD05_021E7AC0
-MOD05_021E7AC0: ; 0x021E7AC0
- push {r4, r5, r6, r7, lr}
- sub sp, #0x24
- add r5, r0, #0
- add r6, r1, #0
- add r7, r2, #0
- bl MOD05_021E4C24
- add r4, r0, #0
- mov r1, #0x16
- str r6, [sp, #0x14]
- str r4, [sp, #0x18]
- bl MOD05_021E4C08
- str r0, [sp, #0x1c]
- add r0, r5, #0
- add r1, sp, #8
- str r5, [sp, #0x20]
- bl FUN_02058B5C
- add r0, r5, #0
- bl FUN_02058744
- add r1, r0, #1
- add r0, sp, #0x14
- str r0, [sp]
- str r1, [sp, #4]
- ldr r1, _021E7B04 ; =UNK05_021F7840
- add r0, r4, #0
- add r2, sp, #8
- add r3, r7, #0
- bl MOD05_021E4DC4
- add sp, #0x24
- pop {r4, r5, r6, r7, pc}
- .balign 4, 0
-_021E7B04: .word UNK05_021F7840
-
- thumb_func_start MOD05_021E7B08
-MOD05_021E7B08: ; 0x021E7B08
- push {r4, r5, lr}
- sub sp, #0xc
- add r4, r1, #0
- add r5, r0, #0
- bl FUN_0206475C
- add r2, r4, #0
- add r3, r0, #0
- add r2, #0x30
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldr r0, [r4, #0x3c]
- bl FUN_02058448
- str r0, [r4, #8]
- ldr r0, [r4, #0x3c]
- bl FUN_02058450
- str r0, [r4, #0xc]
- mov r0, #6
- lsl r0, r0, #0xc
- str r0, [r4, #0x28]
- ldr r0, [r4, #0x38]
- ldr r1, [r4, #0x30]
- bl MOD05_021E7954
- add r0, r5, #0
- add r1, sp, #0
- bl FUN_0206477C
- ldr r0, [r4, #0x34]
- ldr r1, [r4, #0x30]
- add r2, sp, #0
- bl MOD05_021E797C
- str r0, [r4, #0x40]
- ldr r0, [r4, #0x38]
- ldr r1, [r4, #0x30]
- bl MOD05_021E77F0
- add r0, r5, #0
- bl FUN_02064754
- cmp r0, #1
- bne _021E7B6C
- ldr r0, _021E7B74 ; =0x000005DD
- bl FUN_020054C8
-_021E7B6C:
- mov r0, #1
- add sp, #0xc
- pop {r4, r5, pc}
- nop
-_021E7B74: .word 0x000005DD
-
- thumb_func_start MOD05_021E7B78
-MOD05_021E7B78: ; 0x021E7B78
- push {r3, r4, r5, r6, lr}
- sub sp, #0xc
- add r4, r1, #0
- ldr r6, [r4, #0x3c]
- ldr r1, [r4, #8]
- add r5, r0, #0
- ldr r2, [r4, #0xc]
- add r0, r6, #0
- bl FUN_020582A8
- cmp r0, #0
- bne _021E7B94
- bl ErrorHandling
-_021E7B94:
- add r0, r6, #0
- add r1, sp, #0
- bl MOD05_021F1E64
- mov r0, #2
- ldr r1, [sp, #4]
- lsl r0, r0, #0x10
- add r1, r1, r0
- str r1, [sp, #4]
- ldr r2, [sp, #8]
- lsr r1, r0, #5
- add r1, r2, r1
- str r1, [sp, #8]
- ldr r1, [r4]
- cmp r1, #0
- beq _021E7BBC
- cmp r1, #1
- beq _021E7BDC
- cmp r1, #2
- b _021E7BF4
-_021E7BBC:
- ldr r2, [r4, #0x1c]
- ldr r1, [r4, #0x28]
- add r1, r2, r1
- str r1, [r4, #0x1c]
- beq _021E7BD0
- ldr r1, [r4, #0x28]
- lsr r0, r0, #4
- sub r0, r1, r0
- str r0, [r4, #0x28]
- b _021E7BF4
-_021E7BD0:
- mov r0, #0
- str r0, [r4, #0x28]
- ldr r0, [r4]
- add r0, r0, #1
- str r0, [r4]
- b _021E7BF4
-_021E7BDC:
- ldr r0, [r4, #4]
- add r0, r0, #1
- str r0, [r4, #4]
- cmp r0, #0x1e
- blt _021E7BF4
- ldr r0, [r4]
- add r0, r0, #1
- str r0, [r4]
- mov r0, #0
- str r0, [r4, #4]
- mov r0, #1
- str r0, [r4, #0x14]
-_021E7BF4:
- add r0, r5, #0
- add r1, sp, #0
- bl FUN_0206476C
- add sp, #0xc
- pop {r3, r4, r5, r6, pc}
-
- thumb_func_start MOD05_021E7C00
-MOD05_021E7C00: ; 0x021E7C00
- push {r4, lr}
- mov r1, #0x46
- lsl r1, r1, #6
- bl AllocFromHeap
- add r4, r0, #0
- bl MOD05_021E7C1C
- add r0, r4, #0
- pop {r4, pc}
-
- thumb_func_start MOD05_021E7C14
-MOD05_021E7C14: ; 0x021E7C14
- ldr r3, _021E7C18 ; =FreeToHeap
- bx r3
- .balign 4, 0
-_021E7C18: .word FreeToHeap
-
- thumb_func_start MOD05_021E7C1C
-MOD05_021E7C1C: ; 0x021E7C1C
- push {r3, r4, r5, r6, r7}
- sub sp, #0xc
- mov r4, #0
- mov ip, r0
- add r7, sp, #0
- add r3, r4, #0
-_021E7C28:
- str r3, [r7]
- str r3, [r7, #4]
- mov r0, #0x8c
- add r1, r4, #0
- mul r1, r0
- mov r0, ip
- add r2, r0, r1
- add r5, r2, #0
- str r3, [r7, #8]
- mov r0, ip
- str r3, [r0, r1]
- str r3, [r2, #4]
- str r3, [r2, #8]
- str r3, [r2, #0xc]
- add r6, r7, #0
- ldmia r6!, {r0, r1}
- add r5, #0x68
- stmia r5!, {r0, r1}
- ldr r0, [r6]
- add r6, r7, #0
- str r0, [r5]
- add r5, r2, #0
- ldmia r6!, {r0, r1}
- add r5, #0x74
- stmia r5!, {r0, r1}
- ldr r0, [r6]
- add r6, r7, #0
- str r0, [r5]
- add r5, r2, #0
- ldmia r6!, {r0, r1}
- add r5, #0x80
- stmia r5!, {r0, r1}
- ldr r0, [r6]
- str r0, [r5]
- add r0, r4, #1
- lsl r0, r0, #0x18
- lsr r4, r0, #0x18
- str r3, [r2, #0x64]
- cmp r4, #0x20
- blo _021E7C28
- add sp, #0xc
- pop {r3, r4, r5, r6, r7}
- bx lr
- .balign 4, 0
-
- thumb_func_start MOD05_021E7C80
-MOD05_021E7C80: ; 0x021E7C80
- push {r3, r4, r5, r6, lr}
- sub sp, #0xc
- add r5, r0, #0
- add r4, r1, #0
- cmp r5, #0x20
- blt _021E7C90
- bl ErrorHandling
-_021E7C90:
- add r6, sp, #0
- mov r3, #0
- str r3, [r6]
- str r3, [r6, #4]
- mov r0, #0x8c
- mul r0, r5
- str r3, [r6, #8]
- str r3, [r4, r0]
- add r2, r4, r0
- str r3, [r2, #4]
- str r3, [r2, #8]
- add r4, r2, #0
- str r3, [r2, #0xc]
- add r5, r6, #0
- ldmia r5!, {r0, r1}
- add r4, #0x68
- stmia r4!, {r0, r1}
- ldr r0, [r5]
- add r5, r6, #0
- str r0, [r4]
- add r4, r2, #0
- ldmia r5!, {r0, r1}
- add r4, #0x74
- stmia r4!, {r0, r1}
- ldr r0, [r5]
- str r0, [r4]
- add r4, r2, #0
- ldmia r6!, {r0, r1}
- add r4, #0x80
- stmia r4!, {r0, r1}
- ldr r0, [r6]
- str r0, [r4]
- str r3, [r2, #0x64]
- add sp, #0xc
- pop {r3, r4, r5, r6, pc}
- .balign 4, 0
-
- thumb_func_start MOD05_021E7CD8
-MOD05_021E7CD8: ; 0x021E7CD8
- push {r4, r5, r6, r7, lr}
- sub sp, #0x14
- add r6, r0, #0
- ldr r0, [sp, #0x28]
- add r4, r1, #0
- str r0, [sp, #0x28]
- mov r0, #0
- add r7, r2, #0
- add r5, r3, #0
- str r0, [sp, #4]
- cmp r4, #0
- beq _021E7D0E
- mov r0, #4
- bl AllocFromHeapAtEnd
- str r0, [sp, #4]
- ldr r2, [sp, #4]
- add r0, r6, #0
- add r1, r4, #0
- bl NARC_ReadFile
- add r0, r4, #0
- mov r1, #0x30
- bl _u32_div_f
- str r0, [sp]
- b _021E7D10
-_021E7D0E:
- str r0, [sp]
-_021E7D10:
- ldr r4, [sp, #4]
- mov r6, #0
-_021E7D14:
- ldr r0, [sp]
- cmp r6, r0
- bhs _021E7D82
- ldr r0, [r4]
- add r2, r5, #0
- str r0, [r5]
- mov r0, #1
- str r0, [r5, #4]
- mov r0, #0
- add r3, r4, #4
- str r0, [r5, #0xc]
- ldmia r3!, {r0, r1}
- add r2, #0x68
- stmia r2!, {r0, r1}
- ldr r0, [r3]
- add r3, r4, #0
- str r0, [r2]
- add r3, #0x10
- add r2, r5, #0
- ldmia r3!, {r0, r1}
- add r2, #0x74
- stmia r2!, {r0, r1}
- ldr r0, [r3]
- add r3, r4, #0
- str r0, [r2]
- add r3, #0x1c
- add r2, r5, #0
- ldmia r3!, {r0, r1}
- add r2, #0x80
- stmia r2!, {r0, r1}
- ldr r0, [r3]
- add r3, r5, #0
- str r0, [r2]
- add r2, r5, #0
- ldr r0, [r5]
- add r1, r7, #0
- add r2, #0x10
- add r3, #0x64
- bl MOD05_021E7F10
- ldr r1, [r5]
- add r0, r7, #0
- bl MOD05_021F4CE4
- cmp r0, #0
- bne _021E7D74
- mov r0, #0
- str r0, [r5]
-_021E7D74:
- add r1, r5, #0
- ldr r0, [r5]
- ldr r2, [sp, #0x28]
- add r1, #0x10
- bl MOD05_021D9E80
- b _021E7DBE
-_021E7D82:
- mov r1, #0
- add r0, sp, #8
- str r1, [r0]
- str r1, [r0, #4]
- str r1, [r0, #8]
- add r0, r1, #0
- str r0, [r5]
- str r0, [r5, #4]
- add r2, r5, #0
- add r3, sp, #8
- str r0, [r5, #0xc]
- ldmia r3!, {r0, r1}
- add r2, #0x68
- stmia r2!, {r0, r1}
- ldr r0, [r3]
- add r3, sp, #8
- str r0, [r2]
- add r2, r5, #0
- ldmia r3!, {r0, r1}
- add r2, #0x74
- stmia r2!, {r0, r1}
- ldr r0, [r3]
- add r3, sp, #8
- str r0, [r2]
- add r2, r5, #0
- ldmia r3!, {r0, r1}
- add r2, #0x80
- stmia r2!, {r0, r1}
- ldr r0, [r3]
- str r0, [r2]
-_021E7DBE:
- add r6, r6, #1
- add r5, #0x8c
- add r4, #0x30
- cmp r6, #0x20
- blt _021E7D14
- ldr r0, [sp, #4]
- cmp r0, #0
- beq _021E7DD2
- bl FreeToHeap
-_021E7DD2:
- add sp, #0x14
- pop {r4, r5, r6, r7, pc}
- .balign 4, 0
-
- thumb_func_start MOD05_021E7DD8
-MOD05_021E7DD8: ; 0x021E7DD8
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x48
- ldr r4, _021E7E94 ; =UNK05_021F7878
- str r2, [sp, #0xc]
- str r3, [sp, #0x10]
- add r6, r0, #0
- str r1, [sp, #8]
- add r3, sp, #0x18
- mov r2, #4
-_021E7DEA:
- ldmia r4!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _021E7DEA
- ldr r0, [r4]
- ldr r5, [sp, #0x60]
- str r0, [r3]
- mov r7, #0
-_021E7DFA:
- ldr r0, [r5, #4]
- cmp r0, #0
- beq _021E7E86
- ldr r0, [r5, #8]
- cmp r0, #0
- bne _021E7E86
- add r4, r5, #0
- add r4, #0x68
- ldmia r4!, {r0, r1}
- add r3, sp, #0x3c
- add r2, r3, #0
- stmia r3!, {r0, r1}
- ldr r0, [r4]
- str r0, [r3]
- ldr r1, [sp, #0x3c]
- ldr r0, [r6]
- add r3, r5, #0
- add r0, r1, r0
- str r0, [sp, #0x3c]
- ldr r1, [sp, #0x44]
- ldr r0, [r6, #8]
- add r3, #0x80
- add r0, r1, r0
- str r0, [sp, #0x44]
- add r1, r2, #0
- ldr r0, [r5, #0x64]
- add r2, sp, #0x18
- bl FUN_0201B6D0
- cmp r0, #0
- beq _021E7E86
- ldr r0, [sp, #8]
- bl MOD05_021F4C9C
- add r4, r0, #0
- ldr r0, [sp, #0xc]
- cmp r0, #1
- bne _021E7E50
- ldr r0, [sp, #0x10]
- ldr r1, [r5, #0x64]
- ldr r2, _021E7E98 ; =0x00000F33
- bl MOD05_021DBB8C
-_021E7E50:
- ldr r0, [r5]
- add r1, r4, #0
- add r2, sp, #0x14
- bl MOD05_021DB9D4
- add r0, sp, #0x14
- ldrh r0, [r0]
- add r1, sp, #0x3c
- cmp r0, #0
- bne _021E7E74
- add r0, r5, #0
- add r3, r5, #0
- add r0, #0x10
- add r2, sp, #0x18
- add r3, #0x80
- bl FUN_0201B26C
- b _021E7E86
-_021E7E74:
- str r4, [sp]
- ldr r0, [r5]
- add r3, r5, #0
- str r0, [sp, #4]
- ldr r0, [r5, #0x64]
- add r2, sp, #0x18
- add r3, #0x80
- bl MOD05_021E7F34
-_021E7E86:
- add r7, r7, #1
- add r5, #0x8c
- cmp r7, #0x20
- blt _021E7DFA
- add sp, #0x48
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_021E7E94: .word UNK05_021F7878
-_021E7E98: .word 0x00000F33
-
- thumb_func_start MOD05_021E7E9C
-MOD05_021E7E9C: ; 0x021E7E9C
- add r0, #0x74
- bx lr
-
- thumb_func_start MOD05_021E7EA0
-MOD05_021E7EA0: ; 0x021E7EA0
- add r2, r1, #0
- add r2, #0x68
- add r3, r0, #0
- ldmia r2!, {r0, r1}
- stmia r3!, {r0, r1}
- ldr r0, [r2]
- str r0, [r3]
- bx lr
-
- thumb_func_start MOD05_021E7EB0
-MOD05_021E7EB0: ; 0x021E7EB0
- add r3, r1, #0
- add r2, r0, #0
- ldmia r3!, {r0, r1}
- add r2, #0x68
- stmia r2!, {r0, r1}
- ldr r0, [r3]
- str r0, [r2]
- bx lr
-
- thumb_func_start MOD05_021E7EC0
-MOD05_021E7EC0: ; 0x021E7EC0
- str r1, [r0, #8]
- bx lr
-
- thumb_func_start MOD05_021E7EC4
-MOD05_021E7EC4: ; 0x021E7EC4
- ldr r0, [r0]
- bx lr
-
- thumb_func_start MOD05_021E7EC8
-MOD05_021E7EC8: ; 0x021E7EC8
- add r0, #0x10
- bx lr
-
- thumb_func_start MOD05_021E7ECC
-MOD05_021E7ECC: ; 0x021E7ECC
- ldr r0, [r0, #0x64]
- bx lr
-
- thumb_func_start MOD05_021E7ED0
-MOD05_021E7ED0: ; 0x021E7ED0
- mov r2, #0x8c
- mul r2, r1
- add r0, r0, r2
- bx lr
-
- thumb_func_start MOD05_021E7ED8
-MOD05_021E7ED8: ; 0x021E7ED8
- mov r3, #0
-_021E7EDA:
- ldr r2, [r0]
- cmp r2, r1
- beq _021E7EEA
- add r3, r3, #1
- add r0, #0x8c
- cmp r3, #0x20
- blt _021E7EDA
- mov r0, #0
-_021E7EEA:
- bx lr
-
- thumb_func_start MOD05_021E7EEC
-MOD05_021E7EEC: ; 0x021E7EEC
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- cmp r4, #0x20
- blt _021E7EFA
- bl ErrorHandling
-_021E7EFA:
- mov r0, #0x8c
- mul r0, r4
- add r4, r5, r0
- ldr r0, [r4, #4]
- cmp r0, #0
- bne _021E7F0A
- bl ErrorHandling
-_021E7F0A:
- add r0, r4, #0
- pop {r3, r4, r5, pc}
- .balign 4, 0
-
- thumb_func_start MOD05_021E7F10
-MOD05_021E7F10: ; 0x021E7F10
- push {r3, r4, r5, lr}
- add r5, r2, #0
- add r4, r3, #0
- bl MOD05_021F4BD0
- ldr r0, [r0]
- bl FUN_020BC13C
- ldrh r1, [r0, #0xe]
- add r1, r0, r1
- ldr r1, [r1, #0xc]
- add r1, r0, r1
- add r0, r5, #0
- str r1, [r4]
- bl FUN_020B80B4
- pop {r3, r4, r5, pc}
- .balign 4, 0
-
- thumb_func_start MOD05_021E7F34
-MOD05_021E7F34: ; 0x021E7F34
- push {r3, r4, r5, r6, r7, lr}
- add r7, r0, #0
- add r0, r1, #0
- add r4, r2, #0
- add r5, r3, #0
- bl FUN_020B8474
- ldr r1, _021E7FB4 ; =UNK_021CEDD4
- add r0, r4, #0
- bl MI_Copy36B
- ldr r1, _021E7FB8 ; =UNK_021CED98
- mov r0, #0xa4
- ldr r2, [r1, #0x7c]
- bic r2, r0
- add r0, r5, #0
- str r2, [r1, #0x7c]
- bl FUN_020B844C
- bl FUN_020B849C
- add r2, sp, #0
- ldr r0, [sp, #0x1c]
- ldr r1, [sp, #0x18]
- add r2, #2
- add r3, sp, #0
- bl MOD05_021DB9E0
- add r0, sp, #0
- ldrh r0, [r0]
- ldr r1, [sp, #0x18]
- bl MOD05_021DB9F8
- add r6, r0, #0
- add r0, sp, #0
- ldrh r0, [r0, #2]
- mov r5, #0xff
- mov r4, #0
- cmp r0, #0
- ble _021E7FB0
-_021E7F84:
- lsl r0, r4, #2
- add r2, r6, r0
- ldrh r0, [r6, r0]
- cmp r5, r0
- beq _021E7F96
- lsl r0, r0, #0x18
- lsr r5, r0, #0x18
- mov r3, #1
- b _021E7F98
-_021E7F96:
- mov r3, #0
-_021E7F98:
- ldrh r2, [r2, #2]
- add r0, r7, #0
- add r1, r5, #0
- bl FUN_020BAFB8
- add r0, r4, #1
- lsl r0, r0, #0x18
- lsr r4, r0, #0x18
- add r0, sp, #0
- ldrh r0, [r0, #2]
- cmp r4, r0
- blt _021E7F84
-_021E7FB0:
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_021E7FB4: .word UNK_021CEDD4
-_021E7FB8: .word UNK_021CED98
-
- thumb_func_start MOD05_021E7FBC
-MOD05_021E7FBC: ; 0x021E7FBC
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- ldr r5, _021E8058 ; =UNK05_021F786C
- add r6, r0, #0
- add r7, r1, #0
- ldmia r5!, {r0, r1}
- add r4, sp, #4
- stmia r4!, {r0, r1}
- ldr r0, [r5]
- str r0, [r4]
- mov r4, #0
- mov r0, #0x8c
-_021E7FD4:
- add r1, r4, #0
- mul r1, r0
- add r5, r6, r1
- ldr r1, [r5, #4]
- cmp r1, #0
- bne _021E8044
- mov r0, #1
- str r0, [r5, #4]
- add r6, r5, #0
- ldmia r3!, {r0, r1}
- add r6, #0x68
- stmia r6!, {r0, r1}
- ldr r0, [r3]
- str r0, [r6]
- ldr r6, [sp, #0x28]
- cmp r6, #0
- beq _021E8008
- mov r0, #1
- str r0, [r5, #0xc]
- add r3, r5, #0
- ldmia r6!, {r0, r1}
- add r3, #0x74
- stmia r3!, {r0, r1}
- ldr r0, [r6]
- str r0, [r3]
- b _021E800C
-_021E8008:
- mov r0, #0
- str r0, [r5, #0xc]
-_021E800C:
- add r6, sp, #4
- add r3, r5, #0
- ldmia r6!, {r0, r1}
- add r3, #0x80
- stmia r3!, {r0, r1}
- ldr r0, [r6]
- add r1, r7, #0
- str r0, [r3]
- add r3, r5, #0
- str r2, [r5]
- add r0, r2, #0
- add r2, r5, #0
- add r2, #0x10
- add r3, #0x64
- bl MOD05_021E7F10
- ldr r0, [sp, #0x2c]
- mov r1, #0
- str r0, [sp]
- ldr r0, [r5]
- add r5, #0x10
- add r2, r1, #0
- add r3, r5, #0
- bl MOD05_021D9DC0
- add sp, #0x10
- add r0, r4, #0
- pop {r3, r4, r5, r6, r7, pc}
-_021E8044:
- add r1, r4, #1
- lsl r1, r1, #0x18
- lsr r4, r1, #0x18
- cmp r4, #0x20
- blo _021E7FD4
- bl ErrorHandling
- mov r0, #0x20
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- .balign 4, 0
-_021E8058: .word UNK05_021F786C
-
- thumb_func_start MOD05_021E805C
-MOD05_021E805C: ; 0x021E805C
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x38
- ldr r4, _021E80F4 ; =UNK05_021F789C
- str r0, [sp, #8]
- str r1, [sp, #0xc]
- add r3, sp, #0x14
- mov r2, #4
-_021E806A:
- ldmia r4!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _021E806A
- ldr r0, [r4]
- mov r4, #0
- str r0, [r3]
- add r7, sp, #0x14
-_021E807A:
- mov r0, #0x8c
- add r1, r4, #0
- mul r1, r0
- ldr r0, [sp, #8]
- add r5, r0, r1
- ldr r0, [r5, #4]
- cmp r0, #0
- beq _021E80E4
- ldr r0, [r5, #8]
- cmp r0, #0
- bne _021E80E4
- ldr r0, [sp, #0xc]
- bl MOD05_021F4C9C
- add r6, r0, #0
- ldr r0, [r5]
- add r1, r6, #0
- add r2, sp, #0x10
- bl MOD05_021DB9D4
- ldr r0, [r5, #0xc]
- cmp r0, #0
- beq _021E80B2
- add r1, r5, #0
- add r0, r7, #0
- add r1, #0x74
- bl FUN_0201CAA8
-_021E80B2:
- add r0, sp, #0x10
- ldrh r0, [r0]
- cmp r0, #0
- bne _021E80CE
- add r0, r5, #0
- add r1, r5, #0
- add r5, #0x80
- add r0, #0x10
- add r1, #0x68
- add r2, r7, #0
- add r3, r5, #0
- bl FUN_0201B26C
- b _021E80E4
-_021E80CE:
- str r6, [sp]
- ldr r0, [r5]
- add r1, r5, #0
- str r0, [sp, #4]
- ldr r0, [r5, #0x64]
- add r5, #0x80
- add r1, #0x68
- add r2, r7, #0
- add r3, r5, #0
- bl MOD05_021E7F34
-_021E80E4:
- add r0, r4, #1
- lsl r0, r0, #0x18
- lsr r4, r0, #0x18
- cmp r4, #0x20
- blo _021E807A
- add sp, #0x38
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_021E80F4: .word UNK05_021F789C
-
thumb_func_start MOD05_021E80F8
MOD05_021E80F8: ; 0x021E80F8
push {r3, lr}
@@ -30518,37 +29232,6 @@ _021F6428: .word MOD05_021F57F0
.section .rodata
- .global UNK05_021F7824
-UNK05_021F7824: ; 0x021F7824
- .word 0x00000001, 0x0000000C, 0x00000044, MOD05_021E79A8
- .word MOD05_021E7A6C, MOD05_021E7A08, MOD05_021E7A88
-
- .global UNK05_021F7840
-UNK05_021F7840: ; 0x021F7840
- .word 0x00000044, MOD05_021E7B08, MOD05_021E7A6C, MOD05_021E7B78
- .word MOD05_021E7A88
-
- .global UNK05_021F7854
-UNK05_021F7854: ; 0x021F7854
- .word 0x00000000, 0x00000001, 0x00000000, 0x00000000
- .word 0x00000000, 0x00000002
-
- .global UNK05_021F786C
-UNK05_021F786C: ; 0x021F786C
- .word 0x00001000, 0x00001000, 0x00001000
-
- .global UNK05_021F7878
-UNK05_021F7878: ; 0x021F7878
- .byte 0x00, 0x10, 0x00, 0x00 ;word
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
-
- .global UNK05_021F789C
-UNK05_021F789C: ; 0x021F789C
- .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ;word
- .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x10, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00
-
.global UNK05_021F78C4
UNK05_021F78C4: ; 0x021F78C4
.byte 0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00