summaryrefslogtreecommitdiff
path: root/arm9/modules
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2020-05-12 12:57:37 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2020-05-12 12:57:37 -0400
commit430a22f6d1c4cd00f8fbbf7f9066a26f26be996b (patch)
tree8797147a547a732dfb39150212531fa44b526268 /arm9/modules
parent41566d87bf34a9c0413471258aead733d7a08911 (diff)
Disassemble module 55
Diffstat (limited to 'arm9/modules')
-rw-r--r--arm9/modules/55/asm/module_55.s5594
1 files changed, 5594 insertions, 0 deletions
diff --git a/arm9/modules/55/asm/module_55.s b/arm9/modules/55/asm/module_55.s
new file mode 100644
index 00000000..46173b3f
--- /dev/null
+++ b/arm9/modules/55/asm/module_55.s
@@ -0,0 +1,5594 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD55_021D74E0
+MOD55_021D74E0: ; 0x021D74E0
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD55_021D7BF0
+ add r0, r4, #0
+ bl MOD55_021D7C20
+ add r0, r4, #0
+ bl MOD55_021D7DA0
+ mov r0, #0x34
+ bl FUN_02053708
+ mov r1, #0xeb
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD55_021D74E0
+
+ thumb_func_start MOD55_021D7504
+MOD55_021D7504: ; 0x021D7504
+ push {r4, 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 r2, #1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2]
+ ldr r0, _021D7560 ; =0xFFFFE0FF
+ and r1, r0
+ str r1, [r2]
+ ldr r2, _021D7564 ; =0x04001000
+ ldr r1, [r2]
+ and r0, r1
+ str r0, [r2]
+ mov r0, #4
+ mov r1, #8
+ bl FUN_0201669C
+ mov r0, #0x34
+ bl FUN_02016B94
+ str r0, [r4, #4]
+ bl MOD55_021D780C
+ ldr r0, [r4, #4]
+ bl MOD55_021D781C
+ add r0, r4, #0
+ bl MOD55_021D7AE0
+ ldr r0, _021D7568 ; =MOD55_021D77D0
+ add r1, r4, #0
+ bl FUN_02015F10
+ add r0, r4, #0
+ bl MOD55_021D74E0
+ pop {r4, pc}
+ .align 2, 0
+_021D7560: .word 0xFFFFE0FF
+_021D7564: .word 0x04001000
+_021D7568: .word MOD55_021D77D0
+ thumb_func_end MOD55_021D7504
+
+ thumb_func_start MOD55_021D756C
+MOD55_021D756C: ; 0x021D756C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ ldr r1, [r5]
+ add r6, r0, #0
+ cmp r1, #0
+ beq _021D7580
+ cmp r1, #1
+ beq _021D75FC
+ b _021D760A
+_021D7580:
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_0200E3A0
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0200E3A0
+ mov r0, #0
+ bl MOD55_021DA27C
+ mov r2, #1
+ mov r0, #3
+ mov r1, #0x34
+ lsl r2, r2, #0x12
+ bl FUN_0201681C
+ ldr r1, _021D7610 ; =0x0000041C
+ add r0, r6, #0
+ mov r2, #0x34
+ bl FUN_02006268
+ ldr r2, _021D7610 ; =0x0000041C
+ mov r1, #0
+ add r4, r0, #0
+ bl MI_CpuFill8
+ add r0, r6, #0
+ bl FUN_0200628C
+ str r0, [r4, #8]
+ add r0, r4, #0
+ bl MOD55_021D7994
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x34
+ str r0, [sp, #8]
+ mov r0, #0
+ mov r1, #0x11
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ add r0, r4, #0
+ bl MOD55_021D7504
+ add r0, r4, #0
+ bl MOD55_021D7EE4
+ add r0, r4, #0
+ bl MOD55_021D8044
+ mov r0, #1
+ bl MOD55_021DA27C
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D760A
+_021D75FC:
+ bl FUN_02006278
+ mov r0, #0
+ str r0, [r5]
+ add sp, #0xc
+ mov r0, #1
+ pop {r3, r4, r5, r6, pc}
+_021D760A:
+ mov r0, #0
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_021D7610: .word 0x0000041C
+ thumb_func_end MOD55_021D756C
+
+ thumb_func_start MOD55_021D7614
+MOD55_021D7614: ; 0x021D7614
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ ldr r1, [r5]
+ add r6, r0, #0
+ cmp r1, #0
+ beq _021D7628
+ cmp r1, #1
+ beq _021D76A4
+ b _021D76B2
+_021D7628:
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_0200E3A0
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0200E3A0
+ mov r2, #1
+ mov r0, #3
+ mov r1, #0x34
+ lsl r2, r2, #0x12
+ bl FUN_0201681C
+ ldr r1, _021D76B8 ; =0x0000041C
+ add r0, r6, #0
+ mov r2, #0x34
+ bl FUN_02006268
+ ldr r2, _021D76B8 ; =0x0000041C
+ mov r1, #0
+ add r4, r0, #0
+ bl MI_CpuFill8
+ add r0, r6, #0
+ bl FUN_0200628C
+ str r0, [r4, #8]
+ add r0, r4, #0
+ bl MOD55_021D7994
+ mov r0, #0
+ bl MOD55_021DA27C
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x34
+ str r0, [sp, #8]
+ mov r0, #0
+ mov r1, #0x11
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ add r0, r4, #0
+ bl MOD55_021D7504
+ add r0, r4, #0
+ bl MOD55_021D7EE4
+ add r0, r4, #0
+ bl MOD55_021D8044
+ mov r0, #1
+ bl MOD55_021DA27C
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D76B2
+_021D76A4:
+ bl FUN_02006278
+ mov r0, #0
+ str r0, [r5]
+ add sp, #0xc
+ mov r0, #1
+ pop {r3, r4, r5, r6, pc}
+_021D76B2:
+ mov r0, #0
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_021D76B8: .word 0x0000041C
+ thumb_func_end MOD55_021D7614
+
+ thumb_func_start MOD55_021D76BC
+MOD55_021D76BC: ; 0x021D76BC
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ bl FUN_02006278
+ ldr r1, [r5]
+ add r4, r0, #0
+ cmp r1, #0
+ beq _021D76D6
+ cmp r1, #1
+ beq _021D76E4
+ cmp r1, #2
+ beq _021D76FA
+ b _021D770C
+_021D76D6:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D770C
+ mov r0, #1
+ str r0, [r5]
+ b _021D770C
+_021D76E4:
+ mov r2, #0x3b
+ lsl r2, r2, #4
+ ldr r2, [r4, r2]
+ lsl r3, r2, #2
+ ldr r2, _021D771C ; =0x021DA4A0
+ ldr r2, [r2, r3]
+ cmp r2, #0
+ beq _021D770C
+ blx r2
+ str r0, [r5]
+ b _021D770C
+_021D76FA:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D770C
+ mov r0, #0
+ bl MOD55_021DA27C
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021D770C:
+ add r4, #0xec
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _021D7718
+ bl FUN_0201FDEC
+_021D7718:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D771C: .word 0x021DA4A0
+ thumb_func_end MOD55_021D76BC
+
+ thumb_func_start MOD55_021D7720
+MOD55_021D7720: ; 0x021D7720
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ mov r0, #0x8e
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ bl FUN_02009C0C
+ mov r0, #0x8a
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ bl FUN_02009C0C
+ mov r0, #0x8f
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ bl FUN_02009E04
+ mov r0, #0x8b
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ bl FUN_02009E04
+ mov r7, #0x86
+ mov r4, #0
+ add r5, r6, #0
+ lsl r7, r7, #2
+_021D7754:
+ ldr r0, [r5, r7]
+ bl FUN_02008E2C
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _021D7754
+ add r0, r6, #0
+ add r0, #0xec
+ ldr r0, [r0]
+ bl FUN_0201FD58
+ add r0, r6, #0
+ mov r1, #0
+ add r0, #0xec
+ str r1, [r0]
+ bl FUN_02009FA0
+ bl FUN_0201D12C
+ bl FUN_0201E08C
+ mov r0, #0xeb
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ bl FUN_02016A18
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD55_021D7720
+
+ thumb_func_start MOD55_021D778C
+MOD55_021D778C: ; 0x021D778C
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ add r0, r4, #0
+ bl MOD55_021D7720
+ add r0, r4, #0
+ bl MOD55_021D8140
+ ldr r0, [r4, #4]
+ bl MOD55_021D7AA4
+ pop {r4, pc}
+ thumb_func_end MOD55_021D778C
+
+ thumb_func_start MOD55_021D77AC
+MOD55_021D77AC: ; 0x021D77AC
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ bl MOD55_021D778C
+ add r0, r4, #0
+ bl MOD55_021D7A38
+ add r0, r5, #0
+ bl FUN_0200627C
+ mov r0, #0x34
+ bl FUN_020168D0
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD55_021D77AC
+
+ thumb_func_start MOD55_021D77D0
+MOD55_021D77D0: ; 0x021D77D0
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0xe0
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _021D77E6
+ add r0, r4, #0
+ add r0, #0xdc
+ ldr r0, [r0]
+ bl FUN_020081C4
+_021D77E6:
+ ldr r0, [r4, #4]
+ bl FUN_0201AB60
+ bl FUN_0201C30C
+ bl FUN_02009F80
+ ldr r3, _021D7804 ; =0x027E0000
+ ldr r1, _021D7808 ; =0x00003FF8
+ mov r0, #1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ pop {r4, pc}
+ nop
+_021D7804: .word 0x027E0000
+_021D7808: .word 0x00003FF8
+ thumb_func_end MOD55_021D77D0
+
+ thumb_func_start MOD55_021D780C
+MOD55_021D780C: ; 0x021D780C
+ ldr r3, _021D7814 ; =0x0201E66D
+ ldr r0, _021D7818 ; =0x021DA458
+ bx r3
+ nop
+_021D7814: .word 0x0201E66D
+_021D7818: .word 0x021DA458
+ thumb_func_end MOD55_021D780C
+
+ thumb_func_start MOD55_021D781C
+MOD55_021D781C: ; 0x021D781C
+ push {r4, r5, lr}
+ sub sp, #0x9c
+ ldr r5, _021D7974 ; =0x021DA2C8
+ add r3, sp, #0x8c
+ 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, _021D7978 ; =0x021DA34C
+ add r3, sp, #0x70
+ 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
+ mov r0, #0
+ mov r1, #0x20
+ add r2, r0, #0
+ mov r3, #0x34
+ bl FUN_02017F18
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_02018744
+ ldr r5, _021D797C ; =0x021DA368
+ 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, #1
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #1
+ mov r1, #0x20
+ mov r2, #0
+ mov r3, #0x34
+ bl FUN_02017F18
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_02018744
+ ldr r5, _021D7980 ; =0x021DA384
+ 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, #2
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #2
+ mov r1, #0x20
+ mov r2, #0
+ mov r3, #0x34
+ bl FUN_02017F18
+ add r0, r4, #0
+ mov r1, #2
+ bl FUN_02018744
+ ldr r5, _021D7984 ; =0x021DA3A0
+ 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, #3
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #3
+ mov r1, #0x20
+ mov r2, #0
+ mov r3, #0x34
+ bl FUN_02017F18
+ add r0, r4, #0
+ mov r1, #3
+ bl FUN_02018744
+ ldr r5, _021D7988 ; =0x021DA3BC
+ 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, #4
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #4
+ bl FUN_02018744
+ mov r0, #0
+ mov r1, #0x20
+ add r2, r0, #0
+ mov r3, #0x34
+ bl FUN_02017F18
+ mov r0, #4
+ mov r1, #0x20
+ mov r2, #0
+ mov r3, #0x34
+ bl FUN_02017F18
+ mov r0, #0
+ mov r1, #3
+ bl FUN_020178BC
+ mov r0, #1
+ mov r1, #2
+ bl FUN_020178BC
+ mov r0, #3
+ mov r1, #1
+ bl FUN_020178BC
+ mov r0, #2
+ mov r1, #0
+ bl FUN_020178BC
+ ldr r0, _021D798C ; =0x04000050
+ mov r1, #0
+ strh r1, [r0]
+ ldr r0, _021D7990 ; =0x04001050
+ strh r1, [r0]
+ add sp, #0x9c
+ pop {r4, r5, pc}
+ .align 2, 0
+_021D7974: .word 0x021DA2C8
+_021D7978: .word 0x021DA34C
+_021D797C: .word 0x021DA368
+_021D7980: .word 0x021DA384
+_021D7984: .word 0x021DA3A0
+_021D7988: .word 0x021DA3BC
+_021D798C: .word 0x04000050
+_021D7990: .word 0x04001050
+ thumb_func_end MOD55_021D781C
+
+ thumb_func_start MOD55_021D7994
+MOD55_021D7994: ; 0x021D7994
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ mov r0, #0x34
+ bl FUN_0200AA80
+ str r0, [r6, #0xc]
+ ldr r2, _021D7A34 ; =0x00000251
+ mov r0, #0
+ mov r1, #0x1a
+ mov r3, #0x34
+ bl FUN_0200A86C
+ str r0, [r6, #0x10]
+ mov r4, #0
+ add r5, r6, #0
+ mov r7, #0x10
+_021D79B4:
+ add r0, r7, #0
+ mov r1, #0x34
+ bl FUN_020219F4
+ str r0, [r5, #0x38]
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0x20
+ blt _021D79B4
+ mov r0, #0x10
+ mov r1, #0x34
+ bl FUN_020219F4
+ add r1, r6, #0
+ add r1, #0xd4
+ str r0, [r1]
+ mov r0, #0x1a
+ mov r1, #0x34
+ bl FUN_020219F4
+ add r1, r6, #0
+ add r1, #0xd8
+ str r0, [r1]
+ mov r0, #0xb4
+ mov r1, #0x34
+ bl FUN_020219F4
+ add r1, r6, #0
+ add r1, #0xbc
+ str r0, [r1]
+ mov r5, #0
+ add r4, r6, #0
+ mov r7, #0xb4
+_021D79F6:
+ add r0, r7, #0
+ mov r1, #0x34
+ bl FUN_020219F4
+ add r1, r4, #0
+ add r1, #0xc4
+ add r5, r5, #1
+ add r4, r4, #4
+ str r0, [r1]
+ cmp r5, #4
+ blt _021D79F6
+ mov r0, #0xb4
+ mov r1, #0x34
+ bl FUN_020219F4
+ add r1, r6, #0
+ add r1, #0xb8
+ str r0, [r1]
+ mov r0, #0x28
+ mov r1, #0x34
+ bl FUN_020219F4
+ add r1, r6, #0
+ add r1, #0xc0
+ str r0, [r1]
+ mov r0, #0x3b
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r6, r0]
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D7A34: .word 0x00000251
+ thumb_func_end MOD55_021D7994
+
+ thumb_func_start MOD55_021D7A38
+MOD55_021D7A38: ; 0x021D7A38
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ ldr r0, [r6, #0x10]
+ bl FUN_0200A8B8
+ ldr r0, [r6, #0xc]
+ bl FUN_0200AB18
+ mov r4, #0
+ add r5, r6, #0
+_021D7A4C:
+ ldr r0, [r5, #0x38]
+ bl FUN_02021A20
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0x20
+ blt _021D7A4C
+ add r0, r6, #0
+ add r0, #0xb8
+ ldr r0, [r0]
+ bl FUN_02021A20
+ add r0, r6, #0
+ add r0, #0xbc
+ ldr r0, [r0]
+ bl FUN_02021A20
+ add r0, r6, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ bl FUN_02021A20
+ mov r5, #0
+ add r4, r6, #0
+_021D7A7C:
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ bl FUN_02021A20
+ add r5, r5, #1
+ add r4, r4, #4
+ cmp r5, #4
+ blt _021D7A7C
+ add r0, r6, #0
+ add r0, #0xd4
+ ldr r0, [r0]
+ bl FUN_02021A20
+ add r6, #0xd8
+ ldr r0, [r6]
+ bl FUN_02021A20
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD55_021D7A38
+
+ thumb_func_start MOD55_021D7AA4
+MOD55_021D7AA4: ; 0x021D7AA4
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #5
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #4
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #3
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #2
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_020178A0
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD55_021D7AA4
+
+ thumb_func_start MOD55_021D7AE0
+MOD55_021D7AE0: ; 0x021D7AE0
+ push {r4, r5, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r4, [r5, #4]
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #0x34
+ str r0, [sp, #4]
+ mov r0, #0x59
+ mov r1, #3
+ add r3, r2, #0
+ bl FUN_02006930
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0x34
+ str r0, [sp, #4]
+ mov r0, #0x59
+ mov r1, #3
+ mov r2, #4
+ bl FUN_02006930
+ mov r1, #0x1a
+ mov r0, #0
+ lsl r1, r1, #4
+ mov r2, #0x34
+ bl FUN_02002EEC
+ mov r1, #6
+ mov r0, #0
+ lsl r1, r1, #6
+ mov r2, #0x34
+ bl FUN_02002EEC
+ ldr r1, _021D7BE4 ; =0x000052D8
+ add r0, sp, #0x10
+ strh r1, [r0]
+ mov r1, #0x6f
+ add r0, sp, #0x10
+ lsl r1, r1, #2
+ mov r2, #2
+ bl GX_LoadBGPltt
+ mov r3, #0
+ str r3, [sp]
+ str r3, [sp, #4]
+ str r3, [sp, #8]
+ mov r0, #0x34
+ str r0, [sp, #0xc]
+ mov r0, #0x59
+ mov r1, #2
+ add r2, r4, #0
+ bl FUN_0200687C
+ mov r3, #0
+ str r3, [sp]
+ str r3, [sp, #4]
+ str r3, [sp, #8]
+ mov r0, #0x34
+ str r0, [sp, #0xc]
+ mov r0, #0x59
+ mov r1, #8
+ add r2, r4, #0
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x34
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0x59
+ mov r1, #4
+ mov r3, #1
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x34
+ str r0, [sp, #0xc]
+ mov r0, #0x59
+ mov r1, #0xa
+ add r2, r4, #0
+ mov r3, #4
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x34
+ str r0, [sp, #0xc]
+ mov r0, #0x59
+ mov r1, #0xb
+ add r2, r4, #0
+ mov r3, #4
+ bl FUN_020068C8
+ ldr r0, [r5, #8]
+ bl LoadPlayerDataAddress
+ bl FUN_02025084
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #0x34
+ str r0, [sp, #4]
+ ldr r2, _021D7BE8 ; =0x000001E2
+ add r0, r4, #0
+ mov r1, #2
+ mov r3, #0xa
+ bl FUN_0200CD68
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x34
+ str r0, [sp, #4]
+ ldr r2, _021D7BEC ; =0x000001D9
+ add r0, r4, #0
+ mov r1, #2
+ mov r3, #0xb
+ bl FUN_0200CB00
+ add sp, #0x14
+ pop {r4, r5, pc}
+ nop
+_021D7BE4: .word 0x000052D8
+_021D7BE8: .word 0x000001E2
+_021D7BEC: .word 0x000001D9
+ thumb_func_end MOD55_021D7AE0
+
+ thumb_func_start MOD55_021D7BF0
+MOD55_021D7BF0: ; 0x021D7BF0
+ push {r4, lr}
+ sub sp, #0x10
+ ldr r4, _021D7C1C ; =0x021DA2E8
+ add r3, sp, #0
+ add r2, r3, #0
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ add r0, r2, #0
+ bl FUN_0201D040
+ mov r0, #0x14
+ mov r1, #0x34
+ bl FUN_0201E00C
+ bl FUN_0201D168
+ bl FUN_0201E0BC
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_021D7C1C: .word 0x021DA2E8
+ thumb_func_end MOD55_021D7BF0
+
+ thumb_func_start MOD55_021D7C20
+MOD55_021D7C20: ; 0x021D7C20
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ bl FUN_020B0FC0
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #0x7e
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ mov r3, #0x20
+ str r3, [sp, #0xc]
+ mov r2, #0x34
+ str r2, [sp, #0x10]
+ add r2, r0, #0
+ bl FUN_02009EAC
+ add r1, r5, #0
+ mov r0, #0x1e
+ add r1, #0xf0
+ mov r2, #0x34
+ bl FUN_02008C9C
+ add r1, r5, #0
+ add r1, #0xec
+ str r0, [r1]
+ add r0, r5, #0
+ mov r2, #1
+ add r0, #0xf0
+ mov r1, #0
+ lsl r2, r2, #0x14
+ bl FUN_02008D24
+ mov r7, #0x86
+ mov r6, #0
+ add r4, r5, #0
+ lsl r7, r7, #2
+_021D7C6A:
+ mov r0, #2
+ add r1, r6, #0
+ mov r2, #0x34
+ bl FUN_02008DEC
+ str r0, [r4, r7]
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #4
+ blt _021D7C6A
+ mov r3, #1
+ str r3, [sp]
+ str r3, [sp, #4]
+ mov r0, #0x34
+ str r0, [sp, #8]
+ mov r0, #0x86
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x56
+ mov r2, #9
+ bl FUN_02008F34
+ mov r1, #0x8e
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x34
+ sub r1, #0x20
+ str r0, [sp, #8]
+ ldr r0, [r5, r1]
+ mov r1, #0x59
+ mov r2, #9
+ bl FUN_02008F34
+ mov r1, #0x8a
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #5
+ str r0, [sp, #8]
+ mov r0, #0x34
+ sub r1, #0xc
+ str r0, [sp, #0xc]
+ ldr r0, [r5, r1]
+ mov r1, #0x56
+ mov r2, #7
+ mov r3, #0
+ bl FUN_02008FEC
+ mov r1, #0x8f
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #5
+ str r0, [sp, #8]
+ mov r0, #0x34
+ sub r1, #0x20
+ str r0, [sp, #0xc]
+ ldr r0, [r5, r1]
+ mov r1, #0x59
+ mov r2, #3
+ bl FUN_02008FEC
+ mov r1, #0x8b
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r3, #1
+ str r3, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #0x34
+ sub r1, #0xc
+ str r0, [sp, #8]
+ ldr r0, [r5, r1]
+ mov r1, #0x56
+ mov r2, #0xa
+ bl FUN_020090AC
+ mov r1, #9
+ lsl r1, r1, #6
+ str r0, [r5, r1]
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #0x34
+ sub r1, #0x20
+ str r0, [sp, #8]
+ ldr r0, [r5, r1]
+ mov r1, #0x59
+ mov r2, #1
+ bl FUN_020090AC
+ mov r1, #0x23
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ mov r3, #1
+ str r3, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ mov r0, #0x34
+ sub r1, #0xc
+ str r0, [sp, #8]
+ ldr r0, [r5, r1]
+ mov r1, #0x56
+ mov r2, #0xb
+ bl FUN_020090AC
+ mov r1, #0x91
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ mov r0, #0x34
+ sub r1, #0x20
+ str r0, [sp, #8]
+ ldr r0, [r5, r1]
+ mov r1, #0x59
+ add r3, r2, #0
+ bl FUN_020090AC
+ mov r1, #0x8d
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ add r0, r1, #4
+ ldr r0, [r5, r0]
+ bl FUN_02009A50
+ mov r0, #0x8a
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02009A50
+ mov r0, #0x8f
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02009CF0
+ mov r0, #0x8b
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02009CF0
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ thumb_func_end MOD55_021D7C20
+
+ thumb_func_start MOD55_021D7DA0
+MOD55_021D7DA0: ; 0x021D7DA0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x5c
+ mov r1, #0
+ add r5, r0, #0
+ str r1, [sp]
+ sub r0, r1, #1
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ mov r2, #0x86
+ str r1, [sp, #0x10]
+ lsl r2, r2, #2
+ ldr r0, [r5, r2]
+ add r3, r1, #0
+ str r0, [sp, #0x14]
+ add r0, r2, #4
+ ldr r0, [r5, r0]
+ str r0, [sp, #0x18]
+ add r0, r2, #0
+ add r0, #8
+ ldr r0, [r5, r0]
+ str r0, [sp, #0x1c]
+ add r0, r2, #0
+ add r0, #0xc
+ ldr r0, [r5, r0]
+ add r2, #0x30
+ str r0, [sp, #0x20]
+ str r1, [sp, #0x24]
+ add r0, r5, r2
+ add r2, r1, #0
+ str r1, [sp, #0x28]
+ bl FUN_02008AA4
+ mov r1, #1
+ mov r3, #0x86
+ str r1, [sp]
+ sub r0, r1, #2
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ lsl r3, r3, #2
+ ldr r2, [r5, r3]
+ str r2, [sp, #0x14]
+ add r2, r3, #4
+ ldr r2, [r5, r2]
+ str r2, [sp, #0x18]
+ add r2, r3, #0
+ add r2, #8
+ ldr r2, [r5, r2]
+ str r2, [sp, #0x1c]
+ add r2, r3, #0
+ add r2, #0xc
+ ldr r2, [r5, r2]
+ add r3, #0x54
+ str r2, [sp, #0x20]
+ str r0, [sp, #0x24]
+ str r0, [sp, #0x28]
+ add r0, r5, r3
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02008AA4
+ add r0, r5, #0
+ add r0, #0xec
+ ldr r0, [r0]
+ mov r4, #0
+ str r0, [sp, #0x2c]
+ mov r0, #0x9b
+ lsl r0, r0, #2
+ add r0, r5, r0
+ str r0, [sp, #0x30]
+ mov r0, #1
+ lsl r0, r0, #0xc
+ mov r7, #0x62
+ str r4, [sp, #0x3c]
+ str r0, [sp, #0x40]
+ str r0, [sp, #0x44]
+ str r0, [sp, #0x48]
+ add r0, sp, #0x2c
+ strh r4, [r0, #0x20]
+ mov r0, #1
+ str r0, [sp, #0x50]
+ str r0, [sp, #0x54]
+ mov r0, #0x34
+ str r0, [sp, #0x58]
+ mov r0, #0x92
+ lsl r0, r0, #2
+ lsl r7, r7, #0xc
+ add r6, r5, r0
+_021D7E56:
+ asr r0, r4, #1
+ lsr r0, r0, #0x1e
+ add r0, r4, r0
+ asr r1, r0, #2
+ mov r0, #0x78
+ mul r0, r1
+ add r0, #0x16
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x34]
+ lsr r2, r4, #0x1f
+ lsl r1, r4, #0x1e
+ sub r1, r1, r2
+ mov r0, #0x1e
+ ror r1, r0
+ add r0, r2, r1
+ lsl r0, r0, #5
+ add r0, #0x2b
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x38]
+ cmp r4, #8
+ bne _021D7E8C
+ mov r0, #6
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x34]
+ str r7, [sp, #0x38]
+ str r6, [sp, #0x30]
+ b _021D7E9A
+_021D7E8C:
+ cmp r4, #9
+ bne _021D7E9A
+ mov r0, #0xf9
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x34]
+ str r7, [sp, #0x38]
+ str r6, [sp, #0x30]
+_021D7E9A:
+ add r0, sp, #0x2c
+ bl FUN_0201FE94
+ mov r1, #0x29
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ add r0, r4, #0
+ sub r0, #8
+ cmp r0, #1
+ bhi _021D7EB8
+ add r0, r1, #0
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200BC
+_021D7EB8:
+ mov r0, #0x29
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #2
+ bl FUN_02020238
+ mov r0, #0x29
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0xa
+ blt _021D7E56
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ add sp, #0x5c
+ pop {r4, r5, r6, r7, pc}
+ thumb_func_end MOD55_021D7DA0
+
+ thumb_func_start MOD55_021D7EE4
+MOD55_021D7EE4: ; 0x021D7EE4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r5, r0, #0
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _021D7F02
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+_021D7F02:
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0xd
+ str r0, [sp, #4]
+ mov r2, #3
+ str r2, [sp, #8]
+ str r0, [sp, #0xc]
+ ldr r0, _021D8038 ; =0x00000171
+ mov r1, #0xe6
+ str r0, [sp, #0x10]
+ lsl r1, r1, #2
+ ldr r0, [r5, #4]
+ add r1, r5, r1
+ mov r3, #1
+ bl FUN_02019064
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_02019620
+ add r2, r5, #0
+ add r2, #0xc0
+ ldr r0, [r5, #0x10]
+ ldr r2, [r2]
+ mov r1, #0
+ bl FUN_0200A8E0
+ mov r0, #4
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D803C ; =0x000F0E00
+ add r2, r5, #0
+ str r0, [sp, #8]
+ mov r3, #0
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ str r3, [sp, #0xc]
+ add r2, #0xc0
+ ldr r2, [r2]
+ add r0, r5, r0
+ mov r1, #1
+ bl FUN_0201BDE0
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019220
+ mov r6, #0
+ mov r0, #0xd2
+ lsl r0, r0, #2
+ add r4, r5, r0
+ str r6, [sp, #0x18]
+ str r6, [sp, #0x14]
+ add r7, r5, #0
+_021D7F76:
+ add r0, r4, #0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _021D7F86
+ add r0, r4, #0
+ bl FUN_02019178
+_021D7F86:
+ ldr r0, [sp, #0x14]
+ ldr r1, [sp, #0x18]
+ add r0, r0, #5
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #0x15
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ ldr r0, _021D8038 ; =0x00000171
+ add r1, #0x3c
+ sub r0, r0, r1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #4]
+ add r1, r4, #0
+ mov r2, #3
+ mov r3, #7
+ bl FUN_02019064
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_02019620
+ cmp r6, #2
+ bne _021D7FF4
+ ldr r0, [r5, #8]
+ bl FUN_020238F4
+ add r2, r0, #0
+ ldr r0, [r5, #0xc]
+ mov r1, #0
+ bl FUN_0200ABC0
+ add r2, r5, #0
+ add r2, #0xb8
+ ldr r0, [r5, #0x10]
+ ldr r2, [r2]
+ add r1, r6, #1
+ bl FUN_0200A8E0
+ add r1, r7, #0
+ add r2, r5, #0
+ add r1, #0xc4
+ add r2, #0xb8
+ ldr r0, [r5, #0xc]
+ ldr r1, [r1]
+ ldr r2, [r2]
+ bl FUN_0200B7B8
+ b _021D8002
+_021D7FF4:
+ add r2, r7, #0
+ add r2, #0xc4
+ ldr r0, [r5, #0x10]
+ ldr r2, [r2]
+ add r1, r6, #1
+ bl FUN_0200A8E0
+_021D8002:
+ ldr r0, _021D8040 ; =0x00010200
+ add r1, r7, #0
+ str r0, [sp]
+ add r1, #0xc4
+ ldr r1, [r1]
+ add r0, r4, #0
+ mov r2, #0xff
+ mov r3, #0x90
+ bl MOD55_021D80F0
+ add r0, r4, #0
+ bl FUN_02019220
+ ldr r0, [sp, #0x18]
+ add r6, r6, #1
+ add r0, #0x3c
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x14]
+ add r4, #0x10
+ add r0, r0, #5
+ add r7, r7, #4
+ str r0, [sp, #0x14]
+ cmp r6, #4
+ blt _021D7F76
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D8038: .word 0x00000171
+_021D803C: .word 0x000F0E00
+_021D8040: .word 0x00010200
+ thumb_func_end MOD55_021D7EE4
+
+ thumb_func_start MOD55_021D8044
+MOD55_021D8044: ; 0x021D8044
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ ldr r1, _021D80E8 ; =0x021DA298
+ str r0, [sp]
+ ldrb r2, [r1, #8]
+ add r0, sp, #0x10
+ strb r2, [r0]
+ ldrb r2, [r1, #9]
+ strb r2, [r0, #1]
+ ldrb r2, [r1, #0xa]
+ ldrb r1, [r1, #0xb]
+ strb r2, [r0, #2]
+ strb r1, [r0, #3]
+ ldr r0, [sp]
+ mov r1, #1
+ ldr r0, [r0, #4]
+ bl FUN_0201886C
+ mov ip, r0
+ mov r1, #0xf2
+ ldr r0, [sp]
+ lsl r1, r1, #2
+ ldrb r0, [r0, r1]
+ str r0, [sp, #0xc]
+ mov r0, #0
+ str r0, [sp, #8]
+_021D8078:
+ ldr r1, [sp, #0xc]
+ ldr r0, [sp, #8]
+ cmp r1, r0
+ bne _021D8086
+ mov r3, #1
+ lsl r3, r3, #0xc
+ b _021D8088
+_021D8086:
+ mov r3, #0
+_021D8088:
+ add r1, sp, #0x10
+ ldrb r7, [r1, #1]
+ ldrb r0, [r1, #3]
+ add r0, r7, r0
+ str r0, [sp, #4]
+ cmp r7, r0
+ bge _021D80C6
+ ldrb r2, [r1]
+ ldrb r1, [r1, #2]
+ lsl r0, r7, #5
+ ldr r4, _021D80EC ; =0x00000FFF
+ add r6, r2, r0
+_021D80A0:
+ mov r0, #0
+ cmp r1, #0
+ ble _021D80BC
+ lsl r5, r6, #1
+ mov r2, ip
+ add r2, r2, r5
+_021D80AC:
+ ldrh r5, [r2]
+ add r0, r0, #1
+ and r5, r4
+ add r5, r3, r5
+ strh r5, [r2]
+ add r2, r2, #2
+ cmp r0, r1
+ blt _021D80AC
+_021D80BC:
+ ldr r0, [sp, #4]
+ add r7, r7, #1
+ add r6, #0x20
+ cmp r7, r0
+ blt _021D80A0
+_021D80C6:
+ add r0, sp, #0x10
+ ldrb r1, [r0, #1]
+ add r1, r1, #5
+ strb r1, [r0, #1]
+ ldr r0, [sp, #8]
+ add r0, r0, #1
+ str r0, [sp, #8]
+ cmp r0, #4
+ blt _021D8078
+ ldr r0, [sp]
+ mov r1, #1
+ ldr r0, [r0, #4]
+ bl FUN_02017CD0
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D80E8: .word 0x021DA298
+_021D80EC: .word 0x00000FFF
+ thumb_func_end MOD55_021D8044
+
+ thumb_func_start MOD55_021D80F0
+MOD55_021D80F0: ; 0x021D80F0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ mov r0, #0
+ add r4, r2, #0
+ add r7, r3, #0
+ add r2, r0, #0
+ add r6, r1, #0
+ bl FUN_02002E14
+ sub r1, r7, r0
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ ldr r1, [sp, #0x28]
+ asr r3, r0, #1
+ cmp r1, #0
+ bne _021D8128
+ mov r0, #1
+ str r0, [sp]
+ str r4, [sp, #4]
+ mov r1, #0
+ add r0, r5, #0
+ add r2, r6, #0
+ str r1, [sp, #8]
+ bl FUN_0201BD84
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+_021D8128:
+ mov r0, #1
+ str r0, [sp]
+ str r4, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0
+ add r0, r5, #0
+ add r2, r6, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD55_021D80F0
+
+ thumb_func_start MOD55_021D8140
+MOD55_021D8140: ; 0x021D8140
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ mov r0, #0xae
+ lsl r0, r0, #2
+ mov r4, #0
+ add r5, r6, r0
+_021D814C:
+ add r0, r5, #0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _021D815C
+ add r0, r5, #0
+ bl FUN_02019178
+_021D815C:
+ add r4, r4, #1
+ add r5, #0x10
+ cmp r4, #8
+ blt _021D814C
+ mov r0, #0xd2
+ lsl r0, r0, #2
+ mov r5, #0
+ add r4, r6, r0
+_021D816C:
+ add r0, r4, #0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _021D817C
+ add r0, r4, #0
+ bl FUN_02019178
+_021D817C:
+ add r5, r5, #1
+ add r4, #0x10
+ cmp r5, #4
+ blt _021D816C
+ mov r0, #0xce
+ lsl r0, r0, #2
+ add r0, r6, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _021D819C
+ mov r0, #0xce
+ lsl r0, r0, #2
+ add r0, r6, r0
+ bl FUN_02019178
+_021D819C:
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ add r0, r6, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _021D81B4
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ add r0, r6, r0
+ bl FUN_02019178
+_021D81B4:
+ mov r0, #0xe2
+ lsl r0, r0, #2
+ add r0, r6, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _021D81CC
+ mov r0, #0xe2
+ lsl r0, r0, #2
+ add r0, r6, r0
+ bl FUN_02019178
+_021D81CC:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD55_021D8140
+
+ thumb_func_start MOD55_021D81D0
+MOD55_021D81D0: ; 0x021D81D0
+ mov r2, #0x3b
+ mov r3, #1
+ lsl r2, r2, #4
+ str r3, [r0, r2]
+ add r0, r1, #0
+ bx lr
+ thumb_func_end MOD55_021D81D0
+
+ thumb_func_start MOD55_021D81DC
+MOD55_021D81DC: ; 0x021D81DC
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ add r5, r1, #0
+ bl FUN_0200E308
+ cmp r0, #0
+ bne _021D81EE
+ add r0, r5, #0
+ pop {r3, r4, r5, pc}
+_021D81EE:
+ ldr r2, _021D82B8 ; =0x021C48B8
+ mov r1, #1
+ ldr r0, [r2, #0x48]
+ tst r1, r0
+ beq _021D824C
+ ldr r0, _021D82BC ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #0xf2
+ lsl r0, r0, #2
+ ldrb r1, [r4, r0]
+ cmp r1, #3
+ bhi _021D82B2
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D8214: ; jump table
+ .short _021D821C - _021D8214 - 2 ; case 0
+ .short _021D8234 - _021D8214 - 2 ; case 1
+ .short _021D823C - _021D8214 - 2 ; case 2
+ .short _021D8244 - _021D8214 - 2 ; case 3
+_021D821C:
+ mov r2, #0
+ strb r2, [r4, r0]
+ add r1, r0, #3
+ strb r2, [r4, r1]
+ add r1, r0, #1
+ strb r2, [r4, r1]
+ add r1, r0, #2
+ strb r2, [r4, r1]
+ mov r1, #2
+ sub r0, #0x18
+ str r1, [r4, r0]
+ b _021D82B2
+_021D8234:
+ mov r1, #7
+ sub r0, #0x18
+ str r1, [r4, r0]
+ b _021D82B2
+_021D823C:
+ mov r1, #0x12
+ sub r0, #0x18
+ str r1, [r4, r0]
+ b _021D82B2
+_021D8244:
+ mov r1, #0x11
+ sub r0, #0x18
+ str r1, [r4, r0]
+ b _021D82B2
+_021D824C:
+ mov r1, #2
+ tst r0, r1
+ beq _021D8262
+ ldr r0, _021D82BC ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #0x3b
+ mov r1, #0x11
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ b _021D82B2
+_021D8262:
+ ldr r1, [r2, #0x4c]
+ mov r0, #0x40
+ tst r0, r1
+ beq _021D828C
+ mov r0, #0xf2
+ lsl r0, r0, #2
+ ldrb r0, [r4, r0]
+ cmp r0, #0
+ beq _021D82B2
+ ldr r0, _021D82BC ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #0xf2
+ lsl r0, r0, #2
+ ldrb r1, [r4, r0]
+ sub r1, r1, #1
+ strb r1, [r4, r0]
+ add r0, r4, #0
+ bl MOD55_021D8044
+ b _021D82B2
+_021D828C:
+ mov r0, #0x80
+ tst r0, r1
+ beq _021D82B2
+ mov r0, #0xf2
+ lsl r0, r0, #2
+ ldrb r0, [r4, r0]
+ cmp r0, #3
+ bhs _021D82B2
+ ldr r0, _021D82BC ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #0xf2
+ lsl r0, r0, #2
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ add r0, r4, #0
+ bl MOD55_021D8044
+_021D82B2:
+ add r0, r5, #0
+ pop {r3, r4, r5, pc}
+ nop
+_021D82B8: .word 0x021C48B8
+_021D82BC: .word 0x000005DC
+ thumb_func_end MOD55_021D81DC
+
+ thumb_func_start MOD55_021D82C0
+MOD55_021D82C0: ; 0x021D82C0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r7, r0, #0
+ ldr r0, [r7, #8]
+ str r1, [sp, #0xc]
+ bl FUN_020286EC
+ mov r6, #0
+ add r4, r0, #0
+ add r5, r6, #0
+_021D82D4:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl FUN_0202842C
+ cmp r0, #0
+ bne _021D82E2
+ mov r6, #1
+_021D82E2:
+ add r5, r5, #1
+ cmp r5, #0x20
+ blt _021D82D4
+ cmp r6, #0
+ beq _021D8308
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x34
+ str r0, [sp, #8]
+ mov r0, #0
+ mov r1, #0x10
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ mov r1, #8
+ b _021D8312
+_021D8308:
+ add r0, r7, #0
+ mov r1, #0x1d
+ bl MOD55_021DA0A4
+ mov r1, #0xf
+_021D8312:
+ mov r0, #0x3b
+ lsl r0, r0, #4
+ str r1, [r7, r0]
+ ldr r0, [sp, #0xc]
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD55_021D82C0
+
+ thumb_func_start MOD55_021D8320
+MOD55_021D8320: ; 0x021D8320
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D8366
+ mov r0, #0
+ bl MOD55_021DA27C
+ add r0, r5, #0
+ bl MOD55_021D778C
+ ldr r0, [r5, #8]
+ bl LoadPlayerDataAddress
+ mov r1, #7
+ str r0, [sp]
+ mov r0, #0x34
+ mov r2, #0
+ add r3, r1, #0
+ bl FUN_02077A84
+ str r0, [r5]
+ ldr r0, _021D836C ; =0x020FA5FC
+ ldr r1, [r5]
+ mov r2, #0x34
+ bl FUN_02006234
+ mov r1, #0x3d
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ mov r0, #9
+ sub r1, #0x20
+ str r0, [r5, r1]
+_021D8366:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_021D836C: .word 0x020FA5FC
+ thumb_func_end MOD55_021D8320
+
+ thumb_func_start MOD55_021D8370
+MOD55_021D8370: ; 0x021D8370
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ mov r0, #0x3d
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ add r4, r1, #0
+ bl FUN_02006290
+ cmp r0, #0
+ beq _021D83FC
+ mov r0, #0x3d
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl FUN_02006260
+ ldr r1, [r5]
+ ldr r0, [r1, #0x14]
+ cmp r0, #0
+ bne _021D83A8
+ add r0, r5, #0
+ add r0, #0xd4
+ ldr r0, [r0]
+ ldr r1, [r1, #0x18]
+ bl FUN_02021A74
+ mov r1, #0xa
+ b _021D83F0
+_021D83A8:
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_0200E3A0
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0200E3A0
+ mov r0, #0
+ bl MOD55_021DA27C
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x34
+ str r0, [sp, #8]
+ mov r0, #0
+ mov r1, #0x11
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ add r0, r5, #0
+ bl MOD55_021D7504
+ add r0, r5, #0
+ bl MOD55_021D7EE4
+ add r0, r5, #0
+ bl MOD55_021D8044
+ mov r0, #1
+ bl MOD55_021DA27C
+ mov r1, #6
+_021D83F0:
+ mov r0, #0x3b
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ ldr r0, [r5]
+ bl FUN_02077AC4
+_021D83FC:
+ add r0, r4, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD55_021D8370
+
+ thumb_func_start MOD55_021D8404
+MOD55_021D8404: ; 0x021D8404
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #8]
+ add r4, r1, #0
+ bl LoadPlayerDataAddress
+ str r0, [sp]
+ mov r0, #0x34
+ mov r1, #4
+ mov r2, #0
+ mov r3, #0xc
+ bl FUN_02077A84
+ str r0, [r5]
+ ldr r0, _021D843C ; =0x020FA5FC
+ ldr r1, [r5]
+ mov r2, #0x34
+ bl FUN_02006234
+ mov r1, #0x3d
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ mov r0, #0xb
+ sub r1, #0x20
+ str r0, [r5, r1]
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_021D843C: .word 0x020FA5FC
+ thumb_func_end MOD55_021D8404
+
+ thumb_func_start MOD55_021D8440
+MOD55_021D8440: ; 0x021D8440
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ mov r0, #0x3d
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ add r4, r1, #0
+ bl FUN_02006290
+ cmp r0, #0
+ beq _021D84C2
+ mov r0, #0x3d
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl FUN_02006260
+ add r0, r5, #0
+ ldr r1, [r5]
+ add r0, #0xd8
+ ldr r0, [r0]
+ ldr r1, [r1, #0x18]
+ bl FUN_02021A74
+ ldr r0, [r5]
+ bl FUN_02077AC4
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_0200E3A0
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0200E3A0
+ mov r0, #0
+ bl MOD55_021DA27C
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x34
+ str r0, [sp, #8]
+ mov r0, #0
+ mov r1, #0x11
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ add r0, r5, #0
+ bl MOD55_021D7504
+ add r0, r5, #0
+ bl MOD55_021D7EE4
+ add r0, r5, #0
+ bl MOD55_021D8044
+ mov r0, #1
+ bl MOD55_021DA27C
+ mov r0, #0x3b
+ mov r1, #0xc
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_021D84C2:
+ add r0, r4, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ thumb_func_end MOD55_021D8440
+
+ thumb_func_start MOD55_021D84C8
+MOD55_021D84C8: ; 0x021D84C8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ add r6, r1, #0
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D853C
+ add r0, r5, #0
+ add r0, #0xd8
+ ldr r0, [r0]
+ add r1, sp, #4
+ bl FUN_02021C38
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r7, r1, #0
+ cmp r0, #0
+ beq _021D8534
+ mov r0, #0x34
+ bl FUN_02023928
+ add r4, r0, #0
+ add r0, r5, #0
+ add r0, #0xd4
+ ldr r0, [r0]
+ bl FUN_02021F2C
+ add r1, r0, #0
+ add r0, r4, #0
+ bl FUN_0202395C
+ ldr r0, [r5, #0xc]
+ mov r1, #0
+ add r2, r4, #0
+ bl FUN_0200ABC0
+ ldr r1, [sp]
+ add r0, r5, #0
+ add r2, r7, #0
+ bl MOD55_021D93F8
+ add r0, r5, #0
+ mov r1, #0x19
+ bl MOD55_021DA0A4
+ add r0, r4, #0
+ bl FUN_02016A18
+ mov r0, #0x3b
+ mov r1, #0xd
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _021D853C
+_021D8534:
+ mov r0, #0x3b
+ mov r1, #0xf
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_021D853C:
+ add r0, r6, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD55_021D84C8
+
+ thumb_func_start MOD55_021D8544
+MOD55_021D8544: ; 0x021D8544
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r0, #0xe4
+ ldr r0, [r0]
+ add r4, r1, #0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _021D8578
+ mov r0, #0x34
+ str r0, [sp]
+ ldr r0, [r5, #4]
+ ldr r1, _021D857C ; =0x021DA2AC
+ ldr r2, _021D8580 ; =0x000001D9
+ mov r3, #0xb
+ bl FUN_02002198
+ add r1, r5, #0
+ add r1, #0xe8
+ str r0, [r1]
+ mov r0, #0x3b
+ mov r1, #0xe
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_021D8578:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D857C: .word 0x021DA2AC
+_021D8580: .word 0x000001D9
+ thumb_func_end MOD55_021D8544
+
+ thumb_func_start MOD55_021D8584
+MOD55_021D8584: ; 0x021D8584
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ add r0, #0xe8
+ str r1, [sp]
+ ldr r0, [r0]
+ mov r1, #0x34
+ bl FUN_020021AC
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _021D85A4
+ ldr r0, [sp]
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+_021D85A4:
+ cmp r0, #0
+ bne _021D866C
+ ldr r0, [r5, #8]
+ bl FUN_020286EC
+ str r0, [sp, #4]
+ mov r4, #0
+_021D85B2:
+ ldr r0, [sp, #4]
+ add r1, r4, #0
+ bl FUN_0202842C
+ cmp r0, #0
+ bne _021D8666
+ add r0, r5, #0
+ add r0, #0xd8
+ ldr r0, [r0]
+ add r1, sp, #8
+ bl FUN_02021C38
+ add r7, r0, #0
+ ldr r0, [sp, #4]
+ add r6, r1, #0
+ bl FUN_02028228
+ bl FUN_02096D68
+ eor r1, r6
+ eor r0, r7
+ orr r0, r1
+ bne _021D85E4
+ mov r0, #0
+ str r0, [sp, #8]
+_021D85E4:
+ ldr r0, [sp, #8]
+ cmp r0, #0
+ beq _021D8650
+ ldr r0, [r5, #8]
+ add r1, r4, #0
+ add r2, r7, #0
+ add r3, r6, #0
+ bl MOD55_021DA224
+ cmp r0, #0
+ bne _021D8616
+ add r2, r5, #0
+ add r2, #0xd4
+ ldr r0, [sp, #4]
+ ldr r2, [r2]
+ add r1, r4, #0
+ bl FUN_020283C0
+ ldr r0, [sp, #4]
+ add r1, r4, #0
+ mov r2, #8
+ mov r3, #2
+ bl FUN_020282E8
+ b _021D866C
+_021D8616:
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _021D8634
+ add r0, r5, #0
+ mov r1, #0x1a
+ bl MOD55_021DA0A4
+ mov r0, #0x3b
+ mov r1, #0xf
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ ldr r0, [sp]
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+_021D8634:
+ sub r1, r1, #1
+ cmp r0, r1
+ bne _021D8666
+ add r0, r5, #0
+ mov r1, #0x1e
+ bl MOD55_021DA0A4
+ mov r0, #0x3b
+ mov r1, #0xf
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ ldr r0, [sp]
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+_021D8650:
+ add r0, r5, #0
+ mov r1, #0x1a
+ bl MOD55_021DA0A4
+ mov r0, #0x3b
+ mov r1, #0xf
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ ldr r0, [sp]
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+_021D8666:
+ add r4, r4, #1
+ cmp r4, #0x20
+ blt _021D85B2
+_021D866C:
+ add r0, r5, #0
+ bl MOD55_021DA214
+ mov r0, #0x3b
+ mov r1, #6
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ ldr r0, [sp]
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ thumb_func_end MOD55_021D8584
+
+ thumb_func_start MOD55_021D8680
+MOD55_021D8680: ; 0x021D8680
+ mov r2, #0x3b
+ mov r3, #0x10
+ lsl r2, r2, #4
+ str r3, [r0, r2]
+ add r0, r1, #0
+ bx lr
+ thumb_func_end MOD55_021D8680
+
+ thumb_func_start MOD55_021D868C
+MOD55_021D868C: ; 0x021D868C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r0, #0xe4
+ ldr r0, [r0]
+ add r4, r1, #0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _021D86CA
+ ldr r0, _021D86D0 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #1
+ tst r0, r1
+ beq _021D86CA
+ mov r0, #0xce
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_0200D0E0
+ mov r0, #0xce
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019570
+ mov r0, #0x3b
+ mov r1, #6
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_021D86CA:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_021D86D0: .word 0x021C48B8
+ thumb_func_end MOD55_021D868C
+
+ thumb_func_start MOD55_021D86D4
+MOD55_021D86D4: ; 0x021D86D4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x40
+ ldr r1, _021D88C4 ; =0x021DA298
+ str r0, [sp]
+ ldrb r2, [r1]
+ add r0, sp, #0x28
+ strb r2, [r0, #0x14]
+ ldrb r2, [r1, #1]
+ strb r2, [r0, #0x15]
+ ldrb r2, [r1, #2]
+ strb r2, [r0, #0x16]
+ ldrb r2, [r1, #3]
+ strb r2, [r0, #0x17]
+ ldrb r2, [r1, #4]
+ strb r2, [r0, #0x10]
+ ldrb r2, [r1, #5]
+ strb r2, [r0, #0x11]
+ ldrb r2, [r1, #6]
+ strb r2, [r0, #0x12]
+ ldrb r1, [r1, #7]
+ strb r1, [r0, #0x13]
+ ldr r0, [sp]
+ mov r1, #1
+ ldr r0, [r0, #4]
+ bl FUN_0201886C
+ str r0, [sp, #0x24]
+ mov r1, #0xf2
+ ldr r0, [sp]
+ lsl r1, r1, #2
+ ldrb r3, [r0, r1]
+ mov r0, #0x1d
+ lsr r2, r3, #0x1f
+ lsl r1, r3, #0x1d
+ sub r1, r1, r2
+ ror r1, r0
+ add r0, r2, r1
+ str r0, [sp, #0x20]
+ lsr r0, r3, #3
+ str r0, [sp, #0xc]
+ ldr r0, [sp]
+ ldr r0, [r0, #8]
+ bl FUN_020286EC
+ ldr r1, _021D88C4 ; =0x021DA298
+ str r0, [sp, #0x18]
+ ldrh r2, [r1, #0x1c]
+ add r0, sp, #0x28
+ strh r2, [r0, #8]
+ ldrh r2, [r1, #0x1e]
+ strh r2, [r0, #0xa]
+ ldrh r2, [r1, #0x20]
+ strh r2, [r0, #0xc]
+ ldrh r2, [r1, #0x22]
+ strh r2, [r0, #0xe]
+ ldrh r2, [r1, #0xc]
+ strh r2, [r0]
+ ldrh r2, [r1, #0xe]
+ strh r2, [r0, #2]
+ ldrh r2, [r1, #0x10]
+ strh r2, [r0, #4]
+ ldrh r1, [r1, #0x12]
+ strh r1, [r0, #6]
+ mov r0, #0
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0xc]
+ lsl r1, r0, #3
+ ldr r0, [sp]
+ add r0, r0, r1
+ str r0, [sp, #0x14]
+_021D8760:
+ ldr r1, [sp, #0x14]
+ ldr r0, [sp, #0x18]
+ ldrb r1, [r1, #0x18]
+ mov r2, #8
+ sub r1, r1, #1
+ bl FUN_0202822C
+ ldr r1, [sp, #0x14]
+ ldrb r1, [r1, #0x18]
+ cmp r1, #0
+ beq _021D877E
+ cmp r0, #2
+ beq _021D877E
+ add r3, sp, #0x28
+ b _021D8780
+_021D877E:
+ add r3, sp, #0x30
+_021D8780:
+ add r1, sp, #0x28
+ ldrb r7, [r1, #0x11]
+ ldrb r0, [r1, #0x13]
+ add r0, r7, r0
+ str r0, [sp, #0x10]
+ cmp r7, r0
+ bge _021D87BE
+ ldrb r2, [r1, #0x10]
+ ldrb r4, [r1, #0x12]
+ lsl r0, r7, #5
+ add r2, r2, r0
+_021D8796:
+ add r0, r2, #0
+ mov r1, #0
+ cmp r4, #0
+ ble _021D87B4
+ ldr r5, [sp, #0x24]
+ lsl r6, r2, #1
+ add r6, r5, r6
+_021D87A4:
+ ldrh r5, [r3]
+ add r1, r1, #1
+ add r3, r3, #2
+ strh r5, [r6]
+ add r6, r6, #2
+ add r0, r0, #1
+ cmp r1, r4
+ blt _021D87A4
+_021D87B4:
+ ldr r0, [sp, #0x10]
+ add r7, r7, #1
+ add r2, #0x20
+ cmp r7, r0
+ blt _021D8796
+_021D87BE:
+ add r1, sp, #0x28
+ ldrb r0, [r1, #0x11]
+ add r0, r0, #4
+ strb r0, [r1, #0x11]
+ ldr r0, [sp, #0x1c]
+ cmp r0, #3
+ bne _021D87D4
+ mov r0, #5
+ strb r0, [r1, #0x11]
+ mov r0, #0x11
+ strb r0, [r1, #0x10]
+_021D87D4:
+ ldr r0, [sp, #0x14]
+ add r0, r0, #1
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x1c]
+ add r0, r0, #1
+ str r0, [sp, #0x1c]
+ cmp r0, #8
+ blt _021D8760
+ mov r0, #0x3f
+ mov r4, #0x17
+ mov r3, #0
+ mov r7, #0x16
+ mov r2, #2
+ lsl r0, r0, #0xa
+_021D87F0:
+ ldr r5, [sp, #0xc]
+ add r1, r4, #0
+ add r1, #0x20
+ cmp r3, r5
+ bne _021D87FE
+ add r5, r2, #0
+ b _021D8800
+_021D87FE:
+ add r5, r7, #0
+_021D8800:
+ ldr r6, [sp, #0x24]
+ lsl r1, r1, #1
+ ldrh r6, [r6, r1]
+ add r3, r3, #1
+ add r4, r4, #2
+ and r6, r0
+ add r6, r5, r6
+ ldr r5, [sp, #0x24]
+ cmp r3, #4
+ strh r6, [r5, r1]
+ blt _021D87F0
+ ldr r1, _021D88C8 ; =0x000003CB
+ ldr r0, [sp]
+ ldrb r0, [r0, r1]
+ cmp r0, #0
+ beq _021D8824
+ mov r0, #8
+ str r0, [sp, #0x20]
+_021D8824:
+ mov r0, #0
+ str r0, [sp, #8]
+_021D8828:
+ ldr r1, [sp, #0x20]
+ ldr r0, [sp, #8]
+ cmp r1, r0
+ bne _021D8836
+ mov r4, #1
+ lsl r4, r4, #0xc
+ b _021D8838
+_021D8836:
+ mov r4, #0
+_021D8838:
+ add r0, sp, #0x28
+ ldrb r1, [r0, #0x15]
+ ldrb r2, [r0, #0x17]
+ str r1, [sp, #4]
+ add r1, r1, r2
+ ldr r2, [sp, #4]
+ mov ip, r1
+ cmp r2, r1
+ bge _021D8884
+ ldrb r2, [r0, #0x14]
+ ldr r1, [sp, #4]
+ ldrb r0, [r0, #0x16]
+ lsl r1, r1, #5
+ ldr r6, _021D88CC ; =0x00000FFF
+ add r7, r2, r1
+_021D8856:
+ add r2, r7, #0
+ mov r3, #0
+ cmp r0, #0
+ ble _021D8876
+ ldr r1, [sp, #0x24]
+ lsl r5, r7, #1
+ add r1, r1, r5
+_021D8864:
+ ldrh r5, [r1]
+ add r3, r3, #1
+ add r2, r2, #1
+ and r5, r6
+ add r5, r4, r5
+ strh r5, [r1]
+ add r1, r1, #2
+ cmp r3, r0
+ blt _021D8864
+_021D8876:
+ ldr r1, [sp, #4]
+ add r7, #0x20
+ add r2, r1, #1
+ mov r1, ip
+ str r2, [sp, #4]
+ cmp r2, r1
+ blt _021D8856
+_021D8884:
+ add r1, sp, #0x28
+ ldrb r0, [r1, #0x15]
+ add r0, r0, #4
+ strb r0, [r1, #0x15]
+ ldr r0, [sp, #8]
+ cmp r0, #3
+ bne _021D889A
+ mov r0, #4
+ strb r0, [r1, #0x15]
+ mov r0, #0x10
+ strb r0, [r1, #0x14]
+_021D889A:
+ ldr r0, [sp, #8]
+ cmp r0, #7
+ bne _021D88AA
+ mov r1, #0x14
+ add r0, sp, #0x28
+ strb r1, [r0, #0x15]
+ mov r1, #9
+ strb r1, [r0, #0x14]
+_021D88AA:
+ ldr r0, [sp, #8]
+ add r0, r0, #1
+ str r0, [sp, #8]
+ cmp r0, #9
+ blt _021D8828
+ ldr r0, [sp]
+ mov r1, #1
+ ldr r0, [r0, #4]
+ bl FUN_02017CD0
+ add sp, #0x40
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D88C4: .word 0x021DA298
+_021D88C8: .word 0x000003CB
+_021D88CC: .word 0x00000FFF
+ thumb_func_end MOD55_021D86D4
+
+ thumb_func_start MOD55_021D88D0
+MOD55_021D88D0: ; 0x021D88D0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ str r0, [sp]
+ ldr r0, [r0, #8]
+ bl FUN_020286EC
+ mov r1, #0xf2
+ ldr r5, [sp]
+ add r7, r0, #0
+ lsl r1, r1, #2
+ add r0, r5, #0
+ ldrb r0, [r0, r1]
+ mov r4, #0
+ lsr r0, r0, #3
+ lsl r1, r0, #3
+ add r0, r5, #0
+ add r6, r0, r1
+_021D88F2:
+ mov r0, #0x29
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ ldrb r0, [r6, #0x18]
+ cmp r0, #0
+ beq _021D8968
+ sub r0, r0, #1
+ str r0, [sp, #4]
+ ldr r1, [sp, #4]
+ add r0, r7, #0
+ mov r2, #7
+ bl FUN_0202822C
+ str r0, [sp, #8]
+ ldr r1, [sp, #4]
+ add r0, r7, #0
+ mov r2, #8
+ bl FUN_0202822C
+ cmp r0, #2
+ beq _021D8968
+ ldr r1, [sp, #8]
+ mov r2, #0
+ bl FUN_020536D0
+ str r0, [sp, #0xc]
+ mov r0, #0xeb
+ ldr r1, [sp]
+ lsl r0, r0, #2
+ ldr r1, [r1, r0]
+ ldr r0, [sp, #0xc]
+ mov r2, #0x20
+ lsl r0, r0, #5
+ add r0, r1, r0
+ add r1, r4, #7
+ lsl r1, r1, #5
+ bl GX_LoadOBJPltt
+ mov r0, #0x29
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ add r1, r4, #7
+ bl FUN_02020248
+ mov r0, #0x29
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ ldr r1, [sp, #0xc]
+ bl FUN_02020130
+ mov r0, #0x29
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+_021D8968:
+ add r4, r4, #1
+ add r5, r5, #4
+ add r6, r6, #1
+ cmp r4, #8
+ blt _021D88F2
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD55_021D88D0
+
+ thumb_func_start MOD55_021D8978
+MOD55_021D8978: ; 0x021D8978
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x2c
+ str r0, [sp, #0x10]
+ ldr r0, [r0, #8]
+ bl FUN_020286EC
+ add r2, sp, #0x20
+ ldr r3, _021D8A24 ; =0x021DA2BC
+ str r0, [sp, #0x18]
+ ldmia r3!, {r0, r1}
+ str r2, [sp, #0x1c]
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ mov r1, #0xf2
+ str r0, [r2]
+ mov r0, #0
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x10]
+ lsl r1, r1, #2
+ ldrb r0, [r0, r1]
+ lsr r0, r0, #3
+ lsl r1, r0, #3
+ ldr r0, [sp, #0x10]
+ add r4, r0, r1
+ mov r1, #0xae
+ lsl r1, r1, #2
+ add r5, r0, r1
+_021D89AE:
+ ldrb r0, [r4, #0x18]
+ mov r7, #0
+ cmp r0, #0
+ beq _021D8A00
+ sub r6, r0, #1
+ ldr r0, [sp, #0x18]
+ add r1, r6, #0
+ bl FUN_0202842C
+ cmp r0, #0
+ beq _021D8A00
+ ldr r0, [sp, #0x18]
+ add r1, r6, #0
+ mov r2, #8
+ bl FUN_0202822C
+ add r7, r0, #0
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_02019620
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x1c]
+ lsl r1, r7, #2
+ ldr r0, [r0, r1]
+ ldr r2, [sp, #0x10]
+ str r0, [sp, #8]
+ mov r0, #0
+ lsl r3, r6, #2
+ str r0, [sp, #0xc]
+ add r2, r2, r3
+ ldr r2, [r2, #0x38]
+ add r0, r5, #0
+ mov r1, #0
+ mov r3, #1
+ bl FUN_0201BDE0
+ mov r7, #1
+_021D8A00:
+ cmp r7, #0
+ bne _021D8A0C
+ add r0, r5, #0
+ bl FUN_0201958C
+ b _021D8A12
+_021D8A0C:
+ add r0, r5, #0
+ bl FUN_02019220
+_021D8A12:
+ ldr r0, [sp, #0x14]
+ add r4, r4, #1
+ add r0, r0, #1
+ add r5, #0x10
+ str r0, [sp, #0x14]
+ cmp r0, #8
+ blt _021D89AE
+ add sp, #0x2c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D8A24: .word 0x021DA2BC
+ thumb_func_end MOD55_021D8978
+
+ thumb_func_start MOD55_021D8A28
+MOD55_021D8A28: ; 0x021D8A28
+ push {r3, r4, r5, r6, r7, lr}
+ str r0, [sp]
+ ldr r0, [r0, #8]
+ bl FUN_020286EC
+ add r7, r0, #0
+ ldr r0, [sp]
+ mov r6, #0
+ add r0, #0x18
+ add r1, r6, #0
+ mov r2, #0x20
+ bl MI_CpuFill8
+ ldr r5, [sp]
+ add r4, r6, #0
+_021D8A46:
+ ldr r0, [r5, #0x38]
+ bl FUN_02021A4C
+ add r0, r7, #0
+ add r1, r4, #0
+ bl FUN_0202842C
+ cmp r0, #0
+ beq _021D8A72
+ add r0, r7, #0
+ add r1, r4, #0
+ bl FUN_020283A4
+ add r1, r0, #0
+ ldr r0, [r5, #0x38]
+ bl FUN_02021E28
+ ldr r0, [sp]
+ add r1, r4, #1
+ add r0, r0, r6
+ strb r1, [r0, #0x18]
+ add r6, r6, #1
+_021D8A72:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0x20
+ blt _021D8A46
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD55_021D8A28
+
+ thumb_func_start MOD55_021D8A7C
+MOD55_021D8A7C: ; 0x021D8A7C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r5, r0, #0
+ ldr r0, [r5, #8]
+ str r1, [sp, #0x14]
+ bl FUN_020286EC
+ ldr r0, [r5, #4]
+ mov r1, #3
+ bl FUN_02018744
+ mov r3, #0
+ str r3, [sp]
+ str r3, [sp, #4]
+ str r3, [sp, #8]
+ mov r0, #0x34
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0x59
+ mov r1, #2
+ bl FUN_0200687C
+ mov r3, #0
+ str r3, [sp]
+ str r3, [sp, #4]
+ str r3, [sp, #8]
+ mov r0, #0x34
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0x59
+ mov r1, #8
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x34
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0x59
+ mov r1, #5
+ mov r3, #1
+ bl FUN_020068C8
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _021D8AEE
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+_021D8AEE:
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0xd
+ str r0, [sp, #4]
+ mov r2, #3
+ str r2, [sp, #8]
+ str r0, [sp, #0xc]
+ ldr r0, _021D8CAC ; =0x00000171
+ mov r1, #0xe6
+ str r0, [sp, #0x10]
+ lsl r1, r1, #2
+ ldr r0, [r5, #4]
+ add r1, r5, r1
+ mov r3, #1
+ bl FUN_02019064
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_02019620
+ add r2, r5, #0
+ add r2, #0xc0
+ ldr r0, [r5, #0x10]
+ ldr r2, [r2]
+ mov r1, #5
+ bl FUN_0200A8E0
+ mov r0, #4
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D8CB0 ; =0x000F0E00
+ add r2, r5, #0
+ str r0, [sp, #8]
+ mov r3, #0
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ str r3, [sp, #0xc]
+ add r2, #0xc0
+ ldr r2, [r2]
+ add r0, r5, r0
+ mov r1, #1
+ bl FUN_0201BDE0
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019220
+ mov r0, #0xde
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _021D8B6C
+ mov r0, #0xde
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+_021D8B6C:
+ mov r0, #0x15
+ str r0, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ ldr r0, _021D8CB4 ; =0x00000135
+ mov r1, #0xde
+ str r0, [sp, #0x10]
+ lsl r1, r1, #2
+ ldr r0, [r5, #4]
+ add r1, r5, r1
+ mov r2, #3
+ mov r3, #0xf
+ bl FUN_02019064
+ mov r0, #0xde
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_02019620
+ add r2, r5, #0
+ add r2, #0xd0
+ ldr r0, [r5, #0x10]
+ ldr r2, [r2]
+ mov r1, #7
+ bl FUN_0200A8E0
+ mov r1, #0
+ add r2, r5, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D8CB8 ; =0x00010200
+ add r2, #0xd0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ mov r0, #0xde
+ lsl r0, r0, #2
+ ldr r2, [r2]
+ add r0, r5, r0
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ mov r0, #0xde
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019220
+ add r0, r5, #0
+ bl MOD55_021D8A28
+ mov r0, #0xae
+ mov r6, #0
+ lsl r0, r0, #2
+ add r4, r5, r0
+ add r7, r6, #0
+_021D8BE4:
+ cmp r6, #4
+ bge _021D8BEE
+ mov r0, #5
+ str r0, [sp, #0x18]
+ b _021D8BF2
+_021D8BEE:
+ mov r0, #0x14
+ str r0, [sp, #0x18]
+_021D8BF2:
+ add r0, r4, #0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _021D8C02
+ add r0, r4, #0
+ bl FUN_02019178
+_021D8C02:
+ lsr r2, r6, #0x1f
+ lsl r1, r6, #0x1e
+ sub r1, r1, r2
+ mov r0, #0x1e
+ ror r1, r0
+ add r0, r2, r1
+ lsl r0, r0, #2
+ add r0, r0, #5
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ add r1, r7, #0
+ ldr r3, [sp, #0x18]
+ ldr r0, _021D8CB4 ; =0x00000135
+ add r1, #0x18
+ sub r0, r0, r1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+ lsl r3, r3, #0x18
+ ldr r0, [r5, #4]
+ add r1, r4, #0
+ mov r2, #3
+ lsr r3, r3, #0x18
+ bl FUN_02019064
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_02019620
+ add r0, r4, #0
+ bl FUN_02019220
+ add r6, r6, #1
+ add r4, #0x10
+ add r7, #0x18
+ cmp r6, #8
+ blt _021D8BE4
+ add r0, r5, #0
+ bl MOD55_021D86D4
+ add r0, r5, #0
+ bl MOD55_021D8978
+ add r0, r5, #0
+ bl MOD55_021D88D0
+ mov r0, #0x2b
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_02020130
+ mov r0, #0xad
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_02020130
+ mov r0, #0x2b
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r0, #0xad
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r0, #0x3b
+ mov r1, #3
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ ldr r0, [sp, #0x14]
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D8CAC: .word 0x00000171
+_021D8CB0: .word 0x000F0E00
+_021D8CB4: .word 0x00000135
+_021D8CB8: .word 0x00010200
+ thumb_func_end MOD55_021D8A7C
+
+ thumb_func_start MOD55_021D8CBC
+MOD55_021D8CBC: ; 0x021D8CBC
+ push {r3, r4, r5, lr}
+ mov r3, #0xf2
+ lsl r3, r3, #2
+ add r5, r0, #0
+ add r2, r3, #1
+ ldrb r0, [r5, r3]
+ ldrb r2, [r5, r2]
+ lsr r4, r0, #3
+ cmp r2, #4
+ bne _021D8CD8
+ mov r1, #1
+ add r0, r3, #3
+ strb r1, [r5, r0]
+ b _021D8CF4
+_021D8CD8:
+ add r2, r3, #3
+ ldrb r2, [r5, r2]
+ cmp r2, #1
+ bne _021D8CE8
+ mov r1, #0
+ add r0, r3, #3
+ strb r1, [r5, r0]
+ b _021D8CF4
+_021D8CE8:
+ add r0, r0, r1
+ strb r0, [r5, r3]
+ ldrb r1, [r5, r3]
+ mov r0, #0x1f
+ and r0, r1
+ strb r0, [r5, r3]
+_021D8CF4:
+ add r0, r5, #0
+ bl MOD55_021D86D4
+ mov r0, #0xf2
+ lsl r0, r0, #2
+ ldrb r0, [r5, r0]
+ lsr r0, r0, #3
+ cmp r4, r0
+ beq _021D8D12
+ add r0, r5, #0
+ bl MOD55_021D8978
+ add r0, r5, #0
+ bl MOD55_021D88D0
+_021D8D12:
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD55_021D8CBC
+
+ thumb_func_start MOD55_021D8D14
+MOD55_021D8D14: ; 0x021D8D14
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ mov r1, #0xf3
+ add r5, r0, #0
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ cmp r1, #0
+ beq _021D8D52
+ ldr r1, _021D8E5C ; =0x021C48B8
+ ldr r1, [r1, #0x48]
+ cmp r1, #0
+ beq _021D8D52
+ bl MOD55_021DA214
+ mov r0, #0x2b
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r0, #0xad
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r0, #0xf3
+ mov r1, #0
+ lsl r0, r0, #2
+ strb r1, [r5, r0]
+ b _021D8E36
+_021D8D52:
+ ldr r2, _021D8E5C ; =0x021C48B8
+ mov r0, #1
+ ldr r3, [r2, #0x48]
+ add r1, r3, #0
+ tst r1, r0
+ beq _021D8D88
+ ldr r0, _021D8E60 ; =0x000005DC
+ bl FUN_020054C8
+ ldr r1, _021D8E64 ; =0x000003CB
+ ldrb r0, [r5, r1]
+ cmp r0, #0
+ beq _021D8D74
+ mov r0, #6
+ sub r1, #0x1b
+ str r0, [r5, r1]
+ b _021D8E36
+_021D8D74:
+ sub r0, r1, #3
+ ldrb r0, [r5, r0]
+ add r0, r5, r0
+ ldrb r0, [r0, #0x18]
+ cmp r0, #0
+ beq _021D8E36
+ mov r0, #4
+ sub r1, #0x1b
+ str r0, [r5, r1]
+ b _021D8E36
+_021D8D88:
+ mov r1, #2
+ tst r1, r3
+ beq _021D8D9E
+ ldr r0, _021D8E60 ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #0x3b
+ mov r1, #6
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _021D8E36
+_021D8D9E:
+ ldr r1, [r2, #0x4c]
+ mov r2, #0x40
+ tst r2, r1
+ beq _021D8DC4
+ ldr r0, _021D8E68 ; =0x000003C9
+ ldrb r1, [r5, r0]
+ cmp r1, #0
+ beq _021D8E36
+ sub r1, r1, #1
+ strb r1, [r5, r0]
+ ldr r0, _021D8E60 ; =0x000005DC
+ bl FUN_020054C8
+ mov r1, #0
+ add r0, r5, #0
+ mvn r1, r1
+ bl MOD55_021D8CBC
+ b _021D8E36
+_021D8DC4:
+ mov r2, #0x80
+ tst r2, r1
+ beq _021D8DE6
+ ldr r0, _021D8E68 ; =0x000003C9
+ ldrb r1, [r5, r0]
+ cmp r1, #4
+ bhs _021D8E36
+ add r1, r1, #1
+ strb r1, [r5, r0]
+ ldr r0, _021D8E60 ; =0x000005DC
+ bl FUN_020054C8
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD55_021D8CBC
+ b _021D8E36
+_021D8DE6:
+ mov r2, #0x20
+ tst r2, r1
+ beq _021D8E10
+ ldr r2, _021D8E64 ; =0x000003CB
+ ldrb r1, [r5, r2]
+ cmp r1, #0
+ bne _021D8E36
+ sub r1, r2, #1
+ ldrb r1, [r5, r1]
+ sub r1, r0, r1
+ sub r0, r2, #1
+ strb r1, [r5, r0]
+ ldr r0, _021D8E60 ; =0x000005DC
+ bl FUN_020054C8
+ mov r1, #3
+ add r0, r5, #0
+ mvn r1, r1
+ bl MOD55_021D8CBC
+ b _021D8E36
+_021D8E10:
+ mov r2, #0x10
+ tst r1, r2
+ beq _021D8E36
+ ldr r2, _021D8E64 ; =0x000003CB
+ ldrb r1, [r5, r2]
+ cmp r1, #0
+ bne _021D8E36
+ sub r1, r2, #1
+ ldrb r1, [r5, r1]
+ sub r1, r0, r1
+ sub r0, r2, #1
+ strb r1, [r5, r0]
+ ldr r0, _021D8E60 ; =0x000005DC
+ bl FUN_020054C8
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD55_021D8CBC
+_021D8E36:
+ mov r0, #0x3b
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ cmp r0, #3
+ beq _021D8E58
+ mov r0, #0x2b
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ mov r0, #0xad
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+_021D8E58:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D8E5C: .word 0x021C48B8
+_021D8E60: .word 0x000005DC
+_021D8E64: .word 0x000003CB
+_021D8E68: .word 0x000003C9
+ thumb_func_end MOD55_021D8D14
+
+ thumb_func_start MOD55_021D8E6C
+MOD55_021D8E6C: ; 0x021D8E6C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x3c
+ add r5, r0, #0
+ ldr r0, [r5, #8]
+ str r1, [sp, #0x14]
+ bl FUN_020286EC
+ mov r1, #0xf2
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ mov r2, #8
+ str r0, [sp, #0x18]
+ add r1, r5, r1
+ ldrb r1, [r1, #0x18]
+ sub r1, r1, #1
+ bl FUN_0202822C
+ cmp r0, #2
+ add r2, sp, #0x1c
+ bne _021D8ECC
+ ldr r3, _021D8FCC ; =0x021DA418
+ mov r7, #4
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ add r0, r7, #0
+ mov r1, #0x34
+ bl FUN_02012838
+ ldr r4, _021D8FD0 ; =0x021DA3D8
+ str r0, [r5, #0x14]
+ mov r6, #0
+_021D8EB6:
+ ldr r0, [r5, #0x14]
+ ldr r1, [r5, #0x10]
+ ldr r2, [r4]
+ ldr r3, [r4, #4]
+ bl FUN_02012880
+ add r6, r6, #1
+ add r4, #8
+ cmp r6, #4
+ blt _021D8EB6
+ b _021D8F02
+_021D8ECC:
+ ldr r3, _021D8FD4 ; =0x021DA3F8
+ mov r7, #4
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ add r0, r7, #0
+ mov r1, #0x34
+ bl FUN_02012838
+ ldr r4, _021D8FD8 ; =0x021DA438
+ str r0, [r5, #0x14]
+ mov r6, #0
+_021D8EEE:
+ ldr r0, [r5, #0x14]
+ ldr r1, [r5, #0x10]
+ ldr r2, [r4]
+ ldr r3, [r4, #4]
+ bl FUN_02012880
+ add r6, r6, #1
+ add r4, #8
+ cmp r6, #4
+ blt _021D8EEE
+_021D8F02:
+ mov r0, #0xe2
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _021D8F1A
+ mov r0, #0xe2
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+_021D8F1A:
+ mov r1, #9
+ str r1, [sp]
+ mov r1, #0xf
+ lsl r0, r7, #1
+ str r1, [sp, #4]
+ lsl r1, r0, #0x18
+ lsr r1, r1, #0x18
+ str r1, [sp, #8]
+ mov r1, #0xd
+ str r1, [sp, #0xc]
+ mov r1, #0x3b
+ sub r0, r1, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r1, #0xe2
+ str r0, [sp, #0x10]
+ lsl r1, r1, #2
+ ldr r0, [r5, #4]
+ add r1, r5, r1
+ mov r2, #2
+ mov r3, #0x10
+ bl FUN_02019064
+ mov r0, #0xe2
+ lsl r0, r0, #2
+ ldr r2, _021D8FDC ; =0x000001D9
+ add r0, r5, r0
+ mov r1, #1
+ mov r3, #0xb
+ bl FUN_0200CCA4
+ ldr r0, [r5, #0x14]
+ mov r1, #0
+ str r0, [sp, #0x1c]
+ mov r0, #0xe2
+ lsl r0, r0, #2
+ add r0, r5, r0
+ str r0, [sp, #0x28]
+ add r0, sp, #0x1c
+ add r2, r1, #0
+ mov r3, #0x34
+ bl FUN_020010A8
+ mov r1, #0xea
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ sub r1, #0x20
+ add r0, r5, r1
+ bl FUN_02019220
+ mov r0, #0x34
+ bl FUN_02023928
+ mov r1, #0xf2
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ add r4, r0, #0
+ ldr r0, [sp, #0x18]
+ add r1, r5, r1
+ ldrb r1, [r1, #0x18]
+ sub r1, r1, #1
+ bl FUN_020283A4
+ add r1, r0, #0
+ add r0, r4, #0
+ bl FUN_0202395C
+ ldr r0, [r5, #0xc]
+ mov r1, #0
+ add r2, r4, #0
+ bl FUN_0200ABC0
+ add r0, r5, #0
+ mov r1, #0xc
+ bl MOD55_021DA0A4
+ add r0, r4, #0
+ bl FUN_02016A18
+ ldr r0, _021D8FE0 ; =0x00000418
+ mov r1, #0
+ strh r1, [r5, r0]
+ mov r1, #5
+ sub r0, #0x68
+ str r1, [r5, r0]
+ ldr r0, [sp, #0x14]
+ add sp, #0x3c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D8FCC: .word 0x021DA418
+_021D8FD0: .word 0x021DA3D8
+_021D8FD4: .word 0x021DA3F8
+_021D8FD8: .word 0x021DA438
+_021D8FDC: .word 0x000001D9
+_021D8FE0: .word 0x00000418
+ thumb_func_end MOD55_021D8E6C
+
+ thumb_func_start MOD55_021D8FE4
+MOD55_021D8FE4: ; 0x021D8FE4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ add r0, #0xe4
+ ldr r0, [r0]
+ add r6, r1, #0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ beq _021D9002
+ add sp, #0xc
+ add r0, r6, #0
+ pop {r4, r5, r6, r7, pc}
+_021D9002:
+ mov r0, #0xea
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02001204
+ ldr r1, _021D90D0 ; =0x00000418
+ add r4, r0, #0
+ add r0, r1, #0
+ sub r0, #0x70
+ ldrh r7, [r5, r1]
+ ldr r0, [r5, r0]
+ add r1, r5, r1
+ bl FUN_0200143C
+ ldr r0, _021D90D0 ; =0x00000418
+ ldrh r0, [r5, r0]
+ cmp r7, r0
+ beq _021D902C
+ ldr r0, _021D90D4 ; =0x000005DC
+ bl FUN_020054C8
+_021D902C:
+ mov r0, #1
+ mvn r0, r0
+ cmp r4, r0
+ beq _021D9040
+ add r0, r0, #1
+ cmp r4, r0
+ bne _021D9068
+ add sp, #0xc
+ add r0, r6, #0
+ pop {r4, r5, r6, r7, pc}
+_021D9040:
+ ldr r0, _021D90D4 ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #0x2b
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r0, #0xad
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r0, #0x3b
+ mov r1, #3
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _021D9098
+_021D9068:
+ ldr r0, _021D90D4 ; =0x000005DC
+ bl FUN_020054C8
+ cmp r4, #0x14
+ bne _021D9092
+ ldr r0, [r5, #4]
+ mov r1, #3
+ bl FUN_02018744
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x34
+ str r0, [sp, #8]
+ mov r0, #0
+ add r1, r0, #0
+ add r2, r0, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+_021D9092:
+ mov r0, #0x3b
+ lsl r0, r0, #4
+ str r4, [r5, r0]
+_021D9098:
+ add r0, r5, #0
+ bl MOD55_021DA214
+ mov r0, #0xe2
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_0200CCF8
+ mov r0, #0xe2
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+ mov r0, #0xea
+ lsl r0, r0, #2
+ mov r1, #0
+ ldr r0, [r5, r0]
+ add r2, r1, #0
+ bl FUN_02001300
+ ldr r0, [r5, #0x14]
+ bl FUN_02012870
+ add r0, r6, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D90D0: .word 0x00000418
+_021D90D4: .word 0x000005DC
+ thumb_func_end MOD55_021D8FE4
+
+ thumb_func_start MOD55_021D90D8
+MOD55_021D90D8: ; 0x021D90D8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ mov r0, #0xf2
+ lsl r0, r0, #2
+ ldrb r0, [r5, r0]
+ add r7, r1, #0
+ add r0, r5, r0
+ ldrb r0, [r0, #0x18]
+ cmp r0, #0
+ beq _021D9170
+ ldr r0, [r5, #8]
+ bl FUN_020286EC
+ mov r1, #0xf2
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ str r0, [sp, #8]
+ add r1, r5, r1
+ ldrb r1, [r1, #0x18]
+ sub r1, r1, #1
+ bl FUN_0202838C
+ bl FUN_02096E24
+ str r1, [sp, #4]
+ add r4, r0, #0
+ ldr r0, [sp, #4]
+ mov r1, #0
+ eor r1, r0
+ mov r2, #0
+ add r0, r4, #0
+ eor r0, r2
+ orr r0, r1
+ beq _021D9170
+ mov r0, #0x34
+ bl FUN_02023928
+ mov r1, #0xf2
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ add r6, r0, #0
+ ldr r0, [sp, #8]
+ add r1, r5, r1
+ ldrb r1, [r1, #0x18]
+ sub r1, r1, #1
+ bl FUN_020283A4
+ add r1, r0, #0
+ add r0, r6, #0
+ bl FUN_0202395C
+ ldr r0, _021D9180 ; =0x000005DC
+ bl FUN_020054C8
+ ldr r2, [sp, #4]
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD55_021D93F8
+ ldr r0, [r5, #0xc]
+ mov r1, #0
+ add r2, r6, #0
+ bl FUN_0200ABC0
+ add r0, r5, #0
+ mov r1, #0x1f
+ bl MOD55_021DA15C
+ mov r0, #0xf3
+ mov r1, #1
+ lsl r0, r0, #2
+ strb r1, [r5, r0]
+ add r0, r6, #0
+ bl FUN_02016A18
+_021D9170:
+ mov r0, #0x3b
+ mov r1, #3
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r7, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D9180: .word 0x000005DC
+ thumb_func_end MOD55_021D90D8
+
+ thumb_func_start MOD55_021D9184
+MOD55_021D9184: ; 0x021D9184
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r5, #8]
+ add r7, r1, #0
+ bl FUN_020286EC
+ bl FUN_02028228
+ bl FUN_02096D68
+ add r6, r0, #0
+ add r4, r1, #0
+ ldr r0, [r5, #4]
+ mov r1, #3
+ bl FUN_02018744
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x34
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0x59
+ mov r1, #7
+ mov r3, #1
+ bl FUN_020068C8
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _021D91D6
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+_021D91D6:
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x14
+ str r0, [sp, #4]
+ mov r2, #3
+ mov r1, #0xe6
+ lsl r1, r1, #2
+ str r2, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ ldr r0, _021D93D0 ; =0x00000139
+ add r1, r5, r1
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #4]
+ mov r3, #1
+ bl FUN_02019064
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_02019620
+ ldr r0, [r5, #8]
+ bl FUN_020238F4
+ add r2, r0, #0
+ ldr r0, [r5, #0xc]
+ mov r1, #0
+ bl FUN_0200ABC0
+ add r2, r5, #0
+ add r2, #0xb8
+ ldr r0, [r5, #0x10]
+ ldr r2, [r2]
+ mov r1, #0x16
+ bl FUN_0200A8E0
+ add r1, r5, #0
+ add r2, r5, #0
+ add r1, #0xc0
+ add r2, #0xb8
+ ldr r0, [r5, #0xc]
+ ldr r1, [r1]
+ ldr r2, [r2]
+ bl FUN_0200B7B8
+ mov r0, #4
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D93D4 ; =0x000F0E00
+ add r2, r5, #0
+ str r0, [sp, #8]
+ mov r3, #0
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ str r3, [sp, #0xc]
+ add r2, #0xc0
+ ldr r2, [r2]
+ add r0, r5, r0
+ mov r1, #1
+ bl FUN_0201BDE0
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019220
+ mov r0, #0xce
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _021D9278
+ mov r0, #0xce
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+_021D9278:
+ mov r1, #0xd
+ str r1, [sp]
+ mov r0, #0x15
+ str r0, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ mov r0, #0x64
+ mov r1, #0xce
+ str r0, [sp, #0x10]
+ lsl r1, r1, #2
+ ldr r0, [r5, #4]
+ add r1, r5, r1
+ mov r2, #3
+ mov r3, #6
+ bl FUN_02019064
+ mov r0, #0xce
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_02019620
+ mov r1, #0
+ mov r0, #0
+ eor r1, r4
+ eor r0, r6
+ orr r0, r1
+ ldr r0, [r5, #0x10]
+ bne _021D92C2
+ add r2, r5, #0
+ add r2, #0xbc
+ ldr r2, [r2]
+ mov r1, #0x18
+ bl FUN_0200A8E0
+ b _021D92CE
+_021D92C2:
+ add r2, r5, #0
+ add r2, #0xbc
+ ldr r2, [r2]
+ mov r1, #0x17
+ bl FUN_0200A8E0
+_021D92CE:
+ add r1, r5, #0
+ add r1, #0xbc
+ mov r0, #0
+ ldr r1, [r1]
+ add r2, r0, #0
+ bl FUN_02002F08
+ mov r1, #0xa8
+ sub r0, r1, r0
+ mov r1, #0
+ lsr r3, r0, #1
+ add r2, r5, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D93D8 ; =0x00010200
+ add r2, #0xbc
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ mov r0, #0xce
+ lsl r0, r0, #2
+ ldr r2, [r2]
+ add r0, r5, r0
+ bl FUN_0201BDE0
+ mov r0, #0xce
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019220
+ mov r1, #0
+ mov r0, #0
+ eor r1, r4
+ eor r0, r6
+ orr r0, r1
+ beq _021D93C2
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD55_021D93F8
+ mov r0, #0xe2
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _021D9338
+ mov r0, #0xe2
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+_021D9338:
+ mov r0, #8
+ str r0, [sp]
+ mov r0, #0xe
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r0, #0x32
+ mov r1, #0xe2
+ str r0, [sp, #0x10]
+ lsl r1, r1, #2
+ ldr r0, [r5, #4]
+ add r1, r5, r1
+ mov r2, #3
+ mov r3, #9
+ bl FUN_02019064
+ add r2, r5, #0
+ add r2, #0xb8
+ ldr r0, [r5, #0x10]
+ ldr r2, [r2]
+ mov r1, #0x1b
+ bl FUN_0200A8E0
+ add r1, r5, #0
+ add r2, r5, #0
+ add r1, #0xbc
+ add r2, #0xb8
+ ldr r0, [r5, #0xc]
+ ldr r1, [r1]
+ ldr r2, [r2]
+ bl FUN_0200B7B8
+ mov r0, #0xe2
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_02019620
+ add r1, r5, #0
+ add r1, #0xbc
+ mov r0, #0
+ ldr r1, [r1]
+ add r2, r0, #0
+ mov r3, #0x70
+ bl FUN_02002F40
+ mov r1, #0
+ add r3, r0, #0
+ add r2, r5, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D93D8 ; =0x00010200
+ add r2, #0xbc
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ mov r0, #0xe2
+ lsl r0, r0, #2
+ ldr r2, [r2]
+ add r0, r5, r0
+ bl FUN_0201BDE0
+ mov r0, #0xe2
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019220
+_021D93C2:
+ mov r0, #0x3b
+ mov r1, #0x13
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r7, #0
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D93D0: .word 0x00000139
+_021D93D4: .word 0x000F0E00
+_021D93D8: .word 0x00010200
+ thumb_func_end MOD55_021D9184
+
+ thumb_func_start MOD55_021D93DC
+MOD55_021D93DC: ; 0x021D93DC
+ ldr r2, _021D93F4 ; =0x021C48B8
+ ldr r3, [r2, #0x48]
+ mov r2, #3
+ tst r2, r3
+ beq _021D93EE
+ mov r2, #0x3b
+ mov r3, #6
+ lsl r2, r2, #4
+ str r3, [r0, r2]
+_021D93EE:
+ add r0, r1, #0
+ bx lr
+ nop
+_021D93F4: .word 0x021C48B8
+ thumb_func_end MOD55_021D93DC
+
+ thumb_func_start MOD55_021D93F8
+MOD55_021D93F8: ; 0x021D93F8
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r6, r2, #0
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r2, _021D946C ; =0x05F5E100
+ add r0, r4, #0
+ add r1, r6, #0
+ mov r3, #0
+ bl _ll_udiv
+ add r2, r0, #0
+ mov r0, #2
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ ldr r0, [r5, #0xc]
+ mov r3, #4
+ bl FUN_0200AD38
+ ldr r2, _021D9470 ; =0x00002710
+ add r0, r4, #0
+ add r1, r6, #0
+ mov r3, #0
+ bl _ll_udiv
+ ldr r2, _021D9470 ; =0x00002710
+ mov r3, #0
+ bl _ull_mod
+ mov r1, #2
+ add r2, r0, #0
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r5, #0xc]
+ mov r3, #4
+ bl FUN_0200AD38
+ ldr r2, _021D9470 ; =0x00002710
+ add r0, r4, #0
+ add r1, r6, #0
+ mov r3, #0
+ bl _ull_mod
+ add r2, r0, #0
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r5, #0xc]
+ mov r1, #3
+ mov r3, #4
+ bl FUN_0200AD38
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ nop
+_021D946C: .word 0x05F5E100
+_021D9470: .word 0x00002710
+ thumb_func_end MOD55_021D93F8
+
+ thumb_func_start MOD55_021D9474
+MOD55_021D9474: ; 0x021D9474
+ push {r4, r5, lr}
+ sub sp, #0x64
+ add r4, r0, #0
+ mov r0, #1
+ mov r1, #0
+ add r2, r0, #0
+ bl GX_SetGraphicsMode
+ ldr r5, _021D9564 ; =0x021DA2D8
+ add r3, sp, #0x54
+ 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, _021D9568 ; =0x021DA2F8
+ 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
+ mov r0, #1
+ mov r1, #0x20
+ mov r2, #0
+ mov r3, #0x34
+ bl FUN_02017F18
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_02018744
+ ldr r5, _021D956C ; =0x021DA330
+ 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
+ mov r0, #2
+ mov r1, #0x20
+ mov r2, #0
+ mov r3, #0x34
+ bl FUN_02017F18
+ add r0, r4, #0
+ mov r1, #2
+ bl FUN_02018744
+ ldr r5, _021D9570 ; =0x021DA314
+ 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, #3
+ mov r1, #0x20
+ mov r2, #0
+ mov r3, #0x34
+ bl FUN_02017F18
+ add r0, r4, #0
+ mov r1, #3
+ bl FUN_02018744
+ mov r0, #0
+ mov r1, #0x20
+ add r2, r0, #0
+ mov r3, #0x34
+ bl FUN_02017F18
+ mov r0, #1
+ mov r1, #3
+ bl FUN_020178BC
+ mov r0, #2
+ add r1, r0, #0
+ bl FUN_020178BC
+ mov r0, #0
+ mov r1, #1
+ bl FUN_020178BC
+ mov r0, #3
+ mov r1, #0
+ bl FUN_020178BC
+ add sp, #0x64
+ pop {r4, r5, pc}
+ .align 2, 0
+_021D9564: .word 0x021DA2D8
+_021D9568: .word 0x021DA2F8
+_021D956C: .word 0x021DA330
+_021D9570: .word 0x021DA314
+ thumb_func_end MOD55_021D9474
+
+ thumb_func_start MOD55_021D9574
+MOD55_021D9574: ; 0x021D9574
+ push {r3, lr}
+ bl FUN_020BB7F4
+ bl G3X_InitMtxStack
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201E6E4
+ ldr r0, _021D95D8 ; =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, _021D95DC ; =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, _021D95E0 ; =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, _021D95E4 ; =0x04000540
+ mov r0, #2
+ str r0, [r1]
+ ldr r0, _021D95E8 ; =0xBFFF0000
+ str r0, [r1, #0x40]
+ pop {r3, pc}
+ .align 2, 0
+_021D95D8: .word 0x04000008
+_021D95DC: .word 0xFFFFCFFD
+_021D95E0: .word 0x0000CFFB
+_021D95E4: .word 0x04000540
+_021D95E8: .word 0xBFFF0000
+ thumb_func_end MOD55_021D9574
+
+ thumb_func_start MOD55_021D95EC
+MOD55_021D95EC: ; 0x021D95EC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x34
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ str r1, [sp, #0x14]
+ bl FUN_020286EC
+ str r0, [sp, #0x1c]
+ mov r0, #0xf2
+ lsl r0, r0, #2
+ ldrb r0, [r4, r0]
+ add r0, r4, r0
+ ldrb r0, [r0, #0x18]
+ sub r0, r0, #1
+ str r0, [sp, #0x18]
+ bl FUN_0200E308
+ cmp r0, #0
+ bne _021D9618
+ ldr r0, [sp, #0x14]
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+_021D9618:
+ add r0, r4, #0
+ bl MOD55_021D7720
+ add r0, r4, #0
+ bl MOD55_021D8140
+ ldr r0, [r4, #4]
+ bl MOD55_021D7AA4
+ mov r0, #0x34
+ bl FUN_02016B94
+ str r0, [r4, #4]
+ bl MOD55_021D9474
+ bl MOD55_021D9574
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x34
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x59
+ mov r1, #2
+ mov r3, #1
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x34
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x59
+ mov r1, #8
+ mov r3, #1
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x34
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x59
+ mov r1, #6
+ mov r3, #2
+ bl FUN_020068C8
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _021D969A
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019178
+_021D969A:
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x14
+ str r0, [sp, #4]
+ mov r2, #3
+ mov r1, #0xe6
+ lsl r1, r1, #2
+ str r2, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ ldr r0, _021D9A50 ; =0x0000019D
+ add r1, r4, r1
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #4]
+ mov r3, #1
+ bl FUN_02019064
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ add r0, r4, r0
+ mov r1, #0
+ bl FUN_02019620
+ mov r0, #0x34
+ bl FUN_02023928
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x18]
+ bl FUN_020283A4
+ add r1, r0, #0
+ ldr r0, [sp, #0x20]
+ bl FUN_0202395C
+ ldr r0, [r4, #0xc]
+ ldr r2, [sp, #0x20]
+ mov r1, #0
+ bl FUN_0200ABC0
+ add r2, r4, #0
+ add r2, #0xb8
+ ldr r0, [r4, #0x10]
+ ldr r2, [r2]
+ mov r1, #0xd
+ bl FUN_0200A8E0
+ add r1, r4, #0
+ add r2, r4, #0
+ add r1, #0xc0
+ add r2, #0xb8
+ ldr r0, [r4, #0xc]
+ ldr r1, [r1]
+ ldr r2, [r2]
+ bl FUN_0200B7B8
+ mov r0, #4
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D9A54 ; =0x000F0E00
+ add r2, r4, #0
+ str r0, [sp, #8]
+ mov r3, #0
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ str r3, [sp, #0xc]
+ add r2, #0xc0
+ ldr r2, [r2]
+ add r0, r4, r0
+ mov r1, #1
+ bl FUN_0201BDE0
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019220
+ mov r0, #0xe2
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _021D974E
+ mov r0, #0xe2
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019178
+_021D974E:
+ mov r0, #0x12
+ str r0, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ mov r3, #2
+ mov r1, #0xe2
+ lsl r1, r1, #2
+ str r3, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ ldr r0, _021D9A58 ; =0x00000141
+ add r1, r4, r1
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #4]
+ mov r2, #3
+ bl FUN_02019064
+ mov r0, #0xe2
+ lsl r0, r0, #2
+ add r0, r4, r0
+ mov r1, #0
+ bl FUN_02019620
+ ldr r0, [r4, #0xc]
+ ldr r2, [sp, #0x20]
+ mov r1, #0
+ bl FUN_0200ABC0
+ add r2, r4, #0
+ add r2, #0xb8
+ ldr r0, [r4, #0x10]
+ ldr r2, [r2]
+ mov r1, #6
+ bl FUN_0200A8E0
+ add r1, r4, #0
+ add r2, r4, #0
+ add r1, #0xc0
+ add r2, #0xb8
+ ldr r0, [r4, #0xc]
+ ldr r1, [r1]
+ ldr r2, [r2]
+ bl FUN_0200B7B8
+ ldr r0, _021D9A54 ; =0x000F0E00
+ add r1, r4, #0
+ str r0, [sp]
+ mov r0, #0xe2
+ add r1, #0xc0
+ lsl r0, r0, #2
+ ldr r1, [r1]
+ add r0, r4, r0
+ mov r2, #0xff
+ mov r3, #0x40
+ bl MOD55_021D80F0
+ mov r0, #0xe2
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019220
+ mov r0, #0x34
+ bl FUN_02006D98
+ add r1, r4, #0
+ add r1, #0xdc
+ str r0, [r1]
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x18]
+ mov r2, #7
+ bl FUN_0202822C
+ add r6, r0, #0
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x18]
+ mov r2, #8
+ bl FUN_0202822C
+ add r1, r6, #0
+ mov r2, #1
+ add r5, r0, #0
+ bl FUN_020536D0
+ add r1, r0, #0
+ lsl r1, r1, #0x10
+ lsl r3, r5, #0x18
+ add r0, sp, #0x24
+ lsr r1, r1, #0x10
+ mov r2, #2
+ lsr r3, r3, #0x18
+ bl FUN_02068FE0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ add r0, r4, #0
+ add r0, #0xdc
+ ldr r0, [r0]
+ add r1, sp, #0x24
+ mov r2, #0x36
+ mov r3, #0x54
+ bl FUN_020073A0
+ add r1, r4, #0
+ add r1, #0xe0
+ str r0, [r1]
+ cmp r5, #1
+ bne _021D9864
+ ldr r0, [r4, #4]
+ mov r1, #2
+ bl FUN_0201886C
+ ldr r2, _021D9A5C ; =0x00000FFF
+ mov r7, #0x10
+ mov ip, r0
+ lsl r6, r7, #5
+ add r3, r2, #1
+_021D983C:
+ lsl r5, r6, #1
+ mov r1, ip
+ mov r0, #0
+ add r1, r1, r5
+_021D9844:
+ ldrh r5, [r1]
+ add r0, r0, #1
+ and r5, r2
+ add r5, r5, r3
+ strh r5, [r1]
+ add r1, r1, #2
+ cmp r0, #0xc
+ blt _021D9844
+ add r7, r7, #1
+ add r6, #0x20
+ cmp r7, #0x15
+ blt _021D983C
+ ldr r0, [r4, #4]
+ mov r1, #2
+ bl FUN_02017CD0
+_021D9864:
+ mov r0, #0xd2
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _021D987C
+ mov r0, #0xd2
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019178
+_021D987C:
+ mov r0, #4
+ str r0, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ mov r0, #0x13
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r0, #2
+ mov r1, #0xd2
+ str r0, [sp, #0x10]
+ lsl r1, r1, #2
+ ldr r0, [r4, #4]
+ add r1, r4, r1
+ mov r2, #3
+ mov r3, #0xf
+ bl FUN_02019064
+ mov r0, #0xd2
+ lsl r0, r0, #2
+ add r0, r4, r0
+ mov r1, #0
+ bl FUN_02019620
+ add r2, r4, #0
+ add r2, #0xc4
+ ldr r0, [r4, #0x10]
+ ldr r2, [r2]
+ mov r1, #0xe
+ bl FUN_0200A8E0
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D9A60 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ add r2, r4, #0
+ mov r0, #0xd2
+ lsl r0, r0, #2
+ str r1, [sp, #0xc]
+ add r2, #0xc4
+ ldr r2, [r2]
+ add r0, r4, r0
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ mov r0, #0x34
+ bl FUN_02023928
+ add r5, r0, #0
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x18]
+ bl FUN_020283E8
+ add r1, r0, #0
+ add r0, r5, #0
+ bl FUN_0202395C
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ add r2, r5, #0
+ bl FUN_0200ABC0
+ add r0, r5, #0
+ bl FUN_02016A18
+ add r2, r4, #0
+ add r2, #0xb8
+ ldr r0, [r4, #0x10]
+ ldr r2, [r2]
+ mov r1, #0x2a
+ bl FUN_0200A8E0
+ add r1, r4, #0
+ add r2, r4, #0
+ add r1, #0xc4
+ add r2, #0xb8
+ ldr r0, [r4, #0xc]
+ ldr r1, [r1]
+ ldr r2, [r2]
+ bl FUN_0200B7B8
+ add r1, r4, #0
+ add r1, #0xc4
+ mov r0, #0
+ ldr r1, [r1]
+ add r2, r0, #0
+ bl FUN_02002E14
+ mov r1, #0x78
+ sub r3, r1, r0
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D9A60 ; =0x00010200
+ add r2, r4, #0
+ str r0, [sp, #8]
+ mov r1, #0
+ mov r0, #0xd2
+ lsl r0, r0, #2
+ str r1, [sp, #0xc]
+ add r2, #0xc4
+ ldr r2, [r2]
+ add r0, r4, r0
+ bl FUN_0201BDE0
+ add r2, r4, #0
+ add r2, #0xc8
+ ldr r0, [r4, #0x10]
+ ldr r2, [r2]
+ mov r1, #0xf
+ bl FUN_0200A8E0
+ mov r0, #0x18
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D9A60 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ add r2, r4, #0
+ mov r0, #0xd2
+ lsl r0, r0, #2
+ str r1, [sp, #0xc]
+ add r2, #0xc8
+ ldr r2, [r2]
+ add r0, r4, r0
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x18]
+ mov r2, #1
+ bl FUN_0202822C
+ add r2, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ mov r3, #4
+ bl FUN_0200AD38
+ add r2, r4, #0
+ add r2, #0xb8
+ ldr r0, [r4, #0x10]
+ ldr r2, [r2]
+ mov r1, #0x10
+ bl FUN_0200A8E0
+ add r1, r4, #0
+ add r2, r4, #0
+ add r1, #0xc0
+ add r2, #0xb8
+ ldr r0, [r4, #0xc]
+ ldr r1, [r1]
+ ldr r2, [r2]
+ bl FUN_0200B7B8
+ add r1, r4, #0
+ add r1, #0xc0
+ mov r0, #0
+ ldr r1, [r1]
+ add r2, r0, #0
+ bl FUN_02002E14
+ mov r1, #0x78
+ sub r3, r1, r0
+ mov r0, #0x27
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D9A60 ; =0x00010200
+ add r2, r4, #0
+ str r0, [sp, #8]
+ mov r1, #0
+ mov r0, #0xd2
+ lsl r0, r0, #2
+ str r1, [sp, #0xc]
+ add r2, #0xc0
+ ldr r2, [r2]
+ add r0, r4, r0
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x18]
+ mov r2, #2
+ bl FUN_0202822C
+ add r2, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ mov r3, #4
+ bl FUN_0200AD38
+ add r2, r4, #0
+ add r2, #0xb8
+ ldr r0, [r4, #0x10]
+ ldr r2, [r2]
+ mov r1, #0x11
+ bl FUN_0200A8E0
+ add r1, r4, #0
+ add r2, r4, #0
+ add r1, #0xc0
+ add r2, #0xb8
+ ldr r0, [r4, #0xc]
+ ldr r1, [r1]
+ ldr r2, [r2]
+ bl FUN_0200B7B8
+ add r1, r4, #0
+ add r1, #0xc0
+ mov r0, #0
+ ldr r1, [r1]
+ add r2, r0, #0
+ bl FUN_02002E14
+ mov r1, #0x78
+ sub r3, r1, r0
+ mov r0, #0x35
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D9A60 ; =0x00010200
+ b _021D9A64
+ nop
+_021D9A50: .word 0x0000019D
+_021D9A54: .word 0x000F0E00
+_021D9A58: .word 0x00000141
+_021D9A5C: .word 0x00000FFF
+_021D9A60: .word 0x00010200
+_021D9A64:
+ add r2, r4, #0
+ str r0, [sp, #8]
+ mov r1, #0
+ mov r0, #0xd2
+ lsl r0, r0, #2
+ str r1, [sp, #0xc]
+ add r2, #0xc0
+ ldr r2, [r2]
+ add r0, r4, r0
+ bl FUN_0201BDE0
+ add r2, r4, #0
+ add r2, #0xc0
+ ldr r0, [r4, #0x10]
+ ldr r2, [r2]
+ mov r1, #0x12
+ bl FUN_0200A8E0
+ mov r0, #0x4a
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D9C4C ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ add r2, r4, #0
+ mov r0, #0xd2
+ lsl r0, r0, #2
+ str r1, [sp, #0xc]
+ add r2, #0xc0
+ ldr r2, [r2]
+ add r0, r4, r0
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x18]
+ mov r2, #3
+ bl FUN_0202822C
+ add r5, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ add r2, r5, #0
+ mov r3, #4
+ bl FUN_0200AD38
+ cmp r5, #1
+ ldr r0, [r4, #0x10]
+ bne _021D9ADC
+ add r2, r4, #0
+ add r2, #0xb8
+ ldr r2, [r2]
+ mov r1, #0x13
+ bl FUN_0200A8E0
+ b _021D9AE8
+_021D9ADC:
+ add r2, r4, #0
+ add r2, #0xb8
+ ldr r2, [r2]
+ mov r1, #0x2b
+ bl FUN_0200A8E0
+_021D9AE8:
+ add r1, r4, #0
+ add r2, r4, #0
+ add r1, #0xc0
+ add r2, #0xb8
+ ldr r0, [r4, #0xc]
+ ldr r1, [r1]
+ ldr r2, [r2]
+ bl FUN_0200B7B8
+ add r1, r4, #0
+ add r1, #0xc0
+ mov r0, #0
+ ldr r1, [r1]
+ add r2, r0, #0
+ bl FUN_02002E14
+ mov r1, #0x78
+ sub r3, r1, r0
+ mov r0, #0x5c
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D9C4C ; =0x00010200
+ add r2, r4, #0
+ str r0, [sp, #8]
+ mov r1, #0
+ mov r0, #0xd2
+ lsl r0, r0, #2
+ str r1, [sp, #0xc]
+ add r2, #0xc0
+ ldr r2, [r2]
+ add r0, r4, r0
+ bl FUN_0201BDE0
+ add r2, r4, #0
+ add r2, #0xc0
+ ldr r0, [r4, #0x10]
+ ldr r2, [r2]
+ mov r1, #0x14
+ bl FUN_0200A8E0
+ mov r0, #0x71
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D9C4C ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ add r2, r4, #0
+ mov r0, #0xd2
+ lsl r0, r0, #2
+ str r1, [sp, #0xc]
+ add r2, #0xc0
+ ldr r2, [r2]
+ add r0, r4, r0
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x18]
+ mov r2, #6
+ bl FUN_0202822C
+ add r2, r0, #0
+ beq _021D9C18
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r1, #2
+ ldr r0, [r4, #0xc]
+ add r3, r1, #0
+ bl FUN_0200AD38
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x18]
+ mov r2, #4
+ bl FUN_0202822C
+ add r2, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ mov r3, #4
+ bl FUN_0200AD38
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x18]
+ mov r2, #5
+ bl FUN_0202822C
+ add r2, r0, #0
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_0200B764
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x18]
+ mov r2, #6
+ bl FUN_0202822C
+ add r2, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r1, #2
+ ldr r0, [r4, #0xc]
+ add r3, r1, #0
+ bl FUN_0200AD38
+ add r2, r4, #0
+ add r2, #0xb8
+ ldr r0, [r4, #0x10]
+ ldr r2, [r2]
+ mov r1, #0x15
+ bl FUN_0200A8E0
+ add r1, r4, #0
+ add r2, r4, #0
+ add r1, #0xc0
+ add r2, #0xb8
+ ldr r0, [r4, #0xc]
+ ldr r1, [r1]
+ ldr r2, [r2]
+ bl FUN_0200B7B8
+ add r1, r4, #0
+ add r1, #0xc0
+ mov r0, #0
+ ldr r1, [r1]
+ add r2, r0, #0
+ bl FUN_02002E14
+ mov r1, #0x78
+ sub r3, r1, r0
+ mov r1, #0x81
+ add r2, r4, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ lsl r0, r1, #9
+ str r0, [sp, #8]
+ mov r1, #0
+ mov r0, #0xd2
+ lsl r0, r0, #2
+ str r1, [sp, #0xc]
+ add r2, #0xc0
+ ldr r2, [r2]
+ add r0, r4, r0
+ bl FUN_0201BDE0
+_021D9C18:
+ mov r0, #0xd2
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019220
+ ldr r0, [sp, #0x20]
+ bl FUN_02016A18
+ mov r0, #0x3b
+ mov r1, #0x15
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ mov r0, #6
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x34
+ str r0, [sp, #8]
+ mov r0, #0
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ ldr r0, [sp, #0x14]
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D9C4C: .word 0x00010200
+ thumb_func_end MOD55_021D95EC
+
+ thumb_func_start MOD55_021D9C50
+MOD55_021D9C50: ; 0x021D9C50
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ add r4, r1, #0
+ bl G3X_ResetMtxStack
+ bl G3X_ResetMtxStack_2
+ bl FUN_020B02C8
+ add r0, r5, #0
+ add r0, #0xdc
+ ldr r0, [r0]
+ bl FUN_02006ED4
+ ldr r0, _021D9CB8 ; =0x04000540
+ mov r1, #0
+ str r1, [r0]
+ bl FUN_0200E308
+ cmp r0, #0
+ bne _021D9C82
+ add sp, #0xc
+ add r0, r4, #0
+ pop {r4, r5, pc}
+_021D9C82:
+ ldr r0, _021D9CBC ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _021D9CB2
+ ldr r0, _021D9CC0 ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x34
+ str r0, [sp, #8]
+ mov r0, #0
+ add r1, r0, #0
+ add r2, r0, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ mov r0, #0x3b
+ mov r1, #0x16
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_021D9CB2:
+ add r0, r4, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_021D9CB8: .word 0x04000540
+_021D9CBC: .word 0x021C48B8
+_021D9CC0: .word 0x000005DC
+ thumb_func_end MOD55_021D9C50
+
+ thumb_func_start MOD55_021D9CC4
+MOD55_021D9CC4: ; 0x021D9CC4
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ add r4, r1, #0
+ bl G3X_ResetMtxStack
+ bl G3X_ResetMtxStack_2
+ bl FUN_020B02C8
+ add r0, r5, #0
+ add r0, #0xdc
+ ldr r0, [r0]
+ bl FUN_02006ED4
+ ldr r0, _021D9D84 ; =0x04000540
+ mov r1, #0
+ str r1, [r0]
+ bl FUN_0200E308
+ cmp r0, #0
+ bne _021D9CF6
+ add sp, #0x10
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+_021D9CF6:
+ add r0, r5, #0
+ add r0, #0xe0
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _021D9D16
+ bl FUN_02007534
+ add r0, r5, #0
+ add r0, #0xdc
+ ldr r0, [r0]
+ bl FUN_020072E8
+ add r0, r5, #0
+ mov r1, #0
+ add r0, #0xe0
+ str r1, [r0]
+_021D9D16:
+ ldr r0, [r5, #4]
+ bl MOD55_021D7AA4
+ mov r0, #0x34
+ bl FUN_02016B94
+ str r0, [r5, #4]
+ bl MOD55_021D781C
+ add r0, r5, #0
+ bl MOD55_021D74E0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x34
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0x59
+ mov r1, #0xa
+ mov r3, #4
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x34
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0x59
+ mov r1, #0xb
+ mov r3, #4
+ bl FUN_020068C8
+ mov r0, #3
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x34
+ str r0, [sp, #8]
+ mov r0, #0
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ mov r0, #0x3b
+ mov r1, #2
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r4, #0
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ nop
+_021D9D84: .word 0x04000540
+ thumb_func_end MOD55_021D9CC4
+
+ thumb_func_start MOD55_021D9D88
+MOD55_021D9D88: ; 0x021D9D88
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r6, r0, #0
+ ldr r0, [r6, #4]
+ str r1, [sp, #0x10]
+ mov r1, #3
+ bl FUN_02018744
+ mov r3, #0
+ str r3, [sp]
+ str r3, [sp, #4]
+ str r3, [sp, #8]
+ mov r0, #0x34
+ str r0, [sp, #0xc]
+ ldr r2, [r6, #4]
+ mov r0, #0x59
+ mov r1, #8
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x34
+ str r0, [sp, #0xc]
+ ldr r2, [r6, #4]
+ mov r0, #0x59
+ mov r1, #4
+ mov r3, #1
+ bl FUN_020068C8
+ mov r7, #0x29
+ mov r4, #0
+ add r5, r6, #0
+ lsl r7, r7, #4
+_021D9DCE:
+ ldr r0, [r5, r7]
+ mov r1, #0
+ bl FUN_020200A0
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0xa
+ blt _021D9DCE
+ mov r0, #0xf2
+ mov r1, #0
+ lsl r0, r0, #2
+ strb r1, [r6, r0]
+ add r0, r0, #3
+ strb r1, [r6, r0]
+ add r0, r6, #0
+ bl MOD55_021D7EE4
+ add r0, r6, #0
+ bl MOD55_021D8044
+ mov r0, #0x3b
+ mov r1, #1
+ lsl r0, r0, #4
+ str r1, [r6, r0]
+ ldr r0, [sp, #0x10]
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ thumb_func_end MOD55_021D9D88
+
+ thumb_func_start MOD55_021D9E04
+MOD55_021D9E04: ; 0x021D9E04
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x34
+ add r4, r1, #0
+ str r0, [sp, #8]
+ mov r0, #0
+ mov r1, #0x10
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ mov r0, #0x3b
+ mov r1, #0x18
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r4, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD55_021D9E04
+
+ thumb_func_start MOD55_021D9E34
+MOD55_021D9E34: ; 0x021D9E34
+ ldr r3, _021D9E3C ; =0x0201C78D
+ ldrh r0, [r0]
+ bx r3
+ nop
+_021D9E3C: .word 0x0201C78D
+ thumb_func_end MOD55_021D9E34
+
+ thumb_func_start MOD55_021D9E40
+MOD55_021D9E40: ; 0x021D9E40
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ add r6, r1, #0
+ bl FUN_020286EC
+ add r5, r0, #0
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D9EBE
+ mov r0, #0
+ bl MOD55_021DA27C
+ add r0, r4, #0
+ bl MOD55_021D778C
+ ldr r0, [r4, #8]
+ bl LoadPlayerDataAddress
+ mov r1, #7
+ str r0, [sp]
+ mov r0, #0x34
+ mov r2, #0
+ add r3, r1, #0
+ bl FUN_02077A84
+ str r0, [r4]
+ ldr r0, _021D9EC4 ; =0x020FA5FC
+ ldr r1, [r4]
+ mov r2, #0x34
+ bl FUN_02006234
+ mov r1, #0x3d
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ add r0, r1, #0
+ mov r2, #0x19
+ sub r0, #0x20
+ str r2, [r4, r0]
+ sub r1, #8
+ ldrb r1, [r4, r1]
+ add r0, r5, #0
+ add r1, r4, r1
+ ldrb r1, [r1, #0x18]
+ sub r1, r1, #1
+ bl FUN_020283A4
+ add r5, r0, #0
+ bl MOD55_021D9E34
+ cmp r0, #0
+ ldr r0, [r4]
+ bne _021D9EB8
+ ldr r0, [r0, #0x18]
+ add r1, r5, #0
+ bl FUN_02021E28
+ b _021D9EBE
+_021D9EB8:
+ ldr r0, [r0, #0x18]
+ bl FUN_02021A4C
+_021D9EBE:
+ add r0, r6, #0
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_021D9EC4: .word 0x020FA5FC
+ thumb_func_end MOD55_021D9E40
+
+ thumb_func_start MOD55_021D9EC8
+MOD55_021D9EC8: ; 0x021D9EC8
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ mov r0, #0x3d
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ add r4, r1, #0
+ bl FUN_02006290
+ cmp r0, #0
+ beq _021D9F68
+ mov r0, #0x3d
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl FUN_02006260
+ ldr r1, [r5]
+ ldr r0, [r1, #0x14]
+ cmp r0, #0
+ bne _021D9F18
+ add r0, r5, #0
+ add r0, #0xd4
+ ldr r0, [r0]
+ ldr r1, [r1, #0x18]
+ bl FUN_02021A74
+ ldr r0, [r5, #8]
+ bl FUN_020286EC
+ mov r1, #0xf2
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ add r2, r5, #0
+ add r2, #0xd4
+ add r1, r5, r1
+ ldrb r1, [r1, #0x18]
+ ldr r2, [r2]
+ sub r1, r1, #1
+ bl FUN_020283C0
+_021D9F18:
+ ldr r0, [r5]
+ bl FUN_02077AC4
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_0200E3A0
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0200E3A0
+ mov r0, #0
+ bl MOD55_021DA27C
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x34
+ str r0, [sp, #8]
+ mov r0, #0
+ mov r1, #0x11
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ add r0, r5, #0
+ bl MOD55_021D7504
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD55_021D8A7C
+ mov r0, #1
+ bl MOD55_021DA27C
+ mov r0, #0x3b
+ mov r1, #0x1a
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_021D9F68:
+ add r0, r4, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD55_021D9EC8
+
+ thumb_func_start MOD55_021D9F70
+MOD55_021D9F70: ; 0x021D9F70
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D9F86
+ mov r0, #0x3b
+ mov r1, #3
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_021D9F86:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD55_021D9F70
+
+ thumb_func_start MOD55_021D9F8C
+MOD55_021D9F8C: ; 0x021D9F8C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r0, #0x34
+ add r6, r1, #0
+ bl FUN_02023928
+ add r4, r0, #0
+ ldr r0, [r5, #8]
+ bl FUN_020286EC
+ mov r1, #0xf2
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ add r1, r5, r1
+ ldrb r1, [r1, #0x18]
+ sub r1, r1, #1
+ bl FUN_020283A4
+ add r1, r0, #0
+ add r0, r4, #0
+ bl FUN_0202395C
+ ldr r0, [r5, #0xc]
+ mov r1, #0
+ add r2, r4, #0
+ bl FUN_0200ABC0
+ add r0, r5, #0
+ mov r1, #0x1c
+ bl MOD55_021DA0A4
+ add r0, r4, #0
+ bl FUN_02016A18
+ mov r0, #0x3b
+ mov r1, #0x1c
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD55_021D9F8C
+
+ thumb_func_start MOD55_021D9FDC
+MOD55_021D9FDC: ; 0x021D9FDC
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r0, #0xe4
+ ldr r0, [r0]
+ add r4, r1, #0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _021DA010
+ mov r0, #0x34
+ str r0, [sp]
+ ldr r0, [r5, #4]
+ ldr r1, _021DA014 ; =0x021DA2AC
+ ldr r2, _021DA018 ; =0x000001D9
+ mov r3, #0xb
+ bl FUN_02002198
+ add r1, r5, #0
+ add r1, #0xe8
+ str r0, [r1]
+ mov r0, #0x3b
+ mov r1, #0x1d
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_021DA010:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DA014: .word 0x021DA2AC
+_021DA018: .word 0x000001D9
+ thumb_func_end MOD55_021D9FDC
+
+ thumb_func_start MOD55_021DA01C
+MOD55_021DA01C: ; 0x021DA01C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r0, #0xe8
+ add r4, r1, #0
+ ldr r0, [r0]
+ mov r1, #0x34
+ bl FUN_020021AC
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _021DA038
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+_021DA038:
+ cmp r0, #0
+ bne _021DA056
+ ldr r0, [r5, #8]
+ bl FUN_020286EC
+ mov r1, #0xf2
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ add r1, r5, r1
+ ldrb r1, [r1, #0x18]
+ sub r1, r1, #1
+ bl FUN_02028468
+ mov r1, #2
+ b _021DA070
+_021DA056:
+ mov r0, #0x2b
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r0, #0xad
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r1, #3
+_021DA070:
+ mov r0, #0x3b
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r5, #0
+ bl MOD55_021DA214
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD55_021DA01C
+
+ thumb_func_start MOD55_021DA080
+MOD55_021DA080: ; 0x021DA080
+ push {lr}
+ sub sp, #0xc
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x34
+ str r0, [sp, #8]
+ mov r0, #0
+ mov r1, #0x10
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ mov r0, #2
+ add sp, #0xc
+ pop {pc}
+ .align 2, 0
+ thumb_func_end MOD55_021DA080
+
+ thumb_func_start MOD55_021DA0A4
+MOD55_021DA0A4: ; 0x021DA0A4
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r5, #8]
+ add r6, r1, #0
+ bl LoadPlayerDataAddress
+ bl FUN_02024FF4
+ add r4, r0, #0
+ mov r0, #0xce
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _021DA0D0
+ mov r0, #0xce
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+_021DA0D0:
+ mov r0, #0x13
+ str r0, [sp]
+ mov r0, #0x1b
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #0xc
+ str r0, [sp, #0xc]
+ ldr r0, _021DA154 ; =0x0000012D
+ mov r1, #0xce
+ str r0, [sp, #0x10]
+ lsl r1, r1, #2
+ mov r2, #2
+ ldr r0, [r5, #4]
+ add r1, r5, r1
+ add r3, r2, #0
+ bl FUN_02019064
+ add r2, r5, #0
+ add r2, #0xb8
+ ldr r0, [r5, #0x10]
+ ldr r2, [r2]
+ add r1, r6, #0
+ bl FUN_0200A8E0
+ add r1, r5, #0
+ add r2, r5, #0
+ add r1, #0xbc
+ add r2, #0xb8
+ ldr r0, [r5, #0xc]
+ ldr r1, [r1]
+ ldr r2, [r2]
+ bl FUN_0200B7B8
+ mov r0, #0xce
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r0, #0xce
+ lsl r0, r0, #2
+ ldr r2, _021DA158 ; =0x000001E2
+ add r0, r5, r0
+ mov r1, #1
+ mov r3, #0xa
+ bl FUN_0200D0BC
+ mov r3, #0
+ str r3, [sp]
+ str r4, [sp, #4]
+ add r2, r5, #0
+ mov r0, #0xce
+ lsl r0, r0, #2
+ str r3, [sp, #8]
+ add r2, #0xbc
+ ldr r2, [r2]
+ add r0, r5, r0
+ mov r1, #1
+ bl FUN_0201BD84
+ add r5, #0xe4
+ str r0, [r5]
+ add sp, #0x14
+ pop {r3, r4, r5, r6, pc}
+ nop
+_021DA154: .word 0x0000012D
+_021DA158: .word 0x000001E2
+ thumb_func_end MOD55_021DA0A4
+
+ thumb_func_start MOD55_021DA15C
+MOD55_021DA15C: ; 0x021DA15C
+ push {r4, r5, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ mov r0, #0xce
+ lsl r0, r0, #2
+ add r0, r5, r0
+ add r4, r1, #0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _021DA17C
+ mov r0, #0xce
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+_021DA17C:
+ mov r0, #0x13
+ str r0, [sp]
+ mov r0, #0x1b
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #0xc
+ str r0, [sp, #0xc]
+ ldr r0, _021DA20C ; =0x0000012D
+ mov r1, #0xce
+ str r0, [sp, #0x10]
+ lsl r1, r1, #2
+ mov r2, #2
+ ldr r0, [r5, #4]
+ add r1, r5, r1
+ add r3, r2, #0
+ bl FUN_02019064
+ add r2, r5, #0
+ add r2, #0xb8
+ ldr r0, [r5, #0x10]
+ ldr r2, [r2]
+ add r1, r4, #0
+ bl FUN_0200A8E0
+ add r1, r5, #0
+ add r2, r5, #0
+ add r1, #0xbc
+ add r2, #0xb8
+ ldr r0, [r5, #0xc]
+ ldr r1, [r1]
+ ldr r2, [r2]
+ bl FUN_0200B7B8
+ mov r0, #0xce
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r0, #0xce
+ lsl r0, r0, #2
+ ldr r2, _021DA210 ; =0x000001E2
+ add r0, r5, r0
+ mov r1, #1
+ mov r3, #0xa
+ bl FUN_0200D0BC
+ mov r3, #0
+ add r2, r5, #0
+ str r3, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ mov r0, #0xce
+ lsl r0, r0, #2
+ str r3, [sp, #8]
+ add r2, #0xbc
+ ldr r2, [r2]
+ add r0, r5, r0
+ mov r1, #1
+ bl FUN_0201BD84
+ add r1, r5, #0
+ add r1, #0xe4
+ str r0, [r1]
+ mov r0, #0xce
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019220
+ add sp, #0x14
+ pop {r4, r5, pc}
+ .align 2, 0
+_021DA20C: .word 0x0000012D
+_021DA210: .word 0x000001E2
+ thumb_func_end MOD55_021DA15C
+
+ thumb_func_start MOD55_021DA214
+MOD55_021DA214: ; 0x021DA214
+ mov r1, #0xce
+ lsl r1, r1, #2
+ add r0, r0, r1
+ ldr r3, _021DA220 ; =0x0200D0E1
+ mov r1, #0
+ bx r3
+ .align 2, 0
+_021DA220: .word 0x0200D0E1
+ thumb_func_end MOD55_021DA214
+
+ thumb_func_start MOD55_021DA224
+MOD55_021DA224: ; 0x021DA224
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r7, r1, #0
+ add r4, r2, #0
+ add r6, r3, #0
+ cmp r5, #0
+ beq _021DA276
+ bl FUN_020286EC
+ bl FUN_02028228
+ add r1, r4, #0
+ add r2, r6, #0
+ bl FUN_020973B4
+ cmp r0, #0
+ bne _021DA24C
+ mov r0, #0
+ mvn r0, r0
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA24C:
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ add r3, sp, #0
+ bl FUN_02033918
+ cmp r0, #0
+ bne _021DA262
+ mov r0, #1
+ mvn r0, r0
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA262:
+ add r0, r5, #0
+ bl FUN_020286EC
+ add r1, r7, #0
+ bl FUN_0202838C
+ add r1, r4, #0
+ add r2, r6, #0
+ bl FUN_02096D2C
+_021DA276:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD55_021DA224
+
+ thumb_func_start MOD55_021DA27C
+MOD55_021DA27C: ; 0x021DA27C
+ push {r4, lr}
+ add r4, r0, #0
+ lsl r1, r4, #0x18
+ mov r0, #0xf
+ lsr r1, r1, #0x18
+ bl FUN_0201E6E4
+ lsl r1, r4, #0x18
+ mov r0, #1
+ lsr r1, r1, #0x18
+ bl FUN_0201E74C
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD55_021DA27C
+
+ .section .rodata
+ ; 0x021DA298
+ .incbin "baserom.nds", 0x2A15B8, 0x1E8
+
+ .section .data
+ ; 0x021DA4A0
+ .incbin "baserom.nds", 0x2A17C0, 0x80