summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arm9/arm9.lsf6
-rw-r--r--arm9/global.inc30
-rw-r--r--arm9/modules/63/asm/mod63_021D74E0.s2534
-rw-r--r--arm9/modules/63/asm/mod63_021D8890.s3831
-rw-r--r--arm9/modules/63/asm/mod63_021DA640.s1086
-rw-r--r--arm9/modules/63/asm/mod63_021DAE5C.s794
-rw-r--r--arm9/modules/63/asm/mod63_021DB450.s720
-rw-r--r--arm9/modules/63/asm/module_63.s8940
8 files changed, 9000 insertions, 8941 deletions
diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf
index 008ca0ad..27d530ed 100644
--- a/arm9/arm9.lsf
+++ b/arm9/arm9.lsf
@@ -941,7 +941,11 @@ Overlay MODULE_63
{
### Title Demo ###
After arm9
- Object module_63.o
+ Object mod63_021D74E0.o
+ Object mod63_021D8890.o
+ Object mod63_021DA640.o
+ Object mod63_021DAE5C.o
+ Object mod63_021DB450.o
}
Overlay MODULE_64
diff --git a/arm9/global.inc b/arm9/global.inc
index 63a62566..35af1ebe 100644
--- a/arm9/global.inc
+++ b/arm9/global.inc
@@ -7389,6 +7389,36 @@
.extern MOD62_02230F70
.extern MOD62_02230F80
.extern MOD62_022310CC
+.extern MOD63_021D74E0
+.extern MOD63_021D759C
+.extern MOD63_021D77B4
+.extern MOD63_021DA6E0
+.extern MOD63_021DA6E8
+.extern MOD63_021DAA04
+.extern MOD63_021DAA5C
+.extern MOD63_021DABCC
+.extern MOD63_021DAC18
+.extern MOD63_021DAC24
+.extern MOD63_021DAC6C
+.extern MOD63_021DAC80
+.extern MOD63_021DACA0
+.extern MOD63_021DACC0
+.extern MOD63_021DAD18
+.extern MOD63_021DAD6C
+.extern MOD63_021DAEF8
+.extern MOD63_021DAF20
+.extern MOD63_021DAF4C
+.extern MOD63_021DAF80
+.extern MOD63_021DAF9C
+.extern MOD63_021DB1AC
+.extern MOD63_021DB38C
+.extern MOD63_021DB498
+.extern MOD63_021DB49C
+.extern MOD63_021DB580
+.extern MOD63_021DB598
+.extern MOD63_021DB5A8
+.extern MOD63_021DB5CC
+.extern MOD63_021DBE18
.extern MOD64_021D74E0
.extern MOD64_021D7640
.extern MOD64_021D76F4
diff --git a/arm9/modules/63/asm/mod63_021D74E0.s b/arm9/modules/63/asm/mod63_021D74E0.s
new file mode 100644
index 00000000..0835af0b
--- /dev/null
+++ b/arm9/modules/63/asm/mod63_021D74E0.s
@@ -0,0 +1,2534 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD63_021D74E0
+MOD63_021D74E0: ; 0x021D74E0
+ push {r4, lr}
+ ldr r1, _021D7584 ; =0x00007FFF
+ add r4, r0, #0
+ mov r0, #0
+ bl FUN_0200E3A0
+ ldr r1, _021D7584 ; =0x00007FFF
+ mov r0, #1
+ bl FUN_0200E3A0
+ ldr r1, _021D7588 ; =0x04001050
+ mov r0, #0
+ strh r0, [r1]
+ ldr r1, _021D758C ; =0x04000050
+ strh r0, [r1]
+ add r1, r0, #0
+ bl FUN_02015F10
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F34
+ bl FUN_0201E6D8
+ bl FUN_0201E740
+ mov r2, #1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2]
+ ldr r0, _021D7590 ; =0xFFFFE0FF
+ and r1, r0
+ str r1, [r2]
+ ldr r2, _021D7594 ; =0x04001000
+ ldr r1, [r2]
+ and r0, r1
+ str r0, [r2]
+ mov r0, #4
+ mov r1, #8
+ bl FUN_0201669C
+ mov r2, #1
+ mov r0, #3
+ mov r1, #0x1e
+ lsl r2, r2, #0x12
+ bl FUN_0201681C
+ mov r1, #0x79
+ add r0, r4, #0
+ lsl r1, r1, #2
+ mov r2, #0x1e
+ bl FUN_02006268
+ mov r2, #0x79
+ mov r1, #0
+ lsl r2, r2, #2
+ add r4, r0, #0
+ bl memset
+ mov r0, #0x1e
+ str r0, [r4]
+ mov r0, #0x1d
+ mov r1, #0
+ lsl r0, r0, #4
+ strh r1, [r4, r0]
+ add r0, #0x10
+ str r1, [r4, r0]
+ bl MOD63_021D7838
+ add r0, r4, #0
+ bl MOD63_021D7A48
+ add r0, r4, #0
+ bl MOD63_021D7880
+ ldr r0, _021D7598 ; =MOD63_021D782C
+ add r1, r4, #0
+ bl FUN_02015F10
+ bl FUN_0201E788
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+_021D7584: .word 0x00007FFF
+_021D7588: .word 0x04001050
+_021D758C: .word 0x04000050
+_021D7590: .word 0xFFFFE0FF
+_021D7594: .word 0x04001000
+_021D7598: .word MOD63_021D782C
+ thumb_func_end MOD63_021D74E0
+
+ thumb_func_start MOD63_021D759C
+MOD63_021D759C: ; 0x021D759C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ ldr r0, [r5]
+ cmp r0, #6
+ bhi _021D7614
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D75BA: ; jump table
+ .short _021D75C8 - _021D75BA - 2 ; case 0
+ .short _021D7604 - _021D75BA - 2 ; case 1
+ .short _021D7622 - _021D75BA - 2 ; case 2
+ .short _021D7638 - _021D75BA - 2 ; case 3
+ .short _021D76FA - _021D75BA - 2 ; case 4
+ .short _021D773C - _021D75BA - 2 ; case 5
+ .short _021D777E - _021D75BA - 2 ; case 6
+_021D75C8:
+ add r0, r4, #0
+ ldr r1, [r4, #4]
+ ldr r2, [r4]
+ add r0, #0xb4
+ bl MOD63_021D7C18
+ cmp r0, #1
+ bne _021D7614
+ add r0, r4, #0
+ ldr r1, _021D77A4 ; =gUnknown21C48B8
+ mov r2, #0
+ add r0, #0xb4
+ str r2, [r0]
+ ldr r0, [r1, #0x6c]
+ cmp r0, #0
+ bne _021D75F6
+ mov r0, #0x75
+ mov r1, #0x1e
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ mov r0, #2
+ str r0, [r5]
+ b _021D779C
+_021D75F6:
+ mov r0, #0x75
+ lsl r0, r0, #2
+ str r2, [r4, r0]
+ str r2, [r1, #0x6c]
+ mov r0, #1
+ str r0, [r5]
+ b _021D779C
+_021D7604:
+ add r0, r4, #0
+ ldr r1, [r4, #4]
+ ldr r2, [r4]
+ add r0, #0xb4
+ bl MOD63_021D7D74
+ cmp r0, #1
+ beq _021D7616
+_021D7614:
+ b _021D779C
+_021D7616:
+ mov r0, #0
+ add r4, #0xb4
+ str r0, [r4]
+ mov r0, #2
+ str r0, [r5]
+ b _021D779C
+_021D7622:
+ mov r0, #0
+ bl FUN_0200415C
+ mov r0, #1
+ ldr r1, _021D77A8 ; =0x00000495
+ add r2, r0, #0
+ bl FUN_0200433C
+ mov r0, #3
+ str r0, [r5]
+ b _021D779C
+_021D7638:
+ mov r0, #0x75
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ cmp r1, #0
+ beq _021D765A
+ sub r1, r1, #1
+ str r1, [r4, r0]
+ mov r1, #0
+ sub r0, #0x4c
+ str r1, [r4, r0]
+ add r0, r4, #0
+ ldr r1, [r4, #4]
+ ldr r2, [r4]
+ add r0, #0xb4
+ bl MOD63_021D8260
+ b _021D779C
+_021D765A:
+ mov r1, #1
+ sub r0, #0x4c
+ str r1, [r4, r0]
+ add r0, r4, #0
+ ldr r1, [r4, #4]
+ ldr r2, [r4]
+ add r0, #0xb4
+ bl MOD63_021D8260
+ mov r1, #0x1e
+ lsl r1, r1, #4
+ ldr r0, [r4, r1]
+ ldr r2, _021D77A4 ; =gUnknown21C48B8
+ add r0, r0, #1
+ str r0, [r4, r1]
+ ldr r3, [r2, #0x48]
+ mov r0, #1
+ add r6, r3, #0
+ and r6, r0
+ cmp r6, #1
+ beq _021D768C
+ mov r6, #8
+ and r3, r6
+ cmp r3, #8
+ bne _021D76A8
+_021D768C:
+ mov r0, #0x1d
+ mov r1, #1
+ lsl r0, r0, #4
+ strh r1, [r4, r0]
+ mov r0, #0
+ mov r1, #0x3c
+ bl FUN_020053CC
+ ldr r0, _021D77AC ; =0x000005F4
+ bl FUN_020054C8
+ mov r0, #4
+ str r0, [r5]
+ b _021D779C
+_021D76A8:
+ ldr r6, [r2, #0x44]
+ mov r3, #0x46
+ and r3, r6
+ cmp r3, #0x46
+ bne _021D76D4
+ mov r2, #2
+ sub r1, #0x10
+ strh r2, [r4, r1]
+ mov r1, #6
+ str r1, [sp]
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ str r0, [sp, #8]
+ mov r0, #0
+ add r1, r0, #0
+ add r2, r0, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ mov r0, #6
+ str r0, [r5]
+ b _021D779C
+_021D76D4:
+ mov r3, #0xe1
+ ldr r6, [r4, r1]
+ lsl r3, r3, #2
+ cmp r6, r3
+ ble _021D779C
+ mov r3, #3
+ sub r1, #0x10
+ strh r3, [r4, r1]
+ mov r1, #0
+ str r0, [r2, #0x6c]
+ bl FUN_0201E74C
+ mov r0, #0
+ mov r1, #0x3c
+ bl FUN_020053CC
+ mov r0, #5
+ str r0, [r5]
+ b _021D779C
+_021D76FA:
+ mov r0, #0x62
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ add r0, r4, #0
+ ldr r1, [r4, #4]
+ ldr r2, [r4]
+ add r0, #0xb4
+ bl MOD63_021D8260
+ bl FUN_02005404
+ cmp r0, #0
+ bne _021D779C
+ ldr r0, _021D77A8 ; =0x00000495
+ mov r1, #0
+ bl FUN_02005350
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ str r0, [sp, #8]
+ mov r0, #0
+ add r1, r0, #0
+ add r2, r0, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ mov r0, #6
+ str r0, [r5]
+ b _021D779C
+_021D773C:
+ mov r0, #0x62
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ add r0, r4, #0
+ ldr r1, [r4, #4]
+ ldr r2, [r4]
+ add r0, #0xb4
+ bl MOD63_021D8260
+ bl FUN_02005404
+ cmp r0, #0
+ bne _021D779C
+ ldr r0, _021D77A8 ; =0x00000495
+ mov r1, #0
+ bl FUN_02005350
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ ldr r3, _021D77B0 ; =0x00007FFF
+ str r0, [sp, #8]
+ mov r0, #0
+ add r1, r0, #0
+ add r2, r0, #0
+ bl FUN_0200E1D0
+ mov r0, #6
+ str r0, [r5]
+ b _021D779C
+_021D777E:
+ bl FUN_0200E308
+ cmp r0, #1
+ bne _021D779C
+ add r0, r4, #0
+ ldr r1, [r4, #4]
+ ldr r2, [r4]
+ add r0, #0xb4
+ bl MOD63_021D8360
+ cmp r0, #1
+ bne _021D779C
+ add sp, #0xc
+ mov r0, #1
+ pop {r3, r4, r5, r6, pc}
+_021D779C:
+ mov r0, #0
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ nop
+_021D77A4: .word gUnknown21C48B8
+_021D77A8: .word 0x00000495
+_021D77AC: .word 0x000005F4
+_021D77B0: .word 0x00007FFF
+ thumb_func_end MOD63_021D759C
+
+ thumb_func_start MOD63_021D77B4
+MOD63_021D77B4: ; 0x021D77B4
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ bl FUN_02006278
+ add r6, r0, #0
+ mov r0, #0x1d
+ lsl r0, r0, #4
+ ldrh r5, [r6, r0]
+ mov r0, #0
+ add r1, r0, #0
+ ldr r4, [r6]
+ bl FUN_02015F10
+ add r0, r6, #0
+ bl MOD63_021D78B0
+ add r0, r6, #0
+ bl MOD63_021D7B9C
+ add r0, r7, #0
+ bl FUN_0200627C
+ add r0, r4, #0
+ bl FUN_020168D0
+ cmp r5, #1
+ beq _021D77F2
+ cmp r5, #2
+ beq _021D77FE
+ cmp r5, #3
+ beq _021D780A
+_021D77F2:
+ mov r0, #0
+ ldr r1, _021D781C ; =UNK_020FF3D4
+ mvn r0, r0
+ bl FUN_02000E7C
+ b _021D7818
+_021D77FE:
+ mov r0, #0
+ ldr r1, _021D7820 ; =UNK_020FF368
+ mvn r0, r0
+ bl FUN_02000E7C
+ b _021D7818
+_021D780A:
+ mov r0, #0
+ bl FUN_0200415C
+ ldr r0, _021D7824 ; =SDK_OVERLAY_MODULE_63_ID
+ ldr r1, _021D7828 ; =MOD63_021DBE18
+ bl FUN_02000E7C
+_021D7818:
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D781C: .word UNK_020FF3D4
+_021D7820: .word UNK_020FF368
+_021D7824: .word SDK_OVERLAY_MODULE_63_ID
+_021D7828: .word MOD63_021DBE18
+ thumb_func_end MOD63_021D77B4
+
+ thumb_func_start MOD63_021D782C
+MOD63_021D782C: ; 0x021D782C
+ ldr r3, _021D7834 ; =FUN_0201AB60
+ ldr r0, [r0, #4]
+ bx r3
+ nop
+_021D7834: .word FUN_0201AB60
+ thumb_func_end MOD63_021D782C
+
+ thumb_func_start MOD63_021D7838
+MOD63_021D7838: ; 0x021D7838
+ push {r4, lr}
+ sub sp, #0x28
+ ldr r4, _021D7854 ; =MOD63_021DBA90
+ add r3, sp, #0
+ mov r2, #5
+_021D7842:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _021D7842
+ add r0, sp, #0
+ bl FUN_0201E66C
+ add sp, #0x28
+ pop {r4, pc}
+ .align 2, 0
+_021D7854: .word MOD63_021DBA90
+ thumb_func_end MOD63_021D7838
+
+ thumb_func_start MOD63_021D7858
+MOD63_021D7858: ; 0x021D7858
+ ldr r0, _021D787C ; =gUnknown21C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #1
+ and r0, r1
+ cmp r0, #1
+ beq _021D7874
+ mov r0, #8
+ and r0, r1
+ cmp r0, #8
+ beq _021D7874
+ mov r0, #4
+ and r0, r1
+ cmp r0, #4
+ bne _021D7878
+_021D7874:
+ mov r0, #1
+ bx lr
+_021D7878:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+_021D787C: .word gUnknown21C48B8
+ thumb_func_end MOD63_021D7858
+
+ thumb_func_start MOD63_021D7880
+MOD63_021D7880: ; 0x021D7880
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ mov r0, #4
+ mov r1, #0
+ str r0, [sp]
+ str r1, [sp, #4]
+ ldr r0, [r4]
+ mov r2, #1
+ add r3, r1, #0
+ bl FUN_02022318
+ str r0, [r4, #8]
+ ldr r1, _021D78AC ; =0x04000008
+ mov r0, #3
+ ldrh r2, [r1]
+ bic r2, r0
+ mov r0, #1
+ orr r0, r2
+ strh r0, [r1]
+ add sp, #8
+ pop {r4, pc}
+ .align 2, 0
+_021D78AC: .word 0x04000008
+ thumb_func_end MOD63_021D7880
+
+ thumb_func_start MOD63_021D78B0
+MOD63_021D78B0: ; 0x021D78B0
+ ldr r3, _021D78B8 ; =FUN_020223BC
+ ldr r0, [r0, #8]
+ bx r3
+ nop
+_021D78B8: .word FUN_020223BC
+ thumb_func_end MOD63_021D78B0
+
+ thumb_func_start MOD63_021D78BC
+MOD63_021D78BC: ; 0x021D78BC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r4, r3, #0
+ add r5, r0, #0
+ add r6, r1, #0
+ add r7, r2, #0
+ add r0, #0x68
+ add r1, r4, #0
+ mov r2, #4
+ bl FUN_02016B20
+ mov r0, #0x30
+ add r1, r6, #0
+ add r2, r4, #0
+ bl AllocAndReadWholeNarcMemberByIdPair
+ str r0, [r5, #0x5c]
+ mov r0, #0x30
+ add r1, r7, #0
+ add r2, r4, #0
+ bl AllocAndReadWholeNarcMemberByIdPair
+ add r1, r5, #0
+ add r2, r5, #0
+ str r0, [r5, #0x60]
+ add r0, r5, #4
+ add r1, #0x58
+ add r2, #0x5c
+ bl FUN_0201B234
+ ldr r0, [r5, #0x60]
+ mov r1, #0
+ bl FUN_020BC4C8
+ add r4, r0, #0
+ add r0, r5, #0
+ ldr r2, [r5, #0x58]
+ add r0, #0x68
+ add r1, r4, #0
+ bl FUN_020BB8D0
+ str r0, [r5, #0x64]
+ ldr r0, [r5, #0x5c]
+ bl FUN_020BC0FC
+ add r3, r0, #0
+ ldr r0, [r5, #0x64]
+ ldr r2, [r5, #0x58]
+ add r1, r4, #0
+ bl FUN_020B8110
+ ldr r1, [r5, #0x64]
+ add r0, r5, #4
+ bl FUN_020B7EFC
+ add r4, r5, #0
+ add r6, sp, #0xc
+ mov r3, #0
+ str r3, [r6]
+ add r2, sp, #0
+ str r3, [r6, #4]
+ str r3, [r2]
+ str r3, [r6, #8]
+ str r3, [r2, #4]
+ ldmia r6!, {r0, r1}
+ str r3, [r2, #8]
+ add r4, #0x78
+ stmia r4!, {r0, r1}
+ ldr r0, [r6]
+ ldr r6, _021D796C ; =MOD63_021DB9A8
+ str r0, [r4]
+ add r4, r5, #0
+ ldmia r6!, {r0, r1}
+ add r4, #0x84
+ stmia r4!, {r0, r1}
+ ldr r0, [r6]
+ str r0, [r4]
+ add r4, r5, #0
+ ldmia r2!, {r0, r1}
+ add r4, #0x90
+ stmia r4!, {r0, r1}
+ ldr r0, [r2]
+ add r5, #0xa0
+ str r0, [r4]
+ str r3, [r5]
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D796C: .word MOD63_021DB9A8
+ thumb_func_end MOD63_021D78BC
+
+ thumb_func_start MOD63_021D7970
+MOD63_021D7970: ; 0x021D7970
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #0x64]
+ add r0, #0x68
+ bl thunk_FUN_020ae84c
+ ldr r0, [r4, #0x60]
+ bl FreeToHeap
+ ldr r0, [r4, #0x5c]
+ bl FreeToHeap
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD63_021D7970
+
+ thumb_func_start MOD63_021D798C
+MOD63_021D798C: ; 0x021D798C
+ push {r4, r5, lr}
+ sub sp, #0x24
+ ldr r5, _021D7A44 ; =MOD63_021DBA6C
+ add r4, r0, #0
+ add r3, sp, #0
+ mov r2, #4
+_021D7998:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _021D7998
+ ldr r0, [r5]
+ str r0, [r3]
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _021D7A3E
+ cmp r0, #1
+ beq _021D79B6
+ cmp r0, #2
+ beq _021D79CA
+ add sp, #0x24
+ pop {r4, r5, pc}
+_021D79B6:
+ bl FUN_020222AC
+ mov r0, #0
+ mov r1, #1
+ bl FUN_020222B4
+ mov r0, #0
+ add sp, #0x24
+ str r0, [r4]
+ pop {r4, r5, pc}
+_021D79CA:
+ bl FUN_020222AC
+ bl FUN_0201EBA4
+ add r1, r4, #0
+ add r0, sp, #0
+ add r1, #0x90
+ bl FUN_0201CAA8
+ add r1, r4, #0
+ add r3, r4, #0
+ add r0, r4, #4
+ add r1, #0x78
+ add r2, sp, #0
+ add r3, #0x84
+ bl FUN_0201B26C
+ add r0, r4, #0
+ add r0, #0xa0
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _021D7A00
+ cmp r0, #1
+ beq _021D7A08
+ cmp r0, #2
+ beq _021D7A18
+ b _021D7A36
+_021D7A00:
+ ldr r0, [r4, #0x64]
+ mov r1, #0
+ str r1, [r0]
+ b _021D7A36
+_021D7A08:
+ ldr r0, [r4, #0x64]
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _021D7A18
+ mov r0, #0
+ add r4, #0xa0
+ str r0, [r4]
+ b _021D7A36
+_021D7A18:
+ ldr r2, [r4, #0x64]
+ mov r0, #1
+ ldr r1, [r2]
+ lsl r0, r0, #0xc
+ add r0, r1, r0
+ str r0, [r2]
+ ldr r2, [r4, #0x64]
+ ldr r0, [r2, #8]
+ ldr r1, [r2]
+ ldrh r0, [r0, #4]
+ lsl r0, r0, #0xc
+ cmp r1, r0
+ bne _021D7A36
+ mov r0, #0
+ str r0, [r2]
+_021D7A36:
+ mov r0, #0
+ mov r1, #1
+ bl FUN_020222B4
+_021D7A3E:
+ add sp, #0x24
+ pop {r4, r5, pc}
+ nop
+_021D7A44: .word MOD63_021DBA6C
+ thumb_func_end MOD63_021D798C
+
+ thumb_func_start MOD63_021D7A48
+MOD63_021D7A48: ; 0x021D7A48
+ push {r3, r4, r5, lr}
+ sub sp, #0xb8
+ add r4, r0, #0
+ ldr r0, [r4]
+ bl FUN_02016B94
+ add r3, sp, #0xa8
+ ldr r5, _021D7B80 ; =MOD63_021DB9B4
+ str r0, [r4, #4]
+ 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, _021D7B84 ; =MOD63_021DB9E0
+ add r3, sp, #0x8c
+ 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]
+ ldr r0, [r4, #4]
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r5, _021D7B88 ; =MOD63_021DB9C4
+ 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, #5
+ str r0, [r3]
+ ldr r0, [r4, #4]
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r5, _021D7B8C ; =MOD63_021DBA50
+ 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, #6
+ str r0, [r3]
+ ldr r0, [r4, #4]
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r5, _021D7B90 ; =MOD63_021DBA34
+ 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]
+ ldr r0, [r4, #4]
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r5, _021D7B94 ; =MOD63_021DB9FC
+ 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]
+ str r0, [r3]
+ ldr r0, [r4, #4]
+ mov r1, #3
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r5, _021D7B98 ; =MOD63_021DBA18
+ add r3, sp, #0
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #7
+ str r0, [r3]
+ ldr r0, [r4, #4]
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #2
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #4
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #8
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0201E74C
+ mov r0, #2
+ mov r1, #0
+ bl FUN_0201E74C
+ mov r0, #4
+ mov r1, #0
+ bl FUN_0201E74C
+ mov r0, #8
+ mov r1, #0
+ bl FUN_0201E74C
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02017FE4
+ mov r0, #4
+ mov r1, #0
+ bl FUN_02017FE4
+ add sp, #0xb8
+ pop {r3, r4, r5, pc}
+ nop
+_021D7B80: .word MOD63_021DB9B4
+_021D7B84: .word MOD63_021DB9E0
+_021D7B88: .word MOD63_021DB9C4
+_021D7B8C: .word MOD63_021DBA50
+_021D7B90: .word MOD63_021DBA34
+_021D7B94: .word MOD63_021DB9FC
+_021D7B98: .word MOD63_021DBA18
+ thumb_func_end MOD63_021D7A48
+
+ thumb_func_start MOD63_021D7B9C
+MOD63_021D7B9C: ; 0x021D7B9C
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #2
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #4
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #8
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0201E74C
+ mov r0, #2
+ mov r1, #0
+ bl FUN_0201E74C
+ mov r0, #4
+ mov r1, #0
+ bl FUN_0201E74C
+ mov r0, #8
+ mov r1, #0
+ bl FUN_0201E74C
+ ldr r0, [r4, #4]
+ mov r1, #4
+ bl FUN_020178A0
+ ldr r0, [r4, #4]
+ mov r1, #5
+ bl FUN_020178A0
+ ldr r0, [r4, #4]
+ mov r1, #6
+ bl FUN_020178A0
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_020178A0
+ ldr r0, [r4, #4]
+ mov r1, #3
+ bl FUN_020178A0
+ ldr r0, [r4, #4]
+ mov r1, #7
+ bl FUN_020178A0
+ ldr r0, [r4, #4]
+ bl FreeToHeap
+ pop {r4, pc}
+ thumb_func_end MOD63_021D7B9C
+
+ thumb_func_start MOD63_021D7C18
+MOD63_021D7C18: ; 0x021D7C18
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r5, r0, #0
+ add r6, r1, #0
+ add r4, r2, #0
+ bl MOD63_021D86E0
+ add r0, r6, #0
+ add r1, r4, #0
+ add r2, r5, #0
+ bl MOD63_021D83A8
+ ldr r0, _021D7D5C ; =gGameVersion
+ ldrb r0, [r0]
+ cmp r0, #0xa
+ bne _021D7C46
+ add r0, r5, #4
+ mov r1, #6
+ mov r2, #0x13
+ add r3, r4, #0
+ bl MOD63_021D78BC
+ b _021D7C52
+_021D7C46:
+ add r0, r5, #4
+ mov r1, #5
+ mov r2, #0x12
+ add r3, r4, #0
+ bl MOD63_021D78BC
+_021D7C52:
+ ldr r0, _021D7D60 ; =0x04000060
+ ldr r2, _021D7D64 ; =0xFFFFCFFF
+ ldrh r1, [r0]
+ add r3, r1, #0
+ and r3, r2
+ mov r1, #0x10
+ orr r1, r3
+ strh r1, [r0]
+ ldrh r1, [r0]
+ and r2, r1
+ mov r1, #8
+ orr r1, r2
+ strh r1, [r0]
+ add r0, r5, #0
+ add r0, #0xf0
+ ldr r1, [r0]
+ add r0, r5, #0
+ add r0, #0xbc
+ str r1, [r0]
+ add r0, r5, #0
+ add r0, #0xf4
+ ldr r1, [r0]
+ add r0, r5, #0
+ add r0, #0xc0
+ str r1, [r0]
+ add r0, r5, #0
+ add r0, #0xf8
+ ldr r1, [r0]
+ add r0, r5, #0
+ add r0, #0xc4
+ str r1, [r0]
+ add r0, r5, #0
+ add r0, #0xd8
+ ldr r1, [r0]
+ add r0, r5, #0
+ add r0, #0xc8
+ str r1, [r0]
+ add r0, r5, #0
+ add r0, #0xdc
+ ldr r1, [r0]
+ add r0, r5, #0
+ add r0, #0xcc
+ str r1, [r0]
+ add r0, r5, #0
+ add r0, #0xe0
+ ldr r1, [r0]
+ add r0, r5, #0
+ add r0, #0xd0
+ str r1, [r0]
+ add r0, r4, #0
+ bl FUN_0201EB64
+ add r1, r5, #0
+ add r1, #0xa0
+ str r0, [r1]
+ mov r3, #0
+ add r0, r5, #0
+ add r1, r5, #0
+ mov r2, #0xb6
+ str r3, [sp]
+ add r0, #0xa0
+ ldr r0, [r0]
+ add r1, #0xc8
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xbc
+ lsl r2, r2, #4
+ bl FUN_0201ED5C
+ add r2, r5, #0
+ add r2, #0xa0
+ mov r1, #0x19
+ ldr r2, [r2]
+ mov r0, #0
+ lsl r1, r1, #0xe
+ bl FUN_0201EC94
+ add r1, r5, #0
+ add r1, #0xa0
+ ldr r1, [r1]
+ mov r0, #0
+ bl FUN_0201EE2C
+ add r0, r5, #0
+ add r0, #0xa0
+ ldr r0, [r0]
+ bl FUN_0201EB8C
+ mov r3, #0x42
+ lsl r3, r3, #2
+ add r2, r3, #2
+ ldrsh r1, [r5, r3]
+ add r3, r3, #4
+ ldrsh r2, [r5, r2]
+ ldrsh r3, [r5, r3]
+ mov r0, #0
+ bl FUN_020B8418
+ ldr r1, _021D7D68 ; =0x00007FFF
+ mov r0, #0
+ bl FUN_020B8404
+ ldr r3, _021D7D6C ; =0x0000010E
+ mov r0, #1
+ add r2, r3, #2
+ ldrsh r1, [r5, r3]
+ add r3, r3, #4
+ ldrsh r2, [r5, r2]
+ ldrsh r3, [r5, r3]
+ bl FUN_020B8418
+ ldr r1, _021D7D68 ; =0x00007FFF
+ mov r0, #1
+ bl FUN_020B8404
+ ldr r2, _021D7D60 ; =0x04000060
+ ldr r0, _021D7D64 ; =0xFFFFCFFF
+ ldrh r1, [r2]
+ and r1, r0
+ mov r0, #0x10
+ orr r0, r1
+ strh r0, [r2]
+ ldr r0, _021D7D70 ; =gUnk021C4918
+ mov r1, #1
+ strb r1, [r0, #5]
+ bl FUN_0201E7A0
+ mov r0, #2
+ str r0, [r5, #4]
+ mov r0, #1
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ nop
+_021D7D5C: .word gGameVersion
+_021D7D60: .word 0x04000060
+_021D7D64: .word 0xFFFFCFFF
+_021D7D68: .word 0x00007FFF
+_021D7D6C: .word 0x0000010E
+_021D7D70: .word gUnk021C4918
+ thumb_func_end MOD63_021D7C18
+
+ thumb_func_start MOD63_021D7D74
+MOD63_021D7D74: ; 0x021D7D74
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ add r7, r1, #0
+ add r5, r2, #0
+ mov r6, #0
+ bl MOD63_021D7858
+ cmp r0, #1
+ bne _021D7D92
+ bl FUN_0200E31C
+ add sp, #0xc
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_021D7D92:
+ ldr r0, [r4]
+ cmp r0, #9
+ bhi _021D7E38
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D7DA4: ; jump table
+ .short _021D7DB8 - _021D7DA4 - 2 ; case 0
+ .short _021D7DF6 - _021D7DA4 - 2 ; case 1
+ .short _021D7E24 - _021D7DA4 - 2 ; case 2
+ .short _021D7E8C - _021D7DA4 - 2 ; case 3
+ .short _021D7ECC - _021D7DA4 - 2 ; case 4
+ .short _021D7EF4 - _021D7DA4 - 2 ; case 5
+ .short _021D7F44 - _021D7DA4 - 2 ; case 6
+ .short _021D7F72 - _021D7DA4 - 2 ; case 7
+ .short _021D7FA6 - _021D7DA4 - 2 ; case 8
+ .short _021D8232 - _021D7DA4 - 2 ; case 9
+_021D7DB8:
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201E6E4
+ mov r0, #8
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #2
+ mov r1, #1
+ bl FUN_0201E74C
+ ldr r1, _021D80F0 ; =0x00000116
+ add r0, r6, #0
+ strh r0, [r4, r1]
+ add r1, r4, #0
+ mov r2, #0xf
+ add r1, #0xa8
+ strh r2, [r1]
+ str r2, [sp]
+ mov r1, #3
+ str r1, [sp, #4]
+ mov r1, #1
+ ldr r3, _021D80F4 ; =0x00007FFF
+ add r2, r1, #0
+ str r5, [sp, #8]
+ bl FUN_0200E1D0
+ mov r0, #1
+ str r0, [r4]
+ b _021D824E
+_021D7DF6:
+ bl FUN_0200E308
+ cmp r0, #1
+ bne _021D7E38
+ add r0, r4, #0
+ add r0, #0xa8
+ ldrh r0, [r0]
+ cmp r0, #0
+ beq _021D7E18
+ add r0, r4, #0
+ add r0, #0xa8
+ ldrh r0, [r0]
+ sub r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xa8
+ strh r1, [r0]
+ b _021D824E
+_021D7E18:
+ add r0, r4, #0
+ mov r1, #2
+ add r0, #0xa8
+ strh r1, [r0]
+ str r1, [r4]
+ b _021D824E
+_021D7E24:
+ mov r0, #1
+ bl FUN_0200A344
+ cmp r0, #1
+ bne _021D7E38
+ mov r0, #2
+ bl FUN_0200A344
+ cmp r0, #1
+ beq _021D7E3A
+_021D7E38:
+ b _021D824E
+_021D7E3A:
+ add r0, r4, #0
+ add r0, #0xa8
+ ldrh r0, [r0]
+ cmp r0, #0
+ beq _021D7E7E
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0xa
+ mov r1, #0x10
+ add r2, r6, #0
+ mov r3, #6
+ bl FUN_0200A208
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #0xa
+ mov r1, #0x10
+ add r2, r6, #0
+ mov r3, #7
+ bl FUN_0200A208
+ ldr r0, _021D80F0 ; =0x00000116
+ mov r1, #2
+ strh r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0xa8
+ ldrh r0, [r0]
+ sub r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xa8
+ strh r1, [r0]
+ mov r0, #3
+ str r0, [r4]
+ b _021D824E
+_021D7E7E:
+ add r0, r4, #0
+ add r1, r6, #0
+ add r0, #0xa8
+ strh r1, [r0]
+ mov r0, #4
+ str r0, [r4]
+ b _021D824E
+_021D7E8C:
+ mov r0, #1
+ bl FUN_0200A344
+ cmp r0, #1
+ bne _021D7F94
+ mov r0, #2
+ bl FUN_0200A344
+ cmp r0, #1
+ bne _021D7F94
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0xa
+ add r1, r6, #0
+ mov r2, #0x10
+ mov r3, #6
+ bl FUN_0200A208
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #0xa
+ add r1, r6, #0
+ mov r2, #0x10
+ mov r3, #7
+ bl FUN_0200A208
+ ldr r0, _021D80F0 ; =0x00000116
+ mov r1, #3
+ strh r1, [r4, r0]
+ mov r0, #2
+ str r0, [r4]
+ b _021D824E
+_021D7ECC:
+ add r0, r4, #0
+ add r0, #0xa8
+ ldrh r0, [r0]
+ cmp r0, #0
+ beq _021D7EE6
+ add r0, r4, #0
+ add r0, #0xa8
+ ldrh r0, [r0]
+ sub r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xa8
+ strh r1, [r0]
+ b _021D824E
+_021D7EE6:
+ add r0, r4, #0
+ mov r1, #1
+ add r0, #0xa8
+ strh r1, [r0]
+ mov r0, #5
+ str r0, [r4]
+ b _021D824E
+_021D7EF4:
+ bl FUN_0200E308
+ cmp r0, #1
+ bne _021D7F94
+ add r0, r4, #0
+ add r0, #0xa8
+ ldrh r0, [r0]
+ cmp r0, #0
+ beq _021D7F36
+ mov r0, #5
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ add r0, r6, #0
+ ldr r3, _021D80F4 ; =0x00007FFF
+ add r1, r0, #0
+ add r2, r0, #0
+ str r5, [sp, #8]
+ bl FUN_0200E1D0
+ ldr r0, _021D80F0 ; =0x00000116
+ mov r1, #2
+ strh r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0xa8
+ ldrh r0, [r0]
+ sub r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xa8
+ strh r1, [r0]
+ mov r0, #6
+ str r0, [r4]
+ b _021D824E
+_021D7F36:
+ add r0, r4, #0
+ mov r1, #0x28
+ add r0, #0xa8
+ strh r1, [r0]
+ mov r0, #7
+ str r0, [r4]
+ b _021D824E
+_021D7F44:
+ bl FUN_0200E308
+ cmp r0, #1
+ bne _021D7F94
+ add r0, r7, #0
+ add r1, r5, #0
+ add r2, r4, #0
+ bl MOD63_021D85D8
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ mov r1, #1
+ ldr r3, _021D80F4 ; =0x00007FFF
+ add r0, r6, #0
+ add r2, r1, #0
+ str r5, [sp, #8]
+ bl FUN_0200E1D0
+ mov r0, #5
+ str r0, [r4]
+ b _021D824E
+_021D7F72:
+ add r0, r4, #0
+ add r0, #0xa8
+ ldrh r0, [r0]
+ cmp r0, #0
+ beq _021D7FA0
+ add r0, r4, #0
+ add r0, #0xa8
+ ldrh r0, [r0]
+ sub r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xa8
+ strh r1, [r0]
+ add r0, r4, #0
+ add r0, #0xa8
+ ldrh r0, [r0]
+ cmp r0, #0xf
+ beq _021D7F96
+_021D7F94:
+ b _021D824E
+_021D7F96:
+ add r0, r4, #0
+ mov r1, #2
+ add r0, #0xa4
+ str r1, [r0]
+ b _021D824E
+_021D7FA0:
+ mov r0, #8
+ str r0, [r4]
+ b _021D824E
+_021D7FA6:
+ add r0, r4, #0
+ add r0, #0xfc
+ ldr r2, [r0]
+ add r0, r4, #0
+ add r0, #0xbc
+ ldr r1, [r0]
+ mov r5, #1
+ cmp r1, r2
+ ble _021D7FDE
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ sub r1, r1, r2
+ cmp r1, r0
+ ble _021D7FD4
+ add r1, r4, #0
+ add r1, #0xbc
+ ldr r1, [r1]
+ sub r1, r1, r0
+ add r0, r4, #0
+ add r0, #0xbc
+ str r1, [r0]
+ b _021D7FDA
+_021D7FD4:
+ add r0, r4, #0
+ add r0, #0xbc
+ str r2, [r0]
+_021D7FDA:
+ mov r5, #0
+ b _021D8006
+_021D7FDE:
+ cmp r1, r2
+ bge _021D8006
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ sub r1, r2, r1
+ cmp r1, r0
+ ble _021D7FFE
+ add r1, r4, #0
+ add r1, #0xbc
+ ldr r1, [r1]
+ add r1, r1, r0
+ add r0, r4, #0
+ add r0, #0xbc
+ str r1, [r0]
+ b _021D8004
+_021D7FFE:
+ add r0, r4, #0
+ add r0, #0xbc
+ str r2, [r0]
+_021D8004:
+ mov r5, #0
+_021D8006:
+ mov r0, #1
+ add r1, r4, #0
+ lsl r0, r0, #8
+ add r1, #0xc0
+ ldr r2, [r4, r0]
+ ldr r1, [r1]
+ cmp r1, r2
+ ble _021D803A
+ add r0, #0x18
+ ldr r0, [r4, r0]
+ sub r1, r1, r2
+ cmp r1, r0
+ ble _021D8030
+ add r1, r4, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ sub r1, r1, r0
+ add r0, r4, #0
+ add r0, #0xc0
+ str r1, [r0]
+ b _021D8036
+_021D8030:
+ add r0, r4, #0
+ add r0, #0xc0
+ str r2, [r0]
+_021D8036:
+ mov r5, #0
+ b _021D8060
+_021D803A:
+ cmp r1, r2
+ bge _021D8060
+ add r0, #0x18
+ ldr r0, [r4, r0]
+ sub r1, r2, r1
+ cmp r1, r0
+ ble _021D8058
+ add r1, r4, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ add r1, r1, r0
+ add r0, r4, #0
+ add r0, #0xc0
+ str r1, [r0]
+ b _021D805E
+_021D8058:
+ add r0, r4, #0
+ add r0, #0xc0
+ str r2, [r0]
+_021D805E:
+ mov r5, #0
+_021D8060:
+ mov r0, #0x41
+ add r1, r4, #0
+ lsl r0, r0, #2
+ add r1, #0xc4
+ ldr r2, [r4, r0]
+ ldr r1, [r1]
+ cmp r1, r2
+ ble _021D8094
+ add r0, #0x14
+ ldr r0, [r4, r0]
+ sub r1, r1, r2
+ cmp r1, r0
+ ble _021D808A
+ add r1, r4, #0
+ add r1, #0xc4
+ ldr r1, [r1]
+ sub r1, r1, r0
+ add r0, r4, #0
+ add r0, #0xc4
+ str r1, [r0]
+ b _021D8090
+_021D808A:
+ add r0, r4, #0
+ add r0, #0xc4
+ str r2, [r0]
+_021D8090:
+ mov r5, #0
+ b _021D80BA
+_021D8094:
+ cmp r1, r2
+ bge _021D80BA
+ add r0, #0x14
+ ldr r0, [r4, r0]
+ sub r1, r2, r1
+ cmp r1, r0
+ ble _021D80B2
+ add r1, r4, #0
+ add r1, #0xc4
+ ldr r1, [r1]
+ add r1, r1, r0
+ add r0, r4, #0
+ add r0, #0xc4
+ str r1, [r0]
+ b _021D80B8
+_021D80B2:
+ add r0, r4, #0
+ add r0, #0xc4
+ str r2, [r0]
+_021D80B8:
+ mov r5, #0
+_021D80BA:
+ add r0, r4, #0
+ add r0, #0xe4
+ ldr r2, [r0]
+ add r0, r4, #0
+ add r0, #0xc8
+ ldr r1, [r0]
+ cmp r1, r2
+ ble _021D80F8
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ sub r1, r1, r2
+ cmp r1, r0
+ ble _021D80E6
+ add r1, r4, #0
+ add r1, #0xc8
+ ldr r1, [r1]
+ sub r1, r1, r0
+ add r0, r4, #0
+ add r0, #0xc8
+ str r1, [r0]
+ b _021D80EC
+_021D80E6:
+ add r0, r4, #0
+ add r0, #0xc8
+ str r2, [r0]
+_021D80EC:
+ mov r5, #0
+ b _021D8120
+ .align 2, 0
+_021D80F0: .word 0x00000116
+_021D80F4: .word 0x00007FFF
+_021D80F8:
+ cmp r1, r2
+ bge _021D8120
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ sub r1, r2, r1
+ cmp r1, r0
+ ble _021D8118
+ add r1, r4, #0
+ add r1, #0xc8
+ ldr r1, [r1]
+ add r1, r1, r0
+ add r0, r4, #0
+ add r0, #0xc8
+ str r1, [r0]
+ b _021D811E
+_021D8118:
+ add r0, r4, #0
+ add r0, #0xc8
+ str r2, [r0]
+_021D811E:
+ mov r5, #0
+_021D8120:
+ add r0, r4, #0
+ add r0, #0xe8
+ ldr r2, [r0]
+ add r0, r4, #0
+ add r0, #0xcc
+ ldr r1, [r0]
+ cmp r1, r2
+ ble _021D8156
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ sub r1, r1, r2
+ cmp r1, r0
+ ble _021D814C
+ add r1, r4, #0
+ add r1, #0xcc
+ ldr r1, [r1]
+ sub r1, r1, r0
+ add r0, r4, #0
+ add r0, #0xcc
+ str r1, [r0]
+ b _021D8152
+_021D814C:
+ add r0, r4, #0
+ add r0, #0xcc
+ str r2, [r0]
+_021D8152:
+ mov r5, #0
+ b _021D817E
+_021D8156:
+ cmp r1, r2
+ bge _021D817E
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ sub r1, r2, r1
+ cmp r1, r0
+ ble _021D8176
+ add r1, r4, #0
+ add r1, #0xcc
+ ldr r1, [r1]
+ add r1, r1, r0
+ add r0, r4, #0
+ add r0, #0xcc
+ str r1, [r0]
+ b _021D817C
+_021D8176:
+ add r0, r4, #0
+ add r0, #0xcc
+ str r2, [r0]
+_021D817C:
+ mov r5, #0
+_021D817E:
+ add r0, r4, #0
+ add r0, #0xec
+ ldr r2, [r0]
+ add r0, r4, #0
+ add r0, #0xd0
+ ldr r1, [r0]
+ cmp r1, r2
+ ble _021D81B4
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ sub r1, r1, r2
+ cmp r1, r0
+ ble _021D81AA
+ add r1, r4, #0
+ add r1, #0xd0
+ ldr r1, [r1]
+ sub r1, r1, r0
+ add r0, r4, #0
+ add r0, #0xd0
+ str r1, [r0]
+ b _021D81B0
+_021D81AA:
+ add r0, r4, #0
+ add r0, #0xd0
+ str r2, [r0]
+_021D81B0:
+ mov r5, #0
+ b _021D81DC
+_021D81B4:
+ cmp r1, r2
+ bge _021D81DC
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ sub r1, r2, r1
+ cmp r1, r0
+ ble _021D81D4
+ add r1, r4, #0
+ add r1, #0xd0
+ ldr r1, [r1]
+ add r1, r1, r0
+ add r0, r4, #0
+ add r0, #0xd0
+ str r1, [r0]
+ b _021D81DA
+_021D81D4:
+ add r0, r4, #0
+ add r0, #0xd0
+ str r2, [r0]
+_021D81DA:
+ mov r5, #0
+_021D81DC:
+ add r1, r4, #0
+ add r1, #0xa0
+ add r0, r4, #0
+ ldr r1, [r1]
+ add r0, #0xbc
+ bl FUN_0201F04C
+ add r1, r4, #0
+ add r1, #0xa0
+ add r0, r4, #0
+ ldr r1, [r1]
+ add r0, #0xc8
+ bl FUN_0201F05C
+ cmp r5, #1
+ bne _021D824E
+ mov r0, #4
+ mov r1, #1
+ bl FUN_0201E74C
+ mov r0, #2
+ mov r1, #0
+ bl FUN_0201E74C
+ mov r0, #2
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #8
+ mov r1, #1
+ bl FUN_0201E74C
+ add r0, r4, #0
+ mov r1, #0x5a
+ add r0, #0xa8
+ strh r1, [r0]
+ add r0, r4, #0
+ mov r1, #1
+ add r0, #0xa4
+ str r1, [r0]
+ mov r0, #9
+ str r0, [r4]
+ b _021D824E
+_021D8232:
+ add r0, r4, #0
+ add r0, #0xa8
+ ldrh r0, [r0]
+ cmp r0, #0
+ beq _021D824C
+ add r0, r4, #0
+ add r0, #0xa8
+ ldrh r0, [r0]
+ sub r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xa8
+ strh r1, [r0]
+ b _021D824E
+_021D824C:
+ mov r6, #1
+_021D824E:
+ add r0, r4, #0
+ bl MOD63_021D8650
+ add r0, r4, #4
+ bl MOD63_021D798C
+ add r0, r6, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ thumb_func_end MOD63_021D7D74
+
+ thumb_func_start MOD63_021D8260
+MOD63_021D8260: ; 0x021D8260
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ mov r4, #0
+ cmp r0, #0
+ beq _021D8272
+ cmp r0, #1
+ beq _021D82FC
+ b _021D8350
+_021D8272:
+ add r1, r5, #0
+ add r1, #0xa0
+ add r0, r5, #0
+ ldr r1, [r1]
+ add r0, #0xfc
+ bl FUN_0201F04C
+ add r1, r5, #0
+ add r1, #0xa0
+ add r0, r5, #0
+ ldr r1, [r1]
+ add r0, #0xe4
+ bl FUN_0201F05C
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201E6E4
+ mov r0, #8
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #8
+ mov r1, #1
+ bl FUN_0201E74C
+ mov r0, #4
+ mov r1, #1
+ bl FUN_0201E74C
+ mov r0, #2
+ add r1, r4, #0
+ bl FUN_0201E74C
+ mov r0, #2
+ mov r1, #1
+ bl FUN_0201E6E4
+ add r0, r4, #0
+ bl FUN_0200E394
+ mov r0, #1
+ bl FUN_0200E394
+ add r0, r4, #0
+ mov r1, #6
+ mov r2, #1
+ bl FUN_0200A274
+ add r0, r4, #0
+ mov r1, #7
+ mov r2, #2
+ bl FUN_0200A274
+ add r0, r5, #0
+ mov r1, #2
+ add r0, #0xa4
+ str r1, [r0]
+ ldr r1, _021D835C ; =0x00007FFF
+ mov r0, #1
+ bl FUN_020B8404
+ add r0, r5, #0
+ add r1, r4, #0
+ add r0, #0xa8
+ strh r1, [r0]
+ mov r0, #1
+ str r0, [r5]
+ b _021D8350
+_021D82FC:
+ add r0, r5, #0
+ add r0, #0xd4
+ ldr r0, [r0]
+ cmp r0, #1
+ bne _021D8328
+ add r0, r5, #0
+ add r0, #0xa8
+ ldrh r0, [r0]
+ cmp r0, #0
+ bne _021D831A
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201E74C
+ b _021D8330
+_021D831A:
+ cmp r0, #0x10
+ bne _021D8330
+ mov r0, #1
+ add r1, r4, #0
+ bl FUN_0201E74C
+ b _021D8330
+_021D8328:
+ mov r0, #1
+ add r1, r4, #0
+ bl FUN_0201E74C
+_021D8330:
+ add r0, r5, #0
+ add r0, #0xa8
+ ldrh r0, [r0]
+ mov r4, #1
+ add r1, r0, #1
+ add r0, r5, #0
+ add r0, #0xa8
+ strh r1, [r0]
+ add r0, r5, #0
+ add r0, #0xa8
+ ldrh r1, [r0]
+ mov r0, #0x1f
+ and r1, r0
+ add r0, r5, #0
+ add r0, #0xa8
+ strh r1, [r0]
+_021D8350:
+ add r0, r5, #4
+ bl MOD63_021D798C
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_021D835C: .word 0x00007FFF
+ thumb_func_end MOD63_021D8260
+
+ thumb_func_start MOD63_021D8360
+MOD63_021D8360: ; 0x021D8360
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r0, #0xa0
+ ldr r0, [r0]
+ add r4, r1, #0
+ add r6, r2, #0
+ bl FUN_0201EB70
+ add r0, r5, #4
+ bl MOD63_021D7970
+ add r0, r4, #0
+ add r1, r6, #0
+ add r2, r5, #0
+ bl MOD63_021D8644
+ ldr r2, _021D839C ; =0x04000050
+ mov r3, #0
+ strh r3, [r2]
+ add r2, #0x10
+ ldrh r1, [r2]
+ ldr r0, _021D83A0 ; =0x0000CFDF
+ and r0, r1
+ strh r0, [r2]
+ ldr r0, _021D83A4 ; =gUnk021C4918
+ strb r3, [r0, #5]
+ bl FUN_0201E7A0
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021D839C: .word 0x04000050
+_021D83A0: .word 0x0000CFDF
+_021D83A4: .word gUnk021C4918
+ thumb_func_end MOD63_021D8360
+
+ thumb_func_start MOD63_021D83A8
+MOD63_021D83A8: ; 0x021D83A8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ add r5, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ add r4, r1, #0
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r1, #7
+ add r6, r2, #0
+ mov r0, #0x30
+ add r2, r5, #0
+ add r3, r1, #0
+ str r4, [sp, #0xc]
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x30
+ mov r1, #0xb
+ add r2, r5, #0
+ mov r3, #3
+ str r4, [sp, #0xc]
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x30
+ mov r1, #8
+ add r2, r5, #0
+ mov r3, #7
+ str r4, [sp, #0xc]
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x30
+ mov r1, #0xc
+ add r2, r5, #0
+ mov r3, #3
+ str r4, [sp, #0xc]
+ bl FUN_020068C8
+ ldr r0, _021D85C8 ; =gGameVersion
+ ldrb r7, [r0]
+ cmp r7, #0xa
+ bne _021D841A
+ mov r0, #0xd
+ mov r1, #9
+ str r0, [sp, #0x18]
+ b _021D8420
+_021D841A:
+ mov r0, #0xe
+ mov r1, #0xa
+ str r0, [sp, #0x18]
+_021D8420:
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0x30
+ mov r2, #4
+ str r4, [sp, #4]
+ bl FUN_02006930
+ mov r2, #0
+ str r2, [sp]
+ ldr r1, [sp, #0x18]
+ mov r0, #0x30
+ add r3, r2, #0
+ str r4, [sp, #4]
+ bl FUN_02006930
+ cmp r7, #0xa
+ bne _021D8448
+ mov r1, #1
+ mov r7, #2
+ b _021D844C
+_021D8448:
+ mov r1, #3
+ mov r7, #4
+_021D844C:
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x30
+ add r2, r5, #0
+ mov r3, #6
+ str r4, [sp, #0xc]
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ mov r3, #1
+ mov r0, #0x30
+ add r1, r7, #0
+ mov r2, #6
+ lsl r3, r3, #0xe
+ str r4, [sp, #4]
+ bl FUN_02006930
+ mov r1, #0
+ str r1, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ mov r0, #0x30
+ add r2, r5, #0
+ mov r3, #6
+ str r4, [sp, #0xc]
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x80
+ mov r1, #0x11
+ add r2, r5, #0
+ mov r3, #5
+ str r4, [sp, #0xc]
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #0x10
+ mov r0, #0x80
+ mov r2, #6
+ lsl r3, r1, #9
+ str r4, [sp, #4]
+ bl FUN_02006930
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x80
+ mov r1, #0xf
+ add r2, r5, #0
+ mov r3, #5
+ str r4, [sp, #0xc]
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x30
+ mov r1, #0xf
+ add r2, r5, #0
+ mov r3, #1
+ str r4, [sp, #0xc]
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x30
+ mov r1, #0x11
+ add r2, r5, #0
+ mov r3, #1
+ str r4, [sp, #0xc]
+ bl FUN_020068C8
+ mov r0, #0x60
+ str r0, [sp]
+ mov r0, #0x30
+ mov r1, #0x10
+ mov r2, #0
+ mov r3, #0x20
+ str r4, [sp, #4]
+ bl FUN_02006930
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02017FE4
+ mov r0, #4
+ mov r1, #0
+ bl FUN_02017FE4
+ mov r0, #4
+ mov r1, #0x20
+ mov r2, #0
+ add r3, r4, #0
+ bl FUN_02017F18
+ ldr r2, _021D85CC ; =0x00000227
+ mov r0, #1
+ mov r1, #0x1a
+ add r3, r4, #0
+ bl NewMsgDataFromNarc
+ add r7, r0, #0
+ mov r0, #0x40
+ add r1, r4, #0
+ bl String_ctor
+ add r1, r6, #0
+ add r4, r0, #0
+ ldr r2, _021D85D0 ; =MOD63_021DB9A0
+ add r0, r5, #0
+ add r1, #0xac
+ bl FUN_02019150
+ mov r1, #0
+ mov r0, #0xe0
+ str r0, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ add r0, r6, #0
+ add r0, #0xac
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_020196F4
+ add r0, r7, #0
+ mov r1, #0
+ add r2, r4, #0
+ bl ReadMsgDataIntoString
+ add r3, r6, #0
+ add r3, #0xb3
+ ldrb r3, [r3]
+ mov r0, #0
+ add r1, r4, #0
+ mov r2, #1
+ lsl r3, r3, #3
+ bl FUN_02002F40
+ mov r1, #0
+ add r3, r0, #0
+ str r1, [sp]
+ ldr r0, _021D85D4 ; =0x00010100
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ add r6, #0xac
+ str r1, [sp, #0x10]
+ add r0, r6, #0
+ add r2, r4, #0
+ str r1, [sp, #0x14]
+ bl FUN_0201BE3C
+ add r0, r4, #0
+ bl String_dtor
+ add r0, r7, #0
+ bl DestroyMsgData
+ mov r1, #0x15
+ add r0, sp, #0x1c
+ strh r1, [r0, #2]
+ strh r1, [r0]
+ add r1, sp, #0x1c
+ mov r0, #4
+ add r1, #2
+ mov r2, #2
+ mov r3, #0x42
+ bl FUN_02017FB4
+ mov r0, #4
+ add r1, sp, #0x1c
+ mov r2, #2
+ mov r3, #0x44
+ bl FUN_02017FB4
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D85C8: .word gGameVersion
+_021D85CC: .word 0x00000227
+_021D85D0: .word MOD63_021DB9A0
+_021D85D4: .word 0x00010100
+ thumb_func_end MOD63_021D83A8
+
+ thumb_func_start MOD63_021D85D8
+MOD63_021D85D8: ; 0x021D85D8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r2, #0xa8
+ add r7, r0, #0
+ ldrh r0, [r2]
+ add r5, r1, #0
+ cmp r0, #0
+ bne _021D863A
+ ldr r0, _021D8640 ; =gGameVersion
+ ldrb r0, [r0]
+ cmp r0, #0xa
+ bne _021D85F8
+ mov r1, #0xb
+ mov r6, #0xa
+ mov r4, #0xc
+ b _021D85FE
+_021D85F8:
+ mov r1, #8
+ mov r6, #7
+ mov r4, #9
+_021D85FE:
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x80
+ add r2, r7, #0
+ mov r3, #5
+ str r5, [sp, #0xc]
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x80
+ add r1, r6, #0
+ mov r2, #6
+ lsl r3, r0, #6
+ str r5, [sp, #4]
+ bl FUN_02006930
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x80
+ add r1, r4, #0
+ add r2, r7, #0
+ mov r3, #5
+ str r5, [sp, #0xc]
+ bl FUN_020068C8
+_021D863A:
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D8640: .word gGameVersion
+ thumb_func_end MOD63_021D85D8
+
+ thumb_func_start MOD63_021D8644
+MOD63_021D8644: ; 0x021D8644
+ ldr r3, _021D864C ; =FUN_02019178
+ add r2, #0xac
+ add r0, r2, #0
+ bx r3
+ .align 2, 0
+_021D864C: .word FUN_02019178
+ thumb_func_end MOD63_021D8644
+
+ thumb_func_start MOD63_021D8650
+MOD63_021D8650: ; 0x021D8650
+ push {r4, lr}
+ ldr r1, _021D86DC ; =0x00000116
+ ldrh r2, [r0, r1]
+ cmp r2, #3
+ bhi _021D86B2
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_021D8666: ; jump table
+ .short _021D866E - _021D8666 - 2 ; case 0
+ .short _021D86B2 - _021D8666 - 2 ; case 1
+ .short _021D867A - _021D8666 - 2 ; case 2
+ .short _021D8698 - _021D8666 - 2 ; case 3
+_021D866E:
+ mov r3, #5
+ sub r2, r1, #2
+ strh r3, [r0, r2]
+ mov r2, #1
+ strh r2, [r0, r1]
+ b _021D86B2
+_021D867A:
+ sub r2, r1, #2
+ ldrh r2, [r0, r2]
+ add r3, r2, #2
+ sub r2, r1, #2
+ strh r3, [r0, r2]
+ ldrh r2, [r0, r2]
+ cmp r2, #0x1f
+ blo _021D86B2
+ mov r3, #0x1f
+ add r2, r3, #0
+ add r2, #0xf5
+ strh r3, [r0, r2]
+ mov r2, #1
+ strh r2, [r0, r1]
+ b _021D86B2
+_021D8698:
+ sub r2, r1, #2
+ ldrh r2, [r0, r2]
+ sub r3, r2, #2
+ sub r2, r1, #2
+ strh r3, [r0, r2]
+ ldrh r2, [r0, r2]
+ cmp r2, #5
+ bhi _021D86B2
+ mov r3, #5
+ sub r2, r1, #2
+ strh r3, [r0, r2]
+ mov r2, #1
+ strh r2, [r0, r1]
+_021D86B2:
+ mov r1, #0x45
+ lsl r1, r1, #2
+ ldrh r3, [r0, r1]
+ mov r1, #0x1f
+ lsl r1, r1, #0xa
+ lsl r2, r3, #0xa
+ and r1, r2
+ add r4, r3, #0
+ mov r2, #0x1f
+ and r4, r2
+ lsl r3, r3, #5
+ lsl r2, r2, #5
+ and r2, r3
+ orr r2, r4
+ orr r1, r2
+ lsl r1, r1, #0x10
+ mov r0, #1
+ lsr r1, r1, #0x10
+ bl FUN_020B8404
+ pop {r4, pc}
+ .align 2, 0
+_021D86DC: .word 0x00000116
+ thumb_func_end MOD63_021D8650
+
+ thumb_func_start MOD63_021D86E0
+MOD63_021D86E0: ; 0x021D86E0
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ add r4, r0, #0
+ ldr r0, _021D8858 ; =gGameVersion
+ ldrb r0, [r0]
+ cmp r0, #0xa
+ bne _021D8788
+ add r0, r4, #0
+ mov r2, #0
+ add r0, #0xd8
+ str r2, [r0]
+ mov r1, #0x41
+ add r0, r4, #0
+ mov r3, #0x12
+ lsl r1, r1, #0xc
+ add r0, #0xdc
+ str r1, [r0]
+ add r0, r4, #0
+ mov r5, #0xf6
+ lsl r3, r3, #0xe
+ add r0, #0xe0
+ str r3, [r0]
+ mov r3, #0xc3
+ add r0, r4, #0
+ lsl r3, r3, #0xc
+ add r0, #0xe4
+ str r3, [r0]
+ mov r0, #2
+ add r3, r4, #0
+ lsl r0, r0, #0x10
+ add r3, #0xe8
+ str r0, [r3]
+ add r3, r4, #0
+ lsl r5, r5, #0xc
+ add r3, #0xec
+ str r5, [r3]
+ add r3, r4, #0
+ add r3, #0xf0
+ str r2, [r3]
+ mov r5, #0x5a
+ add r3, r4, #0
+ lsl r5, r5, #0xc
+ add r3, #0xf4
+ str r5, [r3]
+ add r3, r4, #0
+ add r3, #0xf8
+ str r2, [r3]
+ add r2, r4, #0
+ ldr r3, _021D885C ; =0xFFFFE000
+ add r2, #0xfc
+ str r3, [r2]
+ mov r2, #0x1f
+ lsl r2, r2, #0xe
+ lsr r0, r0, #9
+ str r2, [r4, r0]
+ lsr r0, r1, #0xa
+ ldr r2, _021D8860 ; =0xFFFDA000
+ ldr r1, _021D8864 ; =0xFFFFF6E3
+ str r2, [r4, r0]
+ mov r0, #0x42
+ lsl r0, r0, #2
+ ldr r3, _021D8868 ; =0x00000A2B
+ strh r1, [r4, r0]
+ add r2, r0, #2
+ strh r3, [r4, r2]
+ add r3, r1, #0
+ add r3, #0xc6
+ add r2, r0, #4
+ strh r3, [r4, r2]
+ add r1, #0x42
+ add r2, r0, #6
+ strh r1, [r4, r2]
+ add r1, r0, #0
+ ldr r2, _021D886C ; =0x000007A1
+ add r1, #8
+ strh r2, [r4, r1]
+ add r1, r0, #0
+ ldr r2, _021D8870 ; =0xFFFFF513
+ add r1, #0xa
+ strh r2, [r4, r1]
+ mov r1, #3
+ lsl r1, r1, #0xc
+ add r0, #0x10
+ b _021D8828
+_021D8788:
+ add r0, r4, #0
+ ldr r1, _021D8874 ; =0xFFFBF000
+ add r0, #0xd8
+ str r1, [r0]
+ mov r1, #0x29
+ add r0, r4, #0
+ lsl r1, r1, #0xc
+ add r0, #0xdc
+ str r1, [r0]
+ mov r1, #0x13
+ add r0, r4, #0
+ lsl r1, r1, #0xc
+ add r0, #0xe0
+ str r1, [r0]
+ add r0, r4, #0
+ ldr r1, _021D8878 ; =0xFFF6C000
+ add r0, #0xe4
+ str r1, [r0]
+ mov r1, #0x3a
+ add r0, r4, #0
+ mov r2, #2
+ lsl r1, r1, #0xc
+ add r0, #0xe8
+ str r1, [r0]
+ mov r1, #0xbe
+ add r0, r4, #0
+ lsl r1, r1, #0xc
+ add r0, #0xec
+ str r1, [r0]
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xf0
+ str r1, [r0]
+ mov r1, #0xb
+ add r0, r4, #0
+ lsl r1, r1, #0xc
+ add r0, #0xf4
+ str r1, [r0]
+ mov r1, #0x12
+ add r0, r4, #0
+ lsl r1, r1, #0xc
+ add r0, #0xf8
+ str r1, [r0]
+ add r0, r4, #0
+ lsl r2, r2, #0xe
+ add r0, #0xfc
+ str r2, [r0]
+ ldr r1, _021D887C ; =0xFFFFB000
+ lsr r0, r2, #7
+ str r1, [r4, r0]
+ mov r0, #0x41
+ lsr r1, r2, #3
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ ldr r2, _021D8880 ; =0x00000653
+ add r1, r0, #4
+ strh r2, [r4, r1]
+ ldr r2, _021D8884 ; =0xFFFFF71C
+ add r1, r0, #6
+ strh r2, [r4, r1]
+ add r1, r0, #0
+ sub r2, #0x14
+ add r1, #8
+ strh r2, [r4, r1]
+ add r1, r0, #0
+ ldr r2, _021D8888 ; =0x0000091B
+ add r1, #0xa
+ strh r2, [r4, r1]
+ add r1, r0, #0
+ ldr r2, _021D888C ; =0xFFFFFB61
+ add r1, #0xc
+ strh r2, [r4, r1]
+ add r1, r0, #0
+ mov r2, #0xc5
+ lsl r2, r2, #4
+ add r1, #0xe
+ strh r2, [r4, r1]
+ mov r1, #3
+ lsl r1, r1, #0xc
+ add r0, #0x14
+_021D8828:
+ str r1, [r4, r0]
+ add r0, r4, #0
+ add r1, r4, #0
+ add r0, #0xfc
+ add r1, #0xe4
+ add r2, sp, #0xc
+ bl VEC_Subtract
+ add r0, sp, #0xc
+ add r1, sp, #0
+ bl VEC_Normalize
+ mov r0, #0x42
+ ldr r1, [sp]
+ lsl r0, r0, #2
+ strh r1, [r4, r0]
+ add r1, r0, #2
+ ldr r2, [sp, #4]
+ add r0, r0, #4
+ strh r2, [r4, r1]
+ ldr r1, [sp, #8]
+ strh r1, [r4, r0]
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D8858: .word gGameVersion
+_021D885C: .word 0xFFFFE000
+_021D8860: .word 0xFFFDA000
+_021D8864: .word 0xFFFFF6E3
+_021D8868: .word 0x00000A2B
+_021D886C: .word 0x000007A1
+_021D8870: .word 0xFFFFF513
+_021D8874: .word 0xFFFBF000
+_021D8878: .word 0xFFF6C000
+_021D887C: .word 0xFFFFB000
+_021D8880: .word 0x00000653
+_021D8884: .word 0xFFFFF71C
+_021D8888: .word 0x0000091B
+_021D888C: .word 0xFFFFFB61
+ thumb_func_end MOD63_021D86E0
+
+ .section .rodata
+
+ .global MOD63_021DB9A0
+MOD63_021DB9A0: ; 0x021DB9A0
+ .byte 0x04, 0x02, 0x13, 0x1C, 0x02, 0x02, 0x01, 0x00
+
+ .global MOD63_021DB9A8
+MOD63_021DB9A8: ; 0x021DB9A8
+ .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
+ .byte 0x00, 0x10, 0x00, 0x00
+
+ .global MOD63_021DB9B4
+MOD63_021DB9B4: ; 0x021DB9B4
+ .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x01, 0x00, 0x00, 0x00
+
+ .global MOD63_021DB9C4
+MOD63_021DB9C4: ; 0x021DB9C4
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x06, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+ .global MOD63_021DB9E0
+MOD63_021DB9E0: ; 0x021DB9E0
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x01, 0x00, 0x05, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+ .global MOD63_021DB9FC
+MOD63_021DB9FC: ; 0x021DB9FC
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x04, 0x00
+ .byte 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+ .global MOD63_021DBA18
+MOD63_021DBA18: ; 0x021DBA18
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x04, 0x00, 0x00, 0x03, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+
+ .global MOD63_021DBA34
+MOD63_021DBA34: ; 0x021DBA34
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+ .global MOD63_021DBA50
+MOD63_021DBA50: ; 0x021DBA50
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x01, 0x01, 0x07, 0x04, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+ .global MOD63_021DBA6C
+MOD63_021DBA6C: ; 0x021DBA6C
+ .byte 0x00, 0x10, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
+
+ .global MOD63_021DBA90
+MOD63_021DBA90: ; 0x021DBA90
+ .byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x01, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00
diff --git a/arm9/modules/63/asm/mod63_021D8890.s b/arm9/modules/63/asm/mod63_021D8890.s
new file mode 100644
index 00000000..cd27e9bc
--- /dev/null
+++ b/arm9/modules/63/asm/mod63_021D8890.s
@@ -0,0 +1,3831 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD63_021D8890
+MOD63_021D8890: ; 0x021D8890
+ push {r4, lr}
+ sub sp, #0x28
+ ldr r4, _021D88AC ; =MOD63_021DBD70
+ add r3, sp, #0
+ mov r2, #5
+_021D889A:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _021D889A
+ add r0, sp, #0
+ bl FUN_0201E66C
+ add sp, #0x28
+ pop {r4, pc}
+ .align 2, 0
+_021D88AC: .word MOD63_021DBD70
+ thumb_func_end MOD63_021D8890
+
+ thumb_func_start MOD63_021D88B0
+MOD63_021D88B0: ; 0x021D88B0
+ push {r4, lr}
+ sub sp, #0x28
+ ldr r4, _021D88CC ; =MOD63_021DBD98
+ add r3, sp, #0
+ mov r2, #5
+_021D88BA:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _021D88BA
+ add r0, sp, #0
+ bl FUN_0201E66C
+ add sp, #0x28
+ pop {r4, pc}
+ .align 2, 0
+_021D88CC: .word MOD63_021DBD98
+ thumb_func_end MOD63_021D88B0
+
+ thumb_func_start MOD63_021D88D0
+MOD63_021D88D0: ; 0x021D88D0
+ push {r4, lr}
+ sub sp, #0x28
+ ldr r4, _021D88EC ; =MOD63_021DBDC0
+ add r3, sp, #0
+ mov r2, #5
+_021D88DA:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _021D88DA
+ add r0, sp, #0
+ bl FUN_0201E66C
+ add sp, #0x28
+ pop {r4, pc}
+ .align 2, 0
+_021D88EC: .word MOD63_021DBDC0
+ thumb_func_end MOD63_021D88D0
+
+ thumb_func_start MOD63_021D88F0
+MOD63_021D88F0: ; 0x021D88F0
+ push {r3, r4, r5, lr}
+ sub sp, #0xb8
+ add r4, r0, #0
+ ldr r0, [r4]
+ bl FUN_02016B94
+ add r3, sp, #0xa8
+ ldr r5, _021D89E8 ; =MOD63_021DBB4C
+ str r0, [r4, #0xc]
+ 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, _021D89EC ; =MOD63_021DBC88
+ add r3, sp, #0x8c
+ 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]
+ ldr r0, [r4, #0xc]
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r5, _021D89F0 ; =MOD63_021DBC6C
+ 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, #2
+ str r0, [r3]
+ ldr r0, [r4, #0xc]
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r5, _021D89F4 ; =MOD63_021DBBC4
+ 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, #3
+ str r0, [r3]
+ ldr r0, [r4, #0xc]
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r5, _021D89F8 ; =MOD63_021DBBFC
+ 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, #5
+ str r0, [r3]
+ ldr r0, [r4, #0xc]
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r5, _021D89FC ; =MOD63_021DBC18
+ 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]
+ str r0, [r3]
+ ldr r0, [r4, #0xc]
+ mov r1, #6
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r5, _021D8A00 ; =MOD63_021DBC34
+ add r3, sp, #0
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #7
+ str r0, [r3]
+ ldr r0, [r4, #0xc]
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02017FE4
+ mov r0, #4
+ mov r1, #0
+ bl FUN_02017FE4
+ add sp, #0xb8
+ pop {r3, r4, r5, pc}
+ nop
+_021D89E8: .word MOD63_021DBB4C
+_021D89EC: .word MOD63_021DBC88
+_021D89F0: .word MOD63_021DBC6C
+_021D89F4: .word MOD63_021DBBC4
+_021D89F8: .word MOD63_021DBBFC
+_021D89FC: .word MOD63_021DBC18
+_021D8A00: .word MOD63_021DBC34
+ thumb_func_end MOD63_021D88F0
+
+ thumb_func_start MOD63_021D8A04
+MOD63_021D8A04: ; 0x021D8A04
+ push {r3, r4, r5, lr}
+ sub sp, #0x80
+ add r4, r0, #0
+ ldr r0, [r4]
+ bl FUN_02016B94
+ add r3, sp, #0x70
+ ldr r5, _021D8AC4 ; =MOD63_021DBB3C
+ str r0, [r4, #0xc]
+ 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
+ mov r2, #1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2]
+ ldr r0, _021D8AC8 ; =0xC7FFFFFF
+ ldr r5, _021D8ACC ; =MOD63_021DBC50
+ and r1, r0
+ lsl r0, r2, #1
+ orr r0, r1
+ str r0, [r2]
+ 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, #3
+ str r0, [r3]
+ ldr r0, [r4, #0xc]
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r5, _021D8AD0 ; =MOD63_021DBCA4
+ 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]
+ ldr r0, [r4, #0xc]
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r5, _021D8AD4 ; =MOD63_021DBCC0
+ 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]
+ ldr r0, [r4, #0xc]
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r5, _021D8AD8 ; =MOD63_021DBCDC
+ 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]
+ ldr r0, [r4, #0xc]
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #4
+ mov r1, #0
+ bl FUN_02017FE4
+ add sp, #0x80
+ pop {r3, r4, r5, pc}
+ nop
+_021D8AC4: .word MOD63_021DBB3C
+_021D8AC8: .word 0xC7FFFFFF
+_021D8ACC: .word MOD63_021DBC50
+_021D8AD0: .word MOD63_021DBCA4
+_021D8AD4: .word MOD63_021DBCC0
+_021D8AD8: .word MOD63_021DBCDC
+ thumb_func_end MOD63_021D8A04
+
+ thumb_func_start MOD63_021D8ADC
+MOD63_021D8ADC: ; 0x021D8ADC
+ push {r4, r5, lr}
+ sub sp, #0x9c
+ add r4, r0, #0
+ ldr r0, [r4]
+ bl FUN_02016B94
+ add r3, sp, #0x8c
+ ldr r5, _021D8BBC ; =MOD63_021DBB6C
+ str r0, [r4, #0xc]
+ 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
+ mov r2, #1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2]
+ ldr r0, _021D8BC0 ; =0xC7FFFFFF
+ ldr r5, _021D8BC4 ; =MOD63_021DBCF8
+ and r1, r0
+ lsl r0, r2, #1
+ orr r0, r1
+ str r0, [r2]
+ 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, #1
+ str r0, [r3]
+ ldr r0, [r4, #0xc]
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r5, _021D8BC8 ; =MOD63_021DBD14
+ 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, #2
+ str r0, [r3]
+ ldr r0, [r4, #0xc]
+ mov r3, #1
+ bl FUN_02016C18
+ ldr r5, _021D8BCC ; =MOD63_021DBD30
+ 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, #3
+ str r0, [r3]
+ ldr r0, [r4, #0xc]
+ mov r3, #1
+ bl FUN_02016C18
+ ldr r5, _021D8BD0 ; =MOD63_021DBBA8
+ 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, #0
+ str r0, [r3]
+ ldr r0, [r4, #0xc]
+ add r3, r1, #0
+ bl FUN_02016C18
+ ldr r5, _021D8BD4 ; =MOD63_021DBBE0
+ 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, #5
+ str r0, [r3]
+ ldr r0, [r4, #0xc]
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #4
+ mov r1, #0
+ bl FUN_02017FE4
+ add sp, #0x9c
+ pop {r4, r5, pc}
+ nop
+_021D8BBC: .word MOD63_021DBB6C
+_021D8BC0: .word 0xC7FFFFFF
+_021D8BC4: .word MOD63_021DBCF8
+_021D8BC8: .word MOD63_021DBD14
+_021D8BCC: .word MOD63_021DBD30
+_021D8BD0: .word MOD63_021DBBA8
+_021D8BD4: .word MOD63_021DBBE0
+ thumb_func_end MOD63_021D8ADC
+
+ thumb_func_start MOD63_021D8BD8
+MOD63_021D8BD8: ; 0x021D8BD8
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ mov r0, #4
+ str r0, [sp]
+ ldr r0, _021D8C14 ; =MOD63_021D8C20
+ mov r1, #0
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ mov r2, #1
+ add r3, r1, #0
+ bl FUN_02022318
+ str r0, [r4, #0x10]
+ ldr r3, _021D8C18 ; =UNK_021064B8
+ mov r0, #2
+ mov r1, #0
+ ldr r3, [r3]
+ lsl r0, r0, #0xe
+ add r2, r1, #0
+ blx r3
+ ldr r3, _021D8C1C ; =UNK_021064C0
+ mov r0, #0x80
+ ldr r3, [r3]
+ mov r1, #0
+ mov r2, #1
+ blx r3
+ add sp, #8
+ pop {r4, pc}
+ nop
+_021D8C14: .word MOD63_021D8C20
+_021D8C18: .word UNK_021064B8
+_021D8C1C: .word UNK_021064C0
+ thumb_func_end MOD63_021D8BD8
+
+ thumb_func_start MOD63_021D8C20
+MOD63_021D8C20: ; 0x021D8C20
+ push {r3, lr}
+ ldr r0, _021D8C8C ; =0x04000008
+ mov r1, #3
+ ldrh r2, [r0]
+ bic r2, r1
+ strh r2, [r0]
+ add r0, #0x58
+ ldrh r2, [r0]
+ ldr r1, _021D8C90 ; =0xFFFFCFFD
+ and r2, r1
+ strh r2, [r0]
+ ldrh r3, [r0]
+ add r2, r1, #2
+ and r3, r2
+ mov r2, #0x10
+ orr r2, r3
+ strh r2, [r0]
+ ldrh r3, [r0]
+ ldr r2, _021D8C94 ; =0x0000CFFB
+ and r2, r3
+ strh r2, [r0]
+ add r2, r1, #2
+ ldrh r3, [r0]
+ add r1, r1, #2
+ and r3, r2
+ mov r2, #8
+ orr r2, r3
+ strh r2, [r0]
+ ldrh r2, [r0]
+ and r2, r1
+ mov r1, #0x20
+ orr r1, r2
+ strh r1, [r0]
+ ldr r0, _021D8C98 ; =MOD63_021DBB5C
+ bl G3X_SetEdgeColorTable
+ mov r0, #0
+ add r1, r0, #0
+ add r2, r0, #0
+ add r3, r0, #0
+ bl G3X_SetFog
+ mov r0, #0
+ ldr r2, _021D8C9C ; =0x00007FFF
+ add r1, r0, #0
+ mov r3, #0x3f
+ str r0, [sp]
+ bl G3X_SetClearColor
+ ldr r1, _021D8CA0 ; =0xBFFF0000
+ ldr r0, _021D8CA4 ; =0x04000580
+ str r1, [r0]
+ pop {r3, pc}
+ nop
+_021D8C8C: .word 0x04000008
+_021D8C90: .word 0xFFFFCFFD
+_021D8C94: .word 0x0000CFFB
+_021D8C98: .word MOD63_021DBB5C
+_021D8C9C: .word 0x00007FFF
+_021D8CA0: .word 0xBFFF0000
+_021D8CA4: .word 0x04000580
+ thumb_func_end MOD63_021D8C20
+
+ thumb_func_start MOD63_021D8CA8
+MOD63_021D8CA8: ; 0x021D8CA8
+ ldr r3, _021D8CAC ; =FUN_02009F80
+ bx r3
+ .align 2, 0
+_021D8CAC: .word FUN_02009F80
+ thumb_func_end MOD63_021D8CA8
+
+ thumb_func_start MOD63_021D8CB0
+MOD63_021D8CB0: ; 0x021D8CB0
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_02009F80
+ ldr r0, [r4, #0x4c]
+ bl MOD63_021DB598
+ pop {r4, pc}
+ thumb_func_end MOD63_021D8CB0
+
+ thumb_func_start MOD63_021D8CC0
+MOD63_021D8CC0: ; 0x021D8CC0
+ push {r4, r5}
+ mov r0, #1
+ lsl r0, r0, #0x1a
+ ldr r2, [r0]
+ ldr r1, _021D8D08 ; =0xFFFF1FFF
+ add r4, r0, #0
+ and r2, r1
+ lsr r1, r0, #0xd
+ orr r1, r2
+ str r1, [r0]
+ add r4, #0x48
+ ldrh r3, [r4]
+ mov r2, #0x3f
+ mov r1, #0x1f
+ bic r3, r2
+ orr r1, r3
+ mov r3, #0x20
+ orr r1, r3
+ strh r1, [r4]
+ add r4, r0, #0
+ add r4, #0x4a
+ ldrh r5, [r4]
+ mov r1, #0x11
+ bic r5, r2
+ orr r1, r5
+ orr r1, r3
+ strh r1, [r4]
+ add r1, r0, #0
+ mov r2, #0xff
+ add r1, #0x40
+ strh r2, [r1]
+ ldr r1, _021D8D0C ; =0x0000209F
+ add r0, #0x44
+ strh r1, [r0]
+ pop {r4, r5}
+ bx lr
+ .align 2, 0
+_021D8D08: .word 0xFFFF1FFF
+_021D8D0C: .word 0x0000209F
+ thumb_func_end MOD63_021D8CC0
+
+ thumb_func_start MOD63_021D8D10
+MOD63_021D8D10: ; 0x021D8D10
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_0200A2AC
+ ldr r1, _021D8D90 ; =0x00007FFF
+ mov r0, #0
+ bl FUN_0200E3A0
+ ldr r1, _021D8D90 ; =0x00007FFF
+ mov r0, #1
+ bl FUN_0200E3A0
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F34
+ bl FUN_0201E6D8
+ bl FUN_0201E740
+ mov r0, #4
+ mov r1, #8
+ bl FUN_0201669C
+ mov r0, #3
+ mov r1, #0x4c
+ lsl r2, r0, #0x11
+ bl FUN_0201681C
+ mov r1, #0xab
+ add r0, r4, #0
+ lsl r1, r1, #2
+ mov r2, #0x4c
+ bl FUN_02006268
+ mov r2, #0xab
+ mov r1, #0
+ lsl r2, r2, #2
+ add r4, r0, #0
+ bl memset
+ mov r0, #0x4c
+ str r0, [r4]
+ mov r1, #0
+ mov r0, #0xaa
+ str r1, [r4, #8]
+ lsl r0, r0, #2
+ strb r1, [r4, r0]
+ ldr r0, _021D8D94 ; =gUnk021C4918
+ strb r1, [r0, #5]
+ bl FUN_0201E7A0
+ bl GetLCRNGSeed
+ str r0, [r4, #0x14]
+ mov r0, #0
+ bl SetLCRNGSeed
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+_021D8D90: .word 0x00007FFF
+_021D8D94: .word gUnk021C4918
+ thumb_func_end MOD63_021D8D10
+
+ thumb_func_start MOD63_021D8D98
+MOD63_021D8D98: ; 0x021D8D98
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ bl FUN_02006278
+ add r5, r0, #0
+ mov r0, #0xaa
+ lsl r0, r0, #2
+ ldrb r0, [r5, r0]
+ cmp r0, #0
+ beq _021D8DD4
+ ldr r0, _021D8E5C ; =gUnknown21C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #1
+ tst r0, r1
+ bne _021D8DBC
+ mov r0, #8
+ tst r0, r1
+ beq _021D8DD4
+_021D8DBC:
+ mov r0, #1
+ str r0, [r5, #8]
+ ldr r1, _021D8E5C ; =gUnknown21C48B8
+ mov r0, #0
+ str r0, [r1, #0x6c]
+ ldr r1, _021D8E60 ; =0x00007FFF
+ bl FUN_0200E3A0
+ ldr r1, _021D8E60 ; =0x00007FFF
+ mov r0, #1
+ bl FUN_0200E3A0
+_021D8DD4:
+ ldr r0, [r4]
+ cmp r0, #4
+ bhi _021D8E42
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D8DE6: ; jump table
+ .short _021D8DF0 - _021D8DE6 - 2 ; case 0
+ .short _021D8E00 - _021D8DE6 - 2 ; case 1
+ .short _021D8E12 - _021D8DE6 - 2 ; case 2
+ .short _021D8E24 - _021D8DE6 - 2 ; case 3
+ .short _021D8E36 - _021D8DE6 - 2 ; case 4
+_021D8DF0:
+ mov r0, #0xaa
+ lsl r0, r0, #2
+ add r0, r5, r0
+ str r0, [r5, #0x30]
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D8E46
+_021D8E00:
+ add r0, r5, #0
+ bl MOD63_021D8E9C
+ cmp r0, #0
+ beq _021D8E46
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D8E46
+_021D8E12:
+ add r0, r5, #0
+ bl MOD63_021D93F0
+ cmp r0, #0
+ beq _021D8E46
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D8E46
+_021D8E24:
+ add r0, r5, #0
+ bl MOD63_021DA0A8
+ cmp r0, #0
+ beq _021D8E46
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D8E46
+_021D8E36:
+ ldr r1, [r5, #4]
+ ldr r0, _021D8E64 ; =0x00000A8C
+ cmp r1, r0
+ blt _021D8E46
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021D8E42:
+ bl ErrorHandling
+_021D8E46:
+ ldr r0, [r5, #8]
+ cmp r0, #0
+ beq _021D8E50
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021D8E50:
+ ldr r0, [r5, #4]
+ add r0, r0, #1
+ str r0, [r5, #4]
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_021D8E5C: .word gUnknown21C48B8
+_021D8E60: .word 0x00007FFF
+_021D8E64: .word 0x00000A8C
+ thumb_func_end MOD63_021D8D98
+
+ thumb_func_start MOD63_021D8E68
+MOD63_021D8E68: ; 0x021D8E68
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ bl FUN_0200E31C
+ ldr r0, [r4, #0x14]
+ bl SetLCRNGSeed
+ add r0, r5, #0
+ bl FUN_0200627C
+ mov r0, #0x4c
+ bl FUN_020168D0
+ ldr r0, _021D8E94 ; =SDK_OVERLAY_MODULE_63_ID
+ ldr r1, _021D8E98 ; =MOD63_021DBAB8
+ bl FUN_02000E7C
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D8E94: .word SDK_OVERLAY_MODULE_63_ID
+_021D8E98: .word MOD63_021DBAB8
+ thumb_func_end MOD63_021D8E68
+
+ thumb_func_start MOD63_021D8E9C
+MOD63_021D8E9C: ; 0x021D8E9C
+ push {r4, lr}
+ add r1, r0, #0
+ ldr r0, [r1, #8]
+ add r4, r1, #0
+ add r4, #0x18
+ cmp r0, #0
+ beq _021D8EAE
+ mov r0, #3
+ strb r0, [r4]
+_021D8EAE:
+ ldrb r0, [r4]
+ cmp r0, #3
+ bhi _021D8F06
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D8EC0: ; jump table
+ .short _021D8EC8 - _021D8EC0 - 2 ; case 0
+ .short _021D8ED6 - _021D8EC0 - 2 ; case 1
+ .short _021D8EE6 - _021D8EC0 - 2 ; case 2
+ .short _021D8EFC - _021D8EC0 - 2 ; case 3
+_021D8EC8:
+ add r0, r1, #0
+ bl MOD63_021D8F0C
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _021D8F06
+_021D8ED6:
+ add r1, #0x18
+ add r0, r1, #0
+ bl MOD63_021D8F38
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _021D8F06
+_021D8EE6:
+ add r0, r1, #0
+ ldr r1, [r1, #4]
+ add r0, #0x18
+ bl MOD63_021D90D0
+ cmp r0, #0
+ beq _021D8F06
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _021D8F06
+_021D8EFC:
+ add r0, r1, #0
+ bl MOD63_021D9234
+ mov r0, #1
+ pop {r4, pc}
+_021D8F06:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD63_021D8E9C
+
+ thumb_func_start MOD63_021D8F0C
+MOD63_021D8F0C: ; 0x021D8F0C
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD63_021D8890
+ add r0, r4, #0
+ bl MOD63_021D88F0
+ ldr r0, [r4, #0xc]
+ str r0, [r4, #0x24]
+ bl MOD63_021DAEF8
+ str r0, [r4, #0x2c]
+ ldr r0, _021D8F34 ; =MOD63_021D8CA8
+ add r1, r4, #0
+ bl FUN_02015F10
+ mov r0, #1
+ strb r0, [r4, #0x1a]
+ pop {r4, pc}
+ nop
+_021D8F34: .word MOD63_021D8CA8
+ thumb_func_end MOD63_021D8F0C
+
+ thumb_func_start MOD63_021D8F38
+MOD63_021D8F38: ; 0x021D8F38
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0xc]
+ mov r0, #0x80
+ mov r1, #0x13
+ mov r3, #2
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0xc]
+ mov r0, #0x80
+ mov r1, #0x13
+ mov r3, #6
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0xc]
+ mov r0, #0x80
+ mov r1, #0x14
+ mov r3, #2
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0xc]
+ mov r0, #0x80
+ mov r1, #0x15
+ mov r3, #6
+ bl FUN_020068C8
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #0x4c
+ str r0, [sp, #4]
+ mov r0, #0x80
+ mov r1, #0x12
+ add r3, r2, #0
+ bl FUN_02006930
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0x4c
+ str r0, [sp, #4]
+ mov r0, #0x80
+ mov r1, #0x12
+ mov r2, #4
+ bl FUN_02006930
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ mov r1, #1
+ ldr r2, [r4, #0xc]
+ mov r0, #0x80
+ add r3, r1, #0
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0xc]
+ mov r0, #0x80
+ mov r1, #2
+ mov r3, #1
+ bl FUN_020068C8
+ mov r1, #0
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0x4c
+ str r0, [sp, #4]
+ mov r0, #0x80
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02006930
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0xc]
+ mov r0, #0x80
+ mov r1, #0x16
+ mov r3, #3
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0xc]
+ mov r0, #0x80
+ mov r1, #0x16
+ mov r3, #7
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0xc]
+ mov r0, #0x80
+ mov r1, #0x48
+ mov r3, #5
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0xc]
+ mov r0, #0x80
+ mov r1, #0x49
+ mov r3, #5
+ bl FUN_020068C8
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0x4c
+ str r0, [sp, #4]
+ mov r0, #0x80
+ mov r1, #0x47
+ mov r2, #4
+ mov r3, #0
+ bl FUN_02006930
+ mov r0, #4
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #4
+ mov r1, #0
+ bl FUN_0201E74C
+ mov r0, #0x10
+ str r0, [sp]
+ ldr r0, _021D90C8 ; =0x04000050
+ mov r1, #2
+ mov r2, #8
+ mov r3, #0
+ bl G2x_SetBlendAlpha_
+ mov r0, #0x10
+ str r0, [sp]
+ ldr r0, _021D90CC ; =0x04001050
+ mov r1, #2
+ mov r2, #8
+ mov r3, #0
+ bl G2x_SetBlendAlpha_
+ mov r0, #1
+ add r1, r0, #0
+ bl OS_WaitIrq
+ mov r0, #0
+ bl FUN_0200E394
+ mov r0, #1
+ bl FUN_0200E394
+ bl FUN_0201E788
+ add sp, #0x10
+ pop {r4, pc}
+ nop
+_021D90C8: .word 0x04000050
+_021D90CC: .word 0x04001050
+ thumb_func_end MOD63_021D8F38
+
+ thumb_func_start MOD63_021D90D0
+MOD63_021D90D0: ; 0x021D90D0
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ ldr r0, [r4, #0x14]
+ add r5, r1, #0
+ bl MOD63_021DB1AC
+ ldrb r0, [r4, #1]
+ cmp r0, #5
+ bls _021D90E6
+ b _021D9208
+_021D90E6:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D90F2: ; jump table
+ .short _021D90FE - _021D90F2 - 2 ; case 0
+ .short _021D9122 - _021D90F2 - 2 ; case 1
+ .short _021D9148 - _021D90F2 - 2 ; case 2
+ .short _021D91AE - _021D90F2 - 2 ; case 3
+ .short _021D91CE - _021D90F2 - 2 ; case 4
+ .short _021D91FA - _021D90F2 - 2 ; case 5
+_021D90FE:
+ mov r2, #0
+ strb r2, [r4, #7]
+ strb r2, [r4, #6]
+ ldr r0, _021D9210 ; =MOD63_021D92A4
+ strb r2, [r4, #8]
+ add r1, r4, #0
+ bl FUN_0200CA44
+ str r0, [r4, #0x10]
+ mov r0, #1
+ ldr r1, _021D9214 ; =0x00000494
+ add r2, r0, #0
+ bl FUN_0200433C
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _021D9208
+_021D9122:
+ ldrb r0, [r4, #8]
+ cmp r0, #0
+ beq _021D9208
+ cmp r5, #0x73
+ blt _021D9208
+ mov r2, #0
+ strb r2, [r4, #7]
+ mov r0, #0x10
+ strb r0, [r4, #6]
+ ldr r0, _021D9218 ; =MOD63_021D9300
+ strb r2, [r4, #8]
+ add r1, r4, #0
+ bl FUN_0200CA44
+ str r0, [r4, #0x10]
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _021D9208
+_021D9148:
+ ldrb r0, [r4, #8]
+ cmp r0, #0
+ beq _021D9208
+ ldr r0, _021D921C ; =0x00000109
+ cmp r5, r0
+ blt _021D9208
+ mov r0, #2
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #2
+ mov r1, #0
+ bl FUN_0201E74C
+ mov r0, #0x10
+ str r0, [sp]
+ ldr r0, _021D9220 ; =0x04000050
+ mov r1, #4
+ mov r2, #8
+ mov r3, #0
+ bl G2x_SetBlendAlpha_
+ mov r0, #0x10
+ str r0, [sp]
+ ldr r0, _021D9224 ; =0x04001050
+ mov r1, #4
+ mov r2, #8
+ mov r3, #0
+ bl G2x_SetBlendAlpha_
+ mov r0, #4
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #4
+ mov r1, #1
+ bl FUN_0201E74C
+ mov r2, #0
+ strb r2, [r4, #7]
+ strb r2, [r4, #6]
+ ldr r0, _021D9228 ; =MOD63_021D9360
+ strb r2, [r4, #8]
+ add r1, r4, #0
+ bl FUN_0200CA44
+ str r0, [r4, #0x10]
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _021D9208
+_021D91AE:
+ ldrb r0, [r4, #8]
+ cmp r0, #0
+ beq _021D9208
+ mov r2, #0
+ strb r2, [r4, #7]
+ strb r2, [r4, #6]
+ ldr r0, _021D922C ; =MOD63_021D93A8
+ strb r2, [r4, #8]
+ add r1, r4, #0
+ bl FUN_0200CA44
+ str r0, [r4, #0x10]
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _021D9208
+_021D91CE:
+ ldrb r0, [r4, #8]
+ cmp r0, #0
+ beq _021D9208
+ ldr r0, _021D9230 ; =0x000001EA
+ cmp r5, r0
+ blt _021D9208
+ mov r0, #0x12
+ str r0, [sp]
+ mov r1, #0
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ mov r0, #2
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_0200E1D0
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _021D9208
+_021D91FA:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D9208
+ add sp, #0xc
+ mov r0, #1
+ pop {r4, r5, pc}
+_021D9208:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ nop
+_021D9210: .word MOD63_021D92A4
+_021D9214: .word 0x00000494
+_021D9218: .word MOD63_021D9300
+_021D921C: .word 0x00000109
+_021D9220: .word 0x04000050
+_021D9224: .word 0x04001050
+_021D9228: .word MOD63_021D9360
+_021D922C: .word MOD63_021D93A8
+_021D9230: .word 0x000001EA
+ thumb_func_end MOD63_021D90D0
+
+ thumb_func_start MOD63_021D9234
+MOD63_021D9234: ; 0x021D9234
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ ldrb r0, [r4, #0x1a]
+ cmp r0, #0
+ beq _021D9286
+ ldr r0, [r4, #0x2c]
+ bl MOD63_021DAF9C
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_020178A0
+ ldr r0, [r4, #0xc]
+ mov r1, #2
+ bl FUN_020178A0
+ ldr r0, [r4, #0xc]
+ mov r1, #6
+ bl FUN_020178A0
+ ldr r0, [r4, #0xc]
+ mov r1, #3
+ bl FUN_020178A0
+ ldr r0, [r4, #0xc]
+ mov r1, #7
+ bl FUN_020178A0
+ ldr r0, [r4, #0xc]
+ mov r1, #5
+ bl FUN_020178A0
+ ldr r0, [r4, #0xc]
+ bl FreeToHeap
+ mov r0, #0
+ strb r0, [r4, #0x1a]
+_021D9286:
+ ldr r0, [r4, #0x28]
+ cmp r0, #0
+ beq _021D92A0
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ bne _021D9296
+ bl ErrorHandling
+_021D9296:
+ ldr r0, [r4, #0x28]
+ bl FUN_0200CAB4
+ mov r0, #0
+ str r0, [r4, #0x28]
+_021D92A0:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD63_021D9234
+
+ thumb_func_start MOD63_021D92A4
+MOD63_021D92A4: ; 0x021D92A4
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r1, #0
+ ldrb r1, [r4, #7]
+ add r1, r1, #1
+ strb r1, [r4, #7]
+ ldrb r1, [r4, #7]
+ cmp r1, #6
+ blo _021D92C0
+ mov r1, #0
+ strb r1, [r4, #7]
+ ldrb r1, [r4, #6]
+ add r1, r1, #1
+ strb r1, [r4, #6]
+_021D92C0:
+ ldrb r1, [r4, #6]
+ cmp r1, #0x10
+ blo _021D92D2
+ bl FUN_0200CAB4
+ mov r0, #0
+ str r0, [r4, #0x10]
+ mov r0, #1
+ strb r0, [r4, #8]
+_021D92D2:
+ mov r0, #0x10
+ str r0, [sp]
+ ldrb r3, [r4, #6]
+ ldr r0, _021D92F8 ; =0x04000050
+ mov r1, #2
+ mov r2, #8
+ bl G2x_SetBlendAlpha_
+ mov r0, #0x10
+ str r0, [sp]
+ ldrb r3, [r4, #6]
+ ldr r0, _021D92FC ; =0x04001050
+ mov r1, #2
+ mov r2, #8
+ bl G2x_SetBlendAlpha_
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_021D92F8: .word 0x04000050
+_021D92FC: .word 0x04001050
+ thumb_func_end MOD63_021D92A4
+
+ thumb_func_start MOD63_021D9300
+MOD63_021D9300: ; 0x021D9300
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r1, #0
+ ldrb r1, [r4, #7]
+ add r1, r1, #1
+ strb r1, [r4, #7]
+ ldrb r1, [r4, #7]
+ cmp r1, #4
+ blo _021D931C
+ mov r1, #0
+ strb r1, [r4, #7]
+ ldrb r1, [r4, #6]
+ sub r1, r1, #1
+ strb r1, [r4, #6]
+_021D931C:
+ ldrb r1, [r4, #6]
+ cmp r1, #0
+ bne _021D9332
+ bl FUN_0200CAB4
+ mov r0, #0
+ str r0, [r4, #0x10]
+ mov r1, #1
+ strb r1, [r4, #8]
+ ldr r0, [r4, #0x18]
+ strb r1, [r0]
+_021D9332:
+ mov r0, #0x10
+ str r0, [sp]
+ ldrb r3, [r4, #6]
+ ldr r0, _021D9358 ; =0x04000050
+ mov r1, #2
+ mov r2, #8
+ bl G2x_SetBlendAlpha_
+ mov r0, #0x10
+ str r0, [sp]
+ ldrb r3, [r4, #6]
+ ldr r0, _021D935C ; =0x04001050
+ mov r1, #2
+ mov r2, #8
+ bl G2x_SetBlendAlpha_
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_021D9358: .word 0x04000050
+_021D935C: .word 0x04001050
+ thumb_func_end MOD63_021D9300
+
+ thumb_func_start MOD63_021D9360
+MOD63_021D9360: ; 0x021D9360
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r1, #0
+ ldrb r1, [r4, #7]
+ add r1, r1, #1
+ strb r1, [r4, #7]
+ ldrb r1, [r4, #7]
+ cmp r1, #4
+ blo _021D937C
+ mov r1, #0
+ strb r1, [r4, #7]
+ ldrb r1, [r4, #6]
+ add r1, r1, #1
+ strb r1, [r4, #6]
+_021D937C:
+ ldrb r1, [r4, #6]
+ cmp r1, #0x10
+ blo _021D938E
+ bl FUN_0200CAB4
+ mov r0, #0
+ str r0, [r4, #0x10]
+ mov r0, #1
+ strb r0, [r4, #8]
+_021D938E:
+ mov r0, #0x10
+ str r0, [sp]
+ ldrb r3, [r4, #6]
+ ldr r0, _021D93A4 ; =0x04000050
+ mov r1, #4
+ mov r2, #8
+ bl G2x_SetBlendAlpha_
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_021D93A4: .word 0x04000050
+ thumb_func_end MOD63_021D9360
+
+ thumb_func_start MOD63_021D93A8
+MOD63_021D93A8: ; 0x021D93A8
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r1, #0
+ ldrb r1, [r4, #7]
+ add r1, r1, #1
+ strb r1, [r4, #7]
+ ldrb r1, [r4, #7]
+ cmp r1, #4
+ blo _021D93C4
+ mov r1, #0
+ strb r1, [r4, #7]
+ ldrb r1, [r4, #6]
+ add r1, r1, #1
+ strb r1, [r4, #6]
+_021D93C4:
+ ldrb r1, [r4, #6]
+ cmp r1, #0x10
+ blo _021D93D6
+ bl FUN_0200CAB4
+ mov r0, #0
+ str r0, [r4, #0x10]
+ mov r0, #1
+ strb r0, [r4, #8]
+_021D93D6:
+ mov r0, #0x10
+ str r0, [sp]
+ ldrb r3, [r4, #6]
+ ldr r0, _021D93EC ; =0x04001050
+ mov r1, #4
+ mov r2, #8
+ bl G2x_SetBlendAlpha_
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_021D93EC: .word 0x04001050
+ thumb_func_end MOD63_021D93A8
+
+ thumb_func_start MOD63_021D93F0
+MOD63_021D93F0: ; 0x021D93F0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #8]
+ add r4, r5, #0
+ add r4, #0x34
+ cmp r0, #0
+ beq _021D9402
+ mov r0, #4
+ strb r0, [r4]
+_021D9402:
+ ldrb r0, [r4]
+ cmp r0, #4
+ bhi _021D9492
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D9414: ; jump table
+ .short _021D941E - _021D9414 - 2 ; case 0
+ .short _021D942C - _021D9414 - 2 ; case 1
+ .short _021D943C - _021D9414 - 2 ; case 2
+ .short _021D9452 - _021D9414 - 2 ; case 3
+ .short _021D9488 - _021D9414 - 2 ; case 4
+_021D941E:
+ add r0, r5, #0
+ bl MOD63_021D9498
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _021D9492
+_021D942C:
+ add r5, #0x34
+ add r0, r5, #0
+ bl MOD63_021D96A0
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _021D9492
+_021D943C:
+ add r0, r5, #0
+ add r0, #0x34
+ bl MOD63_021D9810
+ mov r0, #1
+ add r5, #0x39
+ strb r0, [r5]
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _021D9492
+_021D9452:
+ add r0, r5, #0
+ ldr r1, [r5, #4]
+ add r0, #0x34
+ bl MOD63_021D99EC
+ cmp r0, #0
+ beq _021D9466
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+_021D9466:
+ ldr r0, [r5, #0x44]
+ bl MOD63_021DAC18
+ add r0, r5, #0
+ add r0, #0x39
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _021D9480
+ add r5, #0x34
+ add r0, r5, #0
+ bl MOD63_021D9980
+ b _021D9492
+_021D9480:
+ ldr r0, [r5, #0x4c]
+ bl MOD63_021DB5A8
+ b _021D9492
+_021D9488:
+ add r0, r5, #0
+ bl MOD63_021D95A8
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021D9492:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD63_021D93F0
+
+ thumb_func_start MOD63_021D9498
+MOD63_021D9498: ; 0x021D9498
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ bl MOD63_021D88B0
+ add r0, r5, #0
+ bl MOD63_021D8A04
+ add r0, r5, #0
+ bl MOD63_021D8BD8
+ bl MOD63_021DA6E0
+ add r4, r0, #0
+ bl MOD63_021DB498
+ add r6, r0, #0
+ mov r0, #0x4c
+ add r1, r4, #0
+ bl AllocFromHeap
+ str r0, [r5, #0x44]
+ mov r0, #0x10
+ bl MOD63_021DAF20
+ str r0, [r5, #0x48]
+ mov r0, #0x4c
+ add r1, r6, #0
+ bl AllocFromHeap
+ str r0, [r5, #0x4c]
+ ldr r0, [r5, #0x44]
+ mov r1, #0
+ add r2, r4, #0
+ bl memset
+ ldr r0, [r5, #0x4c]
+ mov r1, #0
+ add r2, r6, #0
+ bl memset
+ add r0, r5, #0
+ mov r1, #4
+ add r0, #0x3b
+ strb r1, [r0]
+ ldr r0, [r5, #0x4c]
+ bl MOD63_021DB49C
+ ldr r0, [r5, #0xc]
+ mov r1, #1
+ str r0, [r5, #0x40]
+ ldr r0, _021D9588 ; =gUnk021C4918
+ strb r1, [r0, #5]
+ bl FUN_0201E7A0
+ ldr r6, _021D958C ; =MOD63_021DBDE8
+ ldr r7, _021D9590 ; =MOD63_021DBAD0
+ mov r4, #0
+_021D950C:
+ mov r0, #0xc
+ add r1, r4, #0
+ mul r1, r0
+ add r3, r6, r1
+ ldr r2, [r3, #4]
+ ldr r1, [r6, r1]
+ ldr r3, [r3, #8]
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x10
+ add r0, r4, #0
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ asr r3, r3, #0x10
+ bl FUN_020B8418
+ lsl r1, r4, #1
+ ldrh r1, [r7, r1]
+ add r0, r4, #0
+ bl FUN_020B8404
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #4
+ blo _021D950C
+ ldr r0, _021D9594 ; =0x00004210
+ ldr r1, _021D9598 ; =0x0000318A
+ mov r2, #0
+ bl FUN_020B83E0
+ ldr r0, _021D959C ; =0x00004A52
+ ldr r1, _021D95A0 ; =0x000039CE
+ mov r2, #0
+ bl FUN_020B83BC
+ mov r0, #0x1f
+ str r0, [sp]
+ mov r0, #2
+ lsl r0, r0, #0xe
+ mov r1, #0
+ str r0, [sp, #4]
+ mov r0, #0xd
+ mov r2, #2
+ add r3, r1, #0
+ bl FUN_020B8390
+ ldr r0, _021D95A4 ; =MOD63_021D8CB0
+ add r1, r5, #0
+ bl FUN_02015F10
+ mov r0, #0x10
+ mov r1, #1
+ mov r2, #2
+ bl FUN_0200A274
+ mov r0, #1
+ add r5, #0x36
+ strb r0, [r5]
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D9588: .word gUnk021C4918
+_021D958C: .word MOD63_021DBDE8
+_021D9590: .word MOD63_021DBAD0
+_021D9594: .word 0x00004210
+_021D9598: .word 0x0000318A
+_021D959C: .word 0x00004A52
+_021D95A0: .word 0x000039CE
+_021D95A4: .word MOD63_021D8CB0
+ thumb_func_end MOD63_021D9498
+
+ thumb_func_start MOD63_021D95A8
+MOD63_021D95A8: ; 0x021D95A8
+ push {r4, r5, r6, lr}
+ mov r2, #1
+ lsl r2, r2, #0x1a
+ add r5, r0, #0
+ ldr r1, [r2]
+ ldr r0, _021D969C ; =0xFFFF1FFF
+ and r0, r1
+ str r0, [r2]
+ add r0, r5, #0
+ add r0, #0x38
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _021D95F6
+ bl FUN_0201EB98
+ ldr r0, [r5, #0x78]
+ bl FUN_0201EB70
+ mov r4, #0
+ mov r6, #0x58
+_021D95D0:
+ add r0, r4, #0
+ mul r0, r6
+ add r0, r5, r0
+ add r0, #0xd0
+ ldr r0, [r0]
+ bl FreeToHeap
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #6
+ blo _021D95D0
+ ldr r0, [r5, #0x70]
+ bl FreeToHeap
+ add r0, r5, #0
+ mov r1, #0
+ add r0, #0x38
+ strb r1, [r0]
+_021D95F6:
+ add r0, r5, #0
+ add r0, #0x37
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _021D9624
+ ldr r0, [r5, #0x44]
+ bl MOD63_021DAA04
+ mov r4, #0
+_021D9608:
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x50]
+ bl FreeToHeap
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #4
+ blo _021D9608
+ add r0, r5, #0
+ mov r1, #0
+ add r0, #0x37
+ strb r1, [r0]
+_021D9624:
+ add r0, r5, #0
+ add r0, #0x36
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _021D9690
+ ldr r0, [r5, #0x48]
+ cmp r0, #0
+ beq _021D963C
+ bl MOD63_021DAF4C
+ mov r0, #0
+ str r0, [r5, #0x48]
+_021D963C:
+ ldr r0, [r5, #0x44]
+ cmp r0, #0
+ beq _021D964A
+ bl FreeToHeap
+ mov r0, #0
+ str r0, [r5, #0x44]
+_021D964A:
+ ldr r0, [r5, #0x4c]
+ cmp r0, #0
+ beq _021D965E
+ bl MOD63_021DB580
+ ldr r0, [r5, #0x4c]
+ bl FreeToHeap
+ mov r0, #0
+ str r0, [r5, #0x4c]
+_021D965E:
+ ldr r0, [r5, #0xc]
+ mov r1, #3
+ bl FUN_020178A0
+ ldr r0, [r5, #0xc]
+ mov r1, #1
+ bl FUN_020178A0
+ ldr r0, [r5, #0xc]
+ mov r1, #2
+ bl FUN_020178A0
+ ldr r0, [r5, #0xc]
+ mov r1, #4
+ bl FUN_020178A0
+ ldr r0, [r5, #0xc]
+ bl FreeToHeap
+ ldr r0, [r5, #0x10]
+ bl FUN_020223BC
+ mov r0, #0
+ add r5, #0x36
+ strb r0, [r5]
+_021D9690:
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ pop {r4, r5, r6, pc}
+ nop
+_021D969C: .word 0xFFFF1FFF
+ thumb_func_end MOD63_021D95A8
+
+ thumb_func_start MOD63_021D96A0
+MOD63_021D96A0: ; 0x021D96A0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x28
+ ldr r3, _021D980C ; =MOD63_021DBB2C
+ add r2, sp, #0x18
+ add r5, r0, #0
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ mov r0, #0x80
+ mov r1, #0x4c
+ bl NARC_ctor
+ str r0, [sp, #0x10]
+ add r0, r5, #0
+ str r0, [sp, #0x14]
+ add r0, #0x2c
+ mov r4, #0
+ str r0, [sp, #0x14]
+_021D96C6:
+ lsl r7, r4, #2
+ add r1, sp, #0x18
+ ldr r0, [sp, #0x10]
+ ldr r1, [r1, r7]
+ mov r2, #0x4c
+ add r6, r5, r7
+ bl NARC_AllocAndReadWholeMember
+ str r0, [r6, #0x1c]
+ cmp r0, #0
+ beq _021D96F4
+ ldr r1, [sp, #0x14]
+ add r1, r1, r7
+ bl FUN_020B0138
+ cmp r0, #0
+ bne _021D96F8
+ ldr r0, [r6, #0x2c]
+ bl FreeToHeap
+ bl ErrorHandling
+ b _021D96F8
+_021D96F4:
+ bl ErrorHandling
+_021D96F8:
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #4
+ blo _021D96C6
+ ldr r0, [sp, #0x10]
+ bl NARC_dtor
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0xc]
+ mov r0, #0x80
+ mov r1, #0x1c
+ mov r3, #3
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0xc]
+ mov r0, #0x80
+ mov r1, #0x1a
+ mov r3, #3
+ bl FUN_020068C8
+ mov r1, #0
+ str r1, [sp]
+ ldr r0, [r5, #0x2c]
+ mov r2, #0xa
+ add r3, r1, #0
+ bl MOD63_021D9EA8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0xc]
+ mov r0, #0x80
+ mov r1, #0x11
+ mov r3, #4
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0xc]
+ mov r0, #0x80
+ mov r1, #0xf
+ mov r3, #4
+ bl FUN_020068C8
+ mov r0, #1
+ lsl r0, r0, #8
+ str r0, [sp]
+ mov r0, #0x4c
+ str r0, [sp, #4]
+ mov r0, #0x80
+ mov r1, #0x10
+ mov r2, #4
+ mov r3, #0
+ bl FUN_02006930
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0xc]
+ mov r0, #0x80
+ mov r1, #0x1b
+ mov r3, #1
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0xc]
+ mov r0, #0x80
+ mov r1, #0x19
+ mov r3, #1
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0xc]
+ mov r0, #0x80
+ mov r1, #0x18
+ mov r3, #2
+ bl FUN_020068C8
+ ldr r0, [r5, #0x10]
+ bl MOD63_021DA6E8
+ ldr r0, [r5, #0x10]
+ bl MOD63_021DAA5C
+ ldr r0, [r5, #0x10]
+ ldr r1, [r5, #0x14]
+ bl MOD63_021DABCC
+ mov r0, #0xe
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0201E74C
+ mov r0, #0
+ bl FUN_0200E394
+ mov r0, #1
+ bl FUN_0200E394
+ mov r0, #1
+ strb r0, [r5, #3]
+ add sp, #0x28
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D980C: .word MOD63_021DBB2C
+ thumb_func_end MOD63_021D96A0
+
+ thumb_func_start MOD63_021D9810
+MOD63_021D9810: ; 0x021D9810
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x2c
+ add r5, r0, #0
+ mov r0, #0x80
+ mov r1, #0x46
+ mov r2, #0x4c
+ bl AllocAndReadWholeNarcMemberByIdPair
+ str r0, [r5, #0x3c]
+ bl FUN_020BC0FC
+ str r0, [r5, #0x40]
+ bl FUN_0201B3C4
+ cmp r0, #0
+ bne _021D9834
+ bl ErrorHandling
+_021D9834:
+ ldr r0, [r5, #0x40]
+ ldr r0, [r0, #0x14]
+ cmp r0, #0
+ bne _021D9840
+ bl ErrorHandling
+_021D9840:
+ ldr r2, [r5, #0x40]
+ ldr r0, [r5, #0x3c]
+ ldr r1, [r2, #0x14]
+ add r1, r2, r1
+ sub r1, r1, r0
+ bl FUN_02016B44
+ mov r0, #0x80
+ mov r1, #0x4c
+ bl NARC_ctor
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ str r0, [sp, #0x10]
+ add r0, #0x48
+ mov r7, #0
+ str r0, [sp, #0x10]
+_021D9862:
+ ldr r1, _021D9964 ; =MOD63_021DBB90
+ lsl r2, r7, #2
+ ldr r1, [r1, r2]
+ mov r0, #0x58
+ add r6, r7, #0
+ mul r6, r0
+ ldr r0, [sp, #0xc]
+ mov r2, #0x4c
+ bl NARC_AllocAndReadWholeMember
+ add r1, r5, r6
+ add r1, #0x9c
+ str r0, [r1]
+ add r0, r5, r6
+ add r0, #0x9c
+ ldr r0, [r0]
+ ldr r1, [r5, #0x40]
+ bl FUN_0201B3A8
+ cmp r0, #0
+ bne _021D9890
+ bl ErrorHandling
+_021D9890:
+ add r0, r5, r6
+ add r0, #0x9c
+ ldr r0, [r0]
+ bl FUN_020BC13C
+ ldrb r0, [r0, #9]
+ cmp r0, #1
+ beq _021D98A4
+ bl ErrorHandling
+_021D98A4:
+ add r0, r5, r6
+ add r0, #0x9c
+ ldr r0, [r0]
+ bl FUN_020BC13C
+ ldrh r1, [r0, #0xe]
+ add r1, r0, r1
+ ldr r1, [r1, #0xc]
+ add r4, r0, r1
+ bne _021D98BC
+ bl ErrorHandling
+_021D98BC:
+ ldr r0, [sp, #0x10]
+ add r1, r4, #0
+ add r0, r0, r6
+ bl FUN_020B80B4
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #0x40
+ bl FUN_020BC094
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #0x80
+ bl FUN_020BC094
+ mov r2, #2
+ add r0, r4, #0
+ mov r1, #0
+ lsl r2, r2, #8
+ bl FUN_020BC094
+ mov r2, #1
+ add r0, r4, #0
+ mov r1, #0
+ lsl r2, r2, #0xa
+ bl FUN_020BC094
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #0xf
+ bl FUN_020BC02C
+ add r0, r7, #1
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+ cmp r7, #6
+ blo _021D9862
+ ldr r0, [sp, #0xc]
+ bl NARC_dtor
+ mov r0, #0x4c
+ bl FUN_0201EB64
+ add r3, sp, #0x20
+ ldr r4, _021D9968 ; =MOD63_021DBAE4
+ str r0, [r5, #0x44]
+ ldmia r4!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r4]
+ ldr r1, _021D996C ; =0x0029AEC1
+ str r0, [r3]
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, [r5, #0x44]
+ ldr r3, _021D9970 ; =0x000005C1
+ str r0, [sp, #8]
+ add r0, r2, #0
+ ldr r2, _021D9974 ; =MOD63_021DBB80
+ bl FUN_0201ECA8
+ ldr r0, _021D9978 ; =0x00000981
+ ldr r1, [r5, #0x44]
+ bl FUN_0201EEF0
+ ldr r4, _021D997C ; =MOD63_021DBB08
+ add r3, sp, #0x14
+ ldmia r4!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r4]
+ str r0, [r3]
+ ldr r1, [r5, #0x44]
+ add r0, r2, #0
+ bl FUN_0201EF70
+ ldr r0, [r5, #0x44]
+ bl FUN_0201EB8C
+ mov r0, #1
+ strb r0, [r5, #4]
+ add sp, #0x2c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D9964: .word MOD63_021DBB90
+_021D9968: .word MOD63_021DBAE4
+_021D996C: .word 0x0029AEC1
+_021D9970: .word 0x000005C1
+_021D9974: .word MOD63_021DBB80
+_021D9978: .word 0x00000981
+_021D997C: .word MOD63_021DBB08
+ thumb_func_end MOD63_021D9810
+
+ thumb_func_start MOD63_021D9980
+MOD63_021D9980: ; 0x021D9980
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x3c
+ ldr r4, _021D99E4 ; =MOD63_021DBD4C
+ add r5, r0, #0
+ add r3, sp, #0x18
+ mov r2, #4
+_021D998C:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _021D998C
+ ldr r0, [r4]
+ add r2, sp, #0xc
+ str r0, [r3]
+ ldr r3, _021D99E8 ; =MOD63_021DBAFC
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ add r1, sp, #0
+ str r0, [r2]
+ mov r0, #0
+ str r0, [r1]
+ str r0, [r1, #4]
+ str r0, [r1, #8]
+ bl FUN_020222AC
+ bl FUN_0201EBA4
+ mov r4, #0
+ add r5, #0x48
+ add r7, sp, #0
+ mov r6, #0x58
+_021D99BE:
+ add r0, r4, #0
+ mul r0, r6
+ add r0, r5, r0
+ add r1, r7, #0
+ add r2, sp, #0x18
+ add r3, sp, #0xc
+ bl FUN_0201B26C
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #6
+ blo _021D99BE
+ mov r0, #0
+ mov r1, #1
+ bl FUN_020222B4
+ add sp, #0x3c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D99E4: .word MOD63_021DBD4C
+_021D99E8: .word MOD63_021DBAFC
+ thumb_func_end MOD63_021D9980
+
+ thumb_func_start MOD63_021D99EC
+MOD63_021D99EC: ; 0x021D99EC
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ ldrb r0, [r4, #6]
+ add r5, r1, #0
+ cmp r0, #0
+ bne _021D9A00
+ ldr r0, [r4, #0x14]
+ bl MOD63_021DB38C
+_021D9A00:
+ ldrb r0, [r4, #6]
+ ldrb r1, [r4, #7]
+ add r0, r0, #1
+ bl _s32_div_f
+ strb r1, [r4, #6]
+ ldrb r0, [r4, #1]
+ cmp r0, #0x11
+ bhi _021D9B0C
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D9A1E: ; jump table
+ .short _021D9A42 - _021D9A1E - 2 ; case 0
+ .short _021D9A6A - _021D9A1E - 2 ; case 1
+ .short _021D9A7A - _021D9A1E - 2 ; case 2
+ .short _021D9AB8 - _021D9A1E - 2 ; case 3
+ .short _021D9AEE - _021D9A1E - 2 ; case 4
+ .short _021D9B3E - _021D9A1E - 2 ; case 5
+ .short _021D9B72 - _021D9A1E - 2 ; case 6
+ .short _021D9BC8 - _021D9A1E - 2 ; case 7
+ .short _021D9C04 - _021D9A1E - 2 ; case 8
+ .short _021D9C70 - _021D9A1E - 2 ; case 9
+ .short _021D9CB4 - _021D9A1E - 2 ; case 10
+ .short _021D9CFC - _021D9A1E - 2 ; case 11
+ .short _021D9D38 - _021D9A1E - 2 ; case 12
+ .short _021D9D94 - _021D9A1E - 2 ; case 13
+ .short _021D9DF8 - _021D9A1E - 2 ; case 14
+ .short _021D9E48 - _021D9A1E - 2 ; case 15
+ .short _021D9E84 - _021D9A1E - 2 ; case 16
+ .short _021D9E9A - _021D9A1E - 2 ; case 17
+_021D9A42:
+ mov r0, #0xa
+ lsl r0, r0, #6
+ cmp r5, r0
+ blt _021D9B0C
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201E74C
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #8
+ mov r1, #0
+ mov r2, #0x10
+ mov r3, #1
+ bl FUN_0200A208
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _021D9EA0
+_021D9A6A:
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl MOD63_021DACA0
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _021D9EA0
+_021D9A7A:
+ ldr r0, _021D9DCC ; =0x000002E9
+ cmp r5, r0
+ bne _021D9A88
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E74C
+_021D9A88:
+ ldr r0, _021D9DD0 ; =0x000003C5
+ cmp r5, r0
+ blt _021D9B0C
+ mov r0, #7
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #0x12
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ ldr r3, _021D9DD4 ; =0x00007FFF
+ mov r0, #3
+ add r2, r1, #0
+ bl FUN_0200E1D0
+ mov r0, #0x10
+ strb r0, [r4, #7]
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _021D9EA0
+_021D9AB8:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD63_021D9F38
+ ldr r0, [r4, #0x10]
+ add r1, r5, #0
+ bl MOD63_021DAD6C
+ ldr r0, _021D9DD8 ; =0x00000631
+ cmp r5, r0
+ blt _021D9B0C
+ mov r0, #0x12
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x4c
+ mov r1, #0
+ str r0, [sp, #8]
+ ldr r3, _021D9DD4 ; =0x00007FFF
+ mov r0, #3
+ add r2, r1, #0
+ bl FUN_0200E1D0
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _021D9EA0
+_021D9AEE:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD63_021D9F38
+ ldr r0, [r4, #0x10]
+ add r1, r5, #0
+ bl MOD63_021DAD6C
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D9B0C
+ ldr r0, _021D9DDC ; =0x0000064A
+ cmp r5, r0
+ bge _021D9B0E
+_021D9B0C:
+ b _021D9EA0
+_021D9B0E:
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ mov r2, #1
+ bl MOD63_021DAC24
+ bl MOD63_021D8CC0
+ mov r0, #0
+ strb r0, [r4, #5]
+ mov r0, #0x12
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ ldr r3, _021D9DD4 ; =0x00007FFF
+ mov r0, #3
+ add r2, r1, #0
+ bl FUN_0200E1D0
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _021D9EA0
+_021D9B3E:
+ add r0, r4, #0
+ bl MOD63_021D9EE0
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D9C12
+ ldr r0, _021D9DE0 ; =0x000006B3
+ cmp r5, r0
+ blt _021D9C12
+ mov r0, #4
+ str r0, [sp]
+ mov r1, #0
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ mov r0, #3
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_0200E1D0
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _021D9EA0
+_021D9B72:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D9C12
+ mov r1, #0
+ ldr r0, _021D9DE4 ; =0x04000050
+ mov r2, #0x38
+ add r3, r1, #0
+ str r1, [sp]
+ bl G2x_SetBlendAlpha_
+ mov r0, #6
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #8
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201E6E4
+ mov r1, #0
+ ldr r0, [r4, #0x10]
+ add r2, r1, #0
+ bl MOD63_021DAD18
+ mov r0, #4
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ mov r0, #3
+ add r2, r1, #0
+ mov r3, #0
+ bl FUN_0200E1D0
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _021D9EA0
+_021D9BC8:
+ add r0, r4, #0
+ bl MOD63_021D9F20
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D9C12
+ ldr r0, [r4, #0x18]
+ mov r1, #0
+ add r2, r5, #0
+ bl MOD63_021DB5CC
+ cmp r0, #0
+ beq _021D9C12
+ mov r0, #4
+ str r0, [sp]
+ mov r1, #0
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ mov r0, #3
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_0200E1D0
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _021D9EA0
+_021D9C04:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D9C12
+ ldr r0, _021D9DE8 ; =0x00000721
+ cmp r5, r0
+ bge _021D9C14
+_021D9C12:
+ b _021D9EA0
+_021D9C14:
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl MOD63_021DACA0
+ mov r1, #0
+ ldr r0, [r4, #0x10]
+ add r2, r1, #0
+ bl MOD63_021DAC24
+ mov r1, #1
+ ldr r0, [r4, #0x10]
+ add r2, r1, #0
+ bl MOD63_021DAC24
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ mov r2, #1
+ bl MOD63_021DAD18
+ mov r1, #0
+ str r1, [sp]
+ ldr r0, [r4, #0x38]
+ mov r2, #7
+ add r3, r1, #0
+ bl MOD63_021D9EA8
+ ldr r0, [r4, #0x10]
+ mov r1, #2
+ mov r2, #1
+ bl MOD63_021DAC24
+ mov r0, #4
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ mov r0, #3
+ add r2, r1, #0
+ mov r3, #0
+ bl FUN_0200E1D0
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _021D9EA0
+_021D9C70:
+ add r0, r4, #0
+ bl MOD63_021D9F20
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D9D46
+ ldr r0, _021D9DE8 ; =0x00000721
+ cmp r5, r0
+ blt _021D9D46
+ ldr r0, [r4, #0x10]
+ bl MOD63_021DACC0
+ cmp r0, #0
+ beq _021D9D46
+ ldr r0, _021D9DEC ; =0x00000785
+ cmp r5, r0
+ blt _021D9D46
+ mov r0, #4
+ str r0, [sp]
+ mov r1, #0
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ mov r0, #3
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_0200E1D0
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _021D9EA0
+_021D9CB4:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D9D46
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ mov r2, #0
+ bl MOD63_021DAD18
+ mov r1, #0
+ str r1, [sp]
+ ldr r0, [r4, #0x30]
+ mov r2, #7
+ add r3, r1, #0
+ bl MOD63_021D9EA8
+ ldr r0, [r4, #0x10]
+ mov r1, #2
+ mov r2, #0
+ bl MOD63_021DAC24
+ mov r0, #4
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ mov r0, #3
+ add r2, r1, #0
+ mov r3, #0
+ bl FUN_0200E1D0
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _021D9EA0
+_021D9CFC:
+ add r0, r4, #0
+ bl MOD63_021D9F20
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D9D46
+ ldr r0, [r4, #0x18]
+ mov r1, #1
+ add r2, r5, #0
+ bl MOD63_021DB5CC
+ cmp r0, #0
+ beq _021D9D46
+ mov r0, #4
+ str r0, [sp]
+ mov r1, #0
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ mov r0, #3
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_0200E1D0
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _021D9EA0
+_021D9D38:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D9D46
+ ldr r0, _021D9DF0 ; =0x000007F8
+ cmp r5, r0
+ bgt _021D9D48
+_021D9D46:
+ b _021D9EA0
+_021D9D48:
+ mov r1, #1
+ ldr r0, [r4, #0x10]
+ add r2, r1, #0
+ bl MOD63_021DAD18
+ mov r0, #4
+ mov r1, #1
+ bl FUN_0201E6E4
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ mov r2, #1
+ bl MOD63_021DAC24
+ ldr r0, [r4, #0x10]
+ bl MOD63_021DAC6C
+ ldr r0, [r4, #0x10]
+ mov r1, #4
+ bl MOD63_021DAC80
+ mov r0, #4
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ mov r0, #3
+ add r2, r1, #0
+ mov r3, #0
+ bl FUN_0200E1D0
+ mov r0, #0
+ str r0, [r4, #8]
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _021D9EA0
+_021D9D94:
+ add r0, r4, #0
+ bl MOD63_021D9F00
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D9EA0
+ ldr r0, _021D9DF4 ; =0x00000861
+ cmp r5, r0
+ ble _021D9EA0
+ mov r0, #4
+ str r0, [sp]
+ mov r1, #0
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ mov r0, #3
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_0200E1D0
+ mov r0, #0
+ str r0, [r4, #8]
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _021D9EA0
+ .align 2, 0
+_021D9DCC: .word 0x000002E9
+_021D9DD0: .word 0x000003C5
+_021D9DD4: .word 0x00007FFF
+_021D9DD8: .word 0x00000631
+_021D9DDC: .word 0x0000064A
+_021D9DE0: .word 0x000006B3
+_021D9DE4: .word 0x04000050
+_021D9DE8: .word 0x00000721
+_021D9DEC: .word 0x00000785
+_021D9DF0: .word 0x000007F8
+_021D9DF4: .word 0x00000861
+_021D9DF8:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D9EA0
+ mov r1, #0
+ ldr r0, [r4, #0x10]
+ add r2, r1, #0
+ bl MOD63_021DAD18
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ mov r2, #0
+ bl MOD63_021DAD18
+ mov r1, #0
+ str r1, [sp]
+ ldr r0, [r4, #0x34]
+ mov r2, #7
+ add r3, r1, #0
+ bl MOD63_021D9EA8
+ mov r0, #4
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #4
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ mov r0, #3
+ add r2, r1, #0
+ mov r3, #0
+ bl FUN_0200E1D0
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _021D9EA0
+_021D9E48:
+ add r0, r4, #0
+ bl MOD63_021D9F20
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D9EA0
+ ldr r0, [r4, #0x18]
+ mov r1, #2
+ add r2, r5, #0
+ bl MOD63_021DB5CC
+ cmp r0, #0
+ beq _021D9EA0
+ mov r0, #0x12
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ mov r0, #0
+ add r1, r0, #0
+ add r2, r0, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _021D9EA0
+_021D9E84:
+ add r0, r4, #0
+ bl MOD63_021D9F20
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D9EA0
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _021D9EA0
+_021D9E9A:
+ add sp, #0xc
+ mov r0, #1
+ pop {r4, r5, pc}
+_021D9EA0:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD63_021D99EC
+
+ thumb_func_start MOD63_021D9EA8
+MOD63_021D9EA8: ; 0x021D9EA8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ lsl r7, r2, #5
+ add r6, r1, #0
+ ldr r0, [r5, #0xc]
+ add r1, r7, #0
+ add r4, r3, #0
+ bl DC_FlushRange
+ ldr r1, [r5, #0xc]
+ cmp r6, #0
+ bne _021D9ED0
+ lsl r0, r4, #1
+ add r0, r1, r0
+ add r1, sp, #8
+ ldrb r1, [r1, #0x10]
+ add r2, r7, #0
+ bl GX_LoadBGPltt
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9ED0:
+ lsl r0, r4, #1
+ add r0, r1, r0
+ add r1, sp, #8
+ ldrb r1, [r1, #0x10]
+ add r2, r7, #0
+ bl GXS_LoadBGPltt
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD63_021D9EA8
+
+ thumb_func_start MOD63_021D9EE0
+MOD63_021D9EE0: ; 0x021D9EE0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #8]
+ add r0, r1, #1
+ str r0, [r4, #8]
+ cmp r1, #0x18
+ ble _021D9EFE
+ mov r2, #4
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ sub r3, r2, #5
+ bl FUN_020179E0
+ mov r0, #0
+ str r0, [r4, #8]
+_021D9EFE:
+ pop {r4, pc}
+ thumb_func_end MOD63_021D9EE0
+
+ thumb_func_start MOD63_021D9F00
+MOD63_021D9F00: ; 0x021D9F00
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #8]
+ add r0, r1, #1
+ str r0, [r4, #8]
+ cmp r1, #3
+ ble _021D9F1E
+ mov r2, #1
+ ldr r0, [r4, #0xc]
+ mov r1, #2
+ add r3, r2, #0
+ bl FUN_020179E0
+ mov r0, #0
+ str r0, [r4, #8]
+_021D9F1E:
+ pop {r4, pc}
+ thumb_func_end MOD63_021D9F00
+
+ thumb_func_start MOD63_021D9F20
+MOD63_021D9F20: ; 0x021D9F20
+ push {r4, lr}
+ add r4, r0, #0
+ mov r2, #1
+ add r3, r2, #0
+ ldr r0, [r4, #0xc]
+ mov r1, #3
+ sub r3, #0x11
+ bl FUN_020179E0
+ mov r0, #0
+ str r0, [r4, #8]
+ pop {r4, pc}
+ thumb_func_end MOD63_021D9F20
+
+ thumb_func_start MOD63_021D9F38
+MOD63_021D9F38: ; 0x021D9F38
+ push {r4, r5, r6, lr}
+ sub sp, #0x50
+ add r4, r0, #0
+ add r5, r1, #0
+ add r0, sp, #0x44
+ mov r1, #0
+ str r1, [r0]
+ str r1, [r0, #4]
+ str r1, [r0, #8]
+ ldr r1, _021DA078 ; =0x000004AB
+ cmp r5, r1
+ bgt _021D9FE2
+ ldr r0, [r4, #0x44]
+ bl FUN_0201F008
+ ldr r1, _021DA07C ; =0x000005C1
+ sub r0, #0x20
+ cmp r0, r1
+ ble _021D9F68
+ ldr r0, _021DA080 ; =0x0000FFE0
+ ldr r1, [r4, #0x44]
+ bl FUN_0201EF2C
+ b _021D9F70
+_021D9F68:
+ add r0, r1, #0
+ ldr r1, [r4, #0x44]
+ bl FUN_0201EEF0
+_021D9F70:
+ mov r0, #2
+ ldr r1, [sp, #0x4c]
+ lsl r0, r0, #0xc
+ sub r0, r1, r0
+ str r0, [sp, #0x4c]
+ ldr r1, [r4, #0x44]
+ add r0, sp, #0x44
+ bl FUN_0201EF70
+ ldr r0, _021DA078 ; =0x000004AB
+ cmp r5, r0
+ bne _021DA074
+ ldr r5, _021DA084 ; =MOD63_021DBAD8
+ add r3, sp, #0x38
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ ldr r1, _021DA088 ; =0x0029AEC1
+ str r0, [r3]
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x44]
+ ldr r3, _021DA07C ; =0x000005C1
+ str r0, [sp, #8]
+ add r0, r2, #0
+ ldr r2, _021DA08C ; =MOD63_021DBB80
+ bl FUN_0201ECA8
+ ldr r5, _021DA090 ; =MOD63_021DBB20
+ add r3, sp, #0x2c
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ str r0, [r3]
+ ldr r1, [r4, #0x44]
+ add r0, r2, #0
+ bl FUN_0201EF70
+ ldr r2, _021DA094 ; =MOD63_021DBAC8
+ add r1, sp, #0xc
+ ldrh r3, [r2]
+ add r0, sp, #0xc
+ strh r3, [r1]
+ ldrh r3, [r2, #2]
+ strh r3, [r1, #2]
+ ldrh r3, [r2, #4]
+ ldrh r2, [r2, #6]
+ strh r3, [r1, #4]
+ strh r2, [r1, #6]
+ ldr r1, [r4, #0x44]
+ bl FUN_0201EFB4
+ add sp, #0x50
+ pop {r4, r5, r6, pc}
+_021D9FE2:
+ add r1, #0xd2
+ cmp r5, r1
+ bgt _021DA044
+ mov r1, #1
+ ldr r2, [sp, #0x44]
+ lsl r1, r1, #0xc
+ add r1, r2, r1
+ str r1, [sp, #0x44]
+ ldr r1, [r4, #0x44]
+ bl FUN_0201EF70
+ ldr r3, _021DA098 ; =0x0000057D
+ cmp r5, r3
+ bne _021DA074
+ ldr r6, _021DA09C ; =MOD63_021DBB14
+ add r5, sp, #0x20
+ ldmia r6!, {r0, r1}
+ add r2, r5, #0
+ stmia r5!, {r0, r1}
+ ldr r0, [r6]
+ ldr r1, _021DA088 ; =0x0029AEC1
+ str r0, [r5]
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x44]
+ add r3, #0x44
+ str r0, [sp, #8]
+ add r0, r2, #0
+ ldr r2, _021DA08C ; =MOD63_021DBB80
+ bl FUN_0201ECA8
+ ldr r0, _021DA07C ; =0x000005C1
+ ldr r1, [r4, #0x44]
+ bl FUN_0201EEF0
+ ldr r5, _021DA0A0 ; =MOD63_021DBAF0
+ add r3, sp, #0x14
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ str r0, [r3]
+ ldr r1, [r4, #0x44]
+ add r0, r2, #0
+ bl FUN_0201EF70
+ add sp, #0x50
+ pop {r4, r5, r6, pc}
+_021DA044:
+ ldr r0, _021DA0A4 ; =0x00000618
+ cmp r5, r0
+ blt _021DA062
+ ldr r0, [r4, #0x44]
+ bl FUN_0201F008
+ mov r1, #1
+ add r0, #0x20
+ lsl r1, r1, #0xe
+ cmp r0, r1
+ bge _021DA062
+ ldr r1, [r4, #0x44]
+ mov r0, #0x20
+ bl FUN_0201EF2C
+_021DA062:
+ mov r0, #1
+ ldr r1, [sp, #0x4c]
+ lsl r0, r0, #0xe
+ add r0, r1, r0
+ str r0, [sp, #0x4c]
+ ldr r1, [r4, #0x44]
+ add r0, sp, #0x44
+ bl FUN_0201EF70
+_021DA074:
+ add sp, #0x50
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021DA078: .word 0x000004AB
+_021DA07C: .word 0x000005C1
+_021DA080: .word 0x0000FFE0
+_021DA084: .word MOD63_021DBAD8
+_021DA088: .word 0x0029AEC1
+_021DA08C: .word MOD63_021DBB80
+_021DA090: .word MOD63_021DBB20
+_021DA094: .word MOD63_021DBAC8
+_021DA098: .word 0x0000057D
+_021DA09C: .word MOD63_021DBB14
+_021DA0A0: .word MOD63_021DBAF0
+_021DA0A4: .word 0x00000618
+ thumb_func_end MOD63_021D9F38
+
+ thumb_func_start MOD63_021DA0A8
+MOD63_021DA0A8: ; 0x021DA0A8
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ mov r5, #0xa3
+ lsl r5, r5, #2
+ cmp r0, #0
+ beq _021DA0BA
+ mov r0, #3
+ strb r0, [r4, r5]
+_021DA0BA:
+ ldrb r0, [r4, r5]
+ cmp r0, #3
+ bhi _021DA116
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021DA0CC: ; jump table
+ .short _021DA0D4 - _021DA0CC - 2 ; case 0
+ .short _021DA0E2 - _021DA0CC - 2 ; case 1
+ .short _021DA0F4 - _021DA0CC - 2 ; case 2
+ .short _021DA10C - _021DA0CC - 2 ; case 3
+_021DA0D4:
+ add r0, r4, #0
+ bl MOD63_021DA11C
+ ldrb r0, [r4, r5]
+ add r0, r0, #1
+ strb r0, [r4, r5]
+ b _021DA116
+_021DA0E2:
+ mov r0, #0xa3
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl MOD63_021DA158
+ ldrb r0, [r4, r5]
+ add r0, r0, #1
+ strb r0, [r4, r5]
+ b _021DA116
+_021DA0F4:
+ mov r0, #0xa3
+ lsl r0, r0, #2
+ ldr r1, [r4, #4]
+ add r0, r4, r0
+ bl MOD63_021DA30C
+ cmp r0, #0
+ beq _021DA116
+ ldrb r0, [r4, r5]
+ add r0, r0, #1
+ strb r0, [r4, r5]
+ b _021DA116
+_021DA10C:
+ add r0, r4, #0
+ bl MOD63_021DA418
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021DA116:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD63_021DA0A8
+
+ thumb_func_start MOD63_021DA11C
+MOD63_021DA11C: ; 0x021DA11C
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD63_021D88D0
+ add r0, r4, #0
+ bl MOD63_021D8ADC
+ mov r0, #0xa6
+ ldr r1, [r4, #0xc]
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_0200E3A0
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0200E3A0
+ ldr r0, _021DA150 ; =0x04000050
+ mov r1, #0
+ strh r1, [r0]
+ ldr r0, _021DA154 ; =0x0000028E
+ mov r1, #1
+ strb r1, [r4, r0]
+ pop {r4, pc}
+ .align 2, 0
+_021DA150: .word 0x04000050
+_021DA154: .word 0x0000028E
+ thumb_func_end MOD63_021DA11C
+
+ thumb_func_start MOD63_021DA158
+MOD63_021DA158: ; 0x021DA158
+ push {r3, r4, r5, lr}
+ sub sp, #0x20
+ add r4, r0, #0
+ mov r0, #0x80
+ mov r1, #0x4c
+ bl NARC_ctor
+ mov r1, #0x35
+ mov r2, #0x4c
+ add r5, r0, #0
+ bl NARC_AllocAndReadWholeMember
+ str r0, [r4, #0x10]
+ cmp r0, #0
+ beq _021DA18E
+ add r1, r4, #0
+ add r1, #0x14
+ bl FUN_020B0138
+ cmp r0, #0
+ bne _021DA192
+ ldr r0, [r4, #0x14]
+ bl FreeToHeap
+ bl ErrorHandling
+ b _021DA192
+_021DA18E:
+ bl ErrorHandling
+_021DA192:
+ add r0, r5, #0
+ bl NARC_dtor
+ mov r1, #0
+ str r1, [sp]
+ ldr r0, [r4, #0x14]
+ mov r2, #9
+ add r3, r1, #0
+ bl MOD63_021D9EA8
+ mov r3, #0
+ str r3, [sp]
+ ldr r0, [r4, #0x14]
+ mov r1, #1
+ mov r2, #9
+ bl MOD63_021D9EA8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0xc]
+ mov r0, #0x80
+ mov r1, #0x36
+ mov r3, #1
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0xc]
+ mov r0, #0x80
+ mov r1, #0x3b
+ mov r3, #1
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0xc]
+ mov r0, #0x80
+ mov r1, #0x38
+ mov r3, #2
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0xc]
+ mov r0, #0x80
+ mov r1, #0x3d
+ mov r3, #2
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0xc]
+ mov r0, #0x80
+ mov r1, #0x39
+ mov r3, #3
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0xc]
+ mov r0, #0x80
+ mov r1, #0x3e
+ mov r3, #3
+ bl FUN_020068C8
+ mov r3, #0
+ str r3, [sp]
+ str r3, [sp, #4]
+ str r3, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0xc]
+ mov r0, #0x80
+ mov r1, #0x3a
+ bl FUN_0200687C
+ mov r3, #0
+ str r3, [sp]
+ str r3, [sp, #4]
+ str r3, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0xc]
+ mov r0, #0x80
+ mov r1, #0x3f
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0xc]
+ mov r0, #0x80
+ mov r1, #0x37
+ mov r3, #5
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0xc]
+ mov r0, #0x80
+ mov r1, #0x3c
+ mov r3, #5
+ bl FUN_020068C8
+ mov r0, #0xe
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #2
+ mov r1, #1
+ bl FUN_0201E74C
+ ldr r0, [r4, #0xc]
+ mov r1, #3
+ mov r2, #1
+ mov r3, #0x40
+ bl FUN_020179E0
+ mov r0, #1
+ lsl r0, r0, #0xc
+ bl FX_Inv
+ add r5, r0, #0
+ mov r0, #1
+ lsl r0, r0, #0xc
+ bl FX_Inv
+ mov r1, #0
+ str r5, [sp, #0x10]
+ str r1, [sp, #0x14]
+ str r1, [sp, #0x18]
+ str r0, [sp, #0x1c]
+ bl OS_WaitVBlankIntr
+ mov r0, #0x60
+ str r0, [sp]
+ ldr r0, [r4, #0xc]
+ mov r1, #2
+ add r2, sp, #0x10
+ mov r3, #0x80
+ bl FUN_02017BD0
+ mov r0, #0x60
+ str r0, [sp]
+ ldr r0, [r4, #0xc]
+ mov r1, #3
+ add r2, sp, #0x10
+ mov r3, #0xc0
+ bl FUN_02017BD0
+ mov r0, #1
+ strb r0, [r4, #3]
+ add sp, #0x20
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD63_021DA158
+
+ thumb_func_start MOD63_021DA30C
+MOD63_021DA30C: ; 0x021DA30C
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ add r5, r1, #0
+ ldrb r1, [r4, #1]
+ cmp r1, #3
+ bhi _021DA3EC
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021DA326: ; jump table
+ .short _021DA32E - _021DA326 - 2 ; case 0
+ .short _021DA352 - _021DA326 - 2 ; case 1
+ .short _021DA36A - _021DA326 - 2 ; case 2
+ .short _021DA3DA - _021DA326 - 2 ; case 3
+_021DA32E:
+ ldr r0, _021DA3F8 ; =0x000008E3
+ cmp r5, r0
+ blt _021DA3EC
+ mov r0, #0x78
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ mov r0, #0
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _021DA3EC
+_021DA352:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021DA3EC
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ mov r0, #1
+ lsl r0, r0, #0xc
+ str r0, [r4, #4]
+ str r0, [r4, #8]
+ b _021DA3EC
+_021DA36A:
+ ldr r0, _021DA3FC ; =0x0000097E
+ cmp r5, r0
+ bne _021DA378
+ add r0, r4, #0
+ add r0, #0x18
+ bl MOD63_021DA588
+_021DA378:
+ ldr r0, _021DA400 ; =0x000009D3
+ cmp r5, r0
+ bne _021DA386
+ add r0, r4, #0
+ add r0, #0x18
+ bl MOD63_021DA588
+_021DA386:
+ ldr r0, _021DA404 ; =0x000009F1
+ cmp r5, r0
+ bne _021DA394
+ add r0, r4, #0
+ add r0, #0x18
+ bl MOD63_021DA588
+_021DA394:
+ ldr r0, _021DA408 ; =0x00000A1E
+ cmp r5, r0
+ bne _021DA3A2
+ add r0, r4, #0
+ add r0, #0x18
+ bl MOD63_021DA588
+_021DA3A2:
+ ldr r0, _021DA40C ; =0x00000A64
+ cmp r5, r0
+ blt _021DA3AE
+ add r0, r4, #0
+ bl MOD63_021DA478
+_021DA3AE:
+ ldr r0, _021DA410 ; =0x00000A78
+ cmp r5, r0
+ blt _021DA3EC
+ mov r0, #0x12
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ mov r0, #0
+ ldr r3, _021DA414 ; =0x00007FFF
+ add r1, r0, #0
+ add r2, r0, #0
+ bl FUN_0200E1D0
+ add r0, r4, #0
+ bl MOD63_021DA504
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _021DA3EC
+_021DA3DA:
+ bl MOD63_021DA504
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021DA3EC
+ add sp, #0xc
+ mov r0, #1
+ pop {r4, r5, pc}
+_021DA3EC:
+ add r0, r4, #0
+ bl MOD63_021DA5A0
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_021DA3F8: .word 0x000008E3
+_021DA3FC: .word 0x0000097E
+_021DA400: .word 0x000009D3
+_021DA404: .word 0x000009F1
+_021DA408: .word 0x00000A1E
+_021DA40C: .word 0x00000A64
+_021DA410: .word 0x00000A78
+_021DA414: .word 0x00007FFF
+ thumb_func_end MOD63_021DA30C
+
+ thumb_func_start MOD63_021DA418
+MOD63_021DA418: ; 0x021DA418
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021DA470 ; =0x0000028E
+ ldrb r0, [r4, r0]
+ cmp r0, #0
+ beq _021DA458
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_020178A0
+ ldr r0, [r4, #0xc]
+ mov r1, #2
+ bl FUN_020178A0
+ ldr r0, [r4, #0xc]
+ mov r1, #3
+ bl FUN_020178A0
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ bl FUN_020178A0
+ ldr r0, [r4, #0xc]
+ mov r1, #5
+ bl FUN_020178A0
+ ldr r0, [r4, #0xc]
+ bl FreeToHeap
+ ldr r0, _021DA470 ; =0x0000028E
+ mov r1, #0
+ strb r1, [r4, r0]
+_021DA458:
+ ldr r0, _021DA474 ; =0x0000028F
+ ldrb r1, [r4, r0]
+ cmp r1, #0
+ beq _021DA46E
+ add r0, #0xd
+ ldr r0, [r4, r0]
+ bl FreeToHeap
+ ldr r0, _021DA474 ; =0x0000028F
+ mov r1, #0
+ strb r1, [r4, r0]
+_021DA46E:
+ pop {r4, pc}
+ .align 2, 0
+_021DA470: .word 0x0000028E
+_021DA474: .word 0x0000028F
+ thumb_func_end MOD63_021DA418
+
+ thumb_func_start MOD63_021DA478
+MOD63_021DA478: ; 0x021DA478
+ push {r4, r5, lr}
+ sub sp, #0x2c
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ bl FX_Inv
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ bl FX_Inv
+ mov r1, #0
+ str r5, [sp, #0x1c]
+ str r1, [sp, #0x20]
+ str r1, [sp, #0x24]
+ str r0, [sp, #0x28]
+ ldr r0, [r4, #8]
+ bl FX_Inv
+ add r5, r0, #0
+ ldr r0, [r4, #8]
+ bl FX_Inv
+ mov r1, #0
+ str r5, [sp, #0xc]
+ str r1, [sp, #0x10]
+ str r1, [sp, #0x14]
+ str r0, [sp, #0x18]
+ bl OS_WaitVBlankIntr
+ mov r0, #1
+ ldr r1, [r4, #4]
+ lsl r0, r0, #0xa
+ add r1, r1, r0
+ mov r0, #3
+ lsl r0, r0, #0xc
+ cmp r1, r0
+ bgt _021DA4FE
+ str r1, [r4, #4]
+ add r0, sp, #0x1c
+ str r0, [sp]
+ mov r0, #0x80
+ str r0, [sp, #4]
+ mov r0, #0x5a
+ str r0, [sp, #8]
+ ldr r0, [r4, #0xc]
+ mov r1, #2
+ mov r2, #4
+ mov r3, #1
+ bl FUN_02017B60
+ mov r0, #1
+ ldr r1, [r4, #8]
+ lsl r0, r0, #0xa
+ add r0, r1, r0
+ str r0, [r4, #8]
+ add r0, sp, #0xc
+ str r0, [sp]
+ mov r0, #0xc0
+ str r0, [sp, #4]
+ mov r0, #0x5a
+ str r0, [sp, #8]
+ ldr r0, [r4, #0xc]
+ mov r1, #3
+ mov r2, #4
+ mov r3, #1
+ bl FUN_02017B60
+_021DA4FE:
+ add sp, #0x2c
+ pop {r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD63_021DA478
+
+ thumb_func_start MOD63_021DA504
+MOD63_021DA504: ; 0x021DA504
+ push {r4, r5, lr}
+ sub sp, #0x2c
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ bl FX_Inv
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ bl FX_Inv
+ mov r1, #0
+ str r5, [sp, #0x1c]
+ str r1, [sp, #0x20]
+ str r1, [sp, #0x24]
+ str r0, [sp, #0x28]
+ ldr r0, [r4, #8]
+ bl FX_Inv
+ add r5, r0, #0
+ ldr r0, [r4, #8]
+ bl FX_Inv
+ mov r1, #0
+ str r5, [sp, #0xc]
+ str r1, [sp, #0x10]
+ str r1, [sp, #0x14]
+ str r0, [sp, #0x18]
+ bl OS_WaitVBlankIntr
+ mov r0, #2
+ ldr r1, [r4, #4]
+ lsl r0, r0, #0xa
+ add r0, r1, r0
+ str r0, [r4, #4]
+ add r0, sp, #0x1c
+ str r0, [sp]
+ mov r0, #0x80
+ str r0, [sp, #4]
+ mov r0, #0x5a
+ str r0, [sp, #8]
+ ldr r0, [r4, #0xc]
+ mov r1, #2
+ mov r2, #4
+ mov r3, #1
+ bl FUN_02017B60
+ mov r0, #2
+ ldr r1, [r4, #8]
+ lsl r0, r0, #0xa
+ add r0, r1, r0
+ str r0, [r4, #8]
+ add r0, sp, #0xc
+ str r0, [sp]
+ mov r0, #0xc0
+ str r0, [sp, #4]
+ mov r0, #0x5a
+ str r0, [sp, #8]
+ ldr r0, [r4, #0xc]
+ mov r1, #3
+ mov r2, #4
+ mov r3, #1
+ bl FUN_02017B60
+ add sp, #0x2c
+ pop {r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD63_021DA504
+
+ thumb_func_start MOD63_021DA588
+MOD63_021DA588: ; 0x021DA588
+ mov r1, #1
+ strb r1, [r0]
+ mov r2, #6
+ strb r2, [r0, #3]
+ mov r2, #0
+ strb r2, [r0, #1]
+ ldr r3, _021DA59C ; =FUN_0201E6E4
+ add r0, r1, #0
+ bx r3
+ nop
+_021DA59C: .word FUN_0201E6E4
+ thumb_func_end MOD63_021DA588
+
+ thumb_func_start MOD63_021DA5A0
+MOD63_021DA5A0: ; 0x021DA5A0
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r5, r0, #0
+ ldrb r0, [r5, #0x18]
+ add r4, r5, #0
+ add r4, #0x18
+ cmp r0, #0
+ beq _021DA630
+ ldrb r3, [r4, #1]
+ ldr r0, _021DA634 ; =MOD63_021DBF40
+ ldrb r1, [r4, #3]
+ ldrb r0, [r0, r3]
+ cmp r1, r0
+ blo _021DA614
+ mov r1, #0
+ str r1, [sp]
+ ldr r6, _021DA638 ; =MOD63_021DBF48
+ ldr r0, [r5, #0x14]
+ ldrb r3, [r6, r3]
+ mov r2, #1
+ lsl r3, r3, #0x1c
+ lsr r3, r3, #0x18
+ bl MOD63_021D9EA8
+ mov r0, #0x20
+ str r0, [sp]
+ ldrb r6, [r4, #1]
+ ldr r3, _021DA63C ; =MOD63_021DBF44
+ ldr r0, [r5, #0x14]
+ ldrb r3, [r3, r6]
+ mov r1, #0
+ mov r2, #1
+ lsl r3, r3, #0x1c
+ lsr r3, r3, #0x18
+ bl MOD63_021D9EA8
+ mov r0, #0x20
+ str r0, [sp]
+ ldr r0, [r5, #0x14]
+ mov r1, #1
+ ldrb r5, [r4, #1]
+ ldr r3, _021DA63C ; =MOD63_021DBF44
+ add r2, r1, #0
+ ldrb r3, [r3, r5]
+ lsl r3, r3, #0x1c
+ lsr r3, r3, #0x18
+ bl MOD63_021D9EA8
+ mov r1, #0
+ strb r1, [r4, #3]
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ ldrb r0, [r4, #1]
+ cmp r0, #4
+ blo _021DA618
+ strb r1, [r4]
+ b _021DA618
+_021DA614:
+ add r0, r1, #1
+ strb r0, [r4, #3]
+_021DA618:
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ bne _021DA630
+ ldr r0, _021DA634 ; =MOD63_021DBF40
+ ldrb r1, [r4, #3]
+ ldrb r0, [r0]
+ cmp r1, r0
+ blo _021DA630
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0201E6E4
+_021DA630:
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_021DA634: .word MOD63_021DBF40
+_021DA638: .word MOD63_021DBF48
+_021DA63C: .word MOD63_021DBF44
+ thumb_func_end MOD63_021DA5A0
+
+ .section .rodata
+
+ .global MOD63_021DBAB8
+MOD63_021DBAB8: ; 0x021DBAB8
+ .word MOD63_021D74E0, MOD63_021D759C, MOD63_021D77B4, 0xFFFFFFFF
+
+ .global MOD63_021DBAC8
+MOD63_021DBAC8: ; 0x021DBAC8
+ .byte 0x00, 0x00, 0x80, 0xF6, 0x00, 0x00, 0x00, 0x00
+
+ .global MOD63_021DBAD0
+MOD63_021DBAD0: ; 0x021DBAD0
+ .byte 0x18, 0x4B, 0x00, 0x00, 0x42, 0x30, 0xFF, 0x7F
+
+ .global MOD63_021DBAD8
+MOD63_021DBAD8: ; 0x021DBAD8
+ .byte 0x00, 0x00, 0xF8, 0xFF, 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0xE4, 0xFF
+
+ .global MOD63_021DBAE4
+MOD63_021DBAE4: ; 0x021DBAE4
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00
+
+ .global MOD63_021DBAF0
+MOD63_021DBAF0: ; 0x021DBAF0
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00
+
+ .global MOD63_021DBAFC
+MOD63_021DBAFC: ; 0x021DBAFC
+ .byte 0x00, 0x10, 0x00, 0x00
+ .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
+
+ .global MOD63_021DBB08
+MOD63_021DBB08: ; 0x021DBB08
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+
+ .global MOD63_021DBB14
+MOD63_021DBB14: ; 0x021DBB14
+ .byte 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0xFF
+
+ .global MOD63_021DBB20
+MOD63_021DBB20: ; 0x021DBB20
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00
+
+ .global MOD63_021DBB2C
+MOD63_021DBB2C: ; 0x021DBB2C
+ .byte 0x1D, 0x00, 0x00, 0x00
+ .byte 0x1E, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00
+
+ .global MOD63_021DBB3C
+MOD63_021DBB3C: ; 0x021DBB3C
+ .byte 0x01, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
+
+ .global MOD63_021DBB4C
+MOD63_021DBB4C: ; 0x021DBB4C
+ .byte 0x01, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+ .global MOD63_021DBB5C
+MOD63_021DBB5C: ; 0x021DBB5C
+ .byte 0x00, 0x00, 0x84, 0x10
+ .byte 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10
+
+ .global MOD63_021DBB6C
+MOD63_021DBB6C: ; 0x021DBB6C
+ .byte 0x01, 0x00, 0x00, 0x00
+ .byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0xAE, 0x29, 0x00
+
+ .global MOD63_021DBB80
+MOD63_021DBB80: ; 0x021DBB80
+ .byte 0x02, 0xD6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x05, 0x00, 0x00, 0x00, 0x00
+
+ .global MOD63_021DBB90
+MOD63_021DBB90: ; 0x021DBB90
+ .byte 0x40, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00
+ .byte 0x44, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00
+
+ .global MOD63_021DBBA8
+MOD63_021DBBA8: ; 0x021DBBA8
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x17, 0x03, 0x00, 0x02, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+
+ .global MOD63_021DBBC4
+MOD63_021DBBC4: ; 0x021DBBC4
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+ .global MOD63_021DBBE0
+MOD63_021DBBE0: ; 0x021DBBE0
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+ .global MOD63_021DBBFC
+MOD63_021DBBFC: ; 0x021DBBFC
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x02
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+ .global MOD63_021DBC18
+MOD63_021DBC18: ; 0x021DBC18
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+
+ .global MOD63_021DBC34
+MOD63_021DBC34: ; 0x021DBC34
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+ .global MOD63_021DBC50
+MOD63_021DBC50: ; 0x021DBC50
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+ .global MOD63_021DBC6C
+MOD63_021DBC6C: ; 0x021DBC6C
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x02
+ .byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+ .global MOD63_021DBC88
+MOD63_021DBC88: ; 0x021DBC88
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+
+ .global MOD63_021DBCA4
+MOD63_021DBCA4: ; 0x021DBCA4
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x05, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+ .global MOD63_021DBCC0
+MOD63_021DBCC0: ; 0x021DBCC0
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x01, 0x00, 0x03, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+ .global MOD63_021DBCDC
+MOD63_021DBCDC: ; 0x021DBCDC
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+ .global MOD63_021DBCF8
+MOD63_021DBCF8: ; 0x021DBCF8
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x18, 0x00, 0x00, 0x03, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+
+ .global MOD63_021DBD14
+MOD63_021DBD14: ; 0x021DBD14
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x19, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+ .global MOD63_021DBD30
+MOD63_021DBD30: ; 0x021DBD30
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x04, 0x01, 0x1B, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+ .global MOD63_021DBD4C
+MOD63_021DBD4C: ; 0x021DBD4C
+ .byte 0x00, 0x10, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
+
+ .global MOD63_021DBD70
+MOD63_021DBD70: ; 0x021DBD70
+ .byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x01, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00
+
+ .global MOD63_021DBD98
+MOD63_021DBD98: ; 0x021DBD98
+ .byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00
+
+ .global MOD63_021DBDC0
+MOD63_021DBDC0: ; 0x021DBDC0
+ .byte 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+ .global MOD63_021DBDE8
+MOD63_021DBDE8: ; 0x021DBDE8
+ .byte 0x05, 0xF8, 0xFF, 0xFF, 0x24, 0xF2, 0xFF, 0xFF
+ .byte 0x6E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
+
+ .global MOD63_021DBE18
+MOD63_021DBE18: ; 0x021DBE18
+ .word MOD63_021D8D10, MOD63_021D8D98, MOD63_021D8E68, 0xFFFFFFFF
+
+ .section .data
+
+ .global MOD63_021DBF40
+MOD63_021DBF40: ; 0x021DBF40
+ .byte 0x08, 0x06, 0x06, 0x04
+
+ .global MOD63_021DBF44
+MOD63_021DBF44: ; 0x021DBF44
+ .byte 0x05, 0x04, 0x03, 0x01
+
+ .global MOD63_021DBF48
+MOD63_021DBF48: ; 0x021DBF48
+ .byte 0x08, 0x07, 0x06, 0x00
diff --git a/arm9/modules/63/asm/mod63_021DA640.s b/arm9/modules/63/asm/mod63_021DA640.s
new file mode 100644
index 00000000..dbfc4e75
--- /dev/null
+++ b/arm9/modules/63/asm/mod63_021DA640.s
@@ -0,0 +1,1086 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD63_021DA640
+MOD63_021DA640: ; 0x021DA640
+ push {r4, lr}
+ sub sp, #0x10
+ ldr r4, _021DA66C ; =MOD63_021DBE4C
+ 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, #5
+ mov r1, #0x4c
+ bl FUN_0201E00C
+ bl FUN_0201D168
+ bl FUN_0201E0BC
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_021DA66C: .word MOD63_021DBE4C
+ thumb_func_end MOD63_021DA640
+
+ thumb_func_start MOD63_021DA670
+MOD63_021DA670: ; 0x021DA670
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x2c
+ add r6, r0, #0
+ mov r0, #0
+ str r6, [sp]
+ mvn r0, r0
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ str r2, [sp, #0x10]
+ mov r2, #0x4b
+ add r5, r1, #0
+ lsl r2, r2, #2
+ ldr r1, [r5, r2]
+ add r4, r3, #0
+ str r1, [sp, #0x14]
+ add r1, r2, #4
+ ldr r1, [r5, r1]
+ add r3, r6, #0
+ str r1, [sp, #0x18]
+ add r1, r2, #0
+ add r1, #8
+ ldr r1, [r5, r1]
+ add r2, #0xc
+ str r1, [sp, #0x1c]
+ ldr r1, [r5, r2]
+ add r2, r6, #0
+ str r1, [sp, #0x20]
+ str r0, [sp, #0x24]
+ str r0, [sp, #0x28]
+ ldr r0, [sp, #0x40]
+ add r1, r6, #0
+ bl FUN_02008AA4
+ ldr r0, [r5]
+ mov r1, #0
+ str r0, [r4]
+ ldr r0, [sp, #0x40]
+ str r0, [r4, #4]
+ str r1, [r4, #8]
+ str r1, [r4, #0xc]
+ mov r0, #1
+ str r1, [r4, #0x10]
+ lsl r0, r0, #0xc
+ str r0, [r4, #0x14]
+ str r0, [r4, #0x18]
+ str r0, [r4, #0x1c]
+ strh r1, [r4, #0x20]
+ mov r0, #1
+ str r0, [r4, #0x24]
+ str r0, [r4, #0x28]
+ mov r0, #0x4c
+ str r0, [r4, #0x2c]
+ add sp, #0x2c
+ pop {r3, r4, r5, r6, pc}
+ thumb_func_end MOD63_021DA670
+
+ thumb_func_start MOD63_021DA6E0
+MOD63_021DA6E0: ; 0x021DA6E0
+ mov r0, #0x1b
+ lsl r0, r0, #4
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD63_021DA6E0
+
+ thumb_func_start MOD63_021DA6E8
+MOD63_021DA6E8: ; 0x021DA6E8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ mov r2, #1
+ lsl r2, r2, #0x1a
+ add r5, r0, #0
+ ldr r1, [r2]
+ ldr r0, _021DA9FC ; =0xFFCFFFEF
+ and r1, r0
+ mov r0, #0x10
+ orr r0, r1
+ str r0, [r2]
+ bl MOD63_021DA640
+ bl FUN_020B0FC0
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #0x80
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ mov r3, #0x20
+ str r3, [sp, #0xc]
+ mov r2, #0x4c
+ str r2, [sp, #0x10]
+ add r2, r0, #0
+ bl FUN_02009EAC
+ mov r0, #0x19
+ add r1, r5, #4
+ mov r2, #0x4c
+ bl FUN_02008C9C
+ mov r2, #1
+ str r0, [r5]
+ add r0, r5, #4
+ mov r1, #0
+ lsl r2, r2, #0x14
+ bl FUN_02008D24
+ ldr r4, _021DAA00 ; =MOD63_021DBE28
+ mov r7, #0
+ add r6, r5, #0
+_021DA73C:
+ ldrb r0, [r4]
+ add r1, r7, #0
+ mov r2, #0x4c
+ bl FUN_02008DEC
+ mov r1, #0x4b
+ lsl r1, r1, #2
+ str r0, [r6, r1]
+ add r7, r7, #1
+ add r4, r4, #1
+ add r6, r6, #4
+ cmp r7, #4
+ blt _021DA73C
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ add r0, #0xe0
+ ldr r0, [r5, r0]
+ mov r1, #0x80
+ mov r2, #0x26
+ bl FUN_02008F34
+ mov r1, #0x4f
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ add r0, #0xe0
+ ldr r0, [r5, r0]
+ mov r1, #0x80
+ mov r2, #0x27
+ mov r3, #0
+ bl FUN_02008F34
+ mov r1, #0x53
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ add r0, #0xe0
+ ldr r0, [r5, r0]
+ mov r1, #0x80
+ mov r2, #0x28
+ mov r3, #0
+ bl FUN_02008F34
+ mov r1, #0x57
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #3
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ add r0, #0xe0
+ ldr r0, [r5, r0]
+ mov r1, #0x80
+ mov r2, #0x29
+ mov r3, #0
+ bl FUN_02008F34
+ mov r1, #0x5b
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #4
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ add r0, #0xe0
+ ldr r0, [r5, r0]
+ mov r1, #0x80
+ mov r2, #0x2a
+ mov r3, #0
+ bl FUN_02008F34
+ mov r1, #0x5f
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ add r0, #0xe4
+ ldr r0, [r5, r0]
+ mov r1, #0x80
+ mov r2, #0x21
+ bl FUN_02008FEC
+ mov r1, #5
+ lsl r1, r1, #6
+ str r0, [r5, r1]
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ add r0, #0xe4
+ ldr r0, [r5, r0]
+ mov r1, #0x80
+ mov r2, #0x22
+ mov r3, #0
+ bl FUN_02008FEC
+ mov r1, #0x15
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ add r0, #0xe4
+ ldr r0, [r5, r0]
+ mov r1, #0x80
+ mov r2, #0x23
+ mov r3, #0
+ bl FUN_02008FEC
+ mov r1, #0x16
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ mov r0, #3
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ add r0, #0xe4
+ ldr r0, [r5, r0]
+ mov r1, #0x80
+ mov r2, #0x24
+ mov r3, #0
+ bl FUN_02008FEC
+ mov r1, #0x17
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ mov r0, #4
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ add r0, #0xe4
+ ldr r0, [r5, r0]
+ mov r1, #0x80
+ mov r2, #0x25
+ mov r3, #0
+ bl FUN_02008FEC
+ mov r1, #6
+ lsl r1, r1, #6
+ str r0, [r5, r1]
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ add r0, #0xe8
+ ldr r0, [r5, r0]
+ mov r1, #0x80
+ mov r2, #0x2b
+ bl FUN_020090AC
+ mov r1, #0x51
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ add r0, #0xe8
+ ldr r0, [r5, r0]
+ mov r1, #0x80
+ mov r2, #0x2c
+ mov r3, #0
+ bl FUN_020090AC
+ mov r1, #0x55
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #2
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ add r0, #0xe8
+ ldr r0, [r5, r0]
+ mov r1, #0x80
+ mov r2, #0x2d
+ mov r3, #0
+ bl FUN_020090AC
+ mov r1, #0x59
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #3
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ add r0, #0xe8
+ ldr r0, [r5, r0]
+ mov r1, #0x80
+ mov r2, #0x2e
+ mov r3, #0
+ bl FUN_020090AC
+ mov r1, #0x5d
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #4
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ add r0, #0xe8
+ ldr r0, [r5, r0]
+ mov r1, #0x80
+ mov r2, #0x2f
+ mov r3, #0
+ bl FUN_020090AC
+ mov r1, #0x61
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ add r0, #0xec
+ ldr r0, [r5, r0]
+ mov r1, #0x80
+ mov r2, #0x30
+ bl FUN_020090AC
+ mov r1, #0x52
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ add r0, #0xec
+ ldr r0, [r5, r0]
+ mov r1, #0x80
+ mov r2, #0x31
+ mov r3, #0
+ bl FUN_020090AC
+ mov r1, #0x56
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ add r0, #0xec
+ ldr r0, [r5, r0]
+ mov r1, #0x80
+ mov r2, #0x32
+ mov r3, #0
+ bl FUN_020090AC
+ mov r1, #0x5a
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #3
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ add r0, #0xec
+ ldr r0, [r5, r0]
+ mov r1, #0x80
+ mov r2, #0x33
+ mov r3, #0
+ bl FUN_020090AC
+ mov r1, #0x5e
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #4
+ str r0, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ add r0, #0xec
+ ldr r0, [r5, r0]
+ mov r1, #0x80
+ mov r2, #0x34
+ mov r3, #0
+ bl FUN_020090AC
+ mov r1, #0x62
+ lsl r1, r1, #2
+ add r7, r1, #0
+ add r6, r1, #0
+ str r0, [r5, r1]
+ mov r4, #0
+ sub r7, #0x4c
+ sub r6, #0x48
+_021DA9DC:
+ ldr r0, [r5, r7]
+ bl FUN_02009A50
+ ldr r0, [r5, r6]
+ bl FUN_02009CF0
+ add r4, r4, #1
+ add r5, #0x10
+ cmp r4, #5
+ blt _021DA9DC
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DA9FC: .word 0xFFCFFFEF
+_021DAA00: .word MOD63_021DBE28
+ thumb_func_end MOD63_021DA6E8
+
+ thumb_func_start MOD63_021DAA04
+MOD63_021DAA04: ; 0x021DAA04
+ push {r3, r4, r5, r6, r7, lr}
+ mov r7, #5
+ add r5, r0, #0
+ mov r4, #0
+ lsl r7, r7, #6
+_021DAA0E:
+ lsl r0, r4, #4
+ add r6, r5, r0
+ mov r0, #0x4f
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ bl FUN_02009C0C
+ ldr r0, [r6, r7]
+ bl FUN_02009E04
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #5
+ blo _021DAA0E
+ mov r6, #0x4b
+ mov r4, #0
+ lsl r6, r6, #2
+_021DAA32:
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, r6]
+ bl FUN_02008E2C
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #4
+ blo _021DAA32
+ ldr r0, [r5]
+ bl FUN_0201FD58
+ bl FUN_02009FA0
+ bl FUN_0201D12C
+ bl FUN_0201E08C
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD63_021DAA04
+
+ thumb_func_start MOD63_021DAA5C
+MOD63_021DAA5C: ; 0x021DAA5C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xa4
+ ldr r3, _021DABC0 ; =MOD63_021DBE5C
+ add r5, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0x38
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r3, _021DABC4 ; =MOD63_021DBE74
+ add r2, sp, #0x20
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r3, _021DABC8 ; =MOD63_021DBE8C
+ add r2, sp, #8
+ 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, sp, #0x80
+ str r0, [sp]
+ mov r0, #0
+ add r1, r5, #0
+ mov r2, #1
+ add r3, sp, #0x50
+ bl MOD63_021DA670
+ mov r0, #5
+ lsl r0, r0, #0x10
+ str r0, [sp, #0x58]
+ mov r0, #7
+ lsl r0, r0, #0x10
+ str r0, [sp, #0x5c]
+ add r0, sp, #0x50
+ bl FUN_0201FE94
+ mov r1, #0x63
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ ldr r0, [r5, r1]
+ mov r1, #0
+ bl FUN_020200BC
+ mov r0, #0x63
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ add r0, sp, #0x80
+ str r0, [sp]
+ mov r0, #1
+ add r1, r5, #0
+ add r2, r0, #0
+ add r3, sp, #0x50
+ bl MOD63_021DA670
+ mov r0, #5
+ lsl r0, r0, #0x10
+ str r0, [sp, #0x58]
+ mov r0, #7
+ lsl r0, r0, #0x10
+ str r0, [sp, #0x5c]
+ add r0, sp, #0x50
+ bl FUN_0201FE94
+ mov r1, #0x19
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ ldr r0, [r5, r1]
+ mov r1, #0
+ bl FUN_020200BC
+ mov r0, #0x19
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD63_021DAC80
+ add r0, sp, #0x80
+ str r0, [sp]
+ mov r0, #2
+ add r1, r5, #0
+ mov r2, #1
+ add r3, sp, #0x50
+ bl MOD63_021DA670
+ mov r0, #5
+ lsl r0, r0, #0x12
+ str r0, [sp, #0x58]
+ mov r0, #7
+ lsl r0, r0, #0x10
+ str r0, [sp, #0x5c]
+ add r0, sp, #0x50
+ bl FUN_0201FE94
+ mov r1, #0x65
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ ldr r0, [r5, r1]
+ mov r1, #1
+ bl FUN_020200BC
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ mov r0, #0
+ str r0, [sp, #4]
+ add r7, sp, #0x20
+ add r6, sp, #8
+ add r4, sp, #0x38
+_021DAB58:
+ add r0, sp, #0x80
+ str r0, [sp]
+ mov r0, #3
+ add r1, r5, #0
+ mov r2, #0
+ add r3, sp, #0x50
+ bl MOD63_021DA670
+ ldr r0, [r7]
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x58]
+ ldr r0, [r6]
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x5c]
+ add r0, sp, #0x50
+ bl FUN_0201FE94
+ ldr r1, [r4]
+ lsl r1, r1, #2
+ add r2, r5, r1
+ mov r1, #0x63
+ lsl r1, r1, #2
+ str r0, [r2, r1]
+ ldr r0, [r4]
+ lsl r0, r0, #2
+ add r1, r5, r0
+ mov r0, #0x63
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ mov r1, #1
+ bl FUN_020200BC
+ ldr r0, [r4]
+ lsl r0, r0, #2
+ add r1, r5, r0
+ mov r0, #0x63
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ ldr r0, [sp, #4]
+ add r7, r7, #4
+ add r0, r0, #1
+ add r6, r6, #4
+ add r4, r4, #4
+ str r0, [sp, #4]
+ cmp r0, #6
+ blt _021DAB58
+ add sp, #0xa4
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021DABC0: .word MOD63_021DBE5C
+_021DABC4: .word MOD63_021DBE74
+_021DABC8: .word MOD63_021DBE8C
+ thumb_func_end MOD63_021DAA5C
+
+ thumb_func_start MOD63_021DABCC
+MOD63_021DABCC: ; 0x021DABCC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x58
+ add r2, r0, #0
+ add r0, sp, #0x34
+ add r6, r1, #0
+ str r0, [sp]
+ add r1, r2, #0
+ mov r0, #4
+ mov r2, #0
+ add r3, sp, #4
+ bl MOD63_021DA670
+ mov r0, #2
+ str r0, [sp, #0x2c]
+ mov r5, #0
+ add r7, sp, #4
+_021DABEC:
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD63_021DAF80
+ add r4, r0, #0
+ add r0, r7, #0
+ bl FUN_0201FE94
+ str r0, [r4]
+ mov r1, #0
+ bl FUN_020200BC
+ ldr r0, [r4]
+ mov r1, #0
+ bl FUN_020200A0
+ add r5, r5, #1
+ cmp r5, #0x10
+ blt _021DABEC
+ add sp, #0x58
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD63_021DABCC
+
+ thumb_func_start MOD63_021DAC18
+MOD63_021DAC18: ; 0x021DAC18
+ ldr r3, _021DAC20 ; =FUN_0201FDEC
+ ldr r0, [r0]
+ bx r3
+ nop
+_021DAC20: .word FUN_0201FDEC
+ thumb_func_end MOD63_021DAC18
+
+ thumb_func_start MOD63_021DAC24
+MOD63_021DAC24: ; 0x021DAC24
+ lsl r1, r1, #2
+ add r1, r0, r1
+ mov r0, #0x63
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ ldr r3, _021DAC34 ; =FUN_020200A0
+ add r1, r2, #0
+ bx r3
+ .align 2, 0
+_021DAC34: .word FUN_020200A0
+ thumb_func_end MOD63_021DAC24
+
+ thumb_func_start MOD63_021DAC38
+MOD63_021DAC38: ; 0x021DAC38
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r6, r2, #0
+ mov r2, #0x63
+ lsl r2, r2, #2
+ add r4, r0, r2
+ lsl r5, r1, #2
+ ldr r0, [r4, r5]
+ add r7, r3, #0
+ bl FUN_0202011C
+ add r3, r0, #0
+ add r2, sp, #0
+ ldmia r3!, {r0, r1}
+ mov ip, r2
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ mov r1, ip
+ str r0, [r2]
+ str r6, [sp]
+ str r7, [sp, #4]
+ ldr r0, [r4, r5]
+ bl FUN_02020044
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ thumb_func_end MOD63_021DAC38
+
+ thumb_func_start MOD63_021DAC6C
+MOD63_021DAC6C: ; 0x021DAC6C
+ push {r3, lr}
+ mov r2, #0xb
+ mov r3, #7
+ mov r1, #1
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x10
+ bl MOD63_021DAC38
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD63_021DAC6C
+
+ thumb_func_start MOD63_021DAC80
+MOD63_021DAC80: ; 0x021DAC80
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x63
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r4, r1, #0
+ bl FUN_02020130
+ mov r0, #0x19
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ add r1, r4, #0
+ bl FUN_02020130
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD63_021DAC80
+
+ thumb_func_start MOD63_021DACA0
+MOD63_021DACA0: ; 0x021DACA0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x63
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r4, r1, #0
+ bl FUN_020200BC
+ mov r0, #0x19
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ add r1, r4, #0
+ bl FUN_020200BC
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD63_021DACA0
+
+ thumb_func_start MOD63_021DACC0
+MOD63_021DACC0: ; 0x021DACC0
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0202011C
+ add r5, r0, #0
+ add r3, sp, #0
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ str r0, [r3]
+ mov r0, #0xe
+ ldr r1, [sp]
+ lsl r0, r0, #0xc
+ sub r1, r1, r0
+ mov r0, #0xb
+ lsl r0, r0, #0x10
+ str r1, [sp]
+ cmp r1, r0
+ bgt _021DAD04
+ str r0, [sp]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r1, r2, #0
+ bl FUN_02020044
+ add sp, #0xc
+ mov r0, #1
+ pop {r4, r5, pc}
+_021DAD04:
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r1, r2, #0
+ bl FUN_02020044
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD63_021DACC0
+
+ thumb_func_start MOD63_021DAD18
+MOD63_021DAD18: ; 0x021DAD18
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ lsl r4, r1, #2
+ mov r0, #0x63
+ add r1, r5, r4
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ add r6, r2, #0
+ bl FUN_02020354
+ mov r1, #1
+ bl FUN_020B19C4
+ add r7, r0, #0
+ cmp r6, #0
+ bne _021DAD44
+ ldr r0, _021DAD64 ; =MOD63_021DBFA0
+ add r1, r7, #0
+ mov r2, #0x20
+ bl GX_LoadOBJPltt
+ pop {r3, r4, r5, r6, r7, pc}
+_021DAD44:
+ ldr r0, _021DAD68 ; =MOD63_021DBF64
+ ldr r0, [r0, r4]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ mov r0, #5
+ lsl r0, r0, #6
+ ldr r0, [r1, r0]
+ bl FUN_0200955C
+ ldr r0, [r0, #0xc]
+ add r1, r7, #0
+ mov r2, #0x20
+ bl GX_LoadOBJPltt
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021DAD64: .word MOD63_021DBFA0
+_021DAD68: .word MOD63_021DBF64
+ thumb_func_end MOD63_021DAD18
+
+ thumb_func_start MOD63_021DAD6C
+MOD63_021DAD6C: ; 0x021DAD6C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x30
+ ldr r3, _021DAE44 ; =MOD63_021DBE40
+ add r2, sp, #0x18
+ str r0, [sp]
+ str r1, [sp, #4]
+ ldmia r3!, {r0, r1}
+ str r2, [sp, #8]
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ ldr r3, _021DAE48 ; =MOD63_021DBE34
+ str r0, [r2]
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0xc
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ ldr r1, _021DAE4C ; =0x000005C8
+ str r0, [r2]
+ ldr r0, [sp, #4]
+ cmp r0, r1
+ blt _021DADE6
+ mov r4, #0
+_021DAD98:
+ ldr r0, [sp, #8]
+ lsl r7, r4, #2
+ ldr r0, [r0, r7]
+ lsl r1, r0, #2
+ ldr r0, [sp]
+ add r5, r0, r1
+ mov r0, #0x63
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_0202011C
+ add r6, r0, #0
+ add r3, sp, #0x24
+ ldmia r6!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r6]
+ str r0, [r3]
+ ldr r0, _021DAE50 ; =MOD63_021DBF4C
+ ldr r1, [sp, #0x24]
+ ldr r0, [r0, r7]
+ sub r0, r1, r0
+ str r0, [sp, #0x24]
+ mov r0, #1
+ ldr r1, [sp, #0x28]
+ lsl r0, r0, #0xe
+ sub r0, r1, r0
+ str r0, [sp, #0x28]
+ mov r0, #0x63
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r2, #0
+ bl FUN_02020044
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #3
+ blo _021DAD98
+_021DADE6:
+ ldr r1, _021DAE54 ; =0x000005E6
+ ldr r0, [sp, #4]
+ cmp r0, r1
+ blt _021DAE3E
+ mov r5, #0
+_021DADF0:
+ lsl r7, r5, #2
+ add r0, sp, #0xc
+ ldr r0, [r0, r7]
+ lsl r1, r0, #2
+ ldr r0, [sp]
+ add r4, r0, r1
+ mov r0, #0x63
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0202011C
+ add r6, r0, #0
+ add r3, sp, #0x24
+ ldmia r6!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r6]
+ str r0, [r3]
+ ldr r0, _021DAE58 ; =MOD63_021DBF58
+ ldr r1, [sp, #0x24]
+ ldr r0, [r0, r7]
+ sub r0, r1, r0
+ str r0, [sp, #0x24]
+ mov r0, #1
+ ldr r1, [sp, #0x28]
+ lsl r0, r0, #0xe
+ sub r0, r1, r0
+ str r0, [sp, #0x28]
+ mov r0, #0x63
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r1, r2, #0
+ bl FUN_02020044
+ add r0, r5, #1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, #3
+ blo _021DADF0
+_021DAE3E:
+ add sp, #0x30
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021DAE44: .word MOD63_021DBE40
+_021DAE48: .word MOD63_021DBE34
+_021DAE4C: .word 0x000005C8
+_021DAE50: .word MOD63_021DBF4C
+_021DAE54: .word 0x000005E6
+_021DAE58: .word MOD63_021DBF58
+ thumb_func_end MOD63_021DAD6C
+
+ .section .rodata
+
+ .global MOD63_021DBE28
+MOD63_021DBE28: ; 0x021DBE28
+ .byte 0x05, 0x05, 0x05, 0x05, 0x4C, 0x00, 0x00, 0x00, 0x4C, 0x00, 0x00, 0x00
+
+ .global MOD63_021DBE34
+MOD63_021DBE34: ; 0x021DBE34
+ .byte 0x06, 0x00, 0x00, 0x00
+ .byte 0x07, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00
+
+ .global MOD63_021DBE40
+MOD63_021DBE40: ; 0x021DBE40
+ .byte 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00
+
+ .global MOD63_021DBE4C
+MOD63_021DBE4C: ; 0x021DBE4C
+ .byte 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x4C, 0x00, 0x00, 0x00
+
+ .global MOD63_021DBE5C
+MOD63_021DBE5C: ; 0x021DBE5C
+ .byte 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00
+ .byte 0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00
+
+ .global MOD63_021DBE74
+MOD63_021DBE74: ; 0x021DBE74
+ .byte 0x08, 0x01, 0x00, 0x00
+ .byte 0x20, 0x01, 0x00, 0x00, 0x20, 0x01, 0x00, 0x00, 0xC8, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00
+ .byte 0xE0, 0x00, 0x00, 0x00
+
+ .global MOD63_021DBE8C
+MOD63_021DBE8C: ; 0x021DBE8C
+ .byte 0x80, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00
+ .byte 0xE0, 0x00, 0x00, 0x00, 0xD0, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x4C, 0x00, 0x00, 0x00
+ .byte 0x4C, 0x00, 0x00, 0x00
+
+ .section .data
+
+ .global MOD63_021DBF4C
+MOD63_021DBF4C: ; 0x021DBF4C
+ .byte 0x00, 0x60, 0x00, 0x00
+ .byte 0x00, 0x58, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00
+
+ .global MOD63_021DBF58
+MOD63_021DBF58: ; 0x021DBF58
+ .byte 0x00, 0x40, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00
+ .byte 0x00, 0x58, 0x00, 0x00
+
+ .global MOD63_021DBF64
+MOD63_021DBF64: ; 0x021DBF64
+ .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+ .section .bss
+
+ .global MOD63_021DBFA0
+MOD63_021DBFA0: ; 0x021DBFA0
+ .space 0x20
diff --git a/arm9/modules/63/asm/mod63_021DAE5C.s b/arm9/modules/63/asm/mod63_021DAE5C.s
new file mode 100644
index 00000000..81d1816a
--- /dev/null
+++ b/arm9/modules/63/asm/mod63_021DAE5C.s
@@ -0,0 +1,794 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD63_021DAE5C
+MOD63_021DAE5C: ; 0x021DAE5C
+ push {r4, lr}
+ sub sp, #0x10
+ ldr r4, _021DAE88 ; =MOD63_021DBEAC
+ 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, #1
+ mov r1, #0x4c
+ bl FUN_0201E00C
+ bl FUN_0201D168
+ bl FUN_0201E0BC
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_021DAE88: .word MOD63_021DBEAC
+ thumb_func_end MOD63_021DAE5C
+
+ thumb_func_start MOD63_021DAE8C
+MOD63_021DAE8C: ; 0x021DAE8C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x2c
+ add r4, r1, #0
+ mov r1, #0
+ add r5, r0, #0
+ str r1, [sp]
+ sub r0, r1, #1
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ add r6, r2, #0
+ str r1, [sp, #0xc]
+ mov r2, #0x4b
+ 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]
+ add r2, #0xc
+ str r0, [sp, #0x1c]
+ ldr r0, [r5, r2]
+ add r2, r1, #0
+ str r0, [sp, #0x20]
+ str r1, [sp, #0x24]
+ str r1, [sp, #0x28]
+ add r0, r6, #0
+ bl FUN_02008AA4
+ ldr r0, [r5]
+ mov r1, #0
+ str r0, [r4]
+ str r6, [r4, #4]
+ str r1, [r4, #8]
+ str r1, [r4, #0xc]
+ mov r0, #1
+ str r1, [r4, #0x10]
+ lsl r0, r0, #0xc
+ str r0, [r4, #0x14]
+ str r0, [r4, #0x18]
+ str r0, [r4, #0x1c]
+ strh r1, [r4, #0x20]
+ mov r0, #1
+ str r0, [r4, #0x24]
+ str r0, [r4, #0x28]
+ mov r0, #0x4c
+ str r0, [r4, #0x2c]
+ add sp, #0x2c
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD63_021DAE8C
+
+ thumb_func_start MOD63_021DAEF8
+MOD63_021DAEF8: ; 0x021DAEF8
+ push {r4, lr}
+ mov r1, #0x7d
+ mov r0, #0x4c
+ lsl r1, r1, #2
+ bl AllocFromHeap
+ mov r2, #0x7d
+ add r4, r0, #0
+ mov r1, #0
+ lsl r2, r2, #2
+ bl memset
+ add r0, r4, #0
+ bl MOD63_021DAFEC
+ add r0, r4, #0
+ bl MOD63_021DB150
+ add r0, r4, #0
+ pop {r4, pc}
+ thumb_func_end MOD63_021DAEF8
+
+ thumb_func_start MOD63_021DAF20
+MOD63_021DAF20: ; 0x021DAF20
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r0, #0x4c
+ mov r1, #8
+ bl AllocFromHeap
+ add r4, r0, #0
+ mov r0, #0xc
+ add r6, r5, #0
+ mul r6, r0
+ mov r0, #0x4c
+ add r1, r6, #0
+ bl AllocFromHeap
+ mov r1, #0
+ add r2, r6, #0
+ str r0, [r4, #4]
+ bl memset
+ str r5, [r4]
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD63_021DAF20
+
+ thumb_func_start MOD63_021DAF4C
+MOD63_021DAF4C: ; 0x021DAF4C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ mov r6, #0
+ cmp r0, #0
+ ble _021DAF72
+ add r4, r6, #0
+_021DAF5A:
+ ldr r0, [r5, #4]
+ add r0, r0, r4
+ ldr r0, [r0, #8]
+ cmp r0, #0
+ beq _021DAF68
+ bl FUN_0200CAB4
+_021DAF68:
+ ldr r0, [r5]
+ add r6, r6, #1
+ add r4, #0xc
+ cmp r6, r0
+ blt _021DAF5A
+_021DAF72:
+ ldr r0, [r5, #4]
+ bl FreeToHeap
+ add r0, r5, #0
+ bl FreeToHeap
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD63_021DAF4C
+
+ thumb_func_start MOD63_021DAF80
+MOD63_021DAF80: ; 0x021DAF80
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ add r4, r1, #0
+ cmp r4, r0
+ blt _021DAF90
+ bl ErrorHandling
+_021DAF90:
+ mov r0, #0xc
+ ldr r1, [r5, #4]
+ mul r0, r4
+ add r0, r1, r0
+ add r0, r0, #4
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD63_021DAF80
+
+ thumb_func_start MOD63_021DAF9C
+MOD63_021DAF9C: ; 0x021DAF9C
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ bl MOD63_021DB108
+ mov r6, #0x73
+ mov r4, #0
+ lsl r6, r6, #2
+_021DAFAA:
+ lsl r0, r4, #4
+ add r0, r5, r0
+ ldr r0, [r0, r6]
+ cmp r0, #0
+ beq _021DAFB8
+ bl FUN_0200CAB4
+_021DAFB8:
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #3
+ blo _021DAFAA
+ mov r6, #0x55
+ mov r4, #0
+ mov r7, #0xc
+ lsl r6, r6, #2
+_021DAFCA:
+ add r0, r4, #0
+ mul r0, r7
+ add r0, r5, r0
+ ldr r0, [r0, r6]
+ cmp r0, #0
+ beq _021DAFDA
+ bl FUN_0200CAB4
+_021DAFDA:
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #0xa
+ blo _021DAFCA
+ add r0, r5, #0
+ bl FreeToHeap
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD63_021DAF9C
+
+ thumb_func_start MOD63_021DAFEC
+MOD63_021DAFEC: ; 0x021DAFEC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ mov r2, #1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2]
+ add r7, r0, #0
+ add r3, r1, #0
+ ldr r0, _021DB0FC ; =0xFFCFFFEF
+ mov r1, #0x10
+ and r3, r0
+ orr r3, r1
+ str r3, [r2]
+ ldr r3, _021DB100 ; =0x04001000
+ ldr r2, [r3]
+ and r0, r2
+ orr r0, r1
+ str r0, [r3]
+ bl MOD63_021DAE5C
+ bl FUN_020B0FC0
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #0x80
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ mov r3, #0x20
+ str r3, [sp, #0xc]
+ mov r2, #0x4c
+ str r2, [sp, #0x10]
+ add r2, r0, #0
+ bl FUN_02009EAC
+ mov r0, #0xa
+ add r1, r7, #4
+ mov r2, #0x4c
+ bl FUN_02008C9C
+ ldr r4, _021DB104 ; =MOD63_021DBEBC
+ str r0, [r7]
+ mov r6, #0
+ add r5, r7, #0
+_021DB040:
+ ldrb r0, [r4]
+ add r1, r6, #0
+ mov r2, #0x4c
+ bl FUN_02008DEC
+ mov r1, #0x4b
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ add r6, r6, #1
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r6, #4
+ blt _021DB040
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ add r0, #0xe0
+ ldr r0, [r7, r0]
+ mov r1, #0x80
+ mov r2, #4
+ bl FUN_02008F34
+ mov r1, #0x4f
+ lsl r1, r1, #2
+ str r0, [r7, r1]
+ mov r3, #0
+ str r3, [sp]
+ mov r2, #3
+ str r2, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ add r0, #0xe4
+ ldr r0, [r7, r0]
+ mov r1, #0x80
+ bl FUN_02008FEC
+ mov r1, #5
+ lsl r1, r1, #6
+ str r0, [r7, r1]
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ add r0, #0xe8
+ ldr r0, [r7, r0]
+ mov r1, #0x80
+ mov r2, #5
+ bl FUN_020090AC
+ mov r1, #0x51
+ lsl r1, r1, #2
+ str r0, [r7, r1]
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ add r0, #0xec
+ ldr r0, [r7, r0]
+ mov r1, #0x80
+ mov r2, #6
+ bl FUN_020090AC
+ mov r1, #0x52
+ lsl r1, r1, #2
+ str r0, [r7, r1]
+ sub r1, #0xc
+ ldr r0, [r7, r1]
+ bl FUN_02009A50
+ mov r0, #5
+ lsl r0, r0, #6
+ ldr r0, [r7, r0]
+ bl FUN_02009CF0
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E74C
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021DB0FC: .word 0xFFCFFFEF
+_021DB100: .word 0x04001000
+_021DB104: .word MOD63_021DBEBC
+ thumb_func_end MOD63_021DAFEC
+
+ thumb_func_start MOD63_021DB108
+MOD63_021DB108: ; 0x021DB108
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r0, #0x4f
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02009C0C
+ mov r0, #5
+ lsl r0, r0, #6
+ ldr r0, [r5, r0]
+ bl FUN_02009E04
+ mov r6, #0x4b
+ mov r4, #0
+ lsl r6, r6, #2
+_021DB126:
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, r6]
+ bl FUN_02008E2C
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #4
+ blo _021DB126
+ ldr r0, [r5]
+ bl FUN_0201FD58
+ bl FUN_02009FA0
+ bl FUN_0201D12C
+ bl FUN_0201E08C
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD63_021DB108
+
+ thumb_func_start MOD63_021DB150
+MOD63_021DB150: ; 0x021DB150
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x54
+ add r7, r0, #0
+ mov r6, #0
+ add r4, r6, #0
+ add r5, r7, #0
+_021DB15C:
+ add r0, r7, #0
+ add r1, sp, #0
+ add r2, sp, #0x30
+ bl MOD63_021DAE8C
+ add r0, sp, #0
+ str r4, [sp, #8]
+ str r4, [sp, #0xc]
+ bl FUN_0201FE94
+ mov r1, #0x15
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ add r0, r1, #0
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200BC
+ mov r0, #0x15
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ mov r0, #2
+ lsl r0, r0, #0xc
+ add r6, r6, #1
+ add r4, r4, r0
+ add r5, #0xc
+ cmp r6, #0xa
+ blt _021DB15C
+ add sp, #0x54
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD63_021DB150
+
+ thumb_func_start MOD63_021DB1A0
+MOD63_021DB1A0: ; 0x021DB1A0
+ ldr r3, _021DB1A8 ; =FUN_0201FDEC
+ ldr r0, [r0]
+ bx r3
+ nop
+_021DB1A8: .word FUN_0201FDEC
+ thumb_func_end MOD63_021DB1A0
+
+ thumb_func_start MOD63_021DB1AC
+MOD63_021DB1AC: ; 0x021DB1AC
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ cmp r1, #0xb4
+ bne _021DB1CE
+ mov r2, #3
+ str r2, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ mov r0, #0x71
+ lsl r0, r0, #2
+ add r0, r4, r0
+ add r1, r4, #0
+ add r3, r2, #0
+ bl MOD63_021DB1F8
+ b _021DB1E8
+_021DB1CE:
+ ldr r0, _021DB1F4 ; =0x0000011D
+ cmp r1, r0
+ bne _021DB1E8
+ mov r2, #3
+ add r0, #0xb7
+ str r2, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ add r0, r4, r0
+ add r1, r4, #0
+ add r3, r2, #0
+ bl MOD63_021DB1F8
+_021DB1E8:
+ add r0, r4, #0
+ bl MOD63_021DB1A0
+ add sp, #8
+ pop {r4, pc}
+ nop
+_021DB1F4: .word 0x0000011D
+ thumb_func_end MOD63_021DB1AC
+
+ thumb_func_start MOD63_021DB1F8
+MOD63_021DB1F8: ; 0x021DB1F8
+ push {r4, lr}
+ add r4, r0, #0
+ strb r2, [r4]
+ ldr r2, _021DB228 ; =0xFFFFFFF8
+ strb r3, [r4, #1]
+ add r2, sp
+ ldrb r0, [r2, #0x10]
+ strb r0, [r4, #2]
+ mov r0, #0
+ strb r0, [r4, #4]
+ strb r0, [r4, #3]
+ mov r0, #0x53
+ lsl r0, r0, #2
+ add r0, r1, r0
+ str r0, [r4, #0xc]
+ ldrb r0, [r2, #0x14]
+ add r1, r4, #0
+ mov r2, #0xa
+ strb r0, [r4, #5]
+ ldr r0, _021DB22C ; =MOD63_021DB2F8
+ bl FUN_0200CA44
+ str r0, [r4, #8]
+ pop {r4, pc}
+ .align 2, 0
+_021DB228: .word 0xFFFFFFF8
+_021DB22C: .word MOD63_021DB2F8
+ thumb_func_end MOD63_021DB1F8
+
+ thumb_func_start MOD63_021DB230
+MOD63_021DB230: ; 0x021DB230
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r6, r1, #0
+ str r0, [sp]
+ cmp r2, #0
+ bne _021DB240
+ mov r7, #0x40
+ b _021DB242
+_021DB240:
+ mov r7, #0x20
+_021DB242:
+ mov r5, #0
+ cmp r6, #0
+ bls _021DB2BE
+_021DB248:
+ ldr r0, [sp]
+ mov r1, #0xa
+ bl MOD63_021DB2C8
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ bl FUN_0202011C
+ add r3, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #4
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ bl LCRandom
+ lsr r1, r0, #0x1f
+ lsl r2, r0, #0x19
+ sub r2, r2, r1
+ mov r0, #0x19
+ ror r2, r0
+ add r0, r1, r2
+ add r0, #0x40
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ bl LCRandom
+ lsr r1, r0, #0x1f
+ lsl r2, r0, #0x1a
+ sub r2, r2, r1
+ mov r0, #0x1a
+ ror r2, r0
+ add r0, r1, r2
+ add r0, r7, r0
+ lsl r0, r0, #0xc
+ str r0, [sp, #8]
+ ldr r0, [r4, #4]
+ add r1, sp, #4
+ bl FUN_02020044
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_020200BC
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_020200A0
+ ldr r0, _021DB2C4 ; =MOD63_021DB334
+ add r1, r4, #0
+ mov r2, #0x14
+ bl FUN_0200CA44
+ str r0, [r4, #8]
+ add r0, r5, #1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, r6
+ blo _021DB248
+_021DB2BE:
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021DB2C4: .word MOD63_021DB334
+ thumb_func_end MOD63_021DB230
+
+ thumb_func_start MOD63_021DB2C8
+MOD63_021DB2C8: ; 0x021DB2C8
+ push {r4, lr}
+ mov r4, #0
+ mov r2, #0xc
+_021DB2CE:
+ add r1, r4, #0
+ mul r1, r2
+ add r3, r0, r1
+ ldrb r1, [r0, r1]
+ cmp r1, #0
+ bne _021DB2E6
+ mov r0, #1
+ strb r0, [r3]
+ mov r0, #0
+ strb r0, [r3, #1]
+ add r0, r3, #0
+ pop {r4, pc}
+_021DB2E6:
+ add r1, r4, #1
+ lsl r1, r1, #0x18
+ lsr r4, r1, #0x18
+ cmp r4, #0xa
+ blo _021DB2CE
+ bl ErrorHandling
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD63_021DB2C8
+
+ thumb_func_start MOD63_021DB2F8
+MOD63_021DB2F8: ; 0x021DB2F8
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldrb r1, [r4, #4]
+ add r5, r0, #0
+ add r0, r1, #1
+ strb r0, [r4, #4]
+ ldrb r0, [r4, #1]
+ cmp r1, r0
+ blo _021DB330
+ ldrb r1, [r4]
+ ldrb r2, [r4, #5]
+ ldr r0, [r4, #0xc]
+ bl MOD63_021DB230
+ mov r0, #0
+ strb r0, [r4, #4]
+ ldrb r0, [r4, #3]
+ add r0, r0, #1
+ strb r0, [r4, #3]
+ ldrb r1, [r4, #3]
+ ldrb r0, [r4, #2]
+ cmp r1, r0
+ blo _021DB330
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ mov r0, #0
+ str r0, [r4, #8]
+_021DB330:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD63_021DB2F8
+
+ thumb_func_start MOD63_021DB334
+MOD63_021DB334: ; 0x021DB334
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ bl FUN_0202011C
+ add r6, r0, #0
+ add r3, sp, #0
+ ldmia r6!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r6]
+ str r0, [r3]
+ mov r0, #3
+ ldr r1, [sp, #4]
+ lsl r0, r0, #0xc
+ add r0, r1, r0
+ str r0, [sp, #4]
+ ldr r0, [r4, #4]
+ add r1, r2, #0
+ bl FUN_02020044
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ ldrb r0, [r4, #1]
+ cmp r0, #0x50
+ blo _021DB388
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ mov r1, #0
+ str r1, [r4, #8]
+ strb r1, [r4]
+ ldr r0, [r4, #4]
+ bl FUN_020200BC
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl FUN_020200A0
+_021DB388:
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ thumb_func_end MOD63_021DB334
+
+ thumb_func_start MOD63_021DB38C
+MOD63_021DB38C: ; 0x021DB38C
+ ldr r3, _021DB394 ; =MOD63_021DB398
+ mov r1, #2
+ bx r3
+ nop
+_021DB394: .word MOD63_021DB398
+ thumb_func_end MOD63_021DB38C
+
+ thumb_func_start MOD63_021DB398
+MOD63_021DB398: ; 0x021DB398
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r6, r0, #0
+ ldr r0, [r6, #4]
+ add r7, r1, #0
+ str r0, [sp]
+ ldr r5, _021DB418 ; =0x00000000
+ beq _021DB414
+_021DB3A8:
+ ldr r0, [sp]
+ ldr r1, [r6]
+ bl MOD63_021DB2C8
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ bl FUN_0202011C
+ add r3, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #4
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ bl LCRandom
+ mov r1, #0xe0
+ bl _s32_div_f
+ add r1, #0xa
+ lsl r0, r1, #0xc
+ str r0, [sp, #4]
+ bl LCRandom
+ mov r1, #0x38
+ bl _s32_div_f
+ ldr r0, _021DB41C ; =0x0000013A
+ add r0, r1, r0
+ lsl r0, r0, #0xc
+ str r0, [sp, #8]
+ ldr r0, [r4, #4]
+ add r1, sp, #4
+ bl FUN_02020044
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_020200BC
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_020200A0
+ ldr r0, _021DB420 ; =MOD63_021DB424
+ add r1, r4, #0
+ mov r2, #0x14
+ bl FUN_0200CA44
+ str r0, [r4, #8]
+ add r0, r5, #1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, r7
+ blo _021DB3A8
+_021DB414:
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DB418: .word 0x00000000
+_021DB41C: .word 0x0000013A
+_021DB420: .word MOD63_021DB424
+ thumb_func_end MOD63_021DB398
+
+ thumb_func_start MOD63_021DB424
+MOD63_021DB424: ; 0x021DB424
+ push {r4, lr}
+ add r4, r1, #0
+ ldrb r1, [r4, #1]
+ add r1, r1, #1
+ strb r1, [r4, #1]
+ ldrb r1, [r4, #1]
+ cmp r1, #8
+ blo _021DB44C
+ bl FUN_0200CAB4
+ mov r1, #0
+ str r1, [r4, #8]
+ strb r1, [r4]
+ ldr r0, [r4, #4]
+ bl FUN_020200BC
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl FUN_020200A0
+_021DB44C:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD63_021DB424
+
+ .section .rodata
+
+ .global MOD63_021DBEAC
+MOD63_021DBEAC: ; 0x021DBEAC
+ .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x4C, 0x00, 0x00, 0x00
+
+ .global MOD63_021DBEBC
+MOD63_021DBEBC: ; 0x021DBEBC
+ .byte 0x01, 0x01, 0x01, 0x01
diff --git a/arm9/modules/63/asm/mod63_021DB450.s b/arm9/modules/63/asm/mod63_021DB450.s
new file mode 100644
index 00000000..d93aa5ac
--- /dev/null
+++ b/arm9/modules/63/asm/mod63_021DB450.s
@@ -0,0 +1,720 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD63_021DB450
+MOD63_021DB450: ; 0x021DB450
+ push {r4, lr}
+ ldr r3, _021DB470 ; =UNK_021064B8
+ mov r2, #0
+ ldr r3, [r3]
+ blx r3
+ add r4, r0, #0
+ bl FUN_0201327C
+ cmp r4, #0
+ bne _021DB468
+ bl ErrorHandling
+_021DB468:
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0xd
+ pop {r4, pc}
+ nop
+_021DB470: .word UNK_021064B8
+ thumb_func_end MOD63_021DB450
+
+ thumb_func_start MOD63_021DB474
+MOD63_021DB474: ; 0x021DB474
+ push {r4, lr}
+ ldr r3, _021DB494 ; =UNK_021064C0
+ mov r2, #1
+ ldr r3, [r3]
+ blx r3
+ add r4, r0, #0
+ bne _021DB486
+ bl ErrorHandling
+_021DB486:
+ add r0, r4, #0
+ bl FUN_020132BC
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0xd
+ pop {r4, pc}
+ nop
+_021DB494: .word UNK_021064C0
+ thumb_func_end MOD63_021DB474
+
+ thumb_func_start MOD63_021DB498
+MOD63_021DB498: ; 0x021DB498
+ mov r0, #0x20
+ bx lr
+ thumb_func_end MOD63_021DB498
+
+ thumb_func_start MOD63_021DB49C
+MOD63_021DB49C: ; 0x021DB49C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x2c
+ ldr r3, _021DB56C ; =MOD63_021DBECC
+ add r5, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0x10
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ mov r0, #0x4c
+ bl FUN_02006D98
+ ldr r7, _021DB570 ; =MOD63_021DBEF0
+ str r0, [r5]
+ mov r4, #0
+_021DB4BA:
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ lsl r6, r4, #2
+ add r1, sp, #0x10
+ ldr r1, [r1, r6]
+ add r0, sp, #0x1c
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ mov r2, #0
+ mov r3, #2
+ bl FUN_02068C00
+ ldr r0, _021DB574 ; =0x000003FF
+ lsl r2, r4, #3
+ str r0, [sp]
+ str r4, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ add r3, r7, r2
+ ldr r0, [r5]
+ ldr r2, [r7, r2]
+ ldr r3, [r3, #4]
+ add r1, sp, #0x1c
+ add r6, r5, r6
+ bl FUN_020073A0
+ mov r1, #6
+ mov r2, #1
+ str r0, [r6, #4]
+ bl FUN_02007558
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #3
+ blo _021DB4BA
+ ldr r0, [r5, #8]
+ mov r1, #0x23
+ mov r2, #1
+ bl FUN_02007558
+ mov r0, #1
+ str r0, [r5, #0x10]
+ bl FUN_02012CC8
+ mov r1, #0x12
+ mov r0, #0x4c
+ lsl r1, r1, #0xa
+ bl AllocFromHeap
+ str r0, [r5, #0x14]
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0x4c
+ str r0, [sp, #4]
+ mov r3, #0x12
+ ldr r0, _021DB578 ; =MOD63_021DB450
+ ldr r1, _021DB57C ; =MOD63_021DB474
+ ldr r2, [r5, #0x14]
+ lsl r3, r3, #0xa
+ bl FUN_02012CDC
+ str r0, [r5, #0x18]
+ bl FUN_0201343C
+ add r2, r0, #0
+ mov r0, #1
+ mov r1, #0xe1
+ lsl r0, r0, #0xc
+ lsl r1, r1, #0xe
+ bl FUN_0201EC94
+ mov r0, #0x3d
+ mov r1, #4
+ mov r2, #0x4c
+ bl FUN_0201318C
+ add r1, r0, #0
+ ldr r0, [r5, #0x18]
+ mov r2, #0xa
+ mov r3, #1
+ bl FUN_02013194
+ add sp, #0x2c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021DB56C: .word MOD63_021DBECC
+_021DB570: .word MOD63_021DBEF0
+_021DB574: .word 0x000003FF
+_021DB578: .word MOD63_021DB450
+_021DB57C: .word MOD63_021DB474
+ thumb_func_end MOD63_021DB49C
+
+ thumb_func_start MOD63_021DB580
+MOD63_021DB580: ; 0x021DB580
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x18]
+ bl FUN_02012DE4
+ ldr r0, [r4, #0x14]
+ bl FreeToHeap
+ ldr r0, [r4]
+ bl FUN_020072E8
+ pop {r4, pc}
+ thumb_func_end MOD63_021DB580
+
+ thumb_func_start MOD63_021DB598
+MOD63_021DB598: ; 0x021DB598
+ push {r3, lr}
+ cmp r0, #0
+ beq _021DB5A4
+ ldr r0, [r0]
+ bl FUN_020081C4
+_021DB5A4:
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD63_021DB598
+
+ thumb_func_start MOD63_021DB5A8
+MOD63_021DB5A8: ; 0x021DB5A8
+ push {r4, lr}
+ add r4, r0, #0
+ beq _021DB5C8
+ bl FUN_020222AC
+ bl FUN_020B02C8
+ ldr r0, [r4]
+ bl FUN_02006ED4
+ bl MOD63_021DB934
+ mov r0, #1
+ mov r1, #0
+ bl FUN_020222B4
+_021DB5C8:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD63_021DB5A8
+
+ thumb_func_start MOD63_021DB5CC
+MOD63_021DB5CC: ; 0x021DB5CC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r4, r0, #0
+ add r7, r2, #0
+ ldrb r2, [r4, #0x1c]
+ add r5, r4, #0
+ add r6, r1, #0
+ add r5, #0x1c
+ cmp r2, #5
+ bls _021DB5E2
+ b _021DB6FC
+_021DB5E2:
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_021DB5EE: ; jump table
+ .short _021DB5FA - _021DB5EE - 2 ; case 0
+ .short _021DB63C - _021DB5EE - 2 ; case 1
+ .short _021DB658 - _021DB5EE - 2 ; case 2
+ .short _021DB690 - _021DB5EE - 2 ; case 3
+ .short _021DB6BE - _021DB5EE - 2 ; case 4
+ .short _021DB6E4 - _021DB5EE - 2 ; case 5
+_021DB5FA:
+ ldr r0, _021DB704 ; =0x0400004A
+ mov r1, #0x3f
+ ldrh r2, [r0]
+ add r7, r4, #4
+ bic r2, r1
+ mov r1, #0x11
+ orr r1, r2
+ mov r2, #0x20
+ orr r1, r2
+ strh r1, [r0]
+ lsl r0, r6, #2
+ str r0, [sp]
+ ldr r0, [r7, r0]
+ mov r1, #0xc
+ lsl r2, r2, #5
+ bl FUN_02007558
+ ldr r0, [sp]
+ mov r2, #1
+ ldr r0, [r7, r0]
+ mov r1, #0xd
+ lsl r2, r2, #0xa
+ bl FUN_02007558
+ ldr r0, [sp]
+ mov r1, #6
+ ldr r0, [r7, r0]
+ mov r2, #0
+ bl FUN_02007558
+ ldrb r0, [r5]
+ add r0, r0, #1
+ strb r0, [r5]
+_021DB63C:
+ ldr r2, _021DB708 ; =MOD63_021DBED8
+ lsl r3, r6, #3
+ ldr r2, [r2, r3]
+ add r0, r4, #0
+ add r1, r6, #0
+ blx r2
+ cmp r0, #0
+ beq _021DB6FC
+ mov r0, #0
+ strb r0, [r4, #0x1d]
+ ldrb r0, [r5]
+ add r0, r0, #1
+ strb r0, [r5]
+ b _021DB6FC
+_021DB658:
+ ldr r0, [r4, #0x18]
+ mov r1, #1
+ bl FUN_02013440
+ lsl r0, r6, #2
+ str r0, [sp, #4]
+ ldr r1, _021DB70C ; =MOD63_021DBF08
+ lsl r6, r6, #3
+ ldr r3, [sp, #4]
+ add r7, r4, #4
+ ldr r0, [r4, #0x18]
+ ldr r1, [r1, r6]
+ ldr r2, _021DB710 ; =MOD63_021DB940
+ ldr r3, [r7, r3]
+ bl FUN_020133AC
+ ldr r1, _021DB714 ; =MOD63_021DBF0C
+ ldr r3, [sp, #4]
+ ldr r0, [r4, #0x18]
+ ldr r1, [r1, r6]
+ ldr r2, _021DB710 ; =MOD63_021DB940
+ ldr r3, [r7, r3]
+ bl FUN_020133AC
+ ldrb r0, [r5]
+ add r0, r0, #1
+ strb r0, [r5]
+ b _021DB6FC
+_021DB690:
+ ldr r0, [r4, #0x18]
+ bl FUN_020133C8
+ cmp r0, #0
+ bne _021DB6FC
+ ldr r0, _021DB718 ; =MOD63_021DBEC0
+ lsl r1, r6, #2
+ ldr r0, [r0, r1]
+ cmp r7, r0
+ blt _021DB6FC
+ ldr r1, _021DB704 ; =0x0400004A
+ mov r0, #0x3f
+ ldrh r2, [r1]
+ bic r2, r0
+ mov r0, #0x10
+ orr r2, r0
+ mov r0, #0x20
+ orr r0, r2
+ strh r0, [r1]
+ ldrb r0, [r5]
+ add r0, r0, #1
+ strb r0, [r5]
+ b _021DB6FC
+_021DB6BE:
+ ldr r2, _021DB71C ; =MOD63_021DBEDC
+ lsl r3, r6, #3
+ ldr r2, [r2, r3]
+ blx r2
+ cmp r0, #0
+ beq _021DB6FC
+ lsl r0, r6, #2
+ add r0, r4, r0
+ ldr r0, [r0, #4]
+ mov r1, #6
+ mov r2, #1
+ bl FUN_02007558
+ mov r0, #0
+ strb r0, [r4, #0x1d]
+ ldrb r0, [r5]
+ add r0, r0, #1
+ strb r0, [r5]
+ b _021DB6FC
+_021DB6E4:
+ ldrb r0, [r4, #0x1d]
+ add r0, r0, #1
+ strb r0, [r4, #0x1d]
+ ldrb r0, [r4, #0x1d]
+ cmp r0, #0x14
+ blo _021DB6FC
+ mov r0, #0
+ strb r0, [r4, #0x1d]
+ strb r0, [r5]
+ add sp, #8
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DB6FC:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021DB704: .word 0x0400004A
+_021DB708: .word MOD63_021DBED8
+_021DB70C: .word MOD63_021DBF08
+_021DB710: .word MOD63_021DB940
+_021DB714: .word MOD63_021DBF0C
+_021DB718: .word MOD63_021DBEC0
+_021DB71C: .word MOD63_021DBEDC
+ thumb_func_end MOD63_021DB5CC
+
+ thumb_func_start MOD63_021DB720
+MOD63_021DB720: ; 0x021DB720
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ lsl r0, r1, #2
+ add r0, r5, r0
+ ldr r4, [r0, #4]
+ mov r1, #0
+ add r0, r4, #0
+ mov r2, #6
+ bl FUN_020079E0
+ mov r1, #1
+ add r2, r1, #0
+ add r0, r4, #0
+ sub r2, #0x11
+ bl FUN_020079E0
+ mov r1, #0xc
+ add r2, r1, #0
+ add r0, r4, #0
+ sub r2, #0x8c
+ bl FUN_020079E0
+ mov r1, #0xd
+ add r2, r1, #0
+ add r0, r4, #0
+ sub r2, #0x8d
+ bl FUN_020079E0
+ ldrb r0, [r5, #0x1d]
+ add r0, r0, #1
+ strb r0, [r5, #0x1d]
+ ldrb r0, [r5, #0x1d]
+ cmp r0, #6
+ blo _021DB780
+ mov r1, #0xc
+ add r2, r1, #0
+ add r0, r4, #0
+ add r2, #0xf4
+ bl FUN_02007558
+ mov r1, #0xd
+ add r2, r1, #0
+ add r0, r4, #0
+ add r2, #0xf3
+ bl FUN_02007558
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021DB780:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD63_021DB720
+
+ thumb_func_start MOD63_021DB784
+MOD63_021DB784: ; 0x021DB784
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ lsl r0, r1, #2
+ add r0, r5, r0
+ ldr r4, [r0, #4]
+ mov r1, #0
+ add r0, r4, #0
+ sub r2, r1, #3
+ bl FUN_020079E0
+ mov r1, #1
+ add r2, r1, #0
+ add r0, r4, #0
+ sub r2, #0x13
+ bl FUN_020079E0
+ ldrb r0, [r5, #0x1d]
+ add r0, r0, #1
+ strb r0, [r5, #0x1d]
+ ldrb r0, [r5, #0x1d]
+ cmp r0, #6
+ blo _021DB7CC
+ mov r1, #0xc
+ add r2, r1, #0
+ add r0, r4, #0
+ add r2, #0xf4
+ bl FUN_02007558
+ mov r1, #0xd
+ add r2, r1, #0
+ add r0, r4, #0
+ add r2, #0xf3
+ bl FUN_02007558
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021DB7CC:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD63_021DB784
+
+ thumb_func_start MOD63_021DB7D0
+MOD63_021DB7D0: ; 0x021DB7D0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ lsl r0, r1, #2
+ add r0, r5, r0
+ ldr r4, [r0, #4]
+ mov r1, #0
+ add r2, r1, #0
+ add r0, r4, #0
+ sub r2, #0x10
+ bl FUN_020079E0
+ mov r1, #1
+ add r2, r1, #0
+ add r0, r4, #0
+ sub r2, #0x11
+ bl FUN_020079E0
+ mov r1, #0xc
+ add r2, r1, #0
+ add r0, r4, #0
+ sub r2, #0x8c
+ bl FUN_020079E0
+ mov r1, #0xd
+ add r2, r1, #0
+ add r0, r4, #0
+ sub r2, #0x8d
+ bl FUN_020079E0
+ ldrb r0, [r5, #0x1d]
+ add r0, r0, #1
+ strb r0, [r5, #0x1d]
+ ldrb r0, [r5, #0x1d]
+ cmp r0, #6
+ blo _021DB832
+ mov r1, #0xc
+ add r2, r1, #0
+ add r0, r4, #0
+ add r2, #0xf4
+ bl FUN_02007558
+ mov r1, #0xd
+ add r2, r1, #0
+ add r0, r4, #0
+ add r2, #0xf3
+ bl FUN_02007558
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021DB832:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD63_021DB7D0
+
+ thumb_func_start MOD63_021DB838
+MOD63_021DB838: ; 0x021DB838
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ lsl r0, r1, #2
+ add r0, r5, r0
+ ldr r4, [r0, #4]
+ mov r1, #0
+ add r0, r4, #0
+ sub r2, r1, #6
+ bl FUN_020079E0
+ mov r1, #1
+ add r2, r1, #0
+ add r0, r4, #0
+ sub r2, #0x11
+ bl FUN_020079E0
+ ldrb r0, [r5, #0x1d]
+ add r0, r0, #1
+ strb r0, [r5, #0x1d]
+ ldrb r0, [r5, #0x1d]
+ cmp r0, #6
+ blo _021DB880
+ mov r1, #0xc
+ add r2, r1, #0
+ add r0, r4, #0
+ add r2, #0xf4
+ bl FUN_02007558
+ mov r1, #0xd
+ add r2, r1, #0
+ add r0, r4, #0
+ add r2, #0xf3
+ bl FUN_02007558
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021DB880:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD63_021DB838
+
+ thumb_func_start MOD63_021DB884
+MOD63_021DB884: ; 0x021DB884
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ lsl r0, r1, #2
+ add r0, r5, r0
+ ldr r4, [r0, #4]
+ mov r1, #0
+ add r0, r4, #0
+ mov r2, #8
+ bl FUN_020079E0
+ mov r1, #1
+ add r2, r1, #0
+ add r0, r4, #0
+ sub r2, #0x11
+ bl FUN_020079E0
+ mov r1, #0xc
+ add r2, r1, #0
+ add r0, r4, #0
+ sub r2, #0x8c
+ bl FUN_020079E0
+ mov r1, #0xd
+ add r2, r1, #0
+ add r0, r4, #0
+ sub r2, #0x8d
+ bl FUN_020079E0
+ ldrb r0, [r5, #0x1d]
+ add r0, r0, #1
+ strb r0, [r5, #0x1d]
+ ldrb r0, [r5, #0x1d]
+ cmp r0, #6
+ blo _021DB8E4
+ mov r1, #0xc
+ add r2, r1, #0
+ add r0, r4, #0
+ add r2, #0xf4
+ bl FUN_02007558
+ mov r1, #0xd
+ add r2, r1, #0
+ add r0, r4, #0
+ add r2, #0xf3
+ bl FUN_02007558
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021DB8E4:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD63_021DB884
+
+ thumb_func_start MOD63_021DB8E8
+MOD63_021DB8E8: ; 0x021DB8E8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ lsl r0, r1, #2
+ add r0, r5, r0
+ ldr r4, [r0, #4]
+ mov r1, #0
+ add r0, r4, #0
+ mov r2, #6
+ bl FUN_020079E0
+ mov r1, #1
+ add r2, r1, #0
+ add r0, r4, #0
+ sub r2, #0x15
+ bl FUN_020079E0
+ ldrb r0, [r5, #0x1d]
+ add r0, r0, #1
+ strb r0, [r5, #0x1d]
+ ldrb r0, [r5, #0x1d]
+ cmp r0, #6
+ blo _021DB930
+ mov r1, #0xc
+ add r2, r1, #0
+ add r0, r4, #0
+ add r2, #0xf4
+ bl FUN_02007558
+ mov r1, #0xd
+ add r2, r1, #0
+ add r0, r4, #0
+ add r2, #0xf3
+ bl FUN_02007558
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021DB930:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD63_021DB8E8
+
+ thumb_func_start MOD63_021DB934
+MOD63_021DB934: ; 0x021DB934
+ push {r3, lr}
+ bl FUN_02013364
+ bl FUN_02013388
+ pop {r3, pc}
+ thumb_func_end MOD63_021DB934
+
+ thumb_func_start MOD63_021DB940
+MOD63_021DB940: ; 0x021DB940
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ bl FUN_0201341C
+ add r2, sp, #0
+ mov r1, #0
+ str r1, [r2]
+ str r1, [r2, #4]
+ add r4, r0, #0
+ str r1, [r2, #8]
+ bl FUN_0200782C
+ sub r0, #0x80
+ mov r1, #0xac
+ mul r1, r0
+ str r1, [sp]
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_0200782C
+ sub r0, #0x60
+ mov r1, #0xac
+ mul r1, r0
+ str r1, [sp, #4]
+ mov r0, #0x40
+ str r0, [sp, #8]
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp]
+ ldr r0, [r0]
+ ldr r0, [r0, #4]
+ add r0, r1, r0
+ str r0, [r5, #0x28]
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp, #4]
+ ldr r0, [r0]
+ ldr r0, [r0, #8]
+ add r0, r1, r0
+ str r0, [r5, #0x2c]
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp, #8]
+ ldr r0, [r0]
+ ldr r0, [r0, #0xc]
+ add r0, r1, r0
+ str r0, [r5, #0x30]
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD63_021DB940
+
+ .section .rodata
+
+ .global MOD63_021DBEC0
+MOD63_021DBEC0: ; 0x021DBEC0
+ .byte 0x03, 0x07, 0x00, 0x00, 0xCE, 0x07, 0x00, 0x00
+ .byte 0xA8, 0x08, 0x00, 0x00
+
+ .global MOD63_021DBECC
+MOD63_021DBECC: ; 0x021DBECC
+ .byte 0x83, 0x01, 0x00, 0x00, 0x86, 0x01, 0x00, 0x00, 0x89, 0x01, 0x00, 0x00
+
+ .global MOD63_021DBED8
+MOD63_021DBED8: ; 0x021DBED8
+ .word MOD63_021DB720
+
+ .global MOD63_021DBEDC
+MOD63_021DBEDC: ; 0x021DBEDC
+ .word MOD63_021DB784, MOD63_021DB7D0, MOD63_021DB838, MOD63_021DB884
+ .word MOD63_021DB8E8
+
+ .global MOD63_021DBEF0
+MOD63_021DBEF0: ; 0x021DBEF0
+ .byte 0x80, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00
+ .byte 0x00, 0x01, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00
+
+ .global MOD63_021DBF08
+MOD63_021DBF08: ; 0x021DBF08
+ .byte 0x04, 0x00, 0x00, 0x00
+
+ .global MOD63_021DBF0C
+MOD63_021DBF0C: ; 0x021DBF0C
+ .byte 0x05, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
diff --git a/arm9/modules/63/asm/module_63.s b/arm9/modules/63/asm/module_63.s
deleted file mode 100644
index e7b2dde0..00000000
--- a/arm9/modules/63/asm/module_63.s
+++ /dev/null
@@ -1,8940 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
- .section .text
- .balign 4, 0
-
- thumb_func_start MOD63_021D74E0
-MOD63_021D74E0: ; 0x021D74E0
- push {r4, lr}
- ldr r1, _021D7584 ; =0x00007FFF
- add r4, r0, #0
- mov r0, #0
- bl FUN_0200E3A0
- ldr r1, _021D7584 ; =0x00007FFF
- mov r0, #1
- bl FUN_0200E3A0
- ldr r1, _021D7588 ; =0x04001050
- mov r0, #0
- strh r0, [r1]
- ldr r1, _021D758C ; =0x04000050
- strh r0, [r1]
- add r1, r0, #0
- bl FUN_02015F10
- mov r0, #0
- add r1, r0, #0
- bl FUN_02015F34
- bl FUN_0201E6D8
- bl FUN_0201E740
- mov r2, #1
- lsl r2, r2, #0x1a
- ldr r1, [r2]
- ldr r0, _021D7590 ; =0xFFFFE0FF
- and r1, r0
- str r1, [r2]
- ldr r2, _021D7594 ; =0x04001000
- ldr r1, [r2]
- and r0, r1
- str r0, [r2]
- mov r0, #4
- mov r1, #8
- bl FUN_0201669C
- mov r2, #1
- mov r0, #3
- mov r1, #0x1e
- lsl r2, r2, #0x12
- bl FUN_0201681C
- mov r1, #0x79
- add r0, r4, #0
- lsl r1, r1, #2
- mov r2, #0x1e
- bl FUN_02006268
- mov r2, #0x79
- mov r1, #0
- lsl r2, r2, #2
- add r4, r0, #0
- bl memset
- mov r0, #0x1e
- str r0, [r4]
- mov r0, #0x1d
- mov r1, #0
- lsl r0, r0, #4
- strh r1, [r4, r0]
- add r0, #0x10
- str r1, [r4, r0]
- bl MOD63_021D7838
- add r0, r4, #0
- bl MOD63_021D7A48
- add r0, r4, #0
- bl MOD63_021D7880
- ldr r0, _021D7598 ; =MOD63_021D782C
- add r1, r4, #0
- bl FUN_02015F10
- bl FUN_0201E788
- mov r0, #1
- pop {r4, pc}
- .align 2, 0
-_021D7584: .word 0x00007FFF
-_021D7588: .word 0x04001050
-_021D758C: .word 0x04000050
-_021D7590: .word 0xFFFFE0FF
-_021D7594: .word 0x04001000
-_021D7598: .word MOD63_021D782C
- thumb_func_end MOD63_021D74E0
-
- thumb_func_start MOD63_021D759C
-MOD63_021D759C: ; 0x021D759C
- push {r3, r4, r5, r6, lr}
- sub sp, #0xc
- add r5, r1, #0
- bl FUN_02006278
- add r4, r0, #0
- ldr r0, [r5]
- cmp r0, #6
- bhi _021D7614
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_021D75BA: ; jump table
- .short _021D75C8 - _021D75BA - 2 ; case 0
- .short _021D7604 - _021D75BA - 2 ; case 1
- .short _021D7622 - _021D75BA - 2 ; case 2
- .short _021D7638 - _021D75BA - 2 ; case 3
- .short _021D76FA - _021D75BA - 2 ; case 4
- .short _021D773C - _021D75BA - 2 ; case 5
- .short _021D777E - _021D75BA - 2 ; case 6
-_021D75C8:
- add r0, r4, #0
- ldr r1, [r4, #4]
- ldr r2, [r4]
- add r0, #0xb4
- bl MOD63_021D7C18
- cmp r0, #1
- bne _021D7614
- add r0, r4, #0
- ldr r1, _021D77A4 ; =gUnknown21C48B8
- mov r2, #0
- add r0, #0xb4
- str r2, [r0]
- ldr r0, [r1, #0x6c]
- cmp r0, #0
- bne _021D75F6
- mov r0, #0x75
- mov r1, #0x1e
- lsl r0, r0, #2
- str r1, [r4, r0]
- mov r0, #2
- str r0, [r5]
- b _021D779C
-_021D75F6:
- mov r0, #0x75
- lsl r0, r0, #2
- str r2, [r4, r0]
- str r2, [r1, #0x6c]
- mov r0, #1
- str r0, [r5]
- b _021D779C
-_021D7604:
- add r0, r4, #0
- ldr r1, [r4, #4]
- ldr r2, [r4]
- add r0, #0xb4
- bl MOD63_021D7D74
- cmp r0, #1
- beq _021D7616
-_021D7614:
- b _021D779C
-_021D7616:
- mov r0, #0
- add r4, #0xb4
- str r0, [r4]
- mov r0, #2
- str r0, [r5]
- b _021D779C
-_021D7622:
- mov r0, #0
- bl FUN_0200415C
- mov r0, #1
- ldr r1, _021D77A8 ; =0x00000495
- add r2, r0, #0
- bl FUN_0200433C
- mov r0, #3
- str r0, [r5]
- b _021D779C
-_021D7638:
- mov r0, #0x75
- lsl r0, r0, #2
- ldr r1, [r4, r0]
- cmp r1, #0
- beq _021D765A
- sub r1, r1, #1
- str r1, [r4, r0]
- mov r1, #0
- sub r0, #0x4c
- str r1, [r4, r0]
- add r0, r4, #0
- ldr r1, [r4, #4]
- ldr r2, [r4]
- add r0, #0xb4
- bl MOD63_021D8260
- b _021D779C
-_021D765A:
- mov r1, #1
- sub r0, #0x4c
- str r1, [r4, r0]
- add r0, r4, #0
- ldr r1, [r4, #4]
- ldr r2, [r4]
- add r0, #0xb4
- bl MOD63_021D8260
- mov r1, #0x1e
- lsl r1, r1, #4
- ldr r0, [r4, r1]
- ldr r2, _021D77A4 ; =gUnknown21C48B8
- add r0, r0, #1
- str r0, [r4, r1]
- ldr r3, [r2, #0x48]
- mov r0, #1
- add r6, r3, #0
- and r6, r0
- cmp r6, #1
- beq _021D768C
- mov r6, #8
- and r3, r6
- cmp r3, #8
- bne _021D76A8
-_021D768C:
- mov r0, #0x1d
- mov r1, #1
- lsl r0, r0, #4
- strh r1, [r4, r0]
- mov r0, #0
- mov r1, #0x3c
- bl FUN_020053CC
- ldr r0, _021D77AC ; =0x000005F4
- bl FUN_020054C8
- mov r0, #4
- str r0, [r5]
- b _021D779C
-_021D76A8:
- ldr r6, [r2, #0x44]
- mov r3, #0x46
- and r3, r6
- cmp r3, #0x46
- bne _021D76D4
- mov r2, #2
- sub r1, #0x10
- strh r2, [r4, r1]
- mov r1, #6
- str r1, [sp]
- str r0, [sp, #4]
- ldr r0, [r4]
- str r0, [sp, #8]
- mov r0, #0
- add r1, r0, #0
- add r2, r0, #0
- add r3, r0, #0
- bl FUN_0200E1D0
- mov r0, #6
- str r0, [r5]
- b _021D779C
-_021D76D4:
- mov r3, #0xe1
- ldr r6, [r4, r1]
- lsl r3, r3, #2
- cmp r6, r3
- ble _021D779C
- mov r3, #3
- sub r1, #0x10
- strh r3, [r4, r1]
- mov r1, #0
- str r0, [r2, #0x6c]
- bl FUN_0201E74C
- mov r0, #0
- mov r1, #0x3c
- bl FUN_020053CC
- mov r0, #5
- str r0, [r5]
- b _021D779C
-_021D76FA:
- mov r0, #0x62
- mov r1, #0
- lsl r0, r0, #2
- str r1, [r4, r0]
- add r0, r4, #0
- ldr r1, [r4, #4]
- ldr r2, [r4]
- add r0, #0xb4
- bl MOD63_021D8260
- bl FUN_02005404
- cmp r0, #0
- bne _021D779C
- ldr r0, _021D77A8 ; =0x00000495
- mov r1, #0
- bl FUN_02005350
- mov r0, #6
- str r0, [sp]
- mov r0, #1
- str r0, [sp, #4]
- ldr r0, [r4]
- str r0, [sp, #8]
- mov r0, #0
- add r1, r0, #0
- add r2, r0, #0
- add r3, r0, #0
- bl FUN_0200E1D0
- mov r0, #6
- str r0, [r5]
- b _021D779C
-_021D773C:
- mov r0, #0x62
- mov r1, #0
- lsl r0, r0, #2
- str r1, [r4, r0]
- add r0, r4, #0
- ldr r1, [r4, #4]
- ldr r2, [r4]
- add r0, #0xb4
- bl MOD63_021D8260
- bl FUN_02005404
- cmp r0, #0
- bne _021D779C
- ldr r0, _021D77A8 ; =0x00000495
- mov r1, #0
- bl FUN_02005350
- mov r0, #6
- str r0, [sp]
- mov r0, #1
- str r0, [sp, #4]
- ldr r0, [r4]
- ldr r3, _021D77B0 ; =0x00007FFF
- str r0, [sp, #8]
- mov r0, #0
- add r1, r0, #0
- add r2, r0, #0
- bl FUN_0200E1D0
- mov r0, #6
- str r0, [r5]
- b _021D779C
-_021D777E:
- bl FUN_0200E308
- cmp r0, #1
- bne _021D779C
- add r0, r4, #0
- ldr r1, [r4, #4]
- ldr r2, [r4]
- add r0, #0xb4
- bl MOD63_021D8360
- cmp r0, #1
- bne _021D779C
- add sp, #0xc
- mov r0, #1
- pop {r3, r4, r5, r6, pc}
-_021D779C:
- mov r0, #0
- add sp, #0xc
- pop {r3, r4, r5, r6, pc}
- nop
-_021D77A4: .word gUnknown21C48B8
-_021D77A8: .word 0x00000495
-_021D77AC: .word 0x000005F4
-_021D77B0: .word 0x00007FFF
- thumb_func_end MOD63_021D759C
-
- thumb_func_start MOD63_021D77B4
-MOD63_021D77B4: ; 0x021D77B4
- push {r3, r4, r5, r6, r7, lr}
- add r7, r0, #0
- bl FUN_02006278
- add r6, r0, #0
- mov r0, #0x1d
- lsl r0, r0, #4
- ldrh r5, [r6, r0]
- mov r0, #0
- add r1, r0, #0
- ldr r4, [r6]
- bl FUN_02015F10
- add r0, r6, #0
- bl MOD63_021D78B0
- add r0, r6, #0
- bl MOD63_021D7B9C
- add r0, r7, #0
- bl FUN_0200627C
- add r0, r4, #0
- bl FUN_020168D0
- cmp r5, #1
- beq _021D77F2
- cmp r5, #2
- beq _021D77FE
- cmp r5, #3
- beq _021D780A
-_021D77F2:
- mov r0, #0
- ldr r1, _021D781C ; =UNK_020FF3D4
- mvn r0, r0
- bl FUN_02000E7C
- b _021D7818
-_021D77FE:
- mov r0, #0
- ldr r1, _021D7820 ; =UNK_020FF368
- mvn r0, r0
- bl FUN_02000E7C
- b _021D7818
-_021D780A:
- mov r0, #0
- bl FUN_0200415C
- ldr r0, _021D7824 ; =SDK_OVERLAY_MODULE_63_ID
- ldr r1, _021D7828 ; =MOD63_021DBE18
- bl FUN_02000E7C
-_021D7818:
- mov r0, #1
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_021D781C: .word UNK_020FF3D4
-_021D7820: .word UNK_020FF368
-_021D7824: .word SDK_OVERLAY_MODULE_63_ID
-_021D7828: .word MOD63_021DBE18
- thumb_func_end MOD63_021D77B4
-
- thumb_func_start MOD63_021D782C
-MOD63_021D782C: ; 0x021D782C
- ldr r3, _021D7834 ; =FUN_0201AB60
- ldr r0, [r0, #4]
- bx r3
- nop
-_021D7834: .word FUN_0201AB60
- thumb_func_end MOD63_021D782C
-
- thumb_func_start MOD63_021D7838
-MOD63_021D7838: ; 0x021D7838
- push {r4, lr}
- sub sp, #0x28
- ldr r4, _021D7854 ; =MOD63_021DBA90
- add r3, sp, #0
- mov r2, #5
-_021D7842:
- ldmia r4!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _021D7842
- add r0, sp, #0
- bl FUN_0201E66C
- add sp, #0x28
- pop {r4, pc}
- .align 2, 0
-_021D7854: .word MOD63_021DBA90
- thumb_func_end MOD63_021D7838
-
- thumb_func_start MOD63_021D7858
-MOD63_021D7858: ; 0x021D7858
- ldr r0, _021D787C ; =gUnknown21C48B8
- ldr r1, [r0, #0x48]
- mov r0, #1
- and r0, r1
- cmp r0, #1
- beq _021D7874
- mov r0, #8
- and r0, r1
- cmp r0, #8
- beq _021D7874
- mov r0, #4
- and r0, r1
- cmp r0, #4
- bne _021D7878
-_021D7874:
- mov r0, #1
- bx lr
-_021D7878:
- mov r0, #0
- bx lr
- .align 2, 0
-_021D787C: .word gUnknown21C48B8
- thumb_func_end MOD63_021D7858
-
- thumb_func_start MOD63_021D7880
-MOD63_021D7880: ; 0x021D7880
- push {r4, lr}
- sub sp, #8
- add r4, r0, #0
- mov r0, #4
- mov r1, #0
- str r0, [sp]
- str r1, [sp, #4]
- ldr r0, [r4]
- mov r2, #1
- add r3, r1, #0
- bl FUN_02022318
- str r0, [r4, #8]
- ldr r1, _021D78AC ; =0x04000008
- mov r0, #3
- ldrh r2, [r1]
- bic r2, r0
- mov r0, #1
- orr r0, r2
- strh r0, [r1]
- add sp, #8
- pop {r4, pc}
- .align 2, 0
-_021D78AC: .word 0x04000008
- thumb_func_end MOD63_021D7880
-
- thumb_func_start MOD63_021D78B0
-MOD63_021D78B0: ; 0x021D78B0
- ldr r3, _021D78B8 ; =FUN_020223BC
- ldr r0, [r0, #8]
- bx r3
- nop
-_021D78B8: .word FUN_020223BC
- thumb_func_end MOD63_021D78B0
-
- thumb_func_start MOD63_021D78BC
-MOD63_021D78BC: ; 0x021D78BC
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x18
- add r4, r3, #0
- add r5, r0, #0
- add r6, r1, #0
- add r7, r2, #0
- add r0, #0x68
- add r1, r4, #0
- mov r2, #4
- bl FUN_02016B20
- mov r0, #0x30
- add r1, r6, #0
- add r2, r4, #0
- bl AllocAndReadWholeNarcMemberByIdPair
- str r0, [r5, #0x5c]
- mov r0, #0x30
- add r1, r7, #0
- add r2, r4, #0
- bl AllocAndReadWholeNarcMemberByIdPair
- add r1, r5, #0
- add r2, r5, #0
- str r0, [r5, #0x60]
- add r0, r5, #4
- add r1, #0x58
- add r2, #0x5c
- bl FUN_0201B234
- ldr r0, [r5, #0x60]
- mov r1, #0
- bl FUN_020BC4C8
- add r4, r0, #0
- add r0, r5, #0
- ldr r2, [r5, #0x58]
- add r0, #0x68
- add r1, r4, #0
- bl FUN_020BB8D0
- str r0, [r5, #0x64]
- ldr r0, [r5, #0x5c]
- bl FUN_020BC0FC
- add r3, r0, #0
- ldr r0, [r5, #0x64]
- ldr r2, [r5, #0x58]
- add r1, r4, #0
- bl FUN_020B8110
- ldr r1, [r5, #0x64]
- add r0, r5, #4
- bl FUN_020B7EFC
- add r4, r5, #0
- add r6, sp, #0xc
- mov r3, #0
- str r3, [r6]
- add r2, sp, #0
- str r3, [r6, #4]
- str r3, [r2]
- str r3, [r6, #8]
- str r3, [r2, #4]
- ldmia r6!, {r0, r1}
- str r3, [r2, #8]
- add r4, #0x78
- stmia r4!, {r0, r1}
- ldr r0, [r6]
- ldr r6, _021D796C ; =MOD63_021DB9A8
- str r0, [r4]
- add r4, r5, #0
- ldmia r6!, {r0, r1}
- add r4, #0x84
- stmia r4!, {r0, r1}
- ldr r0, [r6]
- str r0, [r4]
- add r4, r5, #0
- ldmia r2!, {r0, r1}
- add r4, #0x90
- stmia r4!, {r0, r1}
- ldr r0, [r2]
- add r5, #0xa0
- str r0, [r4]
- str r3, [r5]
- add sp, #0x18
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_021D796C: .word MOD63_021DB9A8
- thumb_func_end MOD63_021D78BC
-
- thumb_func_start MOD63_021D7970
-MOD63_021D7970: ; 0x021D7970
- push {r4, lr}
- add r4, r0, #0
- ldr r1, [r4, #0x64]
- add r0, #0x68
- bl thunk_FUN_020ae84c
- ldr r0, [r4, #0x60]
- bl FreeToHeap
- ldr r0, [r4, #0x5c]
- bl FreeToHeap
- pop {r4, pc}
- .align 2, 0
- thumb_func_end MOD63_021D7970
-
- thumb_func_start MOD63_021D798C
-MOD63_021D798C: ; 0x021D798C
- push {r4, r5, lr}
- sub sp, #0x24
- ldr r5, _021D7A44 ; =MOD63_021DBA6C
- add r4, r0, #0
- add r3, sp, #0
- mov r2, #4
-_021D7998:
- ldmia r5!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _021D7998
- ldr r0, [r5]
- str r0, [r3]
- ldr r0, [r4]
- cmp r0, #0
- beq _021D7A3E
- cmp r0, #1
- beq _021D79B6
- cmp r0, #2
- beq _021D79CA
- add sp, #0x24
- pop {r4, r5, pc}
-_021D79B6:
- bl FUN_020222AC
- mov r0, #0
- mov r1, #1
- bl FUN_020222B4
- mov r0, #0
- add sp, #0x24
- str r0, [r4]
- pop {r4, r5, pc}
-_021D79CA:
- bl FUN_020222AC
- bl FUN_0201EBA4
- add r1, r4, #0
- add r0, sp, #0
- add r1, #0x90
- bl FUN_0201CAA8
- add r1, r4, #0
- add r3, r4, #0
- add r0, r4, #4
- add r1, #0x78
- add r2, sp, #0
- add r3, #0x84
- bl FUN_0201B26C
- add r0, r4, #0
- add r0, #0xa0
- ldr r0, [r0]
- cmp r0, #0
- beq _021D7A00
- cmp r0, #1
- beq _021D7A08
- cmp r0, #2
- beq _021D7A18
- b _021D7A36
-_021D7A00:
- ldr r0, [r4, #0x64]
- mov r1, #0
- str r1, [r0]
- b _021D7A36
-_021D7A08:
- ldr r0, [r4, #0x64]
- ldr r0, [r0]
- cmp r0, #0
- bne _021D7A18
- mov r0, #0
- add r4, #0xa0
- str r0, [r4]
- b _021D7A36
-_021D7A18:
- ldr r2, [r4, #0x64]
- mov r0, #1
- ldr r1, [r2]
- lsl r0, r0, #0xc
- add r0, r1, r0
- str r0, [r2]
- ldr r2, [r4, #0x64]
- ldr r0, [r2, #8]
- ldr r1, [r2]
- ldrh r0, [r0, #4]
- lsl r0, r0, #0xc
- cmp r1, r0
- bne _021D7A36
- mov r0, #0
- str r0, [r2]
-_021D7A36:
- mov r0, #0
- mov r1, #1
- bl FUN_020222B4
-_021D7A3E:
- add sp, #0x24
- pop {r4, r5, pc}
- nop
-_021D7A44: .word MOD63_021DBA6C
- thumb_func_end MOD63_021D798C
-
- thumb_func_start MOD63_021D7A48
-MOD63_021D7A48: ; 0x021D7A48
- push {r3, r4, r5, lr}
- sub sp, #0xb8
- add r4, r0, #0
- ldr r0, [r4]
- bl FUN_02016B94
- add r3, sp, #0xa8
- ldr r5, _021D7B80 ; =MOD63_021DB9B4
- str r0, [r4, #4]
- 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, _021D7B84 ; =MOD63_021DB9E0
- add r3, sp, #0x8c
- 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]
- ldr r0, [r4, #4]
- mov r3, #0
- bl FUN_02016C18
- ldr r5, _021D7B88 ; =MOD63_021DB9C4
- 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, #5
- str r0, [r3]
- ldr r0, [r4, #4]
- mov r3, #0
- bl FUN_02016C18
- ldr r5, _021D7B8C ; =MOD63_021DBA50
- 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, #6
- str r0, [r3]
- ldr r0, [r4, #4]
- mov r3, #0
- bl FUN_02016C18
- ldr r5, _021D7B90 ; =MOD63_021DBA34
- 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]
- ldr r0, [r4, #4]
- mov r3, #0
- bl FUN_02016C18
- ldr r5, _021D7B94 ; =MOD63_021DB9FC
- 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]
- str r0, [r3]
- ldr r0, [r4, #4]
- mov r1, #3
- mov r3, #0
- bl FUN_02016C18
- ldr r5, _021D7B98 ; =MOD63_021DBA18
- add r3, sp, #0
- ldmia r5!, {r0, r1}
- add r2, r3, #0
- stmia r3!, {r0, r1}
- ldmia r5!, {r0, r1}
- stmia r3!, {r0, r1}
- ldmia r5!, {r0, r1}
- stmia r3!, {r0, r1}
- ldr r0, [r5]
- mov r1, #7
- str r0, [r3]
- ldr r0, [r4, #4]
- mov r3, #0
- bl FUN_02016C18
- mov r0, #1
- mov r1, #0
- bl FUN_0201E6E4
- mov r0, #2
- mov r1, #0
- bl FUN_0201E6E4
- mov r0, #4
- mov r1, #0
- bl FUN_0201E6E4
- mov r0, #8
- mov r1, #0
- bl FUN_0201E6E4
- mov r0, #1
- mov r1, #0
- bl FUN_0201E74C
- mov r0, #2
- mov r1, #0
- bl FUN_0201E74C
- mov r0, #4
- mov r1, #0
- bl FUN_0201E74C
- mov r0, #8
- mov r1, #0
- bl FUN_0201E74C
- mov r0, #0
- add r1, r0, #0
- bl FUN_02017FE4
- mov r0, #4
- mov r1, #0
- bl FUN_02017FE4
- add sp, #0xb8
- pop {r3, r4, r5, pc}
- nop
-_021D7B80: .word MOD63_021DB9B4
-_021D7B84: .word MOD63_021DB9E0
-_021D7B88: .word MOD63_021DB9C4
-_021D7B8C: .word MOD63_021DBA50
-_021D7B90: .word MOD63_021DBA34
-_021D7B94: .word MOD63_021DB9FC
-_021D7B98: .word MOD63_021DBA18
- thumb_func_end MOD63_021D7A48
-
- thumb_func_start MOD63_021D7B9C
-MOD63_021D7B9C: ; 0x021D7B9C
- push {r4, lr}
- add r4, r0, #0
- mov r0, #1
- mov r1, #0
- bl FUN_0201E6E4
- mov r0, #2
- mov r1, #0
- bl FUN_0201E6E4
- mov r0, #4
- mov r1, #0
- bl FUN_0201E6E4
- mov r0, #8
- mov r1, #0
- bl FUN_0201E6E4
- mov r0, #1
- mov r1, #0
- bl FUN_0201E74C
- mov r0, #2
- mov r1, #0
- bl FUN_0201E74C
- mov r0, #4
- mov r1, #0
- bl FUN_0201E74C
- mov r0, #8
- mov r1, #0
- bl FUN_0201E74C
- ldr r0, [r4, #4]
- mov r1, #4
- bl FUN_020178A0
- ldr r0, [r4, #4]
- mov r1, #5
- bl FUN_020178A0
- ldr r0, [r4, #4]
- mov r1, #6
- bl FUN_020178A0
- ldr r0, [r4, #4]
- mov r1, #1
- bl FUN_020178A0
- ldr r0, [r4, #4]
- mov r1, #3
- bl FUN_020178A0
- ldr r0, [r4, #4]
- mov r1, #7
- bl FUN_020178A0
- ldr r0, [r4, #4]
- bl FreeToHeap
- pop {r4, pc}
- thumb_func_end MOD63_021D7B9C
-
- thumb_func_start MOD63_021D7C18
-MOD63_021D7C18: ; 0x021D7C18
- push {r4, r5, r6, lr}
- sub sp, #8
- add r5, r0, #0
- add r6, r1, #0
- add r4, r2, #0
- bl MOD63_021D86E0
- add r0, r6, #0
- add r1, r4, #0
- add r2, r5, #0
- bl MOD63_021D83A8
- ldr r0, _021D7D5C ; =gGameVersion
- ldrb r0, [r0]
- cmp r0, #0xa
- bne _021D7C46
- add r0, r5, #4
- mov r1, #6
- mov r2, #0x13
- add r3, r4, #0
- bl MOD63_021D78BC
- b _021D7C52
-_021D7C46:
- add r0, r5, #4
- mov r1, #5
- mov r2, #0x12
- add r3, r4, #0
- bl MOD63_021D78BC
-_021D7C52:
- ldr r0, _021D7D60 ; =0x04000060
- ldr r2, _021D7D64 ; =0xFFFFCFFF
- ldrh r1, [r0]
- add r3, r1, #0
- and r3, r2
- mov r1, #0x10
- orr r1, r3
- strh r1, [r0]
- ldrh r1, [r0]
- and r2, r1
- mov r1, #8
- orr r1, r2
- strh r1, [r0]
- add r0, r5, #0
- add r0, #0xf0
- ldr r1, [r0]
- add r0, r5, #0
- add r0, #0xbc
- str r1, [r0]
- add r0, r5, #0
- add r0, #0xf4
- ldr r1, [r0]
- add r0, r5, #0
- add r0, #0xc0
- str r1, [r0]
- add r0, r5, #0
- add r0, #0xf8
- ldr r1, [r0]
- add r0, r5, #0
- add r0, #0xc4
- str r1, [r0]
- add r0, r5, #0
- add r0, #0xd8
- ldr r1, [r0]
- add r0, r5, #0
- add r0, #0xc8
- str r1, [r0]
- add r0, r5, #0
- add r0, #0xdc
- ldr r1, [r0]
- add r0, r5, #0
- add r0, #0xcc
- str r1, [r0]
- add r0, r5, #0
- add r0, #0xe0
- ldr r1, [r0]
- add r0, r5, #0
- add r0, #0xd0
- str r1, [r0]
- add r0, r4, #0
- bl FUN_0201EB64
- add r1, r5, #0
- add r1, #0xa0
- str r0, [r1]
- mov r3, #0
- add r0, r5, #0
- add r1, r5, #0
- mov r2, #0xb6
- str r3, [sp]
- add r0, #0xa0
- ldr r0, [r0]
- add r1, #0xc8
- str r0, [sp, #4]
- add r0, r5, #0
- add r0, #0xbc
- lsl r2, r2, #4
- bl FUN_0201ED5C
- add r2, r5, #0
- add r2, #0xa0
- mov r1, #0x19
- ldr r2, [r2]
- mov r0, #0
- lsl r1, r1, #0xe
- bl FUN_0201EC94
- add r1, r5, #0
- add r1, #0xa0
- ldr r1, [r1]
- mov r0, #0
- bl FUN_0201EE2C
- add r0, r5, #0
- add r0, #0xa0
- ldr r0, [r0]
- bl FUN_0201EB8C
- mov r3, #0x42
- lsl r3, r3, #2
- add r2, r3, #2
- ldrsh r1, [r5, r3]
- add r3, r3, #4
- ldrsh r2, [r5, r2]
- ldrsh r3, [r5, r3]
- mov r0, #0
- bl FUN_020B8418
- ldr r1, _021D7D68 ; =0x00007FFF
- mov r0, #0
- bl FUN_020B8404
- ldr r3, _021D7D6C ; =0x0000010E
- mov r0, #1
- add r2, r3, #2
- ldrsh r1, [r5, r3]
- add r3, r3, #4
- ldrsh r2, [r5, r2]
- ldrsh r3, [r5, r3]
- bl FUN_020B8418
- ldr r1, _021D7D68 ; =0x00007FFF
- mov r0, #1
- bl FUN_020B8404
- ldr r2, _021D7D60 ; =0x04000060
- ldr r0, _021D7D64 ; =0xFFFFCFFF
- ldrh r1, [r2]
- and r1, r0
- mov r0, #0x10
- orr r0, r1
- strh r0, [r2]
- ldr r0, _021D7D70 ; =gUnk021C4918
- mov r1, #1
- strb r1, [r0, #5]
- bl FUN_0201E7A0
- mov r0, #2
- str r0, [r5, #4]
- mov r0, #1
- add sp, #8
- pop {r4, r5, r6, pc}
- nop
-_021D7D5C: .word gGameVersion
-_021D7D60: .word 0x04000060
-_021D7D64: .word 0xFFFFCFFF
-_021D7D68: .word 0x00007FFF
-_021D7D6C: .word 0x0000010E
-_021D7D70: .word gUnk021C4918
- thumb_func_end MOD63_021D7C18
-
- thumb_func_start MOD63_021D7D74
-MOD63_021D7D74: ; 0x021D7D74
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r4, r0, #0
- add r7, r1, #0
- add r5, r2, #0
- mov r6, #0
- bl MOD63_021D7858
- cmp r0, #1
- bne _021D7D92
- bl FUN_0200E31C
- add sp, #0xc
- mov r0, #1
- pop {r4, r5, r6, r7, pc}
-_021D7D92:
- ldr r0, [r4]
- cmp r0, #9
- bhi _021D7E38
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_021D7DA4: ; jump table
- .short _021D7DB8 - _021D7DA4 - 2 ; case 0
- .short _021D7DF6 - _021D7DA4 - 2 ; case 1
- .short _021D7E24 - _021D7DA4 - 2 ; case 2
- .short _021D7E8C - _021D7DA4 - 2 ; case 3
- .short _021D7ECC - _021D7DA4 - 2 ; case 4
- .short _021D7EF4 - _021D7DA4 - 2 ; case 5
- .short _021D7F44 - _021D7DA4 - 2 ; case 6
- .short _021D7F72 - _021D7DA4 - 2 ; case 7
- .short _021D7FA6 - _021D7DA4 - 2 ; case 8
- .short _021D8232 - _021D7DA4 - 2 ; case 9
-_021D7DB8:
- mov r0, #1
- add r1, r0, #0
- bl FUN_0201E6E4
- mov r0, #8
- mov r1, #1
- bl FUN_0201E6E4
- mov r0, #2
- mov r1, #1
- bl FUN_0201E74C
- ldr r1, _021D80F0 ; =0x00000116
- add r0, r6, #0
- strh r0, [r4, r1]
- add r1, r4, #0
- mov r2, #0xf
- add r1, #0xa8
- strh r2, [r1]
- str r2, [sp]
- mov r1, #3
- str r1, [sp, #4]
- mov r1, #1
- ldr r3, _021D80F4 ; =0x00007FFF
- add r2, r1, #0
- str r5, [sp, #8]
- bl FUN_0200E1D0
- mov r0, #1
- str r0, [r4]
- b _021D824E
-_021D7DF6:
- bl FUN_0200E308
- cmp r0, #1
- bne _021D7E38
- add r0, r4, #0
- add r0, #0xa8
- ldrh r0, [r0]
- cmp r0, #0
- beq _021D7E18
- add r0, r4, #0
- add r0, #0xa8
- ldrh r0, [r0]
- sub r1, r0, #1
- add r0, r4, #0
- add r0, #0xa8
- strh r1, [r0]
- b _021D824E
-_021D7E18:
- add r0, r4, #0
- mov r1, #2
- add r0, #0xa8
- strh r1, [r0]
- str r1, [r4]
- b _021D824E
-_021D7E24:
- mov r0, #1
- bl FUN_0200A344
- cmp r0, #1
- bne _021D7E38
- mov r0, #2
- bl FUN_0200A344
- cmp r0, #1
- beq _021D7E3A
-_021D7E38:
- b _021D824E
-_021D7E3A:
- add r0, r4, #0
- add r0, #0xa8
- ldrh r0, [r0]
- cmp r0, #0
- beq _021D7E7E
- mov r0, #1
- str r0, [sp]
- mov r0, #0xa
- mov r1, #0x10
- add r2, r6, #0
- mov r3, #6
- bl FUN_0200A208
- mov r0, #2
- str r0, [sp]
- mov r0, #0xa
- mov r1, #0x10
- add r2, r6, #0
- mov r3, #7
- bl FUN_0200A208
- ldr r0, _021D80F0 ; =0x00000116
- mov r1, #2
- strh r1, [r4, r0]
- add r0, r4, #0
- add r0, #0xa8
- ldrh r0, [r0]
- sub r1, r0, #1
- add r0, r4, #0
- add r0, #0xa8
- strh r1, [r0]
- mov r0, #3
- str r0, [r4]
- b _021D824E
-_021D7E7E:
- add r0, r4, #0
- add r1, r6, #0
- add r0, #0xa8
- strh r1, [r0]
- mov r0, #4
- str r0, [r4]
- b _021D824E
-_021D7E8C:
- mov r0, #1
- bl FUN_0200A344
- cmp r0, #1
- bne _021D7F94
- mov r0, #2
- bl FUN_0200A344
- cmp r0, #1
- bne _021D7F94
- mov r0, #1
- str r0, [sp]
- mov r0, #0xa
- add r1, r6, #0
- mov r2, #0x10
- mov r3, #6
- bl FUN_0200A208
- mov r0, #2
- str r0, [sp]
- mov r0, #0xa
- add r1, r6, #0
- mov r2, #0x10
- mov r3, #7
- bl FUN_0200A208
- ldr r0, _021D80F0 ; =0x00000116
- mov r1, #3
- strh r1, [r4, r0]
- mov r0, #2
- str r0, [r4]
- b _021D824E
-_021D7ECC:
- add r0, r4, #0
- add r0, #0xa8
- ldrh r0, [r0]
- cmp r0, #0
- beq _021D7EE6
- add r0, r4, #0
- add r0, #0xa8
- ldrh r0, [r0]
- sub r1, r0, #1
- add r0, r4, #0
- add r0, #0xa8
- strh r1, [r0]
- b _021D824E
-_021D7EE6:
- add r0, r4, #0
- mov r1, #1
- add r0, #0xa8
- strh r1, [r0]
- mov r0, #5
- str r0, [r4]
- b _021D824E
-_021D7EF4:
- bl FUN_0200E308
- cmp r0, #1
- bne _021D7F94
- add r0, r4, #0
- add r0, #0xa8
- ldrh r0, [r0]
- cmp r0, #0
- beq _021D7F36
- mov r0, #5
- str r0, [sp]
- mov r0, #2
- str r0, [sp, #4]
- add r0, r6, #0
- ldr r3, _021D80F4 ; =0x00007FFF
- add r1, r0, #0
- add r2, r0, #0
- str r5, [sp, #8]
- bl FUN_0200E1D0
- ldr r0, _021D80F0 ; =0x00000116
- mov r1, #2
- strh r1, [r4, r0]
- add r0, r4, #0
- add r0, #0xa8
- ldrh r0, [r0]
- sub r1, r0, #1
- add r0, r4, #0
- add r0, #0xa8
- strh r1, [r0]
- mov r0, #6
- str r0, [r4]
- b _021D824E
-_021D7F36:
- add r0, r4, #0
- mov r1, #0x28
- add r0, #0xa8
- strh r1, [r0]
- mov r0, #7
- str r0, [r4]
- b _021D824E
-_021D7F44:
- bl FUN_0200E308
- cmp r0, #1
- bne _021D7F94
- add r0, r7, #0
- add r1, r5, #0
- add r2, r4, #0
- bl MOD63_021D85D8
- mov r0, #0x10
- str r0, [sp]
- mov r0, #3
- str r0, [sp, #4]
- mov r1, #1
- ldr r3, _021D80F4 ; =0x00007FFF
- add r0, r6, #0
- add r2, r1, #0
- str r5, [sp, #8]
- bl FUN_0200E1D0
- mov r0, #5
- str r0, [r4]
- b _021D824E
-_021D7F72:
- add r0, r4, #0
- add r0, #0xa8
- ldrh r0, [r0]
- cmp r0, #0
- beq _021D7FA0
- add r0, r4, #0
- add r0, #0xa8
- ldrh r0, [r0]
- sub r1, r0, #1
- add r0, r4, #0
- add r0, #0xa8
- strh r1, [r0]
- add r0, r4, #0
- add r0, #0xa8
- ldrh r0, [r0]
- cmp r0, #0xf
- beq _021D7F96
-_021D7F94:
- b _021D824E
-_021D7F96:
- add r0, r4, #0
- mov r1, #2
- add r0, #0xa4
- str r1, [r0]
- b _021D824E
-_021D7FA0:
- mov r0, #8
- str r0, [r4]
- b _021D824E
-_021D7FA6:
- add r0, r4, #0
- add r0, #0xfc
- ldr r2, [r0]
- add r0, r4, #0
- add r0, #0xbc
- ldr r1, [r0]
- mov r5, #1
- cmp r1, r2
- ble _021D7FDE
- mov r0, #0x46
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- sub r1, r1, r2
- cmp r1, r0
- ble _021D7FD4
- add r1, r4, #0
- add r1, #0xbc
- ldr r1, [r1]
- sub r1, r1, r0
- add r0, r4, #0
- add r0, #0xbc
- str r1, [r0]
- b _021D7FDA
-_021D7FD4:
- add r0, r4, #0
- add r0, #0xbc
- str r2, [r0]
-_021D7FDA:
- mov r5, #0
- b _021D8006
-_021D7FDE:
- cmp r1, r2
- bge _021D8006
- mov r0, #0x46
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- sub r1, r2, r1
- cmp r1, r0
- ble _021D7FFE
- add r1, r4, #0
- add r1, #0xbc
- ldr r1, [r1]
- add r1, r1, r0
- add r0, r4, #0
- add r0, #0xbc
- str r1, [r0]
- b _021D8004
-_021D7FFE:
- add r0, r4, #0
- add r0, #0xbc
- str r2, [r0]
-_021D8004:
- mov r5, #0
-_021D8006:
- mov r0, #1
- add r1, r4, #0
- lsl r0, r0, #8
- add r1, #0xc0
- ldr r2, [r4, r0]
- ldr r1, [r1]
- cmp r1, r2
- ble _021D803A
- add r0, #0x18
- ldr r0, [r4, r0]
- sub r1, r1, r2
- cmp r1, r0
- ble _021D8030
- add r1, r4, #0
- add r1, #0xc0
- ldr r1, [r1]
- sub r1, r1, r0
- add r0, r4, #0
- add r0, #0xc0
- str r1, [r0]
- b _021D8036
-_021D8030:
- add r0, r4, #0
- add r0, #0xc0
- str r2, [r0]
-_021D8036:
- mov r5, #0
- b _021D8060
-_021D803A:
- cmp r1, r2
- bge _021D8060
- add r0, #0x18
- ldr r0, [r4, r0]
- sub r1, r2, r1
- cmp r1, r0
- ble _021D8058
- add r1, r4, #0
- add r1, #0xc0
- ldr r1, [r1]
- add r1, r1, r0
- add r0, r4, #0
- add r0, #0xc0
- str r1, [r0]
- b _021D805E
-_021D8058:
- add r0, r4, #0
- add r0, #0xc0
- str r2, [r0]
-_021D805E:
- mov r5, #0
-_021D8060:
- mov r0, #0x41
- add r1, r4, #0
- lsl r0, r0, #2
- add r1, #0xc4
- ldr r2, [r4, r0]
- ldr r1, [r1]
- cmp r1, r2
- ble _021D8094
- add r0, #0x14
- ldr r0, [r4, r0]
- sub r1, r1, r2
- cmp r1, r0
- ble _021D808A
- add r1, r4, #0
- add r1, #0xc4
- ldr r1, [r1]
- sub r1, r1, r0
- add r0, r4, #0
- add r0, #0xc4
- str r1, [r0]
- b _021D8090
-_021D808A:
- add r0, r4, #0
- add r0, #0xc4
- str r2, [r0]
-_021D8090:
- mov r5, #0
- b _021D80BA
-_021D8094:
- cmp r1, r2
- bge _021D80BA
- add r0, #0x14
- ldr r0, [r4, r0]
- sub r1, r2, r1
- cmp r1, r0
- ble _021D80B2
- add r1, r4, #0
- add r1, #0xc4
- ldr r1, [r1]
- add r1, r1, r0
- add r0, r4, #0
- add r0, #0xc4
- str r1, [r0]
- b _021D80B8
-_021D80B2:
- add r0, r4, #0
- add r0, #0xc4
- str r2, [r0]
-_021D80B8:
- mov r5, #0
-_021D80BA:
- add r0, r4, #0
- add r0, #0xe4
- ldr r2, [r0]
- add r0, r4, #0
- add r0, #0xc8
- ldr r1, [r0]
- cmp r1, r2
- ble _021D80F8
- mov r0, #0x46
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- sub r1, r1, r2
- cmp r1, r0
- ble _021D80E6
- add r1, r4, #0
- add r1, #0xc8
- ldr r1, [r1]
- sub r1, r1, r0
- add r0, r4, #0
- add r0, #0xc8
- str r1, [r0]
- b _021D80EC
-_021D80E6:
- add r0, r4, #0
- add r0, #0xc8
- str r2, [r0]
-_021D80EC:
- mov r5, #0
- b _021D8120
- .align 2, 0
-_021D80F0: .word 0x00000116
-_021D80F4: .word 0x00007FFF
-_021D80F8:
- cmp r1, r2
- bge _021D8120
- mov r0, #0x46
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- sub r1, r2, r1
- cmp r1, r0
- ble _021D8118
- add r1, r4, #0
- add r1, #0xc8
- ldr r1, [r1]
- add r1, r1, r0
- add r0, r4, #0
- add r0, #0xc8
- str r1, [r0]
- b _021D811E
-_021D8118:
- add r0, r4, #0
- add r0, #0xc8
- str r2, [r0]
-_021D811E:
- mov r5, #0
-_021D8120:
- add r0, r4, #0
- add r0, #0xe8
- ldr r2, [r0]
- add r0, r4, #0
- add r0, #0xcc
- ldr r1, [r0]
- cmp r1, r2
- ble _021D8156
- mov r0, #0x46
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- sub r1, r1, r2
- cmp r1, r0
- ble _021D814C
- add r1, r4, #0
- add r1, #0xcc
- ldr r1, [r1]
- sub r1, r1, r0
- add r0, r4, #0
- add r0, #0xcc
- str r1, [r0]
- b _021D8152
-_021D814C:
- add r0, r4, #0
- add r0, #0xcc
- str r2, [r0]
-_021D8152:
- mov r5, #0
- b _021D817E
-_021D8156:
- cmp r1, r2
- bge _021D817E
- mov r0, #0x46
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- sub r1, r2, r1
- cmp r1, r0
- ble _021D8176
- add r1, r4, #0
- add r1, #0xcc
- ldr r1, [r1]
- add r1, r1, r0
- add r0, r4, #0
- add r0, #0xcc
- str r1, [r0]
- b _021D817C
-_021D8176:
- add r0, r4, #0
- add r0, #0xcc
- str r2, [r0]
-_021D817C:
- mov r5, #0
-_021D817E:
- add r0, r4, #0
- add r0, #0xec
- ldr r2, [r0]
- add r0, r4, #0
- add r0, #0xd0
- ldr r1, [r0]
- cmp r1, r2
- ble _021D81B4
- mov r0, #0x46
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- sub r1, r1, r2
- cmp r1, r0
- ble _021D81AA
- add r1, r4, #0
- add r1, #0xd0
- ldr r1, [r1]
- sub r1, r1, r0
- add r0, r4, #0
- add r0, #0xd0
- str r1, [r0]
- b _021D81B0
-_021D81AA:
- add r0, r4, #0
- add r0, #0xd0
- str r2, [r0]
-_021D81B0:
- mov r5, #0
- b _021D81DC
-_021D81B4:
- cmp r1, r2
- bge _021D81DC
- mov r0, #0x46
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- sub r1, r2, r1
- cmp r1, r0
- ble _021D81D4
- add r1, r4, #0
- add r1, #0xd0
- ldr r1, [r1]
- add r1, r1, r0
- add r0, r4, #0
- add r0, #0xd0
- str r1, [r0]
- b _021D81DA
-_021D81D4:
- add r0, r4, #0
- add r0, #0xd0
- str r2, [r0]
-_021D81DA:
- mov r5, #0
-_021D81DC:
- add r1, r4, #0
- add r1, #0xa0
- add r0, r4, #0
- ldr r1, [r1]
- add r0, #0xbc
- bl FUN_0201F04C
- add r1, r4, #0
- add r1, #0xa0
- add r0, r4, #0
- ldr r1, [r1]
- add r0, #0xc8
- bl FUN_0201F05C
- cmp r5, #1
- bne _021D824E
- mov r0, #4
- mov r1, #1
- bl FUN_0201E74C
- mov r0, #2
- mov r1, #0
- bl FUN_0201E74C
- mov r0, #2
- mov r1, #1
- bl FUN_0201E6E4
- mov r0, #8
- mov r1, #1
- bl FUN_0201E74C
- add r0, r4, #0
- mov r1, #0x5a
- add r0, #0xa8
- strh r1, [r0]
- add r0, r4, #0
- mov r1, #1
- add r0, #0xa4
- str r1, [r0]
- mov r0, #9
- str r0, [r4]
- b _021D824E
-_021D8232:
- add r0, r4, #0
- add r0, #0xa8
- ldrh r0, [r0]
- cmp r0, #0
- beq _021D824C
- add r0, r4, #0
- add r0, #0xa8
- ldrh r0, [r0]
- sub r1, r0, #1
- add r0, r4, #0
- add r0, #0xa8
- strh r1, [r0]
- b _021D824E
-_021D824C:
- mov r6, #1
-_021D824E:
- add r0, r4, #0
- bl MOD63_021D8650
- add r0, r4, #4
- bl MOD63_021D798C
- add r0, r6, #0
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- thumb_func_end MOD63_021D7D74
-
- thumb_func_start MOD63_021D8260
-MOD63_021D8260: ; 0x021D8260
- push {r3, r4, r5, lr}
- add r5, r0, #0
- ldr r0, [r5]
- mov r4, #0
- cmp r0, #0
- beq _021D8272
- cmp r0, #1
- beq _021D82FC
- b _021D8350
-_021D8272:
- add r1, r5, #0
- add r1, #0xa0
- add r0, r5, #0
- ldr r1, [r1]
- add r0, #0xfc
- bl FUN_0201F04C
- add r1, r5, #0
- add r1, #0xa0
- add r0, r5, #0
- ldr r1, [r1]
- add r0, #0xe4
- bl FUN_0201F05C
- mov r0, #1
- add r1, r0, #0
- bl FUN_0201E6E4
- mov r0, #8
- mov r1, #1
- bl FUN_0201E6E4
- mov r0, #8
- mov r1, #1
- bl FUN_0201E74C
- mov r0, #4
- mov r1, #1
- bl FUN_0201E74C
- mov r0, #2
- add r1, r4, #0
- bl FUN_0201E74C
- mov r0, #2
- mov r1, #1
- bl FUN_0201E6E4
- add r0, r4, #0
- bl FUN_0200E394
- mov r0, #1
- bl FUN_0200E394
- add r0, r4, #0
- mov r1, #6
- mov r2, #1
- bl FUN_0200A274
- add r0, r4, #0
- mov r1, #7
- mov r2, #2
- bl FUN_0200A274
- add r0, r5, #0
- mov r1, #2
- add r0, #0xa4
- str r1, [r0]
- ldr r1, _021D835C ; =0x00007FFF
- mov r0, #1
- bl FUN_020B8404
- add r0, r5, #0
- add r1, r4, #0
- add r0, #0xa8
- strh r1, [r0]
- mov r0, #1
- str r0, [r5]
- b _021D8350
-_021D82FC:
- add r0, r5, #0
- add r0, #0xd4
- ldr r0, [r0]
- cmp r0, #1
- bne _021D8328
- add r0, r5, #0
- add r0, #0xa8
- ldrh r0, [r0]
- cmp r0, #0
- bne _021D831A
- mov r0, #1
- add r1, r0, #0
- bl FUN_0201E74C
- b _021D8330
-_021D831A:
- cmp r0, #0x10
- bne _021D8330
- mov r0, #1
- add r1, r4, #0
- bl FUN_0201E74C
- b _021D8330
-_021D8328:
- mov r0, #1
- add r1, r4, #0
- bl FUN_0201E74C
-_021D8330:
- add r0, r5, #0
- add r0, #0xa8
- ldrh r0, [r0]
- mov r4, #1
- add r1, r0, #1
- add r0, r5, #0
- add r0, #0xa8
- strh r1, [r0]
- add r0, r5, #0
- add r0, #0xa8
- ldrh r1, [r0]
- mov r0, #0x1f
- and r1, r0
- add r0, r5, #0
- add r0, #0xa8
- strh r1, [r0]
-_021D8350:
- add r0, r5, #4
- bl MOD63_021D798C
- add r0, r4, #0
- pop {r3, r4, r5, pc}
- nop
-_021D835C: .word 0x00007FFF
- thumb_func_end MOD63_021D8260
-
- thumb_func_start MOD63_021D8360
-MOD63_021D8360: ; 0x021D8360
- push {r4, r5, r6, lr}
- add r5, r0, #0
- add r0, #0xa0
- ldr r0, [r0]
- add r4, r1, #0
- add r6, r2, #0
- bl FUN_0201EB70
- add r0, r5, #4
- bl MOD63_021D7970
- add r0, r4, #0
- add r1, r6, #0
- add r2, r5, #0
- bl MOD63_021D8644
- ldr r2, _021D839C ; =0x04000050
- mov r3, #0
- strh r3, [r2]
- add r2, #0x10
- ldrh r1, [r2]
- ldr r0, _021D83A0 ; =0x0000CFDF
- and r0, r1
- strh r0, [r2]
- ldr r0, _021D83A4 ; =gUnk021C4918
- strb r3, [r0, #5]
- bl FUN_0201E7A0
- mov r0, #1
- pop {r4, r5, r6, pc}
- .align 2, 0
-_021D839C: .word 0x04000050
-_021D83A0: .word 0x0000CFDF
-_021D83A4: .word gUnk021C4918
- thumb_func_end MOD63_021D8360
-
- thumb_func_start MOD63_021D83A8
-MOD63_021D83A8: ; 0x021D83A8
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x20
- add r5, r0, #0
- mov r0, #0
- str r0, [sp]
- add r4, r1, #0
- str r0, [sp, #4]
- str r0, [sp, #8]
- mov r1, #7
- add r6, r2, #0
- mov r0, #0x30
- add r2, r5, #0
- add r3, r1, #0
- str r4, [sp, #0xc]
- bl FUN_0200687C
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x30
- mov r1, #0xb
- add r2, r5, #0
- mov r3, #3
- str r4, [sp, #0xc]
- bl FUN_0200687C
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x30
- mov r1, #8
- add r2, r5, #0
- mov r3, #7
- str r4, [sp, #0xc]
- bl FUN_020068C8
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x30
- mov r1, #0xc
- add r2, r5, #0
- mov r3, #3
- str r4, [sp, #0xc]
- bl FUN_020068C8
- ldr r0, _021D85C8 ; =gGameVersion
- ldrb r7, [r0]
- cmp r7, #0xa
- bne _021D841A
- mov r0, #0xd
- mov r1, #9
- str r0, [sp, #0x18]
- b _021D8420
-_021D841A:
- mov r0, #0xe
- mov r1, #0xa
- str r0, [sp, #0x18]
-_021D8420:
- mov r3, #0
- str r3, [sp]
- mov r0, #0x30
- mov r2, #4
- str r4, [sp, #4]
- bl FUN_02006930
- mov r2, #0
- str r2, [sp]
- ldr r1, [sp, #0x18]
- mov r0, #0x30
- add r3, r2, #0
- str r4, [sp, #4]
- bl FUN_02006930
- cmp r7, #0xa
- bne _021D8448
- mov r1, #1
- mov r7, #2
- b _021D844C
-_021D8448:
- mov r1, #3
- mov r7, #4
-_021D844C:
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x30
- add r2, r5, #0
- mov r3, #6
- str r4, [sp, #0xc]
- bl FUN_0200687C
- mov r0, #0
- str r0, [sp]
- mov r3, #1
- mov r0, #0x30
- add r1, r7, #0
- mov r2, #6
- lsl r3, r3, #0xe
- str r4, [sp, #4]
- bl FUN_02006930
- mov r1, #0
- str r1, [sp]
- str r1, [sp, #4]
- str r1, [sp, #8]
- mov r0, #0x30
- add r2, r5, #0
- mov r3, #6
- str r4, [sp, #0xc]
- bl FUN_020068C8
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x80
- mov r1, #0x11
- add r2, r5, #0
- mov r3, #5
- str r4, [sp, #0xc]
- bl FUN_0200687C
- mov r0, #0
- str r0, [sp]
- mov r1, #0x10
- mov r0, #0x80
- mov r2, #6
- lsl r3, r1, #9
- str r4, [sp, #4]
- bl FUN_02006930
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x80
- mov r1, #0xf
- add r2, r5, #0
- mov r3, #5
- str r4, [sp, #0xc]
- bl FUN_020068C8
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x30
- mov r1, #0xf
- add r2, r5, #0
- mov r3, #1
- str r4, [sp, #0xc]
- bl FUN_0200687C
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x30
- mov r1, #0x11
- add r2, r5, #0
- mov r3, #1
- str r4, [sp, #0xc]
- bl FUN_020068C8
- mov r0, #0x60
- str r0, [sp]
- mov r0, #0x30
- mov r1, #0x10
- mov r2, #0
- mov r3, #0x20
- str r4, [sp, #4]
- bl FUN_02006930
- mov r0, #0
- add r1, r0, #0
- bl FUN_02017FE4
- mov r0, #4
- mov r1, #0
- bl FUN_02017FE4
- mov r0, #4
- mov r1, #0x20
- mov r2, #0
- add r3, r4, #0
- bl FUN_02017F18
- ldr r2, _021D85CC ; =0x00000227
- mov r0, #1
- mov r1, #0x1a
- add r3, r4, #0
- bl NewMsgDataFromNarc
- add r7, r0, #0
- mov r0, #0x40
- add r1, r4, #0
- bl String_ctor
- add r1, r6, #0
- add r4, r0, #0
- ldr r2, _021D85D0 ; =MOD63_021DB9A0
- add r0, r5, #0
- add r1, #0xac
- bl FUN_02019150
- mov r1, #0
- mov r0, #0xe0
- str r0, [sp]
- mov r0, #0x10
- str r0, [sp, #4]
- add r0, r6, #0
- add r0, #0xac
- add r2, r1, #0
- add r3, r1, #0
- bl FUN_020196F4
- add r0, r7, #0
- mov r1, #0
- add r2, r4, #0
- bl ReadMsgDataIntoString
- add r3, r6, #0
- add r3, #0xb3
- ldrb r3, [r3]
- mov r0, #0
- add r1, r4, #0
- mov r2, #1
- lsl r3, r3, #3
- bl FUN_02002F40
- mov r1, #0
- add r3, r0, #0
- str r1, [sp]
- ldr r0, _021D85D4 ; =0x00010100
- str r1, [sp, #4]
- str r0, [sp, #8]
- mov r0, #1
- str r0, [sp, #0xc]
- add r6, #0xac
- str r1, [sp, #0x10]
- add r0, r6, #0
- add r2, r4, #0
- str r1, [sp, #0x14]
- bl FUN_0201BE3C
- add r0, r4, #0
- bl String_dtor
- add r0, r7, #0
- bl DestroyMsgData
- mov r1, #0x15
- add r0, sp, #0x1c
- strh r1, [r0, #2]
- strh r1, [r0]
- add r1, sp, #0x1c
- mov r0, #4
- add r1, #2
- mov r2, #2
- mov r3, #0x42
- bl FUN_02017FB4
- mov r0, #4
- add r1, sp, #0x1c
- mov r2, #2
- mov r3, #0x44
- bl FUN_02017FB4
- add sp, #0x20
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_021D85C8: .word gGameVersion
-_021D85CC: .word 0x00000227
-_021D85D0: .word MOD63_021DB9A0
-_021D85D4: .word 0x00010100
- thumb_func_end MOD63_021D83A8
-
- thumb_func_start MOD63_021D85D8
-MOD63_021D85D8: ; 0x021D85D8
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- add r2, #0xa8
- add r7, r0, #0
- ldrh r0, [r2]
- add r5, r1, #0
- cmp r0, #0
- bne _021D863A
- ldr r0, _021D8640 ; =gGameVersion
- ldrb r0, [r0]
- cmp r0, #0xa
- bne _021D85F8
- mov r1, #0xb
- mov r6, #0xa
- mov r4, #0xc
- b _021D85FE
-_021D85F8:
- mov r1, #8
- mov r6, #7
- mov r4, #9
-_021D85FE:
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x80
- add r2, r7, #0
- mov r3, #5
- str r5, [sp, #0xc]
- bl FUN_0200687C
- mov r0, #0
- str r0, [sp]
- mov r0, #0x80
- add r1, r6, #0
- mov r2, #6
- lsl r3, r0, #6
- str r5, [sp, #4]
- bl FUN_02006930
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x80
- add r1, r4, #0
- add r2, r7, #0
- mov r3, #5
- str r5, [sp, #0xc]
- bl FUN_020068C8
-_021D863A:
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_021D8640: .word gGameVersion
- thumb_func_end MOD63_021D85D8
-
- thumb_func_start MOD63_021D8644
-MOD63_021D8644: ; 0x021D8644
- ldr r3, _021D864C ; =FUN_02019178
- add r2, #0xac
- add r0, r2, #0
- bx r3
- .align 2, 0
-_021D864C: .word FUN_02019178
- thumb_func_end MOD63_021D8644
-
- thumb_func_start MOD63_021D8650
-MOD63_021D8650: ; 0x021D8650
- push {r4, lr}
- ldr r1, _021D86DC ; =0x00000116
- ldrh r2, [r0, r1]
- cmp r2, #3
- bhi _021D86B2
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_021D8666: ; jump table
- .short _021D866E - _021D8666 - 2 ; case 0
- .short _021D86B2 - _021D8666 - 2 ; case 1
- .short _021D867A - _021D8666 - 2 ; case 2
- .short _021D8698 - _021D8666 - 2 ; case 3
-_021D866E:
- mov r3, #5
- sub r2, r1, #2
- strh r3, [r0, r2]
- mov r2, #1
- strh r2, [r0, r1]
- b _021D86B2
-_021D867A:
- sub r2, r1, #2
- ldrh r2, [r0, r2]
- add r3, r2, #2
- sub r2, r1, #2
- strh r3, [r0, r2]
- ldrh r2, [r0, r2]
- cmp r2, #0x1f
- blo _021D86B2
- mov r3, #0x1f
- add r2, r3, #0
- add r2, #0xf5
- strh r3, [r0, r2]
- mov r2, #1
- strh r2, [r0, r1]
- b _021D86B2
-_021D8698:
- sub r2, r1, #2
- ldrh r2, [r0, r2]
- sub r3, r2, #2
- sub r2, r1, #2
- strh r3, [r0, r2]
- ldrh r2, [r0, r2]
- cmp r2, #5
- bhi _021D86B2
- mov r3, #5
- sub r2, r1, #2
- strh r3, [r0, r2]
- mov r2, #1
- strh r2, [r0, r1]
-_021D86B2:
- mov r1, #0x45
- lsl r1, r1, #2
- ldrh r3, [r0, r1]
- mov r1, #0x1f
- lsl r1, r1, #0xa
- lsl r2, r3, #0xa
- and r1, r2
- add r4, r3, #0
- mov r2, #0x1f
- and r4, r2
- lsl r3, r3, #5
- lsl r2, r2, #5
- and r2, r3
- orr r2, r4
- orr r1, r2
- lsl r1, r1, #0x10
- mov r0, #1
- lsr r1, r1, #0x10
- bl FUN_020B8404
- pop {r4, pc}
- .align 2, 0
-_021D86DC: .word 0x00000116
- thumb_func_end MOD63_021D8650
-
- thumb_func_start MOD63_021D86E0
-MOD63_021D86E0: ; 0x021D86E0
- push {r3, r4, r5, lr}
- sub sp, #0x18
- add r4, r0, #0
- ldr r0, _021D8858 ; =gGameVersion
- ldrb r0, [r0]
- cmp r0, #0xa
- bne _021D8788
- add r0, r4, #0
- mov r2, #0
- add r0, #0xd8
- str r2, [r0]
- mov r1, #0x41
- add r0, r4, #0
- mov r3, #0x12
- lsl r1, r1, #0xc
- add r0, #0xdc
- str r1, [r0]
- add r0, r4, #0
- mov r5, #0xf6
- lsl r3, r3, #0xe
- add r0, #0xe0
- str r3, [r0]
- mov r3, #0xc3
- add r0, r4, #0
- lsl r3, r3, #0xc
- add r0, #0xe4
- str r3, [r0]
- mov r0, #2
- add r3, r4, #0
- lsl r0, r0, #0x10
- add r3, #0xe8
- str r0, [r3]
- add r3, r4, #0
- lsl r5, r5, #0xc
- add r3, #0xec
- str r5, [r3]
- add r3, r4, #0
- add r3, #0xf0
- str r2, [r3]
- mov r5, #0x5a
- add r3, r4, #0
- lsl r5, r5, #0xc
- add r3, #0xf4
- str r5, [r3]
- add r3, r4, #0
- add r3, #0xf8
- str r2, [r3]
- add r2, r4, #0
- ldr r3, _021D885C ; =0xFFFFE000
- add r2, #0xfc
- str r3, [r2]
- mov r2, #0x1f
- lsl r2, r2, #0xe
- lsr r0, r0, #9
- str r2, [r4, r0]
- lsr r0, r1, #0xa
- ldr r2, _021D8860 ; =0xFFFDA000
- ldr r1, _021D8864 ; =0xFFFFF6E3
- str r2, [r4, r0]
- mov r0, #0x42
- lsl r0, r0, #2
- ldr r3, _021D8868 ; =0x00000A2B
- strh r1, [r4, r0]
- add r2, r0, #2
- strh r3, [r4, r2]
- add r3, r1, #0
- add r3, #0xc6
- add r2, r0, #4
- strh r3, [r4, r2]
- add r1, #0x42
- add r2, r0, #6
- strh r1, [r4, r2]
- add r1, r0, #0
- ldr r2, _021D886C ; =0x000007A1
- add r1, #8
- strh r2, [r4, r1]
- add r1, r0, #0
- ldr r2, _021D8870 ; =0xFFFFF513
- add r1, #0xa
- strh r2, [r4, r1]
- mov r1, #3
- lsl r1, r1, #0xc
- add r0, #0x10
- b _021D8828
-_021D8788:
- add r0, r4, #0
- ldr r1, _021D8874 ; =0xFFFBF000
- add r0, #0xd8
- str r1, [r0]
- mov r1, #0x29
- add r0, r4, #0
- lsl r1, r1, #0xc
- add r0, #0xdc
- str r1, [r0]
- mov r1, #0x13
- add r0, r4, #0
- lsl r1, r1, #0xc
- add r0, #0xe0
- str r1, [r0]
- add r0, r4, #0
- ldr r1, _021D8878 ; =0xFFF6C000
- add r0, #0xe4
- str r1, [r0]
- mov r1, #0x3a
- add r0, r4, #0
- mov r2, #2
- lsl r1, r1, #0xc
- add r0, #0xe8
- str r1, [r0]
- mov r1, #0xbe
- add r0, r4, #0
- lsl r1, r1, #0xc
- add r0, #0xec
- str r1, [r0]
- add r0, r4, #0
- mov r1, #0
- add r0, #0xf0
- str r1, [r0]
- mov r1, #0xb
- add r0, r4, #0
- lsl r1, r1, #0xc
- add r0, #0xf4
- str r1, [r0]
- mov r1, #0x12
- add r0, r4, #0
- lsl r1, r1, #0xc
- add r0, #0xf8
- str r1, [r0]
- add r0, r4, #0
- lsl r2, r2, #0xe
- add r0, #0xfc
- str r2, [r0]
- ldr r1, _021D887C ; =0xFFFFB000
- lsr r0, r2, #7
- str r1, [r4, r0]
- mov r0, #0x41
- lsr r1, r2, #3
- lsl r0, r0, #2
- str r1, [r4, r0]
- ldr r2, _021D8880 ; =0x00000653
- add r1, r0, #4
- strh r2, [r4, r1]
- ldr r2, _021D8884 ; =0xFFFFF71C
- add r1, r0, #6
- strh r2, [r4, r1]
- add r1, r0, #0
- sub r2, #0x14
- add r1, #8
- strh r2, [r4, r1]
- add r1, r0, #0
- ldr r2, _021D8888 ; =0x0000091B
- add r1, #0xa
- strh r2, [r4, r1]
- add r1, r0, #0
- ldr r2, _021D888C ; =0xFFFFFB61
- add r1, #0xc
- strh r2, [r4, r1]
- add r1, r0, #0
- mov r2, #0xc5
- lsl r2, r2, #4
- add r1, #0xe
- strh r2, [r4, r1]
- mov r1, #3
- lsl r1, r1, #0xc
- add r0, #0x14
-_021D8828:
- str r1, [r4, r0]
- add r0, r4, #0
- add r1, r4, #0
- add r0, #0xfc
- add r1, #0xe4
- add r2, sp, #0xc
- bl VEC_Subtract
- add r0, sp, #0xc
- add r1, sp, #0
- bl VEC_Normalize
- mov r0, #0x42
- ldr r1, [sp]
- lsl r0, r0, #2
- strh r1, [r4, r0]
- add r1, r0, #2
- ldr r2, [sp, #4]
- add r0, r0, #4
- strh r2, [r4, r1]
- ldr r1, [sp, #8]
- strh r1, [r4, r0]
- add sp, #0x18
- pop {r3, r4, r5, pc}
- .align 2, 0
-_021D8858: .word gGameVersion
-_021D885C: .word 0xFFFFE000
-_021D8860: .word 0xFFFDA000
-_021D8864: .word 0xFFFFF6E3
-_021D8868: .word 0x00000A2B
-_021D886C: .word 0x000007A1
-_021D8870: .word 0xFFFFF513
-_021D8874: .word 0xFFFBF000
-_021D8878: .word 0xFFF6C000
-_021D887C: .word 0xFFFFB000
-_021D8880: .word 0x00000653
-_021D8884: .word 0xFFFFF71C
-_021D8888: .word 0x0000091B
-_021D888C: .word 0xFFFFFB61
- thumb_func_end MOD63_021D86E0
-
- thumb_func_start MOD63_021D8890
-MOD63_021D8890: ; 0x021D8890
- push {r4, lr}
- sub sp, #0x28
- ldr r4, _021D88AC ; =MOD63_021DBD70
- add r3, sp, #0
- mov r2, #5
-_021D889A:
- ldmia r4!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _021D889A
- add r0, sp, #0
- bl FUN_0201E66C
- add sp, #0x28
- pop {r4, pc}
- .align 2, 0
-_021D88AC: .word MOD63_021DBD70
- thumb_func_end MOD63_021D8890
-
- thumb_func_start MOD63_021D88B0
-MOD63_021D88B0: ; 0x021D88B0
- push {r4, lr}
- sub sp, #0x28
- ldr r4, _021D88CC ; =MOD63_021DBD98
- add r3, sp, #0
- mov r2, #5
-_021D88BA:
- ldmia r4!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _021D88BA
- add r0, sp, #0
- bl FUN_0201E66C
- add sp, #0x28
- pop {r4, pc}
- .align 2, 0
-_021D88CC: .word MOD63_021DBD98
- thumb_func_end MOD63_021D88B0
-
- thumb_func_start MOD63_021D88D0
-MOD63_021D88D0: ; 0x021D88D0
- push {r4, lr}
- sub sp, #0x28
- ldr r4, _021D88EC ; =MOD63_021DBDC0
- add r3, sp, #0
- mov r2, #5
-_021D88DA:
- ldmia r4!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _021D88DA
- add r0, sp, #0
- bl FUN_0201E66C
- add sp, #0x28
- pop {r4, pc}
- .align 2, 0
-_021D88EC: .word MOD63_021DBDC0
- thumb_func_end MOD63_021D88D0
-
- thumb_func_start MOD63_021D88F0
-MOD63_021D88F0: ; 0x021D88F0
- push {r3, r4, r5, lr}
- sub sp, #0xb8
- add r4, r0, #0
- ldr r0, [r4]
- bl FUN_02016B94
- add r3, sp, #0xa8
- ldr r5, _021D89E8 ; =MOD63_021DBB4C
- str r0, [r4, #0xc]
- 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, _021D89EC ; =MOD63_021DBC88
- add r3, sp, #0x8c
- 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]
- ldr r0, [r4, #0xc]
- mov r3, #0
- bl FUN_02016C18
- ldr r5, _021D89F0 ; =MOD63_021DBC6C
- 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, #2
- str r0, [r3]
- ldr r0, [r4, #0xc]
- mov r3, #0
- bl FUN_02016C18
- ldr r5, _021D89F4 ; =MOD63_021DBBC4
- 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, #3
- str r0, [r3]
- ldr r0, [r4, #0xc]
- mov r3, #0
- bl FUN_02016C18
- ldr r5, _021D89F8 ; =MOD63_021DBBFC
- 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, #5
- str r0, [r3]
- ldr r0, [r4, #0xc]
- mov r3, #0
- bl FUN_02016C18
- ldr r5, _021D89FC ; =MOD63_021DBC18
- 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]
- str r0, [r3]
- ldr r0, [r4, #0xc]
- mov r1, #6
- mov r3, #0
- bl FUN_02016C18
- ldr r5, _021D8A00 ; =MOD63_021DBC34
- add r3, sp, #0
- ldmia r5!, {r0, r1}
- add r2, r3, #0
- stmia r3!, {r0, r1}
- ldmia r5!, {r0, r1}
- stmia r3!, {r0, r1}
- ldmia r5!, {r0, r1}
- stmia r3!, {r0, r1}
- ldr r0, [r5]
- mov r1, #7
- str r0, [r3]
- ldr r0, [r4, #0xc]
- mov r3, #0
- bl FUN_02016C18
- mov r0, #0
- add r1, r0, #0
- bl FUN_02017FE4
- mov r0, #4
- mov r1, #0
- bl FUN_02017FE4
- add sp, #0xb8
- pop {r3, r4, r5, pc}
- nop
-_021D89E8: .word MOD63_021DBB4C
-_021D89EC: .word MOD63_021DBC88
-_021D89F0: .word MOD63_021DBC6C
-_021D89F4: .word MOD63_021DBBC4
-_021D89F8: .word MOD63_021DBBFC
-_021D89FC: .word MOD63_021DBC18
-_021D8A00: .word MOD63_021DBC34
- thumb_func_end MOD63_021D88F0
-
- thumb_func_start MOD63_021D8A04
-MOD63_021D8A04: ; 0x021D8A04
- push {r3, r4, r5, lr}
- sub sp, #0x80
- add r4, r0, #0
- ldr r0, [r4]
- bl FUN_02016B94
- add r3, sp, #0x70
- ldr r5, _021D8AC4 ; =MOD63_021DBB3C
- str r0, [r4, #0xc]
- 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
- mov r2, #1
- lsl r2, r2, #0x1a
- ldr r1, [r2]
- ldr r0, _021D8AC8 ; =0xC7FFFFFF
- ldr r5, _021D8ACC ; =MOD63_021DBC50
- and r1, r0
- lsl r0, r2, #1
- orr r0, r1
- str r0, [r2]
- 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, #3
- str r0, [r3]
- ldr r0, [r4, #0xc]
- mov r3, #0
- bl FUN_02016C18
- ldr r5, _021D8AD0 ; =MOD63_021DBCA4
- 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]
- ldr r0, [r4, #0xc]
- mov r3, #0
- bl FUN_02016C18
- ldr r5, _021D8AD4 ; =MOD63_021DBCC0
- 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]
- ldr r0, [r4, #0xc]
- mov r3, #0
- bl FUN_02016C18
- ldr r5, _021D8AD8 ; =MOD63_021DBCDC
- 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]
- ldr r0, [r4, #0xc]
- mov r3, #0
- bl FUN_02016C18
- mov r0, #4
- mov r1, #0
- bl FUN_02017FE4
- add sp, #0x80
- pop {r3, r4, r5, pc}
- nop
-_021D8AC4: .word MOD63_021DBB3C
-_021D8AC8: .word 0xC7FFFFFF
-_021D8ACC: .word MOD63_021DBC50
-_021D8AD0: .word MOD63_021DBCA4
-_021D8AD4: .word MOD63_021DBCC0
-_021D8AD8: .word MOD63_021DBCDC
- thumb_func_end MOD63_021D8A04
-
- thumb_func_start MOD63_021D8ADC
-MOD63_021D8ADC: ; 0x021D8ADC
- push {r4, r5, lr}
- sub sp, #0x9c
- add r4, r0, #0
- ldr r0, [r4]
- bl FUN_02016B94
- add r3, sp, #0x8c
- ldr r5, _021D8BBC ; =MOD63_021DBB6C
- str r0, [r4, #0xc]
- 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
- mov r2, #1
- lsl r2, r2, #0x1a
- ldr r1, [r2]
- ldr r0, _021D8BC0 ; =0xC7FFFFFF
- ldr r5, _021D8BC4 ; =MOD63_021DBCF8
- and r1, r0
- lsl r0, r2, #1
- orr r0, r1
- str r0, [r2]
- 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, #1
- str r0, [r3]
- ldr r0, [r4, #0xc]
- mov r3, #0
- bl FUN_02016C18
- ldr r5, _021D8BC8 ; =MOD63_021DBD14
- 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, #2
- str r0, [r3]
- ldr r0, [r4, #0xc]
- mov r3, #1
- bl FUN_02016C18
- ldr r5, _021D8BCC ; =MOD63_021DBD30
- 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, #3
- str r0, [r3]
- ldr r0, [r4, #0xc]
- mov r3, #1
- bl FUN_02016C18
- ldr r5, _021D8BD0 ; =MOD63_021DBBA8
- 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, #0
- str r0, [r3]
- ldr r0, [r4, #0xc]
- add r3, r1, #0
- bl FUN_02016C18
- ldr r5, _021D8BD4 ; =MOD63_021DBBE0
- 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, #5
- str r0, [r3]
- ldr r0, [r4, #0xc]
- mov r3, #0
- bl FUN_02016C18
- mov r0, #4
- mov r1, #0
- bl FUN_02017FE4
- add sp, #0x9c
- pop {r4, r5, pc}
- nop
-_021D8BBC: .word MOD63_021DBB6C
-_021D8BC0: .word 0xC7FFFFFF
-_021D8BC4: .word MOD63_021DBCF8
-_021D8BC8: .word MOD63_021DBD14
-_021D8BCC: .word MOD63_021DBD30
-_021D8BD0: .word MOD63_021DBBA8
-_021D8BD4: .word MOD63_021DBBE0
- thumb_func_end MOD63_021D8ADC
-
- thumb_func_start MOD63_021D8BD8
-MOD63_021D8BD8: ; 0x021D8BD8
- push {r4, lr}
- sub sp, #8
- add r4, r0, #0
- mov r0, #4
- str r0, [sp]
- ldr r0, _021D8C14 ; =MOD63_021D8C20
- mov r1, #0
- str r0, [sp, #4]
- ldr r0, [r4]
- mov r2, #1
- add r3, r1, #0
- bl FUN_02022318
- str r0, [r4, #0x10]
- ldr r3, _021D8C18 ; =UNK_021064B8
- mov r0, #2
- mov r1, #0
- ldr r3, [r3]
- lsl r0, r0, #0xe
- add r2, r1, #0
- blx r3
- ldr r3, _021D8C1C ; =UNK_021064C0
- mov r0, #0x80
- ldr r3, [r3]
- mov r1, #0
- mov r2, #1
- blx r3
- add sp, #8
- pop {r4, pc}
- nop
-_021D8C14: .word MOD63_021D8C20
-_021D8C18: .word UNK_021064B8
-_021D8C1C: .word UNK_021064C0
- thumb_func_end MOD63_021D8BD8
-
- thumb_func_start MOD63_021D8C20
-MOD63_021D8C20: ; 0x021D8C20
- push {r3, lr}
- ldr r0, _021D8C8C ; =0x04000008
- mov r1, #3
- ldrh r2, [r0]
- bic r2, r1
- strh r2, [r0]
- add r0, #0x58
- ldrh r2, [r0]
- ldr r1, _021D8C90 ; =0xFFFFCFFD
- and r2, r1
- strh r2, [r0]
- ldrh r3, [r0]
- add r2, r1, #2
- and r3, r2
- mov r2, #0x10
- orr r2, r3
- strh r2, [r0]
- ldrh r3, [r0]
- ldr r2, _021D8C94 ; =0x0000CFFB
- and r2, r3
- strh r2, [r0]
- add r2, r1, #2
- ldrh r3, [r0]
- add r1, r1, #2
- and r3, r2
- mov r2, #8
- orr r2, r3
- strh r2, [r0]
- ldrh r2, [r0]
- and r2, r1
- mov r1, #0x20
- orr r1, r2
- strh r1, [r0]
- ldr r0, _021D8C98 ; =MOD63_021DBB5C
- bl G3X_SetEdgeColorTable
- mov r0, #0
- add r1, r0, #0
- add r2, r0, #0
- add r3, r0, #0
- bl G3X_SetFog
- mov r0, #0
- ldr r2, _021D8C9C ; =0x00007FFF
- add r1, r0, #0
- mov r3, #0x3f
- str r0, [sp]
- bl G3X_SetClearColor
- ldr r1, _021D8CA0 ; =0xBFFF0000
- ldr r0, _021D8CA4 ; =0x04000580
- str r1, [r0]
- pop {r3, pc}
- nop
-_021D8C8C: .word 0x04000008
-_021D8C90: .word 0xFFFFCFFD
-_021D8C94: .word 0x0000CFFB
-_021D8C98: .word MOD63_021DBB5C
-_021D8C9C: .word 0x00007FFF
-_021D8CA0: .word 0xBFFF0000
-_021D8CA4: .word 0x04000580
- thumb_func_end MOD63_021D8C20
-
- thumb_func_start MOD63_021D8CA8
-MOD63_021D8CA8: ; 0x021D8CA8
- ldr r3, _021D8CAC ; =FUN_02009F80
- bx r3
- .align 2, 0
-_021D8CAC: .word FUN_02009F80
- thumb_func_end MOD63_021D8CA8
-
- thumb_func_start MOD63_021D8CB0
-MOD63_021D8CB0: ; 0x021D8CB0
- push {r4, lr}
- add r4, r0, #0
- bl FUN_02009F80
- ldr r0, [r4, #0x4c]
- bl MOD63_021DB598
- pop {r4, pc}
- thumb_func_end MOD63_021D8CB0
-
- thumb_func_start MOD63_021D8CC0
-MOD63_021D8CC0: ; 0x021D8CC0
- push {r4, r5}
- mov r0, #1
- lsl r0, r0, #0x1a
- ldr r2, [r0]
- ldr r1, _021D8D08 ; =0xFFFF1FFF
- add r4, r0, #0
- and r2, r1
- lsr r1, r0, #0xd
- orr r1, r2
- str r1, [r0]
- add r4, #0x48
- ldrh r3, [r4]
- mov r2, #0x3f
- mov r1, #0x1f
- bic r3, r2
- orr r1, r3
- mov r3, #0x20
- orr r1, r3
- strh r1, [r4]
- add r4, r0, #0
- add r4, #0x4a
- ldrh r5, [r4]
- mov r1, #0x11
- bic r5, r2
- orr r1, r5
- orr r1, r3
- strh r1, [r4]
- add r1, r0, #0
- mov r2, #0xff
- add r1, #0x40
- strh r2, [r1]
- ldr r1, _021D8D0C ; =0x0000209F
- add r0, #0x44
- strh r1, [r0]
- pop {r4, r5}
- bx lr
- .align 2, 0
-_021D8D08: .word 0xFFFF1FFF
-_021D8D0C: .word 0x0000209F
- thumb_func_end MOD63_021D8CC0
-
- thumb_func_start MOD63_021D8D10
-MOD63_021D8D10: ; 0x021D8D10
- push {r4, lr}
- add r4, r0, #0
- bl FUN_0200A2AC
- ldr r1, _021D8D90 ; =0x00007FFF
- mov r0, #0
- bl FUN_0200E3A0
- ldr r1, _021D8D90 ; =0x00007FFF
- mov r0, #1
- bl FUN_0200E3A0
- mov r0, #0
- add r1, r0, #0
- bl FUN_02015F10
- mov r0, #0
- add r1, r0, #0
- bl FUN_02015F34
- bl FUN_0201E6D8
- bl FUN_0201E740
- mov r0, #4
- mov r1, #8
- bl FUN_0201669C
- mov r0, #3
- mov r1, #0x4c
- lsl r2, r0, #0x11
- bl FUN_0201681C
- mov r1, #0xab
- add r0, r4, #0
- lsl r1, r1, #2
- mov r2, #0x4c
- bl FUN_02006268
- mov r2, #0xab
- mov r1, #0
- lsl r2, r2, #2
- add r4, r0, #0
- bl memset
- mov r0, #0x4c
- str r0, [r4]
- mov r1, #0
- mov r0, #0xaa
- str r1, [r4, #8]
- lsl r0, r0, #2
- strb r1, [r4, r0]
- ldr r0, _021D8D94 ; =gUnk021C4918
- strb r1, [r0, #5]
- bl FUN_0201E7A0
- bl GetLCRNGSeed
- str r0, [r4, #0x14]
- mov r0, #0
- bl SetLCRNGSeed
- mov r0, #1
- pop {r4, pc}
- .align 2, 0
-_021D8D90: .word 0x00007FFF
-_021D8D94: .word gUnk021C4918
- thumb_func_end MOD63_021D8D10
-
- thumb_func_start MOD63_021D8D98
-MOD63_021D8D98: ; 0x021D8D98
- push {r3, r4, r5, lr}
- add r4, r1, #0
- bl FUN_02006278
- add r5, r0, #0
- mov r0, #0xaa
- lsl r0, r0, #2
- ldrb r0, [r5, r0]
- cmp r0, #0
- beq _021D8DD4
- ldr r0, _021D8E5C ; =gUnknown21C48B8
- ldr r1, [r0, #0x48]
- mov r0, #1
- tst r0, r1
- bne _021D8DBC
- mov r0, #8
- tst r0, r1
- beq _021D8DD4
-_021D8DBC:
- mov r0, #1
- str r0, [r5, #8]
- ldr r1, _021D8E5C ; =gUnknown21C48B8
- mov r0, #0
- str r0, [r1, #0x6c]
- ldr r1, _021D8E60 ; =0x00007FFF
- bl FUN_0200E3A0
- ldr r1, _021D8E60 ; =0x00007FFF
- mov r0, #1
- bl FUN_0200E3A0
-_021D8DD4:
- ldr r0, [r4]
- cmp r0, #4
- bhi _021D8E42
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_021D8DE6: ; jump table
- .short _021D8DF0 - _021D8DE6 - 2 ; case 0
- .short _021D8E00 - _021D8DE6 - 2 ; case 1
- .short _021D8E12 - _021D8DE6 - 2 ; case 2
- .short _021D8E24 - _021D8DE6 - 2 ; case 3
- .short _021D8E36 - _021D8DE6 - 2 ; case 4
-_021D8DF0:
- mov r0, #0xaa
- lsl r0, r0, #2
- add r0, r5, r0
- str r0, [r5, #0x30]
- ldr r0, [r4]
- add r0, r0, #1
- str r0, [r4]
- b _021D8E46
-_021D8E00:
- add r0, r5, #0
- bl MOD63_021D8E9C
- cmp r0, #0
- beq _021D8E46
- ldr r0, [r4]
- add r0, r0, #1
- str r0, [r4]
- b _021D8E46
-_021D8E12:
- add r0, r5, #0
- bl MOD63_021D93F0
- cmp r0, #0
- beq _021D8E46
- ldr r0, [r4]
- add r0, r0, #1
- str r0, [r4]
- b _021D8E46
-_021D8E24:
- add r0, r5, #0
- bl MOD63_021DA0A8
- cmp r0, #0
- beq _021D8E46
- ldr r0, [r4]
- add r0, r0, #1
- str r0, [r4]
- b _021D8E46
-_021D8E36:
- ldr r1, [r5, #4]
- ldr r0, _021D8E64 ; =0x00000A8C
- cmp r1, r0
- blt _021D8E46
- mov r0, #1
- pop {r3, r4, r5, pc}
-_021D8E42:
- bl ErrorHandling
-_021D8E46:
- ldr r0, [r5, #8]
- cmp r0, #0
- beq _021D8E50
- mov r0, #1
- pop {r3, r4, r5, pc}
-_021D8E50:
- ldr r0, [r5, #4]
- add r0, r0, #1
- str r0, [r5, #4]
- mov r0, #0
- pop {r3, r4, r5, pc}
- nop
-_021D8E5C: .word gUnknown21C48B8
-_021D8E60: .word 0x00007FFF
-_021D8E64: .word 0x00000A8C
- thumb_func_end MOD63_021D8D98
-
- thumb_func_start MOD63_021D8E68
-MOD63_021D8E68: ; 0x021D8E68
- push {r3, r4, r5, lr}
- add r5, r0, #0
- bl FUN_02006278
- add r4, r0, #0
- bl FUN_0200E31C
- ldr r0, [r4, #0x14]
- bl SetLCRNGSeed
- add r0, r5, #0
- bl FUN_0200627C
- mov r0, #0x4c
- bl FUN_020168D0
- ldr r0, _021D8E94 ; =SDK_OVERLAY_MODULE_63_ID
- ldr r1, _021D8E98 ; =MOD63_021DBAB8
- bl FUN_02000E7C
- mov r0, #1
- pop {r3, r4, r5, pc}
- .align 2, 0
-_021D8E94: .word SDK_OVERLAY_MODULE_63_ID
-_021D8E98: .word MOD63_021DBAB8
- thumb_func_end MOD63_021D8E68
-
- thumb_func_start MOD63_021D8E9C
-MOD63_021D8E9C: ; 0x021D8E9C
- push {r4, lr}
- add r1, r0, #0
- ldr r0, [r1, #8]
- add r4, r1, #0
- add r4, #0x18
- cmp r0, #0
- beq _021D8EAE
- mov r0, #3
- strb r0, [r4]
-_021D8EAE:
- ldrb r0, [r4]
- cmp r0, #3
- bhi _021D8F06
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_021D8EC0: ; jump table
- .short _021D8EC8 - _021D8EC0 - 2 ; case 0
- .short _021D8ED6 - _021D8EC0 - 2 ; case 1
- .short _021D8EE6 - _021D8EC0 - 2 ; case 2
- .short _021D8EFC - _021D8EC0 - 2 ; case 3
-_021D8EC8:
- add r0, r1, #0
- bl MOD63_021D8F0C
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _021D8F06
-_021D8ED6:
- add r1, #0x18
- add r0, r1, #0
- bl MOD63_021D8F38
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _021D8F06
-_021D8EE6:
- add r0, r1, #0
- ldr r1, [r1, #4]
- add r0, #0x18
- bl MOD63_021D90D0
- cmp r0, #0
- beq _021D8F06
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _021D8F06
-_021D8EFC:
- add r0, r1, #0
- bl MOD63_021D9234
- mov r0, #1
- pop {r4, pc}
-_021D8F06:
- mov r0, #0
- pop {r4, pc}
- .align 2, 0
- thumb_func_end MOD63_021D8E9C
-
- thumb_func_start MOD63_021D8F0C
-MOD63_021D8F0C: ; 0x021D8F0C
- push {r4, lr}
- add r4, r0, #0
- bl MOD63_021D8890
- add r0, r4, #0
- bl MOD63_021D88F0
- ldr r0, [r4, #0xc]
- str r0, [r4, #0x24]
- bl MOD63_021DAEF8
- str r0, [r4, #0x2c]
- ldr r0, _021D8F34 ; =MOD63_021D8CA8
- add r1, r4, #0
- bl FUN_02015F10
- mov r0, #1
- strb r0, [r4, #0x1a]
- pop {r4, pc}
- nop
-_021D8F34: .word MOD63_021D8CA8
- thumb_func_end MOD63_021D8F0C
-
- thumb_func_start MOD63_021D8F38
-MOD63_021D8F38: ; 0x021D8F38
- push {r4, lr}
- sub sp, #0x10
- add r4, r0, #0
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x4c
- str r0, [sp, #0xc]
- ldr r2, [r4, #0xc]
- mov r0, #0x80
- mov r1, #0x13
- mov r3, #2
- bl FUN_0200687C
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x4c
- str r0, [sp, #0xc]
- ldr r2, [r4, #0xc]
- mov r0, #0x80
- mov r1, #0x13
- mov r3, #6
- bl FUN_0200687C
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x4c
- str r0, [sp, #0xc]
- ldr r2, [r4, #0xc]
- mov r0, #0x80
- mov r1, #0x14
- mov r3, #2
- bl FUN_020068C8
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x4c
- str r0, [sp, #0xc]
- ldr r2, [r4, #0xc]
- mov r0, #0x80
- mov r1, #0x15
- mov r3, #6
- bl FUN_020068C8
- mov r2, #0
- str r2, [sp]
- mov r0, #0x4c
- str r0, [sp, #4]
- mov r0, #0x80
- mov r1, #0x12
- add r3, r2, #0
- bl FUN_02006930
- mov r3, #0
- str r3, [sp]
- mov r0, #0x4c
- str r0, [sp, #4]
- mov r0, #0x80
- mov r1, #0x12
- mov r2, #4
- bl FUN_02006930
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x4c
- str r0, [sp, #0xc]
- mov r1, #1
- ldr r2, [r4, #0xc]
- mov r0, #0x80
- add r3, r1, #0
- bl FUN_0200687C
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x4c
- str r0, [sp, #0xc]
- ldr r2, [r4, #0xc]
- mov r0, #0x80
- mov r1, #2
- mov r3, #1
- bl FUN_020068C8
- mov r1, #0
- mov r0, #0x20
- str r0, [sp]
- mov r0, #0x4c
- str r0, [sp, #4]
- mov r0, #0x80
- add r2, r1, #0
- add r3, r1, #0
- bl FUN_02006930
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x4c
- str r0, [sp, #0xc]
- ldr r2, [r4, #0xc]
- mov r0, #0x80
- mov r1, #0x16
- mov r3, #3
- bl FUN_020068C8
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x4c
- str r0, [sp, #0xc]
- ldr r2, [r4, #0xc]
- mov r0, #0x80
- mov r1, #0x16
- mov r3, #7
- bl FUN_020068C8
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x4c
- str r0, [sp, #0xc]
- ldr r2, [r4, #0xc]
- mov r0, #0x80
- mov r1, #0x48
- mov r3, #5
- bl FUN_0200687C
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x4c
- str r0, [sp, #0xc]
- ldr r2, [r4, #0xc]
- mov r0, #0x80
- mov r1, #0x49
- mov r3, #5
- bl FUN_020068C8
- mov r0, #0x20
- str r0, [sp]
- mov r0, #0x4c
- str r0, [sp, #4]
- mov r0, #0x80
- mov r1, #0x47
- mov r2, #4
- mov r3, #0
- bl FUN_02006930
- mov r0, #4
- mov r1, #0
- bl FUN_0201E6E4
- mov r0, #4
- mov r1, #0
- bl FUN_0201E74C
- mov r0, #0x10
- str r0, [sp]
- ldr r0, _021D90C8 ; =0x04000050
- mov r1, #2
- mov r2, #8
- mov r3, #0
- bl G2x_SetBlendAlpha_
- mov r0, #0x10
- str r0, [sp]
- ldr r0, _021D90CC ; =0x04001050
- mov r1, #2
- mov r2, #8
- mov r3, #0
- bl G2x_SetBlendAlpha_
- mov r0, #1
- add r1, r0, #0
- bl OS_WaitIrq
- mov r0, #0
- bl FUN_0200E394
- mov r0, #1
- bl FUN_0200E394
- bl FUN_0201E788
- add sp, #0x10
- pop {r4, pc}
- nop
-_021D90C8: .word 0x04000050
-_021D90CC: .word 0x04001050
- thumb_func_end MOD63_021D8F38
-
- thumb_func_start MOD63_021D90D0
-MOD63_021D90D0: ; 0x021D90D0
- push {r4, r5, lr}
- sub sp, #0xc
- add r4, r0, #0
- ldr r0, [r4, #0x14]
- add r5, r1, #0
- bl MOD63_021DB1AC
- ldrb r0, [r4, #1]
- cmp r0, #5
- bls _021D90E6
- b _021D9208
-_021D90E6:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_021D90F2: ; jump table
- .short _021D90FE - _021D90F2 - 2 ; case 0
- .short _021D9122 - _021D90F2 - 2 ; case 1
- .short _021D9148 - _021D90F2 - 2 ; case 2
- .short _021D91AE - _021D90F2 - 2 ; case 3
- .short _021D91CE - _021D90F2 - 2 ; case 4
- .short _021D91FA - _021D90F2 - 2 ; case 5
-_021D90FE:
- mov r2, #0
- strb r2, [r4, #7]
- strb r2, [r4, #6]
- ldr r0, _021D9210 ; =MOD63_021D92A4
- strb r2, [r4, #8]
- add r1, r4, #0
- bl FUN_0200CA44
- str r0, [r4, #0x10]
- mov r0, #1
- ldr r1, _021D9214 ; =0x00000494
- add r2, r0, #0
- bl FUN_0200433C
- ldrb r0, [r4, #1]
- add r0, r0, #1
- strb r0, [r4, #1]
- b _021D9208
-_021D9122:
- ldrb r0, [r4, #8]
- cmp r0, #0
- beq _021D9208
- cmp r5, #0x73
- blt _021D9208
- mov r2, #0
- strb r2, [r4, #7]
- mov r0, #0x10
- strb r0, [r4, #6]
- ldr r0, _021D9218 ; =MOD63_021D9300
- strb r2, [r4, #8]
- add r1, r4, #0
- bl FUN_0200CA44
- str r0, [r4, #0x10]
- ldrb r0, [r4, #1]
- add r0, r0, #1
- strb r0, [r4, #1]
- b _021D9208
-_021D9148:
- ldrb r0, [r4, #8]
- cmp r0, #0
- beq _021D9208
- ldr r0, _021D921C ; =0x00000109
- cmp r5, r0
- blt _021D9208
- mov r0, #2
- mov r1, #0
- bl FUN_0201E6E4
- mov r0, #2
- mov r1, #0
- bl FUN_0201E74C
- mov r0, #0x10
- str r0, [sp]
- ldr r0, _021D9220 ; =0x04000050
- mov r1, #4
- mov r2, #8
- mov r3, #0
- bl G2x_SetBlendAlpha_
- mov r0, #0x10
- str r0, [sp]
- ldr r0, _021D9224 ; =0x04001050
- mov r1, #4
- mov r2, #8
- mov r3, #0
- bl G2x_SetBlendAlpha_
- mov r0, #4
- mov r1, #1
- bl FUN_0201E6E4
- mov r0, #4
- mov r1, #1
- bl FUN_0201E74C
- mov r2, #0
- strb r2, [r4, #7]
- strb r2, [r4, #6]
- ldr r0, _021D9228 ; =MOD63_021D9360
- strb r2, [r4, #8]
- add r1, r4, #0
- bl FUN_0200CA44
- str r0, [r4, #0x10]
- ldrb r0, [r4, #1]
- add r0, r0, #1
- strb r0, [r4, #1]
- b _021D9208
-_021D91AE:
- ldrb r0, [r4, #8]
- cmp r0, #0
- beq _021D9208
- mov r2, #0
- strb r2, [r4, #7]
- strb r2, [r4, #6]
- ldr r0, _021D922C ; =MOD63_021D93A8
- strb r2, [r4, #8]
- add r1, r4, #0
- bl FUN_0200CA44
- str r0, [r4, #0x10]
- ldrb r0, [r4, #1]
- add r0, r0, #1
- strb r0, [r4, #1]
- b _021D9208
-_021D91CE:
- ldrb r0, [r4, #8]
- cmp r0, #0
- beq _021D9208
- ldr r0, _021D9230 ; =0x000001EA
- cmp r5, r0
- blt _021D9208
- mov r0, #0x12
- str r0, [sp]
- mov r1, #0
- mov r0, #1
- str r0, [sp, #4]
- mov r0, #0x4c
- str r0, [sp, #8]
- mov r0, #2
- add r2, r1, #0
- add r3, r1, #0
- bl FUN_0200E1D0
- ldrb r0, [r4, #1]
- add r0, r0, #1
- strb r0, [r4, #1]
- b _021D9208
-_021D91FA:
- bl FUN_0200E308
- cmp r0, #0
- beq _021D9208
- add sp, #0xc
- mov r0, #1
- pop {r4, r5, pc}
-_021D9208:
- mov r0, #0
- add sp, #0xc
- pop {r4, r5, pc}
- nop
-_021D9210: .word MOD63_021D92A4
-_021D9214: .word 0x00000494
-_021D9218: .word MOD63_021D9300
-_021D921C: .word 0x00000109
-_021D9220: .word 0x04000050
-_021D9224: .word 0x04001050
-_021D9228: .word MOD63_021D9360
-_021D922C: .word MOD63_021D93A8
-_021D9230: .word 0x000001EA
- thumb_func_end MOD63_021D90D0
-
- thumb_func_start MOD63_021D9234
-MOD63_021D9234: ; 0x021D9234
- push {r4, lr}
- add r4, r0, #0
- mov r0, #0
- add r1, r0, #0
- bl FUN_02015F10
- ldrb r0, [r4, #0x1a]
- cmp r0, #0
- beq _021D9286
- ldr r0, [r4, #0x2c]
- bl MOD63_021DAF9C
- ldr r0, [r4, #0xc]
- mov r1, #1
- bl FUN_020178A0
- ldr r0, [r4, #0xc]
- mov r1, #2
- bl FUN_020178A0
- ldr r0, [r4, #0xc]
- mov r1, #6
- bl FUN_020178A0
- ldr r0, [r4, #0xc]
- mov r1, #3
- bl FUN_020178A0
- ldr r0, [r4, #0xc]
- mov r1, #7
- bl FUN_020178A0
- ldr r0, [r4, #0xc]
- mov r1, #5
- bl FUN_020178A0
- ldr r0, [r4, #0xc]
- bl FreeToHeap
- mov r0, #0
- strb r0, [r4, #0x1a]
-_021D9286:
- ldr r0, [r4, #0x28]
- cmp r0, #0
- beq _021D92A0
- ldr r0, [r4, #8]
- cmp r0, #0
- bne _021D9296
- bl ErrorHandling
-_021D9296:
- ldr r0, [r4, #0x28]
- bl FUN_0200CAB4
- mov r0, #0
- str r0, [r4, #0x28]
-_021D92A0:
- pop {r4, pc}
- .align 2, 0
- thumb_func_end MOD63_021D9234
-
- thumb_func_start MOD63_021D92A4
-MOD63_021D92A4: ; 0x021D92A4
- push {r3, r4, lr}
- sub sp, #4
- add r4, r1, #0
- ldrb r1, [r4, #7]
- add r1, r1, #1
- strb r1, [r4, #7]
- ldrb r1, [r4, #7]
- cmp r1, #6
- blo _021D92C0
- mov r1, #0
- strb r1, [r4, #7]
- ldrb r1, [r4, #6]
- add r1, r1, #1
- strb r1, [r4, #6]
-_021D92C0:
- ldrb r1, [r4, #6]
- cmp r1, #0x10
- blo _021D92D2
- bl FUN_0200CAB4
- mov r0, #0
- str r0, [r4, #0x10]
- mov r0, #1
- strb r0, [r4, #8]
-_021D92D2:
- mov r0, #0x10
- str r0, [sp]
- ldrb r3, [r4, #6]
- ldr r0, _021D92F8 ; =0x04000050
- mov r1, #2
- mov r2, #8
- bl G2x_SetBlendAlpha_
- mov r0, #0x10
- str r0, [sp]
- ldrb r3, [r4, #6]
- ldr r0, _021D92FC ; =0x04001050
- mov r1, #2
- mov r2, #8
- bl G2x_SetBlendAlpha_
- add sp, #4
- pop {r3, r4, pc}
- nop
-_021D92F8: .word 0x04000050
-_021D92FC: .word 0x04001050
- thumb_func_end MOD63_021D92A4
-
- thumb_func_start MOD63_021D9300
-MOD63_021D9300: ; 0x021D9300
- push {r3, r4, lr}
- sub sp, #4
- add r4, r1, #0
- ldrb r1, [r4, #7]
- add r1, r1, #1
- strb r1, [r4, #7]
- ldrb r1, [r4, #7]
- cmp r1, #4
- blo _021D931C
- mov r1, #0
- strb r1, [r4, #7]
- ldrb r1, [r4, #6]
- sub r1, r1, #1
- strb r1, [r4, #6]
-_021D931C:
- ldrb r1, [r4, #6]
- cmp r1, #0
- bne _021D9332
- bl FUN_0200CAB4
- mov r0, #0
- str r0, [r4, #0x10]
- mov r1, #1
- strb r1, [r4, #8]
- ldr r0, [r4, #0x18]
- strb r1, [r0]
-_021D9332:
- mov r0, #0x10
- str r0, [sp]
- ldrb r3, [r4, #6]
- ldr r0, _021D9358 ; =0x04000050
- mov r1, #2
- mov r2, #8
- bl G2x_SetBlendAlpha_
- mov r0, #0x10
- str r0, [sp]
- ldrb r3, [r4, #6]
- ldr r0, _021D935C ; =0x04001050
- mov r1, #2
- mov r2, #8
- bl G2x_SetBlendAlpha_
- add sp, #4
- pop {r3, r4, pc}
- nop
-_021D9358: .word 0x04000050
-_021D935C: .word 0x04001050
- thumb_func_end MOD63_021D9300
-
- thumb_func_start MOD63_021D9360
-MOD63_021D9360: ; 0x021D9360
- push {r3, r4, lr}
- sub sp, #4
- add r4, r1, #0
- ldrb r1, [r4, #7]
- add r1, r1, #1
- strb r1, [r4, #7]
- ldrb r1, [r4, #7]
- cmp r1, #4
- blo _021D937C
- mov r1, #0
- strb r1, [r4, #7]
- ldrb r1, [r4, #6]
- add r1, r1, #1
- strb r1, [r4, #6]
-_021D937C:
- ldrb r1, [r4, #6]
- cmp r1, #0x10
- blo _021D938E
- bl FUN_0200CAB4
- mov r0, #0
- str r0, [r4, #0x10]
- mov r0, #1
- strb r0, [r4, #8]
-_021D938E:
- mov r0, #0x10
- str r0, [sp]
- ldrb r3, [r4, #6]
- ldr r0, _021D93A4 ; =0x04000050
- mov r1, #4
- mov r2, #8
- bl G2x_SetBlendAlpha_
- add sp, #4
- pop {r3, r4, pc}
- nop
-_021D93A4: .word 0x04000050
- thumb_func_end MOD63_021D9360
-
- thumb_func_start MOD63_021D93A8
-MOD63_021D93A8: ; 0x021D93A8
- push {r3, r4, lr}
- sub sp, #4
- add r4, r1, #0
- ldrb r1, [r4, #7]
- add r1, r1, #1
- strb r1, [r4, #7]
- ldrb r1, [r4, #7]
- cmp r1, #4
- blo _021D93C4
- mov r1, #0
- strb r1, [r4, #7]
- ldrb r1, [r4, #6]
- add r1, r1, #1
- strb r1, [r4, #6]
-_021D93C4:
- ldrb r1, [r4, #6]
- cmp r1, #0x10
- blo _021D93D6
- bl FUN_0200CAB4
- mov r0, #0
- str r0, [r4, #0x10]
- mov r0, #1
- strb r0, [r4, #8]
-_021D93D6:
- mov r0, #0x10
- str r0, [sp]
- ldrb r3, [r4, #6]
- ldr r0, _021D93EC ; =0x04001050
- mov r1, #4
- mov r2, #8
- bl G2x_SetBlendAlpha_
- add sp, #4
- pop {r3, r4, pc}
- nop
-_021D93EC: .word 0x04001050
- thumb_func_end MOD63_021D93A8
-
- thumb_func_start MOD63_021D93F0
-MOD63_021D93F0: ; 0x021D93F0
- push {r3, r4, r5, lr}
- add r5, r0, #0
- ldr r0, [r5, #8]
- add r4, r5, #0
- add r4, #0x34
- cmp r0, #0
- beq _021D9402
- mov r0, #4
- strb r0, [r4]
-_021D9402:
- ldrb r0, [r4]
- cmp r0, #4
- bhi _021D9492
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_021D9414: ; jump table
- .short _021D941E - _021D9414 - 2 ; case 0
- .short _021D942C - _021D9414 - 2 ; case 1
- .short _021D943C - _021D9414 - 2 ; case 2
- .short _021D9452 - _021D9414 - 2 ; case 3
- .short _021D9488 - _021D9414 - 2 ; case 4
-_021D941E:
- add r0, r5, #0
- bl MOD63_021D9498
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _021D9492
-_021D942C:
- add r5, #0x34
- add r0, r5, #0
- bl MOD63_021D96A0
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _021D9492
-_021D943C:
- add r0, r5, #0
- add r0, #0x34
- bl MOD63_021D9810
- mov r0, #1
- add r5, #0x39
- strb r0, [r5]
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _021D9492
-_021D9452:
- add r0, r5, #0
- ldr r1, [r5, #4]
- add r0, #0x34
- bl MOD63_021D99EC
- cmp r0, #0
- beq _021D9466
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
-_021D9466:
- ldr r0, [r5, #0x44]
- bl MOD63_021DAC18
- add r0, r5, #0
- add r0, #0x39
- ldrb r0, [r0]
- cmp r0, #0
- beq _021D9480
- add r5, #0x34
- add r0, r5, #0
- bl MOD63_021D9980
- b _021D9492
-_021D9480:
- ldr r0, [r5, #0x4c]
- bl MOD63_021DB5A8
- b _021D9492
-_021D9488:
- add r0, r5, #0
- bl MOD63_021D95A8
- mov r0, #1
- pop {r3, r4, r5, pc}
-_021D9492:
- mov r0, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
- thumb_func_end MOD63_021D93F0
-
- thumb_func_start MOD63_021D9498
-MOD63_021D9498: ; 0x021D9498
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r5, r0, #0
- bl MOD63_021D88B0
- add r0, r5, #0
- bl MOD63_021D8A04
- add r0, r5, #0
- bl MOD63_021D8BD8
- bl MOD63_021DA6E0
- add r4, r0, #0
- bl MOD63_021DB498
- add r6, r0, #0
- mov r0, #0x4c
- add r1, r4, #0
- bl AllocFromHeap
- str r0, [r5, #0x44]
- mov r0, #0x10
- bl MOD63_021DAF20
- str r0, [r5, #0x48]
- mov r0, #0x4c
- add r1, r6, #0
- bl AllocFromHeap
- str r0, [r5, #0x4c]
- ldr r0, [r5, #0x44]
- mov r1, #0
- add r2, r4, #0
- bl memset
- ldr r0, [r5, #0x4c]
- mov r1, #0
- add r2, r6, #0
- bl memset
- add r0, r5, #0
- mov r1, #4
- add r0, #0x3b
- strb r1, [r0]
- ldr r0, [r5, #0x4c]
- bl MOD63_021DB49C
- ldr r0, [r5, #0xc]
- mov r1, #1
- str r0, [r5, #0x40]
- ldr r0, _021D9588 ; =gUnk021C4918
- strb r1, [r0, #5]
- bl FUN_0201E7A0
- ldr r6, _021D958C ; =MOD63_021DBDE8
- ldr r7, _021D9590 ; =MOD63_021DBAD0
- mov r4, #0
-_021D950C:
- mov r0, #0xc
- add r1, r4, #0
- mul r1, r0
- add r3, r6, r1
- ldr r2, [r3, #4]
- ldr r1, [r6, r1]
- ldr r3, [r3, #8]
- lsl r1, r1, #0x10
- lsl r2, r2, #0x10
- lsl r3, r3, #0x10
- add r0, r4, #0
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- asr r3, r3, #0x10
- bl FUN_020B8418
- lsl r1, r4, #1
- ldrh r1, [r7, r1]
- add r0, r4, #0
- bl FUN_020B8404
- add r0, r4, #1
- lsl r0, r0, #0x18
- lsr r4, r0, #0x18
- cmp r4, #4
- blo _021D950C
- ldr r0, _021D9594 ; =0x00004210
- ldr r1, _021D9598 ; =0x0000318A
- mov r2, #0
- bl FUN_020B83E0
- ldr r0, _021D959C ; =0x00004A52
- ldr r1, _021D95A0 ; =0x000039CE
- mov r2, #0
- bl FUN_020B83BC
- mov r0, #0x1f
- str r0, [sp]
- mov r0, #2
- lsl r0, r0, #0xe
- mov r1, #0
- str r0, [sp, #4]
- mov r0, #0xd
- mov r2, #2
- add r3, r1, #0
- bl FUN_020B8390
- ldr r0, _021D95A4 ; =MOD63_021D8CB0
- add r1, r5, #0
- bl FUN_02015F10
- mov r0, #0x10
- mov r1, #1
- mov r2, #2
- bl FUN_0200A274
- mov r0, #1
- add r5, #0x36
- strb r0, [r5]
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_021D9588: .word gUnk021C4918
-_021D958C: .word MOD63_021DBDE8
-_021D9590: .word MOD63_021DBAD0
-_021D9594: .word 0x00004210
-_021D9598: .word 0x0000318A
-_021D959C: .word 0x00004A52
-_021D95A0: .word 0x000039CE
-_021D95A4: .word MOD63_021D8CB0
- thumb_func_end MOD63_021D9498
-
- thumb_func_start MOD63_021D95A8
-MOD63_021D95A8: ; 0x021D95A8
- push {r4, r5, r6, lr}
- mov r2, #1
- lsl r2, r2, #0x1a
- add r5, r0, #0
- ldr r1, [r2]
- ldr r0, _021D969C ; =0xFFFF1FFF
- and r0, r1
- str r0, [r2]
- add r0, r5, #0
- add r0, #0x38
- ldrb r0, [r0]
- cmp r0, #0
- beq _021D95F6
- bl FUN_0201EB98
- ldr r0, [r5, #0x78]
- bl FUN_0201EB70
- mov r4, #0
- mov r6, #0x58
-_021D95D0:
- add r0, r4, #0
- mul r0, r6
- add r0, r5, r0
- add r0, #0xd0
- ldr r0, [r0]
- bl FreeToHeap
- add r0, r4, #1
- lsl r0, r0, #0x18
- lsr r4, r0, #0x18
- cmp r4, #6
- blo _021D95D0
- ldr r0, [r5, #0x70]
- bl FreeToHeap
- add r0, r5, #0
- mov r1, #0
- add r0, #0x38
- strb r1, [r0]
-_021D95F6:
- add r0, r5, #0
- add r0, #0x37
- ldrb r0, [r0]
- cmp r0, #0
- beq _021D9624
- ldr r0, [r5, #0x44]
- bl MOD63_021DAA04
- mov r4, #0
-_021D9608:
- lsl r0, r4, #2
- add r0, r5, r0
- ldr r0, [r0, #0x50]
- bl FreeToHeap
- add r0, r4, #1
- lsl r0, r0, #0x18
- lsr r4, r0, #0x18
- cmp r4, #4
- blo _021D9608
- add r0, r5, #0
- mov r1, #0
- add r0, #0x37
- strb r1, [r0]
-_021D9624:
- add r0, r5, #0
- add r0, #0x36
- ldrb r0, [r0]
- cmp r0, #0
- beq _021D9690
- ldr r0, [r5, #0x48]
- cmp r0, #0
- beq _021D963C
- bl MOD63_021DAF4C
- mov r0, #0
- str r0, [r5, #0x48]
-_021D963C:
- ldr r0, [r5, #0x44]
- cmp r0, #0
- beq _021D964A
- bl FreeToHeap
- mov r0, #0
- str r0, [r5, #0x44]
-_021D964A:
- ldr r0, [r5, #0x4c]
- cmp r0, #0
- beq _021D965E
- bl MOD63_021DB580
- ldr r0, [r5, #0x4c]
- bl FreeToHeap
- mov r0, #0
- str r0, [r5, #0x4c]
-_021D965E:
- ldr r0, [r5, #0xc]
- mov r1, #3
- bl FUN_020178A0
- ldr r0, [r5, #0xc]
- mov r1, #1
- bl FUN_020178A0
- ldr r0, [r5, #0xc]
- mov r1, #2
- bl FUN_020178A0
- ldr r0, [r5, #0xc]
- mov r1, #4
- bl FUN_020178A0
- ldr r0, [r5, #0xc]
- bl FreeToHeap
- ldr r0, [r5, #0x10]
- bl FUN_020223BC
- mov r0, #0
- add r5, #0x36
- strb r0, [r5]
-_021D9690:
- mov r0, #0
- add r1, r0, #0
- bl FUN_02015F10
- pop {r4, r5, r6, pc}
- nop
-_021D969C: .word 0xFFFF1FFF
- thumb_func_end MOD63_021D95A8
-
- thumb_func_start MOD63_021D96A0
-MOD63_021D96A0: ; 0x021D96A0
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x28
- ldr r3, _021D980C ; =MOD63_021DBB2C
- add r2, sp, #0x18
- add r5, r0, #0
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- mov r0, #0x80
- mov r1, #0x4c
- bl NARC_ctor
- str r0, [sp, #0x10]
- add r0, r5, #0
- str r0, [sp, #0x14]
- add r0, #0x2c
- mov r4, #0
- str r0, [sp, #0x14]
-_021D96C6:
- lsl r7, r4, #2
- add r1, sp, #0x18
- ldr r0, [sp, #0x10]
- ldr r1, [r1, r7]
- mov r2, #0x4c
- add r6, r5, r7
- bl NARC_AllocAndReadWholeMember
- str r0, [r6, #0x1c]
- cmp r0, #0
- beq _021D96F4
- ldr r1, [sp, #0x14]
- add r1, r1, r7
- bl FUN_020B0138
- cmp r0, #0
- bne _021D96F8
- ldr r0, [r6, #0x2c]
- bl FreeToHeap
- bl ErrorHandling
- b _021D96F8
-_021D96F4:
- bl ErrorHandling
-_021D96F8:
- add r0, r4, #1
- lsl r0, r0, #0x18
- lsr r4, r0, #0x18
- cmp r4, #4
- blo _021D96C6
- ldr r0, [sp, #0x10]
- bl NARC_dtor
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x4c
- str r0, [sp, #0xc]
- ldr r2, [r5, #0xc]
- mov r0, #0x80
- mov r1, #0x1c
- mov r3, #3
- bl FUN_0200687C
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x4c
- str r0, [sp, #0xc]
- ldr r2, [r5, #0xc]
- mov r0, #0x80
- mov r1, #0x1a
- mov r3, #3
- bl FUN_020068C8
- mov r1, #0
- str r1, [sp]
- ldr r0, [r5, #0x2c]
- mov r2, #0xa
- add r3, r1, #0
- bl MOD63_021D9EA8
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x4c
- str r0, [sp, #0xc]
- ldr r2, [r5, #0xc]
- mov r0, #0x80
- mov r1, #0x11
- mov r3, #4
- bl FUN_0200687C
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x4c
- str r0, [sp, #0xc]
- ldr r2, [r5, #0xc]
- mov r0, #0x80
- mov r1, #0xf
- mov r3, #4
- bl FUN_020068C8
- mov r0, #1
- lsl r0, r0, #8
- str r0, [sp]
- mov r0, #0x4c
- str r0, [sp, #4]
- mov r0, #0x80
- mov r1, #0x10
- mov r2, #4
- mov r3, #0
- bl FUN_02006930
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x4c
- str r0, [sp, #0xc]
- ldr r2, [r5, #0xc]
- mov r0, #0x80
- mov r1, #0x1b
- mov r3, #1
- bl FUN_0200687C
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x4c
- str r0, [sp, #0xc]
- ldr r2, [r5, #0xc]
- mov r0, #0x80
- mov r1, #0x19
- mov r3, #1
- bl FUN_020068C8
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x4c
- str r0, [sp, #0xc]
- ldr r2, [r5, #0xc]
- mov r0, #0x80
- mov r1, #0x18
- mov r3, #2
- bl FUN_020068C8
- ldr r0, [r5, #0x10]
- bl MOD63_021DA6E8
- ldr r0, [r5, #0x10]
- bl MOD63_021DAA5C
- ldr r0, [r5, #0x10]
- ldr r1, [r5, #0x14]
- bl MOD63_021DABCC
- mov r0, #0xe
- mov r1, #0
- bl FUN_0201E6E4
- mov r0, #1
- mov r1, #0
- bl FUN_0201E74C
- mov r0, #0
- bl FUN_0200E394
- mov r0, #1
- bl FUN_0200E394
- mov r0, #1
- strb r0, [r5, #3]
- add sp, #0x28
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_021D980C: .word MOD63_021DBB2C
- thumb_func_end MOD63_021D96A0
-
- thumb_func_start MOD63_021D9810
-MOD63_021D9810: ; 0x021D9810
- push {r4, r5, r6, r7, lr}
- sub sp, #0x2c
- add r5, r0, #0
- mov r0, #0x80
- mov r1, #0x46
- mov r2, #0x4c
- bl AllocAndReadWholeNarcMemberByIdPair
- str r0, [r5, #0x3c]
- bl FUN_020BC0FC
- str r0, [r5, #0x40]
- bl FUN_0201B3C4
- cmp r0, #0
- bne _021D9834
- bl ErrorHandling
-_021D9834:
- ldr r0, [r5, #0x40]
- ldr r0, [r0, #0x14]
- cmp r0, #0
- bne _021D9840
- bl ErrorHandling
-_021D9840:
- ldr r2, [r5, #0x40]
- ldr r0, [r5, #0x3c]
- ldr r1, [r2, #0x14]
- add r1, r2, r1
- sub r1, r1, r0
- bl FUN_02016B44
- mov r0, #0x80
- mov r1, #0x4c
- bl NARC_ctor
- str r0, [sp, #0xc]
- add r0, r5, #0
- str r0, [sp, #0x10]
- add r0, #0x48
- mov r7, #0
- str r0, [sp, #0x10]
-_021D9862:
- ldr r1, _021D9964 ; =MOD63_021DBB90
- lsl r2, r7, #2
- ldr r1, [r1, r2]
- mov r0, #0x58
- add r6, r7, #0
- mul r6, r0
- ldr r0, [sp, #0xc]
- mov r2, #0x4c
- bl NARC_AllocAndReadWholeMember
- add r1, r5, r6
- add r1, #0x9c
- str r0, [r1]
- add r0, r5, r6
- add r0, #0x9c
- ldr r0, [r0]
- ldr r1, [r5, #0x40]
- bl FUN_0201B3A8
- cmp r0, #0
- bne _021D9890
- bl ErrorHandling
-_021D9890:
- add r0, r5, r6
- add r0, #0x9c
- ldr r0, [r0]
- bl FUN_020BC13C
- ldrb r0, [r0, #9]
- cmp r0, #1
- beq _021D98A4
- bl ErrorHandling
-_021D98A4:
- add r0, r5, r6
- add r0, #0x9c
- ldr r0, [r0]
- bl FUN_020BC13C
- ldrh r1, [r0, #0xe]
- add r1, r0, r1
- ldr r1, [r1, #0xc]
- add r4, r0, r1
- bne _021D98BC
- bl ErrorHandling
-_021D98BC:
- ldr r0, [sp, #0x10]
- add r1, r4, #0
- add r0, r0, r6
- bl FUN_020B80B4
- add r0, r4, #0
- mov r1, #0
- mov r2, #0x40
- bl FUN_020BC094
- add r0, r4, #0
- mov r1, #0
- mov r2, #0x80
- bl FUN_020BC094
- mov r2, #2
- add r0, r4, #0
- mov r1, #0
- lsl r2, r2, #8
- bl FUN_020BC094
- mov r2, #1
- add r0, r4, #0
- mov r1, #0
- lsl r2, r2, #0xa
- bl FUN_020BC094
- add r0, r4, #0
- mov r1, #0
- mov r2, #0xf
- bl FUN_020BC02C
- add r0, r7, #1
- lsl r0, r0, #0x18
- lsr r7, r0, #0x18
- cmp r7, #6
- blo _021D9862
- ldr r0, [sp, #0xc]
- bl NARC_dtor
- mov r0, #0x4c
- bl FUN_0201EB64
- add r3, sp, #0x20
- ldr r4, _021D9968 ; =MOD63_021DBAE4
- str r0, [r5, #0x44]
- ldmia r4!, {r0, r1}
- add r2, r3, #0
- stmia r3!, {r0, r1}
- ldr r0, [r4]
- ldr r1, _021D996C ; =0x0029AEC1
- str r0, [r3]
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- ldr r0, [r5, #0x44]
- ldr r3, _021D9970 ; =0x000005C1
- str r0, [sp, #8]
- add r0, r2, #0
- ldr r2, _021D9974 ; =MOD63_021DBB80
- bl FUN_0201ECA8
- ldr r0, _021D9978 ; =0x00000981
- ldr r1, [r5, #0x44]
- bl FUN_0201EEF0
- ldr r4, _021D997C ; =MOD63_021DBB08
- add r3, sp, #0x14
- ldmia r4!, {r0, r1}
- add r2, r3, #0
- stmia r3!, {r0, r1}
- ldr r0, [r4]
- str r0, [r3]
- ldr r1, [r5, #0x44]
- add r0, r2, #0
- bl FUN_0201EF70
- ldr r0, [r5, #0x44]
- bl FUN_0201EB8C
- mov r0, #1
- strb r0, [r5, #4]
- add sp, #0x2c
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_021D9964: .word MOD63_021DBB90
-_021D9968: .word MOD63_021DBAE4
-_021D996C: .word 0x0029AEC1
-_021D9970: .word 0x000005C1
-_021D9974: .word MOD63_021DBB80
-_021D9978: .word 0x00000981
-_021D997C: .word MOD63_021DBB08
- thumb_func_end MOD63_021D9810
-
- thumb_func_start MOD63_021D9980
-MOD63_021D9980: ; 0x021D9980
- push {r4, r5, r6, r7, lr}
- sub sp, #0x3c
- ldr r4, _021D99E4 ; =MOD63_021DBD4C
- add r5, r0, #0
- add r3, sp, #0x18
- mov r2, #4
-_021D998C:
- ldmia r4!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _021D998C
- ldr r0, [r4]
- add r2, sp, #0xc
- str r0, [r3]
- ldr r3, _021D99E8 ; =MOD63_021DBAFC
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldr r0, [r3]
- add r1, sp, #0
- str r0, [r2]
- mov r0, #0
- str r0, [r1]
- str r0, [r1, #4]
- str r0, [r1, #8]
- bl FUN_020222AC
- bl FUN_0201EBA4
- mov r4, #0
- add r5, #0x48
- add r7, sp, #0
- mov r6, #0x58
-_021D99BE:
- add r0, r4, #0
- mul r0, r6
- add r0, r5, r0
- add r1, r7, #0
- add r2, sp, #0x18
- add r3, sp, #0xc
- bl FUN_0201B26C
- add r0, r4, #1
- lsl r0, r0, #0x18
- lsr r4, r0, #0x18
- cmp r4, #6
- blo _021D99BE
- mov r0, #0
- mov r1, #1
- bl FUN_020222B4
- add sp, #0x3c
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_021D99E4: .word MOD63_021DBD4C
-_021D99E8: .word MOD63_021DBAFC
- thumb_func_end MOD63_021D9980
-
- thumb_func_start MOD63_021D99EC
-MOD63_021D99EC: ; 0x021D99EC
- push {r4, r5, lr}
- sub sp, #0xc
- add r4, r0, #0
- ldrb r0, [r4, #6]
- add r5, r1, #0
- cmp r0, #0
- bne _021D9A00
- ldr r0, [r4, #0x14]
- bl MOD63_021DB38C
-_021D9A00:
- ldrb r0, [r4, #6]
- ldrb r1, [r4, #7]
- add r0, r0, #1
- bl _s32_div_f
- strb r1, [r4, #6]
- ldrb r0, [r4, #1]
- cmp r0, #0x11
- bhi _021D9B0C
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_021D9A1E: ; jump table
- .short _021D9A42 - _021D9A1E - 2 ; case 0
- .short _021D9A6A - _021D9A1E - 2 ; case 1
- .short _021D9A7A - _021D9A1E - 2 ; case 2
- .short _021D9AB8 - _021D9A1E - 2 ; case 3
- .short _021D9AEE - _021D9A1E - 2 ; case 4
- .short _021D9B3E - _021D9A1E - 2 ; case 5
- .short _021D9B72 - _021D9A1E - 2 ; case 6
- .short _021D9BC8 - _021D9A1E - 2 ; case 7
- .short _021D9C04 - _021D9A1E - 2 ; case 8
- .short _021D9C70 - _021D9A1E - 2 ; case 9
- .short _021D9CB4 - _021D9A1E - 2 ; case 10
- .short _021D9CFC - _021D9A1E - 2 ; case 11
- .short _021D9D38 - _021D9A1E - 2 ; case 12
- .short _021D9D94 - _021D9A1E - 2 ; case 13
- .short _021D9DF8 - _021D9A1E - 2 ; case 14
- .short _021D9E48 - _021D9A1E - 2 ; case 15
- .short _021D9E84 - _021D9A1E - 2 ; case 16
- .short _021D9E9A - _021D9A1E - 2 ; case 17
-_021D9A42:
- mov r0, #0xa
- lsl r0, r0, #6
- cmp r5, r0
- blt _021D9B0C
- mov r0, #1
- add r1, r0, #0
- bl FUN_0201E74C
- mov r0, #2
- str r0, [sp]
- mov r0, #8
- mov r1, #0
- mov r2, #0x10
- mov r3, #1
- bl FUN_0200A208
- ldrb r0, [r4, #1]
- add r0, r0, #1
- strb r0, [r4, #1]
- b _021D9EA0
-_021D9A6A:
- ldr r0, [r4, #0x10]
- mov r1, #1
- bl MOD63_021DACA0
- ldrb r0, [r4, #1]
- add r0, r0, #1
- strb r0, [r4, #1]
- b _021D9EA0
-_021D9A7A:
- ldr r0, _021D9DCC ; =0x000002E9
- cmp r5, r0
- bne _021D9A88
- mov r0, #0x10
- mov r1, #1
- bl FUN_0201E74C
-_021D9A88:
- ldr r0, _021D9DD0 ; =0x000003C5
- cmp r5, r0
- blt _021D9B0C
- mov r0, #7
- mov r1, #1
- bl FUN_0201E6E4
- mov r0, #0x12
- str r0, [sp]
- mov r1, #1
- str r1, [sp, #4]
- mov r0, #0x4c
- str r0, [sp, #8]
- ldr r3, _021D9DD4 ; =0x00007FFF
- mov r0, #3
- add r2, r1, #0
- bl FUN_0200E1D0
- mov r0, #0x10
- strb r0, [r4, #7]
- ldrb r0, [r4, #1]
- add r0, r0, #1
- strb r0, [r4, #1]
- b _021D9EA0
-_021D9AB8:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD63_021D9F38
- ldr r0, [r4, #0x10]
- add r1, r5, #0
- bl MOD63_021DAD6C
- ldr r0, _021D9DD8 ; =0x00000631
- cmp r5, r0
- blt _021D9B0C
- mov r0, #0x12
- str r0, [sp]
- mov r0, #1
- str r0, [sp, #4]
- mov r0, #0x4c
- mov r1, #0
- str r0, [sp, #8]
- ldr r3, _021D9DD4 ; =0x00007FFF
- mov r0, #3
- add r2, r1, #0
- bl FUN_0200E1D0
- ldrb r0, [r4, #1]
- add r0, r0, #1
- strb r0, [r4, #1]
- b _021D9EA0
-_021D9AEE:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD63_021D9F38
- ldr r0, [r4, #0x10]
- add r1, r5, #0
- bl MOD63_021DAD6C
- bl FUN_0200E308
- cmp r0, #0
- beq _021D9B0C
- ldr r0, _021D9DDC ; =0x0000064A
- cmp r5, r0
- bge _021D9B0E
-_021D9B0C:
- b _021D9EA0
-_021D9B0E:
- ldr r0, [r4, #0x10]
- mov r1, #0
- mov r2, #1
- bl MOD63_021DAC24
- bl MOD63_021D8CC0
- mov r0, #0
- strb r0, [r4, #5]
- mov r0, #0x12
- str r0, [sp]
- mov r1, #1
- str r1, [sp, #4]
- mov r0, #0x4c
- str r0, [sp, #8]
- ldr r3, _021D9DD4 ; =0x00007FFF
- mov r0, #3
- add r2, r1, #0
- bl FUN_0200E1D0
- ldrb r0, [r4, #1]
- add r0, r0, #1
- strb r0, [r4, #1]
- b _021D9EA0
-_021D9B3E:
- add r0, r4, #0
- bl MOD63_021D9EE0
- bl FUN_0200E308
- cmp r0, #0
- beq _021D9C12
- ldr r0, _021D9DE0 ; =0x000006B3
- cmp r5, r0
- blt _021D9C12
- mov r0, #4
- str r0, [sp]
- mov r1, #0
- mov r0, #1
- str r0, [sp, #4]
- mov r0, #0x4c
- str r0, [sp, #8]
- mov r0, #3
- add r2, r1, #0
- add r3, r1, #0
- bl FUN_0200E1D0
- ldrb r0, [r4, #1]
- add r0, r0, #1
- strb r0, [r4, #1]
- b _021D9EA0
-_021D9B72:
- bl FUN_0200E308
- cmp r0, #0
- beq _021D9C12
- mov r1, #0
- ldr r0, _021D9DE4 ; =0x04000050
- mov r2, #0x38
- add r3, r1, #0
- str r1, [sp]
- bl G2x_SetBlendAlpha_
- mov r0, #6
- mov r1, #0
- bl FUN_0201E6E4
- mov r0, #8
- mov r1, #1
- bl FUN_0201E6E4
- mov r0, #1
- add r1, r0, #0
- bl FUN_0201E6E4
- mov r1, #0
- ldr r0, [r4, #0x10]
- add r2, r1, #0
- bl MOD63_021DAD18
- mov r0, #4
- str r0, [sp]
- mov r1, #1
- str r1, [sp, #4]
- mov r0, #0x4c
- str r0, [sp, #8]
- mov r0, #3
- add r2, r1, #0
- mov r3, #0
- bl FUN_0200E1D0
- ldrb r0, [r4, #1]
- add r0, r0, #1
- strb r0, [r4, #1]
- b _021D9EA0
-_021D9BC8:
- add r0, r4, #0
- bl MOD63_021D9F20
- bl FUN_0200E308
- cmp r0, #0
- beq _021D9C12
- ldr r0, [r4, #0x18]
- mov r1, #0
- add r2, r5, #0
- bl MOD63_021DB5CC
- cmp r0, #0
- beq _021D9C12
- mov r0, #4
- str r0, [sp]
- mov r1, #0
- mov r0, #1
- str r0, [sp, #4]
- mov r0, #0x4c
- str r0, [sp, #8]
- mov r0, #3
- add r2, r1, #0
- add r3, r1, #0
- bl FUN_0200E1D0
- ldrb r0, [r4, #1]
- add r0, r0, #1
- strb r0, [r4, #1]
- b _021D9EA0
-_021D9C04:
- bl FUN_0200E308
- cmp r0, #0
- beq _021D9C12
- ldr r0, _021D9DE8 ; =0x00000721
- cmp r5, r0
- bge _021D9C14
-_021D9C12:
- b _021D9EA0
-_021D9C14:
- ldr r0, [r4, #0x10]
- mov r1, #1
- bl MOD63_021DACA0
- mov r1, #0
- ldr r0, [r4, #0x10]
- add r2, r1, #0
- bl MOD63_021DAC24
- mov r1, #1
- ldr r0, [r4, #0x10]
- add r2, r1, #0
- bl MOD63_021DAC24
- ldr r0, [r4, #0x10]
- mov r1, #0
- mov r2, #1
- bl MOD63_021DAD18
- mov r1, #0
- str r1, [sp]
- ldr r0, [r4, #0x38]
- mov r2, #7
- add r3, r1, #0
- bl MOD63_021D9EA8
- ldr r0, [r4, #0x10]
- mov r1, #2
- mov r2, #1
- bl MOD63_021DAC24
- mov r0, #4
- str r0, [sp]
- mov r1, #1
- str r1, [sp, #4]
- mov r0, #0x4c
- str r0, [sp, #8]
- mov r0, #3
- add r2, r1, #0
- mov r3, #0
- bl FUN_0200E1D0
- ldrb r0, [r4, #1]
- add r0, r0, #1
- strb r0, [r4, #1]
- b _021D9EA0
-_021D9C70:
- add r0, r4, #0
- bl MOD63_021D9F20
- bl FUN_0200E308
- cmp r0, #0
- beq _021D9D46
- ldr r0, _021D9DE8 ; =0x00000721
- cmp r5, r0
- blt _021D9D46
- ldr r0, [r4, #0x10]
- bl MOD63_021DACC0
- cmp r0, #0
- beq _021D9D46
- ldr r0, _021D9DEC ; =0x00000785
- cmp r5, r0
- blt _021D9D46
- mov r0, #4
- str r0, [sp]
- mov r1, #0
- mov r0, #1
- str r0, [sp, #4]
- mov r0, #0x4c
- str r0, [sp, #8]
- mov r0, #3
- add r2, r1, #0
- add r3, r1, #0
- bl FUN_0200E1D0
- ldrb r0, [r4, #1]
- add r0, r0, #1
- strb r0, [r4, #1]
- b _021D9EA0
-_021D9CB4:
- bl FUN_0200E308
- cmp r0, #0
- beq _021D9D46
- ldr r0, [r4, #0x10]
- mov r1, #1
- mov r2, #0
- bl MOD63_021DAD18
- mov r1, #0
- str r1, [sp]
- ldr r0, [r4, #0x30]
- mov r2, #7
- add r3, r1, #0
- bl MOD63_021D9EA8
- ldr r0, [r4, #0x10]
- mov r1, #2
- mov r2, #0
- bl MOD63_021DAC24
- mov r0, #4
- str r0, [sp]
- mov r1, #1
- str r1, [sp, #4]
- mov r0, #0x4c
- str r0, [sp, #8]
- mov r0, #3
- add r2, r1, #0
- mov r3, #0
- bl FUN_0200E1D0
- ldrb r0, [r4, #1]
- add r0, r0, #1
- strb r0, [r4, #1]
- b _021D9EA0
-_021D9CFC:
- add r0, r4, #0
- bl MOD63_021D9F20
- bl FUN_0200E308
- cmp r0, #0
- beq _021D9D46
- ldr r0, [r4, #0x18]
- mov r1, #1
- add r2, r5, #0
- bl MOD63_021DB5CC
- cmp r0, #0
- beq _021D9D46
- mov r0, #4
- str r0, [sp]
- mov r1, #0
- mov r0, #1
- str r0, [sp, #4]
- mov r0, #0x4c
- str r0, [sp, #8]
- mov r0, #3
- add r2, r1, #0
- add r3, r1, #0
- bl FUN_0200E1D0
- ldrb r0, [r4, #1]
- add r0, r0, #1
- strb r0, [r4, #1]
- b _021D9EA0
-_021D9D38:
- bl FUN_0200E308
- cmp r0, #0
- beq _021D9D46
- ldr r0, _021D9DF0 ; =0x000007F8
- cmp r5, r0
- bgt _021D9D48
-_021D9D46:
- b _021D9EA0
-_021D9D48:
- mov r1, #1
- ldr r0, [r4, #0x10]
- add r2, r1, #0
- bl MOD63_021DAD18
- mov r0, #4
- mov r1, #1
- bl FUN_0201E6E4
- ldr r0, [r4, #0x10]
- mov r1, #0
- mov r2, #1
- bl MOD63_021DAC24
- ldr r0, [r4, #0x10]
- bl MOD63_021DAC6C
- ldr r0, [r4, #0x10]
- mov r1, #4
- bl MOD63_021DAC80
- mov r0, #4
- str r0, [sp]
- mov r1, #1
- str r1, [sp, #4]
- mov r0, #0x4c
- str r0, [sp, #8]
- mov r0, #3
- add r2, r1, #0
- mov r3, #0
- bl FUN_0200E1D0
- mov r0, #0
- str r0, [r4, #8]
- ldrb r0, [r4, #1]
- add r0, r0, #1
- strb r0, [r4, #1]
- b _021D9EA0
-_021D9D94:
- add r0, r4, #0
- bl MOD63_021D9F00
- bl FUN_0200E308
- cmp r0, #0
- beq _021D9EA0
- ldr r0, _021D9DF4 ; =0x00000861
- cmp r5, r0
- ble _021D9EA0
- mov r0, #4
- str r0, [sp]
- mov r1, #0
- mov r0, #1
- str r0, [sp, #4]
- mov r0, #0x4c
- str r0, [sp, #8]
- mov r0, #3
- add r2, r1, #0
- add r3, r1, #0
- bl FUN_0200E1D0
- mov r0, #0
- str r0, [r4, #8]
- ldrb r0, [r4, #1]
- add r0, r0, #1
- strb r0, [r4, #1]
- b _021D9EA0
- .align 2, 0
-_021D9DCC: .word 0x000002E9
-_021D9DD0: .word 0x000003C5
-_021D9DD4: .word 0x00007FFF
-_021D9DD8: .word 0x00000631
-_021D9DDC: .word 0x0000064A
-_021D9DE0: .word 0x000006B3
-_021D9DE4: .word 0x04000050
-_021D9DE8: .word 0x00000721
-_021D9DEC: .word 0x00000785
-_021D9DF0: .word 0x000007F8
-_021D9DF4: .word 0x00000861
-_021D9DF8:
- bl FUN_0200E308
- cmp r0, #0
- beq _021D9EA0
- mov r1, #0
- ldr r0, [r4, #0x10]
- add r2, r1, #0
- bl MOD63_021DAD18
- ldr r0, [r4, #0x10]
- mov r1, #1
- mov r2, #0
- bl MOD63_021DAD18
- mov r1, #0
- str r1, [sp]
- ldr r0, [r4, #0x34]
- mov r2, #7
- add r3, r1, #0
- bl MOD63_021D9EA8
- mov r0, #4
- mov r1, #0
- bl FUN_0201E6E4
- mov r0, #4
- str r0, [sp]
- mov r1, #1
- str r1, [sp, #4]
- mov r0, #0x4c
- str r0, [sp, #8]
- mov r0, #3
- add r2, r1, #0
- mov r3, #0
- bl FUN_0200E1D0
- ldrb r0, [r4, #1]
- add r0, r0, #1
- strb r0, [r4, #1]
- b _021D9EA0
-_021D9E48:
- add r0, r4, #0
- bl MOD63_021D9F20
- bl FUN_0200E308
- cmp r0, #0
- beq _021D9EA0
- ldr r0, [r4, #0x18]
- mov r1, #2
- add r2, r5, #0
- bl MOD63_021DB5CC
- cmp r0, #0
- beq _021D9EA0
- mov r0, #0x12
- str r0, [sp]
- mov r0, #1
- str r0, [sp, #4]
- mov r0, #0x4c
- str r0, [sp, #8]
- mov r0, #0
- add r1, r0, #0
- add r2, r0, #0
- add r3, r0, #0
- bl FUN_0200E1D0
- ldrb r0, [r4, #1]
- add r0, r0, #1
- strb r0, [r4, #1]
- b _021D9EA0
-_021D9E84:
- add r0, r4, #0
- bl MOD63_021D9F20
- bl FUN_0200E308
- cmp r0, #0
- beq _021D9EA0
- ldrb r0, [r4, #1]
- add r0, r0, #1
- strb r0, [r4, #1]
- b _021D9EA0
-_021D9E9A:
- add sp, #0xc
- mov r0, #1
- pop {r4, r5, pc}
-_021D9EA0:
- mov r0, #0
- add sp, #0xc
- pop {r4, r5, pc}
- .align 2, 0
- thumb_func_end MOD63_021D99EC
-
- thumb_func_start MOD63_021D9EA8
-MOD63_021D9EA8: ; 0x021D9EA8
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- lsl r7, r2, #5
- add r6, r1, #0
- ldr r0, [r5, #0xc]
- add r1, r7, #0
- add r4, r3, #0
- bl DC_FlushRange
- ldr r1, [r5, #0xc]
- cmp r6, #0
- bne _021D9ED0
- lsl r0, r4, #1
- add r0, r1, r0
- add r1, sp, #8
- ldrb r1, [r1, #0x10]
- add r2, r7, #0
- bl GX_LoadBGPltt
- pop {r3, r4, r5, r6, r7, pc}
-_021D9ED0:
- lsl r0, r4, #1
- add r0, r1, r0
- add r1, sp, #8
- ldrb r1, [r1, #0x10]
- add r2, r7, #0
- bl GXS_LoadBGPltt
- pop {r3, r4, r5, r6, r7, pc}
- thumb_func_end MOD63_021D9EA8
-
- thumb_func_start MOD63_021D9EE0
-MOD63_021D9EE0: ; 0x021D9EE0
- push {r4, lr}
- add r4, r0, #0
- ldr r1, [r4, #8]
- add r0, r1, #1
- str r0, [r4, #8]
- cmp r1, #0x18
- ble _021D9EFE
- mov r2, #4
- ldr r0, [r4, #0xc]
- mov r1, #1
- sub r3, r2, #5
- bl FUN_020179E0
- mov r0, #0
- str r0, [r4, #8]
-_021D9EFE:
- pop {r4, pc}
- thumb_func_end MOD63_021D9EE0
-
- thumb_func_start MOD63_021D9F00
-MOD63_021D9F00: ; 0x021D9F00
- push {r4, lr}
- add r4, r0, #0
- ldr r1, [r4, #8]
- add r0, r1, #1
- str r0, [r4, #8]
- cmp r1, #3
- ble _021D9F1E
- mov r2, #1
- ldr r0, [r4, #0xc]
- mov r1, #2
- add r3, r2, #0
- bl FUN_020179E0
- mov r0, #0
- str r0, [r4, #8]
-_021D9F1E:
- pop {r4, pc}
- thumb_func_end MOD63_021D9F00
-
- thumb_func_start MOD63_021D9F20
-MOD63_021D9F20: ; 0x021D9F20
- push {r4, lr}
- add r4, r0, #0
- mov r2, #1
- add r3, r2, #0
- ldr r0, [r4, #0xc]
- mov r1, #3
- sub r3, #0x11
- bl FUN_020179E0
- mov r0, #0
- str r0, [r4, #8]
- pop {r4, pc}
- thumb_func_end MOD63_021D9F20
-
- thumb_func_start MOD63_021D9F38
-MOD63_021D9F38: ; 0x021D9F38
- push {r4, r5, r6, lr}
- sub sp, #0x50
- add r4, r0, #0
- add r5, r1, #0
- add r0, sp, #0x44
- mov r1, #0
- str r1, [r0]
- str r1, [r0, #4]
- str r1, [r0, #8]
- ldr r1, _021DA078 ; =0x000004AB
- cmp r5, r1
- bgt _021D9FE2
- ldr r0, [r4, #0x44]
- bl FUN_0201F008
- ldr r1, _021DA07C ; =0x000005C1
- sub r0, #0x20
- cmp r0, r1
- ble _021D9F68
- ldr r0, _021DA080 ; =0x0000FFE0
- ldr r1, [r4, #0x44]
- bl FUN_0201EF2C
- b _021D9F70
-_021D9F68:
- add r0, r1, #0
- ldr r1, [r4, #0x44]
- bl FUN_0201EEF0
-_021D9F70:
- mov r0, #2
- ldr r1, [sp, #0x4c]
- lsl r0, r0, #0xc
- sub r0, r1, r0
- str r0, [sp, #0x4c]
- ldr r1, [r4, #0x44]
- add r0, sp, #0x44
- bl FUN_0201EF70
- ldr r0, _021DA078 ; =0x000004AB
- cmp r5, r0
- bne _021DA074
- ldr r5, _021DA084 ; =MOD63_021DBAD8
- add r3, sp, #0x38
- ldmia r5!, {r0, r1}
- add r2, r3, #0
- stmia r3!, {r0, r1}
- ldr r0, [r5]
- ldr r1, _021DA088 ; =0x0029AEC1
- str r0, [r3]
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- ldr r0, [r4, #0x44]
- ldr r3, _021DA07C ; =0x000005C1
- str r0, [sp, #8]
- add r0, r2, #0
- ldr r2, _021DA08C ; =MOD63_021DBB80
- bl FUN_0201ECA8
- ldr r5, _021DA090 ; =MOD63_021DBB20
- add r3, sp, #0x2c
- ldmia r5!, {r0, r1}
- add r2, r3, #0
- stmia r3!, {r0, r1}
- ldr r0, [r5]
- str r0, [r3]
- ldr r1, [r4, #0x44]
- add r0, r2, #0
- bl FUN_0201EF70
- ldr r2, _021DA094 ; =MOD63_021DBAC8
- add r1, sp, #0xc
- ldrh r3, [r2]
- add r0, sp, #0xc
- strh r3, [r1]
- ldrh r3, [r2, #2]
- strh r3, [r1, #2]
- ldrh r3, [r2, #4]
- ldrh r2, [r2, #6]
- strh r3, [r1, #4]
- strh r2, [r1, #6]
- ldr r1, [r4, #0x44]
- bl FUN_0201EFB4
- add sp, #0x50
- pop {r4, r5, r6, pc}
-_021D9FE2:
- add r1, #0xd2
- cmp r5, r1
- bgt _021DA044
- mov r1, #1
- ldr r2, [sp, #0x44]
- lsl r1, r1, #0xc
- add r1, r2, r1
- str r1, [sp, #0x44]
- ldr r1, [r4, #0x44]
- bl FUN_0201EF70
- ldr r3, _021DA098 ; =0x0000057D
- cmp r5, r3
- bne _021DA074
- ldr r6, _021DA09C ; =MOD63_021DBB14
- add r5, sp, #0x20
- ldmia r6!, {r0, r1}
- add r2, r5, #0
- stmia r5!, {r0, r1}
- ldr r0, [r6]
- ldr r1, _021DA088 ; =0x0029AEC1
- str r0, [r5]
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- ldr r0, [r4, #0x44]
- add r3, #0x44
- str r0, [sp, #8]
- add r0, r2, #0
- ldr r2, _021DA08C ; =MOD63_021DBB80
- bl FUN_0201ECA8
- ldr r0, _021DA07C ; =0x000005C1
- ldr r1, [r4, #0x44]
- bl FUN_0201EEF0
- ldr r5, _021DA0A0 ; =MOD63_021DBAF0
- add r3, sp, #0x14
- ldmia r5!, {r0, r1}
- add r2, r3, #0
- stmia r3!, {r0, r1}
- ldr r0, [r5]
- str r0, [r3]
- ldr r1, [r4, #0x44]
- add r0, r2, #0
- bl FUN_0201EF70
- add sp, #0x50
- pop {r4, r5, r6, pc}
-_021DA044:
- ldr r0, _021DA0A4 ; =0x00000618
- cmp r5, r0
- blt _021DA062
- ldr r0, [r4, #0x44]
- bl FUN_0201F008
- mov r1, #1
- add r0, #0x20
- lsl r1, r1, #0xe
- cmp r0, r1
- bge _021DA062
- ldr r1, [r4, #0x44]
- mov r0, #0x20
- bl FUN_0201EF2C
-_021DA062:
- mov r0, #1
- ldr r1, [sp, #0x4c]
- lsl r0, r0, #0xe
- add r0, r1, r0
- str r0, [sp, #0x4c]
- ldr r1, [r4, #0x44]
- add r0, sp, #0x44
- bl FUN_0201EF70
-_021DA074:
- add sp, #0x50
- pop {r4, r5, r6, pc}
- .align 2, 0
-_021DA078: .word 0x000004AB
-_021DA07C: .word 0x000005C1
-_021DA080: .word 0x0000FFE0
-_021DA084: .word MOD63_021DBAD8
-_021DA088: .word 0x0029AEC1
-_021DA08C: .word MOD63_021DBB80
-_021DA090: .word MOD63_021DBB20
-_021DA094: .word MOD63_021DBAC8
-_021DA098: .word 0x0000057D
-_021DA09C: .word MOD63_021DBB14
-_021DA0A0: .word MOD63_021DBAF0
-_021DA0A4: .word 0x00000618
- thumb_func_end MOD63_021D9F38
-
- thumb_func_start MOD63_021DA0A8
-MOD63_021DA0A8: ; 0x021DA0A8
- push {r3, r4, r5, lr}
- add r4, r0, #0
- ldr r0, [r4, #8]
- mov r5, #0xa3
- lsl r5, r5, #2
- cmp r0, #0
- beq _021DA0BA
- mov r0, #3
- strb r0, [r4, r5]
-_021DA0BA:
- ldrb r0, [r4, r5]
- cmp r0, #3
- bhi _021DA116
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_021DA0CC: ; jump table
- .short _021DA0D4 - _021DA0CC - 2 ; case 0
- .short _021DA0E2 - _021DA0CC - 2 ; case 1
- .short _021DA0F4 - _021DA0CC - 2 ; case 2
- .short _021DA10C - _021DA0CC - 2 ; case 3
-_021DA0D4:
- add r0, r4, #0
- bl MOD63_021DA11C
- ldrb r0, [r4, r5]
- add r0, r0, #1
- strb r0, [r4, r5]
- b _021DA116
-_021DA0E2:
- mov r0, #0xa3
- lsl r0, r0, #2
- add r0, r4, r0
- bl MOD63_021DA158
- ldrb r0, [r4, r5]
- add r0, r0, #1
- strb r0, [r4, r5]
- b _021DA116
-_021DA0F4:
- mov r0, #0xa3
- lsl r0, r0, #2
- ldr r1, [r4, #4]
- add r0, r4, r0
- bl MOD63_021DA30C
- cmp r0, #0
- beq _021DA116
- ldrb r0, [r4, r5]
- add r0, r0, #1
- strb r0, [r4, r5]
- b _021DA116
-_021DA10C:
- add r0, r4, #0
- bl MOD63_021DA418
- mov r0, #1
- pop {r3, r4, r5, pc}
-_021DA116:
- mov r0, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
- thumb_func_end MOD63_021DA0A8
-
- thumb_func_start MOD63_021DA11C
-MOD63_021DA11C: ; 0x021DA11C
- push {r4, lr}
- add r4, r0, #0
- bl MOD63_021D88D0
- add r0, r4, #0
- bl MOD63_021D8ADC
- mov r0, #0xa6
- ldr r1, [r4, #0xc]
- lsl r0, r0, #2
- str r1, [r4, r0]
- mov r0, #0
- add r1, r0, #0
- bl FUN_0200E3A0
- mov r0, #1
- mov r1, #0
- bl FUN_0200E3A0
- ldr r0, _021DA150 ; =0x04000050
- mov r1, #0
- strh r1, [r0]
- ldr r0, _021DA154 ; =0x0000028E
- mov r1, #1
- strb r1, [r4, r0]
- pop {r4, pc}
- .align 2, 0
-_021DA150: .word 0x04000050
-_021DA154: .word 0x0000028E
- thumb_func_end MOD63_021DA11C
-
- thumb_func_start MOD63_021DA158
-MOD63_021DA158: ; 0x021DA158
- push {r3, r4, r5, lr}
- sub sp, #0x20
- add r4, r0, #0
- mov r0, #0x80
- mov r1, #0x4c
- bl NARC_ctor
- mov r1, #0x35
- mov r2, #0x4c
- add r5, r0, #0
- bl NARC_AllocAndReadWholeMember
- str r0, [r4, #0x10]
- cmp r0, #0
- beq _021DA18E
- add r1, r4, #0
- add r1, #0x14
- bl FUN_020B0138
- cmp r0, #0
- bne _021DA192
- ldr r0, [r4, #0x14]
- bl FreeToHeap
- bl ErrorHandling
- b _021DA192
-_021DA18E:
- bl ErrorHandling
-_021DA192:
- add r0, r5, #0
- bl NARC_dtor
- mov r1, #0
- str r1, [sp]
- ldr r0, [r4, #0x14]
- mov r2, #9
- add r3, r1, #0
- bl MOD63_021D9EA8
- mov r3, #0
- str r3, [sp]
- ldr r0, [r4, #0x14]
- mov r1, #1
- mov r2, #9
- bl MOD63_021D9EA8
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x4c
- str r0, [sp, #0xc]
- ldr r2, [r4, #0xc]
- mov r0, #0x80
- mov r1, #0x36
- mov r3, #1
- bl FUN_0200687C
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x4c
- str r0, [sp, #0xc]
- ldr r2, [r4, #0xc]
- mov r0, #0x80
- mov r1, #0x3b
- mov r3, #1
- bl FUN_020068C8
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x4c
- str r0, [sp, #0xc]
- ldr r2, [r4, #0xc]
- mov r0, #0x80
- mov r1, #0x38
- mov r3, #2
- bl FUN_0200687C
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x4c
- str r0, [sp, #0xc]
- ldr r2, [r4, #0xc]
- mov r0, #0x80
- mov r1, #0x3d
- mov r3, #2
- bl FUN_020068C8
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x4c
- str r0, [sp, #0xc]
- ldr r2, [r4, #0xc]
- mov r0, #0x80
- mov r1, #0x39
- mov r3, #3
- bl FUN_0200687C
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x4c
- str r0, [sp, #0xc]
- ldr r2, [r4, #0xc]
- mov r0, #0x80
- mov r1, #0x3e
- mov r3, #3
- bl FUN_020068C8
- mov r3, #0
- str r3, [sp]
- str r3, [sp, #4]
- str r3, [sp, #8]
- mov r0, #0x4c
- str r0, [sp, #0xc]
- ldr r2, [r4, #0xc]
- mov r0, #0x80
- mov r1, #0x3a
- bl FUN_0200687C
- mov r3, #0
- str r3, [sp]
- str r3, [sp, #4]
- str r3, [sp, #8]
- mov r0, #0x4c
- str r0, [sp, #0xc]
- ldr r2, [r4, #0xc]
- mov r0, #0x80
- mov r1, #0x3f
- bl FUN_020068C8
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x4c
- str r0, [sp, #0xc]
- ldr r2, [r4, #0xc]
- mov r0, #0x80
- mov r1, #0x37
- mov r3, #5
- bl FUN_0200687C
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x4c
- str r0, [sp, #0xc]
- ldr r2, [r4, #0xc]
- mov r0, #0x80
- mov r1, #0x3c
- mov r3, #5
- bl FUN_020068C8
- mov r0, #0xe
- mov r1, #1
- bl FUN_0201E6E4
- mov r0, #1
- mov r1, #0
- bl FUN_0201E6E4
- mov r0, #2
- mov r1, #1
- bl FUN_0201E74C
- ldr r0, [r4, #0xc]
- mov r1, #3
- mov r2, #1
- mov r3, #0x40
- bl FUN_020179E0
- mov r0, #1
- lsl r0, r0, #0xc
- bl FX_Inv
- add r5, r0, #0
- mov r0, #1
- lsl r0, r0, #0xc
- bl FX_Inv
- mov r1, #0
- str r5, [sp, #0x10]
- str r1, [sp, #0x14]
- str r1, [sp, #0x18]
- str r0, [sp, #0x1c]
- bl OS_WaitVBlankIntr
- mov r0, #0x60
- str r0, [sp]
- ldr r0, [r4, #0xc]
- mov r1, #2
- add r2, sp, #0x10
- mov r3, #0x80
- bl FUN_02017BD0
- mov r0, #0x60
- str r0, [sp]
- ldr r0, [r4, #0xc]
- mov r1, #3
- add r2, sp, #0x10
- mov r3, #0xc0
- bl FUN_02017BD0
- mov r0, #1
- strb r0, [r4, #3]
- add sp, #0x20
- pop {r3, r4, r5, pc}
- thumb_func_end MOD63_021DA158
-
- thumb_func_start MOD63_021DA30C
-MOD63_021DA30C: ; 0x021DA30C
- push {r4, r5, lr}
- sub sp, #0xc
- add r4, r0, #0
- add r5, r1, #0
- ldrb r1, [r4, #1]
- cmp r1, #3
- bhi _021DA3EC
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_021DA326: ; jump table
- .short _021DA32E - _021DA326 - 2 ; case 0
- .short _021DA352 - _021DA326 - 2 ; case 1
- .short _021DA36A - _021DA326 - 2 ; case 2
- .short _021DA3DA - _021DA326 - 2 ; case 3
-_021DA32E:
- ldr r0, _021DA3F8 ; =0x000008E3
- cmp r5, r0
- blt _021DA3EC
- mov r0, #0x78
- str r0, [sp]
- mov r1, #1
- str r1, [sp, #4]
- mov r0, #0x4c
- str r0, [sp, #8]
- mov r0, #0
- add r2, r1, #0
- add r3, r0, #0
- bl FUN_0200E1D0
- ldrb r0, [r4, #1]
- add r0, r0, #1
- strb r0, [r4, #1]
- b _021DA3EC
-_021DA352:
- bl FUN_0200E308
- cmp r0, #0
- beq _021DA3EC
- ldrb r0, [r4, #1]
- add r0, r0, #1
- strb r0, [r4, #1]
- mov r0, #1
- lsl r0, r0, #0xc
- str r0, [r4, #4]
- str r0, [r4, #8]
- b _021DA3EC
-_021DA36A:
- ldr r0, _021DA3FC ; =0x0000097E
- cmp r5, r0
- bne _021DA378
- add r0, r4, #0
- add r0, #0x18
- bl MOD63_021DA588
-_021DA378:
- ldr r0, _021DA400 ; =0x000009D3
- cmp r5, r0
- bne _021DA386
- add r0, r4, #0
- add r0, #0x18
- bl MOD63_021DA588
-_021DA386:
- ldr r0, _021DA404 ; =0x000009F1
- cmp r5, r0
- bne _021DA394
- add r0, r4, #0
- add r0, #0x18
- bl MOD63_021DA588
-_021DA394:
- ldr r0, _021DA408 ; =0x00000A1E
- cmp r5, r0
- bne _021DA3A2
- add r0, r4, #0
- add r0, #0x18
- bl MOD63_021DA588
-_021DA3A2:
- ldr r0, _021DA40C ; =0x00000A64
- cmp r5, r0
- blt _021DA3AE
- add r0, r4, #0
- bl MOD63_021DA478
-_021DA3AE:
- ldr r0, _021DA410 ; =0x00000A78
- cmp r5, r0
- blt _021DA3EC
- mov r0, #0x12
- str r0, [sp]
- mov r0, #1
- str r0, [sp, #4]
- mov r0, #0x4c
- str r0, [sp, #8]
- mov r0, #0
- ldr r3, _021DA414 ; =0x00007FFF
- add r1, r0, #0
- add r2, r0, #0
- bl FUN_0200E1D0
- add r0, r4, #0
- bl MOD63_021DA504
- ldrb r0, [r4, #1]
- add r0, r0, #1
- strb r0, [r4, #1]
- b _021DA3EC
-_021DA3DA:
- bl MOD63_021DA504
- bl FUN_0200E308
- cmp r0, #0
- beq _021DA3EC
- add sp, #0xc
- mov r0, #1
- pop {r4, r5, pc}
-_021DA3EC:
- add r0, r4, #0
- bl MOD63_021DA5A0
- mov r0, #0
- add sp, #0xc
- pop {r4, r5, pc}
- .align 2, 0
-_021DA3F8: .word 0x000008E3
-_021DA3FC: .word 0x0000097E
-_021DA400: .word 0x000009D3
-_021DA404: .word 0x000009F1
-_021DA408: .word 0x00000A1E
-_021DA40C: .word 0x00000A64
-_021DA410: .word 0x00000A78
-_021DA414: .word 0x00007FFF
- thumb_func_end MOD63_021DA30C
-
- thumb_func_start MOD63_021DA418
-MOD63_021DA418: ; 0x021DA418
- push {r4, lr}
- add r4, r0, #0
- ldr r0, _021DA470 ; =0x0000028E
- ldrb r0, [r4, r0]
- cmp r0, #0
- beq _021DA458
- ldr r0, [r4, #0xc]
- mov r1, #1
- bl FUN_020178A0
- ldr r0, [r4, #0xc]
- mov r1, #2
- bl FUN_020178A0
- ldr r0, [r4, #0xc]
- mov r1, #3
- bl FUN_020178A0
- ldr r0, [r4, #0xc]
- mov r1, #0
- bl FUN_020178A0
- ldr r0, [r4, #0xc]
- mov r1, #5
- bl FUN_020178A0
- ldr r0, [r4, #0xc]
- bl FreeToHeap
- ldr r0, _021DA470 ; =0x0000028E
- mov r1, #0
- strb r1, [r4, r0]
-_021DA458:
- ldr r0, _021DA474 ; =0x0000028F
- ldrb r1, [r4, r0]
- cmp r1, #0
- beq _021DA46E
- add r0, #0xd
- ldr r0, [r4, r0]
- bl FreeToHeap
- ldr r0, _021DA474 ; =0x0000028F
- mov r1, #0
- strb r1, [r4, r0]
-_021DA46E:
- pop {r4, pc}
- .align 2, 0
-_021DA470: .word 0x0000028E
-_021DA474: .word 0x0000028F
- thumb_func_end MOD63_021DA418
-
- thumb_func_start MOD63_021DA478
-MOD63_021DA478: ; 0x021DA478
- push {r4, r5, lr}
- sub sp, #0x2c
- add r4, r0, #0
- ldr r0, [r4, #4]
- bl FX_Inv
- add r5, r0, #0
- ldr r0, [r4, #4]
- bl FX_Inv
- mov r1, #0
- str r5, [sp, #0x1c]
- str r1, [sp, #0x20]
- str r1, [sp, #0x24]
- str r0, [sp, #0x28]
- ldr r0, [r4, #8]
- bl FX_Inv
- add r5, r0, #0
- ldr r0, [r4, #8]
- bl FX_Inv
- mov r1, #0
- str r5, [sp, #0xc]
- str r1, [sp, #0x10]
- str r1, [sp, #0x14]
- str r0, [sp, #0x18]
- bl OS_WaitVBlankIntr
- mov r0, #1
- ldr r1, [r4, #4]
- lsl r0, r0, #0xa
- add r1, r1, r0
- mov r0, #3
- lsl r0, r0, #0xc
- cmp r1, r0
- bgt _021DA4FE
- str r1, [r4, #4]
- add r0, sp, #0x1c
- str r0, [sp]
- mov r0, #0x80
- str r0, [sp, #4]
- mov r0, #0x5a
- str r0, [sp, #8]
- ldr r0, [r4, #0xc]
- mov r1, #2
- mov r2, #4
- mov r3, #1
- bl FUN_02017B60
- mov r0, #1
- ldr r1, [r4, #8]
- lsl r0, r0, #0xa
- add r0, r1, r0
- str r0, [r4, #8]
- add r0, sp, #0xc
- str r0, [sp]
- mov r0, #0xc0
- str r0, [sp, #4]
- mov r0, #0x5a
- str r0, [sp, #8]
- ldr r0, [r4, #0xc]
- mov r1, #3
- mov r2, #4
- mov r3, #1
- bl FUN_02017B60
-_021DA4FE:
- add sp, #0x2c
- pop {r4, r5, pc}
- .align 2, 0
- thumb_func_end MOD63_021DA478
-
- thumb_func_start MOD63_021DA504
-MOD63_021DA504: ; 0x021DA504
- push {r4, r5, lr}
- sub sp, #0x2c
- add r4, r0, #0
- ldr r0, [r4, #4]
- bl FX_Inv
- add r5, r0, #0
- ldr r0, [r4, #4]
- bl FX_Inv
- mov r1, #0
- str r5, [sp, #0x1c]
- str r1, [sp, #0x20]
- str r1, [sp, #0x24]
- str r0, [sp, #0x28]
- ldr r0, [r4, #8]
- bl FX_Inv
- add r5, r0, #0
- ldr r0, [r4, #8]
- bl FX_Inv
- mov r1, #0
- str r5, [sp, #0xc]
- str r1, [sp, #0x10]
- str r1, [sp, #0x14]
- str r0, [sp, #0x18]
- bl OS_WaitVBlankIntr
- mov r0, #2
- ldr r1, [r4, #4]
- lsl r0, r0, #0xa
- add r0, r1, r0
- str r0, [r4, #4]
- add r0, sp, #0x1c
- str r0, [sp]
- mov r0, #0x80
- str r0, [sp, #4]
- mov r0, #0x5a
- str r0, [sp, #8]
- ldr r0, [r4, #0xc]
- mov r1, #2
- mov r2, #4
- mov r3, #1
- bl FUN_02017B60
- mov r0, #2
- ldr r1, [r4, #8]
- lsl r0, r0, #0xa
- add r0, r1, r0
- str r0, [r4, #8]
- add r0, sp, #0xc
- str r0, [sp]
- mov r0, #0xc0
- str r0, [sp, #4]
- mov r0, #0x5a
- str r0, [sp, #8]
- ldr r0, [r4, #0xc]
- mov r1, #3
- mov r2, #4
- mov r3, #1
- bl FUN_02017B60
- add sp, #0x2c
- pop {r4, r5, pc}
- .align 2, 0
- thumb_func_end MOD63_021DA504
-
- thumb_func_start MOD63_021DA588
-MOD63_021DA588: ; 0x021DA588
- mov r1, #1
- strb r1, [r0]
- mov r2, #6
- strb r2, [r0, #3]
- mov r2, #0
- strb r2, [r0, #1]
- ldr r3, _021DA59C ; =FUN_0201E6E4
- add r0, r1, #0
- bx r3
- nop
-_021DA59C: .word FUN_0201E6E4
- thumb_func_end MOD63_021DA588
-
- thumb_func_start MOD63_021DA5A0
-MOD63_021DA5A0: ; 0x021DA5A0
- push {r3, r4, r5, r6, lr}
- sub sp, #4
- add r5, r0, #0
- ldrb r0, [r5, #0x18]
- add r4, r5, #0
- add r4, #0x18
- cmp r0, #0
- beq _021DA630
- ldrb r3, [r4, #1]
- ldr r0, _021DA634 ; =MOD63_021DBF40
- ldrb r1, [r4, #3]
- ldrb r0, [r0, r3]
- cmp r1, r0
- blo _021DA614
- mov r1, #0
- str r1, [sp]
- ldr r6, _021DA638 ; =MOD63_021DBF48
- ldr r0, [r5, #0x14]
- ldrb r3, [r6, r3]
- mov r2, #1
- lsl r3, r3, #0x1c
- lsr r3, r3, #0x18
- bl MOD63_021D9EA8
- mov r0, #0x20
- str r0, [sp]
- ldrb r6, [r4, #1]
- ldr r3, _021DA63C ; =MOD63_021DBF44
- ldr r0, [r5, #0x14]
- ldrb r3, [r3, r6]
- mov r1, #0
- mov r2, #1
- lsl r3, r3, #0x1c
- lsr r3, r3, #0x18
- bl MOD63_021D9EA8
- mov r0, #0x20
- str r0, [sp]
- ldr r0, [r5, #0x14]
- mov r1, #1
- ldrb r5, [r4, #1]
- ldr r3, _021DA63C ; =MOD63_021DBF44
- add r2, r1, #0
- ldrb r3, [r3, r5]
- lsl r3, r3, #0x1c
- lsr r3, r3, #0x18
- bl MOD63_021D9EA8
- mov r1, #0
- strb r1, [r4, #3]
- ldrb r0, [r4, #1]
- add r0, r0, #1
- strb r0, [r4, #1]
- ldrb r0, [r4, #1]
- cmp r0, #4
- blo _021DA618
- strb r1, [r4]
- b _021DA618
-_021DA614:
- add r0, r1, #1
- strb r0, [r4, #3]
-_021DA618:
- ldrb r0, [r4, #1]
- cmp r0, #0
- bne _021DA630
- ldr r0, _021DA634 ; =MOD63_021DBF40
- ldrb r1, [r4, #3]
- ldrb r0, [r0]
- cmp r1, r0
- blo _021DA630
- mov r0, #1
- mov r1, #0
- bl FUN_0201E6E4
-_021DA630:
- add sp, #4
- pop {r3, r4, r5, r6, pc}
- .align 2, 0
-_021DA634: .word MOD63_021DBF40
-_021DA638: .word MOD63_021DBF48
-_021DA63C: .word MOD63_021DBF44
- thumb_func_end MOD63_021DA5A0
-
- thumb_func_start MOD63_021DA640
-MOD63_021DA640: ; 0x021DA640
- push {r4, lr}
- sub sp, #0x10
- ldr r4, _021DA66C ; =MOD63_021DBE4C
- 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, #5
- mov r1, #0x4c
- bl FUN_0201E00C
- bl FUN_0201D168
- bl FUN_0201E0BC
- add sp, #0x10
- pop {r4, pc}
- .align 2, 0
-_021DA66C: .word MOD63_021DBE4C
- thumb_func_end MOD63_021DA640
-
- thumb_func_start MOD63_021DA670
-MOD63_021DA670: ; 0x021DA670
- push {r3, r4, r5, r6, lr}
- sub sp, #0x2c
- add r6, r0, #0
- mov r0, #0
- str r6, [sp]
- mvn r0, r0
- str r0, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0
- str r0, [sp, #0xc]
- str r2, [sp, #0x10]
- mov r2, #0x4b
- add r5, r1, #0
- lsl r2, r2, #2
- ldr r1, [r5, r2]
- add r4, r3, #0
- str r1, [sp, #0x14]
- add r1, r2, #4
- ldr r1, [r5, r1]
- add r3, r6, #0
- str r1, [sp, #0x18]
- add r1, r2, #0
- add r1, #8
- ldr r1, [r5, r1]
- add r2, #0xc
- str r1, [sp, #0x1c]
- ldr r1, [r5, r2]
- add r2, r6, #0
- str r1, [sp, #0x20]
- str r0, [sp, #0x24]
- str r0, [sp, #0x28]
- ldr r0, [sp, #0x40]
- add r1, r6, #0
- bl FUN_02008AA4
- ldr r0, [r5]
- mov r1, #0
- str r0, [r4]
- ldr r0, [sp, #0x40]
- str r0, [r4, #4]
- str r1, [r4, #8]
- str r1, [r4, #0xc]
- mov r0, #1
- str r1, [r4, #0x10]
- lsl r0, r0, #0xc
- str r0, [r4, #0x14]
- str r0, [r4, #0x18]
- str r0, [r4, #0x1c]
- strh r1, [r4, #0x20]
- mov r0, #1
- str r0, [r4, #0x24]
- str r0, [r4, #0x28]
- mov r0, #0x4c
- str r0, [r4, #0x2c]
- add sp, #0x2c
- pop {r3, r4, r5, r6, pc}
- thumb_func_end MOD63_021DA670
-
- thumb_func_start MOD63_021DA6E0
-MOD63_021DA6E0: ; 0x021DA6E0
- mov r0, #0x1b
- lsl r0, r0, #4
- bx lr
- .align 2, 0
- thumb_func_end MOD63_021DA6E0
-
- thumb_func_start MOD63_021DA6E8
-MOD63_021DA6E8: ; 0x021DA6E8
- push {r4, r5, r6, r7, lr}
- sub sp, #0x14
- mov r2, #1
- lsl r2, r2, #0x1a
- add r5, r0, #0
- ldr r1, [r2]
- ldr r0, _021DA9FC ; =0xFFCFFFEF
- and r1, r0
- mov r0, #0x10
- orr r0, r1
- str r0, [r2]
- bl MOD63_021DA640
- bl FUN_020B0FC0
- mov r0, #0
- str r0, [sp]
- mov r1, #0x80
- str r1, [sp, #4]
- str r0, [sp, #8]
- mov r3, #0x20
- str r3, [sp, #0xc]
- mov r2, #0x4c
- str r2, [sp, #0x10]
- add r2, r0, #0
- bl FUN_02009EAC
- mov r0, #0x19
- add r1, r5, #4
- mov r2, #0x4c
- bl FUN_02008C9C
- mov r2, #1
- str r0, [r5]
- add r0, r5, #4
- mov r1, #0
- lsl r2, r2, #0x14
- bl FUN_02008D24
- ldr r4, _021DAA00 ; =MOD63_021DBE28
- mov r7, #0
- add r6, r5, #0
-_021DA73C:
- ldrb r0, [r4]
- add r1, r7, #0
- mov r2, #0x4c
- bl FUN_02008DEC
- mov r1, #0x4b
- lsl r1, r1, #2
- str r0, [r6, r1]
- add r7, r7, #1
- add r4, r4, #1
- add r6, r6, #4
- cmp r7, #4
- blt _021DA73C
- mov r3, #0
- str r3, [sp]
- mov r0, #1
- str r0, [sp, #4]
- mov r0, #0x4c
- str r0, [sp, #8]
- add r0, #0xe0
- ldr r0, [r5, r0]
- mov r1, #0x80
- mov r2, #0x26
- bl FUN_02008F34
- mov r1, #0x4f
- lsl r1, r1, #2
- str r0, [r5, r1]
- mov r0, #1
- str r0, [sp]
- str r0, [sp, #4]
- mov r0, #0x4c
- str r0, [sp, #8]
- add r0, #0xe0
- ldr r0, [r5, r0]
- mov r1, #0x80
- mov r2, #0x27
- mov r3, #0
- bl FUN_02008F34
- mov r1, #0x53
- lsl r1, r1, #2
- str r0, [r5, r1]
- mov r0, #2
- str r0, [sp]
- mov r0, #1
- str r0, [sp, #4]
- mov r0, #0x4c
- str r0, [sp, #8]
- add r0, #0xe0
- ldr r0, [r5, r0]
- mov r1, #0x80
- mov r2, #0x28
- mov r3, #0
- bl FUN_02008F34
- mov r1, #0x57
- lsl r1, r1, #2
- str r0, [r5, r1]
- mov r0, #3
- str r0, [sp]
- mov r0, #1
- str r0, [sp, #4]
- mov r0, #0x4c
- str r0, [sp, #8]
- add r0, #0xe0
- ldr r0, [r5, r0]
- mov r1, #0x80
- mov r2, #0x29
- mov r3, #0
- bl FUN_02008F34
- mov r1, #0x5b
- lsl r1, r1, #2
- str r0, [r5, r1]
- mov r0, #4
- str r0, [sp]
- mov r0, #2
- str r0, [sp, #4]
- mov r0, #0x4c
- str r0, [sp, #8]
- add r0, #0xe0
- ldr r0, [r5, r0]
- mov r1, #0x80
- mov r2, #0x2a
- mov r3, #0
- bl FUN_02008F34
- mov r1, #0x5f
- lsl r1, r1, #2
- str r0, [r5, r1]
- mov r3, #0
- str r3, [sp]
- mov r0, #1
- str r0, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x4c
- str r0, [sp, #0xc]
- add r0, #0xe4
- ldr r0, [r5, r0]
- mov r1, #0x80
- mov r2, #0x21
- bl FUN_02008FEC
- mov r1, #5
- lsl r1, r1, #6
- str r0, [r5, r1]
- mov r0, #1
- str r0, [sp]
- str r0, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x4c
- str r0, [sp, #0xc]
- add r0, #0xe4
- ldr r0, [r5, r0]
- mov r1, #0x80
- mov r2, #0x22
- mov r3, #0
- bl FUN_02008FEC
- mov r1, #0x15
- lsl r1, r1, #4
- str r0, [r5, r1]
- mov r0, #2
- str r0, [sp]
- mov r0, #1
- str r0, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x4c
- str r0, [sp, #0xc]
- add r0, #0xe4
- ldr r0, [r5, r0]
- mov r1, #0x80
- mov r2, #0x23
- mov r3, #0
- bl FUN_02008FEC
- mov r1, #0x16
- lsl r1, r1, #4
- str r0, [r5, r1]
- mov r0, #3
- str r0, [sp]
- mov r0, #1
- str r0, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x4c
- str r0, [sp, #0xc]
- add r0, #0xe4
- ldr r0, [r5, r0]
- mov r1, #0x80
- mov r2, #0x24
- mov r3, #0
- bl FUN_02008FEC
- mov r1, #0x17
- lsl r1, r1, #4
- str r0, [r5, r1]
- mov r0, #4
- str r0, [sp]
- mov r0, #2
- str r0, [sp, #4]
- mov r0, #1
- str r0, [sp, #8]
- mov r0, #0x4c
- str r0, [sp, #0xc]
- add r0, #0xe4
- ldr r0, [r5, r0]
- mov r1, #0x80
- mov r2, #0x25
- mov r3, #0
- bl FUN_02008FEC
- mov r1, #6
- lsl r1, r1, #6
- str r0, [r5, r1]
- mov r3, #0
- str r3, [sp]
- mov r0, #2
- str r0, [sp, #4]
- mov r0, #0x4c
- str r0, [sp, #8]
- add r0, #0xe8
- ldr r0, [r5, r0]
- mov r1, #0x80
- mov r2, #0x2b
- bl FUN_020090AC
- mov r1, #0x51
- lsl r1, r1, #2
- str r0, [r5, r1]
- mov r0, #1
- str r0, [sp]
- mov r0, #2
- str r0, [sp, #4]
- mov r0, #0x4c
- str r0, [sp, #8]
- add r0, #0xe8
- ldr r0, [r5, r0]
- mov r1, #0x80
- mov r2, #0x2c
- mov r3, #0
- bl FUN_020090AC
- mov r1, #0x55
- lsl r1, r1, #2
- str r0, [r5, r1]
- mov r0, #2
- str r0, [sp]
- str r0, [sp, #4]
- mov r0, #0x4c
- str r0, [sp, #8]
- add r0, #0xe8
- ldr r0, [r5, r0]
- mov r1, #0x80
- mov r2, #0x2d
- mov r3, #0
- bl FUN_020090AC
- mov r1, #0x59
- lsl r1, r1, #2
- str r0, [r5, r1]
- mov r0, #3
- str r0, [sp]
- mov r0, #2
- str r0, [sp, #4]
- mov r0, #0x4c
- str r0, [sp, #8]
- add r0, #0xe8
- ldr r0, [r5, r0]
- mov r1, #0x80
- mov r2, #0x2e
- mov r3, #0
- bl FUN_020090AC
- mov r1, #0x5d
- lsl r1, r1, #2
- str r0, [r5, r1]
- mov r0, #4
- str r0, [sp]
- mov r0, #2
- str r0, [sp, #4]
- mov r0, #0x4c
- str r0, [sp, #8]
- add r0, #0xe8
- ldr r0, [r5, r0]
- mov r1, #0x80
- mov r2, #0x2f
- mov r3, #0
- bl FUN_020090AC
- mov r1, #0x61
- lsl r1, r1, #2
- str r0, [r5, r1]
- mov r3, #0
- str r3, [sp]
- mov r0, #3
- str r0, [sp, #4]
- mov r0, #0x4c
- str r0, [sp, #8]
- add r0, #0xec
- ldr r0, [r5, r0]
- mov r1, #0x80
- mov r2, #0x30
- bl FUN_020090AC
- mov r1, #0x52
- lsl r1, r1, #2
- str r0, [r5, r1]
- mov r0, #1
- str r0, [sp]
- mov r0, #3
- str r0, [sp, #4]
- mov r0, #0x4c
- str r0, [sp, #8]
- add r0, #0xec
- ldr r0, [r5, r0]
- mov r1, #0x80
- mov r2, #0x31
- mov r3, #0
- bl FUN_020090AC
- mov r1, #0x56
- lsl r1, r1, #2
- str r0, [r5, r1]
- mov r0, #2
- str r0, [sp]
- mov r0, #3
- str r0, [sp, #4]
- mov r0, #0x4c
- str r0, [sp, #8]
- add r0, #0xec
- ldr r0, [r5, r0]
- mov r1, #0x80
- mov r2, #0x32
- mov r3, #0
- bl FUN_020090AC
- mov r1, #0x5a
- lsl r1, r1, #2
- str r0, [r5, r1]
- mov r0, #3
- str r0, [sp]
- str r0, [sp, #4]
- mov r0, #0x4c
- str r0, [sp, #8]
- add r0, #0xec
- ldr r0, [r5, r0]
- mov r1, #0x80
- mov r2, #0x33
- mov r3, #0
- bl FUN_020090AC
- mov r1, #0x5e
- lsl r1, r1, #2
- str r0, [r5, r1]
- mov r0, #4
- str r0, [sp]
- mov r0, #3
- str r0, [sp, #4]
- mov r0, #0x4c
- str r0, [sp, #8]
- add r0, #0xec
- ldr r0, [r5, r0]
- mov r1, #0x80
- mov r2, #0x34
- mov r3, #0
- bl FUN_020090AC
- mov r1, #0x62
- lsl r1, r1, #2
- add r7, r1, #0
- add r6, r1, #0
- str r0, [r5, r1]
- mov r4, #0
- sub r7, #0x4c
- sub r6, #0x48
-_021DA9DC:
- ldr r0, [r5, r7]
- bl FUN_02009A50
- ldr r0, [r5, r6]
- bl FUN_02009CF0
- add r4, r4, #1
- add r5, #0x10
- cmp r4, #5
- blt _021DA9DC
- mov r0, #0x10
- mov r1, #1
- bl FUN_0201E6E4
- add sp, #0x14
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_021DA9FC: .word 0xFFCFFFEF
-_021DAA00: .word MOD63_021DBE28
- thumb_func_end MOD63_021DA6E8
-
- thumb_func_start MOD63_021DAA04
-MOD63_021DAA04: ; 0x021DAA04
- push {r3, r4, r5, r6, r7, lr}
- mov r7, #5
- add r5, r0, #0
- mov r4, #0
- lsl r7, r7, #6
-_021DAA0E:
- lsl r0, r4, #4
- add r6, r5, r0
- mov r0, #0x4f
- lsl r0, r0, #2
- ldr r0, [r6, r0]
- bl FUN_02009C0C
- ldr r0, [r6, r7]
- bl FUN_02009E04
- add r0, r4, #1
- lsl r0, r0, #0x18
- lsr r4, r0, #0x18
- cmp r4, #5
- blo _021DAA0E
- mov r6, #0x4b
- mov r4, #0
- lsl r6, r6, #2
-_021DAA32:
- lsl r0, r4, #2
- add r0, r5, r0
- ldr r0, [r0, r6]
- bl FUN_02008E2C
- add r0, r4, #1
- lsl r0, r0, #0x18
- lsr r4, r0, #0x18
- cmp r4, #4
- blo _021DAA32
- ldr r0, [r5]
- bl FUN_0201FD58
- bl FUN_02009FA0
- bl FUN_0201D12C
- bl FUN_0201E08C
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
- thumb_func_end MOD63_021DAA04
-
- thumb_func_start MOD63_021DAA5C
-MOD63_021DAA5C: ; 0x021DAA5C
- push {r4, r5, r6, r7, lr}
- sub sp, #0xa4
- ldr r3, _021DABC0 ; =MOD63_021DBE5C
- add r5, r0, #0
- ldmia r3!, {r0, r1}
- add r2, sp, #0x38
- stmia r2!, {r0, r1}
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldr r3, _021DABC4 ; =MOD63_021DBE74
- add r2, sp, #0x20
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldr r3, _021DABC8 ; =MOD63_021DBE8C
- add r2, sp, #8
- 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, sp, #0x80
- str r0, [sp]
- mov r0, #0
- add r1, r5, #0
- mov r2, #1
- add r3, sp, #0x50
- bl MOD63_021DA670
- mov r0, #5
- lsl r0, r0, #0x10
- str r0, [sp, #0x58]
- mov r0, #7
- lsl r0, r0, #0x10
- str r0, [sp, #0x5c]
- add r0, sp, #0x50
- bl FUN_0201FE94
- mov r1, #0x63
- lsl r1, r1, #2
- str r0, [r5, r1]
- ldr r0, [r5, r1]
- mov r1, #0
- bl FUN_020200BC
- mov r0, #0x63
- lsl r0, r0, #2
- ldr r0, [r5, r0]
- mov r1, #0
- bl FUN_020200A0
- add r0, sp, #0x80
- str r0, [sp]
- mov r0, #1
- add r1, r5, #0
- add r2, r0, #0
- add r3, sp, #0x50
- bl MOD63_021DA670
- mov r0, #5
- lsl r0, r0, #0x10
- str r0, [sp, #0x58]
- mov r0, #7
- lsl r0, r0, #0x10
- str r0, [sp, #0x5c]
- add r0, sp, #0x50
- bl FUN_0201FE94
- mov r1, #0x19
- lsl r1, r1, #4
- str r0, [r5, r1]
- ldr r0, [r5, r1]
- mov r1, #0
- bl FUN_020200BC
- mov r0, #0x19
- lsl r0, r0, #4
- ldr r0, [r5, r0]
- mov r1, #0
- bl FUN_020200A0
- add r0, r5, #0
- mov r1, #3
- bl MOD63_021DAC80
- add r0, sp, #0x80
- str r0, [sp]
- mov r0, #2
- add r1, r5, #0
- mov r2, #1
- add r3, sp, #0x50
- bl MOD63_021DA670
- mov r0, #5
- lsl r0, r0, #0x12
- str r0, [sp, #0x58]
- mov r0, #7
- lsl r0, r0, #0x10
- str r0, [sp, #0x5c]
- add r0, sp, #0x50
- bl FUN_0201FE94
- mov r1, #0x65
- lsl r1, r1, #2
- str r0, [r5, r1]
- ldr r0, [r5, r1]
- mov r1, #1
- bl FUN_020200BC
- mov r0, #0x65
- lsl r0, r0, #2
- ldr r0, [r5, r0]
- mov r1, #0
- bl FUN_020200A0
- mov r0, #0
- str r0, [sp, #4]
- add r7, sp, #0x20
- add r6, sp, #8
- add r4, sp, #0x38
-_021DAB58:
- add r0, sp, #0x80
- str r0, [sp]
- mov r0, #3
- add r1, r5, #0
- mov r2, #0
- add r3, sp, #0x50
- bl MOD63_021DA670
- ldr r0, [r7]
- lsl r0, r0, #0xc
- str r0, [sp, #0x58]
- ldr r0, [r6]
- lsl r0, r0, #0xc
- str r0, [sp, #0x5c]
- add r0, sp, #0x50
- bl FUN_0201FE94
- ldr r1, [r4]
- lsl r1, r1, #2
- add r2, r5, r1
- mov r1, #0x63
- lsl r1, r1, #2
- str r0, [r2, r1]
- ldr r0, [r4]
- lsl r0, r0, #2
- add r1, r5, r0
- mov r0, #0x63
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- mov r1, #1
- bl FUN_020200BC
- ldr r0, [r4]
- lsl r0, r0, #2
- add r1, r5, r0
- mov r0, #0x63
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- mov r1, #1
- bl FUN_020200A0
- ldr r0, [sp, #4]
- add r7, r7, #4
- add r0, r0, #1
- add r6, r6, #4
- add r4, r4, #4
- str r0, [sp, #4]
- cmp r0, #6
- blt _021DAB58
- add sp, #0xa4
- pop {r4, r5, r6, r7, pc}
- nop
-_021DABC0: .word MOD63_021DBE5C
-_021DABC4: .word MOD63_021DBE74
-_021DABC8: .word MOD63_021DBE8C
- thumb_func_end MOD63_021DAA5C
-
- thumb_func_start MOD63_021DABCC
-MOD63_021DABCC: ; 0x021DABCC
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x58
- add r2, r0, #0
- add r0, sp, #0x34
- add r6, r1, #0
- str r0, [sp]
- add r1, r2, #0
- mov r0, #4
- mov r2, #0
- add r3, sp, #4
- bl MOD63_021DA670
- mov r0, #2
- str r0, [sp, #0x2c]
- mov r5, #0
- add r7, sp, #4
-_021DABEC:
- add r0, r6, #0
- add r1, r5, #0
- bl MOD63_021DAF80
- add r4, r0, #0
- add r0, r7, #0
- bl FUN_0201FE94
- str r0, [r4]
- mov r1, #0
- bl FUN_020200BC
- ldr r0, [r4]
- mov r1, #0
- bl FUN_020200A0
- add r5, r5, #1
- cmp r5, #0x10
- blt _021DABEC
- add sp, #0x58
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
- thumb_func_end MOD63_021DABCC
-
- thumb_func_start MOD63_021DAC18
-MOD63_021DAC18: ; 0x021DAC18
- ldr r3, _021DAC20 ; =FUN_0201FDEC
- ldr r0, [r0]
- bx r3
- nop
-_021DAC20: .word FUN_0201FDEC
- thumb_func_end MOD63_021DAC18
-
- thumb_func_start MOD63_021DAC24
-MOD63_021DAC24: ; 0x021DAC24
- lsl r1, r1, #2
- add r1, r0, r1
- mov r0, #0x63
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- ldr r3, _021DAC34 ; =FUN_020200A0
- add r1, r2, #0
- bx r3
- .align 2, 0
-_021DAC34: .word FUN_020200A0
- thumb_func_end MOD63_021DAC24
-
- thumb_func_start MOD63_021DAC38
-MOD63_021DAC38: ; 0x021DAC38
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r6, r2, #0
- mov r2, #0x63
- lsl r2, r2, #2
- add r4, r0, r2
- lsl r5, r1, #2
- ldr r0, [r4, r5]
- add r7, r3, #0
- bl FUN_0202011C
- add r3, r0, #0
- add r2, sp, #0
- ldmia r3!, {r0, r1}
- mov ip, r2
- stmia r2!, {r0, r1}
- ldr r0, [r3]
- mov r1, ip
- str r0, [r2]
- str r6, [sp]
- str r7, [sp, #4]
- ldr r0, [r4, r5]
- bl FUN_02020044
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- thumb_func_end MOD63_021DAC38
-
- thumb_func_start MOD63_021DAC6C
-MOD63_021DAC6C: ; 0x021DAC6C
- push {r3, lr}
- mov r2, #0xb
- mov r3, #7
- mov r1, #1
- lsl r2, r2, #0x10
- lsl r3, r3, #0x10
- bl MOD63_021DAC38
- pop {r3, pc}
- .align 2, 0
- thumb_func_end MOD63_021DAC6C
-
- thumb_func_start MOD63_021DAC80
-MOD63_021DAC80: ; 0x021DAC80
- push {r3, r4, r5, lr}
- add r5, r0, #0
- mov r0, #0x63
- lsl r0, r0, #2
- ldr r0, [r5, r0]
- add r4, r1, #0
- bl FUN_02020130
- mov r0, #0x19
- lsl r0, r0, #4
- ldr r0, [r5, r0]
- add r1, r4, #0
- bl FUN_02020130
- pop {r3, r4, r5, pc}
- .align 2, 0
- thumb_func_end MOD63_021DAC80
-
- thumb_func_start MOD63_021DACA0
-MOD63_021DACA0: ; 0x021DACA0
- push {r3, r4, r5, lr}
- add r5, r0, #0
- mov r0, #0x63
- lsl r0, r0, #2
- ldr r0, [r5, r0]
- add r4, r1, #0
- bl FUN_020200BC
- mov r0, #0x19
- lsl r0, r0, #4
- ldr r0, [r5, r0]
- add r1, r4, #0
- bl FUN_020200BC
- pop {r3, r4, r5, pc}
- .align 2, 0
- thumb_func_end MOD63_021DACA0
-
- thumb_func_start MOD63_021DACC0
-MOD63_021DACC0: ; 0x021DACC0
- push {r4, r5, lr}
- sub sp, #0xc
- add r4, r0, #0
- mov r0, #0x65
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- bl FUN_0202011C
- add r5, r0, #0
- add r3, sp, #0
- ldmia r5!, {r0, r1}
- add r2, r3, #0
- stmia r3!, {r0, r1}
- ldr r0, [r5]
- str r0, [r3]
- mov r0, #0xe
- ldr r1, [sp]
- lsl r0, r0, #0xc
- sub r1, r1, r0
- mov r0, #0xb
- lsl r0, r0, #0x10
- str r1, [sp]
- cmp r1, r0
- bgt _021DAD04
- str r0, [sp]
- mov r0, #0x65
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- add r1, r2, #0
- bl FUN_02020044
- add sp, #0xc
- mov r0, #1
- pop {r4, r5, pc}
-_021DAD04:
- mov r0, #0x65
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- add r1, r2, #0
- bl FUN_02020044
- mov r0, #0
- add sp, #0xc
- pop {r4, r5, pc}
- .align 2, 0
- thumb_func_end MOD63_021DACC0
-
- thumb_func_start MOD63_021DAD18
-MOD63_021DAD18: ; 0x021DAD18
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- lsl r4, r1, #2
- mov r0, #0x63
- add r1, r5, r4
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- add r6, r2, #0
- bl FUN_02020354
- mov r1, #1
- bl FUN_020B19C4
- add r7, r0, #0
- cmp r6, #0
- bne _021DAD44
- ldr r0, _021DAD64 ; =MOD63_021DBFA0
- add r1, r7, #0
- mov r2, #0x20
- bl GX_LoadOBJPltt
- pop {r3, r4, r5, r6, r7, pc}
-_021DAD44:
- ldr r0, _021DAD68 ; =MOD63_021DBF64
- ldr r0, [r0, r4]
- lsl r0, r0, #4
- add r1, r5, r0
- mov r0, #5
- lsl r0, r0, #6
- ldr r0, [r1, r0]
- bl FUN_0200955C
- ldr r0, [r0, #0xc]
- add r1, r7, #0
- mov r2, #0x20
- bl GX_LoadOBJPltt
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_021DAD64: .word MOD63_021DBFA0
-_021DAD68: .word MOD63_021DBF64
- thumb_func_end MOD63_021DAD18
-
- thumb_func_start MOD63_021DAD6C
-MOD63_021DAD6C: ; 0x021DAD6C
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x30
- ldr r3, _021DAE44 ; =MOD63_021DBE40
- add r2, sp, #0x18
- str r0, [sp]
- str r1, [sp, #4]
- ldmia r3!, {r0, r1}
- str r2, [sp, #8]
- stmia r2!, {r0, r1}
- ldr r0, [r3]
- ldr r3, _021DAE48 ; =MOD63_021DBE34
- str r0, [r2]
- ldmia r3!, {r0, r1}
- add r2, sp, #0xc
- stmia r2!, {r0, r1}
- ldr r0, [r3]
- ldr r1, _021DAE4C ; =0x000005C8
- str r0, [r2]
- ldr r0, [sp, #4]
- cmp r0, r1
- blt _021DADE6
- mov r4, #0
-_021DAD98:
- ldr r0, [sp, #8]
- lsl r7, r4, #2
- ldr r0, [r0, r7]
- lsl r1, r0, #2
- ldr r0, [sp]
- add r5, r0, r1
- mov r0, #0x63
- lsl r0, r0, #2
- ldr r0, [r5, r0]
- bl FUN_0202011C
- add r6, r0, #0
- add r3, sp, #0x24
- ldmia r6!, {r0, r1}
- add r2, r3, #0
- stmia r3!, {r0, r1}
- ldr r0, [r6]
- str r0, [r3]
- ldr r0, _021DAE50 ; =MOD63_021DBF4C
- ldr r1, [sp, #0x24]
- ldr r0, [r0, r7]
- sub r0, r1, r0
- str r0, [sp, #0x24]
- mov r0, #1
- ldr r1, [sp, #0x28]
- lsl r0, r0, #0xe
- sub r0, r1, r0
- str r0, [sp, #0x28]
- mov r0, #0x63
- lsl r0, r0, #2
- ldr r0, [r5, r0]
- add r1, r2, #0
- bl FUN_02020044
- add r0, r4, #1
- lsl r0, r0, #0x18
- lsr r4, r0, #0x18
- cmp r4, #3
- blo _021DAD98
-_021DADE6:
- ldr r1, _021DAE54 ; =0x000005E6
- ldr r0, [sp, #4]
- cmp r0, r1
- blt _021DAE3E
- mov r5, #0
-_021DADF0:
- lsl r7, r5, #2
- add r0, sp, #0xc
- ldr r0, [r0, r7]
- lsl r1, r0, #2
- ldr r0, [sp]
- add r4, r0, r1
- mov r0, #0x63
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- bl FUN_0202011C
- add r6, r0, #0
- add r3, sp, #0x24
- ldmia r6!, {r0, r1}
- add r2, r3, #0
- stmia r3!, {r0, r1}
- ldr r0, [r6]
- str r0, [r3]
- ldr r0, _021DAE58 ; =MOD63_021DBF58
- ldr r1, [sp, #0x24]
- ldr r0, [r0, r7]
- sub r0, r1, r0
- str r0, [sp, #0x24]
- mov r0, #1
- ldr r1, [sp, #0x28]
- lsl r0, r0, #0xe
- sub r0, r1, r0
- str r0, [sp, #0x28]
- mov r0, #0x63
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- add r1, r2, #0
- bl FUN_02020044
- add r0, r5, #1
- lsl r0, r0, #0x18
- lsr r5, r0, #0x18
- cmp r5, #3
- blo _021DADF0
-_021DAE3E:
- add sp, #0x30
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_021DAE44: .word MOD63_021DBE40
-_021DAE48: .word MOD63_021DBE34
-_021DAE4C: .word 0x000005C8
-_021DAE50: .word MOD63_021DBF4C
-_021DAE54: .word 0x000005E6
-_021DAE58: .word MOD63_021DBF58
- thumb_func_end MOD63_021DAD6C
-
- thumb_func_start MOD63_021DAE5C
-MOD63_021DAE5C: ; 0x021DAE5C
- push {r4, lr}
- sub sp, #0x10
- ldr r4, _021DAE88 ; =MOD63_021DBEAC
- 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, #1
- mov r1, #0x4c
- bl FUN_0201E00C
- bl FUN_0201D168
- bl FUN_0201E0BC
- add sp, #0x10
- pop {r4, pc}
- .align 2, 0
-_021DAE88: .word MOD63_021DBEAC
- thumb_func_end MOD63_021DAE5C
-
- thumb_func_start MOD63_021DAE8C
-MOD63_021DAE8C: ; 0x021DAE8C
- push {r3, r4, r5, r6, lr}
- sub sp, #0x2c
- add r4, r1, #0
- mov r1, #0
- add r5, r0, #0
- str r1, [sp]
- sub r0, r1, #1
- str r0, [sp, #4]
- str r0, [sp, #8]
- add r6, r2, #0
- str r1, [sp, #0xc]
- mov r2, #0x4b
- 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]
- add r2, #0xc
- str r0, [sp, #0x1c]
- ldr r0, [r5, r2]
- add r2, r1, #0
- str r0, [sp, #0x20]
- str r1, [sp, #0x24]
- str r1, [sp, #0x28]
- add r0, r6, #0
- bl FUN_02008AA4
- ldr r0, [r5]
- mov r1, #0
- str r0, [r4]
- str r6, [r4, #4]
- str r1, [r4, #8]
- str r1, [r4, #0xc]
- mov r0, #1
- str r1, [r4, #0x10]
- lsl r0, r0, #0xc
- str r0, [r4, #0x14]
- str r0, [r4, #0x18]
- str r0, [r4, #0x1c]
- strh r1, [r4, #0x20]
- mov r0, #1
- str r0, [r4, #0x24]
- str r0, [r4, #0x28]
- mov r0, #0x4c
- str r0, [r4, #0x2c]
- add sp, #0x2c
- pop {r3, r4, r5, r6, pc}
- .align 2, 0
- thumb_func_end MOD63_021DAE8C
-
- thumb_func_start MOD63_021DAEF8
-MOD63_021DAEF8: ; 0x021DAEF8
- push {r4, lr}
- mov r1, #0x7d
- mov r0, #0x4c
- lsl r1, r1, #2
- bl AllocFromHeap
- mov r2, #0x7d
- add r4, r0, #0
- mov r1, #0
- lsl r2, r2, #2
- bl memset
- add r0, r4, #0
- bl MOD63_021DAFEC
- add r0, r4, #0
- bl MOD63_021DB150
- add r0, r4, #0
- pop {r4, pc}
- thumb_func_end MOD63_021DAEF8
-
- thumb_func_start MOD63_021DAF20
-MOD63_021DAF20: ; 0x021DAF20
- push {r4, r5, r6, lr}
- add r5, r0, #0
- mov r0, #0x4c
- mov r1, #8
- bl AllocFromHeap
- add r4, r0, #0
- mov r0, #0xc
- add r6, r5, #0
- mul r6, r0
- mov r0, #0x4c
- add r1, r6, #0
- bl AllocFromHeap
- mov r1, #0
- add r2, r6, #0
- str r0, [r4, #4]
- bl memset
- str r5, [r4]
- add r0, r4, #0
- pop {r4, r5, r6, pc}
- thumb_func_end MOD63_021DAF20
-
- thumb_func_start MOD63_021DAF4C
-MOD63_021DAF4C: ; 0x021DAF4C
- push {r4, r5, r6, lr}
- add r5, r0, #0
- ldr r0, [r5]
- mov r6, #0
- cmp r0, #0
- ble _021DAF72
- add r4, r6, #0
-_021DAF5A:
- ldr r0, [r5, #4]
- add r0, r0, r4
- ldr r0, [r0, #8]
- cmp r0, #0
- beq _021DAF68
- bl FUN_0200CAB4
-_021DAF68:
- ldr r0, [r5]
- add r6, r6, #1
- add r4, #0xc
- cmp r6, r0
- blt _021DAF5A
-_021DAF72:
- ldr r0, [r5, #4]
- bl FreeToHeap
- add r0, r5, #0
- bl FreeToHeap
- pop {r4, r5, r6, pc}
- thumb_func_end MOD63_021DAF4C
-
- thumb_func_start MOD63_021DAF80
-MOD63_021DAF80: ; 0x021DAF80
- push {r3, r4, r5, lr}
- add r5, r0, #0
- ldr r0, [r5]
- add r4, r1, #0
- cmp r4, r0
- blt _021DAF90
- bl ErrorHandling
-_021DAF90:
- mov r0, #0xc
- ldr r1, [r5, #4]
- mul r0, r4
- add r0, r1, r0
- add r0, r0, #4
- pop {r3, r4, r5, pc}
- thumb_func_end MOD63_021DAF80
-
- thumb_func_start MOD63_021DAF9C
-MOD63_021DAF9C: ; 0x021DAF9C
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- bl MOD63_021DB108
- mov r6, #0x73
- mov r4, #0
- lsl r6, r6, #2
-_021DAFAA:
- lsl r0, r4, #4
- add r0, r5, r0
- ldr r0, [r0, r6]
- cmp r0, #0
- beq _021DAFB8
- bl FUN_0200CAB4
-_021DAFB8:
- add r0, r4, #1
- lsl r0, r0, #0x18
- lsr r4, r0, #0x18
- cmp r4, #3
- blo _021DAFAA
- mov r6, #0x55
- mov r4, #0
- mov r7, #0xc
- lsl r6, r6, #2
-_021DAFCA:
- add r0, r4, #0
- mul r0, r7
- add r0, r5, r0
- ldr r0, [r0, r6]
- cmp r0, #0
- beq _021DAFDA
- bl FUN_0200CAB4
-_021DAFDA:
- add r0, r4, #1
- lsl r0, r0, #0x18
- lsr r4, r0, #0x18
- cmp r4, #0xa
- blo _021DAFCA
- add r0, r5, #0
- bl FreeToHeap
- pop {r3, r4, r5, r6, r7, pc}
- thumb_func_end MOD63_021DAF9C
-
- thumb_func_start MOD63_021DAFEC
-MOD63_021DAFEC: ; 0x021DAFEC
- push {r4, r5, r6, r7, lr}
- sub sp, #0x14
- mov r2, #1
- lsl r2, r2, #0x1a
- ldr r1, [r2]
- add r7, r0, #0
- add r3, r1, #0
- ldr r0, _021DB0FC ; =0xFFCFFFEF
- mov r1, #0x10
- and r3, r0
- orr r3, r1
- str r3, [r2]
- ldr r3, _021DB100 ; =0x04001000
- ldr r2, [r3]
- and r0, r2
- orr r0, r1
- str r0, [r3]
- bl MOD63_021DAE5C
- bl FUN_020B0FC0
- mov r0, #0
- str r0, [sp]
- mov r1, #0x80
- str r1, [sp, #4]
- str r0, [sp, #8]
- mov r3, #0x20
- str r3, [sp, #0xc]
- mov r2, #0x4c
- str r2, [sp, #0x10]
- add r2, r0, #0
- bl FUN_02009EAC
- mov r0, #0xa
- add r1, r7, #4
- mov r2, #0x4c
- bl FUN_02008C9C
- ldr r4, _021DB104 ; =MOD63_021DBEBC
- str r0, [r7]
- mov r6, #0
- add r5, r7, #0
-_021DB040:
- ldrb r0, [r4]
- add r1, r6, #0
- mov r2, #0x4c
- bl FUN_02008DEC
- mov r1, #0x4b
- lsl r1, r1, #2
- str r0, [r5, r1]
- add r6, r6, #1
- add r4, r4, #1
- add r5, r5, #4
- cmp r6, #4
- blt _021DB040
- mov r3, #0
- str r3, [sp]
- mov r0, #3
- str r0, [sp, #4]
- mov r0, #0x4c
- str r0, [sp, #8]
- add r0, #0xe0
- ldr r0, [r7, r0]
- mov r1, #0x80
- mov r2, #4
- bl FUN_02008F34
- mov r1, #0x4f
- lsl r1, r1, #2
- str r0, [r7, r1]
- mov r3, #0
- str r3, [sp]
- mov r2, #3
- str r2, [sp, #4]
- mov r0, #1
- str r0, [sp, #8]
- mov r0, #0x4c
- str r0, [sp, #0xc]
- add r0, #0xe4
- ldr r0, [r7, r0]
- mov r1, #0x80
- bl FUN_02008FEC
- mov r1, #5
- lsl r1, r1, #6
- str r0, [r7, r1]
- mov r3, #0
- str r3, [sp]
- mov r0, #2
- str r0, [sp, #4]
- mov r0, #0x4c
- str r0, [sp, #8]
- add r0, #0xe8
- ldr r0, [r7, r0]
- mov r1, #0x80
- mov r2, #5
- bl FUN_020090AC
- mov r1, #0x51
- lsl r1, r1, #2
- str r0, [r7, r1]
- mov r3, #0
- str r3, [sp]
- mov r0, #3
- str r0, [sp, #4]
- mov r0, #0x4c
- str r0, [sp, #8]
- add r0, #0xec
- ldr r0, [r7, r0]
- mov r1, #0x80
- mov r2, #6
- bl FUN_020090AC
- mov r1, #0x52
- lsl r1, r1, #2
- str r0, [r7, r1]
- sub r1, #0xc
- ldr r0, [r7, r1]
- bl FUN_02009A50
- mov r0, #5
- lsl r0, r0, #6
- ldr r0, [r7, r0]
- bl FUN_02009CF0
- mov r0, #0x10
- mov r1, #1
- bl FUN_0201E6E4
- mov r0, #0x10
- mov r1, #1
- bl FUN_0201E74C
- add sp, #0x14
- pop {r4, r5, r6, r7, pc}
- nop
-_021DB0FC: .word 0xFFCFFFEF
-_021DB100: .word 0x04001000
-_021DB104: .word MOD63_021DBEBC
- thumb_func_end MOD63_021DAFEC
-
- thumb_func_start MOD63_021DB108
-MOD63_021DB108: ; 0x021DB108
- push {r4, r5, r6, lr}
- add r5, r0, #0
- mov r0, #0x4f
- lsl r0, r0, #2
- ldr r0, [r5, r0]
- bl FUN_02009C0C
- mov r0, #5
- lsl r0, r0, #6
- ldr r0, [r5, r0]
- bl FUN_02009E04
- mov r6, #0x4b
- mov r4, #0
- lsl r6, r6, #2
-_021DB126:
- lsl r0, r4, #2
- add r0, r5, r0
- ldr r0, [r0, r6]
- bl FUN_02008E2C
- add r0, r4, #1
- lsl r0, r0, #0x18
- lsr r4, r0, #0x18
- cmp r4, #4
- blo _021DB126
- ldr r0, [r5]
- bl FUN_0201FD58
- bl FUN_02009FA0
- bl FUN_0201D12C
- bl FUN_0201E08C
- pop {r4, r5, r6, pc}
- .align 2, 0
- thumb_func_end MOD63_021DB108
-
- thumb_func_start MOD63_021DB150
-MOD63_021DB150: ; 0x021DB150
- push {r4, r5, r6, r7, lr}
- sub sp, #0x54
- add r7, r0, #0
- mov r6, #0
- add r4, r6, #0
- add r5, r7, #0
-_021DB15C:
- add r0, r7, #0
- add r1, sp, #0
- add r2, sp, #0x30
- bl MOD63_021DAE8C
- add r0, sp, #0
- str r4, [sp, #8]
- str r4, [sp, #0xc]
- bl FUN_0201FE94
- mov r1, #0x15
- lsl r1, r1, #4
- str r0, [r5, r1]
- add r0, r1, #0
- ldr r0, [r5, r0]
- mov r1, #0
- bl FUN_020200BC
- mov r0, #0x15
- lsl r0, r0, #4
- ldr r0, [r5, r0]
- mov r1, #0
- bl FUN_020200A0
- mov r0, #2
- lsl r0, r0, #0xc
- add r6, r6, #1
- add r4, r4, r0
- add r5, #0xc
- cmp r6, #0xa
- blt _021DB15C
- add sp, #0x54
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
- thumb_func_end MOD63_021DB150
-
- thumb_func_start MOD63_021DB1A0
-MOD63_021DB1A0: ; 0x021DB1A0
- ldr r3, _021DB1A8 ; =FUN_0201FDEC
- ldr r0, [r0]
- bx r3
- nop
-_021DB1A8: .word FUN_0201FDEC
- thumb_func_end MOD63_021DB1A0
-
- thumb_func_start MOD63_021DB1AC
-MOD63_021DB1AC: ; 0x021DB1AC
- push {r4, lr}
- sub sp, #8
- add r4, r0, #0
- cmp r1, #0xb4
- bne _021DB1CE
- mov r2, #3
- str r2, [sp]
- mov r0, #0
- str r0, [sp, #4]
- mov r0, #0x71
- lsl r0, r0, #2
- add r0, r4, r0
- add r1, r4, #0
- add r3, r2, #0
- bl MOD63_021DB1F8
- b _021DB1E8
-_021DB1CE:
- ldr r0, _021DB1F4 ; =0x0000011D
- cmp r1, r0
- bne _021DB1E8
- mov r2, #3
- add r0, #0xb7
- str r2, [sp]
- mov r1, #1
- str r1, [sp, #4]
- add r0, r4, r0
- add r1, r4, #0
- add r3, r2, #0
- bl MOD63_021DB1F8
-_021DB1E8:
- add r0, r4, #0
- bl MOD63_021DB1A0
- add sp, #8
- pop {r4, pc}
- nop
-_021DB1F4: .word 0x0000011D
- thumb_func_end MOD63_021DB1AC
-
- thumb_func_start MOD63_021DB1F8
-MOD63_021DB1F8: ; 0x021DB1F8
- push {r4, lr}
- add r4, r0, #0
- strb r2, [r4]
- ldr r2, _021DB228 ; =0xFFFFFFF8
- strb r3, [r4, #1]
- add r2, sp
- ldrb r0, [r2, #0x10]
- strb r0, [r4, #2]
- mov r0, #0
- strb r0, [r4, #4]
- strb r0, [r4, #3]
- mov r0, #0x53
- lsl r0, r0, #2
- add r0, r1, r0
- str r0, [r4, #0xc]
- ldrb r0, [r2, #0x14]
- add r1, r4, #0
- mov r2, #0xa
- strb r0, [r4, #5]
- ldr r0, _021DB22C ; =MOD63_021DB2F8
- bl FUN_0200CA44
- str r0, [r4, #8]
- pop {r4, pc}
- .align 2, 0
-_021DB228: .word 0xFFFFFFF8
-_021DB22C: .word MOD63_021DB2F8
- thumb_func_end MOD63_021DB1F8
-
- thumb_func_start MOD63_021DB230
-MOD63_021DB230: ; 0x021DB230
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- add r6, r1, #0
- str r0, [sp]
- cmp r2, #0
- bne _021DB240
- mov r7, #0x40
- b _021DB242
-_021DB240:
- mov r7, #0x20
-_021DB242:
- mov r5, #0
- cmp r6, #0
- bls _021DB2BE
-_021DB248:
- ldr r0, [sp]
- mov r1, #0xa
- bl MOD63_021DB2C8
- add r4, r0, #0
- ldr r0, [r4, #4]
- bl FUN_0202011C
- add r3, r0, #0
- ldmia r3!, {r0, r1}
- add r2, sp, #4
- stmia r2!, {r0, r1}
- ldr r0, [r3]
- str r0, [r2]
- bl LCRandom
- lsr r1, r0, #0x1f
- lsl r2, r0, #0x19
- sub r2, r2, r1
- mov r0, #0x19
- ror r2, r0
- add r0, r1, r2
- add r0, #0x40
- lsl r0, r0, #0xc
- str r0, [sp, #4]
- bl LCRandom
- lsr r1, r0, #0x1f
- lsl r2, r0, #0x1a
- sub r2, r2, r1
- mov r0, #0x1a
- ror r2, r0
- add r0, r1, r2
- add r0, r7, r0
- lsl r0, r0, #0xc
- str r0, [sp, #8]
- ldr r0, [r4, #4]
- add r1, sp, #4
- bl FUN_02020044
- ldr r0, [r4, #4]
- mov r1, #1
- bl FUN_020200BC
- ldr r0, [r4, #4]
- mov r1, #1
- bl FUN_020200A0
- ldr r0, _021DB2C4 ; =MOD63_021DB334
- add r1, r4, #0
- mov r2, #0x14
- bl FUN_0200CA44
- str r0, [r4, #8]
- add r0, r5, #1
- lsl r0, r0, #0x18
- lsr r5, r0, #0x18
- cmp r5, r6
- blo _021DB248
-_021DB2BE:
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_021DB2C4: .word MOD63_021DB334
- thumb_func_end MOD63_021DB230
-
- thumb_func_start MOD63_021DB2C8
-MOD63_021DB2C8: ; 0x021DB2C8
- push {r4, lr}
- mov r4, #0
- mov r2, #0xc
-_021DB2CE:
- add r1, r4, #0
- mul r1, r2
- add r3, r0, r1
- ldrb r1, [r0, r1]
- cmp r1, #0
- bne _021DB2E6
- mov r0, #1
- strb r0, [r3]
- mov r0, #0
- strb r0, [r3, #1]
- add r0, r3, #0
- pop {r4, pc}
-_021DB2E6:
- add r1, r4, #1
- lsl r1, r1, #0x18
- lsr r4, r1, #0x18
- cmp r4, #0xa
- blo _021DB2CE
- bl ErrorHandling
- mov r0, #0
- pop {r4, pc}
- thumb_func_end MOD63_021DB2C8
-
- thumb_func_start MOD63_021DB2F8
-MOD63_021DB2F8: ; 0x021DB2F8
- push {r3, r4, r5, lr}
- add r4, r1, #0
- ldrb r1, [r4, #4]
- add r5, r0, #0
- add r0, r1, #1
- strb r0, [r4, #4]
- ldrb r0, [r4, #1]
- cmp r1, r0
- blo _021DB330
- ldrb r1, [r4]
- ldrb r2, [r4, #5]
- ldr r0, [r4, #0xc]
- bl MOD63_021DB230
- mov r0, #0
- strb r0, [r4, #4]
- ldrb r0, [r4, #3]
- add r0, r0, #1
- strb r0, [r4, #3]
- ldrb r1, [r4, #3]
- ldrb r0, [r4, #2]
- cmp r1, r0
- blo _021DB330
- add r0, r5, #0
- bl FUN_0200CAB4
- mov r0, #0
- str r0, [r4, #8]
-_021DB330:
- pop {r3, r4, r5, pc}
- .align 2, 0
- thumb_func_end MOD63_021DB2F8
-
- thumb_func_start MOD63_021DB334
-MOD63_021DB334: ; 0x021DB334
- push {r3, r4, r5, r6, lr}
- sub sp, #0xc
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, #4]
- bl FUN_0202011C
- add r6, r0, #0
- add r3, sp, #0
- ldmia r6!, {r0, r1}
- add r2, r3, #0
- stmia r3!, {r0, r1}
- ldr r0, [r6]
- str r0, [r3]
- mov r0, #3
- ldr r1, [sp, #4]
- lsl r0, r0, #0xc
- add r0, r1, r0
- str r0, [sp, #4]
- ldr r0, [r4, #4]
- add r1, r2, #0
- bl FUN_02020044
- ldrb r0, [r4, #1]
- add r0, r0, #1
- strb r0, [r4, #1]
- ldrb r0, [r4, #1]
- cmp r0, #0x50
- blo _021DB388
- add r0, r5, #0
- bl FUN_0200CAB4
- mov r1, #0
- str r1, [r4, #8]
- strb r1, [r4]
- ldr r0, [r4, #4]
- bl FUN_020200BC
- ldr r0, [r4, #4]
- mov r1, #0
- bl FUN_020200A0
-_021DB388:
- add sp, #0xc
- pop {r3, r4, r5, r6, pc}
- thumb_func_end MOD63_021DB334
-
- thumb_func_start MOD63_021DB38C
-MOD63_021DB38C: ; 0x021DB38C
- ldr r3, _021DB394 ; =MOD63_021DB398
- mov r1, #2
- bx r3
- nop
-_021DB394: .word MOD63_021DB398
- thumb_func_end MOD63_021DB38C
-
- thumb_func_start MOD63_021DB398
-MOD63_021DB398: ; 0x021DB398
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- add r6, r0, #0
- ldr r0, [r6, #4]
- add r7, r1, #0
- str r0, [sp]
- ldr r5, _021DB418 ; =0x00000000
- beq _021DB414
-_021DB3A8:
- ldr r0, [sp]
- ldr r1, [r6]
- bl MOD63_021DB2C8
- add r4, r0, #0
- ldr r0, [r4, #4]
- bl FUN_0202011C
- add r3, r0, #0
- ldmia r3!, {r0, r1}
- add r2, sp, #4
- stmia r2!, {r0, r1}
- ldr r0, [r3]
- str r0, [r2]
- bl LCRandom
- mov r1, #0xe0
- bl _s32_div_f
- add r1, #0xa
- lsl r0, r1, #0xc
- str r0, [sp, #4]
- bl LCRandom
- mov r1, #0x38
- bl _s32_div_f
- ldr r0, _021DB41C ; =0x0000013A
- add r0, r1, r0
- lsl r0, r0, #0xc
- str r0, [sp, #8]
- ldr r0, [r4, #4]
- add r1, sp, #4
- bl FUN_02020044
- ldr r0, [r4, #4]
- mov r1, #1
- bl FUN_020200BC
- ldr r0, [r4, #4]
- mov r1, #1
- bl FUN_020200A0
- ldr r0, _021DB420 ; =MOD63_021DB424
- add r1, r4, #0
- mov r2, #0x14
- bl FUN_0200CA44
- str r0, [r4, #8]
- add r0, r5, #1
- lsl r0, r0, #0x18
- lsr r5, r0, #0x18
- cmp r5, r7
- blo _021DB3A8
-_021DB414:
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_021DB418: .word 0x00000000
-_021DB41C: .word 0x0000013A
-_021DB420: .word MOD63_021DB424
- thumb_func_end MOD63_021DB398
-
- thumb_func_start MOD63_021DB424
-MOD63_021DB424: ; 0x021DB424
- push {r4, lr}
- add r4, r1, #0
- ldrb r1, [r4, #1]
- add r1, r1, #1
- strb r1, [r4, #1]
- ldrb r1, [r4, #1]
- cmp r1, #8
- blo _021DB44C
- bl FUN_0200CAB4
- mov r1, #0
- str r1, [r4, #8]
- strb r1, [r4]
- ldr r0, [r4, #4]
- bl FUN_020200BC
- ldr r0, [r4, #4]
- mov r1, #0
- bl FUN_020200A0
-_021DB44C:
- pop {r4, pc}
- .align 2, 0
- thumb_func_end MOD63_021DB424
-
- thumb_func_start MOD63_021DB450
-MOD63_021DB450: ; 0x021DB450
- push {r4, lr}
- ldr r3, _021DB470 ; =UNK_021064B8
- mov r2, #0
- ldr r3, [r3]
- blx r3
- add r4, r0, #0
- bl FUN_0201327C
- cmp r4, #0
- bne _021DB468
- bl ErrorHandling
-_021DB468:
- lsl r0, r4, #0x10
- lsr r0, r0, #0xd
- pop {r4, pc}
- nop
-_021DB470: .word UNK_021064B8
- thumb_func_end MOD63_021DB450
-
- thumb_func_start MOD63_021DB474
-MOD63_021DB474: ; 0x021DB474
- push {r4, lr}
- ldr r3, _021DB494 ; =UNK_021064C0
- mov r2, #1
- ldr r3, [r3]
- blx r3
- add r4, r0, #0
- bne _021DB486
- bl ErrorHandling
-_021DB486:
- add r0, r4, #0
- bl FUN_020132BC
- lsl r0, r4, #0x10
- lsr r0, r0, #0xd
- pop {r4, pc}
- nop
-_021DB494: .word UNK_021064C0
- thumb_func_end MOD63_021DB474
-
- thumb_func_start MOD63_021DB498
-MOD63_021DB498: ; 0x021DB498
- mov r0, #0x20
- bx lr
- thumb_func_end MOD63_021DB498
-
- thumb_func_start MOD63_021DB49C
-MOD63_021DB49C: ; 0x021DB49C
- push {r4, r5, r6, r7, lr}
- sub sp, #0x2c
- ldr r3, _021DB56C ; =MOD63_021DBECC
- add r5, r0, #0
- ldmia r3!, {r0, r1}
- add r2, sp, #0x10
- stmia r2!, {r0, r1}
- ldr r0, [r3]
- str r0, [r2]
- mov r0, #0x4c
- bl FUN_02006D98
- ldr r7, _021DB570 ; =MOD63_021DBEF0
- str r0, [r5]
- mov r4, #0
-_021DB4BA:
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- str r0, [sp, #8]
- lsl r6, r4, #2
- add r1, sp, #0x10
- ldr r1, [r1, r6]
- add r0, sp, #0x1c
- lsl r1, r1, #0x10
- lsr r1, r1, #0x10
- mov r2, #0
- mov r3, #2
- bl FUN_02068C00
- ldr r0, _021DB574 ; =0x000003FF
- lsl r2, r4, #3
- str r0, [sp]
- str r4, [sp, #4]
- mov r0, #0
- str r0, [sp, #8]
- str r0, [sp, #0xc]
- add r3, r7, r2
- ldr r0, [r5]
- ldr r2, [r7, r2]
- ldr r3, [r3, #4]
- add r1, sp, #0x1c
- add r6, r5, r6
- bl FUN_020073A0
- mov r1, #6
- mov r2, #1
- str r0, [r6, #4]
- bl FUN_02007558
- add r0, r4, #1
- lsl r0, r0, #0x18
- lsr r4, r0, #0x18
- cmp r4, #3
- blo _021DB4BA
- ldr r0, [r5, #8]
- mov r1, #0x23
- mov r2, #1
- bl FUN_02007558
- mov r0, #1
- str r0, [r5, #0x10]
- bl FUN_02012CC8
- mov r1, #0x12
- mov r0, #0x4c
- lsl r1, r1, #0xa
- bl AllocFromHeap
- str r0, [r5, #0x14]
- mov r0, #1
- str r0, [sp]
- mov r0, #0x4c
- str r0, [sp, #4]
- mov r3, #0x12
- ldr r0, _021DB578 ; =MOD63_021DB450
- ldr r1, _021DB57C ; =MOD63_021DB474
- ldr r2, [r5, #0x14]
- lsl r3, r3, #0xa
- bl FUN_02012CDC
- str r0, [r5, #0x18]
- bl FUN_0201343C
- add r2, r0, #0
- mov r0, #1
- mov r1, #0xe1
- lsl r0, r0, #0xc
- lsl r1, r1, #0xe
- bl FUN_0201EC94
- mov r0, #0x3d
- mov r1, #4
- mov r2, #0x4c
- bl FUN_0201318C
- add r1, r0, #0
- ldr r0, [r5, #0x18]
- mov r2, #0xa
- mov r3, #1
- bl FUN_02013194
- add sp, #0x2c
- pop {r4, r5, r6, r7, pc}
- nop
-_021DB56C: .word MOD63_021DBECC
-_021DB570: .word MOD63_021DBEF0
-_021DB574: .word 0x000003FF
-_021DB578: .word MOD63_021DB450
-_021DB57C: .word MOD63_021DB474
- thumb_func_end MOD63_021DB49C
-
- thumb_func_start MOD63_021DB580
-MOD63_021DB580: ; 0x021DB580
- push {r4, lr}
- add r4, r0, #0
- ldr r0, [r4, #0x18]
- bl FUN_02012DE4
- ldr r0, [r4, #0x14]
- bl FreeToHeap
- ldr r0, [r4]
- bl FUN_020072E8
- pop {r4, pc}
- thumb_func_end MOD63_021DB580
-
- thumb_func_start MOD63_021DB598
-MOD63_021DB598: ; 0x021DB598
- push {r3, lr}
- cmp r0, #0
- beq _021DB5A4
- ldr r0, [r0]
- bl FUN_020081C4
-_021DB5A4:
- pop {r3, pc}
- .align 2, 0
- thumb_func_end MOD63_021DB598
-
- thumb_func_start MOD63_021DB5A8
-MOD63_021DB5A8: ; 0x021DB5A8
- push {r4, lr}
- add r4, r0, #0
- beq _021DB5C8
- bl FUN_020222AC
- bl FUN_020B02C8
- ldr r0, [r4]
- bl FUN_02006ED4
- bl MOD63_021DB934
- mov r0, #1
- mov r1, #0
- bl FUN_020222B4
-_021DB5C8:
- pop {r4, pc}
- .align 2, 0
- thumb_func_end MOD63_021DB5A8
-
- thumb_func_start MOD63_021DB5CC
-MOD63_021DB5CC: ; 0x021DB5CC
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r4, r0, #0
- add r7, r2, #0
- ldrb r2, [r4, #0x1c]
- add r5, r4, #0
- add r6, r1, #0
- add r5, #0x1c
- cmp r2, #5
- bls _021DB5E2
- b _021DB6FC
-_021DB5E2:
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_021DB5EE: ; jump table
- .short _021DB5FA - _021DB5EE - 2 ; case 0
- .short _021DB63C - _021DB5EE - 2 ; case 1
- .short _021DB658 - _021DB5EE - 2 ; case 2
- .short _021DB690 - _021DB5EE - 2 ; case 3
- .short _021DB6BE - _021DB5EE - 2 ; case 4
- .short _021DB6E4 - _021DB5EE - 2 ; case 5
-_021DB5FA:
- ldr r0, _021DB704 ; =0x0400004A
- mov r1, #0x3f
- ldrh r2, [r0]
- add r7, r4, #4
- bic r2, r1
- mov r1, #0x11
- orr r1, r2
- mov r2, #0x20
- orr r1, r2
- strh r1, [r0]
- lsl r0, r6, #2
- str r0, [sp]
- ldr r0, [r7, r0]
- mov r1, #0xc
- lsl r2, r2, #5
- bl FUN_02007558
- ldr r0, [sp]
- mov r2, #1
- ldr r0, [r7, r0]
- mov r1, #0xd
- lsl r2, r2, #0xa
- bl FUN_02007558
- ldr r0, [sp]
- mov r1, #6
- ldr r0, [r7, r0]
- mov r2, #0
- bl FUN_02007558
- ldrb r0, [r5]
- add r0, r0, #1
- strb r0, [r5]
-_021DB63C:
- ldr r2, _021DB708 ; =MOD63_021DBED8
- lsl r3, r6, #3
- ldr r2, [r2, r3]
- add r0, r4, #0
- add r1, r6, #0
- blx r2
- cmp r0, #0
- beq _021DB6FC
- mov r0, #0
- strb r0, [r4, #0x1d]
- ldrb r0, [r5]
- add r0, r0, #1
- strb r0, [r5]
- b _021DB6FC
-_021DB658:
- ldr r0, [r4, #0x18]
- mov r1, #1
- bl FUN_02013440
- lsl r0, r6, #2
- str r0, [sp, #4]
- ldr r1, _021DB70C ; =MOD63_021DBF08
- lsl r6, r6, #3
- ldr r3, [sp, #4]
- add r7, r4, #4
- ldr r0, [r4, #0x18]
- ldr r1, [r1, r6]
- ldr r2, _021DB710 ; =MOD63_021DB940
- ldr r3, [r7, r3]
- bl FUN_020133AC
- ldr r1, _021DB714 ; =MOD63_021DBF0C
- ldr r3, [sp, #4]
- ldr r0, [r4, #0x18]
- ldr r1, [r1, r6]
- ldr r2, _021DB710 ; =MOD63_021DB940
- ldr r3, [r7, r3]
- bl FUN_020133AC
- ldrb r0, [r5]
- add r0, r0, #1
- strb r0, [r5]
- b _021DB6FC
-_021DB690:
- ldr r0, [r4, #0x18]
- bl FUN_020133C8
- cmp r0, #0
- bne _021DB6FC
- ldr r0, _021DB718 ; =MOD63_021DBEC0
- lsl r1, r6, #2
- ldr r0, [r0, r1]
- cmp r7, r0
- blt _021DB6FC
- ldr r1, _021DB704 ; =0x0400004A
- mov r0, #0x3f
- ldrh r2, [r1]
- bic r2, r0
- mov r0, #0x10
- orr r2, r0
- mov r0, #0x20
- orr r0, r2
- strh r0, [r1]
- ldrb r0, [r5]
- add r0, r0, #1
- strb r0, [r5]
- b _021DB6FC
-_021DB6BE:
- ldr r2, _021DB71C ; =MOD63_021DBEDC
- lsl r3, r6, #3
- ldr r2, [r2, r3]
- blx r2
- cmp r0, #0
- beq _021DB6FC
- lsl r0, r6, #2
- add r0, r4, r0
- ldr r0, [r0, #4]
- mov r1, #6
- mov r2, #1
- bl FUN_02007558
- mov r0, #0
- strb r0, [r4, #0x1d]
- ldrb r0, [r5]
- add r0, r0, #1
- strb r0, [r5]
- b _021DB6FC
-_021DB6E4:
- ldrb r0, [r4, #0x1d]
- add r0, r0, #1
- strb r0, [r4, #0x1d]
- ldrb r0, [r4, #0x1d]
- cmp r0, #0x14
- blo _021DB6FC
- mov r0, #0
- strb r0, [r4, #0x1d]
- strb r0, [r5]
- add sp, #8
- mov r0, #1
- pop {r3, r4, r5, r6, r7, pc}
-_021DB6FC:
- mov r0, #0
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_021DB704: .word 0x0400004A
-_021DB708: .word MOD63_021DBED8
-_021DB70C: .word MOD63_021DBF08
-_021DB710: .word MOD63_021DB940
-_021DB714: .word MOD63_021DBF0C
-_021DB718: .word MOD63_021DBEC0
-_021DB71C: .word MOD63_021DBEDC
- thumb_func_end MOD63_021DB5CC
-
- thumb_func_start MOD63_021DB720
-MOD63_021DB720: ; 0x021DB720
- push {r3, r4, r5, lr}
- add r5, r0, #0
- lsl r0, r1, #2
- add r0, r5, r0
- ldr r4, [r0, #4]
- mov r1, #0
- add r0, r4, #0
- mov r2, #6
- bl FUN_020079E0
- mov r1, #1
- add r2, r1, #0
- add r0, r4, #0
- sub r2, #0x11
- bl FUN_020079E0
- mov r1, #0xc
- add r2, r1, #0
- add r0, r4, #0
- sub r2, #0x8c
- bl FUN_020079E0
- mov r1, #0xd
- add r2, r1, #0
- add r0, r4, #0
- sub r2, #0x8d
- bl FUN_020079E0
- ldrb r0, [r5, #0x1d]
- add r0, r0, #1
- strb r0, [r5, #0x1d]
- ldrb r0, [r5, #0x1d]
- cmp r0, #6
- blo _021DB780
- mov r1, #0xc
- add r2, r1, #0
- add r0, r4, #0
- add r2, #0xf4
- bl FUN_02007558
- mov r1, #0xd
- add r2, r1, #0
- add r0, r4, #0
- add r2, #0xf3
- bl FUN_02007558
- mov r0, #1
- pop {r3, r4, r5, pc}
-_021DB780:
- mov r0, #0
- pop {r3, r4, r5, pc}
- thumb_func_end MOD63_021DB720
-
- thumb_func_start MOD63_021DB784
-MOD63_021DB784: ; 0x021DB784
- push {r3, r4, r5, lr}
- add r5, r0, #0
- lsl r0, r1, #2
- add r0, r5, r0
- ldr r4, [r0, #4]
- mov r1, #0
- add r0, r4, #0
- sub r2, r1, #3
- bl FUN_020079E0
- mov r1, #1
- add r2, r1, #0
- add r0, r4, #0
- sub r2, #0x13
- bl FUN_020079E0
- ldrb r0, [r5, #0x1d]
- add r0, r0, #1
- strb r0, [r5, #0x1d]
- ldrb r0, [r5, #0x1d]
- cmp r0, #6
- blo _021DB7CC
- mov r1, #0xc
- add r2, r1, #0
- add r0, r4, #0
- add r2, #0xf4
- bl FUN_02007558
- mov r1, #0xd
- add r2, r1, #0
- add r0, r4, #0
- add r2, #0xf3
- bl FUN_02007558
- mov r0, #1
- pop {r3, r4, r5, pc}
-_021DB7CC:
- mov r0, #0
- pop {r3, r4, r5, pc}
- thumb_func_end MOD63_021DB784
-
- thumb_func_start MOD63_021DB7D0
-MOD63_021DB7D0: ; 0x021DB7D0
- push {r3, r4, r5, lr}
- add r5, r0, #0
- lsl r0, r1, #2
- add r0, r5, r0
- ldr r4, [r0, #4]
- mov r1, #0
- add r2, r1, #0
- add r0, r4, #0
- sub r2, #0x10
- bl FUN_020079E0
- mov r1, #1
- add r2, r1, #0
- add r0, r4, #0
- sub r2, #0x11
- bl FUN_020079E0
- mov r1, #0xc
- add r2, r1, #0
- add r0, r4, #0
- sub r2, #0x8c
- bl FUN_020079E0
- mov r1, #0xd
- add r2, r1, #0
- add r0, r4, #0
- sub r2, #0x8d
- bl FUN_020079E0
- ldrb r0, [r5, #0x1d]
- add r0, r0, #1
- strb r0, [r5, #0x1d]
- ldrb r0, [r5, #0x1d]
- cmp r0, #6
- blo _021DB832
- mov r1, #0xc
- add r2, r1, #0
- add r0, r4, #0
- add r2, #0xf4
- bl FUN_02007558
- mov r1, #0xd
- add r2, r1, #0
- add r0, r4, #0
- add r2, #0xf3
- bl FUN_02007558
- mov r0, #1
- pop {r3, r4, r5, pc}
-_021DB832:
- mov r0, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
- thumb_func_end MOD63_021DB7D0
-
- thumb_func_start MOD63_021DB838
-MOD63_021DB838: ; 0x021DB838
- push {r3, r4, r5, lr}
- add r5, r0, #0
- lsl r0, r1, #2
- add r0, r5, r0
- ldr r4, [r0, #4]
- mov r1, #0
- add r0, r4, #0
- sub r2, r1, #6
- bl FUN_020079E0
- mov r1, #1
- add r2, r1, #0
- add r0, r4, #0
- sub r2, #0x11
- bl FUN_020079E0
- ldrb r0, [r5, #0x1d]
- add r0, r0, #1
- strb r0, [r5, #0x1d]
- ldrb r0, [r5, #0x1d]
- cmp r0, #6
- blo _021DB880
- mov r1, #0xc
- add r2, r1, #0
- add r0, r4, #0
- add r2, #0xf4
- bl FUN_02007558
- mov r1, #0xd
- add r2, r1, #0
- add r0, r4, #0
- add r2, #0xf3
- bl FUN_02007558
- mov r0, #1
- pop {r3, r4, r5, pc}
-_021DB880:
- mov r0, #0
- pop {r3, r4, r5, pc}
- thumb_func_end MOD63_021DB838
-
- thumb_func_start MOD63_021DB884
-MOD63_021DB884: ; 0x021DB884
- push {r3, r4, r5, lr}
- add r5, r0, #0
- lsl r0, r1, #2
- add r0, r5, r0
- ldr r4, [r0, #4]
- mov r1, #0
- add r0, r4, #0
- mov r2, #8
- bl FUN_020079E0
- mov r1, #1
- add r2, r1, #0
- add r0, r4, #0
- sub r2, #0x11
- bl FUN_020079E0
- mov r1, #0xc
- add r2, r1, #0
- add r0, r4, #0
- sub r2, #0x8c
- bl FUN_020079E0
- mov r1, #0xd
- add r2, r1, #0
- add r0, r4, #0
- sub r2, #0x8d
- bl FUN_020079E0
- ldrb r0, [r5, #0x1d]
- add r0, r0, #1
- strb r0, [r5, #0x1d]
- ldrb r0, [r5, #0x1d]
- cmp r0, #6
- blo _021DB8E4
- mov r1, #0xc
- add r2, r1, #0
- add r0, r4, #0
- add r2, #0xf4
- bl FUN_02007558
- mov r1, #0xd
- add r2, r1, #0
- add r0, r4, #0
- add r2, #0xf3
- bl FUN_02007558
- mov r0, #1
- pop {r3, r4, r5, pc}
-_021DB8E4:
- mov r0, #0
- pop {r3, r4, r5, pc}
- thumb_func_end MOD63_021DB884
-
- thumb_func_start MOD63_021DB8E8
-MOD63_021DB8E8: ; 0x021DB8E8
- push {r3, r4, r5, lr}
- add r5, r0, #0
- lsl r0, r1, #2
- add r0, r5, r0
- ldr r4, [r0, #4]
- mov r1, #0
- add r0, r4, #0
- mov r2, #6
- bl FUN_020079E0
- mov r1, #1
- add r2, r1, #0
- add r0, r4, #0
- sub r2, #0x15
- bl FUN_020079E0
- ldrb r0, [r5, #0x1d]
- add r0, r0, #1
- strb r0, [r5, #0x1d]
- ldrb r0, [r5, #0x1d]
- cmp r0, #6
- blo _021DB930
- mov r1, #0xc
- add r2, r1, #0
- add r0, r4, #0
- add r2, #0xf4
- bl FUN_02007558
- mov r1, #0xd
- add r2, r1, #0
- add r0, r4, #0
- add r2, #0xf3
- bl FUN_02007558
- mov r0, #1
- pop {r3, r4, r5, pc}
-_021DB930:
- mov r0, #0
- pop {r3, r4, r5, pc}
- thumb_func_end MOD63_021DB8E8
-
- thumb_func_start MOD63_021DB934
-MOD63_021DB934: ; 0x021DB934
- push {r3, lr}
- bl FUN_02013364
- bl FUN_02013388
- pop {r3, pc}
- thumb_func_end MOD63_021DB934
-
- thumb_func_start MOD63_021DB940
-MOD63_021DB940: ; 0x021DB940
- push {r4, r5, lr}
- sub sp, #0xc
- add r5, r0, #0
- bl FUN_0201341C
- add r2, sp, #0
- mov r1, #0
- str r1, [r2]
- str r1, [r2, #4]
- add r4, r0, #0
- str r1, [r2, #8]
- bl FUN_0200782C
- sub r0, #0x80
- mov r1, #0xac
- mul r1, r0
- str r1, [sp]
- add r0, r4, #0
- mov r1, #1
- bl FUN_0200782C
- sub r0, #0x60
- mov r1, #0xac
- mul r1, r0
- str r1, [sp, #4]
- mov r0, #0x40
- str r0, [sp, #8]
- ldr r0, [r5, #0x20]
- ldr r1, [sp]
- ldr r0, [r0]
- ldr r0, [r0, #4]
- add r0, r1, r0
- str r0, [r5, #0x28]
- ldr r0, [r5, #0x20]
- ldr r1, [sp, #4]
- ldr r0, [r0]
- ldr r0, [r0, #8]
- add r0, r1, r0
- str r0, [r5, #0x2c]
- ldr r0, [r5, #0x20]
- ldr r1, [sp, #8]
- ldr r0, [r0]
- ldr r0, [r0, #0xc]
- add r0, r1, r0
- str r0, [r5, #0x30]
- add sp, #0xc
- pop {r4, r5, pc}
- .align 2, 0
- thumb_func_end MOD63_021DB940
-
- .section .rodata
-
- .global MOD63_021DB9A0
-MOD63_021DB9A0: ; 0x021DB9A0
- .byte 0x04, 0x02, 0x13, 0x1C, 0x02, 0x02, 0x01, 0x00
-
- .global MOD63_021DB9A8
-MOD63_021DB9A8: ; 0x021DB9A8
- .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
- .byte 0x00, 0x10, 0x00, 0x00
-
- .global MOD63_021DB9B4
-MOD63_021DB9B4: ; 0x021DB9B4
- .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x01, 0x00, 0x00, 0x00
-
- .global MOD63_021DB9C4
-MOD63_021DB9C4: ; 0x021DB9C4
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x06, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
- .global MOD63_021DB9E0
-MOD63_021DB9E0: ; 0x021DB9E0
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x01, 0x00, 0x05, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
- .global MOD63_021DB9FC
-MOD63_021DB9FC: ; 0x021DB9FC
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x04, 0x00
- .byte 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
- .global MOD63_021DB9A18
-MOD63_021DBA18: ; 0x021DBA18
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x04, 0x00, 0x00, 0x03, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
-
- .global MOD63_021DBA34
-MOD63_021DBA34: ; 0x021DBA34
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
- .global MOD63_021DBA50
-MOD63_021DBA50: ; 0x021DBA50
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x01, 0x01, 0x07, 0x04, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
- .global MOD63_021DBA6C
-MOD63_021DBA6C: ; 0x021DBA6C
- .byte 0x00, 0x10, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
-
- .global MOD63_021DBA90
-MOD63_021DBA90: ; 0x021DBA90
- .byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x01, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00
-
- .global MOD63_021DBAB8
-MOD63_021DBAB8: ; 0x021DBAB8
- .word MOD63_021D74E0, MOD63_021D759C, MOD63_021D77B4, 0xFFFFFFFF
-
- .global MOD63_021DBAC8
-MOD63_021DBAC8: ; 0x021DBAC8
- .byte 0x00, 0x00, 0x80, 0xF6, 0x00, 0x00, 0x00, 0x00
-
- .global MOD63_021DBAD0
-MOD63_021DBAD0: ; 0x021DBAD0
- .byte 0x18, 0x4B, 0x00, 0x00, 0x42, 0x30, 0xFF, 0x7F
-
- .global MOD63_021DBAD8
-MOD63_021DBAD8: ; 0x021DBAD8
- .byte 0x00, 0x00, 0xF8, 0xFF, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0xE4, 0xFF
-
- .global MOD63_021DBAE4
-MOD63_021DBAE4: ; 0x021DBAE4
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00
-
- .global MOD63_021DBAF0
-MOD63_021DBAF0: ; 0x021DBAF0
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00
-
- .global MOD63_021DBAFC
-MOD63_021DBAFC: ; 0x021DBAFC
- .byte 0x00, 0x10, 0x00, 0x00
- .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
-
- .global MOD63_021DBB08
-MOD63_021DBB08: ; 0x021DBB08
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
-
- .global MOD63_021DBB14
-MOD63_021DBB14: ; 0x021DBB14
- .byte 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0xFF
-
- .global MOD63_021DBB20
-MOD63_021DBB20: ; 0x021DBB20
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00
-
- .global MOD63_021DBB2C
-MOD63_021DBB2C: ; 0x021DBB2C
- .byte 0x1D, 0x00, 0x00, 0x00
- .byte 0x1E, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00
-
- .global MOD63_021DBB3C
-MOD63_021DBB3C: ; 0x021DBB3C
- .byte 0x01, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
-
- .global MOD63_021DBB4C
-MOD63_021DBB4C: ; 0x021DBB4C
- .byte 0x01, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
- .global MOD63_021DBB5C
-MOD63_021DBB5C: ; 0x021DBB5C
- .byte 0x00, 0x00, 0x84, 0x10
- .byte 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10
-
- .global MOD63_021DBB6C
-MOD63_021DBB6C: ; 0x021DBB6C
- .byte 0x01, 0x00, 0x00, 0x00
- .byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0xAE, 0x29, 0x00
-
- .global MOD63_021DBB80
-MOD63_021DBB80: ; 0x021DBB80
- .byte 0x02, 0xD6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x05, 0x00, 0x00, 0x00, 0x00
-
- .global MOD63_021DBB90
-MOD63_021DBB90: ; 0x021DBB90
- .byte 0x40, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00
- .byte 0x44, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00
-
- .global MOD63_021DBBA8
-MOD63_021DBBA8: ; 0x021DBBA8
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x17, 0x03, 0x00, 0x02, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
-
- .global MOD63_021DBBC4
-MOD63_021DBBC4: ; 0x021DBBC4
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
- .global MOD63_021DBBE0
-MOD63_021DBBE0: ; 0x021DBBE0
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
- .global MOD63_021DBBFC
-MOD63_021DBBFC: ; 0x021DBBFC
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x02
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
- .global MOD63_021DBC18
-MOD63_021DBC18: ; 0x021DBC18
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
-
- .global MOD63_021DBC34
-MOD63_021DBC34: ; 0x021DBC34
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
- .global MOD63_021DBC50
-MOD63_021DBC50: ; 0x021DBC50
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
- .global MOD63_021DBC6C
-MOD63_021DBC6C: ; 0x021DBC6C
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x02
- .byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
- .global MOD63_021DBC88
-MOD63_021DBC88: ; 0x021DBC88
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
-
- .global MOD63_021DBCA4
-MOD63_021DBCA4: ; 0x021DBCA4
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x05, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
- .global MOD63_021DBCC0
-MOD63_021DBCC0: ; 0x021DBCC0
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x01, 0x00, 0x03, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
- .global MOD63_021DBCDC
-MOD63_021DBCDC: ; 0x021DBCDC
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
- .global MOD63_021DBCF8
-MOD63_021DBCF8: ; 0x021DBCF8
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x18, 0x00, 0x00, 0x03, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
-
- .global MOD63_021DBD14
-MOD63_021DBD14: ; 0x021DBD14
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x19, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
- .global MOD63_021DBD30
-MOD63_021DBD30: ; 0x021DBD30
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x04, 0x01, 0x1B, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
- .global MOD63_021DBD4C
-MOD63_021DBD4C: ; 0x021DBD4C
- .byte 0x00, 0x10, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
-
- .global MOD63_021DBD70
-MOD63_021DBD70: ; 0x021DBD70
- .byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x01, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00
-
- .global MOD63_021DBD98
-MOD63_021DBD98: ; 0x021DBD98
- .byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00
-
- .global MOD63_021DBDC0
-MOD63_021DBDC0: ; 0x021DBDC0
- .byte 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
- .global MOD63_021DBDE8
-MOD63_021DBDE8: ; 0x021DBDE8
- .byte 0x05, 0xF8, 0xFF, 0xFF, 0x24, 0xF2, 0xFF, 0xFF
- .byte 0x6E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
-
- .global MOD63_021DBE18
-MOD63_021DBE18: ; 0x021DBE18
- .word MOD63_021D8D10, MOD63_021D8D98, MOD63_021D8E68, 0xFFFFFFFF
-
- .global MOD63_021DBE28
-MOD63_021DBE28: ; 0x021DBE28
- .byte 0x05, 0x05, 0x05, 0x05, 0x4C, 0x00, 0x00, 0x00, 0x4C, 0x00, 0x00, 0x00
-
- .global MOD63_021DBE34
-MOD63_021DBE34: ; 0x021DBE34
- .byte 0x06, 0x00, 0x00, 0x00
- .byte 0x07, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00
-
- .global MOD63_021DBE40
-MOD63_021DBE40: ; 0x021DBE40
- .byte 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00
- .byte 0x05, 0x00, 0x00, 0x00
-
- .global MOD63_021DBE4C
-MOD63_021DBE4C: ; 0x021DBE4C
- .byte 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x4C, 0x00, 0x00, 0x00
-
- .global MOD63_021DBE5C
-MOD63_021DBE5C: ; 0x021DBE5C
- .byte 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00
- .byte 0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00
-
- .global MOD63_021DBE74
-MOD63_021DBE74: ; 0x021DBE74
- .byte 0x08, 0x01, 0x00, 0x00
- .byte 0x20, 0x01, 0x00, 0x00, 0x20, 0x01, 0x00, 0x00, 0xC8, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00
- .byte 0xE0, 0x00, 0x00, 0x00
-
- .global MOD63_021DBE8C
-MOD63_021DBE8C: ; 0x021DBE8C
- .byte 0x80, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00
- .byte 0xE0, 0x00, 0x00, 0x00, 0xD0, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x4C, 0x00, 0x00, 0x00
- .byte 0x4C, 0x00, 0x00, 0x00
-
- .global MOD63_021DBEAC
-MOD63_021DBEAC: ; 0x021DBEAC
- .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x4C, 0x00, 0x00, 0x00
-
- .global MOD63_021DBEBC
-MOD63_021DBEBC: ; 0x021DBEBC
- .byte 0x01, 0x01, 0x01, 0x01
-
- .global MOD63_021DBEC0
-MOD63_021DBEC0: ; 0x021DBEC0
- .byte 0x03, 0x07, 0x00, 0x00, 0xCE, 0x07, 0x00, 0x00
- .byte 0xA8, 0x08, 0x00, 0x00
-
- .global MOD63_021DBECC
-MOD63_021DBECC: ; 0x021DBECC
- .byte 0x83, 0x01, 0x00, 0x00, 0x86, 0x01, 0x00, 0x00, 0x89, 0x01, 0x00, 0x00
-
- .global MOD63_021DBED8
-MOD63_021DBED8: ; 0x021DBED8
- .word MOD63_021DB720
-
- .global MOD63_021DBEDC
-MOD63_021DBEDC: ; 0x021DBEDC
- .word MOD63_021DB784, MOD63_021DB7D0, MOD63_021DB838, MOD63_021DB884
- .word MOD63_021DB8E8
-
- .global MOD63_021DBEF0
-MOD63_021DBEF0: ; 0x021DBEF0
- .byte 0x80, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00
- .byte 0x00, 0x01, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00
-
- .global MOD63_021DBF08
-MOD63_021DBF08: ; 0x021DBF08
- .byte 0x04, 0x00, 0x00, 0x00
-
- .global MOD63_021DBF0C
-MOD63_021DBF0C: ; 0x021DBF0C
- .byte 0x05, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
-
- .section .data
-
- .global MOD63_021DBF40
-MOD63_021DBF40: ; 0x021DBF40
- .byte 0x08, 0x06, 0x06, 0x04
-
- .global MOD63_021DBF44
-MOD63_021DBF44: ; 0x021DBF44
- .byte 0x05, 0x04, 0x03, 0x01
-
- .global MOD63_021DBF48
-MOD63_021DBF48: ; 0x021DBF48
- .byte 0x08, 0x07, 0x06, 0x00
-
- .global MOD63_021DBF4C
-MOD63_021DBF4C: ; 0x021DBF4C
- .byte 0x00, 0x60, 0x00, 0x00
- .byte 0x00, 0x58, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00
-
- .global MOD63_021DBF58
-MOD63_021DBF58: ; 0x021DBF58
- .byte 0x00, 0x40, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00
- .byte 0x00, 0x58, 0x00, 0x00
-
- .global MOD63_021DBF64
-MOD63_021DBF64: ; 0x021DBF64
- .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
- .section .bss
-
- .global MOD63_021DBFA0
-MOD63_021DBFA0: ; 0x021DBFA0
- .space 0x20
-