Files
pokediamond/arm9/modules/63/asm/module_63.s
2020-05-29 11:29:42 -04:00

8687 lines
154 KiB
ArmAsm

.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 ; =0x021C48B8
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 ; =0x021C48B8
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 0x021C48B8
_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 ; =0x021DBE18
bl FUN_02000E7C
_021D7818:
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_021D781C: .word 0x020FF3D4
_021D7820: .word 0x020FF368
_021D7824: .word SDK_OVERLAY_MODULE_63_ID
_021D7828: .word 0x021DBE18
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 ; =0x021DBA90
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 0x021DBA90
thumb_func_end MOD63_021D7838
thumb_func_start MOD63_021D7858
MOD63_021D7858: ; 0x021D7858
ldr r0, _021D787C ; =0x021C48B8
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 0x021C48B8
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 ; =0x021DB9A8
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 0x021DB9A8
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 ; =0x021DBA6C
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 0x021DBA6C
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 ; =0x021DB9B4
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 ; =0x021DB9E0
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 ; =0x021DB9C4
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 ; =0x021DBA50
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 ; =0x021DBA34
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 ; =0x021DB9FC
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 ; =0x021DBA18
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 0x021DB9B4
_021D7B84: .word 0x021DB9E0
_021D7B88: .word 0x021DB9C4
_021D7B8C: .word 0x021DBA50
_021D7B90: .word 0x021DBA34
_021D7B94: .word 0x021DB9FC
_021D7B98: .word 0x021DBA18
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 ; =0x021C4918
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 0x021C4918
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 ; =0x021C4918
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 0x021C4918
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 FUN_0200A86C
add r7, r0, #0
mov r0, #0x40
add r1, r4, #0
bl FUN_020219F4
add r1, r6, #0
add r4, r0, #0
ldr r2, _021D85D0 ; =0x021DB9A0
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 FUN_0200A8E0
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 FUN_02021A20
add r0, r7, #0
bl FUN_0200A8B8
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 0x021DB9A0
_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 ; =0x021DBD70
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 0x021DBD70
thumb_func_end MOD63_021D8890
thumb_func_start MOD63_021D88B0
MOD63_021D88B0: ; 0x021D88B0
push {r4, lr}
sub sp, #0x28
ldr r4, _021D88CC ; =0x021DBD98
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 0x021DBD98
thumb_func_end MOD63_021D88B0
thumb_func_start MOD63_021D88D0
MOD63_021D88D0: ; 0x021D88D0
push {r4, lr}
sub sp, #0x28
ldr r4, _021D88EC ; =0x021DBDC0
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 0x021DBDC0
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 ; =0x021DBB4C
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 ; =0x021DBC88
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 ; =0x021DBC6C
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 ; =0x021DBBC4
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 ; =0x021DBBFC
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 ; =0x021DBC18
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 ; =0x021DBC34
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 0x021DBB4C
_021D89EC: .word 0x021DBC88
_021D89F0: .word 0x021DBC6C
_021D89F4: .word 0x021DBBC4
_021D89F8: .word 0x021DBBFC
_021D89FC: .word 0x021DBC18
_021D8A00: .word 0x021DBC34
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 ; =0x021DBB3C
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 ; =0x021DBC50
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 ; =0x021DBCA4
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 ; =0x021DBCC0
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 ; =0x021DBCDC
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 0x021DBB3C
_021D8AC8: .word 0xC7FFFFFF
_021D8ACC: .word 0x021DBC50
_021D8AD0: .word 0x021DBCA4
_021D8AD4: .word 0x021DBCC0
_021D8AD8: .word 0x021DBCDC
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 ; =0x021DBB6C
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 ; =0x021DBCF8
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 ; =0x021DBD14
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 ; =0x021DBD30
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 ; =0x021DBBA8
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 ; =0x021DBBE0
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 0x021DBB6C
_021D8BC0: .word 0xC7FFFFFF
_021D8BC4: .word 0x021DBCF8
_021D8BC8: .word 0x021DBD14
_021D8BCC: .word 0x021DBD30
_021D8BD0: .word 0x021DBBA8
_021D8BD4: .word 0x021DBBE0
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 ; =0x021064B8
mov r0, #2
mov r1, #0
ldr r3, [r3]
lsl r0, r0, #0xe
add r2, r1, #0
blx r3
ldr r3, _021D8C1C ; =0x021064C0
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 0x021064B8
_021D8C1C: .word 0x021064C0
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 ; =0x021DBB5C
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 0x021DBB5C
_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 ; =0x021C4918
strb r1, [r0, #5]
bl FUN_0201E7A0
bl getseed_LC
str r0, [r4, #0x14]
mov r0, #0
bl seedr_LC
mov r0, #1
pop {r4, pc}
.align 2, 0
_021D8D90: .word 0x00007FFF
_021D8D94: .word 0x021C4918
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 ; =0x021C48B8
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 ; =0x021C48B8
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 0x021C48B8
_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 seedr_LC
add r0, r5, #0
bl FUN_0200627C
mov r0, #0x4c
bl FUN_020168D0
ldr r0, _021D8E94 ; =SDK_OVERLAY_MODULE_63_ID
ldr r1, _021D8E98 ; =UNK63_021DBAB8
bl FUN_02000E7C
mov r0, #1
pop {r3, r4, r5, pc}
.align 2, 0
_021D8E94: .word SDK_OVERLAY_MODULE_63_ID
_021D8E98: .word UNK63_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 ; =0x021C4918
strb r1, [r0, #5]
bl FUN_0201E7A0
ldr r6, _021D958C ; =0x021DBDE8
ldr r7, _021D9590 ; =0x021DBAD0
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 0x021C4918
_021D958C: .word 0x021DBDE8
_021D9590: .word 0x021DBAD0
_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 ; =0x021DBB2C
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 0x021DBB2C
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 ; =0x021DBB90
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 ; =0x021DBAE4
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 ; =0x021DBB80
bl FUN_0201ECA8
ldr r0, _021D9978 ; =0x00000981
ldr r1, [r5, #0x44]
bl FUN_0201EEF0
ldr r4, _021D997C ; =0x021DBB08
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 0x021DBB90
_021D9968: .word 0x021DBAE4
_021D996C: .word 0x0029AEC1
_021D9970: .word 0x000005C1
_021D9974: .word 0x021DBB80
_021D9978: .word 0x00000981
_021D997C: .word 0x021DBB08
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 ; =0x021DBD4C
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 ; =0x021DBAFC
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 0x021DBD4C
_021D99E8: .word 0x021DBAFC
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 ; =0x021DBAD8
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 ; =0x021DBB80
bl FUN_0201ECA8
ldr r5, _021DA090 ; =0x021DBB20
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 ; =0x021DBAC8
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 ; =0x021DBB14
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 ; =0x021DBB80
bl FUN_0201ECA8
ldr r0, _021DA07C ; =0x000005C1
ldr r1, [r4, #0x44]
bl FUN_0201EEF0
ldr r5, _021DA0A0 ; =0x021DBAF0
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 0x021DBAD8
_021DA088: .word 0x0029AEC1
_021DA08C: .word 0x021DBB80
_021DA090: .word 0x021DBB20
_021DA094: .word 0x021DBAC8
_021DA098: .word 0x0000057D
_021DA09C: .word 0x021DBB14
_021DA0A0: .word 0x021DBAF0
_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 ; =0x021DBF40
ldrb r1, [r4, #3]
ldrb r0, [r0, r3]
cmp r1, r0
blo _021DA614
mov r1, #0
str r1, [sp]
ldr r6, _021DA638 ; =0x021DBF48
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 ; =0x021DBF44
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 ; =0x021DBF44
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 ; =0x021DBF40
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 0x021DBF40
_021DA638: .word 0x021DBF48
_021DA63C: .word 0x021DBF44
thumb_func_end MOD63_021DA5A0
thumb_func_start MOD63_021DA640
MOD63_021DA640: ; 0x021DA640
push {r4, lr}
sub sp, #0x10
ldr r4, _021DA66C ; =0x021DBE4C
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 0x021DBE4C
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 ; =0x021DBE28
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 0x021DBE28
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 ; =0x021DBE5C
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 ; =0x021DBE74
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 ; =0x021DBE8C
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 0x021DBE5C
_021DABC4: .word 0x021DBE74
_021DABC8: .word 0x021DBE8C
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 ; =0x021DBFA0
add r1, r7, #0
mov r2, #0x20
bl GX_LoadOBJPltt
pop {r3, r4, r5, r6, r7, pc}
_021DAD44:
ldr r0, _021DAD68 ; =0x021DBF64
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 0x021DBFA0
_021DAD68: .word 0x021DBF64
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 ; =0x021DBE40
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 ; =0x021DBE34
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 ; =0x021DBF4C
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 ; =0x021DBF58
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 0x021DBE40
_021DAE48: .word 0x021DBE34
_021DAE4C: .word 0x000005C8
_021DAE50: .word 0x021DBF4C
_021DAE54: .word 0x000005E6
_021DAE58: .word 0x021DBF58
thumb_func_end MOD63_021DAD6C
thumb_func_start MOD63_021DAE5C
MOD63_021DAE5C: ; 0x021DAE5C
push {r4, lr}
sub sp, #0x10
ldr r4, _021DAE88 ; =0x021DBEAC
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 0x021DBEAC
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 ; =0x021DBEBC
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 0x021DBEBC
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 rand_LC
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 rand_LC
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 rand_LC
mov r1, #0xe0
bl _s32_div_f
add r1, #0xa
lsl r0, r1, #0xc
str r0, [sp, #4]
bl rand_LC
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 ; =0x021064B8
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 0x021064B8
thumb_func_end MOD63_021DB450
thumb_func_start MOD63_021DB474
MOD63_021DB474: ; 0x021DB474
push {r4, lr}
ldr r3, _021DB494 ; =0x021064C0
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 0x021064C0
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 ; =0x021DBECC
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 ; =0x021DBEF0
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 0x021DBECC
_021DB570: .word 0x021DBEF0
_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 ; =0x021DBED8
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 ; =0x021DBF08
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 ; =0x021DBF0C
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 ; =0x021DBEC0
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 ; =0x021DBEDC
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 0x021DBED8
_021DB70C: .word 0x021DBF08
_021DB710: .word MOD63_021DB940
_021DB714: .word 0x021DBF0C
_021DB718: .word 0x021DBEC0
_021DB71C: .word 0x021DBEDC
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
; 0x021DB9A0
.byte 0x04, 0x02, 0x13, 0x1C, 0x02, 0x02, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
.byte 0x00, 0x10, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00, 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
.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, 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, 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, 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
.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, 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
.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 UNK63_021DBAB8
UNK63_021DBAB8: ; 0x021DBAB8
.word MOD63_021D74E0, MOD63_021D759C, MOD63_021D77B4, 0xFFFFFFFF
; 0x021DBAC8
.byte 0x00, 0x00, 0x80, 0xF6, 0x00, 0x00, 0x00, 0x00
.byte 0x18, 0x4B, 0x00, 0x00, 0x42, 0x30, 0xFF, 0x7F, 0x00, 0x00, 0xF8, 0xFF, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0xE4, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
.byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0xFF
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1D, 0x00, 0x00, 0x00
.byte 0x1E, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x10
.byte 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x01, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0xAE, 0x29, 0x00
.byte 0x02, 0xD6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x05, 0x00, 0x00, 0x00, 0x00
.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, 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, 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
.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, 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, 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, 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
.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, 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, 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, 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
.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, 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, 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, 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
.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, 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
.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, 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
.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, 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_UNK_021DBE18
MOD63_UNK_021DBE18:
.word MOD63_021D8D10, MOD63_021D8D98, MOD63_021D8E68, 0xFFFFFFFF
.byte 0x05, 0x05, 0x05, 0x05, 0x4C, 0x00, 0x00, 0x00, 0x4C, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00
.byte 0x07, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00
.byte 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x4C, 0x00, 0x00, 0x00, 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, 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, 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, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x4C, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x03, 0x07, 0x00, 0x00, 0xCE, 0x07, 0x00, 0x00
.byte 0xA8, 0x08, 0x00, 0x00, 0x83, 0x01, 0x00, 0x00, 0x86, 0x01, 0x00, 0x00, 0x89, 0x01, 0x00, 0x00
.byte 0x21, 0xB7, 0x1D, 0x02, 0x85, 0xB7, 0x1D, 0x02, 0xD1, 0xB7, 0x1D, 0x02, 0x39, 0xB8, 0x1D, 0x02
.byte 0x85, 0xB8, 0x1D, 0x02, 0xE9, 0xB8, 0x1D, 0x02, 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
.byte 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.section .data
; 0x021DBF40
.byte 0x08, 0x06, 0x06, 0x04, 0x05, 0x04, 0x03, 0x01, 0x08, 0x07, 0x06, 0x00, 0x00, 0x60, 0x00, 0x00
.byte 0x00, 0x58, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00
.byte 0x00, 0x58, 0x00, 0x00, 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
; 0x021DBFA0
.space 0x20