Files
pokediamond/arm9/modules/14/asm/module_14.s
2020-05-29 09:40:48 -04:00

30531 lines
521 KiB
ArmAsm

.include "asm/macros.inc"
.include "global.inc"
.section .text
.balign 4, 0
thumb_func_start MOD14_021D74E0
MOD14_021D74E0: ; 0x021D74E0
push {r3, r4, r5, lr}
mov r2, #1
add r5, r0, #0
mov r0, #3
mov r1, #9
lsl r2, r2, #0xe
bl FUN_0201681C
mov r2, #0xf
mov r0, #3
mov r1, #0xa
lsl r2, r2, #0xe
bl FUN_0201681C
mov r1, #0x87
add r0, r5, #0
lsl r1, r1, #2
mov r2, #9
bl FUN_02006268
add r4, r0, #0
beq _021D7544
add r0, r5, #0
bl FUN_0200628C
add r1, r0, #0
add r0, r4, #0
bl MOD14_021DB220
mov r0, #0x45
lsl r0, r0, #2
add r0, r4, r0
add r1, r4, #0
add r2, r4, #0
bl MOD14_021DC76C
mov r0, #0x1b
mov r1, #0
lsl r0, r0, #4
str r1, [r4, r0]
add r0, r4, #0
bl MOD14_021D762C
mov r1, #0x6a
lsl r1, r1, #2
str r0, [r4, r1]
ldr r1, _021D7548 ; =MOD14_021D7680
add r0, r4, #0
bl MOD14_021D7610
_021D7544:
mov r0, #1
pop {r3, r4, r5, pc}
.align 2, 0
_021D7548: .word MOD14_021D7680
thumb_func_start MOD14_021D754C
MOD14_021D754C: ; 0x021D754C
push {r4, lr}
bl FUN_02006278
mov r1, #0x6b
add r4, r0, #0
lsl r1, r1, #2
ldr r2, [r4, r1]
cmp r2, #0
beq _021D7568
add r1, #8
add r1, r4, r1
blx r2
mov r0, #0
pop {r4, pc}
_021D7568:
sub r0, r1, #4
ldr r0, [r4, r0]
cmp r0, #0
beq _021D75AA
ldr r0, _021D75B4 ; =0x021C48B8
ldr r2, [r0, #0x48]
mov r0, #2
lsl r0, r0, #0xa
tst r0, r2
beq _021D759E
sub r1, #0x98
ldr r0, [r4, r1]
bl MOD14_021DCBC0
cmp r0, #1
bne _021D759E
add r0, r4, #0
bl MOD14_021DC394
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x2b
bl MOD14_021DCB2C
mov r0, #0
pop {r4, pc}
_021D759E:
mov r1, #0x6a
lsl r1, r1, #2
ldr r1, [r4, r1]
add r0, r4, #0
blx r1
pop {r4, pc}
_021D75AA:
bl ErrorHandling
mov r0, #1
pop {r4, pc}
nop
_021D75B4: .word 0x021C48B8
thumb_func_start MOD14_021D75B8
MOD14_021D75B8: ; 0x021D75B8
push {r4, lr}
bl FUN_02006278
mov r1, #0x49
add r4, r0, #0
lsl r1, r1, #2
ldr r0, [r4, r1]
add r1, #0x95
bl FUN_0206BAE4
cmp r0, #0
bne _021D75DE
mov r0, #0x47
lsl r0, r0, #2
ldr r0, [r4, r0]
bl FUN_02029EF8
bl FUN_02029F08
_021D75DE:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
bl MOD14_021DCA38
add r0, r4, #0
bl MOD14_021DB398
mov r0, #9
bl FUN_020168D0
mov r0, #0xa
bl FUN_020168D0
mov r0, #1
pop {r4, pc}
.align 2, 0
thumb_func_start MOD14_021D7600
MOD14_021D7600: ; 0x021D7600
mov r2, #0x6a
lsl r2, r2, #2
str r1, [r0, r2]
mov r1, #0
add r2, #8
str r1, [r0, r2]
bx lr
.align 2, 0
thumb_func_start MOD14_021D7610
MOD14_021D7610: ; 0x021D7610
mov r2, #0x6b
lsl r2, r2, #2
str r1, [r0, r2]
mov r1, #0
add r2, #8
str r1, [r0, r2]
bx lr
.align 2, 0
thumb_func_start MOD14_021D7620
MOD14_021D7620: ; 0x021D7620
mov r1, #0x6b
mov r2, #0
lsl r1, r1, #2
str r2, [r0, r1]
bx lr
.align 2, 0
thumb_func_start MOD14_021D762C
MOD14_021D762C: ; 0x021D762C
push {r3, lr}
bl MOD14_021DC3CC
cmp r0, #4
bhi _021D764C
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021D7642: ; jump table
.short _021D764C - _021D7642 - 2 ; case 0
.short _021D7650 - _021D7642 - 2 ; case 1
.short _021D7654 - _021D7642 - 2 ; case 2
.short _021D765C - _021D7642 - 2 ; case 3
.short _021D7658 - _021D7642 - 2 ; case 4
_021D764C:
ldr r0, _021D7660 ; =MOD14_021D7750
pop {r3, pc}
_021D7650:
ldr r0, _021D7664 ; =MOD14_021D79D0
pop {r3, pc}
_021D7654:
ldr r0, _021D7668 ; =MOD14_021D7D20
pop {r3, pc}
_021D7658:
ldr r0, _021D766C ; =MOD14_021D7F0C
pop {r3, pc}
_021D765C:
ldr r0, _021D7670 ; =MOD14_021D8118
pop {r3, pc}
.align 2, 0
_021D7660: .word MOD14_021D7750
_021D7664: .word MOD14_021D79D0
_021D7668: .word MOD14_021D7D20
_021D766C: .word MOD14_021D7F0C
_021D7670: .word MOD14_021D8118
thumb_func_start MOD14_021D7674
MOD14_021D7674: ; 0x021D7674
mov r1, #0x46
lsl r1, r1, #2
ldr r0, [r0, r1]
mov r2, #1
str r2, [r0, #8]
bx lr
thumb_func_start MOD14_021D7680
MOD14_021D7680: ; 0x021D7680
push {r3, r4, r5, lr}
add r4, r1, #0
add r5, r0, #0
ldr r0, [r4]
cmp r0, #0
beq _021D7696
cmp r0, #1
beq _021D76AA
cmp r0, #2
beq _021D76CE
pop {r3, r4, r5, pc}
_021D7696:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #0
bl MOD14_021DCB2C
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
pop {r3, r4, r5, pc}
_021D76AA:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #0
bl MOD14_021DCB98
cmp r0, #0
beq _021D76E4
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #1
bl MOD14_021DCB2C
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
pop {r3, r4, r5, pc}
_021D76CE:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #1
bl MOD14_021DCB98
cmp r0, #0
beq _021D76E4
add r0, r5, #0
bl MOD14_021D7620
_021D76E4:
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_start MOD14_021D76E8
MOD14_021D76E8: ; 0x021D76E8
push {r3, r4, r5, lr}
add r4, r1, #0
add r5, r0, #0
ldr r0, [r4]
cmp r0, #0
beq _021D76FE
cmp r0, #1
beq _021D7712
cmp r0, #2
beq _021D7736
pop {r3, r4, r5, pc}
_021D76FE:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #0
bl MOD14_021DCB2C
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
pop {r3, r4, r5, pc}
_021D7712:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #0
bl MOD14_021DCB98
cmp r0, #0
beq _021D774C
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #2
bl MOD14_021DCB2C
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
pop {r3, r4, r5, pc}
_021D7736:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #2
bl MOD14_021DCB98
cmp r0, #0
beq _021D774C
add r0, r5, #0
bl MOD14_021D7620
_021D774C:
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_start MOD14_021D7750
MOD14_021D7750: ; 0x021D7750
push {r4, lr}
mov r1, #0x1b
add r4, r0, #0
lsl r1, r1, #4
ldr r2, [r4, r1]
cmp r2, #0
beq _021D776C
cmp r2, #1
bne _021D7764
b _021D793E
_021D7764:
cmp r2, #2
bne _021D776A
b _021D795C
_021D776A:
b _021D7970
_021D776C:
ldr r1, _021D7974 ; =0x021C48B8
ldr r2, [r1, #0x48]
mov r1, #1
tst r1, r2
beq _021D779C
bl MOD14_021DC408
cmp r0, #0
beq _021D779C
add r0, r4, #0
bl MOD14_021DC3C4
cmp r0, #3
beq _021D7792
ldr r1, _021D7978 ; =MOD14_021D8804
add r0, r4, #0
bl MOD14_021D7610
b _021D7970
_021D7792:
ldr r1, _021D797C ; =MOD14_021D8A68
add r0, r4, #0
bl MOD14_021D7610
b _021D7970
_021D779C:
ldr r0, _021D7974 ; =0x021C48B8
mov r2, #2
ldr r1, [r0, #0x48]
tst r1, r2
beq _021D77B0
ldr r1, _021D7980 ; =MOD14_021D86BC
add r0, r4, #0
bl MOD14_021D7610
b _021D7970
_021D77B0:
ldr r0, [r0, #0x44]
lsl r1, r2, #8
tst r1, r0
beq _021D77C8
add r0, r4, #0
bl MOD14_021DC2A4
ldr r1, _021D7984 ; =MOD14_021DABE8
add r0, r4, #0
bl MOD14_021D7610
b _021D7970
_021D77C8:
add r2, #0xfe
add r1, r0, #0
tst r1, r2
beq _021D77E0
add r0, r4, #0
bl MOD14_021DC278
ldr r1, _021D7984 ; =MOD14_021DABE8
add r0, r4, #0
bl MOD14_021D7610
b _021D7970
_021D77E0:
add r1, r4, #0
bl MOD14_021DB5B4
cmp r0, #0
beq _021D7818
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #5
bl MOD14_021DCB2C
add r0, r4, #0
bl MOD14_021DC3F4
cmp r0, #1
bne _021D780C
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #6
bl MOD14_021DCB2C
_021D780C:
mov r0, #0x1b
lsl r0, r0, #4
ldr r1, [r4, r0]
add r1, r1, #1
str r1, [r4, r0]
b _021D7970
_021D7818:
add r0, r4, #0
bl MOD14_021DB9C8
cmp r0, #0
beq _021D783A
add r0, r4, #0
bl MOD14_021DC3C4
cmp r0, #4
beq _021D7862
mov r0, #0x61
lsl r0, r0, #2
ldr r0, [r4, r0]
cmp r0, #0
beq _021D783C
cmp r0, #1
beq _021D7846
_021D783A:
b _021D792E
_021D783C:
ldr r1, _021D7988 ; =MOD14_021DAC80
add r0, r4, #0
bl MOD14_021D7610
b _021D792E
_021D7846:
add r0, r4, #0
bl MOD14_021DC3C4
cmp r0, #3
beq _021D785A
ldr r1, _021D798C ; =MOD14_021DAF78
add r0, r4, #0
bl MOD14_021D7610
b _021D792E
_021D785A:
ldr r0, _021D7990 ; =0x000005F3
bl FUN_020054C8
b _021D792E
_021D7862:
mov r0, #0x61
lsl r0, r0, #2
ldr r0, [r4, r0]
cmp r0, #0
beq _021D7876
cmp r0, #1
beq _021D78C4
cmp r0, #2
beq _021D7912
b _021D792E
_021D7876:
add r0, r4, #0
bl MOD14_021DC558
cmp r0, #0
bne _021D78BC
add r0, r4, #0
bl MOD14_021DC3F0
cmp r0, #1
bne _021D78BC
ldr r0, _021D7994 ; =0x000005DD
bl FUN_020054C8
add r0, r4, #0
bl MOD14_021DC170
ldr r1, [r4, #8]
add r0, r4, #0
add r2, r4, #0
bl MOD14_021DBE88
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x31
bl MOD14_021DCB2C
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #6
bl MOD14_021DCB2C
mov r0, #1
b _021D7930
_021D78BC:
ldr r0, _021D7990 ; =0x000005F3
bl FUN_020054C8
b _021D792E
_021D78C4:
add r0, r4, #0
bl MOD14_021DC558
cmp r0, #1
bne _021D790A
add r0, r4, #0
bl MOD14_021DC3F0
cmp r0, #1
bne _021D790A
ldr r0, _021D7994 ; =0x000005DD
bl FUN_020054C8
add r0, r4, #0
bl MOD14_021DC170
ldr r1, [r4, #8]
add r0, r4, #0
add r2, r4, #0
bl MOD14_021DBE88
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x31
bl MOD14_021DCB2C
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #6
bl MOD14_021DCB2C
mov r0, #1
b _021D7930
_021D790A:
ldr r0, _021D7990 ; =0x000005F3
bl FUN_020054C8
b _021D792E
_021D7912:
ldr r0, _021D7994 ; =0x000005DD
bl FUN_020054C8
add r0, r4, #0
bl MOD14_021DC180
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x32
bl MOD14_021DCB2C
mov r0, #1
b _021D7930
_021D792E:
mov r0, #0
_021D7930:
cmp r0, #0
beq _021D7970
mov r0, #0x1b
mov r1, #2
lsl r0, r0, #4
str r1, [r4, r0]
b _021D7970
_021D793E:
sub r1, #0x9c
ldr r0, [r4, r1]
mov r1, #5
bl MOD14_021DCB98
cmp r0, #0
beq _021D7970
add r0, r4, #0
bl MOD14_021D762C
add r1, r0, #0
add r0, r4, #0
bl MOD14_021D7600
b _021D7970
_021D795C:
sub r1, #0x9c
ldr r0, [r4, r1]
bl MOD14_021DCBC0
cmp r0, #0
beq _021D7970
mov r0, #0x1b
mov r1, #0
lsl r0, r0, #4
str r1, [r4, r0]
_021D7970:
mov r0, #0
pop {r4, pc}
.align 2, 0
_021D7974: .word 0x021C48B8
_021D7978: .word MOD14_021D8804
_021D797C: .word MOD14_021D8A68
_021D7980: .word MOD14_021D86BC
_021D7984: .word MOD14_021DABE8
_021D7988: .word MOD14_021DAC80
_021D798C: .word MOD14_021DAF78
_021D7990: .word 0x000005F3
_021D7994: .word 0x000005DD
thumb_func_start MOD14_021D7998
MOD14_021D7998: ; 0x021D7998
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
bl MOD14_021DC430
lsl r0, r0, #0x10
lsr r0, r0, #0x10
bl FUN_0206EA98
cmp r0, #0
beq _021D79B6
mov r0, #0x1e
str r0, [r4]
mov r0, #1
pop {r3, r4, r5, pc}
_021D79B6:
add r0, r5, #0
mov r1, #0xa1
mov r2, #0
bl MOD14_021DC58C
cmp r0, #0
beq _021D79CC
mov r0, #0x1d
str r0, [r4]
mov r0, #1
pop {r3, r4, r5, pc}
_021D79CC:
mov r0, #0
pop {r3, r4, r5, pc}
thumb_func_start MOD14_021D79D0
MOD14_021D79D0: ; 0x021D79D0
push {r3, r4, lr}
sub sp, #4
mov r1, #0x1b
add r4, r0, #0
lsl r1, r1, #4
ldr r2, [r4, r1]
cmp r2, #6
bhi _021D7A20
add r2, r2, r2
add r2, pc
ldrh r2, [r2, #6]
lsl r2, r2, #0x10
asr r2, r2, #0x10
add pc, r2
_021D79EC: ; jump table
.short _021D79FA - _021D79EC - 2 ; case 0
.short _021D7BD4 - _021D79EC - 2 ; case 1
.short _021D7BEE - _021D79EC - 2 ; case 2
.short _021D7C58 - _021D79EC - 2 ; case 3
.short _021D7C98 - _021D79EC - 2 ; case 4
.short _021D7CB6 - _021D79EC - 2 ; case 5
.short _021D7CE4 - _021D79EC - 2 ; case 6
_021D79FA:
ldr r1, _021D7D00 ; =0x021C48B8
mov r2, #1
ldr r1, [r1, #0x48]
tst r2, r1
beq _021D7A40
bl MOD14_021DC3E8
cmp r0, #6
bne _021D7A16
mov r0, #0x1b
mov r1, #2
lsl r0, r0, #4
str r1, [r4, r0]
b _021D7CF8
_021D7A16:
add r0, r4, #0
bl MOD14_021DC408
cmp r0, #0
bne _021D7A22
_021D7A20:
b _021D7CF8
_021D7A22:
add r0, r4, #0
bl MOD14_021DC3C4
cmp r0, #3
beq _021D7A36
ldr r1, _021D7D04 ; =MOD14_021D8804
add r0, r4, #0
bl MOD14_021D7610
b _021D7CF8
_021D7A36:
ldr r1, _021D7D08 ; =MOD14_021D8A68
add r0, r4, #0
bl MOD14_021D7610
b _021D7CF8
_021D7A40:
mov r2, #2
tst r2, r1
bne _021D7A6A
mov r2, #0x10
tst r1, r2
beq _021D7A56
bl MOD14_021DC3E8
mov r1, #1
tst r0, r1
bne _021D7A6A
_021D7A56:
ldr r0, _021D7D00 ; =0x021C48B8
ldr r1, [r0, #0x48]
mov r0, #0x10
tst r0, r1
beq _021D7A74
add r0, r4, #0
bl MOD14_021DC3E8
cmp r0, #6
bne _021D7A74
_021D7A6A:
mov r0, #0x1b
mov r1, #2
lsl r0, r0, #4
str r1, [r4, r0]
b _021D7CF8
_021D7A74:
ldr r0, _021D7D00 ; =0x021C48B8
add r1, r4, #0
ldr r0, [r0, #0x44]
bl MOD14_021DB5B4
cmp r0, #0
beq _021D7AAE
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #5
bl MOD14_021DCB2C
add r0, r4, #0
bl MOD14_021DC3F4
cmp r0, #1
bne _021D7AA4
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #6
bl MOD14_021DCB2C
_021D7AA4:
mov r0, #0x1b
mov r1, #1
lsl r0, r0, #4
str r1, [r4, r0]
b _021D7CF8
_021D7AAE:
add r0, r4, #0
bl MOD14_021DB9C8
cmp r0, #0
beq _021D7AD0
add r0, r4, #0
bl MOD14_021DC3C4
cmp r0, #4
beq _021D7AF8
mov r0, #0x61
lsl r0, r0, #2
ldr r0, [r4, r0]
cmp r0, #0
beq _021D7AD2
cmp r0, #1
beq _021D7ADC
_021D7AD0:
b _021D7BC4
_021D7AD2:
ldr r1, _021D7D0C ; =MOD14_021DAC80
add r0, r4, #0
bl MOD14_021D7610
b _021D7BC4
_021D7ADC:
add r0, r4, #0
bl MOD14_021DC3C4
cmp r0, #3
beq _021D7AF0
ldr r1, _021D7D10 ; =MOD14_021DAF78
add r0, r4, #0
bl MOD14_021D7610
b _021D7BC4
_021D7AF0:
ldr r0, _021D7D14 ; =0x000005F3
bl FUN_020054C8
b _021D7BC4
_021D7AF8:
mov r0, #0x61
lsl r0, r0, #2
ldr r0, [r4, r0]
cmp r0, #0
beq _021D7B0C
cmp r0, #1
beq _021D7B5A
cmp r0, #2
beq _021D7BA8
b _021D7BC4
_021D7B0C:
add r0, r4, #0
bl MOD14_021DC558
cmp r0, #0
bne _021D7B52
add r0, r4, #0
bl MOD14_021DC3F0
cmp r0, #1
bne _021D7B52
ldr r0, _021D7D18 ; =0x000005DD
bl FUN_020054C8
add r0, r4, #0
bl MOD14_021DC170
ldr r1, [r4, #8]
add r0, r4, #0
add r2, r4, #0
bl MOD14_021DBE88
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x31
bl MOD14_021DCB2C
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #6
bl MOD14_021DCB2C
mov r0, #1
b _021D7BC6
_021D7B52:
ldr r0, _021D7D14 ; =0x000005F3
bl FUN_020054C8
b _021D7BC4
_021D7B5A:
add r0, r4, #0
bl MOD14_021DC558
cmp r0, #1
bne _021D7BA0
add r0, r4, #0
bl MOD14_021DC3F0
cmp r0, #1
bne _021D7BA0
ldr r0, _021D7D18 ; =0x000005DD
bl FUN_020054C8
add r0, r4, #0
bl MOD14_021DC170
ldr r1, [r4, #8]
add r0, r4, #0
add r2, r4, #0
bl MOD14_021DBE88
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x31
bl MOD14_021DCB2C
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #6
bl MOD14_021DCB2C
mov r0, #1
b _021D7BC6
_021D7BA0:
ldr r0, _021D7D14 ; =0x000005F3
bl FUN_020054C8
b _021D7BC4
_021D7BA8:
ldr r0, _021D7D18 ; =0x000005DD
bl FUN_020054C8
add r0, r4, #0
bl MOD14_021DC180
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x32
bl MOD14_021DCB2C
mov r0, #1
b _021D7BC6
_021D7BC4:
mov r0, #0
_021D7BC6:
cmp r0, #0
beq _021D7BE2
mov r0, #0x1b
mov r1, #6
lsl r0, r0, #4
str r1, [r4, r0]
b _021D7CF8
_021D7BD4:
sub r1, #0x9c
ldr r0, [r4, r1]
mov r1, #5
bl MOD14_021DCB98
cmp r0, #0
bne _021D7BE4
_021D7BE2:
b _021D7CF8
_021D7BE4:
mov r0, #0x1b
mov r1, #0
lsl r0, r0, #4
str r1, [r4, r0]
b _021D7CF8
_021D7BEE:
bl MOD14_021DC3C4
cmp r0, #0
bne _021D7C08
ldr r1, _021D7D1C ; =MOD14_021D86BC
add r0, r4, #0
bl MOD14_021D7610
mov r0, #0x1b
mov r1, #0
lsl r0, r0, #4
str r1, [r4, r0]
b _021D7CF8
_021D7C08:
add r0, r4, #0
bl MOD14_021DC3F4
cmp r0, #1
beq _021D7C42
add r0, r4, #0
add r1, sp, #0
bl MOD14_021D7998
cmp r0, #0
beq _021D7C42
ldr r0, _021D7D14 ; =0x000005F3
bl FUN_020054C8
ldr r1, [sp]
add r0, r4, #0
bl MOD14_021DBA44
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x18
bl MOD14_021DCB2C
mov r0, #0x1b
mov r1, #5
lsl r0, r0, #4
str r1, [r4, r0]
b _021D7CF8
_021D7C42:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x24
bl MOD14_021DCB2C
mov r0, #0x1b
mov r1, #3
lsl r0, r0, #4
str r1, [r4, r0]
b _021D7CF8
_021D7C58:
sub r1, #0x9c
ldr r0, [r4, r1]
mov r1, #0x24
bl MOD14_021DCB98
cmp r0, #0
beq _021D7CF8
add r0, r4, #0
bl MOD14_021DB910
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #5
bl MOD14_021DCB2C
add r0, r4, #0
bl MOD14_021DC3F4
cmp r0, #1
bne _021D7C8E
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #6
bl MOD14_021DCB2C
_021D7C8E:
mov r0, #0x1b
mov r1, #4
lsl r0, r0, #4
str r1, [r4, r0]
b _021D7CF8
_021D7C98:
sub r1, #0x9c
ldr r0, [r4, r1]
mov r1, #5
bl MOD14_021DCB98
cmp r0, #0
beq _021D7CF8
add r0, r4, #0
bl MOD14_021D762C
add r1, r0, #0
add r0, r4, #0
bl MOD14_021D7600
b _021D7CF8
_021D7CB6:
sub r1, #0x9c
ldr r0, [r4, r1]
mov r1, #0x18
bl MOD14_021DCB98
cmp r0, #0
beq _021D7CF8
ldr r0, _021D7D00 ; =0x021C48B8
ldr r1, [r0, #0x48]
mov r0, #3
tst r0, r1
beq _021D7CF8
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x1a
bl MOD14_021DCB2C
mov r0, #0x1b
mov r1, #0
lsl r0, r0, #4
str r1, [r4, r0]
b _021D7CF8
_021D7CE4:
sub r1, #0x9c
ldr r0, [r4, r1]
bl MOD14_021DCBC0
cmp r0, #0
beq _021D7CF8
mov r0, #0x1b
mov r1, #0
lsl r0, r0, #4
str r1, [r4, r0]
_021D7CF8:
mov r0, #0
add sp, #4
pop {r3, r4, pc}
nop
_021D7D00: .word 0x021C48B8
_021D7D04: .word MOD14_021D8804
_021D7D08: .word MOD14_021D8A68
_021D7D0C: .word MOD14_021DAC80
_021D7D10: .word MOD14_021DAF78
_021D7D14: .word 0x000005F3
_021D7D18: .word 0x000005DD
_021D7D1C: .word MOD14_021D86BC
thumb_func_start MOD14_021D7D20
MOD14_021D7D20: ; 0x021D7D20
push {r3, r4, r5, lr}
mov r3, #0x1b
add r4, r0, #0
lsl r3, r3, #4
ldr r1, [r4, r3]
cmp r1, #0
beq _021D7D36
cmp r1, #1
bne _021D7D34
b _021D7ECC
_021D7D34:
b _021D7EE8
_021D7D36:
ldr r5, _021D7EEC ; =0x021C48B8
add r2, r3, #0
ldr r1, [r5, #0x44]
add r2, #0x70
tst r2, r1
beq _021D7D50
bl MOD14_021DC2A4
ldr r1, _021D7EF0 ; =MOD14_021DABE8
add r0, r4, #0
bl MOD14_021D7610
b _021D7EE8
_021D7D50:
sub r3, #0xa0
add r2, r1, #0
tst r2, r3
beq _021D7D66
bl MOD14_021DC278
ldr r1, _021D7EF0 ; =MOD14_021DABE8
add r0, r4, #0
bl MOD14_021D7610
b _021D7EE8
_021D7D66:
ldr r3, [r5, #0x48]
mov r2, #1
tst r2, r3
beq _021D7D76
ldr r1, _021D7EF4 ; =MOD14_021D8D70
bl MOD14_021D7610
b _021D7EE8
_021D7D76:
mov r2, #2
tst r2, r3
beq _021D7D84
ldr r1, _021D7EF8 ; =MOD14_021D86BC
bl MOD14_021D7610
b _021D7EE8
_021D7D84:
add r0, r1, #0
add r1, r4, #0
bl MOD14_021DB5B4
cmp r0, #0
beq _021D7DBC
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #5
bl MOD14_021DCB2C
add r0, r4, #0
bl MOD14_021DC3F4
cmp r0, #1
bne _021D7DB2
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #6
bl MOD14_021DCB2C
_021D7DB2:
mov r0, #0x1b
mov r1, #1
lsl r0, r0, #4
str r1, [r4, r0]
b _021D7EE8
_021D7DBC:
add r0, r4, #0
bl MOD14_021DB9C8
cmp r0, #0
beq _021D7DDE
add r0, r4, #0
bl MOD14_021DC3C4
cmp r0, #4
beq _021D7E06
mov r0, #0x61
lsl r0, r0, #2
ldr r0, [r4, r0]
cmp r0, #0
beq _021D7DE0
cmp r0, #1
beq _021D7DEA
_021D7DDE:
b _021D7EE8
_021D7DE0:
ldr r1, _021D7EFC ; =MOD14_021DAC80
add r0, r4, #0
bl MOD14_021D7610
b _021D7EE8
_021D7DEA:
add r0, r4, #0
bl MOD14_021DC3C4
cmp r0, #3
beq _021D7DFE
ldr r1, _021D7F00 ; =MOD14_021DAF78
add r0, r4, #0
bl MOD14_021D7610
b _021D7EE8
_021D7DFE:
ldr r0, _021D7F04 ; =0x000005F3
bl FUN_020054C8
b _021D7EE8
_021D7E06:
mov r0, #0x61
lsl r0, r0, #2
ldr r0, [r4, r0]
cmp r0, #0
beq _021D7E1A
cmp r0, #1
beq _021D7E66
cmp r0, #2
beq _021D7EB2
b _021D7EE8
_021D7E1A:
add r0, r4, #0
bl MOD14_021DC558
cmp r0, #0
bne _021D7E5E
add r0, r4, #0
bl MOD14_021DC3F0
cmp r0, #1
bne _021D7E5E
ldr r0, _021D7F08 ; =0x000005DD
bl FUN_020054C8
add r0, r4, #0
bl MOD14_021DC170
ldr r1, [r4, #8]
add r0, r4, #0
add r2, r4, #0
bl MOD14_021DBE88
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x31
bl MOD14_021DCB2C
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #6
bl MOD14_021DCB2C
b _021D7EE8
_021D7E5E:
ldr r0, _021D7F04 ; =0x000005F3
bl FUN_020054C8
b _021D7EE8
_021D7E66:
add r0, r4, #0
bl MOD14_021DC558
cmp r0, #1
bne _021D7EAA
add r0, r4, #0
bl MOD14_021DC3F0
cmp r0, #1
bne _021D7EAA
ldr r0, _021D7F08 ; =0x000005DD
bl FUN_020054C8
add r0, r4, #0
bl MOD14_021DC170
ldr r1, [r4, #8]
add r0, r4, #0
add r2, r4, #0
bl MOD14_021DBE88
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x31
bl MOD14_021DCB2C
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #6
bl MOD14_021DCB2C
b _021D7EE8
_021D7EAA:
ldr r0, _021D7F04 ; =0x000005F3
bl FUN_020054C8
b _021D7EE8
_021D7EB2:
ldr r0, _021D7F08 ; =0x000005DD
bl FUN_020054C8
add r0, r4, #0
bl MOD14_021DC180
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x32
bl MOD14_021DCB2C
b _021D7EE8
_021D7ECC:
sub r3, #0x9c
ldr r0, [r4, r3]
mov r1, #5
bl MOD14_021DCB98
cmp r0, #0
beq _021D7EE8
add r0, r4, #0
bl MOD14_021D762C
add r1, r0, #0
add r0, r4, #0
bl MOD14_021D7600
_021D7EE8:
mov r0, #0
pop {r3, r4, r5, pc}
.align 2, 0
_021D7EEC: .word 0x021C48B8
_021D7EF0: .word MOD14_021DABE8
_021D7EF4: .word MOD14_021D8D70
_021D7EF8: .word MOD14_021D86BC
_021D7EFC: .word MOD14_021DAC80
_021D7F00: .word MOD14_021DAF78
_021D7F04: .word 0x000005F3
_021D7F08: .word 0x000005DD
thumb_func_start MOD14_021D7F0C
MOD14_021D7F0C: ; 0x021D7F0C
push {r3, r4, r5, lr}
mov r1, #0x1b
add r4, r0, #0
lsl r1, r1, #4
ldr r2, [r4, r1]
cmp r2, #0
beq _021D7F28
cmp r2, #1
bne _021D7F20
b _021D80BE
_021D7F20:
cmp r2, #2
bne _021D7F26
b _021D80D6
_021D7F26:
b _021D80F2
_021D7F28:
ldr r3, _021D80F8 ; =0x021C48B8
mov r1, #1
ldr r5, [r3, #0x48]
tst r1, r5
beq _021D7F3A
ldr r1, _021D80FC ; =MOD14_021D854C
bl MOD14_021D7610
b _021D80F2
_021D7F3A:
mov r2, #2
add r1, r5, #0
tst r1, r2
beq _021D7F4A
ldr r1, _021D8100 ; =MOD14_021D86BC
bl MOD14_021D7610
b _021D80F2
_021D7F4A:
ldr r3, [r3, #0x44]
lsl r1, r2, #8
tst r1, r3
beq _021D7F60
bl MOD14_021DC2A4
ldr r1, _021D8104 ; =MOD14_021DABE8
add r0, r4, #0
bl MOD14_021D7610
b _021D80F2
_021D7F60:
add r2, #0xfe
add r1, r3, #0
tst r1, r2
beq _021D7F76
bl MOD14_021DC278
ldr r1, _021D8104 ; =MOD14_021DABE8
add r0, r4, #0
bl MOD14_021D7610
b _021D80F2
_021D7F76:
add r0, r3, #0
add r1, r4, #0
bl MOD14_021DB5B4
cmp r0, #0
beq _021D7FAE
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #5
bl MOD14_021DCB2C
add r0, r4, #0
bl MOD14_021DC3F4
cmp r0, #1
bne _021D7FA4
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #6
bl MOD14_021DCB2C
_021D7FA4:
mov r0, #0x1b
mov r1, #2
lsl r0, r0, #4
str r1, [r4, r0]
b _021D80F2
_021D7FAE:
add r0, r4, #0
bl MOD14_021DB9C8
cmp r0, #0
beq _021D7FD0
add r0, r4, #0
bl MOD14_021DC3C4
cmp r0, #4
beq _021D7FF8
mov r0, #0x61
lsl r0, r0, #2
ldr r0, [r4, r0]
cmp r0, #0
beq _021D7FD2
cmp r0, #1
beq _021D7FDC
_021D7FD0:
b _021D80F2
_021D7FD2:
ldr r1, _021D8108 ; =MOD14_021DAC80
add r0, r4, #0
bl MOD14_021D7610
b _021D80F2
_021D7FDC:
add r0, r4, #0
bl MOD14_021DC3C4
cmp r0, #3
beq _021D7FF0
ldr r1, _021D810C ; =MOD14_021DAF78
add r0, r4, #0
bl MOD14_021D7610
b _021D80F2
_021D7FF0:
ldr r0, _021D8110 ; =0x000005F3
bl FUN_020054C8
b _021D80F2
_021D7FF8:
mov r0, #0x61
lsl r0, r0, #2
ldr r0, [r4, r0]
cmp r0, #0
beq _021D800C
cmp r0, #1
beq _021D8058
cmp r0, #2
beq _021D80A4
b _021D80F2
_021D800C:
add r0, r4, #0
bl MOD14_021DC558
cmp r0, #0
bne _021D8050
add r0, r4, #0
bl MOD14_021DC3F0
cmp r0, #1
bne _021D8050
ldr r0, _021D8114 ; =0x000005DD
bl FUN_020054C8
add r0, r4, #0
bl MOD14_021DC170
ldr r1, [r4, #8]
add r0, r4, #0
add r2, r4, #0
bl MOD14_021DBE88
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x31
bl MOD14_021DCB2C
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #6
bl MOD14_021DCB2C
b _021D80F2
_021D8050:
ldr r0, _021D8110 ; =0x000005F3
bl FUN_020054C8
b _021D80F2
_021D8058:
add r0, r4, #0
bl MOD14_021DC558
cmp r0, #1
bne _021D809C
add r0, r4, #0
bl MOD14_021DC3F0
cmp r0, #1
bne _021D809C
ldr r0, _021D8114 ; =0x000005DD
bl FUN_020054C8
add r0, r4, #0
bl MOD14_021DC170
ldr r1, [r4, #8]
add r0, r4, #0
add r2, r4, #0
bl MOD14_021DBE88
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x31
bl MOD14_021DCB2C
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #6
bl MOD14_021DCB2C
b _021D80F2
_021D809C:
ldr r0, _021D8110 ; =0x000005F3
bl FUN_020054C8
b _021D80F2
_021D80A4:
ldr r0, _021D8114 ; =0x000005DD
bl FUN_020054C8
add r0, r4, #0
bl MOD14_021DC180
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x32
bl MOD14_021DCB2C
b _021D80F2
_021D80BE:
sub r1, #0x9c
ldr r0, [r4, r1]
mov r1, #4
bl MOD14_021DCB98
cmp r0, #0
beq _021D80F2
mov r0, #0x1b
mov r1, #0
lsl r0, r0, #4
str r1, [r4, r0]
b _021D80F2
_021D80D6:
sub r1, #0x9c
ldr r0, [r4, r1]
mov r1, #5
bl MOD14_021DCB98
cmp r0, #0
beq _021D80F2
add r0, r4, #0
bl MOD14_021D762C
add r1, r0, #0
add r0, r4, #0
bl MOD14_021D7600
_021D80F2:
mov r0, #0
pop {r3, r4, r5, pc}
nop
_021D80F8: .word 0x021C48B8
_021D80FC: .word MOD14_021D854C
_021D8100: .word MOD14_021D86BC
_021D8104: .word MOD14_021DABE8
_021D8108: .word MOD14_021DAC80
_021D810C: .word MOD14_021DAF78
_021D8110: .word 0x000005F3
_021D8114: .word 0x000005DD
thumb_func_start MOD14_021D8118
MOD14_021D8118: ; 0x021D8118
push {r3, r4, r5, lr}
mov r1, #0x1b
add r4, r0, #0
lsl r1, r1, #4
ldr r2, [r4, r1]
cmp r2, #5
bhi _021D8220
add r2, r2, r2
add r2, pc
ldrh r2, [r2, #6]
lsl r2, r2, #0x10
asr r2, r2, #0x10
add pc, r2
_021D8132: ; jump table
.short _021D813E - _021D8132 - 2 ; case 0
.short _021D830E - _021D8132 - 2 ; case 1
.short _021D8332 - _021D8132 - 2 ; case 2
.short _021D8372 - _021D8132 - 2 ; case 3
.short _021D838A - _021D8132 - 2 ; case 4
.short _021D83A8 - _021D8132 - 2 ; case 5
_021D813E:
ldr r3, _021D83C8 ; =0x021C48B8
mov r1, #1
ldr r5, [r3, #0x48]
tst r1, r5
beq _021D818A
bl MOD14_021DC3C4
cmp r0, #1
beq _021D8166
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x22
bl MOD14_021DCB2C
mov r0, #0x1b
mov r1, #1
lsl r0, r0, #4
str r1, [r4, r0]
b _021D83C4
_021D8166:
ldr r0, _021D83CC ; =0x000005F3
bl FUN_020054C8
add r0, r4, #0
mov r1, #0x12
bl MOD14_021DBA44
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x18
bl MOD14_021DCB2C
mov r0, #0x1b
mov r1, #5
lsl r0, r0, #4
str r1, [r4, r0]
b _021D83C4
_021D818A:
mov r2, #2
add r1, r5, #0
tst r1, r2
beq _021D819A
ldr r1, _021D83D0 ; =MOD14_021D86BC
bl MOD14_021D7610
b _021D83C4
_021D819A:
ldr r3, [r3, #0x44]
lsl r1, r2, #8
tst r1, r3
beq _021D81B0
bl MOD14_021DC2A4
ldr r1, _021D83D4 ; =MOD14_021DABE8
add r0, r4, #0
bl MOD14_021D7610
b _021D83C4
_021D81B0:
add r2, #0xfe
add r1, r3, #0
tst r1, r2
beq _021D81C6
bl MOD14_021DC278
ldr r1, _021D83D4 ; =MOD14_021DABE8
add r0, r4, #0
bl MOD14_021D7610
b _021D83C4
_021D81C6:
add r0, r3, #0
add r1, r4, #0
bl MOD14_021DB5B4
cmp r0, #0
beq _021D81FE
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #5
bl MOD14_021DCB2C
add r0, r4, #0
bl MOD14_021DC3F4
cmp r0, #1
bne _021D81F4
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #6
bl MOD14_021DCB2C
_021D81F4:
mov r0, #0x1b
mov r1, #4
lsl r0, r0, #4
str r1, [r4, r0]
b _021D83C4
_021D81FE:
add r0, r4, #0
bl MOD14_021DB9C8
cmp r0, #0
beq _021D8220
add r0, r4, #0
bl MOD14_021DC3C4
cmp r0, #4
beq _021D8248
mov r0, #0x61
lsl r0, r0, #2
ldr r0, [r4, r0]
cmp r0, #0
beq _021D8222
cmp r0, #1
beq _021D822C
_021D8220:
b _021D83C4
_021D8222:
ldr r1, _021D83D8 ; =MOD14_021DAC80
add r0, r4, #0
bl MOD14_021D7610
b _021D83C4
_021D822C:
add r0, r4, #0
bl MOD14_021DC3C4
cmp r0, #3
beq _021D8240
ldr r1, _021D83DC ; =MOD14_021DAF78
add r0, r4, #0
bl MOD14_021D7610
b _021D83C4
_021D8240:
ldr r0, _021D83CC ; =0x000005F3
bl FUN_020054C8
b _021D83C4
_021D8248:
mov r0, #0x61
lsl r0, r0, #2
ldr r0, [r4, r0]
cmp r0, #0
beq _021D825C
cmp r0, #1
beq _021D82A8
cmp r0, #2
beq _021D82F4
b _021D83C4
_021D825C:
add r0, r4, #0
bl MOD14_021DC558
cmp r0, #0
bne _021D82A0
add r0, r4, #0
bl MOD14_021DC3F0
cmp r0, #1
bne _021D82A0
ldr r0, _021D83E0 ; =0x000005DD
bl FUN_020054C8
add r0, r4, #0
bl MOD14_021DC170
ldr r1, [r4, #8]
add r0, r4, #0
add r2, r4, #0
bl MOD14_021DBE88
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x31
bl MOD14_021DCB2C
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #6
bl MOD14_021DCB2C
b _021D83C4
_021D82A0:
ldr r0, _021D83CC ; =0x000005F3
bl FUN_020054C8
b _021D83C4
_021D82A8:
add r0, r4, #0
bl MOD14_021DC558
cmp r0, #1
bne _021D82EC
add r0, r4, #0
bl MOD14_021DC3F0
cmp r0, #1
bne _021D82EC
ldr r0, _021D83E0 ; =0x000005DD
bl FUN_020054C8
add r0, r4, #0
bl MOD14_021DC170
ldr r1, [r4, #8]
add r0, r4, #0
add r2, r4, #0
bl MOD14_021DBE88
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x31
bl MOD14_021DCB2C
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #6
bl MOD14_021DCB2C
b _021D83C4
_021D82EC:
ldr r0, _021D83CC ; =0x000005F3
bl FUN_020054C8
b _021D83C4
_021D82F4:
ldr r0, _021D83E0 ; =0x000005DD
bl FUN_020054C8
add r0, r4, #0
bl MOD14_021DC180
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x32
bl MOD14_021DCB2C
b _021D83C4
_021D830E:
sub r1, #0x9c
ldr r0, [r4, r1]
mov r1, #0x22
bl MOD14_021DCB98
cmp r0, #0
beq _021D83C4
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x23
bl MOD14_021DCB2C
mov r0, #0x1b
mov r1, #2
lsl r0, r0, #4
str r1, [r4, r0]
b _021D83C4
_021D8332:
sub r1, #0x9c
ldr r0, [r4, r1]
mov r1, #0x23
bl MOD14_021DCB98
cmp r0, #0
beq _021D83C4
add r0, r4, #0
bl MOD14_021DB8D0
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #5
bl MOD14_021DCB2C
add r0, r4, #0
bl MOD14_021DC3F4
cmp r0, #1
bne _021D8368
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #6
bl MOD14_021DCB2C
_021D8368:
mov r0, #0x1b
mov r1, #4
lsl r0, r0, #4
str r1, [r4, r0]
b _021D83C4
_021D8372:
sub r1, #0x9c
ldr r0, [r4, r1]
mov r1, #4
bl MOD14_021DCB98
cmp r0, #0
beq _021D83C4
mov r0, #0x1b
mov r1, #0
lsl r0, r0, #4
str r1, [r4, r0]
b _021D83C4
_021D838A:
sub r1, #0x9c
ldr r0, [r4, r1]
mov r1, #5
bl MOD14_021DCB98
cmp r0, #0
beq _021D83C4
add r0, r4, #0
bl MOD14_021D762C
add r1, r0, #0
add r0, r4, #0
bl MOD14_021D7600
b _021D83C4
_021D83A8:
ldr r0, _021D83C8 ; =0x021C48B8
ldr r2, [r0, #0x48]
mov r0, #3
tst r0, r2
beq _021D83C4
sub r1, #0x9c
ldr r0, [r4, r1]
mov r1, #0x1a
bl MOD14_021DCB2C
mov r0, #0x1b
mov r1, #0
lsl r0, r0, #4
str r1, [r4, r0]
_021D83C4:
mov r0, #0
pop {r3, r4, r5, pc}
.align 2, 0
_021D83C8: .word 0x021C48B8
_021D83CC: .word 0x000005F3
_021D83D0: .word MOD14_021D86BC
_021D83D4: .word MOD14_021DABE8
_021D83D8: .word MOD14_021DAC80
_021D83DC: .word MOD14_021DAF78
_021D83E0: .word 0x000005DD
thumb_func_start MOD14_021D83E4
MOD14_021D83E4: ; 0x021D83E4
push {r4, lr}
add r4, r0, #0
bl MOD14_021DC3F4
cmp r0, #2
bne _021D8428
mov r0, #0x4b
ldr r1, [r4, #0x14]
lsl r0, r0, #2
str r1, [r4, r0]
ldrb r0, [r4, #0x1f]
cmp r0, #0
beq _021D8402
mov r0, #0
b _021D8404
_021D8402:
mov r0, #2
_021D8404:
ldr r1, _021D8500 ; =0x0000013D
mov r2, #1
strb r0, [r4, r1]
add r0, r1, #2
strb r2, [r4, r0]
mov r2, #0
add r0, r1, #3
strb r2, [r4, r0]
add r0, r1, #1
strb r2, [r4, r0]
add r0, r1, #7
strh r2, [r4, r0]
add r0, r1, #0
add r0, #0x67
ldr r0, [r4, r0]
sub r1, #0xd
str r0, [r4, r1]
b _021D84AA
_021D8428:
add r0, r4, #0
bl MOD14_021DC3CC
cmp r0, #0
bne _021D8476
mov r0, #0x12
lsl r0, r0, #4
ldr r0, [r4, r0]
bl FUN_0206B330
add r1, r0, #0
mov r0, #0x12
lsl r0, r0, #4
ldr r0, [r4, r0]
mov r2, #0
bl FUN_0206B5E4
mov r1, #0x4b
lsl r1, r1, #2
str r0, [r4, r1]
add r0, r1, #0
mov r2, #2
add r0, #0x11
strb r2, [r4, r0]
mov r0, #0x1e
add r1, #0x13
strb r0, [r4, r1]
add r0, r4, #0
bl MOD14_021DC3E0
mov r1, #5
lsl r1, r1, #6
strb r0, [r4, r1]
mov r2, #0
sub r0, r1, #2
strb r2, [r4, r0]
add r0, r1, #4
strh r2, [r4, r0]
b _021D84AA
_021D8476:
mov r1, #0x49
lsl r1, r1, #2
add r0, r1, #0
ldr r2, [r4, r1]
add r0, #8
str r2, [r4, r0]
add r0, r1, #0
mov r2, #1
add r0, #0x19
strb r2, [r4, r0]
ldr r0, [r4, r1]
bl FUN_0206B9AC
ldr r1, _021D8504 ; =0x0000013F
strb r0, [r4, r1]
add r0, r4, #0
bl MOD14_021DC3E8
mov r1, #5
lsl r1, r1, #6
strb r0, [r4, r1]
mov r2, #0
sub r0, r1, #2
strb r2, [r4, r0]
add r0, r1, #4
strh r2, [r4, r0]
_021D84AA:
mov r0, #0x55
mov r1, #0
lsl r0, r0, #2
str r1, [r4, r0]
sub r0, #0x38
ldr r0, [r4, r0]
bl FUN_0206BB28
mov r1, #0x52
lsl r1, r1, #2
str r0, [r4, r1]
sub r1, #0x2c
ldr r0, [r4, r1]
bl FUN_02079C70
mov r1, #0x56
lsl r1, r1, #2
str r0, [r4, r1]
sub r1, #0x3c
ldr r0, [r4, r1]
bl FUN_0202A918
mov r1, #0x53
lsl r1, r1, #2
str r0, [r4, r1]
sub r1, #0x20
add r0, r4, r1
ldr r1, _021D8508 ; =0x021E626C
bl FUN_0207B000
mov r0, #0x47
lsl r0, r0, #2
ldr r0, [r4, r0]
bl FUN_020238F4
add r1, r0, #0
mov r0, #0x4b
lsl r0, r0, #2
add r0, r4, r0
bl FUN_0207C2A4
pop {r4, pc}
nop
_021D8500: .word 0x0000013D
_021D8504: .word 0x0000013F
_021D8508: .word 0x021E626C
thumb_func_start MOD14_021D850C
MOD14_021D850C: ; 0x021D850C
push {r4, lr}
add r4, r0, #0
mov r0, #0x1b
lsl r0, r0, #4
ldr r1, [r4, r0]
cmp r1, #0
beq _021D8520
cmp r1, #1
beq _021D8536
b _021D8546
_021D8520:
sub r0, #0x9c
ldr r0, [r4, r0]
mov r1, #0x33
bl MOD14_021DCB2C
mov r0, #0x1b
lsl r0, r0, #4
ldr r1, [r4, r0]
add r1, r1, #1
str r1, [r4, r0]
b _021D8546
_021D8536:
sub r0, #0x9c
ldr r0, [r4, r0]
bl MOD14_021DCBC0
cmp r0, #0
beq _021D8546
mov r0, #1
pop {r4, pc}
_021D8546:
mov r0, #0
pop {r4, pc}
.align 2, 0
thumb_func_start MOD14_021D854C
MOD14_021D854C: ; 0x021D854C
push {r3, r4, r5, lr}
add r5, r1, #0
ldr r1, [r5]
add r4, r0, #0
cmp r1, #6
bls _021D855A
b _021D86A6
_021D855A:
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021D8566: ; jump table
.short _021D8574 - _021D8566 - 2 ; case 0
.short _021D85CC - _021D8566 - 2 ; case 1
.short _021D8604 - _021D8566 - 2 ; case 2
.short _021D86A6 - _021D8566 - 2 ; case 3
.short _021D8660 - _021D8566 - 2 ; case 4
.short _021D8674 - _021D8566 - 2 ; case 5
.short _021D8690 - _021D8566 - 2 ; case 6
_021D8574:
bl MOD14_021DC3C4
cmp r0, #3
bne _021D8590
add r0, r4, #0
bl MOD14_021DC538
cmp r0, #0
beq _021D8590
ldr r1, _021D86A8 ; =MOD14_021DA7C4
add r0, r4, #0
bl MOD14_021D7610
pop {r3, r4, r5, pc}
_021D8590:
add r0, r4, #0
bl MOD14_021DC3F4
cmp r0, #1
beq _021D85BA
ldr r0, _021D86AC ; =0x000005F3
bl FUN_020054C8
add r0, r4, #0
mov r1, #0x11
bl MOD14_021DBA44
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x18
bl MOD14_021DCB2C
mov r0, #4
str r0, [r5]
pop {r3, r4, r5, pc}
_021D85BA:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x22
bl MOD14_021DCB2C
mov r0, #1
str r0, [r5]
pop {r3, r4, r5, pc}
_021D85CC:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x22
bl MOD14_021DCB98
cmp r0, #0
beq _021D86A6
ldr r0, _021D86B0 ; =0x000005DD
bl FUN_020054C8
add r0, r4, #0
mov r1, #0xb
bl MOD14_021DBA44
add r0, r4, #0
mov r1, #1
bl MOD14_021E5D98
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x19
bl MOD14_021DCB2C
mov r0, #2
str r0, [r5]
pop {r3, r4, r5, pc}
_021D8604:
bl MOD14_021E6160
cmp r0, #0x36
bgt _021D8624
bge _021D8650
mov r2, #0
mvn r2, r2
cmp r0, r2
bgt _021D86A6
sub r1, r2, #1
cmp r0, r1
blt _021D86A6
beq _021D862A
cmp r0, r2
beq _021D8638
pop {r3, r4, r5, pc}
_021D8624:
cmp r0, #0x37
beq _021D8638
pop {r3, r4, r5, pc}
_021D862A:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x1c
bl MOD14_021DCB2C
pop {r3, r4, r5, pc}
_021D8638:
ldr r0, _021D86B0 ; =0x000005DD
bl FUN_020054C8
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x1a
bl MOD14_021DCB2C
mov r0, #6
str r0, [r5]
pop {r3, r4, r5, pc}
_021D8650:
ldr r1, _021D86B4 ; =MOD14_021D850C
add r0, r4, #0
bl MOD14_021D7600
add r0, r4, #0
bl MOD14_021D7620
pop {r3, r4, r5, pc}
_021D8660:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x19
bl MOD14_021DCB98
cmp r0, #0
beq _021D86A6
mov r0, #5
str r0, [r5]
_021D8674:
ldr r0, _021D86B8 ; =0x021C48B8
ldr r1, [r0, #0x48]
mov r0, #3
tst r0, r1
beq _021D86A6
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x1a
bl MOD14_021DCB2C
mov r0, #6
str r0, [r5]
pop {r3, r4, r5, pc}
_021D8690:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x1a
bl MOD14_021DCB98
cmp r0, #0
beq _021D86A6
add r0, r4, #0
bl MOD14_021D7620
_021D86A6:
pop {r3, r4, r5, pc}
.align 2, 0
_021D86A8: .word MOD14_021DA7C4
_021D86AC: .word 0x000005F3
_021D86B0: .word 0x000005DD
_021D86B4: .word MOD14_021D850C
_021D86B8: .word 0x021C48B8
thumb_func_start MOD14_021D86BC
MOD14_021D86BC: ; 0x021D86BC
push {r3, r4, r5, lr}
add r5, r1, #0
ldr r1, [r5]
add r4, r0, #0
cmp r1, #5
bls _021D86CA
b _021D87EC
_021D86CA:
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021D86D6: ; jump table
.short _021D86E2 - _021D86D6 - 2 ; case 0
.short _021D87EC - _021D86D6 - 2 ; case 1
.short _021D87A6 - _021D86D6 - 2 ; case 2
.short _021D87BA - _021D86D6 - 2 ; case 3
.short _021D87D6 - _021D86D6 - 2 ; case 4
.short _021D8750 - _021D86D6 - 2 ; case 5
_021D86E2:
bl MOD14_021DC3F4
cmp r0, #1
beq _021D870A
ldr r0, _021D87F0 ; =0x000005F3
bl FUN_020054C8
add r0, r4, #0
mov r1, #0x11
bl MOD14_021DBA44
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x18
bl MOD14_021DCB2C
mov r0, #2
str r0, [r5]
pop {r3, r4, r5, pc}
_021D870A:
add r0, r4, #0
bl MOD14_021DC3C4
cmp r0, #3
bne _021D8728
add r0, r4, #0
bl MOD14_021DC538
cmp r0, #0
beq _021D8728
ldr r1, _021D87F4 ; =MOD14_021DA7C4
add r0, r4, #0
bl MOD14_021D7610
pop {r3, r4, r5, pc}
_021D8728:
ldr r0, _021D87F8 ; =0x000005DD
bl FUN_020054C8
add r0, r4, #0
mov r1, #0xc
bl MOD14_021DBA44
add r0, r4, #0
mov r1, #0
bl MOD14_021E5D98
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x19
bl MOD14_021DCB2C
mov r0, #5
str r0, [r5]
pop {r3, r4, r5, pc}
_021D8750:
bl MOD14_021E6160
cmp r0, #0x36
bgt _021D8770
bge _021D8794
mov r2, #0
mvn r2, r2
cmp r0, r2
bgt _021D87EC
sub r1, r2, #1
cmp r0, r1
blt _021D87EC
beq _021D8776
cmp r0, r2
beq _021D8784
pop {r3, r4, r5, pc}
_021D8770:
cmp r0, #0x37
beq _021D8784
pop {r3, r4, r5, pc}
_021D8776:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x1c
bl MOD14_021DCB2C
pop {r3, r4, r5, pc}
_021D8784:
ldr r1, _021D87FC ; =MOD14_021D850C
add r0, r4, #0
bl MOD14_021D7600
add r0, r4, #0
bl MOD14_021D7620
pop {r3, r4, r5, pc}
_021D8794:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x1a
bl MOD14_021DCB2C
mov r0, #4
str r0, [r5]
pop {r3, r4, r5, pc}
_021D87A6:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x19
bl MOD14_021DCB98
cmp r0, #0
beq _021D87EC
mov r0, #3
str r0, [r5]
_021D87BA:
ldr r0, _021D8800 ; =0x021C48B8
ldr r1, [r0, #0x48]
mov r0, #3
tst r0, r1
beq _021D87EC
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x1a
bl MOD14_021DCB2C
mov r0, #4
str r0, [r5]
pop {r3, r4, r5, pc}
_021D87D6:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x1a
bl MOD14_021DCB98
cmp r0, #0
beq _021D87EC
add r0, r4, #0
bl MOD14_021D7620
_021D87EC:
pop {r3, r4, r5, pc}
nop
_021D87F0: .word 0x000005F3
_021D87F4: .word MOD14_021DA7C4
_021D87F8: .word 0x000005DD
_021D87FC: .word MOD14_021D850C
_021D8800: .word 0x021C48B8
thumb_func_start MOD14_021D8804
MOD14_021D8804: ; 0x021D8804
push {r3, r4, r5, lr}
add r5, r1, #0
ldr r1, [r5]
add r4, r0, #0
cmp r1, #5
bhi _021D88F6
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021D881C: ; jump table
.short _021D8828 - _021D881C - 2 ; case 0
.short _021D887C - _021D881C - 2 ; case 1
.short _021D8890 - _021D881C - 2 ; case 2
.short _021D88EA - _021D881C - 2 ; case 3
.short _021D8A08 - _021D881C - 2 ; case 4
.short _021D8A20 - _021D881C - 2 ; case 5
_021D8828:
bl MOD14_021DC458
add r2, r0, #0
mov r0, #0x67
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0
bl FUN_0200ACF8
add r0, r4, #0
mov r1, #0
bl MOD14_021DBA44
add r0, r4, #0
bl MOD14_021E5DC4
add r0, r4, #0
bl MOD14_021DC49C
cmp r0, #0
beq _021D8864
add r0, r4, #0
bl MOD14_021E6220
mov r1, #0x6e
lsl r1, r1, #2
str r0, [r4, r1]
mov r0, #3
str r0, [r5]
pop {r3, r4, r5, pc}
_021D8864:
ldr r0, _021D8A38 ; =0x000005DD
bl FUN_020054C8
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x19
bl MOD14_021DCB2C
mov r0, #1
str r0, [r5]
pop {r3, r4, r5, pc}
_021D887C:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x19
bl MOD14_021DCB98
cmp r0, #0
beq _021D88F6
mov r0, #2
str r0, [r5]
_021D8890:
add r0, r4, #0
bl MOD14_021E6160
mov r1, #0x6e
lsl r1, r1, #2
str r0, [r4, r1]
mov r0, #0
ldr r2, [r4, r1]
mvn r0, r0
cmp r2, r0
bgt _021D88BA
sub r3, r0, #2
cmp r2, r3
blt _021D88E4
beq _021D88F6
sub r3, r0, #1
cmp r2, r3
beq _021D88C0
cmp r2, r0
beq _021D88CC
b _021D88E4
_021D88BA:
cmp r2, #0x2b
beq _021D88CC
b _021D88E4
_021D88C0:
sub r1, #0xa4
ldr r0, [r4, r1]
mov r1, #0x1c
bl MOD14_021DCB2C
pop {r3, r4, r5, pc}
_021D88CC:
ldr r0, _021D8A38 ; =0x000005DD
bl FUN_020054C8
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x1a
bl MOD14_021DCB2C
mov r0, #4
str r0, [r5]
pop {r3, r4, r5, pc}
_021D88E4:
mov r0, #3
str r0, [r5]
pop {r3, r4, r5, pc}
_021D88EA:
mov r1, #0x6e
lsl r1, r1, #2
ldr r2, [r4, r1]
sub r2, #0x22
cmp r2, #0x13
bls _021D88F8
_021D88F6:
b _021D8A34
_021D88F8:
add r2, r2, r2
add r2, pc
ldrh r2, [r2, #6]
lsl r2, r2, #0x10
asr r2, r2, #0x10
add pc, r2
_021D8904: ; jump table
.short _021D892C - _021D8904 - 2 ; case 0
.short _021D895E - _021D8904 - 2 ; case 1
.short _021D8972 - _021D8904 - 2 ; case 2
.short _021D89A6 - _021D8904 - 2 ; case 3
.short _021D8986 - _021D8904 - 2 ; case 4
.short _021D898E - _021D8904 - 2 ; case 5
.short _021D89AE - _021D8904 - 2 ; case 6
.short _021D8996 - _021D8904 - 2 ; case 7
.short _021D899E - _021D8904 - 2 ; case 8
.short _021D8A34 - _021D8904 - 2 ; case 9
.short _021D8A34 - _021D8904 - 2 ; case 10
.short _021D8A34 - _021D8904 - 2 ; case 11
.short _021D8A34 - _021D8904 - 2 ; case 12
.short _021D8A34 - _021D8904 - 2 ; case 13
.short _021D8A34 - _021D8904 - 2 ; case 14
.short _021D8A34 - _021D8904 - 2 ; case 15
.short _021D8A34 - _021D8904 - 2 ; case 16
.short _021D8A34 - _021D8904 - 2 ; case 17
.short _021D89CA - _021D8904 - 2 ; case 18
.short _021D89CA - _021D8904 - 2 ; case 19
_021D892C:
bl MOD14_021DC3CC
cmp r0, #0
bne _021D8948
add r0, r4, #0
bl MOD14_021DC49C
cmp r0, #1
bne _021D8948
ldr r1, _021D8A3C ; =MOD14_021D9230
add r0, r4, #0
bl MOD14_021D7610
pop {r3, r4, r5, pc}
_021D8948:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x1a
bl MOD14_021DCB2C
ldr r1, _021D8A40 ; =MOD14_021D94BC
add r0, r4, #0
bl MOD14_021D7610
pop {r3, r4, r5, pc}
_021D895E:
sub r1, #0xa4
ldr r0, [r4, r1]
mov r1, #0x1a
bl MOD14_021DCB2C
ldr r1, _021D8A44 ; =MOD14_021D95B4
add r0, r4, #0
bl MOD14_021D7610
pop {r3, r4, r5, pc}
_021D8972:
sub r1, #0xa4
ldr r0, [r4, r1]
mov r1, #0x1a
bl MOD14_021DCB2C
ldr r1, _021D8A48 ; =MOD14_021D96B0
add r0, r4, #0
bl MOD14_021D7610
pop {r3, r4, r5, pc}
_021D8986:
ldr r1, _021D8A4C ; =MOD14_021D9770
bl MOD14_021D7610
pop {r3, r4, r5, pc}
_021D898E:
ldr r1, _021D8A50 ; =MOD14_021D9934
bl MOD14_021D7610
pop {r3, r4, r5, pc}
_021D8996:
ldr r1, _021D8A54 ; =MOD14_021D9138
bl MOD14_021D7610
pop {r3, r4, r5, pc}
_021D899E:
ldr r1, _021D8A58 ; =MOD14_021D9C98
bl MOD14_021D7610
pop {r3, r4, r5, pc}
_021D89A6:
ldr r1, _021D8A5C ; =MOD14_021DA2C8
bl MOD14_021D7610
pop {r3, r4, r5, pc}
_021D89AE:
bl MOD14_021DC430
cmp r0, #0
bne _021D89C0
ldr r1, _021D8A60 ; =MOD14_021DA3E4
add r0, r4, #0
bl MOD14_021D7610
pop {r3, r4, r5, pc}
_021D89C0:
ldr r1, _021D8A64 ; =MOD14_021DA5F0
add r0, r4, #0
bl MOD14_021D7610
pop {r3, r4, r5, pc}
_021D89CA:
bl MOD14_021DC170
ldr r1, [r4, #8]
add r0, r4, #0
add r2, r4, #0
bl MOD14_021DBE88
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x1a
bl MOD14_021DCB2C
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x30
bl MOD14_021DCB2C
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #6
bl MOD14_021DCB2C
ldr r0, _021D8A38 ; =0x000005DD
bl FUN_020054C8
mov r0, #5
str r0, [r5]
pop {r3, r4, r5, pc}
_021D8A08:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x1a
bl MOD14_021DCB98
cmp r0, #0
beq _021D8A34
add r0, r4, #0
bl MOD14_021D7620
pop {r3, r4, r5, pc}
_021D8A20:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
bl MOD14_021DCBC0
cmp r0, #0
beq _021D8A34
add r0, r4, #0
bl MOD14_021D7620
_021D8A34:
pop {r3, r4, r5, pc}
nop
_021D8A38: .word 0x000005DD
_021D8A3C: .word MOD14_021D9230
_021D8A40: .word MOD14_021D94BC
_021D8A44: .word MOD14_021D95B4
_021D8A48: .word MOD14_021D96B0
_021D8A4C: .word MOD14_021D9770
_021D8A50: .word MOD14_021D9934
_021D8A54: .word MOD14_021D9138
_021D8A58: .word MOD14_021D9C98
_021D8A5C: .word MOD14_021DA2C8
_021D8A60: .word MOD14_021DA3E4
_021D8A64: .word MOD14_021DA5F0
thumb_func_start MOD14_021D8A68
MOD14_021D8A68: ; 0x021D8A68
push {r3, r4, r5, lr}
add r5, r1, #0
ldr r1, [r5]
add r4, r0, #0
cmp r1, #7
bls _021D8A76
b _021D8D54
_021D8A76:
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021D8A82: ; jump table
.short _021D8A92 - _021D8A82 - 2 ; case 0
.short _021D8B3C - _021D8A82 - 2 ; case 1
.short _021D8B50 - _021D8A82 - 2 ; case 2
.short _021D8BB0 - _021D8A82 - 2 ; case 3
.short _021D8CE0 - _021D8A82 - 2 ; case 4
.short _021D8CF8 - _021D8A82 - 2 ; case 5
.short _021D8D24 - _021D8A82 - 2 ; case 6
.short _021D8D3A - _021D8A82 - 2 ; case 7
_021D8A92:
bl MOD14_021DC538
add r2, r0, #0
beq _021D8AB0
mov r0, #0x67
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0
bl FUN_0200AE38
add r0, r4, #0
mov r1, #0x19
bl MOD14_021DBA44
b _021D8AD8
_021D8AB0:
add r0, r4, #0
bl MOD14_021DC430
add r2, r0, #0
beq _021D8AD0
mov r0, #0x67
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0
bl FUN_0200AE38
add r0, r4, #0
mov r1, #0x19
bl MOD14_021DBA44
b _021D8AD8
_021D8AD0:
add r0, r4, #0
mov r1, #0x1c
bl MOD14_021DBA44
_021D8AD8:
add r0, r4, #0
bl MOD14_021E5F04
add r0, r4, #0
bl MOD14_021DC584
cmp r0, #0
beq _021D8B08
ldr r0, _021D8D58 ; =0x000005F3
bl FUN_020054C8
add r0, r4, #0
mov r1, #0x22
bl MOD14_021DBA44
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x18
bl MOD14_021DCB2C
mov r0, #7
str r0, [r5]
pop {r3, r4, r5, pc}
_021D8B08:
add r0, r4, #0
bl MOD14_021DC49C
cmp r0, #0
beq _021D8B24
add r0, r4, #0
bl MOD14_021E6220
mov r1, #0x6e
lsl r1, r1, #2
str r0, [r4, r1]
mov r0, #3
str r0, [r5]
pop {r3, r4, r5, pc}
_021D8B24:
ldr r0, _021D8D5C ; =0x000005DD
bl FUN_020054C8
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x19
bl MOD14_021DCB2C
mov r0, #1
str r0, [r5]
pop {r3, r4, r5, pc}
_021D8B3C:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x19
bl MOD14_021DCB98
cmp r0, #0
beq _021D8BBC
mov r0, #2
str r0, [r5]
_021D8B50:
add r0, r4, #0
bl MOD14_021E6160
mov r1, #0x6e
lsl r1, r1, #2
str r0, [r4, r1]
mov r0, #0
ldr r2, [r4, r1]
mvn r0, r0
cmp r2, r0
bgt _021D8B7A
sub r3, r0, #2
cmp r2, r3
blt _021D8BA4
beq _021D8BBC
sub r3, r0, #1
cmp r2, r3
beq _021D8B80
cmp r2, r0
beq _021D8B8C
b _021D8BA4
_021D8B7A:
cmp r2, #0x33
beq _021D8B8C
b _021D8BA4
_021D8B80:
sub r1, #0xa4
ldr r0, [r4, r1]
mov r1, #0x1c
bl MOD14_021DCB2C
pop {r3, r4, r5, pc}
_021D8B8C:
ldr r0, _021D8D5C ; =0x000005DD
bl FUN_020054C8
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x1a
bl MOD14_021DCB2C
mov r0, #4
str r0, [r5]
pop {r3, r4, r5, pc}
_021D8BA4:
ldr r0, _021D8D5C ; =0x000005DD
bl FUN_020054C8
mov r0, #3
str r0, [r5]
pop {r3, r4, r5, pc}
_021D8BB0:
mov r1, #0x6e
lsl r1, r1, #2
ldr r1, [r4, r1]
sub r1, #0x2e
cmp r1, #4
bls _021D8BBE
_021D8BBC:
b _021D8D54
_021D8BBE:
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021D8BCA: ; jump table
.short _021D8BD4 - _021D8BCA - 2 ; case 0
.short _021D8C12 - _021D8BCA - 2 ; case 1
.short _021D8C74 - _021D8BCA - 2 ; case 2
.short _021D8C7C - _021D8BCA - 2 ; case 3
.short _021D8CD8 - _021D8BCA - 2 ; case 4
_021D8BD4:
bl MOD14_021DC538
cmp r0, #0
beq _021D8C08
add r0, r4, #0
add r1, r4, #0
bl MOD14_021DC31C
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x1a
bl MOD14_021DCB2C
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x14
bl MOD14_021DCB2C
ldr r0, _021D8D5C ; =0x000005DD
bl FUN_020054C8
mov r0, #5
str r0, [r5]
pop {r3, r4, r5, pc}
_021D8C08:
ldr r1, _021D8D60 ; =MOD14_021DA3E4
add r0, r4, #0
bl MOD14_021D7610
pop {r3, r4, r5, pc}
_021D8C12:
bl MOD14_021DC430
lsl r0, r0, #0x10
lsr r0, r0, #0x10
bl FUN_0206EA98
cmp r0, #0
beq _021D8C42
ldr r0, _021D8D58 ; =0x000005F3
bl FUN_020054C8
add r0, r4, #0
mov r1, #0x18
bl MOD14_021DBA44
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x18
bl MOD14_021DCB2C
mov r0, #7
str r0, [r5]
pop {r3, r4, r5, pc}
_021D8C42:
add r0, r4, #0
add r1, r4, #0
bl MOD14_021DC2E4
add r0, r4, #0
bl MOD14_021D7674
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x1a
bl MOD14_021DCB2C
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x13
bl MOD14_021DCB2C
ldr r0, _021D8D5C ; =0x000005DD
bl FUN_020054C8
mov r0, #5
str r0, [r5]
pop {r3, r4, r5, pc}
_021D8C74:
ldr r1, _021D8D64 ; =MOD14_021DA9D0
bl MOD14_021D7610
pop {r3, r4, r5, pc}
_021D8C7C:
bl MOD14_021DC430
lsl r0, r0, #0x10
lsr r0, r0, #0x10
bl FUN_0206EA98
cmp r0, #0
beq _021D8CAC
ldr r0, _021D8D58 ; =0x000005F3
bl FUN_020054C8
add r0, r4, #0
mov r1, #0x18
bl MOD14_021DBA44
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x18
bl MOD14_021DCB2C
mov r0, #7
str r0, [r5]
pop {r3, r4, r5, pc}
_021D8CAC:
add r0, r4, #0
add r1, r4, #0
bl MOD14_021DC334
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x1a
bl MOD14_021DCB2C
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x15
bl MOD14_021DCB2C
ldr r0, _021D8D5C ; =0x000005DD
bl FUN_020054C8
mov r0, #5
str r0, [r5]
pop {r3, r4, r5, pc}
_021D8CD8:
ldr r1, _021D8D68 ; =MOD14_021DA7C4
bl MOD14_021D7610
pop {r3, r4, r5, pc}
_021D8CE0:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x1a
bl MOD14_021DCB98
cmp r0, #0
beq _021D8D54
add r0, r4, #0
bl MOD14_021D7620
pop {r3, r4, r5, pc}
_021D8CF8:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
bl MOD14_021DCBC0
cmp r0, #0
beq _021D8D54
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #6
bl MOD14_021DCB2C
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x16
bl MOD14_021DCB2C
mov r0, #6
str r0, [r5]
pop {r3, r4, r5, pc}
_021D8D24:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
bl MOD14_021DCBC0
cmp r0, #0
beq _021D8D54
add r0, r4, #0
bl MOD14_021D7620
pop {r3, r4, r5, pc}
_021D8D3A:
ldr r0, _021D8D6C ; =0x021C48B8
ldr r1, [r0, #0x48]
mov r0, #3
tst r0, r1
beq _021D8D54
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x1a
bl MOD14_021DCB2C
mov r0, #6
str r0, [r5]
_021D8D54:
pop {r3, r4, r5, pc}
nop
_021D8D58: .word 0x000005F3
_021D8D5C: .word 0x000005DD
_021D8D60: .word MOD14_021DA3E4
_021D8D64: .word MOD14_021DA9D0
_021D8D68: .word MOD14_021DA7C4
_021D8D6C: .word 0x021C48B8
thumb_func_start MOD14_021D8D70
MOD14_021D8D70: ; 0x021D8D70
push {r3, r4, r5, lr}
add r5, r1, #0
ldr r1, [r5]
add r4, r0, #0
cmp r1, #7
bls _021D8D7E
b _021D8EB0
_021D8D7E:
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021D8D8A: ; jump table
.short _021D8D9A - _021D8D8A - 2 ; case 0
.short _021D8DDE - _021D8D8A - 2 ; case 1
.short _021D8DF2 - _021D8D8A - 2 ; case 2
.short _021D8E42 - _021D8D8A - 2 ; case 3
.short _021D8E82 - _021D8D8A - 2 ; case 4
.short _021D8EB0 - _021D8D8A - 2 ; case 5
.short _021D8EB0 - _021D8D8A - 2 ; case 6
.short _021D8E9A - _021D8D8A - 2 ; case 7
_021D8D9A:
mov r1, #7
bl MOD14_021DBA44
add r0, r4, #0
bl MOD14_021E5F84
add r0, r4, #0
bl MOD14_021DC49C
cmp r0, #0
ldr r0, _021D8EB4 ; =0x000005DD
beq _021D8DC8
bl FUN_020054C8
add r0, r4, #0
bl MOD14_021E6220
mov r1, #0x6e
lsl r1, r1, #2
str r0, [r4, r1]
mov r0, #3
str r0, [r5]
pop {r3, r4, r5, pc}
_021D8DC8:
bl FUN_020054C8
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x19
bl MOD14_021DCB2C
mov r0, #1
str r0, [r5]
pop {r3, r4, r5, pc}
_021D8DDE:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x19
bl MOD14_021DCB98
cmp r0, #0
beq _021D8EB0
mov r0, #2
str r0, [r5]
_021D8DF2:
add r0, r4, #0
bl MOD14_021E6160
mov r1, #0x6e
lsl r1, r1, #2
str r0, [r4, r1]
ldr r0, [r4, r1]
add r0, r0, #3
cmp r0, #6
bhi _021D8E3C
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021D8E12: ; jump table
.short _021D8EB0 - _021D8E12 - 2 ; case 0
.short _021D8E20 - _021D8E12 - 2 ; case 1
.short _021D8E2C - _021D8E12 - 2 ; case 2
.short _021D8E3C - _021D8E12 - 2 ; case 3
.short _021D8E3C - _021D8E12 - 2 ; case 4
.short _021D8E3C - _021D8E12 - 2 ; case 5
.short _021D8E2C - _021D8E12 - 2 ; case 6
_021D8E20:
sub r1, #0xa4
ldr r0, [r4, r1]
mov r1, #0x1c
bl MOD14_021DCB2C
pop {r3, r4, r5, pc}
_021D8E2C:
sub r1, #0xa4
ldr r0, [r4, r1]
mov r1, #0x1a
bl MOD14_021DCB2C
mov r0, #4
str r0, [r5]
pop {r3, r4, r5, pc}
_021D8E3C:
mov r0, #3
str r0, [r5]
pop {r3, r4, r5, pc}
_021D8E42:
mov r1, #0x6e
lsl r1, r1, #2
ldr r2, [r4, r1]
cmp r2, #0
beq _021D8E56
cmp r2, #1
beq _021D8E6A
cmp r2, #2
beq _021D8E7A
pop {r3, r4, r5, pc}
_021D8E56:
sub r1, #0xa4
ldr r0, [r4, r1]
mov r1, #0x1a
bl MOD14_021DCB2C
ldr r1, _021D8EB8 ; =MOD14_021D8EC4
add r0, r4, #0
bl MOD14_021D7610
pop {r3, r4, r5, pc}
_021D8E6A:
sub r1, #0xa4
ldr r0, [r4, r1]
mov r1, #0x1b
bl MOD14_021DCB2C
mov r0, #7
str r0, [r5]
pop {r3, r4, r5, pc}
_021D8E7A:
ldr r1, _021D8EBC ; =MOD14_021DA1D4
bl MOD14_021D7610
pop {r3, r4, r5, pc}
_021D8E82:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x1a
bl MOD14_021DCB98
cmp r0, #0
beq _021D8EB0
add r0, r4, #0
bl MOD14_021D7620
pop {r3, r4, r5, pc}
_021D8E9A:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
bl MOD14_021DCBC0
cmp r0, #0
beq _021D8EB0
ldr r1, _021D8EC0 ; =MOD14_021D8F6C
add r0, r4, #0
bl MOD14_021D7610
_021D8EB0:
pop {r3, r4, r5, pc}
nop
_021D8EB4: .word 0x000005DD
_021D8EB8: .word MOD14_021D8EC4
_021D8EBC: .word MOD14_021DA1D4
_021D8EC0: .word MOD14_021D8F6C
thumb_func_start MOD14_021D8EC4
MOD14_021D8EC4: ; 0x021D8EC4
push {r4, r5, r6, lr}
add r4, r1, #0
ldr r1, [r4]
add r5, r0, #0
cmp r1, #0
beq _021D8EDA
cmp r1, #1
beq _021D8EEE
cmp r1, #2
beq _021D8F52
pop {r4, r5, r6, pc}
_021D8EDA:
bl MOD14_021DC424
add r1, r0, #0
add r0, r5, #0
mov r2, #8
bl MOD14_021DAA7C
mov r0, #1
str r0, [r4]
pop {r4, r5, r6, pc}
_021D8EEE:
bl MOD14_021DAAA8
cmp r0, #0
beq _021D8F66
ldr r0, _021D8F68 ; =0x000001C1
ldrsb r6, [r5, r0]
mov r0, #0
mvn r0, r0
cmp r6, r0
beq _021D8F0C
add r0, r5, #0
bl MOD14_021DC424
cmp r6, r0
bne _021D8F12
_021D8F0C:
mov r0, #2
str r0, [r4]
b _021D8F38
_021D8F12:
add r0, r5, #0
add r1, r6, #0
bl MOD14_021DC2C4
mov r1, #0x12
lsl r1, r1, #4
ldr r0, [r5, r1]
add r1, #0xa1
ldrsb r1, [r5, r1]
bl FUN_0206B428
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #4
bl MOD14_021DCB2C
mov r0, #2
str r0, [r4]
_021D8F38:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #0x1a
bl MOD14_021DCB2C
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #0x20
bl MOD14_021DCB2C
pop {r4, r5, r6, pc}
_021D8F52:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r5, r0]
bl MOD14_021DCBC0
cmp r0, #0
beq _021D8F66
add r0, r5, #0
bl MOD14_021D7620
_021D8F66:
pop {r4, r5, r6, pc}
.align 2, 0
_021D8F68: .word 0x000001C1
thumb_func_start MOD14_021D8F6C
MOD14_021D8F6C: ; 0x021D8F6C
push {r3, r4, r5, lr}
add r5, r1, #0
add r4, r0, #0
ldr r0, [r5]
cmp r0, #8
bhi _021D8FD8
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021D8F84: ; jump table
.short _021D8F96 - _021D8F84 - 2 ; case 0
.short _021D8FA2 - _021D8F84 - 2 ; case 1
.short _021D8FC8 - _021D8F84 - 2 ; case 2
.short _021D8FDE - _021D8F84 - 2 ; case 3
.short _021D9062 - _021D8F84 - 2 ; case 4
.short _021D9076 - _021D8F84 - 2 ; case 5
.short _021D90FC - _021D8F84 - 2 ; case 6
.short _021D910E - _021D8F84 - 2 ; case 7
.short _021D9122 - _021D8F84 - 2 ; case 8
_021D8F96:
mov r0, #0x6e
mov r1, #4
lsl r0, r0, #2
str r1, [r4, r0]
mov r0, #1
str r0, [r5]
_021D8FA2:
add r0, r4, #0
mov r1, #9
bl MOD14_021DBA44
mov r1, #0x6e
lsl r1, r1, #2
ldr r1, [r4, r1]
add r0, r4, #0
bl MOD14_021E5FC8
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x19
bl MOD14_021DCB2C
mov r0, #2
str r0, [r5]
pop {r3, r4, r5, pc}
_021D8FC8:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x19
bl MOD14_021DCB98
cmp r0, #0
bne _021D8FDA
_021D8FD8:
b _021D9136
_021D8FDA:
mov r0, #3
str r0, [r5]
_021D8FDE:
add r0, r4, #0
bl MOD14_021E6160
add r0, r0, #3
cmp r0, #0xc
bhi _021D901E
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021D8FF6: ; jump table
.short _021D9136 - _021D8FF6 - 2 ; case 0
.short _021D9010 - _021D8FF6 - 2 ; case 1
.short _021D901E - _021D8FF6 - 2 ; case 2
.short _021D901E - _021D8FF6 - 2 ; case 3
.short _021D901E - _021D8FF6 - 2 ; case 4
.short _021D901E - _021D8FF6 - 2 ; case 5
.short _021D901E - _021D8FF6 - 2 ; case 6
.short _021D9030 - _021D8FF6 - 2 ; case 7
.short _021D9030 - _021D8FF6 - 2 ; case 8
.short _021D9030 - _021D8FF6 - 2 ; case 9
.short _021D9030 - _021D8FF6 - 2 ; case 10
.short _021D9030 - _021D8FF6 - 2 ; case 11
.short _021D9030 - _021D8FF6 - 2 ; case 12
_021D9010:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x1c
bl MOD14_021DCB2C
pop {r3, r4, r5, pc}
_021D901E:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x1a
bl MOD14_021DCB2C
mov r0, #8
str r0, [r5]
pop {r3, r4, r5, pc}
_021D9030:
add r0, r4, #0
bl MOD14_021E6210
mov r1, #0x6e
lsl r1, r1, #2
str r0, [r4, r1]
add r0, r4, #0
mov r1, #0xa
bl MOD14_021DBA44
mov r1, #0x6e
lsl r1, r1, #2
ldr r1, [r4, r1]
add r0, r4, #0
bl MOD14_021E6038
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x19
bl MOD14_021DCB2C
mov r0, #4
str r0, [r5]
pop {r3, r4, r5, pc}
_021D9062:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x19
bl MOD14_021DCB98
cmp r0, #0
beq _021D9136
mov r0, #5
str r0, [r5]
_021D9076:
add r0, r4, #0
bl MOD14_021E6160
add r0, r0, #3
cmp r0, #6
bhi _021D90B0
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021D908E: ; jump table
.short _021D9136 - _021D908E - 2 ; case 0
.short _021D909C - _021D908E - 2 ; case 1
.short _021D90AA - _021D908E - 2 ; case 2
.short _021D90B0 - _021D908E - 2 ; case 3
.short _021D90B0 - _021D908E - 2 ; case 4
.short _021D90B0 - _021D908E - 2 ; case 5
.short _021D90AA - _021D908E - 2 ; case 6
_021D909C:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x1c
bl MOD14_021DCB2C
pop {r3, r4, r5, pc}
_021D90AA:
mov r0, #1
str r0, [r5]
pop {r3, r4, r5, pc}
_021D90B0:
add r0, r4, #0
bl MOD14_021E6210
mov r1, #0x6e
lsl r1, r1, #2
str r0, [r4, r1]
ldr r2, [r4, r1]
cmp r2, #0xa
blt _021D90F2
cmp r2, #0x21
bgt _021D90F2
sub r1, #0x98
ldr r0, [r4, r1]
mov r1, #0
mvn r1, r1
sub r2, #0xa
bl FUN_0206B458
mov r1, #0x12
lsl r1, r1, #4
ldr r1, [r4, r1]
add r0, r4, #0
bl MOD14_021DB59C
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x1a
bl MOD14_021DCB2C
mov r0, #6
str r0, [r5]
pop {r3, r4, r5, pc}
_021D90F2:
bl ErrorHandling
mov r0, #1
str r0, [r5]
pop {r3, r4, r5, pc}
_021D90FC:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x21
bl MOD14_021DCB2C
mov r0, #8
str r0, [r5]
pop {r3, r4, r5, pc}
_021D910E:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
bl MOD14_021DCBC0
cmp r0, #0
beq _021D9136
mov r0, #1
str r0, [r5]
pop {r3, r4, r5, pc}
_021D9122:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
bl MOD14_021DCBC0
cmp r0, #0
beq _021D9136
add r0, r4, #0
bl MOD14_021D7620
_021D9136:
pop {r3, r4, r5, pc}
thumb_func_start MOD14_021D9138
MOD14_021D9138: ; 0x021D9138
push {r3, r4, r5, lr}
add r4, r1, #0
ldr r1, [r4]
add r5, r0, #0
cmp r1, #0
beq _021D914E
cmp r1, #1
beq _021D916C
cmp r1, #2
beq _021D921A
pop {r3, r4, r5, pc}
_021D914E:
bl MOD14_021E60B4
add r0, r5, #0
mov r1, #1
bl MOD14_021DBA44
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #0x19
bl MOD14_021DCB2C
mov r0, #1
str r0, [r4]
pop {r3, r4, r5, pc}
_021D916C:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r5, r0]
bl MOD14_021DCBC0
cmp r0, #0
beq _021D922E
add r0, r5, #0
bl MOD14_021E6160
mov r2, #2
add r1, r0, #0
mvn r2, r2
cmp r1, r2
bhi _021D919C
bhs _021D922E
cmp r1, #0x2d
bhi _021D91FC
cmp r1, #0x2c
blo _021D91FC
beq _021D91CC
cmp r1, #0x2d
beq _021D91BA
b _021D91FC
_021D919C:
add r0, r2, #1
cmp r1, r0
blo _021D91FC
beq _021D91AC
add r0, r2, #2
cmp r1, r0
beq _021D91BA
b _021D91FC
_021D91AC:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #0x1c
bl MOD14_021DCB2C
pop {r3, r4, r5, pc}
_021D91BA:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #0x1a
bl MOD14_021DCB2C
mov r0, #2
str r0, [r4]
pop {r3, r4, r5, pc}
_021D91CC:
add r0, r5, #0
bl MOD14_021DC1AC
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #0x1a
bl MOD14_021DCB2C
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #7
bl MOD14_021DCB2C
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #0x27
bl MOD14_021DCB2C
mov r0, #2
str r0, [r4]
pop {r3, r4, r5, pc}
_021D91FC:
cmp r1, #0x38
blo _021D922E
cmp r1, #0x3d
bhi _021D922E
add r0, r5, #0
sub r1, #0x38
bl MOD14_021E6118
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #0x1d
bl MOD14_021DCB2C
pop {r3, r4, r5, pc}
_021D921A:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r5, r0]
bl MOD14_021DCBC0
cmp r0, #0
beq _021D922E
add r0, r5, #0
bl MOD14_021D7620
_021D922E:
pop {r3, r4, r5, pc}
thumb_func_start MOD14_021D9230
MOD14_021D9230: ; 0x021D9230
push {r3, r4, r5, lr}
add r5, r1, #0
ldr r1, [r5]
add r4, r0, #0
cmp r1, #4
bls _021D923E
b _021D9454
_021D923E:
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021D924A: ; jump table
.short _021D9254 - _021D924A - 2 ; case 0
.short _021D9284 - _021D924A - 2 ; case 1
.short _021D9326 - _021D924A - 2 ; case 2
.short _021D942C - _021D924A - 2 ; case 3
.short _021D9440 - _021D924A - 2 ; case 4
_021D9254:
ldr r1, _021D9458 ; =0x021C48B8
ldr r2, [r1, #0x44]
mov r1, #1
tst r1, r2
beq _021D927C
add r1, r4, #0
bl MOD14_021DBBD0
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x2c
bl MOD14_021DCB2C
ldr r0, _021D945C ; =0x000005DC
bl FUN_020054C8
mov r0, #1
str r0, [r5]
pop {r3, r4, r5, pc}
_021D927C:
ldr r1, _021D9460 ; =MOD14_021D94BC
bl MOD14_021D7610
pop {r3, r4, r5, pc}
_021D9284:
ldr r1, _021D9458 ; =0x021C48B8
ldr r2, [r1, #0x44]
mov r1, #1
tst r1, r2
beq _021D92E8
add r0, r2, #0
add r1, r4, #0
bl MOD14_021DB790
cmp r0, #1
beq _021D92B6
cmp r0, #2
bne _021D9342
ldr r1, _021D9458 ; =0x021C48B8
mov r0, #0xf0
ldr r2, [r1, #0x44]
ldr r1, [r1, #0x48]
and r2, r0
and r0, r1
cmp r2, r0
bne _021D9342
ldr r0, _021D9464 ; =0x000005F3
bl FUN_020054C8
pop {r3, r4, r5, pc}
_021D92B6:
add r0, r4, #0
add r1, r4, #0
bl MOD14_021DBBEC
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x2e
bl MOD14_021DCB2C
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #5
bl MOD14_021DCB2C
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #6
bl MOD14_021DCB2C
mov r0, #3
str r0, [r5]
pop {r3, r4, r5, pc}
_021D92E8:
bl MOD14_021DC4DC
cmp r0, #0
beq _021D9306
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x2d
bl MOD14_021DCB2C
ldr r1, _021D9460 ; =MOD14_021D94BC
add r0, r4, #0
bl MOD14_021D7610
pop {r3, r4, r5, pc}
_021D9306:
add r0, r4, #0
add r1, r4, #0
bl MOD14_021DBAE0
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x2f
bl MOD14_021DCB2C
ldr r0, _021D9468 ; =0x000005EB
bl FUN_020054C8
mov r0, #2
str r0, [r5]
pop {r3, r4, r5, pc}
_021D9326:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
bl MOD14_021DCBC0
cmp r0, #0
beq _021D9342
ldr r0, _021D9458 ; =0x021C48B8
add r1, r4, #0
ldr r0, [r0, #0x44]
bl MOD14_021DB790
cmp r0, #4
bls _021D9344
_021D9342:
b _021D9454
_021D9344:
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021D9350: ; jump table
.short _021D93E2 - _021D9350 - 2 ; case 0
.short _021D9372 - _021D9350 - 2 ; case 1
.short _021D935A - _021D9350 - 2 ; case 2
.short _021D9396 - _021D9350 - 2 ; case 3
.short _021D93BC - _021D9350 - 2 ; case 4
_021D935A:
ldr r1, _021D9458 ; =0x021C48B8
mov r0, #0xf0
ldr r2, [r1, #0x44]
ldr r1, [r1, #0x48]
and r2, r0
and r0, r1
cmp r2, r0
bne _021D9454
ldr r0, _021D9464 ; =0x000005F3
bl FUN_020054C8
pop {r3, r4, r5, pc}
_021D9372:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #5
bl MOD14_021DCB2C
add r0, r4, #0
bl MOD14_021DC3F4
mov r1, #6
tst r0, r1
bne _021D9454
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
bl MOD14_021DCB2C
pop {r3, r4, r5, pc}
_021D9396:
add r0, r4, #0
bl MOD14_021DC2A4
add r0, r4, #0
bl MOD14_021DC424
add r1, r0, #0
mov r0, #0x12
lsl r0, r0, #4
ldr r0, [r4, r0]
bl FUN_0206B428
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #4
bl MOD14_021DCB2C
pop {r3, r4, r5, pc}
_021D93BC:
add r0, r4, #0
bl MOD14_021DC278
add r0, r4, #0
bl MOD14_021DC424
add r1, r0, #0
mov r0, #0x12
lsl r0, r0, #4
ldr r0, [r4, r0]
bl FUN_0206B428
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #4
bl MOD14_021DCB2C
pop {r3, r4, r5, pc}
_021D93E2:
ldr r0, _021D9458 ; =0x021C48B8
ldr r1, [r0, #0x48]
mov r0, #1
tst r0, r1
beq _021D941E
add r0, r4, #0
bl MOD14_021D9470
cmp r0, #0
beq _021D9416
add r0, r4, #0
add r1, r4, #0
bl MOD14_021DBCA0
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0xa
bl MOD14_021DCB2C
ldr r0, _021D946C ; =0x000005EA
bl FUN_020054C8
mov r0, #4
str r0, [r5]
pop {r3, r4, r5, pc}
_021D9416:
ldr r0, _021D9464 ; =0x000005F3
bl FUN_020054C8
pop {r3, r4, r5, pc}
_021D941E:
mov r0, #2
tst r0, r1
beq _021D9454
ldr r0, _021D9464 ; =0x000005F3
bl FUN_020054C8
pop {r3, r4, r5, pc}
_021D942C:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
bl MOD14_021DCBC0
cmp r0, #0
beq _021D9454
mov r0, #1
str r0, [r5]
pop {r3, r4, r5, pc}
_021D9440:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
bl MOD14_021DCBC0
cmp r0, #0
beq _021D9454
add r0, r4, #0
bl MOD14_021D7620
_021D9454:
pop {r3, r4, r5, pc}
nop
_021D9458: .word 0x021C48B8
_021D945C: .word 0x000005DC
_021D9460: .word MOD14_021D94BC
_021D9464: .word 0x000005F3
_021D9468: .word 0x000005EB
_021D946C: .word 0x000005EA
thumb_func_start MOD14_021D9470
MOD14_021D9470: ; 0x021D9470
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r5, #0x14
str r0, [sp]
bl MOD14_021DC4F8
add r7, r0, #0
ldrb r0, [r5, #8]
mov r4, #0
ldrb r6, [r5, #9]
cmp r0, #0
ble _021D94B6
_021D9488:
add r3, r5, r4
mov r2, #0xc
ldrsb r2, [r3, r2]
ldr r0, [sp]
mov r1, #0
sub r2, r2, r6
ldr r0, [r0]
mvn r1, r1
add r2, r7, r2
bl FUN_0206B5E4
mov r1, #0xab
mov r2, #0
bl FUN_020672BC
cmp r0, #0
beq _021D94AE
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
_021D94AE:
ldrb r0, [r5, #8]
add r4, r4, #1
cmp r4, r0
blt _021D9488
_021D94B6:
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start MOD14_021D94BC
MOD14_021D94BC: ; 0x021D94BC
push {r3, r4, r5, lr}
add r5, r1, #0
ldr r1, [r5]
add r4, r0, #0
cmp r1, #3
bhi _021D95A4
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021D94D4: ; jump table
.short _021D94DC - _021D94D4 - 2 ; case 0
.short _021D954E - _021D94D4 - 2 ; case 1
.short _021D9574 - _021D94D4 - 2 ; case 2
.short _021D9590 - _021D94D4 - 2 ; case 3
_021D94DC:
bl MOD14_021DC3CC
cmp r0, #1
bne _021D952E
add r0, r4, #0
bl MOD14_021D9B84
cmp r0, #0
bne _021D950E
ldr r0, _021D95A8 ; =0x000005EB
bl FUN_020054C8
add r0, r4, #0
add r1, r4, #0
bl MOD14_021DBA5C
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #9
bl MOD14_021DCB2C
mov r0, #1
str r0, [r5]
pop {r3, r4, r5, pc}
_021D950E:
ldr r0, _021D95AC ; =0x000005F3
bl FUN_020054C8
add r0, r4, #0
mov r1, #6
bl MOD14_021DBA44
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x18
bl MOD14_021DCB2C
mov r0, #2
str r0, [r5]
pop {r3, r4, r5, pc}
_021D952E:
ldr r0, _021D95A8 ; =0x000005EB
bl FUN_020054C8
add r0, r4, #0
add r1, r4, #0
bl MOD14_021DBA5C
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #9
bl MOD14_021DCB2C
mov r0, #3
str r0, [r5]
pop {r3, r4, r5, pc}
_021D954E:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
bl MOD14_021DCBC0
cmp r0, #0
beq _021D95A4
add r0, r4, #0
bl MOD14_021DB934
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x25
bl MOD14_021DCB2C
mov r0, #3
str r0, [r5]
pop {r3, r4, r5, pc}
_021D9574:
ldr r0, _021D95B0 ; =0x021C48B8
ldr r1, [r0, #0x48]
mov r0, #3
tst r0, r1
beq _021D95A4
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x1a
bl MOD14_021DCB2C
mov r0, #3
str r0, [r5]
pop {r3, r4, r5, pc}
_021D9590:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
bl MOD14_021DCBC0
cmp r0, #0
beq _021D95A4
add r0, r4, #0
bl MOD14_021D7620
_021D95A4:
pop {r3, r4, r5, pc}
nop
_021D95A8: .word 0x000005EB
_021D95AC: .word 0x000005F3
_021D95B0: .word 0x021C48B8
thumb_func_start MOD14_021D95B4
MOD14_021D95B4: ; 0x021D95B4
push {r4, r5, r6, lr}
add r4, r1, #0
ldr r1, [r4]
add r5, r0, #0
cmp r1, #0
beq _021D95CA
cmp r1, #1
beq _021D9616
cmp r1, #2
beq _021D9648
pop {r4, r5, r6, pc}
_021D95CA:
add r1, r5, #0
bl MOD14_021DBC00
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #0xa
bl MOD14_021DCB2C
ldr r0, _021D9664 ; =0x000005EA
bl FUN_020054C8
add r0, r5, #0
bl MOD14_021DC3CC
cmp r0, #1
bne _021D9610
add r0, r5, #0
bl MOD14_021DC3E8
add r6, r0, #0
mov r0, #0x49
lsl r0, r0, #2
ldr r0, [r5, r0]
bl FUN_0206B9AC
sub r0, r0, #1
cmp r6, r0
beq _021D9610
mov r0, #1
str r0, [r4]
add r0, r5, #0
bl MOD14_021DB934
pop {r4, r5, r6, pc}
_021D9610:
mov r0, #2
str r0, [r4]
pop {r4, r5, r6, pc}
_021D9616:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r5, r0]
bl MOD14_021DCBC0
cmp r0, #0
beq _021D9662
add r0, r5, #0
bl MOD14_021DB934
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #0x26
bl MOD14_021DCB2C
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #6
bl MOD14_021DCB2C
mov r0, #2
str r0, [r4]
pop {r4, r5, r6, pc}
_021D9648:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r5, r0]
bl MOD14_021DCBC0
cmp r0, #0
beq _021D9662
add r0, r5, #0
bl MOD14_021D7674
add r0, r5, #0
bl MOD14_021D7620
_021D9662:
pop {r4, r5, r6, pc}
.align 2, 0
_021D9664: .word 0x000005EA
thumb_func_start MOD14_021D9668
MOD14_021D9668: ; 0x021D9668
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
bl MOD14_021D9B84
cmp r0, #0
beq _021D96AC
add r0, r5, #0
mov r1, #0xac
mov r2, #0
bl MOD14_021DC58C
cmp r0, #0
beq _021D968C
mov r0, #6
str r0, [r4]
mov r0, #1
pop {r3, r4, r5, pc}
_021D968C:
add r0, r5, #0
bl MOD14_021DC3F8
cmp r0, #0
beq _021D96AC
add r0, r5, #0
mov r1, #0xa2
mov r2, #0
bl MOD14_021DC58C
cmp r0, #0
bne _021D96AC
mov r0, #6
str r0, [r4]
mov r0, #1
pop {r3, r4, r5, pc}
_021D96AC:
mov r0, #0
pop {r3, r4, r5, pc}
thumb_func_start MOD14_021D96B0
MOD14_021D96B0: ; 0x021D96B0
push {r3, r4, r5, lr}
add r4, r1, #0
ldr r1, [r4]
add r5, r0, #0
cmp r1, #0
beq _021D96C6
cmp r1, #1
beq _021D971C
cmp r1, #2
beq _021D9748
pop {r3, r4, r5, pc}
_021D96C6:
add r1, sp, #0
bl MOD14_021D9668
cmp r0, #0
beq _021D96F0
ldr r0, _021D9764 ; =0x000005F3
bl FUN_020054C8
ldr r1, [sp]
add r0, r5, #0
bl MOD14_021DBA44
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #0x18
bl MOD14_021DCB2C
mov r0, #1
str r0, [r4]
pop {r3, r4, r5, pc}
_021D96F0:
add r0, r5, #0
add r1, r5, #0
bl MOD14_021DBD34
ldr r0, _021D9768 ; =0x000005DC
bl FUN_020054C8
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #0xb
bl MOD14_021DCB2C
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #6
bl MOD14_021DCB2C
mov r0, #2
str r0, [r4]
pop {r3, r4, r5, pc}
_021D971C:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #0x18
bl MOD14_021DCB98
cmp r0, #0
beq _021D9762
ldr r0, _021D976C ; =0x021C48B8
ldr r1, [r0, #0x48]
mov r0, #3
tst r0, r1
beq _021D9762
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #0x1a
bl MOD14_021DCB2C
mov r0, #2
str r0, [r4]
pop {r3, r4, r5, pc}
_021D9748:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r5, r0]
bl MOD14_021DCBC0
cmp r0, #0
beq _021D9762
add r0, r5, #0
bl MOD14_021D7674
add r0, r5, #0
bl MOD14_021D7620
_021D9762:
pop {r3, r4, r5, pc}
.align 2, 0
_021D9764: .word 0x000005F3
_021D9768: .word 0x000005DC
_021D976C: .word 0x021C48B8
thumb_func_start MOD14_021D9770
MOD14_021D9770: ; 0x021D9770
push {r3, r4, r5, lr}
add r5, r1, #0
add r4, r0, #0
ldr r0, [r5]
cmp r0, #8
bls _021D977E
b _021D9928
_021D977E:
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021D978A: ; jump table
.short _021D979C - _021D978A - 2 ; case 0
.short _021D9818 - _021D978A - 2 ; case 1
.short _021D983A - _021D978A - 2 ; case 2
.short _021D9862 - _021D978A - 2 ; case 3
.short _021D9892 - _021D978A - 2 ; case 4
.short _021D98B4 - _021D978A - 2 ; case 5
.short _021D9928 - _021D978A - 2 ; case 6
.short _021D98E8 - _021D978A - 2 ; case 7
.short _021D9914 - _021D978A - 2 ; case 8
_021D979C:
mov r0, #0x49
lsl r0, r0, #2
ldr r0, [r4, r0]
bl FUN_0206B9AC
cmp r0, #6
beq _021D97F2
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x1a
bl MOD14_021DCB2C
add r0, r4, #0
bl MOD14_021DC3F4
cmp r0, #2
bne _021D97D2
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x23
bl MOD14_021DCB2C
mov r0, #2
str r0, [r5]
pop {r3, r4, r5, pc}
_021D97D2:
ldr r0, _021D992C ; =0x000005EB
bl FUN_020054C8
add r0, r4, #0
add r1, r4, #0
bl MOD14_021DBA5C
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #9
bl MOD14_021DCB2C
mov r0, #1
str r0, [r5]
pop {r3, r4, r5, pc}
_021D97F2:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x1b
bl MOD14_021DCB2C
add r0, r4, #0
mov r1, #5
bl MOD14_021DBA44
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x18
bl MOD14_021DCB2C
mov r0, #7
str r0, [r5]
pop {r3, r4, r5, pc}
_021D9818:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #9
bl MOD14_021DCB98
cmp r0, #0
beq _021D9928
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x23
bl MOD14_021DCB2C
mov r0, #2
str r0, [r5]
pop {r3, r4, r5, pc}
_021D983A:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x23
bl MOD14_021DCB98
cmp r0, #0
beq _021D9928
add r0, r4, #0
bl MOD14_021DB8D0
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #5
bl MOD14_021DCB2C
mov r0, #3
str r0, [r5]
pop {r3, r4, r5, pc}
_021D9862:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #5
bl MOD14_021DCB98
cmp r0, #0
beq _021D9928
add r0, r4, #0
add r1, r4, #0
bl MOD14_021DBC00
add r0, r4, #0
bl MOD14_021D7674
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0xa
bl MOD14_021DCB2C
mov r0, #4
str r0, [r5]
pop {r3, r4, r5, pc}
_021D9892:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0xa
bl MOD14_021DCB98
cmp r0, #0
beq _021D9928
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x24
bl MOD14_021DCB2C
mov r0, #5
str r0, [r5]
pop {r3, r4, r5, pc}
_021D98B4:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x24
bl MOD14_021DCB98
cmp r0, #0
beq _021D9928
add r0, r4, #0
bl MOD14_021DB910
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #5
bl MOD14_021DCB2C
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #6
bl MOD14_021DCB2C
mov r0, #8
str r0, [r5]
pop {r3, r4, r5, pc}
_021D98E8:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x18
bl MOD14_021DCB98
cmp r0, #0
beq _021D9928
ldr r0, _021D9930 ; =0x021C48B8
ldr r1, [r0, #0x48]
mov r0, #3
tst r0, r1
beq _021D9928
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x1a
bl MOD14_021DCB2C
mov r0, #8
str r0, [r5]
pop {r3, r4, r5, pc}
_021D9914:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
bl MOD14_021DCBC0
cmp r0, #0
beq _021D9928
add r0, r4, #0
bl MOD14_021D7620
_021D9928:
pop {r3, r4, r5, pc}
nop
_021D992C: .word 0x000005EB
_021D9930: .word 0x021C48B8
thumb_func_start MOD14_021D9934
MOD14_021D9934: ; 0x021D9934
push {r3, r4, r5, lr}
add r5, r1, #0
ldr r1, [r5]
add r4, r0, #0
cmp r1, #6
bhi _021D99F8
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021D994C: ; jump table
.short _021D995A - _021D994C - 2 ; case 0
.short _021D99F0 - _021D994C - 2 ; case 1
.short _021D9AB2 - _021D994C - 2 ; case 2
.short _021D9AD8 - _021D994C - 2 ; case 3
.short _021D9B04 - _021D994C - 2 ; case 4
.short _021D9B32 - _021D994C - 2 ; case 5
.short _021D9B60 - _021D994C - 2 ; case 6
_021D995A:
bl MOD14_021DC3F4
cmp r0, #1
bne _021D9998
add r0, r4, #0
bl MOD14_021D9B84
cmp r0, #1
bne _021D9998
ldr r0, _021D9B78 ; =0x000005F3
bl FUN_020054C8
add r0, r4, #0
mov r1, #6
bl MOD14_021DBA44
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x1b
bl MOD14_021DCB2C
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x18
bl MOD14_021DCB2C
mov r0, #3
str r0, [r5]
pop {r3, r4, r5, pc}
_021D9998:
add r0, r4, #0
add r1, sp, #0
bl MOD14_021D7998
cmp r0, #0
beq _021D99D0
ldr r0, _021D9B78 ; =0x000005F3
bl FUN_020054C8
ldr r1, [sp]
add r0, r4, #0
bl MOD14_021DBA44
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x1b
bl MOD14_021DCB2C
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x18
bl MOD14_021DCB2C
mov r0, #3
str r0, [r5]
pop {r3, r4, r5, pc}
_021D99D0:
mov r1, #0x11
lsl r1, r1, #4
ldrh r1, [r4, r1]
add r0, r4, #0
mov r2, #0x13
bl MOD14_021DAA7C
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x1a
bl MOD14_021DCB2C
mov r0, #1
str r0, [r5]
pop {r3, r4, r5, pc}
_021D99F0:
bl MOD14_021DAAA8
cmp r0, #0
bne _021D99FA
_021D99F8:
b _021D9B74
_021D99FA:
ldr r0, _021D9B7C ; =0x000001C1
mov r1, #0
ldrsb r2, [r4, r0]
mvn r1, r1
cmp r2, r1
bne _021D9A22
sub r0, #0xad
ldr r0, [r4, r0]
mov r1, #0x1a
bl MOD14_021DCB2C
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x20
bl MOD14_021DCB2C
mov r0, #6
str r0, [r5]
pop {r3, r4, r5, pc}
_021D9A22:
sub r0, #0xb1
strh r2, [r4, r0]
add r0, r4, #0
bl MOD14_021DC3F4
cmp r0, #2
ldr r1, _021D9B7C ; =0x000001C1
bne _021D9A62
ldrsb r1, [r4, r1]
add r0, r4, #0
bl MOD14_021DBDD8
cmp r0, #0
beq _021D9A92
add r0, r4, #0
bl MOD14_021D7674
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x1a
bl MOD14_021DCB2C
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x20
bl MOD14_021DCB2C
mov r0, #4
str r0, [r5]
pop {r3, r4, r5, pc}
_021D9A62:
ldrsb r1, [r4, r1]
add r0, r4, #0
bl MOD14_021DBE00
cmp r0, #0
beq _021D9A92
add r0, r4, #0
bl MOD14_021D7674
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x1a
bl MOD14_021DCB2C
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x20
bl MOD14_021DCB2C
mov r0, #5
str r0, [r5]
pop {r3, r4, r5, pc}
_021D9A92:
ldr r0, _021D9B78 ; =0x000005F3
bl FUN_020054C8
add r0, r4, #0
mov r1, #0xd
bl MOD14_021DBA44
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x18
bl MOD14_021DCB2C
mov r0, #2
str r0, [r5]
pop {r3, r4, r5, pc}
_021D9AB2:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x18
bl MOD14_021DCB98
cmp r0, #0
beq _021D9B74
ldr r0, _021D9B80 ; =0x021C48B8
ldr r1, [r0, #0x48]
mov r0, #3
tst r0, r1
beq _021D9B74
add r0, r4, #0
bl MOD14_021DAA98
mov r0, #1
str r0, [r5]
pop {r3, r4, r5, pc}
_021D9AD8:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x18
bl MOD14_021DCB98
cmp r0, #0
beq _021D9B74
ldr r0, _021D9B80 ; =0x021C48B8
ldr r1, [r0, #0x48]
mov r0, #3
tst r0, r1
beq _021D9B74
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x1a
bl MOD14_021DCB2C
mov r0, #6
str r0, [r5]
pop {r3, r4, r5, pc}
_021D9B04:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x20
bl MOD14_021DCB98
cmp r0, #0
beq _021D9B74
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0xc
bl MOD14_021DCB2C
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #6
bl MOD14_021DCB2C
mov r0, #6
str r0, [r5]
pop {r3, r4, r5, pc}
_021D9B32:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x20
bl MOD14_021DCB98
cmp r0, #0
beq _021D9B74
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0xd
bl MOD14_021DCB2C
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #6
bl MOD14_021DCB2C
mov r0, #6
str r0, [r5]
pop {r3, r4, r5, pc}
_021D9B60:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
bl MOD14_021DCBC0
cmp r0, #0
beq _021D9B74
add r0, r4, #0
bl MOD14_021D7620
_021D9B74:
pop {r3, r4, r5, pc}
nop
_021D9B78: .word 0x000005F3
_021D9B7C: .word 0x000001C1
_021D9B80: .word 0x021C48B8
thumb_func_start MOD14_021D9B84
MOD14_021D9B84: ; 0x021D9B84
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
mov r1, #0x49
lsl r1, r1, #2
str r0, [sp]
ldr r0, [r0, r1]
bl FUN_0206B9AC
mov r6, #0
add r5, r6, #0
str r0, [sp, #4]
cmp r0, #0
ble _021D9BEC
_021D9B9E:
mov r0, #0x49
ldr r1, [sp]
lsl r0, r0, #2
ldr r0, [r1, r0]
add r1, r6, #0
bl FUN_0206B9B0
add r4, r0, #0
bl FUN_020669D4
add r7, r0, #0
add r0, r4, #0
mov r1, #0xac
mov r2, #0
bl FUN_020671BC
cmp r0, #0
bne _021D9BD2
add r0, r4, #0
mov r1, #0xa2
mov r2, #0
bl FUN_020671BC
cmp r0, #0
beq _021D9BD2
add r5, r5, #1
_021D9BD2:
add r0, r4, #0
add r1, r7, #0
bl FUN_02066A20
cmp r5, #2
blt _021D9BE4
add sp, #8
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
_021D9BE4:
ldr r0, [sp, #4]
add r6, r6, #1
cmp r6, r0
blt _021D9B9E
_021D9BEC:
ldr r0, [sp]
mov r1, #0xac
mov r2, #0
bl MOD14_021DC5D0
cmp r0, #0
beq _021D9C00
add sp, #8
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
_021D9C00:
ldr r0, [sp]
mov r1, #0xa2
mov r2, #0
bl MOD14_021DC5D0
cmp r0, #0
beq _021D9C14
add sp, #8
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021D9C14:
mov r0, #0
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start MOD14_021D9C1C
MOD14_021D9C1C: ; 0x021D9C1C
push {r3, r4, r5, lr}
add r4, r1, #0
mov r1, #0xac
mov r2, #0
add r5, r0, #0
bl MOD14_021DC58C
cmp r0, #0
beq _021D9C36
mov r0, #0x1f
str r0, [r4]
mov r0, #0
pop {r3, r4, r5, pc}
_021D9C36:
add r0, r5, #0
bl MOD14_021DC430
add r0, r5, #0
bl MOD14_021DC430
lsl r0, r0, #0x10
lsr r0, r0, #0x10
bl FUN_0206EA98
cmp r0, #0
beq _021D9C56
mov r0, #0x1e
str r0, [r4]
mov r0, #0
pop {r3, r4, r5, pc}
_021D9C56:
add r0, r5, #0
mov r1, #0xa1
mov r2, #0
bl MOD14_021DC58C
cmp r0, #0
beq _021D9C6C
mov r0, #0x1d
str r0, [r4]
mov r0, #0
pop {r3, r4, r5, pc}
_021D9C6C:
add r0, r5, #0
bl MOD14_021DC3F4
cmp r0, #1
bne _021D9C92
add r0, r5, #0
bl MOD14_021DC3CC
cmp r0, #1
bne _021D9C92
add r0, r5, #0
bl MOD14_021D9B84
cmp r0, #0
beq _021D9C92
mov r0, #6
str r0, [r4]
mov r0, #0
pop {r3, r4, r5, pc}
_021D9C92:
mov r0, #1
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_start MOD14_021D9C98
MOD14_021D9C98: ; 0x021D9C98
push {r3, r4, r5, lr}
add r5, r1, #0
ldr r1, [r5]
add r4, r0, #0
cmp r1, #9
bhi _021D9D44
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021D9CB0: ; jump table
.short _021D9CC4 - _021D9CB0 - 2 ; case 0
.short _021D9D1C - _021D9CB0 - 2 ; case 1
.short _021D9D86 - _021D9CB0 - 2 ; case 2
.short _021D9E0A - _021D9CB0 - 2 ; case 3
.short _021D9E96 - _021D9CB0 - 2 ; case 4
.short _021D9E62 - _021D9CB0 - 2 ; case 5
.short _021D9EC8 - _021D9CB0 - 2 ; case 6
.short _021D9EF2 - _021D9CB0 - 2 ; case 7
.short _021D9F36 - _021D9CB0 - 2 ; case 8
.short _021D9F62 - _021D9CB0 - 2 ; case 9
_021D9CC4:
add r1, sp, #0
bl MOD14_021D9C1C
cmp r0, #0
beq _021D9CF0
add r0, r4, #0
mov r1, #2
bl MOD14_021DBA44
add r0, r4, #0
mov r1, #1
bl MOD14_021E5D98
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x19
bl MOD14_021DCB2C
mov r0, #1
str r0, [r5]
pop {r3, r4, r5, pc}
_021D9CF0:
ldr r0, _021D9F78 ; =0x000005F3
bl FUN_020054C8
ldr r1, [sp]
add r0, r4, #0
bl MOD14_021DBA44
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x1b
bl MOD14_021DCB2C
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x18
bl MOD14_021DCB2C
mov r0, #8
str r0, [r5]
pop {r3, r4, r5, pc}
_021D9D1C:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
bl MOD14_021DCBC0
cmp r0, #0
beq _021D9D44
add r0, r4, #0
bl MOD14_021E6160
cmp r0, #0x36
bgt _021D9D4E
bge _021D9D74
mov r2, #0
mvn r2, r2
cmp r0, r2
bgt _021D9D44
sub r1, r2, #1
cmp r0, r1
bge _021D9D46
_021D9D44:
b _021D9F76
_021D9D46:
beq _021D9D54
cmp r0, r2
beq _021D9D62
pop {r3, r4, r5, pc}
_021D9D4E:
cmp r0, #0x37
beq _021D9D62
pop {r3, r4, r5, pc}
_021D9D54:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x1c
bl MOD14_021DCB2C
pop {r3, r4, r5, pc}
_021D9D62:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x1a
bl MOD14_021DCB2C
mov r0, #9
str r0, [r5]
pop {r3, r4, r5, pc}
_021D9D74:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x1a
bl MOD14_021DCB2C
mov r0, #2
str r0, [r5]
pop {r3, r4, r5, pc}
_021D9D86:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x1a
bl MOD14_021DCB98
cmp r0, #0
beq _021D9E70
add r0, r4, #0
bl MOD14_021DC458
add r2, r0, #0
mov r0, #0x67
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0
bl FUN_0200ACF8
add r0, r4, #0
bl MOD14_021D9F80
add r0, r4, #0
bl MOD14_021DC3F4
cmp r0, #2
bne _021D9DD0
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0xe
bl MOD14_021DCB2C
mov r0, #0x6e
mov r1, #0
lsl r0, r0, #2
str r1, [r4, r0]
b _021D9E04
_021D9DD0:
add r0, r4, #0
bl MOD14_021DC3CC
cmp r0, #0
bne _021D9DF0
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0xf
bl MOD14_021DCB2C
mov r0, #0x6e
mov r1, #1
lsl r0, r0, #2
str r1, [r4, r0]
b _021D9E04
_021D9DF0:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x10
bl MOD14_021DCB2C
mov r0, #0x6e
mov r1, #2
lsl r0, r0, #2
str r1, [r4, r0]
_021D9E04:
mov r0, #3
str r0, [r5]
pop {r3, r4, r5, pc}
_021D9E0A:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
bl MOD14_021DCBC0
cmp r0, #0
beq _021D9E70
add r0, r4, #0
bl MOD14_021DA1C0
cmp r0, #0
beq _021D9E48
add r0, r4, #0
bl MOD14_021DC3F4
cmp r0, #2
bne _021D9E34
add r0, r4, #0
bl MOD14_021DBE34
b _021D9E3A
_021D9E34:
add r0, r4, #0
bl MOD14_021DBE4C
_021D9E3A:
add r0, r4, #0
mov r1, #3
bl MOD14_021DBA44
mov r0, #5
str r0, [r5]
b _021D9E54
_021D9E48:
add r0, r4, #0
mov r1, #0x20
bl MOD14_021DBA44
mov r0, #4
str r0, [r5]
_021D9E54:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x18
bl MOD14_021DCB2C
pop {r3, r4, r5, pc}
_021D9E62:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
bl MOD14_021DCBC0
cmp r0, #0
bne _021D9E72
_021D9E70:
b _021D9F76
_021D9E72:
ldr r0, _021D9F7C ; =0x021C48B8
ldr r1, [r0, #0x48]
mov r0, #3
tst r0, r1
beq _021D9F76
add r0, r4, #0
mov r1, #4
bl MOD14_021DBA44
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x18
bl MOD14_021DCB2C
mov r0, #6
str r0, [r5]
pop {r3, r4, r5, pc}
_021D9E96:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
bl MOD14_021DCBC0
cmp r0, #0
beq _021D9F76
ldr r0, _021D9F7C ; =0x021C48B8
ldr r1, [r0, #0x48]
mov r0, #3
tst r0, r1
beq _021D9F76
add r0, r4, #0
mov r1, #0x21
bl MOD14_021DBA44
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x18
bl MOD14_021DCB2C
mov r0, #6
str r0, [r5]
pop {r3, r4, r5, pc}
_021D9EC8:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
bl MOD14_021DCBC0
cmp r0, #0
beq _021D9F76
ldr r0, _021D9F7C ; =0x021C48B8
ldr r1, [r0, #0x48]
mov r0, #3
tst r0, r1
beq _021D9F76
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x1a
bl MOD14_021DCB2C
mov r0, #7
str r0, [r5]
pop {r3, r4, r5, pc}
_021D9EF2:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
bl MOD14_021DCBC0
cmp r0, #0
beq _021D9F76
add r0, r4, #0
bl MOD14_021DA1C0
cmp r0, #0
beq _021D9F24
mov r0, #0x6e
lsl r0, r0, #2
ldr r1, [r4, r0]
cmp r1, #2
bne _021D9F1E
sub r0, #0xa4
ldr r0, [r4, r0]
mov r1, #0x25
bl MOD14_021DCB2C
_021D9F1E:
add r0, r4, #0
bl MOD14_021D7674
_021D9F24:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #6
bl MOD14_021DCB2C
mov r0, #9
str r0, [r5]
pop {r3, r4, r5, pc}
_021D9F36:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x18
bl MOD14_021DCB98
cmp r0, #0
beq _021D9F76
ldr r0, _021D9F7C ; =0x021C48B8
ldr r1, [r0, #0x48]
mov r0, #3
tst r0, r1
beq _021D9F76
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x1a
bl MOD14_021DCB2C
mov r0, #9
str r0, [r5]
pop {r3, r4, r5, pc}
_021D9F62:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
bl MOD14_021DCBC0
cmp r0, #0
beq _021D9F76
add r0, r4, #0
bl MOD14_021D7620
_021D9F76:
pop {r3, r4, r5, pc}
.align 2, 0
_021D9F78: .word 0x000005F3
_021D9F7C: .word 0x021C48B8
thumb_func_start MOD14_021D9F80
MOD14_021D9F80: ; 0x021D9F80
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
mov r1, #0x57
lsl r1, r1, #2
str r0, [sp]
add r7, r0, r1
ldr r0, [r0, #0x4c]
mov r4, #0
ldr r5, _021DA010 ; =0x021E6224
str r0, [r7, #0x10]
str r4, [sp, #4]
_021D9F96:
ldrh r1, [r5]
ldr r0, [r7, #0x10]
add r6, r7, r4
bl MOD14_021DA168
strb r0, [r6, #4]
ldrb r0, [r6, #4]
cmp r0, #0
beq _021D9FAE
ldr r0, [sp, #4]
add r0, r0, #1
str r0, [sp, #4]
_021D9FAE:
add r4, r4, #1
add r5, r5, #2
cmp r4, #3
blo _021D9F96
ldr r0, [sp, #4]
cmp r0, #0
bne _021D9FC6
mov r0, #1
strb r0, [r7]
add sp, #8
strb r0, [r7, #1]
pop {r3, r4, r5, r6, r7, pc}
_021D9FC6:
mov r0, #0
strb r0, [r7]
strb r0, [r7, #1]
strb r0, [r7, #2]
strb r0, [r7, #3]
mov r1, #0x12
ldr r0, [sp]
lsl r1, r1, #4
ldr r0, [r0, r1]
add r1, r1, #4
str r0, [r7, #0x14]
ldr r0, [sp]
ldr r0, [r0, r1]
str r0, [r7, #0x18]
ldr r0, [sp]
bl MOD14_021DC3F4
cmp r0, #1
beq _021D9FF0
mov r0, #1
b _021D9FF2
_021D9FF0:
mov r0, #0
_021D9FF2:
mov r1, #0
str r0, [r7, #0x1c]
add r0, r7, #0
add r2, r1, #0
_021D9FFA:
add r1, r1, #1
strh r2, [r0, #8]
add r0, r0, #2
cmp r1, #3
blo _021D9FFA
ldr r0, _021DA014 ; =MOD14_021DA018
add r1, r7, #0
bl FUN_0200CA44
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_021DA010: .word 0x021E6224
_021DA014: .word MOD14_021DA018
thumb_func_start MOD14_021DA018
MOD14_021DA018: ; 0x021DA018
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x18
str r0, [sp]
ldrb r0, [r1, #2]
str r1, [sp, #4]
cmp r0, #0x12
bhs _021DA0AE
add r0, r1, #0
ldrb r0, [r0, #3]
str r0, [sp, #0xc]
str r0, [sp, #0x14]
add r0, #0xf
str r0, [sp, #0x14]
cmp r0, #0x1e
ble _021DA03A
mov r0, #0x1e
str r0, [sp, #0x14]
_021DA03A:
ldr r1, [sp, #0xc]
ldr r0, [sp, #0x14]
cmp r1, r0
bge _021DA08C
_021DA042:
ldr r1, [sp, #4]
ldr r0, [sp, #4]
ldrb r1, [r1, #2]
ldr r0, [r0, #0x14]
ldr r2, [sp, #0xc]
bl FUN_0206B5E4
mov r1, #0xab
mov r2, #0
add r7, r0, #0
bl FUN_020672BC
cmp r0, #0
beq _021DA080
ldr r4, _021DA164 ; =0x021E6224
ldr r5, [sp, #4]
mov r6, #0
_021DA064:
ldrh r1, [r4]
add r0, r7, #0
bl MOD14_021DA168
cmp r0, #0
beq _021DA076
ldrh r0, [r5, #8]
add r0, r0, #1
strh r0, [r5, #8]
_021DA076:
add r6, r6, #1
add r4, r4, #2
add r5, r5, #2
cmp r6, #3
blo _021DA064
_021DA080:
ldr r0, [sp, #0xc]
add r1, r0, #1
ldr r0, [sp, #0x14]
str r1, [sp, #0xc]
cmp r1, r0
blt _021DA042
_021DA08C:
ldr r0, [sp, #0x14]
cmp r0, #0x1e
bne _021DA0A4
ldr r0, [sp, #4]
mov r1, #0
strb r1, [r0, #3]
ldrb r0, [r0, #2]
add r1, r0, #1
ldr r0, [sp, #4]
add sp, #0x18
strb r1, [r0, #2]
pop {r3, r4, r5, r6, r7, pc}
_021DA0A4:
add r1, r0, #0
ldr r0, [sp, #4]
add sp, #0x18
strb r1, [r0, #3]
pop {r3, r4, r5, r6, r7, pc}
_021DA0AE:
add r0, r1, #0
ldr r0, [r0, #0x18]
bl FUN_0206B9AC
str r0, [sp, #0x10]
mov r0, #0
str r0, [sp, #8]
ldr r0, [sp, #0x10]
cmp r0, #0
ble _021DA0FC
_021DA0C2:
ldr r0, [sp, #4]
ldr r1, [sp, #8]
ldr r0, [r0, #0x18]
bl FUN_0206B9B0
ldr r4, _021DA164 ; =0x021E6224
ldr r5, [sp, #4]
add r7, r0, #0
mov r6, #0
_021DA0D4:
ldrh r1, [r4]
add r0, r7, #0
bl MOD14_021DA168
cmp r0, #0
beq _021DA0E6
ldrh r0, [r5, #8]
add r0, r0, #1
strh r0, [r5, #8]
_021DA0E6:
add r6, r6, #1
add r4, r4, #2
add r5, r5, #2
cmp r6, #3
blo _021DA0D4
ldr r0, [sp, #8]
add r1, r0, #1
ldr r0, [sp, #0x10]
str r1, [sp, #8]
cmp r1, r0
blt _021DA0C2
_021DA0FC:
ldr r0, [sp, #4]
ldr r0, [r0, #0x1c]
cmp r0, #0
beq _021DA128
ldr r4, _021DA164 ; =0x021E6224
ldr r5, [sp, #4]
mov r6, #0
_021DA10A:
ldr r0, [sp, #4]
ldrh r1, [r4]
ldr r0, [r0, #0x10]
bl MOD14_021DA168
cmp r0, #0
beq _021DA11E
ldrh r0, [r5, #8]
add r0, r0, #1
strh r0, [r5, #8]
_021DA11E:
add r6, r6, #1
add r4, r4, #2
add r5, r5, #2
cmp r6, #3
blo _021DA10A
_021DA128:
ldr r0, [sp, #4]
mov r1, #1
strb r1, [r0, #1]
mov r2, #0
add r1, r0, #0
_021DA132:
ldrh r0, [r1, #8]
cmp r0, #1
bne _021DA14A
ldr r0, [sp, #4]
add r0, r0, r2
ldrb r0, [r0, #4]
cmp r0, #1
bne _021DA14A
ldr r0, [sp, #4]
mov r1, #0
strb r1, [r0, #1]
b _021DA152
_021DA14A:
add r2, r2, #1
add r1, r1, #2
cmp r2, #3
blo _021DA132
_021DA152:
ldr r0, [sp, #4]
mov r1, #1
strb r1, [r0]
ldr r0, [sp]
bl FUN_0200CAB4
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
nop
_021DA164: .word 0x021E6224
thumb_func_start MOD14_021DA168
MOD14_021DA168: ; 0x021DA168
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
add r6, r1, #0
mov r1, #0
add r5, r0, #0
str r1, [sp, #4]
bl FUN_02066A6C
str r0, [sp]
add r0, r5, #0
mov r1, #0xac
mov r2, #0
bl FUN_020672BC
cmp r0, #0
bne _021DA1A8
mov r4, #0
add r7, r4, #0
_021DA18C:
add r1, r4, #0
add r0, r5, #0
add r1, #0x36
add r2, r7, #0
bl FUN_020672BC
cmp r6, r0
bne _021DA1A2
mov r0, #1
str r0, [sp, #4]
b _021DA1A8
_021DA1A2:
add r4, r4, #1
cmp r4, #4
blt _021DA18C
_021DA1A8:
ldr r1, [sp]
add r0, r5, #0
bl FUN_02066A94
ldr r0, [sp, #4]
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start MOD14_021DA1B8
MOD14_021DA1B8: ; 0x021DA1B8
mov r1, #0x57
lsl r1, r1, #2
ldrb r0, [r0, r1]
bx lr
thumb_func_start MOD14_021DA1C0
MOD14_021DA1C0: ; 0x021DA1C0
mov r1, #0x57
lsl r1, r1, #2
add r1, r0, r1
ldrb r0, [r1]
cmp r0, #0
beq _021DA1D0
ldrb r0, [r1, #1]
bx lr
_021DA1D0:
mov r0, #0
bx lr
thumb_func_start MOD14_021DA1D4
MOD14_021DA1D4: ; 0x021DA1D4
push {r3, r4, r5, lr}
add r5, r1, #0
add r4, r0, #0
ldr r0, [r5]
cmp r0, #0
beq _021DA1EA
cmp r0, #1
beq _021DA1FE
cmp r0, #2
beq _021DA256
pop {r3, r4, r5, pc}
_021DA1EA:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #3
bl MOD14_021DCB2C
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
pop {r3, r4, r5, pc}
_021DA1FE:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #3
bl MOD14_021DCB98
cmp r0, #0
beq _021DA2BC
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
bl MOD14_021DCA38
mov r0, #0xa
bl FUN_020168D0
mov r0, #0x12
lsl r0, r0, #4
ldr r0, [r4, r0]
bl FUN_0206B330
mov r2, #0x12
lsl r2, r2, #4
add r1, r0, #0
ldr r0, [r4, r2]
add r2, #8
ldr r2, [r4, r2]
ldr r2, [r2, #0x18]
bl FUN_0206B484
mov r1, #0x4a
lsl r1, r1, #2
ldr r0, _021DA2C0 ; =0x020FA5FC
ldr r1, [r4, r1]
mov r2, #9
bl FUN_02006234
mov r1, #0x21
lsl r1, r1, #4
str r0, [r4, r1]
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
pop {r3, r4, r5, pc}
_021DA256:
mov r0, #0x21
lsl r0, r0, #4
ldr r0, [r4, r0]
bl FUN_02006290
cmp r0, #0
beq _021DA2BC
mov r0, #0x12
lsl r0, r0, #4
ldr r0, [r4, r0]
bl FUN_0206B330
add r5, r0, #0
mov r0, #0x21
lsl r0, r0, #4
ldr r0, [r4, r0]
bl FUN_02006260
mov r2, #0xf
mov r0, #3
mov r1, #0xa
lsl r2, r2, #0xe
bl FUN_0201681C
mov r2, #0x12
lsl r2, r2, #4
ldr r0, [r4, r2]
add r2, #8
ldr r2, [r4, r2]
add r1, r5, #0
ldr r2, [r2, #0x18]
bl FUN_0206B4B4
mov r0, #0x12
lsl r0, r0, #4
add r1, r4, #0
ldr r0, [r4, r0]
add r1, #0x40
bl MOD14_021DB580
mov r0, #0x45
lsl r0, r0, #2
add r0, r4, r0
add r1, r4, #0
add r2, r4, #0
bl MOD14_021DC76C
ldr r1, _021DA2C4 ; =MOD14_021D76E8
add r0, r4, #0
bl MOD14_021D7610
_021DA2BC:
pop {r3, r4, r5, pc}
nop
_021DA2C0: .word 0x020FA5FC
_021DA2C4: .word MOD14_021D76E8
thumb_func_start MOD14_021DA2C8
MOD14_021DA2C8: ; 0x021DA2C8
push {r3, r4, r5, lr}
add r4, r1, #0
add r5, r0, #0
ldr r0, [r4]
cmp r0, #0
beq _021DA2DE
cmp r0, #1
beq _021DA2F2
cmp r0, #2
beq _021DA334
pop {r3, r4, r5, pc}
_021DA2DE:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #3
bl MOD14_021DCB2C
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
pop {r3, r4, r5, pc}
_021DA2F2:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #3
bl MOD14_021DCB98
cmp r0, #0
beq _021DA390
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r5, r0]
bl MOD14_021DCA38
mov r0, #0xa
bl FUN_020168D0
add r0, r5, #0
bl MOD14_021D83E4
mov r1, #0x4b
lsl r1, r1, #2
ldr r0, _021DA394 ; =0x020FA6E8
add r1, r5, r1
mov r2, #9
bl FUN_02006234
mov r1, #0x21
lsl r1, r1, #4
str r0, [r5, r1]
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
pop {r3, r4, r5, pc}
_021DA334:
mov r0, #0x21
lsl r0, r0, #4
ldr r0, [r5, r0]
bl FUN_02006290
cmp r0, #0
beq _021DA390
mov r0, #0x12
lsl r0, r0, #4
ldr r0, [r5, r0]
bl FUN_0206B330
mov r0, #0x21
lsl r0, r0, #4
ldr r0, [r5, r0]
bl FUN_02006260
mov r2, #0xf
mov r0, #3
mov r1, #0xa
lsl r2, r2, #0xe
bl FUN_0201681C
add r0, r5, #0
bl MOD14_021DC3F4
cmp r0, #1
bne _021DA374
add r0, r5, #0
add r1, r5, #0
bl MOD14_021DA39C
_021DA374:
mov r0, #0x45
lsl r0, r0, #2
add r0, r5, r0
add r1, r5, #0
add r2, r5, #0
bl MOD14_021DC76C
ldr r1, _021DA398 ; =MOD14_021D76E8
add r0, r5, #0
bl MOD14_021D7610
add r0, r5, #0
bl MOD14_021D7674
_021DA390:
pop {r3, r4, r5, pc}
nop
_021DA394: .word 0x020FA6E8
_021DA398: .word MOD14_021D76E8
thumb_func_start MOD14_021DA39C
MOD14_021DA39C: ; 0x021DA39C
push {r3, r4, r5, lr}
add r4, r0, #0
add r4, #8
ldrb r0, [r4, #4]
add r5, r1, #0
cmp r0, #0
beq _021DA3B0
cmp r0, #1
beq _021DA3D2
pop {r3, r4, r5, pc}
_021DA3B0:
mov r0, #5
lsl r0, r0, #6
ldrb r0, [r5, r0]
mov r1, #6
strb r0, [r4, #7]
mov r0, #7
ldrsb r0, [r4, r0]
bl _s32_div_f
strb r1, [r4, #5]
mov r0, #7
ldrsb r0, [r4, r0]
mov r1, #6
bl _s32_div_f
strb r0, [r4, #6]
b _021DA3DA
_021DA3D2:
mov r0, #5
lsl r0, r0, #6
ldrb r0, [r5, r0]
strb r0, [r4, #8]
_021DA3DA:
add r0, r5, #0
bl MOD14_021DB934
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_start MOD14_021DA3E4
MOD14_021DA3E4: ; 0x021DA3E4
push {r4, r5, r6, lr}
add r5, r1, #0
add r4, r0, #0
ldr r0, [r5]
cmp r0, #6
bhi _021DA496
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021DA3FC: ; jump table
.short _021DA40A - _021DA3FC - 2 ; case 0
.short _021DA41E - _021DA3FC - 2 ; case 1
.short _021DA488 - _021DA3FC - 2 ; case 2
.short _021DA522 - _021DA3FC - 2 ; case 3
.short _021DA546 - _021DA3FC - 2 ; case 4
.short _021DA58E - _021DA3FC - 2 ; case 5
.short _021DA5C2 - _021DA3FC - 2 ; case 6
_021DA40A:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #3
bl MOD14_021DCB2C
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
pop {r4, r5, r6, pc}
_021DA41E:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #3
bl MOD14_021DCB98
cmp r0, #0
beq _021DA496
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
bl MOD14_021DCA38
mov r0, #0xa
bl FUN_020168D0
mov r0, #0x47
lsl r0, r0, #2
ldr r0, [r4, r0]
bl FUN_0206F158
ldr r1, _021DA5D8 ; =0x021E6264
mov r2, #9
bl FUN_0206EFEC
mov r1, #0x85
lsl r1, r1, #2
str r0, [r4, r1]
ldr r0, [r4, r1]
sub r1, #0xf8
ldr r1, [r4, r1]
mov r2, #1
mov r3, #0
bl FUN_0206E314
ldr r0, _021DA5DC ; =SDK_OVERLAY_MODULE_75_ID
mov r1, #2
bl HandleLoadOverlay
mov r1, #0x85
lsl r1, r1, #2
ldr r0, _021DA5E0 ; =0x021EC68C
ldr r1, [r4, r1]
mov r2, #9
bl FUN_02006234
mov r1, #0x21
lsl r1, r1, #4
str r0, [r4, r1]
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
pop {r4, r5, r6, pc}
_021DA488:
mov r0, #0x21
lsl r0, r0, #4
ldr r0, [r4, r0]
bl FUN_02006290
cmp r0, #0
bne _021DA498
_021DA496:
b _021DA5D6
_021DA498:
mov r0, #0x85
lsl r0, r0, #2
ldr r0, [r4, r0]
bl FUN_0206E37C
ldr r1, _021DA5E4 ; =0x021E6A00
str r0, [r1, #8]
mov r0, #0x21
lsl r0, r0, #4
ldr r0, [r4, r0]
bl FUN_02006260
mov r0, #0x85
lsl r0, r0, #2
ldr r0, [r4, r0]
bl FreeToHeap
ldr r0, _021DA5DC ; =SDK_OVERLAY_MODULE_75_ID
bl UnloadOverlayByID
ldr r0, _021DA5E4 ; =0x021E6A00
ldr r6, [r0, #8]
cmp r6, #0
beq _021DA4F4
mov r0, #0x47
lsl r0, r0, #2
ldr r0, [r4, r0]
bl FUN_0206F158
lsl r1, r6, #0x10
lsr r1, r1, #0x10
mov r2, #1
mov r3, #9
bl FUN_0206EDD4
ldr r1, _021DA5E4 ; =0x021E6A00
add r0, r4, #0
ldr r1, [r1, #8]
add r2, r4, #0
lsl r1, r1, #0x10
lsr r1, r1, #0x10
bl MOD14_021DC1E8
add r0, r4, #0
bl MOD14_021D7674
_021DA4F4:
mov r2, #0xf
mov r0, #3
mov r1, #0xa
lsl r2, r2, #0xe
bl FUN_0201681C
mov r0, #0x45
lsl r0, r0, #2
add r0, r4, r0
add r1, r4, #0
add r2, r4, #0
bl MOD14_021DC76C
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0
bl MOD14_021DCB2C
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
pop {r4, r5, r6, pc}
_021DA522:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0
bl MOD14_021DCB98
cmp r0, #0
beq _021DA5D6
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #2
bl MOD14_021DCB2C
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
pop {r4, r5, r6, pc}
_021DA546:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #2
bl MOD14_021DCB98
cmp r0, #0
beq _021DA5D6
ldr r0, _021DA5E4 ; =0x021E6A00
ldr r2, [r0, #8]
cmp r2, #0
bne _021DA566
add r0, r4, #0
bl MOD14_021D7620
pop {r4, r5, r6, pc}
_021DA566:
mov r0, #0x67
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0
bl FUN_0200AE38
add r0, r4, #0
mov r1, #0x10
bl MOD14_021DBA44
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x18
bl MOD14_021DCB2C
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
pop {r4, r5, r6, pc}
_021DA58E:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x18
bl MOD14_021DCB98
cmp r0, #0
beq _021DA5D6
ldr r0, _021DA5E8 ; =0x021C48B8
ldr r1, [r0, #0x48]
mov r0, #3
tst r0, r1
beq _021DA5D6
ldr r0, _021DA5EC ; =0x000005DD
bl FUN_020054C8
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x1a
bl MOD14_021DCB2C
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
pop {r4, r5, r6, pc}
_021DA5C2:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
bl MOD14_021DCBC0
cmp r0, #0
beq _021DA5D6
add r0, r4, #0
bl MOD14_021D7620
_021DA5D6:
pop {r4, r5, r6, pc}
.align 2, 0
_021DA5D8: .word 0x021E6264
_021DA5DC: .word SDK_OVERLAY_MODULE_75_ID
_021DA5E0: .word 0x021EC68C
_021DA5E4: .word 0x021E6A00
_021DA5E8: .word 0x021C48B8
_021DA5EC: .word 0x000005DD
thumb_func_start MOD14_021DA5F0
MOD14_021DA5F0: ; 0x021DA5F0
push {r3, r4, r5, lr}
add r5, r1, #0
ldr r1, [r5]
add r4, r0, #0
cmp r1, #5
bhi _021DA6A2
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021DA608: ; jump table
.short _021DA614 - _021DA608 - 2 ; case 0
.short _021DA67A - _021DA608 - 2 ; case 1
.short _021DA6E4 - _021DA608 - 2 ; case 2
.short _021DA744 - _021DA608 - 2 ; case 3
.short _021DA76C - _021DA608 - 2 ; case 4
.short _021DA79E - _021DA608 - 2 ; case 5
_021DA614:
bl MOD14_021DC430
ldr r1, _021DA7B4 ; =0x021E6A00
str r0, [r1, #4]
lsl r0, r0, #0x10
lsr r0, r0, #0x10
bl FUN_0206EA98
cmp r0, #0
beq _021DA648
ldr r0, _021DA7B8 ; =0x000005F3
bl FUN_020054C8
add r0, r4, #0
mov r1, #0x18
bl MOD14_021DBA44
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x18
bl MOD14_021DCB2C
mov r0, #4
str r0, [r5]
pop {r3, r4, r5, pc}
_021DA648:
mov r0, #0x67
ldr r2, _021DA7B4 ; =0x021E6A00
lsl r0, r0, #2
ldr r0, [r4, r0]
ldr r2, [r2, #4]
mov r1, #0
bl FUN_0200AE38
add r0, r4, #0
mov r1, #0
bl MOD14_021E5D98
add r0, r4, #0
mov r1, #0x17
bl MOD14_021DBA44
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x19
bl MOD14_021DCB2C
mov r0, #1
str r0, [r5]
pop {r3, r4, r5, pc}
_021DA67A:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
bl MOD14_021DCBC0
cmp r0, #0
beq _021DA6A2
add r0, r4, #0
bl MOD14_021E6160
cmp r0, #0x36
bgt _021DA6AC
bge _021DA6D2
mov r2, #0
mvn r2, r2
cmp r0, r2
bgt _021DA6A2
sub r1, r2, #1
cmp r0, r1
bge _021DA6A4
_021DA6A2:
b _021DA7B2
_021DA6A4:
beq _021DA6B2
cmp r0, r2
beq _021DA6C0
pop {r3, r4, r5, pc}
_021DA6AC:
cmp r0, #0x37
beq _021DA6C0
pop {r3, r4, r5, pc}
_021DA6B2:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x1c
bl MOD14_021DCB2C
pop {r3, r4, r5, pc}
_021DA6C0:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x1a
bl MOD14_021DCB2C
mov r0, #5
str r0, [r5]
pop {r3, r4, r5, pc}
_021DA6D2:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x1b
bl MOD14_021DCB2C
mov r0, #2
str r0, [r5]
pop {r3, r4, r5, pc}
_021DA6E4:
mov r0, #0x47
lsl r0, r0, #2
ldr r0, [r4, r0]
bl FUN_0206F158
ldr r1, _021DA7B4 ; =0x021E6A00
mov r2, #1
ldr r1, [r1, #4]
mov r3, #9
lsl r1, r1, #0x10
lsr r1, r1, #0x10
bl FUN_0206ED38
cmp r0, #0
beq _021DA72A
add r0, r4, #0
mov r1, #0
add r2, r4, #0
bl MOD14_021DC1E8
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x16
bl MOD14_021DCB2C
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #6
bl MOD14_021DCB2C
mov r0, #3
str r0, [r5]
pop {r3, r4, r5, pc}
_021DA72A:
add r0, r4, #0
mov r1, #0xe
bl MOD14_021DBA44
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x18
bl MOD14_021DCB2C
mov r0, #4
str r0, [r5]
pop {r3, r4, r5, pc}
_021DA744:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
bl MOD14_021DCBC0
cmp r0, #0
beq _021DA7B2
add r0, r4, #0
mov r1, #0xf
bl MOD14_021DBA44
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x18
bl MOD14_021DCB2C
mov r0, #4
str r0, [r5]
pop {r3, r4, r5, pc}
_021DA76C:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x18
bl MOD14_021DCB98
cmp r0, #0
beq _021DA7B2
ldr r0, _021DA7BC ; =0x021C48B8
ldr r1, [r0, #0x48]
mov r0, #3
tst r0, r1
beq _021DA7B2
ldr r0, _021DA7C0 ; =0x000005DD
bl FUN_020054C8
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x1a
bl MOD14_021DCB2C
mov r0, #5
str r0, [r5]
pop {r3, r4, r5, pc}
_021DA79E:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
bl MOD14_021DCBC0
cmp r0, #0
beq _021DA7B2
add r0, r4, #0
bl MOD14_021D7620
_021DA7B2:
pop {r3, r4, r5, pc}
.align 2, 0
_021DA7B4: .word 0x021E6A00
_021DA7B8: .word 0x000005F3
_021DA7BC: .word 0x021C48B8
_021DA7C0: .word 0x000005DD
thumb_func_start MOD14_021DA7C4
MOD14_021DA7C4: ; 0x021DA7C4
push {r3, r4, r5, lr}
add r5, r1, #0
ldr r1, [r5]
add r4, r0, #0
cmp r1, #6
bhi _021DA878
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021DA7DC: ; jump table
.short _021DA7EA - _021DA7DC - 2 ; case 0
.short _021DA850 - _021DA7DC - 2 ; case 1
.short _021DA8BA - _021DA7DC - 2 ; case 2
.short _021DA922 - _021DA7DC - 2 ; case 3
.short _021DA950 - _021DA7DC - 2 ; case 4
.short _021DA978 - _021DA7DC - 2 ; case 5
.short _021DA9AA - _021DA7DC - 2 ; case 6
_021DA7EA:
bl MOD14_021DC544
ldr r1, _021DA9C0 ; =0x021E6A00
str r0, [r1]
lsl r0, r0, #0x10
lsr r0, r0, #0x10
bl FUN_0206EA98
cmp r0, #0
beq _021DA81E
ldr r0, _021DA9C4 ; =0x000005F3
bl FUN_020054C8
add r0, r4, #0
mov r1, #0x18
bl MOD14_021DBA44
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x18
bl MOD14_021DCB2C
mov r0, #5
str r0, [r5]
pop {r3, r4, r5, pc}
_021DA81E:
mov r0, #0x67
ldr r2, _021DA9C0 ; =0x021E6A00
lsl r0, r0, #2
ldr r0, [r4, r0]
ldr r2, [r2]
mov r1, #0
bl FUN_0200AE38
add r0, r4, #0
mov r1, #0x1a
bl MOD14_021DBA44
add r0, r4, #0
mov r1, #0
bl MOD14_021E5D98
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x19
bl MOD14_021DCB2C
mov r0, #1
str r0, [r5]
pop {r3, r4, r5, pc}
_021DA850:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
bl MOD14_021DCBC0
cmp r0, #0
beq _021DA878
add r0, r4, #0
bl MOD14_021E6160
cmp r0, #0x36
bgt _021DA882
bge _021DA8A8
mov r2, #0
mvn r2, r2
cmp r0, r2
bgt _021DA878
sub r1, r2, #1
cmp r0, r1
bge _021DA87A
_021DA878:
b _021DA9BE
_021DA87A:
beq _021DA888
cmp r0, r2
beq _021DA896
pop {r3, r4, r5, pc}
_021DA882:
cmp r0, #0x37
beq _021DA896
pop {r3, r4, r5, pc}
_021DA888:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x1c
bl MOD14_021DCB2C
pop {r3, r4, r5, pc}
_021DA896:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x1a
bl MOD14_021DCB2C
mov r0, #6
str r0, [r5]
pop {r3, r4, r5, pc}
_021DA8A8:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x1a
bl MOD14_021DCB2C
mov r0, #2
str r0, [r5]
pop {r3, r4, r5, pc}
_021DA8BA:
mov r0, #0x47
lsl r0, r0, #2
ldr r0, [r4, r0]
bl FUN_0206F158
ldr r1, _021DA9C0 ; =0x021E6A00
mov r2, #1
ldr r1, [r1]
mov r3, #9
lsl r1, r1, #0x10
lsr r1, r1, #0x10
bl FUN_0206ED38
cmp r0, #0
beq _021DA908
add r0, r4, #0
bl MOD14_021DC538
cmp r0, #0
beq _021DA8EC
add r0, r4, #0
bl MOD14_021DC310
mov r0, #4
b _021DA8F8
_021DA8EC:
add r0, r4, #0
mov r1, #0
add r2, r4, #0
bl MOD14_021DC1E8
mov r0, #3
_021DA8F8:
str r0, [r5]
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x17
bl MOD14_021DCB2C
pop {r3, r4, r5, pc}
_021DA908:
add r0, r4, #0
mov r1, #0xe
bl MOD14_021DBA44
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x18
bl MOD14_021DCB2C
mov r0, #5
str r0, [r5]
pop {r3, r4, r5, pc}
_021DA922:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x17
bl MOD14_021DCB98
cmp r0, #0
beq _021DA9BE
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x16
bl MOD14_021DCB2C
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #6
bl MOD14_021DCB2C
mov r0, #4
str r0, [r5]
pop {r3, r4, r5, pc}
_021DA950:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
bl MOD14_021DCBC0
cmp r0, #0
beq _021DA9BE
add r0, r4, #0
mov r1, #0x1b
bl MOD14_021DBA44
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x18
bl MOD14_021DCB2C
mov r0, #5
str r0, [r5]
pop {r3, r4, r5, pc}
_021DA978:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x18
bl MOD14_021DCB98
cmp r0, #0
beq _021DA9BE
ldr r0, _021DA9C8 ; =0x021C48B8
ldr r1, [r0, #0x48]
mov r0, #3
tst r0, r1
beq _021DA9BE
ldr r0, _021DA9CC ; =0x000005DD
bl FUN_020054C8
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x1a
bl MOD14_021DCB2C
mov r0, #6
str r0, [r5]
pop {r3, r4, r5, pc}
_021DA9AA:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
bl MOD14_021DCBC0
cmp r0, #0
beq _021DA9BE
add r0, r4, #0
bl MOD14_021D7620
_021DA9BE:
pop {r3, r4, r5, pc}
.align 2, 0
_021DA9C0: .word 0x021E6A00
_021DA9C4: .word 0x000005F3
_021DA9C8: .word 0x021C48B8
_021DA9CC: .word 0x000005DD
thumb_func_start MOD14_021DA9D0
MOD14_021DA9D0: ; 0x021DA9D0
push {r3, r4, r5, lr}
add r4, r1, #0
add r5, r0, #0
ldr r0, [r4]
cmp r0, #4
bhi _021DAA74
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021DA9E8: ; jump table
.short _021DA9F2 - _021DA9E8 - 2 ; case 0
.short _021DAA06 - _021DA9E8 - 2 ; case 1
.short _021DAA2A - _021DA9E8 - 2 ; case 2
.short _021DAA42 - _021DA9E8 - 2 ; case 3
.short _021DAA5E - _021DA9E8 - 2 ; case 4
_021DA9F2:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #0x1a
bl MOD14_021DCB2C
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
pop {r3, r4, r5, pc}
_021DAA06:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #0x1a
bl MOD14_021DCB98
cmp r0, #0
beq _021DAA74
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #0x11
bl MOD14_021DCB2C
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
pop {r3, r4, r5, pc}
_021DAA2A:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #0x11
bl MOD14_021DCB98
cmp r0, #0
beq _021DAA74
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
pop {r3, r4, r5, pc}
_021DAA42:
ldr r0, _021DAA78 ; =0x021C48B8
ldr r1, [r0, #0x48]
mov r0, #0xf3
tst r1, r0
beq _021DAA74
add r0, #0x21
ldr r0, [r5, r0]
mov r1, #0x12
bl MOD14_021DCB2C
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
pop {r3, r4, r5, pc}
_021DAA5E:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #0x12
bl MOD14_021DCB98
cmp r0, #0
beq _021DAA74
add r0, r5, #0
bl MOD14_021D7620
_021DAA74:
pop {r3, r4, r5, pc}
nop
_021DAA78: .word 0x021C48B8
thumb_func_start MOD14_021DAA7C
MOD14_021DAA7C: ; 0x021DAA7C
push {r4, r5}
mov r3, #0x6f
lsl r3, r3, #2
mov r5, #0
str r5, [r0, r3]
add r4, r3, #5
strb r1, [r0, r4]
add r1, r3, #6
strh r2, [r0, r1]
add r1, r3, #4
strb r5, [r0, r1]
pop {r4, r5}
bx lr
.align 2, 0
thumb_func_start MOD14_021DAA98
MOD14_021DAA98: ; 0x021DAA98
mov r1, #0x6f
mov r2, #0
lsl r1, r1, #2
str r2, [r0, r1]
mov r2, #1
add r1, r1, #4
strb r2, [r0, r1]
bx lr
thumb_func_start MOD14_021DAAA8
MOD14_021DAAA8: ; 0x021DAAA8
push {r3, r4, r5, lr}
add r5, r0, #0
mov r0, #0x6f
lsl r0, r0, #2
add r4, r5, r0
ldr r1, [r4]
cmp r1, #3
bls _021DAABA
b _021DABDC
_021DAABA:
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021DAAC6: ; jump table
.short _021DAACE - _021DAAC6 - 2 ; case 0
.short _021DAB04 - _021DAAC6 - 2 ; case 1
.short _021DAB2C - _021DAAC6 - 2 ; case 2
.short _021DAB3E - _021DAAC6 - 2 ; case 3
_021DAACE:
ldrb r0, [r4, #4]
cmp r0, #1
bne _021DAADA
mov r0, #1
str r0, [r4]
b _021DABDC
_021DAADA:
mov r0, #5
ldrsb r1, [r4, r0]
sub r0, r0, #6
cmp r1, r0
bne _021DAAE8
mov r0, #0
strb r0, [r4, #5]
_021DAAE8:
mov r1, #5
ldrsb r1, [r4, r1]
add r0, r5, #0
bl MOD14_021DC2DC
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #0x1e
bl MOD14_021DCB2C
mov r0, #1
str r0, [r4]
b _021DABDC
_021DAB04:
sub r0, #0xa8
ldr r0, [r5, r0]
mov r1, #0x1e
bl MOD14_021DCB98
cmp r0, #0
beq _021DABDC
ldrh r1, [r4, #6]
add r0, r5, #0
bl MOD14_021DBA44
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #0x18
bl MOD14_021DCB2C
mov r0, #2
str r0, [r4]
b _021DABDC
_021DAB2C:
sub r0, #0xa8
ldr r0, [r5, r0]
mov r1, #0x18
bl MOD14_021DCB98
cmp r0, #0
beq _021DABDC
mov r0, #3
str r0, [r4]
_021DAB3E:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #0x1f
bl MOD14_021DCB98
cmp r0, #0
beq _021DABDC
ldr r0, _021DABE0 ; =0x021C48B8
mov r1, #0x22
ldr r0, [r0, #0x48]
lsl r1, r1, #4
add r2, r0, #0
tst r2, r1
beq _021DAB86
mov r0, #5
ldrsb r1, [r4, r0]
sub r1, r1, #1
strb r1, [r4, #5]
ldrsb r0, [r4, r0]
cmp r0, #0
bge _021DAB6E
mov r0, #0x11
strb r0, [r4, #5]
_021DAB6E:
mov r1, #5
ldrsb r1, [r4, r1]
add r0, r5, #0
bl MOD14_021DC2DC
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #0x1f
bl MOD14_021DCB2C
b _021DABDC
_021DAB86:
lsr r1, r1, #1
tst r1, r0
beq _021DABB6
mov r0, #5
ldrsb r1, [r4, r0]
add r1, r1, #1
strb r1, [r4, #5]
ldrsb r0, [r4, r0]
cmp r0, #0x12
blt _021DAB9E
mov r0, #0
strb r0, [r4, #5]
_021DAB9E:
mov r1, #5
ldrsb r1, [r4, r1]
add r0, r5, #0
bl MOD14_021DC2DC
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #0x1f
bl MOD14_021DCB2C
b _021DABDC
_021DABB6:
mov r1, #1
tst r1, r0
beq _021DABC6
ldr r0, _021DABE4 ; =0x000005DD
bl FUN_020054C8
mov r0, #1
pop {r3, r4, r5, pc}
_021DABC6:
mov r1, #2
tst r0, r1
beq _021DABDC
ldr r0, _021DABE4 ; =0x000005DD
bl FUN_020054C8
mov r0, #0
mvn r0, r0
strb r0, [r4, #5]
mov r0, #1
pop {r3, r4, r5, pc}
_021DABDC:
mov r0, #0
pop {r3, r4, r5, pc}
.align 2, 0
_021DABE0: .word 0x021C48B8
_021DABE4: .word 0x000005DD
thumb_func_start MOD14_021DABE8
MOD14_021DABE8: ; 0x021DABE8
push {r3, r4, r5, lr}
add r4, r1, #0
ldr r1, [r4]
add r5, r0, #0
cmp r1, #0
beq _021DABFE
cmp r1, #1
beq _021DAC28
cmp r1, #2
beq _021DAC68
pop {r3, r4, r5, pc}
_021DABFE:
bl MOD14_021DC424
add r1, r0, #0
mov r0, #0x12
lsl r0, r0, #4
ldr r0, [r5, r0]
bl FUN_0206B428
add r0, r5, #0
bl MOD14_021DB934
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #4
bl MOD14_021DCB2C
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
pop {r3, r4, r5, pc}
_021DAC28:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #4
bl MOD14_021DCB98
cmp r0, #0
beq _021DAC7E
add r0, r5, #0
bl MOD14_021DC3CC
cmp r0, #0
bne _021DAC60
add r0, r5, #0
bl MOD14_021DC3F4
cmp r0, #1
bne _021DAC60
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #6
bl MOD14_021DCB2C
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
pop {r3, r4, r5, pc}
_021DAC60:
add r0, r5, #0
bl MOD14_021D7620
pop {r3, r4, r5, pc}
_021DAC68:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #6
bl MOD14_021DCB98
cmp r0, #0
beq _021DAC7E
add r0, r5, #0
bl MOD14_021D7620
_021DAC7E:
pop {r3, r4, r5, pc}
thumb_func_start MOD14_021DAC80
MOD14_021DAC80: ; 0x021DAC80
push {r3, r4, r5, r6, r7, lr}
add r5, r1, #0
add r4, r0, #0
ldr r0, [r5]
cmp r0, #5
bhi _021DAD02
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021DAC98: ; jump table
.short _021DACA4 - _021DAC98 - 2 ; case 0
.short _021DACF2 - _021DAC98 - 2 ; case 1
.short _021DAEA2 - _021DAC98 - 2 ; case 2
.short _021DAEF8 - _021DAC98 - 2 ; case 3
.short _021DAF34 - _021DAC98 - 2 ; case 4
.short _021DAF4A - _021DAC98 - 2 ; case 5
_021DACA4:
ldr r0, _021DAF60 ; =0x000005E4
bl FUN_020054C8
add r0, r4, #0
mov r1, #1
bl MOD14_021DC350
add r0, r4, #0
bl MOD14_021DC424
add r1, r0, #0
add r0, r4, #0
bl MOD14_021DC358
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x28
bl MOD14_021DCB2C
mov r0, #0x58
str r0, [sp]
mov r0, #0x72
lsl r0, r0, #2
add r0, r4, r0
mov r1, #0
mov r2, #0xc0
mov r3, #0x38
bl MOD14_021DC5F8
mov r0, #0x81
mov r1, #0
lsl r0, r0, #2
str r1, [r4, r0]
mov r1, #1
add r0, r0, #4
str r1, [r4, r0]
str r1, [r5]
pop {r3, r4, r5, r6, r7, pc}
_021DACF2:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x28
bl MOD14_021DCB98
cmp r0, #0
bne _021DAD04
_021DAD02:
b _021DAF5E
_021DAD04:
add r0, r4, #0
bl MOD14_021DB9C8
cmp r0, #0
beq _021DAD34
mov r0, #0x61
lsl r0, r0, #2
ldr r0, [r4, r0]
cmp r0, #1
bne _021DAD34
add r0, r4, #0
bl MOD14_021DC3C4
cmp r0, #3
beq _021DAD2C
ldr r1, _021DAF64 ; =MOD14_021DAF78
add r0, r4, #0
bl MOD14_021D7610
pop {r3, r4, r5, r6, r7, pc}
_021DAD2C:
ldr r0, _021DAF68 ; =0x000005F3
bl FUN_020054C8
pop {r3, r4, r5, r6, r7, pc}
_021DAD34:
ldr r0, _021DAF6C ; =0x021C48B8
ldr r1, [r0, #0x48]
mov r0, #0xf3
tst r0, r1
beq _021DAD6C
ldr r0, _021DAF70 ; =0x000005DD
bl FUN_020054C8
add r0, r4, #0
mov r1, #0
bl MOD14_021DC350
add r0, r4, #0
bl MOD14_021DC424
add r1, r0, #0
add r0, r4, #0
bl MOD14_021DC358
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x28
bl MOD14_021DCB2C
mov r0, #5
str r0, [r5]
pop {r3, r4, r5, r6, r7, pc}
_021DAD6C:
mov r1, #0x81
lsl r1, r1, #2
ldr r0, [r4, r1]
cmp r0, #0
beq _021DADE4
add r0, r1, #4
ldr r0, [r4, r0]
cmp r0, #0
beq _021DADE4
sub r0, r1, #4
ldr r0, [r4, r0]
add r2, r0, #1
sub r0, r1, #4
str r2, [r4, r0]
ldr r0, [r4, r0]
cmp r0, #0x14
bls _021DADE4
add r0, r4, #0
bl MOD14_021DC474
add r6, r0, #0
add r0, r4, #0
add r1, r6, #0
bl MOD14_021DC2C4
mov r0, #0x12
lsl r0, r0, #4
ldr r0, [r4, r0]
add r1, r6, #0
bl FUN_0206B428
add r0, r4, #0
bl MOD14_021DB934
add r0, r4, #0
bl MOD14_021DC3F4
cmp r0, #1
bne _021DADC6
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #8
bl MOD14_021DCB2C
_021DADC6:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #4
bl MOD14_021DCB2C
mov r0, #0x81
mov r1, #0
lsl r0, r0, #2
str r1, [r4, r0]
sub r0, r0, #4
str r1, [r4, r0]
mov r0, #3
str r0, [r5]
pop {r3, r4, r5, r6, r7, pc}
_021DADE4:
mov r0, #0x72
lsl r0, r0, #2
add r0, r4, r0
bl MOD14_021DC664
cmp r0, #1
beq _021DADFC
cmp r0, #2
beq _021DAE1C
cmp r0, #3
beq _021DAE76
pop {r3, r4, r5, r6, r7, pc}
_021DADFC:
add r0, r4, #0
bl MOD14_021DC474
mov r1, #0x7f
lsl r1, r1, #2
str r0, [r4, r1]
add r0, r1, #0
mov r2, #0
add r0, #8
str r2, [r4, r0]
add r0, r1, #0
add r0, #0x10
str r2, [r4, r0]
add r1, #0xc
str r2, [r4, r1]
pop {r3, r4, r5, r6, r7, pc}
_021DAE1C:
mov r0, #0x72
lsl r0, r0, #2
add r0, r4, r0
bl MOD14_021DC708
add r6, r0, #0
mov r0, #0x83
lsl r0, r0, #2
ldr r0, [r4, r0]
cmp r6, r0
bne _021DAE34
b _021DAF5E
_021DAE34:
sub r7, r6, r0
add r0, r4, #0
bl MOD14_021DC474
add r1, r7, r0
bpl _021DAE44
add r1, #0x12
b _021DAE4A
_021DAE44:
cmp r1, #0x12
blt _021DAE4A
sub r1, #0x12
_021DAE4A:
mov r0, #0x83
lsl r0, r0, #2
str r6, [r4, r0]
add r0, r4, #0
bl MOD14_021DC358
add r0, r4, #0
add r1, r7, #0
bl MOD14_021DC368
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x29
bl MOD14_021DCB2C
ldr r0, _021DAF74 ; =0x000005DC
bl FUN_020054C8
mov r0, #2
str r0, [r5]
pop {r3, r4, r5, r6, r7, pc}
_021DAE76:
add r0, r4, #0
bl MOD14_021DC424
add r5, r0, #0
add r0, r4, #0
bl MOD14_021DC474
cmp r5, r0
beq _021DAE8C
mov r1, #1
b _021DAE8E
_021DAE8C:
mov r1, #0
_021DAE8E:
mov r0, #0x81
lsl r0, r0, #2
str r1, [r4, r0]
sub r1, r0, #4
mov r2, #0
str r2, [r4, r1]
mov r1, #1
add r0, r0, #4
str r1, [r4, r0]
pop {r3, r4, r5, r6, r7, pc}
_021DAEA2:
mov r0, #0x82
lsl r0, r0, #2
ldr r1, [r4, r0]
cmp r1, #0
bne _021DAEE2
sub r0, #0x40
add r0, r4, r0
bl MOD14_021DC664
cmp r0, #3
bne _021DAEE2
add r0, r4, #0
bl MOD14_021DC424
add r6, r0, #0
add r0, r4, #0
bl MOD14_021DC474
cmp r6, r0
beq _021DAECE
mov r1, #1
b _021DAED0
_021DAECE:
mov r1, #0
_021DAED0:
mov r0, #0x81
lsl r0, r0, #2
str r1, [r4, r0]
sub r1, r0, #4
mov r2, #0
str r2, [r4, r1]
mov r1, #1
add r0, r0, #4
str r1, [r4, r0]
_021DAEE2:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x29
bl MOD14_021DCB98
cmp r0, #0
beq _021DAF5E
mov r0, #1
str r0, [r5]
pop {r3, r4, r5, r6, r7, pc}
_021DAEF8:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #4
bl MOD14_021DCB98
cmp r0, #0
beq _021DAF5E
add r0, r4, #0
bl MOD14_021DC3F4
cmp r0, #1
bne _021DAF2E
add r0, r4, #0
bl MOD14_021DC3F0
cmp r0, #0
beq _021DAF2E
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #6
bl MOD14_021DCB2C
mov r0, #4
str r0, [r5]
pop {r3, r4, r5, r6, r7, pc}
_021DAF2E:
mov r0, #1
str r0, [r5]
pop {r3, r4, r5, r6, r7, pc}
_021DAF34:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #6
bl MOD14_021DCB98
cmp r0, #0
beq _021DAF5E
mov r0, #1
str r0, [r5]
pop {r3, r4, r5, r6, r7, pc}
_021DAF4A:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
bl MOD14_021DCBC0
cmp r0, #0
beq _021DAF5E
add r0, r4, #0
bl MOD14_021D7620
_021DAF5E:
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_021DAF60: .word 0x000005E4
_021DAF64: .word MOD14_021DAF78
_021DAF68: .word 0x000005F3
_021DAF6C: .word 0x021C48B8
_021DAF70: .word 0x000005DD
_021DAF74: .word 0x000005DC
thumb_func_start MOD14_021DAF78
MOD14_021DAF78: ; 0x021DAF78
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
add r6, r1, #0
add r4, r0, #0
ldr r0, [r6]
cmp r0, #3
bhi _021DAFFC
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021DAF92: ; jump table
.short _021DAF9A - _021DAF92 - 2 ; case 0
.short _021DAFEC - _021DAF92 - 2 ; case 1
.short _021DB144 - _021DAF92 - 2 ; case 2
.short _021DB19C - _021DAF92 - 2 ; case 3
_021DAF9A:
ldr r0, _021DB1B4 ; =0x000005E4
bl FUN_020054C8
add r0, r4, #0
mov r1, #2
bl MOD14_021DC350
add r0, r4, #0
mov r1, #0
bl MOD14_021DC360
add r0, r4, #0
mov r1, #0
bl MOD14_021DC358
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x28
bl MOD14_021DCB2C
mov r0, #0x58
str r0, [sp]
mov r0, #0x72
lsl r0, r0, #2
add r0, r4, r0
mov r1, #0xff
mov r2, #0xc0
mov r3, #0x38
bl MOD14_021DC5F8
mov r0, #0x81
mov r1, #0
lsl r0, r0, #2
str r1, [r4, r0]
mov r1, #1
add r0, r0, #4
str r1, [r4, r0]
add sp, #8
str r1, [r6]
pop {r3, r4, r5, r6, r7, pc}
_021DAFEC:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x28
bl MOD14_021DCB98
cmp r0, #0
bne _021DAFFE
_021DAFFC:
b _021DB1B0
_021DAFFE:
add r0, r4, #0
bl MOD14_021DB9C8
cmp r0, #0
beq _021DB01E
mov r0, #0x61
lsl r0, r0, #2
ldr r0, [r4, r0]
cmp r0, #0
bne _021DB01E
ldr r1, _021DB1B8 ; =MOD14_021DAC80
add r0, r4, #0
bl MOD14_021D7610
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
_021DB01E:
ldr r0, _021DB1BC ; =0x021C48B8
ldr r1, [r0, #0x48]
mov r0, #0xf3
tst r0, r1
beq _021DB046
ldr r0, _021DB1C0 ; =0x000005DD
bl FUN_020054C8
add r0, r4, #0
mov r1, #0
bl MOD14_021DC350
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x28
bl MOD14_021DCB2C
mov r0, #3
str r0, [r6]
_021DB046:
add r0, r4, #0
bl MOD14_021DB1C8
cmp r0, #0
beq _021DB072
ldr r0, _021DB1C0 ; =0x000005DD
bl FUN_020054C8
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x2a
bl MOD14_021DCB2C
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x27
bl MOD14_021DCB2C
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
_021DB072:
mov r0, #0x72
lsl r0, r0, #2
add r0, r4, r0
bl MOD14_021DC664
cmp r0, #1
beq _021DB08C
cmp r0, #2
beq _021DB0AE
cmp r0, #3
beq _021DB116
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
_021DB08C:
add r0, r4, #0
bl MOD14_021DC474
mov r1, #0x7f
lsl r1, r1, #2
str r0, [r4, r1]
add r0, r1, #0
mov r2, #0
add r0, #8
str r2, [r4, r0]
add r0, r1, #0
add r0, #0x10
str r2, [r4, r0]
add r1, #0xc
add sp, #8
str r2, [r4, r1]
pop {r3, r4, r5, r6, r7, pc}
_021DB0AE:
mov r0, #0x72
lsl r0, r0, #2
add r0, r4, r0
bl MOD14_021DC708
add r7, r0, #0
mov r0, #0x83
lsl r0, r0, #2
ldr r0, [r4, r0]
cmp r7, r0
beq _021DB1B0
sub r0, r7, r0
str r0, [sp, #4]
add r0, r4, #0
bl MOD14_021DC474
ldr r1, [sp, #4]
add r5, r1, r0
bpl _021DB0D8
add r5, #8
b _021DB0DE
_021DB0D8:
cmp r5, #8
blt _021DB0DE
sub r5, #8
_021DB0DE:
mov r0, #0x83
lsl r0, r0, #2
str r7, [r4, r0]
add r0, r4, #0
add r1, r5, #0
bl MOD14_021DC358
add r0, r4, #0
add r1, r5, #0
bl MOD14_021DC360
ldr r1, [sp, #4]
add r0, r4, #0
bl MOD14_021DC368
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x29
bl MOD14_021DCB2C
ldr r0, _021DB1C4 ; =0x000005DC
bl FUN_020054C8
mov r0, #2
add sp, #8
str r0, [r6]
pop {r3, r4, r5, r6, r7, pc}
_021DB116:
add r0, r4, #0
bl MOD14_021DC424
add r5, r0, #0
add r0, r4, #0
bl MOD14_021DC474
cmp r5, r0
beq _021DB12C
mov r1, #1
b _021DB12E
_021DB12C:
mov r1, #0
_021DB12E:
mov r0, #0x81
lsl r0, r0, #2
str r1, [r4, r0]
sub r1, r0, #4
mov r2, #0
str r2, [r4, r1]
mov r1, #1
add r0, r0, #4
add sp, #8
str r1, [r4, r0]
pop {r3, r4, r5, r6, r7, pc}
_021DB144:
mov r0, #0x82
lsl r0, r0, #2
ldr r1, [r4, r0]
cmp r1, #0
bne _021DB184
sub r0, #0x40
add r0, r4, r0
bl MOD14_021DC664
cmp r0, #3
bne _021DB184
add r0, r4, #0
bl MOD14_021DC424
add r5, r0, #0
add r0, r4, #0
bl MOD14_021DC474
cmp r5, r0
beq _021DB170
mov r1, #1
b _021DB172
_021DB170:
mov r1, #0
_021DB172:
mov r0, #0x81
lsl r0, r0, #2
str r1, [r4, r0]
sub r1, r0, #4
mov r2, #0
str r2, [r4, r1]
mov r1, #1
add r0, r0, #4
str r1, [r4, r0]
_021DB184:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x29
bl MOD14_021DCB98
cmp r0, #0
beq _021DB1B0
mov r0, #1
add sp, #8
str r0, [r6]
pop {r3, r4, r5, r6, r7, pc}
_021DB19C:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
bl MOD14_021DCBC0
cmp r0, #0
beq _021DB1B0
add r0, r4, #0
bl MOD14_021D7620
_021DB1B0:
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_021DB1B4: .word 0x000005E4
_021DB1B8: .word MOD14_021DAC80
_021DB1BC: .word 0x021C48B8
_021DB1C0: .word 0x000005DD
_021DB1C4: .word 0x000005DC
thumb_func_start MOD14_021DB1C8
MOD14_021DB1C8: ; 0x021DB1C8
push {r4, lr}
add r4, r0, #0
mov r0, #0x62
mov r1, #8
lsl r0, r0, #2
str r1, [r4, r0]
sub r0, #8
ldr r0, [r4, r0]
bl FUN_02022144
mov r0, #0x62
lsl r0, r0, #2
ldr r0, [r4, r0]
cmp r0, #8
beq _021DB1EA
mov r0, #1
pop {r4, pc}
_021DB1EA:
mov r0, #0
pop {r4, pc}
.align 2, 0
thumb_func_start MOD14_021DB1F0
MOD14_021DB1F0: ; 0x021DB1F0
push {r3, r4, r5, lr}
add r5, r0, #0
mov r0, #0x62
add r4, r2, #0
lsl r0, r0, #2
ldr r0, [r4, r0]
cmp r0, #8
bne _021DB21E
cmp r1, #0
bne _021DB21E
add r0, r4, #0
bl MOD14_021DC47C
add r1, r0, r5
cmp r1, #8
blo _021DB212
sub r1, #8
_021DB212:
add r0, r4, #0
bl MOD14_021DC370
mov r0, #0x62
lsl r0, r0, #2
str r5, [r4, r0]
_021DB21E:
pop {r3, r4, r5, pc}
thumb_func_start MOD14_021DB220
MOD14_021DB220: ; 0x021DB220
push {r3, r4, r5, lr}
add r4, r1, #0
add r5, r0, #0
ldr r0, [r4]
bl FUN_02022510
mov r1, #0x12
lsl r1, r1, #4
str r0, [r5, r1]
ldr r2, [r4]
sub r0, r1, #4
str r2, [r5, r0]
ldr r0, [r4]
bl FUN_0206BB1C
mov r1, #0x49
lsl r1, r1, #2
str r0, [r5, r1]
ldr r0, [r4]
bl LoadPlayerDataAddress
mov r1, #0x69
lsl r1, r1, #2
str r0, [r5, r1]
sub r1, #0x8c
str r4, [r5, r1]
mov r0, #0
mov r1, #0x1a
mov r2, #0xf
mov r3, #9
str r0, [r4, #8]
bl FUN_0200A86C
mov r2, #0x63
lsl r2, r2, #2
str r0, [r5, r2]
mov r0, #1
mov r1, #0x1a
sub r2, #0x22
mov r3, #9
bl FUN_0200A86C
mov r1, #0x19
lsl r1, r1, #4
str r0, [r5, r1]
mov r0, #0
mov r1, #0x1a
mov r2, #0xbe
mov r3, #9
bl FUN_0200A86C
mov r2, #0x65
lsl r2, r2, #2
str r0, [r5, r2]
mov r0, #0
mov r1, #0x1a
add r2, #0x94
mov r3, #9
bl FUN_0200A86C
mov r1, #0x66
lsl r1, r1, #2
str r0, [r5, r1]
mov r0, #9
bl FUN_0200AA80
mov r1, #0x67
lsl r1, r1, #2
str r0, [r5, r1]
bl FUN_020669BC
add r1, r0, #0
mov r0, #9
bl AllocFromHeap
mov r1, #0x1a
lsl r1, r1, #4
str r0, [r5, r1]
sub r0, r1, #4
ldr r0, [r5, r0]
cmp r0, #0
bne _021DB2C8
bl ErrorHandling
_021DB2C8:
mov r0, #0x69
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #2
str r0, [sp]
mov r0, #9
mov r2, #0
mov r3, #8
bl FUN_02077A84
mov r1, #0x4a
lsl r1, r1, #2
str r0, [r5, r1]
ldr r0, [r4, #4]
cmp r0, #4
beq _021DB2FA
mov r0, #9
str r0, [sp]
ldr r0, _021DB384 ; =0x021E622A
ldr r2, _021DB388 ; =MOD14_021DB9F4
mov r1, #3
add r3, r5, #0
bl FUN_020220C4
b _021DB30A
_021DB2FA:
mov r0, #9
str r0, [sp]
ldr r0, _021DB38C ; =0x021E6236
ldr r2, _021DB388 ; =MOD14_021DB9F4
mov r1, #4
add r3, r5, #0
bl FUN_020220C4
_021DB30A:
mov r1, #0x5f
lsl r1, r1, #2
str r0, [r5, r1]
mov r0, #9
str r0, [sp]
ldr r0, _021DB390 ; =0x021E6246
ldr r2, _021DB394 ; =MOD14_021DB1F0
mov r1, #7
add r3, r5, #0
bl FUN_020220C4
mov r1, #6
lsl r1, r1, #6
str r0, [r5, r1]
add r0, r1, #0
sub r0, #0x60
ldr r0, [r5, r0]
mov r2, #0
str r0, [r5]
add r0, r1, #0
sub r0, #0x5c
ldr r0, [r5, r0]
str r0, [r5, #4]
add r0, r1, #0
sub r0, #0x70
strh r2, [r5, r0]
sub r1, #0x6e
strh r2, [r5, r1]
add r0, r5, #0
ldr r1, [r4, #4]
add r0, #0x48
bl MOD14_021DB424
add r0, r5, #0
add r0, #0x4c
bl MOD14_021DB4C8
mov r0, #0x12
lsl r0, r0, #4
add r1, r5, #0
ldr r0, [r5, r0]
add r1, #0x40
bl MOD14_021DB49C
add r0, r5, #0
add r0, #0xa4
bl MOD14_021DB524
add r0, r5, #0
bl MOD14_021DB430
add r0, r5, #0
add r0, #0x14
bl MOD14_021DB470
add r5, #0x9c
add r0, r5, #0
bl MOD14_021DB574
pop {r3, r4, r5, pc}
nop
_021DB384: .word 0x021E622A
_021DB388: .word MOD14_021DB9F4
_021DB38C: .word 0x021E6236
_021DB390: .word 0x021E6246
_021DB394: .word MOD14_021DB1F0
thumb_func_start MOD14_021DB398
MOD14_021DB398: ; 0x021DB398
push {r4, lr}
add r4, r0, #0
mov r0, #6
lsl r0, r0, #6
ldr r0, [r4, r0]
bl FUN_0202212C
mov r0, #0x5f
lsl r0, r0, #2
ldr r0, [r4, r0]
bl FUN_0202212C
mov r0, #0x1a
lsl r0, r0, #4
ldr r0, [r4, r0]
cmp r0, #0
beq _021DB3BE
bl FreeToHeap
_021DB3BE:
mov r0, #0x67
lsl r0, r0, #2
ldr r0, [r4, r0]
bl FUN_0200AB18
mov r0, #0x63
lsl r0, r0, #2
ldr r0, [r4, r0]
bl FUN_0200A8B8
mov r0, #0x19
lsl r0, r0, #4
ldr r0, [r4, r0]
bl FUN_0200A8B8
mov r0, #0x65
lsl r0, r0, #2
ldr r0, [r4, r0]
bl FUN_0200A8B8
mov r0, #0x66
lsl r0, r0, #2
ldr r0, [r4, r0]
bl FUN_0200A8B8
mov r0, #0x4a
lsl r0, r0, #2
ldr r0, [r4, r0]
bl FUN_02077AC4
add r0, r4, #0
add r0, #0x4c
bl MOD14_021DB500
add r0, r4, #0
add r0, #0x14
bl MOD14_021DB490
add r0, r4, #0
add r0, #0x40
bl MOD14_021DB4BC
add r0, r4, #0
add r0, #0xa4
bl MOD14_021DB558
add r0, r4, #0
bl FreeToHeap
pop {r4, pc}
.align 2, 0
thumb_func_start MOD14_021DB424
MOD14_021DB424: ; 0x021DB424
strb r1, [r0]
mov r1, #0
strb r1, [r0, #1]
strh r1, [r0, #2]
bx lr
.align 2, 0
thumb_func_start MOD14_021DB430
MOD14_021DB430: ; 0x021DB430
push {r3, r4, r5, lr}
add r5, r0, #0
mov r1, #0
add r4, r5, #0
add r2, r1, #0
add r4, #8
bl MOD14_021DBA4C
mov r2, #0
add r0, r5, #0
strb r2, [r4, #8]
mov r1, #1
strb r1, [r4, #9]
add r0, #0x48
ldrb r0, [r0]
cmp r0, #0
beq _021DB458
cmp r0, #4
beq _021DB45C
b _021DB462
_021DB458:
strb r1, [r4, #4]
b _021DB464
_021DB45C:
mov r0, #2
strb r0, [r4, #4]
b _021DB464
_021DB462:
strb r2, [r4, #4]
_021DB464:
mov r0, #1
strb r0, [r4, #0xb]
add r0, r5, #0
bl MOD14_021DB934
pop {r3, r4, r5, pc}
thumb_func_start MOD14_021DB470
MOD14_021DB470: ; 0x021DB470
push {r4, lr}
add r4, r0, #0
bl FUN_020690C8
add r2, r0, #0
mov r1, #0x1e
mov r0, #9
mul r1, r2
bl AllocFromHeap
str r0, [r4]
mov r0, #0
strb r0, [r4, #8]
strb r0, [r4, #0xb]
pop {r4, pc}
.align 2, 0
thumb_func_start MOD14_021DB490
MOD14_021DB490: ; 0x021DB490
ldr r3, _021DB498 ; =FreeToHeap
ldr r0, [r0]
bx r3
nop
_021DB498: .word FreeToHeap
thumb_func_start MOD14_021DB49C
MOD14_021DB49C: ; 0x021DB49C
push {r3, r4, r5, lr}
add r4, r1, #0
add r5, r0, #0
bl FUN_0206B330
strb r0, [r4]
mov r0, #0x14
mov r1, #9
bl FUN_020219F4
str r0, [r4, #4]
add r0, r5, #0
add r1, r4, #0
bl MOD14_021DB580
pop {r3, r4, r5, pc}
thumb_func_start MOD14_021DB4BC
MOD14_021DB4BC: ; 0x021DB4BC
ldr r3, _021DB4C4 ; =FUN_02021A20
ldr r0, [r0, #4]
bx r3
nop
_021DB4C4: .word FUN_02021A20
thumb_func_start MOD14_021DB4C8
MOD14_021DB4C8: ; 0x021DB4C8
push {r4, lr}
add r4, r0, #0
mov r0, #0xc
mov r1, #9
bl FUN_020219F4
str r0, [r4, #0x14]
mov r0, #0xc
mov r1, #9
bl FUN_020219F4
str r0, [r4, #0x18]
mov r0, #0x12
mov r1, #9
bl FUN_020219F4
str r0, [r4, #0x1c]
mov r0, #0xc
mov r1, #9
bl FUN_020219F4
str r0, [r4, #0x20]
mov r0, #0x10
mov r1, #9
bl FUN_020219F4
str r0, [r4, #0x24]
pop {r4, pc}
thumb_func_start MOD14_021DB500
MOD14_021DB500: ; 0x021DB500
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0x14]
bl FUN_02021A20
ldr r0, [r4, #0x18]
bl FUN_02021A20
ldr r0, [r4, #0x1c]
bl FUN_02021A20
ldr r0, [r4, #0x20]
bl FUN_02021A20
ldr r0, [r4, #0x24]
bl FUN_02021A20
pop {r4, pc}
thumb_func_start MOD14_021DB524
MOD14_021DB524: ; 0x021DB524
push {r3, r4, r5, r6, r7, lr}
add r6, r0, #0
mov r4, #0
strb r4, [r6]
strb r4, [r6, #1]
str r4, [r6, #4]
add r5, r6, #0
add r7, r4, #0
_021DB534:
add r0, r6, r4
strb r7, [r0, #2]
mov r0, #0xc
mov r1, #9
bl FUN_020219F4
str r0, [r5, #0x30]
mov r0, #0xc
mov r1, #9
bl FUN_020219F4
str r0, [r5, #0x34]
add r4, r4, #1
add r5, #0x30
cmp r4, #2
blt _021DB534
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start MOD14_021DB558
MOD14_021DB558: ; 0x021DB558
push {r3, r4, r5, lr}
add r5, r0, #0
mov r4, #0
_021DB55E:
ldr r0, [r5, #0x30]
bl FUN_02021A20
ldr r0, [r5, #0x34]
bl FUN_02021A20
add r4, r4, #1
add r5, #0x30
cmp r4, #2
blt _021DB55E
pop {r3, r4, r5, pc}
thumb_func_start MOD14_021DB574
MOD14_021DB574: ; 0x021DB574
mov r1, #0
strb r1, [r0]
strb r1, [r0, #2]
strb r1, [r0, #1]
strh r1, [r0, #4]
bx lr
thumb_func_start MOD14_021DB580
MOD14_021DB580: ; 0x021DB580
push {r3, r4, r5, lr}
add r4, r1, #0
ldrb r1, [r4]
add r5, r0, #0
bl FUN_0206B43C
strb r0, [r4, #1]
ldrb r1, [r4]
ldr r2, [r4, #4]
add r0, r5, #0
bl FUN_0206B484
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_start MOD14_021DB59C
MOD14_021DB59C: ; 0x021DB59C
push {r4, lr}
add r2, r0, #0
add r4, r2, #0
add r2, #0x40
add r0, r1, #0
ldrb r1, [r2]
add r4, #0x40
bl FUN_0206B43C
strb r0, [r4, #1]
pop {r4, pc}
.align 2, 0
thumb_func_start MOD14_021DB5B4
MOD14_021DB5B4: ; 0x021DB5B4
push {r3, r4, r5, lr}
add r5, r1, #0
mov r1, #0x20
add r2, r0, #0
mov r4, #0
tst r2, r1
beq _021DB5D0
add r0, r5, #0
sub r1, #0x21
add r2, r4, #0
bl MOD14_021DB61C
add r4, r0, #0
b _021DB60C
_021DB5D0:
mov r1, #0x10
tst r1, r0
beq _021DB5E4
add r0, r5, #0
mov r1, #1
add r2, r4, #0
bl MOD14_021DB61C
add r4, r0, #0
b _021DB60C
_021DB5E4:
mov r2, #0x40
add r1, r0, #0
tst r1, r2
beq _021DB5FA
add r0, r5, #0
add r1, r4, #0
sub r2, #0x41
bl MOD14_021DB61C
add r4, r0, #0
b _021DB60C
_021DB5FA:
mov r1, #0x80
tst r0, r1
beq _021DB60C
add r0, r5, #0
add r1, r4, #0
mov r2, #1
bl MOD14_021DB61C
add r4, r0, #0
_021DB60C:
cmp r4, #1
bne _021DB616
add r0, r5, #0
bl MOD14_021DB934
_021DB616:
add r0, r4, #0
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_start MOD14_021DB61C
MOD14_021DB61C: ; 0x021DB61C
push {r4, lr}
add r3, r0, #0
add r3, #8
ldrb r4, [r3, #4]
cmp r4, #4
bhi _021DB66A
add r4, r4, r4
add r4, pc
ldrh r4, [r4, #6]
lsl r4, r4, #0x10
asr r4, r4, #0x10
add pc, r4
_021DB634: ; jump table
.short _021DB63E - _021DB634 - 2 ; case 0
.short _021DB720 - _021DB634 - 2 ; case 1
.short _021DB69E - _021DB634 - 2 ; case 2
.short _021DB6F4 - _021DB634 - 2 ; case 3
.short _021DB6C8 - _021DB634 - 2 ; case 4
_021DB63E:
cmp r1, #0
beq _021DB666
mov r2, #5
ldrsb r4, [r3, r2]
add r1, r4, r1
strb r1, [r3, #5]
ldrsb r1, [r3, r2]
cmp r1, #0
bge _021DB654
add r1, r2, #0
b _021DB65A
_021DB654:
cmp r1, #6
blt _021DB65A
mov r1, #0
_021DB65A:
mov r2, #6
ldrsb r2, [r3, r2]
bl MOD14_021DBA4C
mov r0, #1
pop {r4, pc}
_021DB666:
cmp r2, #0
bne _021DB66C
_021DB66A:
b _021DB78A
_021DB66C:
mov r1, #6
ldrsb r1, [r3, r1]
add r2, r1, r2
bpl _021DB67C
mov r1, #2
mov r2, #0
strb r1, [r3, #4]
b _021DB692
_021DB67C:
cmp r2, #4
ble _021DB692
mov r1, #5
ldrsb r1, [r3, r1]
mov r2, #4
cmp r1, #5
bne _021DB68E
add r1, r2, #0
b _021DB690
_021DB68E:
mov r1, #3
_021DB690:
strb r1, [r3, #4]
_021DB692:
mov r1, #5
ldrsb r1, [r3, r1]
bl MOD14_021DBA4C
mov r0, #1
pop {r4, pc}
_021DB69E:
cmp r2, #0
ble _021DB6B2
mov r2, #0
strb r2, [r3, #4]
mov r1, #5
ldrsb r1, [r3, r1]
bl MOD14_021DBA4C
mov r0, #1
pop {r4, pc}
_021DB6B2:
bge _021DB78A
mov r0, #5
ldrsb r0, [r3, r0]
cmp r0, #5
bne _021DB6C0
mov r0, #4
b _021DB6C2
_021DB6C0:
mov r0, #3
_021DB6C2:
strb r0, [r3, #4]
mov r0, #1
pop {r4, pc}
_021DB6C8:
cmp r2, #0
bge _021DB6DE
mov r1, #0
strb r1, [r3, #4]
mov r1, #5
ldrsb r1, [r3, r1]
mov r2, #4
bl MOD14_021DBA4C
mov r0, #1
pop {r4, pc}
_021DB6DE:
ble _021DB6E8
mov r0, #2
strb r0, [r3, #4]
mov r0, #1
pop {r4, pc}
_021DB6E8:
cmp r1, #0
beq _021DB78A
mov r0, #3
strb r0, [r3, #4]
mov r0, #1
pop {r4, pc}
_021DB6F4:
cmp r2, #0
bge _021DB70A
mov r1, #0
strb r1, [r3, #4]
mov r1, #5
ldrsb r1, [r3, r1]
mov r2, #4
bl MOD14_021DBA4C
mov r0, #1
pop {r4, pc}
_021DB70A:
ble _021DB714
mov r0, #2
strb r0, [r3, #4]
mov r0, #1
pop {r4, pc}
_021DB714:
cmp r1, #0
beq _021DB78A
mov r0, #4
strb r0, [r3, #4]
mov r0, #1
pop {r4, pc}
_021DB720:
mov r4, #8
ldrsb r0, [r3, r4]
cmp r2, #0
bge _021DB742
cmp r0, #6
bne _021DB732
mov r1, #5
strb r1, [r3, #8]
b _021DB77E
_021DB732:
sub r1, r0, #2
strb r1, [r3, #8]
ldrsb r1, [r3, r4]
cmp r1, #0
bge _021DB77E
mov r1, #6
strb r1, [r3, #8]
b _021DB77E
_021DB742:
ble _021DB75E
cmp r0, #6
bne _021DB74E
mov r1, #0
strb r1, [r3, #8]
b _021DB77E
_021DB74E:
add r1, r0, #2
strb r1, [r3, #8]
ldrsb r1, [r3, r4]
cmp r1, #6
blt _021DB77E
mov r1, #6
strb r1, [r3, #8]
b _021DB77E
_021DB75E:
cmp r1, #0
bge _021DB76E
mov r1, #1
tst r1, r0
beq _021DB77E
sub r1, r0, #1
strb r1, [r3, #8]
b _021DB77E
_021DB76E:
ble _021DB77E
cmp r0, #6
beq _021DB77E
mov r1, #1
tst r1, r0
bne _021DB77E
add r1, r0, #1
strb r1, [r3, #8]
_021DB77E:
mov r1, #8
ldrsb r1, [r3, r1]
cmp r0, r1
beq _021DB78A
mov r0, #1
pop {r4, pc}
_021DB78A:
mov r0, #0
pop {r4, pc}
.align 2, 0
thumb_func_start MOD14_021DB790
MOD14_021DB790: ; 0x021DB790
push {r3, r4, r5, lr}
add r5, r1, #0
mov r1, #0x20
add r2, r0, #0
mov r4, #0
tst r2, r1
beq _021DB7AC
add r0, r5, #0
sub r1, #0x21
add r2, r4, #0
bl MOD14_021DB80C
add r4, r0, #0
b _021DB7FE
_021DB7AC:
mov r1, #0x10
tst r1, r0
beq _021DB7C0
add r0, r5, #0
mov r1, #1
add r2, r4, #0
bl MOD14_021DB80C
add r4, r0, #0
b _021DB7FE
_021DB7C0:
mov r2, #0x40
add r1, r0, #0
tst r1, r2
beq _021DB7D6
add r0, r5, #0
add r1, r4, #0
sub r2, #0x41
bl MOD14_021DB80C
add r4, r0, #0
b _021DB7FE
_021DB7D6:
mov r2, #0x80
add r1, r0, #0
tst r1, r2
beq _021DB7EC
add r0, r5, #0
add r1, r4, #0
mov r2, #1
bl MOD14_021DB80C
add r4, r0, #0
b _021DB7FE
_021DB7EC:
lsl r1, r2, #2
tst r1, r0
beq _021DB7F6
mov r4, #3
b _021DB7FE
_021DB7F6:
add r2, #0x80
tst r0, r2
beq _021DB7FE
mov r4, #4
_021DB7FE:
cmp r4, #1
bne _021DB808
add r0, r5, #0
bl MOD14_021DB934
_021DB808:
add r0, r4, #0
pop {r3, r4, r5, pc}
thumb_func_start MOD14_021DB80C
MOD14_021DB80C: ; 0x021DB80C
push {r3, r4, r5, r6, r7, lr}
add r7, r0, #0
add r4, r7, #0
add r4, #8
ldrb r3, [r4, #4]
add r6, r7, #0
add r6, #0x14
cmp r3, #0
bne _021DB8C6
cmp r1, #0
beq _021DB874
mov r2, #5
ldrsb r2, [r4, r2]
add r5, r2, r1
bl MOD14_021DC3F4
mov r1, #0xc
tst r0, r1
beq _021DB858
ldrb r0, [r6, #4]
ldrb r3, [r6, #6]
add r2, r5, #0
add r1, r5, #0
cmp r3, r0
bls _021DB844
sub r0, r3, r0
sub r1, r5, r0
b _021DB848
_021DB844:
sub r0, r0, r3
add r2, r5, r0
_021DB848:
cmp r1, #0
bge _021DB850
mov r0, #3
pop {r3, r4, r5, r6, r7, pc}
_021DB850:
cmp r2, #6
blt _021DB864
mov r0, #4
pop {r3, r4, r5, r6, r7, pc}
_021DB858:
cmp r5, #0
blt _021DB860
cmp r5, #6
blt _021DB864
_021DB860:
mov r0, #2
pop {r3, r4, r5, r6, r7, pc}
_021DB864:
mov r2, #6
ldrsb r2, [r4, r2]
add r0, r7, #0
add r1, r5, #0
bl MOD14_021DBA4C
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021DB874:
cmp r2, #0
beq _021DB8C6
mov r1, #6
ldrsb r1, [r4, r1]
add r5, r1, r2
bl MOD14_021DC3F4
mov r1, #0xc
tst r0, r1
beq _021DB8AA
ldrb r0, [r6, #5]
ldrb r3, [r6, #7]
add r2, r5, #0
add r1, r5, #0
cmp r3, r0
bls _021DB89A
sub r0, r3, r0
sub r1, r5, r0
b _021DB89E
_021DB89A:
sub r0, r0, r3
add r2, r5, r0
_021DB89E:
cmp r1, #0
blt _021DB8A6
cmp r2, #5
blt _021DB8B6
_021DB8A6:
mov r0, #2
pop {r3, r4, r5, r6, r7, pc}
_021DB8AA:
cmp r5, #0
blt _021DB8B2
cmp r5, #5
blt _021DB8B6
_021DB8B2:
mov r0, #2
pop {r3, r4, r5, r6, r7, pc}
_021DB8B6:
mov r1, #5
ldrsb r1, [r4, r1]
add r0, r7, #0
add r2, r5, #0
bl MOD14_021DBA4C
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021DB8C6:
bl ErrorHandling
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start MOD14_021DB8D0
MOD14_021DB8D0: ; 0x021DB8D0
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r5, #0
add r4, #8
bl MOD14_021DC3F4
cmp r0, #2
bne _021DB8FA
mov r0, #0x49
lsl r0, r0, #2
ldr r0, [r5, r0]
bl FUN_0206B9AC
strb r0, [r4, #8]
mov r0, #8
ldrsb r0, [r4, r0]
cmp r0, #6
blt _021DB8FE
mov r0, #5
strb r0, [r4, #8]
b _021DB8FE
_021DB8FA:
mov r0, #0
strb r0, [r4, #8]
_021DB8FE:
ldrb r0, [r4, #4]
strb r0, [r4, #9]
mov r0, #1
strb r0, [r4, #4]
add r0, r5, #0
bl MOD14_021DB934
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_start MOD14_021DB910
MOD14_021DB910: ; 0x021DB910
push {r4, lr}
add r4, r0, #0
add r3, r4, #0
add r3, #8
mov r1, #0
strb r1, [r3, #4]
mov r2, #9
ldrsb r2, [r3, r2]
cmp r2, #0
beq _021DB92A
add r2, r1, #0
bl MOD14_021DBA4C
_021DB92A:
add r0, r4, #0
bl MOD14_021DB934
pop {r4, pc}
.align 2, 0
thumb_func_start MOD14_021DB934
MOD14_021DB934: ; 0x021DB934
push {r4, r5, r6, lr}
add r5, r0, #0
add r4, r5, #0
add r4, #8
mov r1, #0
strb r1, [r4, #0xa]
ldrb r0, [r4, #4]
cmp r0, #4
bhi _021DB994
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021DB952: ; jump table
.short _021DB95C - _021DB952 - 2 ; case 0
.short _021DB96C - _021DB952 - 2 ; case 1
.short _021DB994 - _021DB952 - 2 ; case 2
.short _021DB994 - _021DB952 - 2 ; case 3
.short _021DB994 - _021DB952 - 2 ; case 4
_021DB95C:
mov r2, #7
ldrsb r2, [r4, r2]
ldr r0, [r5]
sub r1, r1, #1
bl FUN_0206B5E4
str r0, [r4]
b _021DB998
_021DB96C:
mov r0, #8
ldrsb r6, [r4, r0]
mov r0, #0x49
lsl r0, r0, #2
ldr r0, [r5, r0]
bl FUN_0206B9AC
cmp r6, r0
bge _021DB98E
mov r0, #0x49
lsl r0, r0, #2
ldr r0, [r5, r0]
add r1, r6, #0
bl FUN_0206B9B0
str r0, [r4]
b _021DB998
_021DB98E:
mov r0, #0
str r0, [r4]
b _021DB998
_021DB994:
mov r0, #0
str r0, [r4]
_021DB998:
ldr r0, [r4]
cmp r0, #0
beq _021DB9C4
mov r1, #0xab
mov r2, #0
bl FUN_020672BC
cmp r0, #0
beq _021DB9C4
mov r0, #1
strb r0, [r4, #0xa]
add r0, r5, #0
bl MOD14_021DC3F4
mov r1, #6
tst r0, r1
bne _021DB9C4
ldr r1, [r4]
add r0, r5, #0
add r2, r5, #0
bl MOD14_021DBE88
_021DB9C4:
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start MOD14_021DB9C8
MOD14_021DB9C8: ; 0x021DB9C8
push {r4, lr}
add r4, r0, #0
mov r0, #0x61
ldr r1, _021DB9F0 ; =0x0000FFFF
lsl r0, r0, #2
str r1, [r4, r0]
sub r0, #8
ldr r0, [r4, r0]
bl FUN_02022144
mov r0, #0x61
lsl r0, r0, #2
ldr r1, [r4, r0]
ldr r0, _021DB9F0 ; =0x0000FFFF
cmp r1, r0
beq _021DB9EC
mov r0, #1
pop {r4, pc}
_021DB9EC:
mov r0, #0
pop {r4, pc}
.align 2, 0
_021DB9F0: .word 0x0000FFFF
thumb_func_start MOD14_021DB9F4
MOD14_021DB9F4: ; 0x021DB9F4
push {r4, r5, r6, lr}
add r5, r1, #0
add r6, r0, #0
add r4, r2, #0
cmp r5, #0
bne _021DBA0E
mov r0, #0x61
lsl r0, r0, #2
ldr r2, [r4, r0]
ldr r1, _021DBA40 ; =0x0000FFFF
cmp r2, r1
bne _021DBA0E
str r6, [r4, r0]
_021DBA0E:
add r0, r4, #0
bl MOD14_021DC3C4
cmp r0, #4
bne _021DBA3C
cmp r6, #2
bne _021DBA3C
cmp r5, #0
beq _021DBA2A
cmp r5, #1
beq _021DBA34
cmp r5, #3
beq _021DBA34
pop {r4, r5, r6, pc}
_021DBA2A:
add r0, r4, #0
mov r1, #1
bl MOD14_021DC1A0
pop {r4, r5, r6, pc}
_021DBA34:
add r0, r4, #0
mov r1, #0
bl MOD14_021DC1A0
_021DBA3C:
pop {r4, r5, r6, pc}
nop
_021DBA40: .word 0x0000FFFF
thumb_func_start MOD14_021DBA44
MOD14_021DBA44: ; 0x021DBA44
mov r2, #0x43
lsl r2, r2, #2
str r1, [r0, r2]
bx lr
thumb_func_start MOD14_021DBA4C
MOD14_021DBA4C: ; 0x021DBA4C
add r0, #8
mov r3, #6
strb r1, [r0, #5]
mul r3, r2
strb r2, [r0, #6]
add r1, r1, r3
strb r1, [r0, #7]
bx lr
thumb_func_start MOD14_021DBA5C
MOD14_021DBA5C: ; 0x021DBA5C
push {r3, r4, r5, r6, r7, lr}
add r6, r1, #0
add r7, r0, #0
add r4, r6, #0
add r5, r6, #0
add r0, r6, #0
add r4, #0x14
add r5, #8
bl MOD14_021DC3CC
cmp r0, #0
bne _021DBA98
bl FUN_020690C8
add r2, r0, #0
ldr r0, [r5]
ldr r1, [r4]
bl MIi_CpuCopy32
mov r0, #0x12
mov r2, #7
lsl r0, r0, #4
mov r1, #0
ldrsb r2, [r5, r2]
ldr r0, [r7, r0]
mvn r1, r1
bl FUN_0206B2FC
mov r0, #0
b _021DBAB6
_021DBA98:
bl FUN_020690C4
add r2, r0, #0
ldr r0, [r5]
ldr r1, [r4]
bl MIi_CpuCopy32
mov r0, #0x49
mov r1, #8
lsl r0, r0, #2
ldrsb r1, [r5, r1]
ldr r0, [r7, r0]
bl FUN_0206B938
mov r0, #1
_021DBAB6:
strb r0, [r4, #0xb]
ldr r1, [r4]
add r0, r6, #0
bl MOD14_021DC1A8
mov r0, #5
ldrsb r0, [r5, r0]
strb r0, [r4, #6]
ldrb r0, [r4, #6]
strb r0, [r4, #4]
mov r0, #6
ldrsb r0, [r5, r0]
strb r0, [r4, #7]
ldrb r0, [r4, #7]
strb r0, [r4, #5]
mov r0, #2
strb r0, [r6, #0x13]
mov r0, #0
strb r0, [r6, #0x12]
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start MOD14_021DBAE0
MOD14_021DBAE0: ; 0x021DBAE0
push {r4, r5, r6, r7, lr}
sub sp, #0x34
add r6, r1, #0
add r7, r0, #0
add r6, #0x14
mov r0, #1
strb r0, [r6, #0xa]
add r0, r1, #0
str r1, [sp, #4]
bl MOD14_021DC3E0
str r0, [sp, #0x14]
bl FUN_020690C8
str r0, [sp, #0x10]
mov r0, #0
str r0, [sp, #0xc]
ldr r0, [sp, #4]
add r1, sp, #0x30
ldr r5, [r0, #0x14]
add r0, sp, #0x24
str r0, [sp]
ldr r0, [sp, #4]
add r2, sp, #0x2c
add r3, sp, #0x28
bl MOD14_021DC4A4
ldr r0, [sp, #0x28]
ldr r1, [sp, #0x24]
str r0, [sp, #0x18]
cmp r0, r1
bhi _021DBBA6
mov r1, #6
mul r1, r0
str r1, [sp, #8]
_021DBB26:
ldr r1, [sp, #0x30]
ldr r0, [sp, #8]
str r1, [sp, #0x1c]
add r4, r1, r0
ldr r1, [sp, #0x2c]
ldr r0, [sp, #0x1c]
cmp r0, r1
bhi _021DBB94
_021DBB36:
mov r0, #0x12
lsl r0, r0, #4
mov r1, #0
ldr r0, [r7, r0]
mvn r1, r1
add r2, r4, #0
bl FUN_0206B5E4
mov r1, #0xab
mov r2, #0
str r0, [sp, #0x20]
bl FUN_020672BC
cmp r0, #0
beq _021DBB86
ldr r0, [sp, #0x20]
ldr r2, [sp, #0x10]
add r1, r5, #0
bl MIi_CpuCopy32
mov r0, #0x12
lsl r0, r0, #4
mov r1, #0
ldr r0, [r7, r0]
mvn r1, r1
add r2, r4, #0
bl FUN_0206B2FC
ldr r0, [sp, #0x10]
add r5, r5, r0
ldr r0, [sp, #0xc]
add r1, r6, r0
add r0, r0, #1
str r0, [sp, #0xc]
ldr r0, [sp, #0x14]
strb r4, [r1, #0xc]
cmp r4, r0
bne _021DBB86
mov r0, #0
strb r0, [r6, #0xa]
_021DBB86:
ldr r0, [sp, #0x1c]
ldr r1, [sp, #0x2c]
add r0, r0, #1
add r4, r4, #1
str r0, [sp, #0x1c]
cmp r0, r1
bls _021DBB36
_021DBB94:
ldr r0, [sp, #8]
ldr r1, [sp, #0x24]
add r0, r0, #6
str r0, [sp, #8]
ldr r0, [sp, #0x18]
add r0, r0, #1
str r0, [sp, #0x18]
cmp r0, r1
bls _021DBB26
_021DBBA6:
ldr r0, [sp, #0xc]
strb r0, [r6, #8]
ldr r1, [sp, #0x28]
mov r0, #6
ldr r2, [sp, #0x30]
mul r0, r1
add r0, r2, r0
strb r0, [r6, #9]
ldr r0, [sp, #4]
ldrb r0, [r0, #0x12]
cmp r0, #0
beq _021DBBC2
mov r1, #4
b _021DBBC4
_021DBBC2:
mov r1, #8
_021DBBC4:
ldr r0, [sp, #4]
strb r1, [r0, #0x13]
mov r1, #0
strb r1, [r0, #0x12]
add sp, #0x34
pop {r4, r5, r6, r7, pc}
thumb_func_start MOD14_021DBBD0
MOD14_021DBBD0: ; 0x021DBBD0
add r2, r1, #0
add r1, #8
mov r0, #5
ldrsb r0, [r1, r0]
add r2, #0x14
strb r0, [r2, #6]
ldrb r0, [r2, #6]
strb r0, [r2, #4]
mov r0, #6
ldrsb r0, [r1, r0]
strb r0, [r2, #7]
ldrb r0, [r2, #7]
strb r0, [r2, #5]
bx lr
thumb_func_start MOD14_021DBBEC
MOD14_021DBBEC: ; 0x021DBBEC
add r2, r1, #0
add r1, #8
mov r0, #5
ldrsb r0, [r1, r0]
add r2, #0x14
strb r0, [r2, #6]
mov r0, #6
ldrsb r0, [r1, r0]
strb r0, [r2, #7]
bx lr
thumb_func_start MOD14_021DBC00
MOD14_021DBC00: ; 0x021DBC00
push {r3, r4, r5, r6, r7, lr}
add r7, r1, #0
add r5, r0, #0
add r4, r7, #0
add r6, r7, #0
add r0, r7, #0
add r4, #0x14
add r6, #8
bl MOD14_021DC3CC
cmp r0, #0
bne _021DBC42
mov r0, #0x12
mov r2, #7
lsl r0, r0, #4
mov r1, #0
ldrsb r2, [r6, r2]
ldr r0, [r5, r0]
ldr r3, [r4]
mvn r1, r1
bl FUN_0206B2B0
mov r0, #0x12
mov r2, #7
lsl r0, r0, #4
mov r1, #0
ldrsb r2, [r6, r2]
ldr r0, [r5, r0]
mvn r1, r1
bl FUN_0206B5E4
add r1, r0, #0
b _021DBC8A
_021DBC42:
ldrb r0, [r4, #0xb]
cmp r0, #0
beq _021DBC56
mov r0, #0x49
lsl r0, r0, #2
ldr r0, [r5, r0]
ldr r1, [r4]
bl FUN_0206B900
b _021DBC70
_021DBC56:
mov r1, #0x1a
lsl r1, r1, #4
ldr r0, [r4]
ldr r1, [r5, r1]
bl FUN_02069A64
mov r1, #0x49
lsl r1, r1, #2
ldr r0, [r5, r1]
add r1, #0x7c
ldr r1, [r5, r1]
bl FUN_0206B900
_021DBC70:
mov r0, #0x49
lsl r0, r0, #2
ldr r0, [r5, r0]
bl FUN_0206B9AC
add r1, r0, #0
mov r0, #0x49
lsl r0, r0, #2
ldr r0, [r5, r0]
sub r1, r1, #1
bl FUN_0206B9B0
add r1, r0, #0
_021DBC8A:
add r0, r7, #0
bl MOD14_021DC1A8
add r0, r5, #0
bl MOD14_021DB934
mov r0, #1
strb r0, [r7, #0x13]
strb r0, [r7, #0x12]
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start MOD14_021DBCA0
MOD14_021DBCA0: ; 0x021DBCA0
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x10
add r6, r1, #0
add r7, r0, #0
add r6, #0x14
add r0, r1, #0
str r1, [sp]
bl MOD14_021DC4F8
str r0, [sp, #8]
ldrb r0, [r6, #9]
str r0, [sp, #0xc]
bl FUN_020690C8
str r0, [sp, #4]
ldr r0, [sp]
mov r5, #0
ldr r4, [r0, #0x14]
ldrb r0, [r6, #8]
cmp r0, #0
ble _021DBCF4
_021DBCCA:
add r3, r6, r5
mov r2, #0xc
ldrsb r3, [r3, r2]
ldr r2, [sp, #0xc]
mov r0, #0x12
lsl r0, r0, #4
sub r3, r3, r2
ldr r2, [sp, #8]
mov r1, #0
add r2, r2, r3
ldr r0, [r7, r0]
mvn r1, r1
add r3, r4, #0
bl FUN_0206B2B0
ldr r0, [sp, #4]
add r5, r5, #1
add r4, r4, r0
ldrb r0, [r6, #8]
cmp r5, r0
blt _021DBCCA
_021DBCF4:
ldr r0, [sp]
bl MOD14_021DC3E0
add r2, r0, #0
mov r0, #0x12
lsl r0, r0, #4
mov r1, #0
ldr r0, [r7, r0]
mvn r1, r1
bl FUN_0206B5E4
add r1, r0, #0
ldr r0, [sp]
bl MOD14_021DC1A8
add r0, r7, #0
bl MOD14_021DB934
mov r1, #0
ldr r0, [sp]
strb r1, [r6, #8]
ldrb r0, [r0, #0x13]
cmp r0, #4
bne _021DBD26
mov r1, #1
_021DBD26:
ldr r0, [sp]
strb r1, [r0, #0x12]
mov r1, #1
strb r1, [r0, #0x13]
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start MOD14_021DBD34
MOD14_021DBD34: ; 0x021DBD34
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
add r4, r1, #0
str r1, [sp]
add r5, r0, #0
add r4, #0x14
bl FUN_020690C4
add r6, r0, #0
ldr r0, [sp]
add r2, r6, #0
ldr r7, [r0, #0x14]
str r0, [sp, #4]
add r0, #8
str r0, [sp, #4]
add r0, r7, #0
add r1, r7, r6
bl MIi_CpuCopy32
ldr r0, [sp]
ldr r1, [sp]
ldr r0, [r0, #8]
ldr r1, [r1, #0x14]
add r2, r6, #0
bl MIi_CpuCopy32
ldr r0, [sp]
bl MOD14_021DC3CC
cmp r0, #0
bne _021DBD8E
ldr r2, [sp, #4]
mov r0, #0x12
mov r3, #7
lsl r0, r0, #4
ldrsb r2, [r2, r3]
mov r1, #0
ldr r0, [r5, r0]
mvn r1, r1
add r3, r7, r6
bl FUN_0206B2B0
mov r0, #0
strb r0, [r4, #0xb]
b _021DBDC8
_021DBD8E:
ldrb r0, [r4, #0xb]
cmp r0, #0
bne _021DBDA2
mov r1, #0x1a
lsl r1, r1, #4
ldr r1, [r5, r1]
add r0, r7, r6
bl FUN_02069A64
b _021DBDB0
_021DBDA2:
mov r1, #0x1a
lsl r1, r1, #4
ldr r1, [r5, r1]
add r0, r7, r6
add r2, r6, #0
bl MIi_CpuCopy32
_021DBDB0:
mov r3, #0x49
lsl r3, r3, #2
ldr r0, [r5, r3]
ldr r1, [sp, #4]
mov r2, #8
ldrsb r1, [r1, r2]
add r3, #0x7c
ldr r2, [r5, r3]
bl FUN_0206B9DC
mov r0, #1
strb r0, [r4, #0xb]
_021DBDC8:
ldr r0, [sp]
ldr r1, [r4]
add r2, r5, #0
bl MOD14_021DBE88
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start MOD14_021DBDD8
MOD14_021DBDD8: ; 0x021DBDD8
push {r4, lr}
add r4, r0, #0
mov r0, #0x12
lsl r0, r0, #4
ldr r0, [r4, r0]
ldr r2, [r4, #0x14]
bl FUN_0206B244
cmp r0, #0
beq _021DBDFA
mov r0, #1
strb r0, [r4, #0x13]
add r0, r4, #0
bl MOD14_021DB934
mov r0, #1
pop {r4, pc}
_021DBDFA:
mov r0, #0
pop {r4, pc}
.align 2, 0
thumb_func_start MOD14_021DBE00
MOD14_021DBE00: ; 0x021DBE00
push {r3, r4, r5, lr}
add r5, r0, #0
mov r0, #0x12
lsl r0, r0, #4
add r4, r5, #0
ldr r0, [r5, r0]
ldr r2, [r5, #8]
add r4, #8
bl FUN_0206B244
cmp r0, #0
beq _021DBE30
mov r0, #0x49
mov r1, #8
lsl r0, r0, #2
ldrsb r1, [r4, r1]
ldr r0, [r5, r0]
bl FUN_0206B938
add r0, r5, #0
bl MOD14_021DB934
mov r0, #1
pop {r3, r4, r5, pc}
_021DBE30:
mov r0, #0
pop {r3, r4, r5, pc}
thumb_func_start MOD14_021DBE34
MOD14_021DBE34: ; 0x021DBE34
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0x14]
bl FUN_020669A0
mov r0, #1
strb r0, [r4, #0x13]
add r0, r4, #0
bl MOD14_021DB934
pop {r4, pc}
.align 2, 0
thumb_func_start MOD14_021DBE4C
MOD14_021DBE4C: ; 0x021DBE4C
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r5, #0
add r4, #8
bl MOD14_021DC3CC
cmp r0, #0
bne _021DBE70
mov r0, #0x12
mov r2, #7
lsl r0, r0, #4
mov r1, #0
ldrsb r2, [r4, r2]
ldr r0, [r5, r0]
mvn r1, r1
bl FUN_0206B2FC
b _021DBE7E
_021DBE70:
mov r0, #0x49
mov r1, #8
lsl r0, r0, #2
ldrsb r1, [r4, r1]
ldr r0, [r5, r0]
bl FUN_0206B938
_021DBE7E:
add r0, r5, #0
bl MOD14_021DB934
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_start MOD14_021DBE88
MOD14_021DBE88: ; 0x021DBE88
push {r4, r5, r6, lr}
add r5, r0, #0
add r4, r1, #0
add r6, r2, #0
bl MOD14_021DBEAC
add r0, r5, #0
bl MOD14_021DC3C4
cmp r0, #4
bne _021DBEA8
add r0, r5, #0
add r1, r4, #0
add r2, r6, #0
bl MOD14_021DBFF4
_021DBEA8:
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start MOD14_021DBEAC
MOD14_021DBEAC: ; 0x021DBEAC
push {r3, r4, r5, r6, r7, lr}
add r7, r0, #0
add r5, r1, #0
add r4, r7, #0
add r0, r5, #0
add r6, r2, #0
add r4, #0x4c
bl FUN_02066A6C
str r0, [sp]
str r5, [r7, #0x4c]
add r0, r5, #0
mov r1, #5
mov r2, #0
bl FUN_020672BC
strh r0, [r4, #4]
add r0, r5, #0
mov r1, #6
mov r2, #0
bl FUN_020672BC
strh r0, [r4, #6]
mov r0, #0x47
lsl r0, r0, #2
ldr r0, [r6, r0]
bl FUN_0206BB28
ldrh r1, [r4, #4]
bl FUN_0206BB48
strh r0, [r4, #8]
add r0, r5, #0
mov r1, #0xac
mov r2, #0
bl FUN_020672BC
strb r0, [r4, #0xf]
ldrh r0, [r4, #4]
mov r1, #9
bl FUN_0206851C
add r7, r0, #0
add r0, r5, #0
mov r1, #8
mov r2, #0
bl FUN_020672BC
add r2, r0, #0
ldrh r1, [r4, #4]
add r0, r7, #0
bl FUN_02068824
strb r0, [r4, #0xa]
add r0, r5, #0
mov r1, #0xb
mov r2, #0
bl FUN_020672BC
strb r0, [r4, #0xb]
add r0, r5, #0
mov r1, #0xb0
mov r2, #0
bl FUN_020672BC
strb r0, [r4, #0xc]
add r0, r5, #0
mov r1, #0xb1
mov r2, #0
bl FUN_020672BC
strb r0, [r4, #0xd]
ldrb r0, [r4, #0xf]
cmp r0, #0
bne _021DBF68
add r0, r5, #0
mov r1, #0xaf
mov r2, #0
bl FUN_020672BC
cmp r0, #0
beq _021DBF68
mov r1, #0
add r0, r5, #0
add r2, r1, #0
bl FUN_020672BC
add r2, r0, #0
ldrh r1, [r4, #4]
add r0, r7, #0
bl FUN_02068A44
strb r0, [r4, #0xe]
b _021DBF6C
_021DBF68:
mov r0, #0xff
strb r0, [r4, #0xe]
_021DBF6C:
ldr r2, [r4, #0x14]
add r0, r5, #0
mov r1, #0x76
bl FUN_020672BC
ldrb r0, [r4, #0xf]
cmp r0, #0
bne _021DBF8C
mov r0, #0x19
lsl r0, r0, #4
ldrh r1, [r4, #4]
ldr r0, [r6, r0]
ldr r2, [r4, #0x18]
bl FUN_0200A8E0
b _021DBF9A
_021DBF8C:
ldr r0, [r4, #0x18]
ldr r1, [r4, #0x14]
bl FUN_02021A74
ldr r0, [r4, #0x14]
bl FUN_02021A4C
_021DBF9A:
ldrh r1, [r4, #6]
cmp r1, #0
beq _021DBFAA
ldr r0, [r4, #0x1c]
mov r2, #9
bl FUN_0206E768
b _021DBFB8
_021DBFAA:
mov r0, #0x63
lsl r0, r0, #2
ldr r0, [r6, r0]
ldr r2, [r4, #0x1c]
mov r1, #0x14
bl FUN_0200A8E0
_021DBFB8:
add r0, r5, #0
bl FUN_0206885C
add r1, r0, #0
mov r0, #0x65
lsl r0, r0, #2
ldr r0, [r6, r0]
ldr r2, [r4, #0x20]
bl FUN_0200A8E0
add r0, r5, #0
mov r1, #0xa
mov r2, #0
bl FUN_020672BC
add r1, r0, #0
mov r0, #0x66
lsl r0, r0, #2
ldr r0, [r6, r0]
ldr r2, [r4, #0x24]
bl FUN_0200A8E0
add r0, r7, #0
bl FUN_02068640
ldr r1, [sp]
add r0, r5, #0
bl FUN_02066A94
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD14_021DBFF4
MOD14_021DBFF4: ; 0x021DBFF4
push {r3, r4, r5, r6, r7, lr}
add r7, r0, #0
add r0, #0xa4
add r5, r2, #0
ldrb r2, [r0]
str r1, [sp]
mov r0, #0x30
add r6, r7, #0
add r1, r7, #0
mul r0, r2
add r1, #0xac
ldr r2, [sp]
add r6, #0x4c
add r4, r1, r0
str r2, [r1, r0]
ldrh r0, [r6, #4]
strh r0, [r4, #4]
ldrb r0, [r6, #0xf]
strb r0, [r4, #6]
ldrb r0, [r6, #0xa]
strh r0, [r4, #8]
ldrb r0, [r4, #6]
cmp r0, #0
ldr r0, [r4, #0x28]
beq _021DC02E
ldr r1, [r6, #0x18]
bl FUN_02021A74
b _021DC034
_021DC02E:
ldr r1, [r6, #0x14]
bl FUN_02021A74
_021DC034:
ldr r0, [r4, #0x2c]
ldr r1, [r6, #0x20]
bl FUN_02021A74
mov r1, #0x1a
lsl r1, r1, #4
ldr r0, [sp]
ldr r1, [r5, r1]
bl FUN_02069A64
mov r0, #0x1a
lsl r0, r0, #4
ldr r0, [r5, r0]
bl FUN_020669D4
add r6, r0, #0
mov r0, #0x1a
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #0xa3
mov r2, #0
bl FUN_020671BC
strh r0, [r4, #0xa]
mov r0, #0x1a
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #0xa4
mov r2, #0
bl FUN_020671BC
strh r0, [r4, #0xc]
mov r0, #0x1a
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #0xa5
mov r2, #0
bl FUN_020671BC
strh r0, [r4, #0xe]
mov r0, #0x1a
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #0xa7
mov r2, #0
bl FUN_020671BC
strh r0, [r4, #0x10]
mov r0, #0x1a
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #0xa8
mov r2, #0
bl FUN_020671BC
strh r0, [r4, #0x12]
mov r0, #0x1a
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #0xa6
mov r2, #0
bl FUN_020671BC
strh r0, [r4, #0x14]
mov r0, #0x1a
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #0x13
mov r2, #0
bl FUN_020671BC
strh r0, [r4, #0x16]
mov r0, #0x1a
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #0x14
mov r2, #0
bl FUN_020671BC
strh r0, [r4, #0x18]
mov r0, #0x1a
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #0x15
mov r2, #0
bl FUN_020671BC
strh r0, [r4, #0x1a]
mov r0, #0x1a
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #0x16
mov r2, #0
bl FUN_020671BC
strh r0, [r4, #0x1c]
mov r0, #0x1a
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #0x17
mov r2, #0
bl FUN_020671BC
strh r0, [r4, #0x1e]
mov r0, #0x1a
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #0x36
mov r2, #0
bl FUN_020671BC
strh r0, [r4, #0x20]
mov r0, #0x1a
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #0x37
mov r2, #0
bl FUN_020671BC
strh r0, [r4, #0x22]
mov r0, #0x1a
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #0x38
mov r2, #0
bl FUN_020671BC
strh r0, [r4, #0x24]
mov r0, #0x1a
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #0x39
mov r2, #0
bl FUN_020671BC
strh r0, [r4, #0x26]
mov r0, #0x1a
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #0x70
mov r2, #0
bl FUN_020671BC
strb r0, [r4, #7]
mov r0, #0x1a
lsl r0, r0, #4
ldr r0, [r5, r0]
add r1, r6, #0
bl FUN_02066A20
add r0, r7, #0
add r0, #0xa4
ldrb r0, [r0]
mov r1, #1
add r0, r7, r0
add r0, #0xa6
strb r1, [r0]
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD14_021DC170
MOD14_021DC170: ; 0x021DC170
add r1, r0, #0
add r1, #0xa4
ldrb r2, [r1]
mov r1, #1
add r0, #0xa4
eor r1, r2
strb r1, [r0]
bx lr
thumb_func_start MOD14_021DC180
MOD14_021DC180: ; 0x021DC180
add r1, r0, #0
add r1, #0xa5
ldrb r1, [r1]
add r2, r1, #1
add r1, r0, #0
add r1, #0xa5
strb r2, [r1]
add r1, r0, #0
add r1, #0xa5
ldrb r1, [r1]
cmp r1, #3
blo _021DC19E
mov r1, #0
add r0, #0xa5
strb r1, [r0]
_021DC19E:
bx lr
thumb_func_start MOD14_021DC1A0
MOD14_021DC1A0: ; 0x021DC1A0
add r0, #0xa8
str r1, [r0]
bx lr
.align 2, 0
thumb_func_start MOD14_021DC1A8
MOD14_021DC1A8: ; 0x021DC1A8
str r1, [r0, #0x4c]
bx lr
thumb_func_start MOD14_021DC1AC
MOD14_021DC1AC: ; 0x021DC1AC
push {r3, r4, lr}
sub sp, #4
add r4, r0, #0
add r0, #0x96
ldrb r1, [r0]
add r2, r4, #0
add r0, sp, #0
add r2, #0x4c
strb r1, [r0]
strb r1, [r2, #0xb]
ldr r0, [r4, #0x4c]
mov r1, #0xb
add r2, sp, #0
bl FUN_02067960
add r0, r4, #0
bl MOD14_021DC3CC
cmp r0, #0
bne _021DC1E2
add r0, r4, #0
bl MOD14_021DC3F4
cmp r0, #1
bne _021DC1E2
bl FUN_02022830
_021DC1E2:
add sp, #4
pop {r3, r4, pc}
.align 2, 0
thumb_func_start MOD14_021DC1E8
MOD14_021DC1E8: ; 0x021DC1E8
push {r0, r1, r2, r3}
push {r3, r4, r5, r6, lr}
sub sp, #4
add r5, r0, #0
add r0, sp, #0x18
add r4, r5, #0
ldrh r1, [r0, #4]
add r4, #0x4c
add r6, r2, #0
strh r1, [r4, #6]
cmp r1, #0
beq _021DC20A
ldr r0, [r4, #0x1c]
mov r2, #9
bl FUN_0206E768
b _021DC218
_021DC20A:
mov r0, #0x63
lsl r0, r0, #2
ldr r0, [r6, r0]
ldr r2, [r4, #0x1c]
mov r1, #0x14
bl FUN_0200A8E0
_021DC218:
add r0, r5, #0
bl MOD14_021DC3CC
cmp r0, #0
bne _021DC24A
add r0, r5, #0
bl MOD14_021DC3F4
cmp r0, #1
bne _021DC24A
add r0, r5, #0
bl MOD14_021DC3E0
add r2, r0, #0
add r0, sp, #0x1c
str r0, [sp]
mov r0, #0x12
lsl r0, r0, #4
mov r1, #0
ldr r0, [r6, r0]
mvn r1, r1
mov r3, #6
bl FUN_0206B598
b _021DC254
_021DC24A:
ldr r0, [r4]
mov r1, #6
add r2, sp, #0x1c
bl FUN_02067960
_021DC254:
ldr r0, [r4]
mov r1, #5
mov r2, #0
bl FUN_020672BC
ldr r1, _021DC274 ; =0x000001ED
cmp r0, r1
bne _021DC26A
ldr r0, [r4]
bl FUN_02069ECC
_021DC26A:
add sp, #4
pop {r3, r4, r5, r6}
pop {r3}
add sp, #0x10
bx r3
.align 2, 0
_021DC274: .word 0x000001ED
thumb_func_start MOD14_021DC278
MOD14_021DC278: ; 0x021DC278
add r2, r0, #0
add r2, #0x40
ldrb r2, [r2]
add r1, r0, #0
add r1, #0x40
add r3, r2, #1
add r2, r0, #0
add r2, #0x40
strb r3, [r2]
add r2, r0, #0
add r2, #0x40
ldrb r2, [r2]
cmp r2, #0x12
blo _021DC298
mov r2, #0
strb r2, [r1]
_021DC298:
ldr r3, _021DC2A0 ; =MOD14_021DB580
ldr r0, [r0]
bx r3
nop
_021DC2A0: .word MOD14_021DB580
thumb_func_start MOD14_021DC2A4
MOD14_021DC2A4: ; 0x021DC2A4
add r2, r0, #0
add r2, #0x40
ldrb r2, [r2]
add r1, r0, #0
add r1, #0x40
cmp r2, #0
beq _021DC2B6
sub r2, r2, #1
b _021DC2B8
_021DC2B6:
mov r2, #0x11
_021DC2B8:
ldr r3, _021DC2C0 ; =MOD14_021DB580
strb r2, [r1]
ldr r0, [r0]
bx r3
.align 2, 0
_021DC2C0: .word MOD14_021DB580
thumb_func_start MOD14_021DC2C4
MOD14_021DC2C4: ; 0x021DC2C4
add r3, r0, #0
add r2, r0, #0
add r2, #0x40
strb r1, [r2]
add r3, #0x40
add r1, r3, #0
ldr r3, _021DC2D8 ; =MOD14_021DB580
ldr r0, [r0]
bx r3
nop
_021DC2D8: .word MOD14_021DB580
thumb_func_start MOD14_021DC2DC
MOD14_021DC2DC: ; 0x021DC2DC
add r0, #0x98
str r1, [r0]
bx lr
.align 2, 0
thumb_func_start MOD14_021DC2E4
MOD14_021DC2E4: ; 0x021DC2E4
push {r3, r4, r5, lr}
add r5, r0, #0
add r2, r5, #0
add r2, #0x4c
add r4, r1, #0
ldrh r1, [r2, #6]
ldr r0, _021DC30C ; =0x00000112
strh r1, [r5, r0]
add r0, #0x7a
ldr r0, [r4, r0]
ldr r2, [r2, #0x1c]
mov r1, #0x14
bl FUN_0200A8E0
add r0, r5, #0
mov r1, #0
add r2, r4, #0
bl MOD14_021DC1E8
pop {r3, r4, r5, pc}
.align 2, 0
_021DC30C: .word 0x00000112
thumb_func_start MOD14_021DC310
MOD14_021DC310: ; 0x021DC310
ldr r1, _021DC318 ; =0x00000112
mov r2, #0
strh r2, [r0, r1]
bx lr
.align 2, 0
_021DC318: .word 0x00000112
thumb_func_start MOD14_021DC31C
MOD14_021DC31C: ; 0x021DC31C
push {r4, lr}
ldr r3, _021DC330 ; =0x00000112
add r2, r1, #0
ldrh r1, [r0, r3]
mov r4, #0
strh r4, [r0, r3]
bl MOD14_021DC1E8
pop {r4, pc}
nop
_021DC330: .word 0x00000112
thumb_func_start MOD14_021DC334
MOD14_021DC334: ; 0x021DC334
push {r4, lr}
add r3, r0, #0
add r3, #0x52
ldr r4, _021DC34C ; =0x00000112
add r2, r1, #0
ldrh r1, [r0, r4]
ldrh r3, [r3]
strh r3, [r0, r4]
bl MOD14_021DC1E8
pop {r4, pc}
nop
_021DC34C: .word 0x00000112
thumb_func_start MOD14_021DC350
MOD14_021DC350: ; 0x021DC350
add r0, #0x9c
strb r1, [r0]
bx lr
.align 2, 0
thumb_func_start MOD14_021DC358
MOD14_021DC358: ; 0x021DC358
add r0, #0x9e
strb r1, [r0]
bx lr
.align 2, 0
thumb_func_start MOD14_021DC360
MOD14_021DC360: ; 0x021DC360
add r0, #0x9d
strb r1, [r0]
bx lr
.align 2, 0
thumb_func_start MOD14_021DC368
MOD14_021DC368: ; 0x021DC368
add r0, #0xa0
strh r1, [r0]
bx lr
.align 2, 0
thumb_func_start MOD14_021DC370
MOD14_021DC370: ; 0x021DC370
cmp r1, #0
bne _021DC37C
mov r1, #0
add r0, #0x4a
strh r1, [r0]
bx lr
_021DC37C:
add r2, r0, #0
add r2, #0x4a
ldrh r3, [r2]
mov r2, #1
sub r1, r1, #1
lsl r2, r1
add r1, r3, #0
eor r1, r2
add r0, #0x4a
strh r1, [r0]
bx lr
.align 2, 0
thumb_func_start MOD14_021DC394
MOD14_021DC394: ; 0x021DC394
add r1, r0, #0
add r1, #0x49
ldrb r2, [r1]
mov r1, #1
add r0, #0x49
eor r1, r2
strb r1, [r0]
bx lr
thumb_func_start MOD14_021DC3A4
MOD14_021DC3A4: ; 0x021DC3A4
mov r1, #0x63
lsl r1, r1, #2
ldr r0, [r0, r1]
bx lr
thumb_func_start MOD14_021DC3AC
MOD14_021DC3AC: ; 0x021DC3AC
mov r1, #0x67
lsl r1, r1, #2
ldr r0, [r0, r1]
bx lr
thumb_func_start MOD14_021DC3B4
MOD14_021DC3B4: ; 0x021DC3B4
mov r1, #0x69
lsl r1, r1, #2
ldr r3, _021DC3C0 ; =FUN_02025084
ldr r0, [r0, r1]
bx r3
nop
_021DC3C0: .word FUN_02025084
thumb_func_start MOD14_021DC3C4
MOD14_021DC3C4: ; 0x021DC3C4
add r0, #0x48
ldrb r0, [r0]
bx lr
.align 2, 0
thumb_func_start MOD14_021DC3CC
MOD14_021DC3CC: ; 0x021DC3CC
ldrb r0, [r0, #0xc]
bx lr
thumb_func_start MOD14_021DC3D0
MOD14_021DC3D0: ; 0x021DC3D0
mov r1, #0xd
ldrsb r0, [r0, r1]
bx lr
.align 2, 0
thumb_func_start MOD14_021DC3D8
MOD14_021DC3D8: ; 0x021DC3D8
mov r1, #0xe
ldrsb r0, [r0, r1]
bx lr
.align 2, 0
thumb_func_start MOD14_021DC3E0
MOD14_021DC3E0: ; 0x021DC3E0
mov r1, #0xf
ldrsb r0, [r0, r1]
bx lr
.align 2, 0
thumb_func_start MOD14_021DC3E8
MOD14_021DC3E8: ; 0x021DC3E8
mov r1, #0x10
ldrsb r0, [r0, r1]
bx lr
.align 2, 0
thumb_func_start MOD14_021DC3F0
MOD14_021DC3F0: ; 0x021DC3F0
ldrb r0, [r0, #0x12]
bx lr
thumb_func_start MOD14_021DC3F4
MOD14_021DC3F4: ; 0x021DC3F4
ldrb r0, [r0, #0x13]
bx lr
thumb_func_start MOD14_021DC3F8
MOD14_021DC3F8: ; 0x021DC3F8
ldrb r1, [r0, #0x13]
cmp r1, #0
beq _021DC402
ldrb r0, [r0, #0x1f]
bx lr
_021DC402:
mov r0, #0
bx lr
.align 2, 0
thumb_func_start MOD14_021DC408
MOD14_021DC408: ; 0x021DC408
ldrb r1, [r0, #0x13]
cmp r1, #2
beq _021DC412
cmp r1, #4
bne _021DC416
_021DC412:
mov r0, #1
bx lr
_021DC416:
ldrb r0, [r0, #0x12]
cmp r0, #0
beq _021DC420
mov r0, #1
bx lr
_021DC420:
mov r0, #0
bx lr
thumb_func_start MOD14_021DC424
MOD14_021DC424: ; 0x021DC424
add r0, #0x40
ldrb r0, [r0]
bx lr
.align 2, 0
thumb_func_start MOD14_021DC42C
MOD14_021DC42C: ; 0x021DC42C
add r0, #0x4c
bx lr
thumb_func_start MOD14_021DC430
MOD14_021DC430: ; 0x021DC430
push {r4, lr}
add r4, r0, #0
bl MOD14_021DC408
cmp r0, #0
beq _021DC442
add r4, #0x52
ldrh r0, [r4]
pop {r4, pc}
_021DC442:
mov r0, #0
pop {r4, pc}
.align 2, 0
thumb_func_start MOD14_021DC448
MOD14_021DC448: ; 0x021DC448
add r0, #0x40
bx lr
thumb_func_start MOD14_021DC44C
MOD14_021DC44C: ; 0x021DC44C
ldr r0, [r0]
bx lr
thumb_func_start MOD14_021DC450
MOD14_021DC450: ; 0x021DC450
mov r1, #0x43
lsl r1, r1, #2
ldr r0, [r0, r1]
bx lr
thumb_func_start MOD14_021DC458
MOD14_021DC458: ; 0x021DC458
ldr r0, [r0, #0x4c]
bx lr
thumb_func_start MOD14_021DC45C
MOD14_021DC45C: ; 0x021DC45C
add r0, #0x57
ldrb r0, [r0]
bx lr
.align 2, 0
thumb_func_start MOD14_021DC464
MOD14_021DC464: ; 0x021DC464
add r0, #0x98
ldr r0, [r0]
bx lr
.align 2, 0
thumb_func_start MOD14_021DC46C
MOD14_021DC46C: ; 0x021DC46C
mov r1, #0xa0
ldrsh r0, [r0, r1]
bx lr
.align 2, 0
thumb_func_start MOD14_021DC474
MOD14_021DC474: ; 0x021DC474
add r0, #0x9e
ldrb r0, [r0]
bx lr
.align 2, 0
thumb_func_start MOD14_021DC47C
MOD14_021DC47C: ; 0x021DC47C
add r0, #0x9d
ldrb r0, [r0]
bx lr
.align 2, 0
thumb_func_start MOD14_021DC484
MOD14_021DC484: ; 0x021DC484
push {r4, lr}
add r4, r0, #0
bl MOD14_021DC3C4
cmp r0, #3
beq _021DC496
add r4, #0x4a
ldrh r0, [r4]
pop {r4, pc}
_021DC496:
mov r0, #1
pop {r4, pc}
.align 2, 0
thumb_func_start MOD14_021DC49C
MOD14_021DC49C: ; 0x021DC49C
add r0, #0x49
ldrb r0, [r0]
bx lr
.align 2, 0
thumb_func_start MOD14_021DC4A4
MOD14_021DC4A4: ; 0x021DC4A4
push {r3, r4, r5, r6}
add r0, #0x14
ldrb r6, [r0, #6]
ldrb r5, [r0, #4]
ldr r4, [sp, #0x10]
cmp r5, r6
bhi _021DC4B8
str r5, [r1]
ldrb r1, [r0, #6]
b _021DC4BC
_021DC4B8:
str r6, [r1]
ldrb r1, [r0, #4]
_021DC4BC:
str r1, [r2]
ldrb r2, [r0, #7]
ldrb r1, [r0, #5]
cmp r1, r2
bhi _021DC4D0
str r1, [r3]
ldrb r0, [r0, #7]
str r0, [r4]
pop {r3, r4, r5, r6}
bx lr
_021DC4D0:
str r2, [r3]
ldrb r0, [r0, #5]
str r0, [r4]
pop {r3, r4, r5, r6}
bx lr
.align 2, 0
thumb_func_start MOD14_021DC4DC
MOD14_021DC4DC: ; 0x021DC4DC
add r0, #0x14
ldrb r2, [r0, #4]
ldrb r1, [r0, #6]
cmp r2, r1
bne _021DC4F2
ldrb r1, [r0, #5]
ldrb r0, [r0, #7]
cmp r1, r0
bne _021DC4F2
mov r0, #1
bx lr
_021DC4F2:
mov r0, #0
bx lr
.align 2, 0
thumb_func_start MOD14_021DC4F8
MOD14_021DC4F8: ; 0x021DC4F8
push {r3, r4}
add r1, r0, #0
add r1, #0x14
mov r2, #0xd
mov r3, #0xe
ldrsb r2, [r0, r2]
ldrsb r0, [r0, r3]
ldrb r4, [r1, #4]
ldrb r3, [r1, #6]
cmp r3, r4
bls _021DC512
sub r3, r3, r4
sub r2, r2, r3
_021DC512:
ldrb r3, [r1, #5]
ldrb r1, [r1, #7]
cmp r1, r3
bls _021DC51E
sub r1, r1, r3
sub r0, r0, r1
_021DC51E:
mov r1, #6
mul r1, r0
add r0, r2, r1
pop {r3, r4}
bx lr
thumb_func_start MOD14_021DC528
MOD14_021DC528: ; 0x021DC528
add r0, #0x14
add r2, r0, r1
mov r1, #0xc
ldrsb r1, [r2, r1]
ldrb r0, [r0, #9]
sub r0, r1, r0
bx lr
.align 2, 0
thumb_func_start MOD14_021DC538
MOD14_021DC538: ; 0x021DC538
ldr r1, _021DC540 ; =0x00000112
ldrh r0, [r0, r1]
bx lr
nop
_021DC540: .word 0x00000112
thumb_func_start MOD14_021DC544
MOD14_021DC544: ; 0x021DC544
push {r4, lr}
add r4, r0, #0
bl MOD14_021DC538
cmp r0, #0
bne _021DC556
add r0, r4, #0
bl MOD14_021DC430
_021DC556:
pop {r4, pc}
thumb_func_start MOD14_021DC558
MOD14_021DC558: ; 0x021DC558
add r0, #0xa4
ldrb r0, [r0]
bx lr
.align 2, 0
thumb_func_start MOD14_021DC560
MOD14_021DC560: ; 0x021DC560
add r0, #0xa5
ldrb r0, [r0]
bx lr
.align 2, 0
thumb_func_start MOD14_021DC568
MOD14_021DC568: ; 0x021DC568
mov r2, #0x30
add r0, #0xac
mul r2, r1
add r0, r0, r2
bx lr
.align 2, 0
thumb_func_start MOD14_021DC574
MOD14_021DC574: ; 0x021DC574
add r0, r0, r1
add r0, #0xa6
ldrb r0, [r0]
bx lr
thumb_func_start MOD14_021DC57C
MOD14_021DC57C: ; 0x021DC57C
add r0, #0xa8
ldr r0, [r0]
bx lr
.align 2, 0
thumb_func_start MOD14_021DC584
MOD14_021DC584: ; 0x021DC584
add r0, #0x5b
ldrb r0, [r0]
bx lr
.align 2, 0
thumb_func_start MOD14_021DC58C
MOD14_021DC58C: ; 0x021DC58C
push {r4, r5, r6, lr}
add r5, r0, #0
add r4, r1, #0
add r6, r2, #0
bl MOD14_021DC3F4
cmp r0, #1
bne _021DC5B2
add r0, r5, #0
bl MOD14_021DC3CC
cmp r0, #0
bne _021DC5C4
ldr r0, [r5, #0x4c]
add r1, r4, #0
add r2, r6, #0
bl FUN_020672BC
pop {r4, r5, r6, pc}
_021DC5B2:
ldrb r0, [r5, #0x1f]
cmp r0, #0
bne _021DC5C4
ldr r0, [r5, #0x4c]
add r1, r4, #0
add r2, r6, #0
bl FUN_020672BC
pop {r4, r5, r6, pc}
_021DC5C4:
ldr r0, [r5, #0x4c]
add r1, r4, #0
add r2, r6, #0
bl FUN_020671BC
pop {r4, r5, r6, pc}
thumb_func_start MOD14_021DC5D0
MOD14_021DC5D0: ; 0x021DC5D0
push {r4, r5, r6, lr}
add r5, r0, #0
add r4, r1, #0
add r6, r2, #0
bl MOD14_021DC3CC
cmp r0, #0
bne _021DC5EC
ldr r0, [r5, #0x4c]
add r1, r4, #0
add r2, r6, #0
bl FUN_020672BC
pop {r4, r5, r6, pc}
_021DC5EC:
ldr r0, [r5, #8]
add r1, r4, #0
add r2, r6, #0
bl FUN_020671BC
pop {r4, r5, r6, pc}
thumb_func_start MOD14_021DC5F8
MOD14_021DC5F8: ; 0x021DC5F8
push {r3, r4, r5, r6}
ldr r4, _021DC660 ; =MOD14_021DC6C0
add r6, r0, #0
str r4, [r0, #0x30]
mov r4, #0
str r4, [r0, #0x1c]
str r1, [r0, #0xc]
str r2, [r0, #0x10]
str r1, [r0, #0x14]
str r2, [r0, #0x18]
str r1, [r0, #4]
add r4, r0, #0
str r2, [r0, #8]
lsl r2, r2, #0x18
mov r5, #0xfe
add r4, #0x28
strb r5, [r4]
lsl r4, r1, #0x18
lsr r4, r4, #0x18
add r6, #0x29
strb r4, [r6]
add r6, r0, #0
lsr r2, r2, #0x18
add r6, #0x2a
strb r2, [r6]
add r6, r0, #0
add r6, #0x2b
strb r3, [r6]
add r3, r0, #0
add r3, #0x2c
strb r5, [r3]
add r3, r0, #0
add r3, #0x2d
strb r4, [r3]
add r3, r0, #0
add r3, #0x2e
strb r2, [r3]
add r2, r0, #0
add r2, #0x2f
ldr r3, [sp, #0x10]
cmp r1, #0x80
strb r3, [r2]
bge _021DC656
mov r1, #1
str r1, [r0, #0x24]
pop {r3, r4, r5, r6}
bx lr
_021DC656:
sub r5, #0xff
str r5, [r0, #0x24]
pop {r3, r4, r5, r6}
bx lr
nop
_021DC660: .word MOD14_021DC6C0
thumb_func_start MOD14_021DC664
MOD14_021DC664: ; 0x021DC664
push {r4, r5, r6, lr}
sub sp, #8
add r5, r0, #0
add r0, #0x2c
bl FUN_02020A40
cmp r0, #1
bne _021DC6A4
add r0, r5, #0
add r0, #0x28
bl FUN_02020A40
cmp r0, #0
bne _021DC6A4
ldr r0, [r5, #0x1c]
mov r4, #1
cmp r0, #0
bne _021DC68C
add r6, r4, #0
b _021DC68E
_021DC68C:
mov r6, #0
_021DC68E:
add r0, sp, #4
add r1, sp, #0
bl FUN_02020AB0
cmp r0, #0
beq _021DC6A8
ldr r0, [sp, #4]
str r0, [r5, #0x14]
ldr r0, [sp]
str r0, [r5, #0x18]
b _021DC6A8
_021DC6A4:
mov r4, #0
add r6, r4, #0
_021DC6A8:
str r4, [r5, #0x1c]
ldr r3, [r5, #0x30]
add r0, r5, #0
add r1, r4, #0
add r2, r6, #0
blx r3
add sp, #8
pop {r4, r5, r6, pc}
thumb_func_start MOD14_021DC6B8
MOD14_021DC6B8: ; 0x021DC6B8
mov r2, #0
str r2, [r0]
str r1, [r0, #0x30]
bx lr
thumb_func_start MOD14_021DC6C0
MOD14_021DC6C0: ; 0x021DC6C0
push {r4, lr}
add r4, r0, #0
cmp r1, #0
beq _021DC6E8
cmp r2, #0
beq _021DC6E8
ldr r1, [r4, #0x14]
str r1, [r4, #4]
ldr r2, [r4, #0x18]
str r2, [r4, #8]
ldr r1, [r4, #4]
bl MOD14_021DC720
strh r0, [r4, #0x20]
ldr r1, _021DC6EC ; =MOD14_021DC6F0
add r0, r4, #0
bl MOD14_021DC6B8
mov r0, #1
pop {r4, pc}
_021DC6E8:
mov r0, #0
pop {r4, pc}
.align 2, 0
_021DC6EC: .word MOD14_021DC6F0
thumb_func_start MOD14_021DC6F0
MOD14_021DC6F0: ; 0x021DC6F0
push {r3, lr}
cmp r1, #0
bne _021DC700
ldr r1, _021DC704 ; =MOD14_021DC6C0
bl MOD14_021DC6B8
mov r0, #3
pop {r3, pc}
_021DC700:
mov r0, #2
pop {r3, pc}
.align 2, 0
_021DC704: .word MOD14_021DC6C0
thumb_func_start MOD14_021DC708
MOD14_021DC708: ; 0x021DC708
push {r4, lr}
add r4, r0, #0
ldr r1, [r4, #0x14]
ldr r2, [r4, #0x18]
bl MOD14_021DC720
add r2, r0, #0
ldrh r1, [r4, #0x20]
add r0, r4, #0
bl MOD14_021DC738
pop {r4, pc}
thumb_func_start MOD14_021DC720
MOD14_021DC720: ; 0x021DC720
add r3, r0, #0
ldr r0, [r3, #0x10]
sub r0, r2, r0
ldr r2, [r3, #0xc]
ldr r3, _021DC734 ; =0x020C5668
sub r1, r1, r2
lsl r0, r0, #0xc
lsl r1, r1, #0xc
bx r3
nop
_021DC734: .word 0x020C5668
thumb_func_start MOD14_021DC738
MOD14_021DC738: ; 0x021DC738
push {r4, r5}
sub r2, r2, r1
bpl _021DC746
mov r4, #0
mvn r4, r4
mul r2, r4
b _021DC748
_021DC746:
mov r4, #1
_021DC748:
ldr r5, _021DC768 ; =0x021E6278
mov r3, #0
_021DC74C:
ldrh r1, [r5]
cmp r2, r1
blt _021DC75A
add r3, r3, #1
add r5, r5, #2
cmp r3, #2
blo _021DC74C
_021DC75A:
ldr r1, [r0, #0x24]
add r0, r3, #0
mul r0, r4
mul r0, r1
pop {r4, r5}
bx lr
nop
_021DC768: .word 0x021E6278
thumb_func_start MOD14_021DC76C
MOD14_021DC76C: ; 0x021DC76C
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x18
add r5, r1, #0
add r7, r0, #0
ldr r1, _021DC9C8 ; =0x0000B3B4
mov r0, #0xa
add r6, r2, #0
bl AllocFromHeap
add r4, r0, #0
beq _021DC79A
mov r0, #0x16
lsl r0, r0, #4
str r5, [r4, r0]
mov r0, #0xa
bl FUN_02016B94
mov r1, #0x57
lsl r1, r1, #2
str r0, [r4, r1]
ldr r0, [r4, r1]
cmp r0, #0
bne _021DC79C
_021DC79A:
b _021DC9C2
_021DC79C:
mov r0, #0
add r1, r0, #0
mov r5, #1
bl FUN_02015F10
bl FUN_02015F1C
bl FUN_0201E6D8
bl FUN_0201E740
mov r1, #1
lsl r1, r1, #0x1a
ldr r0, [r1]
ldr r3, _021DC9CC ; =0xFFFFE0FF
and r0, r3
str r0, [r1]
ldr r0, _021DC9D0 ; =0x04001000
ldr r2, [r0]
and r2, r3
str r2, [r0]
ldr r3, [r1]
ldr r2, _021DC9D4 ; =0xFFCFFFEF
and r3, r2
ldr r2, _021DC9D8 ; =0x00100010
orr r2, r3
str r2, [r1]
ldr r2, [r0]
ldr r1, _021DC9D4 ; =0xFFCFFFEF
and r2, r1
mov r1, #0x10
orr r1, r2
str r1, [r0]
bl FUN_020B0FC0
mov r0, #0
str r0, [sp]
mov r2, #0x80
str r2, [sp, #4]
str r0, [sp, #8]
mov r3, #0x20
str r3, [sp, #0xc]
mov r1, #0xa
str r1, [sp, #0x10]
add r1, r2, #0
add r2, r0, #0
bl FUN_02009EAC
add r1, r4, #0
mov r0, #0x80
add r1, #0x1c
mov r2, #0xa
bl FUN_02008C9C
str r0, [r4, #0x18]
add r0, r4, #0
mov r2, #6
add r0, #0x1c
mov r1, #0
lsl r2, r2, #0x12
bl FUN_02008D24
mov r0, #0x51
lsl r0, r0, #2
add r0, r4, r0
bl FUN_020B19DC
mov r0, #0xa
str r0, [sp]
mov r0, #0x51
lsl r0, r0, #2
add r0, r4, r0
str r0, [sp, #4]
mov r0, #0x12
mov r1, #0x1a
add r2, r5, #0
mov r3, #0
bl FUN_02006A8C
mov r0, #0
mov r1, #0xa
bl FUN_02002C84
mov r0, #0xa
bl FUN_02006D98
mov r1, #0x56
lsl r1, r1, #2
str r0, [r4, r1]
mov r1, #0
add r2, r4, #0
add r0, r1, #0
_021DC854:
add r1, r1, #1
str r0, [r2, #8]
add r2, r2, #4
cmp r1, #4
blo _021DC854
bl MOD14_021DDEE8
mov r2, #0x59
lsl r2, r2, #2
str r4, [r7]
add r0, r4, r2
sub r2, r2, #4
ldr r2, [r4, r2]
ldr r3, [r4, #0x18]
add r1, r4, #0
bl MOD14_021E078C
and r5, r0
ldr r0, [r4, #0x18]
mov r3, #0x16
str r0, [sp]
lsl r3, r3, #4
mov r0, #0x43
ldr r2, [r4, r3]
sub r3, r3, #4
lsl r0, r0, #4
ldr r3, [r4, r3]
add r0, r4, r0
add r1, r4, #0
bl MOD14_021DDF70
mov r2, #0x16
and r5, r0
ldr r0, _021DC9DC ; =0x00005DC0
lsl r2, r2, #4
ldr r2, [r4, r2]
ldr r3, [r4, #0x18]
add r0, r4, r0
add r1, r4, #0
bl MOD14_021DF07C
mov r2, #0x16
and r5, r0
ldr r0, _021DC9E0 ; =0x00006558
lsl r2, r2, #4
ldr r2, [r4, r2]
ldr r3, [r4, #0x18]
add r0, r4, r0
add r1, r4, #0
bl MOD14_021E0C7C
and r5, r0
add r0, r6, #0
bl MOD14_021DC3A4
ldr r1, [r4, #0x18]
mov r3, #0x16
str r1, [sp]
str r0, [sp, #4]
lsl r3, r3, #4
ldr r0, _021DC9E4 ; =0x000065A0
ldr r2, [r4, r3]
sub r3, r3, #4
ldr r3, [r4, r3]
add r0, r4, r0
add r1, r4, #0
bl MOD14_021E0D90
and r5, r0
add r0, r6, #0
bl MOD14_021DC3A4
add r7, r0, #0
add r0, r6, #0
bl MOD14_021DC3AC
str r0, [sp, #0x14]
add r0, r6, #0
bl MOD14_021DC3B4
ldr r1, [r4, #0x18]
mov r3, #0x16
str r1, [sp]
ldr r1, [sp, #0x14]
str r7, [sp, #4]
str r1, [sp, #8]
str r0, [sp, #0xc]
lsl r3, r3, #4
ldr r0, _021DC9E8 ; =0x000065F4
ldr r2, [r4, r3]
sub r3, r3, #4
ldr r3, [r4, r3]
add r0, r4, r0
add r1, r4, #0
bl MOD14_021E1750
and r5, r0
ldr r0, [r4, #0x18]
mov r3, #0x16
str r0, [sp]
lsl r3, r3, #4
ldr r0, _021DC9EC ; =0x0000662C
ldr r2, [r4, r3]
sub r3, r3, #4
ldr r3, [r4, r3]
add r0, r4, r0
add r1, r4, #0
bl MOD14_021E1D38
and r5, r0
ldr r0, [r4, #0x18]
mov r3, #0x16
str r0, [sp]
lsl r3, r3, #4
ldr r0, _021DC9F0 ; =0x0000B22C
ldr r2, [r4, r3]
sub r3, r3, #4
ldr r3, [r4, r3]
add r0, r4, r0
add r1, r4, #0
bl MOD14_021E2A38
and r5, r0
ldr r0, [r4, #0x18]
mov r3, #0x16
str r0, [sp]
lsl r3, r3, #4
ldr r0, _021DC9F4 ; =0x0000B3A4
ldr r2, [r4, r3]
sub r3, r3, #4
ldr r3, [r4, r3]
add r0, r4, r0
add r1, r4, #0
bl MOD14_021E33C8
and r5, r0
ldr r0, [r4, #0x18]
mov r3, #0x16
str r0, [sp]
lsl r3, r3, #4
ldr r0, _021DC9F8 ; =0x0000B3A8
ldr r2, [r4, r3]
sub r3, r3, #4
ldr r3, [r4, r3]
add r0, r4, r0
add r1, r4, #0
bl MOD14_021E4828
and r5, r0
add r0, r6, #0
bl MOD14_021DC3A4
ldr r1, [r4, #0x18]
mov r3, #0x16
str r1, [sp]
str r0, [sp, #4]
lsl r3, r3, #4
ldr r0, _021DC9FC ; =0x0000B3AC
ldr r2, [r4, r3]
sub r3, r3, #4
ldr r3, [r4, r3]
add r0, r4, r0
add r1, r4, #0
bl MOD14_021E5044
and r5, r0
ldr r0, _021DCA00 ; =0x0000B3B0
add r1, r4, #0
str r6, [r4, r0]
ldr r0, _021DCA04 ; =MOD14_021DCA0C
mov r2, #2
bl FUN_0200CA44
str r0, [r4]
ldr r0, _021DCA08 ; =MOD14_021DCBFC
add r1, r4, #0
mov r2, #1
bl MOD14_021DDD40
str r0, [r4, #4]
add sp, #0x18
add r0, r5, #0
pop {r3, r4, r5, r6, r7, pc}
_021DC9C2:
mov r0, #0
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_021DC9C8: .word 0x0000B3B4
_021DC9CC: .word 0xFFFFE0FF
_021DC9D0: .word 0x04001000
_021DC9D4: .word 0xFFCFFFEF
_021DC9D8: .word 0x00100010
_021DC9DC: .word 0x00005DC0
_021DC9E0: .word 0x00006558
_021DC9E4: .word 0x000065A0
_021DC9E8: .word 0x000065F4
_021DC9EC: .word 0x0000662C
_021DC9F0: .word 0x0000B22C
_021DC9F4: .word 0x0000B3A4
_021DC9F8: .word 0x0000B3A8
_021DC9FC: .word 0x0000B3AC
_021DCA00: .word 0x0000B3B0
_021DCA04: .word MOD14_021DCA0C
_021DCA08: .word MOD14_021DCBFC
thumb_func_start MOD14_021DCA0C
MOD14_021DCA0C: ; 0x021DCA0C
push {r4, lr}
add r4, r1, #0
bl MOD14_021DDEF4
bl G3X_ResetMtxStack
bl G3X_ResetMtxStack_2
bl FUN_020B02C8
mov r0, #0x56
lsl r0, r0, #2
ldr r0, [r4, r0]
bl FUN_02006ED4
ldr r0, _021DCA34 ; =0x04000540
mov r1, #0
str r1, [r0]
pop {r4, pc}
nop
_021DCA34: .word 0x04000540
thumb_func_start MOD14_021DCA38
MOD14_021DCA38: ; 0x021DCA38
push {r4, lr}
add r4, r0, #0
mov r0, #0
add r1, r0, #0
bl FUN_02015F10
ldr r0, [r4]
bl FUN_0200CAB4
ldr r0, [r4, #4]
bl FUN_0200CAB4
ldr r0, _021DCB08 ; =0x0000B3AC
ldr r0, [r4, r0]
bl MOD14_021E50EC
ldr r0, _021DCB0C ; =0x0000B3A8
ldr r0, [r4, r0]
bl MOD14_021E4880
ldr r0, _021DCB10 ; =0x0000B3A4
ldr r0, [r4, r0]
bl MOD14_021E34C0
ldr r0, _021DCB14 ; =0x0000B22C
add r0, r4, r0
bl MOD14_021E2AC8
ldr r0, _021DCB18 ; =0x0000662C
add r0, r4, r0
bl MOD14_021E1F20
ldr r0, _021DCB1C ; =0x000065F4
add r0, r4, r0
bl MOD14_021E17C4
ldr r0, _021DCB20 ; =0x000065A0
add r0, r4, r0
bl MOD14_021E0E44
ldr r0, _021DCB24 ; =0x00006558
add r0, r4, r0
bl MOD14_021E0D3C
ldr r0, _021DCB28 ; =0x00005DC0
add r0, r4, r0
bl MOD14_021DF3A8
mov r0, #0x43
lsl r0, r0, #4
add r0, r4, r0
bl MOD14_021DDFEC
mov r0, #0x59
lsl r0, r0, #2
add r0, r4, r0
bl MOD14_021E089C
ldr r0, [r4, #0x18]
bl FUN_0201FD58
mov r0, #0x57
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #3
bl FUN_020178A0
mov r0, #0x57
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #2
bl FUN_020178A0
mov r0, #0x57
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #1
bl FUN_020178A0
mov r0, #0x57
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #4
bl FUN_020178A0
mov r0, #0x56
lsl r0, r0, #2
ldr r0, [r4, r0]
bl FUN_020072E8
mov r0, #0
bl FUN_02002CC0
mov r0, #0x57
lsl r0, r0, #2
ldr r0, [r4, r0]
bl FreeToHeap
add r0, r4, #0
bl FreeToHeap
bl FUN_02009FA0
pop {r4, pc}
.align 2, 0
_021DCB08: .word 0x0000B3AC
_021DCB0C: .word 0x0000B3A8
_021DCB10: .word 0x0000B3A4
_021DCB14: .word 0x0000B22C
_021DCB18: .word 0x0000662C
_021DCB1C: .word 0x000065F4
_021DCB20: .word 0x000065A0
_021DCB24: .word 0x00006558
_021DCB28: .word 0x00005DC0
thumb_func_start MOD14_021DCB2C
MOD14_021DCB2C: ; 0x021DCB2C
push {r3, r4, r5, r6, r7, lr}
add r6, r1, #0
add r5, r0, #0
cmp r6, #0x34
bhs _021DCB88
mov r4, #0
add r1, r5, #0
_021DCB3A:
ldr r0, [r1, #8]
cmp r0, #0
bne _021DCB7E
ldr r0, _021DCB90 ; =0x021E63D0
lsl r7, r6, #3
ldr r0, [r0, r7]
str r0, [sp]
ldr r1, [sp]
mov r0, #0xa
add r1, #0x14
bl AllocFromHeap
add r1, r0, #0
beq _021DCB78
str r6, [r1]
strh r4, [r1, #4]
mov r0, #0
strh r0, [r1, #6]
ldr r0, [sp]
str r5, [r1, #0xc]
add r0, r1, r0
str r0, [r1, #0x10]
ldr r0, _021DCB94 ; =0x021E63CC
mov r2, #1
ldr r0, [r0, r7]
bl FUN_0200CA44
lsl r1, r4, #2
add r1, r5, r1
str r0, [r1, #8]
pop {r3, r4, r5, r6, r7, pc}
_021DCB78:
bl ErrorHandling
pop {r3, r4, r5, r6, r7, pc}
_021DCB7E:
add r4, r4, #1
add r1, r1, #4
cmp r4, #4
blo _021DCB3A
pop {r3, r4, r5, r6, r7, pc}
_021DCB88:
bl ErrorHandling
pop {r3, r4, r5, r6, r7, pc}
nop
_021DCB90: .word 0x021E63D0
_021DCB94: .word 0x021E63CC
thumb_func_start MOD14_021DCB98
MOD14_021DCB98: ; 0x021DCB98
push {r4, r5, r6, lr}
add r5, r0, #0
add r6, r1, #0
mov r4, #0
_021DCBA0:
ldr r0, [r5, #8]
cmp r0, #0
beq _021DCBB4
bl FUN_0201B6C8
ldr r0, [r0]
cmp r0, r6
bne _021DCBB4
mov r0, #0
pop {r4, r5, r6, pc}
_021DCBB4:
add r4, r4, #1
add r5, r5, #4
cmp r4, #4
blt _021DCBA0
mov r0, #1
pop {r4, r5, r6, pc}
thumb_func_start MOD14_021DCBC0
MOD14_021DCBC0: ; 0x021DCBC0
mov r2, #0
_021DCBC2:
ldr r1, [r0, #8]
cmp r1, #0
beq _021DCBCC
mov r0, #0
bx lr
_021DCBCC:
add r2, r2, #1
add r0, r0, #4
cmp r2, #4
blt _021DCBC2
mov r0, #1
bx lr
thumb_func_start MOD14_021DCBD8
MOD14_021DCBD8: ; 0x021DCBD8
push {r3, r4, r5, lr}
add r5, r0, #0
ldrh r0, [r5, #4]
ldr r4, [r5, #0xc]
lsl r0, r0, #2
add r0, r4, r0
ldr r0, [r0, #8]
bl FUN_0200CAB4
ldrh r0, [r5, #4]
mov r1, #0
lsl r0, r0, #2
add r0, r4, r0
str r1, [r0, #8]
add r0, r5, #0
bl FreeToHeap
pop {r3, r4, r5, pc}
thumb_func_start MOD14_021DCBFC
MOD14_021DCBFC: ; 0x021DCBFC
push {r4, lr}
ldr r0, _021DCC20 ; =0x000065A0
add r4, r1, #0
add r0, r4, r0
bl MOD14_021E0EE4
ldr r0, [r4, #0x18]
bl FUN_0201FDEC
bl FUN_02009F80
ldr r3, _021DCC24 ; =0x027E0000
ldr r1, _021DCC28 ; =0x00003FF8
mov r0, #1
ldr r2, [r3, r1]
orr r0, r2
str r0, [r3, r1]
pop {r4, pc}
.align 2, 0
_021DCC20: .word 0x000065A0
_021DCC24: .word 0x027E0000
_021DCC28: .word 0x00003FF8
thumb_func_start MOD14_021DCC2C
MOD14_021DCC2C: ; 0x021DCC2C
push {r4, r5, r6, lr}
add r5, r1, #0
mov r0, #0x16
ldr r4, [r5, #0xc]
lsl r0, r0, #4
ldr r6, [r4, r0]
ldrh r0, [r5, #6]
cmp r0, #0
beq _021DCC44
cmp r0, #1
beq _021DCC7E
pop {r4, r5, r6, pc}
_021DCC44:
add r0, r4, #0
add r1, r6, #0
bl MOD14_021DDA38
add r0, r4, #0
add r1, r6, #0
bl MOD14_021DDB50
add r0, r4, #0
add r1, r6, #0
bl MOD14_021DDCF0
add r0, r6, #0
bl MOD14_021DC3C4
cmp r0, #4
beq _021DCC76
ldr r0, _021DCC9C ; =0x000065A0
add r0, r4, r0
bl MOD14_021E0EF4
ldrh r0, [r5, #6]
add r0, r0, #1
strh r0, [r5, #6]
pop {r4, r5, r6, pc}
_021DCC76:
add r0, r5, #0
bl MOD14_021DCBD8
pop {r4, r5, r6, pc}
_021DCC7E:
ldr r0, _021DCC9C ; =0x000065A0
add r0, r4, r0
bl MOD14_021E0F28
cmp r0, #0
beq _021DCC98
ldr r0, _021DCC9C ; =0x000065A0
add r0, r4, r0
bl MOD14_021E13F0
add r0, r5, #0
bl MOD14_021DCBD8
_021DCC98:
pop {r4, r5, r6, pc}
nop
_021DCC9C: .word 0x000065A0
thumb_func_start MOD14_021DCCA0
MOD14_021DCCA0: ; 0x021DCCA0
push {r3, r4, lr}
sub sp, #0xc
add r4, r1, #0
ldrh r0, [r4, #6]
cmp r0, #0
beq _021DCCB4
cmp r0, #1
beq _021DCCEA
add sp, #0xc
pop {r3, r4, pc}
_021DCCB4:
ldr r0, _021DCCFC ; =0x0000060D
bl FUN_020054C8
mov r0, #0xa
str r0, [sp]
ldr r0, _021DCD00 ; =0x04000050
mov r1, #0
mov r2, #0x3f
mov r3, #6
bl G2x_SetBlendAlpha_
mov r0, #8
str r0, [sp]
mov r1, #1
str r1, [sp, #4]
mov r0, #0xa
str r0, [sp, #8]
mov r0, #0
add r2, r1, #0
add r3, r0, #0
bl FUN_0200E1D0
ldrh r0, [r4, #6]
add sp, #0xc
add r0, r0, #1
strh r0, [r4, #6]
pop {r3, r4, pc}
_021DCCEA:
bl FUN_0200E308
cmp r0, #0
beq _021DCCF8
add r0, r4, #0
bl MOD14_021DCBD8
_021DCCF8:
add sp, #0xc
pop {r3, r4, pc}
.align 2, 0
_021DCCFC: .word 0x0000060D
_021DCD00: .word 0x04000050
thumb_func_start MOD14_021DCD04
MOD14_021DCD04: ; 0x021DCD04
push {r3, r4, lr}
sub sp, #0xc
add r4, r1, #0
ldrh r0, [r4, #6]
cmp r0, #0
beq _021DCD18
cmp r0, #1
beq _021DCD48
add sp, #0xc
pop {r3, r4, pc}
_021DCD18:
mov r0, #0xa
str r0, [sp]
ldr r0, _021DCD5C ; =0x04000050
mov r1, #0
mov r2, #0x3f
mov r3, #6
bl G2x_SetBlendAlpha_
mov r0, #6
str r0, [sp]
mov r1, #1
str r1, [sp, #4]
mov r0, #0xa
str r0, [sp, #8]
mov r0, #0
add r2, r1, #0
add r3, r0, #0
bl FUN_0200E1D0
ldrh r0, [r4, #6]
add sp, #0xc
add r0, r0, #1
strh r0, [r4, #6]
pop {r3, r4, pc}
_021DCD48:
bl FUN_0200E308
cmp r0, #0
beq _021DCD56
add r0, r4, #0
bl MOD14_021DCBD8
_021DCD56:
add sp, #0xc
pop {r3, r4, pc}
nop
_021DCD5C: .word 0x04000050
thumb_func_start MOD14_021DCD60
MOD14_021DCD60: ; 0x021DCD60
push {r3, r4, lr}
sub sp, #0xc
add r4, r1, #0
ldrh r0, [r4, #6]
cmp r0, #0
beq _021DCD74
cmp r0, #1
beq _021DCD96
add sp, #0xc
pop {r3, r4, pc}
_021DCD74:
mov r0, #6
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
mov r0, #0xa
str r0, [sp, #8]
mov r0, #0
add r1, r0, #0
add r2, r0, #0
add r3, r0, #0
bl FUN_0200E1D0
ldrh r0, [r4, #6]
add sp, #0xc
add r0, r0, #1
strh r0, [r4, #6]
pop {r3, r4, pc}
_021DCD96:
bl FUN_0200E308
cmp r0, #0
beq _021DCDA4
add r0, r4, #0
bl MOD14_021DCBD8
_021DCDA4:
add sp, #0xc
pop {r3, r4, pc}
thumb_func_start MOD14_021DCDA8
MOD14_021DCDA8: ; 0x021DCDA8
push {r3, r4, r5, r6, r7, lr}
add r4, r1, #0
mov r0, #0x16
ldr r5, [r4, #0xc]
lsl r0, r0, #4
ldr r6, [r5, r0]
ldrh r0, [r4, #6]
cmp r0, #4
bhi _021DCE5E
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021DCDC6: ; jump table
.short _021DCDD0 - _021DCDC6 - 2 ; case 0
.short _021DCDDE - _021DCDC6 - 2 ; case 1
.short _021DCDF0 - _021DCDC6 - 2 ; case 2
.short _021DCE30 - _021DCDC6 - 2 ; case 3
.short _021DCE4C - _021DCDC6 - 2 ; case 4
_021DCDD0:
ldr r0, _021DCE60 ; =0x0000B3A8
ldr r0, [r5, r0]
bl MOD14_021E4DF8
ldrh r0, [r4, #6]
add r0, r0, #1
strh r0, [r4, #6]
_021DCDDE:
ldr r0, _021DCE60 ; =0x0000B3A8
ldr r0, [r5, r0]
bl MOD14_021E4E24
cmp r0, #0
beq _021DCE5E
ldrh r0, [r4, #6]
add r0, r0, #1
strh r0, [r4, #6]
_021DCDF0:
mov r0, #0x43
add r1, r6, #0
lsl r0, r0, #4
add r1, #0x40
ldrb r0, [r5, r0]
ldrb r1, [r1]
bl MOD14_021DDD1C
add r7, r0, #0
mov r0, #0x43
lsl r0, r0, #4
add r1, r6, #0
add r0, r5, r0
add r1, #0x40
add r2, r7, #0
mov r3, #1
bl MOD14_021DE0C4
mov r0, #0x43
lsl r0, r0, #4
add r6, #0x40
add r0, r5, r0
add r1, r6, #0
add r2, r7, #0
bl MOD14_021DE2E8
ldr r0, _021DCE64 ; =0x000005DC
bl FUN_020054C8
ldrh r0, [r4, #6]
add r0, r0, #1
strh r0, [r4, #6]
_021DCE30:
mov r0, #0x43
lsl r0, r0, #4
add r0, r5, r0
bl MOD14_021DE394
cmp r0, #0
beq _021DCE5E
ldr r0, _021DCE60 ; =0x0000B3A8
ldr r0, [r5, r0]
bl MOD14_021E4BE0
ldrh r0, [r4, #6]
add r0, r0, #1
strh r0, [r4, #6]
_021DCE4C:
ldr r0, _021DCE60 ; =0x0000B3A8
ldr r0, [r5, r0]
bl MOD14_021E4C40
cmp r0, #0
beq _021DCE5E
add r0, r4, #0
bl MOD14_021DCBD8
_021DCE5E:
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_021DCE60: .word 0x0000B3A8
_021DCE64: .word 0x000005DC
thumb_func_start MOD14_021DCE68
MOD14_021DCE68: ; 0x021DCE68
push {r3, r4, r5, lr}
add r5, r1, #0
ldrh r0, [r5, #6]
ldr r4, [r5, #0xc]
cmp r0, #0
beq _021DCE7A
cmp r0, #1
beq _021DCE98
pop {r3, r4, r5, pc}
_021DCE7A:
ldr r0, _021DCEB8 ; =0x000005DC
bl FUN_020054C8
ldr r0, _021DCEBC ; =0x00005DC0
add r0, r4, r0
bl MOD14_021DF484
ldr r0, _021DCEC0 ; =0x0000B3A8
ldr r0, [r4, r0]
bl MOD14_021E4BE0
ldrh r0, [r5, #6]
add r0, r0, #1
strh r0, [r5, #6]
pop {r3, r4, r5, pc}
_021DCE98:
ldr r0, _021DCEBC ; =0x00005DC0
add r0, r4, r0
bl MOD14_021DF59C
cmp r0, #0
beq _021DCEB6
ldr r0, _021DCEC0 ; =0x0000B3A8
ldr r0, [r4, r0]
bl MOD14_021E4C40
cmp r0, #0
beq _021DCEB6
add r0, r5, #0
bl MOD14_021DCBD8
_021DCEB6:
pop {r3, r4, r5, pc}
.align 2, 0
_021DCEB8: .word 0x000005DC
_021DCEBC: .word 0x00005DC0
_021DCEC0: .word 0x0000B3A8
thumb_func_start MOD14_021DCEC4
MOD14_021DCEC4: ; 0x021DCEC4
push {r3, r4, r5, lr}
add r5, r1, #0
mov r0, #0x16
ldr r4, [r5, #0xc]
lsl r0, r0, #4
ldr r0, [r4, r0]
bl MOD14_021DC3C4
cmp r0, #4
ldrh r0, [r5, #6]
beq _021DCF08
cmp r0, #0
beq _021DCEE4
cmp r0, #1
beq _021DCEF4
pop {r3, r4, r5, pc}
_021DCEE4:
ldr r0, _021DCF38 ; =0x000065A0
add r0, r4, r0
bl MOD14_021E1450
ldrh r0, [r5, #6]
add r0, r0, #1
strh r0, [r5, #6]
pop {r3, r4, r5, pc}
_021DCEF4:
ldr r0, _021DCF38 ; =0x000065A0
add r0, r4, r0
bl MOD14_021E1674
cmp r0, #0
beq _021DCF34
add r0, r5, #0
bl MOD14_021DCBD8
pop {r3, r4, r5, pc}
_021DCF08:
cmp r0, #0
beq _021DCF12
cmp r0, #1
beq _021DCF22
pop {r3, r4, r5, pc}
_021DCF12:
ldr r0, _021DCF3C ; =0x0000B3AC
ldr r0, [r4, r0]
bl MOD14_021E526C
ldrh r0, [r5, #6]
add r0, r0, #1
strh r0, [r5, #6]
pop {r3, r4, r5, pc}
_021DCF22:
ldr r0, _021DCF3C ; =0x0000B3AC
ldr r0, [r4, r0]
bl MOD14_021E52BC
cmp r0, #0
beq _021DCF34
add r0, r5, #0
bl MOD14_021DCBD8
_021DCF34:
pop {r3, r4, r5, pc}
nop
_021DCF38: .word 0x000065A0
_021DCF3C: .word 0x0000B3AC
thumb_func_start MOD14_021DCF40
MOD14_021DCF40: ; 0x021DCF40
push {r4, r5, r6, lr}
add r5, r1, #0
mov r0, #0x16
ldr r4, [r5, #0xc]
lsl r0, r0, #4
ldr r6, [r4, r0]
add r0, r6, #0
bl MOD14_021DC3F4
cmp r0, #2
bne _021DCF60
ldr r0, _021DCF94 ; =0x00005DC0
add r0, r4, r0
bl MOD14_021DFF8C
b _021DCF84
_021DCF60:
add r0, r6, #0
bl MOD14_021DC3CC
cmp r0, #0
beq _021DCF70
cmp r0, #1
beq _021DCF7C
b _021DCF84
_021DCF70:
mov r0, #0x43
lsl r0, r0, #4
add r0, r4, r0
bl MOD14_021DEF4C
b _021DCF84
_021DCF7C:
ldr r0, _021DCF98 ; =0x0000B22C
add r0, r4, r0
bl MOD14_021E3054
_021DCF84:
ldr r0, _021DCF9C ; =0x000065A0
add r0, r4, r0
bl MOD14_021E1678
add r0, r5, #0
bl MOD14_021DCBD8
pop {r4, r5, r6, pc}
.align 2, 0
_021DCF94: .word 0x00005DC0
_021DCF98: .word 0x0000B22C
_021DCF9C: .word 0x000065A0
thumb_func_start MOD14_021DCFA0
MOD14_021DCFA0: ; 0x021DCFA0
push {r4, lr}
add r4, r1, #0
ldr r1, [r4, #0xc]
ldr r0, _021DCFB8 ; =0x000065A0
add r0, r1, r0
bl MOD14_021E14D0
add r0, r4, #0
bl MOD14_021DCBD8
pop {r4, pc}
nop
_021DCFB8: .word 0x000065A0
thumb_func_start MOD14_021DCFBC
MOD14_021DCFBC: ; 0x021DCFBC
push {r4, lr}
add r4, r1, #0
ldrh r0, [r4, #6]
ldr r1, [r4, #0xc]
cmp r0, #0
beq _021DCFCE
cmp r0, #1
beq _021DCFDE
pop {r4, pc}
_021DCFCE:
ldr r0, _021DCFF4 ; =0x00005DC0
add r0, r1, r0
bl MOD14_021DF758
ldrh r0, [r4, #6]
add r0, r0, #1
strh r0, [r4, #6]
pop {r4, pc}
_021DCFDE:
ldr r0, _021DCFF4 ; =0x00005DC0
add r0, r1, r0
bl MOD14_021DF7A0
cmp r0, #0
beq _021DCFF0
add r0, r4, #0
bl MOD14_021DCBD8
_021DCFF0:
pop {r4, pc}
nop
_021DCFF4: .word 0x00005DC0
thumb_func_start MOD14_021DCFF8
MOD14_021DCFF8: ; 0x021DCFF8
push {r4, lr}
add r4, r1, #0
ldrh r0, [r4, #6]
ldr r1, [r4, #0xc]
cmp r0, #0
beq _021DD00A
cmp r0, #1
beq _021DD01A
pop {r4, pc}
_021DD00A:
ldr r0, _021DD030 ; =0x00005DC0
add r0, r1, r0
bl MOD14_021DF890
ldrh r0, [r4, #6]
add r0, r0, #1
strh r0, [r4, #6]
pop {r4, pc}
_021DD01A:
ldr r0, _021DD030 ; =0x00005DC0
add r0, r1, r0
bl MOD14_021DF8C4
cmp r0, #0
beq _021DD02C
add r0, r4, #0
bl MOD14_021DCBD8
_021DD02C:
pop {r4, pc}
nop
_021DD030: .word 0x00005DC0
thumb_func_start MOD14_021DD034
MOD14_021DD034: ; 0x021DD034
push {r4, lr}
add r4, r1, #0
ldrh r0, [r4, #6]
ldr r1, [r4, #0xc]
cmp r0, #0
beq _021DD046
cmp r0, #1
beq _021DD056
pop {r4, pc}
_021DD046:
ldr r0, _021DD06C ; =0x00005DC0
add r0, r1, r0
bl MOD14_021DF9DC
ldrh r0, [r4, #6]
add r0, r0, #1
strh r0, [r4, #6]
pop {r4, pc}
_021DD056:
ldr r0, _021DD06C ; =0x00005DC0
add r0, r1, r0
bl MOD14_021DFA58
cmp r0, #0
beq _021DD068
add r0, r4, #0
bl MOD14_021DCBD8
_021DD068:
pop {r4, pc}
nop
_021DD06C: .word 0x00005DC0
thumb_func_start MOD14_021DD070
MOD14_021DD070: ; 0x021DD070
push {r4, lr}
add r4, r1, #0
ldrh r0, [r4, #6]
ldr r1, [r4, #0xc]
cmp r0, #0
beq _021DD082
cmp r0, #1
beq _021DD092
pop {r4, pc}
_021DD082:
ldr r0, _021DD09C ; =0x00005DC0
add r0, r1, r0
bl MOD14_021DFE28
ldrh r0, [r4, #6]
add r0, r0, #1
strh r0, [r4, #6]
pop {r4, pc}
_021DD092:
add r0, r4, #0
bl MOD14_021DCBD8
pop {r4, pc}
nop
_021DD09C: .word 0x00005DC0
thumb_func_start MOD14_021DD0A0
MOD14_021DD0A0: ; 0x021DD0A0
push {r4, lr}
add r4, r1, #0
ldrh r0, [r4, #6]
ldr r1, [r4, #0xc]
cmp r0, #0
beq _021DD0B6
cmp r0, #1
beq _021DD0C6
cmp r0, #2
beq _021DD0D6
pop {r4, pc}
_021DD0B6:
ldr r0, _021DD0EC ; =0x0000B22C
add r0, r1, r0
bl MOD14_021E2F08
ldrh r0, [r4, #6]
add r0, r0, #1
strh r0, [r4, #6]
pop {r4, pc}
_021DD0C6:
ldr r0, _021DD0EC ; =0x0000B22C
add r0, r1, r0
bl MOD14_021E2C7C
ldrh r0, [r4, #6]
add r0, r0, #1
strh r0, [r4, #6]
pop {r4, pc}
_021DD0D6:
ldr r0, _021DD0EC ; =0x0000B22C
add r0, r1, r0
bl MOD14_021E2DA4
cmp r0, #0
beq _021DD0E8
add r0, r4, #0
bl MOD14_021DCBD8
_021DD0E8:
pop {r4, pc}
nop
_021DD0EC: .word 0x0000B22C
thumb_func_start MOD14_021DD0F0
MOD14_021DD0F0: ; 0x021DD0F0
push {r4, lr}
add r4, r1, #0
ldrh r0, [r4, #6]
ldr r1, [r4, #0xc]
cmp r0, #0
beq _021DD102
cmp r0, #1
beq _021DD112
pop {r4, pc}
_021DD102:
ldr r0, _021DD128 ; =0x00005DC0
add r0, r1, r0
bl MOD14_021DFE60
ldrh r0, [r4, #6]
add r0, r0, #1
strh r0, [r4, #6]
pop {r4, pc}
_021DD112:
ldr r0, _021DD128 ; =0x00005DC0
add r0, r1, r0
bl MOD14_021DFE84
cmp r0, #0
beq _021DD124
add r0, r4, #0
bl MOD14_021DCBD8
_021DD124:
pop {r4, pc}
nop
_021DD128: .word 0x00005DC0
thumb_func_start MOD14_021DD12C
MOD14_021DD12C: ; 0x021DD12C
push {r3, r4, r5, lr}
add r5, r1, #0
ldrh r1, [r5, #6]
mov r0, #0x16
lsl r0, r0, #4
ldr r4, [r5, #0xc]
cmp r1, #0
ldr r0, [r4, r0]
beq _021DD144
cmp r1, #1
beq _021DD15C
pop {r3, r4, r5, pc}
_021DD144:
bl MOD14_021DC3E0
add r1, r0, #0
mov r0, #0x43
lsl r0, r0, #4
add r0, r4, r0
bl MOD14_021DEDD0
ldrh r0, [r5, #6]
add r0, r0, #1
strh r0, [r5, #6]
pop {r3, r4, r5, pc}
_021DD15C:
mov r0, #0x43
lsl r0, r0, #4
add r0, r4, r0
bl MOD14_021DEE08
cmp r0, #0
beq _021DD170
add r0, r5, #0
bl MOD14_021DCBD8
_021DD170:
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_start MOD14_021DD174
MOD14_021DD174: ; 0x021DD174
push {r3, r4, r5, lr}
add r5, r1, #0
ldrh r1, [r5, #6]
mov r0, #0x16
lsl r0, r0, #4
ldr r4, [r5, #0xc]
cmp r1, #0
ldr r0, [r4, r0]
beq _021DD18C
cmp r1, #1
beq _021DD1A2
pop {r3, r4, r5, pc}
_021DD18C:
bl MOD14_021DC3E8
add r1, r0, #0
ldr r0, _021DD1B8 ; =0x0000B22C
add r0, r4, r0
bl MOD14_021E2F44
ldrh r0, [r5, #6]
add r0, r0, #1
strh r0, [r5, #6]
pop {r3, r4, r5, pc}
_021DD1A2:
ldr r0, _021DD1B8 ; =0x0000B22C
add r0, r4, r0
bl MOD14_021E2F68
cmp r0, #0
beq _021DD1B4
add r0, r5, #0
bl MOD14_021DCBD8
_021DD1B4:
pop {r3, r4, r5, pc}
nop
_021DD1B8: .word 0x0000B22C
thumb_func_start MOD14_021DD1BC
MOD14_021DD1BC: ; 0x021DD1BC
push {r4, lr}
add r4, r1, #0
ldrh r0, [r4, #6]
ldr r1, [r4, #0xc]
cmp r0, #0
beq _021DD1CE
cmp r0, #1
beq _021DD1DE
pop {r4, pc}
_021DD1CE:
ldr r0, _021DD1F4 ; =0x0000662C
add r0, r1, r0
bl MOD14_021E26E4
ldrh r0, [r4, #6]
add r0, r0, #1
strh r0, [r4, #6]
pop {r4, pc}
_021DD1DE:
ldr r0, _021DD1F4 ; =0x0000662C
add r0, r1, r0
bl MOD14_021E27AC
cmp r0, #0
beq _021DD1F0
add r0, r4, #0
bl MOD14_021DCBD8
_021DD1F0:
pop {r4, pc}
nop
_021DD1F4: .word 0x0000662C
thumb_func_start MOD14_021DD1F8
MOD14_021DD1F8: ; 0x021DD1F8
push {r4, lr}
add r4, r1, #0
ldrh r0, [r4, #6]
ldr r1, [r4, #0xc]
cmp r0, #0
beq _021DD20A
cmp r0, #1
beq _021DD21A
pop {r4, pc}
_021DD20A:
ldr r0, _021DD230 ; =0x0000662C
add r0, r1, r0
bl MOD14_021E283C
ldrh r0, [r4, #6]
add r0, r0, #1
strh r0, [r4, #6]
pop {r4, pc}
_021DD21A:
ldr r0, _021DD230 ; =0x0000662C
add r0, r1, r0
bl MOD14_021E2884
cmp r0, #0
beq _021DD22C
add r0, r4, #0
bl MOD14_021DCBD8
_021DD22C:
pop {r4, pc}
nop
_021DD230: .word 0x0000662C
thumb_func_start MOD14_021DD234
MOD14_021DD234: ; 0x021DD234
push {r3, r4, r5, lr}
add r5, r1, #0
ldrh r0, [r5, #6]
ldr r4, [r5, #0xc]
cmp r0, #0
beq _021DD246
cmp r0, #1
beq _021DD256
pop {r3, r4, r5, pc}
_021DD246:
ldr r0, _021DD274 ; =0x00005DC0
add r0, r4, r0
bl MOD14_021E0050
ldrh r0, [r5, #6]
add r0, r0, #1
strh r0, [r5, #6]
pop {r3, r4, r5, pc}
_021DD256:
ldr r0, _021DD274 ; =0x00005DC0
add r0, r4, r0
bl MOD14_021E0080
cmp r0, #0
beq _021DD270
ldr r0, _021DD278 ; =0x000065A0
add r0, r4, r0
bl MOD14_021E1704
add r0, r5, #0
bl MOD14_021DCBD8
_021DD270:
pop {r3, r4, r5, pc}
nop
_021DD274: .word 0x00005DC0
_021DD278: .word 0x000065A0
thumb_func_start MOD14_021DD27C
MOD14_021DD27C: ; 0x021DD27C
push {r3, r4, r5, lr}
add r5, r1, #0
ldrh r0, [r5, #6]
ldr r4, [r5, #0xc]
cmp r0, #0
beq _021DD28E
cmp r0, #1
beq _021DD29E
pop {r3, r4, r5, pc}
_021DD28E:
ldr r0, _021DD2BC ; =0x00005DC0
add r0, r4, r0
bl MOD14_021E00F0
ldrh r0, [r5, #6]
add r0, r0, #1
strh r0, [r5, #6]
pop {r3, r4, r5, pc}
_021DD29E:
ldr r0, _021DD2BC ; =0x00005DC0
add r0, r4, r0
bl MOD14_021E0120
cmp r0, #0
beq _021DD2B8
ldr r0, _021DD2C0 ; =0x000065A0
add r0, r4, r0
bl MOD14_021E1704
add r0, r5, #0
bl MOD14_021DCBD8
_021DD2B8:
pop {r3, r4, r5, pc}
nop
_021DD2BC: .word 0x00005DC0
_021DD2C0: .word 0x000065A0
thumb_func_start MOD14_021DD2C4
MOD14_021DD2C4: ; 0x021DD2C4
push {r3, r4, r5, lr}
add r5, r1, #0
ldrh r0, [r5, #6]
ldr r4, [r5, #0xc]
cmp r0, #0
beq _021DD2D6
cmp r0, #1
beq _021DD2E6
pop {r3, r4, r5, pc}
_021DD2D6:
ldr r0, _021DD304 ; =0x00005DC0
add r0, r4, r0
bl MOD14_021E0190
ldrh r0, [r5, #6]
add r0, r0, #1
strh r0, [r5, #6]
pop {r3, r4, r5, pc}
_021DD2E6:
ldr r0, _021DD304 ; =0x00005DC0
add r0, r4, r0
bl MOD14_021E01BC
cmp r0, #0
beq _021DD300
ldr r0, _021DD308 ; =0x000065A0
add r0, r4, r0
bl MOD14_021E1704
add r0, r5, #0
bl MOD14_021DCBD8
_021DD300:
pop {r3, r4, r5, pc}
nop
_021DD304: .word 0x00005DC0
_021DD308: .word 0x000065A0
thumb_func_start MOD14_021DD30C
MOD14_021DD30C: ; 0x021DD30C
push {r3, r4, r5, r6, r7, lr}
add r7, r1, #0
mov r0, #0x16
ldr r4, [r7, #0xc]
lsl r0, r0, #4
ldr r5, [r4, r0]
add r0, r5, #0
bl MOD14_021DC430
add r6, r0, #0
add r0, r5, #0
bl MOD14_021DC3F4
cmp r0, #2
bne _021DD336
ldr r0, _021DD374 ; =0x00005DC0
add r1, r6, #0
add r0, r4, r0
bl MOD14_021DFFD8
b _021DD36C
_021DD336:
add r0, r5, #0
bl MOD14_021DC3CC
cmp r0, #0
beq _021DD358
cmp r0, #1
bne _021DD36C
add r0, r5, #0
bl MOD14_021DC3E8
add r1, r0, #0
ldr r0, _021DD378 ; =0x0000B22C
add r2, r6, #0
add r0, r4, r0
bl MOD14_021E3024
b _021DD36C
_021DD358:
add r0, r5, #0
bl MOD14_021DC3E0
add r1, r0, #0
mov r0, #0x43
lsl r0, r0, #4
add r0, r4, r0
add r2, r6, #0
bl MOD14_021DEEF8
_021DD36C:
add r0, r7, #0
bl MOD14_021DCBD8
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_021DD374: .word 0x00005DC0
_021DD378: .word 0x0000B22C
thumb_func_start MOD14_021DD37C
MOD14_021DD37C: ; 0x021DD37C
push {r3, r4, r5, lr}
add r5, r1, #0
ldrh r0, [r5, #6]
ldr r4, [r5, #0xc]
cmp r0, #0
beq _021DD38E
cmp r0, #1
beq _021DD3A6
pop {r3, r4, r5, pc}
_021DD38E:
ldr r0, _021DD3C4 ; =0x00005DC0
add r0, r4, r0
bl MOD14_021E022C
ldr r0, _021DD3C8 ; =0x0000B3A8
ldr r0, [r4, r0]
bl MOD14_021E4F58
ldrh r0, [r5, #6]
add r0, r0, #1
strh r0, [r5, #6]
pop {r3, r4, r5, pc}
_021DD3A6:
ldr r0, _021DD3C8 ; =0x0000B3A8
ldr r0, [r4, r0]
bl MOD14_021E4FA0
cmp r0, #0
beq _021DD3C0
ldr r0, _021DD3C4 ; =0x00005DC0
add r0, r4, r0
bl MOD14_021E0244
add r0, r5, #0
bl MOD14_021DCBD8
_021DD3C0:
pop {r3, r4, r5, pc}
nop
_021DD3C4: .word 0x00005DC0
_021DD3C8: .word 0x0000B3A8
thumb_func_start MOD14_021DD3CC
MOD14_021DD3CC: ; 0x021DD3CC
push {r3, r4, r5, lr}
add r5, r1, #0
mov r0, #0x16
ldr r4, [r5, #0xc]
lsl r0, r0, #4
ldr r0, [r4, r0]
bl MOD14_021DC450
add r1, r0, #0
ldr r0, _021DD3F0 ; =0x000065F4
add r0, r4, r0
bl MOD14_021E189C
add r0, r5, #0
bl MOD14_021DCBD8
pop {r3, r4, r5, pc}
nop
_021DD3F0: .word 0x000065F4
thumb_func_start MOD14_021DD3F4
MOD14_021DD3F4: ; 0x021DD3F4
push {r4, r5, r6, lr}
add r6, r1, #0
mov r0, #0x16
ldr r4, [r6, #0xc]
lsl r0, r0, #4
ldr r5, [r4, r0]
add r0, r5, #0
bl MOD14_021DC450
add r1, r0, #0
ldr r0, _021DD424 ; =0x000065F4
add r0, r4, r0
bl MOD14_021E189C
ldr r0, _021DD424 ; =0x000065F4
add r5, #0x74
add r0, r4, r0
add r1, r5, #0
bl MOD14_021E19D0
add r0, r6, #0
bl MOD14_021DCBD8
pop {r4, r5, r6, pc}
.align 2, 0
_021DD424: .word 0x000065F4
thumb_func_start MOD14_021DD428
MOD14_021DD428: ; 0x021DD428
push {r4, lr}
add r4, r1, #0
ldr r1, [r4, #0xc]
ldr r0, _021DD440 ; =0x000065F4
add r0, r1, r0
bl MOD14_021E1B44
add r0, r4, #0
bl MOD14_021DCBD8
pop {r4, pc}
nop
_021DD440: .word 0x000065F4
thumb_func_start MOD14_021DD444
MOD14_021DD444: ; 0x021DD444
push {r4, lr}
add r4, r1, #0
ldr r1, [r4, #0xc]
ldr r0, _021DD45C ; =0x000065F4
add r0, r1, r0
bl MOD14_021E1B78
add r0, r4, #0
bl MOD14_021DCBD8
pop {r4, pc}
nop
_021DD45C: .word 0x000065F4
thumb_func_start MOD14_021DD460
MOD14_021DD460: ; 0x021DD460
push {r4, r5, r6, lr}
add r6, r1, #0
mov r0, #0x16
ldr r4, [r6, #0xc]
lsl r0, r0, #4
ldr r5, [r4, r0]
ldr r0, _021DD488 ; =0x000005DC
bl FUN_020054C8
ldr r0, _021DD48C ; =0x000065F4
add r5, #0x74
add r0, r4, r0
add r1, r5, #0
bl MOD14_021E1B9C
add r0, r6, #0
bl MOD14_021DCBD8
pop {r4, r5, r6, pc}
nop
_021DD488: .word 0x000005DC
_021DD48C: .word 0x000065F4
thumb_func_start MOD14_021DD490
MOD14_021DD490: ; 0x021DD490
push {r4, r5, r6, lr}
add r6, r1, #0
mov r0, #0x16
ldr r4, [r6, #0xc]
lsl r0, r0, #4
ldr r5, [r4, r0]
ldr r0, _021DD4B8 ; =0x000005DD
bl FUN_020054C8
ldr r0, _021DD4BC ; =0x000065F4
add r5, #0x74
add r0, r4, r0
add r1, r5, #0
bl MOD14_021E1BE4
add r0, r6, #0
bl MOD14_021DCBD8
pop {r4, r5, r6, pc}
nop
_021DD4B8: .word 0x000005DD
_021DD4BC: .word 0x000065F4
thumb_func_start MOD14_021DD4C0
MOD14_021DD4C0: ; 0x021DD4C0
push {r4, lr}
add r4, r1, #0
ldrh r0, [r4, #6]
ldr r1, [r4, #0xc]
cmp r0, #0
beq _021DD4D2
cmp r0, #1
beq _021DD4E2
pop {r4, pc}
_021DD4D2:
ldr r0, _021DD4F8 ; =0x0000662C
add r0, r1, r0
bl MOD14_021E1F98
ldrh r0, [r4, #6]
add r0, r0, #1
strh r0, [r4, #6]
pop {r4, pc}
_021DD4E2:
ldr r0, _021DD4F8 ; =0x0000662C
add r0, r1, r0
bl MOD14_021E1FB8
cmp r0, #0
beq _021DD4F4
add r0, r4, #0
bl MOD14_021DCBD8
_021DD4F4:
pop {r4, pc}
nop
_021DD4F8: .word 0x0000662C
thumb_func_start MOD14_021DD4FC
MOD14_021DD4FC: ; 0x021DD4FC
push {r3, r4, r5, lr}
add r5, r1, #0
ldrh r0, [r5, #6]
ldr r4, [r5, #0xc]
cmp r0, #0
beq _021DD50E
cmp r0, #1
beq _021DD524
pop {r3, r4, r5, pc}
_021DD50E:
ldr r0, _021DD52C ; =0x000005DD
bl FUN_020054C8
ldr r0, _021DD530 ; =0x0000662C
add r0, r4, r0
bl MOD14_021E1FC0
ldrh r0, [r5, #6]
add r0, r0, #1
strh r0, [r5, #6]
pop {r3, r4, r5, pc}
_021DD524:
add r0, r5, #0
bl MOD14_021DCBD8
pop {r3, r4, r5, pc}
.align 2, 0
_021DD52C: .word 0x000005DD
_021DD530: .word 0x0000662C
thumb_func_start MOD14_021DD534
MOD14_021DD534: ; 0x021DD534
push {r4, lr}
add r4, r1, #0
ldrh r0, [r4, #6]
ldr r1, [r4, #0xc]
cmp r0, #0
beq _021DD546
cmp r0, #1
beq _021DD556
pop {r4, pc}
_021DD546:
ldr r0, _021DD56C ; =0x0000662C
add r0, r1, r0
bl MOD14_021E1FE4
ldrh r0, [r4, #6]
add r0, r0, #1
strh r0, [r4, #6]
pop {r4, pc}
_021DD556:
ldr r0, _021DD56C ; =0x0000662C
add r0, r1, r0
bl MOD14_021E1FF0
cmp r0, #0
beq _021DD568
add r0, r4, #0
bl MOD14_021DCBD8
_021DD568:
pop {r4, pc}
nop
_021DD56C: .word 0x0000662C
thumb_func_start MOD14_021DD570
MOD14_021DD570: ; 0x021DD570
push {r4, lr}
add r4, r1, #0
ldrh r0, [r4, #6]
ldr r1, [r4, #0xc]
cmp r0, #0
beq _021DD582
cmp r0, #1
beq _021DD594
pop {r4, pc}
_021DD582:
mov r0, #0x43
lsl r0, r0, #4
add r0, r1, r0
bl MOD14_021DE8C8
ldrh r0, [r4, #6]
add r0, r0, #1
strh r0, [r4, #6]
pop {r4, pc}
_021DD594:
mov r0, #0x43
lsl r0, r0, #4
add r0, r1, r0
bl MOD14_021DE8E8
cmp r0, #0
beq _021DD5A8
add r0, r4, #0
bl MOD14_021DCBD8
_021DD5A8:
pop {r4, pc}
.align 2, 0
thumb_func_start MOD14_021DD5AC
MOD14_021DD5AC: ; 0x021DD5AC
push {r4, r5, r6, lr}
add r4, r1, #0
mov r0, #0x16
ldr r5, [r4, #0xc]
lsl r0, r0, #4
ldr r6, [r5, r0]
ldrh r0, [r4, #6]
cmp r0, #3
bhi _021DD65E
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021DD5CA: ; jump table
.short _021DD5D2 - _021DD5CA - 2 ; case 0
.short _021DD5E8 - _021DD5CA - 2 ; case 1
.short _021DD626 - _021DD5CA - 2 ; case 2
.short _021DD64C - _021DD5CA - 2 ; case 3
_021DD5D2:
ldr r0, _021DD660 ; =0x000005DD
bl FUN_020054C8
ldr r0, _021DD664 ; =0x00005DC0
add r0, r5, r0
bl MOD14_021DFBB8
ldrh r0, [r4, #6]
add r0, r0, #1
strh r0, [r4, #6]
pop {r4, r5, r6, pc}
_021DD5E8:
ldr r0, _021DD664 ; =0x00005DC0
add r0, r5, r0
bl MOD14_021DFC2C
cmp r0, #0
beq _021DD65E
add r0, r6, #0
bl MOD14_021DC3CC
cmp r0, #3
beq _021DD604
cmp r0, #4
beq _021DD610
b _021DD61A
_021DD604:
ldr r0, _021DD668 ; =0x00006558
mov r1, #1
add r0, r5, r0
bl MOD14_021E0D60
b _021DD61A
_021DD610:
ldr r0, _021DD668 ; =0x00006558
mov r1, #2
add r0, r5, r0
bl MOD14_021E0D60
_021DD61A:
mov r0, #0
strh r0, [r4, #8]
ldrh r0, [r4, #6]
add r0, r0, #1
strh r0, [r4, #6]
pop {r4, r5, r6, pc}
_021DD626:
ldrh r0, [r4, #8]
add r0, r0, #1
strh r0, [r4, #8]
ldrh r0, [r4, #8]
cmp r0, #6
blo _021DD65E
ldr r0, _021DD664 ; =0x00005DC0
add r0, r5, r0
bl MOD14_021DFD24
ldr r0, _021DD668 ; =0x00006558
mov r1, #0
add r0, r5, r0
bl MOD14_021E0D60
ldrh r0, [r4, #6]
add r0, r0, #1
strh r0, [r4, #6]
pop {r4, r5, r6, pc}
_021DD64C:
ldr r0, _021DD664 ; =0x00005DC0
add r0, r5, r0
bl MOD14_021DFD80
cmp r0, #0
beq _021DD65E
add r0, r4, #0
bl MOD14_021DCBD8
_021DD65E:
pop {r4, r5, r6, pc}
.align 2, 0
_021DD660: .word 0x000005DD
_021DD664: .word 0x00005DC0
_021DD668: .word 0x00006558
thumb_func_start MOD14_021DD66C
MOD14_021DD66C: ; 0x021DD66C
push {r3, r4, r5, lr}
add r5, r1, #0
ldrh r0, [r5, #6]
ldr r4, [r5, #0xc]
cmp r0, #0
beq _021DD67E
cmp r0, #1
beq _021DD69C
pop {r3, r4, r5, pc}
_021DD67E:
ldr r0, _021DD6B0 ; =0x00000633
bl FUN_020054C8
ldr r0, _021DD6B4 ; =0x00005DC0
add r0, r4, r0
bl MOD14_021DFF1C
ldr r0, _021DD6B8 ; =0x0000B22C
add r0, r4, r0
bl MOD14_021E2B10
ldrh r0, [r5, #6]
add r0, r0, #1
strh r0, [r5, #6]
pop {r3, r4, r5, pc}
_021DD69C:
ldr r0, _021DD6B8 ; =0x0000B22C
add r0, r4, r0
bl MOD14_021E2B40
cmp r0, #0
beq _021DD6AE
add r0, r5, #0
bl MOD14_021DCBD8
_021DD6AE:
pop {r3, r4, r5, pc}
.align 2, 0
_021DD6B0: .word 0x00000633
_021DD6B4: .word 0x00005DC0
_021DD6B8: .word 0x0000B22C
thumb_func_start MOD14_021DD6BC
MOD14_021DD6BC: ; 0x021DD6BC
push {r3, r4, r5, lr}
add r4, r1, #0
ldrh r0, [r4, #6]
ldr r5, [r4, #0xc]
cmp r0, #3
bhi _021DD72C
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021DD6D4: ; jump table
.short _021DD6DC - _021DD6D4 - 2 ; case 0
.short _021DD6EA - _021DD6D4 - 2 ; case 1
.short _021DD6FC - _021DD6D4 - 2 ; case 2
.short _021DD712 - _021DD6D4 - 2 ; case 3
_021DD6DC:
ldr r0, _021DD730 ; =0x0000B3A8
ldr r0, [r5, r0]
bl MOD14_021E4DF8
ldrh r0, [r4, #6]
add r0, r0, #1
strh r0, [r4, #6]
_021DD6EA:
ldr r0, _021DD730 ; =0x0000B3A8
ldr r0, [r5, r0]
bl MOD14_021E4E24
cmp r0, #0
beq _021DD72C
ldrh r0, [r4, #6]
add r0, r0, #1
strh r0, [r4, #6]
_021DD6FC:
ldr r0, _021DD734 ; =0x00000634
bl FUN_020054C8
ldr r0, _021DD738 ; =0x0000B22C
add r0, r5, r0
bl MOD14_021E2BB0
ldrh r0, [r4, #6]
add r0, r0, #1
strh r0, [r4, #6]
pop {r3, r4, r5, pc}
_021DD712:
ldr r0, _021DD738 ; =0x0000B22C
add r0, r5, r0
bl MOD14_021E2BD0
cmp r0, #0
beq _021DD72C
ldr r0, _021DD73C ; =0x00005DC0
add r0, r5, r0
bl MOD14_021DFF54
add r0, r4, #0
bl MOD14_021DCBD8
_021DD72C:
pop {r3, r4, r5, pc}
nop
_021DD730: .word 0x0000B3A8
_021DD734: .word 0x00000634
_021DD738: .word 0x0000B22C
_021DD73C: .word 0x00005DC0
thumb_func_start MOD14_021DD740
MOD14_021DD740: ; 0x021DD740
push {r4, lr}
add r4, r1, #0
ldrh r0, [r4, #6]
ldr r1, [r4, #0xc]
cmp r0, #0
beq _021DD752
cmp r0, #1
beq _021DD762
pop {r4, pc}
_021DD752:
ldr r0, _021DD778 ; =0x0000B22C
add r0, r1, r0
bl MOD14_021E2C7C
ldrh r0, [r4, #6]
add r0, r0, #1
strh r0, [r4, #6]
pop {r4, pc}
_021DD762:
ldr r0, _021DD778 ; =0x0000B22C
add r0, r1, r0
bl MOD14_021E2DA4
cmp r0, #0
beq _021DD774
add r0, r4, #0
bl MOD14_021DCBD8
_021DD774:
pop {r4, pc}
nop
_021DD778: .word 0x0000B22C
thumb_func_start MOD14_021DD77C
MOD14_021DD77C: ; 0x021DD77C
push {r3, r4, r5, lr}
add r5, r1, #0
ldrh r1, [r5, #6]
mov r0, #0x16
lsl r0, r0, #4
ldr r4, [r5, #0xc]
cmp r1, #0
ldr r0, [r4, r0]
beq _021DD794
cmp r1, #1
beq _021DD7B4
pop {r3, r4, r5, pc}
_021DD794:
bl MOD14_021DC3CC
cmp r0, #1
bne _021DD7AC
ldr r0, _021DD7C8 ; =0x0000B22C
add r0, r4, r0
bl MOD14_021E2DB4
ldrh r0, [r5, #6]
add r0, r0, #1
strh r0, [r5, #6]
pop {r3, r4, r5, pc}
_021DD7AC:
add r0, r5, #0
bl MOD14_021DCBD8
pop {r3, r4, r5, pc}
_021DD7B4:
ldr r0, _021DD7C8 ; =0x0000B22C
add r0, r4, r0
bl MOD14_021E2E50
cmp r0, #0
beq _021DD7C6
add r0, r5, #0
bl MOD14_021DCBD8
_021DD7C6:
pop {r3, r4, r5, pc}
.align 2, 0
_021DD7C8: .word 0x0000B22C
thumb_func_start MOD14_021DD7CC
MOD14_021DD7CC: ; 0x021DD7CC
push {r3, r4, r5, lr}
add r5, r1, #0
mov r0, #0x43
ldr r4, [r5, #0xc]
lsl r0, r0, #4
add r0, r4, r0
bl MOD14_021DEEA8
ldr r0, _021DD7F4 ; =0x0000B22C
add r0, r4, r0
bl MOD14_021E2FE8
ldr r0, _021DD7F8 ; =0x00005DC0
add r0, r4, r0
bl MOD14_021DFFB4
add r0, r5, #0
bl MOD14_021DCBD8
pop {r3, r4, r5, pc}
.align 2, 0
_021DD7F4: .word 0x0000B22C
_021DD7F8: .word 0x00005DC0
thumb_func_start MOD14_021DD7FC
MOD14_021DD7FC: ; 0x021DD7FC
push {r4, r5, r6, lr}
add r5, r1, #0
mov r0, #0x16
ldr r4, [r5, #0xc]
lsl r0, r0, #4
ldr r6, [r4, r0]
ldrh r0, [r5, #6]
cmp r0, #0
beq _021DD818
cmp r0, #1
beq _021DD828
cmp r0, #2
beq _021DD854
pop {r4, r5, r6, pc}
_021DD818:
ldr r0, _021DD868 ; =0x0000B3A4
ldr r0, [r4, r0]
bl MOD14_021E37B8
ldrh r0, [r5, #6]
add r0, r0, #1
strh r0, [r5, #6]
pop {r4, r5, r6, pc}
_021DD828:
ldr r0, _021DD868 ; =0x0000B3A4
ldr r0, [r4, r0]
bl MOD14_021E389C
cmp r0, #0
beq _021DD866
add r6, #0x9c
ldrb r0, [r6]
cmp r0, #0
bne _021DD844
add r0, r5, #0
bl MOD14_021DCBD8
pop {r4, r5, r6, pc}
_021DD844:
ldr r0, _021DD868 ; =0x0000B3A4
ldr r0, [r4, r0]
bl MOD14_021E3B54
ldrh r0, [r5, #6]
add r0, r0, #1
strh r0, [r5, #6]
pop {r4, r5, r6, pc}
_021DD854:
ldr r0, _021DD868 ; =0x0000B3A4
ldr r0, [r4, r0]
bl MOD14_021E3B80
cmp r0, #0
beq _021DD866
add r0, r5, #0
bl MOD14_021DCBD8
_021DD866:
pop {r4, r5, r6, pc}
.align 2, 0
_021DD868: .word 0x0000B3A4
thumb_func_start MOD14_021DD86C
MOD14_021DD86C: ; 0x021DD86C
push {r4, lr}
add r4, r1, #0
ldrh r0, [r4, #6]
ldr r1, [r4, #0xc]
cmp r0, #0
beq _021DD87E
cmp r0, #1
beq _021DD88E
pop {r4, pc}
_021DD87E:
ldr r0, _021DD8A4 ; =0x0000B3A4
ldr r0, [r1, r0]
bl MOD14_021E3BA8
ldrh r0, [r4, #6]
add r0, r0, #1
strh r0, [r4, #6]
pop {r4, pc}
_021DD88E:
ldr r0, _021DD8A4 ; =0x0000B3A4
ldr r0, [r1, r0]
bl MOD14_021E3C60
cmp r0, #0
beq _021DD8A0
add r0, r4, #0
bl MOD14_021DCBD8
_021DD8A0:
pop {r4, pc}
nop
_021DD8A4: .word 0x0000B3A4
thumb_func_start MOD14_021DD8A8
MOD14_021DD8A8: ; 0x021DD8A8
push {r4, lr}
add r4, r1, #0
ldr r1, [r4, #0xc]
ldr r0, _021DD8C0 ; =0x0000B3A4
ldr r0, [r1, r0]
bl MOD14_021E4734
add r0, r4, #0
bl MOD14_021DCBD8
pop {r4, pc}
nop
_021DD8C0: .word 0x0000B3A4
thumb_func_start MOD14_021DD8C4
MOD14_021DD8C4: ; 0x021DD8C4
push {r4, lr}
add r4, r1, #0
ldr r1, [r4, #0xc]
ldr r0, _021DD8DC ; =0x00005DC0
add r0, r1, r0
bl MOD14_021E0008
add r0, r4, #0
bl MOD14_021DCBD8
pop {r4, pc}
nop
_021DD8DC: .word 0x00005DC0
thumb_func_start MOD14_021DD8E0
MOD14_021DD8E0: ; 0x021DD8E0
push {r3, r4, r5, lr}
add r5, r1, #0
ldr r4, [r5, #0xc]
ldr r0, _021DD900 ; =0x00005DC0
add r0, r4, r0
bl MOD14_021E002C
mov r0, #0x43
lsl r0, r0, #4
add r0, r4, r0
bl MOD14_021DEF94
add r0, r5, #0
bl MOD14_021DCBD8
pop {r3, r4, r5, pc}
.align 2, 0
_021DD900: .word 0x00005DC0
thumb_func_start MOD14_021DD904
MOD14_021DD904: ; 0x021DD904
push {r4, lr}
add r4, r1, #0
mov r0, #0x43
ldr r1, [r4, #0xc]
lsl r0, r0, #4
add r0, r1, r0
bl MOD14_021DF03C
add r0, r4, #0
bl MOD14_021DCBD8
pop {r4, pc}
thumb_func_start MOD14_021DD91C
MOD14_021DD91C: ; 0x021DD91C
push {r4, lr}
add r4, r1, #0
mov r0, #0x43
ldr r1, [r4, #0xc]
lsl r0, r0, #4
add r0, r1, r0
bl MOD14_021DEF94
add r0, r4, #0
bl MOD14_021DCBD8
pop {r4, pc}
thumb_func_start MOD14_021DD934
MOD14_021DD934: ; 0x021DD934
push {r4, lr}
add r4, r1, #0
ldrh r0, [r4, #6]
ldr r1, [r4, #0xc]
cmp r0, #0
beq _021DD946
cmp r0, #1
beq _021DD956
pop {r4, pc}
_021DD946:
ldr r0, _021DD96C ; =0x00005DC0
add r0, r1, r0
bl MOD14_021DF758
ldrh r0, [r4, #6]
add r0, r0, #1
strh r0, [r4, #6]
pop {r4, pc}
_021DD956:
ldr r0, _021DD96C ; =0x00005DC0
add r0, r1, r0
bl MOD14_021DF7A0
cmp r0, #0
beq _021DD968
add r0, r4, #0
bl MOD14_021DCBD8
_021DD968:
pop {r4, pc}
nop
_021DD96C: .word 0x00005DC0
thumb_func_start MOD14_021DD970
MOD14_021DD970: ; 0x021DD970
push {r4, lr}
add r4, r1, #0
ldr r1, [r4, #0xc]
ldr r0, _021DD988 ; =0x0000B3AC
ldr r0, [r1, r0]
mov r1, #0
bl MOD14_021E5214
add r0, r4, #0
bl MOD14_021DCBD8
pop {r4, pc}
.align 2, 0
_021DD988: .word 0x0000B3AC
thumb_func_start MOD14_021DD98C
MOD14_021DD98C: ; 0x021DD98C
push {r4, lr}
add r4, r1, #0
ldr r1, [r4, #0xc]
ldr r0, _021DD9A4 ; =0x0000B3AC
ldr r0, [r1, r0]
mov r1, #1
bl MOD14_021E5214
add r0, r4, #0
bl MOD14_021DCBD8
pop {r4, pc}
.align 2, 0
_021DD9A4: .word 0x0000B3AC
thumb_func_start MOD14_021DD9A8
MOD14_021DD9A8: ; 0x021DD9A8
push {r4, lr}
add r4, r1, #0
ldrh r0, [r4, #6]
ldr r1, [r4, #0xc]
cmp r0, #0
beq _021DD9BA
cmp r0, #1
beq _021DD9CA
pop {r4, pc}
_021DD9BA:
ldr r0, _021DD9E0 ; =0x0000B3AC
ldr r0, [r1, r0]
bl MOD14_021E52C0
ldrh r0, [r4, #6]
add r0, r0, #1
strh r0, [r4, #6]
pop {r4, pc}
_021DD9CA:
ldr r0, _021DD9E0 ; =0x0000B3AC
ldr r0, [r1, r0]
bl MOD14_021E52E0
cmp r0, #0
beq _021DD9DC
add r0, r4, #0
bl MOD14_021DCBD8
_021DD9DC:
pop {r4, pc}
nop
_021DD9E0: .word 0x0000B3AC
thumb_func_start MOD14_021DD9E4
MOD14_021DD9E4: ; 0x021DD9E4
push {r3, r4, lr}
sub sp, #0xc
add r4, r1, #0
ldrh r0, [r4, #6]
cmp r0, #0
beq _021DD9F8
cmp r0, #1
beq _021DDA20
add sp, #0xc
pop {r3, r4, pc}
_021DD9F8:
ldr r0, _021DDA34 ; =0x0000060E
bl FUN_020054C8
mov r0, #6
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
mov r0, #0xa
str r0, [sp, #8]
mov r0, #0
add r1, r0, #0
add r2, r0, #0
add r3, r0, #0
bl FUN_0200E1D0
ldrh r0, [r4, #6]
add sp, #0xc
add r0, r0, #1
strh r0, [r4, #6]
pop {r3, r4, pc}
_021DDA20:
bl FUN_0200E308
cmp r0, #0
beq _021DDA2E
add r0, r4, #0
bl MOD14_021DCBD8
_021DDA2E:
add sp, #0xc
pop {r3, r4, pc}
nop
_021DDA34: .word 0x0000060E
thumb_func_start MOD14_021DDA38
MOD14_021DDA38: ; 0x021DDA38
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r0, _021DDB20 ; =0x021E63A4
add r4, r1, #0
bl FUN_0201E66C
ldr r2, _021DDB24 ; =0x04000304
ldrh r1, [r2]
lsr r0, r2, #0xb
orr r0, r1
strh r0, [r2]
mov r0, #1
mov r1, #0
add r2, r0, #0
bl GX_SetGraphicsMode
ldr r0, _021DDB28 ; =0x021E627C
bl FUN_02016BBC
mov r0, #0x57
lsl r0, r0, #2
ldr r0, [r5, r0]
ldr r2, _021DDB2C ; =0x021E6350
mov r1, #1
mov r3, #0
bl FUN_02016C18
mov r0, #0x57
lsl r0, r0, #2
ldr r0, [r5, r0]
ldr r2, _021DDB30 ; =0x021E6334
mov r1, #2
mov r3, #0
bl FUN_02016C18
mov r0, #0x57
lsl r0, r0, #2
ldr r0, [r5, r0]
ldr r2, _021DDB34 ; =0x021E62FC
mov r1, #3
mov r3, #0
bl FUN_02016C18
add r0, r4, #0
bl MOD14_021DC3C4
cmp r0, #4
beq _021DDADA
mov r0, #0x57
lsl r0, r0, #2
ldr r0, [r5, r0]
ldr r2, _021DDB38 ; =0x021E6318
mov r1, #4
mov r3, #0
bl FUN_02016C18
mov r0, #0x57
lsl r0, r0, #2
ldr r0, [r5, r0]
ldr r2, _021DDB3C ; =0x021E62E0
mov r1, #5
mov r3, #0
bl FUN_02016C18
mov r0, #0x57
lsl r0, r0, #2
ldr r0, [r5, r0]
ldr r2, _021DDB40 ; =0x021E62C4
mov r1, #6
mov r3, #0
bl FUN_02016C18
mov r0, #0x57
lsl r0, r0, #2
ldr r0, [r5, r0]
ldr r2, _021DDB44 ; =0x021E62A8
mov r1, #7
mov r3, #0
bl FUN_02016C18
b _021DDB1A
_021DDADA:
mov r0, #0x57
lsl r0, r0, #2
ldr r0, [r5, r0]
ldr r2, _021DDB38 ; =0x021E6318
mov r1, #4
mov r3, #0
bl FUN_02016C18
mov r0, #0x57
lsl r0, r0, #2
ldr r0, [r5, r0]
ldr r2, _021DDB48 ; =0x021E6388
mov r1, #5
mov r3, #0
bl FUN_02016C18
mov r0, #0x57
lsl r0, r0, #2
ldr r0, [r5, r0]
ldr r2, _021DDB4C ; =0x021E628C
mov r1, #6
mov r3, #0
bl FUN_02016C18
mov r0, #0x57
lsl r0, r0, #2
ldr r0, [r5, r0]
ldr r2, _021DDB44 ; =0x021E62A8
mov r1, #7
mov r3, #0
bl FUN_02016C18
_021DDB1A:
bl MOD14_021DDC78
pop {r3, r4, r5, pc}
.align 2, 0
_021DDB20: .word 0x021E63A4
_021DDB24: .word 0x04000304
_021DDB28: .word 0x021E627C
_021DDB2C: .word 0x021E6350
_021DDB30: .word 0x021E6334
_021DDB34: .word 0x021E62FC
_021DDB38: .word 0x021E6318
_021DDB3C: .word 0x021E62E0
_021DDB40: .word 0x021E62C4
_021DDB44: .word 0x021E62A8
_021DDB48: .word 0x021E6388
_021DDB4C: .word 0x021E628C
thumb_func_start MOD14_021DDB50
MOD14_021DDB50: ; 0x021DDB50
push {r3, r4, r5, lr}
sub sp, #0x10
add r5, r0, #0
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
mov r3, #1
mov r2, #0x57
add r4, r1, #0
str r3, [sp, #8]
mov r0, #0xa
str r0, [sp, #0xc]
lsl r2, r2, #2
ldr r2, [r5, r2]
mov r0, #0x12
mov r1, #4
bl FUN_0200687C
mov r2, #0
str r2, [sp]
mov r0, #0x20
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x11
str r0, [sp, #0xc]
mov r0, #0x57
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #1
add r3, r2, #0
bl FUN_02018540
mov r0, #0x57
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #1
bl FUN_02017CD0
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
mov r1, #1
mov r2, #0x57
str r1, [sp, #8]
mov r0, #0xa
str r0, [sp, #0xc]
lsl r2, r2, #2
ldr r2, [r5, r2]
mov r0, #0x12
mov r3, #2
bl FUN_0200687C
mov r0, #0xe0
str r0, [sp]
mov r0, #0xa
mov r2, #0
str r0, [sp, #4]
mov r0, #0x12
mov r1, #5
add r3, r2, #0
bl FUN_02006930
add r0, r4, #0
bl MOD14_021DC3C4
cmp r0, #4
beq _021DDBF2
mov r1, #0
str r1, [sp]
str r1, [sp, #4]
mov r0, #1
str r0, [sp, #8]
mov r0, #0xa
mov r2, #0x57
str r0, [sp, #0xc]
lsl r2, r2, #2
ldr r2, [r5, r2]
mov r0, #0x12
mov r3, #2
bl FUN_020068C8
_021DDBF2:
mov r0, #0x43
lsl r0, r0, #4
add r0, r5, r0
bl MOD14_021DE014
mov r0, #0x43
lsl r0, r0, #4
add r1, r4, #0
add r0, r5, r0
add r1, #0x40
mov r2, #0
mov r3, #1
bl MOD14_021DE0C4
ldr r0, _021DDC60 ; =0x000065A0
add r0, r5, r0
bl MOD14_021E0F40
ldr r0, _021DDC64 ; =0x000065F4
add r0, r5, r0
bl MOD14_021E1818
ldr r0, _021DDC68 ; =0x0000662C
add r0, r5, r0
bl MOD14_021E1EEC
ldr r0, _021DDC6C ; =0x0000B3A4
ldr r0, [r5, r0]
bl MOD14_021E355C
ldr r0, _021DDC70 ; =0x0000B3AC
ldr r0, [r5, r0]
bl MOD14_021E5128
add r0, r4, #0
bl MOD14_021DC3CC
cmp r0, #1
bne _021DDC48
ldr r0, _021DDC74 ; =0x0000B22C
add r0, r5, r0
bl MOD14_021E2AE8
_021DDC48:
mov r0, #0x10
mov r1, #1
bl FUN_0201E6E4
mov r0, #0x10
mov r1, #1
bl FUN_0201E74C
bl GX_DispOn
add sp, #0x10
pop {r3, r4, r5, pc}
.align 2, 0
_021DDC60: .word 0x000065A0
_021DDC64: .word 0x000065F4
_021DDC68: .word 0x0000662C
_021DDC6C: .word 0x0000B3A4
_021DDC70: .word 0x0000B3AC
_021DDC74: .word 0x0000B22C
thumb_func_start MOD14_021DDC78
MOD14_021DDC78: ; 0x021DDC78
push {r3, lr}
bl FUN_020BB7F4
bl G3X_InitMtxStack
mov r0, #1
add r1, r0, #0
bl FUN_0201E6E4
ldr r0, _021DDCDC ; =0x04000008
mov r1, #3
ldrh r2, [r0]
bic r2, r1
mov r1, #1
orr r1, r2
strh r1, [r0]
add r0, #0x58
ldrh r1, [r0]
ldr r2, _021DDCE0 ; =0xFFFFCFFD
and r1, r2
strh r1, [r0]
ldrh r3, [r0]
add r1, r2, #2
and r3, r1
mov r1, #0x10
orr r1, r3
strh r1, [r0]
ldrh r3, [r0]
ldr r1, _021DDCE4 ; =0x0000CFFB
and r1, r3
strh r1, [r0]
add r1, r2, #2
ldrh r3, [r0]
lsr r2, r2, #0x11
and r3, r1
mov r1, #8
orr r1, r3
strh r1, [r0]
mov r0, #0
add r1, r0, #0
mov r3, #0x3f
str r0, [sp]
bl G3X_SetClearColor
ldr r1, _021DDCE8 ; =0x04000540
mov r0, #2
str r0, [r1]
ldr r0, _021DDCEC ; =0xBFFF0000
str r0, [r1, #0x40]
pop {r3, pc}
.align 2, 0
_021DDCDC: .word 0x04000008
_021DDCE0: .word 0xFFFFCFFD
_021DDCE4: .word 0x0000CFFB
_021DDCE8: .word 0x04000540
_021DDCEC: .word 0xBFFF0000
thumb_func_start MOD14_021DDCF0
MOD14_021DDCF0: ; 0x021DDCF0
push {r4, lr}
add r4, r0, #0
ldr r0, _021DDD10 ; =0x00005DC0
add r0, r4, r0
bl MOD14_021DF144
ldr r0, _021DDD14 ; =0x00006558
add r0, r4, r0
bl MOD14_021E0CCC
ldr r0, _021DDD18 ; =0x0000B3A8
ldr r0, [r4, r0]
bl MOD14_021E49C4
pop {r4, pc}
nop
_021DDD10: .word 0x00005DC0
_021DDD14: .word 0x00006558
_021DDD18: .word 0x0000B3A8
thumb_func_start MOD14_021DDD1C
MOD14_021DDD1C: ; 0x021DDD1C
cmp r1, r0
bls _021DDD2A
mov r2, #0x12
sub r3, r1, r0
sub r1, r2, r1
add r0, r0, r1
b _021DDD32
_021DDD2A:
mov r2, #0x12
sub r2, r2, r0
add r3, r1, r2
sub r0, r0, r1
_021DDD32:
cmp r3, r0
blt _021DDD3C
mov r0, #0
mvn r0, r0
bx lr
_021DDD3C:
mov r0, #1
bx lr
thumb_func_start MOD14_021DDD40
MOD14_021DDD40: ; 0x021DDD40
ldr r3, _021DDD44 ; =FUN_0200CA60
bx r3
.align 2, 0
_021DDD44: .word FUN_0200CA60
thumb_func_start MOD14_021DDD48
MOD14_021DDD48: ; 0x021DDD48
mov r1, #0x51
lsl r1, r1, #2
add r0, r0, r1
bx lr
thumb_func_start MOD14_021DDD50
MOD14_021DDD50: ; 0x021DDD50
mov r1, #0x59
lsl r1, r1, #2
add r0, r0, r1
bx lr
thumb_func_start MOD14_021DDD58
MOD14_021DDD58: ; 0x021DDD58
mov r1, #0x43
lsl r1, r1, #4
add r0, r0, r1
bx lr
thumb_func_start MOD14_021DDD60
MOD14_021DDD60: ; 0x021DDD60
ldr r1, _021DDD68 ; =0x0000B22C
add r0, r0, r1
bx lr
nop
_021DDD68: .word 0x0000B22C
thumb_func_start MOD14_021DDD6C
MOD14_021DDD6C: ; 0x021DDD6C
ldr r1, _021DDD74 ; =0x00005DC0
add r0, r0, r1
bx lr
nop
_021DDD74: .word 0x00005DC0
thumb_func_start MOD14_021DDD78
MOD14_021DDD78: ; 0x021DDD78
ldr r1, _021DDD80 ; =0x0000B3A8
ldr r0, [r0, r1]
bx lr
nop
_021DDD80: .word 0x0000B3A8
thumb_func_start MOD14_021DDD84
MOD14_021DDD84: ; 0x021DDD84
ldr r1, _021DDD8C ; =0x0000662C
add r0, r0, r1
bx lr
nop
_021DDD8C: .word 0x0000662C
thumb_func_start MOD14_021DDD90
MOD14_021DDD90: ; 0x021DDD90
mov r1, #0x56
lsl r1, r1, #2
ldr r0, [r0, r1]
bx lr
thumb_func_start MOD14_021DDD98
MOD14_021DDD98: ; 0x021DDD98
push {r3, lr}
mov r1, #0x16
lsl r1, r1, #4
ldr r0, [r0, r1]
bl MOD14_021DC3C4
cmp r0, #4
beq _021DDDAC
mov r0, #0
pop {r3, pc}
_021DDDAC:
mov r0, #0x2b
mvn r0, r0
pop {r3, pc}
.align 2, 0
thumb_func_start MOD14_021DDDB4
MOD14_021DDDB4: ; 0x021DDDB4
str r1, [r0]
str r2, [r0, #8]
ldr r1, [sp]
str r3, [r0, #0xc]
str r1, [r0, #0x10]
add r1, r0, #0
ldr r2, [sp, #4]
add r1, #0x20
strb r2, [r1]
mov r1, #0
str r1, [r0, #4]
str r1, [r0, #0x14]
str r1, [r0, #0x18]
str r1, [r0, #0x1c]
bx lr
.align 2, 0
thumb_func_start MOD14_021DDDD4
MOD14_021DDDD4: ; 0x021DDDD4
push {r3, r4, r5, lr}
sub sp, #0x20
str r0, [sp]
lsl r0, r2, #0xc
str r0, [sp, #8]
lsl r0, r3, #0xc
str r0, [sp, #0xc]
mov r0, #0
str r0, [sp, #0x10]
ldr r0, [sp, #0x30]
str r1, [sp, #4]
str r0, [sp, #0x14]
ldr r0, [sp, #0x34]
str r0, [sp, #0x18]
mov r0, #0xa
str r0, [sp, #0x1c]
bl OS_DisableInterrupts
add r4, r0, #0
add r0, sp, #0
bl FUN_0201FF84
add r5, r0, #0
add r0, r4, #0
bl OS_RestoreInterrupts
cmp r5, #0
beq _021DDE1E
add r0, r5, #0
mov r1, #1
bl FUN_020200BC
mov r1, #1
add r0, r5, #0
lsl r1, r1, #0xc
bl FUN_020200D8
_021DDE1E:
add r0, r5, #0
add sp, #0x20
pop {r3, r4, r5, pc}
thumb_func_start MOD14_021DDE24
MOD14_021DDE24: ; 0x021DDE24
push {r4, r5, r6, lr}
add r5, r0, #0
add r4, r1, #0
bl OS_DisableInterrupts
add r6, r0, #0
add r0, r5, #0
add r1, r4, #0
bl FUN_02020310
add r0, r6, #0
bl OS_RestoreInterrupts
pop {r4, r5, r6, pc}
thumb_func_start MOD14_021DDE40
MOD14_021DDE40: ; 0x021DDE40
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
add r6, r1, #0
lsl r1, r3, #0x1b
lsr r1, r1, #0x13
mov ip, r1
asr r1, r3, #5
lsl r1, r1, #0x1b
lsr r1, r1, #0x13
mov lr, r1
asr r1, r3, #0xa
lsl r1, r1, #0x1b
lsr r1, r1, #0x13
str r1, [sp, #4]
add r7, r0, #0
str r2, [sp]
add r1, r2, #0
sub r2, r2, #1
ldr r0, [sp, #0x20]
str r2, [sp]
cmp r1, #0
beq _021DDED6
_021DDE6C:
ldrh r1, [r7]
add r7, r7, #2
lsl r2, r1, #0x1b
lsr r4, r2, #0x13
asr r2, r1, #5
asr r1, r1, #0xa
lsl r2, r2, #0x1b
lsl r1, r1, #0x1b
lsr r3, r2, #0x13
lsr r2, r1, #0x13
mov r1, ip
sub r5, r1, r4
asr r1, r5, #3
lsr r1, r1, #0x1c
add r1, r5, r1
asr r1, r1, #4
mul r1, r0
add r5, r4, r1
mov r1, lr
sub r1, r1, r3
asr r4, r1, #3
lsr r4, r4, #0x1c
add r4, r1, r4
asr r1, r4, #4
mul r1, r0
add r3, r3, r1
ldr r1, [sp, #4]
sub r1, r1, r2
asr r4, r1, #3
lsr r4, r4, #0x1c
add r4, r1, r4
asr r1, r4, #4
mul r1, r0
add r4, r2, r1
asr r2, r5, #8
mov r1, #0x1f
and r1, r2
asr r2, r3, #8
asr r3, r4, #8
lsl r3, r3, #0x1b
lsl r2, r2, #0x1b
lsr r3, r3, #0x11
lsr r2, r2, #0x16
orr r2, r3
orr r1, r2
strh r1, [r6]
ldr r1, [sp]
add r6, r6, #2
add r2, r1, #0
sub r2, r2, #1
str r2, [sp]
cmp r1, #0
bne _021DDE6C
_021DDED6:
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start MOD14_021DDEDC
MOD14_021DDEDC: ; 0x021DDEDC
ldr r1, _021DDEE4 ; =0x0000B3B0
ldr r0, [r0, r1]
bx lr
nop
_021DDEE4: .word 0x0000B3B0
thumb_func_start MOD14_021DDEE8
MOD14_021DDEE8: ; 0x021DDEE8
ldr r0, _021DDEF0 ; =0x021E6A0C
mov r1, #0
str r1, [r0]
bx lr
.align 2, 0
_021DDEF0: .word 0x021E6A0C
thumb_func_start MOD14_021DDEF4
MOD14_021DDEF4: ; 0x021DDEF4
push {r4, r5, r6, lr}
ldr r6, _021DDF28 ; =0x021E6A0C
ldr r0, [r6]
cmp r0, #0
beq _021DDF26
mov r4, #0
cmp r0, #0
bls _021DDF20
ldr r5, _021DDF2C ; =0x021E6A10
_021DDF06:
ldr r0, [r5, #8]
bl FreeToHeap
ldr r1, [r5]
cmp r1, #0
beq _021DDF16
ldr r0, [r5, #4]
blx r1
_021DDF16:
ldr r0, [r6]
add r4, r4, #1
add r5, #0xc
cmp r4, r0
blo _021DDF06
_021DDF20:
ldr r0, _021DDF28 ; =0x021E6A0C
mov r1, #0
str r1, [r0]
_021DDF26:
pop {r4, r5, r6, pc}
.align 2, 0
_021DDF28: .word 0x021E6A0C
_021DDF2C: .word 0x021E6A10
thumb_func_start MOD14_021DDF30
MOD14_021DDF30: ; 0x021DDF30
push {r4, r5, r6, lr}
add r5, r0, #0
ldr r0, _021DDF60 ; =0x021E6A0C
add r4, r1, #0
ldr r0, [r0]
add r6, r2, #0
cmp r0, #0x20
blo _021DDF44
bl ErrorHandling
_021DDF44:
ldr r2, _021DDF60 ; =0x021E6A0C
mov r1, #0xc
ldr r0, [r2]
ldr r3, _021DDF64 ; =0x021E6A18
mul r1, r0
str r5, [r3, r1]
ldr r3, _021DDF68 ; =0x021E6A10
add r0, r0, #1
str r4, [r3, r1]
ldr r3, _021DDF6C ; =0x021E6A14
str r0, [r2]
str r6, [r3, r1]
pop {r4, r5, r6, pc}
nop
_021DDF60: .word 0x021E6A0C
_021DDF64: .word 0x021E6A18
_021DDF68: .word 0x021E6A10
_021DDF6C: .word 0x021E6A14
thumb_func_start MOD14_021DDF70
MOD14_021DDF70: ; 0x021DDF70
push {r3, r4, r5, r6, r7, lr}
add r6, r2, #0
add r5, r0, #0
add r0, r6, #0
add r0, #0x40
ldrb r0, [r0]
add r4, r1, #0
add r7, r3, #0
strb r0, [r5]
mov r0, #0xb
strb r0, [r5, #1]
mov r0, #0
strb r0, [r5, #2]
add r0, r4, #0
bl MOD14_021DDD98
ldr r1, _021DDFE0 ; =0x0000585C
str r0, [r5, r1]
ldr r2, [r5, r1]
add r0, r1, #0
add r2, #0x48
sub r0, #8
str r2, [r5, r0]
mov r0, #0x11
ldr r2, [r5, r1]
lsl r0, r0, #4
add r2, r2, r0
sub r0, r1, #4
str r2, [r5, r0]
add r0, r4, #0
bl MOD14_021DDD50
ldr r1, _021DDFE4 ; =0x00005980
mov r2, #0x1e
str r0, [r5, r1]
ldr r0, [r5, r1]
add r1, r5, #0
add r1, #0xa8
bl MOD14_021E08E4
ldr r0, _021DDFE4 ; =0x00005980
mov r1, #0x1b
lsl r1, r1, #6
ldr r0, [r5, r0]
add r1, r5, r1
mov r2, #0x1e
bl MOD14_021E08E4
ldr r1, _021DDFE8 ; =0x00005984
str r7, [r5, r1]
add r0, r1, #4
str r6, [r5, r0]
add r1, #8
str r4, [r5, r1]
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_021DDFE0: .word 0x0000585C
_021DDFE4: .word 0x00005980
_021DDFE8: .word 0x00005984
thumb_func_start MOD14_021DDFEC
MOD14_021DDFEC: ; 0x021DDFEC
push {r4, lr}
add r4, r0, #0
ldr r0, _021DE010 ; =0x00005980
add r1, r4, #0
ldr r0, [r4, r0]
add r1, #0xa8
mov r2, #0x1e
bl MOD14_021E0908
ldr r0, _021DE010 ; =0x00005980
mov r1, #0x1b
lsl r1, r1, #6
ldr r0, [r4, r0]
add r1, r4, r1
mov r2, #0x1e
bl MOD14_021E0908
pop {r4, pc}
.align 2, 0
_021DE010: .word 0x00005980
thumb_func_start MOD14_021DE014
MOD14_021DE014: ; 0x021DE014
push {r4, lr}
sub sp, #0x10
add r4, r0, #0
ldr r0, _021DE060 ; =0x00005984
mov r1, #3
ldr r0, [r4, r0]
bl FUN_02017B48
ldr r1, _021DE064 ; =0x0000585C
str r0, [r4, #0xc]
ldr r1, [r4, r1]
mov r2, #0
sub r1, r0, r1
add r3, r1, #0
ldr r0, _021DE068 ; =0x000001FF
mov r1, #3
and r3, r0
ldr r0, _021DE060 ; =0x00005984
str r3, [r4, #0xc]
ldr r0, [r4, r0]
bl FUN_020179E0
mov r3, #0
str r3, [sp]
mov r0, #0x40
str r0, [sp, #4]
mov r0, #0x20
str r0, [sp, #8]
mov r0, #9
str r0, [sp, #0xc]
ldr r0, _021DE060 ; =0x00005984
mov r1, #3
ldr r0, [r4, r0]
mov r2, #0x18
bl FUN_02018540
add sp, #0x10
pop {r4, pc}
.align 2, 0
_021DE060: .word 0x00005984
_021DE064: .word 0x0000585C
_021DE068: .word 0x000001FF
thumb_func_start MOD14_021DE06C
MOD14_021DE06C: ; 0x021DE06C
push {r4, r5, r6, r7}
ldr r5, [sp, #0x10]
cmp r1, #0
beq _021DE0A2
ldrb r6, [r0, #2]
mov r4, #1
add r7, r6, #0
mov r6, #0x69
eor r7, r4
lsl r6, r6, #2
mul r6, r7
str r6, [r2]
mov r2, #0x17
mul r2, r1
ldrb r6, [r0, #1]
mov r1, #0x3f
add r2, r6, r2
and r1, r2
str r1, [r3]
ldrb r0, [r0, #2]
eor r0, r4
lsl r1, r0, #1
ldr r0, _021DE0C0 ; =0x021E656C
ldrh r0, [r0, r1]
str r0, [r5]
pop {r4, r5, r6, r7}
bx lr
_021DE0A2:
ldrb r4, [r0, #2]
mov r1, #0x69
lsl r1, r1, #2
mul r1, r4
str r1, [r2]
ldrb r1, [r0, #1]
str r1, [r3]
ldrb r0, [r0, #2]
lsl r1, r0, #1
ldr r0, _021DE0C0 ; =0x021E656C
ldrh r0, [r0, r1]
str r0, [r5]
pop {r4, r5, r6, r7}
bx lr
nop
_021DE0C0: .word 0x021E656C
thumb_func_start MOD14_021DE0C4
MOD14_021DE0C4: ; 0x021DE0C4
push {r4, r5, r6, r7, lr}
sub sp, #0x14
add r4, r1, #0
add r6, r2, #0
add r1, sp, #8
add r7, r3, #0
str r1, [sp]
add r1, r6, #0
add r2, sp, #0x10
add r3, sp, #0xc
add r5, r0, #0
bl MOD14_021DE06C
ldr r2, [sp, #8]
add r0, r5, #0
add r1, r4, #0
add r3, r7, #0
bl MOD14_021DE138
ldr r2, [sp, #0x10]
add r0, r5, #0
add r1, r4, #0
bl MOD14_021DE1D0
ldr r0, [sp, #8]
add r1, r4, #0
str r0, [sp]
ldr r2, [sp, #0xc]
ldr r3, [sp, #0x10]
add r0, r5, #0
bl MOD14_021DE278
cmp r7, #0
beq _021DE12C
cmp r6, #0
bne _021DE12C
ldrb r3, [r5, #2]
mov r0, #0xb8
mul r0, r6
str r0, [sp]
ldr r0, _021DE130 ; =0x00000618
add r1, r5, #0
add r1, #0xa8
mul r0, r3
add r0, r1, r0
str r0, [sp, #4]
ldr r1, _021DE134 ; =0x00005980
ldrb r2, [r4]
ldr r1, [r5, r1]
add r0, r5, #0
bl MOD14_021DEB34
_021DE12C:
add sp, #0x14
pop {r4, r5, r6, r7, pc}
.align 2, 0
_021DE130: .word 0x00000618
_021DE134: .word 0x00005980
thumb_func_start MOD14_021DE138
MOD14_021DE138: ; 0x021DE138
push {r4, r5, r6, r7, lr}
sub sp, #0xc
add r4, r2, #0
ldrb r2, [r1, #1]
add r7, r0, #0
add r5, r3, #0
lsl r1, r2, #1
add r2, r2, r1
ldr r1, _021DE1C4 ; =0x021E65AE
mov r0, #0x12
ldrb r1, [r1, r2]
add r2, sp, #8
mov r3, #0xa
bl FUN_02006C08
str r0, [sp, #4]
cmp r0, #0
beq _021DE1C0
cmp r5, #0
beq _021DE176
ldr r0, [sp, #8]
mov r1, #0x20
ldr r0, [r0, #0xc]
bl DC_FlushRange
ldr r0, [sp, #8]
lsl r1, r4, #5
ldr r0, [r0, #0xc]
mov r2, #0x20
bl GX_LoadBGPltt
_021DE176:
ldr r0, _021DE1C8 ; =0x00005860
mov r6, #0
add r4, r6, #0
add r5, r7, r0
_021DE17E:
str r4, [sp]
ldr r0, [sp, #8]
ldr r3, _021DE1CC ; =0x00007FFF
ldr r0, [r0, #0xc]
add r1, r5, #0
mov r2, #0x10
bl MOD14_021DDE40
add r6, r6, #1
add r4, r4, #2
add r5, #0x20
cmp r6, #8
blt _021DE17E
mov r2, #0x10
str r2, [sp]
ldr r1, _021DE1C8 ; =0x00005860
ldr r0, [sp, #8]
add r3, r7, r1
lsl r1, r6, #5
add r1, r3, r1
ldr r0, [r0, #0xc]
ldr r3, _021DE1CC ; =0x00007FFF
bl MOD14_021DDE40
ldr r0, _021DE1C8 ; =0x00005860
mov r1, #0x12
add r0, r7, r0
lsl r1, r1, #4
bl DC_FlushRange
ldr r0, [sp, #4]
bl FreeToHeap
_021DE1C0:
add sp, #0xc
pop {r4, r5, r6, r7, pc}
.align 2, 0
_021DE1C4: .word 0x021E65AE
_021DE1C8: .word 0x00005860
_021DE1CC: .word 0x00007FFF
thumb_func_start MOD14_021DE1D0
MOD14_021DE1D0: ; 0x021DE1D0
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x18
add r7, r2, #0
mov r2, #1
add r5, r1, #0
str r2, [sp]
ldrb r3, [r5, #1]
add r6, r0, #0
mov r0, #0x12
lsl r1, r3, #1
add r3, r3, r1
ldr r1, _021DE26C ; =0x021E65AD
ldrb r1, [r1, r3]
mov r3, #0xa
bl FUN_02006C98
str r0, [sp, #0x10]
cmp r0, #0
beq _021DE268
add r1, sp, #0x14
bl FUN_020B0030
cmp r0, #0
beq _021DE262
mov r0, #0xa
mov r1, #1
bl FUN_02018FF4
add r4, r0, #0
beq _021DE250
ldr r0, _021DE270 ; =0x00005984
ldr r0, [r6, r0]
str r0, [r4]
mov r0, #0x15
strb r0, [r4, #7]
mov r0, #4
strb r0, [r4, #8]
ldr r0, [sp, #0x14]
ldr r0, [r0, #0x14]
str r0, [r4, #0xc]
mov r0, #0
ldr r1, [r5, #4]
add r2, r0, #0
bl FUN_02002E14
add r3, r0, #0
mov r0, #0xd
str r0, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, _021DE274 ; =0x00020100
mov r1, #0
str r0, [sp, #8]
str r1, [sp, #0xc]
ldr r2, [r5, #4]
lsr r5, r3, #1
mov r3, #0x54
add r0, r4, #0
sub r3, r3, r5
bl FUN_0201BDE0
add r0, r4, #0
bl FreeToHeap
_021DE250:
ldr r3, [sp, #0x14]
ldr r0, _021DE270 ; =0x00005984
str r7, [sp]
ldr r2, [r3, #0x14]
ldr r0, [r6, r0]
ldr r3, [r3, #0x10]
mov r1, #3
bl FUN_02017E14
_021DE262:
ldr r0, [sp, #0x10]
bl FreeToHeap
_021DE268:
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_021DE26C: .word 0x021E65AD
_021DE270: .word 0x00005984
_021DE274: .word 0x00020100
thumb_func_start MOD14_021DE278
MOD14_021DE278: ; 0x021DE278
push {r4, r5, r6, r7, lr}
sub sp, #0xc
add r4, r2, #0
mov r2, #1
str r2, [sp]
add r6, r3, #0
ldrb r3, [r1, #1]
add r5, r0, #0
mov r0, #0x12
lsl r1, r3, #1
add r3, r3, r1
ldr r1, _021DE2E0 ; =0x021E65AC
ldrb r1, [r1, r3]
mov r3, #0xa
bl FUN_02006C98
str r0, [sp, #4]
cmp r0, #0
beq _021DE2DC
add r1, sp, #8
bl FUN_020B0180
ldr r0, _021DE2E4 ; =0x00005984
mov r1, #3
ldr r0, [r5, r0]
bl FUN_0201886C
add r7, r0, #0
beq _021DE2C2
ldr r1, [sp, #0x20]
add r2, r4, #0
str r1, [sp]
ldr r1, [sp, #8]
add r3, r6, #0
add r1, #0xc
bl MOD14_021DECD4
_021DE2C2:
ldr r0, [sp, #4]
bl FreeToHeap
mov r0, #0
str r0, [sp]
ldr r0, _021DE2E4 ; =0x00005984
mov r3, #1
ldr r0, [r5, r0]
mov r1, #3
add r2, r7, #0
lsl r3, r3, #0xc
bl FUN_02017CE8
_021DE2DC:
add sp, #0xc
pop {r4, r5, r6, r7, pc}
.align 2, 0
_021DE2E0: .word 0x021E65AC
_021DE2E4: .word 0x00005984
thumb_func_start MOD14_021DE2E8
MOD14_021DE2E8: ; 0x021DE2E8
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
ldr r0, _021DE384 ; =0x00005984
add r4, r1, #0
ldr r0, [r5, r0]
mov r1, #3
add r6, r2, #0
bl FUN_02017B48
lsl r0, r0, #0x17
lsr r1, r0, #0xb
mov r0, #0xb8
add r7, r6, #0
mul r7, r0
lsl r0, r7, #0xc
str r1, [r5, #8]
add r1, r1, r0
str r1, [r5, #0x14]
ldr r0, [r5, #8]
sub r0, r1, r0
mov r1, #0x1e
bl _s32_div_f
str r0, [r5, #0x10]
ldr r0, [r5, #0x14]
asr r1, r0, #0xc
ldr r0, _021DE388 ; =0x000001FF
and r0, r1
str r0, [r5, #0x14]
mov r0, #0x1e
str r0, [r5, #4]
ldrb r0, [r5, #2]
strb r0, [r5, #3]
mov r0, #0x17
ldrb r1, [r5, #1]
mul r0, r6
add r0, r1, r0
strb r0, [r5, #1]
ldrb r1, [r5, #1]
mov r0, #0x3f
and r0, r1
strb r0, [r5, #1]
ldrb r1, [r5, #2]
mov r0, #1
eor r0, r1
strb r0, [r5, #2]
ldrb r1, [r4]
add r0, r5, #0
bl MOD14_021DE6B4
ldr r1, [r5, #0x10]
add r0, r5, #0
add r2, r7, #0
bl MOD14_021DE48C
ldrb r0, [r4]
mov r1, #1
mov r2, #0
str r0, [r5, #0x30]
ldrb r0, [r5, #2]
str r0, [r5, #0x34]
add r0, r5, #0
add r0, #0x98
str r1, [r0]
add r0, r5, #0
add r0, #0x9c
str r2, [r0]
ldr r0, _021DE38C ; =MOD14_021DE39C
add r1, r5, #0
bl FUN_0200CA44
ldr r0, _021DE390 ; =MOD14_021DE3E4
add r1, r5, #0
mov r2, #1
bl MOD14_021DDD40
pop {r3, r4, r5, r6, r7, pc}
nop
_021DE384: .word 0x00005984
_021DE388: .word 0x000001FF
_021DE38C: .word MOD14_021DE39C
_021DE390: .word MOD14_021DE3E4
thumb_func_start MOD14_021DE394
MOD14_021DE394: ; 0x021DE394
add r0, #0x9c
ldr r0, [r0]
bx lr
.align 2, 0
thumb_func_start MOD14_021DE39C
MOD14_021DE39C: ; 0x021DE39C
push {r3, r4, r5, lr}
add r4, r1, #0
add r5, r0, #0
ldr r0, [r4, #4]
cmp r0, #0
beq _021DE3C2
add r0, r4, #0
add r0, #0x98
ldr r0, [r0]
cmp r0, #2
bne _021DE3DC
ldr r1, [r4, #0x10]
add r0, r4, #0
bl MOD14_021DE514
mov r0, #0
add r4, #0x98
str r0, [r4]
pop {r3, r4, r5, pc}
_021DE3C2:
ldr r0, [r4, #0x14]
str r0, [r4, #0xc]
ldr r0, _021DE3E0 ; =0x00005988
ldr r0, [r4, r0]
bl MOD14_021DC424
strb r0, [r4]
add r0, r5, #0
bl FUN_0200CAB4
mov r0, #1
add r4, #0x9c
str r0, [r4]
_021DE3DC:
pop {r3, r4, r5, pc}
nop
_021DE3E0: .word 0x00005988
thumb_func_start MOD14_021DE3E4
MOD14_021DE3E4: ; 0x021DE3E4
push {r4, r5, r6, lr}
add r5, r1, #0
ldrb r3, [r5, #3]
add r6, r0, #0
mov r0, #1
add r4, r3, #0
eor r4, r0
ldr r0, [r5, #4]
cmp r0, #0
beq _021DE45C
add r0, r5, #0
add r0, #0x98
ldr r2, [r0]
cmp r2, #2
bhs _021DE47E
ldr r6, _021DE480 ; =0x00000618
add r1, #0xa8
mul r6, r3
add r0, r5, #0
add r1, r1, r6
bl MOD14_021DEBCC
ldr r1, _021DE480 ; =0x00000618
add r2, r5, #0
add r2, #0xa8
mul r1, r4
add r1, r2, r1
add r2, r5, #0
add r2, #0x98
ldr r2, [r2]
add r0, r5, #0
bl MOD14_021DEC24
add r0, r5, #0
add r0, #0x98
ldr r0, [r0]
mov r2, #0
add r1, r0, #1
add r0, r5, #0
add r0, #0x98
str r1, [r0]
ldr r0, [r5, #8]
asr r1, r0, #0xc
ldr r0, _021DE484 ; =0x000001FF
and r0, r1
str r0, [r5, #0xc]
ldr r1, [r5, #8]
ldr r0, [r5, #0x10]
add r0, r1, r0
str r0, [r5, #8]
ldr r0, _021DE488 ; =0x00005984
ldr r3, [r5, #0xc]
ldr r0, [r5, r0]
mov r1, #3
bl FUN_020179E0
ldr r0, [r5, #4]
sub r0, r0, #1
str r0, [r5, #4]
pop {r4, r5, r6, pc}
_021DE45C:
ldr r0, _021DE488 ; =0x00005984
ldr r3, [r5, #0x14]
ldr r0, [r5, r0]
mov r1, #3
mov r2, #0
bl FUN_020179E0
ldr r1, _021DE480 ; =0x00000618
add r0, r5, #0
add r5, #0xa8
mul r1, r4
add r1, r5, r1
bl MOD14_021DEC7C
add r0, r6, #0
bl FUN_0200CAB4
_021DE47E:
pop {r4, r5, r6, pc}
.align 2, 0
_021DE480: .word 0x00000618
_021DE484: .word 0x000001FF
_021DE488: .word 0x00005984
thumb_func_start MOD14_021DE48C
MOD14_021DE48C: ; 0x021DE48C
push {r4, r5, r6, r7, lr}
sub sp, #0xc
add r5, r0, #0
mov r7, #0
str r0, [sp, #8]
add r0, #0xa8
str r1, [sp]
str r2, [sp, #4]
add r6, r7, #0
add r4, r5, #0
str r0, [sp, #8]
_021DE4A2:
ldr r0, _021DE504 ; =0x0000585C
ldr r0, [r5, r0]
add r0, #0x70
add r0, r0, r6
lsl r1, r0, #0xc
ldr r0, [sp]
str r1, [r4, #0x68]
sub r1, r1, r0
add r0, r4, #0
add r0, #0x80
str r1, [r0]
ldr r0, _021DE504 ; =0x0000585C
ldr r0, [r5, r0]
add r0, #0x70
add r1, r0, r6
ldr r0, [sp, #4]
add r0, r0, r1
lsl r1, r0, #0xc
ldr r0, [sp]
str r1, [r4, #0x38]
sub r0, r1, r0
str r0, [r4, #0x50]
asr r2, r0, #0xc
ldr r0, _021DE508 ; =0x00005854
ldr r0, [r5, r0]
cmp r2, r0
ble _021DE4F6
ldr r0, _021DE50C ; =0x00005858
ldr r0, [r5, r0]
cmp r2, r0
bge _021DE4F6
ldrb r3, [r5, #3]
mov r1, #1
add r0, r5, #0
eor r1, r3
ldr r3, _021DE510 ; =0x00000618
mul r3, r1
ldr r1, [sp, #8]
add r1, r1, r3
add r3, r7, #0
bl MOD14_021DE5B4
_021DE4F6:
add r7, r7, #1
add r6, #0x18
add r4, r4, #4
cmp r7, #6
blt _021DE4A2
add sp, #0xc
pop {r4, r5, r6, r7, pc}
.align 2, 0
_021DE504: .word 0x0000585C
_021DE508: .word 0x00005854
_021DE50C: .word 0x00005858
_021DE510: .word 0x00000618
thumb_func_start MOD14_021DE514
MOD14_021DE514: ; 0x021DE514
push {r4, r5, r6, r7, lr}
sub sp, #0xc
add r5, r0, #0
add r6, r1, #0
ldrb r1, [r5, #3]
str r0, [sp]
add r0, #0xa8
str r0, [sp]
ldr r0, _021DE5A8 ; =0x00000618
add r2, r1, #0
mul r2, r0
str r2, [sp, #4]
mov r2, #1
eor r1, r2
mul r0, r1
mov r7, #0
add r4, r5, #0
str r0, [sp, #8]
_021DE538:
add r0, r4, #0
add r0, #0x80
ldr r1, _021DE5AC ; =0x00005854
ldr r0, [r0]
ldr r1, [r5, r1]
asr r0, r0, #0xc
cmp r0, r1
ble _021DE550
ldr r1, _021DE5B0 ; =0x00005858
ldr r1, [r5, r1]
cmp r0, r1
blt _021DE55E
_021DE550:
ldr r2, [sp]
ldr r1, [sp, #4]
add r0, r5, #0
add r1, r2, r1
add r2, r7, #0
bl MOD14_021DE68C
_021DE55E:
add r0, r4, #0
add r0, #0x80
ldr r0, [r0]
sub r0, r0, r6
str r0, [r4, #0x68]
sub r1, r0, r6
add r0, r4, #0
add r0, #0x80
str r1, [r0]
ldr r0, [r4, #0x50]
sub r0, r0, r6
str r0, [r4, #0x38]
sub r0, r0, r6
str r0, [r4, #0x50]
asr r2, r0, #0xc
ldr r0, _021DE5AC ; =0x00005854
ldr r0, [r5, r0]
cmp r2, r0
ble _021DE59A
ldr r0, _021DE5B0 ; =0x00005858
ldr r0, [r5, r0]
cmp r2, r0
bge _021DE59A
ldr r3, [sp]
ldr r1, [sp, #8]
add r0, r5, #0
add r1, r3, r1
add r3, r7, #0
bl MOD14_021DE5B4
_021DE59A:
add r7, r7, #1
add r4, r4, #4
cmp r7, #6
blt _021DE538
add sp, #0xc
pop {r4, r5, r6, r7, pc}
nop
_021DE5A8: .word 0x00000618
_021DE5AC: .word 0x00005854
_021DE5B0: .word 0x00005858
thumb_func_start MOD14_021DE5B4
MOD14_021DE5B4: ; 0x021DE5B4
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x38
add r5, r1, #0
ldr r1, _021DE678 ; =0x00005988
str r0, [sp, #0x1c]
ldr r0, [r0, r1]
str r2, [sp, #0x20]
add r4, r3, #0
bl MOD14_021DC44C
str r0, [sp, #0x30]
ldr r0, [sp, #0x1c]
mov r7, #0x28
ldr r1, [r0, #0x34]
mov r0, #0x1e
add r2, r1, #0
lsl r0, r0, #4
mul r2, r0
add r2, #0x58
lsl r0, r4, #4
add r0, r2, r0
str r0, [sp, #0x28]
mov r0, #0x34
mul r0, r4
add r5, r5, r0
mov r0, #0
str r0, [sp, #0x2c]
ldr r1, _021DE67C ; =0x00000CD8
ldr r0, [sp, #0x1c]
add r1, r0, r1
lsl r0, r7, #4
mul r0, r4
add r0, r1, r0
str r0, [sp, #0x24]
ldr r0, [sp, #0x1c]
lsl r1, r4, #1
add r6, r0, r1
_021DE5FE:
ldr r0, [r5]
cmp r0, #0
bne _021DE64E
ldr r1, [sp, #0x1c]
ldr r0, [sp, #0x30]
ldr r1, [r1, #0x30]
add r2, r4, #0
bl FUN_0206B5E4
mov r1, #0xab
mov r2, #0
str r0, [sp, #0x34]
bl FUN_020672BC
cmp r0, #0
beq _021DE64E
add r0, r4, #0
bl MOD14_021DEB24
ldr r1, [sp, #0x24]
ldr r2, _021DE680 ; =0x00005814
str r1, [sp]
ldr r1, [sp, #0x20]
ldr r3, _021DE684 ; =0x000057D8
str r1, [sp, #4]
str r7, [sp, #8]
mov r1, #2
str r1, [sp, #0xc]
str r0, [sp, #0x10]
ldr r0, [sp, #0x28]
ldr r1, [sp, #0x1c]
str r0, [sp, #0x14]
str r5, [sp, #0x18]
ldr r0, _021DE688 ; =0x00005980
ldrh r2, [r6, r2]
ldr r0, [r1, r0]
ldrh r3, [r6, r3]
ldr r1, [sp, #0x34]
bl MOD14_021E0A60
_021DE64E:
ldr r0, [sp, #0x28]
ldr r1, [sp, #0x24]
add r0, #0x60
str r0, [sp, #0x28]
mov r0, #0x4e
lsl r0, r0, #2
add r5, r5, r0
mov r0, #0xf
lsl r0, r0, #8
add r0, r1, r0
str r0, [sp, #0x24]
ldr r0, [sp, #0x2c]
add r6, #0xc
add r0, r0, #1
add r4, r4, #6
add r7, #0x18
str r0, [sp, #0x2c]
cmp r0, #5
blt _021DE5FE
add sp, #0x38
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_021DE678: .word 0x00005988
_021DE67C: .word 0x00000CD8
_021DE680: .word 0x00005814
_021DE684: .word 0x000057D8
_021DE688: .word 0x00005980
thumb_func_start MOD14_021DE68C
MOD14_021DE68C: ; 0x021DE68C
push {r3, r4, r5, r6, r7, lr}
mov r0, #0x34
mov r4, #0
mov r7, #0x4e
add r5, r1, #0
mul r0, r2
add r5, r5, r0
add r6, r4, #0
lsl r7, r7, #2
_021DE69E:
ldr r0, [r5]
cmp r0, #0
beq _021DE6AA
bl FUN_0201FFC8
str r6, [r5]
_021DE6AA:
add r4, r4, #1
add r5, r5, r7
cmp r4, #5
blt _021DE69E
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD14_021DE6B4
MOD14_021DE6B4: ; 0x021DE6B4
push {r4, r5, r6, r7, lr}
sub sp, #0xc
str r1, [sp, #4]
ldr r1, _021DE71C ; =0x00005988
str r0, [sp]
ldr r0, [r0, r1]
bl MOD14_021DC44C
ldr r4, [sp]
str r0, [sp, #8]
ldr r1, _021DE720 ; =0x00000CD8
add r0, r4, #0
mov r6, #0
add r5, r0, r1
_021DE6D0:
ldr r0, [sp, #8]
ldr r1, [sp, #4]
add r2, r6, #0
bl FUN_0206B5E4
mov r1, #5
mov r2, #0
add r7, r0, #0
bl FUN_020672BC
cmp r0, #0
beq _021DE70A
ldr r1, _021DE724 ; =0x00005814
strh r0, [r4, r1]
add r0, r7, #0
bl FUN_0206B688
ldr r1, _021DE728 ; =0x000057D8
mov r3, #0xa
strh r0, [r4, r1]
ldr r2, _021DE728 ; =0x000057D8
ldr r1, [sp]
ldr r0, _021DE72C ; =0x00005980
ldrh r2, [r4, r2]
ldr r0, [r1, r0]
add r1, r5, #0
lsl r3, r3, #6
bl MOD14_021E0BAC
_021DE70A:
mov r0, #0xa
lsl r0, r0, #6
add r6, r6, #1
add r4, r4, #2
add r5, r5, r0
cmp r6, #0x1e
blo _021DE6D0
add sp, #0xc
pop {r4, r5, r6, r7, pc}
.align 2, 0
_021DE71C: .word 0x00005988
_021DE720: .word 0x00000CD8
_021DE724: .word 0x00005814
_021DE728: .word 0x000057D8
_021DE72C: .word 0x00005980
thumb_func_start MOD14_021DE730
MOD14_021DE730: ; 0x021DE730
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r6, r1, #0
mov r1, #0
add r0, #0xa3
strb r1, [r0]
mov r0, #0xa
mov r1, #0x10
add r7, r2, #0
str r3, [sp]
bl AllocFromHeap
add r4, r0, #0
beq _021DE782
str r5, [r4]
strh r6, [r4, #4]
ldr r0, [sp]
strh r7, [r4, #6]
str r0, [r4, #0xc]
mov r0, #2
strh r0, [r4, #0xa]
cmp r7, r6
ble _021DE762
mov r0, #1
b _021DE764
_021DE762:
sub r0, r0, #3
_021DE764:
strh r0, [r4, #8]
ldr r0, _021DE784 ; =MOD14_021DE788
add r1, r4, #0
mov r2, #0
bl MOD14_021DDD40
cmp r0, #0
beq _021DE77C
mov r0, #1
add r5, #0xa3
strb r0, [r5]
pop {r3, r4, r5, r6, r7, pc}
_021DE77C:
add r0, r4, #0
bl FreeToHeap
_021DE782:
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_021DE784: .word MOD14_021DE788
thumb_func_start MOD14_021DE788
MOD14_021DE788: ; 0x021DE788
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
mov r0, #0xa
ldrsh r0, [r4, r0]
cmp r0, #0
beq _021DE79C
sub r0, r0, #1
strh r0, [r4, #0xa]
pop {r3, r4, r5, pc}
_021DE79C:
mov r2, #4
mov r1, #6
ldrsh r0, [r4, r2]
ldrsh r1, [r4, r1]
cmp r0, r1
beq _021DE7CA
mov r1, #8
ldrsh r1, [r4, r1]
add r0, r0, r1
strh r0, [r4, #4]
ldr r1, [r4]
ldr r0, _021DE7DC ; =0x00005860
add r1, r1, r0
ldrsh r0, [r4, r2]
mov r2, #0x20
lsl r0, r0, #5
add r0, r1, r0
ldr r1, [r4, #0xc]
bl GX_LoadBGPltt
mov r0, #2
strh r0, [r4, #0xa]
pop {r3, r4, r5, pc}
_021DE7CA:
ldr r1, _021DE7E0 ; =MOD14_021DE7E4
ldr r2, [r4]
add r0, r4, #0
bl MOD14_021DDF30
add r0, r5, #0
bl FUN_0200CAB4
pop {r3, r4, r5, pc}
.align 2, 0
_021DE7DC: .word 0x00005860
_021DE7E0: .word MOD14_021DE7E4
thumb_func_start MOD14_021DE7E4
MOD14_021DE7E4: ; 0x021DE7E4
mov r1, #0
add r0, #0xa3
strb r1, [r0]
bx lr
thumb_func_start MOD14_021DE7EC
MOD14_021DE7EC: ; 0x021DE7EC
push {r3, r4, lr}
sub sp, #4
ldr r3, _021DE878 ; =0x021E6B90
add r4, r1, #0
ldr r1, [r3, #0xc]
cmp r1, #0
beq _021DE806
cmp r1, #1
beq _021DE83C
cmp r1, #2
beq _021DE868
add sp, #4
pop {r3, r4, pc}
_021DE806:
ldr r0, _021DE87C ; =0x021E6B94
ldr r2, _021DE880 ; =0x021E6B98
str r0, [sp]
ldr r3, _021DE884 ; =0x021E6B90
add r0, r4, #0
mov r1, #0
bl MOD14_021DE06C
ldr r0, _021DE888 ; =0x00005988
ldr r0, [r4, r0]
bl MOD14_021DC448
ldr r2, _021DE878 ; =0x021E6B90
add r1, r0, #0
ldr r0, _021DE88C ; =0x021E69E0
ldr r2, [r2, #4]
str r1, [r0]
add r0, r4, #0
mov r3, #0
bl MOD14_021DE138
ldr r0, _021DE878 ; =0x021E6B90
add sp, #4
ldr r1, [r0, #0xc]
add r1, r1, #1
str r1, [r0, #0xc]
pop {r3, r4, pc}
_021DE83C:
ldr r0, [r3, #4]
ldr r1, _021DE88C ; =0x021E69E0
str r0, [sp]
ldr r2, [r3]
ldr r1, [r1]
ldr r3, [r3, #8]
add r0, r4, #0
bl MOD14_021DE278
ldr r1, _021DE88C ; =0x021E69E0
ldr r2, _021DE878 ; =0x021E6B90
ldr r1, [r1]
ldr r2, [r2, #8]
add r0, r4, #0
bl MOD14_021DE1D0
ldr r0, _021DE878 ; =0x021E6B90
add sp, #4
ldr r1, [r0, #0xc]
add r1, r1, #1
str r1, [r0, #0xc]
pop {r3, r4, pc}
_021DE868:
mov r1, #0
add r4, #0xa3
strb r1, [r4]
str r1, [r3, #0xc]
bl FUN_0200CAB4
add sp, #4
pop {r3, r4, pc}
.align 2, 0
_021DE878: .word 0x021E6B90
_021DE87C: .word 0x021E6B94
_021DE880: .word 0x021E6B98
_021DE884: .word 0x021E6B90
_021DE888: .word 0x00005988
_021DE88C: .word 0x021E69E0
thumb_func_start MOD14_021DE890
MOD14_021DE890: ; 0x021DE890
push {r4, lr}
add r4, r0, #0
ldr r0, _021DE8C0 ; =MOD14_021DE7EC
add r1, r4, #0
mov r2, #0
bl FUN_0200CA98
cmp r0, #0
beq _021DE8A6
mov r1, #1
b _021DE8A8
_021DE8A6:
mov r1, #0
_021DE8A8:
add r0, r4, #0
add r0, #0xa3
add r4, #0xa3
strb r1, [r0]
ldrb r0, [r4]
cmp r0, #0
beq _021DE8BC
ldr r0, _021DE8C4 ; =0x021E6B90
mov r1, #0
str r1, [r0, #0xc]
_021DE8BC:
pop {r4, pc}
nop
_021DE8C0: .word MOD14_021DE7EC
_021DE8C4: .word 0x021E6B90
thumb_func_start MOD14_021DE8C8
MOD14_021DE8C8: ; 0x021DE8C8
push {r4, lr}
add r2, r0, #0
mov r1, #0
add r2, #0xa2
strb r1, [r2]
ldrb r3, [r0, #2]
mov r2, #8
lsl r4, r3, #1
ldr r3, _021DE8E4 ; =0x021E656C
ldrh r3, [r3, r4]
lsl r3, r3, #5
bl MOD14_021DE730
pop {r4, pc}
.align 2, 0
_021DE8E4: .word 0x021E656C
thumb_func_start MOD14_021DE8E8
MOD14_021DE8E8: ; 0x021DE8E8
push {r3, r4, r5, lr}
add r4, r0, #0
add r1, r4, #0
add r1, #0xa2
ldrb r1, [r1]
cmp r1, #4
bhi _021DE976
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021DE902: ; jump table
.short _021DE90C - _021DE902 - 2 ; case 0
.short _021DE922 - _021DE902 - 2 ; case 1
.short _021DE934 - _021DE902 - 2 ; case 2
.short _021DE94A - _021DE902 - 2 ; case 3
.short _021DE96A - _021DE902 - 2 ; case 4
_021DE90C:
add r0, #0xa3
ldrb r0, [r0]
cmp r0, #0
bne _021DE976
add r0, r4, #0
add r0, #0xa2
ldrb r0, [r0]
add r4, #0xa2
add r0, r0, #1
strb r0, [r4]
b _021DE976
_021DE922:
bl MOD14_021DE890
add r0, r4, #0
add r0, #0xa2
ldrb r0, [r0]
add r4, #0xa2
add r0, r0, #1
strb r0, [r4]
b _021DE976
_021DE934:
add r0, #0xa3
ldrb r0, [r0]
cmp r0, #0
bne _021DE976
add r0, r4, #0
add r0, #0xa2
ldrb r0, [r0]
add r4, #0xa2
add r0, r0, #1
strb r0, [r4]
b _021DE976
_021DE94A:
ldrb r3, [r4, #2]
mov r1, #8
mov r2, #0
lsl r5, r3, #1
ldr r3, _021DE97C ; =0x021E656C
ldrh r3, [r3, r5]
lsl r3, r3, #5
bl MOD14_021DE730
add r0, r4, #0
add r0, #0xa2
ldrb r0, [r0]
add r4, #0xa2
add r0, r0, #1
strb r0, [r4]
b _021DE976
_021DE96A:
add r4, #0xa3
ldrb r0, [r4]
cmp r0, #0
bne _021DE976
mov r0, #1
pop {r3, r4, r5, pc}
_021DE976:
mov r0, #0
pop {r3, r4, r5, pc}
nop
_021DE97C: .word 0x021E656C
thumb_func_start MOD14_021DE980
MOD14_021DE980: ; 0x021DE980
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r7, r2, #0
add r4, r1, #0
mov r0, #0x34
mul r4, r0
add r0, r5, #0
ldrb r2, [r5, #2]
ldr r1, _021DE9CC ; =0x00000618
add r0, #0xa8
mul r1, r2
add r0, r0, r1
add r6, r3, #0
add r0, r0, r4
add r1, r6, #0
mov r2, #1
bl MOD14_021E0930
ldr r0, _021DE9D0 ; =0x00005980
add r1, r6, #0
ldr r0, [r5, r0]
add r2, r7, #0
bl MOD14_021E0BBC
ldr r0, _021DE9D0 ; =0x00005980
add r3, r5, #0
ldrb r2, [r5, #2]
ldr r1, _021DE9CC ; =0x00000618
add r3, #0xa8
mul r1, r2
add r1, r3, r1
ldr r0, [r5, r0]
add r1, r1, r4
mov r2, #1
bl MOD14_021E08E4
pop {r3, r4, r5, r6, r7, pc}
nop
_021DE9CC: .word 0x00000618
_021DE9D0: .word 0x00005980
thumb_func_start MOD14_021DE9D4
MOD14_021DE9D4: ; 0x021DE9D4
push {r3, r4, r5, r6, r7, lr}
add r6, r0, #0
ldrb r0, [r6, #2]
add r7, r1, #0
add r3, r6, #0
str r0, [sp]
ldr r1, _021DEA30 ; =0x00000618
ldr r0, [sp]
add r3, #0xa8
mul r1, r0
mov r0, #0x34
add r4, r7, #0
mul r4, r0
add r5, r3, r1
add r0, r2, #0
add r1, r5, r4
mov r2, #1
bl MOD14_021E0930
ldr r0, _021DEA34 ; =0x00005980
add r1, r5, r4
ldr r0, [r6, r0]
mov r2, #0
bl MOD14_021E0C5C
mov r2, #0x1e
ldr r0, _021DEA34 ; =0x00005980
ldr r3, [sp]
lsl r2, r2, #4
mul r2, r3
ldr r0, [r6, r0]
add r2, #0x58
lsl r3, r7, #4
add r1, r5, r4
add r2, r2, r3
bl MOD14_021E0BBC
add r0, r7, #0
bl MOD14_021DEB24
add r1, r0, #0
ldr r0, [r5, r4]
bl MOD14_021DDE24
pop {r3, r4, r5, r6, r7, pc}
nop
_021DEA30: .word 0x00000618
_021DEA34: .word 0x00005980
thumb_func_start MOD14_021DEA38
MOD14_021DEA38: ; 0x021DEA38
ldrb r2, [r0, #2]
add r3, r0, #0
ldr r0, _021DEA4C ; =0x00000618
add r3, #0xa8
mul r0, r2
add r2, r3, r0
mov r0, #0x34
mul r0, r1
add r0, r2, r0
bx lr
.align 2, 0
_021DEA4C: .word 0x00000618
thumb_func_start MOD14_021DEA50
MOD14_021DEA50: ; 0x021DEA50
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x30
add r5, r0, #0
ldr r0, _021DEB14 ; =0x00005988
ldr r0, [r5, r0]
ldr r0, [r0]
bl FUN_0206B330
mov r4, #0
str r0, [sp, #0x1c]
add r0, r5, #0
str r0, [sp, #0x28]
add r0, #0xa8
add r7, r4, #0
str r4, [sp, #0x2c]
str r0, [sp, #0x28]
_021DEA70:
ldr r0, _021DEB14 ; =0x00005988
ldr r1, [sp, #0x1c]
ldr r0, [r5, r0]
add r2, r4, #0
ldr r0, [r0]
bl FUN_0206B5E4
mov r1, #0xab
mov r2, #0
str r0, [sp, #0x20]
bl FUN_020672BC
cmp r0, #0
beq _021DEB02
ldrb r1, [r5, #2]
ldr r0, _021DEB18 ; =0x00000618
mul r0, r1
str r0, [sp, #0x18]
add r0, r5, r0
add r0, r7, r0
str r1, [sp, #0x14]
add r0, #0xa8
ldr r0, [r0]
cmp r0, #0
bne _021DEB02
add r0, r4, #0
bl MOD14_021DEB24
str r0, [sp, #0x24]
add r0, r4, #0
mov r1, #6
bl _s32_div_f
str r1, [sp, #0x10]
add r0, r4, #0
mov r1, #6
bl _s32_div_f
mov ip, r0
mov r0, #2
str r0, [sp]
ldr r0, [sp, #0x24]
ldr r3, [sp, #0x10]
str r0, [sp, #4]
ldr r1, [sp, #0x14]
mov r0, #0x1e
add r2, r1, #0
lsl r0, r0, #4
mul r2, r0
ldr r0, [sp, #0x2c]
add r2, #0x58
add r0, r2, r0
str r0, [sp, #8]
ldr r1, [sp, #0x28]
ldr r0, [sp, #0x18]
ldr r2, _021DEB1C ; =0x0000585C
add r0, r1, r0
add r0, r0, r7
str r0, [sp, #0xc]
ldr r6, [r5, r2]
mov r2, #0x18
ldr r0, _021DEB20 ; =0x00005980
mul r2, r3
add r6, #0x70
add r2, r6, r2
mov r6, ip
mov r3, #0x18
mul r3, r6
ldr r0, [r5, r0]
ldr r1, [sp, #0x20]
add r3, #0x28
bl MOD14_021E0940
_021DEB02:
ldr r0, [sp, #0x2c]
add r4, r4, #1
add r0, #0x10
add r7, #0x34
str r0, [sp, #0x2c]
cmp r4, #0x1e
blt _021DEA70
add sp, #0x30
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_021DEB14: .word 0x00005988
_021DEB18: .word 0x00000618
_021DEB1C: .word 0x0000585C
_021DEB20: .word 0x00005980
thumb_func_start MOD14_021DEB24
MOD14_021DEB24: ; 0x021DEB24
lsl r1, r0, #1
ldr r0, _021DEB30 ; =0x021E6570
ldrh r0, [r0, r1]
add r0, #0xb
bx lr
nop
_021DEB30: .word 0x021E6570
thumb_func_start MOD14_021DEB34
MOD14_021DEB34: ; 0x021DEB34
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x30
str r0, [sp, #0x10]
mov r0, #0x1e
lsl r0, r0, #4
add r6, r3, #0
mul r6, r0
mov r0, #0x28
str r0, [sp, #0x1c]
ldr r0, [sp, #0x48]
mov r4, #0
ldr r7, [sp, #0x4c]
str r1, [sp, #0x14]
str r2, [sp, #0x18]
add r6, #0x58
str r4, [sp, #0x24]
str r0, [sp, #0x20]
_021DEB56:
mov r0, #0
str r0, [sp, #0x28]
add r5, r0, #0
_021DEB5C:
ldr r0, [sp, #0x14]
ldr r1, [sp, #0x18]
ldr r0, [r0, #0x40]
add r2, r4, #0
ldr r0, [r0]
bl FUN_0206B5E4
mov r1, #5
mov r2, #0
str r0, [sp, #0x2c]
bl FUN_020672BC
cmp r0, #0
beq _021DEBA0
add r0, r4, #0
bl MOD14_021DEB24
mov r1, #2
str r1, [sp]
str r0, [sp, #4]
str r6, [sp, #8]
ldr r3, [sp, #0x10]
ldr r2, _021DEBC8 ; =0x0000585C
str r7, [sp, #0xc]
ldr r2, [r3, r2]
ldr r0, [sp, #0x14]
add r2, #0x70
add r3, r2, r5
ldr r2, [sp, #0x20]
ldr r1, [sp, #0x2c]
add r2, r2, r3
ldr r3, [sp, #0x1c]
bl MOD14_021E0940
_021DEBA0:
ldr r0, [sp, #0x28]
add r7, #0x34
add r0, r0, #1
add r4, r4, #1
add r6, #0x10
add r5, #0x18
str r0, [sp, #0x28]
cmp r0, #6
blo _021DEB5C
ldr r0, [sp, #0x1c]
add r0, #0x18
str r0, [sp, #0x1c]
ldr r0, [sp, #0x24]
add r0, r0, #1
str r0, [sp, #0x24]
cmp r0, #5
blo _021DEB56
add sp, #0x30
pop {r3, r4, r5, r6, r7, pc}
nop
_021DEBC8: .word 0x0000585C
thumb_func_start MOD14_021DEBCC
MOD14_021DEBCC: ; 0x021DEBCC
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x18
str r0, [sp]
mov r0, #0
str r0, [sp, #4]
mov r0, #0x18
mul r0, r2
add r5, r1, #0
str r0, [sp, #8]
_021DEBDE:
ldr r1, [sp]
ldr r0, [sp, #8]
mov r7, #0
add r4, r1, r0
_021DEBE6:
ldr r0, [r5]
cmp r0, #0
beq _021DEC0A
bl FUN_0202011C
add r6, r0, #0
add r3, sp, #0xc
ldmia r6!, {r0, r1}
add r2, r3, #0
stmia r3!, {r0, r1}
ldr r0, [r6]
add r1, r2, #0
str r0, [r3]
ldr r0, [r4, #0x68]
str r0, [sp, #0xc]
ldr r0, [r5]
bl FUN_02020044
_021DEC0A:
add r7, r7, #1
add r5, #0x34
add r4, r4, #4
cmp r7, #6
blt _021DEBE6
ldr r0, [sp, #4]
add r0, r0, #1
str r0, [sp, #4]
cmp r0, #5
blt _021DEBDE
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start MOD14_021DEC24
MOD14_021DEC24: ; 0x021DEC24
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x18
str r0, [sp]
mov r0, #0
str r0, [sp, #4]
mov r0, #0x18
mul r0, r2
add r5, r1, #0
str r0, [sp, #8]
_021DEC36:
ldr r1, [sp]
ldr r0, [sp, #8]
mov r7, #0
add r4, r1, r0
_021DEC3E:
ldr r0, [r5]
cmp r0, #0
beq _021DEC62
bl FUN_0202011C
add r6, r0, #0
add r3, sp, #0xc
ldmia r6!, {r0, r1}
add r2, r3, #0
stmia r3!, {r0, r1}
ldr r0, [r6]
add r1, r2, #0
str r0, [r3]
ldr r0, [r4, #0x38]
str r0, [sp, #0xc]
ldr r0, [r5]
bl FUN_02020044
_021DEC62:
add r7, r7, #1
add r5, #0x34
add r4, r4, #4
cmp r7, #6
blt _021DEC3E
ldr r0, [sp, #4]
add r0, r0, #1
str r0, [sp, #4]
cmp r0, #5
blt _021DEC36
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start MOD14_021DEC7C
MOD14_021DEC7C: ; 0x021DEC7C
push {r4, r5, r6, r7, lr}
sub sp, #0x14
add r7, r0, #0
mov r0, #0
str r0, [sp, #4]
str r0, [sp, #0x10]
mov r0, #0x28
add r5, r1, #0
str r0, [sp]
_021DEC8E:
ldr r0, [sp]
mov r6, #0
lsl r0, r0, #0xc
str r0, [sp, #0xc]
add r4, r6, #0
_021DEC98:
ldr r0, _021DECD0 ; =0x0000585C
ldr r0, [r7, r0]
add r0, #0x70
add r0, r0, r4
lsl r0, r0, #0xc
str r0, [sp, #8]
ldr r0, [r5]
cmp r0, #0
beq _021DECB0
add r1, sp, #8
bl FUN_02020044
_021DECB0:
add r6, r6, #1
add r5, #0x34
add r4, #0x18
cmp r6, #6
blt _021DEC98
ldr r0, [sp]
add r0, #0x18
str r0, [sp]
ldr r0, [sp, #4]
add r0, r0, #1
str r0, [sp, #4]
cmp r0, #5
blt _021DEC8E
add sp, #0x14
pop {r4, r5, r6, r7, pc}
nop
_021DECD0: .word 0x0000585C
thumb_func_start MOD14_021DECD4
MOD14_021DECD4: ; 0x021DECD4
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x10
str r0, [sp]
add r0, r2, #0
add r7, r3, #0
str r1, [sp, #4]
str r2, [sp, #8]
cmp r0, #0x20
blo _021DECF0
mov r1, #2
ldr r0, [sp]
lsl r1, r1, #0xa
add r0, r0, r1
str r0, [sp]
_021DECF0:
mov r0, #0
mov ip, r0
ldr r0, [sp, #0x28]
lsl r0, r0, #0xc
str r0, [sp, #0xc]
orr r0, r7
mov lr, r0
_021DECFE:
ldr r0, [sp, #8]
mov r2, #0
lsl r0, r0, #0x1b
lsr r1, r0, #0x1a
ldr r0, [sp]
add r4, r2, #0
add r3, r0, r1
mov r0, ip
lsl r1, r0, #1
ldr r0, [sp, #4]
add r6, r0, r1
_021DED14:
lsl r0, r4, #1
ldrh r1, [r6, r0]
mov r0, #3
lsl r0, r0, #0xa
add r5, r1, #0
and r5, r0
ldr r0, _021DEDCC ; =0x000003FF
add r2, r2, #1
and r0, r1
add r0, r0, r7
add r1, r5, #0
orr r1, r0
ldr r0, [sp, #0xc]
add r4, #0x15
orr r0, r1
strh r0, [r3]
add r3, #0x40
cmp r2, #0x14
blo _021DED14
mov r1, lr
lsl r1, r1, #0x10
mov r0, #0
lsr r1, r1, #0x10
_021DED42:
add r0, r0, #1
strh r1, [r3]
add r3, #0x40
cmp r0, #4
blo _021DED42
ldr r0, [sp, #8]
add r1, r0, #1
mov r0, #0x3f
and r0, r1
str r0, [sp, #8]
bne _021DED62
mov r1, #2
ldr r0, [sp]
lsl r1, r1, #0xa
sub r0, r0, r1
str r0, [sp]
_021DED62:
ldr r0, [sp, #8]
cmp r0, #0x20
bne _021DED72
mov r1, #2
ldr r0, [sp]
lsl r1, r1, #0xa
add r0, r0, r1
str r0, [sp]
_021DED72:
mov r0, ip
add r0, r0, #1
mov ip, r0
cmp r0, #0x15
blo _021DECFE
mov r1, lr
mov r3, #2
mov r0, #0
lsl r1, r1, #0x10
lsl r3, r3, #0xa
lsr r5, r1, #0x10
add r7, r0, #0
mov r4, #0x3f
add r2, r3, #0
_021DED8E:
ldr r1, [sp, #8]
lsl r1, r1, #0x1b
lsr r6, r1, #0x1a
ldr r1, [sp]
add r1, r1, r6
add r6, r7, #0
_021DED9A:
add r6, r6, #1
strh r5, [r1]
add r1, #0x40
cmp r6, #0x18
blo _021DED9A
ldr r1, [sp, #8]
add r1, r1, #1
and r1, r4
str r1, [sp, #8]
bne _021DEDB4
ldr r1, [sp]
sub r1, r1, r3
str r1, [sp]
_021DEDB4:
ldr r1, [sp, #8]
cmp r1, #0x20
bne _021DEDC0
ldr r1, [sp]
add r1, r1, r2
str r1, [sp]
_021DEDC0:
add r0, r0, #1
cmp r0, #2
blo _021DED8E
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
nop
_021DEDCC: .word 0x000003FF
thumb_func_start MOD14_021DEDD0
MOD14_021DEDD0: ; 0x021DEDD0
push {r4, lr}
add r2, r0, #0
add r0, #0xa0
strh r1, [r0]
add r0, r2, #0
mov r3, #0
add r0, #0xa4
strb r3, [r0]
ldr r0, _021DEE00 ; =0x00005980
add r4, r2, #0
ldrb r3, [r2, #2]
ldr r0, [r2, r0]
ldr r2, _021DEE04 ; =0x00000618
add r4, #0xa8
mul r2, r3
add r3, r4, r2
mov r2, #0x34
mul r2, r1
add r1, r3, r2
mov r2, #1
bl MOD14_021E0C20
pop {r4, pc}
nop
_021DEE00: .word 0x00005980
_021DEE04: .word 0x00000618
thumb_func_start MOD14_021DEE08
MOD14_021DEE08: ; 0x021DEE08
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
ldrb r1, [r5, #2]
ldr r0, _021DEE9C ; =0x00000618
add r2, r5, #0
add r2, #0xa8
mul r0, r1
add r4, r2, r0
add r0, r5, #0
add r0, #0xa0
ldrh r1, [r0]
mov r0, #0x34
add r6, r1, #0
mul r6, r0
add r0, r5, #0
add r0, #0xa4
ldrb r0, [r0]
cmp r0, #0
beq _021DEE34
cmp r0, #1
beq _021DEE86
b _021DEE98
_021DEE34:
ldr r0, _021DEEA0 ; =0x00005980
add r1, r4, r6
ldr r0, [r5, r0]
bl MOD14_021E0C48
cmp r0, #0
beq _021DEE98
ldr r0, _021DEEA4 ; =0x0000598C
ldr r0, [r5, r0]
bl MOD14_021DDEDC
add r7, r0, #0
bl MOD14_021DA1B8
cmp r0, #0
beq _021DEE98
add r0, r7, #0
bl MOD14_021DA1C0
cmp r0, #0
ldr r0, _021DEEA0 ; =0x00005980
beq _021DEE6E
ldr r0, [r5, r0]
add r1, r4, r6
mov r2, #1
bl MOD14_021E0908
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021DEE6E:
ldr r0, [r5, r0]
add r1, r4, r6
mov r2, #2
bl MOD14_021E0C20
add r0, r5, #0
add r0, #0xa4
ldrb r0, [r0]
add r5, #0xa4
add r0, r0, #1
strb r0, [r5]
b _021DEE98
_021DEE86:
ldr r0, _021DEEA0 ; =0x00005980
add r1, r4, r6
ldr r0, [r5, r0]
bl MOD14_021E0C48
cmp r0, #0
beq _021DEE98
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021DEE98:
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_021DEE9C: .word 0x00000618
_021DEEA0: .word 0x00005980
_021DEEA4: .word 0x0000598C
thumb_func_start MOD14_021DEEA8
MOD14_021DEEA8: ; 0x021DEEA8
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
ldr r0, _021DEEEC ; =0x00005988
ldr r0, [r5, r0]
bl MOD14_021DC484
mov r6, #0
add r7, r5, #0
str r0, [sp]
add r4, r6, #0
add r7, #0xa8
_021DEEBE:
ldrb r2, [r5, #2]
ldr r0, _021DEEF0 ; =0x00000618
add r1, r2, #0
mul r1, r0
add r0, r5, r1
add r0, r4, r0
add r0, #0xa8
ldr r0, [r0]
cmp r0, #0
beq _021DEEE0
ldr r0, _021DEEF4 ; =0x00005980
add r1, r7, r1
ldr r0, [r5, r0]
ldr r2, [sp]
add r1, r1, r4
bl MOD14_021E0B54
_021DEEE0:
add r6, r6, #1
add r4, #0x34
cmp r6, #0x1e
blt _021DEEBE
pop {r3, r4, r5, r6, r7, pc}
nop
_021DEEEC: .word 0x00005988
_021DEEF0: .word 0x00000618
_021DEEF4: .word 0x00005980
thumb_func_start MOD14_021DEEF8
MOD14_021DEEF8: ; 0x021DEEF8
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
mov r0, #0x34
mul r4, r0
add r3, r5, #0
ldrb r1, [r5, #2]
ldr r0, _021DEF40 ; =0x00000618
add r3, #0xa8
mul r0, r1
add r1, r3, r0
ldr r0, [r1, r4]
cmp r0, #0
beq _021DEF3E
ldr r0, _021DEF44 ; =0x00005980
add r1, r1, r4
ldr r0, [r5, r0]
bl MOD14_021E0BA8
ldr r0, _021DEF48 ; =0x00005988
ldr r0, [r5, r0]
bl MOD14_021DC484
add r2, r0, #0
ldr r0, _021DEF44 ; =0x00005980
add r1, r5, #0
ldr r0, [r5, r0]
ldrb r5, [r5, #2]
ldr r3, _021DEF40 ; =0x00000618
add r1, #0xa8
mul r3, r5
add r1, r1, r3
add r1, r1, r4
bl MOD14_021E0B54
_021DEF3E:
pop {r3, r4, r5, pc}
.align 2, 0
_021DEF40: .word 0x00000618
_021DEF44: .word 0x00005980
_021DEF48: .word 0x00005988
thumb_func_start MOD14_021DEF4C
MOD14_021DEF4C: ; 0x021DEF4C
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r0, _021DEF88 ; =0x00005988
ldr r0, [r5, r0]
bl MOD14_021DC3E0
add r4, r0, #0
ldr r0, _021DEF88 ; =0x00005988
ldr r0, [r5, r0]
bl MOD14_021DC45C
add r2, r0, #0
add r3, r5, #0
ldrb r1, [r5, #2]
ldr r0, _021DEF8C ; =0x00000618
add r3, #0xa8
mul r0, r1
add r3, r3, r0
mov r0, #0x34
add r1, r4, #0
mul r1, r0
ldr r0, [r3, r1]
cmp r0, #0
beq _021DEF86
ldr r0, _021DEF90 ; =0x00005980
add r1, r3, r1
ldr r0, [r5, r0]
bl MOD14_021E0BA4
_021DEF86:
pop {r3, r4, r5, pc}
.align 2, 0
_021DEF88: .word 0x00005988
_021DEF8C: .word 0x00000618
_021DEF90: .word 0x00005980
thumb_func_start MOD14_021DEF94
MOD14_021DEF94: ; 0x021DEF94
push {r4, r5, r6, r7, lr}
sub sp, #0x1c
add r4, r0, #0
add r0, sp, #0xc
str r0, [sp]
ldr r0, _021DF030 ; =0x00005988
add r1, sp, #0x18
ldr r0, [r4, r0]
add r2, sp, #0x14
add r3, sp, #0x10
bl MOD14_021DC4A4
mov r5, #0
str r5, [sp, #4]
_021DEFB0:
add r0, r4, #0
str r0, [sp, #8]
add r0, #0xa8
mov r7, #0
str r0, [sp, #8]
_021DEFBA:
ldrb r2, [r4, #2]
ldr r0, _021DF034 ; =0x00000618
add r1, r2, #0
mul r1, r0
add r0, r4, r1
add r0, r5, r0
add r0, #0xa8
ldr r0, [r0]
cmp r0, #0
beq _021DF018
ldr r6, [sp, #0x18]
ldr r2, [sp, #0x14]
sub r3, r7, r6
sub r2, r2, r6
ldr r0, [sp, #0x10]
cmp r3, r2
bhi _021DEFE0
mov r6, #1
b _021DEFE2
_021DEFE0:
mov r6, #0
_021DEFE2:
ldr r2, [sp, #4]
sub r3, r2, r0
ldr r2, [sp, #0xc]
sub r0, r2, r0
cmp r3, r0
bhi _021DEFF2
mov r0, #1
b _021DEFF4
_021DEFF2:
mov r0, #0
_021DEFF4:
tst r0, r6
ldr r0, _021DF038 ; =0x00005980
beq _021DF00A
ldr r2, [sp, #8]
ldr r0, [r4, r0]
add r1, r2, r1
add r1, r1, r5
mov r2, #1
bl MOD14_021E0C5C
b _021DF018
_021DF00A:
ldr r2, [sp, #8]
ldr r0, [r4, r0]
add r1, r2, r1
add r1, r1, r5
mov r2, #0
bl MOD14_021E0C5C
_021DF018:
add r7, r7, #1
add r5, #0x34
cmp r7, #6
blo _021DEFBA
ldr r0, [sp, #4]
add r0, r0, #1
str r0, [sp, #4]
cmp r0, #5
blo _021DEFB0
add sp, #0x1c
pop {r4, r5, r6, r7, pc}
nop
_021DF030: .word 0x00005988
_021DF034: .word 0x00000618
_021DF038: .word 0x00005980
thumb_func_start MOD14_021DF03C
MOD14_021DF03C: ; 0x021DF03C
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
mov r6, #0
add r7, r5, #0
add r4, r6, #0
add r7, #0xa8
_021DF048:
ldrb r2, [r5, #2]
ldr r0, _021DF074 ; =0x00000618
add r1, r2, #0
mul r1, r0
add r0, r5, r1
add r0, r4, r0
add r0, #0xa8
ldr r0, [r0]
cmp r0, #0
beq _021DF06A
ldr r0, _021DF078 ; =0x00005980
add r1, r7, r1
ldr r0, [r5, r0]
add r1, r1, r4
mov r2, #0
bl MOD14_021E0C5C
_021DF06A:
add r6, r6, #1
add r4, #0x34
cmp r6, #0x1e
blt _021DF048
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_021DF074: .word 0x00000618
_021DF078: .word 0x00005980
thumb_func_start MOD14_021DF07C
MOD14_021DF07C: ; 0x021DF07C
push {r3, r4, r5, r6, lr}
sub sp, #4
add r5, r0, #0
ldr r0, _021DF128 ; =0x00000794
add r6, r1, #0
str r6, [r5, r0]
add r4, r2, #0
sub r0, r0, #4
str r4, [r5, r0]
add r0, r6, #0
str r3, [r5]
bl MOD14_021DDD58
ldr r1, _021DF12C ; =0x00000758
str r0, [r5, r1]
add r0, r6, #0
bl MOD14_021DDD60
ldr r1, _021DF130 ; =0x0000075C
str r0, [r5, r1]
add r0, r6, #0
bl MOD14_021DDD50
str r0, [r5, #0x48]
add r0, r4, #0
bl MOD14_021DC3CC
ldr r1, _021DF134 ; =0x00000785
strb r0, [r5, r1]
add r0, r4, #0
bl MOD14_021DC3D0
ldr r1, _021DF138 ; =0x00000789
strb r0, [r5, r1]
add r0, r4, #0
bl MOD14_021DC3D8
ldr r1, _021DF13C ; =0x0000078A
strb r0, [r5, r1]
add r0, r4, #0
bl MOD14_021DC3E8
ldr r1, _021DF140 ; =0x0000078B
add r3, r5, #0
strb r0, [r5, r1]
mov r2, #0
str r2, [r5, #4]
str r2, [r5, #8]
str r2, [r5, #0xc]
add r0, r1, #0
str r2, [r5, #0x10]
sub r0, #0x37
str r2, [r5, r0]
add r0, r1, #3
mov r2, #1
strb r2, [r5, r0]
mov r0, #0xa
str r0, [sp]
mov r0, #0x12
mov r1, #0xd
add r3, #0x1c
bl FUN_02006C30
str r0, [r5, #0x14]
mov r0, #0xa
add r3, r5, #0
str r0, [sp]
mov r0, #0x12
mov r1, #0xe
mov r2, #1
add r3, #0x20
bl FUN_02006C5C
str r0, [r5, #0x18]
ldr r0, [r5, #0x14]
cmp r0, #0
beq _021DF11C
ldr r0, [r5, #0x18]
cmp r0, #0
bne _021DF122
_021DF11C:
add sp, #4
mov r0, #0
pop {r3, r4, r5, r6, pc}
_021DF122:
mov r0, #1
add sp, #4
pop {r3, r4, r5, r6, pc}
.align 2, 0
_021DF128: .word 0x00000794
_021DF12C: .word 0x00000758
_021DF130: .word 0x0000075C
_021DF134: .word 0x00000785
_021DF138: .word 0x00000789
_021DF13C: .word 0x0000078A
_021DF140: .word 0x0000078B
thumb_func_start MOD14_021DF144
MOD14_021DF144: ; 0x021DF144
push {r4, r5, r6, lr}
sub sp, #0x38
add r4, r0, #0
add r0, #0x24
bl FUN_020B1A24
mov r3, #0
str r3, [sp]
mov r2, #1
str r2, [sp, #4]
str r3, [sp, #8]
mov r0, #0xa
str r0, [sp, #0xc]
add r0, r4, #0
add r0, #0x24
str r0, [sp, #0x10]
mov r0, #0x12
mov r1, #0xc
bl FUN_02006AE4
ldr r0, _021DF310 ; =0x00000785
ldrb r0, [r4, r0]
cmp r0, #1
bne _021DF178
mov r5, #1
b _021DF17A
_021DF178:
mov r5, #2
_021DF17A:
ldr r0, _021DF314 ; =0x00000794
ldr r0, [r4, r0]
bl MOD14_021DDD48
add r2, r0, #0
ldr r0, [r4, #0x20]
add r1, r4, #0
str r0, [sp]
str r5, [sp, #4]
ldr r3, [r4, #0x1c]
add r0, sp, #0x14
add r1, #0x24
bl MOD14_021DDDB4
ldr r2, _021DF318 ; =0x00000764
add r3, r4, #0
add r1, r2, #4
add r0, r4, r2
add r2, #0x21
add r1, r4, r1
add r2, r4, r2
bl MOD14_021E0264
mov r0, #1
str r0, [sp]
str r0, [sp, #4]
ldr r3, _021DF318 ; =0x00000764
ldr r0, [r4]
ldr r2, [r4, r3]
add r3, r3, #4
ldr r3, [r4, r3]
add r1, sp, #0x14
bl MOD14_021DDDD4
str r0, [r4, #4]
mov r0, #0x2a
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
ldr r3, _021DF318 ; =0x00000764
ldr r0, [r4]
ldr r2, [r4, r3]
add r3, r3, #4
ldr r3, [r4, r3]
add r1, sp, #0x14
add r3, #0x18
bl MOD14_021DDDD4
str r0, [r4, #8]
mov r0, #0x79
lsl r0, r0, #4
ldr r0, [r4, r0]
bl MOD14_021DC3CC
mov r0, #0x79
lsl r0, r0, #4
ldr r0, [r4, r0]
bl MOD14_021DC3C4
add r6, r0, #0
cmp r6, #4
beq _021DF1FC
mov r2, #0x6c
mov r5, #0xec
b _021DF200
_021DF1FC:
mov r2, #0x40
mov r5, #0xc0
_021DF200:
mov r1, #2
add r0, sp, #0x34
strb r1, [r0]
mov r0, #0x2b
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
ldr r0, [r4]
add r1, sp, #0x14
mov r3, #0x14
bl MOD14_021DDDD4
str r0, [r4, #0xc]
mov r0, #0x2b
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
ldr r0, [r4]
add r1, sp, #0x14
add r2, r5, #0
mov r3, #0x14
bl MOD14_021DDDD4
str r0, [r4, #0x10]
ldr r0, [r4, #8]
mov r1, #5
bl FUN_02020130
ldr r0, [r4, #8]
mov r1, #2
bl FUN_02020238
mov r0, #0x79
lsl r0, r0, #4
ldr r0, [r4, r0]
bl MOD14_021DC3CC
add r5, r0, #0
cmp r5, #2
ldr r0, [r4, #0xc]
beq _021DF262
mov r1, #6
bl FUN_02020130
ldr r0, [r4, #0x10]
mov r1, #7
bl FUN_02020130
b _021DF270
_021DF262:
mov r1, #8
bl FUN_02020130
ldr r0, [r4, #0x10]
mov r1, #9
bl FUN_02020130
_021DF270:
cmp r5, #0
beq _021DF27C
ldr r0, [r4, #8]
mov r1, #0
bl FUN_020200A0
_021DF27C:
cmp r6, #3
beq _021DF2C0
mov r0, #0x79
lsl r0, r0, #4
ldr r0, [r4, r0]
bl MOD14_021DC3F4
cmp r0, #1
ldr r0, [r4, #4]
bne _021DF2A6
mov r1, #0
bl FUN_02020130
add r1, r4, #0
ldr r0, [r4, #0x48]
add r1, #0x4c
mov r2, #0x1e
bl MOD14_021E08E4
mov r1, #0
b _021DF2B4
_021DF2A6:
mov r1, #2
bl FUN_02020130
add r0, r4, #0
bl MOD14_021DF324
mov r1, #1
_021DF2B4:
ldr r0, _021DF31C ; =0x0000078C
strb r1, [r4, r0]
ldr r0, _021DF320 ; =0x0000078D
mov r1, #0
strb r1, [r4, r0]
b _021DF2F8
_021DF2C0:
mov r0, #0x79
lsl r0, r0, #4
ldr r0, [r4, r0]
bl MOD14_021DC538
cmp r0, #0
ldr r0, [r4, #4]
bne _021DF2DA
mov r1, #0
bl FUN_02020130
mov r1, #0
b _021DF2E2
_021DF2DA:
mov r1, #2
bl FUN_02020130
mov r1, #1
_021DF2E2:
ldr r0, _021DF320 ; =0x0000078D
mov r2, #0x1e
strb r1, [r4, r0]
add r1, r4, #0
ldr r0, [r4, #0x48]
add r1, #0x4c
bl MOD14_021E08E4
ldr r0, _021DF31C ; =0x0000078C
mov r1, #0
strb r1, [r4, r0]
_021DF2F8:
ldr r0, _021DF314 ; =0x00000794
ldr r0, [r4, r0]
bl MOD14_021DDD78
mov r1, #0x76
lsl r1, r1, #4
str r0, [r4, r1]
add r0, r4, #0
bl MOD14_021E0008
add sp, #0x38
pop {r4, r5, r6, pc}
.align 2, 0
_021DF310: .word 0x00000785
_021DF314: .word 0x00000794
_021DF318: .word 0x00000764
_021DF31C: .word 0x0000078C
_021DF320: .word 0x0000078D
thumb_func_start MOD14_021DF324
MOD14_021DF324: ; 0x021DF324
push {r4, r5, lr}
sub sp, #0x1c
add r5, r0, #0
ldr r0, [r5, #4]
bl FUN_0202011C
add r3, r0, #0
ldmia r3!, {r0, r1}
add r2, sp, #0x10
stmia r2!, {r0, r1}
ldr r0, [r3]
add r1, r5, #0
str r0, [r2]
ldr r0, [r5, #0x48]
add r1, #0x4c
mov r2, #1
bl MOD14_021E08E4
mov r0, #0x79
lsl r0, r0, #4
ldr r0, [r5, r0]
bl MOD14_021DC458
add r4, r0, #0
ldr r0, [r5, #4]
bl FUN_02020240
str r0, [sp]
mov r0, #2
str r0, [sp, #4]
ldr r0, _021DF398 ; =0x000004D8
add r1, r4, #0
str r0, [sp, #8]
add r0, r5, #0
add r0, #0x4c
str r0, [sp, #0xc]
ldr r3, [sp, #0x14]
ldr r2, [sp, #0x10]
asr r3, r3, #0xc
ldr r0, [r5, #0x48]
asr r2, r2, #0xc
add r3, r3, #4
bl MOD14_021E0940
ldr r1, _021DF39C ; =0x00000664
mov r0, #0
str r0, [r5, r1]
add r0, r1, #4
ldr r2, _021DF3A0 ; =0xFFFFC000
add r1, #0xf0
str r2, [r5, r0]
mov r2, #1
ldr r0, _021DF3A4 ; =0x0000078C
str r2, [r5, r1]
strb r2, [r5, r0]
add sp, #0x1c
pop {r4, r5, pc}
nop
_021DF398: .word 0x000004D8
_021DF39C: .word 0x00000664
_021DF3A0: .word 0xFFFFC000
_021DF3A4: .word 0x0000078C
thumb_func_start MOD14_021DF3A8
MOD14_021DF3A8: ; 0x021DF3A8
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0x14]
cmp r0, #0
beq _021DF3BA
bl FreeToHeap
mov r0, #0
str r0, [r4, #0x14]
_021DF3BA:
ldr r0, [r4, #0x18]
cmp r0, #0
beq _021DF3C8
bl FreeToHeap
mov r0, #0
str r0, [r4, #0x18]
_021DF3C8:
ldr r0, [r4, #4]
cmp r0, #0
beq _021DF3D6
bl FUN_0201FFC8
mov r0, #0
str r0, [r4, #4]
_021DF3D6:
ldr r0, [r4, #8]
cmp r0, #0
beq _021DF3E4
bl FUN_0201FFC8
mov r0, #0
str r0, [r4, #8]
_021DF3E4:
ldr r0, [r4, #0xc]
cmp r0, #0
beq _021DF3F2
bl FUN_0201FFC8
mov r0, #0
str r0, [r4, #0xc]
_021DF3F2:
ldr r0, [r4, #0x10]
cmp r0, #0
beq _021DF400
bl FUN_0201FFC8
mov r0, #0
str r0, [r4, #0x10]
_021DF400:
pop {r4, pc}
.align 2, 0
thumb_func_start MOD14_021DF404
MOD14_021DF404: ; 0x021DF404
push {r3, r4, r5, lr}
add r4, r0, #0
mov r0, #0
add r5, r1, #0
str r0, [r2]
str r0, [r5]
ldr r0, _021DF47C ; =0x00000785
ldrb r1, [r4, r0]
cmp r1, #4
bhi _021DF478
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021DF424: ; jump table
.short _021DF42E - _021DF424 - 2 ; case 0
.short _021DF478 - _021DF424 - 2 ; case 1
.short _021DF458 - _021DF424 - 2 ; case 2
.short _021DF46C - _021DF424 - 2 ; case 3
.short _021DF46C - _021DF424 - 2 ; case 4
_021DF42E:
add r1, r0, #1
ldrb r1, [r4, r1]
cmp r1, #0
bne _021DF478
add r0, #0xb
ldr r0, [r4, r0]
bl MOD14_021DC3D0
ldr r1, _021DF480 ; =0x00000789
ldrsb r1, [r4, r1]
cmp r1, #0
bne _021DF44A
cmp r0, #5
beq _021DF452
_021DF44A:
cmp r1, #5
bne _021DF478
cmp r0, #0
bne _021DF478
_021DF452:
mov r0, #1
str r0, [r5]
pop {r3, r4, r5, pc}
_021DF458:
add r0, r0, #1
ldrb r0, [r4, r0]
add r0, #0xfd
lsl r0, r0, #0x18
lsr r0, r0, #0x18
cmp r0, #1
bhi _021DF478
mov r0, #1
str r0, [r2]
pop {r3, r4, r5, pc}
_021DF46C:
add r0, r0, #1
ldrb r0, [r4, r0]
cmp r0, #2
bne _021DF478
mov r0, #1
str r0, [r2]
_021DF478:
pop {r3, r4, r5, pc}
nop
_021DF47C: .word 0x00000785
_021DF480: .word 0x00000789
thumb_func_start MOD14_021DF484
MOD14_021DF484: ; 0x021DF484
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
ldr r2, _021DF584 ; =0x0000076C
add r5, r0, #0
add r1, r2, #4
add r0, r5, r2
add r2, #0x1a
add r1, r5, r1
add r2, r5, r2
add r3, r5, #0
bl MOD14_021E0264
add r0, r5, #0
add r1, sp, #4
add r2, sp, #0
bl MOD14_021DF404
ldr r0, _021DF588 ; =0x00000786
ldrb r0, [r5, r0]
cmp r0, #0
beq _021DF4B6
ldr r0, [r5, #8]
mov r1, #0
bl FUN_020200A0
_021DF4B6:
ldr r1, _021DF58C ; =0x00000764
ldr r0, [r5, r1]
lsl r2, r0, #0xc
add r0, r1, #0
add r0, #0x10
str r2, [r5, r0]
add r0, r1, #4
ldr r0, [r5, r0]
lsl r2, r0, #0xc
add r0, r1, #0
add r0, #0x14
str r2, [r5, r0]
add r0, r1, #0
add r0, #8
ldr r6, [r5, r0]
add r0, r1, #0
add r0, #0xc
ldr r2, [r5, r0]
ldr r7, [sp, #4]
lsl r4, r6, #0xc
lsl r0, r2, #0xc
cmp r7, #0
bne _021DF4EC
add r1, #0x10
ldr r1, [r5, r1]
sub r1, r4, r1
b _021DF514
_021DF4EC:
add r3, r1, #0
add r3, #0x10
ldr r3, [r5, r3]
cmp r4, r3
ble _021DF506
mov r3, #0x11
ldr r1, [r5, r1]
lsl r3, r3, #4
sub r3, r3, r6
sub r1, #0x46
add r1, r3, r1
neg r1, r1
b _021DF512
_021DF506:
ldr r3, [r5, r1]
mov r1, #0x11
lsl r1, r1, #4
sub r1, r1, r3
sub r6, #0x46
add r1, r1, r6
_021DF512:
lsl r1, r1, #0xc
_021DF514:
ldr r3, [sp]
cmp r3, #0
bne _021DF522
ldr r2, _021DF590 ; =0x00000778
ldr r2, [r5, r2]
sub r4, r0, r2
b _021DF548
_021DF522:
ldr r4, _021DF590 ; =0x00000778
ldr r6, [r5, r4]
cmp r0, r6
ble _021DF53A
mov r0, #0xd0
sub r4, #0x10
sub r2, r0, r2
ldr r0, [r5, r4]
add r0, #0x18
add r0, r2, r0
neg r4, r0
b _021DF546
_021DF53A:
sub r4, #0x10
ldr r4, [r5, r4]
mov r0, #0xd0
sub r0, r0, r4
add r2, #0x18
add r4, r0, r2
_021DF546:
lsl r4, r4, #0xc
_021DF548:
cmp r7, #0
bne _021DF550
cmp r3, #0
beq _021DF554
_021DF550:
mov r6, #0xc
b _021DF556
_021DF554:
mov r6, #6
_021DF556:
add r0, r1, #0
add r1, r6, #0
bl _s32_div_f
ldr r1, _021DF594 ; =0x0000077C
str r0, [r5, r1]
add r0, r4, #0
add r1, r6, #0
bl _s32_div_f
mov r1, #0x1e
lsl r1, r1, #6
str r0, [r5, r1]
add r0, r1, #7
strb r6, [r5, r0]
ldr r0, _021DF598 ; =MOD14_021DF5B0
add r1, r5, #0
mov r2, #0
bl MOD14_021DDD40
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
nop
_021DF584: .word 0x0000076C
_021DF588: .word 0x00000786
_021DF58C: .word 0x00000764
_021DF590: .word 0x00000778
_021DF594: .word 0x0000077C
_021DF598: .word MOD14_021DF5B0
thumb_func_start MOD14_021DF59C
MOD14_021DF59C: ; 0x021DF59C
ldr r1, _021DF5AC ; =0x00000787
ldrb r0, [r0, r1]
cmp r0, #0
bne _021DF5A8
mov r0, #1
bx lr
_021DF5A8:
mov r0, #0
bx lr
.align 2, 0
_021DF5AC: .word 0x00000787
thumb_func_start MOD14_021DF5B0
MOD14_021DF5B0: ; 0x021DF5B0
push {r4, r5, lr}
sub sp, #0xc
add r5, r0, #0
add r4, r1, #0
mov r1, #0
ldr r0, _021DF72C ; =0x00000787
str r1, [sp, #8]
ldrb r2, [r4, r0]
cmp r2, #0
beq _021DF68A
add r1, r0, #0
sub r1, #0x13
ldr r2, [r4, r1]
add r1, r0, #0
sub r1, #0xb
ldr r1, [r4, r1]
add r2, r2, r1
add r1, r0, #0
sub r1, #0x13
str r2, [r4, r1]
add r1, r0, #0
sub r1, #0xb
ldr r1, [r4, r1]
cmp r1, #0
ble _021DF5F8
add r1, r0, #0
sub r1, #0x13
ldr r2, [r4, r1]
mov r1, #0x11
lsl r1, r1, #0x10
cmp r2, r1
ble _021DF5F8
ldr r1, _021DF730 ; =0x00156000
sub r0, #0x13
sub r1, r1, r2
str r1, [r4, r0]
_021DF5F8:
ldr r1, _021DF734 ; =0x0000077C
ldr r0, [r4, r1]
cmp r0, #0
bge _021DF61A
add r0, r1, #0
sub r0, #8
ldr r2, [r4, r0]
mov r0, #0x46
lsl r0, r0, #0xc
cmp r2, r0
bge _021DF61A
sub r2, r0, r2
mov r0, #0x11
lsl r0, r0, #0x10
sub r0, r0, r2
sub r1, #8
str r0, [r4, r1]
_021DF61A:
ldr r1, _021DF738 ; =0x00000778
add r0, r1, #0
add r0, #8
ldr r2, [r4, r1]
ldr r0, [r4, r0]
add r0, r2, r0
str r0, [r4, r1]
add r0, r1, #0
add r0, #8
ldr r0, [r4, r0]
cmp r0, #0
ble _021DF644
mov r0, #0xd
ldr r2, [r4, r1]
lsl r0, r0, #0x10
cmp r2, r0
ble _021DF644
mov r0, #0x2e
lsl r0, r0, #0xe
sub r0, r0, r2
str r0, [r4, r1]
_021DF644:
mov r1, #0x1e
lsl r1, r1, #6
ldr r0, [r4, r1]
cmp r0, #0
bge _021DF666
add r0, r1, #0
sub r0, #8
ldr r2, [r4, r0]
ldr r0, _021DF73C ; =0xFFFE8000
cmp r2, r0
bge _021DF666
sub r2, r0, r2
mov r0, #0xd
lsl r0, r0, #0x10
sub r0, r0, r2
sub r1, #8
str r0, [r4, r1]
_021DF666:
ldr r0, _021DF740 ; =0x00000774
ldr r1, [r4, r0]
add r0, r0, #4
str r1, [sp]
ldr r0, [r4, r0]
add r1, sp, #0
str r0, [sp, #4]
mov r0, #0
str r0, [sp, #8]
add r0, r4, #0
bl MOD14_021E0320
ldr r0, _021DF72C ; =0x00000787
add sp, #0xc
ldrb r1, [r4, r0]
sub r1, r1, #1
strb r1, [r4, r0]
pop {r4, r5, pc}
_021DF68A:
add r2, r0, #0
sub r2, #0x1b
ldr r2, [r4, r2]
sub r0, #0x17
lsl r2, r2, #0xc
str r2, [sp]
ldr r0, [r4, r0]
lsl r0, r0, #0xc
str r0, [sp, #4]
str r1, [sp, #8]
add r0, r4, #0
add r1, sp, #0
bl MOD14_021E0320
ldr r0, _021DF744 ; =0x0000076C
add r1, r0, #0
ldr r2, [r4, r0]
sub r1, #8
str r2, [r4, r1]
add r1, r0, #4
ldr r2, [r4, r1]
sub r1, r0, #4
str r2, [r4, r1]
add r1, r0, #0
add r1, #0x1a
ldrb r2, [r4, r1]
add r1, r0, #0
add r1, #0x19
strb r2, [r4, r1]
add r0, #0x24
ldr r0, [r4, r0]
bl MOD14_021DC3D0
ldr r1, _021DF748 ; =0x00000789
strb r0, [r4, r1]
add r0, r1, #7
ldr r0, [r4, r0]
bl MOD14_021DC3D8
ldr r1, _021DF74C ; =0x0000078A
strb r0, [r4, r1]
add r0, r1, #6
ldr r0, [r4, r0]
bl MOD14_021DC3E8
ldr r1, _021DF750 ; =0x0000078B
strb r0, [r4, r1]
sub r0, r1, #5
ldrb r0, [r4, r0]
cmp r0, #0
bne _021DF6F8
ldr r0, [r4, #8]
mov r1, #1
bl FUN_020200A0
_021DF6F8:
ldr r0, _021DF754 ; =0x00000786
ldrb r0, [r4, r0]
cmp r0, #2
ldr r0, [r4, #0xc]
beq _021DF712
mov r1, #6
bl FUN_02020130
ldr r0, [r4, #0x10]
mov r1, #7
bl FUN_02020130
b _021DF720
_021DF712:
mov r1, #8
bl FUN_02020130
ldr r0, [r4, #0x10]
mov r1, #9
bl FUN_02020130
_021DF720:
add r0, r5, #0
bl FUN_0200CAB4
add sp, #0xc
pop {r4, r5, pc}
nop
_021DF72C: .word 0x00000787
_021DF730: .word 0x00156000
_021DF734: .word 0x0000077C
_021DF738: .word 0x00000778
_021DF73C: .word 0xFFFE8000
_021DF740: .word 0x00000774
_021DF744: .word 0x0000076C
_021DF748: .word 0x00000789
_021DF74C: .word 0x0000078A
_021DF750: .word 0x0000078B
_021DF754: .word 0x00000786
thumb_func_start MOD14_021DF758
MOD14_021DF758: ; 0x021DF758
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #4]
mov r1, #1
bl FUN_02020130
mov r1, #2
mov r0, #0x1e
lsl r1, r1, #0xc
lsl r0, r0, #6
str r1, [r4, r0]
add r1, r0, #0
sub r1, #0x18
ldr r2, [r4, r1]
add r1, r0, #0
add r2, #0xc
sub r1, #0x10
str r2, [r4, r1]
add r1, r0, #7
mov r2, #6
strb r2, [r4, r1]
mov r1, #0
add r0, r0, #4
strb r1, [r4, r0]
add r0, r4, #0
bl MOD14_021E03CC
ldr r0, _021DF79C ; =MOD14_021DF7B4
add r1, r4, #0
mov r2, #0
bl MOD14_021DDD40
pop {r4, pc}
nop
_021DF79C: .word MOD14_021DF7B4
thumb_func_start MOD14_021DF7A0
MOD14_021DF7A0: ; 0x021DF7A0
ldr r1, _021DF7B0 ; =0x00000784
ldrb r0, [r0, r1]
cmp r0, #0xff
bne _021DF7AC
mov r0, #1
bx lr
_021DF7AC:
mov r0, #0
bx lr
.align 2, 0
_021DF7B0: .word 0x00000784
thumb_func_start MOD14_021DF7B4
MOD14_021DF7B4: ; 0x021DF7B4
push {r3, r4, r5, r6, lr}
sub sp, #0xc
add r4, r1, #0
add r5, r0, #0
ldr r0, [r4, #4]
bl FUN_0202011C
add r6, r0, #0
add r3, sp, #0
ldmia r6!, {r0, r1}
add r2, r3, #0
stmia r3!, {r0, r1}
ldr r0, [r6]
ldr r1, _021DF888 ; =0x00000784
str r0, [r3]
ldrb r0, [r4, r1]
cmp r0, #0
beq _021DF7E0
cmp r0, #1
beq _021DF83C
add sp, #0xc
pop {r3, r4, r5, r6, pc}
_021DF7E0:
add r0, r1, #0
mov r3, #0
add r0, #0xa
strb r3, [r4, r0]
add r0, r1, #3
ldrb r0, [r4, r0]
cmp r0, #0
beq _021DF80E
sub r0, r1, #4
ldr r3, [sp, #4]
ldr r0, [r4, r0]
add r1, r2, #0
add r0, r3, r0
str r0, [sp, #4]
add r0, r4, #0
bl MOD14_021E0320
ldr r0, _021DF88C ; =0x00000787
add sp, #0xc
ldrb r1, [r4, r0]
sub r1, r1, #1
strb r1, [r4, r0]
pop {r3, r4, r5, r6, pc}
_021DF80E:
sub r1, #0x14
ldr r0, [r4, r1]
add r1, r2, #0
lsl r0, r0, #0xc
str r0, [sp, #4]
add r0, r4, #0
bl MOD14_021E0320
ldr r0, [r4, #4]
mov r1, #2
bl FUN_02020130
add r0, r4, #0
bl MOD14_021E0554
ldr r0, _021DF88C ; =0x00000787
mov r1, #6
strb r1, [r4, r0]
sub r1, r0, #3
ldrb r1, [r4, r1]
sub r0, r0, #3
add r1, r1, #1
strb r1, [r4, r0]
_021DF83C:
ldr r0, _021DF88C ; =0x00000787
ldrb r1, [r4, r0]
cmp r1, #0
beq _021DF862
sub r0, r0, #7
ldr r1, [sp, #4]
ldr r0, [r4, r0]
sub r0, r1, r0
str r0, [sp, #4]
add r0, r4, #0
add r1, sp, #0
bl MOD14_021E0320
ldr r0, _021DF88C ; =0x00000787
add sp, #0xc
ldrb r1, [r4, r0]
sub r1, r1, #1
strb r1, [r4, r0]
pop {r3, r4, r5, r6, pc}
_021DF862:
sub r0, #0x1f
ldr r0, [r4, r0]
add r1, sp, #0
lsl r0, r0, #0xc
str r0, [sp, #4]
add r0, r4, #0
bl MOD14_021E0320
ldr r0, _021DF888 ; =0x00000784
mov r1, #0xff
strb r1, [r4, r0]
mov r1, #1
add r0, #0xa
strb r1, [r4, r0]
add r0, r5, #0
bl FUN_0200CAB4
add sp, #0xc
pop {r3, r4, r5, r6, pc}
.align 2, 0
_021DF888: .word 0x00000784
_021DF88C: .word 0x00000787
thumb_func_start MOD14_021DF890
MOD14_021DF890: ; 0x021DF890
add r1, r0, #0
mov r2, #2
mov r0, #0x1e
lsl r2, r2, #0xc
lsl r0, r0, #6
str r2, [r1, r0]
add r2, r0, #0
sub r2, #0x18
ldr r3, [r1, r2]
add r2, r0, #0
add r3, #0xc
sub r2, #0x10
str r3, [r1, r2]
add r2, r0, #7
mov r3, #6
strb r3, [r1, r2]
ldr r3, _021DF8BC ; =MOD14_021DDD40
mov r2, #0
add r0, r0, #4
strb r2, [r1, r0]
ldr r0, _021DF8C0 ; =MOD14_021DF8F8
bx r3
.align 2, 0
_021DF8BC: .word MOD14_021DDD40
_021DF8C0: .word MOD14_021DF8F8
thumb_func_start MOD14_021DF8C4
MOD14_021DF8C4: ; 0x021DF8C4
push {r4, lr}
ldr r1, _021DF8F0 ; =0x00000784
add r4, r0, #0
ldrb r1, [r4, r1]
cmp r1, #0xff
bne _021DF8EC
bl MOD14_021E0588
ldr r2, _021DF8F4 ; =0x00000754
add r1, r4, #0
ldr r0, [r4, #0x48]
ldr r2, [r4, r2]
add r1, #0x4c
bl MOD14_021E08E4
ldr r0, _021DF8F4 ; =0x00000754
mov r1, #0
str r1, [r4, r0]
mov r0, #1
pop {r4, pc}
_021DF8EC:
mov r0, #0
pop {r4, pc}
.align 2, 0
_021DF8F0: .word 0x00000784
_021DF8F4: .word 0x00000754
thumb_func_start MOD14_021DF8F8
MOD14_021DF8F8: ; 0x021DF8F8
push {r3, r4, r5, r6, lr}
sub sp, #0xc
add r4, r1, #0
add r5, r0, #0
ldr r0, [r4, #4]
bl FUN_0202011C
add r6, r0, #0
add r3, sp, #0
ldmia r6!, {r0, r1}
add r2, r3, #0
stmia r3!, {r0, r1}
ldr r0, [r6]
ldr r1, _021DF9D4 ; =0x00000784
str r0, [r3]
ldrb r0, [r4, r1]
cmp r0, #0
beq _021DF924
cmp r0, #1
beq _021DF980
add sp, #0xc
pop {r3, r4, r5, r6, pc}
_021DF924:
add r0, r1, #0
mov r3, #0
add r0, #0xa
strb r3, [r4, r0]
add r0, r1, #3
ldrb r0, [r4, r0]
cmp r0, #0
beq _021DF952
sub r0, r1, #4
ldr r3, [sp, #4]
ldr r0, [r4, r0]
add r1, r2, #0
add r0, r3, r0
str r0, [sp, #4]
add r0, r4, #0
bl MOD14_021E0320
ldr r0, _021DF9D8 ; =0x00000787
add sp, #0xc
ldrb r1, [r4, r0]
sub r1, r1, #1
strb r1, [r4, r0]
pop {r3, r4, r5, r6, pc}
_021DF952:
sub r1, #0x14
ldr r0, [r4, r1]
add r1, r2, #0
lsl r0, r0, #0xc
str r0, [sp, #4]
add r0, r4, #0
bl MOD14_021E0320
ldr r0, [r4, #4]
mov r1, #1
bl FUN_02020130
add r0, r4, #0
bl MOD14_021E0714
ldr r0, _021DF9D8 ; =0x00000787
mov r1, #6
strb r1, [r4, r0]
sub r1, r0, #3
ldrb r1, [r4, r1]
sub r0, r0, #3
add r1, r1, #1
strb r1, [r4, r0]
_021DF980:
ldr r0, _021DF9D8 ; =0x00000787
ldrb r1, [r4, r0]
cmp r1, #0
beq _021DF9A6
sub r0, r0, #7
ldr r1, [sp, #4]
ldr r0, [r4, r0]
sub r0, r1, r0
str r0, [sp, #4]
add r0, r4, #0
add r1, sp, #0
bl MOD14_021E0320
ldr r0, _021DF9D8 ; =0x00000787
add sp, #0xc
ldrb r1, [r4, r0]
sub r1, r1, #1
strb r1, [r4, r0]
pop {r3, r4, r5, r6, pc}
_021DF9A6:
sub r0, #0x1f
ldr r0, [r4, r0]
add r1, sp, #0
lsl r0, r0, #0xc
str r0, [sp, #4]
add r0, r4, #0
bl MOD14_021E0320
ldr r0, [r4, #4]
mov r1, #0
bl FUN_02020130
ldr r0, _021DF9D4 ; =0x00000784
mov r1, #0xff
strb r1, [r4, r0]
mov r1, #1
add r0, #0xa
strb r1, [r4, r0]
add r0, r5, #0
bl FUN_0200CAB4
add sp, #0xc
pop {r3, r4, r5, r6, pc}
.align 2, 0
_021DF9D4: .word 0x00000784
_021DF9D8: .word 0x00000787
thumb_func_start MOD14_021DF9DC
MOD14_021DF9DC: ; 0x021DF9DC
push {r4, r5, lr}
sub sp, #0x1c
add r5, r0, #0
ldr r0, [r5, #4]
mov r1, #1
bl FUN_02020130
ldr r0, _021DFA50 ; =0x00000788
mov r1, #0
strb r1, [r5, r0]
add r0, r5, #0
bl MOD14_021E0740
add r4, r0, #0
bl FUN_0202011C
add r3, r0, #0
ldmia r3!, {r0, r1}
add r2, sp, #0x10
stmia r2!, {r0, r1}
ldr r0, [r3]
str r0, [r2]
add r0, r4, #0
bl FUN_0202032C
str r0, [sp]
ldr r1, [r5, #0x4c]
ldr r2, [sp, #0x14]
add r0, r5, #0
mov r3, #1
bl MOD14_021DFA7C
ldr r0, [r5, #0x4c]
bl FUN_0202011C
add r3, r0, #0
ldmia r3!, {r0, r1}
add r2, sp, #4
stmia r2!, {r0, r1}
ldr r0, [r3]
str r0, [r2]
ldr r0, [r5, #0x4c]
bl FUN_0202032C
str r0, [sp]
mov r3, #0
ldr r2, [sp, #8]
add r0, r5, #0
add r1, r4, #0
mvn r3, r3
bl MOD14_021DFA7C
ldr r0, _021DFA54 ; =0x00000784
mov r1, #0
strb r1, [r5, r0]
add sp, #0x1c
pop {r4, r5, pc}
nop
_021DFA50: .word 0x00000788
_021DFA54: .word 0x00000784
thumb_func_start MOD14_021DFA58
MOD14_021DFA58: ; 0x021DFA58
push {r4, lr}
add r4, r0, #0
bl MOD14_021DFB08
cmp r0, #0
beq _021DFA76
ldr r0, [r4, #4]
mov r1, #2
bl FUN_02020130
add r0, r4, #0
bl MOD14_021E062C
mov r0, #1
pop {r4, pc}
_021DFA76:
mov r0, #0
pop {r4, pc}
.align 2, 0
thumb_func_start MOD14_021DFA7C
MOD14_021DFA7C: ; 0x021DFA7C
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x10
add r5, r0, #0
add r6, r1, #0
mov r0, #0xa
mov r1, #0x2c
add r7, r2, #0
str r3, [sp]
bl AllocFromHeap
add r4, r0, #0
beq _021DFAFC
add r0, r6, #0
bl FUN_0202011C
add r3, r0, #0
ldmia r3!, {r0, r1}
add r2, sp, #4
stmia r2!, {r0, r1}
ldr r0, [r3]
mov r1, #0xc
str r0, [r2]
str r6, [r4]
strh r1, [r4, #4]
mov r0, #6
strh r0, [r4, #6]
ldr r0, [sp, #0x28]
str r0, [r4, #8]
ldr r0, [sp, #8]
str r0, [r4, #0xc]
ldr r0, [sp, #4]
str r0, [r4, #0x14]
str r7, [r4, #0x10]
mov r0, #0
str r0, [r4, #0x18]
ldr r0, [sp]
add r2, r0, #0
mul r2, r1
str r2, [r4, #0x24]
ldr r2, [r4, #0x10]
ldr r0, [r4, #0xc]
sub r0, r2, r0
bl _s32_div_f
str r0, [r4, #0x1c]
mov r0, #0xf
lsl r0, r0, #0xc
str r0, [r4, #0x20]
ldr r0, _021DFB00 ; =MOD14_021DFB28
add r1, r4, #0
mov r2, #0
str r5, [r4, #0x28]
bl MOD14_021DDD40
cmp r0, #0
beq _021DFAF6
ldr r0, _021DFB04 ; =0x00000788
mov r1, #1
add sp, #0x10
strb r1, [r5, r0]
pop {r3, r4, r5, r6, r7, pc}
_021DFAF6:
add r0, r4, #0
bl FreeToHeap
_021DFAFC:
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_021DFB00: .word MOD14_021DFB28
_021DFB04: .word 0x00000788
thumb_func_start MOD14_021DFB08
MOD14_021DFB08: ; 0x021DFB08
ldr r1, _021DFB18 ; =0x00000788
ldrb r0, [r0, r1]
cmp r0, #0
bne _021DFB14
mov r0, #1
bx lr
_021DFB14:
mov r0, #0
bx lr
.align 2, 0
_021DFB18: .word 0x00000788
thumb_func_start MOD14_021DFB1C
MOD14_021DFB1C: ; 0x021DFB1C
ldr r1, _021DFB24 ; =0x00000788
mov r2, #0
strb r2, [r0, r1]
bx lr
.align 2, 0
_021DFB24: .word 0x00000788
thumb_func_start MOD14_021DFB28
MOD14_021DFB28: ; 0x021DFB28
push {r3, r4, r5, r6, lr}
sub sp, #0xc
add r4, r1, #0
add r5, r0, #0
ldr r0, [r4]
bl FUN_0202011C
add r6, r0, #0
add r3, sp, #0
ldmia r6!, {r0, r1}
add r2, r3, #0
stmia r3!, {r0, r1}
ldr r0, [r6]
str r0, [r3]
ldrh r0, [r4, #4]
cmp r0, #0
beq _021DFB90
sub r0, r0, #1
strh r0, [r4, #4]
ldrh r1, [r4, #4]
ldrh r0, [r4, #6]
cmp r1, r0
bne _021DFB5E
ldr r0, [r4]
ldr r1, [r4, #8]
bl MOD14_021DDE24
_021DFB5E:
ldr r1, [r4, #0xc]
ldr r0, [r4, #0x1c]
add r0, r1, r0
str r0, [r4, #0xc]
str r0, [sp, #4]
ldr r1, [r4, #0x18]
ldr r0, [r4, #0x20]
add r0, r1, r0
str r0, [r4, #0x18]
lsl r0, r0, #4
lsr r0, r0, #0x10
bl FUN_0201B93C
ldr r1, [r4, #0x24]
add r2, r1, #0
mul r2, r0
ldr r0, [r4, #0x14]
add r1, sp, #0
add r0, r0, r2
str r0, [sp]
ldr r0, [r4]
bl FUN_02020044
add sp, #0xc
pop {r3, r4, r5, r6, pc}
_021DFB90:
ldr r0, [r4, #0x14]
add r1, r2, #0
str r0, [sp]
ldr r0, [r4, #0x10]
str r0, [sp, #4]
ldr r0, [r4]
bl FUN_02020044
ldr r1, _021DFBB4 ; =MOD14_021DFB1C
ldr r2, [r4, #0x28]
add r0, r4, #0
bl MOD14_021DDF30
add r0, r5, #0
bl FUN_0200CAB4
add sp, #0xc
pop {r3, r4, r5, r6, pc}
.align 2, 0
_021DFBB4: .word MOD14_021DFB1C
thumb_func_start MOD14_021DFBB8
MOD14_021DFBB8: ; 0x021DFBB8
push {r4, r5, lr}
sub sp, #0xc
add r4, r0, #0
ldr r0, _021DFC1C ; =0x0000078C
ldrb r1, [r4, r0]
cmp r1, #0
bne _021DFBD6
add r0, r0, #1
ldrb r0, [r4, r0]
cmp r0, #0
bne _021DFBD6
ldr r0, [r4, #4]
mov r1, #3
bl FUN_02020130
_021DFBD6:
ldr r0, [r4, #4]
bl FUN_0202011C
add r5, r0, #0
add r3, sp, #0
ldmia r5!, {r0, r1}
add r2, r3, #0
stmia r3!, {r0, r1}
ldr r0, [r5]
str r0, [r3]
mov r0, #2
ldr r1, [sp, #4]
lsl r0, r0, #0xc
sub r0, r1, r0
str r0, [sp, #4]
add r0, r4, #0
add r1, r2, #0
bl MOD14_021E0320
ldr r0, _021DFC20 ; =0x00000784
mov r2, #0
strb r2, [r4, r0]
add r0, r0, #3
strb r2, [r4, r0]
ldr r0, _021DFC24 ; =MOD14_021DFC40
add r1, r4, #0
bl MOD14_021DDD40
cmp r0, #0
beq _021DFC18
ldr r0, _021DFC28 ; =0x00000788
mov r1, #1
strb r1, [r4, r0]
_021DFC18:
add sp, #0xc
pop {r4, r5, pc}
.align 2, 0
_021DFC1C: .word 0x0000078C
_021DFC20: .word 0x00000784
_021DFC24: .word MOD14_021DFC40
_021DFC28: .word 0x00000788
thumb_func_start MOD14_021DFC2C
MOD14_021DFC2C: ; 0x021DFC2C
ldr r1, _021DFC3C ; =0x00000788
ldrb r0, [r0, r1]
cmp r0, #0
bne _021DFC38
mov r0, #1
bx lr
_021DFC38:
mov r0, #0
bx lr
.align 2, 0
_021DFC3C: .word 0x00000788
thumb_func_start MOD14_021DFC40
MOD14_021DFC40: ; 0x021DFC40
push {r4, r5, r6, lr}
sub sp, #0x18
add r4, r1, #0
ldr r1, _021DFD18 ; =0x00000784
add r5, r0, #0
ldrb r0, [r4, r1]
cmp r0, #0
beq _021DFC58
cmp r0, #1
beq _021DFCBE
add sp, #0x18
pop {r4, r5, r6, pc}
_021DFC58:
add r0, r1, #3
ldrb r0, [r4, r0]
add r2, r0, #1
add r0, r1, #3
strb r2, [r4, r0]
ldrb r0, [r4, r0]
cmp r0, #4
blo _021DFD14
ldr r0, [r4, #4]
bl FUN_0202011C
add r3, r0, #0
ldmia r3!, {r0, r1}
add r2, sp, #0xc
stmia r2!, {r0, r1}
ldr r0, [r3]
str r0, [r2]
ldr r0, [sp, #0x10]
mov r2, #3
asr r0, r0, #0xc
add r1, r0, #6
mov r0, #0x77
lsl r0, r0, #4
str r1, [r4, r0]
add r1, r0, #0
lsl r2, r2, #0xc
add r1, #0x10
str r2, [r4, r1]
add r1, r0, #0
mov r2, #2
add r1, #0x17
strb r2, [r4, r1]
add r1, r0, #0
add r1, #0x1c
ldrb r1, [r4, r1]
cmp r1, #0
bne _021DFCB2
add r0, #0x1d
ldrb r0, [r4, r0]
cmp r0, #0
bne _021DFCB2
ldr r0, [r4, #4]
mov r1, #4
bl FUN_02020130
_021DFCB2:
ldr r0, _021DFD18 ; =0x00000784
add sp, #0x18
ldrb r1, [r4, r0]
add r1, r1, #1
strb r1, [r4, r0]
pop {r4, r5, r6, pc}
_021DFCBE:
ldr r0, [r4, #4]
bl FUN_0202011C
add r6, r0, #0
add r3, sp, #0
ldmia r6!, {r0, r1}
add r2, r3, #0
stmia r3!, {r0, r1}
ldr r0, [r6]
str r0, [r3]
ldr r0, _021DFD1C ; =0x00000787
ldrb r1, [r4, r0]
cmp r1, #0
beq _021DFCF8
sub r0, r0, #7
ldr r1, [sp, #4]
ldr r0, [r4, r0]
add r0, r1, r0
str r0, [sp, #4]
add r0, r4, #0
add r1, r2, #0
bl MOD14_021E0320
ldr r0, _021DFD1C ; =0x00000787
add sp, #0x18
ldrb r1, [r4, r0]
sub r1, r1, #1
strb r1, [r4, r0]
pop {r4, r5, r6, pc}
_021DFCF8:
sub r0, #0x17
ldr r0, [r4, r0]
add r1, r2, #0
lsl r0, r0, #0xc
str r0, [sp, #4]
add r0, r4, #0
bl MOD14_021E0320
ldr r0, _021DFD20 ; =0x00000788
mov r1, #0
strb r1, [r4, r0]
add r0, r5, #0
bl FUN_0200CAB4
_021DFD14:
add sp, #0x18
pop {r4, r5, r6, pc}
.align 2, 0
_021DFD18: .word 0x00000784
_021DFD1C: .word 0x00000787
_021DFD20: .word 0x00000788
thumb_func_start MOD14_021DFD24
MOD14_021DFD24: ; 0x021DFD24
push {r3, r4, lr}
sub sp, #0xc
add r4, r0, #0
ldr r0, [r4, #4]
bl FUN_0202011C
add r3, r0, #0
ldmia r3!, {r0, r1}
add r2, sp, #0
stmia r2!, {r0, r1}
ldr r0, [r3]
mov r1, #0x77
str r0, [r2]
ldr r0, [sp, #4]
lsl r1, r1, #4
asr r0, r0, #0xc
sub r0, r0, #4
str r0, [r4, r1]
add r0, r1, #0
ldr r2, _021DFD74 ; =0xFFFFF000
add r0, #0x10
str r2, [r4, r0]
add r0, r1, #0
mov r2, #4
add r0, #0x17
strb r2, [r4, r0]
mov r2, #0
add r1, #0x14
strb r2, [r4, r1]
ldr r0, _021DFD78 ; =MOD14_021DFDBC
add r1, r4, #0
bl MOD14_021DDD40
cmp r0, #0
beq _021DFD70
ldr r0, _021DFD7C ; =0x00000788
mov r1, #1
strb r1, [r4, r0]
_021DFD70:
add sp, #0xc
pop {r3, r4, pc}
.align 2, 0
_021DFD74: .word 0xFFFFF000
_021DFD78: .word MOD14_021DFDBC
_021DFD7C: .word 0x00000788
thumb_func_start MOD14_021DFD80
MOD14_021DFD80: ; 0x021DFD80
push {r4, lr}
ldr r1, _021DFDB8 ; =0x00000788
add r4, r0, #0
ldrb r0, [r4, r1]
cmp r0, #0
bne _021DFDB2
add r0, r1, #4
ldrb r0, [r4, r0]
cmp r0, #0
bne _021DFDAE
add r0, r1, #5
ldrb r0, [r4, r0]
cmp r0, #0
bne _021DFDAE
ldr r0, [r4, #4]
bl FUN_020201DC
cmp r0, #0
beq _021DFDAE
ldr r0, [r4, #4]
mov r1, #0
bl FUN_02020130
_021DFDAE:
mov r0, #1
pop {r4, pc}
_021DFDB2:
mov r0, #0
pop {r4, pc}
nop
_021DFDB8: .word 0x00000788
thumb_func_start MOD14_021DFDBC
MOD14_021DFDBC: ; 0x021DFDBC
push {r3, r4, r5, r6, lr}
sub sp, #0xc
add r4, r1, #0
add r5, r0, #0
ldr r0, [r4, #4]
bl FUN_0202011C
add r6, r0, #0
add r3, sp, #0
ldmia r6!, {r0, r1}
add r2, r3, #0
stmia r3!, {r0, r1}
ldr r0, [r6]
str r0, [r3]
ldr r0, _021DFE20 ; =0x00000787
ldrb r1, [r4, r0]
cmp r1, #0
beq _021DFDFE
sub r0, r0, #7
ldr r1, [sp, #4]
ldr r0, [r4, r0]
add r0, r1, r0
str r0, [sp, #4]
add r0, r4, #0
add r1, r2, #0
bl MOD14_021E0320
ldr r0, _021DFE20 ; =0x00000787
add sp, #0xc
ldrb r1, [r4, r0]
sub r1, r1, #1
strb r1, [r4, r0]
pop {r3, r4, r5, r6, pc}
_021DFDFE:
sub r0, #0x17
ldr r0, [r4, r0]
add r1, r2, #0
lsl r0, r0, #0xc
str r0, [sp, #4]
add r0, r4, #0
bl MOD14_021E0320
ldr r0, _021DFE24 ; =0x00000788
mov r1, #0
strb r1, [r4, r0]
add r0, r5, #0
bl FUN_0200CAB4
add sp, #0xc
pop {r3, r4, r5, r6, pc}
nop
_021DFE20: .word 0x00000787
_021DFE24: .word 0x00000788
thumb_func_start MOD14_021DFE28
MOD14_021DFE28: ; 0x021DFE28
push {r4, lr}
add r4, r0, #0
mov r0, #0x79
lsl r0, r0, #4
ldr r0, [r4, r0]
bl MOD14_021DC424
mov r1, #0x79
lsl r1, r1, #4
mov r2, #0x11
ldr r3, [r4, r1]
lsl r2, r2, #4
ldrh r2, [r3, r2]
cmp r2, r0
bne _021DFE4E
sub r1, #0x38
ldr r0, [r4, r1]
bl MOD14_021DEA50
_021DFE4E:
add r0, r4, #0
bl MOD14_021E0720
ldr r0, [r4, #4]
mov r1, #0
bl FUN_02020130
pop {r4, pc}
.align 2, 0
thumb_func_start MOD14_021DFE60
MOD14_021DFE60: ; 0x021DFE60
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #4]
mov r1, #1
bl FUN_02020130
add r1, r4, #0
ldr r0, [r4, #0x48]
add r1, #0x4c
mov r2, #1
bl MOD14_021E0C20
ldr r0, _021DFE80 ; =0x00000784
mov r1, #0
strb r1, [r4, r0]
pop {r4, pc}
.align 2, 0
_021DFE80: .word 0x00000784
thumb_func_start MOD14_021DFE84
MOD14_021DFE84: ; 0x021DFE84
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r0, _021DFF14 ; =0x00000794
ldr r0, [r5, r0]
bl MOD14_021DDEDC
ldr r1, _021DFF18 ; =0x00000784
add r4, r0, #0
ldrb r1, [r5, r1]
cmp r1, #0
beq _021DFEA4
cmp r1, #1
beq _021DFEBC
cmp r1, #2
beq _021DFEF6
b _021DFF10
_021DFEA4:
add r1, r5, #0
ldr r0, [r5, #0x48]
add r1, #0x4c
bl MOD14_021E0C48
cmp r0, #0
beq _021DFF10
ldr r0, _021DFF18 ; =0x00000784
ldrb r1, [r5, r0]
add r1, r1, #1
strb r1, [r5, r0]
b _021DFF10
_021DFEBC:
bl MOD14_021DA1B8
cmp r0, #0
beq _021DFF10
add r0, r4, #0
bl MOD14_021DA1C0
cmp r0, #0
beq _021DFEE0
ldr r0, [r5, #4]
mov r1, #0
bl FUN_02020130
add r0, r5, #0
bl MOD14_021E0720
mov r0, #1
pop {r3, r4, r5, pc}
_021DFEE0:
add r1, r5, #0
ldr r0, [r5, #0x48]
add r1, #0x4c
mov r2, #2
bl MOD14_021E0C20
ldr r0, _021DFF18 ; =0x00000784
ldrb r1, [r5, r0]
add r1, r1, #1
strb r1, [r5, r0]
b _021DFF10
_021DFEF6:
add r1, r5, #0
ldr r0, [r5, #0x48]
add r1, #0x4c
bl MOD14_021E0C48
cmp r0, #0
beq _021DFF10
ldr r0, [r5, #4]
mov r1, #2
bl FUN_02020130
mov r0, #1
pop {r3, r4, r5, pc}
_021DFF10:
mov r0, #0
pop {r3, r4, r5, pc}
.align 2, 0
_021DFF14: .word 0x00000794
_021DFF18: .word 0x00000784
thumb_func_start MOD14_021DFF1C
MOD14_021DFF1C: ; 0x021DFF1C
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #4]
mov r1, #1
bl FUN_02020238
ldr r0, _021DFF4C ; =0x0000078C
ldrb r0, [r4, r0]
cmp r0, #0
beq _021DFF38
ldr r0, [r4, #0x4c]
mov r1, #1
bl FUN_02020238
_021DFF38:
ldr r0, _021DFF50 ; =0x0000078D
ldrb r1, [r4, r0]
cmp r1, #0
beq _021DFF4A
sub r0, #0x2d
ldr r0, [r4, r0]
mov r1, #1
bl MOD14_021E501C
_021DFF4A:
pop {r4, pc}
.align 2, 0
_021DFF4C: .word 0x0000078C
_021DFF50: .word 0x0000078D
thumb_func_start MOD14_021DFF54
MOD14_021DFF54: ; 0x021DFF54
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #4]
mov r1, #2
bl FUN_02020238
ldr r0, _021DFF84 ; =0x0000078C
ldrb r0, [r4, r0]
cmp r0, #0
beq _021DFF70
ldr r0, [r4, #0x4c]
mov r1, #2
bl FUN_02020238
_021DFF70:
ldr r0, _021DFF88 ; =0x0000078D
ldrb r1, [r4, r0]
cmp r1, #0
beq _021DFF82
sub r0, #0x2d
ldr r0, [r4, r0]
mov r1, #2
bl MOD14_021E501C
_021DFF82:
pop {r4, pc}
.align 2, 0
_021DFF84: .word 0x0000078C
_021DFF88: .word 0x0000078D
thumb_func_start MOD14_021DFF8C
MOD14_021DFF8C: ; 0x021DFF8C
push {r4, lr}
add r4, r0, #0
ldr r0, _021DFFB0 ; =0x0000078C
ldrb r1, [r4, r0]
cmp r1, #0
beq _021DFFAC
add r0, r0, #4
ldr r0, [r4, r0]
bl MOD14_021DC45C
add r2, r0, #0
ldr r0, [r4, #0x48]
add r4, #0x4c
add r1, r4, #0
bl MOD14_021E0BA4
_021DFFAC:
pop {r4, pc}
nop
_021DFFB0: .word 0x0000078C
thumb_func_start MOD14_021DFFB4
MOD14_021DFFB4: ; 0x021DFFB4
push {r4, lr}
add r4, r0, #0
mov r0, #0x79
lsl r0, r0, #4
ldr r0, [r4, r0]
bl MOD14_021DC484
add r2, r0, #0
ldr r0, [r4, #0x4c]
cmp r0, #0
beq _021DFFD4
ldr r0, [r4, #0x48]
add r4, #0x4c
add r1, r4, #0
bl MOD14_021E0B54
_021DFFD4:
pop {r4, pc}
.align 2, 0
thumb_func_start MOD14_021DFFD8
MOD14_021DFFD8: ; 0x021DFFD8
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0x4c]
add r2, r1, #0
cmp r0, #0
beq _021E0004
add r1, r4, #0
ldr r0, [r4, #0x48]
add r1, #0x4c
bl MOD14_021E0BA8
mov r0, #0x79
lsl r0, r0, #4
ldr r0, [r4, r0]
bl MOD14_021DC484
add r2, r0, #0
ldr r0, [r4, #0x48]
add r4, #0x4c
add r1, r4, #0
bl MOD14_021E0B54
_021E0004:
pop {r4, pc}
.align 2, 0
thumb_func_start MOD14_021E0008
MOD14_021E0008: ; 0x021E0008
push {r4, lr}
add r4, r0, #0
mov r0, #0x79
lsl r0, r0, #4
ldr r0, [r4, r0]
bl MOD14_021DC49C
cmp r0, #0
ldr r0, [r4, #4]
beq _021E0024
mov r1, #1
bl FUN_02020248
pop {r4, pc}
_021E0024:
mov r1, #0
bl FUN_02020248
pop {r4, pc}
thumb_func_start MOD14_021E002C
MOD14_021E002C: ; 0x021E002C
ldr r3, _021E0034 ; =FUN_02020130
ldr r0, [r0, #4]
mov r1, #1
bx r3
.align 2, 0
_021E0034: .word FUN_02020130
thumb_func_start MOD14_021E0038
MOD14_021E0038: ; 0x021E0038
push {r4, lr}
ldr r0, [r0, #4]
add r4, r1, #0
bl FUN_0202011C
add r2, r0, #0
ldmia r2!, {r0, r1}
stmia r4!, {r0, r1}
ldr r0, [r2]
str r0, [r4]
pop {r4, pc}
.align 2, 0
thumb_func_start MOD14_021E0050
MOD14_021E0050: ; 0x021E0050
push {r4, lr}
add r4, r0, #0
ldr r0, _021E0074 ; =0x00000784
mov r2, #0
strb r2, [r4, r0]
ldr r0, _021E0078 ; =MOD14_021E0094
add r1, r4, #0
bl FUN_0200CA44
cmp r0, #0
beq _021E0070
ldr r0, _021E007C ; =0x0000078D
mov r1, #1
strb r1, [r4, r0]
sub r0, r0, #5
strb r1, [r4, r0]
_021E0070:
pop {r4, pc}
nop
_021E0074: .word 0x00000784
_021E0078: .word MOD14_021E0094
_021E007C: .word 0x0000078D
thumb_func_start MOD14_021E0080
MOD14_021E0080: ; 0x021E0080
ldr r1, _021E0090 ; =0x00000788
ldrb r0, [r0, r1]
cmp r0, #0
bne _021E008C
mov r0, #1
bx lr
_021E008C:
mov r0, #0
bx lr
.align 2, 0
_021E0090: .word 0x00000788
thumb_func_start MOD14_021E0094
MOD14_021E0094: ; 0x021E0094
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r0, _021E00E8 ; =0x00000784
add r4, r1, #0
ldrb r1, [r4, r0]
cmp r1, #0
beq _021E00A8
cmp r1, #1
beq _021E00C4
pop {r3, r4, r5, pc}
_021E00A8:
ldr r0, [r4, #4]
mov r1, #1
bl FUN_02020130
mov r0, #0x76
lsl r0, r0, #4
ldr r0, [r4, r0]
bl MOD14_021E4D94
ldr r0, _021E00E8 ; =0x00000784
ldrb r1, [r4, r0]
add r1, r1, #1
strb r1, [r4, r0]
pop {r3, r4, r5, pc}
_021E00C4:
sub r0, #0x24
ldr r0, [r4, r0]
bl MOD14_021E4DE8
cmp r0, #0
beq _021E00E4
ldr r0, [r4, #4]
mov r1, #2
bl FUN_02020130
ldr r0, _021E00EC ; =0x00000788
mov r1, #0
strb r1, [r4, r0]
add r0, r5, #0
bl FUN_0200CAB4
_021E00E4:
pop {r3, r4, r5, pc}
nop
_021E00E8: .word 0x00000784
_021E00EC: .word 0x00000788
thumb_func_start MOD14_021E00F0
MOD14_021E00F0: ; 0x021E00F0
push {r4, lr}
add r4, r0, #0
ldr r0, _021E0114 ; =0x00000784
mov r2, #0
strb r2, [r4, r0]
ldr r0, _021E0118 ; =MOD14_021E0134
add r1, r4, #0
bl FUN_0200CA44
cmp r0, #0
beq _021E0112
ldr r0, _021E011C ; =0x0000078D
mov r1, #0
strb r1, [r4, r0]
mov r1, #1
sub r0, r0, #5
strb r1, [r4, r0]
_021E0112:
pop {r4, pc}
.align 2, 0
_021E0114: .word 0x00000784
_021E0118: .word MOD14_021E0134
_021E011C: .word 0x0000078D
thumb_func_start MOD14_021E0120
MOD14_021E0120: ; 0x021E0120
ldr r1, _021E0130 ; =0x00000788
ldrb r0, [r0, r1]
cmp r0, #0
bne _021E012C
mov r0, #1
bx lr
_021E012C:
mov r0, #0
bx lr
.align 2, 0
_021E0130: .word 0x00000788
thumb_func_start MOD14_021E0134
MOD14_021E0134: ; 0x021E0134
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r0, _021E0188 ; =0x00000784
add r4, r1, #0
ldrb r1, [r4, r0]
cmp r1, #0
beq _021E0148
cmp r1, #1
beq _021E0164
pop {r3, r4, r5, pc}
_021E0148:
ldr r0, [r4, #4]
mov r1, #1
bl FUN_02020130
mov r0, #0x76
lsl r0, r0, #4
ldr r0, [r4, r0]
bl MOD14_021E4E58
ldr r0, _021E0188 ; =0x00000784
ldrb r1, [r4, r0]
add r1, r1, #1
strb r1, [r4, r0]
pop {r3, r4, r5, pc}
_021E0164:
sub r0, #0x24
ldr r0, [r4, r0]
bl MOD14_021E4EA4
cmp r0, #0
beq _021E0184
ldr r0, [r4, #4]
mov r1, #0
bl FUN_02020130
ldr r0, _021E018C ; =0x00000788
mov r1, #0
strb r1, [r4, r0]
add r0, r5, #0
bl FUN_0200CAB4
_021E0184:
pop {r3, r4, r5, pc}
nop
_021E0188: .word 0x00000784
_021E018C: .word 0x00000788
thumb_func_start MOD14_021E0190
MOD14_021E0190: ; 0x021E0190
push {r4, lr}
add r4, r0, #0
ldr r0, _021E01B0 ; =0x00000784
mov r2, #0
strb r2, [r4, r0]
ldr r0, _021E01B4 ; =MOD14_021E01D0
add r1, r4, #0
bl FUN_0200CA44
cmp r0, #0
beq _021E01AC
ldr r0, _021E01B8 ; =0x00000788
mov r1, #1
strb r1, [r4, r0]
_021E01AC:
pop {r4, pc}
nop
_021E01B0: .word 0x00000784
_021E01B4: .word MOD14_021E01D0
_021E01B8: .word 0x00000788
thumb_func_start MOD14_021E01BC
MOD14_021E01BC: ; 0x021E01BC
ldr r1, _021E01CC ; =0x00000788
ldrb r0, [r0, r1]
cmp r0, #0
bne _021E01C8
mov r0, #1
bx lr
_021E01C8:
mov r0, #0
bx lr
.align 2, 0
_021E01CC: .word 0x00000788
thumb_func_start MOD14_021E01D0
MOD14_021E01D0: ; 0x021E01D0
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r0, _021E0224 ; =0x00000784
add r4, r1, #0
ldrb r1, [r4, r0]
cmp r1, #0
beq _021E01E4
cmp r1, #1
beq _021E0200
pop {r3, r4, r5, pc}
_021E01E4:
ldr r0, [r4, #4]
mov r1, #1
bl FUN_02020130
mov r0, #0x76
lsl r0, r0, #4
ldr r0, [r4, r0]
bl MOD14_021E4EB4
ldr r0, _021E0224 ; =0x00000784
ldrb r1, [r4, r0]
add r1, r1, #1
strb r1, [r4, r0]
pop {r3, r4, r5, pc}
_021E0200:
sub r0, #0x24
ldr r0, [r4, r0]
bl MOD14_021E4F48
cmp r0, #0
beq _021E0220
ldr r0, [r4, #4]
mov r1, #2
bl FUN_02020130
ldr r0, _021E0228 ; =0x00000788
mov r1, #0
strb r1, [r4, r0]
add r0, r5, #0
bl FUN_0200CAB4
_021E0220:
pop {r3, r4, r5, pc}
nop
_021E0224: .word 0x00000784
_021E0228: .word 0x00000788
thumb_func_start MOD14_021E022C
MOD14_021E022C: ; 0x021E022C
push {r3, lr}
ldr r1, _021E0240 ; =0x0000078D
ldrb r1, [r0, r1]
cmp r1, #0
beq _021E023E
ldr r0, [r0, #4]
mov r1, #1
bl FUN_02020130
_021E023E:
pop {r3, pc}
.align 2, 0
_021E0240: .word 0x0000078D
thumb_func_start MOD14_021E0244
MOD14_021E0244: ; 0x021E0244
push {r4, lr}
add r4, r0, #0
ldr r0, _021E0260 ; =0x0000078D
ldrb r0, [r4, r0]
cmp r0, #0
beq _021E025E
ldr r0, [r4, #4]
mov r1, #0
bl FUN_02020130
ldr r0, _021E0260 ; =0x0000078D
mov r1, #0
strb r1, [r4, r0]
_021E025E:
pop {r4, pc}
.align 2, 0
_021E0260: .word 0x0000078D
thumb_func_start MOD14_021E0264
MOD14_021E0264: ; 0x021E0264
push {r3, r4, r5, r6, r7, lr}
add r6, r0, #0
mov r0, #0x79
add r5, r3, #0
lsl r0, r0, #4
ldr r0, [r5, r0]
add r7, r2, #0
add r4, r1, #0
str r0, [sp]
bl MOD14_021DC3CC
strb r0, [r7]
ldrb r0, [r7]
cmp r0, #4
bhi _021E0318
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021E028E: ; jump table
.short _021E0298 - _021E028E - 2 ; case 0
.short _021E02C2 - _021E028E - 2 ; case 1
.short _021E02E4 - _021E028E - 2 ; case 2
.short _021E02F6 - _021E028E - 2 ; case 3
.short _021E0308 - _021E028E - 2 ; case 4
_021E0298:
ldr r0, _021E031C ; =0x00000794
ldr r0, [r5, r0]
bl MOD14_021DDD98
add r5, r0, #0
ldr r0, [sp]
bl MOD14_021DC3D0
mov r1, #0x18
add r5, #0x70
mul r1, r0
add r0, r5, r1
str r0, [r6]
ldr r0, [sp]
bl MOD14_021DC3D8
mov r1, #0x18
mul r1, r0
add r1, #0x18
str r1, [r4]
pop {r3, r4, r5, r6, r7, pc}
_021E02C2:
ldr r0, [sp]
bl MOD14_021DC3E8
add r7, r0, #0
ldr r0, _021E031C ; =0x00000794
ldr r0, [r5, r0]
bl MOD14_021DDD60
add r1, r7, #0
add r2, r6, #0
add r3, r4, #0
bl MOD14_021E3170
ldr r0, [r4]
sub r0, #0x10
str r0, [r4]
pop {r3, r4, r5, r6, r7, pc}
_021E02E4:
ldr r0, _021E031C ; =0x00000794
ldr r0, [r5, r0]
bl MOD14_021DDD98
add r0, #0xa8
str r0, [r6]
mov r0, #8
str r0, [r4]
pop {r3, r4, r5, r6, r7, pc}
_021E02F6:
ldr r0, _021E031C ; =0x00000794
ldr r0, [r5, r0]
bl MOD14_021DDD98
add r0, #0x9f
str r0, [r6]
mov r0, #0xa0
str r0, [r4]
pop {r3, r4, r5, r6, r7, pc}
_021E0308:
ldr r0, _021E031C ; =0x00000794
ldr r0, [r5, r0]
bl MOD14_021DDD98
add r0, #0xeb
str r0, [r6]
mov r0, #0xa0
str r0, [r4]
_021E0318:
pop {r3, r4, r5, r6, r7, pc}
nop
_021E031C: .word 0x00000794
thumb_func_start MOD14_021E0320
MOD14_021E0320: ; 0x021E0320
push {r4, r5, r6, r7, lr}
sub sp, #0x1c
add r7, r0, #0
ldr r0, [r7, #4]
add r6, r1, #0
bl FUN_02020044
ldr r1, _021E03B4 ; =0x0000078C
ldrb r0, [r7, r1]
cmp r0, #0
beq _021E0378
mov r0, #0
sub r1, #0x38
str r0, [sp]
str r0, [sp, #0x18]
ldr r0, [r7, r1]
cmp r0, #0
bls _021E0378
add r4, r7, #0
add r5, r7, #0
_021E0348:
ldr r0, _021E03B8 ; =0x00000664
ldr r1, [r6]
ldr r0, [r4, r0]
add r0, r1, r0
str r0, [sp, #0x10]
ldr r0, _021E03BC ; =0x00000668
ldr r1, [r6, #4]
ldr r0, [r4, r0]
sub r0, r1, r0
str r0, [sp, #0x14]
ldr r0, [r5, #0x4c]
add r1, sp, #0x10
bl FUN_02020044
ldr r0, [sp]
add r4, #8
add r0, r0, #1
str r0, [sp]
ldr r0, _021E03C0 ; =0x00000754
add r5, #0x34
ldr r1, [r7, r0]
ldr r0, [sp]
cmp r0, r1
blo _021E0348
_021E0378:
ldr r0, _021E03C4 ; =0x0000078D
ldrb r1, [r7, r0]
cmp r1, #0
beq _021E038A
sub r0, #0x2d
ldr r0, [r7, r0]
add r1, r6, #0
bl MOD14_021E4FDC
_021E038A:
ldr r0, _021E03C8 ; =0x0000078E
ldrb r0, [r7, r0]
cmp r0, #0
beq _021E03B0
ldmia r6!, {r0, r1}
add r3, sp, #4
add r2, r3, #0
stmia r3!, {r0, r1}
ldr r0, [r6]
str r0, [r3]
mov r0, #6
ldr r1, [sp, #8]
lsl r0, r0, #0xe
add r0, r1, r0
str r0, [sp, #8]
ldr r0, [r7, #8]
add r1, r2, #0
bl FUN_02020044
_021E03B0:
add sp, #0x1c
pop {r4, r5, r6, r7, pc}
.align 2, 0
_021E03B4: .word 0x0000078C
_021E03B8: .word 0x00000664
_021E03BC: .word 0x00000668
_021E03C0: .word 0x00000754
_021E03C4: .word 0x0000078D
_021E03C8: .word 0x0000078E
thumb_func_start MOD14_021E03CC
MOD14_021E03CC: ; 0x021E03CC
push {r4, r5, r6, r7, lr}
sub sp, #0x34
mov r1, #0x79
lsl r1, r1, #4
str r0, [sp, #4]
ldr r0, [r0, r1]
bl MOD14_021DC3CC
cmp r0, #0
beq _021E03E2
b _021E0504
_021E03E2:
mov r1, #0x79
ldr r0, [sp, #4]
lsl r1, r1, #4
ldr r0, [r0, r1]
bl MOD14_021DC4DC
cmp r0, #0
beq _021E042A
mov r1, #0x79
ldr r0, [sp, #4]
lsl r1, r1, #4
ldr r0, [r0, r1]
bl MOD14_021DC3E0
add r1, r0, #0
ldr r3, [sp, #4]
ldr r2, _021E053C ; =0x00000758
ldr r0, [sp, #4]
add r3, #0x4c
ldr r0, [r0, r2]
ldr r2, _021E0540 ; =0x000004D8
bl MOD14_021DE980
ldr r0, [sp, #4]
ldr r2, _021E0544 ; =0x00000754
mov r1, #1
str r1, [r0, r2]
add r1, r2, #0
mov r3, #0
sub r1, #0xf0
str r3, [r0, r1]
ldr r1, _021E0548 ; =0xFFFFC000
sub r2, #0xec
str r1, [r0, r2]
add sp, #0x34
pop {r4, r5, r6, r7, pc}
_021E042A:
add r0, sp, #0x24
str r0, [sp]
mov r1, #0x79
ldr r0, [sp, #4]
lsl r1, r1, #4
ldr r0, [r0, r1]
add r1, sp, #0x30
add r2, sp, #0x2c
add r3, sp, #0x28
bl MOD14_021DC4A4
mov r1, #0x79
ldr r0, [sp, #4]
lsl r1, r1, #4
ldr r0, [r0, r1]
bl MOD14_021DC3D0
str r0, [sp, #0x18]
mov r1, #0x79
ldr r0, [sp, #4]
lsl r1, r1, #4
ldr r0, [r0, r1]
bl MOD14_021DC3D8
str r0, [sp, #0x14]
mov r0, #0
str r0, [sp, #0x20]
ldr r0, [sp, #0x28]
ldr r1, [sp, #0x24]
str r0, [sp, #0x1c]
cmp r0, r1
bhi _021E04F8
ldr r0, [sp, #4]
ldr r6, [sp, #4]
str r0, [sp, #0x10]
add r0, #0x4c
str r0, [sp, #0x10]
mov r7, #0x5f
ldr r0, [sp, #0x1c]
mov r1, #6
mul r1, r0
lsl r7, r7, #4
str r1, [sp, #0xc]
add r5, r6, #0
_021E0482:
ldr r4, [sp, #0x30]
ldr r0, [sp, #0x2c]
cmp r4, r0
bhi _021E04E6
ldr r1, [sp, #0x1c]
ldr r0, [sp, #0x14]
sub r1, r1, r0
mov r0, #0x18
add r2, r1, #0
mul r2, r0
sub r0, #0x1c
sub r0, r0, r2
lsl r0, r0, #0xc
str r0, [sp, #8]
_021E049E:
ldr r1, [sp, #4]
ldr r0, _021E053C ; =0x00000758
ldr r3, [sp, #0x10]
ldr r0, [r1, r0]
ldr r1, [sp, #0xc]
add r2, r7, #0
add r1, r4, r1
bl MOD14_021DE980
ldr r0, [r6, #0x4c]
cmp r0, #0
beq _021E04DE
ldr r0, [sp, #0x18]
add r7, #0x10
sub r1, r4, r0
mov r0, #6
add r2, r1, #0
lsl r0, r0, #0xe
mul r2, r0
ldr r0, _021E054C ; =0x00000664
ldr r1, [sp, #8]
str r2, [r5, r0]
add r0, r0, #4
str r1, [r5, r0]
ldr r0, [sp, #0x10]
add r6, #0x34
add r0, #0x34
str r0, [sp, #0x10]
ldr r0, [sp, #0x20]
add r5, #8
add r0, r0, #1
str r0, [sp, #0x20]
_021E04DE:
ldr r0, [sp, #0x2c]
add r4, r4, #1
cmp r4, r0
bls _021E049E
_021E04E6:
ldr r0, [sp, #0xc]
ldr r1, [sp, #0x24]
add r0, r0, #6
str r0, [sp, #0xc]
ldr r0, [sp, #0x1c]
add r0, r0, #1
str r0, [sp, #0x1c]
cmp r0, r1
bls _021E0482
_021E04F8:
ldr r2, _021E0544 ; =0x00000754
ldr r1, [sp, #0x20]
ldr r0, [sp, #4]
add sp, #0x34
str r1, [r0, r2]
pop {r4, r5, r6, r7, pc}
_021E0504:
mov r1, #0x79
ldr r0, [sp, #4]
lsl r1, r1, #4
ldr r0, [r0, r1]
bl MOD14_021DC3E8
add r1, r0, #0
ldr r3, [sp, #4]
ldr r2, _021E0550 ; =0x0000075C
ldr r0, [sp, #4]
add r3, #0x4c
ldr r0, [r0, r2]
ldr r2, _021E0540 ; =0x000004D8
bl MOD14_021E3084
ldr r2, _021E0544 ; =0x00000754
ldr r0, [sp, #4]
mov r1, #1
str r1, [r0, r2]
add r1, r2, #0
mov r3, #0
sub r1, #0xf0
str r3, [r0, r1]
ldr r1, _021E0548 ; =0xFFFFC000
sub r2, #0xec
str r1, [r0, r2]
add sp, #0x34
pop {r4, r5, r6, r7, pc}
.align 2, 0
_021E053C: .word 0x00000758
_021E0540: .word 0x000004D8
_021E0544: .word 0x00000754
_021E0548: .word 0xFFFFC000
_021E054C: .word 0x00000664
_021E0550: .word 0x0000075C
thumb_func_start MOD14_021E0554
MOD14_021E0554: ; 0x021E0554
push {r3, r4, r5, r6, r7, lr}
add r6, r0, #0
ldr r0, _021E0580 ; =0x00000754
mov r4, #0
ldr r0, [r6, r0]
cmp r0, #0
bls _021E0578
ldr r7, _021E0580 ; =0x00000754
add r5, r6, #0
_021E0566:
ldr r0, [r5, #0x4c]
mov r1, #2
bl MOD14_021DDE24
ldr r0, [r6, r7]
add r4, r4, #1
add r5, #0x34
cmp r4, r0
blo _021E0566
_021E0578:
ldr r0, _021E0584 ; =0x0000078C
mov r1, #1
strb r1, [r6, r0]
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_021E0580: .word 0x00000754
_021E0584: .word 0x0000078C
thumb_func_start MOD14_021E0588
MOD14_021E0588: ; 0x021E0588
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
mov r0, #0x79
lsl r0, r0, #4
ldr r0, [r5, r0]
bl MOD14_021DC3CC
cmp r0, #0
bne _021E0604
mov r0, #0x79
lsl r0, r0, #4
ldr r0, [r5, r0]
bl MOD14_021DC4DC
cmp r0, #0
beq _021E05C2
mov r0, #0x79
lsl r0, r0, #4
ldr r0, [r5, r0]
bl MOD14_021DC3E0
add r1, r0, #0
ldr r0, _021E0620 ; =0x00000758
ldr r0, [r5, r0]
add r5, #0x4c
add r2, r5, #0
bl MOD14_021DE9D4
pop {r3, r4, r5, r6, r7, pc}
_021E05C2:
mov r0, #0x79
lsl r0, r0, #4
ldr r0, [r5, r0]
bl MOD14_021DC4F8
add r7, r0, #0
ldr r0, _021E0624 ; =0x00000754
mov r4, #0
ldr r0, [r5, r0]
cmp r0, #0
bls _021E061C
add r6, r5, #0
add r6, #0x4c
_021E05DC:
mov r0, #0x79
lsl r0, r0, #4
ldr r0, [r5, r0]
add r1, r4, #0
bl MOD14_021DC528
add r1, r0, #0
ldr r0, _021E0620 ; =0x00000758
add r1, r7, r1
ldr r0, [r5, r0]
add r2, r6, #0
bl MOD14_021DE9D4
ldr r0, _021E0624 ; =0x00000754
add r4, r4, #1
ldr r0, [r5, r0]
add r6, #0x34
cmp r4, r0
blo _021E05DC
pop {r3, r4, r5, r6, r7, pc}
_021E0604:
mov r0, #0x79
lsl r0, r0, #4
ldr r0, [r5, r0]
bl MOD14_021DC3E8
add r1, r0, #0
ldr r0, _021E0628 ; =0x0000075C
ldr r0, [r5, r0]
add r5, #0x4c
add r2, r5, #0
bl MOD14_021E30C0
_021E061C:
pop {r3, r4, r5, r6, r7, pc}
nop
_021E0620: .word 0x00000758
_021E0624: .word 0x00000754
_021E0628: .word 0x0000075C
thumb_func_start MOD14_021E062C
MOD14_021E062C: ; 0x021E062C
push {r4, r5, r6, lr}
add r5, r0, #0
mov r0, #0x79
lsl r0, r0, #4
ldr r0, [r5, r0]
bl MOD14_021DC3CC
cmp r0, #0
bne _021E06A2
mov r0, #0x79
lsl r0, r0, #4
ldr r0, [r5, r0]
bl MOD14_021DC3E0
add r4, r0, #0
ldr r0, _021E0708 ; =0x00000758
add r1, r4, #0
ldr r0, [r5, r0]
bl MOD14_021DEA38
add r6, r0, #0
add r1, r5, #0
mov r2, #0x5f
ldr r0, [r5, #0x48]
add r1, #0x4c
lsl r2, r2, #4
bl MOD14_021E0BBC
mov r2, #6
ldr r0, [r5, #0x48]
add r1, r6, #0
lsl r2, r2, #8
bl MOD14_021E0BBC
bl OS_WaitVBlankIntr
ldr r0, _021E0708 ; =0x00000758
add r3, r5, #0
ldr r0, [r5, r0]
ldr r2, _021E070C ; =0x000004D8
add r1, r4, #0
add r3, #0x80
bl MOD14_021DE980
ldr r0, _021E0708 ; =0x00000758
add r2, r5, #0
ldr r0, [r5, r0]
add r1, r4, #0
add r2, #0x4c
bl MOD14_021DE9D4
add r0, r5, #0
add r5, #0x4c
add r0, #0x80
add r1, r5, #0
mov r2, #1
bl MOD14_021E0930
pop {r4, r5, r6, pc}
_021E06A2:
mov r0, #0x79
lsl r0, r0, #4
ldr r0, [r5, r0]
bl MOD14_021DC3E8
add r4, r0, #0
ldr r0, _021E0710 ; =0x0000075C
add r1, r4, #0
ldr r0, [r5, r0]
bl MOD14_021E3158
add r6, r0, #0
add r1, r5, #0
mov r2, #0x5f
ldr r0, [r5, #0x48]
add r1, #0x4c
lsl r2, r2, #4
bl MOD14_021E0BBC
mov r2, #6
ldr r0, [r5, #0x48]
add r1, r6, #0
lsl r2, r2, #8
bl MOD14_021E0BBC
bl OS_WaitVBlankIntr
ldr r0, _021E0710 ; =0x0000075C
add r3, r5, #0
ldr r0, [r5, r0]
ldr r2, _021E070C ; =0x000004D8
add r1, r4, #0
add r3, #0x80
bl MOD14_021E3084
ldr r0, _021E0710 ; =0x0000075C
add r2, r5, #0
ldr r0, [r5, r0]
add r1, r4, #0
add r2, #0x4c
bl MOD14_021E3114
add r0, r5, #0
add r5, #0x4c
add r0, #0x80
add r1, r5, #0
mov r2, #1
bl MOD14_021E0930
pop {r4, r5, r6, pc}
nop
_021E0708: .word 0x00000758
_021E070C: .word 0x000004D8
_021E0710: .word 0x0000075C
thumb_func_start MOD14_021E0714
MOD14_021E0714: ; 0x021E0714
ldr r1, _021E071C ; =0x0000078C
mov r2, #0
strb r2, [r0, r1]
bx lr
.align 2, 0
_021E071C: .word 0x0000078C
thumb_func_start MOD14_021E0720
MOD14_021E0720: ; 0x021E0720
push {r4, lr}
add r4, r0, #0
add r1, r4, #0
ldr r0, [r4, #0x48]
add r1, #0x4c
mov r2, #1
bl MOD14_021E0908
ldr r0, _021E073C ; =0x0000078C
mov r1, #0
strb r1, [r4, r0]
sub r0, #0x38
str r1, [r4, r0]
pop {r4, pc}
.align 2, 0
_021E073C: .word 0x0000078C
thumb_func_start MOD14_021E0740
MOD14_021E0740: ; 0x021E0740
push {r4, lr}
add r4, r0, #0
mov r0, #0x79
lsl r0, r0, #4
ldr r0, [r4, r0]
bl MOD14_021DC3CC
cmp r0, #0
bne _021E076A
mov r0, #0x79
lsl r0, r0, #4
ldr r0, [r4, r0]
bl MOD14_021DC3E0
add r1, r0, #0
ldr r0, _021E0784 ; =0x00000758
ldr r0, [r4, r0]
bl MOD14_021DEA38
ldr r0, [r0]
pop {r4, pc}
_021E076A:
mov r0, #0x79
lsl r0, r0, #4
ldr r0, [r4, r0]
bl MOD14_021DC3E8
add r1, r0, #0
ldr r0, _021E0788 ; =0x0000075C
ldr r0, [r4, r0]
bl MOD14_021E3158
ldr r0, [r0]
pop {r4, pc}
nop
_021E0784: .word 0x00000758
_021E0788: .word 0x0000075C
thumb_func_start MOD14_021E078C
MOD14_021E078C: ; 0x021E078C
push {r4, r5, r6, r7, lr}
sub sp, #0x2c
add r5, r0, #0
add r0, sp, #0x18
add r4, r1, #0
add r6, r2, #0
str r3, [sp, #8]
bl FUN_020B19DC
bl FUN_0206B888
add r1, r0, #0
mov r0, #0xa
str r0, [sp]
add r0, sp, #0x18
str r0, [sp, #4]
mov r0, #0x13
mov r2, #1
mov r3, #0x40
bl FUN_02006A8C
bl FUN_0206B888
add r1, r0, #0
mov r0, #0x13
add r2, sp, #0x14
mov r3, #0xa
bl FUN_02006C08
str r0, [sp, #0xc]
cmp r0, #0
beq _021E0818
add r0, sp, #0x18
bl FUN_020B19DC
ldr r0, [sp, #0xc]
add r1, sp, #0x10
bl FUN_020B00F0
ldr r2, [sp, #0x14]
add r7, r0, #0
ldr r0, [r2, #0xc]
mov r1, #8
str r1, [sp]
ldr r2, [r2, #8]
ldr r3, _021E0898 ; =0x0000057F
add r1, r0, #0
lsr r2, r2, #1
bl MOD14_021DDE40
cmp r7, #0
beq _021E0806
add r0, sp, #0x18
str r0, [sp]
ldr r0, [sp, #0x14]
ldr r1, [sp, #0x10]
mov r2, #0xc0
mov r3, #1
bl FUN_020B10E8
b _021E0812
_021E0806:
ldr r0, [sp, #0x14]
mov r1, #0xc0
mov r2, #1
add r3, sp, #0x18
bl FUN_020B1240
_021E0812:
ldr r0, [sp, #0xc]
bl FreeToHeap
_021E0818:
mov r0, #0xa
add r3, r5, #0
str r0, [sp]
mov r0, #0x12
mov r1, #0x15
mov r2, #1
add r3, #0x10
bl FUN_02006C30
str r0, [r5, #8]
mov r0, #0xa
str r0, [sp]
mov r0, #0x12
mov r1, #0x16
mov r2, #1
add r3, r5, #4
bl FUN_02006C5C
str r0, [r5]
mov r0, #0xa
add r3, r5, #0
str r0, [sp]
mov r0, #0x12
mov r1, #0x17
mov r2, #1
add r3, #0x1c
bl FUN_02006C30
str r0, [r5, #0x14]
mov r0, #0xa
add r3, r5, #0
str r0, [sp]
mov r0, #0x12
mov r1, #0x18
mov r2, #1
add r3, #0x20
bl FUN_02006C5C
str r0, [r5, #0x18]
mov r0, #0x13
mov r1, #0xa
bl NARC_ctor
str r0, [r5, #0x48]
ldr r0, [r5, #8]
cmp r0, #0
beq _021E0882
ldr r0, [r5]
cmp r0, #0
beq _021E0882
ldr r0, [r5, #0x48]
cmp r0, #0
bne _021E0888
_021E0882:
add sp, #0x2c
mov r0, #0
pop {r4, r5, r6, r7, pc}
_021E0888:
ldr r0, [sp, #8]
str r0, [r5, #0x24]
str r6, [r5, #0x40]
str r4, [r5, #0x44]
mov r0, #1
add sp, #0x2c
pop {r4, r5, r6, r7, pc}
nop
_021E0898: .word 0x0000057F
thumb_func_start MOD14_021E089C
MOD14_021E089C: ; 0x021E089C
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #8]
cmp r0, #0
beq _021E08AE
bl FreeToHeap
mov r0, #0
str r0, [r4, #8]
_021E08AE:
ldr r0, [r4]
cmp r0, #0
beq _021E08BC
bl FreeToHeap
mov r0, #0
str r0, [r4]
_021E08BC:
ldr r0, [r4, #0x14]
cmp r0, #0
beq _021E08CA
bl FreeToHeap
mov r0, #0
str r0, [r4, #0x14]
_021E08CA:
ldr r0, [r4, #0x18]
cmp r0, #0
beq _021E08D8
bl FreeToHeap
mov r0, #0
str r0, [r4, #0x18]
_021E08D8:
ldr r0, [r4, #0x48]
cmp r0, #0
beq _021E08E2
bl NARC_dtor
_021E08E2:
pop {r4, pc}
thumb_func_start MOD14_021E08E4
MOD14_021E08E4: ; 0x021E08E4
push {r4, r5, r6, lr}
add r4, r2, #0
add r0, r4, #0
add r5, r1, #0
sub r4, r4, #1
cmp r0, #0
beq _021E0906
mov r6, #0
_021E08F4:
add r0, r5, #4
str r6, [r5]
bl FUN_020B1A24
add r0, r4, #0
add r5, #0x34
sub r4, r4, #1
cmp r0, #0
bne _021E08F4
_021E0906:
pop {r4, r5, r6, pc}
thumb_func_start MOD14_021E0908
MOD14_021E0908: ; 0x021E0908
push {r4, r5, r6, lr}
add r4, r2, #0
add r0, r4, #0
add r5, r1, #0
sub r4, r4, #1
cmp r0, #0
beq _021E092E
mov r6, #0
_021E0918:
ldr r0, [r5]
cmp r0, #0
beq _021E0924
bl FUN_0201FFC8
str r6, [r5]
_021E0924:
add r0, r4, #0
add r5, #0x34
sub r4, r4, #1
cmp r0, #0
bne _021E0918
_021E092E:
pop {r4, r5, r6, pc}
thumb_func_start MOD14_021E0930
MOD14_021E0930: ; 0x021E0930
mov r3, #0x34
mul r3, r2
add r2, r3, #0
ldr r3, _021E093C ; =0x020CE210
bx r3
nop
_021E093C: .word 0x020CE210
thumb_func_start MOD14_021E0940
MOD14_021E0940: ; 0x021E0940
push {r4, r5, r6, r7, lr}
sub sp, #0x44
add r6, r1, #0
add r5, r0, #0
add r0, r6, #0
str r2, [sp, #8]
str r3, [sp, #0xc]
ldr r4, [sp, #0x64]
bl FUN_02066A6C
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x10]
ldr r0, [r5, #0x44]
bl MOD14_021DDD48
add r2, r0, #0
ldr r0, [r5, #4]
mov r1, #0
str r0, [sp]
ldr r0, [sp, #0x58]
str r0, [sp, #4]
ldr r3, [r5, #0x10]
add r0, sp, #0x20
bl MOD14_021DDDB4
add r0, r6, #0
mov r1, #5
mov r2, #0
bl FUN_020672BC
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp, #0x18]
add r0, r6, #0
mov r1, #0x4c
mov r2, #0
bl FUN_020672BC
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x14]
add r0, r6, #0
mov r1, #0x70
mov r2, #0
bl FUN_020672BC
lsl r0, r0, #0x18
lsr r7, r0, #0x18
add r0, r6, #0
bl FUN_0206B688
str r0, [r4, #0x28]
ldr r0, [sp, #0x18]
ldr r2, [sp, #0x14]
add r1, r7, #0
bl FUN_0206B7BC
strh r0, [r4, #0x2c]
add r0, r6, #0
mov r1, #6
mov r2, #0
bl FUN_020672BC
strh r0, [r4, #0x30]
add r0, r6, #0
mov r1, #0xb
mov r2, #0
bl FUN_020672BC
strh r0, [r4, #0x2e]
add r0, r4, #4
bl FUN_020B1A24
add r0, r5, #0
add r0, #0x4c
str r0, [sp]
mov r3, #0xa
ldr r0, [r5, #0x48]
ldr r1, [r4, #0x28]
mov r2, #0
lsl r3, r3, #6
bl NARC_ReadFromMember
add r0, r5, #0
add r0, #0x4c
add r1, sp, #0x1c
bl FUN_020B0088
mov r2, #1
lsl r2, r2, #0x1a
ldr r1, [r2]
ldr r0, _021E0A5C ; =0x00300010
add r3, r4, #4
and r1, r0
ldr r0, [sp, #0x1c]
str r1, [r0, #8]
lsr r1, r2, #0x11
ldr r0, [sp, #0x1c]
mov r2, #1
str r1, [r0, #0x10]
ldr r1, [sp, #0x60]
ldr r0, [sp, #0x1c]
lsl r1, r1, #5
bl FUN_020B1768
add r0, r4, #4
str r0, [sp, #0x20]
ldr r0, [sp, #0x5c]
ldr r2, [sp, #8]
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
ldr r0, [r5, #0x24]
ldr r3, [sp, #0xc]
add r1, sp, #0x20
bl MOD14_021DDDD4
str r0, [r4]
cmp r0, #0
bne _021E0A36
bl ErrorHandling
_021E0A36:
ldrh r1, [r4, #0x2c]
ldr r0, [r4]
add r1, r1, #2
bl FUN_02020248
ldr r0, [r5, #0x40]
bl MOD14_021DC484
add r2, r0, #0
add r0, r5, #0
add r1, r4, #0
bl MOD14_021E0B54
ldr r1, [sp, #0x10]
add r0, r6, #0
bl FUN_02066A94
add sp, #0x44
pop {r4, r5, r6, r7, pc}
.align 2, 0
_021E0A5C: .word 0x00300010
thumb_func_start MOD14_021E0A60
MOD14_021E0A60: ; 0x021E0A60
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x40
add r6, r1, #0
add r5, r0, #0
add r0, r6, #0
str r2, [sp, #8]
add r7, r3, #0
ldr r4, [sp, #0x70]
bl FUN_02066A6C
str r0, [sp, #0x14]
add r0, r6, #0
mov r1, #0x4c
mov r2, #0
bl FUN_020672BC
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x10]
add r0, r6, #0
mov r1, #0x70
mov r2, #0
bl FUN_020672BC
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0xc]
ldr r0, [r5, #0x44]
bl MOD14_021DDD48
add r2, r0, #0
ldr r0, [r5, #4]
mov r1, #0
str r0, [sp]
ldr r0, [sp, #0x64]
str r0, [sp, #4]
ldr r3, [r5, #0x10]
add r0, sp, #0x1c
bl MOD14_021DDDB4
str r7, [r4, #0x28]
ldr r0, [sp, #8]
ldr r1, [sp, #0xc]
ldr r2, [sp, #0x10]
bl FUN_0206B7BC
strh r0, [r4, #0x2c]
add r0, r6, #0
mov r1, #6
mov r2, #0
bl FUN_020672BC
strh r0, [r4, #0x30]
add r0, r6, #0
mov r1, #0xb
mov r2, #0
bl FUN_020672BC
strh r0, [r4, #0x2e]
add r0, r4, #4
bl FUN_020B1A24
ldr r0, [sp, #0x58]
add r1, sp, #0x18
bl FUN_020B0088
mov r2, #1
lsl r2, r2, #0x1a
ldr r1, [r2]
ldr r0, _021E0B50 ; =0x00300010
add r3, r4, #4
and r1, r0
ldr r0, [sp, #0x18]
str r1, [r0, #8]
lsr r1, r2, #0x11
ldr r0, [sp, #0x18]
mov r2, #1
str r1, [r0, #0x10]
ldr r1, [sp, #0x6c]
ldr r0, [sp, #0x18]
lsl r1, r1, #5
bl FUN_020B1768
add r0, r4, #4
str r0, [sp, #0x1c]
ldr r0, [sp, #0x68]
ldr r2, [sp, #0x5c]
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
ldr r0, [r5, #0x24]
ldr r3, [sp, #0x60]
add r1, sp, #0x1c
bl MOD14_021DDDD4
str r0, [r4]
cmp r0, #0
bne _021E0B28
bl ErrorHandling
_021E0B28:
ldrh r1, [r4, #0x2c]
ldr r0, [r4]
add r1, r1, #2
bl FUN_02020248
ldr r0, [r5, #0x40]
bl MOD14_021DC484
add r2, r0, #0
add r0, r5, #0
add r1, r4, #0
bl MOD14_021E0B54
ldr r1, [sp, #0x14]
add r0, r6, #0
bl FUN_02066A94
add sp, #0x40
pop {r3, r4, r5, r6, r7, pc}
nop
_021E0B50: .word 0x00300010
thumb_func_start MOD14_021E0B54
MOD14_021E0B54: ; 0x021E0B54
push {r4, r5, r6, lr}
cmp r2, #0
beq _021E0B9A
mov r3, #1
add r0, r2, #0
tst r0, r3
beq _021E0B72
ldrh r0, [r1, #0x30]
cmp r0, #0
bne _021E0B72
ldr r0, [r1]
add r1, r3, #0
bl FUN_02020398
pop {r4, r5, r6, pc}
_021E0B72:
mov r3, #0
mov r4, #1
mov r0, #2
_021E0B78:
add r5, r0, #0
lsl r5, r3
tst r5, r2
beq _021E0B94
add r5, r4, #0
ldrh r6, [r1, #0x2e]
lsl r5, r3
tst r5, r6
bne _021E0B94
ldr r0, [r1]
add r1, r4, #0
bl FUN_02020398
pop {r4, r5, r6, pc}
_021E0B94:
add r3, r3, #1
cmp r3, #6
blt _021E0B78
_021E0B9A:
ldr r0, [r1]
mov r1, #0
bl FUN_02020398
pop {r4, r5, r6, pc}
thumb_func_start MOD14_021E0BA4
MOD14_021E0BA4: ; 0x021E0BA4
strh r2, [r1, #0x2e]
bx lr
thumb_func_start MOD14_021E0BA8
MOD14_021E0BA8: ; 0x021E0BA8
strh r2, [r1, #0x30]
bx lr
thumb_func_start MOD14_021E0BAC
MOD14_021E0BAC: ; 0x021E0BAC
push {r3, lr}
str r1, [sp]
ldr r0, [r0, #0x48]
add r1, r2, #0
mov r2, #0
bl NARC_ReadFromMember
pop {r3, pc}
thumb_func_start MOD14_021E0BBC
MOD14_021E0BBC: ; 0x021E0BBC
push {r4, r5, r6, lr}
sub sp, #8
add r4, r1, #0
add r5, r0, #0
ldr r0, [r4]
add r6, r2, #0
cmp r0, #0
beq _021E0C18
add r0, r4, #4
bl FUN_020B1A24
add r0, r5, #0
add r0, #0x4c
str r0, [sp]
mov r3, #0xa
ldr r0, [r5, #0x48]
ldr r1, [r4, #0x28]
mov r2, #0
lsl r3, r3, #6
bl NARC_ReadFromMember
add r5, #0x4c
add r0, r5, #0
add r1, sp, #4
bl FUN_020B0088
mov r2, #1
lsl r2, r2, #0x1a
ldr r1, [r2]
ldr r0, _021E0C1C ; =0x00300010
add r3, r4, #4
and r1, r0
ldr r0, [sp, #4]
str r1, [r0, #8]
lsr r1, r2, #0x11
ldr r0, [sp, #4]
mov r2, #1
str r1, [r0, #0x10]
ldr r0, [sp, #4]
lsl r1, r6, #5
bl FUN_020B1768
ldr r0, [r4]
add r1, r4, #4
bl FUN_02020334
_021E0C18:
add sp, #8
pop {r4, r5, r6, pc}
.align 2, 0
_021E0C1C: .word 0x00300010
thumb_func_start MOD14_021E0C20
MOD14_021E0C20: ; 0x021E0C20
push {r3, r4, r5, lr}
add r4, r2, #0
add r5, r1, #0
sub r0, r4, #1
cmp r0, #1
ldr r0, [r5]
bhi _021E0C36
mov r1, #1
bl FUN_020200EC
b _021E0C3C
_021E0C36:
mov r1, #0
bl FUN_020200EC
_021E0C3C:
ldr r0, [r5]
add r1, r4, #0
bl FUN_02020130
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_start MOD14_021E0C48
MOD14_021E0C48: ; 0x021E0C48
push {r3, lr}
ldr r0, [r1]
bl FUN_02020388
cmp r0, #0
bne _021E0C58
mov r0, #1
pop {r3, pc}
_021E0C58:
mov r0, #0
pop {r3, pc}
thumb_func_start MOD14_021E0C5C
MOD14_021E0C5C: ; 0x021E0C5C
cmp r2, #0
beq _021E0C64
mov r2, #6
b _021E0C66
_021E0C64:
mov r2, #2
_021E0C66:
ldr r0, [r1]
ldrh r1, [r1, #0x2c]
ldr r3, _021E0C70 ; =FUN_02020248
add r1, r1, r2
bx r3
.align 2, 0
_021E0C70: .word FUN_02020248
thumb_func_start MOD14_021E0C74
MOD14_021E0C74: ; 0x021E0C74
ldr r0, [r0, #0x10]
bx lr
thumb_func_start MOD14_021E0C78
MOD14_021E0C78: ; 0x021E0C78
ldr r0, [r0, #4]
bx lr
thumb_func_start MOD14_021E0C7C
MOD14_021E0C7C: ; 0x021E0C7C
push {r3, r4, lr}
sub sp, #4
add r4, r0, #0
str r1, [r4, #0x44]
str r3, [r4, #0x3c]
str r2, [r4, #0x40]
str r3, [r4]
mov r0, #0
str r0, [r4, #4]
mov r1, #0xa
add r3, r4, #0
str r1, [sp]
mov r0, #0x12
mov r2, #1
add r3, #0x10
bl FUN_02006C30
str r0, [r4, #8]
mov r0, #0xa
add r3, r4, #0
str r0, [sp]
mov r0, #0x12
mov r1, #0xb
mov r2, #1
add r3, #0x14
bl FUN_02006C5C
str r0, [r4, #0xc]
ldr r0, [r4, #8]
cmp r0, #0
beq _021E0CC0
ldr r0, [r4, #0xc]
cmp r0, #0
bne _021E0CC6
_021E0CC0:
add sp, #4
mov r0, #0
pop {r3, r4, pc}
_021E0CC6:
mov r0, #1
add sp, #4
pop {r3, r4, pc}
thumb_func_start MOD14_021E0CCC
MOD14_021E0CCC: ; 0x021E0CCC
push {r4, lr}
sub sp, #0x38
add r4, r0, #0
add r0, #0x18
bl FUN_020B1A24
mov r3, #0
mov r0, #0x9d
str r3, [sp]
mov r2, #1
str r2, [sp, #4]
lsl r0, r0, #8
str r0, [sp, #8]
mov r0, #0xa
str r0, [sp, #0xc]
add r0, r4, #0
add r0, #0x18
str r0, [sp, #0x10]
mov r0, #0x12
mov r1, #9
bl FUN_02006AE4
ldr r0, [r4, #0x44]
bl MOD14_021DDD48
add r2, r0, #0
ldr r0, [r4, #0x14]
add r1, r4, #0
str r0, [sp]
mov r0, #2
str r0, [sp, #4]
ldr r3, [r4, #0x10]
add r0, sp, #0x14
add r1, #0x18
bl MOD14_021DDDB4
ldr r0, [r4, #0x44]
bl MOD14_021DDD98
add r2, r0, #0
mov r0, #0x2c
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
ldr r0, [r4]
add r1, sp, #0x14
add r2, #0xb7
mov r3, #0xb0
bl MOD14_021DDDD4
mov r1, #1
str r0, [r4, #4]
bl FUN_02020248
add sp, #0x38
pop {r4, pc}
thumb_func_start MOD14_021E0D3C
MOD14_021E0D3C: ; 0x021E0D3C
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #8]
cmp r0, #0
beq _021E0D4E
bl FreeToHeap
mov r0, #0
str r0, [r4, #8]
_021E0D4E:
ldr r0, [r4, #0xc]
cmp r0, #0
beq _021E0D5C
bl FreeToHeap
mov r0, #0
str r0, [r4, #0xc]
_021E0D5C:
pop {r4, pc}
.align 2, 0
thumb_func_start MOD14_021E0D60
MOD14_021E0D60: ; 0x021E0D60
push {r3, lr}
cmp r1, #0
beq _021E0D70
cmp r1, #1
beq _021E0D7A
cmp r1, #2
beq _021E0D84
pop {r3, pc}
_021E0D70:
ldr r0, [r0, #4]
mov r1, #0
bl FUN_02020130
pop {r3, pc}
_021E0D7A:
ldr r0, [r0, #4]
mov r1, #1
bl FUN_02020130
pop {r3, pc}
_021E0D84:
ldr r0, [r0, #4]
mov r1, #2
bl FUN_02020130
pop {r3, pc}
.align 2, 0
thumb_func_start MOD14_021E0D90
MOD14_021E0D90: ; 0x021E0D90
push {r3, r4, r5, r6, r7, lr}
add r6, r2, #0
add r5, r0, #0
add r0, r6, #0
add r4, r1, #0
add r7, r3, #0
bl MOD14_021DC3C4
cmp r0, #4
bne _021E0DAC
mov r0, #0
str r0, [r5]
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021E0DAC:
str r4, [r5, #0x14]
str r7, [r5, #8]
ldr r0, [sp, #0x18]
str r6, [r5, #0x10]
str r0, [r5, #0xc]
mov r0, #0
str r0, [r5, #4]
str r0, [r5, #0x4c]
str r0, [r5, #0x24]
add r0, r4, #0
bl MOD14_021DDD90
str r0, [r5, #0x20]
mov r0, #9
mov r1, #6
mov r2, #0xf
mov r3, #0xa
bl FUN_0200B870
str r0, [r5, #0x18]
mov r0, #1
mov r1, #2
mov r2, #0xf
mov r3, #0xa
bl FUN_0200B870
str r0, [r5, #0x1c]
mov r0, #0xa
add r3, r5, #0
str r0, [sp]
mov r0, #0x12
mov r1, #0x10
mov r2, #1
add r3, #0x2c
bl FUN_02006C30
str r0, [r5, #0x28]
mov r0, #0
str r0, [r5, #0x30]
ldr r0, [sp, #0x1c]
mov r1, #0x15
bl FUN_0200A914
str r0, [r5, #0x44]
ldr r0, [sp, #0x1c]
mov r1, #0x16
bl FUN_0200A914
str r0, [r5, #0x48]
bl FUN_0206E12C
add r4, r0, #0
bl FUN_0206E10C
add r1, r0, #0
mov r0, #0xa
add r3, r5, #0
str r0, [sp]
add r0, r4, #0
mov r2, #1
add r3, #0x38
bl FUN_02006C30
mov r1, #0
str r0, [r5, #0x34]
add r2, r5, #0
add r0, r1, #0
_021E0E32:
add r1, r1, #1
str r0, [r2, #0x3c]
add r2, r2, #4
cmp r1, #2
blt _021E0E32
mov r0, #1
str r0, [r5]
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start MOD14_021E0E44
MOD14_021E0E44: ; 0x021E0E44
push {r4, r5, r6, lr}
add r5, r0, #0
ldr r0, [r5]
cmp r0, #0
beq _021E0EE2
ldr r0, [r5, #4]
cmp r0, #0
beq _021E0E72
mov r6, #0
add r4, r6, #0
_021E0E58:
ldr r0, [r5, #4]
add r0, r0, r4
bl FUN_02019178
add r6, r6, #1
add r4, #0x10
cmp r6, #4
blt _021E0E58
ldr r0, [r5, #4]
bl FreeToHeap
mov r0, #0
str r0, [r5, #4]
_021E0E72:
ldr r0, [r5, #0x18]
cmp r0, #0
beq _021E0E7C
bl FUN_0200B990
_021E0E7C:
ldr r0, [r5, #0x1c]
cmp r0, #0
beq _021E0E86
bl FUN_0200B990
_021E0E86:
ldr r0, [r5, #0x44]
cmp r0, #0
beq _021E0E90
bl FUN_02021A20
_021E0E90:
ldr r0, [r5, #0x48]
cmp r0, #0
beq _021E0E9A
bl FUN_02021A20
_021E0E9A:
ldr r0, [r5, #0x24]
cmp r0, #0
beq _021E0EA8
bl FUN_02007534
mov r0, #0
str r0, [r5, #0x24]
_021E0EA8:
ldr r0, [r5, #0x28]
cmp r0, #0
beq _021E0EB2
bl FreeToHeap
_021E0EB2:
ldr r0, [r5, #0x30]
cmp r0, #0
beq _021E0EBC
bl FUN_0201FFC8
_021E0EBC:
ldr r0, [r5, #0x34]
cmp r0, #0
beq _021E0EC6
bl FreeToHeap
_021E0EC6:
mov r6, #0
add r4, r5, #0
_021E0ECA:
ldr r0, [r4, #0x3c]
cmp r0, #0
beq _021E0ED4
bl FUN_0201FFC8
_021E0ED4:
add r6, r6, #1
add r4, r4, #4
cmp r6, #2
blt _021E0ECA
add r0, r5, #0
bl MOD14_021E10F4
_021E0EE2:
pop {r4, r5, r6, pc}
thumb_func_start MOD14_021E0EE4
MOD14_021E0EE4: ; 0x021E0EE4
push {r3, lr}
ldr r1, [r0]
cmp r1, #0
beq _021E0EF2
ldr r0, [r0, #0x20]
bl FUN_020081C4
_021E0EF2:
pop {r3, pc}
thumb_func_start MOD14_021E0EF4
MOD14_021E0EF4: ; 0x021E0EF4
push {r4, lr}
sub sp, #0x20
mov r2, #0
str r2, [sp]
add r4, r0, #0
str r2, [sp, #4]
add r0, sp, #0x10
mov r1, #1
add r3, r2, #0
str r2, [sp, #8]
bl FUN_02068C00
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
str r0, [sp, #0xc]
ldr r0, [r4, #0x20]
add r1, sp, #0x10
mov r2, #0x2c
mov r3, #0x54
bl FUN_020073A0
str r0, [r4, #0x24]
add sp, #0x20
pop {r4, pc}
thumb_func_start MOD14_021E0F28
MOD14_021E0F28: ; 0x021E0F28
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0x24]
cmp r0, #0
beq _021E0F3C
bl FUN_02007534
mov r0, #0
str r0, [r4, #0x24]
pop {r4, pc}
_021E0F3C:
mov r0, #1
pop {r4, pc}
thumb_func_start MOD14_021E0F40
MOD14_021E0F40: ; 0x021E0F40
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
ldr r0, [r5]
cmp r0, #0
beq _021E0FA0
mov r0, #0xa
mov r1, #4
bl FUN_02018FF4
str r0, [r5, #4]
cmp r0, #0
beq _021E0F94
mov r7, #0
ldr r6, _021E0FA4 ; =0x021E65F4
add r4, r7, #0
_021E0F5E:
ldr r1, [r5, #4]
ldr r0, [r5, #8]
add r1, r1, r4
add r2, r6, #0
bl FUN_02019150
cmp r7, #3
ldr r0, [r5, #4]
beq _021E0F78
add r0, r0, r4
bl FUN_02019270
b _021E0F82
_021E0F78:
add r0, r0, r4
mov r1, #0xc
mov r2, #2
bl FUN_0201928C
_021E0F82:
add r7, r7, #1
add r6, #8
add r4, #0x10
cmp r7, #4
blt _021E0F5E
ldr r0, [r5, #8]
mov r1, #2
bl FUN_02017CD0
_021E0F94:
add r0, r5, #0
bl MOD14_021E0FA8
add r0, r5, #0
bl MOD14_021E10B0
_021E0FA0:
pop {r3, r4, r5, r6, r7, pc}
nop
_021E0FA4: .word 0x021E65F4
thumb_func_start MOD14_021E0FA8
MOD14_021E0FA8: ; 0x021E0FA8
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x68
add r5, r0, #0
bl FUN_0206E12C
str r0, [sp, #0x1c]
mov r0, #2
bl FUN_0206E0F0
str r0, [sp, #0x18]
bl FUN_0206E108
add r1, r0, #0
mov r0, #0x60
str r0, [sp]
mov r3, #0xa
str r3, [sp, #4]
ldr r0, [sp, #0x1c]
mov r2, #1
lsl r3, r3, #5
bl FUN_02006930
mov r0, #0
mov r6, #0x5e
str r0, [sp, #0x14]
lsl r6, r6, #4
mov r7, #0x18
add r4, r5, #0
_021E0FE0:
add r0, sp, #0x44
bl FUN_020B1A24
mov r0, #0
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
lsl r0, r6, #5
str r0, [sp, #8]
mov r0, #0xa
str r0, [sp, #0xc]
add r0, sp, #0x44
str r0, [sp, #0x10]
ldr r0, [sp, #0x1c]
ldr r1, [sp, #0x18]
mov r2, #1
mov r3, #0
bl FUN_02006B38
ldr r0, [r5, #0x14]
bl MOD14_021DDD48
add r2, r0, #0
mov r0, #0
str r0, [sp]
mov r0, #3
str r0, [sp, #4]
ldr r3, [r5, #0x38]
add r0, sp, #0x20
add r1, sp, #0x44
bl MOD14_021DDDB4
mov r0, #0x2e
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
ldr r0, [r5, #0xc]
add r1, sp, #0x20
add r2, r7, #0
mov r3, #0xb0
bl MOD14_021DDDD4
str r0, [r4, #0x3c]
cmp r0, #0
bne _021E103E
bl ErrorHandling
_021E103E:
ldr r0, [r4, #0x3c]
mov r1, #0
bl FUN_020200A0
ldr r0, [sp, #0x14]
add r6, #8
add r0, r0, #1
add r7, #0x24
add r4, r4, #4
str r0, [sp, #0x14]
cmp r0, #2
blo _021E0FE0
add r0, sp, #0x44
bl FUN_020B1A24
mov r3, #0
mov r0, #0xb9
str r3, [sp]
mov r2, #1
str r2, [sp, #4]
lsl r0, r0, #8
str r0, [sp, #8]
mov r0, #0xa
str r0, [sp, #0xc]
add r0, sp, #0x44
str r0, [sp, #0x10]
mov r0, #0x12
mov r1, #0xf
bl FUN_02006AE4
ldr r0, [r5, #0x14]
bl MOD14_021DDD48
add r2, r0, #0
mov r0, #0
str r0, [sp]
mov r0, #3
str r0, [sp, #4]
ldr r3, [r5, #0x2c]
add r0, sp, #0x20
add r1, sp, #0x44
bl MOD14_021DDDB4
mov r0, #0x2f
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
ldr r0, [r5, #0xc]
add r1, sp, #0x20
mov r2, #0x38
mov r3, #0xb0
bl MOD14_021DDDD4
str r0, [r5, #0x30]
add sp, #0x68
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start MOD14_021E10B0
MOD14_021E10B0: ; 0x021E10B0
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r0, [r5, #0x4c]
cmp r0, #0
bne _021E10EE
mov r0, #0xa
mov r1, #0xc
bl AllocFromHeap
add r4, r0, #0
beq _021E10EA
ldr r0, [r5, #0x10]
bl MOD14_021DC42C
ldrb r0, [r0, #0xf]
cmp r0, #0
beq _021E10D6
mov r0, #4
b _021E10D8
_021E10D6:
mov r0, #0
_021E10D8:
strh r0, [r4]
ldr r0, _021E10F0 ; =MOD14_021E115C
str r5, [r4, #8]
add r1, r4, #0
mov r2, #1
bl FUN_0200CA44
str r0, [r5, #0x4c]
pop {r3, r4, r5, pc}
_021E10EA:
bl ErrorHandling
_021E10EE:
pop {r3, r4, r5, pc}
.align 2, 0
_021E10F0: .word MOD14_021E115C
thumb_func_start MOD14_021E10F4
MOD14_021E10F4: ; 0x021E10F4
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0x4c]
cmp r0, #0
beq _021E1110
bl FUN_0201B6C8
bl FreeToHeap
ldr r0, [r4, #0x4c]
bl FUN_0200CAB4
mov r0, #0
str r0, [r4, #0x4c]
_021E1110:
pop {r4, pc}
.align 2, 0
thumb_func_start MOD14_021E1114
MOD14_021E1114: ; 0x021E1114
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r0, [r5, #0x4c]
bl FUN_0201B6C8
add r4, r0, #0
beq _021E113C
ldr r0, [r5, #0x10]
bl MOD14_021DC42C
ldrb r0, [r0, #0xf]
cmp r0, #0
beq _021E1132
mov r0, #4
b _021E1134
_021E1132:
mov r0, #0
_021E1134:
strh r0, [r4]
add r0, r5, #0
bl MOD14_021E1268
_021E113C:
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_start MOD14_021E1140
MOD14_021E1140: ; 0x021E1140
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0x4c]
bl FUN_0201B6C8
cmp r0, #0
beq _021E1158
mov r1, #4
strh r1, [r0]
add r0, r4, #0
bl MOD14_021E1268
_021E1158:
pop {r4, pc}
.align 2, 0
thumb_func_start MOD14_021E115C
MOD14_021E115C: ; 0x021E115C
push {r3, r4, r5, lr}
add r4, r1, #0
ldrh r0, [r4]
ldr r5, [r4, #8]
cmp r0, #4
bhi _021E1220
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021E1174: ; jump table
.short _021E117E - _021E1174 - 2 ; case 0
.short _021E1190 - _021E1174 - 2 ; case 1
.short _021E11B0 - _021E1174 - 2 ; case 2
.short _021E11CE - _021E1174 - 2 ; case 3
.short _021E1220 - _021E1174 - 2 ; case 4
_021E117E:
ldr r0, [r5, #0x10]
bl MOD14_021DC408
cmp r0, #0
beq _021E1220
mov r0, #0
strh r0, [r4, #2]
mov r0, #1
strh r0, [r4]
_021E1190:
ldr r0, [r5, #4]
ldrh r2, [r4, #2]
add r0, #0x30
add r1, r5, #0
mov r3, #0
bl MOD14_021E12B8
ldr r0, [r5, #4]
add r0, #0x30
bl FUN_02019548
mov r0, #0
strh r0, [r4, #4]
mov r0, #2
strh r0, [r4]
pop {r3, r4, r5, pc}
_021E11B0:
ldrh r0, [r4, #4]
add r0, r0, #1
strh r0, [r4, #4]
ldrh r0, [r4, #4]
cmp r0, #0x50
bls _021E1220
add r0, r4, #0
bl MOD14_021E1284
mov r0, #0
strh r0, [r4, #4]
strh r0, [r4, #6]
mov r0, #3
strh r0, [r4]
pop {r3, r4, r5, pc}
_021E11CE:
ldrh r0, [r4, #6]
mov r1, #1
lsl r1, r1, #0xe
add r0, r0, #4
strh r0, [r4, #6]
add r0, r5, #0
bl MOD14_021E1224
ldr r0, [r5, #4]
mov r1, #0
add r0, #0x30
mov r2, #4
add r3, r1, #0
bl FUN_0201A8C8
ldr r0, [r5, #4]
add r0, #0x30
bl FUN_02019548
ldrh r0, [r4, #6]
cmp r0, #0x10
blo _021E1220
ldrh r0, [r4, #2]
cmp r0, #1
bne _021E1206
add r0, r5, #0
bl MOD14_021E1268
_021E1206:
ldrh r0, [r4, #2]
add r0, r0, #1
strh r0, [r4, #2]
ldrh r0, [r4, #2]
cmp r0, #4
blo _021E1216
mov r0, #0
strh r0, [r4, #2]
_021E1216:
mov r0, #0
strh r0, [r4, #6]
strh r0, [r4, #4]
mov r0, #2
strh r0, [r4]
_021E1220:
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_start MOD14_021E1224
MOD14_021E1224: ; 0x021E1224
push {r4, r5, r6, r7, lr}
sub sp, #0xc
add r5, r0, #0
add r7, r1, #0
mov r4, #0
_021E122E:
ldr r0, [r5, #0x3c]
bl FUN_0202011C
add r6, r0, #0
add r3, sp, #0
ldmia r6!, {r0, r1}
add r2, r3, #0
stmia r3!, {r0, r1}
ldr r0, [r6]
add r1, r2, #0
str r0, [r3]
ldr r0, [sp, #4]
sub r0, r0, r7
str r0, [sp, #4]
ldr r0, [r5, #0x3c]
bl FUN_02020044
cmp r4, #0
bne _021E125A
ldr r0, [r5, #0x3c]
bl FUN_02020128
_021E125A:
add r4, r4, #1
add r5, r5, #4
cmp r4, #2
blt _021E122E
add sp, #0xc
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start MOD14_021E1268
MOD14_021E1268: ; 0x021E1268
push {r4, r5, r6, lr}
mov r4, #0
add r5, r0, #0
add r6, r4, #0
_021E1270:
ldr r0, [r5, #0x3c]
add r1, r6, #0
bl FUN_020200A0
add r4, r4, #1
add r5, r5, #4
cmp r4, #2
blt _021E1270
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start MOD14_021E1284
MOD14_021E1284: ; 0x021E1284
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r0, [r5, #8]
mov r1, #0
ldr r4, [r0, #4]
add r4, #0x30
add r0, r4, #0
bl FUN_02019620
ldrh r2, [r5, #2]
ldr r1, [r5, #8]
add r0, r4, #0
mov r3, #0
bl MOD14_021E12B8
ldrh r0, [r5, #2]
add r2, r0, #1
cmp r2, #4
blo _021E12AC
mov r2, #0
_021E12AC:
ldr r1, [r5, #8]
add r0, r4, #0
mov r3, #1
bl MOD14_021E12B8
pop {r3, r4, r5, pc}
thumb_func_start MOD14_021E12B8
MOD14_021E12B8: ; 0x021E12B8
push {r3, r4, r5, r6, lr}
sub sp, #0x1c
add r4, r1, #0
lsl r5, r3, #4
cmp r2, #3
bls _021E12C6
b _021E13E6
_021E12C6:
add r1, r2, r2
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021E12D2: ; jump table
.short _021E12DA - _021E12D2 - 2 ; case 0
.short _021E12EC - _021E12D2 - 2 ; case 1
.short _021E12E0 - _021E12D2 - 2 ; case 2
.short _021E12E6 - _021E12D2 - 2 ; case 3
_021E12DA:
ldr r1, [r4, #0x10]
ldr r2, [r1, #0x68]
b _021E13D2
_021E12E0:
ldr r1, [r4, #0x10]
ldr r2, [r1, #0x6c]
b _021E13D2
_021E12E6:
ldr r1, [r4, #0x10]
ldr r2, [r1, #0x70]
b _021E13D2
_021E12EC:
bl FUN_0206E12C
ldr r0, [r4, #0x10]
add r0, #0x58
ldrb r0, [r0]
bl FUN_0206E0F0
bl FUN_0206E12C
add r6, r0, #0
ldr r0, [r4, #0x10]
add r0, #0x58
ldrb r0, [r0]
bl FUN_0206E0F0
mov r2, #0
add r1, r0, #0
mov r3, #0x2f
str r2, [sp]
mov r0, #1
str r0, [sp, #4]
mov r0, #0xa
str r0, [sp, #8]
add r0, r6, #0
lsl r3, r3, #0xa
bl FUN_02006A34
ldr r0, [r4, #0x3c]
bl FUN_0202011C
add r6, r0, #0
add r3, sp, #0x10
ldmia r6!, {r0, r1}
add r2, r3, #0
stmia r3!, {r0, r1}
ldr r0, [r6]
add r5, #0xb0
str r0, [r3]
lsl r0, r5, #0xc
str r0, [sp, #0x14]
ldr r0, [r4, #0x3c]
add r1, r2, #0
bl FUN_02020044
ldr r0, [r4, #0x10]
add r0, #0x58
ldrb r0, [r0]
bl FUN_0206E114
add r1, r0, #0
ldr r0, [r4, #0x3c]
add r1, #0xa
bl FUN_02020248
ldr r0, [r4, #0x3c]
mov r1, #1
bl FUN_020200A0
ldr r1, [r4, #0x10]
add r0, r1, #0
add r0, #0x59
add r1, #0x58
ldrb r5, [r0]
ldrb r0, [r1]
cmp r0, r5
beq _021E13C6
bl FUN_0206E12C
add r6, r0, #0
add r0, r5, #0
bl FUN_0206E0F0
mov r2, #0
add r1, r0, #0
mov r3, #0xbd
str r2, [sp]
mov r0, #1
str r0, [sp, #4]
mov r0, #0xa
str r0, [sp, #8]
add r0, r6, #0
lsl r3, r3, #8
bl FUN_02006A34
mov r0, #9
ldr r1, [sp, #0x10]
lsl r0, r0, #0xe
add r0, r1, r0
str r0, [sp, #0x10]
ldr r0, [r4, #0x40]
add r1, sp, #0x10
bl FUN_02020044
ldr r0, [r4, #0x10]
add r0, #0x59
ldrb r0, [r0]
bl FUN_0206E114
add r1, r0, #0
ldr r0, [r4, #0x40]
add r1, #0xa
bl FUN_02020248
ldr r0, [r4, #0x40]
mov r1, #1
bl FUN_020200A0
add sp, #0x1c
pop {r3, r4, r5, r6, pc}
_021E13C6:
ldr r0, [r4, #0x40]
mov r1, #0
bl FUN_020200A0
add sp, #0x1c
pop {r3, r4, r5, r6, pc}
_021E13D2:
str r5, [sp]
mov r1, #0xff
str r1, [sp, #4]
ldr r1, _021E13EC ; =0x00090600
str r1, [sp, #8]
mov r1, #0
add r3, r1, #0
str r1, [sp, #0xc]
bl FUN_0201BDE0
_021E13E6:
add sp, #0x1c
pop {r3, r4, r5, r6, pc}
nop
_021E13EC: .word 0x00090600
thumb_func_start MOD14_021E13F0
MOD14_021E13F0: ; 0x021E13F0
push {r4, lr}
add r4, r0, #0
ldr r0, [r4]
cmp r0, #0
beq _021E144E
ldr r0, [r4, #4]
mov r1, #0xf
bl FUN_02019620
ldr r0, [r4, #4]
mov r1, #0xf
add r0, #0x10
bl FUN_02019620
ldr r0, [r4, #4]
mov r1, #0xf
add r0, #0x20
bl FUN_02019620
ldr r0, [r4, #4]
mov r1, #0
add r0, #0x30
bl FUN_02019620
ldr r0, [r4, #0x10]
bl MOD14_021DC408
cmp r0, #0
beq _021E1430
add r0, r4, #0
bl MOD14_021E153C
_021E1430:
ldr r0, [r4, #4]
bl FUN_02019548
ldr r0, [r4, #4]
add r0, #0x10
bl FUN_02019548
ldr r0, [r4, #4]
add r0, #0x20
bl FUN_02019548
ldr r0, [r4, #4]
add r0, #0x30
bl FUN_02019548
_021E144E:
pop {r4, pc}
thumb_func_start MOD14_021E1450
MOD14_021E1450: ; 0x021E1450
push {r4, lr}
add r4, r0, #0
ldr r0, [r4]
cmp r0, #0
beq _021E14CC
ldr r0, [r4, #4]
mov r1, #0xf
bl FUN_02019620
ldr r0, [r4, #4]
mov r1, #0xf
add r0, #0x10
bl FUN_02019620
ldr r0, [r4, #4]
mov r1, #0xf
add r0, #0x20
bl FUN_02019620
ldr r0, [r4, #4]
mov r1, #0
add r0, #0x30
bl FUN_02019620
ldr r0, [r4, #0x24]
cmp r0, #0
beq _021E148E
bl FUN_02007534
mov r0, #0
str r0, [r4, #0x24]
_021E148E:
ldr r0, [r4, #0x10]
bl MOD14_021DC408
cmp r0, #0
beq _021E14A0
add r0, r4, #0
bl MOD14_021E153C
b _021E14A8
_021E14A0:
add r0, r4, #0
mov r1, #0
bl MOD14_021E16A0
_021E14A8:
ldr r0, [r4, #4]
bl FUN_02019548
ldr r0, [r4, #4]
add r0, #0x10
bl FUN_02019548
ldr r0, [r4, #4]
add r0, #0x20
bl FUN_02019548
ldr r0, [r4, #4]
add r0, #0x30
bl FUN_02019548
add r0, r4, #0
bl MOD14_021E1114
_021E14CC:
pop {r4, pc}
.align 2, 0
thumb_func_start MOD14_021E14D0
MOD14_021E14D0: ; 0x021E14D0
push {r4, lr}
add r4, r0, #0
ldr r0, [r4]
cmp r0, #0
beq _021E153A
ldr r0, [r4, #4]
mov r1, #0xf
bl FUN_02019620
ldr r0, [r4, #4]
mov r1, #0xf
add r0, #0x10
bl FUN_02019620
ldr r0, [r4, #4]
mov r1, #0xf
add r0, #0x20
bl FUN_02019620
ldr r0, [r4, #4]
mov r1, #0
add r0, #0x30
bl FUN_02019620
ldr r0, [r4, #0x24]
cmp r0, #0
beq _021E150E
bl FUN_02007534
mov r0, #0
str r0, [r4, #0x24]
_021E150E:
add r0, r4, #0
mov r1, #0
bl MOD14_021E16A0
ldr r0, [r4, #4]
bl FUN_02019548
ldr r0, [r4, #4]
add r0, #0x10
bl FUN_02019548
ldr r0, [r4, #4]
add r0, #0x20
bl FUN_02019548
ldr r0, [r4, #4]
add r0, #0x30
bl FUN_02019548
add r0, r4, #0
bl MOD14_021E1140
_021E153A:
pop {r4, pc}
thumb_func_start MOD14_021E153C
MOD14_021E153C: ; 0x021E153C
push {r3, r4, r5, lr}
sub sp, #0x20
add r5, r0, #0
ldr r0, [r5, #0x10]
bl MOD14_021DC42C
mov r1, #0
add r4, r0, #0
str r1, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, _021E1660 ; =0x0009060F
mov r3, #2
str r0, [sp, #8]
str r1, [sp, #0xc]
ldr r0, [r5, #4]
ldr r2, [r4, #0x18]
bl FUN_0201BDE0
mov r1, #0
str r1, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, _021E1664 ; =0x0001020F
mov r3, #2
str r0, [sp, #8]
str r1, [sp, #0xc]
ldr r0, [r5, #4]
ldr r2, [r4, #0x14]
add r0, #0x20
bl FUN_0201BDE0
mov r1, #0
str r1, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, _021E1664 ; =0x0001020F
mov r3, #2
str r0, [sp, #8]
str r1, [sp, #0xc]
ldr r0, [r5, #4]
ldr r2, [r4, #0x14]
add r0, #0x20
bl FUN_0201BDE0
ldrb r0, [r4, #0xe]
cmp r0, #0
beq _021E15A2
cmp r0, #1
beq _021E15BE
b _021E15D8
_021E15A2:
mov r1, #0
str r1, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, _021E1668 ; =0x0007080F
mov r3, #0x46
str r0, [sp, #8]
str r1, [sp, #0xc]
ldr r0, [r5, #4]
ldr r2, [r5, #0x44]
add r0, #0x20
bl FUN_0201BDE0
b _021E15D8
_021E15BE:
mov r1, #0
str r1, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, _021E166C ; =0x0003040F
mov r3, #0x46
str r0, [sp, #8]
str r1, [sp, #0xc]
ldr r0, [r5, #4]
ldr r2, [r5, #0x48]
add r0, #0x20
bl FUN_0201BDE0
_021E15D8:
ldrb r0, [r4, #0xf]
cmp r0, #0
bne _021E1632
mov r1, #0
str r1, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, _021E1670 ; =0x00090600
add r3, r1, #0
str r0, [sp, #8]
str r1, [sp, #0xc]
ldr r0, [r5, #4]
ldr r2, [r4, #0x1c]
add r0, #0x30
bl FUN_0201BDE0
ldrh r2, [r4, #8]
cmp r2, #0
beq _021E1616
mov r1, #2
str r1, [sp]
ldr r0, [r5, #4]
mov r3, #3
add r0, #0x10
str r0, [sp, #4]
mov r0, #0
str r0, [sp, #8]
str r0, [sp, #0xc]
ldr r0, [r5, #0x18]
bl FUN_0200BA78
_021E1616:
mov r1, #1
str r1, [sp]
ldr r0, [r5, #4]
mov r3, #3
add r0, #0x20
str r0, [sp, #4]
mov r0, #0
str r0, [sp, #8]
mov r0, #0x10
str r0, [sp, #0xc]
ldrb r2, [r4, #0xa]
ldr r0, [r5, #0x1c]
bl FUN_0200BA78
_021E1632:
ldr r1, [r4]
add r0, sp, #0x10
mov r2, #2
bl FUN_02068B70
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
str r0, [sp, #0xc]
ldr r0, [r5, #0x20]
add r1, sp, #0x10
mov r2, #0x2c
mov r3, #0x54
bl FUN_020073A0
str r0, [r5, #0x24]
ldrb r1, [r4, #0xb]
add r0, r5, #0
bl MOD14_021E16A0
add sp, #0x20
pop {r3, r4, r5, pc}
.align 2, 0
_021E1660: .word 0x0009060F
_021E1664: .word 0x0001020F
_021E1668: .word 0x0007080F
_021E166C: .word 0x0003040F
_021E1670: .word 0x00090600
thumb_func_start MOD14_021E1674
MOD14_021E1674: ; 0x021E1674
mov r0, #1
bx lr
thumb_func_start MOD14_021E1678
MOD14_021E1678: ; 0x021E1678
push {r4, lr}
add r4, r0, #0
ldr r0, [r4]
cmp r0, #0
beq _021E169C
ldr r0, [r4, #0x10]
bl MOD14_021DC408
cmp r0, #0
beq _021E169C
ldr r0, [r4, #0x10]
bl MOD14_021DC42C
add r1, r0, #0
ldrb r1, [r1, #0xb]
add r0, r4, #0
bl MOD14_021E16A0
_021E169C:
pop {r4, pc}
.align 2, 0
thumb_func_start MOD14_021E16A0
MOD14_021E16A0: ; 0x021E16A0
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
str r0, [sp, #4]
add r4, r1, #0
ldr r0, [r0, #8]
mov r1, #2
bl FUN_0201886C
mov ip, r0
add r2, r0, #0
mov r0, #1
ldr r6, _021E1700 ; =0x000004C8
mov r1, #0
lsl r7, r0, #0xd
_021E16BC:
add r3, r0, #0
lsl r3, r1
tst r3, r4
beq _021E16CE
add r3, r1, #0
add r3, #0x98
orr r3, r7
strh r3, [r2, r6]
b _021E16DC
_021E16CE:
add r5, r1, #0
mov r3, #2
add r5, #0x84
lsl r3, r3, #0xc
orr r5, r3
ldr r3, _021E1700 ; =0x000004C8
strh r5, [r2, r3]
_021E16DC:
add r1, r1, #1
add r2, r2, #2
cmp r1, #6
blt _021E16BC
mov r2, #0x99
lsl r2, r2, #2
ldr r0, [sp, #4]
str r2, [sp]
lsl r3, r2, #1
mov r2, ip
add r2, r2, r3
ldr r0, [r0, #8]
mov r1, #2
mov r3, #0xc
bl FUN_02017CE8
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_021E1700: .word 0x000004C8
thumb_func_start MOD14_021E1704
MOD14_021E1704: ; 0x021E1704
push {r3, r4, r5, lr}
sub sp, #0x10
add r5, r0, #0
ldr r0, [r5]
cmp r0, #0
beq _021E1748
ldr r0, [r5, #0x10]
bl MOD14_021DC42C
add r4, r0, #0
ldr r0, [r5, #4]
mov r1, #0
add r0, #0x30
bl FUN_02019620
ldrb r0, [r4, #0xf]
cmp r0, #0
bne _021E1742
mov r1, #0
str r1, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, _021E174C ; =0x00090600
add r3, r1, #0
str r0, [sp, #8]
str r1, [sp, #0xc]
ldr r0, [r5, #4]
ldr r2, [r4, #0x1c]
add r0, #0x30
bl FUN_0201BDE0
_021E1742:
add r0, r5, #0
bl MOD14_021E1114
_021E1748:
add sp, #0x10
pop {r3, r4, r5, pc}
.align 2, 0
_021E174C: .word 0x00090600
thumb_func_start MOD14_021E1750
MOD14_021E1750: ; 0x021E1750
push {r3, r4, lr}
sub sp, #4
add r4, r0, #0
str r1, [r4, #0xc]
str r3, [r4]
str r2, [r4, #8]
ldr r0, [sp, #0x18]
mov r1, #0x1a
str r0, [r4, #0x2c]
ldr r0, [sp, #0x1c]
mov r2, #0xe
str r0, [r4, #0x20]
ldr r0, [sp, #0x14]
mov r3, #0xa
str r0, [r4, #0x10]
mov r0, #0
bl FUN_0200A86C
str r0, [r4, #0x14]
mov r0, #0x40
mov r1, #0xa
bl FUN_020219F4
str r0, [r4, #0x30]
mov r0, #0x40
mov r1, #0xa
bl FUN_020219F4
str r0, [r4, #0x34]
mov r0, #0
strh r0, [r4, #0x1c]
strh r0, [r4, #0x1e]
str r0, [r4, #0x18]
mov r0, #0xa
add r3, r4, #0
str r0, [sp]
mov r0, #0x12
mov r1, #0x19
mov r2, #1
add r3, #0x28
bl FUN_02006BB0
str r0, [r4, #0x24]
cmp r0, #0
beq _021E17B6
ldr r0, [r4, #0x30]
cmp r0, #0
beq _021E17B6
ldr r0, [r4, #0x34]
cmp r0, #0
bne _021E17BC
_021E17B6:
add sp, #4
mov r0, #0
pop {r3, r4, pc}
_021E17BC:
mov r0, #1
add sp, #4
pop {r3, r4, pc}
.align 2, 0
thumb_func_start MOD14_021E17C4
MOD14_021E17C4: ; 0x021E17C4
push {r4, r5, r6, lr}
add r5, r0, #0
ldr r0, [r5, #0x18]
cmp r0, #0
beq _021E1814
mov r6, #0
add r4, r6, #0
_021E17D2:
ldr r0, [r5, #0x18]
add r0, r0, r4
bl FUN_02019178
add r6, r6, #1
add r4, #0x10
cmp r6, #2
blt _021E17D2
ldr r0, [r5, #0x24]
cmp r0, #0
beq _021E17EC
bl FreeToHeap
_021E17EC:
ldr r0, [r5, #0x14]
cmp r0, #0
beq _021E17F6
bl FUN_0200A8B8
_021E17F6:
ldr r0, [r5, #0x30]
cmp r0, #0
beq _021E1800
bl FUN_02021A20
_021E1800:
ldr r0, [r5, #0x34]
cmp r0, #0
beq _021E180A
bl FUN_02021A20
_021E180A:
ldr r0, [r5, #0x18]
bl FreeToHeap
mov r0, #0
str r0, [r5, #0x18]
_021E1814:
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start MOD14_021E1818
MOD14_021E1818: ; 0x021E1818
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x10
add r6, r0, #0
mov r0, #0xa
mov r1, #2
bl FUN_02018FF4
str r0, [r6, #0x18]
cmp r0, #0
beq _021E1848
mov r7, #0
ldr r4, _021E1894 ; =0x021E6614
add r5, r7, #0
_021E1832:
ldr r1, [r6, #0x18]
ldr r0, [r6]
add r1, r1, r5
add r2, r4, #0
bl FUN_02019150
add r7, r7, #1
add r4, #8
add r5, #0x10
cmp r7, #2
blt _021E1832
_021E1848:
mov r0, #2
lsl r0, r0, #8
str r0, [sp]
mov r1, #0
str r1, [sp, #4]
str r1, [sp, #8]
mov r0, #0xa
str r0, [sp, #0xc]
ldr r2, [r6]
mov r0, #0x26
mov r3, #1
bl FUN_0200687C
mov r0, #0x20
str r0, [sp]
mov r0, #0xa
str r0, [sp, #4]
mov r0, #0x26
mov r1, #0x18
mov r2, #0
mov r3, #0xe0
bl FUN_02006930
ldr r0, [r6, #0x20]
ldr r2, _021E1898 ; =0x00000209
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp]
mov r0, #0xa
str r0, [sp, #4]
ldr r0, [r6]
mov r1, #1
mov r3, #8
bl FUN_0200CD68
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
nop
_021E1894: .word 0x021E6614
_021E1898: .word 0x00000209
thumb_func_start MOD14_021E189C
MOD14_021E189C: ; 0x021E189C
push {r4, r5, lr}
sub sp, #0xc
add r5, r0, #0
ldr r0, [r5, #0x18]
add r4, r1, #0
bl FUN_02019270
ldr r3, [r5, #0x18]
ldrb r0, [r3, #7]
str r0, [sp]
ldrb r0, [r3, #8]
str r0, [sp, #4]
ldrb r1, [r3, #4]
ldrb r2, [r3, #5]
ldrb r3, [r3, #6]
ldr r0, [r5]
bl MOD14_021E1908
ldr r0, [r5, #0x18]
mov r1, #0xf
bl FUN_02019620
ldr r0, [r5, #0x10]
ldr r2, [r5, #0x30]
add r1, r4, #0
bl FUN_0200A8E0
ldr r0, [r5, #0x2c]
ldr r1, [r5, #0x34]
ldr r2, [r5, #0x30]
bl FUN_0200B7B8
mov r3, #0
str r3, [sp]
mov r0, #0xff
str r0, [sp, #4]
str r3, [sp, #8]
ldr r0, [r5, #0x18]
ldr r2, [r5, #0x34]
mov r1, #1
bl FUN_0201BD84
ldr r0, [r5, #0x18]
bl FUN_02019548
ldr r0, [r5]
mov r1, #1
bl FUN_02017CD0
mov r0, #1
strh r0, [r5, #0x1c]
add sp, #0xc
pop {r4, r5, pc}
.align 2, 0
thumb_func_start MOD14_021E1908
MOD14_021E1908: ; 0x021E1908
push {r3, r4, r5, r6, r7, lr}
lsl r1, r1, #0x18
add r7, r3, #0
lsr r1, r1, #0x18
add r6, r2, #0
ldr r4, [sp, #0x18]
ldr r5, [sp, #0x1c]
bl FUN_0201886C
sub r1, r7, #1
sub r2, r6, #2
lsl r1, r1, #5
add r1, r2, r1
lsl r3, r1, #1
ldr r2, _021E19AC ; =0x00008209
add r1, r0, r3
strh r2, [r0, r3]
add r0, r2, #1
mov r2, #0
strh r0, [r1, #2]
cmp r4, #0
bls _021E1942
ldr r0, _021E19B0 ; =0x0000820B
add r3, r1, #0
_021E1938:
add r2, r2, #1
strh r0, [r3, #4]
add r3, r3, #2
cmp r2, r4
blo _021E1938
_021E1942:
lsl r0, r4, #1
add r2, r1, r0
ldr r3, _021E19B4 ; =0x0000820C
mov ip, r0
strh r3, [r2, #4]
add r0, r3, #1
strh r0, [r2, #6]
add r0, r3, #2
strh r0, [r2, #8]
add r1, #0x40
mov r3, #0
cmp r5, #0
bls _021E197E
mov r0, ip
add r2, r0, r1
ldr r0, _021E19B8 ; =0x0000820F
add r7, r0, #1
_021E1964:
strh r0, [r1]
strh r7, [r1, #2]
ldr r6, _021E19BC ; =0x00008212
add r3, r3, #1
strh r6, [r2, #4]
add r6, r6, #1
strh r6, [r2, #6]
ldr r6, _021E19C0 ; =0x00008214
add r1, #0x40
strh r6, [r2, #8]
add r2, #0x40
cmp r3, r5
blo _021E1964
_021E197E:
ldr r0, _021E19C4 ; =0x00008215
mov r3, #0
strh r0, [r1]
add r0, r0, #1
strh r0, [r1, #2]
cmp r4, #0
bls _021E199A
ldr r0, _021E19C8 ; =0x00008217
add r2, r1, #0
_021E1990:
add r3, r3, #1
strh r0, [r2, #4]
add r2, r2, #2
cmp r3, r4
blo _021E1990
_021E199A:
mov r0, ip
ldr r2, _021E19CC ; =0x00008218
add r1, r1, r0
strh r2, [r1, #4]
add r0, r2, #1
strh r0, [r1, #6]
add r0, r2, #2
strh r0, [r1, #8]
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_021E19AC: .word 0x00008209
_021E19B0: .word 0x0000820B
_021E19B4: .word 0x0000820C
_021E19B8: .word 0x0000820F
_021E19BC: .word 0x00008212
_021E19C0: .word 0x00008214
_021E19C4: .word 0x00008215
_021E19C8: .word 0x00008217
_021E19CC: .word 0x00008218
thumb_func_start MOD14_021E19D0
MOD14_021E19D0: ; 0x021E19D0
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x18
add r5, r0, #0
ldrh r0, [r5, #0x1e]
str r1, [sp, #0x10]
cmp r0, #0
beq _021E19E8
ldr r1, [r5, #0x18]
ldr r0, [r5]
add r1, #0x10
bl MOD14_021E1CA0
_021E19E8:
ldr r0, [r5, #0x18]
mov r1, #0xf
str r0, [sp, #0x14]
add r0, #0x10
str r0, [sp, #0x14]
bl FUN_02019620
ldr r0, [sp, #0x10]
mov r6, #0
add r0, #0x21
ldrb r1, [r0]
mov r0, #8
sub r0, r0, r1
lsl r7, r0, #4
cmp r1, #0
bls _021E1A5C
ldr r4, [sp, #0x10]
_021E1A0A:
ldr r3, [r4]
cmp r3, #0x38
blt _021E1A26
cmp r3, #0x3d
bgt _021E1A26
ldr r2, [sp, #0x10]
ldr r1, [sp, #0x14]
add r2, #0x22
ldrb r2, [r2]
add r0, r5, #0
sub r3, #0x38
bl MOD14_021E1A8C
b _021E1A4C
_021E1A26:
add r3, #0x18
ldr r0, [r5, #0x14]
ldr r2, [r5, #0x30]
add r1, r3, #0
bl FUN_0200A8E0
str r7, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, _021E1A88 ; =0x000B0C0F
mov r1, #0
str r0, [sp, #8]
mov r0, #0
str r0, [sp, #0xc]
ldr r0, [sp, #0x14]
ldr r2, [r5, #0x30]
mov r3, #0xa
bl FUN_0201BDE0
_021E1A4C:
ldr r0, [sp, #0x10]
add r6, r6, #1
add r0, #0x21
ldrb r0, [r0]
add r7, #0x10
add r4, r4, #4
cmp r6, r0
blo _021E1A0A
_021E1A5C:
ldr r1, [sp, #0x10]
add r0, r5, #0
bl MOD14_021E1B9C
ldr r1, [sp, #0x10]
add r0, r5, #0
add r1, #0x21
str r1, [sp, #0x10]
ldrb r1, [r1]
bl MOD14_021E1AD8
ldr r0, [sp, #0x14]
bl FUN_02019548
ldr r0, [r5]
mov r1, #1
bl FUN_02017CD0
mov r0, #1
strh r0, [r5, #0x1e]
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_021E1A88: .word 0x000B0C0F
thumb_func_start MOD14_021E1A8C
MOD14_021E1A8C: ; 0x021E1A8C
push {r4, r5, lr}
sub sp, #0x1c
add r5, r0, #0
mov r0, #1
lsl r0, r3
tst r0, r2
beq _021E1A9E
mov r4, #0
b _021E1AA0
_021E1A9E:
mov r4, #8
_021E1AA0:
mov r0, #0x30
str r0, [sp]
mov r0, #0x10
str r0, [sp, #4]
mov r0, #0x2c
str r0, [sp, #8]
lsl r0, r3, #4
add r0, r0, #4
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp, #0xc]
mov r0, #8
str r0, [sp, #0x10]
lsl r2, r3, #0x13
str r0, [sp, #0x14]
mov r0, #0xff
str r0, [sp, #0x18]
add r0, r1, #0
ldr r1, [r5, #0x28]
lsl r3, r4, #0x10
ldr r1, [r1, #0x14]
lsr r2, r2, #0x10
lsr r3, r3, #0x10
bl FUN_02019684
add sp, #0x1c
pop {r4, r5, pc}
.align 2, 0
thumb_func_start MOD14_021E1AD8
MOD14_021E1AD8: ; 0x021E1AD8
push {r4, r5, r6, r7, lr}
sub sp, #0xc
str r0, [sp, #8]
add r5, r1, #0
ldr r0, [r0]
mov r1, #1
bl FUN_0201886C
mov r2, #8
sub r2, r2, r5
mov ip, r2
add r0, #0xe6
lsl r2, r2, #7
add r2, r0, r2
ldr r1, _021E1B40 ; =0x00000251
mov r3, #0x18
mov r0, ip
mul r3, r0
add r4, r1, r3
mov r6, #0
lsl r7, r5, #1
beq _021E1B24
mov r0, #1
lsl r0, r0, #0xe
_021E1B08:
mov r3, #0
add r5, r2, #0
_021E1B0C:
add r1, r4, #0
orr r1, r0
strh r1, [r5]
add r3, r3, #1
add r4, r4, #1
add r5, r5, #2
cmp r3, #0xc
blo _021E1B0C
add r6, r6, #1
add r2, #0x40
cmp r6, r7
blo _021E1B08
_021E1B24:
mov r0, #0xc
str r0, [sp]
mov r3, ip
lsl r3, r3, #1
ldr r0, [sp, #8]
str r7, [sp, #4]
ldr r0, [r0]
mov r1, #1
mov r2, #0x13
add r3, r3, #3
bl MOD14_021E1C10
add sp, #0xc
pop {r4, r5, r6, r7, pc}
.align 2, 0
_021E1B40: .word 0x00000251
thumb_func_start MOD14_021E1B44
MOD14_021E1B44: ; 0x021E1B44
push {r4, lr}
add r4, r0, #0
ldrh r0, [r4, #0x1c]
cmp r0, #0
beq _021E1B5A
ldr r0, [r4]
ldr r1, [r4, #0x18]
bl MOD14_021E1CEC
mov r0, #0
strh r0, [r4, #0x1c]
_021E1B5A:
ldrh r0, [r4, #0x1e]
cmp r0, #0
beq _021E1B6E
ldr r1, [r4, #0x18]
ldr r0, [r4]
add r1, #0x10
bl MOD14_021E1CA0
mov r0, #0
strh r0, [r4, #0x1e]
_021E1B6E:
ldr r0, [r4]
mov r1, #1
bl FUN_02017CD0
pop {r4, pc}
thumb_func_start MOD14_021E1B78
MOD14_021E1B78: ; 0x021E1B78
push {r4, lr}
add r4, r0, #0
ldrh r0, [r4, #0x1e]
cmp r0, #0
beq _021E1B90
ldr r1, [r4, #0x18]
ldr r0, [r4]
add r1, #0x10
bl MOD14_021E1CA0
mov r0, #0
strh r0, [r4, #0x1e]
_021E1B90:
ldr r0, [r4]
mov r1, #1
bl FUN_02017CD0
pop {r4, pc}
.align 2, 0
thumb_func_start MOD14_021E1B9C
MOD14_021E1B9C: ; 0x021E1B9C
push {r4, r5, r6, lr}
sub sp, #8
add r6, r1, #0
ldr r4, [r0, #0x18]
add r0, r6, #0
add r0, #0x21
ldrb r1, [r0]
mov r0, #8
add r4, #0x10
sub r0, r0, r1
lsl r5, r0, #4
mov r0, #0xa
str r0, [sp]
lsl r0, r1, #0x14
lsr r0, r0, #0x10
lsl r3, r5, #0x10
str r0, [sp, #4]
add r0, r4, #0
mov r1, #0xf
mov r2, #0
lsr r3, r3, #0x10
bl FUN_020196F4
add r6, #0x20
ldrb r2, [r6]
add r0, r4, #0
mov r1, #0
lsl r2, r2, #4
add r2, r5, r2
bl FUN_02002218
add r0, r4, #0
bl FUN_02019548
add sp, #8
pop {r4, r5, r6, pc}
thumb_func_start MOD14_021E1BE4
MOD14_021E1BE4: ; 0x021E1BE4
push {r3, r4, r5, r6, r7, lr}
add r6, r0, #0
ldr r4, [r6, #0x18]
add r7, r1, #0
add r4, #0x10
mov r5, #0
_021E1BF0:
add r2, r7, #0
add r2, #0x22
ldrb r2, [r2]
add r0, r6, #0
add r1, r4, #0
add r3, r5, #0
bl MOD14_021E1A8C
add r5, r5, #1
cmp r5, #6
blt _021E1BF0
add r0, r4, #0
bl FUN_02019548
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start MOD14_021E1C10
MOD14_021E1C10: ; 0x021E1C10
push {r3, r4, r5, r6, r7, lr}
lsl r1, r1, #0x18
add r7, r3, #0
lsr r1, r1, #0x18
add r6, r2, #0
ldr r5, [sp, #0x18]
ldr r4, [sp, #0x1c]
bl FUN_0201886C
sub r1, r7, #1
sub r2, r6, #1
lsl r1, r1, #5
add r1, r2, r1
mov r2, #0x72
lsl r3, r1, #1
lsl r2, r2, #8
strh r2, [r0, r3]
add r1, r0, r3
mov r2, #0
cmp r5, #0
bls _021E1C48
ldr r0, _021E1C8C ; =0x00007201
add r3, r1, #0
_021E1C3E:
add r2, r2, #1
strh r0, [r3, #2]
add r3, r3, #2
cmp r2, r5
blo _021E1C3E
_021E1C48:
lsl r0, r5, #1
add r2, r1, r0
ldr r3, _021E1C90 ; =0x00007202
add r1, #0x40
mov r7, #0
strh r3, [r2, #2]
cmp r4, #0
bls _021E1C6C
ldr r2, _021E1C94 ; =0x00007205
add r6, r0, r1
add r3, r3, #1
_021E1C5E:
strh r3, [r1]
strh r2, [r6, #2]
add r7, r7, #1
add r6, #0x40
add r1, #0x40
cmp r7, r4
blo _021E1C5E
_021E1C6C:
ldr r2, _021E1C98 ; =0x00007206
mov r4, #0
strh r2, [r1]
cmp r5, #0
bls _021E1C84
add r3, r1, #0
add r2, r2, #1
_021E1C7A:
add r4, r4, #1
strh r2, [r3, #2]
add r3, r3, #2
cmp r4, r5
blo _021E1C7A
_021E1C84:
ldr r2, _021E1C9C ; =0x00007208
add r0, r1, r0
strh r2, [r0, #2]
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_021E1C8C: .word 0x00007201
_021E1C90: .word 0x00007202
_021E1C94: .word 0x00007205
_021E1C98: .word 0x00007206
_021E1C9C: .word 0x00007208
thumb_func_start MOD14_021E1CA0
MOD14_021E1CA0: ; 0x021E1CA0
push {r3, r4, r5, r6, r7, lr}
add r4, r1, #0
ldrb r1, [r4, #4]
bl FUN_0201886C
ldrb r1, [r4, #5]
mov r5, #0
sub r2, r1, #1
ldrb r1, [r4, #6]
sub r1, r1, #1
lsl r1, r1, #5
add r1, r2, r1
lsl r1, r1, #1
add r2, r0, r1
ldrb r0, [r4, #8]
add r0, r0, #2
beq _021E1CEA
add r0, r5, #0
add r1, r5, #0
_021E1CC6:
ldrb r6, [r4, #7]
add r3, r1, #0
add r6, r6, #2
beq _021E1CDE
add r6, r2, #0
_021E1CD0:
strh r0, [r6]
ldrb r7, [r4, #7]
add r3, r3, #1
add r6, r6, #2
add r7, r7, #2
cmp r3, r7
blo _021E1CD0
_021E1CDE:
ldrb r3, [r4, #8]
add r5, r5, #1
add r2, #0x40
add r3, r3, #2
cmp r5, r3
blo _021E1CC6
_021E1CEA:
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD14_021E1CEC
MOD14_021E1CEC: ; 0x021E1CEC
push {r3, r4, r5, r6, r7, lr}
add r4, r1, #0
ldrb r1, [r4, #4]
bl FUN_0201886C
ldrb r1, [r4, #5]
mov r5, #0
sub r2, r1, #2
ldrb r1, [r4, #6]
sub r1, r1, #1
lsl r1, r1, #5
add r1, r2, r1
lsl r1, r1, #1
add r2, r0, r1
ldrb r0, [r4, #8]
add r0, r0, #2
beq _021E1D36
add r0, r5, #0
add r1, r5, #0
_021E1D12:
ldrb r6, [r4, #7]
add r3, r1, #0
add r6, r6, #5
beq _021E1D2A
add r6, r2, #0
_021E1D1C:
strh r0, [r6]
ldrb r7, [r4, #7]
add r3, r3, #1
add r6, r6, #2
add r7, r7, #5
cmp r3, r7
blo _021E1D1C
_021E1D2A:
ldrb r3, [r4, #8]
add r5, r5, #1
add r2, #0x40
add r3, r3, #2
cmp r5, r3
blo _021E1D12
_021E1D36:
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD14_021E1D38
MOD14_021E1D38: ; 0x021E1D38
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x18
add r5, r0, #0
str r1, [r5]
str r3, [r5, #4]
str r2, [r5, #0xc]
ldr r0, [sp, #0x30]
mov r4, #1
str r0, [r5, #8]
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
add r2, r3, #0
str r4, [sp, #8]
mov r0, #0xa
str r0, [sp, #0xc]
mov r0, #0x12
mov r1, #4
add r3, r4, #0
bl FUN_0200687C
mov r0, #0x12
mov r1, #0x1b
add r2, sp, #0x14
mov r3, #0xa
bl FUN_02006C08
add r4, r0, #0
ldr r0, [sp, #0x14]
add r1, r5, #0
ldr r0, [r0, #0xc]
add r1, #0xe4
mov r2, #0x40
bl MIi_CpuCopy16
add r0, r4, #0
bl FreeToHeap
mov r0, #0x12
mov r1, #0x14
add r2, sp, #0x14
mov r3, #0xa
bl FUN_02006C08
add r4, r0, #0
ldr r0, [sp, #0x14]
mov r1, #0x49
lsl r1, r1, #2
ldr r0, [r0, #0xc]
add r1, r5, r1
mov r2, #0x20
bl MIi_CpuCopy16
add r0, r4, #0
bl FreeToHeap
add r0, r5, #0
mov r1, #0x2a
mov r4, #1
str r0, [sp, #0x10]
add r0, #0xe4
lsl r1, r1, #4
lsl r4, r4, #0x10
mov r7, #7
str r0, [sp, #0x10]
add r6, r0, r1
_021E1DBC:
asr r0, r4, #0xc
str r0, [sp]
ldr r0, [sp, #0x10]
ldr r3, _021E1ED8 ; =0x00007FFF
add r1, r6, #0
mov r2, #0x30
bl MOD14_021DDE40
ldr r0, _021E1EDC ; =0x00002492
sub r7, r7, #1
sub r4, r4, r0
sub r6, #0x60
cmp r7, #1
bge _021E1DBC
add r0, r5, #0
mov r1, #3
add r0, #0xe4
lsl r1, r1, #8
bl DC_FlushRange
mov r0, #0xe1
lsl r0, r0, #2
mov r1, #0x1a
add r0, r5, r0
lsl r1, r1, #4
mov r2, #0x60
bl GX_LoadOBJPltt
add r0, r5, #0
mov r1, #0x1a
add r0, #0xe4
lsl r1, r1, #4
mov r2, #0x60
bl GXS_LoadOBJPltt
mov r0, #0xa
add r3, r5, #0
str r0, [sp]
mov r0, #0x12
mov r1, #0x11
mov r2, #1
add r3, #0x18
bl FUN_02006BB0
str r0, [r5, #0x14]
mov r0, #0xa
str r0, [sp]
mov r0, #0x12
add r3, r5, #0
add r1, r0, #0
mov r2, #1
add r3, #0x20
bl FUN_02006C30
str r0, [r5, #0x1c]
mov r0, #0xa
add r3, r5, #0
str r0, [sp]
mov r0, #0x12
mov r1, #2
mov r2, #1
add r3, #0x38
bl FUN_02006BDC
str r0, [r5, #0x34]
mov r0, #0xa
add r3, r5, #0
str r0, [sp]
mov r0, #0x12
mov r1, #3
mov r2, #1
add r3, #0x30
bl FUN_02006BDC
str r0, [r5, #0x2c]
mov r0, #2
mov r1, #0xd
mov r2, #4
mov r3, #0xa
bl FUN_0200B870
str r0, [r5, #0x44]
mov r0, #0x7d
lsl r0, r0, #2
mov r1, #0xa
bl FUN_020219F4
ldr r1, _021E1EE0 ; =0x00004BFC
ldr r2, _021E1EE4 ; =0x00000157
str r0, [r5, r1]
mov r0, #0
str r0, [r5, #0x10]
ldr r0, [r5, #0x18]
mov r1, #0x20
ldr r0, [r0, #0x14]
mov r3, #0xa
str r0, [r5, #0x3c]
add r0, r5, #0
add r0, #0x40
strh r1, [r0]
add r0, r5, #0
add r0, #0x42
strh r1, [r0]
mov r0, #1
mov r1, #0x1a
bl FUN_0200A86C
ldr r1, _021E1EE8 ; =0x00004BF8
add r2, r5, #0
str r0, [r5, r1]
mov r1, #0
add r0, r1, #0
_021E1E9C:
add r1, r1, #1
str r0, [r2, #0x48]
add r2, r2, #4
cmp r1, #0x12
blt _021E1E9C
ldr r0, [r5, #0x14]
cmp r0, #0
beq _021E1ECC
ldr r0, [r5, #0x1c]
cmp r0, #0
beq _021E1ECC
ldr r0, [r5, #0x2c]
cmp r0, #0
beq _021E1ECC
ldr r0, [r5, #0x34]
cmp r0, #0
beq _021E1ECC
ldr r0, [r5, #0x44]
cmp r0, #0
beq _021E1ECC
ldr r0, _021E1EE0 ; =0x00004BFC
ldr r0, [r5, r0]
cmp r0, #0
bne _021E1ED2
_021E1ECC:
add sp, #0x18
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
_021E1ED2:
mov r0, #1
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_021E1ED8: .word 0x00007FFF
_021E1EDC: .word 0x00002492
_021E1EE0: .word 0x00004BFC
_021E1EE4: .word 0x00000157
_021E1EE8: .word 0x00004BF8
thumb_func_start MOD14_021E1EEC
MOD14_021E1EEC: ; 0x021E1EEC
push {r3, r4, r5, r6, r7, lr}
add r7, r0, #0
mov r0, #0xa
mov r1, #3
bl FUN_02018FF4
str r0, [r7, #0x10]
cmp r0, #0
beq _021E1F1A
mov r6, #0
ldr r4, _021E1F1C ; =0x021E662C
add r5, r6, #0
_021E1F04:
ldr r1, [r7, #0x10]
ldr r0, [r7, #4]
add r1, r1, r5
add r2, r4, #0
bl FUN_02019150
add r6, r6, #1
add r4, #8
add r5, #0x10
cmp r6, #3
blo _021E1F04
_021E1F1A:
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_021E1F1C: .word 0x021E662C
thumb_func_start MOD14_021E1F20
MOD14_021E1F20: ; 0x021E1F20
push {r4, r5, r6, lr}
add r5, r0, #0
ldr r0, _021E1F90 ; =0x00004BF8
ldr r0, [r5, r0]
cmp r0, #0
beq _021E1F30
bl FUN_0200A8B8
_021E1F30:
ldr r0, [r5, #0x14]
cmp r0, #0
beq _021E1F3A
bl FreeToHeap
_021E1F3A:
ldr r0, [r5, #0x1c]
cmp r0, #0
beq _021E1F44
bl FreeToHeap
_021E1F44:
ldr r0, [r5, #0x2c]
cmp r0, #0
beq _021E1F4E
bl FreeToHeap
_021E1F4E:
ldr r0, [r5, #0x34]
cmp r0, #0
beq _021E1F58
bl FreeToHeap
_021E1F58:
ldr r0, [r5, #0x44]
cmp r0, #0
beq _021E1F62
bl FUN_0200B990
_021E1F62:
ldr r0, _021E1F94 ; =0x00004BFC
ldr r0, [r5, r0]
cmp r0, #0
beq _021E1F6E
bl FUN_02021A20
_021E1F6E:
ldr r0, [r5, #0x10]
cmp r0, #0
beq _021E1F8E
mov r6, #0
add r4, r6, #0
_021E1F78:
ldr r0, [r5, #0x10]
add r0, r0, r4
bl FUN_02019178
add r6, r6, #1
add r4, #0x10
cmp r6, #3
blt _021E1F78
ldr r0, [r5, #0x10]
bl FreeToHeap
_021E1F8E:
pop {r4, r5, r6, pc}
.align 2, 0
_021E1F90: .word 0x00004BF8
_021E1F94: .word 0x00004BFC
thumb_func_start MOD14_021E1F98
MOD14_021E1F98: ; 0x021E1F98
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0xc]
bl MOD14_021DC464
add r1, r4, #0
add r1, #0xe0
str r0, [r1]
add r0, r4, #0
bl MOD14_021E223C
add r0, r4, #0
mov r1, #0
bl MOD14_021E247C
pop {r4, pc}
thumb_func_start MOD14_021E1FB8
MOD14_021E1FB8: ; 0x021E1FB8
ldr r3, _021E1FBC ; =MOD14_021E24D8
bx r3
.align 2, 0
_021E1FBC: .word MOD14_021E24D8
thumb_func_start MOD14_021E1FC0
MOD14_021E1FC0: ; 0x021E1FC0
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0xc]
bl MOD14_021DC464
add r1, r4, #0
add r1, #0xe0
str r0, [r1]
add r0, r4, #0
bl MOD14_021E2360
add r0, r4, #0
bl MOD14_021E2394
add r0, r4, #0
bl MOD14_021E240C
pop {r4, pc}
thumb_func_start MOD14_021E1FE4
MOD14_021E1FE4: ; 0x021E1FE4
ldr r3, _021E1FEC ; =MOD14_021E247C
mov r1, #1
bx r3
nop
_021E1FEC: .word MOD14_021E247C
thumb_func_start MOD14_021E1FF0
MOD14_021E1FF0: ; 0x021E1FF0
ldr r3, _021E1FF4 ; =MOD14_021E24D8
bx r3
.align 2, 0
_021E1FF4: .word MOD14_021E24D8
thumb_func_start MOD14_021E1FF8
MOD14_021E1FF8: ; 0x021E1FF8
push {r4, r5, r6, r7, lr}
sub sp, #0x34
str r0, [sp, #8]
ldr r0, [r0, #0xc]
str r1, [sp, #0xc]
str r2, [sp, #0x10]
str r3, [sp, #0x14]
bl MOD14_021DC44C
ldr r1, [sp, #0xc]
str r0, [sp, #0x28]
bl FUN_0206B43C
add r0, #0xd0
lsl r0, r0, #0x18
lsr r1, r0, #0x18
mov r0, #0xc
str r0, [sp]
ldr r0, [sp, #8]
str r1, [sp, #4]
add r0, #0x3c
mov r1, #9
mov r2, #0xa
mov r3, #0xe
bl FUN_02018F4C
mov r4, #0
mov r0, #0xc
str r4, [sp, #0x20]
str r0, [sp, #0x18]
_021E2034:
mov r0, #0
str r0, [sp, #0x24]
ldr r0, [sp, #8]
mov r6, #0xa
str r0, [sp, #0x2c]
add r0, #0x3c
str r0, [sp, #0x2c]
ldr r0, [sp, #0x18]
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp, #0x30]
_021E204A:
ldr r0, [sp, #0x28]
ldr r1, [sp, #0xc]
add r2, r4, #0
bl FUN_0206B5E4
add r4, r4, #1
add r5, r0, #0
bl FUN_02066A6C
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x1c]
add r0, r5, #0
mov r1, #5
mov r2, #0
bl FUN_020672BC
add r7, r0, #0
beq _021E20C8
add r0, r5, #0
mov r1, #0x4c
mov r2, #0
bl FUN_020672BC
cmp r0, #0
bne _021E209A
add r0, r5, #0
mov r1, #0x70
mov r2, #0
bl FUN_020672BC
lsl r0, r0, #0x10
lsr r1, r0, #0x10
add r0, r7, #0
mov r2, #0x1b
bl FUN_02068654
lsl r0, r0, #0x18
lsr r1, r0, #0x18
b _021E20AA
_021E209A:
ldr r0, _021E2174 ; =0x000001EA
cmp r7, r0
beq _021E20A4
mov r0, #8
b _021E20A6
_021E20A4:
mov r0, #1
_021E20A6:
lsl r0, r0, #0x18
lsr r1, r0, #0x18
_021E20AA:
ldr r0, _021E2178 ; =0x021E6644
ldr r2, [sp, #0x30]
ldrb r0, [r0, r1]
mov r3, #2
add r0, #0xe0
lsl r0, r0, #0x18
lsr r1, r0, #0x18
mov r0, #2
str r0, [sp]
str r1, [sp, #4]
lsl r1, r6, #0x10
ldr r0, [sp, #0x2c]
lsr r1, r1, #0x10
bl FUN_02018F4C
_021E20C8:
ldr r1, [sp, #0x1c]
add r0, r5, #0
bl FUN_02066A94
ldr r0, [sp, #0x24]
add r6, r6, #2
add r0, r0, #1
str r0, [sp, #0x24]
cmp r0, #6
blo _021E204A
ldr r0, [sp, #0x18]
add r0, r0, #2
str r0, [sp, #0x18]
ldr r0, [sp, #0x20]
add r0, r0, #1
str r0, [sp, #0x20]
cmp r0, #5
blo _021E2034
ldr r0, [sp, #0x48]
cmp r0, #0
beq _021E2132
ldr r0, [sp, #0x14]
cmp r0, #1
beq _021E20FE
cmp r0, #2
beq _021E2110
b _021E211E
_021E20FE:
mov r0, #1
lsl r0, r0, #0x1a
ldr r1, [r0]
ldr r0, _021E217C ; =0x00300010
and r1, r0
ldr r0, [sp, #8]
ldr r0, [r0, #0x18]
str r1, [r0, #8]
b _021E211E
_021E2110:
ldr r0, _021E2180 ; =0x04001000
ldr r1, [r0]
ldr r0, _021E217C ; =0x00300010
and r1, r0
ldr r0, [sp, #8]
ldr r0, [r0, #0x18]
str r1, [r0, #8]
_021E211E:
ldr r0, [sp, #8]
ldr r1, [sp, #0x10]
ldr r0, [r0, #0x18]
ldr r2, [sp, #0x14]
ldr r3, [sp, #0x48]
lsl r1, r1, #5
bl FUN_020B1768
add sp, #0x34
pop {r4, r5, r6, r7, pc}
_021E2132:
ldr r0, [sp, #8]
ldr r1, [r0, #0x18]
ldr r0, [r1, #0x14]
ldr r1, [r1, #0x10]
bl DC_FlushRange
ldr r0, [sp, #0x14]
cmp r0, #1
beq _021E214C
cmp r0, #2
beq _021E2160
add sp, #0x34
pop {r4, r5, r6, r7, pc}
_021E214C:
ldr r0, [sp, #8]
ldr r1, [sp, #0x10]
ldr r2, [r0, #0x18]
lsl r1, r1, #5
ldr r0, [r2, #0x14]
ldr r2, [r2, #0x10]
bl GX_LoadOBJ
add sp, #0x34
pop {r4, r5, r6, r7, pc}
_021E2160:
ldr r0, [sp, #8]
ldr r1, [sp, #0x10]
ldr r2, [r0, #0x18]
lsl r1, r1, #5
ldr r0, [r2, #0x14]
ldr r2, [r2, #0x10]
bl GXS_LoadOBJ
add sp, #0x34
pop {r4, r5, r6, r7, pc}
.align 2, 0
_021E2174: .word 0x000001EA
_021E2178: .word 0x021E6644
_021E217C: .word 0x00300010
_021E2180: .word 0x04001000
thumb_func_start MOD14_021E2184
MOD14_021E2184: ; 0x021E2184
ldr r0, [r0, #0x20]
bx lr
thumb_func_start MOD14_021E2188
MOD14_021E2188: ; 0x021E2188
add r0, #0xe0
ldr r0, [r0]
sub r0, r0, #3
bpl _021E2192
add r0, #0x12
_021E2192:
bx lr
thumb_func_start MOD14_021E2194
MOD14_021E2194: ; 0x021E2194
push {r3, r4}
mov r4, #0
ldr r1, _021E21AC ; =0x00004BE4
add r3, r4, #0
_021E219C:
add r2, r0, r4
add r4, r4, #1
strb r3, [r2, r1]
cmp r4, #0x12
blt _021E219C
pop {r3, r4}
bx lr
nop
_021E21AC: .word 0x00004BE4
thumb_func_start MOD14_021E21B0
MOD14_021E21B0: ; 0x021E21B0
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r0, [r5, #0x18]
mov r2, #0xf9
add r4, r1, #0
lsl r2, r2, #2
add r3, r5, r2
lsl r1, r4, #0xa
ldr r0, [r0, #0x14]
add r1, r3, r1
add r2, #0x1c
bl MIi_CpuCopy32
mov r1, #0xf9
lsl r1, r1, #2
add r0, r5, r1
add r1, #0x1c
bl DC_FlushRange
ldr r0, _021E21E0 ; =0x00004BE4
mov r2, #1
add r1, r5, r4
strb r2, [r1, r0]
pop {r3, r4, r5, pc}
.align 2, 0
_021E21E0: .word 0x00004BE4
thumb_func_start MOD14_021E21E4
MOD14_021E21E4: ; 0x021E21E4
push {r4, r5, r6, lr}
sub sp, #0x28
add r5, r0, #0
mov r0, #0x63
lsl r1, r1, #5
lsl r0, r0, #4
add r6, r1, r0
add r4, r2, #0
ldr r0, _021E2238 ; =0x00004BE4
add r1, r5, r4
ldrb r0, [r1, r0]
cmp r0, #0
beq _021E2214
mov r2, #0xf9
lsl r2, r2, #2
add r1, r5, r2
lsl r0, r4, #0xa
add r0, r1, r0
lsl r1, r6, #5
add r2, #0x1c
bl GX_LoadOBJ
add sp, #0x28
pop {r4, r5, r6, pc}
_021E2214:
add r0, sp, #4
bl FUN_020B1A24
add r0, sp, #4
str r0, [sp]
add r0, r5, #0
add r1, r4, #0
add r2, r6, #0
mov r3, #1
bl MOD14_021E1FF8
add r0, r5, #0
add r1, r4, #0
bl MOD14_021E21B0
add sp, #0x28
pop {r4, r5, r6, pc}
nop
_021E2238: .word 0x00004BE4
thumb_func_start MOD14_021E223C
MOD14_021E223C: ; 0x021E223C
push {r4, r5, r6, r7, lr}
sub sp, #0x64
add r6, r0, #0
bl MOD14_021E2194
ldr r0, [r6]
bl MOD14_021DDD50
add r4, r0, #0
ldr r0, [r6]
bl MOD14_021DDD48
add r2, r0, #0
ldr r0, [r4, #4]
mov r1, #0
str r0, [sp]
str r1, [sp, #4]
ldr r3, [r6, #0x20]
add r0, sp, #0x40
bl MOD14_021DDDB4
add r0, r6, #0
bl MOD14_021E2188
add r7, r0, #0
mov r0, #0
str r0, [sp, #0xc]
mov r0, #0x63
lsl r0, r0, #4
str r0, [sp, #8]
add r4, r6, #0
mov r5, #0x20
_021E227C:
add r0, sp, #0x1c
bl FUN_020B1A24
add r0, sp, #0x1c
str r0, [sp]
ldr r2, [sp, #8]
add r0, r6, #0
add r1, r7, #0
mov r3, #1
bl MOD14_021E1FF8
add r0, sp, #0x1c
str r0, [sp, #0x40]
mov r0, #0xb
str r0, [sp]
mov r0, #1
mov r2, #2
str r0, [sp, #4]
lsl r2, r2, #8
ldr r0, [r6, #8]
add r1, sp, #0x40
lsr r3, r2, #1
bl MOD14_021DDDD4
str r0, [r4, #0x48]
cmp r0, #0
bne _021E22B6
bl ErrorHandling
_021E22B6:
ldr r0, [r4, #0x48]
mov r1, #0
bl FUN_020200A0
cmp r5, #0
ble _021E22D4
lsl r0, r5, #0xc
bl _fflt
add r1, r0, #0
mov r0, #0x3f
lsl r0, r0, #0x18
bl _fadd
b _021E22E2
_021E22D4:
lsl r0, r5, #0xc
bl _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
bl _fsub
_021E22E2:
bl _ffix
str r0, [sp, #0x10]
mov r0, #0x16
lsl r0, r0, #0xe
str r0, [sp, #0x14]
mov r0, #0
str r0, [sp, #0x18]
ldr r0, [r4, #0x48]
add r1, sp, #0x10
bl FUN_02020044
add r0, r6, #0
add r1, r7, #0
bl MOD14_021E21B0
add r7, r7, #1
cmp r7, #0x12
blt _021E230A
mov r7, #0
_021E230A:
ldr r0, [sp, #8]
add r4, r4, #4
add r0, #0x20
str r0, [sp, #8]
ldr r0, [sp, #0xc]
add r5, #0x20
add r0, r0, #1
str r0, [sp, #0xc]
cmp r0, #7
blt _021E227C
mov r4, #0
add r5, r6, #0
_021E2322:
ldr r0, [r6, #0xc]
bl MOD14_021DC44C
add r1, r4, #0
bl FUN_0206B4E4
add r1, r5, #0
add r1, #0x94
add r4, r4, #1
add r5, r5, #4
str r0, [r1]
cmp r4, #0x12
blt _021E2322
add sp, #0x64
pop {r4, r5, r6, r7, pc}
thumb_func_start MOD14_021E2340
MOD14_021E2340: ; 0x021E2340
push {r4, r5, r6, lr}
mov r4, #0
add r5, r0, #0
add r6, r4, #0
_021E2348:
ldr r0, [r5, #0x48]
cmp r0, #0
beq _021E2354
bl FUN_0201FFC8
str r6, [r5, #0x48]
_021E2354:
add r4, r4, #1
add r5, r5, #4
cmp r4, #7
blt _021E2348
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start MOD14_021E2360
MOD14_021E2360: ; 0x021E2360
push {r3, r4, r5, r6, r7, lr}
add r7, r0, #0
bl MOD14_021E2188
add r4, r0, #0
mov r6, #0
add r5, r7, #0
_021E236E:
add r0, r7, #0
add r1, r6, #0
add r2, r4, #0
bl MOD14_021E21E4
ldr r0, [r5, #0x48]
mov r1, #1
bl FUN_020200A0
add r4, r4, #1
cmp r4, #0x12
blt _021E2388
mov r4, #0
_021E2388:
add r6, r6, #1
add r5, r5, #4
cmp r6, #7
blt _021E236E
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start MOD14_021E2394
MOD14_021E2394: ; 0x021E2394
push {r4, r5, r6, lr}
sub sp, #0x10
add r5, r0, #0
ldr r0, [r5, #0xc]
bl MOD14_021DC44C
add r1, r5, #0
ldr r2, _021E23F0 ; =0x00004BFC
add r1, #0xe0
ldr r1, [r1]
ldr r2, [r5, r2]
ldr r4, [r5, #0x10]
bl FUN_0206B484
ldr r1, _021E23F0 ; =0x00004BFC
mov r0, #0
ldr r1, [r5, r1]
add r2, r0, #0
bl FUN_02002E14
add r6, r0, #0
add r0, r4, #0
mov r1, #7
bl FUN_02019620
mov r1, #0
str r1, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, _021E23F4 ; =0x00020807
ldr r2, _021E23F0 ; =0x00004BFC
str r0, [sp, #8]
str r1, [sp, #0xc]
ldr r2, [r5, r2]
lsr r5, r6, #1
mov r3, #0x30
add r0, r4, #0
sub r3, r3, r5
bl FUN_0201BDE0
add r0, r4, #0
bl FUN_02019548
add sp, #0x10
pop {r4, r5, r6, pc}
nop
_021E23F0: .word 0x00004BFC
_021E23F4: .word 0x00020807
thumb_func_start MOD14_021E23F8
MOD14_021E23F8: ; 0x021E23F8
push {r4, lr}
ldr r4, [r0, #0x10]
mov r1, #7
add r0, r4, #0
bl FUN_02019620
add r0, r4, #0
bl FUN_02019548
pop {r4, pc}
thumb_func_start MOD14_021E240C
MOD14_021E240C: ; 0x021E240C
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x10
add r7, r0, #0
ldr r0, [r7, #0x10]
mov r1, #4
str r0, [sp, #0xc]
add r0, #0x10
str r0, [sp, #0xc]
bl FUN_02019620
add r0, r7, #0
bl MOD14_021E2188
mov r6, #0
add r4, r0, #0
add r5, r6, #0
_021E242C:
ldr r0, [sp, #0xc]
lsl r1, r4, #2
str r0, [sp]
add r1, r7, r1
str r5, [sp, #4]
mov r0, #0
str r0, [sp, #8]
add r1, #0x94
mov r2, #2
ldr r0, [r7, #0x44]
ldr r1, [r1]
add r3, r2, #0
bl FUN_0200B9EC
add r4, r4, #1
cmp r4, #0x12
blt _021E2450
mov r4, #0
_021E2450:
add r6, r6, #1
add r5, #0x20
cmp r6, #7
blt _021E242C
ldr r0, [sp, #0xc]
bl FUN_02019548
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start MOD14_021E2464
MOD14_021E2464: ; 0x021E2464
push {r4, lr}
ldr r4, [r0, #0x10]
mov r1, #4
add r4, #0x10
add r0, r4, #0
bl FUN_02019620
add r0, r4, #0
bl FUN_02019548
pop {r4, pc}
.align 2, 0
thumb_func_start MOD14_021E247C
MOD14_021E247C: ; 0x021E247C
push {r4, r5, r6, lr}
add r5, r0, #0
add r6, r1, #0
mov r0, #0xa
mov r1, #0xc
bl AllocFromHeap
add r4, r0, #0
beq _021E24B6
ldr r0, _021E24B8 ; =0x021E6624
lsl r1, r6, #2
ldr r0, [r0, r1]
str r5, [r4]
mov r2, #0
strb r2, [r4, #4]
add r1, r4, #0
strb r2, [r4, #5]
bl FUN_0200CA44
add r1, r5, #0
add r1, #0xdc
add r5, #0xdc
str r0, [r1]
ldr r0, [r5]
cmp r0, #0
bne _021E24B6
add r0, r4, #0
bl FreeToHeap
_021E24B6:
pop {r4, r5, r6, pc}
.align 2, 0
_021E24B8: .word 0x021E6624
thumb_func_start MOD14_021E24BC
MOD14_021E24BC: ; 0x021E24BC
push {r4, lr}
add r4, r0, #0
ldr r0, [r1]
mov r2, #0
add r0, #0xdc
str r2, [r0]
add r0, r1, #0
bl FreeToHeap
add r0, r4, #0
bl FUN_0200CAB4
pop {r4, pc}
.align 2, 0
thumb_func_start MOD14_021E24D8
MOD14_021E24D8: ; 0x021E24D8
add r0, #0xdc
ldr r0, [r0]
cmp r0, #0
bne _021E24E4
mov r0, #1
bx lr
_021E24E4:
mov r0, #0
bx lr
thumb_func_start MOD14_021E24E8
MOD14_021E24E8: ; 0x021E24E8
push {r3, r4, r5, r6, lr}
sub sp, #0x1c
add r4, r1, #0
ldrb r2, [r4, #4]
ldr r5, [r4]
cmp r2, #3
bls _021E24F8
b _021E260E
_021E24F8:
add r2, r2, r2
add r2, pc
ldrh r2, [r2, #6]
lsl r2, r2, #0x10
asr r2, r2, #0x10
add pc, r2
_021E2504: ; jump table
.short _021E250C - _021E2504 - 2 ; case 0
.short _021E2592 - _021E2504 - 2 ; case 1
.short _021E25B8 - _021E2504 - 2 ; case 2
.short _021E260A - _021E2504 - 2 ; case 3
_021E250C:
ldrb r0, [r4, #5]
add r0, r0, #1
strb r0, [r4, #5]
ldrb r0, [r4, #5]
lsl r1, r0, #1
cmp r1, #0xa
bge _021E2562
mov r1, #0xa
sub r1, r1, r0
lsl r1, r1, #0x18
lsr r1, r1, #0x18
str r1, [sp]
mov r1, #0x20
str r1, [sp, #4]
str r0, [sp, #8]
ldr r2, [r5, #0x30]
ldr r0, [r5, #4]
mov r1, #1
add r2, #0xc
mov r3, #0
bl FUN_02018148
ldrb r6, [r4, #5]
mov r0, #0x20
mov r3, #0xa
str r0, [sp]
str r6, [sp, #4]
ldr r1, [r5, #0x30]
mov r2, #0
add r1, #0xc
str r1, [sp, #8]
sub r1, r3, r6
lsl r1, r1, #0x18
str r2, [sp, #0xc]
lsr r1, r1, #0x18
str r1, [sp, #0x10]
str r0, [sp, #0x14]
str r3, [sp, #0x18]
ldr r0, [r5, #4]
mov r1, #1
bl FUN_02018170
b _021E2582
_021E2562:
mov r0, #5
str r0, [sp]
mov r0, #0x20
str r0, [sp, #4]
mov r0, #0xa
str r0, [sp, #8]
ldr r2, [r5, #0x30]
ldr r0, [r5, #4]
mov r1, #1
add r2, #0xc
mov r3, #0
bl FUN_02018148
ldrb r0, [r4, #4]
add r0, r0, #1
strb r0, [r4, #4]
_021E2582:
ldr r0, [r5, #4]
mov r1, #1
bl FUN_02017CD0
mov r0, #7
add sp, #0x1c
strb r0, [r4, #5]
pop {r3, r4, r5, r6, pc}
_021E2592:
ldrb r0, [r4, #5]
add r3, r5, #0
mov r2, #0x60
add r1, r0, #0
add r3, #0xe4
mul r1, r2
add r0, r3, r1
mov r1, #0x1a
lsl r1, r1, #4
bl GX_LoadOBJPltt
add r0, r5, #0
bl MOD14_021E2360
ldrb r0, [r4, #4]
add sp, #0x1c
add r0, r0, #1
strb r0, [r4, #4]
pop {r3, r4, r5, r6, pc}
_021E25B8:
ldrb r0, [r4, #5]
cmp r0, #0
beq _021E25C2
sub r0, r0, #1
strb r0, [r4, #5]
_021E25C2:
ldrb r0, [r4, #5]
add r3, r5, #0
mov r2, #0x60
add r1, r0, #0
add r3, #0xe4
mul r1, r2
add r0, r3, r1
mov r1, #0x1a
lsl r1, r1, #4
bl GX_LoadOBJPltt
ldrb r0, [r4, #5]
cmp r0, #0
bne _021E260E
ldr r0, [r5, #0x10]
bl FUN_02019270
ldr r0, [r5, #0x10]
add r0, #0x10
bl FUN_02019270
add r0, r5, #0
bl MOD14_021E2394
add r0, r5, #0
bl MOD14_021E240C
ldr r0, [r5, #4]
mov r1, #1
bl FUN_02017CD0
ldrb r0, [r4, #4]
add sp, #0x1c
add r0, r0, #1
strb r0, [r4, #4]
pop {r3, r4, r5, r6, pc}
_021E260A:
bl MOD14_021E24BC
_021E260E:
add sp, #0x1c
pop {r3, r4, r5, r6, pc}
.align 2, 0
thumb_func_start MOD14_021E2614
MOD14_021E2614: ; 0x021E2614
push {r4, r5, lr}
sub sp, #0x1c
add r5, r1, #0
ldrb r2, [r5, #4]
ldr r4, [r5]
cmp r2, #0
beq _021E262E
cmp r2, #1
beq _021E264A
cmp r2, #2
beq _021E26DC
add sp, #0x1c
pop {r4, r5, pc}
_021E262E:
add r0, r4, #0
bl MOD14_021E2340
add r0, r4, #0
bl MOD14_021E23F8
add r0, r4, #0
bl MOD14_021E2464
ldrb r0, [r5, #4]
add sp, #0x1c
add r0, r0, #1
strb r0, [r5, #4]
pop {r4, r5, pc}
_021E264A:
mov r0, #5
str r0, [sp]
mov r0, #0x20
str r0, [sp, #4]
mov r0, #0xa
str r0, [sp, #8]
mov r0, #0x11
str r0, [sp, #0xc]
mov r2, #0
ldr r0, [r4, #4]
mov r1, #1
add r3, r2, #0
bl FUN_02018540
ldrb r0, [r5, #5]
add r0, r0, #1
strb r0, [r5, #5]
ldrb r0, [r5, #5]
lsl r1, r0, #1
cmp r1, #0xa
bge _021E26CA
add r1, r0, #5
lsl r1, r1, #0x18
lsr r1, r1, #0x18
str r1, [sp]
mov r1, #0x20
str r1, [sp, #4]
mov r1, #5
sub r0, r1, r0
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #8]
ldr r2, [r4, #0x30]
ldr r0, [r4, #4]
mov r1, #1
add r2, #0xc
mov r3, #0
bl FUN_02018148
ldrb r1, [r5, #5]
mov r2, #5
mov r0, #0x20
sub r2, r2, r1
lsl r2, r2, #0x18
mov r3, #0xa
sub r1, r3, r1
lsl r1, r1, #0x18
str r0, [sp]
lsr r2, r2, #0x18
str r2, [sp, #4]
ldr r2, [r4, #0x30]
lsr r1, r1, #0x18
add r2, #0xc
str r2, [sp, #8]
mov r2, #0
str r2, [sp, #0xc]
str r1, [sp, #0x10]
str r0, [sp, #0x14]
str r3, [sp, #0x18]
ldr r0, [r4, #4]
mov r1, #1
bl FUN_02018170
b _021E26D0
_021E26CA:
ldrb r0, [r5, #4]
add r0, r0, #1
strb r0, [r5, #4]
_021E26D0:
ldr r0, [r4, #4]
mov r1, #1
bl FUN_02017CD0
add sp, #0x1c
pop {r4, r5, pc}
_021E26DC:
bl MOD14_021E24BC
add sp, #0x1c
pop {r4, r5, pc}
thumb_func_start MOD14_021E26E4
MOD14_021E26E4: ; 0x021E26E4
push {r4, r5, r6, lr}
sub sp, #0x10
add r5, r0, #0
mov r0, #0xa
mov r1, #0x18
bl AllocFromHeap
add r4, r0, #0
beq _021E2798
ldr r0, [r5, #0xc]
bl MOD14_021DC544
add r6, r0, #0
ldr r0, [r5, #4]
mov r1, #1
mov r2, #3
mov r3, #0
bl FUN_020179E0
mov r0, #0x18
str r0, [sp]
mov r0, #0x20
str r0, [sp, #4]
mov r0, #7
str r0, [sp, #8]
ldr r2, [r5, #0x38]
ldr r0, [r5, #4]
mov r1, #1
add r2, #0xc
mov r3, #0
bl FUN_02018148
ldr r0, [r5, #0x10]
mov r1, #4
add r0, #0x20
bl FUN_02019620
ldr r2, _021E279C ; =0x00004BF8
add r1, r6, #0
ldr r0, [r5, r2]
add r2, r2, #4
ldr r2, [r5, r2]
bl FUN_0200A8E0
mov r1, #0
str r1, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, _021E27A0 ; =0x00020104
ldr r2, _021E27A4 ; =0x00004BFC
str r0, [sp, #8]
str r1, [sp, #0xc]
ldr r0, [r5, #0x10]
ldr r2, [r5, r2]
add r0, #0x20
add r3, r1, #0
bl FUN_0201BDE0
ldr r0, [r5, #0x10]
add r0, #0x20
bl FUN_020191D0
add r0, r5, #0
add r1, r6, #0
bl MOD14_021E2940
mov r1, #0
strh r1, [r4, #0x16]
str r5, [r4]
ldr r0, [r5, #4]
str r0, [r4, #4]
str r1, [r4, #8]
mov r1, #0xe
lsl r1, r1, #0xe
str r1, [r4, #0xc]
ldr r0, [r4, #8]
sub r0, r1, r0
mov r1, #6
bl _s32_div_f
str r0, [r4, #0x10]
mov r0, #6
strh r0, [r4, #0x14]
ldr r0, _021E27A8 ; =MOD14_021E27C4
add r1, r4, #0
mov r2, #0
bl MOD14_021DDD40
add r5, #0xdc
str r0, [r5]
_021E2798:
add sp, #0x10
pop {r4, r5, r6, pc}
.align 2, 0
_021E279C: .word 0x00004BF8
_021E27A0: .word 0x00020104
_021E27A4: .word 0x00004BFC
_021E27A8: .word MOD14_021E27C4
thumb_func_start MOD14_021E27AC
MOD14_021E27AC: ; 0x021E27AC
add r0, #0xdc
ldr r0, [r0]
cmp r0, #0
bne _021E27B8
mov r0, #1
bx lr
_021E27B8:
mov r0, #0
bx lr
thumb_func_start MOD14_021E27BC
MOD14_021E27BC: ; 0x021E27BC
mov r1, #0
add r0, #0xdc
str r1, [r0]
bx lr
thumb_func_start MOD14_021E27C4
MOD14_021E27C4: ; 0x021E27C4
push {r3, r4, r5, lr}
add r4, r1, #0
add r5, r0, #0
ldrh r0, [r4, #0x16]
cmp r0, #0
beq _021E27D6
cmp r0, #1
beq _021E27DC
pop {r3, r4, r5, pc}
_021E27D6:
add r0, r0, #1
strh r0, [r4, #0x16]
pop {r3, r4, r5, pc}
_021E27DC:
ldrh r0, [r4, #0x14]
cmp r0, #0
beq _021E280A
sub r0, r0, #1
strh r0, [r4, #0x14]
ldr r1, [r4, #8]
ldr r0, [r4, #0x10]
mov r2, #3
add r3, r1, r0
str r3, [r4, #8]
ldr r0, [r4, #4]
mov r1, #1
asr r3, r3, #0xc
bl FUN_020179E0
mov r1, #0xe
ldr r2, [r4, #8]
lsl r1, r1, #0x10
ldr r0, [r4]
sub r1, r1, r2
bl MOD14_021E2A00
pop {r3, r4, r5, pc}
_021E280A:
ldr r3, [r4, #0xc]
ldr r0, [r4, #4]
mov r1, #1
mov r2, #3
asr r3, r3, #0xc
bl FUN_020179E0
mov r1, #0xe
ldr r2, [r4, #0xc]
lsl r1, r1, #0x10
ldr r0, [r4]
sub r1, r1, r2
bl MOD14_021E2A00
ldr r1, _021E2838 ; =MOD14_021E27BC
ldr r2, [r4]
add r0, r4, #0
bl MOD14_021DDF30
add r0, r5, #0
bl FUN_0200CAB4
pop {r3, r4, r5, pc}
.align 2, 0
_021E2838: .word MOD14_021E27BC
thumb_func_start MOD14_021E283C
MOD14_021E283C: ; 0x021E283C
push {r3, r4, r5, lr}
add r5, r0, #0
mov r0, #0xa
mov r1, #0x18
bl AllocFromHeap
add r4, r0, #0
beq _021E287C
mov r1, #0
strh r1, [r4, #0x16]
str r5, [r4]
ldr r0, [r5, #4]
str r0, [r4, #4]
mov r0, #0xe
lsl r0, r0, #0xe
str r0, [r4, #8]
str r1, [r4, #0xc]
ldr r0, [r4, #8]
sub r0, r1, r0
mov r1, #6
bl _s32_div_f
str r0, [r4, #0x10]
mov r0, #6
strh r0, [r4, #0x14]
ldr r0, _021E2880 ; =MOD14_021E28B4
add r1, r4, #0
mov r2, #0
bl MOD14_021DDD40
add r5, #0xdc
str r0, [r5]
_021E287C:
pop {r3, r4, r5, pc}
nop
_021E2880: .word MOD14_021E28B4
thumb_func_start MOD14_021E2884
MOD14_021E2884: ; 0x021E2884
push {r4, lr}
add r4, r0, #0
add r0, #0xdc
ldr r0, [r0]
cmp r0, #0
bne _021E28A6
ldr r0, [r4, #4]
mov r1, #1
mov r2, #3
mov r3, #0
bl FUN_020179E0
add r0, r4, #0
bl MOD14_021E2A28
mov r0, #1
pop {r4, pc}
_021E28A6:
mov r0, #0
pop {r4, pc}
.align 2, 0
thumb_func_start MOD14_021E28AC
MOD14_021E28AC: ; 0x021E28AC
mov r1, #0
add r0, #0xdc
str r1, [r0]
bx lr
thumb_func_start MOD14_021E28B4
MOD14_021E28B4: ; 0x021E28B4
push {r3, r4, r5, lr}
sub sp, #0x10
add r4, r1, #0
add r5, r0, #0
ldrh r0, [r4, #0x14]
cmp r0, #0
beq _021E28EC
sub r0, r0, #1
strh r0, [r4, #0x14]
ldr r1, [r4, #8]
ldr r0, [r4, #0x10]
mov r2, #3
add r3, r1, r0
str r3, [r4, #8]
ldr r0, [r4, #4]
mov r1, #1
asr r3, r3, #0xc
bl FUN_020179E0
mov r1, #0xe
ldr r2, [r4, #8]
lsl r1, r1, #0x10
ldr r0, [r4]
sub r1, r1, r2
bl MOD14_021E2A00
add sp, #0x10
pop {r3, r4, r5, pc}
_021E28EC:
ldr r3, [r4, #0xc]
ldr r0, [r4, #4]
mov r1, #1
mov r2, #3
asr r3, r3, #0xc
bl FUN_020179E0
mov r1, #0xe
ldr r2, [r4, #0xc]
lsl r1, r1, #0x10
ldr r0, [r4]
sub r1, r1, r2
bl MOD14_021E2A00
mov r2, #0
str r2, [sp]
mov r0, #0x20
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x11
str r0, [sp, #0xc]
ldr r0, [r4, #4]
mov r1, #1
add r3, r2, #0
bl FUN_02018540
ldr r0, [r4, #4]
mov r1, #1
bl FUN_02017CD0
ldr r1, _021E293C ; =MOD14_021E28AC
ldr r2, [r4]
add r0, r4, #0
bl MOD14_021DDF30
add r0, r5, #0
bl FUN_0200CAB4
add sp, #0x10
pop {r3, r4, r5, pc}
.align 2, 0
_021E293C: .word MOD14_021E28AC
thumb_func_start MOD14_021E2940
MOD14_021E2940: ; 0x021E2940
push {r3, r4, r5, r6, lr}
sub sp, #0x54
add r5, r0, #0
add r4, r1, #0
beq _021E29F6
ldr r0, [r5]
bl MOD14_021DDD50
add r6, r0, #0
ldr r0, [r5]
bl MOD14_021DDD48
add r2, r0, #0
ldr r0, [r6, #0x20]
add r1, sp, #0xc
str r0, [sp]
mov r0, #0
str r0, [sp, #4]
ldr r3, [r6, #0x1c]
add r0, sp, #0x30
bl MOD14_021DDDB4
add r0, sp, #0xc
bl FUN_020B1A24
lsl r0, r4, #0x10
lsr r0, r0, #0x10
mov r1, #1
bl FUN_0206E640
add r1, r0, #0
mov r0, #0xa
str r0, [sp]
mov r0, #0x10
mov r2, #0
add r3, sp, #8
bl FUN_02006BB0
add r6, r0, #0
mov r0, #1
lsl r0, r0, #0x1a
ldr r1, [r0]
ldr r0, _021E29FC ; =0x00300010
mov r2, #1
and r1, r0
ldr r0, [sp, #8]
add r3, sp, #0xc
str r1, [r0, #8]
mov r1, #0xbe
ldr r0, [sp, #8]
lsl r1, r1, #8
bl FUN_020B1768
lsl r0, r4, #0x10
lsr r0, r0, #0x10
mov r1, #2
bl FUN_0206E640
add r1, r0, #0
mov r0, #0x20
str r0, [sp]
mov r0, #0xa
str r0, [sp, #4]
mov r0, #0x10
mov r2, #1
mov r3, #0xc0
bl FUN_02006930
mov r0, #0
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
ldr r0, [r5, #8]
add r1, sp, #0x30
mov r2, #0x12
mov r3, #0xe0
bl MOD14_021DDDD4
add r1, r5, #0
add r1, #0x90
add r5, #0x90
str r0, [r1]
ldr r0, [r5]
cmp r0, #0
beq _021E29F0
mov r1, #6
bl FUN_02020248
_021E29F0:
add r0, r6, #0
bl FreeToHeap
_021E29F6:
add sp, #0x54
pop {r3, r4, r5, r6, pc}
nop
_021E29FC: .word 0x00300010
thumb_func_start MOD14_021E2A00
MOD14_021E2A00: ; 0x021E2A00
push {lr}
sub sp, #0xc
add r2, r0, #0
add r2, #0x90
ldr r2, [r2]
cmp r2, #0
beq _021E2A24
mov r2, #0x12
lsl r2, r2, #0xc
str r1, [sp, #4]
mov r1, #0
str r1, [sp, #8]
str r2, [sp]
add r0, #0x90
ldr r0, [r0]
add r1, sp, #0
bl FUN_02020044
_021E2A24:
add sp, #0xc
pop {pc}
thumb_func_start MOD14_021E2A28
MOD14_021E2A28: ; 0x021E2A28
push {r3, lr}
add r0, #0x90
ldr r0, [r0]
cmp r0, #0
beq _021E2A36
bl FUN_0201FFC8
_021E2A36:
pop {r3, pc}
thumb_func_start MOD14_021E2A38
MOD14_021E2A38: ; 0x021E2A38
push {r3, r4, r5, r6, lr}
sub sp, #4
add r5, r0, #0
add r4, r1, #0
add r6, r2, #0
str r4, [r5]
ldr r0, [sp, #0x18]
str r6, [r5, #0xc]
str r0, [r5, #8]
str r3, [r5, #4]
add r0, r4, #0
bl MOD14_021DDD50
str r0, [r5, #0x38]
add r0, r4, #0
bl MOD14_021DDD58
str r0, [r5, #0x10]
add r0, r6, #0
bl MOD14_021DC3C4
cmp r0, #4
beq _021E2A6E
mov r0, #0xe
str r0, [r5, #0x30]
mov r0, #0
b _021E2A74
_021E2A6E:
mov r0, #9
str r0, [r5, #0x30]
sub r0, #0x31
_021E2A74:
str r0, [r5, #0x34]
add r0, r5, #0
mov r1, #0
add r0, #0x2b
strb r1, [r0]
str r1, [r5, #0x2c]
add r1, r5, #0
ldr r0, [r5, #0x38]
add r1, #0x3c
mov r2, #6
bl MOD14_021E08E4
mov r1, #9
mov r0, #0xa
lsl r1, r1, #6
bl AllocFromHeap
str r0, [r5, #0x1c]
mov r0, #0xa
add r3, r5, #0
str r0, [sp]
mov r0, #0x12
mov r1, #6
mov r2, #1
add r3, #0x18
bl FUN_02006BDC
str r0, [r5, #0x14]
cmp r0, #0
beq _021E2AB6
ldr r1, [r5, #0x1c]
cmp r1, #0
bne _021E2ABC
_021E2AB6:
add sp, #4
mov r0, #0
pop {r3, r4, r5, r6, pc}
_021E2ABC:
add r0, r5, #0
bl MOD14_021E31F4
mov r0, #1
add sp, #4
pop {r3, r4, r5, r6, pc}
thumb_func_start MOD14_021E2AC8
MOD14_021E2AC8: ; 0x021E2AC8
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0x14]
cmp r0, #0
beq _021E2AD6
bl FreeToHeap
_021E2AD6:
ldr r0, [r4, #0x1c]
cmp r0, #0
beq _021E2AE0
bl FreeToHeap
_021E2AE0:
add r0, r4, #0
bl MOD14_021E3390
pop {r4, pc}
thumb_func_start MOD14_021E2AE8
MOD14_021E2AE8: ; 0x021E2AE8
push {r4, lr}
add r4, r0, #0
add r1, r4, #0
mov r2, #0
add r1, #0x2b
strb r2, [r1]
add r1, r4, #0
add r1, #0x2b
ldrb r1, [r1]
bl MOD14_021E31A4
add r0, r4, #0
mov r1, #1
bl MOD14_021E32F8
ldr r0, [r4, #4]
mov r1, #2
bl FUN_02017CD0
pop {r4, pc}
thumb_func_start MOD14_021E2B10
MOD14_021E2B10: ; 0x021E2B10
push {r4, lr}
add r4, r0, #0
mov r1, #0
bl MOD14_021E32F8
add r0, r4, #0
mov r1, #0x1a
add r0, #0x2b
strb r1, [r0]
ldr r0, _021E2B3C ; =MOD14_021E2B50
add r1, r4, #0
mov r2, #0
bl MOD14_021DDD40
cmp r0, #0
beq _021E2B34
mov r0, #1
b _021E2B36
_021E2B34:
mov r0, #0
_021E2B36:
str r0, [r4, #0x2c]
pop {r4, pc}
nop
_021E2B3C: .word MOD14_021E2B50
thumb_func_start MOD14_021E2B40
MOD14_021E2B40: ; 0x021E2B40
ldr r0, [r0, #0x2c]
cmp r0, #0
bne _021E2B4A
mov r0, #1
bx lr
_021E2B4A:
mov r0, #0
bx lr
.align 2, 0
thumb_func_start MOD14_021E2B50
MOD14_021E2B50: ; 0x021E2B50
push {r4, r5, r6, lr}
add r5, r1, #0
add r6, r0, #0
add r0, r5, #0
add r0, #0x2b
ldrb r0, [r0]
cmp r0, #2
bls _021E2B6C
add r0, r5, #0
add r0, #0x2b
ldrb r0, [r0]
ldr r4, _021E2BAC ; =0xFFFF0000
sub r1, r0, #2
b _021E2B72
_021E2B6C:
lsl r0, r0, #0xf
neg r4, r0
mov r1, #0
_021E2B72:
add r0, r5, #0
add r0, #0x2b
strb r1, [r0]
add r1, r5, #0
add r1, #0x2b
ldrb r1, [r1]
add r0, r5, #0
bl MOD14_021E31A4
ldr r0, [r5, #4]
mov r1, #2
bl FUN_02017CD0
add r0, r5, #0
add r1, r4, #0
bl MOD14_021E3290
add r0, r5, #0
add r0, #0x2b
ldrb r0, [r0]
cmp r0, #0
bne _021E2BA8
mov r0, #0
str r0, [r5, #0x2c]
add r0, r6, #0
bl FUN_0200CAB4
_021E2BA8:
pop {r4, r5, r6, pc}
nop
_021E2BAC: .word 0xFFFF0000
thumb_func_start MOD14_021E2BB0
MOD14_021E2BB0: ; 0x021E2BB0
push {r4, lr}
add r4, r0, #0
ldr r0, _021E2BCC ; =MOD14_021E2BE4
add r1, r4, #0
mov r2, #0
bl MOD14_021DDD40
cmp r0, #0
beq _021E2BC6
mov r0, #1
b _021E2BC8
_021E2BC6:
mov r0, #0
_021E2BC8:
str r0, [r4, #0x2c]
pop {r4, pc}
.align 2, 0
_021E2BCC: .word MOD14_021E2BE4
thumb_func_start MOD14_021E2BD0
MOD14_021E2BD0: ; 0x021E2BD0
push {r3, lr}
ldr r1, [r0, #0x2c]
cmp r1, #0
bne _021E2BE0
bl MOD14_021E3390
mov r0, #1
pop {r3, pc}
_021E2BE0:
mov r0, #0
pop {r3, pc}
thumb_func_start MOD14_021E2BE4
MOD14_021E2BE4: ; 0x021E2BE4
push {r4, r5, r6, lr}
sub sp, #0x10
add r5, r1, #0
add r6, r0, #0
add r0, r5, #0
add r0, #0x2b
ldrb r0, [r0]
cmp r0, #0x18
bhs _021E2C04
add r0, r5, #0
add r0, #0x2b
ldrb r0, [r0]
mov r4, #1
lsl r4, r4, #0x10
add r1, r0, #2
b _021E2C0A
_021E2C04:
mov r1, #0x1a
sub r0, r1, r0
lsl r4, r0, #0xf
_021E2C0A:
add r0, r5, #0
add r0, #0x2b
strb r1, [r0]
add r0, r5, #0
add r0, #0x2b
ldrb r1, [r0]
cmp r1, #2
bls _021E2C46
asr r0, r4, #0xc
lsr r0, r0, #3
sub r1, r1, #2
sub r1, r1, r0
lsl r1, r1, #0x18
lsr r1, r1, #0x18
str r1, [sp]
mov r1, #0xf
lsl r0, r0, #0x18
str r1, [sp, #4]
lsr r0, r0, #0x18
str r0, [sp, #8]
mov r0, #0x11
str r0, [sp, #0xc]
ldr r3, [r5, #0x30]
ldr r0, [r5, #4]
lsl r3, r3, #0x18
mov r1, #2
mov r2, #0
lsr r3, r3, #0x18
bl FUN_02018540
_021E2C46:
add r1, r5, #0
add r1, #0x2b
ldrb r1, [r1]
add r0, r5, #0
bl MOD14_021E31A4
ldr r0, [r5, #4]
mov r1, #2
bl FUN_02017CD0
add r0, r5, #0
add r1, r4, #0
bl MOD14_021E3290
add r0, r5, #0
add r0, #0x2b
ldrb r0, [r0]
cmp r0, #0x1a
bne _021E2C76
mov r0, #0
str r0, [r5, #0x2c]
add r0, r6, #0
bl FUN_0200CAB4
_021E2C76:
add sp, #0x10
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start MOD14_021E2C7C
MOD14_021E2C7C: ; 0x021E2C7C
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x10
add r6, r0, #0
ldr r0, [r6, #0xc]
ldr r0, [r0, #4]
bl FUN_0206B9AC
add r1, r6, #0
add r1, #0x28
ldrb r4, [r1]
cmp r4, r0
bge _021E2D20
sub r0, r0, r4
str r0, [sp, #8]
cmp r4, #5
bge _021E2CF8
mov r0, #0x34
add r1, r4, #0
mul r1, r0
add r0, r6, #0
str r0, [sp, #0xc]
add r0, #0x3c
str r0, [sp, #0xc]
add r5, r0, r1
add r7, r6, r1
ldr r0, _021E2D28 ; =0x00000418
lsl r1, r4, #5
add r0, r1, r0
str r0, [sp, #4]
_021E2CB6:
add r1, r4, #1
mov r0, #0x34
mul r0, r1
ldr r1, [sp, #0xc]
str r0, [sp]
add r0, r1, r0
add r1, r5, #0
mov r2, #1
bl MOD14_021E0930
ldr r2, [sp, #0xc]
ldr r1, [sp]
ldr r0, [r6, #0x38]
add r1, r2, r1
mov r2, #1
bl MOD14_021E08E4
ldr r0, [r7, #0x3c]
cmp r0, #0
beq _021E2CE8
ldr r0, [r6, #0x38]
ldr r2, [sp, #4]
add r1, r5, #0
bl MOD14_021E0BBC
_021E2CE8:
ldr r0, [sp, #4]
add r4, r4, #1
add r0, #0x20
add r5, #0x34
add r7, #0x34
str r0, [sp, #4]
cmp r4, #5
blt _021E2CB6
_021E2CF8:
add r1, r6, #0
ldr r0, [sp, #8]
add r1, #0x29
strb r0, [r1]
add r0, r6, #0
mov r2, #0
add r0, #0x2a
strb r2, [r0]
ldr r0, _021E2D2C ; =MOD14_021E2D30
add r1, r6, #0
bl MOD14_021DDD40
cmp r0, #0
beq _021E2D18
mov r0, #1
b _021E2D1A
_021E2D18:
mov r0, #0
_021E2D1A:
add sp, #0x10
str r0, [r6, #0x2c]
pop {r3, r4, r5, r6, r7, pc}
_021E2D20:
mov r0, #0
str r0, [r6, #0x2c]
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_021E2D28: .word 0x00000418
_021E2D2C: .word MOD14_021E2D30
thumb_func_start MOD14_021E2D30
MOD14_021E2D30: ; 0x021E2D30
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
str r1, [sp, #4]
ldr r2, [sp, #4]
str r0, [sp]
add r1, #0x28
ldr r0, [sp, #4]
add r2, #0x2a
add r0, #0x29
ldrb r7, [r0]
ldr r0, [sp, #4]
ldrb r1, [r1]
ldrb r3, [r2]
ldr r0, [r0, #0x1c]
lsl r2, r1, #3
add r3, r3, r2
mov r2, #0xc
mul r2, r3
add r4, r0, r2
mov r6, #0
cmp r7, #0
ble _021E2D7C
mov r0, #0x34
add r2, r1, #0
mul r2, r0
ldr r0, [sp, #4]
add r5, r0, r2
_021E2D66:
ldr r0, [r5, #0x3c]
cmp r0, #0
beq _021E2D72
add r1, r4, #0
bl FUN_02020044
_021E2D72:
add r6, r6, #1
add r5, #0x34
add r4, #0x60
cmp r6, r7
blt _021E2D66
_021E2D7C:
ldr r0, [sp, #4]
add r0, #0x2a
ldrb r0, [r0]
add r1, r0, #1
ldr r0, [sp, #4]
add r0, #0x2a
strb r1, [r0]
ldr r0, [sp, #4]
add r0, #0x2a
ldrb r0, [r0]
cmp r0, #8
blo _021E2DA0
ldr r0, [sp, #4]
mov r1, #0
str r1, [r0, #0x2c]
ldr r0, [sp]
bl FUN_0200CAB4
_021E2DA0:
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD14_021E2DA4
MOD14_021E2DA4: ; 0x021E2DA4
ldr r0, [r0, #0x2c]
cmp r0, #0
bne _021E2DAE
mov r0, #1
bx lr
_021E2DAE:
mov r0, #0
bx lr
.align 2, 0
thumb_func_start MOD14_021E2DB4
MOD14_021E2DB4: ; 0x021E2DB4
push {r4, r5, lr}
sub sp, #0xc
add r5, r0, #0
ldr r0, [r5, #0xc]
ldr r0, [r0, #4]
bl FUN_0206B9AC
sub r4, r0, #1
add r0, r5, #0
add r0, #0x28
ldrb r0, [r0]
cmp r0, r4
bls _021E2E3A
mov r0, #0x34
mul r0, r4
add r0, r5, r0
ldr r0, [r0, #0x3c]
bl FUN_0202011C
add r3, r0, #0
ldmia r3!, {r0, r1}
add r2, sp, #0
stmia r2!, {r0, r1}
ldr r0, [r3]
ldr r1, _021E2E44 ; =0x021E6650
str r0, [r2]
lsl r0, r4, #2
ldrh r1, [r1, r0]
ldr r2, [r5, #0x34]
add r1, r2, r1
lsl r2, r1, #0xc
ldr r1, [sp]
sub r2, r2, r1
asr r1, r2, #2
lsr r1, r1, #0x1d
add r1, r2, r1
asr r1, r1, #3
str r1, [r5, #0x20]
ldr r1, _021E2E48 ; =0x021E6652
mov r2, #0
ldrh r0, [r1, r0]
lsl r1, r0, #0xc
ldr r0, [sp, #4]
sub r1, r1, r0
asr r0, r1, #2
lsr r0, r0, #0x1d
add r0, r1, r0
asr r0, r0, #3
str r0, [r5, #0x24]
add r0, r5, #0
add r0, #0x2a
strb r2, [r0]
add r0, r5, #0
add r0, #0x28
strb r4, [r0]
ldr r0, _021E2E4C ; =MOD14_021E2E60
add r1, r5, #0
bl MOD14_021DDD40
cmp r0, #0
beq _021E2E32
mov r0, #1
b _021E2E34
_021E2E32:
mov r0, #0
_021E2E34:
add sp, #0xc
str r0, [r5, #0x2c]
pop {r4, r5, pc}
_021E2E3A:
mov r0, #0
str r0, [r5, #0x2c]
add sp, #0xc
pop {r4, r5, pc}
nop
_021E2E44: .word 0x021E6650
_021E2E48: .word 0x021E6652
_021E2E4C: .word MOD14_021E2E60
thumb_func_start MOD14_021E2E50
MOD14_021E2E50: ; 0x021E2E50
ldr r0, [r0, #0x2c]
cmp r0, #0
bne _021E2E5A
mov r0, #1
bx lr
_021E2E5A:
mov r0, #0
bx lr
.align 2, 0
thumb_func_start MOD14_021E2E60
MOD14_021E2E60: ; 0x021E2E60
push {r3, r4, r5, r6, lr}
sub sp, #0xc
add r5, r1, #0
add r6, r0, #0
add r0, r5, #0
add r0, #0x28
ldrb r1, [r0]
mov r0, #0x34
mul r0, r1
add r0, r5, r0
ldr r0, [r0, #0x3c]
bl FUN_0202011C
add r3, r0, #0
ldmia r3!, {r0, r1}
add r2, sp, #0
stmia r2!, {r0, r1}
ldr r0, [r3]
str r0, [r2]
add r0, r5, #0
add r0, #0x2a
ldrb r0, [r0]
add r1, r0, #1
add r0, r5, #0
add r0, #0x2a
strb r1, [r0]
add r0, r5, #0
add r0, #0x2a
ldrb r0, [r0]
cmp r0, #8
blo _021E2EC6
add r1, r5, #0
add r1, #0x28
ldrb r1, [r1]
ldr r0, [r5, #0x34]
mov r4, #1
lsl r2, r1, #2
ldr r1, _021E2F00 ; =0x021E6650
ldrh r1, [r1, r2]
add r0, r0, r1
lsl r0, r0, #0xc
str r0, [sp]
add r0, r5, #0
add r0, #0x28
ldrb r0, [r0]
lsl r1, r0, #2
ldr r0, _021E2F04 ; =0x021E6652
ldrh r0, [r0, r1]
lsl r0, r0, #0xc
str r0, [sp, #4]
b _021E2ED8
_021E2EC6:
ldr r1, [sp]
ldr r0, [r5, #0x20]
mov r4, #0
add r0, r1, r0
str r0, [sp]
ldr r1, [sp, #4]
ldr r0, [r5, #0x24]
add r0, r1, r0
str r0, [sp, #4]
_021E2ED8:
add r0, r5, #0
add r0, #0x28
ldrb r1, [r0]
mov r0, #0x34
mul r0, r1
add r0, r5, r0
ldr r0, [r0, #0x3c]
add r1, sp, #0
bl FUN_02020044
cmp r4, #0
beq _021E2EFA
mov r0, #0
str r0, [r5, #0x2c]
add r0, r6, #0
bl FUN_0200CAB4
_021E2EFA:
add sp, #0xc
pop {r3, r4, r5, r6, pc}
nop
_021E2F00: .word 0x021E6650
_021E2F04: .word 0x021E6652
thumb_func_start MOD14_021E2F08
MOD14_021E2F08: ; 0x021E2F08
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r0, [r5, #0xc]
bl MOD14_021DC424
mov r1, #0x11
ldr r2, [r5, #0xc]
lsl r1, r1, #4
ldrh r1, [r2, r1]
cmp r1, r0
bne _021E2F24
ldr r0, [r5, #0x10]
bl MOD14_021DEA50
_021E2F24:
ldr r0, [r5, #0xc]
bl MOD14_021DC3E8
add r4, r0, #0
add r2, r5, #0
mov r1, #0x34
ldr r0, [r5, #0x38]
add r2, #0x3c
mul r1, r4
add r1, r2, r1
mov r2, #1
bl MOD14_021E0908
add r5, #0x28
strb r4, [r5]
pop {r3, r4, r5, pc}
thumb_func_start MOD14_021E2F44
MOD14_021E2F44: ; 0x021E2F44
add r2, r0, #0
mov r0, #0x5d
mov r3, #0
lsl r0, r0, #2
strb r3, [r2, r0]
add r0, r2, #0
add r0, #0x28
mov r3, #0x34
strb r1, [r0]
ldr r0, [r2, #0x38]
add r2, #0x3c
mul r3, r1
add r1, r2, r3
ldr r3, _021E2F64 ; =MOD14_021E0C20
mov r2, #1
bx r3
.align 2, 0
_021E2F64: .word MOD14_021E0C20
thumb_func_start MOD14_021E2F68
MOD14_021E2F68: ; 0x021E2F68
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r0, #0x28
ldrb r1, [r0]
add r4, r5, #0
mov r0, #0x34
add r6, r1, #0
mul r6, r0
mov r0, #0x5d
lsl r0, r0, #2
ldrb r0, [r5, r0]
add r4, #0x3c
cmp r0, #0
beq _021E2F8A
cmp r0, #1
beq _021E2FD2
b _021E2FE2
_021E2F8A:
ldr r0, [r5, #0x38]
add r1, r4, r6
bl MOD14_021E0C48
cmp r0, #0
beq _021E2FE2
ldr r0, [r5]
bl MOD14_021DDEDC
add r7, r0, #0
bl MOD14_021DA1B8
cmp r0, #0
beq _021E2FE2
add r0, r7, #0
bl MOD14_021DA1C0
cmp r0, #0
ldr r0, [r5, #0x38]
beq _021E2FBE
add r1, r4, r6
mov r2, #1
bl MOD14_021E0908
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021E2FBE:
add r1, r4, r6
mov r2, #2
bl MOD14_021E0C20
mov r0, #0x5d
lsl r0, r0, #2
ldrb r1, [r5, r0]
add r1, r1, #1
strb r1, [r5, r0]
b _021E2FE2
_021E2FD2:
ldr r0, [r5, #0x38]
add r1, r4, r6
bl MOD14_021E0C48
cmp r0, #0
beq _021E2FE2
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021E2FE2:
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start MOD14_021E2FE8
MOD14_021E2FE8: ; 0x021E2FE8
push {r3, r4, r5, r6, r7, lr}
add r7, r0, #0
ldr r0, [r7, #0xc]
bl MOD14_021DC3CC
cmp r0, #1
bne _021E3020
ldr r0, [r7, #0xc]
bl MOD14_021DC484
add r5, r7, #0
str r0, [sp]
mov r6, #0
add r4, r7, #0
add r5, #0x3c
_021E3006:
ldr r0, [r4, #0x3c]
cmp r0, #0
beq _021E3016
ldr r0, [r7, #0x38]
ldr r2, [sp]
add r1, r5, #0
bl MOD14_021E0B54
_021E3016:
add r6, r6, #1
add r4, #0x34
add r5, #0x34
cmp r6, #6
blt _021E3006
_021E3020:
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start MOD14_021E3024
MOD14_021E3024: ; 0x021E3024
push {r4, r5, r6, lr}
add r5, r0, #0
add r6, r5, #0
mov r0, #0x34
add r4, r1, #0
mul r4, r0
add r6, #0x3c
ldr r0, [r6, r4]
cmp r0, #0
beq _021E3050
ldr r0, [r5, #0x38]
add r1, r6, r4
bl MOD14_021E0BA8
ldr r0, [r5, #0xc]
bl MOD14_021DC484
add r2, r0, #0
ldr r0, [r5, #0x38]
add r1, r6, r4
bl MOD14_021E0B54
_021E3050:
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start MOD14_021E3054
MOD14_021E3054: ; 0x021E3054
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r0, [r5, #0xc]
bl MOD14_021DC3E8
add r4, r0, #0
ldr r0, [r5, #0xc]
bl MOD14_021DC45C
add r2, r0, #0
add r1, r5, #0
mov r0, #0x34
add r3, r4, #0
add r1, #0x3c
mul r3, r0
ldr r0, [r1, r3]
cmp r0, #0
beq _021E3080
ldr r0, [r5, #0x38]
add r1, r1, r3
bl MOD14_021E0BA4
_021E3080:
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_start MOD14_021E3084
MOD14_021E3084: ; 0x021E3084
push {r3, r4, r5, r6, r7, lr}
add r6, r1, #0
add r5, r0, #0
mov r0, #0x34
add r4, r6, #0
mul r4, r0
add r0, r5, #0
add r7, r3, #0
add r0, #0x3c
str r2, [sp]
add r0, r0, r4
add r1, r7, #0
mov r2, #1
bl MOD14_021E0930
ldr r0, [r5, #0x38]
ldr r2, [sp]
add r1, r7, #0
bl MOD14_021E0BBC
add r1, r5, #0
add r1, #0x3c
ldr r0, [r5, #0x38]
add r1, r1, r4
mov r2, #1
bl MOD14_021E08E4
add r5, #0x28
strb r6, [r5]
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD14_021E30C0
MOD14_021E30C0: ; 0x021E30C0
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
add r5, r0, #0
ldr r0, [r5, #0xc]
str r1, [sp]
ldr r0, [r0, #4]
str r2, [sp, #4]
bl FUN_0206B9AC
sub r6, r0, #1
add r4, r5, #0
mov r0, #0x34
add r7, r6, #0
mul r7, r0
add r4, #0x3c
ldr r0, [sp, #4]
add r1, r4, r7
mov r2, #1
bl MOD14_021E0930
ldr r2, _021E3110 ; =0x00000418
lsl r3, r6, #5
ldr r0, [r5, #0x38]
add r1, r4, r7
add r2, r3, r2
bl MOD14_021E0BBC
ldr r0, [r4, r7]
mov r1, #1
bl FUN_02020238
ldr r0, [r4, r7]
add r1, r6, #4
bl MOD14_021DDE24
ldr r0, [sp]
add r5, #0x28
strb r0, [r5]
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_021E3110: .word 0x00000418
thumb_func_start MOD14_021E3114
MOD14_021E3114: ; 0x021E3114
push {r3, r4, r5, r6, r7, lr}
add r7, r0, #0
add r6, r1, #0
add r5, r7, #0
mov r0, #0x34
add r4, r6, #0
mul r4, r0
add r5, #0x3c
add r0, r2, #0
add r1, r5, r4
mov r2, #1
bl MOD14_021E0930
ldr r2, _021E3154 ; =0x00000418
lsl r3, r6, #5
ldr r0, [r7, #0x38]
add r1, r5, r4
add r2, r3, r2
bl MOD14_021E0BBC
ldr r0, [r5, r4]
mov r1, #1
bl FUN_02020238
ldr r0, [r5, r4]
add r1, r6, #4
bl MOD14_021DDE24
add r7, #0x28
strb r6, [r7]
pop {r3, r4, r5, r6, r7, pc}
nop
_021E3154: .word 0x00000418
thumb_func_start MOD14_021E3158
MOD14_021E3158: ; 0x021E3158
push {r3, r4, r5, lr}
add r4, r1, #0
add r5, r0, #0
cmp r4, #6
blo _021E3166
bl ErrorHandling
_021E3166:
mov r0, #0x34
add r5, #0x3c
mul r0, r4
add r0, r5, r0
pop {r3, r4, r5, pc}
thumb_func_start MOD14_021E3170
MOD14_021E3170: ; 0x021E3170
push {r3, r4}
cmp r1, #6
bne _021E3184
ldr r0, [r0, #0x34]
add r0, #0xc0
str r0, [r2]
mov r0, #0xb8
str r0, [r3]
pop {r3, r4}
bx lr
_021E3184:
ldr r4, [r0, #0x34]
ldr r0, _021E319C ; =0x021E6650
lsl r1, r1, #2
ldrh r0, [r0, r1]
add r0, r4, r0
str r0, [r2]
ldr r0, _021E31A0 ; =0x021E6652
ldrh r0, [r0, r1]
str r0, [r3]
pop {r3, r4}
bx lr
nop
_021E319C: .word 0x021E6650
_021E31A0: .word 0x021E6652
thumb_func_start MOD14_021E31A4
MOD14_021E31A4: ; 0x021E31A4
push {r3, r4, lr}
sub sp, #0xc
add r3, r0, #0
cmp r1, #2
bhi _021E31BE
mov r0, #2
sub r1, r0, r1
add r2, r1, #0
mov r0, #0x1e
mul r2, r0
mov r1, #0x18
mov r0, #0
b _021E31CC
_021E31BE:
cmp r1, #0x1a
bhs _021E31F0
mov r0, #0x1a
sub r1, r0, r1
mov r0, #0x18
mov r2, #0
sub r0, r0, r1
_021E31CC:
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp]
mov r0, #0xf
str r0, [sp, #4]
lsl r0, r1, #0x18
lsr r0, r0, #0x18
str r0, [sp, #8]
ldr r4, [r3, #0x18]
ldr r0, [r3, #4]
ldr r3, [r3, #0x30]
add r4, #0xc
lsl r3, r3, #0x18
mov r1, #2
add r2, r4, r2
lsr r3, r3, #0x18
bl FUN_02018148
_021E31F0:
add sp, #0xc
pop {r3, r4, pc}
thumb_func_start MOD14_021E31F4
MOD14_021E31F4: ; 0x021E31F4
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
str r0, [sp]
str r1, [sp, #4]
mov r0, #0
ldr r1, _021E328C ; =0x021E6650
mov ip, r0
_021E3202:
ldrh r3, [r1]
ldrh r2, [r1, #4]
mov r0, #0
ldrh r4, [r1, #2]
sub r2, r3, r2
lsl r3, r2, #0xc
asr r2, r3, #2
lsr r2, r2, #0x1d
add r2, r3, r2
ldrh r3, [r1, #6]
asr r2, r2, #3
mov lr, r2
sub r3, r4, r3
lsl r4, r3, #0xc
asr r3, r4, #2
lsr r3, r3, #0x1d
add r3, r4, r3
ldr r2, [sp, #4]
add r6, r0, #0
asr r7, r3, #3
add r5, r0, #0
_021E322C:
ldr r3, [sp]
add r5, r5, r7
ldr r4, [r3, #0x34]
ldrh r3, [r1, #4]
add r0, r0, #1
add r3, r4, r3
lsl r4, r3, #0xc
mov r3, lr
add r6, r6, r3
add r3, r4, r6
str r3, [r2]
ldrh r3, [r1, #6]
lsl r3, r3, #0xc
add r3, r3, r5
str r3, [r2, #4]
mov r3, #0
str r3, [r2, #8]
add r2, #0xc
cmp r0, #7
blo _021E322C
ldr r3, [sp]
mov r2, #0xc
ldr r4, [r3, #0x34]
ldrh r3, [r1]
mul r2, r0
ldr r0, [sp, #4]
add r3, r4, r3
lsl r4, r3, #0xc
ldr r3, [sp, #4]
add r0, r0, r2
str r4, [r3, r2]
ldrh r2, [r1, #2]
add r1, r1, #4
lsl r2, r2, #0xc
str r2, [r0, #4]
mov r2, #0
str r2, [r0, #8]
add r0, r3, #0
add r0, #0x60
str r0, [sp, #4]
mov r0, ip
add r0, r0, #1
mov ip, r0
cmp r0, #5
blo _021E3202
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
nop
_021E328C: .word 0x021E6650
thumb_func_start MOD14_021E3290
MOD14_021E3290: ; 0x021E3290
push {r4, r5, r6, r7, lr}
sub sp, #0xc
add r5, r0, #0
add r4, r1, #0
mov r7, #0
_021E329A:
ldr r0, [r5, #0x3c]
cmp r0, #0
beq _021E32F2
bl FUN_0202011C
add r6, r0, #0
add r3, sp, #0
ldmia r6!, {r0, r1}
add r2, r3, #0
stmia r3!, {r0, r1}
ldr r0, [r6]
add r1, r2, #0
str r0, [r3]
ldr r0, [sp, #4]
add r0, r0, r4
str r0, [sp, #4]
ldr r0, [r5, #0x3c]
bl FUN_02020044
cmp r4, #0
bge _021E32D8
mov r0, #0xd
ldr r1, [sp, #4]
lsl r0, r0, #0x10
cmp r1, r0
bge _021E32EA
ldr r0, [r5, #0x3c]
mov r1, #1
bl FUN_020200A0
b _021E32EA
_021E32D8:
mov r0, #0xd
ldr r1, [sp, #4]
lsl r0, r0, #0x10
cmp r1, r0
blt _021E32EA
ldr r0, [r5, #0x3c]
mov r1, #0
bl FUN_020200A0
_021E32EA:
add r7, r7, #1
add r5, #0x34
cmp r7, #6
blt _021E329A
_021E32F2:
add sp, #0xc
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start MOD14_021E32F8
MOD14_021E32F8: ; 0x021E32F8
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x28
str r0, [sp, #0x24]
str r1, [sp, #0x10]
cmp r1, #0
beq _021E330A
mov r0, #0
str r0, [sp, #0x14]
b _021E330E
_021E330A:
mov r0, #0xd0
str r0, [sp, #0x14]
_021E330E:
ldr r0, [sp, #0x24]
ldr r0, [r0, #0xc]
ldr r0, [r0, #4]
bl FUN_0206B9AC
mov r4, #0
str r0, [sp, #0x20]
cmp r0, #0
ble _021E3384
ldr r0, [sp, #0x24]
ldr r7, _021E3388 ; =0x00000418
str r0, [sp, #0x1c]
add r0, #0x3c
str r0, [sp, #0x1c]
ldr r0, [sp, #0x24]
ldr r5, _021E338C ; =0x021E6650
str r0, [sp, #0x18]
_021E3330:
ldr r0, [sp, #0x24]
add r1, r4, #0
ldr r0, [r0, #0xc]
ldr r0, [r0, #4]
bl FUN_0206B9B0
add r1, r0, #0
mov r0, #1
str r0, [sp]
add r0, r4, #4
str r0, [sp, #4]
ldr r0, [sp, #0x1c]
str r7, [sp, #8]
str r0, [sp, #0xc]
ldr r2, [sp, #0x24]
ldr r0, [sp, #0x24]
ldr r3, [r2, #0x34]
ldrh r2, [r5]
ldrh r6, [r5, #2]
ldr r0, [r0, #0x38]
add r2, r3, r2
ldr r3, [sp, #0x14]
add r3, r3, r6
bl MOD14_021E0940
ldr r0, [sp, #0x18]
ldr r1, [sp, #0x10]
ldr r0, [r0, #0x3c]
bl FUN_020200A0
ldr r0, [sp, #0x1c]
add r4, r4, #1
add r0, #0x34
str r0, [sp, #0x1c]
ldr r0, [sp, #0x18]
add r7, #0x20
add r0, #0x34
str r0, [sp, #0x18]
ldr r0, [sp, #0x20]
add r5, r5, #4
cmp r4, r0
blt _021E3330
_021E3384:
add sp, #0x28
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_021E3388: .word 0x00000418
_021E338C: .word 0x021E6650
thumb_func_start MOD14_021E3390
MOD14_021E3390: ; 0x021E3390
push {r3, r4, r5, r6, r7, lr}
add r7, r0, #0
ldr r0, [r7, #0xc]
ldr r0, [r0, #4]
bl FUN_0206B9AC
mov r6, #0
str r0, [sp]
cmp r0, #0
ble _021E33C6
add r5, r7, #0
add r4, r7, #0
add r5, #0x3c
_021E33AA:
ldr r0, [r4, #0x3c]
cmp r0, #0
beq _021E33BA
ldr r0, [r7, #0x38]
add r1, r5, #0
mov r2, #1
bl MOD14_021E0908
_021E33BA:
ldr r0, [sp]
add r6, r6, #1
add r4, #0x34
add r5, #0x34
cmp r6, r0
blt _021E33AA
_021E33C6:
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD14_021E33C8
MOD14_021E33C8: ; 0x021E33C8
push {r3, r4, r5, r6, r7, lr}
add r5, r2, #0
add r6, r0, #0
add r0, r5, #0
add r7, r1, #0
str r3, [sp]
bl MOD14_021DC3C4
cmp r0, #4
bne _021E33E4
mov r0, #0
str r0, [r6]
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021E33E4:
mov r0, #0xa
mov r1, #0xf4
bl AllocFromHeap
add r4, r0, #0
beq _021E3460
ldr r0, [sp]
mov r1, #0xa
str r0, [r4, #8]
str r7, [r4]
ldr r0, [sp, #0x18]
str r5, [r4, #4]
str r0, [r4, #0xc]
mov r0, #0
str r0, [r4, #0x14]
mov r0, #0x20
bl FUN_020219F4
add r1, r4, #0
add r1, #0x84
str r0, [r1]
add r5, #0x9c
ldrb r0, [r5]
mov r1, #0
add r2, r1, #0
str r0, [r4, #0x10]
add r0, r4, #0
add r0, #0x98
str r1, [r0]
add r0, r4, #0
add r0, #0xa0
str r1, [r0]
add r0, r4, #0
add r0, #0xa8
str r1, [r0]
add r0, r4, #0
add r0, #0xb0
str r1, [r0]
str r1, [r4, #0x2c]
str r1, [r4, #0x30]
add r0, r4, #0
_021E3436:
add r1, r1, #1
str r2, [r0, #0x34]
add r0, r0, #4
cmp r1, #8
blt _021E3436
add r0, r4, #0
mov r1, #0
_021E3444:
add r2, r2, #1
str r1, [r0, #0x54]
add r0, r0, #4
cmp r2, #0xa
blt _021E3444
add r0, r4, #0
add r0, #0x80
str r1, [r0]
add r0, r4, #0
bl MOD14_021E3464
str r4, [r6]
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021E3460:
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD14_021E3464
MOD14_021E3464: ; 0x021E3464
push {r4, r5, r6, r7}
add r1, r0, #0
mov r2, #0
add r1, #0xd4
strb r2, [r1]
add r1, r0, #0
mov r4, #0x5a
mov r3, #0x10
add r1, #0xe4
strb r3, [r1]
ldr r1, _021E34BC ; =0x020EDF50
mov r3, #1
lsl r4, r4, #8
mov r6, #0x10
_021E3480:
add r2, r2, r4
asr r5, r2, #0xc
lsl r5, r5, #2
ldr r5, [r1, r5]
lsl r5, r5, #4
asr r7, r5, #0xc
add r5, r0, r3
add r5, #0xd4
strb r7, [r5]
add r5, r0, r3
add r5, #0xd4
ldrb r5, [r5]
sub r7, r6, r5
add r5, r0, r3
add r5, #0xe4
add r3, r3, #1
strb r7, [r5]
cmp r3, #0xf
blt _021E3480
add r1, r0, r3
add r0, r0, r3
mov r2, #0x10
add r1, #0xd4
strb r2, [r1]
mov r1, #0
add r0, #0xe4
strb r1, [r0]
pop {r4, r5, r6, r7}
bx lr
nop
_021E34BC: .word 0x020EDF50
thumb_func_start MOD14_021E34C0
MOD14_021E34C0: ; 0x021E34C0
push {r4, r5, r6, lr}
add r6, r0, #0
beq _021E3558
add r0, #0x88
bl FUN_02019178
add r0, r6, #0
add r0, #0x98
ldr r0, [r0]
cmp r0, #0
beq _021E34DA
bl FreeToHeap
_021E34DA:
add r0, r6, #0
add r0, #0xa0
ldr r0, [r0]
cmp r0, #0
beq _021E34E8
bl FreeToHeap
_021E34E8:
add r0, r6, #0
add r0, #0xa8
ldr r0, [r0]
cmp r0, #0
beq _021E34F6
bl FreeToHeap
_021E34F6:
add r0, r6, #0
add r0, #0xb0
ldr r0, [r0]
cmp r0, #0
beq _021E3504
bl FreeToHeap
_021E3504:
ldr r0, [r6, #0x2c]
cmp r0, #0
beq _021E350E
bl FUN_0201FFC8
_021E350E:
ldr r0, [r6, #0x30]
cmp r0, #0
beq _021E3518
bl FUN_0201FFC8
_021E3518:
add r0, r6, #0
add r0, #0x84
ldr r0, [r0]
cmp r0, #0
beq _021E3526
bl FUN_02021A20
_021E3526:
mov r4, #0
add r5, r6, #0
_021E352A:
ldr r0, [r5, #0x34]
cmp r0, #0
beq _021E3534
bl FUN_0201FFC8
_021E3534:
add r4, r4, #1
add r5, r5, #4
cmp r4, #8
blt _021E352A
mov r5, #0
add r4, r6, #0
_021E3540:
ldr r0, [r4, #0x54]
cmp r0, #0
beq _021E354A
bl FUN_0201FFC8
_021E354A:
add r5, r5, #1
add r4, r4, #4
cmp r5, #0xa
blt _021E3540
add r0, r6, #0
bl FreeToHeap
_021E3558:
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start MOD14_021E355C
MOD14_021E355C: ; 0x021E355C
push {r4, r5, lr}
sub sp, #0x14
add r4, r0, #0
beq _021E365C
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
mov r0, #1
str r0, [sp, #8]
mov r0, #0xa
str r0, [sp, #0xc]
ldr r2, [r4, #8]
mov r0, #0x12
mov r1, #0x67
mov r3, #7
bl FUN_0200687C
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
mov r0, #1
str r0, [sp, #8]
mov r0, #0xa
str r0, [sp, #0xc]
ldr r2, [r4, #8]
mov r0, #0x12
mov r1, #0x64
mov r3, #7
bl FUN_020068C8
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
mov r0, #1
str r0, [sp, #8]
mov r0, #0xa
str r0, [sp, #0xc]
ldr r2, [r4, #8]
mov r0, #0x12
mov r1, #0x65
mov r3, #6
bl FUN_020068C8
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
mov r0, #1
str r0, [sp, #8]
mov r0, #0xa
str r0, [sp, #0xc]
ldr r2, [r4, #8]
mov r0, #0x12
mov r1, #0x66
mov r3, #5
bl FUN_020068C8
mov r2, #0
str r2, [sp]
ldr r0, [r4, #8]
mov r1, #4
mov r3, #1
bl FUN_02017F48
mov r2, #0
str r2, [sp]
mov r0, #0x20
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x11
str r0, [sp, #0xc]
ldr r0, [r4, #8]
mov r1, #4
add r3, r2, #0
bl FUN_02018540
ldr r0, [r4, #8]
mov r1, #4
bl FUN_02017CD0
ldr r3, [r4, #0x10]
ldr r0, [r4, #8]
lsl r5, r3, #2
ldr r3, _021E3660 ; =0x021E6674
mov r1, #5
ldr r3, [r3, r5]
mov r2, #0
bl FUN_020179E0
mov r3, #0
add r1, r4, #0
str r3, [sp]
mov r0, #0x20
str r0, [sp, #4]
mov r0, #0x18
str r0, [sp, #8]
mov r0, #2
str r0, [sp, #0xc]
str r3, [sp, #0x10]
ldr r0, [r4, #8]
add r1, #0x88
mov r2, #4
bl FUN_02019064
add r0, r4, #0
add r0, #0x88
mov r1, #0
bl FUN_02019620
add r0, r4, #0
add r0, #0x88
bl FUN_020191D0
add r0, r4, #0
bl MOD14_021E4764
mov r0, #0x60
str r0, [sp]
mov r0, #0xa
str r0, [sp, #4]
mov r0, #0x12
mov r1, #0x68
mov r2, #4
mov r3, #0
bl FUN_02006930
add r0, r4, #0
bl MOD14_021E3664
_021E365C:
add sp, #0x14
pop {r4, r5, pc}
.align 2, 0
_021E3660: .word 0x021E6674
thumb_func_start MOD14_021E3664
MOD14_021E3664: ; 0x021E3664
push {r3, r4, lr}
sub sp, #0x5c
add r4, r0, #0
bl MOD14_021E36FC
add r0, sp, #0x14
bl FUN_020B1A24
mov r3, #0
str r3, [sp]
mov r0, #2
str r0, [sp, #4]
str r3, [sp, #8]
mov r0, #0xa
str r0, [sp, #0xc]
add r0, sp, #0x14
str r0, [sp, #0x10]
mov r0, #0x12
mov r1, #0x72
mov r2, #1
bl FUN_02006AE4
add r0, r4, #0
add r0, #0xa4
ldr r0, [r0]
add r3, r4, #0
str r0, [sp]
mov r0, #3
str r0, [sp, #4]
add r3, #0x9c
add r2, r4, #0
ldr r3, [r3]
add r0, sp, #0x38
add r1, sp, #0x14
add r2, #0x18
bl MOD14_021DDDB4
mov r0, #0x31
str r0, [sp]
mov r0, #2
str r0, [sp, #4]
mov r3, #0x8e
ldr r0, [r4, #0xc]
add r1, sp, #0x38
mov r2, #0
lsl r3, r3, #2
bl MOD14_021DDDD4
str r0, [r4, #0x2c]
mov r0, #0x31
mov r3, #0x8e
str r0, [sp]
mov r2, #2
str r2, [sp, #4]
ldr r0, [r4, #0xc]
add r1, sp, #0x38
add r2, #0xfe
lsl r3, r3, #2
bl MOD14_021DDDD4
str r0, [r4, #0x30]
mov r1, #1
bl FUN_02020100
ldr r0, [r4, #4]
bl MOD14_021DC3C4
cmp r0, #3
bne _021E36F6
ldr r0, [r4, #0x30]
mov r1, #1
bl FUN_02020130
_021E36F6:
add sp, #0x5c
pop {r3, r4, pc}
.align 2, 0
thumb_func_start MOD14_021E36FC
MOD14_021E36FC: ; 0x021E36FC
push {r4, lr}
sub sp, #8
add r4, r0, #0
mov r0, #0xa
add r3, r4, #0
str r0, [sp]
mov r0, #0x12
mov r1, #0x73
mov r2, #1
add r3, #0x9c
bl FUN_02006C30
add r1, r4, #0
add r1, #0x98
str r0, [r1]
mov r0, #0xa
add r3, r4, #0
str r0, [sp]
mov r0, #0x12
mov r1, #0x74
mov r2, #1
add r3, #0xa4
bl FUN_02006C5C
add r1, r4, #0
add r1, #0xa0
str r0, [r1]
mov r0, #0xa
add r3, r4, #0
str r0, [sp]
mov r0, #0x12
mov r1, #0x76
mov r2, #1
add r3, #0xac
bl FUN_02006C30
add r1, r4, #0
add r1, #0xa8
str r0, [r1]
mov r0, #0xa
add r3, r4, #0
str r0, [sp]
mov r0, #0x12
mov r1, #0x77
mov r2, #1
add r3, #0xb4
bl FUN_02006C5C
add r1, r4, #0
add r1, #0xb0
str r0, [r1]
add r0, r4, #0
add r0, #0x18
bl FUN_020B19DC
mov r0, #0xa
str r0, [sp]
add r4, #0x18
mov r0, #0x12
mov r1, #0x78
mov r2, #2
mov r3, #0
str r4, [sp, #4]
bl FUN_02006A8C
add sp, #8
pop {r4, pc}
.align 2, 0
thumb_func_start MOD14_021E3784
MOD14_021E3784: ; 0x021E3784
push {r4, lr}
add r4, r0, #0
add r0, r1, #0
add r1, r2, #0
mov r2, #0
bl MOD14_021DDD40
str r0, [r4, #0x14]
pop {r4, pc}
.align 2, 0
thumb_func_start MOD14_021E3798
MOD14_021E3798: ; 0x021E3798
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0x14]
bl FUN_0200CAB4
mov r0, #0
str r0, [r4, #0x14]
pop {r4, pc}
thumb_func_start MOD14_021E37A8
MOD14_021E37A8: ; 0x021E37A8
ldr r0, [r0, #0x14]
cmp r0, #0
bne _021E37B2
mov r0, #1
bx lr
_021E37B2:
mov r0, #0
bx lr
.align 2, 0
thumb_func_start MOD14_021E37B8
MOD14_021E37B8: ; 0x021E37B8
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
beq _021E388A
ldr r1, [r5, #4]
add r1, #0x9c
ldrb r6, [r1]
ldr r1, [r5, #0x10]
cmp r1, r6
beq _021E388A
add r1, r5, #0
add r4, r5, #0
add r1, #0xb8
str r5, [r1]
add r4, #0xb8
mov r1, #0
str r1, [r4, #8]
str r1, [r4, #4]
cmp r6, #0
beq _021E37E8
cmp r6, #1
beq _021E3800
cmp r6, #2
beq _021E3822
b _021E384A
_021E37E8:
mov r1, #8
strh r1, [r4, #0xc]
ldr r7, _021E388C ; =MOD14_021E3AB0
bl MOD14_021E3DD8
add r0, r5, #0
bl MOD14_021E3EBC
add r0, r5, #0
bl MOD14_021E4764
b _021E3852
_021E3800:
mov r0, #8
strh r0, [r4, #0xc]
ldr r0, [r5, #0x10]
cmp r0, #0
bne _021E380E
ldr r7, _021E3890 ; =MOD14_021E38AC
b _021E3816
_021E380E:
ldrh r0, [r4, #0xc]
ldr r7, _021E3894 ; =MOD14_021E3984
add r0, #8
strh r0, [r4, #0xc]
_021E3816:
add r0, r5, #0
bl MOD14_021E3EBC
ldr r0, [r5, #0x2c]
str r0, [r4, #8]
b _021E3852
_021E3822:
mov r0, #8
strh r0, [r4, #0xc]
ldr r0, [r5, #0x10]
cmp r0, #0
bne _021E3830
ldr r7, _021E3890 ; =MOD14_021E38AC
b _021E3838
_021E3830:
ldrh r0, [r4, #0xc]
ldr r7, _021E3894 ; =MOD14_021E3984
add r0, #8
strh r0, [r4, #0xc]
_021E3838:
ldr r0, [r5, #0x30]
str r0, [r4, #8]
add r0, r5, #0
bl MOD14_021E3DD8
add r0, r5, #0
bl MOD14_021E4764
b _021E3852
_021E384A:
add r0, r4, #0
bl FreeToHeap
pop {r3, r4, r5, r6, r7, pc}
_021E3852:
str r6, [r5, #0x10]
ldr r0, [r5, #8]
mov r1, #5
bl FUN_02017B48
lsl r0, r0, #0xc
ldr r1, _021E3898 ; =0x021E6674
lsl r2, r6, #2
str r0, [r4, #0x10]
ldr r6, [r1, r2]
ldrh r1, [r4, #0xc]
sub r0, r6, r0
bl _s32_div_f
str r0, [r4, #0x14]
asr r0, r6, #0xc
str r0, [r4, #0x18]
ldr r0, [r4, #8]
cmp r0, #0
beq _021E3880
mov r1, #1
bl FUN_02020130
_021E3880:
add r0, r5, #0
add r1, r7, #0
add r2, r4, #0
bl MOD14_021E3784
_021E388A:
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_021E388C: .word MOD14_021E3AB0
_021E3890: .word MOD14_021E38AC
_021E3894: .word MOD14_021E3984
_021E3898: .word 0x021E6674
thumb_func_start MOD14_021E389C
MOD14_021E389C: ; 0x021E389C
push {r3, lr}
cmp r0, #0
beq _021E38A8
bl MOD14_021E37A8
pop {r3, pc}
_021E38A8:
mov r0, #1
pop {r3, pc}
thumb_func_start MOD14_021E38AC
MOD14_021E38AC: ; 0x021E38AC
push {r3, r4, r5, lr}
add r4, r1, #0
ldr r0, [r4, #4]
ldr r5, [r4]
cmp r0, #3
bhi _021E3974
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021E38C4: ; jump table
.short _021E38CC - _021E38C4 - 2 ; case 0
.short _021E38DE - _021E38C4 - 2 ; case 1
.short _021E3924 - _021E38C4 - 2 ; case 2
.short _021E3942 - _021E38C4 - 2 ; case 3
_021E38CC:
ldr r0, [r4, #8]
bl FUN_02020388
cmp r0, #0
bne _021E3974
ldr r0, [r4, #4]
add r0, r0, #1
str r0, [r4, #4]
pop {r3, r4, r5, pc}
_021E38DE:
ldrh r0, [r4, #0xc]
cmp r0, #0
beq _021E3900
ldr r1, [r4, #0x10]
ldr r0, [r4, #0x14]
mov r2, #0
add r3, r1, r0
str r3, [r4, #0x10]
ldr r0, [r5, #8]
mov r1, #5
asr r3, r3, #0xc
bl FUN_020179E0
ldrh r0, [r4, #0xc]
sub r0, r0, #1
strh r0, [r4, #0xc]
pop {r3, r4, r5, pc}
_021E3900:
ldr r0, [r5, #8]
ldr r3, [r4, #0x18]
mov r1, #5
mov r2, #0
bl FUN_020179E0
mov r0, #0x10
str r0, [sp]
ldr r0, _021E3978 ; =0x04001050
mov r1, #4
mov r2, #8
mov r3, #0
bl G2x_SetBlendAlpha_
ldr r0, [r4, #4]
add r0, r0, #1
str r0, [r4, #4]
pop {r3, r4, r5, pc}
_021E3924:
ldr r3, [r5, #0x10]
ldr r0, [r5, #8]
lsl r5, r3, #2
ldr r3, _021E397C ; =0x021E6668
mov r1, #6
ldr r3, [r3, r5]
mov r2, #0
bl FUN_020179E0
mov r0, #0
strh r0, [r4, #0xe]
ldr r0, [r4, #4]
add r0, r0, #1
str r0, [r4, #4]
pop {r3, r4, r5, pc}
_021E3942:
mov r1, #0xe
ldrsh r3, [r4, r1]
add r0, r5, r3
add r0, #0xd4
ldrb r2, [r0]
add r0, r5, r3
add r0, #0xe4
ldrb r0, [r0]
lsl r0, r0, #8
orr r2, r0
ldr r0, _021E3980 ; =0x04001052
strh r2, [r0]
ldrsh r0, [r4, r1]
add r0, r0, #1
strh r0, [r4, #0xe]
ldrsh r0, [r4, r1]
cmp r0, #0x10
blt _021E3974
ldr r0, [r4, #8]
mov r1, #0
bl FUN_02020130
add r0, r5, #0
bl MOD14_021E3798
_021E3974:
pop {r3, r4, r5, pc}
nop
_021E3978: .word 0x04001050
_021E397C: .word 0x021E6668
_021E3980: .word 0x04001052
thumb_func_start MOD14_021E3984
MOD14_021E3984: ; 0x021E3984
push {r3, r4, r5, lr}
add r4, r1, #0
ldr r0, [r4, #4]
ldr r5, [r4]
cmp r0, #4
bls _021E3992
b _021E3AA2
_021E3992:
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021E399E: ; jump table
.short _021E39A8 - _021E399E - 2 ; case 0
.short _021E39CE - _021E399E - 2 ; case 1
.short _021E3A0C - _021E399E - 2 ; case 2
.short _021E3A52 - _021E399E - 2 ; case 3
.short _021E3A70 - _021E399E - 2 ; case 4
_021E39A8:
ldr r0, [r4, #8]
bl FUN_02020388
cmp r0, #0
bne _021E3AA2
mov r0, #0
str r0, [sp]
ldr r0, _021E3AA4 ; =0x04001050
mov r1, #4
mov r2, #8
mov r3, #0x10
bl G2x_SetBlendAlpha_
mov r0, #0xf
strh r0, [r4, #0xe]
ldr r0, [r4, #4]
add r0, r0, #1
str r0, [r4, #4]
pop {r3, r4, r5, pc}
_021E39CE:
mov r1, #0xe
ldrsh r0, [r4, r1]
sub r0, r0, #1
strh r0, [r4, #0xe]
ldrsh r3, [r4, r1]
add r0, r5, r3
add r0, #0xd4
ldrb r2, [r0]
add r0, r5, r3
add r0, #0xe4
ldrb r0, [r0]
lsl r0, r0, #8
orr r2, r0
ldr r0, _021E3AA8 ; =0x04001052
strh r2, [r0]
ldrsh r0, [r4, r1]
cmp r0, #0
bne _021E3AA2
ldr r3, [r5, #0x10]
ldr r0, [r5, #8]
lsl r5, r3, #2
ldr r3, _021E3AAC ; =0x021E6668
mov r1, #6
ldr r3, [r3, r5]
mov r2, #0
bl FUN_020179E0
ldr r0, [r4, #4]
add r0, r0, #1
str r0, [r4, #4]
pop {r3, r4, r5, pc}
_021E3A0C:
ldrh r0, [r4, #0xc]
cmp r0, #0
beq _021E3A2E
ldr r1, [r4, #0x10]
ldr r0, [r4, #0x14]
mov r2, #0
add r3, r1, r0
str r3, [r4, #0x10]
ldr r0, [r5, #8]
mov r1, #5
asr r3, r3, #0xc
bl FUN_020179E0
ldrh r0, [r4, #0xc]
sub r0, r0, #1
strh r0, [r4, #0xc]
pop {r3, r4, r5, pc}
_021E3A2E:
ldr r0, [r5, #8]
ldr r3, [r4, #0x18]
mov r1, #5
mov r2, #0
bl FUN_020179E0
mov r0, #0x10
str r0, [sp]
ldr r0, _021E3AA4 ; =0x04001050
mov r1, #4
mov r2, #8
mov r3, #0
bl G2x_SetBlendAlpha_
ldr r0, [r4, #4]
add r0, r0, #1
str r0, [r4, #4]
pop {r3, r4, r5, pc}
_021E3A52:
ldr r3, [r5, #0x10]
ldr r0, [r5, #8]
lsl r5, r3, #2
ldr r3, _021E3AAC ; =0x021E6668
mov r1, #6
ldr r3, [r3, r5]
mov r2, #0
bl FUN_020179E0
mov r0, #0
strh r0, [r4, #0xe]
ldr r0, [r4, #4]
add r0, r0, #1
str r0, [r4, #4]
pop {r3, r4, r5, pc}
_021E3A70:
mov r1, #0xe
ldrsh r3, [r4, r1]
add r0, r5, r3
add r0, #0xd4
ldrb r2, [r0]
add r0, r5, r3
add r0, #0xe4
ldrb r0, [r0]
lsl r0, r0, #8
orr r2, r0
ldr r0, _021E3AA8 ; =0x04001052
strh r2, [r0]
ldrsh r0, [r4, r1]
add r0, r0, #1
strh r0, [r4, #0xe]
ldrsh r0, [r4, r1]
cmp r0, #0x10
blt _021E3AA2
ldr r0, [r4, #8]
mov r1, #0
bl FUN_02020130
add r0, r5, #0
bl MOD14_021E3798
_021E3AA2:
pop {r3, r4, r5, pc}
.align 2, 0
_021E3AA4: .word 0x04001050
_021E3AA8: .word 0x04001052
_021E3AAC: .word 0x021E6668
thumb_func_start MOD14_021E3AB0
MOD14_021E3AB0: ; 0x021E3AB0
push {r3, r4, r5, lr}
add r4, r1, #0
ldr r1, [r4, #4]
ldr r0, [r4]
cmp r1, #3
bhi _021E3B4C
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021E3AC8: ; jump table
.short _021E3AD0 - _021E3AC8 - 2 ; case 0
.short _021E3ADA - _021E3AC8 - 2 ; case 1
.short _021E3B12 - _021E3AC8 - 2 ; case 2
.short _021E3B48 - _021E3AC8 - 2 ; case 3
_021E3AD0:
mov r1, #0xf
strh r1, [r4, #0xe]
ldr r1, [r4, #4]
add r1, r1, #1
str r1, [r4, #4]
_021E3ADA:
mov r2, #0xe
ldrsh r1, [r4, r2]
sub r1, r1, #1
strh r1, [r4, #0xe]
ldrsh r5, [r4, r2]
add r1, r0, r5
add r1, #0xd4
ldrb r3, [r1]
add r1, r0, r5
add r1, #0xe4
ldrb r1, [r1]
lsl r1, r1, #8
orr r3, r1
ldr r1, _021E3B50 ; =0x04001052
strh r3, [r1]
ldrsh r1, [r4, r2]
cmp r1, #0
bne _021E3B4C
mov r2, #0
ldr r0, [r0, #8]
mov r1, #6
add r3, r2, #0
bl FUN_020179E0
ldr r0, [r4, #4]
add r0, r0, #1
str r0, [r4, #4]
pop {r3, r4, r5, pc}
_021E3B12:
ldrh r1, [r4, #0xc]
cmp r1, #0
beq _021E3B34
ldr r2, [r4, #0x10]
ldr r1, [r4, #0x14]
add r3, r2, r1
str r3, [r4, #0x10]
ldr r0, [r0, #8]
mov r1, #5
mov r2, #0
asr r3, r3, #0xc
bl FUN_020179E0
ldrh r0, [r4, #0xc]
sub r0, r0, #1
strh r0, [r4, #0xc]
pop {r3, r4, r5, pc}
_021E3B34:
ldr r0, [r0, #8]
ldr r3, [r4, #0x18]
mov r1, #5
mov r2, #0
bl FUN_020179E0
ldr r0, [r4, #4]
add r0, r0, #1
str r0, [r4, #4]
pop {r3, r4, r5, pc}
_021E3B48:
bl MOD14_021E3798
_021E3B4C:
pop {r3, r4, r5, pc}
nop
_021E3B50: .word 0x04001052
thumb_func_start MOD14_021E3B54
MOD14_021E3B54: ; 0x021E3B54
push {r4, lr}
add r4, r0, #0
beq _021E3B7C
ldr r1, [r4, #0x10]
cmp r1, #1
beq _021E3B66
cmp r1, #2
beq _021E3B72
pop {r4, pc}
_021E3B66:
bl MOD14_021E3C94
add r0, r4, #0
bl MOD14_021E41C0
pop {r4, pc}
_021E3B72:
bl MOD14_021E3E1C
add r0, r4, #0
bl MOD14_021E44E0
_021E3B7C:
pop {r4, pc}
.align 2, 0
thumb_func_start MOD14_021E3B80
MOD14_021E3B80: ; 0x021E3B80
push {r4, lr}
add r4, r0, #0
beq _021E3BA2
bl MOD14_021E37A8
cmp r0, #0
beq _021E3B9E
ldr r0, [r4, #0x10]
cmp r0, #1
bne _021E3B9A
add r0, r4, #0
bl MOD14_021E4790
_021E3B9A:
mov r0, #1
pop {r4, pc}
_021E3B9E:
mov r0, #0
pop {r4, pc}
_021E3BA2:
mov r0, #1
pop {r4, pc}
.align 2, 0
thumb_func_start MOD14_021E3BA8
MOD14_021E3BA8: ; 0x021E3BA8
push {r4, lr}
add r4, r0, #0
beq _021E3BD0
ldr r1, [r4, #0x10]
cmp r1, #1
beq _021E3BBA
cmp r1, #2
beq _021E3BCC
pop {r4, pc}
_021E3BBA:
bl MOD14_021E4764
add r0, r4, #0
bl MOD14_021E3D38
add r0, r4, #0
bl MOD14_021E43E8
pop {r4, pc}
_021E3BCC:
bl MOD14_021E46E4
_021E3BD0:
pop {r4, pc}
.align 2, 0
thumb_func_start MOD14_021E3BD4
MOD14_021E3BD4: ; 0x021E3BD4
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #4]
bl MOD14_021DC46C
cmp r0, #0
ble _021E3C04
add r2, r4, #0
add r2, #0x80
ldr r2, [r2]
add r1, r4, #0
sub r2, r2, r0
add r0, r4, #0
add r0, #0x80
add r4, #0x80
str r2, [r0]
ldr r0, [r4]
add r1, #0x80
cmp r0, #0
bge _021E3C24
ldr r0, [r1]
add r0, #0xa
str r0, [r1]
pop {r4, pc}
_021E3C04:
add r2, r4, #0
add r2, #0x80
ldr r2, [r2]
add r1, r4, #0
sub r2, r2, r0
add r0, r4, #0
add r0, #0x80
add r4, #0x80
str r2, [r0]
ldr r0, [r4]
add r1, #0x80
cmp r0, #0xa
blt _021E3C24
ldr r0, [r1]
sub r0, #0xa
str r0, [r1]
_021E3C24:
pop {r4, pc}
.align 2, 0
thumb_func_start MOD14_021E3C28
MOD14_021E3C28: ; 0x021E3C28
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #4]
bl MOD14_021DC46C
add r2, r4, #0
add r2, #0x80
ldr r2, [r2]
add r1, r4, #0
add r2, r2, r0
add r0, r4, #0
add r0, #0x80
add r4, #0x80
str r2, [r0]
ldr r0, [r4]
add r1, #0x80
cmp r0, #0
bge _021E3C54
ldr r0, [r1]
add r0, #8
str r0, [r1]
pop {r4, pc}
_021E3C54:
cmp r0, #8
blt _021E3C5E
ldr r0, [r1]
sub r0, #8
str r0, [r1]
_021E3C5E:
pop {r4, pc}
thumb_func_start MOD14_021E3C60
MOD14_021E3C60: ; 0x021E3C60
push {r4, lr}
add r4, r0, #0
beq _021E3C90
bl MOD14_021E37A8
cmp r0, #0
beq _021E3C8C
ldr r0, [r4, #0x10]
cmp r0, #1
bne _021E3C82
add r0, r4, #0
bl MOD14_021E4790
add r0, r4, #0
bl MOD14_021E3BD4
b _021E3C88
_021E3C82:
add r0, r4, #0
bl MOD14_021E3C28
_021E3C88:
mov r0, #1
pop {r4, pc}
_021E3C8C:
mov r0, #0
pop {r4, pc}
_021E3C90:
mov r0, #1
pop {r4, pc}
thumb_func_start MOD14_021E3C94
MOD14_021E3C94: ; 0x021E3C94
push {r4, r5, r6, r7, lr}
sub sp, #0x5c
str r0, [sp, #8]
ldr r0, [r0]
bl MOD14_021DDD84
add r7, r0, #0
ldr r0, [sp, #8]
ldr r0, [r0, #4]
bl MOD14_021DC474
add r4, r0, #3
cmp r4, #0x12
blt _021E3CB2
sub r4, #0x12
_021E3CB2:
ldr r5, [sp, #8]
mov r0, #0
str r0, [sp, #0xc]
add r0, r5, #0
str r0, [sp, #0x10]
add r0, #0x18
mov r6, #0xc0
str r0, [sp, #0x10]
_021E3CC2:
add r0, sp, #0x14
bl FUN_020B1A24
add r0, sp, #0x14
str r0, [sp]
add r0, r7, #0
add r1, r4, #0
add r2, r6, #0
mov r3, #2
bl MOD14_021E1FF8
add r0, r7, #0
bl MOD14_021E2184
add r3, r0, #0
mov r0, #0
str r0, [sp]
mov r0, #2
str r0, [sp, #4]
ldr r2, [sp, #0x10]
add r0, sp, #0x38
add r1, sp, #0x14
bl MOD14_021DDDB4
mov r0, #0x30
str r0, [sp]
mov r0, #2
str r0, [sp, #4]
ldr r0, [sp, #8]
mov r3, #0x17
ldr r0, [r0, #0xc]
add r1, sp, #0x38
mov r2, #0x10
lsl r3, r3, #4
bl MOD14_021DDDD4
str r0, [r5, #0x54]
cmp r0, #0
bne _021E3D14
bl ErrorHandling
_021E3D14:
sub r4, r4, #1
bpl _021E3D1A
mov r4, #0x11
_021E3D1A:
ldr r0, [sp, #0xc]
add r6, #0x20
add r0, r0, #1
add r5, r5, #4
str r0, [sp, #0xc]
cmp r0, #0xa
blt _021E3CC2
ldr r0, [sp, #8]
mov r1, #0
add r0, #0x80
str r0, [sp, #8]
str r1, [r0]
add sp, #0x5c
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start MOD14_021E3D38
MOD14_021E3D38: ; 0x021E3D38
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x10
str r0, [sp, #4]
ldr r0, [r0]
bl MOD14_021DDD84
str r0, [sp, #0xc]
ldr r0, [sp, #4]
ldr r0, [r0, #4]
bl MOD14_021DC474
ldr r1, [sp, #4]
ldr r2, [r1, #4]
mov r1, #0xa0
ldrsh r7, [r2, r1]
cmp r7, #0
ble _021E3D74
sub r0, r0, r7
add r5, r0, #4
cmp r5, #0x12
blt _021E3D64
sub r5, #0x12
_021E3D64:
ldr r0, [sp, #4]
mov r6, #1
add r0, #0x80
ldr r0, [r0]
sub r4, r0, #1
bpl _021E3D90
add r4, #0xa
b _021E3D90
_021E3D74:
sub r0, r0, r7
sub r5, r0, #3
bpl _021E3D7C
add r5, #0x12
_021E3D7C:
ldr r0, [sp, #4]
mov r6, #0
add r0, #0x80
ldr r0, [r0]
mvn r6, r6
add r4, r0, #6
cmp r4, #0xa
blt _021E3D8E
sub r4, #0xa
_021E3D8E:
neg r7, r7
_021E3D90:
ldr r0, [sp, #4]
str r7, [r0, #0x7c]
mov r0, #0
str r0, [sp, #8]
cmp r7, #0
ble _021E3DD4
_021E3D9C:
mov r0, #0
str r0, [sp]
lsl r2, r4, #5
ldr r0, [sp, #0xc]
add r1, r5, #0
add r2, #0xc0
mov r3, #2
bl MOD14_021E1FF8
add r5, r5, r6
bpl _021E3DB6
mov r5, #0x11
b _021E3DBC
_021E3DB6:
cmp r5, #0x12
blt _021E3DBC
mov r5, #0
_021E3DBC:
sub r4, r4, r6
bpl _021E3DC4
mov r4, #9
b _021E3DCA
_021E3DC4:
cmp r4, #0xa
blt _021E3DCA
mov r4, #0
_021E3DCA:
ldr r0, [sp, #8]
add r0, r0, #1
str r0, [sp, #8]
cmp r0, r7
blt _021E3D9C
_021E3DD4:
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD14_021E3DD8
MOD14_021E3DD8: ; 0x021E3DD8
push {r4, r5, r6, lr}
mov r4, #0
add r5, r0, #0
add r6, r4, #0
_021E3DE0:
ldr r0, [r5, #0x54]
cmp r0, #0
beq _021E3DEC
bl FUN_0201FFC8
str r6, [r5, #0x54]
_021E3DEC:
add r4, r4, #1
add r5, r5, #4
cmp r4, #0xa
blt _021E3DE0
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start MOD14_021E3DF8
MOD14_021E3DF8: ; 0x021E3DF8
cmp r0, #0
bne _021E3E08
cmp r1, #0
bne _021E3E04
mov r0, #1
bx lr
_021E3E04:
mov r0, #0
bx lr
_021E3E08:
mov r3, #1
sub r2, r0, #1
lsl r3, r2
tst r1, r3
beq _021E3E18
lsl r0, r0, #1
add r0, r0, #1
bx lr
_021E3E18:
lsl r0, r0, #1
bx lr
thumb_func_start MOD14_021E3E1C
MOD14_021E3E1C: ; 0x021E3E1C
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x60
add r5, r0, #0
ldr r0, [r5, #4]
bl MOD14_021DC484
str r0, [sp, #0x14]
add r0, sp, #0x18
bl FUN_020B1A24
mov r3, #0
str r3, [sp]
mov r0, #2
str r0, [sp, #4]
mov r0, #6
lsl r0, r0, #0xa
str r0, [sp, #8]
mov r0, #0xa
str r0, [sp, #0xc]
add r0, sp, #0x18
str r0, [sp, #0x10]
mov r0, #0x12
mov r1, #0x75
mov r2, #1
bl FUN_02006AE4
add r7, r5, #0
mov r6, #0
add r4, r5, #0
add r7, #0x18
_021E3E58:
add r0, r5, #0
add r0, #0xb4
ldr r0, [r0]
add r3, r5, #0
str r0, [sp]
mov r0, #2
str r0, [sp, #4]
add r3, #0xac
ldr r3, [r3]
add r0, sp, #0x3c
add r1, sp, #0x18
add r2, r7, #0
bl MOD14_021DDDB4
mov r0, #0x30
str r0, [sp]
mov r0, #2
mov r2, #0xf0
str r0, [sp, #4]
add r3, r2, #0
ldr r0, [r5, #0xc]
add r1, sp, #0x3c
add r3, #0x80
bl MOD14_021DDDD4
str r0, [r4, #0x34]
cmp r0, #0
bne _021E3E94
bl ErrorHandling
_021E3E94:
ldr r1, [sp, #0x14]
add r0, r6, #0
bl MOD14_021E3DF8
add r1, r0, #0
ldr r0, [r4, #0x34]
bl FUN_02020130
add r6, r6, #1
add r4, r4, #4
cmp r6, #8
blt _021E3E58
ldr r0, [r5, #4]
bl MOD14_021DC47C
add r5, #0x80
str r0, [r5]
add sp, #0x60
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start MOD14_021E3EBC
MOD14_021E3EBC: ; 0x021E3EBC
push {r4, r5, r6, lr}
mov r4, #0
add r5, r0, #0
add r6, r4, #0
_021E3EC4:
ldr r0, [r5, #0x34]
cmp r0, #0
beq _021E3ED0
bl FUN_0201FFC8
str r6, [r5, #0x34]
_021E3ED0:
add r4, r4, #1
add r5, r5, #4
cmp r4, #8
blt _021E3EC4
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start MOD14_021E3EDC
MOD14_021E3EDC: ; 0x021E3EDC
push {r4, r5, lr}
sub sp, #0xc
add r4, r1, #0
add r5, r0, #0
ldrh r0, [r4, #0x16]
cmp r0, #0
beq _021E3EF2
sub r0, r0, #1
add sp, #0xc
strh r0, [r4, #0x16]
pop {r4, r5, pc}
_021E3EF2:
ldrh r0, [r4, #0x14]
cmp r0, #0
beq _021E3F28
sub r0, r0, #1
strh r0, [r4, #0x14]
ldr r1, [r4, #8]
ldr r0, [r4, #0x10]
add r0, r1, r0
str r0, [r4, #8]
asr r0, r0, #0xc
lsl r1, r0, #2
ldr r0, _021E3F58 ; =0x021E66A8
ldrsh r0, [r0, r1]
lsl r0, r0, #0xc
str r0, [sp]
ldr r0, _021E3F5C ; =0x021E66AA
ldrsh r0, [r0, r1]
add r1, sp, #0
lsl r0, r0, #0xc
str r0, [sp, #4]
mov r0, #0
str r0, [sp, #8]
ldr r0, [r4, #4]
bl FUN_02020044
add sp, #0xc
pop {r4, r5, pc}
_021E3F28:
ldr r0, [r4, #0xc]
asr r0, r0, #0xc
lsl r1, r0, #2
ldr r0, _021E3F58 ; =0x021E66A8
ldrsh r0, [r0, r1]
lsl r0, r0, #0xc
str r0, [sp]
ldr r0, _021E3F5C ; =0x021E66AA
ldrsh r0, [r0, r1]
add r1, sp, #0
lsl r0, r0, #0xc
str r0, [sp, #4]
mov r0, #0
str r0, [sp, #8]
ldr r0, [r4, #4]
bl FUN_02020044
add r0, r5, #0
add r1, r4, #0
bl MOD14_021E4010
add sp, #0xc
pop {r4, r5, pc}
nop
_021E3F58: .word 0x021E66A8
_021E3F5C: .word 0x021E66AA
thumb_func_start MOD14_021E3F60
MOD14_021E3F60: ; 0x021E3F60
push {r4, r5, lr}
sub sp, #0xc
add r4, r1, #0
add r5, r0, #0
ldrh r0, [r4, #0x16]
cmp r0, #0
beq _021E3F76
sub r0, r0, #1
add sp, #0xc
strh r0, [r4, #0x16]
pop {r4, r5, pc}
_021E3F76:
ldrh r0, [r4, #0x14]
cmp r0, #0
beq _021E3FB2
sub r0, r0, #1
strh r0, [r4, #0x14]
ldr r1, [r4, #8]
ldr r0, [r4, #0x10]
add r0, r1, r0
str r0, [r4, #8]
asr r0, r0, #0xc
ldr r1, _021E4008 ; =0x021E66A8
lsl r0, r0, #2
ldrsh r2, [r1, r0]
mov r1, #1
lsl r1, r1, #8
sub r1, r1, r2
lsl r1, r1, #0xc
str r1, [sp]
ldr r1, _021E400C ; =0x021E66AA
ldrsh r0, [r1, r0]
add r1, sp, #0
lsl r0, r0, #0xc
str r0, [sp, #4]
mov r0, #0
str r0, [sp, #8]
ldr r0, [r4, #4]
bl FUN_02020044
add sp, #0xc
pop {r4, r5, pc}
_021E3FB2:
ldr r0, [r4, #0xc]
ldr r1, _021E4008 ; =0x021E66A8
asr r0, r0, #0xc
lsl r0, r0, #2
ldrsh r2, [r1, r0]
mov r1, #1
lsl r1, r1, #8
sub r1, r1, r2
lsl r1, r1, #0xc
str r1, [sp]
ldr r1, _021E400C ; =0x021E66AA
ldrsh r0, [r1, r0]
add r1, sp, #0
lsl r0, r0, #0xc
str r0, [sp, #4]
mov r0, #0
str r0, [sp, #8]
ldr r0, [r4, #4]
bl FUN_02020044
ldr r0, [r4, #0x18]
cmp r0, #0
beq _021E3FFC
ldrh r0, [r4, #0x28]
add sp, #0xc
strh r0, [r4, #0x14]
ldr r0, [r4, #0x1c]
str r0, [r4, #8]
ldr r0, [r4, #0x24]
str r0, [r4, #0x10]
ldr r0, [r4, #0x20]
str r0, [r4, #0xc]
ldrh r0, [r4, #0x2a]
strh r0, [r4, #0x16]
mov r0, #0
str r0, [r4, #0x18]
pop {r4, r5, pc}
_021E3FFC:
add r0, r5, #0
add r1, r4, #0
bl MOD14_021E4010
add sp, #0xc
pop {r4, r5, pc}
.align 2, 0
_021E4008: .word 0x021E66A8
_021E400C: .word 0x021E66AA
thumb_func_start MOD14_021E4010
MOD14_021E4010: ; 0x021E4010
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r4, [r1]
ldr r0, _021E4034 ; =0x000001CB
ldrb r0, [r4, r0]
cmp r0, #0
bne _021E4022
bl ErrorHandling
_021E4022:
ldr r0, _021E4034 ; =0x000001CB
ldrb r1, [r4, r0]
sub r1, r1, #1
strb r1, [r4, r0]
add r0, r5, #0
bl FUN_0200CAB4
pop {r3, r4, r5, pc}
nop
_021E4034: .word 0x000001CB
thumb_func_start MOD14_021E4038
MOD14_021E4038: ; 0x021E4038
push {r3, r4, r5, r6, r7, lr}
add r7, r1, #0
add r6, r0, #0
add r5, r2, #0
str r3, [sp]
ldr r4, [sp, #0x20]
cmp r7, #0
bne _021E404C
bl ErrorHandling
_021E404C:
cmp r4, #0
beq _021E4052
sub r4, r4, #1
_021E4052:
str r6, [r5]
ldr r0, [sp, #0x1c]
str r7, [r5, #4]
strh r0, [r5, #0x14]
ldr r0, [sp, #0x24]
strh r4, [r5, #0x16]
cmp r0, #0
beq _021E4066
ldr r4, _021E40A4 ; =MOD14_021E3F60
b _021E4068
_021E4066:
ldr r4, _021E40A8 ; =MOD14_021E3EDC
_021E4068:
ldr r0, [sp]
ldr r1, _021E40AC ; =0x021E6680
lsl r0, r0, #1
ldrh r0, [r1, r0]
lsl r0, r0, #0xc
str r0, [r5, #8]
ldr r0, [sp, #0x18]
lsl r0, r0, #1
ldrh r0, [r1, r0]
lsl r1, r0, #0xc
str r1, [r5, #0xc]
ldr r0, [r5, #8]
sub r0, r1, r0
ldr r1, [sp, #0x1c]
bl _s32_div_f
str r0, [r5, #0x10]
mov r2, #0
add r0, r4, #0
add r1, r5, #0
str r2, [r5, #0x18]
bl MOD14_021DDD40
cmp r0, #0
beq _021E40A2
ldr r0, _021E40B0 ; =0x000001CB
ldrb r1, [r6, r0]
add r1, r1, #1
strb r1, [r6, r0]
_021E40A2:
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_021E40A4: .word MOD14_021E3F60
_021E40A8: .word MOD14_021E3EDC
_021E40AC: .word 0x021E6680
_021E40B0: .word 0x000001CB
thumb_func_start MOD14_021E40B4
MOD14_021E40B4: ; 0x021E40B4
push {r4, lr}
add r4, r1, #0
mov r0, #1
str r0, [r4, #0x18]
strh r2, [r4, #0x2a]
cmp r2, #0
beq _021E40C8
ldrh r0, [r4, #0x2a]
sub r0, r0, #1
strh r0, [r4, #0x2a]
_021E40C8:
ldr r0, [sp, #8]
sub r2, r0, r3
bpl _021E40D4
mov r0, #0
mvn r0, r0
mul r2, r0
_021E40D4:
add r1, r2, #0
mov r0, #6
mul r1, r0
ldr r2, _021E40FC ; =0x021E6680
lsl r0, r3, #1
ldrh r0, [r2, r0]
strh r1, [r4, #0x28]
lsl r0, r0, #0xc
str r0, [r4, #0x1c]
ldr r0, [sp, #8]
lsl r0, r0, #1
ldrh r0, [r2, r0]
lsl r2, r0, #0xc
str r2, [r4, #0x20]
ldr r0, [r4, #0x1c]
sub r0, r2, r0
bl _s32_div_f
str r0, [r4, #0x24]
pop {r4, pc}
.align 2, 0
_021E40FC: .word 0x021E6680
thumb_func_start MOD14_021E4100
MOD14_021E4100: ; 0x021E4100
push {r4, r5, r6, lr}
sub sp, #0x10
mov r0, #0x73
add r4, r1, #0
lsl r0, r0, #2
ldrb r3, [r4, r0]
ldr r2, [r4]
cmp r3, #0
beq _021E411E
cmp r3, #1
beq _021E4180
cmp r3, #2
beq _021E4198
add sp, #0x10
pop {r4, r5, r6, pc}
_021E411E:
sub r1, r0, #2
ldrb r1, [r4, r1]
mov r6, #0x2c
add r3, r1, #1
sub r1, r0, #2
strb r3, [r4, r1]
sub r0, r0, #2
ldrb r3, [r4, r0]
mov r1, #6
mov r0, #7
sub r5, r1, r3
sub r0, r0, r3
str r0, [sp]
add r0, r5, #1
mul r1, r0
str r1, [sp, #4]
mov r3, #0
str r3, [sp, #8]
lsl r1, r5, #2
add r1, r2, r1
str r3, [sp, #0xc]
add r2, r4, #0
ldr r1, [r1, #0x54]
add r2, #8
mul r6, r5
add r0, r4, #0
add r2, r2, r6
bl MOD14_021E4038
ldr r0, _021E41B0 ; =0x000001CD
mov r1, #4
strb r1, [r4, r0]
sub r1, r0, #3
ldrb r1, [r4, r1]
cmp r1, #6
blo _021E4170
mov r1, #2
sub r0, r0, #1
add sp, #0x10
strb r1, [r4, r0]
pop {r4, r5, r6, pc}
_021E4170:
ldrb r1, [r4, r0]
cmp r1, #0
beq _021E41AC
mov r1, #1
sub r0, r0, #1
add sp, #0x10
strb r1, [r4, r0]
pop {r4, r5, r6, pc}
_021E4180:
add r1, r0, #1
ldrb r1, [r4, r1]
sub r2, r1, #2
add r1, r0, #1
strb r2, [r4, r1]
ldrb r1, [r4, r1]
cmp r1, #0
bne _021E41AC
mov r1, #0
add sp, #0x10
strb r1, [r4, r0]
pop {r4, r5, r6, pc}
_021E4198:
sub r1, r0, #1
ldrb r1, [r4, r1]
cmp r1, #0
bne _021E41AC
add r1, r3, #1
strb r1, [r4, r0]
ldr r1, _021E41B4 ; =MOD14_021E41B8
add r0, r4, #0
bl MOD14_021DDF30
_021E41AC:
add sp, #0x10
pop {r4, r5, r6, pc}
.align 2, 0
_021E41B0: .word 0x000001CD
_021E41B4: .word MOD14_021E41B8
thumb_func_start MOD14_021E41B8
MOD14_021E41B8: ; 0x021E41B8
ldr r3, _021E41BC ; =MOD14_021E3798
bx r3
.align 2, 0
_021E41BC: .word MOD14_021E3798
thumb_func_start MOD14_021E41C0
MOD14_021E41C0: ; 0x021E41C0
push {r3, r4, r5, lr}
mov r1, #0x1d
add r4, r0, #0
mov r0, #0xa
lsl r1, r1, #4
bl AllocFromHeap
add r5, r0, #0
beq _021E4208
mov r1, #0x73
mov r0, #0
lsl r1, r1, #2
str r4, [r5]
strb r0, [r5, r1]
sub r2, r1, #2
strb r0, [r5, r2]
sub r1, r1, #1
strb r0, [r5, r1]
mov r1, #7
add r3, r0, #0
lsl r1, r1, #6
_021E41EA:
add r2, r5, r0
add r0, r0, #1
strb r3, [r2, r1]
cmp r0, #8
blt _021E41EA
ldr r1, _021E420C ; =MOD14_021E4100
add r0, r4, #0
add r2, r5, #0
bl MOD14_021E3784
cmp r0, #0
bne _021E4208
add r0, r5, #0
bl FreeToHeap
_021E4208:
pop {r3, r4, r5, pc}
nop
_021E420C: .word MOD14_021E4100
thumb_func_start MOD14_021E4210
MOD14_021E4210: ; 0x021E4210
push {r4, r5, r6, r7, lr}
sub sp, #0x44
mov r2, #0x73
lsl r2, r2, #2
add r0, r1, #0
ldrb r3, [r0, r2]
str r1, [sp, #0x10]
ldr r7, [r1]
cmp r3, #0
beq _021E422E
cmp r3, #1
bne _021E422A
b _021E43C6
_021E422A:
add sp, #0x44
pop {r4, r5, r6, r7, pc}
_021E422E:
ldr r1, [r7, #4]
mov r0, #0xa0
ldrsh r0, [r1, r0]
cmp r0, #0
ble _021E4252
add r0, r7, #0
add r0, #0x80
ldr r0, [r0]
add r4, r0, #5
cmp r4, #0xa
blt _021E4246
sub r4, #0xa
_021E4246:
mov r5, #0
mov r0, #7
mvn r5, r5
mov r6, #6
str r0, [sp, #0x24]
b _021E4260
_021E4252:
add r0, r7, #0
add r0, #0x80
ldr r4, [r0]
mov r5, #1
mov r0, #0
add r6, r5, #0
str r0, [sp, #0x24]
_021E4260:
ldr r1, [r7, #0x7c]
mov r0, #0
str r0, [sp, #0x34]
cmp r1, #0
ble _021E42C2
str r0, [sp, #0x28]
ldr r0, [sp, #0x10]
str r0, [sp, #0x38]
add r0, #8
str r0, [sp, #0x38]
_021E4274:
ldr r0, [sp, #0x24]
add r3, r4, #0
str r0, [sp]
ldr r0, [sp, #0x28]
add r0, r0, #6
str r0, [sp, #4]
mov r0, #0
str r0, [sp, #8]
str r0, [sp, #0xc]
ldr r0, [sp, #0x10]
add r1, r0, #0
ldr r2, [r1, #4]
lsl r1, r4, #2
ldr r1, [r2, r1]
mov r2, #0x2c
mul r3, r2
ldr r2, [sp, #0x38]
add r2, r2, r3
add r3, r6, #0
bl MOD14_021E4038
add r4, r4, r5
add r6, r6, r5
cmp r4, #0xa
blt _021E42AA
mov r4, #0
b _021E42B0
_021E42AA:
cmp r4, #0
bge _021E42B0
mov r4, #9
_021E42B0:
ldr r0, [sp, #0x28]
ldr r1, [r7, #0x7c]
add r0, r0, #6
str r0, [sp, #0x28]
ldr r0, [sp, #0x34]
add r0, r0, #1
str r0, [sp, #0x34]
cmp r0, r1
blt _021E4274
_021E42C2:
mov r0, #6
sub r0, r0, r1
str r0, [sp, #0x30]
mov r0, #0
str r0, [sp, #0x14]
ldr r0, [sp, #0x30]
cmp r0, #0
ble _021E4328
ldr r0, [sp, #0x10]
str r0, [sp, #0x3c]
add r0, #8
str r0, [sp, #0x3c]
_021E42DA:
ldr r0, [r7, #0x7c]
add r1, r5, #0
mul r1, r0
sub r1, r6, r1
str r1, [sp]
mov r1, #6
mul r1, r0
str r1, [sp, #4]
mov r0, #0
str r0, [sp, #8]
str r0, [sp, #0xc]
ldr r0, [sp, #0x10]
add r3, r4, #0
add r1, r0, #0
ldr r2, [r1, #4]
lsl r1, r4, #2
ldr r1, [r2, r1]
mov r2, #0x2c
mul r3, r2
ldr r2, [sp, #0x3c]
add r2, r2, r3
add r3, r6, #0
bl MOD14_021E4038
add r4, r4, r5
add r6, r6, r5
cmp r4, #0xa
blt _021E4316
mov r4, #0
b _021E431C
_021E4316:
cmp r4, #0
bge _021E431C
mov r4, #9
_021E431C:
ldr r0, [sp, #0x14]
add r1, r0, #1
ldr r0, [sp, #0x30]
str r1, [sp, #0x14]
cmp r1, r0
blt _021E42DA
_021E4328:
ldr r1, [r7, #4]
mov r0, #0xa0
ldrsh r0, [r1, r0]
cmp r0, #0
ble _021E433E
mov r0, #0
str r0, [sp, #0x1c]
ldr r0, [r7, #0x7c]
str r0, [sp, #0x20]
str r0, [sp, #0x18]
b _021E434C
_021E433E:
mov r0, #7
str r0, [sp, #0x1c]
ldr r0, [r7, #0x7c]
ldr r1, [sp, #0x1c]
str r0, [sp, #0x20]
sub r0, r1, r0
str r0, [sp, #0x18]
_021E434C:
ldr r0, [sp, #0x20]
mov r6, #0
cmp r0, #0
ble _021E43B4
ldr r0, [sp, #0x10]
str r6, [sp, #0x2c]
str r0, [sp, #0x40]
add r0, #8
str r0, [sp, #0x40]
_021E435E:
ldr r0, [sp, #0x18]
add r3, r4, #0
str r0, [sp]
ldr r0, [r7, #0x7c]
sub r1, r0, r6
mov r0, #6
mul r0, r1
str r0, [sp, #4]
ldr r0, [sp, #0x2c]
add r0, r0, #6
str r0, [sp, #8]
mov r0, #0
str r0, [sp, #0xc]
ldr r0, [sp, #0x10]
add r1, r0, #0
ldr r2, [r1, #4]
lsl r1, r4, #2
ldr r1, [r2, r1]
mov r2, #0x2c
mul r3, r2
ldr r2, [sp, #0x40]
add r2, r2, r3
ldr r3, [sp, #0x1c]
bl MOD14_021E4038
ldr r0, [sp, #0x18]
add r4, r4, r5
add r0, r0, r5
str r0, [sp, #0x18]
cmp r4, #0xa
blt _021E43A0
sub r4, #0xa
b _021E43A6
_021E43A0:
cmp r4, #0
bge _021E43A6
add r4, #0xa
_021E43A6:
ldr r0, [sp, #0x2c]
add r6, r6, #1
add r0, r0, #6
str r0, [sp, #0x2c]
ldr r0, [sp, #0x20]
cmp r6, r0
blt _021E435E
_021E43B4:
mov r1, #0x73
ldr r0, [sp, #0x10]
lsl r1, r1, #2
ldrb r0, [r0, r1]
add r2, r0, #1
ldr r0, [sp, #0x10]
add sp, #0x44
strb r2, [r0, r1]
pop {r4, r5, r6, r7, pc}
_021E43C6:
ldr r0, [sp, #0x10]
sub r1, r2, #1
ldrb r0, [r0, r1]
cmp r0, #0
bne _021E43DE
ldr r0, [sp, #0x10]
add r1, r3, #1
strb r1, [r0, r2]
ldr r1, _021E43E4 ; =MOD14_021E41B8
add r2, r7, #0
bl MOD14_021DDF30
_021E43DE:
add sp, #0x44
pop {r4, r5, r6, r7, pc}
nop
_021E43E4: .word MOD14_021E41B8
thumb_func_start MOD14_021E43E8
MOD14_021E43E8: ; 0x021E43E8
push {r3, r4, r5, lr}
mov r1, #0x1d
add r4, r0, #0
mov r0, #0xa
lsl r1, r1, #4
bl AllocFromHeap
add r5, r0, #0
beq _021E4436
add r0, r4, #0
mov r1, #0x73
lsl r1, r1, #2
str r4, [r5]
add r0, #0x54
str r0, [r5, #4]
mov r0, #0
strb r0, [r5, r1]
sub r2, r1, #2
strb r0, [r5, r2]
sub r1, r1, #1
strb r0, [r5, r1]
mov r1, #7
add r3, r0, #0
lsl r1, r1, #6
_021E4418:
add r2, r5, r0
add r0, r0, #1
strb r3, [r2, r1]
cmp r0, #0xa
blt _021E4418
ldr r1, _021E4438 ; =MOD14_021E4210
add r0, r4, #0
add r2, r5, #0
bl MOD14_021E3784
cmp r0, #0
bne _021E4436
add r0, r5, #0
bl FreeToHeap
_021E4436:
pop {r3, r4, r5, pc}
.align 2, 0
_021E4438: .word MOD14_021E4210
thumb_func_start MOD14_021E443C
MOD14_021E443C: ; 0x021E443C
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x20
ldr r0, [r1]
mov r2, #0x73
str r0, [sp, #0x18]
lsl r2, r2, #2
add r0, r1, #0
ldrb r3, [r0, r2]
str r1, [sp, #0x10]
cmp r3, #0
beq _021E445A
cmp r3, #1
beq _021E44BE
add sp, #0x20
pop {r3, r4, r5, r6, r7, pc}
_021E445A:
ldr r0, [sp, #0x18]
mov r5, #0
add r0, #0x80
ldr r4, [r0]
add r0, r1, #0
str r0, [sp, #0x1c]
add r0, #8
mov r7, #6
str r5, [sp, #0x14]
mov r6, #0x24
str r0, [sp, #0x1c]
_021E4470:
str r7, [sp]
str r6, [sp, #4]
ldr r1, [sp, #0x18]
lsl r2, r4, #2
add r1, r1, r2
str r5, [sp, #8]
mov r0, #1
str r0, [sp, #0xc]
mov r2, #0x2c
add r3, r4, #0
mul r3, r2
ldr r2, [sp, #0x1c]
ldr r0, [sp, #0x10]
add r2, r2, r3
ldr r1, [r1, #0x34]
mov r3, #0
bl MOD14_021E4038
add r4, r4, #1
sub r6, r6, #6
sub r7, r7, #1
cmp r4, #8
blt _021E44A0
mov r4, #0
_021E44A0:
ldr r0, [sp, #0x14]
add r5, r5, #6
add r0, r0, #1
str r0, [sp, #0x14]
cmp r0, #6
blt _021E4470
mov r1, #0x73
ldr r0, [sp, #0x10]
lsl r1, r1, #2
ldrb r0, [r0, r1]
add r2, r0, #1
ldr r0, [sp, #0x10]
add sp, #0x20
strb r2, [r0, r1]
pop {r3, r4, r5, r6, r7, pc}
_021E44BE:
ldr r0, [sp, #0x10]
sub r1, r2, #1
ldrb r0, [r0, r1]
cmp r0, #0
bne _021E44D6
ldr r0, [sp, #0x10]
add r1, r3, #1
strb r1, [r0, r2]
ldr r1, _021E44DC ; =MOD14_021E41B8
ldr r2, [sp, #0x18]
bl MOD14_021DDF30
_021E44D6:
add sp, #0x20
pop {r3, r4, r5, r6, r7, pc}
nop
_021E44DC: .word MOD14_021E41B8
thumb_func_start MOD14_021E44E0
MOD14_021E44E0: ; 0x021E44E0
push {r3, r4, r5, lr}
mov r1, #0x1d
add r4, r0, #0
mov r0, #0xa
lsl r1, r1, #4
bl AllocFromHeap
add r5, r0, #0
beq _021E4528
mov r1, #0x73
mov r0, #0
lsl r1, r1, #2
str r4, [r5]
strb r0, [r5, r1]
sub r2, r1, #2
strb r0, [r5, r2]
sub r1, r1, #1
strb r0, [r5, r1]
mov r1, #7
add r3, r0, #0
lsl r1, r1, #6
_021E450A:
add r2, r5, r0
add r0, r0, #1
strb r3, [r2, r1]
cmp r0, #8
blt _021E450A
ldr r1, _021E452C ; =MOD14_021E443C
add r0, r4, #0
add r2, r5, #0
bl MOD14_021E3784
cmp r0, #0
bne _021E4528
add r0, r5, #0
bl FreeToHeap
_021E4528:
pop {r3, r4, r5, pc}
nop
_021E452C: .word MOD14_021E443C
thumb_func_start MOD14_021E4530
MOD14_021E4530: ; 0x021E4530
push {r4, r5, r6, r7, lr}
sub sp, #0x44
ldr r0, [r1]
mov r2, #0x73
str r0, [sp, #0x34]
lsl r2, r2, #2
add r0, r1, #0
ldrb r3, [r0, r2]
str r1, [sp, #0x10]
cmp r3, #0
beq _021E4550
cmp r3, #1
bne _021E454C
b _021E46C2
_021E454C:
add sp, #0x44
pop {r4, r5, r6, r7, pc}
_021E4550:
ldr r0, [sp, #0x34]
ldr r0, [r0, #4]
bl MOD14_021DC46C
str r0, [sp, #0x30]
ldr r0, [sp, #0x34]
add r0, #0x80
ldr r4, [r0]
ldr r0, [sp, #0x30]
cmp r0, #0
bge _021E4580
add r4, r4, #5
cmp r4, #8
blt _021E456E
sub r4, #8
_021E456E:
ldr r0, [sp, #0x30]
mov r5, #0
neg r0, r0
str r0, [sp, #0x28]
mov r0, #0
mvn r5, r5
mov r6, #1
str r0, [sp, #0x18]
b _021E458A
_021E4580:
str r0, [sp, #0x28]
mov r0, #7
mov r5, #1
mov r6, #6
str r0, [sp, #0x18]
_021E458A:
ldr r0, [sp, #0x28]
mov r7, #0
add r0, r0, #6
str r0, [sp, #0x2c]
ldr r0, [sp, #0x28]
cmp r0, #0
ble _021E45EC
ldr r0, [sp, #0x10]
str r7, [sp, #0x1c]
str r0, [sp, #0x38]
add r0, #8
str r0, [sp, #0x38]
_021E45A2:
ldr r0, [sp, #0x18]
ldr r1, [sp, #0x34]
str r0, [sp]
ldr r0, [sp, #0x1c]
lsl r2, r4, #2
add r0, r0, #6
str r0, [sp, #4]
mov r0, #0
str r0, [sp, #8]
mov r0, #1
add r1, r1, r2
str r0, [sp, #0xc]
mov r2, #0x2c
add r3, r4, #0
mul r3, r2
ldr r2, [sp, #0x38]
ldr r0, [sp, #0x10]
add r2, r2, r3
ldr r1, [r1, #0x34]
add r3, r6, #0
bl MOD14_021E4038
sub r6, r6, r5
add r4, r4, r5
bpl _021E45D8
add r4, #8
b _021E45DE
_021E45D8:
cmp r4, #8
blt _021E45DE
sub r4, #8
_021E45DE:
ldr r0, [sp, #0x1c]
add r7, r7, #1
add r0, r0, #6
str r0, [sp, #0x1c]
ldr r0, [sp, #0x28]
cmp r7, r0
blt _021E45A2
_021E45EC:
mov r0, #0
str r0, [sp, #0x24]
cmp r7, #8
bge _021E4658
ldr r0, [sp, #0x28]
mov r1, #6
mul r1, r0
ldr r0, [sp, #0x10]
str r1, [sp, #0x20]
str r0, [sp, #0x3c]
add r0, #8
str r0, [sp, #0x3c]
_021E4604:
ldr r0, [sp, #0x18]
ldr r1, [sp, #0x34]
sub r0, r0, r5
str r0, [sp, #0x18]
str r0, [sp]
ldr r0, [sp, #0x20]
lsl r2, r4, #2
str r0, [sp, #4]
ldr r0, [sp, #0x24]
add r1, r1, r2
str r0, [sp, #8]
mov r0, #1
str r0, [sp, #0xc]
mov r2, #0x2c
add r3, r4, #0
mul r3, r2
ldr r2, [sp, #0x3c]
ldr r0, [sp, #0x10]
add r2, r2, r3
ldr r1, [r1, #0x34]
add r3, r6, #0
bl MOD14_021E4038
cmp r6, #0
beq _021E463E
cmp r6, #7
beq _021E463E
sub r6, r6, r5
b _021E4644
_021E463E:
ldr r0, [sp, #0x24]
add r0, r0, #6
str r0, [sp, #0x24]
_021E4644:
add r4, r4, r5
bpl _021E464C
add r4, #8
b _021E4652
_021E464C:
cmp r4, #8
blt _021E4652
sub r4, #8
_021E4652:
add r7, r7, #1
cmp r7, #8
blt _021E4604
_021E4658:
ldr r0, [sp, #0x30]
cmp r0, #0
bge _021E466C
mov r0, #7
str r0, [sp, #0x14]
ldr r0, [sp, #0x28]
sub r1, r0, #2
ldr r0, [sp, #0x14]
sub r6, r0, r1
b _021E4674
_021E466C:
mov r0, #0
str r0, [sp, #0x14]
ldr r0, [sp, #0x28]
sub r6, r0, #2
_021E4674:
ldr r0, [sp, #0x2c]
cmp r7, r0
bge _021E46B0
ldr r0, [sp, #0x10]
str r0, [sp, #0x40]
add r0, #8
str r0, [sp, #0x40]
_021E4682:
mov r1, #0x2c
add r2, r4, #0
mul r2, r1
ldr r1, [sp, #0x40]
ldr r0, [sp, #0x10]
add r1, r1, r2
ldr r3, [sp, #0x14]
mov r2, #6
str r6, [sp]
bl MOD14_021E40B4
sub r6, r6, r5
add r4, r4, r5
bpl _021E46A2
add r4, #8
b _021E46A8
_021E46A2:
cmp r4, #8
blt _021E46A8
sub r4, #8
_021E46A8:
ldr r0, [sp, #0x2c]
add r7, r7, #1
cmp r7, r0
blt _021E4682
_021E46B0:
mov r1, #0x73
ldr r0, [sp, #0x10]
lsl r1, r1, #2
ldrb r0, [r0, r1]
add r2, r0, #1
ldr r0, [sp, #0x10]
add sp, #0x44
strb r2, [r0, r1]
pop {r4, r5, r6, r7, pc}
_021E46C2:
ldr r0, [sp, #0x10]
sub r1, r2, #1
ldrb r0, [r0, r1]
cmp r0, #0
bne _021E46DA
ldr r0, [sp, #0x10]
add r1, r3, #1
strb r1, [r0, r2]
ldr r1, _021E46E0 ; =MOD14_021E41B8
ldr r2, [sp, #0x34]
bl MOD14_021DDF30
_021E46DA:
add sp, #0x44
pop {r4, r5, r6, r7, pc}
nop
_021E46E0: .word MOD14_021E41B8
thumb_func_start MOD14_021E46E4
MOD14_021E46E4: ; 0x021E46E4
push {r3, r4, r5, lr}
mov r1, #0x1d
add r4, r0, #0
mov r0, #0xa
lsl r1, r1, #4
bl AllocFromHeap
add r5, r0, #0
beq _021E472C
mov r1, #0x73
mov r0, #0
lsl r1, r1, #2
str r4, [r5]
strb r0, [r5, r1]
sub r2, r1, #2
strb r0, [r5, r2]
sub r1, r1, #1
strb r0, [r5, r1]
mov r1, #7
add r3, r0, #0
lsl r1, r1, #6
_021E470E:
add r2, r5, r0
add r0, r0, #1
strb r3, [r2, r1]
cmp r0, #8
blt _021E470E
ldr r1, _021E4730 ; =MOD14_021E4530
add r0, r4, #0
add r2, r5, #0
bl MOD14_021E3784
cmp r0, #0
bne _021E472C
add r0, r5, #0
bl FreeToHeap
_021E472C:
pop {r3, r4, r5, pc}
nop
_021E4730: .word MOD14_021E4530
thumb_func_start MOD14_021E4734
MOD14_021E4734: ; 0x021E4734
push {r4, r5, r6, lr}
add r5, r0, #0
beq _021E4762
ldr r0, [r5, #0x34]
cmp r0, #0
beq _021E4762
ldr r0, [r5, #4]
bl MOD14_021DC484
add r6, r0, #0
mov r4, #0
_021E474A:
add r0, r4, #0
add r1, r6, #0
bl MOD14_021E3DF8
add r1, r0, #0
ldr r0, [r5, #0x34]
bl FUN_02020130
add r4, r4, #1
add r5, r5, #4
cmp r4, #8
blt _021E474A
_021E4762:
pop {r4, r5, r6, pc}
thumb_func_start MOD14_021E4764
MOD14_021E4764: ; 0x021E4764
ldr r3, _021E476C ; =FUN_0201797C
mov r0, #4
mov r1, #0
bx r3
.align 2, 0
_021E476C: .word FUN_0201797C
thumb_func_start MOD14_021E4770
MOD14_021E4770: ; 0x021E4770
push {r3, lr}
mov r0, #2
str r0, [sp]
ldr r0, _021E478C ; =0x04001050
mov r1, #1
mov r2, #0x3f
mov r3, #0xe
bl G2x_SetBlendAlpha_
mov r0, #4
mov r1, #1
bl FUN_0201797C
pop {r3, pc}
.align 2, 0
_021E478C: .word 0x04001050
thumb_func_start MOD14_021E4790
MOD14_021E4790: ; 0x021E4790
push {r4, r5, r6, r7, lr}
sub sp, #0x14
add r6, r0, #0
ldr r0, [r6, #4]
bl MOD14_021DC474
add r4, r0, #3
cmp r4, #0x12
blt _021E47A4
sub r4, #0x12
_021E47A4:
mov r0, #0
add r7, r6, #0
ldr r5, _021E4820 ; =0x021E6690
str r0, [sp, #0x10]
add r7, #0x88
_021E47AE:
ldr r0, [r6, #4]
add r2, r6, #0
add r2, #0x84
ldr r0, [r0]
ldr r2, [r2]
add r1, r4, #0
bl FUN_0206B484
mov r0, #0x68
str r0, [sp]
mov r0, #0x10
str r0, [sp, #4]
ldrh r2, [r5]
ldrh r3, [r5, #2]
add r0, r7, #0
mov r1, #0
bl FUN_020196F4
mov r0, #2
ldrsh r0, [r5, r0]
mov r1, #0
add r2, r6, #0
add r0, r0, #2
str r0, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, _021E4824 ; =0x00010200
add r3, r1, #0
str r0, [sp, #8]
mov r0, #0
str r0, [sp, #0xc]
ldrsh r3, [r5, r3]
add r2, #0x84
ldr r2, [r2]
add r0, r7, #0
add r3, r3, #4
bl FUN_0201BDE0
sub r4, r4, #1
bpl _021E4800
mov r4, #0x11
_021E4800:
ldr r0, [sp, #0x10]
add r5, r5, #4
add r0, r0, #1
str r0, [sp, #0x10]
cmp r0, #6
blo _021E47AE
add r0, r6, #0
add r0, #0x88
bl FUN_02019548
add r0, r6, #0
bl MOD14_021E4770
add sp, #0x14
pop {r4, r5, r6, r7, pc}
nop
_021E4820: .word 0x021E6690
_021E4824: .word 0x00010200
thumb_func_start MOD14_021E4828
MOD14_021E4828: ; 0x021E4828
push {r3, r4, r5, r6, r7, lr}
add r7, r0, #0
add r5, r1, #0
mov r0, #0xa
mov r1, #0x3c
add r6, r2, #0
str r3, [sp]
bl AllocFromHeap
add r4, r0, #0
beq _021E487C
str r5, [r4, #4]
ldr r0, [sp]
str r6, [r4, #8]
str r0, [r4, #0xc]
ldr r0, [sp, #0x18]
str r0, [r4, #0x10]
add r0, r5, #0
bl MOD14_021DDD50
str r0, [r4, #0x14]
add r0, r5, #0
bl MOD14_021DDD6C
str r0, [r4, #0x18]
mov r0, #0
str r0, [r4, #0x34]
add r0, r6, #0
bl MOD14_021DC3C4
cmp r0, #3
bne _021E486C
mov r0, #1
b _021E486E
_021E486C:
mov r0, #0
_021E486E:
str r0, [r4]
add r0, r4, #0
bl MOD14_021E4890
str r4, [r7]
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021E487C:
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD14_021E4880
MOD14_021E4880: ; 0x021E4880
push {r4, lr}
add r4, r0, #0
bl MOD14_021E495C
add r0, r4, #0
bl FreeToHeap
pop {r4, pc}
thumb_func_start MOD14_021E4890
MOD14_021E4890: ; 0x021E4890
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x58
add r6, r0, #0
ldr r0, [r6]
cmp r0, #0
beq _021E4940
ldr r4, [r6, #0x14]
ldr r0, [r6, #4]
bl MOD14_021DDD48
add r2, r0, #0
ldr r0, [r4, #0x20]
add r1, sp, #0x10
str r0, [sp]
mov r0, #0
str r0, [sp, #4]
ldr r3, [r4, #0x1c]
add r0, sp, #0x34
bl MOD14_021DDDB4
mov r0, #1
add r1, r0, #0
bl FUN_0206E640
add r1, r0, #0
mov r0, #0xa
str r0, [sp]
mov r0, #0x10
mov r2, #0
add r3, sp, #0xc
bl FUN_02006BB0
str r0, [sp, #8]
cmp r0, #0
beq _021E4950
mov r0, #1
lsl r0, r0, #0x1a
ldr r1, [r0]
ldr r0, _021E4954 ; =0x00300010
ldr r4, _021E4958 ; =0x021E68E8
and r1, r0
ldr r0, [sp, #0xc]
mov r7, #0
str r1, [r0, #8]
add r5, r6, #0
_021E48EA:
add r0, sp, #0x10
bl FUN_020B1A24
ldr r0, [sp, #0xc]
ldr r1, [r4]
mov r2, #1
add r3, sp, #0x10
bl FUN_020B1768
mov r0, #0
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
mov r2, #0
ldr r0, [r6, #0x10]
add r1, sp, #0x34
add r3, r2, #0
bl MOD14_021DDDD4
str r0, [r5, #0x1c]
ldr r1, [r4, #4]
bl FUN_02020248
ldr r0, [r5, #0x1c]
mov r1, #0
bl FUN_020200A0
ldr r0, [r5, #0x1c]
mov r1, #1
bl FUN_020200EC
mov r0, #0
str r0, [r5, #0x28]
add r7, r7, #1
add r4, #8
add r5, r5, #4
cmp r7, #3
blt _021E48EA
ldr r0, [sp, #8]
bl FreeToHeap
add sp, #0x58
pop {r3, r4, r5, r6, r7, pc}
_021E4940:
mov r1, #0
add r0, r1, #0
_021E4944:
str r0, [r6, #0x1c]
str r0, [r6, #0x28]
add r1, r1, #1
add r6, r6, #4
cmp r1, #3
blt _021E4944
_021E4950:
add sp, #0x58
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_021E4954: .word 0x00300010
_021E4958: .word 0x021E68E8
thumb_func_start MOD14_021E495C
MOD14_021E495C: ; 0x021E495C
push {r3, r4, r5, lr}
add r5, r0, #0
mov r4, #0
_021E4962:
ldr r0, [r5, #0x1c]
cmp r0, #0
beq _021E496C
bl FUN_0201FFC8
_021E496C:
add r4, r4, #1
add r5, r5, #4
cmp r4, #3
blt _021E4962
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_start MOD14_021E4978
MOD14_021E4978: ; 0x021E4978
push {r3, r4}
mov r3, #0
add r4, r0, #0
_021E497E:
ldr r2, [r4, #0x28]
cmp r2, #0
bne _021E4990
lsl r2, r3, #2
add r0, r0, r2
str r1, [r0, #0x28]
add r0, r3, #0
pop {r3, r4}
bx lr
_021E4990:
add r3, r3, #1
add r4, r4, #4
cmp r3, #3
blt _021E497E
mov r0, #0
mvn r0, r0
pop {r3, r4}
bx lr
thumb_func_start MOD14_021E49A0
MOD14_021E49A0: ; 0x021E49A0
mov r3, #0
_021E49A2:
ldr r2, [r0, #0x28]
cmp r1, r2
bne _021E49AC
add r0, r3, #0
bx lr
_021E49AC:
add r3, r3, #1
add r0, r0, #4
cmp r3, #3
blt _021E49A2
mov r0, #0
mvn r0, r0
bx lr
.align 2, 0
thumb_func_start MOD14_021E49BC
MOD14_021E49BC: ; 0x021E49BC
lsl r1, r1, #2
add r0, r0, r1
str r2, [r0, #0x28]
bx lr
thumb_func_start MOD14_021E49C4
MOD14_021E49C4: ; 0x021E49C4
push {r4, lr}
add r4, r0, #0
ldr r1, [r4]
cmp r1, #0
beq _021E49D8
bl MOD14_021E49DC
add r0, r4, #0
bl MOD14_021E4A14
_021E49D8:
pop {r4, pc}
.align 2, 0
thumb_func_start MOD14_021E49DC
MOD14_021E49DC: ; 0x021E49DC
push {r4, r5, r6, lr}
add r5, r0, #0
ldr r0, [r5, #8]
bl MOD14_021DC430
add r4, r0, #0
beq _021E4A12
add r0, r5, #0
mov r1, #1
bl MOD14_021E4978
add r6, r0, #0
add r0, r5, #0
add r1, r6, #0
add r2, r4, #0
bl MOD14_021E4B58
add r5, #0x1c
lsl r4, r6, #2
ldr r0, [r5, r4]
mov r1, #6
bl FUN_02020130
ldr r0, [r5, r4]
mov r1, #1
bl FUN_020200A0
_021E4A12:
pop {r4, r5, r6, pc}
thumb_func_start MOD14_021E4A14
MOD14_021E4A14: ; 0x021E4A14
push {r4, r5, r6, r7, lr}
sub sp, #0x1c
add r5, r0, #0
ldr r0, [r5, #8]
bl MOD14_021DC538
add r7, r0, #0
beq _021E4AC8
add r0, r5, #0
mov r1, #3
bl MOD14_021E4978
add r6, r0, #0
ldr r0, [r5, #0x18]
add r1, sp, #0x10
bl MOD14_021E0038
mov r0, #2
ldr r1, [sp, #0x14]
lsl r0, r0, #0xe
add r0, r1, r0
str r0, [sp, #0x14]
ldr r0, [r5, #8]
bl MOD14_021DC3CC
cmp r0, #1
bne _021E4A50
mov r0, #1
str r0, [sp, #0xc]
b _021E4A54
_021E4A50:
mov r0, #2
str r0, [sp, #0xc]
_021E4A54:
lsl r0, r7, #0x10
lsr r0, r0, #0x10
mov r1, #1
lsl r4, r6, #3
bl FUN_0206E640
mov r2, #0
ldr r3, _021E4ACC ; =0x021E68E8
str r2, [sp]
add r1, r0, #0
str r2, [sp, #4]
mov r0, #0xa
str r0, [sp, #8]
ldr r3, [r3, r4]
mov r0, #0x10
bl FUN_02006A34
lsl r0, r7, #0x10
lsr r0, r0, #0x10
mov r1, #2
bl FUN_0206E640
ldr r3, _021E4AD0 ; =0x021E68EC
add r1, r0, #0
mov r0, #0x20
ldr r3, [r3, r4]
str r0, [sp]
mov r0, #0xa
str r0, [sp, #4]
mov r0, #0x10
mov r2, #1
lsl r3, r3, #5
bl FUN_02006930
ldr r1, [sp, #0xc]
add r5, #0x1c
lsl r4, r6, #2
lsl r1, r1, #0x18
ldr r0, [r5, r4]
lsr r1, r1, #0x18
bl FUN_02020238
ldr r0, [r5, r4]
mov r1, #2
bl MOD14_021DDE24
ldr r0, [r5, r4]
add r1, sp, #0x10
bl FUN_02020044
ldr r0, [r5, r4]
mov r1, #0
bl FUN_02020130
ldr r0, [r5, r4]
mov r1, #1
bl FUN_020200A0
_021E4AC8:
add sp, #0x1c
pop {r4, r5, r6, r7, pc}
.align 2, 0
_021E4ACC: .word 0x021E68E8
_021E4AD0: .word 0x021E68EC
thumb_func_start MOD14_021E4AD4
MOD14_021E4AD4: ; 0x021E4AD4
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
add r5, r0, #0
add r4, r1, #0
mov r0, #0
str r0, [r4, #8]
ldr r0, [r5, #8]
add r7, r2, #0
bl MOD14_021DC3CC
cmp r0, #1
ldr r0, [r5, #4]
bne _021E4B1E
bl MOD14_021DDD60
add r6, r0, #0
ldr r0, [r5, #8]
bl MOD14_021DC3E8
add r1, r0, #0
add r0, r6, #0
add r2, sp, #4
add r3, sp, #0
bl MOD14_021E3170
ldr r0, [sp, #4]
add r0, #0xa
lsl r0, r0, #0xc
str r0, [r4]
ldr r0, [sp]
add sp, #8
add r0, #8
lsl r0, r0, #0xc
str r0, [r4, #4]
mov r0, #1
str r0, [r7]
pop {r3, r4, r5, r6, r7, pc}
_021E4B1E:
bl MOD14_021DDD98
add r6, r0, #0
ldr r0, [r5, #8]
bl MOD14_021DC3D0
mov r1, #0x18
add r6, #0x70
mul r1, r0
add r0, r6, r1
add r0, #0xa
str r0, [r4]
ldr r0, [r5, #8]
bl MOD14_021DC3D8
mov r1, #0x18
mul r1, r0
add r1, #0x30
str r1, [r4, #4]
ldr r0, [r4]
lsl r0, r0, #0xc
str r0, [r4]
ldr r0, [r4, #4]
lsl r0, r0, #0xc
str r0, [r4, #4]
mov r0, #2
str r0, [r7]
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD14_021E4B58
MOD14_021E4B58: ; 0x021E4B58
push {r4, r5, r6, r7, lr}
sub sp, #0x1c
add r4, r1, #0
add r5, r0, #0
add r7, r2, #0
cmp r4, #0
blt _021E4BD2
add r1, sp, #0x10
add r2, sp, #0xc
bl MOD14_021E4AD4
lsl r0, r7, #0x10
lsr r0, r0, #0x10
mov r1, #1
lsl r6, r4, #3
bl FUN_0206E640
mov r2, #0
ldr r3, _021E4BD8 ; =0x021E68E8
str r2, [sp]
add r1, r0, #0
str r2, [sp, #4]
mov r0, #0xa
str r0, [sp, #8]
ldr r3, [r3, r6]
mov r0, #0x10
bl FUN_02006A34
lsl r0, r7, #0x10
lsr r0, r0, #0x10
mov r1, #2
bl FUN_0206E640
ldr r3, _021E4BDC ; =0x021E68EC
add r1, r0, #0
mov r0, #0x20
ldr r3, [r3, r6]
str r0, [sp]
mov r0, #0xa
str r0, [sp, #4]
mov r0, #0x10
mov r2, #1
lsl r3, r3, #5
bl FUN_02006930
ldr r1, [sp, #0xc]
add r5, #0x1c
lsl r4, r4, #2
lsl r1, r1, #0x18
ldr r0, [r5, r4]
lsr r1, r1, #0x18
bl FUN_02020238
ldr r0, [r5, r4]
mov r1, #3
bl MOD14_021DDE24
ldr r0, [r5, r4]
add r1, sp, #0x10
bl FUN_02020044
_021E4BD2:
add sp, #0x1c
pop {r4, r5, r6, r7, pc}
nop
_021E4BD8: .word 0x021E68E8
_021E4BDC: .word 0x021E68EC
thumb_func_start MOD14_021E4BE0
MOD14_021E4BE0: ; 0x021E4BE0
push {r4, r5, r6, lr}
add r5, r0, #0
ldr r1, [r5]
cmp r1, #0
beq _021E4C3E
mov r1, #1
bl MOD14_021E49A0
add r4, r0, #0
bmi _021E4C0A
add r0, r5, #0
add r1, r4, #0
mov r2, #2
bl MOD14_021E49BC
lsl r0, r4, #2
add r0, r5, r0
ldr r0, [r0, #0x1c]
mov r1, #2
bl FUN_02020130
_021E4C0A:
ldr r0, [r5, #8]
bl MOD14_021DC430
add r6, r0, #0
beq _021E4C3E
add r0, r5, #0
mov r1, #1
bl MOD14_021E4978
add r4, r0, #0
bmi _021E4C3E
add r0, r5, #0
add r1, r4, #0
add r2, r6, #0
bl MOD14_021E4B58
add r5, #0x1c
lsl r4, r4, #2
ldr r0, [r5, r4]
mov r1, #1
bl FUN_02020130
ldr r0, [r5, r4]
mov r1, #1
bl FUN_020200A0
_021E4C3E:
pop {r4, r5, r6, pc}
thumb_func_start MOD14_021E4C40
MOD14_021E4C40: ; 0x021E4C40
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r1, [r5]
cmp r1, #0
bne _021E4C4E
mov r0, #1
pop {r3, r4, r5, pc}
_021E4C4E:
mov r1, #1
bl MOD14_021E49A0
cmp r0, #0
blt _021E4C6A
lsl r0, r0, #2
add r0, r5, r0
ldr r0, [r0, #0x1c]
bl FUN_02020388
cmp r0, #0
beq _021E4C6A
mov r0, #0
pop {r3, r4, r5, pc}
_021E4C6A:
add r0, r5, #0
mov r1, #2
bl MOD14_021E49A0
add r4, r0, #0
bmi _021E4C92
lsl r0, r4, #2
add r0, r5, r0
ldr r0, [r0, #0x1c]
bl FUN_02020388
cmp r0, #0
beq _021E4C88
mov r0, #0
pop {r3, r4, r5, pc}
_021E4C88:
add r0, r5, #0
add r1, r4, #0
mov r2, #0
bl MOD14_021E49BC
_021E4C92:
mov r0, #1
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_start MOD14_021E4C98
MOD14_021E4C98: ; 0x021E4C98
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r7, r1, #0
mov r0, #0xa
mov r1, #0x34
add r6, r2, #0
str r3, [sp]
bl AllocFromHeap
add r4, r0, #0
beq _021E4D1A
lsl r0, r7, #2
str r5, [r4]
add r0, r5, r0
ldr r0, [r0, #0x1c]
str r0, [r4, #4]
bl FUN_0202011C
add r3, r0, #0
add r2, r4, #0
ldmia r3!, {r0, r1}
add r2, #8
stmia r2!, {r0, r1}
ldr r0, [r3]
str r0, [r2]
add r2, r4, #0
ldmia r6!, {r0, r1}
add r2, #0x14
stmia r2!, {r0, r1}
ldr r0, [r6]
ldr r6, [sp, #0x18]
str r0, [r2]
ldr r1, [r4, #0x14]
ldr r0, [r4, #8]
sub r0, r1, r0
add r1, r6, #0
bl _s32_div_f
str r0, [r4, #0x20]
ldr r1, [r4, #0x18]
ldr r0, [r4, #0xc]
sub r0, r1, r0
add r1, r6, #0
bl _s32_div_f
str r0, [r4, #0x24]
ldr r0, [sp, #0x18]
mov r2, #0
str r0, [r4, #0x2c]
ldr r0, [sp]
add r1, r4, #0
str r0, [r4, #0x28]
ldr r0, _021E4D1C ; =MOD14_021E4D20
str r2, [r4, #0x30]
bl MOD14_021DDD40
cmp r0, #0
beq _021E4D14
ldr r0, [r5, #0x34]
add r0, r0, #1
str r0, [r5, #0x34]
pop {r3, r4, r5, r6, r7, pc}
_021E4D14:
add r0, r4, #0
bl FreeToHeap
_021E4D1A:
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_021E4D1C: .word MOD14_021E4D20
thumb_func_start MOD14_021E4D20
MOD14_021E4D20: ; 0x021E4D20
push {r3, r4, r5, lr}
add r4, r1, #0
add r5, r0, #0
ldr r0, [r4, #0x30]
cmp r0, #0
beq _021E4D32
cmp r0, #1
beq _021E4D68
pop {r3, r4, r5, pc}
_021E4D32:
ldr r0, [r4, #0x2c]
cmp r0, #0
beq _021E4D58
ldr r2, [r4, #8]
ldr r0, [r4, #0x20]
add r1, #8
add r0, r2, r0
str r0, [r4, #8]
ldr r2, [r4, #0xc]
ldr r0, [r4, #0x24]
add r0, r2, r0
str r0, [r4, #0xc]
ldr r0, [r4, #4]
bl FUN_02020044
ldr r0, [r4, #0x2c]
sub r0, r0, #1
str r0, [r4, #0x2c]
pop {r3, r4, r5, pc}
_021E4D58:
ldr r0, [r4, #4]
add r1, #0x14
bl FUN_02020044
ldr r0, [r4, #0x30]
add r0, r0, #1
str r0, [r4, #0x30]
pop {r3, r4, r5, pc}
_021E4D68:
ldr r0, [r4, #4]
bl FUN_02020388
cmp r0, #0
bne _021E4D92
ldr r0, [r4, #4]
ldr r1, [r4, #0x28]
bl MOD14_021DDE24
ldr r1, [r4]
ldr r0, [r1, #0x34]
sub r0, r0, #1
str r0, [r1, #0x34]
add r0, r5, #0
bl FUN_0200CAB4
mov r1, #0
add r0, r4, #0
add r2, r1, #0
bl MOD14_021DDF30
_021E4D92:
pop {r3, r4, r5, pc}
thumb_func_start MOD14_021E4D94
MOD14_021E4D94: ; 0x021E4D94
push {r3, r4, r5, lr}
sub sp, #0x10
add r5, r0, #0
ldr r1, [r5]
cmp r1, #0
beq _021E4DE2
mov r1, #1
bl MOD14_021E49A0
add r4, r0, #0
bmi _021E4DE2
ldr r0, [r5, #0x18]
add r1, sp, #4
bl MOD14_021E0038
mov r0, #2
ldr r1, [sp, #8]
lsl r0, r0, #0xe
add r0, r1, r0
str r0, [sp, #8]
add r0, r5, #0
add r1, r4, #0
mov r2, #3
bl MOD14_021E49BC
lsl r0, r4, #2
add r0, r5, r0
ldr r0, [r0, #0x1c]
mov r1, #3
bl FUN_02020130
mov r0, #0xc
str r0, [sp]
add r0, r5, #0
add r1, r4, #0
add r2, sp, #4
mov r3, #2
bl MOD14_021E4C98
_021E4DE2:
add sp, #0x10
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_start MOD14_021E4DE8
MOD14_021E4DE8: ; 0x021E4DE8
ldr r0, [r0, #0x34]
cmp r0, #0
bne _021E4DF2
mov r0, #1
bx lr
_021E4DF2:
mov r0, #0
bx lr
.align 2, 0
thumb_func_start MOD14_021E4DF8
MOD14_021E4DF8: ; 0x021E4DF8
push {r3, r4, r5, lr}
add r4, r0, #0
ldr r1, [r4]
cmp r1, #0
beq _021E4E22
mov r1, #1
bl MOD14_021E49A0
add r5, r0, #0
bmi _021E4E22
add r0, r4, #0
add r1, r5, #0
mov r2, #2
bl MOD14_021E49BC
lsl r0, r5, #2
add r0, r4, r0
ldr r0, [r0, #0x1c]
mov r1, #2
bl FUN_02020130
_021E4E22:
pop {r3, r4, r5, pc}
thumb_func_start MOD14_021E4E24
MOD14_021E4E24: ; 0x021E4E24
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r1, [r5]
cmp r1, #0
beq _021E4E54
mov r1, #2
bl MOD14_021E49A0
add r4, r0, #0
bmi _021E4E54
lsl r0, r4, #2
add r0, r5, r0
ldr r0, [r0, #0x1c]
bl FUN_02020388
cmp r0, #0
beq _021E4E4A
mov r0, #0
pop {r3, r4, r5, pc}
_021E4E4A:
add r0, r5, #0
add r1, r4, #0
mov r2, #0
bl MOD14_021E49BC
_021E4E54:
mov r0, #1
pop {r3, r4, r5, pc}
thumb_func_start MOD14_021E4E58
MOD14_021E4E58: ; 0x021E4E58
push {r4, r5, lr}
sub sp, #0x14
add r5, r0, #0
ldr r1, [r5]
cmp r1, #0
beq _021E4E9E
mov r1, #3
bl MOD14_021E49A0
add r4, r0, #0
bmi _021E4E9E
add r0, r5, #0
add r1, sp, #8
add r2, sp, #4
bl MOD14_021E4AD4
add r0, r5, #0
add r1, r4, #0
mov r2, #1
bl MOD14_021E49BC
lsl r0, r4, #2
add r0, r5, r0
ldr r0, [r0, #0x1c]
mov r1, #4
bl FUN_02020130
mov r0, #0xc
str r0, [sp]
add r0, r5, #0
add r1, r4, #0
add r2, sp, #8
mov r3, #3
bl MOD14_021E4C98
_021E4E9E:
add sp, #0x14
pop {r4, r5, pc}
.align 2, 0
thumb_func_start MOD14_021E4EA4
MOD14_021E4EA4: ; 0x021E4EA4
ldr r0, [r0, #0x34]
cmp r0, #0
bne _021E4EAE
mov r0, #1
bx lr
_021E4EAE:
mov r0, #0
bx lr
.align 2, 0
thumb_func_start MOD14_021E4EB4
MOD14_021E4EB4: ; 0x021E4EB4
push {r3, r4, r5, r6, lr}
sub sp, #0x14
add r5, r0, #0
ldr r1, [r5]
cmp r1, #0
beq _021E4F42
mov r1, #3
bl MOD14_021E49A0
add r4, r0, #0
add r0, r5, #0
mov r1, #1
bl MOD14_021E49A0
add r6, r0, #0
cmp r4, #0
blt _021E4F42
cmp r6, #0
blt _021E4F42
add r0, r5, #0
add r1, sp, #8
add r2, sp, #4
bl MOD14_021E4AD4
add r0, r5, #0
add r1, r4, #0
mov r2, #1
bl MOD14_021E49BC
lsl r0, r4, #2
add r0, r5, r0
ldr r0, [r0, #0x1c]
mov r1, #4
bl FUN_02020130
mov r0, #0xc
str r0, [sp]
add r0, r5, #0
add r1, r4, #0
add r2, sp, #8
mov r3, #3
bl MOD14_021E4C98
ldr r0, [r5, #0x18]
add r1, sp, #8
bl MOD14_021E0038
mov r0, #2
ldr r1, [sp, #0xc]
lsl r0, r0, #0xe
add r0, r1, r0
str r0, [sp, #0xc]
add r0, r5, #0
add r1, r6, #0
mov r2, #3
bl MOD14_021E49BC
lsl r0, r6, #2
add r0, r5, r0
ldr r0, [r0, #0x1c]
mov r1, #3
bl FUN_02020130
mov r0, #0xc
str r0, [sp]
add r0, r5, #0
add r1, r6, #0
add r2, sp, #8
mov r3, #2
bl MOD14_021E4C98
_021E4F42:
add sp, #0x14
pop {r3, r4, r5, r6, pc}
.align 2, 0
thumb_func_start MOD14_021E4F48
MOD14_021E4F48: ; 0x021E4F48
ldr r0, [r0, #0x34]
cmp r0, #0
bne _021E4F52
mov r0, #1
bx lr
_021E4F52:
mov r0, #0
bx lr
.align 2, 0
thumb_func_start MOD14_021E4F58
MOD14_021E4F58: ; 0x021E4F58
push {r3, r4, r5, lr}
add r4, r0, #0
ldr r1, [r4]
cmp r1, #0
beq _021E4F9E
mov r1, #3
bl MOD14_021E49A0
add r5, r0, #0
bmi _021E4F7C
lsl r0, r5, #2
add r0, r4, r0
ldr r0, [r0, #0x1c]
mov r1, #5
bl FUN_02020130
str r5, [r4, #0x38]
pop {r3, r4, r5, pc}
_021E4F7C:
add r0, r4, #0
mov r1, #1
bl MOD14_021E49A0
add r5, r0, #0
bmi _021E4F98
lsl r0, r5, #2
add r0, r4, r0
ldr r0, [r0, #0x1c]
mov r1, #2
bl FUN_02020130
str r5, [r4, #0x38]
pop {r3, r4, r5, pc}
_021E4F98:
mov r0, #0
mvn r0, r0
str r0, [r4, #0x38]
_021E4F9E:
pop {r3, r4, r5, pc}
thumb_func_start MOD14_021E4FA0
MOD14_021E4FA0: ; 0x021E4FA0
push {r4, lr}
add r4, r0, #0
ldr r0, [r4]
cmp r0, #0
beq _021E4FD6
mov r0, #0
ldr r1, [r4, #0x38]
mvn r0, r0
cmp r1, r0
beq _021E4FD6
lsl r0, r1, #2
add r0, r4, r0
ldr r0, [r0, #0x1c]
bl FUN_02020388
cmp r0, #0
beq _021E4FC6
mov r0, #0
pop {r4, pc}
_021E4FC6:
ldr r1, [r4, #0x38]
add r0, r4, #0
mov r2, #0
bl MOD14_021E49BC
mov r0, #0
mvn r0, r0
str r0, [r4, #0x38]
_021E4FD6:
mov r0, #1
pop {r4, pc}
.align 2, 0
thumb_func_start MOD14_021E4FDC
MOD14_021E4FDC: ; 0x021E4FDC
push {r3, r4, r5, r6, lr}
sub sp, #0xc
add r5, r0, #0
add r4, r1, #0
ldr r1, [r5]
cmp r1, #0
beq _021E5016
mov r1, #3
bl MOD14_021E49A0
add r6, r0, #0
bmi _021E5016
ldmia r4!, {r0, r1}
add r3, sp, #0
add r2, r3, #0
stmia r3!, {r0, r1}
ldr r0, [r4]
str r0, [r3]
mov r0, #2
ldr r1, [sp, #4]
lsl r0, r0, #0xe
add r0, r1, r0
str r0, [sp, #4]
lsl r0, r6, #2
add r0, r5, r0
ldr r0, [r0, #0x1c]
add r1, r2, #0
bl FUN_02020044
_021E5016:
add sp, #0xc
pop {r3, r4, r5, r6, pc}
.align 2, 0
thumb_func_start MOD14_021E501C
MOD14_021E501C: ; 0x021E501C
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
ldr r1, [r5]
cmp r1, #0
beq _021E5040
mov r1, #3
bl MOD14_021E49A0
cmp r0, #0
blt _021E5040
lsl r0, r0, #2
add r0, r5, r0
lsl r1, r4, #0x18
ldr r0, [r0, #0x1c]
lsr r1, r1, #0x18
bl FUN_02020238
_021E5040:
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_start MOD14_021E5044
MOD14_021E5044: ; 0x021E5044
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
add r7, r2, #0
add r5, r0, #0
add r0, r7, #0
add r6, r1, #0
str r3, [sp, #4]
bl MOD14_021DC3C4
cmp r0, #4
beq _021E5064
mov r0, #0
str r0, [r5]
add sp, #8
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021E5064:
mov r1, #0xe1
mov r0, #0xa
lsl r1, r1, #2
bl AllocFromHeap
add r4, r0, #0
beq _021E50E6
str r6, [r4, #4]
ldr r0, [sp, #4]
str r7, [r4, #8]
str r0, [r4, #0xc]
ldr r0, [sp, #0x20]
str r0, [r4, #0x10]
add r0, r6, #0
bl MOD14_021DDD50
mov r3, #0xda
str r0, [r4, #0x14]
mov r0, #0xa
lsl r3, r3, #2
str r0, [sp]
mov r0, #0x12
mov r1, #7
mov r2, #1
add r3, r4, r3
bl FUN_02006BDC
mov r3, #0x37
lsl r3, r3, #4
str r0, [r4, r3]
mov r0, #0xa
sub r3, r3, #4
str r0, [sp]
mov r0, #0x12
mov r1, #8
mov r2, #1
add r3, r4, r3
bl FUN_02006BDC
mov r1, #0xdd
lsl r1, r1, #2
str r0, [r4, r1]
ldr r0, [sp, #0x24]
mov r2, #0x93
str r0, [r4, #0x6c]
mov r0, #1
mov r1, #0x1a
lsl r2, r2, #2
mov r3, #0xa
bl FUN_0200A86C
str r0, [r4, #0x70]
mov r0, #0x20
mov r1, #0xa
bl FUN_020219F4
str r0, [r4, #0x74]
mov r0, #0xe
mov r1, #0
lsl r0, r0, #6
str r1, [r4, r0]
add sp, #8
str r4, [r5]
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021E50E6:
mov r0, #0
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD14_021E50EC
MOD14_021E50EC: ; 0x021E50EC
push {r4, lr}
add r4, r0, #0
beq _021E5124
mov r0, #0x37
lsl r0, r0, #4
ldr r0, [r4, r0]
bl FreeToHeap
mov r0, #0xdd
lsl r0, r0, #2
ldr r0, [r4, r0]
bl FreeToHeap
ldr r0, [r4, #0x70]
bl FUN_0200A8B8
add r0, r4, #0
bl MOD14_021E5C04
add r0, r4, #0
bl MOD14_021E5474
ldr r0, [r4, #0x74]
bl FUN_02021A20
add r0, r4, #0
bl FreeToHeap
_021E5124:
pop {r4, pc}
.align 2, 0
thumb_func_start MOD14_021E5128
MOD14_021E5128: ; 0x021E5128
push {r4, lr}
sub sp, #0x10
add r4, r0, #0
beq _021E5210
bl MOD14_021E5334
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
mov r0, #1
str r0, [sp, #8]
mov r0, #0xa
str r0, [sp, #0xc]
ldr r2, [r4, #0xc]
mov r0, #0x12
mov r1, #0x6c
mov r3, #5
bl FUN_0200687C
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
mov r0, #1
str r0, [sp, #8]
mov r0, #0xa
str r0, [sp, #0xc]
ldr r2, [r4, #0xc]
mov r0, #0x12
mov r1, #0x69
mov r3, #5
bl FUN_020068C8
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
mov r0, #1
str r0, [sp, #8]
mov r0, #0xa
str r0, [sp, #0xc]
ldr r2, [r4, #0xc]
mov r0, #0x12
mov r1, #0x6a
mov r3, #6
bl FUN_020068C8
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
mov r0, #1
str r0, [sp, #8]
mov r0, #0xa
str r0, [sp, #0xc]
ldr r2, [r4, #0xc]
mov r0, #0x12
mov r1, #0x6b
mov r3, #7
bl FUN_020068C8
mov r0, #0x80
str r0, [sp]
mov r0, #0xa
str r0, [sp, #4]
mov r0, #0x12
mov r1, #0x6d
mov r2, #4
mov r3, #0
bl FUN_02006930
bl FUN_0206B888
mov r3, #0x80
add r1, r0, #0
str r3, [sp]
mov r0, #0xa
str r0, [sp, #4]
mov r0, #0x13
mov r2, #5
bl FUN_02006930
mov r0, #4
mov r1, #0x20
mov r2, #0
mov r3, #0xa
bl FUN_02017F18
mov r2, #0
str r2, [sp]
mov r0, #0x20
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x11
str r0, [sp, #0xc]
ldr r0, [r4, #0xc]
mov r1, #4
add r3, r2, #0
bl FUN_02018540
add r0, r4, #0
bl MOD14_021E539C
add r0, r4, #0
bl MOD14_021E5400
ldr r0, [r4, #8]
bl MOD14_021DC560
mov r1, #0xde
lsl r1, r1, #2
str r0, [r4, r1]
ldr r0, [r4, #0xc]
mov r1, #4
bl FUN_02017CD0
add r0, r4, #0
bl MOD14_021E5A08
_021E5210:
add sp, #0x10
pop {r4, pc}
thumb_func_start MOD14_021E5214
MOD14_021E5214: ; 0x021E5214
push {r4, r5, r6, lr}
add r5, r0, #0
add r6, r1, #0
cmp r5, #0
beq _021E5268
ldr r0, [r5, #8]
bl MOD14_021DC558
add r4, r0, #0
cmp r6, #0
beq _021E5248
mov r0, #1
eor r0, r4
lsl r0, r0, #2
add r0, r5, r0
ldr r0, [r0, #0x28]
mov r1, #2
bl FUN_02020130
lsl r0, r4, #2
add r0, r5, r0
ldr r0, [r0, #0x28]
mov r1, #0
bl FUN_02020130
b _021E5262
_021E5248:
mov r1, #1
eor r0, r1
lsl r0, r0, #2
add r0, r5, r0
ldr r0, [r0, #0x28]
bl FUN_02020130
lsl r0, r4, #2
add r0, r5, r0
ldr r0, [r0, #0x28]
mov r1, #0
bl FUN_02020130
_021E5262:
add r0, r5, #0
bl MOD14_021E5334
_021E5268:
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start MOD14_021E526C
MOD14_021E526C: ; 0x021E526C
push {r3, r4, r5, lr}
add r5, r0, #0
bl MOD14_021E5C68
cmp r5, #0
beq _021E52B8
ldr r0, [r5, #8]
bl MOD14_021DC558
add r4, r0, #0
add r0, r5, #0
add r1, r4, #0
bl MOD14_021E5CFC
ldr r0, [r5, #8]
bl MOD14_021DC560
cmp r0, #0
beq _021E529C
cmp r0, #1
beq _021E52A6
cmp r0, #2
beq _021E52B0
pop {r3, r4, r5, pc}
_021E529C:
add r0, r5, #0
add r1, r4, #0
bl MOD14_021E57E4
pop {r3, r4, r5, pc}
_021E52A6:
add r0, r5, #0
add r1, r4, #0
bl MOD14_021E55B0
pop {r3, r4, r5, pc}
_021E52B0:
add r0, r5, #0
add r1, r4, #0
bl MOD14_021E5908
_021E52B8:
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_start MOD14_021E52BC
MOD14_021E52BC: ; 0x021E52BC
mov r0, #1
bx lr
thumb_func_start MOD14_021E52C0
MOD14_021E52C0: ; 0x021E52C0
push {r4, lr}
add r4, r0, #0
beq _021E52DE
mov r1, #0xdf
mov r2, #0
lsl r1, r1, #2
str r2, [r4, r1]
sub r1, r1, #4
ldr r1, [r4, r1]
bl MOD14_021E5504
ldr r0, [r4, #0xc]
mov r1, #4
bl FUN_02017CD0
_021E52DE:
pop {r4, pc}
thumb_func_start MOD14_021E52E0
MOD14_021E52E0: ; 0x021E52E0
push {r4, lr}
add r4, r0, #0
beq _021E5330
mov r1, #0xdf
lsl r1, r1, #2
ldr r1, [r4, r1]
cmp r1, #0
beq _021E52FA
cmp r1, #1
beq _021E530A
cmp r1, #2
beq _021E5328
b _021E532C
_021E52FA:
bl MOD14_021E539C
mov r0, #0xdf
lsl r0, r0, #2
ldr r1, [r4, r0]
add r1, r1, #1
str r1, [r4, r0]
b _021E532C
_021E530A:
bl MOD14_021E5718
add r0, r4, #0
bl MOD14_021E549C
ldr r0, [r4, #0xc]
mov r1, #4
bl FUN_02017CD0
mov r0, #0xdf
lsl r0, r0, #2
ldr r1, [r4, r0]
add r1, r1, #1
str r1, [r4, r0]
b _021E532C
_021E5328:
mov r0, #1
pop {r4, pc}
_021E532C:
mov r0, #0
pop {r4, pc}
_021E5330:
mov r0, #1
pop {r4, pc}
thumb_func_start MOD14_021E5334
MOD14_021E5334: ; 0x021E5334
push {r4, r5, lr}
sub sp, #0x1c
add r5, r0, #0
ldr r0, [r5, #8]
bl MOD14_021DC558
cmp r0, #0
bne _021E5348
mov r0, #0xda
b _021E534A
_021E5348:
mov r0, #0xdb
_021E534A:
lsl r0, r0, #2
ldr r4, [r5, r0]
mov r0, #6
str r0, [sp]
mov r1, #0x20
add r0, r4, #0
mov r2, #0
str r1, [sp, #4]
add r0, #0xc
str r0, [sp, #8]
str r2, [sp, #0xc]
str r2, [sp, #0x10]
str r1, [sp, #0x14]
str r1, [sp, #0x18]
ldr r0, [r5, #0xc]
mov r1, #2
add r3, r2, #0
bl FUN_02018170
mov r0, #6
str r0, [sp]
mov r0, #0x20
str r0, [sp, #4]
add r4, #0xc
str r4, [sp, #8]
mov r2, #0x1a
str r2, [sp, #0xc]
mov r3, #0
str r3, [sp, #0x10]
str r0, [sp, #0x14]
str r0, [sp, #0x18]
ldr r0, [r5, #0xc]
mov r1, #2
bl FUN_02018170
ldr r0, [r5, #0xc]
mov r1, #2
bl FUN_02017CD0
add sp, #0x1c
pop {r4, r5, pc}
thumb_func_start MOD14_021E539C
MOD14_021E539C: ; 0x021E539C
push {r3, lr}
ldr r0, [r0, #8]
bl MOD14_021DC560
cmp r0, #0
beq _021E53B2
cmp r0, #1
beq _021E53CC
cmp r0, #2
beq _021E53E6
pop {r3, pc}
_021E53B2:
mov r0, #5
mov r1, #1
bl FUN_0201797C
mov r0, #6
mov r1, #0
bl FUN_0201797C
mov r0, #7
mov r1, #0
bl FUN_0201797C
pop {r3, pc}
_021E53CC:
mov r0, #6
mov r1, #1
bl FUN_0201797C
mov r0, #5
mov r1, #0
bl FUN_0201797C
mov r0, #7
mov r1, #0
bl FUN_0201797C
pop {r3, pc}
_021E53E6:
mov r0, #7
mov r1, #1
bl FUN_0201797C
mov r0, #5
mov r1, #0
bl FUN_0201797C
mov r0, #6
mov r1, #0
bl FUN_0201797C
pop {r3, pc}
thumb_func_start MOD14_021E5400
MOD14_021E5400: ; 0x021E5400
push {r3, r4, r5, r6, r7, lr}
add r7, r0, #0
mov r1, #0
add r2, r7, #0
add r5, r1, #0
_021E540A:
add r0, r2, #0
add r0, #0x84
add r1, r1, #1
add r2, #0x10
str r5, [r0]
cmp r1, #7
blt _021E540A
add r4, r7, #0
ldr r6, _021E5470 ; =0x021E6940
add r4, #0x78
_021E541E:
ldr r0, [r7, #0xc]
add r1, r4, #0
add r2, r6, #0
bl FUN_02019150
add r0, r4, #0
bl FUN_02019270
add r5, r5, #1
add r6, #8
add r4, #0x10
cmp r5, #3
blo _021E541E
add r0, r7, #0
bl MOD14_021E5718
add r0, r7, #0
add r0, #0x78
mov r1, #0
bl FUN_02019620
add r0, r7, #0
add r0, #0x88
mov r1, #0
bl FUN_02019620
add r4, r7, #0
mov r5, #0
add r4, #0x78
_021E5458:
add r0, r4, #0
bl FUN_02019548
add r5, r5, #1
add r4, #0x10
cmp r5, #3
blo _021E5458
add r0, r7, #0
bl MOD14_021E549C
pop {r3, r4, r5, r6, r7, pc}
nop
_021E5470: .word 0x021E6940
thumb_func_start MOD14_021E5474
MOD14_021E5474: ; 0x021E5474
push {r4, r5, r6, lr}
add r5, r0, #0
add r4, r5, #0
mov r6, #0
add r4, #0x78
_021E547E:
add r0, r5, #0
add r0, #0x84
ldr r0, [r0]
cmp r0, #0
beq _021E548E
add r0, r4, #0
bl FUN_02019178
_021E548E:
add r6, r6, #1
add r5, #0x10
add r4, #0x10
cmp r6, #7
blt _021E547E
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start MOD14_021E549C
MOD14_021E549C: ; 0x021E549C
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r0, [r5, #8]
bl MOD14_021DC560
add r4, r0, #0
ldr r0, [r5, #8]
bl MOD14_021DC560
cmp r0, #0
beq _021E54BC
cmp r0, #1
beq _021E54D4
cmp r0, #2
beq _021E54E6
b _021E54FC
_021E54BC:
add r0, r5, #0
bl MOD14_021E5540
add r0, r5, #0
mov r1, #0
bl MOD14_021E57E4
add r0, r5, #0
mov r1, #1
bl MOD14_021E57E4
b _021E54FC
_021E54D4:
add r0, r5, #0
mov r1, #0
bl MOD14_021E55B0
add r0, r5, #0
mov r1, #1
bl MOD14_021E55B0
b _021E54FC
_021E54E6:
add r0, r5, #0
bl MOD14_021E56A8
add r0, r5, #0
mov r1, #0
bl MOD14_021E5908
add r0, r5, #0
mov r1, #1
bl MOD14_021E5908
_021E54FC:
mov r0, #0xde
lsl r0, r0, #2
str r4, [r5, r0]
pop {r3, r4, r5, pc}
thumb_func_start MOD14_021E5504
MOD14_021E5504: ; 0x021E5504
push {r4, lr}
add r4, r0, #0
cmp r1, #0
beq _021E5516
cmp r1, #1
beq _021E5522
cmp r1, #2
beq _021E5532
pop {r4, pc}
_021E5516:
bl MOD14_021E5578
add r0, r4, #0
bl MOD14_021E57CC
pop {r4, pc}
_021E5522:
mov r1, #0
bl MOD14_021E5688
add r0, r4, #0
mov r1, #1
bl MOD14_021E5688
pop {r4, pc}
_021E5532:
bl MOD14_021E56E0
add r0, r4, #0
bl MOD14_021E57CC
pop {r4, pc}
.align 2, 0
thumb_func_start MOD14_021E5540
MOD14_021E5540: ; 0x021E5540
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
ldr r7, _021E5574 ; =0x021E6930
str r0, [sp]
mov r6, #0
add r5, #0x78
_021E554C:
add r0, r6, #3
lsl r4, r0, #4
ldr r0, [sp]
add r1, r5, r4
ldr r0, [r0, #0xc]
add r2, r7, #0
bl FUN_02019150
add r0, r5, r4
bl FUN_02019270
add r0, r5, r4
mov r1, #0
bl FUN_02019620
add r6, r6, #1
add r7, #8
cmp r6, #2
blo _021E554C
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_021E5574: .word 0x021E6930
thumb_func_start MOD14_021E5578
MOD14_021E5578: ; 0x021E5578
push {r3, r4, r5, r6, r7, lr}
add r4, r0, #0
add r0, #0x78
add r5, r0, #0
mov r6, #3
add r4, #0x30
add r5, #0x30
mov r7, #0
_021E5588:
add r0, r4, #0
add r0, #0x84
ldr r0, [r0]
cmp r0, #0
beq _021E55A4
add r0, r5, #0
bl FUN_020192B8
add r0, r5, #0
bl FUN_02019178
add r0, r4, #0
add r0, #0x84
str r7, [r0]
_021E55A4:
add r6, r6, #1
add r4, #0x10
add r5, #0x10
cmp r6, #4
ble _021E5588
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD14_021E55B0
MOD14_021E55B0: ; 0x021E55B0
push {r4, r5, r6, r7, lr}
sub sp, #0x14
add r7, r0, #0
ldr r0, [r7, #8]
str r1, [sp]
bl MOD14_021DC568
add r4, r0, #0
ldr r0, [r7, #8]
bl MOD14_021DC3F0
add r6, r0, #0
ldr r0, [r7, #8]
bl MOD14_021DC558
ldr r1, [sp]
cmp r1, r0
bne _021E55D8
mov r5, #1
b _021E55DA
_021E55D8:
mov r5, #0
_021E55DA:
ldr r0, [r7, #8]
ldr r1, [sp]
bl MOD14_021DC574
cmp r6, #1
bne _021E55EA
cmp r5, #1
beq _021E55F2
_021E55EA:
cmp r5, #0
bne _021E5676
cmp r0, #1
bne _021E5676
_021E55F2:
ldrb r0, [r4, #6]
cmp r0, #0
bne _021E5676
ldr r1, [sp]
mov r0, #0
str r0, [sp, #4]
str r0, [sp, #0x10]
mov r0, #0x14
add r2, r1, #0
mul r2, r0
add r5, r7, r2
mov r2, #1
eor r1, r2
mul r0, r1
ldr r6, _021E5684 ; =0x021E6958
add r4, #0x16
add r7, r7, r0
_021E5614:
ldr r3, [r6]
ldr r0, [r6, #8]
ldrh r2, [r4]
sub r1, r0, r3
asr r0, r1, #7
lsr r0, r0, #0x18
add r0, r1, r0
asr r0, r0, #8
mul r0, r2
add r0, r3, r0
str r0, [sp, #8]
ldr r3, [r6, #4]
ldr r0, [r6, #0xc]
ldrh r2, [r4]
sub r1, r0, r3
asr r0, r1, #7
lsr r0, r0, #0x18
add r0, r1, r0
asr r0, r0, #8
mul r0, r2
add r0, r3, r0
str r0, [sp, #0xc]
ldr r0, [r5, #0x34]
add r1, sp, #8
bl FUN_02020044
ldr r0, [r5, #0x34]
mov r1, #0
bl MOD14_021DDE24
ldr r0, [r7, #0x34]
mov r1, #1
bl MOD14_021DDE24
ldr r0, [r5, #0x34]
mov r1, #1
bl FUN_020200A0
ldr r0, [sp, #4]
add r4, r4, #2
add r0, r0, #1
add r6, #0x10
add r5, r5, #4
add r7, r7, #4
str r0, [sp, #4]
cmp r0, #5
blt _021E5614
add sp, #0x14
pop {r4, r5, r6, r7, pc}
_021E5676:
ldr r1, [sp]
add r0, r7, #0
bl MOD14_021E5688
add sp, #0x14
pop {r4, r5, r6, r7, pc}
nop
_021E5684: .word 0x021E6958
thumb_func_start MOD14_021E5688
MOD14_021E5688: ; 0x021E5688
push {r4, r5, r6, lr}
mov r2, #0x14
mov r4, #0
mul r2, r1
add r5, r0, r2
add r6, r4, #0
_021E5694:
ldr r0, [r5, #0x34]
add r1, r6, #0
bl FUN_020200A0
add r4, r4, #1
add r5, r5, #4
cmp r4, #5
blt _021E5694
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start MOD14_021E56A8
MOD14_021E56A8: ; 0x021E56A8
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
ldr r7, _021E56DC ; =0x021E6920
str r0, [sp]
mov r6, #0
add r5, #0x78
_021E56B4:
add r0, r6, #5
lsl r4, r0, #4
ldr r0, [sp]
add r1, r5, r4
ldr r0, [r0, #0xc]
add r2, r7, #0
bl FUN_02019150
add r0, r5, r4
bl FUN_02019270
add r0, r5, r4
mov r1, #0
bl FUN_02019620
add r6, r6, #1
add r7, #8
cmp r6, #2
blo _021E56B4
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_021E56DC: .word 0x021E6920
thumb_func_start MOD14_021E56E0
MOD14_021E56E0: ; 0x021E56E0
push {r3, r4, r5, r6, r7, lr}
add r4, r0, #0
add r0, #0x78
add r5, r0, #0
mov r6, #5
add r4, #0x50
add r5, #0x50
mov r7, #0
_021E56F0:
add r0, r4, #0
add r0, #0x84
ldr r0, [r0]
cmp r0, #0
beq _021E570C
add r0, r5, #0
bl FUN_020192B8
add r0, r5, #0
bl FUN_02019178
add r0, r4, #0
add r0, #0x84
str r7, [r0]
_021E570C:
add r6, r6, #1
add r4, #0x10
add r5, #0x10
cmp r6, #6
ble _021E56F0
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD14_021E5718
MOD14_021E5718: ; 0x021E5718
push {r4, r5, r6, r7, lr}
sub sp, #0x14
add r5, r0, #0
add r7, r5, #0
add r7, #0x98
add r0, r7, #0
mov r1, #0
bl FUN_02019620
ldr r0, [r5, #8]
bl MOD14_021DC560
cmp r0, #0
beq _021E573A
cmp r0, #2
beq _021E5786
b _021E57B8
_021E573A:
mov r0, #0
ldr r6, _021E57C4 ; =0x021E6910
str r0, [sp, #0x10]
add r4, r0, #0
_021E5742:
ldrh r1, [r6]
ldr r0, [r5, #0x6c]
ldr r2, [r5, #0x74]
bl FUN_0200A8E0
mov r0, #0
ldr r1, [r5, #0x74]
add r2, r0, #0
bl FUN_02002E14
ldrb r1, [r7, #7]
lsl r1, r1, #3
sub r0, r1, r0
lsr r3, r0, #1
str r4, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, _021E57C8 ; =0x000F0E00
mov r1, #0
str r0, [sp, #8]
mov r0, #0
str r0, [sp, #0xc]
ldr r2, [r5, #0x74]
add r0, r7, #0
bl FUN_0201BDE0
ldr r0, [sp, #0x10]
add r6, r6, #2
add r0, r0, #1
add r4, #0x10
str r0, [sp, #0x10]
cmp r0, #8
blo _021E5742
b _021E57B8
_021E5786:
ldr r0, [r5, #0x6c]
ldr r2, [r5, #0x74]
mov r1, #0x2b
bl FUN_0200A8E0
mov r0, #0
ldr r1, [r5, #0x74]
add r2, r0, #0
bl FUN_02002E14
ldrb r1, [r7, #7]
lsl r1, r1, #3
sub r0, r1, r0
mov r1, #0
lsr r3, r0, #1
str r1, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, _021E57C8 ; =0x000F0E00
str r0, [sp, #8]
str r1, [sp, #0xc]
ldr r2, [r5, #0x74]
add r0, r7, #0
bl FUN_0201BDE0
_021E57B8:
add r0, r7, #0
bl FUN_02019548
add sp, #0x14
pop {r4, r5, r6, r7, pc}
nop
_021E57C4: .word 0x021E6910
_021E57C8: .word 0x000F0E00
thumb_func_start MOD14_021E57CC
MOD14_021E57CC: ; 0x021E57CC
push {r4, lr}
add r4, r0, #0
add r4, #0x98
add r0, r4, #0
mov r1, #0
bl FUN_02019620
add r0, r4, #0
bl FUN_02019548
pop {r4, pc}
.align 2, 0
thumb_func_start MOD14_021E57E4
MOD14_021E57E4: ; 0x021E57E4
push {r4, r5, r6, r7, lr}
sub sp, #0x1c
add r5, r0, #0
add r0, r1, #0
add r2, r5, #0
add r0, r0, #3
add r2, #0x78
lsl r0, r0, #4
add r4, r2, r0
ldr r0, [r5, #8]
str r1, [sp, #0x10]
bl MOD14_021DC568
add r6, r0, #0
ldr r0, [r5, #8]
bl MOD14_021DC3F0
str r0, [sp, #0x18]
ldr r0, [r5, #8]
bl MOD14_021DC558
ldr r1, [sp, #0x10]
cmp r1, r0
bne _021E5818
mov r7, #1
b _021E581A
_021E5818:
mov r7, #0
_021E581A:
ldr r0, [r5, #8]
ldr r1, [sp, #0x10]
bl MOD14_021DC574
str r0, [sp, #0x14]
add r0, r4, #0
mov r1, #0
bl FUN_02019620
ldr r0, [sp, #0x18]
cmp r0, #1
bne _021E5836
cmp r7, #1
beq _021E5840
_021E5836:
cmp r7, #0
bne _021E58FA
ldr r0, [sp, #0x14]
cmp r0, #1
bne _021E58FA
_021E5840:
ldrb r0, [r6, #6]
cmp r0, #0
bne _021E58BA
mov r0, #0
ldr r1, [r6, #0x2c]
add r2, r0, #0
bl FUN_02002E14
ldrb r1, [r4, #7]
lsl r1, r1, #3
sub r0, r1, r0
mov r1, #0
lsr r3, r0, #1
str r1, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, _021E5904 ; =0x000F0E00
str r0, [sp, #8]
str r1, [sp, #0xc]
ldr r2, [r6, #0x2c]
add r0, r4, #0
bl FUN_0201BDE0
mov r7, #0
add r6, #8
_021E5872:
mov r0, #1
str r0, [sp]
ldrh r1, [r6]
ldr r0, [r5, #0x74]
mov r2, #3
mov r3, #0
bl FUN_02021B04
mov r0, #0
ldr r1, [r5, #0x74]
add r2, r0, #0
bl FUN_02002E14
ldrb r1, [r4, #7]
lsl r1, r1, #3
sub r0, r1, r0
lsr r3, r0, #1
add r0, r7, #1
lsl r0, r0, #4
str r0, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, _021E5904 ; =0x000F0E00
mov r1, #0
str r0, [sp, #8]
mov r0, #0
str r0, [sp, #0xc]
ldr r2, [r5, #0x74]
add r0, r4, #0
bl FUN_0201BDE0
add r7, r7, #1
add r6, r6, #2
cmp r7, #7
blt _021E5872
b _021E58FA
_021E58BA:
ldr r0, [r5, #0x6c]
ldr r2, [r5, #0x74]
mov r1, #0x2c
bl FUN_0200A8E0
mov r7, #0
add r6, r7, #0
_021E58C8:
mov r0, #0
ldr r1, [r5, #0x74]
add r2, r0, #0
bl FUN_02002E14
ldrb r1, [r4, #7]
lsl r1, r1, #3
sub r0, r1, r0
lsr r3, r0, #1
str r6, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, _021E5904 ; =0x000F0E00
mov r1, #0
str r0, [sp, #8]
mov r0, #0
str r0, [sp, #0xc]
ldr r2, [r5, #0x74]
add r0, r4, #0
bl FUN_0201BDE0
add r7, r7, #1
add r6, #0x10
cmp r7, #8
blt _021E58C8
_021E58FA:
add r0, r4, #0
bl FUN_02019548
add sp, #0x1c
pop {r4, r5, r6, r7, pc}
.align 2, 0
_021E5904: .word 0x000F0E00
thumb_func_start MOD14_021E5908
MOD14_021E5908: ; 0x021E5908
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x20
add r5, r0, #0
add r0, r1, #0
add r2, r5, #0
add r0, r0, #5
add r2, #0x78
lsl r0, r0, #4
add r4, r2, r0
ldr r0, [r5, #8]
str r1, [sp, #0x10]
bl MOD14_021DC568
add r6, r0, #0
ldr r0, [r5, #8]
bl MOD14_021DC3F0
str r0, [sp, #0x1c]
ldr r0, [r5, #8]
bl MOD14_021DC558
ldr r1, [sp, #0x10]
cmp r1, r0
bne _021E593C
mov r7, #1
b _021E593E
_021E593C:
mov r7, #0
_021E593E:
ldr r0, [r5, #8]
ldr r1, [sp, #0x10]
bl MOD14_021DC574
str r0, [sp, #0x18]
add r0, r4, #0
mov r1, #0
bl FUN_02019620
ldr r0, [sp, #0x1c]
cmp r0, #1
bne _021E595A
cmp r7, #1
beq _021E5964
_021E595A:
cmp r7, #0
bne _021E59F8
ldr r0, [sp, #0x18]
cmp r0, #1
bne _021E59F8
_021E5964:
ldrb r0, [r6, #6]
cmp r0, #0
bne _021E59B8
mov r0, #0
str r0, [sp, #0x14]
mov r7, #4
_021E5970:
ldrh r1, [r6, #0x20]
cmp r1, #0
beq _021E59A8
ldr r0, [r5, #0x70]
ldr r2, [r5, #0x74]
bl FUN_0200A8E0
mov r0, #0
ldr r1, [r5, #0x74]
add r2, r0, #0
bl FUN_02002E14
ldrb r1, [r4, #7]
lsl r1, r1, #3
sub r0, r1, r0
lsr r3, r0, #1
str r7, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, _021E5A04 ; =0x000F0E00
mov r1, #0
str r0, [sp, #8]
mov r0, #0
str r0, [sp, #0xc]
ldr r2, [r5, #0x74]
add r0, r4, #0
bl FUN_0201BDE0
_021E59A8:
ldr r0, [sp, #0x14]
add r6, r6, #2
add r0, r0, #1
add r7, #0x18
str r0, [sp, #0x14]
cmp r0, #4
blt _021E5970
b _021E59F8
_021E59B8:
ldr r0, [r5, #0x6c]
ldr r2, [r5, #0x74]
mov r1, #0x2c
bl FUN_0200A8E0
mov r7, #0
mov r6, #4
_021E59C6:
mov r0, #0
ldr r1, [r5, #0x74]
add r2, r0, #0
bl FUN_02002E14
ldrb r1, [r4, #7]
lsl r1, r1, #3
sub r0, r1, r0
lsr r3, r0, #1
str r6, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, _021E5A04 ; =0x000F0E00
mov r1, #0
str r0, [sp, #8]
mov r0, #0
str r0, [sp, #0xc]
ldr r2, [r5, #0x74]
add r0, r4, #0
bl FUN_0201BDE0
add r7, r7, #1
add r6, #0x18
cmp r7, #4
blt _021E59C6
_021E59F8:
add r0, r4, #0
bl FUN_02019548
add sp, #0x20
pop {r3, r4, r5, r6, r7, pc}
nop
_021E5A04: .word 0x000F0E00
thumb_func_start MOD14_021E5A08
MOD14_021E5A08: ; 0x021E5A08
push {r4, r5, r6, r7, lr}
sub sp, #0x6c
add r7, r0, #0
mov r0, #0xa
add r3, r7, #0
str r0, [sp]
mov r0, #0x12
mov r1, #0x6f
mov r2, #1
add r3, #0x60
bl FUN_02006C30
str r0, [r7, #0x5c]
mov r0, #0xa
add r3, r7, #0
str r0, [sp]
mov r0, #0x12
mov r1, #0x70
mov r2, #1
add r3, #0x68
bl FUN_02006C5C
str r0, [r7, #0x64]
mov r0, #0x60
str r0, [sp]
mov r0, #0xa
str r0, [sp, #4]
mov r0, #0x12
mov r1, #0x71
mov r2, #5
mov r3, #0
bl FUN_02006930
add r0, sp, #0x48
bl FUN_020B1A24
mov r3, #0
str r3, [sp]
mov r0, #2
str r0, [sp, #4]
str r3, [sp, #8]
mov r0, #0xa
str r0, [sp, #0xc]
add r0, sp, #0x48
str r0, [sp, #0x10]
mov r0, #0x12
mov r1, #0x6e
mov r2, #1
bl FUN_02006AE4
str r0, [sp, #0x20]
ldr r0, [r7, #4]
bl MOD14_021DDD48
add r2, r0, #0
ldr r0, [r7, #0x68]
add r1, sp, #0x48
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
ldr r3, [r7, #0x60]
add r0, sp, #0x24
bl MOD14_021DDDB4
ldr r0, _021E5B5C ; =0x021E6900
mov r4, #0
str r0, [sp, #0x1c]
str r7, [sp, #0x18]
str r7, [sp, #0x14]
_021E5A92:
mov r0, #0
str r0, [sp]
mov r0, #2
str r0, [sp, #4]
ldr r2, [sp, #0x1c]
mov r3, #0
ldrsh r2, [r2, r3]
ldr r3, [sp, #0x1c]
mov r5, #2
ldrsh r3, [r3, r5]
ldr r0, [r7, #0x10]
add r1, sp, #0x24
bl MOD14_021DDDD4
ldr r1, [sp, #0x18]
str r0, [r1, #0x28]
add r1, r4, #0
bl FUN_02020248
ldr r0, [sp, #0x18]
mov r1, #0
ldr r0, [r0, #0x28]
bl FUN_02020130
ldr r5, [sp, #0x14]
mov r6, #0
_021E5AC6:
mov r0, #0
str r0, [sp]
mov r0, #2
str r0, [sp, #4]
mov r2, #0
ldr r0, [r7, #0x10]
add r1, sp, #0x24
add r3, r2, #0
bl MOD14_021DDDD4
str r0, [r5, #0x34]
add r1, r4, #5
bl FUN_02020130
ldr r0, [r5, #0x34]
add r1, r4, #0
bl FUN_02020248
ldr r0, [r5, #0x34]
mov r1, #0
bl FUN_020200A0
add r6, r6, #1
add r5, r5, #4
cmp r6, #5
blo _021E5AC6
ldr r0, [sp, #0x1c]
add r4, r4, #1
add r0, r0, #4
str r0, [sp, #0x1c]
ldr r0, [sp, #0x18]
add r0, r0, #4
str r0, [sp, #0x18]
ldr r0, [sp, #0x14]
add r0, #0x14
str r0, [sp, #0x14]
cmp r4, #2
blo _021E5A92
ldr r0, [r7, #0x2c]
mov r1, #1
bl FUN_02020100
mov r0, #0
str r0, [sp]
mov r0, #2
str r0, [sp, #4]
mov r3, #0x23
ldr r0, [r7, #0x10]
add r1, sp, #0x24
mov r2, #0x80
lsl r3, r3, #4
bl MOD14_021DDDD4
str r0, [r7, #0x30]
mov r1, #3
bl FUN_02020130
ldr r0, [r7, #0x30]
mov r1, #2
bl FUN_02020248
ldr r0, _021E5B60 ; =MOD14_021E5D64
add r1, r7, #0
mov r2, #1
bl FUN_0200CA44
mov r1, #0xe
lsl r1, r1, #6
str r0, [r7, r1]
ldr r1, [sp, #0x20]
add r0, r7, #0
bl MOD14_021E5B64
add sp, #0x6c
pop {r4, r5, r6, r7, pc}
.align 2, 0
_021E5B5C: .word 0x021E6900
_021E5B60: .word MOD14_021E5D64
thumb_func_start MOD14_021E5B64
MOD14_021E5B64: ; 0x021E5B64
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x58
str r0, [sp, #8]
ldr r0, [r0, #4]
str r1, [sp, #0xc]
bl MOD14_021DDD48
add r5, r0, #0
ldr r0, [sp, #8]
ldr r0, [r0, #0x14]
bl MOD14_021E0C74
add r4, r0, #0
ldr r0, [sp, #8]
ldr r0, [r0, #0x14]
bl MOD14_021E0C78
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
add r0, sp, #0x10
add r1, sp, #0x34
add r2, r5, #0
add r3, r4, #0
bl MOD14_021DDDB4
mov r7, #0
ldr r4, [sp, #8]
ldr r5, _021E5BF8 ; =0x021E6908
add r6, r7, #0
_021E5BA0:
ldr r0, [sp, #0xc]
add r0, r0, r6
str r0, [r4, #0x18]
add r0, sp, #0x34
bl FUN_020B1A24
ldr r2, [r4, #0x18]
add r0, sp, #0x34
mov r1, #2
bl FUN_020B1A1C
ldr r0, _021E5BFC ; =0x04001000
mov r2, #0
ldr r1, [r0]
ldr r0, _021E5C00 ; =0x00300010
mov r3, #2
and r0, r1
str r0, [sp, #0x54]
mov r0, #1
sub r0, r0, r7
str r0, [sp]
mov r0, #2
str r0, [sp, #4]
ldr r0, [sp, #8]
ldrsh r2, [r5, r2]
ldrsh r3, [r5, r3]
ldr r0, [r0, #0x10]
add r1, sp, #0x10
bl MOD14_021DDDD4
mov r1, #0
str r0, [r4, #0x20]
bl FUN_020200A0
mov r0, #2
lsl r0, r0, #8
add r7, r7, #1
add r6, r6, r0
add r4, r4, #4
add r5, r5, #4
cmp r7, #2
blt _021E5BA0
add sp, #0x58
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_021E5BF8: .word 0x021E6908
_021E5BFC: .word 0x04001000
_021E5C00: .word 0x00300010
thumb_func_start MOD14_021E5C04
MOD14_021E5C04: ; 0x021E5C04
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
mov r1, #0xe
lsl r1, r1, #6
str r0, [sp]
ldr r0, [r0, r1]
cmp r0, #0
beq _021E5C18
bl FUN_0200CAB4
_021E5C18:
ldr r6, [sp]
mov r0, #0
str r0, [sp, #4]
add r7, r6, #0
_021E5C20:
ldr r0, [r6, #0x20]
bl FUN_0201FFC8
ldr r0, [r6, #0x28]
bl FUN_0201FFC8
mov r4, #0
add r5, r7, #0
_021E5C30:
ldr r0, [r5, #0x34]
bl FUN_0201FFC8
add r4, r4, #1
add r5, r5, #4
cmp r4, #5
blt _021E5C30
ldr r0, [sp, #4]
add r6, r6, #4
add r0, r0, #1
add r7, #0x14
str r0, [sp, #4]
cmp r0, #2
blt _021E5C20
ldr r0, [sp]
ldr r0, [r0, #0x30]
bl FUN_0201FFC8
ldr r0, [sp]
ldr r0, [r0, #0x5c]
bl FreeToHeap
ldr r0, [sp]
ldr r0, [r0, #0x64]
bl FreeToHeap
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD14_021E5C68
MOD14_021E5C68: ; 0x021E5C68
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
add r5, r0, #0
ldr r0, [r5, #8]
bl MOD14_021DC558
add r4, r0, #0
ldr r0, [r5, #8]
add r1, r4, #0
bl MOD14_021DC568
lsl r7, r4, #2
add r6, r0, #0
add r0, r5, r7
ldr r4, [r0, #0x20]
ldr r0, [r6]
str r0, [sp]
ldr r0, [r5, #8]
bl MOD14_021DC3F0
cmp r0, #0
beq _021E5CF0
ldrh r0, [r6, #4]
ldrb r1, [r6, #7]
ldrb r2, [r6, #6]
bl FUN_0206B7BC
add r6, r0, #0
ldr r0, [sp]
bl FUN_0206B688
add r2, r0, #0
add r1, r5, #0
mov r3, #0xa
ldr r0, [r5, #0x14]
add r1, #0xe8
lsl r3, r3, #6
bl MOD14_021E0BAC
add r0, r5, #0
add r0, #0xe8
add r1, sp, #4
bl FUN_020B0088
ldr r0, [sp, #4]
mov r1, #2
ldr r0, [r0, #0x14]
lsl r1, r1, #8
bl DC_FlushRange
ldr r0, [sp, #4]
add r1, r5, r7
mov r2, #2
ldr r0, [r0, #0x14]
ldr r1, [r1, #0x18]
lsl r2, r2, #8
bl GXS_LoadOBJ
add r0, r4, #0
add r1, r6, #4
bl FUN_02020248
add r0, r4, #0
mov r1, #1
bl FUN_020200A0
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
_021E5CF0:
add r0, r4, #0
mov r1, #0
bl FUN_020200A0
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD14_021E5CFC
MOD14_021E5CFC: ; 0x021E5CFC
push {r4, r5, r6, lr}
sub sp, #0x10
add r5, r0, #0
ldr r0, [r5, #8]
bl MOD14_021DC558
add r6, r0, #0
add r1, r5, #0
add r1, #0x78
lsl r0, r6, #4
add r4, r1, r0
add r0, r4, #0
mov r1, #0
bl FUN_02019620
ldr r0, [r5, #8]
bl MOD14_021DC3F0
cmp r0, #0
beq _021E5D56
ldr r0, [r5, #8]
add r1, r6, #0
bl MOD14_021DC568
add r5, r0, #0
mov r0, #0
ldr r1, [r5, #0x28]
add r2, r0, #0
bl FUN_02002E14
ldrb r1, [r4, #7]
lsl r1, r1, #3
sub r0, r1, r0
mov r1, #0
lsr r3, r0, #1
str r1, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, _021E5D60 ; =0x000F0E00
str r0, [sp, #8]
str r1, [sp, #0xc]
ldr r2, [r5, #0x28]
add r0, r4, #0
bl FUN_0201BDE0
_021E5D56:
add r0, r4, #0
bl FUN_02019548
add sp, #0x10
pop {r4, r5, r6, pc}
.align 2, 0
_021E5D60: .word 0x000F0E00
thumb_func_start MOD14_021E5D64
MOD14_021E5D64: ; 0x021E5D64
push {r3, r4, r5, lr}
add r5, r1, #0
ldr r0, [r5, #8]
bl MOD14_021DC57C
add r4, r0, #0
ldr r0, [r5, #0x30]
bl FUN_020201DC
cmp r0, #3
bne _021E5D88
cmp r4, #0
beq _021E5D94
ldr r0, [r5, #0x30]
mov r1, #4
bl FUN_02020130
pop {r3, r4, r5, pc}
_021E5D88:
cmp r4, #0
bne _021E5D94
ldr r0, [r5, #0x30]
mov r1, #3
bl FUN_02020130
_021E5D94:
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_start MOD14_021E5D98
MOD14_021E5D98: ; 0x021E5D98
push {r3, r4, r5, lr}
add r4, r0, #0
add r4, #0x74
add r0, r4, #0
add r5, r1, #0
bl MOD14_021E612C
add r0, r4, #0
mov r1, #0x36
bl MOD14_021E613C
add r0, r4, #0
mov r1, #0x37
bl MOD14_021E613C
add r0, r4, #0
add r0, #0x20
strb r5, [r0]
mov r0, #0
add r4, #0x23
strb r0, [r4]
pop {r3, r4, r5, pc}
thumb_func_start MOD14_021E5DC4
MOD14_021E5DC4: ; 0x021E5DC4
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r5, #0
add r4, #0x74
add r0, r4, #0
bl MOD14_021E612C
add r0, r4, #0
mov r1, #1
add r0, #0x23
strb r1, [r0]
add r0, r5, #0
bl MOD14_021DC3C4
cmp r0, #4
bhi _021E5DFA
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021E5DF0: ; jump table
.short _021E5E70 - _021E5DF0 - 2 ; case 0
.short _021E5E9A - _021E5DF0 - 2 ; case 1
.short _021E5DFA - _021E5DF0 - 2 ; case 2
.short _021E5DFA - _021E5DF0 - 2 ; case 3
.short _021E5EC4 - _021E5DF0 - 2 ; case 4
_021E5DFA:
add r0, r5, #0
bl MOD14_021DC3F4
cmp r0, #2
bne _021E5E1C
add r0, r5, #0
bl MOD14_021DC3F0
cmp r0, #0
beq _021E5E12
mov r1, #0x24
b _021E5E14
_021E5E12:
mov r1, #0x23
_021E5E14:
add r0, r4, #0
bl MOD14_021E613C
b _021E5E24
_021E5E1C:
add r0, r4, #0
mov r1, #0x22
bl MOD14_021E613C
_021E5E24:
add r0, r4, #0
mov r1, #0x25
bl MOD14_021E613C
add r0, r5, #0
bl MOD14_021DC42C
ldrb r0, [r0, #0xf]
cmp r0, #0
bne _021E5E40
add r0, r4, #0
mov r1, #0x28
bl MOD14_021E613C
_021E5E40:
add r0, r5, #0
bl MOD14_021DC3CC
cmp r0, #0
bne _021E5E4E
mov r1, #0x26
b _021E5E50
_021E5E4E:
mov r1, #0x27
_021E5E50:
add r0, r4, #0
bl MOD14_021E613C
add r0, r4, #0
mov r1, #0x29
bl MOD14_021E613C
add r0, r4, #0
mov r1, #0x2a
bl MOD14_021E613C
add r0, r4, #0
mov r1, #0x2b
bl MOD14_021E613C
pop {r3, r4, r5, pc}
_021E5E70:
add r0, r4, #0
mov r1, #0x27
bl MOD14_021E613C
add r0, r4, #0
mov r1, #0x25
bl MOD14_021E613C
add r0, r4, #0
mov r1, #0x29
bl MOD14_021E613C
add r0, r4, #0
mov r1, #0x2a
bl MOD14_021E613C
add r0, r4, #0
mov r1, #0x2b
bl MOD14_021E613C
pop {r3, r4, r5, pc}
_021E5E9A:
add r0, r4, #0
mov r1, #0x26
bl MOD14_021E613C
add r0, r4, #0
mov r1, #0x25
bl MOD14_021E613C
add r0, r4, #0
mov r1, #0x29
bl MOD14_021E613C
add r0, r4, #0
mov r1, #0x2a
bl MOD14_021E613C
add r0, r4, #0
mov r1, #0x2b
bl MOD14_021E613C
pop {r3, r4, r5, pc}
_021E5EC4:
add r0, r5, #0
bl MOD14_021DC558
cmp r0, #0
bne _021E5ED2
mov r1, #0x34
b _021E5ED4
_021E5ED2:
mov r1, #0x35
_021E5ED4:
add r0, r4, #0
bl MOD14_021E613C
add r0, r5, #0
bl MOD14_021DC3CC
cmp r0, #0
bne _021E5EE8
mov r1, #0x26
b _021E5EEA
_021E5EE8:
mov r1, #0x27
_021E5EEA:
add r0, r4, #0
bl MOD14_021E613C
add r0, r4, #0
mov r1, #0x29
bl MOD14_021E613C
add r0, r4, #0
mov r1, #0x2b
bl MOD14_021E613C
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_start MOD14_021E5F04
MOD14_021E5F04: ; 0x021E5F04
push {r4, r5, r6, lr}
add r4, r0, #0
add r5, r4, #0
add r5, #0x74
bl MOD14_021DC538
add r6, r0, #0
add r0, r4, #0
bl MOD14_021DC430
add r4, r0, #0
add r0, r5, #0
bl MOD14_021E612C
add r0, r5, #0
mov r1, #1
add r0, #0x23
strb r1, [r0]
cmp r6, #0
beq _021E5F54
cmp r4, #0
beq _021E5F3A
add r0, r5, #0
mov r1, #0x31
bl MOD14_021E613C
b _021E5F42
_021E5F3A:
add r0, r5, #0
mov r1, #0x2e
bl MOD14_021E613C
_021E5F42:
add r0, r5, #0
mov r1, #0x32
bl MOD14_021E613C
add r0, r5, #0
mov r1, #0x30
bl MOD14_021E613C
b _021E5F7A
_021E5F54:
cmp r4, #0
beq _021E5F72
add r0, r5, #0
mov r1, #0x2f
bl MOD14_021E613C
add r0, r5, #0
mov r1, #0x32
bl MOD14_021E613C
add r0, r5, #0
mov r1, #0x30
bl MOD14_021E613C
b _021E5F7A
_021E5F72:
add r0, r5, #0
mov r1, #0x2e
bl MOD14_021E613C
_021E5F7A:
add r0, r5, #0
mov r1, #0x33
bl MOD14_021E613C
pop {r4, r5, r6, pc}
thumb_func_start MOD14_021E5F84
MOD14_021E5F84: ; 0x021E5F84
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r5, #0
add r4, #0x74
bl MOD14_021DC44C
add r0, r4, #0
bl MOD14_021E612C
add r0, r4, #0
mov r1, #0
bl MOD14_021E613C
add r0, r5, #0
bl MOD14_021DC3C4
cmp r0, #4
beq _021E5FB8
add r0, r4, #0
mov r1, #1
bl MOD14_021E613C
add r0, r4, #0
mov r1, #2
bl MOD14_021E613C
_021E5FB8:
add r0, r4, #0
mov r1, #3
bl MOD14_021E613C
mov r0, #2
add r4, #0x23
strb r0, [r4]
pop {r3, r4, r5, pc}
thumb_func_start MOD14_021E5FC8
MOD14_021E5FC8: ; 0x021E5FC8
push {r4, r5, r6, lr}
add r4, r0, #0
add r4, #0x74
add r5, r1, #0
bl MOD14_021DC44C
add r6, r0, #0
add r0, r4, #0
bl MOD14_021E612C
add r0, r4, #0
mov r1, #4
bl MOD14_021E613C
add r0, r4, #0
mov r1, #5
bl MOD14_021E613C
add r0, r4, #0
mov r1, #6
bl MOD14_021E613C
add r0, r4, #0
mov r1, #7
bl MOD14_021E613C
add r0, r6, #0
bl FUN_0206B668
add r6, r0, #0
beq _021E600E
add r0, r4, #0
mov r1, #8
bl MOD14_021E613C
_021E600E:
cmp r6, #4
bls _021E601A
add r0, r4, #0
mov r1, #9
bl MOD14_021E613C
_021E601A:
add r0, r4, #0
mov r1, #3
add r0, #0x23
strb r1, [r0]
cmp r5, #4
blt _021E6032
cmp r5, #9
bgt _021E6032
sub r0, r5, #4
add r4, #0x20
strb r0, [r4]
pop {r4, r5, r6, pc}
_021E6032:
bl ErrorHandling
pop {r4, r5, r6, pc}
thumb_func_start MOD14_021E6038
MOD14_021E6038: ; 0x021E6038
push {r3, r4, r5, r6, r7, lr}
add r6, r0, #0
add r6, #0x74
add r5, r1, #0
bl MOD14_021DC44C
str r0, [sp]
add r0, r6, #0
bl MOD14_021E612C
cmp r5, #4
blt _021E6070
cmp r5, #7
bgt _021E6070
sub r0, r5, #4
ldr r1, _021E60B0 ; =0x021E69A8
lsl r0, r0, #3
mov r5, #0
add r4, r1, r0
_021E605E:
ldrh r1, [r4]
add r0, r6, #0
bl MOD14_021E613C
add r5, r5, #1
add r4, r4, #2
cmp r5, #4
blt _021E605E
b _021E60A6
_021E6070:
mov r4, #0
add r7, r4, #0
cmp r5, #9
bne _021E607A
mov r4, #4
_021E607A:
mov r5, #0
_021E607C:
ldr r0, [sp]
add r1, r5, #0
bl FUN_0206B644
cmp r0, #0
beq _021E60A0
cmp r4, #0
beq _021E6090
sub r4, r4, #1
b _021E60A0
_021E6090:
add r1, r5, #0
add r0, r6, #0
add r1, #0x1a
bl MOD14_021E613C
add r7, r7, #1
cmp r7, #4
bge _021E60A6
_021E60A0:
add r5, r5, #1
cmp r5, #8
blt _021E607C
_021E60A6:
mov r0, #3
add r6, #0x23
strb r0, [r6]
pop {r3, r4, r5, r6, r7, pc}
nop
_021E60B0: .word 0x021E69A8
thumb_func_start MOD14_021E60B4
MOD14_021E60B4: ; 0x021E60B4
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r5, #0
add r4, #0x74
add r0, r4, #0
bl MOD14_021E612C
add r0, r4, #0
mov r1, #4
add r0, #0x23
strb r1, [r0]
add r5, #0x57
add r0, r4, #0
ldrb r1, [r5]
add r0, #0x22
strb r1, [r0]
add r0, r4, #0
mov r1, #0x38
bl MOD14_021E613C
add r0, r4, #0
mov r1, #0x39
bl MOD14_021E613C
add r0, r4, #0
mov r1, #0x3a
bl MOD14_021E613C
add r0, r4, #0
mov r1, #0x3b
bl MOD14_021E613C
add r0, r4, #0
mov r1, #0x3c
bl MOD14_021E613C
add r0, r4, #0
mov r1, #0x3d
bl MOD14_021E613C
add r0, r4, #0
mov r1, #0x2c
bl MOD14_021E613C
add r0, r4, #0
mov r1, #0x2d
bl MOD14_021E613C
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_start MOD14_021E6118
MOD14_021E6118: ; 0x021E6118
add r2, r0, #0
add r2, #0x96
ldrb r3, [r2]
mov r2, #1
lsl r2, r1
add r1, r3, #0
eor r1, r2
add r0, #0x96
strb r1, [r0]
bx lr
thumb_func_start MOD14_021E612C
MOD14_021E612C: ; 0x021E612C
add r1, r0, #0
mov r2, #0
add r1, #0x21
strb r2, [r1]
add r0, #0x20
strb r2, [r0]
bx lr
.align 2, 0
thumb_func_start MOD14_021E613C
MOD14_021E613C: ; 0x021E613C
push {r3, r4}
add r2, r0, #0
add r2, #0x21
ldrb r4, [r2]
cmp r4, #8
bhs _021E615A
add r2, r0, #0
add r2, #0x21
ldrb r2, [r2]
add r3, r2, #1
add r2, r0, #0
add r2, #0x21
strb r3, [r2]
lsl r2, r4, #2
str r1, [r0, r2]
_021E615A:
pop {r3, r4}
bx lr
.align 2, 0
thumb_func_start MOD14_021E6160
MOD14_021E6160: ; 0x021E6160
push {r3, r4, r5, lr}
add r4, r0, #0
ldr r0, _021E6208 ; =0x021C48B8
add r4, #0x74
ldr r1, [r0, #0x48]
mov r0, #0x40
add r2, r1, #0
tst r2, r0
beq _021E61A0
add r2, r4, #0
add r2, #0x20
ldrb r2, [r2]
cmp r2, #0
beq _021E618C
add r1, r4, #0
add r1, #0x20
ldrb r1, [r1]
add r4, #0x20
sub r0, #0x42
sub r1, r1, #1
strb r1, [r4]
pop {r3, r4, r5, pc}
_021E618C:
add r2, r4, #0
add r2, #0x21
ldrb r2, [r2]
cmp r2, #3
blo _021E61A0
sub r1, r2, #1
add r4, #0x20
strb r1, [r4]
sub r0, #0x42
pop {r3, r4, r5, pc}
_021E61A0:
mov r0, #0x80
add r2, r1, #0
tst r2, r0
beq _021E61D8
add r2, r4, #0
add r2, #0x21
ldrb r5, [r2]
add r2, r4, #0
add r2, #0x20
ldrb r3, [r2]
sub r2, r5, #1
cmp r3, r2
bge _021E61CA
add r1, r4, #0
add r1, #0x20
ldrb r1, [r1]
add r4, #0x20
sub r0, #0x82
add r1, r1, #1
strb r1, [r4]
pop {r3, r4, r5, pc}
_021E61CA:
cmp r5, #3
blo _021E61D8
mov r0, #0
add r4, #0x20
strb r0, [r4]
sub r0, r0, #2
pop {r3, r4, r5, pc}
_021E61D8:
mov r0, #2
tst r0, r1
beq _021E61EA
ldr r0, _021E620C ; =0x000005DD
bl FUN_020054C8
mov r0, #0
mvn r0, r0
pop {r3, r4, r5, pc}
_021E61EA:
mov r0, #1
tst r1, r0
beq _021E6202
ldr r0, _021E620C ; =0x000005DD
bl FUN_020054C8
add r0, r4, #0
add r0, #0x20
ldrb r0, [r0]
lsl r0, r0, #2
ldr r0, [r4, r0]
pop {r3, r4, r5, pc}
_021E6202:
sub r0, r0, #4
pop {r3, r4, r5, pc}
nop
_021E6208: .word 0x021C48B8
_021E620C: .word 0x000005DD
thumb_func_start MOD14_021E6210
MOD14_021E6210: ; 0x021E6210
add r0, #0x74
add r1, r0, #0
add r1, #0x20
ldrb r1, [r1]
lsl r1, r1, #2
ldr r0, [r0, r1]
bx lr
.align 2, 0
thumb_func_start MOD14_021E6220
MOD14_021E6220: ; 0x021E6220
ldr r0, [r0, #0x74]
bx lr
.section .rodata
; 0x021E6224
.byte 0x39, 0x00, 0xAF, 0x01, 0x7F, 0x00, 0xFE, 0x00, 0xB8, 0x28, 0xFE, 0xFF, 0xB8, 0x28, 0xFF, 0x00
.byte 0x00, 0x00, 0xFE, 0x00, 0xB8, 0x28, 0xFE, 0xFF, 0xB8, 0x28, 0xFE, 0x80, 0xB2, 0x0C, 0xFF, 0x00
.byte 0x00, 0x00, 0xFE, 0x98, 0xA8, 0x10, 0xFE, 0xA3, 0x86, 0x10, 0xFE, 0xB8, 0x68, 0x10, 0xFE, 0xD8
.byte 0x54, 0x10, 0xFE, 0xF0, 0x34, 0x10, 0xFE, 0xF0, 0x10, 0x10, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x01, 0x02, 0x03, 0x04, 0x06, 0x07, 0xFF, 0x00, 0x01, 0x02, 0x04, 0x03, 0x05, 0x06, 0x07
.byte 0x08, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x18, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1D, 0x00, 0x00, 0x02, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1F, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x1C, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x1A, 0x00
.byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x1E, 0x04, 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, 0x1E, 0x04, 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, 0x1D, 0x00, 0x00, 0x01, 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, 0x1C, 0x06
.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, 0x00, 0x00, 0x01, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1C, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x2D, 0xCC, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00
.byte 0xA1, 0xCC, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00, 0x05, 0xCD, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00
.byte 0x61, 0xCD, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00, 0xA9, 0xCD, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00
.byte 0x69, 0xCE, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00, 0xC5, 0xCE, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00
.byte 0x41, 0xCF, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00, 0xA1, 0xCF, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00
.byte 0xBD, 0xCF, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00, 0xF9, 0xCF, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00
.byte 0x35, 0xD0, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00, 0x71, 0xD0, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00
.byte 0xA1, 0xD0, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00, 0xF1, 0xD0, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00
.byte 0x2D, 0xD1, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00, 0x75, 0xD1, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00
.byte 0xBD, 0xD1, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00, 0xF9, 0xD1, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00
.byte 0x35, 0xD2, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00, 0x7D, 0xD2, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00
.byte 0xC5, 0xD2, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00, 0x0D, 0xD3, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00
.byte 0x7D, 0xD3, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00, 0xCD, 0xD3, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00
.byte 0xF5, 0xD3, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00, 0x29, 0xD4, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00
.byte 0x45, 0xD4, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00, 0x61, 0xD4, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00
.byte 0x91, 0xD4, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00, 0xC1, 0xD4, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00
.byte 0xFD, 0xD4, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00, 0x35, 0xD5, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00
.byte 0x71, 0xD5, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00, 0xAD, 0xD5, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00
.byte 0x6D, 0xD6, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00, 0xBD, 0xD6, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00
.byte 0x41, 0xD7, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00, 0x7D, 0xD7, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00
.byte 0xCD, 0xD7, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00, 0xFD, 0xD7, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00
.byte 0x6D, 0xD8, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00, 0xA9, 0xD8, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00
.byte 0xC5, 0xD8, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00, 0xE1, 0xD8, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00
.byte 0x05, 0xD9, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00, 0x1D, 0xD9, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00
.byte 0x35, 0xD9, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00, 0x71, 0xD9, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00
.byte 0x8D, 0xD9, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00, 0xA9, 0xD9, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00
.byte 0xE5, 0xD9, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x0A, 0x00, 0x05, 0x00, 0x04, 0x00
.byte 0x03, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x0A, 0x00, 0x09, 0x00, 0x08, 0x00
.byte 0x07, 0x00, 0x06, 0x00, 0x11, 0x00, 0x10, 0x00, 0x0F, 0x00, 0x0E, 0x00, 0x0D, 0x00, 0x0C, 0x00
.byte 0x17, 0x00, 0x16, 0x00, 0x15, 0x00, 0x14, 0x00, 0x13, 0x00, 0x12, 0x00, 0x1D, 0x00, 0x1C, 0x00
.byte 0x1B, 0x00, 0x1A, 0x00, 0x19, 0x00, 0x18, 0x00, 0x1E, 0x1D, 0x1C, 0x21, 0x20, 0x1F, 0x24, 0x23
.byte 0x22, 0x27, 0x26, 0x25, 0x2A, 0x29, 0x28, 0x2D, 0x2C, 0x2B, 0x30, 0x2F, 0x2E, 0x33, 0x32, 0x31
.byte 0x36, 0x35, 0x34, 0x39, 0x38, 0x37, 0x3C, 0x3B, 0x3A, 0x3F, 0x3E, 0x3D, 0x42, 0x41, 0x40, 0x45
.byte 0x44, 0x43, 0x48, 0x47, 0x46, 0x4B, 0x4A, 0x49, 0x4E, 0x4D, 0x4C, 0x51, 0x50, 0x4F, 0x54, 0x53
.byte 0x52, 0x57, 0x56, 0x55, 0x5A, 0x59, 0x58, 0x5D, 0x5C, 0x5B, 0x60, 0x5F, 0x5E, 0x63, 0x62, 0x61
.byte 0x02, 0x00, 0x01, 0x0A, 0x02, 0x01, 0x20, 0x01, 0x02, 0x05, 0x03, 0x05, 0x01, 0x01, 0x34, 0x01
.byte 0x02, 0x00, 0x10, 0x0A, 0x03, 0x03, 0x39, 0x01, 0x02, 0x01, 0x15, 0x0C, 0x04, 0x01, 0x57, 0x01
.byte 0x01, 0x02, 0x15, 0x1B, 0x02, 0x04, 0x1B, 0x02, 0x01, 0x13, 0x03, 0x0C, 0x10, 0x04, 0x51, 0x02
.byte 0xE9, 0x24, 0x1E, 0x02, 0x15, 0x26, 0x1E, 0x02, 0x01, 0x0A, 0x06, 0x0C, 0x02, 0x02, 0x80, 0x00
.byte 0x01, 0x03, 0x0D, 0x1A, 0x01, 0x02, 0x98, 0x00, 0x01, 0x05, 0x19, 0x1B, 0x06, 0x02, 0xB2, 0x00
.byte 0x0E, 0x0F, 0x05, 0x01, 0x0D, 0x0C, 0x06, 0x0B, 0x0A, 0x09, 0x00, 0x00, 0x90, 0x00, 0x1C, 0x00
.byte 0xC0, 0x00, 0x24, 0x00, 0x90, 0x00, 0x44, 0x00, 0xC0, 0x00, 0x4C, 0x00, 0x90, 0x00, 0x6C, 0x00
.byte 0xC0, 0x00, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFA, 0xFF, 0x00, 0x80, 0x05, 0x00, 0x8F, 0x00, 0x7F, 0x00
.byte 0x6A, 0x00, 0x4A, 0x00, 0x33, 0x00, 0x1F, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x24, 0x00, 0x04, 0x00
.byte 0x24, 0x00, 0x24, 0x00, 0x32, 0x00, 0x45, 0x00, 0x5C, 0x00, 0x5C, 0x00, 0x72, 0x00, 0x7C, 0x00
.byte 0x7C, 0x00, 0x9C, 0x00, 0x6A, 0x00, 0x48, 0x02, 0x6A, 0x00, 0x42, 0x02, 0x6A, 0x00, 0x3E, 0x02
.byte 0x69, 0x00, 0x3A, 0x02, 0x69, 0x00, 0x38, 0x02, 0x69, 0x00, 0x36, 0x02, 0x69, 0x00, 0x34, 0x02
.byte 0x69, 0x00, 0x32, 0x02, 0x69, 0x00, 0x30, 0x02, 0x68, 0x00, 0x2E, 0x02, 0x68, 0x00, 0x2C, 0x02
.byte 0x68, 0x00, 0x2A, 0x02, 0x68, 0x00, 0x28, 0x02, 0x67, 0x00, 0x26, 0x02, 0x67, 0x00, 0x24, 0x02
.byte 0x67, 0x00, 0x23, 0x02, 0x66, 0x00, 0x21, 0x02, 0x66, 0x00, 0x1F, 0x02, 0x65, 0x00, 0x1D, 0x02
.byte 0x65, 0x00, 0x1B, 0x02, 0x64, 0x00, 0x19, 0x02, 0x64, 0x00, 0x17, 0x02, 0x63, 0x00, 0x16, 0x02
.byte 0x62, 0x00, 0x14, 0x02, 0x62, 0x00, 0x12, 0x02, 0x61, 0x00, 0x10, 0x02, 0x60, 0x00, 0x0E, 0x02
.byte 0x60, 0x00, 0x0D, 0x02, 0x5F, 0x00, 0x0B, 0x02, 0x5E, 0x00, 0x09, 0x02, 0x5E, 0x00, 0x08, 0x02
.byte 0x5D, 0x00, 0x06, 0x02, 0x5C, 0x00, 0x04, 0x02, 0x5B, 0x00, 0x03, 0x02, 0x5A, 0x00, 0x01, 0x02
.byte 0x59, 0x00, 0xFF, 0x01, 0x58, 0x00, 0xFE, 0x01, 0x57, 0x00, 0xFC, 0x01, 0x56, 0x00, 0xFB, 0x01
.byte 0x56, 0x00, 0xF9, 0x01, 0x55, 0x00, 0xF8, 0x01, 0x53, 0x00, 0xF6, 0x01, 0x52, 0x00, 0xF5, 0x01
.byte 0x51, 0x00, 0xF3, 0x01, 0x50, 0x00, 0xF2, 0x01, 0x4F, 0x00, 0xF0, 0x01, 0x4E, 0x00, 0xEF, 0x01
.byte 0x4D, 0x00, 0xEE, 0x01, 0x4C, 0x00, 0xEC, 0x01, 0x4B, 0x00, 0xEB, 0x01, 0x49, 0x00, 0xEA, 0x01
.byte 0x48, 0x00, 0xE8, 0x01, 0x47, 0x00, 0xE7, 0x01, 0x46, 0x00, 0xE6, 0x01, 0x44, 0x00, 0xE5, 0x01
.byte 0x43, 0x00, 0xE4, 0x01, 0x42, 0x00, 0xE3, 0x01, 0x41, 0x00, 0xE2, 0x01, 0x3F, 0x00, 0xE1, 0x01
.byte 0x3E, 0x00, 0xDF, 0x01, 0x3D, 0x00, 0xDF, 0x01, 0x3B, 0x00, 0xDE, 0x01, 0x3A, 0x00, 0xDD, 0x01
.byte 0x38, 0x00, 0xDC, 0x01, 0x37, 0x00, 0xDB, 0x01, 0x36, 0x00, 0xDA, 0x01, 0x34, 0x00, 0xD9, 0x01
.byte 0x33, 0x00, 0xD8, 0x01, 0x31, 0x00, 0xD8, 0x01, 0x30, 0x00, 0xD7, 0x01, 0x2E, 0x00, 0xD6, 0x01
.byte 0x2D, 0x00, 0xD6, 0x01, 0x2B, 0x00, 0xD5, 0x01, 0x2A, 0x00, 0xD4, 0x01, 0x28, 0x00, 0xD4, 0x01
.byte 0x27, 0x00, 0xD3, 0x01, 0x25, 0x00, 0xD3, 0x01, 0x24, 0x00, 0xD2, 0x01, 0x22, 0x00, 0xD2, 0x01
.byte 0x21, 0x00, 0xD2, 0x01, 0x1F, 0x00, 0xD1, 0x01, 0x1E, 0x00, 0xD1, 0x01, 0x1C, 0x00, 0xD1, 0x01
.byte 0x1A, 0x00, 0xD0, 0x01, 0x19, 0x00, 0xD0, 0x01, 0x17, 0x00, 0xD0, 0x01, 0x16, 0x00, 0xD0, 0x01
.byte 0x14, 0x00, 0xD0, 0x01, 0x13, 0x00, 0xD0, 0x01, 0x11, 0x00, 0xD0, 0x01, 0x10, 0x00, 0xD0, 0x01
.byte 0x10, 0x00, 0xCE, 0x01, 0x10, 0x00, 0xCC, 0x01, 0x10, 0x00, 0xCA, 0x01, 0x10, 0x00, 0xC8, 0x01
.byte 0x10, 0x00, 0xC6, 0x01, 0x10, 0x00, 0xC4, 0x01, 0x10, 0x00, 0xC2, 0x01, 0x10, 0x00, 0xC0, 0x01
.byte 0x10, 0x00, 0xBF, 0x01, 0x10, 0x00, 0xBD, 0x01, 0x10, 0x00, 0xBC, 0x01, 0x10, 0x00, 0xBA, 0x01
.byte 0x10, 0x00, 0xB9, 0x01, 0x10, 0x00, 0xB7, 0x01, 0x10, 0x00, 0xB6, 0x01, 0x10, 0x00, 0xB4, 0x01
.byte 0x10, 0x00, 0xB3, 0x01, 0x10, 0x00, 0xB1, 0x01, 0x10, 0x00, 0xB0, 0x01, 0x10, 0x00, 0xAE, 0x01
.byte 0x10, 0x00, 0xAD, 0x01, 0x10, 0x00, 0xAB, 0x01, 0x10, 0x00, 0xAA, 0x01, 0x10, 0x00, 0xA8, 0x01
.byte 0x10, 0x00, 0xA7, 0x01, 0x10, 0x00, 0xA6, 0x01, 0x10, 0x00, 0xA4, 0x01, 0x10, 0x00, 0xA2, 0x01
.byte 0x10, 0x00, 0xA0, 0x01, 0x10, 0x00, 0x9E, 0x01, 0x10, 0x00, 0x9C, 0x01, 0x10, 0x00, 0x9A, 0x01
.byte 0x10, 0x00, 0x98, 0x01, 0x10, 0x00, 0x96, 0x01, 0x10, 0x00, 0x94, 0x01, 0x10, 0x00, 0x92, 0x01
.byte 0x10, 0x00, 0x90, 0x01, 0x10, 0x00, 0x8E, 0x01, 0x10, 0x00, 0x8C, 0x01, 0x10, 0x00, 0x8A, 0x01
.byte 0x10, 0x00, 0x88, 0x01, 0x10, 0x00, 0x86, 0x01, 0x10, 0x00, 0x84, 0x01, 0x10, 0x00, 0x82, 0x01
.byte 0x10, 0x00, 0x80, 0x01, 0x10, 0x00, 0x7E, 0x01, 0x10, 0x00, 0x7C, 0x01, 0x10, 0x00, 0x7A, 0x01
.byte 0x10, 0x00, 0x78, 0x01, 0x10, 0x00, 0x76, 0x01, 0x10, 0x00, 0x74, 0x01, 0x10, 0x00, 0x72, 0x01
.byte 0x10, 0x00, 0x70, 0x01, 0x00, 0xC0, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0xC2, 0x00, 0x00
.byte 0x08, 0x00, 0x00, 0x00, 0x00, 0xC4, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x02
.byte 0x00, 0x01, 0x38, 0x02, 0x70, 0x00, 0x8A, 0x01, 0x90, 0x00, 0x8A, 0x01, 0x23, 0x00, 0x24, 0x00
.byte 0x25, 0x00, 0x26, 0x00, 0x27, 0x00, 0x28, 0x00, 0x29, 0x00, 0x2A, 0x00, 0x04, 0x01, 0x04, 0x0B
.byte 0x0C, 0x00, 0x85, 0x00, 0x04, 0x14, 0x04, 0x0B, 0x0C, 0x01, 0x09, 0x01, 0x04, 0x03, 0x04, 0x09
.byte 0x10, 0x00, 0x85, 0x00, 0x04, 0x14, 0x04, 0x09, 0x10, 0x01, 0x15, 0x01, 0x04, 0x03, 0x01, 0x09
.byte 0x02, 0x00, 0x01, 0x00, 0x04, 0x14, 0x01, 0x09, 0x02, 0x01, 0x13, 0x00, 0x04, 0x0D, 0x04, 0x06
.byte 0x10, 0x00, 0x25, 0x00, 0x00, 0x00, 0x08, 0x00, 0x67, 0xF6, 0x1D, 0x00, 0x00, 0x00, 0x08, 0x00
.byte 0x00, 0x60, 0x1B, 0x00, 0x66, 0x46, 0x08, 0x00, 0x9A, 0x29, 0x1E, 0x00, 0x00, 0xC0, 0x0A, 0x00
.byte 0x00, 0x60, 0x1D, 0x00, 0x33, 0x2B, 0x08, 0x00, 0x99, 0x79, 0x1E, 0x00, 0x00, 0xB0, 0x09, 0x00
.byte 0x00, 0x80, 0x20, 0x00, 0x34, 0xD3, 0x07, 0x00, 0x99, 0x79, 0x1E, 0x00, 0x00, 0x40, 0x06, 0x00
.byte 0x00, 0x80, 0x20, 0x00, 0x9A, 0xB9, 0x07, 0x00, 0x9A, 0x29, 0x1E, 0x00, 0x00, 0x40, 0x05, 0x00
.byte 0x00, 0x60, 0x1D, 0x00, 0x0A, 0x00, 0x0B, 0x00, 0x0C, 0x00, 0x0D, 0x00, 0x0E, 0x00, 0x0F, 0x00
.byte 0x10, 0x00, 0x11, 0x00, 0x12, 0x00, 0x13, 0x00, 0x14, 0x00, 0x15, 0x00, 0x16, 0x00, 0x17, 0x00
.byte 0x18, 0x00, 0x19, 0x00
.section .data
; 0x021E69E0
.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
.section .bss
; 0x021E69FC
.space 0x1A0