summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2020-05-13 16:13:54 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2020-05-13 16:13:54 -0400
commit442b5ef09e2f0928f124ae333cfa0ed68af408d9 (patch)
tree9299e67933b647f60fa5df6295b83f6b516b2df0
parent9fd17bafa722b4b78b5e604c5bc5445121efbb9e (diff)
Disassemble module 85
-rw-r--r--arm9/arm9.lcf25
-rw-r--r--arm9/global.inc2
-rw-r--r--arm9/modules/85/asm/module_85.s16171
3 files changed, 16195 insertions, 3 deletions
diff --git a/arm9/arm9.lcf b/arm9/arm9.lcf
index cc55c3e3..ebad9dc6 100644
--- a/arm9/arm9.lcf
+++ b/arm9/arm9.lcf
@@ -3237,7 +3237,17 @@ SECTIONS {
SDK_OVERLAY_MODULE_85_ID = 85;
SDK_OVERLAY.MODULE_85.ID = 85;
SDK_OVERLAY.MODULE_85.START = .;
- FILE_303400.o (.text) /* 0x2FF400 */
+ module_85.o (.text)
+ module_85.o (.rodata)
+ module_85.o (.init)
+ SDK_OVERLAY.MODULE_85.SINIT_START = .;
+ module_85.o (.ctor)
+ module_85.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_85.SINIT_END = .;
+ . = ALIGN(32);
+ module_85.o (.sdata)
+ module_85.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_85.END = .;
SDK_OVERLAY.MODULE_85.SIZE = SDK_OVERLAY.MODULE_85.END - SDK_OVERLAY.MODULE_85.START;
@@ -3247,7 +3257,8 @@ SECTIONS {
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_85.BSS_START = .;
- FILE_303400.o (.bss)
+ module_85.o (.bss)
+ module_85.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_85.BSS_END = .;
SDK_OVERLAY.MODULE_85.BSS_SIZE = SDK_OVERLAY.MODULE_85.BSS_END - SDK_OVERLAY.MODULE_85.BSS_START;
@@ -4164,7 +4175,15 @@ SECTIONS {
WRITEW 84;
WRITEW 0;
- OVERLAY_TABLE(MODULE_85, 85)
+ WRITEW 85;
+ WRITEW ADDR(.MODULE_85);
+ WRITEW SDK_OVERLAY.MODULE_85.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_85.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_85.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_85.SINIT_END;
+ WRITEW 85;
+ WRITEW 0;
+
OVERLAY_TABLE(MODULE_86, 86)
} > arm9_table
diff --git a/arm9/global.inc b/arm9/global.inc
index dfce1078..9371266e 100644
--- a/arm9/global.inc
+++ b/arm9/global.inc
@@ -5923,6 +5923,8 @@
.extern FUN_020910EC
.extern FUN_0209521C
.extern FUN_020952AC
+.extern FUN_02009CDC
+.extern FUN_0201C348
.extern CTRDG_CpuCopy16
.extern CTRDG_CpuCopy32
.extern CTRDG_CpuCopy8
diff --git a/arm9/modules/85/asm/module_85.s b/arm9/modules/85/asm/module_85.s
new file mode 100644
index 00000000..f158e85d
--- /dev/null
+++ b/arm9/modules/85/asm/module_85.s
@@ -0,0 +1,16171 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD85_021D74E0
+MOD85_021D74E0: ; 0x021D74E0
+ 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, #2
+ mov r0, #3
+ mov r1, #0x4f
+ lsl r2, r2, #0x12
+ bl FUN_0201681C
+ add r0, r5, #0
+ mov r1, #8
+ mov r2, #0x4f
+ bl FUN_02006268
+ add r4, r0, #0
+ mov r0, #0
+ strb r0, [r4]
+ strb r0, [r4, #1]
+ strb r0, [r4, #2]
+ strb r0, [r4, #3]
+ strb r0, [r4, #4]
+ strb r0, [r4, #5]
+ strb r0, [r4, #6]
+ strb r0, [r4, #7]
+ add r0, r5, #0
+ bl FUN_0200628C
+ str r0, [r4]
+ bl MOD85_021D76CC
+ add r5, r0, #0
+ str r5, [r4, #4]
+ bl MOD85_021D811C
+ add r0, r5, #0
+ bl MOD85_021D7FCC
+ add r0, r5, #0
+ bl MOD85_021D76FC
+ add r0, r5, #0
+ bl MOD85_021D797C
+ add r0, r5, #0
+ bl MOD85_021D7B28
+ bl MOD85_021D7C6C
+ add r0, r5, #0
+ bl MOD85_021D7CB0
+ add r0, r5, #0
+ bl MOD85_021D8188
+ add r0, r5, #0
+ bl MOD85_021DC108
+ add r0, r5, #0
+ bl MOD85_021DC24C
+ add r0, r5, #0
+ bl MOD85_021DC384
+ mov r1, #0
+ mov r0, #0x42
+ add r2, r1, #0
+ bl FUN_0200433C
+ add r0, r5, #0
+ bl MOD85_021D8020
+ mov r0, #8
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x4f
+ str r0, [sp, #8]
+ mov r0, #0
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ mov r0, #1
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D74E0
+
+ thumb_func_start MOD85_021D75A0
+MOD85_021D75A0: ; 0x021D75A0
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ bl FUN_02006278
+ ldr r5, [r0, #4]
+ ldr r0, [r4]
+ cmp r0, #3
+ bhi _021D7626
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D75BE: ; jump table
+ .short _021D75C6 - _021D75BE - 2 ; case 0
+ .short _021D75D6 - _021D75BE - 2 ; case 1
+ .short _021D7608 - _021D75BE - 2 ; case 2
+ .short _021D7616 - _021D75BE - 2 ; case 3
+_021D75C6:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D7626
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D7626
+_021D75D6:
+ add r0, r5, #0
+ bl MOD85_021D820C
+ cmp r0, #1
+ bne _021D7626
+ ldr r0, [r4]
+ mov r1, #0
+ add r0, r0, #1
+ str r0, [r4]
+ mov r0, #8
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x4f
+ str r0, [sp, #8]
+ mov r0, #2
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_0200E1D0
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD85_021D7FF4
+ b _021D7626
+_021D7608:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D7626
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_021D7616:
+ add r0, r5, #0
+ bl MOD85_021D8014
+ cmp r0, #0
+ bne _021D7626
+ add sp, #0xc
+ mov r0, #1
+ pop {r4, r5, pc}
+_021D7626:
+ ldr r0, _021D7640 ; =0x0000044C
+ ldr r0, [r5, r0]
+ bl FUN_02064584
+ mov r0, #0x45
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl MOD85_021DE830
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ nop
+_021D7640: .word 0x0000044C
+ thumb_func_end MOD85_021D75A0
+
+ thumb_func_start MOD85_021D7644
+MOD85_021D7644: ; 0x021D7644
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ bl FUN_02006278
+ add r6, r0, #0
+ mov r0, #0
+ ldr r4, [r6, #4]
+ add r1, r0, #0
+ bl FUN_02015F10
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD85_021D769C
+ add r0, r4, #0
+ bl MOD85_021D7FE4
+ add r0, r4, #0
+ bl MOD85_021D77DC
+ add r0, r4, #0
+ bl MOD85_021D7BB8
+ add r0, r4, #0
+ bl MOD85_021D81AC
+ add r0, r4, #0
+ bl MOD85_021D8044
+ add r0, r4, #0
+ bl MOD85_021D8134
+ add r0, r4, #0
+ bl MOD85_021D76F4
+ add r0, r5, #0
+ bl FUN_0200627C
+ mov r0, #0x4f
+ bl FUN_020168D0
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D7644
+
+ thumb_func_start MOD85_021D769C
+MOD85_021D769C: ; 0x021D769C
+ push {r3, lr}
+ add r2, r1, #0
+ ldr r3, [r2, #0x60]
+ ldr r1, _021D76C8 ; =0x0000C350
+ cmp r3, r1
+ bls _021D76AA
+ add r3, r1, #0
+_021D76AA:
+ ldr r1, [r0]
+ ldr r1, [r1]
+ str r3, [r1]
+ ldr r3, [r2, #0x20]
+ ldr r1, [r0]
+ str r3, [r1, #0xc]
+ ldr r0, [r0]
+ ldr r0, [r0, #8]
+ cmp r0, #0
+ beq _021D76C6
+ ldr r2, [r2, #0xc]
+ mov r1, #0xe
+ bl FUN_0202A11C
+_021D76C6:
+ pop {r3, pc}
+ .align 2, 0
+_021D76C8: .word 0x0000C350
+ thumb_func_end MOD85_021D769C
+
+ thumb_func_start MOD85_021D76CC
+MOD85_021D76CC: ; 0x021D76CC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021D76EC ; =0x000004C8
+ bl MOD85_021D80F8
+ ldr r1, [r4]
+ ldr r1, [r1]
+ str r1, [r0, #0x60]
+ add r1, r0, #0
+ ldr r2, [r4, #4]
+ add r1, #0x88
+ str r2, [r1]
+ ldr r2, [r4, #0x10]
+ ldr r1, _021D76F0 ; =0x000004C4
+ str r2, [r0, r1]
+ pop {r4, pc}
+ .align 2, 0
+_021D76EC: .word 0x000004C8
+_021D76F0: .word 0x000004C4
+ thumb_func_end MOD85_021D76CC
+
+ thumb_func_start MOD85_021D76F4
+MOD85_021D76F4: ; 0x021D76F4
+ ldr r3, _021D76F8 ; =FUN_02016A18
+ bx r3
+ .align 2, 0
+_021D76F8: .word FUN_02016A18
+ thumb_func_end MOD85_021D76F4
+
+ thumb_func_start MOD85_021D76FC
+MOD85_021D76FC: ; 0x021D76FC
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ mov r0, #0x4f
+ bl FUN_02016B94
+ ldr r1, _021D77CC ; =0x0000043C
+ str r0, [r4, r1]
+ bl MOD85_021D77F8
+ ldr r0, _021D77CC ; =0x0000043C
+ ldr r0, [r4, r0]
+ bl MOD85_021D7818
+ bl MOD85_021D7930
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201E6E4
+ mov r0, #2
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #4
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #8
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0201E74C
+ mov r0, #2
+ mov r1, #0
+ bl FUN_0201E74C
+ mov r0, #4
+ mov r1, #0
+ bl FUN_0201E74C
+ mov r0, #8
+ mov r1, #1
+ bl FUN_0201E74C
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E74C
+ ldr r0, _021D77D0 ; =0x04000008
+ mov r2, #3
+ ldrh r1, [r0]
+ mov r3, #1
+ mov r7, #2
+ bic r1, r2
+ strh r1, [r0]
+ ldrh r1, [r0, #2]
+ ldr r6, _021D77D4 ; =0x04001008
+ bic r1, r2
+ orr r1, r3
+ strh r1, [r0, #2]
+ ldrh r1, [r0, #4]
+ bic r1, r2
+ orr r1, r7
+ strh r1, [r0, #4]
+ ldrh r5, [r0, #6]
+ mov r1, #3
+ bic r5, r2
+ orr r5, r1
+ strh r5, [r0, #6]
+ ldrh r5, [r6]
+ bic r5, r2
+ strh r5, [r6]
+ ldrh r5, [r6, #2]
+ bic r5, r2
+ orr r3, r5
+ strh r3, [r6, #2]
+ ldrh r3, [r6, #4]
+ add r0, #0x48
+ bic r3, r2
+ orr r3, r7
+ strh r3, [r6, #4]
+ ldrh r3, [r6, #6]
+ bic r3, r2
+ orr r1, r3
+ strh r1, [r6, #6]
+ mov r1, #9
+ str r1, [sp]
+ mov r1, #4
+ mov r2, #0x10
+ mov r3, #8
+ bl G2x_SetBlendAlpha_
+ ldr r0, _021D77D8 ; =MOD85_021D80DC
+ add r1, r4, #0
+ bl FUN_02015F10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D77CC: .word 0x0000043C
+_021D77D0: .word 0x04000008
+_021D77D4: .word 0x04001008
+_021D77D8: .word MOD85_021D80DC
+ thumb_func_end MOD85_021D76FC
+
+ thumb_func_start MOD85_021D77DC
+MOD85_021D77DC: ; 0x021D77DC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021D77F4 ; =0x0000043C
+ ldr r0, [r4, r0]
+ bl MOD85_021D7904
+ add r0, r4, #0
+ bl MOD85_021D7D04
+ bl MOD85_021D7CA4
+ pop {r4, pc}
+ .align 2, 0
+_021D77F4: .word 0x0000043C
+ thumb_func_end MOD85_021D77DC
+
+ thumb_func_start MOD85_021D77F8
+MOD85_021D77F8: ; 0x021D77F8
+ push {r4, lr}
+ sub sp, #0x28
+ ldr r4, _021D7814 ; =0x021DED7C
+ add r3, sp, #0
+ mov r2, #5
+_021D7802:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _021D7802
+ add r0, sp, #0
+ bl FUN_0201E66C
+ add sp, #0x28
+ pop {r4, pc}
+ .align 2, 0
+_021D7814: .word 0x021DED7C
+ thumb_func_end MOD85_021D77F8
+
+ thumb_func_start MOD85_021D7818
+MOD85_021D7818: ; 0x021D7818
+ push {r3, r4, r5, lr}
+ sub sp, #0x80
+ ldr r2, _021D78EC ; =0x04000304
+ add r4, r0, #0
+ ldrh r1, [r2]
+ lsr r0, r2, #0xb
+ ldr r5, _021D78F0 ; =0x021DECEC
+ orr r0, r1
+ strh r0, [r2]
+ add r3, sp, #0x70
+ add r2, r3, #0
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ add r0, r2, #0
+ bl FUN_02016BBC
+ ldr r5, _021D78F4 ; =0x021DED28
+ add r3, sp, #0x54
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #0
+ str r0, [r3]
+ add r0, r4, #0
+ add r3, r1, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_02018744
+ mov r0, #0
+ mov r1, #0x20
+ add r2, r0, #0
+ mov r3, #0x4f
+ bl FUN_02017F18
+ ldr r5, _021D78F8 ; =0x021DED44
+ add r3, sp, #0x38
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #1
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_02018744
+ ldr r5, _021D78FC ; =0x021DED60
+ add r3, sp, #0x1c
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #2
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #2
+ bl FUN_02018744
+ ldr r5, _021D7900 ; =0x021DED0C
+ add r3, sp, #0
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #7
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #7
+ bl FUN_02018744
+ add sp, #0x80
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D78EC: .word 0x04000304
+_021D78F0: .word 0x021DECEC
+_021D78F4: .word 0x021DED28
+_021D78F8: .word 0x021DED44
+_021D78FC: .word 0x021DED60
+_021D7900: .word 0x021DED0C
+ thumb_func_end MOD85_021D7818
+
+ thumb_func_start MOD85_021D7904
+MOD85_021D7904: ; 0x021D7904
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #0
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #2
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #7
+ bl FUN_020178A0
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D7904
+
+ thumb_func_start MOD85_021D7930
+MOD85_021D7930: ; 0x021D7930
+ push {r4, r5}
+ mov r0, #1
+ lsl r0, r0, #0x1a
+ ldr r2, [r0]
+ ldr r1, _021D7978 ; =0xFFFF1FFF
+ add r5, r0, #0
+ and r2, r1
+ lsr r1, r0, #0xd
+ orr r1, r2
+ str r1, [r0]
+ add r5, #0x48
+ ldrh r3, [r5]
+ mov r1, #0x3f
+ mov r2, #0x1f
+ bic r3, r1
+ add r4, r3, #0
+ orr r4, r2
+ mov r3, #0x20
+ orr r4, r3
+ strh r4, [r5]
+ add r4, r0, #0
+ add r4, #0x4a
+ ldrh r5, [r4]
+ bic r5, r1
+ add r1, r5, #0
+ orr r1, r2
+ orr r1, r3
+ strh r1, [r4]
+ add r1, r0, #0
+ mov r2, #0xff
+ add r1, #0x40
+ strh r2, [r1]
+ add r0, #0x44
+ strh r2, [r0]
+ pop {r4, r5}
+ bx lr
+ .align 2, 0
+_021D7978: .word 0xFFFF1FFF
+ thumb_func_end MOD85_021D7930
+
+ thumb_func_start MOD85_021D797C
+MOD85_021D797C: ; 0x021D797C
+ push {r3, r4, r5, lr}
+ mov r1, #3
+ mov r2, #0
+ add r4, r0, #0
+ bl MOD85_021D8144
+ ldr r1, _021D7B1C ; =0x00000448
+ add r5, r0, #0
+ add r1, r4, r1
+ bl FUN_020B0138
+ ldr r1, _021D7B1C ; =0x00000448
+ mov r2, #0x1a
+ ldr r1, [r4, r1]
+ mov r0, #1
+ ldr r1, [r1, #0xc]
+ lsl r2, r2, #4
+ mov r3, #0
+ bl FUN_02017FB4
+ add r0, r5, #0
+ bl FUN_02016A18
+ mov r1, #0
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD85_021D8144
+ ldr r1, _021D7B20 ; =0x00000444
+ add r5, r0, #0
+ add r1, r4, r1
+ bl FUN_020B0088
+ ldr r0, _021D7B20 ; =0x00000444
+ mov r1, #0
+ ldr r3, [r4, r0]
+ sub r0, #8
+ str r1, [sp]
+ ldr r2, [r3, #0x14]
+ ldr r0, [r4, r0]
+ ldr r3, [r3, #0x10]
+ mov r1, #1
+ bl FUN_02017E14
+ add r0, r5, #0
+ bl FUN_02016A18
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0
+ bl MOD85_021D8144
+ mov r1, #0x11
+ lsl r1, r1, #6
+ add r1, r4, r1
+ add r5, r0, #0
+ bl FUN_020B0180
+ mov r0, #0x11
+ lsl r0, r0, #6
+ ldr r3, [r4, r0]
+ sub r0, r0, #4
+ add r2, r3, #0
+ ldr r0, [r4, r0]
+ ldr r3, [r3, #8]
+ mov r1, #1
+ add r2, #0xc
+ bl FUN_02017DFC
+ ldr r0, _021D7B24 ; =0x0000043C
+ mov r1, #1
+ ldr r0, [r4, r0]
+ bl FUN_02017CD0
+ add r0, r5, #0
+ bl FUN_02016A18
+ add r0, r4, #0
+ mov r1, #8
+ mov r2, #0
+ bl MOD85_021D8144
+ ldr r1, _021D7B20 ; =0x00000444
+ add r5, r0, #0
+ add r1, r4, r1
+ bl FUN_020B0088
+ ldr r0, _021D7B20 ; =0x00000444
+ mov r1, #0
+ ldr r3, [r4, r0]
+ sub r0, #8
+ str r1, [sp]
+ ldr r2, [r3, #0x14]
+ ldr r0, [r4, r0]
+ ldr r3, [r3, #0x10]
+ mov r1, #2
+ bl FUN_02017E14
+ add r0, r5, #0
+ bl FUN_02016A18
+ add r0, r4, #0
+ mov r1, #9
+ mov r2, #0
+ bl MOD85_021D8144
+ mov r1, #0x11
+ lsl r1, r1, #6
+ add r1, r4, r1
+ add r5, r0, #0
+ bl FUN_020B0180
+ mov r0, #0x11
+ lsl r0, r0, #6
+ ldr r3, [r4, r0]
+ sub r0, r0, #4
+ add r2, r3, #0
+ ldr r0, [r4, r0]
+ ldr r3, [r3, #8]
+ mov r1, #2
+ add r2, #0xc
+ bl FUN_02017DFC
+ ldr r0, _021D7B24 ; =0x0000043C
+ mov r1, #2
+ ldr r0, [r4, r0]
+ bl FUN_02017CD0
+ add r0, r5, #0
+ bl FUN_02016A18
+ add r0, r4, #0
+ mov r1, #3
+ mov r2, #0
+ bl MOD85_021D8144
+ ldr r1, _021D7B1C ; =0x00000448
+ add r5, r0, #0
+ add r1, r4, r1
+ bl FUN_020B0138
+ ldr r1, _021D7B1C ; =0x00000448
+ mov r2, #0x1a
+ ldr r1, [r4, r1]
+ mov r0, #7
+ ldr r1, [r1, #0xc]
+ lsl r2, r2, #4
+ mov r3, #0
+ bl FUN_02017FB4
+ add r0, r5, #0
+ bl FUN_02016A18
+ add r0, r4, #0
+ mov r1, #2
+ mov r2, #0
+ bl MOD85_021D8144
+ ldr r1, _021D7B20 ; =0x00000444
+ add r5, r0, #0
+ add r1, r4, r1
+ bl FUN_020B0088
+ ldr r0, _021D7B20 ; =0x00000444
+ mov r1, #0
+ ldr r3, [r4, r0]
+ sub r0, #8
+ str r1, [sp]
+ ldr r2, [r3, #0x14]
+ ldr r0, [r4, r0]
+ ldr r3, [r3, #0x10]
+ mov r1, #7
+ bl FUN_02017E14
+ add r0, r5, #0
+ bl FUN_02016A18
+ add r0, r4, #0
+ mov r1, #4
+ mov r2, #0
+ bl MOD85_021D8144
+ mov r1, #0x11
+ lsl r1, r1, #6
+ add r1, r4, r1
+ add r5, r0, #0
+ bl FUN_020B0180
+ mov r0, #0x11
+ lsl r0, r0, #6
+ ldr r3, [r4, r0]
+ sub r0, r0, #4
+ add r2, r3, #0
+ ldr r0, [r4, r0]
+ ldr r3, [r3, #8]
+ mov r1, #7
+ add r2, #0xc
+ bl FUN_02017DFC
+ ldr r0, _021D7B24 ; =0x0000043C
+ mov r1, #7
+ ldr r0, [r4, r0]
+ bl FUN_02017CD0
+ add r0, r5, #0
+ bl FUN_02016A18
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D7B1C: .word 0x00000448
+_021D7B20: .word 0x00000444
+_021D7B24: .word 0x0000043C
+ thumb_func_end MOD85_021D797C
+
+ thumb_func_start MOD85_021D7B28
+MOD85_021D7B28: ; 0x021D7B28
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r5, r0, #0
+ ldr r0, _021D7BA4 ; =0x00000408
+ mov r1, #0
+ add r4, r5, r0
+ str r1, [sp]
+ mov r2, #0x4f
+ str r2, [sp, #4]
+ add r0, #0x34
+ ldr r0, [r5, r0]
+ mov r2, #1
+ mov r3, #0xf
+ bl FUN_0200CB00
+ ldr r1, _021D7BA8 ; =0x000004C4
+ mov r2, #0x1f
+ ldr r0, [r5, r1]
+ sub r1, #0x88
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #0x4f
+ str r0, [sp, #4]
+ ldr r0, [r5, r1]
+ mov r1, #0
+ mov r3, #0xe
+ bl FUN_0200CD68
+ mov r1, #0x1e
+ mov r0, #0
+ lsl r1, r1, #4
+ mov r2, #0x4f
+ bl FUN_02002EEC
+ ldr r2, _021D7BAC ; =0x000001E9
+ mov r0, #0
+ mov r1, #0x1a
+ mov r3, #0x4f
+ bl FUN_0200A86C
+ ldr r1, _021D7BA4 ; =0x00000408
+ str r0, [r5, r1]
+ mov r0, #0x4f
+ bl FUN_0200AA80
+ str r0, [r4, #4]
+ ldr r0, _021D7BB0 ; =0x0000043C
+ add r1, r4, #0
+ ldr r0, [r5, r0]
+ ldr r2, _021D7BB4 ; =0x021DECE4
+ add r1, #8
+ bl FUN_02019150
+ mov r0, #1
+ lsl r0, r0, #8
+ mov r1, #0x4f
+ bl FUN_020219F4
+ str r0, [r4, #0x18]
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D7BA4: .word 0x00000408
+_021D7BA8: .word 0x000004C4
+_021D7BAC: .word 0x000001E9
+_021D7BB0: .word 0x0000043C
+_021D7BB4: .word 0x021DECE4
+ thumb_func_end MOD85_021D7B28
+
+ thumb_func_start MOD85_021D7BB8
+MOD85_021D7BB8: ; 0x021D7BB8
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r0, _021D7BE8 ; =0x00000408
+ add r4, r5, r0
+ add r6, r4, #0
+ add r6, #8
+ add r0, r6, #0
+ bl FUN_02019570
+ add r0, r6, #0
+ bl FUN_02019178
+ ldr r0, _021D7BE8 ; =0x00000408
+ ldr r0, [r5, r0]
+ bl FUN_0200A8B8
+ ldr r0, [r4, #4]
+ bl FUN_0200AB18
+ ldr r0, [r4, #0x18]
+ bl FUN_02021A20
+ pop {r4, r5, r6, pc}
+ nop
+_021D7BE8: .word 0x00000408
+ thumb_func_end MOD85_021D7BB8
+
+ thumb_func_start MOD85_021D7BEC
+MOD85_021D7BEC: ; 0x021D7BEC
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ ldr r0, _021D7C40 ; =0x00000408
+ add r6, r1, #0
+ add r4, r5, r0
+ add r0, r4, #0
+ add r0, #8
+ mov r1, #1
+ mov r2, #0x1f
+ mov r3, #0xe
+ bl FUN_0200D0BC
+ add r0, r4, #0
+ add r0, #8
+ mov r1, #0xf
+ bl FUN_02019620
+ ldr r0, _021D7C40 ; =0x00000408
+ ldr r2, [r4, #0x18]
+ ldr r0, [r5, r0]
+ add r1, r6, #0
+ bl FUN_0200A8E0
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ str r3, [sp, #8]
+ add r0, r4, #0
+ ldr r2, [r4, #0x18]
+ add r0, #8
+ mov r1, #1
+ bl FUN_0201BD84
+ add r4, #8
+ add r0, r4, #0
+ bl FUN_02019220
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ nop
+_021D7C40: .word 0x00000408
+ thumb_func_end MOD85_021D7BEC
+
+ thumb_func_start MOD85_021D7C44
+MOD85_021D7C44: ; 0x021D7C44
+ push {r3, r4, r5, lr}
+ ldr r4, _021D7C68 ; =0x00000408
+ add r5, r0, #0
+ add r0, r5, r4
+ add r0, #8
+ mov r1, #1
+ bl FUN_0200D0E0
+ add r0, r5, r4
+ add r0, #8
+ mov r1, #0
+ bl FUN_02019620
+ add r0, r5, r4
+ add r0, #8
+ bl FUN_02019220
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D7C68: .word 0x00000408
+ thumb_func_end MOD85_021D7C44
+
+ thumb_func_start MOD85_021D7C6C
+MOD85_021D7C6C: ; 0x021D7C6C
+ push {r4, lr}
+ sub sp, #0x10
+ ldr r4, _021D7C9C ; =0x021DECFC
+ add r3, sp, #0
+ add r2, r3, #0
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r1, _021D7CA0 ; =0x00200010
+ add r0, r2, #0
+ add r2, r1, #0
+ bl FUN_0201D060
+ mov r0, #0x10
+ mov r1, #0x4f
+ bl FUN_0201E00C
+ bl FUN_0201D168
+ bl FUN_0201E0BC
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_021D7C9C: .word 0x021DECFC
+_021D7CA0: .word 0x00200010
+ thumb_func_end MOD85_021D7C6C
+
+ thumb_func_start MOD85_021D7CA4
+MOD85_021D7CA4: ; 0x021D7CA4
+ push {r3, lr}
+ bl FUN_0201D12C
+ bl FUN_0201E08C
+ pop {r3, pc}
+ thumb_func_end MOD85_021D7CA4
+
+ thumb_func_start MOD85_021D7CB0
+MOD85_021D7CB0: ; 0x021D7CB0
+ push {r3, r4, lr}
+ sub sp, #0x1c
+ add r4, r0, #0
+ 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, #0x4f
+ str r2, [sp, #0x10]
+ add r2, r0, #0
+ bl FUN_02009EAC
+ mov r0, #0x10
+ str r0, [sp]
+ mov r1, #0x40
+ str r1, [sp, #4]
+ mov r2, #0x20
+ str r2, [sp, #8]
+ mov r3, #0xb
+ str r3, [sp, #0xc]
+ mov r0, #8
+ str r0, [sp, #0x10]
+ str r3, [sp, #0x14]
+ str r3, [sp, #0x18]
+ mov r0, #0x4f
+ add r3, r1, #0
+ bl MOD85_021DE5A4
+ mov r1, #0x45
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ add r0, r4, #0
+ bl MOD85_021D7D1C
+ add sp, #0x1c
+ pop {r3, r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D7CB0
+
+ thumb_func_start MOD85_021D7D04
+MOD85_021D7D04: ; 0x021D7D04
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD85_021D7FC8
+ mov r0, #0x45
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl MOD85_021DE710
+ bl FUN_02009FA0
+ pop {r4, pc}
+ thumb_func_end MOD85_021D7D04
+
+ thumb_func_start MOD85_021D7D1C
+MOD85_021D7D1C: ; 0x021D7D1C
+ push {r3, r4, lr}
+ sub sp, #4
+ mov r2, #0x45
+ add r4, r0, #0
+ mov r0, #0
+ lsl r2, r2, #4
+ str r0, [sp]
+ ldr r0, [r4, r2]
+ sub r2, #0x18
+ ldr r2, [r4, r2]
+ mov r1, #1
+ mov r3, #0xb
+ bl MOD85_021DE840
+ mov r1, #1
+ mov r2, #0x45
+ str r1, [sp]
+ lsl r2, r2, #4
+ ldr r0, [r4, r2]
+ sub r2, #0x18
+ ldr r2, [r4, r2]
+ mov r3, #0x15
+ bl MOD85_021DE840
+ mov r2, #0x45
+ mov r0, #6
+ lsl r2, r2, #4
+ str r0, [sp]
+ ldr r0, [r4, r2]
+ sub r2, #0x18
+ ldr r2, [r4, r2]
+ mov r1, #2
+ mov r3, #0x44
+ bl MOD85_021DE840
+ mov r2, #0x45
+ mov r0, #7
+ lsl r2, r2, #4
+ str r0, [sp]
+ ldr r0, [r4, r2]
+ sub r2, #0x18
+ ldr r2, [r4, r2]
+ mov r1, #2
+ mov r3, #0x47
+ bl MOD85_021DE840
+ mov r2, #0x45
+ mov r0, #8
+ lsl r2, r2, #4
+ str r0, [sp]
+ ldr r0, [r4, r2]
+ sub r2, #0x18
+ ldr r2, [r4, r2]
+ mov r1, #2
+ mov r3, #0x40
+ bl MOD85_021DE840
+ mov r2, #0x45
+ mov r0, #9
+ lsl r2, r2, #4
+ str r0, [sp]
+ ldr r0, [r4, r2]
+ sub r2, #0x18
+ ldr r2, [r4, r2]
+ mov r1, #2
+ mov r3, #0x3c
+ bl MOD85_021DE840
+ mov r2, #0x45
+ mov r0, #0
+ lsl r2, r2, #4
+ str r0, [sp]
+ ldr r0, [r4, r2]
+ sub r2, #0x18
+ ldr r2, [r4, r2]
+ mov r1, #3
+ mov r3, #0xa
+ bl MOD85_021DE910
+ mov r1, #1
+ mov r2, #0x45
+ str r1, [sp]
+ lsl r2, r2, #4
+ ldr r0, [r4, r2]
+ sub r2, #0x18
+ ldr r2, [r4, r2]
+ mov r3, #0x14
+ bl MOD85_021DE910
+ mov r2, #0x45
+ mov r0, #6
+ lsl r2, r2, #4
+ str r0, [sp]
+ ldr r0, [r4, r2]
+ sub r2, #0x18
+ ldr r2, [r4, r2]
+ mov r1, #2
+ mov r3, #0x43
+ bl MOD85_021DE910
+ mov r2, #0x45
+ mov r0, #7
+ lsl r2, r2, #4
+ str r0, [sp]
+ ldr r0, [r4, r2]
+ sub r2, #0x18
+ ldr r2, [r4, r2]
+ mov r1, #2
+ mov r3, #0x3f
+ bl MOD85_021DE910
+ mov r1, #0x45
+ lsl r1, r1, #4
+ ldr r0, [r4, r1]
+ sub r1, #0x18
+ ldr r1, [r4, r1]
+ mov r2, #0xc
+ mov r3, #0
+ bl MOD85_021DE9E4
+ mov r1, #0x45
+ lsl r1, r1, #4
+ ldr r0, [r4, r1]
+ sub r1, #0x18
+ ldr r1, [r4, r1]
+ mov r2, #0x16
+ mov r3, #1
+ bl MOD85_021DE9E4
+ mov r1, #0x45
+ lsl r1, r1, #4
+ ldr r0, [r4, r1]
+ sub r1, #0x18
+ ldr r1, [r4, r1]
+ mov r2, #0x45
+ mov r3, #6
+ bl MOD85_021DE9E4
+ mov r1, #0x45
+ lsl r1, r1, #4
+ ldr r0, [r4, r1]
+ sub r1, #0x18
+ ldr r1, [r4, r1]
+ mov r2, #0x48
+ mov r3, #7
+ bl MOD85_021DE9E4
+ mov r1, #0x45
+ lsl r1, r1, #4
+ ldr r0, [r4, r1]
+ sub r1, #0x18
+ ldr r1, [r4, r1]
+ mov r2, #0x41
+ mov r3, #8
+ bl MOD85_021DE9E4
+ mov r1, #0x45
+ lsl r1, r1, #4
+ ldr r0, [r4, r1]
+ sub r1, #0x18
+ ldr r1, [r4, r1]
+ mov r2, #0x3d
+ mov r3, #9
+ bl MOD85_021DE9E4
+ mov r1, #0x45
+ lsl r1, r1, #4
+ ldr r0, [r4, r1]
+ sub r1, #0x18
+ ldr r1, [r4, r1]
+ mov r2, #0xd
+ mov r3, #0
+ bl MOD85_021DEA4C
+ mov r1, #0x45
+ lsl r1, r1, #4
+ ldr r0, [r4, r1]
+ sub r1, #0x18
+ ldr r1, [r4, r1]
+ mov r2, #0x17
+ mov r3, #1
+ bl MOD85_021DEA4C
+ mov r1, #0x45
+ lsl r1, r1, #4
+ ldr r0, [r4, r1]
+ sub r1, #0x18
+ ldr r1, [r4, r1]
+ mov r2, #0x46
+ mov r3, #6
+ bl MOD85_021DEA4C
+ mov r1, #0x45
+ lsl r1, r1, #4
+ ldr r0, [r4, r1]
+ sub r1, #0x18
+ ldr r1, [r4, r1]
+ mov r2, #0x49
+ mov r3, #7
+ bl MOD85_021DEA4C
+ mov r1, #0x45
+ lsl r1, r1, #4
+ ldr r0, [r4, r1]
+ sub r1, #0x18
+ ldr r1, [r4, r1]
+ mov r2, #0x42
+ mov r3, #8
+ bl MOD85_021DEA4C
+ mov r1, #0x45
+ lsl r1, r1, #4
+ ldr r0, [r4, r1]
+ sub r1, #0x18
+ ldr r1, [r4, r1]
+ mov r2, #0x3e
+ mov r3, #9
+ bl MOD85_021DEA4C
+ mov r0, #0x45
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl MOD85_021DE8A8
+ mov r0, #0x45
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl MOD85_021DE8A8
+ mov r0, #0x45
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl MOD85_021DE8A8
+ mov r0, #0x45
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #7
+ bl MOD85_021DE8A8
+ mov r0, #0x45
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #8
+ bl MOD85_021DE8A8
+ mov r0, #0x45
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #9
+ bl MOD85_021DE8A8
+ mov r0, #0x45
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl MOD85_021DE8DC
+ mov r0, #0x45
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl MOD85_021DE8DC
+ mov r0, #0x45
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl MOD85_021DE8DC
+ mov r0, #0x45
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #7
+ bl MOD85_021DE8DC
+ mov r0, #0x45
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #8
+ bl MOD85_021DE8DC
+ mov r0, #0x45
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #9
+ bl MOD85_021DE8DC
+ mov r0, #0x45
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl MOD85_021DE97C
+ mov r0, #0x45
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl MOD85_021DE97C
+ mov r0, #0x45
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl MOD85_021DE97C
+ mov r0, #0x45
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #7
+ bl MOD85_021DE97C
+ mov r0, #0x45
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl MOD85_021DE9B0
+ mov r0, #0x45
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl MOD85_021DE9B0
+ mov r0, #0x45
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl MOD85_021DE9B0
+ mov r0, #0x45
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #7
+ bl MOD85_021DE9B0
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D7D1C
+
+ thumb_func_start MOD85_021D7FC8
+MOD85_021D7FC8: ; 0x021D7FC8
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD85_021D7FC8
+
+ thumb_func_start MOD85_021D7FCC
+MOD85_021D7FCC: ; 0x021D7FCC
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x4f
+ mov r1, #0x80
+ bl FUN_020643C0
+ ldr r1, _021D7FE0 ; =0x0000044C
+ str r0, [r4, r1]
+ pop {r4, pc}
+ nop
+_021D7FE0: .word 0x0000044C
+ thumb_func_end MOD85_021D7FCC
+
+ thumb_func_start MOD85_021D7FE4
+MOD85_021D7FE4: ; 0x021D7FE4
+ ldr r1, _021D7FEC ; =0x0000044C
+ ldr r3, _021D7FF0 ; =FUN_020643F0
+ ldr r0, [r0, r1]
+ bx r3
+ .align 2, 0
+_021D7FEC: .word 0x0000044C
+_021D7FF0: .word FUN_020643F0
+ thumb_func_end MOD85_021D7FE4
+
+ thumb_func_start MOD85_021D7FF4
+MOD85_021D7FF4: ; 0x021D7FF4
+ ldr r2, _021D8010 ; =0x00000424
+ add r2, r0, r2
+ ldr r0, [r2, #8]
+ cmp r0, r1
+ beq _021D800C
+ ldr r0, [r2, #0xc]
+ cmp r0, r1
+ beq _021D800C
+ str r1, [r2, #0xc]
+ mov r0, #1
+ str r0, [r2]
+ str r0, [r2, #4]
+_021D800C:
+ bx lr
+ nop
+_021D8010: .word 0x00000424
+ thumb_func_end MOD85_021D7FF4
+
+ thumb_func_start MOD85_021D8014
+MOD85_021D8014: ; 0x021D8014
+ ldr r1, _021D801C ; =0x00000428
+ ldr r0, [r0, r1]
+ bx lr
+ nop
+_021D801C: .word 0x00000428
+ thumb_func_end MOD85_021D8014
+
+ thumb_func_start MOD85_021D8020
+MOD85_021D8020: ; 0x021D8020
+ push {r4, lr}
+ add r1, r0, #0
+ ldr r0, _021D803C ; =0x00000424
+ mov r2, #0x90
+ add r4, r1, r0
+ mov r0, #0
+ str r0, [r4, #8]
+ mov r0, #3
+ str r0, [r4, #0xc]
+ ldr r0, _021D8040 ; =MOD85_021D8054
+ bl FUN_0200CA44
+ str r0, [r4, #0x10]
+ pop {r4, pc}
+ .align 2, 0
+_021D803C: .word 0x00000424
+_021D8040: .word MOD85_021D8054
+ thumb_func_end MOD85_021D8020
+
+ thumb_func_start MOD85_021D8044
+MOD85_021D8044: ; 0x021D8044
+ ldr r1, _021D804C ; =0x00000434
+ ldr r3, _021D8050 ; =FUN_0200CAB4
+ ldr r0, [r0, r1]
+ bx r3
+ .align 2, 0
+_021D804C: .word 0x00000434
+_021D8050: .word FUN_0200CAB4
+ thumb_func_end MOD85_021D8044
+
+ thumb_func_start MOD85_021D8054
+MOD85_021D8054: ; 0x021D8054
+ push {r4, lr}
+ ldr r0, _021D80D8 ; =0x00000424
+ add r4, r1, r0
+ ldr r1, [r4]
+ cmp r1, #0
+ beq _021D80D4
+ cmp r1, #1
+ beq _021D806A
+ cmp r1, #2
+ beq _021D809E
+ pop {r4, pc}
+_021D806A:
+ ldr r1, [r4, #8]
+ cmp r1, #0
+ beq _021D807A
+ cmp r1, #1
+ beq _021D8084
+ cmp r1, #2
+ beq _021D808E
+ b _021D8096
+_021D807A:
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_020047C8
+ b _021D8096
+_021D8084:
+ add r0, #0x7c
+ mov r1, #0
+ bl FUN_02005350
+ b _021D8096
+_021D808E:
+ add r0, #0x7d
+ mov r1, #0
+ bl FUN_02005350
+_021D8096:
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r4, pc}
+_021D809E:
+ ldr r1, [r4, #0xc]
+ cmp r1, #0
+ beq _021D80AE
+ cmp r1, #1
+ beq _021D80B8
+ cmp r1, #2
+ beq _021D80C0
+ b _021D80C6
+_021D80AE:
+ mov r0, #1
+ mov r1, #0
+ bl FUN_020047C8
+ b _021D80C6
+_021D80B8:
+ add r0, #0x7c
+ bl FUN_020051F4
+ b _021D80C6
+_021D80C0:
+ add r0, #0x7d
+ bl FUN_020051F4
+_021D80C6:
+ ldr r0, [r4, #0xc]
+ str r0, [r4, #8]
+ mov r0, #3
+ str r0, [r4, #0xc]
+ mov r0, #0
+ str r0, [r4, #4]
+ str r0, [r4]
+_021D80D4:
+ pop {r4, pc}
+ nop
+_021D80D8: .word 0x00000424
+ thumb_func_end MOD85_021D8054
+
+ thumb_func_start MOD85_021D80DC
+MOD85_021D80DC: ; 0x021D80DC
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_0201C30C
+ bl FUN_02009F80
+ ldr r0, _021D80F4 ; =0x0000043C
+ ldr r0, [r4, r0]
+ bl FUN_0201AB60
+ pop {r4, pc}
+ nop
+_021D80F4: .word 0x0000043C
+ thumb_func_end MOD85_021D80DC
+
+ thumb_func_start MOD85_021D80F8
+MOD85_021D80F8: ; 0x021D80F8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x4f
+ add r1, r5, #0
+ bl FUN_02016998
+ add r4, r0, #0
+ bne _021D810C
+ bl ErrorHandling
+_021D810C:
+ add r0, r4, #0
+ mov r1, #0
+ add r2, r5, #0
+ bl Call_FillMemWithValue
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D80F8
+
+ thumb_func_start MOD85_021D811C
+MOD85_021D811C: ; 0x021D811C
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x85
+ mov r1, #0x4f
+ bl FUN_02006670
+ ldr r1, _021D8130 ; =0x00000438
+ str r0, [r4, r1]
+ pop {r4, pc}
+ nop
+_021D8130: .word 0x00000438
+ thumb_func_end MOD85_021D811C
+
+ thumb_func_start MOD85_021D8134
+MOD85_021D8134: ; 0x021D8134
+ ldr r1, _021D813C ; =0x00000438
+ ldr r3, _021D8140 ; =FUN_020066F4
+ ldr r0, [r0, r1]
+ bx r3
+ .align 2, 0
+_021D813C: .word 0x00000438
+_021D8140: .word FUN_020066F4
+ thumb_func_end MOD85_021D8134
+
+ thumb_func_start MOD85_021D8144
+MOD85_021D8144: ; 0x021D8144
+ push {r4, r5, r6, lr}
+ add r4, r0, #0
+ ldr r0, _021D8184 ; =0x00000438
+ add r6, r1, #0
+ ldr r0, [r4, r0]
+ add r5, r2, #0
+ bl FUN_020067D0
+ add r1, r0, #0
+ cmp r5, #1
+ bne _021D8162
+ mov r0, #0x4f
+ bl FUN_02016998
+ b _021D8168
+_021D8162:
+ mov r0, #0x4f
+ bl FUN_020169D8
+_021D8168:
+ add r5, r0, #0
+ cmp r5, #0
+ bne _021D8172
+ bl ErrorHandling
+_021D8172:
+ ldr r0, _021D8184 ; =0x00000438
+ add r1, r6, #0
+ ldr r0, [r4, r0]
+ add r2, r5, #0
+ bl FUN_02006774
+ add r0, r5, #0
+ pop {r4, r5, r6, pc}
+ nop
+_021D8184: .word 0x00000438
+ thumb_func_end MOD85_021D8144
+
+ thumb_func_start MOD85_021D8188
+MOD85_021D8188: ; 0x021D8188
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD85_021D81C8
+ add r0, r4, #0
+ bl MOD85_021D92E8
+ add r0, r4, #0
+ bl MOD85_021DAD20
+ add r0, r4, #0
+ bl MOD85_021DAEC0
+ add r0, r4, #0
+ bl MOD85_021DB494
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D8188
+
+ thumb_func_start MOD85_021D81AC
+MOD85_021D81AC: ; 0x021D81AC
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD85_021D931C
+ add r0, r4, #0
+ bl MOD85_021DAD44
+ add r0, r4, #0
+ bl MOD85_021DAEE4
+ add r0, r4, #0
+ bl MOD85_021DB600
+ pop {r4, pc}
+ thumb_func_end MOD85_021D81AC
+
+ thumb_func_start MOD85_021D81C8
+MOD85_021D81C8: ; 0x021D81C8
+ push {r3, r4, r5, r6, r7, lr}
+ mov r7, #0x15
+ add r5, r0, #0
+ mov r4, #0
+ lsl r6, r7, #0x11
+_021D81D2:
+ bl FUN_0201B9EC
+ add r1, r7, #0
+ bl _s32_div_f
+ add r0, r5, #0
+ add r0, #0xa8
+ str r1, [r0]
+ lsl r0, r1, #0x11
+ sub r1, r6, r0
+ add r0, r5, #0
+ add r0, #0x90
+ str r1, [r0]
+ add r0, r5, #0
+ add r0, #0x90
+ mov r1, #0x2a
+ ldr r0, [r0]
+ lsl r1, r1, #0x10
+ bl _s32_div_f
+ add r0, r5, #0
+ add r0, #0x90
+ add r4, r4, #1
+ add r5, r5, #4
+ str r1, [r0]
+ cmp r4, #3
+ blt _021D81D2
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D81C8
+
+ thumb_func_start MOD85_021D820C
+MOD85_021D820C: ; 0x021D820C
+ push {r3, r4, r5, lr}
+ ldr r4, _021D822C ; =0x021DEF94
+ add r5, r0, #0
+_021D8212:
+ ldr r1, [r5]
+ add r0, r5, #0
+ lsl r1, r1, #2
+ ldr r1, [r4, r1]
+ blx r1
+ cmp r0, #1
+ beq _021D8212
+ cmp r0, #2
+ bne _021D8228
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021D8228:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D822C: .word 0x021DEF94
+ thumb_func_end MOD85_021D820C
+
+ thumb_func_start MOD85_021D8230
+MOD85_021D8230: ; 0x021D8230
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #0
+ str r1, [r4, #0x64]
+ mov r3, #1
+ add r2, r4, #0
+ str r1, [r4, #0x68]
+ lsl r3, r3, #0x10
+ add r2, #0x8c
+ str r3, [r2]
+ str r1, [r4, #0x74]
+ str r1, [r4, #8]
+ mov r2, #1
+ str r2, [r4]
+ bl MOD85_021DC094
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD85_021DC094
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD85_021DC094
+ add r0, r4, #0
+ bl MOD85_021DB754
+ add r0, r4, #0
+ bl MOD85_021DB95C
+ ldr r1, [r4, #0x60]
+ cmp r1, #0
+ bne _021D827C
+ mov r0, #0x3c
+ str r0, [r4]
+ mov r0, #0x3f
+ str r0, [r4, #4]
+ b _021D8298
+_021D827C:
+ cmp r1, #3
+ bge _021D828A
+ mov r0, #0x3b
+ str r0, [r4]
+ mov r0, #0x3f
+ str r0, [r4, #4]
+ b _021D8298
+_021D828A:
+ ldr r0, _021D829C ; =0x0000C350
+ cmp r1, r0
+ blt _021D8298
+ mov r0, #0x3d
+ str r0, [r4]
+ mov r0, #1
+ str r0, [r4, #4]
+_021D8298:
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+_021D829C: .word 0x0000C350
+ thumb_func_end MOD85_021D8230
+
+ thumb_func_start MOD85_021D82A0
+MOD85_021D82A0: ; 0x021D82A0
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #8
+ bl MOD85_021DBD54
+ cmp r0, #0
+ beq _021D82BC
+ add r0, r4, #0
+ bl MOD85_021DB9A0
+ mov r0, #0x3f
+ str r0, [r4]
+ mov r0, #0
+ pop {r4, pc}
+_021D82BC:
+ mov r0, #1
+ lsl r0, r0, #0xa
+ bl MOD85_021DBD54
+ cmp r0, #0
+ beq _021D82F0
+ ldr r0, [r4, #0x60]
+ sub r0, r0, #3
+ str r0, [r4, #0x60]
+ ldr r0, _021D82F4 ; =0x0000045C
+ ldr r1, [r4, r0]
+ add r1, r1, #3
+ str r1, [r4, r0]
+ mov r0, #2
+ str r0, [r4]
+ ldr r0, _021D82F8 ; =0x000005ED
+ bl FUN_020054C8
+ add r0, r4, #0
+ bl MOD85_021DB9A0
+ add r0, r4, #0
+ bl MOD85_021DB76C
+ mov r0, #0
+ pop {r4, pc}
+_021D82F0:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_021D82F4: .word 0x0000045C
+_021D82F8: .word 0x000005ED
+ thumb_func_end MOD85_021D82A0
+
+ thumb_func_start MOD85_021D82FC
+MOD85_021D82FC: ; 0x021D82FC
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #8
+ bl MOD85_021DBD54
+ cmp r0, #0
+ beq _021D8318
+ ldr r0, [r4, #0x60]
+ add r0, r0, #3
+ str r0, [r4, #0x60]
+ mov r0, #0x3f
+ str r0, [r4]
+ mov r0, #0
+ pop {r4, pc}
+_021D8318:
+ mov r0, #0x12
+ lsl r0, r0, #6
+ bl MOD85_021DBD54
+ cmp r0, #0
+ beq _021D832C
+ mov r0, #3
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+_021D832C:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD85_021D82FC
+
+ thumb_func_start MOD85_021D8330
+MOD85_021D8330: ; 0x021D8330
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD85_021DA804
+ mov r0, #0x46
+ lsl r0, r0, #4
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ add r1, r0, #4
+ ldr r1, [r4, r1]
+ add r0, r0, #4
+ add r1, r1, #1
+ str r1, [r4, r0]
+ mov r0, #0
+ str r0, [r4, #0x70]
+ ldr r1, [r4, #0x74]
+ mov r0, #0x33
+ tst r0, r1
+ beq _021D835C
+ mov r0, #1
+ str r0, [r4, #0x70]
+_021D835C:
+ mov r0, #0
+ str r0, [r4, #0x30]
+ ldr r0, [r4, #0x74]
+ cmp r0, #0
+ beq _021D8398
+ add r0, r4, #0
+ bl MOD85_021DA948
+ cmp r0, #0
+ bne _021D8378
+ mov r0, #0x55
+ mov r1, #4
+ lsl r0, r0, #2
+ b _021D838C
+_021D8378:
+ ldr r0, [r4, #0x74]
+ bl MOD85_021DBF70
+ mov r1, #0x55
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #0x49
+ lsl r0, r0, #4
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+_021D838C:
+ str r1, [r4, r0]
+ mov r1, #1
+ add r0, r4, #0
+ str r1, [r4, #0x30]
+ bl MOD85_021DAEF4
+_021D8398:
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD85_021DC094
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD85_021DC094
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD85_021DC094
+ add r0, r4, #0
+ bl MOD85_021DB76C
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD85_021D9338
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD85_021D9338
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD85_021D9338
+ add r0, r4, #0
+ bl MOD85_021DBFA4
+ mov r1, #1
+ add r0, r4, #0
+ str r1, [r4, #0x7c]
+ add r0, #0x80
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0x84
+ str r1, [r0]
+ mov r0, #0
+ str r0, [r4, #0x6c]
+ mov r0, #4
+ str r0, [r4]
+ ldr r0, _021D83F8 ; =0x000005EE
+ bl FUN_020054C8
+ mov r0, #1
+ pop {r4, pc}
+ nop
+_021D83F8: .word 0x000005EE
+ thumb_func_end MOD85_021D8330
+
+ thumb_func_start MOD85_021D83FC
+MOD85_021D83FC: ; 0x021D83FC
+ mov r1, #1
+ ldr r2, [r0, #0x6c]
+ lsl r1, r1, #0xc
+ add r2, r2, r1
+ lsl r1, r1, #3
+ str r2, [r0, #0x6c]
+ cmp r2, r1
+ blt _021D8418
+ mov r1, #0
+ str r1, [r0, #0x6c]
+ mov r1, #5
+ str r1, [r0]
+ mov r0, #1
+ bx lr
+_021D8418:
+ mov r0, #0
+ bx lr
+ thumb_func_end MOD85_021D83FC
+
+ thumb_func_start MOD85_021D841C
+MOD85_021D841C: ; 0x021D841C
+ push {r4, lr}
+ ldr r1, _021D850C ; =0x021C48B8
+ add r4, r0, #0
+ ldr r2, [r1, #0x48]
+ ldr r1, [r4, #0x7c]
+ cmp r1, #1
+ bne _021D8462
+ mov r1, #2
+ lsl r1, r1, #0xa
+ add r3, r2, #0
+ tst r3, r1
+ beq _021D8462
+ mov r2, #2
+ str r2, [r4, #0x7c]
+ bl MOD85_021DBFB4
+ add r0, r4, #0
+ bl MOD85_021DBFDC
+ cmp r0, #0
+ bne _021D844A
+ mov r0, #0
+ str r0, [r4, #0x70]
+_021D844A:
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD85_021DC050
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD85_021D9350
+ ldr r0, _021D8510 ; =0x00000626
+ bl FUN_020054C8
+ b _021D84EA
+_021D8462:
+ add r0, r4, #0
+ add r0, #0x80
+ ldr r0, [r0]
+ cmp r0, #1
+ bne _021D84A6
+ mov r1, #2
+ add r0, r2, #0
+ tst r0, r1
+ beq _021D84A6
+ add r0, r4, #0
+ add r0, #0x80
+ str r1, [r0]
+ add r0, r4, #0
+ bl MOD85_021DBFB4
+ add r0, r4, #0
+ bl MOD85_021DBFDC
+ cmp r0, #0
+ bne _021D848E
+ mov r0, #0
+ str r0, [r4, #0x70]
+_021D848E:
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD85_021DC050
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD85_021D9350
+ ldr r0, _021D8510 ; =0x00000626
+ bl FUN_020054C8
+ b _021D84EA
+_021D84A6:
+ add r0, r4, #0
+ add r0, #0x84
+ ldr r0, [r0]
+ cmp r0, #1
+ bne _021D84EA
+ mov r1, #1
+ add r0, r2, #0
+ tst r0, r1
+ beq _021D84EA
+ add r0, r4, #0
+ mov r2, #2
+ add r0, #0x84
+ str r2, [r0]
+ add r0, r4, #0
+ bl MOD85_021DBFB4
+ add r0, r4, #0
+ bl MOD85_021DBFDC
+ cmp r0, #0
+ bne _021D84D4
+ mov r0, #0
+ str r0, [r4, #0x70]
+_021D84D4:
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD85_021DC050
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD85_021D9350
+ ldr r0, _021D8510 ; =0x00000626
+ bl FUN_020054C8
+_021D84EA:
+ ldr r0, [r4, #0x7c]
+ cmp r0, #2
+ bne _021D8508
+ add r0, r4, #0
+ add r0, #0x80
+ ldr r0, [r0]
+ cmp r0, #2
+ bne _021D8508
+ add r0, r4, #0
+ add r0, #0x84
+ ldr r0, [r0]
+ cmp r0, #2
+ bne _021D8508
+ mov r0, #6
+ str r0, [r4]
+_021D8508:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_021D850C: .word 0x021C48B8
+_021D8510: .word 0x00000626
+ thumb_func_end MOD85_021D841C
+
+ thumb_func_start MOD85_021D8514
+MOD85_021D8514: ; 0x021D8514
+ push {r4, lr}
+ mov r1, #0
+ add r4, r0, #0
+ bl MOD85_021D9360
+ cmp r0, #1
+ beq _021D853A
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD85_021D9360
+ cmp r0, #1
+ beq _021D853A
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD85_021D9360
+ cmp r0, #1
+ bne _021D853E
+_021D853A:
+ mov r0, #0
+ pop {r4, pc}
+_021D853E:
+ add r0, r4, #0
+ bl MOD85_021DB754
+ mov r0, #7
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+ thumb_func_end MOD85_021D8514
+
+ thumb_func_start MOD85_021D854C
+MOD85_021D854C: ; 0x021D854C
+ push {r4, lr}
+ add r4, r0, #0
+ add r2, r4, #0
+ ldr r1, [r4, #0x74]
+ add r2, #0x48
+ bl MOD85_021DBED4
+ str r0, [r4, #0x44]
+ cmp r0, #6
+ bne _021D8584
+ ldr r1, [r4, #0x74]
+ mov r0, #0xaa
+ tst r0, r1
+ beq _021D8570
+ mov r0, #0x10
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+_021D8570:
+ cmp r1, #0
+ beq _021D857C
+ mov r0, #0xa
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+_021D857C:
+ mov r0, #8
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+_021D8584:
+ ldr r2, [r4, #0x74]
+ mov r1, #0xaa
+ tst r1, r2
+ beq _021D859E
+ mov r0, #2
+ tst r0, r2
+ beq _021D8596
+ mov r0, #0x15
+ b _021D8598
+_021D8596:
+ mov r0, #0x13
+_021D8598:
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+_021D859E:
+ cmp r0, #2
+ bne _021D85AA
+ mov r0, #0xe
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+_021D85AA:
+ mov r0, #0xc
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D854C
+
+ thumb_func_start MOD85_021D85B4
+MOD85_021D85B4: ; 0x021D85B4
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD85_021DB754
+ mov r0, #0
+ str r0, [r4, #0x6c]
+ mov r0, #9
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+ thumb_func_end MOD85_021D85B4
+
+ thumb_func_start MOD85_021D85C8
+MOD85_021D85C8: ; 0x021D85C8
+ mov r1, #1
+ ldr r2, [r0, #0x6c]
+ lsl r1, r1, #0xc
+ add r2, r2, r1
+ lsl r1, r1, #3
+ str r2, [r0, #0x6c]
+ cmp r2, r1
+ blt _021D85DE
+ mov r1, #0
+ str r1, [r0, #0x6c]
+ str r1, [r0]
+_021D85DE:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD85_021D85C8
+
+ thumb_func_start MOD85_021D85E4
+MOD85_021D85E4: ; 0x021D85E4
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD85_021DB754
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD85_021DAEF4
+ mov r0, #0xb
+ str r0, [r4]
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD85_021D85E4
+
+ thumb_func_start MOD85_021D85FC
+MOD85_021D85FC: ; 0x021D85FC
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD85_021DAF08
+ cmp r0, #1
+ bne _021D8618
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD85_021DAEF4
+ mov r0, #0
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+_021D8618:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD85_021D85FC
+
+ thumb_func_start MOD85_021D861C
+MOD85_021D861C: ; 0x021D861C
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD85_021DC0D8
+ ldr r1, _021D8648 ; =0x00000458
+ str r0, [r4, #0x64]
+ ldr r2, [r4, r1]
+ add r0, r2, r0
+ str r0, [r4, r1]
+ mov r0, #0
+ str r0, [r4, #0x6c]
+ mov r0, #0xd
+ str r0, [r4]
+ add r0, r4, #0
+ bl MOD85_021DAD54
+ add r0, r4, #0
+ mov r1, #0xb
+ bl MOD85_021DAEF4
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_021D8648: .word 0x00000458
+ thumb_func_end MOD85_021D861C
+
+ thumb_func_start MOD85_021D864C
+MOD85_021D864C: ; 0x021D864C
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #1
+ ldr r2, [r4, #0x6c]
+ lsl r1, r1, #0xc
+ add r2, r2, r1
+ mov r1, #0x1e
+ lsl r1, r1, #0xc
+ str r2, [r4, #0x6c]
+ cmp r2, r1
+ bne _021D866A
+ mov r1, #2
+ bl MOD85_021DAEF4
+ b _021D8690
+_021D866A:
+ ble _021D8690
+ bl MOD85_021DAD68
+ cmp r0, #1
+ bne _021D8690
+ add r0, r4, #0
+ bl MOD85_021DAF08
+ cmp r0, #1
+ bne _021D8690
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD85_021DAEF4
+ mov r0, #0
+ str r0, [r4, #0x6c]
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+_021D8690:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD85_021D864C
+
+ thumb_func_start MOD85_021D8694
+MOD85_021D8694: ; 0x021D8694
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #0
+ str r1, [r4, #0x64]
+ str r1, [r4, #0x6c]
+ mov r1, #0xf
+ str r1, [r4]
+ bl MOD85_021DAD54
+ add r0, r4, #0
+ mov r1, #0xb
+ bl MOD85_021DAEF4
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D8694
+
+ thumb_func_start MOD85_021D86B4
+MOD85_021D86B4: ; 0x021D86B4
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #1
+ ldr r2, [r4, #0x6c]
+ lsl r1, r1, #0xc
+ add r2, r2, r1
+ mov r1, #0xf
+ lsl r1, r1, #0xc
+ str r2, [r4, #0x6c]
+ cmp r2, r1
+ bne _021D86D2
+ mov r1, #2
+ bl MOD85_021DAEF4
+ b _021D86FA
+_021D86D2:
+ ble _021D86FA
+ bl MOD85_021DAD68
+ cmp r0, #1
+ bne _021D86FA
+ add r0, r4, #0
+ bl MOD85_021DAF08
+ cmp r0, #1
+ bne _021D86FA
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD85_021DAEF4
+ mov r0, #0
+ str r0, [r4, #0x6c]
+ mov r0, #3
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+_021D86FA:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D86B4
+
+ thumb_func_start MOD85_021D8700
+MOD85_021D8700: ; 0x021D8700
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD85_021DB754
+ add r0, r4, #0
+ bl MOD85_021DA96C
+ add r0, r4, #0
+ bl MOD85_021DAA2C
+ add r0, r4, #0
+ mov r1, #0xb
+ bl MOD85_021DAEF4
+ mov r0, #0
+ str r0, [r4, #0x6c]
+ mov r1, #0x11
+ str r1, [r4]
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D8700
+
+ thumb_func_start MOD85_021D8728
+MOD85_021D8728: ; 0x021D8728
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #1
+ ldr r2, [r4, #0x6c]
+ lsl r1, r1, #0xc
+ add r2, r2, r1
+ lsl r1, r1, #3
+ str r2, [r4, #0x6c]
+ cmp r2, r1
+ blt _021D874E
+ mov r1, #3
+ bl MOD85_021DAEF4
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD85_021D7FF4
+ mov r0, #0x12
+ str r0, [r4]
+_021D874E:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D8728
+
+ thumb_func_start MOD85_021D8754
+MOD85_021D8754: ; 0x021D8754
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD85_021DAF08
+ cmp r0, #1
+ bne _021D8768
+ mov r0, #0x17
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+_021D8768:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD85_021D8754
+
+ thumb_func_start MOD85_021D876C
+MOD85_021D876C: ; 0x021D876C
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD85_021DC0D8
+ str r0, [r4, #0x64]
+ mov r0, #0
+ str r0, [r4, #0x6c]
+ mov r0, #0x14
+ str r0, [r4]
+ add r0, r4, #0
+ bl MOD85_021DAD54
+ add r0, r4, #0
+ bl MOD85_021DA96C
+ add r0, r4, #0
+ bl MOD85_021DAA2C
+ add r0, r4, #0
+ mov r1, #0xb
+ bl MOD85_021DAEF4
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD85_021D876C
+
+ thumb_func_start MOD85_021D879C
+MOD85_021D879C: ; 0x021D879C
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #1
+ ldr r2, [r4, #0x6c]
+ lsl r1, r1, #0xc
+ add r2, r2, r1
+ mov r1, #0x1e
+ lsl r1, r1, #0xc
+ str r2, [r4, #0x6c]
+ cmp r2, r1
+ bne _021D87C2
+ mov r1, #1
+ bl MOD85_021D7FF4
+ add r0, r4, #0
+ mov r1, #3
+ bl MOD85_021DAEF4
+ b _021D87E2
+_021D87C2:
+ blt _021D87E2
+ bl MOD85_021DAD68
+ cmp r0, #1
+ bne _021D87E2
+ add r0, r4, #0
+ bl MOD85_021DAF08
+ cmp r0, #1
+ bne _021D87E2
+ mov r0, #0
+ str r0, [r4, #0x6c]
+ mov r0, #0x17
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+_021D87E2:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D879C
+
+ thumb_func_start MOD85_021D87E8
+MOD85_021D87E8: ; 0x021D87E8
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #0
+ str r1, [r4, #0x6c]
+ mov r1, #0x16
+ str r1, [r4]
+ bl MOD85_021DAD54
+ add r0, r4, #0
+ mov r1, #0xb
+ bl MOD85_021DAEF4
+ add r0, r4, #0
+ bl MOD85_021DA96C
+ add r0, r4, #0
+ bl MOD85_021DAA2C
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD85_021D87E8
+
+ thumb_func_start MOD85_021D8810
+MOD85_021D8810: ; 0x021D8810
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #1
+ ldr r2, [r4, #0x6c]
+ lsl r1, r1, #0xc
+ add r3, r2, r1
+ lsl r2, r1, #3
+ str r3, [r4, #0x6c]
+ cmp r3, r2
+ bne _021D8834
+ mov r1, #3
+ bl MOD85_021DAEF4
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD85_021D7FF4
+ b _021D8858
+_021D8834:
+ lsl r1, r1, #3
+ cmp r3, r1
+ blt _021D8858
+ bl MOD85_021DAD68
+ cmp r0, #1
+ bne _021D8858
+ add r0, r4, #0
+ bl MOD85_021DAF08
+ cmp r0, #1
+ bne _021D8858
+ mov r0, #0
+ str r0, [r4, #0x6c]
+ mov r0, #0x18
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+_021D8858:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD85_021D8810
+
+ thumb_func_start MOD85_021D885C
+MOD85_021D885C: ; 0x021D885C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x50]
+ cmp r0, #6
+ blt _021D886A
+ bl ErrorHandling
+_021D886A:
+ mov r0, #0x19
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D885C
+
+ thumb_func_start MOD85_021D8874
+MOD85_021D8874: ; 0x021D8874
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x50]
+ cmp r0, #6
+ blt _021D8882
+ bl ErrorHandling
+_021D8882:
+ mov r0, #0x1c
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D8874
+
+ thumb_func_start MOD85_021D888C
+MOD85_021D888C: ; 0x021D888C
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #0
+ str r1, [r4, #0x64]
+ str r1, [r4, #0x68]
+ mov r2, #0x1a
+ str r2, [r4]
+ str r1, [r4, #0x74]
+ bl MOD85_021DC094
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD85_021DC094
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD85_021DC094
+ add r0, r4, #0
+ bl MOD85_021DB754
+ add r0, r4, #0
+ bl MOD85_021DB95C
+ add r0, r4, #0
+ mov r1, #7
+ bl MOD85_021DAEF4
+ ldr r1, [r4, #0x60]
+ cmp r1, #0
+ bne _021D88D4
+ mov r0, #0x3c
+ str r0, [r4]
+ mov r0, #0x3f
+ str r0, [r4, #4]
+ b _021D88F0
+_021D88D4:
+ cmp r1, #3
+ bge _021D88E2
+ mov r0, #0x3b
+ str r0, [r4]
+ mov r0, #0x3f
+ str r0, [r4, #4]
+ b _021D88F0
+_021D88E2:
+ ldr r0, _021D88F4 ; =0x0000C350
+ cmp r1, r0
+ blt _021D88F0
+ mov r0, #0x3d
+ str r0, [r4]
+ mov r0, #0x1a
+ str r0, [r4, #4]
+_021D88F0:
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+_021D88F4: .word 0x0000C350
+ thumb_func_end MOD85_021D888C
+
+ thumb_func_start MOD85_021D88F8
+MOD85_021D88F8: ; 0x021D88F8
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #8
+ bl MOD85_021DBD54
+ cmp r0, #0
+ beq _021D8914
+ mov r0, #0x3f
+ str r0, [r4]
+ add r0, r4, #0
+ bl MOD85_021DB9A0
+ mov r0, #0
+ pop {r4, pc}
+_021D8914:
+ mov r0, #1
+ lsl r0, r0, #0xa
+ bl MOD85_021DBD54
+ cmp r0, #0
+ beq _021D8948
+ ldr r0, [r4, #0x60]
+ sub r0, r0, #3
+ str r0, [r4, #0x60]
+ ldr r0, _021D894C ; =0x0000045C
+ ldr r1, [r4, r0]
+ add r1, r1, #3
+ str r1, [r4, r0]
+ mov r0, #0x1b
+ str r0, [r4]
+ ldr r0, _021D8950 ; =0x000005ED
+ bl FUN_020054C8
+ add r0, r4, #0
+ bl MOD85_021DB9A0
+ add r0, r4, #0
+ bl MOD85_021DB76C
+ mov r0, #0
+ pop {r4, pc}
+_021D8948:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_021D894C: .word 0x0000045C
+_021D8950: .word 0x000005ED
+ thumb_func_end MOD85_021D88F8
+
+ thumb_func_start MOD85_021D8954
+MOD85_021D8954: ; 0x021D8954
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #8
+ bl MOD85_021DBD54
+ cmp r0, #0
+ beq _021D8970
+ ldr r0, [r4, #0x60]
+ add r0, r0, #3
+ str r0, [r4, #0x60]
+ mov r0, #0x3f
+ str r0, [r4]
+ mov r0, #0
+ pop {r4, pc}
+_021D8970:
+ mov r0, #0x12
+ lsl r0, r0, #6
+ bl MOD85_021DBD54
+ cmp r0, #0
+ beq _021D8984
+ mov r0, #0x1c
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+_021D8984:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD85_021D8954
+
+ thumb_func_start MOD85_021D8988
+MOD85_021D8988: ; 0x021D8988
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD85_021DAAF0
+ mov r1, #0x46
+ lsl r1, r1, #4
+ ldr r0, [r4, r1]
+ add r0, r0, #1
+ str r0, [r4, r1]
+ add r0, r1, #0
+ add r0, #8
+ ldr r0, [r4, r0]
+ add r1, #8
+ add r0, r0, #1
+ str r0, [r4, r1]
+ mov r0, #0
+ str r0, [r4, #0x70]
+ ldr r1, [r4, #0x74]
+ mov r0, #0x33
+ tst r0, r1
+ beq _021D89B6
+ mov r0, #1
+ str r0, [r4, #0x70]
+_021D89B6:
+ mov r0, #0
+ str r0, [r4, #0x30]
+ ldr r0, [r4, #0x74]
+ cmp r0, #0
+ beq _021D89C4
+ mov r0, #1
+ str r0, [r4, #0x30]
+_021D89C4:
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD85_021DC094
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD85_021DC094
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD85_021DC094
+ add r0, r4, #0
+ bl MOD85_021DB76C
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD85_021D9338
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD85_021D9338
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD85_021D9338
+ add r0, r4, #0
+ bl MOD85_021DBFA4
+ add r0, r4, #0
+ mov r1, #9
+ bl MOD85_021DAEF4
+ mov r1, #1
+ add r0, r4, #0
+ str r1, [r4, #0x7c]
+ add r0, #0x80
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0x84
+ str r1, [r0]
+ mov r0, #0
+ str r0, [r4, #0x6c]
+ mov r0, #0x1d
+ str r0, [r4]
+ ldr r0, _021D8A2C ; =0x000005EE
+ bl FUN_020054C8
+ mov r0, #1
+ pop {r4, pc}
+ nop
+_021D8A2C: .word 0x000005EE
+ thumb_func_end MOD85_021D8988
+
+ thumb_func_start MOD85_021D8A30
+MOD85_021D8A30: ; 0x021D8A30
+ mov r1, #1
+ ldr r2, [r0, #0x6c]
+ lsl r1, r1, #0xc
+ add r2, r2, r1
+ lsl r1, r1, #3
+ str r2, [r0, #0x6c]
+ cmp r2, r1
+ blt _021D8A4C
+ mov r1, #0
+ str r1, [r0, #0x6c]
+ mov r1, #0x1e
+ str r1, [r0]
+ mov r0, #1
+ bx lr
+_021D8A4C:
+ mov r0, #0
+ bx lr
+ thumb_func_end MOD85_021D8A30
+
+ thumb_func_start MOD85_021D8A50
+MOD85_021D8A50: ; 0x021D8A50
+ push {r4, lr}
+ ldr r1, _021D8B40 ; =0x021C48B8
+ add r4, r0, #0
+ ldr r2, [r1, #0x48]
+ ldr r1, [r4, #0x7c]
+ cmp r1, #1
+ bne _021D8A96
+ mov r1, #2
+ lsl r1, r1, #0xa
+ add r3, r2, #0
+ tst r3, r1
+ beq _021D8A96
+ mov r2, #2
+ str r2, [r4, #0x7c]
+ bl MOD85_021DBFB4
+ add r0, r4, #0
+ bl MOD85_021DBFDC
+ cmp r0, #0
+ bne _021D8A7E
+ mov r0, #0
+ str r0, [r4, #0x70]
+_021D8A7E:
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD85_021DC050
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD85_021D9350
+ ldr r0, _021D8B44 ; =0x00000626
+ bl FUN_020054C8
+ b _021D8B1E
+_021D8A96:
+ add r0, r4, #0
+ add r0, #0x80
+ ldr r0, [r0]
+ cmp r0, #1
+ bne _021D8ADA
+ mov r1, #2
+ add r0, r2, #0
+ tst r0, r1
+ beq _021D8ADA
+ add r0, r4, #0
+ add r0, #0x80
+ str r1, [r0]
+ add r0, r4, #0
+ bl MOD85_021DBFB4
+ add r0, r4, #0
+ bl MOD85_021DBFDC
+ cmp r0, #0
+ bne _021D8AC2
+ mov r0, #0
+ str r0, [r4, #0x70]
+_021D8AC2:
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD85_021DC050
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD85_021D9350
+ ldr r0, _021D8B44 ; =0x00000626
+ bl FUN_020054C8
+ b _021D8B1E
+_021D8ADA:
+ add r0, r4, #0
+ add r0, #0x84
+ ldr r0, [r0]
+ cmp r0, #1
+ bne _021D8B1E
+ mov r1, #1
+ add r0, r2, #0
+ tst r0, r1
+ beq _021D8B1E
+ add r0, r4, #0
+ mov r2, #2
+ add r0, #0x84
+ str r2, [r0]
+ add r0, r4, #0
+ bl MOD85_021DBFB4
+ add r0, r4, #0
+ bl MOD85_021DBFDC
+ cmp r0, #0
+ bne _021D8B08
+ mov r0, #0
+ str r0, [r4, #0x70]
+_021D8B08:
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD85_021DC050
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD85_021D9350
+ ldr r0, _021D8B44 ; =0x00000626
+ bl FUN_020054C8
+_021D8B1E:
+ ldr r0, [r4, #0x7c]
+ cmp r0, #2
+ bne _021D8B3C
+ add r0, r4, #0
+ add r0, #0x80
+ ldr r0, [r0]
+ cmp r0, #2
+ bne _021D8B3C
+ add r0, r4, #0
+ add r0, #0x84
+ ldr r0, [r0]
+ cmp r0, #2
+ bne _021D8B3C
+ mov r0, #0x1f
+ str r0, [r4]
+_021D8B3C:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_021D8B40: .word 0x021C48B8
+_021D8B44: .word 0x00000626
+ thumb_func_end MOD85_021D8A50
+
+ thumb_func_start MOD85_021D8B48
+MOD85_021D8B48: ; 0x021D8B48
+ push {r4, lr}
+ mov r1, #0
+ add r4, r0, #0
+ bl MOD85_021D9360
+ cmp r0, #1
+ beq _021D8B6E
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD85_021D9360
+ cmp r0, #1
+ beq _021D8B6E
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD85_021D9360
+ cmp r0, #1
+ bne _021D8B72
+_021D8B6E:
+ mov r0, #0
+ pop {r4, pc}
+_021D8B72:
+ add r0, r4, #0
+ bl MOD85_021DB754
+ mov r0, #0x20
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+ thumb_func_end MOD85_021D8B48
+
+ thumb_func_start MOD85_021D8B80
+MOD85_021D8B80: ; 0x021D8B80
+ push {r4, lr}
+ add r4, r0, #0
+ add r2, r4, #0
+ ldr r1, [r4, #0x74]
+ add r2, #0x48
+ bl MOD85_021DBED4
+ str r0, [r4, #0x44]
+ cmp r0, #6
+ bne _021D8B9C
+ mov r0, #0x21
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+_021D8B9C:
+ mov r1, #3
+ ldr r2, [r4, #0x74]
+ lsl r1, r1, #8
+ tst r1, r2
+ beq _021D8BAE
+ mov r0, #0x27
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+_021D8BAE:
+ cmp r0, #2
+ bne _021D8BBA
+ mov r0, #0x25
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+_021D8BBA:
+ mov r0, #0x23
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D8B80
+
+ thumb_func_start MOD85_021D8BC4
+MOD85_021D8BC4: ; 0x021D8BC4
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD85_021DB754
+ add r0, r4, #0
+ mov r1, #7
+ bl MOD85_021DAEF4
+ mov r0, #0
+ str r0, [r4, #0x6c]
+ mov r0, #0x22
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+ thumb_func_end MOD85_021D8BC4
+
+ thumb_func_start MOD85_021D8BE0
+MOD85_021D8BE0: ; 0x021D8BE0
+ mov r1, #1
+ ldr r2, [r0, #0x6c]
+ lsl r1, r1, #0xc
+ add r2, r2, r1
+ lsl r1, r1, #3
+ str r2, [r0, #0x6c]
+ cmp r2, r1
+ blt _021D8BFC
+ mov r1, #0
+ str r1, [r0, #0x6c]
+ mov r1, #0x19
+ str r1, [r0]
+ mov r0, #1
+ bx lr
+_021D8BFC:
+ mov r0, #0
+ bx lr
+ thumb_func_end MOD85_021D8BE0
+
+ thumb_func_start MOD85_021D8C00
+MOD85_021D8C00: ; 0x021D8C00
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD85_021DC0D8
+ ldr r1, _021D8C2C ; =0x00000458
+ str r0, [r4, #0x64]
+ ldr r2, [r4, r1]
+ add r0, r2, r0
+ str r0, [r4, r1]
+ mov r0, #0
+ str r0, [r4, #0x6c]
+ mov r0, #0x24
+ str r0, [r4]
+ add r0, r4, #0
+ bl MOD85_021DAD54
+ add r0, r4, #0
+ mov r1, #0xa
+ bl MOD85_021DAEF4
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_021D8C2C: .word 0x00000458
+ thumb_func_end MOD85_021D8C00
+
+ thumb_func_start MOD85_021D8C30
+MOD85_021D8C30: ; 0x021D8C30
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD85_021DAD68
+ cmp r0, #1
+ bne _021D8C4C
+ add r0, r4, #0
+ mov r1, #7
+ bl MOD85_021DAEF4
+ mov r0, #0x19
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+_021D8C4C:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD85_021D8C30
+
+ thumb_func_start MOD85_021D8C50
+MOD85_021D8C50: ; 0x021D8C50
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #0
+ str r1, [r4, #0x64]
+ str r1, [r4, #0x6c]
+ mov r1, #0x26
+ str r1, [r4]
+ bl MOD85_021DAD54
+ add r0, r4, #0
+ mov r1, #0xa
+ bl MOD85_021DAEF4
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D8C50
+
+ thumb_func_start MOD85_021D8C70
+MOD85_021D8C70: ; 0x021D8C70
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #1
+ ldr r2, [r4, #0x6c]
+ lsl r1, r1, #0xc
+ add r2, r2, r1
+ mov r1, #0xf
+ lsl r1, r1, #0xc
+ str r2, [r4, #0x6c]
+ cmp r2, r1
+ ble _021D8CA8
+ bl MOD85_021DAD68
+ cmp r0, #1
+ bne _021D8CA8
+ add r0, r4, #0
+ mov r1, #7
+ bl MOD85_021DAEF4
+ add r0, r4, #0
+ bl MOD85_021DB754
+ mov r0, #0
+ str r0, [r4, #0x6c]
+ mov r0, #0x1c
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+_021D8CA8:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD85_021D8C70
+
+ thumb_func_start MOD85_021D8CAC
+MOD85_021D8CAC: ; 0x021D8CAC
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD85_021DC0D8
+ ldr r1, _021D8CF0 ; =0x00000458
+ str r0, [r4, #0x64]
+ ldr r2, [r4, r1]
+ add r0, r2, r0
+ str r0, [r4, r1]
+ mov r0, #0
+ str r0, [r4, #0x6c]
+ mov r0, #0x28
+ str r0, [r4]
+ add r0, r4, #0
+ bl MOD85_021DAD54
+ add r0, r4, #0
+ mov r1, #0xa
+ bl MOD85_021DAEF4
+ add r0, r4, #0
+ bl MOD85_021DBB0C
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD85_021D7FF4
+ add r0, r4, #0
+ bl MOD85_021DE264
+ ldr r1, _021D8CF4 ; =0x00000454
+ str r0, [r4, r1]
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_021D8CF0: .word 0x00000458
+_021D8CF4: .word 0x00000454
+ thumb_func_end MOD85_021D8CAC
+
+ thumb_func_start MOD85_021D8CF8
+MOD85_021D8CF8: ; 0x021D8CF8
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD85_021DAD68
+ cmp r0, #1
+ bne _021D8D1C
+ ldr r0, _021D8D20 ; =0x00000454
+ ldr r0, [r4, r0]
+ bl FUN_02064520
+ add r0, r4, #0
+ mov r1, #7
+ bl MOD85_021DAEF4
+ mov r0, #0x29
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+_021D8D1C:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_021D8D20: .word 0x00000454
+ thumb_func_end MOD85_021D8CF8
+
+ thumb_func_start MOD85_021D8D24
+MOD85_021D8D24: ; 0x021D8D24
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD85_021DAF10
+ mov r0, #0
+ str r0, [r4, #0x1c]
+ str r0, [r4, #0x14]
+ mov r0, #1
+ str r0, [r4, #8]
+ mov r1, #0x2a
+ str r1, [r4]
+ pop {r4, pc}
+ thumb_func_end MOD85_021D8D24
+
+ thumb_func_start MOD85_021D8D3C
+MOD85_021D8D3C: ; 0x021D8D3C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #0x1c]
+ add r1, r0, #1
+ ldr r0, _021D8D84 ; =0x000003E7
+ str r1, [r4, #0x1c]
+ cmp r1, r0
+ bls _021D8D54
+ str r0, [r4, #0x1c]
+_021D8D54:
+ ldr r1, [r4, #0x1c]
+ add r0, r4, #0
+ bl MOD85_021DE118
+ mov r0, #0x10
+ str r0, [r4, #0x10]
+ mov r0, #1
+ str r0, [r4, #8]
+ mov r0, #0
+ str r0, [r4, #0x24]
+ str r0, [r4, #0x28]
+ str r0, [r4, #0x2c]
+ add r0, r4, #0
+ bl MOD85_021DAC44
+ cmp r0, #0
+ bne _021D8D7A
+ mov r0, #1
+ str r0, [r4, #0x2c]
+_021D8D7A:
+ mov r0, #0x2b
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+ nop
+_021D8D84: .word 0x000003E7
+ thumb_func_end MOD85_021D8D3C
+
+ thumb_func_start MOD85_021D8D88
+MOD85_021D8D88: ; 0x021D8D88
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x10]
+ sub r0, r0, #1
+ str r0, [r4, #0x10]
+ cmp r0, #1
+ bge _021D8D9A
+ bl ErrorHandling
+_021D8D9A:
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD85_021DC094
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD85_021DC094
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD85_021DC094
+ add r0, r4, #0
+ bl MOD85_021DB754
+ add r0, r4, #0
+ bl MOD85_021DB95C
+ add r0, r4, #0
+ mov r1, #7
+ bl MOD85_021DAEF4
+ mov r2, #0x2c
+ str r2, [r4]
+ ldr r1, [r4, #0x60]
+ cmp r1, #0
+ bne _021D8DDA
+ mov r0, #0x3c
+ str r0, [r4]
+ mov r0, #0x3f
+ str r0, [r4, #4]
+ b _021D8DF4
+_021D8DDA:
+ cmp r1, #1
+ bge _021D8DE8
+ mov r0, #0x3c
+ str r0, [r4]
+ mov r0, #0x3f
+ str r0, [r4, #4]
+ b _021D8DF4
+_021D8DE8:
+ ldr r0, _021D8DF8 ; =0x0000C350
+ cmp r1, r0
+ blt _021D8DF4
+ mov r0, #0x3d
+ str r0, [r4]
+ str r2, [r4, #4]
+_021D8DF4:
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+_021D8DF8: .word 0x0000C350
+ thumb_func_end MOD85_021D8D88
+
+ thumb_func_start MOD85_021D8DFC
+MOD85_021D8DFC: ; 0x021D8DFC
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #8
+ bl MOD85_021DBD54
+ cmp r0, #0
+ beq _021D8E12
+ mov r0, #0x3f
+ str r0, [r4]
+ mov r0, #0
+ pop {r4, pc}
+_021D8E12:
+ mov r0, #1
+ lsl r0, r0, #0xa
+ bl MOD85_021DBD54
+ cmp r0, #0
+ beq _021D8E58
+ ldr r0, [r4, #0x60]
+ sub r0, r0, #1
+ str r0, [r4, #0x60]
+ ldr r0, [r4, #0x14]
+ sub r0, r0, #1
+ str r0, [r4, #0x14]
+ ldr r0, _021D8E5C ; =0x0000045C
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ ldr r0, [r4, #0x14]
+ cmp r0, #0
+ bge _021D8E3C
+ mov r0, #0
+ str r0, [r4, #0x14]
+_021D8E3C:
+ mov r0, #0x2d
+ str r0, [r4]
+ ldr r0, _021D8E60 ; =0x000005ED
+ bl FUN_020054C8
+ add r0, r4, #0
+ bl MOD85_021DB9A0
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD85_021DB714
+ mov r0, #0
+ pop {r4, pc}
+_021D8E58:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_021D8E5C: .word 0x0000045C
+_021D8E60: .word 0x000005ED
+ thumb_func_end MOD85_021D8DFC
+
+ thumb_func_start MOD85_021D8E64
+MOD85_021D8E64: ; 0x021D8E64
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #8
+ bl MOD85_021DBD54
+ cmp r0, #0
+ beq _021D8E80
+ ldr r0, [r4, #0x60]
+ add r0, r0, #1
+ str r0, [r4, #0x60]
+ mov r0, #0x3f
+ str r0, [r4]
+ mov r0, #0
+ pop {r4, pc}
+_021D8E80:
+ mov r0, #0x12
+ lsl r0, r0, #6
+ bl MOD85_021DBD54
+ cmp r0, #0
+ beq _021D8E94
+ mov r0, #0x2e
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+_021D8E94:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD85_021D8E64
+
+ thumb_func_start MOD85_021D8E98
+MOD85_021D8E98: ; 0x021D8E98
+ push {r4, lr}
+ mov r2, #0x46
+ add r4, r0, #0
+ lsl r2, r2, #4
+ ldr r1, [r4, r2]
+ add r1, r1, #1
+ str r1, [r4, r2]
+ add r1, r2, #0
+ add r1, #0xc
+ ldr r1, [r4, r1]
+ add r2, #0xc
+ add r1, r1, #1
+ str r1, [r4, r2]
+ mov r1, #1
+ str r1, [r4, #0x74]
+ str r1, [r4, #0x30]
+ str r1, [r4, #0x70]
+ mov r1, #0
+ bl MOD85_021DC094
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD85_021DC094
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD85_021DC094
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD85_021DB714
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD85_021D9338
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD85_021D9338
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD85_021D9338
+ add r0, r4, #0
+ bl MOD85_021DBFA4
+ add r0, r4, #0
+ bl MOD85_021DAD0C
+ mov r1, #1
+ add r0, r4, #0
+ str r1, [r4, #0x7c]
+ add r0, #0x80
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0x84
+ str r1, [r0]
+ mov r0, #0
+ str r0, [r4, #0x6c]
+ mov r0, #0x2f
+ str r0, [r4]
+ ldr r0, _021D8F80 ; =0x000005EE
+ bl FUN_020054C8
+ ldr r0, [r4, #0x24]
+ cmp r0, #0
+ bne _021D8F4C
+ ldr r0, [r4, #0x28]
+ cmp r0, #0
+ bne _021D8F4C
+ add r0, r4, #0
+ bl MOD85_021DAC20
+ cmp r0, #1
+ bne _021D8F3E
+ mov r0, #1
+ str r0, [r4, #0x28]
+ mov r0, #0x13
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+_021D8F3E:
+ ldr r0, [r4, #0x28]
+ cmp r0, #1
+ bne _021D8F4C
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD85_021DBB54
+_021D8F4C:
+ ldr r0, [r4, #0x24]
+ cmp r0, #0
+ bne _021D8F7C
+ ldr r0, [r4, #0x28]
+ cmp r0, #0
+ bne _021D8F7C
+ add r0, r4, #0
+ bl MOD85_021DABFC
+ cmp r0, #1
+ bne _021D8F6E
+ mov r0, #1
+ str r0, [r4, #0x24]
+ ldr r0, _021D8F84 ; =0x000004BC
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+_021D8F6E:
+ ldr r0, [r4, #0x24]
+ cmp r0, #1
+ bne _021D8F7C
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD85_021DBB54
+_021D8F7C:
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+_021D8F80: .word 0x000005EE
+_021D8F84: .word 0x000004BC
+ thumb_func_end MOD85_021D8E98
+
+ thumb_func_start MOD85_021D8F88
+MOD85_021D8F88: ; 0x021D8F88
+ push {r3, lr}
+ mov r1, #1
+ ldr r2, [r0, #0x6c]
+ lsl r1, r1, #0xc
+ add r2, r2, r1
+ lsl r1, r1, #3
+ str r2, [r0, #0x6c]
+ cmp r2, r1
+ blt _021D8FAC
+ mov r1, #0
+ str r1, [r0, #0x6c]
+ mov r1, #0x30
+ str r1, [r0]
+ mov r1, #6
+ bl MOD85_021DAEF4
+ mov r0, #1
+ pop {r3, pc}
+_021D8FAC:
+ mov r0, #0
+ pop {r3, pc}
+ thumb_func_end MOD85_021D8F88
+
+ thumb_func_start MOD85_021D8FB0
+MOD85_021D8FB0: ; 0x021D8FB0
+ push {r4, lr}
+ ldr r1, _021D90A8 ; =0x021C48B8
+ add r4, r0, #0
+ ldr r2, [r1, #0x48]
+ ldr r1, [r4, #0x7c]
+ cmp r1, #1
+ bne _021D8FF8
+ mov r1, #2
+ lsl r1, r1, #0xa
+ add r3, r2, #0
+ tst r3, r1
+ beq _021D8FF8
+ mov r2, #2
+ str r2, [r4, #0x7c]
+ bl MOD85_021DBFB4
+ add r0, r4, #0
+ bl MOD85_021DC01C
+ cmp r0, #0
+ bne _021D8FE0
+ mov r0, #0
+ str r0, [r4, #0x70]
+ str r0, [r4, #0x30]
+_021D8FE0:
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD85_021DC050
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD85_021D9350
+ ldr r0, _021D90AC ; =0x000005F5
+ bl FUN_020054C8
+ b _021D9084
+_021D8FF8:
+ add r0, r4, #0
+ add r0, #0x80
+ ldr r0, [r0]
+ cmp r0, #1
+ bne _021D903E
+ mov r1, #2
+ add r0, r2, #0
+ tst r0, r1
+ beq _021D903E
+ add r0, r4, #0
+ add r0, #0x80
+ str r1, [r0]
+ add r0, r4, #0
+ bl MOD85_021DBFB4
+ add r0, r4, #0
+ bl MOD85_021DC01C
+ cmp r0, #0
+ bne _021D9026
+ mov r0, #0
+ str r0, [r4, #0x70]
+ str r0, [r4, #0x30]
+_021D9026:
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD85_021DC050
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD85_021D9350
+ ldr r0, _021D90AC ; =0x000005F5
+ bl FUN_020054C8
+ b _021D9084
+_021D903E:
+ add r0, r4, #0
+ add r0, #0x84
+ ldr r0, [r0]
+ cmp r0, #1
+ bne _021D9084
+ mov r1, #1
+ add r0, r2, #0
+ tst r0, r1
+ beq _021D9084
+ add r0, r4, #0
+ mov r2, #2
+ add r0, #0x84
+ str r2, [r0]
+ add r0, r4, #0
+ bl MOD85_021DBFB4
+ add r0, r4, #0
+ bl MOD85_021DC01C
+ cmp r0, #0
+ bne _021D906E
+ mov r0, #0
+ str r0, [r4, #0x70]
+ str r0, [r4, #0x30]
+_021D906E:
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD85_021DC050
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD85_021D9350
+ ldr r0, _021D90AC ; =0x000005F5
+ bl FUN_020054C8
+_021D9084:
+ ldr r0, [r4, #0x7c]
+ cmp r0, #2
+ bne _021D90A2
+ add r0, r4, #0
+ add r0, #0x80
+ ldr r0, [r0]
+ cmp r0, #2
+ bne _021D90A2
+ add r0, r4, #0
+ add r0, #0x84
+ ldr r0, [r0]
+ cmp r0, #2
+ bne _021D90A2
+ mov r0, #0x31
+ str r0, [r4]
+_021D90A2:
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_021D90A8: .word 0x021C48B8
+_021D90AC: .word 0x000005F5
+ thumb_func_end MOD85_021D8FB0
+
+ thumb_func_start MOD85_021D90B0
+MOD85_021D90B0: ; 0x021D90B0
+ push {r4, lr}
+ mov r1, #0
+ add r4, r0, #0
+ bl MOD85_021D9360
+ cmp r0, #1
+ beq _021D90D6
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD85_021D9360
+ cmp r0, #1
+ beq _021D90D6
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD85_021D9360
+ cmp r0, #1
+ bne _021D90DA
+_021D90D6:
+ mov r0, #0
+ pop {r4, pc}
+_021D90DA:
+ add r0, r4, #0
+ bl MOD85_021DB754
+ mov r0, #0x32
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+ thumb_func_end MOD85_021D90B0
+
+ thumb_func_start MOD85_021D90E8
+MOD85_021D90E8: ; 0x021D90E8
+ push {r4, lr}
+ add r4, r0, #0
+ add r2, r4, #0
+ ldr r1, [r4, #0x74]
+ add r2, #0x48
+ bl MOD85_021DBF48
+ str r0, [r4, #0x44]
+ cmp r0, #6
+ ldr r0, [r4, #0x28]
+ bne _021D910E
+ cmp r0, #1
+ bne _021D9106
+ mov r0, #3
+ str r0, [r4, #0x28]
+_021D9106:
+ mov r0, #0x33
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+_021D910E:
+ cmp r0, #1
+ bne _021D9116
+ mov r0, #2
+ str r0, [r4, #0x28]
+_021D9116:
+ mov r0, #0x34
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D90E8
+
+ thumb_func_start MOD85_021D9120
+MOD85_021D9120: ; 0x021D9120
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD85_021DB754
+ add r0, r4, #0
+ mov r1, #7
+ bl MOD85_021DAEF4
+ ldr r0, [r4, #0x10]
+ cmp r0, #1
+ bgt _021D913A
+ mov r0, #0x36
+ b _021D913C
+_021D913A:
+ mov r0, #0x2b
+_021D913C:
+ str r0, [r4]
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D9120
+
+ thumb_func_start MOD85_021D9144
+MOD85_021D9144: ; 0x021D9144
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #0x44]
+ lsl r2, r1, #2
+ ldr r1, _021D9170 ; =0x021DFC4C
+ ldr r3, [r1, r2]
+ ldr r1, _021D9174 ; =0x00000458
+ str r3, [r4, #0x64]
+ ldr r2, [r4, r1]
+ add r2, r2, r3
+ str r2, [r4, r1]
+ bl MOD85_021DAD54
+ add r0, r4, #0
+ mov r1, #0xa
+ bl MOD85_021DAEF4
+ mov r0, #0
+ str r0, [r4, #0x6c]
+ mov r1, #0x35
+ str r1, [r4]
+ pop {r4, pc}
+ .align 2, 0
+_021D9170: .word 0x021DFC4C
+_021D9174: .word 0x00000458
+ thumb_func_end MOD85_021D9144
+
+ thumb_func_start MOD85_021D9178
+MOD85_021D9178: ; 0x021D9178
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD85_021DAD68
+ cmp r0, #0
+ bne _021D9188
+ mov r0, #0
+ pop {r4, pc}
+_021D9188:
+ add r0, r4, #0
+ mov r1, #7
+ bl MOD85_021DAEF4
+ ldr r0, [r4, #0x10]
+ cmp r0, #1
+ bgt _021D919A
+ mov r0, #0x36
+ b _021D919C
+_021D919A:
+ mov r0, #0x2b
+_021D919C:
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D9178
+
+ thumb_func_start MOD85_021D91A4
+MOD85_021D91A4: ; 0x021D91A4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x10]
+ sub r0, r0, #1
+ str r0, [r4, #0x10]
+ beq _021D91B4
+ bl ErrorHandling
+_021D91B4:
+ ldr r0, [r4, #0x2c]
+ cmp r0, #1
+ bne _021D91D0
+ ldr r0, [r4, #0x24]
+ cmp r0, #0
+ bne _021D91D0
+ add r0, r4, #0
+ mov r1, #8
+ bl MOD85_021DAEF4
+ mov r0, #0x3a
+ str r0, [r4]
+ mov r0, #0
+ pop {r4, pc}
+_021D91D0:
+ mov r0, #0x37
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+ thumb_func_end MOD85_021D91A4
+
+ thumb_func_start MOD85_021D91D8
+MOD85_021D91D8: ; 0x021D91D8
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD85_021DAC58
+ add r0, r4, #0
+ bl MOD85_021DACAC
+ ldr r1, [r4, #0x24]
+ cmp r1, #1
+ bne _021D91EE
+ mov r0, #2
+_021D91EE:
+ cmp r0, #2
+ bne _021D9202
+ add r0, r4, #0
+ mov r1, #5
+ bl MOD85_021DAEF4
+ mov r0, #0x38
+ str r0, [r4]
+ mov r0, #0
+ pop {r4, pc}
+_021D9202:
+ cmp r0, #1
+ bne _021D9216
+ add r0, r4, #0
+ mov r1, #0xc
+ bl MOD85_021DAEF4
+ mov r0, #0x39
+ str r0, [r4]
+ mov r0, #0
+ pop {r4, pc}
+_021D9216:
+ mov r0, #0x23
+ bl FUN_02005578
+ mov r0, #0x2a
+ str r0, [r4]
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD85_021D91D8
+
+ thumb_func_start MOD85_021D9224
+MOD85_021D9224: ; 0x021D9224
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD85_021DAF08
+ cmp r0, #0
+ bne _021D9234
+ mov r0, #0
+ pop {r4, pc}
+_021D9234:
+ mov r0, #0x2a
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+ thumb_func_end MOD85_021D9224
+
+ thumb_func_start MOD85_021D923C
+MOD85_021D923C: ; 0x021D923C
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD85_021DAF08
+ cmp r0, #0
+ bne _021D924C
+ mov r0, #0
+ pop {r4, pc}
+_021D924C:
+ mov r0, #0x2a
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+ thumb_func_end MOD85_021D923C
+
+ thumb_func_start MOD85_021D9254
+MOD85_021D9254: ; 0x021D9254
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD85_021DAF08
+ cmp r0, #0
+ bne _021D9264
+ mov r0, #0
+ pop {r4, pc}
+_021D9264:
+ ldr r1, [r4, #0x1c]
+ ldr r0, [r4, #0x20]
+ cmp r1, r0
+ bls _021D926E
+ str r1, [r4, #0x20]
+_021D926E:
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD85_021D7FF4
+ add r0, r4, #0
+ bl MOD85_021DBB30
+ mov r0, #0
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+ thumb_func_end MOD85_021D9254
+
+ thumb_func_start MOD85_021D9284
+MOD85_021D9284: ; 0x021D9284
+ push {r4, lr}
+ mov r1, #0
+ add r4, r0, #0
+ bl MOD85_021D7BEC
+ mov r0, #0x3e
+ str r0, [r4]
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D9284
+
+ thumb_func_start MOD85_021D9298
+MOD85_021D9298: ; 0x021D9298
+ push {r4, lr}
+ mov r1, #2
+ add r4, r0, #0
+ bl MOD85_021D7BEC
+ mov r0, #0x3e
+ str r0, [r4]
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D9298
+
+ thumb_func_start MOD85_021D92AC
+MOD85_021D92AC: ; 0x021D92AC
+ push {r4, lr}
+ mov r1, #1
+ add r4, r0, #0
+ bl MOD85_021D7BEC
+ mov r0, #0x3e
+ str r0, [r4]
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D92AC
+
+ thumb_func_start MOD85_021D92C0
+MOD85_021D92C0: ; 0x021D92C0
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #3
+ bl MOD85_021DBD54
+ cmp r0, #0
+ beq _021D92D8
+ add r0, r4, #0
+ bl MOD85_021D7C44
+ ldr r0, [r4, #4]
+ str r0, [r4]
+_021D92D8:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD85_021D92C0
+
+ thumb_func_start MOD85_021D92DC
+MOD85_021D92DC: ; 0x021D92DC
+ push {r3, lr}
+ bl MOD85_021DB9A0
+ mov r0, #2
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D92DC
+
+ thumb_func_start MOD85_021D92E8
+MOD85_021D92E8: ; 0x021D92E8
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r5, r7, #0
+ add r5, #0xb4
+ mov r4, #0
+ add r6, r5, #0
+_021D92F4:
+ mov r0, #0
+ str r0, [r5]
+ add r2, r4, #0
+ str r4, [r5, #0x10]
+ ldr r0, _021D9318 ; =MOD85_021D936C
+ add r1, r6, #0
+ add r2, #0x81
+ str r7, [r5, #0x20]
+ bl FUN_0200CA44
+ str r0, [r5, #0x1c]
+ add r4, r4, #1
+ add r5, #0x24
+ add r6, #0x24
+ cmp r4, #3
+ blo _021D92F4
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D9318: .word MOD85_021D936C
+ thumb_func_end MOD85_021D92E8
+
+ thumb_func_start MOD85_021D931C
+MOD85_021D931C: ; 0x021D931C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r4, #0
+_021D9322:
+ add r0, r5, #0
+ add r0, #0xd0
+ ldr r0, [r0]
+ bl FUN_0200CAB4
+ add r4, r4, #1
+ add r5, #0x24
+ cmp r4, #3
+ blo _021D9322
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D931C
+
+ thumb_func_start MOD85_021D9338
+MOD85_021D9338: ; 0x021D9338
+ mov r2, #0x24
+ add r3, r1, #0
+ mul r3, r2
+ add r1, r0, r3
+ add r0, r0, r3
+ mov r2, #1
+ add r1, #0xb4
+ str r2, [r1]
+ add r0, #0xb8
+ str r2, [r0]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD85_021D9338
+
+ thumb_func_start MOD85_021D9350
+MOD85_021D9350: ; 0x021D9350
+ mov r2, #0x24
+ mul r2, r1
+ add r0, r0, r2
+ mov r3, #2
+ add r0, #0xb4
+ str r3, [r0]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD85_021D9350
+
+ thumb_func_start MOD85_021D9360
+MOD85_021D9360: ; 0x021D9360
+ mov r2, #0x24
+ mul r2, r1
+ add r0, r0, r2
+ add r0, #0xb8
+ ldr r0, [r0]
+ bx lr
+ thumb_func_end MOD85_021D9360
+
+ thumb_func_start MOD85_021D936C
+MOD85_021D936C: ; 0x021D936C
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ ldr r4, [r5, #0x20]
+ ldr r6, _021D9388 ; =0x021DEE20
+_021D9374:
+ ldr r2, [r5]
+ add r0, r5, #0
+ lsl r2, r2, #2
+ ldr r2, [r6, r2]
+ add r1, r4, #0
+ blx r2
+ cmp r0, #1
+ beq _021D9374
+ pop {r4, r5, r6, pc}
+ nop
+_021D9388: .word 0x021DEE20
+ thumb_func_end MOD85_021D936C
+
+ thumb_func_start MOD85_021D938C
+MOD85_021D938C: ; 0x021D938C
+ mov r0, #0
+ bx lr
+ thumb_func_end MOD85_021D938C
+
+ thumb_func_start MOD85_021D9390
+MOD85_021D9390: ; 0x021D9390
+ push {r3, lr}
+ add r2, r0, #0
+ add r0, r1, #0
+ ldr r1, [r2, #0x10]
+ add r2, r0, #0
+ add r2, #0x8c
+ ldr r2, [r2]
+ bl MOD85_021DA744
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D9390
+
+ thumb_func_start MOD85_021D93A8
+MOD85_021D93A8: ; 0x021D93A8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r2, [r5]
+ add r4, r1, #0
+ add r2, r2, #1
+ str r2, [r5]
+ mov r2, #0
+ str r2, [r5, #0x14]
+ str r2, [r5, #0x18]
+ ldr r2, [r4, #0x30]
+ cmp r2, #1
+ ldr r2, [r4, #8]
+ bne _021D93F2
+ cmp r2, #0
+ bne _021D93DC
+ bl MOD85_021D94E4
+ cmp r0, #0
+ bne _021D9400
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD85_021D9EDC
+ mov r0, #0
+ str r0, [r4, #0x30]
+ b _021D9400
+_021D93DC:
+ bl MOD85_021D951C
+ cmp r0, #0
+ bne _021D9400
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD85_021D9F8C
+ mov r0, #0
+ str r0, [r4, #0x30]
+ b _021D9400
+_021D93F2:
+ cmp r2, #0
+ bne _021D93FC
+ bl MOD85_021D9EDC
+ b _021D9400
+_021D93FC:
+ bl MOD85_021D9F8C
+_021D9400:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD85_021D93A8
+
+ thumb_func_start MOD85_021D9404
+MOD85_021D9404: ; 0x021D9404
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ add r3, r1, #0
+ ldr r1, [r5, #0x10]
+ add r7, r3, #0
+ lsl r0, r1, #2
+ add r7, #0x90
+ str r0, [sp]
+ ldr r0, [r7, r0]
+ mov r4, #0
+ lsr r6, r0, #0x1f
+ lsl r2, r0, #0xf
+ sub r2, r2, r6
+ mov r0, #0xf
+ ror r2, r0
+ add r0, r6, r2
+ beq _021D943E
+ add r2, r3, #0
+ add r2, #0x8c
+ ldr r2, [r2]
+ mov r4, #1
+ cmp r0, r2
+ bge _021D9436
+ add r2, r0, #0
+_021D9436:
+ add r0, r3, #0
+ bl MOD85_021DA780
+ b _021D9464
+_021D943E:
+ ldr r2, [r5, #0x18]
+ cmp r2, #0
+ beq _021D9464
+ sub r0, r2, #1
+ str r0, [r5, #0x18]
+ add r0, r3, #0
+ add r3, #0x8c
+ ldr r2, [r3]
+ mov r4, #1
+ bl MOD85_021DA744
+ ldr r0, [sp]
+ ldr r0, [r7, r0]
+ lsr r2, r0, #0x1f
+ lsl r1, r0, #0xf
+ sub r1, r1, r2
+ mov r0, #0xf
+ ror r1, r0
+ add r0, r2, r1
+_021D9464:
+ cmp r0, #0
+ bne _021D94A0
+ ldr r6, [r5, #0x18]
+ cmp r6, #0
+ bne _021D94A0
+ ldr r3, _021D94A8 ; =0x021DEE34
+ add r2, sp, #4
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ cmp r6, #4
+ str r0, [r2]
+ ble _021D9484
+ mov r6, #4
+_021D9484:
+ lsl r1, r6, #2
+ add r0, sp, #4
+ ldr r0, [r0, r1]
+ str r0, [r5, #8]
+ mov r0, #0
+ str r0, [r5, #0xc]
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ cmp r4, #0
+ bne _021D94A0
+ add sp, #0x18
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D94A0:
+ mov r0, #0
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D94A8: .word 0x021DEE34
+ thumb_func_end MOD85_021D9404
+
+ thumb_func_start MOD85_021D94AC
+MOD85_021D94AC: ; 0x021D94AC
+ push {r3, r4}
+ ldr r2, [r0, #0x10]
+ ldr r3, [r0, #8]
+ add r1, #0x9c
+ lsl r2, r2, #2
+ str r3, [r1, r2]
+ ldr r3, [r0, #8]
+ neg r3, r3
+ str r3, [r0, #8]
+ ldr r3, [r0, #0xc]
+ add r4, r3, #1
+ mov r3, #1
+ str r4, [r0, #0xc]
+ tst r3, r4
+ bne _021D94D0
+ ldr r3, [r0, #8]
+ asr r3, r3, #2
+ str r3, [r0, #8]
+_021D94D0:
+ ldr r3, [r0, #8]
+ cmp r3, #0
+ bne _021D94DE
+ mov r3, #0
+ str r3, [r0]
+ str r3, [r0, #4]
+ str r3, [r1, r2]
+_021D94DE:
+ mov r0, #0
+ pop {r3, r4}
+ bx lr
+ thumb_func_end MOD85_021D94AC
+
+ thumb_func_start MOD85_021D94E4
+MOD85_021D94E4: ; 0x021D94E4
+ push {r3, lr}
+ ldr r2, [r1, #0x74]
+ cmp r2, #0
+ bne _021D94F0
+ mov r0, #0
+ pop {r3, pc}
+_021D94F0:
+ ldr r2, [r0, #0x10]
+ cmp r2, #0
+ beq _021D9500
+ cmp r2, #1
+ beq _021D9506
+ cmp r2, #2
+ beq _021D950C
+ b _021D9512
+_021D9500:
+ bl MOD85_021D953C
+ pop {r3, pc}
+_021D9506:
+ bl MOD85_021D9578
+ pop {r3, pc}
+_021D950C:
+ bl MOD85_021D95B4
+ pop {r3, pc}
+_021D9512:
+ bl ErrorHandling
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D94E4
+
+ thumb_func_start MOD85_021D951C
+MOD85_021D951C: ; 0x021D951C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0x74]
+ cmp r0, #0
+ bne _021D952C
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_021D952C:
+ bl MOD85_021DBD74
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD85_021D9E94
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD85_021D951C
+
+ thumb_func_start MOD85_021D953C
+MOD85_021D953C: ; 0x021D953C
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0x74]
+ bl MOD85_021DBD74
+ add r6, r0, #0
+ cmp r6, #6
+ bne _021D9552
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+_021D9552:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD85_021DA058
+ cmp r0, #1
+ bne _021D956A
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD85_021D95F0
+ pop {r4, r5, r6, pc}
+_021D956A:
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD85_021D9708
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D953C
+
+ thumb_func_start MOD85_021D9578
+MOD85_021D9578: ; 0x021D9578
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0x74]
+ bl MOD85_021DBD74
+ add r6, r0, #0
+ cmp r6, #6
+ bne _021D958E
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+_021D958E:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD85_021DA058
+ cmp r0, #1
+ bne _021D95A6
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD85_021D9A48
+ pop {r4, r5, r6, pc}
+_021D95A6:
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD85_021D9AF0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D9578
+
+ thumb_func_start MOD85_021D95B4
+MOD85_021D95B4: ; 0x021D95B4
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0x74]
+ bl MOD85_021DBD74
+ add r6, r0, #0
+ cmp r6, #6
+ bne _021D95CA
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+_021D95CA:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD85_021DA058
+ cmp r0, #1
+ bne _021D95E2
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD85_021D9A48
+ pop {r4, r5, r6, pc}
+_021D95E2:
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD85_021D9AF0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D95B4
+
+ thumb_func_start MOD85_021D95F0
+MOD85_021D95F0: ; 0x021D95F0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ str r0, [sp]
+ ldr r0, [r0, #0x10]
+ add r4, r1, #0
+ add r6, r2, #0
+ str r0, [sp, #8]
+ mov r7, #1
+_021D9600:
+ ldr r1, [sp, #8]
+ add r0, r4, #0
+ add r2, r7, #0
+ bl MOD85_021DBD30
+ cmp r6, r0
+ bne _021D9638
+ mov r5, #0
+ cmp r7, #3
+ bgt _021D9638
+_021D9614:
+ add r0, r4, #0
+ add r1, r5, #0
+ add r2, r6, #0
+ bl MOD85_021DA290
+ cmp r0, #1
+ bne _021D9630
+ ldr r0, [sp]
+ add r1, r7, r5
+ str r1, [r0, #0x14]
+ str r5, [r0, #0x18]
+ add sp, #0x14
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_021D9630:
+ add r5, r5, #1
+ add r0, r7, r5
+ cmp r0, #3
+ ble _021D9614
+_021D9638:
+ add r7, r7, #1
+ cmp r7, #3
+ ble _021D9600
+ mov r0, #4
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #0x70]
+ cmp r0, #1
+ bne _021D964C
+ mov r0, #0x15
+ str r0, [sp, #0x10]
+_021D964C:
+ add r0, r4, #0
+ add r0, #0xa8
+ ldr r0, [r0]
+ mov r7, #1
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ cmp r0, #1
+ blt _021D9700
+_021D965C:
+ mov r2, #1
+ ldr r1, [sp, #8]
+ add r0, r4, #0
+ sub r2, r2, r7
+ bl MOD85_021DBD30
+ cmp r6, r0
+ bne _021D96F8
+ mov r5, #0
+_021D966E:
+ add r0, r7, r5
+ str r0, [sp, #4]
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ add r2, r6, #0
+ bl MOD85_021DA290
+ cmp r0, #1
+ bne _021D96F2
+ cmp r5, #0
+ bne _021D96B4
+ ldr r0, [sp, #0xc]
+ ldr r1, [sp, #0xc]
+ lsr r0, r0, #0x1f
+ lsl r2, r1, #0x1e
+ sub r2, r2, r0
+ mov r1, #0x1e
+ ror r2, r1
+ add r0, r0, r2
+ bne _021D96E2
+ add r0, r4, #0
+ add r1, r7, #2
+ add r2, r6, #0
+ bl MOD85_021DA290
+ cmp r0, #1
+ bne _021D96E2
+ ldr r0, [sp]
+ mov r1, #3
+ str r1, [r0, #0x14]
+ add r1, r7, #2
+ str r1, [r0, #0x18]
+ add sp, #0x14
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_021D96B4:
+ cmp r5, #1
+ bne _021D96E2
+ ldr r0, [sp, #0xc]
+ mov r1, #6
+ bl _s32_div_f
+ cmp r1, #2
+ bge _021D96E2
+ add r0, r4, #0
+ add r1, r7, #2
+ add r2, r6, #0
+ bl MOD85_021DA290
+ cmp r0, #1
+ bne _021D96E2
+ ldr r0, [sp]
+ mov r1, #3
+ str r1, [r0, #0x14]
+ add r1, r7, #2
+ str r1, [r0, #0x18]
+ add sp, #0x14
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_021D96E2:
+ ldr r0, [sp]
+ add r1, r5, #1
+ str r1, [r0, #0x14]
+ ldr r1, [sp, #4]
+ add sp, #0x14
+ str r1, [r0, #0x18]
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_021D96F2:
+ add r5, r5, #1
+ cmp r5, #3
+ blt _021D966E
+_021D96F8:
+ ldr r0, [sp, #0x10]
+ add r7, r7, #1
+ cmp r7, r0
+ ble _021D965C
+_021D9700:
+ mov r0, #0
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D95F0
+
+ thumb_func_start MOD85_021D9708
+MOD85_021D9708: ; 0x021D9708
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r4, r2, #0
+ add r2, r0, #0
+ ldr r7, [r2, #0x10]
+ add r2, sp, #0xc
+ str r2, [sp]
+ add r2, sp, #0x14
+ add r3, sp, #0x10
+ str r0, [sp, #4]
+ add r5, r1, #0
+ bl MOD85_021DA0A8
+ cmp r0, #0
+ bne _021D972C
+ add sp, #0x18
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_021D972C:
+ add r0, r5, #0
+ mov r1, #0
+ add r2, r4, #0
+ bl MOD85_021DA290
+ cmp r0, #1
+ bne _021D979C
+ ldr r2, [sp, #0x14]
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD85_021DBD30
+ cmp r4, r0
+ bne _021D9758
+ ldr r1, [sp, #0x14]
+ ldr r0, [sp, #4]
+ add sp, #0x18
+ str r1, [r0, #0x14]
+ mov r1, #0
+ str r1, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9758:
+ ldr r2, [sp, #0x10]
+ cmp r2, #0
+ beq _021D977A
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD85_021DBD30
+ cmp r4, r0
+ bne _021D977A
+ ldr r1, [sp, #0x10]
+ ldr r0, [sp, #4]
+ add sp, #0x18
+ str r1, [r0, #0x14]
+ mov r1, #0
+ str r1, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D977A:
+ ldr r2, [sp, #0xc]
+ cmp r2, #0
+ beq _021D979C
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD85_021DBD30
+ cmp r4, r0
+ bne _021D979C
+ ldr r1, [sp, #0xc]
+ ldr r0, [sp, #4]
+ add sp, #0x18
+ str r1, [r0, #0x14]
+ mov r1, #0
+ str r1, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D979C:
+ mov r0, #4
+ str r0, [sp, #8]
+ ldr r0, [r5, #0x70]
+ cmp r0, #1
+ bne _021D97AA
+ mov r0, #0x15
+ str r0, [sp, #8]
+_021D97AA:
+ ldr r0, [sp, #0x10]
+ cmp r0, #0
+ bne _021D97F2
+ ldr r0, [sp, #8]
+ mov r6, #1
+ cmp r0, #1
+ blt _021D97EC
+_021D97B8:
+ ldr r2, [sp, #0x14]
+ add r0, r5, #0
+ add r1, r7, #0
+ sub r2, r2, r6
+ bl MOD85_021DBD30
+ cmp r4, r0
+ bne _021D97E4
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD85_021DA290
+ cmp r0, #1
+ bne _021D97E4
+ ldr r1, [sp, #0x14]
+ ldr r0, [sp, #4]
+ add sp, #0x18
+ str r1, [r0, #0x14]
+ str r6, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D97E4:
+ ldr r0, [sp, #8]
+ add r6, r6, #1
+ cmp r6, r0
+ ble _021D97B8
+_021D97EC:
+ add sp, #0x18
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_021D97F2:
+ ldr r0, [sp, #0xc]
+ cmp r0, #0
+ bne _021D98C4
+ ldr r0, [sp, #8]
+ mov r6, #1
+ cmp r0, #1
+ blt _021D98BE
+_021D9800:
+ mov r0, #1
+ tst r0, r6
+ beq _021D985E
+ ldr r2, [sp, #0x14]
+ add r0, r5, #0
+ add r1, r7, #0
+ sub r2, r2, r6
+ bl MOD85_021DBD30
+ cmp r4, r0
+ bne _021D9832
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD85_021DA290
+ cmp r0, #1
+ bne _021D9832
+ ldr r1, [sp, #0x14]
+ ldr r0, [sp, #4]
+ add sp, #0x18
+ str r1, [r0, #0x14]
+ str r6, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9832:
+ ldr r2, [sp, #0x10]
+ add r0, r5, #0
+ add r1, r7, #0
+ sub r2, r2, r6
+ bl MOD85_021DBD30
+ cmp r4, r0
+ bne _021D98B6
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD85_021DA290
+ cmp r0, #1
+ bne _021D98B6
+ ldr r1, [sp, #0x10]
+ ldr r0, [sp, #4]
+ add sp, #0x18
+ str r1, [r0, #0x14]
+ str r6, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D985E:
+ ldr r2, [sp, #0x10]
+ add r0, r5, #0
+ add r1, r7, #0
+ sub r2, r2, r6
+ bl MOD85_021DBD30
+ cmp r4, r0
+ bne _021D988A
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD85_021DA290
+ cmp r0, #1
+ bne _021D988A
+ ldr r1, [sp, #0x10]
+ ldr r0, [sp, #4]
+ add sp, #0x18
+ str r1, [r0, #0x14]
+ str r6, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D988A:
+ ldr r2, [sp, #0x14]
+ add r0, r5, #0
+ add r1, r7, #0
+ sub r2, r2, r6
+ bl MOD85_021DBD30
+ cmp r4, r0
+ bne _021D98B6
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD85_021DA290
+ cmp r0, #1
+ bne _021D98B6
+ ldr r1, [sp, #0x14]
+ ldr r0, [sp, #4]
+ add sp, #0x18
+ str r1, [r0, #0x14]
+ str r6, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D98B6:
+ ldr r0, [sp, #8]
+ add r6, r6, #1
+ cmp r6, r0
+ ble _021D9800
+_021D98BE:
+ add sp, #0x18
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_021D98C4:
+ ldr r0, [sp, #8]
+ mov r6, #1
+ cmp r0, #1
+ bge _021D98CE
+ b _021D9A42
+_021D98CE:
+ mov r0, #3
+ and r0, r6
+ bne _021D9958
+ ldr r2, [sp, #0x14]
+ add r0, r5, #0
+ add r1, r7, #0
+ sub r2, r2, r6
+ bl MOD85_021DBD30
+ cmp r4, r0
+ bne _021D9900
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD85_021DA290
+ cmp r0, #1
+ bne _021D9900
+ ldr r1, [sp, #0x14]
+ ldr r0, [sp, #4]
+ add sp, #0x18
+ str r1, [r0, #0x14]
+ str r6, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9900:
+ ldr r2, [sp, #0x10]
+ add r0, r5, #0
+ add r1, r7, #0
+ sub r2, r2, r6
+ bl MOD85_021DBD30
+ cmp r4, r0
+ bne _021D992C
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD85_021DA290
+ cmp r0, #1
+ bne _021D992C
+ ldr r1, [sp, #0x10]
+ ldr r0, [sp, #4]
+ add sp, #0x18
+ str r1, [r0, #0x14]
+ str r6, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D992C:
+ ldr r2, [sp, #0xc]
+ add r0, r5, #0
+ add r1, r7, #0
+ sub r2, r2, r6
+ bl MOD85_021DBD30
+ cmp r4, r0
+ bne _021D9A38
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD85_021DA290
+ cmp r0, #1
+ bne _021D9A38
+ ldr r1, [sp, #0xc]
+ ldr r0, [sp, #4]
+ add sp, #0x18
+ str r1, [r0, #0x14]
+ str r6, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9958:
+ cmp r0, #1
+ bne _021D99B4
+ ldr r2, [sp, #0x10]
+ add r0, r5, #0
+ add r1, r7, #0
+ sub r2, r2, r6
+ bl MOD85_021DBD30
+ cmp r4, r0
+ bne _021D9988
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD85_021DA290
+ cmp r0, #1
+ bne _021D9988
+ ldr r1, [sp, #0x10]
+ ldr r0, [sp, #4]
+ add sp, #0x18
+ str r1, [r0, #0x14]
+ str r6, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9988:
+ ldr r2, [sp, #0x14]
+ add r0, r5, #0
+ add r1, r7, #0
+ sub r2, r2, r6
+ bl MOD85_021DBD30
+ cmp r4, r0
+ bne _021D9A38
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD85_021DA290
+ cmp r0, #1
+ bne _021D9A38
+ ldr r1, [sp, #0x14]
+ ldr r0, [sp, #4]
+ add sp, #0x18
+ str r1, [r0, #0x14]
+ str r6, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D99B4:
+ ldr r2, [sp, #0xc]
+ add r0, r5, #0
+ add r1, r7, #0
+ sub r2, r2, r6
+ bl MOD85_021DBD30
+ cmp r4, r0
+ bne _021D99E0
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD85_021DA290
+ cmp r0, #1
+ bne _021D99E0
+ ldr r1, [sp, #0xc]
+ ldr r0, [sp, #4]
+ add sp, #0x18
+ str r1, [r0, #0x14]
+ str r6, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D99E0:
+ ldr r2, [sp, #0x14]
+ add r0, r5, #0
+ add r1, r7, #0
+ sub r2, r2, r6
+ bl MOD85_021DBD30
+ cmp r4, r0
+ bne _021D9A0C
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD85_021DA290
+ cmp r0, #1
+ bne _021D9A0C
+ ldr r1, [sp, #0x14]
+ ldr r0, [sp, #4]
+ add sp, #0x18
+ str r1, [r0, #0x14]
+ str r6, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9A0C:
+ ldr r2, [sp, #0x10]
+ add r0, r5, #0
+ add r1, r7, #0
+ sub r2, r2, r6
+ bl MOD85_021DBD30
+ cmp r4, r0
+ bne _021D9A38
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD85_021DA290
+ cmp r0, #1
+ bne _021D9A38
+ ldr r1, [sp, #0x10]
+ ldr r0, [sp, #4]
+ add sp, #0x18
+ str r1, [r0, #0x14]
+ str r6, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9A38:
+ ldr r0, [sp, #8]
+ add r6, r6, #1
+ cmp r6, r0
+ bgt _021D9A42
+ b _021D98CE
+_021D9A42:
+ mov r0, #0
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD85_021D9708
+
+ thumb_func_start MOD85_021D9A48
+MOD85_021D9A48: ; 0x021D9A48
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ ldr r7, [r0, #0x10]
+ str r0, [sp]
+ add r4, r1, #0
+ add r6, r2, #0
+ mov r5, #1
+_021D9A56:
+ add r0, r4, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ bl MOD85_021DBD30
+ cmp r6, r0
+ bne _021D9A72
+ ldr r0, [sp]
+ mov r1, #0
+ str r5, [r0, #0x14]
+ str r1, [r0, #0x18]
+ add sp, #8
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9A72:
+ add r5, r5, #1
+ cmp r5, #3
+ ble _021D9A56
+ mov r0, #4
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x70]
+ cmp r0, #1
+ bne _021D9A86
+ mov r0, #0x15
+ str r0, [sp, #4]
+_021D9A86:
+ ldr r0, [sp, #4]
+ mov r5, #1
+ cmp r0, #1
+ blt _021D9AE8
+_021D9A8E:
+ mov r2, #1
+ add r0, r4, #0
+ add r1, r7, #0
+ sub r2, r2, r5
+ bl MOD85_021DBD30
+ cmp r6, r0
+ bne _021D9AE0
+ lsr r2, r5, #0x1f
+ lsl r1, r5, #0x1e
+ sub r1, r1, r2
+ mov r0, #0x1e
+ ror r1, r0
+ add r0, r2, r1
+ cmp r0, #1
+ bne _021D9ABE
+ ldr r0, [sp]
+ mov r1, #3
+ str r1, [r0, #0x14]
+ add r1, r5, #2
+ str r1, [r0, #0x18]
+ add sp, #8
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9ABE:
+ sub r0, r0, #2
+ cmp r0, #1
+ bhi _021D9AD4
+ ldr r0, [sp]
+ mov r1, #2
+ str r1, [r0, #0x14]
+ add r1, r5, #1
+ str r1, [r0, #0x18]
+ add sp, #8
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9AD4:
+ ldr r1, [sp]
+ mov r0, #1
+ str r0, [r1, #0x14]
+ add sp, #8
+ str r5, [r1, #0x18]
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9AE0:
+ ldr r0, [sp, #4]
+ add r5, r5, #1
+ cmp r5, r0
+ ble _021D9A8E
+_021D9AE8:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D9A48
+
+ thumb_func_start MOD85_021D9AF0
+MOD85_021D9AF0: ; 0x021D9AF0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x48
+ add r5, r2, #0
+ add r2, r0, #0
+ ldr r7, [r2, #0x10]
+ add r2, sp, #0x3c
+ str r2, [sp]
+ add r2, sp, #0x44
+ add r3, sp, #0x40
+ str r0, [sp, #4]
+ add r6, r1, #0
+ bl MOD85_021DA0A8
+ cmp r0, #0
+ bne _021D9B14
+ add sp, #0x48
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9B14:
+ ldr r2, [sp, #0x44]
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD85_021DBD30
+ cmp r5, r0
+ bne _021D9B32
+ ldr r1, [sp, #0x44]
+ ldr r0, [sp, #4]
+ add sp, #0x48
+ str r1, [r0, #0x14]
+ mov r1, #0
+ str r1, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9B32:
+ ldr r2, [sp, #0x40]
+ cmp r2, #0
+ beq _021D9B54
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD85_021DBD30
+ cmp r5, r0
+ bne _021D9B54
+ ldr r1, [sp, #0x40]
+ ldr r0, [sp, #4]
+ add sp, #0x48
+ str r1, [r0, #0x14]
+ mov r1, #0
+ str r1, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9B54:
+ ldr r2, [sp, #0x3c]
+ cmp r2, #0
+ beq _021D9B76
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD85_021DBD30
+ cmp r5, r0
+ bne _021D9B76
+ ldr r1, [sp, #0x3c]
+ ldr r0, [sp, #4]
+ add sp, #0x48
+ str r1, [r0, #0x14]
+ mov r1, #0
+ str r1, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9B76:
+ ldr r0, [r6, #0x70]
+ mov r4, #4
+ cmp r0, #1
+ bne _021D9B80
+ mov r4, #0x15
+_021D9B80:
+ ldr r0, [sp, #0x40]
+ cmp r0, #0
+ bne _021D9BC0
+ mov r0, #1
+ str r0, [sp, #0x38]
+ cmp r4, #1
+ blt _021D9BBA
+_021D9B8E:
+ ldr r3, [sp, #0x44]
+ ldr r2, [sp, #0x38]
+ add r0, r6, #0
+ add r1, r7, #0
+ sub r2, r3, r2
+ bl MOD85_021DBD30
+ cmp r5, r0
+ bne _021D9BB0
+ ldr r1, [sp, #0x44]
+ ldr r0, [sp, #4]
+ str r1, [r0, #0x14]
+ ldr r1, [sp, #0x38]
+ add sp, #0x48
+ str r1, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9BB0:
+ ldr r0, [sp, #0x38]
+ add r0, r0, #1
+ str r0, [sp, #0x38]
+ cmp r0, r4
+ ble _021D9B8E
+_021D9BBA:
+ add sp, #0x48
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9BC0:
+ lsl r0, r7, #2
+ add r0, r6, r0
+ add r0, #0xa8
+ ldr r1, [sp, #0x3c]
+ ldr r0, [r0]
+ cmp r1, #0
+ bne _021D9CA6
+ mov r1, #1
+ str r1, [sp, #8]
+ tst r0, r1
+ beq _021D9C3C
+ cmp r4, #1
+ blt _021D9C06
+_021D9BDA:
+ ldr r3, [sp, #0x44]
+ ldr r2, [sp, #8]
+ add r0, r6, #0
+ add r1, r7, #0
+ sub r2, r3, r2
+ bl MOD85_021DBD30
+ cmp r5, r0
+ bne _021D9BFC
+ ldr r1, [sp, #0x44]
+ ldr r0, [sp, #4]
+ str r1, [r0, #0x14]
+ ldr r1, [sp, #8]
+ add sp, #0x48
+ str r1, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9BFC:
+ ldr r0, [sp, #8]
+ add r0, r0, #1
+ str r0, [sp, #8]
+ cmp r0, r4
+ ble _021D9BDA
+_021D9C06:
+ mov r0, #1
+ str r0, [sp, #0xc]
+ cmp r4, #1
+ blt _021D9CA0
+_021D9C0E:
+ ldr r3, [sp, #0x40]
+ ldr r2, [sp, #0xc]
+ add r0, r6, #0
+ add r1, r7, #0
+ sub r2, r3, r2
+ bl MOD85_021DBD30
+ cmp r5, r0
+ bne _021D9C30
+ ldr r1, [sp, #0x40]
+ ldr r0, [sp, #4]
+ str r1, [r0, #0x14]
+ ldr r1, [sp, #0xc]
+ add sp, #0x48
+ str r1, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9C30:
+ ldr r0, [sp, #0xc]
+ add r0, r0, #1
+ str r0, [sp, #0xc]
+ cmp r0, r4
+ ble _021D9C0E
+ b _021D9CA0
+_021D9C3C:
+ cmp r4, #1
+ blt _021D9C6C
+_021D9C40:
+ ldr r3, [sp, #0x40]
+ ldr r2, [sp, #8]
+ add r0, r6, #0
+ add r1, r7, #0
+ sub r2, r3, r2
+ bl MOD85_021DBD30
+ cmp r5, r0
+ bne _021D9C62
+ ldr r1, [sp, #0x40]
+ ldr r0, [sp, #4]
+ str r1, [r0, #0x14]
+ ldr r1, [sp, #8]
+ add sp, #0x48
+ str r1, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9C62:
+ ldr r0, [sp, #8]
+ add r0, r0, #1
+ str r0, [sp, #8]
+ cmp r0, r4
+ ble _021D9C40
+_021D9C6C:
+ mov r0, #1
+ str r0, [sp, #0x10]
+ cmp r4, #1
+ blt _021D9CA0
+_021D9C74:
+ ldr r3, [sp, #0x44]
+ ldr r2, [sp, #0x10]
+ add r0, r6, #0
+ add r1, r7, #0
+ sub r2, r3, r2
+ bl MOD85_021DBD30
+ cmp r5, r0
+ bne _021D9C96
+ ldr r1, [sp, #0x44]
+ ldr r0, [sp, #4]
+ str r1, [r0, #0x14]
+ ldr r1, [sp, #0x10]
+ add sp, #0x48
+ str r1, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9C96:
+ ldr r0, [sp, #0x10]
+ add r0, r0, #1
+ str r0, [sp, #0x10]
+ cmp r0, r4
+ ble _021D9C74
+_021D9CA0:
+ add sp, #0x48
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9CA6:
+ mov r1, #3
+ bl _s32_div_f
+ cmp r1, #0
+ bne _021D9D4E
+ mov r0, #1
+ str r0, [sp, #0x14]
+ cmp r4, #1
+ blt _021D9CE4
+_021D9CB8:
+ ldr r3, [sp, #0x44]
+ ldr r2, [sp, #0x14]
+ add r0, r6, #0
+ add r1, r7, #0
+ sub r2, r3, r2
+ bl MOD85_021DBD30
+ cmp r5, r0
+ bne _021D9CDA
+ ldr r1, [sp, #0x44]
+ ldr r0, [sp, #4]
+ str r1, [r0, #0x14]
+ ldr r1, [sp, #0x14]
+ add sp, #0x48
+ str r1, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9CDA:
+ ldr r0, [sp, #0x14]
+ add r0, r0, #1
+ str r0, [sp, #0x14]
+ cmp r0, r4
+ ble _021D9CB8
+_021D9CE4:
+ mov r0, #1
+ str r0, [sp, #0x18]
+ cmp r4, #1
+ blt _021D9D18
+_021D9CEC:
+ ldr r3, [sp, #0x40]
+ ldr r2, [sp, #0x18]
+ add r0, r6, #0
+ add r1, r7, #0
+ sub r2, r3, r2
+ bl MOD85_021DBD30
+ cmp r5, r0
+ bne _021D9D0E
+ ldr r1, [sp, #0x40]
+ ldr r0, [sp, #4]
+ str r1, [r0, #0x14]
+ ldr r1, [sp, #0x18]
+ add sp, #0x48
+ str r1, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9D0E:
+ ldr r0, [sp, #0x18]
+ add r0, r0, #1
+ str r0, [sp, #0x18]
+ cmp r0, r4
+ ble _021D9CEC
+_021D9D18:
+ mov r0, #1
+ str r0, [sp, #0x1c]
+ cmp r4, #1
+ blt _021D9D4C
+_021D9D20:
+ ldr r3, [sp, #0x3c]
+ ldr r2, [sp, #0x1c]
+ add r0, r6, #0
+ add r1, r7, #0
+ sub r2, r3, r2
+ bl MOD85_021DBD30
+ cmp r5, r0
+ bne _021D9D42
+ ldr r1, [sp, #0x3c]
+ ldr r0, [sp, #4]
+ str r1, [r0, #0x14]
+ ldr r1, [sp, #0x1c]
+ add sp, #0x48
+ str r1, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9D42:
+ ldr r0, [sp, #0x1c]
+ add r0, r0, #1
+ str r0, [sp, #0x1c]
+ cmp r0, r4
+ ble _021D9D20
+_021D9D4C:
+ b _021D9E8C
+_021D9D4E:
+ cmp r1, #1
+ bne _021D9DF0
+ mov r0, #1
+ str r0, [sp, #0x20]
+ cmp r4, #1
+ blt _021D9D86
+_021D9D5A:
+ ldr r3, [sp, #0x40]
+ ldr r2, [sp, #0x20]
+ add r0, r6, #0
+ add r1, r7, #0
+ sub r2, r3, r2
+ bl MOD85_021DBD30
+ cmp r5, r0
+ bne _021D9D7C
+ ldr r1, [sp, #0x40]
+ ldr r0, [sp, #4]
+ str r1, [r0, #0x14]
+ ldr r1, [sp, #0x20]
+ add sp, #0x48
+ str r1, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9D7C:
+ ldr r0, [sp, #0x20]
+ add r0, r0, #1
+ str r0, [sp, #0x20]
+ cmp r0, r4
+ ble _021D9D5A
+_021D9D86:
+ mov r0, #1
+ str r0, [sp, #0x24]
+ cmp r4, #1
+ blt _021D9DBA
+_021D9D8E:
+ ldr r3, [sp, #0x3c]
+ ldr r2, [sp, #0x24]
+ add r0, r6, #0
+ add r1, r7, #0
+ sub r2, r3, r2
+ bl MOD85_021DBD30
+ cmp r5, r0
+ bne _021D9DB0
+ ldr r1, [sp, #0x3c]
+ ldr r0, [sp, #4]
+ str r1, [r0, #0x14]
+ ldr r1, [sp, #0x24]
+ add sp, #0x48
+ str r1, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9DB0:
+ ldr r0, [sp, #0x24]
+ add r0, r0, #1
+ str r0, [sp, #0x24]
+ cmp r0, r4
+ ble _021D9D8E
+_021D9DBA:
+ mov r0, #1
+ str r0, [sp, #0x28]
+ cmp r4, #1
+ blt _021D9E8C
+_021D9DC2:
+ ldr r3, [sp, #0x44]
+ ldr r2, [sp, #0x28]
+ add r0, r6, #0
+ add r1, r7, #0
+ sub r2, r3, r2
+ bl MOD85_021DBD30
+ cmp r5, r0
+ bne _021D9DE4
+ ldr r1, [sp, #0x44]
+ ldr r0, [sp, #4]
+ str r1, [r0, #0x14]
+ ldr r1, [sp, #0x28]
+ add sp, #0x48
+ str r1, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9DE4:
+ ldr r0, [sp, #0x28]
+ add r0, r0, #1
+ str r0, [sp, #0x28]
+ cmp r0, r4
+ ble _021D9DC2
+ b _021D9E8C
+_021D9DF0:
+ mov r0, #1
+ str r0, [sp, #0x2c]
+ cmp r4, #1
+ blt _021D9E24
+_021D9DF8:
+ ldr r3, [sp, #0x3c]
+ ldr r2, [sp, #0x2c]
+ add r0, r6, #0
+ add r1, r7, #0
+ sub r2, r3, r2
+ bl MOD85_021DBD30
+ cmp r5, r0
+ bne _021D9E1A
+ ldr r1, [sp, #0x3c]
+ ldr r0, [sp, #4]
+ str r1, [r0, #0x14]
+ ldr r1, [sp, #0x2c]
+ add sp, #0x48
+ str r1, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9E1A:
+ ldr r0, [sp, #0x2c]
+ add r0, r0, #1
+ str r0, [sp, #0x2c]
+ cmp r0, r4
+ ble _021D9DF8
+_021D9E24:
+ mov r0, #1
+ str r0, [sp, #0x30]
+ cmp r4, #1
+ blt _021D9E58
+_021D9E2C:
+ ldr r3, [sp, #0x44]
+ ldr r2, [sp, #0x30]
+ add r0, r6, #0
+ add r1, r7, #0
+ sub r2, r3, r2
+ bl MOD85_021DBD30
+ cmp r5, r0
+ bne _021D9E4E
+ ldr r1, [sp, #0x44]
+ ldr r0, [sp, #4]
+ str r1, [r0, #0x14]
+ ldr r1, [sp, #0x30]
+ add sp, #0x48
+ str r1, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9E4E:
+ ldr r0, [sp, #0x30]
+ add r0, r0, #1
+ str r0, [sp, #0x30]
+ cmp r0, r4
+ ble _021D9E2C
+_021D9E58:
+ mov r0, #1
+ str r0, [sp, #0x34]
+ cmp r4, #1
+ blt _021D9E8C
+_021D9E60:
+ ldr r3, [sp, #0x40]
+ ldr r2, [sp, #0x34]
+ add r0, r6, #0
+ add r1, r7, #0
+ sub r2, r3, r2
+ bl MOD85_021DBD30
+ cmp r5, r0
+ bne _021D9E82
+ ldr r1, [sp, #0x40]
+ ldr r0, [sp, #4]
+ str r1, [r0, #0x14]
+ ldr r1, [sp, #0x34]
+ add sp, #0x48
+ str r1, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9E82:
+ ldr r0, [sp, #0x34]
+ add r0, r0, #1
+ str r0, [sp, #0x34]
+ cmp r0, r4
+ ble _021D9E60
+_021D9E8C:
+ mov r0, #0
+ add sp, #0x48
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D9AF0
+
+ thumb_func_start MOD85_021D9E94
+MOD85_021D9E94: ; 0x021D9E94
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ str r0, [sp]
+ ldr r0, [r0, #0x10]
+ add r6, r1, #0
+ str r0, [sp, #4]
+ ldr r0, [r6, #0x70]
+ add r7, r2, #0
+ mov r5, #4
+ cmp r0, #1
+ bne _021D9EAC
+ mov r5, #0x15
+_021D9EAC:
+ mov r4, #0
+ cmp r5, #0
+ blt _021D9ED6
+_021D9EB2:
+ mov r2, #2
+ ldr r1, [sp, #4]
+ add r0, r6, #0
+ sub r2, r2, r4
+ bl MOD85_021DBD30
+ cmp r7, r0
+ bne _021D9ED0
+ ldr r0, [sp]
+ mov r1, #2
+ str r1, [r0, #0x14]
+ str r4, [r0, #0x18]
+ add sp, #8
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9ED0:
+ add r4, r4, #1
+ cmp r4, r5
+ ble _021D9EB2
+_021D9ED6:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD85_021D9E94
+
+ thumb_func_start MOD85_021D9EDC
+MOD85_021D9EDC: ; 0x021D9EDC
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD85_021DA040
+ ldr r1, [r6, #0x10]
+ cmp r1, #0
+ beq _021D9EF2
+ cmp r0, #2
+ blt _021D9F88
+_021D9EF2:
+ cmp r1, #0
+ bne _021D9F18
+ cmp r0, #2
+ bge _021D9F18
+ mov r5, #0
+_021D9EFC:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD85_021DA24C
+ cmp r0, #0
+ bne _021D9F0C
+ str r5, [r6, #0x18]
+ pop {r4, r5, r6, pc}
+_021D9F0C:
+ add r5, r5, #1
+ cmp r5, #0x15
+ ble _021D9EFC
+ bl ErrorHandling
+ pop {r4, r5, r6, pc}
+_021D9F18:
+ cmp r1, #0
+ beq _021D9F26
+ cmp r1, #1
+ beq _021D9F46
+ cmp r1, #2
+ beq _021D9F66
+ b _021D9F84
+_021D9F26:
+ mov r5, #1
+_021D9F28:
+ add r0, r6, #0
+ add r1, r4, #0
+ add r2, r5, #0
+ bl MOD85_021DA2AC
+ cmp r0, #0
+ bne _021D9F3A
+ str r5, [r6, #0x18]
+ pop {r4, r5, r6, pc}
+_021D9F3A:
+ add r5, r5, #1
+ cmp r5, #0x15
+ ble _021D9F28
+ bl ErrorHandling
+ pop {r4, r5, r6, pc}
+_021D9F46:
+ mov r5, #1
+_021D9F48:
+ add r0, r6, #0
+ add r1, r4, #0
+ add r2, r5, #0
+ bl MOD85_021DA3F8
+ cmp r0, #0
+ bne _021D9F5A
+ str r5, [r6, #0x18]
+ pop {r4, r5, r6, pc}
+_021D9F5A:
+ add r5, r5, #1
+ cmp r5, #0x15
+ ble _021D9F48
+ bl ErrorHandling
+ b _021D9F84
+_021D9F66:
+ mov r5, #1
+_021D9F68:
+ add r0, r6, #0
+ add r1, r4, #0
+ add r2, r5, #0
+ bl MOD85_021DA530
+ cmp r0, #0
+ bne _021D9F7A
+ str r5, [r6, #0x18]
+ pop {r4, r5, r6, pc}
+_021D9F7A:
+ add r5, r5, #1
+ cmp r5, #0x15
+ ble _021D9F68
+ bl ErrorHandling
+_021D9F84:
+ bl ErrorHandling
+_021D9F88:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D9EDC
+
+ thumb_func_start MOD85_021D9F8C
+MOD85_021D9F8C: ; 0x021D9F8C
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD85_021DA040
+ ldr r1, [r6, #0x10]
+ cmp r1, #0
+ beq _021D9FA2
+ cmp r0, #2
+ blt _021DA03C
+_021D9FA2:
+ cmp r1, #0
+ bne _021D9FCA
+ cmp r0, #2
+ bge _021D9FCA
+ mov r5, #0
+ mov r7, #2
+_021D9FAE:
+ add r0, r4, #0
+ mov r1, #0
+ sub r2, r7, r5
+ bl MOD85_021DBD30
+ cmp r0, #3
+ beq _021D9FC0
+ str r5, [r6, #0x18]
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9FC0:
+ add r5, r5, #1
+ cmp r5, #0x15
+ blt _021D9FAE
+ bl ErrorHandling
+_021D9FCA:
+ ldr r0, [r6, #0x10]
+ cmp r0, #0
+ beq _021D9FDA
+ cmp r0, #1
+ beq _021D9FFA
+ cmp r0, #2
+ beq _021DA01A
+ b _021DA038
+_021D9FDA:
+ mov r5, #0
+_021D9FDC:
+ add r0, r6, #0
+ add r1, r4, #0
+ add r2, r5, #0
+ bl MOD85_021DA668
+ cmp r0, #0
+ bne _021D9FEE
+ str r5, [r6, #0x18]
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9FEE:
+ add r5, r5, #1
+ cmp r5, #0x15
+ blt _021D9FDC
+ bl ErrorHandling
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9FFA:
+ mov r5, #0
+_021D9FFC:
+ add r0, r6, #0
+ add r1, r4, #0
+ add r2, r5, #0
+ bl MOD85_021DA6B4
+ cmp r0, #0
+ bne _021DA00E
+ str r5, [r6, #0x18]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA00E:
+ add r5, r5, #1
+ cmp r5, #0x15
+ ble _021D9FFC
+ bl ErrorHandling
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA01A:
+ mov r5, #0
+_021DA01C:
+ add r0, r6, #0
+ add r1, r4, #0
+ add r2, r5, #0
+ bl MOD85_021DA6FC
+ cmp r0, #0
+ bne _021DA02E
+ str r5, [r6, #0x18]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA02E:
+ add r5, r5, #1
+ cmp r5, #0x15
+ ble _021DA01C
+ bl ErrorHandling
+_021DA038:
+ bl ErrorHandling
+_021DA03C:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D9F8C
+
+ thumb_func_start MOD85_021DA040
+MOD85_021DA040: ; 0x021DA040
+ mov r2, #0
+ add r3, r2, #0
+_021DA044:
+ ldr r1, [r0, #0x7c]
+ cmp r1, #1
+ beq _021DA04C
+ add r3, r3, #1
+_021DA04C:
+ add r2, r2, #1
+ add r0, r0, #4
+ cmp r2, #3
+ blt _021DA044
+ add r0, r3, #0
+ bx lr
+ thumb_func_end MOD85_021DA040
+
+ thumb_func_start MOD85_021DA058
+MOD85_021DA058: ; 0x021DA058
+ ldr r0, [r0, #0x10]
+ cmp r0, #0
+ beq _021DA068
+ cmp r0, #1
+ beq _021DA07E
+ cmp r0, #2
+ beq _021DA090
+ b _021DA0A2
+_021DA068:
+ add r0, r1, #0
+ add r0, #0x80
+ ldr r0, [r0]
+ cmp r0, #1
+ bne _021DA07A
+ add r1, #0x84
+ ldr r0, [r1]
+ cmp r0, #1
+ beq _021DA0A2
+_021DA07A:
+ mov r0, #0
+ bx lr
+_021DA07E:
+ ldr r0, [r1, #0x7c]
+ cmp r0, #1
+ bne _021DA08C
+ add r1, #0x84
+ ldr r0, [r1]
+ cmp r0, #1
+ beq _021DA0A2
+_021DA08C:
+ mov r0, #0
+ bx lr
+_021DA090:
+ ldr r0, [r1, #0x7c]
+ cmp r0, #1
+ bne _021DA09E
+ add r1, #0x80
+ ldr r0, [r1]
+ cmp r0, #1
+ beq _021DA0A2
+_021DA09E:
+ mov r0, #0
+ bx lr
+_021DA0A2:
+ mov r0, #1
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD85_021DA058
+
+ thumb_func_start MOD85_021DA0A8
+MOD85_021DA0A8: ; 0x021DA0A8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ str r0, [sp]
+ add r5, r1, #0
+ ldr r0, [sp, #0x20]
+ add r1, r3, #0
+ str r0, [sp, #0x20]
+ add r0, r5, #0
+ add r0, #0x80
+ ldr r0, [r0]
+ ldr r7, [r5, #0x7c]
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0x84
+ ldr r0, [r0]
+ mov r3, #0
+ mov ip, r0
+ add r0, r5, #0
+ add r0, #0xc8
+ ldr r4, [r0]
+ add r0, r5, #0
+ add r0, #0xec
+ ldr r6, [r0]
+ mov r0, #0x11
+ lsl r0, r0, #4
+ ldr r5, [r5, r0]
+ ldr r0, [sp, #0x20]
+ str r3, [r2]
+ str r3, [r1]
+ str r3, [r0]
+ ldr r0, [sp]
+ ldr r0, [r0, #0x10]
+ cmp r0, #0
+ beq _021DA0F6
+ cmp r0, #1
+ beq _021DA160
+ cmp r0, #2
+ beq _021DA1DC
+ b _021DA240
+_021DA0F6:
+ ldr r0, [sp, #4]
+ cmp r0, #1
+ beq _021DA124
+ mov r0, ip
+ cmp r0, #1
+ beq _021DA124
+ cmp r6, r5
+ bne _021DA10E
+ add sp, #8
+ str r6, [r2]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA10E:
+ cmp r5, #1
+ bne _021DA11C
+ mov r0, #3
+ str r0, [r2]
+ add sp, #8
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA11C:
+ mov r0, #1
+ str r0, [r2]
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA124:
+ ldr r0, [sp, #4]
+ cmp r0, #1
+ beq _021DA148
+ cmp r6, #2
+ bne _021DA140
+ mov r0, #1
+ str r0, [r2]
+ mov r2, #2
+ str r2, [r1]
+ ldr r1, [sp, #0x20]
+ mov r2, #3
+ str r2, [r1]
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA140:
+ add sp, #8
+ str r6, [r2]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA148:
+ cmp r5, #2
+ bne _021DA154
+ add sp, #8
+ str r5, [r2]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA154:
+ mov r0, #1
+ str r0, [r2]
+ mov r2, #3
+ str r2, [r1]
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA160:
+ cmp r7, #1
+ beq _021DA180
+ mov r0, ip
+ cmp r0, #1
+ beq _021DA180
+ cmp r4, r5
+ bne _021DA176
+ add sp, #8
+ str r4, [r2]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA176:
+ mov r0, #2
+ str r0, [r2]
+ add sp, #8
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA180:
+ cmp r7, #1
+ beq _021DA1B0
+ cmp r4, #2
+ bne _021DA192
+ mov r0, #2
+ str r0, [r2]
+ add sp, #8
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA192:
+ cmp r4, #1
+ bne _021DA1A2
+ mov r0, #1
+ str r0, [r2]
+ mov r2, #2
+ str r2, [r1]
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA1A2:
+ mov r0, #2
+ str r0, [r2]
+ mov r0, #3
+ str r0, [r1]
+ add sp, #8
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA1B0:
+ cmp r5, #2
+ bne _021DA1BE
+ mov r0, #2
+ str r0, [r2]
+ add sp, #8
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA1BE:
+ cmp r5, #1
+ bne _021DA1CE
+ mov r0, #1
+ str r0, [r2]
+ mov r2, #2
+ str r2, [r1]
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA1CE:
+ mov r0, #2
+ str r0, [r2]
+ mov r0, #3
+ str r0, [r1]
+ add sp, #8
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA1DC:
+ cmp r7, #1
+ beq _021DA204
+ ldr r0, [sp, #4]
+ cmp r0, #1
+ beq _021DA204
+ cmp r4, r6
+ bne _021DA1F2
+ add sp, #8
+ str r4, [r2]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA1F2:
+ cmp r4, #1
+ bne _021DA1FA
+ mov r0, #3
+ b _021DA1FC
+_021DA1FA:
+ mov r0, #1
+_021DA1FC:
+ str r0, [r2]
+ add sp, #8
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA204:
+ cmp r7, #1
+ beq _021DA222
+ cmp r4, #2
+ bne _021DA216
+ mov r0, #2
+ str r0, [r2]
+ add sp, #8
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA216:
+ mov r0, #1
+ str r0, [r2]
+ mov r2, #3
+ str r2, [r1]
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA222:
+ cmp r6, #2
+ bne _021DA238
+ mov r0, #1
+ str r0, [r2]
+ mov r2, #2
+ str r2, [r1]
+ ldr r1, [sp, #0x20]
+ mov r2, #3
+ str r2, [r1]
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA238:
+ add sp, #8
+ str r6, [r2]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA240:
+ bl ErrorHandling
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DA0A8
+
+ thumb_func_start MOD85_021DA24C
+MOD85_021DA24C: ; 0x021DA24C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ mov r2, #1
+ mov r1, #0
+ sub r2, r2, r4
+ add r5, r0, #0
+ bl MOD85_021DBD30
+ cmp r0, #3
+ bne _021DA264
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021DA264:
+ mov r2, #2
+ add r0, r5, #0
+ mov r1, #0
+ sub r2, r2, r4
+ bl MOD85_021DBD30
+ cmp r0, #3
+ bne _021DA278
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021DA278:
+ mov r2, #3
+ add r0, r5, #0
+ mov r1, #0
+ sub r2, r2, r4
+ bl MOD85_021DBD30
+ cmp r0, #3
+ bne _021DA28C
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021DA28C:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD85_021DA24C
+
+ thumb_func_start MOD85_021DA290
+MOD85_021DA290: ; 0x021DA290
+ push {r3, lr}
+ cmp r2, #3
+ bne _021DA29A
+ mov r0, #1
+ pop {r3, pc}
+_021DA29A:
+ bl MOD85_021DA24C
+ cmp r0, #0
+ bne _021DA2A6
+ mov r0, #1
+ pop {r3, pc}
+_021DA2A6:
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DA290
+
+ thumb_func_start MOD85_021DA2AC
+MOD85_021DA2AC: ; 0x021DA2AC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ add r4, r1, #0
+ add r0, r4, #0
+ add r0, #0xf0
+ ldr r7, [r0]
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r6, [r4, r0]
+ mov r1, #1
+ add r0, r2, #0
+ sub r0, r1, r0
+ str r0, [sp, #0x10]
+ str r2, [sp]
+ ldr r2, [sp, #0x10]
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD85_021DBD30
+ mov r1, #1
+ add r5, r0, #0
+ add r0, r4, #0
+ sub r2, r1, r7
+ bl MOD85_021DBD30
+ str r0, [sp, #0x14]
+ mov r0, #1
+ sub r0, r0, r6
+ str r0, [sp, #4]
+ ldr r2, [sp, #4]
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD85_021DBD30
+ cmp r5, #3
+ beq _021DA2FE
+ ldr r1, [sp, #0x14]
+ cmp r5, r1
+ bne _021DA304
+ cmp r5, r0
+ bne _021DA304
+_021DA2FE:
+ add sp, #0x20
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA304:
+ ldr r2, [sp]
+ mov r3, #2
+ add r0, r4, #0
+ mov r1, #0
+ sub r2, r3, r2
+ bl MOD85_021DBD30
+ add r5, r0, #0
+ mov r0, #2
+ sub r0, r0, r7
+ str r0, [sp, #0xc]
+ ldr r2, [sp, #0xc]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD85_021DBD30
+ mov r1, #2
+ str r0, [sp, #0x18]
+ add r0, r4, #0
+ sub r2, r1, r6
+ bl MOD85_021DBD30
+ cmp r5, #3
+ beq _021DA33E
+ ldr r1, [sp, #0x18]
+ cmp r5, r1
+ bne _021DA344
+ cmp r5, r0
+ bne _021DA344
+_021DA33E:
+ add sp, #0x20
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA344:
+ ldr r0, [sp]
+ mov r1, #3
+ sub r0, r1, r0
+ str r0, [sp, #8]
+ ldr r2, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD85_021DBD30
+ mov r2, #3
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ sub r2, r2, r7
+ bl MOD85_021DBD30
+ add r7, r0, #0
+ mov r0, #3
+ sub r0, r0, r6
+ str r0, [sp, #0x1c]
+ ldr r2, [sp, #0x1c]
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD85_021DBD30
+ cmp r5, #3
+ beq _021DA382
+ cmp r5, r7
+ bne _021DA388
+ cmp r5, r0
+ bne _021DA388
+_021DA382:
+ add sp, #0x20
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA388:
+ ldr r2, [sp, #0x10]
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD85_021DBD30
+ add r5, r0, #0
+ ldr r2, [sp, #0xc]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD85_021DBD30
+ add r6, r0, #0
+ ldr r2, [sp, #0x1c]
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD85_021DBD30
+ cmp r5, #3
+ beq _021DA3B6
+ cmp r5, r6
+ bne _021DA3BC
+ cmp r5, r0
+ bne _021DA3BC
+_021DA3B6:
+ add sp, #0x20
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA3BC:
+ ldr r2, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD85_021DBD30
+ add r5, r0, #0
+ ldr r2, [sp, #0xc]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD85_021DBD30
+ add r6, r0, #0
+ ldr r2, [sp, #4]
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD85_021DBD30
+ cmp r5, #3
+ beq _021DA3EA
+ cmp r5, r6
+ bne _021DA3F0
+ cmp r5, r0
+ bne _021DA3F0
+_021DA3EA:
+ add sp, #0x20
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA3F0:
+ mov r0, #0
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DA2AC
+
+ thumb_func_start MOD85_021DA3F8
+MOD85_021DA3F8: ; 0x021DA3F8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r5, r1, #0
+ add r0, r5, #0
+ add r0, #0xcc
+ ldr r6, [r0]
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r4, [r5, r0]
+ mov r0, #1
+ sub r0, r0, r6
+ str r0, [sp, #0xc]
+ add r7, r2, #0
+ ldr r2, [sp, #0xc]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD85_021DBD30
+ mov r1, #1
+ str r0, [sp, #0x10]
+ add r0, r5, #0
+ sub r2, r1, r7
+ bl MOD85_021DBD30
+ str r0, [sp, #0x14]
+ mov r0, #1
+ sub r0, r0, r4
+ str r0, [sp]
+ ldr r2, [sp]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD85_021DBD30
+ ldr r2, [sp, #0x10]
+ ldr r1, [sp, #0x14]
+ cmp r2, r1
+ bne _021DA44E
+ add r1, r2, #0
+ cmp r1, r0
+ bne _021DA44E
+ add sp, #0x24
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_021DA44E:
+ mov r2, #2
+ add r0, r5, #0
+ mov r1, #0
+ sub r2, r2, r6
+ bl MOD85_021DBD30
+ str r0, [sp, #0x18]
+ mov r0, #2
+ sub r0, r0, r7
+ str r0, [sp, #8]
+ ldr r2, [sp, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD85_021DBD30
+ mov r1, #2
+ str r0, [sp, #0x1c]
+ add r0, r5, #0
+ sub r2, r1, r4
+ bl MOD85_021DBD30
+ ldr r2, [sp, #0x18]
+ ldr r1, [sp, #0x1c]
+ cmp r2, r1
+ bne _021DA48C
+ add r1, r2, #0
+ cmp r1, r0
+ bne _021DA48C
+ add sp, #0x24
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_021DA48C:
+ mov r0, #3
+ sub r0, r0, r6
+ str r0, [sp, #4]
+ ldr r2, [sp, #4]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD85_021DBD30
+ mov r2, #3
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ sub r2, r2, r7
+ bl MOD85_021DBD30
+ str r0, [sp, #0x20]
+ mov r0, #3
+ sub r7, r0, r4
+ add r0, r5, #0
+ mov r1, #2
+ add r2, r7, #0
+ bl MOD85_021DBD30
+ ldr r1, [sp, #0x20]
+ cmp r6, r1
+ bne _021DA4CA
+ cmp r6, r0
+ bne _021DA4CA
+ add sp, #0x24
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_021DA4CA:
+ ldr r2, [sp, #0xc]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD85_021DBD30
+ add r4, r0, #0
+ ldr r2, [sp, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD85_021DBD30
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #2
+ add r2, r7, #0
+ bl MOD85_021DBD30
+ cmp r4, r6
+ bne _021DA4FA
+ cmp r4, r0
+ bne _021DA4FA
+ add sp, #0x24
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_021DA4FA:
+ ldr r2, [sp, #4]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD85_021DBD30
+ add r4, r0, #0
+ ldr r2, [sp, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD85_021DBD30
+ add r6, r0, #0
+ ldr r2, [sp]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD85_021DBD30
+ cmp r4, r6
+ bne _021DA52A
+ cmp r4, r0
+ bne _021DA52A
+ add sp, #0x24
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_021DA52A:
+ mov r0, #0
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ thumb_func_end MOD85_021DA3F8
+
+ thumb_func_start MOD85_021DA530
+MOD85_021DA530: ; 0x021DA530
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ add r5, r1, #0
+ add r0, r5, #0
+ add r0, #0xcc
+ ldr r6, [r0]
+ add r0, r5, #0
+ add r0, #0xf0
+ ldr r4, [r0]
+ mov r0, #1
+ sub r0, r0, r6
+ str r0, [sp, #0xc]
+ add r7, r2, #0
+ ldr r2, [sp, #0xc]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD85_021DBD30
+ mov r1, #1
+ str r0, [sp, #0x10]
+ add r0, r5, #0
+ sub r2, r1, r4
+ bl MOD85_021DBD30
+ str r0, [sp, #0x14]
+ mov r0, #1
+ sub r0, r0, r7
+ str r0, [sp]
+ ldr r2, [sp]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD85_021DBD30
+ ldr r2, [sp, #0x10]
+ ldr r1, [sp, #0x14]
+ cmp r2, r1
+ bne _021DA586
+ add r1, r2, #0
+ cmp r1, r0
+ bne _021DA586
+ add sp, #0x20
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA586:
+ mov r2, #2
+ add r0, r5, #0
+ mov r1, #0
+ sub r2, r2, r6
+ bl MOD85_021DBD30
+ str r0, [sp, #0x18]
+ mov r0, #2
+ sub r0, r0, r4
+ str r0, [sp, #8]
+ ldr r2, [sp, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD85_021DBD30
+ mov r1, #2
+ str r0, [sp, #0x1c]
+ add r0, r5, #0
+ sub r2, r1, r7
+ bl MOD85_021DBD30
+ ldr r2, [sp, #0x18]
+ ldr r1, [sp, #0x1c]
+ cmp r2, r1
+ bne _021DA5C4
+ add r1, r2, #0
+ cmp r1, r0
+ bne _021DA5C4
+ add sp, #0x20
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA5C4:
+ mov r0, #3
+ sub r0, r0, r6
+ str r0, [sp, #4]
+ ldr r2, [sp, #4]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD85_021DBD30
+ mov r2, #3
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ sub r2, r2, r4
+ bl MOD85_021DBD30
+ add r4, r0, #0
+ mov r0, #3
+ sub r7, r0, r7
+ add r0, r5, #0
+ mov r1, #2
+ add r2, r7, #0
+ bl MOD85_021DBD30
+ cmp r6, r4
+ bne _021DA600
+ cmp r6, r0
+ bne _021DA600
+ add sp, #0x20
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA600:
+ ldr r2, [sp, #0xc]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD85_021DBD30
+ add r4, r0, #0
+ ldr r2, [sp, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD85_021DBD30
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #2
+ add r2, r7, #0
+ bl MOD85_021DBD30
+ cmp r4, r6
+ bne _021DA630
+ cmp r4, r0
+ bne _021DA630
+ add sp, #0x20
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA630:
+ ldr r2, [sp, #4]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD85_021DBD30
+ add r4, r0, #0
+ ldr r2, [sp, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD85_021DBD30
+ add r6, r0, #0
+ ldr r2, [sp]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD85_021DBD30
+ cmp r4, r6
+ bne _021DA660
+ cmp r4, r0
+ bne _021DA660
+ add sp, #0x20
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA660:
+ mov r0, #0
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DA530
+
+ thumb_func_start MOD85_021DA668
+MOD85_021DA668: ; 0x021DA668
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ add r0, #0xf0
+ ldr r7, [r0]
+ mov r0, #0x45
+ lsl r0, r0, #2
+ mov r3, #2
+ ldr r6, [r5, r0]
+ add r0, r5, #0
+ mov r1, #0
+ sub r2, r3, r2
+ bl MOD85_021DBD30
+ mov r2, #2
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ sub r2, r2, r7
+ bl MOD85_021DBD30
+ mov r1, #2
+ add r7, r0, #0
+ add r0, r5, #0
+ sub r2, r1, r6
+ bl MOD85_021DBD30
+ cmp r4, #3
+ beq _021DA6AA
+ cmp r4, r7
+ bne _021DA6AE
+ cmp r4, r0
+ bne _021DA6AE
+_021DA6AA:
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA6AE:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DA668
+
+ thumb_func_start MOD85_021DA6B4
+MOD85_021DA6B4: ; 0x021DA6B4
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r7, r2, #0
+ add r2, r5, #0
+ add r2, #0xcc
+ mov r0, #0x45
+ ldr r3, [r2]
+ lsl r0, r0, #2
+ mov r2, #2
+ ldr r6, [r5, r0]
+ add r0, r5, #0
+ mov r1, #0
+ sub r2, r2, r3
+ bl MOD85_021DBD30
+ mov r2, #2
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ sub r2, r2, r7
+ bl MOD85_021DBD30
+ mov r1, #2
+ add r7, r0, #0
+ add r0, r5, #0
+ sub r2, r1, r6
+ bl MOD85_021DBD30
+ cmp r4, r7
+ bne _021DA6F8
+ cmp r4, r0
+ bne _021DA6F8
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA6F8:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD85_021DA6B4
+
+ thumb_func_start MOD85_021DA6FC
+MOD85_021DA6FC: ; 0x021DA6FC
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r7, r2, #0
+ add r2, r5, #0
+ add r2, #0xcc
+ add r0, r5, #0
+ ldr r3, [r2]
+ add r0, #0xf0
+ mov r2, #2
+ ldr r6, [r0]
+ add r0, r5, #0
+ mov r1, #0
+ sub r2, r2, r3
+ bl MOD85_021DBD30
+ mov r2, #2
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ sub r2, r2, r6
+ bl MOD85_021DBD30
+ mov r1, #2
+ add r6, r0, #0
+ add r0, r5, #0
+ sub r2, r1, r7
+ bl MOD85_021DBD30
+ cmp r4, r6
+ bne _021DA740
+ cmp r4, r0
+ bne _021DA740
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA740:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD85_021DA6FC
+
+ thumb_func_start MOD85_021DA744
+MOD85_021DA744: ; 0x021DA744
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ add r4, r6, #0
+ lsl r5, r1, #2
+ add r4, #0x90
+ ldr r0, [r4, r5]
+ mov r1, #0x2a
+ add r0, r0, r2
+ str r0, [r4, r5]
+ ldr r0, [r4, r5]
+ lsl r1, r1, #0x10
+ bl _s32_div_f
+ str r1, [r4, r5]
+ ldr r1, [r4, r5]
+ asr r0, r1, #0xb
+ lsr r0, r0, #0x14
+ add r0, r1, r0
+ asr r1, r0, #0xc
+ asr r0, r1, #4
+ lsr r0, r0, #0x1b
+ add r0, r1, r0
+ asr r1, r0, #5
+ mov r0, #0x15
+ sub r1, r0, r1
+ add r0, r6, r5
+ add r0, #0xa8
+ str r1, [r0]
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DA744
+
+ thumb_func_start MOD85_021DA780
+MOD85_021DA780: ; 0x021DA780
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r5, r7, #0
+ add r5, #0x90
+ lsl r4, r1, #2
+ ldr r0, [r5, r4]
+ lsr r6, r0, #0x1f
+ lsl r3, r0, #0xf
+ sub r3, r3, r6
+ mov r0, #0xf
+ ror r3, r0
+ add r0, r6, r3
+ beq _021DA7B4
+ cmp r0, r2
+ bge _021DA7A0
+ add r2, r0, #0
+_021DA7A0:
+ add r0, r7, #0
+ bl MOD85_021DA744
+ ldr r0, [r5, r4]
+ lsr r2, r0, #0x1f
+ lsl r1, r0, #0xf
+ sub r1, r1, r2
+ mov r0, #0xf
+ ror r1, r0
+ add r0, r2, r1
+_021DA7B4:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DA780
+
+ thumb_func_start MOD85_021DA7B8
+MOD85_021DA7B8: ; 0x021DA7B8
+ push {r3, lr}
+ bl FUN_0201B9EC
+ mov r1, #0x64
+ bl _u32_div_f
+ add r0, r1, #0
+ pop {r3, pc}
+ thumb_func_end MOD85_021DA7B8
+
+ thumb_func_start MOD85_021DA7C8
+MOD85_021DA7C8: ; 0x021DA7C8
+ ldr r3, [r1]
+ sub r2, r3, r0
+ str r2, [r1]
+ bpl _021DA7D4
+ mov r2, #0
+ str r2, [r1]
+_021DA7D4:
+ cmp r3, r0
+ bhs _021DA7DC
+ mov r0, #1
+ bx lr
+_021DA7DC:
+ mov r0, #0
+ bx lr
+ thumb_func_end MOD85_021DA7C8
+
+ thumb_func_start MOD85_021DA7E0
+MOD85_021DA7E0: ; 0x021DA7E0
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD85_021DA7B8
+ add r4, #0x88
+ ldr r1, [r4]
+ lsl r2, r1, #2
+ ldr r1, _021DA800 ; =0x021DFC7C
+ ldr r1, [r1, r2]
+ cmp r1, r0
+ bls _021DA7FA
+ mov r0, #1
+ pop {r4, pc}
+_021DA7FA:
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_021DA800: .word 0x021DFC7C
+ thumb_func_end MOD85_021DA7E0
+
+ thumb_func_start MOD85_021DA804
+MOD85_021DA804: ; 0x021DA804
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r1, #0
+ str r1, [r5, #0x74]
+ bl MOD85_021DA7E0
+ cmp r0, #1
+ beq _021DA816
+ b _021DA928
+_021DA816:
+ add r0, r5, #0
+ bl MOD85_021DA7B8
+ add r1, r5, #0
+ str r0, [sp]
+ add r1, #0x88
+ ldr r1, [r1]
+ ldr r0, _021DA92C ; =0x021DFD24
+ lsl r3, r1, #4
+ mov r1, #0x47
+ lsl r1, r1, #4
+ ldr r2, [r5, r1]
+ add r4, r0, r3
+ add r2, r2, #1
+ str r2, [r5, r1]
+ ldrh r0, [r0, r3]
+ add r1, sp, #0
+ bl MOD85_021DA7C8
+ cmp r0, #0
+ beq _021DA856
+ ldr r1, [r5, #0x74]
+ mov r0, #8
+ orr r0, r1
+ str r0, [r5, #0x74]
+ mov r0, #0x4a
+ lsl r0, r0, #4
+ ldr r1, [r5, r0]
+ add r1, r1, #1
+ str r1, [r5, r0]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021DA856:
+ ldrh r0, [r4, #2]
+ add r1, sp, #0
+ bl MOD85_021DA7C8
+ cmp r0, #0
+ beq _021DA876
+ ldr r1, [r5, #0x74]
+ mov r0, #4
+ orr r0, r1
+ str r0, [r5, #0x74]
+ ldr r0, _021DA930 ; =0x0000049C
+ ldr r1, [r5, r0]
+ add r1, r1, #1
+ str r1, [r5, r0]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021DA876:
+ ldrh r0, [r4, #4]
+ add r1, sp, #0
+ bl MOD85_021DA7C8
+ cmp r0, #0
+ beq _021DA898
+ ldr r1, [r5, #0x74]
+ mov r0, #0x80
+ orr r0, r1
+ str r0, [r5, #0x74]
+ mov r0, #0x4b
+ lsl r0, r0, #4
+ ldr r1, [r5, r0]
+ add r1, r1, #1
+ str r1, [r5, r0]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021DA898:
+ ldrh r0, [r4, #6]
+ add r1, sp, #0
+ bl MOD85_021DA7C8
+ cmp r0, #0
+ beq _021DA8B8
+ ldr r1, [r5, #0x74]
+ mov r0, #0x40
+ orr r0, r1
+ str r0, [r5, #0x74]
+ ldr r0, _021DA934 ; =0x000004AC
+ ldr r1, [r5, r0]
+ add r1, r1, #1
+ str r1, [r5, r0]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021DA8B8:
+ ldrh r0, [r4, #8]
+ add r1, sp, #0
+ bl MOD85_021DA7C8
+ cmp r0, #0
+ beq _021DA8D8
+ ldr r1, [r5, #0x74]
+ mov r0, #0x20
+ orr r0, r1
+ str r0, [r5, #0x74]
+ ldr r0, _021DA938 ; =0x000004A8
+ ldr r1, [r5, r0]
+ add r1, r1, #1
+ str r1, [r5, r0]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021DA8D8:
+ ldrh r0, [r4, #0xa]
+ add r1, sp, #0
+ bl MOD85_021DA7C8
+ cmp r0, #0
+ beq _021DA8F8
+ ldr r1, [r5, #0x74]
+ mov r0, #0x10
+ orr r0, r1
+ str r0, [r5, #0x74]
+ ldr r0, _021DA93C ; =0x000004A4
+ ldr r1, [r5, r0]
+ add r1, r1, #1
+ str r1, [r5, r0]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021DA8F8:
+ ldrh r0, [r4, #0xc]
+ add r1, sp, #0
+ bl MOD85_021DA7C8
+ cmp r0, #0
+ ldr r1, [r5, #0x74]
+ beq _021DA918
+ mov r0, #2
+ orr r0, r1
+ str r0, [r5, #0x74]
+ ldr r0, _021DA940 ; =0x00000498
+ ldr r1, [r5, r0]
+ add r1, r1, #1
+ str r1, [r5, r0]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021DA918:
+ mov r0, #1
+ orr r1, r0
+ str r1, [r5, #0x74]
+ ldr r1, _021DA944 ; =0x00000494
+ ldr r2, [r5, r1]
+ add r2, r2, #1
+ str r2, [r5, r1]
+ pop {r3, r4, r5, pc}
+_021DA928:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DA92C: .word 0x021DFD24
+_021DA930: .word 0x0000049C
+_021DA934: .word 0x000004AC
+_021DA938: .word 0x000004A8
+_021DA93C: .word 0x000004A4
+_021DA940: .word 0x00000498
+_021DA944: .word 0x00000494
+ thumb_func_end MOD85_021DA804
+
+ thumb_func_start MOD85_021DA948
+MOD85_021DA948: ; 0x021DA948
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD85_021DA7B8
+ add r4, #0x88
+ ldr r1, [r4]
+ lsl r2, r1, #2
+ ldr r1, _021DA968 ; =0x021DFC34
+ ldr r1, [r1, r2]
+ cmp r0, r1
+ bhs _021DA962
+ mov r0, #1
+ pop {r4, pc}
+_021DA962:
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_021DA968: .word 0x021DFC34
+ thumb_func_end MOD85_021DA948
+
+ thumb_func_start MOD85_021DA96C
+MOD85_021DA96C: ; 0x021DA96C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ bl MOD85_021DA7B8
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ mov r0, #0x48
+ ldr r2, _021DAA1C ; =0x021E0090
+ mul r0, r1
+ add r0, r2, r0
+ str r0, [sp]
+ mov r6, #0
+ add r4, r0, #0
+ add r7, sp, #4
+_021DA98E:
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD85_021DA7C8
+ cmp r0, #1
+ bne _021DA9EE
+ mov r0, #0xc
+ add r1, r6, #0
+ mul r1, r0
+ ldr r0, [sp]
+ add r1, r0, r1
+ ldr r0, [r1, #4]
+ str r0, [r5, #0x50]
+ ldr r0, [r1, #8]
+ str r0, [r5, #0x4c]
+ ldr r0, [r5, #0x50]
+ lsl r1, r0, #2
+ ldr r0, _021DAA20 ; =0x021DFCC4
+ ldr r0, [r0, r1]
+ str r0, [r5, #0x18]
+ ldr r0, [r5, #0x4c]
+ cmp r0, #0
+ beq _021DA9C8
+ cmp r0, #1
+ beq _021DA9D4
+ cmp r0, #2
+ beq _021DA9E0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA9C8:
+ ldr r0, _021DAA24 ; =0x00000478
+ add sp, #8
+ ldr r1, [r5, r0]
+ add r1, r1, #1
+ str r1, [r5, r0]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA9D4:
+ ldr r0, _021DAA28 ; =0x0000047C
+ add sp, #8
+ ldr r1, [r5, r0]
+ add r1, r1, #1
+ str r1, [r5, r0]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA9E0:
+ mov r0, #0x12
+ lsl r0, r0, #6
+ ldr r1, [r5, r0]
+ add sp, #8
+ add r1, r1, #1
+ str r1, [r5, r0]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA9EE:
+ add r6, r6, #1
+ add r4, #0xc
+ cmp r6, #6
+ blt _021DA98E
+ sub r1, r6, #1
+ mov r0, #0xc
+ add r2, r1, #0
+ mul r2, r0
+ ldr r0, [sp]
+ add r1, r0, r2
+ ldr r0, [r1, #4]
+ str r0, [r5, #0x50]
+ ldr r0, [r1, #8]
+ str r0, [r5, #0x4c]
+ ldr r0, [r5, #0x50]
+ lsl r1, r0, #2
+ ldr r0, _021DAA20 ; =0x021DFCC4
+ ldr r0, [r0, r1]
+ str r0, [r5, #0x18]
+ bl ErrorHandling
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DAA1C: .word 0x021E0090
+_021DAA20: .word 0x021DFCC4
+_021DAA24: .word 0x00000478
+_021DAA28: .word 0x0000047C
+ thumb_func_end MOD85_021DA96C
+
+ thumb_func_start MOD85_021DAA2C
+MOD85_021DAA2C: ; 0x021DAA2C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r6, r0, #0
+ mov r4, #0
+ bl MOD85_021DA7B8
+ str r0, [sp, #4]
+ add r0, r6, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ mov r0, #0x48
+ mul r0, r1
+ ldr r2, _021DAABC ; =0x021DFEE0
+ ldr r1, [r6, #0x4c]
+ add r2, r2, r0
+ mov r0, #0x18
+ mul r0, r1
+ add r5, r2, r0
+ str r5, [sp]
+ add r7, sp, #4
+_021DAA54:
+ ldr r0, [r5]
+ add r1, r7, #0
+ bl MOD85_021DA7C8
+ cmp r0, #1
+ bne _021DAAA4
+ ldr r0, [sp]
+ lsl r1, r4, #3
+ add r0, r0, r1
+ ldr r1, [r0, #4]
+ mov r0, #0x56
+ lsl r0, r0, #2
+ str r1, [r6, r0]
+ ldr r0, [r6, r0]
+ cmp r0, #0
+ beq _021DAA80
+ cmp r0, #1
+ beq _021DAA8C
+ cmp r0, #2
+ beq _021DAA98
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_021DAA80:
+ ldr r0, _021DAAC0 ; =0x00000488
+ add sp, #8
+ ldr r1, [r6, r0]
+ add r1, r1, #1
+ str r1, [r6, r0]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DAA8C:
+ ldr r0, _021DAAC4 ; =0x00000484
+ add sp, #8
+ ldr r1, [r6, r0]
+ add r1, r1, #1
+ str r1, [r6, r0]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DAA98:
+ ldr r0, _021DAAC8 ; =0x0000048C
+ add sp, #8
+ ldr r1, [r6, r0]
+ add r1, r1, #1
+ str r1, [r6, r0]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DAAA4:
+ add r4, r4, #1
+ add r5, #8
+ cmp r4, #3
+ blo _021DAA54
+ mov r0, #0x56
+ mov r1, #1
+ lsl r0, r0, #2
+ str r1, [r6, r0]
+ bl ErrorHandling
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DAABC: .word 0x021DFEE0
+_021DAAC0: .word 0x00000488
+_021DAAC4: .word 0x00000484
+_021DAAC8: .word 0x0000048C
+ thumb_func_end MOD85_021DAA2C
+
+ thumb_func_start MOD85_021DAACC
+MOD85_021DAACC: ; 0x021DAACC
+ push {r4, lr}
+ add r1, r0, #0
+ add r1, #0x88
+ ldr r1, [r1]
+ lsl r2, r1, #2
+ ldr r1, _021DAAEC ; =0x021DFC94
+ ldr r4, [r1, r2]
+ bl MOD85_021DA7B8
+ cmp r0, r4
+ bhs _021DAAE6
+ mov r0, #1
+ pop {r4, pc}
+_021DAAE6:
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_021DAAEC: .word 0x021DFC94
+ thumb_func_end MOD85_021DAACC
+
+ thumb_func_start MOD85_021DAAF0
+MOD85_021DAAF0: ; 0x021DAAF0
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ add r1, r4, #0
+ add r1, #0x88
+ ldr r1, [r1]
+ ldr r2, _021DABE4 ; =0x021DFD84
+ lsl r1, r1, #4
+ add r5, r2, r1
+ bl MOD85_021DA7B8
+ str r0, [sp]
+ mov r0, #0
+ str r0, [r4, #0x74]
+ add r0, r4, #0
+ bl MOD85_021DAACC
+ cmp r0, #0
+ bne _021DAB7A
+ ldr r0, _021DABE8 ; =0x00000474
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ ldr r1, [r4, #0x50]
+ cmp r1, #5
+ bhi _021DAB6A
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021DAB2E: ; jump table
+ .short _021DAB3A - _021DAB2E - 2 ; case 0
+ .short _021DAB3A - _021DAB2E - 2 ; case 1
+ .short _021DAB3A - _021DAB2E - 2 ; case 2
+ .short _021DAB52 - _021DAB2E - 2 ; case 3
+ .short _021DAB52 - _021DAB2E - 2 ; case 4
+ .short _021DAB52 - _021DAB2E - 2 ; case 5
+_021DAB3A:
+ mov r1, #2
+ ldr r2, [r4, #0x74]
+ lsl r1, r1, #8
+ orr r1, r2
+ str r1, [r4, #0x74]
+ add r1, r0, #0
+ add r1, #0x44
+ ldr r1, [r4, r1]
+ add r0, #0x44
+ add r1, r1, #1
+ str r1, [r4, r0]
+ pop {r3, r4, r5, pc}
+_021DAB52:
+ mov r1, #1
+ ldr r2, [r4, #0x74]
+ lsl r1, r1, #8
+ orr r1, r2
+ str r1, [r4, #0x74]
+ add r1, r0, #0
+ add r1, #0x40
+ ldr r1, [r4, r1]
+ add r0, #0x40
+ add r1, r1, #1
+ str r1, [r4, r0]
+ pop {r3, r4, r5, pc}
+_021DAB6A:
+ bl ErrorHandling
+ mov r0, #2
+ ldr r1, [r4, #0x74]
+ lsl r0, r0, #8
+ orr r0, r1
+ str r0, [r4, #0x74]
+ pop {r3, r4, r5, pc}
+_021DAB7A:
+ ldr r0, [r5]
+ add r1, sp, #0
+ bl MOD85_021DA7C8
+ cmp r0, #1
+ bne _021DAB98
+ ldr r1, [r4, #0x74]
+ mov r0, #4
+ orr r0, r1
+ str r0, [r4, #0x74]
+ ldr r0, _021DABEC ; =0x0000049C
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ pop {r3, r4, r5, pc}
+_021DAB98:
+ ldr r0, [r5, #4]
+ add r1, sp, #0
+ bl MOD85_021DA7C8
+ cmp r0, #1
+ bne _021DABB6
+ ldr r1, [r4, #0x74]
+ mov r0, #0x40
+ orr r0, r1
+ str r0, [r4, #0x74]
+ ldr r0, _021DABF0 ; =0x000004AC
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ pop {r3, r4, r5, pc}
+_021DABB6:
+ ldr r0, [r5, #4]
+ add r1, sp, #0
+ bl MOD85_021DA7C8
+ cmp r0, #1
+ bne _021DABD4
+ ldr r1, [r4, #0x74]
+ mov r0, #0x10
+ orr r0, r1
+ str r0, [r4, #0x74]
+ ldr r0, _021DABF4 ; =0x000004A4
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ pop {r3, r4, r5, pc}
+_021DABD4:
+ mov r0, #1
+ str r0, [r4, #0x74]
+ ldr r0, _021DABF8 ; =0x00000494
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ pop {r3, r4, r5, pc}
+ nop
+_021DABE4: .word 0x021DFD84
+_021DABE8: .word 0x00000474
+_021DABEC: .word 0x0000049C
+_021DABF0: .word 0x000004AC
+_021DABF4: .word 0x000004A4
+_021DABF8: .word 0x00000494
+ thumb_func_end MOD85_021DAAF0
+
+ thumb_func_start MOD85_021DABFC
+MOD85_021DABFC: ; 0x021DABFC
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD85_021DA7B8
+ add r4, #0x88
+ ldr r1, [r4]
+ lsl r2, r1, #2
+ ldr r1, _021DAC1C ; =0x021DFCDC
+ ldr r1, [r1, r2]
+ cmp r0, r1
+ bhs _021DAC16
+ mov r0, #1
+ pop {r4, pc}
+_021DAC16:
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_021DAC1C: .word 0x021DFCDC
+ thumb_func_end MOD85_021DABFC
+
+ thumb_func_start MOD85_021DAC20
+MOD85_021DAC20: ; 0x021DAC20
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD85_021DA7B8
+ add r4, #0x88
+ ldr r1, [r4]
+ lsl r2, r1, #2
+ ldr r1, _021DAC40 ; =0x021DFC64
+ ldr r1, [r1, r2]
+ cmp r0, r1
+ bhs _021DAC3A
+ mov r0, #1
+ pop {r4, pc}
+_021DAC3A:
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_021DAC40: .word 0x021DFC64
+ thumb_func_end MOD85_021DAC20
+
+ thumb_func_start MOD85_021DAC44
+MOD85_021DAC44: ; 0x021DAC44
+ push {r4, lr}
+ ldr r4, [r0, #0x18]
+ bl MOD85_021DA7B8
+ cmp r0, r4
+ bhs _021DAC54
+ mov r0, #1
+ pop {r4, pc}
+_021DAC54:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD85_021DAC44
+
+ thumb_func_start MOD85_021DAC58
+MOD85_021DAC58: ; 0x021DAC58
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r5, r0, #0
+ ldr r4, [r5, #0x18]
+ bl MOD85_021DA7B8
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ ldr r1, _021DACA8 ; =0x021DFCF4
+ lsl r0, r0, #3
+ add r6, r1, r0
+ ldr r0, [r5, #0x28]
+ cmp r0, #2
+ bne _021DAC7C
+ sub r4, #0xa
+ b _021DAC9A
+_021DAC7C:
+ ldr r0, [r6]
+ add r1, sp, #0
+ bl MOD85_021DA7C8
+ cmp r0, #1
+ bne _021DAC8C
+ sub r4, #0xa
+ b _021DAC9A
+_021DAC8C:
+ ldr r0, [r6, #4]
+ add r1, sp, #0
+ bl MOD85_021DA7C8
+ cmp r0, #1
+ bne _021DAC9A
+ sub r4, r4, #5
+_021DAC9A:
+ cmp r4, #0
+ bge _021DACA0
+ mov r4, #0
+_021DACA0:
+ str r4, [r5, #0x18]
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ nop
+_021DACA8: .word 0x021DFCF4
+ thumb_func_end MOD85_021DAC58
+
+ thumb_func_start MOD85_021DACAC
+MOD85_021DACAC: ; 0x021DACAC
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r4, [r5, #0x18]
+ bl MOD85_021DA7B8
+ str r0, [sp]
+ add r5, #0x88
+ ldr r1, [r5]
+ mov r0, #0x90
+ mul r0, r1
+ ldr r2, _021DAD08 ; =0x021E0240
+ mov r1, #0
+ add r5, r2, r0
+ add r2, r5, #0
+_021DACC8:
+ ldr r0, [r2]
+ cmp r4, r0
+ blo _021DACF8
+ lsl r4, r1, #4
+ add r0, r5, r4
+ ldr r0, [r0, #4]
+ add r1, sp, #0
+ bl MOD85_021DA7C8
+ cmp r0, #1
+ bne _021DACE2
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021DACE2:
+ add r0, r5, r4
+ ldr r0, [r0, #8]
+ add r1, sp, #0
+ bl MOD85_021DA7C8
+ cmp r0, #1
+ bne _021DACF4
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_021DACF4:
+ mov r0, #2
+ pop {r3, r4, r5, pc}
+_021DACF8:
+ add r1, r1, #1
+ add r2, #0x10
+ cmp r1, #9
+ blt _021DACC8
+ bl ErrorHandling
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DAD08: .word 0x021E0240
+ thumb_func_end MOD85_021DACAC
+
+ thumb_func_start MOD85_021DAD0C
+MOD85_021DAD0C: ; 0x021DAD0C
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_0201B9EC
+ mov r1, #6
+ bl _s32_div_f
+ str r1, [r4, #0x34]
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DAD0C
+
+ thumb_func_start MOD85_021DAD20
+MOD85_021DAD20: ; 0x021DAD20
+ push {r4, lr}
+ mov r1, #0x12
+ lsl r1, r1, #4
+ add r4, r0, r1
+ mov r1, #0
+ str r1, [r4]
+ str r1, [r4, #4]
+ str r0, [r4, #0xc]
+ ldr r0, _021DAD40 ; =MOD85_021DAD70
+ add r1, r4, #0
+ mov r2, #0x8a
+ bl FUN_0200CA44
+ str r0, [r4, #0x10]
+ pop {r4, pc}
+ nop
+_021DAD40: .word MOD85_021DAD70
+ thumb_func_end MOD85_021DAD20
+
+ thumb_func_start MOD85_021DAD44
+MOD85_021DAD44: ; 0x021DAD44
+ mov r1, #0x13
+ lsl r1, r1, #4
+ ldr r3, _021DAD50 ; =FUN_0200CAB4
+ ldr r0, [r0, r1]
+ bx r3
+ nop
+_021DAD50: .word FUN_0200CAB4
+ thumb_func_end MOD85_021DAD44
+
+ thumb_func_start MOD85_021DAD54
+MOD85_021DAD54: ; 0x021DAD54
+ mov r1, #0x49
+ lsl r1, r1, #2
+ mov r3, #0
+ str r3, [r0, r1]
+ add r2, r1, #4
+ str r3, [r0, r2]
+ mov r2, #1
+ sub r1, r1, #4
+ str r2, [r0, r1]
+ bx lr
+ thumb_func_end MOD85_021DAD54
+
+ thumb_func_start MOD85_021DAD68
+MOD85_021DAD68: ; 0x021DAD68
+ mov r1, #0x49
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ bx lr
+ thumb_func_end MOD85_021DAD68
+
+ thumb_func_start MOD85_021DAD70
+MOD85_021DAD70: ; 0x021DAD70
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldr r0, [r5]
+ ldr r4, [r5, #0xc]
+ cmp r0, #3
+ bhi _021DAE5E
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021DAD88: ; jump table
+ .short _021DAE5E - _021DAD88 - 2 ; case 0
+ .short _021DAD90 - _021DAD88 - 2 ; case 1
+ .short _021DAD9E - _021DAD88 - 2 ; case 2
+ .short _021DADC0 - _021DAD88 - 2 ; case 3
+_021DAD90:
+ add r0, r5, #0
+ bl MOD85_021DAE70
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021DAD9E:
+ ldr r0, [r5, #0x14]
+ cmp r0, #0
+ beq _021DADAC
+ bl MOD85_021DB7B8
+ cmp r0, #1
+ bne _021DAE5E
+_021DADAC:
+ ldr r0, [r5, #0x18]
+ cmp r0, #0
+ beq _021DADBA
+ bl MOD85_021DB7B8
+ cmp r0, #1
+ bne _021DAE5E
+_021DADBA:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+_021DADC0:
+ mov r0, #1
+ lsl r0, r0, #0xa
+ bl MOD85_021DBD54
+ cmp r0, #0
+ bne _021DADD2
+ ldr r0, [r4, #0x64]
+ cmp r0, #0
+ bne _021DAE20
+_021DADD2:
+ ldr r0, _021DAE60 ; =0x0000062D
+ bl FUN_020054C8
+ ldr r1, [r4, #0x60]
+ ldr r0, [r4, #0x64]
+ add r1, r1, r0
+ ldr r0, _021DAE64 ; =0x0000C350
+ str r1, [r4, #0x60]
+ cmp r1, r0
+ blt _021DADE8
+ str r0, [r4, #0x60]
+_021DADE8:
+ ldr r0, [r4, #8]
+ cmp r0, #1
+ bne _021DADF6
+ ldr r1, [r4, #0x14]
+ ldr r0, [r4, #0x64]
+ add r0, r1, r0
+ str r0, [r4, #0x14]
+_021DADF6:
+ mov r0, #0
+ str r0, [r4, #0x64]
+ ldr r0, [r5, #0x14]
+ cmp r0, #0
+ beq _021DAE08
+ bl FUN_02064520
+ mov r0, #0
+ str r0, [r5, #0x14]
+_021DAE08:
+ ldr r0, [r5, #0x18]
+ cmp r0, #0
+ beq _021DAE16
+ bl FUN_02064520
+ mov r0, #0
+ str r0, [r5, #0x18]
+_021DAE16:
+ mov r0, #1
+ str r0, [r5, #4]
+ mov r0, #0
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021DAE20:
+ ldr r1, _021DAE68 ; =0x021C48B8
+ mov r0, #3
+ ldr r2, [r1, #0x44]
+ ldr r1, _021DAE6C ; =0x00000C03
+ tst r1, r2
+ beq _021DAE2E
+ mov r0, #1
+_021DAE2E:
+ ldr r1, [r5, #8]
+ add r1, r1, #1
+ str r1, [r5, #8]
+ tst r0, r1
+ bne _021DAE5E
+ ldr r0, [r4, #0x64]
+ sub r0, r0, #1
+ str r0, [r4, #0x64]
+ ldr r0, [r4, #0x60]
+ add r1, r0, #1
+ ldr r0, _021DAE64 ; =0x0000C350
+ str r1, [r4, #0x60]
+ cmp r1, r0
+ blt _021DAE4C
+ str r0, [r4, #0x60]
+_021DAE4C:
+ ldr r0, _021DAE60 ; =0x0000062D
+ bl FUN_020054C8
+ ldr r0, [r4, #8]
+ cmp r0, #1
+ bne _021DAE5E
+ ldr r0, [r4, #0x14]
+ add r0, r0, #1
+ str r0, [r4, #0x14]
+_021DAE5E:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DAE60: .word 0x0000062D
+_021DAE64: .word 0x0000C350
+_021DAE68: .word 0x021C48B8
+_021DAE6C: .word 0x00000C03
+ thumb_func_end MOD85_021DAD70
+
+ thumb_func_start MOD85_021DAE70
+MOD85_021DAE70: ; 0x021DAE70
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r7, [r5, #0xc]
+ ldr r6, [r7, #0x48]
+ cmp r6, #0
+ bne _021DAE80
+ bl ErrorHandling
+_021DAE80:
+ mov r4, #0
+_021DAE82:
+ mov r0, #1
+ tst r0, r6
+ beq _021DAEB4
+ ldr r0, [r5, #0x14]
+ cmp r0, #0
+ bne _021DAE9C
+ ldr r2, [r7, #0x64]
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD85_021DB784
+ str r0, [r5, #0x14]
+ b _021DAEB4
+_021DAE9C:
+ ldr r0, [r5, #0x18]
+ cmp r0, #0
+ bne _021DAEB0
+ ldr r2, [r7, #0x64]
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD85_021DB784
+ str r0, [r5, #0x18]
+ b _021DAEB4
+_021DAEB0:
+ bl ErrorHandling
+_021DAEB4:
+ add r4, r4, #1
+ lsr r6, r6, #1
+ cmp r4, #5
+ blt _021DAE82
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DAE70
+
+ thumb_func_start MOD85_021DAEC0
+MOD85_021DAEC0: ; 0x021DAEC0
+ push {r4, lr}
+ mov r1, #0x4f
+ lsl r1, r1, #2
+ add r4, r0, r1
+ mov r1, #0
+ str r1, [r4]
+ str r1, [r4, #4]
+ str r0, [r4, #0x20]
+ ldr r0, _021DAEE0 ; =MOD85_021DAF80
+ add r1, r4, #0
+ mov r2, #0x84
+ bl FUN_0200CA44
+ str r0, [r4, #0x24]
+ pop {r4, pc}
+ nop
+_021DAEE0: .word MOD85_021DAF80
+ thumb_func_end MOD85_021DAEC0
+
+ thumb_func_start MOD85_021DAEE4
+MOD85_021DAEE4: ; 0x021DAEE4
+ mov r1, #0x16
+ lsl r1, r1, #4
+ ldr r3, _021DAEF0 ; =FUN_0200CAB4
+ ldr r0, [r0, r1]
+ bx r3
+ nop
+_021DAEF0: .word FUN_0200CAB4
+ thumb_func_end MOD85_021DAEE4
+
+ thumb_func_start MOD85_021DAEF4
+MOD85_021DAEF4: ; 0x021DAEF4
+ mov r2, #0x4f
+ lsl r2, r2, #2
+ add r2, r0, r2
+ str r1, [r2]
+ mov r0, #0
+ str r0, [r2, #4]
+ str r0, [r2, #8]
+ str r0, [r2, #0x10]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD85_021DAEF4
+
+ thumb_func_start MOD85_021DAF08
+MOD85_021DAF08: ; 0x021DAF08
+ mov r1, #0x51
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ bx lr
+ thumb_func_end MOD85_021DAF08
+
+ thumb_func_start MOD85_021DAF10
+MOD85_021DAF10: ; 0x021DAF10
+ push {r4, lr}
+ mov r1, #0x52
+ add r4, r0, #0
+ mov r2, #0
+ lsl r1, r1, #2
+ str r2, [r4, r1]
+ bl MOD85_021DD984
+ mov r1, #0x5d
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add r0, r4, #0
+ bl MOD85_021DDB10
+ mov r1, #0x5e
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add r0, r4, #0
+ bl MOD85_021DDCAC
+ mov r1, #0x5f
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add r0, r4, #0
+ bl MOD85_021DDE10
+ mov r1, #6
+ lsl r1, r1, #6
+ str r0, [r4, r1]
+ pop {r4, pc}
+ thumb_func_end MOD85_021DAF10
+
+ thumb_func_start MOD85_021DAF4C
+MOD85_021DAF4C: ; 0x021DAF4C
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x52
+ mov r1, #1
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ add r0, #0x2c
+ ldr r0, [r4, r0]
+ bl FUN_02064520
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02064520
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02064520
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ bl FUN_02064520
+ pop {r4, pc}
+ thumb_func_end MOD85_021DAF4C
+
+ thumb_func_start MOD85_021DAF80
+MOD85_021DAF80: ; 0x021DAF80
+ push {r3, r4, r5, lr}
+ ldr r4, _021DAF9C ; =0x021DEED0
+ add r5, r1, #0
+_021DAF86:
+ ldr r1, [r5]
+ add r0, r5, #0
+ lsl r1, r1, #2
+ ldr r2, [r4, r1]
+ ldr r1, [r5, #4]
+ lsl r1, r1, #2
+ ldr r1, [r2, r1]
+ blx r1
+ cmp r0, #1
+ beq _021DAF86
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DAF9C: .word 0x021DEED0
+ thumb_func_end MOD85_021DAF80
+
+ thumb_func_start MOD85_021DAFA0
+MOD85_021DAFA0: ; 0x021DAFA0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x20]
+ ldr r1, [r4, #0x18]
+ bl MOD85_021DC4B4
+ str r0, [r4, #0x28]
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD85_021DAFA0
+
+ thumb_func_start MOD85_021DAFB8
+MOD85_021DAFB8: ; 0x021DAFB8
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x28]
+ bl MOD85_021DC520
+ cmp r0, #0
+ bne _021DAFCA
+ mov r0, #0
+ pop {r4, pc}
+_021DAFCA:
+ ldr r0, [r4, #0x28]
+ mov r1, #1
+ bl MOD85_021DC4EC
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD85_021DAFB8
+
+ thumb_func_start MOD85_021DAFDC
+MOD85_021DAFDC: ; 0x021DAFDC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x28]
+ bl MOD85_021DC520
+ cmp r0, #0
+ bne _021DAFEE
+ mov r0, #0
+ pop {r4, pc}
+_021DAFEE:
+ ldr r0, [r4, #0x28]
+ mov r1, #5
+ bl MOD85_021DC4EC
+ mov r0, #1
+ str r0, [r4, #8]
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD85_021DAFDC
+
+ thumb_func_start MOD85_021DB004
+MOD85_021DB004: ; 0x021DB004
+ mov r0, #0
+ bx lr
+ thumb_func_end MOD85_021DB004
+
+ thumb_func_start MOD85_021DB008
+MOD85_021DB008: ; 0x021DB008
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x28]
+ mov r1, #4
+ bl MOD85_021DC4EC
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DB008
+
+ thumb_func_start MOD85_021DB020
+MOD85_021DB020: ; 0x021DB020
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x28]
+ bl MOD85_021DC520
+ cmp r0, #1
+ bne _021DB03E
+ ldr r0, [r4, #0x28]
+ bl FUN_02064520
+ mov r0, #1
+ str r0, [r4, #8]
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+_021DB03E:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DB020
+
+ thumb_func_start MOD85_021DB044
+MOD85_021DB044: ; 0x021DB044
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x28]
+ mov r1, #2
+ bl MOD85_021DC4EC
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DB044
+
+ thumb_func_start MOD85_021DB05C
+MOD85_021DB05C: ; 0x021DB05C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x28]
+ bl MOD85_021DC520
+ cmp r0, #1
+ bne _021DB082
+ ldr r0, [r4, #0x20]
+ bl MOD85_021DCBE0
+ str r0, [r4, #0x2c]
+ ldr r0, [r4, #0x20]
+ ldr r1, [r4, #0x1c]
+ bl MOD85_021DCEC0
+ str r0, [r4, #0x30]
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+_021DB082:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DB05C
+
+ thumb_func_start MOD85_021DB088
+MOD85_021DB088: ; 0x021DB088
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x30]
+ bl MOD85_021DCF0C
+ cmp r0, #1
+ bne _021DB0AC
+ ldr r0, [r4, #0x30]
+ mov r1, #1
+ bl MOD85_021DCEF8
+ ldr r0, [r4, #0x28]
+ mov r1, #1
+ bl MOD85_021DC500
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+_021DB0AC:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD85_021DB088
+
+ thumb_func_start MOD85_021DB0B0
+MOD85_021DB0B0: ; 0x021DB0B0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x30]
+ bl MOD85_021DCF0C
+ cmp r0, #1
+ bne _021DB0CE
+ ldr r0, [r4, #0x2c]
+ bl FUN_02064520
+ mov r0, #1
+ str r0, [r4, #8]
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+_021DB0CE:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DB0B0
+
+ thumb_func_start MOD85_021DB0D4
+MOD85_021DB0D4: ; 0x021DB0D4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x20]
+ bl MOD85_021DCBE0
+ str r0, [r4, #0x2c]
+ ldr r0, [r4, #0x30]
+ mov r1, #2
+ bl MOD85_021DCEF8
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DB0D4
+
+ thumb_func_start MOD85_021DB0F4
+MOD85_021DB0F4: ; 0x021DB0F4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x30]
+ bl MOD85_021DCF0C
+ cmp r0, #1
+ bne _021DB124
+ ldr r0, [r4, #0x30]
+ bl FUN_02064520
+ ldr r0, [r4, #0x2c]
+ bl FUN_02064520
+ ldr r0, [r4, #0x28]
+ mov r1, #0
+ bl MOD85_021DC500
+ ldr r0, [r4, #0x28]
+ mov r1, #3
+ bl MOD85_021DC4EC
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+_021DB124:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD85_021DB0F4
+
+ thumb_func_start MOD85_021DB128
+MOD85_021DB128: ; 0x021DB128
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x28]
+ bl MOD85_021DC520
+ cmp r0, #1
+ bne _021DB144
+ ldr r0, [r4, #0x28]
+ mov r1, #4
+ bl MOD85_021DC4EC
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+_021DB144:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD85_021DB128
+
+ thumb_func_start MOD85_021DB148
+MOD85_021DB148: ; 0x021DB148
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x28]
+ bl MOD85_021DC520
+ cmp r0, #1
+ bne _021DB166
+ ldr r0, [r4, #0x28]
+ bl FUN_02064520
+ mov r0, #1
+ str r0, [r4, #8]
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+_021DB166:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DB148
+
+ thumb_func_start MOD85_021DB16C
+MOD85_021DB16C: ; 0x021DB16C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x30]
+ mov r1, #3
+ bl MOD85_021DCEF8
+ ldr r0, [r4, #0x20]
+ bl MOD85_021DD54C
+ str r0, [r4, #0x34]
+ mov r0, #0
+ str r0, [r4, #0x10]
+ ldr r1, [r4, #4]
+ add r1, r1, #1
+ str r1, [r4, #4]
+ pop {r4, pc}
+ thumb_func_end MOD85_021DB16C
+
+ thumb_func_start MOD85_021DB18C
+MOD85_021DB18C: ; 0x021DB18C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x10]
+ add r0, r0, #1
+ str r0, [r4, #0x10]
+ cmp r0, #0x30
+ blt _021DB1B2
+ mov r0, #0
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #0x23
+ bl FUN_02005578
+ ldr r0, [r4, #0x30]
+ mov r1, #4
+ bl MOD85_021DCEF8
+_021DB1B2:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DB18C
+
+ thumb_func_start MOD85_021DB1B8
+MOD85_021DB1B8: ; 0x021DB1B8
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x34]
+ bl MOD85_021DD578
+ cmp r0, #1
+ bne _021DB1E2
+ ldr r0, [r4, #0x30]
+ mov r1, #3
+ bl MOD85_021DCEF8
+ ldr r0, [r4, #0x34]
+ bl FUN_02064520
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #0
+ str r0, [r4, #0x10]
+ mov r0, #1
+ str r0, [r4, #8]
+_021DB1E2:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DB1B8
+
+ thumb_func_start MOD85_021DB1E8
+MOD85_021DB1E8: ; 0x021DB1E8
+ push {r3, lr}
+ ldr r1, [r0, #0x20]
+ ldr r3, _021DB210 ; =0x021DEF04
+ ldr r2, [r1, #0x34]
+ mov r1, #0x18
+ mul r1, r2
+ add r2, r3, r1
+ ldr r1, [r0, #4]
+ add r1, r1, #1
+ str r1, [r0, #4]
+ mov r1, #0
+ str r1, [r0, #0x14]
+ lsl r1, r1, #2
+ add r1, r2, r1
+ ldr r0, [r0, #0x30]
+ ldr r1, [r1, #0xc]
+ bl MOD85_021DCEF8
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+_021DB210: .word 0x021DEF04
+ thumb_func_end MOD85_021DB1E8
+
+ thumb_func_start MOD85_021DB214
+MOD85_021DB214: ; 0x021DB214
+ push {r3, r4, r5, lr}
+ ldr r2, [r0, #0x20]
+ mov r1, #0
+ add r4, r1, #0
+ add r5, r2, #0
+_021DB21E:
+ ldr r3, [r5, #0x7c]
+ cmp r3, #1
+ beq _021DB226
+ add r1, r1, #1
+_021DB226:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #3
+ blt _021DB21E
+ ldr r3, [r0, #0x14]
+ cmp r3, #2
+ bge _021DB250
+ cmp r3, r1
+ beq _021DB250
+ ldr r3, [r2, #0x34]
+ mov r2, #0x18
+ ldr r4, _021DB254 ; =0x021DEF04
+ str r1, [r0, #0x14]
+ mul r2, r3
+ add r2, r4, r2
+ lsl r1, r1, #2
+ add r1, r2, r1
+ ldr r0, [r0, #0x30]
+ ldr r1, [r1, #0xc]
+ bl MOD85_021DCEF8
+_021DB250:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DB254: .word 0x021DEF04
+ thumb_func_end MOD85_021DB214
+
+ thumb_func_start MOD85_021DB258
+MOD85_021DB258: ; 0x021DB258
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x30]
+ mov r1, #3
+ bl MOD85_021DCEF8
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DB258
+
+ thumb_func_start MOD85_021DB270
+MOD85_021DB270: ; 0x021DB270
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x20]
+ bl MOD85_021DAF4C
+ ldr r0, [r4, #0x20]
+ bl MOD85_021DCBE0
+ str r0, [r4, #0x2c]
+ ldr r0, [r4, #0x30]
+ mov r1, #2
+ bl MOD85_021DCEF8
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD85_021DB270
+
+ thumb_func_start MOD85_021DB294
+MOD85_021DB294: ; 0x021DB294
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x30]
+ bl MOD85_021DCF0C
+ cmp r0, #1
+ bne _021DB2C4
+ ldr r0, [r4, #0x30]
+ bl FUN_02064520
+ ldr r0, [r4, #0x2c]
+ bl FUN_02064520
+ ldr r0, [r4, #0x28]
+ mov r1, #0
+ bl MOD85_021DC500
+ ldr r0, [r4, #0x28]
+ mov r1, #3
+ bl MOD85_021DC4EC
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+_021DB2C4:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD85_021DB294
+
+ thumb_func_start MOD85_021DB2C8
+MOD85_021DB2C8: ; 0x021DB2C8
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x28]
+ bl MOD85_021DC520
+ cmp r0, #1
+ bne _021DB2F8
+ ldr r0, [r4, #0x20]
+ bl MOD85_021DDA30
+ ldr r0, [r4, #0x20]
+ bl MOD85_021DDBBC
+ ldr r0, [r4, #0x20]
+ mov r1, #0
+ bl MOD85_021DDF40
+ ldr r0, [r4, #0x20]
+ mov r1, #1
+ bl MOD85_021DDF40
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+_021DB2F8:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD85_021DB2C8
+
+ thumb_func_start MOD85_021DB2FC
+MOD85_021DB2FC: ; 0x021DB2FC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x10]
+ add r0, r0, #1
+ str r0, [r4, #0x10]
+ cmp r0, #0x2d
+ blt _021DB31C
+ mov r0, #0
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #0x28]
+ mov r1, #4
+ bl MOD85_021DC4EC
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+_021DB31C:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD85_021DB2FC
+
+ thumb_func_start MOD85_021DB320
+MOD85_021DB320: ; 0x021DB320
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x28]
+ bl MOD85_021DC520
+ cmp r0, #1
+ bne _021DB33E
+ ldr r0, [r4, #0x28]
+ bl FUN_02064520
+ mov r0, #1
+ str r0, [r4, #8]
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+_021DB33E:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DB320
+
+ thumb_func_start MOD85_021DB344
+MOD85_021DB344: ; 0x021DB344
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x30]
+ mov r1, #4
+ bl MOD85_021DCEF8
+ mov r0, #1
+ str r0, [r4, #8]
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DB344
+
+ thumb_func_start MOD85_021DB360
+MOD85_021DB360: ; 0x021DB360
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x30]
+ mov r1, #8
+ bl MOD85_021DCEF8
+ mov r0, #1
+ str r0, [r4, #8]
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DB360
+
+ thumb_func_start MOD85_021DB37C
+MOD85_021DB37C: ; 0x021DB37C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x28]
+ mov r1, #6
+ bl MOD85_021DC4EC
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #1
+ str r0, [r4, #8]
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DB37C
+
+ thumb_func_start MOD85_021DB398
+MOD85_021DB398: ; 0x021DB398
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x20]
+ bl MOD85_021DCBE0
+ str r0, [r4, #0x2c]
+ ldr r0, [r4, #0x30]
+ mov r1, #2
+ bl MOD85_021DCEF8
+ mov r0, #1
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DB398
+
+ thumb_func_start MOD85_021DB3BC
+MOD85_021DB3BC: ; 0x021DB3BC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x30]
+ bl MOD85_021DCF0C
+ cmp r0, #1
+ bne _021DB3F0
+ ldr r0, [r4, #0x2c]
+ bl FUN_02064520
+ ldr r0, [r4, #0x30]
+ bl FUN_02064520
+ ldr r0, [r4, #0x28]
+ mov r1, #0
+ bl MOD85_021DC500
+ ldr r0, [r4, #0x28]
+ mov r1, #3
+ bl MOD85_021DC4EC
+ mov r0, #0
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+_021DB3F0:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD85_021DB3BC
+
+ thumb_func_start MOD85_021DB3F4
+MOD85_021DB3F4: ; 0x021DB3F4
+ push {r3, lr}
+ ldr r1, [r0, #0x10]
+ add r1, r1, #1
+ str r1, [r0, #0x10]
+ cmp r1, #0x1e
+ blt _021DB412
+ mov r1, #0
+ str r1, [r0, #0x10]
+ ldr r1, [r0, #4]
+ add r1, r1, #1
+ str r1, [r0, #4]
+ ldr r0, [r0, #0x28]
+ mov r1, #2
+ bl MOD85_021DC4EC
+_021DB412:
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DB3F4
+
+ thumb_func_start MOD85_021DB418
+MOD85_021DB418: ; 0x021DB418
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x28]
+ bl MOD85_021DC520
+ cmp r0, #1
+ bne _021DB442
+ ldr r0, [r4, #0x20]
+ bl MOD85_021DCBE0
+ str r0, [r4, #0x2c]
+ ldr r0, [r4, #0x20]
+ ldr r1, [r4, #0x1c]
+ bl MOD85_021DCEC0
+ str r0, [r4, #0x30]
+ mov r0, #0
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+_021DB442:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DB418
+
+ thumb_func_start MOD85_021DB448
+MOD85_021DB448: ; 0x021DB448
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x30]
+ bl MOD85_021DCF0C
+ cmp r0, #1
+ bne _021DB46C
+ ldr r0, [r4, #0x30]
+ mov r1, #1
+ bl MOD85_021DCEF8
+ ldr r0, [r4, #0x28]
+ mov r1, #1
+ bl MOD85_021DC500
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+_021DB46C:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD85_021DB448
+
+ thumb_func_start MOD85_021DB470
+MOD85_021DB470: ; 0x021DB470
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x30]
+ bl MOD85_021DCF0C
+ cmp r0, #1
+ bne _021DB48E
+ ldr r0, [r4, #0x2c]
+ bl FUN_02064520
+ mov r0, #1
+ str r0, [r4, #8]
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+_021DB48E:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DB470
+
+ thumb_func_start MOD85_021DB494
+MOD85_021DB494: ; 0x021DB494
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ mov r1, #0x61
+ add r5, r0, #0
+ lsl r1, r1, #2
+ add r4, r5, r1
+ mov r1, #3
+ mov r2, #0
+ str r5, [r4]
+ bl MOD85_021D8144
+ add r1, sp, #0
+ add r6, r0, #0
+ bl FUN_020B0138
+ ldr r0, [sp]
+ mov r1, #1
+ add r2, r4, #4
+ bl MOD85_021DB604
+ add r2, r4, #0
+ ldr r0, [sp]
+ mov r1, #2
+ add r2, #0xa4
+ bl MOD85_021DB604
+ add r2, r4, #0
+ ldr r0, [sp]
+ mov r1, #3
+ add r2, #0xc4
+ bl MOD85_021DB604
+ add r2, r4, #0
+ ldr r0, [sp]
+ mov r1, #3
+ add r2, #0xe4
+ bl MOD85_021DB604
+ mov r2, #0x41
+ lsl r2, r2, #2
+ ldr r0, [sp]
+ mov r1, #4
+ add r2, r4, r2
+ bl MOD85_021DB604
+ mov r2, #0x49
+ lsl r2, r2, #2
+ ldr r0, [sp]
+ mov r1, #4
+ add r2, r4, r2
+ bl MOD85_021DB604
+ add r0, r6, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ mov r1, #5
+ mov r2, #0
+ bl MOD85_021D8144
+ add r1, sp, #0
+ add r6, r0, #0
+ bl FUN_020B0138
+ add r2, r4, #0
+ ldr r0, [sp]
+ mov r1, #0
+ add r2, #0x24
+ bl MOD85_021DB604
+ add r0, r6, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ mov r1, #6
+ mov r2, #0
+ bl MOD85_021D8144
+ add r1, sp, #0
+ add r6, r0, #0
+ bl FUN_020B0138
+ add r2, r4, #0
+ ldr r0, [sp]
+ mov r1, #0
+ add r2, #0x44
+ bl MOD85_021DB604
+ add r0, r6, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ mov r1, #7
+ mov r2, #0
+ bl MOD85_021D8144
+ add r1, sp, #0
+ add r6, r0, #0
+ bl FUN_020B0138
+ add r2, r4, #0
+ ldr r0, [sp]
+ mov r1, #0
+ add r2, #0x64
+ bl MOD85_021DB604
+ add r0, r6, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ mov r1, #0x4a
+ mov r2, #0
+ bl MOD85_021D8144
+ add r1, sp, #0
+ add r6, r0, #0
+ bl FUN_020B0138
+ mov r2, #0x51
+ lsl r2, r2, #2
+ ldr r0, [sp]
+ mov r1, #0
+ add r2, r4, r2
+ bl MOD85_021DB604
+ add r0, r6, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ mov r1, #0x4b
+ mov r2, #0
+ bl MOD85_021D8144
+ add r1, sp, #0
+ add r6, r0, #0
+ bl FUN_020B0138
+ mov r2, #0x59
+ lsl r2, r2, #2
+ ldr r0, [sp]
+ mov r1, #0
+ add r2, r4, r2
+ bl MOD85_021DB604
+ mov r2, #0x61
+ lsl r2, r2, #2
+ ldr r0, [sp]
+ mov r1, #0
+ add r2, r4, r2
+ bl MOD85_021DB604
+ add r0, r6, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl MOD85_021D8144
+ add r1, sp, #0
+ add r5, r0, #0
+ bl FUN_020B0138
+ mov r2, #0x69
+ lsl r2, r2, #2
+ ldr r0, [sp]
+ mov r1, #0
+ add r2, r4, r2
+ bl MOD85_021DB604
+ mov r2, #0x71
+ lsl r2, r2, #2
+ ldr r0, [sp]
+ mov r1, #0
+ add r2, r4, r2
+ bl MOD85_021DB604
+ add r0, r5, #0
+ bl FUN_02016A18
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ thumb_func_end MOD85_021DB494
+
+ thumb_func_start MOD85_021DB600
+MOD85_021DB600: ; 0x021DB600
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD85_021DB600
+
+ thumb_func_start MOD85_021DB604
+MOD85_021DB604: ; 0x021DB604
+ ldr r3, [r0, #0xc]
+ lsl r0, r1, #5
+ add r3, r3, r0
+ mov r1, #0
+_021DB60C:
+ ldrh r0, [r3]
+ add r1, r1, #1
+ add r3, r3, #2
+ strh r0, [r2]
+ add r2, r2, #2
+ cmp r1, #0x10
+ blt _021DB60C
+ bx lr
+ thumb_func_end MOD85_021DB604
+
+ thumb_func_start MOD85_021DB61C
+MOD85_021DB61C: ; 0x021DB61C
+ push {r0, r1, r2, r3}
+ push {r3, r4, r5, r6}
+ add r1, r2, #0
+ add r0, r3, #0
+ add r2, sp, #0x10
+ add r3, sp, #0x14
+ cmp r1, #0x10
+ bls _021DB62E
+ mov r1, #0x10
+_021DB62E:
+ ldrh r4, [r2]
+ ldrh r3, [r3]
+ lsl r2, r4, #0x16
+ lsr r6, r2, #0x1b
+ lsl r2, r4, #0x1b
+ lsr r5, r2, #0x1b
+ lsl r2, r4, #0x11
+ lsl r4, r3, #0x11
+ lsr r2, r2, #0x1b
+ lsr r4, r4, #0x1b
+ sub r4, r4, r2
+ mul r4, r1
+ asr r4, r4, #4
+ add r2, r2, r4
+ lsl r4, r2, #0xa
+ lsl r2, r3, #0x1b
+ lsl r3, r3, #0x16
+ lsr r3, r3, #0x1b
+ lsr r2, r2, #0x1b
+ sub r3, r3, r6
+ sub r2, r2, r5
+ mul r2, r1
+ mul r3, r1
+ asr r1, r3, #4
+ asr r2, r2, #4
+ add r1, r6, r1
+ add r2, r5, r2
+ lsl r1, r1, #5
+ orr r1, r2
+ orr r1, r4
+ strh r1, [r0]
+ pop {r3, r4, r5, r6}
+ add sp, #0x10
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD85_021DB61C
+
+ thumb_func_start MOD85_021DB674
+MOD85_021DB674: ; 0x021DB674
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ str r2, [sp]
+ add r6, r3, #0
+ mov r7, #0
+_021DB680:
+ ldrh r0, [r5]
+ ldrh r1, [r4]
+ ldr r2, [sp]
+ add r3, r6, #0
+ bl MOD85_021DB61C
+ add r7, r7, #1
+ add r6, r6, #2
+ add r4, r4, #2
+ add r5, r5, #2
+ cmp r7, #0x10
+ blt _021DB680
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DB674
+
+ thumb_func_start MOD85_021DB69C
+MOD85_021DB69C: ; 0x021DB69C
+ push {r4, lr}
+ add r4, r2, #0
+ lsl r0, r1, #0x18
+ add r1, r3, #0
+ lsl r3, r4, #0x15
+ lsr r0, r0, #0x18
+ mov r2, #0x20
+ lsr r3, r3, #0x10
+ bl FUN_02017FB4
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DB69C
+
+ thumb_func_start MOD85_021DB6B4
+MOD85_021DB6B4: ; 0x021DB6B4
+ push {r4, lr}
+ add r3, r1, #0
+ lsl r4, r3, #2
+ ldr r2, _021DB6D0 ; =0x021E05C0
+ lsl r3, r3, #5
+ ldr r2, [r2, r4]
+ mov r4, #0x8a
+ lsl r4, r4, #2
+ add r4, r0, r4
+ mov r1, #1
+ add r3, r4, r3
+ bl MOD85_021DB69C
+ pop {r4, pc}
+ .align 2, 0
+_021DB6D0: .word 0x021E05C0
+ thumb_func_end MOD85_021DB6B4
+
+ thumb_func_start MOD85_021DB6D4
+MOD85_021DB6D4: ; 0x021DB6D4
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ mov r2, #0x61
+ lsl r2, r2, #2
+ ldr r0, _021DB710 ; =0x021E05C0
+ lsl r4, r1, #2
+ ldr r6, [r0, r4]
+ add r0, r2, #0
+ add r3, r7, r2
+ add r0, #0x60
+ add r4, r3, r0
+ add r0, r3, #0
+ sub r2, #0x40
+ lsl r5, r1, #5
+ add r1, r3, r2
+ add r0, #0xa4
+ add r0, r0, r5
+ add r1, r1, r5
+ mov r2, #0xa
+ add r3, r4, r5
+ bl MOD85_021DB674
+ add r0, r7, #0
+ mov r1, #1
+ add r2, r6, #0
+ add r3, r4, r5
+ bl MOD85_021DB69C
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021DB710: .word 0x021E05C0
+ thumb_func_end MOD85_021DB6D4
+
+ thumb_func_start MOD85_021DB714
+MOD85_021DB714: ; 0x021DB714
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ mov r2, #0x61
+ lsl r2, r2, #2
+ ldr r0, _021DB750 ; =0x021E05C0
+ lsl r4, r1, #2
+ ldr r6, [r0, r4]
+ add r0, r2, #0
+ add r3, r7, r2
+ add r0, #0x60
+ add r4, r3, r0
+ add r0, r3, #0
+ sub r2, #0x40
+ lsl r5, r1, #5
+ add r1, r3, r2
+ add r0, #0xa4
+ add r0, r0, r5
+ add r1, r1, r5
+ mov r2, #0xc
+ add r3, r4, r5
+ bl MOD85_021DB674
+ add r0, r7, #0
+ mov r1, #1
+ add r2, r6, #0
+ add r3, r4, r5
+ bl MOD85_021DB69C
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021DB750: .word 0x021E05C0
+ thumb_func_end MOD85_021DB714
+
+ thumb_func_start MOD85_021DB754
+MOD85_021DB754: ; 0x021DB754
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r4, #0
+_021DB75A:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD85_021DB6B4
+ add r4, r4, #1
+ cmp r4, #5
+ blt _021DB75A
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DB754
+
+ thumb_func_start MOD85_021DB76C
+MOD85_021DB76C: ; 0x021DB76C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r4, #0
+_021DB772:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD85_021DB6D4
+ add r4, r4, #1
+ cmp r4, #5
+ blt _021DB772
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DB76C
+
+ thumb_func_start MOD85_021DB784
+MOD85_021DB784: ; 0x021DB784
+ push {r4, lr}
+ sub sp, #0x20
+ add r4, sp, #0x14
+ mov r3, #0
+ str r3, [r4]
+ str r3, [r4, #4]
+ str r1, [sp, #8]
+ str r2, [sp, #0xc]
+ str r3, [r4, #8]
+ str r0, [sp, #0x10]
+ add r1, sp, #8
+ str r1, [sp]
+ mov r1, #0x8f
+ str r1, [sp, #4]
+ ldr r1, _021DB7B0 ; =0x0000044C
+ add r2, r4, #0
+ ldr r0, [r0, r1]
+ ldr r1, _021DB7B4 ; =0x021DEE0C
+ bl FUN_020644E4
+ add sp, #0x20
+ pop {r4, pc}
+ .align 2, 0
+_021DB7B0: .word 0x0000044C
+_021DB7B4: .word 0x021DEE0C
+ thumb_func_end MOD85_021DB784
+
+ thumb_func_start MOD85_021DB7B8
+MOD85_021DB7B8: ; 0x021DB7B8
+ push {r3, lr}
+ bl FUN_02064738
+ ldr r0, [r0, #0xc]
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DB7B8
+
+ thumb_func_start MOD85_021DB7C4
+MOD85_021DB7C4: ; 0x021DB7C4
+ push {r4, lr}
+ add r4, r1, #0
+ bl FUN_0206475C
+ ldr r1, [r0, #8]
+ str r1, [r4, #0x1c]
+ ldr r1, [r0]
+ str r1, [r4, #0x10]
+ ldr r0, [r0, #4]
+ str r0, [r4, #0x14]
+ mov r0, #0x61
+ ldr r1, [r4, #0x1c]
+ lsl r0, r0, #2
+ add r0, r1, r0
+ str r0, [r4, #0x20]
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DB7C4
+
+ thumb_func_start MOD85_021DB7E8
+MOD85_021DB7E8: ; 0x021DB7E8
+ ldr r3, _021DB7F0 ; =MOD85_021DB6B4
+ ldr r0, [r1, #0x1c]
+ ldr r1, [r1, #0x10]
+ bx r3
+ .align 2, 0
+_021DB7F0: .word MOD85_021DB6B4
+ thumb_func_end MOD85_021DB7E8
+
+ thumb_func_start MOD85_021DB7F4
+MOD85_021DB7F4: ; 0x021DB7F4
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ ldr r2, [r4, #0x10]
+ ldr r0, _021DB958 ; =0x021E05C0
+ lsl r1, r2, #2
+ ldr r0, [r0, r1]
+ lsl r5, r2, #5
+ mov r1, #0x79
+ ldr r2, [r4, #0x20]
+ lsl r1, r1, #2
+ add r6, r2, r1
+ sub r1, #0xa0
+ str r0, [sp]
+ add r0, r2, #0
+ add r1, r2, r1
+ ldr r2, [r4]
+ add r0, #0xa4
+ cmp r2, #4
+ bls _021DB81C
+ b _021DB956
+_021DB81C:
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_021DB828: ; jump table
+ .short _021DB832 - _021DB828 - 2 ; case 0
+ .short _021DB874 - _021DB828 - 2 ; case 1
+ .short _021DB8D8 - _021DB828 - 2 ; case 2
+ .short _021DB91A - _021DB828 - 2 ; case 3
+ .short _021DB956 - _021DB828 - 2 ; case 4
+_021DB832:
+ mov r7, #1
+ ldr r2, [r4, #0x18]
+ lsl r7, r7, #0xe
+ add r3, r2, r7
+ lsl r2, r7, #2
+ str r3, [r4, #0x18]
+ cmp r3, r2
+ ble _021DB844
+ str r2, [r4, #0x18]
+_021DB844:
+ ldr r2, [r4, #0x18]
+ asr r3, r2, #0xb
+ lsr r3, r3, #0x14
+ add r3, r2, r3
+ asr r2, r3, #0xc
+ cmp r2, #0x10
+ bne _021DB858
+ ldr r3, [r4]
+ add r3, r3, #1
+ str r3, [r4]
+_021DB858:
+ lsl r2, r2, #0x10
+ add r0, r0, r5
+ add r1, r1, r5
+ lsr r2, r2, #0x10
+ add r3, r6, r5
+ bl MOD85_021DB674
+ ldr r0, [r4, #0x1c]
+ ldr r2, [sp]
+ mov r1, #1
+ add r3, r6, r5
+ bl MOD85_021DB69C
+ pop {r3, r4, r5, r6, r7, pc}
+_021DB874:
+ mov r2, #1
+ ldr r3, [r4, #0x18]
+ lsl r2, r2, #0xe
+ sub r2, r3, r2
+ str r2, [r4, #0x18]
+ bpl _021DB884
+ mov r2, #0
+ str r2, [r4, #0x18]
+_021DB884:
+ ldr r2, [r4, #0x18]
+ asr r3, r2, #0xb
+ lsr r3, r3, #0x14
+ add r3, r2, r3
+ asr r2, r3, #0xc
+ bne _021DB8BC
+ ldr r3, [r4, #4]
+ add r3, r3, #1
+ str r3, [r4, #4]
+ cmp r3, #4
+ blt _021DB8B6
+ ldr r3, [r4, #0x14]
+ cmp r3, #0
+ beq _021DB8AC
+ ldr r3, [r4]
+ add r3, r3, #1
+ str r3, [r4]
+ mov r3, #1
+ str r3, [r4, #0xc]
+ b _021DB8BC
+_021DB8AC:
+ mov r3, #4
+ str r3, [r4]
+ mov r3, #1
+ str r3, [r4, #0xc]
+ b _021DB8BC
+_021DB8B6:
+ ldr r3, [r4]
+ sub r3, r3, #1
+ str r3, [r4]
+_021DB8BC:
+ lsl r2, r2, #0x10
+ add r0, r0, r5
+ add r1, r1, r5
+ lsr r2, r2, #0x10
+ add r3, r6, r5
+ bl MOD85_021DB674
+ ldr r0, [r4, #0x1c]
+ ldr r2, [sp]
+ mov r1, #1
+ add r3, r6, r5
+ bl MOD85_021DB69C
+ pop {r3, r4, r5, r6, r7, pc}
+_021DB8D8:
+ mov r7, #2
+ ldr r2, [r4, #0x18]
+ lsl r7, r7, #0xe
+ add r3, r2, r7
+ lsl r2, r7, #1
+ str r3, [r4, #0x18]
+ cmp r3, r2
+ ble _021DB8EA
+ str r2, [r4, #0x18]
+_021DB8EA:
+ ldr r2, [r4, #0x18]
+ asr r3, r2, #0xb
+ lsr r3, r3, #0x14
+ add r3, r2, r3
+ asr r2, r3, #0xc
+ cmp r2, #0x10
+ bne _021DB8FE
+ ldr r3, [r4]
+ add r3, r3, #1
+ str r3, [r4]
+_021DB8FE:
+ lsl r2, r2, #0x10
+ add r0, r0, r5
+ add r1, r1, r5
+ lsr r2, r2, #0x10
+ add r3, r6, r5
+ bl MOD85_021DB674
+ ldr r0, [r4, #0x1c]
+ ldr r2, [sp]
+ mov r1, #1
+ add r3, r6, r5
+ bl MOD85_021DB69C
+ pop {r3, r4, r5, r6, r7, pc}
+_021DB91A:
+ mov r2, #2
+ ldr r3, [r4, #0x18]
+ lsl r2, r2, #0xe
+ sub r2, r3, r2
+ str r2, [r4, #0x18]
+ bpl _021DB92A
+ mov r2, #0
+ str r2, [r4, #0x18]
+_021DB92A:
+ ldr r2, [r4, #0x18]
+ asr r3, r2, #0xb
+ lsr r3, r3, #0x14
+ add r3, r2, r3
+ asr r2, r3, #0xc
+ bne _021DB93C
+ ldr r3, [r4]
+ sub r3, r3, #1
+ str r3, [r4]
+_021DB93C:
+ lsl r2, r2, #0x10
+ add r0, r0, r5
+ add r1, r1, r5
+ lsr r2, r2, #0x10
+ add r3, r6, r5
+ bl MOD85_021DB674
+ ldr r0, [r4, #0x1c]
+ ldr r2, [sp]
+ mov r1, #1
+ add r3, r6, r5
+ bl MOD85_021DB69C
+_021DB956:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DB958: .word 0x021E05C0
+ thumb_func_end MOD85_021DB7F4
+
+ thumb_func_start MOD85_021DB95C
+MOD85_021DB95C: ; 0x021DB95C
+ push {r3, r4, lr}
+ sub sp, #0x14
+ add r4, r0, #0
+ add r1, sp, #8
+ mov r0, #0
+ str r0, [r1]
+ str r0, [r1, #4]
+ str r0, [r1, #8]
+ mov r0, #0x4d
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _021DB97A
+ bl ErrorHandling
+_021DB97A:
+ str r4, [sp]
+ mov r0, #0x8f
+ str r0, [sp, #4]
+ ldr r0, _021DB998 ; =0x0000044C
+ ldr r1, _021DB99C ; =0x021DEE5C
+ ldr r0, [r4, r0]
+ add r2, sp, #8
+ mov r3, #0
+ bl FUN_020644E4
+ mov r1, #0x4d
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add sp, #0x14
+ pop {r3, r4, pc}
+ .align 2, 0
+_021DB998: .word 0x0000044C
+_021DB99C: .word 0x021DEE5C
+ thumb_func_end MOD85_021DB95C
+
+ thumb_func_start MOD85_021DB9A0
+MOD85_021DB9A0: ; 0x021DB9A0
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x4d
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _021DB9BA
+ bl FUN_02064520
+ mov r0, #0x4d
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+_021DB9BA:
+ add r0, r4, #0
+ bl MOD85_021DB754
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DB9A0
+
+ thumb_func_start MOD85_021DB9C4
+MOD85_021DB9C4: ; 0x021DB9C4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r6, r0, #0
+ ldr r0, [r6, #4]
+ ldr r1, _021DBADC ; =0x021DF094
+ lsl r0, r0, #4
+ add r4, r1, r0
+ mov r0, #1
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ ldr r0, _021DBAE0 ; =0x021E05C0
+ add r5, r6, #0
+ str r0, [sp]
+ mov r7, #0
+_021DB9E0:
+ ldr r1, [r4]
+ ldr r0, [sp, #0xc]
+ tst r0, r1
+ beq _021DBA6C
+ ldr r0, [r6, #8]
+ cmp r0, #0
+ bne _021DB9F8
+ ldr r0, [r4, #4]
+ str r0, [r5, #0x14]
+ mov r0, #0
+ str r0, [sp, #8]
+ b _021DBA2C
+_021DB9F8:
+ ldr r1, [r4, #4]
+ ldr r0, [r4, #8]
+ cmp r1, r0
+ ldr r1, [r5, #0x14]
+ bge _021DBA18
+ ldr r0, [r4, #0xc]
+ add r1, r1, r0
+ str r1, [r5, #0x14]
+ ldr r0, [r4, #8]
+ cmp r1, r0
+ blt _021DBA12
+ str r0, [r5, #0x14]
+ b _021DBA2C
+_021DBA12:
+ mov r0, #0
+ str r0, [sp, #8]
+ b _021DBA2C
+_021DBA18:
+ ldr r0, [r4, #0xc]
+ sub r1, r1, r0
+ str r1, [r5, #0x14]
+ ldr r0, [r4, #8]
+ cmp r1, r0
+ bgt _021DBA28
+ str r0, [r5, #0x14]
+ b _021DBA2C
+_021DBA28:
+ mov r0, #0
+ str r0, [sp, #8]
+_021DBA2C:
+ ldr r0, [sp]
+ mov r2, #0x51
+ ldr r0, [r0]
+ ldr r1, [r6, #0x2c]
+ str r0, [sp, #4]
+ mov r0, #0x79
+ lsl r0, r0, #2
+ add r0, r1, r0
+ str r0, [sp, #0x10]
+ add r0, r1, #0
+ lsl r2, r2, #2
+ add r1, r1, r2
+ ldr r3, [r5, #0x14]
+ add r0, #0xa4
+ asr r2, r3, #0xb
+ lsr r2, r2, #0x14
+ add r2, r3, r2
+ ldr r3, [sp, #0x10]
+ lsl r2, r2, #4
+ add r0, r0, r7
+ add r1, r1, r7
+ lsr r2, r2, #0x10
+ add r3, r3, r7
+ bl MOD85_021DB674
+ ldr r3, [sp, #0x10]
+ ldr r0, [r6, #0x28]
+ ldr r2, [sp, #4]
+ mov r1, #1
+ add r3, r3, r7
+ bl MOD85_021DB69C
+_021DBA6C:
+ ldr r0, [sp]
+ add r5, r5, #4
+ add r0, r0, #4
+ str r0, [sp]
+ ldr r0, [sp, #0xc]
+ add r7, #0x20
+ lsl r0, r0, #1
+ str r0, [sp, #0xc]
+ cmp r0, #0x10
+ bls _021DB9E0
+ cmp r0, #0x20
+ bhi _021DBAB6
+ add r5, r6, #0
+ mov r7, #1
+ add r5, #0xc
+ mov r1, #0
+ lsl r7, r7, #0xc
+ mov r0, #0x20
+_021DBA90:
+ ldr r2, [r4]
+ tst r2, r0
+ beq _021DBAAC
+ ldr r2, [r5]
+ add r2, r2, r7
+ str r2, [r5]
+ ldr r3, [r6, #0xc]
+ ldr r2, [r4, #4]
+ cmp r3, r2
+ blt _021DBAA8
+ str r1, [r6, #0xc]
+ b _021DBAAC
+_021DBAA8:
+ mov r2, #0
+ str r2, [sp, #8]
+_021DBAAC:
+ ldr r2, [sp, #0xc]
+ lsl r2, r2, #1
+ str r2, [sp, #0xc]
+ cmp r2, #0x20
+ bls _021DBA90
+_021DBAB6:
+ mov r0, #1
+ str r0, [r6, #8]
+ ldr r0, [sp, #8]
+ cmp r0, #1
+ bne _021DBAD6
+ mov r3, #0
+ str r3, [r6, #8]
+ ldr r0, [r6, #4]
+ ldr r1, _021DBADC ; =0x021DF094
+ add r0, r0, #1
+ str r0, [r6, #4]
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ cmp r0, #0x40
+ bne _021DBAD6
+ str r3, [r6, #4]
+_021DBAD6:
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021DBADC: .word 0x021DF094
+_021DBAE0: .word 0x021E05C0
+ thumb_func_end MOD85_021DB9C4
+
+ thumb_func_start MOD85_021DBAE4
+MOD85_021DBAE4: ; 0x021DBAE4
+ push {r4, lr}
+ add r4, r1, #0
+ bl FUN_0206475C
+ mov r1, #0x61
+ lsl r1, r1, #2
+ str r0, [r4, #0x28]
+ add r0, r0, r1
+ str r0, [r4, #0x2c]
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DBAE4
+
+ thumb_func_start MOD85_021DBAFC
+MOD85_021DBAFC: ; 0x021DBAFC
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD85_021DBAFC
+
+ thumb_func_start MOD85_021DBB00
+MOD85_021DBB00: ; 0x021DBB00
+ ldr r3, _021DBB08 ; =MOD85_021DB9C4
+ add r0, r1, #0
+ bx r3
+ nop
+_021DBB08: .word MOD85_021DB9C4
+ thumb_func_end MOD85_021DBB00
+
+ thumb_func_start MOD85_021DBB0C
+MOD85_021DBB0C: ; 0x021DBB0C
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x4f
+ mov r1, #0x10
+ bl FUN_020169D8
+ add r1, r0, #0
+ mov r0, #0
+ str r0, [r1]
+ str r0, [r1, #4]
+ ldr r0, _021DBB2C ; =MOD85_021DBB88
+ mov r2, #0x8f
+ str r4, [r1, #0xc]
+ bl FUN_0200CA44
+ pop {r4, pc}
+ .align 2, 0
+_021DBB2C: .word MOD85_021DBB88
+ thumb_func_end MOD85_021DBB0C
+
+ thumb_func_start MOD85_021DBB30
+MOD85_021DBB30: ; 0x021DBB30
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x4f
+ mov r1, #0x10
+ bl FUN_020169D8
+ add r1, r0, #0
+ mov r0, #0
+ str r0, [r1]
+ str r0, [r1, #4]
+ ldr r0, _021DBB50 ; =MOD85_021DBBE8
+ mov r2, #0x8f
+ str r4, [r1, #0xc]
+ bl FUN_0200CA44
+ pop {r4, pc}
+ .align 2, 0
+_021DBB50: .word MOD85_021DBBE8
+ thumb_func_end MOD85_021DBB30
+
+ thumb_func_start MOD85_021DBB54
+MOD85_021DBB54: ; 0x021DBB54
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r0, #0x4f
+ mov r1, #0x10
+ bl FUN_020169D8
+ add r1, r0, #0
+ mov r0, #0
+ str r0, [r1]
+ mov r0, #2
+ str r4, [r1, #8]
+ lsl r0, r0, #0xe
+ str r0, [r1, #4]
+ ldr r0, _021DBB84 ; =MOD85_021DBC48
+ mov r2, #0x8f
+ str r5, [r1, #0xc]
+ bl FUN_0200CA44
+ mov r0, #0x5f
+ lsl r0, r0, #4
+ bl FUN_020054C8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DBB84: .word MOD85_021DBC48
+ thumb_func_end MOD85_021DBB54
+
+ thumb_func_start MOD85_021DBB88
+MOD85_021DBB88: ; 0x021DBB88
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r7, r0, #0
+ mov r0, #0x61
+ ldr r1, [r5, #0xc]
+ lsl r0, r0, #2
+ add r2, r1, r0
+ mov r0, #2
+ ldr r3, [r5, #4]
+ lsl r0, r0, #0xa
+ add r0, r3, r0
+ asr r3, r0, #0xb
+ lsr r3, r3, #0x14
+ add r1, r2, #0
+ add r6, r2, #0
+ add r3, r0, r3
+ str r0, [r5, #4]
+ lsl r0, r3, #4
+ lsr r4, r0, #0x10
+ add r1, #0x24
+ add r6, #0x84
+ cmp r4, #0x10
+ bls _021DBBB8
+ mov r4, #0x10
+_021DBBB8:
+ add r0, r2, #4
+ add r2, r4, #0
+ add r3, r6, #0
+ bl MOD85_021DB674
+ ldr r0, [r5, #0xc]
+ mov r1, #7
+ mov r2, #1
+ add r3, r6, #0
+ bl MOD85_021DB69C
+ cmp r4, #0x10
+ beq _021DBBDA
+ ldr r0, [r5, #0xc]
+ ldr r0, [r0]
+ cmp r0, #0x3f
+ bne _021DBBE6
+_021DBBDA:
+ add r0, r5, #0
+ bl FUN_02016A18
+ add r0, r7, #0
+ bl FUN_0200CAB4
+_021DBBE6:
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD85_021DBB88
+
+ thumb_func_start MOD85_021DBBE8
+MOD85_021DBBE8: ; 0x021DBBE8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r7, r0, #0
+ mov r0, #0x61
+ ldr r1, [r5, #0xc]
+ lsl r0, r0, #2
+ add r2, r1, r0
+ mov r1, #2
+ ldr r3, [r5, #4]
+ lsl r1, r1, #0xa
+ add r1, r3, r1
+ asr r3, r1, #0xb
+ lsr r3, r3, #0x14
+ add r0, r2, #0
+ add r6, r2, #0
+ add r3, r1, r3
+ str r1, [r5, #4]
+ lsl r1, r3, #4
+ lsr r4, r1, #0x10
+ add r0, #0x24
+ add r6, #0x84
+ cmp r4, #0x10
+ bls _021DBC18
+ mov r4, #0x10
+_021DBC18:
+ add r1, r2, #4
+ add r2, r4, #0
+ add r3, r6, #0
+ bl MOD85_021DB674
+ ldr r0, [r5, #0xc]
+ mov r1, #7
+ mov r2, #1
+ add r3, r6, #0
+ bl MOD85_021DB69C
+ cmp r4, #0x10
+ beq _021DBC3A
+ ldr r0, [r5, #0xc]
+ ldr r0, [r0]
+ cmp r0, #0x3f
+ bne _021DBC46
+_021DBC3A:
+ add r0, r5, #0
+ bl FUN_02016A18
+ add r0, r7, #0
+ bl FUN_0200CAB4
+_021DBC46:
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD85_021DBBE8
+
+ thumb_func_start MOD85_021DBC48
+MOD85_021DBC48: ; 0x021DBC48
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ ldr r1, [r5, #0xc]
+ mov r2, #0x61
+ lsl r2, r2, #2
+ add r7, r0, #0
+ add r0, r1, r2
+ add r6, r1, r2
+ ldr r3, [r1]
+ add r0, #0x24
+ add r6, #0x84
+ cmp r3, #0x3f
+ bne _021DBC70
+ add r0, r5, #0
+ bl FUN_02016A18
+ add r0, r7, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, r6, r7, pc}
+_021DBC70:
+ ldr r3, [r5, #8]
+ cmp r3, #0
+ bne _021DBC7C
+ add r1, r1, r2
+ add r1, #0x44
+ b _021DBC80
+_021DBC7C:
+ add r1, r1, r2
+ add r1, #0x64
+_021DBC80:
+ ldr r2, [r5]
+ cmp r2, #0
+ beq _021DBC8C
+ cmp r2, #1
+ beq _021DBCC2
+ pop {r3, r4, r5, r6, r7, pc}
+_021DBC8C:
+ mov r2, #1
+ ldr r3, [r5, #4]
+ lsl r2, r2, #0xc
+ add r3, r3, r2
+ asr r2, r3, #0xb
+ lsr r2, r2, #0x14
+ add r2, r3, r2
+ asr r2, r2, #0xc
+ str r3, [r5, #4]
+ cmp r2, #0x10
+ ble _021DBCAA
+ ldr r3, [r5]
+ mov r2, #0x10
+ add r3, r3, #1
+ str r3, [r5]
+_021DBCAA:
+ lsl r2, r2, #0x10
+ lsr r2, r2, #0x10
+ add r3, r6, #0
+ bl MOD85_021DB674
+ ldr r0, [r5, #0xc]
+ mov r1, #7
+ mov r2, #1
+ add r3, r6, #0
+ bl MOD85_021DB69C
+ pop {r3, r4, r5, r6, r7, pc}
+_021DBCC2:
+ mov r2, #1
+ ldr r3, [r5, #4]
+ lsl r2, r2, #0xa
+ sub r2, r3, r2
+ asr r3, r2, #0xb
+ lsr r3, r3, #0x14
+ add r3, r2, r3
+ str r2, [r5, #4]
+ asr r4, r3, #0xc
+ bpl _021DBCD8
+ mov r4, #0
+_021DBCD8:
+ lsl r2, r4, #0x10
+ lsr r2, r2, #0x10
+ add r3, r6, #0
+ bl MOD85_021DB674
+ ldr r0, [r5, #0xc]
+ mov r1, #7
+ mov r2, #1
+ add r3, r6, #0
+ bl MOD85_021DB69C
+ cmp r4, #0
+ bne _021DBCFE
+ add r0, r5, #0
+ bl FUN_02016A18
+ add r0, r7, #0
+ bl FUN_0200CAB4
+_021DBCFE:
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD85_021DBC48
+
+ thumb_func_start MOD85_021DBD00
+MOD85_021DBD00: ; 0x021DBD00
+ push {r4, lr}
+ add r4, r1, #0
+ lsl r1, r4, #2
+ add r0, r0, r1
+ add r0, #0xa8
+ ldr r0, [r0]
+ mov r1, #0x15
+ add r0, r2, r0
+ bl _s32_div_f
+ cmp r1, #0
+ bge _021DBD1A
+ add r1, #0x15
+_021DBD1A:
+ mov r0, #0x54
+ add r2, r4, #0
+ mul r2, r0
+ ldr r0, _021DBD2C ; =0x021DFDE4
+ lsl r1, r1, #2
+ add r0, r0, r2
+ ldr r0, [r1, r0]
+ pop {r4, pc}
+ nop
+_021DBD2C: .word 0x021DFDE4
+ thumb_func_end MOD85_021DBD00
+
+ thumb_func_start MOD85_021DBD30
+MOD85_021DBD30: ; 0x021DBD30
+ push {r4, r5, r6, lr}
+ lsl r4, r1, #2
+ add r4, r0, r4
+ add r4, #0x90
+ ldr r4, [r4]
+ mov r3, #0
+ lsr r6, r4, #0x1f
+ lsl r5, r4, #0xf
+ sub r5, r5, r6
+ mov r4, #0xf
+ ror r5, r4
+ add r4, r6, r5
+ beq _021DBD4C
+ sub r3, r3, #1
+_021DBD4C:
+ add r2, r2, r3
+ bl MOD85_021DBD00
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD85_021DBD30
+
+ thumb_func_start MOD85_021DBD54
+MOD85_021DBD54: ; 0x021DBD54
+ ldr r1, _021DBD70 ; =0x021C48B8
+ ldr r1, [r1, #0x48]
+ and r1, r0
+ cmp r1, r0
+ bne _021DBD62
+ mov r0, #2
+ bx lr
+_021DBD62:
+ tst r0, r1
+ beq _021DBD6A
+ mov r0, #1
+ bx lr
+_021DBD6A:
+ mov r0, #0
+ bx lr
+ nop
+_021DBD70: .word 0x021C48B8
+ thumb_func_end MOD85_021DBD54
+
+ thumb_func_start MOD85_021DBD74
+MOD85_021DBD74: ; 0x021DBD74
+ mov r2, #3
+ add r1, r0, #0
+ tst r1, r2
+ beq _021DBD80
+ mov r0, #2
+ bx lr
+_021DBD80:
+ mov r1, #0xc
+ tst r1, r0
+ beq _021DBD8A
+ add r0, r2, #0
+ bx lr
+_021DBD8A:
+ mov r1, #0x30
+ tst r1, r0
+ beq _021DBD94
+ mov r0, #4
+ bx lr
+_021DBD94:
+ mov r1, #0xc0
+ add r2, r0, #0
+ tst r2, r1
+ beq _021DBDA0
+ mov r0, #5
+ bx lr
+_021DBDA0:
+ add r1, #0x40
+ tst r1, r0
+ beq _021DBDAA
+ mov r0, #1
+ bx lr
+_021DBDAA:
+ mov r1, #2
+ lsl r1, r1, #8
+ tst r0, r1
+ beq _021DBDB6
+ mov r0, #0
+ bx lr
+_021DBDB6:
+ mov r0, #6
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD85_021DBD74
+
+ thumb_func_start MOD85_021DBDBC
+MOD85_021DBDBC: ; 0x021DBDBC
+ push {r4, r5, r6, lr}
+ mov r1, #0
+ mov r2, #1
+ add r5, r0, #0
+ bl MOD85_021DBD30
+ mov r1, #1
+ add r4, r0, #0
+ add r0, r5, #0
+ add r2, r1, #0
+ bl MOD85_021DBD30
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #2
+ mov r2, #1
+ bl MOD85_021DBD30
+ cmp r4, #3
+ beq _021DBDEC
+ cmp r4, r6
+ bne _021DBDF0
+ cmp r4, r0
+ bne _021DBDF0
+_021DBDEC:
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_021DBDF0:
+ mov r0, #6
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD85_021DBDBC
+
+ thumb_func_start MOD85_021DBDF4
+MOD85_021DBDF4: ; 0x021DBDF4
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r1, #0
+ mov r2, #2
+ bl MOD85_021DBD30
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ mov r2, #2
+ bl MOD85_021DBD30
+ mov r1, #2
+ add r6, r0, #0
+ add r0, r5, #0
+ add r2, r1, #0
+ bl MOD85_021DBD30
+ cmp r4, #3
+ beq _021DBE24
+ cmp r4, r6
+ bne _021DBE28
+ cmp r4, r0
+ bne _021DBE28
+_021DBE24:
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_021DBE28:
+ mov r0, #6
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD85_021DBDF4
+
+ thumb_func_start MOD85_021DBE2C
+MOD85_021DBE2C: ; 0x021DBE2C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r1, #0
+ mov r2, #3
+ bl MOD85_021DBD30
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ mov r2, #3
+ bl MOD85_021DBD30
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #2
+ mov r2, #3
+ bl MOD85_021DBD30
+ cmp r4, #3
+ beq _021DBE5C
+ cmp r4, r6
+ bne _021DBE60
+ cmp r4, r0
+ bne _021DBE60
+_021DBE5C:
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_021DBE60:
+ mov r0, #6
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD85_021DBE2C
+
+ thumb_func_start MOD85_021DBE64
+MOD85_021DBE64: ; 0x021DBE64
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r1, #0
+ mov r2, #1
+ bl MOD85_021DBD30
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ mov r2, #2
+ bl MOD85_021DBD30
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #2
+ mov r2, #3
+ bl MOD85_021DBD30
+ cmp r4, #3
+ beq _021DBE94
+ cmp r4, r6
+ bne _021DBE98
+ cmp r4, r0
+ bne _021DBE98
+_021DBE94:
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_021DBE98:
+ mov r0, #6
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD85_021DBE64
+
+ thumb_func_start MOD85_021DBE9C
+MOD85_021DBE9C: ; 0x021DBE9C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r1, #0
+ mov r2, #3
+ bl MOD85_021DBD30
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ mov r2, #2
+ bl MOD85_021DBD30
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #2
+ mov r2, #1
+ bl MOD85_021DBD30
+ cmp r4, #3
+ beq _021DBECC
+ cmp r4, r6
+ bne _021DBED0
+ cmp r4, r0
+ bne _021DBED0
+_021DBECC:
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_021DBED0:
+ mov r0, #6
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD85_021DBE9C
+
+ thumb_func_start MOD85_021DBED4
+MOD85_021DBED4: ; 0x021DBED4
+ push {r4, r5, r6, lr}
+ add r4, r2, #0
+ mov r1, #0
+ add r5, r0, #0
+ str r1, [r4]
+ mov r6, #6
+ bl MOD85_021DBDBC
+ cmp r0, #6
+ beq _021DBEF2
+ ldr r1, [r4]
+ add r6, r0, #0
+ mov r0, #2
+ orr r0, r1
+ str r0, [r4]
+_021DBEF2:
+ add r0, r5, #0
+ bl MOD85_021DBDF4
+ cmp r0, #6
+ beq _021DBF06
+ ldr r1, [r4]
+ add r6, r0, #0
+ mov r0, #1
+ orr r0, r1
+ str r0, [r4]
+_021DBF06:
+ add r0, r5, #0
+ bl MOD85_021DBE2C
+ cmp r0, #6
+ beq _021DBF1A
+ ldr r1, [r4]
+ add r6, r0, #0
+ mov r0, #4
+ orr r0, r1
+ str r0, [r4]
+_021DBF1A:
+ add r0, r5, #0
+ bl MOD85_021DBE64
+ cmp r0, #6
+ beq _021DBF2E
+ ldr r1, [r4]
+ add r6, r0, #0
+ mov r0, #8
+ orr r0, r1
+ str r0, [r4]
+_021DBF2E:
+ add r0, r5, #0
+ bl MOD85_021DBE9C
+ cmp r0, #6
+ beq _021DBF42
+ ldr r1, [r4]
+ add r6, r0, #0
+ mov r0, #0x10
+ orr r0, r1
+ str r0, [r4]
+_021DBF42:
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DBED4
+
+ thumb_func_start MOD85_021DBF48
+MOD85_021DBF48: ; 0x021DBF48
+ push {r3, r4, r5, lr}
+ add r5, r2, #0
+ mov r1, #0
+ str r1, [r5]
+ bl MOD85_021DBDF4
+ add r4, r0, #0
+ cmp r4, #6
+ beq _021DBF6A
+ cmp r4, #2
+ beq _021DBF62
+ bl ErrorHandling
+_021DBF62:
+ ldr r1, [r5]
+ mov r0, #1
+ orr r0, r1
+ str r0, [r5]
+_021DBF6A:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DBF48
+
+ thumb_func_start MOD85_021DBF70
+MOD85_021DBF70: ; 0x021DBF70
+ push {r3, lr}
+ mov r2, #3
+ add r1, r0, #0
+ tst r1, r2
+ beq _021DBF7E
+ mov r0, #1
+ pop {r3, pc}
+_021DBF7E:
+ mov r1, #0xc
+ tst r1, r0
+ beq _021DBF88
+ mov r0, #0
+ pop {r3, pc}
+_021DBF88:
+ mov r1, #0x30
+ tst r1, r0
+ beq _021DBF92
+ mov r0, #2
+ pop {r3, pc}
+_021DBF92:
+ mov r1, #0xc0
+ tst r0, r1
+ beq _021DBF9C
+ add r0, r2, #0
+ pop {r3, pc}
+_021DBF9C:
+ bl ErrorHandling
+ mov r0, #4
+ pop {r3, pc}
+ thumb_func_end MOD85_021DBF70
+
+ thumb_func_start MOD85_021DBFA4
+MOD85_021DBFA4: ; 0x021DBFA4
+ mov r2, #0
+ add r1, r2, #0
+_021DBFA8:
+ add r2, r2, #1
+ str r1, [r0, #0x54]
+ add r0, r0, #4
+ cmp r2, #3
+ blt _021DBFA8
+ bx lr
+ thumb_func_end MOD85_021DBFA4
+
+ thumb_func_start MOD85_021DBFB4
+MOD85_021DBFB4: ; 0x021DBFB4
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r4, #0
+ add r1, r5, #0
+_021DBFBE:
+ ldr r0, [r1, #0x54]
+ cmp r0, #0
+ beq _021DBFCC
+ add r4, r4, #1
+ add r1, r1, #4
+ cmp r4, #3
+ blt _021DBFBE
+_021DBFCC:
+ cmp r4, #3
+ blt _021DBFD4
+ bl ErrorHandling
+_021DBFD4:
+ lsl r0, r4, #2
+ add r0, r5, r0
+ str r6, [r0, #0x54]
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD85_021DBFB4
+
+ thumb_func_start MOD85_021DBFDC
+MOD85_021DBFDC: ; 0x021DBFDC
+ push {r4, r5, r6}
+ sub sp, #0xc
+ ldr r6, _021DC018 ; =0x021DEDC8
+ add r4, r0, #0
+ ldmia r6!, {r0, r1}
+ add r5, sp, #0
+ add r3, r5, #0
+ stmia r5!, {r0, r1}
+ ldr r0, [r6]
+ mov r2, #0
+ str r0, [r5]
+_021DBFF2:
+ ldr r1, [r4, #0x54]
+ cmp r1, #0
+ beq _021DC006
+ ldr r0, [r3]
+ cmp r1, r0
+ beq _021DC006
+ add sp, #0xc
+ mov r0, #0
+ pop {r4, r5, r6}
+ bx lr
+_021DC006:
+ add r2, r2, #1
+ add r4, r4, #4
+ add r3, r3, #4
+ cmp r2, #3
+ blt _021DBFF2
+ mov r0, #1
+ add sp, #0xc
+ pop {r4, r5, r6}
+ bx lr
+ .align 2, 0
+_021DC018: .word 0x021DEDC8
+ thumb_func_end MOD85_021DBFDC
+
+ thumb_func_start MOD85_021DC01C
+MOD85_021DC01C: ; 0x021DC01C
+ push {r3, r4}
+ ldr r2, [r0, #0x34]
+ mov r1, #0x18
+ ldr r3, _021DC04C ; =0x021DEF04
+ mul r1, r2
+ mov r4, #0
+ add r3, r3, r1
+_021DC02A:
+ ldr r2, [r0, #0x54]
+ cmp r2, #0
+ beq _021DC03C
+ ldr r1, [r3]
+ cmp r2, r1
+ beq _021DC03C
+ mov r0, #0
+ pop {r3, r4}
+ bx lr
+_021DC03C:
+ add r4, r4, #1
+ add r0, r0, #4
+ add r3, r3, #4
+ cmp r4, #3
+ blt _021DC02A
+ mov r0, #1
+ pop {r3, r4}
+ bx lr
+ .align 2, 0
+_021DC04C: .word 0x021DEF04
+ thumb_func_end MOD85_021DC01C
+
+ thumb_func_start MOD85_021DC050
+MOD85_021DC050: ; 0x021DC050
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ mov r0, #3
+ str r0, [sp]
+ mov r0, #2
+ lsl r2, r1, #3
+ ldr r3, _021DC08C ; =0x021DEE9C
+ str r0, [sp, #4]
+ mov r0, #6
+ str r0, [sp, #8]
+ add r5, r3, r2
+ ldr r2, [r3, r2]
+ ldr r0, _021DC090 ; =0x0000043C
+ ldr r3, [r5, #4]
+ lsl r2, r2, #0x18
+ lsl r3, r3, #0x18
+ ldr r0, [r4, r0]
+ mov r1, #1
+ lsr r2, r2, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_020186B4
+ ldr r0, _021DC090 ; =0x0000043C
+ mov r1, #1
+ ldr r0, [r4, r0]
+ bl FUN_0201AC68
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_021DC08C: .word 0x021DEE9C
+_021DC090: .word 0x0000043C
+ thumb_func_end MOD85_021DC050
+
+ thumb_func_start MOD85_021DC094
+MOD85_021DC094: ; 0x021DC094
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ mov r0, #3
+ str r0, [sp]
+ mov r0, #2
+ lsl r2, r1, #3
+ ldr r3, _021DC0D0 ; =0x021DEE9C
+ str r0, [sp, #4]
+ mov r0, #5
+ str r0, [sp, #8]
+ add r5, r3, r2
+ ldr r2, [r3, r2]
+ ldr r0, _021DC0D4 ; =0x0000043C
+ ldr r3, [r5, #4]
+ lsl r2, r2, #0x18
+ lsl r3, r3, #0x18
+ ldr r0, [r4, r0]
+ mov r1, #1
+ lsr r2, r2, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_020186B4
+ ldr r0, _021DC0D4 ; =0x0000043C
+ mov r1, #1
+ ldr r0, [r4, r0]
+ bl FUN_0201AC68
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_021DC0D0: .word 0x021DEE9C
+_021DC0D4: .word 0x0000043C
+ thumb_func_end MOD85_021DC094
+
+ thumb_func_start MOD85_021DC0D8
+MOD85_021DC0D8: ; 0x021DC0D8
+ push {r3, r4, r5, lr}
+ ldr r4, [r0, #0x44]
+ ldr r5, [r0, #0x48]
+ cmp r4, #6
+ bne _021DC0E6
+ bl ErrorHandling
+_021DC0E6:
+ ldr r3, _021DC104 ; =0x021DFCAC
+ lsl r2, r4, #2
+ mov r1, #0
+ ldr r3, [r3, r2]
+ add r0, r1, #0
+ mov r2, #1
+_021DC0F2:
+ add r4, r5, #0
+ tst r4, r2
+ beq _021DC0FA
+ add r0, r0, r3
+_021DC0FA:
+ add r1, r1, #1
+ lsr r5, r5, #1
+ cmp r1, #5
+ blt _021DC0F2
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DC104: .word 0x021DFCAC
+ thumb_func_end MOD85_021DC0D8
+
+ thumb_func_start MOD85_021DC108
+MOD85_021DC108: ; 0x021DC108
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ add r7, r0, #0
+ mov r4, #0
+ add r0, sp, #8
+ str r4, [r0]
+ str r4, [r0, #4]
+ mov r6, #0x11
+ lsl r6, r6, #0xe
+ str r4, [r0, #8]
+ str r7, [sp, #0x14]
+ cmp r4, #3
+ bge _021DC15A
+_021DC122:
+ mov r5, #0
+_021DC124:
+ str r6, [sp, #8]
+ str r4, [sp, #0x1c]
+ str r5, [sp, #0x18]
+ add r0, sp, #0x14
+ str r0, [sp]
+ mov r0, #0x8b
+ str r0, [sp, #4]
+ ldr r0, _021DC160 ; =0x0000044C
+ ldr r1, _021DC164 ; =0x021DF938
+ ldr r0, [r7, r0]
+ add r2, sp, #8
+ mov r3, #0
+ bl FUN_020644E4
+ mov r0, #2
+ lsl r0, r0, #0x10
+ add r5, r5, r0
+ mov r0, #0xa
+ lsl r0, r0, #0x10
+ cmp r5, r0
+ blt _021DC124
+ mov r0, #0xf
+ lsl r0, r0, #0xe
+ add r4, r4, #1
+ add r6, r6, r0
+ cmp r4, #3
+ blt _021DC122
+_021DC15A:
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021DC160: .word 0x0000044C
+_021DC164: .word 0x021DF938
+ thumb_func_end MOD85_021DC108
+
+ thumb_func_start MOD85_021DC168
+MOD85_021DC168: ; 0x021DC168
+ push {r3, r4, r5, lr}
+ sub sp, #0x28
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_0206475C
+ add r3, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, r4, #0
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ add r1, sp, #0x1c
+ str r0, [r2]
+ add r0, r5, #0
+ bl FUN_0206477C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ mov r0, #3
+ str r0, [sp, #0x14]
+ mov r0, #2
+ str r0, [sp, #0x18]
+ mov r0, #0x45
+ ldr r1, [r4]
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ add r1, r4, #0
+ add r1, #0xc
+ add r2, sp, #0x1c
+ mov r3, #1
+ bl MOD85_021DEC00
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_020200BC
+ mov r0, #1
+ add sp, #0x28
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DC168
+
+ thumb_func_start MOD85_021DC1C0
+MOD85_021DC1C0: ; 0x021DC1C0
+ ldr r3, _021DC1C8 ; =MOD85_021DECA0
+ add r1, #0xc
+ add r0, r1, #0
+ bx r3
+ .align 2, 0
+_021DC1C8: .word MOD85_021DECA0
+ thumb_func_end MOD85_021DC1C0
+
+ thumb_func_start MOD85_021DC1CC
+MOD85_021DC1CC: ; 0x021DC1CC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r1, #0
+ ldr r7, [r5, #8]
+ str r0, [sp]
+ ldr r0, [r5]
+ lsl r6, r7, #2
+ add r0, r0, r6
+ add r0, #0x90
+ ldr r1, [r5, #4]
+ ldr r0, [r0]
+ add r0, r1, r0
+ mov r1, #0xa
+ lsl r1, r1, #0x10
+ bl _s32_div_f
+ add r4, r1, #0
+ ldr r0, [sp]
+ add r1, sp, #4
+ bl FUN_0206477C
+ ldr r1, [r5]
+ mov r0, #1
+ add r1, r1, r6
+ add r1, #0x9c
+ lsl r0, r0, #0x10
+ ldr r1, [r1]
+ add r0, r4, r0
+ add r0, r0, r1
+ str r0, [sp, #8]
+ ldr r0, [r5, #0x10]
+ add r1, sp, #4
+ bl FUN_02020044
+ asr r2, r4, #0x10
+ lsr r2, r2, #0xf
+ add r2, r4, r2
+ ldr r0, [r5]
+ add r1, r7, #0
+ asr r2, r2, #0x11
+ bl MOD85_021DBD00
+ lsl r1, r0, #2
+ ldr r0, _021DC244 ; =0x021DF9D8
+ ldr r4, [r0, r1]
+ ldr r0, [r5, #0x10]
+ bl FUN_020201DC
+ cmp r4, r0
+ beq _021DC240
+ ldr r0, [r5, #0x10]
+ add r1, r4, #0
+ bl FUN_02020130
+ ldr r0, [r5, #0x10]
+ mov r1, #0
+ bl FUN_02020208
+_021DC240:
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DC244: .word 0x021DF9D8
+ thumb_func_end MOD85_021DC1CC
+
+ thumb_func_start MOD85_021DC248
+MOD85_021DC248: ; 0x021DC248
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD85_021DC248
+
+ thumb_func_start MOD85_021DC24C
+MOD85_021DC24C: ; 0x021DC24C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ ldr r3, _021DC290 ; =0x021DF628
+ add r5, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #8
+ add r6, r2, #0
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ mov r4, #1
+ str r0, [r2]
+ mov r7, #0x8d
+_021DC264:
+ str r5, [sp]
+ ldr r0, _021DC294 ; =0x0000044C
+ str r7, [sp, #4]
+ ldr r0, [r5, r0]
+ ldr r1, _021DC298 ; =0x021DF94C
+ add r2, r6, #0
+ add r3, r4, #0
+ bl FUN_020644E4
+ mov r0, #0xa
+ mul r4, r0
+ mov r0, #2
+ ldr r1, [sp, #8]
+ lsl r0, r0, #0xe
+ sub r0, r1, r0
+ str r0, [sp, #8]
+ ldr r0, _021DC29C ; =0x000186A0
+ cmp r4, r0
+ blo _021DC264
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021DC290: .word 0x021DF628
+_021DC294: .word 0x0000044C
+_021DC298: .word 0x021DF94C
+_021DC29C: .word 0x000186A0
+ thumb_func_end MOD85_021DC24C
+
+ thumb_func_start MOD85_021DC2A0
+MOD85_021DC2A0: ; 0x021DC2A0
+ push {r3, r4, r5, lr}
+ sub sp, #0x28
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_02064754
+ mov r1, #0xa
+ str r0, [r4, #4]
+ mul r1, r0
+ str r1, [r4, #8]
+ add r0, r5, #0
+ bl FUN_0206475C
+ str r0, [r4]
+ add r0, r5, #0
+ add r1, sp, #0x1c
+ bl FUN_0206477C
+ mov r0, #0
+ str r0, [sp]
+ mov r3, #1
+ str r3, [sp, #4]
+ str r3, [sp, #8]
+ str r3, [sp, #0xc]
+ str r3, [sp, #0x10]
+ str r3, [sp, #0x14]
+ str r3, [sp, #0x18]
+ mov r0, #0x45
+ ldr r1, [r4]
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ add r1, r4, #0
+ add r1, #0xc
+ add r2, sp, #0x1c
+ bl MOD85_021DEC00
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_020200BC
+ mov r0, #1
+ add sp, #0x28
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DC2A0
+
+ thumb_func_start MOD85_021DC2F8
+MOD85_021DC2F8: ; 0x021DC2F8
+ ldr r3, _021DC300 ; =MOD85_021DECA0
+ add r1, #0xc
+ add r0, r1, #0
+ bx r3
+ .align 2, 0
+_021DC300: .word MOD85_021DECA0
+ thumb_func_end MOD85_021DC2F8
+
+ thumb_func_start MOD85_021DC304
+MOD85_021DC304: ; 0x021DC304
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ add r6, r0, #0
+ ldr r0, [r5]
+ ldr r4, [r0, #0x60]
+ ldr r0, [r5, #4]
+ cmp r0, #1
+ bls _021DC326
+ cmp r4, r0
+ bhs _021DC326
+ ldr r0, [r5, #0x10]
+ mov r1, #0
+ bl FUN_020200A0
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+_021DC326:
+ ldr r0, [r5, #0x10]
+ mov r1, #1
+ bl FUN_020200A0
+ ldr r1, [r5, #8]
+ add r0, r4, #0
+ bl _u32_div_f
+ add r4, r1, #0
+ ldr r1, [r5, #4]
+ add r0, r4, #0
+ bl _u32_div_f
+ add r4, r0, #0
+ ldr r0, [r5, #0x10]
+ bl FUN_020201DC
+ cmp r4, r0
+ beq _021DC35A
+ ldr r0, [r5, #0x10]
+ add r1, r4, #0
+ bl FUN_02020130
+ ldr r0, [r5, #0x10]
+ bl FUN_02020198
+_021DC35A:
+ add r0, r6, #0
+ add r1, sp, #0
+ bl FUN_0206477C
+ ldr r0, _021DC37C ; =0x021DFAD8
+ lsl r1, r4, #2
+ ldr r0, [r0, r1]
+ ldr r2, [sp]
+ add r1, sp, #0
+ add r0, r2, r0
+ str r0, [sp]
+ ldr r0, [r5, #0x10]
+ bl FUN_02020044
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ nop
+_021DC37C: .word 0x021DFAD8
+ thumb_func_end MOD85_021DC304
+
+ thumb_func_start MOD85_021DC380
+MOD85_021DC380: ; 0x021DC380
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD85_021DC380
+
+ thumb_func_start MOD85_021DC384
+MOD85_021DC384: ; 0x021DC384
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ ldr r3, _021DC3C8 ; =0x021DF6F4
+ add r5, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #8
+ add r6, r2, #0
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ mov r4, #1
+ str r0, [r2]
+ mov r7, #0x8d
+_021DC39C:
+ str r5, [sp]
+ ldr r0, _021DC3CC ; =0x0000044C
+ str r7, [sp, #4]
+ ldr r0, [r5, r0]
+ ldr r1, _021DC3D0 ; =0x021DF960
+ add r2, r6, #0
+ add r3, r4, #0
+ bl FUN_020644E4
+ mov r0, #0xa
+ mul r4, r0
+ mov r0, #2
+ ldr r1, [sp, #8]
+ lsl r0, r0, #0xe
+ sub r0, r1, r0
+ str r0, [sp, #8]
+ ldr r0, _021DC3D4 ; =0x000186A0
+ cmp r4, r0
+ blo _021DC39C
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021DC3C8: .word 0x021DF6F4
+_021DC3CC: .word 0x0000044C
+_021DC3D0: .word 0x021DF960
+_021DC3D4: .word 0x000186A0
+ thumb_func_end MOD85_021DC384
+
+ thumb_func_start MOD85_021DC3D8
+MOD85_021DC3D8: ; 0x021DC3D8
+ push {r3, r4, r5, lr}
+ sub sp, #0x28
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_02064754
+ mov r1, #0xa
+ str r0, [r4, #4]
+ mul r1, r0
+ str r1, [r4, #8]
+ add r0, r5, #0
+ bl FUN_0206475C
+ str r0, [r4]
+ add r0, r5, #0
+ add r1, sp, #0x1c
+ bl FUN_0206477C
+ mov r0, #0
+ str r0, [sp]
+ mov r3, #1
+ str r3, [sp, #4]
+ str r3, [sp, #8]
+ str r3, [sp, #0xc]
+ str r3, [sp, #0x10]
+ str r3, [sp, #0x14]
+ str r3, [sp, #0x18]
+ mov r0, #0x45
+ ldr r1, [r4]
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ add r1, r4, #0
+ add r1, #0xc
+ add r2, sp, #0x1c
+ bl MOD85_021DEC00
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_020200BC
+ mov r0, #1
+ add sp, #0x28
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DC3D8
+
+ thumb_func_start MOD85_021DC430
+MOD85_021DC430: ; 0x021DC430
+ ldr r3, _021DC438 ; =MOD85_021DECA0
+ add r1, #0xc
+ add r0, r1, #0
+ bx r3
+ .align 2, 0
+_021DC438: .word MOD85_021DECA0
+ thumb_func_end MOD85_021DC430
+
+ thumb_func_start MOD85_021DC43C
+MOD85_021DC43C: ; 0x021DC43C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ add r6, r0, #0
+ ldr r0, [r5]
+ ldr r4, [r0, #0x64]
+ ldr r0, [r5, #4]
+ cmp r4, r0
+ ldr r0, [r5, #0x10]
+ bhs _021DC45A
+ mov r1, #0
+ bl FUN_020200A0
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+_021DC45A:
+ mov r1, #1
+ bl FUN_020200A0
+ ldr r1, [r5, #8]
+ add r0, r4, #0
+ bl _u32_div_f
+ add r4, r1, #0
+ ldr r1, [r5, #4]
+ add r0, r4, #0
+ bl _u32_div_f
+ add r4, r0, #0
+ ldr r0, [r5, #0x10]
+ bl FUN_020201DC
+ cmp r4, r0
+ beq _021DC48C
+ ldr r0, [r5, #0x10]
+ add r1, r4, #0
+ bl FUN_02020130
+ ldr r0, [r5, #0x10]
+ bl FUN_02020198
+_021DC48C:
+ add r0, r6, #0
+ add r1, sp, #0
+ bl FUN_0206477C
+ ldr r0, _021DC4AC ; =0x021DFAB0
+ lsl r1, r4, #2
+ ldr r0, [r0, r1]
+ ldr r2, [sp]
+ add r1, sp, #0
+ add r0, r2, r0
+ str r0, [sp]
+ ldr r0, [r5, #0x10]
+ bl FUN_02020044
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_021DC4AC: .word 0x021DFAB0
+ thumb_func_end MOD85_021DC43C
+
+ thumb_func_start MOD85_021DC4B0
+MOD85_021DC4B0: ; 0x021DC4B0
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD85_021DC4B0
+
+ thumb_func_start MOD85_021DC4B4
+MOD85_021DC4B4: ; 0x021DC4B4
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x14
+ ldr r6, _021DC4E0 ; =0x021DF808
+ add r5, sp, #8
+ add r4, r0, #0
+ add r3, r1, #0
+ ldmia r6!, {r0, r1}
+ add r2, r5, #0
+ stmia r5!, {r0, r1}
+ ldr r0, [r6]
+ ldr r1, _021DC4E4 ; =0x021DF974
+ str r0, [r5]
+ str r4, [sp]
+ mov r0, #0x86
+ str r0, [sp, #4]
+ ldr r0, _021DC4E8 ; =0x0000044C
+ ldr r0, [r4, r0]
+ bl FUN_020644E4
+ add sp, #0x14
+ pop {r3, r4, r5, r6, pc}
+ nop
+_021DC4E0: .word 0x021DF808
+_021DC4E4: .word 0x021DF974
+_021DC4E8: .word 0x0000044C
+ thumb_func_end MOD85_021DC4B4
+
+ thumb_func_start MOD85_021DC4EC
+MOD85_021DC4EC: ; 0x021DC4EC
+ push {r4, lr}
+ add r4, r1, #0
+ bl FUN_02064738
+ str r4, [r0]
+ mov r1, #0
+ str r1, [r0, #4]
+ str r1, [r0, #8]
+ str r1, [r0, #0x30]
+ pop {r4, pc}
+ thumb_func_end MOD85_021DC4EC
+
+ thumb_func_start MOD85_021DC500
+MOD85_021DC500: ; 0x021DC500
+ push {r4, lr}
+ add r4, r1, #0
+ bl FUN_02064738
+ cmp r4, #1
+ ldr r0, [r0, #0x40]
+ bne _021DC516
+ mov r1, #0
+ bl FUN_020200A0
+ pop {r4, pc}
+_021DC516:
+ mov r1, #1
+ bl FUN_020200A0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DC500
+
+ thumb_func_start MOD85_021DC520
+MOD85_021DC520: ; 0x021DC520
+ push {r3, lr}
+ bl FUN_02064738
+ ldr r0, [r0, #8]
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DC520
+
+ thumb_func_start MOD85_021DC52C
+MOD85_021DC52C: ; 0x021DC52C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_0206475C
+ str r0, [r4, #0x38]
+ add r0, r5, #0
+ bl FUN_02064754
+ str r0, [r4, #0x10]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD85_021DC52C
+
+ thumb_func_start MOD85_021DC544
+MOD85_021DC544: ; 0x021DC544
+ push {r4, lr}
+ add r4, r1, #0
+ ldr r0, [r4, #0x40]
+ cmp r0, #0
+ beq _021DC55C
+ ldr r0, [r4, #0x38]
+ bl MOD85_021DCB00
+ add r4, #0x3c
+ add r0, r4, #0
+ bl MOD85_021DECA0
+_021DC55C:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DC544
+
+ thumb_func_start MOD85_021DC560
+MOD85_021DC560: ; 0x021DC560
+ push {r3, r4, r5, lr}
+ ldr r4, _021DC57C ; =0x021DF9F0
+ add r5, r1, #0
+_021DC566:
+ ldr r1, [r5]
+ add r0, r5, #0
+ lsl r1, r1, #2
+ ldr r2, [r4, r1]
+ ldr r1, [r5, #4]
+ lsl r1, r1, #2
+ ldr r1, [r2, r1]
+ blx r1
+ cmp r0, #1
+ beq _021DC566
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DC57C: .word 0x021DF9F0
+ thumb_func_end MOD85_021DC560
+
+ thumb_func_start MOD85_021DC580
+MOD85_021DC580: ; 0x021DC580
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD85_021DC580
+
+ thumb_func_start MOD85_021DC584
+MOD85_021DC584: ; 0x021DC584
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #0x10]
+ bl MOD85_021DCA68
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD85_021DC584
+
+ thumb_func_start MOD85_021DC598
+MOD85_021DC598: ; 0x021DC598
+ ldr r1, [r0, #0xc]
+ cmp r1, #2
+ bne _021DC5A4
+ ldr r1, [r0, #4]
+ add r1, r1, #1
+ str r1, [r0, #4]
+_021DC5A4:
+ mov r0, #0
+ bx lr
+ thumb_func_end MOD85_021DC598
+
+ thumb_func_start MOD85_021DC5A8
+MOD85_021DC5A8: ; 0x021DC5A8
+ push {r4, r5, lr}
+ sub sp, #0xc
+ ldr r5, _021DC5D8 ; =0x021DF820
+ add r4, r0, #0
+ ldmia r5!, {r0, r1}
+ add r3, sp, #0
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ add r1, r4, #0
+ str r0, [r3]
+ ldr r0, [r4, #0x38]
+ add r1, #0x3c
+ bl MOD85_021DCB6C
+ mov r0, #1
+ str r0, [r4, #8]
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ nop
+_021DC5D8: .word 0x021DF820
+ thumb_func_end MOD85_021DC5A8
+
+ thumb_func_start MOD85_021DC5DC
+MOD85_021DC5DC: ; 0x021DC5DC
+ mov r0, #0
+ bx lr
+ thumb_func_end MOD85_021DC5DC
+
+ thumb_func_start MOD85_021DC5E0
+MOD85_021DC5E0: ; 0x021DC5E0
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ ldr r3, _021DC63C ; =0x021DF7E4
+ add r4, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0xc
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ ldr r5, _021DC640 ; =0x021DF70C
+ str r0, [r2]
+ add r3, sp, #0
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ add r1, r2, #0
+ str r0, [r3]
+ ldr r0, [r4, #0x40]
+ bl FUN_02020064
+ ldr r0, [r4, #0x40]
+ mov r1, #0
+ bl FUN_02020088
+ ldr r0, [r4, #0x40]
+ add r1, sp, #0xc
+ bl FUN_02020044
+ ldr r0, [r4, #0x40]
+ mov r1, #0
+ bl FUN_02020130
+ ldr r0, [r4, #0x40]
+ mov r1, #0
+ bl FUN_02020208
+ ldr r0, _021DC644 ; =0x00000624
+ bl FUN_020054C8
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #0
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+ nop
+_021DC63C: .word 0x021DF7E4
+_021DC640: .word 0x021DF70C
+_021DC644: .word 0x00000624
+ thumb_func_end MOD85_021DC5E0
+
+ thumb_func_start MOD85_021DC648
+MOD85_021DC648: ; 0x021DC648
+ push {r4, lr}
+ sub sp, #0x18
+ add r4, r0, #0
+ ldr r0, [r4, #0x40]
+ add r1, sp, #0xc
+ bl MOD85_021DECBC
+ ldr r0, [r4, #0x40]
+ add r1, sp, #0
+ bl MOD85_021DECD0
+ mov r0, #1
+ ldr r1, [sp, #0x10]
+ lsl r0, r0, #0xe
+ sub r1, r1, r0
+ str r1, [sp, #0x10]
+ ldr r2, [sp]
+ ldr r1, _021DC6AC ; =0x000001C7
+ sub r2, r2, r1
+ str r2, [sp]
+ ldr r2, [sp, #4]
+ sub r1, r2, r1
+ str r1, [sp, #4]
+ ldr r1, [r4, #0x30]
+ add r1, r1, #1
+ str r1, [r4, #0x30]
+ cmp r1, #9
+ blo _021DC696
+ mov r1, #0x16
+ lsr r0, r0, #2
+ lsl r1, r1, #0x10
+ str r1, [sp, #0x10]
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [r4, #0x30]
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+_021DC696:
+ ldr r0, [r4, #0x40]
+ add r1, sp, #0xc
+ bl FUN_02020044
+ ldr r0, [r4, #0x40]
+ add r1, sp, #0
+ bl FUN_02020064
+ mov r0, #0
+ add sp, #0x18
+ pop {r4, pc}
+ .align 2, 0
+_021DC6AC: .word 0x000001C7
+ thumb_func_end MOD85_021DC648
+
+ thumb_func_start MOD85_021DC6B0
+MOD85_021DC6B0: ; 0x021DC6B0
+ ldr r1, [r0, #0x30]
+ add r1, r1, #1
+ str r1, [r0, #0x30]
+ cmp r1, #3
+ blo _021DC6C8
+ mov r1, #0
+ str r1, [r0, #0x30]
+ mov r1, #1
+ str r1, [r0, #8]
+ ldr r1, [r0, #4]
+ add r1, r1, #1
+ str r1, [r0, #4]
+_021DC6C8:
+ mov r0, #0
+ bx lr
+ thumb_func_end MOD85_021DC6B0
+
+ thumb_func_start MOD85_021DC6CC
+MOD85_021DC6CC: ; 0x021DC6CC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x40]
+ mov r1, #1
+ bl FUN_02020130
+ ldr r0, [r4, #0x40]
+ bl FUN_02020198
+ ldr r0, [r4, #0x40]
+ mov r1, #1
+ bl FUN_020200BC
+ mov r0, #0x6d
+ lsl r0, r0, #4
+ bl FUN_020054C8
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD85_021DC6CC
+
+ thumb_func_start MOD85_021DC6F8
+MOD85_021DC6F8: ; 0x021DC6F8
+ ldr r1, [r0, #0x30]
+ add r1, r1, #1
+ str r1, [r0, #0x30]
+ cmp r1, #4
+ blo _021DC710
+ mov r1, #0
+ str r1, [r0, #0x30]
+ mov r1, #1
+ str r1, [r0, #8]
+ ldr r1, [r0, #4]
+ add r1, r1, #1
+ str r1, [r0, #4]
+_021DC710:
+ mov r0, #0
+ bx lr
+ thumb_func_end MOD85_021DC6F8
+
+ thumb_func_start MOD85_021DC714
+MOD85_021DC714: ; 0x021DC714
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ ldr r3, _021DC774 ; =0x021DF754
+ add r4, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0xc
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ ldr r5, _021DC778 ; =0x021DF670
+ str r0, [r2]
+ add r3, sp, #0
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ add r5, r2, #0
+ str r0, [r3]
+ add r3, r4, #0
+ ldmia r5!, {r0, r1}
+ add r3, #0x14
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ add r1, r2, #0
+ str r0, [r3]
+ ldr r0, [r4, #0x40]
+ bl FUN_02020044
+ ldr r0, [r4, #0x40]
+ add r1, sp, #0xc
+ bl FUN_02020064
+ ldr r0, [r4, #0x40]
+ mov r1, #0
+ bl FUN_02020088
+ ldr r0, [r4, #0x40]
+ mov r1, #3
+ bl FUN_02020130
+ ldr r0, [r4, #0x40]
+ bl FUN_02020198
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #1
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DC774: .word 0x021DF754
+_021DC778: .word 0x021DF670
+ thumb_func_end MOD85_021DC714
+
+ thumb_func_start MOD85_021DC77C
+MOD85_021DC77C: ; 0x021DC77C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x2c
+ ldr r5, _021DC7DC ; =0x021DFA0C
+ add r4, r0, #0
+ add r2, sp, #0
+ ldmia r5!, {r0, r1}
+ add r3, r2, #0
+ stmia r2!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ add r6, r4, #0
+ add r6, #0x14
+ stmia r2!, {r0, r1}
+ add r5, sp, #0x20
+ ldmia r6!, {r0, r1}
+ add r2, r5, #0
+ stmia r5!, {r0, r1}
+ ldr r0, [r6]
+ str r0, [r5]
+ ldr r1, [r4, #0x30]
+ ldr r0, [sp, #0x24]
+ lsr r1, r1, #1
+ lsl r1, r1, #2
+ ldr r1, [r3, r1]
+ add r0, r0, r1
+ str r0, [sp, #0x24]
+ ldr r0, [r4, #0x40]
+ add r1, r2, #0
+ bl FUN_02020044
+ ldr r0, [r4, #0x30]
+ add r0, r0, #1
+ str r0, [r4, #0x30]
+ cmp r0, #0x10
+ blo _021DC7D6
+ mov r0, #0
+ str r0, [r4, #0x30]
+ mov r0, #1
+ str r0, [r4, #8]
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+_021DC7D6:
+ mov r0, #0
+ add sp, #0x2c
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_021DC7DC: .word 0x021DFA0C
+ thumb_func_end MOD85_021DC77C
+
+ thumb_func_start MOD85_021DC7E0
+MOD85_021DC7E0: ; 0x021DC7E0
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ ldr r3, _021DC840 ; =0x021DF640
+ add r4, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0xc
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ ldr r5, _021DC844 ; =0x021DF730
+ str r0, [r2]
+ add r3, sp, #0
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ add r5, r2, #0
+ str r0, [r3]
+ add r3, r4, #0
+ ldmia r5!, {r0, r1}
+ add r3, #0x14
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ add r1, r2, #0
+ str r0, [r3]
+ ldr r0, [r4, #0x40]
+ bl FUN_02020044
+ ldr r0, [r4, #0x40]
+ add r1, sp, #0xc
+ bl FUN_02020064
+ ldr r0, [r4, #0x40]
+ mov r1, #0
+ bl FUN_02020088
+ ldr r0, [r4, #0x40]
+ mov r1, #4
+ bl FUN_02020130
+ ldr r0, [r4, #0x40]
+ bl FUN_02020198
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #1
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DC840: .word 0x021DF640
+_021DC844: .word 0x021DF730
+ thumb_func_end MOD85_021DC7E0
+
+ thumb_func_start MOD85_021DC848
+MOD85_021DC848: ; 0x021DC848
+ push {r4, lr}
+ sub sp, #0x18
+ add r4, r0, #0
+ ldr r0, [r4, #0x40]
+ add r1, sp, #0xc
+ bl MOD85_021DECBC
+ ldr r0, [r4, #0x40]
+ add r1, sp, #0
+ bl MOD85_021DECD0
+ mov r0, #1
+ ldr r1, [sp, #0x10]
+ lsl r0, r0, #0xe
+ add r1, r1, r0
+ str r1, [sp, #0x10]
+ ldr r2, [sp]
+ ldr r1, _021DC8B0 ; =0x000001C7
+ add r2, r2, r1
+ str r2, [sp]
+ ldr r2, [sp, #4]
+ add r1, r2, r1
+ str r1, [sp, #4]
+ ldr r1, [r4, #0x30]
+ add r1, r1, #1
+ str r1, [r4, #0x30]
+ cmp r1, #0xa
+ blo _021DC89A
+ mov r1, #7
+ lsr r0, r0, #2
+ lsl r1, r1, #0x12
+ str r1, [sp, #0x10]
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [r4, #0x30]
+ mov r0, #1
+ str r0, [r4, #8]
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+_021DC89A:
+ ldr r0, [r4, #0x40]
+ add r1, sp, #0xc
+ bl FUN_02020044
+ ldr r0, [r4, #0x40]
+ add r1, sp, #0
+ bl FUN_02020064
+ mov r0, #0
+ add sp, #0x18
+ pop {r4, pc}
+ .align 2, 0
+_021DC8B0: .word 0x000001C7
+ thumb_func_end MOD85_021DC848
+
+ thumb_func_start MOD85_021DC8B4
+MOD85_021DC8B4: ; 0x021DC8B4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ ldr r3, _021DC934 ; =0x021DF6AC
+ add r4, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0x18
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ ldr r3, _021DC938 ; =0x021DF61C
+ str r0, [r2]
+ add r2, sp, #0xc
+ ldmia r3!, {r0, r1}
+ add r6, r2, #0
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ add r5, sp, #0
+ mov r7, #0
+ str r7, [r5]
+ str r0, [r2]
+ add r3, r6, #0
+ str r7, [r5, #4]
+ add r2, r4, #0
+ ldmia r3!, {r0, r1}
+ str r7, [r5, #8]
+ add r2, #0x14
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ add r2, r4, #0
+ ldmia r5!, {r0, r1}
+ add r2, #0x20
+ stmia r2!, {r0, r1}
+ ldr r0, [r5]
+ add r1, r6, #0
+ str r0, [r2]
+ str r7, [r4, #0x30]
+ str r7, [r4, #0x34]
+ str r7, [r4, #0x2c]
+ mov r0, #1
+ str r0, [r4, #8]
+ ldr r0, [r4, #0x40]
+ bl FUN_02020044
+ ldr r0, [r4, #0x40]
+ add r1, sp, #0x18
+ bl FUN_02020064
+ ldr r0, [r4, #0x40]
+ add r1, r7, #0
+ bl FUN_02020088
+ ldr r0, [r4, #0x40]
+ mov r1, #2
+ bl FUN_02020130
+ ldr r0, [r4, #0x40]
+ bl FUN_02020198
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #1
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DC934: .word 0x021DF6AC
+_021DC938: .word 0x021DF61C
+ thumb_func_end MOD85_021DC8B4
+
+ thumb_func_start MOD85_021DC93C
+MOD85_021DC93C: ; 0x021DC93C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x60
+ ldr r3, _021DC9D8 ; =0x021DFA2C
+ add r4, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0x40
+ add r6, r2, #0
+ 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}
+ ldr r3, _021DC9DC ; =0x021DFA4C
+ add r2, sp, #0x20
+ ldmia r3!, {r0, r1}
+ add r5, r2, #0
+ 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}
+ ldr r3, _021DC9E0 ; =0x021DFA6C
+ add r2, sp, #0
+ 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}
+ ldr r1, [r4, #0x34]
+ ldr r0, [r4, #0x2c]
+ lsl r1, r1, #2
+ ldr r1, [r6, r1]
+ add r0, r0, r1
+ str r0, [r4, #0x2c]
+ ldr r0, [r4, #0x34]
+ ldr r1, [r4, #0x14]
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r0, r1, r0
+ str r0, [r4, #0x14]
+ ldr r0, [r4, #0x30]
+ add r2, r0, #1
+ str r2, [r4, #0x30]
+ ldr r1, [r4, #0x34]
+ lsl r0, r1, #2
+ ldr r0, [r7, r0]
+ cmp r2, r0
+ blo _021DC9BC
+ add r0, r1, #1
+ str r0, [r4, #0x34]
+ cmp r0, #8
+ blt _021DC9B8
+ mov r0, #0
+ str r0, [r4, #0x34]
+_021DC9B8:
+ mov r0, #0
+ str r0, [r4, #0x30]
+_021DC9BC:
+ add r1, r4, #0
+ ldr r0, [r4, #0x40]
+ add r1, #0x14
+ bl FUN_02020044
+ ldr r1, [r4, #0x2c]
+ ldr r0, [r4, #0x40]
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ bl FUN_02020088
+ mov r0, #0
+ add sp, #0x60
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DC9D8: .word 0x021DFA2C
+_021DC9DC: .word 0x021DFA4C
+_021DC9E0: .word 0x021DFA6C
+ thumb_func_end MOD85_021DC93C
+
+ thumb_func_start MOD85_021DC9E4
+MOD85_021DC9E4: ; 0x021DC9E4
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x24
+ ldr r3, _021DCA60 ; =0x021DF5F8
+ add r4, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0x18
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ ldr r5, _021DCA64 ; =0x021DF658
+ str r0, [r2]
+ add r2, sp, #0xc
+ add r3, r2, #0
+ ldmia r5!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r0, [r5]
+ add r5, r4, #0
+ str r0, [r2]
+ add r2, sp, #0
+ mov r0, #0
+ str r0, [r2]
+ str r0, [r2, #4]
+ add r6, r3, #0
+ str r0, [r2, #8]
+ ldmia r6!, {r0, r1}
+ add r5, #0x14
+ stmia r5!, {r0, r1}
+ ldr r0, [r6]
+ str r0, [r5]
+ add r5, r4, #0
+ ldmia r2!, {r0, r1}
+ add r5, #0x20
+ stmia r5!, {r0, r1}
+ ldr r0, [r2]
+ add r1, r3, #0
+ str r0, [r5]
+ mov r0, #1
+ str r0, [r4, #8]
+ ldr r0, [r4, #0x40]
+ bl FUN_02020044
+ ldr r0, [r4, #0x40]
+ add r1, sp, #0x18
+ bl FUN_02020064
+ ldr r0, [r4, #0x40]
+ mov r1, #0
+ bl FUN_02020088
+ ldr r0, [r4, #0x40]
+ mov r1, #2
+ bl FUN_02020130
+ ldr r0, [r4, #0x40]
+ bl FUN_02020198
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #1
+ add sp, #0x24
+ pop {r3, r4, r5, r6, pc}
+ nop
+_021DCA60: .word 0x021DF5F8
+_021DCA64: .word 0x021DF658
+ thumb_func_end MOD85_021DC9E4
+
+ thumb_func_start MOD85_021DCA68
+MOD85_021DCA68: ; 0x021DCA68
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ add r5, r1, #0
+ ldr r4, [r6, #0x38]
+ cmp r5, #5
+ blt _021DCA78
+ bl ErrorHandling
+_021DCA78:
+ mov r1, #2
+ mov r2, #0x45
+ ldr r7, _021DCAF0 ; =0x021DFB30
+ lsl r3, r5, #4
+ str r1, [sp]
+ lsl r2, r2, #4
+ ldr r0, [r4, r2]
+ sub r2, #0x18
+ add r5, r7, r3
+ ldr r2, [r4, r2]
+ ldr r3, [r7, r3]
+ bl MOD85_021DE840
+ mov r1, #2
+ mov r2, #0x45
+ str r1, [sp]
+ lsl r2, r2, #4
+ ldr r0, [r4, r2]
+ sub r2, #0x18
+ ldr r2, [r4, r2]
+ ldr r3, [r5, #4]
+ bl MOD85_021DE910
+ mov r1, #0x45
+ lsl r1, r1, #4
+ ldr r0, [r4, r1]
+ sub r1, #0x18
+ ldr r1, [r4, r1]
+ ldr r2, [r5, #8]
+ mov r3, #2
+ bl MOD85_021DE9E4
+ mov r1, #0x45
+ lsl r1, r1, #4
+ ldr r0, [r4, r1]
+ sub r1, #0x18
+ ldr r1, [r4, r1]
+ ldr r2, [r5, #0xc]
+ mov r3, #2
+ bl MOD85_021DEA4C
+ ldr r0, _021DCAF4 ; =MOD85_021DCB18
+ ldr r2, _021DCAF8 ; =0x00000101
+ add r1, r6, #0
+ bl FUN_0200CA60
+ cmp r0, #0
+ bne _021DCADC
+ bl ErrorHandling
+_021DCADC:
+ ldr r0, _021DCAFC ; =MOD85_021DCB44
+ ldr r2, _021DCAF8 ; =0x00000101
+ add r1, r6, #0
+ bl FUN_0200CA98
+ cmp r0, #0
+ bne _021DCAEE
+ bl ErrorHandling
+_021DCAEE:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DCAF0: .word 0x021DFB30
+_021DCAF4: .word MOD85_021DCB18
+_021DCAF8: .word 0x00000101
+_021DCAFC: .word MOD85_021DCB44
+ thumb_func_end MOD85_021DCA68
+
+ thumb_func_start MOD85_021DCB00
+MOD85_021DCB00: ; 0x021DCB00
+ push {r3, lr}
+ mov r1, #2
+ mov r2, #0x45
+ str r1, [sp]
+ lsl r2, r2, #4
+ ldr r0, [r0, r2]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl MOD85_021DEAB4
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DCB00
+
+ thumb_func_start MOD85_021DCB18
+MOD85_021DCB18: ; 0x021DCB18
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ mov r0, #0x45
+ ldr r4, [r5, #0x38]
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #2
+ bl MOD85_021DE8A8
+ mov r0, #0x45
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #2
+ bl MOD85_021DE97C
+ mov r0, #1
+ str r0, [r5, #0xc]
+ add r0, r6, #0
+ bl FUN_0200CAB4
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD85_021DCB18
+
+ thumb_func_start MOD85_021DCB44
+MOD85_021DCB44: ; 0x021DCB44
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0xc]
+ ldr r1, [r4, #0x38]
+ cmp r0, #1
+ bne _021DCB68
+ mov r0, #0x45
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ mov r1, #2
+ bl MOD85_021DE9B0
+ mov r0, #2
+ str r0, [r4, #0xc]
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_021DCB68:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DCB44
+
+ thumb_func_start MOD85_021DCB6C
+MOD85_021DCB6C: ; 0x021DCB6C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x34
+ add r5, r0, #0
+ add r4, r1, #0
+ add r1, sp, #0x28
+ mov r0, #0
+ str r0, [r1]
+ str r0, [r1, #4]
+ ldr r6, _021DCBDC ; =0x021DF85C
+ str r0, [r1, #8]
+ ldmia r6!, {r0, r1}
+ add r3, sp, #0x1c
+ stmia r3!, {r0, r1}
+ ldr r0, [r6]
+ add r1, r4, #0
+ str r0, [r3]
+ mov r0, #1
+ str r0, [sp]
+ mov r3, #2
+ str r3, [sp, #4]
+ str r3, [sp, #8]
+ str r3, [sp, #0xc]
+ str r3, [sp, #0x10]
+ str r3, [sp, #0x14]
+ mov r0, #7
+ str r0, [sp, #0x18]
+ mov r0, #0x45
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl MOD85_021DEC00
+ ldr r0, [r4, #4]
+ mov r1, #2
+ bl FUN_020200EC
+ ldr r0, [r4, #4]
+ add r1, sp, #0x28
+ bl FUN_02020054
+ ldr r0, [r4, #4]
+ add r1, sp, #0x1c
+ bl FUN_02020064
+ mov r0, #0
+ bl FUN_0201B9A0
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl FUN_02020088
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_020200BC
+ add sp, #0x34
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_021DCBDC: .word 0x021DF85C
+ thumb_func_end MOD85_021DCB6C
+
+ thumb_func_start MOD85_021DCBE0
+MOD85_021DCBE0: ; 0x021DCBE0
+ push {r4, r5, lr}
+ sub sp, #0x14
+ ldr r5, _021DCC0C ; =0x021DF6E8
+ add r3, r0, #0
+ ldmia r5!, {r0, r1}
+ add r4, sp, #8
+ add r2, r4, #0
+ stmia r4!, {r0, r1}
+ ldr r0, [r5]
+ ldr r1, _021DCC10 ; =0x021DF8AC
+ str r0, [r4]
+ str r3, [sp]
+ mov r0, #0x87
+ str r0, [sp, #4]
+ ldr r0, _021DCC14 ; =0x0000044C
+ ldr r0, [r3, r0]
+ mov r3, #0
+ bl FUN_020644E4
+ add sp, #0x14
+ pop {r4, r5, pc}
+ nop
+_021DCC0C: .word 0x021DF6E8
+_021DCC10: .word 0x021DF8AC
+_021DCC14: .word 0x0000044C
+ thumb_func_end MOD85_021DCBE0
+
+ thumb_func_start MOD85_021DCC18
+MOD85_021DCC18: ; 0x021DCC18
+ push {r4, lr}
+ add r4, r1, #0
+ bl FUN_0206475C
+ str r0, [r4, #0x10]
+ add r0, r4, #0
+ bl MOD85_021DCD50
+ mov r0, #1
+ pop {r4, pc}
+ thumb_func_end MOD85_021DCC18
+
+ thumb_func_start MOD85_021DCC2C
+MOD85_021DCC2C: ; 0x021DCC2C
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r1, #0
+ ldr r0, [r4, #0x18]
+ cmp r0, #0
+ beq _021DCC54
+ mov r1, #3
+ str r1, [sp]
+ mov r0, #0x45
+ ldr r2, [r4, #0x10]
+ lsl r0, r0, #4
+ ldr r0, [r2, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl MOD85_021DEAB4
+ add r4, #0x14
+ add r0, r4, #0
+ bl MOD85_021DECA0
+_021DCC54:
+ add sp, #4
+ pop {r3, r4, pc}
+ thumb_func_end MOD85_021DCC2C
+
+ thumb_func_start MOD85_021DCC58
+MOD85_021DCC58: ; 0x021DCC58
+ push {r4, lr}
+ sub sp, #0x28
+ add r4, r1, #0
+ ldr r1, [r4]
+ cmp r1, #3
+ bhi _021DCCF4
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021DCC70: ; jump table
+ .short _021DCC78 - _021DCC70 - 2 ; case 0
+ .short _021DCCBA - _021DCC70 - 2 ; case 1
+ .short _021DCCD2 - _021DCC70 - 2 ; case 2
+ .short _021DCCF4 - _021DCC70 - 2 ; case 3
+_021DCC78:
+ ldr r1, [r4, #0xc]
+ cmp r1, #2
+ bne _021DCCF4
+ add r1, sp, #0x1c
+ bl FUN_0206477C
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ mov r3, #2
+ str r3, [sp, #0x14]
+ mov r0, #5
+ str r0, [sp, #0x18]
+ mov r0, #0x45
+ ldr r1, [r4, #0x10]
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ add r1, r4, #0
+ add r1, #0x14
+ add r2, sp, #0x1c
+ bl MOD85_021DEC00
+ ldr r0, [r4, #0x18]
+ mov r1, #1
+ bl FUN_020200BC
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_021DCCBA:
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ cmp r0, #0xf
+ blo _021DCCF4
+ ldr r0, [r4]
+ add sp, #0x28
+ add r0, r0, #1
+ str r0, [r4]
+ mov r0, #1
+ str r0, [r4, #4]
+ pop {r4, pc}
+_021DCCD2:
+ mov r1, #3
+ str r1, [sp]
+ mov r0, #0x45
+ ldr r2, [r4, #0x10]
+ lsl r0, r0, #4
+ ldr r0, [r2, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl MOD85_021DEAB4
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD85_021DECA0
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_021DCCF4:
+ add sp, #0x28
+ pop {r4, pc}
+ thumb_func_end MOD85_021DCC58
+
+ thumb_func_start MOD85_021DCCF8
+MOD85_021DCCF8: ; 0x021DCCF8
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD85_021DCCF8
+
+ thumb_func_start MOD85_021DCCFC
+MOD85_021DCCFC: ; 0x021DCCFC
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ mov r0, #0x45
+ ldr r4, [r5, #0x10]
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #3
+ bl MOD85_021DE8A8
+ mov r0, #0x45
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #3
+ bl MOD85_021DE97C
+ mov r0, #1
+ str r0, [r5, #0xc]
+ add r0, r6, #0
+ bl FUN_0200CAB4
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD85_021DCCFC
+
+ thumb_func_start MOD85_021DCD28
+MOD85_021DCD28: ; 0x021DCD28
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0xc]
+ ldr r1, [r4, #0x10]
+ cmp r0, #1
+ bne _021DCD4C
+ mov r0, #0x45
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ mov r1, #3
+ bl MOD85_021DE9B0
+ mov r0, #2
+ str r0, [r4, #0xc]
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_021DCD4C:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DCD28
+
+ thumb_func_start MOD85_021DCD50
+MOD85_021DCD50: ; 0x021DCD50
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r2, #0x45
+ ldr r4, [r5, #0x10]
+ mov r0, #3
+ lsl r2, r2, #4
+ str r0, [sp]
+ ldr r0, [r4, r2]
+ sub r2, #0x18
+ ldr r2, [r4, r2]
+ mov r1, #2
+ mov r3, #0x2c
+ bl MOD85_021DE840
+ mov r2, #0x45
+ mov r0, #3
+ lsl r2, r2, #4
+ str r0, [sp]
+ ldr r0, [r4, r2]
+ sub r2, #0x18
+ ldr r2, [r4, r2]
+ mov r1, #2
+ mov r3, #0x2f
+ bl MOD85_021DE910
+ mov r1, #0x45
+ lsl r1, r1, #4
+ ldr r0, [r4, r1]
+ sub r1, #0x18
+ ldr r1, [r4, r1]
+ mov r2, #0x2d
+ mov r3, #3
+ bl MOD85_021DE9E4
+ mov r1, #0x45
+ lsl r1, r1, #4
+ ldr r0, [r4, r1]
+ sub r1, #0x18
+ ldr r1, [r4, r1]
+ mov r2, #0x2e
+ mov r3, #3
+ bl MOD85_021DEA4C
+ ldr r0, _021DCDCC ; =MOD85_021DCCFC
+ ldr r2, _021DCDD0 ; =0x00000101
+ add r1, r5, #0
+ bl FUN_0200CA60
+ cmp r0, #0
+ bne _021DCDB8
+ bl ErrorHandling
+_021DCDB8:
+ ldr r0, _021DCDD4 ; =MOD85_021DCD28
+ ldr r2, _021DCDD0 ; =0x00000101
+ add r1, r5, #0
+ bl FUN_0200CA98
+ cmp r0, #0
+ bne _021DCDCA
+ bl ErrorHandling
+_021DCDCA:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DCDCC: .word MOD85_021DCCFC
+_021DCDD0: .word 0x00000101
+_021DCDD4: .word MOD85_021DCD28
+ thumb_func_end MOD85_021DCD50
+
+ thumb_func_start MOD85_021DCDD8
+MOD85_021DCDD8: ; 0x021DCDD8
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ mov r0, #0x45
+ ldr r4, [r5, #0x20]
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #4
+ bl MOD85_021DE8A8
+ mov r0, #0x45
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #4
+ bl MOD85_021DE97C
+ mov r0, #1
+ str r0, [r5, #0x10]
+ add r0, r6, #0
+ bl FUN_0200CAB4
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD85_021DCDD8
+
+ thumb_func_start MOD85_021DCE04
+MOD85_021DCE04: ; 0x021DCE04
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0x10]
+ ldr r1, [r4, #0x20]
+ cmp r0, #1
+ bne _021DCE28
+ mov r0, #0x45
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ mov r1, #4
+ bl MOD85_021DE9B0
+ mov r0, #2
+ str r0, [r4, #0x10]
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_021DCE28:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DCE04
+
+ thumb_func_start MOD85_021DCE2C
+MOD85_021DCE2C: ; 0x021DCE2C
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ ldr r0, [r6, #0x18]
+ mov r2, #0x45
+ lsl r3, r0, #4
+ ldr r7, _021DCEB0 ; =0x021DFB00
+ ldr r4, [r6, #0x20]
+ mov r0, #4
+ lsl r2, r2, #4
+ str r0, [sp]
+ ldr r0, [r4, r2]
+ sub r2, #0x18
+ add r5, r7, r3
+ ldr r2, [r4, r2]
+ ldr r3, [r7, r3]
+ mov r1, #2
+ bl MOD85_021DE840
+ mov r2, #0x45
+ mov r0, #4
+ str r0, [sp]
+ lsl r2, r2, #4
+ ldr r0, [r4, r2]
+ sub r2, #0x18
+ ldr r2, [r4, r2]
+ ldr r3, [r5, #4]
+ mov r1, #2
+ bl MOD85_021DE910
+ mov r1, #0x45
+ lsl r1, r1, #4
+ ldr r0, [r4, r1]
+ sub r1, #0x18
+ ldr r1, [r4, r1]
+ ldr r2, [r5, #8]
+ mov r3, #4
+ bl MOD85_021DE9E4
+ mov r1, #0x45
+ lsl r1, r1, #4
+ ldr r0, [r4, r1]
+ sub r1, #0x18
+ ldr r1, [r4, r1]
+ ldr r2, [r5, #0xc]
+ mov r3, #4
+ bl MOD85_021DEA4C
+ ldr r0, _021DCEB4 ; =MOD85_021DCDD8
+ ldr r2, _021DCEB8 ; =0x00000101
+ add r1, r6, #0
+ bl FUN_0200CA60
+ cmp r0, #0
+ bne _021DCE9C
+ bl ErrorHandling
+_021DCE9C:
+ ldr r0, _021DCEBC ; =MOD85_021DCE04
+ ldr r2, _021DCEB8 ; =0x00000101
+ add r1, r6, #0
+ bl FUN_0200CA98
+ cmp r0, #0
+ bne _021DCEAE
+ bl ErrorHandling
+_021DCEAE:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DCEB0: .word 0x021DFB00
+_021DCEB4: .word MOD85_021DCDD8
+_021DCEB8: .word 0x00000101
+_021DCEBC: .word MOD85_021DCE04
+ thumb_func_end MOD85_021DCE2C
+
+ thumb_func_start MOD85_021DCEC0
+MOD85_021DCEC0: ; 0x021DCEC0
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x14
+ ldr r6, _021DCEEC ; =0x021DF838
+ add r5, sp, #8
+ add r4, r0, #0
+ add r3, r1, #0
+ ldmia r6!, {r0, r1}
+ add r2, r5, #0
+ stmia r5!, {r0, r1}
+ ldr r0, [r6]
+ ldr r1, _021DCEF0 ; =0x021DF8C0
+ str r0, [r5]
+ str r4, [sp]
+ mov r0, #0x89
+ str r0, [sp, #4]
+ ldr r0, _021DCEF4 ; =0x0000044C
+ ldr r0, [r4, r0]
+ bl FUN_020644E4
+ add sp, #0x14
+ pop {r3, r4, r5, r6, pc}
+ nop
+_021DCEEC: .word 0x021DF838
+_021DCEF0: .word 0x021DF8C0
+_021DCEF4: .word 0x0000044C
+ thumb_func_end MOD85_021DCEC0
+
+ thumb_func_start MOD85_021DCEF8
+MOD85_021DCEF8: ; 0x021DCEF8
+ push {r4, lr}
+ add r4, r1, #0
+ bl FUN_02064738
+ str r4, [r0, #4]
+ mov r1, #0
+ str r1, [r0, #8]
+ str r1, [r0, #0xc]
+ str r1, [r0, #0x14]
+ pop {r4, pc}
+ thumb_func_end MOD85_021DCEF8
+
+ thumb_func_start MOD85_021DCF0C
+MOD85_021DCF0C: ; 0x021DCF0C
+ push {r3, lr}
+ bl FUN_02064738
+ ldr r0, [r0, #0xc]
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DCF0C
+
+ thumb_func_start MOD85_021DCF18
+MOD85_021DCF18: ; 0x021DCF18
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_0206475C
+ str r0, [r4, #0x20]
+ add r0, r5, #0
+ bl FUN_02064754
+ str r0, [r4, #0x18]
+ add r0, r4, #0
+ bl MOD85_021DCE2C
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DCF18
+
+ thumb_func_start MOD85_021DCF38
+MOD85_021DCF38: ; 0x021DCF38
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r1, #0
+ ldr r0, [r4, #0x28]
+ cmp r0, #0
+ beq _021DCF60
+ mov r1, #4
+ str r1, [sp]
+ mov r0, #0x45
+ ldr r2, [r4, #0x20]
+ lsl r0, r0, #4
+ ldr r0, [r2, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl MOD85_021DEAB4
+ add r4, #0x24
+ add r0, r4, #0
+ bl MOD85_021DECA0
+_021DCF60:
+ add sp, #4
+ pop {r3, r4, pc}
+ thumb_func_end MOD85_021DCF38
+
+ thumb_func_start MOD85_021DCF64
+MOD85_021DCF64: ; 0x021DCF64
+ push {r3, r4, r5, lr}
+ ldr r4, _021DCF80 ; =0x021DFA8C
+ add r5, r1, #0
+_021DCF6A:
+ ldr r1, [r5, #4]
+ add r0, r5, #0
+ lsl r1, r1, #2
+ ldr r2, [r4, r1]
+ ldr r1, [r5, #8]
+ lsl r1, r1, #2
+ ldr r1, [r2, r1]
+ blx r1
+ cmp r0, #1
+ beq _021DCF6A
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DCF80: .word 0x021DFA8C
+ thumb_func_end MOD85_021DCF64
+
+ thumb_func_start MOD85_021DCF84
+MOD85_021DCF84: ; 0x021DCF84
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD85_021DCF84
+
+ thumb_func_start MOD85_021DCF88
+MOD85_021DCF88: ; 0x021DCF88
+ push {r4, r5, lr}
+ sub sp, #0x34
+ add r4, r0, #0
+ ldr r0, [r4, #0x10]
+ cmp r0, #2
+ bne _021DCFFA
+ ldr r5, _021DD000 ; =0x021DF6D0
+ add r3, sp, #0x28
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ add r1, sp, #0x1c
+ str r0, [r3]
+ mov r0, #0
+ str r0, [r1]
+ str r0, [r1, #4]
+ str r0, [r1, #8]
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #4
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ mov r3, #2
+ str r3, [sp, #0x14]
+ mov r0, #6
+ str r0, [sp, #0x18]
+ mov r0, #0x45
+ ldr r1, [r4, #0x20]
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ add r1, r4, #0
+ add r1, #0x24
+ bl MOD85_021DEC00
+ ldr r0, [r4, #0x28]
+ mov r1, #2
+ bl FUN_020200EC
+ ldr r0, [r4, #0x28]
+ add r1, sp, #0x1c
+ bl FUN_02020054
+ mov r0, #0
+ bl FUN_0201B9A0
+ add r1, r0, #0
+ ldr r0, [r4, #0x28]
+ bl FUN_02020088
+ mov r0, #1
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+_021DCFFA:
+ mov r0, #0
+ add sp, #0x34
+ pop {r4, r5, pc}
+ .align 2, 0
+_021DD000: .word 0x021DF6D0
+ thumb_func_end MOD85_021DCF88
+
+ thumb_func_start MOD85_021DD004
+MOD85_021DD004: ; 0x021DD004
+ mov r0, #0
+ bx lr
+ thumb_func_end MOD85_021DD004
+
+ thumb_func_start MOD85_021DD008
+MOD85_021DD008: ; 0x021DD008
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ ldr r3, _021DD05C ; =0x021DF7FC
+ add r4, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0xc
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ ldr r5, _021DD060 ; =0x021DF7F0
+ str r0, [r2]
+ add r3, sp, #0
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ add r1, r2, #0
+ str r0, [r3]
+ ldr r0, [r4, #0x28]
+ bl FUN_02020064
+ ldr r0, [r4, #0x28]
+ add r1, sp, #0xc
+ bl FUN_02020044
+ ldr r0, [r4, #0x28]
+ mov r1, #1
+ bl FUN_02020130
+ ldr r0, [r4, #0x28]
+ mov r1, #0
+ bl FUN_020200D8
+ ldr r0, [r4, #0x28]
+ mov r1, #0
+ bl FUN_020200BC
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ mov r0, #0
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DD05C: .word 0x021DF7FC
+_021DD060: .word 0x021DF7F0
+ thumb_func_end MOD85_021DD008
+
+ thumb_func_start MOD85_021DD064
+MOD85_021DD064: ; 0x021DD064
+ push {r4, lr}
+ sub sp, #0x18
+ add r4, r0, #0
+ ldr r0, [r4, #0x28]
+ add r1, sp, #0xc
+ bl MOD85_021DECBC
+ ldr r0, [r4, #0x28]
+ add r1, sp, #0
+ bl MOD85_021DECD0
+ ldr r0, [sp]
+ add r0, #0xc0
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r0, #0xc0
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x14]
+ add r0, r0, #1
+ str r0, [r4, #0x14]
+ cmp r0, #0x10
+ blt _021DD0AE
+ mov r0, #5
+ lsl r0, r0, #0x12
+ str r0, [sp, #0x10]
+ mov r0, #1
+ lsl r0, r0, #0xc
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [r4, #0x14]
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ mov r0, #0x23
+ bl FUN_02005578
+_021DD0AE:
+ ldr r0, [r4, #0x28]
+ add r1, sp, #0
+ bl FUN_02020064
+ ldr r0, [r4, #0x28]
+ add r1, sp, #0xc
+ bl FUN_02020044
+ mov r0, #0
+ add sp, #0x18
+ pop {r4, pc}
+ thumb_func_end MOD85_021DD064
+
+ thumb_func_start MOD85_021DD0C4
+MOD85_021DD0C4: ; 0x021DD0C4
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #1
+ ldr r0, [r4, #0x28]
+ lsl r1, r1, #0xc
+ bl FUN_020201E4
+ ldr r0, [r4, #0x14]
+ add r0, r0, #1
+ str r0, [r4, #0x14]
+ cmp r0, #9
+ blt _021DD0EA
+ mov r0, #0
+ str r0, [r4, #0x14]
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [r4, #0xc]
+_021DD0EA:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DD0C4
+
+ thumb_func_start MOD85_021DD0F0
+MOD85_021DD0F0: ; 0x021DD0F0
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ ldr r3, _021DD14C ; =0x021DF7D8
+ add r4, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0xc
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ ldr r5, _021DD150 ; =0x021DF7CC
+ str r0, [r2]
+ add r3, sp, #0
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ add r1, r2, #0
+ str r0, [r3]
+ ldr r0, [r4, #0x28]
+ bl FUN_02020064
+ ldr r0, [r4, #0x28]
+ add r1, sp, #0xc
+ bl FUN_02020044
+ ldr r0, [r4, #0x28]
+ mov r1, #1
+ bl FUN_02020130
+ ldr r0, [r4, #0x28]
+ mov r1, #0
+ bl FUN_020200D8
+ ldr r0, [r4, #0x28]
+ mov r1, #0
+ bl FUN_020200BC
+ ldr r0, _021DD154 ; =0x000006D1
+ bl FUN_020054C8
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ mov r0, #0
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+ nop
+_021DD14C: .word 0x021DF7D8
+_021DD150: .word 0x021DF7CC
+_021DD154: .word 0x000006D1
+ thumb_func_end MOD85_021DD0F0
+
+ thumb_func_start MOD85_021DD158
+MOD85_021DD158: ; 0x021DD158
+ push {r4, lr}
+ sub sp, #0x18
+ add r4, r0, #0
+ ldr r0, [r4, #0x28]
+ add r1, sp, #0xc
+ bl MOD85_021DECBC
+ ldr r0, [r4, #0x28]
+ add r1, sp, #0
+ bl MOD85_021DECD0
+ mov r0, #6
+ ldr r1, [sp]
+ lsl r0, r0, #6
+ sub r1, r1, r0
+ str r1, [sp]
+ ldr r1, [sp, #4]
+ sub r0, r1, r0
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x14]
+ add r0, r0, #1
+ str r0, [r4, #0x14]
+ cmp r0, #8
+ blt _021DD1A4
+ mov r0, #0x1d
+ lsl r0, r0, #0x10
+ str r0, [sp, #0x10]
+ mov r0, #1
+ lsl r0, r0, #0xc
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [r4, #0x14]
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [r4, #0xc]
+_021DD1A4:
+ ldr r0, [r4, #0x28]
+ add r1, sp, #0
+ bl FUN_02020064
+ ldr r0, [r4, #0x28]
+ add r1, sp, #0xc
+ bl FUN_02020044
+ mov r0, #0
+ add sp, #0x18
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DD158
+
+ thumb_func_start MOD85_021DD1BC
+MOD85_021DD1BC: ; 0x021DD1BC
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ ldr r3, _021DD21C ; =0x021DF7B4
+ add r4, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0xc
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ ldr r5, _021DD220 ; =0x021DF7A8
+ str r0, [r2]
+ add r3, sp, #0
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ add r1, r2, #0
+ str r0, [r3]
+ ldr r0, [r4, #0x28]
+ bl FUN_02020064
+ ldr r0, [r4, #0x28]
+ add r1, sp, #0xc
+ bl FUN_02020044
+ ldr r0, [r4, #0x28]
+ mov r1, #0
+ bl FUN_02020130
+ ldr r0, [r4, #0x28]
+ mov r1, #0
+ bl FUN_020200BC
+ ldr r0, [r4, #0x28]
+ mov r1, #0
+ bl FUN_020200D8
+ ldr r0, [r4, #0x28]
+ bl FUN_02020198
+ mov r0, #1
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ mov r0, #0
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+ nop
+_021DD21C: .word 0x021DF7B4
+_021DD220: .word 0x021DF7A8
+ thumb_func_end MOD85_021DD1BC
+
+ thumb_func_start MOD85_021DD224
+MOD85_021DD224: ; 0x021DD224
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ ldr r3, _021DD290 ; =0x021DF760
+ add r4, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0xc
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ ldr r5, _021DD294 ; =0x021DF6DC
+ str r0, [r2]
+ add r3, sp, #0
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ add r1, r2, #0
+ str r0, [r3]
+ ldr r0, [r4, #0x28]
+ bl FUN_02020064
+ ldr r0, [r4, #0x28]
+ add r1, sp, #0xc
+ bl FUN_02020044
+ ldr r0, [r4, #0x28]
+ mov r1, #1
+ bl FUN_020200BC
+ mov r1, #2
+ ldr r0, [r4, #0x28]
+ lsl r1, r1, #0xa
+ bl FUN_020200D8
+ ldr r0, [r4, #0x28]
+ bl FUN_020201DC
+ cmp r0, #2
+ beq _021DD27E
+ ldr r0, [r4, #0x28]
+ mov r1, #2
+ bl FUN_02020130
+ ldr r0, [r4, #0x28]
+ bl FUN_02020198
+_021DD27E:
+ mov r0, #1
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ mov r0, #0
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+ nop
+_021DD290: .word 0x021DF760
+_021DD294: .word 0x021DF6DC
+ thumb_func_end MOD85_021DD224
+
+ thumb_func_start MOD85_021DD298
+MOD85_021DD298: ; 0x021DD298
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ ldr r3, _021DD2F8 ; =0x021DF67C
+ add r4, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0xc
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ ldr r5, _021DD2FC ; =0x021DF850
+ str r0, [r2]
+ add r3, sp, #0
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ add r1, r2, #0
+ str r0, [r3]
+ ldr r0, [r4, #0x28]
+ bl FUN_02020064
+ ldr r0, [r4, #0x28]
+ add r1, sp, #0xc
+ bl FUN_02020044
+ ldr r0, [r4, #0x28]
+ mov r1, #5
+ bl FUN_02020130
+ ldr r0, [r4, #0x28]
+ mov r1, #1
+ bl FUN_020200BC
+ mov r1, #1
+ ldr r0, [r4, #0x28]
+ lsl r1, r1, #0xc
+ bl FUN_020200D8
+ ldr r0, [r4, #0x28]
+ bl FUN_02020198
+ mov r0, #1
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ mov r0, #0
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DD2F8: .word 0x021DF67C
+_021DD2FC: .word 0x021DF850
+ thumb_func_end MOD85_021DD298
+
+ thumb_func_start MOD85_021DD300
+MOD85_021DD300: ; 0x021DD300
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ ldr r3, _021DD360 ; =0x021DF688
+ add r4, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0xc
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ ldr r5, _021DD364 ; =0x021DF73C
+ str r0, [r2]
+ add r3, sp, #0
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ add r1, r2, #0
+ str r0, [r3]
+ ldr r0, [r4, #0x28]
+ bl FUN_02020064
+ ldr r0, [r4, #0x28]
+ add r1, sp, #0xc
+ bl FUN_02020044
+ ldr r0, [r4, #0x28]
+ mov r1, #4
+ bl FUN_02020130
+ ldr r0, [r4, #0x28]
+ mov r1, #1
+ bl FUN_020200BC
+ mov r1, #1
+ ldr r0, [r4, #0x28]
+ lsl r1, r1, #0xc
+ bl FUN_020200D8
+ ldr r0, [r4, #0x28]
+ bl FUN_02020198
+ mov r0, #1
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ mov r0, #0
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DD360: .word 0x021DF688
+_021DD364: .word 0x021DF73C
+ thumb_func_end MOD85_021DD300
+
+ thumb_func_start MOD85_021DD368
+MOD85_021DD368: ; 0x021DD368
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ ldr r3, _021DD3C8 ; =0x021DF718
+ add r4, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0xc
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ ldr r5, _021DD3CC ; =0x021DF724
+ str r0, [r2]
+ add r3, sp, #0
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ add r1, r2, #0
+ str r0, [r3]
+ ldr r0, [r4, #0x28]
+ bl FUN_02020064
+ ldr r0, [r4, #0x28]
+ add r1, sp, #0xc
+ bl FUN_02020044
+ ldr r0, [r4, #0x28]
+ mov r1, #3
+ bl FUN_02020130
+ ldr r0, [r4, #0x28]
+ mov r1, #1
+ bl FUN_020200BC
+ mov r1, #1
+ ldr r0, [r4, #0x28]
+ lsl r1, r1, #0xc
+ bl FUN_020200D8
+ ldr r0, [r4, #0x28]
+ bl FUN_02020198
+ mov r0, #1
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ mov r0, #0
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DD3C8: .word 0x021DF718
+_021DD3CC: .word 0x021DF724
+ thumb_func_end MOD85_021DD368
+
+ thumb_func_start MOD85_021DD3D0
+MOD85_021DD3D0: ; 0x021DD3D0
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ ldr r3, _021DD434 ; =0x021DF778
+ add r4, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0xc
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ ldr r5, _021DD438 ; =0x021DF604
+ str r0, [r2]
+ add r3, sp, #0
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ add r1, r2, #0
+ str r0, [r3]
+ ldr r0, [r4, #0x28]
+ bl FUN_02020064
+ ldr r0, [r4, #0x28]
+ add r1, sp, #0xc
+ bl FUN_02020044
+ ldr r0, [r4, #0x28]
+ mov r1, #0
+ bl FUN_020200BC
+ mov r1, #1
+ ldr r0, [r4, #0x28]
+ lsl r1, r1, #0xc
+ bl FUN_020200D8
+ ldr r0, [r4, #0x28]
+ mov r1, #5
+ bl FUN_02020130
+ ldr r0, [r4, #0x28]
+ bl FUN_02020198
+ mov r0, #0
+ str r0, [r4, #0x14]
+ mov r1, #1
+ str r1, [r4, #0xc]
+ ldr r1, [r4, #8]
+ add r1, r1, #1
+ str r1, [r4, #8]
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+ nop
+_021DD434: .word 0x021DF778
+_021DD438: .word 0x021DF604
+ thumb_func_end MOD85_021DD3D0
+
+ thumb_func_start MOD85_021DD43C
+MOD85_021DD43C: ; 0x021DD43C
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #1
+ ldr r0, [r4, #0x28]
+ lsl r1, r1, #0xc
+ bl FUN_020201E4
+ ldr r0, [r4, #0x28]
+ bl FUN_02020388
+ cmp r0, #0
+ bne _021DD468
+ ldr r0, [r4, #0x14]
+ add r0, r0, #1
+ str r0, [r4, #0x14]
+ cmp r0, #8
+ blt _021DD468
+ mov r0, #0
+ str r0, [r4, #0x14]
+ ldr r0, [r4, #0x28]
+ bl FUN_02020198
+_021DD468:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD85_021DD43C
+
+ thumb_func_start MOD85_021DD46C
+MOD85_021DD46C: ; 0x021DD46C
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ mov r0, #0x45
+ ldr r4, [r5, #0x2c]
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #5
+ bl MOD85_021DE8A8
+ mov r0, #0x45
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #5
+ bl MOD85_021DE97C
+ mov r0, #1
+ str r0, [r5, #0x10]
+ add r0, r6, #0
+ bl FUN_0200CAB4
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD85_021DD46C
+
+ thumb_func_start MOD85_021DD498
+MOD85_021DD498: ; 0x021DD498
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldr r1, [r4, #0x2c]
+ add r5, r0, #0
+ mov r0, #1
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #0x10]
+ cmp r0, #0
+ beq _021DD4C0
+ mov r0, #0x45
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ mov r1, #5
+ bl MOD85_021DE9B0
+ mov r0, #2
+ str r0, [r4, #0x10]
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_021DD4C0:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DD498
+
+ thumb_func_start MOD85_021DD4C4
+MOD85_021DD4C4: ; 0x021DD4C4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r2, #0x45
+ ldr r4, [r5, #0x2c]
+ mov r0, #5
+ lsl r2, r2, #4
+ str r0, [sp]
+ ldr r0, [r4, r2]
+ sub r2, #0x18
+ ldr r2, [r4, r2]
+ mov r1, #2
+ mov r3, #0x38
+ bl MOD85_021DE840
+ mov r2, #0x45
+ mov r0, #5
+ lsl r2, r2, #4
+ str r0, [sp]
+ ldr r0, [r4, r2]
+ sub r2, #0x18
+ ldr r2, [r4, r2]
+ mov r1, #2
+ mov r3, #0x3b
+ bl MOD85_021DE910
+ mov r1, #0x45
+ lsl r1, r1, #4
+ ldr r0, [r4, r1]
+ sub r1, #0x18
+ ldr r1, [r4, r1]
+ mov r2, #0x39
+ mov r3, #5
+ bl MOD85_021DE9E4
+ mov r1, #0x45
+ lsl r1, r1, #4
+ ldr r0, [r4, r1]
+ sub r1, #0x18
+ ldr r1, [r4, r1]
+ mov r2, #0x3a
+ mov r3, #5
+ bl MOD85_021DEA4C
+ ldr r0, _021DD540 ; =MOD85_021DD46C
+ ldr r2, _021DD544 ; =0x00000101
+ add r1, r5, #0
+ bl FUN_0200CA60
+ cmp r0, #0
+ bne _021DD52C
+ bl ErrorHandling
+_021DD52C:
+ ldr r0, _021DD548 ; =MOD85_021DD498
+ ldr r2, _021DD544 ; =0x00000101
+ add r1, r5, #0
+ bl FUN_0200CA98
+ cmp r0, #0
+ bne _021DD53E
+ bl ErrorHandling
+_021DD53E:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DD540: .word MOD85_021DD46C
+_021DD544: .word 0x00000101
+_021DD548: .word MOD85_021DD498
+ thumb_func_end MOD85_021DD4C4
+
+ thumb_func_start MOD85_021DD54C
+MOD85_021DD54C: ; 0x021DD54C
+ push {lr}
+ sub sp, #0x14
+ add r2, sp, #8
+ mov r3, #0
+ str r3, [r2]
+ str r3, [r2, #4]
+ str r3, [r2, #8]
+ str r0, [sp]
+ mov r1, #0x88
+ str r1, [sp, #4]
+ ldr r1, _021DD570 ; =0x0000044C
+ ldr r0, [r0, r1]
+ ldr r1, _021DD574 ; =0x021DF8D4
+ bl FUN_020644E4
+ add sp, #0x14
+ pop {pc}
+ nop
+_021DD570: .word 0x0000044C
+_021DD574: .word 0x021DF8D4
+ thumb_func_end MOD85_021DD54C
+
+ thumb_func_start MOD85_021DD578
+MOD85_021DD578: ; 0x021DD578
+ push {r3, lr}
+ bl FUN_02064738
+ ldr r0, [r0, #4]
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DD578
+
+ thumb_func_start MOD85_021DD584
+MOD85_021DD584: ; 0x021DD584
+ push {r4, lr}
+ add r4, r1, #0
+ bl FUN_0206475C
+ str r0, [r4, #0x2c]
+ add r0, r4, #0
+ bl MOD85_021DD4C4
+ mov r0, #1
+ pop {r4, pc}
+ thumb_func_end MOD85_021DD584
+
+ thumb_func_start MOD85_021DD598
+MOD85_021DD598: ; 0x021DD598
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r1, #0
+ ldr r0, [r4, #0x34]
+ cmp r0, #0
+ beq _021DD5CE
+ mov r1, #5
+ str r1, [sp]
+ mov r0, #0x45
+ ldr r2, [r4, #0x2c]
+ lsl r0, r0, #4
+ ldr r0, [r2, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl MOD85_021DEAB4
+ add r0, r4, #0
+ add r0, #0x30
+ bl MOD85_021DECA0
+ ldr r0, [r4, #0x40]
+ cmp r0, #0
+ beq _021DD5CE
+ add r4, #0x3c
+ add r0, r4, #0
+ bl MOD85_021DECA0
+_021DD5CE:
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DD598
+
+ thumb_func_start MOD85_021DD5D4
+MOD85_021DD5D4: ; 0x021DD5D4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r5, r1, #0
+ add r1, sp, #0xc
+ add r7, r0, #0
+ add r4, r2, #0
+ add r6, r3, #0
+ bl FUN_0206477C
+ ldr r0, [sp, #0xc]
+ ldr r1, [sp, #0x10]
+ add r0, r0, r6
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x30]
+ add r0, r1, r0
+ str r0, [sp, #0x10]
+ add r0, r7, #0
+ add r1, sp, #0xc
+ bl FUN_0206476C
+ ldr r0, [sp, #0x38]
+ cmp r0, #0
+ bne _021DD60A
+ ldr r0, [sp, #0xc]
+ add r0, r5, r0
+ str r0, [sp]
+ b _021DD610
+_021DD60A:
+ ldr r0, [sp, #0xc]
+ sub r0, r5, r0
+ str r0, [sp]
+_021DD610:
+ ldr r0, [sp, #0x10]
+ add r1, sp, #0
+ sub r0, r4, r0
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x34]
+ bl FUN_02020044
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DD5D4
+
+ thumb_func_start MOD85_021DD624
+MOD85_021DD624: ; 0x021DD624
+ push {r4, r5, r6, lr}
+ sub sp, #0x40
+ add r4, r1, #0
+ ldr r1, [r4]
+ add r6, r0, #0
+ cmp r1, #0xa
+ bls _021DD634
+ b _021DD96C
+_021DD634:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021DD640: ; jump table
+ .short _021DD656 - _021DD640 - 2 ; case 0
+ .short _021DD6C8 - _021DD640 - 2 ; case 1
+ .short _021DD750 - _021DD640 - 2 ; case 2
+ .short _021DD764 - _021DD640 - 2 ; case 3
+ .short _021DD796 - _021DD640 - 2 ; case 4
+ .short _021DD7C8 - _021DD640 - 2 ; case 5
+ .short _021DD7FA - _021DD640 - 2 ; case 6
+ .short _021DD842 - _021DD640 - 2 ; case 7
+ .short _021DD858 - _021DD640 - 2 ; case 8
+ .short _021DD8A4 - _021DD640 - 2 ; case 9
+ .short _021DD904 - _021DD640 - 2 ; case 10
+_021DD656:
+ ldr r0, [r4, #0x10]
+ cmp r0, #2
+ beq _021DD65E
+ b _021DD96C
+_021DD65E:
+ ldr r5, _021DD970 ; =0x021DF82C
+ add r3, sp, #0x34
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ str r0, [r3]
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #5
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ mov r3, #2
+ str r3, [sp, #0x14]
+ mov r0, #4
+ str r0, [sp, #0x18]
+ mov r0, #0x45
+ ldr r1, [r4, #0x2c]
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ add r1, r4, #0
+ add r1, #0x30
+ bl MOD85_021DEC00
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #5
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ mov r3, #2
+ str r3, [sp, #0x14]
+ mov r0, #4
+ str r0, [sp, #0x18]
+ mov r0, #0x45
+ ldr r1, [r4, #0x2c]
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ add r1, r4, #0
+ add r1, #0x3c
+ add r2, sp, #0x34
+ bl MOD85_021DEC00
+ ldr r0, [r4, #0x40]
+ mov r1, #1
+ bl FUN_02020100
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_021DD6C8:
+ add r0, r6, #0
+ add r1, sp, #0x28
+ mov r5, #0
+ bl FUN_0206477C
+ mov r1, #2
+ ldr r2, [sp, #0x2c]
+ lsl r1, r1, #0xe
+ ldr r0, [sp, #0x28]
+ add r2, r2, r1
+ add r0, r0, r1
+ str r2, [sp, #0x2c]
+ lsl r2, r1, #3
+ str r0, [sp, #0x28]
+ cmp r0, r2
+ blt _021DD6EE
+ add r0, r2, #0
+ str r0, [sp, #0x28]
+ add r5, r5, #1
+_021DD6EE:
+ mov r0, #0xe
+ ldr r1, [sp, #0x2c]
+ lsl r0, r0, #0xe
+ cmp r1, r0
+ blt _021DD700
+ mov r0, #1
+ lsl r0, r0, #0x12
+ str r0, [sp, #0x2c]
+ add r5, r5, #1
+_021DD700:
+ add r0, r6, #0
+ add r1, sp, #0x28
+ bl FUN_0206476C
+ mov r0, #2
+ ldr r1, [sp, #0x28]
+ lsl r0, r0, #0x10
+ sub r0, r1, r0
+ str r0, [sp, #0x1c]
+ mov r0, #0x69
+ ldr r1, [sp, #0x2c]
+ lsl r0, r0, #0xe
+ sub r0, r0, r1
+ str r0, [sp, #0x20]
+ ldr r0, [r4, #0x34]
+ add r1, sp, #0x1c
+ bl FUN_02020044
+ mov r0, #0x12
+ ldr r1, [sp, #0x28]
+ lsl r0, r0, #0x10
+ sub r0, r0, r1
+ str r0, [sp, #0x1c]
+ mov r0, #0x69
+ ldr r1, [sp, #0x2c]
+ lsl r0, r0, #0xe
+ sub r0, r0, r1
+ str r0, [sp, #0x20]
+ ldr r0, [r4, #0x40]
+ add r1, sp, #0x1c
+ bl FUN_02020044
+ cmp r5, #2
+ beq _021DD746
+ b _021DD96C
+_021DD746:
+ ldr r0, [r4]
+ add sp, #0x40
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_021DD750:
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ cmp r0, #8
+ blo _021DD84C
+ mov r0, #0
+ str r0, [r4, #8]
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_021DD764:
+ ldr r3, _021DD974 ; =0xFFFFC000
+ mov r2, #0x69
+ str r3, [sp]
+ ldr r0, [r4, #0x34]
+ lsl r1, r3, #3
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ add r0, r6, #0
+ lsl r2, r2, #0xe
+ asr r3, r3, #1
+ bl MOD85_021DD5D4
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ cmp r0, #4
+ blo _021DD84C
+ mov r0, #0
+ str r0, [r4, #8]
+ ldr r0, [r4]
+ add sp, #0x40
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_021DD796:
+ mov r3, #1
+ lsl r3, r3, #0xe
+ str r3, [sp]
+ ldr r1, [r4, #0x34]
+ mov r2, #0x69
+ str r1, [sp, #4]
+ mov r1, #0
+ str r1, [sp, #8]
+ ldr r1, _021DD978 ; =0xFFFE0000
+ lsl r2, r2, #0xe
+ lsr r3, r3, #1
+ bl MOD85_021DD5D4
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ cmp r0, #4
+ blo _021DD84C
+ mov r0, #0
+ str r0, [r4, #8]
+ ldr r0, [r4]
+ add sp, #0x40
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_021DD7C8:
+ ldr r3, _021DD974 ; =0xFFFFC000
+ mov r2, #0x69
+ str r3, [sp]
+ ldr r1, [r4, #0x40]
+ lsl r2, r2, #0xe
+ str r1, [sp, #4]
+ mov r1, #1
+ str r1, [sp, #8]
+ mov r1, #0x12
+ lsl r1, r1, #0x10
+ asr r3, r3, #1
+ bl MOD85_021DD5D4
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ cmp r0, #4
+ blo _021DD84C
+ mov r0, #0
+ str r0, [r4, #8]
+ ldr r0, [r4]
+ add sp, #0x40
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_021DD7FA:
+ mov r1, #1
+ lsl r1, r1, #0xe
+ str r1, [sp]
+ ldr r1, [r4, #0x40]
+ mov r2, #0x69
+ str r1, [sp, #4]
+ mov r3, #1
+ mov r1, #0x12
+ str r3, [sp, #8]
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0xe
+ lsl r3, r3, #0xd
+ bl MOD85_021DD5D4
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ cmp r0, #4
+ blo _021DD84C
+ mov r1, #0
+ str r1, [r4, #8]
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ cmp r0, #2
+ bhs _021DD836
+ mov r0, #3
+ add sp, #0x40
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_021DD836:
+ str r1, [r4, #0xc]
+ ldr r0, [r4]
+ add sp, #0x40
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_021DD842:
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ cmp r0, #8
+ bhs _021DD84E
+_021DD84C:
+ b _021DD96C
+_021DD84E:
+ mov r0, #0
+ str r0, [r4, #8]
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_021DD858:
+ ldr r3, _021DD974 ; =0xFFFFC000
+ mov r2, #0x69
+ str r3, [sp]
+ ldr r0, [r4, #0x34]
+ lsl r1, r3, #3
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ add r0, r6, #0
+ lsl r2, r2, #0xe
+ asr r3, r3, #1
+ bl MOD85_021DD5D4
+ mov r3, #0
+ str r3, [sp]
+ ldr r0, [r4, #0x40]
+ mov r1, #0x12
+ str r0, [sp, #4]
+ mov r0, #1
+ mov r2, #0x69
+ str r0, [sp, #8]
+ add r0, r6, #0
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0xe
+ bl MOD85_021DD5D4
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ cmp r0, #4
+ blo _021DD96C
+ mov r0, #0
+ str r0, [r4, #8]
+ ldr r0, [r4]
+ add sp, #0x40
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_021DD8A4:
+ mov r3, #1
+ lsl r3, r3, #0xe
+ str r3, [sp]
+ ldr r1, [r4, #0x34]
+ mov r2, #0x69
+ str r1, [sp, #4]
+ mov r1, #0
+ str r1, [sp, #8]
+ ldr r1, _021DD978 ; =0xFFFE0000
+ lsl r2, r2, #0xe
+ lsr r3, r3, #1
+ bl MOD85_021DD5D4
+ mov r3, #0
+ str r3, [sp]
+ ldr r0, [r4, #0x40]
+ mov r1, #0x12
+ str r0, [sp, #4]
+ mov r0, #1
+ mov r2, #0x69
+ str r0, [sp, #8]
+ add r0, r6, #0
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0xe
+ bl MOD85_021DD5D4
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ cmp r0, #4
+ blo _021DD96C
+ mov r1, #0
+ str r1, [r4, #8]
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ cmp r0, #2
+ bhs _021DD8F8
+ mov r0, #8
+ add sp, #0x40
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_021DD8F8:
+ str r1, [r4, #0xc]
+ ldr r0, [r4]
+ add sp, #0x40
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_021DD904:
+ ldr r3, _021DD97C ; =0xFFFF8000
+ mov r2, #0x69
+ str r3, [sp]
+ ldr r1, [r4, #0x34]
+ lsl r2, r2, #0xe
+ str r1, [sp, #4]
+ mov r1, #0
+ str r1, [sp, #8]
+ lsl r1, r3, #2
+ bl MOD85_021DD5D4
+ mov r3, #0
+ str r3, [sp]
+ ldr r0, [r4, #0x40]
+ mov r1, #0x12
+ str r0, [sp, #4]
+ mov r0, #1
+ mov r2, #0x69
+ str r0, [sp, #8]
+ add r0, r6, #0
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0xe
+ bl MOD85_021DD5D4
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ cmp r0, #4
+ blo _021DD962
+ add r0, r4, #0
+ add r0, #0x30
+ bl MOD85_021DECA0
+ add r0, r4, #0
+ add r0, #0x3c
+ bl MOD85_021DECA0
+ mov r1, #5
+ str r1, [sp]
+ mov r0, #0x45
+ ldr r2, [r4, #0x2c]
+ lsl r0, r0, #4
+ ldr r0, [r2, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl MOD85_021DEAB4
+_021DD962:
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ mov r0, #1
+ str r0, [r4, #4]
+_021DD96C:
+ add sp, #0x40
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021DD970: .word 0x021DF82C
+_021DD974: .word 0xFFFFC000
+_021DD978: .word 0xFFFE0000
+_021DD97C: .word 0xFFFF8000
+ thumb_func_end MOD85_021DD624
+
+ thumb_func_start MOD85_021DD980
+MOD85_021DD980: ; 0x021DD980
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD85_021DD980
+
+ thumb_func_start MOD85_021DD984
+MOD85_021DD984: ; 0x021DD984
+ push {r4, r5, lr}
+ sub sp, #0x14
+ ldr r5, _021DD9B0 ; =0x021DF6B8
+ add r3, r0, #0
+ ldmia r5!, {r0, r1}
+ add r4, sp, #8
+ add r2, r4, #0
+ stmia r4!, {r0, r1}
+ ldr r0, [r5]
+ ldr r1, _021DD9B4 ; =0x021DF8E8
+ str r0, [r4]
+ str r3, [sp]
+ mov r0, #0x8e
+ str r0, [sp, #4]
+ ldr r0, _021DD9B8 ; =0x0000044C
+ ldr r0, [r3, r0]
+ mov r3, #0
+ bl FUN_020644E4
+ add sp, #0x14
+ pop {r4, r5, pc}
+ nop
+_021DD9B0: .word 0x021DF6B8
+_021DD9B4: .word 0x021DF8E8
+_021DD9B8: .word 0x0000044C
+ thumb_func_end MOD85_021DD984
+
+ thumb_func_start MOD85_021DD9BC
+MOD85_021DD9BC: ; 0x021DD9BC
+ push {r3, r4, r5, lr}
+ sub sp, #0x28
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_0206475C
+ str r0, [r4]
+ add r0, r5, #0
+ add r1, sp, #0x1c
+ bl FUN_0206477C
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #6
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ mov r3, #2
+ str r3, [sp, #0x14]
+ mov r0, #3
+ str r0, [sp, #0x18]
+ mov r0, #0x45
+ ldr r1, [r4]
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ add r1, r4, #4
+ add r2, sp, #0x1c
+ bl MOD85_021DEC00
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl FUN_020200BC
+ mov r0, #1
+ add sp, #0x28
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DD9BC
+
+ thumb_func_start MOD85_021DDA08
+MOD85_021DDA08: ; 0x021DDA08
+ ldr r3, _021DDA10 ; =MOD85_021DECA0
+ add r0, r1, #4
+ bx r3
+ nop
+_021DDA10: .word MOD85_021DECA0
+ thumb_func_end MOD85_021DDA08
+
+ thumb_func_start MOD85_021DDA14
+MOD85_021DDA14: ; 0x021DDA14
+ mov r0, #0x52
+ ldr r2, [r1]
+ lsl r0, r0, #2
+ ldr r0, [r2, r0]
+ mov r3, #1
+ cmp r0, #1
+ bne _021DDA24
+ mov r3, #0
+_021DDA24:
+ ldr r0, [r1, #8]
+ add r1, r3, #0
+ ldr r3, _021DDA2C ; =FUN_020200A0
+ bx r3
+ .align 2, 0
+_021DDA2C: .word FUN_020200A0
+ thumb_func_end MOD85_021DDA14
+
+ thumb_func_start MOD85_021DDA30
+MOD85_021DDA30: ; 0x021DDA30
+ push {lr}
+ sub sp, #0x14
+ mov r1, #0x15
+ lsl r1, r1, #0xe
+ str r1, [sp, #8]
+ mov r1, #0x13
+ lsl r1, r1, #0x10
+ str r1, [sp, #0xc]
+ str r0, [sp]
+ mov r1, #0x8e
+ str r1, [sp, #4]
+ ldr r1, _021DDA58 ; =0x0000044C
+ add r2, sp, #8
+ ldr r0, [r0, r1]
+ ldr r1, _021DDA5C ; =0x021DF924
+ mov r3, #0
+ bl FUN_020644E4
+ add sp, #0x14
+ pop {pc}
+ .align 2, 0
+_021DDA58: .word 0x0000044C
+_021DDA5C: .word 0x021DF924
+ thumb_func_end MOD85_021DDA30
+
+ thumb_func_start MOD85_021DDA60
+MOD85_021DDA60: ; 0x021DDA60
+ push {r3, r4, r5, lr}
+ sub sp, #0x40
+ add r5, r0, #0
+ add r4, r1, #0
+ add r1, sp, #0x28
+ mov r0, #0
+ str r0, [r1]
+ str r0, [r1, #4]
+ ldr r3, _021DDAEC ; =0x021DF6A0
+ str r0, [r1, #8]
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0x1c
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ add r0, r5, #0
+ bl FUN_0206475C
+ str r0, [r4, #4]
+ add r0, r5, #0
+ add r1, sp, #0x34
+ bl FUN_0206477C
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #6
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ mov r3, #2
+ str r3, [sp, #0x14]
+ mov r0, #3
+ str r0, [sp, #0x18]
+ mov r0, #0x45
+ ldr r1, [r4, #4]
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ add r1, r4, #0
+ add r1, #8
+ add r2, sp, #0x34
+ bl MOD85_021DEC00
+ ldr r0, [r4, #0xc]
+ mov r1, #2
+ bl FUN_020200EC
+ ldr r0, [r4, #0xc]
+ add r1, sp, #0x28
+ bl FUN_02020054
+ ldr r0, [r4, #0xc]
+ add r1, sp, #0x1c
+ bl FUN_02020064
+ mov r0, #0
+ bl FUN_0201B9A0
+ add r1, r0, #0
+ ldr r0, [r4, #0xc]
+ bl FUN_02020088
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_020200BC
+ mov r0, #1
+ add sp, #0x40
+ pop {r3, r4, r5, pc}
+ nop
+_021DDAEC: .word 0x021DF6A0
+ thumb_func_end MOD85_021DDA60
+
+ thumb_func_start MOD85_021DDAF0
+MOD85_021DDAF0: ; 0x021DDAF0
+ ldr r3, _021DDAF8 ; =MOD85_021DECA0
+ add r1, #8
+ add r0, r1, #0
+ bx r3
+ .align 2, 0
+_021DDAF8: .word MOD85_021DECA0
+ thumb_func_end MOD85_021DDAF0
+
+ thumb_func_start MOD85_021DDAFC
+MOD85_021DDAFC: ; 0x021DDAFC
+ push {r3, lr}
+ ldr r2, [r1]
+ add r2, r2, #1
+ str r2, [r1]
+ cmp r2, #0x2d
+ blt _021DDB0C
+ bl FUN_02064520
+_021DDB0C:
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DDAFC
+
+ thumb_func_start MOD85_021DDB10
+MOD85_021DDB10: ; 0x021DDB10
+ push {r4, r5, lr}
+ sub sp, #0x14
+ ldr r5, _021DDB3C ; =0x021DF790
+ add r3, r0, #0
+ ldmia r5!, {r0, r1}
+ add r4, sp, #8
+ add r2, r4, #0
+ stmia r4!, {r0, r1}
+ ldr r0, [r5]
+ ldr r1, _021DDB40 ; =0x021DF988
+ str r0, [r4]
+ str r3, [sp]
+ mov r0, #0x8e
+ str r0, [sp, #4]
+ ldr r0, _021DDB44 ; =0x0000044C
+ ldr r0, [r3, r0]
+ mov r3, #0
+ bl FUN_020644E4
+ add sp, #0x14
+ pop {r4, r5, pc}
+ nop
+_021DDB3C: .word 0x021DF790
+_021DDB40: .word 0x021DF988
+_021DDB44: .word 0x0000044C
+ thumb_func_end MOD85_021DDB10
+
+ thumb_func_start MOD85_021DDB48
+MOD85_021DDB48: ; 0x021DDB48
+ push {r3, r4, r5, lr}
+ sub sp, #0x28
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_0206475C
+ str r0, [r4]
+ add r0, r5, #0
+ add r1, sp, #0x1c
+ bl FUN_0206477C
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #7
+ str r1, [sp, #4]
+ mov r0, #6
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ str r1, [sp, #0x10]
+ mov r3, #2
+ str r3, [sp, #0x14]
+ mov r0, #3
+ str r0, [sp, #0x18]
+ mov r0, #0x45
+ ldr r1, [r4]
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ add r1, r4, #4
+ add r2, sp, #0x1c
+ bl MOD85_021DEC00
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl FUN_020200BC
+ mov r0, #1
+ add sp, #0x28
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD85_021DDB48
+
+ thumb_func_start MOD85_021DDB94
+MOD85_021DDB94: ; 0x021DDB94
+ ldr r3, _021DDB9C ; =MOD85_021DECA0
+ add r0, r1, #4
+ bx r3
+ nop
+_021DDB9C: .word MOD85_021DECA0
+ thumb_func_end MOD85_021DDB94
+
+ thumb_func_start MOD85_021DDBA0
+MOD85_021DDBA0: ; 0x021DDBA0
+ mov r0, #0x52
+ ldr r2, [r1]
+ lsl r0, r0, #2
+ ldr r0, [r2, r0]
+ mov r3, #1
+ cmp r0, #1
+ bne _021DDBB0
+ mov r3, #0
+_021DDBB0:
+ ldr r0, [r1, #8]
+ add r1, r3, #0
+ ldr r3, _021DDBB8 ; =FUN_020200A0
+ bx r3
+ .align 2, 0
+_021DDBB8: .word FUN_020200A0
+ thumb_func_end MOD85_021DDBA0
+
+ thumb_func_start MOD85_021DDBBC
+MOD85_021DDBBC: ; 0x021DDBBC
+ push {r4, r5, lr}
+ sub sp, #0x14
+ ldr r5, _021DDBF0 ; =0x021DF64C
+ add r3, r0, #0
+ ldmia r5!, {r0, r1}
+ add r4, sp, #8
+ add r2, r4, #0
+ stmia r4!, {r0, r1}
+ ldr r0, [r5]
+ ldr r1, _021DDBF4 ; =0x021DF9B0
+ str r0, [r4]
+ mov r0, #0x11
+ lsl r0, r0, #0xe
+ str r0, [sp, #8]
+ lsl r0, r0, #2
+ str r0, [sp, #0xc]
+ str r3, [sp]
+ mov r0, #0x8e
+ str r0, [sp, #4]
+ ldr r0, _021DDBF8 ; =0x0000044C
+ ldr r0, [r3, r0]
+ mov r3, #0
+ bl FUN_020644E4
+ add sp, #0x14
+ pop {r4, r5, pc}
+ .align 2, 0
+_021DDBF0: .word 0x021DF64C
+_021DDBF4: .word 0x021DF9B0
+_021DDBF8: .word 0x0000044C
+ thumb_func_end MOD85_021DDBBC
+
+ thumb_func_start MOD85_021DDBFC
+MOD85_021DDBFC: ; 0x021DDBFC
+ push {r3, r4, r5, lr}
+ sub sp, #0x40
+ add r5, r0, #0
+ add r4, r1, #0
+ add r1, sp, #0x28
+ mov r0, #0
+ str r0, [r1]
+ str r0, [r1, #4]
+ ldr r3, _021DDC88 ; =0x021DF748
+ str r0, [r1, #8]
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0x1c
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ add r0, r5, #0
+ bl FUN_0206475C
+ str r0, [r4, #4]
+ add r0, r5, #0
+ add r1, sp, #0x34
+ bl FUN_0206477C
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #7
+ str r1, [sp, #4]
+ mov r0, #6
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ str r1, [sp, #0x10]
+ mov r3, #2
+ str r3, [sp, #0x14]
+ mov r0, #3
+ str r0, [sp, #0x18]
+ mov r0, #0x45
+ ldr r1, [r4, #4]
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ add r1, r4, #0
+ add r1, #8
+ add r2, sp, #0x34
+ bl MOD85_021DEC00
+ ldr r0, [r4, #0xc]
+ mov r1, #2
+ bl FUN_020200EC
+ ldr r0, [r4, #0xc]
+ add r1, sp, #0x28
+ bl FUN_02020054
+ ldr r0, [r4, #0xc]
+ add r1, sp, #0x1c
+ bl FUN_02020064
+ mov r0, #0
+ bl FUN_0201B9A0
+ add r1, r0, #0
+ ldr r0, [r4, #0xc]
+ bl FUN_02020088
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_020200BC
+ mov r0, #1
+ add sp, #0x40
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DDC88: .word 0x021DF748
+ thumb_func_end MOD85_021DDBFC
+
+ thumb_func_start MOD85_021DDC8C
+MOD85_021DDC8C: ; 0x021DDC8C
+ ldr r3, _021DDC94 ; =MOD85_021DECA0
+ add r1, #8
+ add r0, r1, #0
+ bx r3
+ .align 2, 0
+_021DDC94: .word MOD85_021DECA0
+ thumb_func_end MOD85_021DDC8C
+
+ thumb_func_start MOD85_021DDC98
+MOD85_021DDC98: ; 0x021DDC98
+ push {r3, lr}
+ ldr r2, [r1]
+ add r2, r2, #1
+ str r2, [r1]
+ cmp r2, #0x2d
+ blt _021DDCA8
+ bl FUN_02064520
+_021DDCA8:
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DDC98
+
+ thumb_func_start MOD85_021DDCAC
+MOD85_021DDCAC: ; 0x021DDCAC
+ push {r4, r5, lr}
+ sub sp, #0x14
+ ldr r5, _021DDCD8 ; =0x021DF610
+ add r3, r0, #0
+ ldmia r5!, {r0, r1}
+ add r4, sp, #8
+ add r2, r4, #0
+ stmia r4!, {r0, r1}
+ ldr r0, [r5]
+ ldr r1, _021DDCDC ; =0x021DF898
+ str r0, [r4]
+ str r3, [sp]
+ mov r0, #0x8e
+ str r0, [sp, #4]
+ ldr r0, _021DDCE0 ; =0x0000044C
+ ldr r0, [r3, r0]
+ mov r3, #0
+ bl FUN_020644E4
+ add sp, #0x14
+ pop {r4, r5, pc}
+ nop
+_021DDCD8: .word 0x021DF610
+_021DDCDC: .word 0x021DF898
+_021DDCE0: .word 0x0000044C
+ thumb_func_end MOD85_021DDCAC
+
+ thumb_func_start MOD85_021DDCE4
+MOD85_021DDCE4: ; 0x021DDCE4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x28
+ add r4, r0, #0
+ add r7, r1, #0
+ bl FUN_0206475C
+ str r0, [r7]
+ add r0, r4, #0
+ add r1, sp, #0x1c
+ bl FUN_0206477C
+ mov r6, #0
+ add r4, r7, #4
+ add r5, r7, #0
+_021DDD00:
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ mov r0, #6
+ str r0, [sp, #8]
+ mov r0, #8
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ mov r0, #2
+ str r0, [sp, #0x14]
+ mov r0, #3
+ str r0, [sp, #0x18]
+ mov r0, #0x45
+ ldr r1, [r7]
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ add r1, r4, #0
+ add r2, sp, #0x1c
+ mov r3, #2
+ bl MOD85_021DEC00
+ ldr r0, [r5, #8]
+ mov r1, #0
+ bl FUN_020200A0
+ ldr r0, [r5, #8]
+ mov r1, #1
+ bl FUN_020200BC
+ add r6, r6, #1
+ add r4, #0xc
+ add r5, #0xc
+ cmp r6, #2
+ blt _021DDD00
+ mov r0, #1
+ add sp, #0x28
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD85_021DDCE4
+
+ thumb_func_start MOD85_021DDD4C
+MOD85_021DDD4C: ; 0x021DDD4C
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #4
+ bl MOD85_021DECA0
+ add r4, #0x10
+ add r0, r4, #0
+ bl MOD85_021DECA0
+ pop {r4, pc}
+ thumb_func_end MOD85_021DDD4C
+
+ thumb_func_start MOD85_021DDD60
+MOD85_021DDD60: ; 0x021DDD60
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ mov r0, #0x4f
+ ldr r1, [r5]
+ lsl r0, r0, #2
+ add r4, r1, r0
+ ldr r0, [r5, #8]
+ mov r1, #0
+ bl FUN_020200A0
+ ldr r0, [r5, #0x14]
+ mov r1, #0
+ bl FUN_020200A0
+ ldr r0, [r4, #0xc]
+ cmp r0, #1
+ beq _021DDE06
+ ldr r3, _021DDE0C ; =0x021DF76C
+ add r2, sp, #0
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ mov r6, #0
+ str r0, [r2]
+ ldr r0, [r5]
+ ldr r7, [r0, #0x10]
+ cmp r7, #0x63
+ bls _021DDD9C
+ mov r7, #0x63
+_021DDD9C:
+ add r0, r7, #0
+ mov r1, #0x64
+ bl _u32_div_f
+ add r0, r1, #0
+ mov r1, #0xa
+ bl _u32_div_f
+ add r4, r0, #0
+ beq _021DDDDA
+ ldr r0, [r5, #8]
+ add r1, sp, #0
+ bl FUN_02020044
+ ldr r0, [r5, #8]
+ add r1, r4, #0
+ bl FUN_02020130
+ ldr r0, [r5, #8]
+ bl FUN_02020198
+ ldr r0, [r5, #8]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r0, #2
+ ldr r1, [sp]
+ lsl r0, r0, #0xe
+ add r0, r1, r0
+ str r0, [sp]
+ add r6, r6, #1
+_021DDDDA:
+ mov r0, #0xc
+ add r4, r6, #0
+ add r5, #8
+ mul r4, r0
+ ldr r0, [r5, r4]
+ add r1, sp, #0
+ bl FUN_02020044
+ add r0, r7, #0
+ mov r1, #0xa
+ bl _u32_div_f
+ ldr r0, [r5, r4]
+ bl FUN_02020130
+ ldr r0, [r5, r4]
+ bl FUN_02020198
+ ldr r0, [r5, r4]
+ mov r1, #1
+ bl FUN_020200A0
+_021DDE06:
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021DDE0C: .word 0x021DF76C
+ thumb_func_end MOD85_021DDD60
+
+ thumb_func_start MOD85_021DDE10
+MOD85_021DDE10: ; 0x021DDE10
+ push {r4, r5, lr}
+ sub sp, #0x14
+ ldr r5, _021DDE3C ; =0x021DF844
+ add r3, r0, #0
+ ldmia r5!, {r0, r1}
+ add r4, sp, #8
+ add r2, r4, #0
+ stmia r4!, {r0, r1}
+ ldr r0, [r5]
+ ldr r1, _021DDE40 ; =0x021DF8FC
+ str r0, [r4]
+ str r3, [sp]
+ mov r0, #0x8e
+ str r0, [sp, #4]
+ ldr r0, _021DDE44 ; =0x0000044C
+ ldr r0, [r3, r0]
+ mov r3, #0
+ bl FUN_020644E4
+ add sp, #0x14
+ pop {r4, r5, pc}
+ nop
+_021DDE3C: .word 0x021DF844
+_021DDE40: .word 0x021DF8FC
+_021DDE44: .word 0x0000044C
+ thumb_func_end MOD85_021DDE10
+
+ thumb_func_start MOD85_021DDE48
+MOD85_021DDE48: ; 0x021DDE48
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x28
+ ldr r3, _021DDEAC ; =0x021DF6C4
+ add r4, r0, #0
+ add r6, r1, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0x1c
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ add r0, r4, #0
+ bl FUN_0206475C
+ str r0, [r6]
+ mov r4, #0
+ add r5, r6, #4
+ mov r7, #2
+_021DDE6A:
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ mov r0, #6
+ str r0, [sp, #8]
+ mov r0, #8
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ str r7, [sp, #0x14]
+ mov r0, #3
+ str r0, [sp, #0x18]
+ mov r0, #0x45
+ ldr r1, [r6]
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ add r1, r5, #0
+ add r2, sp, #0x1c
+ add r3, r7, #0
+ bl MOD85_021DEC00
+ mov r0, #2
+ ldr r1, [sp, #0x1c]
+ lsl r0, r0, #0xe
+ add r0, r1, r0
+ add r4, r4, #1
+ add r5, #0xc
+ str r0, [sp, #0x1c]
+ cmp r4, #5
+ blt _021DDE6A
+ mov r0, #1
+ add sp, #0x28
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DDEAC: .word 0x021DF6C4
+ thumb_func_end MOD85_021DDE48
+
+ thumb_func_start MOD85_021DDEB0
+MOD85_021DDEB0: ; 0x021DDEB0
+ push {r3, r4, r5, lr}
+ mov r4, #0
+ add r5, r1, #4
+_021DDEB6:
+ add r0, r5, #0
+ bl MOD85_021DECA0
+ add r4, r4, #1
+ add r5, #0xc
+ cmp r4, #5
+ blt _021DDEB6
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DDEB0
+
+ thumb_func_start MOD85_021DDEC8
+MOD85_021DDEC8: ; 0x021DDEC8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ mov r0, #0x52
+ ldr r1, [r5]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ mov r7, #1
+ cmp r0, #1
+ bne _021DDEDC
+ mov r7, #0
+_021DDEDC:
+ mov r6, #0
+ add r4, r5, #0
+_021DDEE0:
+ ldr r0, [r4, #8]
+ add r1, r7, #0
+ bl FUN_020200A0
+ add r6, r6, #1
+ add r4, #0xc
+ cmp r6, #5
+ blt _021DDEE0
+ cmp r7, #0
+ beq _021DDF34
+ ldr r0, [r5]
+ ldr r6, [r0, #0x14]
+ ldr r0, _021DDF38 ; =0x0000C350
+ cmp r6, r0
+ ble _021DDF00
+ add r6, r0, #0
+_021DDF00:
+ ldr r4, _021DDF3C ; =0x00002710
+ mov r7, #0xa
+_021DDF04:
+ add r1, r4, #0
+ add r0, r6, #0
+ mul r1, r7
+ bl _s32_div_f
+ add r0, r1, #0
+ add r1, r4, #0
+ bl _s32_div_f
+ add r1, r0, #0
+ ldr r0, [r5, #8]
+ bl FUN_02020130
+ ldr r0, [r5, #8]
+ bl FUN_02020198
+ add r0, r4, #0
+ mov r1, #0xa
+ bl _s32_div_f
+ add r4, r0, #0
+ add r5, #0xc
+ cmp r4, #1
+ bge _021DDF04
+_021DDF34:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021DDF38: .word 0x0000C350
+_021DDF3C: .word 0x00002710
+ thumb_func_end MOD85_021DDEC8
+
+ thumb_func_start MOD85_021DDF40
+MOD85_021DDF40: ; 0x021DDF40
+ push {lr}
+ sub sp, #0x14
+ add r3, r1, #0
+ add r2, sp, #8
+ mov r1, #0
+ str r1, [r2]
+ str r1, [r2, #4]
+ str r1, [r2, #8]
+ str r0, [sp]
+ mov r1, #0x8e
+ str r1, [sp, #4]
+ ldr r1, _021DDF64 ; =0x0000044C
+ ldr r0, [r0, r1]
+ ldr r1, _021DDF68 ; =0x021DF99C
+ bl FUN_020644E4
+ add sp, #0x14
+ pop {pc}
+ .align 2, 0
+_021DDF64: .word 0x0000044C
+_021DDF68: .word 0x021DF99C
+ thumb_func_end MOD85_021DDF40
+
+ thumb_func_start MOD85_021DDF6C
+MOD85_021DDF6C: ; 0x021DDF6C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x44
+ add r6, r0, #0
+ add r5, r1, #0
+ add r1, sp, #0x2c
+ mov r0, #0
+ str r0, [r1]
+ str r0, [r1, #4]
+ ldr r3, _021DE0D0 ; =0x021DF79C
+ str r0, [r1, #8]
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0x20
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ add r0, r6, #0
+ bl FUN_0206475C
+ add r4, r0, #0
+ add r0, r6, #0
+ bl FUN_02064754
+ str r0, [r5]
+ str r4, [r5, #0x14]
+ ldr r0, [r5]
+ cmp r0, #0
+ bne _021DDFD6
+ ldr r1, [r4, #0x1c]
+ ldr r0, _021DE0D4 ; =0x000003E7
+ str r1, [r5, #4]
+ cmp r1, r0
+ bls _021DDFAE
+ str r0, [r5, #4]
+_021DDFAE:
+ ldr r0, [r5, #4]
+ cmp r0, #0x64
+ blo _021DDFBA
+ mov r0, #3
+ str r0, [r5, #8]
+ b _021DDFC8
+_021DDFBA:
+ cmp r0, #0xa
+ blo _021DDFC4
+ mov r0, #2
+ str r0, [r5, #8]
+ b _021DDFC8
+_021DDFC4:
+ mov r0, #1
+ str r0, [r5, #8]
+_021DDFC8:
+ mov r0, #0x32
+ lsl r0, r0, #0xe
+ str r0, [sp, #0x38]
+ mov r0, #0x13
+ lsl r0, r0, #0x10
+ str r0, [sp, #0x3c]
+ b _021DE022
+_021DDFD6:
+ ldr r1, [r4, #0x14]
+ ldr r0, _021DE0D8 ; =0x0001869F
+ str r1, [r5, #4]
+ cmp r1, r0
+ bls _021DDFE2
+ str r0, [r5, #4]
+_021DDFE2:
+ ldr r1, [r5, #4]
+ ldr r0, _021DE0DC ; =0x00002710
+ cmp r1, r0
+ blo _021DDFF0
+ mov r0, #5
+ str r0, [r5, #8]
+ b _021DE016
+_021DDFF0:
+ mov r0, #0xfa
+ lsl r0, r0, #2
+ cmp r1, r0
+ blo _021DDFFE
+ mov r0, #4
+ str r0, [r5, #8]
+ b _021DE016
+_021DDFFE:
+ cmp r1, #0x64
+ blo _021DE008
+ mov r0, #3
+ str r0, [r5, #8]
+ b _021DE016
+_021DE008:
+ cmp r1, #0xa
+ blo _021DE012
+ mov r0, #2
+ str r0, [r5, #8]
+ b _021DE016
+_021DE012:
+ mov r0, #1
+ str r0, [r5, #8]
+_021DE016:
+ mov r0, #0x32
+ lsl r0, r0, #0xe
+ str r0, [sp, #0x38]
+ mov r0, #0x11
+ lsl r0, r0, #0x10
+ str r0, [sp, #0x3c]
+_021DE022:
+ ldr r0, [r5, #8]
+ mov r7, #0
+ mov r6, #1
+ cmp r0, #0
+ bls _021DE0C6
+ add r0, r5, #0
+ str r0, [sp, #0x1c]
+ add r0, #0x18
+ str r0, [sp, #0x1c]
+ add r4, r5, #0
+_021DE036:
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ mov r0, #6
+ str r0, [sp, #8]
+ mov r0, #8
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ mov r0, #2
+ str r0, [sp, #0x14]
+ mov r0, #3
+ str r0, [sp, #0x18]
+ mov r0, #0x45
+ ldr r1, [r5, #0x14]
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ ldr r1, [sp, #0x1c]
+ add r2, sp, #0x38
+ mov r3, #2
+ bl MOD85_021DEC00
+ ldr r0, [r4, #0x1c]
+ mov r1, #2
+ bl FUN_020200EC
+ ldr r0, [r4, #0x1c]
+ add r1, sp, #0x2c
+ bl FUN_02020054
+ ldr r0, [r4, #0x1c]
+ add r1, sp, #0x20
+ bl FUN_02020064
+ mov r0, #0
+ bl FUN_0201B9A0
+ add r1, r0, #0
+ ldr r0, [r4, #0x1c]
+ bl FUN_02020088
+ mov r1, #0xa
+ ldr r0, [r5, #4]
+ mul r1, r6
+ bl _u32_div_f
+ add r0, r1, #0
+ add r1, r6, #0
+ bl _u32_div_f
+ add r1, r0, #0
+ ldr r0, [r4, #0x1c]
+ bl FUN_02020130
+ ldr r0, [r4, #0x1c]
+ bl FUN_02020198
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x38]
+ add r0, #0xc
+ str r0, [sp, #0x1c]
+ mov r0, #0xa
+ mul r6, r0
+ mov r0, #1
+ lsl r0, r0, #0x10
+ sub r0, r1, r0
+ str r0, [sp, #0x38]
+ ldr r0, [r5, #8]
+ add r7, r7, #1
+ add r4, #0xc
+ cmp r7, r0
+ blo _021DE036
+_021DE0C6:
+ str r7, [r5, #0x10]
+ mov r0, #1
+ add sp, #0x44
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021DE0D0: .word 0x021DF79C
+_021DE0D4: .word 0x000003E7
+_021DE0D8: .word 0x0001869F
+_021DE0DC: .word 0x00002710
+ thumb_func_end MOD85_021DDF6C
+
+ thumb_func_start MOD85_021DE0E0
+MOD85_021DE0E0: ; 0x021DE0E0
+ push {r4, r5, r6, lr}
+ add r6, r1, #0
+ ldr r0, [r6, #0x10]
+ mov r4, #0
+ cmp r0, #0
+ ble _021DE100
+ add r5, r6, #0
+ add r5, #0x18
+_021DE0F0:
+ add r0, r5, #0
+ bl MOD85_021DECA0
+ ldr r0, [r6, #0x10]
+ add r4, r4, #1
+ add r5, #0xc
+ cmp r4, r0
+ blt _021DE0F0
+_021DE100:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DE0E0
+
+ thumb_func_start MOD85_021DE104
+MOD85_021DE104: ; 0x021DE104
+ push {r3, lr}
+ ldr r2, [r1, #0xc]
+ add r2, r2, #1
+ str r2, [r1, #0xc]
+ cmp r2, #0x2d
+ blt _021DE114
+ bl FUN_02064520
+_021DE114:
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DE104
+
+ thumb_func_start MOD85_021DE118
+MOD85_021DE118: ; 0x021DE118
+ push {r4, r5, lr}
+ sub sp, #0x14
+ ldr r5, _021DE14C ; =0x021DF664
+ add r2, r0, #0
+ add r3, r1, #0
+ ldmia r5!, {r0, r1}
+ add r4, sp, #8
+ stmia r4!, {r0, r1}
+ ldr r0, [r5]
+ str r0, [r4]
+ ldr r0, _021DE150 ; =0x000003E7
+ cmp r3, r0
+ bls _021DE134
+ add r3, r0, #0
+_021DE134:
+ str r2, [sp]
+ mov r0, #0x8e
+ str r0, [sp, #4]
+ ldr r0, _021DE154 ; =0x0000044C
+ ldr r1, _021DE158 ; =0x021DF9C4
+ ldr r0, [r2, r0]
+ add r2, sp, #8
+ bl FUN_020644E4
+ add sp, #0x14
+ pop {r4, r5, pc}
+ nop
+_021DE14C: .word 0x021DF664
+_021DE150: .word 0x000003E7
+_021DE154: .word 0x0000044C
+_021DE158: .word 0x021DF9C4
+ thumb_func_end MOD85_021DE118
+
+ thumb_func_start MOD85_021DE15C
+MOD85_021DE15C: ; 0x021DE15C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x30
+ add r4, r0, #0
+ add r5, r1, #0
+ bl FUN_0206475C
+ str r0, [r5, #8]
+ add r0, r4, #0
+ bl FUN_02064754
+ str r0, [sp, #0x20]
+ add r0, r4, #0
+ add r1, sp, #0x24
+ bl FUN_0206477C
+ ldr r0, [sp, #0x20]
+ cmp r0, #0x64
+ blo _021DE192
+ mov r0, #3
+ str r0, [r5, #4]
+ mov r0, #1
+ ldr r1, [sp, #0x24]
+ lsl r0, r0, #0x10
+ sub r0, r1, r0
+ mov r4, #0x64
+ str r0, [sp, #0x24]
+ b _021DE1AA
+_021DE192:
+ cmp r0, #0xa
+ blo _021DE1A6
+ mov r0, #2
+ str r0, [r5, #4]
+ ldr r1, [sp, #0x24]
+ lsl r0, r0, #0xe
+ sub r0, r1, r0
+ mov r4, #0xa
+ str r0, [sp, #0x24]
+ b _021DE1AA
+_021DE1A6:
+ mov r4, #1
+ str r4, [r5, #4]
+_021DE1AA:
+ ldr r0, [r5, #4]
+ mov r6, #0
+ cmp r0, #0
+ ble _021DE226
+ add r0, r5, #0
+ str r0, [sp, #0x1c]
+ add r0, #0xc
+ str r0, [sp, #0x1c]
+ add r7, r5, #0
+_021DE1BC:
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #9
+ str r0, [sp, #4]
+ mov r0, #7
+ str r0, [sp, #8]
+ mov r0, #9
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ mov r0, #2
+ str r0, [sp, #0x14]
+ mov r0, #3
+ str r0, [sp, #0x18]
+ mov r0, #0x45
+ ldr r1, [r5, #8]
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ ldr r1, [sp, #0x1c]
+ add r2, sp, #0x24
+ mov r3, #2
+ bl MOD85_021DEC00
+ mov r1, #0xa
+ ldr r0, [sp, #0x20]
+ mul r1, r4
+ bl _u32_div_f
+ add r0, r1, #0
+ add r1, r4, #0
+ bl _u32_div_f
+ add r1, r0, #0
+ ldr r0, [r7, #0x10]
+ bl FUN_02020130
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x24]
+ add r0, #0xc
+ str r0, [sp, #0x1c]
+ mov r0, #1
+ lsl r0, r0, #0x10
+ add r0, r1, r0
+ str r0, [sp, #0x24]
+ add r0, r4, #0
+ mov r1, #0xa
+ add r7, #0xc
+ add r6, r6, #1
+ bl _u32_div_f
+ add r4, r0, #0
+ ldr r0, [r5, #4]
+ cmp r6, r0
+ blt _021DE1BC
+_021DE226:
+ mov r0, #1
+ add sp, #0x30
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD85_021DE15C
+
+ thumb_func_start MOD85_021DE22C
+MOD85_021DE22C: ; 0x021DE22C
+ push {r4, r5, r6, lr}
+ add r6, r1, #0
+ ldr r0, [r6, #4]
+ mov r4, #0
+ cmp r0, #0
+ ble _021DE24C
+ add r5, r6, #0
+ add r5, #0xc
+_021DE23C:
+ add r0, r5, #0
+ bl MOD85_021DECA0
+ ldr r0, [r6, #4]
+ add r4, r4, #1
+ add r5, #0xc
+ cmp r4, r0
+ blt _021DE23C
+_021DE24C:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DE22C
+
+ thumb_func_start MOD85_021DE250
+MOD85_021DE250: ; 0x021DE250
+ push {r3, lr}
+ ldr r2, [r1]
+ add r2, r2, #1
+ str r2, [r1]
+ cmp r2, #0x3c
+ blt _021DE260
+ bl FUN_02064520
+_021DE260:
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DE250
+
+ thumb_func_start MOD85_021DE264
+MOD85_021DE264: ; 0x021DE264
+ push {lr}
+ sub sp, #0x14
+ add r2, sp, #8
+ mov r3, #0
+ str r3, [r2]
+ str r3, [r2, #4]
+ str r3, [r2, #8]
+ str r0, [sp]
+ mov r1, #0x8c
+ str r1, [sp, #4]
+ ldr r1, _021DE288 ; =0x0000044C
+ ldr r0, [r0, r1]
+ ldr r1, _021DE28C ; =0x021DF910
+ bl FUN_020644E4
+ add sp, #0x14
+ pop {pc}
+ nop
+_021DE288: .word 0x0000044C
+_021DE28C: .word 0x021DF910
+ thumb_func_end MOD85_021DE264
+
+ thumb_func_start MOD85_021DE290
+MOD85_021DE290: ; 0x021DE290
+ push {r4, lr}
+ add r4, r1, #0
+ bl FUN_0206475C
+ str r0, [r4, #0x44]
+ ldr r0, [r0, #0x44]
+ add r3, r4, #0
+ str r0, [r4, #0x18]
+ ldr r0, [r4, #0x44]
+ add r3, #0x1c
+ ldr r0, [r0, #0x48]
+ mov r1, #1
+_021DE2A8:
+ add r2, r0, #0
+ tst r2, r1
+ bne _021DE2BC
+ ldr r2, [r3]
+ lsr r0, r0, #1
+ add r2, r2, #1
+ str r2, [r3]
+ ldr r2, [r4, #0x1c]
+ cmp r2, #5
+ blt _021DE2A8
+_021DE2BC:
+ ldr r0, [r4, #0x1c]
+ cmp r0, #5
+ blt _021DE2C6
+ bl ErrorHandling
+_021DE2C6:
+ add r0, r4, #0
+ bl MOD85_021DE4F0
+ mov r0, #1
+ pop {r4, pc}
+ thumb_func_end MOD85_021DE290
+
+ thumb_func_start MOD85_021DE2D0
+MOD85_021DE2D0: ; 0x021DE2D0
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r1, #0
+ ldr r0, [r7, #0x14]
+ cmp r0, #0
+ bne _021DE30C
+ add r5, r7, #0
+ mov r6, #0
+ add r4, r7, #0
+ add r5, #0x20
+_021DE2E2:
+ ldr r0, [r4, #0x24]
+ cmp r0, #0
+ beq _021DE2EE
+ add r0, r5, #0
+ bl MOD85_021DECA0
+_021DE2EE:
+ add r6, r6, #1
+ add r4, #0xc
+ add r5, #0xc
+ cmp r6, #3
+ blt _021DE2E2
+ mov r1, #0xa
+ str r1, [sp]
+ mov r0, #0x45
+ ldr r2, [r7, #0x44]
+ lsl r0, r0, #4
+ ldr r0, [r2, r0]
+ mov r2, #8
+ add r3, r1, #0
+ bl MOD85_021DEAB4
+_021DE30C:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DE2D0
+
+ thumb_func_start MOD85_021DE310
+MOD85_021DE310: ; 0x021DE310
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x30
+ add r5, r1, #0
+ ldr r0, [r5]
+ cmp r0, #5
+ bhi _021DE33A
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021DE328: ; jump table
+ .short _021DE334 - _021DE328 - 2 ; case 0
+ .short _021DE3AE - _021DE328 - 2 ; case 1
+ .short _021DE3F8 - _021DE328 - 2 ; case 2
+ .short _021DE410 - _021DE328 - 2 ; case 3
+ .short _021DE454 - _021DE328 - 2 ; case 4
+ .short _021DE46C - _021DE328 - 2 ; case 5
+_021DE334:
+ ldr r0, [r5, #8]
+ cmp r0, #2
+ beq _021DE33C
+_021DE33A:
+ b _021DE4A0
+_021DE33C:
+ mov r4, #0
+ add r7, r5, #0
+ str r4, [sp, #0x20]
+ add r7, #0x20
+ add r6, r5, #0
+_021DE346:
+ ldr r1, [r5, #0x1c]
+ mov r0, #0x24
+ add r2, r1, #0
+ mul r2, r0
+ ldr r0, _021DE4A4 ; =0x021DFB80
+ add r0, r0, r2
+ add r3, r4, r0
+ add r2, sp, #0x24
+ ldmia r3!, {r0, r1}
+ mov ip, r2
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ mov r3, #3
+ str r0, [r2]
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r0, #0xa
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ mov r0, #0
+ str r0, [sp, #0x18]
+ mov r0, #0x45
+ ldr r1, [r5, #0x44]
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ add r1, r7, #0
+ mov r2, ip
+ bl MOD85_021DEC00
+ ldr r0, [r6, #0x24]
+ mov r1, #1
+ bl FUN_020200BC
+ ldr r0, [sp, #0x20]
+ add r4, #0xc
+ add r0, r0, #1
+ add r7, #0xc
+ add r6, #0xc
+ str r0, [sp, #0x20]
+ cmp r0, #3
+ blt _021DE346
+ ldr r0, [r5]
+ add sp, #0x30
+ add r0, r0, #1
+ str r0, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DE3AE:
+ mov r6, #0
+ str r6, [sp, #0x1c]
+ add r4, r5, #0
+ add r7, sp, #0x24
+_021DE3B6:
+ ldr r0, [r4, #0x24]
+ add r1, r7, #0
+ bl MOD85_021DECBC
+ mov r0, #1
+ ldr r1, [sp, #0x28]
+ lsl r0, r0, #0xe
+ add r1, r1, r0
+ mov r0, #0xf
+ lsl r0, r0, #0x10
+ str r1, [sp, #0x28]
+ cmp r1, r0
+ blt _021DE3D4
+ str r0, [sp, #0x28]
+ b _021DE3D8
+_021DE3D4:
+ mov r0, #1
+ str r0, [sp, #0x1c]
+_021DE3D8:
+ ldr r0, [r4, #0x24]
+ add r1, r7, #0
+ bl FUN_02020044
+ add r6, r6, #1
+ add r4, #0xc
+ cmp r6, #3
+ blt _021DE3B6
+ ldr r0, [sp, #0x1c]
+ cmp r0, #0
+ bne _021DE4A0
+ ldr r0, [r5]
+ add sp, #0x30
+ add r0, r0, #1
+ str r0, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DE3F8:
+ ldr r0, [r5, #0xc]
+ add r0, r0, #1
+ str r0, [r5, #0xc]
+ cmp r0, #0x1e
+ blt _021DE4A0
+ mov r0, #0
+ str r0, [r5, #0xc]
+ ldr r0, [r5]
+ add sp, #0x30
+ add r0, r0, #1
+ str r0, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DE410:
+ ldr r0, [r5, #0xc]
+ add r0, r0, #1
+ str r0, [r5, #0xc]
+ cmp r0, #0xc
+ blt _021DE41E
+ mov r7, #1
+ b _021DE420
+_021DE41E:
+ mov r7, #0
+_021DE420:
+ mov r6, #0
+ add r4, r5, #0
+_021DE424:
+ ldr r0, [r4, #0x24]
+ add r1, r7, #0
+ bl FUN_020200A0
+ add r6, r6, #1
+ add r4, #0xc
+ cmp r6, #3
+ blt _021DE424
+ ldr r0, [r5, #0xc]
+ cmp r0, #0x1e
+ blt _021DE4A0
+ mov r1, #0
+ str r1, [r5, #0xc]
+ ldr r0, [r5, #0x10]
+ add r0, r0, #1
+ str r0, [r5, #0x10]
+ cmp r0, #3
+ blt _021DE4A0
+ str r1, [r5, #0x10]
+ ldr r0, [r5]
+ add sp, #0x30
+ add r0, r0, #1
+ str r0, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DE454:
+ ldr r0, [r5, #0xc]
+ add r0, r0, #1
+ str r0, [r5, #0xc]
+ cmp r0, #0x1e
+ blt _021DE4A0
+ mov r0, #0
+ str r0, [r5, #0xc]
+ ldr r0, [r5]
+ add sp, #0x30
+ add r0, r0, #1
+ str r0, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DE46C:
+ add r4, r5, #0
+ mov r6, #0
+ add r4, #0x20
+_021DE472:
+ add r0, r4, #0
+ bl MOD85_021DECA0
+ add r6, r6, #1
+ add r4, #0xc
+ cmp r6, #3
+ blt _021DE472
+ mov r1, #0xa
+ str r1, [sp]
+ mov r0, #0x45
+ ldr r2, [r5, #0x44]
+ lsl r0, r0, #4
+ ldr r0, [r2, r0]
+ mov r2, #8
+ add r3, r1, #0
+ bl MOD85_021DEAB4
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ mov r0, #1
+ str r0, [r5, #4]
+ str r0, [r5, #0x14]
+_021DE4A0:
+ add sp, #0x30
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DE4A4: .word 0x021DFB80
+ thumb_func_end MOD85_021DE310
+
+ thumb_func_start MOD85_021DE4A8
+MOD85_021DE4A8: ; 0x021DE4A8
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ mov r0, #0x45
+ ldr r1, [r4, #0x44]
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ mov r1, #0xa
+ bl MOD85_021DE8A8
+ mov r0, #1
+ str r0, [r4, #8]
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD85_021DE4A8
+
+ thumb_func_start MOD85_021DE4C8
+MOD85_021DE4C8: ; 0x021DE4C8
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #0x44]
+ cmp r0, #1
+ bne _021DE4EC
+ mov r0, #0x45
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ mov r1, #0xa
+ bl MOD85_021DE8DC
+ mov r0, #2
+ str r0, [r4, #8]
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_021DE4EC:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DE4C8
+
+ thumb_func_start MOD85_021DE4F0
+MOD85_021DE4F0: ; 0x021DE4F0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x18]
+ ldr r4, [r5, #0x44]
+ cmp r0, #0
+ bne _021DE538
+ mov r2, #0x45
+ mov r0, #0xa
+ lsl r2, r2, #4
+ str r0, [sp]
+ ldr r0, [r4, r2]
+ sub r2, #0x18
+ ldr r2, [r4, r2]
+ mov r1, #3
+ mov r3, #0xe
+ bl MOD85_021DE840
+ mov r1, #0x45
+ lsl r1, r1, #4
+ ldr r0, [r4, r1]
+ sub r1, #0x18
+ ldr r1, [r4, r1]
+ mov r2, #0xf
+ mov r3, #0xa
+ bl MOD85_021DE9E4
+ mov r1, #0x45
+ lsl r1, r1, #4
+ ldr r0, [r4, r1]
+ sub r1, #0x18
+ ldr r1, [r4, r1]
+ mov r2, #0x10
+ mov r3, #0xa
+ bl MOD85_021DEA4C
+ b _021DE572
+_021DE538:
+ mov r2, #0x45
+ mov r0, #0xa
+ lsl r2, r2, #4
+ str r0, [sp]
+ ldr r0, [r4, r2]
+ sub r2, #0x18
+ ldr r2, [r4, r2]
+ mov r1, #3
+ mov r3, #0x11
+ bl MOD85_021DE840
+ mov r1, #0x45
+ lsl r1, r1, #4
+ ldr r0, [r4, r1]
+ sub r1, #0x18
+ ldr r1, [r4, r1]
+ mov r2, #0x12
+ mov r3, #0xa
+ bl MOD85_021DE9E4
+ mov r1, #0x45
+ lsl r1, r1, #4
+ ldr r0, [r4, r1]
+ sub r1, #0x18
+ ldr r1, [r4, r1]
+ mov r2, #0x13
+ mov r3, #0xa
+ bl MOD85_021DEA4C
+_021DE572:
+ ldr r0, _021DE598 ; =MOD85_021DE4A8
+ ldr r2, _021DE59C ; =0x00000101
+ add r1, r5, #0
+ bl FUN_0200CA60
+ cmp r0, #0
+ bne _021DE584
+ bl ErrorHandling
+_021DE584:
+ ldr r0, _021DE5A0 ; =MOD85_021DE4C8
+ ldr r2, _021DE59C ; =0x00000101
+ add r1, r5, #0
+ bl FUN_0200CA98
+ cmp r0, #0
+ bne _021DE596
+ bl ErrorHandling
+_021DE596:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DE598: .word MOD85_021DE4A8
+_021DE59C: .word 0x00000101
+_021DE5A0: .word MOD85_021DE4C8
+ thumb_func_end MOD85_021DE4F0
+
+ thumb_func_start MOD85_021DE5A4
+MOD85_021DE5A4: ; 0x021DE5A4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ str r1, [sp, #4]
+ ldr r1, [sp, #0x28]
+ str r0, [sp]
+ str r1, [sp, #0x28]
+ mov r1, #0x57
+ lsl r1, r1, #2
+ str r2, [sp, #8]
+ add r7, r3, #0
+ ldr r5, [sp, #0x20]
+ ldr r6, [sp, #0x24]
+ bl FUN_02016998
+ add r4, r0, #0
+ bne _021DE5C8
+ bl ErrorHandling
+_021DE5C8:
+ ldr r0, [sp]
+ add r1, r4, #0
+ str r0, [r4]
+ strb r7, [r4, #4]
+ strb r5, [r4, #5]
+ ldr r0, [sp, #0x28]
+ strb r6, [r4, #6]
+ strb r0, [r4, #7]
+ ldr r0, [sp, #0x2c]
+ ldr r2, [sp]
+ strb r0, [r4, #8]
+ ldr r0, [sp, #0x30]
+ add r1, #0x10
+ strb r0, [r4, #9]
+ ldr r0, [sp, #0x34]
+ strb r0, [r4, #0xa]
+ ldr r0, [sp, #0x38]
+ strb r0, [r4, #0xb]
+ ldr r0, [sp, #4]
+ bl FUN_02008C9C
+ str r0, [r4, #0xc]
+ ldr r0, [sp, #8]
+ ldr r1, [sp]
+ bl FUN_0201C328
+ mov r1, #0x4e
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r0, [sp, #8]
+ ldr r1, [sp]
+ bl FUN_0201C24C
+ ldr r2, [sp]
+ add r0, r7, #0
+ mov r1, #0
+ bl FUN_02008DEC
+ mov r1, #0x4f
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r2, [sp]
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_02008DEC
+ mov r1, #5
+ lsl r1, r1, #6
+ str r0, [r4, r1]
+ ldr r2, [sp]
+ add r0, r6, #0
+ mov r1, #2
+ bl FUN_02008DEC
+ mov r1, #0x51
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r0, [sp, #0x28]
+ ldr r2, [sp]
+ mov r1, #3
+ bl FUN_02008DEC
+ mov r1, #0x52
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r0, [sp]
+ lsl r1, r7, #3
+ bl FUN_02016998
+ mov r1, #0x53
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r0, [sp]
+ lsl r1, r5, #3
+ bl FUN_02016998
+ mov r1, #0x15
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ ldr r0, [sp]
+ lsl r1, r6, #3
+ bl FUN_02016998
+ mov r1, #0x55
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r1, [sp, #0x28]
+ ldr r0, [sp]
+ lsl r1, r1, #3
+ bl FUN_02016998
+ mov r1, #0x56
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r1, #0
+ cmp r7, #0
+ bls _021DE6A4
+ bls _021DE6A4
+ ldr r0, [sp, #0x2c]
+ add r2, r1, #0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+_021DE694:
+ mov r3, #0x53
+ lsl r3, r3, #2
+ ldr r3, [r4, r3]
+ add r1, r1, #1
+ strh r0, [r3, r2]
+ add r2, #8
+ cmp r1, r7
+ blo _021DE694
+_021DE6A4:
+ mov r3, #0
+ cmp r5, #0
+ bls _021DE6C4
+ bls _021DE6C4
+ ldr r0, [sp, #0x30]
+ mov r7, #0x15
+ lsl r0, r0, #0x10
+ add r2, r3, #0
+ lsr r1, r0, #0x10
+ lsl r7, r7, #4
+_021DE6B8:
+ ldr r0, [r4, r7]
+ add r3, r3, #1
+ strh r1, [r0, r2]
+ add r2, #8
+ cmp r3, r5
+ blo _021DE6B8
+_021DE6C4:
+ mov r1, #0
+ cmp r6, #0
+ bls _021DE6E4
+ bls _021DE6E4
+ ldr r2, [sp, #0x34]
+ add r0, r1, #0
+ lsl r2, r2, #0x10
+ lsr r5, r2, #0x10
+ mov r2, #0x55
+ lsl r2, r2, #2
+_021DE6D8:
+ ldr r3, [r4, r2]
+ add r1, r1, #1
+ strh r5, [r3, r0]
+ add r0, #8
+ cmp r1, r6
+ blo _021DE6D8
+_021DE6E4:
+ ldr r0, [sp, #0x28]
+ mov r1, #0
+ cmp r0, #0
+ bls _021DE708
+ bls _021DE708
+ ldr r2, [sp, #0x38]
+ mov r3, #0x56
+ lsl r2, r2, #0x10
+ add r0, r1, #0
+ lsr r5, r2, #0x10
+ lsl r3, r3, #2
+_021DE6FA:
+ ldr r2, [r4, r3]
+ add r1, r1, #1
+ strh r5, [r2, r0]
+ ldr r2, [sp, #0x28]
+ add r0, #8
+ cmp r1, r2
+ blo _021DE6FA
+_021DE708:
+ add r0, r4, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DE5A4
+
+ thumb_func_start MOD85_021DE710
+MOD85_021DE710: ; 0x021DE710
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldrb r0, [r5, #4]
+ mov r6, #0
+ cmp r0, #0
+ bls _021DE73E
+ mov r7, #0x53
+ add r4, r6, #0
+ lsl r7, r7, #2
+_021DE722:
+ ldr r1, [r5, r7]
+ ldrb r2, [r5, #8]
+ add r0, r1, r4
+ ldrh r1, [r1, r4]
+ cmp r2, r1
+ beq _021DE734
+ ldr r0, [r0, #4]
+ bl FUN_02009C0C
+_021DE734:
+ ldrb r0, [r5, #4]
+ add r6, r6, #1
+ add r4, #8
+ cmp r6, r0
+ blo _021DE722
+_021DE73E:
+ ldrb r0, [r5, #5]
+ mov r6, #0
+ cmp r0, #0
+ bls _021DE768
+ mov r7, #0x15
+ add r4, r6, #0
+ lsl r7, r7, #4
+_021DE74C:
+ ldr r1, [r5, r7]
+ ldrb r2, [r5, #9]
+ add r0, r1, r4
+ ldrh r1, [r1, r4]
+ cmp r2, r1
+ beq _021DE75E
+ ldr r0, [r0, #4]
+ bl FUN_02009E04
+_021DE75E:
+ ldrb r0, [r5, #5]
+ add r6, r6, #1
+ add r4, #8
+ cmp r6, r0
+ blo _021DE74C
+_021DE768:
+ ldrb r0, [r5, #6]
+ mov r6, #0
+ cmp r0, #0
+ bls _021DE792
+ mov r7, #0x55
+ add r4, r6, #0
+ lsl r7, r7, #2
+_021DE776:
+ ldr r1, [r5, r7]
+ ldrb r2, [r5, #0xa]
+ add r0, r1, r4
+ ldrh r1, [r1, r4]
+ cmp r2, r1
+ beq _021DE788
+ ldr r0, [r0, #4]
+ bl FUN_02009474
+_021DE788:
+ ldrb r0, [r5, #6]
+ add r6, r6, #1
+ add r4, #8
+ cmp r6, r0
+ blo _021DE776
+_021DE792:
+ ldrb r0, [r5, #7]
+ mov r6, #0
+ cmp r0, #0
+ bls _021DE7BC
+ mov r7, #0x56
+ add r4, r6, #0
+ lsl r7, r7, #2
+_021DE7A0:
+ ldr r1, [r5, r7]
+ ldrb r2, [r5, #0xb]
+ add r0, r1, r4
+ ldrh r1, [r1, r4]
+ cmp r2, r1
+ beq _021DE7B2
+ ldr r0, [r0, #4]
+ bl FUN_02009474
+_021DE7B2:
+ ldrb r0, [r5, #7]
+ add r6, r6, #1
+ add r4, #8
+ cmp r6, r0
+ blo _021DE7A0
+_021DE7BC:
+ mov r0, #0x4f
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02008E2C
+ mov r0, #5
+ lsl r0, r0, #6
+ ldr r0, [r5, r0]
+ bl FUN_02008E2C
+ mov r0, #0x51
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02008E2C
+ mov r0, #0x52
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02008E2C
+ mov r0, #0x53
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02016A18
+ mov r0, #0x15
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl FUN_02016A18
+ mov r0, #0x55
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02016A18
+ mov r0, #0x56
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02016A18
+ bl FUN_0201C29C
+ mov r0, #0x4e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_0201C350
+ ldr r0, [r5, #0xc]
+ bl FUN_0201FDB4
+ ldr r0, [r5, #0xc]
+ bl FUN_0201FD58
+ add r0, r5, #0
+ bl FUN_02016A18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DE710
+
+ thumb_func_start MOD85_021DE830
+MOD85_021DE830: ; 0x021DE830
+ push {r3, lr}
+ ldr r0, [r0, #0xc]
+ bl FUN_0201FDEC
+ bl FUN_0201C348
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DE830
+
+ thumb_func_start MOD85_021DE840
+MOD85_021DE840: ; 0x021DE840
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ ldrb r5, [r4, #4]
+ add r7, r1, #0
+ mov r1, #0
+ str r2, [sp, #0xc]
+ mov ip, r3
+ cmp r5, #0
+ bls _021DE8A0
+ mov r0, #0x53
+ lsl r0, r0, #2
+ ldr r6, [r4, r0]
+ ldrb r3, [r4, #8]
+ add r2, r6, #0
+_021DE85E:
+ ldrh r0, [r2]
+ cmp r3, r0
+ bne _021DE898
+ ldr r0, [sp, #0x28]
+ lsl r5, r1, #3
+ mov r1, #0x53
+ strh r0, [r6, r5]
+ lsl r1, r1, #2
+ ldr r2, [r4, r1]
+ mov r3, #0
+ add r2, r2, r5
+ strh r3, [r2, #2]
+ str r0, [sp]
+ str r7, [sp, #4]
+ ldr r0, [r4]
+ sub r1, #0x10
+ str r0, [sp, #8]
+ ldr r0, [r4, r1]
+ ldr r1, [sp, #0xc]
+ mov r2, ip
+ bl FUN_020091E0
+ mov r1, #0x53
+ lsl r1, r1, #2
+ ldr r1, [r4, r1]
+ add sp, #0x10
+ add r1, r1, r5
+ str r0, [r1, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DE898:
+ add r1, r1, #1
+ add r2, #8
+ cmp r1, r5
+ blo _021DE85E
+_021DE8A0:
+ bl ErrorHandling
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD85_021DE840
+
+ thumb_func_start MOD85_021DE8A8
+MOD85_021DE8A8: ; 0x021DE8A8
+ push {r3, r4, r5, lr}
+ ldrb r2, [r0, #4]
+ mov r4, #0
+ cmp r2, #0
+ bls _021DE8D4
+ mov r3, #0x53
+ lsl r3, r3, #2
+ ldr r5, [r0, r3]
+ add r3, r5, #0
+_021DE8BA:
+ ldrh r0, [r3]
+ cmp r1, r0
+ bne _021DE8CC
+ lsl r0, r4, #3
+ add r0, r5, r0
+ ldr r0, [r0, #4]
+ bl FUN_02009B04
+ pop {r3, r4, r5, pc}
+_021DE8CC:
+ add r4, r4, #1
+ add r3, #8
+ cmp r4, r2
+ blo _021DE8BA
+_021DE8D4:
+ bl ErrorHandling
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DE8A8
+
+ thumb_func_start MOD85_021DE8DC
+MOD85_021DE8DC: ; 0x021DE8DC
+ push {r3, r4, r5, lr}
+ ldrb r2, [r0, #4]
+ mov r4, #0
+ cmp r2, #0
+ bls _021DE908
+ mov r3, #0x53
+ lsl r3, r3, #2
+ ldr r5, [r0, r3]
+ add r3, r5, #0
+_021DE8EE:
+ ldrh r0, [r3]
+ cmp r1, r0
+ bne _021DE900
+ lsl r0, r4, #3
+ add r0, r5, r0
+ ldr r0, [r0, #4]
+ bl FUN_02009474
+ pop {r3, r4, r5, pc}
+_021DE900:
+ add r4, r4, #1
+ add r3, #8
+ cmp r4, r2
+ blo _021DE8EE
+_021DE908:
+ bl ErrorHandling
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DE8DC
+
+ thumb_func_start MOD85_021DE910
+MOD85_021DE910: ; 0x021DE910
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r4, r0, #0
+ ldrb r5, [r4, #4]
+ add r7, r1, #0
+ mov r1, #0
+ str r2, [sp, #0x10]
+ mov ip, r3
+ cmp r5, #0
+ bls _021DE974
+ mov r0, #0x15
+ lsl r0, r0, #4
+ ldr r6, [r4, r0]
+ ldrb r3, [r4, #9]
+ add r2, r6, #0
+_021DE92E:
+ ldrh r0, [r2]
+ cmp r3, r0
+ bne _021DE96C
+ ldr r0, [sp, #0x28]
+ lsl r5, r1, #3
+ mov r1, #0x15
+ strh r0, [r6, r5]
+ lsl r1, r1, #4
+ ldr r2, [r4, r1]
+ mov r3, #0
+ add r2, r2, r5
+ strh r3, [r2, #2]
+ str r0, [sp]
+ str r7, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ ldr r0, [r4]
+ sub r1, #0x10
+ str r0, [sp, #0xc]
+ ldr r0, [r4, r1]
+ ldr r1, [sp, #0x10]
+ mov r2, ip
+ bl FUN_02009298
+ mov r1, #0x15
+ lsl r1, r1, #4
+ ldr r1, [r4, r1]
+ add sp, #0x14
+ add r1, r1, r5
+ str r0, [r1, #4]
+ pop {r4, r5, r6, r7, pc}
+_021DE96C:
+ add r1, r1, #1
+ add r2, #8
+ cmp r1, r5
+ blo _021DE92E
+_021DE974:
+ bl ErrorHandling
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ thumb_func_end MOD85_021DE910
+
+ thumb_func_start MOD85_021DE97C
+MOD85_021DE97C: ; 0x021DE97C
+ push {r3, r4, r5, lr}
+ ldrb r2, [r0, #5]
+ mov r4, #0
+ cmp r2, #0
+ bls _021DE9A8
+ mov r3, #0x15
+ lsl r3, r3, #4
+ ldr r5, [r0, r3]
+ add r3, r5, #0
+_021DE98E:
+ ldrh r0, [r3]
+ cmp r1, r0
+ bne _021DE9A0
+ lsl r0, r4, #3
+ add r0, r5, r0
+ ldr r0, [r0, #4]
+ bl FUN_02009D68
+ pop {r3, r4, r5, pc}
+_021DE9A0:
+ add r4, r4, #1
+ add r3, #8
+ cmp r4, r2
+ blo _021DE98E
+_021DE9A8:
+ bl ErrorHandling
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DE97C
+
+ thumb_func_start MOD85_021DE9B0
+MOD85_021DE9B0: ; 0x021DE9B0
+ push {r3, r4, r5, lr}
+ ldrb r2, [r0, #5]
+ mov r4, #0
+ cmp r2, #0
+ bls _021DE9DC
+ mov r3, #0x15
+ lsl r3, r3, #4
+ ldr r5, [r0, r3]
+ add r3, r5, #0
+_021DE9C2:
+ ldrh r0, [r3]
+ cmp r1, r0
+ bne _021DE9D4
+ lsl r0, r4, #3
+ add r0, r5, r0
+ ldr r0, [r0, #4]
+ bl FUN_02009474
+ pop {r3, r4, r5, pc}
+_021DE9D4:
+ add r4, r4, #1
+ add r3, #8
+ cmp r4, r2
+ blo _021DE9C2
+_021DE9DC:
+ bl ErrorHandling
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DE9B0
+
+ thumb_func_start MOD85_021DE9E4
+MOD85_021DE9E4: ; 0x021DE9E4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ ldrb r5, [r4, #4]
+ str r1, [sp, #0xc]
+ mov ip, r2
+ add r6, r3, #0
+ mov r1, #0
+ cmp r5, #0
+ bls _021DEA44
+ mov r0, #0x55
+ lsl r0, r0, #2
+ ldr r7, [r4, r0]
+ ldrb r3, [r4, #0xa]
+ add r2, r7, #0
+_021DEA02:
+ ldrh r0, [r2]
+ cmp r3, r0
+ bne _021DEA3C
+ lsl r5, r1, #3
+ mov r0, #0x55
+ strh r6, [r7, r5]
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ mov r3, #0
+ add r1, r1, r5
+ strh r3, [r1, #2]
+ str r6, [sp]
+ mov r1, #2
+ str r1, [sp, #4]
+ ldr r1, [r4]
+ sub r0, #0x10
+ str r1, [sp, #8]
+ ldr r0, [r4, r0]
+ ldr r1, [sp, #0xc]
+ mov r2, ip
+ bl FUN_02009358
+ mov r1, #0x55
+ lsl r1, r1, #2
+ ldr r1, [r4, r1]
+ add sp, #0x10
+ add r1, r1, r5
+ str r0, [r1, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DEA3C:
+ add r1, r1, #1
+ add r2, #8
+ cmp r1, r5
+ blo _021DEA02
+_021DEA44:
+ bl ErrorHandling
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD85_021DE9E4
+
+ thumb_func_start MOD85_021DEA4C
+MOD85_021DEA4C: ; 0x021DEA4C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ ldrb r5, [r4, #4]
+ str r1, [sp, #0xc]
+ mov ip, r2
+ add r6, r3, #0
+ mov r1, #0
+ cmp r5, #0
+ bls _021DEAAC
+ mov r0, #0x56
+ lsl r0, r0, #2
+ ldr r7, [r4, r0]
+ ldrb r3, [r4, #0xb]
+ add r2, r7, #0
+_021DEA6A:
+ ldrh r0, [r2]
+ cmp r3, r0
+ bne _021DEAA4
+ lsl r5, r1, #3
+ mov r0, #0x56
+ strh r6, [r7, r5]
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ mov r3, #0
+ add r1, r1, r5
+ strh r3, [r1, #2]
+ str r6, [sp]
+ mov r1, #3
+ str r1, [sp, #4]
+ ldr r1, [r4]
+ sub r0, #0x10
+ str r1, [sp, #8]
+ ldr r0, [r4, r0]
+ ldr r1, [sp, #0xc]
+ mov r2, ip
+ bl FUN_02009358
+ mov r1, #0x56
+ lsl r1, r1, #2
+ ldr r1, [r4, r1]
+ add sp, #0x10
+ add r1, r1, r5
+ str r0, [r1, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DEAA4:
+ add r1, r1, #1
+ add r2, #8
+ cmp r1, r5
+ blo _021DEA6A
+_021DEAAC:
+ bl ErrorHandling
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD85_021DEA4C
+
+ thumb_func_start MOD85_021DEAB4
+MOD85_021DEAB4: ; 0x021DEAB4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r4, r0, #0
+ add r0, r1, #0
+ ldrb r1, [r4, #8]
+ add r7, r2, #0
+ str r3, [sp]
+ ldr r6, [sp, #0x20]
+ cmp r0, r1
+ beq _021DEB10
+ ldrb r5, [r4, #4]
+ mov r2, #0
+ cmp r5, #0
+ bls _021DEB10
+ mov r1, #0x53
+ lsl r1, r1, #2
+ ldr r3, [r4, r1]
+ mov ip, r3
+_021DEAD8:
+ ldrh r1, [r3]
+ cmp r0, r1
+ bne _021DEB08
+ lsl r5, r2, #3
+ mov r0, ip
+ add r0, r0, r5
+ ldr r0, [r0, #4]
+ bl FUN_02009C0C
+ mov r1, #0x4f
+ lsl r1, r1, #2
+ ldr r0, [r4, r1]
+ add r1, #0x10
+ ldr r1, [r4, r1]
+ add r1, r1, r5
+ ldr r1, [r1, #4]
+ bl FUN_02009490
+ mov r0, #0x53
+ lsl r0, r0, #2
+ ldrb r1, [r4, #8]
+ ldr r0, [r4, r0]
+ strh r1, [r0, r5]
+ b _021DEB10
+_021DEB08:
+ add r2, r2, #1
+ add r3, #8
+ cmp r2, r5
+ blo _021DEAD8
+_021DEB10:
+ ldrb r0, [r4, #9]
+ cmp r7, r0
+ beq _021DEB5E
+ ldrb r0, [r4, #5]
+ mov r1, #0
+ cmp r0, #0
+ bls _021DEB5E
+ mov r2, #0x15
+ lsl r2, r2, #4
+ ldr r3, [r4, r2]
+ str r3, [sp, #4]
+_021DEB26:
+ ldrh r2, [r3]
+ cmp r7, r2
+ bne _021DEB56
+ ldr r0, [sp, #4]
+ lsl r5, r1, #3
+ add r0, r0, r5
+ ldr r0, [r0, #4]
+ bl FUN_02009E04
+ mov r1, #5
+ lsl r1, r1, #6
+ ldr r0, [r4, r1]
+ add r1, #0x10
+ ldr r1, [r4, r1]
+ add r1, r1, r5
+ ldr r1, [r1, #4]
+ bl FUN_02009490
+ mov r0, #0x15
+ lsl r0, r0, #4
+ ldrb r1, [r4, #9]
+ ldr r0, [r4, r0]
+ strh r1, [r0, r5]
+ b _021DEB5E
+_021DEB56:
+ add r1, r1, #1
+ add r3, #8
+ cmp r1, r0
+ blo _021DEB26
+_021DEB5E:
+ ldrb r1, [r4, #0xa]
+ ldr r0, [sp]
+ cmp r0, r1
+ beq _021DEBAE
+ ldrb r3, [r4, #6]
+ mov r5, #0
+ cmp r3, #0
+ bls _021DEBAE
+ mov r0, #0x55
+ lsl r0, r0, #2
+ ldr r7, [r4, r0]
+ add r2, r7, #0
+_021DEB76:
+ ldrh r1, [r2]
+ ldr r0, [sp]
+ cmp r0, r1
+ bne _021DEBA6
+ lsl r5, r5, #3
+ add r0, r7, r5
+ ldr r0, [r0, #4]
+ bl FUN_02009474
+ mov r1, #0x51
+ lsl r1, r1, #2
+ ldr r0, [r4, r1]
+ add r1, #0x10
+ ldr r1, [r4, r1]
+ add r1, r1, r5
+ ldr r1, [r1, #4]
+ bl FUN_02009490
+ mov r0, #0x55
+ lsl r0, r0, #2
+ ldrb r1, [r4, #0xa]
+ ldr r0, [r4, r0]
+ strh r1, [r0, r5]
+ b _021DEBAE
+_021DEBA6:
+ add r5, r5, #1
+ add r2, #8
+ cmp r5, r3
+ blo _021DEB76
+_021DEBAE:
+ ldrb r0, [r4, #0xb]
+ cmp r6, r0
+ beq _021DEBFC
+ ldrb r1, [r4, #7]
+ mov r2, #0
+ cmp r1, #0
+ bls _021DEBFC
+ mov r0, #0x56
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r5, r0, #0
+_021DEBC4:
+ ldrh r3, [r5]
+ cmp r6, r3
+ bne _021DEBF4
+ lsl r5, r2, #3
+ add r0, r0, r5
+ ldr r0, [r0, #4]
+ bl FUN_02009474
+ mov r1, #0x52
+ lsl r1, r1, #2
+ ldr r0, [r4, r1]
+ add r1, #0x10
+ ldr r1, [r4, r1]
+ add r1, r1, r5
+ ldr r1, [r1, #4]
+ bl FUN_02009490
+ mov r0, #0x56
+ lsl r0, r0, #2
+ ldrb r1, [r4, #0xb]
+ ldr r0, [r4, r0]
+ add sp, #8
+ strh r1, [r0, r5]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DEBF4:
+ add r2, r2, #1
+ add r5, #8
+ cmp r2, r1
+ blo _021DEBC4
+_021DEBFC:
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD85_021DEAB4
+
+ thumb_func_start MOD85_021DEC00
+MOD85_021DEC00: ; 0x021DEC00
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x70
+ add r5, r0, #0
+ ldrb r0, [r5, #0xb]
+ add r4, r1, #0
+ ldr r1, [sp, #0x98]
+ add r6, r2, #0
+ add r7, r3, #0
+ cmp r1, r0
+ bne _021DEC1A
+ mov r0, #0
+ mvn r0, r0
+ str r0, [sp, #0x98]
+_021DEC1A:
+ ldr r0, [sp, #0x98]
+ mov r1, #0x4f
+ str r0, [sp]
+ mov r0, #0
+ mvn r0, r0
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x88]
+ lsl r1, r1, #2
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x9c]
+ ldr r2, [sp, #0x90]
+ str r0, [sp, #0x10]
+ ldr r0, [r5, r1]
+ ldr r3, [sp, #0x94]
+ str r0, [sp, #0x14]
+ add r0, r1, #4
+ ldr r0, [r5, r0]
+ str r0, [sp, #0x18]
+ add r0, r1, #0
+ add r0, #8
+ ldr r0, [r5, r0]
+ add r1, #0xc
+ str r0, [sp, #0x1c]
+ ldr r0, [r5, r1]
+ ldr r1, [sp, #0x8c]
+ str r0, [sp, #0x20]
+ mov r0, #0
+ str r0, [sp, #0x24]
+ str r0, [sp, #0x28]
+ add r0, sp, #0x4c
+ bl FUN_02008AA4
+ ldr r0, [sp, #0x88]
+ cmp r0, #1
+ bne _021DEC6A
+ ldr r0, [sp, #0x4c]
+ str r0, [r4, #8]
+ mov r0, #1
+ b _021DEC6C
+_021DEC6A:
+ mov r0, #0
+_021DEC6C:
+ str r0, [r4]
+ ldr r0, [r5, #0xc]
+ add r2, sp, #0x34
+ str r0, [sp, #0x2c]
+ add r0, sp, #0x4c
+ str r0, [sp, #0x30]
+ ldmia r6!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r0, [r6]
+ str r0, [r2]
+ ldr r0, [sp, #0xa0]
+ str r7, [sp, #0x44]
+ str r0, [sp, #0x40]
+ ldr r0, [r5]
+ str r0, [sp, #0x48]
+ add r0, sp, #0x2c
+ bl FUN_0201FF84
+ str r0, [r4, #4]
+ cmp r0, #0
+ bne _021DEC9A
+ bl ErrorHandling
+_021DEC9A:
+ add sp, #0x70
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DEC00
+
+ thumb_func_start MOD85_021DECA0
+MOD85_021DECA0: ; 0x021DECA0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ cmp r0, #1
+ bne _021DECB0
+ ldr r0, [r4, #8]
+ bl FUN_02009CDC
+_021DECB0:
+ ldr r0, [r4, #4]
+ bl FUN_0201FFC8
+ mov r0, #0
+ str r0, [r4, #4]
+ pop {r4, pc}
+ thumb_func_end MOD85_021DECA0
+
+ thumb_func_start MOD85_021DECBC
+MOD85_021DECBC: ; 0x021DECBC
+ push {r4, lr}
+ add r4, r1, #0
+ bl FUN_0202011C
+ add r2, r0, #0
+ ldmia r2!, {r0, r1}
+ stmia r4!, {r0, r1}
+ ldr r0, [r2]
+ str r0, [r4]
+ pop {r4, pc}
+ thumb_func_end MOD85_021DECBC
+
+ thumb_func_start MOD85_021DECD0
+MOD85_021DECD0: ; 0x021DECD0
+ push {r4, lr}
+ add r4, r1, #0
+ bl FUN_02020120
+ add r2, r0, #0
+ ldmia r2!, {r0, r1}
+ stmia r4!, {r0, r1}
+ ldr r0, [r2]
+ str r0, [r4]
+ pop {r4, pc}
+ thumb_func_end MOD85_021DECD0
+
+ .section .rodata
+ ; 0x021DECE4
+ .incbin "baserom.nds", 0x30AC04, 0x18BC
+
+ .section .data
+ ; 0x021E05C0
+ .incbin "baserom.nds", 0x30C4E0, 0x20