summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arm9/arm9.lcf16
-rw-r--r--arm9/global.inc44
-rw-r--r--arm9/modules/14/asm/module_14.s30403
3 files changed, 30461 insertions, 2 deletions
diff --git a/arm9/arm9.lcf b/arm9/arm9.lcf
index ea5e84c2..27b64b23 100644
--- a/arm9/arm9.lcf
+++ b/arm9/arm9.lcf
@@ -24,7 +24,7 @@ MEMORY {
MODULE_11 (RWX) : ORIGIN=0x0222D5C0, LENGTH=0
MODULE_12 (RWX) : ORIGIN=0x0222D5C0, LENGTH=0
MODULE_13 (RWX) : ORIGIN=0x02211E60, LENGTH=0
- MODULE_14 (RWX) : ORIGIN=0, LENGTH=0
+ MODULE_14 (RWX) : ORIGIN=0x021D74E0, LENGTH=0
MODULE_15 (RWX) : ORIGIN=0, LENGTH=0
MODULE_16 (RWX) : ORIGIN=0, LENGTH=0
MODULE_17 (RWX) : ORIGIN=0, LENGTH=0
@@ -538,7 +538,19 @@ SECTIONS {
module_13_arm2.o (.bss)
} >> MODULE_13
- OVERLAY_FILE(14, 0x223E00, FILE_227E00.o)
+ .MODULE.14 : AT (0x223E00)
+ {
+ module_14.o (.text)
+ module_14.o (.sdata)
+ module_14.o (.data)
+ } > MODULE_14
+
+ .MODULE.14.bss :
+ {
+ module_14.o (.sbss)
+ module_14.o (.bss)
+ } >> MODULE_14
+
OVERLAY_FILE(15, 0x233400, FILE_237400.o)
OVERLAY_FILE(16, 0x237C00, FILE_23BC00.o)
OVERLAY_FILE(17, 0x260200, FILE_264200.o)
diff --git a/arm9/global.inc b/arm9/global.inc
index 3e703522..4d3d2812 100644
--- a/arm9/global.inc
+++ b/arm9/global.inc
@@ -5034,6 +5034,50 @@
.extern WM_StartDataSharing
.extern WM_StartKeySharing
.extern WM_StepDataSharing
+.extern FUN_02002218
+.extern FUN_02006A34
+.extern FUN_02006A8C
+.extern FUN_02006AE4
+.extern FUN_02006B38
+.extern FUN_02006C30
+.extern FUN_02006C5C
+.extern FUN_02018F4C
+.extern FUN_02019270
+.extern FUN_0201928C
+.extern FUN_020192B8
+.extern FUN_02019684
+.extern FUN_02020240
+.extern FUN_0202032C
+.extern FUN_02020334
+.extern FUN_02020A40
+.extern FUN_02020AB0
+.extern FUN_02021B04
+.extern FUN_020220C4
+.extern FUN_02022144
+.extern FUN_020669BC
+.extern FUN_02066A6C
+.extern FUN_02066A94
+.extern FUN_02068824
+.extern FUN_0206885C
+.extern FUN_02068A44
+.extern FUN_02068B70
+.extern FUN_020690C8
+.extern FUN_02069ECC
+.extern FUN_0206B2B0
+.extern FUN_0206B2FC
+.extern FUN_0206B43C
+.extern FUN_0206B458
+.extern FUN_0206B4B4
+.extern FUN_0206B4E4
+.extern FUN_0206B598
+.extern FUN_0206B668
+.extern FUN_0206B688
+.extern FUN_0206BB48
+.extern FUN_0206E108
+.extern FUN_0206E10C
+.extern FUN_0206E768
+.extern FUN_020B1A1C
+.extern G3X_ResetMtxStack_2
.extern SDK_MODULE_00_ID
.extern SDK_MODULE_01_ID
.extern SDK_MODULE_02_ID
diff --git a/arm9/modules/14/asm/module_14.s b/arm9/modules/14/asm/module_14.s
new file mode 100644
index 00000000..42e1c73b
--- /dev/null
+++ b/arm9/modules/14/asm/module_14.s
@@ -0,0 +1,30403 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD14_021D74E0
+MOD14_021D74E0: ; 0x021D74E0
+ push {r3, r4, r5, lr}
+ mov r2, #1
+ add r5, r0, #0
+ mov r0, #3
+ mov r1, #9
+ lsl r2, r2, #0xe
+ bl FUN_0201681C
+ mov r2, #0xf
+ mov r0, #3
+ mov r1, #0xa
+ lsl r2, r2, #0xe
+ bl FUN_0201681C
+ mov r1, #0x87
+ add r0, r5, #0
+ lsl r1, r1, #2
+ mov r2, #9
+ bl FUN_02006268
+ add r4, r0, #0
+ beq _021D7544
+ add r0, r5, #0
+ bl FUN_0200628C
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD14_021DB220
+ mov r0, #0x45
+ lsl r0, r0, #2
+ add r0, r4, r0
+ add r1, r4, #0
+ add r2, r4, #0
+ bl MOD14_021DC76C
+ mov r0, #0x1b
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ add r0, r4, #0
+ bl MOD14_021D762C
+ mov r1, #0x6a
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r1, _021D7548 ; =MOD14_021D7680
+ add r0, r4, #0
+ bl MOD14_021D7610
+_021D7544:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D7548: .word MOD14_021D7680
+
+ thumb_func_start MOD14_021D754C
+MOD14_021D754C: ; 0x021D754C
+ push {r4, lr}
+ bl FUN_02006278
+ mov r1, #0x6b
+ add r4, r0, #0
+ lsl r1, r1, #2
+ ldr r2, [r4, r1]
+ cmp r2, #0
+ beq _021D7568
+ add r1, #8
+ add r1, r4, r1
+ blx r2
+ mov r0, #0
+ pop {r4, pc}
+_021D7568:
+ sub r0, r1, #4
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _021D75AA
+ ldr r0, _021D75B4 ; =0x021C48B8
+ ldr r2, [r0, #0x48]
+ mov r0, #2
+ lsl r0, r0, #0xa
+ tst r0, r2
+ beq _021D759E
+ sub r1, #0x98
+ ldr r0, [r4, r1]
+ bl MOD14_021DCBC0
+ cmp r0, #1
+ bne _021D759E
+ add r0, r4, #0
+ bl MOD14_021DC394
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x2b
+ bl MOD14_021DCB2C
+ mov r0, #0
+ pop {r4, pc}
+_021D759E:
+ mov r1, #0x6a
+ lsl r1, r1, #2
+ ldr r1, [r4, r1]
+ add r0, r4, #0
+ blx r1
+ pop {r4, pc}
+_021D75AA:
+ bl ErrorHandling
+ mov r0, #1
+ pop {r4, pc}
+ nop
+_021D75B4: .word 0x021C48B8
+
+ thumb_func_start MOD14_021D75B8
+MOD14_021D75B8: ; 0x021D75B8
+ push {r4, lr}
+ bl FUN_02006278
+ mov r1, #0x49
+ add r4, r0, #0
+ lsl r1, r1, #2
+ ldr r0, [r4, r1]
+ add r1, #0x95
+ bl FUN_0206BAE4
+ cmp r0, #0
+ bne _021D75DE
+ mov r0, #0x47
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02029EF8
+ bl FUN_02029F08
+_021D75DE:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCA38
+ add r0, r4, #0
+ bl MOD14_021DB398
+ mov r0, #9
+ bl FUN_020168D0
+ mov r0, #0xa
+ bl FUN_020168D0
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021D7600
+MOD14_021D7600: ; 0x021D7600
+ mov r2, #0x6a
+ lsl r2, r2, #2
+ str r1, [r0, r2]
+ mov r1, #0
+ add r2, #8
+ str r1, [r0, r2]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021D7610
+MOD14_021D7610: ; 0x021D7610
+ mov r2, #0x6b
+ lsl r2, r2, #2
+ str r1, [r0, r2]
+ mov r1, #0
+ add r2, #8
+ str r1, [r0, r2]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021D7620
+MOD14_021D7620: ; 0x021D7620
+ mov r1, #0x6b
+ mov r2, #0
+ lsl r1, r1, #2
+ str r2, [r0, r1]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021D762C
+MOD14_021D762C: ; 0x021D762C
+ push {r3, lr}
+ bl MOD14_021DC3CC
+ cmp r0, #4
+ bhi _021D764C
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D7642: ; jump table
+ .short _021D764C - _021D7642 - 2 ; case 0
+ .short _021D7650 - _021D7642 - 2 ; case 1
+ .short _021D7654 - _021D7642 - 2 ; case 2
+ .short _021D765C - _021D7642 - 2 ; case 3
+ .short _021D7658 - _021D7642 - 2 ; case 4
+_021D764C:
+ ldr r0, _021D7660 ; =MOD14_021D7750
+ pop {r3, pc}
+_021D7650:
+ ldr r0, _021D7664 ; =MOD14_021D79D0
+ pop {r3, pc}
+_021D7654:
+ ldr r0, _021D7668 ; =MOD14_021D7D20
+ pop {r3, pc}
+_021D7658:
+ ldr r0, _021D766C ; =MOD14_021D7F0C
+ pop {r3, pc}
+_021D765C:
+ ldr r0, _021D7670 ; =MOD14_021D8118
+ pop {r3, pc}
+ .align 2, 0
+_021D7660: .word MOD14_021D7750
+_021D7664: .word MOD14_021D79D0
+_021D7668: .word MOD14_021D7D20
+_021D766C: .word MOD14_021D7F0C
+_021D7670: .word MOD14_021D8118
+
+ thumb_func_start MOD14_021D7674
+MOD14_021D7674: ; 0x021D7674
+ mov r1, #0x46
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ mov r2, #1
+ str r2, [r0, #8]
+ bx lr
+
+ thumb_func_start MOD14_021D7680
+MOD14_021D7680: ; 0x021D7680
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _021D7696
+ cmp r0, #1
+ beq _021D76AA
+ cmp r0, #2
+ beq _021D76CE
+ pop {r3, r4, r5, pc}
+_021D7696:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl MOD14_021DCB2C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r3, r4, r5, pc}
+_021D76AA:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D76E4
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl MOD14_021DCB2C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r3, r4, r5, pc}
+_021D76CE:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D76E4
+ add r0, r5, #0
+ bl MOD14_021D7620
+_021D76E4:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021D76E8
+MOD14_021D76E8: ; 0x021D76E8
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _021D76FE
+ cmp r0, #1
+ beq _021D7712
+ cmp r0, #2
+ beq _021D7736
+ pop {r3, r4, r5, pc}
+_021D76FE:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl MOD14_021DCB2C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r3, r4, r5, pc}
+_021D7712:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D774C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #2
+ bl MOD14_021DCB2C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r3, r4, r5, pc}
+_021D7736:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #2
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D774C
+ add r0, r5, #0
+ bl MOD14_021D7620
+_021D774C:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021D7750
+MOD14_021D7750: ; 0x021D7750
+ push {r4, lr}
+ mov r1, #0x1b
+ add r4, r0, #0
+ lsl r1, r1, #4
+ ldr r2, [r4, r1]
+ cmp r2, #0
+ beq _021D776C
+ cmp r2, #1
+ bne _021D7764
+ b _021D793E
+_021D7764:
+ cmp r2, #2
+ bne _021D776A
+ b _021D795C
+_021D776A:
+ b _021D7970
+_021D776C:
+ ldr r1, _021D7974 ; =0x021C48B8
+ ldr r2, [r1, #0x48]
+ mov r1, #1
+ tst r1, r2
+ beq _021D779C
+ bl MOD14_021DC408
+ cmp r0, #0
+ beq _021D779C
+ add r0, r4, #0
+ bl MOD14_021DC3C4
+ cmp r0, #3
+ beq _021D7792
+ ldr r1, _021D7978 ; =MOD14_021D8804
+ add r0, r4, #0
+ bl MOD14_021D7610
+ b _021D7970
+_021D7792:
+ ldr r1, _021D797C ; =MOD14_021D8A68
+ add r0, r4, #0
+ bl MOD14_021D7610
+ b _021D7970
+_021D779C:
+ ldr r0, _021D7974 ; =0x021C48B8
+ mov r2, #2
+ ldr r1, [r0, #0x48]
+ tst r1, r2
+ beq _021D77B0
+ ldr r1, _021D7980 ; =MOD14_021D86BC
+ add r0, r4, #0
+ bl MOD14_021D7610
+ b _021D7970
+_021D77B0:
+ ldr r0, [r0, #0x44]
+ lsl r1, r2, #8
+ tst r1, r0
+ beq _021D77C8
+ add r0, r4, #0
+ bl MOD14_021DC2A4
+ ldr r1, _021D7984 ; =MOD14_021DABE8
+ add r0, r4, #0
+ bl MOD14_021D7610
+ b _021D7970
+_021D77C8:
+ add r2, #0xfe
+ add r1, r0, #0
+ tst r1, r2
+ beq _021D77E0
+ add r0, r4, #0
+ bl MOD14_021DC278
+ ldr r1, _021D7984 ; =MOD14_021DABE8
+ add r0, r4, #0
+ bl MOD14_021D7610
+ b _021D7970
+_021D77E0:
+ add r1, r4, #0
+ bl MOD14_021DB5B4
+ cmp r0, #0
+ beq _021D7818
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #5
+ bl MOD14_021DCB2C
+ add r0, r4, #0
+ bl MOD14_021DC3F4
+ cmp r0, #1
+ bne _021D780C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl MOD14_021DCB2C
+_021D780C:
+ mov r0, #0x1b
+ lsl r0, r0, #4
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ b _021D7970
+_021D7818:
+ add r0, r4, #0
+ bl MOD14_021DB9C8
+ cmp r0, #0
+ beq _021D783A
+ add r0, r4, #0
+ bl MOD14_021DC3C4
+ cmp r0, #4
+ beq _021D7862
+ mov r0, #0x61
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _021D783C
+ cmp r0, #1
+ beq _021D7846
+_021D783A:
+ b _021D792E
+_021D783C:
+ ldr r1, _021D7988 ; =MOD14_021DAC80
+ add r0, r4, #0
+ bl MOD14_021D7610
+ b _021D792E
+_021D7846:
+ add r0, r4, #0
+ bl MOD14_021DC3C4
+ cmp r0, #3
+ beq _021D785A
+ ldr r1, _021D798C ; =MOD14_021DAF78
+ add r0, r4, #0
+ bl MOD14_021D7610
+ b _021D792E
+_021D785A:
+ ldr r0, _021D7990 ; =0x000005F3
+ bl FUN_020054C8
+ b _021D792E
+_021D7862:
+ mov r0, #0x61
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _021D7876
+ cmp r0, #1
+ beq _021D78C4
+ cmp r0, #2
+ beq _021D7912
+ b _021D792E
+_021D7876:
+ add r0, r4, #0
+ bl MOD14_021DC558
+ cmp r0, #0
+ bne _021D78BC
+ add r0, r4, #0
+ bl MOD14_021DC3F0
+ cmp r0, #1
+ bne _021D78BC
+ ldr r0, _021D7994 ; =0x000005DD
+ bl FUN_020054C8
+ add r0, r4, #0
+ bl MOD14_021DC170
+ ldr r1, [r4, #8]
+ add r0, r4, #0
+ add r2, r4, #0
+ bl MOD14_021DBE88
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x31
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl MOD14_021DCB2C
+ mov r0, #1
+ b _021D7930
+_021D78BC:
+ ldr r0, _021D7990 ; =0x000005F3
+ bl FUN_020054C8
+ b _021D792E
+_021D78C4:
+ add r0, r4, #0
+ bl MOD14_021DC558
+ cmp r0, #1
+ bne _021D790A
+ add r0, r4, #0
+ bl MOD14_021DC3F0
+ cmp r0, #1
+ bne _021D790A
+ ldr r0, _021D7994 ; =0x000005DD
+ bl FUN_020054C8
+ add r0, r4, #0
+ bl MOD14_021DC170
+ ldr r1, [r4, #8]
+ add r0, r4, #0
+ add r2, r4, #0
+ bl MOD14_021DBE88
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x31
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl MOD14_021DCB2C
+ mov r0, #1
+ b _021D7930
+_021D790A:
+ ldr r0, _021D7990 ; =0x000005F3
+ bl FUN_020054C8
+ b _021D792E
+_021D7912:
+ ldr r0, _021D7994 ; =0x000005DD
+ bl FUN_020054C8
+ add r0, r4, #0
+ bl MOD14_021DC180
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x32
+ bl MOD14_021DCB2C
+ mov r0, #1
+ b _021D7930
+_021D792E:
+ mov r0, #0
+_021D7930:
+ cmp r0, #0
+ beq _021D7970
+ mov r0, #0x1b
+ mov r1, #2
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ b _021D7970
+_021D793E:
+ sub r1, #0x9c
+ ldr r0, [r4, r1]
+ mov r1, #5
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D7970
+ add r0, r4, #0
+ bl MOD14_021D762C
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD14_021D7600
+ b _021D7970
+_021D795C:
+ sub r1, #0x9c
+ ldr r0, [r4, r1]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021D7970
+ mov r0, #0x1b
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+_021D7970:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_021D7974: .word 0x021C48B8
+_021D7978: .word MOD14_021D8804
+_021D797C: .word MOD14_021D8A68
+_021D7980: .word MOD14_021D86BC
+_021D7984: .word MOD14_021DABE8
+_021D7988: .word MOD14_021DAC80
+_021D798C: .word MOD14_021DAF78
+_021D7990: .word 0x000005F3
+_021D7994: .word 0x000005DD
+
+ thumb_func_start MOD14_021D7998
+MOD14_021D7998: ; 0x021D7998
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD14_021DC430
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_0206EA98
+ cmp r0, #0
+ beq _021D79B6
+ mov r0, #0x1e
+ str r0, [r4]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021D79B6:
+ add r0, r5, #0
+ mov r1, #0xa1
+ mov r2, #0
+ bl MOD14_021DC58C
+ cmp r0, #0
+ beq _021D79CC
+ mov r0, #0x1d
+ str r0, [r4]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021D79CC:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD14_021D79D0
+MOD14_021D79D0: ; 0x021D79D0
+ push {r3, r4, lr}
+ sub sp, #4
+ mov r1, #0x1b
+ add r4, r0, #0
+ lsl r1, r1, #4
+ ldr r2, [r4, r1]
+ cmp r2, #6
+ bhi _021D7A20
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_021D79EC: ; jump table
+ .short _021D79FA - _021D79EC - 2 ; case 0
+ .short _021D7BD4 - _021D79EC - 2 ; case 1
+ .short _021D7BEE - _021D79EC - 2 ; case 2
+ .short _021D7C58 - _021D79EC - 2 ; case 3
+ .short _021D7C98 - _021D79EC - 2 ; case 4
+ .short _021D7CB6 - _021D79EC - 2 ; case 5
+ .short _021D7CE4 - _021D79EC - 2 ; case 6
+_021D79FA:
+ ldr r1, _021D7D00 ; =0x021C48B8
+ mov r2, #1
+ ldr r1, [r1, #0x48]
+ tst r2, r1
+ beq _021D7A40
+ bl MOD14_021DC3E8
+ cmp r0, #6
+ bne _021D7A16
+ mov r0, #0x1b
+ mov r1, #2
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ b _021D7CF8
+_021D7A16:
+ add r0, r4, #0
+ bl MOD14_021DC408
+ cmp r0, #0
+ bne _021D7A22
+_021D7A20:
+ b _021D7CF8
+_021D7A22:
+ add r0, r4, #0
+ bl MOD14_021DC3C4
+ cmp r0, #3
+ beq _021D7A36
+ ldr r1, _021D7D04 ; =MOD14_021D8804
+ add r0, r4, #0
+ bl MOD14_021D7610
+ b _021D7CF8
+_021D7A36:
+ ldr r1, _021D7D08 ; =MOD14_021D8A68
+ add r0, r4, #0
+ bl MOD14_021D7610
+ b _021D7CF8
+_021D7A40:
+ mov r2, #2
+ tst r2, r1
+ bne _021D7A6A
+ mov r2, #0x10
+ tst r1, r2
+ beq _021D7A56
+ bl MOD14_021DC3E8
+ mov r1, #1
+ tst r0, r1
+ bne _021D7A6A
+_021D7A56:
+ ldr r0, _021D7D00 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0x10
+ tst r0, r1
+ beq _021D7A74
+ add r0, r4, #0
+ bl MOD14_021DC3E8
+ cmp r0, #6
+ bne _021D7A74
+_021D7A6A:
+ mov r0, #0x1b
+ mov r1, #2
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ b _021D7CF8
+_021D7A74:
+ ldr r0, _021D7D00 ; =0x021C48B8
+ add r1, r4, #0
+ ldr r0, [r0, #0x44]
+ bl MOD14_021DB5B4
+ cmp r0, #0
+ beq _021D7AAE
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #5
+ bl MOD14_021DCB2C
+ add r0, r4, #0
+ bl MOD14_021DC3F4
+ cmp r0, #1
+ bne _021D7AA4
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl MOD14_021DCB2C
+_021D7AA4:
+ mov r0, #0x1b
+ mov r1, #1
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ b _021D7CF8
+_021D7AAE:
+ add r0, r4, #0
+ bl MOD14_021DB9C8
+ cmp r0, #0
+ beq _021D7AD0
+ add r0, r4, #0
+ bl MOD14_021DC3C4
+ cmp r0, #4
+ beq _021D7AF8
+ mov r0, #0x61
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _021D7AD2
+ cmp r0, #1
+ beq _021D7ADC
+_021D7AD0:
+ b _021D7BC4
+_021D7AD2:
+ ldr r1, _021D7D0C ; =MOD14_021DAC80
+ add r0, r4, #0
+ bl MOD14_021D7610
+ b _021D7BC4
+_021D7ADC:
+ add r0, r4, #0
+ bl MOD14_021DC3C4
+ cmp r0, #3
+ beq _021D7AF0
+ ldr r1, _021D7D10 ; =MOD14_021DAF78
+ add r0, r4, #0
+ bl MOD14_021D7610
+ b _021D7BC4
+_021D7AF0:
+ ldr r0, _021D7D14 ; =0x000005F3
+ bl FUN_020054C8
+ b _021D7BC4
+_021D7AF8:
+ mov r0, #0x61
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _021D7B0C
+ cmp r0, #1
+ beq _021D7B5A
+ cmp r0, #2
+ beq _021D7BA8
+ b _021D7BC4
+_021D7B0C:
+ add r0, r4, #0
+ bl MOD14_021DC558
+ cmp r0, #0
+ bne _021D7B52
+ add r0, r4, #0
+ bl MOD14_021DC3F0
+ cmp r0, #1
+ bne _021D7B52
+ ldr r0, _021D7D18 ; =0x000005DD
+ bl FUN_020054C8
+ add r0, r4, #0
+ bl MOD14_021DC170
+ ldr r1, [r4, #8]
+ add r0, r4, #0
+ add r2, r4, #0
+ bl MOD14_021DBE88
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x31
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl MOD14_021DCB2C
+ mov r0, #1
+ b _021D7BC6
+_021D7B52:
+ ldr r0, _021D7D14 ; =0x000005F3
+ bl FUN_020054C8
+ b _021D7BC4
+_021D7B5A:
+ add r0, r4, #0
+ bl MOD14_021DC558
+ cmp r0, #1
+ bne _021D7BA0
+ add r0, r4, #0
+ bl MOD14_021DC3F0
+ cmp r0, #1
+ bne _021D7BA0
+ ldr r0, _021D7D18 ; =0x000005DD
+ bl FUN_020054C8
+ add r0, r4, #0
+ bl MOD14_021DC170
+ ldr r1, [r4, #8]
+ add r0, r4, #0
+ add r2, r4, #0
+ bl MOD14_021DBE88
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x31
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl MOD14_021DCB2C
+ mov r0, #1
+ b _021D7BC6
+_021D7BA0:
+ ldr r0, _021D7D14 ; =0x000005F3
+ bl FUN_020054C8
+ b _021D7BC4
+_021D7BA8:
+ ldr r0, _021D7D18 ; =0x000005DD
+ bl FUN_020054C8
+ add r0, r4, #0
+ bl MOD14_021DC180
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x32
+ bl MOD14_021DCB2C
+ mov r0, #1
+ b _021D7BC6
+_021D7BC4:
+ mov r0, #0
+_021D7BC6:
+ cmp r0, #0
+ beq _021D7BE2
+ mov r0, #0x1b
+ mov r1, #6
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ b _021D7CF8
+_021D7BD4:
+ sub r1, #0x9c
+ ldr r0, [r4, r1]
+ mov r1, #5
+ bl MOD14_021DCB98
+ cmp r0, #0
+ bne _021D7BE4
+_021D7BE2:
+ b _021D7CF8
+_021D7BE4:
+ mov r0, #0x1b
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ b _021D7CF8
+_021D7BEE:
+ bl MOD14_021DC3C4
+ cmp r0, #0
+ bne _021D7C08
+ ldr r1, _021D7D1C ; =MOD14_021D86BC
+ add r0, r4, #0
+ bl MOD14_021D7610
+ mov r0, #0x1b
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ b _021D7CF8
+_021D7C08:
+ add r0, r4, #0
+ bl MOD14_021DC3F4
+ cmp r0, #1
+ beq _021D7C42
+ add r0, r4, #0
+ add r1, sp, #0
+ bl MOD14_021D7998
+ cmp r0, #0
+ beq _021D7C42
+ ldr r0, _021D7D14 ; =0x000005F3
+ bl FUN_020054C8
+ ldr r1, [sp]
+ add r0, r4, #0
+ bl MOD14_021DBA44
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB2C
+ mov r0, #0x1b
+ mov r1, #5
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ b _021D7CF8
+_021D7C42:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x24
+ bl MOD14_021DCB2C
+ mov r0, #0x1b
+ mov r1, #3
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ b _021D7CF8
+_021D7C58:
+ sub r1, #0x9c
+ ldr r0, [r4, r1]
+ mov r1, #0x24
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D7CF8
+ add r0, r4, #0
+ bl MOD14_021DB910
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #5
+ bl MOD14_021DCB2C
+ add r0, r4, #0
+ bl MOD14_021DC3F4
+ cmp r0, #1
+ bne _021D7C8E
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl MOD14_021DCB2C
+_021D7C8E:
+ mov r0, #0x1b
+ mov r1, #4
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ b _021D7CF8
+_021D7C98:
+ sub r1, #0x9c
+ ldr r0, [r4, r1]
+ mov r1, #5
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D7CF8
+ add r0, r4, #0
+ bl MOD14_021D762C
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD14_021D7600
+ b _021D7CF8
+_021D7CB6:
+ sub r1, #0x9c
+ ldr r0, [r4, r1]
+ mov r1, #0x18
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D7CF8
+ ldr r0, _021D7D00 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _021D7CF8
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #0x1b
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ b _021D7CF8
+_021D7CE4:
+ sub r1, #0x9c
+ ldr r0, [r4, r1]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021D7CF8
+ mov r0, #0x1b
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+_021D7CF8:
+ mov r0, #0
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_021D7D00: .word 0x021C48B8
+_021D7D04: .word MOD14_021D8804
+_021D7D08: .word MOD14_021D8A68
+_021D7D0C: .word MOD14_021DAC80
+_021D7D10: .word MOD14_021DAF78
+_021D7D14: .word 0x000005F3
+_021D7D18: .word 0x000005DD
+_021D7D1C: .word MOD14_021D86BC
+
+ thumb_func_start MOD14_021D7D20
+MOD14_021D7D20: ; 0x021D7D20
+ push {r3, r4, r5, lr}
+ mov r3, #0x1b
+ add r4, r0, #0
+ lsl r3, r3, #4
+ ldr r1, [r4, r3]
+ cmp r1, #0
+ beq _021D7D36
+ cmp r1, #1
+ bne _021D7D34
+ b _021D7ECC
+_021D7D34:
+ b _021D7EE8
+_021D7D36:
+ ldr r5, _021D7EEC ; =0x021C48B8
+ add r2, r3, #0
+ ldr r1, [r5, #0x44]
+ add r2, #0x70
+ tst r2, r1
+ beq _021D7D50
+ bl MOD14_021DC2A4
+ ldr r1, _021D7EF0 ; =MOD14_021DABE8
+ add r0, r4, #0
+ bl MOD14_021D7610
+ b _021D7EE8
+_021D7D50:
+ sub r3, #0xa0
+ add r2, r1, #0
+ tst r2, r3
+ beq _021D7D66
+ bl MOD14_021DC278
+ ldr r1, _021D7EF0 ; =MOD14_021DABE8
+ add r0, r4, #0
+ bl MOD14_021D7610
+ b _021D7EE8
+_021D7D66:
+ ldr r3, [r5, #0x48]
+ mov r2, #1
+ tst r2, r3
+ beq _021D7D76
+ ldr r1, _021D7EF4 ; =MOD14_021D8D70
+ bl MOD14_021D7610
+ b _021D7EE8
+_021D7D76:
+ mov r2, #2
+ tst r2, r3
+ beq _021D7D84
+ ldr r1, _021D7EF8 ; =MOD14_021D86BC
+ bl MOD14_021D7610
+ b _021D7EE8
+_021D7D84:
+ add r0, r1, #0
+ add r1, r4, #0
+ bl MOD14_021DB5B4
+ cmp r0, #0
+ beq _021D7DBC
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #5
+ bl MOD14_021DCB2C
+ add r0, r4, #0
+ bl MOD14_021DC3F4
+ cmp r0, #1
+ bne _021D7DB2
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl MOD14_021DCB2C
+_021D7DB2:
+ mov r0, #0x1b
+ mov r1, #1
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ b _021D7EE8
+_021D7DBC:
+ add r0, r4, #0
+ bl MOD14_021DB9C8
+ cmp r0, #0
+ beq _021D7DDE
+ add r0, r4, #0
+ bl MOD14_021DC3C4
+ cmp r0, #4
+ beq _021D7E06
+ mov r0, #0x61
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _021D7DE0
+ cmp r0, #1
+ beq _021D7DEA
+_021D7DDE:
+ b _021D7EE8
+_021D7DE0:
+ ldr r1, _021D7EFC ; =MOD14_021DAC80
+ add r0, r4, #0
+ bl MOD14_021D7610
+ b _021D7EE8
+_021D7DEA:
+ add r0, r4, #0
+ bl MOD14_021DC3C4
+ cmp r0, #3
+ beq _021D7DFE
+ ldr r1, _021D7F00 ; =MOD14_021DAF78
+ add r0, r4, #0
+ bl MOD14_021D7610
+ b _021D7EE8
+_021D7DFE:
+ ldr r0, _021D7F04 ; =0x000005F3
+ bl FUN_020054C8
+ b _021D7EE8
+_021D7E06:
+ mov r0, #0x61
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _021D7E1A
+ cmp r0, #1
+ beq _021D7E66
+ cmp r0, #2
+ beq _021D7EB2
+ b _021D7EE8
+_021D7E1A:
+ add r0, r4, #0
+ bl MOD14_021DC558
+ cmp r0, #0
+ bne _021D7E5E
+ add r0, r4, #0
+ bl MOD14_021DC3F0
+ cmp r0, #1
+ bne _021D7E5E
+ ldr r0, _021D7F08 ; =0x000005DD
+ bl FUN_020054C8
+ add r0, r4, #0
+ bl MOD14_021DC170
+ ldr r1, [r4, #8]
+ add r0, r4, #0
+ add r2, r4, #0
+ bl MOD14_021DBE88
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x31
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl MOD14_021DCB2C
+ b _021D7EE8
+_021D7E5E:
+ ldr r0, _021D7F04 ; =0x000005F3
+ bl FUN_020054C8
+ b _021D7EE8
+_021D7E66:
+ add r0, r4, #0
+ bl MOD14_021DC558
+ cmp r0, #1
+ bne _021D7EAA
+ add r0, r4, #0
+ bl MOD14_021DC3F0
+ cmp r0, #1
+ bne _021D7EAA
+ ldr r0, _021D7F08 ; =0x000005DD
+ bl FUN_020054C8
+ add r0, r4, #0
+ bl MOD14_021DC170
+ ldr r1, [r4, #8]
+ add r0, r4, #0
+ add r2, r4, #0
+ bl MOD14_021DBE88
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x31
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl MOD14_021DCB2C
+ b _021D7EE8
+_021D7EAA:
+ ldr r0, _021D7F04 ; =0x000005F3
+ bl FUN_020054C8
+ b _021D7EE8
+_021D7EB2:
+ ldr r0, _021D7F08 ; =0x000005DD
+ bl FUN_020054C8
+ add r0, r4, #0
+ bl MOD14_021DC180
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x32
+ bl MOD14_021DCB2C
+ b _021D7EE8
+_021D7ECC:
+ sub r3, #0x9c
+ ldr r0, [r4, r3]
+ mov r1, #5
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D7EE8
+ add r0, r4, #0
+ bl MOD14_021D762C
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD14_021D7600
+_021D7EE8:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D7EEC: .word 0x021C48B8
+_021D7EF0: .word MOD14_021DABE8
+_021D7EF4: .word MOD14_021D8D70
+_021D7EF8: .word MOD14_021D86BC
+_021D7EFC: .word MOD14_021DAC80
+_021D7F00: .word MOD14_021DAF78
+_021D7F04: .word 0x000005F3
+_021D7F08: .word 0x000005DD
+
+ thumb_func_start MOD14_021D7F0C
+MOD14_021D7F0C: ; 0x021D7F0C
+ push {r3, r4, r5, lr}
+ mov r1, #0x1b
+ add r4, r0, #0
+ lsl r1, r1, #4
+ ldr r2, [r4, r1]
+ cmp r2, #0
+ beq _021D7F28
+ cmp r2, #1
+ bne _021D7F20
+ b _021D80BE
+_021D7F20:
+ cmp r2, #2
+ bne _021D7F26
+ b _021D80D6
+_021D7F26:
+ b _021D80F2
+_021D7F28:
+ ldr r3, _021D80F8 ; =0x021C48B8
+ mov r1, #1
+ ldr r5, [r3, #0x48]
+ tst r1, r5
+ beq _021D7F3A
+ ldr r1, _021D80FC ; =MOD14_021D854C
+ bl MOD14_021D7610
+ b _021D80F2
+_021D7F3A:
+ mov r2, #2
+ add r1, r5, #0
+ tst r1, r2
+ beq _021D7F4A
+ ldr r1, _021D8100 ; =MOD14_021D86BC
+ bl MOD14_021D7610
+ b _021D80F2
+_021D7F4A:
+ ldr r3, [r3, #0x44]
+ lsl r1, r2, #8
+ tst r1, r3
+ beq _021D7F60
+ bl MOD14_021DC2A4
+ ldr r1, _021D8104 ; =MOD14_021DABE8
+ add r0, r4, #0
+ bl MOD14_021D7610
+ b _021D80F2
+_021D7F60:
+ add r2, #0xfe
+ add r1, r3, #0
+ tst r1, r2
+ beq _021D7F76
+ bl MOD14_021DC278
+ ldr r1, _021D8104 ; =MOD14_021DABE8
+ add r0, r4, #0
+ bl MOD14_021D7610
+ b _021D80F2
+_021D7F76:
+ add r0, r3, #0
+ add r1, r4, #0
+ bl MOD14_021DB5B4
+ cmp r0, #0
+ beq _021D7FAE
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #5
+ bl MOD14_021DCB2C
+ add r0, r4, #0
+ bl MOD14_021DC3F4
+ cmp r0, #1
+ bne _021D7FA4
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl MOD14_021DCB2C
+_021D7FA4:
+ mov r0, #0x1b
+ mov r1, #2
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ b _021D80F2
+_021D7FAE:
+ add r0, r4, #0
+ bl MOD14_021DB9C8
+ cmp r0, #0
+ beq _021D7FD0
+ add r0, r4, #0
+ bl MOD14_021DC3C4
+ cmp r0, #4
+ beq _021D7FF8
+ mov r0, #0x61
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _021D7FD2
+ cmp r0, #1
+ beq _021D7FDC
+_021D7FD0:
+ b _021D80F2
+_021D7FD2:
+ ldr r1, _021D8108 ; =MOD14_021DAC80
+ add r0, r4, #0
+ bl MOD14_021D7610
+ b _021D80F2
+_021D7FDC:
+ add r0, r4, #0
+ bl MOD14_021DC3C4
+ cmp r0, #3
+ beq _021D7FF0
+ ldr r1, _021D810C ; =MOD14_021DAF78
+ add r0, r4, #0
+ bl MOD14_021D7610
+ b _021D80F2
+_021D7FF0:
+ ldr r0, _021D8110 ; =0x000005F3
+ bl FUN_020054C8
+ b _021D80F2
+_021D7FF8:
+ mov r0, #0x61
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _021D800C
+ cmp r0, #1
+ beq _021D8058
+ cmp r0, #2
+ beq _021D80A4
+ b _021D80F2
+_021D800C:
+ add r0, r4, #0
+ bl MOD14_021DC558
+ cmp r0, #0
+ bne _021D8050
+ add r0, r4, #0
+ bl MOD14_021DC3F0
+ cmp r0, #1
+ bne _021D8050
+ ldr r0, _021D8114 ; =0x000005DD
+ bl FUN_020054C8
+ add r0, r4, #0
+ bl MOD14_021DC170
+ ldr r1, [r4, #8]
+ add r0, r4, #0
+ add r2, r4, #0
+ bl MOD14_021DBE88
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x31
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl MOD14_021DCB2C
+ b _021D80F2
+_021D8050:
+ ldr r0, _021D8110 ; =0x000005F3
+ bl FUN_020054C8
+ b _021D80F2
+_021D8058:
+ add r0, r4, #0
+ bl MOD14_021DC558
+ cmp r0, #1
+ bne _021D809C
+ add r0, r4, #0
+ bl MOD14_021DC3F0
+ cmp r0, #1
+ bne _021D809C
+ ldr r0, _021D8114 ; =0x000005DD
+ bl FUN_020054C8
+ add r0, r4, #0
+ bl MOD14_021DC170
+ ldr r1, [r4, #8]
+ add r0, r4, #0
+ add r2, r4, #0
+ bl MOD14_021DBE88
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x31
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl MOD14_021DCB2C
+ b _021D80F2
+_021D809C:
+ ldr r0, _021D8110 ; =0x000005F3
+ bl FUN_020054C8
+ b _021D80F2
+_021D80A4:
+ ldr r0, _021D8114 ; =0x000005DD
+ bl FUN_020054C8
+ add r0, r4, #0
+ bl MOD14_021DC180
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x32
+ bl MOD14_021DCB2C
+ b _021D80F2
+_021D80BE:
+ sub r1, #0x9c
+ ldr r0, [r4, r1]
+ mov r1, #4
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D80F2
+ mov r0, #0x1b
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ b _021D80F2
+_021D80D6:
+ sub r1, #0x9c
+ ldr r0, [r4, r1]
+ mov r1, #5
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D80F2
+ add r0, r4, #0
+ bl MOD14_021D762C
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD14_021D7600
+_021D80F2:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_021D80F8: .word 0x021C48B8
+_021D80FC: .word MOD14_021D854C
+_021D8100: .word MOD14_021D86BC
+_021D8104: .word MOD14_021DABE8
+_021D8108: .word MOD14_021DAC80
+_021D810C: .word MOD14_021DAF78
+_021D8110: .word 0x000005F3
+_021D8114: .word 0x000005DD
+
+ thumb_func_start MOD14_021D8118
+MOD14_021D8118: ; 0x021D8118
+ push {r3, r4, r5, lr}
+ mov r1, #0x1b
+ add r4, r0, #0
+ lsl r1, r1, #4
+ ldr r2, [r4, r1]
+ cmp r2, #5
+ bhi _021D8220
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_021D8132: ; jump table
+ .short _021D813E - _021D8132 - 2 ; case 0
+ .short _021D830E - _021D8132 - 2 ; case 1
+ .short _021D8332 - _021D8132 - 2 ; case 2
+ .short _021D8372 - _021D8132 - 2 ; case 3
+ .short _021D838A - _021D8132 - 2 ; case 4
+ .short _021D83A8 - _021D8132 - 2 ; case 5
+_021D813E:
+ ldr r3, _021D83C8 ; =0x021C48B8
+ mov r1, #1
+ ldr r5, [r3, #0x48]
+ tst r1, r5
+ beq _021D818A
+ bl MOD14_021DC3C4
+ cmp r0, #1
+ beq _021D8166
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x22
+ bl MOD14_021DCB2C
+ mov r0, #0x1b
+ mov r1, #1
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ b _021D83C4
+_021D8166:
+ ldr r0, _021D83CC ; =0x000005F3
+ bl FUN_020054C8
+ add r0, r4, #0
+ mov r1, #0x12
+ bl MOD14_021DBA44
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB2C
+ mov r0, #0x1b
+ mov r1, #5
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ b _021D83C4
+_021D818A:
+ mov r2, #2
+ add r1, r5, #0
+ tst r1, r2
+ beq _021D819A
+ ldr r1, _021D83D0 ; =MOD14_021D86BC
+ bl MOD14_021D7610
+ b _021D83C4
+_021D819A:
+ ldr r3, [r3, #0x44]
+ lsl r1, r2, #8
+ tst r1, r3
+ beq _021D81B0
+ bl MOD14_021DC2A4
+ ldr r1, _021D83D4 ; =MOD14_021DABE8
+ add r0, r4, #0
+ bl MOD14_021D7610
+ b _021D83C4
+_021D81B0:
+ add r2, #0xfe
+ add r1, r3, #0
+ tst r1, r2
+ beq _021D81C6
+ bl MOD14_021DC278
+ ldr r1, _021D83D4 ; =MOD14_021DABE8
+ add r0, r4, #0
+ bl MOD14_021D7610
+ b _021D83C4
+_021D81C6:
+ add r0, r3, #0
+ add r1, r4, #0
+ bl MOD14_021DB5B4
+ cmp r0, #0
+ beq _021D81FE
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #5
+ bl MOD14_021DCB2C
+ add r0, r4, #0
+ bl MOD14_021DC3F4
+ cmp r0, #1
+ bne _021D81F4
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl MOD14_021DCB2C
+_021D81F4:
+ mov r0, #0x1b
+ mov r1, #4
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ b _021D83C4
+_021D81FE:
+ add r0, r4, #0
+ bl MOD14_021DB9C8
+ cmp r0, #0
+ beq _021D8220
+ add r0, r4, #0
+ bl MOD14_021DC3C4
+ cmp r0, #4
+ beq _021D8248
+ mov r0, #0x61
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _021D8222
+ cmp r0, #1
+ beq _021D822C
+_021D8220:
+ b _021D83C4
+_021D8222:
+ ldr r1, _021D83D8 ; =MOD14_021DAC80
+ add r0, r4, #0
+ bl MOD14_021D7610
+ b _021D83C4
+_021D822C:
+ add r0, r4, #0
+ bl MOD14_021DC3C4
+ cmp r0, #3
+ beq _021D8240
+ ldr r1, _021D83DC ; =MOD14_021DAF78
+ add r0, r4, #0
+ bl MOD14_021D7610
+ b _021D83C4
+_021D8240:
+ ldr r0, _021D83CC ; =0x000005F3
+ bl FUN_020054C8
+ b _021D83C4
+_021D8248:
+ mov r0, #0x61
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _021D825C
+ cmp r0, #1
+ beq _021D82A8
+ cmp r0, #2
+ beq _021D82F4
+ b _021D83C4
+_021D825C:
+ add r0, r4, #0
+ bl MOD14_021DC558
+ cmp r0, #0
+ bne _021D82A0
+ add r0, r4, #0
+ bl MOD14_021DC3F0
+ cmp r0, #1
+ bne _021D82A0
+ ldr r0, _021D83E0 ; =0x000005DD
+ bl FUN_020054C8
+ add r0, r4, #0
+ bl MOD14_021DC170
+ ldr r1, [r4, #8]
+ add r0, r4, #0
+ add r2, r4, #0
+ bl MOD14_021DBE88
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x31
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl MOD14_021DCB2C
+ b _021D83C4
+_021D82A0:
+ ldr r0, _021D83CC ; =0x000005F3
+ bl FUN_020054C8
+ b _021D83C4
+_021D82A8:
+ add r0, r4, #0
+ bl MOD14_021DC558
+ cmp r0, #1
+ bne _021D82EC
+ add r0, r4, #0
+ bl MOD14_021DC3F0
+ cmp r0, #1
+ bne _021D82EC
+ ldr r0, _021D83E0 ; =0x000005DD
+ bl FUN_020054C8
+ add r0, r4, #0
+ bl MOD14_021DC170
+ ldr r1, [r4, #8]
+ add r0, r4, #0
+ add r2, r4, #0
+ bl MOD14_021DBE88
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x31
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl MOD14_021DCB2C
+ b _021D83C4
+_021D82EC:
+ ldr r0, _021D83CC ; =0x000005F3
+ bl FUN_020054C8
+ b _021D83C4
+_021D82F4:
+ ldr r0, _021D83E0 ; =0x000005DD
+ bl FUN_020054C8
+ add r0, r4, #0
+ bl MOD14_021DC180
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x32
+ bl MOD14_021DCB2C
+ b _021D83C4
+_021D830E:
+ sub r1, #0x9c
+ ldr r0, [r4, r1]
+ mov r1, #0x22
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D83C4
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x23
+ bl MOD14_021DCB2C
+ mov r0, #0x1b
+ mov r1, #2
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ b _021D83C4
+_021D8332:
+ sub r1, #0x9c
+ ldr r0, [r4, r1]
+ mov r1, #0x23
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D83C4
+ add r0, r4, #0
+ bl MOD14_021DB8D0
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #5
+ bl MOD14_021DCB2C
+ add r0, r4, #0
+ bl MOD14_021DC3F4
+ cmp r0, #1
+ bne _021D8368
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl MOD14_021DCB2C
+_021D8368:
+ mov r0, #0x1b
+ mov r1, #4
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ b _021D83C4
+_021D8372:
+ sub r1, #0x9c
+ ldr r0, [r4, r1]
+ mov r1, #4
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D83C4
+ mov r0, #0x1b
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ b _021D83C4
+_021D838A:
+ sub r1, #0x9c
+ ldr r0, [r4, r1]
+ mov r1, #5
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D83C4
+ add r0, r4, #0
+ bl MOD14_021D762C
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD14_021D7600
+ b _021D83C4
+_021D83A8:
+ ldr r0, _021D83C8 ; =0x021C48B8
+ ldr r2, [r0, #0x48]
+ mov r0, #3
+ tst r0, r2
+ beq _021D83C4
+ sub r1, #0x9c
+ ldr r0, [r4, r1]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #0x1b
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+_021D83C4:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D83C8: .word 0x021C48B8
+_021D83CC: .word 0x000005F3
+_021D83D0: .word MOD14_021D86BC
+_021D83D4: .word MOD14_021DABE8
+_021D83D8: .word MOD14_021DAC80
+_021D83DC: .word MOD14_021DAF78
+_021D83E0: .word 0x000005DD
+
+ thumb_func_start MOD14_021D83E4
+MOD14_021D83E4: ; 0x021D83E4
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD14_021DC3F4
+ cmp r0, #2
+ bne _021D8428
+ mov r0, #0x4b
+ ldr r1, [r4, #0x14]
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ ldrb r0, [r4, #0x1f]
+ cmp r0, #0
+ beq _021D8402
+ mov r0, #0
+ b _021D8404
+_021D8402:
+ mov r0, #2
+_021D8404:
+ ldr r1, _021D8500 ; =0x0000013D
+ mov r2, #1
+ strb r0, [r4, r1]
+ add r0, r1, #2
+ strb r2, [r4, r0]
+ mov r2, #0
+ add r0, r1, #3
+ strb r2, [r4, r0]
+ add r0, r1, #1
+ strb r2, [r4, r0]
+ add r0, r1, #7
+ strh r2, [r4, r0]
+ add r0, r1, #0
+ add r0, #0x67
+ ldr r0, [r4, r0]
+ sub r1, #0xd
+ str r0, [r4, r1]
+ b _021D84AA
+_021D8428:
+ add r0, r4, #0
+ bl MOD14_021DC3CC
+ cmp r0, #0
+ bne _021D8476
+ mov r0, #0x12
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_0206B330
+ add r1, r0, #0
+ mov r0, #0x12
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r2, #0
+ bl FUN_0206B5E4
+ mov r1, #0x4b
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add r0, r1, #0
+ mov r2, #2
+ add r0, #0x11
+ strb r2, [r4, r0]
+ mov r0, #0x1e
+ add r1, #0x13
+ strb r0, [r4, r1]
+ add r0, r4, #0
+ bl MOD14_021DC3E0
+ mov r1, #5
+ lsl r1, r1, #6
+ strb r0, [r4, r1]
+ mov r2, #0
+ sub r0, r1, #2
+ strb r2, [r4, r0]
+ add r0, r1, #4
+ strh r2, [r4, r0]
+ b _021D84AA
+_021D8476:
+ mov r1, #0x49
+ lsl r1, r1, #2
+ add r0, r1, #0
+ ldr r2, [r4, r1]
+ add r0, #8
+ str r2, [r4, r0]
+ add r0, r1, #0
+ mov r2, #1
+ add r0, #0x19
+ strb r2, [r4, r0]
+ ldr r0, [r4, r1]
+ bl FUN_0206B9AC
+ ldr r1, _021D8504 ; =0x0000013F
+ strb r0, [r4, r1]
+ add r0, r4, #0
+ bl MOD14_021DC3E8
+ mov r1, #5
+ lsl r1, r1, #6
+ strb r0, [r4, r1]
+ mov r2, #0
+ sub r0, r1, #2
+ strb r2, [r4, r0]
+ add r0, r1, #4
+ strh r2, [r4, r0]
+_021D84AA:
+ mov r0, #0x55
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ sub r0, #0x38
+ ldr r0, [r4, r0]
+ bl FUN_0206BB28
+ mov r1, #0x52
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ sub r1, #0x2c
+ ldr r0, [r4, r1]
+ bl FUN_02079C70
+ mov r1, #0x56
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ sub r1, #0x3c
+ ldr r0, [r4, r1]
+ bl FUN_0202A918
+ mov r1, #0x53
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ sub r1, #0x20
+ add r0, r4, r1
+ ldr r1, _021D8508 ; =0x021E626C
+ bl FUN_0207B000
+ mov r0, #0x47
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_020238F4
+ add r1, r0, #0
+ mov r0, #0x4b
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_0207C2A4
+ pop {r4, pc}
+ nop
+_021D8500: .word 0x0000013D
+_021D8504: .word 0x0000013F
+_021D8508: .word 0x021E626C
+
+ thumb_func_start MOD14_021D850C
+MOD14_021D850C: ; 0x021D850C
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x1b
+ lsl r0, r0, #4
+ ldr r1, [r4, r0]
+ cmp r1, #0
+ beq _021D8520
+ cmp r1, #1
+ beq _021D8536
+ b _021D8546
+_021D8520:
+ sub r0, #0x9c
+ ldr r0, [r4, r0]
+ mov r1, #0x33
+ bl MOD14_021DCB2C
+ mov r0, #0x1b
+ lsl r0, r0, #4
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ b _021D8546
+_021D8536:
+ sub r0, #0x9c
+ ldr r0, [r4, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021D8546
+ mov r0, #1
+ pop {r4, pc}
+_021D8546:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021D854C
+MOD14_021D854C: ; 0x021D854C
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldr r1, [r5]
+ add r4, r0, #0
+ cmp r1, #6
+ bls _021D855A
+ b _021D86A6
+_021D855A:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D8566: ; jump table
+ .short _021D8574 - _021D8566 - 2 ; case 0
+ .short _021D85CC - _021D8566 - 2 ; case 1
+ .short _021D8604 - _021D8566 - 2 ; case 2
+ .short _021D86A6 - _021D8566 - 2 ; case 3
+ .short _021D8660 - _021D8566 - 2 ; case 4
+ .short _021D8674 - _021D8566 - 2 ; case 5
+ .short _021D8690 - _021D8566 - 2 ; case 6
+_021D8574:
+ bl MOD14_021DC3C4
+ cmp r0, #3
+ bne _021D8590
+ add r0, r4, #0
+ bl MOD14_021DC538
+ cmp r0, #0
+ beq _021D8590
+ ldr r1, _021D86A8 ; =MOD14_021DA7C4
+ add r0, r4, #0
+ bl MOD14_021D7610
+ pop {r3, r4, r5, pc}
+_021D8590:
+ add r0, r4, #0
+ bl MOD14_021DC3F4
+ cmp r0, #1
+ beq _021D85BA
+ ldr r0, _021D86AC ; =0x000005F3
+ bl FUN_020054C8
+ add r0, r4, #0
+ mov r1, #0x11
+ bl MOD14_021DBA44
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB2C
+ mov r0, #4
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D85BA:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x22
+ bl MOD14_021DCB2C
+ mov r0, #1
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D85CC:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x22
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D86A6
+ ldr r0, _021D86B0 ; =0x000005DD
+ bl FUN_020054C8
+ add r0, r4, #0
+ mov r1, #0xb
+ bl MOD14_021DBA44
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD14_021E5D98
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x19
+ bl MOD14_021DCB2C
+ mov r0, #2
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D8604:
+ bl MOD14_021E6160
+ cmp r0, #0x36
+ bgt _021D8624
+ bge _021D8650
+ mov r2, #0
+ mvn r2, r2
+ cmp r0, r2
+ bgt _021D86A6
+ sub r1, r2, #1
+ cmp r0, r1
+ blt _021D86A6
+ beq _021D862A
+ cmp r0, r2
+ beq _021D8638
+ pop {r3, r4, r5, pc}
+_021D8624:
+ cmp r0, #0x37
+ beq _021D8638
+ pop {r3, r4, r5, pc}
+_021D862A:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1c
+ bl MOD14_021DCB2C
+ pop {r3, r4, r5, pc}
+_021D8638:
+ ldr r0, _021D86B0 ; =0x000005DD
+ bl FUN_020054C8
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #6
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D8650:
+ ldr r1, _021D86B4 ; =MOD14_021D850C
+ add r0, r4, #0
+ bl MOD14_021D7600
+ add r0, r4, #0
+ bl MOD14_021D7620
+ pop {r3, r4, r5, pc}
+_021D8660:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x19
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D86A6
+ mov r0, #5
+ str r0, [r5]
+_021D8674:
+ ldr r0, _021D86B8 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _021D86A6
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #6
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D8690:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D86A6
+ add r0, r4, #0
+ bl MOD14_021D7620
+_021D86A6:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D86A8: .word MOD14_021DA7C4
+_021D86AC: .word 0x000005F3
+_021D86B0: .word 0x000005DD
+_021D86B4: .word MOD14_021D850C
+_021D86B8: .word 0x021C48B8
+
+ thumb_func_start MOD14_021D86BC
+MOD14_021D86BC: ; 0x021D86BC
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldr r1, [r5]
+ add r4, r0, #0
+ cmp r1, #5
+ bls _021D86CA
+ b _021D87EC
+_021D86CA:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D86D6: ; jump table
+ .short _021D86E2 - _021D86D6 - 2 ; case 0
+ .short _021D87EC - _021D86D6 - 2 ; case 1
+ .short _021D87A6 - _021D86D6 - 2 ; case 2
+ .short _021D87BA - _021D86D6 - 2 ; case 3
+ .short _021D87D6 - _021D86D6 - 2 ; case 4
+ .short _021D8750 - _021D86D6 - 2 ; case 5
+_021D86E2:
+ bl MOD14_021DC3F4
+ cmp r0, #1
+ beq _021D870A
+ ldr r0, _021D87F0 ; =0x000005F3
+ bl FUN_020054C8
+ add r0, r4, #0
+ mov r1, #0x11
+ bl MOD14_021DBA44
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB2C
+ mov r0, #2
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D870A:
+ add r0, r4, #0
+ bl MOD14_021DC3C4
+ cmp r0, #3
+ bne _021D8728
+ add r0, r4, #0
+ bl MOD14_021DC538
+ cmp r0, #0
+ beq _021D8728
+ ldr r1, _021D87F4 ; =MOD14_021DA7C4
+ add r0, r4, #0
+ bl MOD14_021D7610
+ pop {r3, r4, r5, pc}
+_021D8728:
+ ldr r0, _021D87F8 ; =0x000005DD
+ bl FUN_020054C8
+ add r0, r4, #0
+ mov r1, #0xc
+ bl MOD14_021DBA44
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD14_021E5D98
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x19
+ bl MOD14_021DCB2C
+ mov r0, #5
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D8750:
+ bl MOD14_021E6160
+ cmp r0, #0x36
+ bgt _021D8770
+ bge _021D8794
+ mov r2, #0
+ mvn r2, r2
+ cmp r0, r2
+ bgt _021D87EC
+ sub r1, r2, #1
+ cmp r0, r1
+ blt _021D87EC
+ beq _021D8776
+ cmp r0, r2
+ beq _021D8784
+ pop {r3, r4, r5, pc}
+_021D8770:
+ cmp r0, #0x37
+ beq _021D8784
+ pop {r3, r4, r5, pc}
+_021D8776:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1c
+ bl MOD14_021DCB2C
+ pop {r3, r4, r5, pc}
+_021D8784:
+ ldr r1, _021D87FC ; =MOD14_021D850C
+ add r0, r4, #0
+ bl MOD14_021D7600
+ add r0, r4, #0
+ bl MOD14_021D7620
+ pop {r3, r4, r5, pc}
+_021D8794:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #4
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D87A6:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x19
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D87EC
+ mov r0, #3
+ str r0, [r5]
+_021D87BA:
+ ldr r0, _021D8800 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _021D87EC
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #4
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D87D6:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D87EC
+ add r0, r4, #0
+ bl MOD14_021D7620
+_021D87EC:
+ pop {r3, r4, r5, pc}
+ nop
+_021D87F0: .word 0x000005F3
+_021D87F4: .word MOD14_021DA7C4
+_021D87F8: .word 0x000005DD
+_021D87FC: .word MOD14_021D850C
+_021D8800: .word 0x021C48B8
+
+ thumb_func_start MOD14_021D8804
+MOD14_021D8804: ; 0x021D8804
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldr r1, [r5]
+ add r4, r0, #0
+ cmp r1, #5
+ bhi _021D88F6
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D881C: ; jump table
+ .short _021D8828 - _021D881C - 2 ; case 0
+ .short _021D887C - _021D881C - 2 ; case 1
+ .short _021D8890 - _021D881C - 2 ; case 2
+ .short _021D88EA - _021D881C - 2 ; case 3
+ .short _021D8A08 - _021D881C - 2 ; case 4
+ .short _021D8A20 - _021D881C - 2 ; case 5
+_021D8828:
+ bl MOD14_021DC458
+ add r2, r0, #0
+ mov r0, #0x67
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_0200ACF8
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD14_021DBA44
+ add r0, r4, #0
+ bl MOD14_021E5DC4
+ add r0, r4, #0
+ bl MOD14_021DC49C
+ cmp r0, #0
+ beq _021D8864
+ add r0, r4, #0
+ bl MOD14_021E6220
+ mov r1, #0x6e
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #3
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D8864:
+ ldr r0, _021D8A38 ; =0x000005DD
+ bl FUN_020054C8
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x19
+ bl MOD14_021DCB2C
+ mov r0, #1
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D887C:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x19
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D88F6
+ mov r0, #2
+ str r0, [r5]
+_021D8890:
+ add r0, r4, #0
+ bl MOD14_021E6160
+ mov r1, #0x6e
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #0
+ ldr r2, [r4, r1]
+ mvn r0, r0
+ cmp r2, r0
+ bgt _021D88BA
+ sub r3, r0, #2
+ cmp r2, r3
+ blt _021D88E4
+ beq _021D88F6
+ sub r3, r0, #1
+ cmp r2, r3
+ beq _021D88C0
+ cmp r2, r0
+ beq _021D88CC
+ b _021D88E4
+_021D88BA:
+ cmp r2, #0x2b
+ beq _021D88CC
+ b _021D88E4
+_021D88C0:
+ sub r1, #0xa4
+ ldr r0, [r4, r1]
+ mov r1, #0x1c
+ bl MOD14_021DCB2C
+ pop {r3, r4, r5, pc}
+_021D88CC:
+ ldr r0, _021D8A38 ; =0x000005DD
+ bl FUN_020054C8
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #4
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D88E4:
+ mov r0, #3
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D88EA:
+ mov r1, #0x6e
+ lsl r1, r1, #2
+ ldr r2, [r4, r1]
+ sub r2, #0x22
+ cmp r2, #0x13
+ bls _021D88F8
+_021D88F6:
+ b _021D8A34
+_021D88F8:
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_021D8904: ; jump table
+ .short _021D892C - _021D8904 - 2 ; case 0
+ .short _021D895E - _021D8904 - 2 ; case 1
+ .short _021D8972 - _021D8904 - 2 ; case 2
+ .short _021D89A6 - _021D8904 - 2 ; case 3
+ .short _021D8986 - _021D8904 - 2 ; case 4
+ .short _021D898E - _021D8904 - 2 ; case 5
+ .short _021D89AE - _021D8904 - 2 ; case 6
+ .short _021D8996 - _021D8904 - 2 ; case 7
+ .short _021D899E - _021D8904 - 2 ; case 8
+ .short _021D8A34 - _021D8904 - 2 ; case 9
+ .short _021D8A34 - _021D8904 - 2 ; case 10
+ .short _021D8A34 - _021D8904 - 2 ; case 11
+ .short _021D8A34 - _021D8904 - 2 ; case 12
+ .short _021D8A34 - _021D8904 - 2 ; case 13
+ .short _021D8A34 - _021D8904 - 2 ; case 14
+ .short _021D8A34 - _021D8904 - 2 ; case 15
+ .short _021D8A34 - _021D8904 - 2 ; case 16
+ .short _021D8A34 - _021D8904 - 2 ; case 17
+ .short _021D89CA - _021D8904 - 2 ; case 18
+ .short _021D89CA - _021D8904 - 2 ; case 19
+_021D892C:
+ bl MOD14_021DC3CC
+ cmp r0, #0
+ bne _021D8948
+ add r0, r4, #0
+ bl MOD14_021DC49C
+ cmp r0, #1
+ bne _021D8948
+ ldr r1, _021D8A3C ; =MOD14_021D9230
+ add r0, r4, #0
+ bl MOD14_021D7610
+ pop {r3, r4, r5, pc}
+_021D8948:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ ldr r1, _021D8A40 ; =MOD14_021D94BC
+ add r0, r4, #0
+ bl MOD14_021D7610
+ pop {r3, r4, r5, pc}
+_021D895E:
+ sub r1, #0xa4
+ ldr r0, [r4, r1]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ ldr r1, _021D8A44 ; =MOD14_021D95B4
+ add r0, r4, #0
+ bl MOD14_021D7610
+ pop {r3, r4, r5, pc}
+_021D8972:
+ sub r1, #0xa4
+ ldr r0, [r4, r1]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ ldr r1, _021D8A48 ; =MOD14_021D96B0
+ add r0, r4, #0
+ bl MOD14_021D7610
+ pop {r3, r4, r5, pc}
+_021D8986:
+ ldr r1, _021D8A4C ; =MOD14_021D9770
+ bl MOD14_021D7610
+ pop {r3, r4, r5, pc}
+_021D898E:
+ ldr r1, _021D8A50 ; =MOD14_021D9934
+ bl MOD14_021D7610
+ pop {r3, r4, r5, pc}
+_021D8996:
+ ldr r1, _021D8A54 ; =MOD14_021D9138
+ bl MOD14_021D7610
+ pop {r3, r4, r5, pc}
+_021D899E:
+ ldr r1, _021D8A58 ; =MOD14_021D9C98
+ bl MOD14_021D7610
+ pop {r3, r4, r5, pc}
+_021D89A6:
+ ldr r1, _021D8A5C ; =MOD14_021DA2C8
+ bl MOD14_021D7610
+ pop {r3, r4, r5, pc}
+_021D89AE:
+ bl MOD14_021DC430
+ cmp r0, #0
+ bne _021D89C0
+ ldr r1, _021D8A60 ; =MOD14_021DA3E4
+ add r0, r4, #0
+ bl MOD14_021D7610
+ pop {r3, r4, r5, pc}
+_021D89C0:
+ ldr r1, _021D8A64 ; =MOD14_021DA5F0
+ add r0, r4, #0
+ bl MOD14_021D7610
+ pop {r3, r4, r5, pc}
+_021D89CA:
+ bl MOD14_021DC170
+ ldr r1, [r4, #8]
+ add r0, r4, #0
+ add r2, r4, #0
+ bl MOD14_021DBE88
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x30
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl MOD14_021DCB2C
+ ldr r0, _021D8A38 ; =0x000005DD
+ bl FUN_020054C8
+ mov r0, #5
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D8A08:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D8A34
+ add r0, r4, #0
+ bl MOD14_021D7620
+ pop {r3, r4, r5, pc}
+_021D8A20:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021D8A34
+ add r0, r4, #0
+ bl MOD14_021D7620
+_021D8A34:
+ pop {r3, r4, r5, pc}
+ nop
+_021D8A38: .word 0x000005DD
+_021D8A3C: .word MOD14_021D9230
+_021D8A40: .word MOD14_021D94BC
+_021D8A44: .word MOD14_021D95B4
+_021D8A48: .word MOD14_021D96B0
+_021D8A4C: .word MOD14_021D9770
+_021D8A50: .word MOD14_021D9934
+_021D8A54: .word MOD14_021D9138
+_021D8A58: .word MOD14_021D9C98
+_021D8A5C: .word MOD14_021DA2C8
+_021D8A60: .word MOD14_021DA3E4
+_021D8A64: .word MOD14_021DA5F0
+
+ thumb_func_start MOD14_021D8A68
+MOD14_021D8A68: ; 0x021D8A68
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldr r1, [r5]
+ add r4, r0, #0
+ cmp r1, #7
+ bls _021D8A76
+ b _021D8D54
+_021D8A76:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D8A82: ; jump table
+ .short _021D8A92 - _021D8A82 - 2 ; case 0
+ .short _021D8B3C - _021D8A82 - 2 ; case 1
+ .short _021D8B50 - _021D8A82 - 2 ; case 2
+ .short _021D8BB0 - _021D8A82 - 2 ; case 3
+ .short _021D8CE0 - _021D8A82 - 2 ; case 4
+ .short _021D8CF8 - _021D8A82 - 2 ; case 5
+ .short _021D8D24 - _021D8A82 - 2 ; case 6
+ .short _021D8D3A - _021D8A82 - 2 ; case 7
+_021D8A92:
+ bl MOD14_021DC538
+ add r2, r0, #0
+ beq _021D8AB0
+ mov r0, #0x67
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_0200AE38
+ add r0, r4, #0
+ mov r1, #0x19
+ bl MOD14_021DBA44
+ b _021D8AD8
+_021D8AB0:
+ add r0, r4, #0
+ bl MOD14_021DC430
+ add r2, r0, #0
+ beq _021D8AD0
+ mov r0, #0x67
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_0200AE38
+ add r0, r4, #0
+ mov r1, #0x19
+ bl MOD14_021DBA44
+ b _021D8AD8
+_021D8AD0:
+ add r0, r4, #0
+ mov r1, #0x1c
+ bl MOD14_021DBA44
+_021D8AD8:
+ add r0, r4, #0
+ bl MOD14_021E5F04
+ add r0, r4, #0
+ bl MOD14_021DC584
+ cmp r0, #0
+ beq _021D8B08
+ ldr r0, _021D8D58 ; =0x000005F3
+ bl FUN_020054C8
+ add r0, r4, #0
+ mov r1, #0x22
+ bl MOD14_021DBA44
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB2C
+ mov r0, #7
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D8B08:
+ add r0, r4, #0
+ bl MOD14_021DC49C
+ cmp r0, #0
+ beq _021D8B24
+ add r0, r4, #0
+ bl MOD14_021E6220
+ mov r1, #0x6e
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #3
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D8B24:
+ ldr r0, _021D8D5C ; =0x000005DD
+ bl FUN_020054C8
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x19
+ bl MOD14_021DCB2C
+ mov r0, #1
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D8B3C:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x19
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D8BBC
+ mov r0, #2
+ str r0, [r5]
+_021D8B50:
+ add r0, r4, #0
+ bl MOD14_021E6160
+ mov r1, #0x6e
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #0
+ ldr r2, [r4, r1]
+ mvn r0, r0
+ cmp r2, r0
+ bgt _021D8B7A
+ sub r3, r0, #2
+ cmp r2, r3
+ blt _021D8BA4
+ beq _021D8BBC
+ sub r3, r0, #1
+ cmp r2, r3
+ beq _021D8B80
+ cmp r2, r0
+ beq _021D8B8C
+ b _021D8BA4
+_021D8B7A:
+ cmp r2, #0x33
+ beq _021D8B8C
+ b _021D8BA4
+_021D8B80:
+ sub r1, #0xa4
+ ldr r0, [r4, r1]
+ mov r1, #0x1c
+ bl MOD14_021DCB2C
+ pop {r3, r4, r5, pc}
+_021D8B8C:
+ ldr r0, _021D8D5C ; =0x000005DD
+ bl FUN_020054C8
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #4
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D8BA4:
+ ldr r0, _021D8D5C ; =0x000005DD
+ bl FUN_020054C8
+ mov r0, #3
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D8BB0:
+ mov r1, #0x6e
+ lsl r1, r1, #2
+ ldr r1, [r4, r1]
+ sub r1, #0x2e
+ cmp r1, #4
+ bls _021D8BBE
+_021D8BBC:
+ b _021D8D54
+_021D8BBE:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D8BCA: ; jump table
+ .short _021D8BD4 - _021D8BCA - 2 ; case 0
+ .short _021D8C12 - _021D8BCA - 2 ; case 1
+ .short _021D8C74 - _021D8BCA - 2 ; case 2
+ .short _021D8C7C - _021D8BCA - 2 ; case 3
+ .short _021D8CD8 - _021D8BCA - 2 ; case 4
+_021D8BD4:
+ bl MOD14_021DC538
+ cmp r0, #0
+ beq _021D8C08
+ add r0, r4, #0
+ add r1, r4, #0
+ bl MOD14_021DC31C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x14
+ bl MOD14_021DCB2C
+ ldr r0, _021D8D5C ; =0x000005DD
+ bl FUN_020054C8
+ mov r0, #5
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D8C08:
+ ldr r1, _021D8D60 ; =MOD14_021DA3E4
+ add r0, r4, #0
+ bl MOD14_021D7610
+ pop {r3, r4, r5, pc}
+_021D8C12:
+ bl MOD14_021DC430
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_0206EA98
+ cmp r0, #0
+ beq _021D8C42
+ ldr r0, _021D8D58 ; =0x000005F3
+ bl FUN_020054C8
+ add r0, r4, #0
+ mov r1, #0x18
+ bl MOD14_021DBA44
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB2C
+ mov r0, #7
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D8C42:
+ add r0, r4, #0
+ add r1, r4, #0
+ bl MOD14_021DC2E4
+ add r0, r4, #0
+ bl MOD14_021D7674
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x13
+ bl MOD14_021DCB2C
+ ldr r0, _021D8D5C ; =0x000005DD
+ bl FUN_020054C8
+ mov r0, #5
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D8C74:
+ ldr r1, _021D8D64 ; =MOD14_021DA9D0
+ bl MOD14_021D7610
+ pop {r3, r4, r5, pc}
+_021D8C7C:
+ bl MOD14_021DC430
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_0206EA98
+ cmp r0, #0
+ beq _021D8CAC
+ ldr r0, _021D8D58 ; =0x000005F3
+ bl FUN_020054C8
+ add r0, r4, #0
+ mov r1, #0x18
+ bl MOD14_021DBA44
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB2C
+ mov r0, #7
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D8CAC:
+ add r0, r4, #0
+ add r1, r4, #0
+ bl MOD14_021DC334
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x15
+ bl MOD14_021DCB2C
+ ldr r0, _021D8D5C ; =0x000005DD
+ bl FUN_020054C8
+ mov r0, #5
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D8CD8:
+ ldr r1, _021D8D68 ; =MOD14_021DA7C4
+ bl MOD14_021D7610
+ pop {r3, r4, r5, pc}
+_021D8CE0:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D8D54
+ add r0, r4, #0
+ bl MOD14_021D7620
+ pop {r3, r4, r5, pc}
+_021D8CF8:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021D8D54
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x16
+ bl MOD14_021DCB2C
+ mov r0, #6
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D8D24:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021D8D54
+ add r0, r4, #0
+ bl MOD14_021D7620
+ pop {r3, r4, r5, pc}
+_021D8D3A:
+ ldr r0, _021D8D6C ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _021D8D54
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #6
+ str r0, [r5]
+_021D8D54:
+ pop {r3, r4, r5, pc}
+ nop
+_021D8D58: .word 0x000005F3
+_021D8D5C: .word 0x000005DD
+_021D8D60: .word MOD14_021DA3E4
+_021D8D64: .word MOD14_021DA9D0
+_021D8D68: .word MOD14_021DA7C4
+_021D8D6C: .word 0x021C48B8
+
+ thumb_func_start MOD14_021D8D70
+MOD14_021D8D70: ; 0x021D8D70
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldr r1, [r5]
+ add r4, r0, #0
+ cmp r1, #7
+ bls _021D8D7E
+ b _021D8EB0
+_021D8D7E:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D8D8A: ; jump table
+ .short _021D8D9A - _021D8D8A - 2 ; case 0
+ .short _021D8DDE - _021D8D8A - 2 ; case 1
+ .short _021D8DF2 - _021D8D8A - 2 ; case 2
+ .short _021D8E42 - _021D8D8A - 2 ; case 3
+ .short _021D8E82 - _021D8D8A - 2 ; case 4
+ .short _021D8EB0 - _021D8D8A - 2 ; case 5
+ .short _021D8EB0 - _021D8D8A - 2 ; case 6
+ .short _021D8E9A - _021D8D8A - 2 ; case 7
+_021D8D9A:
+ mov r1, #7
+ bl MOD14_021DBA44
+ add r0, r4, #0
+ bl MOD14_021E5F84
+ add r0, r4, #0
+ bl MOD14_021DC49C
+ cmp r0, #0
+ ldr r0, _021D8EB4 ; =0x000005DD
+ beq _021D8DC8
+ bl FUN_020054C8
+ add r0, r4, #0
+ bl MOD14_021E6220
+ mov r1, #0x6e
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #3
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D8DC8:
+ bl FUN_020054C8
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x19
+ bl MOD14_021DCB2C
+ mov r0, #1
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D8DDE:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x19
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D8EB0
+ mov r0, #2
+ str r0, [r5]
+_021D8DF2:
+ add r0, r4, #0
+ bl MOD14_021E6160
+ mov r1, #0x6e
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ add r0, r0, #3
+ cmp r0, #6
+ bhi _021D8E3C
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D8E12: ; jump table
+ .short _021D8EB0 - _021D8E12 - 2 ; case 0
+ .short _021D8E20 - _021D8E12 - 2 ; case 1
+ .short _021D8E2C - _021D8E12 - 2 ; case 2
+ .short _021D8E3C - _021D8E12 - 2 ; case 3
+ .short _021D8E3C - _021D8E12 - 2 ; case 4
+ .short _021D8E3C - _021D8E12 - 2 ; case 5
+ .short _021D8E2C - _021D8E12 - 2 ; case 6
+_021D8E20:
+ sub r1, #0xa4
+ ldr r0, [r4, r1]
+ mov r1, #0x1c
+ bl MOD14_021DCB2C
+ pop {r3, r4, r5, pc}
+_021D8E2C:
+ sub r1, #0xa4
+ ldr r0, [r4, r1]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #4
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D8E3C:
+ mov r0, #3
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D8E42:
+ mov r1, #0x6e
+ lsl r1, r1, #2
+ ldr r2, [r4, r1]
+ cmp r2, #0
+ beq _021D8E56
+ cmp r2, #1
+ beq _021D8E6A
+ cmp r2, #2
+ beq _021D8E7A
+ pop {r3, r4, r5, pc}
+_021D8E56:
+ sub r1, #0xa4
+ ldr r0, [r4, r1]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ ldr r1, _021D8EB8 ; =MOD14_021D8EC4
+ add r0, r4, #0
+ bl MOD14_021D7610
+ pop {r3, r4, r5, pc}
+_021D8E6A:
+ sub r1, #0xa4
+ ldr r0, [r4, r1]
+ mov r1, #0x1b
+ bl MOD14_021DCB2C
+ mov r0, #7
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D8E7A:
+ ldr r1, _021D8EBC ; =MOD14_021DA1D4
+ bl MOD14_021D7610
+ pop {r3, r4, r5, pc}
+_021D8E82:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D8EB0
+ add r0, r4, #0
+ bl MOD14_021D7620
+ pop {r3, r4, r5, pc}
+_021D8E9A:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021D8EB0
+ ldr r1, _021D8EC0 ; =MOD14_021D8F6C
+ add r0, r4, #0
+ bl MOD14_021D7610
+_021D8EB0:
+ pop {r3, r4, r5, pc}
+ nop
+_021D8EB4: .word 0x000005DD
+_021D8EB8: .word MOD14_021D8EC4
+_021D8EBC: .word MOD14_021DA1D4
+_021D8EC0: .word MOD14_021D8F6C
+
+ thumb_func_start MOD14_021D8EC4
+MOD14_021D8EC4: ; 0x021D8EC4
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ ldr r1, [r4]
+ add r5, r0, #0
+ cmp r1, #0
+ beq _021D8EDA
+ cmp r1, #1
+ beq _021D8EEE
+ cmp r1, #2
+ beq _021D8F52
+ pop {r4, r5, r6, pc}
+_021D8EDA:
+ bl MOD14_021DC424
+ add r1, r0, #0
+ add r0, r5, #0
+ mov r2, #8
+ bl MOD14_021DAA7C
+ mov r0, #1
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_021D8EEE:
+ bl MOD14_021DAAA8
+ cmp r0, #0
+ beq _021D8F66
+ ldr r0, _021D8F68 ; =0x000001C1
+ ldrsb r6, [r5, r0]
+ mov r0, #0
+ mvn r0, r0
+ cmp r6, r0
+ beq _021D8F0C
+ add r0, r5, #0
+ bl MOD14_021DC424
+ cmp r6, r0
+ bne _021D8F12
+_021D8F0C:
+ mov r0, #2
+ str r0, [r4]
+ b _021D8F38
+_021D8F12:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD14_021DC2C4
+ mov r1, #0x12
+ lsl r1, r1, #4
+ ldr r0, [r5, r1]
+ add r1, #0xa1
+ ldrsb r1, [r5, r1]
+ bl FUN_0206B428
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #4
+ bl MOD14_021DCB2C
+ mov r0, #2
+ str r0, [r4]
+_021D8F38:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x20
+ bl MOD14_021DCB2C
+ pop {r4, r5, r6, pc}
+_021D8F52:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021D8F66
+ add r0, r5, #0
+ bl MOD14_021D7620
+_021D8F66:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021D8F68: .word 0x000001C1
+
+ thumb_func_start MOD14_021D8F6C
+MOD14_021D8F6C: ; 0x021D8F6C
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ ldr r0, [r5]
+ cmp r0, #8
+ bhi _021D8FD8
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D8F84: ; jump table
+ .short _021D8F96 - _021D8F84 - 2 ; case 0
+ .short _021D8FA2 - _021D8F84 - 2 ; case 1
+ .short _021D8FC8 - _021D8F84 - 2 ; case 2
+ .short _021D8FDE - _021D8F84 - 2 ; case 3
+ .short _021D9062 - _021D8F84 - 2 ; case 4
+ .short _021D9076 - _021D8F84 - 2 ; case 5
+ .short _021D90FC - _021D8F84 - 2 ; case 6
+ .short _021D910E - _021D8F84 - 2 ; case 7
+ .short _021D9122 - _021D8F84 - 2 ; case 8
+_021D8F96:
+ mov r0, #0x6e
+ mov r1, #4
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ mov r0, #1
+ str r0, [r5]
+_021D8FA2:
+ add r0, r4, #0
+ mov r1, #9
+ bl MOD14_021DBA44
+ mov r1, #0x6e
+ lsl r1, r1, #2
+ ldr r1, [r4, r1]
+ add r0, r4, #0
+ bl MOD14_021E5FC8
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x19
+ bl MOD14_021DCB2C
+ mov r0, #2
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D8FC8:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x19
+ bl MOD14_021DCB98
+ cmp r0, #0
+ bne _021D8FDA
+_021D8FD8:
+ b _021D9136
+_021D8FDA:
+ mov r0, #3
+ str r0, [r5]
+_021D8FDE:
+ add r0, r4, #0
+ bl MOD14_021E6160
+ add r0, r0, #3
+ cmp r0, #0xc
+ bhi _021D901E
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D8FF6: ; jump table
+ .short _021D9136 - _021D8FF6 - 2 ; case 0
+ .short _021D9010 - _021D8FF6 - 2 ; case 1
+ .short _021D901E - _021D8FF6 - 2 ; case 2
+ .short _021D901E - _021D8FF6 - 2 ; case 3
+ .short _021D901E - _021D8FF6 - 2 ; case 4
+ .short _021D901E - _021D8FF6 - 2 ; case 5
+ .short _021D901E - _021D8FF6 - 2 ; case 6
+ .short _021D9030 - _021D8FF6 - 2 ; case 7
+ .short _021D9030 - _021D8FF6 - 2 ; case 8
+ .short _021D9030 - _021D8FF6 - 2 ; case 9
+ .short _021D9030 - _021D8FF6 - 2 ; case 10
+ .short _021D9030 - _021D8FF6 - 2 ; case 11
+ .short _021D9030 - _021D8FF6 - 2 ; case 12
+_021D9010:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1c
+ bl MOD14_021DCB2C
+ pop {r3, r4, r5, pc}
+_021D901E:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #8
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D9030:
+ add r0, r4, #0
+ bl MOD14_021E6210
+ mov r1, #0x6e
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add r0, r4, #0
+ mov r1, #0xa
+ bl MOD14_021DBA44
+ mov r1, #0x6e
+ lsl r1, r1, #2
+ ldr r1, [r4, r1]
+ add r0, r4, #0
+ bl MOD14_021E6038
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x19
+ bl MOD14_021DCB2C
+ mov r0, #4
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D9062:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x19
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D9136
+ mov r0, #5
+ str r0, [r5]
+_021D9076:
+ add r0, r4, #0
+ bl MOD14_021E6160
+ add r0, r0, #3
+ cmp r0, #6
+ bhi _021D90B0
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D908E: ; jump table
+ .short _021D9136 - _021D908E - 2 ; case 0
+ .short _021D909C - _021D908E - 2 ; case 1
+ .short _021D90AA - _021D908E - 2 ; case 2
+ .short _021D90B0 - _021D908E - 2 ; case 3
+ .short _021D90B0 - _021D908E - 2 ; case 4
+ .short _021D90B0 - _021D908E - 2 ; case 5
+ .short _021D90AA - _021D908E - 2 ; case 6
+_021D909C:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1c
+ bl MOD14_021DCB2C
+ pop {r3, r4, r5, pc}
+_021D90AA:
+ mov r0, #1
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D90B0:
+ add r0, r4, #0
+ bl MOD14_021E6210
+ mov r1, #0x6e
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r2, [r4, r1]
+ cmp r2, #0xa
+ blt _021D90F2
+ cmp r2, #0x21
+ bgt _021D90F2
+ sub r1, #0x98
+ ldr r0, [r4, r1]
+ mov r1, #0
+ mvn r1, r1
+ sub r2, #0xa
+ bl FUN_0206B458
+ mov r1, #0x12
+ lsl r1, r1, #4
+ ldr r1, [r4, r1]
+ add r0, r4, #0
+ bl MOD14_021DB59C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #6
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D90F2:
+ bl ErrorHandling
+ mov r0, #1
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D90FC:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x21
+ bl MOD14_021DCB2C
+ mov r0, #8
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D910E:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021D9136
+ mov r0, #1
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D9122:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021D9136
+ add r0, r4, #0
+ bl MOD14_021D7620
+_021D9136:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD14_021D9138
+MOD14_021D9138: ; 0x021D9138
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldr r1, [r4]
+ add r5, r0, #0
+ cmp r1, #0
+ beq _021D914E
+ cmp r1, #1
+ beq _021D916C
+ cmp r1, #2
+ beq _021D921A
+ pop {r3, r4, r5, pc}
+_021D914E:
+ bl MOD14_021E60B4
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD14_021DBA44
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x19
+ bl MOD14_021DCB2C
+ mov r0, #1
+ str r0, [r4]
+ pop {r3, r4, r5, pc}
+_021D916C:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021D922E
+ add r0, r5, #0
+ bl MOD14_021E6160
+ mov r2, #2
+ add r1, r0, #0
+ mvn r2, r2
+ cmp r1, r2
+ bhi _021D919C
+ bhs _021D922E
+ cmp r1, #0x2d
+ bhi _021D91FC
+ cmp r1, #0x2c
+ blo _021D91FC
+ beq _021D91CC
+ cmp r1, #0x2d
+ beq _021D91BA
+ b _021D91FC
+_021D919C:
+ add r0, r2, #1
+ cmp r1, r0
+ blo _021D91FC
+ beq _021D91AC
+ add r0, r2, #2
+ cmp r1, r0
+ beq _021D91BA
+ b _021D91FC
+_021D91AC:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x1c
+ bl MOD14_021DCB2C
+ pop {r3, r4, r5, pc}
+_021D91BA:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #2
+ str r0, [r4]
+ pop {r3, r4, r5, pc}
+_021D91CC:
+ add r0, r5, #0
+ bl MOD14_021DC1AC
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #7
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x27
+ bl MOD14_021DCB2C
+ mov r0, #2
+ str r0, [r4]
+ pop {r3, r4, r5, pc}
+_021D91FC:
+ cmp r1, #0x38
+ blo _021D922E
+ cmp r1, #0x3d
+ bhi _021D922E
+ add r0, r5, #0
+ sub r1, #0x38
+ bl MOD14_021E6118
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x1d
+ bl MOD14_021DCB2C
+ pop {r3, r4, r5, pc}
+_021D921A:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021D922E
+ add r0, r5, #0
+ bl MOD14_021D7620
+_021D922E:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD14_021D9230
+MOD14_021D9230: ; 0x021D9230
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldr r1, [r5]
+ add r4, r0, #0
+ cmp r1, #4
+ bls _021D923E
+ b _021D9454
+_021D923E:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D924A: ; jump table
+ .short _021D9254 - _021D924A - 2 ; case 0
+ .short _021D9284 - _021D924A - 2 ; case 1
+ .short _021D9326 - _021D924A - 2 ; case 2
+ .short _021D942C - _021D924A - 2 ; case 3
+ .short _021D9440 - _021D924A - 2 ; case 4
+_021D9254:
+ ldr r1, _021D9458 ; =0x021C48B8
+ ldr r2, [r1, #0x44]
+ mov r1, #1
+ tst r1, r2
+ beq _021D927C
+ add r1, r4, #0
+ bl MOD14_021DBBD0
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x2c
+ bl MOD14_021DCB2C
+ ldr r0, _021D945C ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #1
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D927C:
+ ldr r1, _021D9460 ; =MOD14_021D94BC
+ bl MOD14_021D7610
+ pop {r3, r4, r5, pc}
+_021D9284:
+ ldr r1, _021D9458 ; =0x021C48B8
+ ldr r2, [r1, #0x44]
+ mov r1, #1
+ tst r1, r2
+ beq _021D92E8
+ add r0, r2, #0
+ add r1, r4, #0
+ bl MOD14_021DB790
+ cmp r0, #1
+ beq _021D92B6
+ cmp r0, #2
+ bne _021D9342
+ ldr r1, _021D9458 ; =0x021C48B8
+ mov r0, #0xf0
+ ldr r2, [r1, #0x44]
+ ldr r1, [r1, #0x48]
+ and r2, r0
+ and r0, r1
+ cmp r2, r0
+ bne _021D9342
+ ldr r0, _021D9464 ; =0x000005F3
+ bl FUN_020054C8
+ pop {r3, r4, r5, pc}
+_021D92B6:
+ add r0, r4, #0
+ add r1, r4, #0
+ bl MOD14_021DBBEC
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x2e
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #5
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl MOD14_021DCB2C
+ mov r0, #3
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D92E8:
+ bl MOD14_021DC4DC
+ cmp r0, #0
+ beq _021D9306
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x2d
+ bl MOD14_021DCB2C
+ ldr r1, _021D9460 ; =MOD14_021D94BC
+ add r0, r4, #0
+ bl MOD14_021D7610
+ pop {r3, r4, r5, pc}
+_021D9306:
+ add r0, r4, #0
+ add r1, r4, #0
+ bl MOD14_021DBAE0
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x2f
+ bl MOD14_021DCB2C
+ ldr r0, _021D9468 ; =0x000005EB
+ bl FUN_020054C8
+ mov r0, #2
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D9326:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021D9342
+ ldr r0, _021D9458 ; =0x021C48B8
+ add r1, r4, #0
+ ldr r0, [r0, #0x44]
+ bl MOD14_021DB790
+ cmp r0, #4
+ bls _021D9344
+_021D9342:
+ b _021D9454
+_021D9344:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D9350: ; jump table
+ .short _021D93E2 - _021D9350 - 2 ; case 0
+ .short _021D9372 - _021D9350 - 2 ; case 1
+ .short _021D935A - _021D9350 - 2 ; case 2
+ .short _021D9396 - _021D9350 - 2 ; case 3
+ .short _021D93BC - _021D9350 - 2 ; case 4
+_021D935A:
+ ldr r1, _021D9458 ; =0x021C48B8
+ mov r0, #0xf0
+ ldr r2, [r1, #0x44]
+ ldr r1, [r1, #0x48]
+ and r2, r0
+ and r0, r1
+ cmp r2, r0
+ bne _021D9454
+ ldr r0, _021D9464 ; =0x000005F3
+ bl FUN_020054C8
+ pop {r3, r4, r5, pc}
+_021D9372:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #5
+ bl MOD14_021DCB2C
+ add r0, r4, #0
+ bl MOD14_021DC3F4
+ mov r1, #6
+ tst r0, r1
+ bne _021D9454
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCB2C
+ pop {r3, r4, r5, pc}
+_021D9396:
+ add r0, r4, #0
+ bl MOD14_021DC2A4
+ add r0, r4, #0
+ bl MOD14_021DC424
+ add r1, r0, #0
+ mov r0, #0x12
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_0206B428
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #4
+ bl MOD14_021DCB2C
+ pop {r3, r4, r5, pc}
+_021D93BC:
+ add r0, r4, #0
+ bl MOD14_021DC278
+ add r0, r4, #0
+ bl MOD14_021DC424
+ add r1, r0, #0
+ mov r0, #0x12
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_0206B428
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #4
+ bl MOD14_021DCB2C
+ pop {r3, r4, r5, pc}
+_021D93E2:
+ ldr r0, _021D9458 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #1
+ tst r0, r1
+ beq _021D941E
+ add r0, r4, #0
+ bl MOD14_021D9470
+ cmp r0, #0
+ beq _021D9416
+ add r0, r4, #0
+ add r1, r4, #0
+ bl MOD14_021DBCA0
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0xa
+ bl MOD14_021DCB2C
+ ldr r0, _021D946C ; =0x000005EA
+ bl FUN_020054C8
+ mov r0, #4
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D9416:
+ ldr r0, _021D9464 ; =0x000005F3
+ bl FUN_020054C8
+ pop {r3, r4, r5, pc}
+_021D941E:
+ mov r0, #2
+ tst r0, r1
+ beq _021D9454
+ ldr r0, _021D9464 ; =0x000005F3
+ bl FUN_020054C8
+ pop {r3, r4, r5, pc}
+_021D942C:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021D9454
+ mov r0, #1
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D9440:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021D9454
+ add r0, r4, #0
+ bl MOD14_021D7620
+_021D9454:
+ pop {r3, r4, r5, pc}
+ nop
+_021D9458: .word 0x021C48B8
+_021D945C: .word 0x000005DC
+_021D9460: .word MOD14_021D94BC
+_021D9464: .word 0x000005F3
+_021D9468: .word 0x000005EB
+_021D946C: .word 0x000005EA
+
+ thumb_func_start MOD14_021D9470
+MOD14_021D9470: ; 0x021D9470
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r5, #0x14
+ str r0, [sp]
+ bl MOD14_021DC4F8
+ add r7, r0, #0
+ ldrb r0, [r5, #8]
+ mov r4, #0
+ ldrb r6, [r5, #9]
+ cmp r0, #0
+ ble _021D94B6
+_021D9488:
+ add r3, r5, r4
+ mov r2, #0xc
+ ldrsb r2, [r3, r2]
+ ldr r0, [sp]
+ mov r1, #0
+ sub r2, r2, r6
+ ldr r0, [r0]
+ mvn r1, r1
+ add r2, r7, r2
+ bl FUN_0206B5E4
+ mov r1, #0xab
+ mov r2, #0
+ bl FUN_020672BC
+ cmp r0, #0
+ beq _021D94AE
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_021D94AE:
+ ldrb r0, [r5, #8]
+ add r4, r4, #1
+ cmp r4, r0
+ blt _021D9488
+_021D94B6:
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021D94BC
+MOD14_021D94BC: ; 0x021D94BC
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldr r1, [r5]
+ add r4, r0, #0
+ cmp r1, #3
+ bhi _021D95A4
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D94D4: ; jump table
+ .short _021D94DC - _021D94D4 - 2 ; case 0
+ .short _021D954E - _021D94D4 - 2 ; case 1
+ .short _021D9574 - _021D94D4 - 2 ; case 2
+ .short _021D9590 - _021D94D4 - 2 ; case 3
+_021D94DC:
+ bl MOD14_021DC3CC
+ cmp r0, #1
+ bne _021D952E
+ add r0, r4, #0
+ bl MOD14_021D9B84
+ cmp r0, #0
+ bne _021D950E
+ ldr r0, _021D95A8 ; =0x000005EB
+ bl FUN_020054C8
+ add r0, r4, #0
+ add r1, r4, #0
+ bl MOD14_021DBA5C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #9
+ bl MOD14_021DCB2C
+ mov r0, #1
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D950E:
+ ldr r0, _021D95AC ; =0x000005F3
+ bl FUN_020054C8
+ add r0, r4, #0
+ mov r1, #6
+ bl MOD14_021DBA44
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB2C
+ mov r0, #2
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D952E:
+ ldr r0, _021D95A8 ; =0x000005EB
+ bl FUN_020054C8
+ add r0, r4, #0
+ add r1, r4, #0
+ bl MOD14_021DBA5C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #9
+ bl MOD14_021DCB2C
+ mov r0, #3
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D954E:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021D95A4
+ add r0, r4, #0
+ bl MOD14_021DB934
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x25
+ bl MOD14_021DCB2C
+ mov r0, #3
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D9574:
+ ldr r0, _021D95B0 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _021D95A4
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #3
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D9590:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021D95A4
+ add r0, r4, #0
+ bl MOD14_021D7620
+_021D95A4:
+ pop {r3, r4, r5, pc}
+ nop
+_021D95A8: .word 0x000005EB
+_021D95AC: .word 0x000005F3
+_021D95B0: .word 0x021C48B8
+
+ thumb_func_start MOD14_021D95B4
+MOD14_021D95B4: ; 0x021D95B4
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ ldr r1, [r4]
+ add r5, r0, #0
+ cmp r1, #0
+ beq _021D95CA
+ cmp r1, #1
+ beq _021D9616
+ cmp r1, #2
+ beq _021D9648
+ pop {r4, r5, r6, pc}
+_021D95CA:
+ add r1, r5, #0
+ bl MOD14_021DBC00
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0xa
+ bl MOD14_021DCB2C
+ ldr r0, _021D9664 ; =0x000005EA
+ bl FUN_020054C8
+ add r0, r5, #0
+ bl MOD14_021DC3CC
+ cmp r0, #1
+ bne _021D9610
+ add r0, r5, #0
+ bl MOD14_021DC3E8
+ add r6, r0, #0
+ mov r0, #0x49
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_0206B9AC
+ sub r0, r0, #1
+ cmp r6, r0
+ beq _021D9610
+ mov r0, #1
+ str r0, [r4]
+ add r0, r5, #0
+ bl MOD14_021DB934
+ pop {r4, r5, r6, pc}
+_021D9610:
+ mov r0, #2
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_021D9616:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021D9662
+ add r0, r5, #0
+ bl MOD14_021DB934
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x26
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #6
+ bl MOD14_021DCB2C
+ mov r0, #2
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_021D9648:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021D9662
+ add r0, r5, #0
+ bl MOD14_021D7674
+ add r0, r5, #0
+ bl MOD14_021D7620
+_021D9662:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021D9664: .word 0x000005EA
+
+ thumb_func_start MOD14_021D9668
+MOD14_021D9668: ; 0x021D9668
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD14_021D9B84
+ cmp r0, #0
+ beq _021D96AC
+ add r0, r5, #0
+ mov r1, #0xac
+ mov r2, #0
+ bl MOD14_021DC58C
+ cmp r0, #0
+ beq _021D968C
+ mov r0, #6
+ str r0, [r4]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021D968C:
+ add r0, r5, #0
+ bl MOD14_021DC3F8
+ cmp r0, #0
+ beq _021D96AC
+ add r0, r5, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl MOD14_021DC58C
+ cmp r0, #0
+ bne _021D96AC
+ mov r0, #6
+ str r0, [r4]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021D96AC:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD14_021D96B0
+MOD14_021D96B0: ; 0x021D96B0
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldr r1, [r4]
+ add r5, r0, #0
+ cmp r1, #0
+ beq _021D96C6
+ cmp r1, #1
+ beq _021D971C
+ cmp r1, #2
+ beq _021D9748
+ pop {r3, r4, r5, pc}
+_021D96C6:
+ add r1, sp, #0
+ bl MOD14_021D9668
+ cmp r0, #0
+ beq _021D96F0
+ ldr r0, _021D9764 ; =0x000005F3
+ bl FUN_020054C8
+ ldr r1, [sp]
+ add r0, r5, #0
+ bl MOD14_021DBA44
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB2C
+ mov r0, #1
+ str r0, [r4]
+ pop {r3, r4, r5, pc}
+_021D96F0:
+ add r0, r5, #0
+ add r1, r5, #0
+ bl MOD14_021DBD34
+ ldr r0, _021D9768 ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0xb
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #6
+ bl MOD14_021DCB2C
+ mov r0, #2
+ str r0, [r4]
+ pop {r3, r4, r5, pc}
+_021D971C:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D9762
+ ldr r0, _021D976C ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _021D9762
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #2
+ str r0, [r4]
+ pop {r3, r4, r5, pc}
+_021D9748:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021D9762
+ add r0, r5, #0
+ bl MOD14_021D7674
+ add r0, r5, #0
+ bl MOD14_021D7620
+_021D9762:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D9764: .word 0x000005F3
+_021D9768: .word 0x000005DC
+_021D976C: .word 0x021C48B8
+
+ thumb_func_start MOD14_021D9770
+MOD14_021D9770: ; 0x021D9770
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ ldr r0, [r5]
+ cmp r0, #8
+ bls _021D977E
+ b _021D9928
+_021D977E:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D978A: ; jump table
+ .short _021D979C - _021D978A - 2 ; case 0
+ .short _021D9818 - _021D978A - 2 ; case 1
+ .short _021D983A - _021D978A - 2 ; case 2
+ .short _021D9862 - _021D978A - 2 ; case 3
+ .short _021D9892 - _021D978A - 2 ; case 4
+ .short _021D98B4 - _021D978A - 2 ; case 5
+ .short _021D9928 - _021D978A - 2 ; case 6
+ .short _021D98E8 - _021D978A - 2 ; case 7
+ .short _021D9914 - _021D978A - 2 ; case 8
+_021D979C:
+ mov r0, #0x49
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0206B9AC
+ cmp r0, #6
+ beq _021D97F2
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ add r0, r4, #0
+ bl MOD14_021DC3F4
+ cmp r0, #2
+ bne _021D97D2
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x23
+ bl MOD14_021DCB2C
+ mov r0, #2
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D97D2:
+ ldr r0, _021D992C ; =0x000005EB
+ bl FUN_020054C8
+ add r0, r4, #0
+ add r1, r4, #0
+ bl MOD14_021DBA5C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #9
+ bl MOD14_021DCB2C
+ mov r0, #1
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D97F2:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1b
+ bl MOD14_021DCB2C
+ add r0, r4, #0
+ mov r1, #5
+ bl MOD14_021DBA44
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB2C
+ mov r0, #7
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D9818:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #9
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D9928
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x23
+ bl MOD14_021DCB2C
+ mov r0, #2
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D983A:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x23
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D9928
+ add r0, r4, #0
+ bl MOD14_021DB8D0
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #5
+ bl MOD14_021DCB2C
+ mov r0, #3
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D9862:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #5
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D9928
+ add r0, r4, #0
+ add r1, r4, #0
+ bl MOD14_021DBC00
+ add r0, r4, #0
+ bl MOD14_021D7674
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0xa
+ bl MOD14_021DCB2C
+ mov r0, #4
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D9892:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0xa
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D9928
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x24
+ bl MOD14_021DCB2C
+ mov r0, #5
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D98B4:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x24
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D9928
+ add r0, r4, #0
+ bl MOD14_021DB910
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #5
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl MOD14_021DCB2C
+ mov r0, #8
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D98E8:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D9928
+ ldr r0, _021D9930 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _021D9928
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #8
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D9914:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021D9928
+ add r0, r4, #0
+ bl MOD14_021D7620
+_021D9928:
+ pop {r3, r4, r5, pc}
+ nop
+_021D992C: .word 0x000005EB
+_021D9930: .word 0x021C48B8
+
+ thumb_func_start MOD14_021D9934
+MOD14_021D9934: ; 0x021D9934
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldr r1, [r5]
+ add r4, r0, #0
+ cmp r1, #6
+ bhi _021D99F8
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D994C: ; jump table
+ .short _021D995A - _021D994C - 2 ; case 0
+ .short _021D99F0 - _021D994C - 2 ; case 1
+ .short _021D9AB2 - _021D994C - 2 ; case 2
+ .short _021D9AD8 - _021D994C - 2 ; case 3
+ .short _021D9B04 - _021D994C - 2 ; case 4
+ .short _021D9B32 - _021D994C - 2 ; case 5
+ .short _021D9B60 - _021D994C - 2 ; case 6
+_021D995A:
+ bl MOD14_021DC3F4
+ cmp r0, #1
+ bne _021D9998
+ add r0, r4, #0
+ bl MOD14_021D9B84
+ cmp r0, #1
+ bne _021D9998
+ ldr r0, _021D9B78 ; =0x000005F3
+ bl FUN_020054C8
+ add r0, r4, #0
+ mov r1, #6
+ bl MOD14_021DBA44
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1b
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB2C
+ mov r0, #3
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D9998:
+ add r0, r4, #0
+ add r1, sp, #0
+ bl MOD14_021D7998
+ cmp r0, #0
+ beq _021D99D0
+ ldr r0, _021D9B78 ; =0x000005F3
+ bl FUN_020054C8
+ ldr r1, [sp]
+ add r0, r4, #0
+ bl MOD14_021DBA44
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1b
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB2C
+ mov r0, #3
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D99D0:
+ mov r1, #0x11
+ lsl r1, r1, #4
+ ldrh r1, [r4, r1]
+ add r0, r4, #0
+ mov r2, #0x13
+ bl MOD14_021DAA7C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #1
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D99F0:
+ bl MOD14_021DAAA8
+ cmp r0, #0
+ bne _021D99FA
+_021D99F8:
+ b _021D9B74
+_021D99FA:
+ ldr r0, _021D9B7C ; =0x000001C1
+ mov r1, #0
+ ldrsb r2, [r4, r0]
+ mvn r1, r1
+ cmp r2, r1
+ bne _021D9A22
+ sub r0, #0xad
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x20
+ bl MOD14_021DCB2C
+ mov r0, #6
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D9A22:
+ sub r0, #0xb1
+ strh r2, [r4, r0]
+ add r0, r4, #0
+ bl MOD14_021DC3F4
+ cmp r0, #2
+ ldr r1, _021D9B7C ; =0x000001C1
+ bne _021D9A62
+ ldrsb r1, [r4, r1]
+ add r0, r4, #0
+ bl MOD14_021DBDD8
+ cmp r0, #0
+ beq _021D9A92
+ add r0, r4, #0
+ bl MOD14_021D7674
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x20
+ bl MOD14_021DCB2C
+ mov r0, #4
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D9A62:
+ ldrsb r1, [r4, r1]
+ add r0, r4, #0
+ bl MOD14_021DBE00
+ cmp r0, #0
+ beq _021D9A92
+ add r0, r4, #0
+ bl MOD14_021D7674
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x20
+ bl MOD14_021DCB2C
+ mov r0, #5
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D9A92:
+ ldr r0, _021D9B78 ; =0x000005F3
+ bl FUN_020054C8
+ add r0, r4, #0
+ mov r1, #0xd
+ bl MOD14_021DBA44
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB2C
+ mov r0, #2
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D9AB2:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D9B74
+ ldr r0, _021D9B80 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _021D9B74
+ add r0, r4, #0
+ bl MOD14_021DAA98
+ mov r0, #1
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D9AD8:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D9B74
+ ldr r0, _021D9B80 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _021D9B74
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #6
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D9B04:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x20
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D9B74
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0xc
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl MOD14_021DCB2C
+ mov r0, #6
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D9B32:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x20
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D9B74
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0xd
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl MOD14_021DCB2C
+ mov r0, #6
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D9B60:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021D9B74
+ add r0, r4, #0
+ bl MOD14_021D7620
+_021D9B74:
+ pop {r3, r4, r5, pc}
+ nop
+_021D9B78: .word 0x000005F3
+_021D9B7C: .word 0x000001C1
+_021D9B80: .word 0x021C48B8
+
+ thumb_func_start MOD14_021D9B84
+MOD14_021D9B84: ; 0x021D9B84
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ mov r1, #0x49
+ lsl r1, r1, #2
+ str r0, [sp]
+ ldr r0, [r0, r1]
+ bl FUN_0206B9AC
+ mov r6, #0
+ add r5, r6, #0
+ str r0, [sp, #4]
+ cmp r0, #0
+ ble _021D9BEC
+_021D9B9E:
+ mov r0, #0x49
+ ldr r1, [sp]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ add r1, r6, #0
+ bl FUN_0206B9B0
+ add r4, r0, #0
+ bl FUN_020669D4
+ add r7, r0, #0
+ add r0, r4, #0
+ mov r1, #0xac
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ bne _021D9BD2
+ add r0, r4, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _021D9BD2
+ add r5, r5, #1
+_021D9BD2:
+ add r0, r4, #0
+ add r1, r7, #0
+ bl FUN_02066A20
+ cmp r5, #2
+ blt _021D9BE4
+ add sp, #8
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9BE4:
+ ldr r0, [sp, #4]
+ add r6, r6, #1
+ cmp r6, r0
+ blt _021D9B9E
+_021D9BEC:
+ ldr r0, [sp]
+ mov r1, #0xac
+ mov r2, #0
+ bl MOD14_021DC5D0
+ cmp r0, #0
+ beq _021D9C00
+ add sp, #8
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9C00:
+ ldr r0, [sp]
+ mov r1, #0xa2
+ mov r2, #0
+ bl MOD14_021DC5D0
+ cmp r0, #0
+ beq _021D9C14
+ add sp, #8
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9C14:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021D9C1C
+MOD14_021D9C1C: ; 0x021D9C1C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ mov r1, #0xac
+ mov r2, #0
+ add r5, r0, #0
+ bl MOD14_021DC58C
+ cmp r0, #0
+ beq _021D9C36
+ mov r0, #0x1f
+ str r0, [r4]
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_021D9C36:
+ add r0, r5, #0
+ bl MOD14_021DC430
+ add r0, r5, #0
+ bl MOD14_021DC430
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_0206EA98
+ cmp r0, #0
+ beq _021D9C56
+ mov r0, #0x1e
+ str r0, [r4]
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_021D9C56:
+ add r0, r5, #0
+ mov r1, #0xa1
+ mov r2, #0
+ bl MOD14_021DC58C
+ cmp r0, #0
+ beq _021D9C6C
+ mov r0, #0x1d
+ str r0, [r4]
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_021D9C6C:
+ add r0, r5, #0
+ bl MOD14_021DC3F4
+ cmp r0, #1
+ bne _021D9C92
+ add r0, r5, #0
+ bl MOD14_021DC3CC
+ cmp r0, #1
+ bne _021D9C92
+ add r0, r5, #0
+ bl MOD14_021D9B84
+ cmp r0, #0
+ beq _021D9C92
+ mov r0, #6
+ str r0, [r4]
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_021D9C92:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021D9C98
+MOD14_021D9C98: ; 0x021D9C98
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldr r1, [r5]
+ add r4, r0, #0
+ cmp r1, #9
+ bhi _021D9D44
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D9CB0: ; jump table
+ .short _021D9CC4 - _021D9CB0 - 2 ; case 0
+ .short _021D9D1C - _021D9CB0 - 2 ; case 1
+ .short _021D9D86 - _021D9CB0 - 2 ; case 2
+ .short _021D9E0A - _021D9CB0 - 2 ; case 3
+ .short _021D9E96 - _021D9CB0 - 2 ; case 4
+ .short _021D9E62 - _021D9CB0 - 2 ; case 5
+ .short _021D9EC8 - _021D9CB0 - 2 ; case 6
+ .short _021D9EF2 - _021D9CB0 - 2 ; case 7
+ .short _021D9F36 - _021D9CB0 - 2 ; case 8
+ .short _021D9F62 - _021D9CB0 - 2 ; case 9
+_021D9CC4:
+ add r1, sp, #0
+ bl MOD14_021D9C1C
+ cmp r0, #0
+ beq _021D9CF0
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD14_021DBA44
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD14_021E5D98
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x19
+ bl MOD14_021DCB2C
+ mov r0, #1
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D9CF0:
+ ldr r0, _021D9F78 ; =0x000005F3
+ bl FUN_020054C8
+ ldr r1, [sp]
+ add r0, r4, #0
+ bl MOD14_021DBA44
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1b
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB2C
+ mov r0, #8
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D9D1C:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021D9D44
+ add r0, r4, #0
+ bl MOD14_021E6160
+ cmp r0, #0x36
+ bgt _021D9D4E
+ bge _021D9D74
+ mov r2, #0
+ mvn r2, r2
+ cmp r0, r2
+ bgt _021D9D44
+ sub r1, r2, #1
+ cmp r0, r1
+ bge _021D9D46
+_021D9D44:
+ b _021D9F76
+_021D9D46:
+ beq _021D9D54
+ cmp r0, r2
+ beq _021D9D62
+ pop {r3, r4, r5, pc}
+_021D9D4E:
+ cmp r0, #0x37
+ beq _021D9D62
+ pop {r3, r4, r5, pc}
+_021D9D54:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1c
+ bl MOD14_021DCB2C
+ pop {r3, r4, r5, pc}
+_021D9D62:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #9
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D9D74:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #2
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D9D86:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D9E70
+ add r0, r4, #0
+ bl MOD14_021DC458
+ add r2, r0, #0
+ mov r0, #0x67
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_0200ACF8
+ add r0, r4, #0
+ bl MOD14_021D9F80
+ add r0, r4, #0
+ bl MOD14_021DC3F4
+ cmp r0, #2
+ bne _021D9DD0
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0xe
+ bl MOD14_021DCB2C
+ mov r0, #0x6e
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ b _021D9E04
+_021D9DD0:
+ add r0, r4, #0
+ bl MOD14_021DC3CC
+ cmp r0, #0
+ bne _021D9DF0
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0xf
+ bl MOD14_021DCB2C
+ mov r0, #0x6e
+ mov r1, #1
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ b _021D9E04
+_021D9DF0:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x10
+ bl MOD14_021DCB2C
+ mov r0, #0x6e
+ mov r1, #2
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+_021D9E04:
+ mov r0, #3
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D9E0A:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021D9E70
+ add r0, r4, #0
+ bl MOD14_021DA1C0
+ cmp r0, #0
+ beq _021D9E48
+ add r0, r4, #0
+ bl MOD14_021DC3F4
+ cmp r0, #2
+ bne _021D9E34
+ add r0, r4, #0
+ bl MOD14_021DBE34
+ b _021D9E3A
+_021D9E34:
+ add r0, r4, #0
+ bl MOD14_021DBE4C
+_021D9E3A:
+ add r0, r4, #0
+ mov r1, #3
+ bl MOD14_021DBA44
+ mov r0, #5
+ str r0, [r5]
+ b _021D9E54
+_021D9E48:
+ add r0, r4, #0
+ mov r1, #0x20
+ bl MOD14_021DBA44
+ mov r0, #4
+ str r0, [r5]
+_021D9E54:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB2C
+ pop {r3, r4, r5, pc}
+_021D9E62:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ bne _021D9E72
+_021D9E70:
+ b _021D9F76
+_021D9E72:
+ ldr r0, _021D9F7C ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _021D9F76
+ add r0, r4, #0
+ mov r1, #4
+ bl MOD14_021DBA44
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB2C
+ mov r0, #6
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D9E96:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021D9F76
+ ldr r0, _021D9F7C ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _021D9F76
+ add r0, r4, #0
+ mov r1, #0x21
+ bl MOD14_021DBA44
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB2C
+ mov r0, #6
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D9EC8:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021D9F76
+ ldr r0, _021D9F7C ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _021D9F76
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #7
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D9EF2:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021D9F76
+ add r0, r4, #0
+ bl MOD14_021DA1C0
+ cmp r0, #0
+ beq _021D9F24
+ mov r0, #0x6e
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ cmp r1, #2
+ bne _021D9F1E
+ sub r0, #0xa4
+ ldr r0, [r4, r0]
+ mov r1, #0x25
+ bl MOD14_021DCB2C
+_021D9F1E:
+ add r0, r4, #0
+ bl MOD14_021D7674
+_021D9F24:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl MOD14_021DCB2C
+ mov r0, #9
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D9F36:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D9F76
+ ldr r0, _021D9F7C ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _021D9F76
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #9
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D9F62:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021D9F76
+ add r0, r4, #0
+ bl MOD14_021D7620
+_021D9F76:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D9F78: .word 0x000005F3
+_021D9F7C: .word 0x021C48B8
+
+ thumb_func_start MOD14_021D9F80
+MOD14_021D9F80: ; 0x021D9F80
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ mov r1, #0x57
+ lsl r1, r1, #2
+ str r0, [sp]
+ add r7, r0, r1
+ ldr r0, [r0, #0x4c]
+ mov r4, #0
+ ldr r5, _021DA010 ; =0x021E6224
+ str r0, [r7, #0x10]
+ str r4, [sp, #4]
+_021D9F96:
+ ldrh r1, [r5]
+ ldr r0, [r7, #0x10]
+ add r6, r7, r4
+ bl MOD14_021DA168
+ strb r0, [r6, #4]
+ ldrb r0, [r6, #4]
+ cmp r0, #0
+ beq _021D9FAE
+ ldr r0, [sp, #4]
+ add r0, r0, #1
+ str r0, [sp, #4]
+_021D9FAE:
+ add r4, r4, #1
+ add r5, r5, #2
+ cmp r4, #3
+ blo _021D9F96
+ ldr r0, [sp, #4]
+ cmp r0, #0
+ bne _021D9FC6
+ mov r0, #1
+ strb r0, [r7]
+ add sp, #8
+ strb r0, [r7, #1]
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9FC6:
+ mov r0, #0
+ strb r0, [r7]
+ strb r0, [r7, #1]
+ strb r0, [r7, #2]
+ strb r0, [r7, #3]
+ mov r1, #0x12
+ ldr r0, [sp]
+ lsl r1, r1, #4
+ ldr r0, [r0, r1]
+ add r1, r1, #4
+ str r0, [r7, #0x14]
+ ldr r0, [sp]
+ ldr r0, [r0, r1]
+ str r0, [r7, #0x18]
+ ldr r0, [sp]
+ bl MOD14_021DC3F4
+ cmp r0, #1
+ beq _021D9FF0
+ mov r0, #1
+ b _021D9FF2
+_021D9FF0:
+ mov r0, #0
+_021D9FF2:
+ mov r1, #0
+ str r0, [r7, #0x1c]
+ add r0, r7, #0
+ add r2, r1, #0
+_021D9FFA:
+ add r1, r1, #1
+ strh r2, [r0, #8]
+ add r0, r0, #2
+ cmp r1, #3
+ blo _021D9FFA
+ ldr r0, _021DA014 ; =MOD14_021DA018
+ add r1, r7, #0
+ bl FUN_0200CA44
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DA010: .word 0x021E6224
+_021DA014: .word MOD14_021DA018
+
+ thumb_func_start MOD14_021DA018
+MOD14_021DA018: ; 0x021DA018
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ str r0, [sp]
+ ldrb r0, [r1, #2]
+ str r1, [sp, #4]
+ cmp r0, #0x12
+ bhs _021DA0AE
+ add r0, r1, #0
+ ldrb r0, [r0, #3]
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x14]
+ add r0, #0xf
+ str r0, [sp, #0x14]
+ cmp r0, #0x1e
+ ble _021DA03A
+ mov r0, #0x1e
+ str r0, [sp, #0x14]
+_021DA03A:
+ ldr r1, [sp, #0xc]
+ ldr r0, [sp, #0x14]
+ cmp r1, r0
+ bge _021DA08C
+_021DA042:
+ ldr r1, [sp, #4]
+ ldr r0, [sp, #4]
+ ldrb r1, [r1, #2]
+ ldr r0, [r0, #0x14]
+ ldr r2, [sp, #0xc]
+ bl FUN_0206B5E4
+ mov r1, #0xab
+ mov r2, #0
+ add r7, r0, #0
+ bl FUN_020672BC
+ cmp r0, #0
+ beq _021DA080
+ ldr r4, _021DA164 ; =0x021E6224
+ ldr r5, [sp, #4]
+ mov r6, #0
+_021DA064:
+ ldrh r1, [r4]
+ add r0, r7, #0
+ bl MOD14_021DA168
+ cmp r0, #0
+ beq _021DA076
+ ldrh r0, [r5, #8]
+ add r0, r0, #1
+ strh r0, [r5, #8]
+_021DA076:
+ add r6, r6, #1
+ add r4, r4, #2
+ add r5, r5, #2
+ cmp r6, #3
+ blo _021DA064
+_021DA080:
+ ldr r0, [sp, #0xc]
+ add r1, r0, #1
+ ldr r0, [sp, #0x14]
+ str r1, [sp, #0xc]
+ cmp r1, r0
+ blt _021DA042
+_021DA08C:
+ ldr r0, [sp, #0x14]
+ cmp r0, #0x1e
+ bne _021DA0A4
+ ldr r0, [sp, #4]
+ mov r1, #0
+ strb r1, [r0, #3]
+ ldrb r0, [r0, #2]
+ add r1, r0, #1
+ ldr r0, [sp, #4]
+ add sp, #0x18
+ strb r1, [r0, #2]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA0A4:
+ add r1, r0, #0
+ ldr r0, [sp, #4]
+ add sp, #0x18
+ strb r1, [r0, #3]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA0AE:
+ add r0, r1, #0
+ ldr r0, [r0, #0x18]
+ bl FUN_0206B9AC
+ str r0, [sp, #0x10]
+ mov r0, #0
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x10]
+ cmp r0, #0
+ ble _021DA0FC
+_021DA0C2:
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #8]
+ ldr r0, [r0, #0x18]
+ bl FUN_0206B9B0
+ ldr r4, _021DA164 ; =0x021E6224
+ ldr r5, [sp, #4]
+ add r7, r0, #0
+ mov r6, #0
+_021DA0D4:
+ ldrh r1, [r4]
+ add r0, r7, #0
+ bl MOD14_021DA168
+ cmp r0, #0
+ beq _021DA0E6
+ ldrh r0, [r5, #8]
+ add r0, r0, #1
+ strh r0, [r5, #8]
+_021DA0E6:
+ add r6, r6, #1
+ add r4, r4, #2
+ add r5, r5, #2
+ cmp r6, #3
+ blo _021DA0D4
+ ldr r0, [sp, #8]
+ add r1, r0, #1
+ ldr r0, [sp, #0x10]
+ str r1, [sp, #8]
+ cmp r1, r0
+ blt _021DA0C2
+_021DA0FC:
+ ldr r0, [sp, #4]
+ ldr r0, [r0, #0x1c]
+ cmp r0, #0
+ beq _021DA128
+ ldr r4, _021DA164 ; =0x021E6224
+ ldr r5, [sp, #4]
+ mov r6, #0
+_021DA10A:
+ ldr r0, [sp, #4]
+ ldrh r1, [r4]
+ ldr r0, [r0, #0x10]
+ bl MOD14_021DA168
+ cmp r0, #0
+ beq _021DA11E
+ ldrh r0, [r5, #8]
+ add r0, r0, #1
+ strh r0, [r5, #8]
+_021DA11E:
+ add r6, r6, #1
+ add r4, r4, #2
+ add r5, r5, #2
+ cmp r6, #3
+ blo _021DA10A
+_021DA128:
+ ldr r0, [sp, #4]
+ mov r1, #1
+ strb r1, [r0, #1]
+ mov r2, #0
+ add r1, r0, #0
+_021DA132:
+ ldrh r0, [r1, #8]
+ cmp r0, #1
+ bne _021DA14A
+ ldr r0, [sp, #4]
+ add r0, r0, r2
+ ldrb r0, [r0, #4]
+ cmp r0, #1
+ bne _021DA14A
+ ldr r0, [sp, #4]
+ mov r1, #0
+ strb r1, [r0, #1]
+ b _021DA152
+_021DA14A:
+ add r2, r2, #1
+ add r1, r1, #2
+ cmp r2, #3
+ blo _021DA132
+_021DA152:
+ ldr r0, [sp, #4]
+ mov r1, #1
+ strb r1, [r0]
+ ldr r0, [sp]
+ bl FUN_0200CAB4
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021DA164: .word 0x021E6224
+
+ thumb_func_start MOD14_021DA168
+MOD14_021DA168: ; 0x021DA168
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r6, r1, #0
+ mov r1, #0
+ add r5, r0, #0
+ str r1, [sp, #4]
+ bl FUN_02066A6C
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #0xac
+ mov r2, #0
+ bl FUN_020672BC
+ cmp r0, #0
+ bne _021DA1A8
+ mov r4, #0
+ add r7, r4, #0
+_021DA18C:
+ add r1, r4, #0
+ add r0, r5, #0
+ add r1, #0x36
+ add r2, r7, #0
+ bl FUN_020672BC
+ cmp r6, r0
+ bne _021DA1A2
+ mov r0, #1
+ str r0, [sp, #4]
+ b _021DA1A8
+_021DA1A2:
+ add r4, r4, #1
+ cmp r4, #4
+ blt _021DA18C
+_021DA1A8:
+ ldr r1, [sp]
+ add r0, r5, #0
+ bl FUN_02066A94
+ ldr r0, [sp, #4]
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DA1B8
+MOD14_021DA1B8: ; 0x021DA1B8
+ mov r1, #0x57
+ lsl r1, r1, #2
+ ldrb r0, [r0, r1]
+ bx lr
+
+ thumb_func_start MOD14_021DA1C0
+MOD14_021DA1C0: ; 0x021DA1C0
+ mov r1, #0x57
+ lsl r1, r1, #2
+ add r1, r0, r1
+ ldrb r0, [r1]
+ cmp r0, #0
+ beq _021DA1D0
+ ldrb r0, [r1, #1]
+ bx lr
+_021DA1D0:
+ mov r0, #0
+ bx lr
+
+ thumb_func_start MOD14_021DA1D4
+MOD14_021DA1D4: ; 0x021DA1D4
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ ldr r0, [r5]
+ cmp r0, #0
+ beq _021DA1EA
+ cmp r0, #1
+ beq _021DA1FE
+ cmp r0, #2
+ beq _021DA256
+ pop {r3, r4, r5, pc}
+_021DA1EA:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #3
+ bl MOD14_021DCB2C
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021DA1FE:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #3
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021DA2BC
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCA38
+ mov r0, #0xa
+ bl FUN_020168D0
+ mov r0, #0x12
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_0206B330
+ mov r2, #0x12
+ lsl r2, r2, #4
+ add r1, r0, #0
+ ldr r0, [r4, r2]
+ add r2, #8
+ ldr r2, [r4, r2]
+ ldr r2, [r2, #0x18]
+ bl FUN_0206B484
+ mov r1, #0x4a
+ lsl r1, r1, #2
+ ldr r0, _021DA2C0 ; =0x020FA5FC
+ ldr r1, [r4, r1]
+ mov r2, #9
+ bl FUN_02006234
+ mov r1, #0x21
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021DA256:
+ mov r0, #0x21
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_02006290
+ cmp r0, #0
+ beq _021DA2BC
+ mov r0, #0x12
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_0206B330
+ add r5, r0, #0
+ mov r0, #0x21
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_02006260
+ mov r2, #0xf
+ mov r0, #3
+ mov r1, #0xa
+ lsl r2, r2, #0xe
+ bl FUN_0201681C
+ mov r2, #0x12
+ lsl r2, r2, #4
+ ldr r0, [r4, r2]
+ add r2, #8
+ ldr r2, [r4, r2]
+ add r1, r5, #0
+ ldr r2, [r2, #0x18]
+ bl FUN_0206B4B4
+ mov r0, #0x12
+ lsl r0, r0, #4
+ add r1, r4, #0
+ ldr r0, [r4, r0]
+ add r1, #0x40
+ bl MOD14_021DB580
+ mov r0, #0x45
+ lsl r0, r0, #2
+ add r0, r4, r0
+ add r1, r4, #0
+ add r2, r4, #0
+ bl MOD14_021DC76C
+ ldr r1, _021DA2C4 ; =MOD14_021D76E8
+ add r0, r4, #0
+ bl MOD14_021D7610
+_021DA2BC:
+ pop {r3, r4, r5, pc}
+ nop
+_021DA2C0: .word 0x020FA5FC
+_021DA2C4: .word MOD14_021D76E8
+
+ thumb_func_start MOD14_021DA2C8
+MOD14_021DA2C8: ; 0x021DA2C8
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _021DA2DE
+ cmp r0, #1
+ beq _021DA2F2
+ cmp r0, #2
+ beq _021DA334
+ pop {r3, r4, r5, pc}
+_021DA2DE:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #3
+ bl MOD14_021DCB2C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r3, r4, r5, pc}
+_021DA2F2:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #3
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021DA390
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl MOD14_021DCA38
+ mov r0, #0xa
+ bl FUN_020168D0
+ add r0, r5, #0
+ bl MOD14_021D83E4
+ mov r1, #0x4b
+ lsl r1, r1, #2
+ ldr r0, _021DA394 ; =0x020FA6E8
+ add r1, r5, r1
+ mov r2, #9
+ bl FUN_02006234
+ mov r1, #0x21
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r3, r4, r5, pc}
+_021DA334:
+ mov r0, #0x21
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl FUN_02006290
+ cmp r0, #0
+ beq _021DA390
+ mov r0, #0x12
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl FUN_0206B330
+ mov r0, #0x21
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl FUN_02006260
+ mov r2, #0xf
+ mov r0, #3
+ mov r1, #0xa
+ lsl r2, r2, #0xe
+ bl FUN_0201681C
+ add r0, r5, #0
+ bl MOD14_021DC3F4
+ cmp r0, #1
+ bne _021DA374
+ add r0, r5, #0
+ add r1, r5, #0
+ bl MOD14_021DA39C
+_021DA374:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ add r0, r5, r0
+ add r1, r5, #0
+ add r2, r5, #0
+ bl MOD14_021DC76C
+ ldr r1, _021DA398 ; =MOD14_021D76E8
+ add r0, r5, #0
+ bl MOD14_021D7610
+ add r0, r5, #0
+ bl MOD14_021D7674
+_021DA390:
+ pop {r3, r4, r5, pc}
+ nop
+_021DA394: .word 0x020FA6E8
+_021DA398: .word MOD14_021D76E8
+
+ thumb_func_start MOD14_021DA39C
+MOD14_021DA39C: ; 0x021DA39C
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ add r4, #8
+ ldrb r0, [r4, #4]
+ add r5, r1, #0
+ cmp r0, #0
+ beq _021DA3B0
+ cmp r0, #1
+ beq _021DA3D2
+ pop {r3, r4, r5, pc}
+_021DA3B0:
+ mov r0, #5
+ lsl r0, r0, #6
+ ldrb r0, [r5, r0]
+ mov r1, #6
+ strb r0, [r4, #7]
+ mov r0, #7
+ ldrsb r0, [r4, r0]
+ bl _s32_div_f
+ strb r1, [r4, #5]
+ mov r0, #7
+ ldrsb r0, [r4, r0]
+ mov r1, #6
+ bl _s32_div_f
+ strb r0, [r4, #6]
+ b _021DA3DA
+_021DA3D2:
+ mov r0, #5
+ lsl r0, r0, #6
+ ldrb r0, [r5, r0]
+ strb r0, [r4, #8]
+_021DA3DA:
+ add r0, r5, #0
+ bl MOD14_021DB934
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DA3E4
+MOD14_021DA3E4: ; 0x021DA3E4
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ ldr r0, [r5]
+ cmp r0, #6
+ bhi _021DA496
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021DA3FC: ; jump table
+ .short _021DA40A - _021DA3FC - 2 ; case 0
+ .short _021DA41E - _021DA3FC - 2 ; case 1
+ .short _021DA488 - _021DA3FC - 2 ; case 2
+ .short _021DA522 - _021DA3FC - 2 ; case 3
+ .short _021DA546 - _021DA3FC - 2 ; case 4
+ .short _021DA58E - _021DA3FC - 2 ; case 5
+ .short _021DA5C2 - _021DA3FC - 2 ; case 6
+_021DA40A:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #3
+ bl MOD14_021DCB2C
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ pop {r4, r5, r6, pc}
+_021DA41E:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #3
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021DA496
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCA38
+ mov r0, #0xa
+ bl FUN_020168D0
+ mov r0, #0x47
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0206F158
+ ldr r1, _021DA5D8 ; =0x021E6264
+ mov r2, #9
+ bl FUN_0206EFEC
+ mov r1, #0x85
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ sub r1, #0xf8
+ ldr r1, [r4, r1]
+ mov r2, #1
+ mov r3, #0
+ bl FUN_0206E314
+ ldr r0, _021DA5DC ; =0x0000004B
+ mov r1, #2
+ bl HandleLoadOverlay
+ mov r1, #0x85
+ lsl r1, r1, #2
+ ldr r0, _021DA5E0 ; =0x021EC68C
+ ldr r1, [r4, r1]
+ mov r2, #9
+ bl FUN_02006234
+ mov r1, #0x21
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ pop {r4, r5, r6, pc}
+_021DA488:
+ mov r0, #0x21
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_02006290
+ cmp r0, #0
+ bne _021DA498
+_021DA496:
+ b _021DA5D6
+_021DA498:
+ mov r0, #0x85
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0206E37C
+ ldr r1, _021DA5E4 ; =0x021E6A00
+ str r0, [r1, #8]
+ mov r0, #0x21
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_02006260
+ mov r0, #0x85
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ ldr r0, _021DA5DC ; =0x0000004B
+ bl UnloadOverlayByID
+ ldr r0, _021DA5E4 ; =0x021E6A00
+ ldr r6, [r0, #8]
+ cmp r6, #0
+ beq _021DA4F4
+ mov r0, #0x47
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0206F158
+ lsl r1, r6, #0x10
+ lsr r1, r1, #0x10
+ mov r2, #1
+ mov r3, #9
+ bl FUN_0206EDD4
+ ldr r1, _021DA5E4 ; =0x021E6A00
+ add r0, r4, #0
+ ldr r1, [r1, #8]
+ add r2, r4, #0
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ bl MOD14_021DC1E8
+ add r0, r4, #0
+ bl MOD14_021D7674
+_021DA4F4:
+ mov r2, #0xf
+ mov r0, #3
+ mov r1, #0xa
+ lsl r2, r2, #0xe
+ bl FUN_0201681C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ add r0, r4, r0
+ add r1, r4, #0
+ add r2, r4, #0
+ bl MOD14_021DC76C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl MOD14_021DCB2C
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ pop {r4, r5, r6, pc}
+_021DA522:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021DA5D6
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #2
+ bl MOD14_021DCB2C
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ pop {r4, r5, r6, pc}
+_021DA546:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #2
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021DA5D6
+ ldr r0, _021DA5E4 ; =0x021E6A00
+ ldr r2, [r0, #8]
+ cmp r2, #0
+ bne _021DA566
+ add r0, r4, #0
+ bl MOD14_021D7620
+ pop {r4, r5, r6, pc}
+_021DA566:
+ mov r0, #0x67
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_0200AE38
+ add r0, r4, #0
+ mov r1, #0x10
+ bl MOD14_021DBA44
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB2C
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ pop {r4, r5, r6, pc}
+_021DA58E:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021DA5D6
+ ldr r0, _021DA5E8 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _021DA5D6
+ ldr r0, _021DA5EC ; =0x000005DD
+ bl FUN_020054C8
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ pop {r4, r5, r6, pc}
+_021DA5C2:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021DA5D6
+ add r0, r4, #0
+ bl MOD14_021D7620
+_021DA5D6:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021DA5D8: .word 0x021E6264
+_021DA5DC: .word 0x0000004B
+_021DA5E0: .word 0x021EC68C
+_021DA5E4: .word 0x021E6A00
+_021DA5E8: .word 0x021C48B8
+_021DA5EC: .word 0x000005DD
+
+ thumb_func_start MOD14_021DA5F0
+MOD14_021DA5F0: ; 0x021DA5F0
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldr r1, [r5]
+ add r4, r0, #0
+ cmp r1, #5
+ bhi _021DA6A2
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021DA608: ; jump table
+ .short _021DA614 - _021DA608 - 2 ; case 0
+ .short _021DA67A - _021DA608 - 2 ; case 1
+ .short _021DA6E4 - _021DA608 - 2 ; case 2
+ .short _021DA744 - _021DA608 - 2 ; case 3
+ .short _021DA76C - _021DA608 - 2 ; case 4
+ .short _021DA79E - _021DA608 - 2 ; case 5
+_021DA614:
+ bl MOD14_021DC430
+ ldr r1, _021DA7B4 ; =0x021E6A00
+ str r0, [r1, #4]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_0206EA98
+ cmp r0, #0
+ beq _021DA648
+ ldr r0, _021DA7B8 ; =0x000005F3
+ bl FUN_020054C8
+ add r0, r4, #0
+ mov r1, #0x18
+ bl MOD14_021DBA44
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB2C
+ mov r0, #4
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021DA648:
+ mov r0, #0x67
+ ldr r2, _021DA7B4 ; =0x021E6A00
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ ldr r2, [r2, #4]
+ mov r1, #0
+ bl FUN_0200AE38
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD14_021E5D98
+ add r0, r4, #0
+ mov r1, #0x17
+ bl MOD14_021DBA44
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x19
+ bl MOD14_021DCB2C
+ mov r0, #1
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021DA67A:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021DA6A2
+ add r0, r4, #0
+ bl MOD14_021E6160
+ cmp r0, #0x36
+ bgt _021DA6AC
+ bge _021DA6D2
+ mov r2, #0
+ mvn r2, r2
+ cmp r0, r2
+ bgt _021DA6A2
+ sub r1, r2, #1
+ cmp r0, r1
+ bge _021DA6A4
+_021DA6A2:
+ b _021DA7B2
+_021DA6A4:
+ beq _021DA6B2
+ cmp r0, r2
+ beq _021DA6C0
+ pop {r3, r4, r5, pc}
+_021DA6AC:
+ cmp r0, #0x37
+ beq _021DA6C0
+ pop {r3, r4, r5, pc}
+_021DA6B2:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1c
+ bl MOD14_021DCB2C
+ pop {r3, r4, r5, pc}
+_021DA6C0:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #5
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021DA6D2:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1b
+ bl MOD14_021DCB2C
+ mov r0, #2
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021DA6E4:
+ mov r0, #0x47
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0206F158
+ ldr r1, _021DA7B4 ; =0x021E6A00
+ mov r2, #1
+ ldr r1, [r1, #4]
+ mov r3, #9
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ bl FUN_0206ED38
+ cmp r0, #0
+ beq _021DA72A
+ add r0, r4, #0
+ mov r1, #0
+ add r2, r4, #0
+ bl MOD14_021DC1E8
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x16
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl MOD14_021DCB2C
+ mov r0, #3
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021DA72A:
+ add r0, r4, #0
+ mov r1, #0xe
+ bl MOD14_021DBA44
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB2C
+ mov r0, #4
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021DA744:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021DA7B2
+ add r0, r4, #0
+ mov r1, #0xf
+ bl MOD14_021DBA44
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB2C
+ mov r0, #4
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021DA76C:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021DA7B2
+ ldr r0, _021DA7BC ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _021DA7B2
+ ldr r0, _021DA7C0 ; =0x000005DD
+ bl FUN_020054C8
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #5
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021DA79E:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021DA7B2
+ add r0, r4, #0
+ bl MOD14_021D7620
+_021DA7B2:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DA7B4: .word 0x021E6A00
+_021DA7B8: .word 0x000005F3
+_021DA7BC: .word 0x021C48B8
+_021DA7C0: .word 0x000005DD
+
+ thumb_func_start MOD14_021DA7C4
+MOD14_021DA7C4: ; 0x021DA7C4
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldr r1, [r5]
+ add r4, r0, #0
+ cmp r1, #6
+ bhi _021DA878
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021DA7DC: ; jump table
+ .short _021DA7EA - _021DA7DC - 2 ; case 0
+ .short _021DA850 - _021DA7DC - 2 ; case 1
+ .short _021DA8BA - _021DA7DC - 2 ; case 2
+ .short _021DA922 - _021DA7DC - 2 ; case 3
+ .short _021DA950 - _021DA7DC - 2 ; case 4
+ .short _021DA978 - _021DA7DC - 2 ; case 5
+ .short _021DA9AA - _021DA7DC - 2 ; case 6
+_021DA7EA:
+ bl MOD14_021DC544
+ ldr r1, _021DA9C0 ; =0x021E6A00
+ str r0, [r1]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_0206EA98
+ cmp r0, #0
+ beq _021DA81E
+ ldr r0, _021DA9C4 ; =0x000005F3
+ bl FUN_020054C8
+ add r0, r4, #0
+ mov r1, #0x18
+ bl MOD14_021DBA44
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB2C
+ mov r0, #5
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021DA81E:
+ mov r0, #0x67
+ ldr r2, _021DA9C0 ; =0x021E6A00
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ ldr r2, [r2]
+ mov r1, #0
+ bl FUN_0200AE38
+ add r0, r4, #0
+ mov r1, #0x1a
+ bl MOD14_021DBA44
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD14_021E5D98
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x19
+ bl MOD14_021DCB2C
+ mov r0, #1
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021DA850:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021DA878
+ add r0, r4, #0
+ bl MOD14_021E6160
+ cmp r0, #0x36
+ bgt _021DA882
+ bge _021DA8A8
+ mov r2, #0
+ mvn r2, r2
+ cmp r0, r2
+ bgt _021DA878
+ sub r1, r2, #1
+ cmp r0, r1
+ bge _021DA87A
+_021DA878:
+ b _021DA9BE
+_021DA87A:
+ beq _021DA888
+ cmp r0, r2
+ beq _021DA896
+ pop {r3, r4, r5, pc}
+_021DA882:
+ cmp r0, #0x37
+ beq _021DA896
+ pop {r3, r4, r5, pc}
+_021DA888:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1c
+ bl MOD14_021DCB2C
+ pop {r3, r4, r5, pc}
+_021DA896:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #6
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021DA8A8:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #2
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021DA8BA:
+ mov r0, #0x47
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0206F158
+ ldr r1, _021DA9C0 ; =0x021E6A00
+ mov r2, #1
+ ldr r1, [r1]
+ mov r3, #9
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ bl FUN_0206ED38
+ cmp r0, #0
+ beq _021DA908
+ add r0, r4, #0
+ bl MOD14_021DC538
+ cmp r0, #0
+ beq _021DA8EC
+ add r0, r4, #0
+ bl MOD14_021DC310
+ mov r0, #4
+ b _021DA8F8
+_021DA8EC:
+ add r0, r4, #0
+ mov r1, #0
+ add r2, r4, #0
+ bl MOD14_021DC1E8
+ mov r0, #3
+_021DA8F8:
+ str r0, [r5]
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x17
+ bl MOD14_021DCB2C
+ pop {r3, r4, r5, pc}
+_021DA908:
+ add r0, r4, #0
+ mov r1, #0xe
+ bl MOD14_021DBA44
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB2C
+ mov r0, #5
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021DA922:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x17
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021DA9BE
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x16
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl MOD14_021DCB2C
+ mov r0, #4
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021DA950:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021DA9BE
+ add r0, r4, #0
+ mov r1, #0x1b
+ bl MOD14_021DBA44
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB2C
+ mov r0, #5
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021DA978:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021DA9BE
+ ldr r0, _021DA9C8 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _021DA9BE
+ ldr r0, _021DA9CC ; =0x000005DD
+ bl FUN_020054C8
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #6
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021DA9AA:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021DA9BE
+ add r0, r4, #0
+ bl MOD14_021D7620
+_021DA9BE:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DA9C0: .word 0x021E6A00
+_021DA9C4: .word 0x000005F3
+_021DA9C8: .word 0x021C48B8
+_021DA9CC: .word 0x000005DD
+
+ thumb_func_start MOD14_021DA9D0
+MOD14_021DA9D0: ; 0x021DA9D0
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4]
+ cmp r0, #4
+ bhi _021DAA74
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021DA9E8: ; jump table
+ .short _021DA9F2 - _021DA9E8 - 2 ; case 0
+ .short _021DAA06 - _021DA9E8 - 2 ; case 1
+ .short _021DAA2A - _021DA9E8 - 2 ; case 2
+ .short _021DAA42 - _021DA9E8 - 2 ; case 3
+ .short _021DAA5E - _021DA9E8 - 2 ; case 4
+_021DA9F2:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r3, r4, r5, pc}
+_021DAA06:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021DAA74
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x11
+ bl MOD14_021DCB2C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r3, r4, r5, pc}
+_021DAA2A:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x11
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021DAA74
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r3, r4, r5, pc}
+_021DAA42:
+ ldr r0, _021DAA78 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0xf3
+ tst r1, r0
+ beq _021DAA74
+ add r0, #0x21
+ ldr r0, [r5, r0]
+ mov r1, #0x12
+ bl MOD14_021DCB2C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r3, r4, r5, pc}
+_021DAA5E:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x12
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021DAA74
+ add r0, r5, #0
+ bl MOD14_021D7620
+_021DAA74:
+ pop {r3, r4, r5, pc}
+ nop
+_021DAA78: .word 0x021C48B8
+
+ thumb_func_start MOD14_021DAA7C
+MOD14_021DAA7C: ; 0x021DAA7C
+ push {r4, r5}
+ mov r3, #0x6f
+ lsl r3, r3, #2
+ mov r5, #0
+ str r5, [r0, r3]
+ add r4, r3, #5
+ strb r1, [r0, r4]
+ add r1, r3, #6
+ strh r2, [r0, r1]
+ add r1, r3, #4
+ strb r5, [r0, r1]
+ pop {r4, r5}
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021DAA98
+MOD14_021DAA98: ; 0x021DAA98
+ mov r1, #0x6f
+ mov r2, #0
+ lsl r1, r1, #2
+ str r2, [r0, r1]
+ mov r2, #1
+ add r1, r1, #4
+ strb r2, [r0, r1]
+ bx lr
+
+ thumb_func_start MOD14_021DAAA8
+MOD14_021DAAA8: ; 0x021DAAA8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x6f
+ lsl r0, r0, #2
+ add r4, r5, r0
+ ldr r1, [r4]
+ cmp r1, #3
+ bls _021DAABA
+ b _021DABDC
+_021DAABA:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021DAAC6: ; jump table
+ .short _021DAACE - _021DAAC6 - 2 ; case 0
+ .short _021DAB04 - _021DAAC6 - 2 ; case 1
+ .short _021DAB2C - _021DAAC6 - 2 ; case 2
+ .short _021DAB3E - _021DAAC6 - 2 ; case 3
+_021DAACE:
+ ldrb r0, [r4, #4]
+ cmp r0, #1
+ bne _021DAADA
+ mov r0, #1
+ str r0, [r4]
+ b _021DABDC
+_021DAADA:
+ mov r0, #5
+ ldrsb r1, [r4, r0]
+ sub r0, r0, #6
+ cmp r1, r0
+ bne _021DAAE8
+ mov r0, #0
+ strb r0, [r4, #5]
+_021DAAE8:
+ mov r1, #5
+ ldrsb r1, [r4, r1]
+ add r0, r5, #0
+ bl MOD14_021DC2DC
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x1e
+ bl MOD14_021DCB2C
+ mov r0, #1
+ str r0, [r4]
+ b _021DABDC
+_021DAB04:
+ sub r0, #0xa8
+ ldr r0, [r5, r0]
+ mov r1, #0x1e
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021DABDC
+ ldrh r1, [r4, #6]
+ add r0, r5, #0
+ bl MOD14_021DBA44
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB2C
+ mov r0, #2
+ str r0, [r4]
+ b _021DABDC
+_021DAB2C:
+ sub r0, #0xa8
+ ldr r0, [r5, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021DABDC
+ mov r0, #3
+ str r0, [r4]
+_021DAB3E:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x1f
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021DABDC
+ ldr r0, _021DABE0 ; =0x021C48B8
+ mov r1, #0x22
+ ldr r0, [r0, #0x48]
+ lsl r1, r1, #4
+ add r2, r0, #0
+ tst r2, r1
+ beq _021DAB86
+ mov r0, #5
+ ldrsb r1, [r4, r0]
+ sub r1, r1, #1
+ strb r1, [r4, #5]
+ ldrsb r0, [r4, r0]
+ cmp r0, #0
+ bge _021DAB6E
+ mov r0, #0x11
+ strb r0, [r4, #5]
+_021DAB6E:
+ mov r1, #5
+ ldrsb r1, [r4, r1]
+ add r0, r5, #0
+ bl MOD14_021DC2DC
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x1f
+ bl MOD14_021DCB2C
+ b _021DABDC
+_021DAB86:
+ lsr r1, r1, #1
+ tst r1, r0
+ beq _021DABB6
+ mov r0, #5
+ ldrsb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, #5]
+ ldrsb r0, [r4, r0]
+ cmp r0, #0x12
+ blt _021DAB9E
+ mov r0, #0
+ strb r0, [r4, #5]
+_021DAB9E:
+ mov r1, #5
+ ldrsb r1, [r4, r1]
+ add r0, r5, #0
+ bl MOD14_021DC2DC
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x1f
+ bl MOD14_021DCB2C
+ b _021DABDC
+_021DABB6:
+ mov r1, #1
+ tst r1, r0
+ beq _021DABC6
+ ldr r0, _021DABE4 ; =0x000005DD
+ bl FUN_020054C8
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021DABC6:
+ mov r1, #2
+ tst r0, r1
+ beq _021DABDC
+ ldr r0, _021DABE4 ; =0x000005DD
+ bl FUN_020054C8
+ mov r0, #0
+ mvn r0, r0
+ strb r0, [r4, #5]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021DABDC:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DABE0: .word 0x021C48B8
+_021DABE4: .word 0x000005DD
+
+ thumb_func_start MOD14_021DABE8
+MOD14_021DABE8: ; 0x021DABE8
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldr r1, [r4]
+ add r5, r0, #0
+ cmp r1, #0
+ beq _021DABFE
+ cmp r1, #1
+ beq _021DAC28
+ cmp r1, #2
+ beq _021DAC68
+ pop {r3, r4, r5, pc}
+_021DABFE:
+ bl MOD14_021DC424
+ add r1, r0, #0
+ mov r0, #0x12
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl FUN_0206B428
+ add r0, r5, #0
+ bl MOD14_021DB934
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #4
+ bl MOD14_021DCB2C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r3, r4, r5, pc}
+_021DAC28:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #4
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021DAC7E
+ add r0, r5, #0
+ bl MOD14_021DC3CC
+ cmp r0, #0
+ bne _021DAC60
+ add r0, r5, #0
+ bl MOD14_021DC3F4
+ cmp r0, #1
+ bne _021DAC60
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #6
+ bl MOD14_021DCB2C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r3, r4, r5, pc}
+_021DAC60:
+ add r0, r5, #0
+ bl MOD14_021D7620
+ pop {r3, r4, r5, pc}
+_021DAC68:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #6
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021DAC7E
+ add r0, r5, #0
+ bl MOD14_021D7620
+_021DAC7E:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD14_021DAC80
+MOD14_021DAC80: ; 0x021DAC80
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ ldr r0, [r5]
+ cmp r0, #5
+ bhi _021DAD02
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021DAC98: ; jump table
+ .short _021DACA4 - _021DAC98 - 2 ; case 0
+ .short _021DACF2 - _021DAC98 - 2 ; case 1
+ .short _021DAEA2 - _021DAC98 - 2 ; case 2
+ .short _021DAEF8 - _021DAC98 - 2 ; case 3
+ .short _021DAF34 - _021DAC98 - 2 ; case 4
+ .short _021DAF4A - _021DAC98 - 2 ; case 5
+_021DACA4:
+ ldr r0, _021DAF60 ; =0x000005E4
+ bl FUN_020054C8
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD14_021DC350
+ add r0, r4, #0
+ bl MOD14_021DC424
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD14_021DC358
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x28
+ bl MOD14_021DCB2C
+ mov r0, #0x58
+ str r0, [sp]
+ mov r0, #0x72
+ lsl r0, r0, #2
+ add r0, r4, r0
+ mov r1, #0
+ mov r2, #0xc0
+ mov r3, #0x38
+ bl MOD14_021DC5F8
+ mov r0, #0x81
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ mov r1, #1
+ add r0, r0, #4
+ str r1, [r4, r0]
+ str r1, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DACF2:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x28
+ bl MOD14_021DCB98
+ cmp r0, #0
+ bne _021DAD04
+_021DAD02:
+ b _021DAF5E
+_021DAD04:
+ add r0, r4, #0
+ bl MOD14_021DB9C8
+ cmp r0, #0
+ beq _021DAD34
+ mov r0, #0x61
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #1
+ bne _021DAD34
+ add r0, r4, #0
+ bl MOD14_021DC3C4
+ cmp r0, #3
+ beq _021DAD2C
+ ldr r1, _021DAF64 ; =MOD14_021DAF78
+ add r0, r4, #0
+ bl MOD14_021D7610
+ pop {r3, r4, r5, r6, r7, pc}
+_021DAD2C:
+ ldr r0, _021DAF68 ; =0x000005F3
+ bl FUN_020054C8
+ pop {r3, r4, r5, r6, r7, pc}
+_021DAD34:
+ ldr r0, _021DAF6C ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0xf3
+ tst r0, r1
+ beq _021DAD6C
+ ldr r0, _021DAF70 ; =0x000005DD
+ bl FUN_020054C8
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD14_021DC350
+ add r0, r4, #0
+ bl MOD14_021DC424
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD14_021DC358
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x28
+ bl MOD14_021DCB2C
+ mov r0, #5
+ str r0, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DAD6C:
+ mov r1, #0x81
+ lsl r1, r1, #2
+ ldr r0, [r4, r1]
+ cmp r0, #0
+ beq _021DADE4
+ add r0, r1, #4
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _021DADE4
+ sub r0, r1, #4
+ ldr r0, [r4, r0]
+ add r2, r0, #1
+ sub r0, r1, #4
+ str r2, [r4, r0]
+ ldr r0, [r4, r0]
+ cmp r0, #0x14
+ bls _021DADE4
+ add r0, r4, #0
+ bl MOD14_021DC474
+ add r6, r0, #0
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD14_021DC2C4
+ mov r0, #0x12
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ add r1, r6, #0
+ bl FUN_0206B428
+ add r0, r4, #0
+ bl MOD14_021DB934
+ add r0, r4, #0
+ bl MOD14_021DC3F4
+ cmp r0, #1
+ bne _021DADC6
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #8
+ bl MOD14_021DCB2C
+_021DADC6:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #4
+ bl MOD14_021DCB2C
+ mov r0, #0x81
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ sub r0, r0, #4
+ str r1, [r4, r0]
+ mov r0, #3
+ str r0, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DADE4:
+ mov r0, #0x72
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl MOD14_021DC664
+ cmp r0, #1
+ beq _021DADFC
+ cmp r0, #2
+ beq _021DAE1C
+ cmp r0, #3
+ beq _021DAE76
+ pop {r3, r4, r5, r6, r7, pc}
+_021DADFC:
+ add r0, r4, #0
+ bl MOD14_021DC474
+ mov r1, #0x7f
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add r0, r1, #0
+ mov r2, #0
+ add r0, #8
+ str r2, [r4, r0]
+ add r0, r1, #0
+ add r0, #0x10
+ str r2, [r4, r0]
+ add r1, #0xc
+ str r2, [r4, r1]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DAE1C:
+ mov r0, #0x72
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl MOD14_021DC708
+ add r6, r0, #0
+ mov r0, #0x83
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r6, r0
+ bne _021DAE34
+ b _021DAF5E
+_021DAE34:
+ sub r7, r6, r0
+ add r0, r4, #0
+ bl MOD14_021DC474
+ add r1, r7, r0
+ bpl _021DAE44
+ add r1, #0x12
+ b _021DAE4A
+_021DAE44:
+ cmp r1, #0x12
+ blt _021DAE4A
+ sub r1, #0x12
+_021DAE4A:
+ mov r0, #0x83
+ lsl r0, r0, #2
+ str r6, [r4, r0]
+ add r0, r4, #0
+ bl MOD14_021DC358
+ add r0, r4, #0
+ add r1, r7, #0
+ bl MOD14_021DC368
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x29
+ bl MOD14_021DCB2C
+ ldr r0, _021DAF74 ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #2
+ str r0, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DAE76:
+ add r0, r4, #0
+ bl MOD14_021DC424
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD14_021DC474
+ cmp r5, r0
+ beq _021DAE8C
+ mov r1, #1
+ b _021DAE8E
+_021DAE8C:
+ mov r1, #0
+_021DAE8E:
+ mov r0, #0x81
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ sub r1, r0, #4
+ mov r2, #0
+ str r2, [r4, r1]
+ mov r1, #1
+ add r0, r0, #4
+ str r1, [r4, r0]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DAEA2:
+ mov r0, #0x82
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ cmp r1, #0
+ bne _021DAEE2
+ sub r0, #0x40
+ add r0, r4, r0
+ bl MOD14_021DC664
+ cmp r0, #3
+ bne _021DAEE2
+ add r0, r4, #0
+ bl MOD14_021DC424
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD14_021DC474
+ cmp r6, r0
+ beq _021DAECE
+ mov r1, #1
+ b _021DAED0
+_021DAECE:
+ mov r1, #0
+_021DAED0:
+ mov r0, #0x81
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ sub r1, r0, #4
+ mov r2, #0
+ str r2, [r4, r1]
+ mov r1, #1
+ add r0, r0, #4
+ str r1, [r4, r0]
+_021DAEE2:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x29
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021DAF5E
+ mov r0, #1
+ str r0, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DAEF8:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #4
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021DAF5E
+ add r0, r4, #0
+ bl MOD14_021DC3F4
+ cmp r0, #1
+ bne _021DAF2E
+ add r0, r4, #0
+ bl MOD14_021DC3F0
+ cmp r0, #0
+ beq _021DAF2E
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl MOD14_021DCB2C
+ mov r0, #4
+ str r0, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DAF2E:
+ mov r0, #1
+ str r0, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DAF34:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021DAF5E
+ mov r0, #1
+ str r0, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DAF4A:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021DAF5E
+ add r0, r4, #0
+ bl MOD14_021D7620
+_021DAF5E:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DAF60: .word 0x000005E4
+_021DAF64: .word MOD14_021DAF78
+_021DAF68: .word 0x000005F3
+_021DAF6C: .word 0x021C48B8
+_021DAF70: .word 0x000005DD
+_021DAF74: .word 0x000005DC
+
+ thumb_func_start MOD14_021DAF78
+MOD14_021DAF78: ; 0x021DAF78
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r6, r1, #0
+ add r4, r0, #0
+ ldr r0, [r6]
+ cmp r0, #3
+ bhi _021DAFFC
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021DAF92: ; jump table
+ .short _021DAF9A - _021DAF92 - 2 ; case 0
+ .short _021DAFEC - _021DAF92 - 2 ; case 1
+ .short _021DB144 - _021DAF92 - 2 ; case 2
+ .short _021DB19C - _021DAF92 - 2 ; case 3
+_021DAF9A:
+ ldr r0, _021DB1B4 ; =0x000005E4
+ bl FUN_020054C8
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD14_021DC350
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD14_021DC360
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD14_021DC358
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x28
+ bl MOD14_021DCB2C
+ mov r0, #0x58
+ str r0, [sp]
+ mov r0, #0x72
+ lsl r0, r0, #2
+ add r0, r4, r0
+ mov r1, #0xff
+ mov r2, #0xc0
+ mov r3, #0x38
+ bl MOD14_021DC5F8
+ mov r0, #0x81
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ mov r1, #1
+ add r0, r0, #4
+ str r1, [r4, r0]
+ add sp, #8
+ str r1, [r6]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DAFEC:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x28
+ bl MOD14_021DCB98
+ cmp r0, #0
+ bne _021DAFFE
+_021DAFFC:
+ b _021DB1B0
+_021DAFFE:
+ add r0, r4, #0
+ bl MOD14_021DB9C8
+ cmp r0, #0
+ beq _021DB01E
+ mov r0, #0x61
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _021DB01E
+ ldr r1, _021DB1B8 ; =MOD14_021DAC80
+ add r0, r4, #0
+ bl MOD14_021D7610
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_021DB01E:
+ ldr r0, _021DB1BC ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0xf3
+ tst r0, r1
+ beq _021DB046
+ ldr r0, _021DB1C0 ; =0x000005DD
+ bl FUN_020054C8
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD14_021DC350
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x28
+ bl MOD14_021DCB2C
+ mov r0, #3
+ str r0, [r6]
+_021DB046:
+ add r0, r4, #0
+ bl MOD14_021DB1C8
+ cmp r0, #0
+ beq _021DB072
+ ldr r0, _021DB1C0 ; =0x000005DD
+ bl FUN_020054C8
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x2a
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x27
+ bl MOD14_021DCB2C
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_021DB072:
+ mov r0, #0x72
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl MOD14_021DC664
+ cmp r0, #1
+ beq _021DB08C
+ cmp r0, #2
+ beq _021DB0AE
+ cmp r0, #3
+ beq _021DB116
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_021DB08C:
+ add r0, r4, #0
+ bl MOD14_021DC474
+ mov r1, #0x7f
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add r0, r1, #0
+ mov r2, #0
+ add r0, #8
+ str r2, [r4, r0]
+ add r0, r1, #0
+ add r0, #0x10
+ str r2, [r4, r0]
+ add r1, #0xc
+ add sp, #8
+ str r2, [r4, r1]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DB0AE:
+ mov r0, #0x72
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl MOD14_021DC708
+ add r7, r0, #0
+ mov r0, #0x83
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r7, r0
+ beq _021DB1B0
+ sub r0, r7, r0
+ str r0, [sp, #4]
+ add r0, r4, #0
+ bl MOD14_021DC474
+ ldr r1, [sp, #4]
+ add r5, r1, r0
+ bpl _021DB0D8
+ add r5, #8
+ b _021DB0DE
+_021DB0D8:
+ cmp r5, #8
+ blt _021DB0DE
+ sub r5, #8
+_021DB0DE:
+ mov r0, #0x83
+ lsl r0, r0, #2
+ str r7, [r4, r0]
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD14_021DC358
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD14_021DC360
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD14_021DC368
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x29
+ bl MOD14_021DCB2C
+ ldr r0, _021DB1C4 ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #2
+ add sp, #8
+ str r0, [r6]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DB116:
+ add r0, r4, #0
+ bl MOD14_021DC424
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD14_021DC474
+ cmp r5, r0
+ beq _021DB12C
+ mov r1, #1
+ b _021DB12E
+_021DB12C:
+ mov r1, #0
+_021DB12E:
+ mov r0, #0x81
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ sub r1, r0, #4
+ mov r2, #0
+ str r2, [r4, r1]
+ mov r1, #1
+ add r0, r0, #4
+ add sp, #8
+ str r1, [r4, r0]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DB144:
+ mov r0, #0x82
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ cmp r1, #0
+ bne _021DB184
+ sub r0, #0x40
+ add r0, r4, r0
+ bl MOD14_021DC664
+ cmp r0, #3
+ bne _021DB184
+ add r0, r4, #0
+ bl MOD14_021DC424
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD14_021DC474
+ cmp r5, r0
+ beq _021DB170
+ mov r1, #1
+ b _021DB172
+_021DB170:
+ mov r1, #0
+_021DB172:
+ mov r0, #0x81
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ sub r1, r0, #4
+ mov r2, #0
+ str r2, [r4, r1]
+ mov r1, #1
+ add r0, r0, #4
+ str r1, [r4, r0]
+_021DB184:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x29
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021DB1B0
+ mov r0, #1
+ add sp, #8
+ str r0, [r6]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DB19C:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021DB1B0
+ add r0, r4, #0
+ bl MOD14_021D7620
+_021DB1B0:
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DB1B4: .word 0x000005E4
+_021DB1B8: .word MOD14_021DAC80
+_021DB1BC: .word 0x021C48B8
+_021DB1C0: .word 0x000005DD
+_021DB1C4: .word 0x000005DC
+
+ thumb_func_start MOD14_021DB1C8
+MOD14_021DB1C8: ; 0x021DB1C8
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x62
+ mov r1, #8
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ sub r0, #8
+ ldr r0, [r4, r0]
+ bl FUN_02022144
+ mov r0, #0x62
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #8
+ beq _021DB1EA
+ mov r0, #1
+ pop {r4, pc}
+_021DB1EA:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DB1F0
+MOD14_021DB1F0: ; 0x021DB1F0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x62
+ add r4, r2, #0
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #8
+ bne _021DB21E
+ cmp r1, #0
+ bne _021DB21E
+ add r0, r4, #0
+ bl MOD14_021DC47C
+ add r1, r0, r5
+ cmp r1, #8
+ blo _021DB212
+ sub r1, #8
+_021DB212:
+ add r0, r4, #0
+ bl MOD14_021DC370
+ mov r0, #0x62
+ lsl r0, r0, #2
+ str r5, [r4, r0]
+_021DB21E:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD14_021DB220
+MOD14_021DB220: ; 0x021DB220
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl FUN_02022510
+ mov r1, #0x12
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ ldr r2, [r4]
+ sub r0, r1, #4
+ str r2, [r5, r0]
+ ldr r0, [r4]
+ bl FUN_0206BB1C
+ mov r1, #0x49
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ ldr r0, [r4]
+ bl LoadPlayerDataAddress
+ mov r1, #0x69
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ sub r1, #0x8c
+ str r4, [r5, r1]
+ mov r0, #0
+ mov r1, #0x1a
+ mov r2, #0xf
+ mov r3, #9
+ str r0, [r4, #8]
+ bl FUN_0200A86C
+ mov r2, #0x63
+ lsl r2, r2, #2
+ str r0, [r5, r2]
+ mov r0, #1
+ mov r1, #0x1a
+ sub r2, #0x22
+ mov r3, #9
+ bl FUN_0200A86C
+ mov r1, #0x19
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ mov r0, #0
+ mov r1, #0x1a
+ mov r2, #0xbe
+ mov r3, #9
+ bl FUN_0200A86C
+ mov r2, #0x65
+ lsl r2, r2, #2
+ str r0, [r5, r2]
+ mov r0, #0
+ mov r1, #0x1a
+ add r2, #0x94
+ mov r3, #9
+ bl FUN_0200A86C
+ mov r1, #0x66
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #9
+ bl FUN_0200AA80
+ mov r1, #0x67
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ bl FUN_020669BC
+ add r1, r0, #0
+ mov r0, #9
+ bl FUN_02016998
+ mov r1, #0x1a
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ sub r0, r1, #4
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ bne _021DB2C8
+ bl ErrorHandling
+_021DB2C8:
+ mov r0, #0x69
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #2
+ str r0, [sp]
+ mov r0, #9
+ mov r2, #0
+ mov r3, #8
+ bl FUN_02077A84
+ mov r1, #0x4a
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ ldr r0, [r4, #4]
+ cmp r0, #4
+ beq _021DB2FA
+ mov r0, #9
+ str r0, [sp]
+ ldr r0, _021DB384 ; =0x021E622A
+ ldr r2, _021DB388 ; =MOD14_021DB9F4
+ mov r1, #3
+ add r3, r5, #0
+ bl FUN_020220C4
+ b _021DB30A
+_021DB2FA:
+ mov r0, #9
+ str r0, [sp]
+ ldr r0, _021DB38C ; =0x021E6236
+ ldr r2, _021DB388 ; =MOD14_021DB9F4
+ mov r1, #4
+ add r3, r5, #0
+ bl FUN_020220C4
+_021DB30A:
+ mov r1, #0x5f
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #9
+ str r0, [sp]
+ ldr r0, _021DB390 ; =0x021E6246
+ ldr r2, _021DB394 ; =MOD14_021DB1F0
+ mov r1, #7
+ add r3, r5, #0
+ bl FUN_020220C4
+ mov r1, #6
+ lsl r1, r1, #6
+ str r0, [r5, r1]
+ add r0, r1, #0
+ sub r0, #0x60
+ ldr r0, [r5, r0]
+ mov r2, #0
+ str r0, [r5]
+ add r0, r1, #0
+ sub r0, #0x5c
+ ldr r0, [r5, r0]
+ str r0, [r5, #4]
+ add r0, r1, #0
+ sub r0, #0x70
+ strh r2, [r5, r0]
+ sub r1, #0x6e
+ strh r2, [r5, r1]
+ add r0, r5, #0
+ ldr r1, [r4, #4]
+ add r0, #0x48
+ bl MOD14_021DB424
+ add r0, r5, #0
+ add r0, #0x4c
+ bl MOD14_021DB4C8
+ mov r0, #0x12
+ lsl r0, r0, #4
+ add r1, r5, #0
+ ldr r0, [r5, r0]
+ add r1, #0x40
+ bl MOD14_021DB49C
+ add r0, r5, #0
+ add r0, #0xa4
+ bl MOD14_021DB524
+ add r0, r5, #0
+ bl MOD14_021DB430
+ add r0, r5, #0
+ add r0, #0x14
+ bl MOD14_021DB470
+ add r5, #0x9c
+ add r0, r5, #0
+ bl MOD14_021DB574
+ pop {r3, r4, r5, pc}
+ nop
+_021DB384: .word 0x021E622A
+_021DB388: .word MOD14_021DB9F4
+_021DB38C: .word 0x021E6236
+_021DB390: .word 0x021E6246
+_021DB394: .word MOD14_021DB1F0
+
+ thumb_func_start MOD14_021DB398
+MOD14_021DB398: ; 0x021DB398
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ bl FUN_0202212C
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0202212C
+ mov r0, #0x1a
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _021DB3BE
+ bl FUN_02016A18
+_021DB3BE:
+ mov r0, #0x67
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0200AB18
+ mov r0, #0x63
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0200A8B8
+ mov r0, #0x19
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_0200A8B8
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0200A8B8
+ mov r0, #0x66
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0200A8B8
+ mov r0, #0x4a
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02077AC4
+ add r0, r4, #0
+ add r0, #0x4c
+ bl MOD14_021DB500
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD14_021DB490
+ add r0, r4, #0
+ add r0, #0x40
+ bl MOD14_021DB4BC
+ add r0, r4, #0
+ add r0, #0xa4
+ bl MOD14_021DB558
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DB424
+MOD14_021DB424: ; 0x021DB424
+ strb r1, [r0]
+ mov r1, #0
+ strb r1, [r0, #1]
+ strh r1, [r0, #2]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021DB430
+MOD14_021DB430: ; 0x021DB430
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r1, #0
+ add r4, r5, #0
+ add r2, r1, #0
+ add r4, #8
+ bl MOD14_021DBA4C
+ mov r2, #0
+ add r0, r5, #0
+ strb r2, [r4, #8]
+ mov r1, #1
+ strb r1, [r4, #9]
+ add r0, #0x48
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _021DB458
+ cmp r0, #4
+ beq _021DB45C
+ b _021DB462
+_021DB458:
+ strb r1, [r4, #4]
+ b _021DB464
+_021DB45C:
+ mov r0, #2
+ strb r0, [r4, #4]
+ b _021DB464
+_021DB462:
+ strb r2, [r4, #4]
+_021DB464:
+ mov r0, #1
+ strb r0, [r4, #0xb]
+ add r0, r5, #0
+ bl MOD14_021DB934
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD14_021DB470
+MOD14_021DB470: ; 0x021DB470
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_020690C8
+ add r2, r0, #0
+ mov r1, #0x1e
+ mov r0, #9
+ mul r1, r2
+ bl FUN_02016998
+ str r0, [r4]
+ mov r0, #0
+ strb r0, [r4, #8]
+ strb r0, [r4, #0xb]
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DB490
+MOD14_021DB490: ; 0x021DB490
+ ldr r3, _021DB498 ; =0x02016A19
+ ldr r0, [r0]
+ bx r3
+ nop
+_021DB498: .word 0x02016A19
+
+ thumb_func_start MOD14_021DB49C
+MOD14_021DB49C: ; 0x021DB49C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ bl FUN_0206B330
+ strb r0, [r4]
+ mov r0, #0x14
+ mov r1, #9
+ bl FUN_020219F4
+ str r0, [r4, #4]
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD14_021DB580
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD14_021DB4BC
+MOD14_021DB4BC: ; 0x021DB4BC
+ ldr r3, _021DB4C4 ; =0x02021A21
+ ldr r0, [r0, #4]
+ bx r3
+ nop
+_021DB4C4: .word 0x02021A21
+
+ thumb_func_start MOD14_021DB4C8
+MOD14_021DB4C8: ; 0x021DB4C8
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0xc
+ mov r1, #9
+ bl FUN_020219F4
+ str r0, [r4, #0x14]
+ mov r0, #0xc
+ mov r1, #9
+ bl FUN_020219F4
+ str r0, [r4, #0x18]
+ mov r0, #0x12
+ mov r1, #9
+ bl FUN_020219F4
+ str r0, [r4, #0x1c]
+ mov r0, #0xc
+ mov r1, #9
+ bl FUN_020219F4
+ str r0, [r4, #0x20]
+ mov r0, #0x10
+ mov r1, #9
+ bl FUN_020219F4
+ str r0, [r4, #0x24]
+ pop {r4, pc}
+
+ thumb_func_start MOD14_021DB500
+MOD14_021DB500: ; 0x021DB500
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x14]
+ bl FUN_02021A20
+ ldr r0, [r4, #0x18]
+ bl FUN_02021A20
+ ldr r0, [r4, #0x1c]
+ bl FUN_02021A20
+ ldr r0, [r4, #0x20]
+ bl FUN_02021A20
+ ldr r0, [r4, #0x24]
+ bl FUN_02021A20
+ pop {r4, pc}
+
+ thumb_func_start MOD14_021DB524
+MOD14_021DB524: ; 0x021DB524
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ mov r4, #0
+ strb r4, [r6]
+ strb r4, [r6, #1]
+ str r4, [r6, #4]
+ add r5, r6, #0
+ add r7, r4, #0
+_021DB534:
+ add r0, r6, r4
+ strb r7, [r0, #2]
+ mov r0, #0xc
+ mov r1, #9
+ bl FUN_020219F4
+ str r0, [r5, #0x30]
+ mov r0, #0xc
+ mov r1, #9
+ bl FUN_020219F4
+ str r0, [r5, #0x34]
+ add r4, r4, #1
+ add r5, #0x30
+ cmp r4, #2
+ blt _021DB534
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DB558
+MOD14_021DB558: ; 0x021DB558
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r4, #0
+_021DB55E:
+ ldr r0, [r5, #0x30]
+ bl FUN_02021A20
+ ldr r0, [r5, #0x34]
+ bl FUN_02021A20
+ add r4, r4, #1
+ add r5, #0x30
+ cmp r4, #2
+ blt _021DB55E
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD14_021DB574
+MOD14_021DB574: ; 0x021DB574
+ mov r1, #0
+ strb r1, [r0]
+ strb r1, [r0, #2]
+ strb r1, [r0, #1]
+ strh r1, [r0, #4]
+ bx lr
+
+ thumb_func_start MOD14_021DB580
+MOD14_021DB580: ; 0x021DB580
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldrb r1, [r4]
+ add r5, r0, #0
+ bl FUN_0206B43C
+ strb r0, [r4, #1]
+ ldrb r1, [r4]
+ ldr r2, [r4, #4]
+ add r0, r5, #0
+ bl FUN_0206B484
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DB59C
+MOD14_021DB59C: ; 0x021DB59C
+ push {r4, lr}
+ add r2, r0, #0
+ add r4, r2, #0
+ add r2, #0x40
+ add r0, r1, #0
+ ldrb r1, [r2]
+ add r4, #0x40
+ bl FUN_0206B43C
+ strb r0, [r4, #1]
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DB5B4
+MOD14_021DB5B4: ; 0x021DB5B4
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ mov r1, #0x20
+ add r2, r0, #0
+ mov r4, #0
+ tst r2, r1
+ beq _021DB5D0
+ add r0, r5, #0
+ sub r1, #0x21
+ add r2, r4, #0
+ bl MOD14_021DB61C
+ add r4, r0, #0
+ b _021DB60C
+_021DB5D0:
+ mov r1, #0x10
+ tst r1, r0
+ beq _021DB5E4
+ add r0, r5, #0
+ mov r1, #1
+ add r2, r4, #0
+ bl MOD14_021DB61C
+ add r4, r0, #0
+ b _021DB60C
+_021DB5E4:
+ mov r2, #0x40
+ add r1, r0, #0
+ tst r1, r2
+ beq _021DB5FA
+ add r0, r5, #0
+ add r1, r4, #0
+ sub r2, #0x41
+ bl MOD14_021DB61C
+ add r4, r0, #0
+ b _021DB60C
+_021DB5FA:
+ mov r1, #0x80
+ tst r0, r1
+ beq _021DB60C
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #1
+ bl MOD14_021DB61C
+ add r4, r0, #0
+_021DB60C:
+ cmp r4, #1
+ bne _021DB616
+ add r0, r5, #0
+ bl MOD14_021DB934
+_021DB616:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DB61C
+MOD14_021DB61C: ; 0x021DB61C
+ push {r4, lr}
+ add r3, r0, #0
+ add r3, #8
+ ldrb r4, [r3, #4]
+ cmp r4, #4
+ bhi _021DB66A
+ add r4, r4, r4
+ add r4, pc
+ ldrh r4, [r4, #6]
+ lsl r4, r4, #0x10
+ asr r4, r4, #0x10
+ add pc, r4
+_021DB634: ; jump table
+ .short _021DB63E - _021DB634 - 2 ; case 0
+ .short _021DB720 - _021DB634 - 2 ; case 1
+ .short _021DB69E - _021DB634 - 2 ; case 2
+ .short _021DB6F4 - _021DB634 - 2 ; case 3
+ .short _021DB6C8 - _021DB634 - 2 ; case 4
+_021DB63E:
+ cmp r1, #0
+ beq _021DB666
+ mov r2, #5
+ ldrsb r4, [r3, r2]
+ add r1, r4, r1
+ strb r1, [r3, #5]
+ ldrsb r1, [r3, r2]
+ cmp r1, #0
+ bge _021DB654
+ add r1, r2, #0
+ b _021DB65A
+_021DB654:
+ cmp r1, #6
+ blt _021DB65A
+ mov r1, #0
+_021DB65A:
+ mov r2, #6
+ ldrsb r2, [r3, r2]
+ bl MOD14_021DBA4C
+ mov r0, #1
+ pop {r4, pc}
+_021DB666:
+ cmp r2, #0
+ bne _021DB66C
+_021DB66A:
+ b _021DB78A
+_021DB66C:
+ mov r1, #6
+ ldrsb r1, [r3, r1]
+ add r2, r1, r2
+ bpl _021DB67C
+ mov r1, #2
+ mov r2, #0
+ strb r1, [r3, #4]
+ b _021DB692
+_021DB67C:
+ cmp r2, #4
+ ble _021DB692
+ mov r1, #5
+ ldrsb r1, [r3, r1]
+ mov r2, #4
+ cmp r1, #5
+ bne _021DB68E
+ add r1, r2, #0
+ b _021DB690
+_021DB68E:
+ mov r1, #3
+_021DB690:
+ strb r1, [r3, #4]
+_021DB692:
+ mov r1, #5
+ ldrsb r1, [r3, r1]
+ bl MOD14_021DBA4C
+ mov r0, #1
+ pop {r4, pc}
+_021DB69E:
+ cmp r2, #0
+ ble _021DB6B2
+ mov r2, #0
+ strb r2, [r3, #4]
+ mov r1, #5
+ ldrsb r1, [r3, r1]
+ bl MOD14_021DBA4C
+ mov r0, #1
+ pop {r4, pc}
+_021DB6B2:
+ bge _021DB78A
+ mov r0, #5
+ ldrsb r0, [r3, r0]
+ cmp r0, #5
+ bne _021DB6C0
+ mov r0, #4
+ b _021DB6C2
+_021DB6C0:
+ mov r0, #3
+_021DB6C2:
+ strb r0, [r3, #4]
+ mov r0, #1
+ pop {r4, pc}
+_021DB6C8:
+ cmp r2, #0
+ bge _021DB6DE
+ mov r1, #0
+ strb r1, [r3, #4]
+ mov r1, #5
+ ldrsb r1, [r3, r1]
+ mov r2, #4
+ bl MOD14_021DBA4C
+ mov r0, #1
+ pop {r4, pc}
+_021DB6DE:
+ ble _021DB6E8
+ mov r0, #2
+ strb r0, [r3, #4]
+ mov r0, #1
+ pop {r4, pc}
+_021DB6E8:
+ cmp r1, #0
+ beq _021DB78A
+ mov r0, #3
+ strb r0, [r3, #4]
+ mov r0, #1
+ pop {r4, pc}
+_021DB6F4:
+ cmp r2, #0
+ bge _021DB70A
+ mov r1, #0
+ strb r1, [r3, #4]
+ mov r1, #5
+ ldrsb r1, [r3, r1]
+ mov r2, #4
+ bl MOD14_021DBA4C
+ mov r0, #1
+ pop {r4, pc}
+_021DB70A:
+ ble _021DB714
+ mov r0, #2
+ strb r0, [r3, #4]
+ mov r0, #1
+ pop {r4, pc}
+_021DB714:
+ cmp r1, #0
+ beq _021DB78A
+ mov r0, #4
+ strb r0, [r3, #4]
+ mov r0, #1
+ pop {r4, pc}
+_021DB720:
+ mov r4, #8
+ ldrsb r0, [r3, r4]
+ cmp r2, #0
+ bge _021DB742
+ cmp r0, #6
+ bne _021DB732
+ mov r1, #5
+ strb r1, [r3, #8]
+ b _021DB77E
+_021DB732:
+ sub r1, r0, #2
+ strb r1, [r3, #8]
+ ldrsb r1, [r3, r4]
+ cmp r1, #0
+ bge _021DB77E
+ mov r1, #6
+ strb r1, [r3, #8]
+ b _021DB77E
+_021DB742:
+ ble _021DB75E
+ cmp r0, #6
+ bne _021DB74E
+ mov r1, #0
+ strb r1, [r3, #8]
+ b _021DB77E
+_021DB74E:
+ add r1, r0, #2
+ strb r1, [r3, #8]
+ ldrsb r1, [r3, r4]
+ cmp r1, #6
+ blt _021DB77E
+ mov r1, #6
+ strb r1, [r3, #8]
+ b _021DB77E
+_021DB75E:
+ cmp r1, #0
+ bge _021DB76E
+ mov r1, #1
+ tst r1, r0
+ beq _021DB77E
+ sub r1, r0, #1
+ strb r1, [r3, #8]
+ b _021DB77E
+_021DB76E:
+ ble _021DB77E
+ cmp r0, #6
+ beq _021DB77E
+ mov r1, #1
+ tst r1, r0
+ bne _021DB77E
+ add r1, r0, #1
+ strb r1, [r3, #8]
+_021DB77E:
+ mov r1, #8
+ ldrsb r1, [r3, r1]
+ cmp r0, r1
+ beq _021DB78A
+ mov r0, #1
+ pop {r4, pc}
+_021DB78A:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DB790
+MOD14_021DB790: ; 0x021DB790
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ mov r1, #0x20
+ add r2, r0, #0
+ mov r4, #0
+ tst r2, r1
+ beq _021DB7AC
+ add r0, r5, #0
+ sub r1, #0x21
+ add r2, r4, #0
+ bl MOD14_021DB80C
+ add r4, r0, #0
+ b _021DB7FE
+_021DB7AC:
+ mov r1, #0x10
+ tst r1, r0
+ beq _021DB7C0
+ add r0, r5, #0
+ mov r1, #1
+ add r2, r4, #0
+ bl MOD14_021DB80C
+ add r4, r0, #0
+ b _021DB7FE
+_021DB7C0:
+ mov r2, #0x40
+ add r1, r0, #0
+ tst r1, r2
+ beq _021DB7D6
+ add r0, r5, #0
+ add r1, r4, #0
+ sub r2, #0x41
+ bl MOD14_021DB80C
+ add r4, r0, #0
+ b _021DB7FE
+_021DB7D6:
+ mov r2, #0x80
+ add r1, r0, #0
+ tst r1, r2
+ beq _021DB7EC
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #1
+ bl MOD14_021DB80C
+ add r4, r0, #0
+ b _021DB7FE
+_021DB7EC:
+ lsl r1, r2, #2
+ tst r1, r0
+ beq _021DB7F6
+ mov r4, #3
+ b _021DB7FE
+_021DB7F6:
+ add r2, #0x80
+ tst r0, r2
+ beq _021DB7FE
+ mov r4, #4
+_021DB7FE:
+ cmp r4, #1
+ bne _021DB808
+ add r0, r5, #0
+ bl MOD14_021DB934
+_021DB808:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD14_021DB80C
+MOD14_021DB80C: ; 0x021DB80C
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r4, r7, #0
+ add r4, #8
+ ldrb r3, [r4, #4]
+ add r6, r7, #0
+ add r6, #0x14
+ cmp r3, #0
+ bne _021DB8C6
+ cmp r1, #0
+ beq _021DB874
+ mov r2, #5
+ ldrsb r2, [r4, r2]
+ add r5, r2, r1
+ bl MOD14_021DC3F4
+ mov r1, #0xc
+ tst r0, r1
+ beq _021DB858
+ ldrb r0, [r6, #4]
+ ldrb r3, [r6, #6]
+ add r2, r5, #0
+ add r1, r5, #0
+ cmp r3, r0
+ bls _021DB844
+ sub r0, r3, r0
+ sub r1, r5, r0
+ b _021DB848
+_021DB844:
+ sub r0, r0, r3
+ add r2, r5, r0
+_021DB848:
+ cmp r1, #0
+ bge _021DB850
+ mov r0, #3
+ pop {r3, r4, r5, r6, r7, pc}
+_021DB850:
+ cmp r2, #6
+ blt _021DB864
+ mov r0, #4
+ pop {r3, r4, r5, r6, r7, pc}
+_021DB858:
+ cmp r5, #0
+ blt _021DB860
+ cmp r5, #6
+ blt _021DB864
+_021DB860:
+ mov r0, #2
+ pop {r3, r4, r5, r6, r7, pc}
+_021DB864:
+ mov r2, #6
+ ldrsb r2, [r4, r2]
+ add r0, r7, #0
+ add r1, r5, #0
+ bl MOD14_021DBA4C
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DB874:
+ cmp r2, #0
+ beq _021DB8C6
+ mov r1, #6
+ ldrsb r1, [r4, r1]
+ add r5, r1, r2
+ bl MOD14_021DC3F4
+ mov r1, #0xc
+ tst r0, r1
+ beq _021DB8AA
+ ldrb r0, [r6, #5]
+ ldrb r3, [r6, #7]
+ add r2, r5, #0
+ add r1, r5, #0
+ cmp r3, r0
+ bls _021DB89A
+ sub r0, r3, r0
+ sub r1, r5, r0
+ b _021DB89E
+_021DB89A:
+ sub r0, r0, r3
+ add r2, r5, r0
+_021DB89E:
+ cmp r1, #0
+ blt _021DB8A6
+ cmp r2, #5
+ blt _021DB8B6
+_021DB8A6:
+ mov r0, #2
+ pop {r3, r4, r5, r6, r7, pc}
+_021DB8AA:
+ cmp r5, #0
+ blt _021DB8B2
+ cmp r5, #5
+ blt _021DB8B6
+_021DB8B2:
+ mov r0, #2
+ pop {r3, r4, r5, r6, r7, pc}
+_021DB8B6:
+ mov r1, #5
+ ldrsb r1, [r4, r1]
+ add r0, r7, #0
+ add r2, r5, #0
+ bl MOD14_021DBA4C
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DB8C6:
+ bl ErrorHandling
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DB8D0
+MOD14_021DB8D0: ; 0x021DB8D0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r5, #0
+ add r4, #8
+ bl MOD14_021DC3F4
+ cmp r0, #2
+ bne _021DB8FA
+ mov r0, #0x49
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_0206B9AC
+ strb r0, [r4, #8]
+ mov r0, #8
+ ldrsb r0, [r4, r0]
+ cmp r0, #6
+ blt _021DB8FE
+ mov r0, #5
+ strb r0, [r4, #8]
+ b _021DB8FE
+_021DB8FA:
+ mov r0, #0
+ strb r0, [r4, #8]
+_021DB8FE:
+ ldrb r0, [r4, #4]
+ strb r0, [r4, #9]
+ mov r0, #1
+ strb r0, [r4, #4]
+ add r0, r5, #0
+ bl MOD14_021DB934
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DB910
+MOD14_021DB910: ; 0x021DB910
+ push {r4, lr}
+ add r4, r0, #0
+ add r3, r4, #0
+ add r3, #8
+ mov r1, #0
+ strb r1, [r3, #4]
+ mov r2, #9
+ ldrsb r2, [r3, r2]
+ cmp r2, #0
+ beq _021DB92A
+ add r2, r1, #0
+ bl MOD14_021DBA4C
+_021DB92A:
+ add r0, r4, #0
+ bl MOD14_021DB934
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DB934
+MOD14_021DB934: ; 0x021DB934
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r4, r5, #0
+ add r4, #8
+ mov r1, #0
+ strb r1, [r4, #0xa]
+ ldrb r0, [r4, #4]
+ cmp r0, #4
+ bhi _021DB994
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021DB952: ; jump table
+ .short _021DB95C - _021DB952 - 2 ; case 0
+ .short _021DB96C - _021DB952 - 2 ; case 1
+ .short _021DB994 - _021DB952 - 2 ; case 2
+ .short _021DB994 - _021DB952 - 2 ; case 3
+ .short _021DB994 - _021DB952 - 2 ; case 4
+_021DB95C:
+ mov r2, #7
+ ldrsb r2, [r4, r2]
+ ldr r0, [r5]
+ sub r1, r1, #1
+ bl FUN_0206B5E4
+ str r0, [r4]
+ b _021DB998
+_021DB96C:
+ mov r0, #8
+ ldrsb r6, [r4, r0]
+ mov r0, #0x49
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_0206B9AC
+ cmp r6, r0
+ bge _021DB98E
+ mov r0, #0x49
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r6, #0
+ bl FUN_0206B9B0
+ str r0, [r4]
+ b _021DB998
+_021DB98E:
+ mov r0, #0
+ str r0, [r4]
+ b _021DB998
+_021DB994:
+ mov r0, #0
+ str r0, [r4]
+_021DB998:
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _021DB9C4
+ mov r1, #0xab
+ mov r2, #0
+ bl FUN_020672BC
+ cmp r0, #0
+ beq _021DB9C4
+ mov r0, #1
+ strb r0, [r4, #0xa]
+ add r0, r5, #0
+ bl MOD14_021DC3F4
+ mov r1, #6
+ tst r0, r1
+ bne _021DB9C4
+ ldr r1, [r4]
+ add r0, r5, #0
+ add r2, r5, #0
+ bl MOD14_021DBE88
+_021DB9C4:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DB9C8
+MOD14_021DB9C8: ; 0x021DB9C8
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x61
+ ldr r1, _021DB9F0 ; =0x0000FFFF
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ sub r0, #8
+ ldr r0, [r4, r0]
+ bl FUN_02022144
+ mov r0, #0x61
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ ldr r0, _021DB9F0 ; =0x0000FFFF
+ cmp r1, r0
+ beq _021DB9EC
+ mov r0, #1
+ pop {r4, pc}
+_021DB9EC:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_021DB9F0: .word 0x0000FFFF
+
+ thumb_func_start MOD14_021DB9F4
+MOD14_021DB9F4: ; 0x021DB9F4
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ add r4, r2, #0
+ cmp r5, #0
+ bne _021DBA0E
+ mov r0, #0x61
+ lsl r0, r0, #2
+ ldr r2, [r4, r0]
+ ldr r1, _021DBA40 ; =0x0000FFFF
+ cmp r2, r1
+ bne _021DBA0E
+ str r6, [r4, r0]
+_021DBA0E:
+ add r0, r4, #0
+ bl MOD14_021DC3C4
+ cmp r0, #4
+ bne _021DBA3C
+ cmp r6, #2
+ bne _021DBA3C
+ cmp r5, #0
+ beq _021DBA2A
+ cmp r5, #1
+ beq _021DBA34
+ cmp r5, #3
+ beq _021DBA34
+ pop {r4, r5, r6, pc}
+_021DBA2A:
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD14_021DC1A0
+ pop {r4, r5, r6, pc}
+_021DBA34:
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD14_021DC1A0
+_021DBA3C:
+ pop {r4, r5, r6, pc}
+ nop
+_021DBA40: .word 0x0000FFFF
+
+ thumb_func_start MOD14_021DBA44
+MOD14_021DBA44: ; 0x021DBA44
+ mov r2, #0x43
+ lsl r2, r2, #2
+ str r1, [r0, r2]
+ bx lr
+
+ thumb_func_start MOD14_021DBA4C
+MOD14_021DBA4C: ; 0x021DBA4C
+ add r0, #8
+ mov r3, #6
+ strb r1, [r0, #5]
+ mul r3, r2
+ strb r2, [r0, #6]
+ add r1, r1, r3
+ strb r1, [r0, #7]
+ bx lr
+
+ thumb_func_start MOD14_021DBA5C
+MOD14_021DBA5C: ; 0x021DBA5C
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ add r7, r0, #0
+ add r4, r6, #0
+ add r5, r6, #0
+ add r0, r6, #0
+ add r4, #0x14
+ add r5, #8
+ bl MOD14_021DC3CC
+ cmp r0, #0
+ bne _021DBA98
+ bl FUN_020690C8
+ add r2, r0, #0
+ ldr r0, [r5]
+ ldr r1, [r4]
+ bl MIi_CpuCopy32
+ mov r0, #0x12
+ mov r2, #7
+ lsl r0, r0, #4
+ mov r1, #0
+ ldrsb r2, [r5, r2]
+ ldr r0, [r7, r0]
+ mvn r1, r1
+ bl FUN_0206B2FC
+ mov r0, #0
+ b _021DBAB6
+_021DBA98:
+ bl FUN_020690C4
+ add r2, r0, #0
+ ldr r0, [r5]
+ ldr r1, [r4]
+ bl MIi_CpuCopy32
+ mov r0, #0x49
+ mov r1, #8
+ lsl r0, r0, #2
+ ldrsb r1, [r5, r1]
+ ldr r0, [r7, r0]
+ bl FUN_0206B938
+ mov r0, #1
+_021DBAB6:
+ strb r0, [r4, #0xb]
+ ldr r1, [r4]
+ add r0, r6, #0
+ bl MOD14_021DC1A8
+ mov r0, #5
+ ldrsb r0, [r5, r0]
+ strb r0, [r4, #6]
+ ldrb r0, [r4, #6]
+ strb r0, [r4, #4]
+ mov r0, #6
+ ldrsb r0, [r5, r0]
+ strb r0, [r4, #7]
+ ldrb r0, [r4, #7]
+ strb r0, [r4, #5]
+ mov r0, #2
+ strb r0, [r6, #0x13]
+ mov r0, #0
+ strb r0, [r6, #0x12]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DBAE0
+MOD14_021DBAE0: ; 0x021DBAE0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x34
+ add r6, r1, #0
+ add r7, r0, #0
+ add r6, #0x14
+ mov r0, #1
+ strb r0, [r6, #0xa]
+ add r0, r1, #0
+ str r1, [sp, #4]
+ bl MOD14_021DC3E0
+ str r0, [sp, #0x14]
+ bl FUN_020690C8
+ str r0, [sp, #0x10]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #4]
+ add r1, sp, #0x30
+ ldr r5, [r0, #0x14]
+ add r0, sp, #0x24
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r2, sp, #0x2c
+ add r3, sp, #0x28
+ bl MOD14_021DC4A4
+ ldr r0, [sp, #0x28]
+ ldr r1, [sp, #0x24]
+ str r0, [sp, #0x18]
+ cmp r0, r1
+ bhi _021DBBA6
+ mov r1, #6
+ mul r1, r0
+ str r1, [sp, #8]
+_021DBB26:
+ ldr r1, [sp, #0x30]
+ ldr r0, [sp, #8]
+ str r1, [sp, #0x1c]
+ add r4, r1, r0
+ ldr r1, [sp, #0x2c]
+ ldr r0, [sp, #0x1c]
+ cmp r0, r1
+ bhi _021DBB94
+_021DBB36:
+ mov r0, #0x12
+ lsl r0, r0, #4
+ mov r1, #0
+ ldr r0, [r7, r0]
+ mvn r1, r1
+ add r2, r4, #0
+ bl FUN_0206B5E4
+ mov r1, #0xab
+ mov r2, #0
+ str r0, [sp, #0x20]
+ bl FUN_020672BC
+ cmp r0, #0
+ beq _021DBB86
+ ldr r0, [sp, #0x20]
+ ldr r2, [sp, #0x10]
+ add r1, r5, #0
+ bl MIi_CpuCopy32
+ mov r0, #0x12
+ lsl r0, r0, #4
+ mov r1, #0
+ ldr r0, [r7, r0]
+ mvn r1, r1
+ add r2, r4, #0
+ bl FUN_0206B2FC
+ ldr r0, [sp, #0x10]
+ add r5, r5, r0
+ ldr r0, [sp, #0xc]
+ add r1, r6, r0
+ add r0, r0, #1
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x14]
+ strb r4, [r1, #0xc]
+ cmp r4, r0
+ bne _021DBB86
+ mov r0, #0
+ strb r0, [r6, #0xa]
+_021DBB86:
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x2c]
+ add r0, r0, #1
+ add r4, r4, #1
+ str r0, [sp, #0x1c]
+ cmp r0, r1
+ bls _021DBB36
+_021DBB94:
+ ldr r0, [sp, #8]
+ ldr r1, [sp, #0x24]
+ add r0, r0, #6
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x18]
+ add r0, r0, #1
+ str r0, [sp, #0x18]
+ cmp r0, r1
+ bls _021DBB26
+_021DBBA6:
+ ldr r0, [sp, #0xc]
+ strb r0, [r6, #8]
+ ldr r1, [sp, #0x28]
+ mov r0, #6
+ ldr r2, [sp, #0x30]
+ mul r0, r1
+ add r0, r2, r0
+ strb r0, [r6, #9]
+ ldr r0, [sp, #4]
+ ldrb r0, [r0, #0x12]
+ cmp r0, #0
+ beq _021DBBC2
+ mov r1, #4
+ b _021DBBC4
+_021DBBC2:
+ mov r1, #8
+_021DBBC4:
+ ldr r0, [sp, #4]
+ strb r1, [r0, #0x13]
+ mov r1, #0
+ strb r1, [r0, #0x12]
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD14_021DBBD0
+MOD14_021DBBD0: ; 0x021DBBD0
+ add r2, r1, #0
+ add r1, #8
+ mov r0, #5
+ ldrsb r0, [r1, r0]
+ add r2, #0x14
+ strb r0, [r2, #6]
+ ldrb r0, [r2, #6]
+ strb r0, [r2, #4]
+ mov r0, #6
+ ldrsb r0, [r1, r0]
+ strb r0, [r2, #7]
+ ldrb r0, [r2, #7]
+ strb r0, [r2, #5]
+ bx lr
+
+ thumb_func_start MOD14_021DBBEC
+MOD14_021DBBEC: ; 0x021DBBEC
+ add r2, r1, #0
+ add r1, #8
+ mov r0, #5
+ ldrsb r0, [r1, r0]
+ add r2, #0x14
+ strb r0, [r2, #6]
+ mov r0, #6
+ ldrsb r0, [r1, r0]
+ strb r0, [r2, #7]
+ bx lr
+
+ thumb_func_start MOD14_021DBC00
+MOD14_021DBC00: ; 0x021DBC00
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r1, #0
+ add r5, r0, #0
+ add r4, r7, #0
+ add r6, r7, #0
+ add r0, r7, #0
+ add r4, #0x14
+ add r6, #8
+ bl MOD14_021DC3CC
+ cmp r0, #0
+ bne _021DBC42
+ mov r0, #0x12
+ mov r2, #7
+ lsl r0, r0, #4
+ mov r1, #0
+ ldrsb r2, [r6, r2]
+ ldr r0, [r5, r0]
+ ldr r3, [r4]
+ mvn r1, r1
+ bl FUN_0206B2B0
+ mov r0, #0x12
+ mov r2, #7
+ lsl r0, r0, #4
+ mov r1, #0
+ ldrsb r2, [r6, r2]
+ ldr r0, [r5, r0]
+ mvn r1, r1
+ bl FUN_0206B5E4
+ add r1, r0, #0
+ b _021DBC8A
+_021DBC42:
+ ldrb r0, [r4, #0xb]
+ cmp r0, #0
+ beq _021DBC56
+ mov r0, #0x49
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r1, [r4]
+ bl FUN_0206B900
+ b _021DBC70
+_021DBC56:
+ mov r1, #0x1a
+ lsl r1, r1, #4
+ ldr r0, [r4]
+ ldr r1, [r5, r1]
+ bl FUN_02069A64
+ mov r1, #0x49
+ lsl r1, r1, #2
+ ldr r0, [r5, r1]
+ add r1, #0x7c
+ ldr r1, [r5, r1]
+ bl FUN_0206B900
+_021DBC70:
+ mov r0, #0x49
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_0206B9AC
+ add r1, r0, #0
+ mov r0, #0x49
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ sub r1, r1, #1
+ bl FUN_0206B9B0
+ add r1, r0, #0
+_021DBC8A:
+ add r0, r7, #0
+ bl MOD14_021DC1A8
+ add r0, r5, #0
+ bl MOD14_021DB934
+ mov r0, #1
+ strb r0, [r7, #0x13]
+ strb r0, [r7, #0x12]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DBCA0
+MOD14_021DBCA0: ; 0x021DBCA0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r6, r1, #0
+ add r7, r0, #0
+ add r6, #0x14
+ add r0, r1, #0
+ str r1, [sp]
+ bl MOD14_021DC4F8
+ str r0, [sp, #8]
+ ldrb r0, [r6, #9]
+ str r0, [sp, #0xc]
+ bl FUN_020690C8
+ str r0, [sp, #4]
+ ldr r0, [sp]
+ mov r5, #0
+ ldr r4, [r0, #0x14]
+ ldrb r0, [r6, #8]
+ cmp r0, #0
+ ble _021DBCF4
+_021DBCCA:
+ add r3, r6, r5
+ mov r2, #0xc
+ ldrsb r3, [r3, r2]
+ ldr r2, [sp, #0xc]
+ mov r0, #0x12
+ lsl r0, r0, #4
+ sub r3, r3, r2
+ ldr r2, [sp, #8]
+ mov r1, #0
+ add r2, r2, r3
+ ldr r0, [r7, r0]
+ mvn r1, r1
+ add r3, r4, #0
+ bl FUN_0206B2B0
+ ldr r0, [sp, #4]
+ add r5, r5, #1
+ add r4, r4, r0
+ ldrb r0, [r6, #8]
+ cmp r5, r0
+ blt _021DBCCA
+_021DBCF4:
+ ldr r0, [sp]
+ bl MOD14_021DC3E0
+ add r2, r0, #0
+ mov r0, #0x12
+ lsl r0, r0, #4
+ mov r1, #0
+ ldr r0, [r7, r0]
+ mvn r1, r1
+ bl FUN_0206B5E4
+ add r1, r0, #0
+ ldr r0, [sp]
+ bl MOD14_021DC1A8
+ add r0, r7, #0
+ bl MOD14_021DB934
+ mov r1, #0
+ ldr r0, [sp]
+ strb r1, [r6, #8]
+ ldrb r0, [r0, #0x13]
+ cmp r0, #4
+ bne _021DBD26
+ mov r1, #1
+_021DBD26:
+ ldr r0, [sp]
+ strb r1, [r0, #0x12]
+ mov r1, #1
+ strb r1, [r0, #0x13]
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DBD34
+MOD14_021DBD34: ; 0x021DBD34
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r4, r1, #0
+ str r1, [sp]
+ add r5, r0, #0
+ add r4, #0x14
+ bl FUN_020690C4
+ add r6, r0, #0
+ ldr r0, [sp]
+ add r2, r6, #0
+ ldr r7, [r0, #0x14]
+ str r0, [sp, #4]
+ add r0, #8
+ str r0, [sp, #4]
+ add r0, r7, #0
+ add r1, r7, r6
+ bl MIi_CpuCopy32
+ ldr r0, [sp]
+ ldr r1, [sp]
+ ldr r0, [r0, #8]
+ ldr r1, [r1, #0x14]
+ add r2, r6, #0
+ bl MIi_CpuCopy32
+ ldr r0, [sp]
+ bl MOD14_021DC3CC
+ cmp r0, #0
+ bne _021DBD8E
+ ldr r2, [sp, #4]
+ mov r0, #0x12
+ mov r3, #7
+ lsl r0, r0, #4
+ ldrsb r2, [r2, r3]
+ mov r1, #0
+ ldr r0, [r5, r0]
+ mvn r1, r1
+ add r3, r7, r6
+ bl FUN_0206B2B0
+ mov r0, #0
+ strb r0, [r4, #0xb]
+ b _021DBDC8
+_021DBD8E:
+ ldrb r0, [r4, #0xb]
+ cmp r0, #0
+ bne _021DBDA2
+ mov r1, #0x1a
+ lsl r1, r1, #4
+ ldr r1, [r5, r1]
+ add r0, r7, r6
+ bl FUN_02069A64
+ b _021DBDB0
+_021DBDA2:
+ mov r1, #0x1a
+ lsl r1, r1, #4
+ ldr r1, [r5, r1]
+ add r0, r7, r6
+ add r2, r6, #0
+ bl MIi_CpuCopy32
+_021DBDB0:
+ mov r3, #0x49
+ lsl r3, r3, #2
+ ldr r0, [r5, r3]
+ ldr r1, [sp, #4]
+ mov r2, #8
+ ldrsb r1, [r1, r2]
+ add r3, #0x7c
+ ldr r2, [r5, r3]
+ bl FUN_0206B9DC
+ mov r0, #1
+ strb r0, [r4, #0xb]
+_021DBDC8:
+ ldr r0, [sp]
+ ldr r1, [r4]
+ add r2, r5, #0
+ bl MOD14_021DBE88
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DBDD8
+MOD14_021DBDD8: ; 0x021DBDD8
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x12
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ ldr r2, [r4, #0x14]
+ bl FUN_0206B244
+ cmp r0, #0
+ beq _021DBDFA
+ mov r0, #1
+ strb r0, [r4, #0x13]
+ add r0, r4, #0
+ bl MOD14_021DB934
+ mov r0, #1
+ pop {r4, pc}
+_021DBDFA:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DBE00
+MOD14_021DBE00: ; 0x021DBE00
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x12
+ lsl r0, r0, #4
+ add r4, r5, #0
+ ldr r0, [r5, r0]
+ ldr r2, [r5, #8]
+ add r4, #8
+ bl FUN_0206B244
+ cmp r0, #0
+ beq _021DBE30
+ mov r0, #0x49
+ mov r1, #8
+ lsl r0, r0, #2
+ ldrsb r1, [r4, r1]
+ ldr r0, [r5, r0]
+ bl FUN_0206B938
+ add r0, r5, #0
+ bl MOD14_021DB934
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021DBE30:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD14_021DBE34
+MOD14_021DBE34: ; 0x021DBE34
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x14]
+ bl FUN_020669A0
+ mov r0, #1
+ strb r0, [r4, #0x13]
+ add r0, r4, #0
+ bl MOD14_021DB934
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DBE4C
+MOD14_021DBE4C: ; 0x021DBE4C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r5, #0
+ add r4, #8
+ bl MOD14_021DC3CC
+ cmp r0, #0
+ bne _021DBE70
+ mov r0, #0x12
+ mov r2, #7
+ lsl r0, r0, #4
+ mov r1, #0
+ ldrsb r2, [r4, r2]
+ ldr r0, [r5, r0]
+ mvn r1, r1
+ bl FUN_0206B2FC
+ b _021DBE7E
+_021DBE70:
+ mov r0, #0x49
+ mov r1, #8
+ lsl r0, r0, #2
+ ldrsb r1, [r4, r1]
+ ldr r0, [r5, r0]
+ bl FUN_0206B938
+_021DBE7E:
+ add r0, r5, #0
+ bl MOD14_021DB934
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DBE88
+MOD14_021DBE88: ; 0x021DBE88
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ add r6, r2, #0
+ bl MOD14_021DBEAC
+ add r0, r5, #0
+ bl MOD14_021DC3C4
+ cmp r0, #4
+ bne _021DBEA8
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD14_021DBFF4
+_021DBEA8:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DBEAC
+MOD14_021DBEAC: ; 0x021DBEAC
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r5, r1, #0
+ add r4, r7, #0
+ add r0, r5, #0
+ add r6, r2, #0
+ add r4, #0x4c
+ bl FUN_02066A6C
+ str r0, [sp]
+ str r5, [r7, #0x4c]
+ add r0, r5, #0
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020672BC
+ strh r0, [r4, #4]
+ add r0, r5, #0
+ mov r1, #6
+ mov r2, #0
+ bl FUN_020672BC
+ strh r0, [r4, #6]
+ mov r0, #0x47
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ bl FUN_0206BB28
+ ldrh r1, [r4, #4]
+ bl FUN_0206BB48
+ strh r0, [r4, #8]
+ add r0, r5, #0
+ mov r1, #0xac
+ mov r2, #0
+ bl FUN_020672BC
+ strb r0, [r4, #0xf]
+ ldrh r0, [r4, #4]
+ mov r1, #9
+ bl FUN_0206851C
+ add r7, r0, #0
+ add r0, r5, #0
+ mov r1, #8
+ mov r2, #0
+ bl FUN_020672BC
+ add r2, r0, #0
+ ldrh r1, [r4, #4]
+ add r0, r7, #0
+ bl FUN_02068824
+ strb r0, [r4, #0xa]
+ add r0, r5, #0
+ mov r1, #0xb
+ mov r2, #0
+ bl FUN_020672BC
+ strb r0, [r4, #0xb]
+ add r0, r5, #0
+ mov r1, #0xb0
+ mov r2, #0
+ bl FUN_020672BC
+ strb r0, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #0xb1
+ mov r2, #0
+ bl FUN_020672BC
+ strb r0, [r4, #0xd]
+ ldrb r0, [r4, #0xf]
+ cmp r0, #0
+ bne _021DBF68
+ add r0, r5, #0
+ mov r1, #0xaf
+ mov r2, #0
+ bl FUN_020672BC
+ cmp r0, #0
+ beq _021DBF68
+ mov r1, #0
+ add r0, r5, #0
+ add r2, r1, #0
+ bl FUN_020672BC
+ add r2, r0, #0
+ ldrh r1, [r4, #4]
+ add r0, r7, #0
+ bl FUN_02068A44
+ strb r0, [r4, #0xe]
+ b _021DBF6C
+_021DBF68:
+ mov r0, #0xff
+ strb r0, [r4, #0xe]
+_021DBF6C:
+ ldr r2, [r4, #0x14]
+ add r0, r5, #0
+ mov r1, #0x76
+ bl FUN_020672BC
+ ldrb r0, [r4, #0xf]
+ cmp r0, #0
+ bne _021DBF8C
+ mov r0, #0x19
+ lsl r0, r0, #4
+ ldrh r1, [r4, #4]
+ ldr r0, [r6, r0]
+ ldr r2, [r4, #0x18]
+ bl FUN_0200A8E0
+ b _021DBF9A
+_021DBF8C:
+ ldr r0, [r4, #0x18]
+ ldr r1, [r4, #0x14]
+ bl FUN_02021A74
+ ldr r0, [r4, #0x14]
+ bl FUN_02021A4C
+_021DBF9A:
+ ldrh r1, [r4, #6]
+ cmp r1, #0
+ beq _021DBFAA
+ ldr r0, [r4, #0x1c]
+ mov r2, #9
+ bl FUN_0206E768
+ b _021DBFB8
+_021DBFAA:
+ mov r0, #0x63
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ ldr r2, [r4, #0x1c]
+ mov r1, #0x14
+ bl FUN_0200A8E0
+_021DBFB8:
+ add r0, r5, #0
+ bl FUN_0206885C
+ add r1, r0, #0
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ ldr r2, [r4, #0x20]
+ bl FUN_0200A8E0
+ add r0, r5, #0
+ mov r1, #0xa
+ mov r2, #0
+ bl FUN_020672BC
+ add r1, r0, #0
+ mov r0, #0x66
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ ldr r2, [r4, #0x24]
+ bl FUN_0200A8E0
+ add r0, r7, #0
+ bl FUN_02068640
+ ldr r1, [sp]
+ add r0, r5, #0
+ bl FUN_02066A94
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD14_021DBFF4
+MOD14_021DBFF4: ; 0x021DBFF4
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r0, #0xa4
+ add r5, r2, #0
+ ldrb r2, [r0]
+ str r1, [sp]
+ mov r0, #0x30
+ add r6, r7, #0
+ add r1, r7, #0
+ mul r0, r2
+ add r1, #0xac
+ ldr r2, [sp]
+ add r6, #0x4c
+ add r4, r1, r0
+ str r2, [r1, r0]
+ ldrh r0, [r6, #4]
+ strh r0, [r4, #4]
+ ldrb r0, [r6, #0xf]
+ strb r0, [r4, #6]
+ ldrb r0, [r6, #0xa]
+ strh r0, [r4, #8]
+ ldrb r0, [r4, #6]
+ cmp r0, #0
+ ldr r0, [r4, #0x28]
+ beq _021DC02E
+ ldr r1, [r6, #0x18]
+ bl FUN_02021A74
+ b _021DC034
+_021DC02E:
+ ldr r1, [r6, #0x14]
+ bl FUN_02021A74
+_021DC034:
+ ldr r0, [r4, #0x2c]
+ ldr r1, [r6, #0x20]
+ bl FUN_02021A74
+ mov r1, #0x1a
+ lsl r1, r1, #4
+ ldr r0, [sp]
+ ldr r1, [r5, r1]
+ bl FUN_02069A64
+ mov r0, #0x1a
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl FUN_020669D4
+ add r6, r0, #0
+ mov r0, #0x1a
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0xa3
+ mov r2, #0
+ bl FUN_020671BC
+ strh r0, [r4, #0xa]
+ mov r0, #0x1a
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0xa4
+ mov r2, #0
+ bl FUN_020671BC
+ strh r0, [r4, #0xc]
+ mov r0, #0x1a
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0xa5
+ mov r2, #0
+ bl FUN_020671BC
+ strh r0, [r4, #0xe]
+ mov r0, #0x1a
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0xa7
+ mov r2, #0
+ bl FUN_020671BC
+ strh r0, [r4, #0x10]
+ mov r0, #0x1a
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0xa8
+ mov r2, #0
+ bl FUN_020671BC
+ strh r0, [r4, #0x12]
+ mov r0, #0x1a
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0xa6
+ mov r2, #0
+ bl FUN_020671BC
+ strh r0, [r4, #0x14]
+ mov r0, #0x1a
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0x13
+ mov r2, #0
+ bl FUN_020671BC
+ strh r0, [r4, #0x16]
+ mov r0, #0x1a
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0x14
+ mov r2, #0
+ bl FUN_020671BC
+ strh r0, [r4, #0x18]
+ mov r0, #0x1a
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0x15
+ mov r2, #0
+ bl FUN_020671BC
+ strh r0, [r4, #0x1a]
+ mov r0, #0x1a
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0x16
+ mov r2, #0
+ bl FUN_020671BC
+ strh r0, [r4, #0x1c]
+ mov r0, #0x1a
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0x17
+ mov r2, #0
+ bl FUN_020671BC
+ strh r0, [r4, #0x1e]
+ mov r0, #0x1a
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0x36
+ mov r2, #0
+ bl FUN_020671BC
+ strh r0, [r4, #0x20]
+ mov r0, #0x1a
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0x37
+ mov r2, #0
+ bl FUN_020671BC
+ strh r0, [r4, #0x22]
+ mov r0, #0x1a
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0x38
+ mov r2, #0
+ bl FUN_020671BC
+ strh r0, [r4, #0x24]
+ mov r0, #0x1a
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0x39
+ mov r2, #0
+ bl FUN_020671BC
+ strh r0, [r4, #0x26]
+ mov r0, #0x1a
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0x70
+ mov r2, #0
+ bl FUN_020671BC
+ strb r0, [r4, #7]
+ mov r0, #0x1a
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ add r1, r6, #0
+ bl FUN_02066A20
+ add r0, r7, #0
+ add r0, #0xa4
+ ldrb r0, [r0]
+ mov r1, #1
+ add r0, r7, r0
+ add r0, #0xa6
+ strb r1, [r0]
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD14_021DC170
+MOD14_021DC170: ; 0x021DC170
+ add r1, r0, #0
+ add r1, #0xa4
+ ldrb r2, [r1]
+ mov r1, #1
+ add r0, #0xa4
+ eor r1, r2
+ strb r1, [r0]
+ bx lr
+
+ thumb_func_start MOD14_021DC180
+MOD14_021DC180: ; 0x021DC180
+ add r1, r0, #0
+ add r1, #0xa5
+ ldrb r1, [r1]
+ add r2, r1, #1
+ add r1, r0, #0
+ add r1, #0xa5
+ strb r2, [r1]
+ add r1, r0, #0
+ add r1, #0xa5
+ ldrb r1, [r1]
+ cmp r1, #3
+ blo _021DC19E
+ mov r1, #0
+ add r0, #0xa5
+ strb r1, [r0]
+_021DC19E:
+ bx lr
+
+ thumb_func_start MOD14_021DC1A0
+MOD14_021DC1A0: ; 0x021DC1A0
+ add r0, #0xa8
+ str r1, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021DC1A8
+MOD14_021DC1A8: ; 0x021DC1A8
+ str r1, [r0, #0x4c]
+ bx lr
+
+ thumb_func_start MOD14_021DC1AC
+MOD14_021DC1AC: ; 0x021DC1AC
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ add r0, #0x96
+ ldrb r1, [r0]
+ add r2, r4, #0
+ add r0, sp, #0
+ add r2, #0x4c
+ strb r1, [r0]
+ strb r1, [r2, #0xb]
+ ldr r0, [r4, #0x4c]
+ mov r1, #0xb
+ add r2, sp, #0
+ bl FUN_02067960
+ add r0, r4, #0
+ bl MOD14_021DC3CC
+ cmp r0, #0
+ bne _021DC1E2
+ add r0, r4, #0
+ bl MOD14_021DC3F4
+ cmp r0, #1
+ bne _021DC1E2
+ bl FUN_02022830
+_021DC1E2:
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DC1E8
+MOD14_021DC1E8: ; 0x021DC1E8
+ push {r0, r1, r2, r3}
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r5, r0, #0
+ add r0, sp, #0x18
+ add r4, r5, #0
+ ldrh r1, [r0, #4]
+ add r4, #0x4c
+ add r6, r2, #0
+ strh r1, [r4, #6]
+ cmp r1, #0
+ beq _021DC20A
+ ldr r0, [r4, #0x1c]
+ mov r2, #9
+ bl FUN_0206E768
+ b _021DC218
+_021DC20A:
+ mov r0, #0x63
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ ldr r2, [r4, #0x1c]
+ mov r1, #0x14
+ bl FUN_0200A8E0
+_021DC218:
+ add r0, r5, #0
+ bl MOD14_021DC3CC
+ cmp r0, #0
+ bne _021DC24A
+ add r0, r5, #0
+ bl MOD14_021DC3F4
+ cmp r0, #1
+ bne _021DC24A
+ add r0, r5, #0
+ bl MOD14_021DC3E0
+ add r2, r0, #0
+ add r0, sp, #0x1c
+ str r0, [sp]
+ mov r0, #0x12
+ lsl r0, r0, #4
+ mov r1, #0
+ ldr r0, [r6, r0]
+ mvn r1, r1
+ mov r3, #6
+ bl FUN_0206B598
+ b _021DC254
+_021DC24A:
+ ldr r0, [r4]
+ mov r1, #6
+ add r2, sp, #0x1c
+ bl FUN_02067960
+_021DC254:
+ ldr r0, [r4]
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020672BC
+ ldr r1, _021DC274 ; =0x000001ED
+ cmp r0, r1
+ bne _021DC26A
+ ldr r0, [r4]
+ bl FUN_02069ECC
+_021DC26A:
+ add sp, #4
+ pop {r3, r4, r5, r6}
+ pop {r3}
+ add sp, #0x10
+ bx r3
+ .align 2, 0
+_021DC274: .word 0x000001ED
+
+ thumb_func_start MOD14_021DC278
+MOD14_021DC278: ; 0x021DC278
+ add r2, r0, #0
+ add r2, #0x40
+ ldrb r2, [r2]
+ add r1, r0, #0
+ add r1, #0x40
+ add r3, r2, #1
+ add r2, r0, #0
+ add r2, #0x40
+ strb r3, [r2]
+ add r2, r0, #0
+ add r2, #0x40
+ ldrb r2, [r2]
+ cmp r2, #0x12
+ blo _021DC298
+ mov r2, #0
+ strb r2, [r1]
+_021DC298:
+ ldr r3, _021DC2A0 ; =MOD14_021DB580
+ ldr r0, [r0]
+ bx r3
+ nop
+_021DC2A0: .word MOD14_021DB580
+
+ thumb_func_start MOD14_021DC2A4
+MOD14_021DC2A4: ; 0x021DC2A4
+ add r2, r0, #0
+ add r2, #0x40
+ ldrb r2, [r2]
+ add r1, r0, #0
+ add r1, #0x40
+ cmp r2, #0
+ beq _021DC2B6
+ sub r2, r2, #1
+ b _021DC2B8
+_021DC2B6:
+ mov r2, #0x11
+_021DC2B8:
+ ldr r3, _021DC2C0 ; =MOD14_021DB580
+ strb r2, [r1]
+ ldr r0, [r0]
+ bx r3
+ .align 2, 0
+_021DC2C0: .word MOD14_021DB580
+
+ thumb_func_start MOD14_021DC2C4
+MOD14_021DC2C4: ; 0x021DC2C4
+ add r3, r0, #0
+ add r2, r0, #0
+ add r2, #0x40
+ strb r1, [r2]
+ add r3, #0x40
+ add r1, r3, #0
+ ldr r3, _021DC2D8 ; =MOD14_021DB580
+ ldr r0, [r0]
+ bx r3
+ nop
+_021DC2D8: .word MOD14_021DB580
+
+ thumb_func_start MOD14_021DC2DC
+MOD14_021DC2DC: ; 0x021DC2DC
+ add r0, #0x98
+ str r1, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021DC2E4
+MOD14_021DC2E4: ; 0x021DC2E4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r2, r5, #0
+ add r2, #0x4c
+ add r4, r1, #0
+ ldrh r1, [r2, #6]
+ ldr r0, _021DC30C ; =0x00000112
+ strh r1, [r5, r0]
+ add r0, #0x7a
+ ldr r0, [r4, r0]
+ ldr r2, [r2, #0x1c]
+ mov r1, #0x14
+ bl FUN_0200A8E0
+ add r0, r5, #0
+ mov r1, #0
+ add r2, r4, #0
+ bl MOD14_021DC1E8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DC30C: .word 0x00000112
+
+ thumb_func_start MOD14_021DC310
+MOD14_021DC310: ; 0x021DC310
+ ldr r1, _021DC318 ; =0x00000112
+ mov r2, #0
+ strh r2, [r0, r1]
+ bx lr
+ .align 2, 0
+_021DC318: .word 0x00000112
+
+ thumb_func_start MOD14_021DC31C
+MOD14_021DC31C: ; 0x021DC31C
+ push {r4, lr}
+ ldr r3, _021DC330 ; =0x00000112
+ add r2, r1, #0
+ ldrh r1, [r0, r3]
+ mov r4, #0
+ strh r4, [r0, r3]
+ bl MOD14_021DC1E8
+ pop {r4, pc}
+ nop
+_021DC330: .word 0x00000112
+
+ thumb_func_start MOD14_021DC334
+MOD14_021DC334: ; 0x021DC334
+ push {r4, lr}
+ add r3, r0, #0
+ add r3, #0x52
+ ldr r4, _021DC34C ; =0x00000112
+ add r2, r1, #0
+ ldrh r1, [r0, r4]
+ ldrh r3, [r3]
+ strh r3, [r0, r4]
+ bl MOD14_021DC1E8
+ pop {r4, pc}
+ nop
+_021DC34C: .word 0x00000112
+
+ thumb_func_start MOD14_021DC350
+MOD14_021DC350: ; 0x021DC350
+ add r0, #0x9c
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021DC358
+MOD14_021DC358: ; 0x021DC358
+ add r0, #0x9e
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021DC360
+MOD14_021DC360: ; 0x021DC360
+ add r0, #0x9d
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021DC368
+MOD14_021DC368: ; 0x021DC368
+ add r0, #0xa0
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021DC370
+MOD14_021DC370: ; 0x021DC370
+ cmp r1, #0
+ bne _021DC37C
+ mov r1, #0
+ add r0, #0x4a
+ strh r1, [r0]
+ bx lr
+_021DC37C:
+ add r2, r0, #0
+ add r2, #0x4a
+ ldrh r3, [r2]
+ mov r2, #1
+ sub r1, r1, #1
+ lsl r2, r1
+ add r1, r3, #0
+ eor r1, r2
+ add r0, #0x4a
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021DC394
+MOD14_021DC394: ; 0x021DC394
+ add r1, r0, #0
+ add r1, #0x49
+ ldrb r2, [r1]
+ mov r1, #1
+ add r0, #0x49
+ eor r1, r2
+ strb r1, [r0]
+ bx lr
+
+ thumb_func_start MOD14_021DC3A4
+MOD14_021DC3A4: ; 0x021DC3A4
+ mov r1, #0x63
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ bx lr
+
+ thumb_func_start MOD14_021DC3AC
+MOD14_021DC3AC: ; 0x021DC3AC
+ mov r1, #0x67
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ bx lr
+
+ thumb_func_start MOD14_021DC3B4
+MOD14_021DC3B4: ; 0x021DC3B4
+ mov r1, #0x69
+ lsl r1, r1, #2
+ ldr r3, _021DC3C0 ; =0x02025085
+ ldr r0, [r0, r1]
+ bx r3
+ nop
+_021DC3C0: .word 0x02025085
+
+ thumb_func_start MOD14_021DC3C4
+MOD14_021DC3C4: ; 0x021DC3C4
+ add r0, #0x48
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021DC3CC
+MOD14_021DC3CC: ; 0x021DC3CC
+ ldrb r0, [r0, #0xc]
+ bx lr
+
+ thumb_func_start MOD14_021DC3D0
+MOD14_021DC3D0: ; 0x021DC3D0
+ mov r1, #0xd
+ ldrsb r0, [r0, r1]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021DC3D8
+MOD14_021DC3D8: ; 0x021DC3D8
+ mov r1, #0xe
+ ldrsb r0, [r0, r1]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021DC3E0
+MOD14_021DC3E0: ; 0x021DC3E0
+ mov r1, #0xf
+ ldrsb r0, [r0, r1]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021DC3E8
+MOD14_021DC3E8: ; 0x021DC3E8
+ mov r1, #0x10
+ ldrsb r0, [r0, r1]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021DC3F0
+MOD14_021DC3F0: ; 0x021DC3F0
+ ldrb r0, [r0, #0x12]
+ bx lr
+
+ thumb_func_start MOD14_021DC3F4
+MOD14_021DC3F4: ; 0x021DC3F4
+ ldrb r0, [r0, #0x13]
+ bx lr
+
+ thumb_func_start MOD14_021DC3F8
+MOD14_021DC3F8: ; 0x021DC3F8
+ ldrb r1, [r0, #0x13]
+ cmp r1, #0
+ beq _021DC402
+ ldrb r0, [r0, #0x1f]
+ bx lr
+_021DC402:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021DC408
+MOD14_021DC408: ; 0x021DC408
+ ldrb r1, [r0, #0x13]
+ cmp r1, #2
+ beq _021DC412
+ cmp r1, #4
+ bne _021DC416
+_021DC412:
+ mov r0, #1
+ bx lr
+_021DC416:
+ ldrb r0, [r0, #0x12]
+ cmp r0, #0
+ beq _021DC420
+ mov r0, #1
+ bx lr
+_021DC420:
+ mov r0, #0
+ bx lr
+
+ thumb_func_start MOD14_021DC424
+MOD14_021DC424: ; 0x021DC424
+ add r0, #0x40
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021DC42C
+MOD14_021DC42C: ; 0x021DC42C
+ add r0, #0x4c
+ bx lr
+
+ thumb_func_start MOD14_021DC430
+MOD14_021DC430: ; 0x021DC430
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD14_021DC408
+ cmp r0, #0
+ beq _021DC442
+ add r4, #0x52
+ ldrh r0, [r4]
+ pop {r4, pc}
+_021DC442:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DC448
+MOD14_021DC448: ; 0x021DC448
+ add r0, #0x40
+ bx lr
+
+ thumb_func_start MOD14_021DC44C
+MOD14_021DC44C: ; 0x021DC44C
+ ldr r0, [r0]
+ bx lr
+
+ thumb_func_start MOD14_021DC450
+MOD14_021DC450: ; 0x021DC450
+ mov r1, #0x43
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ bx lr
+
+ thumb_func_start MOD14_021DC458
+MOD14_021DC458: ; 0x021DC458
+ ldr r0, [r0, #0x4c]
+ bx lr
+
+ thumb_func_start MOD14_021DC45C
+MOD14_021DC45C: ; 0x021DC45C
+ add r0, #0x57
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021DC464
+MOD14_021DC464: ; 0x021DC464
+ add r0, #0x98
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021DC46C
+MOD14_021DC46C: ; 0x021DC46C
+ mov r1, #0xa0
+ ldrsh r0, [r0, r1]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021DC474
+MOD14_021DC474: ; 0x021DC474
+ add r0, #0x9e
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021DC47C
+MOD14_021DC47C: ; 0x021DC47C
+ add r0, #0x9d
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021DC484
+MOD14_021DC484: ; 0x021DC484
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD14_021DC3C4
+ cmp r0, #3
+ beq _021DC496
+ add r4, #0x4a
+ ldrh r0, [r4]
+ pop {r4, pc}
+_021DC496:
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DC49C
+MOD14_021DC49C: ; 0x021DC49C
+ add r0, #0x49
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021DC4A4
+MOD14_021DC4A4: ; 0x021DC4A4
+ push {r3, r4, r5, r6}
+ add r0, #0x14
+ ldrb r6, [r0, #6]
+ ldrb r5, [r0, #4]
+ ldr r4, [sp, #0x10]
+ cmp r5, r6
+ bhi _021DC4B8
+ str r5, [r1]
+ ldrb r1, [r0, #6]
+ b _021DC4BC
+_021DC4B8:
+ str r6, [r1]
+ ldrb r1, [r0, #4]
+_021DC4BC:
+ str r1, [r2]
+ ldrb r2, [r0, #7]
+ ldrb r1, [r0, #5]
+ cmp r1, r2
+ bhi _021DC4D0
+ str r1, [r3]
+ ldrb r0, [r0, #7]
+ str r0, [r4]
+ pop {r3, r4, r5, r6}
+ bx lr
+_021DC4D0:
+ str r2, [r3]
+ ldrb r0, [r0, #5]
+ str r0, [r4]
+ pop {r3, r4, r5, r6}
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021DC4DC
+MOD14_021DC4DC: ; 0x021DC4DC
+ add r0, #0x14
+ ldrb r2, [r0, #4]
+ ldrb r1, [r0, #6]
+ cmp r2, r1
+ bne _021DC4F2
+ ldrb r1, [r0, #5]
+ ldrb r0, [r0, #7]
+ cmp r1, r0
+ bne _021DC4F2
+ mov r0, #1
+ bx lr
+_021DC4F2:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021DC4F8
+MOD14_021DC4F8: ; 0x021DC4F8
+ push {r3, r4}
+ add r1, r0, #0
+ add r1, #0x14
+ mov r2, #0xd
+ mov r3, #0xe
+ ldrsb r2, [r0, r2]
+ ldrsb r0, [r0, r3]
+ ldrb r4, [r1, #4]
+ ldrb r3, [r1, #6]
+ cmp r3, r4
+ bls _021DC512
+ sub r3, r3, r4
+ sub r2, r2, r3
+_021DC512:
+ ldrb r3, [r1, #5]
+ ldrb r1, [r1, #7]
+ cmp r1, r3
+ bls _021DC51E
+ sub r1, r1, r3
+ sub r0, r0, r1
+_021DC51E:
+ mov r1, #6
+ mul r1, r0
+ add r0, r2, r1
+ pop {r3, r4}
+ bx lr
+
+ thumb_func_start MOD14_021DC528
+MOD14_021DC528: ; 0x021DC528
+ add r0, #0x14
+ add r2, r0, r1
+ mov r1, #0xc
+ ldrsb r1, [r2, r1]
+ ldrb r0, [r0, #9]
+ sub r0, r1, r0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021DC538
+MOD14_021DC538: ; 0x021DC538
+ ldr r1, _021DC540 ; =0x00000112
+ ldrh r0, [r0, r1]
+ bx lr
+ nop
+_021DC540: .word 0x00000112
+
+ thumb_func_start MOD14_021DC544
+MOD14_021DC544: ; 0x021DC544
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD14_021DC538
+ cmp r0, #0
+ bne _021DC556
+ add r0, r4, #0
+ bl MOD14_021DC430
+_021DC556:
+ pop {r4, pc}
+
+ thumb_func_start MOD14_021DC558
+MOD14_021DC558: ; 0x021DC558
+ add r0, #0xa4
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021DC560
+MOD14_021DC560: ; 0x021DC560
+ add r0, #0xa5
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021DC568
+MOD14_021DC568: ; 0x021DC568
+ mov r2, #0x30
+ add r0, #0xac
+ mul r2, r1
+ add r0, r0, r2
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021DC574
+MOD14_021DC574: ; 0x021DC574
+ add r0, r0, r1
+ add r0, #0xa6
+ ldrb r0, [r0]
+ bx lr
+
+ thumb_func_start MOD14_021DC57C
+MOD14_021DC57C: ; 0x021DC57C
+ add r0, #0xa8
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021DC584
+MOD14_021DC584: ; 0x021DC584
+ add r0, #0x5b
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021DC58C
+MOD14_021DC58C: ; 0x021DC58C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ add r6, r2, #0
+ bl MOD14_021DC3F4
+ cmp r0, #1
+ bne _021DC5B2
+ add r0, r5, #0
+ bl MOD14_021DC3CC
+ cmp r0, #0
+ bne _021DC5C4
+ ldr r0, [r5, #0x4c]
+ add r1, r4, #0
+ add r2, r6, #0
+ bl FUN_020672BC
+ pop {r4, r5, r6, pc}
+_021DC5B2:
+ ldrb r0, [r5, #0x1f]
+ cmp r0, #0
+ bne _021DC5C4
+ ldr r0, [r5, #0x4c]
+ add r1, r4, #0
+ add r2, r6, #0
+ bl FUN_020672BC
+ pop {r4, r5, r6, pc}
+_021DC5C4:
+ ldr r0, [r5, #0x4c]
+ add r1, r4, #0
+ add r2, r6, #0
+ bl FUN_020671BC
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD14_021DC5D0
+MOD14_021DC5D0: ; 0x021DC5D0
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ add r6, r2, #0
+ bl MOD14_021DC3CC
+ cmp r0, #0
+ bne _021DC5EC
+ ldr r0, [r5, #0x4c]
+ add r1, r4, #0
+ add r2, r6, #0
+ bl FUN_020672BC
+ pop {r4, r5, r6, pc}
+_021DC5EC:
+ ldr r0, [r5, #8]
+ add r1, r4, #0
+ add r2, r6, #0
+ bl FUN_020671BC
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD14_021DC5F8
+MOD14_021DC5F8: ; 0x021DC5F8
+ push {r3, r4, r5, r6}
+ ldr r4, _021DC660 ; =MOD14_021DC6C0
+ add r6, r0, #0
+ str r4, [r0, #0x30]
+ mov r4, #0
+ str r4, [r0, #0x1c]
+ str r1, [r0, #0xc]
+ str r2, [r0, #0x10]
+ str r1, [r0, #0x14]
+ str r2, [r0, #0x18]
+ str r1, [r0, #4]
+ add r4, r0, #0
+ str r2, [r0, #8]
+ lsl r2, r2, #0x18
+ mov r5, #0xfe
+ add r4, #0x28
+ strb r5, [r4]
+ lsl r4, r1, #0x18
+ lsr r4, r4, #0x18
+ add r6, #0x29
+ strb r4, [r6]
+ add r6, r0, #0
+ lsr r2, r2, #0x18
+ add r6, #0x2a
+ strb r2, [r6]
+ add r6, r0, #0
+ add r6, #0x2b
+ strb r3, [r6]
+ add r3, r0, #0
+ add r3, #0x2c
+ strb r5, [r3]
+ add r3, r0, #0
+ add r3, #0x2d
+ strb r4, [r3]
+ add r3, r0, #0
+ add r3, #0x2e
+ strb r2, [r3]
+ add r2, r0, #0
+ add r2, #0x2f
+ ldr r3, [sp, #0x10]
+ cmp r1, #0x80
+ strb r3, [r2]
+ bge _021DC656
+ mov r1, #1
+ str r1, [r0, #0x24]
+ pop {r3, r4, r5, r6}
+ bx lr
+_021DC656:
+ sub r5, #0xff
+ str r5, [r0, #0x24]
+ pop {r3, r4, r5, r6}
+ bx lr
+ nop
+_021DC660: .word MOD14_021DC6C0
+
+ thumb_func_start MOD14_021DC664
+MOD14_021DC664: ; 0x021DC664
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r5, r0, #0
+ add r0, #0x2c
+ bl FUN_02020A40
+ cmp r0, #1
+ bne _021DC6A4
+ add r0, r5, #0
+ add r0, #0x28
+ bl FUN_02020A40
+ cmp r0, #0
+ bne _021DC6A4
+ ldr r0, [r5, #0x1c]
+ mov r4, #1
+ cmp r0, #0
+ bne _021DC68C
+ add r6, r4, #0
+ b _021DC68E
+_021DC68C:
+ mov r6, #0
+_021DC68E:
+ add r0, sp, #4
+ add r1, sp, #0
+ bl FUN_02020AB0
+ cmp r0, #0
+ beq _021DC6A8
+ ldr r0, [sp, #4]
+ str r0, [r5, #0x14]
+ ldr r0, [sp]
+ str r0, [r5, #0x18]
+ b _021DC6A8
+_021DC6A4:
+ mov r4, #0
+ add r6, r4, #0
+_021DC6A8:
+ str r4, [r5, #0x1c]
+ ldr r3, [r5, #0x30]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ blx r3
+ add sp, #8
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD14_021DC6B8
+MOD14_021DC6B8: ; 0x021DC6B8
+ mov r2, #0
+ str r2, [r0]
+ str r1, [r0, #0x30]
+ bx lr
+
+ thumb_func_start MOD14_021DC6C0
+MOD14_021DC6C0: ; 0x021DC6C0
+ push {r4, lr}
+ add r4, r0, #0
+ cmp r1, #0
+ beq _021DC6E8
+ cmp r2, #0
+ beq _021DC6E8
+ ldr r1, [r4, #0x14]
+ str r1, [r4, #4]
+ ldr r2, [r4, #0x18]
+ str r2, [r4, #8]
+ ldr r1, [r4, #4]
+ bl MOD14_021DC720
+ strh r0, [r4, #0x20]
+ ldr r1, _021DC6EC ; =MOD14_021DC6F0
+ add r0, r4, #0
+ bl MOD14_021DC6B8
+ mov r0, #1
+ pop {r4, pc}
+_021DC6E8:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_021DC6EC: .word MOD14_021DC6F0
+
+ thumb_func_start MOD14_021DC6F0
+MOD14_021DC6F0: ; 0x021DC6F0
+ push {r3, lr}
+ cmp r1, #0
+ bne _021DC700
+ ldr r1, _021DC704 ; =MOD14_021DC6C0
+ bl MOD14_021DC6B8
+ mov r0, #3
+ pop {r3, pc}
+_021DC700:
+ mov r0, #2
+ pop {r3, pc}
+ .align 2, 0
+_021DC704: .word MOD14_021DC6C0
+
+ thumb_func_start MOD14_021DC708
+MOD14_021DC708: ; 0x021DC708
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #0x14]
+ ldr r2, [r4, #0x18]
+ bl MOD14_021DC720
+ add r2, r0, #0
+ ldrh r1, [r4, #0x20]
+ add r0, r4, #0
+ bl MOD14_021DC738
+ pop {r4, pc}
+
+ thumb_func_start MOD14_021DC720
+MOD14_021DC720: ; 0x021DC720
+ add r3, r0, #0
+ ldr r0, [r3, #0x10]
+ sub r0, r2, r0
+ ldr r2, [r3, #0xc]
+ ldr r3, _021DC734 ; =0x020C5668
+ sub r1, r1, r2
+ lsl r0, r0, #0xc
+ lsl r1, r1, #0xc
+ bx r3
+ nop
+_021DC734: .word 0x020C5668
+
+ thumb_func_start MOD14_021DC738
+MOD14_021DC738: ; 0x021DC738
+ push {r4, r5}
+ sub r2, r2, r1
+ bpl _021DC746
+ mov r4, #0
+ mvn r4, r4
+ mul r2, r4
+ b _021DC748
+_021DC746:
+ mov r4, #1
+_021DC748:
+ ldr r5, _021DC768 ; =0x021E6278
+ mov r3, #0
+_021DC74C:
+ ldrh r1, [r5]
+ cmp r2, r1
+ blt _021DC75A
+ add r3, r3, #1
+ add r5, r5, #2
+ cmp r3, #2
+ blo _021DC74C
+_021DC75A:
+ ldr r1, [r0, #0x24]
+ add r0, r3, #0
+ mul r0, r4
+ mul r0, r1
+ pop {r4, r5}
+ bx lr
+ nop
+_021DC768: .word 0x021E6278
+
+ thumb_func_start MOD14_021DC76C
+MOD14_021DC76C: ; 0x021DC76C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r5, r1, #0
+ add r7, r0, #0
+ ldr r1, _021DC9C8 ; =0x0000B3B4
+ mov r0, #0xa
+ add r6, r2, #0
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _021DC79A
+ mov r0, #0x16
+ lsl r0, r0, #4
+ str r5, [r4, r0]
+ mov r0, #0xa
+ bl FUN_02016B94
+ mov r1, #0x57
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ cmp r0, #0
+ bne _021DC79C
+_021DC79A:
+ b _021DC9C2
+_021DC79C:
+ mov r0, #0
+ add r1, r0, #0
+ mov r5, #1
+ bl FUN_02015F10
+ bl FUN_02015F1C
+ bl FUN_0201E6D8
+ bl FUN_0201E740
+ mov r1, #1
+ lsl r1, r1, #0x1a
+ ldr r0, [r1]
+ ldr r3, _021DC9CC ; =0xFFFFE0FF
+ and r0, r3
+ str r0, [r1]
+ ldr r0, _021DC9D0 ; =0x04001000
+ ldr r2, [r0]
+ and r2, r3
+ str r2, [r0]
+ ldr r3, [r1]
+ ldr r2, _021DC9D4 ; =0xFFCFFFEF
+ and r3, r2
+ ldr r2, _021DC9D8 ; =0x00100010
+ orr r2, r3
+ str r2, [r1]
+ ldr r2, [r0]
+ ldr r1, _021DC9D4 ; =0xFFCFFFEF
+ and r2, r1
+ mov r1, #0x10
+ orr r1, r2
+ str r1, [r0]
+ bl FUN_020B0FC0
+ mov r0, #0
+ str r0, [sp]
+ mov r2, #0x80
+ str r2, [sp, #4]
+ str r0, [sp, #8]
+ mov r3, #0x20
+ str r3, [sp, #0xc]
+ mov r1, #0xa
+ str r1, [sp, #0x10]
+ add r1, r2, #0
+ add r2, r0, #0
+ bl FUN_02009EAC
+ add r1, r4, #0
+ mov r0, #0x80
+ add r1, #0x1c
+ mov r2, #0xa
+ bl FUN_02008C9C
+ str r0, [r4, #0x18]
+ add r0, r4, #0
+ mov r2, #6
+ add r0, #0x1c
+ mov r1, #0
+ lsl r2, r2, #0x12
+ bl FUN_02008D24
+ mov r0, #0x51
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_020B19DC
+ mov r0, #0xa
+ str r0, [sp]
+ mov r0, #0x51
+ lsl r0, r0, #2
+ add r0, r4, r0
+ str r0, [sp, #4]
+ mov r0, #0x12
+ mov r1, #0x1a
+ add r2, r5, #0
+ mov r3, #0
+ bl FUN_02006A8C
+ mov r0, #0
+ mov r1, #0xa
+ bl FUN_02002C84
+ mov r0, #0xa
+ bl FUN_02006D98
+ mov r1, #0x56
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r1, #0
+ add r2, r4, #0
+ add r0, r1, #0
+_021DC854:
+ add r1, r1, #1
+ str r0, [r2, #8]
+ add r2, r2, #4
+ cmp r1, #4
+ blo _021DC854
+ bl MOD14_021DDEE8
+ mov r2, #0x59
+ lsl r2, r2, #2
+ str r4, [r7]
+ add r0, r4, r2
+ sub r2, r2, #4
+ ldr r2, [r4, r2]
+ ldr r3, [r4, #0x18]
+ add r1, r4, #0
+ bl MOD14_021E078C
+ and r5, r0
+ ldr r0, [r4, #0x18]
+ mov r3, #0x16
+ str r0, [sp]
+ lsl r3, r3, #4
+ mov r0, #0x43
+ ldr r2, [r4, r3]
+ sub r3, r3, #4
+ lsl r0, r0, #4
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ add r1, r4, #0
+ bl MOD14_021DDF70
+ mov r2, #0x16
+ and r5, r0
+ ldr r0, _021DC9DC ; =0x00005DC0
+ lsl r2, r2, #4
+ ldr r2, [r4, r2]
+ ldr r3, [r4, #0x18]
+ add r0, r4, r0
+ add r1, r4, #0
+ bl MOD14_021DF07C
+ mov r2, #0x16
+ and r5, r0
+ ldr r0, _021DC9E0 ; =0x00006558
+ lsl r2, r2, #4
+ ldr r2, [r4, r2]
+ ldr r3, [r4, #0x18]
+ add r0, r4, r0
+ add r1, r4, #0
+ bl MOD14_021E0C7C
+ and r5, r0
+ add r0, r6, #0
+ bl MOD14_021DC3A4
+ ldr r1, [r4, #0x18]
+ mov r3, #0x16
+ str r1, [sp]
+ str r0, [sp, #4]
+ lsl r3, r3, #4
+ ldr r0, _021DC9E4 ; =0x000065A0
+ ldr r2, [r4, r3]
+ sub r3, r3, #4
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ add r1, r4, #0
+ bl MOD14_021E0D90
+ and r5, r0
+ add r0, r6, #0
+ bl MOD14_021DC3A4
+ add r7, r0, #0
+ add r0, r6, #0
+ bl MOD14_021DC3AC
+ str r0, [sp, #0x14]
+ add r0, r6, #0
+ bl MOD14_021DC3B4
+ ldr r1, [r4, #0x18]
+ mov r3, #0x16
+ str r1, [sp]
+ ldr r1, [sp, #0x14]
+ str r7, [sp, #4]
+ str r1, [sp, #8]
+ str r0, [sp, #0xc]
+ lsl r3, r3, #4
+ ldr r0, _021DC9E8 ; =0x000065F4
+ ldr r2, [r4, r3]
+ sub r3, r3, #4
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ add r1, r4, #0
+ bl MOD14_021E1750
+ and r5, r0
+ ldr r0, [r4, #0x18]
+ mov r3, #0x16
+ str r0, [sp]
+ lsl r3, r3, #4
+ ldr r0, _021DC9EC ; =0x0000662C
+ ldr r2, [r4, r3]
+ sub r3, r3, #4
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ add r1, r4, #0
+ bl MOD14_021E1D38
+ and r5, r0
+ ldr r0, [r4, #0x18]
+ mov r3, #0x16
+ str r0, [sp]
+ lsl r3, r3, #4
+ ldr r0, _021DC9F0 ; =0x0000B22C
+ ldr r2, [r4, r3]
+ sub r3, r3, #4
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ add r1, r4, #0
+ bl MOD14_021E2A38
+ and r5, r0
+ ldr r0, [r4, #0x18]
+ mov r3, #0x16
+ str r0, [sp]
+ lsl r3, r3, #4
+ ldr r0, _021DC9F4 ; =0x0000B3A4
+ ldr r2, [r4, r3]
+ sub r3, r3, #4
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ add r1, r4, #0
+ bl MOD14_021E33C8
+ and r5, r0
+ ldr r0, [r4, #0x18]
+ mov r3, #0x16
+ str r0, [sp]
+ lsl r3, r3, #4
+ ldr r0, _021DC9F8 ; =0x0000B3A8
+ ldr r2, [r4, r3]
+ sub r3, r3, #4
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ add r1, r4, #0
+ bl MOD14_021E4828
+ and r5, r0
+ add r0, r6, #0
+ bl MOD14_021DC3A4
+ ldr r1, [r4, #0x18]
+ mov r3, #0x16
+ str r1, [sp]
+ str r0, [sp, #4]
+ lsl r3, r3, #4
+ ldr r0, _021DC9FC ; =0x0000B3AC
+ ldr r2, [r4, r3]
+ sub r3, r3, #4
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ add r1, r4, #0
+ bl MOD14_021E5044
+ and r5, r0
+ ldr r0, _021DCA00 ; =0x0000B3B0
+ add r1, r4, #0
+ str r6, [r4, r0]
+ ldr r0, _021DCA04 ; =MOD14_021DCA0C
+ mov r2, #2
+ bl FUN_0200CA44
+ str r0, [r4]
+ ldr r0, _021DCA08 ; =MOD14_021DCBFC
+ add r1, r4, #0
+ mov r2, #1
+ bl MOD14_021DDD40
+ str r0, [r4, #4]
+ add sp, #0x18
+ add r0, r5, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_021DC9C2:
+ mov r0, #0
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DC9C8: .word 0x0000B3B4
+_021DC9CC: .word 0xFFFFE0FF
+_021DC9D0: .word 0x04001000
+_021DC9D4: .word 0xFFCFFFEF
+_021DC9D8: .word 0x00100010
+_021DC9DC: .word 0x00005DC0
+_021DC9E0: .word 0x00006558
+_021DC9E4: .word 0x000065A0
+_021DC9E8: .word 0x000065F4
+_021DC9EC: .word 0x0000662C
+_021DC9F0: .word 0x0000B22C
+_021DC9F4: .word 0x0000B3A4
+_021DC9F8: .word 0x0000B3A8
+_021DC9FC: .word 0x0000B3AC
+_021DCA00: .word 0x0000B3B0
+_021DCA04: .word MOD14_021DCA0C
+_021DCA08: .word MOD14_021DCBFC
+
+ thumb_func_start MOD14_021DCA0C
+MOD14_021DCA0C: ; 0x021DCA0C
+ push {r4, lr}
+ add r4, r1, #0
+ bl MOD14_021DDEF4
+ bl G3X_ResetMtxStack
+ bl G3X_ResetMtxStack_2
+ bl FUN_020B02C8
+ mov r0, #0x56
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02006ED4
+ ldr r0, _021DCA34 ; =0x04000540
+ mov r1, #0
+ str r1, [r0]
+ pop {r4, pc}
+ nop
+_021DCA34: .word 0x04000540
+
+ thumb_func_start MOD14_021DCA38
+MOD14_021DCA38: ; 0x021DCA38
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ ldr r0, [r4]
+ bl FUN_0200CAB4
+ ldr r0, [r4, #4]
+ bl FUN_0200CAB4
+ ldr r0, _021DCB08 ; =0x0000B3AC
+ ldr r0, [r4, r0]
+ bl MOD14_021E50EC
+ ldr r0, _021DCB0C ; =0x0000B3A8
+ ldr r0, [r4, r0]
+ bl MOD14_021E4880
+ ldr r0, _021DCB10 ; =0x0000B3A4
+ ldr r0, [r4, r0]
+ bl MOD14_021E34C0
+ ldr r0, _021DCB14 ; =0x0000B22C
+ add r0, r4, r0
+ bl MOD14_021E2AC8
+ ldr r0, _021DCB18 ; =0x0000662C
+ add r0, r4, r0
+ bl MOD14_021E1F20
+ ldr r0, _021DCB1C ; =0x000065F4
+ add r0, r4, r0
+ bl MOD14_021E17C4
+ ldr r0, _021DCB20 ; =0x000065A0
+ add r0, r4, r0
+ bl MOD14_021E0E44
+ ldr r0, _021DCB24 ; =0x00006558
+ add r0, r4, r0
+ bl MOD14_021E0D3C
+ ldr r0, _021DCB28 ; =0x00005DC0
+ add r0, r4, r0
+ bl MOD14_021DF3A8
+ mov r0, #0x43
+ lsl r0, r0, #4
+ add r0, r4, r0
+ bl MOD14_021DDFEC
+ mov r0, #0x59
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl MOD14_021E089C
+ ldr r0, [r4, #0x18]
+ bl FUN_0201FD58
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #3
+ bl FUN_020178A0
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #2
+ bl FUN_020178A0
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_020178A0
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #4
+ bl FUN_020178A0
+ mov r0, #0x56
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_020072E8
+ mov r0, #0
+ bl FUN_02002CC0
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ add r0, r4, #0
+ bl FUN_02016A18
+ bl FUN_02009FA0
+ pop {r4, pc}
+ .align 2, 0
+_021DCB08: .word 0x0000B3AC
+_021DCB0C: .word 0x0000B3A8
+_021DCB10: .word 0x0000B3A4
+_021DCB14: .word 0x0000B22C
+_021DCB18: .word 0x0000662C
+_021DCB1C: .word 0x000065F4
+_021DCB20: .word 0x000065A0
+_021DCB24: .word 0x00006558
+_021DCB28: .word 0x00005DC0
+
+ thumb_func_start MOD14_021DCB2C
+MOD14_021DCB2C: ; 0x021DCB2C
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ add r5, r0, #0
+ cmp r6, #0x34
+ bhs _021DCB88
+ mov r4, #0
+ add r1, r5, #0
+_021DCB3A:
+ ldr r0, [r1, #8]
+ cmp r0, #0
+ bne _021DCB7E
+ ldr r0, _021DCB90 ; =0x021E63D0
+ lsl r7, r6, #3
+ ldr r0, [r0, r7]
+ str r0, [sp]
+ ldr r1, [sp]
+ mov r0, #0xa
+ add r1, #0x14
+ bl FUN_02016998
+ add r1, r0, #0
+ beq _021DCB78
+ str r6, [r1]
+ strh r4, [r1, #4]
+ mov r0, #0
+ strh r0, [r1, #6]
+ ldr r0, [sp]
+ str r5, [r1, #0xc]
+ add r0, r1, r0
+ str r0, [r1, #0x10]
+ ldr r0, _021DCB94 ; =0x021E63CC
+ mov r2, #1
+ ldr r0, [r0, r7]
+ bl FUN_0200CA44
+ lsl r1, r4, #2
+ add r1, r5, r1
+ str r0, [r1, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DCB78:
+ bl ErrorHandling
+ pop {r3, r4, r5, r6, r7, pc}
+_021DCB7E:
+ add r4, r4, #1
+ add r1, r1, #4
+ cmp r4, #4
+ blo _021DCB3A
+ pop {r3, r4, r5, r6, r7, pc}
+_021DCB88:
+ bl ErrorHandling
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021DCB90: .word 0x021E63D0
+_021DCB94: .word 0x021E63CC
+
+ thumb_func_start MOD14_021DCB98
+MOD14_021DCB98: ; 0x021DCB98
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r4, #0
+_021DCBA0:
+ ldr r0, [r5, #8]
+ cmp r0, #0
+ beq _021DCBB4
+ bl FUN_0201B6C8
+ ldr r0, [r0]
+ cmp r0, r6
+ bne _021DCBB4
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+_021DCBB4:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _021DCBA0
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD14_021DCBC0
+MOD14_021DCBC0: ; 0x021DCBC0
+ mov r2, #0
+_021DCBC2:
+ ldr r1, [r0, #8]
+ cmp r1, #0
+ beq _021DCBCC
+ mov r0, #0
+ bx lr
+_021DCBCC:
+ add r2, r2, #1
+ add r0, r0, #4
+ cmp r2, #4
+ blt _021DCBC2
+ mov r0, #1
+ bx lr
+
+ thumb_func_start MOD14_021DCBD8
+MOD14_021DCBD8: ; 0x021DCBD8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldrh r0, [r5, #4]
+ ldr r4, [r5, #0xc]
+ lsl r0, r0, #2
+ add r0, r4, r0
+ ldr r0, [r0, #8]
+ bl FUN_0200CAB4
+ ldrh r0, [r5, #4]
+ mov r1, #0
+ lsl r0, r0, #2
+ add r0, r4, r0
+ str r1, [r0, #8]
+ add r0, r5, #0
+ bl FUN_02016A18
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD14_021DCBFC
+MOD14_021DCBFC: ; 0x021DCBFC
+ push {r4, lr}
+ ldr r0, _021DCC20 ; =0x000065A0
+ add r4, r1, #0
+ add r0, r4, r0
+ bl MOD14_021E0EE4
+ ldr r0, [r4, #0x18]
+ bl FUN_0201FDEC
+ bl FUN_02009F80
+ ldr r3, _021DCC24 ; =0x027E0000
+ ldr r1, _021DCC28 ; =0x00003FF8
+ mov r0, #1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ pop {r4, pc}
+ .align 2, 0
+_021DCC20: .word 0x000065A0
+_021DCC24: .word 0x027E0000
+_021DCC28: .word 0x00003FF8
+
+ thumb_func_start MOD14_021DCC2C
+MOD14_021DCC2C: ; 0x021DCC2C
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ mov r0, #0x16
+ ldr r4, [r5, #0xc]
+ lsl r0, r0, #4
+ ldr r6, [r4, r0]
+ ldrh r0, [r5, #6]
+ cmp r0, #0
+ beq _021DCC44
+ cmp r0, #1
+ beq _021DCC7E
+ pop {r4, r5, r6, pc}
+_021DCC44:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD14_021DDA38
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD14_021DDB50
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD14_021DDCF0
+ add r0, r6, #0
+ bl MOD14_021DC3C4
+ cmp r0, #4
+ beq _021DCC76
+ ldr r0, _021DCC9C ; =0x000065A0
+ add r0, r4, r0
+ bl MOD14_021E0EF4
+ ldrh r0, [r5, #6]
+ add r0, r0, #1
+ strh r0, [r5, #6]
+ pop {r4, r5, r6, pc}
+_021DCC76:
+ add r0, r5, #0
+ bl MOD14_021DCBD8
+ pop {r4, r5, r6, pc}
+_021DCC7E:
+ ldr r0, _021DCC9C ; =0x000065A0
+ add r0, r4, r0
+ bl MOD14_021E0F28
+ cmp r0, #0
+ beq _021DCC98
+ ldr r0, _021DCC9C ; =0x000065A0
+ add r0, r4, r0
+ bl MOD14_021E13F0
+ add r0, r5, #0
+ bl MOD14_021DCBD8
+_021DCC98:
+ pop {r4, r5, r6, pc}
+ nop
+_021DCC9C: .word 0x000065A0
+
+ thumb_func_start MOD14_021DCCA0
+MOD14_021DCCA0: ; 0x021DCCA0
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ ldrh r0, [r4, #6]
+ cmp r0, #0
+ beq _021DCCB4
+ cmp r0, #1
+ beq _021DCCEA
+ add sp, #0xc
+ pop {r3, r4, pc}
+_021DCCB4:
+ ldr r0, _021DCCFC ; =0x0000060D
+ bl FUN_020054C8
+ mov r0, #0xa
+ str r0, [sp]
+ ldr r0, _021DCD00 ; =0x04000050
+ mov r1, #0
+ mov r2, #0x3f
+ mov r3, #6
+ bl G2x_SetBlendAlpha_
+ mov r0, #8
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0xa
+ str r0, [sp, #8]
+ mov r0, #0
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ ldrh r0, [r4, #6]
+ add sp, #0xc
+ add r0, r0, #1
+ strh r0, [r4, #6]
+ pop {r3, r4, pc}
+_021DCCEA:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021DCCF8
+ add r0, r4, #0
+ bl MOD14_021DCBD8
+_021DCCF8:
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+_021DCCFC: .word 0x0000060D
+_021DCD00: .word 0x04000050
+
+ thumb_func_start MOD14_021DCD04
+MOD14_021DCD04: ; 0x021DCD04
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ ldrh r0, [r4, #6]
+ cmp r0, #0
+ beq _021DCD18
+ cmp r0, #1
+ beq _021DCD48
+ add sp, #0xc
+ pop {r3, r4, pc}
+_021DCD18:
+ mov r0, #0xa
+ str r0, [sp]
+ ldr r0, _021DCD5C ; =0x04000050
+ mov r1, #0
+ mov r2, #0x3f
+ mov r3, #6
+ bl G2x_SetBlendAlpha_
+ mov r0, #6
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0xa
+ str r0, [sp, #8]
+ mov r0, #0
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ ldrh r0, [r4, #6]
+ add sp, #0xc
+ add r0, r0, #1
+ strh r0, [r4, #6]
+ pop {r3, r4, pc}
+_021DCD48:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021DCD56
+ add r0, r4, #0
+ bl MOD14_021DCBD8
+_021DCD56:
+ add sp, #0xc
+ pop {r3, r4, pc}
+ nop
+_021DCD5C: .word 0x04000050
+
+ thumb_func_start MOD14_021DCD60
+MOD14_021DCD60: ; 0x021DCD60
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ ldrh r0, [r4, #6]
+ cmp r0, #0
+ beq _021DCD74
+ cmp r0, #1
+ beq _021DCD96
+ add sp, #0xc
+ pop {r3, r4, pc}
+_021DCD74:
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0xa
+ str r0, [sp, #8]
+ mov r0, #0
+ add r1, r0, #0
+ add r2, r0, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ ldrh r0, [r4, #6]
+ add sp, #0xc
+ add r0, r0, #1
+ strh r0, [r4, #6]
+ pop {r3, r4, pc}
+_021DCD96:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021DCDA4
+ add r0, r4, #0
+ bl MOD14_021DCBD8
+_021DCDA4:
+ add sp, #0xc
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD14_021DCDA8
+MOD14_021DCDA8: ; 0x021DCDA8
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ mov r0, #0x16
+ ldr r5, [r4, #0xc]
+ lsl r0, r0, #4
+ ldr r6, [r5, r0]
+ ldrh r0, [r4, #6]
+ cmp r0, #4
+ bhi _021DCE5E
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021DCDC6: ; jump table
+ .short _021DCDD0 - _021DCDC6 - 2 ; case 0
+ .short _021DCDDE - _021DCDC6 - 2 ; case 1
+ .short _021DCDF0 - _021DCDC6 - 2 ; case 2
+ .short _021DCE30 - _021DCDC6 - 2 ; case 3
+ .short _021DCE4C - _021DCDC6 - 2 ; case 4
+_021DCDD0:
+ ldr r0, _021DCE60 ; =0x0000B3A8
+ ldr r0, [r5, r0]
+ bl MOD14_021E4DF8
+ ldrh r0, [r4, #6]
+ add r0, r0, #1
+ strh r0, [r4, #6]
+_021DCDDE:
+ ldr r0, _021DCE60 ; =0x0000B3A8
+ ldr r0, [r5, r0]
+ bl MOD14_021E4E24
+ cmp r0, #0
+ beq _021DCE5E
+ ldrh r0, [r4, #6]
+ add r0, r0, #1
+ strh r0, [r4, #6]
+_021DCDF0:
+ mov r0, #0x43
+ add r1, r6, #0
+ lsl r0, r0, #4
+ add r1, #0x40
+ ldrb r0, [r5, r0]
+ ldrb r1, [r1]
+ bl MOD14_021DDD1C
+ add r7, r0, #0
+ mov r0, #0x43
+ lsl r0, r0, #4
+ add r1, r6, #0
+ add r0, r5, r0
+ add r1, #0x40
+ add r2, r7, #0
+ mov r3, #1
+ bl MOD14_021DE0C4
+ mov r0, #0x43
+ lsl r0, r0, #4
+ add r6, #0x40
+ add r0, r5, r0
+ add r1, r6, #0
+ add r2, r7, #0
+ bl MOD14_021DE2E8
+ ldr r0, _021DCE64 ; =0x000005DC
+ bl FUN_020054C8
+ ldrh r0, [r4, #6]
+ add r0, r0, #1
+ strh r0, [r4, #6]
+_021DCE30:
+ mov r0, #0x43
+ lsl r0, r0, #4
+ add r0, r5, r0
+ bl MOD14_021DE394
+ cmp r0, #0
+ beq _021DCE5E
+ ldr r0, _021DCE60 ; =0x0000B3A8
+ ldr r0, [r5, r0]
+ bl MOD14_021E4BE0
+ ldrh r0, [r4, #6]
+ add r0, r0, #1
+ strh r0, [r4, #6]
+_021DCE4C:
+ ldr r0, _021DCE60 ; =0x0000B3A8
+ ldr r0, [r5, r0]
+ bl MOD14_021E4C40
+ cmp r0, #0
+ beq _021DCE5E
+ add r0, r4, #0
+ bl MOD14_021DCBD8
+_021DCE5E:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DCE60: .word 0x0000B3A8
+_021DCE64: .word 0x000005DC
+
+ thumb_func_start MOD14_021DCE68
+MOD14_021DCE68: ; 0x021DCE68
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldrh r0, [r5, #6]
+ ldr r4, [r5, #0xc]
+ cmp r0, #0
+ beq _021DCE7A
+ cmp r0, #1
+ beq _021DCE98
+ pop {r3, r4, r5, pc}
+_021DCE7A:
+ ldr r0, _021DCEB8 ; =0x000005DC
+ bl FUN_020054C8
+ ldr r0, _021DCEBC ; =0x00005DC0
+ add r0, r4, r0
+ bl MOD14_021DF484
+ ldr r0, _021DCEC0 ; =0x0000B3A8
+ ldr r0, [r4, r0]
+ bl MOD14_021E4BE0
+ ldrh r0, [r5, #6]
+ add r0, r0, #1
+ strh r0, [r5, #6]
+ pop {r3, r4, r5, pc}
+_021DCE98:
+ ldr r0, _021DCEBC ; =0x00005DC0
+ add r0, r4, r0
+ bl MOD14_021DF59C
+ cmp r0, #0
+ beq _021DCEB6
+ ldr r0, _021DCEC0 ; =0x0000B3A8
+ ldr r0, [r4, r0]
+ bl MOD14_021E4C40
+ cmp r0, #0
+ beq _021DCEB6
+ add r0, r5, #0
+ bl MOD14_021DCBD8
+_021DCEB6:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DCEB8: .word 0x000005DC
+_021DCEBC: .word 0x00005DC0
+_021DCEC0: .word 0x0000B3A8
+
+ thumb_func_start MOD14_021DCEC4
+MOD14_021DCEC4: ; 0x021DCEC4
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ mov r0, #0x16
+ ldr r4, [r5, #0xc]
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl MOD14_021DC3C4
+ cmp r0, #4
+ ldrh r0, [r5, #6]
+ beq _021DCF08
+ cmp r0, #0
+ beq _021DCEE4
+ cmp r0, #1
+ beq _021DCEF4
+ pop {r3, r4, r5, pc}
+_021DCEE4:
+ ldr r0, _021DCF38 ; =0x000065A0
+ add r0, r4, r0
+ bl MOD14_021E1450
+ ldrh r0, [r5, #6]
+ add r0, r0, #1
+ strh r0, [r5, #6]
+ pop {r3, r4, r5, pc}
+_021DCEF4:
+ ldr r0, _021DCF38 ; =0x000065A0
+ add r0, r4, r0
+ bl MOD14_021E1674
+ cmp r0, #0
+ beq _021DCF34
+ add r0, r5, #0
+ bl MOD14_021DCBD8
+ pop {r3, r4, r5, pc}
+_021DCF08:
+ cmp r0, #0
+ beq _021DCF12
+ cmp r0, #1
+ beq _021DCF22
+ pop {r3, r4, r5, pc}
+_021DCF12:
+ ldr r0, _021DCF3C ; =0x0000B3AC
+ ldr r0, [r4, r0]
+ bl MOD14_021E526C
+ ldrh r0, [r5, #6]
+ add r0, r0, #1
+ strh r0, [r5, #6]
+ pop {r3, r4, r5, pc}
+_021DCF22:
+ ldr r0, _021DCF3C ; =0x0000B3AC
+ ldr r0, [r4, r0]
+ bl MOD14_021E52BC
+ cmp r0, #0
+ beq _021DCF34
+ add r0, r5, #0
+ bl MOD14_021DCBD8
+_021DCF34:
+ pop {r3, r4, r5, pc}
+ nop
+_021DCF38: .word 0x000065A0
+_021DCF3C: .word 0x0000B3AC
+
+ thumb_func_start MOD14_021DCF40
+MOD14_021DCF40: ; 0x021DCF40
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ mov r0, #0x16
+ ldr r4, [r5, #0xc]
+ lsl r0, r0, #4
+ ldr r6, [r4, r0]
+ add r0, r6, #0
+ bl MOD14_021DC3F4
+ cmp r0, #2
+ bne _021DCF60
+ ldr r0, _021DCF94 ; =0x00005DC0
+ add r0, r4, r0
+ bl MOD14_021DFF8C
+ b _021DCF84
+_021DCF60:
+ add r0, r6, #0
+ bl MOD14_021DC3CC
+ cmp r0, #0
+ beq _021DCF70
+ cmp r0, #1
+ beq _021DCF7C
+ b _021DCF84
+_021DCF70:
+ mov r0, #0x43
+ lsl r0, r0, #4
+ add r0, r4, r0
+ bl MOD14_021DEF4C
+ b _021DCF84
+_021DCF7C:
+ ldr r0, _021DCF98 ; =0x0000B22C
+ add r0, r4, r0
+ bl MOD14_021E3054
+_021DCF84:
+ ldr r0, _021DCF9C ; =0x000065A0
+ add r0, r4, r0
+ bl MOD14_021E1678
+ add r0, r5, #0
+ bl MOD14_021DCBD8
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021DCF94: .word 0x00005DC0
+_021DCF98: .word 0x0000B22C
+_021DCF9C: .word 0x000065A0
+
+ thumb_func_start MOD14_021DCFA0
+MOD14_021DCFA0: ; 0x021DCFA0
+ push {r4, lr}
+ add r4, r1, #0
+ ldr r1, [r4, #0xc]
+ ldr r0, _021DCFB8 ; =0x000065A0
+ add r0, r1, r0
+ bl MOD14_021E14D0
+ add r0, r4, #0
+ bl MOD14_021DCBD8
+ pop {r4, pc}
+ nop
+_021DCFB8: .word 0x000065A0
+
+ thumb_func_start MOD14_021DCFBC
+MOD14_021DCFBC: ; 0x021DCFBC
+ push {r4, lr}
+ add r4, r1, #0
+ ldrh r0, [r4, #6]
+ ldr r1, [r4, #0xc]
+ cmp r0, #0
+ beq _021DCFCE
+ cmp r0, #1
+ beq _021DCFDE
+ pop {r4, pc}
+_021DCFCE:
+ ldr r0, _021DCFF4 ; =0x00005DC0
+ add r0, r1, r0
+ bl MOD14_021DF758
+ ldrh r0, [r4, #6]
+ add r0, r0, #1
+ strh r0, [r4, #6]
+ pop {r4, pc}
+_021DCFDE:
+ ldr r0, _021DCFF4 ; =0x00005DC0
+ add r0, r1, r0
+ bl MOD14_021DF7A0
+ cmp r0, #0
+ beq _021DCFF0
+ add r0, r4, #0
+ bl MOD14_021DCBD8
+_021DCFF0:
+ pop {r4, pc}
+ nop
+_021DCFF4: .word 0x00005DC0
+
+ thumb_func_start MOD14_021DCFF8
+MOD14_021DCFF8: ; 0x021DCFF8
+ push {r4, lr}
+ add r4, r1, #0
+ ldrh r0, [r4, #6]
+ ldr r1, [r4, #0xc]
+ cmp r0, #0
+ beq _021DD00A
+ cmp r0, #1
+ beq _021DD01A
+ pop {r4, pc}
+_021DD00A:
+ ldr r0, _021DD030 ; =0x00005DC0
+ add r0, r1, r0
+ bl MOD14_021DF890
+ ldrh r0, [r4, #6]
+ add r0, r0, #1
+ strh r0, [r4, #6]
+ pop {r4, pc}
+_021DD01A:
+ ldr r0, _021DD030 ; =0x00005DC0
+ add r0, r1, r0
+ bl MOD14_021DF8C4
+ cmp r0, #0
+ beq _021DD02C
+ add r0, r4, #0
+ bl MOD14_021DCBD8
+_021DD02C:
+ pop {r4, pc}
+ nop
+_021DD030: .word 0x00005DC0
+
+ thumb_func_start MOD14_021DD034
+MOD14_021DD034: ; 0x021DD034
+ push {r4, lr}
+ add r4, r1, #0
+ ldrh r0, [r4, #6]
+ ldr r1, [r4, #0xc]
+ cmp r0, #0
+ beq _021DD046
+ cmp r0, #1
+ beq _021DD056
+ pop {r4, pc}
+_021DD046:
+ ldr r0, _021DD06C ; =0x00005DC0
+ add r0, r1, r0
+ bl MOD14_021DF9DC
+ ldrh r0, [r4, #6]
+ add r0, r0, #1
+ strh r0, [r4, #6]
+ pop {r4, pc}
+_021DD056:
+ ldr r0, _021DD06C ; =0x00005DC0
+ add r0, r1, r0
+ bl MOD14_021DFA58
+ cmp r0, #0
+ beq _021DD068
+ add r0, r4, #0
+ bl MOD14_021DCBD8
+_021DD068:
+ pop {r4, pc}
+ nop
+_021DD06C: .word 0x00005DC0
+
+ thumb_func_start MOD14_021DD070
+MOD14_021DD070: ; 0x021DD070
+ push {r4, lr}
+ add r4, r1, #0
+ ldrh r0, [r4, #6]
+ ldr r1, [r4, #0xc]
+ cmp r0, #0
+ beq _021DD082
+ cmp r0, #1
+ beq _021DD092
+ pop {r4, pc}
+_021DD082:
+ ldr r0, _021DD09C ; =0x00005DC0
+ add r0, r1, r0
+ bl MOD14_021DFE28
+ ldrh r0, [r4, #6]
+ add r0, r0, #1
+ strh r0, [r4, #6]
+ pop {r4, pc}
+_021DD092:
+ add r0, r4, #0
+ bl MOD14_021DCBD8
+ pop {r4, pc}
+ nop
+_021DD09C: .word 0x00005DC0
+
+ thumb_func_start MOD14_021DD0A0
+MOD14_021DD0A0: ; 0x021DD0A0
+ push {r4, lr}
+ add r4, r1, #0
+ ldrh r0, [r4, #6]
+ ldr r1, [r4, #0xc]
+ cmp r0, #0
+ beq _021DD0B6
+ cmp r0, #1
+ beq _021DD0C6
+ cmp r0, #2
+ beq _021DD0D6
+ pop {r4, pc}
+_021DD0B6:
+ ldr r0, _021DD0EC ; =0x0000B22C
+ add r0, r1, r0
+ bl MOD14_021E2F08
+ ldrh r0, [r4, #6]
+ add r0, r0, #1
+ strh r0, [r4, #6]
+ pop {r4, pc}
+_021DD0C6:
+ ldr r0, _021DD0EC ; =0x0000B22C
+ add r0, r1, r0
+ bl MOD14_021E2C7C
+ ldrh r0, [r4, #6]
+ add r0, r0, #1
+ strh r0, [r4, #6]
+ pop {r4, pc}
+_021DD0D6:
+ ldr r0, _021DD0EC ; =0x0000B22C
+ add r0, r1, r0
+ bl MOD14_021E2DA4
+ cmp r0, #0
+ beq _021DD0E8
+ add r0, r4, #0
+ bl MOD14_021DCBD8
+_021DD0E8:
+ pop {r4, pc}
+ nop
+_021DD0EC: .word 0x0000B22C
+
+ thumb_func_start MOD14_021DD0F0
+MOD14_021DD0F0: ; 0x021DD0F0
+ push {r4, lr}
+ add r4, r1, #0
+ ldrh r0, [r4, #6]
+ ldr r1, [r4, #0xc]
+ cmp r0, #0
+ beq _021DD102
+ cmp r0, #1
+ beq _021DD112
+ pop {r4, pc}
+_021DD102:
+ ldr r0, _021DD128 ; =0x00005DC0
+ add r0, r1, r0
+ bl MOD14_021DFE60
+ ldrh r0, [r4, #6]
+ add r0, r0, #1
+ strh r0, [r4, #6]
+ pop {r4, pc}
+_021DD112:
+ ldr r0, _021DD128 ; =0x00005DC0
+ add r0, r1, r0
+ bl MOD14_021DFE84
+ cmp r0, #0
+ beq _021DD124
+ add r0, r4, #0
+ bl MOD14_021DCBD8
+_021DD124:
+ pop {r4, pc}
+ nop
+_021DD128: .word 0x00005DC0
+
+ thumb_func_start MOD14_021DD12C
+MOD14_021DD12C: ; 0x021DD12C
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldrh r1, [r5, #6]
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldr r4, [r5, #0xc]
+ cmp r1, #0
+ ldr r0, [r4, r0]
+ beq _021DD144
+ cmp r1, #1
+ beq _021DD15C
+ pop {r3, r4, r5, pc}
+_021DD144:
+ bl MOD14_021DC3E0
+ add r1, r0, #0
+ mov r0, #0x43
+ lsl r0, r0, #4
+ add r0, r4, r0
+ bl MOD14_021DEDD0
+ ldrh r0, [r5, #6]
+ add r0, r0, #1
+ strh r0, [r5, #6]
+ pop {r3, r4, r5, pc}
+_021DD15C:
+ mov r0, #0x43
+ lsl r0, r0, #4
+ add r0, r4, r0
+ bl MOD14_021DEE08
+ cmp r0, #0
+ beq _021DD170
+ add r0, r5, #0
+ bl MOD14_021DCBD8
+_021DD170:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DD174
+MOD14_021DD174: ; 0x021DD174
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldrh r1, [r5, #6]
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldr r4, [r5, #0xc]
+ cmp r1, #0
+ ldr r0, [r4, r0]
+ beq _021DD18C
+ cmp r1, #1
+ beq _021DD1A2
+ pop {r3, r4, r5, pc}
+_021DD18C:
+ bl MOD14_021DC3E8
+ add r1, r0, #0
+ ldr r0, _021DD1B8 ; =0x0000B22C
+ add r0, r4, r0
+ bl MOD14_021E2F44
+ ldrh r0, [r5, #6]
+ add r0, r0, #1
+ strh r0, [r5, #6]
+ pop {r3, r4, r5, pc}
+_021DD1A2:
+ ldr r0, _021DD1B8 ; =0x0000B22C
+ add r0, r4, r0
+ bl MOD14_021E2F68
+ cmp r0, #0
+ beq _021DD1B4
+ add r0, r5, #0
+ bl MOD14_021DCBD8
+_021DD1B4:
+ pop {r3, r4, r5, pc}
+ nop
+_021DD1B8: .word 0x0000B22C
+
+ thumb_func_start MOD14_021DD1BC
+MOD14_021DD1BC: ; 0x021DD1BC
+ push {r4, lr}
+ add r4, r1, #0
+ ldrh r0, [r4, #6]
+ ldr r1, [r4, #0xc]
+ cmp r0, #0
+ beq _021DD1CE
+ cmp r0, #1
+ beq _021DD1DE
+ pop {r4, pc}
+_021DD1CE:
+ ldr r0, _021DD1F4 ; =0x0000662C
+ add r0, r1, r0
+ bl MOD14_021E26E4
+ ldrh r0, [r4, #6]
+ add r0, r0, #1
+ strh r0, [r4, #6]
+ pop {r4, pc}
+_021DD1DE:
+ ldr r0, _021DD1F4 ; =0x0000662C
+ add r0, r1, r0
+ bl MOD14_021E27AC
+ cmp r0, #0
+ beq _021DD1F0
+ add r0, r4, #0
+ bl MOD14_021DCBD8
+_021DD1F0:
+ pop {r4, pc}
+ nop
+_021DD1F4: .word 0x0000662C
+
+ thumb_func_start MOD14_021DD1F8
+MOD14_021DD1F8: ; 0x021DD1F8
+ push {r4, lr}
+ add r4, r1, #0
+ ldrh r0, [r4, #6]
+ ldr r1, [r4, #0xc]
+ cmp r0, #0
+ beq _021DD20A
+ cmp r0, #1
+ beq _021DD21A
+ pop {r4, pc}
+_021DD20A:
+ ldr r0, _021DD230 ; =0x0000662C
+ add r0, r1, r0
+ bl MOD14_021E283C
+ ldrh r0, [r4, #6]
+ add r0, r0, #1
+ strh r0, [r4, #6]
+ pop {r4, pc}
+_021DD21A:
+ ldr r0, _021DD230 ; =0x0000662C
+ add r0, r1, r0
+ bl MOD14_021E2884
+ cmp r0, #0
+ beq _021DD22C
+ add r0, r4, #0
+ bl MOD14_021DCBD8
+_021DD22C:
+ pop {r4, pc}
+ nop
+_021DD230: .word 0x0000662C
+
+ thumb_func_start MOD14_021DD234
+MOD14_021DD234: ; 0x021DD234
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldrh r0, [r5, #6]
+ ldr r4, [r5, #0xc]
+ cmp r0, #0
+ beq _021DD246
+ cmp r0, #1
+ beq _021DD256
+ pop {r3, r4, r5, pc}
+_021DD246:
+ ldr r0, _021DD274 ; =0x00005DC0
+ add r0, r4, r0
+ bl MOD14_021E0050
+ ldrh r0, [r5, #6]
+ add r0, r0, #1
+ strh r0, [r5, #6]
+ pop {r3, r4, r5, pc}
+_021DD256:
+ ldr r0, _021DD274 ; =0x00005DC0
+ add r0, r4, r0
+ bl MOD14_021E0080
+ cmp r0, #0
+ beq _021DD270
+ ldr r0, _021DD278 ; =0x000065A0
+ add r0, r4, r0
+ bl MOD14_021E1704
+ add r0, r5, #0
+ bl MOD14_021DCBD8
+_021DD270:
+ pop {r3, r4, r5, pc}
+ nop
+_021DD274: .word 0x00005DC0
+_021DD278: .word 0x000065A0
+
+ thumb_func_start MOD14_021DD27C
+MOD14_021DD27C: ; 0x021DD27C
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldrh r0, [r5, #6]
+ ldr r4, [r5, #0xc]
+ cmp r0, #0
+ beq _021DD28E
+ cmp r0, #1
+ beq _021DD29E
+ pop {r3, r4, r5, pc}
+_021DD28E:
+ ldr r0, _021DD2BC ; =0x00005DC0
+ add r0, r4, r0
+ bl MOD14_021E00F0
+ ldrh r0, [r5, #6]
+ add r0, r0, #1
+ strh r0, [r5, #6]
+ pop {r3, r4, r5, pc}
+_021DD29E:
+ ldr r0, _021DD2BC ; =0x00005DC0
+ add r0, r4, r0
+ bl MOD14_021E0120
+ cmp r0, #0
+ beq _021DD2B8
+ ldr r0, _021DD2C0 ; =0x000065A0
+ add r0, r4, r0
+ bl MOD14_021E1704
+ add r0, r5, #0
+ bl MOD14_021DCBD8
+_021DD2B8:
+ pop {r3, r4, r5, pc}
+ nop
+_021DD2BC: .word 0x00005DC0
+_021DD2C0: .word 0x000065A0
+
+ thumb_func_start MOD14_021DD2C4
+MOD14_021DD2C4: ; 0x021DD2C4
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldrh r0, [r5, #6]
+ ldr r4, [r5, #0xc]
+ cmp r0, #0
+ beq _021DD2D6
+ cmp r0, #1
+ beq _021DD2E6
+ pop {r3, r4, r5, pc}
+_021DD2D6:
+ ldr r0, _021DD304 ; =0x00005DC0
+ add r0, r4, r0
+ bl MOD14_021E0190
+ ldrh r0, [r5, #6]
+ add r0, r0, #1
+ strh r0, [r5, #6]
+ pop {r3, r4, r5, pc}
+_021DD2E6:
+ ldr r0, _021DD304 ; =0x00005DC0
+ add r0, r4, r0
+ bl MOD14_021E01BC
+ cmp r0, #0
+ beq _021DD300
+ ldr r0, _021DD308 ; =0x000065A0
+ add r0, r4, r0
+ bl MOD14_021E1704
+ add r0, r5, #0
+ bl MOD14_021DCBD8
+_021DD300:
+ pop {r3, r4, r5, pc}
+ nop
+_021DD304: .word 0x00005DC0
+_021DD308: .word 0x000065A0
+
+ thumb_func_start MOD14_021DD30C
+MOD14_021DD30C: ; 0x021DD30C
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r1, #0
+ mov r0, #0x16
+ ldr r4, [r7, #0xc]
+ lsl r0, r0, #4
+ ldr r5, [r4, r0]
+ add r0, r5, #0
+ bl MOD14_021DC430
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD14_021DC3F4
+ cmp r0, #2
+ bne _021DD336
+ ldr r0, _021DD374 ; =0x00005DC0
+ add r1, r6, #0
+ add r0, r4, r0
+ bl MOD14_021DFFD8
+ b _021DD36C
+_021DD336:
+ add r0, r5, #0
+ bl MOD14_021DC3CC
+ cmp r0, #0
+ beq _021DD358
+ cmp r0, #1
+ bne _021DD36C
+ add r0, r5, #0
+ bl MOD14_021DC3E8
+ add r1, r0, #0
+ ldr r0, _021DD378 ; =0x0000B22C
+ add r2, r6, #0
+ add r0, r4, r0
+ bl MOD14_021E3024
+ b _021DD36C
+_021DD358:
+ add r0, r5, #0
+ bl MOD14_021DC3E0
+ add r1, r0, #0
+ mov r0, #0x43
+ lsl r0, r0, #4
+ add r0, r4, r0
+ add r2, r6, #0
+ bl MOD14_021DEEF8
+_021DD36C:
+ add r0, r7, #0
+ bl MOD14_021DCBD8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DD374: .word 0x00005DC0
+_021DD378: .word 0x0000B22C
+
+ thumb_func_start MOD14_021DD37C
+MOD14_021DD37C: ; 0x021DD37C
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldrh r0, [r5, #6]
+ ldr r4, [r5, #0xc]
+ cmp r0, #0
+ beq _021DD38E
+ cmp r0, #1
+ beq _021DD3A6
+ pop {r3, r4, r5, pc}
+_021DD38E:
+ ldr r0, _021DD3C4 ; =0x00005DC0
+ add r0, r4, r0
+ bl MOD14_021E022C
+ ldr r0, _021DD3C8 ; =0x0000B3A8
+ ldr r0, [r4, r0]
+ bl MOD14_021E4F58
+ ldrh r0, [r5, #6]
+ add r0, r0, #1
+ strh r0, [r5, #6]
+ pop {r3, r4, r5, pc}
+_021DD3A6:
+ ldr r0, _021DD3C8 ; =0x0000B3A8
+ ldr r0, [r4, r0]
+ bl MOD14_021E4FA0
+ cmp r0, #0
+ beq _021DD3C0
+ ldr r0, _021DD3C4 ; =0x00005DC0
+ add r0, r4, r0
+ bl MOD14_021E0244
+ add r0, r5, #0
+ bl MOD14_021DCBD8
+_021DD3C0:
+ pop {r3, r4, r5, pc}
+ nop
+_021DD3C4: .word 0x00005DC0
+_021DD3C8: .word 0x0000B3A8
+
+ thumb_func_start MOD14_021DD3CC
+MOD14_021DD3CC: ; 0x021DD3CC
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ mov r0, #0x16
+ ldr r4, [r5, #0xc]
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl MOD14_021DC450
+ add r1, r0, #0
+ ldr r0, _021DD3F0 ; =0x000065F4
+ add r0, r4, r0
+ bl MOD14_021E189C
+ add r0, r5, #0
+ bl MOD14_021DCBD8
+ pop {r3, r4, r5, pc}
+ nop
+_021DD3F0: .word 0x000065F4
+
+ thumb_func_start MOD14_021DD3F4
+MOD14_021DD3F4: ; 0x021DD3F4
+ push {r4, r5, r6, lr}
+ add r6, r1, #0
+ mov r0, #0x16
+ ldr r4, [r6, #0xc]
+ lsl r0, r0, #4
+ ldr r5, [r4, r0]
+ add r0, r5, #0
+ bl MOD14_021DC450
+ add r1, r0, #0
+ ldr r0, _021DD424 ; =0x000065F4
+ add r0, r4, r0
+ bl MOD14_021E189C
+ ldr r0, _021DD424 ; =0x000065F4
+ add r5, #0x74
+ add r0, r4, r0
+ add r1, r5, #0
+ bl MOD14_021E19D0
+ add r0, r6, #0
+ bl MOD14_021DCBD8
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021DD424: .word 0x000065F4
+
+ thumb_func_start MOD14_021DD428
+MOD14_021DD428: ; 0x021DD428
+ push {r4, lr}
+ add r4, r1, #0
+ ldr r1, [r4, #0xc]
+ ldr r0, _021DD440 ; =0x000065F4
+ add r0, r1, r0
+ bl MOD14_021E1B44
+ add r0, r4, #0
+ bl MOD14_021DCBD8
+ pop {r4, pc}
+ nop
+_021DD440: .word 0x000065F4
+
+ thumb_func_start MOD14_021DD444
+MOD14_021DD444: ; 0x021DD444
+ push {r4, lr}
+ add r4, r1, #0
+ ldr r1, [r4, #0xc]
+ ldr r0, _021DD45C ; =0x000065F4
+ add r0, r1, r0
+ bl MOD14_021E1B78
+ add r0, r4, #0
+ bl MOD14_021DCBD8
+ pop {r4, pc}
+ nop
+_021DD45C: .word 0x000065F4
+
+ thumb_func_start MOD14_021DD460
+MOD14_021DD460: ; 0x021DD460
+ push {r4, r5, r6, lr}
+ add r6, r1, #0
+ mov r0, #0x16
+ ldr r4, [r6, #0xc]
+ lsl r0, r0, #4
+ ldr r5, [r4, r0]
+ ldr r0, _021DD488 ; =0x000005DC
+ bl FUN_020054C8
+ ldr r0, _021DD48C ; =0x000065F4
+ add r5, #0x74
+ add r0, r4, r0
+ add r1, r5, #0
+ bl MOD14_021E1B9C
+ add r0, r6, #0
+ bl MOD14_021DCBD8
+ pop {r4, r5, r6, pc}
+ nop
+_021DD488: .word 0x000005DC
+_021DD48C: .word 0x000065F4
+
+ thumb_func_start MOD14_021DD490
+MOD14_021DD490: ; 0x021DD490
+ push {r4, r5, r6, lr}
+ add r6, r1, #0
+ mov r0, #0x16
+ ldr r4, [r6, #0xc]
+ lsl r0, r0, #4
+ ldr r5, [r4, r0]
+ ldr r0, _021DD4B8 ; =0x000005DD
+ bl FUN_020054C8
+ ldr r0, _021DD4BC ; =0x000065F4
+ add r5, #0x74
+ add r0, r4, r0
+ add r1, r5, #0
+ bl MOD14_021E1BE4
+ add r0, r6, #0
+ bl MOD14_021DCBD8
+ pop {r4, r5, r6, pc}
+ nop
+_021DD4B8: .word 0x000005DD
+_021DD4BC: .word 0x000065F4
+
+ thumb_func_start MOD14_021DD4C0
+MOD14_021DD4C0: ; 0x021DD4C0
+ push {r4, lr}
+ add r4, r1, #0
+ ldrh r0, [r4, #6]
+ ldr r1, [r4, #0xc]
+ cmp r0, #0
+ beq _021DD4D2
+ cmp r0, #1
+ beq _021DD4E2
+ pop {r4, pc}
+_021DD4D2:
+ ldr r0, _021DD4F8 ; =0x0000662C
+ add r0, r1, r0
+ bl MOD14_021E1F98
+ ldrh r0, [r4, #6]
+ add r0, r0, #1
+ strh r0, [r4, #6]
+ pop {r4, pc}
+_021DD4E2:
+ ldr r0, _021DD4F8 ; =0x0000662C
+ add r0, r1, r0
+ bl MOD14_021E1FB8
+ cmp r0, #0
+ beq _021DD4F4
+ add r0, r4, #0
+ bl MOD14_021DCBD8
+_021DD4F4:
+ pop {r4, pc}
+ nop
+_021DD4F8: .word 0x0000662C
+
+ thumb_func_start MOD14_021DD4FC
+MOD14_021DD4FC: ; 0x021DD4FC
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldrh r0, [r5, #6]
+ ldr r4, [r5, #0xc]
+ cmp r0, #0
+ beq _021DD50E
+ cmp r0, #1
+ beq _021DD524
+ pop {r3, r4, r5, pc}
+_021DD50E:
+ ldr r0, _021DD52C ; =0x000005DD
+ bl FUN_020054C8
+ ldr r0, _021DD530 ; =0x0000662C
+ add r0, r4, r0
+ bl MOD14_021E1FC0
+ ldrh r0, [r5, #6]
+ add r0, r0, #1
+ strh r0, [r5, #6]
+ pop {r3, r4, r5, pc}
+_021DD524:
+ add r0, r5, #0
+ bl MOD14_021DCBD8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DD52C: .word 0x000005DD
+_021DD530: .word 0x0000662C
+
+ thumb_func_start MOD14_021DD534
+MOD14_021DD534: ; 0x021DD534
+ push {r4, lr}
+ add r4, r1, #0
+ ldrh r0, [r4, #6]
+ ldr r1, [r4, #0xc]
+ cmp r0, #0
+ beq _021DD546
+ cmp r0, #1
+ beq _021DD556
+ pop {r4, pc}
+_021DD546:
+ ldr r0, _021DD56C ; =0x0000662C
+ add r0, r1, r0
+ bl MOD14_021E1FE4
+ ldrh r0, [r4, #6]
+ add r0, r0, #1
+ strh r0, [r4, #6]
+ pop {r4, pc}
+_021DD556:
+ ldr r0, _021DD56C ; =0x0000662C
+ add r0, r1, r0
+ bl MOD14_021E1FF0
+ cmp r0, #0
+ beq _021DD568
+ add r0, r4, #0
+ bl MOD14_021DCBD8
+_021DD568:
+ pop {r4, pc}
+ nop
+_021DD56C: .word 0x0000662C
+
+ thumb_func_start MOD14_021DD570
+MOD14_021DD570: ; 0x021DD570
+ push {r4, lr}
+ add r4, r1, #0
+ ldrh r0, [r4, #6]
+ ldr r1, [r4, #0xc]
+ cmp r0, #0
+ beq _021DD582
+ cmp r0, #1
+ beq _021DD594
+ pop {r4, pc}
+_021DD582:
+ mov r0, #0x43
+ lsl r0, r0, #4
+ add r0, r1, r0
+ bl MOD14_021DE8C8
+ ldrh r0, [r4, #6]
+ add r0, r0, #1
+ strh r0, [r4, #6]
+ pop {r4, pc}
+_021DD594:
+ mov r0, #0x43
+ lsl r0, r0, #4
+ add r0, r1, r0
+ bl MOD14_021DE8E8
+ cmp r0, #0
+ beq _021DD5A8
+ add r0, r4, #0
+ bl MOD14_021DCBD8
+_021DD5A8:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DD5AC
+MOD14_021DD5AC: ; 0x021DD5AC
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ mov r0, #0x16
+ ldr r5, [r4, #0xc]
+ lsl r0, r0, #4
+ ldr r6, [r5, r0]
+ ldrh r0, [r4, #6]
+ cmp r0, #3
+ bhi _021DD65E
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021DD5CA: ; jump table
+ .short _021DD5D2 - _021DD5CA - 2 ; case 0
+ .short _021DD5E8 - _021DD5CA - 2 ; case 1
+ .short _021DD626 - _021DD5CA - 2 ; case 2
+ .short _021DD64C - _021DD5CA - 2 ; case 3
+_021DD5D2:
+ ldr r0, _021DD660 ; =0x000005DD
+ bl FUN_020054C8
+ ldr r0, _021DD664 ; =0x00005DC0
+ add r0, r5, r0
+ bl MOD14_021DFBB8
+ ldrh r0, [r4, #6]
+ add r0, r0, #1
+ strh r0, [r4, #6]
+ pop {r4, r5, r6, pc}
+_021DD5E8:
+ ldr r0, _021DD664 ; =0x00005DC0
+ add r0, r5, r0
+ bl MOD14_021DFC2C
+ cmp r0, #0
+ beq _021DD65E
+ add r0, r6, #0
+ bl MOD14_021DC3CC
+ cmp r0, #3
+ beq _021DD604
+ cmp r0, #4
+ beq _021DD610
+ b _021DD61A
+_021DD604:
+ ldr r0, _021DD668 ; =0x00006558
+ mov r1, #1
+ add r0, r5, r0
+ bl MOD14_021E0D60
+ b _021DD61A
+_021DD610:
+ ldr r0, _021DD668 ; =0x00006558
+ mov r1, #2
+ add r0, r5, r0
+ bl MOD14_021E0D60
+_021DD61A:
+ mov r0, #0
+ strh r0, [r4, #8]
+ ldrh r0, [r4, #6]
+ add r0, r0, #1
+ strh r0, [r4, #6]
+ pop {r4, r5, r6, pc}
+_021DD626:
+ ldrh r0, [r4, #8]
+ add r0, r0, #1
+ strh r0, [r4, #8]
+ ldrh r0, [r4, #8]
+ cmp r0, #6
+ blo _021DD65E
+ ldr r0, _021DD664 ; =0x00005DC0
+ add r0, r5, r0
+ bl MOD14_021DFD24
+ ldr r0, _021DD668 ; =0x00006558
+ mov r1, #0
+ add r0, r5, r0
+ bl MOD14_021E0D60
+ ldrh r0, [r4, #6]
+ add r0, r0, #1
+ strh r0, [r4, #6]
+ pop {r4, r5, r6, pc}
+_021DD64C:
+ ldr r0, _021DD664 ; =0x00005DC0
+ add r0, r5, r0
+ bl MOD14_021DFD80
+ cmp r0, #0
+ beq _021DD65E
+ add r0, r4, #0
+ bl MOD14_021DCBD8
+_021DD65E:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021DD660: .word 0x000005DD
+_021DD664: .word 0x00005DC0
+_021DD668: .word 0x00006558
+
+ thumb_func_start MOD14_021DD66C
+MOD14_021DD66C: ; 0x021DD66C
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldrh r0, [r5, #6]
+ ldr r4, [r5, #0xc]
+ cmp r0, #0
+ beq _021DD67E
+ cmp r0, #1
+ beq _021DD69C
+ pop {r3, r4, r5, pc}
+_021DD67E:
+ ldr r0, _021DD6B0 ; =0x00000633
+ bl FUN_020054C8
+ ldr r0, _021DD6B4 ; =0x00005DC0
+ add r0, r4, r0
+ bl MOD14_021DFF1C
+ ldr r0, _021DD6B8 ; =0x0000B22C
+ add r0, r4, r0
+ bl MOD14_021E2B10
+ ldrh r0, [r5, #6]
+ add r0, r0, #1
+ strh r0, [r5, #6]
+ pop {r3, r4, r5, pc}
+_021DD69C:
+ ldr r0, _021DD6B8 ; =0x0000B22C
+ add r0, r4, r0
+ bl MOD14_021E2B40
+ cmp r0, #0
+ beq _021DD6AE
+ add r0, r5, #0
+ bl MOD14_021DCBD8
+_021DD6AE:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DD6B0: .word 0x00000633
+_021DD6B4: .word 0x00005DC0
+_021DD6B8: .word 0x0000B22C
+
+ thumb_func_start MOD14_021DD6BC
+MOD14_021DD6BC: ; 0x021DD6BC
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldrh r0, [r4, #6]
+ ldr r5, [r4, #0xc]
+ cmp r0, #3
+ bhi _021DD72C
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021DD6D4: ; jump table
+ .short _021DD6DC - _021DD6D4 - 2 ; case 0
+ .short _021DD6EA - _021DD6D4 - 2 ; case 1
+ .short _021DD6FC - _021DD6D4 - 2 ; case 2
+ .short _021DD712 - _021DD6D4 - 2 ; case 3
+_021DD6DC:
+ ldr r0, _021DD730 ; =0x0000B3A8
+ ldr r0, [r5, r0]
+ bl MOD14_021E4DF8
+ ldrh r0, [r4, #6]
+ add r0, r0, #1
+ strh r0, [r4, #6]
+_021DD6EA:
+ ldr r0, _021DD730 ; =0x0000B3A8
+ ldr r0, [r5, r0]
+ bl MOD14_021E4E24
+ cmp r0, #0
+ beq _021DD72C
+ ldrh r0, [r4, #6]
+ add r0, r0, #1
+ strh r0, [r4, #6]
+_021DD6FC:
+ ldr r0, _021DD734 ; =0x00000634
+ bl FUN_020054C8
+ ldr r0, _021DD738 ; =0x0000B22C
+ add r0, r5, r0
+ bl MOD14_021E2BB0
+ ldrh r0, [r4, #6]
+ add r0, r0, #1
+ strh r0, [r4, #6]
+ pop {r3, r4, r5, pc}
+_021DD712:
+ ldr r0, _021DD738 ; =0x0000B22C
+ add r0, r5, r0
+ bl MOD14_021E2BD0
+ cmp r0, #0
+ beq _021DD72C
+ ldr r0, _021DD73C ; =0x00005DC0
+ add r0, r5, r0
+ bl MOD14_021DFF54
+ add r0, r4, #0
+ bl MOD14_021DCBD8
+_021DD72C:
+ pop {r3, r4, r5, pc}
+ nop
+_021DD730: .word 0x0000B3A8
+_021DD734: .word 0x00000634
+_021DD738: .word 0x0000B22C
+_021DD73C: .word 0x00005DC0
+
+ thumb_func_start MOD14_021DD740
+MOD14_021DD740: ; 0x021DD740
+ push {r4, lr}
+ add r4, r1, #0
+ ldrh r0, [r4, #6]
+ ldr r1, [r4, #0xc]
+ cmp r0, #0
+ beq _021DD752
+ cmp r0, #1
+ beq _021DD762
+ pop {r4, pc}
+_021DD752:
+ ldr r0, _021DD778 ; =0x0000B22C
+ add r0, r1, r0
+ bl MOD14_021E2C7C
+ ldrh r0, [r4, #6]
+ add r0, r0, #1
+ strh r0, [r4, #6]
+ pop {r4, pc}
+_021DD762:
+ ldr r0, _021DD778 ; =0x0000B22C
+ add r0, r1, r0
+ bl MOD14_021E2DA4
+ cmp r0, #0
+ beq _021DD774
+ add r0, r4, #0
+ bl MOD14_021DCBD8
+_021DD774:
+ pop {r4, pc}
+ nop
+_021DD778: .word 0x0000B22C
+
+ thumb_func_start MOD14_021DD77C
+MOD14_021DD77C: ; 0x021DD77C
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldrh r1, [r5, #6]
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldr r4, [r5, #0xc]
+ cmp r1, #0
+ ldr r0, [r4, r0]
+ beq _021DD794
+ cmp r1, #1
+ beq _021DD7B4
+ pop {r3, r4, r5, pc}
+_021DD794:
+ bl MOD14_021DC3CC
+ cmp r0, #1
+ bne _021DD7AC
+ ldr r0, _021DD7C8 ; =0x0000B22C
+ add r0, r4, r0
+ bl MOD14_021E2DB4
+ ldrh r0, [r5, #6]
+ add r0, r0, #1
+ strh r0, [r5, #6]
+ pop {r3, r4, r5, pc}
+_021DD7AC:
+ add r0, r5, #0
+ bl MOD14_021DCBD8
+ pop {r3, r4, r5, pc}
+_021DD7B4:
+ ldr r0, _021DD7C8 ; =0x0000B22C
+ add r0, r4, r0
+ bl MOD14_021E2E50
+ cmp r0, #0
+ beq _021DD7C6
+ add r0, r5, #0
+ bl MOD14_021DCBD8
+_021DD7C6:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DD7C8: .word 0x0000B22C
+
+ thumb_func_start MOD14_021DD7CC
+MOD14_021DD7CC: ; 0x021DD7CC
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ mov r0, #0x43
+ ldr r4, [r5, #0xc]
+ lsl r0, r0, #4
+ add r0, r4, r0
+ bl MOD14_021DEEA8
+ ldr r0, _021DD7F4 ; =0x0000B22C
+ add r0, r4, r0
+ bl MOD14_021E2FE8
+ ldr r0, _021DD7F8 ; =0x00005DC0
+ add r0, r4, r0
+ bl MOD14_021DFFB4
+ add r0, r5, #0
+ bl MOD14_021DCBD8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DD7F4: .word 0x0000B22C
+_021DD7F8: .word 0x00005DC0
+
+ thumb_func_start MOD14_021DD7FC
+MOD14_021DD7FC: ; 0x021DD7FC
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ mov r0, #0x16
+ ldr r4, [r5, #0xc]
+ lsl r0, r0, #4
+ ldr r6, [r4, r0]
+ ldrh r0, [r5, #6]
+ cmp r0, #0
+ beq _021DD818
+ cmp r0, #1
+ beq _021DD828
+ cmp r0, #2
+ beq _021DD854
+ pop {r4, r5, r6, pc}
+_021DD818:
+ ldr r0, _021DD868 ; =0x0000B3A4
+ ldr r0, [r4, r0]
+ bl MOD14_021E37B8
+ ldrh r0, [r5, #6]
+ add r0, r0, #1
+ strh r0, [r5, #6]
+ pop {r4, r5, r6, pc}
+_021DD828:
+ ldr r0, _021DD868 ; =0x0000B3A4
+ ldr r0, [r4, r0]
+ bl MOD14_021E389C
+ cmp r0, #0
+ beq _021DD866
+ add r6, #0x9c
+ ldrb r0, [r6]
+ cmp r0, #0
+ bne _021DD844
+ add r0, r5, #0
+ bl MOD14_021DCBD8
+ pop {r4, r5, r6, pc}
+_021DD844:
+ ldr r0, _021DD868 ; =0x0000B3A4
+ ldr r0, [r4, r0]
+ bl MOD14_021E3B54
+ ldrh r0, [r5, #6]
+ add r0, r0, #1
+ strh r0, [r5, #6]
+ pop {r4, r5, r6, pc}
+_021DD854:
+ ldr r0, _021DD868 ; =0x0000B3A4
+ ldr r0, [r4, r0]
+ bl MOD14_021E3B80
+ cmp r0, #0
+ beq _021DD866
+ add r0, r5, #0
+ bl MOD14_021DCBD8
+_021DD866:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021DD868: .word 0x0000B3A4
+
+ thumb_func_start MOD14_021DD86C
+MOD14_021DD86C: ; 0x021DD86C
+ push {r4, lr}
+ add r4, r1, #0
+ ldrh r0, [r4, #6]
+ ldr r1, [r4, #0xc]
+ cmp r0, #0
+ beq _021DD87E
+ cmp r0, #1
+ beq _021DD88E
+ pop {r4, pc}
+_021DD87E:
+ ldr r0, _021DD8A4 ; =0x0000B3A4
+ ldr r0, [r1, r0]
+ bl MOD14_021E3BA8
+ ldrh r0, [r4, #6]
+ add r0, r0, #1
+ strh r0, [r4, #6]
+ pop {r4, pc}
+_021DD88E:
+ ldr r0, _021DD8A4 ; =0x0000B3A4
+ ldr r0, [r1, r0]
+ bl MOD14_021E3C60
+ cmp r0, #0
+ beq _021DD8A0
+ add r0, r4, #0
+ bl MOD14_021DCBD8
+_021DD8A0:
+ pop {r4, pc}
+ nop
+_021DD8A4: .word 0x0000B3A4
+
+ thumb_func_start MOD14_021DD8A8
+MOD14_021DD8A8: ; 0x021DD8A8
+ push {r4, lr}
+ add r4, r1, #0
+ ldr r1, [r4, #0xc]
+ ldr r0, _021DD8C0 ; =0x0000B3A4
+ ldr r0, [r1, r0]
+ bl MOD14_021E4734
+ add r0, r4, #0
+ bl MOD14_021DCBD8
+ pop {r4, pc}
+ nop
+_021DD8C0: .word 0x0000B3A4
+
+ thumb_func_start MOD14_021DD8C4
+MOD14_021DD8C4: ; 0x021DD8C4
+ push {r4, lr}
+ add r4, r1, #0
+ ldr r1, [r4, #0xc]
+ ldr r0, _021DD8DC ; =0x00005DC0
+ add r0, r1, r0
+ bl MOD14_021E0008
+ add r0, r4, #0
+ bl MOD14_021DCBD8
+ pop {r4, pc}
+ nop
+_021DD8DC: .word 0x00005DC0
+
+ thumb_func_start MOD14_021DD8E0
+MOD14_021DD8E0: ; 0x021DD8E0
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldr r4, [r5, #0xc]
+ ldr r0, _021DD900 ; =0x00005DC0
+ add r0, r4, r0
+ bl MOD14_021E002C
+ mov r0, #0x43
+ lsl r0, r0, #4
+ add r0, r4, r0
+ bl MOD14_021DEF94
+ add r0, r5, #0
+ bl MOD14_021DCBD8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DD900: .word 0x00005DC0
+
+ thumb_func_start MOD14_021DD904
+MOD14_021DD904: ; 0x021DD904
+ push {r4, lr}
+ add r4, r1, #0
+ mov r0, #0x43
+ ldr r1, [r4, #0xc]
+ lsl r0, r0, #4
+ add r0, r1, r0
+ bl MOD14_021DF03C
+ add r0, r4, #0
+ bl MOD14_021DCBD8
+ pop {r4, pc}
+
+ thumb_func_start MOD14_021DD91C
+MOD14_021DD91C: ; 0x021DD91C
+ push {r4, lr}
+ add r4, r1, #0
+ mov r0, #0x43
+ ldr r1, [r4, #0xc]
+ lsl r0, r0, #4
+ add r0, r1, r0
+ bl MOD14_021DEF94
+ add r0, r4, #0
+ bl MOD14_021DCBD8
+ pop {r4, pc}
+
+ thumb_func_start MOD14_021DD934
+MOD14_021DD934: ; 0x021DD934
+ push {r4, lr}
+ add r4, r1, #0
+ ldrh r0, [r4, #6]
+ ldr r1, [r4, #0xc]
+ cmp r0, #0
+ beq _021DD946
+ cmp r0, #1
+ beq _021DD956
+ pop {r4, pc}
+_021DD946:
+ ldr r0, _021DD96C ; =0x00005DC0
+ add r0, r1, r0
+ bl MOD14_021DF758
+ ldrh r0, [r4, #6]
+ add r0, r0, #1
+ strh r0, [r4, #6]
+ pop {r4, pc}
+_021DD956:
+ ldr r0, _021DD96C ; =0x00005DC0
+ add r0, r1, r0
+ bl MOD14_021DF7A0
+ cmp r0, #0
+ beq _021DD968
+ add r0, r4, #0
+ bl MOD14_021DCBD8
+_021DD968:
+ pop {r4, pc}
+ nop
+_021DD96C: .word 0x00005DC0
+
+ thumb_func_start MOD14_021DD970
+MOD14_021DD970: ; 0x021DD970
+ push {r4, lr}
+ add r4, r1, #0
+ ldr r1, [r4, #0xc]
+ ldr r0, _021DD988 ; =0x0000B3AC
+ ldr r0, [r1, r0]
+ mov r1, #0
+ bl MOD14_021E5214
+ add r0, r4, #0
+ bl MOD14_021DCBD8
+ pop {r4, pc}
+ .align 2, 0
+_021DD988: .word 0x0000B3AC
+
+ thumb_func_start MOD14_021DD98C
+MOD14_021DD98C: ; 0x021DD98C
+ push {r4, lr}
+ add r4, r1, #0
+ ldr r1, [r4, #0xc]
+ ldr r0, _021DD9A4 ; =0x0000B3AC
+ ldr r0, [r1, r0]
+ mov r1, #1
+ bl MOD14_021E5214
+ add r0, r4, #0
+ bl MOD14_021DCBD8
+ pop {r4, pc}
+ .align 2, 0
+_021DD9A4: .word 0x0000B3AC
+
+ thumb_func_start MOD14_021DD9A8
+MOD14_021DD9A8: ; 0x021DD9A8
+ push {r4, lr}
+ add r4, r1, #0
+ ldrh r0, [r4, #6]
+ ldr r1, [r4, #0xc]
+ cmp r0, #0
+ beq _021DD9BA
+ cmp r0, #1
+ beq _021DD9CA
+ pop {r4, pc}
+_021DD9BA:
+ ldr r0, _021DD9E0 ; =0x0000B3AC
+ ldr r0, [r1, r0]
+ bl MOD14_021E52C0
+ ldrh r0, [r4, #6]
+ add r0, r0, #1
+ strh r0, [r4, #6]
+ pop {r4, pc}
+_021DD9CA:
+ ldr r0, _021DD9E0 ; =0x0000B3AC
+ ldr r0, [r1, r0]
+ bl MOD14_021E52E0
+ cmp r0, #0
+ beq _021DD9DC
+ add r0, r4, #0
+ bl MOD14_021DCBD8
+_021DD9DC:
+ pop {r4, pc}
+ nop
+_021DD9E0: .word 0x0000B3AC
+
+ thumb_func_start MOD14_021DD9E4
+MOD14_021DD9E4: ; 0x021DD9E4
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ ldrh r0, [r4, #6]
+ cmp r0, #0
+ beq _021DD9F8
+ cmp r0, #1
+ beq _021DDA20
+ add sp, #0xc
+ pop {r3, r4, pc}
+_021DD9F8:
+ ldr r0, _021DDA34 ; =0x0000060E
+ bl FUN_020054C8
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0xa
+ str r0, [sp, #8]
+ mov r0, #0
+ add r1, r0, #0
+ add r2, r0, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ ldrh r0, [r4, #6]
+ add sp, #0xc
+ add r0, r0, #1
+ strh r0, [r4, #6]
+ pop {r3, r4, pc}
+_021DDA20:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021DDA2E
+ add r0, r4, #0
+ bl MOD14_021DCBD8
+_021DDA2E:
+ add sp, #0xc
+ pop {r3, r4, pc}
+ nop
+_021DDA34: .word 0x0000060E
+
+ thumb_func_start MOD14_021DDA38
+MOD14_021DDA38: ; 0x021DDA38
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, _021DDB20 ; =0x021E63A4
+ add r4, r1, #0
+ bl FUN_0201E66C
+ ldr r2, _021DDB24 ; =0x04000304
+ ldrh r1, [r2]
+ lsr r0, r2, #0xb
+ orr r0, r1
+ strh r0, [r2]
+ mov r0, #1
+ mov r1, #0
+ add r2, r0, #0
+ bl GX_SetGraphicsMode
+ ldr r0, _021DDB28 ; =0x021E627C
+ bl FUN_02016BBC
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r2, _021DDB2C ; =0x021E6350
+ mov r1, #1
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r2, _021DDB30 ; =0x021E6334
+ mov r1, #2
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r2, _021DDB34 ; =0x021E62FC
+ mov r1, #3
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ bl MOD14_021DC3C4
+ cmp r0, #4
+ beq _021DDADA
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r2, _021DDB38 ; =0x021E6318
+ mov r1, #4
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r2, _021DDB3C ; =0x021E62E0
+ mov r1, #5
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r2, _021DDB40 ; =0x021E62C4
+ mov r1, #6
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r2, _021DDB44 ; =0x021E62A8
+ mov r1, #7
+ mov r3, #0
+ bl FUN_02016C18
+ b _021DDB1A
+_021DDADA:
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r2, _021DDB38 ; =0x021E6318
+ mov r1, #4
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r2, _021DDB48 ; =0x021E6388
+ mov r1, #5
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r2, _021DDB4C ; =0x021E628C
+ mov r1, #6
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r2, _021DDB44 ; =0x021E62A8
+ mov r1, #7
+ mov r3, #0
+ bl FUN_02016C18
+_021DDB1A:
+ bl MOD14_021DDC78
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DDB20: .word 0x021E63A4
+_021DDB24: .word 0x04000304
+_021DDB28: .word 0x021E627C
+_021DDB2C: .word 0x021E6350
+_021DDB30: .word 0x021E6334
+_021DDB34: .word 0x021E62FC
+_021DDB38: .word 0x021E6318
+_021DDB3C: .word 0x021E62E0
+_021DDB40: .word 0x021E62C4
+_021DDB44: .word 0x021E62A8
+_021DDB48: .word 0x021E6388
+_021DDB4C: .word 0x021E628C
+
+ thumb_func_start MOD14_021DDB50
+MOD14_021DDB50: ; 0x021DDB50
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r3, #1
+ mov r2, #0x57
+ add r4, r1, #0
+ str r3, [sp, #8]
+ mov r0, #0xa
+ str r0, [sp, #0xc]
+ lsl r2, r2, #2
+ ldr r2, [r5, r2]
+ mov r0, #0x12
+ mov r1, #4
+ bl FUN_0200687C
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x11
+ str r0, [sp, #0xc]
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ add r3, r2, #0
+ bl FUN_02018540
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_02017CD0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r1, #1
+ mov r2, #0x57
+ str r1, [sp, #8]
+ mov r0, #0xa
+ str r0, [sp, #0xc]
+ lsl r2, r2, #2
+ ldr r2, [r5, r2]
+ mov r0, #0x12
+ mov r3, #2
+ bl FUN_0200687C
+ mov r0, #0xe0
+ str r0, [sp]
+ mov r0, #0xa
+ mov r2, #0
+ str r0, [sp, #4]
+ mov r0, #0x12
+ mov r1, #5
+ add r3, r2, #0
+ bl FUN_02006930
+ add r0, r4, #0
+ bl MOD14_021DC3C4
+ cmp r0, #4
+ beq _021DDBF2
+ mov r1, #0
+ str r1, [sp]
+ str r1, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0xa
+ mov r2, #0x57
+ str r0, [sp, #0xc]
+ lsl r2, r2, #2
+ ldr r2, [r5, r2]
+ mov r0, #0x12
+ mov r3, #2
+ bl FUN_020068C8
+_021DDBF2:
+ mov r0, #0x43
+ lsl r0, r0, #4
+ add r0, r5, r0
+ bl MOD14_021DE014
+ mov r0, #0x43
+ lsl r0, r0, #4
+ add r1, r4, #0
+ add r0, r5, r0
+ add r1, #0x40
+ mov r2, #0
+ mov r3, #1
+ bl MOD14_021DE0C4
+ ldr r0, _021DDC60 ; =0x000065A0
+ add r0, r5, r0
+ bl MOD14_021E0F40
+ ldr r0, _021DDC64 ; =0x000065F4
+ add r0, r5, r0
+ bl MOD14_021E1818
+ ldr r0, _021DDC68 ; =0x0000662C
+ add r0, r5, r0
+ bl MOD14_021E1EEC
+ ldr r0, _021DDC6C ; =0x0000B3A4
+ ldr r0, [r5, r0]
+ bl MOD14_021E355C
+ ldr r0, _021DDC70 ; =0x0000B3AC
+ ldr r0, [r5, r0]
+ bl MOD14_021E5128
+ add r0, r4, #0
+ bl MOD14_021DC3CC
+ cmp r0, #1
+ bne _021DDC48
+ ldr r0, _021DDC74 ; =0x0000B22C
+ add r0, r5, r0
+ bl MOD14_021E2AE8
+_021DDC48:
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E74C
+ bl GX_DispOn
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DDC60: .word 0x000065A0
+_021DDC64: .word 0x000065F4
+_021DDC68: .word 0x0000662C
+_021DDC6C: .word 0x0000B3A4
+_021DDC70: .word 0x0000B3AC
+_021DDC74: .word 0x0000B22C
+
+ thumb_func_start MOD14_021DDC78
+MOD14_021DDC78: ; 0x021DDC78
+ push {r3, lr}
+ bl FUN_020BB7F4
+ bl G3X_InitMtxStack
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201E6E4
+ ldr r0, _021DDCDC ; =0x04000008
+ mov r1, #3
+ ldrh r2, [r0]
+ bic r2, r1
+ mov r1, #1
+ orr r1, r2
+ strh r1, [r0]
+ add r0, #0x58
+ ldrh r1, [r0]
+ ldr r2, _021DDCE0 ; =0xFFFFCFFD
+ and r1, r2
+ strh r1, [r0]
+ ldrh r3, [r0]
+ add r1, r2, #2
+ and r3, r1
+ mov r1, #0x10
+ orr r1, r3
+ strh r1, [r0]
+ ldrh r3, [r0]
+ ldr r1, _021DDCE4 ; =0x0000CFFB
+ and r1, r3
+ strh r1, [r0]
+ add r1, r2, #2
+ ldrh r3, [r0]
+ lsr r2, r2, #0x11
+ and r3, r1
+ mov r1, #8
+ orr r1, r3
+ strh r1, [r0]
+ mov r0, #0
+ add r1, r0, #0
+ mov r3, #0x3f
+ str r0, [sp]
+ bl G3X_SetClearColor
+ ldr r1, _021DDCE8 ; =0x04000540
+ mov r0, #2
+ str r0, [r1]
+ ldr r0, _021DDCEC ; =0xBFFF0000
+ str r0, [r1, #0x40]
+ pop {r3, pc}
+ .align 2, 0
+_021DDCDC: .word 0x04000008
+_021DDCE0: .word 0xFFFFCFFD
+_021DDCE4: .word 0x0000CFFB
+_021DDCE8: .word 0x04000540
+_021DDCEC: .word 0xBFFF0000
+
+ thumb_func_start MOD14_021DDCF0
+MOD14_021DDCF0: ; 0x021DDCF0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021DDD10 ; =0x00005DC0
+ add r0, r4, r0
+ bl MOD14_021DF144
+ ldr r0, _021DDD14 ; =0x00006558
+ add r0, r4, r0
+ bl MOD14_021E0CCC
+ ldr r0, _021DDD18 ; =0x0000B3A8
+ ldr r0, [r4, r0]
+ bl MOD14_021E49C4
+ pop {r4, pc}
+ nop
+_021DDD10: .word 0x00005DC0
+_021DDD14: .word 0x00006558
+_021DDD18: .word 0x0000B3A8
+
+ thumb_func_start MOD14_021DDD1C
+MOD14_021DDD1C: ; 0x021DDD1C
+ cmp r1, r0
+ bls _021DDD2A
+ mov r2, #0x12
+ sub r3, r1, r0
+ sub r1, r2, r1
+ add r0, r0, r1
+ b _021DDD32
+_021DDD2A:
+ mov r2, #0x12
+ sub r2, r2, r0
+ add r3, r1, r2
+ sub r0, r0, r1
+_021DDD32:
+ cmp r3, r0
+ blt _021DDD3C
+ mov r0, #0
+ mvn r0, r0
+ bx lr
+_021DDD3C:
+ mov r0, #1
+ bx lr
+
+ thumb_func_start MOD14_021DDD40
+MOD14_021DDD40: ; 0x021DDD40
+ ldr r3, _021DDD44 ; =0x0200CA61
+ bx r3
+ .align 2, 0
+_021DDD44: .word 0x0200CA61
+
+ thumb_func_start MOD14_021DDD48
+MOD14_021DDD48: ; 0x021DDD48
+ mov r1, #0x51
+ lsl r1, r1, #2
+ add r0, r0, r1
+ bx lr
+
+ thumb_func_start MOD14_021DDD50
+MOD14_021DDD50: ; 0x021DDD50
+ mov r1, #0x59
+ lsl r1, r1, #2
+ add r0, r0, r1
+ bx lr
+
+ thumb_func_start MOD14_021DDD58
+MOD14_021DDD58: ; 0x021DDD58
+ mov r1, #0x43
+ lsl r1, r1, #4
+ add r0, r0, r1
+ bx lr
+
+ thumb_func_start MOD14_021DDD60
+MOD14_021DDD60: ; 0x021DDD60
+ ldr r1, _021DDD68 ; =0x0000B22C
+ add r0, r0, r1
+ bx lr
+ nop
+_021DDD68: .word 0x0000B22C
+
+ thumb_func_start MOD14_021DDD6C
+MOD14_021DDD6C: ; 0x021DDD6C
+ ldr r1, _021DDD74 ; =0x00005DC0
+ add r0, r0, r1
+ bx lr
+ nop
+_021DDD74: .word 0x00005DC0
+
+ thumb_func_start MOD14_021DDD78
+MOD14_021DDD78: ; 0x021DDD78
+ ldr r1, _021DDD80 ; =0x0000B3A8
+ ldr r0, [r0, r1]
+ bx lr
+ nop
+_021DDD80: .word 0x0000B3A8
+
+ thumb_func_start MOD14_021DDD84
+MOD14_021DDD84: ; 0x021DDD84
+ ldr r1, _021DDD8C ; =0x0000662C
+ add r0, r0, r1
+ bx lr
+ nop
+_021DDD8C: .word 0x0000662C
+
+ thumb_func_start MOD14_021DDD90
+MOD14_021DDD90: ; 0x021DDD90
+ mov r1, #0x56
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ bx lr
+
+ thumb_func_start MOD14_021DDD98
+MOD14_021DDD98: ; 0x021DDD98
+ push {r3, lr}
+ mov r1, #0x16
+ lsl r1, r1, #4
+ ldr r0, [r0, r1]
+ bl MOD14_021DC3C4
+ cmp r0, #4
+ beq _021DDDAC
+ mov r0, #0
+ pop {r3, pc}
+_021DDDAC:
+ mov r0, #0x2b
+ mvn r0, r0
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DDDB4
+MOD14_021DDDB4: ; 0x021DDDB4
+ str r1, [r0]
+ str r2, [r0, #8]
+ ldr r1, [sp]
+ str r3, [r0, #0xc]
+ str r1, [r0, #0x10]
+ add r1, r0, #0
+ ldr r2, [sp, #4]
+ add r1, #0x20
+ strb r2, [r1]
+ mov r1, #0
+ str r1, [r0, #4]
+ str r1, [r0, #0x14]
+ str r1, [r0, #0x18]
+ str r1, [r0, #0x1c]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021DDDD4
+MOD14_021DDDD4: ; 0x021DDDD4
+ push {r3, r4, r5, lr}
+ sub sp, #0x20
+ str r0, [sp]
+ lsl r0, r2, #0xc
+ str r0, [sp, #8]
+ lsl r0, r3, #0xc
+ str r0, [sp, #0xc]
+ mov r0, #0
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x30]
+ str r1, [sp, #4]
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x34]
+ str r0, [sp, #0x18]
+ mov r0, #0xa
+ str r0, [sp, #0x1c]
+ bl OS_DisableInterrupts
+ add r4, r0, #0
+ add r0, sp, #0
+ bl FUN_0201FF84
+ add r5, r0, #0
+ add r0, r4, #0
+ bl OS_RestoreInterrupts
+ cmp r5, #0
+ beq _021DDE1E
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_020200BC
+ mov r1, #1
+ add r0, r5, #0
+ lsl r1, r1, #0xc
+ bl FUN_020200D8
+_021DDE1E:
+ add r0, r5, #0
+ add sp, #0x20
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD14_021DDE24
+MOD14_021DDE24: ; 0x021DDE24
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl OS_DisableInterrupts
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl FUN_02020310
+ add r0, r6, #0
+ bl OS_RestoreInterrupts
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD14_021DDE40
+MOD14_021DDE40: ; 0x021DDE40
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r6, r1, #0
+ lsl r1, r3, #0x1b
+ lsr r1, r1, #0x13
+ mov ip, r1
+ asr r1, r3, #5
+ lsl r1, r1, #0x1b
+ lsr r1, r1, #0x13
+ mov lr, r1
+ asr r1, r3, #0xa
+ lsl r1, r1, #0x1b
+ lsr r1, r1, #0x13
+ str r1, [sp, #4]
+ add r7, r0, #0
+ str r2, [sp]
+ add r1, r2, #0
+ sub r2, r2, #1
+ ldr r0, [sp, #0x20]
+ str r2, [sp]
+ cmp r1, #0
+ beq _021DDED6
+_021DDE6C:
+ ldrh r1, [r7]
+ add r7, r7, #2
+ lsl r2, r1, #0x1b
+ lsr r4, r2, #0x13
+ asr r2, r1, #5
+ asr r1, r1, #0xa
+ lsl r2, r2, #0x1b
+ lsl r1, r1, #0x1b
+ lsr r3, r2, #0x13
+ lsr r2, r1, #0x13
+ mov r1, ip
+ sub r5, r1, r4
+ asr r1, r5, #3
+ lsr r1, r1, #0x1c
+ add r1, r5, r1
+ asr r1, r1, #4
+ mul r1, r0
+ add r5, r4, r1
+ mov r1, lr
+ sub r1, r1, r3
+ asr r4, r1, #3
+ lsr r4, r4, #0x1c
+ add r4, r1, r4
+ asr r1, r4, #4
+ mul r1, r0
+ add r3, r3, r1
+ ldr r1, [sp, #4]
+ sub r1, r1, r2
+ asr r4, r1, #3
+ lsr r4, r4, #0x1c
+ add r4, r1, r4
+ asr r1, r4, #4
+ mul r1, r0
+ add r4, r2, r1
+ asr r2, r5, #8
+ mov r1, #0x1f
+ and r1, r2
+ asr r2, r3, #8
+ asr r3, r4, #8
+ lsl r3, r3, #0x1b
+ lsl r2, r2, #0x1b
+ lsr r3, r3, #0x11
+ lsr r2, r2, #0x16
+ orr r2, r3
+ orr r1, r2
+ strh r1, [r6]
+ ldr r1, [sp]
+ add r6, r6, #2
+ add r2, r1, #0
+ sub r2, r2, #1
+ str r2, [sp]
+ cmp r1, #0
+ bne _021DDE6C
+_021DDED6:
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DDEDC
+MOD14_021DDEDC: ; 0x021DDEDC
+ ldr r1, _021DDEE4 ; =0x0000B3B0
+ ldr r0, [r0, r1]
+ bx lr
+ nop
+_021DDEE4: .word 0x0000B3B0
+
+ thumb_func_start MOD14_021DDEE8
+MOD14_021DDEE8: ; 0x021DDEE8
+ ldr r0, _021DDEF0 ; =0x021E6A0C
+ mov r1, #0
+ str r1, [r0]
+ bx lr
+ .align 2, 0
+_021DDEF0: .word 0x021E6A0C
+
+ thumb_func_start MOD14_021DDEF4
+MOD14_021DDEF4: ; 0x021DDEF4
+ push {r4, r5, r6, lr}
+ ldr r6, _021DDF28 ; =0x021E6A0C
+ ldr r0, [r6]
+ cmp r0, #0
+ beq _021DDF26
+ mov r4, #0
+ cmp r0, #0
+ bls _021DDF20
+ ldr r5, _021DDF2C ; =0x021E6A10
+_021DDF06:
+ ldr r0, [r5, #8]
+ bl FUN_02016A18
+ ldr r1, [r5]
+ cmp r1, #0
+ beq _021DDF16
+ ldr r0, [r5, #4]
+ blx r1
+_021DDF16:
+ ldr r0, [r6]
+ add r4, r4, #1
+ add r5, #0xc
+ cmp r4, r0
+ blo _021DDF06
+_021DDF20:
+ ldr r0, _021DDF28 ; =0x021E6A0C
+ mov r1, #0
+ str r1, [r0]
+_021DDF26:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021DDF28: .word 0x021E6A0C
+_021DDF2C: .word 0x021E6A10
+
+ thumb_func_start MOD14_021DDF30
+MOD14_021DDF30: ; 0x021DDF30
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r0, _021DDF60 ; =0x021E6A0C
+ add r4, r1, #0
+ ldr r0, [r0]
+ add r6, r2, #0
+ cmp r0, #0x20
+ blo _021DDF44
+ bl ErrorHandling
+_021DDF44:
+ ldr r2, _021DDF60 ; =0x021E6A0C
+ mov r1, #0xc
+ ldr r0, [r2]
+ ldr r3, _021DDF64 ; =0x021E6A18
+ mul r1, r0
+ str r5, [r3, r1]
+ ldr r3, _021DDF68 ; =0x021E6A10
+ add r0, r0, #1
+ str r4, [r3, r1]
+ ldr r3, _021DDF6C ; =0x021E6A14
+ str r0, [r2]
+ str r6, [r3, r1]
+ pop {r4, r5, r6, pc}
+ nop
+_021DDF60: .word 0x021E6A0C
+_021DDF64: .word 0x021E6A18
+_021DDF68: .word 0x021E6A10
+_021DDF6C: .word 0x021E6A14
+
+ thumb_func_start MOD14_021DDF70
+MOD14_021DDF70: ; 0x021DDF70
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r2, #0
+ add r5, r0, #0
+ add r0, r6, #0
+ add r0, #0x40
+ ldrb r0, [r0]
+ add r4, r1, #0
+ add r7, r3, #0
+ strb r0, [r5]
+ mov r0, #0xb
+ strb r0, [r5, #1]
+ mov r0, #0
+ strb r0, [r5, #2]
+ add r0, r4, #0
+ bl MOD14_021DDD98
+ ldr r1, _021DDFE0 ; =0x0000585C
+ str r0, [r5, r1]
+ ldr r2, [r5, r1]
+ add r0, r1, #0
+ add r2, #0x48
+ sub r0, #8
+ str r2, [r5, r0]
+ mov r0, #0x11
+ ldr r2, [r5, r1]
+ lsl r0, r0, #4
+ add r2, r2, r0
+ sub r0, r1, #4
+ str r2, [r5, r0]
+ add r0, r4, #0
+ bl MOD14_021DDD50
+ ldr r1, _021DDFE4 ; =0x00005980
+ mov r2, #0x1e
+ str r0, [r5, r1]
+ ldr r0, [r5, r1]
+ add r1, r5, #0
+ add r1, #0xa8
+ bl MOD14_021E08E4
+ ldr r0, _021DDFE4 ; =0x00005980
+ mov r1, #0x1b
+ lsl r1, r1, #6
+ ldr r0, [r5, r0]
+ add r1, r5, r1
+ mov r2, #0x1e
+ bl MOD14_021E08E4
+ ldr r1, _021DDFE8 ; =0x00005984
+ str r7, [r5, r1]
+ add r0, r1, #4
+ str r6, [r5, r0]
+ add r1, #8
+ str r4, [r5, r1]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DDFE0: .word 0x0000585C
+_021DDFE4: .word 0x00005980
+_021DDFE8: .word 0x00005984
+
+ thumb_func_start MOD14_021DDFEC
+MOD14_021DDFEC: ; 0x021DDFEC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021DE010 ; =0x00005980
+ add r1, r4, #0
+ ldr r0, [r4, r0]
+ add r1, #0xa8
+ mov r2, #0x1e
+ bl MOD14_021E0908
+ ldr r0, _021DE010 ; =0x00005980
+ mov r1, #0x1b
+ lsl r1, r1, #6
+ ldr r0, [r4, r0]
+ add r1, r4, r1
+ mov r2, #0x1e
+ bl MOD14_021E0908
+ pop {r4, pc}
+ .align 2, 0
+_021DE010: .word 0x00005980
+
+ thumb_func_start MOD14_021DE014
+MOD14_021DE014: ; 0x021DE014
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ ldr r0, _021DE060 ; =0x00005984
+ mov r1, #3
+ ldr r0, [r4, r0]
+ bl FUN_02017B48
+ ldr r1, _021DE064 ; =0x0000585C
+ str r0, [r4, #0xc]
+ ldr r1, [r4, r1]
+ mov r2, #0
+ sub r1, r0, r1
+ add r3, r1, #0
+ ldr r0, _021DE068 ; =0x000001FF
+ mov r1, #3
+ and r3, r0
+ ldr r0, _021DE060 ; =0x00005984
+ str r3, [r4, #0xc]
+ ldr r0, [r4, r0]
+ bl FUN_020179E0
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0x40
+ str r0, [sp, #4]
+ mov r0, #0x20
+ str r0, [sp, #8]
+ mov r0, #9
+ str r0, [sp, #0xc]
+ ldr r0, _021DE060 ; =0x00005984
+ mov r1, #3
+ ldr r0, [r4, r0]
+ mov r2, #0x18
+ bl FUN_02018540
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_021DE060: .word 0x00005984
+_021DE064: .word 0x0000585C
+_021DE068: .word 0x000001FF
+
+ thumb_func_start MOD14_021DE06C
+MOD14_021DE06C: ; 0x021DE06C
+ push {r4, r5, r6, r7}
+ ldr r5, [sp, #0x10]
+ cmp r1, #0
+ beq _021DE0A2
+ ldrb r6, [r0, #2]
+ mov r4, #1
+ add r7, r6, #0
+ mov r6, #0x69
+ eor r7, r4
+ lsl r6, r6, #2
+ mul r6, r7
+ str r6, [r2]
+ mov r2, #0x17
+ mul r2, r1
+ ldrb r6, [r0, #1]
+ mov r1, #0x3f
+ add r2, r6, r2
+ and r1, r2
+ str r1, [r3]
+ ldrb r0, [r0, #2]
+ eor r0, r4
+ lsl r1, r0, #1
+ ldr r0, _021DE0C0 ; =0x021E656C
+ ldrh r0, [r0, r1]
+ str r0, [r5]
+ pop {r4, r5, r6, r7}
+ bx lr
+_021DE0A2:
+ ldrb r4, [r0, #2]
+ mov r1, #0x69
+ lsl r1, r1, #2
+ mul r1, r4
+ str r1, [r2]
+ ldrb r1, [r0, #1]
+ str r1, [r3]
+ ldrb r0, [r0, #2]
+ lsl r1, r0, #1
+ ldr r0, _021DE0C0 ; =0x021E656C
+ ldrh r0, [r0, r1]
+ str r0, [r5]
+ pop {r4, r5, r6, r7}
+ bx lr
+ nop
+_021DE0C0: .word 0x021E656C
+
+ thumb_func_start MOD14_021DE0C4
+MOD14_021DE0C4: ; 0x021DE0C4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r4, r1, #0
+ add r6, r2, #0
+ add r1, sp, #8
+ add r7, r3, #0
+ str r1, [sp]
+ add r1, r6, #0
+ add r2, sp, #0x10
+ add r3, sp, #0xc
+ add r5, r0, #0
+ bl MOD14_021DE06C
+ ldr r2, [sp, #8]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r3, r7, #0
+ bl MOD14_021DE138
+ ldr r2, [sp, #0x10]
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD14_021DE1D0
+ ldr r0, [sp, #8]
+ add r1, r4, #0
+ str r0, [sp]
+ ldr r2, [sp, #0xc]
+ ldr r3, [sp, #0x10]
+ add r0, r5, #0
+ bl MOD14_021DE278
+ cmp r7, #0
+ beq _021DE12C
+ cmp r6, #0
+ bne _021DE12C
+ ldrb r3, [r5, #2]
+ mov r0, #0xb8
+ mul r0, r6
+ str r0, [sp]
+ ldr r0, _021DE130 ; =0x00000618
+ add r1, r5, #0
+ add r1, #0xa8
+ mul r0, r3
+ add r0, r1, r0
+ str r0, [sp, #4]
+ ldr r1, _021DE134 ; =0x00005980
+ ldrb r2, [r4]
+ ldr r1, [r5, r1]
+ add r0, r5, #0
+ bl MOD14_021DEB34
+_021DE12C:
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DE130: .word 0x00000618
+_021DE134: .word 0x00005980
+
+ thumb_func_start MOD14_021DE138
+MOD14_021DE138: ; 0x021DE138
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r4, r2, #0
+ ldrb r2, [r1, #1]
+ add r7, r0, #0
+ add r5, r3, #0
+ lsl r1, r2, #1
+ add r2, r2, r1
+ ldr r1, _021DE1C4 ; =0x021E65AE
+ mov r0, #0x12
+ ldrb r1, [r1, r2]
+ add r2, sp, #8
+ mov r3, #0xa
+ bl FUN_02006C08
+ str r0, [sp, #4]
+ cmp r0, #0
+ beq _021DE1C0
+ cmp r5, #0
+ beq _021DE176
+ ldr r0, [sp, #8]
+ mov r1, #0x20
+ ldr r0, [r0, #0xc]
+ bl DC_FlushRange
+ ldr r0, [sp, #8]
+ lsl r1, r4, #5
+ ldr r0, [r0, #0xc]
+ mov r2, #0x20
+ bl GX_LoadBGPltt
+_021DE176:
+ ldr r0, _021DE1C8 ; =0x00005860
+ mov r6, #0
+ add r4, r6, #0
+ add r5, r7, r0
+_021DE17E:
+ str r4, [sp]
+ ldr r0, [sp, #8]
+ ldr r3, _021DE1CC ; =0x00007FFF
+ ldr r0, [r0, #0xc]
+ add r1, r5, #0
+ mov r2, #0x10
+ bl MOD14_021DDE40
+ add r6, r6, #1
+ add r4, r4, #2
+ add r5, #0x20
+ cmp r6, #8
+ blt _021DE17E
+ mov r2, #0x10
+ str r2, [sp]
+ ldr r1, _021DE1C8 ; =0x00005860
+ ldr r0, [sp, #8]
+ add r3, r7, r1
+ lsl r1, r6, #5
+ add r1, r3, r1
+ ldr r0, [r0, #0xc]
+ ldr r3, _021DE1CC ; =0x00007FFF
+ bl MOD14_021DDE40
+ ldr r0, _021DE1C8 ; =0x00005860
+ mov r1, #0x12
+ add r0, r7, r0
+ lsl r1, r1, #4
+ bl DC_FlushRange
+ ldr r0, [sp, #4]
+ bl FUN_02016A18
+_021DE1C0:
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DE1C4: .word 0x021E65AE
+_021DE1C8: .word 0x00005860
+_021DE1CC: .word 0x00007FFF
+
+ thumb_func_start MOD14_021DE1D0
+MOD14_021DE1D0: ; 0x021DE1D0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r7, r2, #0
+ mov r2, #1
+ add r5, r1, #0
+ str r2, [sp]
+ ldrb r3, [r5, #1]
+ add r6, r0, #0
+ mov r0, #0x12
+ lsl r1, r3, #1
+ add r3, r3, r1
+ ldr r1, _021DE26C ; =0x021E65AD
+ ldrb r1, [r1, r3]
+ mov r3, #0xa
+ bl FUN_02006C98
+ str r0, [sp, #0x10]
+ cmp r0, #0
+ beq _021DE268
+ add r1, sp, #0x14
+ bl FUN_020B0030
+ cmp r0, #0
+ beq _021DE262
+ mov r0, #0xa
+ mov r1, #1
+ bl FUN_02018FF4
+ add r4, r0, #0
+ beq _021DE250
+ ldr r0, _021DE270 ; =0x00005984
+ ldr r0, [r6, r0]
+ str r0, [r4]
+ mov r0, #0x15
+ strb r0, [r4, #7]
+ mov r0, #4
+ strb r0, [r4, #8]
+ ldr r0, [sp, #0x14]
+ ldr r0, [r0, #0x14]
+ str r0, [r4, #0xc]
+ mov r0, #0
+ ldr r1, [r5, #4]
+ add r2, r0, #0
+ bl FUN_02002E14
+ add r3, r0, #0
+ mov r0, #0xd
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021DE274 ; =0x00020100
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r2, [r5, #4]
+ lsr r5, r3, #1
+ mov r3, #0x54
+ add r0, r4, #0
+ sub r3, r3, r5
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02016A18
+_021DE250:
+ ldr r3, [sp, #0x14]
+ ldr r0, _021DE270 ; =0x00005984
+ str r7, [sp]
+ ldr r2, [r3, #0x14]
+ ldr r0, [r6, r0]
+ ldr r3, [r3, #0x10]
+ mov r1, #3
+ bl FUN_02017E14
+_021DE262:
+ ldr r0, [sp, #0x10]
+ bl FUN_02016A18
+_021DE268:
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DE26C: .word 0x021E65AD
+_021DE270: .word 0x00005984
+_021DE274: .word 0x00020100
+
+ thumb_func_start MOD14_021DE278
+MOD14_021DE278: ; 0x021DE278
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r4, r2, #0
+ mov r2, #1
+ str r2, [sp]
+ add r6, r3, #0
+ ldrb r3, [r1, #1]
+ add r5, r0, #0
+ mov r0, #0x12
+ lsl r1, r3, #1
+ add r3, r3, r1
+ ldr r1, _021DE2E0 ; =0x021E65AC
+ ldrb r1, [r1, r3]
+ mov r3, #0xa
+ bl FUN_02006C98
+ str r0, [sp, #4]
+ cmp r0, #0
+ beq _021DE2DC
+ add r1, sp, #8
+ bl FUN_020B0180
+ ldr r0, _021DE2E4 ; =0x00005984
+ mov r1, #3
+ ldr r0, [r5, r0]
+ bl FUN_0201886C
+ add r7, r0, #0
+ beq _021DE2C2
+ ldr r1, [sp, #0x20]
+ add r2, r4, #0
+ str r1, [sp]
+ ldr r1, [sp, #8]
+ add r3, r6, #0
+ add r1, #0xc
+ bl MOD14_021DECD4
+_021DE2C2:
+ ldr r0, [sp, #4]
+ bl FUN_02016A18
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _021DE2E4 ; =0x00005984
+ mov r3, #1
+ ldr r0, [r5, r0]
+ mov r1, #3
+ add r2, r7, #0
+ lsl r3, r3, #0xc
+ bl FUN_02017CE8
+_021DE2DC:
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DE2E0: .word 0x021E65AC
+_021DE2E4: .word 0x00005984
+
+ thumb_func_start MOD14_021DE2E8
+MOD14_021DE2E8: ; 0x021DE2E8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, _021DE384 ; =0x00005984
+ add r4, r1, #0
+ ldr r0, [r5, r0]
+ mov r1, #3
+ add r6, r2, #0
+ bl FUN_02017B48
+ lsl r0, r0, #0x17
+ lsr r1, r0, #0xb
+ mov r0, #0xb8
+ add r7, r6, #0
+ mul r7, r0
+ lsl r0, r7, #0xc
+ str r1, [r5, #8]
+ add r1, r1, r0
+ str r1, [r5, #0x14]
+ ldr r0, [r5, #8]
+ sub r0, r1, r0
+ mov r1, #0x1e
+ bl _s32_div_f
+ str r0, [r5, #0x10]
+ ldr r0, [r5, #0x14]
+ asr r1, r0, #0xc
+ ldr r0, _021DE388 ; =0x000001FF
+ and r0, r1
+ str r0, [r5, #0x14]
+ mov r0, #0x1e
+ str r0, [r5, #4]
+ ldrb r0, [r5, #2]
+ strb r0, [r5, #3]
+ mov r0, #0x17
+ ldrb r1, [r5, #1]
+ mul r0, r6
+ add r0, r1, r0
+ strb r0, [r5, #1]
+ ldrb r1, [r5, #1]
+ mov r0, #0x3f
+ and r0, r1
+ strb r0, [r5, #1]
+ ldrb r1, [r5, #2]
+ mov r0, #1
+ eor r0, r1
+ strb r0, [r5, #2]
+ ldrb r1, [r4]
+ add r0, r5, #0
+ bl MOD14_021DE6B4
+ ldr r1, [r5, #0x10]
+ add r0, r5, #0
+ add r2, r7, #0
+ bl MOD14_021DE48C
+ ldrb r0, [r4]
+ mov r1, #1
+ mov r2, #0
+ str r0, [r5, #0x30]
+ ldrb r0, [r5, #2]
+ str r0, [r5, #0x34]
+ add r0, r5, #0
+ add r0, #0x98
+ str r1, [r0]
+ add r0, r5, #0
+ add r0, #0x9c
+ str r2, [r0]
+ ldr r0, _021DE38C ; =MOD14_021DE39C
+ add r1, r5, #0
+ bl FUN_0200CA44
+ ldr r0, _021DE390 ; =MOD14_021DE3E4
+ add r1, r5, #0
+ mov r2, #1
+ bl MOD14_021DDD40
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021DE384: .word 0x00005984
+_021DE388: .word 0x000001FF
+_021DE38C: .word MOD14_021DE39C
+_021DE390: .word MOD14_021DE3E4
+
+ thumb_func_start MOD14_021DE394
+MOD14_021DE394: ; 0x021DE394
+ add r0, #0x9c
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021DE39C
+MOD14_021DE39C: ; 0x021DE39C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ beq _021DE3C2
+ add r0, r4, #0
+ add r0, #0x98
+ ldr r0, [r0]
+ cmp r0, #2
+ bne _021DE3DC
+ ldr r1, [r4, #0x10]
+ add r0, r4, #0
+ bl MOD14_021DE514
+ mov r0, #0
+ add r4, #0x98
+ str r0, [r4]
+ pop {r3, r4, r5, pc}
+_021DE3C2:
+ ldr r0, [r4, #0x14]
+ str r0, [r4, #0xc]
+ ldr r0, _021DE3E0 ; =0x00005988
+ ldr r0, [r4, r0]
+ bl MOD14_021DC424
+ strb r0, [r4]
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ mov r0, #1
+ add r4, #0x9c
+ str r0, [r4]
+_021DE3DC:
+ pop {r3, r4, r5, pc}
+ nop
+_021DE3E0: .word 0x00005988
+
+ thumb_func_start MOD14_021DE3E4
+MOD14_021DE3E4: ; 0x021DE3E4
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ ldrb r3, [r5, #3]
+ add r6, r0, #0
+ mov r0, #1
+ add r4, r3, #0
+ eor r4, r0
+ ldr r0, [r5, #4]
+ cmp r0, #0
+ beq _021DE45C
+ add r0, r5, #0
+ add r0, #0x98
+ ldr r2, [r0]
+ cmp r2, #2
+ bhs _021DE47E
+ ldr r6, _021DE480 ; =0x00000618
+ add r1, #0xa8
+ mul r6, r3
+ add r0, r5, #0
+ add r1, r1, r6
+ bl MOD14_021DEBCC
+ ldr r1, _021DE480 ; =0x00000618
+ add r2, r5, #0
+ add r2, #0xa8
+ mul r1, r4
+ add r1, r2, r1
+ add r2, r5, #0
+ add r2, #0x98
+ ldr r2, [r2]
+ add r0, r5, #0
+ bl MOD14_021DEC24
+ add r0, r5, #0
+ add r0, #0x98
+ ldr r0, [r0]
+ mov r2, #0
+ add r1, r0, #1
+ add r0, r5, #0
+ add r0, #0x98
+ str r1, [r0]
+ ldr r0, [r5, #8]
+ asr r1, r0, #0xc
+ ldr r0, _021DE484 ; =0x000001FF
+ and r0, r1
+ str r0, [r5, #0xc]
+ ldr r1, [r5, #8]
+ ldr r0, [r5, #0x10]
+ add r0, r1, r0
+ str r0, [r5, #8]
+ ldr r0, _021DE488 ; =0x00005984
+ ldr r3, [r5, #0xc]
+ ldr r0, [r5, r0]
+ mov r1, #3
+ bl FUN_020179E0
+ ldr r0, [r5, #4]
+ sub r0, r0, #1
+ str r0, [r5, #4]
+ pop {r4, r5, r6, pc}
+_021DE45C:
+ ldr r0, _021DE488 ; =0x00005984
+ ldr r3, [r5, #0x14]
+ ldr r0, [r5, r0]
+ mov r1, #3
+ mov r2, #0
+ bl FUN_020179E0
+ ldr r1, _021DE480 ; =0x00000618
+ add r0, r5, #0
+ add r5, #0xa8
+ mul r1, r4
+ add r1, r5, r1
+ bl MOD14_021DEC7C
+ add r0, r6, #0
+ bl FUN_0200CAB4
+_021DE47E:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021DE480: .word 0x00000618
+_021DE484: .word 0x000001FF
+_021DE488: .word 0x00005984
+
+ thumb_func_start MOD14_021DE48C
+MOD14_021DE48C: ; 0x021DE48C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ mov r7, #0
+ str r0, [sp, #8]
+ add r0, #0xa8
+ str r1, [sp]
+ str r2, [sp, #4]
+ add r6, r7, #0
+ add r4, r5, #0
+ str r0, [sp, #8]
+_021DE4A2:
+ ldr r0, _021DE504 ; =0x0000585C
+ ldr r0, [r5, r0]
+ add r0, #0x70
+ add r0, r0, r6
+ lsl r1, r0, #0xc
+ ldr r0, [sp]
+ str r1, [r4, #0x68]
+ sub r1, r1, r0
+ add r0, r4, #0
+ add r0, #0x80
+ str r1, [r0]
+ ldr r0, _021DE504 ; =0x0000585C
+ ldr r0, [r5, r0]
+ add r0, #0x70
+ add r1, r0, r6
+ ldr r0, [sp, #4]
+ add r0, r0, r1
+ lsl r1, r0, #0xc
+ ldr r0, [sp]
+ str r1, [r4, #0x38]
+ sub r0, r1, r0
+ str r0, [r4, #0x50]
+ asr r2, r0, #0xc
+ ldr r0, _021DE508 ; =0x00005854
+ ldr r0, [r5, r0]
+ cmp r2, r0
+ ble _021DE4F6
+ ldr r0, _021DE50C ; =0x00005858
+ ldr r0, [r5, r0]
+ cmp r2, r0
+ bge _021DE4F6
+ ldrb r3, [r5, #3]
+ mov r1, #1
+ add r0, r5, #0
+ eor r1, r3
+ ldr r3, _021DE510 ; =0x00000618
+ mul r3, r1
+ ldr r1, [sp, #8]
+ add r1, r1, r3
+ add r3, r7, #0
+ bl MOD14_021DE5B4
+_021DE4F6:
+ add r7, r7, #1
+ add r6, #0x18
+ add r4, r4, #4
+ cmp r7, #6
+ blt _021DE4A2
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DE504: .word 0x0000585C
+_021DE508: .word 0x00005854
+_021DE50C: .word 0x00005858
+_021DE510: .word 0x00000618
+
+ thumb_func_start MOD14_021DE514
+MOD14_021DE514: ; 0x021DE514
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ add r6, r1, #0
+ ldrb r1, [r5, #3]
+ str r0, [sp]
+ add r0, #0xa8
+ str r0, [sp]
+ ldr r0, _021DE5A8 ; =0x00000618
+ add r2, r1, #0
+ mul r2, r0
+ str r2, [sp, #4]
+ mov r2, #1
+ eor r1, r2
+ mul r0, r1
+ mov r7, #0
+ add r4, r5, #0
+ str r0, [sp, #8]
+_021DE538:
+ add r0, r4, #0
+ add r0, #0x80
+ ldr r1, _021DE5AC ; =0x00005854
+ ldr r0, [r0]
+ ldr r1, [r5, r1]
+ asr r0, r0, #0xc
+ cmp r0, r1
+ ble _021DE550
+ ldr r1, _021DE5B0 ; =0x00005858
+ ldr r1, [r5, r1]
+ cmp r0, r1
+ blt _021DE55E
+_021DE550:
+ ldr r2, [sp]
+ ldr r1, [sp, #4]
+ add r0, r5, #0
+ add r1, r2, r1
+ add r2, r7, #0
+ bl MOD14_021DE68C
+_021DE55E:
+ add r0, r4, #0
+ add r0, #0x80
+ ldr r0, [r0]
+ sub r0, r0, r6
+ str r0, [r4, #0x68]
+ sub r1, r0, r6
+ add r0, r4, #0
+ add r0, #0x80
+ str r1, [r0]
+ ldr r0, [r4, #0x50]
+ sub r0, r0, r6
+ str r0, [r4, #0x38]
+ sub r0, r0, r6
+ str r0, [r4, #0x50]
+ asr r2, r0, #0xc
+ ldr r0, _021DE5AC ; =0x00005854
+ ldr r0, [r5, r0]
+ cmp r2, r0
+ ble _021DE59A
+ ldr r0, _021DE5B0 ; =0x00005858
+ ldr r0, [r5, r0]
+ cmp r2, r0
+ bge _021DE59A
+ ldr r3, [sp]
+ ldr r1, [sp, #8]
+ add r0, r5, #0
+ add r1, r3, r1
+ add r3, r7, #0
+ bl MOD14_021DE5B4
+_021DE59A:
+ add r7, r7, #1
+ add r4, r4, #4
+ cmp r7, #6
+ blt _021DE538
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021DE5A8: .word 0x00000618
+_021DE5AC: .word 0x00005854
+_021DE5B0: .word 0x00005858
+
+ thumb_func_start MOD14_021DE5B4
+MOD14_021DE5B4: ; 0x021DE5B4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x38
+ add r5, r1, #0
+ ldr r1, _021DE678 ; =0x00005988
+ str r0, [sp, #0x1c]
+ ldr r0, [r0, r1]
+ str r2, [sp, #0x20]
+ add r4, r3, #0
+ bl MOD14_021DC44C
+ str r0, [sp, #0x30]
+ ldr r0, [sp, #0x1c]
+ mov r7, #0x28
+ ldr r1, [r0, #0x34]
+ mov r0, #0x1e
+ add r2, r1, #0
+ lsl r0, r0, #4
+ mul r2, r0
+ add r2, #0x58
+ lsl r0, r4, #4
+ add r0, r2, r0
+ str r0, [sp, #0x28]
+ mov r0, #0x34
+ mul r0, r4
+ add r5, r5, r0
+ mov r0, #0
+ str r0, [sp, #0x2c]
+ ldr r1, _021DE67C ; =0x00000CD8
+ ldr r0, [sp, #0x1c]
+ add r1, r0, r1
+ lsl r0, r7, #4
+ mul r0, r4
+ add r0, r1, r0
+ str r0, [sp, #0x24]
+ ldr r0, [sp, #0x1c]
+ lsl r1, r4, #1
+ add r6, r0, r1
+_021DE5FE:
+ ldr r0, [r5]
+ cmp r0, #0
+ bne _021DE64E
+ ldr r1, [sp, #0x1c]
+ ldr r0, [sp, #0x30]
+ ldr r1, [r1, #0x30]
+ add r2, r4, #0
+ bl FUN_0206B5E4
+ mov r1, #0xab
+ mov r2, #0
+ str r0, [sp, #0x34]
+ bl FUN_020672BC
+ cmp r0, #0
+ beq _021DE64E
+ add r0, r4, #0
+ bl MOD14_021DEB24
+ ldr r1, [sp, #0x24]
+ ldr r2, _021DE680 ; =0x00005814
+ str r1, [sp]
+ ldr r1, [sp, #0x20]
+ ldr r3, _021DE684 ; =0x000057D8
+ str r1, [sp, #4]
+ str r7, [sp, #8]
+ mov r1, #2
+ str r1, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x28]
+ ldr r1, [sp, #0x1c]
+ str r0, [sp, #0x14]
+ str r5, [sp, #0x18]
+ ldr r0, _021DE688 ; =0x00005980
+ ldrh r2, [r6, r2]
+ ldr r0, [r1, r0]
+ ldrh r3, [r6, r3]
+ ldr r1, [sp, #0x34]
+ bl MOD14_021E0A60
+_021DE64E:
+ ldr r0, [sp, #0x28]
+ ldr r1, [sp, #0x24]
+ add r0, #0x60
+ str r0, [sp, #0x28]
+ mov r0, #0x4e
+ lsl r0, r0, #2
+ add r5, r5, r0
+ mov r0, #0xf
+ lsl r0, r0, #8
+ add r0, r1, r0
+ str r0, [sp, #0x24]
+ ldr r0, [sp, #0x2c]
+ add r6, #0xc
+ add r0, r0, #1
+ add r4, r4, #6
+ add r7, #0x18
+ str r0, [sp, #0x2c]
+ cmp r0, #5
+ blt _021DE5FE
+ add sp, #0x38
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DE678: .word 0x00005988
+_021DE67C: .word 0x00000CD8
+_021DE680: .word 0x00005814
+_021DE684: .word 0x000057D8
+_021DE688: .word 0x00005980
+
+ thumb_func_start MOD14_021DE68C
+MOD14_021DE68C: ; 0x021DE68C
+ push {r3, r4, r5, r6, r7, lr}
+ mov r0, #0x34
+ mov r4, #0
+ mov r7, #0x4e
+ add r5, r1, #0
+ mul r0, r2
+ add r5, r5, r0
+ add r6, r4, #0
+ lsl r7, r7, #2
+_021DE69E:
+ ldr r0, [r5]
+ cmp r0, #0
+ beq _021DE6AA
+ bl FUN_0201FFC8
+ str r6, [r5]
+_021DE6AA:
+ add r4, r4, #1
+ add r5, r5, r7
+ cmp r4, #5
+ blt _021DE69E
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD14_021DE6B4
+MOD14_021DE6B4: ; 0x021DE6B4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ str r1, [sp, #4]
+ ldr r1, _021DE71C ; =0x00005988
+ str r0, [sp]
+ ldr r0, [r0, r1]
+ bl MOD14_021DC44C
+ ldr r4, [sp]
+ str r0, [sp, #8]
+ ldr r1, _021DE720 ; =0x00000CD8
+ add r0, r4, #0
+ mov r6, #0
+ add r5, r0, r1
+_021DE6D0:
+ ldr r0, [sp, #8]
+ ldr r1, [sp, #4]
+ add r2, r6, #0
+ bl FUN_0206B5E4
+ mov r1, #5
+ mov r2, #0
+ add r7, r0, #0
+ bl FUN_020672BC
+ cmp r0, #0
+ beq _021DE70A
+ ldr r1, _021DE724 ; =0x00005814
+ strh r0, [r4, r1]
+ add r0, r7, #0
+ bl FUN_0206B688
+ ldr r1, _021DE728 ; =0x000057D8
+ mov r3, #0xa
+ strh r0, [r4, r1]
+ ldr r2, _021DE728 ; =0x000057D8
+ ldr r1, [sp]
+ ldr r0, _021DE72C ; =0x00005980
+ ldrh r2, [r4, r2]
+ ldr r0, [r1, r0]
+ add r1, r5, #0
+ lsl r3, r3, #6
+ bl MOD14_021E0BAC
+_021DE70A:
+ mov r0, #0xa
+ lsl r0, r0, #6
+ add r6, r6, #1
+ add r4, r4, #2
+ add r5, r5, r0
+ cmp r6, #0x1e
+ blo _021DE6D0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DE71C: .word 0x00005988
+_021DE720: .word 0x00000CD8
+_021DE724: .word 0x00005814
+_021DE728: .word 0x000057D8
+_021DE72C: .word 0x00005980
+
+ thumb_func_start MOD14_021DE730
+MOD14_021DE730: ; 0x021DE730
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r1, #0
+ add r0, #0xa3
+ strb r1, [r0]
+ mov r0, #0xa
+ mov r1, #0x10
+ add r7, r2, #0
+ str r3, [sp]
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _021DE782
+ str r5, [r4]
+ strh r6, [r4, #4]
+ ldr r0, [sp]
+ strh r7, [r4, #6]
+ str r0, [r4, #0xc]
+ mov r0, #2
+ strh r0, [r4, #0xa]
+ cmp r7, r6
+ ble _021DE762
+ mov r0, #1
+ b _021DE764
+_021DE762:
+ sub r0, r0, #3
+_021DE764:
+ strh r0, [r4, #8]
+ ldr r0, _021DE784 ; =MOD14_021DE788
+ add r1, r4, #0
+ mov r2, #0
+ bl MOD14_021DDD40
+ cmp r0, #0
+ beq _021DE77C
+ mov r0, #1
+ add r5, #0xa3
+ strb r0, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DE77C:
+ add r0, r4, #0
+ bl FUN_02016A18
+_021DE782:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DE784: .word MOD14_021DE788
+
+ thumb_func_start MOD14_021DE788
+MOD14_021DE788: ; 0x021DE788
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r0, #0xa
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ beq _021DE79C
+ sub r0, r0, #1
+ strh r0, [r4, #0xa]
+ pop {r3, r4, r5, pc}
+_021DE79C:
+ mov r2, #4
+ mov r1, #6
+ ldrsh r0, [r4, r2]
+ ldrsh r1, [r4, r1]
+ cmp r0, r1
+ beq _021DE7CA
+ mov r1, #8
+ ldrsh r1, [r4, r1]
+ add r0, r0, r1
+ strh r0, [r4, #4]
+ ldr r1, [r4]
+ ldr r0, _021DE7DC ; =0x00005860
+ add r1, r1, r0
+ ldrsh r0, [r4, r2]
+ mov r2, #0x20
+ lsl r0, r0, #5
+ add r0, r1, r0
+ ldr r1, [r4, #0xc]
+ bl GX_LoadBGPltt
+ mov r0, #2
+ strh r0, [r4, #0xa]
+ pop {r3, r4, r5, pc}
+_021DE7CA:
+ ldr r1, _021DE7E0 ; =MOD14_021DE7E4
+ ldr r2, [r4]
+ add r0, r4, #0
+ bl MOD14_021DDF30
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DE7DC: .word 0x00005860
+_021DE7E0: .word MOD14_021DE7E4
+
+ thumb_func_start MOD14_021DE7E4
+MOD14_021DE7E4: ; 0x021DE7E4
+ mov r1, #0
+ add r0, #0xa3
+ strb r1, [r0]
+ bx lr
+
+ thumb_func_start MOD14_021DE7EC
+MOD14_021DE7EC: ; 0x021DE7EC
+ push {r3, r4, lr}
+ sub sp, #4
+ ldr r3, _021DE878 ; =0x021E6B90
+ add r4, r1, #0
+ ldr r1, [r3, #0xc]
+ cmp r1, #0
+ beq _021DE806
+ cmp r1, #1
+ beq _021DE83C
+ cmp r1, #2
+ beq _021DE868
+ add sp, #4
+ pop {r3, r4, pc}
+_021DE806:
+ ldr r0, _021DE87C ; =0x021E6B94
+ ldr r2, _021DE880 ; =0x021E6B98
+ str r0, [sp]
+ ldr r3, _021DE884 ; =0x021E6B90
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD14_021DE06C
+ ldr r0, _021DE888 ; =0x00005988
+ ldr r0, [r4, r0]
+ bl MOD14_021DC448
+ ldr r2, _021DE878 ; =0x021E6B90
+ add r1, r0, #0
+ ldr r0, _021DE88C ; =0x021E69E0
+ ldr r2, [r2, #4]
+ str r1, [r0]
+ add r0, r4, #0
+ mov r3, #0
+ bl MOD14_021DE138
+ ldr r0, _021DE878 ; =0x021E6B90
+ add sp, #4
+ ldr r1, [r0, #0xc]
+ add r1, r1, #1
+ str r1, [r0, #0xc]
+ pop {r3, r4, pc}
+_021DE83C:
+ ldr r0, [r3, #4]
+ ldr r1, _021DE88C ; =0x021E69E0
+ str r0, [sp]
+ ldr r2, [r3]
+ ldr r1, [r1]
+ ldr r3, [r3, #8]
+ add r0, r4, #0
+ bl MOD14_021DE278
+ ldr r1, _021DE88C ; =0x021E69E0
+ ldr r2, _021DE878 ; =0x021E6B90
+ ldr r1, [r1]
+ ldr r2, [r2, #8]
+ add r0, r4, #0
+ bl MOD14_021DE1D0
+ ldr r0, _021DE878 ; =0x021E6B90
+ add sp, #4
+ ldr r1, [r0, #0xc]
+ add r1, r1, #1
+ str r1, [r0, #0xc]
+ pop {r3, r4, pc}
+_021DE868:
+ mov r1, #0
+ add r4, #0xa3
+ strb r1, [r4]
+ str r1, [r3, #0xc]
+ bl FUN_0200CAB4
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_021DE878: .word 0x021E6B90
+_021DE87C: .word 0x021E6B94
+_021DE880: .word 0x021E6B98
+_021DE884: .word 0x021E6B90
+_021DE888: .word 0x00005988
+_021DE88C: .word 0x021E69E0
+
+ thumb_func_start MOD14_021DE890
+MOD14_021DE890: ; 0x021DE890
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021DE8C0 ; =MOD14_021DE7EC
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA98
+ cmp r0, #0
+ beq _021DE8A6
+ mov r1, #1
+ b _021DE8A8
+_021DE8A6:
+ mov r1, #0
+_021DE8A8:
+ add r0, r4, #0
+ add r0, #0xa3
+ add r4, #0xa3
+ strb r1, [r0]
+ ldrb r0, [r4]
+ cmp r0, #0
+ beq _021DE8BC
+ ldr r0, _021DE8C4 ; =0x021E6B90
+ mov r1, #0
+ str r1, [r0, #0xc]
+_021DE8BC:
+ pop {r4, pc}
+ nop
+_021DE8C0: .word MOD14_021DE7EC
+_021DE8C4: .word 0x021E6B90
+
+ thumb_func_start MOD14_021DE8C8
+MOD14_021DE8C8: ; 0x021DE8C8
+ push {r4, lr}
+ add r2, r0, #0
+ mov r1, #0
+ add r2, #0xa2
+ strb r1, [r2]
+ ldrb r3, [r0, #2]
+ mov r2, #8
+ lsl r4, r3, #1
+ ldr r3, _021DE8E4 ; =0x021E656C
+ ldrh r3, [r3, r4]
+ lsl r3, r3, #5
+ bl MOD14_021DE730
+ pop {r4, pc}
+ .align 2, 0
+_021DE8E4: .word 0x021E656C
+
+ thumb_func_start MOD14_021DE8E8
+MOD14_021DE8E8: ; 0x021DE8E8
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ add r1, r4, #0
+ add r1, #0xa2
+ ldrb r1, [r1]
+ cmp r1, #4
+ bhi _021DE976
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021DE902: ; jump table
+ .short _021DE90C - _021DE902 - 2 ; case 0
+ .short _021DE922 - _021DE902 - 2 ; case 1
+ .short _021DE934 - _021DE902 - 2 ; case 2
+ .short _021DE94A - _021DE902 - 2 ; case 3
+ .short _021DE96A - _021DE902 - 2 ; case 4
+_021DE90C:
+ add r0, #0xa3
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _021DE976
+ add r0, r4, #0
+ add r0, #0xa2
+ ldrb r0, [r0]
+ add r4, #0xa2
+ add r0, r0, #1
+ strb r0, [r4]
+ b _021DE976
+_021DE922:
+ bl MOD14_021DE890
+ add r0, r4, #0
+ add r0, #0xa2
+ ldrb r0, [r0]
+ add r4, #0xa2
+ add r0, r0, #1
+ strb r0, [r4]
+ b _021DE976
+_021DE934:
+ add r0, #0xa3
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _021DE976
+ add r0, r4, #0
+ add r0, #0xa2
+ ldrb r0, [r0]
+ add r4, #0xa2
+ add r0, r0, #1
+ strb r0, [r4]
+ b _021DE976
+_021DE94A:
+ ldrb r3, [r4, #2]
+ mov r1, #8
+ mov r2, #0
+ lsl r5, r3, #1
+ ldr r3, _021DE97C ; =0x021E656C
+ ldrh r3, [r3, r5]
+ lsl r3, r3, #5
+ bl MOD14_021DE730
+ add r0, r4, #0
+ add r0, #0xa2
+ ldrb r0, [r0]
+ add r4, #0xa2
+ add r0, r0, #1
+ strb r0, [r4]
+ b _021DE976
+_021DE96A:
+ add r4, #0xa3
+ ldrb r0, [r4]
+ cmp r0, #0
+ bne _021DE976
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021DE976:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_021DE97C: .word 0x021E656C
+
+ thumb_func_start MOD14_021DE980
+MOD14_021DE980: ; 0x021DE980
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r7, r2, #0
+ add r4, r1, #0
+ mov r0, #0x34
+ mul r4, r0
+ add r0, r5, #0
+ ldrb r2, [r5, #2]
+ ldr r1, _021DE9CC ; =0x00000618
+ add r0, #0xa8
+ mul r1, r2
+ add r0, r0, r1
+ add r6, r3, #0
+ add r0, r0, r4
+ add r1, r6, #0
+ mov r2, #1
+ bl MOD14_021E0930
+ ldr r0, _021DE9D0 ; =0x00005980
+ add r1, r6, #0
+ ldr r0, [r5, r0]
+ add r2, r7, #0
+ bl MOD14_021E0BBC
+ ldr r0, _021DE9D0 ; =0x00005980
+ add r3, r5, #0
+ ldrb r2, [r5, #2]
+ ldr r1, _021DE9CC ; =0x00000618
+ add r3, #0xa8
+ mul r1, r2
+ add r1, r3, r1
+ ldr r0, [r5, r0]
+ add r1, r1, r4
+ mov r2, #1
+ bl MOD14_021E08E4
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021DE9CC: .word 0x00000618
+_021DE9D0: .word 0x00005980
+
+ thumb_func_start MOD14_021DE9D4
+MOD14_021DE9D4: ; 0x021DE9D4
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ ldrb r0, [r6, #2]
+ add r7, r1, #0
+ add r3, r6, #0
+ str r0, [sp]
+ ldr r1, _021DEA30 ; =0x00000618
+ ldr r0, [sp]
+ add r3, #0xa8
+ mul r1, r0
+ mov r0, #0x34
+ add r4, r7, #0
+ mul r4, r0
+ add r5, r3, r1
+ add r0, r2, #0
+ add r1, r5, r4
+ mov r2, #1
+ bl MOD14_021E0930
+ ldr r0, _021DEA34 ; =0x00005980
+ add r1, r5, r4
+ ldr r0, [r6, r0]
+ mov r2, #0
+ bl MOD14_021E0C5C
+ mov r2, #0x1e
+ ldr r0, _021DEA34 ; =0x00005980
+ ldr r3, [sp]
+ lsl r2, r2, #4
+ mul r2, r3
+ ldr r0, [r6, r0]
+ add r2, #0x58
+ lsl r3, r7, #4
+ add r1, r5, r4
+ add r2, r2, r3
+ bl MOD14_021E0BBC
+ add r0, r7, #0
+ bl MOD14_021DEB24
+ add r1, r0, #0
+ ldr r0, [r5, r4]
+ bl MOD14_021DDE24
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021DEA30: .word 0x00000618
+_021DEA34: .word 0x00005980
+
+ thumb_func_start MOD14_021DEA38
+MOD14_021DEA38: ; 0x021DEA38
+ ldrb r2, [r0, #2]
+ add r3, r0, #0
+ ldr r0, _021DEA4C ; =0x00000618
+ add r3, #0xa8
+ mul r0, r2
+ add r2, r3, r0
+ mov r0, #0x34
+ mul r0, r1
+ add r0, r2, r0
+ bx lr
+ .align 2, 0
+_021DEA4C: .word 0x00000618
+
+ thumb_func_start MOD14_021DEA50
+MOD14_021DEA50: ; 0x021DEA50
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x30
+ add r5, r0, #0
+ ldr r0, _021DEB14 ; =0x00005988
+ ldr r0, [r5, r0]
+ ldr r0, [r0]
+ bl FUN_0206B330
+ mov r4, #0
+ str r0, [sp, #0x1c]
+ add r0, r5, #0
+ str r0, [sp, #0x28]
+ add r0, #0xa8
+ add r7, r4, #0
+ str r4, [sp, #0x2c]
+ str r0, [sp, #0x28]
+_021DEA70:
+ ldr r0, _021DEB14 ; =0x00005988
+ ldr r1, [sp, #0x1c]
+ ldr r0, [r5, r0]
+ add r2, r4, #0
+ ldr r0, [r0]
+ bl FUN_0206B5E4
+ mov r1, #0xab
+ mov r2, #0
+ str r0, [sp, #0x20]
+ bl FUN_020672BC
+ cmp r0, #0
+ beq _021DEB02
+ ldrb r1, [r5, #2]
+ ldr r0, _021DEB18 ; =0x00000618
+ mul r0, r1
+ str r0, [sp, #0x18]
+ add r0, r5, r0
+ add r0, r7, r0
+ str r1, [sp, #0x14]
+ add r0, #0xa8
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _021DEB02
+ add r0, r4, #0
+ bl MOD14_021DEB24
+ str r0, [sp, #0x24]
+ add r0, r4, #0
+ mov r1, #6
+ bl _s32_div_f
+ str r1, [sp, #0x10]
+ add r0, r4, #0
+ mov r1, #6
+ bl _s32_div_f
+ mov ip, r0
+ mov r0, #2
+ str r0, [sp]
+ ldr r0, [sp, #0x24]
+ ldr r3, [sp, #0x10]
+ str r0, [sp, #4]
+ ldr r1, [sp, #0x14]
+ mov r0, #0x1e
+ add r2, r1, #0
+ lsl r0, r0, #4
+ mul r2, r0
+ ldr r0, [sp, #0x2c]
+ add r2, #0x58
+ add r0, r2, r0
+ str r0, [sp, #8]
+ ldr r1, [sp, #0x28]
+ ldr r0, [sp, #0x18]
+ ldr r2, _021DEB1C ; =0x0000585C
+ add r0, r1, r0
+ add r0, r0, r7
+ str r0, [sp, #0xc]
+ ldr r6, [r5, r2]
+ mov r2, #0x18
+ ldr r0, _021DEB20 ; =0x00005980
+ mul r2, r3
+ add r6, #0x70
+ add r2, r6, r2
+ mov r6, ip
+ mov r3, #0x18
+ mul r3, r6
+ ldr r0, [r5, r0]
+ ldr r1, [sp, #0x20]
+ add r3, #0x28
+ bl MOD14_021E0940
+_021DEB02:
+ ldr r0, [sp, #0x2c]
+ add r4, r4, #1
+ add r0, #0x10
+ add r7, #0x34
+ str r0, [sp, #0x2c]
+ cmp r4, #0x1e
+ blt _021DEA70
+ add sp, #0x30
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DEB14: .word 0x00005988
+_021DEB18: .word 0x00000618
+_021DEB1C: .word 0x0000585C
+_021DEB20: .word 0x00005980
+
+ thumb_func_start MOD14_021DEB24
+MOD14_021DEB24: ; 0x021DEB24
+ lsl r1, r0, #1
+ ldr r0, _021DEB30 ; =0x021E6570
+ ldrh r0, [r0, r1]
+ add r0, #0xb
+ bx lr
+ nop
+_021DEB30: .word 0x021E6570
+
+ thumb_func_start MOD14_021DEB34
+MOD14_021DEB34: ; 0x021DEB34
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x30
+ str r0, [sp, #0x10]
+ mov r0, #0x1e
+ lsl r0, r0, #4
+ add r6, r3, #0
+ mul r6, r0
+ mov r0, #0x28
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x48]
+ mov r4, #0
+ ldr r7, [sp, #0x4c]
+ str r1, [sp, #0x14]
+ str r2, [sp, #0x18]
+ add r6, #0x58
+ str r4, [sp, #0x24]
+ str r0, [sp, #0x20]
+_021DEB56:
+ mov r0, #0
+ str r0, [sp, #0x28]
+ add r5, r0, #0
+_021DEB5C:
+ ldr r0, [sp, #0x14]
+ ldr r1, [sp, #0x18]
+ ldr r0, [r0, #0x40]
+ add r2, r4, #0
+ ldr r0, [r0]
+ bl FUN_0206B5E4
+ mov r1, #5
+ mov r2, #0
+ str r0, [sp, #0x2c]
+ bl FUN_020672BC
+ cmp r0, #0
+ beq _021DEBA0
+ add r0, r4, #0
+ bl MOD14_021DEB24
+ mov r1, #2
+ str r1, [sp]
+ str r0, [sp, #4]
+ str r6, [sp, #8]
+ ldr r3, [sp, #0x10]
+ ldr r2, _021DEBC8 ; =0x0000585C
+ str r7, [sp, #0xc]
+ ldr r2, [r3, r2]
+ ldr r0, [sp, #0x14]
+ add r2, #0x70
+ add r3, r2, r5
+ ldr r2, [sp, #0x20]
+ ldr r1, [sp, #0x2c]
+ add r2, r2, r3
+ ldr r3, [sp, #0x1c]
+ bl MOD14_021E0940
+_021DEBA0:
+ ldr r0, [sp, #0x28]
+ add r7, #0x34
+ add r0, r0, #1
+ add r4, r4, #1
+ add r6, #0x10
+ add r5, #0x18
+ str r0, [sp, #0x28]
+ cmp r0, #6
+ blo _021DEB5C
+ ldr r0, [sp, #0x1c]
+ add r0, #0x18
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x24]
+ add r0, r0, #1
+ str r0, [sp, #0x24]
+ cmp r0, #5
+ blo _021DEB56
+ add sp, #0x30
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021DEBC8: .word 0x0000585C
+
+ thumb_func_start MOD14_021DEBCC
+MOD14_021DEBCC: ; 0x021DEBCC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ mov r0, #0x18
+ mul r0, r2
+ add r5, r1, #0
+ str r0, [sp, #8]
+_021DEBDE:
+ ldr r1, [sp]
+ ldr r0, [sp, #8]
+ mov r7, #0
+ add r4, r1, r0
+_021DEBE6:
+ ldr r0, [r5]
+ cmp r0, #0
+ beq _021DEC0A
+ bl FUN_0202011C
+ add r6, r0, #0
+ add r3, sp, #0xc
+ ldmia r6!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r6]
+ add r1, r2, #0
+ str r0, [r3]
+ ldr r0, [r4, #0x68]
+ str r0, [sp, #0xc]
+ ldr r0, [r5]
+ bl FUN_02020044
+_021DEC0A:
+ add r7, r7, #1
+ add r5, #0x34
+ add r4, r4, #4
+ cmp r7, #6
+ blt _021DEBE6
+ ldr r0, [sp, #4]
+ add r0, r0, #1
+ str r0, [sp, #4]
+ cmp r0, #5
+ blt _021DEBDE
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DEC24
+MOD14_021DEC24: ; 0x021DEC24
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ mov r0, #0x18
+ mul r0, r2
+ add r5, r1, #0
+ str r0, [sp, #8]
+_021DEC36:
+ ldr r1, [sp]
+ ldr r0, [sp, #8]
+ mov r7, #0
+ add r4, r1, r0
+_021DEC3E:
+ ldr r0, [r5]
+ cmp r0, #0
+ beq _021DEC62
+ bl FUN_0202011C
+ add r6, r0, #0
+ add r3, sp, #0xc
+ ldmia r6!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r6]
+ add r1, r2, #0
+ str r0, [r3]
+ ldr r0, [r4, #0x38]
+ str r0, [sp, #0xc]
+ ldr r0, [r5]
+ bl FUN_02020044
+_021DEC62:
+ add r7, r7, #1
+ add r5, #0x34
+ add r4, r4, #4
+ cmp r7, #6
+ blt _021DEC3E
+ ldr r0, [sp, #4]
+ add r0, r0, #1
+ str r0, [sp, #4]
+ cmp r0, #5
+ blt _021DEC36
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DEC7C
+MOD14_021DEC7C: ; 0x021DEC7C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r7, r0, #0
+ mov r0, #0
+ str r0, [sp, #4]
+ str r0, [sp, #0x10]
+ mov r0, #0x28
+ add r5, r1, #0
+ str r0, [sp]
+_021DEC8E:
+ ldr r0, [sp]
+ mov r6, #0
+ lsl r0, r0, #0xc
+ str r0, [sp, #0xc]
+ add r4, r6, #0
+_021DEC98:
+ ldr r0, _021DECD0 ; =0x0000585C
+ ldr r0, [r7, r0]
+ add r0, #0x70
+ add r0, r0, r4
+ lsl r0, r0, #0xc
+ str r0, [sp, #8]
+ ldr r0, [r5]
+ cmp r0, #0
+ beq _021DECB0
+ add r1, sp, #8
+ bl FUN_02020044
+_021DECB0:
+ add r6, r6, #1
+ add r5, #0x34
+ add r4, #0x18
+ cmp r6, #6
+ blt _021DEC98
+ ldr r0, [sp]
+ add r0, #0x18
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r0, r0, #1
+ str r0, [sp, #4]
+ cmp r0, #5
+ blt _021DEC8E
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021DECD0: .word 0x0000585C
+
+ thumb_func_start MOD14_021DECD4
+MOD14_021DECD4: ; 0x021DECD4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ str r0, [sp]
+ add r0, r2, #0
+ add r7, r3, #0
+ str r1, [sp, #4]
+ str r2, [sp, #8]
+ cmp r0, #0x20
+ blo _021DECF0
+ mov r1, #2
+ ldr r0, [sp]
+ lsl r1, r1, #0xa
+ add r0, r0, r1
+ str r0, [sp]
+_021DECF0:
+ mov r0, #0
+ mov ip, r0
+ ldr r0, [sp, #0x28]
+ lsl r0, r0, #0xc
+ str r0, [sp, #0xc]
+ orr r0, r7
+ mov lr, r0
+_021DECFE:
+ ldr r0, [sp, #8]
+ mov r2, #0
+ lsl r0, r0, #0x1b
+ lsr r1, r0, #0x1a
+ ldr r0, [sp]
+ add r4, r2, #0
+ add r3, r0, r1
+ mov r0, ip
+ lsl r1, r0, #1
+ ldr r0, [sp, #4]
+ add r6, r0, r1
+_021DED14:
+ lsl r0, r4, #1
+ ldrh r1, [r6, r0]
+ mov r0, #3
+ lsl r0, r0, #0xa
+ add r5, r1, #0
+ and r5, r0
+ ldr r0, _021DEDCC ; =0x000003FF
+ add r2, r2, #1
+ and r0, r1
+ add r0, r0, r7
+ add r1, r5, #0
+ orr r1, r0
+ ldr r0, [sp, #0xc]
+ add r4, #0x15
+ orr r0, r1
+ strh r0, [r3]
+ add r3, #0x40
+ cmp r2, #0x14
+ blo _021DED14
+ mov r1, lr
+ lsl r1, r1, #0x10
+ mov r0, #0
+ lsr r1, r1, #0x10
+_021DED42:
+ add r0, r0, #1
+ strh r1, [r3]
+ add r3, #0x40
+ cmp r0, #4
+ blo _021DED42
+ ldr r0, [sp, #8]
+ add r1, r0, #1
+ mov r0, #0x3f
+ and r0, r1
+ str r0, [sp, #8]
+ bne _021DED62
+ mov r1, #2
+ ldr r0, [sp]
+ lsl r1, r1, #0xa
+ sub r0, r0, r1
+ str r0, [sp]
+_021DED62:
+ ldr r0, [sp, #8]
+ cmp r0, #0x20
+ bne _021DED72
+ mov r1, #2
+ ldr r0, [sp]
+ lsl r1, r1, #0xa
+ add r0, r0, r1
+ str r0, [sp]
+_021DED72:
+ mov r0, ip
+ add r0, r0, #1
+ mov ip, r0
+ cmp r0, #0x15
+ blo _021DECFE
+ mov r1, lr
+ mov r3, #2
+ mov r0, #0
+ lsl r1, r1, #0x10
+ lsl r3, r3, #0xa
+ lsr r5, r1, #0x10
+ add r7, r0, #0
+ mov r4, #0x3f
+ add r2, r3, #0
+_021DED8E:
+ ldr r1, [sp, #8]
+ lsl r1, r1, #0x1b
+ lsr r6, r1, #0x1a
+ ldr r1, [sp]
+ add r1, r1, r6
+ add r6, r7, #0
+_021DED9A:
+ add r6, r6, #1
+ strh r5, [r1]
+ add r1, #0x40
+ cmp r6, #0x18
+ blo _021DED9A
+ ldr r1, [sp, #8]
+ add r1, r1, #1
+ and r1, r4
+ str r1, [sp, #8]
+ bne _021DEDB4
+ ldr r1, [sp]
+ sub r1, r1, r3
+ str r1, [sp]
+_021DEDB4:
+ ldr r1, [sp, #8]
+ cmp r1, #0x20
+ bne _021DEDC0
+ ldr r1, [sp]
+ add r1, r1, r2
+ str r1, [sp]
+_021DEDC0:
+ add r0, r0, #1
+ cmp r0, #2
+ blo _021DED8E
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021DEDCC: .word 0x000003FF
+
+ thumb_func_start MOD14_021DEDD0
+MOD14_021DEDD0: ; 0x021DEDD0
+ push {r4, lr}
+ add r2, r0, #0
+ add r0, #0xa0
+ strh r1, [r0]
+ add r0, r2, #0
+ mov r3, #0
+ add r0, #0xa4
+ strb r3, [r0]
+ ldr r0, _021DEE00 ; =0x00005980
+ add r4, r2, #0
+ ldrb r3, [r2, #2]
+ ldr r0, [r2, r0]
+ ldr r2, _021DEE04 ; =0x00000618
+ add r4, #0xa8
+ mul r2, r3
+ add r3, r4, r2
+ mov r2, #0x34
+ mul r2, r1
+ add r1, r3, r2
+ mov r2, #1
+ bl MOD14_021E0C20
+ pop {r4, pc}
+ nop
+_021DEE00: .word 0x00005980
+_021DEE04: .word 0x00000618
+
+ thumb_func_start MOD14_021DEE08
+MOD14_021DEE08: ; 0x021DEE08
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldrb r1, [r5, #2]
+ ldr r0, _021DEE9C ; =0x00000618
+ add r2, r5, #0
+ add r2, #0xa8
+ mul r0, r1
+ add r4, r2, r0
+ add r0, r5, #0
+ add r0, #0xa0
+ ldrh r1, [r0]
+ mov r0, #0x34
+ add r6, r1, #0
+ mul r6, r0
+ add r0, r5, #0
+ add r0, #0xa4
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _021DEE34
+ cmp r0, #1
+ beq _021DEE86
+ b _021DEE98
+_021DEE34:
+ ldr r0, _021DEEA0 ; =0x00005980
+ add r1, r4, r6
+ ldr r0, [r5, r0]
+ bl MOD14_021E0C48
+ cmp r0, #0
+ beq _021DEE98
+ ldr r0, _021DEEA4 ; =0x0000598C
+ ldr r0, [r5, r0]
+ bl MOD14_021DDEDC
+ add r7, r0, #0
+ bl MOD14_021DA1B8
+ cmp r0, #0
+ beq _021DEE98
+ add r0, r7, #0
+ bl MOD14_021DA1C0
+ cmp r0, #0
+ ldr r0, _021DEEA0 ; =0x00005980
+ beq _021DEE6E
+ ldr r0, [r5, r0]
+ add r1, r4, r6
+ mov r2, #1
+ bl MOD14_021E0908
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DEE6E:
+ ldr r0, [r5, r0]
+ add r1, r4, r6
+ mov r2, #2
+ bl MOD14_021E0C20
+ add r0, r5, #0
+ add r0, #0xa4
+ ldrb r0, [r0]
+ add r5, #0xa4
+ add r0, r0, #1
+ strb r0, [r5]
+ b _021DEE98
+_021DEE86:
+ ldr r0, _021DEEA0 ; =0x00005980
+ add r1, r4, r6
+ ldr r0, [r5, r0]
+ bl MOD14_021E0C48
+ cmp r0, #0
+ beq _021DEE98
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DEE98:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DEE9C: .word 0x00000618
+_021DEEA0: .word 0x00005980
+_021DEEA4: .word 0x0000598C
+
+ thumb_func_start MOD14_021DEEA8
+MOD14_021DEEA8: ; 0x021DEEA8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, _021DEEEC ; =0x00005988
+ ldr r0, [r5, r0]
+ bl MOD14_021DC484
+ mov r6, #0
+ add r7, r5, #0
+ str r0, [sp]
+ add r4, r6, #0
+ add r7, #0xa8
+_021DEEBE:
+ ldrb r2, [r5, #2]
+ ldr r0, _021DEEF0 ; =0x00000618
+ add r1, r2, #0
+ mul r1, r0
+ add r0, r5, r1
+ add r0, r4, r0
+ add r0, #0xa8
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _021DEEE0
+ ldr r0, _021DEEF4 ; =0x00005980
+ add r1, r7, r1
+ ldr r0, [r5, r0]
+ ldr r2, [sp]
+ add r1, r1, r4
+ bl MOD14_021E0B54
+_021DEEE0:
+ add r6, r6, #1
+ add r4, #0x34
+ cmp r6, #0x1e
+ blt _021DEEBE
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021DEEEC: .word 0x00005988
+_021DEEF0: .word 0x00000618
+_021DEEF4: .word 0x00005980
+
+ thumb_func_start MOD14_021DEEF8
+MOD14_021DEEF8: ; 0x021DEEF8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r0, #0x34
+ mul r4, r0
+ add r3, r5, #0
+ ldrb r1, [r5, #2]
+ ldr r0, _021DEF40 ; =0x00000618
+ add r3, #0xa8
+ mul r0, r1
+ add r1, r3, r0
+ ldr r0, [r1, r4]
+ cmp r0, #0
+ beq _021DEF3E
+ ldr r0, _021DEF44 ; =0x00005980
+ add r1, r1, r4
+ ldr r0, [r5, r0]
+ bl MOD14_021E0BA8
+ ldr r0, _021DEF48 ; =0x00005988
+ ldr r0, [r5, r0]
+ bl MOD14_021DC484
+ add r2, r0, #0
+ ldr r0, _021DEF44 ; =0x00005980
+ add r1, r5, #0
+ ldr r0, [r5, r0]
+ ldrb r5, [r5, #2]
+ ldr r3, _021DEF40 ; =0x00000618
+ add r1, #0xa8
+ mul r3, r5
+ add r1, r1, r3
+ add r1, r1, r4
+ bl MOD14_021E0B54
+_021DEF3E:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DEF40: .word 0x00000618
+_021DEF44: .word 0x00005980
+_021DEF48: .word 0x00005988
+
+ thumb_func_start MOD14_021DEF4C
+MOD14_021DEF4C: ; 0x021DEF4C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, _021DEF88 ; =0x00005988
+ ldr r0, [r5, r0]
+ bl MOD14_021DC3E0
+ add r4, r0, #0
+ ldr r0, _021DEF88 ; =0x00005988
+ ldr r0, [r5, r0]
+ bl MOD14_021DC45C
+ add r2, r0, #0
+ add r3, r5, #0
+ ldrb r1, [r5, #2]
+ ldr r0, _021DEF8C ; =0x00000618
+ add r3, #0xa8
+ mul r0, r1
+ add r3, r3, r0
+ mov r0, #0x34
+ add r1, r4, #0
+ mul r1, r0
+ ldr r0, [r3, r1]
+ cmp r0, #0
+ beq _021DEF86
+ ldr r0, _021DEF90 ; =0x00005980
+ add r1, r3, r1
+ ldr r0, [r5, r0]
+ bl MOD14_021E0BA4
+_021DEF86:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DEF88: .word 0x00005988
+_021DEF8C: .word 0x00000618
+_021DEF90: .word 0x00005980
+
+ thumb_func_start MOD14_021DEF94
+MOD14_021DEF94: ; 0x021DEF94
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r4, r0, #0
+ add r0, sp, #0xc
+ str r0, [sp]
+ ldr r0, _021DF030 ; =0x00005988
+ add r1, sp, #0x18
+ ldr r0, [r4, r0]
+ add r2, sp, #0x14
+ add r3, sp, #0x10
+ bl MOD14_021DC4A4
+ mov r5, #0
+ str r5, [sp, #4]
+_021DEFB0:
+ add r0, r4, #0
+ str r0, [sp, #8]
+ add r0, #0xa8
+ mov r7, #0
+ str r0, [sp, #8]
+_021DEFBA:
+ ldrb r2, [r4, #2]
+ ldr r0, _021DF034 ; =0x00000618
+ add r1, r2, #0
+ mul r1, r0
+ add r0, r4, r1
+ add r0, r5, r0
+ add r0, #0xa8
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _021DF018
+ ldr r6, [sp, #0x18]
+ ldr r2, [sp, #0x14]
+ sub r3, r7, r6
+ sub r2, r2, r6
+ ldr r0, [sp, #0x10]
+ cmp r3, r2
+ bhi _021DEFE0
+ mov r6, #1
+ b _021DEFE2
+_021DEFE0:
+ mov r6, #0
+_021DEFE2:
+ ldr r2, [sp, #4]
+ sub r3, r2, r0
+ ldr r2, [sp, #0xc]
+ sub r0, r2, r0
+ cmp r3, r0
+ bhi _021DEFF2
+ mov r0, #1
+ b _021DEFF4
+_021DEFF2:
+ mov r0, #0
+_021DEFF4:
+ tst r0, r6
+ ldr r0, _021DF038 ; =0x00005980
+ beq _021DF00A
+ ldr r2, [sp, #8]
+ ldr r0, [r4, r0]
+ add r1, r2, r1
+ add r1, r1, r5
+ mov r2, #1
+ bl MOD14_021E0C5C
+ b _021DF018
+_021DF00A:
+ ldr r2, [sp, #8]
+ ldr r0, [r4, r0]
+ add r1, r2, r1
+ add r1, r1, r5
+ mov r2, #0
+ bl MOD14_021E0C5C
+_021DF018:
+ add r7, r7, #1
+ add r5, #0x34
+ cmp r7, #6
+ blo _021DEFBA
+ ldr r0, [sp, #4]
+ add r0, r0, #1
+ str r0, [sp, #4]
+ cmp r0, #5
+ blo _021DEFB0
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021DF030: .word 0x00005988
+_021DF034: .word 0x00000618
+_021DF038: .word 0x00005980
+
+ thumb_func_start MOD14_021DF03C
+MOD14_021DF03C: ; 0x021DF03C
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ mov r6, #0
+ add r7, r5, #0
+ add r4, r6, #0
+ add r7, #0xa8
+_021DF048:
+ ldrb r2, [r5, #2]
+ ldr r0, _021DF074 ; =0x00000618
+ add r1, r2, #0
+ mul r1, r0
+ add r0, r5, r1
+ add r0, r4, r0
+ add r0, #0xa8
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _021DF06A
+ ldr r0, _021DF078 ; =0x00005980
+ add r1, r7, r1
+ ldr r0, [r5, r0]
+ add r1, r1, r4
+ mov r2, #0
+ bl MOD14_021E0C5C
+_021DF06A:
+ add r6, r6, #1
+ add r4, #0x34
+ cmp r6, #0x1e
+ blt _021DF048
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DF074: .word 0x00000618
+_021DF078: .word 0x00005980
+
+ thumb_func_start MOD14_021DF07C
+MOD14_021DF07C: ; 0x021DF07C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r5, r0, #0
+ ldr r0, _021DF128 ; =0x00000794
+ add r6, r1, #0
+ str r6, [r5, r0]
+ add r4, r2, #0
+ sub r0, r0, #4
+ str r4, [r5, r0]
+ add r0, r6, #0
+ str r3, [r5]
+ bl MOD14_021DDD58
+ ldr r1, _021DF12C ; =0x00000758
+ str r0, [r5, r1]
+ add r0, r6, #0
+ bl MOD14_021DDD60
+ ldr r1, _021DF130 ; =0x0000075C
+ str r0, [r5, r1]
+ add r0, r6, #0
+ bl MOD14_021DDD50
+ str r0, [r5, #0x48]
+ add r0, r4, #0
+ bl MOD14_021DC3CC
+ ldr r1, _021DF134 ; =0x00000785
+ strb r0, [r5, r1]
+ add r0, r4, #0
+ bl MOD14_021DC3D0
+ ldr r1, _021DF138 ; =0x00000789
+ strb r0, [r5, r1]
+ add r0, r4, #0
+ bl MOD14_021DC3D8
+ ldr r1, _021DF13C ; =0x0000078A
+ strb r0, [r5, r1]
+ add r0, r4, #0
+ bl MOD14_021DC3E8
+ ldr r1, _021DF140 ; =0x0000078B
+ add r3, r5, #0
+ strb r0, [r5, r1]
+ mov r2, #0
+ str r2, [r5, #4]
+ str r2, [r5, #8]
+ str r2, [r5, #0xc]
+ add r0, r1, #0
+ str r2, [r5, #0x10]
+ sub r0, #0x37
+ str r2, [r5, r0]
+ add r0, r1, #3
+ mov r2, #1
+ strb r2, [r5, r0]
+ mov r0, #0xa
+ str r0, [sp]
+ mov r0, #0x12
+ mov r1, #0xd
+ add r3, #0x1c
+ bl FUN_02006C30
+ str r0, [r5, #0x14]
+ mov r0, #0xa
+ add r3, r5, #0
+ str r0, [sp]
+ mov r0, #0x12
+ mov r1, #0xe
+ mov r2, #1
+ add r3, #0x20
+ bl FUN_02006C5C
+ str r0, [r5, #0x18]
+ ldr r0, [r5, #0x14]
+ cmp r0, #0
+ beq _021DF11C
+ ldr r0, [r5, #0x18]
+ cmp r0, #0
+ bne _021DF122
+_021DF11C:
+ add sp, #4
+ mov r0, #0
+ pop {r3, r4, r5, r6, pc}
+_021DF122:
+ mov r0, #1
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_021DF128: .word 0x00000794
+_021DF12C: .word 0x00000758
+_021DF130: .word 0x0000075C
+_021DF134: .word 0x00000785
+_021DF138: .word 0x00000789
+_021DF13C: .word 0x0000078A
+_021DF140: .word 0x0000078B
+
+ thumb_func_start MOD14_021DF144
+MOD14_021DF144: ; 0x021DF144
+ push {r4, r5, r6, lr}
+ sub sp, #0x38
+ add r4, r0, #0
+ add r0, #0x24
+ bl FUN_020B1A24
+ mov r3, #0
+ str r3, [sp]
+ mov r2, #1
+ str r2, [sp, #4]
+ str r3, [sp, #8]
+ mov r0, #0xa
+ str r0, [sp, #0xc]
+ add r0, r4, #0
+ add r0, #0x24
+ str r0, [sp, #0x10]
+ mov r0, #0x12
+ mov r1, #0xc
+ bl FUN_02006AE4
+ ldr r0, _021DF310 ; =0x00000785
+ ldrb r0, [r4, r0]
+ cmp r0, #1
+ bne _021DF178
+ mov r5, #1
+ b _021DF17A
+_021DF178:
+ mov r5, #2
+_021DF17A:
+ ldr r0, _021DF314 ; =0x00000794
+ ldr r0, [r4, r0]
+ bl MOD14_021DDD48
+ add r2, r0, #0
+ ldr r0, [r4, #0x20]
+ add r1, r4, #0
+ str r0, [sp]
+ str r5, [sp, #4]
+ ldr r3, [r4, #0x1c]
+ add r0, sp, #0x14
+ add r1, #0x24
+ bl MOD14_021DDDB4
+ ldr r2, _021DF318 ; =0x00000764
+ add r3, r4, #0
+ add r1, r2, #4
+ add r0, r4, r2
+ add r2, #0x21
+ add r1, r4, r1
+ add r2, r4, r2
+ bl MOD14_021E0264
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r3, _021DF318 ; =0x00000764
+ ldr r0, [r4]
+ ldr r2, [r4, r3]
+ add r3, r3, #4
+ ldr r3, [r4, r3]
+ add r1, sp, #0x14
+ bl MOD14_021DDDD4
+ str r0, [r4, #4]
+ mov r0, #0x2a
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r3, _021DF318 ; =0x00000764
+ ldr r0, [r4]
+ ldr r2, [r4, r3]
+ add r3, r3, #4
+ ldr r3, [r4, r3]
+ add r1, sp, #0x14
+ add r3, #0x18
+ bl MOD14_021DDDD4
+ str r0, [r4, #8]
+ mov r0, #0x79
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl MOD14_021DC3CC
+ mov r0, #0x79
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl MOD14_021DC3C4
+ add r6, r0, #0
+ cmp r6, #4
+ beq _021DF1FC
+ mov r2, #0x6c
+ mov r5, #0xec
+ b _021DF200
+_021DF1FC:
+ mov r2, #0x40
+ mov r5, #0xc0
+_021DF200:
+ mov r1, #2
+ add r0, sp, #0x34
+ strb r1, [r0]
+ mov r0, #0x2b
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ add r1, sp, #0x14
+ mov r3, #0x14
+ bl MOD14_021DDDD4
+ str r0, [r4, #0xc]
+ mov r0, #0x2b
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ add r1, sp, #0x14
+ add r2, r5, #0
+ mov r3, #0x14
+ bl MOD14_021DDDD4
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #8]
+ mov r1, #5
+ bl FUN_02020130
+ ldr r0, [r4, #8]
+ mov r1, #2
+ bl FUN_02020238
+ mov r0, #0x79
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl MOD14_021DC3CC
+ add r5, r0, #0
+ cmp r5, #2
+ ldr r0, [r4, #0xc]
+ beq _021DF262
+ mov r1, #6
+ bl FUN_02020130
+ ldr r0, [r4, #0x10]
+ mov r1, #7
+ bl FUN_02020130
+ b _021DF270
+_021DF262:
+ mov r1, #8
+ bl FUN_02020130
+ ldr r0, [r4, #0x10]
+ mov r1, #9
+ bl FUN_02020130
+_021DF270:
+ cmp r5, #0
+ beq _021DF27C
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl FUN_020200A0
+_021DF27C:
+ cmp r6, #3
+ beq _021DF2C0
+ mov r0, #0x79
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl MOD14_021DC3F4
+ cmp r0, #1
+ ldr r0, [r4, #4]
+ bne _021DF2A6
+ mov r1, #0
+ bl FUN_02020130
+ add r1, r4, #0
+ ldr r0, [r4, #0x48]
+ add r1, #0x4c
+ mov r2, #0x1e
+ bl MOD14_021E08E4
+ mov r1, #0
+ b _021DF2B4
+_021DF2A6:
+ mov r1, #2
+ bl FUN_02020130
+ add r0, r4, #0
+ bl MOD14_021DF324
+ mov r1, #1
+_021DF2B4:
+ ldr r0, _021DF31C ; =0x0000078C
+ strb r1, [r4, r0]
+ ldr r0, _021DF320 ; =0x0000078D
+ mov r1, #0
+ strb r1, [r4, r0]
+ b _021DF2F8
+_021DF2C0:
+ mov r0, #0x79
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl MOD14_021DC538
+ cmp r0, #0
+ ldr r0, [r4, #4]
+ bne _021DF2DA
+ mov r1, #0
+ bl FUN_02020130
+ mov r1, #0
+ b _021DF2E2
+_021DF2DA:
+ mov r1, #2
+ bl FUN_02020130
+ mov r1, #1
+_021DF2E2:
+ ldr r0, _021DF320 ; =0x0000078D
+ mov r2, #0x1e
+ strb r1, [r4, r0]
+ add r1, r4, #0
+ ldr r0, [r4, #0x48]
+ add r1, #0x4c
+ bl MOD14_021E08E4
+ ldr r0, _021DF31C ; =0x0000078C
+ mov r1, #0
+ strb r1, [r4, r0]
+_021DF2F8:
+ ldr r0, _021DF314 ; =0x00000794
+ ldr r0, [r4, r0]
+ bl MOD14_021DDD78
+ mov r1, #0x76
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ add r0, r4, #0
+ bl MOD14_021E0008
+ add sp, #0x38
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021DF310: .word 0x00000785
+_021DF314: .word 0x00000794
+_021DF318: .word 0x00000764
+_021DF31C: .word 0x0000078C
+_021DF320: .word 0x0000078D
+
+ thumb_func_start MOD14_021DF324
+MOD14_021DF324: ; 0x021DF324
+ push {r4, r5, lr}
+ sub sp, #0x1c
+ add r5, r0, #0
+ ldr r0, [r5, #4]
+ bl FUN_0202011C
+ add r3, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0x10
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ add r1, r5, #0
+ str r0, [r2]
+ ldr r0, [r5, #0x48]
+ add r1, #0x4c
+ mov r2, #1
+ bl MOD14_021E08E4
+ mov r0, #0x79
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl MOD14_021DC458
+ add r4, r0, #0
+ ldr r0, [r5, #4]
+ bl FUN_02020240
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldr r0, _021DF398 ; =0x000004D8
+ add r1, r4, #0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0x4c
+ str r0, [sp, #0xc]
+ ldr r3, [sp, #0x14]
+ ldr r2, [sp, #0x10]
+ asr r3, r3, #0xc
+ ldr r0, [r5, #0x48]
+ asr r2, r2, #0xc
+ add r3, r3, #4
+ bl MOD14_021E0940
+ ldr r1, _021DF39C ; =0x00000664
+ mov r0, #0
+ str r0, [r5, r1]
+ add r0, r1, #4
+ ldr r2, _021DF3A0 ; =0xFFFFC000
+ add r1, #0xf0
+ str r2, [r5, r0]
+ mov r2, #1
+ ldr r0, _021DF3A4 ; =0x0000078C
+ str r2, [r5, r1]
+ strb r2, [r5, r0]
+ add sp, #0x1c
+ pop {r4, r5, pc}
+ nop
+_021DF398: .word 0x000004D8
+_021DF39C: .word 0x00000664
+_021DF3A0: .word 0xFFFFC000
+_021DF3A4: .word 0x0000078C
+
+ thumb_func_start MOD14_021DF3A8
+MOD14_021DF3A8: ; 0x021DF3A8
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x14]
+ cmp r0, #0
+ beq _021DF3BA
+ bl FUN_02016A18
+ mov r0, #0
+ str r0, [r4, #0x14]
+_021DF3BA:
+ ldr r0, [r4, #0x18]
+ cmp r0, #0
+ beq _021DF3C8
+ bl FUN_02016A18
+ mov r0, #0
+ str r0, [r4, #0x18]
+_021DF3C8:
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ beq _021DF3D6
+ bl FUN_0201FFC8
+ mov r0, #0
+ str r0, [r4, #4]
+_021DF3D6:
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ beq _021DF3E4
+ bl FUN_0201FFC8
+ mov r0, #0
+ str r0, [r4, #8]
+_021DF3E4:
+ ldr r0, [r4, #0xc]
+ cmp r0, #0
+ beq _021DF3F2
+ bl FUN_0201FFC8
+ mov r0, #0
+ str r0, [r4, #0xc]
+_021DF3F2:
+ ldr r0, [r4, #0x10]
+ cmp r0, #0
+ beq _021DF400
+ bl FUN_0201FFC8
+ mov r0, #0
+ str r0, [r4, #0x10]
+_021DF400:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DF404
+MOD14_021DF404: ; 0x021DF404
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ mov r0, #0
+ add r5, r1, #0
+ str r0, [r2]
+ str r0, [r5]
+ ldr r0, _021DF47C ; =0x00000785
+ ldrb r1, [r4, r0]
+ cmp r1, #4
+ bhi _021DF478
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021DF424: ; jump table
+ .short _021DF42E - _021DF424 - 2 ; case 0
+ .short _021DF478 - _021DF424 - 2 ; case 1
+ .short _021DF458 - _021DF424 - 2 ; case 2
+ .short _021DF46C - _021DF424 - 2 ; case 3
+ .short _021DF46C - _021DF424 - 2 ; case 4
+_021DF42E:
+ add r1, r0, #1
+ ldrb r1, [r4, r1]
+ cmp r1, #0
+ bne _021DF478
+ add r0, #0xb
+ ldr r0, [r4, r0]
+ bl MOD14_021DC3D0
+ ldr r1, _021DF480 ; =0x00000789
+ ldrsb r1, [r4, r1]
+ cmp r1, #0
+ bne _021DF44A
+ cmp r0, #5
+ beq _021DF452
+_021DF44A:
+ cmp r1, #5
+ bne _021DF478
+ cmp r0, #0
+ bne _021DF478
+_021DF452:
+ mov r0, #1
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021DF458:
+ add r0, r0, #1
+ ldrb r0, [r4, r0]
+ add r0, #0xfd
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #1
+ bhi _021DF478
+ mov r0, #1
+ str r0, [r2]
+ pop {r3, r4, r5, pc}
+_021DF46C:
+ add r0, r0, #1
+ ldrb r0, [r4, r0]
+ cmp r0, #2
+ bne _021DF478
+ mov r0, #1
+ str r0, [r2]
+_021DF478:
+ pop {r3, r4, r5, pc}
+ nop
+_021DF47C: .word 0x00000785
+_021DF480: .word 0x00000789
+
+ thumb_func_start MOD14_021DF484
+MOD14_021DF484: ; 0x021DF484
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ ldr r2, _021DF584 ; =0x0000076C
+ add r5, r0, #0
+ add r1, r2, #4
+ add r0, r5, r2
+ add r2, #0x1a
+ add r1, r5, r1
+ add r2, r5, r2
+ add r3, r5, #0
+ bl MOD14_021E0264
+ add r0, r5, #0
+ add r1, sp, #4
+ add r2, sp, #0
+ bl MOD14_021DF404
+ ldr r0, _021DF588 ; =0x00000786
+ ldrb r0, [r5, r0]
+ cmp r0, #0
+ beq _021DF4B6
+ ldr r0, [r5, #8]
+ mov r1, #0
+ bl FUN_020200A0
+_021DF4B6:
+ ldr r1, _021DF58C ; =0x00000764
+ ldr r0, [r5, r1]
+ lsl r2, r0, #0xc
+ add r0, r1, #0
+ add r0, #0x10
+ str r2, [r5, r0]
+ add r0, r1, #4
+ ldr r0, [r5, r0]
+ lsl r2, r0, #0xc
+ add r0, r1, #0
+ add r0, #0x14
+ str r2, [r5, r0]
+ add r0, r1, #0
+ add r0, #8
+ ldr r6, [r5, r0]
+ add r0, r1, #0
+ add r0, #0xc
+ ldr r2, [r5, r0]
+ ldr r7, [sp, #4]
+ lsl r4, r6, #0xc
+ lsl r0, r2, #0xc
+ cmp r7, #0
+ bne _021DF4EC
+ add r1, #0x10
+ ldr r1, [r5, r1]
+ sub r1, r4, r1
+ b _021DF514
+_021DF4EC:
+ add r3, r1, #0
+ add r3, #0x10
+ ldr r3, [r5, r3]
+ cmp r4, r3
+ ble _021DF506
+ mov r3, #0x11
+ ldr r1, [r5, r1]
+ lsl r3, r3, #4
+ sub r3, r3, r6
+ sub r1, #0x46
+ add r1, r3, r1
+ neg r1, r1
+ b _021DF512
+_021DF506:
+ ldr r3, [r5, r1]
+ mov r1, #0x11
+ lsl r1, r1, #4
+ sub r1, r1, r3
+ sub r6, #0x46
+ add r1, r1, r6
+_021DF512:
+ lsl r1, r1, #0xc
+_021DF514:
+ ldr r3, [sp]
+ cmp r3, #0
+ bne _021DF522
+ ldr r2, _021DF590 ; =0x00000778
+ ldr r2, [r5, r2]
+ sub r4, r0, r2
+ b _021DF548
+_021DF522:
+ ldr r4, _021DF590 ; =0x00000778
+ ldr r6, [r5, r4]
+ cmp r0, r6
+ ble _021DF53A
+ mov r0, #0xd0
+ sub r4, #0x10
+ sub r2, r0, r2
+ ldr r0, [r5, r4]
+ add r0, #0x18
+ add r0, r2, r0
+ neg r4, r0
+ b _021DF546
+_021DF53A:
+ sub r4, #0x10
+ ldr r4, [r5, r4]
+ mov r0, #0xd0
+ sub r0, r0, r4
+ add r2, #0x18
+ add r4, r0, r2
+_021DF546:
+ lsl r4, r4, #0xc
+_021DF548:
+ cmp r7, #0
+ bne _021DF550
+ cmp r3, #0
+ beq _021DF554
+_021DF550:
+ mov r6, #0xc
+ b _021DF556
+_021DF554:
+ mov r6, #6
+_021DF556:
+ add r0, r1, #0
+ add r1, r6, #0
+ bl _s32_div_f
+ ldr r1, _021DF594 ; =0x0000077C
+ str r0, [r5, r1]
+ add r0, r4, #0
+ add r1, r6, #0
+ bl _s32_div_f
+ mov r1, #0x1e
+ lsl r1, r1, #6
+ str r0, [r5, r1]
+ add r0, r1, #7
+ strb r6, [r5, r0]
+ ldr r0, _021DF598 ; =MOD14_021DF5B0
+ add r1, r5, #0
+ mov r2, #0
+ bl MOD14_021DDD40
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021DF584: .word 0x0000076C
+_021DF588: .word 0x00000786
+_021DF58C: .word 0x00000764
+_021DF590: .word 0x00000778
+_021DF594: .word 0x0000077C
+_021DF598: .word MOD14_021DF5B0
+
+ thumb_func_start MOD14_021DF59C
+MOD14_021DF59C: ; 0x021DF59C
+ ldr r1, _021DF5AC ; =0x00000787
+ ldrb r0, [r0, r1]
+ cmp r0, #0
+ bne _021DF5A8
+ mov r0, #1
+ bx lr
+_021DF5A8:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+_021DF5AC: .word 0x00000787
+
+ thumb_func_start MOD14_021DF5B0
+MOD14_021DF5B0: ; 0x021DF5B0
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r1, #0
+ ldr r0, _021DF72C ; =0x00000787
+ str r1, [sp, #8]
+ ldrb r2, [r4, r0]
+ cmp r2, #0
+ beq _021DF68A
+ add r1, r0, #0
+ sub r1, #0x13
+ ldr r2, [r4, r1]
+ add r1, r0, #0
+ sub r1, #0xb
+ ldr r1, [r4, r1]
+ add r2, r2, r1
+ add r1, r0, #0
+ sub r1, #0x13
+ str r2, [r4, r1]
+ add r1, r0, #0
+ sub r1, #0xb
+ ldr r1, [r4, r1]
+ cmp r1, #0
+ ble _021DF5F8
+ add r1, r0, #0
+ sub r1, #0x13
+ ldr r2, [r4, r1]
+ mov r1, #0x11
+ lsl r1, r1, #0x10
+ cmp r2, r1
+ ble _021DF5F8
+ ldr r1, _021DF730 ; =0x00156000
+ sub r0, #0x13
+ sub r1, r1, r2
+ str r1, [r4, r0]
+_021DF5F8:
+ ldr r1, _021DF734 ; =0x0000077C
+ ldr r0, [r4, r1]
+ cmp r0, #0
+ bge _021DF61A
+ add r0, r1, #0
+ sub r0, #8
+ ldr r2, [r4, r0]
+ mov r0, #0x46
+ lsl r0, r0, #0xc
+ cmp r2, r0
+ bge _021DF61A
+ sub r2, r0, r2
+ mov r0, #0x11
+ lsl r0, r0, #0x10
+ sub r0, r0, r2
+ sub r1, #8
+ str r0, [r4, r1]
+_021DF61A:
+ ldr r1, _021DF738 ; =0x00000778
+ add r0, r1, #0
+ add r0, #8
+ ldr r2, [r4, r1]
+ ldr r0, [r4, r0]
+ add r0, r2, r0
+ str r0, [r4, r1]
+ add r0, r1, #0
+ add r0, #8
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ ble _021DF644
+ mov r0, #0xd
+ ldr r2, [r4, r1]
+ lsl r0, r0, #0x10
+ cmp r2, r0
+ ble _021DF644
+ mov r0, #0x2e
+ lsl r0, r0, #0xe
+ sub r0, r0, r2
+ str r0, [r4, r1]
+_021DF644:
+ mov r1, #0x1e
+ lsl r1, r1, #6
+ ldr r0, [r4, r1]
+ cmp r0, #0
+ bge _021DF666
+ add r0, r1, #0
+ sub r0, #8
+ ldr r2, [r4, r0]
+ ldr r0, _021DF73C ; =0xFFFE8000
+ cmp r2, r0
+ bge _021DF666
+ sub r2, r0, r2
+ mov r0, #0xd
+ lsl r0, r0, #0x10
+ sub r0, r0, r2
+ sub r1, #8
+ str r0, [r4, r1]
+_021DF666:
+ ldr r0, _021DF740 ; =0x00000774
+ ldr r1, [r4, r0]
+ add r0, r0, #4
+ str r1, [sp]
+ ldr r0, [r4, r0]
+ add r1, sp, #0
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ bl MOD14_021E0320
+ ldr r0, _021DF72C ; =0x00000787
+ add sp, #0xc
+ ldrb r1, [r4, r0]
+ sub r1, r1, #1
+ strb r1, [r4, r0]
+ pop {r4, r5, pc}
+_021DF68A:
+ add r2, r0, #0
+ sub r2, #0x1b
+ ldr r2, [r4, r2]
+ sub r0, #0x17
+ lsl r2, r2, #0xc
+ str r2, [sp]
+ ldr r0, [r4, r0]
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ add r0, r4, #0
+ add r1, sp, #0
+ bl MOD14_021E0320
+ ldr r0, _021DF744 ; =0x0000076C
+ add r1, r0, #0
+ ldr r2, [r4, r0]
+ sub r1, #8
+ str r2, [r4, r1]
+ add r1, r0, #4
+ ldr r2, [r4, r1]
+ sub r1, r0, #4
+ str r2, [r4, r1]
+ add r1, r0, #0
+ add r1, #0x1a
+ ldrb r2, [r4, r1]
+ add r1, r0, #0
+ add r1, #0x19
+ strb r2, [r4, r1]
+ add r0, #0x24
+ ldr r0, [r4, r0]
+ bl MOD14_021DC3D0
+ ldr r1, _021DF748 ; =0x00000789
+ strb r0, [r4, r1]
+ add r0, r1, #7
+ ldr r0, [r4, r0]
+ bl MOD14_021DC3D8
+ ldr r1, _021DF74C ; =0x0000078A
+ strb r0, [r4, r1]
+ add r0, r1, #6
+ ldr r0, [r4, r0]
+ bl MOD14_021DC3E8
+ ldr r1, _021DF750 ; =0x0000078B
+ strb r0, [r4, r1]
+ sub r0, r1, #5
+ ldrb r0, [r4, r0]
+ cmp r0, #0
+ bne _021DF6F8
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl FUN_020200A0
+_021DF6F8:
+ ldr r0, _021DF754 ; =0x00000786
+ ldrb r0, [r4, r0]
+ cmp r0, #2
+ ldr r0, [r4, #0xc]
+ beq _021DF712
+ mov r1, #6
+ bl FUN_02020130
+ ldr r0, [r4, #0x10]
+ mov r1, #7
+ bl FUN_02020130
+ b _021DF720
+_021DF712:
+ mov r1, #8
+ bl FUN_02020130
+ ldr r0, [r4, #0x10]
+ mov r1, #9
+ bl FUN_02020130
+_021DF720:
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ add sp, #0xc
+ pop {r4, r5, pc}
+ nop
+_021DF72C: .word 0x00000787
+_021DF730: .word 0x00156000
+_021DF734: .word 0x0000077C
+_021DF738: .word 0x00000778
+_021DF73C: .word 0xFFFE8000
+_021DF740: .word 0x00000774
+_021DF744: .word 0x0000076C
+_021DF748: .word 0x00000789
+_021DF74C: .word 0x0000078A
+_021DF750: .word 0x0000078B
+_021DF754: .word 0x00000786
+
+ thumb_func_start MOD14_021DF758
+MOD14_021DF758: ; 0x021DF758
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_02020130
+ mov r1, #2
+ mov r0, #0x1e
+ lsl r1, r1, #0xc
+ lsl r0, r0, #6
+ str r1, [r4, r0]
+ add r1, r0, #0
+ sub r1, #0x18
+ ldr r2, [r4, r1]
+ add r1, r0, #0
+ add r2, #0xc
+ sub r1, #0x10
+ str r2, [r4, r1]
+ add r1, r0, #7
+ mov r2, #6
+ strb r2, [r4, r1]
+ mov r1, #0
+ add r0, r0, #4
+ strb r1, [r4, r0]
+ add r0, r4, #0
+ bl MOD14_021E03CC
+ ldr r0, _021DF79C ; =MOD14_021DF7B4
+ add r1, r4, #0
+ mov r2, #0
+ bl MOD14_021DDD40
+ pop {r4, pc}
+ nop
+_021DF79C: .word MOD14_021DF7B4
+
+ thumb_func_start MOD14_021DF7A0
+MOD14_021DF7A0: ; 0x021DF7A0
+ ldr r1, _021DF7B0 ; =0x00000784
+ ldrb r0, [r0, r1]
+ cmp r0, #0xff
+ bne _021DF7AC
+ mov r0, #1
+ bx lr
+_021DF7AC:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+_021DF7B0: .word 0x00000784
+
+ thumb_func_start MOD14_021DF7B4
+MOD14_021DF7B4: ; 0x021DF7B4
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ bl FUN_0202011C
+ add r6, r0, #0
+ add r3, sp, #0
+ ldmia r6!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r6]
+ ldr r1, _021DF888 ; =0x00000784
+ str r0, [r3]
+ ldrb r0, [r4, r1]
+ cmp r0, #0
+ beq _021DF7E0
+ cmp r0, #1
+ beq _021DF83C
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+_021DF7E0:
+ add r0, r1, #0
+ mov r3, #0
+ add r0, #0xa
+ strb r3, [r4, r0]
+ add r0, r1, #3
+ ldrb r0, [r4, r0]
+ cmp r0, #0
+ beq _021DF80E
+ sub r0, r1, #4
+ ldr r3, [sp, #4]
+ ldr r0, [r4, r0]
+ add r1, r2, #0
+ add r0, r3, r0
+ str r0, [sp, #4]
+ add r0, r4, #0
+ bl MOD14_021E0320
+ ldr r0, _021DF88C ; =0x00000787
+ add sp, #0xc
+ ldrb r1, [r4, r0]
+ sub r1, r1, #1
+ strb r1, [r4, r0]
+ pop {r3, r4, r5, r6, pc}
+_021DF80E:
+ sub r1, #0x14
+ ldr r0, [r4, r1]
+ add r1, r2, #0
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ add r0, r4, #0
+ bl MOD14_021E0320
+ ldr r0, [r4, #4]
+ mov r1, #2
+ bl FUN_02020130
+ add r0, r4, #0
+ bl MOD14_021E0554
+ ldr r0, _021DF88C ; =0x00000787
+ mov r1, #6
+ strb r1, [r4, r0]
+ sub r1, r0, #3
+ ldrb r1, [r4, r1]
+ sub r0, r0, #3
+ add r1, r1, #1
+ strb r1, [r4, r0]
+_021DF83C:
+ ldr r0, _021DF88C ; =0x00000787
+ ldrb r1, [r4, r0]
+ cmp r1, #0
+ beq _021DF862
+ sub r0, r0, #7
+ ldr r1, [sp, #4]
+ ldr r0, [r4, r0]
+ sub r0, r1, r0
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r1, sp, #0
+ bl MOD14_021E0320
+ ldr r0, _021DF88C ; =0x00000787
+ add sp, #0xc
+ ldrb r1, [r4, r0]
+ sub r1, r1, #1
+ strb r1, [r4, r0]
+ pop {r3, r4, r5, r6, pc}
+_021DF862:
+ sub r0, #0x1f
+ ldr r0, [r4, r0]
+ add r1, sp, #0
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ add r0, r4, #0
+ bl MOD14_021E0320
+ ldr r0, _021DF888 ; =0x00000784
+ mov r1, #0xff
+ strb r1, [r4, r0]
+ mov r1, #1
+ add r0, #0xa
+ strb r1, [r4, r0]
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_021DF888: .word 0x00000784
+_021DF88C: .word 0x00000787
+
+ thumb_func_start MOD14_021DF890
+MOD14_021DF890: ; 0x021DF890
+ add r1, r0, #0
+ mov r2, #2
+ mov r0, #0x1e
+ lsl r2, r2, #0xc
+ lsl r0, r0, #6
+ str r2, [r1, r0]
+ add r2, r0, #0
+ sub r2, #0x18
+ ldr r3, [r1, r2]
+ add r2, r0, #0
+ add r3, #0xc
+ sub r2, #0x10
+ str r3, [r1, r2]
+ add r2, r0, #7
+ mov r3, #6
+ strb r3, [r1, r2]
+ ldr r3, _021DF8BC ; =MOD14_021DDD40
+ mov r2, #0
+ add r0, r0, #4
+ strb r2, [r1, r0]
+ ldr r0, _021DF8C0 ; =MOD14_021DF8F8
+ bx r3
+ .align 2, 0
+_021DF8BC: .word MOD14_021DDD40
+_021DF8C0: .word MOD14_021DF8F8
+
+ thumb_func_start MOD14_021DF8C4
+MOD14_021DF8C4: ; 0x021DF8C4
+ push {r4, lr}
+ ldr r1, _021DF8F0 ; =0x00000784
+ add r4, r0, #0
+ ldrb r1, [r4, r1]
+ cmp r1, #0xff
+ bne _021DF8EC
+ bl MOD14_021E0588
+ ldr r2, _021DF8F4 ; =0x00000754
+ add r1, r4, #0
+ ldr r0, [r4, #0x48]
+ ldr r2, [r4, r2]
+ add r1, #0x4c
+ bl MOD14_021E08E4
+ ldr r0, _021DF8F4 ; =0x00000754
+ mov r1, #0
+ str r1, [r4, r0]
+ mov r0, #1
+ pop {r4, pc}
+_021DF8EC:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_021DF8F0: .word 0x00000784
+_021DF8F4: .word 0x00000754
+
+ thumb_func_start MOD14_021DF8F8
+MOD14_021DF8F8: ; 0x021DF8F8
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ bl FUN_0202011C
+ add r6, r0, #0
+ add r3, sp, #0
+ ldmia r6!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r6]
+ ldr r1, _021DF9D4 ; =0x00000784
+ str r0, [r3]
+ ldrb r0, [r4, r1]
+ cmp r0, #0
+ beq _021DF924
+ cmp r0, #1
+ beq _021DF980
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+_021DF924:
+ add r0, r1, #0
+ mov r3, #0
+ add r0, #0xa
+ strb r3, [r4, r0]
+ add r0, r1, #3
+ ldrb r0, [r4, r0]
+ cmp r0, #0
+ beq _021DF952
+ sub r0, r1, #4
+ ldr r3, [sp, #4]
+ ldr r0, [r4, r0]
+ add r1, r2, #0
+ add r0, r3, r0
+ str r0, [sp, #4]
+ add r0, r4, #0
+ bl MOD14_021E0320
+ ldr r0, _021DF9D8 ; =0x00000787
+ add sp, #0xc
+ ldrb r1, [r4, r0]
+ sub r1, r1, #1
+ strb r1, [r4, r0]
+ pop {r3, r4, r5, r6, pc}
+_021DF952:
+ sub r1, #0x14
+ ldr r0, [r4, r1]
+ add r1, r2, #0
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ add r0, r4, #0
+ bl MOD14_021E0320
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_02020130
+ add r0, r4, #0
+ bl MOD14_021E0714
+ ldr r0, _021DF9D8 ; =0x00000787
+ mov r1, #6
+ strb r1, [r4, r0]
+ sub r1, r0, #3
+ ldrb r1, [r4, r1]
+ sub r0, r0, #3
+ add r1, r1, #1
+ strb r1, [r4, r0]
+_021DF980:
+ ldr r0, _021DF9D8 ; =0x00000787
+ ldrb r1, [r4, r0]
+ cmp r1, #0
+ beq _021DF9A6
+ sub r0, r0, #7
+ ldr r1, [sp, #4]
+ ldr r0, [r4, r0]
+ sub r0, r1, r0
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r1, sp, #0
+ bl MOD14_021E0320
+ ldr r0, _021DF9D8 ; =0x00000787
+ add sp, #0xc
+ ldrb r1, [r4, r0]
+ sub r1, r1, #1
+ strb r1, [r4, r0]
+ pop {r3, r4, r5, r6, pc}
+_021DF9A6:
+ sub r0, #0x1f
+ ldr r0, [r4, r0]
+ add r1, sp, #0
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ add r0, r4, #0
+ bl MOD14_021E0320
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl FUN_02020130
+ ldr r0, _021DF9D4 ; =0x00000784
+ mov r1, #0xff
+ strb r1, [r4, r0]
+ mov r1, #1
+ add r0, #0xa
+ strb r1, [r4, r0]
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_021DF9D4: .word 0x00000784
+_021DF9D8: .word 0x00000787
+
+ thumb_func_start MOD14_021DF9DC
+MOD14_021DF9DC: ; 0x021DF9DC
+ push {r4, r5, lr}
+ sub sp, #0x1c
+ add r5, r0, #0
+ ldr r0, [r5, #4]
+ mov r1, #1
+ bl FUN_02020130
+ ldr r0, _021DFA50 ; =0x00000788
+ mov r1, #0
+ strb r1, [r5, r0]
+ add r0, r5, #0
+ bl MOD14_021E0740
+ add r4, r0, #0
+ bl FUN_0202011C
+ add r3, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0x10
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ add r0, r4, #0
+ bl FUN_0202032C
+ str r0, [sp]
+ ldr r1, [r5, #0x4c]
+ ldr r2, [sp, #0x14]
+ add r0, r5, #0
+ mov r3, #1
+ bl MOD14_021DFA7C
+ ldr r0, [r5, #0x4c]
+ bl FUN_0202011C
+ add r3, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #4
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ ldr r0, [r5, #0x4c]
+ bl FUN_0202032C
+ str r0, [sp]
+ mov r3, #0
+ ldr r2, [sp, #8]
+ add r0, r5, #0
+ add r1, r4, #0
+ mvn r3, r3
+ bl MOD14_021DFA7C
+ ldr r0, _021DFA54 ; =0x00000784
+ mov r1, #0
+ strb r1, [r5, r0]
+ add sp, #0x1c
+ pop {r4, r5, pc}
+ nop
+_021DFA50: .word 0x00000788
+_021DFA54: .word 0x00000784
+
+ thumb_func_start MOD14_021DFA58
+MOD14_021DFA58: ; 0x021DFA58
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD14_021DFB08
+ cmp r0, #0
+ beq _021DFA76
+ ldr r0, [r4, #4]
+ mov r1, #2
+ bl FUN_02020130
+ add r0, r4, #0
+ bl MOD14_021E062C
+ mov r0, #1
+ pop {r4, pc}
+_021DFA76:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DFA7C
+MOD14_021DFA7C: ; 0x021DFA7C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #0xa
+ mov r1, #0x2c
+ add r7, r2, #0
+ str r3, [sp]
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _021DFAFC
+ add r0, r6, #0
+ bl FUN_0202011C
+ add r3, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #4
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ mov r1, #0xc
+ str r0, [r2]
+ str r6, [r4]
+ strh r1, [r4, #4]
+ mov r0, #6
+ strh r0, [r4, #6]
+ ldr r0, [sp, #0x28]
+ str r0, [r4, #8]
+ ldr r0, [sp, #8]
+ str r0, [r4, #0xc]
+ ldr r0, [sp, #4]
+ str r0, [r4, #0x14]
+ str r7, [r4, #0x10]
+ mov r0, #0
+ str r0, [r4, #0x18]
+ ldr r0, [sp]
+ add r2, r0, #0
+ mul r2, r1
+ str r2, [r4, #0x24]
+ ldr r2, [r4, #0x10]
+ ldr r0, [r4, #0xc]
+ sub r0, r2, r0
+ bl _s32_div_f
+ str r0, [r4, #0x1c]
+ mov r0, #0xf
+ lsl r0, r0, #0xc
+ str r0, [r4, #0x20]
+ ldr r0, _021DFB00 ; =MOD14_021DFB28
+ add r1, r4, #0
+ mov r2, #0
+ str r5, [r4, #0x28]
+ bl MOD14_021DDD40
+ cmp r0, #0
+ beq _021DFAF6
+ ldr r0, _021DFB04 ; =0x00000788
+ mov r1, #1
+ add sp, #0x10
+ strb r1, [r5, r0]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DFAF6:
+ add r0, r4, #0
+ bl FUN_02016A18
+_021DFAFC:
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DFB00: .word MOD14_021DFB28
+_021DFB04: .word 0x00000788
+
+ thumb_func_start MOD14_021DFB08
+MOD14_021DFB08: ; 0x021DFB08
+ ldr r1, _021DFB18 ; =0x00000788
+ ldrb r0, [r0, r1]
+ cmp r0, #0
+ bne _021DFB14
+ mov r0, #1
+ bx lr
+_021DFB14:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+_021DFB18: .word 0x00000788
+
+ thumb_func_start MOD14_021DFB1C
+MOD14_021DFB1C: ; 0x021DFB1C
+ ldr r1, _021DFB24 ; =0x00000788
+ mov r2, #0
+ strb r2, [r0, r1]
+ bx lr
+ .align 2, 0
+_021DFB24: .word 0x00000788
+
+ thumb_func_start MOD14_021DFB28
+MOD14_021DFB28: ; 0x021DFB28
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl FUN_0202011C
+ add r6, r0, #0
+ add r3, sp, #0
+ ldmia r6!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r6]
+ str r0, [r3]
+ ldrh r0, [r4, #4]
+ cmp r0, #0
+ beq _021DFB90
+ sub r0, r0, #1
+ strh r0, [r4, #4]
+ ldrh r1, [r4, #4]
+ ldrh r0, [r4, #6]
+ cmp r1, r0
+ bne _021DFB5E
+ ldr r0, [r4]
+ ldr r1, [r4, #8]
+ bl MOD14_021DDE24
+_021DFB5E:
+ ldr r1, [r4, #0xc]
+ ldr r0, [r4, #0x1c]
+ add r0, r1, r0
+ str r0, [r4, #0xc]
+ str r0, [sp, #4]
+ ldr r1, [r4, #0x18]
+ ldr r0, [r4, #0x20]
+ add r0, r1, r0
+ str r0, [r4, #0x18]
+ lsl r0, r0, #4
+ lsr r0, r0, #0x10
+ bl FUN_0201B93C
+ ldr r1, [r4, #0x24]
+ add r2, r1, #0
+ mul r2, r0
+ ldr r0, [r4, #0x14]
+ add r1, sp, #0
+ add r0, r0, r2
+ str r0, [sp]
+ ldr r0, [r4]
+ bl FUN_02020044
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+_021DFB90:
+ ldr r0, [r4, #0x14]
+ add r1, r2, #0
+ str r0, [sp]
+ ldr r0, [r4, #0x10]
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ bl FUN_02020044
+ ldr r1, _021DFBB4 ; =MOD14_021DFB1C
+ ldr r2, [r4, #0x28]
+ add r0, r4, #0
+ bl MOD14_021DDF30
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_021DFBB4: .word MOD14_021DFB1C
+
+ thumb_func_start MOD14_021DFBB8
+MOD14_021DFBB8: ; 0x021DFBB8
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ ldr r0, _021DFC1C ; =0x0000078C
+ ldrb r1, [r4, r0]
+ cmp r1, #0
+ bne _021DFBD6
+ add r0, r0, #1
+ ldrb r0, [r4, r0]
+ cmp r0, #0
+ bne _021DFBD6
+ ldr r0, [r4, #4]
+ mov r1, #3
+ bl FUN_02020130
+_021DFBD6:
+ ldr r0, [r4, #4]
+ bl FUN_0202011C
+ add r5, r0, #0
+ add r3, sp, #0
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ str r0, [r3]
+ mov r0, #2
+ ldr r1, [sp, #4]
+ lsl r0, r0, #0xc
+ sub r0, r1, r0
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r1, r2, #0
+ bl MOD14_021E0320
+ ldr r0, _021DFC20 ; =0x00000784
+ mov r2, #0
+ strb r2, [r4, r0]
+ add r0, r0, #3
+ strb r2, [r4, r0]
+ ldr r0, _021DFC24 ; =MOD14_021DFC40
+ add r1, r4, #0
+ bl MOD14_021DDD40
+ cmp r0, #0
+ beq _021DFC18
+ ldr r0, _021DFC28 ; =0x00000788
+ mov r1, #1
+ strb r1, [r4, r0]
+_021DFC18:
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_021DFC1C: .word 0x0000078C
+_021DFC20: .word 0x00000784
+_021DFC24: .word MOD14_021DFC40
+_021DFC28: .word 0x00000788
+
+ thumb_func_start MOD14_021DFC2C
+MOD14_021DFC2C: ; 0x021DFC2C
+ ldr r1, _021DFC3C ; =0x00000788
+ ldrb r0, [r0, r1]
+ cmp r0, #0
+ bne _021DFC38
+ mov r0, #1
+ bx lr
+_021DFC38:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+_021DFC3C: .word 0x00000788
+
+ thumb_func_start MOD14_021DFC40
+MOD14_021DFC40: ; 0x021DFC40
+ push {r4, r5, r6, lr}
+ sub sp, #0x18
+ add r4, r1, #0
+ ldr r1, _021DFD18 ; =0x00000784
+ add r5, r0, #0
+ ldrb r0, [r4, r1]
+ cmp r0, #0
+ beq _021DFC58
+ cmp r0, #1
+ beq _021DFCBE
+ add sp, #0x18
+ pop {r4, r5, r6, pc}
+_021DFC58:
+ add r0, r1, #3
+ ldrb r0, [r4, r0]
+ add r2, r0, #1
+ add r0, r1, #3
+ strb r2, [r4, r0]
+ ldrb r0, [r4, r0]
+ cmp r0, #4
+ blo _021DFD14
+ ldr r0, [r4, #4]
+ bl FUN_0202011C
+ add r3, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0xc
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ ldr r0, [sp, #0x10]
+ mov r2, #3
+ asr r0, r0, #0xc
+ add r1, r0, #6
+ mov r0, #0x77
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ add r1, r0, #0
+ lsl r2, r2, #0xc
+ add r1, #0x10
+ str r2, [r4, r1]
+ add r1, r0, #0
+ mov r2, #2
+ add r1, #0x17
+ strb r2, [r4, r1]
+ add r1, r0, #0
+ add r1, #0x1c
+ ldrb r1, [r4, r1]
+ cmp r1, #0
+ bne _021DFCB2
+ add r0, #0x1d
+ ldrb r0, [r4, r0]
+ cmp r0, #0
+ bne _021DFCB2
+ ldr r0, [r4, #4]
+ mov r1, #4
+ bl FUN_02020130
+_021DFCB2:
+ ldr r0, _021DFD18 ; =0x00000784
+ add sp, #0x18
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ pop {r4, r5, r6, pc}
+_021DFCBE:
+ ldr r0, [r4, #4]
+ bl FUN_0202011C
+ add r6, r0, #0
+ add r3, sp, #0
+ ldmia r6!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r6]
+ str r0, [r3]
+ ldr r0, _021DFD1C ; =0x00000787
+ ldrb r1, [r4, r0]
+ cmp r1, #0
+ beq _021DFCF8
+ sub r0, r0, #7
+ ldr r1, [sp, #4]
+ ldr r0, [r4, r0]
+ add r0, r1, r0
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r1, r2, #0
+ bl MOD14_021E0320
+ ldr r0, _021DFD1C ; =0x00000787
+ add sp, #0x18
+ ldrb r1, [r4, r0]
+ sub r1, r1, #1
+ strb r1, [r4, r0]
+ pop {r4, r5, r6, pc}
+_021DFCF8:
+ sub r0, #0x17
+ ldr r0, [r4, r0]
+ add r1, r2, #0
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ add r0, r4, #0
+ bl MOD14_021E0320
+ ldr r0, _021DFD20 ; =0x00000788
+ mov r1, #0
+ strb r1, [r4, r0]
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_021DFD14:
+ add sp, #0x18
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021DFD18: .word 0x00000784
+_021DFD1C: .word 0x00000787
+_021DFD20: .word 0x00000788
+
+ thumb_func_start MOD14_021DFD24
+MOD14_021DFD24: ; 0x021DFD24
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ bl FUN_0202011C
+ add r3, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ mov r1, #0x77
+ str r0, [r2]
+ ldr r0, [sp, #4]
+ lsl r1, r1, #4
+ asr r0, r0, #0xc
+ sub r0, r0, #4
+ str r0, [r4, r1]
+ add r0, r1, #0
+ ldr r2, _021DFD74 ; =0xFFFFF000
+ add r0, #0x10
+ str r2, [r4, r0]
+ add r0, r1, #0
+ mov r2, #4
+ add r0, #0x17
+ strb r2, [r4, r0]
+ mov r2, #0
+ add r1, #0x14
+ strb r2, [r4, r1]
+ ldr r0, _021DFD78 ; =MOD14_021DFDBC
+ add r1, r4, #0
+ bl MOD14_021DDD40
+ cmp r0, #0
+ beq _021DFD70
+ ldr r0, _021DFD7C ; =0x00000788
+ mov r1, #1
+ strb r1, [r4, r0]
+_021DFD70:
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+_021DFD74: .word 0xFFFFF000
+_021DFD78: .word MOD14_021DFDBC
+_021DFD7C: .word 0x00000788
+
+ thumb_func_start MOD14_021DFD80
+MOD14_021DFD80: ; 0x021DFD80
+ push {r4, lr}
+ ldr r1, _021DFDB8 ; =0x00000788
+ add r4, r0, #0
+ ldrb r0, [r4, r1]
+ cmp r0, #0
+ bne _021DFDB2
+ add r0, r1, #4
+ ldrb r0, [r4, r0]
+ cmp r0, #0
+ bne _021DFDAE
+ add r0, r1, #5
+ ldrb r0, [r4, r0]
+ cmp r0, #0
+ bne _021DFDAE
+ ldr r0, [r4, #4]
+ bl FUN_020201DC
+ cmp r0, #0
+ beq _021DFDAE
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl FUN_02020130
+_021DFDAE:
+ mov r0, #1
+ pop {r4, pc}
+_021DFDB2:
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_021DFDB8: .word 0x00000788
+
+ thumb_func_start MOD14_021DFDBC
+MOD14_021DFDBC: ; 0x021DFDBC
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ bl FUN_0202011C
+ add r6, r0, #0
+ add r3, sp, #0
+ ldmia r6!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r6]
+ str r0, [r3]
+ ldr r0, _021DFE20 ; =0x00000787
+ ldrb r1, [r4, r0]
+ cmp r1, #0
+ beq _021DFDFE
+ sub r0, r0, #7
+ ldr r1, [sp, #4]
+ ldr r0, [r4, r0]
+ add r0, r1, r0
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r1, r2, #0
+ bl MOD14_021E0320
+ ldr r0, _021DFE20 ; =0x00000787
+ add sp, #0xc
+ ldrb r1, [r4, r0]
+ sub r1, r1, #1
+ strb r1, [r4, r0]
+ pop {r3, r4, r5, r6, pc}
+_021DFDFE:
+ sub r0, #0x17
+ ldr r0, [r4, r0]
+ add r1, r2, #0
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ add r0, r4, #0
+ bl MOD14_021E0320
+ ldr r0, _021DFE24 ; =0x00000788
+ mov r1, #0
+ strb r1, [r4, r0]
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ nop
+_021DFE20: .word 0x00000787
+_021DFE24: .word 0x00000788
+
+ thumb_func_start MOD14_021DFE28
+MOD14_021DFE28: ; 0x021DFE28
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x79
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl MOD14_021DC424
+ mov r1, #0x79
+ lsl r1, r1, #4
+ mov r2, #0x11
+ ldr r3, [r4, r1]
+ lsl r2, r2, #4
+ ldrh r2, [r3, r2]
+ cmp r2, r0
+ bne _021DFE4E
+ sub r1, #0x38
+ ldr r0, [r4, r1]
+ bl MOD14_021DEA50
+_021DFE4E:
+ add r0, r4, #0
+ bl MOD14_021E0720
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl FUN_02020130
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DFE60
+MOD14_021DFE60: ; 0x021DFE60
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_02020130
+ add r1, r4, #0
+ ldr r0, [r4, #0x48]
+ add r1, #0x4c
+ mov r2, #1
+ bl MOD14_021E0C20
+ ldr r0, _021DFE80 ; =0x00000784
+ mov r1, #0
+ strb r1, [r4, r0]
+ pop {r4, pc}
+ .align 2, 0
+_021DFE80: .word 0x00000784
+
+ thumb_func_start MOD14_021DFE84
+MOD14_021DFE84: ; 0x021DFE84
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, _021DFF14 ; =0x00000794
+ ldr r0, [r5, r0]
+ bl MOD14_021DDEDC
+ ldr r1, _021DFF18 ; =0x00000784
+ add r4, r0, #0
+ ldrb r1, [r5, r1]
+ cmp r1, #0
+ beq _021DFEA4
+ cmp r1, #1
+ beq _021DFEBC
+ cmp r1, #2
+ beq _021DFEF6
+ b _021DFF10
+_021DFEA4:
+ add r1, r5, #0
+ ldr r0, [r5, #0x48]
+ add r1, #0x4c
+ bl MOD14_021E0C48
+ cmp r0, #0
+ beq _021DFF10
+ ldr r0, _021DFF18 ; =0x00000784
+ ldrb r1, [r5, r0]
+ add r1, r1, #1
+ strb r1, [r5, r0]
+ b _021DFF10
+_021DFEBC:
+ bl MOD14_021DA1B8
+ cmp r0, #0
+ beq _021DFF10
+ add r0, r4, #0
+ bl MOD14_021DA1C0
+ cmp r0, #0
+ beq _021DFEE0
+ ldr r0, [r5, #4]
+ mov r1, #0
+ bl FUN_02020130
+ add r0, r5, #0
+ bl MOD14_021E0720
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021DFEE0:
+ add r1, r5, #0
+ ldr r0, [r5, #0x48]
+ add r1, #0x4c
+ mov r2, #2
+ bl MOD14_021E0C20
+ ldr r0, _021DFF18 ; =0x00000784
+ ldrb r1, [r5, r0]
+ add r1, r1, #1
+ strb r1, [r5, r0]
+ b _021DFF10
+_021DFEF6:
+ add r1, r5, #0
+ ldr r0, [r5, #0x48]
+ add r1, #0x4c
+ bl MOD14_021E0C48
+ cmp r0, #0
+ beq _021DFF10
+ ldr r0, [r5, #4]
+ mov r1, #2
+ bl FUN_02020130
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021DFF10:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DFF14: .word 0x00000794
+_021DFF18: .word 0x00000784
+
+ thumb_func_start MOD14_021DFF1C
+MOD14_021DFF1C: ; 0x021DFF1C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_02020238
+ ldr r0, _021DFF4C ; =0x0000078C
+ ldrb r0, [r4, r0]
+ cmp r0, #0
+ beq _021DFF38
+ ldr r0, [r4, #0x4c]
+ mov r1, #1
+ bl FUN_02020238
+_021DFF38:
+ ldr r0, _021DFF50 ; =0x0000078D
+ ldrb r1, [r4, r0]
+ cmp r1, #0
+ beq _021DFF4A
+ sub r0, #0x2d
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl MOD14_021E501C
+_021DFF4A:
+ pop {r4, pc}
+ .align 2, 0
+_021DFF4C: .word 0x0000078C
+_021DFF50: .word 0x0000078D
+
+ thumb_func_start MOD14_021DFF54
+MOD14_021DFF54: ; 0x021DFF54
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ mov r1, #2
+ bl FUN_02020238
+ ldr r0, _021DFF84 ; =0x0000078C
+ ldrb r0, [r4, r0]
+ cmp r0, #0
+ beq _021DFF70
+ ldr r0, [r4, #0x4c]
+ mov r1, #2
+ bl FUN_02020238
+_021DFF70:
+ ldr r0, _021DFF88 ; =0x0000078D
+ ldrb r1, [r4, r0]
+ cmp r1, #0
+ beq _021DFF82
+ sub r0, #0x2d
+ ldr r0, [r4, r0]
+ mov r1, #2
+ bl MOD14_021E501C
+_021DFF82:
+ pop {r4, pc}
+ .align 2, 0
+_021DFF84: .word 0x0000078C
+_021DFF88: .word 0x0000078D
+
+ thumb_func_start MOD14_021DFF8C
+MOD14_021DFF8C: ; 0x021DFF8C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021DFFB0 ; =0x0000078C
+ ldrb r1, [r4, r0]
+ cmp r1, #0
+ beq _021DFFAC
+ add r0, r0, #4
+ ldr r0, [r4, r0]
+ bl MOD14_021DC45C
+ add r2, r0, #0
+ ldr r0, [r4, #0x48]
+ add r4, #0x4c
+ add r1, r4, #0
+ bl MOD14_021E0BA4
+_021DFFAC:
+ pop {r4, pc}
+ nop
+_021DFFB0: .word 0x0000078C
+
+ thumb_func_start MOD14_021DFFB4
+MOD14_021DFFB4: ; 0x021DFFB4
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x79
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl MOD14_021DC484
+ add r2, r0, #0
+ ldr r0, [r4, #0x4c]
+ cmp r0, #0
+ beq _021DFFD4
+ ldr r0, [r4, #0x48]
+ add r4, #0x4c
+ add r1, r4, #0
+ bl MOD14_021E0B54
+_021DFFD4:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DFFD8
+MOD14_021DFFD8: ; 0x021DFFD8
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x4c]
+ add r2, r1, #0
+ cmp r0, #0
+ beq _021E0004
+ add r1, r4, #0
+ ldr r0, [r4, #0x48]
+ add r1, #0x4c
+ bl MOD14_021E0BA8
+ mov r0, #0x79
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl MOD14_021DC484
+ add r2, r0, #0
+ ldr r0, [r4, #0x48]
+ add r4, #0x4c
+ add r1, r4, #0
+ bl MOD14_021E0B54
+_021E0004:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E0008
+MOD14_021E0008: ; 0x021E0008
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x79
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl MOD14_021DC49C
+ cmp r0, #0
+ ldr r0, [r4, #4]
+ beq _021E0024
+ mov r1, #1
+ bl FUN_02020248
+ pop {r4, pc}
+_021E0024:
+ mov r1, #0
+ bl FUN_02020248
+ pop {r4, pc}
+
+ thumb_func_start MOD14_021E002C
+MOD14_021E002C: ; 0x021E002C
+ ldr r3, _021E0034 ; =0x02020131
+ ldr r0, [r0, #4]
+ mov r1, #1
+ bx r3
+ .align 2, 0
+_021E0034: .word 0x02020131
+
+ thumb_func_start MOD14_021E0038
+MOD14_021E0038: ; 0x021E0038
+ push {r4, lr}
+ ldr r0, [r0, #4]
+ 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}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E0050
+MOD14_021E0050: ; 0x021E0050
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021E0074 ; =0x00000784
+ mov r2, #0
+ strb r2, [r4, r0]
+ ldr r0, _021E0078 ; =MOD14_021E0094
+ add r1, r4, #0
+ bl FUN_0200CA44
+ cmp r0, #0
+ beq _021E0070
+ ldr r0, _021E007C ; =0x0000078D
+ mov r1, #1
+ strb r1, [r4, r0]
+ sub r0, r0, #5
+ strb r1, [r4, r0]
+_021E0070:
+ pop {r4, pc}
+ nop
+_021E0074: .word 0x00000784
+_021E0078: .word MOD14_021E0094
+_021E007C: .word 0x0000078D
+
+ thumb_func_start MOD14_021E0080
+MOD14_021E0080: ; 0x021E0080
+ ldr r1, _021E0090 ; =0x00000788
+ ldrb r0, [r0, r1]
+ cmp r0, #0
+ bne _021E008C
+ mov r0, #1
+ bx lr
+_021E008C:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+_021E0090: .word 0x00000788
+
+ thumb_func_start MOD14_021E0094
+MOD14_021E0094: ; 0x021E0094
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, _021E00E8 ; =0x00000784
+ add r4, r1, #0
+ ldrb r1, [r4, r0]
+ cmp r1, #0
+ beq _021E00A8
+ cmp r1, #1
+ beq _021E00C4
+ pop {r3, r4, r5, pc}
+_021E00A8:
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_02020130
+ mov r0, #0x76
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl MOD14_021E4D94
+ ldr r0, _021E00E8 ; =0x00000784
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ pop {r3, r4, r5, pc}
+_021E00C4:
+ sub r0, #0x24
+ ldr r0, [r4, r0]
+ bl MOD14_021E4DE8
+ cmp r0, #0
+ beq _021E00E4
+ ldr r0, [r4, #4]
+ mov r1, #2
+ bl FUN_02020130
+ ldr r0, _021E00EC ; =0x00000788
+ mov r1, #0
+ strb r1, [r4, r0]
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_021E00E4:
+ pop {r3, r4, r5, pc}
+ nop
+_021E00E8: .word 0x00000784
+_021E00EC: .word 0x00000788
+
+ thumb_func_start MOD14_021E00F0
+MOD14_021E00F0: ; 0x021E00F0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021E0114 ; =0x00000784
+ mov r2, #0
+ strb r2, [r4, r0]
+ ldr r0, _021E0118 ; =MOD14_021E0134
+ add r1, r4, #0
+ bl FUN_0200CA44
+ cmp r0, #0
+ beq _021E0112
+ ldr r0, _021E011C ; =0x0000078D
+ mov r1, #0
+ strb r1, [r4, r0]
+ mov r1, #1
+ sub r0, r0, #5
+ strb r1, [r4, r0]
+_021E0112:
+ pop {r4, pc}
+ .align 2, 0
+_021E0114: .word 0x00000784
+_021E0118: .word MOD14_021E0134
+_021E011C: .word 0x0000078D
+
+ thumb_func_start MOD14_021E0120
+MOD14_021E0120: ; 0x021E0120
+ ldr r1, _021E0130 ; =0x00000788
+ ldrb r0, [r0, r1]
+ cmp r0, #0
+ bne _021E012C
+ mov r0, #1
+ bx lr
+_021E012C:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+_021E0130: .word 0x00000788
+
+ thumb_func_start MOD14_021E0134
+MOD14_021E0134: ; 0x021E0134
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, _021E0188 ; =0x00000784
+ add r4, r1, #0
+ ldrb r1, [r4, r0]
+ cmp r1, #0
+ beq _021E0148
+ cmp r1, #1
+ beq _021E0164
+ pop {r3, r4, r5, pc}
+_021E0148:
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_02020130
+ mov r0, #0x76
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl MOD14_021E4E58
+ ldr r0, _021E0188 ; =0x00000784
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ pop {r3, r4, r5, pc}
+_021E0164:
+ sub r0, #0x24
+ ldr r0, [r4, r0]
+ bl MOD14_021E4EA4
+ cmp r0, #0
+ beq _021E0184
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl FUN_02020130
+ ldr r0, _021E018C ; =0x00000788
+ mov r1, #0
+ strb r1, [r4, r0]
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_021E0184:
+ pop {r3, r4, r5, pc}
+ nop
+_021E0188: .word 0x00000784
+_021E018C: .word 0x00000788
+
+ thumb_func_start MOD14_021E0190
+MOD14_021E0190: ; 0x021E0190
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021E01B0 ; =0x00000784
+ mov r2, #0
+ strb r2, [r4, r0]
+ ldr r0, _021E01B4 ; =MOD14_021E01D0
+ add r1, r4, #0
+ bl FUN_0200CA44
+ cmp r0, #0
+ beq _021E01AC
+ ldr r0, _021E01B8 ; =0x00000788
+ mov r1, #1
+ strb r1, [r4, r0]
+_021E01AC:
+ pop {r4, pc}
+ nop
+_021E01B0: .word 0x00000784
+_021E01B4: .word MOD14_021E01D0
+_021E01B8: .word 0x00000788
+
+ thumb_func_start MOD14_021E01BC
+MOD14_021E01BC: ; 0x021E01BC
+ ldr r1, _021E01CC ; =0x00000788
+ ldrb r0, [r0, r1]
+ cmp r0, #0
+ bne _021E01C8
+ mov r0, #1
+ bx lr
+_021E01C8:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+_021E01CC: .word 0x00000788
+
+ thumb_func_start MOD14_021E01D0
+MOD14_021E01D0: ; 0x021E01D0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, _021E0224 ; =0x00000784
+ add r4, r1, #0
+ ldrb r1, [r4, r0]
+ cmp r1, #0
+ beq _021E01E4
+ cmp r1, #1
+ beq _021E0200
+ pop {r3, r4, r5, pc}
+_021E01E4:
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_02020130
+ mov r0, #0x76
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl MOD14_021E4EB4
+ ldr r0, _021E0224 ; =0x00000784
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ pop {r3, r4, r5, pc}
+_021E0200:
+ sub r0, #0x24
+ ldr r0, [r4, r0]
+ bl MOD14_021E4F48
+ cmp r0, #0
+ beq _021E0220
+ ldr r0, [r4, #4]
+ mov r1, #2
+ bl FUN_02020130
+ ldr r0, _021E0228 ; =0x00000788
+ mov r1, #0
+ strb r1, [r4, r0]
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_021E0220:
+ pop {r3, r4, r5, pc}
+ nop
+_021E0224: .word 0x00000784
+_021E0228: .word 0x00000788
+
+ thumb_func_start MOD14_021E022C
+MOD14_021E022C: ; 0x021E022C
+ push {r3, lr}
+ ldr r1, _021E0240 ; =0x0000078D
+ ldrb r1, [r0, r1]
+ cmp r1, #0
+ beq _021E023E
+ ldr r0, [r0, #4]
+ mov r1, #1
+ bl FUN_02020130
+_021E023E:
+ pop {r3, pc}
+ .align 2, 0
+_021E0240: .word 0x0000078D
+
+ thumb_func_start MOD14_021E0244
+MOD14_021E0244: ; 0x021E0244
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021E0260 ; =0x0000078D
+ ldrb r0, [r4, r0]
+ cmp r0, #0
+ beq _021E025E
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl FUN_02020130
+ ldr r0, _021E0260 ; =0x0000078D
+ mov r1, #0
+ strb r1, [r4, r0]
+_021E025E:
+ pop {r4, pc}
+ .align 2, 0
+_021E0260: .word 0x0000078D
+
+ thumb_func_start MOD14_021E0264
+MOD14_021E0264: ; 0x021E0264
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ mov r0, #0x79
+ add r5, r3, #0
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ add r7, r2, #0
+ add r4, r1, #0
+ str r0, [sp]
+ bl MOD14_021DC3CC
+ strb r0, [r7]
+ ldrb r0, [r7]
+ cmp r0, #4
+ bhi _021E0318
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021E028E: ; jump table
+ .short _021E0298 - _021E028E - 2 ; case 0
+ .short _021E02C2 - _021E028E - 2 ; case 1
+ .short _021E02E4 - _021E028E - 2 ; case 2
+ .short _021E02F6 - _021E028E - 2 ; case 3
+ .short _021E0308 - _021E028E - 2 ; case 4
+_021E0298:
+ ldr r0, _021E031C ; =0x00000794
+ ldr r0, [r5, r0]
+ bl MOD14_021DDD98
+ add r5, r0, #0
+ ldr r0, [sp]
+ bl MOD14_021DC3D0
+ mov r1, #0x18
+ add r5, #0x70
+ mul r1, r0
+ add r0, r5, r1
+ str r0, [r6]
+ ldr r0, [sp]
+ bl MOD14_021DC3D8
+ mov r1, #0x18
+ mul r1, r0
+ add r1, #0x18
+ str r1, [r4]
+ pop {r3, r4, r5, r6, r7, pc}
+_021E02C2:
+ ldr r0, [sp]
+ bl MOD14_021DC3E8
+ add r7, r0, #0
+ ldr r0, _021E031C ; =0x00000794
+ ldr r0, [r5, r0]
+ bl MOD14_021DDD60
+ add r1, r7, #0
+ add r2, r6, #0
+ add r3, r4, #0
+ bl MOD14_021E3170
+ ldr r0, [r4]
+ sub r0, #0x10
+ str r0, [r4]
+ pop {r3, r4, r5, r6, r7, pc}
+_021E02E4:
+ ldr r0, _021E031C ; =0x00000794
+ ldr r0, [r5, r0]
+ bl MOD14_021DDD98
+ add r0, #0xa8
+ str r0, [r6]
+ mov r0, #8
+ str r0, [r4]
+ pop {r3, r4, r5, r6, r7, pc}
+_021E02F6:
+ ldr r0, _021E031C ; =0x00000794
+ ldr r0, [r5, r0]
+ bl MOD14_021DDD98
+ add r0, #0x9f
+ str r0, [r6]
+ mov r0, #0xa0
+ str r0, [r4]
+ pop {r3, r4, r5, r6, r7, pc}
+_021E0308:
+ ldr r0, _021E031C ; =0x00000794
+ ldr r0, [r5, r0]
+ bl MOD14_021DDD98
+ add r0, #0xeb
+ str r0, [r6]
+ mov r0, #0xa0
+ str r0, [r4]
+_021E0318:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021E031C: .word 0x00000794
+
+ thumb_func_start MOD14_021E0320
+MOD14_021E0320: ; 0x021E0320
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r7, r0, #0
+ ldr r0, [r7, #4]
+ add r6, r1, #0
+ bl FUN_02020044
+ ldr r1, _021E03B4 ; =0x0000078C
+ ldrb r0, [r7, r1]
+ cmp r0, #0
+ beq _021E0378
+ mov r0, #0
+ sub r1, #0x38
+ str r0, [sp]
+ str r0, [sp, #0x18]
+ ldr r0, [r7, r1]
+ cmp r0, #0
+ bls _021E0378
+ add r4, r7, #0
+ add r5, r7, #0
+_021E0348:
+ ldr r0, _021E03B8 ; =0x00000664
+ ldr r1, [r6]
+ ldr r0, [r4, r0]
+ add r0, r1, r0
+ str r0, [sp, #0x10]
+ ldr r0, _021E03BC ; =0x00000668
+ ldr r1, [r6, #4]
+ ldr r0, [r4, r0]
+ sub r0, r1, r0
+ str r0, [sp, #0x14]
+ ldr r0, [r5, #0x4c]
+ add r1, sp, #0x10
+ bl FUN_02020044
+ ldr r0, [sp]
+ add r4, #8
+ add r0, r0, #1
+ str r0, [sp]
+ ldr r0, _021E03C0 ; =0x00000754
+ add r5, #0x34
+ ldr r1, [r7, r0]
+ ldr r0, [sp]
+ cmp r0, r1
+ blo _021E0348
+_021E0378:
+ ldr r0, _021E03C4 ; =0x0000078D
+ ldrb r1, [r7, r0]
+ cmp r1, #0
+ beq _021E038A
+ sub r0, #0x2d
+ ldr r0, [r7, r0]
+ add r1, r6, #0
+ bl MOD14_021E4FDC
+_021E038A:
+ ldr r0, _021E03C8 ; =0x0000078E
+ ldrb r0, [r7, r0]
+ cmp r0, #0
+ beq _021E03B0
+ ldmia r6!, {r0, r1}
+ add r3, sp, #4
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r6]
+ str r0, [r3]
+ mov r0, #6
+ ldr r1, [sp, #8]
+ lsl r0, r0, #0xe
+ add r0, r1, r0
+ str r0, [sp, #8]
+ ldr r0, [r7, #8]
+ add r1, r2, #0
+ bl FUN_02020044
+_021E03B0:
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021E03B4: .word 0x0000078C
+_021E03B8: .word 0x00000664
+_021E03BC: .word 0x00000668
+_021E03C0: .word 0x00000754
+_021E03C4: .word 0x0000078D
+_021E03C8: .word 0x0000078E
+
+ thumb_func_start MOD14_021E03CC
+MOD14_021E03CC: ; 0x021E03CC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x34
+ mov r1, #0x79
+ lsl r1, r1, #4
+ str r0, [sp, #4]
+ ldr r0, [r0, r1]
+ bl MOD14_021DC3CC
+ cmp r0, #0
+ beq _021E03E2
+ b _021E0504
+_021E03E2:
+ mov r1, #0x79
+ ldr r0, [sp, #4]
+ lsl r1, r1, #4
+ ldr r0, [r0, r1]
+ bl MOD14_021DC4DC
+ cmp r0, #0
+ beq _021E042A
+ mov r1, #0x79
+ ldr r0, [sp, #4]
+ lsl r1, r1, #4
+ ldr r0, [r0, r1]
+ bl MOD14_021DC3E0
+ add r1, r0, #0
+ ldr r3, [sp, #4]
+ ldr r2, _021E053C ; =0x00000758
+ ldr r0, [sp, #4]
+ add r3, #0x4c
+ ldr r0, [r0, r2]
+ ldr r2, _021E0540 ; =0x000004D8
+ bl MOD14_021DE980
+ ldr r0, [sp, #4]
+ ldr r2, _021E0544 ; =0x00000754
+ mov r1, #1
+ str r1, [r0, r2]
+ add r1, r2, #0
+ mov r3, #0
+ sub r1, #0xf0
+ str r3, [r0, r1]
+ ldr r1, _021E0548 ; =0xFFFFC000
+ sub r2, #0xec
+ str r1, [r0, r2]
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+_021E042A:
+ add r0, sp, #0x24
+ str r0, [sp]
+ mov r1, #0x79
+ ldr r0, [sp, #4]
+ lsl r1, r1, #4
+ ldr r0, [r0, r1]
+ add r1, sp, #0x30
+ add r2, sp, #0x2c
+ add r3, sp, #0x28
+ bl MOD14_021DC4A4
+ mov r1, #0x79
+ ldr r0, [sp, #4]
+ lsl r1, r1, #4
+ ldr r0, [r0, r1]
+ bl MOD14_021DC3D0
+ str r0, [sp, #0x18]
+ mov r1, #0x79
+ ldr r0, [sp, #4]
+ lsl r1, r1, #4
+ ldr r0, [r0, r1]
+ bl MOD14_021DC3D8
+ str r0, [sp, #0x14]
+ mov r0, #0
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x28]
+ ldr r1, [sp, #0x24]
+ str r0, [sp, #0x1c]
+ cmp r0, r1
+ bhi _021E04F8
+ ldr r0, [sp, #4]
+ ldr r6, [sp, #4]
+ str r0, [sp, #0x10]
+ add r0, #0x4c
+ str r0, [sp, #0x10]
+ mov r7, #0x5f
+ ldr r0, [sp, #0x1c]
+ mov r1, #6
+ mul r1, r0
+ lsl r7, r7, #4
+ str r1, [sp, #0xc]
+ add r5, r6, #0
+_021E0482:
+ ldr r4, [sp, #0x30]
+ ldr r0, [sp, #0x2c]
+ cmp r4, r0
+ bhi _021E04E6
+ ldr r1, [sp, #0x1c]
+ ldr r0, [sp, #0x14]
+ sub r1, r1, r0
+ mov r0, #0x18
+ add r2, r1, #0
+ mul r2, r0
+ sub r0, #0x1c
+ sub r0, r0, r2
+ lsl r0, r0, #0xc
+ str r0, [sp, #8]
+_021E049E:
+ ldr r1, [sp, #4]
+ ldr r0, _021E053C ; =0x00000758
+ ldr r3, [sp, #0x10]
+ ldr r0, [r1, r0]
+ ldr r1, [sp, #0xc]
+ add r2, r7, #0
+ add r1, r4, r1
+ bl MOD14_021DE980
+ ldr r0, [r6, #0x4c]
+ cmp r0, #0
+ beq _021E04DE
+ ldr r0, [sp, #0x18]
+ add r7, #0x10
+ sub r1, r4, r0
+ mov r0, #6
+ add r2, r1, #0
+ lsl r0, r0, #0xe
+ mul r2, r0
+ ldr r0, _021E054C ; =0x00000664
+ ldr r1, [sp, #8]
+ str r2, [r5, r0]
+ add r0, r0, #4
+ str r1, [r5, r0]
+ ldr r0, [sp, #0x10]
+ add r6, #0x34
+ add r0, #0x34
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x20]
+ add r5, #8
+ add r0, r0, #1
+ str r0, [sp, #0x20]
+_021E04DE:
+ ldr r0, [sp, #0x2c]
+ add r4, r4, #1
+ cmp r4, r0
+ bls _021E049E
+_021E04E6:
+ ldr r0, [sp, #0xc]
+ ldr r1, [sp, #0x24]
+ add r0, r0, #6
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x1c]
+ add r0, r0, #1
+ str r0, [sp, #0x1c]
+ cmp r0, r1
+ bls _021E0482
+_021E04F8:
+ ldr r2, _021E0544 ; =0x00000754
+ ldr r1, [sp, #0x20]
+ ldr r0, [sp, #4]
+ add sp, #0x34
+ str r1, [r0, r2]
+ pop {r4, r5, r6, r7, pc}
+_021E0504:
+ mov r1, #0x79
+ ldr r0, [sp, #4]
+ lsl r1, r1, #4
+ ldr r0, [r0, r1]
+ bl MOD14_021DC3E8
+ add r1, r0, #0
+ ldr r3, [sp, #4]
+ ldr r2, _021E0550 ; =0x0000075C
+ ldr r0, [sp, #4]
+ add r3, #0x4c
+ ldr r0, [r0, r2]
+ ldr r2, _021E0540 ; =0x000004D8
+ bl MOD14_021E3084
+ ldr r2, _021E0544 ; =0x00000754
+ ldr r0, [sp, #4]
+ mov r1, #1
+ str r1, [r0, r2]
+ add r1, r2, #0
+ mov r3, #0
+ sub r1, #0xf0
+ str r3, [r0, r1]
+ ldr r1, _021E0548 ; =0xFFFFC000
+ sub r2, #0xec
+ str r1, [r0, r2]
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021E053C: .word 0x00000758
+_021E0540: .word 0x000004D8
+_021E0544: .word 0x00000754
+_021E0548: .word 0xFFFFC000
+_021E054C: .word 0x00000664
+_021E0550: .word 0x0000075C
+
+ thumb_func_start MOD14_021E0554
+MOD14_021E0554: ; 0x021E0554
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ ldr r0, _021E0580 ; =0x00000754
+ mov r4, #0
+ ldr r0, [r6, r0]
+ cmp r0, #0
+ bls _021E0578
+ ldr r7, _021E0580 ; =0x00000754
+ add r5, r6, #0
+_021E0566:
+ ldr r0, [r5, #0x4c]
+ mov r1, #2
+ bl MOD14_021DDE24
+ ldr r0, [r6, r7]
+ add r4, r4, #1
+ add r5, #0x34
+ cmp r4, r0
+ blo _021E0566
+_021E0578:
+ ldr r0, _021E0584 ; =0x0000078C
+ mov r1, #1
+ strb r1, [r6, r0]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021E0580: .word 0x00000754
+_021E0584: .word 0x0000078C
+
+ thumb_func_start MOD14_021E0588
+MOD14_021E0588: ; 0x021E0588
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ mov r0, #0x79
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl MOD14_021DC3CC
+ cmp r0, #0
+ bne _021E0604
+ mov r0, #0x79
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl MOD14_021DC4DC
+ cmp r0, #0
+ beq _021E05C2
+ mov r0, #0x79
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl MOD14_021DC3E0
+ add r1, r0, #0
+ ldr r0, _021E0620 ; =0x00000758
+ ldr r0, [r5, r0]
+ add r5, #0x4c
+ add r2, r5, #0
+ bl MOD14_021DE9D4
+ pop {r3, r4, r5, r6, r7, pc}
+_021E05C2:
+ mov r0, #0x79
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl MOD14_021DC4F8
+ add r7, r0, #0
+ ldr r0, _021E0624 ; =0x00000754
+ mov r4, #0
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ bls _021E061C
+ add r6, r5, #0
+ add r6, #0x4c
+_021E05DC:
+ mov r0, #0x79
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ add r1, r4, #0
+ bl MOD14_021DC528
+ add r1, r0, #0
+ ldr r0, _021E0620 ; =0x00000758
+ add r1, r7, r1
+ ldr r0, [r5, r0]
+ add r2, r6, #0
+ bl MOD14_021DE9D4
+ ldr r0, _021E0624 ; =0x00000754
+ add r4, r4, #1
+ ldr r0, [r5, r0]
+ add r6, #0x34
+ cmp r4, r0
+ blo _021E05DC
+ pop {r3, r4, r5, r6, r7, pc}
+_021E0604:
+ mov r0, #0x79
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl MOD14_021DC3E8
+ add r1, r0, #0
+ ldr r0, _021E0628 ; =0x0000075C
+ ldr r0, [r5, r0]
+ add r5, #0x4c
+ add r2, r5, #0
+ bl MOD14_021E30C0
+_021E061C:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021E0620: .word 0x00000758
+_021E0624: .word 0x00000754
+_021E0628: .word 0x0000075C
+
+ thumb_func_start MOD14_021E062C
+MOD14_021E062C: ; 0x021E062C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r0, #0x79
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl MOD14_021DC3CC
+ cmp r0, #0
+ bne _021E06A2
+ mov r0, #0x79
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl MOD14_021DC3E0
+ add r4, r0, #0
+ ldr r0, _021E0708 ; =0x00000758
+ add r1, r4, #0
+ ldr r0, [r5, r0]
+ bl MOD14_021DEA38
+ add r6, r0, #0
+ add r1, r5, #0
+ mov r2, #0x5f
+ ldr r0, [r5, #0x48]
+ add r1, #0x4c
+ lsl r2, r2, #4
+ bl MOD14_021E0BBC
+ mov r2, #6
+ ldr r0, [r5, #0x48]
+ add r1, r6, #0
+ lsl r2, r2, #8
+ bl MOD14_021E0BBC
+ bl OS_WaitVBlankIntr
+ ldr r0, _021E0708 ; =0x00000758
+ add r3, r5, #0
+ ldr r0, [r5, r0]
+ ldr r2, _021E070C ; =0x000004D8
+ add r1, r4, #0
+ add r3, #0x80
+ bl MOD14_021DE980
+ ldr r0, _021E0708 ; =0x00000758
+ add r2, r5, #0
+ ldr r0, [r5, r0]
+ add r1, r4, #0
+ add r2, #0x4c
+ bl MOD14_021DE9D4
+ add r0, r5, #0
+ add r5, #0x4c
+ add r0, #0x80
+ add r1, r5, #0
+ mov r2, #1
+ bl MOD14_021E0930
+ pop {r4, r5, r6, pc}
+_021E06A2:
+ mov r0, #0x79
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl MOD14_021DC3E8
+ add r4, r0, #0
+ ldr r0, _021E0710 ; =0x0000075C
+ add r1, r4, #0
+ ldr r0, [r5, r0]
+ bl MOD14_021E3158
+ add r6, r0, #0
+ add r1, r5, #0
+ mov r2, #0x5f
+ ldr r0, [r5, #0x48]
+ add r1, #0x4c
+ lsl r2, r2, #4
+ bl MOD14_021E0BBC
+ mov r2, #6
+ ldr r0, [r5, #0x48]
+ add r1, r6, #0
+ lsl r2, r2, #8
+ bl MOD14_021E0BBC
+ bl OS_WaitVBlankIntr
+ ldr r0, _021E0710 ; =0x0000075C
+ add r3, r5, #0
+ ldr r0, [r5, r0]
+ ldr r2, _021E070C ; =0x000004D8
+ add r1, r4, #0
+ add r3, #0x80
+ bl MOD14_021E3084
+ ldr r0, _021E0710 ; =0x0000075C
+ add r2, r5, #0
+ ldr r0, [r5, r0]
+ add r1, r4, #0
+ add r2, #0x4c
+ bl MOD14_021E3114
+ add r0, r5, #0
+ add r5, #0x4c
+ add r0, #0x80
+ add r1, r5, #0
+ mov r2, #1
+ bl MOD14_021E0930
+ pop {r4, r5, r6, pc}
+ nop
+_021E0708: .word 0x00000758
+_021E070C: .word 0x000004D8
+_021E0710: .word 0x0000075C
+
+ thumb_func_start MOD14_021E0714
+MOD14_021E0714: ; 0x021E0714
+ ldr r1, _021E071C ; =0x0000078C
+ mov r2, #0
+ strb r2, [r0, r1]
+ bx lr
+ .align 2, 0
+_021E071C: .word 0x0000078C
+
+ thumb_func_start MOD14_021E0720
+MOD14_021E0720: ; 0x021E0720
+ push {r4, lr}
+ add r4, r0, #0
+ add r1, r4, #0
+ ldr r0, [r4, #0x48]
+ add r1, #0x4c
+ mov r2, #1
+ bl MOD14_021E0908
+ ldr r0, _021E073C ; =0x0000078C
+ mov r1, #0
+ strb r1, [r4, r0]
+ sub r0, #0x38
+ str r1, [r4, r0]
+ pop {r4, pc}
+ .align 2, 0
+_021E073C: .word 0x0000078C
+
+ thumb_func_start MOD14_021E0740
+MOD14_021E0740: ; 0x021E0740
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x79
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl MOD14_021DC3CC
+ cmp r0, #0
+ bne _021E076A
+ mov r0, #0x79
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl MOD14_021DC3E0
+ add r1, r0, #0
+ ldr r0, _021E0784 ; =0x00000758
+ ldr r0, [r4, r0]
+ bl MOD14_021DEA38
+ ldr r0, [r0]
+ pop {r4, pc}
+_021E076A:
+ mov r0, #0x79
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl MOD14_021DC3E8
+ add r1, r0, #0
+ ldr r0, _021E0788 ; =0x0000075C
+ ldr r0, [r4, r0]
+ bl MOD14_021E3158
+ ldr r0, [r0]
+ pop {r4, pc}
+ nop
+_021E0784: .word 0x00000758
+_021E0788: .word 0x0000075C
+
+ thumb_func_start MOD14_021E078C
+MOD14_021E078C: ; 0x021E078C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x2c
+ add r5, r0, #0
+ add r0, sp, #0x18
+ add r4, r1, #0
+ add r6, r2, #0
+ str r3, [sp, #8]
+ bl FUN_020B19DC
+ bl FUN_0206B888
+ add r1, r0, #0
+ mov r0, #0xa
+ str r0, [sp]
+ add r0, sp, #0x18
+ str r0, [sp, #4]
+ mov r0, #0x13
+ mov r2, #1
+ mov r3, #0x40
+ bl FUN_02006A8C
+ bl FUN_0206B888
+ add r1, r0, #0
+ mov r0, #0x13
+ add r2, sp, #0x14
+ mov r3, #0xa
+ bl FUN_02006C08
+ str r0, [sp, #0xc]
+ cmp r0, #0
+ beq _021E0818
+ add r0, sp, #0x18
+ bl FUN_020B19DC
+ ldr r0, [sp, #0xc]
+ add r1, sp, #0x10
+ bl FUN_020B00F0
+ ldr r2, [sp, #0x14]
+ add r7, r0, #0
+ ldr r0, [r2, #0xc]
+ mov r1, #8
+ str r1, [sp]
+ ldr r2, [r2, #8]
+ ldr r3, _021E0898 ; =0x0000057F
+ add r1, r0, #0
+ lsr r2, r2, #1
+ bl MOD14_021DDE40
+ cmp r7, #0
+ beq _021E0806
+ add r0, sp, #0x18
+ str r0, [sp]
+ ldr r0, [sp, #0x14]
+ ldr r1, [sp, #0x10]
+ mov r2, #0xc0
+ mov r3, #1
+ bl FUN_020B10E8
+ b _021E0812
+_021E0806:
+ ldr r0, [sp, #0x14]
+ mov r1, #0xc0
+ mov r2, #1
+ add r3, sp, #0x18
+ bl FUN_020B1240
+_021E0812:
+ ldr r0, [sp, #0xc]
+ bl FUN_02016A18
+_021E0818:
+ mov r0, #0xa
+ add r3, r5, #0
+ str r0, [sp]
+ mov r0, #0x12
+ mov r1, #0x15
+ mov r2, #1
+ add r3, #0x10
+ bl FUN_02006C30
+ str r0, [r5, #8]
+ mov r0, #0xa
+ str r0, [sp]
+ mov r0, #0x12
+ mov r1, #0x16
+ mov r2, #1
+ add r3, r5, #4
+ bl FUN_02006C5C
+ str r0, [r5]
+ mov r0, #0xa
+ add r3, r5, #0
+ str r0, [sp]
+ mov r0, #0x12
+ mov r1, #0x17
+ mov r2, #1
+ add r3, #0x1c
+ bl FUN_02006C30
+ str r0, [r5, #0x14]
+ mov r0, #0xa
+ add r3, r5, #0
+ str r0, [sp]
+ mov r0, #0x12
+ mov r1, #0x18
+ mov r2, #1
+ add r3, #0x20
+ bl FUN_02006C5C
+ str r0, [r5, #0x18]
+ mov r0, #0x13
+ mov r1, #0xa
+ bl FUN_02006670
+ str r0, [r5, #0x48]
+ ldr r0, [r5, #8]
+ cmp r0, #0
+ beq _021E0882
+ ldr r0, [r5]
+ cmp r0, #0
+ beq _021E0882
+ ldr r0, [r5, #0x48]
+ cmp r0, #0
+ bne _021E0888
+_021E0882:
+ add sp, #0x2c
+ mov r0, #0
+ pop {r4, r5, r6, r7, pc}
+_021E0888:
+ ldr r0, [sp, #8]
+ str r0, [r5, #0x24]
+ str r6, [r5, #0x40]
+ str r4, [r5, #0x44]
+ mov r0, #1
+ add sp, #0x2c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021E0898: .word 0x0000057F
+
+ thumb_func_start MOD14_021E089C
+MOD14_021E089C: ; 0x021E089C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ beq _021E08AE
+ bl FUN_02016A18
+ mov r0, #0
+ str r0, [r4, #8]
+_021E08AE:
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _021E08BC
+ bl FUN_02016A18
+ mov r0, #0
+ str r0, [r4]
+_021E08BC:
+ ldr r0, [r4, #0x14]
+ cmp r0, #0
+ beq _021E08CA
+ bl FUN_02016A18
+ mov r0, #0
+ str r0, [r4, #0x14]
+_021E08CA:
+ ldr r0, [r4, #0x18]
+ cmp r0, #0
+ beq _021E08D8
+ bl FUN_02016A18
+ mov r0, #0
+ str r0, [r4, #0x18]
+_021E08D8:
+ ldr r0, [r4, #0x48]
+ cmp r0, #0
+ beq _021E08E2
+ bl FUN_020066F4
+_021E08E2:
+ pop {r4, pc}
+
+ thumb_func_start MOD14_021E08E4
+MOD14_021E08E4: ; 0x021E08E4
+ push {r4, r5, r6, lr}
+ add r4, r2, #0
+ add r0, r4, #0
+ add r5, r1, #0
+ sub r4, r4, #1
+ cmp r0, #0
+ beq _021E0906
+ mov r6, #0
+_021E08F4:
+ add r0, r5, #4
+ str r6, [r5]
+ bl FUN_020B1A24
+ add r0, r4, #0
+ add r5, #0x34
+ sub r4, r4, #1
+ cmp r0, #0
+ bne _021E08F4
+_021E0906:
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD14_021E0908
+MOD14_021E0908: ; 0x021E0908
+ push {r4, r5, r6, lr}
+ add r4, r2, #0
+ add r0, r4, #0
+ add r5, r1, #0
+ sub r4, r4, #1
+ cmp r0, #0
+ beq _021E092E
+ mov r6, #0
+_021E0918:
+ ldr r0, [r5]
+ cmp r0, #0
+ beq _021E0924
+ bl FUN_0201FFC8
+ str r6, [r5]
+_021E0924:
+ add r0, r4, #0
+ add r5, #0x34
+ sub r4, r4, #1
+ cmp r0, #0
+ bne _021E0918
+_021E092E:
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD14_021E0930
+MOD14_021E0930: ; 0x021E0930
+ mov r3, #0x34
+ mul r3, r2
+ add r2, r3, #0
+ ldr r3, _021E093C ; =0x020CE210
+ bx r3
+ nop
+_021E093C: .word 0x020CE210
+
+ thumb_func_start MOD14_021E0940
+MOD14_021E0940: ; 0x021E0940
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x44
+ add r6, r1, #0
+ add r5, r0, #0
+ add r0, r6, #0
+ str r2, [sp, #8]
+ str r3, [sp, #0xc]
+ ldr r4, [sp, #0x64]
+ bl FUN_02066A6C
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #0x44]
+ bl MOD14_021DDD48
+ add r2, r0, #0
+ ldr r0, [r5, #4]
+ mov r1, #0
+ str r0, [sp]
+ ldr r0, [sp, #0x58]
+ str r0, [sp, #4]
+ ldr r3, [r5, #0x10]
+ add r0, sp, #0x20
+ bl MOD14_021DDDB4
+ add r0, r6, #0
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020672BC
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x18]
+ add r0, r6, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl FUN_020672BC
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x14]
+ add r0, r6, #0
+ mov r1, #0x70
+ mov r2, #0
+ bl FUN_020672BC
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+ add r0, r6, #0
+ bl FUN_0206B688
+ str r0, [r4, #0x28]
+ ldr r0, [sp, #0x18]
+ ldr r2, [sp, #0x14]
+ add r1, r7, #0
+ bl FUN_0206B7BC
+ strh r0, [r4, #0x2c]
+ add r0, r6, #0
+ mov r1, #6
+ mov r2, #0
+ bl FUN_020672BC
+ strh r0, [r4, #0x30]
+ add r0, r6, #0
+ mov r1, #0xb
+ mov r2, #0
+ bl FUN_020672BC
+ strh r0, [r4, #0x2e]
+ add r0, r4, #4
+ bl FUN_020B1A24
+ add r0, r5, #0
+ add r0, #0x4c
+ str r0, [sp]
+ mov r3, #0xa
+ ldr r0, [r5, #0x48]
+ ldr r1, [r4, #0x28]
+ mov r2, #0
+ lsl r3, r3, #6
+ bl FUN_02006814
+ add r0, r5, #0
+ add r0, #0x4c
+ add r1, sp, #0x1c
+ bl FUN_020B0088
+ mov r2, #1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2]
+ ldr r0, _021E0A5C ; =0x00300010
+ add r3, r4, #4
+ and r1, r0
+ ldr r0, [sp, #0x1c]
+ str r1, [r0, #8]
+ lsr r1, r2, #0x11
+ ldr r0, [sp, #0x1c]
+ mov r2, #1
+ str r1, [r0, #0x10]
+ ldr r1, [sp, #0x60]
+ ldr r0, [sp, #0x1c]
+ lsl r1, r1, #5
+ bl FUN_020B1768
+ add r0, r4, #4
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x5c]
+ ldr r2, [sp, #8]
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r5, #0x24]
+ ldr r3, [sp, #0xc]
+ add r1, sp, #0x20
+ bl MOD14_021DDDD4
+ str r0, [r4]
+ cmp r0, #0
+ bne _021E0A36
+ bl ErrorHandling
+_021E0A36:
+ ldrh r1, [r4, #0x2c]
+ ldr r0, [r4]
+ add r1, r1, #2
+ bl FUN_02020248
+ ldr r0, [r5, #0x40]
+ bl MOD14_021DC484
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD14_021E0B54
+ ldr r1, [sp, #0x10]
+ add r0, r6, #0
+ bl FUN_02066A94
+ add sp, #0x44
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021E0A5C: .word 0x00300010
+
+ thumb_func_start MOD14_021E0A60
+MOD14_021E0A60: ; 0x021E0A60
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x40
+ add r6, r1, #0
+ add r5, r0, #0
+ add r0, r6, #0
+ str r2, [sp, #8]
+ add r7, r3, #0
+ ldr r4, [sp, #0x70]
+ bl FUN_02066A6C
+ str r0, [sp, #0x14]
+ add r0, r6, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl FUN_020672BC
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x10]
+ add r0, r6, #0
+ mov r1, #0x70
+ mov r2, #0
+ bl FUN_020672BC
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0xc]
+ ldr r0, [r5, #0x44]
+ bl MOD14_021DDD48
+ add r2, r0, #0
+ ldr r0, [r5, #4]
+ mov r1, #0
+ str r0, [sp]
+ ldr r0, [sp, #0x64]
+ str r0, [sp, #4]
+ ldr r3, [r5, #0x10]
+ add r0, sp, #0x1c
+ bl MOD14_021DDDB4
+ str r7, [r4, #0x28]
+ ldr r0, [sp, #8]
+ ldr r1, [sp, #0xc]
+ ldr r2, [sp, #0x10]
+ bl FUN_0206B7BC
+ strh r0, [r4, #0x2c]
+ add r0, r6, #0
+ mov r1, #6
+ mov r2, #0
+ bl FUN_020672BC
+ strh r0, [r4, #0x30]
+ add r0, r6, #0
+ mov r1, #0xb
+ mov r2, #0
+ bl FUN_020672BC
+ strh r0, [r4, #0x2e]
+ add r0, r4, #4
+ bl FUN_020B1A24
+ ldr r0, [sp, #0x58]
+ add r1, sp, #0x18
+ bl FUN_020B0088
+ mov r2, #1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2]
+ ldr r0, _021E0B50 ; =0x00300010
+ add r3, r4, #4
+ and r1, r0
+ ldr r0, [sp, #0x18]
+ str r1, [r0, #8]
+ lsr r1, r2, #0x11
+ ldr r0, [sp, #0x18]
+ mov r2, #1
+ str r1, [r0, #0x10]
+ ldr r1, [sp, #0x6c]
+ ldr r0, [sp, #0x18]
+ lsl r1, r1, #5
+ bl FUN_020B1768
+ add r0, r4, #4
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x68]
+ ldr r2, [sp, #0x5c]
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r5, #0x24]
+ ldr r3, [sp, #0x60]
+ add r1, sp, #0x1c
+ bl MOD14_021DDDD4
+ str r0, [r4]
+ cmp r0, #0
+ bne _021E0B28
+ bl ErrorHandling
+_021E0B28:
+ ldrh r1, [r4, #0x2c]
+ ldr r0, [r4]
+ add r1, r1, #2
+ bl FUN_02020248
+ ldr r0, [r5, #0x40]
+ bl MOD14_021DC484
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD14_021E0B54
+ ldr r1, [sp, #0x14]
+ add r0, r6, #0
+ bl FUN_02066A94
+ add sp, #0x40
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021E0B50: .word 0x00300010
+
+ thumb_func_start MOD14_021E0B54
+MOD14_021E0B54: ; 0x021E0B54
+ push {r4, r5, r6, lr}
+ cmp r2, #0
+ beq _021E0B9A
+ mov r3, #1
+ add r0, r2, #0
+ tst r0, r3
+ beq _021E0B72
+ ldrh r0, [r1, #0x30]
+ cmp r0, #0
+ bne _021E0B72
+ ldr r0, [r1]
+ add r1, r3, #0
+ bl FUN_02020398
+ pop {r4, r5, r6, pc}
+_021E0B72:
+ mov r3, #0
+ mov r4, #1
+ mov r0, #2
+_021E0B78:
+ add r5, r0, #0
+ lsl r5, r3
+ tst r5, r2
+ beq _021E0B94
+ add r5, r4, #0
+ ldrh r6, [r1, #0x2e]
+ lsl r5, r3
+ tst r5, r6
+ bne _021E0B94
+ ldr r0, [r1]
+ add r1, r4, #0
+ bl FUN_02020398
+ pop {r4, r5, r6, pc}
+_021E0B94:
+ add r3, r3, #1
+ cmp r3, #6
+ blt _021E0B78
+_021E0B9A:
+ ldr r0, [r1]
+ mov r1, #0
+ bl FUN_02020398
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD14_021E0BA4
+MOD14_021E0BA4: ; 0x021E0BA4
+ strh r2, [r1, #0x2e]
+ bx lr
+
+ thumb_func_start MOD14_021E0BA8
+MOD14_021E0BA8: ; 0x021E0BA8
+ strh r2, [r1, #0x30]
+ bx lr
+
+ thumb_func_start MOD14_021E0BAC
+MOD14_021E0BAC: ; 0x021E0BAC
+ push {r3, lr}
+ str r1, [sp]
+ ldr r0, [r0, #0x48]
+ add r1, r2, #0
+ mov r2, #0
+ bl FUN_02006814
+ pop {r3, pc}
+
+ thumb_func_start MOD14_021E0BBC
+MOD14_021E0BBC: ; 0x021E0BBC
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4]
+ add r6, r2, #0
+ cmp r0, #0
+ beq _021E0C18
+ add r0, r4, #4
+ bl FUN_020B1A24
+ add r0, r5, #0
+ add r0, #0x4c
+ str r0, [sp]
+ mov r3, #0xa
+ ldr r0, [r5, #0x48]
+ ldr r1, [r4, #0x28]
+ mov r2, #0
+ lsl r3, r3, #6
+ bl FUN_02006814
+ add r5, #0x4c
+ add r0, r5, #0
+ add r1, sp, #4
+ bl FUN_020B0088
+ mov r2, #1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2]
+ ldr r0, _021E0C1C ; =0x00300010
+ add r3, r4, #4
+ and r1, r0
+ ldr r0, [sp, #4]
+ str r1, [r0, #8]
+ lsr r1, r2, #0x11
+ ldr r0, [sp, #4]
+ mov r2, #1
+ str r1, [r0, #0x10]
+ ldr r0, [sp, #4]
+ lsl r1, r6, #5
+ bl FUN_020B1768
+ ldr r0, [r4]
+ add r1, r4, #4
+ bl FUN_02020334
+_021E0C18:
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021E0C1C: .word 0x00300010
+
+ thumb_func_start MOD14_021E0C20
+MOD14_021E0C20: ; 0x021E0C20
+ push {r3, r4, r5, lr}
+ add r4, r2, #0
+ add r5, r1, #0
+ sub r0, r4, #1
+ cmp r0, #1
+ ldr r0, [r5]
+ bhi _021E0C36
+ mov r1, #1
+ bl FUN_020200EC
+ b _021E0C3C
+_021E0C36:
+ mov r1, #0
+ bl FUN_020200EC
+_021E0C3C:
+ ldr r0, [r5]
+ add r1, r4, #0
+ bl FUN_02020130
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E0C48
+MOD14_021E0C48: ; 0x021E0C48
+ push {r3, lr}
+ ldr r0, [r1]
+ bl FUN_02020388
+ cmp r0, #0
+ bne _021E0C58
+ mov r0, #1
+ pop {r3, pc}
+_021E0C58:
+ mov r0, #0
+ pop {r3, pc}
+
+ thumb_func_start MOD14_021E0C5C
+MOD14_021E0C5C: ; 0x021E0C5C
+ cmp r2, #0
+ beq _021E0C64
+ mov r2, #6
+ b _021E0C66
+_021E0C64:
+ mov r2, #2
+_021E0C66:
+ ldr r0, [r1]
+ ldrh r1, [r1, #0x2c]
+ ldr r3, _021E0C70 ; =0x02020249
+ add r1, r1, r2
+ bx r3
+ .align 2, 0
+_021E0C70: .word 0x02020249
+
+ thumb_func_start MOD14_021E0C74
+MOD14_021E0C74: ; 0x021E0C74
+ ldr r0, [r0, #0x10]
+ bx lr
+
+ thumb_func_start MOD14_021E0C78
+MOD14_021E0C78: ; 0x021E0C78
+ ldr r0, [r0, #4]
+ bx lr
+
+ thumb_func_start MOD14_021E0C7C
+MOD14_021E0C7C: ; 0x021E0C7C
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ str r1, [r4, #0x44]
+ str r3, [r4, #0x3c]
+ str r2, [r4, #0x40]
+ str r3, [r4]
+ mov r0, #0
+ str r0, [r4, #4]
+ mov r1, #0xa
+ add r3, r4, #0
+ str r1, [sp]
+ mov r0, #0x12
+ mov r2, #1
+ add r3, #0x10
+ bl FUN_02006C30
+ str r0, [r4, #8]
+ mov r0, #0xa
+ add r3, r4, #0
+ str r0, [sp]
+ mov r0, #0x12
+ mov r1, #0xb
+ mov r2, #1
+ add r3, #0x14
+ bl FUN_02006C5C
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ beq _021E0CC0
+ ldr r0, [r4, #0xc]
+ cmp r0, #0
+ bne _021E0CC6
+_021E0CC0:
+ add sp, #4
+ mov r0, #0
+ pop {r3, r4, pc}
+_021E0CC6:
+ mov r0, #1
+ add sp, #4
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD14_021E0CCC
+MOD14_021E0CCC: ; 0x021E0CCC
+ push {r4, lr}
+ sub sp, #0x38
+ add r4, r0, #0
+ add r0, #0x18
+ bl FUN_020B1A24
+ mov r3, #0
+ mov r0, #0x9d
+ str r3, [sp]
+ mov r2, #1
+ str r2, [sp, #4]
+ lsl r0, r0, #8
+ str r0, [sp, #8]
+ mov r0, #0xa
+ str r0, [sp, #0xc]
+ add r0, r4, #0
+ add r0, #0x18
+ str r0, [sp, #0x10]
+ mov r0, #0x12
+ mov r1, #9
+ bl FUN_02006AE4
+ ldr r0, [r4, #0x44]
+ bl MOD14_021DDD48
+ add r2, r0, #0
+ ldr r0, [r4, #0x14]
+ add r1, r4, #0
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldr r3, [r4, #0x10]
+ add r0, sp, #0x14
+ add r1, #0x18
+ bl MOD14_021DDDB4
+ ldr r0, [r4, #0x44]
+ bl MOD14_021DDD98
+ add r2, r0, #0
+ mov r0, #0x2c
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ add r1, sp, #0x14
+ add r2, #0xb7
+ mov r3, #0xb0
+ bl MOD14_021DDDD4
+ mov r1, #1
+ str r0, [r4, #4]
+ bl FUN_02020248
+ add sp, #0x38
+ pop {r4, pc}
+
+ thumb_func_start MOD14_021E0D3C
+MOD14_021E0D3C: ; 0x021E0D3C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ beq _021E0D4E
+ bl FUN_02016A18
+ mov r0, #0
+ str r0, [r4, #8]
+_021E0D4E:
+ ldr r0, [r4, #0xc]
+ cmp r0, #0
+ beq _021E0D5C
+ bl FUN_02016A18
+ mov r0, #0
+ str r0, [r4, #0xc]
+_021E0D5C:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E0D60
+MOD14_021E0D60: ; 0x021E0D60
+ push {r3, lr}
+ cmp r1, #0
+ beq _021E0D70
+ cmp r1, #1
+ beq _021E0D7A
+ cmp r1, #2
+ beq _021E0D84
+ pop {r3, pc}
+_021E0D70:
+ ldr r0, [r0, #4]
+ mov r1, #0
+ bl FUN_02020130
+ pop {r3, pc}
+_021E0D7A:
+ ldr r0, [r0, #4]
+ mov r1, #1
+ bl FUN_02020130
+ pop {r3, pc}
+_021E0D84:
+ ldr r0, [r0, #4]
+ mov r1, #2
+ bl FUN_02020130
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E0D90
+MOD14_021E0D90: ; 0x021E0D90
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r2, #0
+ add r5, r0, #0
+ add r0, r6, #0
+ add r4, r1, #0
+ add r7, r3, #0
+ bl MOD14_021DC3C4
+ cmp r0, #4
+ bne _021E0DAC
+ mov r0, #0
+ str r0, [r5]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021E0DAC:
+ str r4, [r5, #0x14]
+ str r7, [r5, #8]
+ ldr r0, [sp, #0x18]
+ str r6, [r5, #0x10]
+ str r0, [r5, #0xc]
+ mov r0, #0
+ str r0, [r5, #4]
+ str r0, [r5, #0x4c]
+ str r0, [r5, #0x24]
+ add r0, r4, #0
+ bl MOD14_021DDD90
+ str r0, [r5, #0x20]
+ mov r0, #9
+ mov r1, #6
+ mov r2, #0xf
+ mov r3, #0xa
+ bl FUN_0200B870
+ str r0, [r5, #0x18]
+ mov r0, #1
+ mov r1, #2
+ mov r2, #0xf
+ mov r3, #0xa
+ bl FUN_0200B870
+ str r0, [r5, #0x1c]
+ mov r0, #0xa
+ add r3, r5, #0
+ str r0, [sp]
+ mov r0, #0x12
+ mov r1, #0x10
+ mov r2, #1
+ add r3, #0x2c
+ bl FUN_02006C30
+ str r0, [r5, #0x28]
+ mov r0, #0
+ str r0, [r5, #0x30]
+ ldr r0, [sp, #0x1c]
+ mov r1, #0x15
+ bl FUN_0200A914
+ str r0, [r5, #0x44]
+ ldr r0, [sp, #0x1c]
+ mov r1, #0x16
+ bl FUN_0200A914
+ str r0, [r5, #0x48]
+ bl FUN_0206E12C
+ add r4, r0, #0
+ bl FUN_0206E10C
+ add r1, r0, #0
+ mov r0, #0xa
+ add r3, r5, #0
+ str r0, [sp]
+ add r0, r4, #0
+ mov r2, #1
+ add r3, #0x38
+ bl FUN_02006C30
+ mov r1, #0
+ str r0, [r5, #0x34]
+ add r2, r5, #0
+ add r0, r1, #0
+_021E0E32:
+ add r1, r1, #1
+ str r0, [r2, #0x3c]
+ add r2, r2, #4
+ cmp r1, #2
+ blt _021E0E32
+ mov r0, #1
+ str r0, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E0E44
+MOD14_021E0E44: ; 0x021E0E44
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ cmp r0, #0
+ beq _021E0EE2
+ ldr r0, [r5, #4]
+ cmp r0, #0
+ beq _021E0E72
+ mov r6, #0
+ add r4, r6, #0
+_021E0E58:
+ ldr r0, [r5, #4]
+ add r0, r0, r4
+ bl FUN_02019178
+ add r6, r6, #1
+ add r4, #0x10
+ cmp r6, #4
+ blt _021E0E58
+ ldr r0, [r5, #4]
+ bl FUN_02016A18
+ mov r0, #0
+ str r0, [r5, #4]
+_021E0E72:
+ ldr r0, [r5, #0x18]
+ cmp r0, #0
+ beq _021E0E7C
+ bl FUN_0200B990
+_021E0E7C:
+ ldr r0, [r5, #0x1c]
+ cmp r0, #0
+ beq _021E0E86
+ bl FUN_0200B990
+_021E0E86:
+ ldr r0, [r5, #0x44]
+ cmp r0, #0
+ beq _021E0E90
+ bl FUN_02021A20
+_021E0E90:
+ ldr r0, [r5, #0x48]
+ cmp r0, #0
+ beq _021E0E9A
+ bl FUN_02021A20
+_021E0E9A:
+ ldr r0, [r5, #0x24]
+ cmp r0, #0
+ beq _021E0EA8
+ bl FUN_02007534
+ mov r0, #0
+ str r0, [r5, #0x24]
+_021E0EA8:
+ ldr r0, [r5, #0x28]
+ cmp r0, #0
+ beq _021E0EB2
+ bl FUN_02016A18
+_021E0EB2:
+ ldr r0, [r5, #0x30]
+ cmp r0, #0
+ beq _021E0EBC
+ bl FUN_0201FFC8
+_021E0EBC:
+ ldr r0, [r5, #0x34]
+ cmp r0, #0
+ beq _021E0EC6
+ bl FUN_02016A18
+_021E0EC6:
+ mov r6, #0
+ add r4, r5, #0
+_021E0ECA:
+ ldr r0, [r4, #0x3c]
+ cmp r0, #0
+ beq _021E0ED4
+ bl FUN_0201FFC8
+_021E0ED4:
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #2
+ blt _021E0ECA
+ add r0, r5, #0
+ bl MOD14_021E10F4
+_021E0EE2:
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD14_021E0EE4
+MOD14_021E0EE4: ; 0x021E0EE4
+ push {r3, lr}
+ ldr r1, [r0]
+ cmp r1, #0
+ beq _021E0EF2
+ ldr r0, [r0, #0x20]
+ bl FUN_020081C4
+_021E0EF2:
+ pop {r3, pc}
+
+ thumb_func_start MOD14_021E0EF4
+MOD14_021E0EF4: ; 0x021E0EF4
+ push {r4, lr}
+ sub sp, #0x20
+ mov r2, #0
+ str r2, [sp]
+ add r4, r0, #0
+ str r2, [sp, #4]
+ add r0, sp, #0x10
+ mov r1, #1
+ add r3, r2, #0
+ str r2, [sp, #8]
+ bl FUN_02068C00
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ ldr r0, [r4, #0x20]
+ add r1, sp, #0x10
+ mov r2, #0x2c
+ mov r3, #0x54
+ bl FUN_020073A0
+ str r0, [r4, #0x24]
+ add sp, #0x20
+ pop {r4, pc}
+
+ thumb_func_start MOD14_021E0F28
+MOD14_021E0F28: ; 0x021E0F28
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x24]
+ cmp r0, #0
+ beq _021E0F3C
+ bl FUN_02007534
+ mov r0, #0
+ str r0, [r4, #0x24]
+ pop {r4, pc}
+_021E0F3C:
+ mov r0, #1
+ pop {r4, pc}
+
+ thumb_func_start MOD14_021E0F40
+MOD14_021E0F40: ; 0x021E0F40
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ cmp r0, #0
+ beq _021E0FA0
+ mov r0, #0xa
+ mov r1, #4
+ bl FUN_02018FF4
+ str r0, [r5, #4]
+ cmp r0, #0
+ beq _021E0F94
+ mov r7, #0
+ ldr r6, _021E0FA4 ; =0x021E65F4
+ add r4, r7, #0
+_021E0F5E:
+ ldr r1, [r5, #4]
+ ldr r0, [r5, #8]
+ add r1, r1, r4
+ add r2, r6, #0
+ bl FUN_02019150
+ cmp r7, #3
+ ldr r0, [r5, #4]
+ beq _021E0F78
+ add r0, r0, r4
+ bl FUN_02019270
+ b _021E0F82
+_021E0F78:
+ add r0, r0, r4
+ mov r1, #0xc
+ mov r2, #2
+ bl FUN_0201928C
+_021E0F82:
+ add r7, r7, #1
+ add r6, #8
+ add r4, #0x10
+ cmp r7, #4
+ blt _021E0F5E
+ ldr r0, [r5, #8]
+ mov r1, #2
+ bl FUN_02017CD0
+_021E0F94:
+ add r0, r5, #0
+ bl MOD14_021E0FA8
+ add r0, r5, #0
+ bl MOD14_021E10B0
+_021E0FA0:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021E0FA4: .word 0x021E65F4
+
+ thumb_func_start MOD14_021E0FA8
+MOD14_021E0FA8: ; 0x021E0FA8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x68
+ add r5, r0, #0
+ bl FUN_0206E12C
+ str r0, [sp, #0x1c]
+ mov r0, #2
+ bl FUN_0206E0F0
+ str r0, [sp, #0x18]
+ bl FUN_0206E108
+ add r1, r0, #0
+ mov r0, #0x60
+ str r0, [sp]
+ mov r3, #0xa
+ str r3, [sp, #4]
+ ldr r0, [sp, #0x1c]
+ mov r2, #1
+ lsl r3, r3, #5
+ bl FUN_02006930
+ mov r0, #0
+ mov r6, #0x5e
+ str r0, [sp, #0x14]
+ lsl r6, r6, #4
+ mov r7, #0x18
+ add r4, r5, #0
+_021E0FE0:
+ add r0, sp, #0x44
+ bl FUN_020B1A24
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ lsl r0, r6, #5
+ str r0, [sp, #8]
+ mov r0, #0xa
+ str r0, [sp, #0xc]
+ add r0, sp, #0x44
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x18]
+ mov r2, #1
+ mov r3, #0
+ bl FUN_02006B38
+ ldr r0, [r5, #0x14]
+ bl MOD14_021DDD48
+ add r2, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ ldr r3, [r5, #0x38]
+ add r0, sp, #0x20
+ add r1, sp, #0x44
+ bl MOD14_021DDDB4
+ mov r0, #0x2e
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r5, #0xc]
+ add r1, sp, #0x20
+ add r2, r7, #0
+ mov r3, #0xb0
+ bl MOD14_021DDDD4
+ str r0, [r4, #0x3c]
+ cmp r0, #0
+ bne _021E103E
+ bl ErrorHandling
+_021E103E:
+ ldr r0, [r4, #0x3c]
+ mov r1, #0
+ bl FUN_020200A0
+ ldr r0, [sp, #0x14]
+ add r6, #8
+ add r0, r0, #1
+ add r7, #0x24
+ add r4, r4, #4
+ str r0, [sp, #0x14]
+ cmp r0, #2
+ blo _021E0FE0
+ add r0, sp, #0x44
+ bl FUN_020B1A24
+ mov r3, #0
+ mov r0, #0xb9
+ str r3, [sp]
+ mov r2, #1
+ str r2, [sp, #4]
+ lsl r0, r0, #8
+ str r0, [sp, #8]
+ mov r0, #0xa
+ str r0, [sp, #0xc]
+ add r0, sp, #0x44
+ str r0, [sp, #0x10]
+ mov r0, #0x12
+ mov r1, #0xf
+ bl FUN_02006AE4
+ ldr r0, [r5, #0x14]
+ bl MOD14_021DDD48
+ add r2, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ ldr r3, [r5, #0x2c]
+ add r0, sp, #0x20
+ add r1, sp, #0x44
+ bl MOD14_021DDDB4
+ mov r0, #0x2f
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r5, #0xc]
+ add r1, sp, #0x20
+ mov r2, #0x38
+ mov r3, #0xb0
+ bl MOD14_021DDDD4
+ str r0, [r5, #0x30]
+ add sp, #0x68
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E10B0
+MOD14_021E10B0: ; 0x021E10B0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x4c]
+ cmp r0, #0
+ bne _021E10EE
+ mov r0, #0xa
+ mov r1, #0xc
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _021E10EA
+ ldr r0, [r5, #0x10]
+ bl MOD14_021DC42C
+ ldrb r0, [r0, #0xf]
+ cmp r0, #0
+ beq _021E10D6
+ mov r0, #4
+ b _021E10D8
+_021E10D6:
+ mov r0, #0
+_021E10D8:
+ strh r0, [r4]
+ ldr r0, _021E10F0 ; =MOD14_021E115C
+ str r5, [r4, #8]
+ add r1, r4, #0
+ mov r2, #1
+ bl FUN_0200CA44
+ str r0, [r5, #0x4c]
+ pop {r3, r4, r5, pc}
+_021E10EA:
+ bl ErrorHandling
+_021E10EE:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021E10F0: .word MOD14_021E115C
+
+ thumb_func_start MOD14_021E10F4
+MOD14_021E10F4: ; 0x021E10F4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x4c]
+ cmp r0, #0
+ beq _021E1110
+ bl FUN_0201B6C8
+ bl FUN_02016A18
+ ldr r0, [r4, #0x4c]
+ bl FUN_0200CAB4
+ mov r0, #0
+ str r0, [r4, #0x4c]
+_021E1110:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E1114
+MOD14_021E1114: ; 0x021E1114
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x4c]
+ bl FUN_0201B6C8
+ add r4, r0, #0
+ beq _021E113C
+ ldr r0, [r5, #0x10]
+ bl MOD14_021DC42C
+ ldrb r0, [r0, #0xf]
+ cmp r0, #0
+ beq _021E1132
+ mov r0, #4
+ b _021E1134
+_021E1132:
+ mov r0, #0
+_021E1134:
+ strh r0, [r4]
+ add r0, r5, #0
+ bl MOD14_021E1268
+_021E113C:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E1140
+MOD14_021E1140: ; 0x021E1140
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x4c]
+ bl FUN_0201B6C8
+ cmp r0, #0
+ beq _021E1158
+ mov r1, #4
+ strh r1, [r0]
+ add r0, r4, #0
+ bl MOD14_021E1268
+_021E1158:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E115C
+MOD14_021E115C: ; 0x021E115C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldrh r0, [r4]
+ ldr r5, [r4, #8]
+ cmp r0, #4
+ bhi _021E1220
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021E1174: ; jump table
+ .short _021E117E - _021E1174 - 2 ; case 0
+ .short _021E1190 - _021E1174 - 2 ; case 1
+ .short _021E11B0 - _021E1174 - 2 ; case 2
+ .short _021E11CE - _021E1174 - 2 ; case 3
+ .short _021E1220 - _021E1174 - 2 ; case 4
+_021E117E:
+ ldr r0, [r5, #0x10]
+ bl MOD14_021DC408
+ cmp r0, #0
+ beq _021E1220
+ mov r0, #0
+ strh r0, [r4, #2]
+ mov r0, #1
+ strh r0, [r4]
+_021E1190:
+ ldr r0, [r5, #4]
+ ldrh r2, [r4, #2]
+ add r0, #0x30
+ add r1, r5, #0
+ mov r3, #0
+ bl MOD14_021E12B8
+ ldr r0, [r5, #4]
+ add r0, #0x30
+ bl FUN_02019548
+ mov r0, #0
+ strh r0, [r4, #4]
+ mov r0, #2
+ strh r0, [r4]
+ pop {r3, r4, r5, pc}
+_021E11B0:
+ ldrh r0, [r4, #4]
+ add r0, r0, #1
+ strh r0, [r4, #4]
+ ldrh r0, [r4, #4]
+ cmp r0, #0x50
+ bls _021E1220
+ add r0, r4, #0
+ bl MOD14_021E1284
+ mov r0, #0
+ strh r0, [r4, #4]
+ strh r0, [r4, #6]
+ mov r0, #3
+ strh r0, [r4]
+ pop {r3, r4, r5, pc}
+_021E11CE:
+ ldrh r0, [r4, #6]
+ mov r1, #1
+ lsl r1, r1, #0xe
+ add r0, r0, #4
+ strh r0, [r4, #6]
+ add r0, r5, #0
+ bl MOD14_021E1224
+ ldr r0, [r5, #4]
+ mov r1, #0
+ add r0, #0x30
+ mov r2, #4
+ add r3, r1, #0
+ bl FUN_0201A8C8
+ ldr r0, [r5, #4]
+ add r0, #0x30
+ bl FUN_02019548
+ ldrh r0, [r4, #6]
+ cmp r0, #0x10
+ blo _021E1220
+ ldrh r0, [r4, #2]
+ cmp r0, #1
+ bne _021E1206
+ add r0, r5, #0
+ bl MOD14_021E1268
+_021E1206:
+ ldrh r0, [r4, #2]
+ add r0, r0, #1
+ strh r0, [r4, #2]
+ ldrh r0, [r4, #2]
+ cmp r0, #4
+ blo _021E1216
+ mov r0, #0
+ strh r0, [r4, #2]
+_021E1216:
+ mov r0, #0
+ strh r0, [r4, #6]
+ strh r0, [r4, #4]
+ mov r0, #2
+ strh r0, [r4]
+_021E1220:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E1224
+MOD14_021E1224: ; 0x021E1224
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ add r7, r1, #0
+ mov r4, #0
+_021E122E:
+ ldr r0, [r5, #0x3c]
+ bl FUN_0202011C
+ add r6, r0, #0
+ add r3, sp, #0
+ ldmia r6!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r6]
+ add r1, r2, #0
+ str r0, [r3]
+ ldr r0, [sp, #4]
+ sub r0, r0, r7
+ str r0, [sp, #4]
+ ldr r0, [r5, #0x3c]
+ bl FUN_02020044
+ cmp r4, #0
+ bne _021E125A
+ ldr r0, [r5, #0x3c]
+ bl FUN_02020128
+_021E125A:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #2
+ blt _021E122E
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E1268
+MOD14_021E1268: ; 0x021E1268
+ push {r4, r5, r6, lr}
+ mov r4, #0
+ add r5, r0, #0
+ add r6, r4, #0
+_021E1270:
+ ldr r0, [r5, #0x3c]
+ add r1, r6, #0
+ bl FUN_020200A0
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #2
+ blt _021E1270
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E1284
+MOD14_021E1284: ; 0x021E1284
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #8]
+ mov r1, #0
+ ldr r4, [r0, #4]
+ add r4, #0x30
+ add r0, r4, #0
+ bl FUN_02019620
+ ldrh r2, [r5, #2]
+ ldr r1, [r5, #8]
+ add r0, r4, #0
+ mov r3, #0
+ bl MOD14_021E12B8
+ ldrh r0, [r5, #2]
+ add r2, r0, #1
+ cmp r2, #4
+ blo _021E12AC
+ mov r2, #0
+_021E12AC:
+ ldr r1, [r5, #8]
+ add r0, r4, #0
+ mov r3, #1
+ bl MOD14_021E12B8
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD14_021E12B8
+MOD14_021E12B8: ; 0x021E12B8
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x1c
+ add r4, r1, #0
+ lsl r5, r3, #4
+ cmp r2, #3
+ bls _021E12C6
+ b _021E13E6
+_021E12C6:
+ add r1, r2, r2
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021E12D2: ; jump table
+ .short _021E12DA - _021E12D2 - 2 ; case 0
+ .short _021E12EC - _021E12D2 - 2 ; case 1
+ .short _021E12E0 - _021E12D2 - 2 ; case 2
+ .short _021E12E6 - _021E12D2 - 2 ; case 3
+_021E12DA:
+ ldr r1, [r4, #0x10]
+ ldr r2, [r1, #0x68]
+ b _021E13D2
+_021E12E0:
+ ldr r1, [r4, #0x10]
+ ldr r2, [r1, #0x6c]
+ b _021E13D2
+_021E12E6:
+ ldr r1, [r4, #0x10]
+ ldr r2, [r1, #0x70]
+ b _021E13D2
+_021E12EC:
+ bl FUN_0206E12C
+ ldr r0, [r4, #0x10]
+ add r0, #0x58
+ ldrb r0, [r0]
+ bl FUN_0206E0F0
+ bl FUN_0206E12C
+ add r6, r0, #0
+ ldr r0, [r4, #0x10]
+ add r0, #0x58
+ ldrb r0, [r0]
+ bl FUN_0206E0F0
+ mov r2, #0
+ add r1, r0, #0
+ mov r3, #0x2f
+ str r2, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0xa
+ str r0, [sp, #8]
+ add r0, r6, #0
+ lsl r3, r3, #0xa
+ bl FUN_02006A34
+ ldr r0, [r4, #0x3c]
+ bl FUN_0202011C
+ add r6, r0, #0
+ add r3, sp, #0x10
+ ldmia r6!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r6]
+ add r5, #0xb0
+ str r0, [r3]
+ lsl r0, r5, #0xc
+ str r0, [sp, #0x14]
+ ldr r0, [r4, #0x3c]
+ add r1, r2, #0
+ bl FUN_02020044
+ ldr r0, [r4, #0x10]
+ add r0, #0x58
+ ldrb r0, [r0]
+ bl FUN_0206E114
+ add r1, r0, #0
+ ldr r0, [r4, #0x3c]
+ add r1, #0xa
+ bl FUN_02020248
+ ldr r0, [r4, #0x3c]
+ mov r1, #1
+ bl FUN_020200A0
+ ldr r1, [r4, #0x10]
+ add r0, r1, #0
+ add r0, #0x59
+ add r1, #0x58
+ ldrb r5, [r0]
+ ldrb r0, [r1]
+ cmp r0, r5
+ beq _021E13C6
+ bl FUN_0206E12C
+ add r6, r0, #0
+ add r0, r5, #0
+ bl FUN_0206E0F0
+ mov r2, #0
+ add r1, r0, #0
+ mov r3, #0xbd
+ str r2, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0xa
+ str r0, [sp, #8]
+ add r0, r6, #0
+ lsl r3, r3, #8
+ bl FUN_02006A34
+ mov r0, #9
+ ldr r1, [sp, #0x10]
+ lsl r0, r0, #0xe
+ add r0, r1, r0
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #0x40]
+ add r1, sp, #0x10
+ bl FUN_02020044
+ ldr r0, [r4, #0x10]
+ add r0, #0x59
+ ldrb r0, [r0]
+ bl FUN_0206E114
+ add r1, r0, #0
+ ldr r0, [r4, #0x40]
+ add r1, #0xa
+ bl FUN_02020248
+ ldr r0, [r4, #0x40]
+ mov r1, #1
+ bl FUN_020200A0
+ add sp, #0x1c
+ pop {r3, r4, r5, r6, pc}
+_021E13C6:
+ ldr r0, [r4, #0x40]
+ mov r1, #0
+ bl FUN_020200A0
+ add sp, #0x1c
+ pop {r3, r4, r5, r6, pc}
+_021E13D2:
+ str r5, [sp]
+ mov r1, #0xff
+ str r1, [sp, #4]
+ ldr r1, _021E13EC ; =0x00090600
+ str r1, [sp, #8]
+ mov r1, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+_021E13E6:
+ add sp, #0x1c
+ pop {r3, r4, r5, r6, pc}
+ nop
+_021E13EC: .word 0x00090600
+
+ thumb_func_start MOD14_021E13F0
+MOD14_021E13F0: ; 0x021E13F0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _021E144E
+ ldr r0, [r4, #4]
+ mov r1, #0xf
+ bl FUN_02019620
+ ldr r0, [r4, #4]
+ mov r1, #0xf
+ add r0, #0x10
+ bl FUN_02019620
+ ldr r0, [r4, #4]
+ mov r1, #0xf
+ add r0, #0x20
+ bl FUN_02019620
+ ldr r0, [r4, #4]
+ mov r1, #0
+ add r0, #0x30
+ bl FUN_02019620
+ ldr r0, [r4, #0x10]
+ bl MOD14_021DC408
+ cmp r0, #0
+ beq _021E1430
+ add r0, r4, #0
+ bl MOD14_021E153C
+_021E1430:
+ ldr r0, [r4, #4]
+ bl FUN_02019548
+ ldr r0, [r4, #4]
+ add r0, #0x10
+ bl FUN_02019548
+ ldr r0, [r4, #4]
+ add r0, #0x20
+ bl FUN_02019548
+ ldr r0, [r4, #4]
+ add r0, #0x30
+ bl FUN_02019548
+_021E144E:
+ pop {r4, pc}
+
+ thumb_func_start MOD14_021E1450
+MOD14_021E1450: ; 0x021E1450
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _021E14CC
+ ldr r0, [r4, #4]
+ mov r1, #0xf
+ bl FUN_02019620
+ ldr r0, [r4, #4]
+ mov r1, #0xf
+ add r0, #0x10
+ bl FUN_02019620
+ ldr r0, [r4, #4]
+ mov r1, #0xf
+ add r0, #0x20
+ bl FUN_02019620
+ ldr r0, [r4, #4]
+ mov r1, #0
+ add r0, #0x30
+ bl FUN_02019620
+ ldr r0, [r4, #0x24]
+ cmp r0, #0
+ beq _021E148E
+ bl FUN_02007534
+ mov r0, #0
+ str r0, [r4, #0x24]
+_021E148E:
+ ldr r0, [r4, #0x10]
+ bl MOD14_021DC408
+ cmp r0, #0
+ beq _021E14A0
+ add r0, r4, #0
+ bl MOD14_021E153C
+ b _021E14A8
+_021E14A0:
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD14_021E16A0
+_021E14A8:
+ ldr r0, [r4, #4]
+ bl FUN_02019548
+ ldr r0, [r4, #4]
+ add r0, #0x10
+ bl FUN_02019548
+ ldr r0, [r4, #4]
+ add r0, #0x20
+ bl FUN_02019548
+ ldr r0, [r4, #4]
+ add r0, #0x30
+ bl FUN_02019548
+ add r0, r4, #0
+ bl MOD14_021E1114
+_021E14CC:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E14D0
+MOD14_021E14D0: ; 0x021E14D0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _021E153A
+ ldr r0, [r4, #4]
+ mov r1, #0xf
+ bl FUN_02019620
+ ldr r0, [r4, #4]
+ mov r1, #0xf
+ add r0, #0x10
+ bl FUN_02019620
+ ldr r0, [r4, #4]
+ mov r1, #0xf
+ add r0, #0x20
+ bl FUN_02019620
+ ldr r0, [r4, #4]
+ mov r1, #0
+ add r0, #0x30
+ bl FUN_02019620
+ ldr r0, [r4, #0x24]
+ cmp r0, #0
+ beq _021E150E
+ bl FUN_02007534
+ mov r0, #0
+ str r0, [r4, #0x24]
+_021E150E:
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD14_021E16A0
+ ldr r0, [r4, #4]
+ bl FUN_02019548
+ ldr r0, [r4, #4]
+ add r0, #0x10
+ bl FUN_02019548
+ ldr r0, [r4, #4]
+ add r0, #0x20
+ bl FUN_02019548
+ ldr r0, [r4, #4]
+ add r0, #0x30
+ bl FUN_02019548
+ add r0, r4, #0
+ bl MOD14_021E1140
+_021E153A:
+ pop {r4, pc}
+
+ thumb_func_start MOD14_021E153C
+MOD14_021E153C: ; 0x021E153C
+ push {r3, r4, r5, lr}
+ sub sp, #0x20
+ add r5, r0, #0
+ ldr r0, [r5, #0x10]
+ bl MOD14_021DC42C
+ mov r1, #0
+ add r4, r0, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021E1660 ; =0x0009060F
+ mov r3, #2
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [r5, #4]
+ ldr r2, [r4, #0x18]
+ bl FUN_0201BDE0
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021E1664 ; =0x0001020F
+ mov r3, #2
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [r5, #4]
+ ldr r2, [r4, #0x14]
+ add r0, #0x20
+ bl FUN_0201BDE0
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021E1664 ; =0x0001020F
+ mov r3, #2
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [r5, #4]
+ ldr r2, [r4, #0x14]
+ add r0, #0x20
+ bl FUN_0201BDE0
+ ldrb r0, [r4, #0xe]
+ cmp r0, #0
+ beq _021E15A2
+ cmp r0, #1
+ beq _021E15BE
+ b _021E15D8
+_021E15A2:
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021E1668 ; =0x0007080F
+ mov r3, #0x46
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [r5, #4]
+ ldr r2, [r5, #0x44]
+ add r0, #0x20
+ bl FUN_0201BDE0
+ b _021E15D8
+_021E15BE:
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021E166C ; =0x0003040F
+ mov r3, #0x46
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [r5, #4]
+ ldr r2, [r5, #0x48]
+ add r0, #0x20
+ bl FUN_0201BDE0
+_021E15D8:
+ ldrb r0, [r4, #0xf]
+ cmp r0, #0
+ bne _021E1632
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021E1670 ; =0x00090600
+ add r3, r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [r5, #4]
+ ldr r2, [r4, #0x1c]
+ add r0, #0x30
+ bl FUN_0201BDE0
+ ldrh r2, [r4, #8]
+ cmp r2, #0
+ beq _021E1616
+ mov r1, #2
+ str r1, [sp]
+ ldr r0, [r5, #4]
+ mov r3, #3
+ add r0, #0x10
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ ldr r0, [r5, #0x18]
+ bl FUN_0200BA78
+_021E1616:
+ mov r1, #1
+ str r1, [sp]
+ ldr r0, [r5, #4]
+ mov r3, #3
+ add r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r0, #0x10
+ str r0, [sp, #0xc]
+ ldrb r2, [r4, #0xa]
+ ldr r0, [r5, #0x1c]
+ bl FUN_0200BA78
+_021E1632:
+ ldr r1, [r4]
+ add r0, sp, #0x10
+ mov r2, #2
+ bl FUN_02068B70
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ ldr r0, [r5, #0x20]
+ add r1, sp, #0x10
+ mov r2, #0x2c
+ mov r3, #0x54
+ bl FUN_020073A0
+ str r0, [r5, #0x24]
+ ldrb r1, [r4, #0xb]
+ add r0, r5, #0
+ bl MOD14_021E16A0
+ add sp, #0x20
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021E1660: .word 0x0009060F
+_021E1664: .word 0x0001020F
+_021E1668: .word 0x0007080F
+_021E166C: .word 0x0003040F
+_021E1670: .word 0x00090600
+
+ thumb_func_start MOD14_021E1674
+MOD14_021E1674: ; 0x021E1674
+ mov r0, #1
+ bx lr
+
+ thumb_func_start MOD14_021E1678
+MOD14_021E1678: ; 0x021E1678
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _021E169C
+ ldr r0, [r4, #0x10]
+ bl MOD14_021DC408
+ cmp r0, #0
+ beq _021E169C
+ ldr r0, [r4, #0x10]
+ bl MOD14_021DC42C
+ add r1, r0, #0
+ ldrb r1, [r1, #0xb]
+ add r0, r4, #0
+ bl MOD14_021E16A0
+_021E169C:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E16A0
+MOD14_021E16A0: ; 0x021E16A0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ str r0, [sp, #4]
+ add r4, r1, #0
+ ldr r0, [r0, #8]
+ mov r1, #2
+ bl FUN_0201886C
+ mov ip, r0
+ add r2, r0, #0
+ mov r0, #1
+ ldr r6, _021E1700 ; =0x000004C8
+ mov r1, #0
+ lsl r7, r0, #0xd
+_021E16BC:
+ add r3, r0, #0
+ lsl r3, r1
+ tst r3, r4
+ beq _021E16CE
+ add r3, r1, #0
+ add r3, #0x98
+ orr r3, r7
+ strh r3, [r2, r6]
+ b _021E16DC
+_021E16CE:
+ add r5, r1, #0
+ mov r3, #2
+ add r5, #0x84
+ lsl r3, r3, #0xc
+ orr r5, r3
+ ldr r3, _021E1700 ; =0x000004C8
+ strh r5, [r2, r3]
+_021E16DC:
+ add r1, r1, #1
+ add r2, r2, #2
+ cmp r1, #6
+ blt _021E16BC
+ mov r2, #0x99
+ lsl r2, r2, #2
+ ldr r0, [sp, #4]
+ str r2, [sp]
+ lsl r3, r2, #1
+ mov r2, ip
+ add r2, r2, r3
+ ldr r0, [r0, #8]
+ mov r1, #2
+ mov r3, #0xc
+ bl FUN_02017CE8
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021E1700: .word 0x000004C8
+
+ thumb_func_start MOD14_021E1704
+MOD14_021E1704: ; 0x021E1704
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ ldr r0, [r5]
+ cmp r0, #0
+ beq _021E1748
+ ldr r0, [r5, #0x10]
+ bl MOD14_021DC42C
+ add r4, r0, #0
+ ldr r0, [r5, #4]
+ mov r1, #0
+ add r0, #0x30
+ bl FUN_02019620
+ ldrb r0, [r4, #0xf]
+ cmp r0, #0
+ bne _021E1742
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021E174C ; =0x00090600
+ add r3, r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [r5, #4]
+ ldr r2, [r4, #0x1c]
+ add r0, #0x30
+ bl FUN_0201BDE0
+_021E1742:
+ add r0, r5, #0
+ bl MOD14_021E1114
+_021E1748:
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021E174C: .word 0x00090600
+
+ thumb_func_start MOD14_021E1750
+MOD14_021E1750: ; 0x021E1750
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ str r1, [r4, #0xc]
+ str r3, [r4]
+ str r2, [r4, #8]
+ ldr r0, [sp, #0x18]
+ mov r1, #0x1a
+ str r0, [r4, #0x2c]
+ ldr r0, [sp, #0x1c]
+ mov r2, #0xe
+ str r0, [r4, #0x20]
+ ldr r0, [sp, #0x14]
+ mov r3, #0xa
+ str r0, [r4, #0x10]
+ mov r0, #0
+ bl FUN_0200A86C
+ str r0, [r4, #0x14]
+ mov r0, #0x40
+ mov r1, #0xa
+ bl FUN_020219F4
+ str r0, [r4, #0x30]
+ mov r0, #0x40
+ mov r1, #0xa
+ bl FUN_020219F4
+ str r0, [r4, #0x34]
+ mov r0, #0
+ strh r0, [r4, #0x1c]
+ strh r0, [r4, #0x1e]
+ str r0, [r4, #0x18]
+ mov r0, #0xa
+ add r3, r4, #0
+ str r0, [sp]
+ mov r0, #0x12
+ mov r1, #0x19
+ mov r2, #1
+ add r3, #0x28
+ bl FUN_02006BB0
+ str r0, [r4, #0x24]
+ cmp r0, #0
+ beq _021E17B6
+ ldr r0, [r4, #0x30]
+ cmp r0, #0
+ beq _021E17B6
+ ldr r0, [r4, #0x34]
+ cmp r0, #0
+ bne _021E17BC
+_021E17B6:
+ add sp, #4
+ mov r0, #0
+ pop {r3, r4, pc}
+_021E17BC:
+ mov r0, #1
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E17C4
+MOD14_021E17C4: ; 0x021E17C4
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x18]
+ cmp r0, #0
+ beq _021E1814
+ mov r6, #0
+ add r4, r6, #0
+_021E17D2:
+ ldr r0, [r5, #0x18]
+ add r0, r0, r4
+ bl FUN_02019178
+ add r6, r6, #1
+ add r4, #0x10
+ cmp r6, #2
+ blt _021E17D2
+ ldr r0, [r5, #0x24]
+ cmp r0, #0
+ beq _021E17EC
+ bl FUN_02016A18
+_021E17EC:
+ ldr r0, [r5, #0x14]
+ cmp r0, #0
+ beq _021E17F6
+ bl FUN_0200A8B8
+_021E17F6:
+ ldr r0, [r5, #0x30]
+ cmp r0, #0
+ beq _021E1800
+ bl FUN_02021A20
+_021E1800:
+ ldr r0, [r5, #0x34]
+ cmp r0, #0
+ beq _021E180A
+ bl FUN_02021A20
+_021E180A:
+ ldr r0, [r5, #0x18]
+ bl FUN_02016A18
+ mov r0, #0
+ str r0, [r5, #0x18]
+_021E1814:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E1818
+MOD14_021E1818: ; 0x021E1818
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r6, r0, #0
+ mov r0, #0xa
+ mov r1, #2
+ bl FUN_02018FF4
+ str r0, [r6, #0x18]
+ cmp r0, #0
+ beq _021E1848
+ mov r7, #0
+ ldr r4, _021E1894 ; =0x021E6614
+ add r5, r7, #0
+_021E1832:
+ ldr r1, [r6, #0x18]
+ ldr r0, [r6]
+ add r1, r1, r5
+ add r2, r4, #0
+ bl FUN_02019150
+ add r7, r7, #1
+ add r4, #8
+ add r5, #0x10
+ cmp r7, #2
+ blt _021E1832
+_021E1848:
+ mov r0, #2
+ lsl r0, r0, #8
+ str r0, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ mov r0, #0xa
+ str r0, [sp, #0xc]
+ ldr r2, [r6]
+ mov r0, #0x26
+ mov r3, #1
+ bl FUN_0200687C
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ mov r0, #0x26
+ mov r1, #0x18
+ mov r2, #0
+ mov r3, #0xe0
+ bl FUN_02006930
+ ldr r0, [r6, #0x20]
+ ldr r2, _021E1898 ; =0x00000209
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ ldr r0, [r6]
+ mov r1, #1
+ mov r3, #8
+ bl FUN_0200CD68
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021E1894: .word 0x021E6614
+_021E1898: .word 0x00000209
+
+ thumb_func_start MOD14_021E189C
+MOD14_021E189C: ; 0x021E189C
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ ldr r0, [r5, #0x18]
+ add r4, r1, #0
+ bl FUN_02019270
+ ldr r3, [r5, #0x18]
+ ldrb r0, [r3, #7]
+ str r0, [sp]
+ ldrb r0, [r3, #8]
+ str r0, [sp, #4]
+ ldrb r1, [r3, #4]
+ ldrb r2, [r3, #5]
+ ldrb r3, [r3, #6]
+ ldr r0, [r5]
+ bl MOD14_021E1908
+ ldr r0, [r5, #0x18]
+ mov r1, #0xf
+ bl FUN_02019620
+ ldr r0, [r5, #0x10]
+ ldr r2, [r5, #0x30]
+ add r1, r4, #0
+ bl FUN_0200A8E0
+ ldr r0, [r5, #0x2c]
+ ldr r1, [r5, #0x34]
+ ldr r2, [r5, #0x30]
+ bl FUN_0200B7B8
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ str r3, [sp, #8]
+ ldr r0, [r5, #0x18]
+ ldr r2, [r5, #0x34]
+ mov r1, #1
+ bl FUN_0201BD84
+ ldr r0, [r5, #0x18]
+ bl FUN_02019548
+ ldr r0, [r5]
+ mov r1, #1
+ bl FUN_02017CD0
+ mov r0, #1
+ strh r0, [r5, #0x1c]
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E1908
+MOD14_021E1908: ; 0x021E1908
+ push {r3, r4, r5, r6, r7, lr}
+ lsl r1, r1, #0x18
+ add r7, r3, #0
+ lsr r1, r1, #0x18
+ add r6, r2, #0
+ ldr r4, [sp, #0x18]
+ ldr r5, [sp, #0x1c]
+ bl FUN_0201886C
+ sub r1, r7, #1
+ sub r2, r6, #2
+ lsl r1, r1, #5
+ add r1, r2, r1
+ lsl r3, r1, #1
+ ldr r2, _021E19AC ; =0x00008209
+ add r1, r0, r3
+ strh r2, [r0, r3]
+ add r0, r2, #1
+ mov r2, #0
+ strh r0, [r1, #2]
+ cmp r4, #0
+ bls _021E1942
+ ldr r0, _021E19B0 ; =0x0000820B
+ add r3, r1, #0
+_021E1938:
+ add r2, r2, #1
+ strh r0, [r3, #4]
+ add r3, r3, #2
+ cmp r2, r4
+ blo _021E1938
+_021E1942:
+ lsl r0, r4, #1
+ add r2, r1, r0
+ ldr r3, _021E19B4 ; =0x0000820C
+ mov ip, r0
+ strh r3, [r2, #4]
+ add r0, r3, #1
+ strh r0, [r2, #6]
+ add r0, r3, #2
+ strh r0, [r2, #8]
+ add r1, #0x40
+ mov r3, #0
+ cmp r5, #0
+ bls _021E197E
+ mov r0, ip
+ add r2, r0, r1
+ ldr r0, _021E19B8 ; =0x0000820F
+ add r7, r0, #1
+_021E1964:
+ strh r0, [r1]
+ strh r7, [r1, #2]
+ ldr r6, _021E19BC ; =0x00008212
+ add r3, r3, #1
+ strh r6, [r2, #4]
+ add r6, r6, #1
+ strh r6, [r2, #6]
+ ldr r6, _021E19C0 ; =0x00008214
+ add r1, #0x40
+ strh r6, [r2, #8]
+ add r2, #0x40
+ cmp r3, r5
+ blo _021E1964
+_021E197E:
+ ldr r0, _021E19C4 ; =0x00008215
+ mov r3, #0
+ strh r0, [r1]
+ add r0, r0, #1
+ strh r0, [r1, #2]
+ cmp r4, #0
+ bls _021E199A
+ ldr r0, _021E19C8 ; =0x00008217
+ add r2, r1, #0
+_021E1990:
+ add r3, r3, #1
+ strh r0, [r2, #4]
+ add r2, r2, #2
+ cmp r3, r4
+ blo _021E1990
+_021E199A:
+ mov r0, ip
+ ldr r2, _021E19CC ; =0x00008218
+ add r1, r1, r0
+ strh r2, [r1, #4]
+ add r0, r2, #1
+ strh r0, [r1, #6]
+ add r0, r2, #2
+ strh r0, [r1, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021E19AC: .word 0x00008209
+_021E19B0: .word 0x0000820B
+_021E19B4: .word 0x0000820C
+_021E19B8: .word 0x0000820F
+_021E19BC: .word 0x00008212
+_021E19C0: .word 0x00008214
+_021E19C4: .word 0x00008215
+_021E19C8: .word 0x00008217
+_021E19CC: .word 0x00008218
+
+ thumb_func_start MOD14_021E19D0
+MOD14_021E19D0: ; 0x021E19D0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ ldrh r0, [r5, #0x1e]
+ str r1, [sp, #0x10]
+ cmp r0, #0
+ beq _021E19E8
+ ldr r1, [r5, #0x18]
+ ldr r0, [r5]
+ add r1, #0x10
+ bl MOD14_021E1CA0
+_021E19E8:
+ ldr r0, [r5, #0x18]
+ mov r1, #0xf
+ str r0, [sp, #0x14]
+ add r0, #0x10
+ str r0, [sp, #0x14]
+ bl FUN_02019620
+ ldr r0, [sp, #0x10]
+ mov r6, #0
+ add r0, #0x21
+ ldrb r1, [r0]
+ mov r0, #8
+ sub r0, r0, r1
+ lsl r7, r0, #4
+ cmp r1, #0
+ bls _021E1A5C
+ ldr r4, [sp, #0x10]
+_021E1A0A:
+ ldr r3, [r4]
+ cmp r3, #0x38
+ blt _021E1A26
+ cmp r3, #0x3d
+ bgt _021E1A26
+ ldr r2, [sp, #0x10]
+ ldr r1, [sp, #0x14]
+ add r2, #0x22
+ ldrb r2, [r2]
+ add r0, r5, #0
+ sub r3, #0x38
+ bl MOD14_021E1A8C
+ b _021E1A4C
+_021E1A26:
+ add r3, #0x18
+ ldr r0, [r5, #0x14]
+ ldr r2, [r5, #0x30]
+ add r1, r3, #0
+ bl FUN_0200A8E0
+ str r7, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021E1A88 ; =0x000B0C0F
+ mov r1, #0
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x14]
+ ldr r2, [r5, #0x30]
+ mov r3, #0xa
+ bl FUN_0201BDE0
+_021E1A4C:
+ ldr r0, [sp, #0x10]
+ add r6, r6, #1
+ add r0, #0x21
+ ldrb r0, [r0]
+ add r7, #0x10
+ add r4, r4, #4
+ cmp r6, r0
+ blo _021E1A0A
+_021E1A5C:
+ ldr r1, [sp, #0x10]
+ add r0, r5, #0
+ bl MOD14_021E1B9C
+ ldr r1, [sp, #0x10]
+ add r0, r5, #0
+ add r1, #0x21
+ str r1, [sp, #0x10]
+ ldrb r1, [r1]
+ bl MOD14_021E1AD8
+ ldr r0, [sp, #0x14]
+ bl FUN_02019548
+ ldr r0, [r5]
+ mov r1, #1
+ bl FUN_02017CD0
+ mov r0, #1
+ strh r0, [r5, #0x1e]
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021E1A88: .word 0x000B0C0F
+
+ thumb_func_start MOD14_021E1A8C
+MOD14_021E1A8C: ; 0x021E1A8C
+ push {r4, r5, lr}
+ sub sp, #0x1c
+ add r5, r0, #0
+ mov r0, #1
+ lsl r0, r3
+ tst r0, r2
+ beq _021E1A9E
+ mov r4, #0
+ b _021E1AA0
+_021E1A9E:
+ mov r4, #8
+_021E1AA0:
+ mov r0, #0x30
+ str r0, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ mov r0, #0x2c
+ str r0, [sp, #8]
+ lsl r0, r3, #4
+ add r0, r0, #4
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0xc]
+ mov r0, #8
+ str r0, [sp, #0x10]
+ lsl r2, r3, #0x13
+ str r0, [sp, #0x14]
+ mov r0, #0xff
+ str r0, [sp, #0x18]
+ add r0, r1, #0
+ ldr r1, [r5, #0x28]
+ lsl r3, r4, #0x10
+ ldr r1, [r1, #0x14]
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x10
+ bl FUN_02019684
+ add sp, #0x1c
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E1AD8
+MOD14_021E1AD8: ; 0x021E1AD8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ str r0, [sp, #8]
+ add r5, r1, #0
+ ldr r0, [r0]
+ mov r1, #1
+ bl FUN_0201886C
+ mov r2, #8
+ sub r2, r2, r5
+ mov ip, r2
+ add r0, #0xe6
+ lsl r2, r2, #7
+ add r2, r0, r2
+ ldr r1, _021E1B40 ; =0x00000251
+ mov r3, #0x18
+ mov r0, ip
+ mul r3, r0
+ add r4, r1, r3
+ mov r6, #0
+ lsl r7, r5, #1
+ beq _021E1B24
+ mov r0, #1
+ lsl r0, r0, #0xe
+_021E1B08:
+ mov r3, #0
+ add r5, r2, #0
+_021E1B0C:
+ add r1, r4, #0
+ orr r1, r0
+ strh r1, [r5]
+ add r3, r3, #1
+ add r4, r4, #1
+ add r5, r5, #2
+ cmp r3, #0xc
+ blo _021E1B0C
+ add r6, r6, #1
+ add r2, #0x40
+ cmp r6, r7
+ blo _021E1B08
+_021E1B24:
+ mov r0, #0xc
+ str r0, [sp]
+ mov r3, ip
+ lsl r3, r3, #1
+ ldr r0, [sp, #8]
+ str r7, [sp, #4]
+ ldr r0, [r0]
+ mov r1, #1
+ mov r2, #0x13
+ add r3, r3, #3
+ bl MOD14_021E1C10
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021E1B40: .word 0x00000251
+
+ thumb_func_start MOD14_021E1B44
+MOD14_021E1B44: ; 0x021E1B44
+ push {r4, lr}
+ add r4, r0, #0
+ ldrh r0, [r4, #0x1c]
+ cmp r0, #0
+ beq _021E1B5A
+ ldr r0, [r4]
+ ldr r1, [r4, #0x18]
+ bl MOD14_021E1CEC
+ mov r0, #0
+ strh r0, [r4, #0x1c]
+_021E1B5A:
+ ldrh r0, [r4, #0x1e]
+ cmp r0, #0
+ beq _021E1B6E
+ ldr r1, [r4, #0x18]
+ ldr r0, [r4]
+ add r1, #0x10
+ bl MOD14_021E1CA0
+ mov r0, #0
+ strh r0, [r4, #0x1e]
+_021E1B6E:
+ ldr r0, [r4]
+ mov r1, #1
+ bl FUN_02017CD0
+ pop {r4, pc}
+
+ thumb_func_start MOD14_021E1B78
+MOD14_021E1B78: ; 0x021E1B78
+ push {r4, lr}
+ add r4, r0, #0
+ ldrh r0, [r4, #0x1e]
+ cmp r0, #0
+ beq _021E1B90
+ ldr r1, [r4, #0x18]
+ ldr r0, [r4]
+ add r1, #0x10
+ bl MOD14_021E1CA0
+ mov r0, #0
+ strh r0, [r4, #0x1e]
+_021E1B90:
+ ldr r0, [r4]
+ mov r1, #1
+ bl FUN_02017CD0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E1B9C
+MOD14_021E1B9C: ; 0x021E1B9C
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r6, r1, #0
+ ldr r4, [r0, #0x18]
+ add r0, r6, #0
+ add r0, #0x21
+ ldrb r1, [r0]
+ mov r0, #8
+ add r4, #0x10
+ sub r0, r0, r1
+ lsl r5, r0, #4
+ mov r0, #0xa
+ str r0, [sp]
+ lsl r0, r1, #0x14
+ lsr r0, r0, #0x10
+ lsl r3, r5, #0x10
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r1, #0xf
+ mov r2, #0
+ lsr r3, r3, #0x10
+ bl FUN_020196F4
+ add r6, #0x20
+ ldrb r2, [r6]
+ add r0, r4, #0
+ mov r1, #0
+ lsl r2, r2, #4
+ add r2, r5, r2
+ bl FUN_02002218
+ add r0, r4, #0
+ bl FUN_02019548
+ add sp, #8
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD14_021E1BE4
+MOD14_021E1BE4: ; 0x021E1BE4
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ ldr r4, [r6, #0x18]
+ add r7, r1, #0
+ add r4, #0x10
+ mov r5, #0
+_021E1BF0:
+ add r2, r7, #0
+ add r2, #0x22
+ ldrb r2, [r2]
+ add r0, r6, #0
+ add r1, r4, #0
+ add r3, r5, #0
+ bl MOD14_021E1A8C
+ add r5, r5, #1
+ cmp r5, #6
+ blt _021E1BF0
+ add r0, r4, #0
+ bl FUN_02019548
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E1C10
+MOD14_021E1C10: ; 0x021E1C10
+ push {r3, r4, r5, r6, r7, lr}
+ lsl r1, r1, #0x18
+ add r7, r3, #0
+ lsr r1, r1, #0x18
+ add r6, r2, #0
+ ldr r5, [sp, #0x18]
+ ldr r4, [sp, #0x1c]
+ bl FUN_0201886C
+ sub r1, r7, #1
+ sub r2, r6, #1
+ lsl r1, r1, #5
+ add r1, r2, r1
+ mov r2, #0x72
+ lsl r3, r1, #1
+ lsl r2, r2, #8
+ strh r2, [r0, r3]
+ add r1, r0, r3
+ mov r2, #0
+ cmp r5, #0
+ bls _021E1C48
+ ldr r0, _021E1C8C ; =0x00007201
+ add r3, r1, #0
+_021E1C3E:
+ add r2, r2, #1
+ strh r0, [r3, #2]
+ add r3, r3, #2
+ cmp r2, r5
+ blo _021E1C3E
+_021E1C48:
+ lsl r0, r5, #1
+ add r2, r1, r0
+ ldr r3, _021E1C90 ; =0x00007202
+ add r1, #0x40
+ mov r7, #0
+ strh r3, [r2, #2]
+ cmp r4, #0
+ bls _021E1C6C
+ ldr r2, _021E1C94 ; =0x00007205
+ add r6, r0, r1
+ add r3, r3, #1
+_021E1C5E:
+ strh r3, [r1]
+ strh r2, [r6, #2]
+ add r7, r7, #1
+ add r6, #0x40
+ add r1, #0x40
+ cmp r7, r4
+ blo _021E1C5E
+_021E1C6C:
+ ldr r2, _021E1C98 ; =0x00007206
+ mov r4, #0
+ strh r2, [r1]
+ cmp r5, #0
+ bls _021E1C84
+ add r3, r1, #0
+ add r2, r2, #1
+_021E1C7A:
+ add r4, r4, #1
+ strh r2, [r3, #2]
+ add r3, r3, #2
+ cmp r4, r5
+ blo _021E1C7A
+_021E1C84:
+ ldr r2, _021E1C9C ; =0x00007208
+ add r0, r1, r0
+ strh r2, [r0, #2]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021E1C8C: .word 0x00007201
+_021E1C90: .word 0x00007202
+_021E1C94: .word 0x00007205
+_021E1C98: .word 0x00007206
+_021E1C9C: .word 0x00007208
+
+ thumb_func_start MOD14_021E1CA0
+MOD14_021E1CA0: ; 0x021E1CA0
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ ldrb r1, [r4, #4]
+ bl FUN_0201886C
+ ldrb r1, [r4, #5]
+ mov r5, #0
+ sub r2, r1, #1
+ ldrb r1, [r4, #6]
+ sub r1, r1, #1
+ lsl r1, r1, #5
+ add r1, r2, r1
+ lsl r1, r1, #1
+ add r2, r0, r1
+ ldrb r0, [r4, #8]
+ add r0, r0, #2
+ beq _021E1CEA
+ add r0, r5, #0
+ add r1, r5, #0
+_021E1CC6:
+ ldrb r6, [r4, #7]
+ add r3, r1, #0
+ add r6, r6, #2
+ beq _021E1CDE
+ add r6, r2, #0
+_021E1CD0:
+ strh r0, [r6]
+ ldrb r7, [r4, #7]
+ add r3, r3, #1
+ add r6, r6, #2
+ add r7, r7, #2
+ cmp r3, r7
+ blo _021E1CD0
+_021E1CDE:
+ ldrb r3, [r4, #8]
+ add r5, r5, #1
+ add r2, #0x40
+ add r3, r3, #2
+ cmp r5, r3
+ blo _021E1CC6
+_021E1CEA:
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD14_021E1CEC
+MOD14_021E1CEC: ; 0x021E1CEC
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ ldrb r1, [r4, #4]
+ bl FUN_0201886C
+ ldrb r1, [r4, #5]
+ mov r5, #0
+ sub r2, r1, #2
+ ldrb r1, [r4, #6]
+ sub r1, r1, #1
+ lsl r1, r1, #5
+ add r1, r2, r1
+ lsl r1, r1, #1
+ add r2, r0, r1
+ ldrb r0, [r4, #8]
+ add r0, r0, #2
+ beq _021E1D36
+ add r0, r5, #0
+ add r1, r5, #0
+_021E1D12:
+ ldrb r6, [r4, #7]
+ add r3, r1, #0
+ add r6, r6, #5
+ beq _021E1D2A
+ add r6, r2, #0
+_021E1D1C:
+ strh r0, [r6]
+ ldrb r7, [r4, #7]
+ add r3, r3, #1
+ add r6, r6, #2
+ add r7, r7, #5
+ cmp r3, r7
+ blo _021E1D1C
+_021E1D2A:
+ ldrb r3, [r4, #8]
+ add r5, r5, #1
+ add r2, #0x40
+ add r3, r3, #2
+ cmp r5, r3
+ blo _021E1D12
+_021E1D36:
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD14_021E1D38
+MOD14_021E1D38: ; 0x021E1D38
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ str r1, [r5]
+ str r3, [r5, #4]
+ str r2, [r5, #0xc]
+ ldr r0, [sp, #0x30]
+ mov r4, #1
+ str r0, [r5, #8]
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ add r2, r3, #0
+ str r4, [sp, #8]
+ mov r0, #0xa
+ str r0, [sp, #0xc]
+ mov r0, #0x12
+ mov r1, #4
+ add r3, r4, #0
+ bl FUN_0200687C
+ mov r0, #0x12
+ mov r1, #0x1b
+ add r2, sp, #0x14
+ mov r3, #0xa
+ bl FUN_02006C08
+ add r4, r0, #0
+ ldr r0, [sp, #0x14]
+ add r1, r5, #0
+ ldr r0, [r0, #0xc]
+ add r1, #0xe4
+ mov r2, #0x40
+ bl MIi_CpuCopy16
+ add r0, r4, #0
+ bl FUN_02016A18
+ mov r0, #0x12
+ mov r1, #0x14
+ add r2, sp, #0x14
+ mov r3, #0xa
+ bl FUN_02006C08
+ add r4, r0, #0
+ ldr r0, [sp, #0x14]
+ mov r1, #0x49
+ lsl r1, r1, #2
+ ldr r0, [r0, #0xc]
+ add r1, r5, r1
+ mov r2, #0x20
+ bl MIi_CpuCopy16
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ mov r1, #0x2a
+ mov r4, #1
+ str r0, [sp, #0x10]
+ add r0, #0xe4
+ lsl r1, r1, #4
+ lsl r4, r4, #0x10
+ mov r7, #7
+ str r0, [sp, #0x10]
+ add r6, r0, r1
+_021E1DBC:
+ asr r0, r4, #0xc
+ str r0, [sp]
+ ldr r0, [sp, #0x10]
+ ldr r3, _021E1ED8 ; =0x00007FFF
+ add r1, r6, #0
+ mov r2, #0x30
+ bl MOD14_021DDE40
+ ldr r0, _021E1EDC ; =0x00002492
+ sub r7, r7, #1
+ sub r4, r4, r0
+ sub r6, #0x60
+ cmp r7, #1
+ bge _021E1DBC
+ add r0, r5, #0
+ mov r1, #3
+ add r0, #0xe4
+ lsl r1, r1, #8
+ bl DC_FlushRange
+ mov r0, #0xe1
+ lsl r0, r0, #2
+ mov r1, #0x1a
+ add r0, r5, r0
+ lsl r1, r1, #4
+ mov r2, #0x60
+ bl GX_LoadOBJPltt
+ add r0, r5, #0
+ mov r1, #0x1a
+ add r0, #0xe4
+ lsl r1, r1, #4
+ mov r2, #0x60
+ bl GXS_LoadOBJPltt
+ mov r0, #0xa
+ add r3, r5, #0
+ str r0, [sp]
+ mov r0, #0x12
+ mov r1, #0x11
+ mov r2, #1
+ add r3, #0x18
+ bl FUN_02006BB0
+ str r0, [r5, #0x14]
+ mov r0, #0xa
+ str r0, [sp]
+ mov r0, #0x12
+ add r3, r5, #0
+ add r1, r0, #0
+ mov r2, #1
+ add r3, #0x20
+ bl FUN_02006C30
+ str r0, [r5, #0x1c]
+ mov r0, #0xa
+ add r3, r5, #0
+ str r0, [sp]
+ mov r0, #0x12
+ mov r1, #2
+ mov r2, #1
+ add r3, #0x38
+ bl FUN_02006BDC
+ str r0, [r5, #0x34]
+ mov r0, #0xa
+ add r3, r5, #0
+ str r0, [sp]
+ mov r0, #0x12
+ mov r1, #3
+ mov r2, #1
+ add r3, #0x30
+ bl FUN_02006BDC
+ str r0, [r5, #0x2c]
+ mov r0, #2
+ mov r1, #0xd
+ mov r2, #4
+ mov r3, #0xa
+ bl FUN_0200B870
+ str r0, [r5, #0x44]
+ mov r0, #0x7d
+ lsl r0, r0, #2
+ mov r1, #0xa
+ bl FUN_020219F4
+ ldr r1, _021E1EE0 ; =0x00004BFC
+ ldr r2, _021E1EE4 ; =0x00000157
+ str r0, [r5, r1]
+ mov r0, #0
+ str r0, [r5, #0x10]
+ ldr r0, [r5, #0x18]
+ mov r1, #0x20
+ ldr r0, [r0, #0x14]
+ mov r3, #0xa
+ str r0, [r5, #0x3c]
+ add r0, r5, #0
+ add r0, #0x40
+ strh r1, [r0]
+ add r0, r5, #0
+ add r0, #0x42
+ strh r1, [r0]
+ mov r0, #1
+ mov r1, #0x1a
+ bl FUN_0200A86C
+ ldr r1, _021E1EE8 ; =0x00004BF8
+ add r2, r5, #0
+ str r0, [r5, r1]
+ mov r1, #0
+ add r0, r1, #0
+_021E1E9C:
+ add r1, r1, #1
+ str r0, [r2, #0x48]
+ add r2, r2, #4
+ cmp r1, #0x12
+ blt _021E1E9C
+ ldr r0, [r5, #0x14]
+ cmp r0, #0
+ beq _021E1ECC
+ ldr r0, [r5, #0x1c]
+ cmp r0, #0
+ beq _021E1ECC
+ ldr r0, [r5, #0x2c]
+ cmp r0, #0
+ beq _021E1ECC
+ ldr r0, [r5, #0x34]
+ cmp r0, #0
+ beq _021E1ECC
+ ldr r0, [r5, #0x44]
+ cmp r0, #0
+ beq _021E1ECC
+ ldr r0, _021E1EE0 ; =0x00004BFC
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ bne _021E1ED2
+_021E1ECC:
+ add sp, #0x18
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_021E1ED2:
+ mov r0, #1
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021E1ED8: .word 0x00007FFF
+_021E1EDC: .word 0x00002492
+_021E1EE0: .word 0x00004BFC
+_021E1EE4: .word 0x00000157
+_021E1EE8: .word 0x00004BF8
+
+ thumb_func_start MOD14_021E1EEC
+MOD14_021E1EEC: ; 0x021E1EEC
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ mov r0, #0xa
+ mov r1, #3
+ bl FUN_02018FF4
+ str r0, [r7, #0x10]
+ cmp r0, #0
+ beq _021E1F1A
+ mov r6, #0
+ ldr r4, _021E1F1C ; =0x021E662C
+ add r5, r6, #0
+_021E1F04:
+ ldr r1, [r7, #0x10]
+ ldr r0, [r7, #4]
+ add r1, r1, r5
+ add r2, r4, #0
+ bl FUN_02019150
+ add r6, r6, #1
+ add r4, #8
+ add r5, #0x10
+ cmp r6, #3
+ blo _021E1F04
+_021E1F1A:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021E1F1C: .word 0x021E662C
+
+ thumb_func_start MOD14_021E1F20
+MOD14_021E1F20: ; 0x021E1F20
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r0, _021E1F90 ; =0x00004BF8
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _021E1F30
+ bl FUN_0200A8B8
+_021E1F30:
+ ldr r0, [r5, #0x14]
+ cmp r0, #0
+ beq _021E1F3A
+ bl FUN_02016A18
+_021E1F3A:
+ ldr r0, [r5, #0x1c]
+ cmp r0, #0
+ beq _021E1F44
+ bl FUN_02016A18
+_021E1F44:
+ ldr r0, [r5, #0x2c]
+ cmp r0, #0
+ beq _021E1F4E
+ bl FUN_02016A18
+_021E1F4E:
+ ldr r0, [r5, #0x34]
+ cmp r0, #0
+ beq _021E1F58
+ bl FUN_02016A18
+_021E1F58:
+ ldr r0, [r5, #0x44]
+ cmp r0, #0
+ beq _021E1F62
+ bl FUN_0200B990
+_021E1F62:
+ ldr r0, _021E1F94 ; =0x00004BFC
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _021E1F6E
+ bl FUN_02021A20
+_021E1F6E:
+ ldr r0, [r5, #0x10]
+ cmp r0, #0
+ beq _021E1F8E
+ mov r6, #0
+ add r4, r6, #0
+_021E1F78:
+ ldr r0, [r5, #0x10]
+ add r0, r0, r4
+ bl FUN_02019178
+ add r6, r6, #1
+ add r4, #0x10
+ cmp r6, #3
+ blt _021E1F78
+ ldr r0, [r5, #0x10]
+ bl FUN_02016A18
+_021E1F8E:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021E1F90: .word 0x00004BF8
+_021E1F94: .word 0x00004BFC
+
+ thumb_func_start MOD14_021E1F98
+MOD14_021E1F98: ; 0x021E1F98
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0xc]
+ bl MOD14_021DC464
+ add r1, r4, #0
+ add r1, #0xe0
+ str r0, [r1]
+ add r0, r4, #0
+ bl MOD14_021E223C
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD14_021E247C
+ pop {r4, pc}
+
+ thumb_func_start MOD14_021E1FB8
+MOD14_021E1FB8: ; 0x021E1FB8
+ ldr r3, _021E1FBC ; =MOD14_021E24D8
+ bx r3
+ .align 2, 0
+_021E1FBC: .word MOD14_021E24D8
+
+ thumb_func_start MOD14_021E1FC0
+MOD14_021E1FC0: ; 0x021E1FC0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0xc]
+ bl MOD14_021DC464
+ add r1, r4, #0
+ add r1, #0xe0
+ str r0, [r1]
+ add r0, r4, #0
+ bl MOD14_021E2360
+ add r0, r4, #0
+ bl MOD14_021E2394
+ add r0, r4, #0
+ bl MOD14_021E240C
+ pop {r4, pc}
+
+ thumb_func_start MOD14_021E1FE4
+MOD14_021E1FE4: ; 0x021E1FE4
+ ldr r3, _021E1FEC ; =MOD14_021E247C
+ mov r1, #1
+ bx r3
+ nop
+_021E1FEC: .word MOD14_021E247C
+
+ thumb_func_start MOD14_021E1FF0
+MOD14_021E1FF0: ; 0x021E1FF0
+ ldr r3, _021E1FF4 ; =MOD14_021E24D8
+ bx r3
+ .align 2, 0
+_021E1FF4: .word MOD14_021E24D8
+
+ thumb_func_start MOD14_021E1FF8
+MOD14_021E1FF8: ; 0x021E1FF8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x34
+ str r0, [sp, #8]
+ ldr r0, [r0, #0xc]
+ str r1, [sp, #0xc]
+ str r2, [sp, #0x10]
+ str r3, [sp, #0x14]
+ bl MOD14_021DC44C
+ ldr r1, [sp, #0xc]
+ str r0, [sp, #0x28]
+ bl FUN_0206B43C
+ add r0, #0xd0
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ mov r0, #0xc
+ str r0, [sp]
+ ldr r0, [sp, #8]
+ str r1, [sp, #4]
+ add r0, #0x3c
+ mov r1, #9
+ mov r2, #0xa
+ mov r3, #0xe
+ bl FUN_02018F4C
+ mov r4, #0
+ mov r0, #0xc
+ str r4, [sp, #0x20]
+ str r0, [sp, #0x18]
+_021E2034:
+ mov r0, #0
+ str r0, [sp, #0x24]
+ ldr r0, [sp, #8]
+ mov r6, #0xa
+ str r0, [sp, #0x2c]
+ add r0, #0x3c
+ str r0, [sp, #0x2c]
+ ldr r0, [sp, #0x18]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x30]
+_021E204A:
+ ldr r0, [sp, #0x28]
+ ldr r1, [sp, #0xc]
+ add r2, r4, #0
+ bl FUN_0206B5E4
+ add r4, r4, #1
+ add r5, r0, #0
+ bl FUN_02066A6C
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x1c]
+ add r0, r5, #0
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020672BC
+ add r7, r0, #0
+ beq _021E20C8
+ add r0, r5, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl FUN_020672BC
+ cmp r0, #0
+ bne _021E209A
+ add r0, r5, #0
+ mov r1, #0x70
+ mov r2, #0
+ bl FUN_020672BC
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+ add r0, r7, #0
+ mov r2, #0x1b
+ bl FUN_02068654
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ b _021E20AA
+_021E209A:
+ ldr r0, _021E2174 ; =0x000001EA
+ cmp r7, r0
+ beq _021E20A4
+ mov r0, #8
+ b _021E20A6
+_021E20A4:
+ mov r0, #1
+_021E20A6:
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+_021E20AA:
+ ldr r0, _021E2178 ; =0x021E6644
+ ldr r2, [sp, #0x30]
+ ldrb r0, [r0, r1]
+ mov r3, #2
+ add r0, #0xe0
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ mov r0, #2
+ str r0, [sp]
+ str r1, [sp, #4]
+ lsl r1, r6, #0x10
+ ldr r0, [sp, #0x2c]
+ lsr r1, r1, #0x10
+ bl FUN_02018F4C
+_021E20C8:
+ ldr r1, [sp, #0x1c]
+ add r0, r5, #0
+ bl FUN_02066A94
+ ldr r0, [sp, #0x24]
+ add r6, r6, #2
+ add r0, r0, #1
+ str r0, [sp, #0x24]
+ cmp r0, #6
+ blo _021E204A
+ ldr r0, [sp, #0x18]
+ add r0, r0, #2
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x20]
+ add r0, r0, #1
+ str r0, [sp, #0x20]
+ cmp r0, #5
+ blo _021E2034
+ ldr r0, [sp, #0x48]
+ cmp r0, #0
+ beq _021E2132
+ ldr r0, [sp, #0x14]
+ cmp r0, #1
+ beq _021E20FE
+ cmp r0, #2
+ beq _021E2110
+ b _021E211E
+_021E20FE:
+ mov r0, #1
+ lsl r0, r0, #0x1a
+ ldr r1, [r0]
+ ldr r0, _021E217C ; =0x00300010
+ and r1, r0
+ ldr r0, [sp, #8]
+ ldr r0, [r0, #0x18]
+ str r1, [r0, #8]
+ b _021E211E
+_021E2110:
+ ldr r0, _021E2180 ; =0x04001000
+ ldr r1, [r0]
+ ldr r0, _021E217C ; =0x00300010
+ and r1, r0
+ ldr r0, [sp, #8]
+ ldr r0, [r0, #0x18]
+ str r1, [r0, #8]
+_021E211E:
+ ldr r0, [sp, #8]
+ ldr r1, [sp, #0x10]
+ ldr r0, [r0, #0x18]
+ ldr r2, [sp, #0x14]
+ ldr r3, [sp, #0x48]
+ lsl r1, r1, #5
+ bl FUN_020B1768
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+_021E2132:
+ ldr r0, [sp, #8]
+ ldr r1, [r0, #0x18]
+ ldr r0, [r1, #0x14]
+ ldr r1, [r1, #0x10]
+ bl DC_FlushRange
+ ldr r0, [sp, #0x14]
+ cmp r0, #1
+ beq _021E214C
+ cmp r0, #2
+ beq _021E2160
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+_021E214C:
+ ldr r0, [sp, #8]
+ ldr r1, [sp, #0x10]
+ ldr r2, [r0, #0x18]
+ lsl r1, r1, #5
+ ldr r0, [r2, #0x14]
+ ldr r2, [r2, #0x10]
+ bl GX_LoadOBJ
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+_021E2160:
+ ldr r0, [sp, #8]
+ ldr r1, [sp, #0x10]
+ ldr r2, [r0, #0x18]
+ lsl r1, r1, #5
+ ldr r0, [r2, #0x14]
+ ldr r2, [r2, #0x10]
+ bl GXS_LoadOBJ
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021E2174: .word 0x000001EA
+_021E2178: .word 0x021E6644
+_021E217C: .word 0x00300010
+_021E2180: .word 0x04001000
+
+ thumb_func_start MOD14_021E2184
+MOD14_021E2184: ; 0x021E2184
+ ldr r0, [r0, #0x20]
+ bx lr
+
+ thumb_func_start MOD14_021E2188
+MOD14_021E2188: ; 0x021E2188
+ add r0, #0xe0
+ ldr r0, [r0]
+ sub r0, r0, #3
+ bpl _021E2192
+ add r0, #0x12
+_021E2192:
+ bx lr
+
+ thumb_func_start MOD14_021E2194
+MOD14_021E2194: ; 0x021E2194
+ push {r3, r4}
+ mov r4, #0
+ ldr r1, _021E21AC ; =0x00004BE4
+ add r3, r4, #0
+_021E219C:
+ add r2, r0, r4
+ add r4, r4, #1
+ strb r3, [r2, r1]
+ cmp r4, #0x12
+ blt _021E219C
+ pop {r3, r4}
+ bx lr
+ nop
+_021E21AC: .word 0x00004BE4
+
+ thumb_func_start MOD14_021E21B0
+MOD14_021E21B0: ; 0x021E21B0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x18]
+ mov r2, #0xf9
+ add r4, r1, #0
+ lsl r2, r2, #2
+ add r3, r5, r2
+ lsl r1, r4, #0xa
+ ldr r0, [r0, #0x14]
+ add r1, r3, r1
+ add r2, #0x1c
+ bl MIi_CpuCopy32
+ mov r1, #0xf9
+ lsl r1, r1, #2
+ add r0, r5, r1
+ add r1, #0x1c
+ bl DC_FlushRange
+ ldr r0, _021E21E0 ; =0x00004BE4
+ mov r2, #1
+ add r1, r5, r4
+ strb r2, [r1, r0]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021E21E0: .word 0x00004BE4
+
+ thumb_func_start MOD14_021E21E4
+MOD14_021E21E4: ; 0x021E21E4
+ push {r4, r5, r6, lr}
+ sub sp, #0x28
+ add r5, r0, #0
+ mov r0, #0x63
+ lsl r1, r1, #5
+ lsl r0, r0, #4
+ add r6, r1, r0
+ add r4, r2, #0
+ ldr r0, _021E2238 ; =0x00004BE4
+ add r1, r5, r4
+ ldrb r0, [r1, r0]
+ cmp r0, #0
+ beq _021E2214
+ mov r2, #0xf9
+ lsl r2, r2, #2
+ add r1, r5, r2
+ lsl r0, r4, #0xa
+ add r0, r1, r0
+ lsl r1, r6, #5
+ add r2, #0x1c
+ bl GX_LoadOBJ
+ add sp, #0x28
+ pop {r4, r5, r6, pc}
+_021E2214:
+ add r0, sp, #4
+ bl FUN_020B1A24
+ add r0, sp, #4
+ str r0, [sp]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ mov r3, #1
+ bl MOD14_021E1FF8
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD14_021E21B0
+ add sp, #0x28
+ pop {r4, r5, r6, pc}
+ nop
+_021E2238: .word 0x00004BE4
+
+ thumb_func_start MOD14_021E223C
+MOD14_021E223C: ; 0x021E223C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x64
+ add r6, r0, #0
+ bl MOD14_021E2194
+ ldr r0, [r6]
+ bl MOD14_021DDD50
+ add r4, r0, #0
+ ldr r0, [r6]
+ bl MOD14_021DDD48
+ add r2, r0, #0
+ ldr r0, [r4, #4]
+ mov r1, #0
+ str r0, [sp]
+ str r1, [sp, #4]
+ ldr r3, [r6, #0x20]
+ add r0, sp, #0x40
+ bl MOD14_021DDDB4
+ add r0, r6, #0
+ bl MOD14_021E2188
+ add r7, r0, #0
+ mov r0, #0
+ str r0, [sp, #0xc]
+ mov r0, #0x63
+ lsl r0, r0, #4
+ str r0, [sp, #8]
+ add r4, r6, #0
+ mov r5, #0x20
+_021E227C:
+ add r0, sp, #0x1c
+ bl FUN_020B1A24
+ add r0, sp, #0x1c
+ str r0, [sp]
+ ldr r2, [sp, #8]
+ add r0, r6, #0
+ add r1, r7, #0
+ mov r3, #1
+ bl MOD14_021E1FF8
+ add r0, sp, #0x1c
+ str r0, [sp, #0x40]
+ mov r0, #0xb
+ str r0, [sp]
+ mov r0, #1
+ mov r2, #2
+ str r0, [sp, #4]
+ lsl r2, r2, #8
+ ldr r0, [r6, #8]
+ add r1, sp, #0x40
+ lsr r3, r2, #1
+ bl MOD14_021DDDD4
+ str r0, [r4, #0x48]
+ cmp r0, #0
+ bne _021E22B6
+ bl ErrorHandling
+_021E22B6:
+ ldr r0, [r4, #0x48]
+ mov r1, #0
+ bl FUN_020200A0
+ cmp r5, #0
+ ble _021E22D4
+ lsl r0, r5, #0xc
+ bl _fflt
+ add r1, r0, #0
+ mov r0, #0x3f
+ lsl r0, r0, #0x18
+ bl _fadd
+ b _021E22E2
+_021E22D4:
+ lsl r0, r5, #0xc
+ bl _fflt
+ mov r1, #0x3f
+ lsl r1, r1, #0x18
+ bl _fsub
+_021E22E2:
+ bl _ffix
+ str r0, [sp, #0x10]
+ mov r0, #0x16
+ lsl r0, r0, #0xe
+ str r0, [sp, #0x14]
+ mov r0, #0
+ str r0, [sp, #0x18]
+ ldr r0, [r4, #0x48]
+ add r1, sp, #0x10
+ bl FUN_02020044
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD14_021E21B0
+ add r7, r7, #1
+ cmp r7, #0x12
+ blt _021E230A
+ mov r7, #0
+_021E230A:
+ ldr r0, [sp, #8]
+ add r4, r4, #4
+ add r0, #0x20
+ str r0, [sp, #8]
+ ldr r0, [sp, #0xc]
+ add r5, #0x20
+ add r0, r0, #1
+ str r0, [sp, #0xc]
+ cmp r0, #7
+ blt _021E227C
+ mov r4, #0
+ add r5, r6, #0
+_021E2322:
+ ldr r0, [r6, #0xc]
+ bl MOD14_021DC44C
+ add r1, r4, #0
+ bl FUN_0206B4E4
+ add r1, r5, #0
+ add r1, #0x94
+ add r4, r4, #1
+ add r5, r5, #4
+ str r0, [r1]
+ cmp r4, #0x12
+ blt _021E2322
+ add sp, #0x64
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD14_021E2340
+MOD14_021E2340: ; 0x021E2340
+ push {r4, r5, r6, lr}
+ mov r4, #0
+ add r5, r0, #0
+ add r6, r4, #0
+_021E2348:
+ ldr r0, [r5, #0x48]
+ cmp r0, #0
+ beq _021E2354
+ bl FUN_0201FFC8
+ str r6, [r5, #0x48]
+_021E2354:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #7
+ blt _021E2348
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E2360
+MOD14_021E2360: ; 0x021E2360
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ bl MOD14_021E2188
+ add r4, r0, #0
+ mov r6, #0
+ add r5, r7, #0
+_021E236E:
+ add r0, r7, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD14_021E21E4
+ ldr r0, [r5, #0x48]
+ mov r1, #1
+ bl FUN_020200A0
+ add r4, r4, #1
+ cmp r4, #0x12
+ blt _021E2388
+ mov r4, #0
+_021E2388:
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #7
+ blt _021E236E
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E2394
+MOD14_021E2394: ; 0x021E2394
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ ldr r0, [r5, #0xc]
+ bl MOD14_021DC44C
+ add r1, r5, #0
+ ldr r2, _021E23F0 ; =0x00004BFC
+ add r1, #0xe0
+ ldr r1, [r1]
+ ldr r2, [r5, r2]
+ ldr r4, [r5, #0x10]
+ bl FUN_0206B484
+ ldr r1, _021E23F0 ; =0x00004BFC
+ mov r0, #0
+ ldr r1, [r5, r1]
+ add r2, r0, #0
+ bl FUN_02002E14
+ add r6, r0, #0
+ add r0, r4, #0
+ mov r1, #7
+ bl FUN_02019620
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021E23F4 ; =0x00020807
+ ldr r2, _021E23F0 ; =0x00004BFC
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r2, [r5, r2]
+ lsr r5, r6, #1
+ mov r3, #0x30
+ add r0, r4, #0
+ sub r3, r3, r5
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02019548
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ nop
+_021E23F0: .word 0x00004BFC
+_021E23F4: .word 0x00020807
+
+ thumb_func_start MOD14_021E23F8
+MOD14_021E23F8: ; 0x021E23F8
+ push {r4, lr}
+ ldr r4, [r0, #0x10]
+ mov r1, #7
+ add r0, r4, #0
+ bl FUN_02019620
+ add r0, r4, #0
+ bl FUN_02019548
+ pop {r4, pc}
+
+ thumb_func_start MOD14_021E240C
+MOD14_021E240C: ; 0x021E240C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r7, r0, #0
+ ldr r0, [r7, #0x10]
+ mov r1, #4
+ str r0, [sp, #0xc]
+ add r0, #0x10
+ str r0, [sp, #0xc]
+ bl FUN_02019620
+ add r0, r7, #0
+ bl MOD14_021E2188
+ mov r6, #0
+ add r4, r0, #0
+ add r5, r6, #0
+_021E242C:
+ ldr r0, [sp, #0xc]
+ lsl r1, r4, #2
+ str r0, [sp]
+ add r1, r7, r1
+ str r5, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ add r1, #0x94
+ mov r2, #2
+ ldr r0, [r7, #0x44]
+ ldr r1, [r1]
+ add r3, r2, #0
+ bl FUN_0200B9EC
+ add r4, r4, #1
+ cmp r4, #0x12
+ blt _021E2450
+ mov r4, #0
+_021E2450:
+ add r6, r6, #1
+ add r5, #0x20
+ cmp r6, #7
+ blt _021E242C
+ ldr r0, [sp, #0xc]
+ bl FUN_02019548
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E2464
+MOD14_021E2464: ; 0x021E2464
+ push {r4, lr}
+ ldr r4, [r0, #0x10]
+ mov r1, #4
+ add r4, #0x10
+ add r0, r4, #0
+ bl FUN_02019620
+ add r0, r4, #0
+ bl FUN_02019548
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E247C
+MOD14_021E247C: ; 0x021E247C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #0xa
+ mov r1, #0xc
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _021E24B6
+ ldr r0, _021E24B8 ; =0x021E6624
+ lsl r1, r6, #2
+ ldr r0, [r0, r1]
+ str r5, [r4]
+ mov r2, #0
+ strb r2, [r4, #4]
+ add r1, r4, #0
+ strb r2, [r4, #5]
+ bl FUN_0200CA44
+ add r1, r5, #0
+ add r1, #0xdc
+ add r5, #0xdc
+ str r0, [r1]
+ ldr r0, [r5]
+ cmp r0, #0
+ bne _021E24B6
+ add r0, r4, #0
+ bl FUN_02016A18
+_021E24B6:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021E24B8: .word 0x021E6624
+
+ thumb_func_start MOD14_021E24BC
+MOD14_021E24BC: ; 0x021E24BC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r1]
+ mov r2, #0
+ add r0, #0xdc
+ str r2, [r0]
+ add r0, r1, #0
+ bl FUN_02016A18
+ add r0, r4, #0
+ bl FUN_0200CAB4
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E24D8
+MOD14_021E24D8: ; 0x021E24D8
+ add r0, #0xdc
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _021E24E4
+ mov r0, #1
+ bx lr
+_021E24E4:
+ mov r0, #0
+ bx lr
+
+ thumb_func_start MOD14_021E24E8
+MOD14_021E24E8: ; 0x021E24E8
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x1c
+ add r4, r1, #0
+ ldrb r2, [r4, #4]
+ ldr r5, [r4]
+ cmp r2, #3
+ bls _021E24F8
+ b _021E260E
+_021E24F8:
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_021E2504: ; jump table
+ .short _021E250C - _021E2504 - 2 ; case 0
+ .short _021E2592 - _021E2504 - 2 ; case 1
+ .short _021E25B8 - _021E2504 - 2 ; case 2
+ .short _021E260A - _021E2504 - 2 ; case 3
+_021E250C:
+ ldrb r0, [r4, #5]
+ add r0, r0, #1
+ strb r0, [r4, #5]
+ ldrb r0, [r4, #5]
+ lsl r1, r0, #1
+ cmp r1, #0xa
+ bge _021E2562
+ mov r1, #0xa
+ sub r1, r1, r0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ str r1, [sp]
+ mov r1, #0x20
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ ldr r2, [r5, #0x30]
+ ldr r0, [r5, #4]
+ mov r1, #1
+ add r2, #0xc
+ mov r3, #0
+ bl FUN_02018148
+ ldrb r6, [r4, #5]
+ mov r0, #0x20
+ mov r3, #0xa
+ str r0, [sp]
+ str r6, [sp, #4]
+ ldr r1, [r5, #0x30]
+ mov r2, #0
+ add r1, #0xc
+ str r1, [sp, #8]
+ sub r1, r3, r6
+ lsl r1, r1, #0x18
+ str r2, [sp, #0xc]
+ lsr r1, r1, #0x18
+ str r1, [sp, #0x10]
+ str r0, [sp, #0x14]
+ str r3, [sp, #0x18]
+ ldr r0, [r5, #4]
+ mov r1, #1
+ bl FUN_02018170
+ b _021E2582
+_021E2562:
+ mov r0, #5
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0xa
+ str r0, [sp, #8]
+ ldr r2, [r5, #0x30]
+ ldr r0, [r5, #4]
+ mov r1, #1
+ add r2, #0xc
+ mov r3, #0
+ bl FUN_02018148
+ ldrb r0, [r4, #4]
+ add r0, r0, #1
+ strb r0, [r4, #4]
+_021E2582:
+ ldr r0, [r5, #4]
+ mov r1, #1
+ bl FUN_02017CD0
+ mov r0, #7
+ add sp, #0x1c
+ strb r0, [r4, #5]
+ pop {r3, r4, r5, r6, pc}
+_021E2592:
+ ldrb r0, [r4, #5]
+ add r3, r5, #0
+ mov r2, #0x60
+ add r1, r0, #0
+ add r3, #0xe4
+ mul r1, r2
+ add r0, r3, r1
+ mov r1, #0x1a
+ lsl r1, r1, #4
+ bl GX_LoadOBJPltt
+ add r0, r5, #0
+ bl MOD14_021E2360
+ ldrb r0, [r4, #4]
+ add sp, #0x1c
+ add r0, r0, #1
+ strb r0, [r4, #4]
+ pop {r3, r4, r5, r6, pc}
+_021E25B8:
+ ldrb r0, [r4, #5]
+ cmp r0, #0
+ beq _021E25C2
+ sub r0, r0, #1
+ strb r0, [r4, #5]
+_021E25C2:
+ ldrb r0, [r4, #5]
+ add r3, r5, #0
+ mov r2, #0x60
+ add r1, r0, #0
+ add r3, #0xe4
+ mul r1, r2
+ add r0, r3, r1
+ mov r1, #0x1a
+ lsl r1, r1, #4
+ bl GX_LoadOBJPltt
+ ldrb r0, [r4, #5]
+ cmp r0, #0
+ bne _021E260E
+ ldr r0, [r5, #0x10]
+ bl FUN_02019270
+ ldr r0, [r5, #0x10]
+ add r0, #0x10
+ bl FUN_02019270
+ add r0, r5, #0
+ bl MOD14_021E2394
+ add r0, r5, #0
+ bl MOD14_021E240C
+ ldr r0, [r5, #4]
+ mov r1, #1
+ bl FUN_02017CD0
+ ldrb r0, [r4, #4]
+ add sp, #0x1c
+ add r0, r0, #1
+ strb r0, [r4, #4]
+ pop {r3, r4, r5, r6, pc}
+_021E260A:
+ bl MOD14_021E24BC
+_021E260E:
+ add sp, #0x1c
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E2614
+MOD14_021E2614: ; 0x021E2614
+ push {r4, r5, lr}
+ sub sp, #0x1c
+ add r5, r1, #0
+ ldrb r2, [r5, #4]
+ ldr r4, [r5]
+ cmp r2, #0
+ beq _021E262E
+ cmp r2, #1
+ beq _021E264A
+ cmp r2, #2
+ beq _021E26DC
+ add sp, #0x1c
+ pop {r4, r5, pc}
+_021E262E:
+ add r0, r4, #0
+ bl MOD14_021E2340
+ add r0, r4, #0
+ bl MOD14_021E23F8
+ add r0, r4, #0
+ bl MOD14_021E2464
+ ldrb r0, [r5, #4]
+ add sp, #0x1c
+ add r0, r0, #1
+ strb r0, [r5, #4]
+ pop {r4, r5, pc}
+_021E264A:
+ mov r0, #5
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0xa
+ str r0, [sp, #8]
+ mov r0, #0x11
+ str r0, [sp, #0xc]
+ mov r2, #0
+ ldr r0, [r4, #4]
+ mov r1, #1
+ add r3, r2, #0
+ bl FUN_02018540
+ ldrb r0, [r5, #5]
+ add r0, r0, #1
+ strb r0, [r5, #5]
+ ldrb r0, [r5, #5]
+ lsl r1, r0, #1
+ cmp r1, #0xa
+ bge _021E26CA
+ add r1, r0, #5
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ str r1, [sp]
+ mov r1, #0x20
+ str r1, [sp, #4]
+ mov r1, #5
+ sub r0, r1, r0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #8]
+ ldr r2, [r4, #0x30]
+ ldr r0, [r4, #4]
+ mov r1, #1
+ add r2, #0xc
+ mov r3, #0
+ bl FUN_02018148
+ ldrb r1, [r5, #5]
+ mov r2, #5
+ mov r0, #0x20
+ sub r2, r2, r1
+ lsl r2, r2, #0x18
+ mov r3, #0xa
+ sub r1, r3, r1
+ lsl r1, r1, #0x18
+ str r0, [sp]
+ lsr r2, r2, #0x18
+ str r2, [sp, #4]
+ ldr r2, [r4, #0x30]
+ lsr r1, r1, #0x18
+ add r2, #0xc
+ str r2, [sp, #8]
+ mov r2, #0
+ str r2, [sp, #0xc]
+ str r1, [sp, #0x10]
+ str r0, [sp, #0x14]
+ str r3, [sp, #0x18]
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_02018170
+ b _021E26D0
+_021E26CA:
+ ldrb r0, [r5, #4]
+ add r0, r0, #1
+ strb r0, [r5, #4]
+_021E26D0:
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_02017CD0
+ add sp, #0x1c
+ pop {r4, r5, pc}
+_021E26DC:
+ bl MOD14_021E24BC
+ add sp, #0x1c
+ pop {r4, r5, pc}
+
+ thumb_func_start MOD14_021E26E4
+MOD14_021E26E4: ; 0x021E26E4
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ mov r0, #0xa
+ mov r1, #0x18
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _021E2798
+ ldr r0, [r5, #0xc]
+ bl MOD14_021DC544
+ add r6, r0, #0
+ ldr r0, [r5, #4]
+ mov r1, #1
+ mov r2, #3
+ mov r3, #0
+ bl FUN_020179E0
+ mov r0, #0x18
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #7
+ str r0, [sp, #8]
+ ldr r2, [r5, #0x38]
+ ldr r0, [r5, #4]
+ mov r1, #1
+ add r2, #0xc
+ mov r3, #0
+ bl FUN_02018148
+ ldr r0, [r5, #0x10]
+ mov r1, #4
+ add r0, #0x20
+ bl FUN_02019620
+ ldr r2, _021E279C ; =0x00004BF8
+ add r1, r6, #0
+ ldr r0, [r5, r2]
+ add r2, r2, #4
+ ldr r2, [r5, r2]
+ bl FUN_0200A8E0
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021E27A0 ; =0x00020104
+ ldr r2, _021E27A4 ; =0x00004BFC
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [r5, #0x10]
+ ldr r2, [r5, r2]
+ add r0, #0x20
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ ldr r0, [r5, #0x10]
+ add r0, #0x20
+ bl FUN_020191D0
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD14_021E2940
+ mov r1, #0
+ strh r1, [r4, #0x16]
+ str r5, [r4]
+ ldr r0, [r5, #4]
+ str r0, [r4, #4]
+ str r1, [r4, #8]
+ mov r1, #0xe
+ lsl r1, r1, #0xe
+ str r1, [r4, #0xc]
+ ldr r0, [r4, #8]
+ sub r0, r1, r0
+ mov r1, #6
+ bl _s32_div_f
+ str r0, [r4, #0x10]
+ mov r0, #6
+ strh r0, [r4, #0x14]
+ ldr r0, _021E27A8 ; =MOD14_021E27C4
+ add r1, r4, #0
+ mov r2, #0
+ bl MOD14_021DDD40
+ add r5, #0xdc
+ str r0, [r5]
+_021E2798:
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021E279C: .word 0x00004BF8
+_021E27A0: .word 0x00020104
+_021E27A4: .word 0x00004BFC
+_021E27A8: .word MOD14_021E27C4
+
+ thumb_func_start MOD14_021E27AC
+MOD14_021E27AC: ; 0x021E27AC
+ add r0, #0xdc
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _021E27B8
+ mov r0, #1
+ bx lr
+_021E27B8:
+ mov r0, #0
+ bx lr
+
+ thumb_func_start MOD14_021E27BC
+MOD14_021E27BC: ; 0x021E27BC
+ mov r1, #0
+ add r0, #0xdc
+ str r1, [r0]
+ bx lr
+
+ thumb_func_start MOD14_021E27C4
+MOD14_021E27C4: ; 0x021E27C4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrh r0, [r4, #0x16]
+ cmp r0, #0
+ beq _021E27D6
+ cmp r0, #1
+ beq _021E27DC
+ pop {r3, r4, r5, pc}
+_021E27D6:
+ add r0, r0, #1
+ strh r0, [r4, #0x16]
+ pop {r3, r4, r5, pc}
+_021E27DC:
+ ldrh r0, [r4, #0x14]
+ cmp r0, #0
+ beq _021E280A
+ sub r0, r0, #1
+ strh r0, [r4, #0x14]
+ ldr r1, [r4, #8]
+ ldr r0, [r4, #0x10]
+ mov r2, #3
+ add r3, r1, r0
+ str r3, [r4, #8]
+ ldr r0, [r4, #4]
+ mov r1, #1
+ asr r3, r3, #0xc
+ bl FUN_020179E0
+ mov r1, #0xe
+ ldr r2, [r4, #8]
+ lsl r1, r1, #0x10
+ ldr r0, [r4]
+ sub r1, r1, r2
+ bl MOD14_021E2A00
+ pop {r3, r4, r5, pc}
+_021E280A:
+ ldr r3, [r4, #0xc]
+ ldr r0, [r4, #4]
+ mov r1, #1
+ mov r2, #3
+ asr r3, r3, #0xc
+ bl FUN_020179E0
+ mov r1, #0xe
+ ldr r2, [r4, #0xc]
+ lsl r1, r1, #0x10
+ ldr r0, [r4]
+ sub r1, r1, r2
+ bl MOD14_021E2A00
+ ldr r1, _021E2838 ; =MOD14_021E27BC
+ ldr r2, [r4]
+ add r0, r4, #0
+ bl MOD14_021DDF30
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021E2838: .word MOD14_021E27BC
+
+ thumb_func_start MOD14_021E283C
+MOD14_021E283C: ; 0x021E283C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0xa
+ mov r1, #0x18
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _021E287C
+ mov r1, #0
+ strh r1, [r4, #0x16]
+ str r5, [r4]
+ ldr r0, [r5, #4]
+ str r0, [r4, #4]
+ mov r0, #0xe
+ lsl r0, r0, #0xe
+ str r0, [r4, #8]
+ str r1, [r4, #0xc]
+ ldr r0, [r4, #8]
+ sub r0, r1, r0
+ mov r1, #6
+ bl _s32_div_f
+ str r0, [r4, #0x10]
+ mov r0, #6
+ strh r0, [r4, #0x14]
+ ldr r0, _021E2880 ; =MOD14_021E28B4
+ add r1, r4, #0
+ mov r2, #0
+ bl MOD14_021DDD40
+ add r5, #0xdc
+ str r0, [r5]
+_021E287C:
+ pop {r3, r4, r5, pc}
+ nop
+_021E2880: .word MOD14_021E28B4
+
+ thumb_func_start MOD14_021E2884
+MOD14_021E2884: ; 0x021E2884
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0xdc
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _021E28A6
+ ldr r0, [r4, #4]
+ mov r1, #1
+ mov r2, #3
+ mov r3, #0
+ bl FUN_020179E0
+ add r0, r4, #0
+ bl MOD14_021E2A28
+ mov r0, #1
+ pop {r4, pc}
+_021E28A6:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E28AC
+MOD14_021E28AC: ; 0x021E28AC
+ mov r1, #0
+ add r0, #0xdc
+ str r1, [r0]
+ bx lr
+
+ thumb_func_start MOD14_021E28B4
+MOD14_021E28B4: ; 0x021E28B4
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrh r0, [r4, #0x14]
+ cmp r0, #0
+ beq _021E28EC
+ sub r0, r0, #1
+ strh r0, [r4, #0x14]
+ ldr r1, [r4, #8]
+ ldr r0, [r4, #0x10]
+ mov r2, #3
+ add r3, r1, r0
+ str r3, [r4, #8]
+ ldr r0, [r4, #4]
+ mov r1, #1
+ asr r3, r3, #0xc
+ bl FUN_020179E0
+ mov r1, #0xe
+ ldr r2, [r4, #8]
+ lsl r1, r1, #0x10
+ ldr r0, [r4]
+ sub r1, r1, r2
+ bl MOD14_021E2A00
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+_021E28EC:
+ ldr r3, [r4, #0xc]
+ ldr r0, [r4, #4]
+ mov r1, #1
+ mov r2, #3
+ asr r3, r3, #0xc
+ bl FUN_020179E0
+ mov r1, #0xe
+ ldr r2, [r4, #0xc]
+ lsl r1, r1, #0x10
+ ldr r0, [r4]
+ sub r1, r1, r2
+ bl MOD14_021E2A00
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x11
+ str r0, [sp, #0xc]
+ ldr r0, [r4, #4]
+ mov r1, #1
+ add r3, r2, #0
+ bl FUN_02018540
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_02017CD0
+ ldr r1, _021E293C ; =MOD14_021E28AC
+ ldr r2, [r4]
+ add r0, r4, #0
+ bl MOD14_021DDF30
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021E293C: .word MOD14_021E28AC
+
+ thumb_func_start MOD14_021E2940
+MOD14_021E2940: ; 0x021E2940
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x54
+ add r5, r0, #0
+ add r4, r1, #0
+ beq _021E29F6
+ ldr r0, [r5]
+ bl MOD14_021DDD50
+ add r6, r0, #0
+ ldr r0, [r5]
+ bl MOD14_021DDD48
+ add r2, r0, #0
+ ldr r0, [r6, #0x20]
+ add r1, sp, #0xc
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r3, [r6, #0x1c]
+ add r0, sp, #0x30
+ bl MOD14_021DDDB4
+ add r0, sp, #0xc
+ bl FUN_020B1A24
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ mov r1, #1
+ bl FUN_0206E640
+ add r1, r0, #0
+ mov r0, #0xa
+ str r0, [sp]
+ mov r0, #0x10
+ mov r2, #0
+ add r3, sp, #8
+ bl FUN_02006BB0
+ add r6, r0, #0
+ mov r0, #1
+ lsl r0, r0, #0x1a
+ ldr r1, [r0]
+ ldr r0, _021E29FC ; =0x00300010
+ mov r2, #1
+ and r1, r0
+ ldr r0, [sp, #8]
+ add r3, sp, #0xc
+ str r1, [r0, #8]
+ mov r1, #0xbe
+ ldr r0, [sp, #8]
+ lsl r1, r1, #8
+ bl FUN_020B1768
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ mov r1, #2
+ bl FUN_0206E640
+ add r1, r0, #0
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ mov r0, #0x10
+ mov r2, #1
+ mov r3, #0xc0
+ bl FUN_02006930
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r5, #8]
+ add r1, sp, #0x30
+ mov r2, #0x12
+ mov r3, #0xe0
+ bl MOD14_021DDDD4
+ add r1, r5, #0
+ add r1, #0x90
+ add r5, #0x90
+ str r0, [r1]
+ ldr r0, [r5]
+ cmp r0, #0
+ beq _021E29F0
+ mov r1, #6
+ bl FUN_02020248
+_021E29F0:
+ add r0, r6, #0
+ bl FUN_02016A18
+_021E29F6:
+ add sp, #0x54
+ pop {r3, r4, r5, r6, pc}
+ nop
+_021E29FC: .word 0x00300010
+
+ thumb_func_start MOD14_021E2A00
+MOD14_021E2A00: ; 0x021E2A00
+ push {lr}
+ sub sp, #0xc
+ add r2, r0, #0
+ add r2, #0x90
+ ldr r2, [r2]
+ cmp r2, #0
+ beq _021E2A24
+ mov r2, #0x12
+ lsl r2, r2, #0xc
+ str r1, [sp, #4]
+ mov r1, #0
+ str r1, [sp, #8]
+ str r2, [sp]
+ add r0, #0x90
+ ldr r0, [r0]
+ add r1, sp, #0
+ bl FUN_02020044
+_021E2A24:
+ add sp, #0xc
+ pop {pc}
+
+ thumb_func_start MOD14_021E2A28
+MOD14_021E2A28: ; 0x021E2A28
+ push {r3, lr}
+ add r0, #0x90
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _021E2A36
+ bl FUN_0201FFC8
+_021E2A36:
+ pop {r3, pc}
+
+ thumb_func_start MOD14_021E2A38
+MOD14_021E2A38: ; 0x021E2A38
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r5, r0, #0
+ add r4, r1, #0
+ add r6, r2, #0
+ str r4, [r5]
+ ldr r0, [sp, #0x18]
+ str r6, [r5, #0xc]
+ str r0, [r5, #8]
+ str r3, [r5, #4]
+ add r0, r4, #0
+ bl MOD14_021DDD50
+ str r0, [r5, #0x38]
+ add r0, r4, #0
+ bl MOD14_021DDD58
+ str r0, [r5, #0x10]
+ add r0, r6, #0
+ bl MOD14_021DC3C4
+ cmp r0, #4
+ beq _021E2A6E
+ mov r0, #0xe
+ str r0, [r5, #0x30]
+ mov r0, #0
+ b _021E2A74
+_021E2A6E:
+ mov r0, #9
+ str r0, [r5, #0x30]
+ sub r0, #0x31
+_021E2A74:
+ str r0, [r5, #0x34]
+ add r0, r5, #0
+ mov r1, #0
+ add r0, #0x2b
+ strb r1, [r0]
+ str r1, [r5, #0x2c]
+ add r1, r5, #0
+ ldr r0, [r5, #0x38]
+ add r1, #0x3c
+ mov r2, #6
+ bl MOD14_021E08E4
+ mov r1, #9
+ mov r0, #0xa
+ lsl r1, r1, #6
+ bl FUN_02016998
+ str r0, [r5, #0x1c]
+ mov r0, #0xa
+ add r3, r5, #0
+ str r0, [sp]
+ mov r0, #0x12
+ mov r1, #6
+ mov r2, #1
+ add r3, #0x18
+ bl FUN_02006BDC
+ str r0, [r5, #0x14]
+ cmp r0, #0
+ beq _021E2AB6
+ ldr r1, [r5, #0x1c]
+ cmp r1, #0
+ bne _021E2ABC
+_021E2AB6:
+ add sp, #4
+ mov r0, #0
+ pop {r3, r4, r5, r6, pc}
+_021E2ABC:
+ add r0, r5, #0
+ bl MOD14_021E31F4
+ mov r0, #1
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+
+ thumb_func_start MOD14_021E2AC8
+MOD14_021E2AC8: ; 0x021E2AC8
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x14]
+ cmp r0, #0
+ beq _021E2AD6
+ bl FUN_02016A18
+_021E2AD6:
+ ldr r0, [r4, #0x1c]
+ cmp r0, #0
+ beq _021E2AE0
+ bl FUN_02016A18
+_021E2AE0:
+ add r0, r4, #0
+ bl MOD14_021E3390
+ pop {r4, pc}
+
+ thumb_func_start MOD14_021E2AE8
+MOD14_021E2AE8: ; 0x021E2AE8
+ push {r4, lr}
+ add r4, r0, #0
+ add r1, r4, #0
+ mov r2, #0
+ add r1, #0x2b
+ strb r2, [r1]
+ add r1, r4, #0
+ add r1, #0x2b
+ ldrb r1, [r1]
+ bl MOD14_021E31A4
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD14_021E32F8
+ ldr r0, [r4, #4]
+ mov r1, #2
+ bl FUN_02017CD0
+ pop {r4, pc}
+
+ thumb_func_start MOD14_021E2B10
+MOD14_021E2B10: ; 0x021E2B10
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #0
+ bl MOD14_021E32F8
+ add r0, r4, #0
+ mov r1, #0x1a
+ add r0, #0x2b
+ strb r1, [r0]
+ ldr r0, _021E2B3C ; =MOD14_021E2B50
+ add r1, r4, #0
+ mov r2, #0
+ bl MOD14_021DDD40
+ cmp r0, #0
+ beq _021E2B34
+ mov r0, #1
+ b _021E2B36
+_021E2B34:
+ mov r0, #0
+_021E2B36:
+ str r0, [r4, #0x2c]
+ pop {r4, pc}
+ nop
+_021E2B3C: .word MOD14_021E2B50
+
+ thumb_func_start MOD14_021E2B40
+MOD14_021E2B40: ; 0x021E2B40
+ ldr r0, [r0, #0x2c]
+ cmp r0, #0
+ bne _021E2B4A
+ mov r0, #1
+ bx lr
+_021E2B4A:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021E2B50
+MOD14_021E2B50: ; 0x021E2B50
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ add r0, #0x2b
+ ldrb r0, [r0]
+ cmp r0, #2
+ bls _021E2B6C
+ add r0, r5, #0
+ add r0, #0x2b
+ ldrb r0, [r0]
+ ldr r4, _021E2BAC ; =0xFFFF0000
+ sub r1, r0, #2
+ b _021E2B72
+_021E2B6C:
+ lsl r0, r0, #0xf
+ neg r4, r0
+ mov r1, #0
+_021E2B72:
+ add r0, r5, #0
+ add r0, #0x2b
+ strb r1, [r0]
+ add r1, r5, #0
+ add r1, #0x2b
+ ldrb r1, [r1]
+ add r0, r5, #0
+ bl MOD14_021E31A4
+ ldr r0, [r5, #4]
+ mov r1, #2
+ bl FUN_02017CD0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD14_021E3290
+ add r0, r5, #0
+ add r0, #0x2b
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _021E2BA8
+ mov r0, #0
+ str r0, [r5, #0x2c]
+ add r0, r6, #0
+ bl FUN_0200CAB4
+_021E2BA8:
+ pop {r4, r5, r6, pc}
+ nop
+_021E2BAC: .word 0xFFFF0000
+
+ thumb_func_start MOD14_021E2BB0
+MOD14_021E2BB0: ; 0x021E2BB0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021E2BCC ; =MOD14_021E2BE4
+ add r1, r4, #0
+ mov r2, #0
+ bl MOD14_021DDD40
+ cmp r0, #0
+ beq _021E2BC6
+ mov r0, #1
+ b _021E2BC8
+_021E2BC6:
+ mov r0, #0
+_021E2BC8:
+ str r0, [r4, #0x2c]
+ pop {r4, pc}
+ .align 2, 0
+_021E2BCC: .word MOD14_021E2BE4
+
+ thumb_func_start MOD14_021E2BD0
+MOD14_021E2BD0: ; 0x021E2BD0
+ push {r3, lr}
+ ldr r1, [r0, #0x2c]
+ cmp r1, #0
+ bne _021E2BE0
+ bl MOD14_021E3390
+ mov r0, #1
+ pop {r3, pc}
+_021E2BE0:
+ mov r0, #0
+ pop {r3, pc}
+
+ thumb_func_start MOD14_021E2BE4
+MOD14_021E2BE4: ; 0x021E2BE4
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ add r0, #0x2b
+ ldrb r0, [r0]
+ cmp r0, #0x18
+ bhs _021E2C04
+ add r0, r5, #0
+ add r0, #0x2b
+ ldrb r0, [r0]
+ mov r4, #1
+ lsl r4, r4, #0x10
+ add r1, r0, #2
+ b _021E2C0A
+_021E2C04:
+ mov r1, #0x1a
+ sub r0, r1, r0
+ lsl r4, r0, #0xf
+_021E2C0A:
+ add r0, r5, #0
+ add r0, #0x2b
+ strb r1, [r0]
+ add r0, r5, #0
+ add r0, #0x2b
+ ldrb r1, [r0]
+ cmp r1, #2
+ bls _021E2C46
+ asr r0, r4, #0xc
+ lsr r0, r0, #3
+ sub r1, r1, #2
+ sub r1, r1, r0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ str r1, [sp]
+ mov r1, #0xf
+ lsl r0, r0, #0x18
+ str r1, [sp, #4]
+ lsr r0, r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x11
+ str r0, [sp, #0xc]
+ ldr r3, [r5, #0x30]
+ ldr r0, [r5, #4]
+ lsl r3, r3, #0x18
+ mov r1, #2
+ mov r2, #0
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+_021E2C46:
+ add r1, r5, #0
+ add r1, #0x2b
+ ldrb r1, [r1]
+ add r0, r5, #0
+ bl MOD14_021E31A4
+ ldr r0, [r5, #4]
+ mov r1, #2
+ bl FUN_02017CD0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD14_021E3290
+ add r0, r5, #0
+ add r0, #0x2b
+ ldrb r0, [r0]
+ cmp r0, #0x1a
+ bne _021E2C76
+ mov r0, #0
+ str r0, [r5, #0x2c]
+ add r0, r6, #0
+ bl FUN_0200CAB4
+_021E2C76:
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E2C7C
+MOD14_021E2C7C: ; 0x021E2C7C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r6, r0, #0
+ ldr r0, [r6, #0xc]
+ ldr r0, [r0, #4]
+ bl FUN_0206B9AC
+ add r1, r6, #0
+ add r1, #0x28
+ ldrb r4, [r1]
+ cmp r4, r0
+ bge _021E2D20
+ sub r0, r0, r4
+ str r0, [sp, #8]
+ cmp r4, #5
+ bge _021E2CF8
+ mov r0, #0x34
+ add r1, r4, #0
+ mul r1, r0
+ add r0, r6, #0
+ str r0, [sp, #0xc]
+ add r0, #0x3c
+ str r0, [sp, #0xc]
+ add r5, r0, r1
+ add r7, r6, r1
+ ldr r0, _021E2D28 ; =0x00000418
+ lsl r1, r4, #5
+ add r0, r1, r0
+ str r0, [sp, #4]
+_021E2CB6:
+ add r1, r4, #1
+ mov r0, #0x34
+ mul r0, r1
+ ldr r1, [sp, #0xc]
+ str r0, [sp]
+ add r0, r1, r0
+ add r1, r5, #0
+ mov r2, #1
+ bl MOD14_021E0930
+ ldr r2, [sp, #0xc]
+ ldr r1, [sp]
+ ldr r0, [r6, #0x38]
+ add r1, r2, r1
+ mov r2, #1
+ bl MOD14_021E08E4
+ ldr r0, [r7, #0x3c]
+ cmp r0, #0
+ beq _021E2CE8
+ ldr r0, [r6, #0x38]
+ ldr r2, [sp, #4]
+ add r1, r5, #0
+ bl MOD14_021E0BBC
+_021E2CE8:
+ ldr r0, [sp, #4]
+ add r4, r4, #1
+ add r0, #0x20
+ add r5, #0x34
+ add r7, #0x34
+ str r0, [sp, #4]
+ cmp r4, #5
+ blt _021E2CB6
+_021E2CF8:
+ add r1, r6, #0
+ ldr r0, [sp, #8]
+ add r1, #0x29
+ strb r0, [r1]
+ add r0, r6, #0
+ mov r2, #0
+ add r0, #0x2a
+ strb r2, [r0]
+ ldr r0, _021E2D2C ; =MOD14_021E2D30
+ add r1, r6, #0
+ bl MOD14_021DDD40
+ cmp r0, #0
+ beq _021E2D18
+ mov r0, #1
+ b _021E2D1A
+_021E2D18:
+ mov r0, #0
+_021E2D1A:
+ add sp, #0x10
+ str r0, [r6, #0x2c]
+ pop {r3, r4, r5, r6, r7, pc}
+_021E2D20:
+ mov r0, #0
+ str r0, [r6, #0x2c]
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021E2D28: .word 0x00000418
+_021E2D2C: .word MOD14_021E2D30
+
+ thumb_func_start MOD14_021E2D30
+MOD14_021E2D30: ; 0x021E2D30
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ str r1, [sp, #4]
+ ldr r2, [sp, #4]
+ str r0, [sp]
+ add r1, #0x28
+ ldr r0, [sp, #4]
+ add r2, #0x2a
+ add r0, #0x29
+ ldrb r7, [r0]
+ ldr r0, [sp, #4]
+ ldrb r1, [r1]
+ ldrb r3, [r2]
+ ldr r0, [r0, #0x1c]
+ lsl r2, r1, #3
+ add r3, r3, r2
+ mov r2, #0xc
+ mul r2, r3
+ add r4, r0, r2
+ mov r6, #0
+ cmp r7, #0
+ ble _021E2D7C
+ mov r0, #0x34
+ add r2, r1, #0
+ mul r2, r0
+ ldr r0, [sp, #4]
+ add r5, r0, r2
+_021E2D66:
+ ldr r0, [r5, #0x3c]
+ cmp r0, #0
+ beq _021E2D72
+ add r1, r4, #0
+ bl FUN_02020044
+_021E2D72:
+ add r6, r6, #1
+ add r5, #0x34
+ add r4, #0x60
+ cmp r6, r7
+ blt _021E2D66
+_021E2D7C:
+ ldr r0, [sp, #4]
+ add r0, #0x2a
+ ldrb r0, [r0]
+ add r1, r0, #1
+ ldr r0, [sp, #4]
+ add r0, #0x2a
+ strb r1, [r0]
+ ldr r0, [sp, #4]
+ add r0, #0x2a
+ ldrb r0, [r0]
+ cmp r0, #8
+ blo _021E2DA0
+ ldr r0, [sp, #4]
+ mov r1, #0
+ str r1, [r0, #0x2c]
+ ldr r0, [sp]
+ bl FUN_0200CAB4
+_021E2DA0:
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD14_021E2DA4
+MOD14_021E2DA4: ; 0x021E2DA4
+ ldr r0, [r0, #0x2c]
+ cmp r0, #0
+ bne _021E2DAE
+ mov r0, #1
+ bx lr
+_021E2DAE:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021E2DB4
+MOD14_021E2DB4: ; 0x021E2DB4
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ ldr r0, [r5, #0xc]
+ ldr r0, [r0, #4]
+ bl FUN_0206B9AC
+ sub r4, r0, #1
+ add r0, r5, #0
+ add r0, #0x28
+ ldrb r0, [r0]
+ cmp r0, r4
+ bls _021E2E3A
+ mov r0, #0x34
+ mul r0, r4
+ add r0, r5, r0
+ ldr r0, [r0, #0x3c]
+ bl FUN_0202011C
+ add r3, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ ldr r1, _021E2E44 ; =0x021E6650
+ str r0, [r2]
+ lsl r0, r4, #2
+ ldrh r1, [r1, r0]
+ ldr r2, [r5, #0x34]
+ add r1, r2, r1
+ lsl r2, r1, #0xc
+ ldr r1, [sp]
+ sub r2, r2, r1
+ asr r1, r2, #2
+ lsr r1, r1, #0x1d
+ add r1, r2, r1
+ asr r1, r1, #3
+ str r1, [r5, #0x20]
+ ldr r1, _021E2E48 ; =0x021E6652
+ mov r2, #0
+ ldrh r0, [r1, r0]
+ lsl r1, r0, #0xc
+ ldr r0, [sp, #4]
+ sub r1, r1, r0
+ asr r0, r1, #2
+ lsr r0, r0, #0x1d
+ add r0, r1, r0
+ asr r0, r0, #3
+ str r0, [r5, #0x24]
+ add r0, r5, #0
+ add r0, #0x2a
+ strb r2, [r0]
+ add r0, r5, #0
+ add r0, #0x28
+ strb r4, [r0]
+ ldr r0, _021E2E4C ; =MOD14_021E2E60
+ add r1, r5, #0
+ bl MOD14_021DDD40
+ cmp r0, #0
+ beq _021E2E32
+ mov r0, #1
+ b _021E2E34
+_021E2E32:
+ mov r0, #0
+_021E2E34:
+ add sp, #0xc
+ str r0, [r5, #0x2c]
+ pop {r4, r5, pc}
+_021E2E3A:
+ mov r0, #0
+ str r0, [r5, #0x2c]
+ add sp, #0xc
+ pop {r4, r5, pc}
+ nop
+_021E2E44: .word 0x021E6650
+_021E2E48: .word 0x021E6652
+_021E2E4C: .word MOD14_021E2E60
+
+ thumb_func_start MOD14_021E2E50
+MOD14_021E2E50: ; 0x021E2E50
+ ldr r0, [r0, #0x2c]
+ cmp r0, #0
+ bne _021E2E5A
+ mov r0, #1
+ bx lr
+_021E2E5A:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021E2E60
+MOD14_021E2E60: ; 0x021E2E60
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ add r0, #0x28
+ ldrb r1, [r0]
+ mov r0, #0x34
+ mul r0, r1
+ add r0, r5, r0
+ ldr r0, [r0, #0x3c]
+ bl FUN_0202011C
+ add r3, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ add r0, r5, #0
+ add r0, #0x2a
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r5, #0
+ add r0, #0x2a
+ strb r1, [r0]
+ add r0, r5, #0
+ add r0, #0x2a
+ ldrb r0, [r0]
+ cmp r0, #8
+ blo _021E2EC6
+ add r1, r5, #0
+ add r1, #0x28
+ ldrb r1, [r1]
+ ldr r0, [r5, #0x34]
+ mov r4, #1
+ lsl r2, r1, #2
+ ldr r1, _021E2F00 ; =0x021E6650
+ ldrh r1, [r1, r2]
+ add r0, r0, r1
+ lsl r0, r0, #0xc
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0x28
+ ldrb r0, [r0]
+ lsl r1, r0, #2
+ ldr r0, _021E2F04 ; =0x021E6652
+ ldrh r0, [r0, r1]
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ b _021E2ED8
+_021E2EC6:
+ ldr r1, [sp]
+ ldr r0, [r5, #0x20]
+ mov r4, #0
+ add r0, r1, r0
+ str r0, [sp]
+ ldr r1, [sp, #4]
+ ldr r0, [r5, #0x24]
+ add r0, r1, r0
+ str r0, [sp, #4]
+_021E2ED8:
+ add r0, r5, #0
+ add r0, #0x28
+ ldrb r1, [r0]
+ mov r0, #0x34
+ mul r0, r1
+ add r0, r5, r0
+ ldr r0, [r0, #0x3c]
+ add r1, sp, #0
+ bl FUN_02020044
+ cmp r4, #0
+ beq _021E2EFA
+ mov r0, #0
+ str r0, [r5, #0x2c]
+ add r0, r6, #0
+ bl FUN_0200CAB4
+_021E2EFA:
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ nop
+_021E2F00: .word 0x021E6650
+_021E2F04: .word 0x021E6652
+
+ thumb_func_start MOD14_021E2F08
+MOD14_021E2F08: ; 0x021E2F08
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0xc]
+ bl MOD14_021DC424
+ mov r1, #0x11
+ ldr r2, [r5, #0xc]
+ lsl r1, r1, #4
+ ldrh r1, [r2, r1]
+ cmp r1, r0
+ bne _021E2F24
+ ldr r0, [r5, #0x10]
+ bl MOD14_021DEA50
+_021E2F24:
+ ldr r0, [r5, #0xc]
+ bl MOD14_021DC3E8
+ add r4, r0, #0
+ add r2, r5, #0
+ mov r1, #0x34
+ ldr r0, [r5, #0x38]
+ add r2, #0x3c
+ mul r1, r4
+ add r1, r2, r1
+ mov r2, #1
+ bl MOD14_021E0908
+ add r5, #0x28
+ strb r4, [r5]
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD14_021E2F44
+MOD14_021E2F44: ; 0x021E2F44
+ add r2, r0, #0
+ mov r0, #0x5d
+ mov r3, #0
+ lsl r0, r0, #2
+ strb r3, [r2, r0]
+ add r0, r2, #0
+ add r0, #0x28
+ mov r3, #0x34
+ strb r1, [r0]
+ ldr r0, [r2, #0x38]
+ add r2, #0x3c
+ mul r3, r1
+ add r1, r2, r3
+ ldr r3, _021E2F64 ; =MOD14_021E0C20
+ mov r2, #1
+ bx r3
+ .align 2, 0
+_021E2F64: .word MOD14_021E0C20
+
+ thumb_func_start MOD14_021E2F68
+MOD14_021E2F68: ; 0x021E2F68
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r0, #0x28
+ ldrb r1, [r0]
+ add r4, r5, #0
+ mov r0, #0x34
+ add r6, r1, #0
+ mul r6, r0
+ mov r0, #0x5d
+ lsl r0, r0, #2
+ ldrb r0, [r5, r0]
+ add r4, #0x3c
+ cmp r0, #0
+ beq _021E2F8A
+ cmp r0, #1
+ beq _021E2FD2
+ b _021E2FE2
+_021E2F8A:
+ ldr r0, [r5, #0x38]
+ add r1, r4, r6
+ bl MOD14_021E0C48
+ cmp r0, #0
+ beq _021E2FE2
+ ldr r0, [r5]
+ bl MOD14_021DDEDC
+ add r7, r0, #0
+ bl MOD14_021DA1B8
+ cmp r0, #0
+ beq _021E2FE2
+ add r0, r7, #0
+ bl MOD14_021DA1C0
+ cmp r0, #0
+ ldr r0, [r5, #0x38]
+ beq _021E2FBE
+ add r1, r4, r6
+ mov r2, #1
+ bl MOD14_021E0908
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021E2FBE:
+ add r1, r4, r6
+ mov r2, #2
+ bl MOD14_021E0C20
+ mov r0, #0x5d
+ lsl r0, r0, #2
+ ldrb r1, [r5, r0]
+ add r1, r1, #1
+ strb r1, [r5, r0]
+ b _021E2FE2
+_021E2FD2:
+ ldr r0, [r5, #0x38]
+ add r1, r4, r6
+ bl MOD14_021E0C48
+ cmp r0, #0
+ beq _021E2FE2
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021E2FE2:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E2FE8
+MOD14_021E2FE8: ; 0x021E2FE8
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ ldr r0, [r7, #0xc]
+ bl MOD14_021DC3CC
+ cmp r0, #1
+ bne _021E3020
+ ldr r0, [r7, #0xc]
+ bl MOD14_021DC484
+ add r5, r7, #0
+ str r0, [sp]
+ mov r6, #0
+ add r4, r7, #0
+ add r5, #0x3c
+_021E3006:
+ ldr r0, [r4, #0x3c]
+ cmp r0, #0
+ beq _021E3016
+ ldr r0, [r7, #0x38]
+ ldr r2, [sp]
+ add r1, r5, #0
+ bl MOD14_021E0B54
+_021E3016:
+ add r6, r6, #1
+ add r4, #0x34
+ add r5, #0x34
+ cmp r6, #6
+ blt _021E3006
+_021E3020:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E3024
+MOD14_021E3024: ; 0x021E3024
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r6, r5, #0
+ mov r0, #0x34
+ add r4, r1, #0
+ mul r4, r0
+ add r6, #0x3c
+ ldr r0, [r6, r4]
+ cmp r0, #0
+ beq _021E3050
+ ldr r0, [r5, #0x38]
+ add r1, r6, r4
+ bl MOD14_021E0BA8
+ ldr r0, [r5, #0xc]
+ bl MOD14_021DC484
+ add r2, r0, #0
+ ldr r0, [r5, #0x38]
+ add r1, r6, r4
+ bl MOD14_021E0B54
+_021E3050:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E3054
+MOD14_021E3054: ; 0x021E3054
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0xc]
+ bl MOD14_021DC3E8
+ add r4, r0, #0
+ ldr r0, [r5, #0xc]
+ bl MOD14_021DC45C
+ add r2, r0, #0
+ add r1, r5, #0
+ mov r0, #0x34
+ add r3, r4, #0
+ add r1, #0x3c
+ mul r3, r0
+ ldr r0, [r1, r3]
+ cmp r0, #0
+ beq _021E3080
+ ldr r0, [r5, #0x38]
+ add r1, r1, r3
+ bl MOD14_021E0BA4
+_021E3080:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E3084
+MOD14_021E3084: ; 0x021E3084
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ add r5, r0, #0
+ mov r0, #0x34
+ add r4, r6, #0
+ mul r4, r0
+ add r0, r5, #0
+ add r7, r3, #0
+ add r0, #0x3c
+ str r2, [sp]
+ add r0, r0, r4
+ add r1, r7, #0
+ mov r2, #1
+ bl MOD14_021E0930
+ ldr r0, [r5, #0x38]
+ ldr r2, [sp]
+ add r1, r7, #0
+ bl MOD14_021E0BBC
+ add r1, r5, #0
+ add r1, #0x3c
+ ldr r0, [r5, #0x38]
+ add r1, r1, r4
+ mov r2, #1
+ bl MOD14_021E08E4
+ add r5, #0x28
+ strb r6, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD14_021E30C0
+MOD14_021E30C0: ; 0x021E30C0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ ldr r0, [r5, #0xc]
+ str r1, [sp]
+ ldr r0, [r0, #4]
+ str r2, [sp, #4]
+ bl FUN_0206B9AC
+ sub r6, r0, #1
+ add r4, r5, #0
+ mov r0, #0x34
+ add r7, r6, #0
+ mul r7, r0
+ add r4, #0x3c
+ ldr r0, [sp, #4]
+ add r1, r4, r7
+ mov r2, #1
+ bl MOD14_021E0930
+ ldr r2, _021E3110 ; =0x00000418
+ lsl r3, r6, #5
+ ldr r0, [r5, #0x38]
+ add r1, r4, r7
+ add r2, r3, r2
+ bl MOD14_021E0BBC
+ ldr r0, [r4, r7]
+ mov r1, #1
+ bl FUN_02020238
+ ldr r0, [r4, r7]
+ add r1, r6, #4
+ bl MOD14_021DDE24
+ ldr r0, [sp]
+ add r5, #0x28
+ strb r0, [r5]
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021E3110: .word 0x00000418
+
+ thumb_func_start MOD14_021E3114
+MOD14_021E3114: ; 0x021E3114
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r6, r1, #0
+ add r5, r7, #0
+ mov r0, #0x34
+ add r4, r6, #0
+ mul r4, r0
+ add r5, #0x3c
+ add r0, r2, #0
+ add r1, r5, r4
+ mov r2, #1
+ bl MOD14_021E0930
+ ldr r2, _021E3154 ; =0x00000418
+ lsl r3, r6, #5
+ ldr r0, [r7, #0x38]
+ add r1, r5, r4
+ add r2, r3, r2
+ bl MOD14_021E0BBC
+ ldr r0, [r5, r4]
+ mov r1, #1
+ bl FUN_02020238
+ ldr r0, [r5, r4]
+ add r1, r6, #4
+ bl MOD14_021DDE24
+ add r7, #0x28
+ strb r6, [r7]
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021E3154: .word 0x00000418
+
+ thumb_func_start MOD14_021E3158
+MOD14_021E3158: ; 0x021E3158
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ cmp r4, #6
+ blo _021E3166
+ bl ErrorHandling
+_021E3166:
+ mov r0, #0x34
+ add r5, #0x3c
+ mul r0, r4
+ add r0, r5, r0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD14_021E3170
+MOD14_021E3170: ; 0x021E3170
+ push {r3, r4}
+ cmp r1, #6
+ bne _021E3184
+ ldr r0, [r0, #0x34]
+ add r0, #0xc0
+ str r0, [r2]
+ mov r0, #0xb8
+ str r0, [r3]
+ pop {r3, r4}
+ bx lr
+_021E3184:
+ ldr r4, [r0, #0x34]
+ ldr r0, _021E319C ; =0x021E6650
+ lsl r1, r1, #2
+ ldrh r0, [r0, r1]
+ add r0, r4, r0
+ str r0, [r2]
+ ldr r0, _021E31A0 ; =0x021E6652
+ ldrh r0, [r0, r1]
+ str r0, [r3]
+ pop {r3, r4}
+ bx lr
+ nop
+_021E319C: .word 0x021E6650
+_021E31A0: .word 0x021E6652
+
+ thumb_func_start MOD14_021E31A4
+MOD14_021E31A4: ; 0x021E31A4
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r3, r0, #0
+ cmp r1, #2
+ bhi _021E31BE
+ mov r0, #2
+ sub r1, r0, r1
+ add r2, r1, #0
+ mov r0, #0x1e
+ mul r2, r0
+ mov r1, #0x18
+ mov r0, #0
+ b _021E31CC
+_021E31BE:
+ cmp r1, #0x1a
+ bhs _021E31F0
+ mov r0, #0x1a
+ sub r1, r0, r1
+ mov r0, #0x18
+ mov r2, #0
+ sub r0, r0, r1
+_021E31CC:
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #0xf
+ str r0, [sp, #4]
+ lsl r0, r1, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #8]
+ ldr r4, [r3, #0x18]
+ ldr r0, [r3, #4]
+ ldr r3, [r3, #0x30]
+ add r4, #0xc
+ lsl r3, r3, #0x18
+ mov r1, #2
+ add r2, r4, r2
+ lsr r3, r3, #0x18
+ bl FUN_02018148
+_021E31F0:
+ add sp, #0xc
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD14_021E31F4
+MOD14_021E31F4: ; 0x021E31F4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ str r0, [sp]
+ str r1, [sp, #4]
+ mov r0, #0
+ ldr r1, _021E328C ; =0x021E6650
+ mov ip, r0
+_021E3202:
+ ldrh r3, [r1]
+ ldrh r2, [r1, #4]
+ mov r0, #0
+ ldrh r4, [r1, #2]
+ sub r2, r3, r2
+ lsl r3, r2, #0xc
+ asr r2, r3, #2
+ lsr r2, r2, #0x1d
+ add r2, r3, r2
+ ldrh r3, [r1, #6]
+ asr r2, r2, #3
+ mov lr, r2
+ sub r3, r4, r3
+ lsl r4, r3, #0xc
+ asr r3, r4, #2
+ lsr r3, r3, #0x1d
+ add r3, r4, r3
+ ldr r2, [sp, #4]
+ add r6, r0, #0
+ asr r7, r3, #3
+ add r5, r0, #0
+_021E322C:
+ ldr r3, [sp]
+ add r5, r5, r7
+ ldr r4, [r3, #0x34]
+ ldrh r3, [r1, #4]
+ add r0, r0, #1
+ add r3, r4, r3
+ lsl r4, r3, #0xc
+ mov r3, lr
+ add r6, r6, r3
+ add r3, r4, r6
+ str r3, [r2]
+ ldrh r3, [r1, #6]
+ lsl r3, r3, #0xc
+ add r3, r3, r5
+ str r3, [r2, #4]
+ mov r3, #0
+ str r3, [r2, #8]
+ add r2, #0xc
+ cmp r0, #7
+ blo _021E322C
+ ldr r3, [sp]
+ mov r2, #0xc
+ ldr r4, [r3, #0x34]
+ ldrh r3, [r1]
+ mul r2, r0
+ ldr r0, [sp, #4]
+ add r3, r4, r3
+ lsl r4, r3, #0xc
+ ldr r3, [sp, #4]
+ add r0, r0, r2
+ str r4, [r3, r2]
+ ldrh r2, [r1, #2]
+ add r1, r1, #4
+ lsl r2, r2, #0xc
+ str r2, [r0, #4]
+ mov r2, #0
+ str r2, [r0, #8]
+ add r0, r3, #0
+ add r0, #0x60
+ str r0, [sp, #4]
+ mov r0, ip
+ add r0, r0, #1
+ mov ip, r0
+ cmp r0, #5
+ blo _021E3202
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021E328C: .word 0x021E6650
+
+ thumb_func_start MOD14_021E3290
+MOD14_021E3290: ; 0x021E3290
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r7, #0
+_021E329A:
+ ldr r0, [r5, #0x3c]
+ cmp r0, #0
+ beq _021E32F2
+ bl FUN_0202011C
+ add r6, r0, #0
+ add r3, sp, #0
+ ldmia r6!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r6]
+ add r1, r2, #0
+ str r0, [r3]
+ ldr r0, [sp, #4]
+ add r0, r0, r4
+ str r0, [sp, #4]
+ ldr r0, [r5, #0x3c]
+ bl FUN_02020044
+ cmp r4, #0
+ bge _021E32D8
+ mov r0, #0xd
+ ldr r1, [sp, #4]
+ lsl r0, r0, #0x10
+ cmp r1, r0
+ bge _021E32EA
+ ldr r0, [r5, #0x3c]
+ mov r1, #1
+ bl FUN_020200A0
+ b _021E32EA
+_021E32D8:
+ mov r0, #0xd
+ ldr r1, [sp, #4]
+ lsl r0, r0, #0x10
+ cmp r1, r0
+ blt _021E32EA
+ ldr r0, [r5, #0x3c]
+ mov r1, #0
+ bl FUN_020200A0
+_021E32EA:
+ add r7, r7, #1
+ add r5, #0x34
+ cmp r7, #6
+ blt _021E329A
+_021E32F2:
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E32F8
+MOD14_021E32F8: ; 0x021E32F8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x28
+ str r0, [sp, #0x24]
+ str r1, [sp, #0x10]
+ cmp r1, #0
+ beq _021E330A
+ mov r0, #0
+ str r0, [sp, #0x14]
+ b _021E330E
+_021E330A:
+ mov r0, #0xd0
+ str r0, [sp, #0x14]
+_021E330E:
+ ldr r0, [sp, #0x24]
+ ldr r0, [r0, #0xc]
+ ldr r0, [r0, #4]
+ bl FUN_0206B9AC
+ mov r4, #0
+ str r0, [sp, #0x20]
+ cmp r0, #0
+ ble _021E3384
+ ldr r0, [sp, #0x24]
+ ldr r7, _021E3388 ; =0x00000418
+ str r0, [sp, #0x1c]
+ add r0, #0x3c
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x24]
+ ldr r5, _021E338C ; =0x021E6650
+ str r0, [sp, #0x18]
+_021E3330:
+ ldr r0, [sp, #0x24]
+ add r1, r4, #0
+ ldr r0, [r0, #0xc]
+ ldr r0, [r0, #4]
+ bl FUN_0206B9B0
+ add r1, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ add r0, r4, #4
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x1c]
+ str r7, [sp, #8]
+ str r0, [sp, #0xc]
+ ldr r2, [sp, #0x24]
+ ldr r0, [sp, #0x24]
+ ldr r3, [r2, #0x34]
+ ldrh r2, [r5]
+ ldrh r6, [r5, #2]
+ ldr r0, [r0, #0x38]
+ add r2, r3, r2
+ ldr r3, [sp, #0x14]
+ add r3, r3, r6
+ bl MOD14_021E0940
+ ldr r0, [sp, #0x18]
+ ldr r1, [sp, #0x10]
+ ldr r0, [r0, #0x3c]
+ bl FUN_020200A0
+ ldr r0, [sp, #0x1c]
+ add r4, r4, #1
+ add r0, #0x34
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x18]
+ add r7, #0x20
+ add r0, #0x34
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x20]
+ add r5, r5, #4
+ cmp r4, r0
+ blt _021E3330
+_021E3384:
+ add sp, #0x28
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021E3388: .word 0x00000418
+_021E338C: .word 0x021E6650
+
+ thumb_func_start MOD14_021E3390
+MOD14_021E3390: ; 0x021E3390
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ ldr r0, [r7, #0xc]
+ ldr r0, [r0, #4]
+ bl FUN_0206B9AC
+ mov r6, #0
+ str r0, [sp]
+ cmp r0, #0
+ ble _021E33C6
+ add r5, r7, #0
+ add r4, r7, #0
+ add r5, #0x3c
+_021E33AA:
+ ldr r0, [r4, #0x3c]
+ cmp r0, #0
+ beq _021E33BA
+ ldr r0, [r7, #0x38]
+ add r1, r5, #0
+ mov r2, #1
+ bl MOD14_021E0908
+_021E33BA:
+ ldr r0, [sp]
+ add r6, r6, #1
+ add r4, #0x34
+ add r5, #0x34
+ cmp r6, r0
+ blt _021E33AA
+_021E33C6:
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD14_021E33C8
+MOD14_021E33C8: ; 0x021E33C8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r2, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ add r7, r1, #0
+ str r3, [sp]
+ bl MOD14_021DC3C4
+ cmp r0, #4
+ bne _021E33E4
+ mov r0, #0
+ str r0, [r6]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021E33E4:
+ mov r0, #0xa
+ mov r1, #0xf4
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _021E3460
+ ldr r0, [sp]
+ mov r1, #0xa
+ str r0, [r4, #8]
+ str r7, [r4]
+ ldr r0, [sp, #0x18]
+ str r5, [r4, #4]
+ str r0, [r4, #0xc]
+ mov r0, #0
+ str r0, [r4, #0x14]
+ mov r0, #0x20
+ bl FUN_020219F4
+ add r1, r4, #0
+ add r1, #0x84
+ str r0, [r1]
+ add r5, #0x9c
+ ldrb r0, [r5]
+ mov r1, #0
+ add r2, r1, #0
+ str r0, [r4, #0x10]
+ add r0, r4, #0
+ add r0, #0x98
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xa0
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xa8
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xb0
+ str r1, [r0]
+ str r1, [r4, #0x2c]
+ str r1, [r4, #0x30]
+ add r0, r4, #0
+_021E3436:
+ add r1, r1, #1
+ str r2, [r0, #0x34]
+ add r0, r0, #4
+ cmp r1, #8
+ blt _021E3436
+ add r0, r4, #0
+ mov r1, #0
+_021E3444:
+ add r2, r2, #1
+ str r1, [r0, #0x54]
+ add r0, r0, #4
+ cmp r2, #0xa
+ blt _021E3444
+ add r0, r4, #0
+ add r0, #0x80
+ str r1, [r0]
+ add r0, r4, #0
+ bl MOD14_021E3464
+ str r4, [r6]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021E3460:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD14_021E3464
+MOD14_021E3464: ; 0x021E3464
+ push {r4, r5, r6, r7}
+ add r1, r0, #0
+ mov r2, #0
+ add r1, #0xd4
+ strb r2, [r1]
+ add r1, r0, #0
+ mov r4, #0x5a
+ mov r3, #0x10
+ add r1, #0xe4
+ strb r3, [r1]
+ ldr r1, _021E34BC ; =0x020EDF50
+ mov r3, #1
+ lsl r4, r4, #8
+ mov r6, #0x10
+_021E3480:
+ add r2, r2, r4
+ asr r5, r2, #0xc
+ lsl r5, r5, #2
+ ldr r5, [r1, r5]
+ lsl r5, r5, #4
+ asr r7, r5, #0xc
+ add r5, r0, r3
+ add r5, #0xd4
+ strb r7, [r5]
+ add r5, r0, r3
+ add r5, #0xd4
+ ldrb r5, [r5]
+ sub r7, r6, r5
+ add r5, r0, r3
+ add r5, #0xe4
+ add r3, r3, #1
+ strb r7, [r5]
+ cmp r3, #0xf
+ blt _021E3480
+ add r1, r0, r3
+ add r0, r0, r3
+ mov r2, #0x10
+ add r1, #0xd4
+ strb r2, [r1]
+ mov r1, #0
+ add r0, #0xe4
+ strb r1, [r0]
+ pop {r4, r5, r6, r7}
+ bx lr
+ nop
+_021E34BC: .word 0x020EDF50
+
+ thumb_func_start MOD14_021E34C0
+MOD14_021E34C0: ; 0x021E34C0
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ beq _021E3558
+ add r0, #0x88
+ bl FUN_02019178
+ add r0, r6, #0
+ add r0, #0x98
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _021E34DA
+ bl FUN_02016A18
+_021E34DA:
+ add r0, r6, #0
+ add r0, #0xa0
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _021E34E8
+ bl FUN_02016A18
+_021E34E8:
+ add r0, r6, #0
+ add r0, #0xa8
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _021E34F6
+ bl FUN_02016A18
+_021E34F6:
+ add r0, r6, #0
+ add r0, #0xb0
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _021E3504
+ bl FUN_02016A18
+_021E3504:
+ ldr r0, [r6, #0x2c]
+ cmp r0, #0
+ beq _021E350E
+ bl FUN_0201FFC8
+_021E350E:
+ ldr r0, [r6, #0x30]
+ cmp r0, #0
+ beq _021E3518
+ bl FUN_0201FFC8
+_021E3518:
+ add r0, r6, #0
+ add r0, #0x84
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _021E3526
+ bl FUN_02021A20
+_021E3526:
+ mov r4, #0
+ add r5, r6, #0
+_021E352A:
+ ldr r0, [r5, #0x34]
+ cmp r0, #0
+ beq _021E3534
+ bl FUN_0201FFC8
+_021E3534:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #8
+ blt _021E352A
+ mov r5, #0
+ add r4, r6, #0
+_021E3540:
+ ldr r0, [r4, #0x54]
+ cmp r0, #0
+ beq _021E354A
+ bl FUN_0201FFC8
+_021E354A:
+ add r5, r5, #1
+ add r4, r4, #4
+ cmp r5, #0xa
+ blt _021E3540
+ add r0, r6, #0
+ bl FUN_02016A18
+_021E3558:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E355C
+MOD14_021E355C: ; 0x021E355C
+ push {r4, r5, lr}
+ sub sp, #0x14
+ add r4, r0, #0
+ beq _021E365C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0xa
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #8]
+ mov r0, #0x12
+ mov r1, #0x67
+ mov r3, #7
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0xa
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #8]
+ mov r0, #0x12
+ mov r1, #0x64
+ mov r3, #7
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0xa
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #8]
+ mov r0, #0x12
+ mov r1, #0x65
+ mov r3, #6
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0xa
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #8]
+ mov r0, #0x12
+ mov r1, #0x66
+ mov r3, #5
+ bl FUN_020068C8
+ mov r2, #0
+ str r2, [sp]
+ ldr r0, [r4, #8]
+ mov r1, #4
+ mov r3, #1
+ bl FUN_02017F48
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x11
+ str r0, [sp, #0xc]
+ ldr r0, [r4, #8]
+ mov r1, #4
+ add r3, r2, #0
+ bl FUN_02018540
+ ldr r0, [r4, #8]
+ mov r1, #4
+ bl FUN_02017CD0
+ ldr r3, [r4, #0x10]
+ ldr r0, [r4, #8]
+ lsl r5, r3, #2
+ ldr r3, _021E3660 ; =0x021E6674
+ mov r1, #5
+ ldr r3, [r3, r5]
+ mov r2, #0
+ bl FUN_020179E0
+ mov r3, #0
+ add r1, r4, #0
+ str r3, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #2
+ str r0, [sp, #0xc]
+ str r3, [sp, #0x10]
+ ldr r0, [r4, #8]
+ add r1, #0x88
+ mov r2, #4
+ bl FUN_02019064
+ add r0, r4, #0
+ add r0, #0x88
+ mov r1, #0
+ bl FUN_02019620
+ add r0, r4, #0
+ add r0, #0x88
+ bl FUN_020191D0
+ add r0, r4, #0
+ bl MOD14_021E4764
+ mov r0, #0x60
+ str r0, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ mov r0, #0x12
+ mov r1, #0x68
+ mov r2, #4
+ mov r3, #0
+ bl FUN_02006930
+ add r0, r4, #0
+ bl MOD14_021E3664
+_021E365C:
+ add sp, #0x14
+ pop {r4, r5, pc}
+ .align 2, 0
+_021E3660: .word 0x021E6674
+
+ thumb_func_start MOD14_021E3664
+MOD14_021E3664: ; 0x021E3664
+ push {r3, r4, lr}
+ sub sp, #0x5c
+ add r4, r0, #0
+ bl MOD14_021E36FC
+ add r0, sp, #0x14
+ bl FUN_020B1A24
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ str r3, [sp, #8]
+ mov r0, #0xa
+ str r0, [sp, #0xc]
+ add r0, sp, #0x14
+ str r0, [sp, #0x10]
+ mov r0, #0x12
+ mov r1, #0x72
+ mov r2, #1
+ bl FUN_02006AE4
+ add r0, r4, #0
+ add r0, #0xa4
+ ldr r0, [r0]
+ add r3, r4, #0
+ str r0, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ add r3, #0x9c
+ add r2, r4, #0
+ ldr r3, [r3]
+ add r0, sp, #0x38
+ add r1, sp, #0x14
+ add r2, #0x18
+ bl MOD14_021DDDB4
+ mov r0, #0x31
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r3, #0x8e
+ ldr r0, [r4, #0xc]
+ add r1, sp, #0x38
+ mov r2, #0
+ lsl r3, r3, #2
+ bl MOD14_021DDDD4
+ str r0, [r4, #0x2c]
+ mov r0, #0x31
+ mov r3, #0x8e
+ str r0, [sp]
+ mov r2, #2
+ str r2, [sp, #4]
+ ldr r0, [r4, #0xc]
+ add r1, sp, #0x38
+ add r2, #0xfe
+ lsl r3, r3, #2
+ bl MOD14_021DDDD4
+ str r0, [r4, #0x30]
+ mov r1, #1
+ bl FUN_02020100
+ ldr r0, [r4, #4]
+ bl MOD14_021DC3C4
+ cmp r0, #3
+ bne _021E36F6
+ ldr r0, [r4, #0x30]
+ mov r1, #1
+ bl FUN_02020130
+_021E36F6:
+ add sp, #0x5c
+ pop {r3, r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E36FC
+MOD14_021E36FC: ; 0x021E36FC
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ mov r0, #0xa
+ add r3, r4, #0
+ str r0, [sp]
+ mov r0, #0x12
+ mov r1, #0x73
+ mov r2, #1
+ add r3, #0x9c
+ bl FUN_02006C30
+ add r1, r4, #0
+ add r1, #0x98
+ str r0, [r1]
+ mov r0, #0xa
+ add r3, r4, #0
+ str r0, [sp]
+ mov r0, #0x12
+ mov r1, #0x74
+ mov r2, #1
+ add r3, #0xa4
+ bl FUN_02006C5C
+ add r1, r4, #0
+ add r1, #0xa0
+ str r0, [r1]
+ mov r0, #0xa
+ add r3, r4, #0
+ str r0, [sp]
+ mov r0, #0x12
+ mov r1, #0x76
+ mov r2, #1
+ add r3, #0xac
+ bl FUN_02006C30
+ add r1, r4, #0
+ add r1, #0xa8
+ str r0, [r1]
+ mov r0, #0xa
+ add r3, r4, #0
+ str r0, [sp]
+ mov r0, #0x12
+ mov r1, #0x77
+ mov r2, #1
+ add r3, #0xb4
+ bl FUN_02006C5C
+ add r1, r4, #0
+ add r1, #0xb0
+ str r0, [r1]
+ add r0, r4, #0
+ add r0, #0x18
+ bl FUN_020B19DC
+ mov r0, #0xa
+ str r0, [sp]
+ add r4, #0x18
+ mov r0, #0x12
+ mov r1, #0x78
+ mov r2, #2
+ mov r3, #0
+ str r4, [sp, #4]
+ bl FUN_02006A8C
+ add sp, #8
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E3784
+MOD14_021E3784: ; 0x021E3784
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, r1, #0
+ add r1, r2, #0
+ mov r2, #0
+ bl MOD14_021DDD40
+ str r0, [r4, #0x14]
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E3798
+MOD14_021E3798: ; 0x021E3798
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x14]
+ bl FUN_0200CAB4
+ mov r0, #0
+ str r0, [r4, #0x14]
+ pop {r4, pc}
+
+ thumb_func_start MOD14_021E37A8
+MOD14_021E37A8: ; 0x021E37A8
+ ldr r0, [r0, #0x14]
+ cmp r0, #0
+ bne _021E37B2
+ mov r0, #1
+ bx lr
+_021E37B2:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021E37B8
+MOD14_021E37B8: ; 0x021E37B8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ beq _021E388A
+ ldr r1, [r5, #4]
+ add r1, #0x9c
+ ldrb r6, [r1]
+ ldr r1, [r5, #0x10]
+ cmp r1, r6
+ beq _021E388A
+ add r1, r5, #0
+ add r4, r5, #0
+ add r1, #0xb8
+ str r5, [r1]
+ add r4, #0xb8
+ mov r1, #0
+ str r1, [r4, #8]
+ str r1, [r4, #4]
+ cmp r6, #0
+ beq _021E37E8
+ cmp r6, #1
+ beq _021E3800
+ cmp r6, #2
+ beq _021E3822
+ b _021E384A
+_021E37E8:
+ mov r1, #8
+ strh r1, [r4, #0xc]
+ ldr r7, _021E388C ; =MOD14_021E3AB0
+ bl MOD14_021E3DD8
+ add r0, r5, #0
+ bl MOD14_021E3EBC
+ add r0, r5, #0
+ bl MOD14_021E4764
+ b _021E3852
+_021E3800:
+ mov r0, #8
+ strh r0, [r4, #0xc]
+ ldr r0, [r5, #0x10]
+ cmp r0, #0
+ bne _021E380E
+ ldr r7, _021E3890 ; =MOD14_021E38AC
+ b _021E3816
+_021E380E:
+ ldrh r0, [r4, #0xc]
+ ldr r7, _021E3894 ; =MOD14_021E3984
+ add r0, #8
+ strh r0, [r4, #0xc]
+_021E3816:
+ add r0, r5, #0
+ bl MOD14_021E3EBC
+ ldr r0, [r5, #0x2c]
+ str r0, [r4, #8]
+ b _021E3852
+_021E3822:
+ mov r0, #8
+ strh r0, [r4, #0xc]
+ ldr r0, [r5, #0x10]
+ cmp r0, #0
+ bne _021E3830
+ ldr r7, _021E3890 ; =MOD14_021E38AC
+ b _021E3838
+_021E3830:
+ ldrh r0, [r4, #0xc]
+ ldr r7, _021E3894 ; =MOD14_021E3984
+ add r0, #8
+ strh r0, [r4, #0xc]
+_021E3838:
+ ldr r0, [r5, #0x30]
+ str r0, [r4, #8]
+ add r0, r5, #0
+ bl MOD14_021E3DD8
+ add r0, r5, #0
+ bl MOD14_021E4764
+ b _021E3852
+_021E384A:
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r3, r4, r5, r6, r7, pc}
+_021E3852:
+ str r6, [r5, #0x10]
+ ldr r0, [r5, #8]
+ mov r1, #5
+ bl FUN_02017B48
+ lsl r0, r0, #0xc
+ ldr r1, _021E3898 ; =0x021E6674
+ lsl r2, r6, #2
+ str r0, [r4, #0x10]
+ ldr r6, [r1, r2]
+ ldrh r1, [r4, #0xc]
+ sub r0, r6, r0
+ bl _s32_div_f
+ str r0, [r4, #0x14]
+ asr r0, r6, #0xc
+ str r0, [r4, #0x18]
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ beq _021E3880
+ mov r1, #1
+ bl FUN_02020130
+_021E3880:
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ bl MOD14_021E3784
+_021E388A:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021E388C: .word MOD14_021E3AB0
+_021E3890: .word MOD14_021E38AC
+_021E3894: .word MOD14_021E3984
+_021E3898: .word 0x021E6674
+
+ thumb_func_start MOD14_021E389C
+MOD14_021E389C: ; 0x021E389C
+ push {r3, lr}
+ cmp r0, #0
+ beq _021E38A8
+ bl MOD14_021E37A8
+ pop {r3, pc}
+_021E38A8:
+ mov r0, #1
+ pop {r3, pc}
+
+ thumb_func_start MOD14_021E38AC
+MOD14_021E38AC: ; 0x021E38AC
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldr r0, [r4, #4]
+ ldr r5, [r4]
+ cmp r0, #3
+ bhi _021E3974
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021E38C4: ; jump table
+ .short _021E38CC - _021E38C4 - 2 ; case 0
+ .short _021E38DE - _021E38C4 - 2 ; case 1
+ .short _021E3924 - _021E38C4 - 2 ; case 2
+ .short _021E3942 - _021E38C4 - 2 ; case 3
+_021E38CC:
+ ldr r0, [r4, #8]
+ bl FUN_02020388
+ cmp r0, #0
+ bne _021E3974
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r3, r4, r5, pc}
+_021E38DE:
+ ldrh r0, [r4, #0xc]
+ cmp r0, #0
+ beq _021E3900
+ ldr r1, [r4, #0x10]
+ ldr r0, [r4, #0x14]
+ mov r2, #0
+ add r3, r1, r0
+ str r3, [r4, #0x10]
+ ldr r0, [r5, #8]
+ mov r1, #5
+ asr r3, r3, #0xc
+ bl FUN_020179E0
+ ldrh r0, [r4, #0xc]
+ sub r0, r0, #1
+ strh r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_021E3900:
+ ldr r0, [r5, #8]
+ ldr r3, [r4, #0x18]
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020179E0
+ mov r0, #0x10
+ str r0, [sp]
+ ldr r0, _021E3978 ; =0x04001050
+ mov r1, #4
+ mov r2, #8
+ mov r3, #0
+ bl G2x_SetBlendAlpha_
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r3, r4, r5, pc}
+_021E3924:
+ ldr r3, [r5, #0x10]
+ ldr r0, [r5, #8]
+ lsl r5, r3, #2
+ ldr r3, _021E397C ; =0x021E6668
+ mov r1, #6
+ ldr r3, [r3, r5]
+ mov r2, #0
+ bl FUN_020179E0
+ mov r0, #0
+ strh r0, [r4, #0xe]
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r3, r4, r5, pc}
+_021E3942:
+ mov r1, #0xe
+ ldrsh r3, [r4, r1]
+ add r0, r5, r3
+ add r0, #0xd4
+ ldrb r2, [r0]
+ add r0, r5, r3
+ add r0, #0xe4
+ ldrb r0, [r0]
+ lsl r0, r0, #8
+ orr r2, r0
+ ldr r0, _021E3980 ; =0x04001052
+ strh r2, [r0]
+ ldrsh r0, [r4, r1]
+ add r0, r0, #1
+ strh r0, [r4, #0xe]
+ ldrsh r0, [r4, r1]
+ cmp r0, #0x10
+ blt _021E3974
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl FUN_02020130
+ add r0, r5, #0
+ bl MOD14_021E3798
+_021E3974:
+ pop {r3, r4, r5, pc}
+ nop
+_021E3978: .word 0x04001050
+_021E397C: .word 0x021E6668
+_021E3980: .word 0x04001052
+
+ thumb_func_start MOD14_021E3984
+MOD14_021E3984: ; 0x021E3984
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldr r0, [r4, #4]
+ ldr r5, [r4]
+ cmp r0, #4
+ bls _021E3992
+ b _021E3AA2
+_021E3992:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021E399E: ; jump table
+ .short _021E39A8 - _021E399E - 2 ; case 0
+ .short _021E39CE - _021E399E - 2 ; case 1
+ .short _021E3A0C - _021E399E - 2 ; case 2
+ .short _021E3A52 - _021E399E - 2 ; case 3
+ .short _021E3A70 - _021E399E - 2 ; case 4
+_021E39A8:
+ ldr r0, [r4, #8]
+ bl FUN_02020388
+ cmp r0, #0
+ bne _021E3AA2
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _021E3AA4 ; =0x04001050
+ mov r1, #4
+ mov r2, #8
+ mov r3, #0x10
+ bl G2x_SetBlendAlpha_
+ mov r0, #0xf
+ strh r0, [r4, #0xe]
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r3, r4, r5, pc}
+_021E39CE:
+ mov r1, #0xe
+ ldrsh r0, [r4, r1]
+ sub r0, r0, #1
+ strh r0, [r4, #0xe]
+ ldrsh r3, [r4, r1]
+ add r0, r5, r3
+ add r0, #0xd4
+ ldrb r2, [r0]
+ add r0, r5, r3
+ add r0, #0xe4
+ ldrb r0, [r0]
+ lsl r0, r0, #8
+ orr r2, r0
+ ldr r0, _021E3AA8 ; =0x04001052
+ strh r2, [r0]
+ ldrsh r0, [r4, r1]
+ cmp r0, #0
+ bne _021E3AA2
+ ldr r3, [r5, #0x10]
+ ldr r0, [r5, #8]
+ lsl r5, r3, #2
+ ldr r3, _021E3AAC ; =0x021E6668
+ mov r1, #6
+ ldr r3, [r3, r5]
+ mov r2, #0
+ bl FUN_020179E0
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r3, r4, r5, pc}
+_021E3A0C:
+ ldrh r0, [r4, #0xc]
+ cmp r0, #0
+ beq _021E3A2E
+ ldr r1, [r4, #0x10]
+ ldr r0, [r4, #0x14]
+ mov r2, #0
+ add r3, r1, r0
+ str r3, [r4, #0x10]
+ ldr r0, [r5, #8]
+ mov r1, #5
+ asr r3, r3, #0xc
+ bl FUN_020179E0
+ ldrh r0, [r4, #0xc]
+ sub r0, r0, #1
+ strh r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_021E3A2E:
+ ldr r0, [r5, #8]
+ ldr r3, [r4, #0x18]
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020179E0
+ mov r0, #0x10
+ str r0, [sp]
+ ldr r0, _021E3AA4 ; =0x04001050
+ mov r1, #4
+ mov r2, #8
+ mov r3, #0
+ bl G2x_SetBlendAlpha_
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r3, r4, r5, pc}
+_021E3A52:
+ ldr r3, [r5, #0x10]
+ ldr r0, [r5, #8]
+ lsl r5, r3, #2
+ ldr r3, _021E3AAC ; =0x021E6668
+ mov r1, #6
+ ldr r3, [r3, r5]
+ mov r2, #0
+ bl FUN_020179E0
+ mov r0, #0
+ strh r0, [r4, #0xe]
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r3, r4, r5, pc}
+_021E3A70:
+ mov r1, #0xe
+ ldrsh r3, [r4, r1]
+ add r0, r5, r3
+ add r0, #0xd4
+ ldrb r2, [r0]
+ add r0, r5, r3
+ add r0, #0xe4
+ ldrb r0, [r0]
+ lsl r0, r0, #8
+ orr r2, r0
+ ldr r0, _021E3AA8 ; =0x04001052
+ strh r2, [r0]
+ ldrsh r0, [r4, r1]
+ add r0, r0, #1
+ strh r0, [r4, #0xe]
+ ldrsh r0, [r4, r1]
+ cmp r0, #0x10
+ blt _021E3AA2
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl FUN_02020130
+ add r0, r5, #0
+ bl MOD14_021E3798
+_021E3AA2:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021E3AA4: .word 0x04001050
+_021E3AA8: .word 0x04001052
+_021E3AAC: .word 0x021E6668
+
+ thumb_func_start MOD14_021E3AB0
+MOD14_021E3AB0: ; 0x021E3AB0
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldr r1, [r4, #4]
+ ldr r0, [r4]
+ cmp r1, #3
+ bhi _021E3B4C
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021E3AC8: ; jump table
+ .short _021E3AD0 - _021E3AC8 - 2 ; case 0
+ .short _021E3ADA - _021E3AC8 - 2 ; case 1
+ .short _021E3B12 - _021E3AC8 - 2 ; case 2
+ .short _021E3B48 - _021E3AC8 - 2 ; case 3
+_021E3AD0:
+ mov r1, #0xf
+ strh r1, [r4, #0xe]
+ ldr r1, [r4, #4]
+ add r1, r1, #1
+ str r1, [r4, #4]
+_021E3ADA:
+ mov r2, #0xe
+ ldrsh r1, [r4, r2]
+ sub r1, r1, #1
+ strh r1, [r4, #0xe]
+ ldrsh r5, [r4, r2]
+ add r1, r0, r5
+ add r1, #0xd4
+ ldrb r3, [r1]
+ add r1, r0, r5
+ add r1, #0xe4
+ ldrb r1, [r1]
+ lsl r1, r1, #8
+ orr r3, r1
+ ldr r1, _021E3B50 ; =0x04001052
+ strh r3, [r1]
+ ldrsh r1, [r4, r2]
+ cmp r1, #0
+ bne _021E3B4C
+ mov r2, #0
+ ldr r0, [r0, #8]
+ mov r1, #6
+ add r3, r2, #0
+ bl FUN_020179E0
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r3, r4, r5, pc}
+_021E3B12:
+ ldrh r1, [r4, #0xc]
+ cmp r1, #0
+ beq _021E3B34
+ ldr r2, [r4, #0x10]
+ ldr r1, [r4, #0x14]
+ add r3, r2, r1
+ str r3, [r4, #0x10]
+ ldr r0, [r0, #8]
+ mov r1, #5
+ mov r2, #0
+ asr r3, r3, #0xc
+ bl FUN_020179E0
+ ldrh r0, [r4, #0xc]
+ sub r0, r0, #1
+ strh r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_021E3B34:
+ ldr r0, [r0, #8]
+ ldr r3, [r4, #0x18]
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020179E0
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r3, r4, r5, pc}
+_021E3B48:
+ bl MOD14_021E3798
+_021E3B4C:
+ pop {r3, r4, r5, pc}
+ nop
+_021E3B50: .word 0x04001052
+
+ thumb_func_start MOD14_021E3B54
+MOD14_021E3B54: ; 0x021E3B54
+ push {r4, lr}
+ add r4, r0, #0
+ beq _021E3B7C
+ ldr r1, [r4, #0x10]
+ cmp r1, #1
+ beq _021E3B66
+ cmp r1, #2
+ beq _021E3B72
+ pop {r4, pc}
+_021E3B66:
+ bl MOD14_021E3C94
+ add r0, r4, #0
+ bl MOD14_021E41C0
+ pop {r4, pc}
+_021E3B72:
+ bl MOD14_021E3E1C
+ add r0, r4, #0
+ bl MOD14_021E44E0
+_021E3B7C:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E3B80
+MOD14_021E3B80: ; 0x021E3B80
+ push {r4, lr}
+ add r4, r0, #0
+ beq _021E3BA2
+ bl MOD14_021E37A8
+ cmp r0, #0
+ beq _021E3B9E
+ ldr r0, [r4, #0x10]
+ cmp r0, #1
+ bne _021E3B9A
+ add r0, r4, #0
+ bl MOD14_021E4790
+_021E3B9A:
+ mov r0, #1
+ pop {r4, pc}
+_021E3B9E:
+ mov r0, #0
+ pop {r4, pc}
+_021E3BA2:
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E3BA8
+MOD14_021E3BA8: ; 0x021E3BA8
+ push {r4, lr}
+ add r4, r0, #0
+ beq _021E3BD0
+ ldr r1, [r4, #0x10]
+ cmp r1, #1
+ beq _021E3BBA
+ cmp r1, #2
+ beq _021E3BCC
+ pop {r4, pc}
+_021E3BBA:
+ bl MOD14_021E4764
+ add r0, r4, #0
+ bl MOD14_021E3D38
+ add r0, r4, #0
+ bl MOD14_021E43E8
+ pop {r4, pc}
+_021E3BCC:
+ bl MOD14_021E46E4
+_021E3BD0:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E3BD4
+MOD14_021E3BD4: ; 0x021E3BD4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD14_021DC46C
+ cmp r0, #0
+ ble _021E3C04
+ add r2, r4, #0
+ add r2, #0x80
+ ldr r2, [r2]
+ add r1, r4, #0
+ sub r2, r2, r0
+ add r0, r4, #0
+ add r0, #0x80
+ add r4, #0x80
+ str r2, [r0]
+ ldr r0, [r4]
+ add r1, #0x80
+ cmp r0, #0
+ bge _021E3C24
+ ldr r0, [r1]
+ add r0, #0xa
+ str r0, [r1]
+ pop {r4, pc}
+_021E3C04:
+ add r2, r4, #0
+ add r2, #0x80
+ ldr r2, [r2]
+ add r1, r4, #0
+ sub r2, r2, r0
+ add r0, r4, #0
+ add r0, #0x80
+ add r4, #0x80
+ str r2, [r0]
+ ldr r0, [r4]
+ add r1, #0x80
+ cmp r0, #0xa
+ blt _021E3C24
+ ldr r0, [r1]
+ sub r0, #0xa
+ str r0, [r1]
+_021E3C24:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E3C28
+MOD14_021E3C28: ; 0x021E3C28
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD14_021DC46C
+ add r2, r4, #0
+ add r2, #0x80
+ ldr r2, [r2]
+ add r1, r4, #0
+ add r2, r2, r0
+ add r0, r4, #0
+ add r0, #0x80
+ add r4, #0x80
+ str r2, [r0]
+ ldr r0, [r4]
+ add r1, #0x80
+ cmp r0, #0
+ bge _021E3C54
+ ldr r0, [r1]
+ add r0, #8
+ str r0, [r1]
+ pop {r4, pc}
+_021E3C54:
+ cmp r0, #8
+ blt _021E3C5E
+ ldr r0, [r1]
+ sub r0, #8
+ str r0, [r1]
+_021E3C5E:
+ pop {r4, pc}
+
+ thumb_func_start MOD14_021E3C60
+MOD14_021E3C60: ; 0x021E3C60
+ push {r4, lr}
+ add r4, r0, #0
+ beq _021E3C90
+ bl MOD14_021E37A8
+ cmp r0, #0
+ beq _021E3C8C
+ ldr r0, [r4, #0x10]
+ cmp r0, #1
+ bne _021E3C82
+ add r0, r4, #0
+ bl MOD14_021E4790
+ add r0, r4, #0
+ bl MOD14_021E3BD4
+ b _021E3C88
+_021E3C82:
+ add r0, r4, #0
+ bl MOD14_021E3C28
+_021E3C88:
+ mov r0, #1
+ pop {r4, pc}
+_021E3C8C:
+ mov r0, #0
+ pop {r4, pc}
+_021E3C90:
+ mov r0, #1
+ pop {r4, pc}
+
+ thumb_func_start MOD14_021E3C94
+MOD14_021E3C94: ; 0x021E3C94
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x5c
+ str r0, [sp, #8]
+ ldr r0, [r0]
+ bl MOD14_021DDD84
+ add r7, r0, #0
+ ldr r0, [sp, #8]
+ ldr r0, [r0, #4]
+ bl MOD14_021DC474
+ add r4, r0, #3
+ cmp r4, #0x12
+ blt _021E3CB2
+ sub r4, #0x12
+_021E3CB2:
+ ldr r5, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ str r0, [sp, #0x10]
+ add r0, #0x18
+ mov r6, #0xc0
+ str r0, [sp, #0x10]
+_021E3CC2:
+ add r0, sp, #0x14
+ bl FUN_020B1A24
+ add r0, sp, #0x14
+ str r0, [sp]
+ add r0, r7, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ mov r3, #2
+ bl MOD14_021E1FF8
+ add r0, r7, #0
+ bl MOD14_021E2184
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldr r2, [sp, #0x10]
+ add r0, sp, #0x38
+ add r1, sp, #0x14
+ bl MOD14_021DDDB4
+ mov r0, #0x30
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldr r0, [sp, #8]
+ mov r3, #0x17
+ ldr r0, [r0, #0xc]
+ add r1, sp, #0x38
+ mov r2, #0x10
+ lsl r3, r3, #4
+ bl MOD14_021DDDD4
+ str r0, [r5, #0x54]
+ cmp r0, #0
+ bne _021E3D14
+ bl ErrorHandling
+_021E3D14:
+ sub r4, r4, #1
+ bpl _021E3D1A
+ mov r4, #0x11
+_021E3D1A:
+ ldr r0, [sp, #0xc]
+ add r6, #0x20
+ add r0, r0, #1
+ add r5, r5, #4
+ str r0, [sp, #0xc]
+ cmp r0, #0xa
+ blt _021E3CC2
+ ldr r0, [sp, #8]
+ mov r1, #0
+ add r0, #0x80
+ str r0, [sp, #8]
+ str r1, [r0]
+ add sp, #0x5c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E3D38
+MOD14_021E3D38: ; 0x021E3D38
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ str r0, [sp, #4]
+ ldr r0, [r0]
+ bl MOD14_021DDD84
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #4]
+ ldr r0, [r0, #4]
+ bl MOD14_021DC474
+ ldr r1, [sp, #4]
+ ldr r2, [r1, #4]
+ mov r1, #0xa0
+ ldrsh r7, [r2, r1]
+ cmp r7, #0
+ ble _021E3D74
+ sub r0, r0, r7
+ add r5, r0, #4
+ cmp r5, #0x12
+ blt _021E3D64
+ sub r5, #0x12
+_021E3D64:
+ ldr r0, [sp, #4]
+ mov r6, #1
+ add r0, #0x80
+ ldr r0, [r0]
+ sub r4, r0, #1
+ bpl _021E3D90
+ add r4, #0xa
+ b _021E3D90
+_021E3D74:
+ sub r0, r0, r7
+ sub r5, r0, #3
+ bpl _021E3D7C
+ add r5, #0x12
+_021E3D7C:
+ ldr r0, [sp, #4]
+ mov r6, #0
+ add r0, #0x80
+ ldr r0, [r0]
+ mvn r6, r6
+ add r4, r0, #6
+ cmp r4, #0xa
+ blt _021E3D8E
+ sub r4, #0xa
+_021E3D8E:
+ neg r7, r7
+_021E3D90:
+ ldr r0, [sp, #4]
+ str r7, [r0, #0x7c]
+ mov r0, #0
+ str r0, [sp, #8]
+ cmp r7, #0
+ ble _021E3DD4
+_021E3D9C:
+ mov r0, #0
+ str r0, [sp]
+ lsl r2, r4, #5
+ ldr r0, [sp, #0xc]
+ add r1, r5, #0
+ add r2, #0xc0
+ mov r3, #2
+ bl MOD14_021E1FF8
+ add r5, r5, r6
+ bpl _021E3DB6
+ mov r5, #0x11
+ b _021E3DBC
+_021E3DB6:
+ cmp r5, #0x12
+ blt _021E3DBC
+ mov r5, #0
+_021E3DBC:
+ sub r4, r4, r6
+ bpl _021E3DC4
+ mov r4, #9
+ b _021E3DCA
+_021E3DC4:
+ cmp r4, #0xa
+ blt _021E3DCA
+ mov r4, #0
+_021E3DCA:
+ ldr r0, [sp, #8]
+ add r0, r0, #1
+ str r0, [sp, #8]
+ cmp r0, r7
+ blt _021E3D9C
+_021E3DD4:
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD14_021E3DD8
+MOD14_021E3DD8: ; 0x021E3DD8
+ push {r4, r5, r6, lr}
+ mov r4, #0
+ add r5, r0, #0
+ add r6, r4, #0
+_021E3DE0:
+ ldr r0, [r5, #0x54]
+ cmp r0, #0
+ beq _021E3DEC
+ bl FUN_0201FFC8
+ str r6, [r5, #0x54]
+_021E3DEC:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0xa
+ blt _021E3DE0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E3DF8
+MOD14_021E3DF8: ; 0x021E3DF8
+ cmp r0, #0
+ bne _021E3E08
+ cmp r1, #0
+ bne _021E3E04
+ mov r0, #1
+ bx lr
+_021E3E04:
+ mov r0, #0
+ bx lr
+_021E3E08:
+ mov r3, #1
+ sub r2, r0, #1
+ lsl r3, r2
+ tst r1, r3
+ beq _021E3E18
+ lsl r0, r0, #1
+ add r0, r0, #1
+ bx lr
+_021E3E18:
+ lsl r0, r0, #1
+ bx lr
+
+ thumb_func_start MOD14_021E3E1C
+MOD14_021E3E1C: ; 0x021E3E1C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x60
+ add r5, r0, #0
+ ldr r0, [r5, #4]
+ bl MOD14_021DC484
+ str r0, [sp, #0x14]
+ add r0, sp, #0x18
+ bl FUN_020B1A24
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #6
+ lsl r0, r0, #0xa
+ str r0, [sp, #8]
+ mov r0, #0xa
+ str r0, [sp, #0xc]
+ add r0, sp, #0x18
+ str r0, [sp, #0x10]
+ mov r0, #0x12
+ mov r1, #0x75
+ mov r2, #1
+ bl FUN_02006AE4
+ add r7, r5, #0
+ mov r6, #0
+ add r4, r5, #0
+ add r7, #0x18
+_021E3E58:
+ add r0, r5, #0
+ add r0, #0xb4
+ ldr r0, [r0]
+ add r3, r5, #0
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ add r3, #0xac
+ ldr r3, [r3]
+ add r0, sp, #0x3c
+ add r1, sp, #0x18
+ add r2, r7, #0
+ bl MOD14_021DDDB4
+ mov r0, #0x30
+ str r0, [sp]
+ mov r0, #2
+ mov r2, #0xf0
+ str r0, [sp, #4]
+ add r3, r2, #0
+ ldr r0, [r5, #0xc]
+ add r1, sp, #0x3c
+ add r3, #0x80
+ bl MOD14_021DDDD4
+ str r0, [r4, #0x34]
+ cmp r0, #0
+ bne _021E3E94
+ bl ErrorHandling
+_021E3E94:
+ ldr r1, [sp, #0x14]
+ add r0, r6, #0
+ bl MOD14_021E3DF8
+ add r1, r0, #0
+ ldr r0, [r4, #0x34]
+ bl FUN_02020130
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #8
+ blt _021E3E58
+ ldr r0, [r5, #4]
+ bl MOD14_021DC47C
+ add r5, #0x80
+ str r0, [r5]
+ add sp, #0x60
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E3EBC
+MOD14_021E3EBC: ; 0x021E3EBC
+ push {r4, r5, r6, lr}
+ mov r4, #0
+ add r5, r0, #0
+ add r6, r4, #0
+_021E3EC4:
+ ldr r0, [r5, #0x34]
+ cmp r0, #0
+ beq _021E3ED0
+ bl FUN_0201FFC8
+ str r6, [r5, #0x34]
+_021E3ED0:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #8
+ blt _021E3EC4
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E3EDC
+MOD14_021E3EDC: ; 0x021E3EDC
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrh r0, [r4, #0x16]
+ cmp r0, #0
+ beq _021E3EF2
+ sub r0, r0, #1
+ add sp, #0xc
+ strh r0, [r4, #0x16]
+ pop {r4, r5, pc}
+_021E3EF2:
+ ldrh r0, [r4, #0x14]
+ cmp r0, #0
+ beq _021E3F28
+ sub r0, r0, #1
+ strh r0, [r4, #0x14]
+ ldr r1, [r4, #8]
+ ldr r0, [r4, #0x10]
+ add r0, r1, r0
+ str r0, [r4, #8]
+ asr r0, r0, #0xc
+ lsl r1, r0, #2
+ ldr r0, _021E3F58 ; =0x021E66A8
+ ldrsh r0, [r0, r1]
+ lsl r0, r0, #0xc
+ str r0, [sp]
+ ldr r0, _021E3F5C ; =0x021E66AA
+ ldrsh r0, [r0, r1]
+ add r1, sp, #0
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ ldr r0, [r4, #4]
+ bl FUN_02020044
+ add sp, #0xc
+ pop {r4, r5, pc}
+_021E3F28:
+ ldr r0, [r4, #0xc]
+ asr r0, r0, #0xc
+ lsl r1, r0, #2
+ ldr r0, _021E3F58 ; =0x021E66A8
+ ldrsh r0, [r0, r1]
+ lsl r0, r0, #0xc
+ str r0, [sp]
+ ldr r0, _021E3F5C ; =0x021E66AA
+ ldrsh r0, [r0, r1]
+ add r1, sp, #0
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ ldr r0, [r4, #4]
+ bl FUN_02020044
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD14_021E4010
+ add sp, #0xc
+ pop {r4, r5, pc}
+ nop
+_021E3F58: .word 0x021E66A8
+_021E3F5C: .word 0x021E66AA
+
+ thumb_func_start MOD14_021E3F60
+MOD14_021E3F60: ; 0x021E3F60
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrh r0, [r4, #0x16]
+ cmp r0, #0
+ beq _021E3F76
+ sub r0, r0, #1
+ add sp, #0xc
+ strh r0, [r4, #0x16]
+ pop {r4, r5, pc}
+_021E3F76:
+ ldrh r0, [r4, #0x14]
+ cmp r0, #0
+ beq _021E3FB2
+ sub r0, r0, #1
+ strh r0, [r4, #0x14]
+ ldr r1, [r4, #8]
+ ldr r0, [r4, #0x10]
+ add r0, r1, r0
+ str r0, [r4, #8]
+ asr r0, r0, #0xc
+ ldr r1, _021E4008 ; =0x021E66A8
+ lsl r0, r0, #2
+ ldrsh r2, [r1, r0]
+ mov r1, #1
+ lsl r1, r1, #8
+ sub r1, r1, r2
+ lsl r1, r1, #0xc
+ str r1, [sp]
+ ldr r1, _021E400C ; =0x021E66AA
+ ldrsh r0, [r1, r0]
+ add r1, sp, #0
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ ldr r0, [r4, #4]
+ bl FUN_02020044
+ add sp, #0xc
+ pop {r4, r5, pc}
+_021E3FB2:
+ ldr r0, [r4, #0xc]
+ ldr r1, _021E4008 ; =0x021E66A8
+ asr r0, r0, #0xc
+ lsl r0, r0, #2
+ ldrsh r2, [r1, r0]
+ mov r1, #1
+ lsl r1, r1, #8
+ sub r1, r1, r2
+ lsl r1, r1, #0xc
+ str r1, [sp]
+ ldr r1, _021E400C ; =0x021E66AA
+ ldrsh r0, [r1, r0]
+ add r1, sp, #0
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ ldr r0, [r4, #4]
+ bl FUN_02020044
+ ldr r0, [r4, #0x18]
+ cmp r0, #0
+ beq _021E3FFC
+ ldrh r0, [r4, #0x28]
+ add sp, #0xc
+ strh r0, [r4, #0x14]
+ ldr r0, [r4, #0x1c]
+ str r0, [r4, #8]
+ ldr r0, [r4, #0x24]
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #0x20]
+ str r0, [r4, #0xc]
+ ldrh r0, [r4, #0x2a]
+ strh r0, [r4, #0x16]
+ mov r0, #0
+ str r0, [r4, #0x18]
+ pop {r4, r5, pc}
+_021E3FFC:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD14_021E4010
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_021E4008: .word 0x021E66A8
+_021E400C: .word 0x021E66AA
+
+ thumb_func_start MOD14_021E4010
+MOD14_021E4010: ; 0x021E4010
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r4, [r1]
+ ldr r0, _021E4034 ; =0x000001CB
+ ldrb r0, [r4, r0]
+ cmp r0, #0
+ bne _021E4022
+ bl ErrorHandling
+_021E4022:
+ ldr r0, _021E4034 ; =0x000001CB
+ ldrb r1, [r4, r0]
+ sub r1, r1, #1
+ strb r1, [r4, r0]
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+ nop
+_021E4034: .word 0x000001CB
+
+ thumb_func_start MOD14_021E4038
+MOD14_021E4038: ; 0x021E4038
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r1, #0
+ add r6, r0, #0
+ add r5, r2, #0
+ str r3, [sp]
+ ldr r4, [sp, #0x20]
+ cmp r7, #0
+ bne _021E404C
+ bl ErrorHandling
+_021E404C:
+ cmp r4, #0
+ beq _021E4052
+ sub r4, r4, #1
+_021E4052:
+ str r6, [r5]
+ ldr r0, [sp, #0x1c]
+ str r7, [r5, #4]
+ strh r0, [r5, #0x14]
+ ldr r0, [sp, #0x24]
+ strh r4, [r5, #0x16]
+ cmp r0, #0
+ beq _021E4066
+ ldr r4, _021E40A4 ; =MOD14_021E3F60
+ b _021E4068
+_021E4066:
+ ldr r4, _021E40A8 ; =MOD14_021E3EDC
+_021E4068:
+ ldr r0, [sp]
+ ldr r1, _021E40AC ; =0x021E6680
+ lsl r0, r0, #1
+ ldrh r0, [r1, r0]
+ lsl r0, r0, #0xc
+ str r0, [r5, #8]
+ ldr r0, [sp, #0x18]
+ lsl r0, r0, #1
+ ldrh r0, [r1, r0]
+ lsl r1, r0, #0xc
+ str r1, [r5, #0xc]
+ ldr r0, [r5, #8]
+ sub r0, r1, r0
+ ldr r1, [sp, #0x1c]
+ bl _s32_div_f
+ str r0, [r5, #0x10]
+ mov r2, #0
+ add r0, r4, #0
+ add r1, r5, #0
+ str r2, [r5, #0x18]
+ bl MOD14_021DDD40
+ cmp r0, #0
+ beq _021E40A2
+ ldr r0, _021E40B0 ; =0x000001CB
+ ldrb r1, [r6, r0]
+ add r1, r1, #1
+ strb r1, [r6, r0]
+_021E40A2:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021E40A4: .word MOD14_021E3F60
+_021E40A8: .word MOD14_021E3EDC
+_021E40AC: .word 0x021E6680
+_021E40B0: .word 0x000001CB
+
+ thumb_func_start MOD14_021E40B4
+MOD14_021E40B4: ; 0x021E40B4
+ push {r4, lr}
+ add r4, r1, #0
+ mov r0, #1
+ str r0, [r4, #0x18]
+ strh r2, [r4, #0x2a]
+ cmp r2, #0
+ beq _021E40C8
+ ldrh r0, [r4, #0x2a]
+ sub r0, r0, #1
+ strh r0, [r4, #0x2a]
+_021E40C8:
+ ldr r0, [sp, #8]
+ sub r2, r0, r3
+ bpl _021E40D4
+ mov r0, #0
+ mvn r0, r0
+ mul r2, r0
+_021E40D4:
+ add r1, r2, #0
+ mov r0, #6
+ mul r1, r0
+ ldr r2, _021E40FC ; =0x021E6680
+ lsl r0, r3, #1
+ ldrh r0, [r2, r0]
+ strh r1, [r4, #0x28]
+ lsl r0, r0, #0xc
+ str r0, [r4, #0x1c]
+ ldr r0, [sp, #8]
+ lsl r0, r0, #1
+ ldrh r0, [r2, r0]
+ lsl r2, r0, #0xc
+ str r2, [r4, #0x20]
+ ldr r0, [r4, #0x1c]
+ sub r0, r2, r0
+ bl _s32_div_f
+ str r0, [r4, #0x24]
+ pop {r4, pc}
+ .align 2, 0
+_021E40FC: .word 0x021E6680
+
+ thumb_func_start MOD14_021E4100
+MOD14_021E4100: ; 0x021E4100
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ mov r0, #0x73
+ add r4, r1, #0
+ lsl r0, r0, #2
+ ldrb r3, [r4, r0]
+ ldr r2, [r4]
+ cmp r3, #0
+ beq _021E411E
+ cmp r3, #1
+ beq _021E4180
+ cmp r3, #2
+ beq _021E4198
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+_021E411E:
+ sub r1, r0, #2
+ ldrb r1, [r4, r1]
+ mov r6, #0x2c
+ add r3, r1, #1
+ sub r1, r0, #2
+ strb r3, [r4, r1]
+ sub r0, r0, #2
+ ldrb r3, [r4, r0]
+ mov r1, #6
+ mov r0, #7
+ sub r5, r1, r3
+ sub r0, r0, r3
+ str r0, [sp]
+ add r0, r5, #1
+ mul r1, r0
+ str r1, [sp, #4]
+ mov r3, #0
+ str r3, [sp, #8]
+ lsl r1, r5, #2
+ add r1, r2, r1
+ str r3, [sp, #0xc]
+ add r2, r4, #0
+ ldr r1, [r1, #0x54]
+ add r2, #8
+ mul r6, r5
+ add r0, r4, #0
+ add r2, r2, r6
+ bl MOD14_021E4038
+ ldr r0, _021E41B0 ; =0x000001CD
+ mov r1, #4
+ strb r1, [r4, r0]
+ sub r1, r0, #3
+ ldrb r1, [r4, r1]
+ cmp r1, #6
+ blo _021E4170
+ mov r1, #2
+ sub r0, r0, #1
+ add sp, #0x10
+ strb r1, [r4, r0]
+ pop {r4, r5, r6, pc}
+_021E4170:
+ ldrb r1, [r4, r0]
+ cmp r1, #0
+ beq _021E41AC
+ mov r1, #1
+ sub r0, r0, #1
+ add sp, #0x10
+ strb r1, [r4, r0]
+ pop {r4, r5, r6, pc}
+_021E4180:
+ add r1, r0, #1
+ ldrb r1, [r4, r1]
+ sub r2, r1, #2
+ add r1, r0, #1
+ strb r2, [r4, r1]
+ ldrb r1, [r4, r1]
+ cmp r1, #0
+ bne _021E41AC
+ mov r1, #0
+ add sp, #0x10
+ strb r1, [r4, r0]
+ pop {r4, r5, r6, pc}
+_021E4198:
+ sub r1, r0, #1
+ ldrb r1, [r4, r1]
+ cmp r1, #0
+ bne _021E41AC
+ add r1, r3, #1
+ strb r1, [r4, r0]
+ ldr r1, _021E41B4 ; =MOD14_021E41B8
+ add r0, r4, #0
+ bl MOD14_021DDF30
+_021E41AC:
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021E41B0: .word 0x000001CD
+_021E41B4: .word MOD14_021E41B8
+
+ thumb_func_start MOD14_021E41B8
+MOD14_021E41B8: ; 0x021E41B8
+ ldr r3, _021E41BC ; =MOD14_021E3798
+ bx r3
+ .align 2, 0
+_021E41BC: .word MOD14_021E3798
+
+ thumb_func_start MOD14_021E41C0
+MOD14_021E41C0: ; 0x021E41C0
+ push {r3, r4, r5, lr}
+ mov r1, #0x1d
+ add r4, r0, #0
+ mov r0, #0xa
+ lsl r1, r1, #4
+ bl FUN_02016998
+ add r5, r0, #0
+ beq _021E4208
+ mov r1, #0x73
+ mov r0, #0
+ lsl r1, r1, #2
+ str r4, [r5]
+ strb r0, [r5, r1]
+ sub r2, r1, #2
+ strb r0, [r5, r2]
+ sub r1, r1, #1
+ strb r0, [r5, r1]
+ mov r1, #7
+ add r3, r0, #0
+ lsl r1, r1, #6
+_021E41EA:
+ add r2, r5, r0
+ add r0, r0, #1
+ strb r3, [r2, r1]
+ cmp r0, #8
+ blt _021E41EA
+ ldr r1, _021E420C ; =MOD14_021E4100
+ add r0, r4, #0
+ add r2, r5, #0
+ bl MOD14_021E3784
+ cmp r0, #0
+ bne _021E4208
+ add r0, r5, #0
+ bl FUN_02016A18
+_021E4208:
+ pop {r3, r4, r5, pc}
+ nop
+_021E420C: .word MOD14_021E4100
+
+ thumb_func_start MOD14_021E4210
+MOD14_021E4210: ; 0x021E4210
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x44
+ mov r2, #0x73
+ lsl r2, r2, #2
+ add r0, r1, #0
+ ldrb r3, [r0, r2]
+ str r1, [sp, #0x10]
+ ldr r7, [r1]
+ cmp r3, #0
+ beq _021E422E
+ cmp r3, #1
+ bne _021E422A
+ b _021E43C6
+_021E422A:
+ add sp, #0x44
+ pop {r4, r5, r6, r7, pc}
+_021E422E:
+ ldr r1, [r7, #4]
+ mov r0, #0xa0
+ ldrsh r0, [r1, r0]
+ cmp r0, #0
+ ble _021E4252
+ add r0, r7, #0
+ add r0, #0x80
+ ldr r0, [r0]
+ add r4, r0, #5
+ cmp r4, #0xa
+ blt _021E4246
+ sub r4, #0xa
+_021E4246:
+ mov r5, #0
+ mov r0, #7
+ mvn r5, r5
+ mov r6, #6
+ str r0, [sp, #0x24]
+ b _021E4260
+_021E4252:
+ add r0, r7, #0
+ add r0, #0x80
+ ldr r4, [r0]
+ mov r5, #1
+ mov r0, #0
+ add r6, r5, #0
+ str r0, [sp, #0x24]
+_021E4260:
+ ldr r1, [r7, #0x7c]
+ mov r0, #0
+ str r0, [sp, #0x34]
+ cmp r1, #0
+ ble _021E42C2
+ str r0, [sp, #0x28]
+ ldr r0, [sp, #0x10]
+ str r0, [sp, #0x38]
+ add r0, #8
+ str r0, [sp, #0x38]
+_021E4274:
+ ldr r0, [sp, #0x24]
+ add r3, r4, #0
+ str r0, [sp]
+ ldr r0, [sp, #0x28]
+ add r0, r0, #6
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ add r1, r0, #0
+ ldr r2, [r1, #4]
+ lsl r1, r4, #2
+ ldr r1, [r2, r1]
+ mov r2, #0x2c
+ mul r3, r2
+ ldr r2, [sp, #0x38]
+ add r2, r2, r3
+ add r3, r6, #0
+ bl MOD14_021E4038
+ add r4, r4, r5
+ add r6, r6, r5
+ cmp r4, #0xa
+ blt _021E42AA
+ mov r4, #0
+ b _021E42B0
+_021E42AA:
+ cmp r4, #0
+ bge _021E42B0
+ mov r4, #9
+_021E42B0:
+ ldr r0, [sp, #0x28]
+ ldr r1, [r7, #0x7c]
+ add r0, r0, #6
+ str r0, [sp, #0x28]
+ ldr r0, [sp, #0x34]
+ add r0, r0, #1
+ str r0, [sp, #0x34]
+ cmp r0, r1
+ blt _021E4274
+_021E42C2:
+ mov r0, #6
+ sub r0, r0, r1
+ str r0, [sp, #0x30]
+ mov r0, #0
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x30]
+ cmp r0, #0
+ ble _021E4328
+ ldr r0, [sp, #0x10]
+ str r0, [sp, #0x3c]
+ add r0, #8
+ str r0, [sp, #0x3c]
+_021E42DA:
+ ldr r0, [r7, #0x7c]
+ add r1, r5, #0
+ mul r1, r0
+ sub r1, r6, r1
+ str r1, [sp]
+ mov r1, #6
+ mul r1, r0
+ str r1, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ add r3, r4, #0
+ add r1, r0, #0
+ ldr r2, [r1, #4]
+ lsl r1, r4, #2
+ ldr r1, [r2, r1]
+ mov r2, #0x2c
+ mul r3, r2
+ ldr r2, [sp, #0x3c]
+ add r2, r2, r3
+ add r3, r6, #0
+ bl MOD14_021E4038
+ add r4, r4, r5
+ add r6, r6, r5
+ cmp r4, #0xa
+ blt _021E4316
+ mov r4, #0
+ b _021E431C
+_021E4316:
+ cmp r4, #0
+ bge _021E431C
+ mov r4, #9
+_021E431C:
+ ldr r0, [sp, #0x14]
+ add r1, r0, #1
+ ldr r0, [sp, #0x30]
+ str r1, [sp, #0x14]
+ cmp r1, r0
+ blt _021E42DA
+_021E4328:
+ ldr r1, [r7, #4]
+ mov r0, #0xa0
+ ldrsh r0, [r1, r0]
+ cmp r0, #0
+ ble _021E433E
+ mov r0, #0
+ str r0, [sp, #0x1c]
+ ldr r0, [r7, #0x7c]
+ str r0, [sp, #0x20]
+ str r0, [sp, #0x18]
+ b _021E434C
+_021E433E:
+ mov r0, #7
+ str r0, [sp, #0x1c]
+ ldr r0, [r7, #0x7c]
+ ldr r1, [sp, #0x1c]
+ str r0, [sp, #0x20]
+ sub r0, r1, r0
+ str r0, [sp, #0x18]
+_021E434C:
+ ldr r0, [sp, #0x20]
+ mov r6, #0
+ cmp r0, #0
+ ble _021E43B4
+ ldr r0, [sp, #0x10]
+ str r6, [sp, #0x2c]
+ str r0, [sp, #0x40]
+ add r0, #8
+ str r0, [sp, #0x40]
+_021E435E:
+ ldr r0, [sp, #0x18]
+ add r3, r4, #0
+ str r0, [sp]
+ ldr r0, [r7, #0x7c]
+ sub r1, r0, r6
+ mov r0, #6
+ mul r0, r1
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x2c]
+ add r0, r0, #6
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ add r1, r0, #0
+ ldr r2, [r1, #4]
+ lsl r1, r4, #2
+ ldr r1, [r2, r1]
+ mov r2, #0x2c
+ mul r3, r2
+ ldr r2, [sp, #0x40]
+ add r2, r2, r3
+ ldr r3, [sp, #0x1c]
+ bl MOD14_021E4038
+ ldr r0, [sp, #0x18]
+ add r4, r4, r5
+ add r0, r0, r5
+ str r0, [sp, #0x18]
+ cmp r4, #0xa
+ blt _021E43A0
+ sub r4, #0xa
+ b _021E43A6
+_021E43A0:
+ cmp r4, #0
+ bge _021E43A6
+ add r4, #0xa
+_021E43A6:
+ ldr r0, [sp, #0x2c]
+ add r6, r6, #1
+ add r0, r0, #6
+ str r0, [sp, #0x2c]
+ ldr r0, [sp, #0x20]
+ cmp r6, r0
+ blt _021E435E
+_021E43B4:
+ mov r1, #0x73
+ ldr r0, [sp, #0x10]
+ lsl r1, r1, #2
+ ldrb r0, [r0, r1]
+ add r2, r0, #1
+ ldr r0, [sp, #0x10]
+ add sp, #0x44
+ strb r2, [r0, r1]
+ pop {r4, r5, r6, r7, pc}
+_021E43C6:
+ ldr r0, [sp, #0x10]
+ sub r1, r2, #1
+ ldrb r0, [r0, r1]
+ cmp r0, #0
+ bne _021E43DE
+ ldr r0, [sp, #0x10]
+ add r1, r3, #1
+ strb r1, [r0, r2]
+ ldr r1, _021E43E4 ; =MOD14_021E41B8
+ add r2, r7, #0
+ bl MOD14_021DDF30
+_021E43DE:
+ add sp, #0x44
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021E43E4: .word MOD14_021E41B8
+
+ thumb_func_start MOD14_021E43E8
+MOD14_021E43E8: ; 0x021E43E8
+ push {r3, r4, r5, lr}
+ mov r1, #0x1d
+ add r4, r0, #0
+ mov r0, #0xa
+ lsl r1, r1, #4
+ bl FUN_02016998
+ add r5, r0, #0
+ beq _021E4436
+ add r0, r4, #0
+ mov r1, #0x73
+ lsl r1, r1, #2
+ str r4, [r5]
+ add r0, #0x54
+ str r0, [r5, #4]
+ mov r0, #0
+ strb r0, [r5, r1]
+ sub r2, r1, #2
+ strb r0, [r5, r2]
+ sub r1, r1, #1
+ strb r0, [r5, r1]
+ mov r1, #7
+ add r3, r0, #0
+ lsl r1, r1, #6
+_021E4418:
+ add r2, r5, r0
+ add r0, r0, #1
+ strb r3, [r2, r1]
+ cmp r0, #0xa
+ blt _021E4418
+ ldr r1, _021E4438 ; =MOD14_021E4210
+ add r0, r4, #0
+ add r2, r5, #0
+ bl MOD14_021E3784
+ cmp r0, #0
+ bne _021E4436
+ add r0, r5, #0
+ bl FUN_02016A18
+_021E4436:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021E4438: .word MOD14_021E4210
+
+ thumb_func_start MOD14_021E443C
+MOD14_021E443C: ; 0x021E443C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ ldr r0, [r1]
+ mov r2, #0x73
+ str r0, [sp, #0x18]
+ lsl r2, r2, #2
+ add r0, r1, #0
+ ldrb r3, [r0, r2]
+ str r1, [sp, #0x10]
+ cmp r3, #0
+ beq _021E445A
+ cmp r3, #1
+ beq _021E44BE
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+_021E445A:
+ ldr r0, [sp, #0x18]
+ mov r5, #0
+ add r0, #0x80
+ ldr r4, [r0]
+ add r0, r1, #0
+ str r0, [sp, #0x1c]
+ add r0, #8
+ mov r7, #6
+ str r5, [sp, #0x14]
+ mov r6, #0x24
+ str r0, [sp, #0x1c]
+_021E4470:
+ str r7, [sp]
+ str r6, [sp, #4]
+ ldr r1, [sp, #0x18]
+ lsl r2, r4, #2
+ add r1, r1, r2
+ str r5, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ mov r2, #0x2c
+ add r3, r4, #0
+ mul r3, r2
+ ldr r2, [sp, #0x1c]
+ ldr r0, [sp, #0x10]
+ add r2, r2, r3
+ ldr r1, [r1, #0x34]
+ mov r3, #0
+ bl MOD14_021E4038
+ add r4, r4, #1
+ sub r6, r6, #6
+ sub r7, r7, #1
+ cmp r4, #8
+ blt _021E44A0
+ mov r4, #0
+_021E44A0:
+ ldr r0, [sp, #0x14]
+ add r5, r5, #6
+ add r0, r0, #1
+ str r0, [sp, #0x14]
+ cmp r0, #6
+ blt _021E4470
+ mov r1, #0x73
+ ldr r0, [sp, #0x10]
+ lsl r1, r1, #2
+ ldrb r0, [r0, r1]
+ add r2, r0, #1
+ ldr r0, [sp, #0x10]
+ add sp, #0x20
+ strb r2, [r0, r1]
+ pop {r3, r4, r5, r6, r7, pc}
+_021E44BE:
+ ldr r0, [sp, #0x10]
+ sub r1, r2, #1
+ ldrb r0, [r0, r1]
+ cmp r0, #0
+ bne _021E44D6
+ ldr r0, [sp, #0x10]
+ add r1, r3, #1
+ strb r1, [r0, r2]
+ ldr r1, _021E44DC ; =MOD14_021E41B8
+ ldr r2, [sp, #0x18]
+ bl MOD14_021DDF30
+_021E44D6:
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021E44DC: .word MOD14_021E41B8
+
+ thumb_func_start MOD14_021E44E0
+MOD14_021E44E0: ; 0x021E44E0
+ push {r3, r4, r5, lr}
+ mov r1, #0x1d
+ add r4, r0, #0
+ mov r0, #0xa
+ lsl r1, r1, #4
+ bl FUN_02016998
+ add r5, r0, #0
+ beq _021E4528
+ mov r1, #0x73
+ mov r0, #0
+ lsl r1, r1, #2
+ str r4, [r5]
+ strb r0, [r5, r1]
+ sub r2, r1, #2
+ strb r0, [r5, r2]
+ sub r1, r1, #1
+ strb r0, [r5, r1]
+ mov r1, #7
+ add r3, r0, #0
+ lsl r1, r1, #6
+_021E450A:
+ add r2, r5, r0
+ add r0, r0, #1
+ strb r3, [r2, r1]
+ cmp r0, #8
+ blt _021E450A
+ ldr r1, _021E452C ; =MOD14_021E443C
+ add r0, r4, #0
+ add r2, r5, #0
+ bl MOD14_021E3784
+ cmp r0, #0
+ bne _021E4528
+ add r0, r5, #0
+ bl FUN_02016A18
+_021E4528:
+ pop {r3, r4, r5, pc}
+ nop
+_021E452C: .word MOD14_021E443C
+
+ thumb_func_start MOD14_021E4530
+MOD14_021E4530: ; 0x021E4530
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x44
+ ldr r0, [r1]
+ mov r2, #0x73
+ str r0, [sp, #0x34]
+ lsl r2, r2, #2
+ add r0, r1, #0
+ ldrb r3, [r0, r2]
+ str r1, [sp, #0x10]
+ cmp r3, #0
+ beq _021E4550
+ cmp r3, #1
+ bne _021E454C
+ b _021E46C2
+_021E454C:
+ add sp, #0x44
+ pop {r4, r5, r6, r7, pc}
+_021E4550:
+ ldr r0, [sp, #0x34]
+ ldr r0, [r0, #4]
+ bl MOD14_021DC46C
+ str r0, [sp, #0x30]
+ ldr r0, [sp, #0x34]
+ add r0, #0x80
+ ldr r4, [r0]
+ ldr r0, [sp, #0x30]
+ cmp r0, #0
+ bge _021E4580
+ add r4, r4, #5
+ cmp r4, #8
+ blt _021E456E
+ sub r4, #8
+_021E456E:
+ ldr r0, [sp, #0x30]
+ mov r5, #0
+ neg r0, r0
+ str r0, [sp, #0x28]
+ mov r0, #0
+ mvn r5, r5
+ mov r6, #1
+ str r0, [sp, #0x18]
+ b _021E458A
+_021E4580:
+ str r0, [sp, #0x28]
+ mov r0, #7
+ mov r5, #1
+ mov r6, #6
+ str r0, [sp, #0x18]
+_021E458A:
+ ldr r0, [sp, #0x28]
+ mov r7, #0
+ add r0, r0, #6
+ str r0, [sp, #0x2c]
+ ldr r0, [sp, #0x28]
+ cmp r0, #0
+ ble _021E45EC
+ ldr r0, [sp, #0x10]
+ str r7, [sp, #0x1c]
+ str r0, [sp, #0x38]
+ add r0, #8
+ str r0, [sp, #0x38]
+_021E45A2:
+ ldr r0, [sp, #0x18]
+ ldr r1, [sp, #0x34]
+ str r0, [sp]
+ ldr r0, [sp, #0x1c]
+ lsl r2, r4, #2
+ add r0, r0, #6
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r0, #1
+ add r1, r1, r2
+ str r0, [sp, #0xc]
+ mov r2, #0x2c
+ add r3, r4, #0
+ mul r3, r2
+ ldr r2, [sp, #0x38]
+ ldr r0, [sp, #0x10]
+ add r2, r2, r3
+ ldr r1, [r1, #0x34]
+ add r3, r6, #0
+ bl MOD14_021E4038
+ sub r6, r6, r5
+ add r4, r4, r5
+ bpl _021E45D8
+ add r4, #8
+ b _021E45DE
+_021E45D8:
+ cmp r4, #8
+ blt _021E45DE
+ sub r4, #8
+_021E45DE:
+ ldr r0, [sp, #0x1c]
+ add r7, r7, #1
+ add r0, r0, #6
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x28]
+ cmp r7, r0
+ blt _021E45A2
+_021E45EC:
+ mov r0, #0
+ str r0, [sp, #0x24]
+ cmp r7, #8
+ bge _021E4658
+ ldr r0, [sp, #0x28]
+ mov r1, #6
+ mul r1, r0
+ ldr r0, [sp, #0x10]
+ str r1, [sp, #0x20]
+ str r0, [sp, #0x3c]
+ add r0, #8
+ str r0, [sp, #0x3c]
+_021E4604:
+ ldr r0, [sp, #0x18]
+ ldr r1, [sp, #0x34]
+ sub r0, r0, r5
+ str r0, [sp, #0x18]
+ str r0, [sp]
+ ldr r0, [sp, #0x20]
+ lsl r2, r4, #2
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x24]
+ add r1, r1, r2
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ mov r2, #0x2c
+ add r3, r4, #0
+ mul r3, r2
+ ldr r2, [sp, #0x3c]
+ ldr r0, [sp, #0x10]
+ add r2, r2, r3
+ ldr r1, [r1, #0x34]
+ add r3, r6, #0
+ bl MOD14_021E4038
+ cmp r6, #0
+ beq _021E463E
+ cmp r6, #7
+ beq _021E463E
+ sub r6, r6, r5
+ b _021E4644
+_021E463E:
+ ldr r0, [sp, #0x24]
+ add r0, r0, #6
+ str r0, [sp, #0x24]
+_021E4644:
+ add r4, r4, r5
+ bpl _021E464C
+ add r4, #8
+ b _021E4652
+_021E464C:
+ cmp r4, #8
+ blt _021E4652
+ sub r4, #8
+_021E4652:
+ add r7, r7, #1
+ cmp r7, #8
+ blt _021E4604
+_021E4658:
+ ldr r0, [sp, #0x30]
+ cmp r0, #0
+ bge _021E466C
+ mov r0, #7
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x28]
+ sub r1, r0, #2
+ ldr r0, [sp, #0x14]
+ sub r6, r0, r1
+ b _021E4674
+_021E466C:
+ mov r0, #0
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x28]
+ sub r6, r0, #2
+_021E4674:
+ ldr r0, [sp, #0x2c]
+ cmp r7, r0
+ bge _021E46B0
+ ldr r0, [sp, #0x10]
+ str r0, [sp, #0x40]
+ add r0, #8
+ str r0, [sp, #0x40]
+_021E4682:
+ mov r1, #0x2c
+ add r2, r4, #0
+ mul r2, r1
+ ldr r1, [sp, #0x40]
+ ldr r0, [sp, #0x10]
+ add r1, r1, r2
+ ldr r3, [sp, #0x14]
+ mov r2, #6
+ str r6, [sp]
+ bl MOD14_021E40B4
+ sub r6, r6, r5
+ add r4, r4, r5
+ bpl _021E46A2
+ add r4, #8
+ b _021E46A8
+_021E46A2:
+ cmp r4, #8
+ blt _021E46A8
+ sub r4, #8
+_021E46A8:
+ ldr r0, [sp, #0x2c]
+ add r7, r7, #1
+ cmp r7, r0
+ blt _021E4682
+_021E46B0:
+ mov r1, #0x73
+ ldr r0, [sp, #0x10]
+ lsl r1, r1, #2
+ ldrb r0, [r0, r1]
+ add r2, r0, #1
+ ldr r0, [sp, #0x10]
+ add sp, #0x44
+ strb r2, [r0, r1]
+ pop {r4, r5, r6, r7, pc}
+_021E46C2:
+ ldr r0, [sp, #0x10]
+ sub r1, r2, #1
+ ldrb r0, [r0, r1]
+ cmp r0, #0
+ bne _021E46DA
+ ldr r0, [sp, #0x10]
+ add r1, r3, #1
+ strb r1, [r0, r2]
+ ldr r1, _021E46E0 ; =MOD14_021E41B8
+ ldr r2, [sp, #0x34]
+ bl MOD14_021DDF30
+_021E46DA:
+ add sp, #0x44
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021E46E0: .word MOD14_021E41B8
+
+ thumb_func_start MOD14_021E46E4
+MOD14_021E46E4: ; 0x021E46E4
+ push {r3, r4, r5, lr}
+ mov r1, #0x1d
+ add r4, r0, #0
+ mov r0, #0xa
+ lsl r1, r1, #4
+ bl FUN_02016998
+ add r5, r0, #0
+ beq _021E472C
+ mov r1, #0x73
+ mov r0, #0
+ lsl r1, r1, #2
+ str r4, [r5]
+ strb r0, [r5, r1]
+ sub r2, r1, #2
+ strb r0, [r5, r2]
+ sub r1, r1, #1
+ strb r0, [r5, r1]
+ mov r1, #7
+ add r3, r0, #0
+ lsl r1, r1, #6
+_021E470E:
+ add r2, r5, r0
+ add r0, r0, #1
+ strb r3, [r2, r1]
+ cmp r0, #8
+ blt _021E470E
+ ldr r1, _021E4730 ; =MOD14_021E4530
+ add r0, r4, #0
+ add r2, r5, #0
+ bl MOD14_021E3784
+ cmp r0, #0
+ bne _021E472C
+ add r0, r5, #0
+ bl FUN_02016A18
+_021E472C:
+ pop {r3, r4, r5, pc}
+ nop
+_021E4730: .word MOD14_021E4530
+
+ thumb_func_start MOD14_021E4734
+MOD14_021E4734: ; 0x021E4734
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ beq _021E4762
+ ldr r0, [r5, #0x34]
+ cmp r0, #0
+ beq _021E4762
+ ldr r0, [r5, #4]
+ bl MOD14_021DC484
+ add r6, r0, #0
+ mov r4, #0
+_021E474A:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD14_021E3DF8
+ add r1, r0, #0
+ ldr r0, [r5, #0x34]
+ bl FUN_02020130
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #8
+ blt _021E474A
+_021E4762:
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD14_021E4764
+MOD14_021E4764: ; 0x021E4764
+ ldr r3, _021E476C ; =0x0201797D
+ mov r0, #4
+ mov r1, #0
+ bx r3
+ .align 2, 0
+_021E476C: .word 0x0201797D
+
+ thumb_func_start MOD14_021E4770
+MOD14_021E4770: ; 0x021E4770
+ push {r3, lr}
+ mov r0, #2
+ str r0, [sp]
+ ldr r0, _021E478C ; =0x04001050
+ mov r1, #1
+ mov r2, #0x3f
+ mov r3, #0xe
+ bl G2x_SetBlendAlpha_
+ mov r0, #4
+ mov r1, #1
+ bl FUN_0201797C
+ pop {r3, pc}
+ .align 2, 0
+_021E478C: .word 0x04001050
+
+ thumb_func_start MOD14_021E4790
+MOD14_021E4790: ; 0x021E4790
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r6, r0, #0
+ ldr r0, [r6, #4]
+ bl MOD14_021DC474
+ add r4, r0, #3
+ cmp r4, #0x12
+ blt _021E47A4
+ sub r4, #0x12
+_021E47A4:
+ mov r0, #0
+ add r7, r6, #0
+ ldr r5, _021E4820 ; =0x021E6690
+ str r0, [sp, #0x10]
+ add r7, #0x88
+_021E47AE:
+ ldr r0, [r6, #4]
+ add r2, r6, #0
+ add r2, #0x84
+ ldr r0, [r0]
+ ldr r2, [r2]
+ add r1, r4, #0
+ bl FUN_0206B484
+ mov r0, #0x68
+ str r0, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ ldrh r2, [r5]
+ ldrh r3, [r5, #2]
+ add r0, r7, #0
+ mov r1, #0
+ bl FUN_020196F4
+ mov r0, #2
+ ldrsh r0, [r5, r0]
+ mov r1, #0
+ add r2, r6, #0
+ add r0, r0, #2
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021E4824 ; =0x00010200
+ add r3, r1, #0
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldrsh r3, [r5, r3]
+ add r2, #0x84
+ ldr r2, [r2]
+ add r0, r7, #0
+ add r3, r3, #4
+ bl FUN_0201BDE0
+ sub r4, r4, #1
+ bpl _021E4800
+ mov r4, #0x11
+_021E4800:
+ ldr r0, [sp, #0x10]
+ add r5, r5, #4
+ add r0, r0, #1
+ str r0, [sp, #0x10]
+ cmp r0, #6
+ blo _021E47AE
+ add r0, r6, #0
+ add r0, #0x88
+ bl FUN_02019548
+ add r0, r6, #0
+ bl MOD14_021E4770
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021E4820: .word 0x021E6690
+_021E4824: .word 0x00010200
+
+ thumb_func_start MOD14_021E4828
+MOD14_021E4828: ; 0x021E4828
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r5, r1, #0
+ mov r0, #0xa
+ mov r1, #0x3c
+ add r6, r2, #0
+ str r3, [sp]
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _021E487C
+ str r5, [r4, #4]
+ ldr r0, [sp]
+ str r6, [r4, #8]
+ str r0, [r4, #0xc]
+ ldr r0, [sp, #0x18]
+ str r0, [r4, #0x10]
+ add r0, r5, #0
+ bl MOD14_021DDD50
+ str r0, [r4, #0x14]
+ add r0, r5, #0
+ bl MOD14_021DDD6C
+ str r0, [r4, #0x18]
+ mov r0, #0
+ str r0, [r4, #0x34]
+ add r0, r6, #0
+ bl MOD14_021DC3C4
+ cmp r0, #3
+ bne _021E486C
+ mov r0, #1
+ b _021E486E
+_021E486C:
+ mov r0, #0
+_021E486E:
+ str r0, [r4]
+ add r0, r4, #0
+ bl MOD14_021E4890
+ str r4, [r7]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021E487C:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD14_021E4880
+MOD14_021E4880: ; 0x021E4880
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD14_021E495C
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+
+ thumb_func_start MOD14_021E4890
+MOD14_021E4890: ; 0x021E4890
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x58
+ add r6, r0, #0
+ ldr r0, [r6]
+ cmp r0, #0
+ beq _021E4940
+ ldr r4, [r6, #0x14]
+ ldr r0, [r6, #4]
+ bl MOD14_021DDD48
+ add r2, r0, #0
+ ldr r0, [r4, #0x20]
+ add r1, sp, #0x10
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r3, [r4, #0x1c]
+ add r0, sp, #0x34
+ bl MOD14_021DDDB4
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0206E640
+ add r1, r0, #0
+ mov r0, #0xa
+ str r0, [sp]
+ mov r0, #0x10
+ mov r2, #0
+ add r3, sp, #0xc
+ bl FUN_02006BB0
+ str r0, [sp, #8]
+ cmp r0, #0
+ beq _021E4950
+ mov r0, #1
+ lsl r0, r0, #0x1a
+ ldr r1, [r0]
+ ldr r0, _021E4954 ; =0x00300010
+ ldr r4, _021E4958 ; =0x021E68E8
+ and r1, r0
+ ldr r0, [sp, #0xc]
+ mov r7, #0
+ str r1, [r0, #8]
+ add r5, r6, #0
+_021E48EA:
+ add r0, sp, #0x10
+ bl FUN_020B1A24
+ ldr r0, [sp, #0xc]
+ ldr r1, [r4]
+ mov r2, #1
+ add r3, sp, #0x10
+ bl FUN_020B1768
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r2, #0
+ ldr r0, [r6, #0x10]
+ add r1, sp, #0x34
+ add r3, r2, #0
+ bl MOD14_021DDDD4
+ str r0, [r5, #0x1c]
+ ldr r1, [r4, #4]
+ bl FUN_02020248
+ ldr r0, [r5, #0x1c]
+ mov r1, #0
+ bl FUN_020200A0
+ ldr r0, [r5, #0x1c]
+ mov r1, #1
+ bl FUN_020200EC
+ mov r0, #0
+ str r0, [r5, #0x28]
+ add r7, r7, #1
+ add r4, #8
+ add r5, r5, #4
+ cmp r7, #3
+ blt _021E48EA
+ ldr r0, [sp, #8]
+ bl FUN_02016A18
+ add sp, #0x58
+ pop {r3, r4, r5, r6, r7, pc}
+_021E4940:
+ mov r1, #0
+ add r0, r1, #0
+_021E4944:
+ str r0, [r6, #0x1c]
+ str r0, [r6, #0x28]
+ add r1, r1, #1
+ add r6, r6, #4
+ cmp r1, #3
+ blt _021E4944
+_021E4950:
+ add sp, #0x58
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021E4954: .word 0x00300010
+_021E4958: .word 0x021E68E8
+
+ thumb_func_start MOD14_021E495C
+MOD14_021E495C: ; 0x021E495C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r4, #0
+_021E4962:
+ ldr r0, [r5, #0x1c]
+ cmp r0, #0
+ beq _021E496C
+ bl FUN_0201FFC8
+_021E496C:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #3
+ blt _021E4962
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E4978
+MOD14_021E4978: ; 0x021E4978
+ push {r3, r4}
+ mov r3, #0
+ add r4, r0, #0
+_021E497E:
+ ldr r2, [r4, #0x28]
+ cmp r2, #0
+ bne _021E4990
+ lsl r2, r3, #2
+ add r0, r0, r2
+ str r1, [r0, #0x28]
+ add r0, r3, #0
+ pop {r3, r4}
+ bx lr
+_021E4990:
+ add r3, r3, #1
+ add r4, r4, #4
+ cmp r3, #3
+ blt _021E497E
+ mov r0, #0
+ mvn r0, r0
+ pop {r3, r4}
+ bx lr
+
+ thumb_func_start MOD14_021E49A0
+MOD14_021E49A0: ; 0x021E49A0
+ mov r3, #0
+_021E49A2:
+ ldr r2, [r0, #0x28]
+ cmp r1, r2
+ bne _021E49AC
+ add r0, r3, #0
+ bx lr
+_021E49AC:
+ add r3, r3, #1
+ add r0, r0, #4
+ cmp r3, #3
+ blt _021E49A2
+ mov r0, #0
+ mvn r0, r0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021E49BC
+MOD14_021E49BC: ; 0x021E49BC
+ lsl r1, r1, #2
+ add r0, r0, r1
+ str r2, [r0, #0x28]
+ bx lr
+
+ thumb_func_start MOD14_021E49C4
+MOD14_021E49C4: ; 0x021E49C4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4]
+ cmp r1, #0
+ beq _021E49D8
+ bl MOD14_021E49DC
+ add r0, r4, #0
+ bl MOD14_021E4A14
+_021E49D8:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E49DC
+MOD14_021E49DC: ; 0x021E49DC
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #8]
+ bl MOD14_021DC430
+ add r4, r0, #0
+ beq _021E4A12
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD14_021E4978
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD14_021E4B58
+ add r5, #0x1c
+ lsl r4, r6, #2
+ ldr r0, [r5, r4]
+ mov r1, #6
+ bl FUN_02020130
+ ldr r0, [r5, r4]
+ mov r1, #1
+ bl FUN_020200A0
+_021E4A12:
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD14_021E4A14
+MOD14_021E4A14: ; 0x021E4A14
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r5, r0, #0
+ ldr r0, [r5, #8]
+ bl MOD14_021DC538
+ add r7, r0, #0
+ beq _021E4AC8
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD14_021E4978
+ add r6, r0, #0
+ ldr r0, [r5, #0x18]
+ add r1, sp, #0x10
+ bl MOD14_021E0038
+ mov r0, #2
+ ldr r1, [sp, #0x14]
+ lsl r0, r0, #0xe
+ add r0, r1, r0
+ str r0, [sp, #0x14]
+ ldr r0, [r5, #8]
+ bl MOD14_021DC3CC
+ cmp r0, #1
+ bne _021E4A50
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _021E4A54
+_021E4A50:
+ mov r0, #2
+ str r0, [sp, #0xc]
+_021E4A54:
+ lsl r0, r7, #0x10
+ lsr r0, r0, #0x10
+ mov r1, #1
+ lsl r4, r6, #3
+ bl FUN_0206E640
+ mov r2, #0
+ ldr r3, _021E4ACC ; =0x021E68E8
+ str r2, [sp]
+ add r1, r0, #0
+ str r2, [sp, #4]
+ mov r0, #0xa
+ str r0, [sp, #8]
+ ldr r3, [r3, r4]
+ mov r0, #0x10
+ bl FUN_02006A34
+ lsl r0, r7, #0x10
+ lsr r0, r0, #0x10
+ mov r1, #2
+ bl FUN_0206E640
+ ldr r3, _021E4AD0 ; =0x021E68EC
+ add r1, r0, #0
+ mov r0, #0x20
+ ldr r3, [r3, r4]
+ str r0, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ mov r0, #0x10
+ mov r2, #1
+ lsl r3, r3, #5
+ bl FUN_02006930
+ ldr r1, [sp, #0xc]
+ add r5, #0x1c
+ lsl r4, r6, #2
+ lsl r1, r1, #0x18
+ ldr r0, [r5, r4]
+ lsr r1, r1, #0x18
+ bl FUN_02020238
+ ldr r0, [r5, r4]
+ mov r1, #2
+ bl MOD14_021DDE24
+ ldr r0, [r5, r4]
+ add r1, sp, #0x10
+ bl FUN_02020044
+ ldr r0, [r5, r4]
+ mov r1, #0
+ bl FUN_02020130
+ ldr r0, [r5, r4]
+ mov r1, #1
+ bl FUN_020200A0
+_021E4AC8:
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021E4ACC: .word 0x021E68E8
+_021E4AD0: .word 0x021E68EC
+
+ thumb_func_start MOD14_021E4AD4
+MOD14_021E4AD4: ; 0x021E4AD4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r0, #0
+ str r0, [r4, #8]
+ ldr r0, [r5, #8]
+ add r7, r2, #0
+ bl MOD14_021DC3CC
+ cmp r0, #1
+ ldr r0, [r5, #4]
+ bne _021E4B1E
+ bl MOD14_021DDD60
+ add r6, r0, #0
+ ldr r0, [r5, #8]
+ bl MOD14_021DC3E8
+ add r1, r0, #0
+ add r0, r6, #0
+ add r2, sp, #4
+ add r3, sp, #0
+ bl MOD14_021E3170
+ ldr r0, [sp, #4]
+ add r0, #0xa
+ lsl r0, r0, #0xc
+ str r0, [r4]
+ ldr r0, [sp]
+ add sp, #8
+ add r0, #8
+ lsl r0, r0, #0xc
+ str r0, [r4, #4]
+ mov r0, #1
+ str r0, [r7]
+ pop {r3, r4, r5, r6, r7, pc}
+_021E4B1E:
+ bl MOD14_021DDD98
+ add r6, r0, #0
+ ldr r0, [r5, #8]
+ bl MOD14_021DC3D0
+ mov r1, #0x18
+ add r6, #0x70
+ mul r1, r0
+ add r0, r6, r1
+ add r0, #0xa
+ str r0, [r4]
+ ldr r0, [r5, #8]
+ bl MOD14_021DC3D8
+ mov r1, #0x18
+ mul r1, r0
+ add r1, #0x30
+ str r1, [r4, #4]
+ ldr r0, [r4]
+ lsl r0, r0, #0xc
+ str r0, [r4]
+ ldr r0, [r4, #4]
+ lsl r0, r0, #0xc
+ str r0, [r4, #4]
+ mov r0, #2
+ str r0, [r7]
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD14_021E4B58
+MOD14_021E4B58: ; 0x021E4B58
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r4, r1, #0
+ add r5, r0, #0
+ add r7, r2, #0
+ cmp r4, #0
+ blt _021E4BD2
+ add r1, sp, #0x10
+ add r2, sp, #0xc
+ bl MOD14_021E4AD4
+ lsl r0, r7, #0x10
+ lsr r0, r0, #0x10
+ mov r1, #1
+ lsl r6, r4, #3
+ bl FUN_0206E640
+ mov r2, #0
+ ldr r3, _021E4BD8 ; =0x021E68E8
+ str r2, [sp]
+ add r1, r0, #0
+ str r2, [sp, #4]
+ mov r0, #0xa
+ str r0, [sp, #8]
+ ldr r3, [r3, r6]
+ mov r0, #0x10
+ bl FUN_02006A34
+ lsl r0, r7, #0x10
+ lsr r0, r0, #0x10
+ mov r1, #2
+ bl FUN_0206E640
+ ldr r3, _021E4BDC ; =0x021E68EC
+ add r1, r0, #0
+ mov r0, #0x20
+ ldr r3, [r3, r6]
+ str r0, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ mov r0, #0x10
+ mov r2, #1
+ lsl r3, r3, #5
+ bl FUN_02006930
+ ldr r1, [sp, #0xc]
+ add r5, #0x1c
+ lsl r4, r4, #2
+ lsl r1, r1, #0x18
+ ldr r0, [r5, r4]
+ lsr r1, r1, #0x18
+ bl FUN_02020238
+ ldr r0, [r5, r4]
+ mov r1, #3
+ bl MOD14_021DDE24
+ ldr r0, [r5, r4]
+ add r1, sp, #0x10
+ bl FUN_02020044
+_021E4BD2:
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021E4BD8: .word 0x021E68E8
+_021E4BDC: .word 0x021E68EC
+
+ thumb_func_start MOD14_021E4BE0
+MOD14_021E4BE0: ; 0x021E4BE0
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r1, [r5]
+ cmp r1, #0
+ beq _021E4C3E
+ mov r1, #1
+ bl MOD14_021E49A0
+ add r4, r0, #0
+ bmi _021E4C0A
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #2
+ bl MOD14_021E49BC
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x1c]
+ mov r1, #2
+ bl FUN_02020130
+_021E4C0A:
+ ldr r0, [r5, #8]
+ bl MOD14_021DC430
+ add r6, r0, #0
+ beq _021E4C3E
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD14_021E4978
+ add r4, r0, #0
+ bmi _021E4C3E
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD14_021E4B58
+ add r5, #0x1c
+ lsl r4, r4, #2
+ ldr r0, [r5, r4]
+ mov r1, #1
+ bl FUN_02020130
+ ldr r0, [r5, r4]
+ mov r1, #1
+ bl FUN_020200A0
+_021E4C3E:
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD14_021E4C40
+MOD14_021E4C40: ; 0x021E4C40
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r1, [r5]
+ cmp r1, #0
+ bne _021E4C4E
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021E4C4E:
+ mov r1, #1
+ bl MOD14_021E49A0
+ cmp r0, #0
+ blt _021E4C6A
+ lsl r0, r0, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x1c]
+ bl FUN_02020388
+ cmp r0, #0
+ beq _021E4C6A
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_021E4C6A:
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD14_021E49A0
+ add r4, r0, #0
+ bmi _021E4C92
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x1c]
+ bl FUN_02020388
+ cmp r0, #0
+ beq _021E4C88
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_021E4C88:
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0
+ bl MOD14_021E49BC
+_021E4C92:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E4C98
+MOD14_021E4C98: ; 0x021E4C98
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r7, r1, #0
+ mov r0, #0xa
+ mov r1, #0x34
+ add r6, r2, #0
+ str r3, [sp]
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _021E4D1A
+ lsl r0, r7, #2
+ str r5, [r4]
+ add r0, r5, r0
+ ldr r0, [r0, #0x1c]
+ str r0, [r4, #4]
+ bl FUN_0202011C
+ add r3, r0, #0
+ add r2, r4, #0
+ ldmia r3!, {r0, r1}
+ add r2, #8
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ add r2, r4, #0
+ ldmia r6!, {r0, r1}
+ add r2, #0x14
+ stmia r2!, {r0, r1}
+ ldr r0, [r6]
+ ldr r6, [sp, #0x18]
+ str r0, [r2]
+ ldr r1, [r4, #0x14]
+ ldr r0, [r4, #8]
+ sub r0, r1, r0
+ add r1, r6, #0
+ bl _s32_div_f
+ str r0, [r4, #0x20]
+ ldr r1, [r4, #0x18]
+ ldr r0, [r4, #0xc]
+ sub r0, r1, r0
+ add r1, r6, #0
+ bl _s32_div_f
+ str r0, [r4, #0x24]
+ ldr r0, [sp, #0x18]
+ mov r2, #0
+ str r0, [r4, #0x2c]
+ ldr r0, [sp]
+ add r1, r4, #0
+ str r0, [r4, #0x28]
+ ldr r0, _021E4D1C ; =MOD14_021E4D20
+ str r2, [r4, #0x30]
+ bl MOD14_021DDD40
+ cmp r0, #0
+ beq _021E4D14
+ ldr r0, [r5, #0x34]
+ add r0, r0, #1
+ str r0, [r5, #0x34]
+ pop {r3, r4, r5, r6, r7, pc}
+_021E4D14:
+ add r0, r4, #0
+ bl FUN_02016A18
+_021E4D1A:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021E4D1C: .word MOD14_021E4D20
+
+ thumb_func_start MOD14_021E4D20
+MOD14_021E4D20: ; 0x021E4D20
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0x30]
+ cmp r0, #0
+ beq _021E4D32
+ cmp r0, #1
+ beq _021E4D68
+ pop {r3, r4, r5, pc}
+_021E4D32:
+ ldr r0, [r4, #0x2c]
+ cmp r0, #0
+ beq _021E4D58
+ ldr r2, [r4, #8]
+ ldr r0, [r4, #0x20]
+ add r1, #8
+ add r0, r2, r0
+ str r0, [r4, #8]
+ ldr r2, [r4, #0xc]
+ ldr r0, [r4, #0x24]
+ add r0, r2, r0
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #4]
+ bl FUN_02020044
+ ldr r0, [r4, #0x2c]
+ sub r0, r0, #1
+ str r0, [r4, #0x2c]
+ pop {r3, r4, r5, pc}
+_021E4D58:
+ ldr r0, [r4, #4]
+ add r1, #0x14
+ bl FUN_02020044
+ ldr r0, [r4, #0x30]
+ add r0, r0, #1
+ str r0, [r4, #0x30]
+ pop {r3, r4, r5, pc}
+_021E4D68:
+ ldr r0, [r4, #4]
+ bl FUN_02020388
+ cmp r0, #0
+ bne _021E4D92
+ ldr r0, [r4, #4]
+ ldr r1, [r4, #0x28]
+ bl MOD14_021DDE24
+ ldr r1, [r4]
+ ldr r0, [r1, #0x34]
+ sub r0, r0, #1
+ str r0, [r1, #0x34]
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ mov r1, #0
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD14_021DDF30
+_021E4D92:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD14_021E4D94
+MOD14_021E4D94: ; 0x021E4D94
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ ldr r1, [r5]
+ cmp r1, #0
+ beq _021E4DE2
+ mov r1, #1
+ bl MOD14_021E49A0
+ add r4, r0, #0
+ bmi _021E4DE2
+ ldr r0, [r5, #0x18]
+ add r1, sp, #4
+ bl MOD14_021E0038
+ mov r0, #2
+ ldr r1, [sp, #8]
+ lsl r0, r0, #0xe
+ add r0, r1, r0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #3
+ bl MOD14_021E49BC
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x1c]
+ mov r1, #3
+ bl FUN_02020130
+ mov r0, #0xc
+ str r0, [sp]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, sp, #4
+ mov r3, #2
+ bl MOD14_021E4C98
+_021E4DE2:
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E4DE8
+MOD14_021E4DE8: ; 0x021E4DE8
+ ldr r0, [r0, #0x34]
+ cmp r0, #0
+ bne _021E4DF2
+ mov r0, #1
+ bx lr
+_021E4DF2:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021E4DF8
+MOD14_021E4DF8: ; 0x021E4DF8
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ ldr r1, [r4]
+ cmp r1, #0
+ beq _021E4E22
+ mov r1, #1
+ bl MOD14_021E49A0
+ add r5, r0, #0
+ bmi _021E4E22
+ add r0, r4, #0
+ add r1, r5, #0
+ mov r2, #2
+ bl MOD14_021E49BC
+ lsl r0, r5, #2
+ add r0, r4, r0
+ ldr r0, [r0, #0x1c]
+ mov r1, #2
+ bl FUN_02020130
+_021E4E22:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD14_021E4E24
+MOD14_021E4E24: ; 0x021E4E24
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r1, [r5]
+ cmp r1, #0
+ beq _021E4E54
+ mov r1, #2
+ bl MOD14_021E49A0
+ add r4, r0, #0
+ bmi _021E4E54
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x1c]
+ bl FUN_02020388
+ cmp r0, #0
+ beq _021E4E4A
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_021E4E4A:
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0
+ bl MOD14_021E49BC
+_021E4E54:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD14_021E4E58
+MOD14_021E4E58: ; 0x021E4E58
+ push {r4, r5, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r1, [r5]
+ cmp r1, #0
+ beq _021E4E9E
+ mov r1, #3
+ bl MOD14_021E49A0
+ add r4, r0, #0
+ bmi _021E4E9E
+ add r0, r5, #0
+ add r1, sp, #8
+ add r2, sp, #4
+ bl MOD14_021E4AD4
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #1
+ bl MOD14_021E49BC
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x1c]
+ mov r1, #4
+ bl FUN_02020130
+ mov r0, #0xc
+ str r0, [sp]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, sp, #8
+ mov r3, #3
+ bl MOD14_021E4C98
+_021E4E9E:
+ add sp, #0x14
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E4EA4
+MOD14_021E4EA4: ; 0x021E4EA4
+ ldr r0, [r0, #0x34]
+ cmp r0, #0
+ bne _021E4EAE
+ mov r0, #1
+ bx lr
+_021E4EAE:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021E4EB4
+MOD14_021E4EB4: ; 0x021E4EB4
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r1, [r5]
+ cmp r1, #0
+ beq _021E4F42
+ mov r1, #3
+ bl MOD14_021E49A0
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD14_021E49A0
+ add r6, r0, #0
+ cmp r4, #0
+ blt _021E4F42
+ cmp r6, #0
+ blt _021E4F42
+ add r0, r5, #0
+ add r1, sp, #8
+ add r2, sp, #4
+ bl MOD14_021E4AD4
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #1
+ bl MOD14_021E49BC
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x1c]
+ mov r1, #4
+ bl FUN_02020130
+ mov r0, #0xc
+ str r0, [sp]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, sp, #8
+ mov r3, #3
+ bl MOD14_021E4C98
+ ldr r0, [r5, #0x18]
+ add r1, sp, #8
+ bl MOD14_021E0038
+ mov r0, #2
+ ldr r1, [sp, #0xc]
+ lsl r0, r0, #0xe
+ add r0, r1, r0
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #3
+ bl MOD14_021E49BC
+ lsl r0, r6, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x1c]
+ mov r1, #3
+ bl FUN_02020130
+ mov r0, #0xc
+ str r0, [sp]
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, sp, #8
+ mov r3, #2
+ bl MOD14_021E4C98
+_021E4F42:
+ add sp, #0x14
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E4F48
+MOD14_021E4F48: ; 0x021E4F48
+ ldr r0, [r0, #0x34]
+ cmp r0, #0
+ bne _021E4F52
+ mov r0, #1
+ bx lr
+_021E4F52:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021E4F58
+MOD14_021E4F58: ; 0x021E4F58
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ ldr r1, [r4]
+ cmp r1, #0
+ beq _021E4F9E
+ mov r1, #3
+ bl MOD14_021E49A0
+ add r5, r0, #0
+ bmi _021E4F7C
+ lsl r0, r5, #2
+ add r0, r4, r0
+ ldr r0, [r0, #0x1c]
+ mov r1, #5
+ bl FUN_02020130
+ str r5, [r4, #0x38]
+ pop {r3, r4, r5, pc}
+_021E4F7C:
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD14_021E49A0
+ add r5, r0, #0
+ bmi _021E4F98
+ lsl r0, r5, #2
+ add r0, r4, r0
+ ldr r0, [r0, #0x1c]
+ mov r1, #2
+ bl FUN_02020130
+ str r5, [r4, #0x38]
+ pop {r3, r4, r5, pc}
+_021E4F98:
+ mov r0, #0
+ mvn r0, r0
+ str r0, [r4, #0x38]
+_021E4F9E:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD14_021E4FA0
+MOD14_021E4FA0: ; 0x021E4FA0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _021E4FD6
+ mov r0, #0
+ ldr r1, [r4, #0x38]
+ mvn r0, r0
+ cmp r1, r0
+ beq _021E4FD6
+ lsl r0, r1, #2
+ add r0, r4, r0
+ ldr r0, [r0, #0x1c]
+ bl FUN_02020388
+ cmp r0, #0
+ beq _021E4FC6
+ mov r0, #0
+ pop {r4, pc}
+_021E4FC6:
+ ldr r1, [r4, #0x38]
+ add r0, r4, #0
+ mov r2, #0
+ bl MOD14_021E49BC
+ mov r0, #0
+ mvn r0, r0
+ str r0, [r4, #0x38]
+_021E4FD6:
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E4FDC
+MOD14_021E4FDC: ; 0x021E4FDC
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ add r4, r1, #0
+ ldr r1, [r5]
+ cmp r1, #0
+ beq _021E5016
+ mov r1, #3
+ bl MOD14_021E49A0
+ add r6, r0, #0
+ bmi _021E5016
+ ldmia r4!, {r0, r1}
+ add r3, sp, #0
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r4]
+ str r0, [r3]
+ mov r0, #2
+ ldr r1, [sp, #4]
+ lsl r0, r0, #0xe
+ add r0, r1, r0
+ str r0, [sp, #4]
+ lsl r0, r6, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x1c]
+ add r1, r2, #0
+ bl FUN_02020044
+_021E5016:
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E501C
+MOD14_021E501C: ; 0x021E501C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ ldr r1, [r5]
+ cmp r1, #0
+ beq _021E5040
+ mov r1, #3
+ bl MOD14_021E49A0
+ cmp r0, #0
+ blt _021E5040
+ lsl r0, r0, #2
+ add r0, r5, r0
+ lsl r1, r4, #0x18
+ ldr r0, [r0, #0x1c]
+ lsr r1, r1, #0x18
+ bl FUN_02020238
+_021E5040:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E5044
+MOD14_021E5044: ; 0x021E5044
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r7, r2, #0
+ add r5, r0, #0
+ add r0, r7, #0
+ add r6, r1, #0
+ str r3, [sp, #4]
+ bl MOD14_021DC3C4
+ cmp r0, #4
+ beq _021E5064
+ mov r0, #0
+ str r0, [r5]
+ add sp, #8
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021E5064:
+ mov r1, #0xe1
+ mov r0, #0xa
+ lsl r1, r1, #2
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _021E50E6
+ str r6, [r4, #4]
+ ldr r0, [sp, #4]
+ str r7, [r4, #8]
+ str r0, [r4, #0xc]
+ ldr r0, [sp, #0x20]
+ str r0, [r4, #0x10]
+ add r0, r6, #0
+ bl MOD14_021DDD50
+ mov r3, #0xda
+ str r0, [r4, #0x14]
+ mov r0, #0xa
+ lsl r3, r3, #2
+ str r0, [sp]
+ mov r0, #0x12
+ mov r1, #7
+ mov r2, #1
+ add r3, r4, r3
+ bl FUN_02006BDC
+ mov r3, #0x37
+ lsl r3, r3, #4
+ str r0, [r4, r3]
+ mov r0, #0xa
+ sub r3, r3, #4
+ str r0, [sp]
+ mov r0, #0x12
+ mov r1, #8
+ mov r2, #1
+ add r3, r4, r3
+ bl FUN_02006BDC
+ mov r1, #0xdd
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r0, [sp, #0x24]
+ mov r2, #0x93
+ str r0, [r4, #0x6c]
+ mov r0, #1
+ mov r1, #0x1a
+ lsl r2, r2, #2
+ mov r3, #0xa
+ bl FUN_0200A86C
+ str r0, [r4, #0x70]
+ mov r0, #0x20
+ mov r1, #0xa
+ bl FUN_020219F4
+ str r0, [r4, #0x74]
+ mov r0, #0xe
+ mov r1, #0
+ lsl r0, r0, #6
+ str r1, [r4, r0]
+ add sp, #8
+ str r4, [r5]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021E50E6:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD14_021E50EC
+MOD14_021E50EC: ; 0x021E50EC
+ push {r4, lr}
+ add r4, r0, #0
+ beq _021E5124
+ mov r0, #0x37
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ mov r0, #0xdd
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ ldr r0, [r4, #0x70]
+ bl FUN_0200A8B8
+ add r0, r4, #0
+ bl MOD14_021E5C04
+ add r0, r4, #0
+ bl MOD14_021E5474
+ ldr r0, [r4, #0x74]
+ bl FUN_02021A20
+ add r0, r4, #0
+ bl FUN_02016A18
+_021E5124:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E5128
+MOD14_021E5128: ; 0x021E5128
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ beq _021E5210
+ bl MOD14_021E5334
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0xa
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0xc]
+ mov r0, #0x12
+ mov r1, #0x6c
+ mov r3, #5
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0xa
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0xc]
+ mov r0, #0x12
+ mov r1, #0x69
+ mov r3, #5
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0xa
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0xc]
+ mov r0, #0x12
+ mov r1, #0x6a
+ mov r3, #6
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0xa
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0xc]
+ mov r0, #0x12
+ mov r1, #0x6b
+ mov r3, #7
+ bl FUN_020068C8
+ mov r0, #0x80
+ str r0, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ mov r0, #0x12
+ mov r1, #0x6d
+ mov r2, #4
+ mov r3, #0
+ bl FUN_02006930
+ bl FUN_0206B888
+ mov r3, #0x80
+ add r1, r0, #0
+ str r3, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ mov r0, #0x13
+ mov r2, #5
+ bl FUN_02006930
+ mov r0, #4
+ mov r1, #0x20
+ mov r2, #0
+ mov r3, #0xa
+ bl FUN_02017F18
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x11
+ str r0, [sp, #0xc]
+ ldr r0, [r4, #0xc]
+ mov r1, #4
+ add r3, r2, #0
+ bl FUN_02018540
+ add r0, r4, #0
+ bl MOD14_021E539C
+ add r0, r4, #0
+ bl MOD14_021E5400
+ ldr r0, [r4, #8]
+ bl MOD14_021DC560
+ mov r1, #0xde
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r0, [r4, #0xc]
+ mov r1, #4
+ bl FUN_02017CD0
+ add r0, r4, #0
+ bl MOD14_021E5A08
+_021E5210:
+ add sp, #0x10
+ pop {r4, pc}
+
+ thumb_func_start MOD14_021E5214
+MOD14_021E5214: ; 0x021E5214
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ cmp r5, #0
+ beq _021E5268
+ ldr r0, [r5, #8]
+ bl MOD14_021DC558
+ add r4, r0, #0
+ cmp r6, #0
+ beq _021E5248
+ mov r0, #1
+ eor r0, r4
+ lsl r0, r0, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x28]
+ mov r1, #2
+ bl FUN_02020130
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x28]
+ mov r1, #0
+ bl FUN_02020130
+ b _021E5262
+_021E5248:
+ mov r1, #1
+ eor r0, r1
+ lsl r0, r0, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x28]
+ bl FUN_02020130
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x28]
+ mov r1, #0
+ bl FUN_02020130
+_021E5262:
+ add r0, r5, #0
+ bl MOD14_021E5334
+_021E5268:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E526C
+MOD14_021E526C: ; 0x021E526C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl MOD14_021E5C68
+ cmp r5, #0
+ beq _021E52B8
+ ldr r0, [r5, #8]
+ bl MOD14_021DC558
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD14_021E5CFC
+ ldr r0, [r5, #8]
+ bl MOD14_021DC560
+ cmp r0, #0
+ beq _021E529C
+ cmp r0, #1
+ beq _021E52A6
+ cmp r0, #2
+ beq _021E52B0
+ pop {r3, r4, r5, pc}
+_021E529C:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD14_021E57E4
+ pop {r3, r4, r5, pc}
+_021E52A6:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD14_021E55B0
+ pop {r3, r4, r5, pc}
+_021E52B0:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD14_021E5908
+_021E52B8:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E52BC
+MOD14_021E52BC: ; 0x021E52BC
+ mov r0, #1
+ bx lr
+
+ thumb_func_start MOD14_021E52C0
+MOD14_021E52C0: ; 0x021E52C0
+ push {r4, lr}
+ add r4, r0, #0
+ beq _021E52DE
+ mov r1, #0xdf
+ mov r2, #0
+ lsl r1, r1, #2
+ str r2, [r4, r1]
+ sub r1, r1, #4
+ ldr r1, [r4, r1]
+ bl MOD14_021E5504
+ ldr r0, [r4, #0xc]
+ mov r1, #4
+ bl FUN_02017CD0
+_021E52DE:
+ pop {r4, pc}
+
+ thumb_func_start MOD14_021E52E0
+MOD14_021E52E0: ; 0x021E52E0
+ push {r4, lr}
+ add r4, r0, #0
+ beq _021E5330
+ mov r1, #0xdf
+ lsl r1, r1, #2
+ ldr r1, [r4, r1]
+ cmp r1, #0
+ beq _021E52FA
+ cmp r1, #1
+ beq _021E530A
+ cmp r1, #2
+ beq _021E5328
+ b _021E532C
+_021E52FA:
+ bl MOD14_021E539C
+ mov r0, #0xdf
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ b _021E532C
+_021E530A:
+ bl MOD14_021E5718
+ add r0, r4, #0
+ bl MOD14_021E549C
+ ldr r0, [r4, #0xc]
+ mov r1, #4
+ bl FUN_02017CD0
+ mov r0, #0xdf
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ b _021E532C
+_021E5328:
+ mov r0, #1
+ pop {r4, pc}
+_021E532C:
+ mov r0, #0
+ pop {r4, pc}
+_021E5330:
+ mov r0, #1
+ pop {r4, pc}
+
+ thumb_func_start MOD14_021E5334
+MOD14_021E5334: ; 0x021E5334
+ push {r4, r5, lr}
+ sub sp, #0x1c
+ add r5, r0, #0
+ ldr r0, [r5, #8]
+ bl MOD14_021DC558
+ cmp r0, #0
+ bne _021E5348
+ mov r0, #0xda
+ b _021E534A
+_021E5348:
+ mov r0, #0xdb
+_021E534A:
+ lsl r0, r0, #2
+ ldr r4, [r5, r0]
+ mov r0, #6
+ str r0, [sp]
+ mov r1, #0x20
+ add r0, r4, #0
+ mov r2, #0
+ str r1, [sp, #4]
+ add r0, #0xc
+ str r0, [sp, #8]
+ str r2, [sp, #0xc]
+ str r2, [sp, #0x10]
+ str r1, [sp, #0x14]
+ str r1, [sp, #0x18]
+ ldr r0, [r5, #0xc]
+ mov r1, #2
+ add r3, r2, #0
+ bl FUN_02018170
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ add r4, #0xc
+ str r4, [sp, #8]
+ mov r2, #0x1a
+ str r2, [sp, #0xc]
+ mov r3, #0
+ str r3, [sp, #0x10]
+ str r0, [sp, #0x14]
+ str r0, [sp, #0x18]
+ ldr r0, [r5, #0xc]
+ mov r1, #2
+ bl FUN_02018170
+ ldr r0, [r5, #0xc]
+ mov r1, #2
+ bl FUN_02017CD0
+ add sp, #0x1c
+ pop {r4, r5, pc}
+
+ thumb_func_start MOD14_021E539C
+MOD14_021E539C: ; 0x021E539C
+ push {r3, lr}
+ ldr r0, [r0, #8]
+ bl MOD14_021DC560
+ cmp r0, #0
+ beq _021E53B2
+ cmp r0, #1
+ beq _021E53CC
+ cmp r0, #2
+ beq _021E53E6
+ pop {r3, pc}
+_021E53B2:
+ mov r0, #5
+ mov r1, #1
+ bl FUN_0201797C
+ mov r0, #6
+ mov r1, #0
+ bl FUN_0201797C
+ mov r0, #7
+ mov r1, #0
+ bl FUN_0201797C
+ pop {r3, pc}
+_021E53CC:
+ mov r0, #6
+ mov r1, #1
+ bl FUN_0201797C
+ mov r0, #5
+ mov r1, #0
+ bl FUN_0201797C
+ mov r0, #7
+ mov r1, #0
+ bl FUN_0201797C
+ pop {r3, pc}
+_021E53E6:
+ mov r0, #7
+ mov r1, #1
+ bl FUN_0201797C
+ mov r0, #5
+ mov r1, #0
+ bl FUN_0201797C
+ mov r0, #6
+ mov r1, #0
+ bl FUN_0201797C
+ pop {r3, pc}
+
+ thumb_func_start MOD14_021E5400
+MOD14_021E5400: ; 0x021E5400
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ mov r1, #0
+ add r2, r7, #0
+ add r5, r1, #0
+_021E540A:
+ add r0, r2, #0
+ add r0, #0x84
+ add r1, r1, #1
+ add r2, #0x10
+ str r5, [r0]
+ cmp r1, #7
+ blt _021E540A
+ add r4, r7, #0
+ ldr r6, _021E5470 ; =0x021E6940
+ add r4, #0x78
+_021E541E:
+ ldr r0, [r7, #0xc]
+ add r1, r4, #0
+ add r2, r6, #0
+ bl FUN_02019150
+ add r0, r4, #0
+ bl FUN_02019270
+ add r5, r5, #1
+ add r6, #8
+ add r4, #0x10
+ cmp r5, #3
+ blo _021E541E
+ add r0, r7, #0
+ bl MOD14_021E5718
+ add r0, r7, #0
+ add r0, #0x78
+ mov r1, #0
+ bl FUN_02019620
+ add r0, r7, #0
+ add r0, #0x88
+ mov r1, #0
+ bl FUN_02019620
+ add r4, r7, #0
+ mov r5, #0
+ add r4, #0x78
+_021E5458:
+ add r0, r4, #0
+ bl FUN_02019548
+ add r5, r5, #1
+ add r4, #0x10
+ cmp r5, #3
+ blo _021E5458
+ add r0, r7, #0
+ bl MOD14_021E549C
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021E5470: .word 0x021E6940
+
+ thumb_func_start MOD14_021E5474
+MOD14_021E5474: ; 0x021E5474
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r4, r5, #0
+ mov r6, #0
+ add r4, #0x78
+_021E547E:
+ add r0, r5, #0
+ add r0, #0x84
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _021E548E
+ add r0, r4, #0
+ bl FUN_02019178
+_021E548E:
+ add r6, r6, #1
+ add r5, #0x10
+ add r4, #0x10
+ cmp r6, #7
+ blt _021E547E
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E549C
+MOD14_021E549C: ; 0x021E549C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #8]
+ bl MOD14_021DC560
+ add r4, r0, #0
+ ldr r0, [r5, #8]
+ bl MOD14_021DC560
+ cmp r0, #0
+ beq _021E54BC
+ cmp r0, #1
+ beq _021E54D4
+ cmp r0, #2
+ beq _021E54E6
+ b _021E54FC
+_021E54BC:
+ add r0, r5, #0
+ bl MOD14_021E5540
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD14_021E57E4
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD14_021E57E4
+ b _021E54FC
+_021E54D4:
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD14_021E55B0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD14_021E55B0
+ b _021E54FC
+_021E54E6:
+ add r0, r5, #0
+ bl MOD14_021E56A8
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD14_021E5908
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD14_021E5908
+_021E54FC:
+ mov r0, #0xde
+ lsl r0, r0, #2
+ str r4, [r5, r0]
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD14_021E5504
+MOD14_021E5504: ; 0x021E5504
+ push {r4, lr}
+ add r4, r0, #0
+ cmp r1, #0
+ beq _021E5516
+ cmp r1, #1
+ beq _021E5522
+ cmp r1, #2
+ beq _021E5532
+ pop {r4, pc}
+_021E5516:
+ bl MOD14_021E5578
+ add r0, r4, #0
+ bl MOD14_021E57CC
+ pop {r4, pc}
+_021E5522:
+ mov r1, #0
+ bl MOD14_021E5688
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD14_021E5688
+ pop {r4, pc}
+_021E5532:
+ bl MOD14_021E56E0
+ add r0, r4, #0
+ bl MOD14_021E57CC
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E5540
+MOD14_021E5540: ; 0x021E5540
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r7, _021E5574 ; =0x021E6930
+ str r0, [sp]
+ mov r6, #0
+ add r5, #0x78
+_021E554C:
+ add r0, r6, #3
+ lsl r4, r0, #4
+ ldr r0, [sp]
+ add r1, r5, r4
+ ldr r0, [r0, #0xc]
+ add r2, r7, #0
+ bl FUN_02019150
+ add r0, r5, r4
+ bl FUN_02019270
+ add r0, r5, r4
+ mov r1, #0
+ bl FUN_02019620
+ add r6, r6, #1
+ add r7, #8
+ cmp r6, #2
+ blo _021E554C
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021E5574: .word 0x021E6930
+
+ thumb_func_start MOD14_021E5578
+MOD14_021E5578: ; 0x021E5578
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ add r0, #0x78
+ add r5, r0, #0
+ mov r6, #3
+ add r4, #0x30
+ add r5, #0x30
+ mov r7, #0
+_021E5588:
+ add r0, r4, #0
+ add r0, #0x84
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _021E55A4
+ add r0, r5, #0
+ bl FUN_020192B8
+ add r0, r5, #0
+ bl FUN_02019178
+ add r0, r4, #0
+ add r0, #0x84
+ str r7, [r0]
+_021E55A4:
+ add r6, r6, #1
+ add r4, #0x10
+ add r5, #0x10
+ cmp r6, #4
+ ble _021E5588
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD14_021E55B0
+MOD14_021E55B0: ; 0x021E55B0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r7, r0, #0
+ ldr r0, [r7, #8]
+ str r1, [sp]
+ bl MOD14_021DC568
+ add r4, r0, #0
+ ldr r0, [r7, #8]
+ bl MOD14_021DC3F0
+ add r6, r0, #0
+ ldr r0, [r7, #8]
+ bl MOD14_021DC558
+ ldr r1, [sp]
+ cmp r1, r0
+ bne _021E55D8
+ mov r5, #1
+ b _021E55DA
+_021E55D8:
+ mov r5, #0
+_021E55DA:
+ ldr r0, [r7, #8]
+ ldr r1, [sp]
+ bl MOD14_021DC574
+ cmp r6, #1
+ bne _021E55EA
+ cmp r5, #1
+ beq _021E55F2
+_021E55EA:
+ cmp r5, #0
+ bne _021E5676
+ cmp r0, #1
+ bne _021E5676
+_021E55F2:
+ ldrb r0, [r4, #6]
+ cmp r0, #0
+ bne _021E5676
+ ldr r1, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ str r0, [sp, #0x10]
+ mov r0, #0x14
+ add r2, r1, #0
+ mul r2, r0
+ add r5, r7, r2
+ mov r2, #1
+ eor r1, r2
+ mul r0, r1
+ ldr r6, _021E5684 ; =0x021E6958
+ add r4, #0x16
+ add r7, r7, r0
+_021E5614:
+ ldr r3, [r6]
+ ldr r0, [r6, #8]
+ ldrh r2, [r4]
+ sub r1, r0, r3
+ asr r0, r1, #7
+ lsr r0, r0, #0x18
+ add r0, r1, r0
+ asr r0, r0, #8
+ mul r0, r2
+ add r0, r3, r0
+ str r0, [sp, #8]
+ ldr r3, [r6, #4]
+ ldr r0, [r6, #0xc]
+ ldrh r2, [r4]
+ sub r1, r0, r3
+ asr r0, r1, #7
+ lsr r0, r0, #0x18
+ add r0, r1, r0
+ asr r0, r0, #8
+ mul r0, r2
+ add r0, r3, r0
+ str r0, [sp, #0xc]
+ ldr r0, [r5, #0x34]
+ add r1, sp, #8
+ bl FUN_02020044
+ ldr r0, [r5, #0x34]
+ mov r1, #0
+ bl MOD14_021DDE24
+ ldr r0, [r7, #0x34]
+ mov r1, #1
+ bl MOD14_021DDE24
+ ldr r0, [r5, #0x34]
+ mov r1, #1
+ bl FUN_020200A0
+ ldr r0, [sp, #4]
+ add r4, r4, #2
+ add r0, r0, #1
+ add r6, #0x10
+ add r5, r5, #4
+ add r7, r7, #4
+ str r0, [sp, #4]
+ cmp r0, #5
+ blt _021E5614
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+_021E5676:
+ ldr r1, [sp]
+ add r0, r7, #0
+ bl MOD14_021E5688
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021E5684: .word 0x021E6958
+
+ thumb_func_start MOD14_021E5688
+MOD14_021E5688: ; 0x021E5688
+ push {r4, r5, r6, lr}
+ mov r2, #0x14
+ mov r4, #0
+ mul r2, r1
+ add r5, r0, r2
+ add r6, r4, #0
+_021E5694:
+ ldr r0, [r5, #0x34]
+ add r1, r6, #0
+ bl FUN_020200A0
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #5
+ blt _021E5694
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E56A8
+MOD14_021E56A8: ; 0x021E56A8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r7, _021E56DC ; =0x021E6920
+ str r0, [sp]
+ mov r6, #0
+ add r5, #0x78
+_021E56B4:
+ add r0, r6, #5
+ lsl r4, r0, #4
+ ldr r0, [sp]
+ add r1, r5, r4
+ ldr r0, [r0, #0xc]
+ add r2, r7, #0
+ bl FUN_02019150
+ add r0, r5, r4
+ bl FUN_02019270
+ add r0, r5, r4
+ mov r1, #0
+ bl FUN_02019620
+ add r6, r6, #1
+ add r7, #8
+ cmp r6, #2
+ blo _021E56B4
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021E56DC: .word 0x021E6920
+
+ thumb_func_start MOD14_021E56E0
+MOD14_021E56E0: ; 0x021E56E0
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ add r0, #0x78
+ add r5, r0, #0
+ mov r6, #5
+ add r4, #0x50
+ add r5, #0x50
+ mov r7, #0
+_021E56F0:
+ add r0, r4, #0
+ add r0, #0x84
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _021E570C
+ add r0, r5, #0
+ bl FUN_020192B8
+ add r0, r5, #0
+ bl FUN_02019178
+ add r0, r4, #0
+ add r0, #0x84
+ str r7, [r0]
+_021E570C:
+ add r6, r6, #1
+ add r4, #0x10
+ add r5, #0x10
+ cmp r6, #6
+ ble _021E56F0
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD14_021E5718
+MOD14_021E5718: ; 0x021E5718
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ add r7, r5, #0
+ add r7, #0x98
+ add r0, r7, #0
+ mov r1, #0
+ bl FUN_02019620
+ ldr r0, [r5, #8]
+ bl MOD14_021DC560
+ cmp r0, #0
+ beq _021E573A
+ cmp r0, #2
+ beq _021E5786
+ b _021E57B8
+_021E573A:
+ mov r0, #0
+ ldr r6, _021E57C4 ; =0x021E6910
+ str r0, [sp, #0x10]
+ add r4, r0, #0
+_021E5742:
+ ldrh r1, [r6]
+ ldr r0, [r5, #0x6c]
+ ldr r2, [r5, #0x74]
+ bl FUN_0200A8E0
+ mov r0, #0
+ ldr r1, [r5, #0x74]
+ add r2, r0, #0
+ bl FUN_02002E14
+ ldrb r1, [r7, #7]
+ lsl r1, r1, #3
+ sub r0, r1, r0
+ lsr r3, r0, #1
+ str r4, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021E57C8 ; =0x000F0E00
+ mov r1, #0
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0x74]
+ add r0, r7, #0
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x10]
+ add r6, r6, #2
+ add r0, r0, #1
+ add r4, #0x10
+ str r0, [sp, #0x10]
+ cmp r0, #8
+ blo _021E5742
+ b _021E57B8
+_021E5786:
+ ldr r0, [r5, #0x6c]
+ ldr r2, [r5, #0x74]
+ mov r1, #0x2b
+ bl FUN_0200A8E0
+ mov r0, #0
+ ldr r1, [r5, #0x74]
+ add r2, r0, #0
+ bl FUN_02002E14
+ ldrb r1, [r7, #7]
+ lsl r1, r1, #3
+ sub r0, r1, r0
+ mov r1, #0
+ lsr r3, r0, #1
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021E57C8 ; =0x000F0E00
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r2, [r5, #0x74]
+ add r0, r7, #0
+ bl FUN_0201BDE0
+_021E57B8:
+ add r0, r7, #0
+ bl FUN_02019548
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021E57C4: .word 0x021E6910
+_021E57C8: .word 0x000F0E00
+
+ thumb_func_start MOD14_021E57CC
+MOD14_021E57CC: ; 0x021E57CC
+ push {r4, lr}
+ add r4, r0, #0
+ add r4, #0x98
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_02019620
+ add r0, r4, #0
+ bl FUN_02019548
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E57E4
+MOD14_021E57E4: ; 0x021E57E4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r5, r0, #0
+ add r0, r1, #0
+ add r2, r5, #0
+ add r0, r0, #3
+ add r2, #0x78
+ lsl r0, r0, #4
+ add r4, r2, r0
+ ldr r0, [r5, #8]
+ str r1, [sp, #0x10]
+ bl MOD14_021DC568
+ add r6, r0, #0
+ ldr r0, [r5, #8]
+ bl MOD14_021DC3F0
+ str r0, [sp, #0x18]
+ ldr r0, [r5, #8]
+ bl MOD14_021DC558
+ ldr r1, [sp, #0x10]
+ cmp r1, r0
+ bne _021E5818
+ mov r7, #1
+ b _021E581A
+_021E5818:
+ mov r7, #0
+_021E581A:
+ ldr r0, [r5, #8]
+ ldr r1, [sp, #0x10]
+ bl MOD14_021DC574
+ str r0, [sp, #0x14]
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_02019620
+ ldr r0, [sp, #0x18]
+ cmp r0, #1
+ bne _021E5836
+ cmp r7, #1
+ beq _021E5840
+_021E5836:
+ cmp r7, #0
+ bne _021E58FA
+ ldr r0, [sp, #0x14]
+ cmp r0, #1
+ bne _021E58FA
+_021E5840:
+ ldrb r0, [r6, #6]
+ cmp r0, #0
+ bne _021E58BA
+ mov r0, #0
+ ldr r1, [r6, #0x2c]
+ add r2, r0, #0
+ bl FUN_02002E14
+ ldrb r1, [r4, #7]
+ lsl r1, r1, #3
+ sub r0, r1, r0
+ mov r1, #0
+ lsr r3, r0, #1
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021E5904 ; =0x000F0E00
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r2, [r6, #0x2c]
+ add r0, r4, #0
+ bl FUN_0201BDE0
+ mov r7, #0
+ add r6, #8
+_021E5872:
+ mov r0, #1
+ str r0, [sp]
+ ldrh r1, [r6]
+ ldr r0, [r5, #0x74]
+ mov r2, #3
+ mov r3, #0
+ bl FUN_02021B04
+ mov r0, #0
+ ldr r1, [r5, #0x74]
+ add r2, r0, #0
+ bl FUN_02002E14
+ ldrb r1, [r4, #7]
+ lsl r1, r1, #3
+ sub r0, r1, r0
+ lsr r3, r0, #1
+ add r0, r7, #1
+ lsl r0, r0, #4
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021E5904 ; =0x000F0E00
+ mov r1, #0
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0x74]
+ add r0, r4, #0
+ bl FUN_0201BDE0
+ add r7, r7, #1
+ add r6, r6, #2
+ cmp r7, #7
+ blt _021E5872
+ b _021E58FA
+_021E58BA:
+ ldr r0, [r5, #0x6c]
+ ldr r2, [r5, #0x74]
+ mov r1, #0x2c
+ bl FUN_0200A8E0
+ mov r7, #0
+ add r6, r7, #0
+_021E58C8:
+ mov r0, #0
+ ldr r1, [r5, #0x74]
+ add r2, r0, #0
+ bl FUN_02002E14
+ ldrb r1, [r4, #7]
+ lsl r1, r1, #3
+ sub r0, r1, r0
+ lsr r3, r0, #1
+ str r6, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021E5904 ; =0x000F0E00
+ mov r1, #0
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0x74]
+ add r0, r4, #0
+ bl FUN_0201BDE0
+ add r7, r7, #1
+ add r6, #0x10
+ cmp r7, #8
+ blt _021E58C8
+_021E58FA:
+ add r0, r4, #0
+ bl FUN_02019548
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021E5904: .word 0x000F0E00
+
+ thumb_func_start MOD14_021E5908
+MOD14_021E5908: ; 0x021E5908
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ add r5, r0, #0
+ add r0, r1, #0
+ add r2, r5, #0
+ add r0, r0, #5
+ add r2, #0x78
+ lsl r0, r0, #4
+ add r4, r2, r0
+ ldr r0, [r5, #8]
+ str r1, [sp, #0x10]
+ bl MOD14_021DC568
+ add r6, r0, #0
+ ldr r0, [r5, #8]
+ bl MOD14_021DC3F0
+ str r0, [sp, #0x1c]
+ ldr r0, [r5, #8]
+ bl MOD14_021DC558
+ ldr r1, [sp, #0x10]
+ cmp r1, r0
+ bne _021E593C
+ mov r7, #1
+ b _021E593E
+_021E593C:
+ mov r7, #0
+_021E593E:
+ ldr r0, [r5, #8]
+ ldr r1, [sp, #0x10]
+ bl MOD14_021DC574
+ str r0, [sp, #0x18]
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_02019620
+ ldr r0, [sp, #0x1c]
+ cmp r0, #1
+ bne _021E595A
+ cmp r7, #1
+ beq _021E5964
+_021E595A:
+ cmp r7, #0
+ bne _021E59F8
+ ldr r0, [sp, #0x18]
+ cmp r0, #1
+ bne _021E59F8
+_021E5964:
+ ldrb r0, [r6, #6]
+ cmp r0, #0
+ bne _021E59B8
+ mov r0, #0
+ str r0, [sp, #0x14]
+ mov r7, #4
+_021E5970:
+ ldrh r1, [r6, #0x20]
+ cmp r1, #0
+ beq _021E59A8
+ ldr r0, [r5, #0x70]
+ ldr r2, [r5, #0x74]
+ bl FUN_0200A8E0
+ mov r0, #0
+ ldr r1, [r5, #0x74]
+ add r2, r0, #0
+ bl FUN_02002E14
+ ldrb r1, [r4, #7]
+ lsl r1, r1, #3
+ sub r0, r1, r0
+ lsr r3, r0, #1
+ str r7, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021E5A04 ; =0x000F0E00
+ mov r1, #0
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0x74]
+ add r0, r4, #0
+ bl FUN_0201BDE0
+_021E59A8:
+ ldr r0, [sp, #0x14]
+ add r6, r6, #2
+ add r0, r0, #1
+ add r7, #0x18
+ str r0, [sp, #0x14]
+ cmp r0, #4
+ blt _021E5970
+ b _021E59F8
+_021E59B8:
+ ldr r0, [r5, #0x6c]
+ ldr r2, [r5, #0x74]
+ mov r1, #0x2c
+ bl FUN_0200A8E0
+ mov r7, #0
+ mov r6, #4
+_021E59C6:
+ mov r0, #0
+ ldr r1, [r5, #0x74]
+ add r2, r0, #0
+ bl FUN_02002E14
+ ldrb r1, [r4, #7]
+ lsl r1, r1, #3
+ sub r0, r1, r0
+ lsr r3, r0, #1
+ str r6, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021E5A04 ; =0x000F0E00
+ mov r1, #0
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0x74]
+ add r0, r4, #0
+ bl FUN_0201BDE0
+ add r7, r7, #1
+ add r6, #0x18
+ cmp r7, #4
+ blt _021E59C6
+_021E59F8:
+ add r0, r4, #0
+ bl FUN_02019548
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021E5A04: .word 0x000F0E00
+
+ thumb_func_start MOD14_021E5A08
+MOD14_021E5A08: ; 0x021E5A08
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x6c
+ add r7, r0, #0
+ mov r0, #0xa
+ add r3, r7, #0
+ str r0, [sp]
+ mov r0, #0x12
+ mov r1, #0x6f
+ mov r2, #1
+ add r3, #0x60
+ bl FUN_02006C30
+ str r0, [r7, #0x5c]
+ mov r0, #0xa
+ add r3, r7, #0
+ str r0, [sp]
+ mov r0, #0x12
+ mov r1, #0x70
+ mov r2, #1
+ add r3, #0x68
+ bl FUN_02006C5C
+ str r0, [r7, #0x64]
+ mov r0, #0x60
+ str r0, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ mov r0, #0x12
+ mov r1, #0x71
+ mov r2, #5
+ mov r3, #0
+ bl FUN_02006930
+ add r0, sp, #0x48
+ bl FUN_020B1A24
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ str r3, [sp, #8]
+ mov r0, #0xa
+ str r0, [sp, #0xc]
+ add r0, sp, #0x48
+ str r0, [sp, #0x10]
+ mov r0, #0x12
+ mov r1, #0x6e
+ mov r2, #1
+ bl FUN_02006AE4
+ str r0, [sp, #0x20]
+ ldr r0, [r7, #4]
+ bl MOD14_021DDD48
+ add r2, r0, #0
+ ldr r0, [r7, #0x68]
+ add r1, sp, #0x48
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r3, [r7, #0x60]
+ add r0, sp, #0x24
+ bl MOD14_021DDDB4
+ ldr r0, _021E5B5C ; =0x021E6900
+ mov r4, #0
+ str r0, [sp, #0x1c]
+ str r7, [sp, #0x18]
+ str r7, [sp, #0x14]
+_021E5A92:
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldr r2, [sp, #0x1c]
+ mov r3, #0
+ ldrsh r2, [r2, r3]
+ ldr r3, [sp, #0x1c]
+ mov r5, #2
+ ldrsh r3, [r3, r5]
+ ldr r0, [r7, #0x10]
+ add r1, sp, #0x24
+ bl MOD14_021DDDD4
+ ldr r1, [sp, #0x18]
+ str r0, [r1, #0x28]
+ add r1, r4, #0
+ bl FUN_02020248
+ ldr r0, [sp, #0x18]
+ mov r1, #0
+ ldr r0, [r0, #0x28]
+ bl FUN_02020130
+ ldr r5, [sp, #0x14]
+ mov r6, #0
+_021E5AC6:
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r2, #0
+ ldr r0, [r7, #0x10]
+ add r1, sp, #0x24
+ add r3, r2, #0
+ bl MOD14_021DDDD4
+ str r0, [r5, #0x34]
+ add r1, r4, #5
+ bl FUN_02020130
+ ldr r0, [r5, #0x34]
+ add r1, r4, #0
+ bl FUN_02020248
+ ldr r0, [r5, #0x34]
+ mov r1, #0
+ bl FUN_020200A0
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #5
+ blo _021E5AC6
+ ldr r0, [sp, #0x1c]
+ add r4, r4, #1
+ add r0, r0, #4
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x18]
+ add r0, r0, #4
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x14]
+ add r0, #0x14
+ str r0, [sp, #0x14]
+ cmp r4, #2
+ blo _021E5A92
+ ldr r0, [r7, #0x2c]
+ mov r1, #1
+ bl FUN_02020100
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r3, #0x23
+ ldr r0, [r7, #0x10]
+ add r1, sp, #0x24
+ mov r2, #0x80
+ lsl r3, r3, #4
+ bl MOD14_021DDDD4
+ str r0, [r7, #0x30]
+ mov r1, #3
+ bl FUN_02020130
+ ldr r0, [r7, #0x30]
+ mov r1, #2
+ bl FUN_02020248
+ ldr r0, _021E5B60 ; =MOD14_021E5D64
+ add r1, r7, #0
+ mov r2, #1
+ bl FUN_0200CA44
+ mov r1, #0xe
+ lsl r1, r1, #6
+ str r0, [r7, r1]
+ ldr r1, [sp, #0x20]
+ add r0, r7, #0
+ bl MOD14_021E5B64
+ add sp, #0x6c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021E5B5C: .word 0x021E6900
+_021E5B60: .word MOD14_021E5D64
+
+ thumb_func_start MOD14_021E5B64
+MOD14_021E5B64: ; 0x021E5B64
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x58
+ str r0, [sp, #8]
+ ldr r0, [r0, #4]
+ str r1, [sp, #0xc]
+ bl MOD14_021DDD48
+ add r5, r0, #0
+ ldr r0, [sp, #8]
+ ldr r0, [r0, #0x14]
+ bl MOD14_021E0C74
+ add r4, r0, #0
+ ldr r0, [sp, #8]
+ ldr r0, [r0, #0x14]
+ bl MOD14_021E0C78
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ add r0, sp, #0x10
+ add r1, sp, #0x34
+ add r2, r5, #0
+ add r3, r4, #0
+ bl MOD14_021DDDB4
+ mov r7, #0
+ ldr r4, [sp, #8]
+ ldr r5, _021E5BF8 ; =0x021E6908
+ add r6, r7, #0
+_021E5BA0:
+ ldr r0, [sp, #0xc]
+ add r0, r0, r6
+ str r0, [r4, #0x18]
+ add r0, sp, #0x34
+ bl FUN_020B1A24
+ ldr r2, [r4, #0x18]
+ add r0, sp, #0x34
+ mov r1, #2
+ bl FUN_020B1A1C
+ ldr r0, _021E5BFC ; =0x04001000
+ mov r2, #0
+ ldr r1, [r0]
+ ldr r0, _021E5C00 ; =0x00300010
+ mov r3, #2
+ and r0, r1
+ str r0, [sp, #0x54]
+ mov r0, #1
+ sub r0, r0, r7
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldr r0, [sp, #8]
+ ldrsh r2, [r5, r2]
+ ldrsh r3, [r5, r3]
+ ldr r0, [r0, #0x10]
+ add r1, sp, #0x10
+ bl MOD14_021DDDD4
+ mov r1, #0
+ str r0, [r4, #0x20]
+ bl FUN_020200A0
+ mov r0, #2
+ lsl r0, r0, #8
+ add r7, r7, #1
+ add r6, r6, r0
+ add r4, r4, #4
+ add r5, r5, #4
+ cmp r7, #2
+ blt _021E5BA0
+ add sp, #0x58
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021E5BF8: .word 0x021E6908
+_021E5BFC: .word 0x04001000
+_021E5C00: .word 0x00300010
+
+ thumb_func_start MOD14_021E5C04
+MOD14_021E5C04: ; 0x021E5C04
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ mov r1, #0xe
+ lsl r1, r1, #6
+ str r0, [sp]
+ ldr r0, [r0, r1]
+ cmp r0, #0
+ beq _021E5C18
+ bl FUN_0200CAB4
+_021E5C18:
+ ldr r6, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ add r7, r6, #0
+_021E5C20:
+ ldr r0, [r6, #0x20]
+ bl FUN_0201FFC8
+ ldr r0, [r6, #0x28]
+ bl FUN_0201FFC8
+ mov r4, #0
+ add r5, r7, #0
+_021E5C30:
+ ldr r0, [r5, #0x34]
+ bl FUN_0201FFC8
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #5
+ blt _021E5C30
+ ldr r0, [sp, #4]
+ add r6, r6, #4
+ add r0, r0, #1
+ add r7, #0x14
+ str r0, [sp, #4]
+ cmp r0, #2
+ blt _021E5C20
+ ldr r0, [sp]
+ ldr r0, [r0, #0x30]
+ bl FUN_0201FFC8
+ ldr r0, [sp]
+ ldr r0, [r0, #0x5c]
+ bl FUN_02016A18
+ ldr r0, [sp]
+ ldr r0, [r0, #0x64]
+ bl FUN_02016A18
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD14_021E5C68
+MOD14_021E5C68: ; 0x021E5C68
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ ldr r0, [r5, #8]
+ bl MOD14_021DC558
+ add r4, r0, #0
+ ldr r0, [r5, #8]
+ add r1, r4, #0
+ bl MOD14_021DC568
+ lsl r7, r4, #2
+ add r6, r0, #0
+ add r0, r5, r7
+ ldr r4, [r0, #0x20]
+ ldr r0, [r6]
+ str r0, [sp]
+ ldr r0, [r5, #8]
+ bl MOD14_021DC3F0
+ cmp r0, #0
+ beq _021E5CF0
+ ldrh r0, [r6, #4]
+ ldrb r1, [r6, #7]
+ ldrb r2, [r6, #6]
+ bl FUN_0206B7BC
+ add r6, r0, #0
+ ldr r0, [sp]
+ bl FUN_0206B688
+ add r2, r0, #0
+ add r1, r5, #0
+ mov r3, #0xa
+ ldr r0, [r5, #0x14]
+ add r1, #0xe8
+ lsl r3, r3, #6
+ bl MOD14_021E0BAC
+ add r0, r5, #0
+ add r0, #0xe8
+ add r1, sp, #4
+ bl FUN_020B0088
+ ldr r0, [sp, #4]
+ mov r1, #2
+ ldr r0, [r0, #0x14]
+ lsl r1, r1, #8
+ bl DC_FlushRange
+ ldr r0, [sp, #4]
+ add r1, r5, r7
+ mov r2, #2
+ ldr r0, [r0, #0x14]
+ ldr r1, [r1, #0x18]
+ lsl r2, r2, #8
+ bl GXS_LoadOBJ
+ add r0, r4, #0
+ add r1, r6, #4
+ bl FUN_02020248
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_020200A0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_021E5CF0:
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_020200A0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD14_021E5CFC
+MOD14_021E5CFC: ; 0x021E5CFC
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ ldr r0, [r5, #8]
+ bl MOD14_021DC558
+ add r6, r0, #0
+ add r1, r5, #0
+ add r1, #0x78
+ lsl r0, r6, #4
+ add r4, r1, r0
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_02019620
+ ldr r0, [r5, #8]
+ bl MOD14_021DC3F0
+ cmp r0, #0
+ beq _021E5D56
+ ldr r0, [r5, #8]
+ add r1, r6, #0
+ bl MOD14_021DC568
+ add r5, r0, #0
+ mov r0, #0
+ ldr r1, [r5, #0x28]
+ add r2, r0, #0
+ bl FUN_02002E14
+ ldrb r1, [r4, #7]
+ lsl r1, r1, #3
+ sub r0, r1, r0
+ mov r1, #0
+ lsr r3, r0, #1
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021E5D60 ; =0x000F0E00
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r2, [r5, #0x28]
+ add r0, r4, #0
+ bl FUN_0201BDE0
+_021E5D56:
+ add r0, r4, #0
+ bl FUN_02019548
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021E5D60: .word 0x000F0E00
+
+ thumb_func_start MOD14_021E5D64
+MOD14_021E5D64: ; 0x021E5D64
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldr r0, [r5, #8]
+ bl MOD14_021DC57C
+ add r4, r0, #0
+ ldr r0, [r5, #0x30]
+ bl FUN_020201DC
+ cmp r0, #3
+ bne _021E5D88
+ cmp r4, #0
+ beq _021E5D94
+ ldr r0, [r5, #0x30]
+ mov r1, #4
+ bl FUN_02020130
+ pop {r3, r4, r5, pc}
+_021E5D88:
+ cmp r4, #0
+ bne _021E5D94
+ ldr r0, [r5, #0x30]
+ mov r1, #3
+ bl FUN_02020130
+_021E5D94:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E5D98
+MOD14_021E5D98: ; 0x021E5D98
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ add r4, #0x74
+ add r0, r4, #0
+ add r5, r1, #0
+ bl MOD14_021E612C
+ add r0, r4, #0
+ mov r1, #0x36
+ bl MOD14_021E613C
+ add r0, r4, #0
+ mov r1, #0x37
+ bl MOD14_021E613C
+ add r0, r4, #0
+ add r0, #0x20
+ strb r5, [r0]
+ mov r0, #0
+ add r4, #0x23
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD14_021E5DC4
+MOD14_021E5DC4: ; 0x021E5DC4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r5, #0
+ add r4, #0x74
+ add r0, r4, #0
+ bl MOD14_021E612C
+ add r0, r4, #0
+ mov r1, #1
+ add r0, #0x23
+ strb r1, [r0]
+ add r0, r5, #0
+ bl MOD14_021DC3C4
+ cmp r0, #4
+ bhi _021E5DFA
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021E5DF0: ; jump table
+ .short _021E5E70 - _021E5DF0 - 2 ; case 0
+ .short _021E5E9A - _021E5DF0 - 2 ; case 1
+ .short _021E5DFA - _021E5DF0 - 2 ; case 2
+ .short _021E5DFA - _021E5DF0 - 2 ; case 3
+ .short _021E5EC4 - _021E5DF0 - 2 ; case 4
+_021E5DFA:
+ add r0, r5, #0
+ bl MOD14_021DC3F4
+ cmp r0, #2
+ bne _021E5E1C
+ add r0, r5, #0
+ bl MOD14_021DC3F0
+ cmp r0, #0
+ beq _021E5E12
+ mov r1, #0x24
+ b _021E5E14
+_021E5E12:
+ mov r1, #0x23
+_021E5E14:
+ add r0, r4, #0
+ bl MOD14_021E613C
+ b _021E5E24
+_021E5E1C:
+ add r0, r4, #0
+ mov r1, #0x22
+ bl MOD14_021E613C
+_021E5E24:
+ add r0, r4, #0
+ mov r1, #0x25
+ bl MOD14_021E613C
+ add r0, r5, #0
+ bl MOD14_021DC42C
+ ldrb r0, [r0, #0xf]
+ cmp r0, #0
+ bne _021E5E40
+ add r0, r4, #0
+ mov r1, #0x28
+ bl MOD14_021E613C
+_021E5E40:
+ add r0, r5, #0
+ bl MOD14_021DC3CC
+ cmp r0, #0
+ bne _021E5E4E
+ mov r1, #0x26
+ b _021E5E50
+_021E5E4E:
+ mov r1, #0x27
+_021E5E50:
+ add r0, r4, #0
+ bl MOD14_021E613C
+ add r0, r4, #0
+ mov r1, #0x29
+ bl MOD14_021E613C
+ add r0, r4, #0
+ mov r1, #0x2a
+ bl MOD14_021E613C
+ add r0, r4, #0
+ mov r1, #0x2b
+ bl MOD14_021E613C
+ pop {r3, r4, r5, pc}
+_021E5E70:
+ add r0, r4, #0
+ mov r1, #0x27
+ bl MOD14_021E613C
+ add r0, r4, #0
+ mov r1, #0x25
+ bl MOD14_021E613C
+ add r0, r4, #0
+ mov r1, #0x29
+ bl MOD14_021E613C
+ add r0, r4, #0
+ mov r1, #0x2a
+ bl MOD14_021E613C
+ add r0, r4, #0
+ mov r1, #0x2b
+ bl MOD14_021E613C
+ pop {r3, r4, r5, pc}
+_021E5E9A:
+ add r0, r4, #0
+ mov r1, #0x26
+ bl MOD14_021E613C
+ add r0, r4, #0
+ mov r1, #0x25
+ bl MOD14_021E613C
+ add r0, r4, #0
+ mov r1, #0x29
+ bl MOD14_021E613C
+ add r0, r4, #0
+ mov r1, #0x2a
+ bl MOD14_021E613C
+ add r0, r4, #0
+ mov r1, #0x2b
+ bl MOD14_021E613C
+ pop {r3, r4, r5, pc}
+_021E5EC4:
+ add r0, r5, #0
+ bl MOD14_021DC558
+ cmp r0, #0
+ bne _021E5ED2
+ mov r1, #0x34
+ b _021E5ED4
+_021E5ED2:
+ mov r1, #0x35
+_021E5ED4:
+ add r0, r4, #0
+ bl MOD14_021E613C
+ add r0, r5, #0
+ bl MOD14_021DC3CC
+ cmp r0, #0
+ bne _021E5EE8
+ mov r1, #0x26
+ b _021E5EEA
+_021E5EE8:
+ mov r1, #0x27
+_021E5EEA:
+ add r0, r4, #0
+ bl MOD14_021E613C
+ add r0, r4, #0
+ mov r1, #0x29
+ bl MOD14_021E613C
+ add r0, r4, #0
+ mov r1, #0x2b
+ bl MOD14_021E613C
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E5F04
+MOD14_021E5F04: ; 0x021E5F04
+ push {r4, r5, r6, lr}
+ add r4, r0, #0
+ add r5, r4, #0
+ add r5, #0x74
+ bl MOD14_021DC538
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD14_021DC430
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD14_021E612C
+ add r0, r5, #0
+ mov r1, #1
+ add r0, #0x23
+ strb r1, [r0]
+ cmp r6, #0
+ beq _021E5F54
+ cmp r4, #0
+ beq _021E5F3A
+ add r0, r5, #0
+ mov r1, #0x31
+ bl MOD14_021E613C
+ b _021E5F42
+_021E5F3A:
+ add r0, r5, #0
+ mov r1, #0x2e
+ bl MOD14_021E613C
+_021E5F42:
+ add r0, r5, #0
+ mov r1, #0x32
+ bl MOD14_021E613C
+ add r0, r5, #0
+ mov r1, #0x30
+ bl MOD14_021E613C
+ b _021E5F7A
+_021E5F54:
+ cmp r4, #0
+ beq _021E5F72
+ add r0, r5, #0
+ mov r1, #0x2f
+ bl MOD14_021E613C
+ add r0, r5, #0
+ mov r1, #0x32
+ bl MOD14_021E613C
+ add r0, r5, #0
+ mov r1, #0x30
+ bl MOD14_021E613C
+ b _021E5F7A
+_021E5F72:
+ add r0, r5, #0
+ mov r1, #0x2e
+ bl MOD14_021E613C
+_021E5F7A:
+ add r0, r5, #0
+ mov r1, #0x33
+ bl MOD14_021E613C
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD14_021E5F84
+MOD14_021E5F84: ; 0x021E5F84
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r5, #0
+ add r4, #0x74
+ bl MOD14_021DC44C
+ add r0, r4, #0
+ bl MOD14_021E612C
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD14_021E613C
+ add r0, r5, #0
+ bl MOD14_021DC3C4
+ cmp r0, #4
+ beq _021E5FB8
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD14_021E613C
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD14_021E613C
+_021E5FB8:
+ add r0, r4, #0
+ mov r1, #3
+ bl MOD14_021E613C
+ mov r0, #2
+ add r4, #0x23
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD14_021E5FC8
+MOD14_021E5FC8: ; 0x021E5FC8
+ push {r4, r5, r6, lr}
+ add r4, r0, #0
+ add r4, #0x74
+ add r5, r1, #0
+ bl MOD14_021DC44C
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD14_021E612C
+ add r0, r4, #0
+ mov r1, #4
+ bl MOD14_021E613C
+ add r0, r4, #0
+ mov r1, #5
+ bl MOD14_021E613C
+ add r0, r4, #0
+ mov r1, #6
+ bl MOD14_021E613C
+ add r0, r4, #0
+ mov r1, #7
+ bl MOD14_021E613C
+ add r0, r6, #0
+ bl FUN_0206B668
+ add r6, r0, #0
+ beq _021E600E
+ add r0, r4, #0
+ mov r1, #8
+ bl MOD14_021E613C
+_021E600E:
+ cmp r6, #4
+ bls _021E601A
+ add r0, r4, #0
+ mov r1, #9
+ bl MOD14_021E613C
+_021E601A:
+ add r0, r4, #0
+ mov r1, #3
+ add r0, #0x23
+ strb r1, [r0]
+ cmp r5, #4
+ blt _021E6032
+ cmp r5, #9
+ bgt _021E6032
+ sub r0, r5, #4
+ add r4, #0x20
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_021E6032:
+ bl ErrorHandling
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD14_021E6038
+MOD14_021E6038: ; 0x021E6038
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ add r6, #0x74
+ add r5, r1, #0
+ bl MOD14_021DC44C
+ str r0, [sp]
+ add r0, r6, #0
+ bl MOD14_021E612C
+ cmp r5, #4
+ blt _021E6070
+ cmp r5, #7
+ bgt _021E6070
+ sub r0, r5, #4
+ ldr r1, _021E60B0 ; =0x021E69A8
+ lsl r0, r0, #3
+ mov r5, #0
+ add r4, r1, r0
+_021E605E:
+ ldrh r1, [r4]
+ add r0, r6, #0
+ bl MOD14_021E613C
+ add r5, r5, #1
+ add r4, r4, #2
+ cmp r5, #4
+ blt _021E605E
+ b _021E60A6
+_021E6070:
+ mov r4, #0
+ add r7, r4, #0
+ cmp r5, #9
+ bne _021E607A
+ mov r4, #4
+_021E607A:
+ mov r5, #0
+_021E607C:
+ ldr r0, [sp]
+ add r1, r5, #0
+ bl FUN_0206B644
+ cmp r0, #0
+ beq _021E60A0
+ cmp r4, #0
+ beq _021E6090
+ sub r4, r4, #1
+ b _021E60A0
+_021E6090:
+ add r1, r5, #0
+ add r0, r6, #0
+ add r1, #0x1a
+ bl MOD14_021E613C
+ add r7, r7, #1
+ cmp r7, #4
+ bge _021E60A6
+_021E60A0:
+ add r5, r5, #1
+ cmp r5, #8
+ blt _021E607C
+_021E60A6:
+ mov r0, #3
+ add r6, #0x23
+ strb r0, [r6]
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021E60B0: .word 0x021E69A8
+
+ thumb_func_start MOD14_021E60B4
+MOD14_021E60B4: ; 0x021E60B4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r5, #0
+ add r4, #0x74
+ add r0, r4, #0
+ bl MOD14_021E612C
+ add r0, r4, #0
+ mov r1, #4
+ add r0, #0x23
+ strb r1, [r0]
+ add r5, #0x57
+ add r0, r4, #0
+ ldrb r1, [r5]
+ add r0, #0x22
+ strb r1, [r0]
+ add r0, r4, #0
+ mov r1, #0x38
+ bl MOD14_021E613C
+ add r0, r4, #0
+ mov r1, #0x39
+ bl MOD14_021E613C
+ add r0, r4, #0
+ mov r1, #0x3a
+ bl MOD14_021E613C
+ add r0, r4, #0
+ mov r1, #0x3b
+ bl MOD14_021E613C
+ add r0, r4, #0
+ mov r1, #0x3c
+ bl MOD14_021E613C
+ add r0, r4, #0
+ mov r1, #0x3d
+ bl MOD14_021E613C
+ add r0, r4, #0
+ mov r1, #0x2c
+ bl MOD14_021E613C
+ add r0, r4, #0
+ mov r1, #0x2d
+ bl MOD14_021E613C
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E6118
+MOD14_021E6118: ; 0x021E6118
+ add r2, r0, #0
+ add r2, #0x96
+ ldrb r3, [r2]
+ mov r2, #1
+ lsl r2, r1
+ add r1, r3, #0
+ eor r1, r2
+ add r0, #0x96
+ strb r1, [r0]
+ bx lr
+
+ thumb_func_start MOD14_021E612C
+MOD14_021E612C: ; 0x021E612C
+ add r1, r0, #0
+ mov r2, #0
+ add r1, #0x21
+ strb r2, [r1]
+ add r0, #0x20
+ strb r2, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021E613C
+MOD14_021E613C: ; 0x021E613C
+ push {r3, r4}
+ add r2, r0, #0
+ add r2, #0x21
+ ldrb r4, [r2]
+ cmp r4, #8
+ bhs _021E615A
+ add r2, r0, #0
+ add r2, #0x21
+ ldrb r2, [r2]
+ add r3, r2, #1
+ add r2, r0, #0
+ add r2, #0x21
+ strb r3, [r2]
+ lsl r2, r4, #2
+ str r1, [r0, r2]
+_021E615A:
+ pop {r3, r4}
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021E6160
+MOD14_021E6160: ; 0x021E6160
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ ldr r0, _021E6208 ; =0x021C48B8
+ add r4, #0x74
+ ldr r1, [r0, #0x48]
+ mov r0, #0x40
+ add r2, r1, #0
+ tst r2, r0
+ beq _021E61A0
+ add r2, r4, #0
+ add r2, #0x20
+ ldrb r2, [r2]
+ cmp r2, #0
+ beq _021E618C
+ add r1, r4, #0
+ add r1, #0x20
+ ldrb r1, [r1]
+ add r4, #0x20
+ sub r0, #0x42
+ sub r1, r1, #1
+ strb r1, [r4]
+ pop {r3, r4, r5, pc}
+_021E618C:
+ add r2, r4, #0
+ add r2, #0x21
+ ldrb r2, [r2]
+ cmp r2, #3
+ blo _021E61A0
+ sub r1, r2, #1
+ add r4, #0x20
+ strb r1, [r4]
+ sub r0, #0x42
+ pop {r3, r4, r5, pc}
+_021E61A0:
+ mov r0, #0x80
+ add r2, r1, #0
+ tst r2, r0
+ beq _021E61D8
+ add r2, r4, #0
+ add r2, #0x21
+ ldrb r5, [r2]
+ add r2, r4, #0
+ add r2, #0x20
+ ldrb r3, [r2]
+ sub r2, r5, #1
+ cmp r3, r2
+ bge _021E61CA
+ add r1, r4, #0
+ add r1, #0x20
+ ldrb r1, [r1]
+ add r4, #0x20
+ sub r0, #0x82
+ add r1, r1, #1
+ strb r1, [r4]
+ pop {r3, r4, r5, pc}
+_021E61CA:
+ cmp r5, #3
+ blo _021E61D8
+ mov r0, #0
+ add r4, #0x20
+ strb r0, [r4]
+ sub r0, r0, #2
+ pop {r3, r4, r5, pc}
+_021E61D8:
+ mov r0, #2
+ tst r0, r1
+ beq _021E61EA
+ ldr r0, _021E620C ; =0x000005DD
+ bl FUN_020054C8
+ mov r0, #0
+ mvn r0, r0
+ pop {r3, r4, r5, pc}
+_021E61EA:
+ mov r0, #1
+ tst r1, r0
+ beq _021E6202
+ ldr r0, _021E620C ; =0x000005DD
+ bl FUN_020054C8
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ pop {r3, r4, r5, pc}
+_021E6202:
+ sub r0, r0, #4
+ pop {r3, r4, r5, pc}
+ nop
+_021E6208: .word 0x021C48B8
+_021E620C: .word 0x000005DD
+
+ thumb_func_start MOD14_021E6210
+MOD14_021E6210: ; 0x021E6210
+ add r0, #0x74
+ add r1, r0, #0
+ add r1, #0x20
+ ldrb r1, [r1]
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021E6220
+MOD14_021E6220: ; 0x021E6220
+ ldr r0, [r0, #0x74]
+ bx lr
+
+ .section .data
+ ; 0x021E6224
+ .incbin "baserom.nds", 0x236b44, 0x7dc
+
+ .section .bss
+ ; 0x021E69FC
+ .space 0x1A0