summaryrefslogtreecommitdiff
path: root/arm9/modules
diff options
context:
space:
mode:
Diffstat (limited to 'arm9/modules')
-rw-r--r--arm9/modules/04/asm/arm_04.s6
-rw-r--r--arm9/modules/79/asm/module_79_thumb.s2
-rw-r--r--arm9/modules/80/asm/module_80.s2
-rw-r--r--arm9/modules/82/asm/module_82.s2
-rw-r--r--arm9/modules/83/asm/module_83.s2
-rw-r--r--arm9/modules/86/asm/module_86.s917
6 files changed, 927 insertions, 4 deletions
diff --git a/arm9/modules/04/asm/arm_04.s b/arm9/modules/04/asm/arm_04.s
index 83993b5d..eb42dcb1 100644
--- a/arm9/modules/04/asm/arm_04.s
+++ b/arm9/modules/04/asm/arm_04.s
@@ -6128,6 +6128,9 @@ MOD04_021DE308: ; 0x021DE308
bl MOD04_02207158
add sp, sp, #4
ldmfd sp!, {pc}
+
+ arm_func_start MOD04_021DE330
+MOD04_021DE330: ; 0x021DE330
stmdb sp!, {r4, r5, r6, lr}
mov r6, r0
mov r5, r1
@@ -21284,6 +21287,9 @@ MOD04_021EB524: ; 0x021EB524
mov r0, #1
add sp, sp, #4
ldmfd sp!, {pc}
+
+ arm_func_start MOD04_021EB550
+MOD04_021EB550:
stmdb sp!, {lr}
sub sp, sp, #4
ldr r0, _021EB598 ; =0x02210E44
diff --git a/arm9/modules/79/asm/module_79_thumb.s b/arm9/modules/79/asm/module_79_thumb.s
index ac0c1188..26c700af 100644
--- a/arm9/modules/79/asm/module_79_thumb.s
+++ b/arm9/modules/79/asm/module_79_thumb.s
@@ -811,7 +811,7 @@ MOD79_0221244C: ; 0x0221244C
mov r1, #0
str r1, [r0, #0x24]
_02212464:
- blx FUN_021EB550
+ bl MOD04_021EB550
ldr r0, _02212470 ; =0x02216760
mov r1, #1
str r1, [r0]
diff --git a/arm9/modules/80/asm/module_80.s b/arm9/modules/80/asm/module_80.s
index 555f3678..45c6e1e3 100644
--- a/arm9/modules/80/asm/module_80.s
+++ b/arm9/modules/80/asm/module_80.s
@@ -18609,7 +18609,7 @@ _0223696C:
str r0, [r4, #0x2c]
b _02236986
_02236972:
- blx FUN_021EB550
+ bl MOD04_021EB550
mov r0, #0x15
str r0, [r4, #0x2c]
b _02236986
diff --git a/arm9/modules/82/asm/module_82.s b/arm9/modules/82/asm/module_82.s
index 98afbcaa..962ebed4 100644
--- a/arm9/modules/82/asm/module_82.s
+++ b/arm9/modules/82/asm/module_82.s
@@ -2232,7 +2232,7 @@ _0222E768:
str r0, [r4, #0x1c]
b _0222E782
_0222E76E:
- blx FUN_021EB550
+ bl MOD04_021EB550
mov r0, #0x35
str r0, [r4, #0x1c]
b _0222E782
diff --git a/arm9/modules/83/asm/module_83.s b/arm9/modules/83/asm/module_83.s
index 1ab49f6e..1eda08dc 100644
--- a/arm9/modules/83/asm/module_83.s
+++ b/arm9/modules/83/asm/module_83.s
@@ -26210,7 +26210,7 @@ _0223A14E:
ldr r0, _0223A2AC ; =0x0223CAEC
add r1, r4, r1
add r2, r3, #0
- blx FUN_021DE330
+ bl MOD04_021DE330
cmp r0, #0
bne _0223A168
add r0, r4, #0
diff --git a/arm9/modules/86/asm/module_86.s b/arm9/modules/86/asm/module_86.s
new file mode 100644
index 00000000..922a98f3
--- /dev/null
+++ b/arm9/modules/86/asm/module_86.s
@@ -0,0 +1,917 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD86_021D74E0
+MOD86_021D74E0: ; 0x021D74E0
+ push {r3, r4, r5, lr}
+ mov r2, #2
+ add r5, r0, #0
+ mov r0, #3
+ mov r1, #0x54
+ lsl r2, r2, #0x10
+ bl FUN_0201681C
+ add r0, r5, #0
+ mov r1, #0x44
+ mov r2, #0x54
+ bl FUN_02006268
+ mov r1, #0
+ mov r2, #0x44
+ add r4, r0, #0
+ bl Call_FillMemWithValue
+ mov r0, #0x54
+ str r0, [r4]
+ add r0, r5, #0
+ bl FUN_0200628C
+ ldr r1, [r0]
+ str r1, [r4, #8]
+ ldr r0, [r0, #4]
+ str r0, [r4, #4]
+ ldr r0, [r4, #8]
+ bl FUN_020238F4
+ str r0, [r4, #0xc]
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_0200E3A0
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0200E3A0
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F34
+ bl FUN_0201E6D8
+ bl FUN_0201E740
+ mov r2, #1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2]
+ ldr r0, _021D7580 ; =0xFFFFE0FF
+ and r1, r0
+ str r1, [r2]
+ ldr r2, _021D7584 ; =0x04001000
+ ldr r1, [r2]
+ and r0, r1
+ str r0, [r2]
+ mov r0, #4
+ mov r1, #8
+ bl FUN_0201669C
+ add r0, r4, #0
+ bl MOD86_021D76EC
+ add r0, r4, #0
+ bl MOD86_021D78D4
+ ldr r0, _021D7588 ; =MOD86_021D76E0
+ add r1, r4, #0
+ bl FUN_02015F10
+ bl FUN_0201E788
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ nop
+_021D7580: .word 0xFFFFE0FF
+_021D7584: .word 0x04001000
+_021D7588: .word MOD86_021D76E0
+ thumb_func_end MOD86_021D74E0
+
+ thumb_func_start MOD86_021D758C
+MOD86_021D758C: ; 0x021D758C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ bl FUN_02006278
+ ldr r1, [r5]
+ add r4, r0, #0
+ mov r6, #0
+ cmp r1, #5
+ bhi _021D76A0
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D75AC: ; jump table
+ .short _021D75B8 - _021D75AC - 2 ; case 0
+ .short _021D7614 - _021D75AC - 2 ; case 1
+ .short _021D7626 - _021D75AC - 2 ; case 2
+ .short _021D7638 - _021D75AC - 2 ; case 3
+ .short _021D765C - _021D75AC - 2 ; case 4
+ .short _021D7696 - _021D75AC - 2 ; case 5
+_021D75B8:
+ bl MOD86_021D7984
+ add r0, r4, #0
+ bl MOD86_021D79D4
+ add r0, r4, #0
+ bl MOD86_021D7B80
+ add r0, r6, #0
+ mov r1, #1
+ bl FUN_0201797C
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201797C
+ mov r0, #3
+ mov r1, #1
+ bl FUN_0201797C
+ mov r0, #4
+ mov r1, #1
+ bl FUN_0201797C
+ mov r0, #5
+ mov r1, #1
+ bl FUN_0201797C
+ mov r0, #7
+ mov r1, #1
+ bl FUN_0201797C
+ mov r0, #6
+ mov r1, #1
+ str r0, [sp]
+ str r1, [sp, #4]
+ ldr r0, [r4]
+ add r2, r1, #0
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ mov r0, #1
+ str r0, [r5]
+ b _021D76A0
+_021D7614:
+ bl FUN_0200E308
+ cmp r0, #1
+ bne _021D76A0
+ add r0, r6, #0
+ str r0, [r4, #0x40]
+ mov r0, #2
+ str r0, [r5]
+ b _021D76A0
+_021D7626:
+ ldr r0, [r4, #0x40]
+ cmp r0, #0x3c
+ bge _021D7632
+ add r0, r0, #1
+ str r0, [r4, #0x40]
+ b _021D76A0
+_021D7632:
+ mov r0, #3
+ str r0, [r5]
+ b _021D76A0
+_021D7638:
+ mov r2, #0x3c
+ ldrsh r3, [r4, r2]
+ add r1, r2, #0
+ sub r1, #0xfc
+ cmp r3, r1
+ ble _021D764E
+ sub r1, r3, #4
+ strh r1, [r4, #0x3c]
+ bl MOD86_021D7990
+ b _021D76A0
+_021D764E:
+ sub r2, #0xfc
+ strh r2, [r4, #0x3c]
+ bl MOD86_021D7990
+ mov r0, #4
+ str r0, [r5]
+ b _021D76A0
+_021D765C:
+ ldr r0, _021D76A8 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #1
+ and r0, r1
+ cmp r0, #1
+ beq _021D7678
+ mov r0, #2
+ and r0, r1
+ cmp r0, #2
+ beq _021D7678
+ ldr r0, _021D76AC ; =0x021C48F8
+ ldrh r0, [r0, #0x20]
+ cmp r0, #0
+ beq _021D76A0
+_021D7678:
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ str r0, [sp, #8]
+ mov r0, #0
+ add r1, r0, #0
+ add r2, r0, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ mov r0, #5
+ str r0, [r5]
+ b _021D76A0
+_021D7696:
+ bl FUN_0200E308
+ cmp r0, #1
+ bne _021D76A0
+ mov r6, #1
+_021D76A0:
+ add r0, r6, #0
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ nop
+_021D76A8: .word 0x021C48B8
+_021D76AC: .word 0x021C48F8
+ thumb_func_end MOD86_021D758C
+
+ thumb_func_start MOD86_021D76B0
+MOD86_021D76B0: ; 0x021D76B0
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ bl FUN_02006278
+ add r6, r0, #0
+ ldr r4, [r6]
+ bl MOD86_021D7964
+ add r0, r6, #0
+ bl MOD86_021D7858
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ add r0, r5, #0
+ bl FUN_0200627C
+ add r0, r4, #0
+ bl FUN_020168D0
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD86_021D76B0
+
+ thumb_func_start MOD86_021D76E0
+MOD86_021D76E0: ; 0x021D76E0
+ ldr r3, _021D76E8 ; =FUN_0201AB60
+ ldr r0, [r0, #0x10]
+ bx r3
+ nop
+_021D76E8: .word FUN_0201AB60
+ thumb_func_end MOD86_021D76E0
+
+ thumb_func_start MOD86_021D76EC
+MOD86_021D76EC: ; 0x021D76EC
+ push {r4, r5, lr}
+ sub sp, #0x54
+ ldr r5, _021D784C ; =0x021D7CBC
+ add r4, r0, #0
+ add r3, sp, #0x2c
+ mov r2, #5
+_021D76F8:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _021D76F8
+ add r0, sp, #0x2c
+ bl FUN_0201E66C
+ ldr r0, [r4]
+ bl FUN_02016B94
+ add r3, sp, #0x1c
+ ldr r5, _021D7850 ; =0x021D7C90
+ str r0, [r4, #0x10]
+ add r2, r3, #0
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ add r0, r2, #0
+ bl FUN_02016BBC
+ ldr r5, _021D7854 ; =0x021D7CA0
+ add r3, sp, #0
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #0
+ str r0, [r3]
+ add r0, sp, #0
+ strb r1, [r0, #0x12]
+ mov r3, #4
+ strb r3, [r0, #0x13]
+ lsl r3, r3, #0xa
+ str r3, [sp, #8]
+ mov r3, #2
+ strb r3, [r0, #0x10]
+ ldr r0, [r4, #0x10]
+ add r3, r1, #0
+ bl FUN_02016C18
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ bl FUN_02018744
+ mov r2, #2
+ add r0, sp, #0
+ strb r2, [r0, #0x12]
+ strb r2, [r0, #0x13]
+ lsl r1, r2, #0xb
+ str r1, [sp, #8]
+ strb r2, [r0, #0x10]
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ add r2, sp, #0
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_02018744
+ mov r1, #4
+ add r0, sp, #0
+ strb r1, [r0, #0x12]
+ mov r2, #1
+ strb r2, [r0, #0x13]
+ lsl r1, r2, #0xb
+ str r1, [sp, #8]
+ strb r2, [r0, #0x10]
+ ldr r0, [r4, #0x10]
+ mov r1, #3
+ add r2, sp, #0
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r4, #0x10]
+ mov r1, #3
+ bl FUN_02018744
+ mov r1, #4
+ mov r3, #0
+ add r0, sp, #0
+ strb r3, [r0, #0x12]
+ strb r1, [r0, #0x13]
+ lsl r2, r1, #0xa
+ str r2, [sp, #8]
+ mov r2, #2
+ strb r2, [r0, #0x10]
+ ldr r0, [r4, #0x10]
+ add r2, sp, #0
+ bl FUN_02016C18
+ ldr r0, [r4, #0x10]
+ mov r1, #4
+ bl FUN_02018744
+ mov r2, #2
+ add r0, sp, #0
+ strb r2, [r0, #0x12]
+ strb r2, [r0, #0x13]
+ lsl r1, r2, #0xb
+ str r1, [sp, #8]
+ strb r2, [r0, #0x10]
+ ldr r0, [r4, #0x10]
+ mov r1, #5
+ add r2, sp, #0
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r4, #0x10]
+ mov r1, #5
+ bl FUN_02018744
+ mov r1, #4
+ add r0, sp, #0
+ strb r1, [r0, #0x12]
+ mov r2, #1
+ strb r2, [r0, #0x13]
+ lsl r1, r2, #0xb
+ str r1, [sp, #8]
+ strb r2, [r0, #0x10]
+ ldr r0, [r4, #0x10]
+ mov r1, #7
+ add r2, sp, #0
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r4, #0x10]
+ mov r1, #7
+ bl FUN_02018744
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_0201797C
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0201797C
+ mov r0, #2
+ mov r1, #0
+ bl FUN_0201797C
+ mov r0, #3
+ mov r1, #0
+ bl FUN_0201797C
+ mov r0, #4
+ mov r1, #0
+ bl FUN_0201797C
+ mov r0, #5
+ mov r1, #0
+ bl FUN_0201797C
+ mov r0, #6
+ mov r1, #0
+ bl FUN_0201797C
+ mov r0, #7
+ mov r1, #0
+ bl FUN_0201797C
+ add sp, #0x54
+ pop {r4, r5, pc}
+ .align 2, 0
+_021D784C: .word 0x021D7CBC
+_021D7850: .word 0x021D7C90
+_021D7854: .word 0x021D7CA0
+ thumb_func_end MOD86_021D76EC
+
+ thumb_func_start MOD86_021D7858
+MOD86_021D7858: ; 0x021D7858
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_0201797C
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0201797C
+ mov r0, #2
+ mov r1, #0
+ bl FUN_0201797C
+ mov r0, #3
+ mov r1, #0
+ bl FUN_0201797C
+ mov r0, #4
+ mov r1, #0
+ bl FUN_0201797C
+ mov r0, #5
+ mov r1, #0
+ bl FUN_0201797C
+ mov r0, #6
+ mov r1, #0
+ bl FUN_0201797C
+ mov r0, #7
+ mov r1, #0
+ bl FUN_0201797C
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ bl FUN_020178A0
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_020178A0
+ ldr r0, [r4, #0x10]
+ mov r1, #3
+ bl FUN_020178A0
+ ldr r0, [r4, #0x10]
+ mov r1, #4
+ bl FUN_020178A0
+ ldr r0, [r4, #0x10]
+ mov r1, #5
+ bl FUN_020178A0
+ ldr r0, [r4, #0x10]
+ mov r1, #7
+ bl FUN_020178A0
+ ldr r0, [r4, #0x10]
+ bl FUN_02016A18
+ pop {r4, pc}
+ thumb_func_end MOD86_021D7858
+
+ thumb_func_start MOD86_021D78D4
+MOD86_021D78D4: ; 0x021D78D4
+ push {r4, lr}
+ sub sp, #0x10
+ ldr r1, _021D7960 ; =0x021D7C88
+ add r4, r0, #0
+ ldrh r2, [r1]
+ add r0, sp, #8
+ strh r2, [r0]
+ ldrh r2, [r1, #2]
+ strh r2, [r0, #2]
+ ldrh r2, [r1, #4]
+ ldrh r1, [r1, #6]
+ strh r2, [r0, #4]
+ strh r1, [r0, #6]
+ bl FUN_0201BD5C
+ mov r0, #1
+ ldr r3, [r4]
+ mov r1, #0x1a
+ add r2, r0, #0
+ bl FUN_0200A86C
+ str r0, [r4, #0x34]
+ ldr r0, [r4]
+ bl FUN_0200AA80
+ str r0, [r4, #0x38]
+ mov r1, #0
+ add r0, sp, #8
+ strb r1, [r0]
+ add r1, r4, #0
+ ldr r0, [r4, #0x10]
+ add r1, #0x14
+ add r2, sp, #8
+ bl FUN_02019150
+ mov r1, #0
+ mov r0, #1
+ lsl r0, r0, #8
+ str r0, [sp]
+ mov r0, #0xc0
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x14
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_020196F4
+ mov r1, #4
+ add r0, sp, #8
+ strb r1, [r0]
+ add r1, r4, #0
+ ldr r0, [r4, #0x10]
+ add r1, #0x24
+ add r2, sp, #8
+ bl FUN_02019150
+ mov r1, #0
+ mov r0, #1
+ lsl r0, r0, #8
+ str r0, [sp]
+ mov r0, #0xc0
+ add r4, #0x24
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_020196F4
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_021D7960: .word 0x021D7C88
+ thumb_func_end MOD86_021D78D4
+
+ thumb_func_start MOD86_021D7964
+MOD86_021D7964: ; 0x021D7964
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0x24
+ bl FUN_02019178
+ add r0, r4, #0
+ add r0, #0x14
+ bl FUN_02019178
+ ldr r0, [r4, #0x38]
+ bl FUN_0200AB18
+ ldr r0, [r4, #0x34]
+ bl FUN_0200A8B8
+ pop {r4, pc}
+ thumb_func_end MOD86_021D7964
+
+ thumb_func_start MOD86_021D7984
+MOD86_021D7984: ; 0x021D7984
+ ldr r3, _021D798C ; =MOD86_021D7990
+ mov r1, #0
+ strh r1, [r0, #0x3c]
+ bx r3
+ .align 2, 0
+_021D798C: .word MOD86_021D7990
+ thumb_func_end MOD86_021D7984
+
+ thumb_func_start MOD86_021D7990
+MOD86_021D7990: ; 0x021D7990
+ push {r4, lr}
+ add r4, r0, #0
+ mov r3, #0x3c
+ ldrsh r3, [r4, r3]
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ mov r2, #3
+ bl FUN_020179E0
+ mov r3, #0x3c
+ ldrsh r3, [r4, r3]
+ ldr r0, [r4, #0x10]
+ mov r1, #5
+ mov r2, #3
+ add r3, #0xc0
+ bl FUN_020179E0
+ mov r3, #0x3c
+ ldrsh r3, [r4, r3]
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ mov r2, #3
+ bl FUN_020179E0
+ mov r3, #0x3c
+ ldrsh r3, [r4, r3]
+ ldr r0, [r4, #0x10]
+ mov r1, #4
+ mov r2, #3
+ add r3, #0xc0
+ bl FUN_020179E0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD86_021D7990
+
+ thumb_func_start MOD86_021D79D4
+MOD86_021D79D4: ; 0x021D79D4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r5, r0, #0
+ ldr r0, [r5, #4]
+ cmp r0, #0
+ bne _021D79F4
+ mov r0, #2
+ str r0, [sp, #0x18]
+ mov r0, #6
+ str r0, [sp, #0x14]
+ mov r0, #8
+ mov r7, #0xa
+ str r0, [sp, #0x10]
+ mov r6, #0
+ mov r4, #4
+ b _021D7A06
+_021D79F4:
+ mov r0, #3
+ str r0, [sp, #0x18]
+ mov r0, #7
+ str r0, [sp, #0x14]
+ mov r0, #9
+ mov r7, #0xb
+ str r0, [sp, #0x10]
+ mov r6, #1
+ mov r4, #5
+_021D7A06:
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r5]
+ add r1, r7, #0
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0x10]
+ mov r0, #0x84
+ mov r3, #3
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r5]
+ ldr r1, [sp, #0x18]
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0x10]
+ mov r0, #0x84
+ mov r3, #3
+ bl FUN_0200687C
+ mov r0, #0x20
+ str r0, [sp]
+ ldr r0, [r5]
+ mov r2, #0
+ str r0, [sp, #4]
+ ldr r1, [sp, #0x14]
+ mov r0, #0x84
+ add r3, r2, #0
+ bl FUN_02006930
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r5]
+ add r1, r7, #0
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0x10]
+ mov r0, #0x84
+ mov r3, #7
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r5]
+ ldr r1, [sp, #0x18]
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0x10]
+ mov r0, #0x84
+ mov r3, #7
+ bl FUN_0200687C
+ mov r0, #0x20
+ str r0, [sp]
+ ldr r0, [r5]
+ ldr r1, [sp, #0x14]
+ str r0, [sp, #4]
+ mov r0, #0x84
+ mov r2, #4
+ mov r3, #0
+ bl FUN_02006930
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r5]
+ ldr r1, [sp, #0x10]
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0x10]
+ mov r0, #0x84
+ mov r3, #1
+ bl FUN_020068C8
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0x18
+ str r0, [sp, #4]
+ mov r1, #1
+ str r1, [sp, #8]
+ mov r2, #0
+ ldr r0, [r5, #0x10]
+ add r3, r2, #0
+ bl FUN_020186B4
+ ldr r0, [r5, #0x10]
+ mov r1, #1
+ bl FUN_02017CD0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r5]
+ add r1, r6, #0
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0x10]
+ mov r0, #0x84
+ mov r3, #1
+ bl FUN_0200687C
+ mov r3, #0x20
+ str r3, [sp]
+ ldr r0, [r5]
+ add r1, r4, #0
+ str r0, [sp, #4]
+ mov r0, #0x84
+ mov r2, #0
+ bl FUN_02006930
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r5]
+ ldr r1, [sp, #0x10]
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0x10]
+ mov r0, #0x84
+ mov r3, #5
+ bl FUN_020068C8
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0x18
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r2, #0
+ ldr r0, [r5, #0x10]
+ mov r1, #5
+ add r3, r2, #0
+ bl FUN_020186B4
+ ldr r0, [r5, #0x10]
+ mov r1, #5
+ bl FUN_02017CD0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r5]
+ add r1, r6, #0
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0x10]
+ mov r0, #0x84
+ mov r3, #5
+ bl FUN_0200687C
+ mov r3, #0x20
+ str r3, [sp]
+ ldr r0, [r5]
+ add r1, r4, #0
+ str r0, [sp, #4]
+ mov r0, #0x84
+ mov r2, #4
+ bl FUN_02006930
+ mov r0, #0
+ ldr r3, [r5]
+ mov r1, #0x20
+ add r2, r0, #0
+ bl FUN_02017F18
+ ldr r3, [r5]
+ mov r0, #4
+ mov r1, #0x20
+ mov r2, #0
+ bl FUN_02017F18
+ ldr r2, [r5]
+ mov r0, #0
+ mov r1, #0x40
+ bl FUN_02002ED0
+ ldr r2, [r5]
+ mov r0, #4
+ mov r1, #0x40
+ bl FUN_02002ED0
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ thumb_func_end MOD86_021D79D4
+
+ thumb_func_start MOD86_021D7B80
+MOD86_021D7B80: ; 0x021D7B80
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ mov r0, #2
+ ldr r1, [r5]
+ lsl r0, r0, #8
+ bl FUN_020219F4
+ add r4, r0, #0
+ mov r0, #2
+ ldr r1, [r5]
+ lsl r0, r0, #8
+ bl FUN_020219F4
+ add r6, r0, #0
+ ldr r0, [r5, #0x34]
+ mov r1, #0
+ add r2, r6, #0
+ bl FUN_0200A8E0
+ ldr r0, [r5, #0x38]
+ ldr r2, [r5, #0xc]
+ mov r1, #0
+ bl FUN_0200ABC0
+ ldr r0, [r5, #0x38]
+ add r1, r4, #0
+ add r2, r6, #0
+ bl FUN_0200B7B8
+ mov r0, #0x20
+ str r0, [sp]
+ mov r1, #0
+ ldr r0, _021D7C84 ; =0x00010200
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0x14
+ add r2, r4, #0
+ mov r3, #0x30
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ mov r0, #0x20
+ str r0, [sp]
+ mov r1, #0
+ ldr r0, _021D7C84 ; =0x00010200
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0x24
+ add r2, r4, #0
+ mov r3, #0x30
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r6, #0
+ bl FUN_02021A20
+ ldr r0, [r5, #4]
+ cmp r0, #0
+ bne _021D7C00
+ mov r1, #1
+ b _021D7C02
+_021D7C00:
+ mov r1, #2
+_021D7C02:
+ ldr r0, [r5, #0x34]
+ add r2, r4, #0
+ bl FUN_0200A8E0
+ mov r3, #0x40
+ str r3, [sp]
+ mov r1, #0
+ ldr r0, _021D7C84 ; =0x00010200
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0x14
+ add r2, r4, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ mov r3, #0x40
+ str r3, [sp]
+ mov r1, #0
+ ldr r0, _021D7C84 ; =0x00010200
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ add r0, r5, #0
+ str r1, [sp, #0xc]
+ add r0, #0x24
+ add r2, r4, #0
+ bl FUN_0201BDE0
+ ldr r0, [r5, #0x34]
+ mov r1, #3
+ add r2, r4, #0
+ bl FUN_0200A8E0
+ mov r0, #0x90
+ str r0, [sp]
+ mov r1, #0
+ ldr r0, _021D7C84 ; =0x00010200
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0x14
+ add r2, r4, #0
+ mov r3, #0x8a
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ mov r0, #0x90
+ str r0, [sp]
+ mov r1, #0
+ ldr r0, _021D7C84 ; =0x00010200
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ add r5, #0x24
+ add r0, r5, #0
+ add r2, r4, #0
+ mov r3, #0x8a
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ nop
+_021D7C84: .word 0x00010200
+ thumb_func_end MOD86_021D7B80
+
+ .section .rodata
+ ; 0x021D7C88
+ .incbin "baserom.nds", 0x30CDA8, 0x5C