summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2020-05-12 19:24:39 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2020-05-12 19:24:39 -0400
commit4e3d8d226170eb5e683088d3b2a88a99b0d1cf35 (patch)
tree1a8fd2952a99a8b0964e7980932a303786213c35
parentcdbd54a3ac1299231425b03cb8e706050dd5039f (diff)
Disassemble module 67
-rw-r--r--arm9/arm9.lcf28
-rw-r--r--arm9/global.inc5
-rw-r--r--arm9/modules/67/asm/module_67.s4337
3 files changed, 4366 insertions, 4 deletions
diff --git a/arm9/arm9.lcf b/arm9/arm9.lcf
index b77125d4..accd8b31 100644
--- a/arm9/arm9.lcf
+++ b/arm9/arm9.lcf
@@ -2645,12 +2645,23 @@ SECTIONS {
SDK_OVERLAY.MODULE_66.BSS_SIZE = SDK_OVERLAY.MODULE_66.BSS_END - SDK_OVERLAY.MODULE_66.BSS_START;
} >> MODULE_66
- .MODULE_67: {
+ .MODULE_67 :
+ {
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY_MODULE_67_ID = 67;
SDK_OVERLAY.MODULE_67.ID = 67;
SDK_OVERLAY.MODULE_67.START = .;
- FILE_2BEC00.o (.text) /* 0x2BAC00 */
+ module_67.o (.text)
+ module_67.o (.rodata)
+ module_67.o (.init)
+ SDK_OVERLAY.MODULE_67.SINIT_START = .;
+ module_67.o (.ctor)
+ module_67.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_67.SINIT_END = .;
+ . = ALIGN(32);
+ module_67.o (.sdata)
+ module_67.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_67.END = .;
SDK_OVERLAY.MODULE_67.SIZE = SDK_OVERLAY.MODULE_67.END - SDK_OVERLAY.MODULE_67.START;
@@ -2660,7 +2671,8 @@ SECTIONS {
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_67.BSS_START = .;
- FILE_2BEC00.o (.bss)
+ module_67.o (.bss)
+ module_67.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_67.BSS_END = .;
SDK_OVERLAY.MODULE_67.BSS_SIZE = SDK_OVERLAY.MODULE_67.BSS_END - SDK_OVERLAY.MODULE_67.BSS_START;
@@ -3793,7 +3805,15 @@ SECTIONS {
WRITEW 66;
WRITEW 0;
- OVERLAY_TABLE(MODULE_67, 67)
+ WRITEW 67;
+ WRITEW ADDR(.MODULE_67);
+ WRITEW SDK_OVERLAY.MODULE_67.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_67.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_67.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_67.SINIT_END;
+ WRITEW 67;
+ WRITEW 0;
+
OVERLAY_TABLE(MODULE_68, 68)
OVERLAY_TABLE(MODULE_69, 69)
OVERLAY_TABLE(MODULE_70, 70)
diff --git a/arm9/global.inc b/arm9/global.inc
index e3a68f34..60c97406 100644
--- a/arm9/global.inc
+++ b/arm9/global.inc
@@ -2644,6 +2644,11 @@
.extern FUN_02014518
.extern FUN_0200D7A0
.extern FUN_0202008C
+.extern FUN_0200B10C
+.extern FUN_0200B430
+.extern FUN_0200B468
+.extern FUN_02029584
+.extern FUN_02029960
.extern FUN_020345A8
.extern FUN_020345DC
.extern FUN_020345F0
diff --git a/arm9/modules/67/asm/module_67.s b/arm9/modules/67/asm/module_67.s
new file mode 100644
index 00000000..8756cbb5
--- /dev/null
+++ b/arm9/modules/67/asm/module_67.s
@@ -0,0 +1,4337 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD67_021D74E0
+MOD67_021D74E0: ; 0x021D74E0
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ bl FUN_02015F1C
+ bl FUN_0201E6D8
+ bl FUN_0201E740
+ mov r0, #1
+ lsl r0, r0, #0x1a
+ ldr r2, [r0]
+ ldr r1, _021D75C0 ; =0xFFFFE0FF
+ ldr r3, _021D75C4 ; =0x04001000
+ and r2, r1
+ str r2, [r0]
+ ldr r2, [r3]
+ add r0, #0x50
+ and r1, r2
+ str r1, [r3]
+ mov r1, #0
+ strh r1, [r0]
+ add r3, #0x50
+ strh r1, [r3]
+ mov r0, #4
+ mov r1, #8
+ bl FUN_0201669C
+ mov r2, #2
+ mov r0, #3
+ mov r1, #0x2a
+ lsl r2, r2, #0x10
+ bl FUN_0201681C
+ add r0, r4, #0
+ bl FUN_0200628C
+ add r5, r0, #0
+ ldr r1, _021D75C8 ; =0x00001068
+ add r0, r4, #0
+ mov r2, #0x2a
+ bl FUN_02006268
+ ldr r2, _021D75C8 ; =0x00001068
+ mov r1, #0
+ add r4, r0, #0
+ bl Call_FillMemWithValue
+ mov r0, #0x2a
+ bl FUN_02016B94
+ str r0, [r4]
+ str r5, [r4, #0x4c]
+ add r0, r5, #0
+ bl FUN_020289A4
+ str r0, [r4, #0x44]
+ add r0, r5, #0
+ bl FUN_020238F4
+ str r0, [r4, #0x48]
+ mov r0, #0
+ mov r1, #0x2a
+ bl FUN_02079A70
+ mov r0, #0
+ mov r1, #0x2a
+ bl FUN_02002C84
+ bl MOD67_021D7680
+ ldr r0, [r4]
+ bl MOD67_021D76A0
+ add r0, r4, #0
+ bl MOD67_021D77B0
+ add r0, r4, #0
+ bl MOD67_021D7880
+ add r0, r4, #0
+ bl MOD67_021D7D60
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD67_021D7D9C
+ add r0, r4, #0
+ bl MOD67_021D7B84
+ ldr r0, _021D75CC ; =MOD67_021D7660
+ add r1, r4, #0
+ bl FUN_02015F10
+ bl FUN_0201E788
+ bl FUN_02033E74
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r1, #0
+ mov r0, #0x43
+ add r2, r1, #0
+ bl FUN_0200433C
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D75C0: .word 0xFFFFE0FF
+_021D75C4: .word 0x04001000
+_021D75C8: .word 0x00001068
+_021D75CC: .word MOD67_021D7660
+ thumb_func_end MOD67_021D74E0
+
+ thumb_func_start MOD67_021D75D0
+MOD67_021D75D0: ; 0x021D75D0
+ push {r4, lr}
+ add r4, r1, #0
+ bl FUN_02006278
+ ldr r1, [r4]
+ cmp r1, #4
+ bhi _021D7620
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D75EA: ; jump table
+ .short _021D75F4 - _021D75EA - 2 ; case 0
+ .short _021D75FC - _021D75EA - 2 ; case 1
+ .short _021D7604 - _021D75EA - 2 ; case 2
+ .short _021D760C - _021D75EA - 2 ; case 3
+ .short _021D7614 - _021D75EA - 2 ; case 4
+_021D75F4:
+ bl MOD67_021D78C4
+ str r0, [r4]
+ b _021D7620
+_021D75FC:
+ bl MOD67_021D78D8
+ str r0, [r4]
+ b _021D7620
+_021D7604:
+ bl MOD67_021D795C
+ str r0, [r4]
+ b _021D7620
+_021D760C:
+ bl MOD67_021D7A38
+ str r0, [r4]
+ b _021D7620
+_021D7614:
+ bl MOD67_021D7AA8
+ cmp r0, #1
+ bne _021D7620
+ mov r0, #1
+ pop {r4, pc}
+_021D7620:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD67_021D75D0
+
+ thumb_func_start MOD67_021D7624
+MOD67_021D7624: ; 0x021D7624
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ add r0, r4, #0
+ bl MOD67_021D7D84
+ ldr r0, [r4]
+ bl MOD67_021D777C
+ add r0, r4, #0
+ bl MOD67_021D78AC
+ mov r0, #0
+ bl FUN_02002CC0
+ add r0, r5, #0
+ bl FUN_0200627C
+ mov r0, #0x2a
+ bl FUN_020168D0
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD67_021D7624
+
+ thumb_func_start MOD67_021D7660
+MOD67_021D7660: ; 0x021D7660
+ push {r3, lr}
+ ldr r0, [r0]
+ bl FUN_0201AB60
+ ldr r3, _021D7678 ; =0x027E0000
+ ldr r1, _021D767C ; =0x00003FF8
+ mov r0, #1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ pop {r3, pc}
+ nop
+_021D7678: .word 0x027E0000
+_021D767C: .word 0x00003FF8
+ thumb_func_end MOD67_021D7660
+
+ thumb_func_start MOD67_021D7680
+MOD67_021D7680: ; 0x021D7680
+ push {r4, lr}
+ sub sp, #0x28
+ ldr r4, _021D769C ; =0x021D97B0
+ add r3, sp, #0
+ mov r2, #5
+_021D768A:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _021D768A
+ add r0, sp, #0
+ bl FUN_0201E66C
+ add sp, #0x28
+ pop {r4, pc}
+ .align 2, 0
+_021D769C: .word 0x021D97B0
+ thumb_func_end MOD67_021D7680
+
+ thumb_func_start MOD67_021D76A0
+MOD67_021D76A0: ; 0x021D76A0
+ push {r3, r4, r5, lr}
+ sub sp, #0x80
+ ldr r5, _021D7768 ; =0x021D9730
+ add r3, sp, #0x70
+ add r4, r0, #0
+ add r2, r3, #0
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ add r0, r2, #0
+ bl FUN_02016BBC
+ ldr r5, _021D776C ; =0x021D975C
+ add r3, sp, #0x54
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #0
+ str r0, [r3]
+ add r0, r4, #0
+ add r3, r1, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_02018744
+ ldr r5, _021D7770 ; =0x021D9740
+ add r3, sp, #0x38
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #1
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_02018744
+ ldr r5, _021D7774 ; =0x021D9778
+ add r3, sp, #0x1c
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #2
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r5, _021D7778 ; =0x021D9794
+ add r3, sp, #0
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #3
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #0
+ mov r1, #0x20
+ add r2, r0, #0
+ mov r3, #0x2a
+ bl FUN_02017F18
+ mov r0, #1
+ mov r1, #0x20
+ mov r2, #0
+ mov r3, #0x2a
+ bl FUN_02017F18
+ add sp, #0x80
+ pop {r3, r4, r5, pc}
+ nop
+_021D7768: .word 0x021D9730
+_021D776C: .word 0x021D975C
+_021D7770: .word 0x021D9740
+_021D7774: .word 0x021D9778
+_021D7778: .word 0x021D9794
+ thumb_func_end MOD67_021D76A0
+
+ thumb_func_start MOD67_021D777C
+MOD67_021D777C: ; 0x021D777C
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_0201E6D8
+ add r0, r4, #0
+ mov r1, #3
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #2
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_020178A0
+ mov r0, #0x2a
+ add r1, r4, #0
+ bl FUN_02016A8C
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD67_021D777C
+
+ thumb_func_start MOD67_021D77B0
+MOD67_021D77B0: ; 0x021D77B0
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ ldr r0, [r4, #0x48]
+ bl FUN_020239CC
+ cmp r0, #0
+ bne _021D7802
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x2a
+ str r0, [sp, #0xc]
+ mov r1, #2
+ ldr r2, [r4]
+ mov r0, #0x50
+ add r3, r1, #0
+ bl FUN_0200687C
+ mov r1, #0
+ str r1, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ mov r0, #0x2a
+ str r0, [sp, #0xc]
+ ldr r2, [r4]
+ mov r0, #0x50
+ mov r3, #2
+ bl FUN_020068C8
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #0x2a
+ str r0, [sp, #4]
+ mov r0, #0x50
+ mov r1, #4
+ add r3, r2, #0
+ bl FUN_02006930
+ b _021D7844
+_021D7802:
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x2a
+ str r0, [sp, #0xc]
+ ldr r2, [r4]
+ mov r0, #0x50
+ mov r1, #3
+ mov r3, #2
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x2a
+ str r0, [sp, #0xc]
+ ldr r2, [r4]
+ mov r0, #0x50
+ mov r1, #1
+ mov r3, #2
+ bl FUN_020068C8
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #0x2a
+ str r0, [sp, #4]
+ mov r0, #0x50
+ mov r1, #5
+ add r3, r2, #0
+ bl FUN_02006930
+_021D7844:
+ ldr r0, [r4]
+ mov r1, #2
+ bl FUN_0201886C
+ add r1, r4, #0
+ mov r2, #2
+ add r1, #0x5c
+ lsl r2, r2, #0xa
+ bl MIi_CpuCopy16
+ ldr r0, [r4]
+ add r4, #0x5c
+ mov r3, #2
+ mov r1, #3
+ add r2, r4, #0
+ lsl r3, r3, #0xa
+ bl FUN_02017DFC
+ mov r1, #0x1e
+ mov r0, #0
+ lsl r1, r1, #4
+ mov r2, #0x2a
+ bl FUN_02002ED0
+ mov r0, #4
+ mov r1, #0
+ bl FUN_02017FE4
+ add sp, #0x10
+ pop {r4, pc}
+ thumb_func_end MOD67_021D77B0
+
+ thumb_func_start MOD67_021D7880
+MOD67_021D7880: ; 0x021D7880
+ push {r4, lr}
+ ldr r2, _021D78A8 ; =0x00000142
+ add r4, r0, #0
+ mov r0, #0
+ mov r1, #0x1a
+ mov r3, #0x2a
+ bl FUN_0200A86C
+ str r0, [r4, #0x50]
+ mov r0, #0x2a
+ bl FUN_0200AA80
+ str r0, [r4, #0x54]
+ mov r0, #0x80
+ mov r1, #0x2a
+ bl FUN_020219F4
+ str r0, [r4, #0x58]
+ pop {r4, pc}
+ nop
+_021D78A8: .word 0x00000142
+ thumb_func_end MOD67_021D7880
+
+ thumb_func_start MOD67_021D78AC
+MOD67_021D78AC: ; 0x021D78AC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x50]
+ bl FUN_0200A8B8
+ ldr r0, [r4, #0x54]
+ bl FUN_0200AB18
+ ldr r0, [r4, #0x58]
+ bl FUN_02021A20
+ pop {r4, pc}
+ thumb_func_end MOD67_021D78AC
+
+ thumb_func_start MOD67_021D78C4
+MOD67_021D78C4: ; 0x021D78C4
+ push {r3, lr}
+ bl FUN_0200E308
+ cmp r0, #1
+ bne _021D78D2
+ mov r0, #1
+ pop {r3, pc}
+_021D78D2:
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD67_021D78C4
+
+ thumb_func_start MOD67_021D78D8
+MOD67_021D78D8: ; 0x021D78D8
+ push {r3, lr}
+ ldr r1, _021D7954 ; =0x021C48B8
+ ldr r3, [r1, #0x48]
+ mov r1, #0x20
+ add r2, r3, #0
+ tst r2, r1
+ beq _021D78F8
+ sub r1, #0x21
+ bl MOD67_021D7B1C
+ cmp r0, #1
+ bne _021D78F4
+ mov r0, #2
+ pop {r3, pc}
+_021D78F4:
+ mov r0, #1
+ pop {r3, pc}
+_021D78F8:
+ mov r1, #0x11
+ tst r1, r3
+ beq _021D7910
+ mov r1, #1
+ bl MOD67_021D7B1C
+ cmp r0, #1
+ bne _021D790C
+ mov r0, #3
+ pop {r3, pc}
+_021D790C:
+ mov r0, #1
+ pop {r3, pc}
+_021D7910:
+ mov r2, #2
+ add r1, r3, #0
+ tst r1, r2
+ beq _021D793A
+ ldr r1, _021D7958 ; =0x0000105C
+ ldrsb r1, [r0, r1]
+ cmp r1, #0
+ beq _021D792E
+ sub r1, r2, #3
+ bl MOD67_021D7B1C
+ cmp r0, #1
+ bne _021D793A
+ mov r0, #2
+ pop {r3, pc}
+_021D792E:
+ mov r0, #1
+ mov r1, #0x2a
+ bl FUN_02079A70
+ mov r0, #4
+ pop {r3, pc}
+_021D793A:
+ ldr r0, _021D7954 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #8
+ tst r0, r1
+ beq _021D7950
+ mov r0, #1
+ mov r1, #0x2a
+ bl FUN_02079A70
+ mov r0, #4
+ pop {r3, pc}
+_021D7950:
+ mov r0, #1
+ pop {r3, pc}
+ .align 2, 0
+_021D7954: .word 0x021C48B8
+_021D7958: .word 0x0000105C
+ thumb_func_end MOD67_021D78D8
+
+ thumb_func_start MOD67_021D795C
+MOD67_021D795C: ; 0x021D795C
+ push {r3, r4, lr}
+ sub sp, #0xc
+ ldr r1, _021D7A18 ; =0x0000105E
+ add r4, r0, #0
+ ldrsb r1, [r4, r1]
+ cmp r1, #0
+ beq _021D7970
+ cmp r1, #1
+ beq _021D79AC
+ b _021D7A12
+_021D7970:
+ bl MOD67_021D7AB0
+ ldr r2, _021D7A1C ; =0x00001063
+ add r0, r4, #0
+ ldrb r1, [r4, r2]
+ sub r2, r2, #7
+ ldrsb r2, [r4, r2]
+ sub r2, r2, #1
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ bl MOD67_021D7B5C
+ ldr r1, _021D7A20 ; =0x0000105C
+ ldrsb r0, [r4, r1]
+ sub r0, r0, #1
+ strb r0, [r4, r1]
+ add r1, r1, #4
+ ldrsb r2, [r4, r1]
+ mov r1, #1
+ add r0, r4, #0
+ eor r1, r2
+ bl MOD67_021D7D9C
+ ldr r0, _021D7A18 ; =0x0000105E
+ mov r1, #1
+ strb r1, [r4, r0]
+ ldr r0, _021D7A24 ; =0x00000691
+ bl FUN_020054C8
+ b _021D7A12
+_021D79AC:
+ bl MOD67_021D7C30
+ cmp r0, #1
+ bne _021D7A12
+ ldr r1, _021D7A28 ; =0x0000105F
+ mov r3, #0
+ strb r3, [r4, r1]
+ sub r0, r1, #1
+ strb r3, [r4, r0]
+ add r0, r1, #1
+ ldrsb r2, [r4, r0]
+ mov r0, #1
+ eor r2, r0
+ add r0, r1, #1
+ strb r2, [r4, r0]
+ ldr r2, _021D7A2C ; =0x0000085C
+ str r3, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ add r1, r1, #3
+ ldrb r1, [r4, r1]
+ ldr r0, [r4]
+ add r2, r4, r2
+ bl FUN_02018148
+ mov r3, #0
+ add r2, r4, #0
+ str r3, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r1, _021D7A30 ; =0x00001061
+ ldr r0, [r4]
+ ldrb r1, [r4, r1]
+ add r2, #0x5c
+ bl FUN_02018148
+ ldr r1, _021D7A34 ; =0x00001062
+ ldr r0, [r4]
+ ldrb r1, [r4, r1]
+ bl FUN_0201AC68
+ ldr r1, _021D7A30 ; =0x00001061
+ ldr r0, [r4]
+ ldrb r1, [r4, r1]
+ bl FUN_0201AC68
+ add sp, #0xc
+ mov r0, #1
+ pop {r3, r4, pc}
+_021D7A12:
+ mov r0, #2
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+_021D7A18: .word 0x0000105E
+_021D7A1C: .word 0x00001063
+_021D7A20: .word 0x0000105C
+_021D7A24: .word 0x00000691
+_021D7A28: .word 0x0000105F
+_021D7A2C: .word 0x0000085C
+_021D7A30: .word 0x00001061
+_021D7A34: .word 0x00001062
+ thumb_func_end MOD67_021D795C
+
+ thumb_func_start MOD67_021D7A38
+MOD67_021D7A38: ; 0x021D7A38
+ push {r4, lr}
+ ldr r1, _021D7A98 ; =0x0000105E
+ add r4, r0, #0
+ ldrsb r1, [r4, r1]
+ cmp r1, #0
+ beq _021D7A4A
+ cmp r1, #1
+ beq _021D7A72
+ b _021D7A92
+_021D7A4A:
+ bl MOD67_021D7AB0
+ ldr r1, _021D7A9C ; =0x0000105C
+ ldrsb r0, [r4, r1]
+ add r0, r0, #1
+ strb r0, [r4, r1]
+ add r1, r1, #4
+ ldrsb r2, [r4, r1]
+ mov r1, #1
+ add r0, r4, #0
+ eor r1, r2
+ bl MOD67_021D7D9C
+ ldr r0, _021D7A98 ; =0x0000105E
+ mov r1, #1
+ strb r1, [r4, r0]
+ ldr r0, _021D7AA0 ; =0x00000691
+ bl FUN_020054C8
+ b _021D7A92
+_021D7A72:
+ bl MOD67_021D7CBC
+ cmp r0, #1
+ bne _021D7A92
+ ldr r1, _021D7AA4 ; =0x0000105F
+ mov r2, #0
+ strb r2, [r4, r1]
+ sub r0, r1, #1
+ strb r2, [r4, r0]
+ add r0, r1, #1
+ ldrsb r2, [r4, r0]
+ mov r0, #1
+ add r1, r1, #1
+ eor r2, r0
+ strb r2, [r4, r1]
+ pop {r4, pc}
+_021D7A92:
+ mov r0, #3
+ pop {r4, pc}
+ nop
+_021D7A98: .word 0x0000105E
+_021D7A9C: .word 0x0000105C
+_021D7AA0: .word 0x00000691
+_021D7AA4: .word 0x0000105F
+ thumb_func_end MOD67_021D7A38
+
+ thumb_func_start MOD67_021D7AA8
+MOD67_021D7AA8: ; 0x021D7AA8
+ ldr r3, _021D7AAC ; =0x0200E309
+ bx r3
+ .align 2, 0
+_021D7AAC: .word 0x0200E309
+ thumb_func_end MOD67_021D7AA8
+
+ thumb_func_start MOD67_021D7AB0
+MOD67_021D7AB0: ; 0x021D7AB0
+ ldr r2, _021D7AEC ; =0x00001060
+ ldrsb r1, [r0, r2]
+ cmp r1, #0
+ bne _021D7AD2
+ mov r3, #0
+ add r1, r2, #2
+ strb r3, [r0, r1]
+ mov r3, #2
+ add r1, r2, #1
+ strb r3, [r0, r1]
+ mov r3, #1
+ add r1, r2, #4
+ strb r3, [r0, r1]
+ mov r3, #3
+ add r1, r2, #3
+ strb r3, [r0, r1]
+ bx lr
+_021D7AD2:
+ mov r3, #1
+ add r1, r2, #2
+ strb r3, [r0, r1]
+ mov r3, #3
+ add r1, r2, #1
+ strb r3, [r0, r1]
+ mov r3, #0
+ add r1, r2, #4
+ strb r3, [r0, r1]
+ mov r3, #2
+ add r1, r2, #3
+ strb r3, [r0, r1]
+ bx lr
+ .align 2, 0
+_021D7AEC: .word 0x00001060
+ thumb_func_end MOD67_021D7AB0
+
+ thumb_func_start MOD67_021D7AF0
+MOD67_021D7AF0: ; 0x021D7AF0
+ push {r3, lr}
+ ldr r0, [r0, #0x44]
+ add r3, r1, #0
+ add r1, sp, #0
+ mov r2, #0
+ bl FUN_02029584
+ ldr r1, [sp]
+ lsl r0, r1, #0x19
+ lsr r0, r0, #0x19
+ bne _021D7B16
+ lsl r0, r1, #0x15
+ lsr r0, r0, #0x1c
+ bne _021D7B16
+ lsl r0, r1, #0xd
+ lsr r0, r0, #0x1b
+ bne _021D7B16
+ mov r0, #0
+ pop {r3, pc}
+_021D7B16:
+ mov r0, #1
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD67_021D7AF0
+
+ thumb_func_start MOD67_021D7B1C
+MOD67_021D7B1C: ; 0x021D7B1C
+ push {r3, lr}
+ cmp r1, #1
+ ldr r1, _021D7B58 ; =0x0000105C
+ bne _021D7B3C
+ ldrsb r1, [r0, r1]
+ cmp r1, #9
+ beq _021D7B54
+ add r1, r1, #1
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl MOD67_021D7AF0
+ cmp r0, #1
+ bne _021D7B54
+ mov r0, #1
+ pop {r3, pc}
+_021D7B3C:
+ ldrsb r1, [r0, r1]
+ cmp r1, #0
+ beq _021D7B54
+ sub r1, r1, #1
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl MOD67_021D7AF0
+ cmp r0, #1
+ bne _021D7B54
+ mov r0, #1
+ pop {r3, pc}
+_021D7B54:
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+_021D7B58: .word 0x0000105C
+ thumb_func_end MOD67_021D7B1C
+
+ thumb_func_start MOD67_021D7B5C
+MOD67_021D7B5C: ; 0x021D7B5C
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ mov r0, #0x20
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r2, [sp, #8]
+ mov r2, #0
+ ldr r0, [r5]
+ add r3, r2, #0
+ add r4, r1, #0
+ bl FUN_020186B4
+ ldr r0, [r5]
+ add r1, r4, #0
+ bl FUN_0201AC68
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD67_021D7B5C
+
+ thumb_func_start MOD67_021D7B84
+MOD67_021D7B84: ; 0x021D7B84
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ mov r1, #0
+ bl FUN_0201886C
+ ldr r2, _021D7B9C ; =0x0000085C
+ add r1, r4, r2
+ sub r2, #0x5c
+ bl MIi_CpuCopy16
+ pop {r4, pc}
+ .align 2, 0
+_021D7B9C: .word 0x0000085C
+ thumb_func_end MOD67_021D7B84
+
+ thumb_func_start MOD67_021D7BA0
+MOD67_021D7BA0: ; 0x021D7BA0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ str r2, [sp, #0x10]
+ add r6, r1, #0
+ ldr r1, [sp, #0x10]
+ add r7, r0, #0
+ lsl r1, r1, #0x18
+ ldr r0, [r7]
+ lsr r1, r1, #0x18
+ add r5, r3, #0
+ bl FUN_0201886C
+ str r0, [sp, #0x14]
+ ldr r1, _021D7C2C ; =0x021D97D8
+ lsl r0, r5, #5
+ add r5, r1, r0
+ ldr r0, [sp, #0x10]
+ mov r4, #0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x18]
+_021D7BCA:
+ ldrb r0, [r5, r4]
+ cmp r0, #0xff
+ bne _021D7BF0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x20
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ lsl r3, r4, #0x18
+ ldr r0, [r7]
+ ldr r1, [sp, #0x18]
+ mov r2, #0
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ b _021D7C10
+_021D7BF0:
+ ldr r0, [sp, #0x14]
+ lsl r1, r4, #1
+ mov r2, #0
+ add r3, r0, r1
+_021D7BF8:
+ ldrb r0, [r5, r4]
+ lsl r1, r2, #5
+ add r0, r1, r0
+ lsl r0, r0, #1
+ ldrh r0, [r6, r0]
+ lsl r1, r1, #1
+ strh r0, [r3, r1]
+ add r0, r2, #1
+ lsl r0, r0, #0x10
+ lsr r2, r0, #0x10
+ cmp r2, #0x20
+ blo _021D7BF8
+_021D7C10:
+ add r0, r4, #1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #0x20
+ blo _021D7BCA
+ ldr r1, [sp, #0x10]
+ ldr r0, [r7]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_0201AC68
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D7C2C: .word 0x021D97D8
+ thumb_func_end MOD67_021D7BA0
+
+ thumb_func_start MOD67_021D7C30
+MOD67_021D7C30: ; 0x021D7C30
+ push {r4, lr}
+ ldr r3, _021D7CA8 ; =0x00001062
+ add r4, r0, #0
+ ldrb r2, [r4, r3]
+ sub r3, r3, #3
+ ldr r1, _021D7CAC ; =0x0000085C
+ ldrsb r3, [r4, r3]
+ add r1, r4, r1
+ bl MOD67_021D7BA0
+ ldr r3, _021D7CB0 ; =0x00001061
+ add r1, r4, #0
+ ldrb r2, [r4, r3]
+ sub r3, r3, #2
+ ldrsb r3, [r4, r3]
+ add r0, r4, #0
+ add r1, #0x5c
+ bl MOD67_021D7BA0
+ ldr r2, _021D7CB0 ; =0x00001061
+ add r0, r4, #0
+ ldrb r1, [r4, r2]
+ sub r2, r2, #5
+ ldrsb r2, [r4, r2]
+ add r2, r2, #1
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ bl MOD67_021D7B5C
+ ldr r0, _021D7CB4 ; =0x0000105F
+ ldrsb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ ldrsb r1, [r4, r0]
+ cmp r1, #9
+ bne _021D7CA4
+ add r0, r0, #5
+ ldrb r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020178BC
+ ldr r0, _021D7CB8 ; =0x00001063
+ mov r1, #1
+ ldrb r0, [r4, r0]
+ bl FUN_020178BC
+ ldr r0, _021D7CA8 ; =0x00001062
+ mov r1, #2
+ ldrb r0, [r4, r0]
+ bl FUN_020178BC
+ ldr r0, _021D7CB0 ; =0x00001061
+ mov r1, #3
+ ldrb r0, [r4, r0]
+ bl FUN_020178BC
+ mov r0, #1
+ pop {r4, pc}
+_021D7CA4:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_021D7CA8: .word 0x00001062
+_021D7CAC: .word 0x0000085C
+_021D7CB0: .word 0x00001061
+_021D7CB4: .word 0x0000105F
+_021D7CB8: .word 0x00001063
+ thumb_func_end MOD67_021D7C30
+
+ thumb_func_start MOD67_021D7CBC
+MOD67_021D7CBC: ; 0x021D7CBC
+ push {r3, r4, r5, lr}
+ ldr r3, _021D7D48 ; =0x00001064
+ add r4, r0, #0
+ ldrb r2, [r4, r3]
+ sub r3, r3, #5
+ ldrsb r5, [r4, r3]
+ mov r3, #8
+ ldr r1, _021D7D4C ; =0x0000085C
+ sub r3, r3, r5
+ lsl r3, r3, #0x10
+ add r1, r4, r1
+ lsr r3, r3, #0x10
+ bl MOD67_021D7BA0
+ ldr r3, _021D7D50 ; =0x00001063
+ add r1, r4, #0
+ ldrb r2, [r4, r3]
+ sub r3, r3, #4
+ ldrsb r5, [r4, r3]
+ mov r3, #8
+ add r0, r4, #0
+ sub r3, r3, r5
+ lsl r3, r3, #0x10
+ add r1, #0x5c
+ lsr r3, r3, #0x10
+ bl MOD67_021D7BA0
+ ldr r2, _021D7D50 ; =0x00001063
+ add r0, r4, #0
+ ldrb r1, [r4, r2]
+ sub r2, r2, #7
+ ldrb r2, [r4, r2]
+ bl MOD67_021D7B5C
+ ldr r0, _021D7D54 ; =0x0000105F
+ ldrsb r1, [r4, r0]
+ cmp r1, #1
+ bne _021D7D30
+ add r0, r0, #5
+ ldrb r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020178BC
+ ldr r0, _021D7D50 ; =0x00001063
+ mov r1, #1
+ ldrb r0, [r4, r0]
+ bl FUN_020178BC
+ ldr r0, _021D7D58 ; =0x00001062
+ mov r1, #2
+ ldrb r0, [r4, r0]
+ bl FUN_020178BC
+ ldr r0, _021D7D5C ; =0x00001061
+ mov r1, #3
+ ldrb r0, [r4, r0]
+ bl FUN_020178BC
+_021D7D30:
+ ldr r0, _021D7D54 ; =0x0000105F
+ ldrsb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ ldrsb r0, [r4, r0]
+ cmp r0, #9
+ bne _021D7D42
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021D7D42:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_021D7D48: .word 0x00001064
+_021D7D4C: .word 0x0000085C
+_021D7D50: .word 0x00001063
+_021D7D54: .word 0x0000105F
+_021D7D58: .word 0x00001062
+_021D7D5C: .word 0x00001061
+ thumb_func_end MOD67_021D7CBC
+
+ thumb_func_start MOD67_021D7D60
+MOD67_021D7D60: ; 0x021D7D60
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ ldr r4, _021D7D80 ; =0x021D98F8
+ mov r6, #0
+ add r5, r7, #4
+_021D7D6A:
+ ldr r0, [r7]
+ add r1, r5, #0
+ add r2, r4, #0
+ bl FUN_02019150
+ add r6, r6, #1
+ add r4, #8
+ add r5, #0x10
+ cmp r6, #4
+ blo _021D7D6A
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D7D80: .word 0x021D98F8
+ thumb_func_end MOD67_021D7D60
+
+ thumb_func_start MOD67_021D7D84
+MOD67_021D7D84: ; 0x021D7D84
+ push {r3, r4, r5, lr}
+ mov r4, #0
+ add r5, r0, #4
+_021D7D8A:
+ add r0, r5, #0
+ bl FUN_02019178
+ add r4, r4, #1
+ add r5, #0x10
+ cmp r4, #4
+ blo _021D7D8A
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD67_021D7D84
+
+ thumb_func_start MOD67_021D7D9C
+MOD67_021D7D9C: ; 0x021D7D9C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ cmp r1, #0
+ bne _021D7DAC
+ add r4, r5, #0
+ add r6, r5, #4
+ add r4, #0x14
+ b _021D7DB4
+_021D7DAC:
+ add r6, r5, #0
+ add r4, r5, #0
+ add r6, #0x24
+ add r4, #0x34
+_021D7DB4:
+ add r0, r6, #0
+ mov r1, #0
+ bl FUN_02019620
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_02019620
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD67_021D7E00
+ cmp r0, #1
+ bne _021D7DF2
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD67_021D7F18
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD67_021D81C4
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD67_021D8208
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD67_021D8344
+_021D7DF2:
+ add r0, r6, #0
+ bl FUN_02019220
+ add r0, r4, #0
+ bl FUN_02019220
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD67_021D7D9C
+
+ thumb_func_start MOD67_021D7E00
+MOD67_021D7E00: ; 0x021D7E00
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ ldr r3, _021D7F10 ; =0x0000105C
+ add r5, r0, #0
+ ldrb r3, [r5, r3]
+ ldr r0, [r5, #0x44]
+ add r7, r1, #0
+ str r2, [sp, #0x10]
+ add r1, sp, #0x14
+ mov r2, #0
+ bl FUN_02029584
+ ldr r1, [sp, #0x14]
+ lsl r0, r1, #0x19
+ lsr r0, r0, #0x19
+ bne _021D7E32
+ lsl r0, r1, #0x15
+ lsr r0, r0, #0x1c
+ bne _021D7E32
+ lsl r0, r1, #0xd
+ lsr r0, r0, #0x1b
+ bne _021D7E32
+ add sp, #0x18
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_021D7E32:
+ ldr r0, [r5, #0x50]
+ mov r1, #1
+ bl FUN_0200A914
+ ldr r2, [sp, #0x14]
+ add r4, r0, #0
+ lsl r2, r2, #0x15
+ ldr r0, [r5, #0x54]
+ mov r1, #0
+ lsr r2, r2, #0x1c
+ bl FUN_0200B764
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ ldr r2, [sp, #0x14]
+ ldr r0, [r5, #0x54]
+ lsl r2, r2, #0xd
+ lsr r2, r2, #0x1b
+ mov r3, #2
+ bl FUN_0200AD38
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r4, #0
+ bl FUN_0200B7B8
+ add r0, r4, #0
+ bl FUN_02021A20
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D7F14 ; =0x00010200
+ add r3, r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r2, [r5, #0x58]
+ add r0, r7, #0
+ bl FUN_0201BDE0
+ mov r0, #0
+ ldr r1, [r5, #0x58]
+ add r2, r0, #0
+ bl FUN_02002E14
+ ldr r1, [sp, #0x14]
+ add r4, r0, #0
+ lsl r1, r1, #0x12
+ lsr r1, r1, #0x1d
+ ldr r0, [r5, #0x50]
+ add r1, r1, #2
+ bl FUN_0200A914
+ add r6, r0, #0
+ mov r1, #0
+ add r4, #0xc
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D7F14 ; =0x00010200
+ add r2, r6, #0
+ str r0, [sp, #8]
+ add r0, r7, #0
+ add r3, r4, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r6, #0
+ bl FUN_02021A20
+ ldr r0, [r5, #0x50]
+ mov r1, #0
+ bl FUN_0200A914
+ add r4, r0, #0
+ ldr r0, [sp, #0x14]
+ lsr r0, r0, #0x13
+ bl FUN_02034824
+ add r2, r0, #0
+ ldr r0, [r5, #0x54]
+ mov r1, #0
+ bl FUN_0200AFF4
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r4, #0
+ bl FUN_0200B7B8
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D7F14 ; =0x00010200
+ add r3, r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r2, [r5, #0x58]
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02021A20
+ mov r0, #1
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D7F10: .word 0x0000105C
+_021D7F14: .word 0x00010200
+ thumb_func_end MOD67_021D7E00
+
+ thumb_func_start MOD67_021D7F18
+MOD67_021D7F18: ; 0x021D7F18
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ ldr r3, _021D81C0 ; =0x0000105C
+ add r6, r0, #0
+ ldrb r3, [r6, r3]
+ ldr r0, [r6, #0x44]
+ add r7, r1, #0
+ add r1, sp, #0
+ mov r2, #1
+ bl FUN_02029584
+ mov r4, #0
+ add r5, sp, #0
+_021D7F32:
+ ldrb r0, [r5]
+ cmp r0, #0x23
+ bls _021D7F3A
+ b _021D81B0
+_021D7F3A:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D7F46: ; jump table
+ .short _021D7F8E - _021D7F46 - 2 ; case 0
+ .short _021D7F92 - _021D7F46 - 2 ; case 1
+ .short _021D7FA2 - _021D7F46 - 2 ; case 2
+ .short _021D7FB2 - _021D7F46 - 2 ; case 3
+ .short _021D7FC2 - _021D7F46 - 2 ; case 4
+ .short _021D7FD2 - _021D7F46 - 2 ; case 5
+ .short _021D7FE2 - _021D7F46 - 2 ; case 6
+ .short _021D7FF2 - _021D7F46 - 2 ; case 7
+ .short _021D8002 - _021D7F46 - 2 ; case 8
+ .short _021D8012 - _021D7F46 - 2 ; case 9
+ .short _021D8022 - _021D7F46 - 2 ; case 10
+ .short _021D8032 - _021D7F46 - 2 ; case 11
+ .short _021D8042 - _021D7F46 - 2 ; case 12
+ .short _021D8052 - _021D7F46 - 2 ; case 13
+ .short _021D8062 - _021D7F46 - 2 ; case 14
+ .short _021D8072 - _021D7F46 - 2 ; case 15
+ .short _021D8082 - _021D7F46 - 2 ; case 16
+ .short _021D8092 - _021D7F46 - 2 ; case 17
+ .short _021D80A2 - _021D7F46 - 2 ; case 18
+ .short _021D80C2 - _021D7F46 - 2 ; case 19
+ .short _021D80D2 - _021D7F46 - 2 ; case 20
+ .short _021D8102 - _021D7F46 - 2 ; case 21
+ .short _021D80F2 - _021D7F46 - 2 ; case 22
+ .short _021D80E2 - _021D7F46 - 2 ; case 23
+ .short _021D80B2 - _021D7F46 - 2 ; case 24
+ .short _021D8122 - _021D7F46 - 2 ; case 25
+ .short _021D8112 - _021D7F46 - 2 ; case 26
+ .short _021D8132 - _021D7F46 - 2 ; case 27
+ .short _021D8142 - _021D7F46 - 2 ; case 28
+ .short _021D8152 - _021D7F46 - 2 ; case 29
+ .short _021D8162 - _021D7F46 - 2 ; case 30
+ .short _021D81B0 - _021D7F46 - 2 ; case 31
+ .short _021D8182 - _021D7F46 - 2 ; case 32
+ .short _021D8172 - _021D7F46 - 2 ; case 33
+ .short _021D8192 - _021D7F46 - 2 ; case 34
+ .short _021D81A2 - _021D7F46 - 2 ; case 35
+_021D7F8E:
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+_021D7F92:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D84A8
+ b _021D81B0
+_021D7FA2:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D84E4
+ b _021D81B0
+_021D7FB2:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D8520
+ b _021D81B0
+_021D7FC2:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D855C
+ b _021D81B0
+_021D7FD2:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D8598
+ b _021D81B0
+_021D7FE2:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D85D4
+ b _021D81B0
+_021D7FF2:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D8610
+ b _021D81B0
+_021D8002:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D864C
+ b _021D81B0
+_021D8012:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D8688
+ b _021D81B0
+_021D8022:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D86DC
+ b _021D81B0
+_021D8032:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D873C
+ b _021D81B0
+_021D8042:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D8790
+ b _021D81B0
+_021D8052:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D87E4
+ b _021D81B0
+_021D8062:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D8840
+ b _021D81B0
+_021D8072:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D88AC
+ b _021D81B0
+_021D8082:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D8914
+ b _021D81B0
+_021D8092:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D8950
+ b _021D81B0
+_021D80A2:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D898C
+ b _021D81B0
+_021D80B2:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D89E0
+ b _021D81B0
+_021D80C2:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D8A3C
+ b _021D81B0
+_021D80D2:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D8A98
+ b _021D81B0
+_021D80E2:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D8AF4
+ b _021D81B0
+_021D80F2:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D8B50
+ b _021D81B0
+_021D8102:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D8BAC
+ b _021D81B0
+_021D8112:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D8C08
+ b _021D81B0
+_021D8122:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D8C64
+ b _021D81B0
+_021D8132:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D8CC0
+ b _021D81B0
+_021D8142:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D8D1C
+ b _021D81B0
+_021D8152:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D8D78
+ b _021D81B0
+_021D8162:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D8DD4
+ b _021D81B0
+_021D8172:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D8E10
+ b _021D81B0
+_021D8182:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D8E4C
+ b _021D81B0
+_021D8192:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D8E88
+ b _021D81B0
+_021D81A2:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D8EC4
+_021D81B0:
+ add r4, r4, #1
+ add r5, #8
+ cmp r4, #4
+ bhs _021D81BA
+ b _021D7F32
+_021D81BA:
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D81C0: .word 0x0000105C
+ thumb_func_end MOD67_021D7F18
+
+ thumb_func_start MOD67_021D81C4
+MOD67_021D81C4: ; 0x021D81C4
+ push {r3, r4, r5, lr}
+ ldr r3, _021D8204 ; =0x0000105C
+ add r5, r0, #0
+ ldrb r3, [r5, r3]
+ ldr r0, [r5, #0x44]
+ add r4, r1, #0
+ add r1, sp, #0
+ mov r2, #2
+ bl FUN_02029584
+ add r0, sp, #0
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _021D8200
+ cmp r0, #1
+ beq _021D81EA
+ cmp r0, #2
+ beq _021D81F6
+ pop {r3, r4, r5, pc}
+_021D81EA:
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, sp, #0
+ bl MOD67_021D8F40
+ pop {r3, r4, r5, pc}
+_021D81F6:
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, sp, #0
+ bl MOD67_021D8FEC
+_021D8200:
+ pop {r3, r4, r5, pc}
+ nop
+_021D8204: .word 0x0000105C
+ thumb_func_end MOD67_021D81C4
+
+ thumb_func_start MOD67_021D8208
+MOD67_021D8208: ; 0x021D8208
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ ldr r3, _021D8334 ; =0x0000105C
+ add r4, r0, #0
+ ldrb r3, [r4, r3]
+ ldr r0, [r4, #0x44]
+ add r7, r1, #0
+ add r1, sp, #0x10
+ mov r2, #3
+ bl FUN_02029584
+ add r0, sp, #0x10
+ ldrh r1, [r0]
+ lsl r1, r1, #0x1f
+ lsr r1, r1, #0x1f
+ bne _021D822A
+ b _021D832E
+_021D822A:
+ ldrh r0, [r0, #2]
+ bl FUN_02034824
+ add r2, r0, #0
+ ldr r1, _021D8338 ; =0x0000017E
+ mov r0, #0x1a
+ mov r3, #0x2a
+ bl FUN_0200A738
+ add r6, r0, #0
+ bl FUN_02021D3C
+ add r5, r0, #0
+ add r0, r6, #0
+ bl FUN_02021A20
+ add r0, sp, #0x10
+ ldrh r0, [r0]
+ mov r1, #1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x11
+ bl FUN_0206AC74
+ cmp r0, #0x3f
+ bne _021D828A
+ ldr r0, [r4, #0x50]
+ mov r1, #0x38
+ bl FUN_0200A914
+ add r6, r0, #0
+ ldr r0, [r4, #0x54]
+ ldr r2, [r4, #0x4c]
+ mov r1, #1
+ bl FUN_0200ABE4
+ ldr r0, [r4, #0x54]
+ ldr r1, [r4, #0x58]
+ add r2, r6, #0
+ bl FUN_0200B7B8
+ ldr r0, [r4, #0x58]
+ bl FUN_02021D3C
+ add r5, r5, r0
+ add r0, r6, #0
+ bl FUN_02021A20
+ b _021D82BA
+_021D828A:
+ add r2, sp, #0x10
+ ldrh r2, [r2]
+ ldr r1, _021D833C ; =0x0000022F
+ mov r0, #0x1a
+ lsl r2, r2, #0x10
+ lsr r2, r2, #0x11
+ mov r3, #0x2a
+ bl FUN_0200A738
+ add r6, r0, #0
+ bl FUN_02021D3C
+ add r5, r5, r0
+ add r0, r6, #0
+ bl FUN_02021A20
+ add r2, sp, #0x10
+ ldrh r2, [r2]
+ ldr r0, [r4, #0x54]
+ mov r1, #1
+ lsl r2, r2, #0x10
+ lsr r2, r2, #0x11
+ bl FUN_0200B10C
+_021D82BA:
+ cmp r5, #0xe
+ bhi _021D82CA
+ ldr r0, [r4, #0x50]
+ mov r1, #0x34
+ bl FUN_0200A914
+ add r5, r0, #0
+ b _021D82F2
+_021D82CA:
+ cmp r5, #0x10
+ bhi _021D82DA
+ ldr r0, [r4, #0x50]
+ mov r1, #0x35
+ bl FUN_0200A914
+ add r5, r0, #0
+ b _021D82F2
+_021D82DA:
+ cmp r5, #0x13
+ ldr r0, [r4, #0x50]
+ bhi _021D82EA
+ mov r1, #0x36
+ bl FUN_0200A914
+ add r5, r0, #0
+ b _021D82F2
+_021D82EA:
+ mov r1, #0x37
+ bl FUN_0200A914
+ add r5, r0, #0
+_021D82F2:
+ add r0, sp, #0x10
+ ldrh r0, [r0, #2]
+ bl FUN_02034824
+ add r2, r0, #0
+ ldr r0, [r4, #0x54]
+ mov r1, #0
+ bl FUN_0200AFF4
+ ldr r0, [r4, #0x54]
+ ldr r1, [r4, #0x58]
+ add r2, r5, #0
+ bl FUN_0200B7B8
+ mov r0, #0x60
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D8340 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r2, [r4, #0x58]
+ add r0, r7, #0
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r5, #0
+ bl FUN_02021A20
+_021D832E:
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D8334: .word 0x0000105C
+_021D8338: .word 0x0000017E
+_021D833C: .word 0x0000022F
+_021D8340: .word 0x00010200
+ thumb_func_end MOD67_021D8208
+
+ thumb_func_start MOD67_021D8344
+MOD67_021D8344: ; 0x021D8344
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x74
+ ldr r3, _021D84A4 ; =0x0000105C
+ add r6, r0, #0
+ ldrb r3, [r6, r3]
+ ldr r0, [r6, #0x44]
+ add r7, r1, #0
+ add r1, sp, #0
+ mov r2, #4
+ bl FUN_02029584
+ mov r5, #0
+ add r4, sp, #0
+_021D835E:
+ ldrb r0, [r4]
+ cmp r0, #0x10
+ bls _021D8366
+ b _021D8496
+_021D8366:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D8372: ; jump table
+ .short _021D8394 - _021D8372 - 2 ; case 0
+ .short _021D8398 - _021D8372 - 2 ; case 1
+ .short _021D83A8 - _021D8372 - 2 ; case 2
+ .short _021D83B8 - _021D8372 - 2 ; case 3
+ .short _021D83C8 - _021D8372 - 2 ; case 4
+ .short _021D83D8 - _021D8372 - 2 ; case 5
+ .short _021D83E8 - _021D8372 - 2 ; case 6
+ .short _021D83F8 - _021D8372 - 2 ; case 7
+ .short _021D8408 - _021D8372 - 2 ; case 8
+ .short _021D8418 - _021D8372 - 2 ; case 9
+ .short _021D8428 - _021D8372 - 2 ; case 10
+ .short _021D8438 - _021D8372 - 2 ; case 11
+ .short _021D8448 - _021D8372 - 2 ; case 12
+ .short _021D8458 - _021D8372 - 2 ; case 13
+ .short _021D8468 - _021D8372 - 2 ; case 14
+ .short _021D8478 - _021D8372 - 2 ; case 15
+ .short _021D8488 - _021D8372 - 2 ; case 16
+_021D8394:
+ add sp, #0x74
+ pop {r4, r5, r6, r7, pc}
+_021D8398:
+ lsl r3, r5, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D90D4
+ b _021D8496
+_021D83A8:
+ lsl r3, r5, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D9158
+ b _021D8496
+_021D83B8:
+ lsl r3, r5, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D91DC
+ b _021D8496
+_021D83C8:
+ lsl r3, r5, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D9274
+ b _021D8496
+_021D83D8:
+ lsl r3, r5, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D92F8
+ b _021D8496
+_021D83E8:
+ lsl r3, r5, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D9390
+ b _021D8496
+_021D83F8:
+ lsl r3, r5, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D93EC
+ b _021D8496
+_021D8408:
+ lsl r3, r5, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D9458
+ b _021D8496
+_021D8418:
+ lsl r3, r5, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D9494
+ b _021D8496
+_021D8428:
+ lsl r3, r5, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D94F0
+ b _021D8496
+_021D8438:
+ lsl r3, r5, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D952C
+ b _021D8496
+_021D8448:
+ lsl r3, r5, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D95B0
+ b _021D8496
+_021D8458:
+ lsl r3, r5, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D95EC
+ b _021D8496
+_021D8468:
+ lsl r3, r5, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D964C
+ b _021D8496
+_021D8478:
+ lsl r3, r5, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D9688
+ b _021D8496
+_021D8488:
+ lsl r3, r5, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D96F4
+_021D8496:
+ add r5, r5, #1
+ add r4, #0x3a
+ cmp r5, #2
+ bhs _021D84A0
+ b _021D835E
+_021D84A0:
+ add sp, #0x74
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D84A4: .word 0x0000105C
+ thumb_func_end MOD67_021D8344
+
+ thumb_func_start MOD67_021D84A8
+MOD67_021D84A8: ; 0x021D84A8
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ ldr r0, [r0, #0x50]
+ add r6, r1, #0
+ add r5, r3, #0
+ mov r1, #9
+ bl FUN_0200A914
+ add r4, r0, #0
+ lsl r0, r5, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D84E0 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r2, r4, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021D84E0: .word 0x00010200
+ thumb_func_end MOD67_021D84A8
+
+ thumb_func_start MOD67_021D84E4
+MOD67_021D84E4: ; 0x021D84E4
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ ldr r0, [r0, #0x50]
+ add r6, r1, #0
+ add r5, r3, #0
+ mov r1, #0xa
+ bl FUN_0200A914
+ add r4, r0, #0
+ lsl r0, r5, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D851C ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r2, r4, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021D851C: .word 0x00010200
+ thumb_func_end MOD67_021D84E4
+
+ thumb_func_start MOD67_021D8520
+MOD67_021D8520: ; 0x021D8520
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ ldr r0, [r0, #0x50]
+ add r6, r1, #0
+ add r5, r3, #0
+ mov r1, #0xb
+ bl FUN_0200A914
+ add r4, r0, #0
+ lsl r0, r5, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D8558 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r2, r4, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021D8558: .word 0x00010200
+ thumb_func_end MOD67_021D8520
+
+ thumb_func_start MOD67_021D855C
+MOD67_021D855C: ; 0x021D855C
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ ldr r0, [r0, #0x50]
+ add r6, r1, #0
+ add r5, r3, #0
+ mov r1, #0xc
+ bl FUN_0200A914
+ add r4, r0, #0
+ lsl r0, r5, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D8594 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r2, r4, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021D8594: .word 0x00010200
+ thumb_func_end MOD67_021D855C
+
+ thumb_func_start MOD67_021D8598
+MOD67_021D8598: ; 0x021D8598
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ ldr r0, [r0, #0x50]
+ add r6, r1, #0
+ add r5, r3, #0
+ mov r1, #0xd
+ bl FUN_0200A914
+ add r4, r0, #0
+ lsl r0, r5, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D85D0 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r2, r4, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021D85D0: .word 0x00010200
+ thumb_func_end MOD67_021D8598
+
+ thumb_func_start MOD67_021D85D4
+MOD67_021D85D4: ; 0x021D85D4
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ ldr r0, [r0, #0x50]
+ add r6, r1, #0
+ add r5, r3, #0
+ mov r1, #0xe
+ bl FUN_0200A914
+ add r4, r0, #0
+ lsl r0, r5, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D860C ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r2, r4, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021D860C: .word 0x00010200
+ thumb_func_end MOD67_021D85D4
+
+ thumb_func_start MOD67_021D8610
+MOD67_021D8610: ; 0x021D8610
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ ldr r0, [r0, #0x50]
+ add r6, r1, #0
+ add r5, r3, #0
+ mov r1, #0xf
+ bl FUN_0200A914
+ add r4, r0, #0
+ lsl r0, r5, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D8648 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r2, r4, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021D8648: .word 0x00010200
+ thumb_func_end MOD67_021D8610
+
+ thumb_func_start MOD67_021D864C
+MOD67_021D864C: ; 0x021D864C
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ ldr r0, [r0, #0x50]
+ add r6, r1, #0
+ add r5, r3, #0
+ mov r1, #0x10
+ bl FUN_0200A914
+ add r4, r0, #0
+ lsl r0, r5, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D8684 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r2, r4, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021D8684: .word 0x00010200
+ thumb_func_end MOD67_021D864C
+
+ thumb_func_start MOD67_021D8688
+MOD67_021D8688: ; 0x021D8688
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r5, #0x50]
+ str r1, [sp, #0x10]
+ add r4, r2, #0
+ mov r1, #0x11
+ add r6, r3, #0
+ bl FUN_0200A914
+ add r7, r0, #0
+ ldrh r2, [r4, #2]
+ ldr r0, [r5, #0x54]
+ mov r1, #0
+ bl FUN_0200B430
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ lsl r0, r6, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D86D8 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r2, [r5, #0x58]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D86D8: .word 0x00010200
+ thumb_func_end MOD67_021D8688
+
+ thumb_func_start MOD67_021D86DC
+MOD67_021D86DC: ; 0x021D86DC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r5, #0x50]
+ str r1, [sp, #0x10]
+ add r4, r2, #0
+ mov r1, #0x12
+ add r6, r3, #0
+ bl FUN_0200A914
+ add r7, r0, #0
+ ldrh r2, [r4, #2]
+ ldr r0, [r5, #0x54]
+ mov r1, #0
+ bl FUN_0200B430
+ ldrh r2, [r4, #4]
+ ldr r0, [r5, #0x54]
+ mov r1, #1
+ bl FUN_0200B10C
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ lsl r0, r6, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D8738 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r2, [r5, #0x58]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D8738: .word 0x00010200
+ thumb_func_end MOD67_021D86DC
+
+ thumb_func_start MOD67_021D873C
+MOD67_021D873C: ; 0x021D873C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r5, #0x50]
+ str r1, [sp, #0x10]
+ add r4, r2, #0
+ mov r1, #0x13
+ add r6, r3, #0
+ bl FUN_0200A914
+ add r7, r0, #0
+ ldrh r2, [r4, #4]
+ ldr r0, [r5, #0x54]
+ mov r1, #0
+ bl FUN_0200B10C
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ lsl r0, r6, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D878C ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r2, [r5, #0x58]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D878C: .word 0x00010200
+ thumb_func_end MOD67_021D873C
+
+ thumb_func_start MOD67_021D8790
+MOD67_021D8790: ; 0x021D8790
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r5, #0x50]
+ str r1, [sp, #0x10]
+ add r4, r2, #0
+ mov r1, #0x14
+ add r6, r3, #0
+ bl FUN_0200A914
+ add r7, r0, #0
+ ldrh r2, [r4, #4]
+ ldr r0, [r5, #0x54]
+ mov r1, #0
+ bl FUN_0200B10C
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ lsl r0, r6, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D87E0 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r2, [r5, #0x58]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D87E0: .word 0x00010200
+ thumb_func_end MOD67_021D8790
+
+ thumb_func_start MOD67_021D87E4
+MOD67_021D87E4: ; 0x021D87E4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r5, #0x50]
+ str r1, [sp, #0x10]
+ add r4, r2, #0
+ mov r1, #0x15
+ add r6, r3, #0
+ bl FUN_0200A914
+ add r7, r0, #0
+ ldrh r0, [r4, #2]
+ bl FUN_02034824
+ add r2, r0, #0
+ ldr r0, [r5, #0x54]
+ mov r1, #0
+ bl FUN_0200AFF4
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ lsl r0, r6, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D883C ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r2, [r5, #0x58]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D883C: .word 0x00010200
+ thumb_func_end MOD67_021D87E4
+
+ thumb_func_start MOD67_021D8840
+MOD67_021D8840: ; 0x021D8840
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ ldrh r4, [r2, #2]
+ add r5, r0, #0
+ add r6, r3, #0
+ str r1, [sp, #0x10]
+ cmp r4, #0x2f
+ beq _021D8858
+ cmp r4, #0x40
+ beq _021D8858
+ cmp r4, #0x31
+ bne _021D8864
+_021D8858:
+ ldr r0, [r5, #0x50]
+ mov r1, #0x17
+ bl FUN_0200A914
+ add r7, r0, #0
+ b _021D886E
+_021D8864:
+ ldr r0, [r5, #0x50]
+ mov r1, #0x16
+ bl FUN_0200A914
+ add r7, r0, #0
+_021D886E:
+ ldr r0, [r5, #0x54]
+ mov r1, #0
+ add r2, r4, #0
+ bl FUN_0200AFF4
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ lsl r0, r6, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D88A8 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r2, [r5, #0x58]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D88A8: .word 0x00010200
+ thumb_func_end MOD67_021D8840
+
+ thumb_func_start MOD67_021D88AC
+MOD67_021D88AC: ; 0x021D88AC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldrh r0, [r2, #2]
+ add r7, r1, #0
+ add r4, r3, #0
+ str r0, [sp, #0x10]
+ bl FUN_02029960
+ cmp r0, #0
+ ldr r0, [r5, #0x50]
+ bne _021D88CC
+ mov r1, #0x17
+ bl FUN_0200A914
+ b _021D88D2
+_021D88CC:
+ mov r1, #0x18
+ bl FUN_0200A914
+_021D88D2:
+ add r6, r0, #0
+ ldr r0, [r5, #0x54]
+ ldr r2, [sp, #0x10]
+ mov r1, #0
+ bl FUN_0200AFF4
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r6, #0
+ bl FUN_0200B7B8
+ lsl r0, r4, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D8910 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r2, [r5, #0x58]
+ add r0, r7, #0
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r6, #0
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D8910: .word 0x00010200
+ thumb_func_end MOD67_021D88AC
+
+ thumb_func_start MOD67_021D8914
+MOD67_021D8914: ; 0x021D8914
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ ldr r0, [r0, #0x50]
+ add r6, r1, #0
+ add r5, r3, #0
+ mov r1, #0x19
+ bl FUN_0200A914
+ add r4, r0, #0
+ lsl r0, r5, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D894C ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r2, r4, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021D894C: .word 0x00010200
+ thumb_func_end MOD67_021D8914
+
+ thumb_func_start MOD67_021D8950
+MOD67_021D8950: ; 0x021D8950
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ ldr r0, [r0, #0x50]
+ add r6, r1, #0
+ add r5, r3, #0
+ mov r1, #0x1a
+ bl FUN_0200A914
+ add r4, r0, #0
+ lsl r0, r5, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D8988 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r2, r4, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021D8988: .word 0x00010200
+ thumb_func_end MOD67_021D8950
+
+ thumb_func_start MOD67_021D898C
+MOD67_021D898C: ; 0x021D898C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r5, #0x50]
+ str r1, [sp, #0x10]
+ add r4, r2, #0
+ mov r1, #0x1d
+ add r6, r3, #0
+ bl FUN_0200A914
+ add r7, r0, #0
+ ldrh r2, [r4, #6]
+ ldr r0, [r5, #0x54]
+ mov r1, #0
+ bl FUN_0200AE38
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ lsl r0, r6, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D89DC ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r2, [r5, #0x58]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D89DC: .word 0x00010200
+ thumb_func_end MOD67_021D898C
+
+ thumb_func_start MOD67_021D89E0
+MOD67_021D89E0: ; 0x021D89E0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r5, #0x50]
+ str r1, [sp, #0x10]
+ add r4, r2, #0
+ mov r1, #0x23
+ add r6, r3, #0
+ bl FUN_0200A914
+ add r7, r0, #0
+ ldrh r0, [r4, #2]
+ bl FUN_02034824
+ add r2, r0, #0
+ ldr r0, [r5, #0x54]
+ mov r1, #0
+ bl FUN_0200AFF4
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ lsl r0, r6, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D8A38 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r2, [r5, #0x58]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D8A38: .word 0x00010200
+ thumb_func_end MOD67_021D89E0
+
+ thumb_func_start MOD67_021D8A3C
+MOD67_021D8A3C: ; 0x021D8A3C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r5, #0x50]
+ str r1, [sp, #0x10]
+ add r4, r2, #0
+ mov r1, #0x1e
+ add r6, r3, #0
+ bl FUN_0200A914
+ add r7, r0, #0
+ ldrh r0, [r4, #2]
+ bl FUN_02034824
+ add r2, r0, #0
+ ldr r0, [r5, #0x54]
+ mov r1, #0
+ bl FUN_0200AFF4
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ lsl r0, r6, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D8A94 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r2, [r5, #0x58]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D8A94: .word 0x00010200
+ thumb_func_end MOD67_021D8A3C
+
+ thumb_func_start MOD67_021D8A98
+MOD67_021D8A98: ; 0x021D8A98
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r5, #0x50]
+ str r1, [sp, #0x10]
+ add r4, r2, #0
+ mov r1, #0x1f
+ add r6, r3, #0
+ bl FUN_0200A914
+ add r7, r0, #0
+ ldrh r0, [r4, #2]
+ bl FUN_02034824
+ add r2, r0, #0
+ ldr r0, [r5, #0x54]
+ mov r1, #0
+ bl FUN_0200AFF4
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ lsl r0, r6, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D8AF0 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r2, [r5, #0x58]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D8AF0: .word 0x00010200
+ thumb_func_end MOD67_021D8A98
+
+ thumb_func_start MOD67_021D8AF4
+MOD67_021D8AF4: ; 0x021D8AF4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r5, #0x50]
+ str r1, [sp, #0x10]
+ add r4, r2, #0
+ mov r1, #0x26
+ add r6, r3, #0
+ bl FUN_0200A914
+ add r7, r0, #0
+ ldrh r0, [r4, #2]
+ bl FUN_02034824
+ add r2, r0, #0
+ ldr r0, [r5, #0x54]
+ mov r1, #0
+ bl FUN_0200AFF4
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ lsl r0, r6, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D8B4C ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r2, [r5, #0x58]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D8B4C: .word 0x00010200
+ thumb_func_end MOD67_021D8AF4
+
+ thumb_func_start MOD67_021D8B50
+MOD67_021D8B50: ; 0x021D8B50
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r5, #0x50]
+ str r1, [sp, #0x10]
+ add r4, r2, #0
+ mov r1, #0x21
+ add r6, r3, #0
+ bl FUN_0200A914
+ add r7, r0, #0
+ ldrh r0, [r4, #2]
+ bl FUN_02034824
+ add r2, r0, #0
+ ldr r0, [r5, #0x54]
+ mov r1, #0
+ bl FUN_0200AFF4
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ lsl r0, r6, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D8BA8 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r2, [r5, #0x58]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D8BA8: .word 0x00010200
+ thumb_func_end MOD67_021D8B50
+
+ thumb_func_start MOD67_021D8BAC
+MOD67_021D8BAC: ; 0x021D8BAC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r5, #0x50]
+ str r1, [sp, #0x10]
+ add r4, r2, #0
+ mov r1, #0x20
+ add r6, r3, #0
+ bl FUN_0200A914
+ add r7, r0, #0
+ ldrh r0, [r4, #2]
+ bl FUN_02034824
+ add r2, r0, #0
+ ldr r0, [r5, #0x54]
+ mov r1, #0
+ bl FUN_0200AFF4
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ lsl r0, r6, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D8C04 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r2, [r5, #0x58]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D8C04: .word 0x00010200
+ thumb_func_end MOD67_021D8BAC
+
+ thumb_func_start MOD67_021D8C08
+MOD67_021D8C08: ; 0x021D8C08
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r5, #0x50]
+ str r1, [sp, #0x10]
+ add r4, r2, #0
+ mov r1, #0x25
+ add r6, r3, #0
+ bl FUN_0200A914
+ add r7, r0, #0
+ ldrh r0, [r4, #2]
+ bl FUN_02034824
+ add r2, r0, #0
+ ldr r0, [r5, #0x54]
+ mov r1, #0
+ bl FUN_0200AFF4
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ lsl r0, r6, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D8C60 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r2, [r5, #0x58]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D8C60: .word 0x00010200
+ thumb_func_end MOD67_021D8C08
+
+ thumb_func_start MOD67_021D8C64
+MOD67_021D8C64: ; 0x021D8C64
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r5, #0x50]
+ str r1, [sp, #0x10]
+ add r4, r2, #0
+ mov r1, #0x24
+ add r6, r3, #0
+ bl FUN_0200A914
+ add r7, r0, #0
+ ldrh r0, [r4, #2]
+ bl FUN_02034824
+ add r2, r0, #0
+ ldr r0, [r5, #0x54]
+ mov r1, #0
+ bl FUN_0200AFF4
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ lsl r0, r6, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D8CBC ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r2, [r5, #0x58]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D8CBC: .word 0x00010200
+ thumb_func_end MOD67_021D8C64
+
+ thumb_func_start MOD67_021D8CC0
+MOD67_021D8CC0: ; 0x021D8CC0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r5, #0x50]
+ str r1, [sp, #0x10]
+ add r4, r2, #0
+ mov r1, #0x22
+ add r6, r3, #0
+ bl FUN_0200A914
+ add r7, r0, #0
+ ldrh r0, [r4, #2]
+ bl FUN_02034824
+ add r2, r0, #0
+ ldr r0, [r5, #0x54]
+ mov r1, #0
+ bl FUN_0200AFF4
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ lsl r0, r6, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D8D18 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r2, [r5, #0x58]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D8D18: .word 0x00010200
+ thumb_func_end MOD67_021D8CC0
+
+ thumb_func_start MOD67_021D8D1C
+MOD67_021D8D1C: ; 0x021D8D1C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r5, #0x50]
+ str r1, [sp, #0x10]
+ add r4, r2, #0
+ mov r1, #0x29
+ add r6, r3, #0
+ bl FUN_0200A914
+ add r7, r0, #0
+ ldrh r0, [r4, #2]
+ bl FUN_02034824
+ add r2, r0, #0
+ ldr r0, [r5, #0x54]
+ mov r1, #0
+ bl FUN_0200AFF4
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ lsl r0, r6, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D8D74 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r2, [r5, #0x58]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D8D74: .word 0x00010200
+ thumb_func_end MOD67_021D8D1C
+
+ thumb_func_start MOD67_021D8D78
+MOD67_021D8D78: ; 0x021D8D78
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r5, #0x50]
+ str r1, [sp, #0x10]
+ add r4, r2, #0
+ mov r1, #0x27
+ add r6, r3, #0
+ bl FUN_0200A914
+ add r7, r0, #0
+ ldrh r0, [r4, #2]
+ bl FUN_02034824
+ add r2, r0, #0
+ ldr r0, [r5, #0x54]
+ mov r1, #0
+ bl FUN_0200AFF4
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ lsl r0, r6, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D8DD0 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r2, [r5, #0x58]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D8DD0: .word 0x00010200
+ thumb_func_end MOD67_021D8D78
+
+ thumb_func_start MOD67_021D8DD4
+MOD67_021D8DD4: ; 0x021D8DD4
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ ldr r0, [r0, #0x50]
+ add r6, r1, #0
+ add r5, r3, #0
+ mov r1, #0x28
+ bl FUN_0200A914
+ add r4, r0, #0
+ lsl r0, r5, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D8E0C ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r2, r4, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021D8E0C: .word 0x00010200
+ thumb_func_end MOD67_021D8DD4
+
+ thumb_func_start MOD67_021D8E10
+MOD67_021D8E10: ; 0x021D8E10
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ ldr r0, [r0, #0x50]
+ add r6, r1, #0
+ add r5, r3, #0
+ mov r1, #0x2a
+ bl FUN_0200A914
+ add r4, r0, #0
+ lsl r0, r5, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D8E48 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r2, r4, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021D8E48: .word 0x00010200
+ thumb_func_end MOD67_021D8E10
+
+ thumb_func_start MOD67_021D8E4C
+MOD67_021D8E4C: ; 0x021D8E4C
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ ldr r0, [r0, #0x50]
+ add r6, r1, #0
+ add r5, r3, #0
+ mov r1, #0x2b
+ bl FUN_0200A914
+ add r4, r0, #0
+ lsl r0, r5, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D8E84 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r2, r4, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021D8E84: .word 0x00010200
+ thumb_func_end MOD67_021D8E4C
+
+ thumb_func_start MOD67_021D8E88
+MOD67_021D8E88: ; 0x021D8E88
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ ldr r0, [r0, #0x50]
+ add r6, r1, #0
+ add r5, r3, #0
+ mov r1, #0x1b
+ bl FUN_0200A914
+ add r4, r0, #0
+ lsl r0, r5, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D8EC0 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r2, r4, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021D8EC0: .word 0x00010200
+ thumb_func_end MOD67_021D8E88
+
+ thumb_func_start MOD67_021D8EC4
+MOD67_021D8EC4: ; 0x021D8EC4
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ ldr r0, [r0, #0x50]
+ add r6, r1, #0
+ add r5, r3, #0
+ mov r1, #0x1c
+ bl FUN_0200A914
+ add r4, r0, #0
+ lsl r0, r5, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D8EFC ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r2, r4, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021D8EFC: .word 0x00010200
+ thumb_func_end MOD67_021D8EC4
+
+ thumb_func_start MOD67_021D8F00
+MOD67_021D8F00: ; 0x021D8F00
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ add r4, r2, #0
+ str r3, [sp, #0xc]
+ mov r0, #0x2a
+ add r7, r1, #0
+ bl FUN_020669C0
+ str r4, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ add r6, r0, #0
+ add r1, r7, #0
+ mov r2, #1
+ mov r3, #0x20
+ bl FUN_02066DD4
+ add r0, r6, #0
+ bl FUN_020690E4
+ add r2, r0, #0
+ ldr r0, [r5, #0x54]
+ ldr r1, [sp, #0xc]
+ bl FUN_0200AC60
+ add r0, r6, #0
+ bl FUN_02016A18
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD67_021D8F00
+
+ thumb_func_start MOD67_021D8F40
+MOD67_021D8F40: ; 0x021D8F40
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r4, r2, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #1]
+ add r7, r1, #0
+ lsl r1, r0, #0x1e
+ lsr r1, r1, #0x1e
+ beq _021D8F58
+ cmp r1, #1
+ beq _021D8F64
+ b _021D8F70
+_021D8F58:
+ ldr r0, [r5, #0x50]
+ mov r1, #0x2c
+ bl FUN_0200A914
+ add r6, r0, #0
+ b _021D8F9A
+_021D8F64:
+ ldr r0, [r5, #0x50]
+ mov r1, #0x2d
+ bl FUN_0200A914
+ add r6, r0, #0
+ b _021D8F9A
+_021D8F70:
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1e
+ bne _021D8F82
+ ldr r0, [r5, #0x50]
+ mov r1, #0x2e
+ bl FUN_0200A914
+ add r6, r0, #0
+ b _021D8F9A
+_021D8F82:
+ cmp r0, #1
+ ldr r0, [r5, #0x50]
+ bne _021D8F92
+ mov r1, #0x2f
+ bl FUN_0200A914
+ add r6, r0, #0
+ b _021D8F9A
+_021D8F92:
+ mov r1, #0x2c
+ bl FUN_0200A914
+ add r6, r0, #0
+_021D8F9A:
+ ldrb r2, [r4, #1]
+ ldrh r1, [r4, #2]
+ add r0, r5, #0
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x1e
+ mov r3, #0
+ bl MOD67_021D8F00
+ ldrb r2, [r4, #1]
+ ldr r0, [r5, #0x54]
+ mov r1, #1
+ lsl r2, r2, #0x1a
+ lsr r2, r2, #0x1c
+ bl FUN_0200B468
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r6, #0
+ bl FUN_0200B7B8
+ mov r0, #0x50
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D8FE8 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r2, [r5, #0x58]
+ add r0, r7, #0
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r6, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D8FE8: .word 0x00010200
+ thumb_func_end MOD67_021D8F40
+
+ thumb_func_start MOD67_021D8FEC
+MOD67_021D8FEC: ; 0x021D8FEC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r4, r2, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #1]
+ add r7, r1, #0
+ lsl r1, r0, #0x1e
+ lsr r1, r1, #0x1e
+ beq _021D9004
+ cmp r1, #1
+ beq _021D9010
+ b _021D901C
+_021D9004:
+ ldr r0, [r5, #0x50]
+ mov r1, #0x30
+ bl FUN_0200A914
+ add r6, r0, #0
+ b _021D9046
+_021D9010:
+ ldr r0, [r5, #0x50]
+ mov r1, #0x31
+ bl FUN_0200A914
+ add r6, r0, #0
+ b _021D9046
+_021D901C:
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1e
+ bne _021D902E
+ ldr r0, [r5, #0x50]
+ mov r1, #0x32
+ bl FUN_0200A914
+ add r6, r0, #0
+ b _021D9046
+_021D902E:
+ cmp r0, #1
+ ldr r0, [r5, #0x50]
+ bne _021D903E
+ mov r1, #0x33
+ bl FUN_0200A914
+ add r6, r0, #0
+ b _021D9046
+_021D903E:
+ mov r1, #0x30
+ bl FUN_0200A914
+ add r6, r0, #0
+_021D9046:
+ ldrb r2, [r4, #1]
+ ldrh r1, [r4, #2]
+ add r0, r5, #0
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x1e
+ mov r3, #0
+ bl MOD67_021D8F00
+ ldrb r2, [r4, #1]
+ ldr r0, [r5, #0x54]
+ mov r1, #1
+ lsl r2, r2, #0x1a
+ lsr r2, r2, #0x1c
+ bl FUN_0200B468
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r6, #0
+ bl FUN_0200B7B8
+ mov r0, #0x50
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D9094 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r2, [r5, #0x58]
+ add r0, r7, #0
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r6, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D9094: .word 0x00010200
+ thumb_func_end MOD67_021D8FEC
+
+ thumb_func_start MOD67_021D9098
+MOD67_021D9098: ; 0x021D9098
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #0x20
+ mov r1, #0x2a
+ add r7, r2, #0
+ str r3, [sp, #8]
+ bl FUN_020219F4
+ add r1, r6, #0
+ add r4, r0, #0
+ bl FUN_02021E28
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldr r0, [r5, #0x54]
+ ldr r1, [sp, #8]
+ add r2, r4, #0
+ add r3, r7, #0
+ bl FUN_0200ABB4
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD67_021D9098
+
+ thumb_func_start MOD67_021D90D4
+MOD67_021D90D4: ; 0x021D90D4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r4, r2, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #1]
+ str r1, [sp, #0x10]
+ add r6, r3, #0
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1c
+ beq _021D90F2
+ cmp r0, #1
+ beq _021D90FE
+ cmp r0, #2
+ beq _021D910A
+ b _021D9114
+_021D90F2:
+ ldr r0, [r5, #0x50]
+ mov r1, #0x39
+ bl FUN_0200A914
+ add r7, r0, #0
+ b _021D9114
+_021D90FE:
+ ldr r0, [r5, #0x50]
+ mov r1, #0x3a
+ bl FUN_0200A914
+ add r7, r0, #0
+ b _021D9114
+_021D910A:
+ ldr r0, [r5, #0x50]
+ mov r1, #0x3b
+ bl FUN_0200A914
+ add r7, r0, #0
+_021D9114:
+ ldrb r2, [r4, #1]
+ add r0, r5, #0
+ add r1, r4, #2
+ lsl r2, r2, #0x1b
+ lsr r2, r2, #0x1f
+ mov r3, #0
+ bl MOD67_021D9098
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ lsl r0, r6, #4
+ add r0, #0x70
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D9154 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r2, [r5, #0x58]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D9154: .word 0x00010200
+ thumb_func_end MOD67_021D90D4
+
+ thumb_func_start MOD67_021D9158
+MOD67_021D9158: ; 0x021D9158
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r4, r2, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #1]
+ str r1, [sp, #0x10]
+ add r6, r3, #0
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1c
+ beq _021D9176
+ cmp r0, #1
+ beq _021D9182
+ cmp r0, #2
+ beq _021D918E
+ b _021D9198
+_021D9176:
+ ldr r0, [r5, #0x50]
+ mov r1, #0x3c
+ bl FUN_0200A914
+ add r7, r0, #0
+ b _021D9198
+_021D9182:
+ ldr r0, [r5, #0x50]
+ mov r1, #0x3d
+ bl FUN_0200A914
+ add r7, r0, #0
+ b _021D9198
+_021D918E:
+ ldr r0, [r5, #0x50]
+ mov r1, #0x3e
+ bl FUN_0200A914
+ add r7, r0, #0
+_021D9198:
+ ldrb r2, [r4, #1]
+ add r0, r5, #0
+ add r1, r4, #2
+ lsl r2, r2, #0x1b
+ lsr r2, r2, #0x1f
+ mov r3, #0
+ bl MOD67_021D9098
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ lsl r0, r6, #4
+ add r0, #0x70
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D91D8 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r2, [r5, #0x58]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D91D8: .word 0x00010200
+ thumb_func_end MOD67_021D9158
+
+ thumb_func_start MOD67_021D91DC
+MOD67_021D91DC: ; 0x021D91DC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r4, r2, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #1]
+ str r1, [sp, #0x10]
+ add r6, r3, #0
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1c
+ beq _021D91FA
+ cmp r0, #1
+ beq _021D9206
+ cmp r0, #2
+ beq _021D9212
+ b _021D921C
+_021D91FA:
+ ldr r0, [r5, #0x50]
+ mov r1, #0x3f
+ bl FUN_0200A914
+ add r7, r0, #0
+ b _021D921C
+_021D9206:
+ ldr r0, [r5, #0x50]
+ mov r1, #0x40
+ bl FUN_0200A914
+ add r7, r0, #0
+ b _021D921C
+_021D9212:
+ ldr r0, [r5, #0x50]
+ mov r1, #0x41
+ bl FUN_0200A914
+ add r7, r0, #0
+_021D921C:
+ ldrb r2, [r4, #1]
+ add r0, r5, #0
+ add r1, r4, #2
+ lsl r2, r2, #0x1b
+ lsr r2, r2, #0x1f
+ mov r3, #0
+ bl MOD67_021D9098
+ ldrb r2, [r4, #1]
+ add r1, r4, #0
+ add r0, r5, #0
+ lsl r2, r2, #0x1a
+ add r1, #0x12
+ lsr r2, r2, #0x1f
+ mov r3, #1
+ bl MOD67_021D9098
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ lsl r0, r6, #4
+ add r0, #0x70
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D9270 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r2, [r5, #0x58]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D9270: .word 0x00010200
+ thumb_func_end MOD67_021D91DC
+
+ thumb_func_start MOD67_021D9274
+MOD67_021D9274: ; 0x021D9274
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r4, r2, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #1]
+ str r1, [sp, #0x10]
+ add r6, r3, #0
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1c
+ beq _021D9292
+ cmp r0, #1
+ beq _021D929E
+ cmp r0, #2
+ beq _021D92AA
+ b _021D92B4
+_021D9292:
+ ldr r0, [r5, #0x50]
+ mov r1, #0x42
+ bl FUN_0200A914
+ add r7, r0, #0
+ b _021D92B4
+_021D929E:
+ ldr r0, [r5, #0x50]
+ mov r1, #0x43
+ bl FUN_0200A914
+ add r7, r0, #0
+ b _021D92B4
+_021D92AA:
+ ldr r0, [r5, #0x50]
+ mov r1, #0x44
+ bl FUN_0200A914
+ add r7, r0, #0
+_021D92B4:
+ ldrb r2, [r4, #1]
+ add r0, r5, #0
+ add r1, r4, #2
+ lsl r2, r2, #0x1b
+ lsr r2, r2, #0x1f
+ mov r3, #0
+ bl MOD67_021D9098
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ lsl r0, r6, #4
+ add r0, #0x70
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D92F4 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r2, [r5, #0x58]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D92F4: .word 0x00010200
+ thumb_func_end MOD67_021D9274
+
+ thumb_func_start MOD67_021D92F8
+MOD67_021D92F8: ; 0x021D92F8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r4, r2, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #1]
+ str r1, [sp, #0x10]
+ add r6, r3, #0
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1c
+ beq _021D9316
+ cmp r0, #1
+ beq _021D9322
+ cmp r0, #2
+ beq _021D932E
+ b _021D9338
+_021D9316:
+ ldr r0, [r5, #0x50]
+ mov r1, #0x45
+ bl FUN_0200A914
+ add r7, r0, #0
+ b _021D9338
+_021D9322:
+ ldr r0, [r5, #0x50]
+ mov r1, #0x46
+ bl FUN_0200A914
+ add r7, r0, #0
+ b _021D9338
+_021D932E:
+ ldr r0, [r5, #0x50]
+ mov r1, #0x47
+ bl FUN_0200A914
+ add r7, r0, #0
+_021D9338:
+ ldrb r2, [r4, #1]
+ add r0, r5, #0
+ add r1, r4, #2
+ lsl r2, r2, #0x1b
+ lsr r2, r2, #0x1f
+ mov r3, #0
+ bl MOD67_021D9098
+ ldrb r2, [r4, #1]
+ add r1, r4, #0
+ add r0, r5, #0
+ lsl r2, r2, #0x1a
+ add r1, #0x12
+ lsr r2, r2, #0x1f
+ mov r3, #1
+ bl MOD67_021D9098
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ lsl r0, r6, #4
+ add r0, #0x70
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D938C ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r2, [r5, #0x58]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D938C: .word 0x00010200
+ thumb_func_end MOD67_021D92F8
+
+ thumb_func_start MOD67_021D9390
+MOD67_021D9390: ; 0x021D9390
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r5, #0x50]
+ str r1, [sp, #0x10]
+ add r4, r2, #0
+ mov r1, #0x48
+ add r6, r3, #0
+ bl FUN_0200A914
+ ldrb r2, [r4, #1]
+ add r7, r0, #0
+ add r0, r5, #0
+ lsl r2, r2, #0x1b
+ add r1, r4, #2
+ lsr r2, r2, #0x1f
+ mov r3, #0
+ bl MOD67_021D9098
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ lsl r0, r6, #4
+ add r0, #0x70
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D93E8 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r2, [r5, #0x58]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D93E8: .word 0x00010200
+ thumb_func_end MOD67_021D9390
+
+ thumb_func_start MOD67_021D93EC
+MOD67_021D93EC: ; 0x021D93EC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r5, #0x50]
+ str r1, [sp, #0x10]
+ add r4, r2, #0
+ mov r1, #0x49
+ add r6, r3, #0
+ bl FUN_0200A914
+ ldrb r2, [r4, #1]
+ add r7, r0, #0
+ add r0, r5, #0
+ lsl r2, r2, #0x1b
+ add r1, r4, #2
+ lsr r2, r2, #0x1f
+ mov r3, #0
+ bl MOD67_021D9098
+ ldrb r2, [r4, #1]
+ add r1, r4, #0
+ add r0, r5, #0
+ lsl r2, r2, #0x18
+ add r1, #0x22
+ lsr r2, r2, #0x1e
+ mov r3, #1
+ bl MOD67_021D9098
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ lsl r0, r6, #4
+ add r0, #0x70
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D9454 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r2, [r5, #0x58]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D9454: .word 0x00010200
+ thumb_func_end MOD67_021D93EC
+
+ thumb_func_start MOD67_021D9458
+MOD67_021D9458: ; 0x021D9458
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ ldr r0, [r0, #0x50]
+ add r6, r1, #0
+ add r5, r3, #0
+ mov r1, #0x4a
+ bl FUN_0200A914
+ add r4, r0, #0
+ lsl r0, r5, #4
+ add r0, #0x70
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D9490 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r2, r4, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021D9490: .word 0x00010200
+ thumb_func_end MOD67_021D9458
+
+ thumb_func_start MOD67_021D9494
+MOD67_021D9494: ; 0x021D9494
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r5, #0x50]
+ str r1, [sp, #0x10]
+ add r4, r2, #0
+ mov r1, #0x4b
+ add r6, r3, #0
+ bl FUN_0200A914
+ ldrb r2, [r4, #1]
+ add r1, r4, #0
+ add r7, r0, #0
+ lsl r2, r2, #0x18
+ add r0, r5, #0
+ add r1, #0x22
+ lsr r2, r2, #0x1e
+ mov r3, #0
+ bl MOD67_021D9098
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ lsl r0, r6, #4
+ add r0, #0x70
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D94EC ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r2, [r5, #0x58]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D94EC: .word 0x00010200
+ thumb_func_end MOD67_021D9494
+
+ thumb_func_start MOD67_021D94F0
+MOD67_021D94F0: ; 0x021D94F0
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ ldr r0, [r0, #0x50]
+ add r6, r1, #0
+ add r5, r3, #0
+ mov r1, #0x4c
+ bl FUN_0200A914
+ add r4, r0, #0
+ lsl r0, r5, #4
+ add r0, #0x70
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D9528 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r2, r4, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021D9528: .word 0x00010200
+ thumb_func_end MOD67_021D94F0
+
+ thumb_func_start MOD67_021D952C
+MOD67_021D952C: ; 0x021D952C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r4, r2, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #1]
+ str r1, [sp, #0x10]
+ add r6, r3, #0
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1c
+ beq _021D954A
+ cmp r0, #1
+ beq _021D9556
+ cmp r0, #2
+ beq _021D9562
+ b _021D956C
+_021D954A:
+ ldr r0, [r5, #0x50]
+ mov r1, #0x4d
+ bl FUN_0200A914
+ add r7, r0, #0
+ b _021D956C
+_021D9556:
+ ldr r0, [r5, #0x50]
+ mov r1, #0x4e
+ bl FUN_0200A914
+ add r7, r0, #0
+ b _021D956C
+_021D9562:
+ ldr r0, [r5, #0x50]
+ mov r1, #0x4f
+ bl FUN_0200A914
+ add r7, r0, #0
+_021D956C:
+ ldrb r2, [r4, #1]
+ add r0, r5, #0
+ add r1, r4, #2
+ lsl r2, r2, #0x1b
+ lsr r2, r2, #0x1f
+ mov r3, #0
+ bl MOD67_021D9098
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ lsl r0, r6, #4
+ add r0, #0x70
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D95AC ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r2, [r5, #0x58]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D95AC: .word 0x00010200
+ thumb_func_end MOD67_021D952C
+
+ thumb_func_start MOD67_021D95B0
+MOD67_021D95B0: ; 0x021D95B0
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ ldr r0, [r0, #0x50]
+ add r6, r1, #0
+ add r5, r3, #0
+ mov r1, #0x50
+ bl FUN_0200A914
+ add r4, r0, #0
+ lsl r0, r5, #4
+ add r0, #0x70
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D95E8 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r2, r4, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021D95E8: .word 0x00010200
+ thumb_func_end MOD67_021D95B0
+
+ thumb_func_start MOD67_021D95EC
+MOD67_021D95EC: ; 0x021D95EC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r5, #0x50]
+ str r1, [sp, #0x10]
+ mov r1, #0x51
+ add r4, r2, #0
+ add r6, r3, #0
+ bl FUN_0200A914
+ mov r1, #0
+ str r1, [sp]
+ mov r3, #1
+ str r3, [sp, #4]
+ ldrb r2, [r4, #1]
+ add r7, r0, #0
+ ldr r0, [r5, #0x54]
+ lsl r2, r2, #0x1c
+ lsr r2, r2, #0x1c
+ bl FUN_0200AD38
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ lsl r0, r6, #4
+ add r0, #0x70
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D9648 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r2, [r5, #0x58]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D9648: .word 0x00010200
+ thumb_func_end MOD67_021D95EC
+
+ thumb_func_start MOD67_021D964C
+MOD67_021D964C: ; 0x021D964C
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ ldr r0, [r0, #0x50]
+ add r6, r1, #0
+ add r5, r3, #0
+ mov r1, #0x52
+ bl FUN_0200A914
+ add r4, r0, #0
+ lsl r0, r5, #4
+ add r0, #0x70
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D9684 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r2, r4, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021D9684: .word 0x00010200
+ thumb_func_end MOD67_021D964C
+
+ thumb_func_start MOD67_021D9688
+MOD67_021D9688: ; 0x021D9688
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r5, #0x50]
+ str r1, [sp, #0x10]
+ add r4, r2, #0
+ mov r1, #0x53
+ add r6, r3, #0
+ bl FUN_0200A914
+ ldrb r2, [r4, #1]
+ add r7, r0, #0
+ add r0, r5, #0
+ lsl r2, r2, #0x1b
+ add r1, r4, #2
+ lsr r2, r2, #0x1f
+ mov r3, #0
+ bl MOD67_021D9098
+ ldrb r2, [r4, #1]
+ add r1, r4, #0
+ add r0, r5, #0
+ lsl r2, r2, #0x18
+ add r1, #0x22
+ lsr r2, r2, #0x1e
+ mov r3, #1
+ bl MOD67_021D9098
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ lsl r0, r6, #4
+ add r0, #0x70
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D96F0 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r2, [r5, #0x58]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D96F0: .word 0x00010200
+ thumb_func_end MOD67_021D9688
+
+ thumb_func_start MOD67_021D96F4
+MOD67_021D96F4: ; 0x021D96F4
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ ldr r0, [r0, #0x50]
+ add r6, r1, #0
+ add r5, r3, #0
+ mov r1, #0x54
+ bl FUN_0200A914
+ add r4, r0, #0
+ lsl r0, r5, #4
+ add r0, #0x70
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D972C ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r2, r4, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021D972C: .word 0x00010200
+ thumb_func_end MOD67_021D96F4
+
+ .section .rodata
+ ; 0x021D9730
+ .incbin "baserom.nds", 0x2C0E50, 0x1E8