summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arm9/arm9.lsf1
-rw-r--r--arm9/global.inc9
-rw-r--r--arm9/modules/05/asm/mod05_021E4AE4.s1103
-rw-r--r--arm9/modules/05/asm/module_05.s1097
4 files changed, 1113 insertions, 1097 deletions
diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf
index 5c886e48..6b739cbf 100644
--- a/arm9/arm9.lsf
+++ b/arm9/arm9.lsf
@@ -536,6 +536,7 @@ Overlay MODULE_05
Object mod05_021E2E88.o
Object mod05_021E3340.o
Object mod05_021E3444.o
+ Object mod05_021E4AE4.o
Object module_05.o
}
diff --git a/arm9/global.inc b/arm9/global.inc
index a11738b7..18ecce82 100644
--- a/arm9/global.inc
+++ b/arm9/global.inc
@@ -6684,6 +6684,14 @@
.extern MOD05_021F54E0
.extern MOD05_021F57EC
.extern MOD05_021F57F0
+.extern MOD05_021F5990
+.extern MOD05_021F59EC
+.extern MOD05_021F5A20
+.extern MOD05_021F5A5C
+.extern MOD05_021F5A74
+.extern MOD05_021F5A90
+.extern MOD05_021F5AB8
+.extern MOD05_021F5AE4
.extern MOD05_021F5B9C
.extern MOD05_021F5C44
.extern MOD05_021F5C70
@@ -8138,6 +8146,7 @@
.extern UNK05_021F9494
.extern UNK05_021FC718
.extern UNK05_021FC79C
+.extern UNK05_021FC820
.extern MOD63_021DBAB8
.extern UNK_020F2B7C
.extern UNK_020F2B8C
diff --git a/arm9/modules/05/asm/mod05_021E4AE4.s b/arm9/modules/05/asm/mod05_021E4AE4.s
new file mode 100644
index 00000000..b05969ea
--- /dev/null
+++ b/arm9/modules/05/asm/mod05_021E4AE4.s
@@ -0,0 +1,1103 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD05_021E4AE4
+MOD05_021E4AE4: ; 0x021E4AE4
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r5, r1, #0
+ str r2, [sp]
+ add r0, r2, #0
+ add r2, r3, #0
+ mov r1, #0x42
+ mov r3, #0
+ bl MOD05_021F5990
+ mov r1, #0x2c
+ mov r2, #0
+ add r6, r0, #0
+ bl MOD05_021F5A20
+ mov r1, #0
+ mov r2, #0x2c
+ add r4, r0, #0
+ bl memset
+ ldr r0, [sp]
+ lsl r1, r5, #3
+ str r0, [r4]
+ mov r0, #0x42
+ str r0, [r4, #4]
+ str r5, [r4, #8]
+ str r6, [r4, #0x14]
+ str r7, [r4, #0x18]
+ add r0, r6, #0
+ mov r2, #0
+ bl MOD05_021F5A20
+ str r0, [r4, #0x1c]
+ add r0, r4, #0
+ bl MOD05_021E4C80
+ add r0, r4, #0
+ bl MOD05_021E4C34
+ add r0, r4, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .balign 4, 0
+
+ thumb_func_start MOD05_021E4B38
+MOD05_021E4B38: ; 0x021E4B38
+ ldr r3, _021E4B40 ; =MOD05_021E4D90
+ str r1, [r0, #0xc]
+ bx r3
+ nop
+_021E4B40: .word MOD05_021E4D90
+
+ thumb_func_start MOD05_021E4B44
+MOD05_021E4B44: ; 0x021E4B44
+ push {r3, r4, lr}
+ sub sp, #0x14
+ ldr r4, [sp, #0x20]
+ str r4, [sp]
+ ldr r4, [sp, #0x24]
+ str r4, [sp, #4]
+ ldr r4, [sp, #0x28]
+ str r4, [sp, #8]
+ ldr r4, [sp, #0x2c]
+ str r4, [sp, #0xc]
+ ldr r4, [sp, #0x30]
+ str r4, [sp, #0x10]
+ bl MOD05_021E4DEC
+ add sp, #0x14
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD05_021E4B64
+MOD05_021E4B64: ; 0x021E4B64
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD05_021E4D2C
+ cmp r0, #0
+ beq _021E4B78
+ bl ErrorHandling
+ pop {r3, r4, r5, pc}
+_021E4B78:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD05_021E4C98
+ pop {r3, r4, r5, pc}
+ .balign 4, 0
+
+ thumb_func_start MOD05_021E4B84
+MOD05_021E4B84: ; 0x021E4B84
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldr r1, [r4]
+ add r5, r0, #0
+ cmp r1, #0x20
+ beq _021E4B9E
+_021E4B90:
+ add r0, r5, #0
+ bl MOD05_021E4B64
+ add r4, r4, #4
+ ldr r1, [r4]
+ cmp r1, #0x20
+ bne _021E4B90
+_021E4B9E:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD05_021E4BA0
+MOD05_021E4BA0: ; 0x021E4BA0
+ ldr r3, _021E4BA4 ; =MOD05_021E4DB4
+ bx r3
+ .balign 4, 0
+_021E4BA4: .word MOD05_021E4DB4
+
+ thumb_func_start MOD05_021E4BA8
+MOD05_021E4BA8: ; 0x021E4BA8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r4, [r5, #0x14]
+ bl MOD05_021E4DA0
+ add r0, r5, #0
+ bl MOD05_021E4CDC
+ add r0, r5, #0
+ bl MOD05_021E4E5C
+ add r0, r5, #0
+ bl MOD05_021E4C48
+ ldr r1, [r5, #0x1c]
+ add r0, r4, #0
+ bl MOD05_021F5A5C
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD05_021F5A5C
+ add r0, r4, #0
+ bl MOD05_021F59EC
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD05_021E4BDC
+MOD05_021E4BDC: ; 0x021E4BDC
+ ldr r3, _021E4BE4 ; =MOD05_021F5A20
+ ldr r0, [r0, #0x14]
+ bx r3
+ nop
+_021E4BE4: .word MOD05_021F5A20
+
+ thumb_func_start MOD05_021E4BE8
+MOD05_021E4BE8: ; 0x021E4BE8
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r4, r3, #0
+ bl MOD05_021E4BDC
+ add r1, r4, #0
+ add r2, r5, #0
+ add r6, r0, #0
+ bl memset
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD05_021E4C00
+MOD05_021E4C00: ; 0x021E4C00
+ ldr r3, _021E4C04 ; =FreeToHeap
+ bx r3
+ .balign 4, 0
+_021E4C04: .word FreeToHeap
+
+ thumb_func_start MOD05_021E4C08
+MOD05_021E4C08: ; 0x021E4C08
+ push {r3, lr}
+ bl MOD05_021E4D2C
+ cmp r0, #0
+ bne _021E4C1A
+ bl ErrorHandling
+ mov r0, #0
+ pop {r3, pc}
+_021E4C1A:
+ ldr r0, [r0, #4]
+ pop {r3, pc}
+ .balign 4, 0
+
+ thumb_func_start MOD05_021E4C20
+MOD05_021E4C20: ; 0x021E4C20
+ ldr r0, [r0, #0x18]
+ bx lr
+
+ thumb_func_start MOD05_021E4C24
+MOD05_021E4C24: ; 0x021E4C24
+ push {r3, lr}
+ bl FUN_02058738
+ ldr r0, [r0, #0x3c]
+ pop {r3, pc}
+ .balign 4, 0
+
+ thumb_func_start MOD05_021E4C30
+MOD05_021E4C30: ; 0x021E4C30
+ ldr r0, [r0, #4]
+ bx lr
+
+ thumb_func_start MOD05_021E4C34
+MOD05_021E4C34: ; 0x021E4C34
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD05_021E4C30
+ add r1, r0, #0
+ mov r0, #0x6b
+ bl NARC_ctor
+ str r0, [r4, #0x20]
+ pop {r4, pc}
+
+ thumb_func_start MOD05_021E4C48
+MOD05_021E4C48: ; 0x021E4C48
+ ldr r3, _021E4C50 ; =NARC_dtor
+ ldr r0, [r0, #0x20]
+ bx r3
+ nop
+_021E4C50: .word NARC_dtor
+
+ thumb_func_start MOD05_021E4C54
+MOD05_021E4C54: ; 0x021E4C54
+ ldr r3, _021E4C5C ; =NARC_GetMemberSize
+ ldr r0, [r0, #0x20]
+ bx r3
+ nop
+_021E4C5C: .word NARC_GetMemberSize
+
+ thumb_func_start MOD05_021E4C60
+MOD05_021E4C60: ; 0x021E4C60
+ ldr r3, _021E4C68 ; =NARC_ReadWholeMember
+ ldr r0, [r0, #0x20]
+ bx r3
+ nop
+_021E4C68: .word NARC_ReadWholeMember
+
+ thumb_func_start MOD05_021E4C6C
+MOD05_021E4C6C: ; 0x021E4C6C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ add r3, r2, #0
+ ldr r0, [r5, #0x14]
+ ldr r1, [r5, #0x20]
+ add r2, r4, #0
+ bl MOD05_021F5AB8
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD05_021E4C80
+MOD05_021E4C80: ; 0x021E4C80
+ push {r3, r4, r5, lr}
+ ldr r4, [r0, #8]
+ ldr r5, [r0, #0x1c]
+ cmp r4, #0
+ beq _021E4C96
+_021E4C8A:
+ add r0, r5, #0
+ bl MOD05_021E4D44
+ add r5, #8
+ sub r4, r4, #1
+ bne _021E4C8A
+_021E4C96:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD05_021E4C98
+MOD05_021E4C98: ; 0x021E4C98
+ push {r4, r5, r6, lr}
+ add r6, r1, #0
+ add r5, r0, #0
+ add r0, r6, #0
+ bl MOD05_021E4D68
+ add r1, r0, #0
+ ldr r1, [r1, #4]
+ add r0, r5, #0
+ blx r1
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD05_021E4D04
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD05_021E4D50
+ pop {r4, r5, r6, pc}
+ .balign 4, 0
+
+ thumb_func_start MOD05_021E4CC0
+MOD05_021E4CC0: ; 0x021E4CC0
+ push {r4, lr}
+ add r4, r1, #0
+ ldr r0, [r4]
+ bl MOD05_021E4D68
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ ldr r1, [r1, #8]
+ blx r1
+ add r0, r4, #0
+ bl MOD05_021E4D44
+ pop {r4, pc}
+ .balign 4, 0
+
+ thumb_func_start MOD05_021E4CDC
+MOD05_021E4CDC: ; 0x021E4CDC
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ ldr r4, [r6, #8]
+ ldr r5, [r6, #0x1c]
+ cmp r4, #0
+ beq _021E4D00
+_021E4CE8:
+ add r0, r5, #0
+ bl MOD05_021E4D58
+ cmp r0, #0
+ bne _021E4CFA
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD05_021E4CC0
+_021E4CFA:
+ add r5, #8
+ sub r4, r4, #1
+ bne _021E4CE8
+_021E4D00:
+ pop {r4, r5, r6, pc}
+ .balign 4, 0
+
+ thumb_func_start MOD05_021E4D04
+MOD05_021E4D04: ; 0x021E4D04
+ push {r3, r4, r5, lr}
+ ldr r4, [r0, #8]
+ ldr r5, [r0, #0x1c]
+ cmp r4, #0
+ beq _021E4D22
+_021E4D0E:
+ add r0, r5, #0
+ bl MOD05_021E4D58
+ cmp r0, #1
+ bne _021E4D1C
+ add r0, r5, #0
+ pop {r3, r4, r5, pc}
+_021E4D1C:
+ add r5, #8
+ sub r4, r4, #1
+ bne _021E4D0E
+_021E4D22:
+ bl ErrorHandling
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .balign 4, 0
+
+ thumb_func_start MOD05_021E4D2C
+MOD05_021E4D2C: ; 0x021E4D2C
+ ldr r3, [r0, #8]
+ ldr r0, [r0, #0x1c]
+ cmp r3, #0
+ beq _021E4D40
+_021E4D34:
+ ldr r2, [r0]
+ cmp r2, r1
+ beq _021E4D42
+ add r0, #8
+ sub r3, r3, #1
+ bne _021E4D34
+_021E4D40:
+ mov r0, #0
+_021E4D42:
+ bx lr
+
+ thumb_func_start MOD05_021E4D44
+MOD05_021E4D44: ; 0x021E4D44
+ mov r1, #0x20
+ str r1, [r0]
+ mov r1, #0
+ str r1, [r0, #4]
+ bx lr
+ .balign 4, 0
+
+ thumb_func_start MOD05_021E4D50
+MOD05_021E4D50: ; 0x021E4D50
+ str r1, [r0]
+ str r2, [r0, #4]
+ bx lr
+ .balign 4, 0
+
+ thumb_func_start MOD05_021E4D58
+MOD05_021E4D58: ; 0x021E4D58
+ ldr r0, [r0]
+ cmp r0, #0x20
+ bne _021E4D62
+ mov r0, #1
+ bx lr
+_021E4D62:
+ mov r0, #0
+ bx lr
+ .balign 4, 0
+
+ thumb_func_start MOD05_021E4D68
+MOD05_021E4D68: ; 0x021E4D68
+ push {r3, lr}
+ ldr r1, _021E4D8C ; =UNK05_021FC820
+ ldr r2, [r1]
+ cmp r2, #0x20
+ beq _021E4D82
+_021E4D72:
+ cmp r2, r0
+ bne _021E4D7A
+ add r0, r1, #0
+ pop {r3, pc}
+_021E4D7A:
+ add r1, #0xc
+ ldr r2, [r1]
+ cmp r2, #0x20
+ bne _021E4D72
+_021E4D82:
+ bl ErrorHandling
+ mov r0, #0
+ pop {r3, pc}
+ nop
+_021E4D8C: .word UNK05_021FC820
+
+ thumb_func_start MOD05_021E4D90
+MOD05_021E4D90: ; 0x021E4D90
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ ldr r1, [r4, #0xc]
+ bl FUN_020643C0
+ str r0, [r4, #0x24]
+ pop {r4, pc}
+
+ thumb_func_start MOD05_021E4DA0
+MOD05_021E4DA0: ; 0x021E4DA0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x24]
+ cmp r0, #0
+ beq _021E4DB2
+ bl FUN_020643F0
+ mov r0, #0
+ str r0, [r4, #0x24]
+_021E4DB2:
+ pop {r4, pc}
+
+ thumb_func_start MOD05_021E4DB4
+MOD05_021E4DB4: ; 0x021E4DB4
+ push {r3, lr}
+ ldr r0, [r0, #0x24]
+ cmp r0, #0
+ beq _021E4DC0
+ bl FUN_02064584
+_021E4DC0:
+ pop {r3, pc}
+ .balign 4, 0
+
+ thumb_func_start MOD05_021E4DC4
+MOD05_021E4DC4: ; 0x021E4DC4
+ push {r4, lr}
+ sub sp, #8
+ ldr r4, [sp, #0x10]
+ str r4, [sp]
+ ldr r4, [sp, #0x14]
+ str r4, [sp, #4]
+ ldr r0, [r0, #0x24]
+ bl FUN_020644E4
+ add r4, r0, #0
+ bne _021E4DDE
+ bl ErrorHandling
+_021E4DDE:
+ add r0, r4, #0
+ add sp, #8
+ pop {r4, pc}
+
+ thumb_func_start MOD05_021E4DE4
+MOD05_021E4DE4: ; 0x021E4DE4
+ ldr r3, _021E4DE8 ; =FUN_02064520
+ bx r3
+ .balign 4, 0
+_021E4DE8: .word FUN_02064520
+
+ thumb_func_start MOD05_021E4DEC
+MOD05_021E4DEC: ; 0x021E4DEC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r6, r2, #0
+ add r5, r1, #0
+ mov r2, #0
+ str r3, [sp]
+ mov r1, #0x24
+ add r3, r2, #0
+ add r7, r0, #0
+ bl MOD05_021E4BE8
+ add r4, r0, #0
+ str r4, [r7, #0x28]
+ str r5, [r4]
+ ldr r0, [sp]
+ strh r6, [r4, #4]
+ strh r0, [r4, #6]
+ ldr r0, [sp, #0x20]
+ ldr r2, [sp, #0x28]
+ strh r0, [r4, #8]
+ ldr r0, [sp, #0x24]
+ ldr r3, [sp]
+ strh r0, [r4, #0xa]
+ add r0, r5, #0
+ mov r1, #0x45
+ bl MOD05_021F5990
+ str r0, [r4, #0x10]
+ ldr r2, [sp, #0x2c]
+ ldr r3, [sp, #0x20]
+ add r0, r5, #0
+ mov r1, #0x46
+ bl MOD05_021F5990
+ str r0, [r4, #0x14]
+ ldr r0, [sp, #0x24]
+ add r1, r5, #0
+ bl FUN_02020E90
+ str r0, [r4, #0x18]
+ add r0, r7, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD05_021E4F60
+ add r0, r7, #0
+ str r6, [sp, #4]
+ bl MOD05_021E4C30
+ str r0, [sp, #8]
+ add r0, sp, #4
+ bl FUN_0201F1B4
+ str r0, [r4, #0xc]
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD05_021E4E5C
+MOD05_021E4E5C: ; 0x021E4E5C
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ ldr r5, [r4, #0x28]
+ cmp r5, #0
+ beq _021E4E8E
+ ldr r0, [r5, #0xc]
+ bl FUN_0201F23C
+ add r0, r5, #0
+ bl MOD05_021E4F94
+ ldr r0, [r5, #0x10]
+ bl MOD05_021F59EC
+ ldr r0, [r5, #0x14]
+ bl MOD05_021F59EC
+ ldr r0, [r5, #0x18]
+ bl FUN_02020ED4
+ add r0, r5, #0
+ bl MOD05_021E4C00
+ mov r0, #0
+ str r0, [r4, #0x28]
+_021E4E8E:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD05_021E4E90
+MOD05_021E4E90: ; 0x021E4E90
+ push {r4, lr}
+ sub sp, #0x20
+ ldr r0, [r0, #0x28]
+ add r3, sp, #8
+ ldr r0, [r0, #0xc]
+ str r0, [sp]
+ str r1, [sp, #4]
+ ldmia r2!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r2]
+ add r2, sp, #0x14
+ str r0, [r3]
+ ldr r3, _021E4EE0 ; =UNK05_021F7564
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ add r0, sp, #0
+ bl FUN_0201F6E8
+ add r4, r0, #0
+ bne _021E4EC0
+ bl ErrorHandling
+_021E4EC0:
+ cmp r4, #0
+ beq _021E4EDA
+ add r0, r4, #0
+ bl FUN_0201F8E0
+ mov r1, #1
+ bl FUN_020BB9F4
+ add r0, r4, #0
+ bl FUN_0201F8E0
+ bl MOD05_021DB5EC
+_021E4EDA:
+ add r0, r4, #0
+ add sp, #0x20
+ pop {r4, pc}
+ .balign 4, 0
+_021E4EE0: .word UNK05_021F7564
+
+ thumb_func_start MOD05_021E4EE4
+MOD05_021E4EE4: ; 0x021E4EE4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x28]
+ add r4, r2, #0
+ bl MOD05_021E504C
+ add r1, r0, #0
+ add r0, r5, #0
+ add r2, r4, #0
+ bl MOD05_021E4E90
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD05_021E4EFC
+MOD05_021E4EFC: ; 0x021E4EFC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ ldr r5, [r0, #0x28]
+ add r6, r1, #0
+ ldr r0, [r5, #0x10]
+ add r1, r2, #0
+ add r4, r3, #0
+ bl MOD05_021F5A90
+ add r7, r0, #0
+ ldr r0, [r5, #0x14]
+ add r1, r4, #0
+ bl MOD05_021F5A90
+ add r1, sp, #0xc
+ bl FUN_0202227C
+ ldr r0, [r5, #0x18]
+ ldr r1, [sp, #0x30]
+ bl FUN_02021050
+ add r4, r0, #0
+ bne _021E4F2E
+ bl ErrorHandling
+_021E4F2E:
+ add r0, r4, #0
+ bl FUN_020210AC
+ ldr r1, [sp, #0x34]
+ cmp r1, #1
+ bne _021E4F3C
+ mov r4, #0
+_021E4F3C:
+ str r0, [sp]
+ ldr r0, [sp, #0x38]
+ str r4, [sp, #4]
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, r7, #0
+ add r3, sp, #0xc
+ bl MOD05_021E4FC8
+ add r4, r0, #0
+ bne _021E4F58
+ bl ErrorHandling
+_021E4F58:
+ add r0, r4, #0
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ .balign 4, 0
+
+ thumb_func_start MOD05_021E4F60
+MOD05_021E4F60: ; 0x021E4F60
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ add r5, r2, #0
+ mov r1, #0x28
+ add r7, r0, #0
+ mul r1, r5
+ mov r2, #0
+ bl MOD05_021E4BDC
+ add r4, r0, #0
+ add r0, r7, #0
+ lsl r1, r5, #3
+ mov r2, #0
+ str r4, [r6, #0x20]
+ bl MOD05_021E4BDC
+ str r0, [r6, #0x1c]
+ mov r1, #0xe
+_021E4F84:
+ str r1, [r0]
+ str r4, [r0, #4]
+ add r0, #8
+ add r4, #0x28
+ sub r5, r5, #1
+ bne _021E4F84
+ pop {r3, r4, r5, r6, r7, pc}
+ .balign 4, 0
+
+ thumb_func_start MOD05_021E4F94
+MOD05_021E4F94: ; 0x021E4F94
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x1c]
+ bl MOD05_021E4C00
+ ldr r0, [r4, #0x20]
+ bl MOD05_021E4C00
+ pop {r4, pc}
+ .balign 4, 0
+
+ thumb_func_start MOD05_021E4FA8
+MOD05_021E4FA8: ; 0x021E4FA8
+ push {r3, lr}
+ ldrh r2, [r0, #4]
+ ldr r3, [r0, #0x1c]
+_021E4FAE:
+ ldr r0, [r3]
+ cmp r0, r1
+ bne _021E4FBA
+ mov r0, #0xe
+ str r0, [r3]
+ pop {r3, pc}
+_021E4FBA:
+ add r3, #8
+ sub r2, r2, #1
+ bne _021E4FAE
+ bl ErrorHandling
+ pop {r3, pc}
+ .balign 4, 0
+
+ thumb_func_start MOD05_021E4FC8
+MOD05_021E4FC8: ; 0x021E4FC8
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ ldrh r5, [r6, #4]
+ add r0, r1, #0
+ ldr r1, [sp, #0x1c]
+ str r2, [sp]
+ ldr r6, [r6, #0x1c]
+ add r7, r3, #0
+ str r1, [sp, #0x1c]
+ mov r4, #0
+ add r2, r5, #0
+ add r3, r6, #0
+_021E4FE0:
+ ldr r1, [r3]
+ cmp r1, r0
+ bne _021E4FEA
+ ldr r0, [r3, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_021E4FEA:
+ add r3, #8
+ sub r2, r2, #1
+ bne _021E4FE0
+_021E4FF0:
+ ldr r1, [r6]
+ cmp r1, #0xe
+ bne _021E4FFC
+ str r0, [r6]
+ ldr r4, [r6, #4]
+ b _021E5002
+_021E4FFC:
+ add r6, #8
+ sub r5, r5, #1
+ bne _021E4FF0
+_021E5002:
+ cmp r4, #0
+ bne _021E500A
+ bl ErrorHandling
+_021E500A:
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #0x28
+ bl memset
+ ldr r0, [sp]
+ add r2, r4, #0
+ str r0, [r4]
+ add r2, #0xc
+ ldmia r7!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r7!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r0, [sp, #0x18]
+ str r0, [r4, #4]
+ ldr r0, [sp, #0x1c]
+ cmp r0, #0
+ beq _021E5044
+ bl FUN_020211AC
+ str r0, [r4, #0x1c]
+ ldr r0, [sp, #0x1c]
+ bl FUN_020211BC
+ str r0, [r4, #0x20]
+ ldr r0, [sp, #0x1c]
+ bl FUN_020211CC
+ str r0, [r4, #0x24]
+_021E5044:
+ ldr r0, [sp, #0x20]
+ str r0, [r4, #8]
+ add r0, r4, #0
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD05_021E504C
+MOD05_021E504C: ; 0x021E504C
+ push {r3, lr}
+ ldrh r2, [r0, #4]
+ ldr r3, [r0, #0x1c]
+_021E5052:
+ ldr r0, [r3]
+ cmp r0, r1
+ bne _021E505C
+ ldr r0, [r3, #4]
+ pop {r3, pc}
+_021E505C:
+ add r3, #8
+ sub r2, r2, #1
+ bne _021E5052
+ bl ErrorHandling
+ mov r0, #0
+ pop {r3, pc}
+ .balign 4, 0
+
+ thumb_func_start MOD05_021E506C
+MOD05_021E506C: ; 0x021E506C
+ ldr r3, _021E5074 ; =MOD05_021E4FA8
+ ldr r0, [r0, #0x28]
+ bx r3
+ nop
+_021E5074: .word MOD05_021E4FA8
+
+ thumb_func_start MOD05_021E5078
+MOD05_021E5078: ; 0x021E5078
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, [r4, #0x28]
+ add r3, r2, #0
+ ldr r0, [r0, #0x10]
+ ldr r2, [r4, #0x20]
+ bl MOD05_021F5AE4
+ add sp, #4
+ pop {r3, r4, pc}
+ .balign 4, 0
+
+ thumb_func_start MOD05_021E5094
+MOD05_021E5094: ; 0x021E5094
+ ldr r0, [r0, #0x28]
+ ldr r3, _021E509C ; =MOD05_021F5A90
+ ldr r0, [r0, #0x10]
+ bx r3
+ .balign 4, 0
+_021E509C: .word MOD05_021F5A90
+
+ thumb_func_start MOD05_021E50A0
+MOD05_021E50A0: ; 0x021E50A0
+ ldr r0, [r0, #0x28]
+ ldr r3, _021E50A8 ; =MOD05_021F5A74
+ ldr r0, [r0, #0x10]
+ bx r3
+ .balign 4, 0
+_021E50A8: .word MOD05_021F5A74
+
+ thumb_func_start MOD05_021E50AC
+MOD05_021E50AC: ; 0x021E50AC
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, [r4, #0x28]
+ add r3, r2, #0
+ ldr r0, [r0, #0x14]
+ ldr r2, [r4, #0x20]
+ bl MOD05_021F5AE4
+ add sp, #4
+ pop {r3, r4, pc}
+ .balign 4, 0
+
+ thumb_func_start MOD05_021E50C8
+MOD05_021E50C8: ; 0x021E50C8
+ ldr r0, [r0, #0x28]
+ ldr r3, _021E50D0 ; =MOD05_021F5A74
+ ldr r0, [r0, #0x14]
+ bx r3
+ .balign 4, 0
+_021E50D0: .word MOD05_021F5A74
+
+ thumb_func_start MOD05_021E50D4
+MOD05_021E50D4: ; 0x021E50D4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ add r6, r1, #0
+ add r1, r2, #0
+ ldr r4, [r5, #0x28]
+ mov r2, #1
+ add r7, r3, #0
+ bl MOD05_021E4C6C
+ str r0, [sp, #4]
+ add r0, r5, #0
+ bl MOD05_021E4C30
+ str r0, [sp]
+ ldr r0, [r4, #0x18]
+ ldr r1, [sp, #4]
+ add r2, r6, #0
+ add r3, r7, #0
+ bl FUN_02020F54
+ cmp r0, #0
+ bne _021E5106
+ bl ErrorHandling
+_021E5106:
+ ldr r2, [r4, #0x18]
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD05_021E5120
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD05_021E5114
+MOD05_021E5114: ; 0x021E5114
+ ldr r0, [r0, #0x28]
+ ldr r3, _021E511C ; =FUN_02020FF0
+ ldr r0, [r0, #0x18]
+ bx r3
+ .balign 4, 0
+_021E511C: .word FUN_02020FF0
+
+ thumb_func_start MOD05_021E5120
+MOD05_021E5120: ; 0x021E5120
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r6, r2, #0
+ mov r1, #0xc
+ mov r2, #1
+ bl MOD05_021E4BDC
+ add r4, r0, #0
+ mov r0, #1
+ str r0, [r4]
+ str r5, [r4, #4]
+ ldr r0, _021E5150 ; =MOD05_021E5158
+ add r1, r4, #0
+ mov r2, #0xff
+ str r6, [r4, #8]
+ bl FUN_0200CA60
+ ldr r0, _021E5154 ; =MOD05_021E5174
+ add r1, r4, #0
+ mov r2, #0xff
+ bl FUN_0200CA98
+ pop {r4, r5, r6, pc}
+ nop
+_021E5150: .word MOD05_021E5158
+_021E5154: .word MOD05_021E5174
+
+ thumb_func_start MOD05_021E5158
+MOD05_021E5158: ; 0x021E5158
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #4]
+ bl FUN_020210F0
+ mov r0, #1
+ str r0, [r4]
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+ .balign 4, 0
+
+ thumb_func_start MOD05_021E5174
+MOD05_021E5174: ; 0x021E5174
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4]
+ cmp r0, #1
+ bne _021E5194
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #4]
+ bl FUN_02021158
+ add r0, r4, #0
+ bl MOD05_021E4C00
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_021E5194:
+ pop {r3, r4, r5, pc}
+ .balign 4, 0
+
+ thumb_func_start MOD05_021E5198
+MOD05_021E5198: ; 0x021E5198
+ push {r4, r5, r6, lr}
+ add r4, r3, #0
+ ldr r0, [r4]
+ add r6, r1, #0
+ add r5, r2, #0
+ bl FUN_020BC0FC
+ cmp r0, #0
+ beq _021E51C8
+ bl FUN_0201B254
+ cmp r0, #0
+ bne _021E51C8
+ ldr r0, [r4]
+ ldr r1, [r0, #8]
+ bl DC_FlushRange
+ ldr r0, [r4]
+ bl FUN_020BB59C
+ cmp r0, #0
+ bne _021E51C8
+ bl ErrorHandling
+_021E51C8:
+ ldr r0, [r4]
+ bl FUN_020BC13C
+ ldrh r1, [r0, #0xe]
+ add r1, r0, r1
+ ldr r1, [r1, #0xc]
+ add r0, r0, r1
+ str r0, [r5]
+ cmp r5, #0
+ bne _021E51E0
+ bl ErrorHandling
+_021E51E0:
+ ldr r1, [r5]
+ add r0, r6, #0
+ bl FUN_020B80B4
+ pop {r4, r5, r6, pc}
+ .balign 4, 0
+
+ thumb_func_start MOD05_021E51EC
+MOD05_021E51EC: ; 0x021E51EC
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r3, #0
+ bl MOD05_021E4C6C
+ ldr r3, [sp, #0x14]
+ ldr r2, [sp, #0x10]
+ str r0, [r3]
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD05_021E5198
+ pop {r3, r4, r5, pc}
+ .balign 4, 0
+
+ thumb_func_start MOD05_021E5208
+MOD05_021E5208: ; 0x021E5208
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0xc]
+ bl FUN_0201B3C4
+ ldr r0, [r4]
+ ldr r1, [r4, #0xc]
+ bl FUN_0201B3A8
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD05_021E5224
+MOD05_021E5224: ; 0x021E5224
+ push {r4, lr}
+ add r4, r1, #0
+ add r1, r2, #0
+ add r2, r3, #0
+ bl MOD05_021E4C6C
+ str r0, [r4]
+ bl FUN_020BC13C
+ str r0, [r4, #4]
+ ldrh r1, [r0, #0xe]
+ add r1, r0, r1
+ ldr r1, [r1, #0xc]
+ add r0, r0, r1
+ str r0, [r4, #8]
+ ldr r0, [r4]
+ bl FUN_020BC0FC
+ str r0, [r4, #0xc]
+ cmp r0, #0
+ beq _021E525A
+ mov r2, #1
+ ldr r0, _021E525C ; =MOD05_021E5208
+ add r1, r4, #0
+ lsl r2, r2, #0xa
+ bl FUN_0200CA60
+_021E525A:
+ pop {r4, pc}
+ .balign 4, 0
+_021E525C: .word MOD05_021E5208
+
+ thumb_func_start MOD05_021E5260
+MOD05_021E5260: ; 0x021E5260
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r4, r2, #0
+ ldr r1, [sp, #0x10]
+ ldr r2, [sp, #0x14]
+ add r6, r3, #0
+ bl MOD05_021E4C6C
+ str r0, [r5]
+ mov r1, #0
+ bl FUN_020BC4C8
+ str r0, [r5, #4]
+ ldr r1, [r5, #4]
+ ldr r2, [r4, #8]
+ add r0, r6, #0
+ bl FUN_020BB8D0
+ str r0, [r5, #8]
+ ldr r1, [r5, #4]
+ ldr r2, [r4, #8]
+ ldr r3, [r4, #0xc]
+ bl FUN_020B8110
+ pop {r4, r5, r6, pc}
+ .balign 4, 0
+
+ thumb_func_start MOD05_021E5294
+MOD05_021E5294: ; 0x021E5294
+ push {r4, lr}
+ add r4, r1, #0
+ bl MOD05_021E4C30
+ add r1, r0, #0
+ add r0, r4, #0
+ mov r2, #0x20
+ bl FUN_02016B20
+ pop {r4, pc}
+
+ .section .rodata
+
+ .global UNK05_021F7564
+UNK05_021F7564: ; 0x021F7564
+ .word 0x00001000, 0x00001000, 0x00001000 \ No newline at end of file
diff --git a/arm9/modules/05/asm/module_05.s b/arm9/modules/05/asm/module_05.s
index 539c614e..734dca2b 100644
--- a/arm9/modules/05/asm/module_05.s
+++ b/arm9/modules/05/asm/module_05.s
@@ -3,1099 +3,6 @@
.section .text
.balign 4, 0
- thumb_func_start MOD05_021E4AE4
-MOD05_021E4AE4: ; 0x021E4AE4
- push {r3, r4, r5, r6, r7, lr}
- add r7, r0, #0
- add r5, r1, #0
- str r2, [sp]
- add r0, r2, #0
- add r2, r3, #0
- mov r1, #0x42
- mov r3, #0
- bl MOD05_021F5990
- mov r1, #0x2c
- mov r2, #0
- add r6, r0, #0
- bl MOD05_021F5A20
- mov r1, #0
- mov r2, #0x2c
- add r4, r0, #0
- bl memset
- ldr r0, [sp]
- lsl r1, r5, #3
- str r0, [r4]
- mov r0, #0x42
- str r0, [r4, #4]
- str r5, [r4, #8]
- str r6, [r4, #0x14]
- str r7, [r4, #0x18]
- add r0, r6, #0
- mov r2, #0
- bl MOD05_021F5A20
- str r0, [r4, #0x1c]
- add r0, r4, #0
- bl MOD05_021E4C80
- add r0, r4, #0
- bl MOD05_021E4C34
- add r0, r4, #0
- pop {r3, r4, r5, r6, r7, pc}
- .balign 4, 0
-
- thumb_func_start MOD05_021E4B38
-MOD05_021E4B38: ; 0x021E4B38
- ldr r3, _021E4B40 ; =MOD05_021E4D90
- str r1, [r0, #0xc]
- bx r3
- nop
-_021E4B40: .word MOD05_021E4D90
-
- thumb_func_start MOD05_021E4B44
-MOD05_021E4B44: ; 0x021E4B44
- push {r3, r4, lr}
- sub sp, #0x14
- ldr r4, [sp, #0x20]
- str r4, [sp]
- ldr r4, [sp, #0x24]
- str r4, [sp, #4]
- ldr r4, [sp, #0x28]
- str r4, [sp, #8]
- ldr r4, [sp, #0x2c]
- str r4, [sp, #0xc]
- ldr r4, [sp, #0x30]
- str r4, [sp, #0x10]
- bl MOD05_021E4DEC
- add sp, #0x14
- pop {r3, r4, pc}
-
- thumb_func_start MOD05_021E4B64
-MOD05_021E4B64: ; 0x021E4B64
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r4, r1, #0
- bl MOD05_021E4D2C
- cmp r0, #0
- beq _021E4B78
- bl ErrorHandling
- pop {r3, r4, r5, pc}
-_021E4B78:
- add r0, r5, #0
- add r1, r4, #0
- bl MOD05_021E4C98
- pop {r3, r4, r5, pc}
- .balign 4, 0
-
- thumb_func_start MOD05_021E4B84
-MOD05_021E4B84: ; 0x021E4B84
- push {r3, r4, r5, lr}
- add r4, r1, #0
- ldr r1, [r4]
- add r5, r0, #0
- cmp r1, #0x20
- beq _021E4B9E
-_021E4B90:
- add r0, r5, #0
- bl MOD05_021E4B64
- add r4, r4, #4
- ldr r1, [r4]
- cmp r1, #0x20
- bne _021E4B90
-_021E4B9E:
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD05_021E4BA0
-MOD05_021E4BA0: ; 0x021E4BA0
- ldr r3, _021E4BA4 ; =MOD05_021E4DB4
- bx r3
- .balign 4, 0
-_021E4BA4: .word MOD05_021E4DB4
-
- thumb_func_start MOD05_021E4BA8
-MOD05_021E4BA8: ; 0x021E4BA8
- push {r3, r4, r5, lr}
- add r5, r0, #0
- ldr r4, [r5, #0x14]
- bl MOD05_021E4DA0
- add r0, r5, #0
- bl MOD05_021E4CDC
- add r0, r5, #0
- bl MOD05_021E4E5C
- add r0, r5, #0
- bl MOD05_021E4C48
- ldr r1, [r5, #0x1c]
- add r0, r4, #0
- bl MOD05_021F5A5C
- add r0, r4, #0
- add r1, r5, #0
- bl MOD05_021F5A5C
- add r0, r4, #0
- bl MOD05_021F59EC
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD05_021E4BDC
-MOD05_021E4BDC: ; 0x021E4BDC
- ldr r3, _021E4BE4 ; =MOD05_021F5A20
- ldr r0, [r0, #0x14]
- bx r3
- nop
-_021E4BE4: .word MOD05_021F5A20
-
- thumb_func_start MOD05_021E4BE8
-MOD05_021E4BE8: ; 0x021E4BE8
- push {r4, r5, r6, lr}
- add r5, r1, #0
- add r4, r3, #0
- bl MOD05_021E4BDC
- add r1, r4, #0
- add r2, r5, #0
- add r6, r0, #0
- bl memset
- add r0, r6, #0
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD05_021E4C00
-MOD05_021E4C00: ; 0x021E4C00
- ldr r3, _021E4C04 ; =FreeToHeap
- bx r3
- .balign 4, 0
-_021E4C04: .word FreeToHeap
-
- thumb_func_start MOD05_021E4C08
-MOD05_021E4C08: ; 0x021E4C08
- push {r3, lr}
- bl MOD05_021E4D2C
- cmp r0, #0
- bne _021E4C1A
- bl ErrorHandling
- mov r0, #0
- pop {r3, pc}
-_021E4C1A:
- ldr r0, [r0, #4]
- pop {r3, pc}
- .balign 4, 0
-
- thumb_func_start MOD05_021E4C20
-MOD05_021E4C20: ; 0x021E4C20
- ldr r0, [r0, #0x18]
- bx lr
-
- thumb_func_start MOD05_021E4C24
-MOD05_021E4C24: ; 0x021E4C24
- push {r3, lr}
- bl FUN_02058738
- ldr r0, [r0, #0x3c]
- pop {r3, pc}
- .balign 4, 0
-
- thumb_func_start MOD05_021E4C30
-MOD05_021E4C30: ; 0x021E4C30
- ldr r0, [r0, #4]
- bx lr
-
- thumb_func_start MOD05_021E4C34
-MOD05_021E4C34: ; 0x021E4C34
- push {r4, lr}
- add r4, r0, #0
- bl MOD05_021E4C30
- add r1, r0, #0
- mov r0, #0x6b
- bl NARC_ctor
- str r0, [r4, #0x20]
- pop {r4, pc}
-
- thumb_func_start MOD05_021E4C48
-MOD05_021E4C48: ; 0x021E4C48
- ldr r3, _021E4C50 ; =NARC_dtor
- ldr r0, [r0, #0x20]
- bx r3
- nop
-_021E4C50: .word NARC_dtor
-
- thumb_func_start MOD05_021E4C54
-MOD05_021E4C54: ; 0x021E4C54
- ldr r3, _021E4C5C ; =NARC_GetMemberSize
- ldr r0, [r0, #0x20]
- bx r3
- nop
-_021E4C5C: .word NARC_GetMemberSize
-
- thumb_func_start MOD05_021E4C60
-MOD05_021E4C60: ; 0x021E4C60
- ldr r3, _021E4C68 ; =NARC_ReadWholeMember
- ldr r0, [r0, #0x20]
- bx r3
- nop
-_021E4C68: .word NARC_ReadWholeMember
-
- thumb_func_start MOD05_021E4C6C
-MOD05_021E4C6C: ; 0x021E4C6C
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r4, r1, #0
- add r3, r2, #0
- ldr r0, [r5, #0x14]
- ldr r1, [r5, #0x20]
- add r2, r4, #0
- bl MOD05_021F5AB8
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD05_021E4C80
-MOD05_021E4C80: ; 0x021E4C80
- push {r3, r4, r5, lr}
- ldr r4, [r0, #8]
- ldr r5, [r0, #0x1c]
- cmp r4, #0
- beq _021E4C96
-_021E4C8A:
- add r0, r5, #0
- bl MOD05_021E4D44
- add r5, #8
- sub r4, r4, #1
- bne _021E4C8A
-_021E4C96:
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD05_021E4C98
-MOD05_021E4C98: ; 0x021E4C98
- push {r4, r5, r6, lr}
- add r6, r1, #0
- add r5, r0, #0
- add r0, r6, #0
- bl MOD05_021E4D68
- add r1, r0, #0
- ldr r1, [r1, #4]
- add r0, r5, #0
- blx r1
- add r4, r0, #0
- add r0, r5, #0
- bl MOD05_021E4D04
- add r1, r6, #0
- add r2, r4, #0
- bl MOD05_021E4D50
- pop {r4, r5, r6, pc}
- .balign 4, 0
-
- thumb_func_start MOD05_021E4CC0
-MOD05_021E4CC0: ; 0x021E4CC0
- push {r4, lr}
- add r4, r1, #0
- ldr r0, [r4]
- bl MOD05_021E4D68
- add r1, r0, #0
- ldr r0, [r4, #4]
- ldr r1, [r1, #8]
- blx r1
- add r0, r4, #0
- bl MOD05_021E4D44
- pop {r4, pc}
- .balign 4, 0
-
- thumb_func_start MOD05_021E4CDC
-MOD05_021E4CDC: ; 0x021E4CDC
- push {r4, r5, r6, lr}
- add r6, r0, #0
- ldr r4, [r6, #8]
- ldr r5, [r6, #0x1c]
- cmp r4, #0
- beq _021E4D00
-_021E4CE8:
- add r0, r5, #0
- bl MOD05_021E4D58
- cmp r0, #0
- bne _021E4CFA
- add r0, r6, #0
- add r1, r5, #0
- bl MOD05_021E4CC0
-_021E4CFA:
- add r5, #8
- sub r4, r4, #1
- bne _021E4CE8
-_021E4D00:
- pop {r4, r5, r6, pc}
- .balign 4, 0
-
- thumb_func_start MOD05_021E4D04
-MOD05_021E4D04: ; 0x021E4D04
- push {r3, r4, r5, lr}
- ldr r4, [r0, #8]
- ldr r5, [r0, #0x1c]
- cmp r4, #0
- beq _021E4D22
-_021E4D0E:
- add r0, r5, #0
- bl MOD05_021E4D58
- cmp r0, #1
- bne _021E4D1C
- add r0, r5, #0
- pop {r3, r4, r5, pc}
-_021E4D1C:
- add r5, #8
- sub r4, r4, #1
- bne _021E4D0E
-_021E4D22:
- bl ErrorHandling
- mov r0, #0
- pop {r3, r4, r5, pc}
- .balign 4, 0
-
- thumb_func_start MOD05_021E4D2C
-MOD05_021E4D2C: ; 0x021E4D2C
- ldr r3, [r0, #8]
- ldr r0, [r0, #0x1c]
- cmp r3, #0
- beq _021E4D40
-_021E4D34:
- ldr r2, [r0]
- cmp r2, r1
- beq _021E4D42
- add r0, #8
- sub r3, r3, #1
- bne _021E4D34
-_021E4D40:
- mov r0, #0
-_021E4D42:
- bx lr
-
- thumb_func_start MOD05_021E4D44
-MOD05_021E4D44: ; 0x021E4D44
- mov r1, #0x20
- str r1, [r0]
- mov r1, #0
- str r1, [r0, #4]
- bx lr
- .balign 4, 0
-
- thumb_func_start MOD05_021E4D50
-MOD05_021E4D50: ; 0x021E4D50
- str r1, [r0]
- str r2, [r0, #4]
- bx lr
- .balign 4, 0
-
- thumb_func_start MOD05_021E4D58
-MOD05_021E4D58: ; 0x021E4D58
- ldr r0, [r0]
- cmp r0, #0x20
- bne _021E4D62
- mov r0, #1
- bx lr
-_021E4D62:
- mov r0, #0
- bx lr
- .balign 4, 0
-
- thumb_func_start MOD05_021E4D68
-MOD05_021E4D68: ; 0x021E4D68
- push {r3, lr}
- ldr r1, _021E4D8C ; =UNK05_021FC820
- ldr r2, [r1]
- cmp r2, #0x20
- beq _021E4D82
-_021E4D72:
- cmp r2, r0
- bne _021E4D7A
- add r0, r1, #0
- pop {r3, pc}
-_021E4D7A:
- add r1, #0xc
- ldr r2, [r1]
- cmp r2, #0x20
- bne _021E4D72
-_021E4D82:
- bl ErrorHandling
- mov r0, #0
- pop {r3, pc}
- nop
-_021E4D8C: .word UNK05_021FC820
-
- thumb_func_start MOD05_021E4D90
-MOD05_021E4D90: ; 0x021E4D90
- push {r4, lr}
- add r4, r0, #0
- ldr r0, [r4, #4]
- ldr r1, [r4, #0xc]
- bl FUN_020643C0
- str r0, [r4, #0x24]
- pop {r4, pc}
-
- thumb_func_start MOD05_021E4DA0
-MOD05_021E4DA0: ; 0x021E4DA0
- push {r4, lr}
- add r4, r0, #0
- ldr r0, [r4, #0x24]
- cmp r0, #0
- beq _021E4DB2
- bl FUN_020643F0
- mov r0, #0
- str r0, [r4, #0x24]
-_021E4DB2:
- pop {r4, pc}
-
- thumb_func_start MOD05_021E4DB4
-MOD05_021E4DB4: ; 0x021E4DB4
- push {r3, lr}
- ldr r0, [r0, #0x24]
- cmp r0, #0
- beq _021E4DC0
- bl FUN_02064584
-_021E4DC0:
- pop {r3, pc}
- .balign 4, 0
-
- thumb_func_start MOD05_021E4DC4
-MOD05_021E4DC4: ; 0x021E4DC4
- push {r4, lr}
- sub sp, #8
- ldr r4, [sp, #0x10]
- str r4, [sp]
- ldr r4, [sp, #0x14]
- str r4, [sp, #4]
- ldr r0, [r0, #0x24]
- bl FUN_020644E4
- add r4, r0, #0
- bne _021E4DDE
- bl ErrorHandling
-_021E4DDE:
- add r0, r4, #0
- add sp, #8
- pop {r4, pc}
-
- thumb_func_start MOD05_021E4DE4
-MOD05_021E4DE4: ; 0x021E4DE4
- ldr r3, _021E4DE8 ; =FUN_02064520
- bx r3
- .balign 4, 0
-_021E4DE8: .word FUN_02064520
-
- thumb_func_start MOD05_021E4DEC
-MOD05_021E4DEC: ; 0x021E4DEC
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r6, r2, #0
- add r5, r1, #0
- mov r2, #0
- str r3, [sp]
- mov r1, #0x24
- add r3, r2, #0
- add r7, r0, #0
- bl MOD05_021E4BE8
- add r4, r0, #0
- str r4, [r7, #0x28]
- str r5, [r4]
- ldr r0, [sp]
- strh r6, [r4, #4]
- strh r0, [r4, #6]
- ldr r0, [sp, #0x20]
- ldr r2, [sp, #0x28]
- strh r0, [r4, #8]
- ldr r0, [sp, #0x24]
- ldr r3, [sp]
- strh r0, [r4, #0xa]
- add r0, r5, #0
- mov r1, #0x45
- bl MOD05_021F5990
- str r0, [r4, #0x10]
- ldr r2, [sp, #0x2c]
- ldr r3, [sp, #0x20]
- add r0, r5, #0
- mov r1, #0x46
- bl MOD05_021F5990
- str r0, [r4, #0x14]
- ldr r0, [sp, #0x24]
- add r1, r5, #0
- bl FUN_02020E90
- str r0, [r4, #0x18]
- add r0, r7, #0
- add r1, r4, #0
- add r2, r6, #0
- bl MOD05_021E4F60
- add r0, r7, #0
- str r6, [sp, #4]
- bl MOD05_021E4C30
- str r0, [sp, #8]
- add r0, sp, #4
- bl FUN_0201F1B4
- str r0, [r4, #0xc]
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
-
- thumb_func_start MOD05_021E4E5C
-MOD05_021E4E5C: ; 0x021E4E5C
- push {r3, r4, r5, lr}
- add r4, r0, #0
- ldr r5, [r4, #0x28]
- cmp r5, #0
- beq _021E4E8E
- ldr r0, [r5, #0xc]
- bl FUN_0201F23C
- add r0, r5, #0
- bl MOD05_021E4F94
- ldr r0, [r5, #0x10]
- bl MOD05_021F59EC
- ldr r0, [r5, #0x14]
- bl MOD05_021F59EC
- ldr r0, [r5, #0x18]
- bl FUN_02020ED4
- add r0, r5, #0
- bl MOD05_021E4C00
- mov r0, #0
- str r0, [r4, #0x28]
-_021E4E8E:
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD05_021E4E90
-MOD05_021E4E90: ; 0x021E4E90
- push {r4, lr}
- sub sp, #0x20
- ldr r0, [r0, #0x28]
- add r3, sp, #8
- ldr r0, [r0, #0xc]
- str r0, [sp]
- str r1, [sp, #4]
- ldmia r2!, {r0, r1}
- stmia r3!, {r0, r1}
- ldr r0, [r2]
- add r2, sp, #0x14
- str r0, [r3]
- ldr r3, _021E4EE0 ; =UNK05_021F7564
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldr r0, [r3]
- str r0, [r2]
- add r0, sp, #0
- bl FUN_0201F6E8
- add r4, r0, #0
- bne _021E4EC0
- bl ErrorHandling
-_021E4EC0:
- cmp r4, #0
- beq _021E4EDA
- add r0, r4, #0
- bl FUN_0201F8E0
- mov r1, #1
- bl FUN_020BB9F4
- add r0, r4, #0
- bl FUN_0201F8E0
- bl MOD05_021DB5EC
-_021E4EDA:
- add r0, r4, #0
- add sp, #0x20
- pop {r4, pc}
- .balign 4, 0
-_021E4EE0: .word UNK05_021F7564
-
- thumb_func_start MOD05_021E4EE4
-MOD05_021E4EE4: ; 0x021E4EE4
- push {r3, r4, r5, lr}
- add r5, r0, #0
- ldr r0, [r5, #0x28]
- add r4, r2, #0
- bl MOD05_021E504C
- add r1, r0, #0
- add r0, r5, #0
- add r2, r4, #0
- bl MOD05_021E4E90
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD05_021E4EFC
-MOD05_021E4EFC: ; 0x021E4EFC
- push {r4, r5, r6, r7, lr}
- sub sp, #0x1c
- ldr r5, [r0, #0x28]
- add r6, r1, #0
- ldr r0, [r5, #0x10]
- add r1, r2, #0
- add r4, r3, #0
- bl MOD05_021F5A90
- add r7, r0, #0
- ldr r0, [r5, #0x14]
- add r1, r4, #0
- bl MOD05_021F5A90
- add r1, sp, #0xc
- bl FUN_0202227C
- ldr r0, [r5, #0x18]
- ldr r1, [sp, #0x30]
- bl FUN_02021050
- add r4, r0, #0
- bne _021E4F2E
- bl ErrorHandling
-_021E4F2E:
- add r0, r4, #0
- bl FUN_020210AC
- ldr r1, [sp, #0x34]
- cmp r1, #1
- bne _021E4F3C
- mov r4, #0
-_021E4F3C:
- str r0, [sp]
- ldr r0, [sp, #0x38]
- str r4, [sp, #4]
- str r0, [sp, #8]
- add r0, r5, #0
- add r1, r6, #0
- add r2, r7, #0
- add r3, sp, #0xc
- bl MOD05_021E4FC8
- add r4, r0, #0
- bne _021E4F58
- bl ErrorHandling
-_021E4F58:
- add r0, r4, #0
- add sp, #0x1c
- pop {r4, r5, r6, r7, pc}
- .balign 4, 0
-
- thumb_func_start MOD05_021E4F60
-MOD05_021E4F60: ; 0x021E4F60
- push {r3, r4, r5, r6, r7, lr}
- add r6, r1, #0
- add r5, r2, #0
- mov r1, #0x28
- add r7, r0, #0
- mul r1, r5
- mov r2, #0
- bl MOD05_021E4BDC
- add r4, r0, #0
- add r0, r7, #0
- lsl r1, r5, #3
- mov r2, #0
- str r4, [r6, #0x20]
- bl MOD05_021E4BDC
- str r0, [r6, #0x1c]
- mov r1, #0xe
-_021E4F84:
- str r1, [r0]
- str r4, [r0, #4]
- add r0, #8
- add r4, #0x28
- sub r5, r5, #1
- bne _021E4F84
- pop {r3, r4, r5, r6, r7, pc}
- .balign 4, 0
-
- thumb_func_start MOD05_021E4F94
-MOD05_021E4F94: ; 0x021E4F94
- push {r4, lr}
- add r4, r0, #0
- ldr r0, [r4, #0x1c]
- bl MOD05_021E4C00
- ldr r0, [r4, #0x20]
- bl MOD05_021E4C00
- pop {r4, pc}
- .balign 4, 0
-
- thumb_func_start MOD05_021E4FA8
-MOD05_021E4FA8: ; 0x021E4FA8
- push {r3, lr}
- ldrh r2, [r0, #4]
- ldr r3, [r0, #0x1c]
-_021E4FAE:
- ldr r0, [r3]
- cmp r0, r1
- bne _021E4FBA
- mov r0, #0xe
- str r0, [r3]
- pop {r3, pc}
-_021E4FBA:
- add r3, #8
- sub r2, r2, #1
- bne _021E4FAE
- bl ErrorHandling
- pop {r3, pc}
- .balign 4, 0
-
- thumb_func_start MOD05_021E4FC8
-MOD05_021E4FC8: ; 0x021E4FC8
- push {r3, r4, r5, r6, r7, lr}
- add r6, r0, #0
- ldrh r5, [r6, #4]
- add r0, r1, #0
- ldr r1, [sp, #0x1c]
- str r2, [sp]
- ldr r6, [r6, #0x1c]
- add r7, r3, #0
- str r1, [sp, #0x1c]
- mov r4, #0
- add r2, r5, #0
- add r3, r6, #0
-_021E4FE0:
- ldr r1, [r3]
- cmp r1, r0
- bne _021E4FEA
- ldr r0, [r3, #4]
- pop {r3, r4, r5, r6, r7, pc}
-_021E4FEA:
- add r3, #8
- sub r2, r2, #1
- bne _021E4FE0
-_021E4FF0:
- ldr r1, [r6]
- cmp r1, #0xe
- bne _021E4FFC
- str r0, [r6]
- ldr r4, [r6, #4]
- b _021E5002
-_021E4FFC:
- add r6, #8
- sub r5, r5, #1
- bne _021E4FF0
-_021E5002:
- cmp r4, #0
- bne _021E500A
- bl ErrorHandling
-_021E500A:
- add r0, r4, #0
- mov r1, #0
- mov r2, #0x28
- bl memset
- ldr r0, [sp]
- add r2, r4, #0
- str r0, [r4]
- add r2, #0xc
- ldmia r7!, {r0, r1}
- stmia r2!, {r0, r1}
- ldmia r7!, {r0, r1}
- stmia r2!, {r0, r1}
- ldr r0, [sp, #0x18]
- str r0, [r4, #4]
- ldr r0, [sp, #0x1c]
- cmp r0, #0
- beq _021E5044
- bl FUN_020211AC
- str r0, [r4, #0x1c]
- ldr r0, [sp, #0x1c]
- bl FUN_020211BC
- str r0, [r4, #0x20]
- ldr r0, [sp, #0x1c]
- bl FUN_020211CC
- str r0, [r4, #0x24]
-_021E5044:
- ldr r0, [sp, #0x20]
- str r0, [r4, #8]
- add r0, r4, #0
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD05_021E504C
-MOD05_021E504C: ; 0x021E504C
- push {r3, lr}
- ldrh r2, [r0, #4]
- ldr r3, [r0, #0x1c]
-_021E5052:
- ldr r0, [r3]
- cmp r0, r1
- bne _021E505C
- ldr r0, [r3, #4]
- pop {r3, pc}
-_021E505C:
- add r3, #8
- sub r2, r2, #1
- bne _021E5052
- bl ErrorHandling
- mov r0, #0
- pop {r3, pc}
- .balign 4, 0
-
- thumb_func_start MOD05_021E506C
-MOD05_021E506C: ; 0x021E506C
- ldr r3, _021E5074 ; =MOD05_021E4FA8
- ldr r0, [r0, #0x28]
- bx r3
- nop
-_021E5074: .word MOD05_021E4FA8
-
- thumb_func_start MOD05_021E5078
-MOD05_021E5078: ; 0x021E5078
- push {r3, r4, lr}
- sub sp, #4
- add r4, r0, #0
- mov r0, #0
- str r0, [sp]
- ldr r0, [r4, #0x28]
- add r3, r2, #0
- ldr r0, [r0, #0x10]
- ldr r2, [r4, #0x20]
- bl MOD05_021F5AE4
- add sp, #4
- pop {r3, r4, pc}
- .balign 4, 0
-
- thumb_func_start MOD05_021E5094
-MOD05_021E5094: ; 0x021E5094
- ldr r0, [r0, #0x28]
- ldr r3, _021E509C ; =MOD05_021F5A90
- ldr r0, [r0, #0x10]
- bx r3
- .balign 4, 0
-_021E509C: .word MOD05_021F5A90
-
- thumb_func_start MOD05_021E50A0
-MOD05_021E50A0: ; 0x021E50A0
- ldr r0, [r0, #0x28]
- ldr r3, _021E50A8 ; =MOD05_021F5A74
- ldr r0, [r0, #0x10]
- bx r3
- .balign 4, 0
-_021E50A8: .word MOD05_021F5A74
-
- thumb_func_start MOD05_021E50AC
-MOD05_021E50AC: ; 0x021E50AC
- push {r3, r4, lr}
- sub sp, #4
- add r4, r0, #0
- mov r0, #0
- str r0, [sp]
- ldr r0, [r4, #0x28]
- add r3, r2, #0
- ldr r0, [r0, #0x14]
- ldr r2, [r4, #0x20]
- bl MOD05_021F5AE4
- add sp, #4
- pop {r3, r4, pc}
- .balign 4, 0
-
- thumb_func_start MOD05_021E50C8
-MOD05_021E50C8: ; 0x021E50C8
- ldr r0, [r0, #0x28]
- ldr r3, _021E50D0 ; =MOD05_021F5A74
- ldr r0, [r0, #0x14]
- bx r3
- .balign 4, 0
-_021E50D0: .word MOD05_021F5A74
-
- thumb_func_start MOD05_021E50D4
-MOD05_021E50D4: ; 0x021E50D4
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r5, r0, #0
- add r6, r1, #0
- add r1, r2, #0
- ldr r4, [r5, #0x28]
- mov r2, #1
- add r7, r3, #0
- bl MOD05_021E4C6C
- str r0, [sp, #4]
- add r0, r5, #0
- bl MOD05_021E4C30
- str r0, [sp]
- ldr r0, [r4, #0x18]
- ldr r1, [sp, #4]
- add r2, r6, #0
- add r3, r7, #0
- bl FUN_02020F54
- cmp r0, #0
- bne _021E5106
- bl ErrorHandling
-_021E5106:
- ldr r2, [r4, #0x18]
- add r0, r5, #0
- add r1, r6, #0
- bl MOD05_021E5120
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD05_021E5114
-MOD05_021E5114: ; 0x021E5114
- ldr r0, [r0, #0x28]
- ldr r3, _021E511C ; =FUN_02020FF0
- ldr r0, [r0, #0x18]
- bx r3
- .balign 4, 0
-_021E511C: .word FUN_02020FF0
-
- thumb_func_start MOD05_021E5120
-MOD05_021E5120: ; 0x021E5120
- push {r4, r5, r6, lr}
- add r5, r1, #0
- add r6, r2, #0
- mov r1, #0xc
- mov r2, #1
- bl MOD05_021E4BDC
- add r4, r0, #0
- mov r0, #1
- str r0, [r4]
- str r5, [r4, #4]
- ldr r0, _021E5150 ; =MOD05_021E5158
- add r1, r4, #0
- mov r2, #0xff
- str r6, [r4, #8]
- bl FUN_0200CA60
- ldr r0, _021E5154 ; =MOD05_021E5174
- add r1, r4, #0
- mov r2, #0xff
- bl FUN_0200CA98
- pop {r4, r5, r6, pc}
- nop
-_021E5150: .word MOD05_021E5158
-_021E5154: .word MOD05_021E5174
-
- thumb_func_start MOD05_021E5158
-MOD05_021E5158: ; 0x021E5158
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, #8]
- ldr r1, [r4, #4]
- bl FUN_020210F0
- mov r0, #1
- str r0, [r4]
- add r0, r5, #0
- bl FUN_0200CAB4
- pop {r3, r4, r5, pc}
- .balign 4, 0
-
- thumb_func_start MOD05_021E5174
-MOD05_021E5174: ; 0x021E5174
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4]
- cmp r0, #1
- bne _021E5194
- ldr r0, [r4, #8]
- ldr r1, [r4, #4]
- bl FUN_02021158
- add r0, r4, #0
- bl MOD05_021E4C00
- add r0, r5, #0
- bl FUN_0200CAB4
-_021E5194:
- pop {r3, r4, r5, pc}
- .balign 4, 0
-
- thumb_func_start MOD05_021E5198
-MOD05_021E5198: ; 0x021E5198
- push {r4, r5, r6, lr}
- add r4, r3, #0
- ldr r0, [r4]
- add r6, r1, #0
- add r5, r2, #0
- bl FUN_020BC0FC
- cmp r0, #0
- beq _021E51C8
- bl FUN_0201B254
- cmp r0, #0
- bne _021E51C8
- ldr r0, [r4]
- ldr r1, [r0, #8]
- bl DC_FlushRange
- ldr r0, [r4]
- bl FUN_020BB59C
- cmp r0, #0
- bne _021E51C8
- bl ErrorHandling
-_021E51C8:
- ldr r0, [r4]
- bl FUN_020BC13C
- ldrh r1, [r0, #0xe]
- add r1, r0, r1
- ldr r1, [r1, #0xc]
- add r0, r0, r1
- str r0, [r5]
- cmp r5, #0
- bne _021E51E0
- bl ErrorHandling
-_021E51E0:
- ldr r1, [r5]
- add r0, r6, #0
- bl FUN_020B80B4
- pop {r4, r5, r6, pc}
- .balign 4, 0
-
- thumb_func_start MOD05_021E51EC
-MOD05_021E51EC: ; 0x021E51EC
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r4, r3, #0
- bl MOD05_021E4C6C
- ldr r3, [sp, #0x14]
- ldr r2, [sp, #0x10]
- str r0, [r3]
- add r0, r5, #0
- add r1, r4, #0
- bl MOD05_021E5198
- pop {r3, r4, r5, pc}
- .balign 4, 0
-
- thumb_func_start MOD05_021E5208
-MOD05_021E5208: ; 0x021E5208
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, #0xc]
- bl FUN_0201B3C4
- ldr r0, [r4]
- ldr r1, [r4, #0xc]
- bl FUN_0201B3A8
- add r0, r5, #0
- bl FUN_0200CAB4
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD05_021E5224
-MOD05_021E5224: ; 0x021E5224
- push {r4, lr}
- add r4, r1, #0
- add r1, r2, #0
- add r2, r3, #0
- bl MOD05_021E4C6C
- str r0, [r4]
- bl FUN_020BC13C
- str r0, [r4, #4]
- ldrh r1, [r0, #0xe]
- add r1, r0, r1
- ldr r1, [r1, #0xc]
- add r0, r0, r1
- str r0, [r4, #8]
- ldr r0, [r4]
- bl FUN_020BC0FC
- str r0, [r4, #0xc]
- cmp r0, #0
- beq _021E525A
- mov r2, #1
- ldr r0, _021E525C ; =MOD05_021E5208
- add r1, r4, #0
- lsl r2, r2, #0xa
- bl FUN_0200CA60
-_021E525A:
- pop {r4, pc}
- .balign 4, 0
-_021E525C: .word MOD05_021E5208
-
- thumb_func_start MOD05_021E5260
-MOD05_021E5260: ; 0x021E5260
- push {r4, r5, r6, lr}
- add r5, r1, #0
- add r4, r2, #0
- ldr r1, [sp, #0x10]
- ldr r2, [sp, #0x14]
- add r6, r3, #0
- bl MOD05_021E4C6C
- str r0, [r5]
- mov r1, #0
- bl FUN_020BC4C8
- str r0, [r5, #4]
- ldr r1, [r5, #4]
- ldr r2, [r4, #8]
- add r0, r6, #0
- bl FUN_020BB8D0
- str r0, [r5, #8]
- ldr r1, [r5, #4]
- ldr r2, [r4, #8]
- ldr r3, [r4, #0xc]
- bl FUN_020B8110
- pop {r4, r5, r6, pc}
- .balign 4, 0
-
- thumb_func_start MOD05_021E5294
-MOD05_021E5294: ; 0x021E5294
- push {r4, lr}
- add r4, r1, #0
- bl MOD05_021E4C30
- add r1, r0, #0
- add r0, r4, #0
- mov r2, #0x20
- bl FUN_02016B20
- pop {r4, pc}
-
thumb_func_start MOD05_021E52A8
MOD05_021E52A8: ; 0x021E52A8
push {r3, r4, r5, lr}
@@ -36333,10 +35240,6 @@ _021F6428: .word MOD05_021F57F0
.section .rodata
- .global UNK05_021F7564
-UNK05_021F7564: ; 0x021F7564
- .word 0x00001000, 0x00001000, 0x00001000
-
.global UNK05_021F7570
UNK05_021F7570: ; 0x021F7570
.word 0x00001000, 0x00001000, 0x00001000