summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arm9/arm9.lcf50
-rw-r--r--arm9/global.inc13
-rw-r--r--arm9/modules/70/asm/module_70.s1702
-rw-r--r--arm9/modules/71/asm/module_71.s7155
4 files changed, 8914 insertions, 6 deletions
diff --git a/arm9/arm9.lcf b/arm9/arm9.lcf
index 851d2493..7a14e351 100644
--- a/arm9/arm9.lcf
+++ b/arm9/arm9.lcf
@@ -2748,7 +2748,17 @@ SECTIONS {
SDK_OVERLAY_MODULE_70_ID = 70;
SDK_OVERLAY.MODULE_70.ID = 70;
SDK_OVERLAY.MODULE_70.START = .;
- FILE_2C4C00.o (.text) /* 0x2C0C00 */
+ module_70.o (.text)
+ module_70.o (.rodata)
+ module_70.o (.init)
+ SDK_OVERLAY.MODULE_70.SINIT_START = .;
+ module_70.o (.ctor)
+ module_70.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_70.SINIT_END = .;
+ . = ALIGN(32);
+ module_70.o (.sdata)
+ module_70.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_70.END = .;
SDK_OVERLAY.MODULE_70.SIZE = SDK_OVERLAY.MODULE_70.END - SDK_OVERLAY.MODULE_70.START;
@@ -2758,7 +2768,8 @@ SECTIONS {
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_70.BSS_START = .;
- FILE_2C4C00.o (.bss)
+ module_70.o (.bss)
+ module_70.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_70.BSS_END = .;
SDK_OVERLAY.MODULE_70.BSS_SIZE = SDK_OVERLAY.MODULE_70.BSS_END - SDK_OVERLAY.MODULE_70.BSS_START;
@@ -2769,7 +2780,17 @@ SECTIONS {
SDK_OVERLAY_MODULE_71_ID = 71;
SDK_OVERLAY.MODULE_71.ID = 71;
SDK_OVERLAY.MODULE_71.START = .;
- FILE_2C5C00.o (.text) /* 0x2C1C00 */
+ module_71.o (.text)
+ module_71.o (.rodata)
+ module_71.o (.init)
+ SDK_OVERLAY.MODULE_71.SINIT_START = .;
+ module_71.o (.ctor)
+ module_71.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_71.SINIT_END = .;
+ . = ALIGN(32);
+ module_71.o (.sdata)
+ module_71.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_71.END = .;
SDK_OVERLAY.MODULE_71.SIZE = SDK_OVERLAY.MODULE_71.END - SDK_OVERLAY.MODULE_71.START;
@@ -2779,7 +2800,8 @@ SECTIONS {
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_71.BSS_START = .;
- FILE_2C5C00.o (.bss)
+ module_71.o (.bss)
+ module_71.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_71.BSS_END = .;
SDK_OVERLAY.MODULE_71.BSS_SIZE = SDK_OVERLAY.MODULE_71.BSS_END - SDK_OVERLAY.MODULE_71.BSS_START;
@@ -3855,8 +3877,24 @@ SECTIONS {
WRITEW 69;
WRITEW 0;
- OVERLAY_TABLE(MODULE_70, 70)
- OVERLAY_TABLE(MODULE_71, 71)
+ WRITEW 70;
+ WRITEW ADDR(.MODULE_70);
+ WRITEW SDK_OVERLAY.MODULE_70.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_70.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_70.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_70.SINIT_END;
+ WRITEW 70;
+ WRITEW 0;
+
+ WRITEW 71;
+ WRITEW ADDR(.MODULE_71);
+ WRITEW SDK_OVERLAY.MODULE_71.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_71.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_71.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_71.SINIT_END;
+ WRITEW 71;
+ WRITEW 0;
+
OVERLAY_TABLE(MODULE_72, 72)
OVERLAY_TABLE(MODULE_73, 73)
OVERLAY_TABLE(MODULE_74, 74)
diff --git a/arm9/global.inc b/arm9/global.inc
index 117dbdb2..7fd83449 100644
--- a/arm9/global.inc
+++ b/arm9/global.inc
@@ -5743,6 +5743,19 @@
.extern FUN_02085410
.extern FUN_02085414
.extern FUN_02087A38
+.extern FUN_0202B1F0
+.extern FUN_0202B250
+.extern FUN_0202B29C
+.extern FUN_0202B31C
+.extern FUN_020124B4
+.extern FUN_020166A8
+.extern FUN_020166B8
+.extern FUN_0202945C
+.extern FUN_0202E288
+.extern FUN_0206AA84
+.extern FUN_0206B8A4
+.extern FUN_02083B84
+.extern FUN_02083D10
.extern MOD05_021F54E0
.extern MOD06_0224C24C
.extern MOD12_0223D1CC
diff --git a/arm9/modules/70/asm/module_70.s b/arm9/modules/70/asm/module_70.s
new file mode 100644
index 00000000..dd072eaa
--- /dev/null
+++ b/arm9/modules/70/asm/module_70.s
@@ -0,0 +1,1702 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD70_021D74E0
+MOD70_021D74E0: ; 0x021D74E0
+ push {r3, r4, r5, lr}
+ mov r2, #1
+ add r5, r0, #0
+ mov r0, #3
+ mov r1, #0x3c
+ lsl r2, r2, #0xe
+ bl FUN_0201681C
+ mov r2, #7
+ mov r0, #3
+ mov r1, #0x3d
+ lsl r2, r2, #0xe
+ bl FUN_0201681C
+ add r0, r5, #0
+ mov r1, #0xdc
+ mov r2, #0x3c
+ bl FUN_02006268
+ add r4, r0, #0
+ beq _021D7558
+ add r0, r5, #0
+ bl FUN_0200628C
+ add r1, r4, #0
+ add r1, #0xcc
+ str r0, [r1]
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xd4
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xcc
+ ldr r0, [r0]
+ bl FUN_0202B1F0
+ add r1, r4, #0
+ add r1, #0xd0
+ str r0, [r1]
+ add r1, r4, #0
+ add r1, #0xcc
+ ldr r1, [r1]
+ add r0, r4, #0
+ bl MOD70_021D7724
+ add r0, r4, #0
+ add r1, r4, #0
+ bl MOD70_021D77CC
+ add r1, r4, #0
+ add r1, #0xc8
+ str r0, [r1]
+ add r0, r4, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ mov r1, #0
+ bl MOD70_021D7930
+ add r4, #0xd8
+ str r0, [r4]
+_021D7558:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD70_021D74E0
+
+ thumb_func_start MOD70_021D755C
+MOD70_021D755C: ; 0x021D755C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ bl MOD70_021D78A0
+ add r0, r4, #0
+ bl MOD70_021D7760
+ add r0, r5, #0
+ bl FUN_0200627C
+ mov r0, #0x3d
+ bl FUN_020168D0
+ mov r0, #0x3c
+ bl FUN_020168D0
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD70_021D755C
+
+ thumb_func_start MOD70_021D758C
+MOD70_021D758C: ; 0x021D758C
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ add r0, #0xd8
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _021D75B8
+ add r0, r4, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ bl MOD70_021D7958
+ cmp r0, #0
+ bne _021D75B0
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_021D75B0:
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xd8
+ str r1, [r0]
+_021D75B8:
+ ldr r0, [r5]
+ cmp r0, #0
+ beq _021D75C4
+ cmp r0, #1
+ beq _021D768A
+ b _021D768E
+_021D75C4:
+ ldr r0, _021D7694 ; =0x021C48B8
+ mov r1, #2
+ ldr r0, [r0, #0x48]
+ add r2, r0, #0
+ tst r2, r1
+ beq _021D75E0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD70_021D7698
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D768E
+_021D75E0:
+ mov r2, #1
+ add r3, r0, #0
+ tst r3, r2
+ beq _021D75F8
+ ldr r0, [r4, #0x1c]
+ mov r1, #4
+ eor r0, r2
+ str r0, [r4, #0x1c]
+ add r0, r4, #0
+ bl MOD70_021D7698
+ b _021D768E
+_021D75F8:
+ mov r2, #0x20
+ tst r2, r0
+ beq _021D7612
+ add r0, r4, #0
+ bl MOD70_021D76AC
+ cmp r0, #0
+ beq _021D768E
+ add r0, r4, #0
+ mov r1, #3
+ bl MOD70_021D7698
+ b _021D768E
+_021D7612:
+ mov r2, #0x10
+ tst r2, r0
+ beq _021D762C
+ add r0, r4, #0
+ bl MOD70_021D76E8
+ cmp r0, #0
+ beq _021D768E
+ add r0, r4, #0
+ mov r1, #3
+ bl MOD70_021D7698
+ b _021D768E
+_021D762C:
+ mov r2, #0x40
+ tst r2, r0
+ beq _021D765C
+ ldr r0, [r4, #0x18]
+ sub r0, r0, #1
+ str r0, [r4, #0x18]
+ bpl _021D7654
+ add r0, r4, #0
+ bl MOD70_021D76AC
+ cmp r0, #0
+ beq _021D768E
+ ldr r0, [r4, #0x14]
+ mov r1, #3
+ sub r0, r0, #1
+ str r0, [r4, #0x18]
+ add r0, r4, #0
+ bl MOD70_021D7698
+ b _021D768E
+_021D7654:
+ add r0, r4, #0
+ bl MOD70_021D7698
+ b _021D768E
+_021D765C:
+ mov r2, #0x80
+ tst r0, r2
+ beq _021D768E
+ ldr r0, [r4, #0x18]
+ add r2, r0, #1
+ str r2, [r4, #0x18]
+ ldr r0, [r4, #0x14]
+ cmp r2, r0
+ blt _021D7682
+ add r0, r4, #0
+ bl MOD70_021D76E8
+ cmp r0, #0
+ beq _021D768E
+ add r0, r4, #0
+ mov r1, #3
+ bl MOD70_021D7698
+ b _021D768E
+_021D7682:
+ add r0, r4, #0
+ bl MOD70_021D7698
+ b _021D768E
+_021D768A:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021D768E:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_021D7694: .word 0x021C48B8
+ thumb_func_end MOD70_021D758C
+
+ thumb_func_start MOD70_021D7698
+MOD70_021D7698: ; 0x021D7698
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ bl MOD70_021D7930
+ add r4, #0xd8
+ str r0, [r4]
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD70_021D7698
+
+ thumb_func_start MOD70_021D76AC
+MOD70_021D76AC: ; 0x021D76AC
+ push {r3, lr}
+ add r1, r0, #0
+ add r1, #0xd4
+ ldr r1, [r1]
+ add r2, r1, #1
+ add r1, r0, #0
+ add r1, #0xd4
+ str r2, [r1]
+ add r1, r0, #0
+ add r1, #0xd4
+ ldr r2, [r1]
+ add r1, r0, #0
+ add r1, #0xd0
+ ldr r1, [r1]
+ cmp r2, r1
+ blt _021D76D4
+ add r1, r0, #0
+ mov r2, #0
+ add r1, #0xd4
+ str r2, [r1]
+_021D76D4:
+ add r1, r0, #0
+ add r2, r0, #0
+ add r1, #0xcc
+ add r2, #0xd4
+ ldr r1, [r1]
+ ldr r2, [r2]
+ bl MOD70_021D777C
+ mov r0, #1
+ pop {r3, pc}
+ thumb_func_end MOD70_021D76AC
+
+ thumb_func_start MOD70_021D76E8
+MOD70_021D76E8: ; 0x021D76E8
+ push {r3, lr}
+ add r1, r0, #0
+ add r1, #0xd4
+ ldr r1, [r1]
+ sub r2, r1, #1
+ add r1, r0, #0
+ add r1, #0xd4
+ str r2, [r1]
+ add r1, r0, #0
+ add r1, #0xd4
+ ldr r1, [r1]
+ cmp r1, #0
+ bge _021D7710
+ add r1, r0, #0
+ add r1, #0xd0
+ ldr r1, [r1]
+ sub r2, r1, #1
+ add r1, r0, #0
+ add r1, #0xd4
+ str r2, [r1]
+_021D7710:
+ add r1, r0, #0
+ add r2, r0, #0
+ add r1, #0xcc
+ add r2, #0xd4
+ ldr r1, [r1]
+ ldr r2, [r2]
+ bl MOD70_021D777C
+ mov r0, #1
+ pop {r3, pc}
+ thumb_func_end MOD70_021D76E8
+
+ thumb_func_start MOD70_021D7724
+MOD70_021D7724: ; 0x021D7724
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ str r0, [sp]
+ str r1, [sp, #4]
+ mov r4, #0
+ add r5, r0, #0
+ mov r6, #0xc
+ mov r7, #0x3c
+_021D7734:
+ add r0, r6, #0
+ add r1, r7, #0
+ bl FUN_020219F4
+ str r0, [r5, #0x20]
+ mov r0, #8
+ mov r1, #0x3c
+ bl FUN_020219F4
+ str r0, [r5, #0x24]
+ add r4, r4, #1
+ add r5, #0x1c
+ cmp r4, #6
+ blt _021D7734
+ ldr r0, [sp]
+ mov r2, #0
+ ldr r1, [sp, #4]
+ str r2, [r0, #0x1c]
+ bl MOD70_021D777C
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD70_021D7724
+
+ thumb_func_start MOD70_021D7760
+MOD70_021D7760: ; 0x021D7760
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r4, #0
+_021D7766:
+ ldr r0, [r5, #0x20]
+ bl FUN_02021A20
+ ldr r0, [r5, #0x24]
+ bl FUN_02021A20
+ add r4, r4, #1
+ add r5, #0x1c
+ cmp r4, #6
+ blt _021D7766
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD70_021D7760
+
+ thumb_func_start MOD70_021D777C
+MOD70_021D777C: ; 0x021D777C
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r1, #0
+ add r6, r0, #0
+ str r2, [sp]
+ add r0, r7, #0
+ add r1, r2, #0
+ bl FUN_0202B21C
+ str r0, [r6]
+ ldr r1, [sp]
+ add r0, r7, #0
+ bl FUN_0202B250
+ str r0, [r6, #0x14]
+ ldr r1, [sp]
+ add r0, r7, #0
+ add r2, r6, #4
+ bl FUN_0202B31C
+ ldr r0, [r6, #0x14]
+ mov r4, #0
+ cmp r0, #0
+ ble _021D77C4
+ add r5, r6, #0
+ add r5, #0x20
+_021D77AE:
+ ldr r1, [sp]
+ add r0, r7, #0
+ add r2, r4, #0
+ add r3, r5, #0
+ bl FUN_0202B29C
+ ldr r0, [r6, #0x14]
+ add r4, r4, #1
+ add r5, #0x1c
+ cmp r4, r0
+ blt _021D77AE
+_021D77C4:
+ mov r0, #0
+ str r0, [r6, #0x18]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD70_021D777C
+
+ thumb_func_start MOD70_021D77CC
+MOD70_021D77CC: ; 0x021D77CC
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x14
+ add r6, r1, #0
+ add r5, r0, #0
+ ldr r1, _021D7894 ; =0x00000E1C
+ mov r0, #0x3d
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _021D788C
+ str r5, [r4]
+ str r6, [r4, #4]
+ mov r0, #0x3d
+ bl FUN_02016B94
+ str r0, [r4, #0x10]
+ bl FUN_020B0FC0
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #0x80
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ mov r3, #0x20
+ str r3, [sp, #0xc]
+ mov r2, #0x3d
+ str r2, [sp, #0x10]
+ add r2, r0, #0
+ bl FUN_02009EAC
+ add r1, r4, #0
+ mov r0, #0x40
+ add r1, #0x38
+ mov r2, #0x3d
+ bl FUN_02008C9C
+ str r0, [r4, #0x34]
+ ldr r2, _021D7898 ; =0x00000139
+ mov r0, #0
+ mov r1, #0x1a
+ mov r3, #0x3d
+ bl FUN_0200A86C
+ mov r2, #6
+ lsl r2, r2, #6
+ str r0, [r4, r2]
+ mov r0, #1
+ mov r1, #0x1a
+ sub r2, #0x16
+ mov r3, #0x3d
+ bl FUN_0200A86C
+ mov r2, #0x61
+ lsl r2, r2, #2
+ str r0, [r4, r2]
+ mov r0, #1
+ mov r1, #0x1a
+ add r2, #0xc8
+ mov r3, #0x3d
+ bl FUN_0200A86C
+ mov r1, #0x62
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #0x3d
+ bl FUN_0200AA80
+ mov r1, #0x63
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ sub r1, #0x8c
+ add r0, r1, #0
+ mov r1, #0x3d
+ bl FUN_020219F4
+ mov r1, #0x19
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ sub r1, #0x90
+ add r0, r1, #0
+ mov r1, #0x3d
+ bl FUN_020219F4
+ mov r1, #0x65
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #0x3d
+ bl FUN_020669C0
+ mov r1, #0x66
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r0, _021D789C ; =MOD70_021D790C
+ add r1, r4, #0
+ bl FUN_02015F10
+_021D788C:
+ add r0, r4, #0
+ add sp, #0x14
+ pop {r3, r4, r5, r6, pc}
+ nop
+_021D7894: .word 0x00000E1C
+_021D7898: .word 0x00000139
+_021D789C: .word MOD70_021D790C
+ thumb_func_end MOD70_021D77CC
+
+ thumb_func_start MOD70_021D78A0
+MOD70_021D78A0: ; 0x021D78A0
+ push {r4, lr}
+ add r4, r0, #0
+ beq _021D790A
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ mov r0, #0x66
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02021A20
+ mov r0, #0x19
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_02021A20
+ mov r0, #0x63
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0200AB18
+ mov r0, #0x62
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0200A8B8
+ mov r0, #0x61
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0200A8B8
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ bl FUN_0200A8B8
+ ldr r0, [r4, #0x34]
+ bl FUN_0201FD58
+ bl FUN_02009FA0
+ ldr r0, [r4, #0x10]
+ bl FUN_02016A18
+ add r0, r4, #0
+ bl FUN_02016A18
+_021D790A:
+ pop {r4, pc}
+ thumb_func_end MOD70_021D78A0
+
+ thumb_func_start MOD70_021D790C
+MOD70_021D790C: ; 0x021D790C
+ push {r3, lr}
+ ldr r0, [r0, #0x34]
+ bl FUN_0201FDEC
+ bl FUN_02009F80
+ ldr r3, _021D7928 ; =0x027E0000
+ ldr r1, _021D792C ; =0x00003FF8
+ mov r0, #1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ pop {r3, pc}
+ nop
+_021D7928: .word 0x027E0000
+_021D792C: .word 0x00003FF8
+ thumb_func_end MOD70_021D790C
+
+ thumb_func_start MOD70_021D7930
+MOD70_021D7930: ; 0x021D7930
+ push {r3, lr}
+ add r2, r1, #0
+ str r2, [r0, #0xc]
+ mov r1, #0
+ lsl r3, r2, #2
+ str r1, [r0, #8]
+ ldr r2, _021D7954 ; =0x021D82E0
+ add r1, r0, #0
+ ldr r2, [r2, r3]
+ add r1, #8
+ blx r2
+ cmp r0, #0
+ bne _021D794E
+ mov r0, #1
+ pop {r3, pc}
+_021D794E:
+ mov r0, #0
+ pop {r3, pc}
+ nop
+_021D7954: .word 0x021D82E0
+ thumb_func_end MOD70_021D7930
+
+ thumb_func_start MOD70_021D7958
+MOD70_021D7958: ; 0x021D7958
+ push {r3, lr}
+ ldr r2, [r0, #0xc]
+ add r1, r0, #0
+ lsl r3, r2, #2
+ ldr r2, _021D796C ; =0x021D82E0
+ add r1, #8
+ ldr r2, [r2, r3]
+ blx r2
+ pop {r3, pc}
+ nop
+_021D796C: .word 0x021D82E0
+ thumb_func_end MOD70_021D7958
+
+ thumb_func_start MOD70_021D7970
+MOD70_021D7970: ; 0x021D7970
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ ldr r1, [r4]
+ add r5, r0, #0
+ cmp r1, #0
+ beq _021D7984
+ cmp r1, #1
+ beq _021D79AC
+ b _021D79BA
+_021D7984:
+ bl MOD70_021D7AF4
+ add r0, r5, #0
+ bl MOD70_021D7F70
+ mov r0, #6
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x3d
+ str r0, [sp, #8]
+ mov r0, #3
+ add r2, r1, #0
+ mov r3, #0
+ bl FUN_0200E1D0
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D79BA
+_021D79AC:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D79BA
+ add sp, #0xc
+ mov r0, #1
+ pop {r4, r5, pc}
+_021D79BA:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ thumb_func_end MOD70_021D7970
+
+ thumb_func_start MOD70_021D79C0
+MOD70_021D79C0: ; 0x021D79C0
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _021D79D4
+ cmp r0, #1
+ beq _021D79FA
+ b _021D7A14
+_021D79D4:
+ ldr r0, _021D7A1C ; =0x0000060E
+ bl FUN_020054C8
+ mov r1, #0
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x3d
+ str r0, [sp, #8]
+ mov r0, #3
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_0200E1D0
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D7A14
+_021D79FA:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D7A14
+ add r0, r5, #0
+ bl MOD70_021D7FC4
+ add r0, r5, #0
+ bl MOD70_021D7C10
+ add sp, #0xc
+ mov r0, #1
+ pop {r4, r5, pc}
+_021D7A14:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ nop
+_021D7A1C: .word 0x0000060E
+ thumb_func_end MOD70_021D79C0
+
+ thumb_func_start MOD70_021D7A20
+MOD70_021D7A20: ; 0x021D7A20
+ push {r3, r4, r5, r6, r7, lr}
+ ldr r7, [r0, #4]
+ str r0, [sp]
+ ldr r0, [r7, #0x14]
+ mov r4, #0
+ cmp r0, #0
+ ble _021D7A82
+ ldr r5, [sp]
+ add r6, r7, #0
+_021D7A32:
+ ldr r0, [r7, #0x18]
+ cmp r4, r0
+ bne _021D7A5E
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_02020398
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_02020310
+ mov r0, #1
+ bl FUN_02005E80
+ ldrh r0, [r6, #0x30]
+ bl FUN_02005578
+ b _021D7A76
+_021D7A5E:
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_02020398
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ add r1, r4, #1
+ bl FUN_02020310
+_021D7A76:
+ ldr r0, [r7, #0x14]
+ add r4, r4, #1
+ add r5, r5, #4
+ add r6, #0x1c
+ cmp r4, r0
+ blt _021D7A32
+_021D7A82:
+ ldr r0, [sp]
+ bl MOD70_021D7D98
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD70_021D7A20
+
+ thumb_func_start MOD70_021D7A8C
+MOD70_021D7A8C: ; 0x021D7A8C
+ push {r4, lr}
+ add r4, r1, #0
+ ldr r1, [r4]
+ cmp r1, #3
+ bhi _021D7AD6
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D7AA2: ; jump table
+ .short _021D7AAA - _021D7AA2 - 2 ; case 0
+ .short _021D7AB6 - _021D7AA2 - 2 ; case 1
+ .short _021D7AC2 - _021D7AA2 - 2 ; case 2
+ .short _021D7ACE - _021D7AA2 - 2 ; case 3
+_021D7AAA:
+ bl MOD70_021D7CC0
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D7AD6
+_021D7AB6:
+ bl MOD70_021D820C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D7AD6
+_021D7AC2:
+ bl MOD70_021D80C8
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D7AD6
+_021D7ACE:
+ bl MOD70_021D7CB0
+ mov r0, #1
+ pop {r4, pc}
+_021D7AD6:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD70_021D7A8C
+
+ thumb_func_start MOD70_021D7ADC
+MOD70_021D7ADC: ; 0x021D7ADC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021D7AF0 ; =0x000005DC
+ bl FUN_020054C8
+ add r0, r4, #0
+ bl MOD70_021D7D98
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+_021D7AF0: .word 0x000005DC
+ thumb_func_end MOD70_021D7ADC
+
+ thumb_func_start MOD70_021D7AF4
+MOD70_021D7AF4: ; 0x021D7AF4
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ ldr r0, _021D7BF8 ; =0x021D8284
+ bl FUN_0201E66C
+ ldr r2, _021D7BFC ; =0x04000304
+ ldrh r1, [r2]
+ lsr r0, r2, #0xb
+ orr r0, r1
+ strh r0, [r2]
+ ldr r0, _021D7C00 ; =0x021D823C
+ bl FUN_02016BBC
+ ldr r0, [r5, #0x10]
+ ldr r2, _021D7C04 ; =0x021D8268
+ mov r1, #1
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r5, #0x10]
+ ldr r2, _021D7C08 ; =0x021D824C
+ mov r1, #2
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r1, #1
+ str r1, [sp, #8]
+ mov r0, #0x3d
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0x10]
+ mov r0, #0x65
+ mov r3, #2
+ bl FUN_0200687C
+ mov r1, #0
+ str r1, [sp]
+ str r1, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x3d
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0x10]
+ mov r0, #0x65
+ mov r3, #2
+ bl FUN_020068C8
+ mov r0, #0x40
+ str r0, [sp]
+ mov r0, #0x3d
+ mov r2, #0
+ str r0, [sp, #4]
+ mov r0, #0x65
+ mov r1, #2
+ add r3, r2, #0
+ bl FUN_02006930
+ mov r2, #0
+ str r2, [sp]
+ mov r1, #1
+ ldr r0, [r5, #0x10]
+ add r3, r1, #0
+ bl FUN_02017F48
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ str r2, [sp, #0xc]
+ ldr r0, [r5, #0x10]
+ mov r1, #1
+ add r3, r2, #0
+ bl FUN_02018540
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD70_021D7C2C
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD70_021D7CB0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x3d
+ str r0, [sp, #4]
+ lsl r2, r4, #0x10
+ ldr r0, [r5, #0x10]
+ mov r1, #1
+ lsr r2, r2, #0x10
+ mov r3, #2
+ bl FUN_0200CB00
+ add r0, r5, #0
+ lsl r2, r4, #0x10
+ add r0, #0x14
+ mov r1, #0
+ lsr r2, r2, #0x10
+ mov r3, #2
+ bl FUN_0200CCA4
+ add r0, r5, #0
+ lsl r2, r4, #0x10
+ add r0, #0x24
+ mov r1, #0
+ lsr r2, r2, #0x10
+ mov r3, #2
+ bl FUN_0200CCA4
+ ldr r0, [r5, #0x10]
+ mov r1, #1
+ bl FUN_02017CD0
+ mov r3, #8
+ ldr r0, _021D7C0C ; =0x04000050
+ mov r1, #0
+ mov r2, #6
+ str r3, [sp]
+ bl G2x_SetBlendAlpha_
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D7BF8: .word 0x021D8284
+_021D7BFC: .word 0x04000304
+_021D7C00: .word 0x021D823C
+_021D7C04: .word 0x021D8268
+_021D7C08: .word 0x021D824C
+_021D7C0C: .word 0x04000050
+ thumb_func_end MOD70_021D7AF4
+
+ thumb_func_start MOD70_021D7C10
+MOD70_021D7C10: ; 0x021D7C10
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_020178A0
+ ldr r0, [r4, #0x10]
+ mov r1, #2
+ bl FUN_020178A0
+ add r0, r4, #0
+ bl MOD70_021D7C98
+ pop {r4, pc}
+ thumb_func_end MOD70_021D7C10
+
+ thumb_func_start MOD70_021D7C2C
+MOD70_021D7C2C: ; 0x021D7C2C
+ push {r4, r5, lr}
+ sub sp, #0x14
+ mov r2, #1
+ add r5, r0, #0
+ str r2, [sp]
+ mov r0, #0x1e
+ str r0, [sp, #4]
+ mov r0, #2
+ add r4, r1, #0
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+ add r1, r5, #0
+ ldr r0, [r5, #0x10]
+ add r1, #0x14
+ add r3, r2, #0
+ bl FUN_02019064
+ mov r0, #0x13
+ str r0, [sp]
+ mov r0, #0x1e
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ add r0, r4, #0
+ add r0, #0x3c
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+ add r1, r5, #0
+ mov r2, #1
+ ldr r0, [r5, #0x10]
+ add r1, #0x24
+ add r3, r2, #0
+ bl FUN_02019064
+ add r0, r5, #0
+ add r0, #0x14
+ bl FUN_02019270
+ add r5, #0x24
+ add r0, r5, #0
+ bl FUN_02019270
+ add r4, #0xb4
+ add r0, r4, #0
+ add sp, #0x14
+ pop {r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD70_021D7C2C
+
+ thumb_func_start MOD70_021D7C98
+MOD70_021D7C98: ; 0x021D7C98
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r4, #0
+ add r5, #0x14
+_021D7CA0:
+ add r0, r5, #0
+ bl FUN_02019178
+ add r4, r4, #1
+ add r5, #0x10
+ cmp r4, #2
+ blt _021D7CA0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD70_021D7C98
+
+ thumb_func_start MOD70_021D7CB0
+MOD70_021D7CB0: ; 0x021D7CB0
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD70_021D7CE8
+ add r0, r4, #0
+ bl MOD70_021D7D98
+ pop {r4, pc}
+ thumb_func_end MOD70_021D7CB0
+
+ thumb_func_start MOD70_021D7CC0
+MOD70_021D7CC0: ; 0x021D7CC0
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0x14
+ mov r1, #0xf
+ bl FUN_02019620
+ add r0, r4, #0
+ add r0, #0x24
+ mov r1, #0xf
+ bl FUN_02019620
+ add r0, r4, #0
+ add r0, #0x14
+ bl FUN_02019548
+ add r4, #0x24
+ add r0, r4, #0
+ bl FUN_02019548
+ pop {r4, pc}
+ thumb_func_end MOD70_021D7CC0
+
+ thumb_func_start MOD70_021D7CE8
+MOD70_021D7CE8: ; 0x021D7CE8
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ ldr r4, [r5, #4]
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x63
+ lsl r0, r0, #2
+ add r6, r5, #0
+ ldr r0, [r5, r0]
+ ldr r2, [r4]
+ mov r3, #4
+ add r6, #0x14
+ bl FUN_0200AD38
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x63
+ lsl r0, r0, #2
+ mov r2, #0x7d
+ ldr r3, [r4, #4]
+ lsl r2, r2, #4
+ add r2, r3, r2
+ ldr r0, [r5, r0]
+ mov r3, #4
+ bl FUN_0200AD38
+ mov r0, #0x63
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r2, [r4, #8]
+ mov r1, #2
+ bl FUN_0200B764
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x63
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r2, [r4, #0xc]
+ mov r1, #3
+ mov r3, #2
+ bl FUN_0200AD38
+ mov r2, #6
+ lsl r2, r2, #6
+ ldr r0, [r5, r2]
+ add r2, #0x10
+ ldr r2, [r5, r2]
+ mov r1, #0
+ bl FUN_0200A8E0
+ mov r2, #0x63
+ lsl r2, r2, #2
+ add r1, r2, #0
+ ldr r0, [r5, r2]
+ add r1, #8
+ add r2, r2, #4
+ ldr r1, [r5, r1]
+ ldr r2, [r5, r2]
+ bl FUN_0200B7B8
+ add r0, r6, #0
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r1, #0
+ str r1, [sp]
+ mov r2, #0xff
+ str r2, [sp, #4]
+ str r1, [sp, #8]
+ add r2, #0x95
+ ldr r2, [r5, r2]
+ add r0, r6, #0
+ add r3, r1, #0
+ bl FUN_0201BD84
+ add r0, r6, #0
+ bl FUN_02019548
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ thumb_func_end MOD70_021D7CE8
+
+ thumb_func_start MOD70_021D7D98
+MOD70_021D7D98: ; 0x021D7D98
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ ldr r4, [r5, #4]
+ mov r0, #0x1c
+ ldr r1, [r4, #0x18]
+ add r2, r4, #0
+ mul r0, r1
+ add r2, #0x20
+ add r7, r2, r0
+ add r0, r5, #0
+ str r0, [sp, #0xc]
+ add r0, #0x24
+ mov r1, #0xf
+ str r0, [sp, #0xc]
+ bl FUN_02019620
+ ldr r0, [r4, #0x1c]
+ cmp r0, #0
+ beq _021D7DC8
+ cmp r0, #1
+ bne _021D7DC6
+ b _021D7F1C
+_021D7DC6:
+ b _021D7F66
+_021D7DC8:
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ ldr r0, [sp, #0xc]
+ ldr r2, [r7]
+ add r3, r1, #0
+ bl FUN_0201BD84
+ mov r2, #6
+ lsl r2, r2, #6
+ ldr r0, [r5, r2]
+ add r2, #0x10
+ ldr r2, [r5, r2]
+ mov r1, #5
+ bl FUN_0200A8E0
+ mov r1, #0
+ str r1, [sp]
+ mov r2, #0xff
+ str r2, [sp, #4]
+ str r1, [sp, #8]
+ add r2, #0x91
+ ldr r0, [sp, #0xc]
+ ldr r2, [r5, r2]
+ mov r3, #0x48
+ bl FUN_0201BD84
+ mov r2, #0x61
+ lsl r2, r2, #2
+ ldr r0, [r5, r2]
+ add r2, #0xc
+ ldrh r1, [r7, #0x10]
+ ldr r2, [r5, r2]
+ bl FUN_0200A8E0
+ mov r1, #0
+ str r1, [sp]
+ mov r2, #0xff
+ str r2, [sp, #4]
+ str r1, [sp, #8]
+ add r2, #0x91
+ ldr r0, [sp, #0xc]
+ ldr r2, [r5, r2]
+ mov r3, #0x5e
+ bl FUN_0201BD84
+ ldrh r0, [r7, #0x10]
+ ldr r1, [r7, #8]
+ bl FUN_02068A20
+ cmp r0, #0
+ beq _021D7E3A
+ cmp r0, #1
+ beq _021D7E4C
+ b _021D7E5E
+_021D7E3A:
+ mov r2, #6
+ lsl r2, r2, #6
+ ldr r0, [r5, r2]
+ add r2, #0x10
+ ldr r2, [r5, r2]
+ mov r1, #3
+ bl FUN_0200A8E0
+ b _021D7E68
+_021D7E4C:
+ mov r2, #6
+ lsl r2, r2, #6
+ ldr r0, [r5, r2]
+ add r2, #0x10
+ ldr r2, [r5, r2]
+ mov r1, #4
+ bl FUN_0200A8E0
+ b _021D7E68
+_021D7E5E:
+ mov r0, #0x19
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl FUN_02021A4C
+_021D7E68:
+ mov r1, #0
+ str r1, [sp]
+ mov r2, #0xff
+ str r2, [sp, #4]
+ str r1, [sp, #8]
+ add r2, #0x91
+ ldr r0, [sp, #0xc]
+ ldr r2, [r5, r2]
+ mov r3, #0xae
+ bl FUN_0201BD84
+ mov r2, #6
+ lsl r2, r2, #6
+ ldr r0, [r5, r2]
+ add r2, #0x10
+ ldr r2, [r5, r2]
+ mov r1, #1
+ bl FUN_0200A8E0
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #0x63
+ lsl r0, r0, #2
+ ldrb r2, [r7, #0x12]
+ ldr r0, [r5, r0]
+ mov r1, #0
+ mov r3, #4
+ bl FUN_0200AD38
+ mov r2, #0x63
+ lsl r2, r2, #2
+ add r1, r2, #0
+ ldr r0, [r5, r2]
+ add r1, #8
+ add r2, r2, #4
+ ldr r1, [r5, r1]
+ ldr r2, [r5, r2]
+ bl FUN_0200B7B8
+ mov r1, #0
+ str r1, [sp]
+ mov r2, #0xff
+ str r2, [sp, #4]
+ str r1, [sp, #8]
+ add r2, #0x95
+ ldr r0, [sp, #0xc]
+ ldr r2, [r5, r2]
+ mov r3, #0xc2
+ bl FUN_0201BD84
+ mov r2, #6
+ lsl r2, r2, #6
+ ldr r0, [r5, r2]
+ add r2, #0x10
+ ldr r2, [r5, r2]
+ mov r1, #2
+ bl FUN_0200A8E0
+ mov r0, #0x10
+ str r0, [sp]
+ mov r2, #0xff
+ str r2, [sp, #4]
+ mov r1, #0
+ str r1, [sp, #8]
+ add r2, #0x91
+ ldr r0, [sp, #0xc]
+ ldr r2, [r5, r2]
+ add r3, r1, #0
+ bl FUN_0201BD84
+ mov r1, #0x19
+ lsl r1, r1, #4
+ mov r0, #0
+ ldr r1, [r5, r1]
+ add r2, r0, #0
+ bl FUN_02002E14
+ add r3, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ mov r1, #0
+ str r1, [sp, #8]
+ ldr r0, [sp, #0xc]
+ ldr r2, [r7, #4]
+ bl FUN_0201BD84
+ b _021D7F66
+_021D7F1C:
+ mov r4, #0
+_021D7F1E:
+ ldrh r1, [r7, #0x14]
+ cmp r1, #0
+ beq _021D7F66
+ mov r0, #0x62
+ mov r2, #0x19
+ lsl r0, r0, #2
+ lsl r2, r2, #4
+ ldr r0, [r5, r0]
+ ldr r2, [r5, r2]
+ bl FUN_0200A8E0
+ lsr r0, r4, #0x1f
+ add r0, r4, r0
+ asr r0, r0, #1
+ lsl r0, r0, #4
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ mov r0, #0
+ mov r2, #0x19
+ str r0, [sp, #8]
+ lsl r2, r2, #4
+ mov r3, #1
+ add r6, r4, #0
+ and r6, r3
+ mov r3, #0x60
+ ldr r0, [sp, #0xc]
+ ldr r2, [r5, r2]
+ mov r1, #0
+ mul r3, r6
+ bl FUN_0201BD84
+ add r4, r4, #1
+ add r7, r7, #2
+ cmp r4, #4
+ blt _021D7F1E
+_021D7F66:
+ ldr r0, [sp, #0xc]
+ bl FUN_02019548
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD70_021D7D98
+
+ thumb_func_start MOD70_021D7F70
+MOD70_021D7F70: ; 0x021D7F70
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ mov r0, #0x3d
+ str r0, [sp]
+ mov r0, #0x1b
+ mov r1, #0x29
+ mov r2, #0
+ add r3, sp, #8
+ bl FUN_02006C30
+ mov r1, #0x5e
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #0x3d
+ str r0, [sp]
+ mov r0, #0x1b
+ mov r1, #0x2a
+ mov r2, #0
+ add r3, sp, #4
+ bl FUN_02006C5C
+ mov r1, #0x5f
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add r1, #0x20
+ mov r2, #0x32
+ mov r0, #0
+ add r1, r4, r1
+ lsl r2, r2, #6
+ bl MIi_CpuClearFast
+ ldr r1, [sp, #8]
+ ldr r2, [sp, #4]
+ add r0, r4, #0
+ bl MOD70_021D7FF8
+ add r0, r4, #0
+ bl MOD70_021D80C8
+ add sp, #0xc
+ pop {r3, r4, pc}
+ thumb_func_end MOD70_021D7F70
+
+ thumb_func_start MOD70_021D7FC4
+MOD70_021D7FC4: ; 0x021D7FC4
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ mov r6, #0x16
+ mov r4, #0
+ add r5, r7, #0
+ lsl r6, r6, #4
+_021D7FD0:
+ ldr r0, [r5, r6]
+ cmp r0, #0
+ beq _021D7FDA
+ bl FUN_0201FFC8
+_021D7FDA:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #6
+ blt _021D7FD0
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ bl FUN_02016A18
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ bl FUN_02016A18
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD70_021D7FC4
+
+ thumb_func_start MOD70_021D7FF8
+MOD70_021D7FF8: ; 0x021D7FF8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x94
+ mov r3, #0
+ add r5, r0, #0
+ str r1, [sp, #0x7c]
+ str r2, [sp, #0x80]
+ str r3, [sp, #0x74]
+ str r3, [sp, #0x84]
+ str r3, [sp, #0x88]
+ str r3, [sp, #0x8c]
+ add r0, sp, #0x90
+ strb r3, [r0]
+ add r0, sp, #0x2c
+ str r0, [sp, #0x70]
+ add r0, sp, #0x18
+ str r0, [sp, #0x78]
+ ldr r0, [r5, #0x34]
+ mov r1, #0x28
+ str r0, [sp, #0x50]
+ add r0, sp, #0x70
+ str r0, [sp, #0x54]
+ mov r0, #1
+ str r0, [sp, #0x68]
+ mov r0, #0x3d
+ str r3, [sp, #0x60]
+ str r0, [sp, #0x6c]
+ str r0, [sp]
+ add r2, r3, #0
+ mov r0, #0x1b
+ add r3, sp, #0x14
+ bl FUN_02006BB0
+ str r0, [sp, #0xc]
+ mov r0, #0x1b
+ mov r1, #0x27
+ add r2, sp, #0x10
+ mov r3, #0x3d
+ bl FUN_02006C08
+ mov r4, #0
+ ldr r6, _021D80C4 ; =0x021D82AC
+ str r0, [sp, #8]
+ str r4, [sp, #4]
+ add r7, r4, #0
+_021D8050:
+ add r0, sp, #0x2c
+ bl FUN_020B1A24
+ add r0, sp, #0x18
+ bl FUN_020B19DC
+ ldr r0, [sp, #0x14]
+ add r1, r4, #0
+ mov r2, #1
+ add r3, sp, #0x2c
+ bl FUN_020B1768
+ ldr r0, [sp, #0x10]
+ add r1, r7, #0
+ mov r2, #1
+ add r3, sp, #0x18
+ bl FUN_020B1240
+ ldr r0, [r6]
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x58]
+ ldr r0, [r6, #4]
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x5c]
+ ldr r0, [sp, #4]
+ add r0, r0, #1
+ str r0, [sp, #0x64]
+ add r0, sp, #0x50
+ bl FUN_0201FF84
+ mov r1, #0x16
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ add r0, r1, #0
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ mov r0, #0x32
+ lsl r0, r0, #6
+ add r4, r4, r0
+ ldr r0, [sp, #4]
+ add r7, #0x20
+ add r0, r0, #1
+ add r6, #8
+ add r5, r5, #4
+ str r0, [sp, #4]
+ cmp r0, #6
+ blt _021D8050
+ ldr r0, [sp, #8]
+ bl FUN_02016A18
+ ldr r0, [sp, #0xc]
+ bl FUN_02016A18
+ add sp, #0x94
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D80C4: .word 0x021D82AC
+ thumb_func_end MOD70_021D7FF8
+
+ thumb_func_start MOD70_021D80C8
+MOD70_021D80C8: ; 0x021D80C8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x38
+ add r7, r0, #0
+ ldr r0, [r7, #4]
+ mov r4, #0
+ str r0, [sp, #0x20]
+ ldr r0, [r0, #0x14]
+ cmp r0, #0
+ bgt _021D80DC
+ b _021D81E4
+_021D80DC:
+ ldr r5, [sp, #0x20]
+ str r4, [sp, #0x18]
+ add r0, r5, #0
+ str r0, [sp, #0x1c]
+ add r0, #0x33
+ str r0, [sp, #0x1c]
+ mov r0, #0x67
+ lsl r0, r0, #2
+ add r0, r7, r0
+ str r4, [sp, #0x14]
+ add r6, r7, #0
+ str r0, [sp, #0x24]
+_021D80F4:
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, [r5, #0x28]
+ add r2, r5, #0
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ ldr r0, [r5, #0x2c]
+ add r2, #0x32
+ str r0, [sp, #0xc]
+ mov r0, #0x66
+ lsl r0, r0, #2
+ ldrh r1, [r5, #0x30]
+ ldrb r2, [r2]
+ ldr r0, [r7, r0]
+ mov r3, #0x20
+ bl FUN_02066ACC
+ mov r0, #0x66
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ ldr r2, [sp, #0x1c]
+ mov r1, #0x70
+ bl FUN_02067830
+ mov r1, #0x66
+ lsl r1, r1, #2
+ ldr r1, [r7, r1]
+ add r0, sp, #0x28
+ mov r2, #2
+ bl FUN_02068B68
+ ldr r0, [sp, #0x24]
+ add r1, sp, #0x28
+ str r0, [sp]
+ ldr r0, [r5, #0x28]
+ ldr r3, _021D8208 ; =0x021D822C
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r0, #2
+ str r0, [sp, #0xc]
+ ldrh r0, [r5, #0x30]
+ mov r2, #0x3d
+ str r0, [sp, #0x10]
+ add r0, sp, #0x28
+ ldrh r0, [r0]
+ ldrh r1, [r1, #2]
+ bl FUN_02012530
+ mov r1, #0x32
+ ldr r0, [sp, #0x24]
+ lsl r1, r1, #6
+ bl DC_FlushRange
+ mov r2, #0x32
+ ldr r0, [sp, #0x24]
+ ldr r1, [sp, #0x18]
+ lsl r2, r2, #6
+ bl GX_LoadOBJ
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0x3d
+ str r0, [sp, #4]
+ add r0, sp, #0x28
+ add r1, sp, #0x28
+ ldrh r0, [r0]
+ ldrh r1, [r1, #4]
+ ldr r3, [sp, #0x14]
+ mov r2, #1
+ bl FUN_02006930
+ ldr r0, [sp, #0x20]
+ ldr r0, [r0, #0x18]
+ cmp r4, r0
+ bne _021D81A8
+ mov r0, #1
+ bl FUN_02005E80
+ ldrh r0, [r5, #0x30]
+ bl FUN_02005578
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldr r0, [r6, r0]
+ mov r1, #0
+ bl FUN_02020398
+ b _021D81B4
+_021D81A8:
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldr r0, [r6, r0]
+ mov r1, #1
+ bl FUN_02020398
+_021D81B4:
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldr r0, [r6, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x18]
+ add r0, #0x1c
+ str r0, [sp, #0x1c]
+ mov r0, #0x32
+ lsl r0, r0, #6
+ add r0, r1, r0
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x14]
+ add r4, r4, #1
+ add r0, #0x20
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x20]
+ add r5, #0x1c
+ ldr r0, [r0, #0x14]
+ add r6, r6, #4
+ cmp r4, r0
+ blt _021D80F4
+_021D81E4:
+ cmp r4, #6
+ bge _021D8202
+ lsl r0, r4, #2
+ mov r6, #0x16
+ add r5, r7, r0
+ mov r7, #0
+ lsl r6, r6, #4
+_021D81F2:
+ ldr r0, [r5, r6]
+ add r1, r7, #0
+ bl FUN_020200A0
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #6
+ blt _021D81F2
+_021D8202:
+ add sp, #0x38
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D8208: .word 0x021D822C
+ thumb_func_end MOD70_021D80C8
+
+ thumb_func_start MOD70_021D820C
+MOD70_021D820C: ; 0x021D820C
+ push {r3, r4, r5, r6, r7, lr}
+ mov r4, #0
+ mov r6, #0x16
+ add r5, r0, #0
+ add r7, r4, #0
+ lsl r6, r6, #4
+_021D8218:
+ ldr r0, [r5, r6]
+ add r1, r7, #0
+ bl FUN_020200A0
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #6
+ blt _021D8218
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD70_021D820C
+
+ .section .rodata
+ ; 0x021D822C
+ .incbin "baserom.nds", 0x2C594C, 0xB0
+
+ .section .data
+ ; 0x021D82E0
+ .incbin "baserom.nds", 0x2C5A00, 0x20
diff --git a/arm9/modules/71/asm/module_71.s b/arm9/modules/71/asm/module_71.s
new file mode 100644
index 00000000..b0d7af7e
--- /dev/null
+++ b/arm9/modules/71/asm/module_71.s
@@ -0,0 +1,7155 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD71_0222D5C0
+MOD71_0222D5C0: ; 0x0222D5C0
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ bl FUN_02015F1C
+ bl FUN_0201E6D8
+ bl FUN_0201E740
+ mov r2, #1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2]
+ ldr r0, _0222D72C ; =0xFFFFE0FF
+ and r1, r0
+ str r1, [r2]
+ ldr r2, _0222D730 ; =0x04001000
+ ldr r1, [r2]
+ and r0, r1
+ str r0, [r2]
+ ldr r2, _0222D734 ; =0x000707D0
+ mov r0, #3
+ mov r1, #0x1a
+ bl FUN_0201681C
+ ldr r1, _0222D738 ; =0x000036B4
+ add r0, r5, #0
+ mov r2, #0x1a
+ bl FUN_02006268
+ add r4, r0, #0
+ ldr r2, _0222D738 ; =0x000036B4
+ mov r0, #0
+ add r1, r4, #0
+ bl MIi_CpuClearFast
+ mov r0, #0x1a
+ bl FUN_02016B94
+ mov r1, #0x5d
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #0xc
+ mov r1, #0x16
+ mov r2, #0x1a
+ bl FUN_0200AA90
+ mov r1, #0x5e
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #0x1a
+ bl FUN_0200AA80
+ mov r1, #0x5f
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #0x1a
+ bl FUN_0200AA80
+ mov r2, #6
+ lsl r2, r2, #6
+ str r0, [r4, r2]
+ mov r1, #0x1a
+ mov r0, #0
+ sub r2, #0x44
+ add r3, r1, #0
+ bl FUN_0200A86C
+ mov r1, #0x61
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #0
+ str r0, [r4, #0x40]
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD70_0222E76C
+ mov r0, #4
+ mov r1, #8
+ bl FUN_0201669C
+ bl MOD70_0222E558
+ mov r0, #0x5d
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD70_0222E578
+ mov r0, #0x10
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x1a
+ str r0, [sp, #8]
+ mov r0, #0
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ add r0, r4, #0
+ bl MOD70_0222E900
+ ldr r0, _0222D73C ; =MOD70_0222E4DC
+ add r1, r4, #0
+ bl FUN_02015F10
+ bl MOD70_0222EA38
+ add r0, r4, #0
+ bl MOD70_0222EA68
+ add r0, r4, #0
+ bl MOD70_0222EF90
+ mov r0, #0x5d
+ ldr r2, [r4, #8]
+ lsl r0, r0, #2
+ ldr r1, _0222D740 ; =0x00000438
+ ldr r0, [r4, r0]
+ ldr r2, [r2, #0x18]
+ add r1, r4, r1
+ bl MOD70_02230C48
+ ldr r0, [r4, #8]
+ add r1, r4, #0
+ ldr r0, [r0]
+ str r0, [r4]
+ bl FUN_02083D10
+ mov r3, #0x5e
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #0xc
+ str r0, [sp]
+ ldr r0, _0222D744 ; =0x000005A8
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0x14
+ mov r2, #1
+ bl MOD70_02230F40
+ ldr r0, [r4]
+ bl FUN_02083B84
+ mov r0, #0
+ mov r1, #1
+ bl FUN_0201797C
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r1, #0x5d
+ lsl r1, r1, #2
+ ldr r1, [r4, r1]
+ mov r0, #0x1a
+ bl FUN_020335F0
+ bl FUN_02033E74
+ bl FUN_0201277C
+ cmp r0, #0
+ bne _0222D71A
+ ldr r1, _0222D748 ; =0x0000043D
+ mov r0, #4
+ mov r2, #1
+ bl FUN_0200433C
+ b _0222D724
+_0222D71A:
+ ldr r1, _0222D74C ; =0x0000043E
+ mov r0, #4
+ mov r2, #1
+ bl FUN_0200433C
+_0222D724:
+ mov r0, #1
+ add sp, #0xc
+ pop {r4, r5, pc}
+ nop
+_0222D72C: .word 0xFFFFE0FF
+_0222D730: .word 0x04001000
+_0222D734: .word 0x000707D0
+_0222D738: .word 0x000036B4
+_0222D73C: .word MOD70_0222E4DC
+_0222D740: .word 0x00000438
+_0222D744: .word 0x000005A8
+_0222D748: .word 0x0000043D
+_0222D74C: .word 0x0000043E
+ thumb_func_end MOD71_0222D5C0
+
+ thumb_func_start MOD70_0222D750
+MOD70_0222D750: ; 0x0222D750
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ ldr r1, [sp, #0x10]
+ add r4, r2, #0
+ lsl r1, r1, #4
+ add r1, #0x92
+ mov r2, #2
+ ldr r0, [r0, #0x14]
+ add r6, r3, #0
+ lsl r1, r1, #5
+ lsl r2, r2, #8
+ bl GX_LoadOBJ
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl FUN_0206B7BC
+ add r1, r0, #0
+ ldr r0, [sp, #0x14]
+ add r1, #0xa
+ bl FUN_020202A8
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD70_0222D750
+
+ thumb_func_start MOD70_0222D780
+MOD70_0222D780: ; 0x0222D780
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ bl FUN_02031190
+ bl FUN_0202DFA4
+ add r4, r0, #0
+ bl FUN_02031190
+ mov r1, #1
+ eor r0, r1
+ bl FUN_0202DFA4
+ add r6, r0, #0
+ add r0, r4, #0
+ mov r1, #0x1a
+ bl FUN_020239A0
+ add r4, r0, #0
+ add r0, r6, #0
+ mov r1, #0x1a
+ bl FUN_020239A0
+ add r6, r0, #0
+ mov r0, #0x61
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x30
+ bl FUN_0200A914
+ add r7, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _0222D814 ; =0x00000438
+ add r1, r4, #0
+ add r0, r5, r0
+ mov r2, #0xa
+ mov r3, #0
+ bl MOD70_02230EFC
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _0222D818 ; =0x00000448
+ add r1, r6, #0
+ add r0, r5, r0
+ mov r2, #0xa
+ mov r3, #0
+ bl MOD70_02230EFC
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _0222D81C ; =0x00000498
+ add r1, r7, #0
+ add r0, r5, r0
+ mov r2, #5
+ mov r3, #0
+ bl MOD70_02230EFC
+ add r0, r7, #0
+ bl FUN_02021A20
+ add r0, r6, #0
+ bl FUN_02021A20
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222D814: .word 0x00000438
+_0222D818: .word 0x00000448
+_0222D81C: .word 0x00000498
+ thumb_func_end MOD70_0222D780
+
+ thumb_func_start MOD70_0222D820
+MOD70_0222D820: ; 0x0222D820
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ bl MOD70_0222E558
+ mov r0, #0x5d
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD70_0222E578
+ add r0, r4, #0
+ bl MOD70_0222E900
+ add r0, r4, #0
+ bl MOD70_0222D93C
+ add r0, r4, #0
+ bl MOD70_0222D780
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #0x18]
+ bl FUN_02025084
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ mov r2, #0x5d
+ str r0, [sp]
+ mov r0, #0x1a
+ lsl r2, r2, #2
+ str r0, [sp, #4]
+ ldr r0, [r4, r2]
+ mov r1, #0
+ add r2, #0x65
+ mov r3, #0xa
+ bl FUN_0200CD68
+ mov r1, #0
+ mov r2, #0x5d
+ str r1, [sp]
+ mov r0, #0x1a
+ lsl r2, r2, #2
+ str r0, [sp, #4]
+ ldr r0, [r4, r2]
+ add r2, #0x83
+ mov r3, #0xb
+ bl FUN_0200CB00
+ mov r3, #0x5e
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #0xc
+ str r0, [sp]
+ ldr r0, _0222D92C ; =0x00000588
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0xf
+ mov r2, #1
+ bl MOD70_02230F40
+ mov r0, #4
+ mov r1, #1
+ bl FUN_0201797C
+ mov r0, #5
+ mov r1, #1
+ bl FUN_0201797C
+ mov r0, #6
+ mov r1, #1
+ bl FUN_0201797C
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E74C
+ mov r0, #0
+ mov r1, #1
+ bl FUN_0201797C
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201797C
+ mov r0, #2
+ mov r1, #1
+ bl FUN_0201797C
+ mov r0, #3
+ mov r1, #1
+ bl FUN_0201797C
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ bl MOD70_0222EA38
+ add r0, r4, #0
+ bl MOD70_0222EA68
+ add r0, r4, #0
+ bl MOD70_0222EF90
+ ldr r0, _0222D930 ; =0x00002218
+ mov r1, #0
+ ldr r0, [r4, r0]
+ add r2, r4, #0
+ bl MOD70_0222DBEC
+ ldr r0, _0222D934 ; =0x0000221C
+ mov r1, #6
+ ldr r0, [r4, r0]
+ add r2, r4, #0
+ bl MOD70_0222DBEC
+ mov r0, #0xce
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r0, #0xcf
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ ldr r0, _0222D938 ; =MOD70_0222E4DC
+ add r1, r4, #0
+ bl FUN_02015F10
+ add sp, #8
+ pop {r4, pc}
+ nop
+_0222D92C: .word 0x00000588
+_0222D930: .word 0x00002218
+_0222D934: .word 0x0000221C
+_0222D938: .word MOD70_0222E4DC
+ thumb_func_end MOD70_0222D820
+
+ thumb_func_start MOD70_0222D93C
+MOD70_0222D93C: ; 0x0222D93C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x5e
+ ldr r1, _0222D9B8 ; =0x00002218
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r1]
+ mov r2, #0
+ bl MOD70_0222DB5C
+ mov r0, #0x5e
+ ldr r1, _0222D9BC ; =0x0000221C
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r1]
+ mov r2, #6
+ bl MOD70_0222DB5C
+ mov r0, #0
+ mov r2, #0x5e
+ str r0, [sp]
+ lsl r2, r2, #2
+ ldr r3, _0222D9B8 ; =0x00002218
+ ldr r0, _0222D9C0 ; =0x000004A8
+ ldr r1, [r5, r2]
+ add r2, #0xc
+ ldr r2, [r5, r2]
+ ldr r3, [r5, r3]
+ add r0, r5, r0
+ bl MOD70_0222DB94
+ mov r0, #6
+ mov r2, #0x5e
+ str r0, [sp]
+ lsl r2, r2, #2
+ ldr r3, _0222D9BC ; =0x0000221C
+ ldr r0, _0222D9C4 ; =0x00000508
+ ldr r1, [r5, r2]
+ add r2, #0xc
+ ldr r2, [r5, r2]
+ ldr r3, [r5, r3]
+ add r0, r5, r0
+ bl MOD70_0222DB94
+ ldr r0, _0222D9B8 ; =0x00002218
+ ldr r0, [r5, r0]
+ bl FUN_0206B9AC
+ add r4, r0, #0
+ ldr r0, _0222D9BC ; =0x0000221C
+ ldr r0, [r5, r0]
+ bl FUN_0206B9AC
+ add r2, r0, #0
+ mov r0, #0x5d
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r4, #0
+ bl MOD70_0222E8DC
+ pop {r3, r4, r5, pc}
+ nop
+_0222D9B8: .word 0x00002218
+_0222D9BC: .word 0x0000221C
+_0222D9C0: .word 0x000004A8
+_0222D9C4: .word 0x00000508
+ thumb_func_end MOD70_0222D93C
+
+ thumb_func_start MOD70_0222D9C8
+MOD70_0222D9C8: ; 0x0222D9C8
+ 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, #0
+ beq _0222D9E8
+ cmp r1, #1
+ beq _0222D9FC
+ cmp r1, #2
+ bne _0222D9E6
+ b _0222DB28
+_0222D9E6:
+ b _0222DB32
+_0222D9E8:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _0222DA02
+ mov r0, #1
+ str r0, [r5]
+ add r0, r4, #0
+ bl MOD70_0222D780
+ b _0222DB32
+_0222D9FC:
+ ldr r1, [r4, #0x48]
+ cmp r1, #7
+ bls _0222DA04
+_0222DA02:
+ b _0222DB32
+_0222DA04:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0222DA10: ; jump table
+ .short _0222DA20 - _0222DA10 - 2 ; case 0
+ .short _0222DA28 - _0222DA10 - 2 ; case 1
+ .short _0222DA36 - _0222DA10 - 2 ; case 2
+ .short _0222DA54 - _0222DA10 - 2 ; case 3
+ .short _0222DA72 - _0222DA10 - 2 ; case 4
+ .short _0222DAAE - _0222DA10 - 2 ; case 5
+ .short _0222DAFE - _0222DA10 - 2 ; case 6
+ .short _0222DB1A - _0222DA10 - 2 ; case 7
+_0222DA20:
+ bl MOD70_0222DD60
+ str r0, [r4, #0x48]
+ b _0222DB32
+_0222DA28:
+ bl MOD70_0222E2D4
+ str r0, [r4, #0x48]
+ add r0, r4, #0
+ bl MOD70_0222F264
+ b _0222DB32
+_0222DA36:
+ mov r0, #8
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x1a
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r1, r6, #0
+ add r2, r6, #0
+ add r3, r6, #0
+ bl FUN_0200E1D0
+ mov r0, #2
+ str r0, [r5]
+ b _0222DB32
+_0222DA54:
+ mov r0, #8
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x1a
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r1, r6, #0
+ add r2, r6, #0
+ add r3, r6, #0
+ bl FUN_0200E1D0
+ mov r0, #4
+ str r0, [r4, #0x48]
+ b _0222DB32
+_0222DA72:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _0222DB32
+ add r0, r4, #0
+ bl MOD70_0222E3D4
+ add r0, r4, #0
+ bl MOD70_0222E378
+ mov r0, #0x5d
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD70_0222E848
+ mov r0, #1
+ str r0, [r4, #0x44]
+ mov r0, #5
+ str r0, [r4, #0x48]
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ mov r1, #6
+ bl _s32_div_f
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD70_0222F59C
+ b _0222DB32
+_0222DAAE:
+ ldr r0, [r4, #0x40]
+ bl FUN_02006290
+ cmp r0, #0
+ beq _0222DB32
+ ldr r0, [r4, #0x40]
+ bl FUN_02006260
+ add r0, r4, #0
+ bl MOD70_0222D820
+ add r0, r6, #0
+ str r0, [r4, #0x44]
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r2, [r0]
+ ldr r1, [r4, #0x3c]
+ mov r0, #6
+ mul r0, r1
+ add r1, r2, r0
+ add r0, r4, #0
+ add r0, #0x88
+ str r1, [r0]
+ add r0, r4, #0
+ bl MOD70_0222E224
+ add r0, r4, #0
+ mov r1, #0xce
+ add r0, #0x88
+ lsl r1, r1, #2
+ ldr r0, [r0]
+ ldr r1, [r4, r1]
+ add r2, r6, #0
+ bl MOD70_0222F350
+ bl FUN_02033E74
+ mov r0, #6
+ str r0, [r4, #0x48]
+ b _0222DB32
+_0222DAFE:
+ mov r0, #8
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x1a
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r2, r1, #0
+ add r3, r6, #0
+ bl FUN_0200E1D0
+ mov r0, #7
+ str r0, [r4, #0x48]
+ b _0222DB32
+_0222DB1A:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _0222DB32
+ mov r0, #1
+ str r0, [r4, #0x48]
+ b _0222DB32
+_0222DB28:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _0222DB32
+ mov r6, #1
+_0222DB32:
+ ldr r0, [r4, #0x44]
+ cmp r0, #0
+ bne _0222DB48
+ add r0, r4, #0
+ bl MOD70_02230B3C
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0201FDEC
+_0222DB48:
+ mov r1, #0x5d
+ lsl r1, r1, #2
+ ldr r1, [r4, r1]
+ mov r0, #0x1a
+ bl FUN_020335F0
+ add r0, r6, #0
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD70_0222D9C8
+
+ thumb_func_start MOD70_0222DB5C
+MOD70_0222DB5C: ; 0x0222DB5C
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r7, r0, #0
+ add r0, r5, #0
+ add r6, r2, #0
+ mov r4, #0
+ bl FUN_0206B9AC
+ cmp r0, #0
+ ble _0222DB92
+_0222DB70:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl FUN_0206B9B0
+ bl FUN_020690E4
+ add r2, r0, #0
+ add r0, r7, #0
+ add r1, r4, r6
+ bl FUN_0200ACF8
+ add r0, r5, #0
+ add r4, r4, #1
+ bl FUN_0206B9AC
+ cmp r4, r0
+ blt _0222DB70
+_0222DB92:
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD70_0222DB5C
+
+ thumb_func_start MOD70_0222DB94
+MOD70_0222DB94: ; 0x0222DB94
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ add r0, r3, #0
+ str r1, [sp, #8]
+ str r2, [sp, #0xc]
+ str r3, [sp, #0x10]
+ ldr r6, [sp, #0x28]
+ mov r4, #0
+ bl FUN_0206B9AC
+ cmp r0, #0
+ ble _0222DBE6
+ add r7, r6, #1
+_0222DBB0:
+ ldr r0, [sp, #8]
+ ldr r1, [sp, #0xc]
+ add r2, r7, r4
+ mov r3, #0x1a
+ bl FUN_0200A9C4
+ add r6, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD70_02230EFC
+ add r0, r6, #0
+ bl FUN_02021A20
+ ldr r0, [sp, #0x10]
+ add r5, #0x10
+ add r4, r4, #1
+ bl FUN_0206B9AC
+ cmp r4, r0
+ blt _0222DBB0
+_0222DBE6:
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD70_0222DB94
+
+ thumb_func_start MOD70_0222DBEC
+MOD70_0222DBEC: ; 0x0222DBEC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ str r2, [sp, #0x20]
+ mov r7, #0
+ bl FUN_0206B9AC
+ cmp r0, #0
+ bgt _0222DC02
+ b _0222DD10
+_0222DC02:
+ mov r1, #0x1f
+ ldr r0, [sp, #0x20]
+ lsl r1, r1, #6
+ add r0, r0, r1
+ str r0, [sp, #0x1c]
+_0222DC0C:
+ ldr r0, [sp, #0xc]
+ ldr r2, _0222DD50 ; =0x00000696
+ add r0, r7, r0
+ str r0, [sp, #0x10]
+ lsl r0, r0, #2
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x10]
+ lsl r1, r0, #4
+ ldr r0, [sp, #0x20]
+ add r4, r0, r1
+ ldr r1, [sp, #0x18]
+ ldrb r2, [r4, r2]
+ add r5, r0, r1
+ mov r0, #0x69
+ ldr r1, _0222DD54 ; =0x00000695
+ lsl r0, r0, #4
+ ldrh r0, [r4, r0]
+ ldrb r1, [r4, r1]
+ bl FUN_0206B6D4
+ add r1, r0, #0
+ mov r0, #0x1a
+ str r0, [sp]
+ ldr r6, [sp, #0x1c]
+ ldr r3, [sp, #0x18]
+ mov r0, #0x13
+ mov r2, #0
+ add r3, r6, r3
+ bl FUN_02006BB0
+ mov r1, #0x79
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ add r0, r1, #0
+ add r0, #0x30
+ ldr r0, [r5, r0]
+ mov r1, #2
+ ldr r0, [r0, #0x14]
+ lsl r1, r1, #8
+ bl DC_FlushRange
+ ldr r0, [sp, #0x10]
+ mov r1, #0x69
+ str r0, [sp]
+ mov r0, #0x37
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ ldr r2, _0222DD50 ; =0x00000696
+ str r0, [sp, #4]
+ ldr r3, _0222DD54 ; =0x00000695
+ mov r0, #0x1f
+ lsl r1, r1, #4
+ lsl r0, r0, #6
+ ldrh r1, [r4, r1]
+ ldrb r2, [r4, r2]
+ ldrb r3, [r4, r3]
+ ldr r0, [r5, r0]
+ bl MOD70_0222D750
+ mov r0, #0x37
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ ldr r0, _0222DD58 ; =0x00000692
+ ldrh r0, [r4, r0]
+ cmp r0, #0
+ bne _0222DCA4
+ mov r0, #0x3a
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ b _0222DCCC
+_0222DCA4:
+ ldr r0, [sp, #0x10]
+ lsl r1, r0, #2
+ ldr r0, [sp, #0x20]
+ add r1, r0, r1
+ mov r0, #0x3a
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ str r1, [sp, #0x14]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r0, #0x3a
+ ldr r1, [sp, #0x14]
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ ldr r1, _0222DD58 ; =0x00000692
+ ldrh r1, [r4, r1]
+ add r1, r1, #2
+ bl FUN_02020130
+_0222DCCC:
+ ldr r0, _0222DD5C ; =0x0000069C
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _0222DCE2
+ mov r0, #0x3d
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ b _0222DD02
+_0222DCE2:
+ ldr r0, [sp, #0x10]
+ lsl r1, r0, #2
+ ldr r0, [sp, #0x20]
+ add r4, r0, r1
+ mov r0, #0x3d
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r0, #0x3d
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0x15
+ bl FUN_02020130
+_0222DD02:
+ ldr r0, [sp, #8]
+ add r7, r7, #1
+ bl FUN_0206B9AC
+ cmp r7, r0
+ bge _0222DD10
+ b _0222DC0C
+_0222DD10:
+ cmp r7, #6
+ bge _0222DD4C
+ ldr r0, [sp, #0xc]
+ mov r6, #0x3a
+ lsl r1, r0, #2
+ ldr r0, [sp, #0x20]
+ lsl r6, r6, #4
+ add r1, r0, r1
+ lsl r0, r7, #2
+ add r5, r6, #0
+ add r4, r1, r0
+ add r5, #0x30
+_0222DD28:
+ mov r0, #0x37
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ ldr r0, [r4, r6]
+ mov r1, #0
+ bl FUN_020200A0
+ ldr r0, [r4, r5]
+ mov r1, #0
+ bl FUN_020200A0
+ add r7, r7, #1
+ add r4, r4, #4
+ cmp r7, #6
+ blt _0222DD28
+_0222DD4C:
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222DD50: .word 0x00000696
+_0222DD54: .word 0x00000695
+_0222DD58: .word 0x00000692
+_0222DD5C: .word 0x0000069C
+ thumb_func_end MOD70_0222DBEC
+
+ thumb_func_start MOD70_0222DD60
+MOD70_0222DD60: ; 0x0222DD60
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ bl MOD70_02230C1C
+ ldr r0, [r4, #0x4c]
+ cmp r0, #0x13
+ bls _0222DD72
+ b _0222E0E8
+_0222DD72:
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0222DD7E: ; jump table
+ .short _0222DDA6 - _0222DD7E - 2 ; case 0
+ .short _0222DDC0 - _0222DD7E - 2 ; case 1
+ .short _0222DE12 - _0222DD7E - 2 ; case 2
+ .short _0222DE22 - _0222DD7E - 2 ; case 3
+ .short _0222DE38 - _0222DD7E - 2 ; case 4
+ .short _0222DE48 - _0222DD7E - 2 ; case 5
+ .short _0222DE60 - _0222DD7E - 2 ; case 6
+ .short _0222DE74 - _0222DD7E - 2 ; case 7
+ .short _0222DE86 - _0222DD7E - 2 ; case 8
+ .short _0222DEB2 - _0222DD7E - 2 ; case 9
+ .short _0222DEC0 - _0222DD7E - 2 ; case 10
+ .short _0222DECC - _0222DD7E - 2 ; case 11
+ .short _0222DF58 - _0222DD7E - 2 ; case 12
+ .short _0222DF74 - _0222DD7E - 2 ; case 13
+ .short _0222DF80 - _0222DD7E - 2 ; case 14
+ .short _0222DF92 - _0222DD7E - 2 ; case 15
+ .short _0222DFD6 - _0222DD7E - 2 ; case 16
+ .short _0222E010 - _0222DD7E - 2 ; case 17
+ .short _0222E054 - _0222DD7E - 2 ; case 18
+ .short _0222E094 - _0222DD7E - 2 ; case 19
+_0222DDA6:
+ mov r0, #0x50
+ bl FUN_02031588
+ mov r0, #2
+ bl FUN_020166A8
+ add r0, r4, #0
+ bl MOD70_02230B88
+ ldr r0, [r4, #0x4c]
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+ b _0222E0E8
+_0222DDC0:
+ mov r0, #0x50
+ bl FUN_020315D8
+ cmp r0, #0
+ beq _0222DEB8
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #0x34]
+ cmp r0, #0
+ bne _0222DDD6
+ mov r0, #6
+ b _0222DDD8
+_0222DDD6:
+ mov r0, #2
+_0222DDD8:
+ str r0, [r4, #0x4c]
+ bl FUN_02031190
+ cmp r0, #0
+ bne _0222DE04
+ bl FUN_0201B9EC
+ ldr r1, _0222E0F0 ; =0x00000445
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ cmp r5, #0x3c
+ blo _0222DDF8
+ bl ErrorHandling
+_0222DDF8:
+ bl FUN_02031190
+ mov r1, #0x1f
+ add r2, r5, #3
+ bl MOD70_0222F42C
+_0222DE04:
+ ldr r0, [r4, #4]
+ bl MOD70_0222F4A8
+ add r0, r4, #0
+ bl MOD70_02230C08
+ b _0222E0E8
+_0222DE12:
+ mov r1, #0x8b
+ lsl r1, r1, #6
+ ldr r1, [r4, r1]
+ cmp r1, #0
+ beq _0222DEB8
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+ b _0222E0E8
+_0222DE22:
+ mov r0, #0x8b
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ sub r1, r1, #1
+ str r1, [r4, r0]
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _0222DEB8
+ mov r0, #4
+ str r0, [r4, #0x4c]
+ b _0222E0E8
+_0222DE38:
+ ldr r0, _0222E0F4 ; =0x0000369C
+ add r0, r4, r0
+ bl FUN_020336C0
+ ldr r0, [r4, #0x4c]
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+ b _0222E0E8
+_0222DE48:
+ ldr r2, _0222E0F4 ; =0x0000369C
+ ldr r0, [r4, #4]
+ mov r1, #2
+ add r2, r4, r2
+ bl FUN_020336C8
+ cmp r0, #0
+ beq _0222DEB8
+ ldr r0, [r4, #0x4c]
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+ b _0222E0E8
+_0222DE60:
+ mov r0, #1
+ bl FUN_02031400
+ mov r0, #0x51
+ bl FUN_02031588
+ ldr r0, [r4, #0x4c]
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+ b _0222E0E8
+_0222DE74:
+ mov r0, #0x51
+ bl FUN_020315D8
+ cmp r0, #0
+ beq _0222DEB8
+ ldr r0, [r4, #0x4c]
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+ b _0222E0E8
+_0222DE86:
+ mov r0, #0
+ str r0, [r4, #0x50]
+ str r0, [r4, #0x54]
+ str r0, [r4, #0x58]
+ bl FUN_02031190
+ cmp r0, #1
+ bne _0222DEAA
+ bl FUN_02031190
+ ldr r1, _0222E0F8 ; =0x00002218
+ ldr r2, [r4, #0x50]
+ ldr r1, [r4, r1]
+ bl MOD70_0222F480
+ ldr r0, [r4, #0x50]
+ add r0, r0, #1
+ str r0, [r4, #0x50]
+_0222DEAA:
+ ldr r0, [r4, #0x4c]
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+ b _0222E0E8
+_0222DEB2:
+ ldr r0, [r4, #0x54]
+ cmp r0, #0
+ bne _0222DEBA
+_0222DEB8:
+ b _0222E0E8
+_0222DEBA:
+ mov r0, #0xa
+ str r0, [r4, #0x4c]
+ b _0222E0E8
+_0222DEC0:
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+ add r0, r4, #0
+ bl MOD70_0222D93C
+ b _0222E0E8
+_0222DECC:
+ mov r1, #0
+ mov r0, #0x69
+ add r2, r4, #0
+ add r5, r1, #0
+ lsl r0, r0, #4
+_0222DED6:
+ add r1, r1, #1
+ strh r5, [r2, r0]
+ add r2, #0x10
+ cmp r1, #0xd
+ blt _0222DED6
+ ldr r0, _0222E0F8 ; =0x00002218
+ ldr r0, [r4, r0]
+ bl FUN_0206B9AC
+ cmp r0, #0
+ ble _0222DF12
+ mov r0, #0x69
+ lsl r0, r0, #4
+ ldr r7, _0222E0F8 ; =0x00002218
+ add r6, r4, r0
+_0222DEF4:
+ ldr r0, _0222E0F8 ; =0x00002218
+ add r1, r5, #0
+ ldr r0, [r4, r0]
+ bl FUN_0206B9B0
+ add r1, r6, #0
+ bl MOD70_0222E118
+ ldr r0, [r4, r7]
+ add r6, #0x10
+ add r5, r5, #1
+ bl FUN_0206B9AC
+ cmp r5, r0
+ blt _0222DEF4
+_0222DF12:
+ ldr r0, _0222E0FC ; =0x0000221C
+ mov r5, #0
+ ldr r0, [r4, r0]
+ bl FUN_0206B9AC
+ cmp r0, #0
+ ble _0222DF48
+ mov r0, #0x69
+ lsl r0, r0, #4
+ ldr r7, _0222E0FC ; =0x0000221C
+ add r6, r4, r0
+_0222DF28:
+ ldr r0, _0222E0FC ; =0x0000221C
+ add r1, r5, #0
+ ldr r0, [r4, r0]
+ bl FUN_0206B9B0
+ add r1, r5, #6
+ lsl r1, r1, #4
+ add r1, r6, r1
+ bl MOD70_0222E118
+ ldr r0, [r4, r7]
+ add r5, r5, #1
+ bl FUN_0206B9AC
+ cmp r5, r0
+ blt _0222DF28
+_0222DF48:
+ mov r0, #0x75
+ mov r1, #1
+ lsl r0, r0, #4
+ strh r1, [r4, r0]
+ ldr r0, [r4, #0x4c]
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+ b _0222E0E8
+_0222DF58:
+ bl FUN_02031190
+ bl FUN_0202DFA4
+ ldr r2, _0222E100 ; =0x00002224
+ ldr r1, [r4, r2]
+ add r2, r2, #4
+ add r2, r4, r2
+ bl MOD70_0222F4BC
+ ldr r0, [r4, #0x4c]
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+ b _0222E0E8
+_0222DF74:
+ ldr r1, [r4, #0x54]
+ cmp r1, #3
+ bne _0222DFD4
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+ b _0222E0E8
+_0222DF80:
+ ldr r0, [r4, #4]
+ bl FUN_02029EF8
+ bl MOD70_0222F528
+ ldr r0, [r4, #0x4c]
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+ b _0222E0E8
+_0222DF92:
+ ldr r1, [r4, #0x54]
+ cmp r1, #4
+ bne _0222DFD4
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+ mov r0, #0x10
+ mov r1, #0
+ bl FUN_0201E6E4
+ ldr r0, _0222E0F8 ; =0x00002218
+ mov r1, #0
+ ldr r0, [r4, r0]
+ add r2, r4, #0
+ bl MOD70_0222DBEC
+ ldr r0, _0222E0FC ; =0x0000221C
+ mov r1, #6
+ ldr r0, [r4, r0]
+ add r2, r4, #0
+ bl MOD70_0222DBEC
+ mov r6, #0xce
+ mov r5, #0
+ mov r7, #1
+ lsl r6, r6, #2
+_0222DFC4:
+ ldr r0, [r4, r6]
+ add r1, r7, #0
+ bl FUN_020200A0
+ add r5, r5, #1
+ add r4, r4, #4
+ cmp r5, #2
+ blt _0222DFC4
+_0222DFD4:
+ b _0222E0E8
+_0222DFD6:
+ mov r1, #0
+ mov r0, #1
+ add r2, r1, #0
+ str r0, [sp]
+ mov r0, #8
+ sub r2, #0x10
+ mov r3, #0x1e
+ bl FUN_0200A208
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201797C
+ mov r0, #2
+ mov r1, #1
+ bl FUN_0201797C
+ mov r0, #3
+ mov r1, #1
+ bl FUN_0201797C
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ ldr r0, [r4, #0x4c]
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+ b _0222E0E8
+_0222E010:
+ mov r0, #1
+ bl FUN_0200A344
+ cmp r0, #0
+ beq _0222E0E8
+ ldr r0, _0222E0F8 ; =0x00002218
+ mov r1, #0
+ ldr r0, [r4, r0]
+ bl FUN_0206B9B0
+ mov r2, #0x7f
+ ldr r3, _0222E104 ; =0x000020F0
+ lsl r2, r2, #4
+ add r1, r0, #0
+ mov r0, #0
+ add r2, r4, r2
+ add r3, r4, r3
+ bl MOD70_0222EBFC
+ ldr r1, _0222E108 ; =0x00002110
+ ldr r2, _0222E0F8 ; =0x00002218
+ str r0, [r4, r1]
+ str r4, [sp]
+ ldr r0, _0222E10C ; =0x00000438
+ mov r1, #0
+ ldr r2, [r4, r2]
+ add r0, r4, r0
+ add r3, r1, #0
+ bl MOD70_0222ECD4
+ ldr r0, [r4, #0x4c]
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+ b _0222E0E8
+_0222E054:
+ mov r1, #0
+ mov r0, #2
+ add r2, r1, #0
+ str r0, [sp]
+ mov r0, #8
+ sub r2, #0x10
+ mov r3, #0x17
+ bl FUN_0200A208
+ mov r0, #4
+ mov r1, #1
+ bl FUN_0201797C
+ mov r0, #5
+ mov r1, #1
+ bl FUN_0201797C
+ mov r0, #6
+ mov r1, #1
+ bl FUN_0201797C
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E74C
+ ldr r0, [r4, #0x4c]
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+ add r0, r4, #0
+ bl MOD70_02230BA8
+ b _0222E0E8
+_0222E094:
+ mov r0, #2
+ bl FUN_0200A344
+ cmp r0, #0
+ beq _0222E0E8
+ ldr r0, _0222E110 ; =0x000005A8
+ mov r1, #0
+ add r0, r4, r0
+ bl FUN_0200D0E0
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ str r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02018540
+ mov r3, #0x5e
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #0xc
+ str r0, [sp]
+ ldr r0, _0222E114 ; =0x00000588
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0xf
+ mov r2, #1
+ bl MOD70_02230F40
+ mov r0, #2
+ bl FUN_020166B8
+ add sp, #0x10
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0222E0E8:
+ mov r0, #0
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222E0F0: .word 0x00000445
+_0222E0F4: .word 0x0000369C
+_0222E0F8: .word 0x00002218
+_0222E0FC: .word 0x0000221C
+_0222E100: .word 0x00002224
+_0222E104: .word 0x000020F0
+_0222E108: .word 0x00002110
+_0222E10C: .word 0x00000438
+_0222E110: .word 0x000005A8
+_0222E114: .word 0x00000588
+ thumb_func_end MOD70_0222DD60
+
+ thumb_func_start MOD70_0222E118
+MOD70_0222E118: ; 0x0222E118
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_020669D4
+ add r7, r0, #0
+ add r0, r5, #0
+ mov r1, #0x9a
+ mov r2, #0
+ bl FUN_020671BC
+ strb r0, [r4, #4]
+ add r0, r5, #0
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020671BC
+ strh r0, [r4]
+ add r0, r5, #0
+ mov r1, #0x70
+ mov r2, #0
+ bl FUN_020671BC
+ strb r0, [r4, #6]
+ add r0, r5, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl FUN_020671BC
+ strb r0, [r4, #5]
+ add r0, r5, #0
+ mov r1, #0x6f
+ mov r2, #0
+ bl FUN_020671BC
+ strh r0, [r4, #8]
+ add r0, r5, #0
+ mov r1, #0xa1
+ mov r2, #0
+ bl FUN_020671BC
+ str r0, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #6
+ mov r2, #0
+ bl FUN_020671BC
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, r7, #0
+ bl FUN_02066A20
+ ldrh r0, [r4]
+ cmp r0, #0
+ beq _0222E18E
+ mov r1, #0x1c
+ bl FUN_02068678
+ strh r0, [r4, #0xa]
+_0222E18E:
+ cmp r6, #0
+ beq _0222E19E
+ lsl r0, r6, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_0206EA98
+ add r0, r0, #1
+ strh r0, [r4, #2]
+_0222E19E:
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD70_0222E118
+
+ thumb_func_start MOD70_0222E1A0
+MOD70_0222E1A0: ; 0x0222E1A0
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #6
+ bl _s32_div_f
+ ldr r0, _0222E20C ; =0x0000221C
+ add r7, r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_0206B9B0
+ add r6, r0, #0
+ add r0, r4, #0
+ mov r1, #6
+ bl _s32_div_f
+ add r1, r6, #0
+ mov r2, #0x7f
+ mov r6, #0x32
+ add r3, r0, #0
+ lsl r2, r2, #4
+ lsl r6, r6, #6
+ mul r6, r3
+ add r2, r5, r2
+ add r2, r2, r6
+ ldr r6, _0222E210 ; =0x000020F0
+ lsl r3, r3, #4
+ add r6, r5, r6
+ mov r0, #1
+ add r3, r6, r3
+ bl MOD70_0222EBFC
+ ldr r1, _0222E214 ; =0x00002110
+ ldr r2, _0222E20C ; =0x0000221C
+ str r0, [r5, r1]
+ str r5, [sp]
+ ldr r0, _0222E218 ; =0x00000438
+ ldr r2, [r5, r2]
+ add r0, r5, r0
+ mov r1, #1
+ add r3, r7, #0
+ bl MOD70_0222ECD4
+ lsl r1, r4, #4
+ add r2, r5, r1
+ ldr r1, _0222E21C ; =0x00000694
+ ldr r0, _0222E220 ; =0x0000040C
+ ldrb r1, [r2, r1]
+ ldr r0, [r5, r0]
+ add r1, r1, #5
+ bl FUN_02020130
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222E20C: .word 0x0000221C
+_0222E210: .word 0x000020F0
+_0222E214: .word 0x00002110
+_0222E218: .word 0x00000438
+_0222E21C: .word 0x00000694
+_0222E220: .word 0x0000040C
+ thumb_func_end MOD70_0222E1A0
+
+ thumb_func_start MOD70_0222E224
+MOD70_0222E224: ; 0x0222E224
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r1, r5, #0
+ add r1, #0x88
+ ldr r1, [r1]
+ cmp r1, #0xc
+ beq _0222E2B8
+ cmp r1, #6
+ bge _0222E29E
+ ldr r0, _0222E2BC ; =0x00002218
+ ldr r0, [r5, r0]
+ bl FUN_0206B9B0
+ add r4, r0, #0
+ add r0, r5, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ mov r1, #6
+ bl _s32_div_f
+ mov r2, #0x7f
+ add r3, r0, #0
+ lsl r2, r2, #4
+ add r1, r4, #0
+ add r4, r5, r2
+ mov r2, #0x32
+ lsl r2, r2, #6
+ mul r2, r3
+ add r2, r4, r2
+ ldr r4, _0222E2C0 ; =0x000020F0
+ lsl r3, r3, #4
+ add r4, r5, r4
+ mov r0, #0
+ add r3, r4, r3
+ bl MOD70_0222EBFC
+ ldr r1, _0222E2C4 ; =0x00002110
+ add r3, r5, #0
+ str r0, [r5, r1]
+ ldr r0, _0222E2C8 ; =0x00000438
+ ldr r2, _0222E2BC ; =0x00002218
+ str r5, [sp]
+ add r3, #0x88
+ ldr r2, [r5, r2]
+ ldr r3, [r3]
+ add r0, r5, r0
+ mov r1, #0
+ bl MOD70_0222ECD4
+ ldr r0, _0222E2C8 ; =0x00000438
+ mov r1, #1
+ add r0, r5, r0
+ add r2, r5, #0
+ bl MOD70_0222EF24
+ ldr r0, _0222E2CC ; =0x0000040C
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_020200A0
+ pop {r3, r4, r5, pc}
+_0222E29E:
+ bl MOD70_0222E1A0
+ ldr r0, _0222E2C8 ; =0x00000438
+ mov r1, #0
+ add r0, r5, r0
+ add r2, r5, #0
+ bl MOD70_0222EF24
+ ldr r0, _0222E2D0 ; =0x00000408
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_020200A0
+_0222E2B8:
+ pop {r3, r4, r5, pc}
+ nop
+_0222E2BC: .word 0x00002218
+_0222E2C0: .word 0x000020F0
+_0222E2C4: .word 0x00002110
+_0222E2C8: .word 0x00000438
+_0222E2CC: .word 0x0000040C
+_0222E2D0: .word 0x00000408
+ thumb_func_end MOD70_0222E224
+
+ thumb_func_start MOD70_0222E2D4
+MOD70_0222E2D4: ; 0x0222E2D4
+ push {r3, r4, lr}
+ sub sp, #4
+ ldr r1, _0222E374 ; =0x00002214
+ add r4, r0, #0
+ ldr r1, [r4, r1]
+ cmp r1, #0
+ beq _0222E2EA
+ blx r1
+ mov r1, #5
+ lsl r1, r1, #6
+ str r0, [r4, r1]
+_0222E2EA:
+ mov r0, #5
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ cmp r0, #3
+ bhi _0222E314
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222E300: ; jump table
+ .short _0222E314 - _0222E300 - 2 ; case 0
+ .short _0222E314 - _0222E300 - 2 ; case 1
+ .short _0222E308 - _0222E300 - 2 ; case 2
+ .short _0222E30E - _0222E300 - 2 ; case 3
+_0222E308:
+ add sp, #4
+ mov r0, #2
+ pop {r3, r4, pc}
+_0222E30E:
+ add sp, #4
+ mov r0, #3
+ pop {r3, r4, pc}
+_0222E314:
+ mov r0, #0
+ mov r2, #0xce
+ str r0, [sp]
+ mov r0, #0x53
+ lsl r2, r2, #2
+ mov r3, #0x69
+ lsl r0, r0, #2
+ add r1, r4, #0
+ lsl r3, r3, #4
+ ldr r2, [r4, r2]
+ add r0, r4, r0
+ add r1, #0x88
+ add r3, r4, r3
+ bl MOD70_0222F3DC
+ cmp r0, #0
+ beq _0222E33C
+ add r0, r4, #0
+ bl MOD70_0222E224
+_0222E33C:
+ mov r0, #1
+ mov r2, #0xcf
+ str r0, [sp]
+ mov r0, #0x15
+ lsl r2, r2, #2
+ mov r3, #0x69
+ lsl r0, r0, #4
+ add r1, r4, #0
+ lsl r3, r3, #4
+ ldr r2, [r4, r2]
+ add r0, r4, r0
+ add r1, #0x8c
+ add r3, r4, r3
+ bl MOD70_0222F3DC
+ add r0, r4, #0
+ add r0, #0x90
+ bl MOD70_0222F2D8
+ add r0, r4, #0
+ add r4, #0x88
+ ldr r2, [r4]
+ mov r1, #0x17
+ bl MOD70_0222F440
+ mov r0, #1
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_0222E374: .word 0x00002214
+ thumb_func_end MOD70_0222E2D4
+
+ thumb_func_start MOD70_0222E378
+MOD70_0222E378: ; 0x0222E378
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ mov r0, #0x2d
+ lsl r0, r0, #4
+ ldr r0, [r6, r0]
+ bl FUN_02009C0C
+ mov r0, #0x2e
+ lsl r0, r0, #4
+ ldr r0, [r6, r0]
+ bl FUN_02009C0C
+ mov r0, #0xb5
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ bl FUN_02009E04
+ mov r0, #0xb9
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ bl FUN_02009E04
+ mov r7, #0xb
+ mov r4, #0
+ add r5, r6, #0
+ lsl r7, r7, #6
+_0222E3AC:
+ ldr r0, [r5, r7]
+ bl FUN_02008E2C
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _0222E3AC
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ bl FUN_0201FD58
+ bl FUN_02009FA0
+ bl FUN_0201D12C
+ bl FUN_0201E08C
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD70_0222E378
+
+ thumb_func_start MOD70_0222E3D4
+MOD70_0222E3D4: ; 0x0222E3D4
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ ldr r0, _0222E42C ; =0x00002218
+ mov r4, #0
+ ldr r0, [r6, r0]
+ bl FUN_0206B9AC
+ cmp r0, #0
+ ble _0222E402
+ ldr r7, _0222E42C ; =0x00002218
+ add r5, r6, #0
+_0222E3EA:
+ mov r0, #0x79
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl FUN_02016A18
+ ldr r0, [r6, r7]
+ add r5, r5, #4
+ add r4, r4, #1
+ bl FUN_0206B9AC
+ cmp r4, r0
+ blt _0222E3EA
+_0222E402:
+ ldr r0, _0222E430 ; =0x0000221C
+ mov r5, #0
+ ldr r0, [r6, r0]
+ bl FUN_0206B9AC
+ cmp r0, #0
+ ble _0222E42A
+ ldr r7, _0222E430 ; =0x0000221C
+ add r4, r6, #0
+_0222E414:
+ ldr r0, _0222E434 ; =0x000007A8
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ ldr r0, [r6, r7]
+ add r4, r4, #4
+ add r5, r5, #1
+ bl FUN_0206B9AC
+ cmp r5, r0
+ blt _0222E414
+_0222E42A:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222E42C: .word 0x00002218
+_0222E430: .word 0x0000221C
+_0222E434: .word 0x000007A8
+ thumb_func_end MOD70_0222E3D4
+
+ thumb_func_start MOD70_0222E438
+MOD70_0222E438: ; 0x0222E438
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ add r0, r5, #0
+ bl FUN_0200628C
+ ldr r1, [r4, #0x5c]
+ str r1, [r0, #0x28]
+ add r0, r4, #0
+ bl MOD70_0222E3D4
+ mov r0, #0x19
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_02021A20
+ ldr r0, _0222E4D4 ; =0x0000221C
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ add r0, r4, #0
+ bl MOD70_0222E378
+ ldr r0, _0222E4D8 ; =0x00000438
+ add r0, r4, r0
+ bl MOD70_02230E88
+ mov r0, #0x5d
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD70_0222E848
+ mov r1, #0x5d
+ lsl r1, r1, #2
+ ldr r1, [r4, r1]
+ mov r0, #0x1a
+ bl FUN_02016A8C
+ mov r0, #0x61
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0200A8B8
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ bl FUN_0200AB18
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0200AB18
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0200AB18
+ mov r0, #0x63
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02021A20
+ add r0, r5, #0
+ bl FUN_0200627C
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ mov r0, #0x1a
+ bl FUN_020168D0
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ nop
+_0222E4D4: .word 0x0000221C
+_0222E4D8: .word 0x00000438
+ thumb_func_end MOD70_0222E438
+
+ thumb_func_start MOD70_0222E4DC
+MOD70_0222E4DC: ; 0x0222E4DC
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r5, r0, #0
+ mov r0, #0x5d
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_0201AB60
+ ldr r0, _0222E548 ; =0x00002110
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _0222E52E
+ sub r4, r0, #1
+ mov r0, #0x7f
+ mov r2, #0x32
+ lsl r0, r0, #4
+ lsl r2, r2, #6
+ add r1, r4, #0
+ add r0, r5, r0
+ mul r1, r2
+ add r0, r0, r1
+ bl GXS_LoadOBJ
+ lsl r1, r4, #4
+ mov r0, #0x20
+ add r2, r5, r1
+ str r0, [sp]
+ mov r0, #0x1a
+ add r3, r4, #2
+ ldr r1, _0222E54C ; =0x000020F0
+ str r0, [sp, #4]
+ ldrh r0, [r2, r1]
+ add r1, r1, #4
+ ldrh r1, [r2, r1]
+ mov r2, #5
+ lsl r3, r3, #5
+ bl FUN_02006930
+ ldr r0, _0222E548 ; =0x00002110
+ mov r1, #0
+ str r1, [r5, r0]
+_0222E52E:
+ bl FUN_0201C30C
+ bl FUN_02009F80
+ ldr r3, _0222E550 ; =0x027E0000
+ ldr r1, _0222E554 ; =0x00003FF8
+ mov r0, #1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ nop
+_0222E548: .word 0x00002110
+_0222E54C: .word 0x000020F0
+_0222E550: .word 0x027E0000
+_0222E554: .word 0x00003FF8
+ thumb_func_end MOD70_0222E4DC
+
+ thumb_func_start MOD70_0222E558
+MOD70_0222E558: ; 0x0222E558
+ push {r4, lr}
+ sub sp, #0x28
+ ldr r4, _0222E574 ; =0x022311B0
+ add r3, sp, #0
+ mov r2, #5
+_0222E562:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0222E562
+ add r0, sp, #0
+ bl FUN_0201E66C
+ add sp, #0x28
+ pop {r4, pc}
+ .align 2, 0
+_0222E574: .word 0x022311B0
+ thumb_func_end MOD70_0222E558
+
+ thumb_func_start MOD70_0222E578
+MOD70_0222E578: ; 0x0222E578
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xd4
+ ldr r4, _0222E748 ; =0x022310B4
+ add r3, sp, #0xc4
+ add r5, r0, #0
+ add r2, r3, #0
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ add r0, r2, #0
+ bl FUN_02016BBC
+ ldr r4, _0222E74C ; =0x0223115C
+ add r3, sp, #0xa8
+ ldmia r4!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r4]
+ mov r1, #0
+ str r0, [r3]
+ add r0, r5, #0
+ add r3, r1, #0
+ bl FUN_02016C18
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_02018744
+ ldr r4, _0222E750 ; =0x02231124
+ add r3, sp, #0x8c
+ ldmia r4!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r4]
+ mov r1, #1
+ str r0, [r3]
+ add r0, r5, #0
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_02018744
+ ldr r4, _0222E754 ; =0x02231178
+ add r3, sp, #0x70
+ ldmia r4!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r4]
+ mov r1, #2
+ str r0, [r3]
+ add r0, r5, #0
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r5, #0
+ mov r1, #2
+ bl FUN_02018744
+ ldr r4, _0222E758 ; =0x02231194
+ add r3, sp, #0x54
+ ldmia r4!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r4]
+ mov r1, #3
+ str r0, [r3]
+ add r0, r5, #0
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r4, _0222E75C ; =0x022310EC
+ add r3, sp, #0x38
+ ldmia r4!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r4]
+ str r0, [r3]
+ add r0, r5, #0
+ mov r1, #4
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r5, #0
+ mov r1, #4
+ bl FUN_02018744
+ ldr r4, _0222E760 ; =0x02231108
+ add r3, sp, #0x1c
+ ldmia r4!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r4]
+ mov r1, #5
+ str r0, [r3]
+ add r0, r5, #0
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r4, _0222E764 ; =0x02231140
+ add r3, sp, #0
+ ldmia r4!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r4]
+ mov r1, #6
+ str r0, [r3]
+ add r0, r5, #0
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #0
+ mov r1, #0x20
+ add r2, r0, #0
+ mov r3, #0x1a
+ bl FUN_02017F18
+ mov r0, #1
+ mov r1, #0x20
+ mov r2, #0
+ mov r3, #0x1a
+ bl FUN_02017F18
+ mov r0, #4
+ mov r1, #0x20
+ mov r2, #0
+ mov r3, #0x1a
+ bl FUN_02017F18
+ mov r4, #0
+ mov r6, #3
+ add r7, r4, #0
+_0222E6BC:
+ lsl r1, r4, #0x18
+ mov r2, #0
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ add r3, r2, #0
+ bl FUN_020179E0
+ lsl r1, r4, #0x18
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ add r2, r6, #0
+ add r3, r7, #0
+ bl FUN_020179E0
+ add r1, r4, #4
+ lsl r1, r1, #0x18
+ mov r2, #0
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ add r3, r2, #0
+ bl FUN_020179E0
+ add r1, r4, #4
+ lsl r1, r1, #0x18
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ mov r2, #3
+ mov r3, #0
+ bl FUN_020179E0
+ add r4, r4, #1
+ cmp r4, #4
+ blt _0222E6BC
+ 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 r2, #1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2]
+ ldr r0, _0222E768 ; =0xFFFF1FFF
+ and r0, r1
+ str r0, [r2]
+ add sp, #0xd4
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0222E748: .word 0x022310B4
+_0222E74C: .word 0x0223115C
+_0222E750: .word 0x02231124
+_0222E754: .word 0x02231178
+_0222E758: .word 0x02231194
+_0222E75C: .word 0x022310EC
+_0222E760: .word 0x02231108
+_0222E764: .word 0x02231140
+_0222E768: .word 0xFFFF1FFF
+ thumb_func_end MOD70_0222E578
+
+ thumb_func_start MOD70_0222E76C
+MOD70_0222E76C: ; 0x0222E76C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r0, r1, #0
+ bl FUN_0200628C
+ add r4, r0, #0
+ mov r2, #6
+ ldr r0, _0222E830 ; =0x00000668
+ str r4, [r5, #8]
+ mov r1, #4
+ str r1, [r5, r0]
+ mov r3, #0
+ str r3, [r5, #0x44]
+ sub r0, r0, #4
+ str r3, [r5, r0]
+ mov r0, #0x5b
+ lsl r0, r0, #2
+ str r2, [r5, r0]
+ add r1, r0, #4
+ str r2, [r5, r1]
+ add r1, r5, #0
+ add r1, #0x88
+ str r3, [r1]
+ add r1, r5, #0
+ add r1, #0x8c
+ str r2, [r1]
+ sub r0, #0x2c
+ str r3, [r5, r0]
+ str r3, [r5, #0x48]
+ ldr r0, _0222E834 ; =MOD70_0222F538
+ ldr r1, _0222E838 ; =0x00002214
+ str r3, [r5, #0x4c]
+ str r0, [r5, r1]
+ str r3, [r5, #0x60]
+ str r3, [r5, #0x64]
+ ldr r0, _0222E83C ; =0x00002110
+ str r3, [r5, #0x5c]
+ str r3, [r5, r0]
+ ldr r0, _0222E840 ; =0x000036A0
+ sub r6, r2, #7
+ str r6, [r5, r0]
+ add r2, r0, #4
+ str r6, [r5, r2]
+ add r2, r1, #0
+ add r2, #0xac
+ str r3, [r5, r2]
+ add r2, r0, #0
+ add r2, #0xc
+ str r3, [r5, r2]
+ add r0, #0x10
+ str r3, [r5, r0]
+ add r0, r1, #4
+ ldr r2, [r4, #8]
+ add r1, #0x10
+ str r2, [r5, r0]
+ ldr r0, [r4, #0xc]
+ str r0, [r5, r1]
+ ldr r0, [r4, #0x10]
+ str r0, [r5, #4]
+ bl FUN_0206B8A4
+ add r1, r0, #0
+ mov r0, #0x1a
+ bl FUN_02016998
+ ldr r1, _0222E844 ; =0x0000221C
+ str r0, [r5, r1]
+ ldr r0, [r5, r1]
+ mov r1, #6
+ bl FUN_0206B8CC
+ bl FUN_0206B8A4
+ add r2, r0, #0
+ ldr r0, _0222E844 ; =0x0000221C
+ mov r1, #0xff
+ ldr r0, [r5, r0]
+ bl Call_FillMemWithValue
+ ldr r0, [r4, #4]
+ mov r1, #0x1a
+ bl FUN_020239A0
+ mov r1, #0x63
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ sub r1, #8
+ ldr r0, [r5, r1]
+ mov r1, #0x28
+ bl FUN_0200A914
+ mov r1, #0x19
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ ldr r0, [r4, #0x14]
+ bl FUN_02033778
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0222E830: .word 0x00000668
+_0222E834: .word MOD70_0222F538
+_0222E838: .word 0x00002214
+_0222E83C: .word 0x00002110
+_0222E840: .word 0x000036A0
+_0222E844: .word 0x0000221C
+ thumb_func_end MOD70_0222E76C
+
+ thumb_func_start MOD70_0222E848
+MOD70_0222E848: ; 0x0222E848
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #6
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #5
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #4
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #3
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #2
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_020178A0
+ pop {r4, pc}
+ thumb_func_end MOD70_0222E848
+
+ thumb_func_start MOD70_0222E884
+MOD70_0222E884: ; 0x0222E884
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r5, r2, #0
+ mov r2, #1
+ add r4, r3, #0
+ str r2, [sp]
+ ldr r2, [sp, #0x20]
+ ldr r3, [sp, #0x24]
+ bl FUN_02006C98
+ add r6, r0, #0
+ beq _0222E8D6
+ add r1, sp, #4
+ bl FUN_020B0180
+ cmp r0, #0
+ beq _0222E8D0
+ ldr r0, [sp, #0x1c]
+ cmp r0, #0
+ bne _0222E8B2
+ ldr r0, [sp, #4]
+ ldr r0, [r0, #8]
+ str r0, [sp, #0x1c]
+_0222E8B2:
+ lsl r1, r4, #0x18
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ bl FUN_0201886C
+ cmp r0, #0
+ beq _0222E8D0
+ ldr r2, [sp, #4]
+ lsl r1, r4, #0x18
+ ldr r3, [sp, #0x1c]
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ add r2, #0xc
+ bl FUN_02017DFC
+_0222E8D0:
+ add r0, r6, #0
+ bl FUN_02016A18
+_0222E8D6:
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD70_0222E884
+
+ thumb_func_start MOD70_0222E8DC
+MOD70_0222E8DC: ; 0x0222E8DC
+ push {r3, r4, lr}
+ sub sp, #4
+ mov r1, #2
+ add r4, r0, #0
+ bl FUN_0201886C
+ add r2, r0, #0
+ mov r0, #0
+ mov r3, #6
+ str r0, [sp]
+ add r0, r4, #0
+ mov r1, #2
+ lsl r3, r3, #8
+ bl FUN_02017CE8
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+ thumb_func_end MOD70_0222E8DC
+
+ thumb_func_start MOD70_0222E900
+MOD70_0222E900: ; 0x0222E900
+ push {r4, lr}
+ sub sp, #0x10
+ mov r1, #0x5d
+ lsl r1, r1, #2
+ ldr r4, [r0, r1]
+ sub r1, #0x54
+ str r1, [sp]
+ mov r0, #0x1a
+ mov r1, #0
+ str r0, [sp, #4]
+ mov r0, #0x36
+ mov r2, #4
+ add r3, r1, #0
+ bl FUN_02006930
+ mov r1, #0
+ mov r0, #0x12
+ lsl r0, r0, #4
+ str r0, [sp]
+ mov r0, #0x1a
+ str r0, [sp, #4]
+ mov r0, #0x36
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02006930
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02017FE4
+ mov r0, #4
+ mov r1, #0
+ bl FUN_02017FE4
+ mov r1, #0x1a
+ mov r0, #0
+ lsl r1, r1, #4
+ mov r2, #0x1a
+ bl FUN_02002EEC
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #9
+ lsl r0, r0, #0xa
+ str r0, [sp, #4]
+ mov r1, #1
+ str r1, [sp, #8]
+ mov r0, #0x1a
+ str r0, [sp, #0xc]
+ mov r0, #0x36
+ add r2, r4, #0
+ mov r3, #2
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #6
+ lsl r0, r0, #8
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x1a
+ str r0, [sp, #0xc]
+ mov r0, #0x36
+ mov r1, #3
+ add r2, r4, #0
+ mov r3, #2
+ bl MOD70_0222E884
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #6
+ lsl r0, r0, #8
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x1a
+ str r0, [sp, #0xc]
+ mov r0, #0x36
+ mov r1, #4
+ add r2, r4, #0
+ mov r3, #3
+ bl FUN_020068C8
+ mov r0, #0
+ mov r1, #0x40
+ mov r2, #0x1a
+ bl FUN_02002EEC
+ mov r0, #0
+ mov r1, #0x60
+ mov r2, #0x1a
+ bl FUN_02002ED0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #2
+ lsl r0, r0, #0xa
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x1a
+ str r0, [sp, #0xc]
+ mov r0, #0x36
+ mov r1, #2
+ add r2, r4, #0
+ mov r3, #5
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #6
+ lsl r0, r0, #8
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x1a
+ mov r1, #5
+ str r0, [sp, #0xc]
+ mov r0, #0x36
+ add r2, r4, #0
+ add r3, r1, #0
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #6
+ lsl r0, r0, #8
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x1a
+ mov r1, #6
+ str r0, [sp, #0xc]
+ mov r0, #0x36
+ add r2, r4, #0
+ add r3, r1, #0
+ bl FUN_020068C8
+ mov r0, #4
+ mov r1, #0x40
+ mov r2, #0x1a
+ bl FUN_02002EEC
+ mov r0, #4
+ mov r1, #0x60
+ mov r2, #0x1a
+ bl FUN_02002ED0
+ add r0, r4, #0
+ mov r1, #4
+ bl FUN_02018744
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD70_0222E900
+
+ thumb_func_start MOD70_0222EA38
+MOD70_0222EA38: ; 0x0222EA38
+ push {r4, lr}
+ sub sp, #0x10
+ ldr r4, _0222EA64 ; =0x022310C4
+ add r3, sp, #0
+ add r2, r3, #0
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ add r0, r2, #0
+ bl FUN_0201D040
+ mov r0, #0x14
+ mov r1, #0x1a
+ bl FUN_0201E00C
+ bl FUN_0201D168
+ bl FUN_0201E0BC
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_0222EA64: .word 0x022310C4
+ thumb_func_end MOD70_0222EA38
+
+ thumb_func_start MOD70_0222EA68
+MOD70_0222EA68: ; 0x0222EA68
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ bl FUN_020B0FC0
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #0x7f
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ mov r3, #0x20
+ str r3, [sp, #0xc]
+ mov r2, #0x1a
+ str r2, [sp, #0x10]
+ add r2, r0, #0
+ bl FUN_02009EAC
+ mov r1, #0x66
+ lsl r1, r1, #2
+ mov r0, #0x2d
+ add r1, r5, r1
+ mov r2, #0x1a
+ bl FUN_02008C9C
+ mov r1, #0x65
+ lsl r1, r1, #2
+ mov r7, #0xb
+ str r0, [r5, r1]
+ mov r6, #0
+ add r4, r5, #0
+ lsl r7, r7, #6
+_0222EAA6:
+ mov r0, #2
+ add r1, r6, #0
+ mov r2, #0x1a
+ bl FUN_02008DEC
+ str r0, [r4, r7]
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #4
+ blt _0222EAA6
+ mov r0, #0
+ str r0, [sp]
+ mov r3, #1
+ str r3, [sp, #4]
+ mov r0, #0x1a
+ str r0, [sp, #8]
+ mov r0, #0xb
+ lsl r0, r0, #6
+ ldr r0, [r5, r0]
+ mov r1, #0x36
+ mov r2, #7
+ bl FUN_02008F34
+ mov r1, #0x2d
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #9
+ str r0, [sp, #8]
+ mov r0, #0x1a
+ sub r1, #0xc
+ str r0, [sp, #0xc]
+ ldr r0, [r5, r1]
+ mov r1, #0x36
+ add r3, r2, #0
+ bl FUN_02008FEC
+ mov r1, #0xb5
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #0x1a
+ sub r1, #0xc
+ str r0, [sp, #8]
+ ldr r0, [r5, r1]
+ mov r1, #0x36
+ mov r2, #8
+ mov r3, #1
+ bl FUN_020090AC
+ mov r1, #0xb6
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ mov r0, #0x1a
+ sub r1, #0xc
+ str r0, [sp, #8]
+ ldr r0, [r5, r1]
+ mov r1, #0x36
+ mov r2, #9
+ mov r3, #1
+ bl FUN_020090AC
+ mov r1, #0xb7
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r3, #1
+ str r3, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #0x1a
+ sub r1, #0x1c
+ str r0, [sp, #8]
+ ldr r0, [r5, r1]
+ mov r1, #0x36
+ mov r2, #0xa
+ bl FUN_02008F34
+ mov r1, #0x2e
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #0xa
+ str r0, [sp, #8]
+ mov r0, #0x1a
+ mov r2, #0
+ sub r1, #0x1c
+ str r0, [sp, #0xc]
+ ldr r0, [r5, r1]
+ mov r1, #0x36
+ add r3, r2, #0
+ bl FUN_02008FEC
+ mov r1, #0xb9
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r3, #1
+ str r3, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #0x1a
+ sub r1, #0x1c
+ str r0, [sp, #8]
+ ldr r0, [r5, r1]
+ mov r1, #0x36
+ mov r2, #0xb
+ bl FUN_020090AC
+ mov r1, #0xba
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r3, #1
+ str r3, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ mov r0, #0x1a
+ sub r1, #0x1c
+ str r0, [sp, #8]
+ ldr r0, [r5, r1]
+ mov r1, #0x36
+ mov r2, #0xc
+ bl FUN_020090AC
+ mov r1, #0xbb
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ sub r1, #0x1c
+ ldr r0, [r5, r1]
+ bl FUN_02009A50
+ mov r0, #0x2e
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl FUN_02009A50
+ mov r0, #0xb5
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02009CF0
+ mov r0, #0xb9
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02009CF0
+ bl FUN_0206B888
+ mov r3, #0x80
+ add r1, r0, #0
+ str r3, [sp]
+ mov r0, #0x1a
+ str r0, [sp, #4]
+ mov r0, #0x13
+ mov r2, #1
+ add r3, #0xc0
+ bl FUN_02006930
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ thumb_func_end MOD70_0222EA68
+
+ thumb_func_start MOD70_0222EBFC
+MOD70_0222EBFC: ; 0x0222EBFC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r5, r0, #0
+ add r4, r2, #0
+ add r0, r3, #0
+ mov r2, #2
+ add r6, r1, #0
+ str r3, [sp, #0x20]
+ bl FUN_02068B68
+ mov r1, #0
+ add r0, r6, #0
+ add r2, r1, #0
+ bl FUN_020671BC
+ add r7, r0, #0
+ add r0, r6, #0
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020671BC
+ mov r3, #0
+ str r3, [sp]
+ mov r1, #0xa
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ str r4, [sp, #0xc]
+ str r7, [sp, #0x10]
+ str r3, [sp, #0x14]
+ mov r1, #2
+ str r1, [sp, #0x18]
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x20]
+ ldr r1, [sp, #0x20]
+ ldrh r0, [r0]
+ ldrh r1, [r1, #2]
+ mov r2, #0x1a
+ bl FUN_020124B4
+ mov r1, #0x32
+ add r0, r4, #0
+ lsl r1, r1, #6
+ bl DC_FlushRange
+ add r0, r5, #1
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD70_0222EBFC
+
+ thumb_func_start MOD70_0222EC5C
+MOD70_0222EC5C: ; 0x0222EC5C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ add r6, r1, #0
+ add r7, r2, #0
+ mov r0, #0x14
+ mov r1, #0x1a
+ str r3, [sp, #8]
+ bl FUN_020219F4
+ add r4, r0, #0
+ add r0, r6, #0
+ add r1, r7, #0
+ bl FUN_0206B9B0
+ mov r1, #0x76
+ add r2, r4, #0
+ bl FUN_020671BC
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_02019620
+ ldr r0, [sp, #0x20]
+ ldr r2, [sp, #8]
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r3, #0
+ bl MOD70_02230EFC
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ thumb_func_end MOD70_0222EC5C
+
+ thumb_func_start MOD70_0222ECA8
+MOD70_0222ECA8: ; 0x0222ECA8
+ push {r4, lr}
+ ldrh r0, [r0]
+ add r4, r3, #0
+ cmp r0, #0x1d
+ beq _0222ECB6
+ cmp r0, #0x20
+ bne _0222ECCE
+_0222ECB6:
+ add r0, r1, #0
+ add r1, r2, #0
+ bl FUN_0206B9B0
+ mov r1, #0x4d
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ bne _0222ECCE
+ mov r0, #2
+ pop {r4, pc}
+_0222ECCE:
+ add r0, r4, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD70_0222ECA8
+
+ thumb_func_start MOD70_0222ECD4
+MOD70_0222ECD4: ; 0x0222ECD4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x38
+ add r6, r0, #0
+ add r5, r1, #0
+ add r0, r2, #0
+ add r1, r3, #0
+ str r2, [sp, #8]
+ str r3, [sp, #0xc]
+ ldr r4, [sp, #0x50]
+ bl FUN_0206B9B0
+ mov r1, #2
+ bl FUN_02068E14
+ str r0, [sp, #0x10]
+ mov r0, #1
+ lsl r0, r0, #0xa
+ add r7, r4, r0
+ lsl r0, r5, #2
+ str r0, [sp, #0x14]
+ ldr r0, [r7, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r0, #0xc
+ add r3, r5, #0
+ mul r3, r0
+ ldr r1, _0222EF10 ; =0x022311D8
+ ldr r0, [sp, #0x14]
+ ldr r2, _0222EF14 ; =0x022311DC
+ ldr r1, [r1, r3]
+ ldr r3, [r2, r3]
+ ldr r2, [sp, #0x10]
+ ldr r0, [r7, r0]
+ add r2, r2, r3
+ add r2, #0xc0
+ bl MOD70_02230B70
+ cmp r5, #0
+ bne _0222ED36
+ ldr r1, [sp, #0xc]
+ ldr r0, [sp, #0x14]
+ lsl r1, r1, #4
+ add r2, r4, r1
+ ldr r1, _0222EF18 ; =0x0000069A
+ ldr r0, [r7, r0]
+ ldrh r1, [r2, r1]
+ bl FUN_02020100
+_0222ED36:
+ ldr r1, [sp, #0xc]
+ mov r0, #1
+ lsl r1, r1, #4
+ add r2, r4, r1
+ ldr r1, _0222EF1C ; =0x00000694
+ lsl r0, r0, #0xa
+ add r7, r4, r0
+ add r0, r5, #2
+ ldrb r1, [r2, r1]
+ lsl r0, r0, #2
+ str r0, [sp, #0x18]
+ ldr r0, [r7, r0]
+ add r1, r1, #5
+ bl FUN_02020130
+ ldr r0, [sp, #0x18]
+ mov r1, #1
+ ldr r0, [r7, r0]
+ bl FUN_020200A0
+ mov r0, #6
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0x1a
+ lsl r0, r0, #4
+ ldr r1, [sp, #8]
+ ldr r2, [sp, #0xc]
+ add r0, r6, r0
+ mov r3, #9
+ bl MOD70_0222EC5C
+ mov r7, #0x69
+ mov r0, #6
+ add r1, r5, #0
+ mul r1, r0
+ ldr r0, [sp, #0xc]
+ lsl r7, r7, #4
+ add r0, r0, r1
+ lsl r0, r0, #4
+ str r0, [sp, #0x34]
+ add r1, r4, r7
+ ldr r3, [sp, #0x34]
+ add r0, r1, r0
+ add r3, r4, r3
+ add r7, #8
+ ldrh r3, [r3, r7]
+ ldr r1, [sp, #8]
+ ldr r2, [sp, #0xc]
+ bl MOD70_0222ECA8
+ ldr r1, _0222EF20 ; =0x00000695
+ add r2, r4, r1
+ ldr r1, [sp, #0x34]
+ str r2, [sp, #0x1c]
+ ldrb r1, [r2, r1]
+ cmp r1, #0
+ beq _0222EDAA
+ mov r0, #2
+_0222EDAA:
+ cmp r0, #0
+ beq _0222EDCA
+ cmp r0, #1
+ beq _0222EDF0
+ cmp r0, #2
+ bne _0222EE14
+ add r0, r5, #4
+ lsl r0, r0, #2
+ add r1, r4, r0
+ mov r0, #1
+ lsl r0, r0, #0xa
+ ldr r0, [r1, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ b _0222EE14
+_0222EDCA:
+ mov r0, #1
+ lsl r0, r0, #0xa
+ add r0, r4, r0
+ str r0, [sp, #0x20]
+ add r0, r5, #4
+ lsl r0, r0, #2
+ ldr r1, [sp, #0x20]
+ str r0, [sp, #0x24]
+ ldr r0, [r1, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ ldr r1, [sp, #0x20]
+ ldr r0, [sp, #0x24]
+ ldr r0, [r1, r0]
+ mov r1, #0x17
+ bl FUN_02020130
+ b _0222EE14
+_0222EDF0:
+ mov r0, #1
+ lsl r0, r0, #0xa
+ add r0, r4, r0
+ str r0, [sp, #0x28]
+ add r0, r5, #4
+ lsl r0, r0, #2
+ ldr r1, [sp, #0x28]
+ str r0, [sp, #0x2c]
+ ldr r0, [r1, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ ldr r1, [sp, #0x28]
+ ldr r0, [sp, #0x2c]
+ ldr r0, [r1, r0]
+ mov r1, #0x16
+ bl FUN_02020130
+_0222EE14:
+ ldr r1, [sp, #0x1c]
+ ldr r0, [sp, #0x34]
+ ldrb r0, [r1, r0]
+ cmp r0, #0
+ bne _0222EE9A
+ mov r0, #0xa
+ mov r1, #0x1a
+ bl FUN_020219F4
+ add r7, r0, #0
+ add r0, r5, #0
+ add r0, #0x1c
+ lsl r0, r0, #4
+ str r0, [sp, #0x30]
+ add r0, r6, r0
+ mov r1, #0
+ bl FUN_02019620
+ mov r0, #0x61
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x27
+ add r2, r7, #0
+ bl FUN_0200A8E0
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x30]
+ add r1, r7, #0
+ add r0, r6, r0
+ mov r2, #9
+ mov r3, #0xff
+ bl MOD70_02230EFC
+ ldr r0, [sp, #8]
+ ldr r1, [sp, #0xc]
+ bl FUN_0206B9B0
+ mov r1, #0xa0
+ mov r2, #0
+ bl FUN_020671BC
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+ mov r0, #1
+ str r0, [sp]
+ add r0, r7, #0
+ mov r2, #3
+ mov r3, #0
+ bl FUN_02021B04
+ mov r0, #0x1e
+ str r0, [sp]
+ ldr r0, [sp, #0x30]
+ mov r3, #0
+ add r0, r6, r0
+ add r1, r7, #0
+ mov r2, #9
+ str r3, [sp, #4]
+ bl MOD70_02230EFC
+ add r0, r7, #0
+ bl FUN_02021A20
+ b _0222EEA6
+_0222EE9A:
+ add r0, r5, #0
+ add r0, #0x1c
+ lsl r0, r0, #4
+ add r0, r6, r0
+ bl FUN_02019570
+_0222EEA6:
+ mov r0, #3
+ str r0, [sp]
+ mov r3, #0
+ add r0, r5, #0
+ mov r1, #0x19
+ add r0, #0x1e
+ lsl r0, r0, #4
+ str r3, [sp, #4]
+ lsl r1, r1, #4
+ ldr r1, [r4, r1]
+ add r0, r6, r0
+ mov r2, #7
+ bl MOD70_02230EFC
+ ldr r0, [sp, #8]
+ ldr r1, [sp, #0xc]
+ bl FUN_0206B9B0
+ mov r1, #6
+ mov r2, #0
+ bl FUN_020671BC
+ add r5, #0x20
+ lsl r0, r0, #0x10
+ lsl r4, r5, #4
+ lsr r7, r0, #0x10
+ add r0, r6, r4
+ mov r1, #0
+ bl FUN_02019620
+ mov r0, #0x14
+ mov r1, #0x1a
+ bl FUN_020219F4
+ add r1, r7, #0
+ mov r2, #0x1a
+ add r5, r0, #0
+ bl FUN_0206E768
+ mov r0, #3
+ str r0, [sp]
+ mov r3, #0
+ add r0, r6, r4
+ add r1, r5, #0
+ mov r2, #9
+ str r3, [sp, #4]
+ bl MOD70_02230EFC
+ add r0, r5, #0
+ bl FUN_02021A20
+ add sp, #0x38
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222EF10: .word 0x022311D8
+_0222EF14: .word 0x022311DC
+_0222EF18: .word 0x0000069A
+_0222EF1C: .word 0x00000694
+_0222EF20: .word 0x00000695
+ thumb_func_end MOD70_0222ECD4
+
+ thumb_func_start MOD70_0222EF24
+MOD70_0222EF24: ; 0x0222EF24
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r6, r2, #0
+ lsl r0, r4, #2
+ add r1, r6, r0
+ mov r0, #1
+ lsl r0, r0, #0xa
+ ldr r0, [r1, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ add r0, r4, #2
+ lsl r0, r0, #2
+ add r1, r6, r0
+ mov r0, #1
+ lsl r0, r0, #0xa
+ ldr r0, [r1, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ add r0, r4, #4
+ lsl r0, r0, #2
+ add r1, r6, r0
+ mov r0, #1
+ lsl r0, r0, #0xa
+ ldr r0, [r1, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ add r0, r4, #0
+ add r0, #0x1a
+ lsl r0, r0, #4
+ add r0, r5, r0
+ bl FUN_02019570
+ add r0, r4, #0
+ add r0, #0x1c
+ lsl r0, r0, #4
+ add r0, r5, r0
+ bl FUN_02019570
+ add r0, r4, #0
+ add r0, #0x1e
+ lsl r0, r0, #4
+ add r0, r5, r0
+ bl FUN_02019570
+ add r4, #0x20
+ lsl r0, r4, #4
+ add r0, r5, r0
+ bl FUN_02019570
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD70_0222EF24
+
+ thumb_func_start MOD70_0222EF90
+MOD70_0222EF90: ; 0x0222EF90
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x5c
+ mov r1, #0
+ add r5, r0, #0
+ str r1, [sp]
+ sub r0, r1, #1
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r2, #0xb
+ str r1, [sp, #0xc]
+ mov r0, #2
+ lsl r2, r2, #6
+ str r0, [sp, #0x10]
+ ldr r0, [r5, r2]
+ add r3, r1, #0
+ str r0, [sp, #0x14]
+ add r0, r2, #4
+ ldr r0, [r5, r0]
+ str r0, [sp, #0x18]
+ add r0, r2, #0
+ add r0, #8
+ ldr r0, [r5, r0]
+ str r0, [sp, #0x1c]
+ add r0, r2, #0
+ add r0, #0xc
+ ldr r0, [r5, r0]
+ add r2, #0x30
+ str r0, [sp, #0x20]
+ str r1, [sp, #0x24]
+ add r0, r5, r2
+ add r2, r1, #0
+ str r1, [sp, #0x28]
+ bl FUN_02008AA4
+ mov r1, #1
+ mov r3, #0xb
+ str r1, [sp]
+ sub r0, r1, #2
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ lsl r3, r3, #6
+ ldr r2, [r5, r3]
+ str r2, [sp, #0x14]
+ add r2, r3, #4
+ ldr r2, [r5, r2]
+ str r2, [sp, #0x18]
+ add r2, r3, #0
+ add r2, #8
+ ldr r2, [r5, r2]
+ str r2, [sp, #0x1c]
+ add r2, r3, #0
+ add r2, #0xc
+ ldr r2, [r5, r2]
+ add r3, #0x54
+ str r2, [sp, #0x20]
+ str r0, [sp, #0x24]
+ str r0, [sp, #0x28]
+ add r0, r5, r3
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02008AA4
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #2
+ str r0, [sp, #0x2c]
+ mov r0, #0x2f
+ lsl r0, r0, #4
+ add r0, r5, r0
+ str r0, [sp, #0x30]
+ mov r0, #6
+ lsl r1, r1, #0x10
+ lsl r0, r0, #0x10
+ str r0, [sp, #0x38]
+ lsr r0, r1, #5
+ mov r7, #0
+ str r1, [sp, #0x34]
+ str r7, [sp, #0x3c]
+ str r0, [sp, #0x40]
+ str r0, [sp, #0x44]
+ str r0, [sp, #0x48]
+ add r0, sp, #0x2c
+ strh r7, [r0, #0x20]
+ mov r0, #1
+ str r0, [sp, #0x54]
+ mov r0, #0x1a
+ ldr r6, _0222F218 ; =0x02231220
+ str r7, [sp, #0x50]
+ str r0, [sp, #0x58]
+ add r4, r5, #0
+_0222F04C:
+ ldr r0, [r6]
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x34]
+ ldr r0, [r6, #4]
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x38]
+ add r0, sp, #0x2c
+ bl FUN_0201FE94
+ mov r1, #0xce
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add r0, r1, #0
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_020200BC
+ add r0, r4, #0
+ mov r1, #0xce
+ add r0, #0x88
+ lsl r1, r1, #2
+ ldr r0, [r0]
+ ldr r1, [r4, r1]
+ add r2, r7, #0
+ bl MOD70_0222F350
+ mov r0, #0xce
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x64
+ bl FUN_02020310
+ mov r0, #0xce
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ add r7, r7, #1
+ add r6, #8
+ add r4, r4, #4
+ cmp r7, #2
+ blt _0222F04C
+ ldr r6, _0222F218 ; =0x02231220
+ mov r7, #0
+ add r4, r5, #0
+_0222F0A8:
+ ldr r0, [r6]
+ add r0, #0x10
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x34]
+ ldr r0, [r6, #4]
+ sub r0, r0, #6
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x38]
+ add r0, sp, #0x2c
+ bl FUN_0201FE94
+ mov r1, #0x37
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ add r0, r1, #0
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_020200BC
+ mov r0, #0x37
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ add r1, r7, #5
+ bl FUN_02020130
+ mov r0, #0x37
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #5
+ bl FUN_02020310
+ mov r0, #0x37
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ add r7, r7, #1
+ add r6, #8
+ add r4, r4, #4
+ cmp r7, #0xc
+ blt _0222F0A8
+ ldr r6, _0222F218 ; =0x02231220
+ mov r7, #0
+ add r4, r5, #0
+_0222F102:
+ ldr r0, [r6]
+ add r0, #0x24
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x34]
+ ldr r0, [r6, #4]
+ add r0, #0x10
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x38]
+ mov r0, #0
+ str r0, [sp, #0x50]
+ add r0, sp, #0x2c
+ bl FUN_0201FE94
+ mov r1, #0x3a
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ add r0, r1, #0
+ ldr r0, [r4, r0]
+ mov r1, #3
+ bl FUN_02020310
+ mov r0, #0x3a
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ add r7, r7, #1
+ add r6, #8
+ add r4, r4, #4
+ cmp r7, #0xc
+ blt _0222F102
+ ldr r6, _0222F218 ; =0x02231220
+ mov r7, #0
+ add r4, r5, #0
+_0222F148:
+ ldr r0, [r6]
+ add r0, #0x2d
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x34]
+ ldr r0, [r6, #4]
+ add r0, #0x10
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x38]
+ mov r0, #0
+ str r0, [sp, #0x50]
+ add r0, sp, #0x2c
+ bl FUN_0201FE94
+ mov r1, #0x3d
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ add r0, r1, #0
+ ldr r0, [r4, r0]
+ mov r1, #3
+ bl FUN_02020310
+ mov r0, #0x3d
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ add r7, r7, #1
+ add r6, #8
+ add r4, r4, #4
+ cmp r7, #0xc
+ blt _0222F148
+ mov r0, #6
+ lsl r0, r0, #0x10
+ str r0, [sp, #0x34]
+ mov r0, #0x42
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x38]
+ add r0, sp, #0x2c
+ bl FUN_0201FE94
+ ldr r1, _0222F21C ; =0x00000418
+ str r0, [r5, r1]
+ ldr r0, [r5, r1]
+ mov r1, #1
+ bl FUN_020200BC
+ ldr r0, _0222F21C ; =0x00000418
+ mov r1, #0x14
+ ldr r0, [r5, r0]
+ bl FUN_02020130
+ ldr r0, _0222F21C ; =0x00000418
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_020200A0
+ mov r0, #0xc5
+ lsl r0, r0, #2
+ ldr r4, _0222F220 ; =0x022311D8
+ mov r6, #0
+ add r7, r5, r0
+_0222F1C4:
+ ldr r0, [r4]
+ str r7, [sp, #0x30]
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x34]
+ ldr r0, [r4, #4]
+ lsl r1, r0, #0xc
+ mov r0, #3
+ lsl r0, r0, #0x12
+ add r0, r1, r0
+ str r0, [sp, #0x38]
+ mov r0, #2
+ str r0, [sp, #0x54]
+ add r0, sp, #0x2c
+ bl FUN_0201FE94
+ mov r1, #1
+ lsl r1, r1, #0xa
+ str r0, [r5, r1]
+ add r0, r1, #0
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ mov r0, #1
+ lsl r0, r0, #0xa
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200BC
+ mov r0, #1
+ lsl r0, r0, #0xa
+ ldr r0, [r5, r0]
+ ldr r1, [r4, #8]
+ bl FUN_02020130
+ add r6, r6, #1
+ add r4, #0xc
+ add r5, r5, #4
+ cmp r6, #6
+ blt _0222F1C4
+ add sp, #0x5c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222F218: .word 0x02231220
+_0222F21C: .word 0x00000418
+_0222F220: .word 0x022311D8
+ thumb_func_end MOD70_0222EF90
+
+ thumb_func_start MOD70_0222F224
+MOD70_0222F224: ; 0x0222F224
+ push {r3, r4}
+ ldr r3, _0222F260 ; =0x021C48B8
+ mov r1, #0
+ ldr r3, [r3, #0x4c]
+ mov r4, #0x40
+ add r2, r1, #0
+ tst r4, r3
+ beq _0222F238
+ mov r2, #1
+ add r1, r1, #1
+_0222F238:
+ mov r4, #0x80
+ tst r4, r3
+ beq _0222F242
+ mov r2, #2
+ add r1, r1, #1
+_0222F242:
+ mov r4, #0x20
+ tst r4, r3
+ beq _0222F24C
+ mov r2, #3
+ add r1, r1, #1
+_0222F24C:
+ mov r4, #0x10
+ tst r3, r4
+ beq _0222F256
+ mov r2, #4
+ add r1, r1, #1
+_0222F256:
+ cmp r1, #0
+ beq _0222F25C
+ str r2, [r0]
+_0222F25C:
+ pop {r3, r4}
+ bx lr
+ .align 2, 0
+_0222F260: .word 0x021C48B8
+ thumb_func_end MOD70_0222F224
+
+ thumb_func_start MOD70_0222F264
+MOD70_0222F264: ; 0x0222F264
+ push {r4, r5, r6, lr}
+ add r4, r0, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ cmp r0, #6
+ bge _0222F2CA
+ ldr r0, _0222F2CC ; =0x022310AC
+ bl FUN_02020988
+ add r5, r0, #0
+ mov r0, #0
+ mvn r0, r0
+ cmp r5, r0
+ beq _0222F2CA
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ lsl r0, r0, #4
+ add r2, r4, r0
+ ldr r0, _0222F2D0 ; =0x00000695
+ ldrb r1, [r2, r0]
+ cmp r1, #0
+ bne _0222F2CA
+ sub r0, r0, #5
+ ldrh r0, [r2, r0]
+ ldr r1, _0222F2D4 ; =0x000001B9
+ cmp r0, r1
+ bne _0222F2AE
+ ldr r0, [r4, #4]
+ bl FUN_02029EF8
+ mov r1, #0
+ mov r2, #0x64
+ add r3, r1, #0
+ bl FUN_02005E90
+ b _0222F2B2
+_0222F2AE:
+ bl FUN_02005578
+_0222F2B2:
+ mov r0, #1
+ lsl r0, r0, #0xa
+ add r4, r4, r0
+ lsl r6, r5, #2
+ ldr r0, [r4, r6]
+ mov r1, #1
+ bl FUN_020200BC
+ ldr r0, [r4, r6]
+ add r1, r5, #4
+ bl FUN_02020130
+_0222F2CA:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0222F2CC: .word 0x022310AC
+_0222F2D0: .word 0x00000695
+_0222F2D4: .word 0x000001B9
+ thumb_func_end MOD70_0222F264
+
+ thumb_func_start MOD70_0222F2D8
+MOD70_0222F2D8: ; 0x0222F2D8
+ push {r3, lr}
+ ldrh r1, [r0]
+ add r1, #0x14
+ strh r1, [r0]
+ ldrh r2, [r0]
+ mov r1, #0x5a
+ lsl r1, r1, #2
+ cmp r2, r1
+ bls _0222F2EE
+ mov r1, #0
+ strh r1, [r0]
+_0222F2EE:
+ ldrh r0, [r0]
+ bl FUN_0201B970
+ mov r1, #0xa
+ mul r1, r0
+ asr r0, r1, #0xb
+ lsr r0, r0, #0x14
+ add r0, r1, r0
+ asr r0, r0, #0xc
+ add r0, #0xf
+ lsl r1, r0, #5
+ mov r0, #0x1d
+ orr r1, r0
+ add r0, sp, #0
+ strh r1, [r0]
+ add r0, sp, #0
+ mov r1, #0x3a
+ mov r2, #2
+ bl GX_LoadOBJPltt
+ pop {r3, pc}
+ thumb_func_end MOD70_0222F2D8
+
+ thumb_func_start MOD70_0222F318
+MOD70_0222F318: ; 0x0222F318
+ push {r3, r4, r5, r6}
+ mov r5, #0x18
+ mul r5, r0
+ ldr r6, _0222F34C ; =0x02231288
+ mov r0, #6
+ mov r4, #0
+ add r5, r6, r5
+ mul r0, r1
+ add r5, r5, r0
+ add r3, r4, #0
+ add r1, r5, #0
+_0222F32E:
+ ldrb r0, [r1]
+ lsl r0, r0, #4
+ ldrh r0, [r2, r0]
+ cmp r0, #0
+ beq _0222F33C
+ ldrb r4, [r5, r3]
+ b _0222F344
+_0222F33C:
+ add r3, r3, #1
+ add r1, r1, #1
+ cmp r3, #6
+ blt _0222F32E
+_0222F344:
+ add r0, r4, #0
+ pop {r3, r4, r5, r6}
+ bx lr
+ nop
+_0222F34C: .word 0x02231288
+ thumb_func_end MOD70_0222F318
+
+ thumb_func_start MOD70_0222F350
+MOD70_0222F350: ; 0x0222F350
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ add r6, r1, #0
+ add r4, r2, #0
+ cmp r5, #0xd
+ blt _0222F362
+ bl ErrorHandling
+_0222F362:
+ ldr r1, _0222F3C8 ; =0x02231220
+ lsl r0, r5, #3
+ ldr r1, [r1, r0]
+ lsl r1, r1, #0xc
+ str r1, [sp]
+ ldr r1, _0222F3CC ; =0x02231224
+ ldr r0, [r1, r0]
+ add r1, sp, #0
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ cmp r5, #0xc
+ bne _0222F394
+ add r0, r6, #0
+ bl FUN_02020044
+ mov r1, #0xc
+ add r2, r4, #0
+ mul r2, r1
+ ldr r1, _0222F3D0 ; =0x022310DC
+ add r0, r6, #0
+ ldr r1, [r1, r2]
+ bl FUN_02020130
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+_0222F394:
+ add r0, r6, #0
+ bl FUN_02020044
+ cmp r5, #6
+ bge _0222F3B2
+ mov r1, #0xc
+ add r2, r4, #0
+ mul r2, r1
+ ldr r1, _0222F3D4 ; =0x022310D4
+ add r0, r6, #0
+ ldr r1, [r1, r2]
+ bl FUN_02020130
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+_0222F3B2:
+ mov r1, #0xc
+ add r2, r4, #0
+ mul r2, r1
+ ldr r1, _0222F3D8 ; =0x022310D8
+ add r0, r6, #0
+ ldr r1, [r1, r2]
+ bl FUN_02020130
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ nop
+_0222F3C8: .word 0x02231220
+_0222F3CC: .word 0x02231224
+_0222F3D0: .word 0x022310DC
+_0222F3D4: .word 0x022310D4
+_0222F3D8: .word 0x022310D8
+ thumb_func_end MOD70_0222F350
+
+ thumb_func_start MOD70_0222F3DC
+MOD70_0222F3DC: ; 0x0222F3DC
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ str r2, [sp]
+ ldr r0, [r5]
+ add r4, r1, #0
+ ldr r2, [sp, #0x18]
+ sub r1, r0, #1
+ mov r7, #0
+ cmp r2, #0
+ bne _0222F41C
+ cmp r0, #0
+ beq _0222F416
+ ldr r0, [r4]
+ add r2, r3, #0
+ bl MOD70_0222F318
+ ldr r1, [sp]
+ ldr r2, [sp, #0x18]
+ add r6, r0, #0
+ bl MOD70_0222F350
+ ldr r0, [r4]
+ cmp r0, r6
+ beq _0222F416
+ ldr r0, _0222F428 ; =0x000005DC
+ bl FUN_020054C8
+ str r6, [r4]
+ mov r7, #1
+_0222F416:
+ mov r0, #0
+ str r0, [r5]
+ b _0222F424
+_0222F41C:
+ ldr r0, [r4]
+ ldr r1, [sp]
+ bl MOD70_0222F350
+_0222F424:
+ add r0, r7, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222F428: .word 0x000005DC
+ thumb_func_end MOD70_0222F3DC
+
+ thumb_func_start MOD70_0222F42C
+MOD70_0222F42C: ; 0x0222F42C
+ push {r3, lr}
+ add r0, sp, #0
+ strb r2, [r0]
+ add r0, r1, #0
+ add r1, sp, #0
+ mov r2, #1
+ bl FUN_02030ADC
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD70_0222F42C
+
+ thumb_func_start MOD70_0222F440
+MOD70_0222F440: ; 0x0222F440
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r0, _0222F470 ; =0x000036A0
+ add r4, r1, #0
+ ldr r1, [r5, r0]
+ add r6, r2, #0
+ cmp r6, r1
+ bne _0222F458
+ add r0, r0, #4
+ ldr r0, [r5, r0]
+ cmp r4, r0
+ beq _0222F46C
+_0222F458:
+ bl FUN_02031190
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD70_0222F42C
+ ldr r0, _0222F470 ; =0x000036A0
+ str r6, [r5, r0]
+ add r0, r0, #4
+ str r4, [r5, r0]
+_0222F46C:
+ pop {r4, r5, r6, pc}
+ nop
+_0222F470: .word 0x000036A0
+ thumb_func_end MOD70_0222F440
+
+ thumb_func_start MOD70_0222F474
+MOD70_0222F474: ; 0x0222F474
+ mov r2, #0x59
+ lsl r2, r2, #4
+ mul r2, r1
+ add r0, r0, r2
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD70_0222F474
+
+ thumb_func_start MOD70_0222F480
+MOD70_0222F480: ; 0x0222F480
+ push {r3, r4, r5, lr}
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ add r5, r1, #0
+ add r4, r2, #0
+ bl FUN_02030E7C
+ cmp r0, #0
+ beq _0222F4A6
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD70_0222F474
+ mov r2, #0x59
+ add r1, r0, #0
+ mov r0, #0x16
+ lsl r2, r2, #4
+ bl FUN_02030A78
+_0222F4A6:
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD70_0222F480
+
+ thumb_func_start MOD70_0222F4A8
+MOD70_0222F4A8: ; 0x0222F4A8
+ push {r3, lr}
+ bl FUN_0202A918
+ add r1, r0, #0
+ mov r0, #0x20
+ mov r2, #0xe
+ bl FUN_02030ADC
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD70_0222F4A8
+
+ thumb_func_start MOD70_0222F4BC
+MOD70_0222F4BC: ; 0x0222F4BC
+ push {r4, r5, r6, lr}
+ add r4, r2, #0
+ add r6, r0, #0
+ add r5, r1, #0
+ bl FUN_0202398C
+ add r1, r0, #0
+ add r0, r4, #0
+ bl StringCopy
+ add r0, r6, #0
+ bl FUN_020239BC
+ str r0, [r4, #0x10]
+ add r0, r6, #0
+ bl FUN_02023A70
+ strb r0, [r4, #0x14]
+ add r0, r6, #0
+ bl FUN_02023A68
+ strb r0, [r4, #0x15]
+ add r0, r6, #0
+ bl FUN_020239CC
+ strb r0, [r4, #0x16]
+ mov r0, #0
+ add r1, r4, #0
+_0222F4F4:
+ ldr r2, [r5, #0x10]
+ str r2, [r1, #0x18]
+ ldrb r3, [r5, #0x15]
+ add r2, r4, r0
+ add r2, #0x58
+ strb r3, [r2]
+ add r2, r4, r0
+ ldrb r3, [r5, #0x14]
+ add r2, #0x68
+ add r1, r1, #4
+ strb r3, [r2]
+ add r2, r4, r0
+ ldrb r3, [r5, #0x16]
+ add r2, #0x78
+ add r0, r0, #1
+ add r5, #0x88
+ strb r3, [r2]
+ cmp r0, #0x10
+ blt _0222F4F4
+ mov r0, #0x1c
+ add r1, r4, #0
+ mov r2, #0x88
+ bl FUN_02030A78
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD70_0222F4BC
+
+ thumb_func_start MOD70_0222F528
+MOD70_0222F528: ; 0x0222F528
+ ldr r3, _0222F534 ; =0x02030A79
+ mov r2, #0xfa
+ add r1, r0, #0
+ mov r0, #0x1d
+ lsl r2, r2, #2
+ bx r3
+ .align 2, 0
+_0222F534: .word 0x02030A79
+ thumb_func_end MOD70_0222F528
+
+ thumb_func_start MOD70_0222F538
+MOD70_0222F538: ; 0x0222F538
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x53
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl MOD70_0222F224
+ ldr r0, _0222F588 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #1
+ tst r0, r1
+ beq _0222F584
+ mov r0, #0x53
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _0222F584
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ cmp r0, #0xc
+ bne _0222F56C
+ ldr r1, _0222F58C ; =MOD70_0222F674
+ ldr r0, _0222F590 ; =0x00002214
+ str r1, [r4, r0]
+ b _0222F584
+_0222F56C:
+ cmp r0, #6
+ bge _0222F578
+ ldr r1, _0222F594 ; =MOD70_0222FDD8
+ ldr r0, _0222F590 ; =0x00002214
+ str r1, [r4, r0]
+ b _0222F584
+_0222F578:
+ blt _0222F584
+ cmp r0, #0xc
+ bge _0222F584
+ ldr r1, _0222F598 ; =MOD70_02230810
+ ldr r0, _0222F590 ; =0x00002214
+ str r1, [r4, r0]
+_0222F584:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_0222F588: .word 0x021C48B8
+_0222F58C: .word MOD70_0222F674
+_0222F590: .word 0x00002214
+_0222F594: .word MOD70_0222FDD8
+_0222F598: .word MOD70_02230810
+ thumb_func_end MOD70_0222F538
+
+ thumb_func_start MOD70_0222F59C
+MOD70_0222F59C: ; 0x0222F59C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bne _0222F5CC
+ ldr r0, _0222F660 ; =0x00002218
+ ldr r0, [r5, r0]
+ str r0, [r5, #0xc]
+ ldr r0, [r5, #8]
+ ldr r0, [r0, #8]
+ bl FUN_0206B9AC
+ strb r0, [r5, #0x1f]
+ mov r0, #0
+ str r0, [r5, #0x34]
+ bl FUN_02031190
+ bl FUN_0202DFA4
+ add r1, r0, #0
+ add r0, r5, #0
+ add r0, #0xc
+ bl FUN_0207C2A4
+ b _0222F606
+_0222F5CC:
+ ldr r0, _0222F664 ; =0x0000221C
+ ldr r1, [r5, r0]
+ str r1, [r5, #0xc]
+ ldr r0, [r5, r0]
+ bl FUN_0206B9AC
+ strb r0, [r5, #0x1f]
+ bl FUN_02031190
+ mov r2, #1
+ ldr r1, _0222F668 ; =0x00002E14
+ eor r2, r0
+ mov r0, #0xfb
+ lsl r0, r0, #2
+ add r1, r5, r1
+ mul r0, r2
+ add r0, r1, r0
+ str r0, [r5, #0x34]
+ bl FUN_02031190
+ mov r1, #1
+ eor r0, r1
+ bl FUN_0202DFA4
+ add r1, r0, #0
+ add r0, r5, #0
+ add r0, #0xc
+ bl FUN_0207C2A4
+_0222F606:
+ mov r0, #1
+ strb r0, [r5, #0x1d]
+ add r0, r5, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ mov r1, #6
+ bl _s32_div_f
+ add r0, r5, #0
+ add r0, #0x20
+ strb r1, [r0]
+ mov r0, #1
+ strb r0, [r5, #0x1e]
+ mov r0, #0
+ strh r0, [r5, #0x24]
+ ldr r0, [r5, #8]
+ ldr r0, [r0, #0x10]
+ bl FUN_02079C70
+ str r0, [r5, #0x38]
+ ldr r0, [r5, #8]
+ ldr r0, [r0, #0x30]
+ str r0, [r5, #0x28]
+ ldr r0, [r5, #8]
+ ldr r0, [r0, #0x18]
+ str r0, [r5, #0x10]
+ ldr r0, [r5, #8]
+ ldr r0, [r0, #0x10]
+ bl FUN_0202A918
+ str r0, [r5, #0x2c]
+ add r0, r5, #0
+ ldr r1, _0222F66C ; =0x022313C0
+ add r0, #0xc
+ bl FUN_0207B000
+ add r1, r5, #0
+ ldr r0, _0222F670 ; =0x020FA6E8
+ add r1, #0xc
+ mov r2, #0x1a
+ bl FUN_02006234
+ str r0, [r5, #0x40]
+ str r4, [r5, #0x3c]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0222F660: .word 0x00002218
+_0222F664: .word 0x0000221C
+_0222F668: .word 0x00002E14
+_0222F66C: .word 0x022313C0
+_0222F670: .word 0x020FA6E8
+ thumb_func_end MOD70_0222F59C
+
+ thumb_func_start MOD70_0222F674
+MOD70_0222F674: ; 0x0222F674
+ push {r4, lr}
+ sub sp, #0x10
+ mov r1, #0
+ add r4, r0, #0
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ str r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02018540
+ mov r3, #0x5e
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #0xc
+ str r0, [sp]
+ ldr r0, _0222F6BC ; =0x000005A8
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0x19
+ mov r2, #1
+ bl MOD70_02230F40
+ ldr r1, _0222F6C0 ; =MOD70_0222F6C8
+ ldr r0, _0222F6C4 ; =0x00002214
+ str r1, [r4, r0]
+ mov r0, #0
+ add sp, #0x10
+ pop {r4, pc}
+ nop
+_0222F6BC: .word 0x000005A8
+_0222F6C0: .word MOD70_0222F6C8
+_0222F6C4: .word 0x00002214
+ thumb_func_end MOD70_0222F674
+
+ thumb_func_start MOD70_0222F6C8
+MOD70_0222F6C8: ; 0x0222F6C8
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ mov r0, #0x5d
+ ldr r2, _0222F778 ; =0x00000658
+ lsl r0, r0, #2
+ add r1, r4, r2
+ add r2, #0xc
+ ldr r0, [r4, r0]
+ add r2, r4, r2
+ bl MOD70_02230FB0
+ cmp r0, #0
+ beq _0222F6EE
+ mov r1, #1
+ mvn r1, r1
+ cmp r0, r1
+ beq _0222F738
+ b _0222F772
+_0222F6EE:
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ str r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02018540
+ mov r3, #0x5e
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #0xc
+ str r0, [sp]
+ ldr r0, _0222F77C ; =0x000005A8
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0x1c
+ mov r2, #1
+ bl MOD70_02230F40
+ add r0, r4, #0
+ mov r1, #0x18
+ mov r2, #1
+ bl MOD70_0222F440
+ ldr r1, _0222F780 ; =MOD70_0222FD9C
+ ldr r0, _0222F784 ; =0x00002214
+ str r1, [r4, r0]
+ mov r0, #0
+ str r0, [r4, #0x5c]
+ b _0222F772
+_0222F738:
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ str r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02018540
+ mov r3, #0x5e
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #0xc
+ str r0, [sp]
+ ldr r0, _0222F788 ; =0x00000588
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0xf
+ mov r2, #1
+ bl MOD70_02230F40
+ ldr r1, _0222F78C ; =MOD70_0222F538
+ ldr r0, _0222F784 ; =0x00002214
+ str r1, [r4, r0]
+_0222F772:
+ mov r0, #0
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_0222F778: .word 0x00000658
+_0222F77C: .word 0x000005A8
+_0222F780: .word MOD70_0222FD9C
+_0222F784: .word 0x00002214
+_0222F788: .word 0x00000588
+_0222F78C: .word MOD70_0222F538
+ thumb_func_end MOD70_0222F6C8
+
+ thumb_func_start MOD70_0222F790
+MOD70_0222F790: ; 0x0222F790
+ push {r4, lr}
+ sub sp, #0x10
+ mov r1, #0
+ add r4, r0, #0
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ str r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02018540
+ mov r3, #0x5e
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #0xc
+ str r0, [sp]
+ ldr r0, _0222F7D8 ; =0x000005A8
+ ldr r1, [r4, #0x68]
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r2, #1
+ bl MOD70_02230F40
+ ldr r1, _0222F7DC ; =MOD70_0222F7E4
+ ldr r0, _0222F7E0 ; =0x00002214
+ str r1, [r4, r0]
+ mov r0, #0
+ add sp, #0x10
+ pop {r4, pc}
+ nop
+_0222F7D8: .word 0x000005A8
+_0222F7DC: .word MOD70_0222F7E4
+_0222F7E0: .word 0x00002214
+ thumb_func_end MOD70_0222F790
+
+ thumb_func_start MOD70_0222F7E4
+MOD70_0222F7E4: ; 0x0222F7E4
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ ldr r0, _0222F83C ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #1
+ tst r0, r1
+ beq _0222F834
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ str r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02018540
+ mov r3, #0x5e
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #0xc
+ str r0, [sp]
+ ldr r0, _0222F840 ; =0x00000588
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0xf
+ mov r2, #1
+ bl MOD70_02230F40
+ ldr r1, _0222F844 ; =MOD70_0222F538
+ ldr r0, _0222F848 ; =0x00002214
+ str r1, [r4, r0]
+ add r0, r4, #0
+ bl MOD70_02230390
+_0222F834:
+ mov r0, #0
+ add sp, #0x10
+ pop {r4, pc}
+ nop
+_0222F83C: .word 0x021C48B8
+_0222F840: .word 0x00000588
+_0222F844: .word MOD70_0222F538
+_0222F848: .word 0x00002214
+ thumb_func_end MOD70_0222F7E4
+
+ thumb_func_start MOD70_0222F84C
+MOD70_0222F84C: ; 0x0222F84C
+ push {r3, r4, lr}
+ sub sp, #4
+ ldr r4, _0222F86C ; =0x00003674
+ add r3, r0, #0
+ ldr r0, [r3, r4]
+ add r4, r4, #4
+ str r0, [sp]
+ ldr r0, _0222F870 ; =0x000005A8
+ mov r2, #1
+ add r0, r3, r0
+ ldr r3, [r3, r4]
+ bl MOD70_02230F40
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_0222F86C: .word 0x00003674
+_0222F870: .word 0x000005A8
+ thumb_func_end MOD70_0222F84C
+
+ thumb_func_start MOD70_0222F874
+MOD70_0222F874: ; 0x0222F874
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x5d
+ ldr r2, _0222F8B4 ; =0x00000658
+ lsl r0, r0, #2
+ add r1, r4, r2
+ add r2, #0xc
+ ldr r0, [r4, r0]
+ add r2, r4, r2
+ bl MOD70_02230FB0
+ cmp r0, #0
+ beq _0222F898
+ mov r1, #1
+ mvn r1, r1
+ cmp r0, r1
+ beq _0222F8A0
+ b _0222F8AE
+_0222F898:
+ ldr r1, _0222F8B8 ; =MOD70_0222FBF0
+ ldr r0, _0222F8BC ; =0x00002214
+ str r1, [r4, r0]
+ b _0222F8AE
+_0222F8A0:
+ add r0, r4, #0
+ mov r1, #0x22
+ bl MOD70_0222F84C
+ ldr r1, _0222F8C0 ; =MOD70_0222FADC
+ ldr r0, _0222F8BC ; =0x00002214
+ str r1, [r4, r0]
+_0222F8AE:
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_0222F8B4: .word 0x00000658
+_0222F8B8: .word MOD70_0222FBF0
+_0222F8BC: .word 0x00002214
+_0222F8C0: .word MOD70_0222FADC
+ thumb_func_end MOD70_0222F874
+
+ thumb_func_start MOD70_0222F8C4
+MOD70_0222F8C4: ; 0x0222F8C4
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ mov r0, #0x5d
+ ldr r2, _0222F938 ; =0x00000658
+ lsl r0, r0, #2
+ add r1, r4, r2
+ add r2, #0xc
+ ldr r0, [r4, r0]
+ add r2, r4, r2
+ bl MOD70_02230FB0
+ cmp r0, #0
+ beq _0222F8EA
+ mov r1, #1
+ mvn r1, r1
+ cmp r0, r1
+ beq _0222F910
+ b _0222F932
+_0222F8EA:
+ ldr r1, _0222F93C ; =0x00003694
+ ldr r0, [r4, r1]
+ sub r1, #0x24
+ ldr r1, [r4, r1]
+ bl FUN_02028468
+ mov r0, #0
+ str r0, [sp]
+ ldr r1, _0222F940 ; =0x0000366C
+ ldr r0, [r4, #4]
+ ldr r1, [r4, r1]
+ mov r2, #0x1f
+ mov r3, #0x1a
+ bl FUN_02033A70
+ ldr r1, _0222F944 ; =MOD70_0222FBF0
+ ldr r0, _0222F948 ; =0x00002214
+ str r1, [r4, r0]
+ b _0222F932
+_0222F910:
+ ldr r0, _0222F940 ; =0x0000366C
+ ldr r0, [r4, r0]
+ bl FUN_0202DFA4
+ add r2, r0, #0
+ ldr r0, _0222F94C ; =0x00003674
+ mov r1, #0
+ ldr r0, [r4, r0]
+ bl FUN_0200ABC0
+ add r0, r4, #0
+ mov r1, #0x23
+ bl MOD70_0222F84C
+ ldr r1, _0222F950 ; =MOD70_0222F874
+ ldr r0, _0222F948 ; =0x00002214
+ str r1, [r4, r0]
+_0222F932:
+ mov r0, #0
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_0222F938: .word 0x00000658
+_0222F93C: .word 0x00003694
+_0222F940: .word 0x0000366C
+_0222F944: .word MOD70_0222FBF0
+_0222F948: .word 0x00002214
+_0222F94C: .word 0x00003674
+_0222F950: .word MOD70_0222F874
+ thumb_func_end MOD70_0222F8C4
+
+ thumb_func_start MOD70_0222F954
+MOD70_0222F954: ; 0x0222F954
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r0, #0xda
+ lsl r0, r0, #6
+ ldr r0, [r5, r0]
+ bl FUN_02001204
+ add r4, r0, #0
+ mov r0, #1
+ mvn r0, r0
+ cmp r4, r0
+ beq _0222F976
+ add r0, r0, #1
+ cmp r4, r0
+ bne _0222F9A0
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+_0222F976:
+ ldr r0, _0222FA10 ; =0x000005DC
+ bl FUN_020054C8
+ ldr r0, _0222FA14 ; =0x0000366C
+ ldr r0, [r5, r0]
+ bl FUN_0202DFA4
+ add r2, r0, #0
+ ldr r0, _0222FA18 ; =0x00003674
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_0200ABC0
+ add r0, r5, #0
+ mov r1, #0x23
+ bl MOD70_0222F84C
+ ldr r1, _0222FA1C ; =MOD70_0222F874
+ ldr r0, _0222FA20 ; =0x00002214
+ str r1, [r5, r0]
+ b _0222F9E4
+_0222F9A0:
+ ldr r0, _0222FA10 ; =0x000005DC
+ bl FUN_020054C8
+ ldr r0, _0222FA24 ; =0x00003670
+ str r4, [r5, r0]
+ mov r0, #0x1a
+ bl FUN_02023928
+ add r6, r0, #0
+ ldr r0, _0222FA28 ; =0x00003694
+ add r1, r4, #0
+ ldr r0, [r5, r0]
+ bl FUN_020283A4
+ add r1, r0, #0
+ add r0, r6, #0
+ bl FUN_0202395C
+ ldr r0, _0222FA18 ; =0x00003674
+ mov r1, #0
+ ldr r0, [r5, r0]
+ add r2, r6, #0
+ bl FUN_0200ABC0
+ add r0, r6, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ mov r1, #0x24
+ bl MOD70_0222F84C
+ ldr r1, _0222FA2C ; =MOD70_0222F8C4
+ ldr r0, _0222FA20 ; =0x00002214
+ str r1, [r5, r0]
+_0222F9E4:
+ ldr r0, _0222FA30 ; =0x00003684
+ mov r1, #0
+ add r0, r5, r0
+ bl FUN_0200CCF8
+ ldr r0, _0222FA30 ; =0x00003684
+ add r0, r5, r0
+ bl FUN_02019178
+ mov r0, #0xda
+ lsl r0, r0, #6
+ mov r1, #0
+ ldr r0, [r5, r0]
+ add r2, r1, #0
+ bl FUN_02001300
+ ldr r0, _0222FA34 ; =0x0000367C
+ ldr r0, [r5, r0]
+ bl FUN_02012870
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0222FA10: .word 0x000005DC
+_0222FA14: .word 0x0000366C
+_0222FA18: .word 0x00003674
+_0222FA1C: .word MOD70_0222F874
+_0222FA20: .word 0x00002214
+_0222FA24: .word 0x00003670
+_0222FA28: .word 0x00003694
+_0222FA2C: .word MOD70_0222F8C4
+_0222FA30: .word 0x00003684
+_0222FA34: .word 0x0000367C
+ thumb_func_end MOD70_0222F954
+
+ thumb_func_start MOD70_0222FA38
+MOD70_0222FA38: ; 0x0222FA38
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, _0222FACC ; =0x00003694
+ ldr r0, [r5, r0]
+ bl FUN_02028448
+ str r0, [sp]
+ add r0, r0, #1
+ mov r1, #0x1a
+ bl FUN_02012838
+ ldr r1, _0222FAD0 ; =0x0000367C
+ str r0, [r5, r1]
+ mov r0, #0x64
+ mov r1, #0x1a
+ bl FUN_020219F4
+ ldr r7, _0222FACC ; =0x00003694
+ add r6, r0, #0
+ mov r4, #0
+_0222FA60:
+ ldr r0, [r5, r7]
+ add r1, r4, #0
+ bl FUN_0202842C
+ cmp r0, #0
+ beq _0222FA8A
+ ldr r0, _0222FACC ; =0x00003694
+ add r1, r4, #0
+ ldr r0, [r5, r0]
+ bl FUN_020283A4
+ add r1, r0, #0
+ add r0, r6, #0
+ bl FUN_02021E28
+ ldr r0, _0222FAD0 ; =0x0000367C
+ add r1, r6, #0
+ ldr r0, [r5, r0]
+ add r2, r4, #0
+ bl FUN_020128A0
+_0222FA8A:
+ add r4, r4, #1
+ cmp r4, #0x20
+ blt _0222FA60
+ ldr r1, _0222FAD0 ; =0x0000367C
+ mov r2, #0xb
+ ldr r0, [r5, r1]
+ sub r1, r1, #4
+ add r3, r2, #0
+ ldr r1, [r5, r1]
+ sub r3, #0xd
+ bl FUN_02012880
+ add r0, r6, #0
+ bl FUN_02021A20
+ ldr r2, _0222FAD0 ; =0x0000367C
+ mov r3, #0x5d
+ lsl r3, r3, #2
+ ldr r0, [r5, r2]
+ add r2, #8
+ ldr r1, [sp]
+ ldr r3, [r5, r3]
+ add r2, r5, r2
+ bl MOD70_02231018
+ mov r1, #0xda
+ lsl r1, r1, #6
+ str r0, [r5, r1]
+ ldr r1, _0222FAD4 ; =MOD70_0222F954
+ ldr r0, _0222FAD8 ; =0x00002214
+ str r1, [r5, r0]
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222FACC: .word 0x00003694
+_0222FAD0: .word 0x0000367C
+_0222FAD4: .word MOD70_0222F954
+_0222FAD8: .word 0x00002214
+ thumb_func_end MOD70_0222FA38
+
+ thumb_func_start MOD70_0222FADC
+MOD70_0222FADC: ; 0x0222FADC
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x5d
+ ldr r2, _0222FB30 ; =0x00000658
+ lsl r0, r0, #2
+ add r1, r4, r2
+ add r2, #0xc
+ ldr r0, [r4, r0]
+ add r2, r4, r2
+ bl MOD70_02230FB0
+ cmp r0, #0
+ beq _0222FB00
+ mov r1, #1
+ mvn r1, r1
+ cmp r0, r1
+ beq _0222FB08
+ b _0222FB2A
+_0222FB00:
+ ldr r1, _0222FB34 ; =MOD70_0222FA38
+ ldr r0, _0222FB38 ; =0x00002214
+ str r1, [r4, r0]
+ b _0222FB2A
+_0222FB08:
+ ldr r0, _0222FB3C ; =0x0000366C
+ ldr r0, [r4, r0]
+ bl FUN_0202DFA4
+ add r2, r0, #0
+ ldr r0, _0222FB40 ; =0x00003674
+ mov r1, #0
+ ldr r0, [r4, r0]
+ bl FUN_0200ABC0
+ add r0, r4, #0
+ mov r1, #0x23
+ bl MOD70_0222F84C
+ ldr r1, _0222FB44 ; =MOD70_0222F874
+ ldr r0, _0222FB38 ; =0x00002214
+ str r1, [r4, r0]
+_0222FB2A:
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_0222FB30: .word 0x00000658
+_0222FB34: .word MOD70_0222FA38
+_0222FB38: .word 0x00002214
+_0222FB3C: .word 0x0000366C
+_0222FB40: .word 0x00003674
+_0222FB44: .word MOD70_0222F874
+ thumb_func_end MOD70_0222FADC
+
+ thumb_func_start MOD70_0222FB48
+MOD70_0222FB48: ; 0x0222FB48
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r5, r0, #0
+ mov r0, #0x5d
+ ldr r2, _0222FBC4 ; =0x00000658
+ lsl r0, r0, #2
+ add r1, r5, r2
+ add r2, #0xc
+ ldr r0, [r5, r0]
+ add r2, r5, r2
+ bl MOD70_02230FB0
+ cmp r0, #0
+ beq _0222FB6E
+ mov r1, #1
+ mvn r1, r1
+ cmp r0, r1
+ beq _0222FBB6
+ b _0222FBBC
+_0222FB6E:
+ ldr r1, _0222FBC8 ; =MOD70_0222FBF0
+ ldr r0, _0222FBCC ; =0x00002214
+ ldr r6, _0222FBD0 ; =0x00003694
+ str r1, [r5, r0]
+ mov r4, #0
+_0222FB78:
+ ldr r0, [r5, r6]
+ add r1, r4, #0
+ bl FUN_0202842C
+ cmp r0, #0
+ bne _0222FB98
+ mov r0, #0
+ str r0, [sp]
+ ldr r1, _0222FBD4 ; =0x0000366C
+ ldr r0, [r5, #4]
+ ldr r1, [r5, r1]
+ add r2, r4, #0
+ mov r3, #0x1a
+ bl FUN_02033A70
+ b _0222FB9E
+_0222FB98:
+ add r4, r4, #1
+ cmp r4, #0x20
+ blt _0222FB78
+_0222FB9E:
+ cmp r4, #0x20
+ bne _0222FBBC
+ add r0, r5, #0
+ mov r1, #0x22
+ bl MOD70_0222F84C
+ ldr r1, _0222FBD8 ; =MOD70_0222FADC
+ ldr r0, _0222FBCC ; =0x00002214
+ add sp, #4
+ str r1, [r5, r0]
+ mov r0, #0
+ pop {r3, r4, r5, r6, pc}
+_0222FBB6:
+ ldr r1, _0222FBC8 ; =MOD70_0222FBF0
+ ldr r0, _0222FBCC ; =0x00002214
+ str r1, [r5, r0]
+_0222FBBC:
+ mov r0, #0
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ nop
+_0222FBC4: .word 0x00000658
+_0222FBC8: .word MOD70_0222FBF0
+_0222FBCC: .word 0x00002214
+_0222FBD0: .word 0x00003694
+_0222FBD4: .word 0x0000366C
+_0222FBD8: .word MOD70_0222FADC
+ thumb_func_end MOD70_0222FB48
+
+ thumb_func_start MOD70_0222FBDC
+MOD70_0222FBDC: ; 0x0222FBDC
+ push {r3, lr}
+ mov r0, #0x13
+ bl FUN_020315D8
+ cmp r0, #0
+ beq _0222FBEC
+ mov r0, #2
+ pop {r3, pc}
+_0222FBEC:
+ mov r0, #0
+ pop {r3, pc}
+ thumb_func_end MOD70_0222FBDC
+
+ thumb_func_start MOD70_0222FBF0
+MOD70_0222FBF0: ; 0x0222FBF0
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ mov r1, #0
+ ldr r0, _0222FCE4 ; =0x0000366C
+ mvn r1, r1
+ str r1, [r6, r0]
+ mov r4, #0
+ bl FUN_02030F20
+ cmp r0, #0
+ ble _0222FC2C
+ ldr r7, _0222FCE8 ; =0x000035EC
+ add r5, r6, #0
+_0222FC0A:
+ ldr r0, [r5, r7]
+ cmp r0, #2
+ bne _0222FC20
+ ldr r0, _0222FCE4 ; =0x0000366C
+ lsl r1, r4, #2
+ str r4, [r6, r0]
+ mov r2, #0
+ add r1, r6, r1
+ sub r0, #0x80
+ str r2, [r1, r0]
+ b _0222FC2C
+_0222FC20:
+ add r5, r5, #4
+ add r4, r4, #1
+ bl FUN_02030F20
+ cmp r4, r0
+ blt _0222FC0A
+_0222FC2C:
+ ldr r0, _0222FCE4 ; =0x0000366C
+ mov r1, #0
+ ldr r2, [r6, r0]
+ mvn r1, r1
+ cmp r2, r1
+ bne _0222FC70
+ add r0, #0xc
+ ldr r0, [r6, r0]
+ bl FUN_0200A8B8
+ ldr r0, _0222FCEC ; =0x00003674
+ ldr r0, [r6, r0]
+ bl FUN_0200AB18
+ mov r0, #0x13
+ bl FUN_02031588
+ mov r3, #0x5e
+ lsl r3, r3, #2
+ ldr r0, [r6, r3]
+ add r3, #0xc
+ str r0, [sp]
+ ldr r0, _0222FCF0 ; =0x000005A8
+ ldr r3, [r6, r3]
+ add r0, r6, r0
+ mov r1, #0x1c
+ mov r2, #1
+ bl MOD70_02230F40
+ ldr r1, _0222FCF4 ; =MOD70_0222FBDC
+ ldr r0, _0222FCF8 ; =0x00002214
+ str r1, [r6, r0]
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0222FC70:
+ ldr r0, [r6, #4]
+ bl FUN_0206F158
+ ldr r1, _0222FCFC ; =0x000001B5
+ mov r2, #1
+ mov r3, #0x1a
+ bl FUN_0206EE50
+ cmp r0, #1
+ bne _0222FCAA
+ ldr r0, _0222FCE4 ; =0x0000366C
+ ldr r0, [r6, r0]
+ bl FUN_0202DFA4
+ add r2, r0, #0
+ ldr r0, _0222FCEC ; =0x00003674
+ mov r1, #0
+ ldr r0, [r6, r0]
+ bl FUN_0200ABC0
+ add r0, r6, #0
+ mov r1, #0x21
+ bl MOD70_0222F84C
+ ldr r1, _0222FD00 ; =MOD70_0222FB48
+ ldr r0, _0222FCF8 ; =0x00002214
+ str r1, [r6, r0]
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0222FCAA:
+ ldr r0, [r6, #4]
+ bl FUN_020286EC
+ add r5, r0, #0
+ mov r4, #0
+_0222FCB4:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl FUN_0202842C
+ cmp r0, #0
+ bne _0222FCD4
+ mov r0, #0
+ str r0, [sp]
+ ldr r1, _0222FCE4 ; =0x0000366C
+ ldr r0, [r6, #4]
+ ldr r1, [r6, r1]
+ add r2, r4, #0
+ mov r3, #0x1a
+ bl FUN_02033A70
+ b _0222FCDA
+_0222FCD4:
+ add r4, r4, #1
+ cmp r4, #0x20
+ blt _0222FCB4
+_0222FCDA:
+ ldr r1, _0222FD04 ; =MOD70_0222FBF0
+ ldr r0, _0222FCF8 ; =0x00002214
+ str r1, [r6, r0]
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222FCE4: .word 0x0000366C
+_0222FCE8: .word 0x000035EC
+_0222FCEC: .word 0x00003674
+_0222FCF0: .word 0x000005A8
+_0222FCF4: .word MOD70_0222FBDC
+_0222FCF8: .word 0x00002214
+_0222FCFC: .word 0x000001B5
+_0222FD00: .word MOD70_0222FB48
+_0222FD04: .word MOD70_0222FBF0
+ thumb_func_end MOD70_0222FBF0
+
+ thumb_func_start MOD70_0222FD08
+MOD70_0222FD08: ; 0x0222FD08
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ ldr r1, _0222FD78 ; =0x000035EC
+ ldr r0, [r4, #4]
+ add r1, r4, r1
+ mov r2, #0x1a
+ bl FUN_020339B4
+ cmp r0, #0
+ bne _0222FD48
+ mov r0, #0x13
+ bl FUN_02031588
+ mov r3, #0x5e
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #0xc
+ str r0, [sp]
+ ldr r0, _0222FD7C ; =0x000005A8
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0x1c
+ mov r2, #1
+ bl MOD70_02230F40
+ ldr r1, _0222FD80 ; =MOD70_0222FBDC
+ ldr r0, _0222FD84 ; =0x00002214
+ add sp, #4
+ str r1, [r4, r0]
+ mov r0, #0
+ pop {r3, r4, pc}
+_0222FD48:
+ mov r0, #0x1a
+ bl FUN_0200AA80
+ ldr r1, _0222FD88 ; =0x00003674
+ ldr r2, _0222FD8C ; =0x00000251
+ str r0, [r4, r1]
+ mov r1, #0x1a
+ mov r0, #0
+ add r3, r1, #0
+ bl FUN_0200A86C
+ ldr r1, _0222FD90 ; =0x00003678
+ str r0, [r4, r1]
+ ldr r0, [r4, #4]
+ bl FUN_020286EC
+ ldr r1, _0222FD94 ; =0x00003694
+ str r0, [r4, r1]
+ ldr r1, _0222FD98 ; =MOD70_0222FBF0
+ ldr r0, _0222FD84 ; =0x00002214
+ str r1, [r4, r0]
+ mov r0, #0
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_0222FD78: .word 0x000035EC
+_0222FD7C: .word 0x000005A8
+_0222FD80: .word MOD70_0222FBDC
+_0222FD84: .word 0x00002214
+_0222FD88: .word 0x00003674
+_0222FD8C: .word 0x00000251
+_0222FD90: .word 0x00003678
+_0222FD94: .word 0x00003694
+_0222FD98: .word MOD70_0222FBF0
+ thumb_func_end MOD70_0222FD08
+
+ thumb_func_start MOD70_0222FD9C
+MOD70_0222FD9C: ; 0x0222FD9C
+ ldr r2, [r0, #0x60]
+ cmp r2, #0
+ beq _0222FDC8
+ ldr r1, [r0, #0x64]
+ cmp r1, #0
+ beq _0222FDC8
+ cmp r2, #1
+ bne _0222FDB8
+ cmp r1, #1
+ bne _0222FDB8
+ ldr r2, _0222FDCC ; =MOD70_0222FD08
+ ldr r1, _0222FDD0 ; =0x00002214
+ str r2, [r0, r1]
+ b _0222FDBE
+_0222FDB8:
+ ldr r2, _0222FDD4 ; =MOD70_0222F790
+ ldr r1, _0222FDD0 ; =0x00002214
+ str r2, [r0, r1]
+_0222FDBE:
+ mov r1, #0
+ str r1, [r0, #0x60]
+ str r1, [r0, #0x64]
+ mov r1, #0x1d
+ str r1, [r0, #0x68]
+_0222FDC8:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+_0222FDCC: .word MOD70_0222FD08
+_0222FDD0: .word 0x00002214
+_0222FDD4: .word MOD70_0222F790
+ thumb_func_end MOD70_0222FD9C
+
+ thumb_func_start MOD70_0222FDD8
+MOD70_0222FDD8: ; 0x0222FDD8
+ push {r3, r4, lr}
+ sub sp, #0x1c
+ add r4, r0, #0
+ mov r0, #0
+ add r1, sp, #0x10
+ strb r0, [r1, #8]
+ mov r0, #1
+ strb r0, [r1, #9]
+ mov r0, #3
+ strb r0, [r1, #0xa]
+ ldrb r2, [r1, #0xb]
+ mov r0, #0xf
+ bic r2, r0
+ strb r2, [r1, #0xb]
+ ldrb r2, [r1, #0xb]
+ mov r0, #0x30
+ bic r2, r0
+ strb r2, [r1, #0xb]
+ ldrb r2, [r1, #0xb]
+ mov r0, #0xc0
+ bic r2, r0
+ strb r2, [r1, #0xb]
+ ldr r0, _0222FED0 ; =0x00002218
+ add r1, r4, #0
+ add r1, #0x88
+ ldr r0, [r4, r0]
+ ldr r1, [r1]
+ bl FUN_0206B9B0
+ bl FUN_020690E4
+ add r2, r0, #0
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_0200ACF8
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ str r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02018540
+ mov r3, #0x5f
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #8
+ str r0, [sp]
+ ldr r0, _0222FED4 ; =0x00000598
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0x10
+ mov r2, #1
+ bl MOD70_02230F40
+ mov r0, #3
+ mov r1, #0x1a
+ bl FUN_02012838
+ ldr r1, _0222FED8 ; =0x0000065C
+ mov r2, #0x11
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ mov r1, #0x61
+ lsl r1, r1, #2
+ ldr r1, [r4, r1]
+ mov r3, #0
+ bl FUN_02012880
+ ldr r0, _0222FED8 ; =0x0000065C
+ mov r1, #0x61
+ lsl r1, r1, #2
+ ldr r0, [r4, r0]
+ ldr r1, [r4, r1]
+ mov r2, #0x12
+ mov r3, #1
+ bl FUN_02012880
+ ldr r0, _0222FED8 ; =0x0000065C
+ mov r1, #0x61
+ lsl r1, r1, #2
+ ldr r0, [r4, r0]
+ ldr r1, [r4, r1]
+ mov r2, #0x13
+ mov r3, #2
+ bl FUN_02012880
+ ldr r0, _0222FED8 ; =0x0000065C
+ ldr r1, [r4, r0]
+ str r1, [sp, #0x10]
+ sub r0, #0xa4
+ add r0, r4, r0
+ str r0, [sp, #0x14]
+ bl MOD70_02231004
+ mov r0, #0x1a
+ str r0, [sp]
+ mov r0, #2
+ mov r2, #0
+ str r0, [sp, #4]
+ add r0, sp, #0x10
+ mov r1, #8
+ add r3, r2, #0
+ bl FUN_02001C14
+ mov r1, #0x66
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ ldr r1, _0222FEDC ; =MOD70_0222FEE4
+ ldr r0, _0222FEE0 ; =0x00002214
+ str r1, [r4, r0]
+ mov r0, #0
+ add sp, #0x1c
+ pop {r3, r4, pc}
+ nop
+_0222FED0: .word 0x00002218
+_0222FED4: .word 0x00000598
+_0222FED8: .word 0x0000065C
+_0222FEDC: .word MOD70_0222FEE4
+_0222FEE0: .word 0x00002214
+ thumb_func_end MOD70_0222FDD8
+
+ thumb_func_start MOD70_0222FEE4
+MOD70_0222FEE4: ; 0x0222FEE4
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ mov r0, #0x66
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_02001C78
+ cmp r0, #2
+ bhi _0222FF06
+ cmp r0, #0
+ beq _0222FF10
+ cmp r0, #1
+ beq _0222FF64
+ cmp r0, #2
+ beq _0222FFB4
+ b _02230002
+_0222FF06:
+ mov r1, #1
+ mvn r1, r1
+ cmp r0, r1
+ beq _0222FFB4
+ b _02230002
+_0222FF10:
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ str r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02018540
+ mov r3, #0x5e
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #0xc
+ str r0, [sp]
+ ldr r0, _02230008 ; =0x00000588
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0xf
+ mov r2, #1
+ bl MOD70_02230F40
+ mov r0, #0x66
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_02001C5C
+ ldr r0, _0223000C ; =0x0000065C
+ ldr r0, [r4, r0]
+ bl FUN_02012870
+ ldr r1, _02230010 ; =MOD70_0222F538
+ ldr r0, _02230014 ; =0x00002214
+ add sp, #0x10
+ str r1, [r4, r0]
+ mov r0, #3
+ pop {r4, pc}
+_0222FF64:
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ str r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02018540
+ mov r3, #0x5e
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #0xc
+ str r0, [sp]
+ ldr r0, _02230018 ; =0x000005A8
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0x14
+ mov r2, #1
+ bl MOD70_02230F40
+ mov r0, #0x66
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_02001C5C
+ ldr r0, _0223000C ; =0x0000065C
+ ldr r0, [r4, r0]
+ bl FUN_02012870
+ ldr r1, _0223001C ; =MOD70_02230020
+ ldr r0, _02230014 ; =0x00002214
+ str r1, [r4, r0]
+ b _02230002
+_0222FFB4:
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ str r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02018540
+ mov r3, #0x5e
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #0xc
+ str r0, [sp]
+ ldr r0, _02230008 ; =0x00000588
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0xf
+ mov r2, #1
+ bl MOD70_02230F40
+ mov r0, #0x66
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_02001C5C
+ ldr r0, _0223000C ; =0x0000065C
+ ldr r0, [r4, r0]
+ bl FUN_02012870
+ ldr r1, _02230010 ; =MOD70_0222F538
+ ldr r0, _02230014 ; =0x00002214
+ str r1, [r4, r0]
+_02230002:
+ mov r0, #0
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_02230008: .word 0x00000588
+_0223000C: .word 0x0000065C
+_02230010: .word MOD70_0222F538
+_02230014: .word 0x00002214
+_02230018: .word 0x000005A8
+_0223001C: .word MOD70_02230020
+ thumb_func_end MOD70_0222FEE4
+
+ thumb_func_start MOD70_02230020
+MOD70_02230020: ; 0x02230020
+ push {r4, lr}
+ sub sp, #0x10
+ mov r1, #0
+ add r4, r0, #0
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ str r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02018540
+ mov r3, #0x5e
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #0xc
+ str r0, [sp]
+ ldr r0, _02230070 ; =0x000005A8
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0x14
+ mov r2, #1
+ bl MOD70_02230F40
+ add r0, r4, #0
+ mov r1, #0x18
+ mov r2, #2
+ bl MOD70_0222F440
+ ldr r1, _02230074 ; =MOD70_0223007C
+ ldr r0, _02230078 ; =0x00002214
+ str r1, [r4, r0]
+ mov r0, #0
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_02230070: .word 0x000005A8
+_02230074: .word MOD70_0223007C
+_02230078: .word 0x00002214
+ thumb_func_end MOD70_02230020
+
+ thumb_func_start MOD70_0223007C
+MOD70_0223007C: ; 0x0223007C
+ ldr r2, [r0, #0x60]
+ cmp r2, #0
+ beq _022300A8
+ ldr r1, [r0, #0x64]
+ cmp r1, #0
+ beq _022300A8
+ cmp r2, #2
+ bne _02230098
+ cmp r1, #2
+ bne _02230098
+ ldr r2, _022300AC ; =MOD70_022300B8
+ ldr r1, _022300B0 ; =0x00002214
+ str r2, [r0, r1]
+ b _0223009E
+_02230098:
+ ldr r2, _022300B4 ; =MOD70_0222F790
+ ldr r1, _022300B0 ; =0x00002214
+ str r2, [r0, r1]
+_0223009E:
+ mov r1, #0x18
+ str r1, [r0, #0x68]
+ mov r1, #0
+ str r1, [r0, #0x60]
+ str r1, [r0, #0x64]
+_022300A8:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+_022300AC: .word MOD70_022300B8
+_022300B0: .word 0x00002214
+_022300B4: .word MOD70_0222F790
+ thumb_func_end MOD70_0223007C
+
+ thumb_func_start MOD70_022300B8
+MOD70_022300B8: ; 0x022300B8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r7, r0, #0
+ ldr r0, _022301D8 ; =0x00000438
+ mov r6, #0
+ add r0, r7, r0
+ add r4, r7, #0
+ add r5, r7, #0
+ str r0, [sp, #4]
+_022300CA:
+ add r0, r7, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ cmp r6, r0
+ beq _02230108
+ mov r0, #0x37
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ ldr r0, _022301DC ; =0x00000692
+ ldrh r0, [r5, r0]
+ cmp r0, #0
+ beq _022300F4
+ mov r0, #0x3a
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020200A0
+_022300F4:
+ ldr r0, _022301E0 ; =0x0000069C
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _02230108
+ mov r0, #0x3d
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020200A0
+_02230108:
+ add r0, r6, #7
+ lsl r1, r0, #4
+ ldr r0, [sp, #4]
+ add r0, r0, r1
+ bl FUN_0201958C
+ add r0, r7, #0
+ add r0, #0x8c
+ ldr r0, [r0]
+ sub r0, r0, #6
+ cmp r6, r0
+ beq _02230154
+ mov r0, #0xe2
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ ldr r0, _022301E4 ; =0x000006F2
+ ldrh r0, [r5, r0]
+ cmp r0, #0
+ beq _02230140
+ mov r0, #0xee
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020200A0
+_02230140:
+ ldr r0, _022301E8 ; =0x000006FC
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _02230154
+ mov r0, #0xfa
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020200A0
+_02230154:
+ add r0, r6, #0
+ add r0, #0xd
+ lsl r1, r0, #4
+ ldr r0, [sp, #4]
+ add r0, r0, r1
+ bl FUN_0201958C
+ add r6, r6, #1
+ add r4, r4, #4
+ add r5, #0x10
+ cmp r6, #6
+ blt _022300CA
+ mov r0, #0xce
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ mov r0, #0xcf
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ add r0, r7, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ mov r3, #0x30
+ lsl r2, r0, #3
+ ldr r1, _022301EC ; =0x02231220
+ ldr r0, _022301F0 ; =0x000022C4
+ ldr r1, [r1, r2]
+ ldr r4, _022301F4 ; =0x02231224
+ add r0, r7, r0
+ ldr r2, [r4, r2]
+ add r1, #0x10
+ sub r2, r2, #6
+ str r3, [sp]
+ bl MOD70_02230204
+ add r0, r7, #0
+ add r0, #0x8c
+ ldr r0, [r0]
+ ldr r1, _022301EC ; =0x02231220
+ lsl r2, r0, #3
+ mov r0, #0x30
+ str r0, [sp]
+ ldr r0, _022301F8 ; =0x000022DC
+ ldr r1, [r1, r2]
+ add r3, r4, #0
+ ldr r2, [r3, r2]
+ add r0, r7, r0
+ add r1, #0x10
+ sub r2, r2, #6
+ mov r3, #0xb0
+ bl MOD70_02230204
+ ldr r1, _022301FC ; =0x000022BC
+ mov r0, #0
+ str r0, [r7, r1]
+ ldr r2, _02230200 ; =MOD70_0223029C
+ sub r1, #0xa8
+ str r2, [r7, r1]
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022301D8: .word 0x00000438
+_022301DC: .word 0x00000692
+_022301E0: .word 0x0000069C
+_022301E4: .word 0x000006F2
+_022301E8: .word 0x000006FC
+_022301EC: .word 0x02231220
+_022301F0: .word 0x000022C4
+_022301F4: .word 0x02231224
+_022301F8: .word 0x000022DC
+_022301FC: .word 0x000022BC
+_02230200: .word MOD70_0223029C
+ thumb_func_end MOD70_022300B8
+
+ thumb_func_start MOD70_02230204
+MOD70_02230204: ; 0x02230204
+ lsl r1, r1, #0xc
+ str r1, [r0]
+ lsl r1, r2, #0xc
+ str r1, [r0, #4]
+ lsl r1, r3, #0xc
+ str r1, [r0, #0xc]
+ ldr r1, [sp]
+ lsl r1, r1, #0xc
+ str r1, [r0, #0x10]
+ bx lr
+ thumb_func_end MOD70_02230204
+
+ thumb_func_start MOD70_02230218
+MOD70_02230218: ; 0x02230218
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x30
+ ldr r7, [sp, #0x48]
+ str r0, [sp]
+ ldr r4, [r7]
+ ldr r0, [r7, #0xc]
+ str r1, [sp, #4]
+ add r6, r3, #0
+ sub r0, r0, r4
+ mov r1, #0x14
+ str r2, [sp, #8]
+ ldr r5, [sp, #0x4c]
+ bl _s32_div_f
+ mul r0, r6
+ add r0, r4, r0
+ str r0, [sp, #0x24]
+ ldr r4, [r7, #4]
+ ldr r0, [r7, #0x10]
+ mov r1, #0x14
+ sub r0, r0, r4
+ bl _s32_div_f
+ mul r0, r6
+ add r0, r4, r0
+ str r0, [sp, #0x28]
+ ldr r0, [sp]
+ add r1, sp, #0x24
+ bl FUN_02020044
+ ldrh r0, [r5, #2]
+ cmp r0, #0
+ beq _02230276
+ mov r0, #5
+ ldr r1, [sp, #0x24]
+ lsl r0, r0, #0xe
+ add r0, r1, r0
+ str r0, [sp, #0x18]
+ mov r0, #0x16
+ ldr r1, [sp, #0x28]
+ lsl r0, r0, #0xc
+ add r0, r1, r0
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #4]
+ add r1, sp, #0x18
+ bl FUN_02020044
+_02230276:
+ ldr r0, [r5, #0xc]
+ cmp r0, #0
+ beq _02230298
+ mov r0, #7
+ ldr r1, [sp, #0x24]
+ lsl r0, r0, #0xe
+ add r0, r1, r0
+ str r0, [sp, #0xc]
+ mov r0, #0x16
+ ldr r1, [sp, #0x28]
+ lsl r0, r0, #0xc
+ add r0, r1, r0
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #8]
+ add r1, sp, #0xc
+ bl FUN_02020044
+_02230298:
+ add sp, #0x30
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD70_02230218
+
+ thumb_func_start MOD70_0223029C
+MOD70_0223029C: ; 0x0223029C
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ ldr r3, _02230370 ; =0x000022BC
+ add r4, r0, #0
+ ldr r0, [r4, r3]
+ add r2, r3, #0
+ add r0, r0, #1
+ str r0, [r4, r3]
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ add r2, #8
+ add r2, r4, r2
+ lsl r0, r1, #2
+ str r2, [sp]
+ mov r2, #0x69
+ lsl r2, r2, #4
+ add r2, r4, r2
+ lsl r1, r1, #4
+ add r1, r2, r1
+ mov r2, #0x37
+ str r1, [sp, #4]
+ lsl r2, r2, #4
+ add r5, r4, r0
+ add r1, r2, #0
+ ldr r0, [r5, r2]
+ add r1, #0x30
+ add r2, #0x60
+ ldr r1, [r5, r1]
+ ldr r2, [r5, r2]
+ ldr r3, [r4, r3]
+ bl MOD70_02230218
+ add r0, r4, #0
+ add r0, #0x8c
+ ldr r3, _02230374 ; =0x000022DC
+ ldr r5, [r0]
+ add r1, r4, r3
+ str r1, [sp]
+ mov r1, #0x69
+ lsl r1, r1, #4
+ add r2, r4, r1
+ lsl r1, r5, #4
+ add r1, r2, r1
+ mov r2, #0x37
+ lsl r0, r5, #2
+ lsl r2, r2, #4
+ str r1, [sp, #4]
+ add r5, r4, r0
+ add r1, r2, #0
+ ldr r0, [r5, r2]
+ add r1, #0x30
+ add r2, #0x60
+ sub r3, #0x20
+ ldr r1, [r5, r1]
+ ldr r2, [r5, r2]
+ ldr r3, [r4, r3]
+ bl MOD70_02230218
+ ldr r1, _02230370 ; =0x000022BC
+ ldr r0, [r4, r1]
+ cmp r0, #0x15
+ bne _02230368
+ mov r0, #1
+ add r2, r4, #0
+ str r0, [sp]
+ ldr r0, _02230378 ; =0x00000568
+ sub r1, #0xa4
+ add r2, #0x88
+ ldr r1, [r4, r1]
+ ldr r2, [r2]
+ add r0, r4, r0
+ mov r3, #8
+ bl MOD70_0222EC5C
+ mov r0, #1
+ add r2, r4, #0
+ str r0, [sp]
+ ldr r1, _0223037C ; =0x0000221C
+ add r2, #0x8c
+ ldr r0, _02230380 ; =0x00000578
+ ldr r2, [r2]
+ ldr r1, [r4, r1]
+ add r0, r4, r0
+ sub r2, r2, #6
+ mov r3, #8
+ bl MOD70_0222EC5C
+ add r1, r4, #0
+ add r1, #0x8c
+ ldr r1, [r1]
+ add r0, r4, #0
+ bl MOD70_0222E1A0
+ ldr r1, _02230384 ; =MOD70_022304AC
+ ldr r0, _02230388 ; =0x00002214
+ str r1, [r4, r0]
+ ldr r0, _0223038C ; =0x00000418
+ mov r1, #1
+ ldr r0, [r4, r0]
+ bl FUN_020200A0
+_02230368:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ nop
+_02230370: .word 0x000022BC
+_02230374: .word 0x000022DC
+_02230378: .word 0x00000568
+_0223037C: .word 0x0000221C
+_02230380: .word 0x00000578
+_02230384: .word MOD70_022304AC
+_02230388: .word 0x00002214
+_0223038C: .word 0x00000418
+ thumb_func_end MOD70_0223029C
+
+ thumb_func_start MOD70_02230390
+MOD70_02230390: ; 0x02230390
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ ldr r1, _0223048C ; =0x00000568
+ str r0, [sp]
+ add r0, r0, r1
+ bl FUN_0201958C
+ ldr r1, _02230490 ; =0x00000578
+ ldr r0, [sp]
+ add r0, r0, r1
+ bl FUN_0201958C
+ ldr r6, [sp]
+ ldr r1, _02230494 ; =0x00000438
+ add r0, r6, #0
+ add r0, r0, r1
+ ldr r4, _02230498 ; =0x02231220
+ mov r7, #0
+ add r5, r6, #0
+ str r0, [sp, #4]
+_022303B8:
+ mov r0, #0x69
+ lsl r0, r0, #4
+ ldrh r0, [r6, r0]
+ cmp r0, #0
+ beq _02230438
+ mov r0, #0x37
+ lsl r0, r0, #4
+ ldr r1, [r4]
+ ldr r2, [r4, #4]
+ ldr r0, [r5, r0]
+ add r1, #0x10
+ sub r2, r2, #6
+ bl MOD70_02230B70
+ mov r0, #0x37
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ ldr r0, _0223049C ; =0x00000692
+ ldrh r0, [r6, r0]
+ cmp r0, #0
+ beq _02230406
+ mov r0, #0x3a
+ lsl r0, r0, #4
+ ldr r1, [r4]
+ ldr r2, [r4, #4]
+ ldr r0, [r5, r0]
+ add r1, #0x24
+ add r2, #0x10
+ bl MOD70_02230B70
+ mov r0, #0x3a
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+_02230406:
+ ldr r0, _022304A0 ; =0x0000069C
+ ldr r0, [r6, r0]
+ cmp r0, #0
+ beq _0223042C
+ mov r0, #0x3d
+ lsl r0, r0, #4
+ ldr r1, [r4]
+ ldr r2, [r4, #4]
+ ldr r0, [r5, r0]
+ add r1, #0x2c
+ add r2, #0x10
+ bl MOD70_02230B70
+ mov r0, #0x3d
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+_0223042C:
+ add r0, r7, #7
+ lsl r1, r0, #4
+ ldr r0, [sp, #4]
+ add r0, r0, r1
+ bl FUN_02019220
+_02230438:
+ add r7, r7, #1
+ add r6, #0x10
+ add r4, #8
+ add r5, r5, #4
+ cmp r7, #0xc
+ blt _022303B8
+ mov r1, #0xce
+ ldr r0, [sp]
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r1, #0xcf
+ ldr r0, [sp]
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ mov r1, #1
+ bl FUN_020200A0
+ ldr r1, _02230494 ; =0x00000438
+ ldr r0, [sp]
+ ldr r2, [sp]
+ add r0, r0, r1
+ mov r1, #1
+ bl MOD70_0222EF24
+ ldr r1, _022304A4 ; =0x0000040C
+ ldr r0, [sp]
+ ldr r0, [r0, r1]
+ mov r1, #0
+ bl FUN_020200A0
+ ldr r1, _022304A8 ; =0x00000418
+ ldr r0, [sp]
+ ldr r0, [r0, r1]
+ mov r1, #0
+ bl FUN_020200A0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223048C: .word 0x00000568
+_02230490: .word 0x00000578
+_02230494: .word 0x00000438
+_02230498: .word 0x02231220
+_0223049C: .word 0x00000692
+_022304A0: .word 0x0000069C
+_022304A4: .word 0x0000040C
+_022304A8: .word 0x00000418
+ thumb_func_end MOD70_02230390
+
+ thumb_func_start MOD70_022304AC
+MOD70_022304AC: ; 0x022304AC
+ push {r4, lr}
+ sub sp, #0x10
+ mov r1, #0
+ add r4, r0, #0
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ str r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02018540
+ ldr r0, _02230534 ; =0x00002218
+ add r1, r4, #0
+ add r1, #0x88
+ ldr r0, [r4, r0]
+ ldr r1, [r1]
+ bl FUN_0206B9B0
+ bl FUN_020690E4
+ add r2, r0, #0
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_0200ACF8
+ add r1, r4, #0
+ ldr r0, _02230538 ; =0x0000221C
+ add r1, #0x8c
+ ldr r1, [r1]
+ ldr r0, [r4, r0]
+ sub r1, r1, #6
+ bl FUN_0206B9B0
+ bl FUN_020690E4
+ add r2, r0, #0
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_0200ACF8
+ mov r3, #0x5f
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #8
+ str r0, [sp]
+ ldr r0, _0223053C ; =0x000005A8
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0x15
+ mov r2, #1
+ bl MOD70_02230F40
+ ldr r1, _02230540 ; =MOD70_02230548
+ ldr r0, _02230544 ; =0x00002214
+ str r1, [r4, r0]
+ mov r0, #0
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_02230534: .word 0x00002218
+_02230538: .word 0x0000221C
+_0223053C: .word 0x000005A8
+_02230540: .word MOD70_02230548
+_02230544: .word 0x00002214
+ thumb_func_end MOD70_022304AC
+
+ thumb_func_start MOD70_02230548
+MOD70_02230548: ; 0x02230548
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ mov r0, #0x5d
+ ldr r2, _02230638 ; =0x00000658
+ lsl r0, r0, #2
+ add r1, r4, r2
+ add r2, #0xc
+ ldr r0, [r4, r0]
+ add r2, r4, r2
+ bl MOD70_02230FB0
+ cmp r0, #0
+ beq _0223056E
+ mov r1, #1
+ mvn r1, r1
+ cmp r0, r1
+ beq _022305EE
+ b _02230632
+_0223056E:
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ lsl r0, r0, #4
+ add r1, r4, r0
+ ldr r0, _0223063C ; =0x0000069C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _022305E6
+ add r0, r4, #0
+ bl MOD70_02230BC4
+ cmp r0, #0
+ beq _022305D4
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ str r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02018540
+ mov r3, #0x5e
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #0xc
+ str r0, [sp]
+ ldr r0, _02230640 ; =0x000005A8
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0x14
+ mov r2, #1
+ bl MOD70_02230F40
+ ldr r1, _02230644 ; =MOD70_02230770
+ ldr r0, _02230648 ; =0x00002214
+ mov r2, #3
+ str r1, [r4, r0]
+ add r0, r4, #0
+ mov r1, #0x18
+ bl MOD70_0222F440
+ mov r0, #1
+ str r0, [r4, #0x5c]
+ b _02230632
+_022305D4:
+ ldr r1, _02230644 ; =MOD70_02230770
+ ldr r0, _02230648 ; =0x00002214
+ mov r2, #4
+ str r1, [r4, r0]
+ add r0, r4, #0
+ mov r1, #0x18
+ bl MOD70_0222F440
+ b _02230632
+_022305E6:
+ ldr r1, _0223064C ; =MOD70_02230650
+ ldr r0, _02230648 ; =0x00002214
+ str r1, [r4, r0]
+ b _02230632
+_022305EE:
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ str r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02018540
+ mov r3, #0x5e
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #0xc
+ str r0, [sp]
+ ldr r0, _02230640 ; =0x000005A8
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0x14
+ mov r2, #1
+ bl MOD70_02230F40
+ ldr r1, _02230644 ; =MOD70_02230770
+ ldr r0, _02230648 ; =0x00002214
+ mov r2, #4
+ str r1, [r4, r0]
+ add r0, r4, #0
+ mov r1, #0x18
+ bl MOD70_0222F440
+_02230632:
+ mov r0, #0
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_02230638: .word 0x00000658
+_0223063C: .word 0x0000069C
+_02230640: .word 0x000005A8
+_02230644: .word MOD70_02230770
+_02230648: .word 0x00002214
+_0223064C: .word MOD70_02230650
+ thumb_func_end MOD70_02230548
+
+ thumb_func_start MOD70_02230650
+MOD70_02230650: ; 0x02230650
+ push {r4, lr}
+ sub sp, #0x10
+ mov r1, #0
+ add r4, r0, #0
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ str r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02018540
+ mov r3, #0x5f
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #8
+ str r0, [sp]
+ ldr r0, _02230698 ; =0x000005A8
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0x24
+ mov r2, #1
+ bl MOD70_02230F40
+ ldr r1, _0223069C ; =MOD70_022306A4
+ ldr r0, _022306A0 ; =0x00002214
+ str r1, [r4, r0]
+ mov r0, #0
+ add sp, #0x10
+ pop {r4, pc}
+ nop
+_02230698: .word 0x000005A8
+_0223069C: .word MOD70_022306A4
+_022306A0: .word 0x00002214
+ thumb_func_end MOD70_02230650
+
+ thumb_func_start MOD70_022306A4
+MOD70_022306A4: ; 0x022306A4
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ mov r0, #0x5d
+ ldr r2, _02230760 ; =0x00000658
+ lsl r0, r0, #2
+ add r1, r4, r2
+ add r2, #0xc
+ ldr r0, [r4, r0]
+ add r2, r4, r2
+ bl MOD70_02230FB0
+ cmp r0, #0
+ beq _022306CA
+ mov r1, #1
+ mvn r1, r1
+ cmp r0, r1
+ beq _02230714
+ b _02230758
+_022306CA:
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ str r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02018540
+ mov r3, #0x5e
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #0xc
+ str r0, [sp]
+ ldr r0, _02230764 ; =0x000005A8
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0x14
+ mov r2, #1
+ bl MOD70_02230F40
+ ldr r1, _02230768 ; =MOD70_02230770
+ ldr r0, _0223076C ; =0x00002214
+ mov r2, #3
+ str r1, [r4, r0]
+ add r0, r4, #0
+ mov r1, #0x18
+ bl MOD70_0222F440
+ mov r0, #1
+ str r0, [r4, #0x5c]
+ b _02230758
+_02230714:
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ str r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02018540
+ mov r3, #0x5e
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #0xc
+ str r0, [sp]
+ ldr r0, _02230764 ; =0x000005A8
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0x14
+ mov r2, #1
+ bl MOD70_02230F40
+ ldr r1, _02230768 ; =MOD70_02230770
+ ldr r0, _0223076C ; =0x00002214
+ mov r2, #4
+ str r1, [r4, r0]
+ add r0, r4, #0
+ mov r1, #0x18
+ bl MOD70_0222F440
+_02230758:
+ mov r0, #0
+ add sp, #0x10
+ pop {r4, pc}
+ nop
+_02230760: .word 0x00000658
+_02230764: .word 0x000005A8
+_02230768: .word MOD70_02230770
+_0223076C: .word 0x00002214
+ thumb_func_end MOD70_022306A4
+
+ thumb_func_start MOD70_02230770
+MOD70_02230770: ; 0x02230770
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #0x60]
+ cmp r1, #0
+ beq _022307B8
+ ldr r0, [r4, #0x64]
+ cmp r0, #0
+ beq _022307B8
+ cmp r1, #3
+ bne _02230798
+ cmp r0, #3
+ bne _02230798
+ ldr r0, _022307BC ; =0x00003698
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ ldr r1, _022307C0 ; =MOD70_022307CC
+ ldr r0, _022307C4 ; =0x00002214
+ str r1, [r4, r0]
+ b _0223079E
+_02230798:
+ ldr r1, _022307C8 ; =MOD70_0222F790
+ ldr r0, _022307C4 ; =0x00002214
+ str r1, [r4, r0]
+_0223079E:
+ mov r0, #0
+ str r0, [r4, #0x60]
+ str r0, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD70_02230BC4
+ cmp r0, #0
+ beq _022307B4
+ mov r0, #0x18
+ str r0, [r4, #0x68]
+ b _022307B8
+_022307B4:
+ mov r0, #0x22
+ str r0, [r4, #0x68]
+_022307B8:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_022307BC: .word 0x00003698
+_022307C0: .word MOD70_022307CC
+_022307C4: .word 0x00002214
+_022307C8: .word MOD70_0222F790
+ thumb_func_end MOD70_02230770
+
+ thumb_func_start MOD70_022307CC
+MOD70_022307CC: ; 0x022307CC
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_0202E288
+ ldr r0, [r4, #8]
+ add r3, r4, #0
+ add r2, r4, #0
+ ldr r1, _02230804 ; =0x00002218
+ str r0, [sp]
+ add r3, #0x8c
+ ldr r0, [r4, r1]
+ add r1, r1, #4
+ add r2, #0x88
+ ldr r3, [r3]
+ ldr r1, [r4, r1]
+ ldr r2, [r2]
+ sub r3, r3, #6
+ bl MOD70_022309E8
+ ldr r1, _02230808 ; =MOD70_0222F790
+ ldr r0, _0223080C ; =0x00002214
+ str r1, [r4, r0]
+ mov r0, #2
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_02230804: .word 0x00002218
+_02230808: .word MOD70_0222F790
+_0223080C: .word 0x00002214
+ thumb_func_end MOD70_022307CC
+
+ thumb_func_start MOD70_02230810
+MOD70_02230810: ; 0x02230810
+ push {r3, r4, lr}
+ sub sp, #0x1c
+ add r4, r0, #0
+ mov r0, #0
+ add r1, sp, #0x10
+ strb r0, [r1, #8]
+ mov r0, #1
+ strb r0, [r1, #9]
+ mov r0, #2
+ strb r0, [r1, #0xa]
+ ldrb r2, [r1, #0xb]
+ mov r0, #0xf
+ bic r2, r0
+ strb r2, [r1, #0xb]
+ ldrb r2, [r1, #0xb]
+ mov r0, #0x30
+ bic r2, r0
+ strb r2, [r1, #0xb]
+ ldrb r2, [r1, #0xb]
+ mov r0, #0xc0
+ bic r2, r0
+ strb r2, [r1, #0xb]
+ add r1, r4, #0
+ ldr r0, _022308F8 ; =0x0000221C
+ add r1, #0x88
+ ldr r1, [r1]
+ ldr r0, [r4, r0]
+ sub r1, r1, #6
+ bl FUN_0206B9B0
+ bl FUN_020690E4
+ add r2, r0, #0
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_0200ACF8
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ str r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02018540
+ mov r3, #0x5f
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #8
+ str r0, [sp]
+ ldr r0, _022308FC ; =0x00000598
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0x10
+ mov r2, #1
+ bl MOD70_02230F40
+ mov r0, #2
+ mov r1, #0x1a
+ bl FUN_02012838
+ ldr r1, _02230900 ; =0x0000065C
+ mov r2, #0x11
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ mov r1, #0x61
+ lsl r1, r1, #2
+ ldr r1, [r4, r1]
+ mov r3, #0
+ bl FUN_02012880
+ ldr r0, _02230900 ; =0x0000065C
+ mov r1, #0x61
+ lsl r1, r1, #2
+ ldr r0, [r4, r0]
+ ldr r1, [r4, r1]
+ mov r2, #0x13
+ mov r3, #1
+ bl FUN_02012880
+ ldr r0, _02230900 ; =0x0000065C
+ ldr r1, [r4, r0]
+ sub r0, #0x94
+ add r0, r4, r0
+ str r1, [sp, #0x10]
+ str r0, [sp, #0x14]
+ bl MOD70_02231004
+ mov r0, #0x1a
+ str r0, [sp]
+ mov r0, #2
+ mov r2, #0
+ str r0, [sp, #4]
+ add r0, sp, #0x10
+ mov r1, #8
+ add r3, r2, #0
+ bl FUN_02001C14
+ mov r1, #0x66
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ ldr r1, _02230904 ; =MOD70_0223090C
+ ldr r0, _02230908 ; =0x00002214
+ str r1, [r4, r0]
+ mov r0, #0
+ add sp, #0x1c
+ pop {r3, r4, pc}
+ nop
+_022308F8: .word 0x0000221C
+_022308FC: .word 0x00000598
+_02230900: .word 0x0000065C
+_02230904: .word MOD70_0223090C
+_02230908: .word 0x00002214
+ thumb_func_end MOD70_02230810
+
+ thumb_func_start MOD70_0223090C
+MOD70_0223090C: ; 0x0223090C
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ mov r0, #0x66
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_02001C78
+ cmp r0, #0
+ beq _0223092E
+ cmp r0, #1
+ beq _02230982
+ mov r1, #1
+ mvn r1, r1
+ cmp r0, r1
+ beq _02230982
+ b _022309D0
+_0223092E:
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ str r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02018540
+ mov r3, #0x5e
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #0xc
+ str r0, [sp]
+ ldr r0, _022309D8 ; =0x00000588
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0xf
+ mov r2, #1
+ bl MOD70_02230F40
+ ldr r1, _022309DC ; =MOD70_0222F538
+ ldr r0, _022309E0 ; =0x00002214
+ str r1, [r4, r0]
+ mov r0, #0x66
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_02001C5C
+ ldr r0, _022309E4 ; =0x0000065C
+ ldr r0, [r4, r0]
+ bl FUN_02012870
+ add sp, #0x10
+ mov r0, #3
+ pop {r4, pc}
+_02230982:
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ str r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02018540
+ mov r3, #0x5e
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #0xc
+ str r0, [sp]
+ ldr r0, _022309D8 ; =0x00000588
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0xf
+ mov r2, #1
+ bl MOD70_02230F40
+ mov r0, #0x66
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_02001C5C
+ ldr r0, _022309E4 ; =0x0000065C
+ ldr r0, [r4, r0]
+ bl FUN_02012870
+ ldr r1, _022309DC ; =MOD70_0222F538
+ ldr r0, _022309E0 ; =0x00002214
+ str r1, [r4, r0]
+_022309D0:
+ mov r0, #0
+ add sp, #0x10
+ pop {r4, pc}
+ nop
+_022309D8: .word 0x00000588
+_022309DC: .word MOD70_0222F538
+_022309E0: .word 0x00002214
+_022309E4: .word 0x0000065C
+ thumb_func_end MOD70_0223090C
+
+ thumb_func_start MOD70_022309E8
+MOD70_022309E8: ; 0x022309E8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ str r0, [sp, #4]
+ mov r0, #0x1a
+ str r1, [sp, #8]
+ add r6, r2, #0
+ str r3, [sp, #0xc]
+ ldr r5, [sp, #0x28]
+ bl FUN_020669C0
+ add r7, r0, #0
+ mov r0, #0x1a
+ bl FUN_020669C0
+ add r4, r0, #0
+ ldr r0, [sp, #4]
+ add r1, r6, #0
+ bl FUN_0206B9B0
+ add r1, r7, #0
+ bl FUN_02069B88
+ ldr r0, [sp, #8]
+ ldr r1, [sp, #0xc]
+ bl FUN_0206B9B0
+ add r1, r4, #0
+ bl FUN_02069B88
+ add r0, r4, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ bne _02230A40
+ mov r1, #0x46
+ add r0, sp, #0x10
+ strb r1, [r0]
+ add r0, r4, #0
+ mov r1, #9
+ add r2, sp, #0x10
+ bl FUN_02067830
+_02230A40:
+ bl FUN_02031190
+ bl FUN_0202DFA4
+ add r1, r0, #0
+ mov r0, #0xb
+ str r0, [sp]
+ add r0, r4, #0
+ mov r2, #5
+ mov r3, #0
+ bl FUN_0208089C
+ add r0, r4, #0
+ bl FUN_0206AA84
+ ldr r1, [r5, #0x3c]
+ add r0, r7, #0
+ bl FUN_02069B88
+ ldr r1, [r5, #0x40]
+ add r0, r4, #0
+ bl FUN_02069B88
+ bl FUN_02031190
+ mov r1, #1
+ eor r0, r1
+ bl FUN_0202DFA4
+ ldr r1, [r5, #0x38]
+ bl FUN_0202393C
+ ldr r0, [sp, #4]
+ ldr r1, _02230AE0 ; =0x000001B9
+ str r6, [r5, #0x2c]
+ bl FUN_0206BAE4
+ cmp r0, #0
+ bne _02230A98
+ ldr r0, [r5, #0x10]
+ bl FUN_02029EF8
+ bl FUN_02029F08
+_02230A98:
+ ldr r0, [r5, #0x10]
+ add r1, r4, #0
+ bl FUN_0202C144
+ ldr r0, [sp, #4]
+ add r1, r6, #0
+ bl FUN_0206B9B0
+ add r1, r0, #0
+ add r0, r4, #0
+ bl FUN_02069B88
+ ldr r0, [sp, #8]
+ ldr r1, [sp, #0xc]
+ bl FUN_0206B9B0
+ add r1, r0, #0
+ add r0, r7, #0
+ bl FUN_02069B88
+ ldr r0, [r5, #0x1c]
+ add r1, r4, #0
+ bl MOD70_02230AE4
+ ldr r0, [r5, #0x20]
+ mov r1, #0x13
+ bl FUN_0202A0E8
+ add r0, r7, #0
+ bl FUN_02016A18
+ add r0, r4, #0
+ bl FUN_02016A18
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02230AE0: .word 0x000001B9
+ thumb_func_end MOD70_022309E8
+
+ thumb_func_start MOD70_02230AE4
+MOD70_02230AE4: ; 0x02230AE4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r6, r0, #0
+ add r4, r1, #0
+ bl FUN_02031190
+ mov r1, #1
+ eor r0, r1
+ bl FUN_0202DFA4
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #0x74
+ add r2, sp, #4
+ bl FUN_020671BC
+ add r0, r5, #0
+ bl FUN_0202398C
+ add r7, r0, #0
+ add r0, r5, #0
+ bl FUN_020239CC
+ add r5, r0, #0
+ add r0, r4, #0
+ bl FUN_020689E0
+ add r3, r0, #0
+ mov r0, #0x1a
+ lsl r1, r5, #0x18
+ str r0, [sp]
+ add r0, r7, #0
+ lsr r1, r1, #0x18
+ add r2, sp, #4
+ bl FUN_0202945C
+ add r1, r0, #0
+ add r0, r6, #0
+ mov r2, #4
+ bl FUN_02028AD4
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD70_02230AE4
+
+ thumb_func_start MOD70_02230B3C
+MOD70_02230B3C: ; 0x02230B3C
+ push {r4, lr}
+ ldr r3, _02230B6C ; =0x000022B8
+ add r4, r0, #0
+ ldr r0, [r4, r3]
+ mov r1, #6
+ add r0, r0, #2
+ str r0, [r4, r3]
+ mov r0, #0x5d
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ ldr r3, [r4, r3]
+ mov r2, #0
+ bl FUN_020179E0
+ mov r0, #0x5d
+ ldr r3, _02230B6C ; =0x000022B8
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ ldr r3, [r4, r3]
+ mov r1, #3
+ mov r2, #0
+ bl FUN_020179E0
+ pop {r4, pc}
+ .align 2, 0
+_02230B6C: .word 0x000022B8
+ thumb_func_end MOD70_02230B3C
+
+ thumb_func_start MOD70_02230B70
+MOD70_02230B70: ; 0x02230B70
+ push {lr}
+ sub sp, #0xc
+ lsl r1, r1, #0xc
+ str r1, [sp]
+ lsl r1, r2, #0xc
+ str r1, [sp, #4]
+ add r1, sp, #0
+ bl FUN_02020044
+ add sp, #0xc
+ pop {pc}
+ .align 2, 0
+ thumb_func_end MOD70_02230B70
+
+ thumb_func_start MOD70_02230B88
+MOD70_02230B88: ; 0x02230B88
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _02230B9C ; =0x000005A8
+ ldr r1, _02230BA0 ; =0x000001D9
+ add r0, r4, r0
+ bl FUN_0200D858
+ ldr r1, _02230BA4 ; =0x000036A8
+ str r0, [r4, r1]
+ pop {r4, pc}
+ .align 2, 0
+_02230B9C: .word 0x000005A8
+_02230BA0: .word 0x000001D9
+_02230BA4: .word 0x000036A8
+ thumb_func_end MOD70_02230B88
+
+ thumb_func_start MOD70_02230BA8
+MOD70_02230BA8: ; 0x02230BA8
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _02230BC0 ; =0x000036A8
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _02230BBE
+ bl FUN_0200DBFC
+ ldr r0, _02230BC0 ; =0x000036A8
+ mov r1, #0
+ str r1, [r4, r0]
+_02230BBE:
+ pop {r4, pc}
+ .align 2, 0
+_02230BC0: .word 0x000036A8
+ thumb_func_end MOD70_02230BA8
+
+ thumb_func_start MOD70_02230BC4
+MOD70_02230BC4: ; 0x02230BC4
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r0, _02230C00 ; =0x00002218
+ mov r4, #0
+ ldr r0, [r5, r0]
+ bl FUN_0206B9AC
+ add r3, r4, #0
+ cmp r0, #0
+ ble _02230BF0
+ add r1, r5, #0
+ add r1, #0x88
+ ldr r6, [r1]
+ ldr r1, _02230C04 ; =0x00000695
+_02230BE0:
+ cmp r3, r6
+ beq _02230BE8
+ ldrb r2, [r5, r1]
+ add r4, r4, r2
+_02230BE8:
+ add r3, r3, #1
+ add r5, #0x10
+ cmp r3, r0
+ blt _02230BE0
+_02230BF0:
+ sub r0, r0, #1
+ cmp r4, r0
+ bne _02230BFA
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+_02230BFA:
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+ nop
+_02230C00: .word 0x00002218
+_02230C04: .word 0x00000695
+ thumb_func_end MOD70_02230BC4
+
+ thumb_func_start MOD70_02230C08
+MOD70_02230C08: ; 0x02230C08
+ ldr r1, _02230C18 ; =0x000036AC
+ mov r2, #1
+ str r2, [r0, r1]
+ mov r2, #0
+ add r1, r1, #4
+ str r2, [r0, r1]
+ bx lr
+ nop
+_02230C18: .word 0x000036AC
+ thumb_func_end MOD70_02230C08
+
+ thumb_func_start MOD70_02230C1C
+MOD70_02230C1C: ; 0x02230C1C
+ push {r3, lr}
+ ldr r2, _02230C40 ; =0x000036AC
+ ldr r1, [r0, r2]
+ cmp r1, #0
+ beq _02230C3E
+ add r1, r2, #4
+ ldr r1, [r0, r1]
+ add r3, r1, #1
+ add r1, r2, #4
+ str r3, [r0, r1]
+ ldr r1, [r0, r1]
+ ldr r0, _02230C44 ; =0x00000708
+ cmp r1, r0
+ ble _02230C3E
+ mov r0, #4
+ bl FUN_020336A0
+_02230C3E:
+ pop {r3, pc}
+ .align 2, 0
+_02230C40: .word 0x000036AC
+_02230C44: .word 0x00000708
+ thumb_func_end MOD70_02230C1C
+
+ thumb_func_start MOD70_02230C48
+MOD70_02230C48: ; 0x02230C48
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r4, r2, #0
+ mov r2, #1
+ str r2, [sp]
+ mov r3, #0xa
+ str r3, [sp, #4]
+ mov r3, #2
+ str r3, [sp, #8]
+ mov r6, #8
+ str r6, [sp, #0xc]
+ add r5, r1, #0
+ str r0, [sp, #0x14]
+ str r2, [sp, #0x10]
+ bl FUN_02019064
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_02019620
+ mov r2, #1
+ add r1, r5, #0
+ str r2, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ add r0, r6, #0
+ str r0, [sp, #0xc]
+ mov r0, #0x15
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x14]
+ add r1, #0x10
+ mov r3, #0x14
+ bl FUN_02019064
+ add r0, r5, #0
+ add r0, #0x10
+ mov r1, #0
+ bl FUN_02019620
+ mov r0, #0x15
+ str r0, [sp]
+ mov r0, #5
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ add r0, r6, #0
+ str r0, [sp, #0xc]
+ mov r0, #0x29
+ str r0, [sp, #0x10]
+ add r1, r5, #0
+ ldr r0, [sp, #0x14]
+ add r1, #0x60
+ mov r2, #1
+ mov r3, #0x1a
+ bl FUN_02019064
+ add r0, r5, #0
+ add r0, #0x60
+ mov r1, #0
+ bl FUN_02019620
+ add r0, r4, #0
+ bl FUN_02025084
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #0x1a
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x14]
+ ldr r2, _02230E78 ; =0x000001D9
+ mov r1, #0
+ mov r3, #0xa
+ bl FUN_0200CD68
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x1a
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x14]
+ ldr r2, _02230E7C ; =0x000001F7
+ mov r3, #0xb
+ bl FUN_0200CB00
+ mov r1, #0x15
+ str r1, [sp]
+ mov r0, #0x14
+ str r0, [sp, #4]
+ mov r3, #2
+ lsl r1, r1, #4
+ str r3, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r0, #1
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x14]
+ add r1, r5, r1
+ mov r2, #0
+ bl FUN_02019064
+ mov r0, #0x15
+ lsl r0, r0, #4
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_02019620
+ mov r0, #0x13
+ str r0, [sp]
+ mov r0, #0xe
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r0, #0x28
+ mov r1, #0x16
+ str r0, [sp, #0x10]
+ lsl r1, r1, #4
+ ldr r0, [sp, #0x14]
+ add r1, r5, r1
+ mov r2, #0
+ mov r3, #2
+ bl FUN_02019064
+ mov r0, #0x16
+ lsl r0, r0, #4
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_02019620
+ mov r0, #0x13
+ str r0, [sp]
+ mov r0, #0x1b
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r0, #0x38
+ mov r1, #0x17
+ str r0, [sp, #0x10]
+ lsl r1, r1, #4
+ ldr r0, [sp, #0x14]
+ add r1, r5, r1
+ mov r2, #0
+ mov r3, #2
+ bl FUN_02019064
+ mov r0, #0x17
+ lsl r0, r0, #4
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_02019620
+ mov r0, #0x11
+ str r0, [sp]
+ mov r0, #0xb
+ str r0, [sp, #4]
+ mov r0, #6
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r1, #0xa4
+ str r1, [sp, #0x10]
+ add r1, #0xdc
+ ldr r0, [sp, #0x14]
+ add r1, r5, r1
+ mov r2, #0
+ mov r3, #0x14
+ bl FUN_02019064
+ mov r0, #6
+ lsl r0, r0, #6
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_02019620
+ mov r0, #0x13
+ str r0, [sp]
+ mov r0, #0xb
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r1, #0xe6
+ str r1, [sp, #0x10]
+ add r1, #0xaa
+ ldr r0, [sp, #0x14]
+ add r1, r5, r1
+ mov r2, #0
+ mov r3, #0x14
+ bl FUN_02019064
+ mov r0, #0x19
+ lsl r0, r0, #4
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_02019620
+ ldr r4, _02230E80 ; =0x022313F4
+ mov r7, #0
+ mov r6, #0x33
+_02230DE2:
+ add r0, r7, #7
+ lsl r0, r0, #4
+ str r0, [sp, #0x18]
+ ldrh r0, [r4, #2]
+ ldr r1, [sp, #0x18]
+ mov r2, #1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r0, #8
+ str r0, [sp, #0xc]
+ lsl r0, r6, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+ ldrh r3, [r4]
+ ldr r0, [sp, #0x14]
+ add r1, r5, r1
+ lsl r3, r3, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_02019064
+ ldr r0, [sp, #0x18]
+ mov r1, #0
+ add r0, r5, r0
+ bl FUN_02019620
+ add r7, r7, #1
+ add r6, #0x10
+ add r4, r4, #4
+ cmp r7, #0xe
+ blt _02230DE2
+ ldr r4, _02230E84 ; =0x0223142C
+ mov r6, #0
+_02230E2C:
+ add r0, r6, #0
+ add r0, #0x1a
+ lsl r7, r0, #4
+ ldrh r0, [r4, #2]
+ add r1, r5, r7
+ mov r2, #4
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ ldrh r0, [r4, #4]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #4]
+ ldrh r0, [r4, #6]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #8
+ str r0, [sp, #0xc]
+ ldrh r0, [r4, #8]
+ str r0, [sp, #0x10]
+ ldrh r3, [r4]
+ ldr r0, [sp, #0x14]
+ lsl r3, r3, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_02019064
+ add r0, r5, r7
+ mov r1, #0
+ bl FUN_02019620
+ add r6, r6, #1
+ add r4, #0xa
+ cmp r6, #8
+ blt _02230E2C
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02230E78: .word 0x000001D9
+_02230E7C: .word 0x000001F7
+_02230E80: .word 0x022313F4
+_02230E84: .word 0x0223142C
+ thumb_func_end MOD70_02230C48
+
+ thumb_func_start MOD70_02230E88
+MOD70_02230E88: ; 0x02230E88
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ mov r5, #0
+_02230E8E:
+ add r0, r5, #7
+ lsl r0, r0, #4
+ add r0, r4, r0
+ bl FUN_02019178
+ add r5, r5, #1
+ cmp r5, #0xe
+ blt _02230E8E
+ mov r5, #0
+_02230EA0:
+ add r0, r5, #0
+ add r0, #0x1a
+ lsl r0, r0, #4
+ add r0, r4, r0
+ bl FUN_02019178
+ add r5, r5, #1
+ cmp r5, #8
+ blt _02230EA0
+ add r0, r4, #0
+ bl FUN_02019178
+ add r0, r4, #0
+ add r0, #0x10
+ bl FUN_02019178
+ add r0, r4, #0
+ add r0, #0x60
+ bl FUN_02019178
+ mov r0, #0x15
+ lsl r0, r0, #4
+ add r0, r4, r0
+ bl FUN_02019178
+ mov r0, #0x16
+ lsl r0, r0, #4
+ add r0, r4, r0
+ bl FUN_02019178
+ mov r0, #0x17
+ lsl r0, r0, #4
+ add r0, r4, r0
+ bl FUN_02019178
+ mov r0, #6
+ lsl r0, r0, #6
+ add r0, r4, r0
+ bl FUN_02019178
+ mov r0, #0x19
+ lsl r0, r0, #4
+ add r0, r4, r0
+ bl FUN_02019178
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD70_02230E88
+
+ thumb_func_start MOD70_02230EFC
+MOD70_02230EFC: ; 0x02230EFC
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r4, r3, #0
+ ldr r3, [sp, #0x20]
+ add r5, r0, #0
+ add r6, r1, #0
+ cmp r3, #1
+ bne _02230F20
+ mov r0, #0
+ add r2, r0, #0
+ bl FUN_02002E14
+ ldrb r1, [r5, #7]
+ lsl r1, r1, #3
+ sub r1, r1, r0
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r3, r0, #1
+_02230F20:
+ ldr r0, [sp, #0x24]
+ mov r1, #0
+ str r0, [sp]
+ ldr r0, _02230F3C ; =0x000B0C00
+ str r4, [sp, #4]
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r2, r6, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ nop
+_02230F3C: .word 0x000B0C00
+ thumb_func_end MOD70_02230EFC
+
+ thumb_func_start MOD70_02230F40
+MOD70_02230F40: ; 0x02230F40
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ add r6, r1, #0
+ add r4, r2, #0
+ add r1, r3, #0
+ ldr r0, [sp, #0x20]
+ add r2, r6, #0
+ mov r3, #0x1a
+ bl FUN_0200A9C4
+ add r6, r0, #0
+ cmp r4, #1
+ bne _02230F6A
+ ldr r2, _02230FA4 ; =0x000001D9
+ add r0, r5, #0
+ mov r1, #0
+ mov r3, #0xa
+ bl FUN_0200D0BC
+ b _02230F76
+_02230F6A:
+ ldr r2, _02230FA8 ; =0x000001F7
+ add r0, r5, #0
+ mov r1, #0
+ mov r3, #0xb
+ bl FUN_0200CCA4
+_02230F76:
+ add r0, r5, #0
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r3, #0
+ str r3, [sp]
+ ldr r0, _02230FAC ; =0x0001020F
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ str r3, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r4, r0, #0
+ add r0, r6, #0
+ bl FUN_02021A20
+ add r0, r4, #0
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ nop
+_02230FA4: .word 0x000001D9
+_02230FA8: .word 0x000001F7
+_02230FAC: .word 0x0001020F
+ thumb_func_end MOD70_02230F40
+
+ thumb_func_start MOD70_02230FB0
+MOD70_02230FB0: ; 0x02230FB0
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r4, r2, #0
+ add r5, r1, #0
+ mov r6, #0
+ ldr r1, [r4]
+ mvn r6, r6
+ cmp r1, #0
+ beq _02230FC8
+ cmp r1, #1
+ beq _02230FE0
+ b _02230FF6
+_02230FC8:
+ mov r1, #0x1a
+ str r1, [sp]
+ ldr r1, _02230FFC ; =0x022313CC
+ ldr r2, _02231000 ; =0x000001F7
+ mov r3, #0xb
+ bl FUN_02002198
+ str r0, [r5]
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _02230FF6
+_02230FE0:
+ ldr r0, [r5]
+ mov r1, #0x1a
+ bl FUN_020021AC
+ add r6, r0, #0
+ mov r0, #0
+ mvn r0, r0
+ cmp r6, r0
+ beq _02230FF6
+ mov r0, #0
+ str r0, [r4]
+_02230FF6:
+ add r0, r6, #0
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_02230FFC: .word 0x022313CC
+_02231000: .word 0x000001F7
+ thumb_func_end MOD70_02230FB0
+
+ thumb_func_start MOD70_02231004
+MOD70_02231004: ; 0x02231004
+ push {r3, lr}
+ ldr r2, _02231014 ; =0x000001F7
+ mov r1, #0
+ mov r3, #0xb
+ bl FUN_0200CCA4
+ pop {r3, pc}
+ nop
+_02231014: .word 0x000001F7
+ thumb_func_end MOD70_02231004
+
+ thumb_func_start MOD70_02231018
+MOD70_02231018: ; 0x02231018
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x34
+ add r5, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0xc
+ str r0, [sp, #4]
+ mov r0, #0xa
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ ldr r0, _02231088 ; =0x0000014D
+ add r4, r2, #0
+ add r6, r1, #0
+ str r0, [sp, #0x10]
+ add r0, r3, #0
+ add r1, r4, #0
+ mov r2, #0
+ mov r3, #0x13
+ bl FUN_02019064
+ ldr r2, _0223108C ; =0x000001F7
+ add r0, r4, #0
+ mov r1, #0
+ mov r3, #0xb
+ bl FUN_0200CCA4
+ ldr r3, _02231090 ; =0x022313D4
+ add r2, sp, #0x14
+ add r7, r2, #0
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ add r1, r6, #1
+ add r0, sp, #0x14
+ strh r1, [r0, #0x10]
+ mov r1, #5
+ strh r1, [r0, #0x12]
+ ldr r0, _02231094 ; =MOD70_02231098
+ mov r1, #0
+ str r0, [sp, #0x18]
+ add r0, r7, #0
+ add r2, r1, #0
+ mov r3, #0x1a
+ str r5, [sp, #0x14]
+ str r4, [sp, #0x20]
+ bl FUN_020010A8
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02231088: .word 0x0000014D
+_0223108C: .word 0x000001F7
+_02231090: .word 0x022313D4
+_02231094: .word MOD70_02231098
+ thumb_func_end MOD70_02231018
+
+ thumb_func_start MOD70_02231098
+MOD70_02231098: ; 0x02231098
+ push {r3, lr}
+ cmp r2, #0
+ bne _022310A4
+ ldr r0, _022310A8 ; =0x000005DC
+ bl FUN_020054C8
+_022310A4:
+ pop {r3, pc}
+ nop
+_022310A8: .word 0x000005DC
+ thumb_func_end MOD70_02231098
+
+ .section .rodata
+ ; 0x022310AC
+ .incbin "baserom.nds", 0x2C96EC, 0x3D0