summaryrefslogtreecommitdiff
path: root/arm9
diff options
context:
space:
mode:
Diffstat (limited to 'arm9')
-rw-r--r--arm9/arm9.lsf4
-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/mod05_021E80F8.s303
-rw-r--r--arm9/modules/05/asm/mod05_021E8310.s409
-rw-r--r--arm9/modules/05/asm/module_05.s2019
7 files changed, 2051 insertions, 2019 deletions
diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf
index d77a4c21..5468430a 100644
--- a/arm9/arm9.lsf
+++ b/arm9/arm9.lsf
@@ -556,6 +556,10 @@ Overlay MODULE_05
Object mod05_021E5FD8.o
Object mod05_021E72FC.o
Object mod05_021E7504.o
+ Object mod05_021E779C.o
+ Object mod05_021E7C00.o
+ Object mod05_021E80F8.o
+ Object mod05_021E8310.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/mod05_021E80F8.s b/arm9/modules/05/asm/mod05_021E80F8.s
new file mode 100644
index 00000000..82fd7a02
--- /dev/null
+++ b/arm9/modules/05/asm/mod05_021E80F8.s
@@ -0,0 +1,303 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD05_021E80F8
+MOD05_021E80F8: ; 0x021E80F8
+ push {r3, lr}
+ mov r1, #0x14
+ bl AllocFromHeap
+ add r3, r0, #0
+ mov r2, #0x14
+ mov r1, #0
+_021E8106:
+ strb r1, [r3]
+ add r3, r3, #1
+ sub r2, r2, #1
+ bne _021E8106
+ pop {r3, pc}
+
+ thumb_func_start MOD05_021E8110
+MOD05_021E8110: ; 0x021E8110
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r1, [r4, #0x13]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x1f
+ beq _021E8120
+ bl FUN_02019178
+_021E8120:
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r4, pc}
+
+ thumb_func_start MOD05_021E8128
+MOD05_021E8128: ; 0x021E8128
+ strb r1, [r0, #0x12]
+ strh r2, [r0, #0x10]
+ bx lr
+ .balign 4, 0
+
+ thumb_func_start MOD05_021E8130
+MOD05_021E8130: ; 0x021E8130
+ ldrb r3, [r0, #0x13]
+ mov r2, #0x7f
+ bic r3, r2
+ mov r2, #0x7f
+ and r1, r2
+ orr r1, r3
+ strb r1, [r0, #0x13]
+ bx lr
+
+ thumb_func_start MOD05_021E8140
+MOD05_021E8140: ; 0x021E8140
+ bx lr
+ .balign 4, 0
+
+ thumb_func_start MOD05_021E8144
+MOD05_021E8144: ; 0x021E8144
+ ldrb r0, [r0, #0x12]
+ bx lr
+
+ thumb_func_start MOD05_021E8148
+MOD05_021E8148: ; 0x021E8148
+ ldrb r0, [r0, #0x13]
+ lsl r0, r0, #0x19
+ lsr r0, r0, #0x19
+ bne _021E8154
+ mov r0, #1
+ bx lr
+_021E8154:
+ mov r0, #0
+ bx lr
+
+ thumb_func_start MOD05_021E8158
+MOD05_021E8158: ; 0x021E8158
+ push {r4, lr}
+ ldr r4, [r0, #0x60]
+ ldrb r1, [r4, #0x13]
+ lsl r1, r1, #0x19
+ lsr r1, r1, #0x19
+ cmp r1, #4
+ bhi _021E81BA
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021E8172: ; jump table
+ .short _021E81BA - _021E8172 - 2 ; case 0
+ .short _021E817C - _021E8172 - 2 ; case 1
+ .short _021E818A - _021E8172 - 2 ; case 2
+ .short _021E819C - _021E8172 - 2 ; case 3
+ .short _021E81AE - _021E8172 - 2 ; case 4
+_021E817C:
+ bl MOD05_021E81D0
+ ldrb r1, [r4, #0x13]
+ mov r0, #0x7f
+ bic r1, r0
+ strb r1, [r4, #0x13]
+ pop {r4, pc}
+_021E818A:
+ bl MOD05_021E82A0
+ cmp r0, #1
+ bne _021E81BA
+ ldrb r1, [r4, #0x13]
+ mov r0, #0x7f
+ bic r1, r0
+ strb r1, [r4, #0x13]
+ pop {r4, pc}
+_021E819C:
+ bl MOD05_021E8260
+ cmp r0, #1
+ bne _021E81BA
+ ldrb r1, [r4, #0x13]
+ mov r0, #0x7f
+ bic r1, r0
+ strb r1, [r4, #0x13]
+ pop {r4, pc}
+_021E81AE:
+ bl MOD05_021E820C
+ ldrb r1, [r4, #0x13]
+ mov r0, #0x7f
+ bic r1, r0
+ strb r1, [r4, #0x13]
+_021E81BA:
+ pop {r4, pc}
+
+ thumb_func_start MOD05_021E81BC
+MOD05_021E81BC: ; 0x021E81BC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x60]
+ bl MOD05_021E8130
+ add r0, r4, #0
+ bl MOD05_021E8158
+ pop {r4, pc}
+ .balign 4, 0
+
+ thumb_func_start MOD05_021E81D0
+MOD05_021E81D0: ; 0x021E81D0
+ push {r4, lr}
+ mov r1, #3
+ add r4, r0, #0
+ add r3, r1, #0
+ ldr r0, [r4, #8]
+ add r2, r1, #0
+ sub r3, #0x33
+ bl FUN_020179E0
+ ldr r1, [r4, #0x60]
+ ldrb r0, [r1, #0x13]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1f
+ bne _021E8200
+ ldrb r2, [r1, #0x12]
+ ldr r0, [r4, #8]
+ mov r3, #3
+ bl FUN_020546E0
+ ldr r2, [r4, #0x60]
+ mov r0, #0x80
+ ldrb r1, [r2, #0x13]
+ orr r0, r1
+ strb r0, [r2, #0x13]
+_021E8200:
+ ldr r0, [r4, #0x60]
+ ldrb r1, [r0, #0x12]
+ ldrh r2, [r0, #0x10]
+ bl FUN_02054744
+ pop {r4, pc}
+
+ thumb_func_start MOD05_021E820C
+MOD05_021E820C: ; 0x021E820C
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ ldr r0, [r4, #0x60]
+ ldrb r1, [r0, #0x13]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x1f
+ beq _021E825A
+ bl FUN_02019178
+ mov r0, #0x12
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #6
+ str r0, [sp, #8]
+ mov r0, #0x10
+ str r0, [sp, #0xc]
+ mov r2, #0
+ ldr r0, [r4, #8]
+ mov r1, #3
+ add r3, r2, #0
+ bl FUN_02018540
+ ldr r0, [r4, #8]
+ mov r1, #3
+ bl FUN_02017CD0
+ mov r1, #3
+ ldr r0, [r4, #8]
+ add r2, r1, #0
+ mov r3, #0
+ bl FUN_020179E0
+ ldr r2, [r4, #0x60]
+ mov r0, #0x80
+ ldrb r1, [r2, #0x13]
+ bic r1, r0
+ strb r1, [r2, #0x13]
+_021E825A:
+ add sp, #0x10
+ pop {r4, pc}
+ .balign 4, 0
+
+ thumb_func_start MOD05_021E8260
+MOD05_021E8260: ; 0x021E8260
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ mov r1, #3
+ bl FUN_02017B54
+ cmp r0, #0
+ bne _021E8274
+ mov r0, #1
+ pop {r4, pc}
+_021E8274:
+ mov r1, #0x2f
+ mvn r1, r1
+ cmp r0, r1
+ ble _021E8280
+ cmp r0, #0
+ blt _021E828E
+_021E8280:
+ mov r1, #3
+ add r3, r1, #0
+ ldr r0, [r4, #8]
+ add r2, r1, #0
+ sub r3, #0x33
+ bl FUN_020179E0
+_021E828E:
+ ldr r0, [r4, #8]
+ mov r1, #3
+ mov r2, #4
+ mov r3, #0x10
+ bl FUN_020179E0
+ mov r0, #0
+ pop {r4, pc}
+ .balign 4, 0
+
+ thumb_func_start MOD05_021E82A0
+MOD05_021E82A0: ; 0x021E82A0
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ mov r1, #3
+ bl FUN_02017B54
+ mov r1, #0x2f
+ mvn r1, r1
+ cmp r0, r1
+ bne _021E82EC
+ mov r0, #0x12
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #6
+ str r0, [sp, #8]
+ mov r0, #0x10
+ str r0, [sp, #0xc]
+ mov r2, #0
+ ldr r0, [r4, #8]
+ mov r1, #3
+ add r3, r2, #0
+ bl FUN_02018540
+ ldr r0, [r4, #8]
+ mov r1, #3
+ bl FUN_02017CD0
+ mov r1, #3
+ ldr r0, [r4, #8]
+ add r2, r1, #0
+ mov r3, #0
+ bl FUN_020179E0
+ add sp, #0x10
+ mov r0, #1
+ pop {r4, pc}
+_021E82EC:
+ ble _021E82F2
+ cmp r0, #0
+ blt _021E82FE
+_021E82F2:
+ mov r1, #3
+ ldr r0, [r4, #8]
+ add r2, r1, #0
+ mov r3, #0
+ bl FUN_020179E0
+_021E82FE:
+ ldr r0, [r4, #8]
+ mov r1, #3
+ mov r2, #5
+ mov r3, #0x10
+ bl FUN_020179E0
+ mov r0, #0
+ add sp, #0x10
+ pop {r4, pc}
diff --git a/arm9/modules/05/asm/mod05_021E8310.s b/arm9/modules/05/asm/mod05_021E8310.s
new file mode 100644
index 00000000..e3a28a97
--- /dev/null
+++ b/arm9/modules/05/asm/mod05_021E8310.s
@@ -0,0 +1,409 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD05_021E8310
+MOD05_021E8310: ; 0x021E8310
+ push {r3, r4, r5, r6, r7, lr}
+ ldr r4, [r1, #0xc]
+ add r5, r0, #0
+ add r0, r4, #0
+ bl FUN_02034E30
+ bl FUN_02034DC0
+ add r6, r0, #0
+ add r0, r4, #0
+ bl Sav2_Pokedex_get
+ add r7, r0, #0
+ ldr r0, [r6]
+ bl FUN_02034824
+ str r0, [r5, #4]
+ add r0, r7, #0
+ bl Pokedex_GetSinnohDexFlag
+ cmp r0, #0
+ beq _021E8344
+ add r0, r7, #0
+ bl Pokedex_CountSeenMons
+ b _021E8346
+_021E8344:
+ mov r0, #0
+_021E8346:
+ str r0, [r5]
+ add r0, r4, #0
+ bl Sav2_PlayerData_GetProfileAddr
+ str r0, [r5, #8]
+ add r0, r4, #0
+ bl Sav2_PlayerData_GetIGTAddr
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+ .balign 4, 0
+
+ thumb_func_start MOD05_021E835C
+MOD05_021E835C: ; 0x021E835C
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ ldr r2, [r4, #4]
+ mov r1, #0
+ add r5, r0, #0
+ bl BufferLandmarkName
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl BufferPlayersName
+ ldr r0, [r4, #8]
+ bl PlayerProfile_CountBadges
+ add r2, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r3, #1
+ str r3, [sp, #4]
+ add r0, r5, #0
+ mov r1, #2
+ bl BufferIntegerAsString
+ ldr r2, [r4]
+ cmp r2, #0x64
+ blt _021E839A
+ mov r3, #3
+ mov r0, #0
+ b _021E83A8
+_021E839A:
+ cmp r2, #0xa
+ blt _021E83A4
+ mov r3, #3
+ mov r0, #1
+ b _021E83A8
+_021E83A4:
+ mov r3, #2
+ mov r0, #1
+_021E83A8:
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r1, #3
+ bl BufferIntegerAsString
+ ldr r0, [r4, #0xc]
+ bl GetIGTHours
+ add r2, r0, #0
+ cmp r2, #0x64
+ blt _021E83C8
+ mov r3, #3
+ mov r0, #0
+ b _021E83D6
+_021E83C8:
+ cmp r2, #0xa
+ blt _021E83D2
+ mov r3, #3
+ mov r0, #1
+ b _021E83D6
+_021E83D2:
+ mov r3, #2
+ mov r0, #1
+_021E83D6:
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r1, #4
+ bl BufferIntegerAsString
+ ldr r0, [r4, #0xc]
+ bl GetIGTMinutes
+ mov r3, #2
+ add r2, r0, #0
+ str r3, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r1, #5
+ bl BufferIntegerAsString
+ add sp, #8
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD05_021E8400
+MOD05_021E8400: ; 0x021E8400
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _021E840A
+ mov r0, #0xa
+ bx lr
+_021E840A:
+ mov r0, #8
+ bx lr
+ .balign 4, 0
+
+ thumb_func_start MOD05_021E8410
+MOD05_021E8410: ; 0x021E8410
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ mov r0, #0
+ mov r1, #1
+ bl FUN_02002E4C
+ add r4, r0, #0
+ mov r0, #0
+ mov r1, #3
+ bl FUN_02002E4C
+ add r0, r4, r0
+ str r0, [sp, #0x14]
+ mov r4, #0
+ ldr r0, [r5, #0x14]
+ ldr r1, [r5, #0x18]
+ ldr r3, [r5, #4]
+ add r2, r4, #0
+ bl ReadMsgData_ExpandPlaceholders
+ add r1, r4, #0
+ add r6, r0, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ ldr r0, [r5, #0x10]
+ add r2, r6, #0
+ add r3, r1, #0
+ bl AddTextPrinterParameterized
+ add r0, r6, #0
+ bl String_dtor
+ mov r0, #1
+ str r0, [sp, #0x10]
+ ldr r0, _021E84EC ; =UNK05_021F78D4
+ ldr r7, _021E84F0 ; =UNK05_021F78C4
+ str r0, [sp, #0xc]
+_021E8460:
+ ldr r0, [sp, #0xc]
+ ldr r1, [r0]
+ cmp r1, #3
+ bne _021E846E
+ ldr r0, [r5, #0x1c]
+ cmp r0, #0
+ beq _021E84D6
+_021E846E:
+ ldr r0, [sp, #0x14]
+ add r4, r4, r0
+ ldr r0, [r5, #0x18]
+ bl NewString_ReadMsgData
+ add r6, r0, #0
+ mov r1, #0
+ str r4, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ ldr r0, [r5, #0x10]
+ add r2, r6, #0
+ add r3, r1, #0
+ bl AddTextPrinterParameterized
+ add r0, r6, #0
+ bl String_dtor
+ sub r2, r7, #4
+ ldr r0, [r5, #0x14]
+ ldr r1, [r5, #0x18]
+ ldr r2, [r2]
+ ldr r3, [r5, #4]
+ bl ReadMsgData_ExpandPlaceholders
+ add r6, r0, #0
+ mov r0, #0
+ mov r1, #2
+ bl FUN_02002E4C
+ add r2, r0, #0
+ mov r0, #0
+ add r1, r6, #0
+ bl FUN_02002E14
+ mov r1, #0x68
+ sub r3, r1, r0
+ str r4, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ ldr r0, [r5, #0x10]
+ mov r1, #0
+ add r2, r6, #0
+ bl AddTextPrinterParameterized
+ add r0, r6, #0
+ bl String_dtor
+_021E84D6:
+ ldr r0, [sp, #0xc]
+ add r7, r7, #4
+ add r0, r0, #4
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ add r0, r0, #1
+ str r0, [sp, #0x10]
+ cmp r0, #5
+ blo _021E8460
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .balign 4, 0
+_021E84EC: .word UNK05_021F78D4
+_021E84F0: .word UNK05_021F78C4
+
+ thumb_func_start MOD05_021E84F4
+MOD05_021E84F4: ; 0x021E84F4
+ push {r3, r4, lr}
+ sub sp, #0x14
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ mov r1, #0x10
+ bl AllocFromHeap
+ str r0, [r4, #0x10]
+ mov r3, #1
+ str r3, [sp]
+ ldr r0, [r4, #0x2c]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x30]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ ldr r0, _021E8564 ; =0x0000027F
+ str r0, [sp, #0x10]
+ ldrb r2, [r4, #8]
+ ldr r0, [r4, #0xc]
+ ldr r1, [r4, #0x10]
+ bl FUN_02019064
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, [r4, #4]
+ ldr r2, _021E8568 ; =0x000003D9
+ str r0, [sp, #4]
+ ldrb r1, [r4, #8]
+ ldr r0, [r4, #0xc]
+ mov r3, #0xb
+ bl FUN_0200CB00
+ mov r0, #0
+ mov r1, #6
+ bl FUN_02002E4C
+ add r1, r0, #0
+ ldr r0, [r4, #0x10]
+ bl FUN_02019620
+ add r0, r4, #0
+ bl MOD05_021E8410
+ ldr r0, [r4, #0x10]
+ ldr r2, _021E8568 ; =0x000003D9
+ mov r1, #0
+ mov r3, #0xb
+ bl FUN_0200CCA4
+ add sp, #0x14
+ pop {r3, r4, pc}
+ .balign 4, 0
+_021E8564: .word 0x0000027F
+_021E8568: .word 0x000003D9
+
+ thumb_func_start MOD05_021E856C
+MOD05_021E856C: ; 0x021E856C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ bl FUN_0200CCF8
+ ldr r0, [r4, #0x10]
+ bl FUN_02019178
+ ldr r0, [r4, #0x10]
+ bl FreeToHeap
+ pop {r4, pc}
+ .balign 4, 0
+
+ thumb_func_start MOD05_021E8588
+MOD05_021E8588: ; 0x021E8588
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #0x34
+ add r7, r2, #0
+ bl AllocFromHeap
+ add r4, r0, #0
+ str r6, [r4]
+ str r5, [r4, #4]
+ strb r7, [r4, #8]
+ ldr r0, [r6, #8]
+ str r0, [r4, #0xc]
+ add r0, r5, #0
+ bl ScrStrBufs_new
+ str r0, [r4, #0x14]
+ ldr r2, _021E85E0 ; =0x000001E3
+ mov r0, #1
+ mov r1, #0x1a
+ add r3, r5, #0
+ bl NewMsgDataFromNarc
+ str r0, [r4, #0x18]
+ add r0, r4, #0
+ ldr r1, [r4]
+ add r0, #0x1c
+ bl MOD05_021E8310
+ add r1, r4, #0
+ ldr r0, [r4, #0x14]
+ add r1, #0x1c
+ bl MOD05_021E835C
+ mov r0, #0xd
+ str r0, [r4, #0x2c]
+ add r0, r4, #0
+ add r0, #0x1c
+ bl MOD05_021E8400
+ str r0, [r4, #0x30]
+ add r0, r4, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .balign 4, 0
+_021E85E0: .word 0x000001E3
+
+ thumb_func_start MOD05_021E85E4
+MOD05_021E85E4: ; 0x021E85E4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x18]
+ bl DestroyMsgData
+ ldr r0, [r4, #0x14]
+ bl ScrStrBufs_delete
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r4, pc}
+
+ thumb_func_start MOD05_021E85FC
+MOD05_021E85FC: ; 0x021E85FC
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_02034E48
+ add r0, r4, #0
+ mov r1, #4
+ mov r2, #0
+ bl MOD05_021EFA9C
+ ldr r0, [r4, #0x38]
+ bl FUN_02055320
+ ldr r1, [r4, #0x1c]
+ str r0, [r1, #8]
+ ldr r0, [r4, #0x38]
+ bl FUN_0205532C
+ ldr r1, [r4, #0x1c]
+ str r0, [r1, #0xc]
+ mov r1, #0
+ ldr r0, [r4, #0x1c]
+ mvn r1, r1
+ str r1, [r0, #4]
+ ldr r0, [r4, #0x38]
+ bl FUN_020552F8
+ ldr r1, [r4, #0x1c]
+ str r0, [r1, #0x10]
+ ldr r0, [r4, #0xc]
+ bl FUN_02022720
+ cmp r0, #2
+ bne _021E8642
+ mov r0, #1
+ pop {r4, pc}
+_021E8642:
+ mov r0, #0
+ pop {r4, pc}
+ .balign 4, 0
+
+ .section .rodata
+
+ .global UNK05_021F78C4
+UNK05_021F78C4: ; 0x021F78C4
+ .word 0x00000006, 0x00000007, 0x00000008, 0x00000000
+
+ .global UNK05_021F78D4
+UNK05_021F78D4: ; 0x021F78D4
+ .word 0x00000001, 0x00000002, 0x00000003, 0x00000004
diff --git a/arm9/modules/05/asm/module_05.s b/arm9/modules/05/asm/module_05.s
index 38ca97a9..597bd083 100644
--- a/arm9/modules/05/asm/module_05.s
+++ b/arm9/modules/05/asm/module_05.s
@@ -3,1986 +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}
- mov r1, #0x14
- bl AllocFromHeap
- add r3, r0, #0
- mov r2, #0x14
- mov r1, #0
-_021E8106:
- strb r1, [r3]
- add r3, r3, #1
- sub r2, r2, #1
- bne _021E8106
- pop {r3, pc}
-
- thumb_func_start MOD05_021E8110
-MOD05_021E8110: ; 0x021E8110
- push {r4, lr}
- add r4, r0, #0
- ldrb r1, [r4, #0x13]
- lsl r1, r1, #0x18
- lsr r1, r1, #0x1f
- beq _021E8120
- bl FUN_02019178
-_021E8120:
- add r0, r4, #0
- bl FreeToHeap
- pop {r4, pc}
-
- thumb_func_start MOD05_021E8128
-MOD05_021E8128: ; 0x021E8128
- strb r1, [r0, #0x12]
- strh r2, [r0, #0x10]
- bx lr
- .balign 4, 0
-
- thumb_func_start MOD05_021E8130
-MOD05_021E8130: ; 0x021E8130
- ldrb r3, [r0, #0x13]
- mov r2, #0x7f
- bic r3, r2
- mov r2, #0x7f
- and r1, r2
- orr r1, r3
- strb r1, [r0, #0x13]
- bx lr
-
- thumb_func_start MOD05_021E8140
-MOD05_021E8140: ; 0x021E8140
- bx lr
- .balign 4, 0
-
- thumb_func_start MOD05_021E8144
-MOD05_021E8144: ; 0x021E8144
- ldrb r0, [r0, #0x12]
- bx lr
-
- thumb_func_start MOD05_021E8148
-MOD05_021E8148: ; 0x021E8148
- ldrb r0, [r0, #0x13]
- lsl r0, r0, #0x19
- lsr r0, r0, #0x19
- bne _021E8154
- mov r0, #1
- bx lr
-_021E8154:
- mov r0, #0
- bx lr
-
- thumb_func_start MOD05_021E8158
-MOD05_021E8158: ; 0x021E8158
- push {r4, lr}
- ldr r4, [r0, #0x60]
- ldrb r1, [r4, #0x13]
- lsl r1, r1, #0x19
- lsr r1, r1, #0x19
- cmp r1, #4
- bhi _021E81BA
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_021E8172: ; jump table
- .short _021E81BA - _021E8172 - 2 ; case 0
- .short _021E817C - _021E8172 - 2 ; case 1
- .short _021E818A - _021E8172 - 2 ; case 2
- .short _021E819C - _021E8172 - 2 ; case 3
- .short _021E81AE - _021E8172 - 2 ; case 4
-_021E817C:
- bl MOD05_021E81D0
- ldrb r1, [r4, #0x13]
- mov r0, #0x7f
- bic r1, r0
- strb r1, [r4, #0x13]
- pop {r4, pc}
-_021E818A:
- bl MOD05_021E82A0
- cmp r0, #1
- bne _021E81BA
- ldrb r1, [r4, #0x13]
- mov r0, #0x7f
- bic r1, r0
- strb r1, [r4, #0x13]
- pop {r4, pc}
-_021E819C:
- bl MOD05_021E8260
- cmp r0, #1
- bne _021E81BA
- ldrb r1, [r4, #0x13]
- mov r0, #0x7f
- bic r1, r0
- strb r1, [r4, #0x13]
- pop {r4, pc}
-_021E81AE:
- bl MOD05_021E820C
- ldrb r1, [r4, #0x13]
- mov r0, #0x7f
- bic r1, r0
- strb r1, [r4, #0x13]
-_021E81BA:
- pop {r4, pc}
-
- thumb_func_start MOD05_021E81BC
-MOD05_021E81BC: ; 0x021E81BC
- push {r4, lr}
- add r4, r0, #0
- ldr r0, [r4, #0x60]
- bl MOD05_021E8130
- add r0, r4, #0
- bl MOD05_021E8158
- pop {r4, pc}
- .balign 4, 0
-
- thumb_func_start MOD05_021E81D0
-MOD05_021E81D0: ; 0x021E81D0
- push {r4, lr}
- mov r1, #3
- add r4, r0, #0
- add r3, r1, #0
- ldr r0, [r4, #8]
- add r2, r1, #0
- sub r3, #0x33
- bl FUN_020179E0
- ldr r1, [r4, #0x60]
- ldrb r0, [r1, #0x13]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x1f
- bne _021E8200
- ldrb r2, [r1, #0x12]
- ldr r0, [r4, #8]
- mov r3, #3
- bl FUN_020546E0
- ldr r2, [r4, #0x60]
- mov r0, #0x80
- ldrb r1, [r2, #0x13]
- orr r0, r1
- strb r0, [r2, #0x13]
-_021E8200:
- ldr r0, [r4, #0x60]
- ldrb r1, [r0, #0x12]
- ldrh r2, [r0, #0x10]
- bl FUN_02054744
- pop {r4, pc}
-
- thumb_func_start MOD05_021E820C
-MOD05_021E820C: ; 0x021E820C
- push {r4, lr}
- sub sp, #0x10
- add r4, r0, #0
- ldr r0, [r4, #0x60]
- ldrb r1, [r0, #0x13]
- lsl r1, r1, #0x18
- lsr r1, r1, #0x1f
- beq _021E825A
- bl FUN_02019178
- mov r0, #0x12
- str r0, [sp]
- mov r0, #0x20
- str r0, [sp, #4]
- mov r0, #6
- str r0, [sp, #8]
- mov r0, #0x10
- str r0, [sp, #0xc]
- mov r2, #0
- ldr r0, [r4, #8]
- mov r1, #3
- add r3, r2, #0
- bl FUN_02018540
- ldr r0, [r4, #8]
- mov r1, #3
- bl FUN_02017CD0
- mov r1, #3
- ldr r0, [r4, #8]
- add r2, r1, #0
- mov r3, #0
- bl FUN_020179E0
- ldr r2, [r4, #0x60]
- mov r0, #0x80
- ldrb r1, [r2, #0x13]
- bic r1, r0
- strb r1, [r2, #0x13]
-_021E825A:
- add sp, #0x10
- pop {r4, pc}
- .balign 4, 0
-
- thumb_func_start MOD05_021E8260
-MOD05_021E8260: ; 0x021E8260
- push {r4, lr}
- add r4, r0, #0
- ldr r0, [r4, #8]
- mov r1, #3
- bl FUN_02017B54
- cmp r0, #0
- bne _021E8274
- mov r0, #1
- pop {r4, pc}
-_021E8274:
- mov r1, #0x2f
- mvn r1, r1
- cmp r0, r1
- ble _021E8280
- cmp r0, #0
- blt _021E828E
-_021E8280:
- mov r1, #3
- add r3, r1, #0
- ldr r0, [r4, #8]
- add r2, r1, #0
- sub r3, #0x33
- bl FUN_020179E0
-_021E828E:
- ldr r0, [r4, #8]
- mov r1, #3
- mov r2, #4
- mov r3, #0x10
- bl FUN_020179E0
- mov r0, #0
- pop {r4, pc}
- .balign 4, 0
-
- thumb_func_start MOD05_021E82A0
-MOD05_021E82A0: ; 0x021E82A0
- push {r4, lr}
- sub sp, #0x10
- add r4, r0, #0
- ldr r0, [r4, #8]
- mov r1, #3
- bl FUN_02017B54
- mov r1, #0x2f
- mvn r1, r1
- cmp r0, r1
- bne _021E82EC
- mov r0, #0x12
- str r0, [sp]
- mov r0, #0x20
- str r0, [sp, #4]
- mov r0, #6
- str r0, [sp, #8]
- mov r0, #0x10
- str r0, [sp, #0xc]
- mov r2, #0
- ldr r0, [r4, #8]
- mov r1, #3
- add r3, r2, #0
- bl FUN_02018540
- ldr r0, [r4, #8]
- mov r1, #3
- bl FUN_02017CD0
- mov r1, #3
- ldr r0, [r4, #8]
- add r2, r1, #0
- mov r3, #0
- bl FUN_020179E0
- add sp, #0x10
- mov r0, #1
- pop {r4, pc}
-_021E82EC:
- ble _021E82F2
- cmp r0, #0
- blt _021E82FE
-_021E82F2:
- mov r1, #3
- ldr r0, [r4, #8]
- add r2, r1, #0
- mov r3, #0
- bl FUN_020179E0
-_021E82FE:
- ldr r0, [r4, #8]
- mov r1, #3
- mov r2, #5
- mov r3, #0x10
- bl FUN_020179E0
- mov r0, #0
- add sp, #0x10
- pop {r4, pc}
-
- thumb_func_start MOD05_021E8310
-MOD05_021E8310: ; 0x021E8310
- push {r3, r4, r5, r6, r7, lr}
- ldr r4, [r1, #0xc]
- add r5, r0, #0
- add r0, r4, #0
- bl FUN_02034E30
- bl FUN_02034DC0
- add r6, r0, #0
- add r0, r4, #0
- bl Sav2_Pokedex_get
- add r7, r0, #0
- ldr r0, [r6]
- bl FUN_02034824
- str r0, [r5, #4]
- add r0, r7, #0
- bl Pokedex_GetSinnohDexFlag
- cmp r0, #0
- beq _021E8344
- add r0, r7, #0
- bl Pokedex_CountSeenMons
- b _021E8346
-_021E8344:
- mov r0, #0
-_021E8346:
- str r0, [r5]
- add r0, r4, #0
- bl Sav2_PlayerData_GetProfileAddr
- str r0, [r5, #8]
- add r0, r4, #0
- bl Sav2_PlayerData_GetIGTAddr
- str r0, [r5, #0xc]
- pop {r3, r4, r5, r6, r7, pc}
- .balign 4, 0
-
- thumb_func_start MOD05_021E835C
-MOD05_021E835C: ; 0x021E835C
- push {r3, r4, r5, lr}
- sub sp, #8
- add r4, r1, #0
- ldr r2, [r4, #4]
- mov r1, #0
- add r5, r0, #0
- bl BufferLandmarkName
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl BufferPlayersName
- ldr r0, [r4, #8]
- bl PlayerProfile_CountBadges
- add r2, r0, #0
- mov r0, #0
- str r0, [sp]
- mov r3, #1
- str r3, [sp, #4]
- add r0, r5, #0
- mov r1, #2
- bl BufferIntegerAsString
- ldr r2, [r4]
- cmp r2, #0x64
- blt _021E839A
- mov r3, #3
- mov r0, #0
- b _021E83A8
-_021E839A:
- cmp r2, #0xa
- blt _021E83A4
- mov r3, #3
- mov r0, #1
- b _021E83A8
-_021E83A4:
- mov r3, #2
- mov r0, #1
-_021E83A8:
- str r0, [sp]
- mov r0, #1
- str r0, [sp, #4]
- add r0, r5, #0
- mov r1, #3
- bl BufferIntegerAsString
- ldr r0, [r4, #0xc]
- bl GetIGTHours
- add r2, r0, #0
- cmp r2, #0x64
- blt _021E83C8
- mov r3, #3
- mov r0, #0
- b _021E83D6
-_021E83C8:
- cmp r2, #0xa
- blt _021E83D2
- mov r3, #3
- mov r0, #1
- b _021E83D6
-_021E83D2:
- mov r3, #2
- mov r0, #1
-_021E83D6:
- str r0, [sp]
- mov r0, #1
- str r0, [sp, #4]
- add r0, r5, #0
- mov r1, #4
- bl BufferIntegerAsString
- ldr r0, [r4, #0xc]
- bl GetIGTMinutes
- mov r3, #2
- add r2, r0, #0
- str r3, [sp]
- mov r0, #1
- str r0, [sp, #4]
- add r0, r5, #0
- mov r1, #5
- bl BufferIntegerAsString
- add sp, #8
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD05_021E8400
-MOD05_021E8400: ; 0x021E8400
- ldr r0, [r0]
- cmp r0, #0
- beq _021E840A
- mov r0, #0xa
- bx lr
-_021E840A:
- mov r0, #8
- bx lr
- .balign 4, 0
-
- thumb_func_start MOD05_021E8410
-MOD05_021E8410: ; 0x021E8410
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x18
- add r5, r0, #0
- mov r0, #0
- mov r1, #1
- bl FUN_02002E4C
- add r4, r0, #0
- mov r0, #0
- mov r1, #3
- bl FUN_02002E4C
- add r0, r4, r0
- str r0, [sp, #0x14]
- mov r4, #0
- ldr r0, [r5, #0x14]
- ldr r1, [r5, #0x18]
- ldr r3, [r5, #4]
- add r2, r4, #0
- bl ReadMsgData_ExpandPlaceholders
- add r1, r4, #0
- add r6, r0, #0
- str r1, [sp]
- mov r0, #0xff
- str r0, [sp, #4]
- str r1, [sp, #8]
- ldr r0, [r5, #0x10]
- add r2, r6, #0
- add r3, r1, #0
- bl AddTextPrinterParameterized
- add r0, r6, #0
- bl String_dtor
- mov r0, #1
- str r0, [sp, #0x10]
- ldr r0, _021E84EC ; =UNK05_021F78D4
- ldr r7, _021E84F0 ; =UNK05_021F78C4
- str r0, [sp, #0xc]
-_021E8460:
- ldr r0, [sp, #0xc]
- ldr r1, [r0]
- cmp r1, #3
- bne _021E846E
- ldr r0, [r5, #0x1c]
- cmp r0, #0
- beq _021E84D6
-_021E846E:
- ldr r0, [sp, #0x14]
- add r4, r4, r0
- ldr r0, [r5, #0x18]
- bl NewString_ReadMsgData
- add r6, r0, #0
- mov r1, #0
- str r4, [sp]
- mov r0, #0xff
- str r0, [sp, #4]
- mov r0, #0
- str r0, [sp, #8]
- ldr r0, [r5, #0x10]
- add r2, r6, #0
- add r3, r1, #0
- bl AddTextPrinterParameterized
- add r0, r6, #0
- bl String_dtor
- sub r2, r7, #4
- ldr r0, [r5, #0x14]
- ldr r1, [r5, #0x18]
- ldr r2, [r2]
- ldr r3, [r5, #4]
- bl ReadMsgData_ExpandPlaceholders
- add r6, r0, #0
- mov r0, #0
- mov r1, #2
- bl FUN_02002E4C
- add r2, r0, #0
- mov r0, #0
- add r1, r6, #0
- bl FUN_02002E14
- mov r1, #0x68
- sub r3, r1, r0
- str r4, [sp]
- mov r0, #0xff
- str r0, [sp, #4]
- mov r0, #0
- str r0, [sp, #8]
- ldr r0, [r5, #0x10]
- mov r1, #0
- add r2, r6, #0
- bl AddTextPrinterParameterized
- add r0, r6, #0
- bl String_dtor
-_021E84D6:
- ldr r0, [sp, #0xc]
- add r7, r7, #4
- add r0, r0, #4
- str r0, [sp, #0xc]
- ldr r0, [sp, #0x10]
- add r0, r0, #1
- str r0, [sp, #0x10]
- cmp r0, #5
- blo _021E8460
- add sp, #0x18
- pop {r3, r4, r5, r6, r7, pc}
- .balign 4, 0
-_021E84EC: .word UNK05_021F78D4
-_021E84F0: .word UNK05_021F78C4
-
- thumb_func_start MOD05_021E84F4
-MOD05_021E84F4: ; 0x021E84F4
- push {r3, r4, lr}
- sub sp, #0x14
- add r4, r0, #0
- ldr r0, [r4, #4]
- mov r1, #0x10
- bl AllocFromHeap
- str r0, [r4, #0x10]
- mov r3, #1
- str r3, [sp]
- ldr r0, [r4, #0x2c]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #4]
- ldr r0, [r4, #0x30]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #8]
- mov r0, #0xd
- str r0, [sp, #0xc]
- ldr r0, _021E8564 ; =0x0000027F
- str r0, [sp, #0x10]
- ldrb r2, [r4, #8]
- ldr r0, [r4, #0xc]
- ldr r1, [r4, #0x10]
- bl FUN_02019064
- mov r0, #0
- str r0, [sp]
- ldr r0, [r4, #4]
- ldr r2, _021E8568 ; =0x000003D9
- str r0, [sp, #4]
- ldrb r1, [r4, #8]
- ldr r0, [r4, #0xc]
- mov r3, #0xb
- bl FUN_0200CB00
- mov r0, #0
- mov r1, #6
- bl FUN_02002E4C
- add r1, r0, #0
- ldr r0, [r4, #0x10]
- bl FUN_02019620
- add r0, r4, #0
- bl MOD05_021E8410
- ldr r0, [r4, #0x10]
- ldr r2, _021E8568 ; =0x000003D9
- mov r1, #0
- mov r3, #0xb
- bl FUN_0200CCA4
- add sp, #0x14
- pop {r3, r4, pc}
- .balign 4, 0
-_021E8564: .word 0x0000027F
-_021E8568: .word 0x000003D9
-
- thumb_func_start MOD05_021E856C
-MOD05_021E856C: ; 0x021E856C
- push {r4, lr}
- add r4, r0, #0
- ldr r0, [r4, #0x10]
- mov r1, #0
- bl FUN_0200CCF8
- ldr r0, [r4, #0x10]
- bl FUN_02019178
- ldr r0, [r4, #0x10]
- bl FreeToHeap
- pop {r4, pc}
- .balign 4, 0
-
- thumb_func_start MOD05_021E8588
-MOD05_021E8588: ; 0x021E8588
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #0x34
- add r7, r2, #0
- bl AllocFromHeap
- add r4, r0, #0
- str r6, [r4]
- str r5, [r4, #4]
- strb r7, [r4, #8]
- ldr r0, [r6, #8]
- str r0, [r4, #0xc]
- add r0, r5, #0
- bl ScrStrBufs_new
- str r0, [r4, #0x14]
- ldr r2, _021E85E0 ; =0x000001E3
- mov r0, #1
- mov r1, #0x1a
- add r3, r5, #0
- bl NewMsgDataFromNarc
- str r0, [r4, #0x18]
- add r0, r4, #0
- ldr r1, [r4]
- add r0, #0x1c
- bl MOD05_021E8310
- add r1, r4, #0
- ldr r0, [r4, #0x14]
- add r1, #0x1c
- bl MOD05_021E835C
- mov r0, #0xd
- str r0, [r4, #0x2c]
- add r0, r4, #0
- add r0, #0x1c
- bl MOD05_021E8400
- str r0, [r4, #0x30]
- add r0, r4, #0
- pop {r3, r4, r5, r6, r7, pc}
- .balign 4, 0
-_021E85E0: .word 0x000001E3
-
- thumb_func_start MOD05_021E85E4
-MOD05_021E85E4: ; 0x021E85E4
- push {r4, lr}
- add r4, r0, #0
- ldr r0, [r4, #0x18]
- bl DestroyMsgData
- ldr r0, [r4, #0x14]
- bl ScrStrBufs_delete
- add r0, r4, #0
- bl FreeToHeap
- pop {r4, pc}
-
- thumb_func_start MOD05_021E85FC
-MOD05_021E85FC: ; 0x021E85FC
- push {r4, lr}
- add r4, r0, #0
- bl FUN_02034E48
- add r0, r4, #0
- mov r1, #4
- mov r2, #0
- bl MOD05_021EFA9C
- ldr r0, [r4, #0x38]
- bl FUN_02055320
- ldr r1, [r4, #0x1c]
- str r0, [r1, #8]
- ldr r0, [r4, #0x38]
- bl FUN_0205532C
- ldr r1, [r4, #0x1c]
- str r0, [r1, #0xc]
- mov r1, #0
- ldr r0, [r4, #0x1c]
- mvn r1, r1
- str r1, [r0, #4]
- ldr r0, [r4, #0x38]
- bl FUN_020552F8
- ldr r1, [r4, #0x1c]
- str r0, [r1, #0x10]
- ldr r0, [r4, #0xc]
- bl FUN_02022720
- cmp r0, #2
- bne _021E8642
- mov r0, #1
- pop {r4, pc}
-_021E8642:
- mov r0, #0
- pop {r4, pc}
- .balign 4, 0
-
thumb_func_start MOD05_021E8648
MOD05_021E8648: ; 0x021E8648
push {r4, r5, r6, lr}
@@ -30518,45 +28538,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
-
- .global UNK05_021F78D4
-UNK05_021F78D4: ; 0x021F78D4
- .byte 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00
-
.global UNK05_021F78E4
UNK05_021F78E4: ; 0x021F78E4
.byte 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00