Files
pokediamond/arm9/modules/05/asm/module_05.s
T
2020-06-05 13:27:51 -04:00

66073 lines
1.2 MiB
Plaintext

.include "asm/macros.inc"
.include "global.inc"
.section .text
.balign 4, 0
thumb_func_start MOD05_021D74E0
MOD05_021D74E0: ; 0x021D74E0
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #8]
bl FUN_0201AB60
bl FUN_0201C30C
bl FUN_02009F80
ldr r0, [r4, #0x34]
bl FUN_020583A0
bl MOD05_021F2D48
bl FUN_0201F2D8
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021D7504
MOD05_021D7504: ; 0x021D7504
push {r4, r5, r6, lr}
add r5, r1, #0
mov r6, #0
bl FUN_0200628C
ldr r1, [r5]
add r4, r0, #0
cmp r1, #3
bls _021D7518
b _021D7666
_021D7518:
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021D7524: ; jump table
.short _021D752C - _021D7524 - 2 ; case 0
.short _021D75DE - _021D7524 - 2 ; case 1
.short _021D7654 - _021D7524 - 2 ; case 2
.short _021D765A - _021D7524 - 2 ; case 3
_021D752C:
add r0, r6, #0
add r1, r0, #0
bl FUN_02015F10
bl FUN_02015F1C
ldr r1, _021D7670 ; =0x04000050
add r0, r6, #0
strh r0, [r1]
ldr r1, _021D7674 ; =0x04001050
strh r0, [r1]
bl FUN_0200E388
mov r0, #1
bl FUN_0200E388
add r0, r4, #0
bl FUN_020489DC
ldr r0, [r4, #0x70]
ldr r0, [r0]
lsl r0, r0, #8
lsr r0, r0, #0x1c
beq _021D7564
ldr r0, _021D7678 ; =SDK_OVERLAY_MODULE_06_ID
mov r1, #2
bl HandleLoadOverlay
_021D7564:
ldr r2, [r4, #0x70]
mov r0, #3
ldr r2, [r2, #4]
mov r1, #4
bl FUN_0201681C
ldr r0, [r4, #4]
cmp r0, #0
beq _021D757A
bl ErrorHandling
_021D757A:
mov r0, #4
mov r1, #0x28
bl AllocFromHeap
mov r1, #0
mov r2, #0x28
str r0, [r4, #4]
bl MI_CpuFill8
add r0, r4, #0
mov r1, #4
mov r2, #8
bl MOD05_021D7F4C
ldr r1, [r4, #4]
str r0, [r1, #4]
bl MOD05_021D7A00
mov r0, #0x80
mov r1, #4
bl FUN_0201C24C
mov r0, #4
add r1, r0, #0
bl FUN_0201F100
mov r0, #4
bl FUN_0201B2EC
bl MOD05_021D7BA0
bl MOD05_021D7B38
bl FUN_0201E7A0
mov r0, #4
bl FUN_02016B94
str r0, [r4, #8]
bl MOD05_021D7A30
mov r0, #0
mov r1, #1
bl FUN_02054590
add r0, r4, #0
mov r1, #4
bl FUN_0203989C
b _021D7666
_021D75DE:
bl MOD05_021D7CF0
ldr r0, [r4, #0x2c]
bl MOD05_021F49AC
mov r0, #4
bl MOD05_021E7C00
add r1, r4, #0
add r1, #0xa0
str r0, [r1]
add r0, r4, #0
bl MOD05_021F5B9C
add r0, r4, #0
bl MOD05_021D7D4C
add r0, r4, #0
bl MOD05_021D7D98
add r0, r4, #0
bl MOD05_021D7E4C
ldr r0, [r4, #0xc]
bl FUN_02034E30
bl FUN_02034DEC
add r1, r0, #0
ldr r0, [r4, #4]
ldr r0, [r0, #0xc]
bl MOD05_021DC124
ldr r1, [r4, #0x1c]
add r0, r4, #0
ldr r1, [r1]
bl FUN_0204ADBC
add r0, r4, #0
mov r1, #3
bl FUN_0203989C
mov r0, #4
bl MOD05_021F45B4
ldr r1, [r4, #4]
str r0, [r1, #0x1c]
ldr r0, [r4, #4]
ldr r0, [r0, #0x1c]
bl MOD05_021F45E8
ldr r1, [r4, #4]
mov r0, #4
ldr r1, [r1, #0x1c]
bl MOD05_021F46C8
ldr r1, [r4, #4]
str r0, [r1, #0x20]
b _021D7666
_021D7654:
bl MOD05_021DBE1C
b _021D7666
_021D765A:
bl MOD05_021DBE38
cmp r0, #0
beq _021D7666
mov r6, #1
str r6, [r4, #0x64]
_021D7666:
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
add r0, r6, #0
pop {r4, r5, r6, pc}
.balign 4, 0
_021D7670: .word 0x04000050
_021D7674: .word 0x04001050
_021D7678: .word SDK_OVERLAY_MODULE_06_ID
thumb_func_start MOD05_021D767C
MOD05_021D767C: ; 0x021D767C
push {r4, lr}
bl FUN_0200628C
add r4, r0, #0
bl MOD05_021D7864
cmp r0, #0
beq _021D76A8
add r0, r4, #0
bl FUN_0204B490
add r0, r4, #0
bl MOD05_021D79B4
mov r1, #1
add r0, r4, #0
add r2, r1, #0
bl MOD05_021EFA9C
add r0, r4, #0
bl MOD05_021D7894
_021D76A8:
add r0, r4, #0
mov r1, #0xf
bl MOD05_021D795C
ldr r0, [r4, #0x64]
cmp r0, #0
beq _021D76BA
mov r0, #0
pop {r4, pc}
_021D76BA:
mov r0, #1
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021D76C0
MOD05_021D76C0: ; 0x021D76C0
push {r3, r4, r5, lr}
add r5, r1, #0
bl FUN_0200628C
add r4, r0, #0
ldr r1, [r4, #0x24]
bl MOD05_021EE52C
ldr r0, [r5]
cmp r0, #0
beq _021D76E2
cmp r0, #1
beq _021D7782
cmp r0, #2
bne _021D76E0
b _021D7806
_021D76E0:
b _021D785A
_021D76E2:
add r0, r4, #0
bl FUN_0205CDD8
ldr r0, [r4, #0x24]
bl MOD05_021EF5FC
ldr r0, [r4, #0x38]
bl FUN_02055320
ldr r1, [r4, #0x1c]
str r0, [r1, #8]
ldr r0, [r4, #0x38]
bl FUN_0205532C
ldr r1, [r4, #0x1c]
str r0, [r1, #0xc]
ldr r0, [r4, #0x38]
bl FUN_020552F8
ldr r1, [r4, #0x1c]
str r0, [r1, #0x10]
add r0, r4, #0
add r0, #0x9c
ldr r0, [r0]
bl MOD05_021F450C
ldr r0, [r4, #0x4c]
cmp r0, #0
bne _021D7720
bl ErrorHandling
_021D7720:
ldr r0, [r4, #0x24]
bl MOD05_021EF514
ldr r0, [r4, #0x4c]
bl MOD05_021D9F48
ldr r0, [r4, #0x4c]
bl MOD05_021DA018
add r0, r4, #0
add r0, #0x50
bl MOD05_021DA450
ldr r0, [r4, #4]
ldr r0, [r0, #0x10]
bl MOD05_021DC094
ldr r0, [r4, #4]
ldr r0, [r0, #0x10]
bl MOD05_021DC0AC
ldr r0, [r4, #4]
mov r1, #0
str r1, [r0, #0x10]
ldr r0, [r4, #0x34]
bl FUN_02057750
ldr r0, [r4, #0x34]
bl MOD05_021F1D2C
ldr r0, [r4, #0x34]
bl FUN_02058768
ldr r0, [r4, #0x3c]
bl MOD05_021E4BA8
ldr r0, [r4, #0x30]
bl MOD05_021D7F44
mov r0, #0
str r0, [r4, #0x30]
add r4, #0xa0
ldr r0, [r4]
bl MOD05_021E7C14
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021D785A
_021D7782:
ldr r0, [r4, #0x24]
bl MOD05_021EF5C4
cmp r0, #1
bne _021D785A
add r0, r4, #0
add r0, #0x2c
bl MOD05_021F4BF8
ldr r0, [r4, #0x24]
bl MOD05_021EF5A8
add r0, r4, #0
add r0, #0xa4
bl MOD05_021F4D1C
add r0, r4, #0
bl MOD05_021DBDEC
add r0, r4, #0
add r0, #0x48
bl MOD05_021DB4B0
ldr r0, [r4, #0x60]
bl MOD05_021E8110
ldr r0, [r4, #4]
ldr r0, [r0, #8]
bl MOD05_021E3248
ldr r0, [r4, #4]
ldr r0, [r0, #0xc]
bl MOD05_021DC0F8
ldr r0, [r4, #4]
ldr r0, [r0, #0x20]
bl MOD05_021F4704
ldr r0, [r4, #4]
ldr r0, [r0, #0x1c]
bl MOD05_021F45C8
ldr r0, [r4, #4]
ldr r0, [r0, #0x18]
bl FUN_0204B3B8
add r0, r4, #0
add r0, #0x44
bl MOD05_021DBA1C
add r0, r4, #0
add r0, #0x40
bl MOD05_021DBAD8
bl MOD05_021D7B5C
ldr r0, [r4, #8]
bl MOD05_021D7B10
add r0, r4, #0
bl MOD05_021DBE58
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021D785A
_021D7806:
add r0, r4, #0
bl MOD05_021DBE74
cmp r0, #0
beq _021D785A
bl MOD05_021D7BD4
bl FUN_0201F140
bl FUN_0201C29C
bl FUN_0201B398
ldr r0, [r4, #4]
ldr r0, [r0, #4]
bl MOD05_021D7F9C
mov r0, #0
add r1, r0, #0
bl FUN_02015F10
ldr r0, [r4, #8]
bl FreeToHeap
ldr r0, [r4, #4]
bl FreeToHeap
mov r0, #0
str r0, [r4, #4]
mov r0, #4
bl FUN_020168D0
ldr r0, [r4, #0x70]
ldr r0, [r0]
lsl r0, r0, #8
lsr r0, r0, #0x1c
beq _021D7856
ldr r0, _021D7860 ; =SDK_OVERLAY_MODULE_06_ID
bl UnloadOverlayByID
_021D7856:
mov r0, #1
pop {r3, r4, r5, pc}
_021D785A:
mov r0, #0
pop {r3, r4, r5, pc}
nop
_021D7860: .word SDK_OVERLAY_MODULE_06_ID
thumb_func_start MOD05_021D7864
MOD05_021D7864: ; 0x021D7864
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r0, [r5, #0x38]
bl FUN_02055320
add r4, r0, #0
ldr r0, [r5, #0x38]
bl FUN_0205532C
ldr r2, [r5, #0x1c]
ldr r1, [r2, #8]
cmp r4, r1
bne _021D7884
ldr r1, [r2, #0xc]
cmp r0, r1
beq _021D788E
_021D7884:
str r4, [r2, #8]
ldr r1, [r5, #0x1c]
str r0, [r1, #0xc]
mov r0, #1
pop {r3, r4, r5, pc}
_021D788E:
mov r0, #0
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021D7894
MOD05_021D7894: ; 0x021D7894
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
add r5, r0, #0
ldr r0, [r5, #0x38]
bl FUN_02055320
asr r1, r0, #4
lsr r1, r1, #0x1b
add r1, r0, r1
ldr r0, [r5, #0x38]
asr r4, r1, #5
bl FUN_0205532C
asr r1, r0, #4
lsr r1, r1, #0x1b
add r1, r0, r1
asr r2, r1, #5
ldr r0, [r5, #0x28]
add r1, r4, #0
bl FUN_0203451C
add r4, r0, #0
ldr r0, [r5, #0x1c]
ldr r6, [r0]
cmp r4, r6
bne _021D78CE
add sp, #8
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
_021D78CE:
ldr r0, [r5, #0xc]
bl FUN_02034E30
add r7, r0, #0
ldr r0, [r5, #0x1c]
add r1, r4, #0
str r4, [r0]
add r0, r5, #0
bl FUN_02034A60
add r0, r5, #0
mov r1, #1
bl FUN_020489FC
add r0, r5, #0
bl FUN_02034B64
str r0, [sp, #4]
add r0, r5, #0
bl FUN_02034B6C
str r0, [sp]
ldr r0, [r5, #0x34]
ldr r3, [sp, #4]
add r1, r6, #0
add r2, r4, #0
bl FUN_020573C8
add r0, r5, #0
add r0, #0x90
ldr r0, [r0]
bl FUN_0205DD40
ldr r1, [r5, #0x1c]
add r0, r5, #0
ldr r1, [r1]
bl FUN_0204AB58
add r1, r0, #0
add r0, r5, #0
mov r2, #1
bl FUN_0204ABDC
add r0, r5, #0
bl FUN_02034AC8
add r0, r7, #0
bl FUN_02034DEC
add r1, r0, #0
ldr r0, [r5, #4]
ldr r0, [r0, #0xc]
bl MOD05_021DC174
add r0, r6, #0
bl FUN_02034824
add r6, r0, #0
add r0, r4, #0
bl FUN_02034824
add r1, r0, #0
cmp r6, r1
beq _021D7956
ldr r0, [r5, #4]
ldr r0, [r0, #8]
bl MOD05_021E3270
_021D7956:
mov r0, #1
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD05_021D795C
MOD05_021D795C: ; 0x021D795C
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
bl FUN_0204646C
cmp r0, #0
bne _021D7970
add r0, r5, #0
bl FUN_0204B0F8
_021D7970:
ldr r0, [r5, #0x48]
bl MOD05_021DB4D0
add r0, r5, #0
bl MOD05_021E8158
mov r0, #1
tst r0, r4
beq _021D798A
ldr r0, [r5, #4]
ldr r0, [r0, #0x10]
bl MOD05_021DBFF8
_021D798A:
mov r0, #8
tst r0, r4
beq _021D7996
ldr r0, [r5, #0x4c]
bl MOD05_021DA1AC
_021D7996:
mov r0, #2
tst r0, r4
beq _021D79A4
ldr r1, [r5, #0x24]
add r0, r5, #0
bl MOD05_021EE52C
_021D79A4:
mov r0, #4
tst r0, r4
beq _021D79B0
add r0, r5, #0
bl MOD05_021D7BE0
_021D79B0:
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021D79B4
MOD05_021D79B4: ; 0x021D79B4
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
ldr r0, [r5, #0x1c]
ldr r0, [r0]
bl FUN_02034908
cmp r0, #0
beq _021D79FE
ldr r0, [r5, #0xc]
bl FUN_02034E30
bl FUN_02034E0C
add r7, r0, #0
ldr r0, [r5, #0x38]
bl FUN_02055320
asr r1, r0, #4
lsr r1, r1, #0x1b
add r1, r0, r1
ldr r0, [r5, #0x38]
asr r6, r1, #5
bl FUN_0205532C
asr r1, r0, #4
lsr r1, r1, #0x1b
add r1, r0, r1
ldr r0, [r5, #0x38]
asr r4, r1, #5
bl FUN_020552F8
add r3, r0, #0
add r0, r7, #0
add r1, r6, #0
add r2, r4, #0
bl FUN_0204AE5C
_021D79FE:
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD05_021D7A00
MOD05_021D7A00: ; 0x021D7A00
push {r4, lr}
sub sp, #0x28
ldr r4, _021D7A1C ; =0x021F64A0
add r3, sp, #0
mov r2, #5
_021D7A0A:
ldmia r4!, {r0, r1}
stmia r3!, {r0, r1}
sub r2, r2, #1
bne _021D7A0A
add r0, sp, #0
bl FUN_0201E66C
add sp, #0x28
pop {r4, pc}
.balign 4, 0
_021D7A1C: .word 0x021F64A0
thumb_func_start MOD05_021D7A20
MOD05_021D7A20: ; 0x021D7A20
ldr r3, _021D7A24 ; =MOD05_021D7A30
bx r3
.balign 4, 0
_021D7A24: .word MOD05_021D7A30
thumb_func_start MOD05_021D7A28
MOD05_021D7A28: ; 0x021D7A28
ldr r3, _021D7A2C ; =MOD05_021D7B10
bx r3
.balign 4, 0
_021D7A2C: .word MOD05_021D7B10
thumb_func_start MOD05_021D7A30
MOD05_021D7A30: ; 0x021D7A30
push {r3, r4, r5, lr}
sub sp, #0x68
ldr r5, _021D7B00 ; =0x021F643C
add r3, sp, #0x58
add r4, r0, #0
add r2, r3, #0
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
add r0, r2, #0
bl FUN_02016BBC
ldr r5, _021D7B04 ; =0x021F6468
add r3, sp, #0x3c
ldmia r5!, {r0, r1}
add r2, r3, #0
stmia r3!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
ldr r0, [r5]
mov r1, #1
str r0, [r3]
add r0, r4, #0
mov r3, #0
bl FUN_02016C18
mov r0, #1
mov r1, #0x20
mov r2, #0
mov r3, #4
bl FUN_02017F18
add r0, r4, #0
mov r1, #1
bl FUN_02018744
ldr r5, _021D7B08 ; =0x021F644C
add r3, sp, #0x20
ldmia r5!, {r0, r1}
add r2, r3, #0
stmia r3!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
ldr r0, [r5]
mov r1, #2
str r0, [r3]
add r0, r4, #0
mov r3, #0
bl FUN_02016C18
mov r0, #2
mov r1, #0x20
mov r2, #0
mov r3, #4
bl FUN_02017F18
add r0, r4, #0
mov r1, #2
bl FUN_02018744
ldr r5, _021D7B0C ; =0x021F6484
add r3, sp, #4
ldmia r5!, {r0, r1}
add r2, r3, #0
stmia r3!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
ldr r0, [r5]
mov r1, #3
str r0, [r3]
add r0, r4, #0
mov r3, #0
bl FUN_02016C18
mov r0, #3
mov r1, #0x20
mov r2, #0
mov r3, #4
bl FUN_02017F18
add r0, r4, #0
mov r1, #3
bl FUN_02018744
mov r0, #0
add r1, sp, #0
strh r0, [r1]
mov r1, #2
bl DC_FlushRange
add r0, sp, #0
mov r1, #0
mov r2, #2
bl GX_LoadBGPltt
add sp, #0x68
pop {r3, r4, r5, pc}
.balign 4, 0
_021D7B00: .word 0x021F643C
_021D7B04: .word 0x021F6468
_021D7B08: .word 0x021F644C
_021D7B0C: .word 0x021F6484
thumb_func_start MOD05_021D7B10
MOD05_021D7B10: ; 0x021D7B10
push {r4, lr}
add r4, r0, #0
mov r0, #0xf
mov r1, #0
bl FUN_0201E6E4
add r0, r4, #0
mov r1, #1
bl FUN_020178A0
add r0, r4, #0
mov r1, #2
bl FUN_020178A0
add r0, r4, #0
mov r1, #3
bl FUN_020178A0
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021D7B38
MOD05_021D7B38: ; 0x021D7B38
push {lr}
sub sp, #0x14
bl FUN_020B0FC0
mov r0, #0
str r0, [sp]
mov r1, #0x7c
str r1, [sp, #4]
str r0, [sp, #8]
mov r3, #0x1f
str r3, [sp, #0xc]
mov r2, #4
str r2, [sp, #0x10]
add r2, r0, #0
bl FUN_02009EAC
add sp, #0x14
pop {pc}
thumb_func_start MOD05_021D7B5C
MOD05_021D7B5C: ; 0x021D7B5C
ldr r3, _021D7B60 ; =FUN_02009FA0
bx r3
.balign 4, 0
_021D7B60: .word FUN_02009FA0
thumb_func_start MOD05_021D7B64
MOD05_021D7B64: ; 0x021D7B64
push {r4, lr}
mov r1, #0
add r4, r0, #0
add r2, r1, #0
bl MOD05_021DBD20
add r0, r4, #0
mov r1, #2
mov r2, #0
bl MOD05_021DBD34
add r0, r4, #0
mov r1, #0x1f
mov r2, #0
bl MOD05_021DBD48
mov r1, #2
add r0, r4, #0
lsl r1, r1, #0xe
mov r2, #1
mov r3, #0
bl MOD05_021DBD5C
mov r1, #1
add r0, r4, #0
lsl r1, r1, #0x16
bl MOD05_021DBAEC
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021D7BA0
MOD05_021D7BA0: ; 0x021D7BA0
push {r4, lr}
sub sp, #0x10
ldr r4, _021D7BD0 ; =0x021F642C
add r3, sp, #0
add r2, r3, #0
ldmia r4!, {r0, r1}
stmia r3!, {r0, r1}
ldmia r4!, {r0, r1}
stmia r3!, {r0, r1}
mov r1, #0x10
add r0, r2, #0
add r2, r1, #0
bl FUN_0201D060
mov r0, #0x14
mov r1, #4
bl FUN_0201E00C
bl FUN_0201D168
bl FUN_0201E0BC
add sp, #0x10
pop {r4, pc}
.balign 4, 0
_021D7BD0: .word 0x021F642C
thumb_func_start MOD05_021D7BD4
MOD05_021D7BD4: ; 0x021D7BD4
push {r3, lr}
bl FUN_0201D12C
bl FUN_0201E08C
pop {r3, pc}
thumb_func_start MOD05_021D7BE0
MOD05_021D7BE0: ; 0x021D7BE0
push {r3, r4, r5, lr}
sub sp, #0x80
add r4, r0, #0
bl FUN_020222AC
bl FUN_0201EBA4
add r0, r4, #0
bl FUN_0205E0A8
ldr r0, [r4, #0x24]
ldr r1, [r4, #0x40]
bl MOD05_021EF4C4
add r0, r4, #0
add r0, #0xa0
ldr r0, [r0]
ldr r1, [r4, #0x2c]
bl MOD05_021E805C
ldr r5, _021D7C98 ; =UNK_021CED20
add r3, sp, #0x40
mov r2, #8
_021D7C0E:
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
sub r2, r2, #1
bne _021D7C0E
add r5, sp, #0x40
add r3, sp, #0
mov r2, #8
_021D7C1C:
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
sub r2, r2, #1
bne _021D7C1C
ldr r3, [sp, #0x28]
ldr r1, [sp, #0x38]
asr r0, r3, #0x1f
lsr r2, r3, #0x12
lsl r0, r0, #0xe
orr r0, r2
mov r2, #2
lsl r5, r3, #0xe
mov r3, #0
lsl r2, r2, #0xa
add r2, r5, r2
adc r0, r3
lsl r0, r0, #0x14
lsr r2, r2, #0xc
orr r2, r0
add r0, r1, r2
str r0, [sp, #0x38]
ldr r1, _021D7C98 ; =UNK_021CED20
add r0, sp, #0
mov r2, #0x40
bl MIi_CpuCopyFast
ldr r1, _021D7C9C ; =UNK_021CED98
mov r0, #0x50
ldr r2, [r1, #0x7c]
bic r2, r0
str r2, [r1, #0x7c]
bl FUN_020B849C
ldr r0, [r4, #0x3c]
bl MOD05_021E4BA0
bl FUN_0201F178
ldr r1, _021D7C98 ; =UNK_021CED20
add r0, sp, #0x40
mov r2, #0x40
bl MIi_CpuCopyFast
ldr r1, _021D7C9C ; =UNK_021CED98
mov r0, #0x50
ldr r2, [r1, #0x7c]
bic r2, r0
str r2, [r1, #0x7c]
bl FUN_020B849C
ldr r0, [r4, #4]
ldr r0, [r0, #4]
bl MOD05_021D7FD0
ldr r1, _021D7CA0 ; =UNK_02105BB8
mov r0, #0
ldr r1, [r1]
bl FUN_020222B4
add sp, #0x80
pop {r3, r4, r5, pc}
nop
_021D7C98: .word UNK_021CED20
_021D7C9C: .word UNK_021CED98
_021D7CA0: .word UNK_02105BB8
thumb_func_start MOD05_021D7CA4
MOD05_021D7CA4: ; 0x021D7CA4
push {lr}
sub sp, #0xc
cmp r0, #1
bne _021D7CC6
mov r0, #6
str r0, [sp]
mov r1, #1
str r1, [sp, #4]
mov r0, #4
str r0, [sp, #8]
mov r0, #0
add r2, r1, #0
add r3, r0, #0
bl FUN_0200E1D0
add sp, #0xc
pop {pc}
_021D7CC6:
cmp r0, #0
bne _021D7CE6
mov r0, #6
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
mov r0, #4
str r0, [sp, #8]
mov r0, #0
add r1, r0, #0
add r2, r0, #0
add r3, r0, #0
bl FUN_0200E1D0
add sp, #0xc
pop {pc}
_021D7CE6:
bl ErrorHandling
add sp, #0xc
pop {pc}
.balign 4, 0
thumb_func_start MOD05_021D7CF0
MOD05_021D7CF0: ; 0x021D7CF0
push {r3, r4, r5, lr}
add r5, r0, #0
mov r0, #1
mov r1, #0
bl FUN_0201E6E4
ldr r0, _021D7D44 ; =UNK_02105BB8
ldr r0, [r0]
lsl r1, r0, #1
ldr r0, _021D7D48 ; =0x04000540
str r1, [r0]
bl MOD05_021D9B54
str r0, [r5, #0x4c]
bl MOD05_021DA430
str r0, [r5, #0x50]
ldr r0, [r5, #0x1c]
ldr r0, [r0]
bl FUN_02034724
ldr r1, [r5, #0x4c]
bl MOD05_021F4978
str r0, [r5, #0x2c]
ldr r0, [r5, #0x1c]
ldr r0, [r0]
bl FUN_02034738
add r4, r0, #0
ldr r0, [r5, #0x30]
cmp r0, #0
beq _021D7D36
bl ErrorHandling
_021D7D36:
mov r0, #4
add r1, r4, #0
bl MOD05_021D7EE8
str r0, [r5, #0x30]
pop {r3, r4, r5, pc}
nop
_021D7D44: .word UNK_02105BB8
_021D7D48: .word 0x04000540
thumb_func_start MOD05_021D7D4C
MOD05_021D7D4C: ; 0x021D7D4C
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0x28]
ldr r1, [r4, #0x2c]
ldr r2, [r4, #0x4c]
ldr r3, [r4, #0x5c]
bl MOD05_021EF368
str r0, [r4, #0x24]
mov r0, #8
mov r1, #4
bl MOD05_021F4498
add r1, r4, #0
add r1, #0x9c
str r0, [r1]
bl MOD05_021F4CF8
add r1, r4, #0
add r1, #0xa4
str r0, [r1]
ldr r0, [r4, #0x6c]
cmp r0, #0
bne _021D7D86
ldr r0, [r4, #0x24]
ldr r1, _021D7D94 ; =MOD05_021F521C
add r2, r4, #0
bl MOD05_021EF8E8
_021D7D86:
ldr r2, [r4, #0x1c]
ldr r0, [r4, #0x24]
ldr r1, [r2, #8]
ldr r2, [r2, #0xc]
bl MOD05_021EF434
pop {r4, pc}
.balign 4, 0
_021D7D94: .word MOD05_021F521C
thumb_func_start MOD05_021D7D98
MOD05_021D7D98: ; 0x021D7D98
push {r4, r5, lr}
sub sp, #0x14
mov r3, #6
mov r1, #0x20
mov r2, #4
lsl r3, r3, #0xe
add r4, r0, #0
bl MOD05_021E4AE4
mov r1, #0x50
str r0, [r4, #0x3c]
bl MOD05_021E4B38
mov r2, #0x20
str r2, [sp]
mov r0, #5
str r2, [sp, #4]
lsl r0, r0, #0xc
str r0, [sp, #8]
lsl r0, r2, #6
str r0, [sp, #0xc]
lsl r0, r2, #0xb
str r0, [sp, #0x10]
ldr r0, [r4, #0x3c]
mov r1, #4
add r3, r2, #0
bl MOD05_021E4B44
ldr r0, [r4, #0x6c]
sub r0, r0, #1
cmp r0, #1
bhi _021D7DE0
ldr r0, [r4, #0x34]
mov r1, #0
bl FUN_02058804
_021D7DE0:
ldr r0, [r4, #0x6c]
cmp r0, #1
ldr r0, [r4, #0x3c]
bne _021D7DF0
ldr r1, _021D7E44 ; =0x021FC79C
bl MOD05_021E4B84
b _021D7DF6
_021D7DF0:
ldr r1, _021D7E48 ; =0x021FC718
bl MOD05_021E4B84
_021D7DF6:
ldr r0, [r4, #0x30]
bl MOD05_021D7F40
add r5, r0, #0
ldr r0, [r4, #0x30]
bl MOD05_021D7F3C
add r3, r0, #0
ldr r0, [r4, #0x34]
mov r1, #0x20
add r2, r5, #3
bl MOD05_021F1CB8
ldr r0, [r4, #0x38]
bl FUN_02055108
ldr r0, [r4, #0x34]
bl FUN_020577A8
bl FUN_0204F88C
ldr r0, [r4, #0x34]
bl FUN_02058774
ldr r0, [r4, #0x38]
bl FUN_02055360
ldr r1, [r4, #0x24]
bl MOD05_021EF5E0
add r0, r4, #0
mov r1, #4
bl FUN_0204B388
ldr r1, [r4, #4]
str r0, [r1, #0x18]
add sp, #0x14
pop {r4, r5, pc}
nop
_021D7E44: .word 0x021FC79C
_021D7E48: .word 0x021FC718
thumb_func_start MOD05_021D7E4C
MOD05_021D7E4C: ; 0x021D7E4C
push {r3, r4, r5, lr}
add r4, r0, #0
mov r0, #1
add r1, r0, #0
bl FUN_0201E6E4
bl FUN_0201E788
bl MOD05_021DBABC
str r0, [r4, #0x40]
bl MOD05_021D7B64
bl MOD05_021DBA00
str r0, [r4, #0x44]
ldr r0, [r4, #0xc]
bl FUN_02034E30
bl FUN_02034E10
add r5, r0, #0
ldr r0, [r4, #0x38]
bl FUN_02055360
add r1, r4, #0
add r2, r5, #0
mov r3, #1
bl MOD05_021DBD84
ldr r0, [r4, #0x2c]
bl MOD05_021F4CBC
add r1, r0, #0
ldr r0, [r4, #0x40]
bl MOD05_021DB44C
str r0, [r4, #0x48]
add r0, r4, #0
bl MOD05_021DC0B8
ldr r1, [r4, #4]
str r0, [r1, #0xc]
ldr r0, [r4, #8]
bl MOD05_021E320C
ldr r1, [r4, #4]
str r0, [r1, #8]
mov r0, #4
bl MOD05_021E80F8
str r0, [r4, #0x60]
bl MOD05_021DBEF4
ldr r1, [r4, #4]
str r0, [r1, #0x10]
ldr r0, [r4, #0x2c]
bl MOD05_021F4C74
add r1, r0, #0
ldr r0, [r4, #4]
ldr r0, [r0, #0x10]
bl MOD05_021DBF20
add r0, r4, #0
bl FUN_0205CDB4
add r0, r4, #0
bl MOD05_021F38B8
ldr r0, _021D7EE4 ; =MOD05_021D74E0
add r1, r4, #0
bl FUN_02015F10
pop {r3, r4, r5, pc}
nop
_021D7EE4: .word MOD05_021D74E0
thumb_func_start MOD05_021D7EE8
MOD05_021D7EE8: ; 0x021D7EE8
push {r4, r5, r6, lr}
add r6, r1, #0
add r5, r0, #0
mov r1, #0x64
bl AllocFromHeap
add r4, r0, #0
mov r0, #0x60
add r1, r6, #0
add r2, r5, #0
bl AllocAtEndAndReadWholeNarcMemberByIdPair
ldr r1, _021D7F38 ; =0x0000FFFF
mov r2, #0
add r3, r4, #0
_021D7F06:
add r2, r2, #1
str r1, [r3, #4]
add r3, r3, #4
cmp r2, #0x18
blt _021D7F06
ldr r5, _021D7F38 ; =0x0000FFFF
mov r3, #0
add r1, r0, #0
add r2, r4, #0
_021D7F18:
ldrh r6, [r1]
str r6, [r2, #4]
ldrh r6, [r1]
cmp r6, r5
beq _021D7F2C
add r3, r3, #1
add r1, r1, #2
add r2, r2, #4
cmp r3, #0x18
blt _021D7F18
_021D7F2C:
strh r3, [r4]
bl FreeToHeap
add r0, r4, #0
pop {r4, r5, r6, pc}
nop
_021D7F38: .word 0x0000FFFF
thumb_func_start MOD05_021D7F3C
MOD05_021D7F3C: ; 0x021D7F3C
add r0, r0, #4
bx lr
thumb_func_start MOD05_021D7F40
MOD05_021D7F40: ; 0x021D7F40
ldrh r0, [r0]
bx lr
thumb_func_start MOD05_021D7F44
MOD05_021D7F44: ; 0x021D7F44
ldr r3, _021D7F48 ; =FreeToHeap
bx r3
.balign 4, 0
_021D7F48: .word FreeToHeap
thumb_func_start MOD05_021D7F4C
MOD05_021D7F4C: ; 0x021D7F4C
push {r3, r4, r5, r6, r7, lr}
add r5, r1, #0
add r7, r0, #0
add r0, r5, #0
mov r1, #0x14
add r6, r2, #0
bl AllocFromHeap
add r4, r0, #0
str r7, [r4]
str r5, [r4, #4]
mov r0, #0x14
add r7, r6, #0
mul r7, r0
str r6, [r4, #8]
add r0, r5, #0
add r1, r7, #0
bl AllocFromHeap
str r0, [r4, #0xc]
ldr r1, [r4, #0xc]
mov r0, #0
add r2, r7, #0
bl MIi_CpuClear32
add r0, r6, #0
bl FUN_0201B578
add r1, r0, #0
add r0, r5, #0
bl AllocFromHeap
str r0, [r4, #0x10]
ldr r1, [r4, #0x10]
add r0, r6, #0
bl FUN_0201B580
str r0, [r4, #0x10]
add r0, r4, #0
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD05_021D7F9C
MOD05_021D7F9C: ; 0x021D7F9C
push {r4, r5, r6, lr}
add r5, r0, #0
ldr r0, [r5, #8]
mov r6, #0
cmp r0, #0
ble _021D7FBC
add r4, r6, #0
_021D7FAA:
ldr r0, [r5, #0xc]
add r0, r0, r4
bl MOD05_021D80A4
ldr r0, [r5, #8]
add r6, r6, #1
add r4, #0x14
cmp r6, r0
blt _021D7FAA
_021D7FBC:
ldr r0, [r5, #0xc]
bl FreeToHeap
ldr r0, [r5, #0x10]
bl FreeToHeap
add r0, r5, #0
bl FreeToHeap
pop {r4, r5, r6, pc}
thumb_func_start MOD05_021D7FD0
MOD05_021D7FD0: ; 0x021D7FD0
ldr r3, _021D7FD8 ; =FUN_0201B5CC
ldr r0, [r0, #0x10]
bx r3
nop
_021D7FD8: .word FUN_0201B5CC
thumb_func_start MOD05_021D7FDC
MOD05_021D7FDC: ; 0x021D7FDC
push {r4, lr}
add r4, r1, #0
ldr r0, [r4]
ldr r0, [r0]
bl FUN_020373AC
cmp r0, #0
beq _021D7FFE
ldr r0, [r4, #0xc]
ldr r3, [r0, #0x10]
cmp r3, #0
beq _021D7FFE
ldr r1, [r4]
ldr r2, [r4, #0x10]
ldr r1, [r1]
add r0, r4, #0
blx r3
_021D7FFE:
pop {r4, pc}
thumb_func_start MOD05_021D8000
MOD05_021D8000: ; 0x021D8000
push {r4, lr}
add r4, r1, #0
ldr r0, [r4]
ldr r0, [r0]
bl FUN_020373AC
cmp r0, #0
beq _021D8022
ldr r0, [r4, #0xc]
ldr r3, [r0, #0x14]
cmp r3, #0
beq _021D8022
ldr r1, [r4]
ldr r2, [r4, #0x10]
ldr r1, [r1]
add r0, r4, #0
blx r3
_021D8022:
pop {r4, pc}
thumb_func_start MOD05_021D8024
MOD05_021D8024: ; 0x021D8024
push {r4, r5, r6, lr}
add r5, r0, #0
ldr r2, [r5, #8]
add r6, r1, #0
mov r1, #0
ldr r4, [r5, #0xc]
cmp r2, #0
ble _021D8094
_021D8034:
ldr r0, [r4, #4]
cmp r0, #0
bne _021D808C
ldr r0, _021D809C ; =MOD05_021D7FDC
ldr r2, [r6]
add r1, r4, #0
bl FUN_0200CA44
str r0, [r4, #4]
ldr r0, [r5, #0x10]
ldr r1, _021D80A0 ; =MOD05_021D8000
ldr r3, [r6]
add r2, r4, #0
bl FUN_0201B60C
str r0, [r4, #8]
str r5, [r4]
str r6, [r4, #0xc]
ldr r0, [r4, #4]
cmp r0, #0
bne _021D8062
bl ErrorHandling
_021D8062:
ldr r0, [r4, #8]
cmp r0, #0
bne _021D806C
bl ErrorHandling
_021D806C:
ldrh r1, [r6, #4]
cmp r1, #0
beq _021D807A
ldr r0, [r5, #4]
bl AllocFromHeap
str r0, [r4, #0x10]
_021D807A:
ldr r3, [r6, #8]
cmp r3, #0
beq _021D8088
ldr r1, [r5]
ldr r2, [r4, #0x10]
add r0, r4, #0
blx r3
_021D8088:
add r0, r4, #0
pop {r4, r5, r6, pc}
_021D808C:
add r1, r1, #1
add r4, #0x14
cmp r1, r2
blt _021D8034
_021D8094:
bl ErrorHandling
mov r0, #0
pop {r4, r5, r6, pc}
.balign 4, 0
_021D809C: .word MOD05_021D7FDC
_021D80A0: .word MOD05_021D8000
thumb_func_start MOD05_021D80A4
MOD05_021D80A4: ; 0x021D80A4
push {r4, lr}
add r4, r0, #0
ldr r1, [r4, #4]
cmp r1, #0
beq _021D80E2
ldr r1, [r4, #0xc]
ldr r3, [r1, #0xc]
cmp r3, #0
beq _021D80BE
ldr r1, [r4]
ldr r2, [r4, #0x10]
ldr r1, [r1]
blx r3
_021D80BE:
ldr r0, [r4, #0xc]
ldrh r0, [r0, #4]
cmp r0, #0
beq _021D80CC
ldr r0, [r4, #0x10]
bl FreeToHeap
_021D80CC:
ldr r0, [r4, #4]
bl FUN_0200CAB4
ldr r0, [r4, #8]
bl FUN_0200CAB4
mov r0, #0
add r1, r4, #0
mov r2, #0x14
bl MIi_CpuClear32
_021D80E2:
pop {r4, pc}
thumb_func_start MOD05_021D80E4
MOD05_021D80E4: ; 0x021D80E4
ldr r0, [r0, #0x10]
bx lr
thumb_func_start MOD05_021D80E8
MOD05_021D80E8: ; 0x021D80E8
ldrh r2, [r0]
mov r1, #1
bic r2, r1
strh r2, [r0]
ldrh r2, [r0]
mov r1, #2
bic r2, r1
strh r2, [r0]
ldrh r2, [r0]
mov r1, #4
bic r2, r1
strh r2, [r0]
ldrh r2, [r0]
mov r1, #8
bic r2, r1
strh r2, [r0]
ldrh r2, [r0]
mov r1, #0x10
bic r2, r1
strh r2, [r0]
ldrh r2, [r0]
mov r1, #0x20
bic r2, r1
strh r2, [r0]
ldrh r2, [r0]
mov r1, #0x40
bic r2, r1
strh r2, [r0]
ldrh r2, [r0]
mov r1, #0x80
bic r2, r1
strh r2, [r0]
ldrh r2, [r0]
ldr r1, _021D8154 ; =0xFFFFFEFF
and r1, r2
strh r1, [r0]
ldrh r2, [r0]
ldr r1, _021D8158 ; =0xFFFFFDFF
and r1, r2
strh r1, [r0]
ldrh r2, [r0]
ldr r1, _021D815C ; =0xFFFFFBFF
and r1, r2
strh r1, [r0]
ldrh r2, [r0]
ldr r1, _021D8160 ; =0xFFFFF7FF
and r2, r1
strh r2, [r0]
mov r2, #0xff
strb r2, [r0, #2]
asr r1, r1, #0xc
strb r1, [r0, #3]
bx lr
nop
_021D8154: .word 0xFFFFFEFF
_021D8158: .word 0xFFFFFDFF
_021D815C: .word 0xFFFFFBFF
_021D8160: .word 0xFFFFF7FF
thumb_func_start MOD05_021D8164
MOD05_021D8164: ; 0x021D8164
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
add r7, r1, #0
add r5, r0, #0
add r6, r2, #0
add r4, r3, #0
bl MOD05_021D80E8
ldr r0, [r7, #0x38]
bl FUN_02055378
str r0, [sp, #4]
ldr r0, [r7, #0x38]
bl FUN_02055370
str r0, [sp]
ldr r0, [r7, #0x38]
bl FUN_020552F8
add r2, r0, #0
ldr r0, [sp, #4]
strh r6, [r5, #4]
strh r4, [r5, #6]
cmp r0, #3
beq _021D819A
cmp r0, #0
bne _021D81F8
_021D819A:
mov r0, #1
lsl r0, r0, #0xa
tst r0, r6
beq _021D81AA
ldrh r1, [r5]
mov r0, #4
orr r0, r1
strh r0, [r5]
_021D81AA:
mov r0, #2
lsl r0, r0, #0xa
tst r0, r6
beq _021D81BA
ldrh r1, [r5]
mov r0, #8
orr r0, r1
strh r0, [r5]
_021D81BA:
mov r3, #1
add r0, r6, #0
tst r0, r3
beq _021D81CE
ldrh r1, [r5]
mov r0, #1
bic r1, r0
add r0, r1, #0
orr r0, r3
strh r0, [r5]
_021D81CE:
mov r0, #2
tst r0, r6
beq _021D81DC
ldrh r1, [r5]
mov r0, #0x80
orr r0, r1
strh r0, [r5]
_021D81DC:
mov r0, #0xf0
add r3, r4, #0
and r3, r0
beq _021D81EC
ldrh r1, [r5]
mov r0, #0x10
orr r0, r1
strh r0, [r5]
_021D81EC:
cmp r3, #0
beq _021D81F8
ldrh r1, [r5]
mov r0, #0x20
orr r0, r1
strh r0, [r5]
_021D81F8:
ldr r0, [sp, #4]
cmp r0, #3
bne _021D820C
ldr r0, [sp]
cmp r0, #1
bne _021D820C
ldrh r1, [r5]
mov r0, #0x40
orr r0, r1
strh r0, [r5]
_021D820C:
ldr r0, [sp, #4]
cmp r0, #3
bne _021D821A
ldrh r1, [r5]
mov r0, #2
orr r0, r1
strh r0, [r5]
_021D821A:
cmp r2, #0
bne _021D8224
mov r0, #0x40
tst r0, r4
bne _021D8242
_021D8224:
cmp r2, #1
bne _021D822E
mov r0, #0x80
tst r0, r4
bne _021D8242
_021D822E:
cmp r2, #2
bne _021D8238
mov r0, #0x20
tst r0, r4
bne _021D8242
_021D8238:
cmp r2, #3
bne _021D8246
mov r0, #0x10
tst r0, r4
beq _021D8246
_021D8242:
strb r2, [r5, #3]
b _021D824C
_021D8246:
mov r0, #0
mvn r0, r0
strb r0, [r5, #3]
_021D824C:
ldr r0, [r7, #0x38]
add r1, r6, #0
add r2, r4, #0
bl FUN_02057020
strb r0, [r5, #2]
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD05_021D825C
MOD05_021D825C: ; 0x021D825C
push {r4, r5, r6, lr}
sub sp, #0x10
add r4, r1, #0
add r5, r0, #0
ldr r0, [r4, #0x38]
bl FUN_02055378
add r6, r0, #0
ldr r0, [r4, #0x1c]
ldr r1, [r0]
ldr r0, _021D831C ; =0x00000156
cmp r1, r0
beq _021D827C
add sp, #0x10
mov r0, #0
pop {r4, r5, r6, pc}
_021D827C:
ldr r0, [r4, #0xc]
bl FUN_020462AC
bl FUN_0205ED3C
cmp r0, #0
bne _021D8290
add sp, #0x10
mov r0, #0
pop {r4, r5, r6, pc}
_021D8290:
cmp r6, #0
bne _021D82EC
ldr r0, [r4, #0x38]
bl FUN_02055370
ldrb r1, [r5, #2]
lsl r2, r1, #0x18
asr r3, r2, #0x18
mov r2, #0
mvn r2, r2
cmp r3, r2
beq _021D82CE
cmp r0, #1
bne _021D82CE
add r0, r4, #0
add r2, sp, #0xc
add r3, sp, #8
bl MOD05_021D9130
ldr r1, [sp, #0xc]
ldr r2, [sp, #8]
add r0, r4, #0
bl FUN_0204A6E0
bl FUN_0205478C
cmp r0, #0
beq _021D8314
add sp, #0x10
mov r0, #1
pop {r4, r5, r6, pc}
_021D82CE:
mov r0, #3
ldrsb r1, [r5, r0]
sub r0, r0, #4
cmp r1, r0
beq _021D8314
add r0, r4, #0
bl MOD05_021D9194
bl FUN_0205478C
cmp r0, #0
beq _021D8314
add sp, #0x10
mov r0, #1
pop {r4, r5, r6, pc}
_021D82EC:
cmp r6, #3
bne _021D8314
ldrb r1, [r5, #2]
add r0, r4, #0
add r2, sp, #4
add r3, sp, #0
bl MOD05_021D9130
ldr r1, [sp, #4]
ldr r2, [sp]
add r0, r4, #0
bl FUN_0204A6E0
bl FUN_0205478C
cmp r0, #0
beq _021D8314
add sp, #0x10
mov r0, #1
pop {r4, r5, r6, pc}
_021D8314:
mov r0, #0
add sp, #0x10
pop {r4, r5, r6, pc}
nop
_021D831C: .word 0x00000156
thumb_func_start MOD05_021D8320
MOD05_021D8320: ; 0x021D8320
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
add r5, r0, #0
ldrh r0, [r5]
add r4, r1, #0
lsl r0, r0, #0x14
lsr r0, r0, #0x1f
bne _021D8342
add r0, r4, #0
mov r1, #1
bl FUN_0203989C
cmp r0, #1
bne _021D8342
add sp, #8
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021D8342:
ldrh r0, [r5]
lsl r0, r0, #0x14
lsr r0, r0, #0x1f
bne _021D8384
ldr r0, [r4, #0xc]
bl FUN_0206BB1C
bl FUN_0204A248
add r6, r0, #0
ldr r0, [r4, #0xc]
bl FUN_020462AC
bl FUN_0205ED3C
cmp r0, #1
bne _021D8366
mov r6, #1
_021D8366:
add r0, r4, #0
add r1, r6, #0
bl FUN_0205C598
cmp r0, #1
bne _021D8384
ldr r0, [r4, #0x38]
bl FUN_02055B14
ldr r0, [r4, #0x34]
bl FUN_02058780
add sp, #8
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021D8384:
ldrh r0, [r5]
lsl r0, r0, #0x19
lsr r0, r0, #0x1f
beq _021D83A6
ldr r0, [r4, #0xc]
bl FUN_020462AC
bl FUN_0205ED5C
add r0, r4, #0
bl MOD05_021D8D24
cmp r0, #1
bne _021D83A6
add sp, #8
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021D83A6:
add r0, r5, #0
add r1, r4, #0
bl MOD05_021D825C
cmp r0, #0
beq _021D83C2
add r0, r4, #0
mov r1, #4
mov r2, #0
bl FUN_02038C78
add sp, #8
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021D83C2:
ldrh r1, [r5, #4]
ldrh r2, [r5, #6]
ldr r0, [r4, #0x38]
mov r6, #0
bl FUN_02057020
add r7, r0, #0
ldr r0, [r4, #0xc]
bl FUN_020462AC
mov r1, #2
bl FUN_0205F264
cmp r0, #0
beq _021D83E4
mov r0, #1
orr r6, r0
_021D83E4:
ldr r0, [r4, #0xc]
bl FUN_0206BB1C
mov r1, #0x7f
bl FUN_0204A138
cmp r0, #0xff
beq _021D83F8
mov r0, #2
orr r6, r0
_021D83F8:
ldr r1, [r4, #0x38]
add r0, r4, #0
add r2, r7, #0
add r3, r6, #0
bl MOD05_021E61A4
cmp r0, #1
bne _021D840E
add sp, #8
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021D840E:
ldrh r0, [r5]
lsl r0, r0, #0x1e
lsr r0, r0, #0x1f
beq _021D8436
add r0, r4, #0
bl MOD05_021D8954
cmp r0, #0
beq _021D8426
add sp, #8
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021D8426:
add r0, r4, #0
bl MOD05_021D859C
cmp r0, #1
bne _021D8436
add sp, #8
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021D8436:
ldrh r0, [r5]
lsl r0, r0, #0x1b
lsr r0, r0, #0x1f
beq _021D845A
ldr r0, [r4, #0x38]
bl FUN_020552F8
ldrb r1, [r5, #2]
cmp r1, r0
bne _021D845A
add r0, r4, #0
bl MOD05_021D859C
cmp r0, #1
bne _021D845A
add sp, #8
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021D845A:
ldrh r0, [r5]
lsl r0, r0, #0x1f
lsr r0, r0, #0x1f
beq _021D8532
add r0, r4, #0
add r1, sp, #4
bl FUN_02037090
cmp r0, #1
bne _021D84B8
ldr r0, [r4, #0x38]
bl FUN_02055B30
cmp r0, #1
bne _021D8486
ldr r0, [r4, #0x38]
bl FUN_020552F8
add r1, r0, #0
ldr r0, [r4, #0x38]
bl FUN_02055B8C
_021D8486:
ldr r0, [sp, #4]
bl FUN_02058488
cmp r0, #9
beq _021D84A8
ldr r5, [sp, #4]
add r0, r5, #0
bl FUN_02058498
add r1, r0, #0
lsl r1, r1, #0x10
add r0, r4, #0
lsr r1, r1, #0x10
add r2, r5, #0
bl FUN_02038C78
b _021D84B2
_021D84A8:
ldr r2, [sp, #4]
add r0, r4, #0
mov r1, #0
bl FUN_02038C78
_021D84B2:
add sp, #8
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021D84B8:
add r0, r4, #0
bl FUN_02034AF0
add r6, r0, #0
add r0, r4, #0
bl FUN_02034AF8
add r2, r0, #0
add r0, r4, #0
add r1, r6, #0
bl FUN_020370BC
add r1, r0, #0
ldr r0, _021D8594 ; =0x0000FFFF
cmp r1, r0
beq _021D84EA
lsl r1, r1, #0x10
add r0, r4, #0
lsr r1, r1, #0x10
mov r2, #0
bl FUN_02038C78
add sp, #8
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021D84EA:
add r0, r4, #0
add r1, sp, #0
bl MOD05_021F4D2C
cmp r0, #0
beq _021D850A
ldr r1, [sp]
add r0, r4, #0
lsl r1, r1, #0x10
lsr r1, r1, #0x10
mov r2, #0
bl FUN_02038C78
add sp, #8
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021D850A:
add r0, r4, #0
bl MOD05_021D9194
add r1, r0, #0
add r0, r4, #0
bl MOD05_021D8BAC
add r1, r0, #0
ldr r0, _021D8594 ; =0x0000FFFF
cmp r1, r0
beq _021D8532
lsl r1, r1, #0x10
add r0, r4, #0
lsr r1, r1, #0x10
mov r2, #0
bl FUN_02038C78
add sp, #8
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021D8532:
ldrh r0, [r5]
lsl r0, r0, #0x1a
lsr r0, r0, #0x1f
beq _021D8552
add r0, r4, #0
add r1, r5, #0
bl MOD05_021D89BC
cmp r0, #1
bne _021D8552
add r0, r4, #0
bl MOD05_021D9290
add sp, #8
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021D8552:
ldrh r0, [r5]
lsl r0, r0, #0x1c
lsr r0, r0, #0x1f
beq _021D856A
add r0, r4, #0
bl FUN_0205DB44
cmp r0, #1
bne _021D856A
add sp, #8
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021D856A:
ldrh r0, [r5]
lsl r0, r0, #0x1d
lsr r0, r0, #0x1f
beq _021D858E
add r0, r4, #0
bl FUN_02035068
cmp r0, #1
bne _021D858E
ldr r0, _021D8598 ; =0x000005FD
bl FUN_020054C8
add r0, r4, #0
bl FUN_02035080
add sp, #8
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021D858E:
mov r0, #0
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_021D8594: .word 0x0000FFFF
_021D8598: .word 0x000005FD
thumb_func_start MOD05_021D859C
MOD05_021D859C: ; 0x021D859C
push {r3, r4, r5, lr}
add r1, sp, #0
add r5, r0, #0
bl FUN_02037230
cmp r0, #1
bne _021D85C4
ldr r4, [sp]
add r0, r4, #0
bl FUN_02058498
add r1, r0, #0
lsl r1, r1, #0x10
add r0, r5, #0
lsr r1, r1, #0x10
add r2, r4, #0
bl FUN_02038C78
mov r0, #1
pop {r3, r4, r5, pc}
_021D85C4:
add r0, r5, #0
bl FUN_02034AF0
add r4, r0, #0
add r0, r5, #0
bl FUN_02034AF8
add r2, r0, #0
add r0, r5, #0
add r1, r4, #0
bl FUN_020371D0
add r1, r0, #0
ldr r0, _021D85F8 ; =0x0000FFFF
cmp r1, r0
beq _021D85F4
lsl r1, r1, #0x10
add r0, r5, #0
lsr r1, r1, #0x10
mov r2, #0
bl FUN_02038C78
mov r0, #1
pop {r3, r4, r5, pc}
_021D85F4:
mov r0, #0
pop {r3, r4, r5, pc}
.balign 4, 0
_021D85F8: .word 0x0000FFFF
thumb_func_start MOD05_021D85FC
MOD05_021D85FC: ; 0x021D85FC
push {r4, lr}
add r4, r0, #0
ldrh r0, [r4]
lsl r0, r0, #0x14
lsr r0, r0, #0x1f
bne _021D8618
add r0, r1, #0
mov r1, #1
bl FUN_0203989C
cmp r0, #1
bne _021D8618
mov r0, #1
pop {r4, pc}
_021D8618:
bl FUN_02031438
cmp r0, #0
bne _021D862C
bl FUN_02031190
bl FUN_0204F6B4
cmp r0, #0
beq _021D8630
_021D862C:
mov r0, #0
pop {r4, pc}
_021D8630:
bl MOD18_0223DCB4
ldrh r0, [r4]
lsl r1, r0, #0x1f
lsr r1, r1, #0x1f
beq _021D8646
mov r0, #0
bl MOD18_0223DCD0
mov r0, #0
pop {r4, pc}
_021D8646:
lsl r0, r0, #0x1d
lsr r0, r0, #0x1f
beq _021D8654
bl MOD18_0223DC98
mov r0, #0
pop {r4, pc}
_021D8654:
bl MOD18_0223D8F4
mov r0, #0
pop {r4, pc}
thumb_func_start MOD05_021D865C
MOD05_021D865C: ; 0x021D865C
push {r3, r4, r5, lr}
add r4, r0, #0
ldrh r0, [r4]
add r5, r1, #0
lsl r0, r0, #0x1a
lsr r0, r0, #0x1f
beq _021D868E
mov r0, #3
ldrsb r0, [r4, r0]
cmp r0, #1
bne _021D868E
add r0, r5, #0
bl MOD05_021D9178
bl FUN_020547E0
cmp r0, #0
beq _021D868E
ldr r1, _021D872C ; =0x0000238D
add r0, r5, #0
mov r2, #0
bl FUN_02038C78
mov r0, #1
pop {r3, r4, r5, pc}
_021D868E:
bl FUN_02031438
cmp r0, #0
bne _021D86AA
bl FUN_02031190
bl FUN_0204F6B4
cmp r0, #0
bne _021D86AA
bl FUN_02050A68
cmp r0, #0
bne _021D86AE
_021D86AA:
mov r0, #0
pop {r3, r4, r5, pc}
_021D86AE:
ldrh r0, [r4]
lsl r0, r0, #0x1f
lsr r0, r0, #0x1f
beq _021D86FE
add r0, r5, #0
add r1, sp, #0
bl FUN_02037090
cmp r0, #1
bne _021D86FE
ldr r0, [sp]
bl FUN_02058480
cmp r0, #1
beq _021D86FE
ldr r0, [r5, #0x38]
bl FUN_02055B30
cmp r0, #1
bne _021D86E4
ldr r0, [r5, #0x38]
bl FUN_020552F8
add r1, r0, #0
ldr r0, [r5, #0x38]
bl FUN_02055B8C
_021D86E4:
ldr r4, [sp]
add r0, r4, #0
bl FUN_02058498
add r1, r0, #0
lsl r1, r1, #0x10
add r0, r5, #0
lsr r1, r1, #0x10
add r2, r4, #0
bl FUN_02038C78
mov r0, #1
pop {r3, r4, r5, pc}
_021D86FE:
ldrh r0, [r4]
lsl r1, r0, #0x1f
lsr r1, r1, #0x1f
beq _021D8710
add r0, r5, #0
bl FUN_02052044
mov r0, #1
pop {r3, r4, r5, pc}
_021D8710:
lsl r0, r0, #0x1d
lsr r0, r0, #0x1f
beq _021D8726
ldr r0, _021D8730 ; =0x000005FD
bl FUN_020054C8
add r0, r5, #0
bl FUN_0203515C
mov r0, #1
pop {r3, r4, r5, pc}
_021D8726:
mov r0, #0
pop {r3, r4, r5, pc}
nop
_021D872C: .word 0x0000238D
_021D8730: .word 0x000005FD
thumb_func_start MOD05_021D8734
MOD05_021D8734: ; 0x021D8734
push {r3, r4, r5, lr}
mov r5, #0
mov r4, #1
_021D873A:
add r0, r4, #0
bl FUN_0202DFA4
cmp r0, #0
beq _021D8746
add r5, r5, #1
_021D8746:
add r4, r4, #1
cmp r4, #5
blt _021D873A
cmp r5, #1
blt _021D8754
mov r0, #1
pop {r3, r4, r5, pc}
_021D8754:
mov r0, #0
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021D8758
MOD05_021D8758: ; 0x021D8758
push {r3, r4, r5, lr}
add r4, r0, #0
add r5, r1, #0
bl FUN_0202CB8C
mov r1, #0xfe
tst r0, r1
beq _021D878A
bl MOD05_021D8734
cmp r0, #0
beq _021D8786
bl FUN_02030F20
cmp r0, #1
ble _021D8786
add r0, r5, #0
mov r1, #5
mov r2, #0
bl FUN_02038C78
mov r0, #1
pop {r3, r4, r5, pc}
_021D8786:
mov r0, #0
pop {r3, r4, r5, pc}
_021D878A:
ldrh r0, [r4]
lsl r0, r0, #0x1f
lsr r0, r0, #0x1f
beq _021D87D4
add r0, r5, #0
add r1, sp, #0
bl FUN_02037090
cmp r0, #1
bne _021D87D4
ldr r0, [r5, #0x38]
bl FUN_02055B30
cmp r0, #1
bne _021D87B6
ldr r0, [r5, #0x38]
bl FUN_020552F8
add r1, r0, #0
ldr r0, [r5, #0x38]
bl FUN_02055B8C
_021D87B6:
bl FUN_02031C10
ldr r4, [sp]
add r0, r4, #0
bl FUN_02058498
add r1, r0, #0
lsl r1, r1, #0x10
add r0, r5, #0
lsr r1, r1, #0x10
add r2, r4, #0
bl FUN_02038C78
mov r0, #1
pop {r3, r4, r5, pc}
_021D87D4:
ldrh r0, [r4]
lsl r0, r0, #0x19
lsr r0, r0, #0x1f
beq _021D87F4
add r0, r5, #0
bl MOD05_021D9178
bl FUN_02054B60
cmp r0, #0
beq _021D87F4
add r0, r5, #0
bl FUN_02049D9C
mov r0, #1
pop {r3, r4, r5, pc}
_021D87F4:
ldrh r0, [r4]
lsl r0, r0, #0x1d
lsr r0, r0, #0x1f
beq _021D8816
ldr r0, _021D881C ; =0x000005FD
bl FUN_020054C8
add r0, r5, #0
bl FUN_02035118
mov r0, #4
bl FUN_02052B74
bl FUN_02031C2C
mov r0, #1
pop {r3, r4, r5, pc}
_021D8816:
mov r0, #0
pop {r3, r4, r5, pc}
nop
_021D881C: .word 0x000005FD
thumb_func_start MOD05_021D8820
MOD05_021D8820: ; 0x021D8820
push {r3, r4, r5, r6, lr}
sub sp, #4
add r5, r0, #0
ldrh r0, [r5]
add r4, r1, #0
lsl r0, r0, #0x14
lsr r0, r0, #0x1f
bne _021D8842
add r0, r4, #0
mov r1, #1
bl FUN_0203989C
cmp r0, #1
bne _021D8842
add sp, #4
mov r0, #1
pop {r3, r4, r5, r6, pc}
_021D8842:
ldrh r0, [r5]
lsl r0, r0, #0x1f
lsr r0, r0, #0x1f
beq _021D88FA
add r0, r4, #0
add r1, sp, #0
bl FUN_02037090
cmp r0, #1
bne _021D88A0
ldr r0, [r4, #0x38]
bl FUN_02055B30
cmp r0, #1
bne _021D886E
ldr r0, [r4, #0x38]
bl FUN_020552F8
add r1, r0, #0
ldr r0, [r4, #0x38]
bl FUN_02055B8C
_021D886E:
ldr r0, [sp]
bl FUN_02058488
cmp r0, #9
beq _021D8890
ldr r5, [sp]
add r0, r5, #0
bl FUN_02058498
add r1, r0, #0
lsl r1, r1, #0x10
add r0, r4, #0
lsr r1, r1, #0x10
add r2, r5, #0
bl FUN_02038C78
b _021D889A
_021D8890:
ldr r2, [sp]
add r0, r4, #0
mov r1, #0
bl FUN_02038C78
_021D889A:
add sp, #4
mov r0, #1
pop {r3, r4, r5, r6, pc}
_021D88A0:
add r0, r4, #0
bl FUN_02034AF0
add r6, r0, #0
add r0, r4, #0
bl FUN_02034AF8
add r2, r0, #0
add r0, r4, #0
add r1, r6, #0
bl FUN_020370BC
add r1, r0, #0
ldr r0, _021D894C ; =0x0000FFFF
cmp r1, r0
beq _021D88D2
lsl r1, r1, #0x10
add r0, r4, #0
lsr r1, r1, #0x10
mov r2, #0
bl FUN_02038C78
add sp, #4
mov r0, #1
pop {r3, r4, r5, r6, pc}
_021D88D2:
add r0, r4, #0
bl MOD05_021D9194
add r1, r0, #0
add r0, r4, #0
bl MOD05_021D8BAC
add r1, r0, #0
ldr r0, _021D894C ; =0x0000FFFF
cmp r1, r0
beq _021D88FA
lsl r1, r1, #0x10
add r0, r4, #0
lsr r1, r1, #0x10
mov r2, #0
bl FUN_02038C78
add sp, #4
mov r0, #1
pop {r3, r4, r5, r6, pc}
_021D88FA:
ldrh r0, [r5]
lsl r0, r0, #0x1a
lsr r0, r0, #0x1f
beq _021D8914
add r0, r4, #0
add r1, r5, #0
bl MOD05_021D89BC
cmp r0, #1
bne _021D8914
add sp, #4
mov r0, #1
pop {r3, r4, r5, r6, pc}
_021D8914:
ldrh r0, [r5]
lsl r0, r0, #0x1c
lsr r0, r0, #0x1f
beq _021D892C
add r0, r4, #0
bl FUN_0205DB44
cmp r0, #1
bne _021D892C
add sp, #4
mov r0, #1
pop {r3, r4, r5, r6, pc}
_021D892C:
ldrh r0, [r5]
lsl r0, r0, #0x1d
lsr r0, r0, #0x1f
beq _021D8946
ldr r0, _021D8950 ; =0x000005FD
bl FUN_020054C8
add r0, r4, #0
bl FUN_02035080
add sp, #4
mov r0, #1
pop {r3, r4, r5, r6, pc}
_021D8946:
mov r0, #0
add sp, #4
pop {r3, r4, r5, r6, pc}
.balign 4, 0
_021D894C: .word 0x0000FFFF
_021D8950: .word 0x000005FD
thumb_func_start MOD05_021D8954
MOD05_021D8954: ; 0x021D8954
push {r4, lr}
sub sp, #8
add r4, r0, #0
add r1, sp, #4
add r2, sp, #0
bl MOD05_021D90F8
ldr r0, [r4, #0xc]
bl FUN_020462AC
bl FUN_0205F244
cmp r0, #1
bne _021D8998
ldr r1, [sp, #4]
ldr r2, [sp]
add r0, r4, #0
bl FUN_0204BA68
cmp r0, #1
bne _021D8992
add r0, r4, #0
bl FUN_0204BA90
add r1, r0, #0
add r0, r4, #0
bl FUN_02046F70
add sp, #8
mov r0, #1
pop {r4, pc}
_021D8992:
add sp, #8
mov r0, #0
pop {r4, pc}
_021D8998:
ldr r0, [r4, #0x1c]
ldr r0, [r0]
bl FUN_020347D8
cmp r0, #0
beq _021D89B4
add r0, r4, #0
bl MOD06_0223BA04
cmp r0, #1
bne _021D89B4
add sp, #8
mov r0, #1
pop {r4, pc}
_021D89B4:
mov r0, #0
add sp, #8
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021D89BC
MOD05_021D89BC: ; 0x021D89BC
push {r4, r5, r6, lr}
sub sp, #0x28
add r5, r1, #0
mov r1, #3
ldrsb r2, [r5, r1]
sub r1, r1, #4
add r6, r0, #0
cmp r2, r1
bne _021D89D4
add sp, #0x28
mov r0, #0
pop {r4, r5, r6, pc}
_021D89D4:
bl MOD06_022426AC
cmp r0, #0
beq _021D89E2
add sp, #0x28
mov r0, #1
pop {r4, r5, r6, pc}
_021D89E2:
add r0, r6, #0
add r1, sp, #0x10
add r2, sp, #0xc
bl MOD05_021D9114
ldr r1, [sp, #0x10]
ldr r2, [sp, #0xc]
add r0, r6, #0
bl FUN_0204A6B4
cmp r0, #0
bne _021D8A00
add sp, #0x28
mov r0, #0
pop {r4, r5, r6, pc}
_021D8A00:
ldr r1, [sp, #0x10]
ldr r2, [sp, #0xc]
add r0, r6, #0
add r3, sp, #0x14
bl MOD05_021D91B0
cmp r0, #0
beq _021D8A4A
mov r0, #3
ldrsb r1, [r5, r0]
sub r0, r0, #4
cmp r1, r0
beq _021D8A4A
ldr r1, [sp, #0x10]
ldr r2, [sp, #0xc]
add r0, r6, #0
bl FUN_0204A6E0
bl FUN_020547B0
cmp r0, #0
beq _021D8A4A
mov r3, #0
str r3, [sp]
mov r0, #3
ldrsb r0, [r5, r0]
str r0, [sp, #4]
mov r0, #1
str r0, [sp, #8]
ldr r1, [sp, #0x14]
ldr r2, [sp, #0x18]
add r0, r6, #0
bl FUN_0204C260
add sp, #0x28
mov r0, #1
pop {r4, r5, r6, pc}
_021D8A4A:
add r0, r6, #0
add r1, sp, #0x10
add r2, sp, #0xc
bl MOD05_021D90F8
ldr r1, [sp, #0x10]
ldr r2, [sp, #0xc]
add r0, r6, #0
bl FUN_0204A6E0
add r4, r0, #0
bl FUN_020547BC
cmp r0, #0
bne _021D8A72
add r0, r4, #0
bl FUN_020547EC
cmp r0, #0
beq _021D8A80
_021D8A72:
mov r0, #3
ldrsb r0, [r5, r0]
cmp r0, #3
beq _021D8AF4
add sp, #0x28
mov r0, #0
pop {r4, r5, r6, pc}
_021D8A80:
add r0, r4, #0
bl FUN_020547C8
cmp r0, #0
bne _021D8A94
add r0, r4, #0
bl FUN_020547F8
cmp r0, #0
beq _021D8AA2
_021D8A94:
mov r0, #3
ldrsb r0, [r5, r0]
cmp r0, #2
beq _021D8AF4
add sp, #0x28
mov r0, #0
pop {r4, r5, r6, pc}
_021D8AA2:
add r0, r4, #0
bl FUN_020547E0
cmp r0, #0
bne _021D8AB6
add r0, r4, #0
bl FUN_02054810
cmp r0, #0
beq _021D8AC4
_021D8AB6:
mov r0, #3
ldrsb r0, [r5, r0]
cmp r0, #1
beq _021D8AF4
add sp, #0x28
mov r0, #0
pop {r4, r5, r6, pc}
_021D8AC4:
add r0, r4, #0
bl FUN_020548D8
cmp r0, #0
beq _021D8ADC
mov r0, #3
ldrsb r0, [r5, r0]
cmp r0, #3
beq _021D8AF4
add sp, #0x28
mov r0, #0
pop {r4, r5, r6, pc}
_021D8ADC:
add r0, r4, #0
bl FUN_020548E4
cmp r0, #0
beq _021D8AF4
mov r0, #3
ldrsb r0, [r5, r0]
cmp r0, #2
beq _021D8AF4
add sp, #0x28
mov r0, #0
pop {r4, r5, r6, pc}
_021D8AF4:
ldr r1, [sp, #0x10]
ldr r2, [sp, #0xc]
add r0, r6, #0
add r3, sp, #0x14
bl MOD05_021D91B0
cmp r0, #0
bne _021D8B0A
add sp, #0x28
mov r0, #0
pop {r4, r5, r6, pc}
_021D8B0A:
add r0, r4, #0
bl FUN_020547B0
cmp r0, #0
beq _021D8B18
mov r1, #1
b _021D8B90
_021D8B18:
add r0, r4, #0
bl FUN_020548D8
cmp r0, #0
beq _021D8B26
mov r1, #3
b _021D8B90
_021D8B26:
add r0, r4, #0
bl FUN_020548E4
cmp r0, #0
beq _021D8B34
mov r1, #3
b _021D8B90
_021D8B34:
add r0, r4, #0
bl FUN_020547BC
cmp r0, #0
bne _021D8B70
add r0, r4, #0
bl FUN_020547EC
cmp r0, #0
bne _021D8B70
add r0, r4, #0
bl FUN_020547C8
cmp r0, #0
bne _021D8B70
add r0, r4, #0
bl FUN_020547F8
cmp r0, #0
bne _021D8B70
add r0, r4, #0
bl FUN_020547E0
cmp r0, #0
bne _021D8B70
add r0, r4, #0
bl FUN_02054810
cmp r0, #0
beq _021D8B8A
_021D8B70:
mov r3, #0
str r3, [sp]
mov r0, #3
ldrsb r0, [r5, r0]
str r0, [sp, #4]
ldr r1, [sp, #0x14]
ldr r2, [sp, #0x18]
add r0, r6, #0
bl FUN_0204C29C
add sp, #0x28
mov r0, #1
pop {r4, r5, r6, pc}
_021D8B8A:
add sp, #0x28
mov r0, #0
pop {r4, r5, r6, pc}
_021D8B90:
mov r3, #0
str r3, [sp]
mov r0, #3
ldrsb r0, [r5, r0]
str r0, [sp, #4]
str r1, [sp, #8]
ldr r1, [sp, #0x14]
ldr r2, [sp, #0x18]
add r0, r6, #0
bl FUN_0204C260
mov r0, #1
add sp, #0x28
pop {r4, r5, r6, pc}
thumb_func_start MOD05_021D8BAC
MOD05_021D8BAC: ; 0x021D8BAC
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
ldr r0, [r5, #0x38]
add r4, r1, #0
bl FUN_020552F8
add r6, r0, #0
add r0, r4, #0
bl FUN_02054878
cmp r0, #0
beq _021D8BCC
cmp r6, #0
bne _021D8BCC
ldr r0, _021D8CE4 ; =0x000007E2
pop {r3, r4, r5, r6, r7, pc}
_021D8BCC:
add r0, r4, #0
bl FUN_02054914
cmp r0, #0
beq _021D8BDA
ldr r0, _021D8CE8 ; =0x000009C4
pop {r3, r4, r5, r6, r7, pc}
_021D8BDA:
add r0, r4, #0
bl FUN_02054920
cmp r0, #0
beq _021D8BE8
ldr r0, _021D8CEC ; =0x000009C5
pop {r3, r4, r5, r6, r7, pc}
_021D8BE8:
add r0, r4, #0
bl FUN_0205492C
cmp r0, #0
beq _021D8BF6
ldr r0, _021D8CF0 ; =0x000009C6
pop {r3, r4, r5, r6, r7, pc}
_021D8BF6:
add r0, r4, #0
bl FUN_02054938
cmp r0, #0
beq _021D8C04
ldr r0, _021D8CF4 ; =0x000009C7
pop {r3, r4, r5, r6, r7, pc}
_021D8C04:
add r0, r4, #0
bl FUN_02054944
cmp r0, #0
beq _021D8C12
ldr r0, _021D8CF8 ; =0x000009C8
pop {r3, r4, r5, r6, r7, pc}
_021D8C12:
add r0, r4, #0
bl FUN_02054950
cmp r0, #0
beq _021D8C20
ldr r0, _021D8CFC ; =0x000009C9
pop {r3, r4, r5, r6, r7, pc}
_021D8C20:
add r0, r4, #0
bl FUN_0205495C
cmp r0, #0
beq _021D8C2E
ldr r0, _021D8D00 ; =0x000009CA
pop {r3, r4, r5, r6, r7, pc}
_021D8C2E:
add r0, r4, #0
bl FUN_02054968
cmp r0, #0
beq _021D8C3C
ldr r0, _021D8D04 ; =0x000009CB
pop {r3, r4, r5, r6, r7, pc}
_021D8C3C:
add r0, r4, #0
bl FUN_02054A48
cmp r0, #0
beq _021D8C4A
ldr r0, _021D8D08 ; =0x00002716
pop {r3, r4, r5, r6, r7, pc}
_021D8C4A:
add r0, r4, #0
bl FUN_02054884
cmp r0, #0
beq _021D8C58
ldr r0, _021D8D0C ; =0x000009CC
pop {r3, r4, r5, r6, r7, pc}
_021D8C58:
add r0, r4, #0
bl FUN_02054A54
cmp r0, #0
beq _021D8C66
ldr r0, _021D8D10 ; =0x000007EE
pop {r3, r4, r5, r6, r7, pc}
_021D8C66:
add r0, r4, #0
bl FUN_02054B14
cmp r0, #0
beq _021D8C78
cmp r6, #0
bne _021D8C78
ldr r0, _021D8D14 ; =0x00002774
pop {r3, r4, r5, r6, r7, pc}
_021D8C78:
add r0, r4, #0
add r1, r6, #0
bl MOD05_021E69BC
cmp r0, #0
beq _021D8C88
ldr r0, _021D8D18 ; =0x00002713
pop {r3, r4, r5, r6, r7, pc}
_021D8C88:
ldr r0, [r5, #0x38]
bl FUN_020553C4
cmp r0, #2
beq _021D8CE0
ldr r0, [r5, #0xc]
bl FUN_020238F4
add r6, r0, #0
ldr r0, [r5, #0x38]
bl FUN_02055320
add r7, r0, #0
ldr r0, [r5, #0x38]
bl FUN_0205532C
add r2, r0, #0
add r0, r5, #0
add r1, r7, #0
bl FUN_0204A6E0
add r1, r0, #0
ldr r0, [r5, #0x38]
add r2, r4, #0
bl MOD05_021E643C
cmp r0, #0
beq _021D8CE0
add r0, r6, #0
mov r1, #4
bl FUN_020239D0
cmp r0, #0
beq _021D8CE0
ldr r0, [r5, #0xc]
bl FUN_0206BB1C
mov r1, #0x39
bl FUN_0204A138
cmp r0, #0xff
beq _021D8CE0
ldr r0, _021D8D1C ; =0x00002714
pop {r3, r4, r5, r6, r7, pc}
_021D8CE0:
ldr r0, _021D8D20 ; =0x0000FFFF
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_021D8CE4: .word 0x000007E2
_021D8CE8: .word 0x000009C4
_021D8CEC: .word 0x000009C5
_021D8CF0: .word 0x000009C6
_021D8CF4: .word 0x000009C7
_021D8CF8: .word 0x000009C8
_021D8CFC: .word 0x000009C9
_021D8D00: .word 0x000009CA
_021D8D04: .word 0x000009CB
_021D8D08: .word 0x00002716
_021D8D0C: .word 0x000009CC
_021D8D10: .word 0x000007EE
_021D8D14: .word 0x00002774
_021D8D18: .word 0x00002713
_021D8D1C: .word 0x00002714
_021D8D20: .word 0x0000FFFF
thumb_func_start MOD05_021D8D24
MOD05_021D8D24: ; 0x021D8D24
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
bl MOD06_02242404
cmp r0, #0
beq _021D8D34
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021D8D34:
ldr r0, [r5, #0x38]
bl FUN_020552F8
add r2, r0, #0
ldr r1, [r5, #0x38]
add r0, r5, #0
bl MOD05_021E72FC
cmp r0, #1
bne _021D8D4C
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021D8D4C:
ldr r0, [r5, #0x38]
bl FUN_02055320
add r4, r0, #0
ldr r0, [r5, #0x38]
bl FUN_0205532C
add r7, r0, #0
add r0, r5, #0
add r1, r4, #0
add r2, r7, #0
bl FUN_0204A6E0
add r6, r0, #0
add r0, r5, #0
bl MOD05_021D8E1C
cmp r0, #1
bne _021D8D76
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021D8D76:
add r0, r5, #0
add r1, r4, #0
add r2, r7, #0
add r3, r6, #0
bl MOD05_021D8E54
cmp r0, #1
bne _021D8D90
add r0, r5, #0
bl MOD05_021D9290
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021D8D90:
ldr r0, [r5, #0x38]
bl FUN_020556B4
cmp r0, #0
beq _021D8D9E
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
_021D8D9E:
add r0, r5, #0
mov r1, #5
mov r2, #1
bl MOD05_021EFA9C
add r0, r5, #0
bl MOD05_021D9010
cmp r0, #1
bne _021D8DB6
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021D8DB6:
add r0, r5, #0
bl MOD05_021D9090
cmp r0, #1
bne _021D8DC4
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021D8DC4:
add r0, r5, #0
bl MOD05_021D8F38
cmp r0, #1
bne _021D8DD2
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021D8DD2:
add r0, r5, #0
bl MOD05_021D8F84
cmp r0, #1
bne _021D8DE0
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021D8DE0:
add r0, r5, #0
bl MOD05_021D8F90
cmp r0, #1
bne _021D8DEE
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021D8DEE:
add r0, r5, #0
bl MOD05_021D8F9C
cmp r0, #1
bne _021D8DFC
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021D8DFC:
add r0, r5, #0
bl MOD05_021D8FA8
cmp r0, #0
beq _021D8E0C
add r0, r5, #0
bl MOD05_021D8FD0
_021D8E0C:
ldr r0, [r5, #0xc]
bl FUN_020462AC
bl FUN_0205F56C
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021D8E1C
MOD05_021D8E1C: ; 0x021D8E1C
push {r3, r4, r5, lr}
add r4, r0, #0
bl FUN_02034B5C
add r5, r0, #0
add r0, r4, #0
bl FUN_02034B54
add r2, r0, #0
add r0, r4, #0
add r1, r5, #0
bl FUN_02037264
add r1, r0, #0
ldr r0, _021D8E50 ; =0x0000FFFF
cmp r1, r0
beq _021D8E4A
add r0, r4, #0
mov r2, #0
bl FUN_02038C78
mov r0, #1
pop {r3, r4, r5, pc}
_021D8E4A:
mov r0, #0
pop {r3, r4, r5, pc}
nop
_021D8E50: .word 0x0000FFFF
thumb_func_start MOD05_021D8E54
MOD05_021D8E54: ; 0x021D8E54
push {r3, r4, r5, lr}
sub sp, #0x20
add r5, r3, #0
add r3, sp, #0xc
add r4, r0, #0
bl MOD05_021D91B0
cmp r0, #0
bne _021D8E6C
add sp, #0x20
mov r0, #0
pop {r3, r4, r5, pc}
_021D8E6C:
add r0, r5, #0
bl FUN_020548C0
cmp r0, #1
bne _021D8EB0
ldr r0, [r4, #0x38]
bl FUN_020552F8
cmp r0, #2
bne _021D8E84
mov r0, #3
b _021D8E96
_021D8E84:
cmp r0, #3
bne _021D8E8C
mov r0, #2
b _021D8E96
_021D8E8C:
bl ErrorHandling
add sp, #0x20
mov r0, #0
pop {r3, r4, r5, pc}
_021D8E96:
mov r3, #0
str r3, [sp]
str r0, [sp, #4]
mov r0, #2
str r0, [sp, #8]
ldr r1, [sp, #0xc]
ldr r2, [sp, #0x10]
add r0, r4, #0
bl FUN_0204C260
add sp, #0x20
mov r0, #1
pop {r3, r4, r5, pc}
_021D8EB0:
add r0, r5, #0
bl FUN_020548CC
cmp r0, #1
bne _021D8EEC
ldr r0, [r4, #0x38]
bl FUN_020552F8
cmp r0, #2
beq _021D8ED2
cmp r0, #3
beq _021D8ED2
bl ErrorHandling
add sp, #0x20
mov r0, #0
pop {r3, r4, r5, pc}
_021D8ED2:
mov r3, #0
str r3, [sp]
str r0, [sp, #4]
mov r0, #2
str r0, [sp, #8]
ldr r1, [sp, #0xc]
ldr r2, [sp, #0x10]
add r0, r4, #0
bl FUN_0204C260
add sp, #0x20
mov r0, #1
pop {r3, r4, r5, pc}
_021D8EEC:
add r0, r5, #0
bl FUN_020547D4
cmp r0, #0
bne _021D8F00
add r0, r5, #0
bl FUN_02054804
cmp r0, #0
beq _021D8F16
_021D8F00:
mov r3, #0
str r3, [sp]
str r3, [sp, #4]
ldr r1, [sp, #0xc]
ldr r2, [sp, #0x10]
add r0, r4, #0
bl FUN_0204C29C
add sp, #0x20
mov r0, #1
pop {r3, r4, r5, pc}
_021D8F16:
add r0, r5, #0
bl FUN_02054B60
cmp r0, #0
beq _021D8F30
ldr r1, [sp, #0xc]
ldr r2, [sp, #0x10]
add r0, r4, #0
bl FUN_02049718
add sp, #0x20
mov r0, #1
pop {r3, r4, r5, pc}
_021D8F30:
mov r0, #0
add sp, #0x20
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021D8F38
MOD05_021D8F38: ; 0x021D8F38
push {r3, r4, r5, lr}
add r4, r0, #0
ldr r0, [r4, #0xc]
bl FUN_0206BB1C
add r5, r0, #0
ldr r0, [r4, #0xc]
bl FUN_02023D58
add r1, r5, #0
add r2, r4, #0
bl MOD05_021ED378
cmp r0, #1
bne _021D8F7A
ldr r0, [r4, #0xc]
bl FUN_02029FC8
add r5, r0, #0
mov r1, #0xb
bl FUN_0202A0E8
add r0, r5, #0
mov r1, #0xf
bl FUN_0202A170
ldr r1, _021D8F80 ; =0x000007EF
add r0, r4, #0
mov r2, #0
bl FUN_02038C78
mov r0, #1
pop {r3, r4, r5, pc}
_021D8F7A:
mov r0, #0
pop {r3, r4, r5, pc}
nop
_021D8F80: .word 0x000007EF
thumb_func_start MOD05_021D8F84
MOD05_021D8F84: ; 0x021D8F84
push {r3, lr}
bl MOD05_021E1654
mov r0, #0
pop {r3, pc}
.balign 4, 0
thumb_func_start MOD05_021D8F90
MOD05_021D8F90: ; 0x021D8F90
push {r3, lr}
bl FUN_0205E4A4
mov r0, #0
pop {r3, pc}
.balign 4, 0
thumb_func_start MOD05_021D8F9C
MOD05_021D8F9C: ; 0x021D8F9C
ldr r3, _021D8FA4 ; =MOD06_0224C24C
add r1, r0, #0
ldr r0, [r1, #0xc]
bx r3
.balign 4, 0
_021D8FA4: .word MOD06_0224C24C
thumb_func_start MOD05_021D8FA8
MOD05_021D8FA8: ; 0x021D8FA8
push {r3, r4, r5, lr}
ldr r0, [r0, #0xc]
mov r5, #0
bl FUN_020462AC
add r4, r0, #0
bl FUN_0205F780
add r0, r0, #1
lsl r0, r0, #0x10
lsr r1, r0, #0x10
cmp r1, #0x80
blo _021D8FC6
add r1, r5, #0
mov r5, #1
_021D8FC6:
add r0, r4, #0
bl FUN_0205F790
add r0, r5, #0
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021D8FD0
MOD05_021D8FD0: ; 0x021D8FD0
push {r3, r4, r5, r6, r7, lr}
add r4, r0, #0
ldr r0, [r4, #0xc]
bl FUN_0206BB1C
add r6, r0, #0
ldr r0, [r4, #0x1c]
ldr r0, [r0]
bl FUN_02034824
lsl r0, r0, #0x10
lsr r5, r0, #0x10
add r0, r6, #0
bl FUN_0206B9AC
add r7, r0, #0
mov r4, #0
cmp r7, #0
ble _021D900C
_021D8FF6:
add r0, r6, #0
add r1, r4, #0
bl FUN_0206B9B0
mov r1, #5
add r2, r5, #0
bl FUN_020688E8
add r4, r4, #1
cmp r4, r7
blt _021D8FF6
_021D900C:
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021D9010
MOD05_021D9010: ; 0x021D9010
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r0, [r5, #0xc]
bl FUN_0206BB1C
add r4, r0, #0
ldr r0, [r5, #0xc]
bl FUN_02034E30
bl FUN_02034E2C
ldrh r1, [r0]
add r1, r1, #1
strh r1, [r0]
ldrh r2, [r0]
mov r1, #3
and r1, r2
strh r1, [r0]
ldrh r0, [r0]
cmp r0, #0
beq _021D903E
mov r0, #0
pop {r3, r4, r5, pc}
_021D903E:
ldr r0, [r5, #0x1c]
ldr r0, [r0]
bl FUN_02034824
add r1, r0, #0
lsl r1, r1, #0x10
add r0, r4, #0
lsr r1, r1, #0x10
bl FUN_0204A29C
cmp r0, #0
beq _021D9060
cmp r0, #1
beq _021D9064
cmp r0, #2
beq _021D9070
b _021D9086
_021D9060:
mov r0, #0
pop {r3, r4, r5, pc}
_021D9064:
ldr r0, [r5, #4]
ldr r0, [r0, #0x20]
bl MOD05_021F4724
mov r0, #0
pop {r3, r4, r5, pc}
_021D9070:
ldr r0, [r5, #4]
ldr r0, [r0, #0x20]
bl MOD05_021F4724
ldr r1, _021D908C ; =0x000007D3
add r0, r5, #0
mov r2, #0
bl FUN_02038C78
mov r0, #1
pop {r3, r4, r5, pc}
_021D9086:
mov r0, #0
pop {r3, r4, r5, pc}
nop
_021D908C: .word 0x000007D3
thumb_func_start MOD05_021D9090
MOD05_021D9090: ; 0x021D9090
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0xc]
bl FUN_020462AC
bl FUN_0205F214
cmp r0, #0
bne _021D90A6
mov r0, #0
pop {r4, pc}
_021D90A6:
ldr r0, [r4, #0xc]
bl FUN_02034E30
bl FUN_02034E24
ldrh r0, [r0]
cmp r0, #0
bne _021D90C4
ldr r1, _021D90F0 ; =0x00002262
add r0, r4, #0
mov r2, #0
bl FUN_02038C78
mov r0, #1
pop {r4, pc}
_021D90C4:
ldr r0, [r4, #0xc]
bl FUN_02034E30
bl FUN_02034E28
ldrh r1, [r0]
add r1, r1, #1
strh r1, [r0]
ldrh r1, [r0]
mov r0, #0x7d
lsl r0, r0, #2
cmp r1, r0
blo _021D90EC
ldr r1, _021D90F4 ; =0x00002261
add r0, r4, #0
mov r2, #0
bl FUN_02038C78
mov r0, #1
pop {r4, pc}
_021D90EC:
mov r0, #0
pop {r4, pc}
.balign 4, 0
_021D90F0: .word 0x00002262
_021D90F4: .word 0x00002261
thumb_func_start MOD05_021D90F8
MOD05_021D90F8: ; 0x021D90F8
push {r4, r5, r6, lr}
add r5, r0, #0
ldr r0, [r5, #0x38]
add r4, r1, #0
add r6, r2, #0
bl FUN_02055320
str r0, [r4]
ldr r0, [r5, #0x38]
bl FUN_0205532C
str r0, [r6]
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_start MOD05_021D9114
MOD05_021D9114: ; 0x021D9114
push {r4, r5, r6, lr}
add r5, r0, #0
ldr r0, [r5, #0x38]
add r4, r1, #0
add r6, r2, #0
bl FUN_020552F8
add r1, r0, #0
add r0, r5, #0
add r2, r4, #0
add r3, r6, #0
bl MOD05_021D9130
pop {r4, r5, r6, pc}
thumb_func_start MOD05_021D9130
MOD05_021D9130: ; 0x021D9130
push {r4, r5, r6, lr}
add r4, r2, #0
add r5, r3, #0
add r6, r1, #0
add r1, r4, #0
add r2, r5, #0
bl MOD05_021D90F8
cmp r6, #3
bhi _021D9176
add r0, r6, r6
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021D9150: ; jump table
.short _021D9158 - _021D9150 - 2 ; case 0
.short _021D9160 - _021D9150 - 2 ; case 1
.short _021D9168 - _021D9150 - 2 ; case 2
.short _021D9170 - _021D9150 - 2 ; case 3
_021D9158:
ldr r0, [r5]
sub r0, r0, #1
str r0, [r5]
pop {r4, r5, r6, pc}
_021D9160:
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
pop {r4, r5, r6, pc}
_021D9168:
ldr r0, [r4]
sub r0, r0, #1
str r0, [r4]
pop {r4, r5, r6, pc}
_021D9170:
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
_021D9176:
pop {r4, r5, r6, pc}
thumb_func_start MOD05_021D9178
MOD05_021D9178: ; 0x021D9178
push {r4, lr}
sub sp, #8
add r1, sp, #4
add r2, sp, #0
add r4, r0, #0
bl MOD05_021D90F8
ldr r1, [sp, #4]
ldr r2, [sp]
add r0, r4, #0
bl FUN_0204A6E0
add sp, #8
pop {r4, pc}
thumb_func_start MOD05_021D9194
MOD05_021D9194: ; 0x021D9194
push {r4, lr}
sub sp, #8
add r1, sp, #4
add r2, sp, #0
add r4, r0, #0
bl MOD05_021D9114
ldr r1, [sp, #4]
ldr r2, [sp]
add r0, r4, #0
bl FUN_0204A6E0
add sp, #8
pop {r4, pc}
thumb_func_start MOD05_021D91B0
MOD05_021D91B0: ; 0x021D91B0
push {r3, r4, r5, r6, r7, lr}
add r4, r0, #0
add r7, r1, #0
str r2, [sp]
add r5, r3, #0
bl FUN_02034B18
add r6, r0, #0
mov r0, #0
mvn r0, r0
cmp r6, r0
bne _021D91CC
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
_021D91CC:
add r0, r4, #0
add r1, r6, #0
bl FUN_02034B00
cmp r0, #0
bne _021D91DC
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
_021D91DC:
ldrh r3, [r0, #6]
mov r1, #1
lsl r1, r1, #8
cmp r3, r1
bne _021D920C
ldrh r1, [r0, #4]
ldr r0, _021D9244 ; =0x00000FFF
cmp r1, r0
beq _021D91F2
bl ErrorHandling
_021D91F2:
ldr r0, [r4, #0xc]
bl FUN_02034E30
bl FUN_02034DD0
add r2, r0, #0
ldmia r2!, {r0, r1}
stmia r5!, {r0, r1}
ldmia r2!, {r0, r1}
stmia r5!, {r0, r1}
ldr r0, [r2]
str r0, [r5]
b _021D921E
_021D920C:
ldrh r2, [r0, #2]
ldrh r1, [r0]
ldrh r0, [r0, #4]
str r0, [r5]
str r3, [r5, #4]
str r1, [r5, #8]
str r2, [r5, #0xc]
mov r0, #1
str r0, [r5, #0x10]
_021D921E:
ldr r0, [r4, #0xc]
bl FUN_02034E30
bl FUN_02034DC4
add r5, r0, #0
ldr r0, [r4, #0x38]
bl FUN_020552F8
ldr r1, [r4, #0x1c]
ldr r1, [r1]
str r1, [r5]
str r6, [r5, #4]
ldr r1, [sp]
str r7, [r5, #8]
str r1, [r5, #0xc]
str r0, [r5, #0x10]
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_021D9244: .word 0x00000FFF
thumb_func_start MOD05_021D9248
MOD05_021D9248: ; 0x021D9248
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
ldr r0, [r5, #0xc]
add r7, r1, #0
str r2, [sp]
add r4, r3, #0
bl FUN_02034E30
bl FUN_02034DCC
add r6, r0, #0
ldr r3, [r5, #0x1c]
add r2, r6, #0
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldr r0, [r3]
cmp r4, #0
str r0, [r2]
str r4, [r6, #0x10]
ldr r0, [sp]
str r7, [r6, #8]
str r0, [r6, #0xc]
bne _021D9280
ldr r0, [r6, #0xc]
add r0, r0, #1
str r0, [r6, #0xc]
_021D9280:
ldr r0, [r5, #0x1c]
ldr r0, [r0]
str r0, [r6]
mov r0, #0
mvn r0, r0
str r0, [r6, #4]
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021D9290
MOD05_021D9290: ; 0x021D9290
push {r3, r4, lr}
sub sp, #0x1c
add r1, sp, #4
add r2, sp, #0
add r4, r0, #0
bl MOD05_021D90F8
ldr r1, [sp, #4]
ldr r2, [sp]
add r0, r4, #0
add r3, sp, #8
bl MOD05_021D91B0
cmp r0, #0
beq _021D92DA
ldr r0, [r4, #0x1c]
ldr r0, [r0]
bl FUN_02034908
cmp r0, #1
bne _021D931C
ldr r0, [sp, #8]
bl FUN_02034908
cmp r0, #0
bne _021D931C
ldr r0, [r4, #0x38]
bl FUN_020552F8
add r3, r0, #0
ldr r1, [sp, #4]
ldr r2, [sp]
add r0, r4, #0
bl MOD05_021D9248
add sp, #0x1c
pop {r3, r4, pc}
_021D92DA:
add r0, r4, #0
add r1, sp, #4
add r2, sp, #0
bl MOD05_021D9114
ldr r1, [sp, #4]
ldr r2, [sp]
add r0, r4, #0
add r3, sp, #8
bl MOD05_021D91B0
cmp r0, #0
beq _021D931C
ldr r0, [r4, #0x1c]
ldr r0, [r0]
bl FUN_02034908
cmp r0, #1
bne _021D931C
ldr r0, [sp, #8]
bl FUN_02034908
cmp r0, #0
bne _021D931C
ldr r0, [r4, #0x38]
bl FUN_020552F8
add r3, r0, #0
ldr r1, [sp, #4]
ldr r2, [sp]
add r0, r4, #0
bl MOD05_021D9248
_021D931C:
add sp, #0x1c
pop {r3, r4, pc}
thumb_func_start MOD05_021D9320
MOD05_021D9320: ; 0x021D9320
push {r4, r5, r6, r7, lr}
sub sp, #0x2c
add r5, r0, #0
str r1, [sp, #0x10]
add r4, r3, #0
add r0, r2, #0
add r1, r5, #4
add r2, r4, #0
bl FUN_02008C9C
str r0, [r5]
ldr r1, _021D94B0 ; =0x00000162
ldr r0, [sp, #0x10]
strh r4, [r5, r1]
ldr r0, [r0, #0x10]
cmp r0, #0
bne _021D9346
mov r2, #4
b _021D9348
_021D9346:
mov r2, #6
_021D9348:
sub r0, r1, #2
strh r2, [r5, r0]
bl FUN_0200965C
mov r1, #0x16
lsl r1, r1, #4
ldrh r2, [r5, r1]
add r3, r0, #0
add r0, r4, #0
add r1, r2, #0
mul r1, r3
bl AllocFromHeap
add r7, r0, #0
mov r0, #0
str r0, [sp, #0x1c]
mov r0, #0x16
lsl r0, r0, #4
ldrh r0, [r5, r0]
cmp r0, #0
bls _021D93AA
ldr r6, [sp, #0x10]
_021D9374:
ldr r1, [sp, #0x1c]
add r0, r7, #0
bl FUN_02009660
str r0, [sp, #0x20]
ldr r1, [r6]
add r0, r4, #0
bl FUN_020161A4
ldr r1, [sp, #0x20]
str r0, [sp, #0x24]
add r2, r4, #0
bl FUN_02009668
ldr r0, [sp, #0x24]
bl FreeToHeap
ldr r0, [sp, #0x1c]
add r6, r6, #4
add r0, r0, #1
str r0, [sp, #0x1c]
mov r0, #0x16
lsl r0, r0, #4
ldrh r0, [r5, r0]
ldr r1, [sp, #0x1c]
cmp r1, r0
blo _021D9374
_021D93AA:
mov r6, #0
cmp r0, #0
bls _021D93E0
str r5, [sp, #0x18]
_021D93B2:
add r0, r7, #0
add r1, r6, #0
bl FUN_02009660
bl FUN_020096CC
add r1, r6, #0
add r2, r4, #0
bl FUN_02008DEC
mov r1, #0x13
ldr r2, [sp, #0x18]
lsl r1, r1, #4
str r0, [r2, r1]
add r0, r2, #0
add r0, r0, #4
str r0, [sp, #0x18]
add r0, r1, #0
add r0, #0x30
ldrh r0, [r5, r0]
add r6, r6, #1
cmp r6, r0
blo _021D93B2
_021D93E0:
mov r1, #0
str r1, [sp, #0x14]
cmp r0, #0
bls _021D942C
add r6, r5, #0
_021D93EA:
ldr r1, [sp, #0x14]
add r0, r7, #0
bl FUN_02009660
str r0, [sp, #0x28]
bl FUN_020096CC
add r1, r4, #0
bl FUN_02009424
mov r1, #0x52
lsl r1, r1, #2
str r0, [r6, r1]
add r0, r1, #0
mov r2, #0x52
sub r0, #0x18
lsl r2, r2, #2
ldr r0, [r6, r0]
ldr r1, [sp, #0x28]
ldr r2, [r6, r2]
add r3, r4, #0
bl FUN_020093A8
ldr r0, [sp, #0x14]
add r6, r6, #4
add r0, r0, #1
str r0, [sp, #0x14]
mov r0, #0x16
lsl r0, r0, #4
ldrh r0, [r5, r0]
ldr r1, [sp, #0x14]
cmp r1, r0
blo _021D93EA
_021D942C:
mov r6, #0
cmp r0, #0
bls _021D944A
_021D9432:
add r0, r7, #0
add r1, r6, #0
bl FUN_02009660
bl FUN_020096B4
mov r0, #0x16
lsl r0, r0, #4
ldrh r0, [r5, r0]
add r6, r6, #1
cmp r6, r0
blo _021D9432
_021D944A:
add r0, r7, #0
bl FreeToHeap
mov r0, #0x52
lsl r0, r0, #2
ldr r0, [r5, r0]
bl FUN_02009B44
mov r0, #0x53
lsl r0, r0, #2
ldr r0, [r5, r0]
bl FUN_02009DAC
ldr r1, [sp, #0x10]
add r0, r4, #0
ldr r1, [r1, #0x18]
bl FUN_020161A4
mov r3, #0x4e
lsl r3, r3, #2
ldr r1, [r5, r3]
add r2, r3, #0
str r1, [sp]
add r1, r3, #4
ldr r1, [r5, r1]
sub r2, #8
str r1, [sp, #4]
add r1, r3, #0
add r1, #8
ldr r1, [r5, r1]
add r6, r0, #0
str r1, [sp, #8]
add r1, r3, #0
add r1, #0xc
ldr r1, [r5, r1]
sub r3, r3, #4
str r1, [sp, #0xc]
ldr r2, [r5, r2]
ldr r3, [r5, r3]
add r1, r4, #0
bl FUN_02008BE0
mov r1, #0x4b
lsl r1, r1, #2
str r0, [r5, r1]
add r0, r6, #0
bl FreeToHeap
add sp, #0x2c
pop {r4, r5, r6, r7, pc}
nop
_021D94B0: .word 0x00000162
thumb_func_start MOD05_021D94B4
MOD05_021D94B4: ; 0x021D94B4
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
ldr r0, [r5]
bl FUN_0201FD58
mov r0, #0x4b
lsl r0, r0, #2
ldr r0, [r5, r0]
bl FUN_02008C80
mov r0, #0x52
lsl r0, r0, #2
ldr r0, [r5, r0]
bl FUN_02009C30
mov r0, #0x53
lsl r0, r0, #2
ldr r0, [r5, r0]
bl FUN_02009E28
mov r0, #0x16
lsl r0, r0, #4
ldrh r0, [r5, r0]
mov r6, #0
cmp r0, #0
bls _021D950C
mov r7, #0x16
add r4, r5, #0
lsl r7, r7, #4
_021D94EE:
mov r0, #0x52
lsl r0, r0, #2
ldr r0, [r4, r0]
bl FUN_02009448
mov r0, #0x13
lsl r0, r0, #4
ldr r0, [r4, r0]
bl FUN_02008E2C
ldrh r0, [r5, r7]
add r6, r6, #1
add r4, r4, #4
cmp r6, r0
blo _021D94EE
_021D950C:
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021D9510
MOD05_021D9510: ; 0x021D9510
push {r3, r4, r5, r6, lr}
sub sp, #0x3c
add r2, r0, #0
add r4, r1, #0
mov r0, #4
ldrsh r0, [r4, r0]
mov r3, #0x4b
lsl r3, r3, #2
lsl r0, r0, #0xc
str r0, [sp]
mov r0, #6
ldrsh r0, [r4, r0]
add r6, sp, #0
lsl r0, r0, #0xc
str r0, [sp, #4]
mov r0, #8
ldrsh r0, [r4, r0]
lsl r0, r0, #0xc
str r0, [sp, #8]
ldr r0, [r2]
str r0, [sp, #0xc]
ldr r0, [r2, r3]
ldr r1, [r4]
ldr r5, [r0]
mov r0, #0x24
mul r0, r1
add r0, r5, r0
str r0, [sp, #0x10]
ldmia r6!, {r0, r1}
add r5, sp, #0x14
stmia r5!, {r0, r1}
ldr r0, [r6]
ldr r6, _021D9598 ; =0x021F64D8
str r0, [r5]
ldmia r6!, {r0, r1}
add r5, sp, #0x20
stmia r5!, {r0, r1}
ldr r0, [r6]
mov r1, #0
str r0, [r5]
add r0, sp, #0
strh r1, [r0, #0x2c]
ldr r0, [r4, #0xc]
add r3, #0x36
str r0, [sp, #0x30]
ldr r0, [r4, #0x14]
str r0, [sp, #0x34]
ldrh r0, [r2, r3]
str r0, [sp, #0x38]
add r0, sp, #0xc
bl FUN_0201FE94
add r5, r0, #0
bne _021D9580
bl ErrorHandling
_021D9580:
ldrh r1, [r4, #0xa]
add r0, r5, #0
bl FUN_02020130
ldr r1, [r4, #0x10]
add r0, r5, #0
bl FUN_0202027C
add r0, r5, #0
add sp, #0x3c
pop {r3, r4, r5, r6, pc}
nop
_021D9598: .word 0x021F64D8
thumb_func_start MOD05_021D959C
MOD05_021D959C: ; 0x021D959C
push {r4, r5, r6, r7, lr}
sub sp, #0xc
add r7, r0, #0
str r1, [sp]
add r0, r2, #0
str r3, [sp, #4]
add r1, r7, #4
add r2, r3, #0
bl FUN_02008C9C
str r0, [r7]
ldr r1, _021D9678 ; =0x00000162
ldr r0, [sp, #4]
strh r0, [r7, r1]
ldr r0, [sp]
ldr r0, [r0, #0x10]
cmp r0, #0
beq _021D95C8
ldr r0, [sp]
ldr r0, [r0, #0x14]
cmp r0, #0
bne _021D95DE
_021D95C8:
mov r1, #0x16
mov r0, #4
lsl r1, r1, #4
strh r0, [r7, r1]
add r0, r1, #0
mov r2, #0
sub r0, #0x20
str r2, [r7, r0]
sub r1, #0x1c
str r2, [r7, r1]
b _021D95E4
_021D95DE:
mov r2, #6
sub r0, r1, #2
strh r2, [r7, r0]
_021D95E4:
mov r0, #0x16
lsl r0, r0, #4
ldrh r1, [r7, r0]
mov r4, #0
cmp r1, #0
bls _021D9614
ldr r5, [sp]
add r6, r7, #0
_021D95F4:
ldr r0, [r5]
ldr r2, [sp, #4]
add r1, r4, #0
bl FUN_02008DEC
mov r1, #0x13
lsl r1, r1, #4
str r0, [r6, r1]
add r0, r1, #0
add r0, #0x30
ldrh r1, [r7, r0]
add r4, r4, #1
add r5, r5, #4
add r6, r6, #4
cmp r4, r1
blo _021D95F4
_021D9614:
mov r0, #0
str r0, [sp, #8]
cmp r1, #0
bls _021D9672
mov r6, #0x52
add r5, r7, #0
add r4, r0, #0
lsl r6, r6, #2
_021D9624:
ldr r0, [sp]
ldr r0, [r0]
cmp r0, #0
beq _021D9658
ldr r1, [sp, #4]
bl FUN_02009424
mov r1, #0x52
lsl r1, r1, #2
str r0, [r5, r1]
mov r0, #0x52
lsl r0, r0, #2
ldr r3, [r5, r0]
mov r1, #0
ldr r0, [r3, #4]
cmp r0, #0
bls _021D9658
add r2, r1, #0
_021D9648:
ldr r0, [r3]
add r1, r1, #1
str r4, [r0, r2]
ldr r3, [r5, r6]
add r2, r2, #4
ldr r0, [r3, #4]
cmp r1, r0
blo _021D9648
_021D9658:
ldr r0, [sp]
add r5, r5, #4
add r0, r0, #4
str r0, [sp]
ldr r0, [sp, #8]
add r0, r0, #1
str r0, [sp, #8]
mov r0, #0x16
lsl r0, r0, #4
ldrh r1, [r7, r0]
ldr r0, [sp, #8]
cmp r0, r1
blo _021D9624
_021D9672:
add sp, #0xc
pop {r4, r5, r6, r7, pc}
nop
_021D9678: .word 0x00000162
thumb_func_start MOD05_021D967C
MOD05_021D967C: ; 0x021D967C
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x10
add r5, r0, #0
mov r0, #0x4d
lsl r0, r0, #2
add r4, r1, #0
ldr r0, [r5, r0]
ldr r1, [sp, #0x30]
add r6, r2, #0
add r7, r3, #0
bl FUN_0200945C
cmp r0, #0
bne _021D96A0
bl ErrorHandling
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
_021D96A0:
ldr r0, [sp, #0x30]
add r2, r6, #0
str r0, [sp]
ldr r0, [sp, #0x2c]
add r3, r7, #0
str r0, [sp, #4]
ldr r0, [sp, #0x28]
str r0, [sp, #8]
ldr r0, _021D96F0 ; =0x00000162
ldrh r1, [r5, r0]
sub r0, #0x2e
str r1, [sp, #0xc]
ldr r0, [r5, r0]
add r1, r4, #0
bl FUN_02008FEC
add r4, r0, #0
beq _021D96E8
bl FUN_02009D68
cmp r0, #1
beq _021D96D0
bl ErrorHandling
_021D96D0:
mov r0, #0x53
lsl r0, r0, #2
ldr r0, [r5, r0]
add r1, r4, #0
bl MOD05_021D9780
ldr r1, [sp, #0x2c]
add r0, r4, #0
bl FUN_02009E88
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
_021D96E8:
bl ErrorHandling
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_021D96F0: .word 0x00000162
thumb_func_start MOD05_021D96F4
MOD05_021D96F4: ; 0x021D96F4
push {r4, lr}
sub sp, #8
mov r4, #2
str r4, [sp]
ldr r4, [sp, #0x10]
str r4, [sp, #4]
bl MOD05_021D97B4
add sp, #8
pop {r4, pc}
thumb_func_start MOD05_021D9708
MOD05_021D9708: ; 0x021D9708
push {r4, lr}
sub sp, #8
mov r4, #3
str r4, [sp]
ldr r4, [sp, #0x10]
str r4, [sp, #4]
bl MOD05_021D97B4
add sp, #8
pop {r4, pc}
thumb_func_start MOD05_021D971C
MOD05_021D971C: ; 0x021D971C
push {r4, r5, r6, r7, lr}
sub sp, #0xc
add r5, r0, #0
mov r0, #0x13
lsl r0, r0, #4
add r4, r1, #0
ldr r0, [r5, r0]
ldr r1, [sp, #0x24]
add r6, r2, #0
add r7, r3, #0
bl FUN_0200945C
cmp r0, #0
bne _021D9740
bl ErrorHandling
add sp, #0xc
pop {r4, r5, r6, r7, pc}
_021D9740:
ldr r0, [sp, #0x24]
add r2, r6, #0
str r0, [sp]
ldr r0, [sp, #0x20]
add r3, r7, #0
str r0, [sp, #4]
ldr r0, _021D977C ; =0x00000162
ldrh r1, [r5, r0]
sub r0, #0x32
str r1, [sp, #8]
ldr r0, [r5, r0]
add r1, r4, #0
bl FUN_02008F34
add r4, r0, #0
beq _021D9774
bl FUN_02009B04
mov r0, #0x52
lsl r0, r0, #2
ldr r0, [r5, r0]
add r1, r4, #0
bl MOD05_021D9780
add sp, #0xc
pop {r4, r5, r6, r7, pc}
_021D9774:
bl ErrorHandling
add sp, #0xc
pop {r4, r5, r6, r7, pc}
.balign 4, 0
_021D977C: .word 0x00000162
thumb_func_start MOD05_021D9780
MOD05_021D9780: ; 0x021D9780
push {r3, r4, r5, r6}
ldr r6, [r0, #4]
mov r3, #0
cmp r6, #0
ble _021D97AC
ldr r5, [r0]
add r4, r5, #0
_021D978E:
ldr r2, [r4]
cmp r2, #0
bne _021D97A4
lsl r2, r3, #2
str r1, [r5, r2]
ldr r1, [r0, #8]
add r1, r1, #1
str r1, [r0, #8]
mov r0, #1
pop {r3, r4, r5, r6}
bx lr
_021D97A4:
add r3, r3, #1
add r4, r4, #4
cmp r3, r6
blt _021D978E
_021D97AC:
mov r0, #0
pop {r3, r4, r5, r6}
bx lr
.balign 4, 0
thumb_func_start MOD05_021D97B4
MOD05_021D97B4: ; 0x021D97B4
push {r4, r5, r6, r7, lr}
sub sp, #0x14
add r5, r0, #0
ldr r0, [sp, #0x28]
add r7, r1, #0
lsl r4, r0, #2
mov r0, #0x13
lsl r0, r0, #4
add r6, r5, r0
ldr r0, [r6, r4]
ldr r1, [sp, #0x2c]
str r2, [sp, #0xc]
str r3, [sp, #0x10]
bl FUN_0200945C
cmp r0, #0
bne _021D97DE
bl ErrorHandling
add sp, #0x14
pop {r4, r5, r6, r7, pc}
_021D97DE:
ldr r0, [sp, #0x2c]
ldr r2, [sp, #0xc]
str r0, [sp]
ldr r0, [sp, #0x28]
ldr r3, [sp, #0x10]
str r0, [sp, #4]
ldr r0, _021D981C ; =0x00000162
add r1, r7, #0
ldrh r0, [r5, r0]
str r0, [sp, #8]
ldr r0, [r6, r4]
bl FUN_020090AC
add r1, r0, #0
beq _021D9814
mov r0, #0x52
add r2, r5, r4
lsl r0, r0, #2
ldr r0, [r2, r0]
bl MOD05_021D9780
cmp r0, #1
beq _021D9818
bl ErrorHandling
add sp, #0x14
pop {r4, r5, r6, r7, pc}
_021D9814:
bl ErrorHandling
_021D9818:
add sp, #0x14
pop {r4, r5, r6, r7, pc}
.balign 4, 0
_021D981C: .word 0x00000162
thumb_func_start MOD05_021D9820
MOD05_021D9820: ; 0x021D9820
push {r3, r4, r5, r6, lr}
sub sp, #0x74
add r5, r0, #0
ldr r0, _021D99F4 ; =0x00000162
add r4, r1, #0
ldrh r0, [r5, r0]
mov r1, #0x10
bl AllocFromHeap
add r6, r0, #0
ldr r0, _021D99F4 ; =0x00000162
mov r1, #8
ldrh r0, [r5, r0]
bl AllocFromHeap
str r0, [r6, #8]
ldr r0, _021D99F4 ; =0x00000162
mov r1, #0x24
ldrh r0, [r5, r0]
bl AllocFromHeap
ldr r1, [r6, #8]
add r2, r4, #0
str r0, [r1]
ldr r0, [r6, #8]
mov r1, #0
ldr r0, [r0]
add r3, sp, #0x2c
str r0, [r6, #4]
_021D985A:
ldr r0, [r2, #0x14]
add r1, r1, #1
add r2, r2, #4
stmia r3!, {r0}
cmp r1, #6
blt _021D985A
mov r1, #5
lsl r1, r1, #6
ldr r0, [r5, r1]
cmp r0, #0
beq _021D9878
add r1, r1, #4
ldr r1, [r5, r1]
cmp r1, #0
bne _021D9882
_021D9878:
mov r0, #0
mvn r0, r0
str r0, [sp, #0x3c]
str r0, [sp, #0x40]
b _021D98B8
_021D9882:
mov r2, #0
ldr r1, [sp, #0x3c]
mvn r2, r2
cmp r1, r2
beq _021D989A
bl FUN_0200945C
cmp r0, #0
bne _021D989A
mov r0, #0
mvn r0, r0
str r0, [sp, #0x3c]
_021D989A:
mov r0, #0
ldr r1, [sp, #0x40]
mvn r0, r0
cmp r1, r0
beq _021D98B8
mov r0, #0x51
lsl r0, r0, #2
ldr r0, [r5, r0]
bl FUN_0200945C
cmp r0, #0
bne _021D98B8
mov r0, #0
mvn r0, r0
str r0, [sp, #0x40]
_021D98B8:
ldr r0, [sp, #0x38]
str r0, [sp]
ldr r0, [sp, #0x3c]
str r0, [sp, #4]
ldr r0, [sp, #0x40]
str r0, [sp, #8]
ldr r0, [r4, #0x30]
str r0, [sp, #0xc]
ldr r0, [r4, #0x2c]
str r0, [sp, #0x10]
mov r0, #0x13
lsl r0, r0, #4
ldr r1, [r5, r0]
str r1, [sp, #0x14]
add r1, r0, #4
ldr r1, [r5, r1]
str r1, [sp, #0x18]
add r1, r0, #0
add r1, #8
ldr r1, [r5, r1]
str r1, [sp, #0x1c]
add r1, r0, #0
add r1, #0xc
ldr r1, [r5, r1]
str r1, [sp, #0x20]
add r1, r0, #0
add r1, #0x10
ldr r1, [r5, r1]
add r0, #0x14
str r1, [sp, #0x24]
ldr r0, [r5, r0]
str r0, [sp, #0x28]
ldr r0, [r6, #4]
ldr r1, [sp, #0x2c]
ldr r2, [sp, #0x30]
ldr r3, [sp, #0x34]
bl FUN_02008AA4
ldr r0, [r5]
str r0, [sp, #0x44]
ldr r0, [r6, #4]
str r0, [sp, #0x48]
mov r0, #0
ldrsh r0, [r4, r0]
cmp r0, #0
ble _021D9926
lsl r0, r0, #0xc
bl _fflt
add r1, r0, #0
mov r0, #0x3f
lsl r0, r0, #0x18
bl _fadd
b _021D9934
_021D9926:
lsl r0, r0, #0xc
bl _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
bl _fsub
_021D9934:
bl _ffix
str r0, [sp, #0x4c]
mov r0, #2
ldrsh r0, [r4, r0]
cmp r0, #0
ble _021D9954
lsl r0, r0, #0xc
bl _fflt
add r1, r0, #0
mov r0, #0x3f
lsl r0, r0, #0x18
bl _fadd
b _021D9962
_021D9954:
lsl r0, r0, #0xc
bl _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
bl _fsub
_021D9962:
bl _ffix
str r0, [sp, #0x50]
mov r0, #4
ldrsh r0, [r4, r0]
cmp r0, #0
ble _021D9982
lsl r0, r0, #0xc
bl _fflt
add r1, r0, #0
mov r0, #0x3f
lsl r0, r0, #0x18
bl _fadd
b _021D9990
_021D9982:
lsl r0, r0, #0xc
bl _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
bl _fsub
_021D9990:
bl _ffix
str r0, [sp, #0x54]
ldr r0, [r4, #0x10]
cmp r0, #2
bne _021D99A6
mov r0, #3
ldr r1, [sp, #0x50]
lsl r0, r0, #0x12
add r0, r1, r0
str r0, [sp, #0x50]
_021D99A6:
mov r0, #1
lsl r0, r0, #0xc
str r0, [sp, #0x58]
str r0, [sp, #0x5c]
str r0, [sp, #0x60]
mov r1, #0
add r0, sp, #0x2c
strh r1, [r0, #0x38]
ldr r0, [r4, #8]
str r0, [sp, #0x68]
ldr r0, [r4, #0x10]
str r0, [sp, #0x6c]
ldr r0, _021D99F4 ; =0x00000162
ldrh r0, [r5, r0]
str r0, [sp, #0x70]
add r0, sp, #0x44
bl FUN_0201FE94
str r0, [r6]
cmp r0, #0
beq _021D99EA
bl FUN_020202A0
add r5, r0, #0
ldrh r1, [r4, #6]
ldr r0, [r6]
bl FUN_02020130
ldr r1, [r4, #0xc]
ldr r0, [r6]
add r1, r5, r1
bl FUN_02020248
b _021D99EE
_021D99EA:
bl ErrorHandling
_021D99EE:
add r0, r6, #0
add sp, #0x74
pop {r3, r4, r5, r6, pc}
.balign 4, 0
_021D99F4: .word 0x00000162
thumb_func_start MOD05_021D99F8
MOD05_021D99F8: ; 0x021D99F8
push {r3, r4, r5, r6, r7, lr}
add r6, r0, #0
ldr r0, [r6]
bl FUN_0201FD58
mov r0, #0x52
lsl r0, r0, #2
ldr r0, [r6, r0]
bl FUN_02009C30
mov r0, #0x53
lsl r0, r0, #2
ldr r0, [r6, r0]
bl FUN_02009E28
mov r0, #0x16
lsl r0, r0, #4
ldrh r0, [r6, r0]
mov r4, #0
cmp r0, #0
bls _021D9A46
mov r7, #0x16
add r5, r6, #0
lsl r7, r7, #4
_021D9A28:
mov r0, #0x52
lsl r0, r0, #2
ldr r0, [r5, r0]
bl FUN_02009448
mov r0, #0x13
lsl r0, r0, #4
ldr r0, [r5, r0]
bl FUN_02008E2C
ldrh r0, [r6, r7]
add r4, r4, #1
add r5, r5, #4
cmp r4, r0
blo _021D9A28
_021D9A46:
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD05_021D9A48
MOD05_021D9A48: ; 0x021D9A48
push {r3, r4, r5, r6, r7, lr}
add r7, r2, #0
add r6, r0, #0
add r5, r1, #0
mov r0, #0
ldr r1, [r7, #0x18]
mvn r0, r0
add r4, r3, #0
cmp r1, r0
bne _021D9A60
bl ErrorHandling
_021D9A60:
mov r0, #0
add r1, r6, #0
_021D9A64:
ldr r2, [r1]
cmp r2, #0
beq _021D9A7A
ldr r2, [r1, #0xc]
cmp r4, r2
bne _021D9A7A
ldr r2, [r1, #4]
cmp r2, r5
bne _021D9A7A
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
_021D9A7A:
add r0, r0, #1
add r1, #0x10
cmp r0, #2
blt _021D9A64
mov r2, #0
add r1, r6, #0
_021D9A86:
ldr r0, [r1]
cmp r0, #0
bne _021D9A9C
lsl r1, r2, #4
mov r0, #1
str r0, [r6, r1]
add r0, r6, r1
str r4, [r0, #0xc]
str r7, [r0, #8]
str r5, [r0, #4]
b _021D9AA4
_021D9A9C:
add r2, r2, #1
add r1, #0x10
cmp r2, #2
blt _021D9A86
_021D9AA4:
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD05_021D9AA8
MOD05_021D9AA8: ; 0x021D9AA8
push {r3, r4, r5, r6, r7, lr}
add r6, r0, #0
mov r0, #0
add r4, r1, #0
mvn r0, r0
add r7, r2, #0
add r5, r3, #0
cmp r4, r0
bne _021D9ABE
bl ErrorHandling
_021D9ABE:
add r0, r6, #0
add r1, r4, #0
mov r2, #4
bl NARC_AllocAndReadWholeMember
add r4, r0, #0
bne _021D9AD0
bl ErrorHandling
_021D9AD0:
add r0, r4, #0
mov r1, #0
bl FUN_020BC4C8
add r6, r0, #0
bne _021D9AE0
bl ErrorHandling
_021D9AE0:
ldr r0, [sp, #0x1c]
add r1, r6, #0
add r2, r7, #0
bl FUN_020BB8D0
str r0, [r5]
cmp r5, #0
bne _021D9AF4
bl ErrorHandling
_021D9AF4:
ldr r0, [r5]
ldr r3, [sp, #0x18]
add r1, r6, #0
add r2, r7, #0
bl FUN_020B8110
add r0, r4, #0
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD05_021D9B04
MOD05_021D9B04: ; 0x021D9B04
push {r3, lr}
cmp r1, #0
bne _021D9B0E
mov r0, #0
pop {r3, pc}
_021D9B0E:
cmp r0, #0
bne _021D9B16
mov r0, #0
pop {r3, pc}
_021D9B16:
bl FUN_020B7E28
mov r0, #1
pop {r3, pc}
.balign 4, 0
thumb_func_start MOD05_021D9B20
MOD05_021D9B20: ; 0x021D9B20
push {r4, r5, r6, lr}
mov r4, #0
add r5, r0, #0
add r6, r4, #0
_021D9B28:
ldr r0, [r5]
cmp r0, #0
beq _021D9B4A
ldr r0, [r5, #8]
bl MOD05_021DA20C
cmp r0, #0
beq _021D9B4A
ldr r1, [r5, #8]
ldr r0, [r5, #4]
ldr r1, [r1]
bl MOD05_021D9B04
str r6, [r5]
str r6, [r5, #0xc]
str r6, [r5, #8]
str r6, [r5, #4]
_021D9B4A:
add r4, r4, #1
add r5, #0x10
cmp r4, #2
blt _021D9B28
pop {r4, r5, r6, pc}
thumb_func_start MOD05_021D9B54
MOD05_021D9B54: ; 0x021D9B54
push {r3, r4, r5, r6, r7, lr}
mov r1, #0xae
mov r0, #4
lsl r1, r1, #2
bl AllocFromHeap
add r7, r0, #0
mov r1, #0
add r2, r7, #0
add r6, r1, #0
sub r0, r1, #1
_021D9B6A:
str r6, [r2, #0x14]
str r6, [r2, #0x20]
str r6, [r2, #0x10]
str r6, [r2, #0x18]
str r6, [r2, #0x1c]
str r6, [r2, #0x24]
str r0, [r2, #0x28]
str r6, [r2, #0x2c]
str r6, [r2, #0x30]
str r6, [r2, #0x34]
add r1, r1, #1
add r2, #0x28
cmp r1, #0x10
blt _021D9B6A
mov r0, #0x29
lsl r0, r0, #4
add r2, r0, #0
add r3, r0, #0
add r5, r7, #0
mov r4, #0
add r1, r0, #4
add r2, #8
add r3, #0xc
_021D9B98:
str r4, [r5, r0]
str r4, [r5, r1]
str r4, [r5, r2]
str r4, [r5, r3]
add r6, r6, #1
add r5, #0x10
cmp r6, #2
blt _021D9B98
mov r1, #4
add r0, r7, #0
add r2, r1, #0
bl FUN_02016B20
mov r0, #0x6e
mov r1, #4
bl NARC_ctor
mov r1, #0x2b
lsl r1, r1, #4
str r0, [r7, r1]
mov r0, #0x6f
mov r1, #4
bl NARC_ctor
mov r1, #0xad
lsl r1, r1, #2
str r0, [r7, r1]
add r0, r7, #0
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021D9BD4
MOD05_021D9BD4: ; 0x021D9BD4
cmp r0, #0
bne _021D9BDC
mov r0, #0
bx lr
_021D9BDC:
ldr r0, [r0]
bx lr
thumb_func_start MOD05_021D9BE0
MOD05_021D9BE0: ; 0x021D9BE0
mov r1, #1
and r0, r1
cmp r0, #1
beq _021D9BEA
mov r1, #0
_021D9BEA:
add r0, r1, #0
bx lr
.balign 4, 0
thumb_func_start MOD05_021D9BF0
MOD05_021D9BF0: ; 0x021D9BF0
asr r1, r0, #1
mov r0, #1
and r1, r0
cmp r1, #1
beq _021D9BFC
mov r0, #0
_021D9BFC:
bx lr
.balign 4, 0
thumb_func_start MOD05_021D9C00
MOD05_021D9C00: ; 0x021D9C00
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #4]
cmp r0, #1
beq _021D9C0E
bl ErrorHandling
_021D9C0E:
ldr r0, [r4, #0x1c]
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021D9C14
MOD05_021D9C14: ; 0x021D9C14
push {r4, r5, r6, r7, lr}
sub sp, #0x24
add r6, r0, #0
mov r0, #0xad
ldr r7, [sp, #0x4c]
lsl r0, r0, #2
add r4, r1, #0
str r2, [sp, #8]
ldr r0, [r7, r0]
add r1, r6, #0
add r2, sp, #0x10
add r5, r3, #0
bl NARC_ReadWholeMember
cmp r4, #4
blt _021D9C38
bl ErrorHandling
_021D9C38:
lsl r1, r4, #2
add r0, sp, #0x14
ldr r0, [r0, r1]
mov r1, #0
mvn r1, r1
str r0, [sp, #0xc]
cmp r0, r1
bne _021D9C4E
add sp, #0x24
mov r0, #0
pop {r4, r5, r6, r7, pc}
_021D9C4E:
add r0, sp, #0x10
ldrb r0, [r0, #1]
bl MOD05_021D9BE0
ldr r1, [sp, #0x40]
cmp r1, r0
beq _021D9C62
add sp, #0x24
mov r0, #0
pop {r4, r5, r6, r7, pc}
_021D9C62:
mov r6, #0
add r4, r7, #0
_021D9C66:
cmp r5, #0
beq _021D9C74
ldr r0, [r4, #0x34]
cmp r5, r0
bne _021D9C74
bl ErrorHandling
_021D9C74:
add r6, r6, #1
add r4, #0x28
cmp r6, #0x10
blt _021D9C66
mov r2, #0
add r1, r7, #0
_021D9C80:
ldr r0, [r1, #0x14]
cmp r0, #0
bne _021D9CD8
add r4, r2, #0
mov r0, #0x28
mul r4, r0
mov r1, #1
add r0, r7, r4
str r1, [r0, #0x14]
ldr r1, [sp, #0x3c]
add r6, r7, #0
str r1, [r0, #0x20]
add r6, #0x10
mov r1, #0
str r1, [r6, r4]
str r1, [r0, #0x18]
ldr r1, [sp, #0xc]
ldr r2, [sp, #0x44]
str r1, [r0, #0x1c]
ldr r1, [sp, #0x38]
add r3, r6, r4
str r1, [r0, #0x30]
str r5, [r0, #0x34]
ldr r0, [sp, #0x48]
ldr r1, [sp, #0xc]
str r0, [sp]
mov r0, #0x2b
str r7, [sp, #4]
lsl r0, r0, #4
ldr r0, [r7, r0]
bl MOD05_021D9AA8
add r1, r7, r4
str r0, [r1, #0x24]
ldr r0, [sp, #8]
str r0, [r1, #0x28]
mov r0, #1
str r0, [r1, #0x2c]
add r0, r6, r4
bl MOD05_021DA118
add sp, #0x24
add r0, r6, r4
pop {r4, r5, r6, r7, pc}
_021D9CD8:
add r2, r2, #1
add r1, #0x28
cmp r2, #0x10
blt _021D9C80
bl ErrorHandling
mov r0, #0
add sp, #0x24
pop {r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021D9CEC
MOD05_021D9CEC: ; 0x021D9CEC
push {r4, r5, r6, r7, lr}
sub sp, #0x34
add r4, r0, #0
mov r0, #0xad
add r6, r3, #0
lsl r0, r0, #2
str r1, [sp, #8]
str r2, [sp, #0xc]
ldr r0, [r6, r0]
add r1, r4, #0
add r2, sp, #0x20
bl NARC_ReadWholeMember
add r0, sp, #0x20
ldrb r0, [r0]
cmp r0, #0
beq _021D9DBC
mov r0, #0
str r0, [sp, #0x14]
add r0, sp, #0x20
str r0, [sp, #0x10]
_021D9D16:
ldr r0, [sp, #0x10]
mov r1, #0
ldr r0, [r0, #4]
mvn r1, r1
str r0, [sp, #0x18]
cmp r0, r1
beq _021D9DBC
add r0, sp, #0x20
ldrb r0, [r0, #1]
bl MOD05_021D9BE0
cmp r0, #0
bne _021D9DBC
mov r4, #0
add r1, r6, #0
_021D9D34:
ldr r0, [r1, #0x14]
cmp r0, #0
bne _021D9D9C
mov r0, #0x28
add r7, r4, #0
mul r7, r0
add r5, r6, r7
mov r0, #1
str r0, [r5, #0x14]
mov r1, #0
str r1, [r5, #0x20]
str r1, [r5, #0x10]
ldr r0, [sp, #0x18]
str r1, [r5, #0x18]
str r0, [r5, #0x1c]
add r0, r6, #0
str r0, [sp, #0x1c]
add r0, #0x10
str r0, [sp, #0x1c]
str r1, [r5, #0x30]
str r1, [r5, #0x34]
ldr r0, [sp, #0xc]
ldr r3, [sp, #0x1c]
str r0, [sp]
mov r0, #0x2b
str r6, [sp, #4]
lsl r0, r0, #4
ldr r0, [r6, r0]
ldr r1, [sp, #0x18]
ldr r2, [sp, #8]
add r3, r3, r7
bl MOD05_021D9AA8
str r0, [r5, #0x24]
mov r0, #0
mvn r0, r0
str r0, [r5, #0x28]
mov r0, #1
str r0, [r5, #0x2c]
ldr r0, [sp, #0x1c]
add r0, r0, r7
bl MOD05_021DA118
add r0, sp, #0x20
ldrb r0, [r0, #2]
cmp r0, #0
beq _021D9DA4
add r1, r5, #0
mov r0, #1
str r0, [r1, #0x20]
str r0, [r1, #0x28]
b _021D9DA4
_021D9D9C:
add r4, r4, #1
add r1, #0x28
cmp r4, #0x10
blt _021D9D34
_021D9DA4:
cmp r4, #0x10
bne _021D9DAC
bl ErrorHandling
_021D9DAC:
ldr r0, [sp, #0x10]
add r0, r0, #4
str r0, [sp, #0x10]
ldr r0, [sp, #0x14]
add r0, r0, #1
str r0, [sp, #0x14]
cmp r0, #4
blt _021D9D16
_021D9DBC:
add sp, #0x34
pop {r4, r5, r6, r7, pc}
thumb_func_start MOD05_021D9DC0
MOD05_021D9DC0: ; 0x021D9DC0
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x18
ldr r6, [sp, #0x30]
add r5, r0, #0
add r4, r1, #0
add r7, r2, #0
str r3, [sp]
cmp r6, #0
bne _021D9DDC
bl ErrorHandling
add sp, #0x18
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
_021D9DDC:
add r0, r6, #0
bl MOD05_021DA220
cmp r5, r0
blt _021D9DEC
add sp, #0x18
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
_021D9DEC:
mov r0, #0xad
lsl r0, r0, #2
ldr r0, [r6, r0]
add r1, r5, #0
add r2, sp, #4
bl NARC_ReadWholeMember
cmp r4, #4
blt _021D9E02
bl ErrorHandling
_021D9E02:
lsl r1, r4, #2
add r0, sp, #8
ldr r5, [r0, r1]
mov r0, #0
mvn r0, r0
cmp r5, r0
bne _021D9E16
add sp, #0x18
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
_021D9E16:
add r0, sp, #4
ldrb r0, [r0, #1]
bl MOD05_021D9BF0
cmp r7, r0
beq _021D9E28
add sp, #0x18
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
_021D9E28:
mov r4, #0
add r1, r6, #0
_021D9E2C:
ldr r0, [r1, #0x1c]
cmp r5, r0
bne _021D9E70
add r0, sp, #4
ldrb r0, [r0, #2]
cmp r0, #0
beq _021D9E56
add r2, r6, #0
mov r3, #0x28
mov r0, #0x29
lsl r0, r0, #4
add r2, #0x10
mul r3, r4
add r2, r2, r3
lsl r3, r5, #0x18
ldr r1, [sp]
add r0, r6, r0
lsr r3, r3, #0x18
bl MOD05_021D9A48
b _021D9E58
_021D9E56:
mov r0, #1
_021D9E58:
cmp r0, #0
beq _021D9E6A
mov r1, #0x28
mul r1, r4
add r1, r6, r1
ldr r0, [sp]
ldr r1, [r1, #0x10]
bl FUN_020B7EFC
_021D9E6A:
add sp, #0x18
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021D9E70:
add r4, r4, #1
add r1, #0x28
cmp r4, #0x10
blt _021D9E2C
mov r0, #0
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021D9E80
MOD05_021D9E80: ; 0x021D9E80
push {r4, r5, r6, r7, lr}
sub sp, #0x24
add r5, r0, #0
ldr r0, _021D9F44 ; =0x00000000
str r1, [sp, #0xc]
add r4, r2, #0
str r0, [sp]
bne _021D9E94
bl ErrorHandling
_021D9E94:
add r0, r4, #0
bl MOD05_021DA220
cmp r5, r0
blt _021D9EA4
add sp, #0x24
mov r0, #0
pop {r4, r5, r6, r7, pc}
_021D9EA4:
mov r0, #0xad
lsl r0, r0, #2
ldr r0, [r4, r0]
add r1, r5, #0
add r2, sp, #0x10
bl NARC_ReadWholeMember
add r0, sp, #0x10
ldrb r0, [r0, #1]
bl MOD05_021D9BF0
cmp r0, #0
beq _021D9EC4
add sp, #0x24
mov r0, #0
pop {r4, r5, r6, r7, pc}
_021D9EC4:
mov r0, #0
str r0, [sp, #4]
add r0, r4, #0
str r0, [sp, #8]
add r0, #0x10
add r7, sp, #0x10
str r0, [sp, #8]
_021D9ED2:
mov r0, #0
ldr r3, [r7, #4]
mvn r0, r0
cmp r3, r0
bne _021D9EE2
ldr r0, [sp]
add sp, #0x24
pop {r4, r5, r6, r7, pc}
_021D9EE2:
mov r5, #0
add r1, r4, #0
_021D9EE6:
ldr r0, [r1, #0x1c]
cmp r3, r0
bne _021D9F2A
add r0, sp, #0x10
ldrb r0, [r0, #2]
cmp r0, #0
beq _021D9F10
mov r2, #0x28
add r6, r5, #0
mov r0, #0x29
mul r6, r2
ldr r2, [sp, #8]
lsl r0, r0, #4
lsl r3, r3, #0x18
ldr r1, [sp, #0xc]
add r0, r4, r0
add r2, r2, r6
lsr r3, r3, #0x18
bl MOD05_021D9A48
b _021D9F12
_021D9F10:
mov r0, #1
_021D9F12:
cmp r0, #0
beq _021D9F32
mov r1, #0x28
mul r1, r5
add r1, r4, r1
ldr r0, [sp, #0xc]
ldr r1, [r1, #0x10]
bl FUN_020B7EFC
mov r0, #1
str r0, [sp]
b _021D9F32
_021D9F2A:
add r5, r5, #1
add r1, #0x28
cmp r5, #0x10
blt _021D9EE6
_021D9F32:
ldr r0, [sp, #4]
add r7, r7, #4
add r0, r0, #1
str r0, [sp, #4]
cmp r0, #4
blt _021D9ED2
ldr r0, [sp]
add sp, #0x24
pop {r4, r5, r6, r7, pc}
.balign 4, 0
_021D9F44: .word 0x00000000
thumb_func_start MOD05_021D9F48
MOD05_021D9F48: ; 0x021D9F48
push {r3, r4, r5, r6, r7, lr}
add r6, r0, #0
beq _021D9F7C
mov r4, #0
add r5, r6, #0
add r7, r4, #0
_021D9F54:
ldr r0, [r5, #0x14]
cmp r0, #0
beq _021D9F74
cmp r0, #1
bne _021D9F6E
ldr r1, [r5, #0x10]
add r0, r6, #0
bl thunk_FUN_020ae84c
str r7, [r5, #0x10]
ldr r0, [r5, #0x24]
bl FreeToHeap
_021D9F6E:
mov r0, #0
str r0, [r5, #0x14]
str r0, [r5, #0x34]
_021D9F74:
add r4, r4, #1
add r5, #0x28
cmp r4, #0x10
blt _021D9F54
_021D9F7C:
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021D9F80
MOD05_021D9F80: ; 0x021D9F80
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
beq _021D9FB2
cmp r5, #0
bne _021D9F90
bl ErrorHandling
_021D9F90:
ldr r0, [r5, #4]
cmp r0, #0
beq _021D9FB2
cmp r0, #1
bne _021D9FAC
ldr r1, [r5]
add r0, r4, #0
bl thunk_FUN_020ae84c
mov r0, #0
str r0, [r5]
ldr r0, [r5, #0x14]
bl FreeToHeap
_021D9FAC:
mov r0, #0
str r0, [r5, #4]
str r0, [r5, #0x24]
_021D9FB2:
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021D9FB4
MOD05_021D9FB4: ; 0x021D9FB4
push {r3, r4, r5, r6, lr}
sub sp, #0x14
add r4, r0, #0
mov r0, #0xad
lsl r0, r0, #2
add r6, r1, #0
add r1, r2, #0
ldr r0, [r4, r0]
add r2, sp, #0
add r5, r3, #0
bl NARC_ReadWholeMember
cmp r5, #4
blt _021D9FD4
bl ErrorHandling
_021D9FD4:
lsl r1, r5, #2
add r0, sp, #4
ldr r5, [r0, r1]
mov r0, #0
mvn r0, r0
cmp r5, r0
bne _021D9FE6
bl ErrorHandling
_021D9FE6:
mov r0, #0
mov r2, #0x28
_021D9FEA:
add r1, r0, #0
mul r1, r2
add r1, r4, r1
ldr r3, [r1, #0x14]
cmp r3, #1
bne _021DA008
ldr r3, [r1, #0x1c]
cmp r5, r3
bne _021DA008
ldr r1, [r1, #0x10]
add r0, r6, #0
bl MOD05_021D9B04
add sp, #0x14
pop {r3, r4, r5, r6, pc}
_021DA008:
add r0, r0, #1
lsl r0, r0, #0x18
lsr r0, r0, #0x18
cmp r0, #0x10
blo _021D9FEA
add sp, #0x14
pop {r3, r4, r5, r6, pc}
.balign 4, 0
thumb_func_start MOD05_021DA018
MOD05_021DA018: ; 0x021DA018
push {r4, lr}
add r4, r0, #0
beq _021DA038
mov r0, #0x2b
lsl r0, r0, #4
ldr r0, [r4, r0]
bl NARC_dtor
mov r0, #0xad
lsl r0, r0, #2
ldr r0, [r4, r0]
bl NARC_dtor
add r0, r4, #0
bl FreeToHeap
_021DA038:
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021DA03C
MOD05_021DA03C: ; 0x021DA03C
push {r4, r5, r6, lr}
add r5, r0, #0
add r4, r1, #0
cmp r5, #0
bne _021DA04A
bl ErrorHandling
_021DA04A:
mov r6, #0
add r1, r6, #0
add r2, r4, #0
_021DA050:
ldr r0, [r2, #0x34]
cmp r5, r0
bne _021DA06A
mov r0, #0x28
add r4, #0x10
mul r0, r1
add r6, r4, r0
ldr r0, [r6, #4]
cmp r0, #0
bne _021DA072
bl ErrorHandling
b _021DA072
_021DA06A:
add r1, r1, #1
add r2, #0x28
cmp r1, #0x10
blt _021DA050
_021DA072:
cmp r6, #0
bne _021DA07A
bl ErrorHandling
_021DA07A:
add r0, r6, #0
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_start MOD05_021DA080
MOD05_021DA080: ; 0x021DA080
push {r4, r5, lr}
sub sp, #0x14
add r3, r0, #0
mov r0, #0xad
add r5, r2, #0
lsl r0, r0, #2
add r4, r1, #0
ldr r0, [r5, r0]
add r1, r3, #0
add r2, sp, #0
bl NARC_ReadWholeMember
cmp r4, #4
blt _021DA0A0
bl ErrorHandling
_021DA0A0:
lsl r1, r4, #2
add r0, sp, #4
mov r4, #0
ldr r1, [r0, r1]
add r2, r4, #0
add r3, r5, #0
_021DA0AC:
ldr r0, [r3, #0x1c]
cmp r1, r0
bne _021DA0C6
mov r0, #0x28
add r5, #0x10
mul r0, r2
add r4, r5, r0
ldr r0, [r4, #4]
cmp r0, #0
bne _021DA0CE
bl ErrorHandling
b _021DA0CE
_021DA0C6:
add r2, r2, #1
add r3, #0x28
cmp r2, #0x10
blt _021DA0AC
_021DA0CE:
cmp r4, #0
bne _021DA0D6
bl ErrorHandling
_021DA0D6:
add r0, r4, #0
add sp, #0x14
pop {r4, r5, pc}
thumb_func_start MOD05_021DA0DC
MOD05_021DA0DC: ; 0x021DA0DC
str r1, [r0, #0x10]
bx lr
thumb_func_start MOD05_021DA0E0
MOD05_021DA0E0: ; 0x021DA0E0
mov r1, #1
str r1, [r0, #0x1c]
bx lr
.balign 4, 0
thumb_func_start MOD05_021DA0E8
MOD05_021DA0E8: ; 0x021DA0E8
ldr r1, [r0, #0x20]
ldr r0, [r0]
cmp r1, #0
bne _021DA10A
ldr r2, [r0]
ldr r0, [r0, #8]
ldrh r0, [r0, #4]
lsl r1, r0, #0xc
mov r0, #1
lsl r0, r0, #0xc
sub r0, r1, r0
cmp r2, r0
blt _021DA106
mov r0, #1
bx lr
_021DA106:
mov r0, #0
bx lr
_021DA10A:
ldr r0, [r0]
cmp r0, #0
bne _021DA114
mov r0, #1
bx lr
_021DA114:
mov r0, #0
bx lr
thumb_func_start MOD05_021DA118
MOD05_021DA118: ; 0x021DA118
ldr r1, [r0, #0x20]
cmp r1, #0
bne _021DA126
ldr r0, [r0]
mov r1, #0
str r1, [r0]
bx lr
_021DA126:
ldr r2, [r0]
ldr r0, [r2, #8]
ldrh r0, [r0, #4]
lsl r1, r0, #0xc
mov r0, #1
lsl r0, r0, #0xc
sub r0, r1, r0
str r0, [r2]
bx lr
thumb_func_start MOD05_021DA138
MOD05_021DA138: ; 0x021DA138
ldr r1, [r0, #0x20]
cmp r1, #0
bne _021DA150
ldr r2, [r0]
ldr r0, [r2, #8]
ldrh r0, [r0, #4]
lsl r1, r0, #0xc
mov r0, #1
lsl r0, r0, #0xc
sub r0, r1, r0
str r0, [r2]
bx lr
_021DA150:
ldr r0, [r0]
mov r1, #0
str r1, [r0]
bx lr
thumb_func_start MOD05_021DA158
MOD05_021DA158: ; 0x021DA158
ldr r1, [r0, #0x20]
cmp r1, #0
bne _021DA17E
ldr r3, [r0]
mov r1, #1
ldr r2, [r3]
lsl r1, r1, #0xc
add r1, r2, r1
str r1, [r3]
ldr r2, [r0]
ldr r0, [r2, #8]
ldr r1, [r2]
ldrh r0, [r0, #4]
lsl r0, r0, #0xc
cmp r1, r0
bne _021DA19E
mov r0, #0
str r0, [r2]
bx lr
_021DA17E:
ldr r0, [r0]
ldr r2, [r0]
cmp r2, #0
bgt _021DA196
ldr r1, [r0, #8]
ldrh r1, [r1, #4]
lsl r2, r1, #0xc
mov r1, #1
lsl r1, r1, #0xc
sub r1, r2, r1
str r1, [r0]
bx lr
_021DA196:
mov r1, #1
lsl r1, r1, #0xc
sub r1, r2, r1
str r1, [r0]
_021DA19E:
bx lr
thumb_func_start MOD05_021DA1A0
MOD05_021DA1A0: ; 0x021DA1A0
str r1, [r0, #0x20]
bx lr
thumb_func_start MOD05_021DA1A4
MOD05_021DA1A4: ; 0x021DA1A4
str r1, [r0, #0x18]
bx lr
thumb_func_start MOD05_021DA1A8
MOD05_021DA1A8: ; 0x021DA1A8
str r1, [r0, #0x24]
bx lr
thumb_func_start MOD05_021DA1AC
MOD05_021DA1AC: ; 0x021DA1AC
push {r3, r4, r5, r6, r7, lr}
str r0, [sp]
cmp r0, #0
beq _021DA20A
mov r4, #0
add r5, r0, #0
add r5, #0x10
add r6, r4, #0
sub r7, r4, #1
_021DA1BE:
ldr r0, [r5, #4]
cmp r0, #1
bne _021DA1F6
ldr r0, [r5, #0x10]
cmp r0, #1
beq _021DA1F6
ldr r0, [r5, #0x1c]
cmp r0, #0
beq _021DA1F6
add r0, r5, #0
bl MOD05_021DA158
ldr r0, [r5, #0x18]
cmp r0, r7
beq _021DA1F6
add r0, r5, #0
bl MOD05_021DA0E8
cmp r0, #0
beq _021DA1F6
ldr r0, [r5, #8]
add r1, r0, #1
ldr r0, [r5, #0x18]
cmp r1, r0
blt _021DA1F4
str r6, [r5, #0x1c]
b _021DA1F6
_021DA1F4:
str r1, [r5, #8]
_021DA1F6:
add r4, r4, #1
add r5, #0x28
cmp r4, #0x10
blt _021DA1BE
mov r1, #0x29
ldr r0, [sp]
lsl r1, r1, #4
add r0, r0, r1
bl MOD05_021D9B20
_021DA20A:
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD05_021DA20C
MOD05_021DA20C: ; 0x021DA20C
push {r3, lr}
bl MOD05_021D9C00
cmp r0, #0
bne _021DA21A
mov r0, #1
pop {r3, pc}
_021DA21A:
mov r0, #0
pop {r3, pc}
.balign 4, 0
thumb_func_start MOD05_021DA220
MOD05_021DA220: ; 0x021DA220
mov r1, #0xad
lsl r1, r1, #2
ldr r3, _021DA22C ; =NARC_GetFileCount
ldr r0, [r0, r1]
bx r3
nop
_021DA22C: .word NARC_GetFileCount
thumb_func_start MOD05_021DA230
MOD05_021DA230: ; 0x021DA230
push {lr}
sub sp, #0x14
mov r2, #0xad
lsl r2, r2, #2
ldr r0, [r0, r2]
add r2, sp, #0
bl NARC_ReadWholeMember
add r0, sp, #0
ldrb r0, [r0]
cmp r0, #0
bne _021DA24E
add sp, #0x14
mov r0, #0
pop {pc}
_021DA24E:
mov r0, #0
add r3, sp, #0
sub r1, r0, #1
_021DA254:
lsl r2, r0, #2
add r2, r3, r2
ldr r2, [r2, #4]
cmp r2, r1
beq _021DA268
add r0, r0, #1
lsl r0, r0, #0x18
lsr r0, r0, #0x18
cmp r0, #4
blo _021DA254
_021DA268:
add sp, #0x14
pop {pc}
thumb_func_start MOD05_021DA26C
MOD05_021DA26C: ; 0x021DA26C
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
bne _021DA278
bl ErrorHandling
_021DA278:
mov r1, #0x10
mov r0, #0
mov r2, #0x38
_021DA27E:
cmp r1, #0x10
bne _021DA292
add r3, r0, #0
mul r3, r2
add r3, r5, r3
add r3, #0x34
ldrb r3, [r3]
cmp r3, #0
bne _021DA292
add r1, r0, #0
_021DA292:
add r0, r0, #1
lsl r0, r0, #0x18
lsr r0, r0, #0x18
cmp r0, #0x10
blo _021DA27E
cmp r1, #0x10
beq _021DA2AE
mov r0, #0x38
add r2, r1, #0
mul r2, r0
add r0, r5, r2
add r0, #0x34
strb r4, [r0]
b _021DA2B6
_021DA2AE:
bl ErrorHandling
mov r0, #0
pop {r3, r4, r5, pc}
_021DA2B6:
add r0, r5, r2
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021DA2BC
MOD05_021DA2BC: ; 0x021DA2BC
add r1, r0, #0
mov r3, #0
add r1, #0x34
strb r3, [r1]
str r3, [r0, #0x30]
str r3, [r0, #0x2c]
add r2, r3, #0
_021DA2CA:
lsl r1, r3, #2
add r1, r0, r1
str r2, [r1, #0x14]
add r1, r3, #1
lsl r1, r1, #0x18
lsr r3, r1, #0x18
cmp r3, #6
blo _021DA2CA
bx lr
thumb_func_start MOD05_021DA2DC
MOD05_021DA2DC: ; 0x021DA2DC
push {r4, r5}
mov r4, #0
add r3, r4, #0
add r5, r0, #0
_021DA2E4:
add r2, r5, #0
add r2, #0x34
ldrb r2, [r2]
cmp r1, r2
bne _021DA2F6
mov r1, #0x38
mul r1, r3
add r4, r0, r1
b _021DA2FE
_021DA2F6:
add r3, r3, #1
add r5, #0x38
cmp r3, #0x10
blt _021DA2E4
_021DA2FE:
add r0, r4, #0
pop {r4, r5}
bx lr
thumb_func_start MOD05_021DA304
MOD05_021DA304: ; 0x021DA304
push {r4, r5, r6, lr}
add r4, r1, #0
add r5, r0, #0
add r6, r2, #0
cmp r4, #4
ble _021DA314
bl ErrorHandling
_021DA314:
cmp r5, #0
beq _021DA31A
str r5, [r6, #0x14]
_021DA31A:
str r4, [r6, #0x10]
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_start MOD05_021DA320
MOD05_021DA320: ; 0x021DA320
push {r4, r5, r6, lr}
add r5, r0, #0
ldr r0, [r5, #0x10]
add r4, r1, #0
add r6, r2, #0
cmp r4, r0
blt _021DA332
bl ErrorHandling
_021DA332:
lsl r0, r4, #2
str r6, [r5, r0]
pop {r4, r5, r6, pc}
thumb_func_start MOD05_021DA338
MOD05_021DA338: ; 0x021DA338
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
add r5, r0, #0
ldr r0, [r5, #0x10]
add r4, r1, #0
cmp r4, r0
blt _021DA34A
bl ErrorHandling
_021DA34A:
lsl r0, r4, #2
ldr r0, [r5, r0]
str r0, [sp, #4]
bl MOD05_021D9BD4
str r0, [sp]
ldr r0, [r5, #0x2c]
bl MOD05_021D9BD4
add r7, r0, #0
mov r4, #0
_021DA360:
lsl r0, r4, #2
add r6, r5, r0
ldr r0, [r6, #0x14]
cmp r0, #0
beq _021DA378
add r1, r7, #0
bl MOD05_021D9B04
ldr r0, [r6, #0x14]
ldr r1, [sp]
bl FUN_020B7EFC
_021DA378:
add r0, r4, #1
lsl r0, r0, #0x18
lsr r4, r0, #0x18
cmp r4, #6
blo _021DA360
ldr r0, [sp, #4]
str r0, [r5, #0x2c]
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021DA38C
MOD05_021DA38C: ; 0x021DA38C
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x28
str r0, [sp, #0x18]
ldr r0, [sp, #0x40]
str r1, [sp, #0x1c]
str r0, [sp, #0x40]
ldr r0, [sp, #0x4c]
str r2, [sp, #0x20]
str r0, [sp, #0x4c]
add r0, r3, #0
mov r5, #0
str r3, [sp, #0x24]
ldr r6, [sp, #0x44]
ldr r7, [sp, #0x48]
cmp r0, #0
ble _021DA3E4
_021DA3AC:
str r6, [sp]
mov r0, #1
str r0, [sp, #4]
str r0, [sp, #8]
ldr r0, [sp, #0x1c]
ldr r2, [sp, #0x40]
str r0, [sp, #0xc]
ldr r0, [sp, #0x20]
add r1, r5, #0
str r0, [sp, #0x10]
ldr r0, [sp, #0x18]
mov r3, #0
str r7, [sp, #0x14]
bl MOD05_021D9C14
add r4, r0, #0
bne _021DA3D2
bl ErrorHandling
_021DA3D2:
ldr r0, [sp, #0x4c]
add r1, r5, #0
add r2, r4, #0
bl MOD05_021DA320
ldr r0, [sp, #0x24]
add r5, r5, #1
cmp r5, r0
blt _021DA3AC
_021DA3E4:
add sp, #0x28
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD05_021DA3E8
MOD05_021DA3E8: ; 0x021DA3E8
push {r3, r4, r5, r6, r7, lr}
add r6, r1, #0
str r0, [sp]
ldr r0, [r6, #0x2c]
bl MOD05_021D9BD4
add r7, r0, #0
mov r4, #0
add r5, r6, #0
_021DA3FA:
ldr r0, [r5, #0x14]
cmp r0, #0
beq _021DA406
add r1, r7, #0
bl MOD05_021D9B04
_021DA406:
add r4, r4, #1
add r5, r5, #4
cmp r4, #6
blt _021DA3FA
ldr r0, [r6, #0x10]
mov r5, #0
cmp r0, #0
ble _021DA42C
add r4, r6, #0
add r7, r5, #0
_021DA41A:
ldr r0, [r4]
ldr r1, [sp]
bl MOD05_021D9F80
stmia r4!, {r7}
ldr r0, [r6, #0x10]
add r5, r5, #1
cmp r5, r0
blt _021DA41A
_021DA42C:
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021DA430
MOD05_021DA430: ; 0x021DA430
push {r4, lr}
mov r1, #0xe
mov r0, #4
lsl r1, r1, #6
bl AllocFromHeap
add r4, r0, #0
mov r2, #0xe
mov r0, #0
add r1, r4, #0
lsl r2, r2, #6
bl MIi_CpuClearFast
add r0, r4, #0
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021DA450
MOD05_021DA450: ; 0x021DA450
push {r4, lr}
add r4, r0, #0
ldr r0, [r4]
cmp r0, #0
beq _021DA462
bl FreeToHeap
mov r0, #0
str r0, [r4]
_021DA462:
pop {r4, pc}
thumb_func_start MOD05_021DA464
MOD05_021DA464: ; 0x021DA464
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x10
add r7, r0, #0
add r0, r1, #0
lsl r1, r2, #0x18
lsr r1, r1, #0x18
add r6, r3, #0
bl MOD05_021DA26C
add r5, r0, #0
bne _021DA482
bl ErrorHandling
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
_021DA482:
ldr r0, [sp, #0x28]
ldr r1, [sp, #0x34]
add r2, r5, #0
bl MOD05_021DA304
add r0, sp, #0x38
ldrb r4, [r0]
cmp r4, #0
bne _021DA498
bl ErrorHandling
_021DA498:
cmp r4, #0
bne _021DA49E
mov r4, #1
_021DA49E:
ldr r0, [sp, #0x3c]
str r4, [sp]
str r0, [sp, #4]
str r7, [sp, #8]
ldr r1, [sp, #0x2c]
ldr r2, [sp, #0x30]
ldr r3, [sp, #0x34]
add r0, r6, #0
str r5, [sp, #0xc]
bl MOD05_021DA38C
str r6, [r5, #0x30]
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021DA4BC
MOD05_021DA4BC: ; 0x021DA4BC
push {r3, r4, r5, r6, r7, lr}
add r4, r2, #0
add r5, r0, #0
add r7, r1, #0
add r6, r3, #0
cmp r4, #6
blo _021DA4CE
bl ErrorHandling
_021DA4CE:
add r0, r5, #0
add r1, r7, #0
bl MOD05_021DA2DC
add r5, r0, #0
add r5, #0x14
lsl r4, r4, #2
ldr r0, [r5, r4]
cmp r0, #0
beq _021DA4E6
bl ErrorHandling
_021DA4E6:
str r6, [r5, r4]
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021DA4EC
MOD05_021DA4EC: ; 0x021DA4EC
push {r4, r5, r6, lr}
add r4, r1, #0
add r5, r0, #0
add r6, r2, #0
cmp r4, #0
bne _021DA4FC
bl ErrorHandling
_021DA4FC:
add r0, r5, #0
add r1, r4, #0
bl MOD05_021DA2DC
add r1, r6, #0
bl MOD05_021DA338
mov r1, #0
bl MOD05_021DA0DC
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_start MOD05_021DA514
MOD05_021DA514: ; 0x021DA514
push {r3, r4, r5, r6, r7, lr}
add r5, r1, #0
add r6, r0, #0
add r7, r2, #0
add r4, r3, #0
cmp r5, #0
bne _021DA526
bl ErrorHandling
_021DA526:
add r0, r6, #0
add r1, r5, #0
bl MOD05_021DA2DC
add r1, r7, #0
bl MOD05_021DA338
add r5, r0, #0
cmp r4, #0
beq _021DA542
lsl r0, r4, #0x10
lsr r0, r0, #0x10
bl FUN_020054C8
_021DA542:
add r0, r5, #0
mov r1, #0
bl MOD05_021DA0DC
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD05_021DA54C
MOD05_021DA54C: ; 0x021DA54C
push {r4, r5, r6, lr}
add r5, r0, #0
add r4, r1, #0
add r6, r2, #0
bne _021DA55A
bl ErrorHandling
_021DA55A:
add r0, r4, #0
add r1, r6, #0
bl MOD05_021DA2DC
add r4, r0, #0
add r0, r5, #0
add r1, r4, #0
bl MOD05_021DA3E8
add r0, r4, #0
bl MOD05_021DA2BC
pop {r4, r5, r6, pc}
thumb_func_start MOD05_021DA574
MOD05_021DA574: ; 0x021DA574
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
bne _021DA580
bl ErrorHandling
_021DA580:
add r0, r5, #0
add r1, r4, #0
bl MOD05_021DA2DC
ldr r0, [r0, #0x2c]
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021DA58C
MOD05_021DA58C: ; 0x021DA58C
push {r4, lr}
bl MOD05_021DA574
add r4, r0, #0
bne _021DA59A
bl ErrorHandling
_021DA59A:
add r0, r4, #0
bl MOD05_021DA20C
cmp r0, #0
beq _021DA5A8
mov r0, #1
pop {r4, pc}
_021DA5A8:
mov r0, #0
pop {r4, pc}
thumb_func_start MOD05_021DA5AC
MOD05_021DA5AC: ; 0x021DA5AC
push {r3, lr}
bl MOD05_021DA2DC
ldr r0, [r0, #0x30]
pop {r3, pc}
.balign 4, 0
thumb_func_start MOD05_021DA5B8
MOD05_021DA5B8: ; 0x021DA5B8
push {r3, lr}
mov r0, #4
mov r1, #0x28
bl AllocFromHeapAtEnd
mov r1, #0
str r1, [r0]
pop {r3, pc}
thumb_func_start MOD05_021DA5C8
MOD05_021DA5C8: ; 0x021DA5C8
ldr r3, _021DA5CC ; =FreeToHeap
bx r3
.balign 4, 0
_021DA5CC: .word FreeToHeap
thumb_func_start MOD05_021DA5D0
MOD05_021DA5D0: ; 0x021DA5D0
str r0, [r2, #0x14]
str r1, [r2, #0x18]
bx lr
.balign 4, 0
thumb_func_start MOD05_021DA5D8
MOD05_021DA5D8: ; 0x021DA5D8
push {r4, r5, r6, r7, lr}
sub sp, #0x84
add r4, r1, #0
add r5, r0, #0
ldr r0, [r4]
cmp r0, #5
bls _021DA5E8
b _021DA78E
_021DA5E8:
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021DA5F4: ; jump table
.short _021DA600 - _021DA5F4 - 2 ; case 0
.short _021DA69A - _021DA5F4 - 2 ; case 1
.short _021DA6EC - _021DA5F4 - 2 ; case 2
.short _021DA700 - _021DA5F4 - 2 ; case 3
.short _021DA714 - _021DA5F4 - 2 ; case 4
.short _021DA772 - _021DA5F4 - 2 ; case 5
_021DA600:
ldr r6, _021DA7A4 ; =0x021F650C
add r3, sp, #0x34
mov r2, #0xa
_021DA606:
ldmia r6!, {r0, r1}
stmia r3!, {r0, r1}
sub r2, r2, #1
bne _021DA606
mov r0, #0
str r0, [r4, #0x20]
strb r0, [r4, #0x1d]
mov r0, #3
str r0, [sp]
mov r2, #1
str r2, [sp, #4]
add r0, sp, #0x24
str r0, [sp, #8]
sub r2, r2, #2
ldr r0, [r4, #0x14]
ldr r1, [r4, #0x18]
add r3, r2, #0
bl FUN_0204A840
mov r0, #1
strb r0, [r4, #0x1c]
add r0, sp, #0x20
str r0, [sp]
add r0, sp, #0x1c
str r0, [sp, #4]
add r0, r5, #0
add r1, sp, #0x34
mov r2, #0x14
add r3, sp, #0x24
bl FUN_0204A94C
cmp r0, #0
beq _021DA688
ldr r0, [r5, #0x4c]
ldr r1, [sp, #0x1c]
bl MOD05_021DA230
add r6, r0, #0
strb r6, [r4, #0x1e]
ldr r0, [r5, #0x2c]
bl MOD05_021F4C88
add r7, r0, #0
ldr r0, [sp, #0x20]
bl MOD05_021E7EC8
str r0, [sp, #0x18]
ldr r0, [sp, #0x20]
bl MOD05_021E7ECC
ldr r1, [sp, #0x18]
mov r2, #1
str r1, [sp]
str r0, [sp, #4]
str r7, [sp, #8]
str r6, [sp, #0xc]
str r2, [sp, #0x10]
mov r0, #0
str r0, [sp, #0x14]
ldr r0, [r5, #0x4c]
ldr r1, [r5, #0x50]
ldr r3, [sp, #0x1c]
bl MOD05_021DA464
b _021DA692
_021DA688:
bl ErrorHandling
add sp, #0x84
mov r0, #1
pop {r4, r5, r6, r7, pc}
_021DA692:
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021DA78E
_021DA69A:
ldr r0, [r5, #0x50]
mov r1, #1
bl MOD05_021DA5AC
add r6, r0, #0
cmp r6, #0x4b
beq _021DA6B2
ldr r0, [r5, #0x20]
bl FUN_0201EC88
mov r0, #1
str r0, [r4, #0x20]
_021DA6B2:
add r0, r6, #0
bl MOD05_021DAA6C
cmp r0, #0
beq _021DA6C0
ldr r6, _021DA7A8 ; =0x00000608
b _021DA6C2
_021DA6C0:
ldr r6, _021DA7AC ; =0x00000605
_021DA6C2:
ldrb r0, [r4, #0x1e]
cmp r0, #2
bne _021DA6CC
mov r2, #0
b _021DA6DA
_021DA6CC:
cmp r0, #4
bne _021DA6D4
mov r2, #0
b _021DA6DA
_021DA6D4:
bl ErrorHandling
mov r2, #0
_021DA6DA:
ldr r0, [r5, #0x50]
mov r1, #1
add r3, r6, #0
bl MOD05_021DA514
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021DA78E
_021DA6EC:
ldr r0, [r5, #0x50]
mov r1, #1
bl MOD05_021DA58C
cmp r0, #0
beq _021DA78E
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021DA78E
_021DA700:
ldr r0, [r5, #0x38]
bl FUN_020553A0
mov r1, #0xc
bl FUN_0205ADDC
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021DA78E
_021DA714:
ldr r0, [r5, #0x38]
bl FUN_020553A0
add r6, r0, #0
bl FUN_0205AE28
cmp r0, #1
bne _021DA78E
add r0, r6, #0
bl FUN_0205AE50
add r0, r6, #0
mov r1, #1
bl FUN_0205889C
ldr r0, [r5, #0x50]
mov r1, #1
bl MOD05_021DA5AC
bl MOD05_021DAA6C
cmp r0, #0
beq _021DA746
mov r6, #0
b _021DA748
_021DA746:
ldr r6, _021DA7B0 ; =0x00000607
_021DA748:
ldrb r0, [r4, #0x1e]
cmp r0, #2
bne _021DA752
mov r2, #1
b _021DA760
_021DA752:
cmp r0, #4
bne _021DA75A
mov r2, #1
b _021DA760
_021DA75A:
bl ErrorHandling
mov r2, #1
_021DA760:
ldr r0, [r5, #0x50]
mov r1, #1
add r3, r6, #0
bl MOD05_021DA514
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021DA78E
_021DA772:
ldr r0, [r5, #0x50]
mov r1, #1
bl MOD05_021DA58C
cmp r0, #0
beq _021DA78E
ldr r0, [r5, #0x4c]
ldr r1, [r5, #0x50]
mov r2, #1
bl MOD05_021DA54C
add sp, #0x84
mov r0, #1
pop {r4, r5, r6, r7, pc}
_021DA78E:
ldr r0, [r4, #0x20]
cmp r0, #0
beq _021DA79E
add r4, #0x1d
ldr r0, [r5, #0x20]
add r1, r4, #0
bl MOD05_021DA9E8
_021DA79E:
mov r0, #0
add sp, #0x84
pop {r4, r5, r6, r7, pc}
.balign 4, 0
_021DA7A4: .word 0x021F650C
_021DA7A8: .word 0x00000608
_021DA7AC: .word 0x00000605
_021DA7B0: .word 0x00000607
thumb_func_start MOD05_021DA7B4
MOD05_021DA7B4: ; 0x021DA7B4
push {r4, r5, r6, r7, lr}
sub sp, #0x84
add r4, r1, #0
add r5, r0, #0
ldr r0, [r4]
cmp r0, #6
bls _021DA7C4
b _021DA9BE
_021DA7C4:
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021DA7D0: ; jump table
.short _021DA7DE - _021DA7D0 - 2 ; case 0
.short _021DA896 - _021DA7D0 - 2 ; case 1
.short _021DA8F6 - _021DA7D0 - 2 ; case 2
.short _021DA916 - _021DA7D0 - 2 ; case 3
.short _021DA92A - _021DA7D0 - 2 ; case 4
.short _021DA980 - _021DA7D0 - 2 ; case 5
.short _021DA9B0 - _021DA7D0 - 2 ; case 6
_021DA7DE:
ldr r6, _021DA9D4 ; =0x021F655C
add r3, sp, #0x34
mov r2, #0xa
_021DA7E4:
ldmia r6!, {r0, r1}
stmia r3!, {r0, r1}
sub r2, r2, #1
bne _021DA7E4
mov r3, #0
str r3, [r4, #0x20]
strb r3, [r4, #0x1d]
mov r0, #3
str r0, [sp]
mov r2, #1
str r2, [sp, #4]
add r0, sp, #0x24
str r0, [sp, #8]
ldr r0, [r4, #0x14]
ldr r1, [r4, #0x18]
sub r2, r2, #2
bl FUN_0204A840
mov r0, #1
strb r0, [r4, #0x1c]
add r0, sp, #0x20
str r0, [sp]
add r0, sp, #0x1c
str r0, [sp, #4]
add r0, r5, #0
add r1, sp, #0x34
mov r2, #0x14
add r3, sp, #0x24
bl FUN_0204A94C
cmp r0, #0
beq _021DA864
ldr r0, [r5, #0x4c]
ldr r1, [sp, #0x1c]
bl MOD05_021DA230
add r6, r0, #0
strb r6, [r4, #0x1e]
ldr r0, [r5, #0x2c]
bl MOD05_021F4C88
add r7, r0, #0
ldr r0, [sp, #0x20]
bl MOD05_021E7EC8
str r0, [sp, #0x18]
ldr r0, [sp, #0x20]
bl MOD05_021E7ECC
ldr r1, [sp, #0x18]
mov r2, #1
str r1, [sp]
str r0, [sp, #4]
str r7, [sp, #8]
str r6, [sp, #0xc]
str r2, [sp, #0x10]
mov r0, #0
str r0, [sp, #0x14]
ldr r0, [r5, #0x4c]
ldr r1, [r5, #0x50]
ldr r3, [sp, #0x1c]
bl MOD05_021DA464
b _021DA878
_021DA864:
bl ErrorHandling
mov r0, #1
bl MOD05_021D7CA4
mov r0, #6
str r0, [r4]
add sp, #0x84
mov r0, #0
pop {r4, r5, r6, r7, pc}
_021DA878:
ldr r0, [r5, #0x20]
bl FUN_0201F008
strh r0, [r4, #0x24]
ldr r0, [sp, #0x1c]
cmp r0, #0x4b
beq _021DA88E
ldr r0, _021DA9D8 ; =0x0000FFA0
ldr r1, [r5, #0x20]
bl FUN_0201EF2C
_021DA88E:
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021DA9BE
_021DA896:
mov r1, #0
str r1, [sp]
mov r0, #6
str r0, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0xb
str r0, [sp, #0xc]
ldr r0, [r5, #0x10]
mov r2, #9
bl FUN_0204C1B4
ldr r0, [r5, #0x50]
mov r1, #1
bl MOD05_021DA5AC
cmp r0, #0x4b
beq _021DA8BE
mov r1, #1
str r1, [r4, #0x20]
_021DA8BE:
bl MOD05_021DAA6C
cmp r0, #0
beq _021DA8CA
ldr r6, _021DA9DC ; =0x00000608
b _021DA8CC
_021DA8CA:
ldr r6, _021DA9E0 ; =0x00000605
_021DA8CC:
ldrb r0, [r4, #0x1e]
cmp r0, #2
bne _021DA8D6
mov r2, #0
b _021DA8E4
_021DA8D6:
cmp r0, #4
bne _021DA8DE
mov r2, #2
b _021DA8E4
_021DA8DE:
bl ErrorHandling
mov r2, #0
_021DA8E4:
ldr r0, [r5, #0x50]
mov r1, #1
add r3, r6, #0
bl MOD05_021DA514
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021DA9BE
_021DA8F6:
ldr r0, [r5, #0x50]
mov r1, #1
bl MOD05_021DA58C
cmp r0, #0
beq _021DA9BE
ldr r0, [r5, #0x38]
bl FUN_020553A0
mov r1, #0
bl FUN_0205889C
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021DA9BE
_021DA916:
ldr r0, [r5, #0x38]
bl FUN_020553A0
mov r1, #0xd
bl FUN_0205ADDC
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021DA9BE
_021DA92A:
ldr r0, [r5, #0x38]
bl FUN_020553A0
add r6, r0, #0
bl FUN_0205AE28
cmp r0, #1
bne _021DA9BE
add r0, r6, #0
bl FUN_0205AE50
ldr r0, [r5, #0x50]
mov r1, #1
bl MOD05_021DA5AC
bl MOD05_021DAA6C
cmp r0, #0
beq _021DA954
mov r6, #0
b _021DA956
_021DA954:
ldr r6, _021DA9E4 ; =0x00000607
_021DA956:
ldrb r0, [r4, #0x1e]
cmp r0, #2
bne _021DA960
mov r2, #1
b _021DA96E
_021DA960:
cmp r0, #4
bne _021DA968
mov r2, #3
b _021DA96E
_021DA968:
bl ErrorHandling
mov r2, #1
_021DA96E:
ldr r0, [r5, #0x50]
mov r1, #1
add r3, r6, #0
bl MOD05_021DA514
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021DA9BE
_021DA980:
ldr r0, [r5, #0x50]
mov r1, #1
bl MOD05_021DA58C
cmp r0, #0
beq _021DA9BE
bl FUN_0200E308
cmp r0, #0
beq _021DA9BE
ldr r0, [r5, #0x20]
bl FUN_0201F008
ldrh r1, [r4, #0x24]
cmp r1, r0
bne _021DA9BE
ldr r0, [r5, #0x4c]
ldr r1, [r5, #0x50]
mov r2, #1
bl MOD05_021DA54C
add sp, #0x84
mov r0, #1
pop {r4, r5, r6, r7, pc}
_021DA9B0:
bl FUN_0200E308
cmp r0, #0
beq _021DA9BE
add sp, #0x84
mov r0, #1
pop {r4, r5, r6, r7, pc}
_021DA9BE:
ldr r0, [r4, #0x20]
cmp r0, #0
beq _021DA9CE
add r4, #0x1d
ldr r0, [r5, #0x20]
add r1, r4, #0
bl MOD05_021DAA2C
_021DA9CE:
mov r0, #0
add sp, #0x84
pop {r4, r5, r6, r7, pc}
.balign 4, 0
_021DA9D4: .word 0x021F655C
_021DA9D8: .word 0x0000FFA0
_021DA9DC: .word 0x00000608
_021DA9E0: .word 0x00000605
_021DA9E4: .word 0x00000607
thumb_func_start MOD05_021DA9E8
MOD05_021DA9E8: ; 0x021DA9E8
push {r4, r5, r6, lr}
add r5, r1, #0
add r6, r0, #0
ldrb r0, [r5]
mov r4, #0xc
add r1, r0, #0
mul r1, r4
cmp r1, #0x60
bgt _021DAA28
lsl r0, r1, #0x10
lsr r0, r0, #0x10
cmp r0, #0x60
bls _021DAA08
sub r0, #0x60
lsl r0, r0, #0x18
lsr r4, r0, #0x18
_021DAA08:
add r0, r6, #0
bl FUN_0201F008
sub r0, r0, r4
lsl r0, r0, #0x10
lsr r0, r0, #0x10
beq _021DAA22
neg r0, r4
lsl r0, r0, #0x10
lsr r0, r0, #0x10
add r1, r6, #0
bl FUN_0201EF2C
_021DAA22:
ldrb r0, [r5]
add r0, r0, #1
strb r0, [r5]
_021DAA28:
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_start MOD05_021DAA2C
MOD05_021DAA2C: ; 0x021DAA2C
push {r4, r5, r6, lr}
add r5, r1, #0
add r6, r0, #0
ldrb r0, [r5]
lsl r0, r0, #4
cmp r0, #0x60
bge _021DAA68
lsl r0, r0, #0x10
lsr r0, r0, #0x10
cmp r0, #0x60
bls _021DAA4A
sub r0, #0x60
lsl r0, r0, #0x18
lsr r4, r0, #0x18
b _021DAA4C
_021DAA4A:
mov r4, #0x10
_021DAA4C:
add r0, r6, #0
bl FUN_0201F008
add r0, r0, r4
lsl r0, r0, #0x10
lsr r0, r0, #0x10
beq _021DAA62
add r0, r4, #0
add r1, r6, #0
bl FUN_0201EF2C
_021DAA62:
ldrb r0, [r5]
add r0, r0, #1
strb r0, [r5]
_021DAA68:
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_start MOD05_021DAA6C
MOD05_021DAA6C: ; 0x021DAA6C
cmp r0, #0x46
beq _021DAA98
ldr r2, _021DAAA0 ; =0x000001BA
cmp r0, r2
beq _021DAA98
add r1, r2, #0
sub r1, #0x90
cmp r0, r1
beq _021DAA98
add r1, r2, #0
add r1, #0xe
cmp r0, r1
beq _021DAA98
add r1, r2, #0
sub r1, #0xf
cmp r0, r1
beq _021DAA98
add r2, #0x2a
cmp r0, r2
beq _021DAA98
cmp r0, #0x4b
bne _021DAA9C
_021DAA98:
mov r0, #1
bx lr
_021DAA9C:
mov r0, #0
bx lr
.balign 4, 0
_021DAAA0: .word 0x000001BA
thumb_func_start MOD05_021DAAA4
MOD05_021DAAA4: ; 0x021DAAA4
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x40
add r4, r1, #0
add r5, r0, #0
ldr r0, [r4]
add r6, r2, #0
cmp r0, #5
bls _021DAAB6
b _021DAC60
_021DAAB6:
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021DAAC2: ; jump table
.short _021DAACE - _021DAAC2 - 2 ; case 0
.short _021DAB8E - _021DAAC2 - 2 ; case 1
.short _021DABCE - _021DAAC2 - 2 ; case 2
.short _021DABEE - _021DAAC2 - 2 ; case 3
.short _021DAC16 - _021DAAC2 - 2 ; case 4
.short _021DAC34 - _021DAAC2 - 2 ; case 5
_021DAACE:
ldr r3, _021DAC68 ; =0x021F64FC
add r2, sp, #0x20
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
cmp r6, #2
bne _021DAAF8
mov r0, #2
str r0, [sp]
mov r2, #1
str r2, [sp, #4]
add r0, sp, #0x30
str r0, [sp, #8]
ldr r0, [r4, #0x14]
ldr r1, [r4, #0x18]
sub r2, r2, #2
mov r3, #0
bl FUN_0204A840
b _021DAB10
_021DAAF8:
mov r0, #2
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
add r0, sp, #0x30
str r0, [sp, #8]
mov r2, #0
ldr r0, [r4, #0x14]
ldr r1, [r4, #0x18]
add r3, r2, #0
bl FUN_0204A840
_021DAB10:
mov r0, #2
strb r0, [r4, #0x1c]
add r0, sp, #0x1c
str r0, [sp]
add r0, sp, #0x18
str r0, [sp, #4]
add r0, r5, #0
add r1, sp, #0x20
mov r2, #4
add r3, sp, #0x30
bl FUN_0204A94C
cmp r0, #0
beq _021DAB5E
ldr r0, [r5, #0x2c]
bl MOD05_021F4C88
add r6, r0, #0
ldr r0, [sp, #0x1c]
bl MOD05_021E7EC8
add r7, r0, #0
ldr r0, [sp, #0x1c]
bl MOD05_021E7ECC
str r7, [sp]
str r0, [sp, #4]
str r6, [sp, #8]
mov r0, #1
str r0, [sp, #0xc]
str r0, [sp, #0x10]
str r0, [sp, #0x14]
ldr r0, [r5, #0x4c]
ldr r1, [r5, #0x50]
ldr r3, [sp, #0x18]
mov r2, #2
bl MOD05_021DA464
b _021DAB68
_021DAB5E:
bl ErrorHandling
add sp, #0x40
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021DAB68:
ldr r0, [r5, #0x38]
bl FUN_020553A0
add r5, r0, #0
bl FUN_0205AD98
cmp r0, #1
bne _021DAB82
add r0, r5, #0
mov r1, #0x49
bl FUN_0205ADDC
b _021DAB86
_021DAB82:
bl ErrorHandling
_021DAB86:
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021DAC60
_021DAB8E:
mov r0, #1
bl MOD05_021D7CA4
ldr r0, [r5, #0x50]
ldr r3, _021DAC6C ; =0x00000615
mov r1, #2
mov r2, #0
bl MOD05_021DA514
ldr r0, [r5, #0x38]
bl FUN_020553A0
add r5, r0, #0
bl FUN_0205AD98
cmp r0, #1
bne _021DABC2
cmp r6, #3
bne _021DABB8
mov r1, #0xb
b _021DABBA
_021DABB8:
mov r1, #0xa
_021DABBA:
add r0, r5, #0
bl FUN_0205ADDC
b _021DABC6
_021DABC2:
bl ErrorHandling
_021DABC6:
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021DAC60
_021DABCE:
ldr r0, [r5, #0x38]
bl FUN_020553A0
add r5, r0, #0
bl FUN_0205AD98
cmp r0, #1
bne _021DAC60
add r0, r5, #0
mov r1, #0x4a
bl FUN_0205ADDC
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021DAC60
_021DABEE:
ldr r0, [r5, #0x38]
bl FUN_020553A0
add r5, r0, #0
bl FUN_0205AD98
cmp r0, #1
bne _021DAC60
cmp r6, #3
bne _021DAC06
mov r1, #0xb
b _021DAC08
_021DAC06:
mov r1, #0xa
_021DAC08:
add r0, r5, #0
bl FUN_0205ADDC
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021DAC60
_021DAC16:
ldr r0, [r5, #0x38]
bl FUN_020553A0
add r5, r0, #0
bl FUN_0205AE28
cmp r0, #1
bne _021DAC60
add r0, r5, #0
bl FUN_0205AE50
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021DAC60
_021DAC34:
ldr r0, [r5, #0x50]
mov r1, #2
bl MOD05_021DA58C
cmp r0, #0
beq _021DAC60
bl FUN_0200E308
cmp r0, #0
beq _021DAC60
ldr r0, [r5, #0x4c]
ldr r1, [r5, #0x50]
mov r2, #2
bl MOD05_021DA54C
ldr r0, _021DAC6C ; =0x00000615
mov r1, #0
bl FUN_020054F0
add sp, #0x40
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021DAC60:
mov r0, #0
add sp, #0x40
pop {r3, r4, r5, r6, r7, pc}
nop
_021DAC68: .word 0x021F64FC
_021DAC6C: .word 0x00000615
thumb_func_start MOD05_021DAC70
MOD05_021DAC70: ; 0x021DAC70
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x40
add r4, r1, #0
add r5, r0, #0
ldr r0, [r4]
add r6, r2, #0
cmp r0, #4
bls _021DAC82
b _021DAE04
_021DAC82:
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021DAC8E: ; jump table
.short _021DAC98 - _021DAC8E - 2 ; case 0
.short _021DAD5A - _021DAC8E - 2 ; case 1
.short _021DAD94 - _021DAC8E - 2 ; case 2
.short _021DADBA - _021DAC8E - 2 ; case 3
.short _021DADD8 - _021DAC8E - 2 ; case 4
_021DAC98:
ldr r3, _021DAE0C ; =0x021F64EC
add r2, sp, #0x20
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
cmp r6, #2
bne _021DACC2
mov r0, #2
str r0, [sp]
mov r2, #1
str r2, [sp, #4]
add r0, sp, #0x30
str r0, [sp, #8]
ldr r0, [r4, #0x14]
ldr r1, [r4, #0x18]
sub r2, r2, #2
mov r3, #0
bl FUN_0204A840
b _021DACDA
_021DACC2:
mov r0, #2
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
add r0, sp, #0x30
str r0, [sp, #8]
mov r2, #0
ldr r0, [r4, #0x14]
ldr r1, [r4, #0x18]
add r3, r2, #0
bl FUN_0204A840
_021DACDA:
mov r0, #2
strb r0, [r4, #0x1c]
add r0, sp, #0x1c
str r0, [sp]
add r0, sp, #0x18
str r0, [sp, #4]
add r0, r5, #0
add r1, sp, #0x20
mov r2, #4
add r3, sp, #0x30
bl FUN_0204A94C
cmp r0, #0
beq _021DAD2A
ldr r0, [r5, #0x2c]
bl MOD05_021F4C88
add r6, r0, #0
ldr r0, [sp, #0x1c]
bl MOD05_021E7EC8
add r7, r0, #0
ldr r0, [sp, #0x1c]
bl MOD05_021E7ECC
str r7, [sp]
str r0, [sp, #4]
str r6, [sp, #8]
mov r0, #1
str r0, [sp, #0xc]
str r0, [sp, #0x10]
mov r0, #0
str r0, [sp, #0x14]
ldr r0, [r5, #0x4c]
ldr r1, [r5, #0x50]
ldr r3, [sp, #0x18]
mov r2, #2
bl MOD05_021DA464
b _021DAD34
_021DAD2A:
bl ErrorHandling
add sp, #0x40
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021DAD34:
ldr r0, [r5, #0x38]
bl FUN_020553A0
add r5, r0, #0
bl FUN_0205AD98
cmp r0, #1
bne _021DAD4E
add r0, r5, #0
mov r1, #0x49
bl FUN_0205ADDC
b _021DAD52
_021DAD4E:
bl ErrorHandling
_021DAD52:
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021DAE04
_021DAD5A:
ldr r0, [r5, #0x50]
ldr r3, _021DAE10 ; =0x00000615
mov r1, #2
mov r2, #0
bl MOD05_021DA514
ldr r0, [r5, #0x38]
bl FUN_020553A0
add r5, r0, #0
bl FUN_0205AD98
cmp r0, #1
bne _021DAD88
cmp r6, #2
bne _021DAD7E
mov r1, #0xa
b _021DAD80
_021DAD7E:
mov r1, #0xb
_021DAD80:
add r0, r5, #0
bl FUN_0205ADDC
b _021DAD8C
_021DAD88:
bl ErrorHandling
_021DAD8C:
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021DAE04
_021DAD94:
ldr r0, [r5, #0x38]
bl FUN_020553A0
add r5, r0, #0
bl FUN_0205AD98
cmp r0, #1
bne _021DAE04
add r0, r5, #0
mov r1, #0x4a
bl FUN_0205ADDC
mov r0, #0
bl MOD05_021D7CA4
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021DAE04
_021DADBA:
ldr r0, [r5, #0x38]
bl FUN_020553A0
add r5, r0, #0
bl FUN_0205AE28
cmp r0, #1
bne _021DAE04
add r0, r5, #0
bl FUN_0205AE50
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021DAE04
_021DADD8:
ldr r0, [r5, #0x50]
mov r1, #2
bl MOD05_021DA58C
cmp r0, #0
beq _021DAE04
bl FUN_0200E308
cmp r0, #0
beq _021DAE04
ldr r0, [r5, #0x4c]
ldr r1, [r5, #0x50]
mov r2, #2
bl MOD05_021DA54C
ldr r0, _021DAE10 ; =0x00000615
mov r1, #0
bl FUN_020054F0
add sp, #0x40
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021DAE04:
mov r0, #0
add sp, #0x40
pop {r3, r4, r5, r6, r7, pc}
nop
_021DAE0C: .word 0x021F64EC
_021DAE10: .word 0x00000615
thumb_func_start MOD05_021DAE14
MOD05_021DAE14: ; 0x021DAE14
push {r3, r4, r5, lr}
add r4, r0, #0
bl FUN_02046528
add r5, r0, #0
add r0, r4, #0
bl FUN_0204652C
add r4, r0, #0
ldrb r1, [r4]
ldr r0, [r5, #0x50]
bl MOD05_021DA58C
cmp r0, #0
beq _021DAE3C
add r0, r4, #0
bl FreeToHeap
mov r0, #1
pop {r3, r4, r5, pc}
_021DAE3C:
mov r0, #0
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021DAE40
MOD05_021DAE40: ; 0x021DAE40
push {r4, r5, r6, r7, lr}
sub sp, #0x84
ldr r6, _021DAED0 ; =0x021F65AC
str r3, [sp, #0x18]
add r5, r0, #0
add r7, r1, #0
add r4, sp, #0x34
mov r3, #0xa
_021DAE50:
ldmia r6!, {r0, r1}
stmia r4!, {r0, r1}
sub r3, r3, #1
bne _021DAE50
mov r0, #3
str r0, [sp]
mov r3, #1
add r1, r2, #0
str r3, [sp, #4]
add r0, sp, #0x24
str r0, [sp, #8]
sub r2, r3, #2
add r0, r7, #0
mov r3, #0
bl FUN_0204A840
add r0, sp, #0x20
str r0, [sp]
add r0, sp, #0x1c
str r0, [sp, #4]
add r0, r5, #0
add r1, sp, #0x34
mov r2, #0x14
add r3, sp, #0x24
bl FUN_0204A94C
cmp r0, #0
beq _021DAEC8
ldr r0, [r5, #0x4c]
ldr r1, [sp, #0x1c]
bl MOD05_021DA230
add r4, r0, #0
ldr r0, [r5, #0x2c]
bl MOD05_021F4C88
add r6, r0, #0
ldr r0, [sp, #0x20]
bl MOD05_021E7EC8
add r7, r0, #0
ldr r0, [sp, #0x20]
bl MOD05_021E7ECC
str r7, [sp]
str r0, [sp, #4]
str r6, [sp, #8]
str r4, [sp, #0xc]
mov r0, #1
str r0, [sp, #0x10]
mov r0, #0
str r0, [sp, #0x14]
ldr r0, [r5, #0x4c]
ldr r1, [r5, #0x50]
ldr r2, [sp, #0x18]
ldr r3, [sp, #0x1c]
bl MOD05_021DA464
add sp, #0x84
pop {r4, r5, r6, r7, pc}
_021DAEC8:
bl ErrorHandling
add sp, #0x84
pop {r4, r5, r6, r7, pc}
.balign 4, 0
_021DAED0: .word 0x021F65AC
thumb_func_start MOD05_021DAED4
MOD05_021DAED4: ; 0x021DAED4
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
ldr r0, [r5, #0x50]
add r7, r1, #0
bl MOD05_021DA5AC
add r6, r0, #0
ldr r0, [r5, #0x4c]
add r1, r6, #0
bl MOD05_021DA230
add r4, r0, #0
add r0, r6, #0
bl MOD05_021DAA6C
cmp r0, #0
beq _021DAEFA
ldr r6, _021DAF20 ; =0x00000608
b _021DAEFC
_021DAEFA:
ldr r6, _021DAF24 ; =0x00000605
_021DAEFC:
cmp r4, #2
bne _021DAF04
mov r2, #0
b _021DAF12
_021DAF04:
cmp r4, #4
bne _021DAF0C
mov r2, #0
b _021DAF12
_021DAF0C:
bl ErrorHandling
mov r2, #0
_021DAF12:
ldr r0, [r5, #0x50]
add r1, r7, #0
add r3, r6, #0
bl MOD05_021DA514
pop {r3, r4, r5, r6, r7, pc}
nop
_021DAF20: .word 0x00000608
_021DAF24: .word 0x00000605
thumb_func_start MOD05_021DAF28
MOD05_021DAF28: ; 0x021DAF28
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
ldr r0, [r5, #0x50]
add r7, r1, #0
bl MOD05_021DA5AC
add r6, r0, #0
ldr r0, [r5, #0x4c]
add r1, r6, #0
bl MOD05_021DA230
add r4, r0, #0
add r0, r6, #0
bl MOD05_021DAA6C
cmp r0, #0
beq _021DAF4E
mov r6, #0
b _021DAF50
_021DAF4E:
ldr r6, _021DAF74 ; =0x00000607
_021DAF50:
cmp r4, #2
bne _021DAF58
mov r2, #1
b _021DAF66
_021DAF58:
cmp r4, #4
bne _021DAF60
mov r2, #1
b _021DAF66
_021DAF60:
bl ErrorHandling
mov r2, #1
_021DAF66:
ldr r0, [r5, #0x50]
add r1, r7, #0
add r3, r6, #0
bl MOD05_021DA514
pop {r3, r4, r5, r6, r7, pc}
nop
_021DAF74: .word 0x00000607
thumb_func_start MOD05_021DAF78
MOD05_021DAF78: ; 0x021DAF78
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
mov r0, #4
mov r1, #1
bl AllocFromHeapAtEnd
add r2, r0, #0
strb r4, [r2]
ldr r0, [r5, #0x10]
ldr r1, _021DAF94 ; =MOD05_021DAE14
bl FUN_0204640C
pop {r3, r4, r5, pc}
.balign 4, 0
_021DAF94: .word MOD05_021DAE14
thumb_func_start MOD05_021DAF98
MOD05_021DAF98: ; 0x021DAF98
add r3, r0, #0
add r2, r1, #0
ldr r0, [r3, #0x4c]
ldr r1, [r3, #0x50]
ldr r3, _021DAFA4 ; =MOD05_021DA54C
bx r3
.balign 4, 0
_021DAFA4: .word MOD05_021DA54C
thumb_func_start MOD05_021DAFA8
MOD05_021DAFA8: ; 0x021DAFA8
push {r4, r5, lr}
sub sp, #0x2c
add r5, r2, #0
ldr r2, _021DB02C ; =0x021F64E4
add r4, r3, #0
ldr r3, [r2]
ldr r2, [r2, #4]
str r3, [sp, #0xc]
str r2, [sp, #0x10]
mov r2, #1
str r2, [sp]
mov r2, #3
str r2, [sp, #4]
add r2, sp, #0x1c
str r2, [sp, #8]
mov r2, #0
sub r3, r2, #1
bl FUN_0204A840
add r0, sp, #0x18
str r0, [sp]
add r0, sp, #0x14
str r0, [sp, #4]
add r0, r4, #0
add r1, sp, #0xc
mov r2, #2
add r3, sp, #0x1c
bl FUN_0204A94C
cmp r0, #0
bne _021DAFEA
bl ErrorHandling
_021DAFEA:
ldr r0, [sp, #0x18]
bl MOD05_021E7EC8
add r3, r0, #0
ldr r0, [r4, #0x4c]
add r1, r5, #0
str r0, [sp]
ldr r0, [sp, #0x14]
mov r2, #1
bl MOD05_021D9DC0
cmp r0, #0
bne _021DB008
bl ErrorHandling
_021DB008:
ldr r0, [sp, #0x14]
ldr r2, [r4, #0x4c]
add r1, r5, #0
bl MOD05_021DA080
add r4, r0, #0
bl MOD05_021DA118
add r0, r4, #0
mov r1, #0
bl MOD05_021DA0DC
add r0, r4, #0
bl MOD05_021DA0E0
add sp, #0x2c
pop {r4, r5, pc}
nop
_021DB02C: .word 0x021F64E4
thumb_func_start MOD05_021DB030
MOD05_021DB030: ; 0x021DB030
push {r3, lr}
mov r0, #4
mov r1, #0x10
bl AllocFromHeapAtEnd
mov r1, #0
str r1, [r0]
pop {r3, pc}
thumb_func_start MOD05_021DB040
MOD05_021DB040: ; 0x021DB040
push {r3, r4, r5, r6, lr}
sub sp, #0xc
add r4, r0, #0
bl FUN_02046528
add r5, r0, #0
add r0, r4, #0
bl FUN_0204652C
add r4, r0, #0
ldr r0, [r4]
cmp r0, #3
bhi _021DB126
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021DB066: ; jump table
.short _021DB06E - _021DB066 - 2 ; case 0
.short _021DB0CA - _021DB066 - 2 ; case 1
.short _021DB0E8 - _021DB066 - 2 ; case 2
.short _021DB106 - _021DB066 - 2 ; case 3
_021DB06E:
ldr r0, [r5, #0x38]
bl FUN_020553A0
add r6, r0, #0
ldr r0, [r5, #0x38]
bl FUN_020552F8
cmp r0, #1
bne _021DB08C
add r0, r6, #0
mov r1, #1
bl FUN_0205889C
mov r0, #1
b _021DB096
_021DB08C:
add r0, r6, #0
mov r1, #0
bl FUN_0205889C
mov r0, #3
_021DB096:
str r0, [r4]
mov r0, #0
str r0, [r4, #8]
strb r0, [r4, #4]
ldr r0, [r5, #0x20]
bl FUN_0201F008
strh r0, [r4, #0xc]
ldr r0, _021DB13C ; =0x0000FFA0
ldr r1, [r5, #0x20]
bl FUN_0201EF2C
mov r0, #6
str r0, [sp]
mov r1, #1
str r1, [sp, #4]
mov r0, #0xb
str r0, [sp, #8]
ldr r3, _021DB140 ; =0x00007FFF
mov r0, #0
add r2, r1, #0
bl FUN_0200E1D0
mov r0, #1
str r0, [r4, #8]
b _021DB126
_021DB0CA:
ldr r0, [r5, #0x38]
bl FUN_020553A0
add r6, r0, #0
mov r1, #0
bl FUN_0205889C
add r0, r6, #0
mov r1, #0xd
bl FUN_0205ADDC
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021DB126
_021DB0E8:
ldr r0, [r5, #0x38]
bl FUN_020553A0
add r6, r0, #0
bl FUN_0205AE28
cmp r0, #1
bne _021DB126
add r0, r6, #0
bl FUN_0205AE50
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021DB126
_021DB106:
bl FUN_0200E308
cmp r0, #0
beq _021DB126
ldr r0, [r5, #0x20]
bl FUN_0201F008
ldrh r1, [r4, #0xc]
cmp r1, r0
bne _021DB126
add r0, r4, #0
bl FreeToHeap
add sp, #0xc
mov r0, #1
pop {r3, r4, r5, r6, pc}
_021DB126:
ldr r0, [r4, #8]
cmp r0, #0
beq _021DB134
ldr r0, [r5, #0x20]
add r1, r4, #4
bl MOD05_021DAA2C
_021DB134:
mov r0, #0
add sp, #0xc
pop {r3, r4, r5, r6, pc}
nop
_021DB13C: .word 0x0000FFA0
_021DB140: .word 0x00007FFF
thumb_func_start MOD05_021DB144
MOD05_021DB144: ; 0x021DB144
push {r4, r5, lr}
sub sp, #0xc
add r5, r0, #0
bl FUN_02046528
add r4, r0, #0
add r0, r5, #0
bl FUN_0204652C
add r5, r0, #0
ldr r0, [r5]
cmp r0, #0
beq _021DB164
cmp r0, #1
beq _021DB1A0
b _021DB1B4
_021DB164:
ldr r0, [r4, #0x38]
bl FUN_020553A0
mov r1, #1
bl FUN_0205889C
mov r0, #0
str r0, [r5, #8]
strb r0, [r5, #4]
ldr r0, _021DB1C8 ; =0x00000603
bl FUN_020054C8
mov r0, #6
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
mov r0, #0xb
str r0, [sp, #8]
mov r0, #0
ldr r3, _021DB1CC ; =0x00007FFF
add r1, r0, #0
add r2, r0, #0
bl FUN_0200E1D0
mov r0, #1
str r0, [r5, #8]
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021DB1B4
_021DB1A0:
bl FUN_0200E308
cmp r0, #0
beq _021DB1B4
add r0, r5, #0
bl FreeToHeap
add sp, #0xc
mov r0, #1
pop {r4, r5, pc}
_021DB1B4:
ldr r0, [r5, #8]
cmp r0, #0
beq _021DB1C2
ldr r0, [r4, #0x20]
add r1, r5, #4
bl MOD05_021DA9E8
_021DB1C2:
mov r0, #0
add sp, #0xc
pop {r4, r5, pc}
.balign 4, 0
_021DB1C8: .word 0x00000603
_021DB1CC: .word 0x00007FFF
thumb_func_start MOD05_021DB1D0
MOD05_021DB1D0: ; 0x021DB1D0
push {r4, r5, r6, lr}
sub sp, #0x10
add r5, r0, #0
bl FUN_02046528
add r6, r0, #0
add r0, r5, #0
bl FUN_0204652C
add r4, r0, #0
ldr r0, [r4]
cmp r0, #0
beq _021DB1F0
cmp r0, #1
beq _021DB222
b _021DB236
_021DB1F0:
mov r0, #0
str r0, [r4, #8]
strb r0, [r4, #4]
ldr r0, _021DB24C ; =0x00000603
bl FUN_020054C8
mov r1, #0
str r1, [sp]
mov r0, #6
str r0, [sp, #4]
mov r0, #1
str r0, [sp, #8]
mov r0, #0xb
str r0, [sp, #0xc]
add r0, r5, #0
mov r2, #0x10
add r3, r1, #0
bl FUN_0204C1B4
mov r0, #1
str r0, [r4, #8]
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021DB236
_021DB222:
bl FUN_0200E308
cmp r0, #0
beq _021DB236
add r0, r4, #0
bl FreeToHeap
add sp, #0x10
mov r0, #1
pop {r4, r5, r6, pc}
_021DB236:
ldr r0, [r4, #8]
cmp r0, #0
beq _021DB244
ldr r0, [r6, #0x20]
add r1, r4, #4
bl MOD05_021DA9E8
_021DB244:
mov r0, #0
add sp, #0x10
pop {r4, r5, r6, pc}
nop
_021DB24C: .word 0x00000603
thumb_func_start MOD05_021DB250
MOD05_021DB250: ; 0x021DB250
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x18
str r0, [sp, #0x10]
bl FUN_02046528
add r5, r0, #0
ldr r0, [sp, #0x10]
bl FUN_0204652C
add r4, r0, #0
ldr r0, [r4]
cmp r0, #3
bhi _021DB368
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021DB276: ; jump table
.short _021DB27E - _021DB276 - 2 ; case 0
.short _021DB30C - _021DB276 - 2 ; case 1
.short _021DB32A - _021DB276 - 2 ; case 2
.short _021DB348 - _021DB276 - 2 ; case 3
_021DB27E:
ldr r0, [r5, #0x38]
bl FUN_020553A0
str r0, [sp, #0x14]
ldr r0, [r5, #0x38]
bl FUN_020552F8
lsl r0, r0, #0x18
lsr r7, r0, #0x18
cmp r7, #1
bne _021DB2A0
ldr r0, [sp, #0x14]
mov r1, #1
bl FUN_0205889C
mov r0, #1
b _021DB2AA
_021DB2A0:
ldr r0, [sp, #0x14]
mov r1, #0
bl FUN_0205889C
mov r0, #3
_021DB2AA:
str r0, [r4]
mov r0, #0
str r0, [r4, #8]
strb r0, [r4, #4]
ldr r0, [r5, #0x20]
bl FUN_0201F008
strh r0, [r4, #0xc]
ldr r0, _021DB37C ; =0x0000FFA0
ldr r1, [r5, #0x20]
bl FUN_0201EF2C
cmp r7, #3
bhi _021DB2EA
add r0, r7, r7
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021DB2D2: ; jump table
.short _021DB2DA - _021DB2D2 - 2 ; case 0
.short _021DB2DE - _021DB2D2 - 2 ; case 1
.short _021DB2E2 - _021DB2D2 - 2 ; case 2
.short _021DB2E6 - _021DB2D2 - 2 ; case 3
_021DB2DA:
mov r6, #3
b _021DB2EE
_021DB2DE:
mov r6, #5
b _021DB2EE
_021DB2E2:
mov r6, #7
b _021DB2EE
_021DB2E6:
mov r6, #0x27
b _021DB2EE
_021DB2EA:
bl ErrorHandling
_021DB2EE:
mov r1, #0
str r1, [sp]
mov r0, #6
str r0, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0xb
str r0, [sp, #0xc]
ldr r0, [sp, #0x10]
add r2, r6, #0
bl FUN_0204C1B4
mov r0, #1
str r0, [r4, #8]
b _021DB368
_021DB30C:
ldr r0, [r5, #0x38]
bl FUN_020553A0
add r6, r0, #0
mov r1, #0
bl FUN_0205889C
add r0, r6, #0
mov r1, #0xd
bl FUN_0205ADDC
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021DB368
_021DB32A:
ldr r0, [r5, #0x38]
bl FUN_020553A0
add r6, r0, #0
bl FUN_0205AE28
cmp r0, #1
bne _021DB368
add r0, r6, #0
bl FUN_0205AE50
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021DB368
_021DB348:
bl FUN_0200E308
cmp r0, #0
beq _021DB368
ldr r0, [r5, #0x20]
bl FUN_0201F008
ldrh r1, [r4, #0xc]
cmp r1, r0
bne _021DB368
add r0, r4, #0
bl FreeToHeap
add sp, #0x18
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021DB368:
ldr r0, [r4, #8]
cmp r0, #0
beq _021DB376
ldr r0, [r5, #0x20]
add r1, r4, #4
bl MOD05_021DAA2C
_021DB376:
mov r0, #0
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_021DB37C: .word 0x0000FFA0
thumb_func_start MOD05_021DB380
MOD05_021DB380: ; 0x021DB380
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x10
add r7, r0, #0
bl FUN_02046528
add r5, r0, #0
add r0, r7, #0
bl FUN_0204652C
add r4, r0, #0
ldr r0, [r4]
cmp r0, #3
bhi _021DB446
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021DB3A6: ; jump table
.short _021DB3AE - _021DB3A6 - 2 ; case 0
.short _021DB3F6 - _021DB3A6 - 2 ; case 1
.short _021DB414 - _021DB3A6 - 2 ; case 2
.short _021DB432 - _021DB3A6 - 2 ; case 3
_021DB3AE:
ldr r0, [r5, #0x38]
bl FUN_020553A0
add r6, r0, #0
ldr r0, [r5, #0x38]
bl FUN_020552F8
lsl r0, r0, #0x18
lsr r0, r0, #0x18
cmp r0, #1
bne _021DB3D0
add r0, r6, #0
mov r1, #1
bl FUN_0205889C
mov r0, #1
b _021DB3DA
_021DB3D0:
add r0, r6, #0
mov r1, #0
bl FUN_0205889C
mov r0, #3
_021DB3DA:
str r0, [r4]
mov r1, #0
mov r2, #1
str r1, [sp]
mov r0, #6
str r0, [sp, #4]
str r2, [sp, #8]
mov r0, #0xb
str r0, [sp, #0xc]
add r0, r7, #0
add r3, r2, #0
bl FUN_0204C1B4
b _021DB446
_021DB3F6:
ldr r0, [r5, #0x38]
bl FUN_020553A0
add r5, r0, #0
mov r1, #0
bl FUN_0205889C
add r0, r5, #0
mov r1, #0xd
bl FUN_0205ADDC
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021DB446
_021DB414:
ldr r0, [r5, #0x38]
bl FUN_020553A0
add r5, r0, #0
bl FUN_0205AE28
cmp r0, #1
bne _021DB446
add r0, r5, #0
bl FUN_0205AE50
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021DB446
_021DB432:
bl FUN_0200E308
cmp r0, #0
beq _021DB446
add r0, r4, #0
bl FreeToHeap
add sp, #0x10
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021DB446:
mov r0, #0
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD05_021DB44C
MOD05_021DB44C: ; 0x021DB44C
push {r4, r5, r6, lr}
add r6, r1, #0
add r5, r0, #0
cmp r6, #3
blo _021DB45A
bl ErrorHandling
_021DB45A:
mov r0, #4
mov r1, #0x14
bl AllocFromHeap
add r4, r0, #0
ldr r0, _021DB4AC ; =0x021F65FC
lsl r1, r6, #2
ldr r0, [r0, r1]
str r5, [r4, #0xc]
add r1, r4, #4
bl MOD05_021DB61C
str r0, [r4]
mov r0, #0
str r0, [r4, #8]
bl FUN_020126D8
lsr r1, r0, #0x1f
add r1, r0, r1
asr r3, r1, #1
ldr r5, [r4]
mov r1, #0
cmp r5, #0
bls _021DB49E
ldr r2, [r4, #4]
_021DB48C:
ldr r0, [r2]
cmp r0, r3
bls _021DB496
str r1, [r4, #8]
b _021DB49E
_021DB496:
add r1, r1, #1
add r2, #0x30
cmp r1, r5
blo _021DB48C
_021DB49E:
mov r0, #1
str r0, [r4, #0x10]
add r0, r4, #0
bl MOD05_021DB5D4
add r0, r4, #0
pop {r4, r5, r6, pc}
.balign 4, 0
_021DB4AC: .word 0x021F65FC
thumb_func_start MOD05_021DB4B0
MOD05_021DB4B0: ; 0x021DB4B0
push {r4, lr}
add r4, r0, #0
bne _021DB4BA
bl ErrorHandling
_021DB4BA:
ldr r0, [r4]
add r0, r0, #4
bl MOD05_021DB7A0
ldr r1, [r4]
mov r0, #4
bl FUN_02016A8C
mov r0, #0
str r0, [r4]
pop {r4, pc}
thumb_func_start MOD05_021DB4D0
MOD05_021DB4D0: ; 0x021DB4D0
push {r3, r4, r5, lr}
add r4, r0, #0
bne _021DB4DA
bl ErrorHandling
_021DB4DA:
bl FUN_020126D8
lsr r1, r0, #0x1f
add r1, r0, r1
asr r0, r1, #1
ldr r1, [r4]
cmp r1, #1
bls _021DB528
ldr r1, [r4, #8]
sub r5, r1, #1
bmi _021DB4FA
mov r2, #0x30
ldr r3, [r4, #4]
mul r2, r5
ldr r2, [r3, r2]
b _021DB4FC
_021DB4FA:
mov r2, #0
_021DB4FC:
mov r3, #0x30
ldr r5, [r4, #4]
mul r3, r1
ldr r1, [r5, r3]
cmp r0, r1
bge _021DB50C
cmp r0, r2
bge _021DB528
_021DB50C:
ldr r0, [r4, #8]
add r1, r0, #1
str r1, [r4, #8]
ldr r0, [r4]
cmp r1, r0
blo _021DB51C
mov r0, #0
str r0, [r4, #8]
_021DB51C:
ldr r0, [r4, #0x10]
cmp r0, #0
beq _021DB528
add r0, r4, #0
bl MOD05_021DB5D4
_021DB528:
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021DB52C
MOD05_021DB52C: ; 0x021DB52C
push {r3, lr}
str r1, [r0, #0x10]
cmp r1, #0
beq _021DB538
bl MOD05_021DB5D4
_021DB538:
pop {r3, pc}
.balign 4, 0
thumb_func_start MOD05_021DB53C
MOD05_021DB53C: ; 0x021DB53C
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
str r0, [sp, #4]
add r6, r1, #0
mov r4, #0
add r5, r0, #0
add r7, r0, #0
_021DB54A:
ldr r0, [sp, #4]
ldrb r1, [r0, #4]
mov r0, #1
lsl r0, r4
tst r0, r1
beq _021DB578
mov r0, #0x12
ldrsh r0, [r5, r0]
mov r2, #0xe
mov r3, #0x10
str r0, [sp]
ldrsh r2, [r5, r2]
ldrsh r3, [r5, r3]
add r0, r6, #0
add r1, r4, #0
bl MOD05_021DBC94
ldrh r2, [r7, #6]
add r0, r6, #0
add r1, r4, #0
bl MOD05_021DBCBC
b _021DB592
_021DB578:
mov r0, #0
mov r2, #0
str r0, [sp]
add r0, r6, #0
add r1, r4, #0
add r3, r2, #0
bl MOD05_021DBC94
add r0, r6, #0
add r1, r4, #0
mov r2, #0
bl MOD05_021DBCBC
_021DB592:
add r4, r4, #1
add r5, r5, #6
add r7, r7, #2
cmp r4, #4
blt _021DB54A
ldr r1, [sp, #4]
mov r2, #0
ldrh r1, [r1, #0x26]
add r0, r6, #0
add r3, r2, #0
bl MOD05_021DBCD0
ldr r1, [sp, #4]
add r0, r6, #0
ldrh r1, [r1, #0x28]
mov r2, #1
bl MOD05_021DBCE4
ldr r1, [sp, #4]
mov r2, #0
ldrh r1, [r1, #0x2a]
add r0, r6, #0
add r3, r2, #0
bl MOD05_021DBCF8
ldr r1, [sp, #4]
add r0, r6, #0
ldrh r1, [r1, #0x2c]
mov r2, #1
bl MOD05_021DBD0C
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD05_021DB5D4
MOD05_021DB5D4: ; 0x021DB5D4
add r3, r0, #0
ldr r1, [r3, #8]
mov r0, #0x30
mul r0, r1
ldr r2, [r3, #4]
ldr r1, [r3, #0xc]
ldr r3, _021DB5E8 ; =MOD05_021DB53C
add r0, r2, r0
bx r3
nop
_021DB5E8: .word MOD05_021DB53C
thumb_func_start MOD05_021DB5EC
MOD05_021DB5EC: ; 0x021DB5EC
push {r4, lr}
add r4, r0, #0
mov r1, #0
mov r2, #0x40
bl FUN_020BC094
add r0, r4, #0
mov r1, #0
mov r2, #0x80
bl FUN_020BC094
mov r2, #2
add r0, r4, #0
mov r1, #0
lsl r2, r2, #8
bl FUN_020BC094
mov r2, #1
add r0, r4, #0
mov r1, #0
lsl r2, r2, #0xa
bl FUN_020BC094
pop {r4, pc}
thumb_func_start MOD05_021DB61C
MOD05_021DB61C: ; 0x021DB61C
push {r4, r5, r6, r7, lr}
sub sp, #0x1fc
sub sp, #0x20
add r2, r0, #0
str r1, [sp]
mov r0, #4
add r1, r2, #0
bl FUN_020161A4
mov r1, #0
str r0, [sp, #0x14]
str r1, [sp, #8]
add r5, sp, #0x11c
mov r6, #1
mov r7, #2
add r4, r1, #0
_021DB63C:
add r1, r5, #0
mov r2, #0xd
bl FUN_0201C6C8
ldrsb r1, [r5, r4]
cmp r1, #0x45
bne _021DB656
ldrsb r1, [r5, r6]
cmp r1, #0x4f
bne _021DB656
ldrsb r1, [r5, r7]
cmp r1, #0x46
beq _021DB6A4
_021DB656:
add r1, r5, #0
mov r2, #0xd
bl FUN_0201C6C8
add r1, r5, #0
mov r2, #0xd
bl FUN_0201C6C8
add r1, r5, #0
mov r2, #0xd
bl FUN_0201C6C8
add r1, r5, #0
mov r2, #0xd
bl FUN_0201C6C8
add r1, r5, #0
mov r2, #0xd
bl FUN_0201C6C8
add r1, r5, #0
mov r2, #0xd
bl FUN_0201C6C8
add r1, r5, #0
mov r2, #0xd
bl FUN_0201C6C8
add r1, r5, #0
mov r2, #0xd
bl FUN_0201C6C8
add r1, r5, #0
mov r2, #0xd
bl FUN_0201C6C8
ldr r1, [sp, #8]
add r1, r1, #1
str r1, [sp, #8]
_021DB6A4:
mov r1, #0
ldrsb r1, [r5, r1]
cmp r1, #0x45
bne _021DB63C
mov r1, #1
ldrsb r1, [r5, r1]
cmp r1, #0x4f
bne _021DB63C
mov r1, #2
ldrsb r1, [r5, r1]
cmp r1, #0x46
bne _021DB63C
ldr r0, [sp, #8]
mov r1, #0x30
add r4, r0, #0
mul r4, r1
mov r0, #4
add r1, r4, #0
bl AllocFromHeap
ldr r1, [sp]
add r2, r4, #0
str r0, [r1]
mov r1, #0
bl MI_CpuFill8
mov r1, #0
str r1, [sp, #0x18]
ldr r1, [sp, #8]
ldr r0, [sp, #0x14]
cmp r1, #0
ble _021DB78A
ldr r1, [sp, #0x18]
str r1, [sp, #0x10]
_021DB6E8:
ldr r1, [sp]
mov r2, #0xd
ldr r5, [r1]
ldr r1, [sp, #0x10]
add r4, r5, r1
add r1, sp, #0x11c
bl FUN_0201C6C8
str r0, [sp, #4]
add r0, sp, #0x11c
add r1, sp, #0x1c
mov r2, #0x2c
bl FUN_0201C6C8
add r0, sp, #0x1c
bl FUN_0201C70C
ldr r1, [sp, #0x10]
add r6, r4, #0
str r0, [r5, r1]
add r0, r4, #6
mov r7, #0
add r6, #0xe
str r0, [sp, #0xc]
add r5, r4, #0
_021DB71A:
ldr r0, [sp, #4]
ldr r1, [sp, #0xc]
add r2, r6, #0
bl MOD05_021DB7B4
str r0, [sp, #4]
ldrh r1, [r5, #6]
ldr r0, _021DB79C ; =0x0000FFFF
cmp r1, r0
beq _021DB73A
mov r0, #1
ldrb r1, [r4, #4]
lsl r0, r7
orr r0, r1
strb r0, [r4, #4]
b _021DB73E
_021DB73A:
mov r0, #0
strh r0, [r5, #6]
_021DB73E:
ldr r0, [sp, #0xc]
add r7, r7, #1
add r0, r0, #2
add r6, r6, #6
add r5, r5, #2
str r0, [sp, #0xc]
cmp r7, #4
blt _021DB71A
add r1, r4, #0
ldr r0, [sp, #4]
add r1, #0x26
bl MOD05_021DB8A4
add r1, r4, #0
add r1, #0x28
bl MOD05_021DB8A4
add r1, r4, #0
add r1, #0x2a
bl MOD05_021DB8A4
add r4, #0x2c
add r1, r4, #0
bl MOD05_021DB8A4
add r1, sp, #0x11c
mov r2, #0xd
bl FUN_0201C6C8
ldr r1, [sp, #0x10]
add r1, #0x30
str r1, [sp, #0x10]
ldr r1, [sp, #0x18]
add r2, r1, #1
ldr r1, [sp, #8]
str r2, [sp, #0x18]
cmp r2, r1
blt _021DB6E8
_021DB78A:
ldr r1, [sp, #0x14]
mov r0, #4
bl FUN_02016A8C
ldr r0, [sp, #8]
add sp, #0x1fc
add sp, #0x20
pop {r4, r5, r6, r7, pc}
nop
_021DB79C: .word 0x0000FFFF
thumb_func_start MOD05_021DB7A0
MOD05_021DB7A0: ; 0x021DB7A0
push {r4, lr}
add r4, r0, #0
ldr r1, [r4]
mov r0, #4
bl FUN_02016A8C
mov r0, #0
str r0, [r4]
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021DB7B4
MOD05_021DB7B4: ; 0x021DB7B4
push {r4, r5, r6, r7, lr}
sub sp, #0x1fc
sub sp, #0x20
str r1, [sp, #4]
add r7, r2, #0
add r1, sp, #0x11c
mov r2, #0xd
bl FUN_0201C6C8
str r0, [sp]
add r0, sp, #0x11c
add r1, sp, #0x1c
mov r2, #0x2c
bl FUN_0201C6C8
add r4, r0, #0
add r0, sp, #0x1c
bl FUN_0201C70C
cmp r0, #1
bne _021DB88C
mov r6, #0
add r5, sp, #8
_021DB7E2:
add r0, r4, #0
add r1, sp, #0x1c
mov r2, #0x2c
bl FUN_0201C6C8
add r4, r0, #0
add r0, sp, #0x1c
bl FUN_0201C70C
strh r0, [r5]
add r6, r6, #1
add r5, r5, #2
cmp r6, #3
blt _021DB7E2
add r1, sp, #8
ldrh r0, [r1, #4]
ldrh r2, [r1]
ldrh r1, [r1, #2]
lsl r0, r0, #0xa
mov r6, #0
lsl r1, r1, #5
orr r1, r2
orr r1, r0
ldr r0, [sp, #4]
add r5, sp, #0x10
strh r1, [r0]
_021DB816:
add r0, r4, #0
add r1, sp, #0x1c
mov r2, #0x2c
bl FUN_0201C6C8
add r4, r0, #0
add r0, sp, #0x1c
bl FUN_0201C70C
add r6, r6, #1
stmia r5!, {r0}
cmp r6, #3
blt _021DB816
ldr r0, [sp, #0x10]
strh r0, [r7]
ldr r0, [sp, #0x14]
strh r0, [r7, #2]
ldr r0, [sp, #0x18]
strh r0, [r7, #4]
mov r0, #0
ldrsh r1, [r7, r0]
mov r0, #1
lsl r0, r0, #0xc
cmp r1, r0
ble _021DB84A
strh r0, [r7]
_021DB84A:
mov r0, #0
ldrsh r1, [r7, r0]
ldr r0, _021DB89C ; =0xFFFFF000
cmp r1, r0
bge _021DB856
strh r0, [r7]
_021DB856:
mov r0, #2
ldrsh r2, [r7, r0]
lsl r1, r0, #0xb
cmp r2, r1
ble _021DB864
lsl r0, r0, #0xb
strh r0, [r7, #2]
_021DB864:
mov r0, #2
ldrsh r1, [r7, r0]
ldr r0, _021DB89C ; =0xFFFFF000
cmp r1, r0
bge _021DB870
strh r0, [r7, #2]
_021DB870:
mov r0, #4
ldrsh r2, [r7, r0]
lsl r1, r0, #0xa
cmp r2, r1
ble _021DB87E
lsl r0, r0, #0xa
strh r0, [r7, #4]
_021DB87E:
mov r0, #4
ldrsh r1, [r7, r0]
ldr r0, _021DB89C ; =0xFFFFF000
cmp r1, r0
bge _021DB892
strh r0, [r7, #4]
b _021DB892
_021DB88C:
ldr r1, _021DB8A0 ; =0x0000FFFF
ldr r0, [sp, #4]
strh r1, [r0]
_021DB892:
ldr r0, [sp]
add sp, #0x1fc
add sp, #0x20
pop {r4, r5, r6, r7, pc}
nop
_021DB89C: .word 0xFFFFF000
_021DB8A0: .word 0x0000FFFF
thumb_func_start MOD05_021DB8A4
MOD05_021DB8A4: ; 0x021DB8A4
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x1fc
sub sp, #0x14
str r1, [sp, #4]
add r1, sp, #0x10c
add r1, #2
mov r2, #0xd
bl FUN_0201C6C8
add r6, sp, #0x10c
add r7, sp, #0xc
str r0, [sp]
add r6, #2
mov r4, #0
add r5, sp, #8
add r7, #2
_021DB8C4:
add r0, r6, #0
add r1, r7, #0
mov r2, #0x2c
bl FUN_0201C6C8
add r6, r0, #0
add r0, r7, #0
bl FUN_0201C70C
strh r0, [r5]
add r4, r4, #1
add r5, r5, #2
cmp r4, #3
blt _021DB8C4
add r0, sp, #8
ldrh r1, [r0, #4]
lsl r2, r1, #0xa
ldrh r1, [r0]
ldrh r0, [r0, #2]
lsl r0, r0, #5
orr r0, r1
add r1, r2, #0
orr r1, r0
ldr r0, [sp, #4]
strh r1, [r0]
ldr r0, [sp]
add sp, #0x1fc
add sp, #0x14
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021DB900
MOD05_021DB900: ; 0x021DB900
push {r4, lr}
mov r0, #4
mov r1, #8
bl AllocFromHeap
add r4, r0, #0
bne _021DB912
bl ErrorHandling
_021DB912:
add r0, r4, #0
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021DB918
MOD05_021DB918: ; 0x021DB918
push {r3, r4, r5, r6, lr}
sub sp, #0x4c
add r4, r0, #0
add r0, sp, #4
add r5, r1, #0
bl FS_InitFile
add r0, sp, #4
add r1, r4, #0
bl FS_OpenFile
cmp r0, #0
beq _021DB9B4
add r1, sp, #0
add r0, sp, #4
add r1, #2
mov r2, #2
bl FS_ReadFile
cmp r0, #0
bge _021DB946
bl ErrorHandling
_021DB946:
add r0, sp, #4
add r1, sp, #0
mov r2, #2
bl FS_ReadFile
cmp r0, #0
bge _021DB958
bl ErrorHandling
_021DB958:
add r0, sp, #0
ldrh r1, [r0, #2]
ldrh r0, [r0]
lsl r6, r1, #2
lsl r4, r0, #2
mov r0, #4
add r1, r6, #0
bl AllocFromHeap
str r0, [r5]
cmp r0, #0
bne _021DB974
bl ErrorHandling
_021DB974:
mov r0, #4
add r1, r4, #0
bl AllocFromHeap
str r0, [r5, #4]
cmp r0, #0
bne _021DB986
bl ErrorHandling
_021DB986:
ldr r1, [r5]
add r0, sp, #4
add r2, r6, #0
bl FS_ReadFile
cmp r0, #0
bge _021DB998
bl ErrorHandling
_021DB998:
ldr r1, [r5, #4]
add r0, sp, #4
add r2, r4, #0
bl FS_ReadFile
cmp r0, #0
bge _021DB9AA
bl ErrorHandling
_021DB9AA:
add r0, sp, #4
bl FS_CloseFile
add sp, #0x4c
pop {r3, r4, r5, r6, pc}
_021DB9B4:
bl ErrorHandling
add sp, #0x4c
pop {r3, r4, r5, r6, pc}
thumb_func_start MOD05_021DB9BC
MOD05_021DB9BC: ; 0x021DB9BC
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #4]
bl FreeToHeap
ldr r0, [r4]
bl FreeToHeap
add r0, r4, #0
bl FreeToHeap
pop {r4, pc}
thumb_func_start MOD05_021DB9D4
MOD05_021DB9D4: ; 0x021DB9D4
ldr r1, [r1]
lsl r0, r0, #2
ldrh r0, [r1, r0]
strh r0, [r2]
bx lr
.balign 4, 0
thumb_func_start MOD05_021DB9E0
MOD05_021DB9E0: ; 0x021DB9E0
push {r3, r4}
lsl r4, r0, #2
ldr r0, [r1]
ldrh r0, [r0, r4]
strh r0, [r2]
ldr r0, [r1]
add r0, r0, r4
ldrh r0, [r0, #2]
strh r0, [r3]
pop {r3, r4}
bx lr
.balign 4, 0
thumb_func_start MOD05_021DB9F8
MOD05_021DB9F8: ; 0x021DB9F8
ldr r1, [r1, #4]
lsl r0, r0, #2
add r0, r1, r0
bx lr
thumb_func_start MOD05_021DBA00
MOD05_021DBA00: ; 0x021DBA00
push {r4, lr}
mov r0, #4
mov r1, #0x38
bl AllocFromHeap
add r4, r0, #0
mov r0, #0
add r1, r4, #0
mov r2, #0x38
bl MIi_CpuClear32
add r0, r4, #0
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021DBA1C
MOD05_021DBA1C: ; 0x021DBA1C
push {r4, lr}
add r4, r0, #0
ldr r1, [r4]
mov r0, #4
bl FUN_02016A8C
mov r0, #0
str r0, [r4]
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021DBA30
MOD05_021DBA30: ; 0x021DBA30
ldr r0, [r0]
bx lr
thumb_func_start MOD05_021DBA34
MOD05_021DBA34: ; 0x021DBA34
ldr r0, [r0, #8]
bx lr
thumb_func_start MOD05_021DBA38
MOD05_021DBA38: ; 0x021DBA38
ldr r0, [r0, #0xc]
bx lr
thumb_func_start MOD05_021DBA3C
MOD05_021DBA3C: ; 0x021DBA3C
ldrh r0, [r0, #0x10]
bx lr
thumb_func_start MOD05_021DBA40
MOD05_021DBA40: ; 0x021DBA40
push {r4, lr}
add r4, r0, #0
mov r0, #1
tst r0, r1
beq _021DBA4C
str r2, [r4]
_021DBA4C:
mov r0, #2
tst r0, r1
beq _021DBA54
str r3, [r4, #4]
_021DBA54:
mov r0, #4
tst r0, r1
beq _021DBA5E
ldr r0, [sp, #8]
str r0, [r4, #8]
_021DBA5E:
mov r0, #8
tst r0, r1
beq _021DBA68
ldr r0, [sp, #0xc]
str r0, [r4, #0xc]
_021DBA68:
ldr r0, [r4]
ldr r1, [r4, #4]
ldr r2, [r4, #8]
ldr r3, [r4, #0xc]
bl G3X_SetFog
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021DBA78
MOD05_021DBA78: ; 0x021DBA78
push {r3, r4}
mov r4, #0x10
tst r4, r1
beq _021DBA82
strh r2, [r0, #0x10]
_021DBA82:
mov r2, #0x20
tst r1, r2
beq _021DBA8A
str r3, [r0, #0x14]
_021DBA8A:
ldrh r1, [r0, #0x10]
ldr r0, [r0, #0x14]
lsl r0, r0, #0x10
orr r1, r0
ldr r0, _021DBA9C ; =0x04000358
str r1, [r0]
pop {r3, r4}
bx lr
nop
_021DBA9C: .word 0x04000358
thumb_func_start MOD05_021DBAA0
MOD05_021DBAA0: ; 0x021DBAA0
push {r4, lr}
add r4, r0, #0
add r0, r1, #0
add r1, r4, #0
add r1, #0x18
mov r2, #0x20
bl MIi_CpuCopy32
add r4, #0x18
add r0, r4, #0
bl G3X_SetFogTable
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021DBABC
MOD05_021DBABC: ; 0x021DBABC
push {r4, lr}
mov r0, #4
mov r1, #0x48
bl AllocFromHeap
add r4, r0, #0
mov r0, #0
add r1, r4, #0
mov r2, #0x48
bl MIi_CpuClear32
add r0, r4, #0
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021DBAD8
MOD05_021DBAD8: ; 0x021DBAD8
push {r4, lr}
add r4, r0, #0
ldr r1, [r4]
mov r0, #4
bl FUN_02016A8C
mov r0, #0
str r0, [r4]
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021DBAEC
MOD05_021DBAEC: ; 0x021DBAEC
push {r4, r5, r6, r7, lr}
sub sp, #0xc
str r0, [sp, #8]
add r7, r1, #0
mov r4, #0
add r5, r0, #0
add r6, r0, #0
_021DBAFA:
mov r0, #1
lsl r0, r4
tst r0, r7
beq _021DBB14
mov r1, #0
mov r2, #2
mov r3, #4
ldrsh r1, [r5, r1]
ldrsh r2, [r5, r2]
ldrsh r3, [r5, r3]
add r0, r4, #0
bl FUN_020B8418
_021DBB14:
add r1, r4, #4
mov r0, #1
lsl r0, r1
tst r0, r7
beq _021DBB26
ldrh r1, [r6, #0x18]
add r0, r4, #0
bl FUN_020B8404
_021DBB26:
add r4, r4, #1
add r5, r5, #6
add r6, r6, #2
cmp r4, #4
blt _021DBAFA
mov r0, #3
lsl r0, r0, #8
tst r0, r7
beq _021DBB48
ldr r0, [sp, #8]
ldr r1, [sp, #8]
ldr r2, [sp, #8]
ldrh r0, [r0, #0x20]
ldrh r1, [r1, #0x22]
ldr r2, [r2, #0x28]
bl FUN_020B83E0
_021DBB48:
mov r0, #3
lsl r0, r0, #0xa
tst r0, r7
beq _021DBB60
ldr r0, [sp, #8]
ldr r1, [sp, #8]
ldr r2, [sp, #8]
ldrh r0, [r0, #0x24]
ldrh r1, [r1, #0x26]
ldr r2, [r2, #0x2c]
bl FUN_020B83BC
_021DBB60:
mov r0, #1
lsl r0, r0, #0xc
cmp r7, r0
blt _021DBB88
ldr r0, [sp, #8]
ldr r1, [sp, #8]
ldr r0, [r0, #0x40]
ldr r2, [sp, #8]
str r0, [sp]
ldr r0, [sp, #8]
ldr r3, [sp, #8]
ldr r0, [r0, #0x44]
str r0, [sp, #4]
ldr r0, [sp, #8]
ldr r1, [r1, #0x34]
ldr r0, [r0, #0x30]
ldr r2, [r2, #0x38]
ldr r3, [r3, #0x3c]
bl FUN_020B8390
_021DBB88:
add sp, #0xc
pop {r4, r5, r6, r7, pc}
thumb_func_start MOD05_021DBB8C
MOD05_021DBB8C: ; 0x021DBB8C
push {r4, r5, r6, lr}
add r5, r0, #0
mov r0, #1
add r4, r2, #0
lsl r0, r0, #8
add r6, r1, #0
tst r0, r4
beq _021DBBA4
ldrh r1, [r5, #0x20]
add r0, r6, #0
bl FUN_020BBC34
_021DBBA4:
mov r0, #2
lsl r0, r0, #8
tst r0, r4
beq _021DBBB4
ldrh r1, [r5, #0x22]
add r0, r6, #0
bl FUN_020BBBF4
_021DBBB4:
mov r0, #1
lsl r0, r0, #0xa
tst r0, r4
beq _021DBBC4
ldrh r1, [r5, #0x24]
add r0, r6, #0
bl FUN_020BBBB4
_021DBBC4:
mov r0, #2
lsl r0, r0, #0xa
tst r0, r4
beq _021DBBD4
ldrh r1, [r5, #0x26]
add r0, r6, #0
bl FUN_020BBB74
_021DBBD4:
mov r0, #1
lsl r0, r0, #0xc
tst r0, r4
beq _021DBBE4
ldr r1, [r5, #0x30]
add r0, r6, #0
bl FUN_020BBB34
_021DBBE4:
mov r0, #2
lsl r0, r0, #0xc
tst r0, r4
beq _021DBBF4
ldr r1, [r5, #0x34]
add r0, r6, #0
bl FUN_020BBAF4
_021DBBF4:
mov r0, #1
lsl r0, r0, #0xe
tst r0, r4
beq _021DBC04
ldr r1, [r5, #0x38]
add r0, r6, #0
bl FUN_020BBAB4
_021DBC04:
mov r0, #2
lsl r0, r0, #0xe
tst r0, r4
beq _021DBC14
ldr r1, [r5, #0x3c]
add r0, r6, #0
bl FUN_020BBA74
_021DBC14:
mov r0, #1
lsl r0, r0, #0x10
tst r0, r4
beq _021DBC24
ldr r1, [r5, #0x40]
add r0, r6, #0
bl FUN_020BBA34
_021DBC24:
mov r1, #2
lsl r1, r1, #0x10
add r0, r4, #0
tst r0, r1
beq _021DBC3A
ldr r2, [r5, #0x44]
lsr r1, r1, #2
add r0, r6, #0
and r1, r2
bl FUN_020BB9F4
_021DBC3A:
mov r1, #1
lsl r1, r1, #0x12
add r0, r4, #0
tst r0, r1
beq _021DBC50
ldr r2, [r5, #0x44]
lsr r1, r1, #4
add r0, r6, #0
and r1, r2
bl FUN_020BB9B4
_021DBC50:
mov r1, #2
lsl r1, r1, #0x12
add r0, r4, #0
tst r0, r1
beq _021DBC66
ldr r2, [r5, #0x44]
lsr r1, r1, #6
add r0, r6, #0
and r1, r2
bl FUN_020BB974
_021DBC66:
mov r1, #1
lsl r1, r1, #0x14
add r0, r4, #0
tst r0, r1
beq _021DBC7C
ldr r2, [r5, #0x44]
lsr r1, r1, #8
add r0, r6, #0
and r1, r2
bl FUN_020BB934
_021DBC7C:
mov r1, #2
lsl r1, r1, #0x14
add r0, r4, #0
tst r0, r1
beq _021DBC92
ldr r2, [r5, #0x44]
lsr r1, r1, #0xa
add r0, r6, #0
and r1, r2
bl FUN_020BB8F4
_021DBC92:
pop {r4, r5, r6, pc}
thumb_func_start MOD05_021DBC94
MOD05_021DBC94: ; 0x021DBC94
push {r4, r5, r6, lr}
add r5, r0, #0
mov r0, #6
add r4, r1, #0
mul r4, r0
strh r2, [r5, r4]
add r2, r5, #2
strh r3, [r2, r4]
add r6, sp, #0
mov r0, #0x10
ldrsh r0, [r6, r0]
add r3, r5, #4
strh r0, [r3, r4]
add r0, r1, #0
ldrsh r1, [r5, r4]
ldrsh r2, [r2, r4]
ldrsh r3, [r3, r4]
bl FUN_020B8418
pop {r4, r5, r6, pc}
thumb_func_start MOD05_021DBCBC
MOD05_021DBCBC: ; 0x021DBCBC
push {r4, lr}
add r4, r0, #0
add r4, #0x18
lsl r3, r1, #1
strh r2, [r4, r3]
add r0, r1, #0
ldrh r1, [r4, r3]
bl FUN_020B8404
pop {r4, pc}
thumb_func_start MOD05_021DBCD0
MOD05_021DBCD0: ; 0x021DBCD0
push {r3, lr}
strh r1, [r0, #0x20]
str r2, [r0, #0x28]
cmp r3, #1
bne _021DBCE2
mov r1, #1
lsl r1, r1, #8
bl MOD05_021DBAEC
_021DBCE2:
pop {r3, pc}
thumb_func_start MOD05_021DBCE4
MOD05_021DBCE4: ; 0x021DBCE4
push {r3, lr}
strh r1, [r0, #0x22]
cmp r2, #1
bne _021DBCF4
mov r1, #2
lsl r1, r1, #8
bl MOD05_021DBAEC
_021DBCF4:
pop {r3, pc}
.balign 4, 0
thumb_func_start MOD05_021DBCF8
MOD05_021DBCF8: ; 0x021DBCF8
push {r3, lr}
strh r1, [r0, #0x24]
str r2, [r0, #0x2c]
cmp r3, #1
bne _021DBD0A
mov r1, #1
lsl r1, r1, #0xa
bl MOD05_021DBAEC
_021DBD0A:
pop {r3, pc}
thumb_func_start MOD05_021DBD0C
MOD05_021DBD0C: ; 0x021DBD0C
push {r3, lr}
strh r1, [r0, #0x26]
cmp r2, #1
bne _021DBD1C
mov r1, #2
lsl r1, r1, #0xa
bl MOD05_021DBAEC
_021DBD1C:
pop {r3, pc}
.balign 4, 0
thumb_func_start MOD05_021DBD20
MOD05_021DBD20: ; 0x021DBD20
push {r3, lr}
str r1, [r0, #0x34]
cmp r2, #1
bne _021DBD30
mov r1, #2
lsl r1, r1, #0xc
bl MOD05_021DBAEC
_021DBD30:
pop {r3, pc}
.balign 4, 0
thumb_func_start MOD05_021DBD34
MOD05_021DBD34: ; 0x021DBD34
push {r3, lr}
str r1, [r0, #0x38]
cmp r2, #1
bne _021DBD44
mov r1, #1
lsl r1, r1, #0xe
bl MOD05_021DBAEC
_021DBD44:
pop {r3, pc}
.balign 4, 0
thumb_func_start MOD05_021DBD48
MOD05_021DBD48: ; 0x021DBD48
push {r3, lr}
str r1, [r0, #0x40]
cmp r2, #1
bne _021DBD58
mov r1, #1
lsl r1, r1, #0x10
bl MOD05_021DBAEC
_021DBD58:
pop {r3, pc}
.balign 4, 0
thumb_func_start MOD05_021DBD5C
MOD05_021DBD5C: ; 0x021DBD5C
push {r3, lr}
cmp r2, #1
ldr r2, [r0, #0x44]
bne _021DBD6A
tst r2, r1
beq _021DBD6E
pop {r3, pc}
_021DBD6A:
tst r2, r1
beq _021DBD80
_021DBD6E:
ldr r2, [r0, #0x44]
eor r1, r2
str r1, [r0, #0x44]
cmp r3, #1
bne _021DBD80
mov r1, #1
lsl r1, r1, #0xc
bl MOD05_021DBAEC
_021DBD80:
pop {r3, pc}
.balign 4, 0
thumb_func_start MOD05_021DBD84
MOD05_021DBD84: ; 0x021DBD84
push {r4, r5, r6, r7, lr}
sub sp, #0xc
add r7, r0, #0
add r5, r1, #0
mov r0, #0x18
ldr r1, _021DBDE8 ; =0x021F6608
mul r0, r2
add r6, r3, #0
add r4, r1, r0
cmp r2, #0x10
blo _021DBD9E
bl ErrorHandling
_021DBD9E:
mov r0, #4
bl FUN_0201EB64
str r0, [r5, #0x20]
ldrb r0, [r4, #0xc]
add r2, r4, #4
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
ldr r0, [r5, #0x20]
str r0, [sp, #8]
ldrh r3, [r4, #0xe]
ldr r1, [r4]
add r0, r7, #0
bl FUN_0201ECA8
ldr r0, [r5, #0x20]
bl FUN_0201EB8C
ldr r0, [r4, #0x10]
ldr r1, [r4, #0x14]
ldr r2, [r5, #0x20]
bl FUN_0201EC94
cmp r6, #0
beq _021DBDE2
ldr r0, [r5, #0x20]
mov r1, #6
str r0, [sp]
mov r0, #7
mov r2, #2
mov r3, #4
bl FUN_0201EABC
_021DBDE2:
add sp, #0xc
pop {r4, r5, r6, r7, pc}
nop
_021DBDE8: .word 0x021F6608
thumb_func_start MOD05_021DBDEC
MOD05_021DBDEC: ; 0x021DBDEC
push {r4, lr}
add r4, r0, #0
bl FUN_0201EB98
ldr r0, [r4, #0x20]
bl FUN_0201EB48
ldr r0, [r4, #0x20]
bl FUN_0201EB70
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021DBE04
MOD05_021DBE04: ; 0x021DBE04
push {r4, lr}
ldr r4, [r0, #0x18]
cmp r4, #0
bne _021DBE10
bl ErrorHandling
_021DBE10:
cmp r4, #5
blt _021DBE18
bl ErrorHandling
_021DBE18:
sub r0, r4, #1
pop {r4, pc}
thumb_func_start MOD05_021DBE1C
MOD05_021DBE1C: ; 0x021DBE1C
push {r4, lr}
add r4, r0, #0
bl MOD05_021DBE04
add r1, r0, #0
lsl r2, r1, #4
ldr r1, _021DBE34 ; =0x021F6788
add r0, r4, #0
ldr r1, [r1, r2]
blx r1
pop {r4, pc}
nop
_021DBE34: .word 0x021F6788
thumb_func_start MOD05_021DBE38
MOD05_021DBE38: ; 0x021DBE38
push {r4, lr}
add r4, r0, #0
bl MOD05_021DBE04
lsl r1, r0, #4
ldr r0, _021DBE54 ; =0x021F678C
ldr r1, [r0, r1]
cmp r1, #0
bne _021DBE4E
mov r0, #1
pop {r4, pc}
_021DBE4E:
add r0, r4, #0
blx r1
pop {r4, pc}
.balign 4, 0
_021DBE54: .word 0x021F678C
thumb_func_start MOD05_021DBE58
MOD05_021DBE58: ; 0x021DBE58
push {r4, lr}
add r4, r0, #0
bl MOD05_021DBE04
add r1, r0, #0
lsl r2, r1, #4
ldr r1, _021DBE70 ; =0x021F6790
add r0, r4, #0
ldr r1, [r1, r2]
blx r1
pop {r4, pc}
nop
_021DBE70: .word 0x021F6790
thumb_func_start MOD05_021DBE74
MOD05_021DBE74: ; 0x021DBE74
push {r4, lr}
add r4, r0, #0
bl MOD05_021DBE04
add r1, r0, #0
lsl r2, r1, #4
ldr r1, _021DBE8C ; =0x021F6794
add r0, r4, #0
ldr r1, [r1, r2]
blx r1
pop {r4, pc}
nop
_021DBE8C: .word 0x021F6794
thumb_func_start MOD05_021DBE90
MOD05_021DBE90: ; 0x021DBE90
ldr r3, _021DBE94 ; =MOD05_021EFAAC
bx r3
.balign 4, 0
_021DBE94: .word MOD05_021EFAAC
thumb_func_start MOD05_021DBE98
MOD05_021DBE98: ; 0x021DBE98
ldr r3, _021DBE9C ; =FUN_02050E2C
bx r3
.balign 4, 0
_021DBE9C: .word FUN_02050E2C
thumb_func_start MOD05_021DBEA0
MOD05_021DBEA0: ; 0x021DBEA0
push {r4, lr}
add r4, r0, #0
ldr r0, _021DBEB8 ; =SDK_OVERLAY_MODULE_51_ID
mov r1, #2
bl HandleLoadOverlay
add r0, r4, #0
bl MOD51_02254A68
add r4, #0x80
str r0, [r4]
pop {r4, pc}
.balign 4, 0
_021DBEB8: .word SDK_OVERLAY_MODULE_51_ID
thumb_func_start MOD05_021DBEBC
MOD05_021DBEBC: ; 0x021DBEBC
ldr r3, _021DBEC0 ; =MOD05_021EFB14
bx r3
.balign 4, 0
_021DBEC0: .word MOD05_021EFB14
thumb_func_start MOD05_021DBEC4
MOD05_021DBEC4: ; 0x021DBEC4
ldr r3, _021DBEC8 ; =FUN_02050E10
bx r3
.balign 4, 0
_021DBEC8: .word FUN_02050E10
thumb_func_start MOD05_021DBECC
MOD05_021DBECC: ; 0x021DBECC
push {r3, lr}
add r0, #0x80
ldr r0, [r0]
bl MOD51_02254AB8
ldr r0, _021DBEE0 ; =SDK_OVERLAY_MODULE_51_ID
bl UnloadOverlayByID
pop {r3, pc}
nop
_021DBEE0: .word SDK_OVERLAY_MODULE_51_ID
thumb_func_start MOD05_021DBEE4
MOD05_021DBEE4: ; 0x021DBEE4
ldr r3, _021DBEE8 ; =MOD05_021EFB50
bx r3
.balign 4, 0
_021DBEE8: .word MOD05_021EFB50
thumb_func_start MOD05_021DBEEC
MOD05_021DBEEC: ; 0x021DBEEC
mov r0, #1
bx lr
thumb_func_start MOD05_021DBEF0
MOD05_021DBEF0: ; 0x021DBEF0
mov r0, #1
bx lr
thumb_func_start MOD05_021DBEF4
MOD05_021DBEF4: ; 0x021DBEF4
push {r3, lr}
mov r1, #0x42
mov r0, #4
lsl r1, r1, #2
bl AllocFromHeap
cmp r0, #0
beq _021DBF1E
mov r2, #0
add r3, r0, #0
add r1, r2, #0
_021DBF0A:
strh r1, [r3, #0x14]
strh r1, [r3, #0x16]
str r1, [r3]
str r1, [r3, #8]
str r1, [r3, #0x10]
str r1, [r3, #0xc]
add r2, r2, #1
add r3, #0x18
cmp r2, #0xb
blt _021DBF0A
_021DBF1E:
pop {r3, pc}
thumb_func_start MOD05_021DBF20
MOD05_021DBF20: ; 0x021DBF20
push {r3, r4, r5, r6, r7, lr}
mov r6, #0
ldr r5, _021DBF4C ; =0x021FD290
add r7, r0, #0
str r1, [sp]
add r4, r6, #0
_021DBF2C:
ldr r1, [sp]
ldr r2, [r5]
add r0, r7, #0
add r3, r4, #0
bl MOD05_021DBF50
cmp r0, #0
blt _021DBF3E
add r6, r6, #1
_021DBF3E:
add r4, r4, #1
add r5, r5, #4
cmp r4, #0xb
blt _021DBF2C
add r0, r6, #0
pop {r3, r4, r5, r6, r7, pc}
nop
_021DBF4C: .word 0x021FD290
thumb_func_start MOD05_021DBF50
MOD05_021DBF50: ; 0x021DBF50
push {r4, r5, r6, r7, lr}
sub sp, #0x34
add r6, r0, #0
add r7, r1, #0
str r2, [sp]
str r3, [sp, #4]
cmp r6, #0
bne _021DBF68
mov r0, #0
add sp, #0x34
mvn r0, r0
pop {r4, r5, r6, r7, pc}
_021DBF68:
mov r4, #0
add r1, r6, #0
_021DBF6C:
ldr r0, [r1, #0xc]
cmp r0, #0
beq _021DBF7A
add r4, r4, #1
add r1, #0x18
cmp r4, #0xb
blt _021DBF6C
_021DBF7A:
cmp r4, #0xb
beq _021DBF82
cmp r7, #0
bne _021DBF8A
_021DBF82:
mov r0, #0
add sp, #0x34
mvn r0, r0
pop {r4, r5, r6, r7, pc}
_021DBF8A:
mov r0, #0x18
add r5, r4, #0
mul r5, r0
ldr r1, [sp]
add r0, r7, #0
bl FUN_0201C578
str r0, [r6, r5]
ldr r0, [r6, r5]
cmp r0, #0
bne _021DBFA8
mov r0, #0
add sp, #0x34
mvn r0, r0
pop {r4, r5, r6, r7, pc}
_021DBFA8:
ldr r1, [sp]
add r0, r7, #0
bl FUN_0201C5FC
add r1, r6, r5
str r0, [r1, #4]
ldr r1, _021DBFF4 ; =0x021FD2BC
ldr r2, [sp, #4]
add r0, sp, #0xc
bl sprintf
add r7, r6, #0
add r7, #0x10
mov r0, #4
add r1, sp, #0xc
bl FUN_020161A4
str r0, [r7, r5]
add r0, r6, #0
str r0, [sp, #8]
add r0, #0xc
str r0, [sp, #8]
ldr r0, [r7, r5]
mov r1, #4
bl FUN_02016324
ldr r1, [sp, #8]
str r0, [r1, r5]
add r0, r1, #0
ldr r0, [r0, r5]
bl FUN_020BC0FC
add r1, r6, r5
str r0, [r1, #8]
add r0, r4, #0
add sp, #0x34
pop {r4, r5, r6, r7, pc}
nop
_021DBFF4: .word 0x021FD2BC
thumb_func_start MOD05_021DBFF8
MOD05_021DBFF8: ; 0x021DBFF8
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
beq _021DC064
mov r4, #0
ldr r7, _021DC068 ; =0x0000FFFF
add r6, r4, #0
_021DC004:
ldr r0, [r5, #0xc]
cmp r0, #0
beq _021DC05C
ldr r1, [r5, #0x10]
cmp r1, #0
beq _021DC05C
ldrh r0, [r5, #0x14]
lsl r0, r0, #2
add r0, r1, r0
ldrh r1, [r0, #0x22]
ldrh r0, [r5, #0x16]
cmp r1, r0
bhi _021DC058
strh r6, [r5, #0x16]
ldrh r0, [r5, #0x14]
add r0, r0, #1
strh r0, [r5, #0x14]
ldrh r0, [r5, #0x14]
ldr r1, [r5, #0x10]
lsl r0, r0, #2
add r0, r1, r0
ldrh r0, [r0, #0x20]
cmp r0, r7
bne _021DC036
strh r6, [r5, #0x14]
_021DC036:
ldrh r2, [r5, #0x14]
ldr r1, [r5, #0x10]
ldr r0, [r5, #8]
lsl r2, r2, #2
add r1, r1, r2
ldrh r1, [r1, #0x20]
lsl r1, r1, #0x18
lsr r1, r1, #0x18
bl FUN_0201C50C
add r2, r0, #0
ldr r1, [r5]
ldr r3, [r5, #4]
mov r0, #0
bl FUN_0201C2C8
b _021DC05C
_021DC058:
add r0, r0, #1
strh r0, [r5, #0x16]
_021DC05C:
add r4, r4, #1
add r5, #0x18
cmp r4, #0xb
blt _021DC004
_021DC064:
pop {r3, r4, r5, r6, r7, pc}
nop
_021DC068: .word 0x0000FFFF
thumb_func_start MOD05_021DC06C
MOD05_021DC06C: ; 0x021DC06C
push {r4, r5, r6, lr}
add r5, r0, #0
beq _021DC092
add r6, r5, #0
mov r0, #0x18
add r4, r1, #0
mul r4, r0
add r6, #0x10
ldr r0, [r6, r4]
cmp r0, #0
beq _021DC08A
bl FreeToHeap
mov r0, #0
str r0, [r6, r4]
_021DC08A:
mov r1, #0
add r0, r5, r4
strh r1, [r0, #0x14]
strh r1, [r0, #0x16]
_021DC092:
pop {r4, r5, r6, pc}
thumb_func_start MOD05_021DC094
MOD05_021DC094: ; 0x021DC094
push {r3, r4, r5, lr}
add r5, r0, #0
beq _021DC0AA
mov r4, #0
_021DC09C:
add r0, r5, #0
add r1, r4, #0
bl MOD05_021DC06C
add r4, r4, #1
cmp r4, #0xb
blt _021DC09C
_021DC0AA:
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021DC0AC
MOD05_021DC0AC: ; 0x021DC0AC
push {r3, lr}
cmp r0, #0
beq _021DC0B6
bl FreeToHeap
_021DC0B6:
pop {r3, pc}
thumb_func_start MOD05_021DC0B8
MOD05_021DC0B8: ; 0x021DC0B8
push {r3, r4, r5, lr}
add r5, r0, #0
mov r0, #4
mov r1, #0x18
bl AllocFromHeap
add r4, r0, #0
add r2, r4, #0
mov r1, #0x18
mov r0, #0
_021DC0CC:
strb r0, [r2]
add r2, r2, #1
sub r1, r1, #1
bne _021DC0CC
add r0, r5, #0
bl MOD05_021DC554
str r0, [r4]
mov r1, #0
str r1, [r4, #4]
str r1, [r4, #8]
mov r0, #6
str r0, [r4, #0xc]
str r1, [r4, #0x14]
mov r0, #0x17
str r0, [r4, #0x10]
mov r0, #0x10
mov r1, #1
bl FUN_0201E6E4
add r0, r4, #0
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021DC0F8
MOD05_021DC0F8: ; 0x021DC0F8
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0x14]
cmp r0, #0
beq _021DC106
bl FUN_0200CAB4
_021DC106:
add r0, r4, #0
bl MOD05_021DC594
add r2, r4, #0
mov r1, #0x18
mov r0, #0
_021DC112:
strb r0, [r2]
add r2, r2, #1
sub r1, r1, #1
bne _021DC112
add r0, r4, #0
bl FreeToHeap
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021DC124
MOD05_021DC124: ; 0x021DC124
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r0, [r5, #0xc]
add r4, r1, #0
cmp r0, #6
beq _021DC134
bl ErrorHandling
_021DC134:
ldr r2, [r5, #4]
cmp r2, r4
beq _021DC170
ldr r0, [r5]
mov r1, #8
bl MOD05_021DC608
cmp r0, #0
bne _021DC14A
bl ErrorHandling
_021DC14A:
ldr r0, [r5]
mov r1, #0
add r2, r4, #0
bl MOD05_021DC608
cmp r0, #0
bne _021DC15C
bl ErrorHandling
_021DC15C:
ldr r0, [r5]
mov r1, #3
add r2, r4, #0
bl MOD05_021DC608
cmp r0, #0
bne _021DC16E
bl ErrorHandling
_021DC16E:
str r4, [r5, #4]
_021DC170:
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021DC174
MOD05_021DC174: ; 0x021DC174
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r0, [r5, #0xc]
add r4, r1, #0
cmp r0, #6
beq _021DC186
str r4, [r5, #0x10]
mov r0, #1
pop {r3, r4, r5, pc}
_021DC186:
ldr r0, [r5, #4]
cmp r0, r4
bne _021DC190
mov r0, #1
pop {r3, r4, r5, pc}
_021DC190:
ldr r0, [r5, #0x14]
cmp r0, #0
beq _021DC19A
bl ErrorHandling
_021DC19A:
str r4, [r5, #8]
ldr r0, [r5, #4]
add r1, r4, #0
bl MOD05_021DC368
cmp r0, #0
bne _021DC1B6
ldr r0, _021DC1C8 ; =MOD05_021DC1D4
mov r2, #0
add r1, r5, #0
str r2, [r5, #0xc]
bl FUN_0200CA44
b _021DC1C2
_021DC1B6:
ldr r0, _021DC1CC ; =MOD05_021DC2A4
mov r2, #0
add r1, r5, #0
str r2, [r5, #0xc]
bl FUN_0200CA44
_021DC1C2:
str r0, [r5, #0x14]
mov r0, #1
pop {r3, r4, r5, pc}
.balign 4, 0
_021DC1C8: .word MOD05_021DC1D4
_021DC1CC: .word MOD05_021DC2A4
thumb_func_start MOD05_021DC1D0
MOD05_021DC1D0: ; 0x021DC1D0
ldr r0, [r0, #4]
bx lr
thumb_func_start MOD05_021DC1D4
MOD05_021DC1D4: ; 0x021DC1D4
push {r4, lr}
add r4, r1, #0
ldr r1, [r4, #0xc]
cmp r1, #5
bhi _021DC2A2
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021DC1EA: ; jump table
.short _021DC1F6 - _021DC1EA - 2 ; case 0
.short _021DC210 - _021DC1EA - 2 ; case 1
.short _021DC236 - _021DC1EA - 2 ; case 2
.short _021DC250 - _021DC1EA - 2 ; case 3
.short _021DC264 - _021DC1EA - 2 ; case 4
.short _021DC286 - _021DC1EA - 2 ; case 5
_021DC1F6:
ldr r0, [r4]
ldr r2, [r4, #4]
mov r1, #5
bl MOD05_021DC608
cmp r0, #0
bne _021DC208
bl ErrorHandling
_021DC208:
ldr r0, [r4, #0xc]
add r0, r0, #1
str r0, [r4, #0xc]
pop {r4, pc}
_021DC210:
ldr r0, [r4]
ldr r1, [r4, #4]
bl MOD05_021DC6C0
cmp r0, #3
beq _021DC2A2
ldr r0, [r4]
ldr r2, [r4, #4]
mov r1, #8
bl MOD05_021DC608
cmp r0, #0
bne _021DC22E
bl ErrorHandling
_021DC22E:
ldr r0, [r4, #0xc]
add r0, r0, #1
str r0, [r4, #0xc]
pop {r4, pc}
_021DC236:
ldr r0, [r4]
ldr r2, [r4, #8]
mov r1, #1
bl MOD05_021DC608
cmp r0, #0
bne _021DC248
bl ErrorHandling
_021DC248:
ldr r0, [r4, #0xc]
add r0, r0, #1
str r0, [r4, #0xc]
pop {r4, pc}
_021DC250:
ldr r0, [r4]
ldr r1, [r4, #8]
bl MOD05_021DC6C0
cmp r0, #1
beq _021DC2A2
ldr r0, [r4, #0xc]
add r0, r0, #1
str r0, [r4, #0xc]
pop {r4, pc}
_021DC264:
ldr r0, [r4]
ldr r2, [r4, #8]
mov r1, #2
bl MOD05_021DC608
cmp r0, #0
bne _021DC276
bl ErrorHandling
_021DC276:
ldr r0, [r4, #0xc]
add r0, r0, #1
str r0, [r4, #0xc]
ldr r0, [r4, #8]
str r0, [r4, #4]
mov r0, #0
str r0, [r4, #8]
pop {r4, pc}
_021DC286:
mov r1, #6
str r1, [r4, #0xc]
mov r1, #0
str r1, [r4, #0x14]
bl FUN_0200CAB4
ldr r1, [r4, #0x10]
cmp r1, #0x17
beq _021DC2A2
add r0, r4, #0
bl MOD05_021DC174
mov r0, #0x17
str r0, [r4, #0x10]
_021DC2A2:
pop {r4, pc}
thumb_func_start MOD05_021DC2A4
MOD05_021DC2A4: ; 0x021DC2A4
push {r4, lr}
add r4, r1, #0
ldr r1, [r4, #0xc]
cmp r1, #4
bhi _021DC366
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021DC2BA: ; jump table
.short _021DC2C4 - _021DC2BA - 2 ; case 0
.short _021DC2DE - _021DC2BA - 2 ; case 1
.short _021DC2F2 - _021DC2BA - 2 ; case 2
.short _021DC31E - _021DC2BA - 2 ; case 3
.short _021DC344 - _021DC2BA - 2 ; case 4
_021DC2C4:
ldr r0, [r4]
ldr r2, [r4, #8]
mov r1, #1
bl MOD05_021DC608
cmp r0, #0
bne _021DC2D6
bl ErrorHandling
_021DC2D6:
ldr r0, [r4, #0xc]
add r0, r0, #1
str r0, [r4, #0xc]
pop {r4, pc}
_021DC2DE:
ldr r0, [r4]
ldr r1, [r4, #8]
bl MOD05_021DC6C0
cmp r0, #1
beq _021DC366
ldr r0, [r4, #0xc]
add r0, r0, #1
str r0, [r4, #0xc]
pop {r4, pc}
_021DC2F2:
ldr r0, [r4]
ldr r2, [r4, #4]
mov r1, #7
bl MOD05_021DC608
cmp r0, #0
bne _021DC304
bl ErrorHandling
_021DC304:
ldr r0, [r4]
ldr r2, [r4, #8]
mov r1, #4
bl MOD05_021DC608
cmp r0, #0
bne _021DC316
bl ErrorHandling
_021DC316:
ldr r0, [r4, #0xc]
add r0, r0, #1
str r0, [r4, #0xc]
pop {r4, pc}
_021DC31E:
ldr r0, [r4]
ldr r1, [r4, #4]
bl MOD05_021DC6C0
cmp r0, #3
beq _021DC366
ldr r0, [r4]
ldr r2, [r4, #4]
mov r1, #8
bl MOD05_021DC608
cmp r0, #0
bne _021DC33C
bl ErrorHandling
_021DC33C:
ldr r0, [r4, #0xc]
add r0, r0, #1
str r0, [r4, #0xc]
pop {r4, pc}
_021DC344:
ldr r1, [r4, #8]
mov r2, #0
str r1, [r4, #4]
str r2, [r4, #8]
mov r1, #6
str r1, [r4, #0xc]
str r2, [r4, #0x14]
bl FUN_0200CAB4
ldr r1, [r4, #0x10]
cmp r1, #0x17
beq _021DC366
add r0, r4, #0
bl MOD05_021DC174
mov r0, #0x17
str r0, [r4, #0x10]
_021DC366:
pop {r4, pc}
thumb_func_start MOD05_021DC368
MOD05_021DC368: ; 0x021DC368
mov r2, #0
cmp r0, #7
bgt _021DC37E
cmp r0, #5
blt _021DC3BC
beq _021DC384
cmp r0, #6
beq _021DC394
cmp r0, #7
beq _021DC3AE
b _021DC3BC
_021DC37E:
cmp r0, #0x15
beq _021DC3A4
b _021DC3BC
_021DC384:
cmp r1, #6
beq _021DC390
cmp r1, #0x15
beq _021DC390
cmp r1, #7
bne _021DC3BC
_021DC390:
mov r2, #1
b _021DC3BC
_021DC394:
cmp r1, #5
beq _021DC3A0
cmp r1, #0x15
beq _021DC3A0
cmp r1, #7
bne _021DC3BC
_021DC3A0:
mov r2, #1
b _021DC3BC
_021DC3A4:
sub r0, r1, #5
cmp r0, #2
bhi _021DC3BC
mov r2, #1
b _021DC3BC
_021DC3AE:
cmp r1, #5
beq _021DC3BA
cmp r1, #0x15
beq _021DC3BA
cmp r1, #6
bne _021DC3BC
_021DC3BA:
mov r2, #1
_021DC3BC:
add r0, r2, #0
bx lr
thumb_func_start MOD05_021DC3C0
MOD05_021DC3C0: ; 0x021DC3C0
push {r4, r5, r6, r7, lr}
sub sp, #0x1c
ldr r1, _021DC46C ; =0xFFFFF000
add r6, r0, #0
add r0, #0x14
bl FUN_0202134C
mov r0, #0
add r3, r6, #0
str r0, [sp, #0xc]
str r0, [sp, #0x10]
mov r0, #0xff
lsl r0, r0, #0xc
str r0, [sp, #0x14]
mov r0, #3
lsl r0, r0, #0x12
str r0, [sp, #0x18]
add r0, r6, #0
add r0, #0xac
add r1, sp, #0xc
mov r2, #1
add r3, #0x14
bl FUN_02009FD8
mov r4, #0
add r5, r6, #0
mov r7, #0x17
_021DC3F6:
add r0, r7, #0
add r1, r4, #0
mov r2, #4
bl FUN_02008DEC
add r4, r4, #1
stmia r5!, {r0}
cmp r4, #4
blt _021DC3F6
bl FUN_0200965C
add r1, r0, #0
mov r0, #4
lsl r1, r1, #2
bl AllocFromHeap
str r0, [r6, #0x10]
mov r1, #0
mov r2, #0x39
bl MOD05_021DC480
ldr r0, [r6, #0x10]
mov r1, #1
mov r2, #0x3a
bl MOD05_021DC480
ldr r0, [r6, #0x10]
mov r1, #2
mov r2, #0x37
bl MOD05_021DC480
ldr r0, [r6, #0x10]
mov r1, #3
mov r2, #0x38
bl MOD05_021DC480
mov r0, #0x40
str r0, [sp]
add r0, r6, #0
add r0, #0x14
str r0, [sp, #4]
mov r0, #4
str r0, [sp, #8]
add r0, sp, #0
bl FUN_0201FCB0
add r1, r6, #0
add r1, #0xf4
str r0, [r1]
ldr r0, _021DC470 ; =MOD05_021DC474
add r1, r6, #0
mov r2, #0xa
bl FUN_0200CA44
add r6, #0xf8
str r0, [r6]
add sp, #0x1c
pop {r4, r5, r6, r7, pc}
nop
_021DC46C: .word 0xFFFFF000
_021DC470: .word MOD05_021DC474
thumb_func_start MOD05_021DC474
MOD05_021DC474: ; 0x021DC474
ldr r3, _021DC47C ; =FUN_0201FDEC
add r1, #0xf4
ldr r0, [r1]
bx r3
.balign 4, 0
_021DC47C: .word FUN_0201FDEC
thumb_func_start MOD05_021DC480
MOD05_021DC480: ; 0x021DC480
push {r3, r4, r5, lr}
add r5, r2, #0
bl FUN_02009660
add r4, r0, #0
mov r0, #1
str r0, [sp]
mov r0, #0x41
add r1, r5, #0
mov r2, #0
mov r3, #4
bl FUN_02006C98
add r5, r0, #0
add r1, r4, #0
mov r2, #4
bl FUN_02009668
add r0, r5, #0
bl FreeToHeap
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021DC4AC
MOD05_021DC4AC: ; 0x021DC4AC
push {r4, r5, r6, lr}
add r6, r0, #0
mov r4, #0
add r5, r6, #0
_021DC4B4:
ldr r0, [r6, #0x10]
add r1, r4, #0
bl FUN_02009660
bl FUN_020096B4
ldr r0, [r5]
bl FUN_02008E2C
add r4, r4, #1
add r5, r5, #4
cmp r4, #4
blt _021DC4B4
ldr r0, [r6, #0x10]
bl FreeToHeap
mov r0, #0
str r0, [r6, #0x10]
add r0, r6, #0
add r0, #0xf4
ldr r0, [r0]
bl FUN_0201FD58
add r0, r6, #0
mov r1, #0
add r0, #0xf4
str r1, [r0]
add r0, r6, #0
add r0, #0xf8
ldr r0, [r0]
bl FUN_0200CAB4
mov r0, #0
add r6, #0xf8
str r0, [r6]
pop {r4, r5, r6, pc}
thumb_func_start MOD05_021DC4FC
MOD05_021DC4FC: ; 0x021DC4FC
push {r3, r4, r5, lr}
add r4, r1, #0
add r5, r0, #0
ldr r0, [r4]
ldr r1, _021DC54C ; =0x0013F000
cmp r0, r1
ble _021DC512
bl _s32_div_f
str r1, [r4]
b _021DC51C
_021DC512:
ldr r2, _021DC550 ; =0xFFFC0000
cmp r0, r2
bge _021DC51C
add r0, r0, r1
str r0, [r4]
_021DC51C:
mov r1, #1
ldr r3, [r4, #4]
lsl r1, r1, #0x14
cmp r3, r1
ble _021DC536
lsr r2, r3, #0x1f
lsl r1, r3, #0xc
sub r1, r1, r2
mov r0, #0xc
ror r1, r0
add r0, r2, r1
str r0, [r4, #4]
b _021DC540
_021DC536:
ldr r0, _021DC550 ; =0xFFFC0000
cmp r3, r0
bge _021DC540
add r0, r3, r1
str r0, [r4, #4]
_021DC540:
add r0, r5, #0
add r1, r4, #0
bl FUN_02020044
pop {r3, r4, r5, pc}
nop
_021DC54C: .word 0x0013F000
_021DC550: .word 0xFFFC0000
thumb_func_start MOD05_021DC554
MOD05_021DC554: ; 0x021DC554
push {r3, r4, r5, lr}
mov r1, #0x43
add r5, r0, #0
mov r0, #4
lsl r1, r1, #2
bl AllocFromHeap
add r4, r0, #0
mov r0, #0x41
lsl r0, r0, #2
str r5, [r4, r0]
add r0, r4, #0
add r0, #8
bl MOD05_021DC3C0
ldr r0, _021DC58C ; =0x021FD2D4
mov r1, #4
str r0, [r4]
ldr r0, _021DC590 ; =0x021F689C
str r0, [r4, #4]
mov r0, #0x41
bl NARC_ctor
mov r1, #0x42
lsl r1, r1, #2
str r0, [r4, r1]
add r0, r4, #0
pop {r3, r4, r5, pc}
.balign 4, 0
_021DC58C: .word 0x021FD2D4
_021DC590: .word 0x021F689C
thumb_func_start MOD05_021DC594
MOD05_021DC594: ; 0x021DC594
push {r3, r4, r5, lr}
sub sp, #8
add r4, r0, #0
ldr r0, [r4]
cmp r0, #0
beq _021DC5FE
mov r5, #0
_021DC5A2:
ldr r0, [r4]
add r1, r5, #0
bl MOD05_021DCA94
add r5, r5, #1
cmp r5, #0x17
blt _021DC5A2
mov r2, #0
str r2, [sp]
str r2, [sp, #4]
mov r0, #0x41
ldr r1, [r4]
lsl r0, r0, #2
ldr r0, [r1, r0]
mov r1, #1
ldr r0, [r0, #0x44]
add r3, r2, #0
bl MOD05_021DBA40
ldr r1, _021DC604 ; =0x04000008
mov r0, #3
ldrh r2, [r1]
bic r2, r0
mov r0, #1
orr r0, r2
strh r0, [r1]
mov r0, #4
mov r1, #0
bl FUN_0201E6E4
ldr r0, [r4]
add r0, #8
bl MOD05_021DC4AC
mov r0, #0x42
ldr r1, [r4]
lsl r0, r0, #2
ldr r0, [r1, r0]
bl NARC_dtor
ldr r1, [r4]
mov r0, #4
bl FUN_02016A8C
mov r0, #0
str r0, [r4]
_021DC5FE:
add sp, #8
pop {r3, r4, r5, pc}
nop
_021DC604: .word 0x04000008
thumb_func_start MOD05_021DC608
MOD05_021DC608: ; 0x021DC608
push {r4, r5, r6, lr}
add r4, r2, #0
add r6, r0, #0
mov r5, #1
cmp r4, #0x17
ble _021DC618
mov r0, #0
pop {r4, r5, r6, pc}
_021DC618:
cmp r1, #8
bhi _021DC6BC
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021DC628: ; jump table
.short _021DC63A - _021DC628 - 2 ; case 0
.short _021DC644 - _021DC628 - 2 ; case 1
.short _021DC64E - _021DC628 - 2 ; case 2
.short _021DC65C - _021DC628 - 2 ; case 3
.short _021DC66A - _021DC628 - 2 ; case 4
.short _021DC69A - _021DC628 - 2 ; case 5
.short _021DC6A4 - _021DC628 - 2 ; case 6
.short _021DC6AC - _021DC628 - 2 ; case 7
.short _021DC6B6 - _021DC628 - 2 ; case 8
_021DC63A:
add r1, r4, #0
bl MOD05_021DC8BC
add r5, r0, #0
b _021DC6BC
_021DC644:
add r1, r4, #0
bl MOD05_021DC90C
add r5, r0, #0
b _021DC6BC
_021DC64E:
add r1, r4, #0
mov r2, #0
add r3, r5, #0
bl MOD05_021DC948
add r5, r0, #0
b _021DC6BC
_021DC65C:
add r1, r4, #0
mov r2, #2
add r3, r5, #0
bl MOD05_021DC948
add r5, r0, #0
b _021DC6BC
_021DC66A:
mov r0, #0x41
lsl r0, r0, #2
ldr r0, [r6, r0]
ldr r0, [r0, #0x44]
bl MOD05_021DBA30
cmp r0, #1
bne _021DC68A
add r0, r6, #0
add r1, r4, #0
mov r2, #0
mov r3, #2
bl MOD05_021DC948
add r5, r0, #0
b _021DC6BC
_021DC68A:
add r0, r6, #0
add r1, r4, #0
mov r2, #0
add r3, r5, #0
bl MOD05_021DC948
add r5, r0, #0
b _021DC6BC
_021DC69A:
add r1, r4, #0
add r2, r5, #0
bl MOD05_021DCA44
b _021DC6BC
_021DC6A4:
add r1, r4, #0
bl MOD05_021DCA6C
b _021DC6BC
_021DC6AC:
add r1, r4, #0
mov r2, #0
bl MOD05_021DCA44
b _021DC6BC
_021DC6B6:
add r1, r4, #0
bl MOD05_021DCA94
_021DC6BC:
add r0, r5, #0
pop {r4, r5, r6, pc}
thumb_func_start MOD05_021DC6C0
MOD05_021DC6C0: ; 0x021DC6C0
cmp r1, #0x17
blt _021DC6C8
mov r0, #0
bx lr
_021DC6C8:
ldr r2, [r0]
mov r0, #0x24
mul r0, r1
add r0, r2, r0
ldr r0, [r0, #0x14]
bx lr
thumb_func_start MOD05_021DC6D4
MOD05_021DC6D4: ; 0x021DC6D4
push {r3, lr}
add r3, r0, #0
str r1, [sp]
ldr r0, _021DC6E8 ; =0x04000050
mov r1, #4
mov r2, #0x21
bl G2x_SetBlendAlpha_
pop {r3, pc}
nop
_021DC6E8: .word 0x04000050
thumb_func_start MOD05_021DC6EC
MOD05_021DC6EC: ; 0x021DC6EC
str r1, [r0]
str r1, [r0, #4]
sub r1, r2, r1
str r1, [r0, #8]
str r3, [r0, #0x10]
mov r1, #0
str r1, [r0, #0xc]
bx lr
thumb_func_start MOD05_021DC6FC
MOD05_021DC6FC: ; 0x021DC6FC
push {r4, lr}
add r4, r0, #0
ldr r1, [r4, #8]
ldr r0, [r4, #0xc]
mul r0, r1
ldr r1, [r4, #0x10]
bl _s32_div_f
ldr r1, [r4, #4]
add r0, r0, r1
str r0, [r4]
ldr r0, [r4, #0xc]
ldr r1, [r4, #0x10]
add r0, r0, #1
cmp r0, r1
bgt _021DC722
str r0, [r4, #0xc]
mov r0, #0
pop {r4, pc}
_021DC722:
str r1, [r4, #0xc]
mov r0, #1
pop {r4, pc}
thumb_func_start MOD05_021DC728
MOD05_021DC728: ; 0x021DC728
str r1, [r0]
str r1, [r0, #4]
sub r1, r2, r1
str r1, [r0, #8]
strh r3, [r0, #0xe]
mov r1, #0
strh r1, [r0, #0xc]
bx lr
thumb_func_start MOD05_021DC738
MOD05_021DC738: ; 0x021DC738
push {r4, lr}
add r4, r0, #0
mov r2, #0xc
ldrsh r2, [r4, r2]
ldr r0, [r4, #8]
asr r1, r0, #0x1f
asr r3, r2, #0x1f
bl _ll_mul
mov r2, #2
mov r3, #0
lsl r2, r2, #0xa
add r0, r0, r2
adc r1, r3
lsl r1, r1, #0x14
lsr r0, r0, #0xc
orr r0, r1
mov r1, #0xe
ldrsh r1, [r4, r1]
bl FX_Div
ldr r1, [r4, #4]
add r0, r0, r1
str r0, [r4]
mov r0, #0xe
ldrsh r1, [r4, r0]
mov r0, #0xc
ldrsh r0, [r4, r0]
add r0, r0, #1
cmp r0, r1
bgt _021DC77C
strh r0, [r4, #0xc]
mov r0, #0
pop {r4, pc}
_021DC77C:
strh r1, [r4, #0xc]
mov r0, #1
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021DC784
MOD05_021DC784: ; 0x021DC784
push {r4, r5, r6, lr}
add r5, r0, #0
add r4, r1, #0
add r6, r2, #0
bl MOD05_021DCDA0
add r0, r5, #0
add r1, r4, #0
add r2, r6, #0
bl MOD05_021DCDD0
add r0, r5, #0
add r1, r4, #0
add r2, r6, #0
bl MOD05_021DCE00
add r0, r5, #0
add r1, r4, #0
add r2, r6, #0
bl MOD05_021DCE3C
pop {r4, r5, r6, pc}
thumb_func_start MOD05_021DC7B0
MOD05_021DC7B0: ; 0x021DC7B0
push {r4, r5, r6, r7, lr}
sub sp, #0x2c
add r4, r2, #0
add r6, r1, #0
add r7, r3, #0
ldr r5, [sp, #0x40]
bl FUN_02009660
str r0, [sp, #0x18]
add r1, r4, #0
bl FUN_02009710
str r0, [sp, #0x1c]
ldr r0, [sp, #0x18]
add r1, r4, #0
bl FUN_0200973C
str r0, [sp, #0x20]
ldr r0, [sp, #0x18]
add r1, r4, #0
bl FUN_02009768
str r0, [sp, #0x24]
ldr r0, [sp, #0x18]
add r1, r4, #0
bl FUN_0200979C
str r0, [sp, #0x28]
ldr r0, [sp, #0x18]
add r1, r4, #0
bl FUN_020096DC
cmp r6, #3
bhi _021DC87A
add r1, r6, r6
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021DC800: ; jump table
.short _021DC808 - _021DC800 - 2 ; case 0
.short _021DC826 - _021DC800 - 2 ; case 1
.short _021DC848 - _021DC800 - 2 ; case 2
.short _021DC862 - _021DC800 - 2 ; case 3
_021DC808:
str r0, [sp]
ldr r0, [sp, #0x24]
ldr r2, [sp, #0x1c]
str r0, [sp, #4]
mov r0, #4
str r0, [sp, #8]
ldr r0, [sp, #0x44]
ldr r3, [sp, #0x20]
str r0, [sp, #0xc]
add r0, r7, #0
add r1, r5, #0
bl FUN_0200923C
str r0, [sp, #0x14]
b _021DC87A
_021DC826:
str r0, [sp]
ldr r0, [sp, #0x24]
ldr r2, [sp, #0x1c]
str r0, [sp, #4]
ldr r0, [sp, #0x28]
ldr r3, [sp, #0x20]
str r0, [sp, #8]
mov r0, #4
str r0, [sp, #0xc]
ldr r0, [sp, #0x44]
add r1, r5, #0
str r0, [sp, #0x10]
add r0, r7, #0
bl FUN_020092F8
str r0, [sp, #0x14]
b _021DC87A
_021DC848:
str r0, [sp]
mov r0, #2
str r0, [sp, #4]
mov r0, #4
str r0, [sp, #8]
ldr r2, [sp, #0x1c]
ldr r3, [sp, #0x20]
add r0, r7, #0
add r1, r5, #0
bl FUN_02009358
str r0, [sp, #0x14]
b _021DC87A
_021DC862:
str r0, [sp]
mov r0, #3
str r0, [sp, #4]
mov r0, #4
str r0, [sp, #8]
ldr r2, [sp, #0x1c]
ldr r3, [sp, #0x20]
add r0, r7, #0
add r1, r5, #0
bl FUN_02009358
str r0, [sp, #0x14]
_021DC87A:
ldr r0, [sp, #0x14]
add sp, #0x2c
pop {r4, r5, r6, r7, pc}
thumb_func_start MOD05_021DC880
MOD05_021DC880: ; 0x021DC880
push {r4, r5, r6, lr}
add r5, r0, #0
mov r0, #0
mvn r0, r0
add r4, r2, #0
cmp r1, r0
beq _021DC8BA
ldr r0, [r4]
cmp r0, #0
beq _021DC898
bl FUN_02009C0C
_021DC898:
ldr r0, [r4, #4]
cmp r0, #0
beq _021DC8A2
bl FUN_02009E04
_021DC8A2:
mov r6, #0
_021DC8A4:
ldr r1, [r4]
cmp r1, #0
beq _021DC8B0
ldr r0, [r5, #8]
bl FUN_02009490
_021DC8B0:
add r6, r6, #1
add r4, r4, #4
add r5, r5, #4
cmp r6, #4
blt _021DC8A4
_021DC8BA:
pop {r4, r5, r6, pc}
thumb_func_start MOD05_021DC8BC
MOD05_021DC8BC: ; 0x021DC8BC
push {r3, r4, r5, lr}
add r5, r0, #0
mov r2, #0x24
ldr r3, [r5]
mul r2, r1
add r4, r3, r2
ldr r1, [r4, #0xc]
cmp r1, #0
bne _021DC906
add r1, r4, #0
bl MOD05_021DCD04
cmp r0, #0
bne _021DC8DC
mov r0, #0
pop {r3, r4, r5, pc}
_021DC8DC:
add r0, r5, #0
add r1, r4, #0
bl MOD05_021DCBFC
cmp r0, #0
bne _021DC8F4
ldr r0, [r4, #0xc]
bl FreeToHeap
mov r0, #0
str r0, [r4, #0xc]
pop {r3, r4, r5, pc}
_021DC8F4:
ldr r1, [r4, #0x10]
ldr r0, [r4, #0xc]
str r1, [r0, #8]
ldr r1, [r4, #4]
add r0, r5, #0
bl MOD05_021DCBE0
mov r0, #2
str r0, [r4, #0x14]
_021DC906:
mov r0, #1
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021DC90C
MOD05_021DC90C: ; 0x021DC90C
push {r4, lr}
mov r2, #0x24
ldr r3, [r0]
mul r2, r1
add r4, r3, r2
ldr r1, [r4, #0xc]
cmp r1, #0
beq _021DC920
mov r0, #1
pop {r4, pc}
_021DC920:
add r1, r4, #0
bl MOD05_021DCD04
cmp r0, #0
bne _021DC92E
mov r0, #0
pop {r4, pc}
_021DC92E:
ldr r0, _021DC944 ; =MOD05_021DCC38
add r1, r4, #0
mov r2, #1
bl FUN_0200CA44
str r0, [r4, #0x1c]
mov r0, #1
str r0, [r4, #0x14]
mov r1, #0
str r1, [r4, #0x18]
pop {r4, pc}
.balign 4, 0
_021DC944: .word MOD05_021DCC38
thumb_func_start MOD05_021DC948
MOD05_021DC948: ; 0x021DC948
push {r4, r5, r6, lr}
add r5, r2, #0
add r6, r3, #0
ldr r3, [r0]
mov r0, #0x24
add r2, r1, #0
mul r2, r0
ldr r1, [r3, r2]
sub r0, #0x25
add r4, r3, r2
cmp r1, r0
beq _021DC96A
ldr r0, [r4, #0x10]
cmp r0, #0
bne _021DC96A
mov r0, #0
pop {r4, r5, r6, pc}
_021DC96A:
ldr r1, [r4, #0xc]
cmp r1, #0
bne _021DC974
mov r0, #0
pop {r4, r5, r6, pc}
_021DC974:
ldr r0, [r4, #0x14]
cmp r0, #2
beq _021DC97E
mov r0, #0
pop {r4, r5, r6, pc}
_021DC97E:
ldr r0, [r4, #0x20]
mov r2, #4
bl FUN_0200CA44
ldr r1, [r4, #0xc]
ldr r3, _021DCA34 ; =0x00000F48
str r0, [r1, r3]
ldr r0, [r4, #0xc]
ldr r0, [r0, r3]
cmp r0, #0
bne _021DC998
mov r0, #0
pop {r4, r5, r6, pc}
_021DC998:
mov r0, #3
str r0, [r4, #0x14]
add r0, r3, #0
ldr r1, [r4, #0xc]
add r0, #0x1a
strh r5, [r1, r0]
add r0, r3, #0
ldr r1, [r4, #0xc]
mov r2, #0
add r0, #0x1e
strh r2, [r1, r0]
ldr r1, [r4, #0xc]
add r0, r1, #0
add r0, #0xc
str r0, [r1, #0x40]
ldr r1, [r4, #0xc]
add r0, r1, #0
add r0, #0xc
str r0, [r1, #0x44]
add r0, r3, #0
ldr r1, [r4, #0xc]
add r0, #0x1c
strh r6, [r1, r0]
add r0, r3, #0
ldr r1, [r4, #0xc]
add r0, #0x14
str r2, [r1, r0]
ldr r1, [r4, #0xc]
add r0, r3, #4
ldr r6, _021DCA38 ; =UNK_021CEF70
add r5, r1, r0
ldmia r6!, {r0, r1}
stmia r5!, {r0, r1}
ldr r0, [r6]
str r0, [r5]
ldr r1, [r4, #8]
cmp r1, #0
ble _021DC9FE
mov r0, #4
bl AllocFromHeap
ldr r2, [r4, #0xc]
ldr r1, _021DCA3C ; =0x00000F58
str r0, [r2, r1]
ldr r0, [r4, #0xc]
ldr r2, [r4, #8]
ldr r0, [r0, r1]
mov r1, #0
bl memset
b _021DCA04
_021DC9FE:
ldr r0, [r4, #0xc]
add r3, #0x10
str r2, [r0, r3]
_021DCA04:
mov r0, #0
ldr r1, [r4, #4]
mvn r0, r0
cmp r1, r0
beq _021DCA30
mov r0, #4
mov r1, #0
bl FUN_0201E6E4
ldr r2, _021DCA40 ; =0x0400000C
mov r1, #3
ldrh r3, [r2]
mov r0, #1
bic r3, r1
orr r0, r3
strh r0, [r2]
sub r2, r2, #4
ldrh r3, [r2]
mov r0, #2
bic r3, r1
orr r0, r3
strh r0, [r2]
_021DCA30:
mov r0, #1
pop {r4, r5, r6, pc}
.balign 4, 0
_021DCA34: .word 0x00000F48
_021DCA38: .word UNK_021CEF70
_021DCA3C: .word 0x00000F58
_021DCA40: .word 0x0400000C
thumb_func_start MOD05_021DCA44
MOD05_021DCA44: ; 0x021DCA44
push {r3, r4}
ldr r3, [r0]
mov r0, #0x24
mul r0, r1
add r4, r3, r0
ldr r0, [r4, #0x14]
cmp r0, #3
bne _021DCA62
ldr r1, [r4, #0xc]
ldr r0, _021DCA68 ; =0x00000F66
mov r3, #5
strh r3, [r1, r0]
ldr r1, [r4, #0xc]
sub r0, r0, #2
strh r2, [r1, r0]
_021DCA62:
pop {r3, r4}
bx lr
nop
_021DCA68: .word 0x00000F66
thumb_func_start MOD05_021DCA6C
MOD05_021DCA6C: ; 0x021DCA6C
push {r4, lr}
mov r2, #0x24
ldr r3, [r0]
mul r2, r1
add r4, r3, r2
bl MOD05_021DC6C0
cmp r0, #3
bne _021DCA8E
ldr r1, [r4, #0xc]
ldr r0, _021DCA90 ; =0x00000F62
mov r2, #5
strh r2, [r1, r0]
ldr r1, [r4, #0xc]
ldr r2, [r4, #0x20]
mov r0, #0
blx r2
_021DCA8E:
pop {r4, pc}
.balign 4, 0
_021DCA90: .word 0x00000F62
thumb_func_start MOD05_021DCA94
MOD05_021DCA94: ; 0x021DCA94
push {r4, r5, r6, lr}
add r5, r0, #0
ldr r3, [r5]
mov r0, #0x24
add r2, r1, #0
mul r2, r0
add r4, r3, r2
ldr r1, [r4, #4]
sub r0, #0x25
cmp r1, r0
beq _021DCAD2
mov r0, #4
mov r1, #0
bl FUN_0201E6E4
ldr r0, _021DCB5C ; =0x0400000C
mov r2, #3
ldrh r3, [r0]
mov r1, #3
bic r3, r2
orr r1, r3
strh r1, [r0]
sub r3, r0, #4
ldrh r6, [r3]
mov r1, #1
add r0, #0x44
bic r6, r2
orr r1, r6
strh r1, [r3]
mov r1, #0
strh r1, [r0]
_021DCAD2:
ldr r2, [r4, #0x10]
cmp r2, #0
beq _021DCAFA
ldr r1, [r4]
add r0, r5, #0
bl MOD05_021DC880
ldr r1, [r4, #0x10]
mov r0, #4
bl FUN_02016A8C
mov r0, #0
str r0, [r4, #0x10]
ldr r0, [r4, #0x1c]
cmp r0, #0
beq _021DCAFA
bl FUN_0200CAB4
mov r0, #0
str r0, [r4, #0x1c]
_021DCAFA:
ldr r0, [r4, #0xc]
cmp r0, #0
beq _021DCB58
add r0, #0xc
bl MOD05_021DD130
ldr r0, [r4, #0xc]
ldr r1, _021DCB60 ; =0x00000F5C
ldr r1, [r0, r1]
cmp r1, #1
bne _021DCB14
bl MOD05_021E0FD0
_021DCB14:
ldr r1, [r4, #0xc]
ldr r0, _021DCB64 ; =0x00000F58
ldr r1, [r1, r0]
cmp r1, #0
beq _021DCB2C
mov r0, #4
bl FUN_02016A8C
ldr r1, [r4, #0xc]
ldr r0, _021DCB64 ; =0x00000F58
mov r2, #0
str r2, [r1, r0]
_021DCB2C:
ldr r0, [r4, #0x14]
cmp r0, #1
bne _021DCB3E
ldr r0, [r4, #0x1c]
cmp r0, #0
beq _021DCB4C
bl FUN_0200CAB4
b _021DCB4C
_021DCB3E:
cmp r0, #3
bne _021DCB4C
ldr r1, [r4, #0xc]
ldr r0, _021DCB68 ; =0x00000F48
ldr r0, [r1, r0]
bl FUN_0200CAB4
_021DCB4C:
ldr r1, [r4, #0xc]
mov r0, #4
bl FUN_02016A8C
mov r0, #0
str r0, [r4, #0xc]
_021DCB58:
pop {r4, r5, r6, pc}
nop
_021DCB5C: .word 0x0400000C
_021DCB60: .word 0x00000F5C
_021DCB64: .word 0x00000F58
_021DCB68: .word 0x00000F48
thumb_func_start MOD05_021DCB6C
MOD05_021DCB6C: ; 0x021DCB6C
push {r3, r4, r5, lr}
add r4, r0, #0
mov r0, #0
ldr r1, [r4, #4]
mvn r0, r0
cmp r1, r0
beq _021DCBA2
mov r0, #4
mov r1, #0
bl FUN_0201E6E4
ldr r0, _021DCBD4 ; =0x0400000C
mov r2, #3
ldrh r3, [r0]
mov r1, #3
bic r3, r2
orr r1, r3
strh r1, [r0]
sub r3, r0, #4
ldrh r5, [r3]
mov r1, #1
add r0, #0x44
bic r5, r2
orr r1, r5
strh r1, [r3]
mov r1, #0
strh r1, [r0]
_021DCBA2:
ldr r0, [r4, #0xc]
cmp r0, #0
beq _021DCBD0
add r0, #0xc
bl MOD05_021DD130
ldr r0, [r4, #0xc]
ldr r1, _021DCBD8 ; =0x00000F5C
ldr r1, [r0, r1]
cmp r1, #1
bne _021DCBBC
bl MOD05_021E0FD0
_021DCBBC:
ldr r0, [r4, #0x14]
cmp r0, #3
bne _021DCBD0
ldr r1, [r4, #0xc]
ldr r0, _021DCBDC ; =0x00000F48
ldr r0, [r1, r0]
bl FUN_0200CAB4
mov r0, #2
str r0, [r4, #0x14]
_021DCBD0:
pop {r3, r4, r5, pc}
nop
_021DCBD4: .word 0x0400000C
_021DCBD8: .word 0x00000F5C
_021DCBDC: .word 0x00000F48
thumb_func_start MOD05_021DCBE0
MOD05_021DCBE0: ; 0x021DCBE0
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
bl MOD05_021DCECC
add r0, r5, #0
add r1, r4, #0
bl MOD05_021DCF14
add r0, r5, #0
add r1, r4, #0
bl MOD05_021DCF68
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021DCBFC
MOD05_021DCBFC: ; 0x021DCBFC
push {r3, r4, r5, lr}
add r4, r1, #0
add r5, r0, #0
mov r0, #0
ldr r1, [r4]
mvn r0, r0
cmp r1, r0
beq _021DCC32
ldr r0, [r4, #0x10]
cmp r0, #0
bne _021DCC32
add r0, r4, #0
bl MOD05_021DCD68
cmp r0, #0
bne _021DCC20
mov r0, #0
pop {r3, r4, r5, pc}
_021DCC20:
ldr r1, [r4]
ldr r2, [r4, #0x10]
add r0, r5, #0
bl MOD05_021DC784
add r0, r5, #0
add r1, r4, #0
bl MOD05_021DCE74
_021DCC32:
mov r0, #1
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021DCC38
MOD05_021DCC38: ; 0x021DCC38
push {r3, r4, r5, lr}
add r4, r1, #0
add r5, r0, #0
ldr r0, [r4, #0xc]
ldr r2, [r4, #0x18]
ldr r0, [r0]
cmp r2, #8
bhi _021DCD00
add r2, r2, r2
add r2, pc
ldrh r2, [r2, #6]
lsl r2, r2, #0x10
asr r2, r2, #0x10
add pc, r2
_021DCC54: ; jump table
.short _021DCC66 - _021DCC54 - 2 ; case 0
.short _021DCC7C - _021DCC54 - 2 ; case 1
.short _021DCC8C - _021DCC54 - 2 ; case 2
.short _021DCC9A - _021DCC54 - 2 ; case 3
.short _021DCCAA - _021DCC54 - 2 ; case 4
.short _021DCCB8 - _021DCC54 - 2 ; case 5
.short _021DCCC8 - _021DCC54 - 2 ; case 6
.short _021DCCD6 - _021DCC54 - 2 ; case 7
.short _021DCCE6 - _021DCC54 - 2 ; case 8
_021DCC66:
add r0, r4, #0
bl MOD05_021DCD68
cmp r0, #0
bne _021DCC74
bl ErrorHandling
_021DCC74:
ldr r0, [r4, #0x18]
add r0, r0, #1
str r0, [r4, #0x18]
pop {r3, r4, r5, pc}
_021DCC7C:
ldr r1, [r4]
ldr r2, [r4, #0x10]
bl MOD05_021DCDA0
ldr r0, [r4, #0x18]
add r0, r0, #1
str r0, [r4, #0x18]
pop {r3, r4, r5, pc}
_021DCC8C:
ldr r1, [r4, #4]
bl MOD05_021DCECC
ldr r0, [r4, #0x18]
add r0, r0, #1
str r0, [r4, #0x18]
pop {r3, r4, r5, pc}
_021DCC9A:
ldr r1, [r4]
ldr r2, [r4, #0x10]
bl MOD05_021DCDD0
ldr r0, [r4, #0x18]
add r0, r0, #1
str r0, [r4, #0x18]
pop {r3, r4, r5, pc}
_021DCCAA:
ldr r1, [r4, #4]
bl MOD05_021DCF14
ldr r0, [r4, #0x18]
add r0, r0, #1
str r0, [r4, #0x18]
pop {r3, r4, r5, pc}
_021DCCB8:
ldr r1, [r4]
ldr r2, [r4, #0x10]
bl MOD05_021DCE00
ldr r0, [r4, #0x18]
add r0, r0, #1
str r0, [r4, #0x18]
pop {r3, r4, r5, pc}
_021DCCC8:
ldr r1, [r4, #4]
bl MOD05_021DCF68
ldr r0, [r4, #0x18]
add r0, r0, #1
str r0, [r4, #0x18]
pop {r3, r4, r5, pc}
_021DCCD6:
ldr r1, [r4]
ldr r2, [r4, #0x10]
bl MOD05_021DCE3C
ldr r0, [r4, #0x18]
add r0, r0, #1
str r0, [r4, #0x18]
pop {r3, r4, r5, pc}
_021DCCE6:
bl MOD05_021DCE74
ldr r1, [r4, #0x10]
ldr r0, [r4, #0xc]
str r1, [r0, #8]
mov r0, #2
str r0, [r4, #0x14]
mov r0, #0
str r0, [r4, #0x18]
str r0, [r4, #0x1c]
add r0, r5, #0
bl FUN_0200CAB4
_021DCD00:
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021DCD04
MOD05_021DCD04: ; 0x021DCD04
push {r3, r4, r5, lr}
add r4, r1, #0
add r5, r0, #0
ldr r0, [r4, #0xc]
cmp r0, #0
beq _021DCD14
mov r0, #1
pop {r3, r4, r5, pc}
_021DCD14:
ldr r1, _021DCD60 ; =0x00000F68
mov r0, #4
bl AllocFromHeap
str r0, [r4, #0xc]
cmp r0, #0
bne _021DCD26
mov r0, #0
pop {r3, r4, r5, pc}
_021DCD26:
ldr r2, _021DCD60 ; =0x00000F68
mov r1, #0
bl memset
ldr r0, [r4, #0xc]
ldr r2, _021DCD64 ; =0x00000F62
str r5, [r0]
ldr r1, [r4, #0xc]
mov r0, #0
strh r0, [r1, r2]
add r1, r2, #4
ldr r3, [r4, #0xc]
sub r2, #0xa
strh r0, [r3, r1]
ldr r3, [r4, #0xc]
add r1, r3, #0
add r1, #0xc
str r1, [r3, #0x40]
ldr r3, [r4, #0xc]
add r1, r3, #0
add r1, #0xc
str r1, [r3, #0x44]
ldr r1, [r4, #0xc]
str r0, [r1, r2]
ldr r0, [r4, #0xc]
str r4, [r0, #4]
mov r0, #1
pop {r3, r4, r5, pc}
nop
_021DCD60: .word 0x00000F68
_021DCD64: .word 0x00000F62
thumb_func_start MOD05_021DCD68
MOD05_021DCD68: ; 0x021DCD68
push {r4, lr}
add r4, r0, #0
mov r0, #0
ldr r1, [r4]
mvn r0, r0
cmp r1, r0
beq _021DCD9A
ldr r0, [r4, #0x10]
cmp r0, #0
beq _021DCD80
mov r0, #1
pop {r4, pc}
_021DCD80:
mov r0, #4
mov r1, #0x64
bl AllocFromHeap
str r0, [r4, #0x10]
cmp r0, #0
bne _021DCD92
mov r0, #0
pop {r4, pc}
_021DCD92:
mov r1, #0
mov r2, #0x64
bl memset
_021DCD9A:
mov r0, #1
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021DCDA0
MOD05_021DCDA0: ; 0x021DCDA0
push {r3, r4, r5, lr}
sub sp, #8
add r5, r0, #0
mov r0, #0
add r3, r1, #0
mvn r0, r0
add r4, r2, #0
cmp r3, r0
beq _021DCDCC
mov r0, #0x42
lsl r0, r0, #2
ldr r0, [r5, r0]
add r2, r3, #0
str r0, [sp]
mov r0, #0
str r0, [sp, #4]
ldr r0, [r5, #0x18]
ldr r3, [r5, #0x10]
mov r1, #2
bl MOD05_021DC7B0
str r0, [r4, #8]
_021DCDCC:
add sp, #8
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021DCDD0
MOD05_021DCDD0: ; 0x021DCDD0
push {r3, r4, r5, lr}
sub sp, #8
add r5, r0, #0
mov r0, #0
add r3, r1, #0
mvn r0, r0
add r4, r2, #0
cmp r3, r0
beq _021DCDFC
mov r0, #0x42
lsl r0, r0, #2
ldr r0, [r5, r0]
add r2, r3, #0
str r0, [sp]
mov r0, #0
str r0, [sp, #4]
ldr r0, [r5, #0x18]
ldr r3, [r5, #0x14]
mov r1, #3
bl MOD05_021DC7B0
str r0, [r4, #0xc]
_021DCDFC:
add sp, #8
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021DCE00
MOD05_021DCE00: ; 0x021DCE00
push {r3, r4, r5, lr}
sub sp, #8
add r5, r0, #0
mov r0, #0
add r3, r1, #0
mvn r0, r0
add r4, r2, #0
cmp r3, r0
beq _021DCE36
mov r0, #0x42
lsl r0, r0, #2
ldr r0, [r5, r0]
add r2, r3, #0
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
ldr r0, [r5, #0x18]
ldr r3, [r5, #8]
mov r1, #0
bl MOD05_021DC7B0
str r0, [r4]
bl FUN_02009B04
ldr r0, [r4]
bl FUN_02009474
_021DCE36:
add sp, #8
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021DCE3C
MOD05_021DCE3C: ; 0x021DCE3C
push {r3, r4, r5, lr}
sub sp, #8
add r5, r0, #0
mov r0, #0
add r3, r1, #0
mvn r0, r0
add r4, r2, #0
cmp r3, r0
beq _021DCE70
mov r0, #0x42
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #1
str r0, [sp]
str r1, [sp, #4]
add r2, r3, #0
ldr r0, [r5, #0x18]
ldr r3, [r5, #0xc]
bl MOD05_021DC7B0
str r0, [r4, #4]
bl FUN_02009D68
ldr r0, [r4, #4]
bl FUN_02009474
_021DCE70:
add sp, #8
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021DCE74
MOD05_021DCE74: ; 0x021DCE74
push {r3, r4, r5, lr}
add r4, r1, #0
add r5, r0, #0
mov r0, #0
ldr r1, [r4]
mvn r0, r0
cmp r1, r0
beq _021DCEC8
ldr r2, [r4, #0x10]
mov r0, #1
str r0, [sp]
add r0, r2, #0
add r0, #0x40
add r1, r5, #0
mov r3, #0
bl MOD05_021DD0A4
ldr r0, [r4, #0x10]
mov r1, #0
add r0, #0x10
mov r2, #0x30
bl memset
add r5, #0xfc
ldr r1, [r5]
ldr r0, [r4, #0x10]
str r1, [r0, #0x10]
ldr r1, [r4, #0x10]
add r0, r1, #0
add r0, #0x40
str r0, [r1, #0x14]
mov r1, #1
ldr r0, [r4, #0x10]
lsl r1, r1, #0xc
str r1, [r0, #0x24]
ldr r0, [r4, #0x10]
str r1, [r0, #0x28]
ldr r0, [r4, #0x10]
str r1, [r0, #0x2c]
ldr r0, [r4, #0x10]
mov r1, #1
str r1, [r0, #0x38]
_021DCEC8:
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021DCECC
MOD05_021DCECC: ; 0x021DCECC
push {r3, lr}
sub sp, #0x18
add r2, r0, #0
mov r0, #0
mvn r0, r0
cmp r1, r0
beq _021DCF0E
mov r0, #0x42
lsl r0, r0, #2
ldr r0, [r2, r0]
ldr r3, [r2, #4]
mov r2, #0xc
mul r2, r1
ldr r1, [r3, r2]
mov r2, #4
bl NARC_AllocAndReadWholeMember
add r1, sp, #0x14
str r0, [sp]
bl FUN_020B0138
ldr r1, [sp, #0x14]
mov r0, #2
ldr r1, [r1, #0xc]
mov r2, #0x20
mov r3, #0xc0
bl FUN_02017FB4
ldr r0, [sp]
bl FreeToHeap
mov r0, #0
str r0, [sp]
_021DCF0E:
add sp, #0x18
pop {r3, pc}
.balign 4, 0
thumb_func_start MOD05_021DCF14
MOD05_021DCF14: ; 0x021DCF14
push {r3, r4, lr}
sub sp, #0x1c
add r4, r0, #0
mov r0, #0
mvn r0, r0
cmp r1, r0
beq _021DCF62
mov r2, #0xc
mov r0, #0x42
lsl r0, r0, #2
ldr r3, [r4, #4]
mul r2, r1
add r1, r3, r2
ldr r0, [r4, r0]
ldr r1, [r1, #4]
mov r2, #4
bl NARC_AllocAndReadWholeMember
add r1, sp, #0x14
str r0, [sp, #8]
bl FUN_020B0088
ldr r3, [sp, #0x14]
mov r0, #0
str r0, [sp]
mov r0, #0x41
lsl r0, r0, #2
ldr r0, [r4, r0]
ldr r2, [r3, #0x14]
ldr r0, [r0, #8]
ldr r3, [r3, #0x10]
mov r1, #2
bl FUN_02017E14
ldr r0, [sp, #8]
bl FreeToHeap
mov r0, #0
str r0, [sp, #8]
_021DCF62:
add sp, #0x1c
pop {r3, r4, pc}
.balign 4, 0
thumb_func_start MOD05_021DCF68
MOD05_021DCF68: ; 0x021DCF68
push {r4, r5, lr}
sub sp, #0x24
add r4, r0, #0
mov r0, #0
add r5, r1, #0
mvn r0, r0
cmp r5, r0
beq _021DD00A
mov r0, #4
mov r1, #0
bl FUN_0201E6E4
mov r1, #0xc
mov r0, #0x42
lsl r0, r0, #2
ldr r2, [r4, #4]
mul r1, r5
add r1, r2, r1
ldr r0, [r4, r0]
ldr r1, [r1, #8]
mov r2, #4
bl NARC_AllocAndReadWholeMember
str r0, [sp, #0x14]
cmp r0, #0
bne _021DCFA0
bl ErrorHandling
_021DCFA0:
ldr r0, [sp, #0x14]
add r1, sp, #0x18
bl FUN_020B0180
ldr r3, [sp, #0x18]
mov r0, #0
str r0, [sp]
add r2, r3, #0
mov r0, #0x41
lsl r0, r0, #2
ldr r0, [r4, r0]
ldr r3, [r3, #8]
ldr r0, [r0, #8]
mov r1, #2
add r2, #0xc
bl FUN_02017CE8
mov r0, #0x41
lsl r0, r0, #2
ldr r3, [sp, #0x18]
ldr r0, [r4, r0]
add r2, r3, #0
ldr r0, [r0, #8]
ldr r3, [r3, #8]
mov r1, #2
add r2, #0xc
bl FUN_02017DFC
mov r0, #0x20
str r0, [sp]
str r0, [sp, #4]
mov r0, #6
str r0, [sp, #8]
add r0, #0xfe
ldr r0, [r4, r0]
mov r2, #0
ldr r0, [r0, #8]
mov r1, #2
add r3, r2, #0
bl FUN_020186B4
mov r0, #0x41
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #2
ldr r0, [r0, #8]
bl FUN_02017CD0
ldr r0, [sp, #0x14]
bl FreeToHeap
mov r0, #0
str r0, [sp, #0x14]
_021DD00A:
add sp, #0x24
pop {r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021DD010
MOD05_021DD010: ; 0x021DD010
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r0, [r5, #8]
add r4, r1, #0
cmp r0, #0
beq _021DD020
bl ErrorHandling
_021DD020:
cmp r4, #0
bgt _021DD028
bl ErrorHandling
_021DD028:
cmp r4, #0x28
bls _021DD030
bl ErrorHandling
_021DD030:
add r0, r5, #0
add r0, #0xc
str r0, [r5, #8]
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021DD038
MOD05_021DD038: ; 0x021DD038
ldr r3, _021DD044 ; =memset
mov r1, #0
str r1, [r0, #8]
add r0, #0xc
mov r2, #0x28
bx r3
.balign 4, 0
_021DD044: .word memset
thumb_func_start MOD05_021DD048
MOD05_021DD048: ; 0x021DD048
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r7, r1, #0
ldr r6, [r5]
bl MOD05_021DD6FC
add r4, r0, #0
bne _021DD05C
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
_021DD05C:
add r0, r5, #0
str r6, [r4]
add r0, #0xc
str r0, [r4, #0x34]
ldr r0, [r5, #0x44]
str r0, [r4, #0x38]
ldr r0, [r5, #0x44]
str r4, [r0, #0x34]
str r4, [r5, #0x44]
ldr r0, [r5, #8]
add r0, #0x10
bl FUN_0201FE94
str r0, [r4, #4]
cmp r0, #0
bne _021DD086
add r0, r4, #0
bl MOD05_021DD100
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
_021DD086:
add r0, r4, #0
add r1, r7, #0
bl MOD05_021DD010
ldr r0, [r4, #8]
cmp r0, #0
bne _021DD09E
add r0, r4, #0
bl MOD05_021DD100
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
_021DD09E:
add r0, r4, #0
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021DD0A4
MOD05_021DD0A4: ; 0x021DD0A4
push {r4, r5, r6, r7, lr}
sub sp, #0x44
str r0, [sp, #0x2c]
add r7, r1, #0
add r5, r2, #0
str r3, [sp, #0x30]
mov r6, #0
add r4, sp, #0x34
_021DD0B4:
ldr r0, [r5]
bl FUN_02009530
add r6, r6, #1
add r5, r5, #4
stmia r4!, {r0}
cmp r6, #4
blt _021DD0B4
ldr r0, [sp, #0x40]
str r0, [sp]
mov r0, #0
mvn r0, r0
str r0, [sp, #4]
str r0, [sp, #8]
ldr r0, [sp, #0x30]
str r0, [sp, #0xc]
ldr r0, [sp, #0x58]
str r0, [sp, #0x10]
ldr r0, [r7, #8]
str r0, [sp, #0x14]
ldr r0, [r7, #0xc]
str r0, [sp, #0x18]
ldr r0, [r7, #0x10]
str r0, [sp, #0x1c]
ldr r0, [r7, #0x14]
str r0, [sp, #0x20]
mov r0, #0
str r0, [sp, #0x24]
str r0, [sp, #0x28]
ldr r0, [sp, #0x2c]
ldr r1, [sp, #0x34]
ldr r2, [sp, #0x38]
ldr r3, [sp, #0x3c]
bl FUN_02008AA4
add sp, #0x44
pop {r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021DD100
MOD05_021DD100: ; 0x021DD100
push {r4, lr}
add r4, r0, #0
ldr r1, [r4, #0x34]
ldr r0, [r4, #0x38]
str r1, [r0, #0x34]
ldr r1, [r4, #0x38]
ldr r0, [r4, #0x34]
str r1, [r0, #0x38]
ldr r0, [r4, #4]
cmp r0, #0
beq _021DD11E
bl FUN_0201FFC8
mov r0, #0
str r0, [r4, #4]
_021DD11E:
add r0, r4, #0
bl MOD05_021DD038
add r0, r4, #0
mov r1, #0
mov r2, #0x3c
bl memset
pop {r4, pc}
thumb_func_start MOD05_021DD130
MOD05_021DD130: ; 0x021DD130
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r0, [r5, #0x34]
cmp r0, r5
beq _021DD146
_021DD13A:
ldr r4, [r0, #0x34]
bl MOD05_021DD100
add r0, r4, #0
cmp r4, r5
bne _021DD13A
_021DD146:
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021DD148
MOD05_021DD148: ; 0x021DD148
push {r4, r5, r6, lr}
add r5, r0, #0
ldr r0, [r5, #0x34]
add r6, r1, #0
ldr r4, [r0, #0x34]
cmp r0, r5
beq _021DD160
_021DD156:
blx r6
add r0, r4, #0
ldr r4, [r4, #0x34]
cmp r0, r5
bne _021DD156
_021DD160:
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_start MOD05_021DD164
MOD05_021DD164: ; 0x021DD164
bx lr
.balign 4, 0
thumb_func_start MOD05_021DD168
MOD05_021DD168: ; 0x021DD168
push {r4, lr}
add r4, r0, #0
ldr r0, [r1, #4]
bl FUN_0202011C
add r2, r0, #0
ldmia r2!, {r0, r1}
stmia r4!, {r0, r1}
ldr r0, [r2]
str r0, [r4]
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021DD180
MOD05_021DD180: ; 0x021DD180
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x20
str r0, [sp, #4]
str r1, [sp, #8]
mov r0, #1
mov r1, #3
add r5, r2, #0
lsl r0, r0, #0xe
lsl r1, r1, #0xc
bl FX_Div
add r4, r0, #0
mov r0, #0x41
ldr r1, [r5]
lsl r0, r0, #2
ldr r0, [r1, r0]
ldr r0, [r0, #0x20]
bl FUN_0201F008
add r6, r0, #0
mov r0, #0x41
ldr r1, [r5]
lsl r0, r0, #2
ldr r0, [r1, r0]
ldr r0, [r0, #0x20]
bl FUN_0201F010
add r1, r0, #0
add r0, sp, #0xc
str r0, [sp]
add r0, r6, #0
add r2, r4, #0
add r3, sp, #0x10
bl FUN_0201CB7C
mov r1, #1
ldr r0, [sp, #0x10]
lsl r1, r1, #0x14
bl FX_Div
str r0, [sp, #0x10]
mov r1, #3
ldr r0, [sp, #0xc]
lsl r1, r1, #0x12
bl FX_Div
ldr r3, _021DD2B0 ; =UNK_021CEF70
str r0, [sp, #0xc]
ldmia r3!, {r0, r1}
add r2, sp, #0x14
stmia r2!, {r0, r1}
ldr r0, [r3]
ldr r4, _021DD2B4 ; =0x00000F4C
str r0, [r2]
ldr r1, [sp, #0x14]
ldr r0, [r5, r4]
ldr r2, [sp, #0x1c]
sub r0, r1, r0
add r1, r4, #0
add r1, #8
ldr r1, [r5, r1]
add r4, #0xb4
sub r7, r2, r1
cmp r0, #0
bge _021DD21E
ldr r4, _021DD2B8 ; =0xFFFFF000
asr r1, r0, #0x1f
asr r3, r4, #0xc
add r2, r4, #0
bl _ll_mul
mov r2, #2
mov r3, #0
lsl r2, r2, #0xa
add r0, r0, r2
adc r1, r3
lsl r1, r1, #0x14
lsr r0, r0, #0xc
orr r0, r1
_021DD21E:
ldr r1, [sp, #0x10]
bl FX_Div
add r6, r0, #0
cmp r4, #0
bge _021DD244
asr r1, r6, #0x1f
asr r3, r4, #0x1f
add r2, r4, #0
bl _ll_mul
mov r2, #2
mov r3, #0
lsl r2, r2, #0xa
add r2, r0, r2
adc r1, r3
lsl r0, r1, #0x14
lsr r6, r2, #0xc
orr r6, r0
_021DD244:
mov r4, #1
lsl r4, r4, #0xc
cmp r7, #0
bge _021DD26A
ldr r4, _021DD2B8 ; =0xFFFFF000
asr r1, r7, #0x1f
add r0, r7, #0
asr r3, r4, #0xc
add r2, r4, #0
bl _ll_mul
mov r2, #2
mov r3, #0
lsl r2, r2, #0xa
add r2, r0, r2
adc r1, r3
lsl r0, r1, #0x14
lsr r7, r2, #0xc
orr r7, r0
_021DD26A:
ldr r1, [sp, #0xc]
add r0, r7, #0
bl FX_Div
add r3, r0, #0
cmp r4, #0
bge _021DD292
asr r1, r3, #0x1f
asr r3, r4, #0x1f
add r2, r4, #0
bl _ll_mul
mov r2, #2
mov r3, #0
lsl r2, r2, #0xa
add r2, r0, r2
adc r1, r3
lsl r0, r1, #0x14
lsr r3, r2, #0xc
orr r3, r0
_021DD292:
add r0, r6, r3
beq _021DD2A4
ldr r0, _021DD2B4 ; =0x00000F4C
add r2, sp, #0x14
add r4, r5, r0
ldmia r2!, {r0, r1}
stmia r4!, {r0, r1}
ldr r0, [r2]
str r0, [r4]
_021DD2A4:
ldr r0, [sp, #4]
str r6, [r0]
ldr r0, [sp, #8]
str r3, [r0]
add sp, #0x20
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_021DD2B0: .word UNK_021CEF70
_021DD2B4: .word 0x00000F4C
_021DD2B8: .word 0xFFFFF000
thumb_func_start MOD05_021DD2BC
MOD05_021DD2BC: ; 0x021DD2BC
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x18
add r5, r0, #0
add r7, r1, #0
str r2, [sp]
add r0, sp, #8
add r1, sp, #4
add r2, r5, #0
bl MOD05_021DD180
ldr r4, [r5, #0x40]
add r5, #0xc
cmp r4, r5
beq _021DD300
add r6, sp, #0xc
_021DD2DA:
add r0, r6, #0
add r1, r4, #0
bl MOD05_021DD168
ldr r1, [sp, #0xc]
ldr r0, [sp, #8]
sub r0, r1, r0
str r0, [sp, #0xc]
ldr r1, [sp, #0x10]
ldr r0, [sp, #4]
sub r0, r1, r0
str r0, [sp, #0x10]
ldr r0, [r4, #4]
add r1, r6, #0
bl MOD05_021DC4FC
ldr r4, [r4, #0x34]
cmp r4, r5
bne _021DD2DA
_021DD300:
cmp r7, #0
beq _021DD310
ldr r0, [sp, #8]
asr r0, r0, #0xc
str r0, [r7]
bpl _021DD310
add r0, r0, #1
str r0, [r7]
_021DD310:
ldr r0, [sp]
cmp r0, #0
beq _021DD324
ldr r0, [sp, #4]
asr r1, r0, #0xc
ldr r0, [sp]
str r1, [r0]
bpl _021DD324
add r1, r1, #1
str r1, [r0]
_021DD324:
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD05_021DD328
MOD05_021DD328: ; 0x021DD328
str r1, [r0]
strh r2, [r0, #4]
mov r1, #0
strh r1, [r0, #6]
strh r3, [r0, #8]
strh r1, [r0, #0xa]
ldr r1, [sp]
strh r1, [r0, #0xc]
ldr r1, [sp, #4]
strh r1, [r0, #0xe]
ldr r1, [sp, #8]
strh r1, [r0, #0x10]
ldr r1, [sp, #0xc]
strh r1, [r0, #0x12]
ldr r1, [sp, #0x10]
str r1, [r0, #0x14]
ldr r1, [sp, #0x14]
str r1, [r0, #0x18]
bx lr
.balign 4, 0
thumb_func_start MOD05_021DD350
MOD05_021DD350: ; 0x021DD350
strh r1, [r0, #0xc]
strh r2, [r0, #0xe]
ldr r1, [sp]
strh r3, [r0, #0x10]
str r1, [r0, #0x14]
bx lr
thumb_func_start MOD05_021DD35C
MOD05_021DD35C: ; 0x021DD35C
push {r3, r4, r5, lr}
add r5, r0, #0
mov r0, #0x10
ldrsh r0, [r5, r0]
mov r4, #0
cmp r0, #0
bne _021DD370
mov r0, #1
orr r4, r0
b _021DD396
_021DD370:
bgt _021DD376
mov r2, #1
b _021DD378
_021DD376:
add r2, r4, #0
_021DD378:
mov r0, #0xe
ldrsh r1, [r5, r0]
mov r0, #8
ldrsh r0, [r5, r0]
cmp r0, r1
blt _021DD388
cmp r2, #0
beq _021DD390
_021DD388:
cmp r0, r1
bgt _021DD396
cmp r2, #1
bne _021DD396
_021DD390:
mov r0, #1
orr r4, r0
strh r1, [r5, #8]
_021DD396:
ldr r0, [r5, #0x14]
cmp r0, #0
bne _021DD3A2
mov r0, #2
orr r4, r0
b _021DD3C8
_021DD3A2:
bgt _021DD3A8
mov r2, #1
b _021DD3AA
_021DD3A8:
mov r2, #0
_021DD3AA:
mov r0, #0xc
ldrsh r1, [r5, r0]
mov r0, #4
ldrsh r0, [r5, r0]
cmp r0, r1
blt _021DD3BA
cmp r2, #0
beq _021DD3C2
_021DD3BA:
cmp r0, r1
bgt _021DD3C8
cmp r2, #1
bne _021DD3C8
_021DD3C2:
mov r0, #2
orr r4, r0
strh r1, [r5, #4]
_021DD3C8:
mov r0, #6
ldrsh r1, [r5, r0]
sub r1, r1, #1
strh r1, [r5, #6]
ldrsh r0, [r5, r0]
cmp r0, #0
bgt _021DD41C
mov r1, #4
ldrsh r1, [r5, r1]
ldr r0, [r5]
ldr r2, [r5, #0x18]
blx r2
mov r0, #8
ldrsh r1, [r5, r0]
strh r1, [r5, #6]
mov r1, #1
tst r1, r4
bne _021DD3F6
ldrsh r1, [r5, r0]
mov r0, #0x10
ldrsh r0, [r5, r0]
add r0, r1, r0
strh r0, [r5, #8]
_021DD3F6:
mov r0, #2
tst r0, r4
bne _021DD41C
mov r0, #0xa
ldrsh r1, [r5, r0]
add r1, r1, #1
strh r1, [r5, #0xa]
ldrsh r1, [r5, r0]
mov r0, #0x12
ldrsh r0, [r5, r0]
cmp r1, r0
blt _021DD41C
mov r0, #0
strh r0, [r5, #0xa]
mov r0, #4
ldrsh r1, [r5, r0]
ldr r0, [r5, #0x14]
add r0, r1, r0
strh r0, [r5, #4]
_021DD41C:
add r0, r4, #0
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021DD420
MOD05_021DD420: ; 0x021DD420
push {r4, lr}
sub sp, #8
add r4, r1, #0
ldr r1, [sp, #0x1c]
str r2, [r4]
cmp r1, #0
beq _021DD470
cmp r1, #1
bne _021DD454
add r1, r3, #0
add r3, sp, #0
add r0, r2, #0
ldrh r3, [r3, #0x14]
ldr r2, [sp, #0x10]
bl MOD05_021DD49C
add r0, r4, #0
bl MOD05_021DD598
ldr r1, [sp, #0x18]
add r0, r4, #0
mov r2, #1
bl MOD05_021DD5B4
add sp, #8
pop {r4, pc}
_021DD454:
cmp r1, #2
bne _021DD470
add r1, sp, #0
ldrh r1, [r1, #0x14]
ldr r4, [sp, #0x18]
str r1, [sp]
mov r1, #0x7f
mul r1, r4
str r1, [sp, #4]
add r1, r2, #0
add r2, r3, #0
ldr r3, [sp, #0x10]
bl MOD05_021DD4C8
_021DD470:
add sp, #8
pop {r4, pc}
thumb_func_start MOD05_021DD474
MOD05_021DD474: ; 0x021DD474
push {r4, lr}
mov r4, #1
cmp r2, #0
beq _021DD498
cmp r2, #1
bne _021DD48A
add r0, r1, #0
bl MOD05_021DD5D0
add r4, r0, #0
b _021DD498
_021DD48A:
cmp r2, #2
bne _021DD498
bl MOD05_021DD54C
cmp r0, #0
bne _021DD498
mov r4, #0
_021DD498:
add r0, r4, #0
pop {r4, pc}
thumb_func_start MOD05_021DD49C
MOD05_021DD49C: ; 0x021DD49C
push {r3, r4, r5, lr}
sub sp, #8
str r1, [sp]
mov r1, #0
add r4, r3, #0
str r2, [sp, #4]
mvn r1, r1
mov r2, #1
mov r3, #0
add r5, r0, #0
bl MOD05_021DBA40
mov r1, #0
add r0, r5, #0
mvn r1, r1
add r2, r4, #0
mov r3, #0x1f
bl MOD05_021DBA78
add sp, #8
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021DD4C8
MOD05_021DD4C8: ; 0x021DD4C8
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x10
add r4, r1, #0
add r5, r0, #0
add r0, r4, #0
str r2, [sp]
str r3, [sp, #4]
ldr r6, [sp, #0x2c]
bl MOD05_021DBA34
str r0, [sp, #8]
add r0, r4, #0
bl MOD05_021DBA38
str r0, [sp, #0xc]
add r0, r4, #0
bl MOD05_021DBA3C
add r7, r0, #0
ldr r1, [sp, #0xc]
ldr r2, [sp, #4]
add r0, r5, #4
add r3, r6, #0
str r4, [r5]
bl MOD05_021DC6EC
add r0, sp, #0x18
ldrh r4, [r0, #0x10]
add r0, r5, #0
mov r2, #0x1f
add r1, r7, #0
and r1, r2
add r0, #0x18
and r2, r4
add r3, r6, #0
bl MOD05_021DC6EC
add r0, r5, #0
asr r1, r7, #5
mov r3, #0x1f
asr r2, r4, #5
add r0, #0x2c
and r1, r3
and r2, r3
add r3, r6, #0
bl MOD05_021DC6EC
add r0, r5, #0
asr r1, r7, #0xa
mov r2, #0x1f
asr r3, r4, #0xa
and r1, r2
and r2, r3
add r0, #0x40
add r3, r6, #0
bl MOD05_021DC6EC
add r5, #0x54
ldr r1, [sp, #8]
ldr r2, [sp]
add r0, r5, #0
add r3, r6, #0
bl MOD05_021DC6EC
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD05_021DD54C
MOD05_021DD54C: ; 0x021DD54C
push {r4, r5, r6, lr}
add r5, r0, #0
add r0, r5, #4
bl MOD05_021DC6FC
add r4, r0, #0
add r0, r5, #0
add r0, #0x18
bl MOD05_021DC6FC
add r0, r5, #0
add r0, #0x2c
bl MOD05_021DC6FC
add r0, r5, #0
add r0, #0x40
bl MOD05_021DC6FC
add r0, r5, #0
add r0, #0x54
bl MOD05_021DC6FC
ldr r3, [r5, #0x40]
ldr r0, [r5]
lsl r6, r3, #0xa
ldr r1, [r5, #0x54]
ldr r2, [r5, #4]
ldr r3, [r5, #0x18]
ldr r5, [r5, #0x2c]
lsl r5, r5, #5
orr r3, r5
orr r3, r6
lsl r3, r3, #0x10
lsr r3, r3, #0x10
bl MOD05_021DD49C
add r0, r4, #0
pop {r4, r5, r6, pc}
thumb_func_start MOD05_021DD598
MOD05_021DD598: ; 0x021DD598
mov r2, #0
add r3, r0, #0
add r1, r2, #0
_021DD59E:
add r0, r3, r2
add r2, r2, #1
strb r1, [r0, #4]
cmp r2, #0x20
blt _021DD59E
ldr r0, [r3]
add r1, r3, #4
ldr r3, _021DD5B0 ; =MOD05_021DBAA0
bx r3
.balign 4, 0
_021DD5B0: .word MOD05_021DBAA0
thumb_func_start MOD05_021DD5B4
MOD05_021DD5B4: ; 0x021DD5B4
mov r3, #0x7f
str r3, [r0, #0x24]
mov r3, #0
str r3, [r0, #0x28]
strh r1, [r0, #0x2c]
cmp r2, #1
bne _021DD5C8
mov r1, #1
strh r1, [r0, #0x2e]
bx lr
_021DD5C8:
sub r1, r3, #1
strh r1, [r0, #0x2e]
bx lr
.balign 4, 0
thumb_func_start MOD05_021DD5D0
MOD05_021DD5D0: ; 0x021DD5D0
push {r3, r4, r5, lr}
add r5, r0, #0
bl MOD05_021DD60C
add r4, r0, #0
ldr r0, [r5, #0x28]
cmp r0, #0
bne _021DD5E8
ldr r0, [r5]
add r1, r5, #4
bl MOD05_021DBAA0
_021DD5E8:
add r0, r4, #0
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021DD5EC
MOD05_021DD5EC: ; 0x021DD5EC
push {r4, lr}
add r4, r0, #0
mov r2, #1
str r2, [r4, #0x24]
mov r1, #0
str r1, [r4, #0x28]
strh r1, [r4, #0x2c]
strh r2, [r4, #0x2e]
bl MOD05_021DD64C
ldr r0, [r4]
add r1, r4, #4
bl MOD05_021DBAA0
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021DD60C
MOD05_021DD60C: ; 0x021DD60C
push {r3, r4, r5, lr}
add r5, r0, #0
mov r1, #0x2e
ldrsh r1, [r5, r1]
mov r4, #0
cmp r1, #0
bne _021DD61E
mov r4, #1
b _021DD648
_021DD61E:
ldr r1, [r5, #0x24]
cmp r1, #0
bgt _021DD628
mov r4, #1
b _021DD648
_021DD628:
ldr r1, [r5, #0x28]
add r2, r1, #1
str r2, [r5, #0x28]
mov r1, #0x2c
ldrsh r1, [r5, r1]
cmp r2, r1
blt _021DD648
str r4, [r5, #0x28]
bl MOD05_021DD64C
ldr r0, [r5, #0x24]
sub r0, r0, #1
str r0, [r5, #0x24]
cmp r0, #0
bgt _021DD648
mov r4, #1
_021DD648:
add r0, r4, #0
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021DD64C
MOD05_021DD64C: ; 0x021DD64C
push {r3, r4}
mov r1, #0x2e
ldrsh r1, [r0, r1]
ldr r2, [r0, #0x24]
cmp r1, #0
bge _021DD65E
mov r1, #0x7f
sub r2, r1, r2
b _021DD65E
_021DD65E:
asr r1, r2, #1
lsr r1, r1, #0x1e
add r1, r2, r1
asr r4, r1, #2
mov r3, #0x1f
cmp r4, #0x1f
bge _021DD67A
_021DD66C:
sub r1, r3, r4
lsl r2, r1, #2
add r1, r0, r3
sub r3, r3, #1
strb r2, [r1, #4]
cmp r3, r4
bgt _021DD66C
_021DD67A:
pop {r3, r4}
bx lr
.balign 4, 0
thumb_func_start MOD05_021DD680
MOD05_021DD680: ; 0x021DD680
push {r4, r5, r6, r7, lr}
sub sp, #0x14
add r4, r1, #0
ldr r1, [sp, #0x28]
str r0, [sp]
str r1, [sp, #0x28]
add r1, r2, #0
str r2, [sp, #4]
str r3, [sp, #8]
ldr r7, [sp, #0x2c]
blx r4
ldr r0, [sp]
mov r6, #0
ldr r5, [r0, #0x40]
str r6, [sp, #0x10]
ldr r0, [r5, #0x34]
str r0, [sp, #0xc]
ldr r0, [sp, #4]
cmp r0, #0
ble _021DD6F6
ldr r0, [sp]
add r0, #0xc
str r0, [sp]
_021DD6AE:
ldr r0, [sp]
cmp r5, r0
beq _021DD6F6
mov r4, #0
cmp r6, #0
ble _021DD6CA
_021DD6BA:
add r0, r5, #0
blx r7
ldr r0, [r5, #8]
cmp r0, #0
beq _021DD6CA
add r4, r4, #1
cmp r4, r6
blt _021DD6BA
_021DD6CA:
ldr r5, [sp, #0xc]
ldr r1, [sp, #0x10]
add r0, r5, #0
ldr r0, [r0, #0x34]
str r0, [sp, #0xc]
ldr r0, [sp, #8]
cmp r1, r0
blt _021DD6EA
add r0, r1, #0
ldr r1, [sp, #8]
bl _s32_div_f
cmp r1, #0
bne _021DD6EA
ldr r0, [sp, #0x28]
add r6, r6, r0
_021DD6EA:
ldr r0, [sp, #0x10]
add r1, r0, #1
ldr r0, [sp, #4]
str r1, [sp, #0x10]
cmp r1, r0
blt _021DD6AE
_021DD6F6:
add sp, #0x14
pop {r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021DD6FC
MOD05_021DD6FC: ; 0x021DD6FC
mov r2, #0
add r3, r0, #0
_021DD700:
ldr r1, [r3, #0x48]
cmp r1, #0
bne _021DD710
mov r1, #0x3c
add r0, #0x48
mul r1, r2
add r0, r0, r1
bx lr
_021DD710:
add r2, r2, #1
add r3, #0x3c
cmp r2, #0x40
blt _021DD700
mov r0, #0
bx lr
thumb_func_start MOD05_021DD71C
MOD05_021DD71C: ; 0x021DD71C
push {r3, lr}
ldr r0, _021DD76C ; =0x00000F62
ldrh r2, [r1, r0]
cmp r2, #5
bhi _021DD76A
add r2, r2, r2
add r2, pc
ldrh r2, [r2, #6]
lsl r2, r2, #0x10
asr r2, r2, #0x10
add pc, r2
_021DD732: ; jump table
.short _021DD73E - _021DD732 - 2 ; case 0
.short _021DD744 - _021DD732 - 2 ; case 1
.short _021DD74A - _021DD732 - 2 ; case 2
.short _021DD750 - _021DD732 - 2 ; case 3
.short _021DD75E - _021DD732 - 2 ; case 4
.short _021DD764 - _021DD732 - 2 ; case 5
_021DD73E:
mov r2, #1
strh r2, [r1, r0]
pop {r3, pc}
_021DD744:
mov r2, #3
strh r2, [r1, r0]
pop {r3, pc}
_021DD74A:
mov r2, #3
strh r2, [r1, r0]
pop {r3, pc}
_021DD750:
add r2, r0, #4
ldrh r2, [r1, r2]
cmp r2, #5
bne _021DD76A
mov r2, #4
strh r2, [r1, r0]
pop {r3, pc}
_021DD75E:
mov r2, #5
strh r2, [r1, r0]
pop {r3, pc}
_021DD764:
ldr r0, [r1, #4]
bl MOD05_021DCB6C
_021DD76A:
pop {r3, pc}
.balign 4, 0
_021DD76C: .word 0x00000F62
thumb_func_start MOD05_021DD770
MOD05_021DD770: ; 0x021DD770
push {r4, r5, r6, lr}
sub sp, #0x18
ldr r0, _021DD998 ; =0x00000F58
add r5, r1, #0
add r2, r0, #0
add r2, #0xa
ldrh r2, [r5, r2]
ldr r4, [r5, r0]
cmp r2, #5
bhi _021DD832
add r2, r2, r2
add r2, pc
ldrh r2, [r2, #6]
lsl r2, r2, #0x10
asr r2, r2, #0x10
add pc, r2
_021DD790: ; jump table
.short _021DD79C - _021DD790 - 2 ; case 0
.short _021DD7FA - _021DD790 - 2 ; case 1
.short _021DD83C - _021DD790 - 2 ; case 2
.short _021DD8A2 - _021DD790 - 2 ; case 3
.short _021DD900 - _021DD790 - 2 ; case 4
.short _021DD94E - _021DD790 - 2 ; case 5
_021DD79C:
mov r0, #0x14
str r0, [sp]
mov r2, #1
str r2, [sp, #4]
sub r0, r2, #2
str r0, [sp, #8]
str r2, [sp, #0xc]
mov r0, #2
str r0, [sp, #0x10]
ldr r0, _021DD99C ; =MOD05_021DD9BC
mov r3, #8
str r0, [sp, #0x14]
add r0, r4, #0
bl MOD05_021DD328
ldr r0, _021DD9A0 ; =0x0000726F
mov r2, #0x41
str r0, [sp]
ldr r0, _021DD9A4 ; =0x00006B5A
lsl r2, r2, #2
str r0, [sp, #4]
mov r0, #1
str r0, [sp, #8]
ldr r0, _021DD9A8 ; =0x00000F64
add r1, r4, #0
ldrh r0, [r5, r0]
add r1, #0x1c
str r0, [sp, #0xc]
ldr r3, [r5]
add r0, r4, #0
ldr r2, [r3, r2]
add r0, #0x4c
ldr r2, [r2, #0x44]
mov r3, #3
bl MOD05_021DD420
mov r0, #0
add r4, #0xb4
str r0, [r4]
ldr r1, _021DD9AC ; =0x00000639
add r0, r5, #0
bl MOD05_021E0FA4
ldr r0, _021DD9B0 ; =0x00000F62
mov r1, #1
strh r1, [r5, r0]
b _021DD96C
_021DD7FA:
add r0, r4, #0
bl MOD05_021DD35C
add r6, r0, #0
add r0, r4, #0
add r0, #0xb4
ldr r0, [r0]
cmp r0, #0
ble _021DD81A
add r0, r4, #0
add r0, #0xb4
ldr r0, [r0]
add r4, #0xb4
sub r0, r0, #1
str r0, [r4]
b _021DD96C
_021DD81A:
ldr r2, _021DD9A8 ; =0x00000F64
add r0, r4, #0
ldrh r2, [r5, r2]
add r4, #0x1c
add r0, #0x4c
add r1, r4, #0
bl MOD05_021DD474
cmp r0, #1
bne _021DD832
cmp r6, #3
beq _021DD834
_021DD832:
b _021DD96C
_021DD834:
ldr r0, _021DD9B0 ; =0x00000F62
mov r1, #3
strh r1, [r5, r0]
b _021DD96C
_021DD83C:
mov r2, #0x14
mov r3, #1
str r2, [sp]
str r3, [sp, #4]
sub r0, r3, #2
str r0, [sp, #8]
str r3, [sp, #0xc]
mov r0, #2
str r0, [sp, #0x10]
ldr r0, _021DD99C ; =MOD05_021DD9BC
str r0, [sp, #0x14]
add r0, r4, #0
bl MOD05_021DD328
ldr r0, _021DD9A8 ; =0x00000F64
ldrh r0, [r5, r0]
cmp r0, #0
beq _021DD87E
mov r0, #0x41
ldr r1, [r5]
lsl r0, r0, #2
ldr r0, [r1, r0]
ldr r2, _021DD9A0 ; =0x0000726F
ldr r0, [r0, #0x44]
ldr r3, _021DD9A4 ; =0x00006B5A
mov r1, #3
str r0, [r4, #0x1c]
bl MOD05_021DD49C
add r4, #0x1c
add r0, r4, #0
bl MOD05_021DD5EC
_021DD87E:
mov r0, #1
str r0, [sp]
ldr r0, _021DD9B4 ; =MOD05_021DDA7C
ldr r1, _021DD99C ; =MOD05_021DD9BC
str r0, [sp, #4]
add r0, r5, #0
mov r2, #0x14
mov r3, #0xa
bl MOD05_021DD680
ldr r1, _021DD9AC ; =0x00000639
add r0, r5, #0
bl MOD05_021E0FA4
ldr r0, _021DD9B0 ; =0x00000F62
mov r1, #3
strh r1, [r5, r0]
b _021DD96C
_021DD8A2:
mov r0, #6
ldrsh r1, [r4, r0]
sub r0, r1, #1
strh r0, [r4, #6]
cmp r1, #0
bgt _021DD8BE
mov r1, #4
ldrsh r1, [r4, r1]
add r0, r5, #0
bl MOD05_021DD9BC
mov r0, #8
ldrsh r0, [r4, r0]
strh r0, [r4, #6]
_021DD8BE:
ldr r0, _021DD9B8 ; =0x00000F66
ldrh r0, [r5, r0]
cmp r0, #5
bne _021DD96C
mov r0, #1
mvn r0, r0
str r0, [sp]
add r0, r4, #0
mov r1, #0
mov r2, #8
mov r3, #1
bl MOD05_021DD350
ldr r0, _021DD9A8 ; =0x00000F64
ldrh r0, [r5, r0]
cmp r0, #0
beq _021DD8EC
add r0, r4, #0
add r0, #0x1c
mov r1, #1
mov r2, #0
bl MOD05_021DD5B4
_021DD8EC:
mov r0, #0
add r4, #0xb4
str r0, [r4]
ldr r0, _021DD9B0 ; =0x00000F62
mov r1, #4
strh r1, [r5, r0]
add r0, r5, #0
bl MOD05_021E0FD0
b _021DD96C
_021DD900:
add r0, r4, #0
bl MOD05_021DD35C
add r6, r0, #0
add r0, r4, #0
add r0, #0xb4
ldr r0, [r0]
cmp r0, #0
ble _021DD920
add r0, r4, #0
add r0, #0xb4
ldr r0, [r0]
add r4, #0xb4
sub r0, r0, #1
str r0, [r4]
b _021DD96C
_021DD920:
ldr r0, _021DD9A8 ; =0x00000F64
ldrh r0, [r5, r0]
cmp r0, #0
beq _021DD932
add r4, #0x1c
add r0, r4, #0
bl MOD05_021DD5D0
b _021DD934
_021DD932:
mov r0, #1
_021DD934:
cmp r0, #1
bne _021DD96C
cmp r6, #3
bne _021DD96C
add r0, r5, #0
ldr r1, [r5, #0x40]
add r0, #0xc
cmp r1, r0
bne _021DD96C
ldr r0, _021DD9B0 ; =0x00000F62
mov r1, #5
strh r1, [r5, r0]
b _021DD96C
_021DD94E:
add r0, #0xc
ldrh r0, [r5, r0]
cmp r0, #0
beq _021DD966
mov r2, #0
str r2, [sp]
str r2, [sp, #4]
ldr r0, [r4, #0x1c]
mov r1, #1
add r3, r2, #0
bl MOD05_021DBA40
_021DD966:
ldr r0, [r5, #4]
bl MOD05_021DCB6C
_021DD96C:
ldr r0, _021DD9B0 ; =0x00000F62
ldrh r0, [r5, r0]
cmp r0, #5
beq _021DD992
cmp r0, #0
beq _021DD992
add r0, r5, #0
ldr r1, _021DD9B4 ; =MOD05_021DDA7C
add r0, #0xc
bl MOD05_021DD148
mov r1, #0
add r0, r5, #0
add r2, r1, #0
bl MOD05_021DD2BC
add r0, r5, #0
bl MOD05_021DD164
_021DD992:
add sp, #0x18
pop {r4, r5, r6, pc}
nop
_021DD998: .word 0x00000F58
_021DD99C: .word MOD05_021DD9BC
_021DD9A0: .word 0x0000726F
_021DD9A4: .word 0x00006B5A
_021DD9A8: .word 0x00000F64
_021DD9AC: .word 0x00000639
_021DD9B0: .word 0x00000F62
_021DD9B4: .word MOD05_021DDA7C
_021DD9B8: .word 0x00000F66
thumb_func_start MOD05_021DD9BC
MOD05_021DD9BC: ; 0x021DD9BC
push {r4, r5, r6, r7, lr}
sub sp, #0x14
str r0, [sp]
add r0, r1, #0
mov r7, #0
str r1, [sp, #4]
cmp r0, #0
ble _021DDA70
_021DD9CC:
ldr r0, [sp]
mov r1, #0x20
bl MOD05_021DD048
add r6, r0, #0
beq _021DDA70
ldr r4, [r6, #8]
mov r0, #0
str r0, [r4]
bl rand_MT
mov r1, #3
bl _u32_div_f
add r5, r1, #0
lsl r1, r5, #0x10
ldr r0, [r6, #4]
lsr r1, r1, #0x10
bl FUN_02020208
bl rand_MT
mov r1, #0x14
bl _u32_div_f
add r2, r5, #1
mov r0, #0xa
mul r0, r2
add r0, r1, r0
str r0, [r4, #8]
cmp r5, #2
bne _021DDA12
ldr r0, [r4, #8]
add r0, #0xa
str r0, [r4, #8]
_021DDA12:
add r0, r1, #0
mov r1, #4
mvn r1, r1
bl _s32_div_f
mov r1, #4
add r2, r5, #1
mvn r1, r1
mul r1, r2
add r0, r0, r1
str r0, [r4, #0x10]
cmp r5, #2
bne _021DDA32
ldr r0, [r4, #0x10]
sub r0, r0, #5
str r0, [r4, #0x10]
_021DDA32:
mov r0, #0
str r0, [r4, #0xc]
bl rand_MT
mov r1, #3
bl _u32_div_f
add r0, r1, #1
str r0, [r4, #4]
bl rand_MT
ldr r1, _021DDA74 ; =0x0000010E
bl _u32_div_f
mov r0, #0xf
mul r0, r5
add r0, r0, r1
lsl r0, r0, #0xc
str r0, [sp, #8]
ldr r0, _021DDA78 ; =0xFFFA0000
add r1, sp, #8
str r0, [sp, #0xc]
mov r0, #0
str r0, [sp, #0x10]
ldr r0, [r6, #4]
bl MOD05_021DC4FC
ldr r0, [sp, #4]
add r7, r7, #1
cmp r7, r0
blt _021DD9CC
_021DDA70:
add sp, #0x14
pop {r4, r5, r6, r7, pc}
.balign 4, 0
_021DDA74: .word 0x0000010E
_021DDA78: .word 0xFFFA0000
thumb_func_start MOD05_021DDA7C
MOD05_021DDA7C: ; 0x021DDA7C
push {r4, r5, r6, r7, lr}
sub sp, #0xc
add r6, r0, #0
ldr r5, [r6, #8]
add r0, sp, #0
add r1, r6, #0
bl MOD05_021DD168
ldr r0, [r5, #0xc]
cmp r0, #0
beq _021DDA9E
cmp r0, #1
beq _021DDAF6
cmp r0, #2
beq _021DDB08
add sp, #0xc
pop {r4, r5, r6, r7, pc}
_021DDA9E:
mov r4, #0
mov r7, #2
_021DDAA2:
ldr r0, [r5, #0x10]
ldr r1, [sp]
lsl r0, r0, #0xc
add r0, r1, r0
str r0, [sp]
ldr r0, [r5, #8]
ldr r1, [sp, #4]
lsl r0, r0, #0xc
add r0, r1, r0
str r0, [sp, #4]
ldr r1, [r5]
add r0, r1, #1
str r0, [r5]
ldr r0, [r5, #4]
cmp r1, r0
ble _021DDAE4
bl rand_MT
mov r1, #0xa
bl _u32_div_f
cmp r1, #7
bhs _021DDAD4
str r7, [r5, #0xc]
b _021DDAE4
_021DDAD4:
mov r0, #1
str r0, [r5, #0xc]
mov r0, #4
str r0, [r5]
ldr r0, [r6, #4]
mov r1, #3
bl FUN_02020208
_021DDAE4:
add r4, r4, #1
cmp r4, #2
blt _021DDAA2
ldr r0, [r6, #4]
add r1, sp, #0
bl MOD05_021DC4FC
add sp, #0xc
pop {r4, r5, r6, r7, pc}
_021DDAF6:
ldr r1, [r5]
sub r0, r1, #1
str r0, [r5]
cmp r1, #0
bgt _021DDB0E
mov r0, #2
add sp, #0xc
str r0, [r5, #0xc]
pop {r4, r5, r6, r7, pc}
_021DDB08:
add r0, r6, #0
bl MOD05_021DD100
_021DDB0E:
add sp, #0xc
pop {r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021DDB14
MOD05_021DDB14: ; 0x021DDB14
push {r4, r5, r6, lr}
sub sp, #0x18
ldr r0, _021DDD44 ; =0x00000F58
add r5, r1, #0
add r2, r0, #0
add r2, #0xa
ldrh r2, [r5, r2]
ldr r4, [r5, r0]
cmp r2, #5
bhi _021DDBD6
add r2, r2, r2
add r2, pc
ldrh r2, [r2, #6]
lsl r2, r2, #0x10
asr r2, r2, #0x10
add pc, r2
_021DDB34: ; jump table
.short _021DDB40 - _021DDB34 - 2 ; case 0
.short _021DDB9E - _021DDB34 - 2 ; case 1
.short _021DDBE0 - _021DDB34 - 2 ; case 2
.short _021DDC4E - _021DDB34 - 2 ; case 3
.short _021DDCA6 - _021DDB34 - 2 ; case 4
.short _021DDCFA - _021DDB34 - 2 ; case 5
_021DDB40:
mov r2, #1
str r2, [sp]
mov r0, #8
str r0, [sp, #4]
sub r0, #0xd
str r0, [sp, #8]
str r2, [sp, #0xc]
mov r0, #0
str r0, [sp, #0x10]
ldr r0, _021DDD48 ; =MOD05_021DDD64
mov r3, #0x14
str r0, [sp, #0x14]
add r0, r4, #0
bl MOD05_021DD328
add r0, r4, #0
mov r1, #0
add r0, #0xb8
str r1, [r0]
ldr r0, _021DDD4C ; =0x0000726F
mov r2, #0x41
str r0, [sp]
ldr r0, _021DDD50 ; =0x00006B5A
add r1, r4, #0
str r0, [sp, #4]
mov r0, #1
str r0, [sp, #8]
ldr r0, _021DDD54 ; =0x00000F64
lsl r2, r2, #2
ldrh r0, [r5, r0]
add r1, #0x1c
str r0, [sp, #0xc]
ldr r3, [r5]
add r0, r4, #0
ldr r2, [r3, r2]
add r0, #0x4c
ldr r2, [r2, #0x44]
mov r3, #3
bl MOD05_021DD420
mov r0, #0x10
add r4, #0xb4
str r0, [r4]
ldr r0, _021DDD58 ; =0x00000F62
mov r1, #1
strh r1, [r5, r0]
b _021DDD18
_021DDB9E:
add r0, r4, #0
bl MOD05_021DD35C
add r6, r0, #0
add r0, r4, #0
add r0, #0xb4
ldr r0, [r0]
cmp r0, #0
ble _021DDBBE
add r0, r4, #0
add r0, #0xb4
ldr r0, [r0]
add r4, #0xb4
sub r0, r0, #1
str r0, [r4]
b _021DDD18
_021DDBBE:
ldr r2, _021DDD54 ; =0x00000F64
add r0, r4, #0
ldrh r2, [r5, r2]
add r4, #0x1c
add r0, #0x4c
add r1, r4, #0
bl MOD05_021DD474
cmp r0, #1
bne _021DDBD6
cmp r6, #3
beq _021DDBD8
_021DDBD6:
b _021DDD18
_021DDBD8:
ldr r0, _021DDD58 ; =0x00000F62
mov r1, #3
strh r1, [r5, r0]
b _021DDD18
_021DDBE0:
mov r2, #1
mov r3, #8
str r2, [sp]
add r0, r3, #0
str r3, [sp, #4]
sub r0, #0xd
str r0, [sp, #8]
str r2, [sp, #0xc]
mov r0, #0
str r0, [sp, #0x10]
ldr r0, _021DDD48 ; =MOD05_021DDD64
str r0, [sp, #0x14]
add r0, r4, #0
bl MOD05_021DD328
add r0, r4, #0
mov r1, #0
add r0, #0xb8
str r1, [r0]
add r0, r4, #0
add r0, #0xbc
str r1, [r0]
ldr r0, _021DDD54 ; =0x00000F64
ldrh r0, [r5, r0]
cmp r0, #0
beq _021DDC32
mov r0, #0x41
ldr r1, [r5]
lsl r0, r0, #2
ldr r0, [r1, r0]
ldr r2, _021DDD4C ; =0x0000726F
ldr r0, [r0, #0x44]
ldr r3, _021DDD50 ; =0x00006B5A
mov r1, #3
str r0, [r4, #0x1c]
bl MOD05_021DD49C
add r4, #0x1c
add r0, r4, #0
bl MOD05_021DD5EC
_021DDC32:
mov r0, #0x18
str r0, [sp]
ldr r0, _021DDD5C ; =MOD05_021DDF44
ldr r1, _021DDD48 ; =MOD05_021DDD64
str r0, [sp, #4]
add r0, r5, #0
mov r2, #0x14
mov r3, #2
bl MOD05_021DD680
ldr r0, _021DDD58 ; =0x00000F62
mov r1, #3
strh r1, [r5, r0]
b _021DDD18
_021DDC4E:
mov r0, #6
ldrsh r1, [r4, r0]
sub r0, r1, #1
strh r0, [r4, #6]
cmp r1, #0
bgt _021DDC6A
mov r1, #4
ldrsh r1, [r4, r1]
add r0, r5, #0
bl MOD05_021DDD64
mov r0, #8
ldrsh r0, [r4, r0]
strh r0, [r4, #6]
_021DDC6A:
ldr r0, _021DDD60 ; =0x00000F66
ldrh r0, [r5, r0]
cmp r0, #5
bne _021DDD18
mov r0, #0
mvn r0, r0
str r0, [sp]
add r0, r4, #0
mov r1, #0
mov r2, #0x14
mov r3, #5
bl MOD05_021DD350
ldr r0, _021DDD54 ; =0x00000F64
ldrh r0, [r5, r0]
cmp r0, #0
beq _021DDC98
add r0, r4, #0
add r0, #0x1c
mov r1, #2
mov r2, #0
bl MOD05_021DD5B4
_021DDC98:
mov r0, #0x20
add r4, #0xb4
str r0, [r4]
ldr r0, _021DDD58 ; =0x00000F62
mov r1, #4
strh r1, [r5, r0]
b _021DDD18
_021DDCA6:
add r0, r4, #0
bl MOD05_021DD35C
add r6, r0, #0
add r0, r4, #0
add r0, #0xb4
ldr r0, [r0]
cmp r0, #0
ble _021DDCC6
add r0, r4, #0
add r0, #0xb4
ldr r0, [r0]
add r4, #0xb4
sub r0, r0, #1
str r0, [r4]
b _021DDD18
_021DDCC6:
ldr r0, _021DDD54 ; =0x00000F64
ldrh r0, [r5, r0]
cmp r0, #0
beq _021DDCD8
add r0, r4, #0
add r0, #0x1c
bl MOD05_021DD5D0
b _021DDCDA
_021DDCD8:
mov r0, #1
_021DDCDA:
cmp r0, #1
bne _021DDD18
cmp r6, #3
bne _021DDD18
mov r0, #1
add r4, #0xbc
str r0, [r4]
add r0, r5, #0
ldr r1, [r5, #0x40]
add r0, #0xc
cmp r1, r0
bne _021DDD18
ldr r0, _021DDD58 ; =0x00000F62
mov r1, #5
strh r1, [r5, r0]
b _021DDD18
_021DDCFA:
add r0, #0xc
ldrh r0, [r5, r0]
cmp r0, #0
beq _021DDD12
mov r2, #0
str r2, [sp]
str r2, [sp, #4]
ldr r0, [r4, #0x1c]
mov r1, #1
add r3, r2, #0
bl MOD05_021DBA40
_021DDD12:
ldr r0, [r5, #4]
bl MOD05_021DCB6C
_021DDD18:
ldr r0, _021DDD58 ; =0x00000F62
ldrh r0, [r5, r0]
cmp r0, #5
beq _021DDD3E
cmp r0, #0
beq _021DDD3E
add r0, r5, #0
ldr r1, _021DDD5C ; =MOD05_021DDF44
add r0, #0xc
bl MOD05_021DD148
mov r1, #0
add r0, r5, #0
add r2, r1, #0
bl MOD05_021DD2BC
add r0, r5, #0
bl MOD05_021DD164
_021DDD3E:
add sp, #0x18
pop {r4, r5, r6, pc}
nop
_021DDD44: .word 0x00000F58
_021DDD48: .word MOD05_021DDD64
_021DDD4C: .word 0x0000726F
_021DDD50: .word 0x00006B5A
_021DDD54: .word 0x00000F64
_021DDD58: .word 0x00000F62
_021DDD5C: .word MOD05_021DDF44
_021DDD60: .word 0x00000F66
thumb_func_start MOD05_021DDD64
MOD05_021DDD64: ; 0x021DDD64
push {r4, r5, r6, r7, lr}
sub sp, #0x24
add r7, r1, #0
ldr r1, _021DDE70 ; =0x00000F58
str r0, [sp]
ldr r0, [r0, r1]
str r0, [sp, #0x10]
add r0, #0xb8
ldr r0, [r0]
cmp r0, #1
bne _021DDD7C
lsl r7, r7, #1
_021DDD7C:
mov r6, #0
cmp r7, #0
ble _021DDE6A
ldr r0, [sp, #0x10]
str r0, [sp, #0xc]
add r0, #0xb8
str r0, [sp, #0xc]
ldr r0, [sp, #0x10]
str r0, [sp, #8]
add r0, #0xbc
str r0, [sp, #8]
lsr r0, r7, #0x1f
add r0, r7, r0
asr r0, r0, #1
str r0, [sp, #4]
_021DDD9A:
ldr r0, [sp]
mov r1, #0x28
bl MOD05_021DD048
add r4, r0, #0
beq _021DDE6A
ldr r5, [r4, #8]
bl rand_MT
mov r1, #3
and r1, r0
lsl r1, r1, #0x10
ldr r0, [r4, #4]
lsr r1, r1, #0x10
bl FUN_02020208
mov r0, #0xa
str r0, [r5, #0x10]
mov r0, #0
str r0, [r5, #0x14]
str r0, [r5, #0x18]
str r0, [r5, #0x20]
bl rand_MT
mov r1, #0x3c
str r0, [sp, #0x14]
bl _s32_div_f
add r0, r1, #4
str r0, [r5, #0x24]
ldr r0, [sp, #0x14]
ldr r1, [sp, #0x14]
lsr r0, r0, #0x1f
lsl r2, r1, #0x1f
sub r2, r2, r0
mov r1, #0x1f
ror r2, r1
add r0, r0, r2
bne _021DDDEC
mov r0, #1
b _021DDDF0
_021DDDEC:
add r0, r1, #0
sub r0, #0x20
_021DDDF0:
str r0, [r5, #4]
bl rand_MT
mov r1, #1
and r0, r1
add r0, r0, #4
str r0, [r5, #8]
bl rand_MT
mov r1, #1
and r0, r1
add r0, r0, #1
str r0, [r5, #0xc]
ldr r0, [sp, #0xc]
str r0, [r5]
ldr r0, [sp, #8]
str r0, [r5, #0x1c]
bl rand_MT
ldr r1, _021DDE74 ; =0x0000019E
bl _u32_div_f
sub r1, #0x20
lsl r0, r1, #0xc
str r0, [sp, #0x18]
ldr r0, [sp, #0x10]
add r0, #0xb8
ldr r0, [r0]
cmp r0, #1
bne _021DDE48
ldr r0, [sp, #4]
cmp r6, r0
blt _021DDE48
bl rand_MT
mov r1, #0x14
bl _u32_div_f
mov r0, #0x27
mvn r0, r0
sub r0, r0, r1
lsl r0, r0, #0xc
str r0, [sp, #0x1c]
b _021DDE5C
_021DDE48:
bl rand_MT
mov r1, #0x14
bl _u32_div_f
mov r0, #7
mvn r0, r0
sub r0, r0, r1
lsl r0, r0, #0xc
str r0, [sp, #0x1c]
_021DDE5C:
ldr r0, [r4, #4]
add r1, sp, #0x18
bl MOD05_021DC4FC
add r6, r6, #1
cmp r6, r7
blt _021DDD9A
_021DDE6A:
add sp, #0x24
pop {r4, r5, r6, r7, pc}
nop
_021DDE70: .word 0x00000F58
_021DDE74: .word 0x0000019E
thumb_func_start MOD05_021DDE78
MOD05_021DDE78: ; 0x021DDE78
push {r4, r5, lr}
sub sp, #0xc
add r5, r0, #0
add r4, r1, #0
add r0, sp, #0
add r1, r5, #0
bl MOD05_021DD168
ldr r0, [r4, #0x14]
lsl r0, r0, #0x10
lsr r1, r0, #0x10
ldr r0, [r4, #8]
cmp r1, r0
blt _021DDECE
ldr r0, [r4, #4]
ldr r1, [sp]
lsl r0, r0, #0xc
add r0, r1, r0
str r0, [sp]
ldr r0, [r4, #0x10]
add r0, r0, #1
str r0, [r4, #0x10]
ldr r1, [r4, #0x14]
ldr r0, _021DDF3C ; =0xFFFF0000
and r0, r1
str r0, [r4, #0x14]
ldr r0, [r4, #0x10]
cmp r0, #0xa
ldr r0, [r4, #8]
bge _021DDEB8
sub r0, r0, #1
b _021DDEBA
_021DDEB8:
add r0, r0, #1
_021DDEBA:
str r0, [r4, #8]
ldr r0, [r4, #0x10]
cmp r0, #0x14
blt _021DDECE
mov r0, #0
str r0, [r4, #0x10]
ldr r1, [r4, #4]
sub r0, r0, #1
mul r0, r1
str r0, [r4, #4]
_021DDECE:
ldr r0, [r4, #0x14]
asr r1, r0, #0x10
ldr r0, [r4, #0xc]
cmp r1, r0
blt _021DDEEA
mov r0, #1
ldr r1, [sp, #4]
lsl r0, r0, #0xc
add r0, r1, r0
str r0, [sp, #4]
ldr r0, [r4, #0x14]
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [r4, #0x14]
_021DDEEA:
ldr r0, [r5, #4]
add r1, sp, #0
bl MOD05_021DC4FC
ldr r0, [sp]
mov r1, #0x64
asr r0, r0, #0xc
str r0, [sp]
ldr r0, [sp, #4]
asr r0, r0, #0xc
str r0, [sp, #4]
ldr r0, [r4, #0x18]
add r0, r0, #1
bl _s32_div_f
str r1, [r4, #0x18]
ldr r0, [r4, #0x14]
add r1, r0, #1
mov r0, #1
lsl r0, r0, #0x10
add r0, r1, r0
str r0, [r4, #0x14]
ldr r1, [sp, #4]
ldr r0, _021DDF40 ; =0xFFFFFEE4
cmp r1, r0
bge _021DDF24
sub r0, #0xc
cmp r1, r0
bgt _021DDF2C
_021DDF24:
cmp r1, #0xd4
ble _021DDF38
cmp r1, #0xe8
bge _021DDF38
_021DDF2C:
ldr r0, [r4]
mov r1, #1
str r1, [r0]
add r0, r5, #0
bl MOD05_021DD100
_021DDF38:
add sp, #0xc
pop {r4, r5, pc}
.balign 4, 0
_021DDF3C: .word 0xFFFF0000
_021DDF40: .word 0xFFFFFEE4
thumb_func_start MOD05_021DDF44
MOD05_021DDF44: ; 0x021DDF44
push {r3, lr}
ldr r1, [r0, #8]
ldr r3, [r1, #0x20]
ldr r2, [r1, #0x1c]
cmp r3, #0
beq _021DDF56
cmp r3, #1
beq _021DDF62
b _021DDF70
_021DDF56:
ldr r2, [r2]
cmp r2, #1
bne _021DDF70
add r2, r3, #1
str r2, [r1, #0x20]
b _021DDF70
_021DDF62:
ldr r2, [r1, #0x24]
sub r2, r2, #1
str r2, [r1, #0x24]
bpl _021DDF70
bl MOD05_021DD100
pop {r3, pc}
_021DDF70:
bl MOD05_021DDE78
pop {r3, pc}
.balign 4, 0
thumb_func_start MOD05_021DDF78
MOD05_021DDF78: ; 0x021DDF78
push {r4, r5, r6, lr}
sub sp, #0x18
ldr r0, _021DE19C ; =0x00000F58
add r5, r1, #0
add r2, r0, #0
add r2, #0xa
ldrh r2, [r5, r2]
ldr r4, [r5, r0]
cmp r2, #5
bhi _021DE03C
add r2, r2, r2
add r2, pc
ldrh r2, [r2, #6]
lsl r2, r2, #0x10
asr r2, r2, #0x10
add pc, r2
_021DDF98: ; jump table
.short _021DDFA4 - _021DDF98 - 2 ; case 0
.short _021DE004 - _021DDF98 - 2 ; case 1
.short _021DE046 - _021DDF98 - 2 ; case 2
.short _021DE0AE - _021DDF98 - 2 ; case 3
.short _021DE106 - _021DDF98 - 2 ; case 4
.short _021DE154 - _021DDF98 - 2 ; case 5
_021DDFA4:
mov r0, #6
str r0, [sp]
mov r0, #3
str r0, [sp, #4]
sub r0, #8
str r0, [sp, #8]
mov r0, #2
str r0, [sp, #0xc]
mov r2, #1
ldr r0, _021DE1A0 ; =MOD05_021DE1BC
str r2, [sp, #0x10]
str r0, [sp, #0x14]
add r0, r4, #0
mov r3, #0x1e
bl MOD05_021DD328
ldr r0, _021DE1A4 ; =0x00006D6F
mov r2, #0x41
str r0, [sp]
ldr r0, _021DE1A8 ; =0x00006318
add r1, r4, #0
str r0, [sp, #4]
mov r0, #2
str r0, [sp, #8]
ldr r0, _021DE1AC ; =0x00000F64
lsl r2, r2, #2
ldrh r0, [r5, r0]
add r1, #0x1c
str r0, [sp, #0xc]
ldr r3, [r5]
add r0, r4, #0
ldr r2, [r3, r2]
add r0, #0x4c
ldr r2, [r2, #0x44]
mov r3, #3
bl MOD05_021DD420
add r0, r4, #0
mov r1, #8
add r0, #0xb4
str r1, [r0]
mov r0, #0
add r4, #0xb8
str r0, [r4]
ldr r0, _021DE1B0 ; =0x00000F62
mov r1, #1
strh r1, [r5, r0]
b _021DE172
_021DE004:
add r0, r4, #0
bl MOD05_021DD35C
add r6, r0, #0
add r0, r4, #0
add r0, #0xb4
ldr r0, [r0]
cmp r0, #0
ble _021DE024
add r0, r4, #0
add r0, #0xb4
ldr r0, [r0]
add r4, #0xb4
sub r0, r0, #1
str r0, [r4]
b _021DE172
_021DE024:
ldr r2, _021DE1AC ; =0x00000F64
add r0, r4, #0
ldrh r2, [r5, r2]
add r4, #0x1c
add r0, #0x4c
add r1, r4, #0
bl MOD05_021DD474
cmp r0, #1
bne _021DE03C
cmp r6, #3
beq _021DE03E
_021DE03C:
b _021DE172
_021DE03E:
ldr r0, _021DE1B0 ; =0x00000F62
mov r1, #3
strh r1, [r5, r0]
b _021DE172
_021DE046:
mov r2, #6
mov r3, #3
str r2, [sp]
add r0, r3, #0
str r3, [sp, #4]
sub r0, #8
str r0, [sp, #8]
mov r0, #2
str r0, [sp, #0xc]
mov r0, #1
str r0, [sp, #0x10]
ldr r0, _021DE1A0 ; =MOD05_021DE1BC
str r0, [sp, #0x14]
add r0, r4, #0
bl MOD05_021DD328
ldr r0, _021DE1AC ; =0x00000F64
ldrh r0, [r5, r0]
cmp r0, #0
beq _021DE08C
mov r0, #0x41
ldr r1, [r5]
lsl r0, r0, #2
ldr r0, [r1, r0]
ldr r2, _021DE1A4 ; =0x00006D6F
ldr r0, [r0, #0x44]
ldr r3, _021DE1A8 ; =0x00006318
mov r1, #3
str r0, [r4, #0x1c]
bl MOD05_021DD49C
add r0, r4, #0
add r0, #0x1c
bl MOD05_021DD5EC
_021DE08C:
mov r0, #0
add r4, #0xb8
str r0, [r4]
mov r0, #3
str r0, [sp]
ldr r0, _021DE1B4 ; =MOD05_021DE2E0
ldr r1, _021DE1A0 ; =MOD05_021DE1BC
str r0, [sp, #4]
add r0, r5, #0
mov r2, #0x14
mov r3, #2
bl MOD05_021DD680
ldr r0, _021DE1B0 ; =0x00000F62
mov r1, #3
strh r1, [r5, r0]
b _021DE172
_021DE0AE:
mov r0, #6
ldrsh r1, [r4, r0]
sub r0, r1, #1
strh r0, [r4, #6]
cmp r1, #0
bgt _021DE0CA
mov r1, #4
ldrsh r1, [r4, r1]
add r0, r5, #0
bl MOD05_021DE1BC
mov r0, #8
ldrsh r0, [r4, r0]
strh r0, [r4, #6]
_021DE0CA:
ldr r0, _021DE1B8 ; =0x00000F66
ldrh r0, [r5, r0]
cmp r0, #5
bne _021DE172
mov r0, #2
mvn r0, r0
str r0, [sp]
add r0, r4, #0
mov r1, #0
mov r2, #0x1e
mov r3, #5
bl MOD05_021DD350
ldr r0, _021DE1AC ; =0x00000F64
ldrh r0, [r5, r0]
cmp r0, #0
beq _021DE0F8
add r0, r4, #0
add r0, #0x1c
mov r1, #1
mov r2, #0
bl MOD05_021DD5B4
_021DE0F8:
mov r0, #0
add r4, #0xb4
str r0, [r4]
ldr r0, _021DE1B0 ; =0x00000F62
mov r1, #4
strh r1, [r5, r0]
b _021DE172
_021DE106:
add r0, r4, #0
bl MOD05_021DD35C
add r6, r0, #0
add r0, r4, #0
add r0, #0xb4
ldr r0, [r0]
cmp r0, #0
ble _021DE126
add r0, r4, #0
add r0, #0xb4
ldr r0, [r0]
add r4, #0xb4
sub r0, r0, #1
str r0, [r4]
b _021DE172
_021DE126:
ldr r0, _021DE1AC ; =0x00000F64
ldrh r0, [r5, r0]
cmp r0, #0
beq _021DE138
add r4, #0x1c
add r0, r4, #0
bl MOD05_021DD5D0
b _021DE13A
_021DE138:
mov r0, #1
_021DE13A:
cmp r0, #1
bne _021DE172
cmp r6, #3
bne _021DE172
add r0, r5, #0
ldr r1, [r5, #0x40]
add r0, #0xc
cmp r1, r0
bne _021DE172
ldr r0, _021DE1B0 ; =0x00000F62
mov r1, #5
strh r1, [r5, r0]
b _021DE172
_021DE154:
add r0, #0xc
ldrh r0, [r5, r0]
cmp r0, #0
beq _021DE16C
mov r2, #0
str r2, [sp]
str r2, [sp, #4]
ldr r0, [r4, #0x1c]
mov r1, #1
add r3, r2, #0
bl MOD05_021DBA40
_021DE16C:
ldr r0, [r5, #4]
bl MOD05_021DCB6C
_021DE172:
ldr r0, _021DE1B0 ; =0x00000F62
ldrh r0, [r5, r0]
cmp r0, #5
beq _021DE198
cmp r0, #0
beq _021DE198
add r0, r5, #0
ldr r1, _021DE1B4 ; =MOD05_021DE2E0
add r0, #0xc
bl MOD05_021DD148
mov r1, #0
add r0, r5, #0
add r2, r1, #0
bl MOD05_021DD2BC
add r0, r5, #0
bl MOD05_021DD164
_021DE198:
add sp, #0x18
pop {r4, r5, r6, pc}
.balign 4, 0
_021DE19C: .word 0x00000F58
_021DE1A0: .word MOD05_021DE1BC
_021DE1A4: .word 0x00006D6F
_021DE1A8: .word 0x00006318
_021DE1AC: .word 0x00000F64
_021DE1B0: .word 0x00000F62
_021DE1B4: .word MOD05_021DE2E0
_021DE1B8: .word 0x00000F66
thumb_func_start MOD05_021DE1BC
MOD05_021DE1BC: ; 0x021DE1BC
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x58
ldr r3, _021DE2D4 ; =0x021F67D8
add r2, sp, #0x48
str r0, [sp]
str r1, [sp, #4]
ldmia r3!, {r0, r1}
str r2, [sp, #0x10]
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldr r3, _021DE2D8 ; =0x021F67C8
add r2, sp, #0x38
str r2, [sp, #0x14]
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldr r1, _021DE2DC ; =0x00000F58
ldr r0, [sp]
ldr r6, [r0, r1]
mov r0, #0
str r0, [sp, #0xc]
ldr r0, [sp, #4]
cmp r0, #0
ble _021DE2D0
add r0, r6, #0
str r0, [sp, #0x18]
add r0, #0xb8
str r0, [sp, #0x18]
mov r0, #7
mvn r0, r0
lsl r0, r0, #0xc
str r0, [sp, #0x1c]
_021DE200:
ldr r0, [sp]
mov r1, #0x20
bl MOD05_021DD048
add r4, r0, #0
beq _021DE2D0
ldr r0, [sp, #0x18]
ldr r5, [r4, #8]
ldr r0, [r0]
add r1, r0, #1
ldr r0, [sp, #0x18]
str r1, [r0]
add r0, r6, #0
add r0, #0xb8
ldr r1, [r0]
mov r0, #0x32
lsl r0, r0, #4
cmp r1, r0
blt _021DE22E
add r1, r6, #0
add r1, #0xb8
mov r0, #0
str r0, [r1]
_021DE22E:
add r0, r6, #0
add r0, #0xb8
ldr r0, [r0]
mov r1, #0xc8
bl _s32_div_f
lsl r0, r0, #2
ldr r1, [sp, #0x10]
str r0, [sp, #8]
ldr r0, [r1, r0]
str r0, [r5, #0x14]
mov r0, #0
str r0, [r5]
bl rand_MT
mov r1, #0x2a
bl _u32_div_f
add r0, r1, #4
str r0, [r5, #4]
sub r0, r0, #4
mov r1, #0xf
bl _s32_div_f
add r7, r0, #0
lsl r1, r7, #0x10
ldr r0, [r4, #4]
lsr r1, r1, #0x10
bl FUN_02020208
add r0, r7, #1
neg r1, r0
str r1, [r5, #0x10]
ldr r2, [sp, #0x14]
ldr r1, [sp, #8]
ldr r1, [r2, r1]
mul r1, r0
str r1, [r5, #8]
mov r0, #0
str r0, [r5, #0xc]
add r0, sp, #0x20
add r1, r4, #0
bl MOD05_021DD168
add r3, sp, #0x20
ldmia r3!, {r0, r1}
add r2, sp, #0x2c
stmia r2!, {r0, r1}
ldr r0, [r3]
str r0, [r2]
bl rand_MT
mov r1, #0x69
lsl r1, r1, #2
bl _u32_div_f
mov r0, #1
sub r2, r0, r7
sub r0, #0x15
mul r0, r2
add r1, r0, r1
mov r0, #7
mvn r0, r0
str r0, [sp, #0x30]
mov r0, #0
str r0, [sp, #0x34]
str r1, [sp, #0x2c]
lsl r0, r1, #0xc
str r0, [sp, #0x2c]
ldr r0, [sp, #0x1c]
add r1, sp, #0x2c
str r0, [sp, #0x30]
ldr r0, [r4, #4]
bl MOD05_021DC4FC
ldr r0, [sp, #0xc]
add r1, r0, #1
ldr r0, [sp, #4]
str r1, [sp, #0xc]
cmp r1, r0
blt _021DE200
_021DE2D0:
add sp, #0x58
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_021DE2D4: .word 0x021F67D8
_021DE2D8: .word 0x021F67C8
_021DE2DC: .word 0x00000F58
thumb_func_start MOD05_021DE2E0
MOD05_021DE2E0: ; 0x021DE2E0
push {r3, r4, r5, lr}
sub sp, #0x18
add r5, r0, #0
add r0, sp, #0
add r1, r5, #0
ldr r4, [r5, #8]
bl MOD05_021DD168
add r3, sp, #0
ldmia r3!, {r0, r1}
add r2, sp, #0xc
stmia r2!, {r0, r1}
ldr r0, [r3]
str r0, [r2]
ldr r0, [r4, #0xc]
cmp r0, #0
beq _021DE30A
cmp r0, #1
beq _021DE356
add sp, #0x18
pop {r3, r4, r5, pc}
_021DE30A:
ldr r0, [r4, #0x10]
ldr r1, [sp, #0xc]
lsl r0, r0, #0xc
add r0, r1, r0
str r0, [sp, #0xc]
ldr r0, [r4, #8]
ldr r1, [sp, #0x10]
lsl r0, r0, #0xc
add r0, r1, r0
str r0, [sp, #0x10]
ldr r1, [r4]
add r0, r1, #1
str r0, [r4]
ldr r0, [r4, #4]
cmp r1, r0
ble _021DE32E
mov r0, #1
str r0, [r4, #0xc]
_021DE32E:
ldr r0, [r4]
ldr r1, [r4, #0x14]
bl _s32_div_f
cmp r1, #0
bne _021DE34A
ldr r0, [r4, #0x10]
sub r0, r0, #1
str r0, [r4, #0x10]
ldr r0, [r4, #8]
cmp r0, #1
ble _021DE34A
sub r0, r0, #1
str r0, [r4, #8]
_021DE34A:
ldr r0, [r5, #4]
add r1, sp, #0xc
bl MOD05_021DC4FC
add sp, #0x18
pop {r3, r4, r5, pc}
_021DE356:
add r0, r5, #0
bl MOD05_021DD100
add sp, #0x18
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021DE360
MOD05_021DE360: ; 0x021DE360
push {r4, r5, r6, lr}
sub sp, #0x18
ldr r0, _021DE5D0 ; =0x00000F58
add r5, r1, #0
add r2, r0, #0
add r2, #0xa
ldrh r2, [r5, r2]
ldr r4, [r5, r0]
cmp r2, #5
bhi _021DE42E
add r2, r2, r2
add r2, pc
ldrh r2, [r2, #6]
lsl r2, r2, #0x10
asr r2, r2, #0x10
add pc, r2
_021DE380: ; jump table
.short _021DE38C - _021DE380 - 2 ; case 0
.short _021DE3F4 - _021DE380 - 2 ; case 1
.short _021DE438 - _021DE380 - 2 ; case 2
.short _021DE4A8 - _021DE380 - 2 ; case 3
.short _021DE502 - _021DE380 - 2 ; case 4
.short _021DE552 - _021DE380 - 2 ; case 5
_021DE38C:
mov r0, #6
str r0, [sp]
mov r0, #3
str r0, [sp, #4]
sub r0, #8
str r0, [sp, #8]
mov r0, #2
str r0, [sp, #0xc]
mov r2, #1
ldr r0, _021DE5D4 ; =MOD05_021DE1BC
str r2, [sp, #0x10]
str r0, [sp, #0x14]
add r0, r4, #0
mov r3, #0x1e
bl MOD05_021DD328
ldr r0, _021DE5D8 ; =0x00006F6F
mov r2, #0x41
str r0, [sp]
ldr r0, _021DE5DC ; =0x00006318
add r1, r4, #0
str r0, [sp, #4]
mov r0, #2
str r0, [sp, #8]
ldr r0, _021DE5E0 ; =0x00000F64
lsl r2, r2, #2
ldrh r0, [r5, r0]
add r1, #0x1c
str r0, [sp, #0xc]
ldr r3, [r5]
add r0, r4, #0
ldr r2, [r3, r2]
add r0, #0x4c
ldr r2, [r2, #0x44]
mov r3, #3
bl MOD05_021DD420
add r0, r4, #0
mov r1, #8
add r0, #0xb4
str r1, [r0]
add r0, r4, #0
mov r1, #0
add r0, #0xb8
str r1, [r0]
add r0, r4, #0
add r0, #0xbc
str r1, [r0]
ldr r0, _021DE5E4 ; =0x00000F62
mov r1, #1
strh r1, [r5, r0]
b _021DE570
_021DE3F4:
add r0, r4, #0
bl MOD05_021DD35C
add r6, r0, #0
add r0, r4, #0
add r0, #0xb4
ldr r0, [r0]
cmp r0, #0
ble _021DE416
add r0, r4, #0
add r0, #0xb4
ldr r0, [r0]
sub r1, r0, #1
add r0, r4, #0
add r0, #0xb4
str r1, [r0]
b _021DE570
_021DE416:
ldr r2, _021DE5E0 ; =0x00000F64
add r0, r4, #0
ldrh r2, [r5, r2]
add r1, r4, #0
add r0, #0x4c
add r1, #0x1c
bl MOD05_021DD474
cmp r0, #1
bne _021DE42E
cmp r6, #3
beq _021DE430
_021DE42E:
b _021DE570
_021DE430:
ldr r0, _021DE5E4 ; =0x00000F62
mov r1, #3
strh r1, [r5, r0]
b _021DE570
_021DE438:
mov r2, #6
mov r3, #3
str r2, [sp]
add r0, r3, #0
str r3, [sp, #4]
sub r0, #8
str r0, [sp, #8]
mov r0, #2
str r0, [sp, #0xc]
mov r0, #1
str r0, [sp, #0x10]
ldr r0, _021DE5D4 ; =MOD05_021DE1BC
str r0, [sp, #0x14]
add r0, r4, #0
bl MOD05_021DD328
ldr r0, _021DE5E0 ; =0x00000F64
ldrh r0, [r5, r0]
cmp r0, #0
beq _021DE47E
mov r0, #0x41
ldr r1, [r5]
lsl r0, r0, #2
ldr r0, [r1, r0]
ldr r2, _021DE5D8 ; =0x00006F6F
ldr r0, [r0, #0x44]
ldr r3, _021DE5DC ; =0x00006318
mov r1, #3
str r0, [r4, #0x1c]
bl MOD05_021DD49C
add r0, r4, #0
add r0, #0x1c
bl MOD05_021DD5EC
_021DE47E:
add r0, r4, #0
mov r1, #0
add r0, #0xb8
str r1, [r0]
add r0, r4, #0
add r0, #0xbc
str r1, [r0]
mov r0, #3
str r0, [sp]
ldr r0, _021DE5E8 ; =MOD05_021DE2E0
ldr r1, _021DE5D4 ; =MOD05_021DE1BC
str r0, [sp, #4]
add r0, r5, #0
mov r2, #0x14
mov r3, #2
bl MOD05_021DD680
ldr r0, _021DE5E4 ; =0x00000F62
mov r1, #3
strh r1, [r5, r0]
b _021DE570
_021DE4A8:
mov r0, #6
ldrsh r1, [r4, r0]
sub r0, r1, #1
strh r0, [r4, #6]
cmp r1, #0
bgt _021DE4C4
mov r1, #4
ldrsh r1, [r4, r1]
add r0, r5, #0
bl MOD05_021DE1BC
mov r0, #8
ldrsh r0, [r4, r0]
strh r0, [r4, #6]
_021DE4C4:
ldr r0, _021DE5EC ; =0x00000F66
ldrh r0, [r5, r0]
cmp r0, #5
bne _021DE570
mov r0, #2
mvn r0, r0
str r0, [sp]
add r0, r4, #0
mov r1, #0
mov r2, #0x1e
mov r3, #5
bl MOD05_021DD350
ldr r0, _021DE5E0 ; =0x00000F64
ldrh r0, [r5, r0]
cmp r0, #0
beq _021DE4F2
add r0, r4, #0
add r0, #0x1c
mov r1, #1
mov r2, #0
bl MOD05_021DD5B4
_021DE4F2:
add r0, r4, #0
mov r1, #0
add r0, #0xb4
str r1, [r0]
ldr r0, _021DE5E4 ; =0x00000F62
mov r1, #4
strh r1, [r5, r0]
b _021DE570
_021DE502:
add r0, r4, #0
bl MOD05_021DD35C
add r6, r0, #0
add r0, r4, #0
add r0, #0xb4
ldr r0, [r0]
cmp r0, #0
ble _021DE524
add r0, r4, #0
add r0, #0xb4
ldr r0, [r0]
sub r1, r0, #1
add r0, r4, #0
add r0, #0xb4
str r1, [r0]
b _021DE570
_021DE524:
ldr r0, _021DE5E0 ; =0x00000F64
ldrh r0, [r5, r0]
cmp r0, #0
beq _021DE536
add r0, r4, #0
add r0, #0x1c
bl MOD05_021DD5D0
b _021DE538
_021DE536:
mov r0, #1
_021DE538:
cmp r0, #1
bne _021DE570
cmp r6, #3
bne _021DE570
add r0, r5, #0
ldr r1, [r5, #0x40]
add r0, #0xc
cmp r1, r0
bne _021DE570
ldr r0, _021DE5E4 ; =0x00000F62
mov r1, #5
strh r1, [r5, r0]
b _021DE570
_021DE552:
add r0, #0xc
ldrh r0, [r5, r0]
cmp r0, #0
beq _021DE56A
mov r2, #0
str r2, [sp]
str r2, [sp, #4]
ldr r0, [r4, #0x1c]
mov r1, #1
add r3, r2, #0
bl MOD05_021DBA40
_021DE56A:
ldr r0, [r5, #4]
bl MOD05_021DCB6C
_021DE570:
ldr r0, _021DE5E4 ; =0x00000F62
ldrh r0, [r5, r0]
cmp r0, #5
beq _021DE5CA
cmp r0, #0
beq _021DE5CA
add r0, r5, #0
ldr r1, _021DE5E8 ; =MOD05_021DE2E0
add r0, #0xc
bl MOD05_021DD148
mov r1, #0
add r0, r5, #0
add r2, r1, #0
bl MOD05_021DD2BC
add r0, r5, #0
bl MOD05_021DD164
add r0, r4, #0
add r0, #0xbc
ldr r0, [r0]
add r0, r0, #6
lsr r2, r0, #0x1f
lsl r1, r0, #0x18
sub r1, r1, r2
mov r0, #0x18
ror r1, r0
add r0, r4, #0
add r1, r2, r1
add r0, #0xbc
str r1, [r0]
add r4, #0xbc
ldr r1, [r4]
ldr r0, _021DE5F0 ; =0x000001FF
add r2, r1, #0
neg r1, r1
and r2, r0
lsl r1, r1, #0x10
lsl r0, r0, #0x10
and r0, r1
add r1, r2, #0
orr r1, r0
ldr r0, _021DE5F4 ; =0x04000018
str r1, [r0]
_021DE5CA:
add sp, #0x18
pop {r4, r5, r6, pc}
nop
_021DE5D0: .word 0x00000F58
_021DE5D4: .word MOD05_021DE1BC
_021DE5D8: .word 0x00006F6F
_021DE5DC: .word 0x00006318
_021DE5E0: .word 0x00000F64
_021DE5E4: .word 0x00000F62
_021DE5E8: .word MOD05_021DE2E0
_021DE5EC: .word 0x00000F66
_021DE5F0: .word 0x000001FF
_021DE5F4: .word 0x04000018
thumb_func_start MOD05_021DE5F8
MOD05_021DE5F8: ; 0x021DE5F8
push {r3, r4, r5, lr}
sub sp, #0x10
ldr r2, _021DE74C ; =0x00000F58
add r4, r1, #0
add r0, r2, #0
add r0, #0xa
ldrh r0, [r4, r0]
ldr r5, [r4, r2]
cmp r0, #5
bls _021DE60E
b _021DE746
_021DE60E:
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021DE61A: ; jump table
.short _021DE626 - _021DE61A - 2 ; case 0
.short _021DE65E - _021DE61A - 2 ; case 1
.short _021DE694 - _021DE61A - 2 ; case 2
.short _021DE6C2 - _021DE61A - 2 ; case 3
.short _021DE6EE - _021DE61A - 2 ; case 4
.short _021DE728 - _021DE61A - 2 ; case 5
_021DE626:
ldr r0, _021DE750 ; =0x0000716F
add r2, #0xc
str r0, [sp]
ldr r0, _021DE754 ; =0x00006B5A
add r1, r5, #0
str r0, [sp, #4]
mov r0, #2
str r0, [sp, #8]
ldrh r0, [r4, r2]
mov r2, #0x41
lsl r2, r2, #2
str r0, [sp, #0xc]
ldr r3, [r4]
add r0, r5, #0
ldr r2, [r3, r2]
add r0, #0x30
ldr r2, [r2, #0x44]
mov r3, #3
bl MOD05_021DD420
mov r0, #0x10
add r5, #0x98
str r0, [r5]
ldr r0, _021DE758 ; =0x00000F62
mov r1, #1
add sp, #0x10
strh r1, [r4, r0]
pop {r3, r4, r5, pc}
_021DE65E:
add r0, r5, #0
add r0, #0x98
ldr r0, [r0]
cmp r0, #0
ble _021DE678
add r0, r5, #0
add r0, #0x98
ldr r0, [r0]
add r5, #0x98
sub r0, r0, #1
add sp, #0x10
str r0, [r5]
pop {r3, r4, r5, pc}
_021DE678:
add r2, #0xc
ldrh r2, [r4, r2]
add r0, r5, #0
add r0, #0x30
add r1, r5, #0
bl MOD05_021DD474
cmp r0, #1
bne _021DE746
ldr r0, _021DE758 ; =0x00000F62
mov r1, #3
add sp, #0x10
strh r1, [r4, r0]
pop {r3, r4, r5, pc}
_021DE694:
add r2, #0xc
ldrh r0, [r4, r2]
cmp r0, #0
beq _021DE6B8
mov r0, #0x41
ldr r1, [r4]
lsl r0, r0, #2
ldr r0, [r1, r0]
ldr r2, _021DE750 ; =0x0000716F
ldr r0, [r0, #0x44]
ldr r3, _021DE754 ; =0x00006B5A
mov r1, #3
str r0, [r5]
bl MOD05_021DD49C
add r0, r5, #0
bl MOD05_021DD5EC
_021DE6B8:
ldr r0, _021DE758 ; =0x00000F62
mov r1, #3
add sp, #0x10
strh r1, [r4, r0]
pop {r3, r4, r5, pc}
_021DE6C2:
add r0, r2, #0
add r0, #0xe
ldrh r0, [r4, r0]
cmp r0, #5
bne _021DE746
add r2, #0xc
ldrh r0, [r4, r2]
cmp r0, #0
beq _021DE6DE
add r0, r5, #0
mov r1, #2
mov r2, #0
bl MOD05_021DD5B4
_021DE6DE:
mov r0, #0x10
add r5, #0x98
str r0, [r5]
ldr r0, _021DE758 ; =0x00000F62
mov r1, #4
add sp, #0x10
strh r1, [r4, r0]
pop {r3, r4, r5, pc}
_021DE6EE:
add r0, r5, #0
add r0, #0x98
ldr r0, [r0]
cmp r0, #0
ble _021DE708
add r0, r5, #0
add r0, #0x98
ldr r0, [r0]
add r5, #0x98
sub r0, r0, #1
add sp, #0x10
str r0, [r5]
pop {r3, r4, r5, pc}
_021DE708:
add r2, #0xc
ldrh r0, [r4, r2]
cmp r0, #0
beq _021DE718
add r0, r5, #0
bl MOD05_021DD5D0
b _021DE71A
_021DE718:
mov r0, #1
_021DE71A:
cmp r0, #1
bne _021DE746
ldr r0, _021DE758 ; =0x00000F62
mov r1, #5
add sp, #0x10
strh r1, [r4, r0]
pop {r3, r4, r5, pc}
_021DE728:
add r2, #0xc
ldrh r0, [r4, r2]
cmp r0, #0
beq _021DE740
mov r2, #0
str r2, [sp]
str r2, [sp, #4]
ldr r0, [r5]
mov r1, #1
add r3, r2, #0
bl MOD05_021DBA40
_021DE740:
ldr r0, [r4, #4]
bl MOD05_021DCB6C
_021DE746:
add sp, #0x10
pop {r3, r4, r5, pc}
nop
_021DE74C: .word 0x00000F58
_021DE750: .word 0x0000716F
_021DE754: .word 0x00006B5A
_021DE758: .word 0x00000F62
thumb_func_start MOD05_021DE75C
MOD05_021DE75C: ; 0x021DE75C
push {r3, r4, r5, lr}
sub sp, #0x10
ldr r2, _021DE8B0 ; =0x00000F58
add r4, r1, #0
add r0, r2, #0
add r0, #0xa
ldrh r0, [r4, r0]
ldr r5, [r4, r2]
cmp r0, #5
bls _021DE772
b _021DE8AA
_021DE772:
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021DE77E: ; jump table
.short _021DE78A - _021DE77E - 2 ; case 0
.short _021DE7C2 - _021DE77E - 2 ; case 1
.short _021DE7F8 - _021DE77E - 2 ; case 2
.short _021DE826 - _021DE77E - 2 ; case 3
.short _021DE852 - _021DE77E - 2 ; case 4
.short _021DE88C - _021DE77E - 2 ; case 5
_021DE78A:
ldr r0, _021DE8B4 ; =0x0000658F
add r2, #0xc
str r0, [sp]
ldr r0, _021DE8B8 ; =0x00006B5A
add r1, r5, #0
str r0, [sp, #4]
mov r0, #2
str r0, [sp, #8]
ldrh r0, [r4, r2]
mov r2, #0x41
lsl r2, r2, #2
str r0, [sp, #0xc]
ldr r3, [r4]
add r0, r5, #0
ldr r2, [r3, r2]
add r0, #0x30
ldr r2, [r2, #0x44]
mov r3, #3
bl MOD05_021DD420
mov r0, #0x10
add r5, #0x98
str r0, [r5]
ldr r0, _021DE8BC ; =0x00000F62
mov r1, #1
add sp, #0x10
strh r1, [r4, r0]
pop {r3, r4, r5, pc}
_021DE7C2:
add r0, r5, #0
add r0, #0x98
ldr r0, [r0]
cmp r0, #0
ble _021DE7DC
add r0, r5, #0
add r0, #0x98
ldr r0, [r0]
add r5, #0x98
sub r0, r0, #1
add sp, #0x10
str r0, [r5]
pop {r3, r4, r5, pc}
_021DE7DC:
add r2, #0xc
ldrh r2, [r4, r2]
add r0, r5, #0
add r0, #0x30
add r1, r5, #0
bl MOD05_021DD474
cmp r0, #1
bne _021DE8AA
ldr r0, _021DE8BC ; =0x00000F62
mov r1, #3
add sp, #0x10
strh r1, [r4, r0]
pop {r3, r4, r5, pc}
_021DE7F8:
add r2, #0xc
ldrh r0, [r4, r2]
cmp r0, #0
beq _021DE81C
mov r0, #0x41
ldr r1, [r4]
lsl r0, r0, #2
ldr r0, [r1, r0]
ldr r2, _021DE8B4 ; =0x0000658F
ldr r0, [r0, #0x44]
ldr r3, _021DE8B8 ; =0x00006B5A
mov r1, #3
str r0, [r5]
bl MOD05_021DD49C
add r0, r5, #0
bl MOD05_021DD5EC
_021DE81C:
ldr r0, _021DE8BC ; =0x00000F62
mov r1, #3
add sp, #0x10
strh r1, [r4, r0]
pop {r3, r4, r5, pc}
_021DE826:
add r0, r2, #0
add r0, #0xe
ldrh r0, [r4, r0]
cmp r0, #5
bne _021DE8AA
add r2, #0xc
ldrh r0, [r4, r2]
cmp r0, #0
beq _021DE842
add r0, r5, #0
mov r1, #2
mov r2, #0
bl MOD05_021DD5B4
_021DE842:
mov r0, #0x10
add r5, #0x98
str r0, [r5]
ldr r0, _021DE8BC ; =0x00000F62
mov r1, #4
add sp, #0x10
strh r1, [r4, r0]
pop {r3, r4, r5, pc}
_021DE852:
add r0, r5, #0
add r0, #0x98
ldr r0, [r0]
cmp r0, #0
ble _021DE86C
add r0, r5, #0
add r0, #0x98
ldr r0, [r0]
add r5, #0x98
sub r0, r0, #1
add sp, #0x10
str r0, [r5]
pop {r3, r4, r5, pc}
_021DE86C:
add r2, #0xc
ldrh r0, [r4, r2]
cmp r0, #0
beq _021DE87C
add r0, r5, #0
bl MOD05_021DD5D0
b _021DE87E
_021DE87C:
mov r0, #1
_021DE87E:
cmp r0, #1
bne _021DE8AA
ldr r0, _021DE8BC ; =0x00000F62
mov r1, #5
add sp, #0x10
strh r1, [r4, r0]
pop {r3, r4, r5, pc}
_021DE88C:
add r2, #0xc
ldrh r0, [r4, r2]
cmp r0, #0
beq _021DE8A4
mov r2, #0
str r2, [sp]
str r2, [sp, #4]
ldr r0, [r5]
mov r1, #1
add r3, r2, #0
bl MOD05_021DBA40
_021DE8A4:
ldr r0, [r4, #4]
bl MOD05_021DCB6C
_021DE8AA:
add sp, #0x10
pop {r3, r4, r5, pc}
nop
_021DE8B0: .word 0x00000F58
_021DE8B4: .word 0x0000658F
_021DE8B8: .word 0x00006B5A
_021DE8BC: .word 0x00000F62
thumb_func_start MOD05_021DE8C0
MOD05_021DE8C0: ; 0x021DE8C0
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x10
ldr r0, _021DEA58 ; =0x00000F58
add r4, r1, #0
add r1, r0, #0
add r1, #0xa
ldrh r1, [r4, r1]
ldr r5, [r4, r0]
cmp r1, #5
bls _021DE8D6
b _021DEA54
_021DE8D6:
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021DE8E2: ; jump table
.short _021DE8EE - _021DE8E2 - 2 ; case 0
.short _021DE94C - _021DE8E2 - 2 ; case 1
.short _021DE97A - _021DE8E2 - 2 ; case 2
.short _021DE9C8 - _021DE8E2 - 2 ; case 3
.short _021DE9FC - _021DE8E2 - 2 ; case 4
.short _021DEA36 - _021DE8E2 - 2 ; case 5
_021DE8EE:
ldr r1, _021DEA5C ; =0x00007A0F
mov r2, #0x41
str r1, [sp]
ldr r1, _021DEA60 ; =0x00007FFF
add r0, #0xc
str r1, [sp, #4]
mov r1, #2
str r1, [sp, #8]
ldrh r0, [r4, r0]
add r1, r5, #0
lsl r2, r2, #2
str r0, [sp, #0xc]
ldr r3, [r4]
add r0, r5, #0
ldr r2, [r3, r2]
add r0, #0x44
ldr r2, [r2, #0x44]
add r1, #0x14
mov r3, #5
bl MOD05_021DD420
add r0, r5, #0
mov r1, #0
mov r2, #0x10
mov r3, #0x1e
bl MOD05_021DC6EC
mov r0, #0
mov r1, #0x10
bl MOD05_021DC6D4
ldr r1, _021DEA64 ; =0x0400000C
mov r0, #3
ldrh r2, [r1]
bic r2, r0
mov r0, #3
orr r0, r2
strh r0, [r1]
mov r0, #4
mov r1, #1
bl FUN_0201E6E4
ldr r0, _021DEA68 ; =0x00000F62
mov r1, #1
add sp, #0x10
strh r1, [r4, r0]
pop {r3, r4, r5, r6, r7, pc}
_021DE94C:
add r0, r5, #0
add r0, #0x14
bl MOD05_021DD5D0
add r6, r0, #0
add r0, r5, #0
bl MOD05_021DC6FC
add r7, r0, #0
ldr r0, [r5]
mov r1, #0x10
sub r1, r1, r0
bl MOD05_021DC6D4
cmp r6, #1
bne _021DEA54
cmp r7, #1
bne _021DEA54
ldr r0, _021DEA68 ; =0x00000F62
mov r1, #3
add sp, #0x10
strh r1, [r4, r0]
pop {r3, r4, r5, r6, r7, pc}
_021DE97A:
add r0, #0xc
ldrh r0, [r4, r0]
cmp r0, #0
beq _021DE9A0
mov r0, #0x41
ldr r1, [r4]
lsl r0, r0, #2
ldr r0, [r1, r0]
ldr r2, _021DEA5C ; =0x00007A0F
ldr r0, [r0, #0x44]
ldr r3, _021DEA60 ; =0x00007FFF
mov r1, #5
str r0, [r5, #0x14]
bl MOD05_021DD49C
add r5, #0x14
add r0, r5, #0
bl MOD05_021DD5EC
_021DE9A0:
mov r0, #0x10
mov r1, #0
bl MOD05_021DC6D4
ldr r1, _021DEA64 ; =0x0400000C
mov r0, #3
ldrh r2, [r1]
bic r2, r0
mov r0, #3
orr r0, r2
strh r0, [r1]
mov r0, #4
mov r1, #1
bl FUN_0201E6E4
ldr r0, _021DEA68 ; =0x00000F62
mov r1, #3
add sp, #0x10
strh r1, [r4, r0]
pop {r3, r4, r5, r6, r7, pc}
_021DE9C8:
add r1, r0, #0
add r1, #0xe
ldrh r1, [r4, r1]
cmp r1, #5
bne _021DEA54
add r0, #0xc
ldrh r0, [r4, r0]
cmp r0, #0
beq _021DE9E6
add r0, r5, #0
add r0, #0x14
mov r1, #1
mov r2, #0
bl MOD05_021DD5B4
_021DE9E6:
add r0, r5, #0
mov r1, #0x10
mov r2, #0
mov r3, #0x1e
bl MOD05_021DC6EC
ldr r0, _021DEA68 ; =0x00000F62
mov r1, #4
add sp, #0x10
strh r1, [r4, r0]
pop {r3, r4, r5, r6, r7, pc}
_021DE9FC:
add r0, #0xc
ldrh r0, [r4, r0]
cmp r0, #0
beq _021DEA10
add r0, r5, #0
add r0, #0x14
bl MOD05_021DD5D0
add r6, r0, #0
b _021DEA12
_021DEA10:
mov r6, #1
_021DEA12:
add r0, r5, #0
bl MOD05_021DC6FC
add r7, r0, #0
ldr r0, [r5]
mov r1, #0x10
sub r1, r1, r0
bl MOD05_021DC6D4
cmp r6, #1
bne _021DEA54
cmp r7, #1
bne _021DEA54
ldr r0, _021DEA68 ; =0x00000F62
mov r1, #5
add sp, #0x10
strh r1, [r4, r0]
pop {r3, r4, r5, r6, r7, pc}
_021DEA36:
add r0, #0xc
ldrh r0, [r4, r0]
cmp r0, #0
beq _021DEA4E
mov r2, #0
str r2, [sp]
str r2, [sp, #4]
ldr r0, [r5, #0x14]
mov r1, #1
add r3, r2, #0
bl MOD05_021DBA40
_021DEA4E:
ldr r0, [r4, #4]
bl MOD05_021DCB6C
_021DEA54:
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_021DEA58: .word 0x00000F58
_021DEA5C: .word 0x00007A0F
_021DEA60: .word 0x00007FFF
_021DEA64: .word 0x0400000C
_021DEA68: .word 0x00000F62
thumb_func_start MOD05_021DEA6C
MOD05_021DEA6C: ; 0x021DEA6C
push {r4, r5, r6, lr}
sub sp, #0x18
ldr r0, _021DEC8C ; =0x00000F58
add r5, r1, #0
add r2, r0, #0
add r2, #0xa
ldrh r2, [r5, r2]
ldr r4, [r5, r0]
cmp r2, #5
bhi _021DEB2E
add r2, r2, r2
add r2, pc
ldrh r2, [r2, #6]
lsl r2, r2, #0x10
asr r2, r2, #0x10
add pc, r2
_021DEA8C: ; jump table
.short _021DEA98 - _021DEA8C - 2 ; case 0
.short _021DEAF6 - _021DEA8C - 2 ; case 1
.short _021DEB38 - _021DEA8C - 2 ; case 2
.short _021DEB9C - _021DEA8C - 2 ; case 3
.short _021DEBF4 - _021DEA8C - 2 ; case 4
.short _021DEC42 - _021DEA8C - 2 ; case 5
_021DEA98:
mov r0, #8
str r0, [sp]
mov r2, #1
str r2, [sp, #4]
sub r0, r2, #3
str r0, [sp, #8]
mov r0, #4
str r0, [sp, #0xc]
mov r0, #2
str r0, [sp, #0x10]
ldr r0, _021DEC90 ; =MOD05_021DECAC
mov r3, #0xf
str r0, [sp, #0x14]
add r0, r4, #0
bl MOD05_021DD328
ldr r0, _021DEC94 ; =0x00006EEF
mov r2, #0x41
str r0, [sp]
ldr r0, _021DEC98 ; =0x0000169A
lsl r2, r2, #2
str r0, [sp, #4]
mov r0, #1
str r0, [sp, #8]
ldr r0, _021DEC9C ; =0x00000F64
add r1, r4, #0
ldrh r0, [r5, r0]
add r1, #0x1c
str r0, [sp, #0xc]
ldr r3, [r5]
add r0, r4, #0
ldr r2, [r3, r2]
add r0, #0x4c
ldr r2, [r2, #0x44]
mov r3, #3
bl MOD05_021DD420
add r0, r4, #0
mov r1, #0
add r0, #0xb4
str r1, [r0]
add r4, #0xb8
str r1, [r4]
ldr r0, _021DECA0 ; =0x00000F62
mov r1, #1
strh r1, [r5, r0]
b _021DEC60
_021DEAF6:
add r0, r4, #0
bl MOD05_021DD35C
add r6, r0, #0
add r0, r4, #0
add r0, #0xb4
ldr r0, [r0]
cmp r0, #0
ble _021DEB16
add r0, r4, #0
add r0, #0xb4
ldr r0, [r0]
add r4, #0xb4
sub r0, r0, #1
str r0, [r4]
b _021DEC60
_021DEB16:
ldr r2, _021DEC9C ; =0x00000F64
add r0, r4, #0
ldrh r2, [r5, r2]
add r4, #0x1c
add r0, #0x4c
add r1, r4, #0
bl MOD05_021DD474
cmp r0, #1
bne _021DEB2E
cmp r6, #3
beq _021DEB30
_021DEB2E:
b _021DEC60
_021DEB30:
ldr r0, _021DECA0 ; =0x00000F62
mov r1, #3
strh r1, [r5, r0]
b _021DEC60
_021DEB38:
mov r2, #8
mov r3, #1
str r2, [sp]
str r3, [sp, #4]
sub r0, r3, #3
str r0, [sp, #8]
mov r0, #4
str r0, [sp, #0xc]
mov r0, #2
str r0, [sp, #0x10]
ldr r0, _021DEC90 ; =MOD05_021DECAC
str r0, [sp, #0x14]
add r0, r4, #0
bl MOD05_021DD328
ldr r0, _021DEC9C ; =0x00000F64
ldrh r0, [r5, r0]
cmp r0, #0
beq _021DEB7C
mov r0, #0x41
ldr r1, [r5]
lsl r0, r0, #2
ldr r0, [r1, r0]
ldr r2, _021DEC94 ; =0x00006EEF
ldr r0, [r0, #0x44]
ldr r3, _021DEC98 ; =0x0000169A
mov r1, #3
str r0, [r4, #0x1c]
bl MOD05_021DD49C
add r0, r4, #0
add r0, #0x1c
bl MOD05_021DD5EC
_021DEB7C:
mov r0, #0
add r4, #0xb8
str r0, [r4]
mov r3, #2
ldr r0, _021DECA4 ; =MOD05_021DEDB4
str r3, [sp]
str r0, [sp, #4]
ldr r1, _021DEC90 ; =MOD05_021DECAC
add r0, r5, #0
mov r2, #0x18
bl MOD05_021DD680
ldr r0, _021DECA0 ; =0x00000F62
mov r1, #3
strh r1, [r5, r0]
b _021DEC60
_021DEB9C:
mov r0, #6
ldrsh r1, [r4, r0]
sub r0, r1, #1
strh r0, [r4, #6]
cmp r1, #0
bgt _021DEBB8
mov r1, #4
ldrsh r1, [r4, r1]
add r0, r5, #0
bl MOD05_021DECAC
mov r0, #8
ldrsh r0, [r4, r0]
strh r0, [r4, #6]
_021DEBB8:
ldr r0, _021DECA8 ; =0x00000F66
ldrh r0, [r5, r0]
cmp r0, #5
bne _021DEC60
mov r0, #2
mvn r0, r0
str r0, [sp]
add r0, r4, #0
mov r1, #0
mov r2, #0xf
mov r3, #2
bl MOD05_021DD350
ldr r0, _021DEC9C ; =0x00000F64
ldrh r0, [r5, r0]
cmp r0, #0
beq _021DEBE6
add r0, r4, #0
add r0, #0x1c
mov r1, #1
mov r2, #0
bl MOD05_021DD5B4
_021DEBE6:
mov r0, #0x1f
add r4, #0xb4
str r0, [r4]
ldr r0, _021DECA0 ; =0x00000F62
mov r1, #4
strh r1, [r5, r0]
b _021DEC60
_021DEBF4:
add r0, r4, #0
bl MOD05_021DD35C
add r6, r0, #0
add r0, r4, #0
add r0, #0xb4
ldr r0, [r0]
cmp r0, #0
ble _021DEC14
add r0, r4, #0
add r0, #0xb4
ldr r0, [r0]
add r4, #0xb4
sub r0, r0, #1
str r0, [r4]
b _021DEC60
_021DEC14:
ldr r0, _021DEC9C ; =0x00000F64
ldrh r0, [r5, r0]
cmp r0, #0
beq _021DEC26
add r4, #0x1c
add r0, r4, #0
bl MOD05_021DD5D0
b _021DEC28
_021DEC26:
mov r0, #1
_021DEC28:
cmp r0, #1
bne _021DEC60
cmp r6, #3
bne _021DEC60
add r0, r5, #0
ldr r1, [r5, #0x40]
add r0, #0xc
cmp r1, r0
bne _021DEC60
ldr r0, _021DECA0 ; =0x00000F62
mov r1, #5
strh r1, [r5, r0]
b _021DEC60
_021DEC42:
add r0, #0xc
ldrh r0, [r5, r0]
cmp r0, #0
beq _021DEC5A
mov r2, #0
str r2, [sp]
str r2, [sp, #4]
ldr r0, [r4, #0x1c]
mov r1, #1
add r3, r2, #0
bl MOD05_021DBA40
_021DEC5A:
ldr r0, [r5, #4]
bl MOD05_021DCB6C
_021DEC60:
ldr r0, _021DECA0 ; =0x00000F62
ldrh r0, [r5, r0]
cmp r0, #5
beq _021DEC86
cmp r0, #0
beq _021DEC86
add r0, r5, #0
ldr r1, _021DECA4 ; =MOD05_021DEDB4
add r0, #0xc
bl MOD05_021DD148
mov r1, #0
add r0, r5, #0
add r2, r1, #0
bl MOD05_021DD2BC
add r0, r5, #0
bl MOD05_021DD164
_021DEC86:
add sp, #0x18
pop {r4, r5, r6, pc}
nop
_021DEC8C: .word 0x00000F58
_021DEC90: .word MOD05_021DECAC
_021DEC94: .word 0x00006EEF
_021DEC98: .word 0x0000169A
_021DEC9C: .word 0x00000F64
_021DECA0: .word 0x00000F62
_021DECA4: .word MOD05_021DEDB4
_021DECA8: .word 0x00000F66
thumb_func_start MOD05_021DECAC
MOD05_021DECAC: ; 0x021DECAC
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x18
str r1, [sp, #4]
ldr r1, _021DEDA0 ; =0x00000F58
str r0, [sp]
ldr r4, [r0, r1]
mov r1, #5
add r0, r4, #0
add r0, #0xb8
ldr r0, [r0]
lsl r1, r1, #6
add r0, r0, #1
bl _s32_div_f
add r0, r4, #0
add r0, #0xb8
str r1, [r0]
add r4, #0xb8
ldr r0, [r4]
mov r1, #0x28
bl _s32_div_f
mov r1, #0
str r1, [sp, #8]
ldr r1, [sp, #4]
cmp r1, #0
ble _021DED9A
lsl r6, r0, #2
_021DECE4:
ldr r0, [sp]
mov r1, #0x20
bl MOD05_021DD048
add r4, r0, #0
beq _021DED9A
ldr r5, [r4, #8]
mov r0, #0
str r0, [r5]
bl rand_MT
mov r1, #0x14
bl _u32_div_f
add r1, #0xf
str r1, [r5, #4]
sub r1, #0xf
add r0, r1, #0
mov r1, #6
bl _s32_div_f
mov r1, #3
sub r7, r1, r0
ldr r1, _021DEDA4 ; =0x021F687C
add r0, r7, #1
ldr r1, [r1, r6]
mul r1, r0
str r1, [r5, #8]
ldr r1, _021DEDA8 ; =0x021F683C
ldr r1, [r1, r6]
mul r1, r0
str r1, [r5, #0x10]
mov r0, #0
str r0, [r5, #0xc]
ldr r0, _021DEDA8 ; =0x021F683C
ldr r0, [r0, r6]
str r0, [r5, #0x14]
bl rand_MT
mov r1, #0xfa
lsl r1, r1, #2
bl _u32_div_f
ldr r0, _021DEDAC ; =0x00000309
cmp r1, r0
bne _021DED4E
ldr r1, [r5, #8]
mov r7, #4
lsr r0, r1, #0x1f
add r0, r1, r0
asr r0, r0, #1
add r0, r1, r0
str r0, [r5, #8]
_021DED4E:
lsl r1, r7, #0x10
ldr r0, [r4, #4]
lsr r1, r1, #0x10
bl FUN_02020208
add r0, sp, #0xc
add r1, r4, #0
bl MOD05_021DD168
bl rand_MT
mov r1, #0x18
bl _u32_div_f
ldr r0, _021DEDB0 ; =0x00000106
add r0, r1, r0
str r0, [sp, #0xc]
lsl r0, r0, #0xc
str r0, [sp, #0xc]
bl rand_MT
mov r1, #0xc0
bl _u32_div_f
sub r1, #0x40
str r1, [sp, #0x10]
lsl r0, r1, #0xc
str r0, [sp, #0x10]
ldr r0, [r4, #4]
add r1, sp, #0xc
bl MOD05_021DC4FC
ldr r0, [sp, #8]
add r1, r0, #1
ldr r0, [sp, #4]
str r1, [sp, #8]
cmp r1, r0
blt _021DECE4
_021DED9A:
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
nop
_021DEDA0: .word 0x00000F58
_021DEDA4: .word 0x021F687C
_021DEDA8: .word 0x021F683C
_021DEDAC: .word 0x00000309
_021DEDB0: .word 0x00000106
thumb_func_start MOD05_021DEDB4
MOD05_021DEDB4: ; 0x021DEDB4
push {r3, r4, r5, lr}
sub sp, #0x18
add r5, r0, #0
add r0, sp, #0
add r1, r5, #0
ldr r4, [r5, #8]
bl MOD05_021DD168
add r3, sp, #0
ldmia r3!, {r0, r1}
add r2, sp, #0xc
stmia r2!, {r0, r1}
ldr r0, [r3]
str r0, [r2]
ldr r0, [r4, #0xc]
cmp r0, #0
beq _021DEDDE
cmp r0, #1
beq _021DEE22
add sp, #0x18
pop {r3, r4, r5, pc}
_021DEDDE:
ldr r0, [r4, #0x10]
ldr r1, [sp, #0xc]
lsl r0, r0, #0xc
add r0, r1, r0
str r0, [sp, #0xc]
ldr r0, [r4, #8]
ldr r1, [sp, #0x10]
lsl r0, r0, #0xc
add r0, r1, r0
str r0, [sp, #0x10]
ldr r0, [r4]
mov r1, #5
bl _s32_div_f
cmp r1, #0
bne _021DEE06
ldr r1, [r4, #0x10]
ldr r0, [r4, #0x14]
add r0, r1, r0
str r0, [r4, #0x10]
_021DEE06:
ldr r1, [r4]
add r0, r1, #1
str r0, [r4]
ldr r0, [r4, #4]
cmp r1, r0
ble _021DEE16
mov r0, #1
str r0, [r4, #0xc]
_021DEE16:
ldr r0, [r5, #4]
add r1, sp, #0xc
bl MOD05_021DC4FC
add sp, #0x18
pop {r3, r4, r5, pc}
_021DEE22:
add r0, r5, #0
bl MOD05_021DD100
add sp, #0x18
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021DEE2C
MOD05_021DEE2C: ; 0x021DEE2C
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x20
ldr r0, _021DF0F0 ; =0x00000F58
add r5, r1, #0
add r2, r0, #0
add r2, #0xa
ldrh r2, [r5, r2]
ldr r4, [r5, r0]
cmp r2, #5
bhi _021DEEFE
add r2, r2, r2
add r2, pc
ldrh r2, [r2, #6]
lsl r2, r2, #0x10
asr r2, r2, #0x10
add pc, r2
_021DEE4C: ; jump table
.short _021DEE58 - _021DEE4C - 2 ; case 0
.short _021DEEC4 - _021DEE4C - 2 ; case 1
.short _021DEF10 - _021DEE4C - 2 ; case 2
.short _021DEF8A - _021DEE4C - 2 ; case 3
.short _021DF01E - _021DEE4C - 2 ; case 4
.short _021DF06C - _021DEE4C - 2 ; case 5
_021DEE58:
mov r0, #8
str r0, [sp]
mov r2, #1
str r2, [sp, #4]
sub r0, r2, #3
str r0, [sp, #8]
mov r0, #4
str r0, [sp, #0xc]
mov r0, #2
str r0, [sp, #0x10]
ldr r0, _021DF0F4 ; =MOD05_021DECAC
mov r3, #0xf
str r0, [sp, #0x14]
add r0, r4, #0
bl MOD05_021DD328
ldr r0, _021DF0F8 ; =0x00006EEF
mov r2, #0x41
str r0, [sp]
ldr r0, _021DF0FC ; =0x0000169A
lsl r2, r2, #2
str r0, [sp, #4]
mov r0, #1
str r0, [sp, #8]
ldr r0, _021DF100 ; =0x00000F64
add r1, r4, #0
ldrh r0, [r5, r0]
add r1, #0x1c
str r0, [sp, #0xc]
ldr r3, [r5]
add r0, r4, #0
ldr r2, [r3, r2]
add r0, #0x4c
ldr r2, [r2, #0x44]
mov r3, #3
bl MOD05_021DD420
add r0, r4, #0
mov r1, #0
add r0, #0xb4
str r1, [r0]
add r0, r4, #0
add r0, #0xb8
str r1, [r0]
add r0, r4, #0
add r0, #0xbc
str r1, [r0]
add r0, r4, #0
add r0, #0xc0
str r1, [r0]
ldr r0, _021DF104 ; =0x00000F62
mov r1, #1
strh r1, [r5, r0]
b _021DF08A
_021DEEC4:
add r0, r4, #0
bl MOD05_021DD35C
add r6, r0, #0
add r0, r4, #0
add r0, #0xb4
ldr r0, [r0]
cmp r0, #0
ble _021DEEE6
add r0, r4, #0
add r0, #0xb4
ldr r0, [r0]
sub r1, r0, #1
add r0, r4, #0
add r0, #0xb4
str r1, [r0]
b _021DF08A
_021DEEE6:
ldr r2, _021DF100 ; =0x00000F64
add r0, r4, #0
ldrh r2, [r5, r2]
add r1, r4, #0
add r0, #0x4c
add r1, #0x1c
bl MOD05_021DD474
cmp r0, #1
bne _021DEEFE
cmp r6, #3
beq _021DEF00
_021DEEFE:
b _021DF08A
_021DEF00:
ldr r0, _021DF104 ; =0x00000F62
mov r1, #3
strh r1, [r5, r0]
mov r0, #4
mov r1, #1
bl FUN_0201E6E4
b _021DF08A
_021DEF10:
mov r2, #8
mov r3, #1
str r2, [sp]
str r3, [sp, #4]
sub r0, r3, #3
str r0, [sp, #8]
mov r0, #4
str r0, [sp, #0xc]
mov r0, #2
str r0, [sp, #0x10]
ldr r0, _021DF0F4 ; =MOD05_021DECAC
str r0, [sp, #0x14]
add r0, r4, #0
bl MOD05_021DD328
ldr r0, _021DF100 ; =0x00000F64
ldrh r0, [r5, r0]
cmp r0, #0
beq _021DEF54
mov r0, #0x41
ldr r1, [r5]
lsl r0, r0, #2
ldr r0, [r1, r0]
ldr r2, _021DF0F8 ; =0x00006EEF
ldr r0, [r0, #0x44]
ldr r3, _021DF0FC ; =0x0000169A
mov r1, #3
str r0, [r4, #0x1c]
bl MOD05_021DD49C
add r0, r4, #0
add r0, #0x1c
bl MOD05_021DD5EC
_021DEF54:
add r0, r4, #0
mov r1, #0
add r0, #0xb8
str r1, [r0]
add r0, r4, #0
add r0, #0xbc
str r1, [r0]
add r0, r4, #0
add r0, #0xc0
str r1, [r0]
mov r3, #2
ldr r0, _021DF108 ; =MOD05_021DEDB4
str r3, [sp]
str r0, [sp, #4]
ldr r1, _021DF0F4 ; =MOD05_021DECAC
add r0, r5, #0
mov r2, #0x18
bl MOD05_021DD680
ldr r0, _021DF104 ; =0x00000F62
mov r1, #3
strh r1, [r5, r0]
mov r0, #4
mov r1, #1
bl FUN_0201E6E4
b _021DF08A
_021DEF8A:
mov r0, #6
ldrsh r1, [r4, r0]
sub r0, r1, #1
strh r0, [r4, #6]
cmp r1, #0
bgt _021DEFDA
add r0, r4, #0
add r0, #0xb8
ldr r0, [r0]
mov r1, #0x28
bl _s32_div_f
lsl r1, r0, #2
ldr r0, _021DF10C ; =0x021F681C
ldr r1, [r0, r1]
add r0, r4, #0
add r0, #0xc0
str r1, [r0]
add r0, r4, #0
add r0, #0xc0
ldr r1, [r0]
mov r0, #5
mvn r0, r0
cmp r1, r0
bgt _021DEFCA
mov r1, #4
ldrsh r1, [r4, r1]
add r0, r5, #0
lsl r1, r1, #1
bl MOD05_021DECAC
b _021DEFD4
_021DEFCA:
mov r1, #4
ldrsh r1, [r4, r1]
add r0, r5, #0
bl MOD05_021DECAC
_021DEFD4:
mov r0, #8
ldrsh r0, [r4, r0]
strh r0, [r4, #6]
_021DEFDA:
ldr r0, _021DF110 ; =0x00000F66
ldrh r0, [r5, r0]
cmp r0, #5
bne _021DF08A
mov r0, #2
mvn r0, r0
str r0, [sp]
add r0, r4, #0
mov r1, #0
mov r2, #0xf
mov r3, #2
bl MOD05_021DD350
ldr r0, _021DF100 ; =0x00000F64
ldrh r0, [r5, r0]
cmp r0, #0
beq _021DF008
add r0, r4, #0
add r0, #0x1c
mov r1, #1
mov r2, #0
bl MOD05_021DD5B4
_021DF008:
add r0, r4, #0
mov r1, #0x1f
add r0, #0xb4
str r1, [r0]
ldr r1, _021DF104 ; =0x00000F62
mov r0, #4
strh r0, [r5, r1]
mov r1, #0
bl FUN_0201E6E4
b _021DF08A
_021DF01E:
add r0, r4, #0
bl MOD05_021DD35C
add r6, r0, #0
add r0, r4, #0
add r0, #0xb4
ldr r0, [r0]
cmp r0, #0
ble _021DF040
add r0, r4, #0
add r0, #0xb4
ldr r0, [r0]
sub r1, r0, #1
add r0, r4, #0
add r0, #0xb4
str r1, [r0]
b _021DF08A
_021DF040:
ldr r0, _021DF100 ; =0x00000F64
ldrh r0, [r5, r0]
cmp r0, #0
beq _021DF052
add r0, r4, #0
add r0, #0x1c
bl MOD05_021DD5D0
add r7, r0, #0
_021DF052:
cmp r7, #1
bne _021DF08A
cmp r6, #3
bne _021DF08A
add r0, r5, #0
ldr r1, [r5, #0x40]
add r0, #0xc
cmp r1, r0
bne _021DF08A
ldr r0, _021DF104 ; =0x00000F62
mov r1, #5
strh r1, [r5, r0]
b _021DF08A
_021DF06C:
add r0, #0xc
ldrh r0, [r5, r0]
cmp r0, #0
beq _021DF084
mov r2, #0
str r2, [sp]
str r2, [sp, #4]
ldr r0, [r4, #0x1c]
mov r1, #1
add r3, r2, #0
bl MOD05_021DBA40
_021DF084:
ldr r0, [r5, #4]
bl MOD05_021DCB6C
_021DF08A:
ldr r0, _021DF104 ; =0x00000F62
ldrh r0, [r5, r0]
cmp r0, #5
beq _021DF0EC
cmp r0, #0
beq _021DF0EC
add r0, r5, #0
ldr r1, _021DF108 ; =MOD05_021DEDB4
add r0, #0xc
bl MOD05_021DD148
add r0, r5, #0
add r1, sp, #0x1c
add r2, sp, #0x18
bl MOD05_021DD2BC
add r0, r5, #0
bl MOD05_021DD164
add r0, r4, #0
add r0, #0xbc
ldr r0, [r0]
add r0, r0, #6
lsr r2, r0, #0x1f
lsl r1, r0, #0x18
sub r1, r1, r2
mov r0, #0x18
ror r1, r0
add r0, r4, #0
add r1, r2, r1
add r0, #0xbc
str r1, [r0]
add r4, #0xbc
ldr r3, [r4]
ldr r0, [sp, #0x1c]
lsl r1, r3, #1
sub r1, r1, r0
add r2, r1, #0
ldr r1, [sp, #0x18]
ldr r0, _021DF114 ; =0x000001FF
sub r1, r1, r3
and r2, r0
lsl r1, r1, #0x10
lsl r0, r0, #0x10
and r0, r1
add r1, r2, #0
orr r1, r0
ldr r0, _021DF118 ; =0x04000018
str r1, [r0]
_021DF0EC:
add sp, #0x20
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_021DF0F0: .word 0x00000F58
_021DF0F4: .word MOD05_021DECAC
_021DF0F8: .word 0x00006EEF
_021DF0FC: .word 0x0000169A
_021DF100: .word 0x00000F64
_021DF104: .word 0x00000F62
_021DF108: .word MOD05_021DEDB4
_021DF10C: .word 0x021F681C
_021DF110: .word 0x00000F66
_021DF114: .word 0x000001FF
_021DF118: .word 0x04000018
thumb_func_start MOD05_021DF11C
MOD05_021DF11C: ; 0x021DF11C
push {r4, r5, r6, lr}
sub sp, #0x18
ldr r0, _021DF3BC ; =0x00000F58
add r5, r1, #0
add r2, r0, #0
add r2, #0xa
ldrh r2, [r5, r2]
ldr r4, [r5, r0]
cmp r2, #5
bhi _021DF1EA
add r2, r2, r2
add r2, pc
ldrh r2, [r2, #6]
lsl r2, r2, #0x10
asr r2, r2, #0x10
add pc, r2
_021DF13C: ; jump table
.short _021DF148 - _021DF13C - 2 ; case 0
.short _021DF1B0 - _021DF13C - 2 ; case 1
.short _021DF1FC - _021DF13C - 2 ; case 2
.short _021DF270 - _021DF13C - 2 ; case 3
.short _021DF2F8 - _021DF13C - 2 ; case 4
.short _021DF348 - _021DF13C - 2 ; case 5
_021DF148:
mov r0, #0xa
str r0, [sp]
mov r2, #1
str r2, [sp, #4]
sub r0, r2, #5
str r0, [sp, #8]
mov r0, #2
str r0, [sp, #0xc]
mov r0, #3
str r0, [sp, #0x10]
ldr r0, _021DF3C0 ; =MOD05_021DF3E8
mov r3, #0x1e
str r0, [sp, #0x14]
add r0, r4, #0
bl MOD05_021DD328
ldr r0, _021DF3C4 ; =0x00006B6F
mov r2, #0x41
str r0, [sp]
ldr r0, _021DF3C8 ; =0x00006318
lsl r2, r2, #2
str r0, [sp, #4]
mov r0, #1
str r0, [sp, #8]
ldr r0, _021DF3CC ; =0x00000F64
add r1, r4, #0
ldrh r0, [r5, r0]
add r1, #0x1c
str r0, [sp, #0xc]
ldr r3, [r5]
add r0, r4, #0
ldr r2, [r3, r2]
add r0, #0x4c
ldr r2, [r2, #0x44]
mov r3, #3
bl MOD05_021DD420
add r0, r4, #0
mov r1, #0x10
add r0, #0xb4
str r1, [r0]
add r0, r4, #0
mov r1, #0
add r0, #0xb8
str r1, [r0]
add r0, r4, #0
add r0, #0xbc
str r1, [r0]
ldr r0, _021DF3D0 ; =0x00000F62
mov r1, #1
strh r1, [r5, r0]
b _021DF366
_021DF1B0:
add r0, r4, #0
bl MOD05_021DD35C
add r6, r0, #0
add r0, r4, #0
add r0, #0xb4
ldr r0, [r0]
cmp r0, #0
ble _021DF1D2
add r0, r4, #0
add r0, #0xb4
ldr r0, [r0]
sub r1, r0, #1
add r0, r4, #0
add r0, #0xb4
str r1, [r0]
b _021DF366
_021DF1D2:
ldr r2, _021DF3CC ; =0x00000F64
add r0, r4, #0
ldrh r2, [r5, r2]
add r1, r4, #0
add r0, #0x4c
add r1, #0x1c
bl MOD05_021DD474
cmp r0, #1
bne _021DF1EA
cmp r6, #3
beq _021DF1EC
_021DF1EA:
b _021DF366
_021DF1EC:
ldr r0, _021DF3D0 ; =0x00000F62
mov r1, #3
strh r1, [r5, r0]
mov r0, #4
mov r1, #1
bl FUN_0201E6E4
b _021DF366
_021DF1FC:
mov r2, #0xa
mov r3, #1
str r2, [sp]
str r3, [sp, #4]
sub r0, r3, #5
str r0, [sp, #8]
mov r0, #2
str r0, [sp, #0xc]
mov r0, #3
str r0, [sp, #0x10]
ldr r0, _021DF3C0 ; =MOD05_021DF3E8
str r0, [sp, #0x14]
add r0, r4, #0
bl MOD05_021DD328
ldr r0, _021DF3CC ; =0x00000F64
ldrh r0, [r5, r0]
cmp r0, #0
beq _021DF240
mov r0, #0x41
ldr r1, [r5]
lsl r0, r0, #2
ldr r0, [r1, r0]
ldr r2, _021DF3C4 ; =0x00006B6F
ldr r0, [r0, #0x44]
ldr r3, _021DF3C8 ; =0x00006318
mov r1, #3
str r0, [r4, #0x1c]
bl MOD05_021DD49C
add r0, r4, #0
add r0, #0x1c
bl MOD05_021DD5EC
_021DF240:
add r0, r4, #0
mov r1, #0
add r0, #0xb8
str r1, [r0]
add r0, r4, #0
add r0, #0xbc
str r1, [r0]
mov r3, #2
ldr r0, _021DF3D4 ; =MOD05_021DF500
str r3, [sp]
str r0, [sp, #4]
ldr r1, _021DF3C0 ; =MOD05_021DF3E8
add r0, r5, #0
mov r2, #0x14
bl MOD05_021DD680
ldr r0, _021DF3D0 ; =0x00000F62
mov r1, #3
strh r1, [r5, r0]
mov r0, #4
mov r1, #1
bl FUN_0201E6E4
b _021DF366
_021DF270:
mov r1, #6
ldrsh r2, [r4, r1]
sub r0, r2, #1
strh r0, [r4, #6]
cmp r2, #0
bgt _021DF2B4
add r0, r4, #0
add r0, #0xb8
ldr r2, [r0]
sub r1, #0xe
asr r0, r2, #8
lsr r0, r0, #0x17
add r0, r2, r0
asr r0, r0, #9
lsl r2, r0, #2
ldr r0, _021DF3D8 ; =0x021F67F8
ldr r0, [r0, r2]
cmp r0, r1
bgt _021DF2A4
mov r1, #4
ldrsh r1, [r4, r1]
add r0, r5, #0
lsl r1, r1, #1
bl MOD05_021DF3E8
b _021DF2AE
_021DF2A4:
mov r1, #4
ldrsh r1, [r4, r1]
add r0, r5, #0
bl MOD05_021DF3E8
_021DF2AE:
mov r0, #8
ldrsh r0, [r4, r0]
strh r0, [r4, #6]
_021DF2B4:
ldr r0, _021DF3DC ; =0x00000F66
ldrh r0, [r5, r0]
cmp r0, #5
bne _021DF366
mov r0, #3
mvn r0, r0
str r0, [sp]
add r0, r4, #0
mov r1, #0
mov r2, #0xc
mov r3, #4
bl MOD05_021DD350
ldr r0, _021DF3CC ; =0x00000F64
ldrh r0, [r5, r0]
cmp r0, #0
beq _021DF2E2
add r0, r4, #0
add r0, #0x1c
mov r1, #1
mov r2, #0
bl MOD05_021DD5B4
_021DF2E2:
add r0, r4, #0
mov r1, #0x14
add r0, #0xb4
str r1, [r0]
ldr r1, _021DF3D0 ; =0x00000F62
mov r0, #4
strh r0, [r5, r1]
mov r1, #0
bl FUN_0201E6E4
b _021DF366
_021DF2F8:
add r0, r4, #0
bl MOD05_021DD35C
add r6, r0, #0
add r0, r4, #0
add r0, #0xb4
ldr r0, [r0]
cmp r0, #0
ble _021DF31A
add r0, r4, #0
add r0, #0xb4
ldr r0, [r0]
sub r1, r0, #1
add r0, r4, #0
add r0, #0xb4
str r1, [r0]
b _021DF366
_021DF31A:
ldr r0, _021DF3CC ; =0x00000F64
ldrh r0, [r5, r0]
cmp r0, #0
beq _021DF32C
add r0, r4, #0
add r0, #0x1c
bl MOD05_021DD5D0
b _021DF32E
_021DF32C:
mov r0, #1
_021DF32E:
cmp r0, #1
bne _021DF366
cmp r6, #3
bne _021DF366
add r0, r5, #0
ldr r1, [r5, #0x40]
add r0, #0xc
cmp r1, r0
bne _021DF366
ldr r0, _021DF3D0 ; =0x00000F62
mov r1, #5
strh r1, [r5, r0]
b _021DF366
_021DF348:
add r0, #0xc
ldrh r0, [r5, r0]
cmp r0, #0
beq _021DF360
mov r2, #0
str r2, [sp]
str r2, [sp, #4]
ldr r0, [r4, #0x1c]
mov r1, #1
add r3, r2, #0
bl MOD05_021DBA40
_021DF360:
ldr r0, [r5, #4]
bl MOD05_021DCB6C
_021DF366:
ldr r0, _021DF3D0 ; =0x00000F62
ldrh r0, [r5, r0]
cmp r0, #5
beq _021DF3B8
cmp r0, #0
beq _021DF3B8
add r0, r5, #0
ldr r1, _021DF3D4 ; =MOD05_021DF500
add r0, #0xc
bl MOD05_021DD148
add r0, r5, #0
bl MOD05_021DD164
add r0, r4, #0
add r0, #0xbc
ldr r0, [r0]
add r0, #0xc
lsr r2, r0, #0x1f
lsl r1, r0, #0x18
sub r1, r1, r2
mov r0, #0x18
ror r1, r0
add r0, r4, #0
add r1, r2, r1
add r0, #0xbc
str r1, [r0]
add r4, #0xbc
ldr r3, [r4]
ldr r0, _021DF3E0 ; =0x000001FF
lsl r1, r3, #1
add r2, r1, #0
neg r1, r3
and r2, r0
lsl r1, r1, #0x10
lsl r0, r0, #0x10
and r0, r1
add r1, r2, #0
orr r1, r0
ldr r0, _021DF3E4 ; =0x04000018
str r1, [r0]
_021DF3B8:
add sp, #0x18
pop {r4, r5, r6, pc}
.balign 4, 0
_021DF3BC: .word 0x00000F58
_021DF3C0: .word MOD05_021DF3E8
_021DF3C4: .word 0x00006B6F
_021DF3C8: .word 0x00006318
_021DF3CC: .word 0x00000F64
_021DF3D0: .word 0x00000F62
_021DF3D4: .word MOD05_021DF500
_021DF3D8: .word 0x021F67F8
_021DF3DC: .word 0x00000F66
_021DF3E0: .word 0x000001FF
_021DF3E4: .word 0x04000018
thumb_func_start MOD05_021DF3E8
MOD05_021DF3E8: ; 0x021DF3E8
push {r4, r5, r6, r7, lr}
sub sp, #0x24
ldr r2, _021DF4F4 ; =0x00000F58
str r0, [sp]
ldr r0, [r0, r2]
add r2, r0, #0
add r2, #0xb8
ldr r2, [r2]
add r3, r2, #1
add r2, r0, #0
add r2, #0xb8
str r3, [r2]
add r2, r0, #0
add r2, #0xb8
ldr r3, [r2]
mov r2, #2
lsl r2, r2, #0xa
cmp r3, r2
blt _021DF416
add r2, r0, #0
mov r3, #0
add r2, #0xb8
str r3, [r2]
_021DF416:
add r0, #0xb8
ldr r2, [r0]
asr r0, r2, #8
lsr r0, r0, #0x17
add r0, r2, r0
asr r2, r0, #9
mov r0, #0
str r0, [sp, #8]
lsl r0, r1, #2
str r0, [sp, #4]
cmp r0, #0
ble _021DF4EE
lsl r4, r2, #2
_021DF430:
ldr r0, [sp]
mov r1, #0x20
bl MOD05_021DD048
add r6, r0, #0
beq _021DF4EE
ldr r5, [r6, #8]
mov r0, #0
str r0, [r5]
bl rand_MT
mov r1, #6
bl _u32_div_f
add r1, #0x12
str r1, [r5, #4]
bl rand_MT
add r7, r0, #0
mov r1, #3
and r7, r1
lsl r1, r7, #0x10
ldr r0, [r6, #4]
lsr r1, r1, #0x10
bl FUN_02020208
ldr r1, _021DF4F8 ; =0x021F67F8
add r0, r7, #1
ldr r1, [r1, r4]
mul r1, r0
str r1, [r5, #0x10]
ldr r1, _021DF4FC ; =0x021F67E8
ldr r1, [r1, r4]
mul r1, r0
mov r0, #0
str r1, [r5, #8]
str r0, [r5, #0xc]
cmp r7, #3
bne _021DF492
ldr r0, _021DF4F8 ; =0x021F67F8
ldr r1, [r5, #0x10]
ldr r0, [r0, r4]
add r0, r1, r0
str r0, [r5, #0x10]
ldr r0, _021DF4FC ; =0x021F67E8
ldr r1, [r5, #8]
ldr r0, [r0, r4]
add r0, r1, r0
str r0, [r5, #8]
_021DF492:
ldr r0, _021DF4F8 ; =0x021F67F8
add r1, r6, #0
ldr r0, [r0, r4]
str r0, [r5, #0x14]
add r0, sp, #0xc
bl MOD05_021DD168
add r3, sp, #0xc
ldmia r3!, {r0, r1}
add r2, sp, #0x18
stmia r2!, {r0, r1}
ldr r0, [r3]
str r0, [r2]
bl rand_MT
mov r1, #0x18
bl _u32_div_f
mov r0, #1
lsl r0, r0, #8
add r0, r1, r0
str r0, [sp, #0x18]
bl rand_MT
mov r1, #0xa8
bl _u32_div_f
ldr r0, [sp, #0x18]
sub r1, #0x20
lsl r0, r0, #0xc
str r0, [sp, #0x18]
str r1, [sp, #0x1c]
lsl r0, r1, #0xc
str r0, [sp, #0x1c]
mov r0, #0
str r0, [sp, #0x20]
ldr r0, [r6, #4]
add r1, sp, #0x18
bl MOD05_021DC4FC
ldr r0, [sp, #8]
add r1, r0, #1
ldr r0, [sp, #4]
str r1, [sp, #8]
cmp r1, r0
blt _021DF430
_021DF4EE:
add sp, #0x24
pop {r4, r5, r6, r7, pc}
nop
_021DF4F4: .word 0x00000F58
_021DF4F8: .word 0x021F67F8
_021DF4FC: .word 0x021F67E8
thumb_func_start MOD05_021DF500
MOD05_021DF500: ; 0x021DF500
push {r3, r4, r5, lr}
sub sp, #0x18
add r5, r0, #0
add r0, sp, #0
add r1, r5, #0
ldr r4, [r5, #8]
bl MOD05_021DD168
add r3, sp, #0
ldmia r3!, {r0, r1}
add r2, sp, #0xc
stmia r2!, {r0, r1}
ldr r0, [r3]
str r0, [r2]
ldr r0, [r4, #0xc]
cmp r0, #0
beq _021DF52A
cmp r0, #1
beq _021DF57C
add sp, #0x18
pop {r3, r4, r5, pc}
_021DF52A:
ldr r0, [r4, #0x10]
ldr r1, [sp, #0xc]
lsl r0, r0, #0xc
add r0, r1, r0
str r0, [sp, #0xc]
ldr r0, [r4, #8]
ldr r1, [sp, #0x10]
lsl r0, r0, #0xc
add r0, r1, r0
str r0, [sp, #0x10]
ldr r1, [r4]
add r0, r1, #1
str r0, [r4]
ldr r0, [r4, #4]
cmp r1, r0
ble _021DF54E
mov r0, #1
str r0, [r4, #0xc]
_021DF54E:
ldr r0, [r4]
lsr r2, r0, #0x1f
lsl r1, r0, #0x1e
sub r1, r1, r2
mov r0, #0x1e
ror r1, r0
add r0, r2, r1
bne _021DF570
ldr r1, [r4, #0x10]
ldr r0, [r4, #0x14]
add r0, r1, r0
str r0, [r4, #0x10]
ldr r0, [r4, #8]
cmp r0, #1
ble _021DF570
sub r0, r0, #1
str r0, [r4, #8]
_021DF570:
ldr r0, [r5, #4]
add r1, sp, #0xc
bl MOD05_021DC4FC
add sp, #0x18
pop {r3, r4, r5, pc}
_021DF57C:
add r0, r5, #0
bl MOD05_021DD100
add sp, #0x18
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021DF588
MOD05_021DF588: ; 0x021DF588
push {r4, r5, r6, lr}
sub sp, #0x18
ldr r0, _021DF794 ; =0x00000F58
add r5, r1, #0
add r2, r0, #0
add r2, #0xa
ldrh r2, [r5, r2]
ldr r4, [r5, r0]
cmp r2, #5
bhi _021DF642
add r2, r2, r2
add r2, pc
ldrh r2, [r2, #6]
lsl r2, r2, #0x10
asr r2, r2, #0x10
add pc, r2
_021DF5A8: ; jump table
.short _021DF5B4 - _021DF5A8 - 2 ; case 0
.short _021DF60A - _021DF5A8 - 2 ; case 1
.short _021DF64C - _021DF5A8 - 2 ; case 2
.short _021DF6AA - _021DF5A8 - 2 ; case 3
.short _021DF702 - _021DF5A8 - 2 ; case 4
.short _021DF74C - _021DF5A8 - 2 ; case 5
_021DF5B4:
mov r0, #0x14
str r0, [sp]
mov r2, #2
str r2, [sp, #4]
sub r0, r2, #4
str r0, [sp, #8]
mov r0, #4
str r0, [sp, #0xc]
ldr r0, _021DF798 ; =MOD05_021DF7B4
str r2, [sp, #0x10]
str r0, [sp, #0x14]
add r0, r4, #0
mov r3, #0x10
bl MOD05_021DD328
ldr r0, _021DF79C ; =0x0000716F
mov r2, #0x41
str r0, [sp]
ldr r0, _021DF7A0 ; =0x00006B5A
lsl r2, r2, #2
str r0, [sp, #4]
mov r0, #1
str r0, [sp, #8]
ldr r0, _021DF7A4 ; =0x00000F64
add r1, r4, #0
ldrh r0, [r5, r0]
add r1, #0x1c
str r0, [sp, #0xc]
ldr r3, [r5]
add r0, r4, #0
ldr r2, [r3, r2]
add r0, #0x4c
ldr r2, [r2, #0x44]
mov r3, #3
bl MOD05_021DD420
mov r0, #0
add r4, #0xb4
str r0, [r4]
ldr r0, _021DF7A8 ; =0x00000F62
mov r1, #1
strh r1, [r5, r0]
b _021DF76A
_021DF60A:
add r0, r4, #0
bl MOD05_021DD35C
add r6, r0, #0
add r0, r4, #0
add r0, #0xb4
ldr r0, [r0]
cmp r0, #0
ble _021DF62A
add r0, r4, #0
add r0, #0xb4
ldr r0, [r0]
add r4, #0xb4
sub r0, r0, #1
str r0, [r4]
b _021DF76A
_021DF62A:
ldr r2, _021DF7A4 ; =0x00000F64
add r0, r4, #0
ldrh r2, [r5, r2]
add r4, #0x1c
add r0, #0x4c
add r1, r4, #0
bl MOD05_021DD474
cmp r0, #1
bne _021DF642
cmp r6, #3
beq _021DF644
_021DF642:
b _021DF76A
_021DF644:
ldr r0, _021DF7A8 ; =0x00000F62
mov r1, #3
strh r1, [r5, r0]
b _021DF76A
_021DF64C:
mov r2, #0x14
mov r3, #2
str r2, [sp]
str r3, [sp, #4]
sub r0, r3, #4
str r0, [sp, #8]
mov r0, #4
str r0, [sp, #0xc]
ldr r0, _021DF798 ; =MOD05_021DF7B4
str r3, [sp, #0x10]
str r0, [sp, #0x14]
add r0, r4, #0
bl MOD05_021DD328
ldr r0, _021DF7A4 ; =0x00000F64
ldrh r0, [r5, r0]
cmp r0, #0
beq _021DF68E
mov r0, #0x41
ldr r1, [r5]
lsl r0, r0, #2
ldr r0, [r1, r0]
ldr r2, _021DF79C ; =0x0000716F
ldr r0, [r0, #0x44]
ldr r3, _021DF7A0 ; =0x00006B5A
mov r1, #3
str r0, [r4, #0x1c]
bl MOD05_021DD49C
add r4, #0x1c
add r0, r4, #0
bl MOD05_021DD5EC
_021DF68E:
mov r0, #1
str r0, [sp]
ldr r0, _021DF7AC ; =MOD05_021DF8E4
ldr r1, _021DF798 ; =MOD05_021DF7B4
str r0, [sp, #4]
add r0, r5, #0
mov r2, #0x14
mov r3, #0xa
bl MOD05_021DD680
ldr r0, _021DF7A8 ; =0x00000F62
mov r1, #3
strh r1, [r5, r0]
b _021DF76A
_021DF6AA:
mov r0, #6
ldrsh r1, [r4, r0]
sub r0, r1, #1
strh r0, [r4, #6]
cmp r1, #0
bgt _021DF6C6
mov r1, #4
ldrsh r1, [r4, r1]
add r0, r5, #0
bl MOD05_021DF7B4
mov r0, #8
ldrsh r0, [r4, r0]
strh r0, [r4, #6]
_021DF6C6:
ldr r0, _021DF7B0 ; =0x00000F66
ldrh r0, [r5, r0]
cmp r0, #5
bne _021DF76A
mov r0, #9
mvn r0, r0
str r0, [sp]
add r0, r4, #0
mov r1, #0
mov r2, #0x10
mov r3, #6
bl MOD05_021DD350
ldr r0, _021DF7A4 ; =0x00000F64
ldrh r0, [r5, r0]
cmp r0, #0
beq _021DF6F4
add r0, r4, #0
add r0, #0x1c
mov r1, #1
mov r2, #0
bl MOD05_021DD5B4
_021DF6F4:
mov r0, #0x14
add r4, #0xb4
str r0, [r4]
ldr r0, _021DF7A8 ; =0x00000F62
mov r1, #4
strh r1, [r5, r0]
b _021DF76A
_021DF702:
add r0, r4, #0
bl MOD05_021DD35C
add r6, r0, #0
add r0, r4, #0
add r0, #0xb4
ldr r0, [r0]
cmp r0, #0
ble _021DF722
add r0, r4, #0
add r0, #0xb4
ldr r0, [r0]
add r4, #0xb4
sub r0, r0, #1
str r0, [r4]
b _021DF76A
_021DF722:
ldr r2, _021DF7A4 ; =0x00000F64
add r0, r4, #0
ldrh r2, [r5, r2]
add r4, #0x1c
add r0, #0x4c
add r1, r4, #0
bl MOD05_021DD474
cmp r0, #1
bne _021DF76A
cmp r6, #3
bne _021DF76A
add r0, r5, #0
ldr r1, [r5, #0x40]
add r0, #0xc
cmp r1, r0
bne _021DF76A
ldr r0, _021DF7A8 ; =0x00000F62
mov r1, #5
strh r1, [r5, r0]
b _021DF76A
_021DF74C:
add r0, #0xc
ldrh r0, [r5, r0]
cmp r0, #0
beq _021DF764
mov r2, #0
str r2, [sp]
str r2, [sp, #4]
ldr r0, [r4, #0x1c]
mov r1, #1
add r3, r2, #0
bl MOD05_021DBA40
_021DF764:
ldr r0, [r5, #4]
bl MOD05_021DCB6C
_021DF76A:
ldr r0, _021DF7A8 ; =0x00000F62
ldrh r0, [r5, r0]
cmp r0, #5
beq _021DF790
cmp r0, #0
beq _021DF790
add r0, r5, #0
ldr r1, _021DF7AC ; =MOD05_021DF8E4
add r0, #0xc
bl MOD05_021DD148
mov r1, #0
add r0, r5, #0
add r2, r1, #0
bl MOD05_021DD2BC
add r0, r5, #0
bl MOD05_021DD164
_021DF790:
add sp, #0x18
pop {r4, r5, r6, pc}
.balign 4, 0
_021DF794: .word 0x00000F58
_021DF798: .word MOD05_021DF7B4
_021DF79C: .word 0x0000716F
_021DF7A0: .word 0x00006B5A
_021DF7A4: .word 0x00000F64
_021DF7A8: .word 0x00000F62
_021DF7AC: .word MOD05_021DF8E4
_021DF7B0: .word 0x00000F66
thumb_func_start MOD05_021DF7B4
MOD05_021DF7B4: ; 0x021DF7B4
push {r4, r5, r6, r7, lr}
sub sp, #0x1c
str r0, [sp]
mov r0, #0
str r0, [sp, #0xc]
add r0, r1, #0
str r1, [sp, #4]
cmp r0, #0
bgt _021DF7C8
b _021DF8E0
_021DF7C8:
ldr r0, [sp]
mov r1, #0x20
bl MOD05_021DD048
add r4, r0, #0
bne _021DF7D6
b _021DF8E0
_021DF7D6:
ldr r5, [r4, #8]
mov r0, #0
str r0, [r5]
bl rand_MT
mov r1, #5
bl _u32_div_f
add r0, r1, #7
str r0, [r5, #4]
bl rand_MT
mov r1, #0xfa
lsl r1, r1, #2
bl _u32_div_f
lsr r2, r1, #0x1f
lsl r1, r1, #0x1f
sub r1, r1, r2
mov r0, #0x1f
ror r1, r0
add r0, r2, r1
bne _021DF808
mov r0, #1
b _021DF80C
_021DF808:
mov r0, #0
mvn r0, r0
_021DF80C:
str r0, [r5, #8]
mov r0, #1
str r0, [r5, #0xc]
bl rand_MT
mov r1, #6
bl _u32_div_f
add r0, r1, #3
str r0, [r5, #0x10]
bl rand_MT
mov r1, #5
bl _u32_div_f
add r0, r1, #4
str r0, [r5, #0x14]
bl rand_MT
mov r1, #0x14
bl _u32_div_f
str r1, [sp, #8]
add r0, sp, #0x10
add r1, r4, #0
bl MOD05_021DD168
bl rand_MT
mov r1, #6
lsl r1, r1, #6
bl _u32_div_f
sub r1, #0x40
str r1, [sp, #0x10]
bl rand_MT
lsl r0, r0, #0x18
lsr r1, r0, #0x18
ldr r0, [sp, #0x10]
sub r1, #8
lsl r0, r0, #0xc
str r0, [sp, #0x10]
str r1, [sp, #0x14]
lsl r0, r1, #0xc
str r0, [sp, #0x14]
mov r0, #0
str r0, [sp, #0x18]
ldr r0, [r4, #4]
add r1, sp, #0x10
bl MOD05_021DC4FC
ldr r1, [sp, #0x14]
ldr r0, [sp, #0x10]
asr r1, r1, #0xc
asr r0, r0, #0xc
str r1, [sp, #0x14]
mov r1, #3
str r0, [sp, #0x10]
bl _s32_div_f
mov r1, #0x32
sub r6, r1, r0
mov r1, #0xce
sub r7, r1, r0
bpl _021DF89E
bl rand_MT
neg r1, r7
bl _u32_div_f
sub r1, r6, r1
b _021DF8AA
_021DF89E:
bl rand_MT
add r1, r7, #0
bl _u32_div_f
add r1, r6, r1
_021DF8AA:
ldr r0, [sp, #0x14]
cmp r6, r0
bgt _021DF8BC
cmp r1, r0
blt _021DF8BC
ldr r0, [r5, #4]
lsl r0, r0, #1
str r0, [r5, #4]
b _021DF8C6
_021DF8BC:
bl rand_MT
mov r1, #3
and r0, r1
str r0, [sp, #8]
_021DF8C6:
ldr r1, [sp, #8]
ldr r0, [r4, #4]
lsl r1, r1, #0x10
lsr r1, r1, #0x10
bl FUN_02020208
ldr r0, [sp, #0xc]
add r1, r0, #1
ldr r0, [sp, #4]
str r1, [sp, #0xc]
cmp r1, r0
bge _021DF8E0
b _021DF7C8
_021DF8E0:
add sp, #0x1c
pop {r4, r5, r6, r7, pc}
thumb_func_start MOD05_021DF8E4
MOD05_021DF8E4: ; 0x021DF8E4
push {r4, r5, lr}
sub sp, #0xc
add r5, r0, #0
ldr r4, [r5, #8]
add r0, sp, #0
add r1, r5, #0
bl MOD05_021DD168
ldr r0, [r4]
add r1, r0, #1
str r1, [r4]
ldr r0, [r4, #4]
cmp r1, r0
blt _021DF906
add r0, r5, #0
bl MOD05_021DD100
_021DF906:
add sp, #0xc
pop {r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021DF90C
MOD05_021DF90C: ; 0x021DF90C
push {r3, r4, r5, lr}
ldr r0, _021DFA98 ; =0x00000F58
add r5, r1, #0
ldr r4, [r5, r0]
add r0, #0xa
ldrh r0, [r5, r0]
cmp r0, #5
bhi _021DF978
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021DF928: ; jump table
.short _021DF934 - _021DF928 - 2 ; case 0
.short _021DF958 - _021DF928 - 2 ; case 1
.short _021DF9A2 - _021DF928 - 2 ; case 2
.short _021DF9E2 - _021DF928 - 2 ; case 3
.short _021DFA68 - _021DF928 - 2 ; case 4
.short _021DFA90 - _021DF928 - 2 ; case 5
_021DF934:
mov r0, #0
str r0, [r4]
mov r1, #0x10
str r0, [r4, #4]
bl MOD05_021DC6D4
mov r1, #2
ldr r0, _021DFA9C ; =0x04000018
lsl r1, r1, #0x14
str r1, [r0]
mov r0, #4
mov r1, #1
bl FUN_0201E6E4
ldr r0, _021DFAA0 ; =0x00000F62
mov r1, #1
strh r1, [r5, r0]
pop {r3, r4, r5, pc}
_021DF958:
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
cmp r0, #0xa
blt _021DF978
mov r0, #0
str r0, [r4]
ldr r0, [r4, #4]
mov r1, #0x10
add r0, r0, #1
str r0, [r4, #4]
bl MOD05_021DC6D4
ldr r0, [r4, #4]
cmp r0, #0xa
bge _021DF97A
_021DF978:
b _021DFA96
_021DF97A:
bl rand_MT
mov r1, #0x14
bl _u32_div_f
add r1, #0xa
str r1, [r4, #8]
bl rand_MT
mov r1, #3
bl _u32_div_f
add r0, r1, #5
str r0, [r4, #0xc]
mov r0, #1
str r0, [r4, #0x10]
ldr r0, _021DFAA0 ; =0x00000F62
mov r1, #3
strh r1, [r5, r0]
pop {r3, r4, r5, pc}
_021DF9A2:
mov r0, #0
str r0, [r4]
mov r0, #0xa
str r0, [r4, #4]
mov r1, #2
ldr r0, _021DFA9C ; =0x04000018
lsl r1, r1, #0x14
str r1, [r0]
ldr r0, [r4, #4]
mov r1, #0x10
bl MOD05_021DC6D4
bl rand_MT
mov r1, #0x14
bl _u32_div_f
add r1, #0xa
str r1, [r4, #8]
bl rand_MT
mov r1, #3
bl _u32_div_f
add r0, r1, #5
str r0, [r4, #0xc]
mov r0, #1
str r0, [r4, #0x10]
ldr r0, _021DFAA0 ; =0x00000F62
mov r1, #3
strh r1, [r5, r0]
pop {r3, r4, r5, pc}
_021DF9E2:
ldr r0, [r4]
add r1, r0, #1
str r1, [r4]
ldr r0, [r4, #8]
cmp r1, r0
blt _021DFA50
mov r0, #0
str r0, [r4]
ldr r0, [r4, #0x10]
cmp r0, #1
ldr r0, [r4, #4]
bne _021DFA26
sub r1, r0, #1
str r1, [r4, #4]
ldr r0, [r4, #0xc]
cmp r1, r0
bgt _021DFA50
bl rand_MT
mov r1, #0xf
bl _u32_div_f
add r1, #0xa
str r1, [r4, #8]
bl rand_MT
mov r1, #3
bl _u32_div_f
add r0, r1, #7
str r0, [r4, #0xc]
mov r0, #0
str r0, [r4, #0x10]
b _021DFA50
_021DFA26:
add r1, r0, #1
str r1, [r4, #4]
ldr r0, [r4, #0xc]
cmp r1, r0
blt _021DFA50
bl rand_MT
mov r1, #0x14
bl _u32_div_f
add r1, #0xa
str r1, [r4, #8]
bl rand_MT
mov r1, #3
bl _u32_div_f
add r0, r1, #5
str r0, [r4, #0xc]
mov r0, #1
str r0, [r4, #0x10]
_021DFA50:
ldr r0, [r4, #4]
mov r1, #0x10
bl MOD05_021DC6D4
ldr r0, _021DFAA4 ; =0x00000F66
ldrh r1, [r5, r0]
cmp r1, #5
bne _021DFA96
mov r1, #4
sub r0, r0, #4
strh r1, [r5, r0]
pop {r3, r4, r5, pc}
_021DFA68:
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
cmp r0, #0xa
blt _021DFA96
mov r0, #0
str r0, [r4]
ldr r0, [r4, #4]
mov r1, #0x10
sub r0, r0, #1
str r0, [r4, #4]
bl MOD05_021DC6D4
ldr r0, [r4, #4]
cmp r0, #0
bgt _021DFA96
ldr r0, _021DFAA0 ; =0x00000F62
mov r1, #5
strh r1, [r5, r0]
pop {r3, r4, r5, pc}
_021DFA90:
ldr r0, [r5, #4]
bl MOD05_021DCB6C
_021DFA96:
pop {r3, r4, r5, pc}
.balign 4, 0
_021DFA98: .word 0x00000F58
_021DFA9C: .word 0x04000018
_021DFAA0: .word 0x00000F62
_021DFAA4: .word 0x00000F66
thumb_func_start MOD05_021DFAA8
MOD05_021DFAA8: ; 0x021DFAA8
push {r3, r4, r5, lr}
sub sp, #0x18
add r5, r0, #0
mov r0, #0x18
str r0, [sp]
mov r2, #1
str r2, [sp, #4]
sub r0, r2, #4
str r0, [sp, #8]
mov r0, #2
str r0, [sp, #0xc]
mov r0, #4
str r0, [sp, #0x10]
ldr r0, _021DFB1C ; =MOD05_021DFEE0
add r4, r1, #0
str r0, [sp, #0x14]
add r0, r4, #0
add r1, r5, #0
mov r3, #0xf
bl MOD05_021DD328
ldr r0, _021DFB20 ; =0x00006F6F
mov r2, #0x41
str r0, [sp]
ldr r0, _021DFB24 ; =0x00006B5A
add r1, r4, #0
str r0, [sp, #4]
mov r0, #1
str r0, [sp, #8]
ldr r0, _021DFB28 ; =0x00000F64
lsl r2, r2, #2
ldrh r0, [r5, r0]
add r1, #0x1c
str r0, [sp, #0xc]
ldr r3, [r5]
add r0, r4, #0
ldr r2, [r3, r2]
add r0, #0x4c
ldr r2, [r2, #0x44]
mov r3, #3
bl MOD05_021DD420
add r0, r4, #0
mov r1, #0
add r0, #0xb4
str r1, [r0]
add r0, r4, #0
add r0, #0xb8
str r1, [r0]
add r4, #0xbc
str r1, [r4]
ldr r1, _021DFB2C ; =0x0000063B
add r0, r5, #0
bl MOD05_021E0FA4
add sp, #0x18
pop {r3, r4, r5, pc}
nop
_021DFB1C: .word MOD05_021DFEE0
_021DFB20: .word 0x00006F6F
_021DFB24: .word 0x00006B5A
_021DFB28: .word 0x00000F64
_021DFB2C: .word 0x0000063B
thumb_func_start MOD05_021DFB30
MOD05_021DFB30: ; 0x021DFB30
push {r4, r5, r6, lr}
add r4, r1, #0
add r5, r0, #0
add r0, r4, #0
bl MOD05_021DD35C
add r6, r0, #0
add r0, r4, #0
add r0, #0xb4
ldr r0, [r0]
cmp r0, #0
ble _021DFB56
add r0, r4, #0
add r0, #0xb4
ldr r0, [r0]
add r4, #0xb4
sub r0, r0, #1
str r0, [r4]
b _021DFB72
_021DFB56:
ldr r2, _021DFB78 ; =0x00000F64
add r0, r4, #0
ldrh r2, [r5, r2]
add r4, #0x1c
add r0, #0x4c
add r1, r4, #0
bl MOD05_021DD474
cmp r0, #1
bne _021DFB72
cmp r6, #3
bne _021DFB72
mov r0, #1
pop {r4, r5, r6, pc}
_021DFB72:
mov r0, #0
pop {r4, r5, r6, pc}
nop
_021DFB78: .word 0x00000F64
thumb_func_start MOD05_021DFB7C
MOD05_021DFB7C: ; 0x021DFB7C
push {r3, r4, r5, lr}
sub sp, #0x18
mov r2, #0x18
str r2, [sp]
mov r3, #1
add r5, r0, #0
str r3, [sp, #4]
sub r0, r3, #4
str r0, [sp, #8]
mov r0, #2
str r0, [sp, #0xc]
mov r0, #4
str r0, [sp, #0x10]
ldr r0, _021DFBF8 ; =MOD05_021DFEE0
add r4, r1, #0
str r0, [sp, #0x14]
add r0, r4, #0
add r1, r5, #0
bl MOD05_021DD328
ldr r0, _021DFBFC ; =0x00000F64
ldrh r0, [r5, r0]
cmp r0, #0
beq _021DFBCA
mov r0, #0x41
ldr r1, [r5]
lsl r0, r0, #2
ldr r0, [r1, r0]
ldr r2, _021DFC00 ; =0x00006F6F
ldr r0, [r0, #0x44]
ldr r3, _021DFC04 ; =0x00006B5A
mov r1, #3
str r0, [r4, #0x1c]
bl MOD05_021DD49C
add r0, r4, #0
add r0, #0x1c
bl MOD05_021DD5EC
_021DFBCA:
add r0, r4, #0
mov r1, #0
add r0, #0xb8
str r1, [r0]
add r4, #0xbc
str r1, [r4]
mov r0, #1
str r0, [sp]
ldr r0, _021DFC08 ; =MOD05_021E0000
ldr r1, _021DFBF8 ; =MOD05_021DFEE0
str r0, [sp, #4]
add r0, r5, #0
mov r2, #0x14
mov r3, #5
bl MOD05_021DD680
ldr r1, _021DFC0C ; =0x0000063B
add r0, r5, #0
bl MOD05_021E0FA4
add sp, #0x18
pop {r3, r4, r5, pc}
nop
_021DFBF8: .word MOD05_021DFEE0
_021DFBFC: .word 0x00000F64
_021DFC00: .word 0x00006F6F
_021DFC04: .word 0x00006B5A
_021DFC08: .word MOD05_021E0000
_021DFC0C: .word 0x0000063B
thumb_func_start MOD05_021DFC10
MOD05_021DFC10: ; 0x021DFC10
push {r3, r4, r5, lr}
add r4, r1, #0
add r5, r0, #0
add r0, r4, #0
add r0, #0xbc
ldr r0, [r0]
mov r1, #0x4b
add r0, r0, #1
lsl r1, r1, #2
bl _s32_div_f
add r0, r4, #0
add r0, #0xbc
str r1, [r0]
mov r0, #6
ldrsh r1, [r4, r0]
sub r0, r1, #1
strh r0, [r4, #6]
cmp r1, #0
bgt _021DFC48
mov r1, #4
ldrsh r1, [r4, r1]
add r0, r5, #0
bl MOD05_021DFEE0
mov r0, #8
ldrsh r0, [r4, r0]
strh r0, [r4, #6]
_021DFC48:
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021DFC4C
MOD05_021DFC4C: ; 0x021DFC4C
push {r3, r4, r5, lr}
add r5, r0, #0
mov r0, #9
add r4, r1, #0
mvn r0, r0
str r0, [sp]
add r0, r4, #0
mov r1, #0
mov r2, #0xf
mov r3, #3
bl MOD05_021DD350
ldr r0, _021DFC88 ; =0x00000F64
ldrh r0, [r5, r0]
cmp r0, #0
beq _021DFC78
add r0, r4, #0
add r0, #0x1c
mov r1, #1
mov r2, #0
bl MOD05_021DD5B4
_021DFC78:
mov r0, #0
add r4, #0xb4
str r0, [r4]
add r0, r5, #0
bl MOD05_021E0FD0
pop {r3, r4, r5, pc}
nop
_021DFC88: .word 0x00000F64
thumb_func_start MOD05_021DFC8C
MOD05_021DFC8C: ; 0x021DFC8C
push {r4, r5, r6, lr}
add r4, r1, #0
add r5, r0, #0
add r0, r4, #0
bl MOD05_021DD35C
add r6, r0, #0
add r0, r4, #0
add r0, #0xb4
ldr r0, [r0]
cmp r0, #0
ble _021DFCB2
add r0, r4, #0
add r0, #0xb4
ldr r0, [r0]
add r4, #0xb4
sub r0, r0, #1
str r0, [r4]
b _021DFCDA
_021DFCB2:
ldr r0, _021DFCE0 ; =0x00000F64
ldrh r0, [r5, r0]
cmp r0, #0
beq _021DFCC4
add r4, #0x1c
add r0, r4, #0
bl MOD05_021DD5D0
b _021DFCC6
_021DFCC4:
mov r0, #1
_021DFCC6:
cmp r0, #1
bne _021DFCDA
cmp r6, #3
bne _021DFCDA
ldr r0, [r5, #0x40]
add r5, #0xc
cmp r0, r5
bne _021DFCDA
mov r0, #1
pop {r4, r5, r6, pc}
_021DFCDA:
mov r0, #0
pop {r4, r5, r6, pc}
nop
_021DFCE0: .word 0x00000F64
thumb_func_start MOD05_021DFCE4
MOD05_021DFCE4: ; 0x021DFCE4
push {r4, lr}
sub sp, #8
add r4, r0, #0
ldr r0, _021DFD0C ; =0x00000F64
ldrh r0, [r4, r0]
cmp r0, #0
beq _021DFD02
mov r2, #0
str r2, [sp]
str r2, [sp, #4]
ldr r0, [r1, #0x1c]
mov r1, #1
add r3, r2, #0
bl MOD05_021DBA40
_021DFD02:
ldr r0, [r4, #4]
bl MOD05_021DCB6C
add sp, #8
pop {r4, pc}
.balign 4, 0
_021DFD0C: .word 0x00000F64
thumb_func_start MOD05_021DFD10
MOD05_021DFD10: ; 0x021DFD10
push {r4, lr}
add r4, r0, #0
ldr r0, _021DFD3C ; =0x00000F62
ldrh r0, [r4, r0]
cmp r0, #5
beq _021DFD3A
cmp r0, #0
beq _021DFD3A
add r0, r4, #0
ldr r1, _021DFD40 ; =MOD05_021E0000
add r0, #0xc
bl MOD05_021DD148
mov r1, #0
add r0, r4, #0
add r2, r1, #0
bl MOD05_021DD2BC
add r0, r4, #0
bl MOD05_021DD164
_021DFD3A:
pop {r4, pc}
.balign 4, 0
_021DFD3C: .word 0x00000F62
_021DFD40: .word MOD05_021E0000
thumb_func_start MOD05_021DFD44
MOD05_021DFD44: ; 0x021DFD44
push {r3, r4, r5, lr}
ldr r0, _021DFE24 ; =0x00000F58
add r4, r1, #0
ldr r5, [r4, r0]
add r0, #0xa
ldrh r0, [r4, r0]
cmp r0, #5
bhi _021DFE18
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021DFD60: ; jump table
.short _021DFD6C - _021DFD60 - 2 ; case 0
.short _021DFD90 - _021DFD60 - 2 ; case 1
.short _021DFDA4 - _021DFD60 - 2 ; case 2
.short _021DFDC8 - _021DFD60 - 2 ; case 3
.short _021DFDF2 - _021DFD60 - 2 ; case 4
.short _021DFE06 - _021DFD60 - 2 ; case 5
_021DFD6C:
add r0, r4, #0
add r1, r5, #0
bl MOD05_021DFAA8
ldr r0, [r4]
mov r1, #0
mov r2, #0x11
bl MOD05_021DC608
ldr r0, [r4]
mov r1, #3
mov r2, #0x11
bl MOD05_021DC608
ldr r0, _021DFE28 ; =0x00000F62
mov r1, #1
strh r1, [r4, r0]
b _021DFE18
_021DFD90:
add r0, r4, #0
add r1, r5, #0
bl MOD05_021DFB30
cmp r0, #0
beq _021DFE18
ldr r0, _021DFE28 ; =0x00000F62
mov r1, #3
strh r1, [r4, r0]
b _021DFE18
_021DFDA4:
add r0, r4, #0
add r1, r5, #0
bl MOD05_021DFB7C
ldr r0, [r4]
mov r1, #0
mov r2, #0x11
bl MOD05_021DC608
ldr r0, [r4]
mov r1, #3
mov r2, #0x11
bl MOD05_021DC608
ldr r0, _021DFE28 ; =0x00000F62
mov r1, #3
strh r1, [r4, r0]
b _021DFE18
_021DFDC8:
add r0, r4, #0
add r1, r5, #0
bl MOD05_021DFC10
ldr r0, _021DFE2C ; =0x00000F66
ldrh r0, [r4, r0]
cmp r0, #5
bne _021DFE18
add r0, r4, #0
add r1, r5, #0
bl MOD05_021DFC4C
ldr r0, [r4]
mov r1, #5
mov r2, #0x11
bl MOD05_021DC608
ldr r0, _021DFE28 ; =0x00000F62
mov r1, #4
strh r1, [r4, r0]
b _021DFE18
_021DFDF2:
add r0, r4, #0
add r1, r5, #0
bl MOD05_021DFC8C
cmp r0, #0
beq _021DFE18
ldr r0, _021DFE28 ; =0x00000F62
mov r1, #5
strh r1, [r4, r0]
b _021DFE18
_021DFE06:
add r0, r4, #0
add r1, r5, #0
bl MOD05_021DFCE4
ldr r0, [r4]
mov r1, #8
mov r2, #0x11
bl MOD05_021DC608
_021DFE18:
add r0, r4, #0
add r1, r5, #0
bl MOD05_021DFD10
pop {r3, r4, r5, pc}
nop
_021DFE24: .word 0x00000F58
_021DFE28: .word 0x00000F62
_021DFE2C: .word 0x00000F66
thumb_func_start MOD05_021DFE30
MOD05_021DFE30: ; 0x021DFE30
push {r3, r4, r5, lr}
ldr r0, _021DFED4 ; =0x00000F58
add r4, r1, #0
ldr r5, [r4, r0]
add r0, #0xa
ldrh r0, [r4, r0]
cmp r0, #5
bhi _021DFEC8
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021DFE4C: ; jump table
.short _021DFE58 - _021DFE4C - 2 ; case 0
.short _021DFE68 - _021DFE4C - 2 ; case 1
.short _021DFE7C - _021DFE4C - 2 ; case 2
.short _021DFE8C - _021DFE4C - 2 ; case 3
.short _021DFEAC - _021DFE4C - 2 ; case 4
.short _021DFEC0 - _021DFE4C - 2 ; case 5
_021DFE58:
add r0, r4, #0
add r1, r5, #0
bl MOD05_021DFAA8
ldr r0, _021DFED8 ; =0x00000F62
mov r1, #1
strh r1, [r4, r0]
b _021DFEC8
_021DFE68:
add r0, r4, #0
add r1, r5, #0
bl MOD05_021DFB30
cmp r0, #0
beq _021DFEC8
ldr r0, _021DFED8 ; =0x00000F62
mov r1, #3
strh r1, [r4, r0]
b _021DFEC8
_021DFE7C:
add r0, r4, #0
add r1, r5, #0
bl MOD05_021DFB7C
ldr r0, _021DFED8 ; =0x00000F62
mov r1, #3
strh r1, [r4, r0]
b _021DFEC8
_021DFE8C:
add r0, r4, #0
add r1, r5, #0
bl MOD05_021DFC10
ldr r0, _021DFEDC ; =0x00000F66
ldrh r0, [r4, r0]
cmp r0, #5
bne _021DFEC8
add r0, r4, #0
add r1, r5, #0
bl MOD05_021DFC4C
ldr r0, _021DFED8 ; =0x00000F62
mov r1, #4
strh r1, [r4, r0]
b _021DFEC8
_021DFEAC:
add r0, r4, #0
add r1, r5, #0
bl MOD05_021DFC8C
cmp r0, #0
beq _021DFEC8
ldr r0, _021DFED8 ; =0x00000F62
mov r1, #5
strh r1, [r4, r0]
b _021DFEC8
_021DFEC0:
add r0, r4, #0
add r1, r5, #0
bl MOD05_021DFCE4
_021DFEC8:
add r0, r4, #0
add r1, r5, #0
bl MOD05_021DFD10
pop {r3, r4, r5, pc}
nop
_021DFED4: .word 0x00000F58
_021DFED8: .word 0x00000F62
_021DFEDC: .word 0x00000F66
thumb_func_start MOD05_021DFEE0
MOD05_021DFEE0: ; 0x021DFEE0
push {r4, r5, r6, r7, lr}
sub sp, #0x24
str r1, [sp, #4]
ldr r1, _021DFFF4 ; =0x00000F58
str r0, [sp]
ldr r6, [r0, r1]
mov r0, #0
str r0, [sp, #8]
ldr r0, [sp, #4]
cmp r0, #0
ble _021DFFEE
_021DFEF6:
ldr r0, [sp]
mov r1, #0x20
bl MOD05_021DD048
add r4, r0, #0
beq _021DFFEE
ldr r5, [r4, #8]
mov r0, #0
str r0, [r5]
bl rand_MT
mov r1, #3
bl _u32_div_f
add r7, r1, #0
lsl r1, r7, #0x10
ldr r0, [r4, #4]
lsr r1, r1, #0x10
bl FUN_02020208
mov r0, #0x17
add r1, r7, #1
mvn r0, r0
mul r0, r1
str r0, [r5, #0x10]
mov r0, #0x18
mul r0, r1
str r0, [r5, #8]
add r0, r6, #0
add r0, #0xbc
ldr r0, [r0]
mov r1, #0x3c
bl _s32_div_f
lsl r2, r0, #2
ldr r0, _021DFFF8 ; =0x021F6808
ldr r1, [r5, #0x10]
ldr r0, [r0, r2]
mul r0, r1
str r0, [r5, #0x10]
add r0, r6, #0
add r0, #0xbc
ldr r0, [r0]
mov r1, #0x3c
bl _s32_div_f
lsl r2, r0, #2
ldr r0, _021DFFF8 ; =0x021F6808
ldr r1, [r5, #8]
ldr r0, [r0, r2]
mul r0, r1
str r0, [r5, #8]
ldr r0, [r5, #0x10]
mov r1, #0x64
bl _s32_div_f
str r0, [r5, #0x10]
ldr r0, [r5, #8]
mov r1, #0x64
bl _s32_div_f
str r0, [r5, #8]
mov r0, #0
str r0, [r5, #0xc]
bl rand_MT
mov r1, #3
and r1, r0
mov r0, #0x64
mul r0, r1
str r0, [r5, #4]
add r0, r6, #0
add r0, #0xbc
ldr r0, [r0]
mov r1, #0x3c
bl _s32_div_f
add r1, r0, #0
lsl r2, r1, #2
ldr r1, _021DFFF8 ; =0x021F6808
ldr r0, [r5, #4]
ldr r1, [r1, r2]
bl _s32_div_f
str r0, [r5, #4]
add r0, sp, #0xc
add r1, r4, #0
bl MOD05_021DD168
add r3, sp, #0xc
ldmia r3!, {r0, r1}
add r2, sp, #0x18
stmia r2!, {r0, r1}
ldr r0, [r3]
str r0, [r2]
bl rand_MT
ldr r1, _021DFFFC ; =0x000001FF
and r0, r1
str r0, [sp, #0x18]
bl rand_MT
mov r1, #0x30
bl _u32_div_f
mov r0, #0
str r0, [sp, #0x20]
ldr r0, [sp, #0x18]
sub r1, #0x50
lsl r0, r0, #0xc
str r0, [sp, #0x18]
str r1, [sp, #0x1c]
lsl r0, r1, #0xc
str r0, [sp, #0x1c]
ldr r0, [r4, #4]
add r1, sp, #0x18
bl MOD05_021DC4FC
ldr r0, [sp, #8]
add r1, r0, #1
ldr r0, [sp, #4]
str r1, [sp, #8]
cmp r1, r0
blt _021DFEF6
_021DFFEE:
add sp, #0x24
pop {r4, r5, r6, r7, pc}
nop
_021DFFF4: .word 0x00000F58
_021DFFF8: .word 0x021F6808
_021DFFFC: .word 0x000001FF
thumb_func_start MOD05_021E0000
MOD05_021E0000: ; 0x021E0000
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x18
add r5, r0, #0
add r0, sp, #0
add r1, r5, #0
ldr r4, [r5, #8]
bl MOD05_021DD168
add r3, sp, #0
add r2, sp, #0xc
ldmia r3!, {r0, r1}
add r7, r2, #0
stmia r2!, {r0, r1}
ldr r0, [r3]
str r0, [r2]
ldr r0, [r4, #0xc]
cmp r0, #0
beq _021E0030
cmp r0, #1
beq _021E0088
cmp r0, #2
beq _021E009A
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
_021E0030:
mov r6, #0
_021E0032:
ldr r0, [r4, #0x10]
ldr r1, [sp, #0xc]
lsl r0, r0, #0xc
add r0, r1, r0
str r0, [sp, #0xc]
ldr r0, [r4, #8]
ldr r1, [sp, #0x10]
lsl r0, r0, #0xc
add r0, r1, r0
str r0, [sp, #0x10]
ldr r1, [r4]
add r0, r1, #1
str r0, [r4]
ldr r0, [r4, #4]
cmp r1, r0
ble _021E0076
bl rand_MT
mov r1, #0xa
bl _u32_div_f
cmp r1, #5
bhs _021E0066
mov r0, #2
str r0, [r4, #0xc]
b _021E0076
_021E0066:
mov r0, #1
str r0, [r4, #0xc]
mov r0, #4
str r0, [r4]
ldr r0, [r5, #4]
mov r1, #3
bl FUN_02020208
_021E0076:
ldr r0, [r5, #4]
add r1, r7, #0
bl MOD05_021DC4FC
add r6, r6, #1
cmp r6, #2
blt _021E0032
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
_021E0088:
ldr r1, [r4]
sub r0, r1, #1
str r0, [r4]
cmp r1, #0
bgt _021E00A0
mov r0, #2
add sp, #0x18
str r0, [r4, #0xc]
pop {r3, r4, r5, r6, r7, pc}
_021E009A:
add r0, r5, #0
bl MOD05_021DD100
_021E00A0:
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD05_021E00A4
MOD05_021E00A4: ; 0x021E00A4
push {r4, r5, r6, lr}
sub sp, #0x20
ldr r0, _021E03D8 ; =0x00000F58
add r5, r1, #0
add r2, r0, #0
add r2, #0xa
ldrh r2, [r5, r2]
ldr r4, [r5, r0]
cmp r2, #5
bhi _021E017E
add r2, r2, r2
add r2, pc
ldrh r2, [r2, #6]
lsl r2, r2, #0x10
asr r2, r2, #0x10
add pc, r2
_021E00C4: ; jump table
.short _021E00D0 - _021E00C4 - 2 ; case 0
.short _021E0144 - _021E00C4 - 2 ; case 1
.short _021E0190 - _021E00C4 - 2 ; case 2
.short _021E0212 - _021E00C4 - 2 ; case 3
.short _021E027A - _021E00C4 - 2 ; case 4
.short _021E02CA - _021E00C4 - 2 ; case 5
_021E00D0:
mov r2, #1
str r2, [sp]
mov r0, #6
str r0, [sp, #4]
sub r0, r0, #7
str r0, [sp, #8]
mov r0, #4
str r0, [sp, #0xc]
mov r0, #0
str r0, [sp, #0x10]
ldr r0, _021E03DC ; =MOD05_021E0400
mov r3, #0xc
str r0, [sp, #0x14]
add r0, r4, #0
bl MOD05_021DD328
add r0, r4, #0
mov r1, #0
add r0, #0xb8
str r1, [r0]
add r0, r4, #0
add r0, #0xbc
str r1, [r0]
add r0, r4, #0
add r0, #0xc4
str r1, [r0]
add r0, r4, #0
add r0, #0xc8
str r1, [r0]
ldr r0, _021E03E0 ; =0x00006F2F
mov r2, #0x41
str r0, [sp]
ldr r0, _021E03E4 ; =0x00003A94
add r1, r4, #0
str r0, [sp, #4]
mov r0, #1
str r0, [sp, #8]
ldr r0, _021E03E8 ; =0x00000F64
lsl r2, r2, #2
ldrh r0, [r5, r0]
add r1, #0x1c
str r0, [sp, #0xc]
ldr r3, [r5]
add r0, r4, #0
ldr r2, [r3, r2]
add r0, #0x4c
ldr r2, [r2, #0x44]
mov r3, #3
bl MOD05_021DD420
add r0, r4, #0
mov r1, #0
add r0, #0xb4
str r1, [r0]
ldr r0, _021E03EC ; =0x00000F62
mov r1, #1
strh r1, [r5, r0]
b _021E02E8
_021E0144:
add r0, r4, #0
bl MOD05_021DD35C
add r6, r0, #0
add r0, r4, #0
add r0, #0xb4
ldr r0, [r0]
cmp r0, #0
ble _021E0166
add r0, r4, #0
add r0, #0xb4
ldr r0, [r0]
sub r1, r0, #1
add r0, r4, #0
add r0, #0xb4
str r1, [r0]
b _021E02E8
_021E0166:
ldr r2, _021E03E8 ; =0x00000F64
add r0, r4, #0
ldrh r2, [r5, r2]
add r1, r4, #0
add r0, #0x4c
add r1, #0x1c
bl MOD05_021DD474
cmp r0, #1
bne _021E017E
cmp r6, #3
beq _021E0180
_021E017E:
b _021E02E8
_021E0180:
ldr r0, _021E03EC ; =0x00000F62
mov r1, #3
strh r1, [r5, r0]
mov r0, #4
mov r1, #1
bl FUN_0201E6E4
b _021E02E8
_021E0190:
mov r2, #1
mov r3, #6
str r2, [sp]
str r3, [sp, #4]
sub r0, r3, #7
str r0, [sp, #8]
mov r0, #4
str r0, [sp, #0xc]
mov r0, #0
str r0, [sp, #0x10]
ldr r0, _021E03DC ; =MOD05_021E0400
str r0, [sp, #0x14]
add r0, r4, #0
bl MOD05_021DD328
add r0, r4, #0
mov r1, #0
add r0, #0xb8
str r1, [r0]
add r0, r4, #0
add r0, #0xbc
str r1, [r0]
add r0, r4, #0
add r0, #0xc4
str r1, [r0]
add r0, r4, #0
add r0, #0xc8
str r1, [r0]
ldr r0, _021E03E8 ; =0x00000F64
ldrh r0, [r5, r0]
cmp r0, #0
beq _021E01EE
mov r0, #0x41
ldr r1, [r5]
lsl r0, r0, #2
ldr r0, [r1, r0]
ldr r2, _021E03E0 ; =0x00006F2F
ldr r0, [r0, #0x44]
ldr r3, _021E03E4 ; =0x00003A94
mov r1, #3
str r0, [r4, #0x1c]
bl MOD05_021DD49C
add r0, r4, #0
add r0, #0x1c
bl MOD05_021DD5EC
_021E01EE:
mov r0, #0x10
str r0, [sp]
ldr r0, _021E03F0 ; =MOD05_021E051C
ldr r1, _021E03DC ; =MOD05_021E0400
str r0, [sp, #4]
add r0, r5, #0
mov r2, #0x14
mov r3, #2
bl MOD05_021DD680
ldr r0, _021E03EC ; =0x00000F62
mov r1, #3
strh r1, [r5, r0]
mov r0, #4
mov r1, #1
bl FUN_0201E6E4
b _021E02E8
_021E0212:
mov r0, #6
ldrsh r1, [r4, r0]
sub r0, r1, #1
strh r0, [r4, #6]
cmp r1, #0
bgt _021E022E
mov r1, #4
ldrsh r1, [r4, r1]
add r0, r5, #0
bl MOD05_021E0400
mov r0, #8
ldrsh r0, [r4, r0]
strh r0, [r4, #6]
_021E022E:
ldr r0, _021E03F4 ; =0x00000F66
ldrh r0, [r5, r0]
cmp r0, #5
bne _021E02E8
mov r0, #0
mvn r0, r0
str r0, [sp]
add r0, r4, #0
mov r1, #0
mov r2, #0xc
mov r3, #1
bl MOD05_021DD350
ldr r0, _021E03E8 ; =0x00000F64
ldrh r0, [r5, r0]
cmp r0, #0
beq _021E025C
add r0, r4, #0
add r0, #0x1c
mov r1, #1
mov r2, #0
bl MOD05_021DD5B4
_021E025C:
add r0, r4, #0
mov r1, #9
add r0, #0xb4
str r1, [r0]
ldr r1, _021E03EC ; =0x00000F62
mov r0, #4
strh r0, [r5, r1]
add r1, r4, #0
mov r2, #1
add r1, #0xc8
str r2, [r1]
mov r1, #0
bl FUN_0201E6E4
b _021E02E8
_021E027A:
add r0, r4, #0
bl MOD05_021DD35C
add r6, r0, #0
add r0, r4, #0
add r0, #0xb4
ldr r0, [r0]
cmp r0, #0
ble _021E029C
add r0, r4, #0
add r0, #0xb4
ldr r0, [r0]
sub r1, r0, #1
add r0, r4, #0
add r0, #0xb4
str r1, [r0]
b _021E02E8
_021E029C:
ldr r0, _021E03E8 ; =0x00000F64
ldrh r0, [r5, r0]
cmp r0, #0
beq _021E02AE
add r0, r4, #0
add r0, #0x1c
bl MOD05_021DD5D0
b _021E02B0
_021E02AE:
mov r0, #1
_021E02B0:
cmp r0, #1
bne _021E02E8
cmp r6, #3
bne _021E02E8
add r0, r5, #0
ldr r1, [r5, #0x40]
add r0, #0xc
cmp r1, r0
bne _021E02E8
ldr r0, _021E03EC ; =0x00000F62
mov r1, #5
strh r1, [r5, r0]
b _021E02E8
_021E02CA:
add r0, #0xc
ldrh r0, [r5, r0]
cmp r0, #0
beq _021E02E2
mov r2, #0
str r2, [sp]
str r2, [sp, #4]
ldr r0, [r4, #0x1c]
mov r1, #1
add r3, r2, #0
bl MOD05_021DBA40
_021E02E2:
ldr r0, [r5, #4]
bl MOD05_021DCB6C
_021E02E8:
ldr r0, _021E03EC ; =0x00000F62
ldrh r0, [r5, r0]
cmp r0, #5
beq _021E03D4
cmp r0, #0
beq _021E03D4
add r0, r5, #0
ldr r1, _021E03F0 ; =MOD05_021E051C
add r0, #0xc
bl MOD05_021DD148
add r0, r5, #0
add r1, sp, #0x1c
add r2, sp, #0x18
bl MOD05_021DD2BC
add r0, r5, #0
bl MOD05_021DD164
add r0, r4, #0
add r0, #0xbc
ldr r1, [r0]
asr r0, r1, #0x10
lsl r0, r0, #0x10
asr r2, r0, #0x10
lsl r0, r1, #0x10
ldr r1, [sp, #0x1c]
asr r0, r0, #0x10
add r1, r2, r1
lsl r1, r1, #0x10
ldr r2, [sp, #0x18]
asr r5, r1, #0x10
lsl r1, r2, #2
add r1, r2, r1
sub r0, r0, r1
lsl r0, r0, #0x10
asr r0, r0, #0x10
cmp r5, #0
bge _021E0342
mov r1, #1
lsl r1, r1, #8
add r1, r5, r1
lsl r1, r1, #0x10
asr r5, r1, #0x10
b _021E0350
_021E0342:
mov r1, #1
lsl r1, r1, #8
cmp r5, r1
blt _021E0350
sub r1, r5, r1
lsl r1, r1, #0x10
asr r5, r1, #0x10
_021E0350:
cmp r0, #0
bge _021E035E
mov r1, #2
lsl r1, r1, #0xa
add r0, r0, r1
lsl r0, r0, #0x10
asr r0, r0, #0x10
_021E035E:
add r1, r4, #0
add r1, #0xc4
ldr r1, [r1]
add r2, r1, #2
add r1, r4, #0
add r1, #0xc4
str r2, [r1]
add r1, r4, #0
add r1, #0xc4
ldr r1, [r1]
cmp r1, #0x3c
ble _021E0390
add r1, r4, #0
add r5, #0x20
mov r2, #0
add r1, #0xc4
str r2, [r1]
lsr r3, r5, #0x1f
lsl r2, r5, #0x18
sub r2, r2, r3
mov r1, #0x18
ror r2, r1
add r1, r3, r2
lsl r1, r1, #0x10
asr r5, r1, #0x10
_021E0390:
add r0, r0, #2
lsr r2, r0, #0x1f
lsl r1, r0, #0x15
sub r1, r1, r2
mov r0, #0x15
ror r1, r0
add r0, r2, r1
lsl r0, r0, #0x10
asr r6, r0, #0x10
neg r0, r6
mov r1, #5
bl _s32_div_f
ldr r2, _021E03F8 ; =0x000001FF
add r1, r5, #0
lsl r3, r0, #0x10
lsl r0, r2, #0x10
and r1, r2
and r0, r3
orr r1, r0
ldr r0, _021E03FC ; =0x04000018
str r1, [r0]
add r0, r4, #0
lsl r1, r5, #0x10
add r0, #0xbc
str r1, [r0]
add r0, r4, #0
add r0, #0xbc
ldr r1, [r0]
lsl r0, r6, #0x10
lsr r0, r0, #0x10
orr r0, r1
add r4, #0xbc
str r0, [r4]
_021E03D4:
add sp, #0x20
pop {r4, r5, r6, pc}
.balign 4, 0
_021E03D8: .word 0x00000F58
_021E03DC: .word MOD05_021E0400
_021E03E0: .word 0x00006F2F
_021E03E4: .word 0x00003A94
_021E03E8: .word 0x00000F64
_021E03EC: .word 0x00000F62
_021E03F0: .word MOD05_021E051C
_021E03F4: .word 0x00000F66
_021E03F8: .word 0x000001FF
_021E03FC: .word 0x04000018
thumb_func_start MOD05_021E0400
MOD05_021E0400: ; 0x021E0400
push {r4, r5, r6, r7, lr}
sub sp, #0x2c
add r7, r1, #0
ldr r1, _021E0514 ; =0x00000F58
str r0, [sp]
ldr r0, [r0, r1]
str r0, [sp, #0x10]
add r0, #0xb8
ldr r0, [r0]
cmp r0, #1
bne _021E0418
lsl r7, r7, #1
_021E0418:
mov r6, #0
cmp r7, #0
ble _021E050E
ldr r0, [sp, #0x10]
str r0, [sp, #0xc]
add r0, #0xb8
str r0, [sp, #0xc]
ldr r0, [sp, #0x10]
str r0, [sp, #8]
add r0, #0xc8
str r0, [sp, #8]
lsr r0, r7, #0x1f
add r0, r7, r0
asr r0, r0, #1
str r0, [sp, #4]
_021E0436:
ldr r0, [sp]
mov r1, #0x20
bl MOD05_021DD048
add r4, r0, #0
beq _021E050E
ldr r5, [r4, #8]
bl rand_MT
mov r1, #3
and r1, r0
lsl r1, r1, #0x10
ldr r0, [r4, #4]
lsr r1, r1, #0x10
bl FUN_02020208
mov r0, #0xa
str r0, [r5, #0x10]
mov r0, #0
str r0, [r5, #0x14]
bl rand_MT
lsr r1, r0, #0x1f
lsl r2, r0, #0x1f
sub r2, r2, r1
mov r0, #0x1f
ror r2, r0
add r0, r1, r2
bne _021E0474
mov r0, #1
b _021E0478
_021E0474:
mov r0, #0
mvn r0, r0
_021E0478:
str r0, [r5, #4]
bl rand_MT
mov r0, #1
str r0, [r5, #0xc]
ldr r0, [sp, #0xc]
str r0, [r5]
ldr r0, [sp, #8]
str r0, [r5, #0x18]
bl rand_MT
mov r1, #0x14
bl _u32_div_f
add r1, #0xa
str r1, [r5, #0x1c]
add r0, sp, #0x14
add r1, r4, #0
bl MOD05_021DD168
add r3, sp, #0x14
ldmia r3!, {r0, r1}
add r2, sp, #0x20
stmia r2!, {r0, r1}
ldr r0, [r3]
str r0, [r2]
bl rand_MT
ldr r1, _021E0518 ; =0x0000019E
bl _u32_div_f
ldr r0, [sp, #0x10]
sub r1, #0x20
str r1, [sp, #0x20]
add r0, #0xb8
ldr r0, [r0]
cmp r0, #1
bne _021E04DE
ldr r0, [sp, #4]
cmp r6, r0
blt _021E04DE
bl rand_MT
mov r1, #0x14
bl _u32_div_f
mov r0, #0x27
mvn r0, r0
sub r0, r0, r1
str r0, [sp, #0x24]
b _021E04F0
_021E04DE:
bl rand_MT
mov r1, #0x14
bl _u32_div_f
mov r0, #7
mvn r0, r0
sub r0, r0, r1
str r0, [sp, #0x24]
_021E04F0:
ldr r0, [sp, #0x20]
add r1, sp, #0x20
lsl r0, r0, #0xc
str r0, [sp, #0x20]
ldr r0, [sp, #0x24]
lsl r0, r0, #0xc
str r0, [sp, #0x24]
mov r0, #0
str r0, [sp, #0x28]
ldr r0, [r4, #4]
bl MOD05_021DC4FC
add r6, r6, #1
cmp r6, r7
blt _021E0436
_021E050E:
add sp, #0x2c
pop {r4, r5, r6, r7, pc}
nop
_021E0514: .word 0x00000F58
_021E0518: .word 0x0000019E
thumb_func_start MOD05_021E051C
MOD05_021E051C: ; 0x021E051C
push {r4, r5, r6, lr}
sub sp, #0x18
add r6, r0, #0
add r0, sp, #0
add r1, r6, #0
ldr r4, [r6, #8]
bl MOD05_021DD168
add r5, sp, #0
add r3, sp, #0xc
ldmia r5!, {r0, r1}
add r2, r3, #0
stmia r3!, {r0, r1}
ldr r0, [r5]
mov r5, #0
str r0, [r3]
ldr r1, [r4, #0x14]
ldr r0, [r4, #0xc]
cmp r1, r0
blt _021E0558
mov r0, #1
ldr r1, [sp, #0x10]
lsl r0, r0, #0xc
add r0, r1, r0
str r0, [sp, #0x10]
str r5, [r4, #0x14]
ldr r0, [r6, #4]
add r1, r2, #0
bl MOD05_021DC4FC
_021E0558:
ldr r0, [r4, #0x14]
add r0, r0, #1
str r0, [r4, #0x14]
ldr r0, [sp, #0x10]
asr r0, r0, #0xc
str r0, [sp, #0x10]
ldr r0, [r4, #0x18]
ldr r0, [r0]
cmp r0, #1
bne _021E0578
ldr r0, [r4, #0x1c]
sub r0, r0, #1
str r0, [r4, #0x1c]
cmp r0, #0
bgt _021E0578
mov r5, #1
_021E0578:
ldr r1, [sp, #0x10]
ldr r0, _021E05A4 ; =0xFFFFFEE4
cmp r1, r0
bge _021E0586
sub r0, #0xc
cmp r1, r0
bgt _021E058E
_021E0586:
cmp r1, #0xd4
ble _021E0590
cmp r1, #0xe8
bge _021E0590
_021E058E:
mov r5, #1
_021E0590:
cmp r5, #1
bne _021E05A0
ldr r0, [r4]
mov r1, #1
str r1, [r0]
add r0, r6, #0
bl MOD05_021DD100
_021E05A0:
add sp, #0x18
pop {r4, r5, r6, pc}
.balign 4, 0
_021E05A4: .word 0xFFFFFEE4
thumb_func_start MOD05_021E05A8
MOD05_021E05A8: ; 0x021E05A8
push {r3, r4, r5, r6, r7, lr}
ldr r0, _021E06EC ; =0x00000F58
add r5, r1, #0
add r1, r0, #0
add r1, #0xa
ldrh r1, [r5, r1]
ldr r4, [r5, r0]
cmp r1, #5
bls _021E05BC
b _021E06EA
_021E05BC:
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021E05C8: ; jump table
.short _021E05D4 - _021E05C8 - 2 ; case 0
.short _021E05D4 - _021E05C8 - 2 ; case 1
.short _021E05D4 - _021E05C8 - 2 ; case 2
.short _021E05F2 - _021E05C8 - 2 ; case 3
.short _021E06DC - _021E05C8 - 2 ; case 4
.short _021E06E4 - _021E05C8 - 2 ; case 5
_021E05D4:
mov r0, #0
str r0, [r4]
str r0, [r4, #0x10]
mov r1, #0x1f
str r0, [r4, #4]
bl MOD05_021DC6D4
mov r0, #4
mov r1, #1
bl FUN_0201E6E4
ldr r0, _021E06F0 ; =0x00000F62
mov r1, #3
strh r1, [r5, r0]
pop {r3, r4, r5, r6, r7, pc}
_021E05F2:
ldr r0, [r4, #0x10]
cmp r0, #0
blt _021E05FE
sub r0, r0, #1
str r0, [r4, #0x10]
b _021E06CC
_021E05FE:
ldr r0, [r4, #4]
cmp r0, #0
beq _021E060E
cmp r0, #1
beq _021E0650
cmp r0, #2
beq _021E0678
b _021E06CC
_021E060E:
mov r0, #1
str r0, [r4, #4]
mov r0, #0
str r0, [r4, #0x14]
bl rand_MT
mov r1, #0x1e
lsl r1, r1, #4
bl _u32_div_f
add r1, #0xc8
str r1, [r4, #0x18]
mov r0, #0
str r0, [r4, #0x1c]
bl rand_MT
mov r1, #3
bl _u32_div_f
cmp r1, #0
beq _021E0644
mov r0, #0x24
str r0, [r4, #8]
ldr r0, _021E06F4 ; =0x0000063D
bl FUN_020054C8
b _021E06CC
_021E0644:
mov r0, #0xc8
str r0, [r4, #8]
ldr r0, _021E06F8 ; =0x0000063C
bl FUN_020054C8
b _021E06CC
_021E0650:
ldr r0, [r4, #0x14]
add r0, r0, #1
str r0, [r4, #0x14]
ldr r1, [r4, #0x1c]
ldr r0, [r4, #0x18]
add r0, r1, r0
str r0, [r4, #0x1c]
ldr r0, [r4, #0x14]
cmp r0, #2
blt _021E0668
mov r0, #2
str r0, [r4, #4]
_021E0668:
ldr r0, [r4, #0x1c]
mov r1, #0x64
bl _s32_div_f
mov r1, #0x1f
bl MOD05_021DC6D4
b _021E06CC
_021E0678:
ldr r1, [r4, #0x1c]
ldr r0, [r4, #8]
sub r0, r1, r0
str r0, [r4, #0x1c]
cmp r0, #0
bgt _021E06BE
mov r0, #0
str r0, [r4, #4]
str r0, [r4, #0x1c]
ldr r0, [r4, #8]
cmp r0, #0xc8
bne _021E069E
bl rand_MT
mov r1, #0xf
bl _u32_div_f
str r1, [r4, #0x10]
b _021E06BE
_021E069E:
bl rand_MT
add r7, r0, #0
ldr r1, [r4, #0x18]
mov r0, #0x32
mul r0, r1
mov r1, #0x64
bl _s32_div_f
add r6, r0, #0
add r0, r7, #0
mov r1, #0x78
bl _u32_div_f
add r0, r6, r1
str r0, [r4, #0x10]
_021E06BE:
ldr r0, [r4, #0x1c]
mov r1, #0x64
bl _s32_div_f
mov r1, #0x1f
bl MOD05_021DC6D4
_021E06CC:
ldr r0, _021E06FC ; =0x00000F66
ldrh r1, [r5, r0]
cmp r1, #5
bne _021E06EA
mov r1, #4
sub r0, r0, #4
strh r1, [r5, r0]
pop {r3, r4, r5, r6, r7, pc}
_021E06DC:
mov r1, #5
add r0, #0xa
strh r1, [r5, r0]
pop {r3, r4, r5, r6, r7, pc}
_021E06E4:
ldr r0, [r5, #4]
bl MOD05_021DCB6C
_021E06EA:
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_021E06EC: .word 0x00000F58
_021E06F0: .word 0x00000F62
_021E06F4: .word 0x0000063D
_021E06F8: .word 0x0000063C
_021E06FC: .word 0x00000F66
thumb_func_start MOD05_021E0700
MOD05_021E0700: ; 0x021E0700
push {r3, r4, r5, lr}
sub sp, #0x18
ldr r0, _021E0828 ; =0x00000F58
add r4, r1, #0
ldr r5, [r4, r0]
add r0, #0xa
ldrh r0, [r4, r0]
cmp r0, #5
bhi _021E07FE
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021E071E: ; jump table
.short _021E072A - _021E071E - 2 ; case 0
.short _021E0752 - _021E071E - 2 ; case 1
.short _021E0764 - _021E071E - 2 ; case 2
.short _021E079E - _021E071E - 2 ; case 3
.short _021E07DC - _021E071E - 2 ; case 4
.short _021E07F8 - _021E071E - 2 ; case 5
_021E072A:
mov r0, #4
str r0, [sp]
mov r0, #0xf
str r0, [sp, #4]
sub r0, #0x11
str r0, [sp, #8]
mov r0, #5
str r0, [sp, #0xc]
mov r2, #1
ldr r0, _021E082C ; =MOD05_021E083C
str r2, [sp, #0x10]
str r0, [sp, #0x14]
add r0, r5, #0
mov r3, #0x23
bl MOD05_021DD328
ldr r0, _021E0830 ; =0x00000F62
mov r1, #1
strh r1, [r4, r0]
b _021E07FE
_021E0752:
add r0, r5, #0
bl MOD05_021DD35C
cmp r0, #3
bne _021E07FE
ldr r0, _021E0830 ; =0x00000F62
mov r1, #3
strh r1, [r4, r0]
b _021E07FE
_021E0764:
mov r0, #0xf
str r0, [sp]
str r0, [sp, #4]
sub r0, #0x11
str r0, [sp, #8]
mov r0, #5
str r0, [sp, #0xc]
mov r2, #1
ldr r0, _021E082C ; =MOD05_021E083C
str r2, [sp, #0x10]
str r0, [sp, #0x14]
add r0, r5, #0
mov r3, #4
bl MOD05_021DD328
mov r0, #1
str r0, [sp]
ldr r0, _021E0834 ; =MOD05_021E093C
ldr r1, _021E082C ; =MOD05_021E083C
str r0, [sp, #4]
add r0, r4, #0
mov r2, #0x10
mov r3, #2
bl MOD05_021DD680
ldr r0, _021E0830 ; =0x00000F62
mov r1, #3
strh r1, [r4, r0]
b _021E07FE
_021E079E:
mov r0, #6
ldrsh r1, [r5, r0]
sub r0, r1, #1
strh r0, [r5, #6]
cmp r1, #0
bgt _021E07BA
mov r1, #4
ldrsh r1, [r5, r1]
add r0, r4, #0
bl MOD05_021E083C
mov r0, #8
ldrsh r0, [r5, r0]
strh r0, [r5, #6]
_021E07BA:
ldr r0, _021E0838 ; =0x00000F66
ldrh r0, [r4, r0]
cmp r0, #5
bne _021E07FE
mov r0, #2
mvn r0, r0
str r0, [sp]
add r0, r5, #0
mov r1, #0
mov r2, #0x23
mov r3, #2
bl MOD05_021DD350
ldr r0, _021E0830 ; =0x00000F62
mov r1, #4
strh r1, [r4, r0]
b _021E07FE
_021E07DC:
add r0, r5, #0
bl MOD05_021DD35C
cmp r0, #3
bne _021E07FE
add r0, r4, #0
ldr r1, [r4, #0x40]
add r0, #0xc
cmp r1, r0
bne _021E07FE
ldr r0, _021E0830 ; =0x00000F62
mov r1, #5
strh r1, [r4, r0]
b _021E07FE
_021E07F8:
ldr r0, [r4, #4]
bl MOD05_021DCB6C
_021E07FE:
ldr r0, _021E0830 ; =0x00000F62
ldrh r0, [r4, r0]
cmp r0, #5
beq _021E0824
cmp r0, #0
beq _021E0824
add r0, r4, #0
ldr r1, _021E0834 ; =MOD05_021E093C
add r0, #0xc
bl MOD05_021DD148
mov r1, #0
add r0, r4, #0
add r2, r1, #0
bl MOD05_021DD2BC
add r0, r4, #0
bl MOD05_021DD164
_021E0824:
add sp, #0x18
pop {r3, r4, r5, pc}
.balign 4, 0
_021E0828: .word 0x00000F58
_021E082C: .word MOD05_021E083C
_021E0830: .word 0x00000F62
_021E0834: .word MOD05_021E093C
_021E0838: .word 0x00000F66
thumb_func_start MOD05_021E083C
MOD05_021E083C: ; 0x021E083C
push {r4, r5, r6, r7, lr}
sub sp, #0x14
str r0, [sp]
add r0, r1, #0
mov r7, #0
str r1, [sp, #4]
cmp r0, #0
ble _021E0932
_021E084C:
ldr r0, [sp]
mov r1, #0x20
bl MOD05_021DD048
add r5, r0, #0
beq _021E0932
ldr r4, [r5, #8]
bl rand_MT
mov r1, #0xe
bl _u32_div_f
add r6, r1, #0
lsl r1, r6, #0x10
ldr r0, [r5, #4]
lsr r1, r1, #0x10
bl FUN_02020208
asr r0, r6, #1
lsr r0, r0, #0x1e
add r0, r6, r0
asr r6, r0, #2
bl rand_MT
mov r1, #0x19
bl _u32_div_f
add r2, r1, #0
add r2, #8
add r1, r6, #1
add r0, r2, #0
mul r0, r1
str r0, [r4]
mov r0, #0x10
bl _s32_div_f
str r0, [r4, #4]
mov r0, #0
str r0, [r4, #8]
bl rand_MT
mov r1, #1
and r0, r1
str r0, [r4, #0xc]
add r0, r1, #0
str r0, [r4, #0x10]
add r0, r6, #1
cmp r0, #4
bhi _021E0912
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021E08BA: ; jump table
.short _021E0912 - _021E08BA - 2 ; case 0
.short _021E08C4 - _021E08BA - 2 ; case 1
.short _021E08C4 - _021E08BA - 2 ; case 2
.short _021E08E0 - _021E08BA - 2 ; case 3
.short _021E08FA - _021E08BA - 2 ; case 4
_021E08C4:
bl rand_MT
ldr r1, _021E0938 ; =0x000001FF
and r0, r1
sub r0, #0x80
str r0, [sp, #8]
bl rand_MT
mov r1, #0xc0
bl _u32_div_f
add r1, #8
str r1, [sp, #0xc]
b _021E0912
_021E08E0:
bl rand_MT
ldr r1, _021E0938 ; =0x000001FF
and r0, r1
sub r0, #0x80
str r0, [sp, #8]
bl rand_MT
mov r1, #0x7f
and r0, r1
add r0, #0x40
str r0, [sp, #0xc]
b _021E0912
_021E08FA:
bl rand_MT
ldr r1, _021E0938 ; =0x000001FF
and r0, r1
sub r0, #0x80
str r0, [sp, #8]
bl rand_MT
mov r1, #0x1f
and r0, r1
add r0, #0xa0
str r0, [sp, #0xc]
_021E0912:
mov r0, #0
str r0, [sp, #0x10]
ldr r0, [sp, #8]
add r1, sp, #8
lsl r0, r0, #0xc
str r0, [sp, #8]
ldr r0, [sp, #0xc]
lsl r0, r0, #0xc
str r0, [sp, #0xc]
ldr r0, [r5, #4]
bl MOD05_021DC4FC
ldr r0, [sp, #4]
add r7, r7, #1
cmp r7, r0
blt _021E084C
_021E0932:
add sp, #0x14
pop {r4, r5, r6, r7, pc}
nop
_021E0938: .word 0x000001FF
thumb_func_start MOD05_021E093C
MOD05_021E093C: ; 0x021E093C
push {r3, r4, r5, lr}
sub sp, #0x18
add r5, r0, #0
add r0, sp, #0
add r1, r5, #0
ldr r4, [r5, #8]
bl MOD05_021DD168
add r3, sp, #0
ldmia r3!, {r0, r1}
add r2, sp, #0xc
stmia r2!, {r0, r1}
ldr r0, [r3]
str r0, [r2]
ldr r1, [r4, #8]
ldr r0, [r4, #4]
add r0, r1, r0
str r0, [r4, #8]
ldr r0, [r4]
cmp r0, #0
ble _021E097C
sub r0, r0, #1
str r0, [r4]
ldr r0, [r4, #8]
mov r1, #0x64
bl _s32_div_f
ldr r1, [sp, #0x10]
lsl r0, r0, #0xc
sub r0, r1, r0
str r0, [sp, #0x10]
b _021E098C
_021E097C:
ldr r0, [r4, #8]
mov r1, #0x32
bl _s32_div_f
ldr r1, [sp, #0x10]
lsl r0, r0, #0xc
sub r0, r1, r0
str r0, [sp, #0x10]
_021E098C:
ldr r0, [r4, #0x10]
sub r0, r0, #1
str r0, [r4, #0x10]
cmp r0, #0
bgt _021E09B8
mov r0, #1
str r0, [r4, #0x10]
ldr r1, [r4, #0xc]
cmp r1, #0
bne _021E09AC
ldr r2, [sp, #0xc]
lsl r1, r0, #0xd
add r1, r2, r1
str r1, [sp, #0xc]
str r0, [r4, #0xc]
b _021E09B8
_021E09AC:
ldr r1, [sp, #0xc]
lsl r0, r0, #0xd
sub r0, r1, r0
str r0, [sp, #0xc]
mov r0, #0
str r0, [r4, #0xc]
_021E09B8:
ldr r0, [r5, #4]
add r1, sp, #0xc
bl MOD05_021DC4FC
ldr r0, [sp, #0x10]
asr r1, r0, #0xc
mov r0, #0xf
mvn r0, r0
cmp r1, r0
bgt _021E09D2
add r0, r5, #0
bl MOD05_021DD100
_021E09D2:
add sp, #0x18
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021E09D8
MOD05_021E09D8: ; 0x021E09D8
push {r4, r5, r6, lr}
ldr r0, _021E0ABC ; =0x00000F58
add r4, r1, #0
add r1, r0, #0
add r1, #0xa
ldrh r1, [r4, r1]
ldr r5, [r4, r0]
cmp r1, #5
bhi _021E0AB8
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021E09F6: ; jump table
.short _021E0A02 - _021E09F6 - 2 ; case 0
.short _021E0A34 - _021E09F6 - 2 ; case 1
.short _021E0A52 - _021E09F6 - 2 ; case 2
.short _021E0A78 - _021E09F6 - 2 ; case 3
.short _021E0A94 - _021E09F6 - 2 ; case 4
.short _021E0AB2 - _021E09F6 - 2 ; case 5
_021E0A02:
add r0, r5, #0
mov r1, #0
mov r2, #0x10
mov r3, #8
bl MOD05_021DC6EC
mov r0, #0
mov r1, #0x10
bl MOD05_021DC6D4
ldr r1, _021E0AC0 ; =0x0400000C
mov r0, #3
ldrh r2, [r1]
bic r2, r0
mov r0, #3
orr r0, r2
strh r0, [r1]
mov r0, #4
mov r1, #1
bl FUN_0201E6E4
ldr r0, _021E0AC4 ; =0x00000F62
mov r1, #1
strh r1, [r4, r0]
pop {r4, r5, r6, pc}
_021E0A34:
add r0, r5, #0
bl MOD05_021DC6FC
add r6, r0, #0
ldr r0, [r5]
mov r1, #0x10
sub r1, r1, r0
bl MOD05_021DC6D4
cmp r6, #1
bne _021E0AB8
ldr r0, _021E0AC4 ; =0x00000F62
mov r1, #3
strh r1, [r4, r0]
pop {r4, r5, r6, pc}
_021E0A52:
mov r0, #0x10
mov r1, #0
bl MOD05_021DC6D4
ldr r1, _021E0AC0 ; =0x0400000C
mov r0, #3
ldrh r2, [r1]
bic r2, r0
mov r0, #3
orr r0, r2
strh r0, [r1]
mov r0, #4
mov r1, #1
bl FUN_0201E6E4
ldr r0, _021E0AC4 ; =0x00000F62
mov r1, #3
strh r1, [r4, r0]
pop {r4, r5, r6, pc}
_021E0A78:
add r0, #0xe
ldrh r0, [r4, r0]
cmp r0, #5
bne _021E0AB8
add r0, r5, #0
mov r1, #0x10
mov r2, #0
mov r3, #8
bl MOD05_021DC6EC
ldr r0, _021E0AC4 ; =0x00000F62
mov r1, #4
strh r1, [r4, r0]
pop {r4, r5, r6, pc}
_021E0A94:
add r0, r5, #0
bl MOD05_021DC6FC
add r6, r0, #0
ldr r0, [r5]
mov r1, #0x10
sub r1, r1, r0
bl MOD05_021DC6D4
cmp r6, #1
bne _021E0AB8
ldr r0, _021E0AC4 ; =0x00000F62
mov r1, #5
strh r1, [r4, r0]
pop {r4, r5, r6, pc}
_021E0AB2:
ldr r0, [r4, #4]
bl MOD05_021DCB6C
_021E0AB8:
pop {r4, r5, r6, pc}
nop
_021E0ABC: .word 0x00000F58
_021E0AC0: .word 0x0400000C
_021E0AC4: .word 0x00000F62
thumb_func_start MOD05_021E0AC8
MOD05_021E0AC8: ; 0x021E0AC8
push {r4, r5, r6, lr}
ldr r0, _021E0B90 ; =0x00000F58
add r4, r1, #0
add r1, r0, #0
add r1, #0xa
ldrh r1, [r4, r1]
ldr r5, [r4, r0]
cmp r1, #5
bhi _021E0B8C
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021E0AE6: ; jump table
.short _021E0AF2 - _021E0AE6 - 2 ; case 0
.short _021E0B16 - _021E0AE6 - 2 ; case 1
.short _021E0B34 - _021E0AE6 - 2 ; case 2
.short _021E0B4C - _021E0AE6 - 2 ; case 3
.short _021E0B68 - _021E0AE6 - 2 ; case 4
.short _021E0B86 - _021E0AE6 - 2 ; case 5
_021E0AF2:
add r0, r5, #0
mov r1, #0
mov r2, #4
mov r3, #8
bl MOD05_021DC6EC
mov r0, #0
mov r1, #0x10
bl MOD05_021DC6D4
mov r0, #4
mov r1, #1
bl FUN_0201E6E4
ldr r0, _021E0B94 ; =0x00000F62
mov r1, #1
strh r1, [r4, r0]
pop {r4, r5, r6, pc}
_021E0B16:
add r0, r5, #0
bl MOD05_021DC6FC
add r6, r0, #0
ldr r0, [r5]
mov r1, #0x10
sub r1, r1, r0
bl MOD05_021DC6D4
cmp r6, #0
beq _021E0B8C
ldr r0, _021E0B94 ; =0x00000F62
mov r1, #3
strh r1, [r4, r0]
pop {r4, r5, r6, pc}
_021E0B34:
mov r0, #4
mov r1, #0xc
bl MOD05_021DC6D4
mov r0, #4
mov r1, #1
bl FUN_0201E6E4
ldr r0, _021E0B94 ; =0x00000F62
mov r1, #3
strh r1, [r4, r0]
pop {r4, r5, r6, pc}
_021E0B4C:
add r0, #0xe
ldrh r0, [r4, r0]
cmp r0, #5
bne _021E0B8C
add r0, r5, #0
mov r1, #4
mov r2, #0
mov r3, #8
bl MOD05_021DC6EC
ldr r0, _021E0B94 ; =0x00000F62
mov r1, #4
strh r1, [r4, r0]
pop {r4, r5, r6, pc}
_021E0B68:
add r0, r5, #0
bl MOD05_021DC6FC
add r6, r0, #0
ldr r0, [r5]
mov r1, #0x10
sub r1, r1, r0
bl MOD05_021DC6D4
cmp r6, #0
beq _021E0B8C
ldr r0, _021E0B94 ; =0x00000F62
mov r1, #5
strh r1, [r4, r0]
pop {r4, r5, r6, pc}
_021E0B86:
ldr r0, [r4, #4]
bl MOD05_021DCB6C
_021E0B8C:
pop {r4, r5, r6, pc}
nop
_021E0B90: .word 0x00000F58
_021E0B94: .word 0x00000F62
thumb_func_start MOD05_021E0B98
MOD05_021E0B98: ; 0x021E0B98
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x10
ldr r0, _021E0D14 ; =0x00000F58
add r4, r1, #0
add r1, r0, #0
add r1, #0xa
ldrh r1, [r4, r1]
ldr r5, [r4, r0]
cmp r1, #5
bls _021E0BAE
b _021E0D10
_021E0BAE:
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021E0BBA: ; jump table
.short _021E0BC6 - _021E0BBA - 2 ; case 0
.short _021E0C16 - _021E0BBA - 2 ; case 1
.short _021E0C44 - _021E0BBA - 2 ; case 2
.short _021E0C84 - _021E0BBA - 2 ; case 3
.short _021E0CB8 - _021E0BBA - 2 ; case 4
.short _021E0CF2 - _021E0BBA - 2 ; case 5
_021E0BC6:
ldr r1, _021E0D18 ; =0x0000764F
mov r2, #0x41
str r1, [sp]
mov r1, #0
str r1, [sp, #4]
mov r1, #1
str r1, [sp, #8]
add r0, #0xc
ldrh r0, [r4, r0]
add r1, r5, #0
lsl r2, r2, #2
str r0, [sp, #0xc]
ldr r3, [r4]
add r0, r5, #0
ldr r2, [r3, r2]
add r0, #0x44
ldr r2, [r2, #0x44]
add r1, #0x14
mov r3, #7
bl MOD05_021DD420
add r0, r5, #0
mov r1, #0
mov r2, #9
mov r3, #0x1e
bl MOD05_021DC6EC
mov r0, #0
mov r1, #0x10
bl MOD05_021DC6D4
mov r0, #4
mov r1, #1
bl FUN_0201E6E4
ldr r0, _021E0D1C ; =0x00000F62
mov r1, #1
add sp, #0x10
strh r1, [r4, r0]
pop {r3, r4, r5, r6, r7, pc}
_021E0C16:
add r0, r5, #0
add r0, #0x14
bl MOD05_021DD5D0
add r6, r0, #0
add r0, r5, #0
bl MOD05_021DC6FC
add r7, r0, #0
ldr r0, [r5]
mov r1, #0x10
sub r1, r1, r0
bl MOD05_021DC6D4
cmp r6, #1
bne _021E0D10
cmp r7, #1
bne _021E0D10
ldr r0, _021E0D1C ; =0x00000F62
mov r1, #3
add sp, #0x10
strh r1, [r4, r0]
pop {r3, r4, r5, r6, r7, pc}
_021E0C44:
add r0, #0xc
ldrh r0, [r4, r0]
cmp r0, #0
beq _021E0C6A
mov r0, #0x41
ldr r1, [r4]
lsl r0, r0, #2
ldr r0, [r1, r0]
ldr r2, _021E0D18 ; =0x0000764F
ldr r0, [r0, #0x44]
mov r1, #7
mov r3, #0
str r0, [r5, #0x14]
bl MOD05_021DD49C
add r5, #0x14
add r0, r5, #0
bl MOD05_021DD5EC
_021E0C6A:
mov r0, #9
mov r1, #7
bl MOD05_021DC6D4
mov r0, #4
mov r1, #1
bl FUN_0201E6E4
ldr r0, _021E0D1C ; =0x00000F62
mov r1, #3
add sp, #0x10
strh r1, [r4, r0]
pop {r3, r4, r5, r6, r7, pc}
_021E0C84:
add r1, r0, #0
add r1, #0xe
ldrh r1, [r4, r1]
cmp r1, #5
bne _021E0D10
add r0, #0xc
ldrh r0, [r4, r0]
cmp r0, #0
beq _021E0CA2
add r0, r5, #0
add r0, #0x14
mov r1, #1
mov r2, #0
bl MOD05_021DD5B4
_021E0CA2:
add r0, r5, #0
mov r1, #9
mov r2, #0
mov r3, #0x1e
bl MOD05_021DC6EC
ldr r0, _021E0D1C ; =0x00000F62
mov r1, #4
add sp, #0x10
strh r1, [r4, r0]
pop {r3, r4, r5, r6, r7, pc}
_021E0CB8:
add r0, #0xc
ldrh r0, [r4, r0]
cmp r0, #0
beq _021E0CCC
add r0, r5, #0
add r0, #0x14
bl MOD05_021DD5D0
add r6, r0, #0
b _021E0CCE
_021E0CCC:
mov r6, #1
_021E0CCE:
add r0, r5, #0
bl MOD05_021DC6FC
add r7, r0, #0
ldr r0, [r5]
mov r1, #0x10
sub r1, r1, r0
bl MOD05_021DC6D4
cmp r6, #1
bne _021E0D10
cmp r7, #1
bne _021E0D10
ldr r0, _021E0D1C ; =0x00000F62
mov r1, #5
add sp, #0x10
strh r1, [r4, r0]
pop {r3, r4, r5, r6, r7, pc}
_021E0CF2:
add r0, #0xc
ldrh r0, [r4, r0]
cmp r0, #0
beq _021E0D0A
mov r2, #0
str r2, [sp]
str r2, [sp, #4]
ldr r0, [r5, #0x14]
mov r1, #1
add r3, r2, #0
bl MOD05_021DBA40
_021E0D0A:
ldr r0, [r4, #4]
bl MOD05_021DCB6C
_021E0D10:
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_021E0D14: .word 0x00000F58
_021E0D18: .word 0x0000764F
_021E0D1C: .word 0x00000F62
thumb_func_start MOD05_021E0D20
MOD05_021E0D20: ; 0x021E0D20
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x10
ldr r0, _021E0E9C ; =0x00000F58
add r4, r1, #0
add r1, r0, #0
add r1, #0xa
ldrh r1, [r4, r1]
ldr r5, [r4, r0]
cmp r1, #5
bls _021E0D36
b _021E0E98
_021E0D36:
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021E0D42: ; jump table
.short _021E0D4E - _021E0D42 - 2 ; case 0
.short _021E0D9E - _021E0D42 - 2 ; case 1
.short _021E0DCC - _021E0D42 - 2 ; case 2
.short _021E0E0C - _021E0D42 - 2 ; case 3
.short _021E0E40 - _021E0D42 - 2 ; case 4
.short _021E0E7A - _021E0D42 - 2 ; case 5
_021E0D4E:
ldr r1, _021E0EA0 ; =0x00007555
mov r2, #0x41
str r1, [sp]
ldr r1, _021E0EA4 ; =0x00007FFF
add r0, #0xc
str r1, [sp, #4]
mov r1, #1
str r1, [sp, #8]
ldrh r0, [r4, r0]
add r1, r5, #0
lsl r2, r2, #2
str r0, [sp, #0xc]
ldr r3, [r4]
add r0, r5, #0
ldr r2, [r3, r2]
add r0, #0x44
ldr r2, [r2, #0x44]
add r1, #0x14
mov r3, #6
bl MOD05_021DD420
add r0, r5, #0
mov r1, #0
mov r2, #9
mov r3, #0x1e
bl MOD05_021DC6EC
mov r0, #0
mov r1, #0x10
bl MOD05_021DC6D4
mov r0, #4
mov r1, #1
bl FUN_0201E6E4
ldr r0, _021E0EA8 ; =0x00000F62
mov r1, #1
add sp, #0x10
strh r1, [r4, r0]
pop {r3, r4, r5, r6, r7, pc}
_021E0D9E:
add r0, r5, #0
add r0, #0x14
bl MOD05_021DD5D0
add r6, r0, #0
add r0, r5, #0
bl MOD05_021DC6FC
add r7, r0, #0
ldr r0, [r5]
mov r1, #0x10
sub r1, r1, r0
bl MOD05_021DC6D4
cmp r6, #1
bne _021E0E98
cmp r7, #1
bne _021E0E98
ldr r0, _021E0EA8 ; =0x00000F62
mov r1, #3
add sp, #0x10
strh r1, [r4, r0]
pop {r3, r4, r5, r6, r7, pc}
_021E0DCC:
add r0, #0xc
ldrh r0, [r4, r0]
cmp r0, #0
beq _021E0DF2
mov r0, #0x41
ldr r1, [r4]
lsl r0, r0, #2
ldr r0, [r1, r0]
ldr r2, _021E0EA0 ; =0x00007555
ldr r0, [r0, #0x44]
ldr r3, _021E0EA4 ; =0x00007FFF
mov r1, #6
str r0, [r5, #0x14]
bl MOD05_021DD49C
add r5, #0x14
add r0, r5, #0
bl MOD05_021DD5EC
_021E0DF2:
mov r0, #9
mov r1, #7
bl MOD05_021DC6D4
mov r0, #4
mov r1, #1
bl FUN_0201E6E4
ldr r0, _021E0EA8 ; =0x00000F62
mov r1, #3
add sp, #0x10
strh r1, [r4, r0]
pop {r3, r4, r5, r6, r7, pc}
_021E0E0C:
add r1, r0, #0
add r1, #0xe
ldrh r1, [r4, r1]
cmp r1, #5
bne _021E0E98
add r0, #0xc
ldrh r0, [r4, r0]
cmp r0, #0
beq _021E0E2A
add r0, r5, #0
add r0, #0x14
mov r1, #1
mov r2, #0
bl MOD05_021DD5B4
_021E0E2A:
add r0, r5, #0
mov r1, #9
mov r2, #0
mov r3, #0x1e
bl MOD05_021DC6EC
ldr r0, _021E0EA8 ; =0x00000F62
mov r1, #4
add sp, #0x10
strh r1, [r4, r0]
pop {r3, r4, r5, r6, r7, pc}
_021E0E40:
add r0, #0xc
ldrh r0, [r4, r0]
cmp r0, #0
beq _021E0E54
add r0, r5, #0
add r0, #0x14
bl MOD05_021DD5D0
add r6, r0, #0
b _021E0E56
_021E0E54:
mov r6, #1
_021E0E56:
add r0, r5, #0
bl MOD05_021DC6FC
add r7, r0, #0
ldr r0, [r5]
mov r1, #0x10
sub r1, r1, r0
bl MOD05_021DC6D4
cmp r6, #1
bne _021E0E98
cmp r7, #1
bne _021E0E98
ldr r0, _021E0EA8 ; =0x00000F62
mov r1, #5
add sp, #0x10
strh r1, [r4, r0]
pop {r3, r4, r5, r6, r7, pc}
_021E0E7A:
add r0, #0xc
ldrh r0, [r4, r0]
cmp r0, #0
beq _021E0E92
mov r2, #0
str r2, [sp]
str r2, [sp, #4]
ldr r0, [r5, #0x14]
mov r1, #1
add r3, r2, #0
bl MOD05_021DBA40
_021E0E92:
ldr r0, [r4, #4]
bl MOD05_021DCB6C
_021E0E98:
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_021E0E9C: .word 0x00000F58
_021E0EA0: .word 0x00007555
_021E0EA4: .word 0x00007FFF
_021E0EA8: .word 0x00000F62
thumb_func_start MOD05_021E0EAC
MOD05_021E0EAC: ; 0x021E0EAC
push {r3, r4, r5, lr}
sub sp, #8
add r4, r1, #0
mov r0, #0x41
ldr r1, [r4]
lsl r0, r0, #2
ldr r1, [r1, r0]
ldr r0, _021E0F9C ; =0x00000F58
add r2, r0, #0
add r2, #0xa
ldrh r2, [r4, r2]
ldr r5, [r4, r0]
cmp r2, #5
bhi _021E0F98
add r2, r2, r2
add r2, pc
ldrh r2, [r2, #6]
lsl r2, r2, #0x10
asr r2, r2, #0x10
add pc, r2
_021E0ED4: ; jump table
.short _021E0EE0 - _021E0ED4 - 2 ; case 0
.short _021E0F0A - _021E0ED4 - 2 ; case 1
.short _021E0F2C - _021E0ED4 - 2 ; case 2
.short _021E0F3E - _021E0ED4 - 2 ; case 3
.short _021E0F70 - _021E0ED4 - 2 ; case 4
.short _021E0F8C - _021E0ED4 - 2 ; case 5
_021E0EE0:
ldr r1, [r1, #4]
add r0, r5, #0
ldr r1, [r1, #0x1c]
bl MOD05_021E1100
mov r0, #0x54
mov r1, #1
str r0, [sp]
mov r0, #0x1e
lsl r1, r1, #0x14
str r0, [sp, #4]
add r0, r5, #0
lsr r2, r1, #3
mov r3, #0x80
bl MOD05_021E11CC
ldr r0, _021E0FA0 ; =0x00000F62
mov r1, #1
add sp, #8
strh r1, [r4, r0]
pop {r3, r4, r5, pc}
_021E0F0A:
add r0, r5, #0
bl MOD05_021E11EC
cmp r0, #1
bne _021E0F98
mov r0, #4
mov r1, #1
bl FUN_0201E6E4
add r0, r5, #0
bl MOD05_021E1290
ldr r0, _021E0FA0 ; =0x00000F62
mov r1, #3
add sp, #8
strh r1, [r4, r0]
pop {r3, r4, r5, pc}
_021E0F2C:
mov r0, #4
mov r1, #1
bl FUN_0201E6E4
ldr r0, _021E0FA0 ; =0x00000F62
mov r1, #3
add sp, #8
strh r1, [r4, r0]
pop {r3, r4, r5, pc}
_021E0F3E:
add r0, #0xe
ldrh r0, [r4, r0]
cmp r0, #5
bne _021E0F98
ldr r1, [r1, #4]
add r0, r5, #0
ldr r1, [r1, #0x1c]
bl MOD05_021E1100
mov r0, #0x54
mov r1, #2
str r0, [sp]
mov r0, #0x1e
lsl r1, r1, #0x10
str r0, [sp, #4]
add r0, r5, #0
lsl r2, r1, #3
mov r3, #0x80
bl MOD05_021E11CC
ldr r0, _021E0FA0 ; =0x00000F62
mov r1, #4
add sp, #8
strh r1, [r4, r0]
pop {r3, r4, r5, pc}
_021E0F70:
mov r0, #4
mov r1, #0
bl FUN_0201E6E4
add r0, r5, #0
bl MOD05_021E11EC
cmp r0, #1
bne _021E0F98
ldr r0, _021E0FA0 ; =0x00000F62
mov r1, #5
add sp, #8
strh r1, [r4, r0]
pop {r3, r4, r5, pc}
_021E0F8C:
add r0, r5, #0
bl MOD05_021E117C
ldr r0, [r4, #4]
bl MOD05_021DCB6C
_021E0F98:
add sp, #8
pop {r3, r4, r5, pc}
.balign 4, 0
_021E0F9C: .word 0x00000F58
_021E0FA0: .word 0x00000F62
thumb_func_start MOD05_021E0FA4
MOD05_021E0FA4: ; 0x021E0FA4
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r0, _021E0FCC ; =0x00000F5C
add r4, r1, #0
ldr r0, [r5, r0]
cmp r0, #0
beq _021E0FB6
bl ErrorHandling
_021E0FB6:
ldr r1, _021E0FCC ; =0x00000F5C
mov r0, #1
str r0, [r5, r1]
lsl r0, r4, #0x10
lsr r0, r0, #0x10
add r1, r1, #4
strh r0, [r5, r1]
bl FUN_020054C8
pop {r3, r4, r5, pc}
nop
_021E0FCC: .word 0x00000F5C
thumb_func_start MOD05_021E0FD0
MOD05_021E0FD0: ; 0x021E0FD0
push {r4, lr}
add r4, r0, #0
mov r0, #0xf6
lsl r0, r0, #4
ldrh r0, [r4, r0]
mov r1, #0
bl FUN_020054F0
ldr r0, _021E0FE8 ; =0x00000F5C
mov r1, #0
str r1, [r4, r0]
pop {r4, pc}
.balign 4, 0
_021E0FE8: .word 0x00000F5C
thumb_func_start MOD05_021E0FEC
MOD05_021E0FEC: ; 0x021E0FEC
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x18
add r5, r0, #0
ldr r0, [r5, #0x1c]
bl FUN_02012988
str r0, [sp, #0xc]
ldr r0, [r5, #0x20]
bl FUN_02012988
ldr r7, [sp, #0xc]
str r0, [sp, #8]
mov r4, #0
add r6, r0, #0
_021E1008:
mov r0, #2
ldrsh r2, [r5, r0]
cmp r4, r2
bgt _021E1026
add r0, sp, #0x14
str r0, [sp]
add r0, sp, #0x10
str r0, [sp, #4]
mov r1, #0
ldrsh r1, [r5, r1]
ldr r0, [r5, #4]
add r3, r4, #0
bl MOD05_021E1074
b _021E105C
_021E1026:
lsl r0, r2, #1
cmp r4, r0
bgt _021E1048
sub r0, r0, r4
lsl r1, r0, #1
ldr r0, [sp, #0xc]
ldrh r0, [r0, r1]
str r0, [sp, #0x14]
mov r0, #2
ldrsh r0, [r5, r0]
lsl r0, r0, #1
sub r0, r0, r4
lsl r1, r0, #1
ldr r0, [sp, #8]
ldrh r0, [r0, r1]
str r0, [sp, #0x10]
b _021E105C
_021E1048:
add r0, sp, #0x14
str r0, [sp]
add r0, sp, #0x10
str r0, [sp, #4]
mov r1, #0
ldrsh r1, [r5, r1]
ldr r0, [r5, #4]
add r3, r4, #0
bl MOD05_021E1074
_021E105C:
ldr r0, [sp, #0x14]
add r4, r4, #1
strh r0, [r7]
ldr r0, [sp, #0x10]
add r7, r7, #2
strh r0, [r6]
add r6, r6, #2
cmp r4, #0xc0
blt _021E1008
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021E1074
MOD05_021E1074: ; 0x021E1074
push {r4, r5, r6, r7, lr}
sub sp, #0xc
str r1, [sp]
ldr r5, [sp, #0x20]
ldr r4, [sp, #0x24]
sub r1, r3, r2
bpl _021E1084
neg r1, r1
_021E1084:
cmp r1, r0
blt _021E1092
mov r0, #0
str r0, [r5]
add sp, #0xc
str r0, [r4]
pop {r4, r5, r6, r7, pc}
_021E1092:
lsl r1, r1, #0xc
str r1, [sp, #4]
asr r7, r1, #0x1f
asr r1, r0, #0x1f
add r2, r0, #0
add r3, r1, #0
bl _ll_mul
str r0, [sp, #8]
ldr r0, [sp, #4]
add r6, r1, #0
add r1, r7, #0
add r2, r0, #0
add r3, r7, #0
bl _ll_mul
add r2, r0, #0
add r3, r1, #0
mov r0, #2
ldr r1, [sp, #8]
mov r7, #0
lsl r0, r0, #0xa
add r0, r1, r0
adc r6, r7
lsl r1, r6, #0x14
lsr r0, r0, #0xc
orr r0, r1
mov r1, #2
lsl r1, r1, #0xa
add r2, r2, r1
adc r3, r7
lsl r1, r3, #0x14
lsr r2, r2, #0xc
orr r2, r1
sub r0, r0, r2
bl FX_Sqrt
asr r2, r0, #0xc
ldr r0, [sp]
sub r0, r0, r2
str r0, [r5]
bpl _021E10EA
add r0, r7, #0
str r0, [r5]
_021E10EA:
ldr r1, [r5]
lsl r0, r2, #1
add r0, r1, r0
str r0, [r4]
cmp r0, #0xff
ble _021E10FA
mov r0, #0xff
str r0, [r4]
_021E10FA:
add sp, #0xc
pop {r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021E1100
MOD05_021E1100: ; 0x021E1100
push {r4, r5, r6, lr}
ldr r2, _021E116C ; =0x0000062C
add r4, r1, #0
mov r1, #0
add r5, r0, #0
bl memset
mov r2, #0x6b
add r1, r5, #0
lsl r2, r2, #2
mov r0, #4
add r1, #0x2c
add r2, r5, r2
bl FUN_02012944
mov r1, #0xcb
ldr r2, _021E1170 ; =0x000004AC
lsl r1, r1, #2
str r0, [r5, #0x1c]
mov r0, #4
add r1, r5, r1
add r2, r5, r2
bl FUN_02012944
str r0, [r5, #0x20]
mov r0, #0xcb
ldr r1, _021E1170 ; =0x000004AC
mov r3, #0
add r6, r5, #0
mov r2, #0xff
lsl r0, r0, #2
_021E113E:
strh r2, [r6, r0]
strh r2, [r6, r1]
add r3, r3, #1
add r6, r6, #2
cmp r3, #0xc0
blt _021E113E
ldr r0, _021E1174 ; =MOD05_021E12E4
add r1, r5, #0
mov r2, #0x78
str r4, [r5, #0x14]
bl FUN_0200CA98
mov r2, #1
ldr r0, _021E1178 ; =MOD05_021E1278
add r1, r5, #0
lsl r2, r2, #0xa
bl FUN_0200CA98
str r0, [r5, #0x24]
mov r0, #0
str r0, [r5, #0x28]
pop {r4, r5, r6, pc}
nop
_021E116C: .word 0x0000062C
_021E1170: .word 0x000004AC
_021E1174: .word MOD05_021E12E4
_021E1178: .word MOD05_021E1278
thumb_func_start MOD05_021E117C
MOD05_021E117C: ; 0x021E117C
push {r4, lr}
add r4, r0, #0
mov r0, #1
lsl r0, r0, #0x1a
mov r1, #0xe
ldr r2, [r0]
lsl r1, r1, #0xc
and r1, r2
lsr r3, r1, #0xd
ldr r2, [r0]
ldr r1, _021E11C4 ; =0xFFFF1FFF
and r2, r1
mov r1, #2
bic r3, r1
lsl r1, r3, #0xd
orr r1, r2
str r1, [r0]
ldr r0, [r4, #0x18]
bl MOD05_021F4648
ldr r0, [r4, #0x24]
bl FUN_0200CAB4
ldr r0, [r4, #0x1c]
bl FUN_02012974
ldr r0, [r4, #0x20]
bl FUN_02012974
ldr r2, _021E11C8 ; =0x0000062C
add r0, r4, #0
mov r1, #0
bl memset
pop {r4, pc}
nop
_021E11C4: .word 0xFFFF1FFF
_021E11C8: .word 0x0000062C
thumb_func_start MOD05_021E11CC
MOD05_021E11CC: ; 0x021E11CC
push {r3, r4, r5, lr}
add r4, r0, #0
add r5, r3, #0
ldr r3, [sp, #0x14]
add r0, r4, #4
bl MOD05_021DC728
ldr r0, [sp, #0x10]
strh r5, [r4]
strh r0, [r4, #2]
mov r0, #1
str r0, [r4, #0x28]
add r0, r4, #0
bl MOD05_021E0FEC
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021E11EC
MOD05_021E11EC: ; 0x021E11EC
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r1, [r5, #0x28]
cmp r1, #0
bne _021E11FE
bl MOD05_021E12B8
mov r0, #1
pop {r3, r4, r5, pc}
_021E11FE:
add r0, r5, #4
bl MOD05_021DC738
add r4, r0, #0
add r0, r5, #0
bl MOD05_021E0FEC
cmp r4, #1
bne _021E1214
mov r0, #0
str r0, [r5, #0x28]
_021E1214:
add r0, r4, #0
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021E1218
MOD05_021E1218: ; 0x021E1218
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
ldr r0, _021E1270 ; =0x04000006
add r5, r1, #0
ldrh r7, [r0]
mov r6, #0
add r4, sp, #0
_021E1226:
ldr r0, [r5, #0x1c]
bl FUN_0201299C
add r6, r6, #1
add r5, r5, #4
stmia r4!, {r0}
cmp r6, #2
blt _021E1226
cmp r7, #0xc0
bge _021E126C
add r7, r7, #1
cmp r7, #0xc0
blt _021E1242
sub r7, #0xc0
_021E1242:
ldr r1, _021E1274 ; =0x04000004
mov r0, #2
ldrh r2, [r1]
tst r0, r2
beq _021E126C
ldr r2, [sp]
lsl r0, r7, #1
ldrh r2, [r2, r0]
lsl r3, r2, #8
mov r2, #0xff
lsl r2, r2, #8
and r3, r2
ldr r2, [sp, #4]
ldrh r0, [r2, r0]
lsl r0, r0, #0x18
lsr r0, r0, #0x18
orr r0, r3
strh r0, [r1, #0x3e]
mov r0, #0xc0
add r1, #0x42
strh r0, [r1]
_021E126C:
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_021E1270: .word 0x04000006
_021E1274: .word 0x04000004
thumb_func_start MOD05_021E1278
MOD05_021E1278: ; 0x021E1278
push {r3, r4, r5, lr}
add r5, r1, #0
mov r4, #0
_021E127E:
ldr r0, [r5, #0x1c]
bl FUN_020129B4
add r4, r4, #1
add r5, r5, #4
cmp r4, #2
blt _021E127E
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021E1290
MOD05_021E1290: ; 0x021E1290
ldr r3, _021E129C ; =FUN_0200CA98
add r1, r0, #0
ldr r0, _021E12A0 ; =MOD05_021E12A4
mov r2, #0x80
bx r3
nop
_021E129C: .word FUN_0200CA98
_021E12A0: .word MOD05_021E12A4
thumb_func_start MOD05_021E12A4
MOD05_021E12A4: ; 0x021E12A4
push {r4, lr}
add r4, r0, #0
add r0, r1, #0
bl MOD05_021E117C
add r0, r4, #0
bl FUN_0200CAB4
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021E12B8
MOD05_021E12B8: ; 0x021E12B8
push {r3, r4, r5, r6, r7, lr}
mov r7, #6
add r5, r0, #0
mov r4, #0
lsl r7, r7, #6
_021E12C2:
ldr r0, [r5, #0x1c]
bl FUN_0201299C
add r6, r0, #0
ldr r0, [r5, #0x1c]
bl FUN_02012988
add r1, r6, #0
add r2, r7, #0
bl memcpy
add r4, r4, #1
add r5, r5, #4
cmp r4, #2
blt _021E12C2
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021E12E4
MOD05_021E12E4: ; 0x021E12E4
push {r3, r4, r5, r6, r7, lr}
add r4, r1, #0
ldr r1, _021E1364 ; =0x0400004A
add r5, r0, #0
ldrb r0, [r1]
add r7, sp, #0
ldr r3, _021E1368 ; =0xFFFFC0FF
strb r0, [r7]
add r0, r1, #0
sub r0, #0x4a
ldr r2, [r0]
mov r0, #0xe
lsl r0, r0, #0xc
and r0, r2
lsr r2, r0, #0xd
sub r0, r1, #2
ldrh r6, [r0]
and r6, r3
mov r3, #0x3f
lsl r3, r3, #8
orr r6, r3
lsr r3, r1, #0xd
orr r3, r6
strh r3, [r0]
ldrh r1, [r1]
mov r0, #0x3f
bic r1, r0
mov r0, #0x3e
orr r0, r1
ldrb r1, [r7]
lsl r1, r1, #0x1a
lsr r1, r1, #0x1f
beq _021E132A
mov r1, #0x20
orr r0, r1
_021E132A:
ldr r1, _021E1364 ; =0x0400004A
mov r3, #0xff
strh r0, [r1]
add r0, r1, #0
sub r0, #8
strh r3, [r0]
sub r0, r1, #4
mov r3, #0xc0
strh r3, [r0]
sub r1, #0x4a
ldr r3, [r1]
ldr r0, _021E136C ; =0xFFFF1FFF
and r0, r3
mov r3, #2
orr r2, r3
lsl r2, r2, #0xd
orr r0, r2
str r0, [r1]
ldr r0, [r4, #0x14]
ldr r1, _021E1370 ; =MOD05_021E1218
add r2, r4, #0
bl MOD05_021F4624
str r0, [r4, #0x18]
add r0, r5, #0
bl FUN_0200CAB4
pop {r3, r4, r5, r6, r7, pc}
nop
_021E1364: .word 0x0400004A
_021E1368: .word 0xFFFFC0FF
_021E136C: .word 0xFFFF1FFF
_021E1370: .word MOD05_021E1218
thumb_func_start MOD05_021E1374
MOD05_021E1374: ; 0x021E1374
push {r3, r4, r5, r6, r7, lr}
str r0, [sp]
add r5, r1, #0
add r6, r2, #0
bl FUN_02046528
mov r1, #0x47
add r7, r0, #0
mov r0, #4
lsl r1, r1, #2
bl AllocFromHeap
add r4, r0, #0
bne _021E1396
bl ErrorHandling
pop {r3, r4, r5, r6, r7, pc}
_021E1396:
mov r2, #0x47
mov r1, #0
lsl r2, r2, #2
bl memset
str r7, [r4, #4]
ldr r0, [r7, #0xc]
bl FUN_020462AC
str r0, [r4, #8]
mov r0, #0x45
lsl r0, r0, #2
str r6, [r4, r0]
add r0, r0, #4
str r5, [r4, r0]
ldr r0, [sp]
ldr r1, _021E13C0 ; =MOD05_021E13C4
add r2, r4, #0
bl FUN_0204640C
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_021E13C0: .word MOD05_021E13C4
thumb_func_start MOD05_021E13C4
MOD05_021E13C4: ; 0x021E13C4
push {r3, r4, r5, lr}
sub sp, #8
bl FUN_0204652C
add r4, r0, #0
ldr r1, [r4]
cmp r1, #8
bhi _021E13FC
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021E13E0: ; jump table
.short _021E13F2 - _021E13E0 - 2 ; case 0
.short _021E1408 - _021E13E0 - 2 ; case 1
.short _021E1456 - _021E13E0 - 2 ; case 2
.short _021E1470 - _021E13E0 - 2 ; case 3
.short _021E1482 - _021E13E0 - 2 ; case 4
.short _021E149E - _021E13E0 - 2 ; case 5
.short _021E14B0 - _021E13E0 - 2 ; case 6
.short _021E14FA - _021E13E0 - 2 ; case 7
.short _021E1502 - _021E13E0 - 2 ; case 8
_021E13F2:
ldr r0, [r4, #4]
bl MOD05_021E19E0
cmp r0, #1
beq _021E13FE
_021E13FC:
b _021E150C
_021E13FE:
add r0, r4, #0
mov r1, #1
bl MOD05_021E1514
b _021E150C
_021E1408:
bl MOD05_021E153C
add r0, r4, #0
bl MOD05_021E1518
cmp r0, #2
bne _021E142A
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0
strh r1, [r0]
add r0, r4, #0
mov r1, #2
bl MOD05_021E1514
b _021E150C
_021E142A:
cmp r0, #0
bne _021E1442
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #1
strh r1, [r0]
add r0, r4, #0
mov r1, #6
bl MOD05_021E1514
b _021E150C
_021E1442:
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #2
strh r1, [r0]
add r0, r4, #0
mov r1, #7
bl MOD05_021E1514
b _021E150C
_021E1456:
mov r0, #0x62
lsl r0, r0, #4
bl FUN_020054C8
ldr r0, [r4, #8]
mov r1, #0
bl FUN_0205F42C
add r0, r4, #0
mov r1, #3
bl MOD05_021E1514
b _021E150C
_021E1470:
bl MOD05_021E1794
cmp r0, #0
bne _021E150C
add r0, r4, #0
mov r1, #4
bl MOD05_021E1514
b _021E150C
_021E1482:
bl MOD05_021E17A0
cmp r0, #0
bne _021E1494
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #3
strh r1, [r0]
_021E1494:
add r0, r4, #0
mov r1, #5
bl MOD05_021E1514
b _021E150C
_021E149E:
bl MOD05_021E1794
cmp r0, #0
bne _021E150C
add r0, r4, #0
mov r1, #8
bl MOD05_021E1514
b _021E150C
_021E14B0:
ldr r0, [r4, #8]
bl FUN_0205F41C
mov r1, #0x64
sub r5, r1, r0
add r0, r5, #0
mov r1, #0xa
bl _s32_div_f
cmp r0, #0
bne _021E14CA
mov r3, #1
b _021E14DC
_021E14CA:
add r0, r5, #0
mov r1, #0x64
bl _s32_div_f
cmp r0, #0
bne _021E14DA
mov r3, #2
b _021E14DC
_021E14DA:
mov r3, #3
_021E14DC:
mov r0, #1
str r0, [sp]
str r0, [sp, #4]
mov r0, #0x46
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0
add r2, r5, #0
bl FUN_0200AD38
add r0, r4, #0
mov r1, #8
bl MOD05_021E1514
b _021E150C
_021E14FA:
mov r1, #8
bl MOD05_021E1514
b _021E150C
_021E1502:
bl FreeToHeap
add sp, #8
mov r0, #1
pop {r3, r4, r5, pc}
_021E150C:
mov r0, #0
add sp, #8
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021E1514
MOD05_021E1514: ; 0x021E1514
str r1, [r0]
bx lr
thumb_func_start MOD05_021E1518
MOD05_021E1518: ; 0x021E1518
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #8]
bl FUN_0205F41C
cmp r0, #0x64
bne _021E1538
mov r0, #0x11
lsl r0, r0, #4
ldrh r0, [r4, r0]
cmp r0, #0
bne _021E1534
mov r0, #1
pop {r4, pc}
_021E1534:
mov r0, #2
pop {r4, pc}
_021E1538:
mov r0, #0
pop {r4, pc}
thumb_func_start MOD05_021E153C
MOD05_021E153C: ; 0x021E153C
push {r4, r5, r6, r7, lr}
sub sp, #0x1c
str r0, [sp]
ldr r0, [r0, #4]
bl FUN_02034B64
mov r2, #0
str r0, [sp, #4]
str r2, [sp, #0x18]
cmp r0, #0
bls _021E1562
ldr r3, [sp]
add r1, r2, #0
_021E1556:
ldr r0, [sp, #4]
add r2, r2, #1
str r1, [r3, #0x10]
add r3, r3, #4
cmp r2, r0
blo _021E1556
_021E1562:
ldr r0, [sp]
ldr r0, [r0, #4]
ldr r0, [r0, #0x38]
bl FUN_02055320
add r4, r0, #0
ldr r0, [sp]
ldr r0, [r0, #4]
ldr r0, [r0, #0x38]
bl FUN_0205532C
sub r1, r4, #7
str r1, [sp, #0x14]
add r1, r4, #7
str r1, [sp, #0x10]
sub r1, r0, #7
add r0, r0, #6
str r0, [sp, #8]
ldr r0, [sp, #0x14]
str r1, [sp, #0xc]
cmp r0, #0
bge _021E1592
mov r0, #0
str r0, [sp, #0x14]
_021E1592:
ldr r0, [sp, #0xc]
cmp r0, #0
bge _021E159C
mov r0, #0
str r0, [sp, #0xc]
_021E159C:
ldr r0, [sp, #4]
mov r6, #0
cmp r0, #0
bls _021E1622
ldr r5, [sp]
_021E15A6:
ldr r0, [sp]
add r1, r6, #0
ldr r0, [r0, #4]
ldr r0, [r0, #0x34]
bl FUN_02058060
add r4, r0, #0
beq _021E161A
bl FUN_02058488
cmp r0, #8
bhi _021E161A
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021E15CA: ; jump table
.short _021E161A - _021E15CA - 2 ; case 0
.short _021E15DC - _021E15CA - 2 ; case 1
.short _021E15DC - _021E15CA - 2 ; case 2
.short _021E161A - _021E15CA - 2 ; case 3
.short _021E15DC - _021E15CA - 2 ; case 4
.short _021E15DC - _021E15CA - 2 ; case 5
.short _021E15DC - _021E15CA - 2 ; case 6
.short _021E15DC - _021E15CA - 2 ; case 7
.short _021E15DC - _021E15CA - 2 ; case 8
_021E15DC:
add r0, r4, #0
bl FUN_02058B2C
add r7, r0, #0
add r0, r4, #0
bl FUN_02058B4C
ldr r1, [sp, #0x14]
cmp r7, r1
blt _021E161A
ldr r1, [sp, #0x10]
cmp r7, r1
bgt _021E161A
ldr r1, [sp, #0xc]
cmp r0, r1
blt _021E161A
ldr r1, [sp, #8]
cmp r0, r1
bgt _021E161A
add r0, r4, #0
bl FUN_02058480
bl MOD05_021E1630
cmp r0, #0
bne _021E161A
ldr r0, [sp, #0x18]
str r4, [r5, #0x10]
add r0, r0, #1
add r5, r5, #4
str r0, [sp, #0x18]
_021E161A:
ldr r0, [sp, #4]
add r6, r6, #1
cmp r6, r0
blo _021E15A6
_021E1622:
mov r2, #0x11
ldr r1, [sp, #0x18]
ldr r0, [sp]
lsl r2, r2, #4
strh r1, [r0, r2]
add sp, #0x1c
pop {r4, r5, r6, r7, pc}
thumb_func_start MOD05_021E1630
MOD05_021E1630: ; 0x021E1630
sub r0, #0x33
cmp r0, #3
bhi _021E164E
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021E1642: ; jump table
.short _021E164A - _021E1642 - 2 ; case 0
.short _021E164A - _021E1642 - 2 ; case 1
.short _021E164A - _021E1642 - 2 ; case 2
.short _021E164A - _021E1642 - 2 ; case 3
_021E164A:
mov r0, #1
bx lr
_021E164E:
mov r0, #0
bx lr
.balign 4, 0
thumb_func_start MOD05_021E1654
MOD05_021E1654: ; 0x021E1654
push {r3, r4, r5, r6, r7, lr}
add r7, r0, #0
ldr r0, [r7, #0xc]
bl FUN_020462AC
add r4, r0, #0
bl FUN_0205F41C
add r6, r0, #0
add r0, r4, #0
bl FUN_0205F43C
add r5, r0, #0
ldr r0, [r7, #0xc]
bl FUN_0206F158
ldr r1, _021E16C4 ; =0x000001BB
mov r2, #1
mov r3, #4
bl FUN_0206EE50
cmp r0, #1
bne _021E1692
cmp r6, #0x64
bhs _021E1692
add r1, r6, #1
lsl r1, r1, #0x10
add r0, r4, #0
lsr r1, r1, #0x10
bl FUN_0205F42C
_021E1692:
add r0, r4, #0
bl FUN_0205ED9C
cmp r0, #1
bne _021E16BE
cmp r5, #0x64
bhs _021E16AE
add r0, r5, #1
lsl r0, r0, #0x10
lsr r5, r0, #0x10
add r0, r4, #0
add r1, r5, #0
bl FUN_0205F44C
_021E16AE:
cmp r5, #0x64
bne _021E16BE
add r0, r4, #0
bl FUN_0205F408
add r0, r7, #0
bl MOD05_021E16C8
_021E16BE:
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
nop
_021E16C4: .word 0x000001BB
thumb_func_start MOD05_021E16C8
MOD05_021E16C8: ; 0x021E16C8
push {r3, r4, r5, r6, r7, lr}
add r6, r0, #0
bl FUN_02034B64
add r7, r0, #0
ldr r5, _021E16FC ; =0x00000000
beq _021E16F8
_021E16D6:
ldr r0, [r6, #0x34]
add r1, r5, #0
bl FUN_02058060
add r4, r0, #0
beq _021E16F2
bl FUN_02058480
cmp r0, #0x31
bne _021E16F2
add r0, r4, #0
mov r1, #2
bl MOD05_021E198C
_021E16F2:
add r5, r5, #1
cmp r5, r7
blo _021E16D6
_021E16F8:
pop {r3, r4, r5, r6, r7, pc}
nop
_021E16FC: .word 0x00000000
thumb_func_start MOD05_021E1700
MOD05_021E1700: ; 0x021E1700
push {r4, lr}
add r4, r0, #0
add r0, r1, #0
add r1, r2, #0
bl FUN_0205AEA4
add r1, r0, #0
ldr r0, _021E1720 ; =0x00000112
ldrh r2, [r4, r0]
add r2, r2, #1
strh r2, [r4, r0]
add r0, r4, #0
bl MOD05_021E1724
pop {r4, pc}
nop
_021E1720: .word 0x00000112
thumb_func_start MOD05_021E1724
MOD05_021E1724: ; 0x021E1724
push {r4, r5, r6, lr}
add r5, r0, #0
add r6, r1, #0
mov r0, #4
mov r1, #0xc
bl AllocFromHeap
add r4, r0, #0
bne _021E173C
bl ErrorHandling
pop {r4, r5, r6, pc}
_021E173C:
ldr r0, _021E1750 ; =MOD05_021E1754
str r5, [r4, #8]
add r1, r4, #0
mov r2, #0
str r6, [r4, #4]
bl FUN_0200CA44
str r0, [r4]
pop {r4, r5, r6, pc}
nop
_021E1750: .word MOD05_021E1754
thumb_func_start MOD05_021E1754
MOD05_021E1754: ; 0x021E1754
push {r4, lr}
add r4, r1, #0
ldr r0, [r4, #4]
bl FUN_0205AEF0
cmp r0, #1
bne _021E178E
ldr r1, [r4, #8]
ldr r0, _021E1790 ; =0x00000112
ldrh r0, [r1, r0]
cmp r0, #0
bne _021E1770
bl ErrorHandling
_021E1770:
ldr r2, [r4, #8]
ldr r0, _021E1790 ; =0x00000112
ldrh r1, [r2, r0]
sub r1, r1, #1
strh r1, [r2, r0]
ldr r0, [r4, #4]
bl FUN_0205AEFC
ldr r0, [r4]
bl FUN_0200CAB4
mov r0, #4
add r1, r4, #0
bl FUN_02016A8C
_021E178E:
pop {r4, pc}
.balign 4, 0
_021E1790: .word 0x00000112
thumb_func_start MOD05_021E1794
MOD05_021E1794: ; 0x021E1794
ldr r1, _021E179C ; =0x00000112
ldrh r0, [r0, r1]
bx lr
nop
_021E179C: .word 0x00000112
thumb_func_start MOD05_021E17A0
MOD05_021E17A0: ; 0x021E17A0
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
ldr r0, [r5, #4]
ldr r0, [r0, #0xc]
bl FUN_020462AC
str r0, [sp]
mov r0, #0x11
lsl r0, r0, #4
mov r7, #0
ldrh r0, [r5, r0]
add r6, r7, #0
cmp r0, #0
ble _021E183C
add r4, r5, #0
_021E17BE:
ldr r0, [r4, #0x10]
bl MOD05_021E1848
add r1, r0, #0
ldr r0, [r5, #4]
bl FUN_02039640
cmp r0, #0
bne _021E17DE
ldr r1, [r4, #0x10]
ldr r2, _021E1840 ; =0x021F6908
add r0, r5, #0
bl MOD05_021E1700
mov r7, #1
b _021E182E
_021E17DE:
bl rand_LC
mov r1, #0x64
bl _s32_div_f
cmp r1, #0x32
bge _021E182E
ldr r0, [r4, #0x10]
bl MOD05_021E1978
cmp r0, #0
bne _021E182E
ldr r0, [r4, #0x10]
mov r1, #0x31
bl MOD05_021E198C
ldr r1, [r4, #0x10]
ldr r2, _021E1844 ; =0x021F6910
add r0, r5, #0
bl MOD05_021E1700
ldr r0, [r5, #4]
ldr r1, [r4, #0x10]
mov r2, #0
bl MOD05_021E1A30
add r7, r0, #0
beq _021E1826
mov r1, #0x31
bl MOD05_021E198C
ldr r2, _021E1844 ; =0x021F6910
add r0, r5, #0
add r1, r7, #0
bl MOD05_021E1700
_021E1826:
ldr r0, [sp]
mov r7, #1
bl FUN_0205ED7C
_021E182E:
mov r0, #0x11
lsl r0, r0, #4
ldrh r0, [r5, r0]
add r6, r6, #1
add r4, r4, #4
cmp r6, r0
blt _021E17BE
_021E183C:
add r0, r7, #0
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_021E1840: .word 0x021F6908
_021E1844: .word 0x021F6910
thumb_func_start MOD05_021E1848
MOD05_021E1848: ; 0x021E1848
push {r3, lr}
bl FUN_02058498
lsl r0, r0, #0x10
lsr r0, r0, #0x10
bl FUN_020395F4
pop {r3, pc}
thumb_func_start MOD05_021E1858
MOD05_021E1858: ; 0x021E1858
push {r3, r4, r5, lr}
add r4, r0, #0
add r0, r1, #0
add r5, r2, #0
bl MOD05_021E1978
cmp r0, #0
bne _021E186C
mov r0, #0
pop {r3, r4, r5, pc}
_021E186C:
add r0, r4, #0
add r1, r5, #0
bl MOD05_021E189C
add r5, r0, #0
cmp r5, #0xff
bne _021E187E
mov r0, #0
pop {r3, r4, r5, pc}
_021E187E:
add r0, r4, #0
add r1, r5, #0
bl MOD05_021E18BC
add r2, r0, #0
add r0, r4, #0
add r1, r5, #0
bl MOD05_021E1908
add r1, r0, #0
add r0, r5, #0
bl MOD05_021E1964
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021E189C
MOD05_021E189C: ; 0x021E189C
ldr r3, _021E18B8 ; =0x021F691C
mov r2, #0
_021E18A0:
ldrh r0, [r3]
cmp r1, r0
bne _021E18AC
lsl r0, r2, #0x10
lsr r0, r0, #0x10
bx lr
_021E18AC:
add r2, r2, #1
add r3, #0xc
cmp r2, #0xf0
blo _021E18A0
mov r0, #0xff
bx lr
.balign 4, 0
_021E18B8: .word 0x021F691C
thumb_func_start MOD05_021E18BC
MOD05_021E18BC: ; 0x021E18BC
push {r3, r4, r5, r6, r7, lr}
add r6, r0, #0
mov r0, #0xc
ldr r2, _021E1900 ; =0x021F691C
mul r0, r1
add r0, r2, r0
ldr r7, _021E1904 ; =0x0000FFFF
mov r4, #1
add r5, r0, #2
_021E18CE:
ldrh r1, [r5]
cmp r1, #0
bne _021E18DC
sub r0, r4, #1
lsl r0, r0, #0x10
lsr r0, r0, #0x10
pop {r3, r4, r5, r6, r7, pc}
_021E18DC:
cmp r1, r7
beq _021E18F0
add r0, r6, #0
bl FUN_02039640
cmp r0, #0
bne _021E18F0
lsl r0, r4, #0x10
lsr r0, r0, #0x10
pop {r3, r4, r5, r6, r7, pc}
_021E18F0:
add r4, r4, #1
add r5, r5, #2
cmp r4, #6
blt _021E18CE
sub r0, r4, #1
lsl r0, r0, #0x10
lsr r0, r0, #0x10
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_021E1900: .word 0x021F691C
_021E1904: .word 0x0000FFFF
thumb_func_start MOD05_021E1908
MOD05_021E1908: ; 0x021E1908
push {r3, r4, r5, lr}
ldr r0, [r0, #0xc]
add r5, r1, #0
add r4, r2, #0
bl FUN_020462AC
cmp r4, #0
beq _021E192C
add r1, r4, #0
bl FUN_0205EEB8
cmp r0, #0
bne _021E192C
add r0, r5, #0
add r1, r4, #0
bl MOD05_021E1930
add r4, r0, #0
_021E192C:
add r0, r4, #0
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021E1930
MOD05_021E1930: ; 0x021E1930
sub r1, r1, #1
lsl r1, r1, #0x10
ldr r2, _021E195C ; =0x021F691C
lsr r3, r1, #0x10
beq _021E1956
mov r1, #0xc
mul r1, r0
add r2, r2, r1
ldr r1, _021E1960 ; =0x0000FFFF
_021E1942:
lsl r0, r3, #1
ldrh r0, [r2, r0]
cmp r0, r1
beq _021E194E
add r0, r3, #0
bx lr
_021E194E:
sub r0, r3, #1
lsl r0, r0, #0x10
lsr r3, r0, #0x10
bne _021E1942
_021E1956:
mov r0, #0
bx lr
nop
_021E195C: .word 0x021F691C
_021E1960: .word 0x0000FFFF
thumb_func_start MOD05_021E1964
MOD05_021E1964: ; 0x021E1964
mov r2, #0xc
mul r2, r0
ldr r0, _021E1974 ; =0x021F691C
lsl r1, r1, #1
add r0, r0, r2
ldrh r0, [r1, r0]
bx lr
nop
_021E1974: .word 0x021F691C
thumb_func_start MOD05_021E1978
MOD05_021E1978: ; 0x021E1978
push {r3, lr}
bl FUN_02058480
cmp r0, #0x31
bne _021E1986
mov r0, #1
pop {r3, pc}
_021E1986:
mov r0, #0
pop {r3, pc}
.balign 4, 0
thumb_func_start MOD05_021E198C
MOD05_021E198C: ; 0x021E198C
ldr r3, _021E1990 ; =FUN_02058E90
bx r3
.balign 4, 0
_021E1990: .word FUN_02058E90
thumb_func_start MOD05_021E1994
MOD05_021E1994: ; 0x021E1994
push {r4, r5, r6, lr}
add r6, r0, #0
add r5, r1, #0
beq _021E19DC
add r0, r5, #0
bl FUN_020584C4
cmp r0, #0
bne _021E19AA
mov r4, #0xe
b _021E19BC
_021E19AA:
cmp r0, #1
bne _021E19B2
mov r4, #0xf
b _021E19BC
_021E19B2:
cmp r0, #2
bne _021E19BA
mov r4, #0x10
b _021E19BC
_021E19BA:
mov r4, #0x11
_021E19BC:
add r0, r6, #0
add r1, r5, #0
mov r2, #1
bl MOD05_021E1A30
cmp r0, #0
beq _021E19D2
lsl r1, r4, #0x10
lsr r1, r1, #0x10
bl MOD05_021E198C
_021E19D2:
lsl r1, r4, #0x10
add r0, r5, #0
lsr r1, r1, #0x10
bl MOD05_021E198C
_021E19DC:
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_start MOD05_021E19E0
MOD05_021E19E0: ; 0x021E19E0
push {r3, r4, r5, r6, r7, lr}
add r6, r0, #0
bl FUN_02034B64
ldr r5, _021E1A2C ; =0x00000000
add r7, r0, #0
str r5, [sp]
beq _021E1A1C
_021E19F0:
ldr r0, [r6, #0x34]
add r1, r5, #0
bl FUN_02058060
add r4, r0, #0
beq _021E1A16
bl FUN_02058854
cmp r0, #1
bne _021E1A10
add r0, r4, #0
bl FUN_02058914
mov r0, #1
str r0, [sp]
b _021E1A16
_021E1A10:
add r0, r4, #0
bl FUN_02058908
_021E1A16:
add r5, r5, #1
cmp r5, r7
blo _021E19F0
_021E1A1C:
ldr r0, [sp]
cmp r0, #0
bne _021E1A26
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021E1A26:
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
nop
_021E1A2C: .word 0x00000000
thumb_func_start MOD05_021E1A30
MOD05_021E1A30: ; 0x021E1A30
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x10
add r4, r1, #0
str r0, [sp]
str r2, [sp, #4]
bl FUN_02034B64
add r7, r0, #0
add r0, r4, #0
bl FUN_02058498
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp, #0xc]
bl FUN_020395F4
str r0, [sp, #8]
bl FUN_0203962C
cmp r0, #0
bne _021E1A60
add sp, #0x10
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
_021E1A60:
mov r4, #0
cmp r7, #0
bls _021E1AD2
_021E1A66:
ldr r0, [sp]
add r1, r4, #0
ldr r0, [r0, #0x34]
bl FUN_02058060
add r5, r0, #0
beq _021E1ACC
ldr r1, [sp, #4]
cmp r1, #0
bne _021E1A82
bl FUN_02058480
cmp r0, #0x31
beq _021E1ACC
_021E1A82:
add r0, r5, #0
bl FUN_02058488
cmp r0, #8
bhi _021E1ACC
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021E1A98: ; jump table
.short _021E1ACC - _021E1A98 - 2 ; case 0
.short _021E1AAA - _021E1A98 - 2 ; case 1
.short _021E1AAA - _021E1A98 - 2 ; case 2
.short _021E1ACC - _021E1A98 - 2 ; case 3
.short _021E1AAA - _021E1A98 - 2 ; case 4
.short _021E1AAA - _021E1A98 - 2 ; case 5
.short _021E1AAA - _021E1A98 - 2 ; case 6
.short _021E1AAA - _021E1A98 - 2 ; case 7
.short _021E1AAA - _021E1A98 - 2 ; case 8
_021E1AAA:
add r0, r5, #0
bl FUN_02058498
add r6, r0, #0
lsl r0, r6, #0x10
lsr r0, r0, #0x10
bl FUN_020395F4
ldr r1, [sp, #0xc]
cmp r1, r6
beq _021E1ACC
ldr r1, [sp, #8]
cmp r1, r0
bne _021E1ACC
add sp, #0x10
add r0, r5, #0
pop {r3, r4, r5, r6, r7, pc}
_021E1ACC:
add r4, r4, #1
cmp r4, r7
blo _021E1A66
_021E1AD2:
mov r0, #0
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD05_021E1AD8
MOD05_021E1AD8: ; 0x021E1AD8
push {r3, r4, r5, r6, r7, lr}
add r6, r1, #0
ldr r1, [sp, #0x2c]
add r4, r0, #0
add r5, r2, #0
add r7, r3, #0
cmp r1, #0
bne _021E1B06
ldr r2, _021E1BF0 ; =0x00000141
mov r0, #1
mov r1, #0x1a
mov r3, #4
bl FUN_0200A86C
add r1, r6, #0
add r1, #0x8c
str r0, [r1]
add r0, r6, #0
add r0, #0x97
ldrb r1, [r0]
mov r0, #2
orr r1, r0
b _021E1B16
_021E1B06:
add r0, r6, #0
add r0, #0x8c
str r1, [r0]
add r0, r6, #0
add r0, #0x97
ldrb r1, [r0]
mov r0, #2
bic r1, r0
_021E1B16:
add r0, r6, #0
add r0, #0x97
strb r1, [r0]
add r0, r6, #0
ldr r1, [sp, #0x24]
add r0, #0x90
str r1, [r0]
add r0, r6, #0
ldr r1, [sp, #0x20]
str r4, [r6]
add r0, #0xa0
str r1, [r0]
add r0, r6, #0
add r0, #0x97
add r2, sp, #8
ldrb r0, [r0]
mov r1, #1
ldrb r3, [r2, #0x14]
bic r0, r1
mov r1, #1
and r1, r3
orr r1, r0
add r0, r6, #0
add r0, #0x97
strb r1, [r0]
add r1, r6, #0
ldrb r0, [r2, #0x10]
add r1, #0x96
mov r3, #3
strb r0, [r1]
add r1, r6, #0
add r1, #0x97
ldrb r2, [r1]
mov r1, #0x40
bic r2, r1
add r1, r6, #0
add r1, #0x97
strb r2, [r1]
add r1, r6, #0
add r1, #0x97
ldrb r2, [r1]
mov r1, #0x80
bic r2, r1
add r1, r6, #0
add r1, #0x97
strb r2, [r1]
add r1, r6, #0
add r1, #0x98
strb r5, [r1]
add r1, r6, #0
add r1, #0x99
add r2, r6, #0
strb r7, [r1]
mov r1, #0
add r2, #0x9b
strb r1, [r2]
ldr r2, [sp, #0x28]
str r2, [r6, #0x18]
add r2, r6, #0
add r2, #0x94
strb r3, [r2]
mov r2, #0xb5
lsl r2, r2, #2
strh r0, [r6, r2]
add r2, r6, #0
add r3, r1, #0
_021E1B9A:
add r0, r2, #0
add r0, #0xb4
str r3, [r0]
add r0, r2, #0
add r0, #0xb8
add r1, r1, #1
add r2, #8
str r3, [r0]
cmp r1, #0x1c
blt _021E1B9A
mov r7, #0xa7
add r1, r6, #0
add r2, r6, #0
mov r5, #0
mov r0, #0xff
lsl r7, r7, #2
_021E1BBA:
mov r4, #0x6f
lsl r4, r4, #2
str r5, [r1, r4]
add r4, r4, #4
str r5, [r1, r4]
strh r0, [r2, r7]
add r3, r3, #1
add r1, #8
add r2, r2, #2
cmp r3, #0x1c
blt _021E1BBA
add r4, r6, #0
mov r7, #0x50
_021E1BD4:
add r0, r7, #0
mov r1, #4
bl FUN_020219F4
str r0, [r4, #0x1c]
add r5, r5, #1
add r4, r4, #4
cmp r5, #0x1c
blt _021E1BD4
add r6, #0xa0
ldr r1, _021E1BF4 ; =0x0000EEEE
ldr r0, [r6]
strh r1, [r0]
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_021E1BF0: .word 0x00000141
_021E1BF4: .word 0x0000EEEE
thumb_func_start MOD05_021E1BF8
MOD05_021E1BF8: ; 0x021E1BF8
push {r4, r5, r6, r7, lr}
sub sp, #0x1c
add r7, r1, #0
mov r1, #0xb6
add r6, r0, #0
mov r0, #4
lsl r1, r1, #2
str r2, [sp, #0x18]
add r5, r3, #0
bl AllocFromHeap
add r4, r0, #0
bne _021E1C18
add sp, #0x1c
mov r0, #0
pop {r4, r5, r6, r7, pc}
_021E1C18:
mov r2, #0xb6
mov r1, #0
lsl r2, r2, #2
bl memset
str r5, [sp]
add r0, sp, #0x20
ldrb r0, [r0, #0x10]
add r1, r4, #0
add r2, r7, #0
str r0, [sp, #4]
ldr r0, [sp, #0x34]
str r0, [sp, #8]
ldr r0, [sp, #0x38]
str r0, [sp, #0xc]
ldr r0, [sp, #0x3c]
str r0, [sp, #0x10]
ldr r0, [sp, #0x40]
str r0, [sp, #0x14]
ldr r3, [sp, #0x18]
add r0, r6, #0
bl MOD05_021E1AD8
add r0, r4, #0
add sp, #0x1c
pop {r4, r5, r6, r7, pc}
thumb_func_start MOD05_021E1C4C
MOD05_021E1C4C: ; 0x021E1C4C
ldr r3, _021E1C50 ; =MOD05_021E1D38
bx r3
.balign 4, 0
_021E1C50: .word MOD05_021E1D38
thumb_func_start MOD05_021E1C54
MOD05_021E1C54: ; 0x021E1C54
push {r3, r4, lr}
sub sp, #0x14
add r4, r0, #0
bl MOD05_021E1DA8
mov r1, #7
tst r1, r0
bne _021E1C68
lsr r0, r0, #3
b _021E1C6C
_021E1C68:
lsr r0, r0, #3
add r0, r0, #1
_021E1C6C:
add r1, r4, #0
add r1, #0x97
ldrb r1, [r1]
lsl r1, r1, #0x19
lsr r1, r1, #0x1f
beq _021E1C86
add r1, r4, #0
add r1, #0x98
ldrb r1, [r1]
sub r2, r1, r0
add r1, r4, #0
add r1, #0x98
strb r2, [r1]
_021E1C86:
add r1, r4, #0
add r1, #0x97
ldrb r1, [r1]
lsl r1, r1, #0x18
lsr r1, r1, #0x1f
beq _021E1CA8
add r1, r4, #0
add r1, #0x99
ldrb r2, [r1]
add r1, r4, #0
add r1, #0x9b
ldrb r1, [r1]
lsl r1, r1, #1
sub r2, r2, r1
add r1, r4, #0
add r1, #0x99
strb r2, [r1]
_021E1CA8:
add r1, r4, #0
add r1, #0x99
ldrb r1, [r1]
lsl r0, r0, #0x18
add r3, r4, #0
str r1, [sp]
lsr r0, r0, #0x18
str r0, [sp, #4]
add r0, r4, #0
add r0, #0x9b
ldrb r0, [r0]
add r1, r4, #0
add r3, #0x98
lsl r0, r0, #0x19
lsr r0, r0, #0x18
str r0, [sp, #8]
mov r0, #0xd
str r0, [sp, #0xc]
mov r0, #0x3d
str r0, [sp, #0x10]
ldr r0, [r4]
ldrb r3, [r3]
ldr r0, [r0, #8]
add r1, #8
mov r2, #3
bl FUN_02019064
mov r0, #0
str r0, [sp]
mov r0, #4
str r0, [sp, #4]
ldr r0, [r4]
ldr r2, _021E1D30 ; =0x000003D9
ldr r0, [r0, #8]
mov r1, #3
mov r3, #0xb
bl FUN_0200CB00
add r0, r4, #0
ldr r2, _021E1D30 ; =0x000003D9
add r0, #8
mov r1, #1
mov r3, #0xb
bl FUN_0200CCA4
add r0, r4, #0
bl MOD05_021E1DE4
add r1, r4, #0
add r1, #0x96
add r0, r4, #0
ldrb r1, [r1]
add r0, #0xa4
mov r2, #4
bl FUN_02001C34
add r1, r4, #0
add r1, #0xb0
str r0, [r1]
ldr r0, _021E1D34 ; =MOD05_021E1E58
add r1, r4, #0
mov r2, #0
bl FUN_0200CA44
str r0, [r4, #4]
add sp, #0x14
pop {r3, r4, pc}
nop
_021E1D30: .word 0x000003D9
_021E1D34: .word MOD05_021E1E58
thumb_func_start MOD05_021E1D38
MOD05_021E1D38: ; 0x021E1D38
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r7, r1, #0
mov r0, #0x50
mov r1, #4
add r6, r2, #0
bl FUN_020219F4
add r4, r0, #0
add r0, r5, #0
add r0, #0x8c
ldr r0, [r0]
add r1, r7, #0
add r2, r4, #0
bl FUN_0200A8E0
add r1, r5, #0
add r1, #0x9b
ldrb r1, [r1]
add r0, r5, #0
add r0, #0x90
lsl r1, r1, #2
add r1, r5, r1
ldr r0, [r0]
ldr r1, [r1, #0x1c]
add r2, r4, #0
bl FUN_0200B7B8
add r0, r5, #0
add r0, #0x9b
ldrb r2, [r0]
lsl r0, r2, #2
add r0, r5, r0
ldr r1, [r0, #0x1c]
lsl r0, r2, #3
add r0, r5, r0
add r0, #0xb4
str r1, [r0]
add r0, r4, #0
bl FUN_02021A20
add r0, r5, #0
add r0, #0x9b
ldrb r0, [r0]
lsl r0, r0, #3
add r0, r5, r0
add r0, #0xb8
str r6, [r0]
add r0, r5, #0
add r0, #0x9b
ldrb r0, [r0]
add r5, #0x9b
add r0, r0, #1
strb r0, [r5]
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021E1DA8
MOD05_021E1DA8: ; 0x021E1DA8
push {r3, r4, r5, r6, r7, lr}
add r7, r0, #0
add r0, #0x9b
ldrb r0, [r0]
mov r6, #0
add r4, r6, #0
cmp r0, #0
ble _021E1DDE
add r5, r7, #0
_021E1DBA:
add r0, r5, #0
add r0, #0xb4
ldr r1, [r0]
cmp r1, #0
beq _021E1DDE
mov r0, #0
bl FUN_02002F9C
cmp r6, r0
bhs _021E1DD0
add r6, r0, #0
_021E1DD0:
add r0, r7, #0
add r0, #0x9b
ldrb r0, [r0]
add r4, r4, #1
add r5, #8
cmp r4, r0
blt _021E1DBA
_021E1DDE:
add r6, #0xc
add r0, r6, #0
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD05_021E1DE4
MOD05_021E1DE4: ; 0x021E1DE4
add r2, r0, #0
add r1, r0, #0
add r2, #0xb4
add r1, #0xa4
str r2, [r1]
add r2, r0, #0
add r1, r0, #0
add r2, #8
add r1, #0xa8
str r2, [r1]
add r1, r0, #0
mov r2, #0
add r1, #0xac
strb r2, [r1]
add r1, r0, #0
mov r2, #1
add r1, #0xad
strb r2, [r1]
add r1, r0, #0
add r1, #0x9b
ldrb r2, [r1]
add r1, r0, #0
add r1, #0xae
strb r2, [r1]
add r2, r0, #0
add r2, #0xaf
ldrb r3, [r2]
mov r2, #0xf
add r1, r0, #0
bic r3, r2
add r2, r0, #0
add r2, #0xaf
strb r3, [r2]
add r2, r0, #0
add r2, #0xaf
ldrb r3, [r2]
mov r2, #0x30
add r1, #0xaf
bic r3, r2
add r2, r0, #0
add r2, #0xaf
strb r3, [r2]
add r0, #0x9b
ldrb r0, [r0]
ldrb r2, [r1]
cmp r0, #4
blo _021E1E4E
mov r0, #0xc0
bic r2, r0
mov r0, #0x40
orr r0, r2
strb r0, [r1]
bx lr
_021E1E4E:
mov r0, #0xc0
bic r2, r0
strb r2, [r1]
bx lr
.balign 4, 0
thumb_func_start MOD05_021E1E58
MOD05_021E1E58: ; 0x021E1E58
push {r4, lr}
add r4, r1, #0
add r0, r4, #0
add r0, #0x94
ldrb r0, [r0]
cmp r0, #0
beq _021E1E74
add r0, r4, #0
add r0, #0x94
ldrb r0, [r0]
add r4, #0x94
sub r0, r0, #1
strb r0, [r4]
pop {r4, pc}
_021E1E74:
bl FUN_0200E308
cmp r0, #0
beq _021E1EC4
add r0, r4, #0
add r0, #0xb0
ldr r0, [r0]
bl FUN_02001C78
mov r1, #1
mvn r1, r1
cmp r0, r1
beq _021E1E96
add r1, r1, #1
cmp r0, r1
beq _021E1EC4
b _021E1EB6
_021E1E96:
add r0, r4, #0
add r0, #0x97
ldrb r0, [r0]
lsl r0, r0, #0x1f
lsr r0, r0, #0x1f
cmp r0, #1
bne _021E1EC4
add r0, r4, #0
add r0, #0xa0
ldr r1, _021E1EC8 ; =0x0000FFFE
ldr r0, [r0]
strh r1, [r0]
add r0, r4, #0
bl MOD05_021E1ECC
pop {r4, pc}
_021E1EB6:
add r1, r4, #0
add r1, #0xa0
ldr r1, [r1]
strh r0, [r1]
add r0, r4, #0
bl MOD05_021E1ECC
_021E1EC4:
pop {r4, pc}
nop
_021E1EC8: .word 0x0000FFFE
thumb_func_start MOD05_021E1ECC
MOD05_021E1ECC: ; 0x021E1ECC
push {r4, r5, r6, lr}
add r6, r0, #0
ldr r0, _021E1F30 ; =0x000005DC
bl FUN_020054C8
add r0, r6, #0
add r0, #0xb0
ldr r0, [r0]
mov r1, #0
bl FUN_02001C5C
add r0, r6, #0
add r0, #0xa8
ldr r0, [r0]
mov r1, #0
bl FUN_0200CCF8
add r0, r6, #0
add r0, #0xa8
ldr r0, [r0]
bl FUN_02019178
mov r4, #0
add r5, r6, #0
_021E1EFC:
ldr r0, [r5, #0x1c]
bl FUN_02021A20
add r4, r4, #1
add r5, r5, #4
cmp r4, #0x1c
blt _021E1EFC
add r0, r6, #0
add r0, #0x97
ldrb r0, [r0]
lsl r0, r0, #0x1e
lsr r0, r0, #0x1f
cmp r0, #1
bne _021E1F22
add r0, r6, #0
add r0, #0x8c
ldr r0, [r0]
bl FUN_0200A8B8
_021E1F22:
ldr r0, [r6, #4]
bl FUN_0200CAB4
add r0, r6, #0
bl FreeToHeap
pop {r4, r5, r6, pc}
.balign 4, 0
_021E1F30: .word 0x000005DC
thumb_func_start MOD05_021E1F34
MOD05_021E1F34: ; 0x021E1F34
push {r3, r4, lr}
sub sp, #0x14
add r4, sp, #0x10
ldrb r4, [r4, #0x10]
str r4, [sp]
ldr r4, [sp, #0x24]
str r4, [sp, #4]
ldr r4, [sp, #0x28]
str r4, [sp, #8]
ldr r4, [sp, #0x2c]
str r4, [sp, #0xc]
ldr r4, [sp, #0x30]
str r4, [sp, #0x10]
bl MOD05_021E1BF8
add sp, #0x14
pop {r3, r4, pc}
.balign 4, 0
thumb_func_start MOD05_021E1F58
MOD05_021E1F58: ; 0x021E1F58
push {r3, lr}
bl MOD05_021E2094
pop {r3, pc}
thumb_func_start MOD05_021E1F60
MOD05_021E1F60: ; 0x021E1F60
push {r3, r4, lr}
sub sp, #0x14
add r4, r0, #0
bl MOD05_021E2134
mov r1, #7
tst r1, r0
bne _021E1F74
lsr r0, r0, #3
b _021E1F78
_021E1F74:
lsr r0, r0, #3
add r0, r0, #1
_021E1F78:
add r1, r4, #0
add r1, #0x97
ldrb r1, [r1]
lsl r1, r1, #0x19
lsr r1, r1, #0x1f
beq _021E1F92
add r1, r4, #0
add r1, #0x98
ldrb r1, [r1]
sub r2, r1, r0
add r1, r4, #0
add r1, #0x98
strb r2, [r1]
_021E1F92:
add r1, r4, #0
add r1, #0x97
ldrb r1, [r1]
lsl r1, r1, #0x18
lsr r1, r1, #0x1f
beq _021E1FC8
add r1, r4, #0
add r1, #0x9b
ldrb r3, [r1]
cmp r3, #8
bls _021E1FB8
add r1, r4, #0
add r1, #0x99
ldrb r2, [r1]
add r1, r4, #0
add r1, #0x99
sub r2, #0x10
strb r2, [r1]
b _021E1FC8
_021E1FB8:
add r1, r4, #0
add r1, #0x99
ldrb r2, [r1]
lsl r1, r3, #1
sub r2, r2, r1
add r1, r4, #0
add r1, #0x99
strb r2, [r1]
_021E1FC8:
add r1, r4, #0
add r1, #0x9b
ldrb r2, [r1]
cmp r2, #8
bls _021E2002
add r1, r4, #0
add r1, #0x99
ldrb r1, [r1]
lsl r0, r0, #0x18
add r3, r4, #0
str r1, [sp]
lsr r0, r0, #0x18
str r0, [sp, #4]
mov r0, #0x10
str r0, [sp, #8]
mov r0, #0xd
str r0, [sp, #0xc]
mov r0, #0x3d
str r0, [sp, #0x10]
ldr r0, [r4]
add r3, #0x98
add r1, r4, #0
ldrb r3, [r3]
ldr r0, [r0, #8]
add r1, #8
mov r2, #3
bl FUN_02019064
b _021E2032
_021E2002:
add r1, r4, #0
add r1, #0x99
ldrb r1, [r1]
lsl r0, r0, #0x18
add r3, r4, #0
str r1, [sp]
lsr r0, r0, #0x18
str r0, [sp, #4]
lsl r0, r2, #0x19
lsr r0, r0, #0x18
str r0, [sp, #8]
mov r0, #0xd
str r0, [sp, #0xc]
mov r0, #0x3d
str r0, [sp, #0x10]
ldr r0, [r4]
add r3, #0x98
add r1, r4, #0
ldrb r3, [r3]
ldr r0, [r0, #8]
add r1, #8
mov r2, #3
bl FUN_02019064
_021E2032:
mov r0, #0
str r0, [sp]
mov r0, #4
str r0, [sp, #4]
ldr r0, [r4]
ldr r2, _021E208C ; =0x000003D9
ldr r0, [r0, #8]
mov r1, #3
mov r3, #0xb
bl FUN_0200CB00
add r0, r4, #0
ldr r2, _021E208C ; =0x000003D9
add r0, #8
mov r1, #1
mov r3, #0xb
bl FUN_0200CCA4
add r0, r4, #0
bl MOD05_021E2170
add r2, r4, #0
add r2, #0x96
mov r0, #0x65
lsl r0, r0, #2
ldrb r2, [r2]
add r0, r4, r0
mov r1, #0
mov r3, #4
bl FUN_020010A8
mov r1, #0x6d
lsl r1, r1, #2
str r0, [r4, r1]
add r0, r4, #0
bl MOD05_021E2434
ldr r0, _021E2090 ; =MOD05_021E229C
add r1, r4, #0
mov r2, #0
bl FUN_0200CA44
str r0, [r4, #4]
add sp, #0x14
pop {r3, r4, pc}
.balign 4, 0
_021E208C: .word 0x000003D9
_021E2090: .word MOD05_021E229C
thumb_func_start MOD05_021E2094
MOD05_021E2094: ; 0x021E2094
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
str r1, [sp]
mov r0, #0x50
mov r1, #4
add r7, r2, #0
add r4, r3, #0
bl FUN_020219F4
add r6, r0, #0
add r0, r5, #0
add r0, #0x8c
ldr r0, [r0]
ldr r1, [sp]
add r2, r6, #0
bl FUN_0200A8E0
add r1, r5, #0
add r1, #0x9b
ldrb r1, [r1]
add r0, r5, #0
add r0, #0x90
lsl r1, r1, #2
add r1, r5, r1
ldr r0, [r0]
ldr r1, [r1, #0x1c]
add r2, r6, #0
bl FUN_0200B7B8
add r0, r5, #0
add r0, #0x9b
ldrb r1, [r0]
lsl r0, r1, #2
add r0, r5, r0
lsl r1, r1, #3
add r2, r5, r1
mov r1, #0x6f
ldr r0, [r0, #0x1c]
lsl r1, r1, #2
str r0, [r2, r1]
add r0, r6, #0
bl FUN_02021A20
cmp r4, #0xfa
bne _021E2104
add r0, r5, #0
add r0, #0x9b
ldrb r0, [r0]
mov r2, #2
mvn r2, r2
lsl r0, r0, #3
add r1, r5, r0
mov r0, #7
lsl r0, r0, #6
str r2, [r1, r0]
b _021E2114
_021E2104:
add r0, r5, #0
add r0, #0x9b
ldrb r0, [r0]
lsl r0, r0, #3
add r1, r5, r0
mov r0, #7
lsl r0, r0, #6
str r4, [r1, r0]
_021E2114:
add r0, r5, #0
add r0, #0x9b
ldrb r0, [r0]
lsl r0, r0, #1
add r1, r5, r0
mov r0, #0xa7
lsl r0, r0, #2
strh r7, [r1, r0]
add r0, r5, #0
add r0, #0x9b
ldrb r0, [r0]
add r5, #0x9b
add r0, r0, #1
strb r0, [r5]
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021E2134
MOD05_021E2134: ; 0x021E2134
push {r3, r4, r5, r6, r7, lr}
add r7, r0, #0
add r0, #0x9b
ldrb r0, [r0]
mov r6, #0
add r4, r6, #0
cmp r0, #0
ble _021E216A
add r5, r7, #0
_021E2146:
mov r0, #0x6f
lsl r0, r0, #2
ldr r1, [r5, r0]
cmp r1, #0
beq _021E216A
mov r0, #0
bl FUN_02002F9C
cmp r6, r0
bhs _021E215C
add r6, r0, #0
_021E215C:
add r0, r7, #0
add r0, #0x9b
ldrb r0, [r0]
add r4, r4, #1
add r5, #8
cmp r4, r0
blt _021E2146
_021E216A:
add r6, #0xc
add r0, r6, #0
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD05_021E2170
MOD05_021E2170: ; 0x021E2170
push {r4, r5}
mov r3, #0x6f
lsl r3, r3, #2
add r1, r3, #0
add r2, r0, r3
sub r1, #0x28
str r2, [r0, r1]
add r1, r3, #0
mov r2, #0
sub r1, #0x24
str r2, [r0, r1]
add r1, r3, #0
ldr r2, _021E2268 ; =MOD05_021E2278
sub r1, #0x20
str r2, [r0, r1]
add r2, r0, #0
add r1, r3, #0
add r2, #8
sub r1, #0x1c
str r2, [r0, r1]
add r1, r0, #0
add r1, #0x9b
ldrb r2, [r1]
add r1, r3, #0
sub r1, #0x18
strh r2, [r0, r1]
add r1, r3, #0
mov r2, #8
sub r1, #0x16
strh r2, [r0, r1]
add r1, r3, #0
mov r2, #1
sub r1, #0x14
strb r2, [r0, r1]
add r1, r3, #0
mov r4, #0xc
sub r1, #0x13
strb r4, [r0, r1]
add r1, r3, #0
mov r4, #2
sub r1, #0x12
strb r4, [r0, r1]
add r1, r3, #0
sub r1, #0x11
ldrb r4, [r0, r1]
mov r1, #0xf
bic r4, r1
orr r4, r2
add r2, r3, #0
sub r2, #0x11
strb r4, [r0, r2]
add r2, r3, #0
sub r2, #0x11
ldrb r5, [r0, r2]
mov r2, #0xf0
mov r4, #0x10
bic r5, r2
orr r5, r4
add r4, r3, #0
sub r4, #0x11
strb r5, [r0, r4]
add r4, r3, #0
sub r4, #0x10
ldrb r4, [r0, r4]
bic r4, r1
mov r1, #0xf
orr r4, r1
add r1, r3, #0
sub r1, #0x10
strb r4, [r0, r1]
add r1, r3, #0
sub r1, #0x10
ldrb r4, [r0, r1]
mov r1, #0x20
bic r4, r2
add r2, r4, #0
orr r2, r1
add r1, r3, #0
sub r1, #0x10
strb r2, [r0, r1]
add r1, r3, #0
sub r1, #0xe
ldrh r2, [r0, r1]
mov r1, #7
bic r2, r1
add r1, r3, #0
sub r1, #0xe
strh r2, [r0, r1]
add r1, r3, #0
sub r1, #0xe
ldrh r2, [r0, r1]
mov r1, #0x78
bic r2, r1
add r1, r3, #0
sub r1, #0xe
strh r2, [r0, r1]
add r1, r3, #0
sub r1, #0xe
ldrh r2, [r0, r1]
ldr r1, _021E226C ; =0xFFFFFE7F
and r2, r1
mov r1, #0x80
orr r2, r1
add r1, r3, #0
sub r1, #0xe
strh r2, [r0, r1]
add r1, r3, #0
sub r1, #0xe
ldrh r2, [r0, r1]
ldr r1, _021E2270 ; =0xFFFF81FF
and r2, r1
add r1, r3, #0
sub r1, #0xe
strh r2, [r0, r1]
add r1, r3, #0
sub r1, #0xe
ldrh r2, [r0, r1]
ldr r1, _021E2274 ; =0xFFFF7FFF
sub r3, #0xe
and r1, r2
strh r1, [r0, r3]
pop {r4, r5}
bx lr
nop
_021E2268: .word MOD05_021E2278
_021E226C: .word 0xFFFFFE7F
_021E2270: .word 0xFFFF81FF
_021E2274: .word 0xFFFF7FFF
thumb_func_start MOD05_021E2278
MOD05_021E2278: ; 0x021E2278
push {r3, lr}
mov r2, #2
mvn r2, r2
cmp r1, r2
bne _021E228E
mov r1, #3
mov r2, #0xf
mov r3, #4
bl FUN_020013E8
pop {r3, pc}
_021E228E:
mov r1, #1
mov r2, #0xf
mov r3, #2
bl FUN_020013E8
pop {r3, pc}
.balign 4, 0
thumb_func_start MOD05_021E229C
MOD05_021E229C: ; 0x021E229C
push {r4, r5, r6, lr}
add r5, r1, #0
add r0, r5, #0
add r0, #0x94
ldrb r0, [r0]
cmp r0, #0
beq _021E22B8
add r0, r5, #0
add r0, #0x94
ldrb r0, [r0]
add r5, #0x94
sub r0, r0, #1
strb r0, [r5]
pop {r4, r5, r6, pc}
_021E22B8:
bl FUN_0200E308
cmp r0, #0
beq _021E235A
mov r0, #0x6d
lsl r0, r0, #2
ldr r0, [r5, r0]
bl FUN_02001204
add r4, r0, #0
mov r0, #0x6d
mov r1, #0xb5
lsl r0, r0, #2
lsl r1, r1, #2
ldrh r6, [r5, r1]
ldr r0, [r5, r0]
add r1, r5, r1
bl FUN_0200143C
mov r0, #0xb5
lsl r0, r0, #2
ldrh r0, [r5, r0]
cmp r6, r0
beq _021E22EE
ldr r0, _021E235C ; =0x000005DC
bl FUN_020054C8
_021E22EE:
ldr r0, _021E2360 ; =gUnknown21C48B8
mov r1, #0x40
ldr r0, [r0, #0x4c]
tst r1, r0
bne _021E230A
mov r1, #0x80
tst r1, r0
bne _021E230A
mov r1, #0x20
tst r1, r0
bne _021E230A
mov r1, #0x10
tst r0, r1
beq _021E2310
_021E230A:
add r0, r5, #0
bl MOD05_021E2434
_021E2310:
mov r0, #1
mvn r0, r0
cmp r4, r0
beq _021E2320
add r0, r0, #1
cmp r4, r0
beq _021E235A
b _021E2346
_021E2320:
add r0, r5, #0
add r0, #0x97
ldrb r0, [r0]
lsl r0, r0, #0x1f
lsr r0, r0, #0x1f
cmp r0, #1
bne _021E235A
ldr r0, _021E235C ; =0x000005DC
bl FUN_020054C8
add r0, r5, #0
add r0, #0xa0
ldr r1, _021E2364 ; =0x0000FFFE
ldr r0, [r0]
strh r1, [r0]
add r0, r5, #0
bl MOD05_021E2368
pop {r4, r5, r6, pc}
_021E2346:
ldr r0, _021E235C ; =0x000005DC
bl FUN_020054C8
add r0, r5, #0
add r0, #0xa0
ldr r0, [r0]
strh r4, [r0]
add r0, r5, #0
bl MOD05_021E2368
_021E235A:
pop {r4, r5, r6, pc}
.balign 4, 0
_021E235C: .word 0x000005DC
_021E2360: .word gUnknown21C48B8
_021E2364: .word 0x0000FFFE
thumb_func_start MOD05_021E2368
MOD05_021E2368: ; 0x021E2368
push {r4, r5, r6, lr}
add r6, r0, #0
ldr r0, _021E23CC ; =0x000005DC
bl FUN_020054C8
mov r0, #0x6d
lsl r0, r0, #2
mov r1, #0
ldr r0, [r6, r0]
add r2, r1, #0
bl FUN_02001300
mov r0, #0x1a
lsl r0, r0, #4
ldr r0, [r6, r0]
mov r1, #0
bl FUN_0200CCF8
add r0, r6, #0
add r0, #8
bl FUN_02019178
mov r4, #0
add r5, r6, #0
_021E2398:
ldr r0, [r5, #0x1c]
bl FUN_02021A20
add r4, r4, #1
add r5, r5, #4
cmp r4, #0x1c
blt _021E2398
add r0, r6, #0
add r0, #0x97
ldrb r0, [r0]
lsl r0, r0, #0x1e
lsr r0, r0, #0x1f
cmp r0, #1
bne _021E23BE
add r0, r6, #0
add r0, #0x8c
ldr r0, [r0]
bl FUN_0200A8B8
_021E23BE:
ldr r0, [r6, #4]
bl FUN_0200CAB4
add r0, r6, #0
bl FreeToHeap
pop {r4, r5, r6, pc}
.balign 4, 0
_021E23CC: .word 0x000005DC
thumb_func_start MOD05_021E23D0
MOD05_021E23D0: ; 0x021E23D0
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x10
add r5, r0, #0
str r1, [sp, #0xc]
mov r0, #0x50
mov r1, #4
add r7, r2, #0
bl FUN_020219F4
add r4, r0, #0
mov r0, #0x50
mov r1, #4
bl FUN_020219F4
add r6, r0, #0
ldr r0, [r5, #0x18]
mov r1, #0xf
bl FUN_02019620
add r0, r5, #0
add r0, #0x8c
ldr r0, [r0]
ldr r1, [sp, #0xc]
add r2, r4, #0
bl FUN_0200A8E0
add r0, r5, #0
add r0, #0x90
ldr r0, [r0]
add r1, r6, #0
add r2, r4, #0
bl FUN_0200B7B8
mov r3, #0
str r3, [sp]
str r7, [sp, #4]
str r3, [sp, #8]
ldr r0, [r5, #0x18]
mov r1, #1
add r2, r6, #0
bl FUN_0201BD84
add r0, r4, #0
bl FUN_02021A20
add r0, r6, #0
bl FUN_02021A20
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD05_021E2434
MOD05_021E2434: ; 0x021E2434
push {r4, lr}
mov r1, #0x6d
add r4, r0, #0
lsl r1, r1, #2
ldr r0, [r4, r1]
add r1, r1, #6
add r1, r4, r1
bl FUN_0200143C
ldr r0, _021E2460 ; =0x000001BA
ldrh r1, [r4, r0]
add r0, #0xe2
lsl r1, r1, #1
add r1, r4, r1
ldrh r1, [r1, r0]
cmp r1, #0xff
beq _021E245E
add r0, r4, #0
mov r2, #0
bl MOD05_021E23D0
_021E245E:
pop {r4, pc}
.balign 4, 0
_021E2460: .word 0x000001BA
thumb_func_start MOD05_021E2464
MOD05_021E2464: ; 0x021E2464
push {r4, r5, lr}
sub sp, #0x14
mov r4, #0
str r4, [sp]
str r3, [sp, #4]
ldr r3, [sp, #0x20]
str r3, [sp, #8]
str r4, [sp, #0xc]
add r3, r4, #0
str r4, [sp, #0x10]
bl MOD05_021E1BF8
add r5, r0, #0
add r0, r4, #0
add r1, r0, #0
bl FUN_02002E4C
lsl r1, r0, #3
mov r0, #7
tst r0, r1
bne _021E2492
lsr r4, r1, #3
b _021E2496
_021E2492:
lsr r0, r1, #3
add r4, r0, #1
_021E2496:
add r0, r5, #0
add r0, #0x99
ldrb r0, [r0]
add r3, r5, #0
add r1, r5, #0
str r0, [sp]
lsl r0, r4, #0x18
lsr r0, r0, #0x18
str r0, [sp, #4]
mov r0, #4
str r0, [sp, #8]
mov r0, #0xd
str r0, [sp, #0xc]
mov r0, #0xdd
str r0, [sp, #0x10]
ldr r0, [r5]
add r3, #0x98
ldrb r3, [r3]
ldr r0, [r0, #8]
add r1, #8
mov r2, #3
bl FUN_02019064
mov r0, #0
str r0, [sp]
mov r0, #4
str r0, [sp, #4]
ldr r0, [r5]
ldr r2, _021E2538 ; =0x000003D9
ldr r0, [r0, #8]
mov r1, #3
mov r3, #0xb
bl FUN_0200CB00
add r0, r5, #0
ldr r2, _021E2538 ; =0x000003D9
add r0, #8
mov r1, #1
mov r3, #0xb
bl FUN_0200CCA4
lsl r0, r4, #0x13
lsr r0, r0, #0x10
str r0, [sp]
mov r0, #0x20
str r0, [sp, #4]
add r0, r5, #0
mov r2, #0
add r0, #8
mov r1, #0xf
add r3, r2, #0
bl FUN_020196F4
mov r2, #0
add r0, r5, #0
mov r1, #0xf
add r3, r2, #0
bl MOD05_021E2540
mov r1, #0x10
add r0, r5, #0
mov r2, #0x20
add r3, r1, #0
bl MOD05_021E2540
add r0, r5, #0
add r1, r5, #0
add r0, #8
add r1, #0xa8
str r0, [r1]
bl FUN_020191D0
ldr r0, _021E253C ; =MOD05_021E25A4
add r1, r5, #0
mov r2, #0
bl FUN_0200CA44
str r0, [r5, #4]
add sp, #0x14
pop {r4, r5, pc}
nop
_021E2538: .word 0x000003D9
_021E253C: .word MOD05_021E25A4
thumb_func_start MOD05_021E2540
MOD05_021E2540: ; 0x021E2540
push {r4, r5, r6, r7, lr}
sub sp, #0x14
str r1, [sp, #0xc]
add r5, r0, #0
mov r0, #0x50
mov r1, #4
str r2, [sp, #0x10]
add r7, r3, #0
bl FUN_020219F4
add r4, r0, #0
mov r0, #0x50
mov r1, #4
bl FUN_020219F4
add r6, r0, #0
add r0, r5, #0
add r0, #0x8c
ldr r0, [r0]
ldr r1, [sp, #0xc]
add r2, r4, #0
bl FUN_0200A8E0
add r0, r5, #0
add r0, #0x90
ldr r0, [r0]
add r1, r6, #0
add r2, r4, #0
bl FUN_0200B7B8
str r7, [sp]
mov r0, #0xff
str r0, [sp, #4]
mov r1, #0
str r1, [sp, #8]
add r5, #8
ldr r3, [sp, #0x10]
add r0, r5, #0
add r2, r6, #0
bl FUN_0201BD84
add r0, r4, #0
bl FUN_02021A20
add r0, r6, #0
bl FUN_02021A20
add sp, #0x14
pop {r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021E25A4
MOD05_021E25A4: ; 0x021E25A4
push {r4, r5, r6, lr}
add r6, r1, #0
add r0, r6, #0
add r0, #0xa0
ldr r0, [r0]
ldrh r1, [r0]
ldr r0, _021E2604 ; =0x0000FFFF
cmp r1, r0
bne _021E2602
add r0, r6, #0
add r0, #0xa8
ldr r0, [r0]
mov r1, #0
bl FUN_0200CCF8
add r0, r6, #0
add r0, #0xa8
ldr r0, [r0]
bl FUN_02019178
mov r4, #0
add r5, r6, #0
_021E25D0:
ldr r0, [r5, #0x1c]
bl FUN_02021A20
add r4, r4, #1
add r5, r5, #4
cmp r4, #0x1c
blt _021E25D0
add r0, r6, #0
add r0, #0x97
ldrb r0, [r0]
lsl r0, r0, #0x1e
lsr r0, r0, #0x1f
cmp r0, #1
bne _021E25F6
add r0, r6, #0
add r0, #0x8c
ldr r0, [r0]
bl FUN_0200A8B8
_021E25F6:
ldr r0, [r6, #4]
bl FUN_0200CAB4
add r0, r6, #0
bl FreeToHeap
_021E2602:
pop {r4, r5, r6, pc}
.balign 4, 0
_021E2604: .word 0x0000FFFF
thumb_func_start MOD05_021E2608
MOD05_021E2608: ; 0x021E2608
cmp r0, #0x89
bgt _021E2646
bge _021E269E
cmp r0, #0x68
bgt _021E2638
bge _021E2682
cmp r0, #0xe
bgt _021E2632
add r1, r0, #0
sub r1, #0xb
bmi _021E26C2
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021E262A: ; jump table
.short _021E26B2 - _021E262A - 2 ; case 0
.short _021E26B6 - _021E262A - 2 ; case 1
.short _021E26BA - _021E262A - 2 ; case 2
.short _021E26BE - _021E262A - 2 ; case 3
_021E2632:
cmp r0, #0x67
beq _021E267E
b _021E26C2
_021E2638:
cmp r0, #0x70
bgt _021E2640
beq _021E268E
b _021E26C2
_021E2640:
cmp r0, #0x71
beq _021E2692
b _021E26C2
_021E2646:
cmp r0, #0x96
bgt _021E2668
cmp r0, #0x8c
blt _021E265A
beq _021E26AA
cmp r0, #0x8d
beq _021E26AE
cmp r0, #0x96
beq _021E268A
b _021E26C2
_021E265A:
cmp r0, #0x8a
bgt _021E2662
beq _021E26A2
b _021E26C2
_021E2662:
cmp r0, #0x8b
beq _021E26A6
b _021E26C2
_021E2668:
ldr r1, _021E26C8 ; =0x000001CD
cmp r0, r1
bgt _021E2676
bge _021E2696
cmp r0, #0xa4
beq _021E2686
b _021E26C2
_021E2676:
add r1, r1, #1
cmp r0, r1
beq _021E269A
b _021E26C2
_021E267E:
mov r0, #1
bx lr
_021E2682:
mov r0, #0
bx lr
_021E2686:
mov r0, #0
bx lr
_021E268A:
mov r0, #1
bx lr
_021E268E:
mov r0, #1
bx lr
_021E2692:
mov r0, #0
bx lr
_021E2696:
mov r0, #1
bx lr
_021E269A:
mov r0, #0
bx lr
_021E269E:
mov r0, #4
bx lr
_021E26A2:
mov r0, #3
bx lr
_021E26A6:
mov r0, #2
bx lr
_021E26AA:
mov r0, #1
bx lr
_021E26AE:
mov r0, #0
bx lr
_021E26B2:
mov r0, #3
bx lr
_021E26B6:
mov r0, #2
bx lr
_021E26BA:
mov r0, #1
bx lr
_021E26BE:
mov r0, #0
bx lr
_021E26C2:
mov r0, #1
bx lr
nop
_021E26C8: .word 0x000001CD
thumb_func_start MOD05_021E26CC
MOD05_021E26CC: ; 0x021E26CC
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x18
add r5, r0, #0
add r6, r1, #0
bl MOD05_021E1DA8
mov r1, #7
tst r1, r0
bne _021E26E2
lsr r7, r0, #3
b _021E26E6
_021E26E2:
lsr r0, r0, #3
add r7, r0, #1
_021E26E6:
add r0, r5, #0
add r0, #0x9b
ldrb r0, [r0]
add r1, r6, #0
str r0, [sp, #0x14]
bl _s32_div_f
lsl r0, r0, #0x18
lsr r4, r0, #0x18
ldr r0, [sp, #0x14]
add r1, r6, #0
bl _s32_div_f
cmp r1, #0
beq _021E270A
add r0, r4, #1
lsl r0, r0, #0x18
lsr r4, r0, #0x18
_021E270A:
add r0, r5, #0
add r0, #0x99
ldrb r0, [r0]
add r3, r5, #0
add r1, r5, #0
str r0, [sp]
add r0, r7, #0
mul r0, r6
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #4]
lsl r0, r4, #0x19
lsr r0, r0, #0x18
str r0, [sp, #8]
mov r0, #0xd
str r0, [sp, #0xc]
mov r0, #0x3d
str r0, [sp, #0x10]
ldr r0, [r5]
add r3, #0x98
ldrb r3, [r3]
ldr r0, [r0, #8]
add r1, #8
mov r2, #3
bl FUN_02019064
mov r0, #0
str r0, [sp]
mov r0, #4
str r0, [sp, #4]
ldr r0, [r5]
ldr r2, _021E2794 ; =0x000003D9
ldr r0, [r0, #8]
mov r1, #3
mov r3, #0xb
bl FUN_0200CB00
add r0, r5, #0
ldr r2, _021E2794 ; =0x000003D9
add r0, #8
mov r1, #1
mov r3, #0xb
bl FUN_0200CCA4
add r0, r5, #0
add r1, r6, #0
add r2, r4, #0
bl MOD05_021E279C
add r1, r5, #0
add r1, #0x96
add r0, r5, #0
ldrb r1, [r1]
add r0, #0xa4
mov r2, #4
bl FUN_02001C34
add r1, r5, #0
add r1, #0xb0
str r0, [r1]
ldr r0, _021E2798 ; =MOD05_021E1E58
add r1, r5, #0
mov r2, #0
bl FUN_0200CA44
str r0, [r5, #4]
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
nop
_021E2794: .word 0x000003D9
_021E2798: .word MOD05_021E1E58
thumb_func_start MOD05_021E279C
MOD05_021E279C: ; 0x021E279C
push {r3, r4}
add r4, r0, #0
add r3, r0, #0
add r4, #0xb4
add r3, #0xa4
str r4, [r3]
add r4, r0, #0
add r3, r0, #0
add r4, #8
add r3, #0xa8
str r4, [r3]
add r3, r0, #0
mov r4, #0
add r3, #0xac
strb r4, [r3]
add r3, r0, #0
add r3, #0xad
strb r1, [r3]
add r1, r0, #0
add r1, #0xae
strb r2, [r1]
add r1, r0, #0
add r1, #0xaf
ldrb r2, [r1]
mov r1, #0xf
bic r2, r1
add r1, r0, #0
add r1, #0xaf
strb r2, [r1]
add r1, r0, #0
add r1, #0xaf
ldrb r2, [r1]
mov r1, #0x30
add r0, #0xaf
bic r2, r1
strb r2, [r0]
pop {r3, r4}
bx lr
thumb_func_start MOD05_021E27E8
MOD05_021E27E8: ; 0x021E27E8
push {r4, r5, r6, r7, lr}
sub sp, #0x14
add r5, r0, #0
add r7, r1, #0
add r6, r2, #0
mov r0, #4
mov r1, #1
bl FUN_02018FF4
add r4, r0, #0
str r6, [sp]
mov r0, #0xa
str r0, [sp, #4]
mov r0, #4
str r0, [sp, #8]
mov r0, #0xd
str r0, [sp, #0xc]
mov r0, #1
str r0, [sp, #0x10]
ldr r0, [r5, #8]
add r1, r4, #0
mov r2, #3
add r3, r7, #0
bl FUN_02019064
mov r0, #0
str r0, [sp]
mov r0, #4
str r0, [sp, #4]
ldr r0, [r5, #8]
ldr r2, _021E2888 ; =0x000003D9
mov r1, #3
mov r3, #0xb
bl FUN_0200CB00
ldr r2, _021E2888 ; =0x000003D9
add r0, r4, #0
mov r1, #1
mov r3, #0xb
bl FUN_0200CCA4
add r0, r4, #0
mov r1, #0xf
bl FUN_02019620
mov r2, #0x7a
mov r0, #0
mov r1, #0x1a
lsl r2, r2, #2
mov r3, #4
bl FUN_0200A86C
mov r1, #0x12
add r7, r0, #0
bl FUN_0200A914
mov r1, #0
add r6, r0, #0
str r1, [sp]
mov r0, #0xff
str r0, [sp, #4]
add r0, r4, #0
add r2, r6, #0
add r3, r1, #0
str r1, [sp, #8]
bl FUN_0201BD84
add r0, r7, #0
bl FUN_0200A8B8
add r0, r6, #0
bl FUN_02021A20
add r0, r5, #0
add r1, r4, #0
bl MOD05_021E28A0
add r0, r4, #0
add sp, #0x14
pop {r4, r5, r6, r7, pc}
.balign 4, 0
_021E2888: .word 0x000003D9
thumb_func_start MOD05_021E288C
MOD05_021E288C: ; 0x021E288C
push {r4, lr}
add r4, r0, #0
mov r1, #0
bl FUN_0200CCF8
add r0, r4, #0
mov r1, #1
bl FUN_020191A4
pop {r4, pc}
thumb_func_start MOD05_021E28A0
MOD05_021E28A0: ; 0x021E28A0
push {r4, r5, r6, r7, lr}
sub sp, #0x14
add r7, r0, #0
add r5, r1, #0
mov r0, #0x50
str r0, [sp]
mov r3, #0x10
add r0, r5, #0
mov r1, #0xf
mov r2, #0
str r3, [sp, #4]
bl FUN_020196F4
mov r2, #0x7a
mov r0, #0
mov r1, #0x1a
lsl r2, r2, #2
mov r3, #4
bl FUN_0200A86C
str r0, [sp, #0xc]
mov r0, #4
bl FUN_0200AA80
add r6, r0, #0
mov r0, #0x10
mov r1, #4
bl FUN_020219F4
add r4, r0, #0
ldr r0, [sp, #0xc]
mov r1, #0x13
bl FUN_0200A914
str r0, [sp, #0x10]
ldr r0, [r7, #0xc]
bl FUN_020238F4
bl FUN_02023A10
add r2, r0, #0
mov r0, #1
str r0, [sp]
str r0, [sp, #4]
add r0, r6, #0
mov r1, #0
mov r3, #6
bl FUN_0200AD38
ldr r2, [sp, #0x10]
add r0, r6, #0
add r1, r4, #0
bl FUN_0200B7B8
mov r0, #0
add r1, r4, #0
add r2, r0, #0
bl FUN_02002E14
mov r1, #0x50
sub r3, r1, r0
mov r0, #0x10
str r0, [sp]
mov r0, #0xff
str r0, [sp, #4]
mov r1, #0
add r0, r5, #0
add r2, r4, #0
str r1, [sp, #8]
bl FUN_0201BD84
ldr r0, [sp, #0x10]
bl FUN_02021A20
add r0, r4, #0
bl FUN_02021A20
add r0, r6, #0
bl FUN_0200AB18
ldr r0, [sp, #0xc]
bl FUN_0200A8B8
add r0, r5, #0
bl FUN_02019220
add sp, #0x14
pop {r4, r5, r6, r7, pc}
thumb_func_start MOD05_021E2950
MOD05_021E2950: ; 0x021E2950
push {r4, r5, r6, r7, lr}
sub sp, #0x14
add r5, r0, #0
add r7, r1, #0
add r6, r2, #0
mov r0, #4
mov r1, #1
bl FUN_02018FF4
add r4, r0, #0
str r6, [sp]
mov r0, #0xa
str r0, [sp, #4]
mov r0, #2
str r0, [sp, #8]
mov r0, #0xd
str r0, [sp, #0xc]
mov r0, #0x29
str r0, [sp, #0x10]
ldr r0, [r5, #8]
add r1, r4, #0
mov r2, #3
add r3, r7, #0
bl FUN_02019064
mov r0, #0
str r0, [sp]
mov r0, #4
str r0, [sp, #4]
ldr r0, [r5, #8]
ldr r2, _021E29B0 ; =0x000003D9
mov r1, #3
mov r3, #0xb
bl FUN_0200CB00
ldr r2, _021E29B0 ; =0x000003D9
add r0, r4, #0
mov r1, #1
mov r3, #0xb
bl FUN_0200CCA4
add r0, r5, #0
add r1, r4, #0
bl MOD05_021E29C8
add r0, r4, #0
add sp, #0x14
pop {r4, r5, r6, r7, pc}
.balign 4, 0
_021E29B0: .word 0x000003D9
thumb_func_start MOD05_021E29B4
MOD05_021E29B4: ; 0x021E29B4
push {r4, lr}
add r4, r0, #0
mov r1, #0
bl FUN_0200CCF8
add r0, r4, #0
mov r1, #1
bl FUN_020191A4
pop {r4, pc}
thumb_func_start MOD05_021E29C8
MOD05_021E29C8: ; 0x021E29C8
push {r4, r5, r6, r7, lr}
sub sp, #0x14
add r6, r0, #0
str r1, [sp, #0xc]
add r0, r1, #0
mov r1, #0xf
bl FUN_02019620
ldr r2, _021E2A6C ; =0x00000141
mov r0, #0
mov r1, #0x1a
mov r3, #4
bl FUN_0200A86C
add r7, r0, #0
mov r0, #4
bl FUN_0200AA80
add r5, r0, #0
mov r0, #0x10
mov r1, #4
bl FUN_020219F4
add r4, r0, #0
add r0, r7, #0
mov r1, #0xc5
bl FUN_0200A914
str r0, [sp, #0x10]
ldr r0, [r6, #0xc]
bl FUN_0202390C
bl FUN_02028930
add r2, r0, #0
mov r0, #1
str r0, [sp]
str r0, [sp, #4]
add r0, r5, #0
mov r1, #0
mov r3, #5
bl FUN_0200AD38
ldr r2, [sp, #0x10]
add r0, r5, #0
add r1, r4, #0
bl FUN_0200B7B8
mov r0, #0
add r1, r4, #0
add r2, r0, #0
bl FUN_02002E14
mov r1, #0x50
sub r3, r1, r0
mov r1, #0
str r1, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, [sp, #0xc]
add r2, r4, #0
str r1, [sp, #8]
bl FUN_0201BD84
ldr r0, [sp, #0x10]
bl FUN_02021A20
add r0, r4, #0
bl FUN_02021A20
add r0, r5, #0
bl FUN_0200AB18
add r0, r7, #0
bl FUN_0200A8B8
ldr r0, [sp, #0xc]
bl FUN_02019220
add sp, #0x14
pop {r4, r5, r6, r7, pc}
nop
_021E2A6C: .word 0x00000141
thumb_func_start MOD05_021E2A70
MOD05_021E2A70: ; 0x021E2A70
push {r4, r5, r6, r7, lr}
sub sp, #0x14
add r5, r0, #0
add r7, r1, #0
add r6, r2, #0
mov r0, #4
mov r1, #1
bl FUN_02018FF4
add r4, r0, #0
str r6, [sp]
mov r0, #0xa
str r0, [sp, #4]
mov r0, #2
str r0, [sp, #8]
mov r0, #0xd
str r0, [sp, #0xc]
mov r0, #0x29
str r0, [sp, #0x10]
ldr r0, [r5, #8]
add r1, r4, #0
mov r2, #3
add r3, r7, #0
bl FUN_02019064
mov r0, #0
str r0, [sp]
mov r0, #4
str r0, [sp, #4]
ldr r0, [r5, #8]
ldr r2, _021E2AD0 ; =0x000003D9
mov r1, #3
mov r3, #0xb
bl FUN_0200CB00
ldr r2, _021E2AD0 ; =0x000003D9
add r0, r4, #0
mov r1, #1
mov r3, #0xb
bl FUN_0200CCA4
add r0, r5, #0
add r1, r4, #0
bl MOD05_021E2AD4
add r0, r4, #0
add sp, #0x14
pop {r4, r5, r6, r7, pc}
.balign 4, 0
_021E2AD0: .word 0x000003D9
thumb_func_start MOD05_021E2AD4
MOD05_021E2AD4: ; 0x021E2AD4
push {r4, r5, r6, r7, lr}
sub sp, #0x14
add r6, r0, #0
str r1, [sp, #0xc]
add r0, r1, #0
mov r1, #0xf
bl FUN_02019620
ldr r2, _021E2B7C ; =0x00000141
mov r0, #0
mov r1, #0x1a
mov r3, #4
bl FUN_0200A86C
add r7, r0, #0
mov r0, #4
bl FUN_0200AA80
add r5, r0, #0
mov r0, #0x10
mov r1, #4
bl FUN_020219F4
add r4, r0, #0
add r0, r7, #0
mov r1, #0xe6
bl FUN_0200A914
str r0, [sp, #0x10]
ldr r0, [r6, #0xc]
bl FUN_0202A8D8
mov r1, #0
add r2, r1, #0
bl FUN_0202A3B4
add r2, r0, #0
mov r0, #1
str r0, [sp]
str r0, [sp, #4]
add r0, r5, #0
mov r1, #0
mov r3, #5
bl FUN_0200AD38
ldr r2, [sp, #0x10]
add r0, r5, #0
add r1, r4, #0
bl FUN_0200B7B8
mov r0, #0
add r1, r4, #0
add r2, r0, #0
bl FUN_02002E14
mov r1, #0x50
sub r3, r1, r0
mov r1, #0
str r1, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, [sp, #0xc]
add r2, r4, #0
str r1, [sp, #8]
bl FUN_0201BD84
ldr r0, [sp, #0x10]
bl FUN_02021A20
add r0, r4, #0
bl FUN_02021A20
add r0, r5, #0
bl FUN_0200AB18
add r0, r7, #0
bl FUN_0200A8B8
ldr r0, [sp, #0xc]
bl FUN_02019220
add sp, #0x14
pop {r4, r5, r6, r7, pc}
nop
_021E2B7C: .word 0x00000141
thumb_func_start MOD05_021E2B80
MOD05_021E2B80: ; 0x021E2B80
add r2, r0, #0
add r2, #0x97
ldrb r3, [r2]
lsl r1, r1, #0x18
lsr r1, r1, #0x18
mov r2, #0x40
lsl r1, r1, #0x1f
bic r3, r2
lsr r1, r1, #0x19
orr r1, r3
add r0, #0x97
strb r1, [r0]
bx lr
.balign 4, 0
thumb_func_start MOD05_021E2B9C
MOD05_021E2B9C: ; 0x021E2B9C
add r2, r0, #0
add r2, #0x97
ldrb r3, [r2]
lsl r1, r1, #0x18
lsr r1, r1, #0x18
mov r2, #0x80
lsl r1, r1, #0x1f
bic r3, r2
lsr r1, r1, #0x18
orr r1, r3
add r0, #0x97
strb r1, [r0]
bx lr
.balign 4, 0
thumb_func_start MOD05_021E2BB8
MOD05_021E2BB8: ; 0x021E2BB8
push {r4, lr}
add r4, r0, #0
add r0, r1, #0
bl MOD05_021E2D00
strb r0, [r4]
mov r0, #0
strb r0, [r4, #1]
mov r0, #1
strb r0, [r4, #2]
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021E2BD0
MOD05_021E2BD0: ; 0x021E2BD0
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x20
add r5, r0, #0
str r3, [sp, #4]
add r0, #0x80
add r6, r1, #0
ldr r0, [r0]
add r1, sp, #8
add r7, r2, #0
ldr r4, [sp, #0x38]
bl MOD05_021E2D14
add r0, r5, #0
add r0, #0x80
ldr r0, [r0]
add r1, sp, #8
bl MOD05_021E2D9C
add r0, sp, #8
add r1, r6, #0
add r2, r7, #0
bl MOD05_021E2DD4
cmp r4, #0
bne _021E2C10
add r0, r5, #0
bl MOD05_021E2D00
add r2, r0, #0
mov r0, #0
mov r1, #1
b _021E2C16
_021E2C10:
ldrb r2, [r4]
ldrb r0, [r4, #1]
ldrb r1, [r4, #2]
_021E2C16:
str r0, [sp]
ldr r3, [sp, #4]
add r0, sp, #8
bl MOD05_021E2E40
add sp, #0x20
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD05_021E2C24
MOD05_021E2C24: ; 0x021E2C24
push {r4, r5, r6, lr}
sub sp, #0x18
add r5, r0, #0
add r0, #0x80
add r4, r1, #0
ldr r0, [r0]
add r1, sp, #0
add r6, r2, #0
bl MOD05_021E2D14
add r5, #0x80
ldr r0, [r5]
add r1, sp, #0
bl MOD05_021E2D9C
add r0, sp, #0
add r1, r4, #0
add r2, r6, #0
bl MOD05_021E2DD4
add r0, sp, #0
mov r1, #1
bl MOD05_021E2E68
add sp, #0x18
pop {r4, r5, r6, pc}
thumb_func_start MOD05_021E2C58
MOD05_021E2C58: ; 0x021E2C58
push {r4, r5, r6, r7, lr}
sub sp, #0x1c
add r5, r0, #0
add r0, #0x80
add r4, r1, #0
ldr r0, [r0]
add r1, sp, #4
add r6, r2, #0
add r7, r3, #0
bl MOD05_021E2D14
add r0, r5, #0
add r0, #0x80
ldr r0, [r0]
add r1, sp, #4
bl MOD05_021E2D9C
add r0, sp, #0x20
ldrh r0, [r0, #0x10]
add r1, r4, #0
add r2, r6, #0
str r0, [sp]
add r0, sp, #4
add r3, r7, #0
bl MOD05_021E2DF0
add r0, sp, #0x20
ldrb r0, [r0, #0x14]
cmp r0, #0xff
beq _021E2CB0
add r0, r5, #0
bl MOD05_021E2D00
add r2, r0, #0
mov r0, #0
str r0, [sp]
add r3, sp, #0x20
ldrb r3, [r3, #0x14]
add r0, sp, #4
mov r1, #1
bl MOD05_021E2E40
add sp, #0x1c
pop {r4, r5, r6, r7, pc}
_021E2CB0:
add r0, sp, #4
mov r1, #1
bl MOD05_021E2E68
add sp, #0x1c
pop {r4, r5, r6, r7, pc}
thumb_func_start MOD05_021E2CBC
MOD05_021E2CBC: ; 0x021E2CBC
push {r3, r4, r5, r6, lr}
sub sp, #0x1c
add r5, r0, #0
add r0, #0x80
add r4, r2, #0
ldr r0, [r0]
add r2, sp, #4
add r6, r3, #0
bl MOD05_021E2D5C
add r0, r5, #0
add r0, #0x80
ldr r0, [r0]
add r1, sp, #4
bl MOD05_021E2D9C
ldr r1, [r5, #0x78]
add r0, sp, #4
add r2, r4, #0
bl MOD05_021E2DD4
add r0, r5, #0
bl MOD05_021E2D00
add r2, r0, #0
mov r0, #0
str r0, [sp]
add r0, sp, #4
mov r1, #1
add r3, r6, #0
bl MOD05_021E2E40
add sp, #0x1c
pop {r3, r4, r5, r6, pc}
thumb_func_start MOD05_021E2D00
MOD05_021E2D00: ; 0x021E2D00
push {r3, lr}
add r0, #0x80
ldr r0, [r0]
ldr r0, [r0, #0xc]
bl LoadPlayerDataAddress
bl FUN_02024FF4
pop {r3, pc}
.balign 4, 0
thumb_func_start MOD05_021E2D14
MOD05_021E2D14: ; 0x021E2D14
push {r3, r4, r5, lr}
add r4, r1, #0
mov r1, #0x10
add r5, r0, #0
bl FUN_02039438
ldr r0, [r0]
mov r1, #0x11
str r0, [r4]
add r0, r5, #0
bl FUN_02039438
ldr r0, [r0]
mov r1, #0xf
str r0, [r4, #4]
add r0, r5, #0
bl FUN_02039438
ldr r0, [r0]
mov r1, #1
str r0, [r4, #8]
add r0, r5, #0
bl FUN_02039438
str r0, [r4, #0xc]
add r0, r5, #0
mov r1, #6
bl FUN_02039438
str r0, [r4, #0x10]
add r0, r5, #0
mov r1, #3
bl FUN_02039438
str r0, [r4, #0x14]
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021E2D5C
MOD05_021E2D5C: ; 0x021E2D5C
push {r4, r5, r6, lr}
add r6, r1, #0
mov r1, #0x10
add r5, r0, #0
add r4, r2, #0
bl FUN_02039438
ldr r0, [r0]
mov r1, #0x11
str r0, [r4]
add r0, r5, #0
bl FUN_02039438
ldr r0, [r0]
mov r1, #1
str r0, [r4, #4]
str r6, [r4, #8]
add r0, r5, #0
bl FUN_02039438
str r0, [r4, #0xc]
add r0, r5, #0
mov r1, #6
bl FUN_02039438
str r0, [r4, #0x10]
add r0, r5, #0
mov r1, #3
bl FUN_02039438
str r0, [r4, #0x14]
pop {r4, r5, r6, pc}
thumb_func_start MOD05_021E2D9C
MOD05_021E2D9C: ; 0x021E2D9C
push {r3, r4, r5, lr}
add r4, r1, #0
add r5, r0, #0
ldr r0, [r4, #0x10]
ldrb r0, [r0]
cmp r0, #0
bne _021E2DC8
ldr r0, [r5, #8]
ldr r1, [r4, #0xc]
mov r2, #3
bl FUN_020545B8
ldr r0, [r5, #0xc]
bl LoadPlayerDataAddress
add r1, r0, #0
ldr r0, [r4, #0xc]
bl FUN_02054608
ldr r0, [r4, #0x10]
mov r1, #1
strb r1, [r0]
_021E2DC8:
ldr r0, [r4, #0xc]
mov r1, #0xf
bl FUN_02019620
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021E2DD4
MOD05_021E2DD4: ; 0x021E2DD4
push {r4, lr}
add r4, r0, #0
add r0, r1, #0
add r1, r2, #0
ldr r2, [r4, #4]
bl FUN_0200A8E0
ldr r0, [r4, #8]
ldr r1, [r4]
ldr r2, [r4, #4]
bl FUN_0200B7B8
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021E2DF0
MOD05_021E2DF0: ; 0x021E2DF0
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
add r5, r0, #0
add r4, r1, #0
add r6, r2, #0
add r0, sp, #0
add r7, r3, #0
bl FUN_02013724
add r0, sp, #0
add r1, r4, #0
add r2, r6, #0
bl FUN_02013980
add r0, sp, #0
mov r1, #0
add r2, r7, #0
bl FUN_02013998
add r2, sp, #0x10
ldrh r2, [r2, #0x10]
add r0, sp, #0
mov r1, #1
bl FUN_02013998
add r0, sp, #0
mov r1, #0x20
bl FUN_020137D4
add r4, r0, #0
ldr r0, [r5]
add r1, r4, #0
bl FUN_02021A74
add r0, r4, #0
bl FUN_02021A20
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021E2E40
MOD05_021E2E40: ; 0x021E2E40
push {r4, r5, r6, lr}
sub sp, #8
add r4, r0, #0
lsl r0, r3, #0x18
lsr r0, r0, #0x18
str r0, [sp]
ldr r0, [sp, #0x18]
add r5, r2, #0
str r0, [sp, #4]
add r6, r1, #0
ldr r0, [r4, #0xc]
ldr r1, [r4]
add r2, r6, #0
add r3, r5, #0
bl FUN_02054690
ldr r1, [r4, #0x14]
strb r0, [r1]
add sp, #8
pop {r4, r5, r6, pc}
thumb_func_start MOD05_021E2E68
MOD05_021E2E68: ; 0x021E2E68
push {r3, r4, lr}
sub sp, #0xc
mov r3, #0
str r3, [sp]
str r3, [sp, #4]
add r4, r0, #0
str r3, [sp, #8]
ldr r0, [r4, #0xc]
ldr r2, [r4]
bl FUN_0201BD84
ldr r1, [r4, #0x14]
strb r0, [r1]
add sp, #0xc
pop {r3, r4, pc}
.balign 4, 0
thumb_func_start MOD05_021E2E88
MOD05_021E2E88: ; 0x021E2E88
push {r4, r5, r6, lr}
lsl r6, r1, #5
add r5, r0, #0
add r4, r2, #0
add r1, r6, #0
bl DC_FlushRange
add r0, r5, #0
lsl r1, r4, #5
add r2, r6, #0
bl GX_LoadBGPltt
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_start MOD05_021E2EA4
MOD05_021E2EA4: ; 0x021E2EA4
push {r3, r4, lr}
sub sp, #0x14
mov r3, #0
add r4, r0, #0
str r3, [sp]
mov r0, #0x20
str r0, [sp, #4]
mov r2, #3
add r1, r4, #0
str r2, [sp, #8]
mov r0, #7
str r0, [sp, #0xc]
ldr r0, _021E2EDC ; =0x000002CD
add r1, #0x20
str r0, [sp, #0x10]
ldr r0, [r4, #0x1c]
bl FUN_02019064
mov r0, #0
str r0, [sp]
ldr r2, _021E2EE0 ; =0x000003CF
add r0, r4, #0
mov r1, #3
mov r3, #7
bl MOD05_021E2EE4
add sp, #0x14
pop {r3, r4, pc}
.balign 4, 0
_021E2EDC: .word 0x000002CD
_021E2EE0: .word 0x000003CF
thumb_func_start MOD05_021E2EE4
MOD05_021E2EE4: ; 0x021E2EE4
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
add r4, r2, #0
add r5, r0, #0
add r6, r1, #0
ldr r2, _021E2F2C ; =0x021FD610
add r0, #0x38
mov r1, #4
add r7, r3, #0
bl FUN_0201AB28
str r0, [r5, #0x34]
add r3, r0, #0
str r4, [sp]
ldr r2, [r3, #0x14]
ldr r0, [r5, #0x1c]
ldr r3, [r3, #0x10]
add r1, r6, #0
bl FUN_02017E14
ldr r2, _021E2F30 ; =0x021FD62C
add r0, sp, #4
mov r1, #4
bl FUN_0201AB44
ldr r0, [r0, #0xc]
mov r1, #1
add r2, r7, #0
bl MOD05_021E2E88
ldr r0, [sp, #4]
bl FreeToHeap
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
nop
_021E2F2C: .word 0x021FD610
_021E2F30: .word 0x021FD62C
thumb_func_start MOD05_021E2F34
MOD05_021E2F34: ; 0x021E2F34
push {r4, r5, r6, r7, lr}
sub sp, #0x1c
add r2, r1, #0
add r2, #8
add r5, r0, #0
asr r0, r2, #2
lsr r0, r0, #0x1d
add r0, r2, r0
asr r0, r0, #3
lsl r0, r0, #3
sub r2, r0, r1
lsr r0, r2, #0x1f
add r0, r2, r0
asr r0, r0, #1
add r2, r0, #4
cmp r2, #8
blt _021E2F5A
mov r3, #0
b _021E2F6C
_021E2F5A:
mov r0, #8
sub r0, r0, r2
lsl r0, r0, #1
add r2, r0, #7
asr r0, r2, #2
lsr r0, r0, #0x1d
add r0, r2, r0
lsl r0, r0, #0x15
lsr r3, r0, #0x18
_021E2F6C:
cmp r1, #0
bgt _021E2F76
mov r0, #0
str r0, [sp, #0x18]
b _021E2F92
_021E2F76:
add r2, r1, #0
add r2, #8
asr r0, r2, #2
lsr r0, r0, #0x1d
add r0, r2, r0
asr r0, r0, #3
add r0, r0, r3
str r0, [sp, #0x18]
lsl r0, r0, #3
add r0, #8
sub r1, r0, r1
lsr r0, r1, #0x1f
add r0, r1, r0
asr r0, r0, #1
_021E2F92:
add r1, r0, #4
add r0, r5, #0
add r0, #0x30
strb r1, [r0]
add r0, r5, #0
add r0, #0x20
mov r1, #0
bl FUN_02019620
mov r2, #8
str r2, [sp]
add r0, r5, #0
str r2, [sp, #4]
mov r3, #0
str r3, [sp, #8]
str r3, [sp, #0xc]
str r2, [sp, #0x10]
str r2, [sp, #0x14]
ldr r1, [r5, #0x34]
add r0, #0x20
ldr r1, [r1, #0x14]
bl FUN_02019658
ldr r0, [sp, #0x18]
mov r1, #8
add r0, r0, #1
lsl r4, r0, #3
str r1, [sp]
lsl r0, r4, #0x10
str r1, [sp, #4]
lsr r0, r0, #0x10
str r0, [sp, #8]
mov r3, #0
str r3, [sp, #0xc]
str r1, [sp, #0x10]
str r1, [sp, #0x14]
ldr r1, [r5, #0x34]
add r0, r5, #0
ldr r1, [r1, #0x14]
add r0, #0x20
mov r2, #0x18
bl FUN_02019658
mov r0, #8
str r0, [sp]
str r0, [sp, #4]
mov r3, #0
str r3, [sp, #8]
str r0, [sp, #0xc]
str r0, [sp, #0x10]
str r0, [sp, #0x14]
ldr r1, [r5, #0x34]
add r0, r5, #0
ldr r1, [r1, #0x14]
add r0, #0x20
mov r2, #0x38
bl FUN_02019658
mov r1, #8
str r1, [sp]
lsl r0, r4, #0x10
str r1, [sp, #4]
lsr r0, r0, #0x10
str r0, [sp, #8]
str r1, [sp, #0xc]
str r1, [sp, #0x10]
str r1, [sp, #0x14]
ldr r1, [r5, #0x34]
add r0, r5, #0
ldr r1, [r1, #0x14]
add r0, #0x20
mov r2, #0x40
mov r3, #0
bl FUN_02019658
mov r1, #8
str r1, [sp]
str r1, [sp, #4]
mov r3, #0
str r3, [sp, #8]
mov r0, #0x10
str r0, [sp, #0xc]
str r1, [sp, #0x10]
str r1, [sp, #0x14]
ldr r1, [r5, #0x34]
add r0, r5, #0
ldr r1, [r1, #0x14]
add r0, #0x20
mov r2, #0x20
bl FUN_02019658
mov r1, #8
str r1, [sp]
lsl r0, r4, #0x10
str r1, [sp, #4]
lsr r0, r0, #0x10
str r0, [sp, #8]
mov r0, #0x10
str r0, [sp, #0xc]
str r1, [sp, #0x10]
str r1, [sp, #0x14]
ldr r1, [r5, #0x34]
add r0, r5, #0
ldr r1, [r1, #0x14]
add r0, #0x20
mov r2, #0x30
mov r3, #0
bl FUN_02019658
ldr r0, [sp, #0x18]
mov r7, #0
cmp r0, #0
ble _021E30F2
add r6, r5, #0
add r6, #0x20
_021E3078:
add r0, r7, #1
lsl r4, r0, #3
mov r0, #8
str r0, [sp]
str r0, [sp, #4]
lsl r0, r4, #0x10
lsr r0, r0, #0x10
str r0, [sp, #8]
mov r0, #0
str r0, [sp, #0xc]
mov r0, #8
str r0, [sp, #0x10]
str r0, [sp, #0x14]
ldr r1, [r5, #0x34]
add r0, r6, #0
ldr r1, [r1, #0x14]
mov r2, #0x10
mov r3, #0
bl FUN_02019658
mov r0, #8
str r0, [sp]
str r0, [sp, #4]
lsl r0, r4, #0x10
lsr r0, r0, #0x10
str r0, [sp, #8]
mov r0, #8
str r0, [sp, #0xc]
str r0, [sp, #0x10]
str r0, [sp, #0x14]
ldr r1, [r5, #0x34]
add r0, r6, #0
ldr r1, [r1, #0x14]
mov r2, #0x48
mov r3, #0
bl FUN_02019658
mov r0, #8
str r0, [sp]
str r0, [sp, #4]
lsl r0, r4, #0x10
lsr r0, r0, #0x10
str r0, [sp, #8]
mov r0, #0x10
str r0, [sp, #0xc]
mov r0, #8
str r0, [sp, #0x10]
str r0, [sp, #0x14]
ldr r1, [r5, #0x34]
add r0, r6, #0
ldr r1, [r1, #0x14]
mov r2, #0x28
mov r3, #0
bl FUN_02019658
add r0, r7, #1
lsl r0, r0, #0x18
lsr r7, r0, #0x18
ldr r0, [sp, #0x18]
cmp r7, r0
blt _021E3078
_021E30F2:
add r5, #0x20
add r0, r5, #0
bl FUN_020191D0
add sp, #0x1c
pop {r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021E3100
MOD05_021E3100: ; 0x021E3100
mov r1, #0
str r1, [r0]
strb r1, [r0, #4]
str r1, [r0, #8]
str r1, [r0, #0xc]
strh r1, [r0, #0x10]
str r1, [r0, #0x14]
str r1, [r0, #0x18]
str r1, [r0, #0x1c]
bx lr
thumb_func_start MOD05_021E3114
MOD05_021E3114: ; 0x021E3114
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
bl MOD05_021E3100
str r4, [r5, #0x1c]
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021E3124
MOD05_021E3124: ; 0x021E3124
push {r4, lr}
add r4, r1, #0
ldrb r0, [r4, #4]
cmp r0, #3
bhi _021E31D0
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021E313A: ; jump table
.short _021E31D0 - _021E313A - 2 ; case 0
.short _021E3142 - _021E313A - 2 ; case 1
.short _021E3180 - _021E313A - 2 ; case 2
.short _021E316A - _021E313A - 2 ; case 3
_021E3142:
ldr r0, [r4, #0xc]
sub r0, r0, #4
str r0, [r4, #0xc]
bpl _021E314E
mov r0, #0
str r0, [r4, #0xc]
_021E314E:
mov r1, #3
ldr r0, [r4, #0x1c]
ldr r3, [r4, #0xc]
add r2, r1, #0
bl FUN_020179E0
ldr r0, [r4, #0xc]
cmp r0, #0
bne _021E31D0
mov r0, #0
strh r0, [r4, #0x10]
mov r0, #3
strb r0, [r4, #4]
pop {r4, pc}
_021E316A:
ldrh r0, [r4, #0x10]
add r0, r0, #1
strh r0, [r4, #0x10]
ldrh r0, [r4, #0x10]
cmp r0, #0x3c
blo _021E31D0
mov r0, #0
strh r0, [r4, #0x10]
mov r0, #2
strb r0, [r4, #4]
pop {r4, pc}
_021E3180:
ldr r0, [r4, #0xc]
add r0, r0, #4
str r0, [r4, #0xc]
cmp r0, #0x26
ble _021E318E
mov r0, #0x26
str r0, [r4, #0xc]
_021E318E:
mov r1, #3
ldr r0, [r4, #0x1c]
ldr r3, [r4, #0xc]
add r2, r1, #0
bl FUN_020179E0
ldr r0, [r4, #0xc]
cmp r0, #0x26
bne _021E31D0
ldr r0, [r4, #0x14]
cmp r0, #0
beq _021E31CA
mov r0, #0
str r0, [r4, #0x14]
ldr r0, [r4, #0x3c]
ldr r1, [r4, #0x18]
ldr r2, [r4, #0x40]
bl FUN_02064E4C
add r1, r0, #0
add r0, r4, #0
bl MOD05_021E2F34
ldr r1, [r4, #0x40]
add r0, r4, #0
bl MOD05_021E31D4
mov r0, #1
strb r0, [r4, #4]
pop {r4, pc}
_021E31CA:
add r0, r4, #0
bl MOD05_021E32F0
_021E31D0:
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021E31D4
MOD05_021E31D4: ; 0x021E31D4
push {r3, lr}
sub sp, #0x10
add r3, r0, #0
mov r0, #3
add r2, r1, #0
str r0, [sp]
mov r1, #0
ldr r0, _021E31FC ; =0x00010200
str r1, [sp, #4]
str r0, [sp, #8]
add r0, r3, #0
str r1, [sp, #0xc]
add r3, #0x30
ldrb r3, [r3]
add r0, #0x20
bl FUN_0201BDE0
add sp, #0x10
pop {r3, pc}
nop
_021E31FC: .word 0x00010200
thumb_func_start MOD05_021E3200
MOD05_021E3200: ; 0x021E3200
mov r1, #2
strb r1, [r0, #4]
mov r1, #0
strh r1, [r0, #0x10]
bx lr
.balign 4, 0
thumb_func_start MOD05_021E320C
MOD05_021E320C: ; 0x021E320C
push {r3, r4, r5, lr}
add r5, r0, #0
mov r0, #4
mov r1, #0x44
bl AllocFromHeap
add r4, r0, #0
mov r0, #0x16
mov r1, #4
bl FUN_020219F4
str r0, [r4, #0x40]
add r0, r4, #0
add r1, r5, #0
bl MOD05_021E3114
add r0, r4, #0
bl MOD05_021E2EA4
ldr r2, _021E3244 ; =0x0000017E
mov r0, #1
mov r1, #0x1a
mov r3, #4
bl FUN_0200A86C
str r0, [r4, #0x3c]
add r0, r4, #0
pop {r3, r4, r5, pc}
.balign 4, 0
_021E3244: .word 0x0000017E
thumb_func_start MOD05_021E3248
MOD05_021E3248: ; 0x021E3248
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0x3c]
bl FUN_0200A8B8
add r0, r4, #0
add r0, #0x20
bl FUN_02019178
ldr r0, [r4, #0x40]
bl FUN_02021A20
ldr r0, [r4, #0x38]
bl FreeToHeap
add r0, r4, #0
bl FreeToHeap
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021E3270
MOD05_021E3270: ; 0x021E3270
push {r4, lr}
add r4, r0, #0
str r1, [r4, #0x18]
ldr r1, [r4]
cmp r1, #0
bne _021E32BC
mov r0, #1
str r0, [r4]
mov r1, #3
ldr r0, [r4, #0x1c]
add r2, r1, #0
mov r3, #0x26
bl FUN_020179E0
mov r0, #0x26
str r0, [r4, #0xc]
ldr r0, _021E32EC ; =MOD05_021E3124
add r1, r4, #0
mov r2, #0
bl FUN_0200CA44
str r0, [r4, #8]
mov r0, #1
strb r0, [r4, #4]
ldr r0, [r4, #0x3c]
ldr r1, [r4, #0x18]
ldr r2, [r4, #0x40]
bl FUN_02064E4C
add r1, r0, #0
add r0, r4, #0
bl MOD05_021E2F34
ldr r1, [r4, #0x40]
add r0, r4, #0
bl MOD05_021E31D4
pop {r4, pc}
_021E32BC:
ldrb r1, [r4, #4]
cmp r1, #3
bhi _021E32E6
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021E32CE: ; jump table
.short _021E32E6 - _021E32CE - 2 ; case 0
.short _021E32D6 - _021E32CE - 2 ; case 1
.short _021E32E0 - _021E32CE - 2 ; case 2
.short _021E32D6 - _021E32CE - 2 ; case 3
_021E32D6:
bl MOD05_021E3200
mov r0, #1
str r0, [r4, #0x14]
pop {r4, pc}
_021E32E0:
mov r0, #1
str r0, [r4, #0x14]
pop {r4, pc}
_021E32E6:
bl ErrorHandling
pop {r4, pc}
.balign 4, 0
_021E32EC: .word MOD05_021E3124
thumb_func_start MOD05_021E32F0
MOD05_021E32F0: ; 0x021E32F0
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #8]
cmp r0, #0
beq _021E32FE
bl FUN_0200CAB4
_021E32FE:
add r0, r4, #0
add r0, #0x20
bl FUN_02019570
mov r1, #3
ldr r0, [r4, #0x1c]
add r2, r1, #0
mov r3, #0
bl FUN_020179E0
ldr r1, [r4, #0x1c]
add r0, r4, #0
bl MOD05_021E3114
pop {r4, pc}
thumb_func_start MOD05_021E331C
MOD05_021E331C: ; 0x021E331C
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0x1c]
ldr r0, [r0]
bl FUN_02034944
cmp r0, #0
bne _021E333E
ldr r0, [r4, #0x1c]
ldr r0, [r0]
bl FUN_02034824
add r1, r0, #0
ldr r0, [r4, #4]
ldr r0, [r0, #8]
bl MOD05_021E3270
_021E333E:
pop {r4, pc}
thumb_func_start MOD05_021E3340
MOD05_021E3340: ; 0x021E3340
push {r3, r4, r5, r6, lr}
sub sp, #4
add r4, r0, #0
bl FUN_02046528
add r5, r0, #0
add r0, r4, #0
bl FUN_0204652C
add r4, r0, #0
ldr r0, [r4]
cmp r0, #4
bhi _021E3414
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021E3366: ; jump table
.short _021E3370 - _021E3366 - 2 ; case 0
.short _021E3388 - _021E3366 - 2 ; case 1
.short _021E33A0 - _021E3366 - 2 ; case 2
.short _021E33E4 - _021E3366 - 2 ; case 3
.short _021E33FE - _021E3366 - 2 ; case 4
_021E3370:
mov r0, #2
add r1, r0, #0
str r0, [sp]
sub r1, #0x12
mov r2, #0
mov r3, #0x3f
bl FUN_0200A208
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021E3414
_021E3388:
mov r0, #2
bl FUN_0200A344
cmp r0, #0
beq _021E3414
ldr r0, [r5, #8]
bl MOD19_022524F4
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021E3414
_021E33A0:
ldr r0, [r5, #8]
bl MOD19_02252504
cmp r0, #0
beq _021E3414
ldr r0, [r5, #0xc]
bl FUN_0204C1A8
add r6, r0, #0
ldr r0, _021E341C ; =SDK_OVERLAY_MODULE_19_ID
bl UnloadOverlayByID
ldr r0, _021E3420 ; =SDK_OVERLAY_MODULE_20_ID
mov r1, #2
bl HandleLoadOverlay
add r0, r6, #0
bl FUN_0204BEB8
mov r0, #1
bl FUN_0200A03C
str r0, [sp]
ldr r1, [r5, #4]
ldr r2, [r5, #0xc]
ldr r3, [r5, #8]
add r0, r5, #0
add r1, #0x14
bl MOD20_02252448
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021E3414
_021E33E4:
mov r1, #0
mov r0, #2
add r2, r1, #0
str r0, [sp]
mov r0, #4
sub r2, #0x10
mov r3, #0x3f
bl FUN_0200A208
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021E3414
_021E33FE:
mov r0, #2
bl FUN_0200A344
cmp r0, #0
beq _021E3414
add r0, r4, #0
bl FreeToHeap
add sp, #4
mov r0, #1
pop {r3, r4, r5, r6, pc}
_021E3414:
mov r0, #0
add sp, #4
pop {r3, r4, r5, r6, pc}
nop
_021E341C: .word SDK_OVERLAY_MODULE_19_ID
_021E3420: .word SDK_OVERLAY_MODULE_20_ID
thumb_func_start MOD05_021E3424
MOD05_021E3424: ; 0x021E3424
push {r4, lr}
add r4, r0, #0
mov r0, #0xb
mov r1, #4
bl AllocFromHeapAtEnd
add r2, r0, #0
mov r0, #0
str r0, [r2]
ldr r1, _021E3440 ; =MOD05_021E3340
add r0, r4, #0
bl FUN_0204640C
pop {r4, pc}
.balign 4, 0
_021E3440: .word MOD05_021E3340
thumb_func_start MOD05_021E3444
MOD05_021E3444: ; 0x021E3444
push {r3, r4, r5, lr}
add r5, r1, #0
lsl r1, r0, #2
ldr r0, _021E3470 ; =0x021F74E8
add r4, r2, #0
ldr r0, [r0, r1]
mov r1, #0x20
mov r2, #5
mov r3, #4
bl FUN_020061E8
bl FUN_0201B6C8
str r5, [r0, #0x10]
str r4, [r0, #0x14]
cmp r4, #0
beq _021E346A
mov r1, #0
str r1, [r4]
_021E346A:
mov r1, #0
str r1, [r0, #0x18]
pop {r3, r4, r5, pc}
.balign 4, 0
_021E3470: .word 0x021F74E8
thumb_func_start MOD05_021E3474
MOD05_021E3474: ; 0x021E3474
push {r3, r4, r5, r6, r7, lr}
add r6, r0, #0
add r7, r1, #0
mov r0, #4
mov r1, #0x4c
str r2, [sp]
add r5, r3, #0
bl AllocFromHeap
mov r1, #0
mov r2, #0x4c
add r4, r0, #0
bl memset
ldr r0, _021E34B4 ; =MOD05_021E34B8
add r1, r4, #0
mov r2, #5
bl FUN_0200CA44
str r5, [r4, #0x48]
cmp r5, #0
beq _021E34A4
mov r0, #0
str r0, [r5]
_021E34A4:
str r6, [r4, #0xc]
ldr r0, [sp]
str r7, [r4, #0x10]
str r0, [r4, #0x14]
ldr r0, [sp, #0x18]
str r0, [r4, #4]
pop {r3, r4, r5, r6, r7, pc}
nop
_021E34B4: .word MOD05_021E34B8
thumb_func_start MOD05_021E34B8
MOD05_021E34B8: ; 0x021E34B8
push {r3, r4, lr}
sub sp, #4
add r4, r1, #0
ldr r1, [r4]
cmp r1, #5
bhi _021E359E
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021E34D0: ; jump table
.short _021E34DC - _021E34D0 - 2 ; case 0
.short _021E3514 - _021E34D0 - 2 ; case 1
.short _021E352E - _021E34D0 - 2 ; case 2
.short _021E3542 - _021E34D0 - 2 ; case 3
.short _021E355C - _021E34D0 - 2 ; case 4
.short _021E3580 - _021E34D0 - 2 ; case 5
_021E34DC:
ldr r0, [r4, #0xc]
cmp r0, #1
bne _021E34F6
mov r0, #8
str r0, [sp]
add r0, r4, #0
ldr r2, [r4, #0x14]
add r0, #0x30
mov r1, #0
mov r3, #2
bl MOD05_021E372C
b _021E350C
_021E34F6:
cmp r0, #2
bne _021E350C
mov r0, #8
str r0, [sp]
add r0, r4, #0
ldr r2, [r4, #0x14]
add r0, #0x30
mov r1, #0
mov r3, #1
bl MOD05_021E372C
_021E350C:
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021E359E
_021E3514:
mov r0, #3
str r0, [sp]
add r0, r4, #0
ldr r2, [r4, #0x10]
ldr r3, [r4, #0xc]
add r0, #0x18
mov r1, #0
bl MOD05_021E372C
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021E359E
_021E352E:
add r0, r4, #0
add r0, #0x18
bl MOD05_021E3738
cmp r0, #0
beq _021E359E
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021E359E
_021E3542:
mov r0, #3
str r0, [sp]
add r0, r4, #0
ldr r1, [r4, #0x10]
ldr r3, [r4, #0xc]
add r0, #0x18
mov r2, #0
bl MOD05_021E372C
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021E359E
_021E355C:
add r0, r4, #0
add r0, #0x18
bl MOD05_021E3738
cmp r0, #0
beq _021E359E
ldr r0, [r4, #8]
add r1, r0, #1
str r1, [r4, #8]
ldr r0, [r4, #4]
cmp r1, r0
bne _021E357A
mov r0, #5
str r0, [r4]
b _021E359E
_021E357A:
mov r0, #1
str r0, [r4]
b _021E359E
_021E3580:
mov r1, #0
str r1, [r4]
str r1, [r4, #8]
ldr r2, [r4, #0x48]
cmp r2, #0
beq _021E3590
mov r1, #1
str r1, [r2]
_021E3590:
bl FUN_0200CAB4
add r0, r4, #0
bl FreeToHeap
add sp, #4
pop {r3, r4, pc}
_021E359E:
add r4, #0x30
add r0, r4, #0
bl MOD05_021E3738
add sp, #4
pop {r3, r4, pc}
.balign 4, 0
thumb_func_start MOD05_021E35AC
MOD05_021E35AC: ; 0x021E35AC
ldr r0, [r0, #0x18]
bx lr
thumb_func_start MOD05_021E35B0
MOD05_021E35B0: ; 0x021E35B0
str r1, [r0]
str r1, [r0, #4]
sub r1, r2, r1
str r1, [r0, #8]
str r3, [r0, #0x10]
mov r1, #0
str r1, [r0, #0xc]
bx lr
thumb_func_start MOD05_021E35C0
MOD05_021E35C0: ; 0x021E35C0
push {r4, lr}
add r4, r0, #0
ldr r1, [r4, #8]
ldr r0, [r4, #0xc]
mul r0, r1
ldr r1, [r4, #0x10]
bl _s32_div_f
ldr r1, [r4, #4]
add r0, r0, r1
str r0, [r4]
ldr r0, [r4, #0xc]
ldr r1, [r4, #0x10]
add r0, r0, #1
cmp r0, r1
bgt _021E35E6
str r0, [r4, #0xc]
mov r0, #0
pop {r4, pc}
_021E35E6:
str r1, [r4, #0xc]
mov r0, #1
pop {r4, pc}
thumb_func_start MOD05_021E35EC
MOD05_021E35EC: ; 0x021E35EC
str r1, [r0]
str r1, [r0, #4]
sub r1, r2, r1
str r1, [r0, #8]
str r3, [r0, #0x10]
mov r1, #0
str r1, [r0, #0xc]
bx lr
thumb_func_start MOD05_021E35FC
MOD05_021E35FC: ; 0x021E35FC
push {r4, lr}
add r4, r0, #0
ldr r2, [r4, #0xc]
ldr r0, [r4, #8]
lsl r2, r2, #0xc
asr r1, r0, #0x1f
asr r3, r2, #0x1f
bl _ll_mul
mov r2, #2
mov r3, #0
lsl r2, r2, #0xa
add r0, r0, r2
adc r1, r3
lsl r1, r1, #0x14
lsr r0, r0, #0xc
orr r0, r1
ldr r1, [r4, #0x10]
lsl r1, r1, #0xc
bl FX_Div
ldr r1, [r4, #4]
add r0, r0, r1
str r0, [r4]
ldr r0, [r4, #0xc]
ldr r1, [r4, #0x10]
add r0, r0, #1
cmp r0, r1
bgt _021E363C
str r0, [r4, #0xc]
mov r0, #0
pop {r4, pc}
_021E363C:
str r1, [r4, #0xc]
mov r0, #1
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021E3644
MOD05_021E3644: ; 0x021E3644
push {r3, r4, r5, r6, r7, lr}
ldr r4, [sp, #0x18]
add r5, r0, #0
add r7, r2, #0
add r0, r3, #0
add r6, r1, #0
lsl r2, r4, #0xc
str r3, [sp]
asr r1, r0, #0x1f
asr r3, r2, #0x1f
bl _ll_mul
add r2, r0, #0
sub r0, r7, r6
mov r7, #2
mov r3, #0
lsl r7, r7, #0xa
add r2, r2, r7
adc r1, r3
lsl r1, r1, #0x14
lsr r2, r2, #0xc
orr r2, r1
sub r2, r0, r2
asr r1, r2, #0x1f
lsr r0, r2, #0x13
lsl r1, r1, #0xd
orr r1, r0
lsl r0, r2, #0xd
add r0, r0, r7
adc r1, r3
lsl r1, r1, #0x14
lsr r0, r0, #0xc
orr r0, r1
add r1, r4, #0
mul r1, r4
lsl r1, r1, #0xc
bl FX_Div
str r6, [r5]
ldr r1, [sp]
str r6, [r5, #4]
str r1, [r5, #8]
str r0, [r5, #0xc]
mov r0, #0
str r0, [r5, #0x10]
str r4, [r5, #0x14]
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021E36A4
MOD05_021E36A4: ; 0x021E36A4
push {r4, r5, r6, lr}
add r5, r0, #0
ldr r6, [r5, #0x10]
ldr r0, [r5, #8]
lsl r2, r6, #0xc
asr r1, r0, #0x1f
asr r3, r2, #0x1f
bl _ll_mul
mov r2, #2
mov r3, #0
lsl r2, r2, #0xa
add r2, r0, r2
adc r1, r3
lsr r4, r2, #0xc
lsl r0, r1, #0x14
add r2, r6, #0
orr r4, r0
ldr r0, [r5, #0xc]
mul r2, r6
lsl r2, r2, #0xc
asr r1, r0, #0x1f
asr r3, r2, #0x1f
bl _ll_mul
mov r2, #2
mov r3, #0
lsl r2, r2, #0xa
add r0, r0, r2
adc r1, r3
lsl r1, r1, #0x14
lsr r0, r0, #0xc
orr r0, r1
lsl r1, r2, #2
bl FX_Div
ldr r1, [r5, #4]
add r0, r4, r0
add r0, r1, r0
str r0, [r5]
ldr r0, [r5, #0x10]
ldr r1, [r5, #0x14]
add r0, r0, #1
cmp r0, r1
bgt _021E3704
str r0, [r5, #0x10]
mov r0, #0
pop {r4, r5, r6, pc}
_021E3704:
str r1, [r5, #0x10]
mov r0, #1
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_start MOD05_021E370C
MOD05_021E370C: ; 0x021E370C
push {r3, lr}
cmp r0, #1
bne _021E371A
ldr r0, _021E3724 ; =0x0400006C
bl GXx_SetMasterBrightness_
pop {r3, pc}
_021E371A:
ldr r0, _021E3728 ; =0x0400106C
bl GXx_SetMasterBrightness_
pop {r3, pc}
nop
_021E3724: .word 0x0400006C
_021E3728: .word 0x0400106C
thumb_func_start MOD05_021E372C
MOD05_021E372C: ; 0x021E372C
push {r3, lr}
str r3, [r0, #0x14]
ldr r3, [sp, #8]
bl MOD05_021E35B0
pop {r3, pc}
thumb_func_start MOD05_021E3738
MOD05_021E3738: ; 0x021E3738
push {r3, r4, r5, lr}
add r5, r0, #0
bl MOD05_021E35C0
add r4, r0, #0
ldr r0, _021E3750 ; =MOD05_021E3754
add r1, r5, #0
mov r2, #0xa
bl FUN_0200CA98
add r0, r4, #0
pop {r3, r4, r5, pc}
.balign 4, 0
_021E3750: .word MOD05_021E3754
thumb_func_start MOD05_021E3754
MOD05_021E3754: ; 0x021E3754
push {r4, lr}
add r4, r0, #0
ldr r0, [r1, #0x14]
ldr r1, [r1]
bl MOD05_021E370C
add r0, r4, #0
bl FUN_0200CAB4
pop {r4, pc}
thumb_func_start MOD05_021E3768
MOD05_021E3768: ; 0x021E3768
push {r4, lr}
mov r0, #4
mov r1, #0x30
bl AllocFromHeap
mov r1, #0
mov r2, #0x30
add r4, r0, #0
bl memset
ldr r0, _021E379C ; =0x04000048
mov r1, #0x3f
ldrh r2, [r0]
bic r2, r1
mov r1, #0x1f
orr r2, r1
mov r1, #0x20
orr r1, r2
strh r1, [r0]
ldrh r2, [r0]
ldr r1, _021E37A0 ; =0xFFFFC0FF
and r1, r2
strh r1, [r0]
add r0, r4, #0
pop {r4, pc}
nop
_021E379C: .word 0x04000048
_021E37A0: .word 0xFFFFC0FF
thumb_func_start MOD05_021E37A4
MOD05_021E37A4: ; 0x021E37A4
push {r4, lr}
add r4, r0, #0
ldr r1, [r4, #0x24]
cmp r1, #0
beq _021E37B2
bl MOD05_021E3920
_021E37B2:
mov r2, #1
lsl r2, r2, #0x1a
ldr r1, [r2]
ldr r0, _021E37C8 ; =0xFFFF1FFF
and r0, r1
str r0, [r2]
add r0, r4, #0
bl FreeToHeap
pop {r4, pc}
nop
_021E37C8: .word 0xFFFF1FFF
thumb_func_start MOD05_021E37CC
MOD05_021E37CC: ; 0x021E37CC
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
add r5, r1, #0
add r6, r0, #0
ldr r0, [r5, #0x24]
add r7, r2, #0
str r3, [sp, #4]
ldr r4, [sp, #0x20]
cmp r0, #0
beq _021E37E4
bl ErrorHandling
_021E37E4:
mov r0, #0
str r0, [r6, #0x18]
ldr r1, [r6, #0x10]
add r6, #0x18
ldr r1, [r1, #4]
ldr r2, [sp, #0x24]
ldr r1, [r1, #0x1c]
ldr r3, [sp, #0x28]
str r1, [r5, #0x20]
str r7, [r5, #0x18]
str r0, [r5, #0x1c]
ldr r0, [sp, #4]
str r6, [r5, #0x2c]
str r0, [sp]
add r0, r5, #0
add r1, r4, #0
bl MOD05_021E3644
cmp r4, #0
blt _021E3824
mov r0, #0xff
ldr r2, _021E3850 ; =0x04000040
sub r0, r0, r4
strh r0, [r2]
add r0, r4, #1
mov r1, #0xc0
lsl r0, r0, #0x18
strh r1, [r2, #4]
lsr r0, r0, #0x18
strh r0, [r2, #2]
strh r1, [r2, #6]
b _021E3840
_021E3824:
add r0, r4, #0
add r0, #0xff
lsl r0, r0, #0x18
mov r2, #1
sub r2, r2, r4
lsl r2, r2, #0x18
ldr r1, _021E3850 ; =0x04000040
lsr r0, r0, #0x18
strh r0, [r1]
mov r0, #0xc0
strh r0, [r1, #4]
lsr r2, r2, #0x18
strh r2, [r1, #2]
strh r0, [r1, #6]
_021E3840:
mov r2, #1
ldr r0, _021E3854 ; =MOD05_021E3858
add r1, r5, #0
lsl r2, r2, #0xa
bl FUN_0200CA98
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_021E3850: .word 0x04000040
_021E3854: .word MOD05_021E3858
thumb_func_start MOD05_021E3858
MOD05_021E3858: ; 0x021E3858
push {r3, r4, r5, lr}
add r5, r0, #0
mov r2, #1
ldr r0, _021E3880 ; =MOD05_021E38B8
add r4, r1, #0
lsl r2, r2, #0xa
bl FUN_0200CA98
str r0, [r4, #0x28]
ldr r0, [r4, #0x20]
ldr r1, _021E3884 ; =MOD05_021E397C
add r2, r4, #0
bl MOD05_021F4624
str r0, [r4, #0x24]
add r0, r5, #0
bl FUN_0200CAB4
pop {r3, r4, r5, pc}
nop
_021E3880: .word MOD05_021E38B8
_021E3884: .word MOD05_021E397C
thumb_func_start MOD05_021E3888
MOD05_021E3888: ; 0x021E3888
push {r3, r4, r5, r6, lr}
sub sp, #4
add r5, r1, #0
add r4, r2, #0
add r6, r3, #0
bl MOD05_021E35AC
cmp r0, #0
beq _021E389E
bl ErrorHandling
_021E389E:
str r4, [r5, #0x18]
mov r0, #0
str r0, [r5, #0x1c]
ldr r1, [sp, #0x18]
ldr r2, [sp, #0x1c]
ldr r3, [sp, #0x20]
add r0, r5, #0
str r6, [sp]
bl MOD05_021E3644
add sp, #4
pop {r3, r4, r5, r6, pc}
.balign 4, 0
thumb_func_start MOD05_021E38B8
MOD05_021E38B8: ; 0x021E38B8
push {r4, lr}
add r4, r1, #0
ldr r0, [r4, #0x1c]
cmp r0, #0
beq _021E38C8
cmp r0, #1
beq _021E3914
pop {r4, pc}
_021E38C8:
add r0, r4, #0
bl MOD05_021E36A4
cmp r0, #0
beq _021E38D8
ldr r0, [r4, #0x1c]
add r0, r0, #1
str r0, [r4, #0x1c]
_021E38D8:
ldr r0, [r4]
asr r0, r0, #0xc
bmi _021E38F6
mov r1, #0xff
sub r1, r1, r0
ldr r2, _021E391C ; =0x04000040
add r0, r0, #1
strh r1, [r2]
mov r1, #0xc0
lsl r0, r0, #0x18
strh r1, [r2, #4]
lsr r0, r0, #0x18
strh r0, [r2, #2]
strh r1, [r2, #6]
pop {r4, pc}
_021E38F6:
add r1, r0, #0
add r1, #0xff
lsl r1, r1, #0x18
ldr r3, _021E391C ; =0x04000040
lsr r1, r1, #0x18
strh r1, [r3]
mov r1, #1
sub r0, r1, r0
mov r2, #0xc0
lsl r0, r0, #0x18
strh r2, [r3, #4]
lsr r0, r0, #0x18
strh r0, [r3, #2]
strh r2, [r3, #6]
pop {r4, pc}
_021E3914:
add r0, r4, #0
bl MOD05_021E3920
pop {r4, pc}
.balign 4, 0
_021E391C: .word 0x04000040
thumb_func_start MOD05_021E3920
MOD05_021E3920: ; 0x021E3920
push {r4, lr}
add r4, r0, #0
ldr r0, _021E3974 ; =0x04000048
mov r2, #0x3f
ldrh r3, [r0]
mov r1, #0x1f
bic r3, r2
orr r3, r1
mov r1, #0x20
orr r3, r1
strh r3, [r0]
ldrh r3, [r0, #2]
bic r3, r2
add r2, r0, #0
strh r3, [r0, #2]
mov r3, #0
sub r2, #8
strh r3, [r2]
sub r0, r0, #4
strh r3, [r0]
lsl r3, r1, #0x15
ldr r2, [r3]
ldr r0, _021E3978 ; =0xFFFF1FFF
and r2, r0
lsl r0, r1, #8
orr r0, r2
str r0, [r3]
ldr r0, [r4, #0x2c]
mov r1, #1
str r1, [r0]
ldr r0, [r4, #0x24]
bl MOD05_021F4648
mov r0, #0
str r0, [r4, #0x24]
ldr r0, [r4, #0x28]
bl FUN_0200CAB4
mov r0, #0
str r0, [r4, #0x28]
pop {r4, pc}
nop
_021E3974: .word 0x04000048
_021E3978: .word 0xFFFF1FFF
thumb_func_start MOD05_021E397C
MOD05_021E397C: ; 0x021E397C
push {r4, lr}
ldr r0, _021E39EC ; =0x04000006
add r4, r1, #0
ldrh r0, [r0]
ldr r1, [r4, #0x18]
bl _u32_div_f
mov r1, #1
tst r0, r1
ldr r0, [r4]
bne _021E3994
b _021E3996
_021E3994:
neg r0, r0
_021E3996:
asr r2, r0, #0xc
ldr r0, _021E39F0 ; =0x000001FF
add r1, r2, #0
and r1, r0
ldr r0, _021E39F4 ; =0x04000010
cmp r2, #0
str r1, [r0]
str r1, [r0, #4]
str r1, [r0, #8]
str r1, [r0, #0xc]
ldr r1, _021E39F8 ; =0xFFFF1FFF
blt _021E39C8
add r3, r0, #0
sub r3, #0x10
ldr r2, [r3]
and r2, r1
lsl r1, r0, #9
orr r1, r2
str r1, [r3]
add r0, #0x3a
ldrh r2, [r0]
mov r1, #0x3f
bic r2, r1
strh r2, [r0]
pop {r4, pc}
_021E39C8:
add r3, r0, #0
sub r3, #0x10
ldr r2, [r3]
and r2, r1
lsl r1, r0, #0xa
orr r1, r2
str r1, [r3]
add r0, #0x3a
ldrh r2, [r0]
mov r1, #0x3f
bic r2, r1
mov r1, #0x1f
orr r2, r1
mov r1, #0x20
orr r1, r2
strh r1, [r0]
pop {r4, pc}
nop
_021E39EC: .word 0x04000006
_021E39F0: .word 0x000001FF
_021E39F4: .word 0x04000010
_021E39F8: .word 0xFFFF1FFF
thumb_func_start MOD05_021E39FC
MOD05_021E39FC: ; 0x021E39FC
push {r4, r5, r6, lr}
mov r0, #4
mov r1, #0x48
bl AllocFromHeap
mov r1, #0
mov r2, #0x48
add r4, r0, #0
bl memset
ldr r0, _021E3A40 ; =0x04000048
mov r5, #0x3f
ldrh r2, [r0]
mov r1, #0x1f
bic r2, r5
add r3, r2, #0
orr r3, r1
mov r2, #0x20
orr r3, r2
strh r3, [r0]
ldrh r6, [r0]
ldr r3, _021E3A44 ; =0xFFFFC0FF
lsl r1, r1, #8
and r3, r6
orr r3, r1
lsl r1, r2, #8
orr r1, r3
strh r1, [r0]
ldrh r1, [r0, #2]
bic r1, r5
strh r1, [r0, #2]
add r0, r4, #0
pop {r4, r5, r6, pc}
nop
_021E3A40: .word 0x04000048
_021E3A44: .word 0xFFFFC0FF
thumb_func_start MOD05_021E3A48
MOD05_021E3A48: ; 0x021E3A48
push {r4, lr}
add r4, r0, #0
ldr r1, [r4, #0x3c]
cmp r1, #0
beq _021E3A56
bl MOD05_021E3BA4
_021E3A56:
mov r2, #1
lsl r2, r2, #0x1a
ldr r1, [r2]
ldr r0, _021E3A6C ; =0xFFFF1FFF
and r0, r1
str r0, [r2]
add r0, r4, #0
bl FreeToHeap
pop {r4, pc}
nop
_021E3A6C: .word 0xFFFF1FFF
thumb_func_start MOD05_021E3A70
MOD05_021E3A70: ; 0x021E3A70
push {r3, r4, r5, r6, r7, lr}
add r4, r1, #0
add r5, r0, #0
ldr r0, [r4, #0x3c]
add r6, r2, #0
add r7, r3, #0
cmp r0, #0
beq _021E3A84
bl ErrorHandling
_021E3A84:
mov r1, #0
str r1, [r5, #0x18]
ldr r0, [r5, #0x10]
mov r2, #0xff
ldr r0, [r0, #4]
add r5, #0x18
ldr r0, [r0, #0x1c]
lsl r2, r2, #0xc
str r0, [r4, #0x38]
mov r0, #0x60
str r0, [r4, #0x30]
str r1, [r4, #0x34]
str r5, [r4, #0x44]
add r0, r4, #0
add r3, r7, #0
str r6, [sp]
bl MOD05_021E3644
add r0, r4, #0
mov r2, #6
ldr r3, [sp, #0x18]
add r0, #0x18
mov r1, #0
lsl r2, r2, #0x10
str r6, [sp]
bl MOD05_021E3644
ldr r2, _021E3AD4 ; =0x04000040
mov r1, #0xff
strh r1, [r2]
mov r0, #0xc0
strh r0, [r2, #4]
strh r1, [r2, #2]
strh r0, [r2, #6]
ldr r0, _021E3AD8 ; =MOD05_021E3ADC
add r1, r4, #0
lsr r2, r2, #0x10
bl FUN_0200CA98
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_021E3AD4: .word 0x04000040
_021E3AD8: .word MOD05_021E3ADC
thumb_func_start MOD05_021E3ADC
MOD05_021E3ADC: ; 0x021E3ADC
push {r3, r4, r5, lr}
add r5, r0, #0
mov r2, #1
ldr r0, _021E3B04 ; =MOD05_021E3B0C
add r4, r1, #0
lsl r2, r2, #0xa
bl FUN_0200CA98
str r0, [r4, #0x40]
ldr r0, [r4, #0x38]
ldr r1, _021E3B08 ; =MOD05_021E3B74
add r2, r4, #0
bl MOD05_021F4624
str r0, [r4, #0x3c]
add r0, r5, #0
bl FUN_0200CAB4
pop {r3, r4, r5, pc}
nop
_021E3B04: .word MOD05_021E3B0C
_021E3B08: .word MOD05_021E3B74
thumb_func_start MOD05_021E3B0C
MOD05_021E3B0C: ; 0x021E3B0C
push {r4, lr}
add r4, r1, #0
ldr r0, [r4, #0x34]
cmp r0, #0
beq _021E3B1C
cmp r0, #1
beq _021E3B68
pop {r4, pc}
_021E3B1C:
add r0, r4, #0
add r0, #0x18
bl MOD05_021E36A4
add r0, r4, #0
bl MOD05_021E36A4
cmp r0, #0
beq _021E3B34
ldr r0, [r4, #0x34]
add r0, r0, #1
str r0, [r4, #0x34]
_021E3B34:
ldr r0, [r4]
asr r2, r0, #0xc
ldr r0, [r4, #0x18]
mov r4, #0xff
asr r1, r0, #0xc
ldr r0, _021E3B70 ; =0x04000040
sub r3, r4, r2
strh r3, [r0]
mov r3, #0x60
sub r3, r3, r1
lsl r3, r3, #0x18
lsr r3, r3, #0x18
strh r3, [r0, #4]
lsl r3, r2, #8
lsl r2, r4, #8
and r2, r3
orr r2, r4
add r1, #0x60
strh r2, [r0, #2]
lsl r2, r1, #8
lsl r1, r4, #8
and r2, r1
mov r1, #0xc0
orr r1, r2
strh r1, [r0, #6]
pop {r4, pc}
_021E3B68:
add r0, r4, #0
bl MOD05_021E3BA4
pop {r4, pc}
.balign 4, 0
_021E3B70: .word 0x04000040
thumb_func_start MOD05_021E3B74
MOD05_021E3B74: ; 0x021E3B74
ldr r0, _021E3B9C ; =0x04000006
ldr r1, [r1, #0x30]
ldrh r2, [r0]
cmp r2, r1
ldr r1, _021E3BA0 ; =0xFFFF1FFF
bhi _021E3B8E
sub r3, r0, #6
ldr r2, [r3]
lsr r0, r0, #0xd
and r1, r2
orr r0, r1
str r0, [r3]
bx lr
_021E3B8E:
sub r3, r0, #6
ldr r2, [r3]
lsr r0, r0, #0xc
and r1, r2
orr r0, r1
str r0, [r3]
bx lr
.balign 4, 0
_021E3B9C: .word 0x04000006
_021E3BA0: .word 0xFFFF1FFF
thumb_func_start MOD05_021E3BA4
MOD05_021E3BA4: ; 0x021E3BA4
push {r4, lr}
add r4, r0, #0
ldr r0, _021E3BF8 ; =0x04000048
mov r2, #0x3f
ldrh r3, [r0]
mov r1, #0x1f
bic r3, r2
orr r3, r1
mov r1, #0x20
orr r3, r1
strh r3, [r0]
ldrh r3, [r0, #2]
bic r3, r2
add r2, r0, #0
strh r3, [r0, #2]
mov r3, #0
sub r2, #8
strh r3, [r2]
sub r0, r0, #4
strh r3, [r0]
lsl r3, r1, #0x15
ldr r2, [r3]
ldr r0, _021E3BFC ; =0xFFFF1FFF
and r2, r0
lsl r0, r1, #8
orr r0, r2
str r0, [r3]
ldr r0, [r4, #0x44]
mov r1, #1
str r1, [r0]
ldr r0, [r4, #0x3c]
bl MOD05_021F4648
mov r0, #0
str r0, [r4, #0x3c]
ldr r0, [r4, #0x40]
bl FUN_0200CAB4
mov r0, #0
str r0, [r4, #0x40]
pop {r4, pc}
nop
_021E3BF8: .word 0x04000048
_021E3BFC: .word 0xFFFF1FFF
thumb_func_start MOD05_021E3C00
MOD05_021E3C00: ; 0x021E3C00
ldr r3, _021E3C0C ; =FUN_0200CA98
mov r2, #1
add r1, r0, #0
ldr r0, _021E3C10 ; =MOD05_021E3C14
lsl r2, r2, #0xa
bx r3
.balign 4, 0
_021E3C0C: .word FUN_0200CA98
_021E3C10: .word MOD05_021E3C14
thumb_func_start MOD05_021E3C14
MOD05_021E3C14: ; 0x021E3C14
push {r3, r4, r5, r6, lr}
sub sp, #0x64
ldr r6, _021E3D10 ; =0x021F7464
add r3, sp, #0x54
add r5, r0, #0
add r4, r1, #0
add r2, r3, #0
ldmia r6!, {r0, r1}
stmia r3!, {r0, r1}
ldmia r6!, {r0, r1}
stmia r3!, {r0, r1}
add r0, r2, #0
bl FUN_02016BBC
mov r0, #1
add r1, r0, #0
bl FUN_0201E6E4
ldr r3, _021E3D14 ; =0x021F74AC
add r2, sp, #0x38
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldr r0, [r3]
mov r1, #1
str r0, [r2]
add r0, r4, #0
bl FUN_020178A0
add r0, r4, #0
mov r1, #1
add r2, sp, #0x38
mov r3, #0
bl FUN_02016C18
mov r0, #1
mov r1, #0x20
mov r2, #0
mov r3, #4
bl FUN_02017F18
add r0, r4, #0
mov r1, #1
bl FUN_02018744
mov r0, #2
mov r1, #0
bl FUN_0201E6E4
ldr r3, _021E3D18 ; =0x021F7490
add r2, sp, #0x1c
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldr r0, [r3]
mov r1, #2
str r0, [r2]
add r0, r4, #0
bl FUN_020178A0
add r0, r4, #0
mov r1, #2
add r2, sp, #0x1c
mov r3, #0
bl FUN_02016C18
mov r0, #2
mov r1, #0x20
mov r2, #0
mov r3, #4
bl FUN_02017F18
add r0, r4, #0
mov r1, #2
bl FUN_02018744
mov r0, #4
mov r1, #1
bl FUN_0201E6E4
ldr r3, _021E3D1C ; =0x021F7474
add r2, sp, #0
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldr r0, [r3]
str r0, [r2]
add r0, r4, #0
mov r1, #3
bl FUN_020178A0
add r0, r4, #0
mov r1, #3
add r2, sp, #0
mov r3, #1
bl FUN_02016C18
mov r0, #3
mov r1, #0x20
mov r2, #0
mov r3, #4
bl FUN_02017F18
add r0, r4, #0
mov r1, #3
bl FUN_02018744
mov r0, #8
mov r1, #0
bl FUN_0201E6E4
add r0, r5, #0
bl FUN_0200CAB4
add sp, #0x64
pop {r3, r4, r5, r6, pc}
nop
_021E3D10: .word 0x021F7464
_021E3D14: .word 0x021F74AC
_021E3D18: .word 0x021F7490
_021E3D1C: .word 0x021F7474
thumb_func_start MOD05_021E3D20
MOD05_021E3D20: ; 0x021E3D20
push {r4, r5, r6, lr}
sub sp, #0x10
add r4, r3, #0
mov r3, #0
add r5, r0, #0
add r6, r1, #0
add r1, r2, #0
str r3, [sp]
mov r0, #4
str r0, [sp, #4]
mov r0, #0x70
add r2, r3, #0
bl FUN_02006930
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #4
str r0, [sp, #0xc]
mov r0, #0x70
add r1, r6, #0
add r2, r4, #0
mov r3, #3
bl FUN_0200687C
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #4
str r0, [sp, #0xc]
mov r0, #0x70
add r1, r5, #0
add r2, r4, #0
mov r3, #3
bl FUN_020068C8
add sp, #0x10
pop {r4, r5, r6, pc}
thumb_func_start MOD05_021E3D70
MOD05_021E3D70: ; 0x021E3D70
push {r3, r4, lr}
sub sp, #0xc
add r3, r1, #0
add r4, r0, #0
add r0, r3, #4
str r0, [sp]
ldr r0, [r3, #0x18]
mov r2, #0
str r0, [sp, #4]
ldr r0, [r3, #0x1c]
str r0, [sp, #8]
ldr r1, [r3, #0x14]
ldr r0, [r3]
lsl r1, r1, #0x18
ldr r3, [r3, #0x20]
lsr r1, r1, #0x18
bl FUN_02017B60
add r0, r4, #0
bl FUN_0200CAB4
add sp, #0xc
pop {r3, r4, pc}
.balign 4, 0
thumb_func_start MOD05_021E3DA0
MOD05_021E3DA0: ; 0x021E3DA0
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r0, r5, #4
add r4, r1, #0
add r6, r2, #0
add r7, r3, #0
bl MTX_Identity22_
add r0, sp, #8
ldrh r0, [r0, #0x14]
ldr r3, _021E3E0C ; =UNK_020FFA38
asr r0, r0, #4
lsl r2, r0, #1
lsl r1, r2, #1
add r2, r2, #1
lsl r2, r2, #1
ldrsh r1, [r3, r1]
ldrsh r2, [r3, r2]
add r0, r5, #4
bl MTX_Rot22_
mov r0, #1
lsl r0, r0, #0xc
add r1, r7, #0
bl FX_Div
add r7, r0, #0
mov r0, #1
ldr r1, [sp, #0x18]
lsl r0, r0, #0xc
bl FX_Div
add r3, r0, #0
add r0, r5, #4
add r1, r0, #0
add r2, r7, #0
bl MTX_ScaleApply22
str r4, [r5]
mov r2, #1
ldr r0, [sp, #0x20]
str r6, [r5, #0x14]
str r0, [r5, #0x18]
ldr r0, [sp, #0x24]
add r1, r5, #0
str r0, [r5, #0x1c]
ldr r0, [sp, #0x28]
lsl r2, r2, #0xa
str r0, [r5, #0x20]
ldr r0, _021E3E10 ; =MOD05_021E3D70
bl FUN_0200CA98
pop {r3, r4, r5, r6, r7, pc}
nop
_021E3E0C: .word UNK_020FFA38
_021E3E10: .word MOD05_021E3D70
thumb_func_start MOD05_021E3E14
MOD05_021E3E14: ; 0x021E3E14
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r6, r2, #0
add r0, r1, #0
add r1, r5, #4
mov r2, #4
bl FUN_02008C9C
mov r7, #0x4b
str r0, [r5]
mov r4, #0
lsl r7, r7, #2
_021E3E2C:
add r0, r6, #0
add r1, r4, #0
mov r2, #4
bl FUN_02008DEC
str r0, [r5, r7]
add r4, r4, #1
add r5, r5, #4
cmp r4, #4
blt _021E3E2C
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021E3E44
MOD05_021E3E44: ; 0x021E3E44
push {r4, r5, r6, lr}
add r5, r0, #0
ldr r0, [r5]
bl FUN_0201FD58
mov r6, #0x4b
mov r4, #0
lsl r6, r6, #2
_021E3E54:
ldr r0, [r5, r6]
bl FUN_02008E2C
add r4, r4, #1
add r5, r5, #4
cmp r4, #4
blt _021E3E54
pop {r4, r5, r6, pc}
thumb_func_start MOD05_021E3E64
MOD05_021E3E64: ; 0x021E3E64
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x30
ldr r6, [sp, #0x54]
add r4, r1, #0
str r6, [sp]
mov r1, #1
add r5, r0, #0
str r1, [sp, #4]
mov r0, #4
str r0, [sp, #8]
mov r0, #0x4b
str r1, [sp, #0xc]
lsl r0, r0, #2
str r2, [sp, #0x2c]
add r7, r3, #0
ldr r0, [r5, r0]
ldr r2, [sp, #0x48]
mov r1, #0x70
mov r3, #0
bl FUN_02008F90
str r0, [r4]
str r6, [sp]
mov r0, #1
str r0, [sp, #4]
str r7, [sp, #8]
mov r0, #4
str r0, [sp, #0xc]
mov r0, #0x13
lsl r0, r0, #4
ldr r0, [r5, r0]
ldr r2, [sp, #0x2c]
mov r1, #0x70
mov r3, #0
bl FUN_02008FEC
str r0, [r4, #4]
str r6, [sp]
mov r0, #2
str r0, [sp, #4]
mov r0, #4
str r0, [sp, #8]
mov r0, #0x4d
lsl r0, r0, #2
ldr r0, [r5, r0]
ldr r2, [sp, #0x4c]
mov r1, #0x70
mov r3, #0
bl FUN_020090AC
str r0, [r4, #8]
str r6, [sp]
mov r0, #3
str r0, [sp, #4]
mov r0, #4
str r0, [sp, #8]
mov r0, #0x4e
lsl r0, r0, #2
ldr r0, [r5, r0]
ldr r2, [sp, #0x50]
mov r1, #0x70
mov r3, #0
bl FUN_020090AC
str r0, [r4, #0xc]
ldr r0, [r4]
bl FUN_02009B04
ldr r0, [r4]
bl FUN_02009474
ldr r0, [r4, #4]
bl FUN_02009D68
mov r0, #0
mov r2, #0x4b
str r6, [sp]
mvn r0, r0
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0
str r0, [sp, #0xc]
str r0, [sp, #0x10]
lsl r2, r2, #2
ldr r1, [r5, r2]
add r4, #0x10
str r1, [sp, #0x14]
add r1, r2, #4
ldr r1, [r5, r1]
add r3, r6, #0
str r1, [sp, #0x18]
add r1, r2, #0
add r1, #8
ldr r1, [r5, r1]
add r2, #0xc
str r1, [sp, #0x1c]
ldr r1, [r5, r2]
add r2, r6, #0
str r1, [sp, #0x20]
str r0, [sp, #0x24]
str r0, [sp, #0x28]
add r0, r4, #0
add r1, r6, #0
bl FUN_02008AA4
add sp, #0x30
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021E3F3C
MOD05_021E3F3C: ; 0x021E3F3C
push {r3, r4, r5, r6, r7, lr}
add r4, r1, #0
add r5, r0, #0
ldr r0, [r4]
bl FUN_02009C0C
ldr r0, [r4, #4]
bl FUN_02009E04
mov r7, #0x4b
mov r6, #0
lsl r7, r7, #2
_021E3F54:
ldr r0, [r5, r7]
ldr r1, [r4]
bl FUN_02009490
add r6, r6, #1
add r4, r4, #4
add r5, r5, #4
cmp r6, #4
blt _021E3F54
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD05_021E3F68
MOD05_021E3F68: ; 0x021E3F68
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x18
add r4, r1, #0
lsl r1, r2, #0x10
add r6, r0, #0
add r0, sp, #8
lsr r1, r1, #0x10
add r7, r3, #0
bl FUN_020690AC
add r0, r4, #0
mov r1, #0x20
bl AllocFromHeap
add r1, sp, #4
add r5, r0, #0
ldrh r0, [r1, #4]
ldrh r1, [r1, #8]
add r2, sp, #4
add r3, r4, #0
bl FUN_02006C08
add r4, r0, #0
add r0, sp, #0x20
ldrh r0, [r0, #0x10]
add r1, r5, #0
mov r2, #0x10
str r0, [sp]
ldr r0, [sp, #4]
add r3, r7, #0
ldr r0, [r0, #0xc]
bl FUN_02003974
add r0, r6, #0
add r1, r5, #0
mov r2, #0x20
bl MOD05_021E40F0
add r0, r5, #0
bl FreeToHeap
add r0, r4, #0
bl FreeToHeap
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD05_021E3FC4
MOD05_021E3FC4: ; 0x021E3FC4
push {r4, lr}
sub sp, #0x20
ldr r0, [r0]
add r1, #0x10
str r0, [sp]
ldr r0, [sp, #0x28]
str r1, [sp, #4]
str r0, [sp, #0x10]
ldr r0, [sp, #0x2c]
str r2, [sp, #8]
str r0, [sp, #0x14]
mov r0, #1
str r0, [sp, #0x18]
mov r0, #4
str r0, [sp, #0x1c]
add r0, sp, #0
str r3, [sp, #0xc]
bl FUN_0201FF84
add r4, r0, #0
bne _021E3FF2
bl ErrorHandling
_021E3FF2:
add r0, r4, #0
add sp, #0x20
pop {r4, pc}
thumb_func_start MOD05_021E3FF8
MOD05_021E3FF8: ; 0x021E3FF8
push {r4}
sub sp, #0xc
str r2, [sp, #4]
str r3, [sp, #8]
add r2, sp, #0
add r4, r0, #0
str r1, [sp]
ldmia r2!, {r0, r1}
stmia r4!, {r0, r1}
ldr r0, [r2]
str r0, [r4]
add sp, #0xc
pop {r4}
bx lr
thumb_func_start MOD05_021E4014
MOD05_021E4014: ; 0x021E4014
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x20
add r4, r2, #0
add r5, r1, #0
lsl r1, r4, #0x10
add r6, r0, #0
add r0, sp, #0x10
lsr r1, r1, #0x10
add r7, r3, #0
bl FUN_020690AC
str r5, [sp]
add r1, sp, #8
ldrh r0, [r1, #8]
ldrh r1, [r1, #0xa]
mov r2, #0
add r3, sp, #0xc
bl FUN_02006BB0
str r0, [sp, #4]
ldr r0, [sp, #0xc]
ldr r0, [r0, #0x14]
bl FUN_02008A74
add r0, sp, #0x28
ldrh r0, [r0, #0x10]
add r1, r5, #0
add r2, r4, #0
str r0, [sp]
add r0, r6, #0
add r3, r7, #0
bl MOD05_021E3F68
ldr r0, [sp, #0xc]
ldr r3, [sp, #0x3c]
add r1, r5, #0
add r2, sp, #8
bl MOD05_021E4080
add r4, r0, #0
ldr r2, [sp, #8]
add r0, r6, #0
add r1, r4, #0
bl MOD05_021E4118
add r0, r4, #0
bl FreeToHeap
ldr r0, [sp, #4]
bl FreeToHeap
add sp, #0x20
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021E4080
MOD05_021E4080: ; 0x021E4080
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
str r0, [sp]
ldr r4, [r0, #0x14]
add r0, r1, #0
mov r1, #2
lsl r1, r1, #0xa
str r2, [sp, #4]
add r5, r3, #0
bl AllocFromHeap
mov ip, r0
lsl r0, r5, #2
mov r7, #0
add r6, r4, r0
_021E409E:
ldr r0, [sp]
mov r2, #0
ldrh r0, [r0, #2]
add r3, r7, #0
lsr r1, r7, #0x1f
lsl r5, r7, #0x1d
mul r3, r0
sub r5, r5, r1
mov r0, #0x1d
ror r5, r0
asr r0, r7, #2
lsr r0, r0, #0x1d
add r0, r7, r0
asr r0, r0, #3
add r1, r1, r5
lsl r0, r0, #6
add r0, r1, r0
lsl r1, r0, #2
mov r0, ip
add r4, r2, #0
add r5, r0, r1
_021E40C8:
add r0, r3, r2
lsl r0, r0, #2
ldr r1, [r6, r0]
lsl r0, r4, #2
add r2, r2, #1
add r4, #8
str r1, [r5, r0]
cmp r2, #8
blt _021E40C8
add r7, r7, #1
cmp r7, #0x40
blt _021E409E
mov r1, #2
ldr r0, [sp, #4]
lsl r1, r1, #0xa
str r1, [r0]
mov r0, ip
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021E40F0
MOD05_021E40F0: ; 0x021E40F0
push {r4, r5, r6, lr}
add r5, r1, #0
add r4, r2, #0
bl FUN_02020354
add r6, r0, #0
add r0, r5, #0
add r1, r4, #0
bl DC_FlushRange
add r0, r6, #0
mov r1, #1
bl FUN_020B19C4
add r1, r0, #0
add r0, r5, #0
add r2, r4, #0
bl GX_LoadOBJPltt
pop {r4, r5, r6, pc}
thumb_func_start MOD05_021E4118
MOD05_021E4118: ; 0x021E4118
push {r4, r5, r6, lr}
add r5, r1, #0
add r4, r2, #0
bl FUN_02020350
add r6, r0, #0
add r0, r5, #0
add r1, r4, #0
bl DC_FlushRange
add r0, r6, #0
mov r1, #1
bl FUN_020B1A14
add r1, r0, #0
add r0, r5, #0
add r2, r4, #0
bl GX_LoadOBJ
pop {r4, r5, r6, pc}
thumb_func_start MOD05_021E4140
MOD05_021E4140: ; 0x021E4140
push {r4, lr}
mov r1, #0x30
bl AllocFromHeap
mov r1, #0
mov r2, #0x30
add r4, r0, #0
bl memset
add r0, r4, #0
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021E4158
MOD05_021E4158: ; 0x021E4158
ldr r3, _021E415C ; =FreeToHeap
bx r3
.balign 4, 0
_021E415C: .word FreeToHeap
thumb_func_start MOD05_021E4160
MOD05_021E4160: ; 0x021E4160
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r0, #0x2e
ldrb r0, [r0]
add r4, r1, #0
add r6, r2, #0
add r7, r3, #0
cmp r0, #0
beq _021E4176
bl ErrorHandling
_021E4176:
ldr r3, [sp, #0x1c]
add r0, r5, #0
add r1, r4, #0
add r2, r6, #0
bl MOD05_021E35B0
add r0, r5, #0
ldr r2, [sp, #0x18]
ldr r3, [sp, #0x1c]
add r0, #0x14
add r1, r7, #0
bl MOD05_021E35B0
ldr r0, [sp, #0x20]
ldr r1, [sp, #0x24]
str r0, [r5, #0x28]
add r0, r5, #0
add r0, #0x2c
strb r1, [r0]
add r0, r5, #0
ldr r1, [sp, #0x28]
add r0, #0x2d
strb r1, [r0]
add r0, sp, #0x2c
ldrb r1, [r0]
add r0, r5, #0
add r0, #0x2f
strb r1, [r0]
mov r0, #1
add r5, #0x2e
strb r0, [r5]
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021E41B8
MOD05_021E41B8: ; 0x021E41B8
push {r4, r5, r6, lr}
sub sp, #8
add r5, r0, #0
add r1, r5, #0
add r1, #0x2e
ldrb r1, [r1]
cmp r1, #0
bne _021E41CE
add sp, #8
mov r0, #1
pop {r4, r5, r6, pc}
_021E41CE:
bl MOD05_021E35C0
add r4, r0, #0
add r0, r5, #0
add r0, #0x14
bl MOD05_021E35C0
add r0, r5, #0
add r0, #0x2c
ldrb r0, [r0]
ldr r2, [r5]
ldr r6, [r5, #0x14]
lsr r1, r0, #1
sub r1, r2, r1
lsl r1, r1, #0x10
asr r3, r1, #0x10
add r1, r5, #0
add r1, #0x2d
ldrb r2, [r1]
add r0, r3, r0
lsl r0, r0, #0x10
asr r0, r0, #0x10
lsr r1, r2, #1
str r0, [sp]
add r0, r5, #0
sub r1, r6, r1
add r0, #0x2f
lsl r1, r1, #0x10
ldrb r0, [r0]
asr r1, r1, #0x10
add r2, r1, r2
str r0, [sp, #4]
lsl r2, r2, #0x10
ldr r0, [r5, #0x28]
asr r2, r2, #0x10
bl MOD05_021E4338
add r0, r4, #0
add sp, #8
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_start MOD05_021E4220
MOD05_021E4220: ; 0x021E4220
push {r4, lr}
mov r1, #0x30
bl AllocFromHeap
mov r1, #0
mov r2, #0x30
add r4, r0, #0
bl memset
add r0, r4, #0
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021E4238
MOD05_021E4238: ; 0x021E4238
ldr r3, _021E423C ; =FreeToHeap
bx r3
.balign 4, 0
_021E423C: .word FreeToHeap
thumb_func_start MOD05_021E4240
MOD05_021E4240: ; 0x021E4240
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r0, #0x2e
ldrb r0, [r0]
add r4, r1, #0
add r6, r2, #0
add r7, r3, #0
cmp r0, #0
beq _021E4256
bl ErrorHandling
_021E4256:
ldr r3, [sp, #0x1c]
add r0, r5, #0
add r1, r4, #0
add r2, r6, #0
bl MOD05_021E35B0
add r0, r5, #0
ldr r2, [sp, #0x18]
ldr r3, [sp, #0x1c]
add r0, #0x14
add r1, r7, #0
bl MOD05_021E35B0
ldr r0, [sp, #0x20]
ldr r1, [sp, #0x24]
str r0, [r5, #0x28]
add r0, r5, #0
add r0, #0x2c
strb r1, [r0]
add r0, r5, #0
ldr r1, [sp, #0x28]
add r0, #0x2d
strb r1, [r0]
add r0, sp, #0x2c
ldrb r1, [r0]
add r0, r5, #0
add r0, #0x2f
strb r1, [r0]
mov r0, #1
add r5, #0x2e
strb r0, [r5]
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021E4298
MOD05_021E4298: ; 0x021E4298
push {r4, r5, r6, lr}
sub sp, #8
add r5, r0, #0
add r0, #0x2e
ldrb r0, [r0]
cmp r0, #0
bne _021E42AC
add sp, #8
mov r0, #1
pop {r4, r5, r6, pc}
_021E42AC:
add r0, r5, #0
add r0, #0x2c
ldrb r0, [r0]
ldr r2, [r5]
ldr r4, [r5, #0x14]
lsr r1, r0, #1
sub r1, r2, r1
lsl r1, r1, #0x10
asr r3, r1, #0x10
add r1, r5, #0
add r1, #0x2d
ldrb r2, [r1]
add r0, r3, r0
lsl r0, r0, #0x10
lsr r1, r2, #1
sub r1, r4, r1
lsl r1, r1, #0x10
asr r1, r1, #0x10
asr r0, r0, #0x10
str r0, [sp]
mov r0, #0
add r2, r1, r2
str r0, [sp, #4]
lsl r2, r2, #0x10
ldr r0, [r5, #0x28]
asr r2, r2, #0x10
bl MOD05_021E4338
add r0, r5, #0
bl MOD05_021E35C0
add r4, r0, #0
add r0, r5, #0
add r0, #0x14
bl MOD05_021E35C0
add r0, r5, #0
add r0, #0x2c
ldrb r0, [r0]
ldr r2, [r5]
ldr r6, [r5, #0x14]
lsr r1, r0, #1
sub r1, r2, r1
lsl r1, r1, #0x10
asr r3, r1, #0x10
add r1, r5, #0
add r1, #0x2d
ldrb r2, [r1]
add r0, r3, r0
lsl r0, r0, #0x10
asr r0, r0, #0x10
lsr r1, r2, #1
str r0, [sp]
add r0, r5, #0
sub r1, r6, r1
add r0, #0x2f
lsl r1, r1, #0x10
ldrb r0, [r0]
asr r1, r1, #0x10
add r2, r1, r2
str r0, [sp, #4]
lsl r2, r2, #0x10
ldr r0, [r5, #0x28]
asr r2, r2, #0x10
bl MOD05_021E4338
add r0, r4, #0
add sp, #8
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_start MOD05_021E4338
MOD05_021E4338: ; 0x021E4338
push {r3, r4, r5, lr}
sub sp, #8
ldr r5, [sp, #0x18]
add r4, r1, #0
cmp r5, #0
ble _021E4390
cmp r2, #0
ble _021E4390
cmp r3, r5
beq _021E4390
cmp r4, r2
beq _021E4390
cmp r3, #0
bge _021E4356
mov r3, #0
_021E4356:
mov r1, #1
lsl r1, r1, #8
cmp r5, r1
ble _021E4360
add r5, r1, #0
_021E4360:
cmp r4, #0
bge _021E4366
mov r4, #0
_021E4366:
mov r1, #1
lsl r1, r1, #8
cmp r2, r1
ble _021E4370
add r2, r1, #0
_021E4370:
sub r1, r5, r3
lsl r1, r1, #0x10
lsr r1, r1, #0x10
str r1, [sp]
sub r1, r2, r4
lsl r1, r1, #0x10
lsr r1, r1, #0x10
str r1, [sp, #4]
lsl r2, r3, #0x10
add r1, sp, #8
lsl r3, r4, #0x10
ldrb r1, [r1, #0x14]
lsr r2, r2, #0x10
lsr r3, r3, #0x10
bl FUN_020196F4
_021E4390:
add sp, #8
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021E4394
MOD05_021E4394: ; 0x021E4394
push {r3, r4, r5, r6, r7, lr}
add r6, r0, #0
mov r0, #4
mov r1, #0xcc
bl AllocFromHeap
mov r1, #0
mov r2, #0xcc
add r7, r0, #0
bl memset
mov r4, #0
add r5, r7, #0
_021E43AE:
add r0, r6, #0
bl MOD05_021E4220
str r0, [r5, #4]
add r4, r4, #1
add r5, r5, #4
cmp r4, #0x30
blt _021E43AE
add r0, r7, #0
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021E43C4
MOD05_021E43C4: ; 0x021E43C4
push {r4, r5, r6, lr}
add r6, r0, #0
mov r4, #0
add r5, r6, #0
_021E43CC:
ldr r0, [r5, #4]
bl MOD05_021E4238
add r4, r4, #1
add r5, r5, #4
cmp r4, #0x30
blt _021E43CC
add r0, r6, #0
bl FreeToHeap
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_start MOD05_021E43E4
MOD05_021E43E4: ; 0x021E43E4
push {r3, r4}
str r3, [r0]
ldr r3, _021E4420 ; =0xFFFFFFF8
add r3, sp
ldrb r4, [r3, #0x10]
add r3, r0, #0
add r3, #0xc9
strb r4, [r3]
add r3, r0, #0
add r3, #0xc6
strb r1, [r3]
add r1, r0, #0
add r1, #0xc7
strb r2, [r1]
add r1, r0, #0
mov r2, #0
add r1, #0xc4
strb r2, [r1]
add r1, r0, #0
add r1, #0xc5
strb r2, [r1]
add r1, r0, #0
add r1, #0xc8
strb r2, [r1]
mov r1, #1
add r0, #0xca
strb r1, [r0]
pop {r3, r4}
bx lr
nop
_021E4420: .word 0xFFFFFFF8
thumb_func_start MOD05_021E4424
MOD05_021E4424: ; 0x021E4424
push {r4, r5, r6, r7, lr}
sub sp, #0x1c
add r6, r0, #0
add r0, #0xca
ldrb r0, [r0]
cmp r0, #0
bne _021E4438
add sp, #0x1c
mov r0, #1
pop {r4, r5, r6, r7, pc}
_021E4438:
add r0, r6, #0
add r0, #0xc4
ldrb r0, [r0]
cmp r0, #0x30
bhs _021E44BC
mov r1, #0xc8
ldrsb r0, [r6, r1]
sub r2, r0, #1
add r0, r6, #0
add r0, #0xc8
strb r2, [r0]
ldrsb r0, [r6, r1]
cmp r0, #0
bgt _021E44BC
add r0, r6, #0
add r0, #0xc7
ldrb r1, [r0]
add r0, r6, #0
add r0, #0xc8
strb r1, [r0]
add r0, r6, #0
add r0, #0xc4
ldrb r0, [r0]
mov r1, #0x1d
lsr r3, r0, #0x1f
lsl r2, r0, #0x1d
sub r2, r2, r3
ror r2, r1
add r2, r3, r2
ldr r1, _021E4518 ; =0x021F745C
mov r3, #0x20
ldrb r1, [r1, r2]
lsr r2, r0, #3
lsl r4, r2, #5
mov r2, #0xb0
sub r2, r2, r4
str r2, [sp]
add r2, r6, #0
add r2, #0xc6
ldrb r2, [r2]
lsl r0, r0, #2
lsl r1, r1, #5
str r2, [sp, #4]
ldr r2, [r6]
add r0, r6, r0
str r2, [sp, #8]
str r3, [sp, #0xc]
add r2, r6, #0
str r3, [sp, #0x10]
add r2, #0xc9
ldrb r2, [r2]
sub r3, #0x30
add r1, #0x10
str r2, [sp, #0x14]
ldr r0, [r0, #4]
add r2, r1, #0
sub r3, r3, r4
bl MOD05_021E4240
add r0, r6, #0
add r0, #0xc4
ldrb r0, [r0]
add r1, r0, #1
add r0, r6, #0
add r0, #0xc4
strb r1, [r0]
_021E44BC:
add r0, r6, #0
add r0, #0xc5
ldrb r4, [r0]
add r0, r6, #0
add r0, #0xc4
ldrb r0, [r0]
cmp r4, r0
bge _021E44F4
lsl r0, r4, #2
add r7, r6, #0
add r5, r6, r0
add r7, #0xc5
_021E44D4:
ldr r0, [r5, #4]
bl MOD05_021E4298
str r0, [sp, #0x18]
cmp r0, #1
bne _021E44E6
ldrb r0, [r7]
add r0, r0, #1
strb r0, [r7]
_021E44E6:
add r0, r6, #0
add r0, #0xc4
ldrb r0, [r0]
add r4, r4, #1
add r5, r5, #4
cmp r4, r0
blt _021E44D4
_021E44F4:
add r0, r6, #0
add r0, #0xc5
ldrb r0, [r0]
cmp r0, #0x30
blo _021E4510
ldr r0, [sp, #0x18]
cmp r0, #1
bne _021E4510
mov r0, #0
add r6, #0xca
strb r0, [r6]
add sp, #0x1c
mov r0, #1
pop {r4, r5, r6, r7, pc}
_021E4510:
mov r0, #0
add sp, #0x1c
pop {r4, r5, r6, r7, pc}
nop
_021E4518: .word 0x021F745C
thumb_func_start MOD05_021E451C
MOD05_021E451C: ; 0x021E451C
push {r3, lr}
mov r1, #0x1c
bl AllocFromHeap
add r3, r0, #0
mov r2, #0x1c
mov r1, #0
_021E452A:
strb r1, [r3]
add r3, r3, #1
sub r2, r2, #1
bne _021E452A
pop {r3, pc}
thumb_func_start MOD05_021E4534
MOD05_021E4534: ; 0x021E4534
ldr r3, _021E4538 ; =FreeToHeap
bx r3
.balign 4, 0
_021E4538: .word FreeToHeap
thumb_func_start MOD05_021E453C
MOD05_021E453C: ; 0x021E453C
push {r4, lr}
add r4, r1, #0
ldr r1, [sp, #8]
str r1, [r0]
ldr r1, _021E4560 ; =0xFFFFFFF8
add r1, sp
ldrb r1, [r1, #0x14]
strb r1, [r0, #0x19]
mov r1, #1
strb r1, [r0, #0x18]
add r1, r2, #0
add r2, r3, #0
add r0, r0, #4
add r3, r4, #0
bl MOD05_021E35B0
pop {r4, pc}
nop
_021E4560: .word 0xFFFFFFF8
thumb_func_start MOD05_021E4564
MOD05_021E4564: ; 0x021E4564
push {r4, r5, r6, lr}
add r5, r0, #0
ldrb r0, [r5, #0x18]
cmp r0, #0
bne _021E4572
mov r0, #1
pop {r4, r5, r6, pc}
_021E4572:
ldr r0, [r5, #4]
lsl r0, r0, #0x10
lsr r4, r0, #0x10
add r0, r5, #4
bl MOD05_021E35C0
ldr r2, [r5, #4]
add r6, r0, #0
lsl r2, r2, #0x10
ldrb r3, [r5, #0x19]
ldr r0, [r5]
add r1, r4, #0
lsr r2, r2, #0x10
bl MOD05_021E45A0
cmp r6, #1
bne _021E459C
mov r0, #0
strb r0, [r5, #0x18]
mov r0, #1
pop {r4, r5, r6, pc}
_021E459C:
mov r0, #0
pop {r4, r5, r6, pc}
thumb_func_start MOD05_021E45A0
MOD05_021E45A0: ; 0x021E45A0
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x20
str r0, [sp, #8]
asr r0, r2, #4
add r4, r1, #0
lsl r1, r0, #1
lsl r0, r1, #1
ldr r2, _021E4680 ; =UNK_020FFA38
add r1, r1, #1
lsl r1, r1, #1
ldrsh r0, [r2, r0]
ldrsh r1, [r2, r1]
str r3, [sp, #0xc]
bl FX_Div
str r0, [sp, #0x18]
asr r0, r4, #4
lsl r1, r0, #1
lsl r0, r1, #1
ldr r2, _021E4680 ; =UNK_020FFA38
add r1, r1, #1
lsl r1, r1, #1
ldrsh r0, [r2, r0]
ldrsh r1, [r2, r1]
bl FX_Div
str r0, [sp, #0x10]
ldr r0, [sp, #0x18]
mov r5, #0
asr r0, r0, #0x1f
str r0, [sp, #0x1c]
ldr r0, [sp, #0x10]
asr r0, r0, #0x1f
str r0, [sp, #0x14]
_021E45E4:
mov r0, #0x5f
sub r0, r0, r5
lsl r6, r0, #0xc
asr r4, r6, #0x1f
ldr r0, [sp, #0x18]
ldr r1, [sp, #0x1c]
add r2, r6, #0
add r3, r4, #0
bl _ll_mul
mov r2, #2
lsl r2, r2, #0xa
add r2, r0, r2
ldr r0, _021E4684 ; =0x00000000
adc r1, r0
lsl r0, r1, #0x14
lsr r1, r2, #0xc
orr r1, r0
asr r7, r1, #0xc
ldr r0, [sp, #0x10]
ldr r1, [sp, #0x14]
add r2, r6, #0
add r3, r4, #0
bl _ll_mul
mov r2, #2
lsl r2, r2, #0xa
add r2, r0, r2
ldr r0, _021E4684 ; =0x00000000
adc r1, r0
lsl r0, r1, #0x14
lsr r1, r2, #0xc
orr r1, r0
asr r0, r1, #0xc
mov r1, #0x80
add r4, r7, #0
add r6, r0, #0
mov r2, #0x80
sub r0, r2, r0
sub r1, r1, r7
add r4, #0x80
add r6, #0x80
add r3, r0, #0
cmp r0, r1
ble _021E4642
add r3, r1, #0
add r1, r0, #0
_021E4642:
cmp r6, r4
ble _021E464C
add r0, r6, #0
add r6, r4, #0
add r4, r0, #0
_021E464C:
add r0, r1, #1
str r0, [sp]
ldr r0, [sp, #0xc]
add r1, r5, #0
str r0, [sp, #4]
ldr r0, [sp, #8]
add r2, r5, #1
bl MOD05_021E4338
add r0, r4, #1
str r0, [sp]
ldr r0, [sp, #0xc]
mov r1, #0xbf
str r0, [sp, #4]
mov r2, #0xc0
ldr r0, [sp, #8]
sub r1, r1, r5
sub r2, r2, r5
add r3, r6, #0
bl MOD05_021E4338
add r5, r5, #1
cmp r5, #0x60
blt _021E45E4
add sp, #0x20
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_021E4680: .word UNK_020FFA38
_021E4684: .word 0x00000000
thumb_func_start MOD05_021E4688
MOD05_021E4688: ; 0x021E4688
push {r3, r4, r5, r6, r7, lr}
mov r1, #0x24
add r6, r0, #0
bl AllocFromHeap
mov r1, #0
mov r2, #0x24
add r7, r0, #0
bl memset
mov r4, #0
add r5, r7, #0
_021E46A0:
add r0, r6, #0
bl MOD05_021E451C
add r4, r4, #1
stmia r5!, {r0}
cmp r4, #8
blt _021E46A0
add r0, r7, #0
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021E46B4
MOD05_021E46B4: ; 0x021E46B4
push {r4, r5, r6, lr}
add r6, r0, #0
mov r4, #0
add r5, r6, #0
_021E46BC:
ldr r0, [r5]
bl MOD05_021E4534
add r4, r4, #1
add r5, r5, #4
cmp r4, #8
blt _021E46BC
add r0, r6, #0
bl FreeToHeap
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_start MOD05_021E46D4
MOD05_021E46D4: ; 0x021E46D4
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x18
str r1, [sp, #0xc]
ldr r4, _021E474C ; =0x021F74C8
str r0, [sp, #8]
str r2, [sp, #0x10]
str r3, [sp, #0x14]
mov r6, #0
add r5, r0, #0
_021E46E6:
ldrh r1, [r4]
ldr r0, _021E4750 ; =0x0000FFFF
mul r0, r1
mov r1, #0x5a
lsl r1, r1, #2
bl _s32_div_f
add r7, r0, #0
ldrh r1, [r4, #2]
ldr r0, _021E4750 ; =0x0000FFFF
mul r0, r1
mov r1, #0x5a
lsl r1, r1, #2
bl _s32_div_f
add r3, r0, #0
ldr r0, [sp, #0x10]
lsl r2, r7, #0x10
str r0, [sp]
ldr r0, [sp, #0x14]
lsl r3, r3, #0x10
str r0, [sp, #4]
ldr r0, [r5]
ldr r1, [sp, #0xc]
lsr r2, r2, #0x10
lsr r3, r3, #0x10
bl MOD05_021E453C
add r6, r6, #1
add r4, r4, #4
add r5, r5, #4
cmp r6, #8
blt _021E46E6
ldr r0, [sp, #8]
mov r1, #1
add r0, #0x20
strb r1, [r0]
add r1, #0xff
str r1, [sp]
str r0, [sp, #8]
ldr r0, [sp, #0x14]
mov r1, #0x5d
str r0, [sp, #4]
ldr r0, [sp, #0x10]
mov r2, #0x63
mov r3, #0
bl MOD05_021E4338
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
nop
_021E474C: .word 0x021F74C8
_021E4750: .word 0x0000FFFF
thumb_func_start MOD05_021E4754
MOD05_021E4754: ; 0x021E4754
push {r4, r5, r6, lr}
add r6, r0, #0
add r0, #0x20
ldrb r0, [r0]
cmp r0, #0
bne _021E4764
mov r0, #1
pop {r4, r5, r6, pc}
_021E4764:
mov r4, #0
add r5, r6, #0
_021E4768:
ldr r0, [r5]
bl MOD05_021E4564
add r4, r4, #1
add r5, r5, #4
cmp r4, #8
blt _021E4768
cmp r0, #1
bne _021E4784
mov r0, #0
add r6, #0x20
strb r0, [r6]
mov r0, #1
pop {r4, r5, r6, pc}
_021E4784:
mov r0, #0
pop {r4, r5, r6, pc}
thumb_func_start MOD05_021E4788
MOD05_021E4788: ; 0x021E4788
push {r4, lr}
mov r0, #4
mov r1, #0xe8
bl AllocFromHeap
mov r1, #0
mov r2, #0xe8
add r4, r0, #0
bl memset
add r0, r4, #0
pop {r4, pc}
thumb_func_start MOD05_021E47A0
MOD05_021E47A0: ; 0x021E47A0
push {r4, lr}
add r4, r0, #0
add r1, r4, #0
add r1, #0xe0
ldr r1, [r1]
cmp r1, #0
beq _021E47B2
bl MOD05_021E4918
_021E47B2:
add r0, r4, #0
bl FreeToHeap
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021E47BC
MOD05_021E47BC: ; 0x021E47BC
push {r3, r4, r5, r6, r7, lr}
add r4, r0, #0
ldr r0, [sp, #0x18]
add r6, r1, #0
str r0, [sp, #0x18]
add r0, r6, #0
add r0, #0xe0
ldr r0, [r0]
add r7, r2, #0
add r5, r3, #0
cmp r0, #0
beq _021E47D8
bl ErrorHandling
_021E47D8:
mov r1, #0
str r1, [r4, #0x18]
ldr r0, [r4, #0x10]
add r4, #0x18
ldr r0, [r0, #4]
add r3, r7, #0
ldr r2, [r0, #0x1c]
add r0, r6, #0
add r0, #0xd8
str r2, [r0]
add r0, r6, #0
str r1, [r6, #0x14]
add r0, #0xe4
str r4, [r0]
add r0, r6, #0
mov r2, #0xff
bl MOD05_021E35B0
mov r4, #0
_021E47FE:
add r0, r4, #0
add r1, r5, #0
bl _u32_div_f
ldr r0, [sp, #0x18]
mul r0, r1
add r1, r5, #0
bl _u32_div_f
add r7, r0, #0
add r0, r4, #0
add r1, r5, #0
bl _u32_div_f
mov r1, #1
tst r0, r1
bne _021E4826
add r0, r6, r4
strb r7, [r0, #0x18]
b _021E482E
_021E4826:
ldr r0, [sp, #0x18]
sub r1, r0, r7
add r0, r6, r4
strb r1, [r0, #0x18]
_021E482E:
add r4, r4, #1
cmp r4, #0xc0
blt _021E47FE
ldr r0, _021E4878 ; =0x04000048
mov r1, #0x3f
ldrh r3, [r0]
ldr r2, [sp, #0x1c]
bic r3, r1
orr r3, r2
mov r2, #0x20
orr r3, r2
strh r3, [r0]
ldrh r3, [r0, #2]
bic r3, r1
ldr r1, [sp, #0x20]
orr r1, r3
strh r1, [r0, #2]
add r1, r0, #0
mov r3, #0
sub r1, #8
strh r3, [r1]
mov r1, #0xc0
sub r0, r0, #4
strh r1, [r0]
lsl r3, r2, #0x15
ldr r1, [r3]
ldr r0, _021E487C ; =0xFFFF1FFF
and r1, r0
lsl r0, r2, #8
orr r0, r1
str r0, [r3]
ldr r0, _021E4880 ; =MOD05_021E4884
add r1, r6, #0
lsl r2, r2, #5
bl FUN_0200CA98
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_021E4878: .word 0x04000048
_021E487C: .word 0xFFFF1FFF
_021E4880: .word MOD05_021E4884
thumb_func_start MOD05_021E4884
MOD05_021E4884: ; 0x021E4884
push {r3, r4, r5, lr}
add r4, r1, #0
add r5, r0, #0
add r0, r4, #0
add r0, #0xd8
ldr r0, [r0]
ldr r1, _021E48B8 ; =MOD05_021E48EC
add r2, r4, #0
bl MOD05_021F4624
add r1, r4, #0
add r1, #0xdc
str r0, [r1]
mov r2, #1
ldr r0, _021E48BC ; =MOD05_021E48C0
add r1, r4, #0
lsl r2, r2, #0xa
bl FUN_0200CA98
add r4, #0xe0
str r0, [r4]
add r0, r5, #0
bl FUN_0200CAB4
pop {r3, r4, r5, pc}
nop
_021E48B8: .word MOD05_021E48EC
_021E48BC: .word MOD05_021E48C0
thumb_func_start MOD05_021E48C0
MOD05_021E48C0: ; 0x021E48C0
push {r4, lr}
add r4, r1, #0
ldr r0, [r4, #0x14]
cmp r0, #0
beq _021E48D0
cmp r0, #1
beq _021E48E2
pop {r4, pc}
_021E48D0:
add r0, r4, #0
bl MOD05_021E35C0
cmp r0, #1
bne _021E48E8
ldr r0, [r4, #0x14]
add r0, r0, #1
str r0, [r4, #0x14]
pop {r4, pc}
_021E48E2:
add r0, r4, #0
bl MOD05_021E4918
_021E48E8:
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021E48EC
MOD05_021E48EC: ; 0x021E48EC
ldr r0, _021E4910 ; =0x04000006
ldrh r0, [r0]
cmp r0, #0xc0
bge _021E490E
add r0, r1, r0
ldrb r0, [r0, #0x18]
ldr r2, [r1]
add r0, r2, r0
cmp r0, #0xff
ble _021E4902
mov r0, #0xff
_021E4902:
lsl r0, r0, #0x18
ldr r1, _021E4914 ; =0x04000040
lsr r0, r0, #0x18
strh r0, [r1]
mov r0, #0xc0
strh r0, [r1, #4]
_021E490E:
bx lr
.balign 4, 0
_021E4910: .word 0x04000006
_021E4914: .word 0x04000040
thumb_func_start MOD05_021E4918
MOD05_021E4918: ; 0x021E4918
push {r4, lr}
mov r2, #1
lsl r2, r2, #0x1a
add r4, r0, #0
ldr r1, [r2]
ldr r0, _021E4958 ; =0xFFFF1FFF
and r0, r1
str r0, [r2]
add r0, r4, #0
add r0, #0xe4
ldr r0, [r0]
mov r1, #1
str r1, [r0]
add r0, r4, #0
add r0, #0xdc
ldr r0, [r0]
bl MOD05_021F4648
add r0, r4, #0
mov r1, #0
add r0, #0xdc
str r1, [r0]
add r0, r4, #0
add r0, #0xe0
ldr r0, [r0]
bl FUN_0200CAB4
mov r0, #0
add r4, #0xe0
str r0, [r4]
pop {r4, pc}
nop
_021E4958: .word 0xFFFF1FFF
thumb_func_start MOD05_021E495C
MOD05_021E495C: ; 0x021E495C
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
ldr r0, [r5]
mov r6, #1
add r1, r0, #0
tst r1, r6
bne _021E4980
mov r1, #0x72
lsl r1, r1, #4
tst r1, r0
bne _021E4976
cmp r0, #0
bne _021E497A
_021E4976:
mov r6, #0
b _021E4980
_021E497A:
bl ErrorHandling
mov r6, #0
_021E4980:
ldr r0, [r5, #4]
bl FUN_0204A1D8
add r7, r0, #0
ldr r0, [r5, #8]
bl FUN_0204A1D8
str r0, [sp]
add r0, r7, #0
mov r1, #0xa0
mov r2, #0
bl FUN_020671BC
add r7, r0, #0
ldr r0, [sp]
mov r1, #0xa0
mov r2, #0
bl FUN_020671BC
mov r1, #0x55
lsl r1, r1, #2
ldr r1, [r5, r1]
sub r0, r0, r7
cmp r1, #0xc
bhi _021E49E2
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021E49BE: ; jump table
.short _021E49D8 - _021E49BE - 2 ; case 0
.short _021E49D8 - _021E49BE - 2 ; case 1
.short _021E49D8 - _021E49BE - 2 ; case 2
.short _021E49D8 - _021E49BE - 2 ; case 3
.short _021E49D8 - _021E49BE - 2 ; case 4
.short _021E49E0 - _021E49BE - 2 ; case 5
.short _021E49D8 - _021E49BE - 2 ; case 6
.short _021E49DC - _021E49BE - 2 ; case 7
.short _021E49D8 - _021E49BE - 2 ; case 8
.short _021E49D8 - _021E49BE - 2 ; case 9
.short _021E49D8 - _021E49BE - 2 ; case 10
.short _021E49D8 - _021E49BE - 2 ; case 11
.short _021E49D8 - _021E49BE - 2 ; case 12
_021E49D8:
mov r4, #0
b _021E49E2
_021E49DC:
mov r4, #2
b _021E49E2
_021E49E0:
mov r4, #4
_021E49E2:
cmp r0, #0
ble _021E49E8
add r4, r4, #1
_021E49E8:
mov r0, #6
mul r0, r6
add r0, r4, r0
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD05_021E49F0
MOD05_021E49F0: ; 0x021E49F0
push {r4, r5, r6, lr}
ldr r4, [sp, #0x14]
add r5, r0, #0
mov r0, #0
strb r0, [r4]
mov r0, #0xff
strb r0, [r4, #1]
lsl r0, r3, #0xc
add r6, r1, #0
asr r1, r0, #0x1f
asr r3, r2, #0x1f
bl _ll_mul
mov r2, #2
add r3, r0, #0
asr r0, r5, #0xc
mov r5, #0
lsl r2, r2, #0xa
add r3, r3, r2
adc r1, r5
lsl r1, r1, #0x14
lsr r3, r3, #0xc
orr r3, r1
asr r3, r3, #0xc
lsr r1, r3, #0x1f
add r1, r3, r1
asr r1, r1, #1
sub r0, r0, r1
strb r0, [r4, #2]
ldr r0, _021E4A38 ; =MOD05_021E4A64
add r1, r4, #0
lsr r2, r2, #1
strb r6, [r4, #3]
bl FUN_0200CA98
pop {r4, r5, r6, pc}
.balign 4, 0
_021E4A38: .word MOD05_021E4A64
thumb_func_start MOD05_021E4A3C
MOD05_021E4A3C: ; 0x021E4A3C
push {r3, r4, r5, lr}
add r5, r0, #0
lsl r0, r2, #0xc
add r4, r1, #0
asr r1, r0, #0x1f
asr r3, r5, #0x1f
add r2, r5, #0
bl _ll_mul
mov r2, #2
mov r3, #0
lsl r2, r2, #0xa
add r2, r0, r2
adc r1, r3
lsl r0, r1, #0x14
lsr r1, r2, #0xc
orr r1, r0
asr r0, r1, #0xc
add r0, r4, r0
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021E4A64
MOD05_021E4A64: ; 0x021E4A64
push {r3, r4, r5, lr}
ldrb r2, [r1, #4]
ldrb r3, [r1, #3]
cmp r2, #0
bne _021E4A8C
ldrb r4, [r1]
ldrb r2, [r1, #2]
ldrb r1, [r1, #1]
lsl r5, r4, #8
mov r4, #0xff
lsl r4, r4, #8
and r5, r4
orr r5, r1
ldr r1, _021E4AB0 ; =0x04000040
lsl r2, r2, #8
and r2, r4
strh r5, [r1]
orr r2, r3
strh r2, [r1, #4]
b _021E4AA8
_021E4A8C:
ldrb r4, [r1]
ldrb r2, [r1, #2]
ldrb r1, [r1, #1]
lsl r5, r4, #8
mov r4, #0xff
lsl r4, r4, #8
and r5, r4
orr r5, r1
ldr r1, _021E4AB4 ; =0x04000042
lsl r2, r2, #8
and r2, r4
strh r5, [r1]
orr r2, r3
strh r2, [r1, #4]
_021E4AA8:
bl FUN_0200CAB4
pop {r3, r4, r5, pc}
nop
_021E4AB0: .word 0x04000040
_021E4AB4: .word 0x04000042
thumb_func_start MOD05_021E4AB8
MOD05_021E4AB8: ; 0x021E4AB8
push {r4, lr}
add r4, r0, #0
ldr r0, _021E4ACC ; =0x0400006C
ldr r1, [r1]
bl GXx_SetMasterBrightness_
add r0, r4, #0
bl FUN_0200CAB4
pop {r4, pc}
.balign 4, 0
_021E4ACC: .word 0x0400006C
thumb_func_start MOD05_021E4AD0
MOD05_021E4AD0: ; 0x021E4AD0
ldr r3, _021E4ADC ; =FUN_0200CA98
mov r2, #1
add r1, r0, #0
ldr r0, _021E4AE0 ; =MOD05_021E4AB8
lsl r2, r2, #0xa
bx r3
.balign 4, 0
_021E4ADC: .word FUN_0200CA98
_021E4AE0: .word MOD05_021E4AB8
thumb_func_start MOD05_021E4AE4
MOD05_021E4AE4: ; 0x021E4AE4
push {r3, r4, r5, r6, r7, lr}
add r7, r0, #0
add r5, r1, #0
str r2, [sp]
add r0, r2, #0
add r2, r3, #0
mov r1, #0x42
mov r3, #0
bl MOD05_021F5990
mov r1, #0x2c
mov r2, #0
add r6, r0, #0
bl MOD05_021F5A20
mov r1, #0
mov r2, #0x2c
add r4, r0, #0
bl memset
ldr r0, [sp]
lsl r1, r5, #3
str r0, [r4]
mov r0, #0x42
str r0, [r4, #4]
str r5, [r4, #8]
str r6, [r4, #0x14]
str r7, [r4, #0x18]
add r0, r6, #0
mov r2, #0
bl MOD05_021F5A20
str r0, [r4, #0x1c]
add r0, r4, #0
bl MOD05_021E4C80
add r0, r4, #0
bl MOD05_021E4C34
add r0, r4, #0
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021E4B38
MOD05_021E4B38: ; 0x021E4B38
ldr r3, _021E4B40 ; =MOD05_021E4D90
str r1, [r0, #0xc]
bx r3
nop
_021E4B40: .word MOD05_021E4D90
thumb_func_start MOD05_021E4B44
MOD05_021E4B44: ; 0x021E4B44
push {r3, r4, lr}
sub sp, #0x14
ldr r4, [sp, #0x20]
str r4, [sp]
ldr r4, [sp, #0x24]
str r4, [sp, #4]
ldr r4, [sp, #0x28]
str r4, [sp, #8]
ldr r4, [sp, #0x2c]
str r4, [sp, #0xc]
ldr r4, [sp, #0x30]
str r4, [sp, #0x10]
bl MOD05_021E4DEC
add sp, #0x14
pop {r3, r4, pc}
thumb_func_start MOD05_021E4B64
MOD05_021E4B64: ; 0x021E4B64
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
bl MOD05_021E4D2C
cmp r0, #0
beq _021E4B78
bl ErrorHandling
pop {r3, r4, r5, pc}
_021E4B78:
add r0, r5, #0
add r1, r4, #0
bl MOD05_021E4C98
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021E4B84
MOD05_021E4B84: ; 0x021E4B84
push {r3, r4, r5, lr}
add r4, r1, #0
ldr r1, [r4]
add r5, r0, #0
cmp r1, #0x20
beq _021E4B9E
_021E4B90:
add r0, r5, #0
bl MOD05_021E4B64
add r4, r4, #4
ldr r1, [r4]
cmp r1, #0x20
bne _021E4B90
_021E4B9E:
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021E4BA0
MOD05_021E4BA0: ; 0x021E4BA0
ldr r3, _021E4BA4 ; =MOD05_021E4DB4
bx r3
.balign 4, 0
_021E4BA4: .word MOD05_021E4DB4
thumb_func_start MOD05_021E4BA8
MOD05_021E4BA8: ; 0x021E4BA8
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r4, [r5, #0x14]
bl MOD05_021E4DA0
add r0, r5, #0
bl MOD05_021E4CDC
add r0, r5, #0
bl MOD05_021E4E5C
add r0, r5, #0
bl MOD05_021E4C48
ldr r1, [r5, #0x1c]
add r0, r4, #0
bl MOD05_021F5A5C
add r0, r4, #0
add r1, r5, #0
bl MOD05_021F5A5C
add r0, r4, #0
bl MOD05_021F59EC
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021E4BDC
MOD05_021E4BDC: ; 0x021E4BDC
ldr r3, _021E4BE4 ; =MOD05_021F5A20
ldr r0, [r0, #0x14]
bx r3
nop
_021E4BE4: .word MOD05_021F5A20
thumb_func_start MOD05_021E4BE8
MOD05_021E4BE8: ; 0x021E4BE8
push {r4, r5, r6, lr}
add r5, r1, #0
add r4, r3, #0
bl MOD05_021E4BDC
add r1, r4, #0
add r2, r5, #0
add r6, r0, #0
bl memset
add r0, r6, #0
pop {r4, r5, r6, pc}
thumb_func_start MOD05_021E4C00
MOD05_021E4C00: ; 0x021E4C00
ldr r3, _021E4C04 ; =FreeToHeap
bx r3
.balign 4, 0
_021E4C04: .word FreeToHeap
thumb_func_start MOD05_021E4C08
MOD05_021E4C08: ; 0x021E4C08
push {r3, lr}
bl MOD05_021E4D2C
cmp r0, #0
bne _021E4C1A
bl ErrorHandling
mov r0, #0
pop {r3, pc}
_021E4C1A:
ldr r0, [r0, #4]
pop {r3, pc}
.balign 4, 0
thumb_func_start MOD05_021E4C20
MOD05_021E4C20: ; 0x021E4C20
ldr r0, [r0, #0x18]
bx lr
thumb_func_start MOD05_021E4C24
MOD05_021E4C24: ; 0x021E4C24
push {r3, lr}
bl FUN_02058738
ldr r0, [r0, #0x3c]
pop {r3, pc}
.balign 4, 0
thumb_func_start MOD05_021E4C30
MOD05_021E4C30: ; 0x021E4C30
ldr r0, [r0, #4]
bx lr
thumb_func_start MOD05_021E4C34
MOD05_021E4C34: ; 0x021E4C34
push {r4, lr}
add r4, r0, #0
bl MOD05_021E4C30
add r1, r0, #0
mov r0, #0x6b
bl NARC_ctor
str r0, [r4, #0x20]
pop {r4, pc}
thumb_func_start MOD05_021E4C48
MOD05_021E4C48: ; 0x021E4C48
ldr r3, _021E4C50 ; =NARC_dtor
ldr r0, [r0, #0x20]
bx r3
nop
_021E4C50: .word NARC_dtor
thumb_func_start MOD05_021E4C54
MOD05_021E4C54: ; 0x021E4C54
ldr r3, _021E4C5C ; =NARC_GetMemberSize
ldr r0, [r0, #0x20]
bx r3
nop
_021E4C5C: .word NARC_GetMemberSize
thumb_func_start MOD05_021E4C60
MOD05_021E4C60: ; 0x021E4C60
ldr r3, _021E4C68 ; =NARC_ReadWholeMember
ldr r0, [r0, #0x20]
bx r3
nop
_021E4C68: .word NARC_ReadWholeMember
thumb_func_start MOD05_021E4C6C
MOD05_021E4C6C: ; 0x021E4C6C
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
add r3, r2, #0
ldr r0, [r5, #0x14]
ldr r1, [r5, #0x20]
add r2, r4, #0
bl MOD05_021F5AB8
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021E4C80
MOD05_021E4C80: ; 0x021E4C80
push {r3, r4, r5, lr}
ldr r4, [r0, #8]
ldr r5, [r0, #0x1c]
cmp r4, #0
beq _021E4C96
_021E4C8A:
add r0, r5, #0
bl MOD05_021E4D44
add r5, #8
sub r4, r4, #1
bne _021E4C8A
_021E4C96:
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021E4C98
MOD05_021E4C98: ; 0x021E4C98
push {r4, r5, r6, lr}
add r6, r1, #0
add r5, r0, #0
add r0, r6, #0
bl MOD05_021E4D68
add r1, r0, #0
ldr r1, [r1, #4]
add r0, r5, #0
blx r1
add r4, r0, #0
add r0, r5, #0
bl MOD05_021E4D04
add r1, r6, #0
add r2, r4, #0
bl MOD05_021E4D50
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_start MOD05_021E4CC0
MOD05_021E4CC0: ; 0x021E4CC0
push {r4, lr}
add r4, r1, #0
ldr r0, [r4]
bl MOD05_021E4D68
add r1, r0, #0
ldr r0, [r4, #4]
ldr r1, [r1, #8]
blx r1
add r0, r4, #0
bl MOD05_021E4D44
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021E4CDC
MOD05_021E4CDC: ; 0x021E4CDC
push {r4, r5, r6, lr}
add r6, r0, #0
ldr r4, [r6, #8]
ldr r5, [r6, #0x1c]
cmp r4, #0
beq _021E4D00
_021E4CE8:
add r0, r5, #0
bl MOD05_021E4D58
cmp r0, #0
bne _021E4CFA
add r0, r6, #0
add r1, r5, #0
bl MOD05_021E4CC0
_021E4CFA:
add r5, #8
sub r4, r4, #1
bne _021E4CE8
_021E4D00:
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_start MOD05_021E4D04
MOD05_021E4D04: ; 0x021E4D04
push {r3, r4, r5, lr}
ldr r4, [r0, #8]
ldr r5, [r0, #0x1c]
cmp r4, #0
beq _021E4D22
_021E4D0E:
add r0, r5, #0
bl MOD05_021E4D58
cmp r0, #1
bne _021E4D1C
add r0, r5, #0
pop {r3, r4, r5, pc}
_021E4D1C:
add r5, #8
sub r4, r4, #1
bne _021E4D0E
_021E4D22:
bl ErrorHandling
mov r0, #0
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021E4D2C
MOD05_021E4D2C: ; 0x021E4D2C
ldr r3, [r0, #8]
ldr r0, [r0, #0x1c]
cmp r3, #0
beq _021E4D40
_021E4D34:
ldr r2, [r0]
cmp r2, r1
beq _021E4D42
add r0, #8
sub r3, r3, #1
bne _021E4D34
_021E4D40:
mov r0, #0
_021E4D42:
bx lr
thumb_func_start MOD05_021E4D44
MOD05_021E4D44: ; 0x021E4D44
mov r1, #0x20
str r1, [r0]
mov r1, #0
str r1, [r0, #4]
bx lr
.balign 4, 0
thumb_func_start MOD05_021E4D50
MOD05_021E4D50: ; 0x021E4D50
str r1, [r0]
str r2, [r0, #4]
bx lr
.balign 4, 0
thumb_func_start MOD05_021E4D58
MOD05_021E4D58: ; 0x021E4D58
ldr r0, [r0]
cmp r0, #0x20
bne _021E4D62
mov r0, #1
bx lr
_021E4D62:
mov r0, #0
bx lr
.balign 4, 0
thumb_func_start MOD05_021E4D68
MOD05_021E4D68: ; 0x021E4D68
push {r3, lr}
ldr r1, _021E4D8C ; =0x021FC820
ldr r2, [r1]
cmp r2, #0x20
beq _021E4D82
_021E4D72:
cmp r2, r0
bne _021E4D7A
add r0, r1, #0
pop {r3, pc}
_021E4D7A:
add r1, #0xc
ldr r2, [r1]
cmp r2, #0x20
bne _021E4D72
_021E4D82:
bl ErrorHandling
mov r0, #0
pop {r3, pc}
nop
_021E4D8C: .word 0x021FC820
thumb_func_start MOD05_021E4D90
MOD05_021E4D90: ; 0x021E4D90
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #4]
ldr r1, [r4, #0xc]
bl FUN_020643C0
str r0, [r4, #0x24]
pop {r4, pc}
thumb_func_start MOD05_021E4DA0
MOD05_021E4DA0: ; 0x021E4DA0
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0x24]
cmp r0, #0
beq _021E4DB2
bl FUN_020643F0
mov r0, #0
str r0, [r4, #0x24]
_021E4DB2:
pop {r4, pc}
thumb_func_start MOD05_021E4DB4
MOD05_021E4DB4: ; 0x021E4DB4
push {r3, lr}
ldr r0, [r0, #0x24]
cmp r0, #0
beq _021E4DC0
bl FUN_02064584
_021E4DC0:
pop {r3, pc}
.balign 4, 0
thumb_func_start MOD05_021E4DC4
MOD05_021E4DC4: ; 0x021E4DC4
push {r4, lr}
sub sp, #8
ldr r4, [sp, #0x10]
str r4, [sp]
ldr r4, [sp, #0x14]
str r4, [sp, #4]
ldr r0, [r0, #0x24]
bl FUN_020644E4
add r4, r0, #0
bne _021E4DDE
bl ErrorHandling
_021E4DDE:
add r0, r4, #0
add sp, #8
pop {r4, pc}
thumb_func_start MOD05_021E4DE4
MOD05_021E4DE4: ; 0x021E4DE4
ldr r3, _021E4DE8 ; =FUN_02064520
bx r3
.balign 4, 0
_021E4DE8: .word FUN_02064520
thumb_func_start MOD05_021E4DEC
MOD05_021E4DEC: ; 0x021E4DEC
push {r4, r5, r6, r7, lr}
sub sp, #0xc
add r6, r2, #0
add r5, r1, #0
mov r2, #0
str r3, [sp]
mov r1, #0x24
add r3, r2, #0
add r7, r0, #0
bl MOD05_021E4BE8
add r4, r0, #0
str r4, [r7, #0x28]
str r5, [r4]
ldr r0, [sp]
strh r6, [r4, #4]
strh r0, [r4, #6]
ldr r0, [sp, #0x20]
ldr r2, [sp, #0x28]
strh r0, [r4, #8]
ldr r0, [sp, #0x24]
ldr r3, [sp]
strh r0, [r4, #0xa]
add r0, r5, #0
mov r1, #0x45
bl MOD05_021F5990
str r0, [r4, #0x10]
ldr r2, [sp, #0x2c]
ldr r3, [sp, #0x20]
add r0, r5, #0
mov r1, #0x46
bl MOD05_021F5990
str r0, [r4, #0x14]
ldr r0, [sp, #0x24]
add r1, r5, #0
bl FUN_02020E90
str r0, [r4, #0x18]
add r0, r7, #0
add r1, r4, #0
add r2, r6, #0
bl MOD05_021E4F60
add r0, r7, #0
str r6, [sp, #4]
bl MOD05_021E4C30
str r0, [sp, #8]
add r0, sp, #4
bl FUN_0201F1B4
str r0, [r4, #0xc]
add sp, #0xc
pop {r4, r5, r6, r7, pc}
thumb_func_start MOD05_021E4E5C
MOD05_021E4E5C: ; 0x021E4E5C
push {r3, r4, r5, lr}
add r4, r0, #0
ldr r5, [r4, #0x28]
cmp r5, #0
beq _021E4E8E
ldr r0, [r5, #0xc]
bl FUN_0201F23C
add r0, r5, #0
bl MOD05_021E4F94
ldr r0, [r5, #0x10]
bl MOD05_021F59EC
ldr r0, [r5, #0x14]
bl MOD05_021F59EC
ldr r0, [r5, #0x18]
bl FUN_02020ED4
add r0, r5, #0
bl MOD05_021E4C00
mov r0, #0
str r0, [r4, #0x28]
_021E4E8E:
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021E4E90
MOD05_021E4E90: ; 0x021E4E90
push {r4, lr}
sub sp, #0x20
ldr r0, [r0, #0x28]
add r3, sp, #8
ldr r0, [r0, #0xc]
str r0, [sp]
str r1, [sp, #4]
ldmia r2!, {r0, r1}
stmia r3!, {r0, r1}
ldr r0, [r2]
add r2, sp, #0x14
str r0, [r3]
ldr r3, _021E4EE0 ; =0x021F7564
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldr r0, [r3]
str r0, [r2]
add r0, sp, #0
bl FUN_0201F6E8
add r4, r0, #0
bne _021E4EC0
bl ErrorHandling
_021E4EC0:
cmp r4, #0
beq _021E4EDA
add r0, r4, #0
bl FUN_0201F8E0
mov r1, #1
bl FUN_020BB9F4
add r0, r4, #0
bl FUN_0201F8E0
bl MOD05_021DB5EC
_021E4EDA:
add r0, r4, #0
add sp, #0x20
pop {r4, pc}
.balign 4, 0
_021E4EE0: .word 0x021F7564
thumb_func_start MOD05_021E4EE4
MOD05_021E4EE4: ; 0x021E4EE4
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r0, [r5, #0x28]
add r4, r2, #0
bl MOD05_021E504C
add r1, r0, #0
add r0, r5, #0
add r2, r4, #0
bl MOD05_021E4E90
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021E4EFC
MOD05_021E4EFC: ; 0x021E4EFC
push {r4, r5, r6, r7, lr}
sub sp, #0x1c
ldr r5, [r0, #0x28]
add r6, r1, #0
ldr r0, [r5, #0x10]
add r1, r2, #0
add r4, r3, #0
bl MOD05_021F5A90
add r7, r0, #0
ldr r0, [r5, #0x14]
add r1, r4, #0
bl MOD05_021F5A90
add r1, sp, #0xc
bl FUN_0202227C
ldr r0, [r5, #0x18]
ldr r1, [sp, #0x30]
bl FUN_02021050
add r4, r0, #0
bne _021E4F2E
bl ErrorHandling
_021E4F2E:
add r0, r4, #0
bl FUN_020210AC
ldr r1, [sp, #0x34]
cmp r1, #1
bne _021E4F3C
mov r4, #0
_021E4F3C:
str r0, [sp]
ldr r0, [sp, #0x38]
str r4, [sp, #4]
str r0, [sp, #8]
add r0, r5, #0
add r1, r6, #0
add r2, r7, #0
add r3, sp, #0xc
bl MOD05_021E4FC8
add r4, r0, #0
bne _021E4F58
bl ErrorHandling
_021E4F58:
add r0, r4, #0
add sp, #0x1c
pop {r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021E4F60
MOD05_021E4F60: ; 0x021E4F60
push {r3, r4, r5, r6, r7, lr}
add r6, r1, #0
add r5, r2, #0
mov r1, #0x28
add r7, r0, #0
mul r1, r5
mov r2, #0
bl MOD05_021E4BDC
add r4, r0, #0
add r0, r7, #0
lsl r1, r5, #3
mov r2, #0
str r4, [r6, #0x20]
bl MOD05_021E4BDC
str r0, [r6, #0x1c]
mov r1, #0xe
_021E4F84:
str r1, [r0]
str r4, [r0, #4]
add r0, #8
add r4, #0x28
sub r5, r5, #1
bne _021E4F84
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021E4F94
MOD05_021E4F94: ; 0x021E4F94
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0x1c]
bl MOD05_021E4C00
ldr r0, [r4, #0x20]
bl MOD05_021E4C00
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021E4FA8
MOD05_021E4FA8: ; 0x021E4FA8
push {r3, lr}
ldrh r2, [r0, #4]
ldr r3, [r0, #0x1c]
_021E4FAE:
ldr r0, [r3]
cmp r0, r1
bne _021E4FBA
mov r0, #0xe
str r0, [r3]
pop {r3, pc}
_021E4FBA:
add r3, #8
sub r2, r2, #1
bne _021E4FAE
bl ErrorHandling
pop {r3, pc}
.balign 4, 0
thumb_func_start MOD05_021E4FC8
MOD05_021E4FC8: ; 0x021E4FC8
push {r3, r4, r5, r6, r7, lr}
add r6, r0, #0
ldrh r5, [r6, #4]
add r0, r1, #0
ldr r1, [sp, #0x1c]
str r2, [sp]
ldr r6, [r6, #0x1c]
add r7, r3, #0
str r1, [sp, #0x1c]
mov r4, #0
add r2, r5, #0
add r3, r6, #0
_021E4FE0:
ldr r1, [r3]
cmp r1, r0
bne _021E4FEA
ldr r0, [r3, #4]
pop {r3, r4, r5, r6, r7, pc}
_021E4FEA:
add r3, #8
sub r2, r2, #1
bne _021E4FE0
_021E4FF0:
ldr r1, [r6]
cmp r1, #0xe
bne _021E4FFC
str r0, [r6]
ldr r4, [r6, #4]
b _021E5002
_021E4FFC:
add r6, #8
sub r5, r5, #1
bne _021E4FF0
_021E5002:
cmp r4, #0
bne _021E500A
bl ErrorHandling
_021E500A:
add r0, r4, #0
mov r1, #0
mov r2, #0x28
bl memset
ldr r0, [sp]
add r2, r4, #0
str r0, [r4]
add r2, #0xc
ldmia r7!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r7!, {r0, r1}
stmia r2!, {r0, r1}
ldr r0, [sp, #0x18]
str r0, [r4, #4]
ldr r0, [sp, #0x1c]
cmp r0, #0
beq _021E5044
bl FUN_020211AC
str r0, [r4, #0x1c]
ldr r0, [sp, #0x1c]
bl FUN_020211BC
str r0, [r4, #0x20]
ldr r0, [sp, #0x1c]
bl FUN_020211CC
str r0, [r4, #0x24]
_021E5044:
ldr r0, [sp, #0x20]
str r0, [r4, #8]
add r0, r4, #0
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD05_021E504C
MOD05_021E504C: ; 0x021E504C
push {r3, lr}
ldrh r2, [r0, #4]
ldr r3, [r0, #0x1c]
_021E5052:
ldr r0, [r3]
cmp r0, r1
bne _021E505C
ldr r0, [r3, #4]
pop {r3, pc}
_021E505C:
add r3, #8
sub r2, r2, #1
bne _021E5052
bl ErrorHandling
mov r0, #0
pop {r3, pc}
.balign 4, 0
thumb_func_start MOD05_021E506C
MOD05_021E506C: ; 0x021E506C
ldr r3, _021E5074 ; =MOD05_021E4FA8
ldr r0, [r0, #0x28]
bx r3
nop
_021E5074: .word MOD05_021E4FA8
thumb_func_start MOD05_021E5078
MOD05_021E5078: ; 0x021E5078
push {r3, r4, lr}
sub sp, #4
add r4, r0, #0
mov r0, #0
str r0, [sp]
ldr r0, [r4, #0x28]
add r3, r2, #0
ldr r0, [r0, #0x10]
ldr r2, [r4, #0x20]
bl MOD05_021F5AE4
add sp, #4
pop {r3, r4, pc}
.balign 4, 0
thumb_func_start MOD05_021E5094
MOD05_021E5094: ; 0x021E5094
ldr r0, [r0, #0x28]
ldr r3, _021E509C ; =MOD05_021F5A90
ldr r0, [r0, #0x10]
bx r3
.balign 4, 0
_021E509C: .word MOD05_021F5A90
thumb_func_start MOD05_021E50A0
MOD05_021E50A0: ; 0x021E50A0
ldr r0, [r0, #0x28]
ldr r3, _021E50A8 ; =MOD05_021F5A74
ldr r0, [r0, #0x10]
bx r3
.balign 4, 0
_021E50A8: .word MOD05_021F5A74
thumb_func_start MOD05_021E50AC
MOD05_021E50AC: ; 0x021E50AC
push {r3, r4, lr}
sub sp, #4
add r4, r0, #0
mov r0, #0
str r0, [sp]
ldr r0, [r4, #0x28]
add r3, r2, #0
ldr r0, [r0, #0x14]
ldr r2, [r4, #0x20]
bl MOD05_021F5AE4
add sp, #4
pop {r3, r4, pc}
.balign 4, 0
thumb_func_start MOD05_021E50C8
MOD05_021E50C8: ; 0x021E50C8
ldr r0, [r0, #0x28]
ldr r3, _021E50D0 ; =MOD05_021F5A74
ldr r0, [r0, #0x14]
bx r3
.balign 4, 0
_021E50D0: .word MOD05_021F5A74
thumb_func_start MOD05_021E50D4
MOD05_021E50D4: ; 0x021E50D4
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
add r5, r0, #0
add r6, r1, #0
add r1, r2, #0
ldr r4, [r5, #0x28]
mov r2, #1
add r7, r3, #0
bl MOD05_021E4C6C
str r0, [sp, #4]
add r0, r5, #0
bl MOD05_021E4C30
str r0, [sp]
ldr r0, [r4, #0x18]
ldr r1, [sp, #4]
add r2, r6, #0
add r3, r7, #0
bl FUN_02020F54
cmp r0, #0
bne _021E5106
bl ErrorHandling
_021E5106:
ldr r2, [r4, #0x18]
add r0, r5, #0
add r1, r6, #0
bl MOD05_021E5120
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD05_021E5114
MOD05_021E5114: ; 0x021E5114
ldr r0, [r0, #0x28]
ldr r3, _021E511C ; =FUN_02020FF0
ldr r0, [r0, #0x18]
bx r3
.balign 4, 0
_021E511C: .word FUN_02020FF0
thumb_func_start MOD05_021E5120
MOD05_021E5120: ; 0x021E5120
push {r4, r5, r6, lr}
add r5, r1, #0
add r6, r2, #0
mov r1, #0xc
mov r2, #1
bl MOD05_021E4BDC
add r4, r0, #0
mov r0, #1
str r0, [r4]
str r5, [r4, #4]
ldr r0, _021E5150 ; =MOD05_021E5158
add r1, r4, #0
mov r2, #0xff
str r6, [r4, #8]
bl FUN_0200CA60
ldr r0, _021E5154 ; =MOD05_021E5174
add r1, r4, #0
mov r2, #0xff
bl FUN_0200CA98
pop {r4, r5, r6, pc}
nop
_021E5150: .word MOD05_021E5158
_021E5154: .word MOD05_021E5174
thumb_func_start MOD05_021E5158
MOD05_021E5158: ; 0x021E5158
push {r3, r4, r5, lr}
add r4, r1, #0
add r5, r0, #0
ldr r0, [r4, #8]
ldr r1, [r4, #4]
bl FUN_020210F0
mov r0, #1
str r0, [r4]
add r0, r5, #0
bl FUN_0200CAB4
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021E5174
MOD05_021E5174: ; 0x021E5174
push {r3, r4, r5, lr}
add r4, r1, #0
add r5, r0, #0
ldr r0, [r4]
cmp r0, #1
bne _021E5194
ldr r0, [r4, #8]
ldr r1, [r4, #4]
bl FUN_02021158
add r0, r4, #0
bl MOD05_021E4C00
add r0, r5, #0
bl FUN_0200CAB4
_021E5194:
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021E5198
MOD05_021E5198: ; 0x021E5198
push {r4, r5, r6, lr}
add r4, r3, #0
ldr r0, [r4]
add r6, r1, #0
add r5, r2, #0
bl FUN_020BC0FC
cmp r0, #0
beq _021E51C8
bl FUN_0201B254
cmp r0, #0
bne _021E51C8
ldr r0, [r4]
ldr r1, [r0, #8]
bl DC_FlushRange
ldr r0, [r4]
bl FUN_020BB59C
cmp r0, #0
bne _021E51C8
bl ErrorHandling
_021E51C8:
ldr r0, [r4]
bl FUN_020BC13C
ldrh r1, [r0, #0xe]
add r1, r0, r1
ldr r1, [r1, #0xc]
add r0, r0, r1
str r0, [r5]
cmp r5, #0
bne _021E51E0
bl ErrorHandling
_021E51E0:
ldr r1, [r5]
add r0, r6, #0
bl FUN_020B80B4
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_start MOD05_021E51EC
MOD05_021E51EC: ; 0x021E51EC
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r3, #0
bl MOD05_021E4C6C
ldr r3, [sp, #0x14]
ldr r2, [sp, #0x10]
str r0, [r3]
add r0, r5, #0
add r1, r4, #0
bl MOD05_021E5198
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021E5208
MOD05_021E5208: ; 0x021E5208
push {r3, r4, r5, lr}
add r4, r1, #0
add r5, r0, #0
ldr r0, [r4, #0xc]
bl FUN_0201B3C4
ldr r0, [r4]
ldr r1, [r4, #0xc]
bl FUN_0201B3A8
add r0, r5, #0
bl FUN_0200CAB4
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021E5224
MOD05_021E5224: ; 0x021E5224
push {r4, lr}
add r4, r1, #0
add r1, r2, #0
add r2, r3, #0
bl MOD05_021E4C6C
str r0, [r4]
bl FUN_020BC13C
str r0, [r4, #4]
ldrh r1, [r0, #0xe]
add r1, r0, r1
ldr r1, [r1, #0xc]
add r0, r0, r1
str r0, [r4, #8]
ldr r0, [r4]
bl FUN_020BC0FC
str r0, [r4, #0xc]
cmp r0, #0
beq _021E525A
mov r2, #1
ldr r0, _021E525C ; =MOD05_021E5208
add r1, r4, #0
lsl r2, r2, #0xa
bl FUN_0200CA60
_021E525A:
pop {r4, pc}
.balign 4, 0
_021E525C: .word MOD05_021E5208
thumb_func_start MOD05_021E5260
MOD05_021E5260: ; 0x021E5260
push {r4, r5, r6, lr}
add r5, r1, #0
add r4, r2, #0
ldr r1, [sp, #0x10]
ldr r2, [sp, #0x14]
add r6, r3, #0
bl MOD05_021E4C6C
str r0, [r5]
mov r1, #0
bl FUN_020BC4C8
str r0, [r5, #4]
ldr r1, [r5, #4]
ldr r2, [r4, #8]
add r0, r6, #0
bl FUN_020BB8D0
str r0, [r5, #8]
ldr r1, [r5, #4]
ldr r2, [r4, #8]
ldr r3, [r4, #0xc]
bl FUN_020B8110
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_start MOD05_021E5294
MOD05_021E5294: ; 0x021E5294
push {r4, lr}
add r4, r1, #0
bl MOD05_021E4C30
add r1, r0, #0
add r0, r4, #0
mov r2, #0x20
bl FUN_02016B20
pop {r4, pc}
thumb_func_start MOD05_021E52A8
MOD05_021E52A8: ; 0x021E52A8
push {r3, r4, r5, lr}
mov r2, #0
mov r1, #0x60
add r3, r2, #0
add r5, r0, #0
bl MOD05_021E4BE8
add r4, r0, #0
str r5, [r4]
bl MOD05_021E52D4
add r0, r4, #0
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021E52C4
MOD05_021E52C4: ; 0x021E52C4
push {r4, lr}
add r4, r0, #0
bl MOD05_021E52F4
add r0, r4, #0
bl MOD05_021E4C00
pop {r4, pc}
thumb_func_start MOD05_021E52D4
MOD05_021E52D4: ; 0x021E52D4
push {r3, lr}
sub sp, #8
add r3, r0, #0
add r0, #0x58
str r0, [sp]
add r0, r3, #0
add r0, #0x5c
str r0, [sp, #4]
ldr r0, [r3]
mov r1, #0x11
mov r2, #0
add r3, r3, #4
bl MOD05_021E51EC
add sp, #8
pop {r3, pc}
thumb_func_start MOD05_021E52F4
MOD05_021E52F4: ; 0x021E52F4
ldr r3, _021E52FC ; =MOD05_021E4C00
ldr r0, [r0, #0x5c]
bx r3
nop
_021E52FC: .word MOD05_021E4C00
thumb_func_start MOD05_021E5300
MOD05_021E5300: ; 0x021E5300
push {r3, r4, r5, lr}
mov r1, #0xbe
mov r2, #0
lsl r1, r1, #4
add r3, r2, #0
add r5, r0, #0
bl MOD05_021E4BE8
add r4, r0, #0
str r5, [r4]
bl MOD05_021E532C
add r0, r4, #0
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021E531C
MOD05_021E531C: ; 0x021E531C
push {r4, lr}
add r4, r0, #0
bl MOD05_021E5398
add r0, r4, #0
bl MOD05_021E4C00
pop {r4, pc}
thumb_func_start MOD05_021E532C
MOD05_021E532C: ; 0x021E532C
push {r4, r5, r6, r7, lr}
sub sp, #0xc
ldr r1, _021E5390 ; =0x00000B5C
str r0, [sp, #8]
add r6, r0, r1
sub r1, #0x84
mov r4, #0
add r5, r0, r1
add r7, r0, #4
_021E533E:
str r5, [sp]
ldr r0, [sp, #8]
str r6, [sp, #4]
add r1, r4, #0
ldr r0, [r0]
add r1, #0x1a
mov r2, #0
add r3, r7, #0
bl MOD05_021E51EC
add r4, r4, #1
add r6, r6, #4
add r5, r5, #4
add r7, #0x54
cmp r4, #0x20
blt _021E533E
ldr r2, _021E5394 ; =0x00000AD8
ldr r1, [sp, #8]
lsl r0, r4, #2
add r1, r1, r2
add r1, r1, r0
str r1, [sp]
ldr r1, [sp, #8]
add r2, #0x84
add r1, r1, r2
add r0, r1, r0
ldr r3, [sp, #8]
str r0, [sp, #4]
ldr r0, [sp, #8]
add r5, r3, #4
mov r3, #0x54
mul r3, r4
ldr r0, [r0]
mov r1, #0x19
mov r2, #0
add r3, r5, r3
bl MOD05_021E51EC
add sp, #0xc
pop {r4, r5, r6, r7, pc}
nop
_021E5390: .word 0x00000B5C
_021E5394: .word 0x00000AD8
thumb_func_start MOD05_021E5398
MOD05_021E5398: ; 0x021E5398
push {r4, r5, r6, lr}
ldr r6, _021E53B0 ; =0x00000B5C
add r5, r0, #0
mov r4, #0
_021E53A0:
ldr r0, [r5, r6]
bl MOD05_021E4C00
add r4, r4, #1
add r5, r5, #4
cmp r4, #0x21
blt _021E53A0
pop {r4, r5, r6, pc}
.balign 4, 0
_021E53B0: .word 0x00000B5C
thumb_func_start MOD05_021E53B4
MOD05_021E53B4: ; 0x021E53B4
push {r4, r5, r6, r7, lr}
sub sp, #0x2c
add r5, r0, #0
ldr r0, [r5, #0x3c]
add r4, r1, #0
mov r1, #3
add r6, r2, #0
add r7, r3, #0
str r0, [sp, #8]
str r0, [sp, #0x24]
bl MOD05_021E4C08
str r0, [sp, #0x28]
mov r0, #9
mov r3, #0
lsl r1, r4, #0x10
lsl r0, r0, #0xc
add r0, r1, r0
str r0, [sp, #0xc]
lsl r0, r6, #0x10
str r0, [sp, #0x14]
str r4, [sp, #0x18]
str r6, [sp, #0x1c]
str r5, [sp, #0x20]
str r3, [sp, #0x10]
add r0, sp, #0x18
str r0, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, [sp, #8]
ldr r1, _021E541C ; =0x021F757C
add r2, sp, #0xc
bl MOD05_021E4DC4
add r5, r0, #0
beq _021E5416
bl FUN_02064738
add r4, r0, #0
ldr r0, [sp, #0x40]
str r0, [r4, #0x54]
add r0, r7, #0
bl _fflt
str r0, [r4, #0x58]
add r0, r7, #0
bl _fflt
str r0, [r4, #0x5c]
_021E5416:
add r0, r5, #0
add sp, #0x2c
pop {r4, r5, r6, r7, pc}
.balign 4, 0
_021E541C: .word 0x021F757C
thumb_func_start MOD05_021E5420
MOD05_021E5420: ; 0x021E5420
push {r3, r4, r5, r6, lr}
sub sp, #4
ldr r4, [sp, #0x18]
add r5, r3, #0
str r4, [sp]
bl MOD05_021E53B4
add r6, r0, #0
beq _021E5444
bl FUN_02064738
add r4, r0, #0
mov r0, #0
str r0, [r4, #0x58]
add r0, r5, #0
bl _fflt
str r0, [r4, #0x5c]
_021E5444:
add r0, r6, #0
add sp, #4
pop {r3, r4, r5, r6, pc}
.balign 4, 0
thumb_func_start MOD05_021E544C
MOD05_021E544C: ; 0x021E544C
push {r4, r5, lr}
sub sp, #0xc
add r5, r0, #0
add r4, r1, #0
bl FUN_0206475C
add r3, r0, #0
add r2, r4, #0
ldmia r3!, {r0, r1}
add r2, #0x6c
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldr r0, [r3]
str r0, [r2]
ldr r0, [r4, #0x6c]
lsl r1, r0, #0x10
mov r0, #9
lsl r0, r0, #0xc
add r0, r1, r0
str r0, [sp]
ldr r0, [r4, #0x70]
add r1, sp, #0
lsl r0, r0, #0x10
str r0, [sp, #8]
mov r0, #0
str r0, [sp, #4]
add r0, r5, #0
bl FUN_0206476C
mov r0, #1
add sp, #0xc
pop {r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021E5490
MOD05_021E5490: ; 0x021E5490
bx lr
.balign 4, 0
thumb_func_start MOD05_021E5494
MOD05_021E5494: ; 0x021E5494
push {r4, lr}
add r4, r1, #0
ldr r0, [r4, #0x58]
ldr r1, [r4, #0x5c]
bl _fls
bhs _021E54B6
ldr r0, [r4, #0x58]
bl _f2d
ldr r2, _021E54B8 ; =0x9999999A
ldr r3, _021E54BC ; =0x3FC99999
bl _dadd
bl _d2f
str r0, [r4, #0x58]
_021E54B6:
pop {r4, pc}
.balign 4, 0
_021E54B8: .word 0x9999999A
_021E54BC: .word 0x3FC99999
thumb_func_start MOD05_021E54C0
MOD05_021E54C0: ; 0x021E54C0
push {r3, r4, r5, r6, lr}
sub sp, #0x3c
ldr r5, _021E555C ; =0x021F7570
add r2, r0, #0
add r4, r1, #0
ldmia r5!, {r0, r1}
add r3, sp, #0x24
stmia r3!, {r0, r1}
ldr r0, [r5]
ldr r6, _021E5560 ; =0x021F7590
str r0, [r3]
add r5, sp, #0
mov r3, #4
_021E54DA:
ldmia r6!, {r0, r1}
stmia r5!, {r0, r1}
sub r3, r3, #1
bne _021E54DA
ldr r0, [r6]
add r1, sp, #0x30
str r0, [r5]
add r0, r2, #0
bl FUN_0206477C
ldr r0, [sp, #0x24]
bl _fflt
ldr r1, [r4, #0x58]
bl _fmul
bl _ffix
str r0, [sp, #0x24]
ldr r0, [sp, #0x28]
bl _fflt
ldr r1, [r4, #0x58]
bl _fmul
bl _ffix
str r0, [sp, #0x28]
ldr r0, [sp, #0x2c]
bl _fflt
ldr r1, [r4, #0x58]
bl _fmul
bl _ffix
str r0, [sp, #0x2c]
mov r0, #2
ldr r1, [sp, #0x30]
lsl r0, r0, #0xa
sub r1, r1, r0
str r1, [sp, #0x30]
ldr r1, [sp, #0x34]
lsl r0, r0, #1
sub r0, r1, r0
str r0, [sp, #0x34]
mov r0, #5
ldr r1, [sp, #0x38]
lsl r0, r0, #0xc
add r0, r1, r0
str r0, [sp, #0x38]
ldr r0, [r4, #0x7c]
ldr r1, [r4, #0x54]
add r2, r0, #4
mov r0, #0x54
mul r0, r1
add r0, r2, r0
add r1, sp, #0x30
add r2, sp, #0
add r3, sp, #0x24
bl FUN_0201B26C
add sp, #0x3c
pop {r3, r4, r5, r6, pc}
nop
_021E555C: .word 0x021F7570
_021E5560: .word 0x021F7590
thumb_func_start MOD05_021E5564
MOD05_021E5564: ; 0x021E5564
push {r3, r4, r5, lr}
mov r2, #0
mov r1, #0x60
add r3, r2, #0
add r5, r0, #0
bl MOD05_021E4BE8
add r4, r0, #0
str r5, [r4]
bl MOD05_021E5590
add r0, r4, #0
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021E5580
MOD05_021E5580: ; 0x021E5580
push {r4, lr}
add r4, r0, #0
bl MOD05_021E55B0
add r0, r4, #0
bl MOD05_021E4C00
pop {r4, pc}
thumb_func_start MOD05_021E5590
MOD05_021E5590: ; 0x021E5590
push {r3, lr}
sub sp, #8
add r3, r0, #0
add r0, #0x58
str r0, [sp]
add r0, r3, #0
add r0, #0x5c
str r0, [sp, #4]
ldr r0, [r3]
mov r1, #0x15
mov r2, #0
add r3, r3, #4
bl MOD05_021E51EC
add sp, #8
pop {r3, pc}
thumb_func_start MOD05_021E55B0
MOD05_021E55B0: ; 0x021E55B0
ldr r3, _021E55B8 ; =MOD05_021E4C00
ldr r0, [r0, #0x5c]
bx r3
nop
_021E55B8: .word MOD05_021E4C00
thumb_func_start MOD05_021E55BC
MOD05_021E55BC: ; 0x021E55BC
push {r3, r4, r5, lr}
mov r2, #0
mov r1, #0x6c
add r3, r2, #0
add r5, r0, #0
bl MOD05_021E4BE8
add r4, r0, #0
str r5, [r4, #8]
bl MOD05_021E55E8
add r0, r4, #0
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021E55D8
MOD05_021E55D8: ; 0x021E55D8
push {r4, lr}
add r4, r0, #0
bl MOD05_021E5608
add r0, r4, #0
bl MOD05_021E4C00
pop {r4, pc}
thumb_func_start MOD05_021E55E8
MOD05_021E55E8: ; 0x021E55E8
push {r3, lr}
sub sp, #8
add r3, r0, #0
add r0, #0x60
str r0, [sp]
add r0, r3, #0
add r0, #0x64
str r0, [sp, #4]
ldr r0, [r3, #8]
mov r1, #0x16
mov r2, #0
add r3, #0xc
bl MOD05_021E51EC
add sp, #8
pop {r3, pc}
thumb_func_start MOD05_021E5608
MOD05_021E5608: ; 0x021E5608
ldr r3, _021E5610 ; =MOD05_021E4C00
ldr r0, [r0, #0x64]
bx r3
nop
_021E5610: .word MOD05_021E4C00
thumb_func_start MOD05_021E5614
MOD05_021E5614: ; 0x021E5614
push {r3, r4, r5, lr}
sub sp, #0x20
add r5, r0, #0
bl MOD05_021E4C24
add r4, r0, #0
mov r1, #5
str r4, [sp, #0x14]
bl MOD05_021E4C08
str r0, [sp, #0x18]
add r0, r5, #0
add r1, sp, #8
str r5, [sp, #0x1c]
bl FUN_02058B5C
add r0, sp, #0x14
str r0, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r1, _021E564C ; =0x021F75C0
add r0, r4, #0
add r2, sp, #8
mov r3, #0
bl MOD05_021E4DC4
add sp, #0x20
pop {r3, r4, r5, pc}
.balign 4, 0
_021E564C: .word 0x021F75C0
thumb_func_start MOD05_021E5650
MOD05_021E5650: ; 0x021E5650
push {r4, r5, lr}
sub sp, #0xc
add r5, r0, #0
add r4, r1, #0
bl FUN_0206475C
add r3, r0, #0
add r2, r4, #0
ldmia r3!, {r0, r1}
add r2, #0x30
stmia r2!, {r0, r1}
ldr r0, [r3]
str r0, [r2]
ldr r0, [r4, #0x38]
bl FUN_02058448
str r0, [r4, #8]
ldr r0, [r4, #0x38]
bl FUN_02058450
str r0, [r4, #0xc]
mov r0, #6
lsl r0, r0, #0xc
str r0, [r4, #0x28]
ldr r0, [r4, #0x38]
add r1, sp, #0
bl FUN_02058B5C
add r0, r5, #0
add r1, sp, #0
bl FUN_0206476C
mov r0, #1
add sp, #0xc
pop {r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021E5698
MOD05_021E5698: ; 0x021E5698
bx lr
.balign 4, 0
thumb_func_start MOD05_021E569C
MOD05_021E569C: ; 0x021E569C
push {r3, r4, r5, r6, lr}
sub sp, #0xc
add r4, r1, #0
ldr r6, [r4, #0x38]
ldr r1, [r4, #8]
add r5, r0, #0
ldr r2, [r4, #0xc]
add r0, r6, #0
bl FUN_020582A8
cmp r0, #0
bne _021E56B8
bl ErrorHandling
_021E56B8:
ldr r0, [r4]
cmp r0, #0
beq _021E56C8
cmp r0, #1
beq _021E56E6
add sp, #0xc
cmp r0, #2
pop {r3, r4, r5, r6, pc}
_021E56C8:
add r0, r6, #0
add r1, sp, #0
bl FUN_02058B5C
mov r0, #0xa
ldr r1, [sp, #8]
lsl r0, r0, #0xc
sub r0, r1, r0
str r0, [sp, #8]
add r0, r5, #0
add r1, sp, #0
bl FUN_0206476C
add sp, #0xc
pop {r3, r4, r5, r6, pc}
_021E56E6:
ldr r0, [r4, #4]
add r0, r0, #1
str r0, [r4, #4]
cmp r0, #0x1e
blt _021E56F6
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
_021E56F6:
add sp, #0xc
pop {r3, r4, r5, r6, pc}
.balign 4, 0
thumb_func_start MOD05_021E56FC
MOD05_021E56FC: ; 0x021E56FC
push {r4, r5, r6, lr}
sub sp, #0x60
ldr r5, _021E5774 ; =0x021F75B4
add r2, r0, #0
add r4, r1, #0
ldmia r5!, {r0, r1}
add r3, sp, #0x48
stmia r3!, {r0, r1}
ldr r0, [r5]
ldr r6, _021E5778 ; =0x021F75D4
str r0, [r3]
add r5, sp, #0x24
mov r3, #4
_021E5716:
ldmia r6!, {r0, r1}
stmia r5!, {r0, r1}
sub r3, r3, #1
bne _021E5716
ldr r0, [r6]
add r1, sp, #0x54
str r0, [r5]
add r0, r2, #0
bl FUN_0206477C
mov r0, #0x19
ldr r1, [sp, #0x58]
lsl r0, r0, #0xc
add r0, r1, r0
str r0, [sp, #0x58]
mov r0, #5
ldr r1, [sp, #0x5c]
lsl r0, r0, #0xc
sub r0, r1, r0
str r0, [sp, #0x5c]
bl FUN_020B8344
mov r2, #0
add r5, r0, #0
add r0, sp, #0x24
mov r1, #0x5a
add r3, r2, #0
bl FUN_0201CB20
add r0, r5, #0
add r1, sp, #0
bl MI_Copy36B
add r0, sp, #0x24
add r1, sp, #0
add r2, r0, #0
bl MTX_Concat33
ldr r0, [r4, #0x34]
add r1, sp, #0x54
add r0, #0xc
add r2, sp, #0x24
add r3, sp, #0x48
bl FUN_0201B2A8
add sp, #0x60
pop {r4, r5, r6, pc}
.balign 4, 0
_021E5774: .word 0x021F75B4
_021E5778: .word 0x021F75D4
thumb_func_start MOD05_021E577C
MOD05_021E577C: ; 0x021E577C
push {r3, r4, r5, lr}
mov r2, #0
mov r1, #0x6c
add r3, r2, #0
add r5, r0, #0
bl MOD05_021E4BE8
add r4, r0, #0
str r5, [r4, #8]
bl MOD05_021E57A8
add r0, r4, #0
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021E5798
MOD05_021E5798: ; 0x021E5798
push {r4, lr}
add r4, r0, #0
bl MOD05_021E57C8
add r0, r4, #0
bl MOD05_021E4C00
pop {r4, pc}
thumb_func_start MOD05_021E57A8
MOD05_021E57A8: ; 0x021E57A8
push {r3, lr}
sub sp, #8
add r3, r0, #0
add r0, #0x60
str r0, [sp]
add r0, r3, #0
add r0, #0x64
str r0, [sp, #4]
ldr r0, [r3, #8]
mov r1, #0x17
mov r2, #0
add r3, #0xc
bl MOD05_021E51EC
add sp, #8
pop {r3, pc}
thumb_func_start MOD05_021E57C8
MOD05_021E57C8: ; 0x021E57C8
ldr r3, _021E57D0 ; =MOD05_021E4C00
ldr r0, [r0, #0x64]
bx r3
nop
_021E57D0: .word MOD05_021E4C00
thumb_func_start MOD05_021E57D4
MOD05_021E57D4: ; 0x021E57D4
push {r3, r4, r5, lr}
sub sp, #0x20
add r5, r0, #0
bl MOD05_021E4C24
add r4, r0, #0
mov r1, #6
str r4, [sp, #0x14]
bl MOD05_021E4C08
str r0, [sp, #0x18]
add r0, r5, #0
add r1, sp, #8
str r5, [sp, #0x1c]
bl FUN_02058B5C
add r0, sp, #0x14
str r0, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r1, _021E580C ; =0x021F7604
add r0, r4, #0
add r2, sp, #8
mov r3, #0
bl MOD05_021E4DC4
add sp, #0x20
pop {r3, r4, r5, pc}
.balign 4, 0
_021E580C: .word 0x021F7604
thumb_func_start MOD05_021E5810
MOD05_021E5810: ; 0x021E5810
push {r4, r5, lr}
sub sp, #0xc
add r5, r0, #0
add r4, r1, #0
bl FUN_0206475C
add r3, r0, #0
add r2, r4, #0
ldmia r3!, {r0, r1}
add r2, #0x30
stmia r2!, {r0, r1}
ldr r0, [r3]
str r0, [r2]
ldr r0, [r4, #0x38]
bl FUN_02058448
str r0, [r4, #8]
ldr r0, [r4, #0x38]
bl FUN_02058450
str r0, [r4, #0xc]
mov r0, #6
lsl r0, r0, #0xc
str r0, [r4, #0x28]
ldr r0, [r4, #0x38]
add r1, sp, #0
bl FUN_02058B5C
add r0, r5, #0
add r1, sp, #0
bl FUN_0206476C
mov r0, #1
add sp, #0xc
pop {r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021E5858
MOD05_021E5858: ; 0x021E5858
bx lr
.balign 4, 0
thumb_func_start MOD05_021E585C
MOD05_021E585C: ; 0x021E585C
push {r4, r5, lr}
sub sp, #0xc
add r2, r1, #0
ldr r5, [r2, #0x38]
ldr r1, [r2, #8]
add r4, r0, #0
ldr r2, [r2, #0xc]
add r0, r5, #0
bl FUN_020582A8
cmp r0, #0
bne _021E5878
bl ErrorHandling
_021E5878:
add r0, r5, #0
add r1, sp, #0
bl FUN_02058B5C
mov r0, #0xa
ldr r1, [sp, #8]
lsl r0, r0, #0xc
sub r0, r1, r0
str r0, [sp, #8]
add r0, r4, #0
add r1, sp, #0
bl FUN_0206476C
add sp, #0xc
pop {r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021E5898
MOD05_021E5898: ; 0x021E5898
push {r4, r5, r6, lr}
sub sp, #0x60
ldr r5, _021E5910 ; =0x021F75F8
add r2, r0, #0
add r4, r1, #0
ldmia r5!, {r0, r1}
add r3, sp, #0x48
stmia r3!, {r0, r1}
ldr r0, [r5]
ldr r6, _021E5914 ; =0x021F7618
str r0, [r3]
add r5, sp, #0x24
mov r3, #4
_021E58B2:
ldmia r6!, {r0, r1}
stmia r5!, {r0, r1}
sub r3, r3, #1
bne _021E58B2
ldr r0, [r6]
add r1, sp, #0x54
str r0, [r5]
add r0, r2, #0
bl FUN_0206477C
mov r0, #0x19
ldr r1, [sp, #0x58]
lsl r0, r0, #0xc
add r0, r1, r0
str r0, [sp, #0x58]
mov r0, #5
ldr r1, [sp, #0x5c]
lsl r0, r0, #0xc
sub r0, r1, r0
str r0, [sp, #0x5c]
bl FUN_020B8344
mov r2, #0
add r5, r0, #0
add r0, sp, #0x24
mov r1, #0x5a
add r3, r2, #0
bl FUN_0201CB20
add r0, r5, #0
add r1, sp, #0
bl MI_Copy36B
add r0, sp, #0x24
add r1, sp, #0
add r2, r0, #0
bl MTX_Concat33
ldr r0, [r4, #0x34]
add r1, sp, #0x54
add r0, #0xc
add r2, sp, #0x24
add r3, sp, #0x48
bl FUN_0201B2A8
add sp, #0x60
pop {r4, r5, r6, pc}
.balign 4, 0
_021E5910: .word 0x021F75F8
_021E5914: .word 0x021F7618
thumb_func_start MOD05_021E5918
MOD05_021E5918: ; 0x021E5918
push {r3, r4, r5, lr}
mov r2, #0
mov r1, #0x6c
add r3, r2, #0
add r5, r0, #0
bl MOD05_021E4BE8
add r4, r0, #0
str r5, [r4, #8]
bl MOD05_021E5944
add r0, r4, #0
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021E5934
MOD05_021E5934: ; 0x021E5934
push {r4, lr}
add r4, r0, #0
bl MOD05_021E5964
add r0, r4, #0
bl MOD05_021E4C00
pop {r4, pc}
thumb_func_start MOD05_021E5944
MOD05_021E5944: ; 0x021E5944
push {r3, lr}
sub sp, #8
add r3, r0, #0
add r0, #0x60
str r0, [sp]
add r0, r3, #0
add r0, #0x64
str r0, [sp, #4]
ldr r0, [r3, #8]
mov r1, #0x18
mov r2, #0
add r3, #0xc
bl MOD05_021E51EC
add sp, #8
pop {r3, pc}
thumb_func_start MOD05_021E5964
MOD05_021E5964: ; 0x021E5964
ldr r3, _021E596C ; =MOD05_021E4C00
ldr r0, [r0, #0x64]
bx r3
nop
_021E596C: .word MOD05_021E4C00
thumb_func_start MOD05_021E5970
MOD05_021E5970: ; 0x021E5970
push {r3, r4, r5, lr}
sub sp, #0x20
add r5, r0, #0
bl MOD05_021E4C24
add r4, r0, #0
mov r1, #7
str r4, [sp, #0x14]
bl MOD05_021E4C08
str r0, [sp, #0x18]
add r0, r5, #0
add r1, sp, #8
str r5, [sp, #0x1c]
bl FUN_02058B5C
add r0, sp, #0x14
str r0, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r1, _021E59A8 ; =0x021F7648
add r0, r4, #0
add r2, sp, #8
mov r3, #0
bl MOD05_021E4DC4
add sp, #0x20
pop {r3, r4, r5, pc}
.balign 4, 0
_021E59A8: .word 0x021F7648
thumb_func_start MOD05_021E59AC
MOD05_021E59AC: ; 0x021E59AC
push {r4, r5, lr}
sub sp, #0xc
add r5, r0, #0
add r4, r1, #0
bl FUN_0206475C
add r3, r0, #0
add r2, r4, #0
ldmia r3!, {r0, r1}
add r2, #0x34
stmia r2!, {r0, r1}
ldr r0, [r3]
str r0, [r2]
ldr r0, [r4, #0x3c]
bl FUN_02058448
str r0, [r4, #8]
ldr r0, [r4, #0x3c]
bl FUN_02058450
str r0, [r4, #0xc]
mov r0, #6
lsl r0, r0, #0xc
str r0, [r4, #0x28]
ldr r0, [r4, #0x3c]
add r1, sp, #0
bl FUN_02058B5C
add r0, r5, #0
add r1, sp, #0
bl FUN_0206476C
mov r0, #0x3c
str r0, [r4, #0x30]
mov r0, #1
add sp, #0xc
pop {r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021E59F8
MOD05_021E59F8: ; 0x021E59F8
bx lr
.balign 4, 0
thumb_func_start MOD05_021E59FC
MOD05_021E59FC: ; 0x021E59FC
push {r3, r4, lr}
sub sp, #0xc
ldr r2, [r1, #0x30]
add r4, r0, #0
cmp r2, #0
beq _021E5A0E
sub r0, r2, #1
str r0, [r1, #0x30]
b _021E5A16
_021E5A0E:
bl MOD05_021E4DE4
add sp, #0xc
pop {r3, r4, pc}
_021E5A16:
ldr r0, [r1, #0x3c]
add r1, sp, #0
bl FUN_02058B5C
mov r0, #0xa
ldr r1, [sp, #8]
lsl r0, r0, #0xc
sub r0, r1, r0
str r0, [sp, #8]
add r0, r4, #0
add r1, sp, #0
bl FUN_0206476C
add sp, #0xc
pop {r3, r4, pc}
thumb_func_start MOD05_021E5A34
MOD05_021E5A34: ; 0x021E5A34
push {r4, r5, r6, lr}
sub sp, #0x60
ldr r5, _021E5AAC ; =0x021F763C
add r2, r0, #0
add r4, r1, #0
ldmia r5!, {r0, r1}
add r3, sp, #0x48
stmia r3!, {r0, r1}
ldr r0, [r5]
ldr r6, _021E5AB0 ; =0x021F765C
str r0, [r3]
add r5, sp, #0x24
mov r3, #4
_021E5A4E:
ldmia r6!, {r0, r1}
stmia r5!, {r0, r1}
sub r3, r3, #1
bne _021E5A4E
ldr r0, [r6]
add r1, sp, #0x54
str r0, [r5]
add r0, r2, #0
bl FUN_0206477C
mov r0, #0x19
ldr r1, [sp, #0x58]
lsl r0, r0, #0xc
add r0, r1, r0
str r0, [sp, #0x58]
mov r0, #5
ldr r1, [sp, #0x5c]
lsl r0, r0, #0xc
sub r0, r1, r0
str r0, [sp, #0x5c]
bl FUN_020B8344
mov r2, #0
add r5, r0, #0
add r0, sp, #0x24
mov r1, #0x5a
add r3, r2, #0
bl FUN_0201CB20
add r0, r5, #0
add r1, sp, #0
bl MI_Copy36B
add r0, sp, #0x24
add r1, sp, #0
add r2, r0, #0
bl MTX_Concat33
ldr r0, [r4, #0x38]
add r1, sp, #0x54
add r0, #0xc
add r2, sp, #0x24
add r3, sp, #0x48
bl FUN_0201B2A8
add sp, #0x60
pop {r4, r5, r6, pc}
.balign 4, 0
_021E5AAC: .word 0x021F763C
_021E5AB0: .word 0x021F765C
thumb_func_start MOD05_021E5AB4
MOD05_021E5AB4: ; 0x021E5AB4
push {r3, r4, r5, lr}
mov r2, #0
mov r1, #0x38
add r3, r2, #0
add r5, r0, #0
bl MOD05_021E4BE8
add r4, r0, #0
str r5, [r4]
bl MOD05_021E5AE0
add r0, r4, #0
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021E5AD0
MOD05_021E5AD0: ; 0x021E5AD0
push {r4, lr}
add r4, r0, #0
bl MOD05_021E5B18
add r0, r4, #0
bl MOD05_021E4C00
pop {r4, pc}
thumb_func_start MOD05_021E5AE0
MOD05_021E5AE0: ; 0x021E5AE0
push {r4, lr}
sub sp, #8
add r4, r0, #0
add r1, r4, #0
ldr r0, [r4]
add r1, #0x28
bl MOD05_021E5294
ldr r0, [r4]
add r1, r4, #4
mov r2, #0x3a
mov r3, #0
bl MOD05_021E5224
mov r0, #0x71
str r0, [sp]
mov r0, #0
str r0, [sp, #4]
add r1, r4, #0
ldr r0, [r4]
add r2, r4, #4
add r4, #0x28
add r1, #0x14
add r3, r4, #0
bl MOD05_021E5260
add sp, #8
pop {r4, pc}
thumb_func_start MOD05_021E5B18
MOD05_021E5B18: ; 0x021E5B18
push {r4, lr}
add r4, r0, #0
add r0, r4, #4
bl MOD05_021F52C8
add r0, r4, #0
add r4, #0x28
add r0, #0x14
add r1, r4, #0
bl MOD05_021F5358
pop {r4, pc}
thumb_func_start MOD05_021E5B30
MOD05_021E5B30: ; 0x021E5B30
push {r4, r5, lr}
sub sp, #0x1c
ldr r0, [r0, #0x3c]
add r5, r1, #0
mov r1, #8
add r4, r3, #0
str r0, [sp, #8]
bl MOD05_021E4C08
str r0, [sp, #0xc]
mov r0, #2
lsl r1, r5, #0x10
lsl r0, r0, #0xe
add r0, r1, r0
str r0, [sp, #0x10]
mov r0, #0xa
lsl r0, r0, #0xc
str r0, [sp, #0x14]
lsl r0, r4, #0x10
str r0, [sp, #0x18]
add r0, sp, #8
str r0, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, [sp, #8]
ldr r1, _021E5B78 ; =0x021F768C
add r2, sp, #0x10
mov r3, #0
bl MOD05_021E4DC4
ldr r0, _021E5B7C ; =0x00000609
bl FUN_020054C8
add sp, #0x1c
pop {r4, r5, pc}
nop
_021E5B78: .word 0x021F768C
_021E5B7C: .word 0x00000609
thumb_func_start MOD05_021E5B80
MOD05_021E5B80: ; 0x021E5B80
push {r3, r4, r5, r6, lr}
sub sp, #0xc
add r6, r0, #0
add r5, r1, #0
bl FUN_0206475C
ldr r1, [r0]
ldr r0, [r0, #4]
mov r2, #1
str r1, [r5, #4]
str r0, [r5, #8]
ldr r0, [r5, #4]
mov r1, #0x90
mov r3, #0
bl MOD05_021E4BE8
add r4, r0, #0
str r4, [r5]
ldr r0, [r5, #4]
add r1, r4, #4
bl MOD05_021E5294
ldr r2, [r5, #8]
add r0, r4, #4
ldr r1, [r2, #0x18]
ldr r2, [r2, #0xc]
bl FUN_020BB8D0
str r0, [r4]
ldr r3, [r5, #8]
ldr r1, [r3, #0x18]
ldr r2, [r3, #0xc]
ldr r3, [r3, #0x10]
bl FUN_020B8110
ldr r1, [r5, #8]
add r0, r4, #0
add r0, #0x18
add r1, r1, #4
bl MOD05_021F5400
add r0, r4, #0
ldr r1, [r4]
add r0, #0x18
bl FUN_020B7EFC
add r0, r6, #0
add r1, sp, #0
bl FUN_0206477C
add r4, #0x18
ldr r1, [sp]
ldr r2, [sp, #4]
ldr r3, [sp, #8]
add r0, r4, #0
bl MOD05_021F54D0
mov r0, #1
add sp, #0xc
pop {r3, r4, r5, r6, pc}
thumb_func_start MOD05_021E5BF8
MOD05_021E5BF8: ; 0x021E5BF8
push {r4, lr}
ldr r4, [r1]
ldr r1, [r4]
add r0, r4, #4
bl thunk_FUN_020ae84c
add r0, r4, #0
bl MOD05_021E4C00
pop {r4, pc}
thumb_func_start MOD05_021E5C0C
MOD05_021E5C0C: ; 0x021E5C0C
push {r4, lr}
ldr r1, [r1]
ldr r2, [r1]
ldr r3, [r1, #0x14]
ldr r2, [r2, #8]
ldrh r2, [r2, #4]
lsl r4, r2, #0xc
mov r2, #1
lsl r2, r2, #0xc
add r2, r3, r2
str r2, [r1, #0x14]
cmp r2, r4
ble _021E5C2C
bl MOD05_021E4DE4
pop {r4, pc}
_021E5C2C:
ldr r0, [r1]
str r2, [r0]
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021E5C34
MOD05_021E5C34: ; 0x021E5C34
push {r3, r4, r5, lr}
sub sp, #0x48
ldr r4, [r1]
ldr r5, _021E5C88 ; =0x021F76A0
add r3, sp, #0x24
mov r2, #4
_021E5C40:
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
sub r2, r2, #1
bne _021E5C40
ldr r0, [r5]
str r0, [r3]
bl FUN_020B8344
mov r2, #0
add r5, r0, #0
add r0, sp, #0x24
mov r1, #0x5a
add r3, r2, #0
bl FUN_0201CB20
add r0, r5, #0
add r1, sp, #0
bl MI_Copy36B
add r0, sp, #0x24
add r1, sp, #0
add r2, r0, #0
bl MTX_Concat33
add r0, r4, #0
add r1, r4, #0
add r4, #0x78
add r0, #0x18
add r1, #0x6c
add r2, sp, #0x24
add r3, r4, #0
bl FUN_0201B26C
add sp, #0x48
pop {r3, r4, r5, pc}
nop
_021E5C88: .word 0x021F76A0
thumb_func_start MOD05_021E5C8C
MOD05_021E5C8C: ; 0x021E5C8C
push {r3, r4, r5, lr}
mov r2, #0
mov r1, #0x3c
add r3, r2, #0
add r5, r0, #0
bl MOD05_021E4BE8
add r4, r0, #0
str r5, [r4, #4]
bl MOD05_021E5CB8
add r0, r4, #0
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021E5CA8
MOD05_021E5CA8: ; 0x021E5CA8
push {r4, lr}
add r4, r0, #0
bl MOD05_021E5CF4
add r0, r4, #0
bl MOD05_021E4C00
pop {r4, pc}
thumb_func_start MOD05_021E5CB8
MOD05_021E5CB8: ; 0x021E5CB8
push {r4, lr}
sub sp, #8
add r4, r0, #0
add r1, r4, #0
ldr r0, [r4, #4]
add r1, #0x2c
bl MOD05_021E5294
add r1, r4, #0
ldr r0, [r4, #4]
add r1, #8
mov r2, #0x5c
mov r3, #0
bl MOD05_021E5224
mov r0, #0x73
str r0, [sp]
mov r0, #0
str r0, [sp, #4]
add r1, r4, #0
add r2, r4, #0
ldr r0, [r4, #4]
add r4, #0x2c
add r1, #0x18
add r2, #8
add r3, r4, #0
bl MOD05_021E5260
add sp, #8
pop {r4, pc}
thumb_func_start MOD05_021E5CF4
MOD05_021E5CF4: ; 0x021E5CF4
push {r4, lr}
add r4, r0, #0
add r0, #8
bl MOD05_021F52C8
add r0, r4, #0
add r4, #0x2c
add r0, #0x18
add r1, r4, #0
bl MOD05_021F5358
pop {r4, pc}
thumb_func_start MOD05_021E5D0C
MOD05_021E5D0C: ; 0x021E5D0C
push {r4, r5, lr}
sub sp, #0x1c
ldr r0, [r0, #0x3c]
add r5, r1, #0
mov r1, #9
add r4, r2, #0
str r0, [sp, #8]
bl MOD05_021E4C08
str r0, [sp, #0xc]
mov r0, #2
mov r3, #0
lsl r1, r5, #0x10
lsl r0, r0, #0xe
add r1, r1, r0
str r1, [sp, #0x10]
lsl r1, r4, #0x10
add r0, r1, r0
str r0, [sp, #0x18]
str r3, [sp, #0x14]
add r0, sp, #8
str r0, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, [sp, #8]
ldr r1, _021E5D4C ; =0x021F76C4
add r2, sp, #0x10
bl MOD05_021E4DC4
add sp, #0x1c
pop {r4, r5, pc}
nop
_021E5D4C: .word 0x021F76C4
thumb_func_start MOD05_021E5D50
MOD05_021E5D50: ; 0x021E5D50
push {r3, r4, r5, r6, lr}
sub sp, #0xc
add r6, r0, #0
add r5, r1, #0
bl FUN_0206475C
ldr r1, [r0]
ldr r0, [r0, #4]
mov r2, #1
str r1, [r5, #4]
str r0, [r5, #8]
ldr r0, [r5, #4]
mov r1, #0x90
mov r3, #0
bl MOD05_021E4BE8
add r4, r0, #0
str r4, [r5]
ldr r0, [r5, #4]
add r1, r4, #4
bl MOD05_021E5294
ldr r2, [r5, #8]
add r0, r4, #4
ldr r1, [r2, #0x1c]
ldr r2, [r2, #0x10]
bl FUN_020BB8D0
str r0, [r4]
ldr r3, [r5, #8]
ldr r1, [r3, #0x1c]
ldr r2, [r3, #0x10]
ldr r3, [r3, #0x14]
bl FUN_020B8110
ldr r1, [r5, #8]
add r0, r4, #0
add r0, #0x18
add r1, #8
bl MOD05_021F5400
add r0, r4, #0
ldr r1, [r4]
add r0, #0x18
bl FUN_020B7EFC
add r0, r6, #0
add r1, sp, #0
bl FUN_0206477C
add r4, #0x18
ldr r1, [sp]
ldr r2, [sp, #4]
ldr r3, [sp, #8]
add r0, r4, #0
bl MOD05_021F54D0
mov r0, #1
add sp, #0xc
pop {r3, r4, r5, r6, pc}
thumb_func_start MOD05_021E5DC8
MOD05_021E5DC8: ; 0x021E5DC8
push {r4, lr}
ldr r4, [r1]
ldr r1, [r4]
add r0, r4, #4
bl thunk_FUN_020ae84c
add r0, r4, #0
bl MOD05_021E4C00
pop {r4, pc}
thumb_func_start MOD05_021E5DDC
MOD05_021E5DDC: ; 0x021E5DDC
push {r4, lr}
ldr r1, [r1]
ldr r2, [r1]
ldr r3, [r1, #0x14]
ldr r2, [r2, #8]
ldrh r2, [r2, #4]
lsl r4, r2, #0xc
mov r2, #1
lsl r2, r2, #0xc
add r2, r3, r2
str r2, [r1, #0x14]
cmp r2, r4
ble _021E5DFC
bl MOD05_021E4DE4
pop {r4, pc}
_021E5DFC:
ldr r0, [r1]
str r2, [r0]
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021E5E04
MOD05_021E5E04: ; 0x021E5E04
ldr r0, [r1]
ldr r3, _021E5E0C ; =MOD05_021F5430
add r0, #0x18
bx r3
.balign 4, 0
_021E5E0C: .word MOD05_021F5430
thumb_func_start MOD05_021E5E10
MOD05_021E5E10: ; 0x021E5E10
push {r3, r4, r5, lr}
mov r2, #0
mov r1, #0x38
add r3, r2, #0
add r5, r0, #0
bl MOD05_021E4BE8
add r4, r0, #0
str r5, [r4]
bl MOD05_021E5E3C
add r0, r4, #0
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021E5E2C
MOD05_021E5E2C: ; 0x021E5E2C
push {r4, lr}
add r4, r0, #0
bl MOD05_021E5E74
add r0, r4, #0
bl MOD05_021E4C00
pop {r4, pc}
thumb_func_start MOD05_021E5E3C
MOD05_021E5E3C: ; 0x021E5E3C
push {r4, lr}
sub sp, #8
add r4, r0, #0
add r1, r4, #0
ldr r0, [r4]
add r1, #0x28
bl MOD05_021E5294
ldr r0, [r4]
add r1, r4, #4
mov r2, #0x5b
mov r3, #0
bl MOD05_021E5224
mov r0, #0x72
str r0, [sp]
mov r0, #0
str r0, [sp, #4]
add r1, r4, #0
ldr r0, [r4]
add r2, r4, #4
add r4, #0x28
add r1, #0x14
add r3, r4, #0
bl MOD05_021E5260
add sp, #8
pop {r4, pc}
thumb_func_start MOD05_021E5E74
MOD05_021E5E74: ; 0x021E5E74
push {r4, lr}
add r4, r0, #0
add r0, r4, #4
bl MOD05_021F52C8
add r0, r4, #0
add r4, #0x28
add r0, #0x14
add r1, r4, #0
bl MOD05_021F5358
pop {r4, pc}
thumb_func_start MOD05_021E5E8C
MOD05_021E5E8C: ; 0x021E5E8C
push {r3, r4, lr}
sub sp, #0x1c
add r4, r0, #0
bl MOD05_021E4C24
mov r1, #0xa
str r0, [sp, #8]
bl MOD05_021E4C08
str r0, [sp, #0xc]
add r0, r4, #0
add r1, sp, #0x10
bl FUN_02058B5C
add r0, r4, #0
bl FUN_020584C4
cmp r0, #3
bhi _021E5EF4
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021E5EBE: ; jump table
.short _021E5EC6 - _021E5EBE - 2 ; case 0
.short _021E5ED2 - _021E5EBE - 2 ; case 1
.short _021E5EEA - _021E5EBE - 2 ; case 2
.short _021E5EDE - _021E5EBE - 2 ; case 3
_021E5EC6:
mov r0, #1
ldr r1, [sp, #0x18]
lsl r0, r0, #0x10
sub r0, r1, r0
str r0, [sp, #0x18]
b _021E5EF4
_021E5ED2:
mov r0, #1
ldr r1, [sp, #0x18]
lsl r0, r0, #0x10
add r0, r1, r0
str r0, [sp, #0x18]
b _021E5EF4
_021E5EDE:
mov r0, #1
ldr r1, [sp, #0x10]
lsl r0, r0, #0x10
add r0, r1, r0
str r0, [sp, #0x10]
b _021E5EF4
_021E5EEA:
mov r0, #1
ldr r1, [sp, #0x10]
lsl r0, r0, #0x10
sub r0, r1, r0
str r0, [sp, #0x10]
_021E5EF4:
add r0, r4, #0
mov r1, #2
bl FUN_0205829C
add r1, sp, #8
str r1, [sp]
str r0, [sp, #4]
ldr r0, [sp, #8]
ldr r1, _021E5F14 ; =0x021F76D8
add r2, sp, #0x10
mov r3, #0
bl MOD05_021E4DC4
add sp, #0x1c
pop {r3, r4, pc}
nop
_021E5F14: .word 0x021F76D8
thumb_func_start MOD05_021E5F18
MOD05_021E5F18: ; 0x021E5F18
push {r3, r4, r5, r6, lr}
sub sp, #0xc
add r6, r0, #0
add r5, r1, #0
bl FUN_0206475C
ldr r1, [r0]
ldr r0, [r0, #4]
mov r2, #1
str r1, [r5, #4]
str r0, [r5, #8]
ldr r0, [r5, #4]
mov r1, #0x90
mov r3, #0
bl MOD05_021E4BE8
add r4, r0, #0
str r4, [r5]
ldr r0, [r5, #4]
add r1, r4, #4
bl MOD05_021E5294
ldr r2, [r5, #8]
add r0, r4, #4
ldr r1, [r2, #0x18]
ldr r2, [r2, #0xc]
bl FUN_020BB8D0
str r0, [r4]
ldr r3, [r5, #8]
ldr r1, [r3, #0x18]
ldr r2, [r3, #0xc]
ldr r3, [r3, #0x10]
bl FUN_020B8110
ldr r1, [r5, #8]
add r0, r4, #0
add r0, #0x18
add r1, r1, #4
bl MOD05_021F5400
add r0, r4, #0
ldr r1, [r4]
add r0, #0x18
bl FUN_020B7EFC
add r0, r6, #0
add r1, sp, #0
bl FUN_0206477C
add r4, #0x18
ldr r1, [sp]
ldr r2, [sp, #4]
ldr r3, [sp, #8]
add r0, r4, #0
bl MOD05_021F54D0
mov r0, #1
add sp, #0xc
pop {r3, r4, r5, r6, pc}
thumb_func_start MOD05_021E5F90
MOD05_021E5F90: ; 0x021E5F90
push {r4, lr}
ldr r4, [r1]
ldr r1, [r4]
add r0, r4, #4
bl thunk_FUN_020ae84c
add r0, r4, #0
bl MOD05_021E4C00
pop {r4, pc}
thumb_func_start MOD05_021E5FA4
MOD05_021E5FA4: ; 0x021E5FA4
push {r4, lr}
ldr r1, [r1]
ldr r2, [r1]
ldr r3, [r1, #0x14]
ldr r2, [r2, #8]
ldrh r2, [r2, #4]
lsl r4, r2, #0xc
mov r2, #1
lsl r2, r2, #0xc
add r2, r3, r2
str r2, [r1, #0x14]
cmp r2, r4
ble _021E5FC4
bl MOD05_021E4DE4
pop {r4, pc}
_021E5FC4:
ldr r0, [r1]
str r2, [r0]
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021E5FCC
MOD05_021E5FCC: ; 0x021E5FCC
ldr r0, [r1]
ldr r3, _021E5FD4 ; =MOD05_021F5430
add r0, #0x18
bx r3
.balign 4, 0
_021E5FD4: .word MOD05_021F5430
thumb_func_start MOD05_021E5FD8
MOD05_021E5FD8: ; 0x021E5FD8
ldr r3, _021E5FDC ; =FUN_020553D4
bx r3
.balign 4, 0
_021E5FDC: .word FUN_020553D4
thumb_func_start MOD05_021E5FE0
MOD05_021E5FE0: ; 0x021E5FE0
push {r3, r4, r5, r6, r7, lr}
add r7, r0, #0
mov r6, #0
bl FUN_020553E0
ldr r5, _021E6010 ; =0x021F7734
add r4, r0, #0
_021E5FEE:
mov r0, #1
tst r0, r4
beq _021E5FFA
ldr r1, [r5]
add r0, r7, #0
blx r1
_021E5FFA:
add r6, r6, #1
lsr r4, r4, #1
add r5, r5, #4
cmp r6, #9
blo _021E5FEE
add r0, r7, #0
mov r1, #0
bl FUN_020553DC
pop {r3, r4, r5, r6, r7, pc}
nop
_021E6010: .word 0x021F7734
thumb_func_start MOD05_021E6014
MOD05_021E6014: ; 0x021E6014
push {r4, lr}
add r4, r0, #0
bl FUN_020553E8
add r1, r0, #0
mov r0, #0
bl FUN_020555A0
add r1, r0, #0
add r0, r4, #0
bl MOD05_021E726C
add r0, r4, #0
mov r1, #0
bl FUN_020553A8
add r0, r4, #0
bl FUN_02055410
add r0, r4, #0
bl FUN_02055454
cmp r0, #0
beq _021E6048
bl MOD05_021E4DE4
_021E6048:
add r0, r4, #0
mov r1, #0
bl FUN_02055450
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021E6054
MOD05_021E6054: ; 0x021E6054
push {r4, lr}
add r4, r0, #0
bl FUN_020553E8
add r1, r0, #0
mov r0, #1
bl FUN_020555A0
add r1, r0, #0
add r0, r4, #0
bl MOD05_021E726C
add r0, r4, #0
mov r1, #1
bl FUN_020553A8
add r0, r4, #0
bl FUN_02055410
add r0, r4, #0
bl FUN_02055454
cmp r0, #0
beq _021E6088
bl MOD05_021E4DE4
_021E6088:
add r0, r4, #0
mov r1, #0
bl FUN_02055450
ldr r0, _021E6098 ; =0x00000618
bl FUN_020054C8
pop {r4, pc}
.balign 4, 0
_021E6098: .word 0x00000618
thumb_func_start MOD05_021E609C
MOD05_021E609C: ; 0x021E609C
push {r3, r4, r5, r6, lr}
sub sp, #4
add r5, r0, #0
bl FUN_020553E8
add r1, r0, #0
mov r0, #2
bl FUN_020555A0
add r1, r0, #0
add r0, r5, #0
bl MOD05_021E726C
add r0, r5, #0
mov r1, #2
bl FUN_020553A8
add r0, r5, #0
bl FUN_02055410
add r0, r5, #0
bl FUN_02055454
cmp r0, #0
beq _021E60D2
bl MOD05_021E4DE4
_021E60D2:
add r0, r5, #0
mov r1, #0
bl FUN_02055450
add r0, r5, #0
bl FUN_020552F8
add r4, r0, #0
add r0, r5, #0
bl FUN_020553A0
add r6, r0, #0
bl FUN_02058738
mov r0, #1
mov r1, #0
str r0, [sp]
add r0, r6, #0
add r2, r1, #0
add r3, r4, #0
bl MOD06_0224ABAC
add r1, r0, #0
add r0, r5, #0
bl FUN_02055450
add sp, #4
pop {r3, r4, r5, r6, pc}
.balign 4, 0
thumb_func_start MOD05_021E610C
MOD05_021E610C: ; 0x021E610C
ldr r3, _021E6114 ; =FUN_020556C8
mov r1, #1
bx r3
nop
_021E6114: .word FUN_020556C8
thumb_func_start MOD05_021E6118
MOD05_021E6118: ; 0x021E6118
push {r4, lr}
add r4, r0, #0
bl FUN_020553E8
add r1, r0, #0
mov r0, #4
bl FUN_020555A0
add r1, r0, #0
add r0, r4, #0
bl MOD05_021E726C
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021E6134
MOD05_021E6134: ; 0x021E6134
push {r4, lr}
add r4, r0, #0
bl FUN_020553E8
add r1, r0, #0
mov r0, #6
bl FUN_020555A0
add r1, r0, #0
add r0, r4, #0
bl MOD05_021E726C
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021E6150
MOD05_021E6150: ; 0x021E6150
push {r4, lr}
add r4, r0, #0
bl FUN_020553E8
add r1, r0, #0
mov r0, #7
bl FUN_020555A0
add r1, r0, #0
add r0, r4, #0
bl MOD05_021E726C
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021E616C
MOD05_021E616C: ; 0x021E616C
push {r4, lr}
add r4, r0, #0
bl FUN_020553E8
add r1, r0, #0
mov r0, #8
bl FUN_020555A0
add r1, r0, #0
add r0, r4, #0
bl MOD05_021E726C
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021E6188
MOD05_021E6188: ; 0x021E6188
push {r4, lr}
add r4, r0, #0
bl FUN_020553E8
add r1, r0, #0
mov r0, #9
bl FUN_020555A0
add r1, r0, #0
add r0, r4, #0
bl MOD05_021E726C
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021E61A4
MOD05_021E61A4: ; 0x021E61A4
push {r3, r4, r5, r6, r7, lr}
add r5, r1, #0
add r6, r0, #0
add r0, r5, #0
add r4, r2, #0
add r7, r3, #0
bl FUN_020556B4
cmp r0, #1
bne _021E61CE
add r0, r6, #0
add r1, r5, #0
add r2, r7, #0
bl MOD05_021E68D8
cmp r0, #1
bne _021E61CA
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021E61CA:
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
_021E61CE:
add r0, r5, #0
add r1, r4, #0
bl FUN_02055898
cmp r0, #0
bne _021E61DE
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
_021E61DE:
mov r0, #0
mvn r0, r0
cmp r4, r0
bne _021E61FE
add r0, r6, #0
add r1, r5, #0
add r2, r4, #0
add r3, r7, #0
bl MOD05_021E628C
cmp r0, #1
bne _021E61FA
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021E61FA:
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
_021E61FE:
add r0, r6, #0
add r1, r5, #0
add r2, r4, #0
add r3, r7, #0
bl MOD05_021E6218
cmp r0, #1
bne _021E6212
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021E6212:
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021E6218
MOD05_021E6218: ; 0x021E6218
push {r3, r4, r5, r6, r7, lr}
add r5, r1, #0
add r4, r2, #0
add r6, r0, #0
add r0, r5, #0
add r1, r4, #0
add r7, r3, #0
bl FUN_0205714C
str r0, [sp]
mov r0, #1
tst r0, r7
beq _021E6246
ldr r3, [sp]
add r0, r6, #0
add r1, r5, #0
add r2, r4, #0
bl MOD05_021E62B4
cmp r0, #1
bne _021E6246
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021E6246:
mov r0, #2
tst r0, r7
beq _021E6260
ldr r3, [sp]
add r0, r6, #0
add r1, r5, #0
add r2, r4, #0
bl MOD05_021E6714
cmp r0, #1
bne _021E6260
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021E6260:
ldr r3, [sp]
add r0, r6, #0
add r1, r5, #0
add r2, r4, #0
bl MOD05_021E65EC
cmp r0, #1
bne _021E6274
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021E6274:
ldr r3, [sp]
add r0, r6, #0
add r1, r5, #0
add r2, r4, #0
bl MOD05_021E6758
cmp r0, #1
bne _021E6288
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021E6288:
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD05_021E628C
MOD05_021E628C: ; 0x021E628C
push {r4, r5, r6, lr}
add r4, r1, #0
add r6, r2, #0
add r5, r0, #0
add r0, r4, #0
add r1, r6, #0
bl FUN_0205714C
add r3, r0, #0
add r0, r5, #0
add r1, r4, #0
add r2, r6, #0
bl MOD05_021E6758
cmp r0, #1
bne _021E62B0
mov r0, #1
pop {r4, r5, r6, pc}
_021E62B0:
mov r0, #0
pop {r4, r5, r6, pc}
thumb_func_start MOD05_021E62B4
MOD05_021E62B4: ; 0x021E62B4
push {r3, r4, r5, r6, r7, lr}
add r7, r0, #0
add r5, r1, #0
add r4, r2, #0
cmp r3, #1
beq _021E62C4
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
_021E62C4:
add r0, r5, #0
add r1, r4, #0
bl MOD05_021E727C
add r6, r0, #0
bne _021E62D4
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
_021E62D4:
bl FUN_02058458
cmp r0, #0x54
beq _021E62E0
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
_021E62E0:
add r0, r6, #0
add r1, r4, #0
bl FUN_02059918
mov r1, #1
bic r0, r1
beq _021E62F2
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
_021E62F2:
add r0, r4, #0
add r1, r7, #0
add r2, r5, #0
add r3, r6, #0
bl MOD05_021E6304
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021E6304
MOD05_021E6304: ; 0x021E6304
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
mov r0, #0x14
add r4, r1, #0
add r6, r2, #0
add r7, r3, #0
bl MOD05_021E72B8
add r2, r0, #0
str r5, [r2, #4]
str r4, [r2, #8]
str r7, [r2, #0x10]
ldr r1, _021E6328 ; =MOD05_021E632C
add r0, r4, #0
str r6, [r2, #0xc]
bl FUN_020463CC
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_021E6328: .word MOD05_021E632C
thumb_func_start MOD05_021E632C
MOD05_021E632C: ; 0x021E632C
push {r4, r5, r6, lr}
bl FUN_0204652C
add r4, r0, #0
ldr r0, [r4, #0xc]
bl FUN_020553A0
add r6, r0, #0
ldr r0, [r4]
ldr r5, [r4, #0x10]
cmp r0, #0
beq _021E634E
cmp r0, #1
beq _021E639A
cmp r0, #2
beq _021E63C0
b _021E63CA
_021E634E:
add r0, r5, #0
bl FUN_0205AD98
cmp r0, #0
beq _021E63CA
add r0, r6, #0
bl FUN_0205AD98
cmp r0, #0
bne _021E636C
ldr r0, [r4, #0xc]
bl FUN_020570C4
cmp r0, #0
beq _021E63CA
_021E636C:
ldr r0, [r4, #4]
mov r1, #8
bl FUN_0205AFDC
add r1, r0, #0
add r0, r5, #0
bl FUN_0205ADDC
ldr r0, [r4, #4]
mov r1, #0x20
bl FUN_0205AFDC
add r1, r0, #0
add r0, r6, #0
bl FUN_0205ADDC
ldr r0, _021E63D0 ; =0x00000627
bl FUN_020054C8
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021E63CA
_021E639A:
add r0, r5, #0
bl FUN_0205AE28
cmp r0, #0
beq _021E63CA
add r0, r6, #0
bl FUN_0205AE28
cmp r0, #0
beq _021E63CA
add r0, r5, #0
bl FUN_0205AE50
add r0, r6, #0
bl FUN_0205AE50
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
_021E63C0:
add r0, r4, #0
bl MOD05_021E72DC
mov r0, #1
pop {r4, r5, r6, pc}
_021E63CA:
mov r0, #0
pop {r4, r5, r6, pc}
nop
_021E63D0: .word 0x00000627
thumb_func_start MOD05_021E63D4
MOD05_021E63D4: ; 0x021E63D4
push {r3, r4, r5, r6, r7, lr}
add r6, r0, #0
mov r0, #0x2c
add r7, r1, #0
add r5, r2, #0
bl MOD05_021E72B8
add r4, r0, #0
str r7, [r4, #4]
str r6, [r4, #0x1c]
ldr r0, [r6, #0x38]
str r0, [r4, #0x20]
bl FUN_020553A0
add r2, r4, #0
str r0, [r4, #0x24]
add r2, #0xc
ldmia r5!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r2!, {r0, r1}
ldr r0, [r6, #0x10]
ldr r1, _021E640C ; =MOD05_021E6484
add r2, r4, #0
bl FUN_0204640C
pop {r3, r4, r5, r6, r7, pc}
nop
_021E640C: .word MOD05_021E6484
thumb_func_start MOD05_021E6410
MOD05_021E6410: ; 0x021E6410
push {r4, r5, r6, lr}
sub sp, #0x10
add r6, r2, #0
add r5, r1, #0
bl FUN_02046528
add r4, r0, #0
add r1, r6, #0
bl MOD05_021E72E8
add r1, r0, #0
add r0, r4, #0
add r2, sp, #0
bl MOD05_021E7228
add r0, r4, #0
add r1, r5, #0
add r2, sp, #0
bl MOD05_021E63D4
add sp, #0x10
pop {r4, r5, r6, pc}
thumb_func_start MOD05_021E643C
MOD05_021E643C: ; 0x021E643C
push {r4, r5, r6, lr}
add r4, r2, #0
add r5, r1, #0
bl FUN_020553A0
add r6, r0, #0
lsl r0, r4, #0x18
lsr r0, r0, #0x18
bl FUN_0205481C
cmp r0, #1
bne _021E647E
lsl r0, r5, #0x18
lsr r0, r0, #0x18
bl FUN_02054B78
cmp r0, #1
beq _021E646C
lsl r0, r5, #0x18
lsr r0, r0, #0x18
bl FUN_02054B6C
cmp r0, #1
bne _021E647A
_021E646C:
add r0, r6, #0
bl FUN_02058A68
cmp r0, #1
bne _021E647A
mov r0, #0
pop {r4, r5, r6, pc}
_021E647A:
mov r0, #1
pop {r4, r5, r6, pc}
_021E647E:
mov r0, #0
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_start MOD05_021E6484
MOD05_021E6484: ; 0x021E6484
push {r3, r4, r5, r6, r7, lr}
bl FUN_0204652C
add r4, r0, #0
ldr r0, [r4]
cmp r0, #7
bhi _021E64D4
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021E649E: ; jump table
.short _021E64AE - _021E649E - 2 ; case 0
.short _021E64CA - _021E649E - 2 ; case 1
.short _021E64E2 - _021E649E - 2 ; case 2
.short _021E6500 - _021E649E - 2 ; case 3
.short _021E6514 - _021E649E - 2 ; case 4
.short _021E655E - _021E649E - 2 ; case 5
.short _021E658A - _021E649E - 2 ; case 6
.short _021E65AC - _021E649E - 2 ; case 7
_021E64AE:
ldr r0, [r4, #0x1c]
mov r1, #0
bl FUN_0204AB20
ldr r0, [r4, #0x1c]
ldr r1, _021E65E8 ; =0x0000047F
mov r2, #1
bl FUN_0204ABDC
ldr r0, [r4]
add r0, r0, #1
add r0, r0, #1
str r0, [r4]
b _021E65E4
_021E64CA:
ldr r0, [r4, #8]
add r0, r0, #1
str r0, [r4, #8]
cmp r0, #0xa
bgt _021E64D6
_021E64D4:
b _021E65E4
_021E64D6:
mov r0, #0
str r0, [r4, #8]
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021E65E4
_021E64E2:
ldr r0, [r4, #0xc]
cmp r0, #1
bne _021E64FA
add r1, r4, #0
ldr r0, [r4, #0x1c]
add r1, #0xc
bl MOD05_021E723C
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021E65E4
_021E64FA:
mov r0, #4
str r0, [r4]
b _021E65E4
_021E6500:
add r0, r4, #0
add r0, #0xc
bl MOD05_021E7250
cmp r0, #1
bne _021E65E4
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021E65E4
_021E6514:
ldr r0, [r4, #0x20]
bl FUN_02055320
add r5, r0, #0
ldr r0, [r4, #4]
bl FUN_02059BF4
add r6, r0, #0
ldr r0, [r4, #0x20]
bl FUN_0205532C
add r7, r0, #0
ldr r0, [r4, #4]
bl FUN_02059C00
add r2, r0, #0
mov r0, #0
str r0, [sp]
ldr r0, [r4, #0x24]
ldr r3, [r4, #4]
add r1, r5, r6
add r2, r7, r2
bl MOD06_0224ABAC
str r0, [r4, #0x28]
ldr r0, [r4, #0x20]
ldr r1, [r4, #0x28]
bl FUN_02055450
ldr r0, [r4, #0x20]
mov r1, #2
bl FUN_020553A8
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021E65E4
_021E655E:
ldr r0, [r4, #8]
add r0, r0, #1
str r0, [r4, #8]
cmp r0, #0xa
ble _021E65E4
ldr r0, [r4, #0x20]
bl FUN_020553E8
add r1, r0, #0
mov r0, #0
bl FUN_020555A0
add r1, r0, #0
ldr r0, [r4, #0x20]
bl MOD05_021E726C
mov r0, #0
str r0, [r4, #8]
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021E65E4
_021E658A:
ldr r0, [r4, #0x24]
bl FUN_0205AD98
cmp r0, #1
bne _021E65E4
ldr r0, [r4, #4]
mov r1, #0x34
bl FUN_0205AFDC
add r1, r0, #0
ldr r0, [r4, #0x24]
bl FUN_0205ADDC
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021E65E4
_021E65AC:
ldr r0, [r4, #0x24]
bl FUN_0205AE28
cmp r0, #0
beq _021E65E4
ldr r0, [r4, #0x24]
bl FUN_0205AE50
ldr r0, [r4, #0x28]
mov r1, #1
bl MOD06_0224ADF8
ldr r0, [r4, #0x20]
bl FUN_020553E8
add r1, r0, #0
mov r0, #2
bl FUN_020555A0
add r1, r0, #0
ldr r0, [r4, #0x20]
bl MOD05_021E726C
add r0, r4, #0
bl MOD05_021E72DC
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021E65E4:
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_021E65E8: .word 0x0000047F
thumb_func_start MOD05_021E65EC
MOD05_021E65EC: ; 0x021E65EC
push {r4, r5, r6, lr}
add r6, r0, #0
add r5, r1, #0
add r4, r2, #0
cmp r3, #1
bne _021E6602
add r0, r5, #0
bl FUN_020553C4
cmp r0, #2
beq _021E6606
_021E6602:
mov r0, #0
pop {r4, r5, r6, pc}
_021E6606:
add r0, r5, #0
bl FUN_020553A0
add r1, r0, #0
add r0, r5, #0
add r2, r4, #0
bl FUN_02056B74
cmp r0, #0x20
bne _021E661E
mov r0, #0
pop {r4, r5, r6, pc}
_021E661E:
mov r1, #0x20
bic r0, r1
beq _021E6628
mov r0, #0
pop {r4, r5, r6, pc}
_021E6628:
add r0, r4, #0
add r1, r6, #0
add r2, r5, #0
bl MOD05_021E6638
mov r0, #1
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_start MOD05_021E6638
MOD05_021E6638: ; 0x021E6638
push {r3, r4, r5, r6, r7, lr}
add r6, r0, #0
mov r0, #0x18
add r5, r1, #0
add r7, r2, #0
bl MOD05_021E72B8
add r4, r0, #0
str r6, [r4, #4]
str r5, [r4, #8]
str r7, [r4, #0xc]
add r0, r7, #0
bl FUN_020553A0
str r0, [r4, #0x10]
add r0, r7, #0
bl FUN_02055454
str r0, [r4, #0x14]
cmp r0, #0
bne _021E6666
bl ErrorHandling
_021E6666:
ldr r1, _021E6674 ; =MOD05_021E6678
add r0, r5, #0
add r2, r4, #0
bl FUN_020463CC
pop {r3, r4, r5, r6, r7, pc}
nop
_021E6674: .word MOD05_021E6678
thumb_func_start MOD05_021E6678
MOD05_021E6678: ; 0x021E6678
push {r4, lr}
bl FUN_0204652C
add r4, r0, #0
ldr r0, [r4]
cmp r0, #0
beq _021E668C
cmp r0, #1
beq _021E66CC
b _021E6710
_021E668C:
ldr r0, [r4, #0x10]
bl FUN_0205AD98
cmp r0, #1
bne _021E6710
ldr r0, [r4, #0xc]
bl FUN_020553E8
add r1, r0, #0
mov r0, #0
bl FUN_020555A0
add r1, r0, #0
ldr r0, [r4, #0xc]
bl MOD05_021E726C
ldr r0, [r4, #4]
mov r1, #0x34
bl FUN_0205AFDC
add r1, r0, #0
ldr r0, [r4, #0x10]
bl FUN_0205ADDC
ldr r0, [r4, #0x14]
mov r1, #0
bl MOD06_0224ADF8
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021E6710
_021E66CC:
ldr r0, [r4, #0x10]
bl FUN_0205AE28
cmp r0, #0
beq _021E6710
ldr r0, [r4, #0x10]
bl FUN_0205AE50
ldr r0, [r4, #0x14]
bl MOD05_021E4DE4
ldr r0, [r4, #0xc]
mov r1, #0
bl FUN_02055450
ldr r0, [r4, #0xc]
mov r1, #0
bl FUN_020553A8
ldr r0, [r4, #8]
ldr r1, [r0, #0x1c]
ldr r1, [r1]
bl FUN_0204ABA8
add r1, r0, #0
ldr r0, [r4, #8]
mov r2, #1
bl FUN_0204ABDC
add r0, r4, #0
bl MOD05_021E72DC
mov r0, #1
pop {r4, pc}
_021E6710:
mov r0, #0
pop {r4, pc}
thumb_func_start MOD05_021E6714
MOD05_021E6714: ; 0x021E6714
push {r4, r5, r6, lr}
add r4, r2, #0
add r6, r0, #0
add r5, r1, #0
cmp r4, #1
bne _021E672E
cmp r3, #1
bne _021E672E
add r0, r5, #0
bl FUN_020553C4
cmp r0, #2
beq _021E6732
_021E672E:
mov r0, #0
pop {r4, r5, r6, pc}
_021E6732:
add r0, r5, #0
add r1, r4, #0
bl FUN_02057278
lsl r0, r0, #0x18
lsr r0, r0, #0x18
bl FUN_02054A48
cmp r0, #0
bne _021E674A
mov r0, #0
pop {r4, r5, r6, pc}
_021E674A:
add r0, r6, #0
add r1, r4, #0
bl MOD05_021E6BD8
mov r0, #1
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_start MOD05_021E6758
MOD05_021E6758: ; 0x021E6758
push {r4, r5, r6, lr}
add r4, r1, #0
add r5, r0, #0
add r0, r4, #0
bl FUN_02055764
cmp r0, #1
bne _021E676C
mov r0, #0
pop {r4, r5, r6, pc}
_021E676C:
add r0, r4, #0
bl FUN_020553A0
bl FUN_02058720
lsl r0, r0, #0x18
lsr r6, r0, #0x18
add r0, r6, #0
bl FUN_02054984
cmp r0, #1
beq _021E6792
add r0, r6, #0
bl FUN_020549A0
cmp r0, #1
beq _021E6792
mov r0, #0
pop {r4, r5, r6, pc}
_021E6792:
add r0, r5, #0
add r1, r4, #0
bl MOD05_021E67A0
mov r0, #1
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_start MOD05_021E67A0
MOD05_021E67A0: ; 0x021E67A0
push {r3, r4, r5, lr}
add r5, r0, #0
mov r0, #0x10
add r4, r1, #0
bl MOD05_021E72B8
add r2, r0, #0
str r5, [r2, #8]
ldr r1, _021E67BC ; =MOD05_021E67C0
add r0, r5, #0
str r4, [r2, #0xc]
bl FUN_020463CC
pop {r3, r4, r5, pc}
.balign 4, 0
_021E67BC: .word MOD05_021E67C0
thumb_func_start MOD05_021E67C0
MOD05_021E67C0: ; 0x021E67C0
push {r4, r5, r6, r7, lr}
sub sp, #0xc
add r6, r0, #0
bl FUN_0204652C
add r4, r0, #0
ldr r0, [r4, #0xc]
bl FUN_020553A0
add r7, r0, #0
ldr r0, [r4]
cmp r0, #0
beq _021E67E4
cmp r0, #1
beq _021E67F0
cmp r0, #2
beq _021E682A
b _021E68C6
_021E67E4:
ldr r0, _021E68CC ; =0x00000651
bl FUN_020054C8
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
_021E67F0:
add r0, r7, #0
bl FUN_0205AD98
cmp r0, #0
bne _021E6804
ldr r0, [r4, #0xc]
bl FUN_020570C4
cmp r0, #0
beq _021E68C6
_021E6804:
ldr r0, [r4, #4]
cmp r0, #5
blt _021E6824
ldr r0, _021E68D0 ; =0x00000652
bl FUN_020054C8
ldr r0, [r4, #0xc]
mov r1, #1
bl FUN_0205574C
add r0, r4, #0
bl MOD05_021E72DC
add sp, #0xc
mov r0, #1
pop {r4, r5, r6, r7, pc}
_021E6824:
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
_021E682A:
ldr r0, [r4, #0xc]
bl FUN_020552F8
ldr r2, _021E68D4 ; =gUnknown21C48B8
str r0, [sp]
ldr r1, [r2, #0x48]
ldr r2, [r2, #0x44]
lsl r1, r1, #0x10
lsl r2, r2, #0x10
ldr r0, [r4, #0xc]
lsr r1, r1, #0x10
lsr r2, r2, #0x10
bl FUN_02057020
add r5, r0, #0
mov r0, #0
mvn r0, r0
cmp r5, r0
beq _021E68C6
ldr r0, [sp]
cmp r5, r0
beq _021E68C6
mov r0, #1
str r0, [r4]
ldr r0, [r4, #4]
add r0, r0, #1
str r0, [r4, #4]
add r0, r7, #0
bl FUN_02058720
lsl r0, r0, #0x18
lsr r0, r0, #0x18
bl FUN_020549A0
cmp r0, #1
bne _021E68A2
add r0, r6, #0
bl FUN_02046528
add r1, sp, #8
str r0, [sp, #4]
bl MOD06_0223C08C
cmp r0, #1
bne _021E68A2
ldr r0, [r4, #0xc]
mov r1, #1
bl FUN_0205574C
add r0, r4, #0
bl MOD05_021E72DC
ldr r0, [sp, #4]
ldr r2, [sp, #8]
add r1, r6, #0
bl FUN_02046A20
add sp, #0xc
mov r0, #0
pop {r4, r5, r6, r7, pc}
_021E68A2:
ldr r0, [r4, #4]
cmp r0, #5
bge _021E68AC
mov r6, #0x28
b _021E68B6
_021E68AC:
add r0, r7, #0
mov r1, #1
mov r6, #0x30
bl FUN_02058A18
_021E68B6:
add r0, r5, #0
add r1, r6, #0
bl FUN_0205AFDC
add r1, r0, #0
ldr r0, [r4, #0xc]
bl FUN_02057260
_021E68C6:
mov r0, #0
add sp, #0xc
pop {r4, r5, r6, r7, pc}
.balign 4, 0
_021E68CC: .word 0x00000651
_021E68D0: .word 0x00000652
_021E68D4: .word gUnknown21C48B8
thumb_func_start MOD05_021E68D8
MOD05_021E68D8: ; 0x021E68D8
push {r3, r4, r5, lr}
add r4, r1, #0
add r5, r0, #0
add r0, r4, #0
bl FUN_020553A0
bl FUN_0205AD98
cmp r0, #0
bne _021E68F0
mov r0, #0
pop {r3, r4, r5, pc}
_021E68F0:
add r0, r5, #0
add r1, r4, #0
bl MOD05_021E6904
cmp r0, #1
bne _021E6900
mov r0, #1
pop {r3, r4, r5, pc}
_021E6900:
mov r0, #0
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021E6904
MOD05_021E6904: ; 0x021E6904
push {r4, lr}
add r4, r1, #0
add r0, r4, #0
bl FUN_02055408
cmp r0, #1
bge _021E6916
mov r0, #0
pop {r4, pc}
_021E6916:
add r0, r4, #0
bl FUN_02055314
add r1, r0, #0
add r0, r4, #0
bl MOD05_021E727C
add r4, r0, #0
bne _021E692C
mov r0, #0
pop {r4, pc}
_021E692C:
bl FUN_02058458
cmp r0, #0x76
beq _021E6938
mov r0, #0
pop {r4, pc}
_021E6938:
add r0, r4, #0
bl MOD05_021F1AF8
add r0, r4, #0
bl FUN_02057654
ldr r0, _021E6950 ; =0x0000065B
bl FUN_020054C8
mov r0, #0
pop {r4, pc}
nop
_021E6950: .word 0x0000065B
thumb_func_start MOD05_021E6954
MOD05_021E6954: ; 0x021E6954
push {r3, r4, r5, r6, r7, lr}
add r6, r0, #0
mov r0, #0x30
add r7, r1, #0
add r5, r2, #0
bl MOD05_021E72B8
add r4, r0, #0
str r7, [r4, #4]
str r6, [r4, #0xc]
ldr r0, [r6, #0x38]
str r0, [r4, #0x10]
bl FUN_020553A0
add r2, r4, #0
str r0, [r4, #0x14]
add r2, #0x1c
ldmia r5!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r2!, {r0, r1}
ldr r0, [r6, #0x10]
ldr r1, _021E698C ; =MOD05_021E69FC
add r2, r4, #0
bl FUN_0204640C
pop {r3, r4, r5, r6, r7, pc}
nop
_021E698C: .word MOD05_021E69FC
thumb_func_start MOD05_021E6990
MOD05_021E6990: ; 0x021E6990
push {r4, r5, r6, lr}
sub sp, #0x10
add r6, r2, #0
add r5, r1, #0
bl FUN_02046528
add r4, r0, #0
add r1, r6, #0
bl MOD05_021E72E8
add r1, r0, #0
add r0, r4, #0
add r2, sp, #0
bl MOD05_021E7228
add r0, r4, #0
add r1, r5, #0
add r2, sp, #0
bl MOD05_021E6954
add sp, #0x10
pop {r4, r5, r6, pc}
thumb_func_start MOD05_021E69BC
MOD05_021E69BC: ; 0x021E69BC
push {r3, lr}
cmp r1, #3
bhi _021E69F6
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021E69CE: ; jump table
.short _021E69D6 - _021E69CE - 2 ; case 0
.short _021E69D6 - _021E69CE - 2 ; case 1
.short _021E69E6 - _021E69CE - 2 ; case 2
.short _021E69E6 - _021E69CE - 2 ; case 3
_021E69D6:
lsl r0, r0, #0x18
lsr r0, r0, #0x18
bl FUN_020548FC
cmp r0, #1
bne _021E69F6
mov r0, #1
pop {r3, pc}
_021E69E6:
lsl r0, r0, #0x18
lsr r0, r0, #0x18
bl FUN_02054908
cmp r0, #1
bne _021E69F6
mov r0, #1
pop {r3, pc}
_021E69F6:
mov r0, #0
pop {r3, pc}
.balign 4, 0
thumb_func_start MOD05_021E69FC
MOD05_021E69FC: ; 0x021E69FC
push {r4, r5, r6, lr}
bl FUN_0204652C
ldr r6, _021E6A24 ; =0x021F7714
add r5, r0, #0
_021E6A06:
ldr r1, [r5]
add r0, r5, #0
lsl r1, r1, #2
ldr r1, [r6, r1]
blx r1
add r4, r0, #0
cmp r4, #2
beq _021E6A06
cmp r4, #1
bne _021E6A20
add r0, r5, #0
bl MOD05_021E72DC
_021E6A20:
add r0, r4, #0
pop {r4, r5, r6, pc}
.balign 4, 0
_021E6A24: .word 0x021F7714
thumb_func_start MOD05_021E6A28
MOD05_021E6A28: ; 0x021E6A28
push {r4, lr}
add r4, r0, #0
add r1, r4, #0
ldr r0, [r4, #0xc]
add r1, #0x1c
bl MOD05_021E723C
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
mov r0, #0
pop {r4, pc}
thumb_func_start MOD05_021E6A40
MOD05_021E6A40: ; 0x021E6A40
push {r4, lr}
add r4, r0, #0
add r0, #0x1c
bl MOD05_021E7250
cmp r0, #1
bne _021E6A54
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
_021E6A54:
mov r0, #0
pop {r4, pc}
thumb_func_start MOD05_021E6A58
MOD05_021E6A58: ; 0x021E6A58
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
ldr r0, [r5, #0x10]
bl FUN_02055320
add r4, r0, #0
ldr r0, [r5, #4]
bl FUN_02059BF4
add r6, r0, #0
ldr r0, [r5, #0x10]
bl FUN_0205532C
add r7, r0, #0
ldr r0, [r5, #4]
bl FUN_02059C00
add r2, r0, #0
mov r0, #0
str r0, [sp]
ldr r0, [r5, #0x14]
ldr r3, [r5, #4]
add r1, r4, r6
add r2, r7, r2
bl MOD06_0224AEE8
str r0, [r5, #0x18]
ldr r0, [r5, #0xc]
bl MOD06_0224F0BC
str r0, [r5, #0x2c]
ldr r0, _021E6AA8 ; =0x00000627
bl FUN_020054C8
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
nop
_021E6AA8: .word 0x00000627
thumb_func_start MOD05_021E6AAC
MOD05_021E6AAC: ; 0x021E6AAC
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0x14]
bl FUN_0205AD98
cmp r0, #1
bne _021E6AD0
ldr r0, [r4, #4]
mov r1, #0x34
bl FUN_0205AFDC
add r1, r0, #0
ldr r0, [r4, #0x14]
bl FUN_0205ADDC
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
_021E6AD0:
mov r0, #0
pop {r4, pc}
thumb_func_start MOD05_021E6AD4
MOD05_021E6AD4: ; 0x021E6AD4
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0x14]
bl FUN_0205AE28
cmp r0, #1
bne _021E6AF0
ldr r0, [r4]
mov r1, #1
add r0, r0, #1
str r0, [r4]
ldr r0, [r4, #0x18]
bl MOD06_0224AF68
_021E6AF0:
mov r0, #0
pop {r4, pc}
thumb_func_start MOD05_021E6AF4
MOD05_021E6AF4: ; 0x021E6AF4
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0x14]
bl FUN_0205AD98
cmp r0, #1
bne _021E6B18
ldr r0, [r4, #4]
mov r1, #0x10
bl FUN_0205AFDC
add r1, r0, #0
ldr r0, [r4, #0x14]
bl FUN_0205ADDC
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
_021E6B18:
mov r0, #0
pop {r4, pc}
thumb_func_start MOD05_021E6B1C
MOD05_021E6B1C: ; 0x021E6B1C
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r0, [r5, #0x14]
bl FUN_0205AE28
cmp r0, #0
bne _021E6B2E
mov r0, #0
pop {r3, r4, r5, pc}
_021E6B2E:
ldr r0, [r5, #0x14]
bl FUN_020584D4
add r4, r0, #0
ldr r0, [r5, #0x14]
add r1, r4, #0
bl FUN_02059C90
lsl r0, r0, #0x18
lsr r0, r0, #0x18
add r1, r4, #0
bl MOD05_021E69BC
cmp r0, #1
bne _021E6B54
mov r0, #5
str r0, [r5]
mov r0, #2
pop {r3, r4, r5, pc}
_021E6B54:
ldr r0, [r5, #4]
mov r1, #0x34
bl FUN_0205AFDC
add r1, r0, #0
ldr r0, [r5, #0x14]
bl FUN_0205ADDC
mov r1, #0
str r1, [r5, #8]
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
ldr r0, [r5, #0x18]
bl MOD06_0224AF68
ldr r0, [r5, #0x2c]
bl MOD06_0224F0D0
mov r0, #0
str r0, [r5, #0x2c]
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021E6B80
MOD05_021E6B80: ; 0x021E6B80
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0x14]
bl FUN_0205AE28
cmp r0, #0
bne _021E6B92
mov r0, #0
pop {r4, pc}
_021E6B92:
ldr r0, [r4, #0x14]
bl FUN_0205AE50
ldr r0, [r4, #0x18]
bl MOD05_021E4DE4
mov r0, #1
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021E6BA4
MOD05_021E6BA4: ; 0x021E6BA4
push {r3, r4, r5, r6, r7, lr}
add r6, r0, #0
mov r0, #0x54
add r7, r1, #0
add r5, r2, #0
bl MOD05_021E72B8
add r4, r0, #0
str r7, [r4, #4]
str r6, [r4, #0x34]
.balign 4, 0
_021E6BB8: .word 0x63A06BB0
thumb_func_start MOD05_021E6BBC
MOD05_021E6BBC: ; 0x021E6BBC
ldr r0, [r6, #0x38]
bl FUN_020553A0
str r0, [r4, #0x3c]
cmp r5, #0
beq _021E6BD4
add r2, r4, #0
add r2, #0x40
ldmia r5!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r2!, {r0, r1}
_021E6BD4:
add r0, r4, #0
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD05_021E6BD8
MOD05_021E6BD8: ; 0x021E6BD8
push {r4, lr}
mov r2, #0
add r4, r0, #0
bl MOD05_021E6BA4
add r2, r0, #0
ldr r1, _021E6BF0 ; =MOD05_021E6C30
add r0, r4, #0
bl FUN_020463CC
pop {r4, pc}
nop
_021E6BF0: .word MOD05_021E6C30
thumb_func_start MOD05_021E6BF4
MOD05_021E6BF4: ; 0x021E6BF4
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x10
add r7, r2, #0
add r5, r0, #0
add r6, r1, #0
bl FUN_02046528
add r4, r0, #0
add r1, r7, #0
bl MOD05_021E72E8
add r1, r0, #0
add r0, r4, #0
add r2, sp, #0
bl MOD05_021E7228
add r0, r4, #0
add r1, r6, #0
add r2, sp, #0
bl MOD05_021E6BA4
add r2, r0, #0
ldr r1, _021E6C2C ; =MOD05_021E6C30
add r0, r5, #0
bl FUN_0204640C
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_021E6C2C: .word MOD05_021E6C30
thumb_func_start MOD05_021E6C30
MOD05_021E6C30: ; 0x021E6C30
push {r4, r5, r6, lr}
bl FUN_0204652C
ldr r6, _021E6C70 ; =0x021F7700
ldr r4, _021E6C74 ; =0x021F76EC
add r5, r0, #0
_021E6C3C:
ldr r0, [r5, #4]
cmp r0, #0
bne _021E6C4E
ldr r1, [r5]
add r0, r5, #0
lsl r1, r1, #2
ldr r1, [r4, r1]
blx r1
b _021E6C58
_021E6C4E:
ldr r1, [r5]
add r0, r5, #0
lsl r1, r1, #2
ldr r1, [r6, r1]
blx r1
_021E6C58:
cmp r0, #2
beq _021E6C3C
cmp r0, #1
bne _021E6C6A
add r0, r5, #0
bl MOD05_021E72DC
mov r0, #1
pop {r4, r5, r6, pc}
_021E6C6A:
mov r0, #0
pop {r4, r5, r6, pc}
nop
_021E6C70: .word 0x021F7700
_021E6C74: .word 0x021F76EC
thumb_func_start MOD05_021E6C78
MOD05_021E6C78: ; 0x021E6C78
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0x40]
cmp r0, #1
bne _021E6C96
add r1, r4, #0
ldr r0, [r4, #0x34]
add r1, #0x40
bl MOD05_021E723C
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
mov r0, #0
pop {r4, pc}
_021E6C96:
mov r0, #2
str r0, [r4]
mov r0, #1
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021E6CA0
MOD05_021E6CA0: ; 0x021E6CA0
push {r4, lr}
add r4, r0, #0
add r0, #0x40
bl MOD05_021E7250
cmp r0, #1
bne _021E6CBA
ldr r0, _021E6CC0 ; =0x0000064D
bl FUN_020054C8
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
_021E6CBA:
mov r0, #0
pop {r4, pc}
nop
_021E6CC0: .word 0x0000064D
thumb_func_start MOD05_021E6CC4
MOD05_021E6CC4: ; 0x021E6CC4
push {r4, r5, r6, lr}
sub sp, #0x18
add r5, r0, #0
ldr r0, [r5, #0x3c]
bl FUN_02058B2C
add r4, r0, #0
mov r0, #0
bl FUN_02059BF4
lsl r0, r0, #1
add r4, r4, r0
ldr r0, [r5, #0x3c]
bl FUN_02058B4C
add r6, r0, #0
mov r0, #0
bl FUN_02059C00
lsl r0, r0, #1
add r6, r6, r0
add r2, r5, #0
add r0, r4, #0
add r1, r6, #0
add r2, #0x28
bl FUN_02059E60
add r1, r5, #0
ldr r0, [r5, #0x34]
add r1, #0x28
bl FUN_02059E9C
str r4, [r5, #0xc]
ldr r0, [r5, #0x2c]
asr r1, r0, #3
asr r0, r1, #0xb
lsr r0, r0, #0x14
add r0, r1, r0
asr r0, r0, #0xc
str r0, [r5, #0x10]
str r6, [r5, #0x14]
ldr r0, [r5, #0x3c]
add r1, sp, #0xc
bl FUN_02058B5C
ldr r1, [sp, #0x14]
ldr r0, [r5, #0x30]
cmp r1, r0
bgt _021E6D2A
bl ErrorHandling
_021E6D2A:
ldr r1, [sp, #0x10]
ldr r0, [r5, #0x2c]
cmp r1, r0
blt _021E6D36
bl ErrorHandling
_021E6D36:
mov r0, #0
str r0, [sp]
ldr r1, [r5, #0x2c]
ldr r0, [sp, #0x10]
add r3, sp, #0
sub r2, r1, r0
ldr r1, [r5, #0x30]
ldr r0, [sp, #0x14]
str r2, [sp, #4]
sub r1, r1, r0
asr r0, r2, #5
lsr r0, r0, #0x1a
add r0, r2, r0
asr r0, r0, #6
str r0, [sp, #4]
asr r0, r1, #5
lsr r0, r0, #0x1a
add r0, r1, r0
add r2, r5, #0
str r1, [sp, #8]
asr r0, r0, #6
str r0, [sp, #8]
ldmia r3!, {r0, r1}
add r2, #0x1c
stmia r2!, {r0, r1}
ldr r0, [r3]
str r0, [r2]
ldr r0, [r5, #0x34]
bl MOD06_0224ED94
str r0, [r5, #0x50]
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
mov r0, #0
add sp, #0x18
pop {r4, r5, r6, pc}
thumb_func_start MOD05_021E6D80
MOD05_021E6D80: ; 0x021E6D80
push {r3, r4, lr}
sub sp, #0xc
add r4, r0, #0
ldr r0, [r4, #0x3c]
add r1, sp, #0
bl FUN_02058B5C
ldr r1, [sp, #4]
ldr r0, [r4, #0x20]
add r1, r1, r0
str r1, [sp, #4]
ldr r0, [r4, #0x2c]
cmp r1, r0
ble _021E6D9E
str r0, [sp, #4]
_021E6D9E:
ldr r0, [r4, #0x3c]
add r1, sp, #0
bl FUN_02058B6C
ldr r0, [r4, #8]
add r0, r0, #1
str r0, [r4, #8]
cmp r0, #0x20
blt _021E6DBA
mov r0, #0
str r0, [r4, #8]
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
_021E6DBA:
mov r0, #0
add sp, #0xc
pop {r3, r4, pc}
thumb_func_start MOD05_021E6DC0
MOD05_021E6DC0: ; 0x021E6DC0
push {r3, r4, lr}
sub sp, #0xc
add r4, r0, #0
ldr r0, [r4, #0x3c]
add r1, sp, #0
bl FUN_02058B5C
ldr r1, [sp, #4]
ldr r0, [r4, #0x20]
add r1, r1, r0
str r1, [sp, #4]
ldr r0, [r4, #0x2c]
cmp r1, r0
ble _021E6DDE
str r0, [sp, #4]
_021E6DDE:
ldr r1, [sp, #8]
ldr r0, [r4, #0x24]
add r1, r1, r0
str r1, [sp, #8]
ldr r0, [r4, #0x30]
cmp r1, r0
bge _021E6DEE
str r0, [sp, #8]
_021E6DEE:
ldr r0, [r4, #0x3c]
add r1, sp, #0
bl FUN_02058B6C
ldr r0, [r4, #8]
add r0, r0, #1
str r0, [r4, #8]
cmp r0, #0x40
bge _021E6E06
add sp, #0xc
mov r0, #0
pop {r3, r4, pc}
_021E6E06:
ldr r1, [sp, #8]
ldr r0, [r4, #0x30]
cmp r1, r0
beq _021E6E12
bl ErrorHandling
_021E6E12:
ldr r1, [sp, #4]
ldr r0, [r4, #0x2c]
cmp r1, r0
beq _021E6E1E
bl ErrorHandling
_021E6E1E:
ldr r0, [r4, #0x3c]
ldr r1, [r4, #0xc]
bl FUN_02058B30
ldr r0, [r4, #0x3c]
ldr r1, [r4, #0x10]
bl FUN_02058B40
ldr r0, [r4, #0x3c]
ldr r1, [r4, #0x14]
bl FUN_02058B50
ldr r0, [r4, #0x3c]
bl FUN_02059C60
ldr r0, [r4, #0x50]
bl MOD06_0224EDA8
mov r0, #1
add sp, #0xc
pop {r3, r4, pc}
thumb_func_start MOD05_021E6E48
MOD05_021E6E48: ; 0x021E6E48
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0x40]
cmp r0, #1
bne _021E6E66
add r1, r4, #0
ldr r0, [r4, #0x34]
add r1, #0x40
bl MOD05_021E723C
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
mov r0, #0
pop {r4, pc}
_021E6E66:
mov r0, #2
str r0, [r4]
pop {r4, pc}
thumb_func_start MOD05_021E6E6C
MOD05_021E6E6C: ; 0x021E6E6C
push {r4, lr}
add r4, r0, #0
add r0, #0x40
bl MOD05_021E7250
cmp r0, #1
bne _021E6E86
ldr r0, _021E6E8C ; =0x0000064D
bl FUN_020054C8
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
_021E6E86:
mov r0, #0
pop {r4, pc}
nop
_021E6E8C: .word 0x0000064D
thumb_func_start MOD05_021E6E90
MOD05_021E6E90: ; 0x021E6E90
push {r4, r5, r6, lr}
sub sp, #0x18
add r5, r0, #0
ldr r0, [r5, #0x3c]
bl FUN_02058B2C
add r4, r0, #0
mov r0, #1
bl FUN_02059BF4
lsl r0, r0, #1
add r4, r4, r0
ldr r0, [r5, #0x3c]
bl FUN_02058B4C
add r6, r0, #0
mov r0, #1
bl FUN_02059C00
lsl r0, r0, #1
add r6, r6, r0
add r2, r5, #0
add r0, r4, #0
add r1, r6, #0
add r2, #0x28
bl FUN_02059E60
add r1, r5, #0
ldr r0, [r5, #0x34]
add r1, #0x28
bl FUN_02059E9C
mov r0, #0
str r0, [r5, #0x18]
str r4, [r5, #0xc]
ldr r0, [r5, #0x2c]
asr r1, r0, #3
asr r0, r1, #0xb
lsr r0, r0, #0x14
add r0, r1, r0
asr r0, r0, #0xc
str r0, [r5, #0x10]
str r6, [r5, #0x14]
ldr r0, [r5, #0x3c]
add r1, sp, #0xc
bl FUN_02058B5C
ldr r1, [sp, #0x14]
ldr r0, [r5, #0x30]
cmp r1, r0
blt _021E6EFA
bl ErrorHandling
_021E6EFA:
ldr r1, [sp, #0x10]
ldr r0, [r5, #0x2c]
cmp r1, r0
bgt _021E6F06
bl ErrorHandling
_021E6F06:
mov r0, #0
str r0, [sp]
ldr r1, [r5, #0x2c]
ldr r0, [sp, #0x10]
add r3, sp, #0
sub r2, r1, r0
ldr r1, [r5, #0x30]
ldr r0, [sp, #0x14]
str r2, [sp, #4]
sub r1, r1, r0
asr r0, r2, #5
lsr r0, r0, #0x1a
add r0, r2, r0
asr r0, r0, #6
str r0, [sp, #4]
asr r0, r1, #5
lsr r0, r0, #0x1a
add r0, r1, r0
add r2, r5, #0
str r1, [sp, #8]
asr r0, r0, #6
str r0, [sp, #8]
ldmia r3!, {r0, r1}
add r2, #0x1c
stmia r2!, {r0, r1}
ldr r0, [r3]
str r0, [r2]
ldr r0, [r5, #0x34]
bl MOD06_0224ED94
str r0, [r5, #0x50]
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
mov r0, #0
add sp, #0x18
pop {r4, r5, r6, pc}
thumb_func_start MOD05_021E6F50
MOD05_021E6F50: ; 0x021E6F50
push {r3, r4, lr}
sub sp, #0xc
add r4, r0, #0
ldr r0, [r4, #0x3c]
add r1, sp, #0
bl FUN_02058B5C
ldr r1, [sp, #8]
ldr r0, [r4, #0x24]
add r1, r1, r0
str r1, [sp, #8]
ldr r0, [r4, #0x30]
cmp r1, r0
ble _021E6F70
str r0, [sp, #8]
b _021E6F78
_021E6F70:
ldr r1, [r4, #0x18]
ldr r0, [r4, #0x24]
add r0, r1, r0
str r0, [r4, #0x18]
_021E6F78:
ldr r0, [r4, #0x3c]
add r1, sp, #0
bl FUN_02058B6C
ldr r0, [r4, #8]
add r0, r0, #1
str r0, [r4, #8]
cmp r0, #0x20
blt _021E6F94
mov r0, #0
str r0, [r4, #8]
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
_021E6F94:
mov r0, #0
add sp, #0xc
pop {r3, r4, pc}
.balign 4, 0
thumb_func_start MOD05_021E6F9C
MOD05_021E6F9C: ; 0x021E6F9C
push {r3, r4, lr}
sub sp, #0xc
add r4, r0, #0
ldr r0, [r4, #0x3c]
add r1, sp, #0
bl FUN_02058B5C
ldr r1, [sp, #4]
ldr r0, [r4, #0x20]
add r1, r1, r0
str r1, [sp, #4]
ldr r0, [r4, #0x2c]
cmp r1, r0
bge _021E6FBA
str r0, [sp, #4]
_021E6FBA:
ldr r1, [sp, #8]
ldr r0, [r4, #0x24]
add r1, r1, r0
str r1, [sp, #8]
ldr r0, [r4, #0x30]
cmp r1, r0
ble _021E6FCC
str r0, [sp, #8]
b _021E6FD4
_021E6FCC:
ldr r1, [r4, #0x18]
ldr r0, [r4, #0x24]
add r0, r1, r0
str r0, [r4, #0x18]
_021E6FD4:
ldr r0, [r4, #0x3c]
add r1, sp, #0
bl FUN_02058B6C
ldr r0, [r4, #8]
add r0, r0, #1
str r0, [r4, #8]
cmp r0, #0x40
bge _021E6FEC
add sp, #0xc
mov r0, #0
pop {r3, r4, pc}
_021E6FEC:
ldr r1, [sp, #8]
ldr r0, [r4, #0x30]
cmp r1, r0
beq _021E6FF8
bl ErrorHandling
_021E6FF8:
ldr r1, [sp, #4]
ldr r0, [r4, #0x2c]
cmp r1, r0
beq _021E7004
bl ErrorHandling
_021E7004:
ldr r0, [r4, #0x3c]
ldr r1, [r4, #0xc]
bl FUN_02058B30
ldr r0, [r4, #0x3c]
ldr r1, [r4, #0x10]
bl FUN_02058B40
ldr r0, [r4, #0x3c]
ldr r1, [r4, #0x14]
bl FUN_02058B50
ldr r0, [r4, #0x3c]
bl FUN_02059C60
ldr r0, [r4, #0x50]
bl MOD06_0224EDA8
mov r0, #1
add sp, #0xc
pop {r3, r4, pc}
.balign 4, 0
thumb_func_start MOD05_021E7030
MOD05_021E7030: ; 0x021E7030
push {r3, lr}
bl FUN_02046528
bl MOD05_021E703C
pop {r3, pc}
thumb_func_start MOD05_021E703C
MOD05_021E703C: ; 0x021E703C
push {r3, r4, r5, lr}
add r5, r0, #0
mov r0, #0x18
bl MOD05_021E72B8
add r4, r0, #0
str r5, [r4]
ldr r0, [r5, #0x38]
str r0, [r4, #4]
bl FUN_020553A0
str r0, [r4, #8]
ldr r0, [r4, #4]
bl FUN_020553E8
str r0, [r4, #0x10]
ldr r0, [r5, #0x10]
ldr r1, _021E7068 ; =MOD05_021E706C
add r2, r4, #0
bl FUN_0204640C
pop {r3, r4, r5, pc}
.balign 4, 0
_021E7068: .word MOD05_021E706C
thumb_func_start MOD05_021E706C
MOD05_021E706C: ; 0x021E706C
push {r4, lr}
bl FUN_0204652C
add r4, r0, #0
ldr r0, [r4, #0xc]
cmp r0, #0
beq _021E7084
cmp r0, #1
beq _021E7096
cmp r0, #2
beq _021E70C8
b _021E70E2
_021E7084:
ldr r0, [r4, #8]
ldr r1, _021E70E8 ; =0x021F7758
bl FUN_0205AEA4
str r0, [r4, #0x14]
ldr r0, [r4, #0xc]
add r0, r0, #1
str r0, [r4, #0xc]
b _021E70E2
_021E7096:
ldr r0, [r4, #0x14]
bl FUN_0205AEF0
cmp r0, #1
bne _021E70E2
ldr r1, [r4, #0x10]
mov r0, #5
bl FUN_020555A0
add r1, r0, #0
ldr r0, [r4, #4]
bl MOD05_021E726C
ldr r0, [r4, #0x14]
bl FUN_0205AEFC
ldr r0, [r4, #8]
ldr r1, _021E70EC ; =0x021F77BC
bl FUN_0205AEA4
str r0, [r4, #0x14]
ldr r0, [r4, #0xc]
add r0, r0, #1
str r0, [r4, #0xc]
b _021E70E2
_021E70C8:
ldr r0, [r4, #0x14]
bl FUN_0205AEF0
cmp r0, #1
bne _021E70E2
ldr r0, [r4, #0x14]
bl FUN_0205AEFC
add r0, r4, #0
bl MOD05_021E72DC
mov r0, #1
pop {r4, pc}
_021E70E2:
mov r0, #0
pop {r4, pc}
nop
_021E70E8: .word 0x021F7758
_021E70EC: .word 0x021F77BC
thumb_func_start MOD05_021E70F0
MOD05_021E70F0: ; 0x021E70F0
push {r3, r4, r5, lr}
add r4, r0, #0
bl FUN_020553A0
add r5, r0, #0
bl FUN_02058934
cmp r0, #0
beq _021E7136
add r0, r4, #0
bl FUN_020553C4
cmp r0, #0
bne _021E7136
add r0, r5, #0
bl FUN_02058458
sub r0, #0xc4
cmp r0, #1
bls _021E7136
add r0, r4, #0
bl FUN_020553E0
add r5, r0, #0
add r0, r4, #0
mov r1, #0x40
bl MOD05_021E5FD8
add r0, r4, #0
bl MOD05_021E5FE0
add r0, r4, #0
add r1, r5, #0
bl MOD05_021E5FD8
_021E7136:
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021E7138
MOD05_021E7138: ; 0x021E7138
push {r3, r4, r5, lr}
add r4, r0, #0
bl FUN_020553A0
add r5, r0, #0
bl FUN_02058934
cmp r0, #0
beq _021E7180
add r0, r4, #0
bl FUN_020553C4
cmp r0, #0
bne _021E7180
add r0, r5, #0
bl FUN_02058458
cmp r0, #0xc4
beq _021E7162
cmp r0, #0xc5
bne _021E7180
_021E7162:
add r0, r4, #0
bl FUN_020553E0
add r5, r0, #0
add r0, r4, #0
mov r1, #1
bl MOD05_021E5FD8
add r0, r4, #0
bl MOD05_021E5FE0
add r0, r4, #0
add r1, r5, #0
bl MOD05_021E5FD8
_021E7180:
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021E7184
MOD05_021E7184: ; 0x021E7184
push {r3, r4, r5, r6, r7, lr}
add r6, r0, #0
ldr r5, [r6, #0x38]
add r0, r5, #0
bl FUN_020553C4
add r7, r0, #0
beq _021E7198
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
_021E7198:
add r0, r5, #0
bl FUN_020553A0
str r0, [sp]
mov r0, #4
mov r1, #0x10
bl AllocFromHeapAtEnd
add r4, r0, #0
mov r0, #0
str r0, [r4]
str r6, [r4, #8]
str r5, [r4, #0xc]
ldr r0, [sp]
str r7, [r4, #4]
bl FUN_02058914
add r0, r5, #0
mov r1, #0x80
bl MOD05_021E5FD8
add r0, r5, #0
bl MOD05_021E5FE0
ldr r0, _021E71E0 ; =MOD05_021E7218
ldr r2, _021E71E4 ; =0x0000FFFF
add r1, r4, #0
bl FUN_0200CA44
add r4, r0, #0
bne _021E71DA
bl ErrorHandling
_021E71DA:
add r0, r4, #0
pop {r3, r4, r5, r6, r7, pc}
nop
_021E71E0: .word MOD05_021E7218
_021E71E4: .word 0x0000FFFF
thumb_func_start MOD05_021E71E8
MOD05_021E71E8: ; 0x021E71E8
push {r4, r5, r6, lr}
add r5, r0, #0
beq _021E7216
bl FUN_0201B6C8
add r6, r0, #0
ldr r4, [r6, #0xc]
add r0, r4, #0
bl FUN_020553E8
add r1, r0, #0
mov r0, #0
bl FUN_020555A0
add r0, r4, #0
bl MOD05_021E6014
add r0, r6, #0
bl FreeToHeap
add r0, r5, #0
bl FUN_0200CAB4
_021E7216:
pop {r4, r5, r6, pc}
thumb_func_start MOD05_021E7218
MOD05_021E7218: ; 0x021E7218
push {r3, lr}
ldr r0, [r1, #0xc]
bl FUN_020553A0
bl FUN_020586A0
pop {r3, pc}
.balign 4, 0
thumb_func_start MOD05_021E7228
MOD05_021E7228: ; 0x021E7228
push {r4, lr}
add r4, r2, #0
mov r2, #1
str r2, [r4]
str r1, [r4, #8]
ldr r0, [r0, #0x38]
bl FUN_020553E8
str r0, [r4, #4]
pop {r4, pc}
thumb_func_start MOD05_021E723C
MOD05_021E723C: ; 0x021E723C
push {r4, lr}
add r4, r1, #0
ldr r2, [r4, #8]
ldr r3, [r4, #4]
mov r1, #0
bl MOD06_0224666C
str r0, [r4, #0xc]
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021E7250
MOD05_021E7250: ; 0x021E7250
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0xc]
bl MOD06_022466A0
cmp r0, #1
bne _021E7268
ldr r0, [r4, #0xc]
bl MOD06_022466AC
mov r0, #1
pop {r4, pc}
_021E7268:
mov r0, #0
pop {r4, pc}
thumb_func_start MOD05_021E726C
MOD05_021E726C: ; 0x021E726C
push {r4, lr}
add r4, r1, #0
bl FUN_020553A0
add r1, r4, #0
bl MOD05_021F3490
pop {r4, pc}
thumb_func_start MOD05_021E727C
MOD05_021E727C: ; 0x021E727C
push {r3, r4, r5, r6, r7, lr}
add r5, r1, #0
add r4, r0, #0
bl FUN_02055320
add r6, r0, #0
add r0, r5, #0
bl FUN_02059BF4
add r7, r0, #0
add r0, r4, #0
bl FUN_0205532C
str r0, [sp]
add r0, r5, #0
bl FUN_02059C00
add r5, r0, #0
add r0, r4, #0
bl FUN_020553A0
bl FUN_02058578
ldr r2, [sp]
add r1, r6, r7
add r2, r2, r5
bl FUN_02058D74
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021E72B8
MOD05_021E72B8: ; 0x021E72B8
push {r3, r4, r5, lr}
add r5, r0, #0
mov r0, #4
add r1, r5, #0
bl AllocFromHeapAtEnd
add r4, r0, #0
bne _021E72CC
bl ErrorHandling
_021E72CC:
add r0, r4, #0
mov r1, #0
add r2, r5, #0
bl memset
add r0, r4, #0
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021E72DC
MOD05_021E72DC: ; 0x021E72DC
ldr r3, _021E72E4 ; =FUN_02016A8C
add r1, r0, #0
mov r0, #4
bx r3
.balign 4, 0
_021E72E4: .word FUN_02016A8C
thumb_func_start MOD05_021E72E8
MOD05_021E72E8: ; 0x021E72E8
push {r4, lr}
ldr r0, [r0, #0xc]
add r4, r1, #0
bl FUN_0206BB1C
add r1, r4, #0
bl FUN_0206B9B0
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021E72FC
MOD05_021E72FC: ; 0x021E72FC
push {r4, r5, r6, lr}
add r6, r1, #0
add r5, r0, #0
add r0, r6, #0
bl FUN_020553A0
bl FUN_02058720
lsl r0, r0, #0x18
lsr r4, r0, #0x18
add r0, r4, #0
bl FUN_02054B30
cmp r0, #1
bne _021E731E
mov r2, #3
b _021E734C
_021E731E:
add r0, r4, #0
bl FUN_02054B3C
cmp r0, #1
bne _021E732C
mov r2, #2
b _021E734C
_021E732C:
add r0, r4, #0
bl FUN_02054B48
cmp r0, #1
bne _021E733A
mov r2, #0
b _021E734C
_021E733A:
add r0, r4, #0
bl FUN_02054B54
cmp r0, #1
bne _021E7348
mov r2, #1
b _021E734C
_021E7348:
mov r0, #0
pop {r4, r5, r6, pc}
_021E734C:
add r0, r5, #0
add r1, r6, #0
bl MOD05_021E7358
mov r0, #1
pop {r4, r5, r6, pc}
thumb_func_start MOD05_021E7358
MOD05_021E7358: ; 0x021E7358
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
mov r0, #0x18
add r6, r1, #0
add r7, r2, #0
bl MOD05_021E74D4
add r4, r0, #0
str r5, [r4, #0xc]
str r6, [r4, #0x10]
ldr r0, _021E7380 ; =0x00000658
str r7, [r4]
bl FUN_020054C8
ldr r1, _021E7384 ; =MOD05_021E73B4
add r0, r5, #0
add r2, r4, #0
bl FUN_020463CC
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_021E7380: .word 0x00000658
_021E7384: .word MOD05_021E73B4
thumb_func_start MOD05_021E7388
MOD05_021E7388: ; 0x021E7388
cmp r0, #3
bhi _021E73B0
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021E7398: ; jump table
.short _021E73A0 - _021E7398 - 2 ; case 0
.short _021E73A8 - _021E7398 - 2 ; case 1
.short _021E73A4 - _021E7398 - 2 ; case 2
.short _021E73AC - _021E7398 - 2 ; case 3
_021E73A0:
mov r0, #2
bx lr
_021E73A4:
mov r0, #1
bx lr
_021E73A8:
mov r0, #3
bx lr
_021E73AC:
mov r0, #0
bx lr
_021E73B0:
mov r0, #0
bx lr
thumb_func_start MOD05_021E73B4
MOD05_021E73B4: ; 0x021E73B4
push {r4, r5, r6, lr}
bl FUN_0204652C
add r4, r0, #0
ldr r0, [r4, #0x10]
bl FUN_020553A0
add r6, r0, #0
bl FUN_02058720
lsl r0, r0, #0x18
lsr r5, r0, #0x18
ldr r0, [r4, #8]
cmp r0, #0
beq _021E73DC
cmp r0, #1
beq _021E73EE
cmp r0, #2
beq _021E741C
b _021E74CA
_021E73DC:
mov r1, #1
add r0, r6, #0
lsl r1, r1, #8
bl FUN_02058410
ldr r0, [r4, #8]
add r0, r0, #1
str r0, [r4, #8]
b _021E74CA
_021E73EE:
ldr r0, [r4, #0x10]
bl FUN_02057254
cmp r0, #0
beq _021E74CA
ldr r0, [r4]
mov r1, #0xc
bl FUN_0205AFDC
add r1, r0, #0
ldr r0, [r4, #0x10]
bl FUN_02057260
ldr r0, [r4, #0x10]
ldr r1, [r4]
bl FUN_02055304
ldr r0, [r4, #8]
add r0, r0, #1
str r0, [r4, #8]
mov r0, #7
str r0, [r4, #4]
b _021E74CA
_021E741C:
ldr r0, [r4, #4]
cmp r0, #2
beq _021E742A
cmp r0, #4
beq _021E742A
cmp r0, #6
bne _021E743A
_021E742A:
ldr r0, [r4]
bl MOD05_021E7388
str r0, [r4]
ldr r0, [r4, #0x10]
ldr r1, [r4]
bl FUN_02055304
_021E743A:
ldr r0, [r4, #4]
sub r0, r0, #1
str r0, [r4, #4]
bne _021E74CA
add r0, r5, #0
bl FUN_02054B30
cmp r0, #1
bne _021E7452
mov r0, #3
str r0, [r4]
b _021E748A
_021E7452:
add r0, r5, #0
bl FUN_02054B3C
cmp r0, #1
bne _021E7462
mov r0, #2
str r0, [r4]
b _021E748A
_021E7462:
add r0, r5, #0
bl FUN_02054B48
cmp r0, #1
bne _021E7472
mov r0, #0
str r0, [r4]
b _021E748A
_021E7472:
add r0, r5, #0
bl FUN_02054B54
cmp r0, #1
bne _021E7482
mov r0, #1
str r0, [r4]
b _021E748A
_021E7482:
ldr r0, [r4]
bl MOD05_021E7388
str r0, [r4]
_021E748A:
ldr r0, [r4, #0x10]
ldr r2, [r4]
add r1, r6, #0
bl FUN_02056B74
cmp r0, #0
bne _021E749E
mov r0, #1
str r0, [r4, #8]
b _021E74CA
_021E749E:
add r0, r6, #0
mov r1, #0x80
bl FUN_02058418
mov r1, #1
add r0, r6, #0
lsl r1, r1, #8
bl FUN_02058418
ldr r0, [r4, #0x10]
ldr r1, [r4]
bl FUN_02055304
add r0, r4, #0
bl MOD05_021E74F8
ldr r0, _021E74D0 ; =0x00000658
mov r1, #0
bl FUN_020054F0
mov r0, #1
pop {r4, r5, r6, pc}
_021E74CA:
mov r0, #0
pop {r4, r5, r6, pc}
nop
_021E74D0: .word 0x00000658
thumb_func_start MOD05_021E74D4
MOD05_021E74D4: ; 0x021E74D4
push {r3, r4, r5, lr}
add r5, r0, #0
mov r0, #4
add r1, r5, #0
bl AllocFromHeapAtEnd
add r4, r0, #0
bne _021E74E8
bl ErrorHandling
_021E74E8:
add r0, r4, #0
mov r1, #0
add r2, r5, #0
bl memset
add r0, r4, #0
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021E74F8
MOD05_021E74F8: ; 0x021E74F8
ldr r3, _021E7500 ; =FUN_02016A8C
add r1, r0, #0
mov r0, #4
bx r3
.balign 4, 0
_021E7500: .word FUN_02016A8C
thumb_func_start MOD05_021E7504
MOD05_021E7504: ; 0x021E7504
add r1, r0, #0
ldr r0, [r1, #0x10]
cmp r0, #3
bhi _021E7536
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021E7518: ; jump table
.short _021E7520 - _021E7518 - 2 ; case 0
.short _021E752C - _021E7518 - 2 ; case 1
.short _021E7526 - _021E7518 - 2 ; case 2
.short _021E7532 - _021E7518 - 2 ; case 3
_021E7520:
mov r0, #2
str r0, [r1, #0x10]
b _021E7536
_021E7526:
mov r0, #1
str r0, [r1, #0x10]
b _021E7536
_021E752C:
mov r0, #3
str r0, [r1, #0x10]
b _021E7536
_021E7532:
mov r0, #0
str r0, [r1, #0x10]
_021E7536:
ldr r0, [r1]
ldr r3, _021E7540 ; =FUN_02055304
ldr r0, [r0, #0x38]
ldr r1, [r1, #0x10]
bx r3
.balign 4, 0
_021E7540: .word FUN_02055304
thumb_func_start MOD05_021E7544
MOD05_021E7544: ; 0x021E7544
push {r4, r5, r6, r7, lr}
sub sp, #0x24
add r5, r1, #0
add r7, r0, #0
ldr r0, [r5]
ldr r0, [r0, #0x38]
bl FUN_020553A0
add r6, r0, #0
ldr r0, [r5, #8]
cmp r0, #0
beq _021E7564
cmp r0, #1
beq _021E756E
add sp, #0x24
pop {r4, r5, r6, r7, pc}
_021E7564:
mov r0, #1
str r0, [r5, #8]
ldr r0, _021E760C ; =0x0000064F
bl FUN_020054C8
_021E756E:
ldr r0, [r5, #0xc]
lsr r2, r0, #0x1f
lsl r1, r0, #0x1f
sub r1, r1, r2
mov r0, #0x1f
ror r1, r0
add r0, r2, r1
beq _021E7584
add r0, r5, #0
bl MOD05_021E7504
_021E7584:
add r0, r6, #0
add r1, sp, #0x18
bl FUN_02058BA4
ldr r4, [r5, #0xc]
add r0, r4, #0
bl _dflt
str r0, [sp, #0x14]
lsl r0, r4, #0xb
str r1, [sp, #0x10]
bl _dflt
add r2, r0, #0
add r3, r1, #0
ldr r0, _021E7610 ; =0x9999999A
ldr r1, _021E7614 ; =0x40C19999
bl _dadd
add r2, r0, #0
add r3, r1, #0
ldr r0, [sp, #0x14]
ldr r1, [sp, #0x10]
bl _dmul
bl _dfix
str r0, [sp, #0x1c]
add r0, r6, #0
add r1, sp, #0x18
bl FUN_02058BB4
ldr r0, [r5, #0xc]
add r0, r0, #1
str r0, [r5, #0xc]
cmp r0, #0x14
bne _021E75EA
mov r0, #6
str r0, [sp]
mov r1, #0
mov r0, #1
str r0, [sp, #4]
mov r0, #4
str r0, [sp, #8]
mov r0, #2
add r2, r1, #0
add r3, r1, #0
bl FUN_0200E1D0
add sp, #0x24
pop {r4, r5, r6, r7, pc}
_021E75EA:
ble _021E7606
bl FUN_0200E308
cmp r0, #0
beq _021E7606
ldr r0, [r5, #4]
mov r1, #1
str r1, [r0]
add r0, r5, #0
bl FreeToHeap
add r0, r7, #0
bl FUN_0200CAB4
_021E7606:
add sp, #0x24
pop {r4, r5, r6, r7, pc}
nop
_021E760C: .word 0x0000064F
_021E7610: .word 0x9999999A
_021E7614: .word 0x40C19999
thumb_func_start MOD05_021E7618
MOD05_021E7618: ; 0x021E7618
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x20
add r5, r1, #0
add r6, r0, #0
ldr r0, [r5]
ldr r0, [r0, #0x38]
bl FUN_020553A0
ldr r1, [r5, #8]
add r4, r0, #0
cmp r1, #0
beq _021E763C
cmp r1, #1
beq _021E7694
cmp r1, #2
beq _021E771C
add sp, #0x20
pop {r3, r4, r5, r6, r7, pc}
_021E763C:
bl FUN_02058914
add r0, r4, #0
add r1, sp, #0x14
bl FUN_02058BA4
ldr r1, [r5, #0xc]
mov r0, #0x14
sub r6, r0, r1
add r0, r6, #0
bl _dflt
str r0, [sp, #0xc]
lsl r0, r6, #0xb
add r7, r1, #0
bl _dflt
add r2, r0, #0
add r3, r1, #0
ldr r0, _021E7744 ; =0x9999999A
ldr r1, _021E7748 ; =0x40C19999
bl _dadd
add r2, r0, #0
add r3, r1, #0
ldr r0, [sp, #0xc]
add r1, r7, #0
bl _dmul
bl _dfix
str r0, [sp, #0x18]
add r0, r4, #0
add r1, sp, #0x14
bl FUN_02058BB4
add r0, r4, #0
bl MOD05_021F1D8C
ldr r0, _021E774C ; =0x0000064F
bl FUN_020054C8
mov r0, #1
str r0, [r5, #8]
_021E7694:
ldr r0, [r5, #0xc]
lsr r2, r0, #0x1f
lsl r1, r0, #0x1f
sub r1, r1, r2
mov r0, #0x1f
ror r1, r0
add r0, r2, r1
beq _021E76AA
add r0, r5, #0
bl MOD05_021E7504
_021E76AA:
add r0, r4, #0
add r1, sp, #0x14
bl FUN_02058BA4
ldr r1, [r5, #0xc]
mov r0, #0x14
sub r6, r0, r1
add r0, r6, #0
bl _dflt
str r0, [sp, #0x10]
lsl r0, r6, #0xb
add r7, r1, #0
bl _dflt
add r2, r0, #0
add r3, r1, #0
ldr r0, _021E7744 ; =0x9999999A
ldr r1, _021E7748 ; =0x40C19999
bl _dadd
add r2, r0, #0
add r3, r1, #0
ldr r0, [sp, #0x10]
add r1, r7, #0
bl _dmul
bl _dfix
str r0, [sp, #0x18]
add r0, r4, #0
add r1, sp, #0x14
bl FUN_02058BB4
ldr r0, [r5, #0xc]
add r0, r0, #1
str r0, [r5, #0xc]
cmp r0, #2
bne _021E770E
mov r0, #6
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
mov r1, #4
str r1, [sp, #8]
add r1, r0, #0
add r2, r0, #0
mov r3, #0
bl FUN_0200E1D0
_021E770E:
ldr r0, [r5, #0xc]
cmp r0, #0x14
ble _021E7740
mov r0, #2
add sp, #0x20
str r0, [r5, #8]
pop {r3, r4, r5, r6, r7, pc}
_021E771C:
bl FUN_0200E308
cmp r0, #0
beq _021E7740
ldr r0, [r5]
mov r1, #1
ldr r0, [r0, #0x38]
bl FUN_02055304
ldr r0, [r5, #4]
mov r1, #1
str r1, [r0]
add r0, r5, #0
bl FreeToHeap
add r0, r6, #0
bl FUN_0200CAB4
_021E7740:
add sp, #0x20
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_021E7744: .word 0x9999999A
_021E7748: .word 0x40C19999
_021E774C: .word 0x0000064F
thumb_func_start MOD05_021E7750
MOD05_021E7750: ; 0x021E7750
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r6, r1, #0
mov r0, #4
mov r1, #0x14
add r7, r2, #0
bl AllocFromHeapAtEnd
add r4, r0, #0
mov r1, #0
mov r2, #0x14
bl MI_CpuFill8
str r5, [r4]
str r7, [r4, #4]
ldr r0, [r5, #0x38]
bl FUN_020552F8
str r0, [r4, #0x10]
cmp r6, #0
beq _021E7786
ldr r0, _021E7794 ; =MOD05_021E7544
add r1, r4, #0
mov r2, #0x64
bl FUN_0200CA44
pop {r3, r4, r5, r6, r7, pc}
_021E7786:
ldr r0, _021E7798 ; =MOD05_021E7618
add r1, r4, #0
mov r2, #0x64
bl FUN_0200CA44
pop {r3, r4, r5, r6, r7, pc}
nop
_021E7794: .word MOD05_021E7544
_021E7798: .word MOD05_021E7618
thumb_func_start MOD05_021E779C
MOD05_021E779C: ; 0x021E779C
push {r4, lr}
mov r2, #0
mov r1, #0x14
add r3, r2, #0
add r4, r0, #0
bl MOD05_021E4BE8
str r4, [r0, #0x10]
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021E77B0
MOD05_021E77B0: ; 0x021E77B0
push {r4, lr}
add r4, r0, #0
bl MOD05_021E78B4
add r0, r4, #0
bl MOD05_021E4C00
pop {r4, pc}
thumb_func_start MOD05_021E77C0
MOD05_021E77C0: ; 0x021E77C0
ldr r1, [r0]
add r1, r1, #1
str r1, [r0]
bx lr
thumb_func_start MOD05_021E77C8
MOD05_021E77C8: ; 0x021E77C8
push {r3, lr}
ldr r1, [r0]
sub r1, r1, #1
str r1, [r0]
bpl _021E77D6
bl ErrorHandling
_021E77D6:
pop {r3, pc}
thumb_func_start MOD05_021E77D8
MOD05_021E77D8: ; 0x021E77D8
ldr r1, [r0, #4]
add r1, r1, #1
str r1, [r0, #4]
bx lr
thumb_func_start MOD05_021E77E0
MOD05_021E77E0: ; 0x021E77E0
push {r3, lr}
ldr r1, [r0, #4]
sub r1, r1, #1
str r1, [r0, #4]
bpl _021E77EE
bl ErrorHandling
_021E77EE:
pop {r3, pc}
thumb_func_start MOD05_021E77F0
MOD05_021E77F0: ; 0x021E77F0
push {r3, lr}
cmp r1, #0
bne _021E77FC
bl MOD05_021E77C0
pop {r3, pc}
_021E77FC:
bl MOD05_021E77D8
pop {r3, pc}
.balign 4, 0
thumb_func_start MOD05_021E7804
MOD05_021E7804: ; 0x021E7804
push {r3, lr}
cmp r1, #0
bne _021E7810
bl MOD05_021E77C8
pop {r3, pc}
_021E7810:
bl MOD05_021E77E0
pop {r3, pc}
.balign 4, 0
thumb_func_start MOD05_021E7818
MOD05_021E7818: ; 0x021E7818
push {r3, r4, lr}
sub sp, #0xc
add r4, r0, #0
ldr r0, [r4, #8]
cmp r0, #0
bne _021E785C
mov r1, #1
str r1, [r4, #8]
ldr r0, [r4, #0x10]
mov r2, #0x55
bl MOD05_021E5078
ldr r0, [r4, #0x10]
mov r1, #1
mov r2, #0x75
bl MOD05_021E50AC
mov r1, #1
ldr r0, [r4, #0x10]
mov r2, #4
add r3, r1, #0
bl MOD05_021E50D4
mov r1, #1
str r1, [sp]
mov r0, #0
str r0, [sp, #4]
ldr r0, _021E7860 ; =0x021F7854
add r2, r1, #0
str r0, [sp, #8]
ldr r0, [r4, #0x10]
add r3, r1, #0
bl MOD05_021E4EFC
_021E785C:
add sp, #0xc
pop {r3, r4, pc}
.balign 4, 0
_021E7860: .word 0x021F7854
thumb_func_start MOD05_021E7864
MOD05_021E7864: ; 0x021E7864
push {r3, r4, lr}
sub sp, #0xc
add r4, r0, #0
ldr r0, [r4, #0xc]
cmp r0, #0
bne _021E78AC
mov r0, #1
str r0, [r4, #0xc]
ldr r0, [r4, #0x10]
mov r1, #0xa
mov r2, #0x6c
bl MOD05_021E5078
ldr r0, [r4, #0x10]
mov r1, #0xa
mov r2, #0x75
bl MOD05_021E50AC
ldr r0, [r4, #0x10]
mov r1, #0xb
mov r2, #0xd
mov r3, #1
bl MOD05_021E50D4
mov r0, #0xb
str r0, [sp]
mov r0, #0
str r0, [sp, #4]
ldr r0, _021E78B0 ; =0x021F7854
mov r2, #0xa
str r0, [sp, #8]
ldr r0, [r4, #0x10]
mov r1, #0xc
add r3, r2, #0
bl MOD05_021E4EFC
_021E78AC:
add sp, #0xc
pop {r3, r4, pc}
.balign 4, 0
_021E78B0: .word 0x021F7854
thumb_func_start MOD05_021E78B4
MOD05_021E78B4: ; 0x021E78B4
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #8]
cmp r0, #1
bne _021E78E2
mov r0, #0
str r0, [r4, #8]
ldr r0, [r4, #0x10]
mov r1, #1
bl MOD05_021E50A0
ldr r0, [r4, #0x10]
mov r1, #1
bl MOD05_021E50C8
ldr r0, [r4, #0x10]
mov r1, #1
bl MOD05_021E5114
ldr r0, [r4, #0x10]
mov r1, #1
bl MOD05_021E506C
_021E78E2:
pop {r4, pc}
thumb_func_start MOD05_021E78E4
MOD05_021E78E4: ; 0x021E78E4
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0xc]
cmp r0, #1
bne _021E7912
mov r0, #0
str r0, [r4, #0xc]
ldr r0, [r4, #0x10]
mov r1, #0xa
bl MOD05_021E50A0
ldr r0, [r4, #0x10]
mov r1, #0xa
bl MOD05_021E50C8
ldr r0, [r4, #0x10]
mov r1, #0xb
bl MOD05_021E5114
ldr r0, [r4, #0x10]
mov r1, #0xc
bl MOD05_021E506C
_021E7912:
pop {r4, pc}
thumb_func_start MOD05_021E7914
MOD05_021E7914: ; 0x021E7914
push {r3, lr}
ldr r1, [r0]
cmp r1, #0
bne _021E7920
bl MOD05_021E7818
_021E7920:
pop {r3, pc}
.balign 4, 0
thumb_func_start MOD05_021E7924
MOD05_021E7924: ; 0x021E7924
push {r3, lr}
ldr r1, [r0, #4]
cmp r1, #0
bne _021E7930
bl MOD05_021E7864
_021E7930:
pop {r3, pc}
.balign 4, 0
thumb_func_start MOD05_021E7934
MOD05_021E7934: ; 0x021E7934
push {r3, lr}
ldr r1, [r0]
cmp r1, #0
bne _021E7940
bl MOD05_021E78B4
_021E7940:
pop {r3, pc}
.balign 4, 0
thumb_func_start MOD05_021E7944
MOD05_021E7944: ; 0x021E7944
push {r3, lr}
ldr r1, [r0, #4]
cmp r1, #0
bne _021E7950
bl MOD05_021E78E4
_021E7950:
pop {r3, pc}
.balign 4, 0
thumb_func_start MOD05_021E7954
MOD05_021E7954: ; 0x021E7954
push {r3, lr}
cmp r1, #0
bne _021E7960
bl MOD05_021E7914
pop {r3, pc}
_021E7960:
bl MOD05_021E7924
pop {r3, pc}
.balign 4, 0
thumb_func_start MOD05_021E7968
MOD05_021E7968: ; 0x021E7968
push {r3, lr}
cmp r1, #0
bne _021E7974
bl MOD05_021E7934
pop {r3, pc}
_021E7974:
bl MOD05_021E7944
pop {r3, pc}
.balign 4, 0
thumb_func_start MOD05_021E797C
MOD05_021E797C: ; 0x021E797C
push {r3, r4, r5, lr}
sub sp, #8
ldr r3, _021E7998 ; =0x021F7824
add r4, sp, #0
ldr r5, [r3]
ldr r3, [r3, #4]
str r5, [sp]
str r3, [sp, #4]
lsl r1, r1, #2
ldr r1, [r4, r1]
bl MOD05_021E4EE4
add sp, #8
pop {r3, r4, r5, pc}
.balign 4, 0
_021E7998: .word 0x021F7824
thumb_func_start MOD05_021E799C
MOD05_021E799C: ; 0x021E799C
push {r3, lr}
bl FUN_02064738
ldr r0, [r0, #0x14]
pop {r3, pc}
.balign 4, 0
thumb_func_start MOD05_021E79A8
MOD05_021E79A8: ; 0x021E79A8
push {r4, r5, lr}
sub sp, #0xc
add r4, r1, #0
add r5, r0, #0
bl FUN_0206475C
add r2, r4, #0
add r3, r0, #0
add r2, #0x30
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
mov r0, #6
lsl r0, r0, #0xc
str r0, [r4, #0x28]
ldr r0, [r4, #0x38]
ldr r1, [r4, #0x30]
bl MOD05_021E7954
add r0, r5, #0
add r1, sp, #0
bl FUN_0206477C
ldr r0, [r4, #0x34]
ldr r1, [r4, #0x30]
add r2, sp, #0
bl MOD05_021E797C
str r0, [r4, #0x40]
ldr r0, [r4, #0x38]
ldr r1, [r4, #0x30]
bl MOD05_021E77F0
add r0, r5, #0
bl FUN_02064754
cmp r0, #1
bne _021E79FC
ldr r0, _021E7A04 ; =0x000005DD
bl FUN_020054C8
_021E79FC:
mov r0, #1
add sp, #0xc
pop {r4, r5, pc}
nop
_021E7A04: .word 0x000005DD
thumb_func_start MOD05_021E7A08
MOD05_021E7A08: ; 0x021E7A08
push {r4, r5, lr}
sub sp, #0xc
add r4, r1, #0
add r1, sp, #0
add r5, r0, #0
bl FUN_0206477C
ldr r0, [r4]
cmp r0, #0
beq _021E7A24
cmp r0, #1
beq _021E7A46
cmp r0, #2
b _021E7A5E
_021E7A24:
ldr r1, [r4, #0x1c]
ldr r0, [r4, #0x28]
add r0, r1, r0
str r0, [r4, #0x1c]
beq _021E7A3A
mov r0, #2
ldr r1, [r4, #0x28]
lsl r0, r0, #0xc
sub r0, r1, r0
str r0, [r4, #0x28]
b _021E7A5E
_021E7A3A:
mov r0, #0
str r0, [r4, #0x28]
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021E7A5E
_021E7A46:
ldr r0, [r4, #4]
add r0, r0, #1
str r0, [r4, #4]
cmp r0, #0x1e
blt _021E7A5E
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
mov r0, #0
str r0, [r4, #4]
mov r0, #1
str r0, [r4, #0x14]
_021E7A5E:
add r0, r5, #0
add r1, sp, #0
bl FUN_0206476C
add sp, #0xc
pop {r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021E7A6C
MOD05_021E7A6C: ; 0x021E7A6C
push {r4, lr}
add r4, r1, #0
ldr r0, [r4, #0x40]
bl FUN_0201F744
ldr r0, [r4, #0x38]
ldr r1, [r4, #0x30]
bl MOD05_021E7804
ldr r0, [r4, #0x38]
ldr r1, [r4, #0x30]
bl MOD05_021E7968
pop {r4, pc}
thumb_func_start MOD05_021E7A88
MOD05_021E7A88: ; 0x021E7A88
push {r3, r4, lr}
sub sp, #0xc
add r4, r1, #0
ldr r1, [r4, #0x10]
cmp r1, #1
beq _021E7ABA
add r1, sp, #0
bl FUN_0206477C
ldr r1, [sp]
ldr r0, [r4, #0x18]
add r0, r1, r0
str r0, [sp]
ldr r1, [sp, #4]
ldr r0, [r4, #0x1c]
add r0, r1, r0
str r0, [sp, #4]
ldr r1, [sp, #8]
ldr r0, [r4, #0x20]
add r0, r1, r0
str r0, [sp, #8]
ldr r0, [r4, #0x40]
add r1, sp, #0
bl FUN_0201F7C8
_021E7ABA:
add sp, #0xc
pop {r3, r4, pc}
.balign 4, 0
thumb_func_start MOD05_021E7AC0
MOD05_021E7AC0: ; 0x021E7AC0
push {r4, r5, r6, r7, lr}
sub sp, #0x24
add r5, r0, #0
add r6, r1, #0
add r7, r2, #0
bl MOD05_021E4C24
add r4, r0, #0
mov r1, #0x16
str r6, [sp, #0x14]
str r4, [sp, #0x18]
bl MOD05_021E4C08
str r0, [sp, #0x1c]
add r0, r5, #0
add r1, sp, #8
str r5, [sp, #0x20]
bl FUN_02058B5C
add r0, r5, #0
bl FUN_02058744
add r1, r0, #1
add r0, sp, #0x14
str r0, [sp]
str r1, [sp, #4]
ldr r1, _021E7B04 ; =0x021F7840
add r0, r4, #0
add r2, sp, #8
add r3, r7, #0
bl MOD05_021E4DC4
add sp, #0x24
pop {r4, r5, r6, r7, pc}
.balign 4, 0
_021E7B04: .word 0x021F7840
thumb_func_start MOD05_021E7B08
MOD05_021E7B08: ; 0x021E7B08
push {r4, r5, lr}
sub sp, #0xc
add r4, r1, #0
add r5, r0, #0
bl FUN_0206475C
add r2, r4, #0
add r3, r0, #0
add r2, #0x30
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldr r0, [r4, #0x3c]
bl FUN_02058448
str r0, [r4, #8]
ldr r0, [r4, #0x3c]
bl FUN_02058450
str r0, [r4, #0xc]
mov r0, #6
lsl r0, r0, #0xc
str r0, [r4, #0x28]
ldr r0, [r4, #0x38]
ldr r1, [r4, #0x30]
bl MOD05_021E7954
add r0, r5, #0
add r1, sp, #0
bl FUN_0206477C
ldr r0, [r4, #0x34]
ldr r1, [r4, #0x30]
add r2, sp, #0
bl MOD05_021E797C
str r0, [r4, #0x40]
ldr r0, [r4, #0x38]
ldr r1, [r4, #0x30]
bl MOD05_021E77F0
add r0, r5, #0
bl FUN_02064754
cmp r0, #1
bne _021E7B6C
ldr r0, _021E7B74 ; =0x000005DD
bl FUN_020054C8
_021E7B6C:
mov r0, #1
add sp, #0xc
pop {r4, r5, pc}
nop
_021E7B74: .word 0x000005DD
thumb_func_start MOD05_021E7B78
MOD05_021E7B78: ; 0x021E7B78
push {r3, r4, r5, r6, lr}
sub sp, #0xc
add r4, r1, #0
ldr r6, [r4, #0x3c]
ldr r1, [r4, #8]
add r5, r0, #0
ldr r2, [r4, #0xc]
add r0, r6, #0
bl FUN_020582A8
cmp r0, #0
bne _021E7B94
bl ErrorHandling
_021E7B94:
add r0, r6, #0
add r1, sp, #0
bl MOD05_021F1E64
mov r0, #2
ldr r1, [sp, #4]
lsl r0, r0, #0x10
add r1, r1, r0
str r1, [sp, #4]
ldr r2, [sp, #8]
lsr r1, r0, #5
add r1, r2, r1
str r1, [sp, #8]
ldr r1, [r4]
cmp r1, #0
beq _021E7BBC
cmp r1, #1
beq _021E7BDC
cmp r1, #2
b _021E7BF4
_021E7BBC:
ldr r2, [r4, #0x1c]
ldr r1, [r4, #0x28]
add r1, r2, r1
str r1, [r4, #0x1c]
beq _021E7BD0
ldr r1, [r4, #0x28]
lsr r0, r0, #4
sub r0, r1, r0
str r0, [r4, #0x28]
b _021E7BF4
_021E7BD0:
mov r0, #0
str r0, [r4, #0x28]
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021E7BF4
_021E7BDC:
ldr r0, [r4, #4]
add r0, r0, #1
str r0, [r4, #4]
cmp r0, #0x1e
blt _021E7BF4
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
mov r0, #0
str r0, [r4, #4]
mov r0, #1
str r0, [r4, #0x14]
_021E7BF4:
add r0, r5, #0
add r1, sp, #0
bl FUN_0206476C
add sp, #0xc
pop {r3, r4, r5, r6, pc}
thumb_func_start MOD05_021E7C00
MOD05_021E7C00: ; 0x021E7C00
push {r4, lr}
mov r1, #0x46
lsl r1, r1, #6
bl AllocFromHeap
add r4, r0, #0
bl MOD05_021E7C1C
add r0, r4, #0
pop {r4, pc}
thumb_func_start MOD05_021E7C14
MOD05_021E7C14: ; 0x021E7C14
ldr r3, _021E7C18 ; =FreeToHeap
bx r3
.balign 4, 0
_021E7C18: .word FreeToHeap
thumb_func_start MOD05_021E7C1C
MOD05_021E7C1C: ; 0x021E7C1C
push {r3, r4, r5, r6, r7}
sub sp, #0xc
mov r4, #0
mov ip, r0
add r7, sp, #0
add r3, r4, #0
_021E7C28:
str r3, [r7]
str r3, [r7, #4]
mov r0, #0x8c
add r1, r4, #0
mul r1, r0
mov r0, ip
add r2, r0, r1
add r5, r2, #0
str r3, [r7, #8]
mov r0, ip
str r3, [r0, r1]
str r3, [r2, #4]
str r3, [r2, #8]
str r3, [r2, #0xc]
add r6, r7, #0
ldmia r6!, {r0, r1}
add r5, #0x68
stmia r5!, {r0, r1}
ldr r0, [r6]
add r6, r7, #0
str r0, [r5]
add r5, r2, #0
ldmia r6!, {r0, r1}
add r5, #0x74
stmia r5!, {r0, r1}
ldr r0, [r6]
add r6, r7, #0
str r0, [r5]
add r5, r2, #0
ldmia r6!, {r0, r1}
add r5, #0x80
stmia r5!, {r0, r1}
ldr r0, [r6]
str r0, [r5]
add r0, r4, #1
lsl r0, r0, #0x18
lsr r4, r0, #0x18
str r3, [r2, #0x64]
cmp r4, #0x20
blo _021E7C28
add sp, #0xc
pop {r3, r4, r5, r6, r7}
bx lr
.balign 4, 0
thumb_func_start MOD05_021E7C80
MOD05_021E7C80: ; 0x021E7C80
push {r3, r4, r5, r6, lr}
sub sp, #0xc
add r5, r0, #0
add r4, r1, #0
cmp r5, #0x20
blt _021E7C90
bl ErrorHandling
_021E7C90:
add r6, sp, #0
mov r3, #0
str r3, [r6]
str r3, [r6, #4]
mov r0, #0x8c
mul r0, r5
str r3, [r6, #8]
str r3, [r4, r0]
add r2, r4, r0
str r3, [r2, #4]
str r3, [r2, #8]
add r4, r2, #0
str r3, [r2, #0xc]
add r5, r6, #0
ldmia r5!, {r0, r1}
add r4, #0x68
stmia r4!, {r0, r1}
ldr r0, [r5]
add r5, r6, #0
str r0, [r4]
add r4, r2, #0
ldmia r5!, {r0, r1}
add r4, #0x74
stmia r4!, {r0, r1}
ldr r0, [r5]
str r0, [r4]
add r4, r2, #0
ldmia r6!, {r0, r1}
add r4, #0x80
stmia r4!, {r0, r1}
ldr r0, [r6]
str r0, [r4]
str r3, [r2, #0x64]
add sp, #0xc
pop {r3, r4, r5, r6, pc}
.balign 4, 0
thumb_func_start MOD05_021E7CD8
MOD05_021E7CD8: ; 0x021E7CD8
push {r4, r5, r6, r7, lr}
sub sp, #0x14
add r6, r0, #0
ldr r0, [sp, #0x28]
add r4, r1, #0
str r0, [sp, #0x28]
mov r0, #0
add r7, r2, #0
add r5, r3, #0
str r0, [sp, #4]
cmp r4, #0
beq _021E7D0E
mov r0, #4
bl AllocFromHeapAtEnd
str r0, [sp, #4]
ldr r2, [sp, #4]
add r0, r6, #0
add r1, r4, #0
bl NARC_ReadFile
add r0, r4, #0
mov r1, #0x30
bl _u32_div_f
str r0, [sp]
b _021E7D10
_021E7D0E:
str r0, [sp]
_021E7D10:
ldr r4, [sp, #4]
mov r6, #0
_021E7D14:
ldr r0, [sp]
cmp r6, r0
bhs _021E7D82
ldr r0, [r4]
add r2, r5, #0
str r0, [r5]
mov r0, #1
str r0, [r5, #4]
mov r0, #0
add r3, r4, #4
str r0, [r5, #0xc]
ldmia r3!, {r0, r1}
add r2, #0x68
stmia r2!, {r0, r1}
ldr r0, [r3]
add r3, r4, #0
str r0, [r2]
add r3, #0x10
add r2, r5, #0
ldmia r3!, {r0, r1}
add r2, #0x74
stmia r2!, {r0, r1}
ldr r0, [r3]
add r3, r4, #0
str r0, [r2]
add r3, #0x1c
add r2, r5, #0
ldmia r3!, {r0, r1}
add r2, #0x80
stmia r2!, {r0, r1}
ldr r0, [r3]
add r3, r5, #0
str r0, [r2]
add r2, r5, #0
ldr r0, [r5]
add r1, r7, #0
add r2, #0x10
add r3, #0x64
bl MOD05_021E7F10
ldr r1, [r5]
add r0, r7, #0
bl MOD05_021F4CE4
cmp r0, #0
bne _021E7D74
mov r0, #0
str r0, [r5]
_021E7D74:
add r1, r5, #0
ldr r0, [r5]
ldr r2, [sp, #0x28]
add r1, #0x10
bl MOD05_021D9E80
b _021E7DBE
_021E7D82:
mov r1, #0
add r0, sp, #8
str r1, [r0]
str r1, [r0, #4]
str r1, [r0, #8]
add r0, r1, #0
str r0, [r5]
str r0, [r5, #4]
add r2, r5, #0
add r3, sp, #8
str r0, [r5, #0xc]
ldmia r3!, {r0, r1}
add r2, #0x68
stmia r2!, {r0, r1}
ldr r0, [r3]
add r3, sp, #8
str r0, [r2]
add r2, r5, #0
ldmia r3!, {r0, r1}
add r2, #0x74
stmia r2!, {r0, r1}
ldr r0, [r3]
add r3, sp, #8
str r0, [r2]
add r2, r5, #0
ldmia r3!, {r0, r1}
add r2, #0x80
stmia r2!, {r0, r1}
ldr r0, [r3]
str r0, [r2]
_021E7DBE:
add r6, r6, #1
add r5, #0x8c
add r4, #0x30
cmp r6, #0x20
blt _021E7D14
ldr r0, [sp, #4]
cmp r0, #0
beq _021E7DD2
bl FreeToHeap
_021E7DD2:
add sp, #0x14
pop {r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021E7DD8
MOD05_021E7DD8: ; 0x021E7DD8
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x48
ldr r4, _021E7E94 ; =0x021F7878
str r2, [sp, #0xc]
str r3, [sp, #0x10]
add r6, r0, #0
str r1, [sp, #8]
add r3, sp, #0x18
mov r2, #4
_021E7DEA:
ldmia r4!, {r0, r1}
stmia r3!, {r0, r1}
sub r2, r2, #1
bne _021E7DEA
ldr r0, [r4]
ldr r5, [sp, #0x60]
str r0, [r3]
mov r7, #0
_021E7DFA:
ldr r0, [r5, #4]
cmp r0, #0
beq _021E7E86
ldr r0, [r5, #8]
cmp r0, #0
bne _021E7E86
add r4, r5, #0
add r4, #0x68
ldmia r4!, {r0, r1}
add r3, sp, #0x3c
add r2, r3, #0
stmia r3!, {r0, r1}
ldr r0, [r4]
str r0, [r3]
ldr r1, [sp, #0x3c]
ldr r0, [r6]
add r3, r5, #0
add r0, r1, r0
str r0, [sp, #0x3c]
ldr r1, [sp, #0x44]
ldr r0, [r6, #8]
add r3, #0x80
add r0, r1, r0
str r0, [sp, #0x44]
add r1, r2, #0
ldr r0, [r5, #0x64]
add r2, sp, #0x18
bl FUN_0201B6D0
cmp r0, #0
beq _021E7E86
ldr r0, [sp, #8]
bl MOD05_021F4C9C
add r4, r0, #0
ldr r0, [sp, #0xc]
cmp r0, #1
bne _021E7E50
ldr r0, [sp, #0x10]
ldr r1, [r5, #0x64]
ldr r2, _021E7E98 ; =0x00000F33
bl MOD05_021DBB8C
_021E7E50:
ldr r0, [r5]
add r1, r4, #0
add r2, sp, #0x14
bl MOD05_021DB9D4
add r0, sp, #0x14
ldrh r0, [r0]
add r1, sp, #0x3c
cmp r0, #0
bne _021E7E74
add r0, r5, #0
add r3, r5, #0
add r0, #0x10
add r2, sp, #0x18
add r3, #0x80
bl FUN_0201B26C
b _021E7E86
_021E7E74:
str r4, [sp]
ldr r0, [r5]
add r3, r5, #0
str r0, [sp, #4]
ldr r0, [r5, #0x64]
add r2, sp, #0x18
add r3, #0x80
bl MOD05_021E7F34
_021E7E86:
add r7, r7, #1
add r5, #0x8c
cmp r7, #0x20
blt _021E7DFA
add sp, #0x48
pop {r3, r4, r5, r6, r7, pc}
nop
_021E7E94: .word 0x021F7878
_021E7E98: .word 0x00000F33
thumb_func_start MOD05_021E7E9C
MOD05_021E7E9C: ; 0x021E7E9C
add r0, #0x74
bx lr
thumb_func_start MOD05_021E7EA0
MOD05_021E7EA0: ; 0x021E7EA0
add r2, r1, #0
add r2, #0x68
add r3, r0, #0
ldmia r2!, {r0, r1}
stmia r3!, {r0, r1}
ldr r0, [r2]
str r0, [r3]
bx lr
thumb_func_start MOD05_021E7EB0
MOD05_021E7EB0: ; 0x021E7EB0
add r3, r1, #0
add r2, r0, #0
ldmia r3!, {r0, r1}
add r2, #0x68
stmia r2!, {r0, r1}
ldr r0, [r3]
str r0, [r2]
bx lr
thumb_func_start MOD05_021E7EC0
MOD05_021E7EC0: ; 0x021E7EC0
str r1, [r0, #8]
bx lr
thumb_func_start MOD05_021E7EC4
MOD05_021E7EC4: ; 0x021E7EC4
ldr r0, [r0]
bx lr
thumb_func_start MOD05_021E7EC8
MOD05_021E7EC8: ; 0x021E7EC8
add r0, #0x10
bx lr
thumb_func_start MOD05_021E7ECC
MOD05_021E7ECC: ; 0x021E7ECC
ldr r0, [r0, #0x64]
bx lr
thumb_func_start MOD05_021E7ED0
MOD05_021E7ED0: ; 0x021E7ED0
mov r2, #0x8c
mul r2, r1
add r0, r0, r2
bx lr
thumb_func_start MOD05_021E7ED8
MOD05_021E7ED8: ; 0x021E7ED8
mov r3, #0
_021E7EDA:
ldr r2, [r0]
cmp r2, r1
beq _021E7EEA
add r3, r3, #1
add r0, #0x8c
cmp r3, #0x20
blt _021E7EDA
mov r0, #0
_021E7EEA:
bx lr
thumb_func_start MOD05_021E7EEC
MOD05_021E7EEC: ; 0x021E7EEC
push {r3, r4, r5, lr}
add r4, r1, #0
add r5, r0, #0
cmp r4, #0x20
blt _021E7EFA
bl ErrorHandling
_021E7EFA:
mov r0, #0x8c
mul r0, r4
add r4, r5, r0
ldr r0, [r4, #4]
cmp r0, #0
bne _021E7F0A
bl ErrorHandling
_021E7F0A:
add r0, r4, #0
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021E7F10
MOD05_021E7F10: ; 0x021E7F10
push {r3, r4, r5, lr}
add r5, r2, #0
add r4, r3, #0
bl MOD05_021F4BD0
ldr r0, [r0]
bl FUN_020BC13C
ldrh r1, [r0, #0xe]
add r1, r0, r1
ldr r1, [r1, #0xc]
add r1, r0, r1
add r0, r5, #0
str r1, [r4]
bl FUN_020B80B4
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021E7F34
MOD05_021E7F34: ; 0x021E7F34
push {r3, r4, r5, r6, r7, lr}
add r7, r0, #0
add r0, r1, #0
add r4, r2, #0
add r5, r3, #0
bl FUN_020B8474
ldr r1, _021E7FB4 ; =UNK_021CEDD4
add r0, r4, #0
bl MI_Copy36B
ldr r1, _021E7FB8 ; =UNK_021CED98
mov r0, #0xa4
ldr r2, [r1, #0x7c]
bic r2, r0
add r0, r5, #0
str r2, [r1, #0x7c]
bl FUN_020B844C
bl FUN_020B849C
add r2, sp, #0
ldr r0, [sp, #0x1c]
ldr r1, [sp, #0x18]
add r2, #2
add r3, sp, #0
bl MOD05_021DB9E0
add r0, sp, #0
ldrh r0, [r0]
ldr r1, [sp, #0x18]
bl MOD05_021DB9F8
add r6, r0, #0
add r0, sp, #0
ldrh r0, [r0, #2]
mov r5, #0xff
mov r4, #0
cmp r0, #0
ble _021E7FB0
_021E7F84:
lsl r0, r4, #2
add r2, r6, r0
ldrh r0, [r6, r0]
cmp r5, r0
beq _021E7F96
lsl r0, r0, #0x18
lsr r5, r0, #0x18
mov r3, #1
b _021E7F98
_021E7F96:
mov r3, #0
_021E7F98:
ldrh r2, [r2, #2]
add r0, r7, #0
add r1, r5, #0
bl FUN_020BAFB8
add r0, r4, #1
lsl r0, r0, #0x18
lsr r4, r0, #0x18
add r0, sp, #0
ldrh r0, [r0, #2]
cmp r4, r0
blt _021E7F84
_021E7FB0:
pop {r3, r4, r5, r6, r7, pc}
nop
_021E7FB4: .word UNK_021CEDD4
_021E7FB8: .word UNK_021CED98
thumb_func_start MOD05_021E7FBC
MOD05_021E7FBC: ; 0x021E7FBC
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x10
ldr r5, _021E8058 ; =0x021F786C
add r6, r0, #0
add r7, r1, #0
ldmia r5!, {r0, r1}
add r4, sp, #4
stmia r4!, {r0, r1}
ldr r0, [r5]
str r0, [r4]
mov r4, #0
mov r0, #0x8c
_021E7FD4:
add r1, r4, #0
mul r1, r0
add r5, r6, r1
ldr r1, [r5, #4]
cmp r1, #0
bne _021E8044
mov r0, #1
str r0, [r5, #4]
add r6, r5, #0
ldmia r3!, {r0, r1}
add r6, #0x68
stmia r6!, {r0, r1}
ldr r0, [r3]
str r0, [r6]
ldr r6, [sp, #0x28]
cmp r6, #0
beq _021E8008
mov r0, #1
str r0, [r5, #0xc]
add r3, r5, #0
ldmia r6!, {r0, r1}
add r3, #0x74
stmia r3!, {r0, r1}
ldr r0, [r6]
str r0, [r3]
b _021E800C
_021E8008:
mov r0, #0
str r0, [r5, #0xc]
_021E800C:
add r6, sp, #4
add r3, r5, #0
ldmia r6!, {r0, r1}
add r3, #0x80
stmia r3!, {r0, r1}
ldr r0, [r6]
add r1, r7, #0
str r0, [r3]
add r3, r5, #0
str r2, [r5]
add r0, r2, #0
add r2, r5, #0
add r2, #0x10
add r3, #0x64
bl MOD05_021E7F10
ldr r0, [sp, #0x2c]
mov r1, #0
str r0, [sp]
ldr r0, [r5]
add r5, #0x10
add r2, r1, #0
add r3, r5, #0
bl MOD05_021D9DC0
add sp, #0x10
add r0, r4, #0
pop {r3, r4, r5, r6, r7, pc}
_021E8044:
add r1, r4, #1
lsl r1, r1, #0x18
lsr r4, r1, #0x18
cmp r4, #0x20
blo _021E7FD4
bl ErrorHandling
mov r0, #0x20
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_021E8058: .word 0x021F786C
thumb_func_start MOD05_021E805C
MOD05_021E805C: ; 0x021E805C
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x38
ldr r4, _021E80F4 ; =0x021F789C
str r0, [sp, #8]
str r1, [sp, #0xc]
add r3, sp, #0x14
mov r2, #4
_021E806A:
ldmia r4!, {r0, r1}
stmia r3!, {r0, r1}
sub r2, r2, #1
bne _021E806A
ldr r0, [r4]
mov r4, #0
str r0, [r3]
add r7, sp, #0x14
_021E807A:
mov r0, #0x8c
add r1, r4, #0
mul r1, r0
ldr r0, [sp, #8]
add r5, r0, r1
ldr r0, [r5, #4]
cmp r0, #0
beq _021E80E4
ldr r0, [r5, #8]
cmp r0, #0
bne _021E80E4
ldr r0, [sp, #0xc]
bl MOD05_021F4C9C
add r6, r0, #0
ldr r0, [r5]
add r1, r6, #0
add r2, sp, #0x10
bl MOD05_021DB9D4
ldr r0, [r5, #0xc]
cmp r0, #0
beq _021E80B2
add r1, r5, #0
add r0, r7, #0
add r1, #0x74
bl FUN_0201CAA8
_021E80B2:
add r0, sp, #0x10
ldrh r0, [r0]
cmp r0, #0
bne _021E80CE
add r0, r5, #0
add r1, r5, #0
add r5, #0x80
add r0, #0x10
add r1, #0x68
add r2, r7, #0
add r3, r5, #0
bl FUN_0201B26C
b _021E80E4
_021E80CE:
str r6, [sp]
ldr r0, [r5]
add r1, r5, #0
str r0, [sp, #4]
ldr r0, [r5, #0x64]
add r5, #0x80
add r1, #0x68
add r2, r7, #0
add r3, r5, #0
bl MOD05_021E7F34
_021E80E4:
add r0, r4, #1
lsl r0, r0, #0x18
lsr r4, r0, #0x18
cmp r4, #0x20
blo _021E807A
add sp, #0x38
pop {r3, r4, r5, r6, r7, pc}
nop
_021E80F4: .word 0x021F789C
thumb_func_start MOD05_021E80F8
MOD05_021E80F8: ; 0x021E80F8
push {r3, lr}
mov r1, #0x14
bl AllocFromHeap
add r3, r0, #0
mov r2, #0x14
mov r1, #0
_021E8106:
strb r1, [r3]
add r3, r3, #1
sub r2, r2, #1
bne _021E8106
pop {r3, pc}
thumb_func_start MOD05_021E8110
MOD05_021E8110: ; 0x021E8110
push {r4, lr}
add r4, r0, #0
ldrb r1, [r4, #0x13]
lsl r1, r1, #0x18
lsr r1, r1, #0x1f
beq _021E8120
bl FUN_02019178
_021E8120:
add r0, r4, #0
bl FreeToHeap
pop {r4, pc}
thumb_func_start MOD05_021E8128
MOD05_021E8128: ; 0x021E8128
strb r1, [r0, #0x12]
strh r2, [r0, #0x10]
bx lr
.balign 4, 0
thumb_func_start MOD05_021E8130
MOD05_021E8130: ; 0x021E8130
ldrb r3, [r0, #0x13]
mov r2, #0x7f
bic r3, r2
mov r2, #0x7f
and r1, r2
orr r1, r3
strb r1, [r0, #0x13]
bx lr
thumb_func_start MOD05_021E8140
MOD05_021E8140: ; 0x021E8140
bx lr
.balign 4, 0
thumb_func_start MOD05_021E8144
MOD05_021E8144: ; 0x021E8144
ldrb r0, [r0, #0x12]
bx lr
thumb_func_start MOD05_021E8148
MOD05_021E8148: ; 0x021E8148
ldrb r0, [r0, #0x13]
lsl r0, r0, #0x19
lsr r0, r0, #0x19
bne _021E8154
mov r0, #1
bx lr
_021E8154:
mov r0, #0
bx lr
thumb_func_start MOD05_021E8158
MOD05_021E8158: ; 0x021E8158
push {r4, lr}
ldr r4, [r0, #0x60]
ldrb r1, [r4, #0x13]
lsl r1, r1, #0x19
lsr r1, r1, #0x19
cmp r1, #4
bhi _021E81BA
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021E8172: ; jump table
.short _021E81BA - _021E8172 - 2 ; case 0
.short _021E817C - _021E8172 - 2 ; case 1
.short _021E818A - _021E8172 - 2 ; case 2
.short _021E819C - _021E8172 - 2 ; case 3
.short _021E81AE - _021E8172 - 2 ; case 4
_021E817C:
bl MOD05_021E81D0
ldrb r1, [r4, #0x13]
mov r0, #0x7f
bic r1, r0
strb r1, [r4, #0x13]
pop {r4, pc}
_021E818A:
bl MOD05_021E82A0
cmp r0, #1
bne _021E81BA
ldrb r1, [r4, #0x13]
mov r0, #0x7f
bic r1, r0
strb r1, [r4, #0x13]
pop {r4, pc}
_021E819C:
bl MOD05_021E8260
cmp r0, #1
bne _021E81BA
ldrb r1, [r4, #0x13]
mov r0, #0x7f
bic r1, r0
strb r1, [r4, #0x13]
pop {r4, pc}
_021E81AE:
bl MOD05_021E820C
ldrb r1, [r4, #0x13]
mov r0, #0x7f
bic r1, r0
strb r1, [r4, #0x13]
_021E81BA:
pop {r4, pc}
thumb_func_start MOD05_021E81BC
MOD05_021E81BC: ; 0x021E81BC
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0x60]
bl MOD05_021E8130
add r0, r4, #0
bl MOD05_021E8158
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021E81D0
MOD05_021E81D0: ; 0x021E81D0
push {r4, lr}
mov r1, #3
add r4, r0, #0
add r3, r1, #0
ldr r0, [r4, #8]
add r2, r1, #0
sub r3, #0x33
bl FUN_020179E0
ldr r1, [r4, #0x60]
ldrb r0, [r1, #0x13]
lsl r0, r0, #0x18
lsr r0, r0, #0x1f
bne _021E8200
ldrb r2, [r1, #0x12]
ldr r0, [r4, #8]
mov r3, #3
bl FUN_020546E0
ldr r2, [r4, #0x60]
mov r0, #0x80
ldrb r1, [r2, #0x13]
orr r0, r1
strb r0, [r2, #0x13]
_021E8200:
ldr r0, [r4, #0x60]
ldrb r1, [r0, #0x12]
ldrh r2, [r0, #0x10]
bl FUN_02054744
pop {r4, pc}
thumb_func_start MOD05_021E820C
MOD05_021E820C: ; 0x021E820C
push {r4, lr}
sub sp, #0x10
add r4, r0, #0
ldr r0, [r4, #0x60]
ldrb r1, [r0, #0x13]
lsl r1, r1, #0x18
lsr r1, r1, #0x1f
beq _021E825A
bl FUN_02019178
mov r0, #0x12
str r0, [sp]
mov r0, #0x20
str r0, [sp, #4]
mov r0, #6
str r0, [sp, #8]
mov r0, #0x10
str r0, [sp, #0xc]
mov r2, #0
ldr r0, [r4, #8]
mov r1, #3
add r3, r2, #0
bl FUN_02018540
ldr r0, [r4, #8]
mov r1, #3
bl FUN_02017CD0
mov r1, #3
ldr r0, [r4, #8]
add r2, r1, #0
mov r3, #0
bl FUN_020179E0
ldr r2, [r4, #0x60]
mov r0, #0x80
ldrb r1, [r2, #0x13]
bic r1, r0
strb r1, [r2, #0x13]
_021E825A:
add sp, #0x10
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021E8260
MOD05_021E8260: ; 0x021E8260
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #8]
mov r1, #3
bl FUN_02017B54
cmp r0, #0
bne _021E8274
mov r0, #1
pop {r4, pc}
_021E8274:
mov r1, #0x2f
mvn r1, r1
cmp r0, r1
ble _021E8280
cmp r0, #0
blt _021E828E
_021E8280:
mov r1, #3
add r3, r1, #0
ldr r0, [r4, #8]
add r2, r1, #0
sub r3, #0x33
bl FUN_020179E0
_021E828E:
ldr r0, [r4, #8]
mov r1, #3
mov r2, #4
mov r3, #0x10
bl FUN_020179E0
mov r0, #0
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021E82A0
MOD05_021E82A0: ; 0x021E82A0
push {r4, lr}
sub sp, #0x10
add r4, r0, #0
ldr r0, [r4, #8]
mov r1, #3
bl FUN_02017B54
mov r1, #0x2f
mvn r1, r1
cmp r0, r1
bne _021E82EC
mov r0, #0x12
str r0, [sp]
mov r0, #0x20
str r0, [sp, #4]
mov r0, #6
str r0, [sp, #8]
mov r0, #0x10
str r0, [sp, #0xc]
mov r2, #0
ldr r0, [r4, #8]
mov r1, #3
add r3, r2, #0
bl FUN_02018540
ldr r0, [r4, #8]
mov r1, #3
bl FUN_02017CD0
mov r1, #3
ldr r0, [r4, #8]
add r2, r1, #0
mov r3, #0
bl FUN_020179E0
add sp, #0x10
mov r0, #1
pop {r4, pc}
_021E82EC:
ble _021E82F2
cmp r0, #0
blt _021E82FE
_021E82F2:
mov r1, #3
ldr r0, [r4, #8]
add r2, r1, #0
mov r3, #0
bl FUN_020179E0
_021E82FE:
ldr r0, [r4, #8]
mov r1, #3
mov r2, #5
mov r3, #0x10
bl FUN_020179E0
mov r0, #0
add sp, #0x10
pop {r4, pc}
thumb_func_start MOD05_021E8310
MOD05_021E8310: ; 0x021E8310
push {r3, r4, r5, r6, r7, lr}
ldr r4, [r1, #0xc]
add r5, r0, #0
add r0, r4, #0
bl FUN_02034E30
bl FUN_02034DC0
add r6, r0, #0
add r0, r4, #0
bl FUN_02024DA0
add r7, r0, #0
ldr r0, [r6]
bl FUN_02034824
str r0, [r5, #4]
add r0, r7, #0
bl FUN_02024D64
cmp r0, #0
beq _021E8344
add r0, r7, #0
bl FUN_02024440
b _021E8346
_021E8344:
mov r0, #0
_021E8346:
str r0, [r5]
add r0, r4, #0
bl FUN_020238F4
str r0, [r5, #8]
add r0, r4, #0
bl FUN_02023918
str r0, [r5, #0xc]
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021E835C
MOD05_021E835C: ; 0x021E835C
push {r3, r4, r5, lr}
sub sp, #8
add r4, r1, #0
ldr r2, [r4, #4]
mov r1, #0
add r5, r0, #0
bl FUN_0200AFF4
ldr r2, [r4, #8]
add r0, r5, #0
mov r1, #1
bl FUN_0200ABC0
ldr r0, [r4, #8]
bl FUN_020239F4
add r2, r0, #0
mov r0, #0
str r0, [sp]
mov r3, #1
str r3, [sp, #4]
add r0, r5, #0
mov r1, #2
bl FUN_0200AD38
ldr r2, [r4]
cmp r2, #0x64
blt _021E839A
mov r3, #3
mov r0, #0
b _021E83A8
_021E839A:
cmp r2, #0xa
blt _021E83A4
mov r3, #3
mov r0, #1
b _021E83A8
_021E83A4:
mov r3, #2
mov r0, #1
_021E83A8:
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
add r0, r5, #0
mov r1, #3
bl FUN_0200AD38
ldr r0, [r4, #0xc]
bl FUN_02029EBC
add r2, r0, #0
cmp r2, #0x64
blt _021E83C8
mov r3, #3
mov r0, #0
b _021E83D6
_021E83C8:
cmp r2, #0xa
blt _021E83D2
mov r3, #3
mov r0, #1
b _021E83D6
_021E83D2:
mov r3, #2
mov r0, #1
_021E83D6:
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
add r0, r5, #0
mov r1, #4
bl FUN_0200AD38
ldr r0, [r4, #0xc]
bl FUN_02029EC0
mov r3, #2
add r2, r0, #0
str r3, [sp]
mov r0, #1
str r0, [sp, #4]
add r0, r5, #0
mov r1, #5
bl FUN_0200AD38
add sp, #8
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021E8400
MOD05_021E8400: ; 0x021E8400
ldr r0, [r0]
cmp r0, #0
beq _021E840A
mov r0, #0xa
bx lr
_021E840A:
mov r0, #8
bx lr
.balign 4, 0
thumb_func_start MOD05_021E8410
MOD05_021E8410: ; 0x021E8410
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x18
add r5, r0, #0
mov r0, #0
mov r1, #1
bl FUN_02002E4C
add r4, r0, #0
mov r0, #0
mov r1, #3
bl FUN_02002E4C
add r0, r4, r0
str r0, [sp, #0x14]
mov r4, #0
ldr r0, [r5, #0x14]
ldr r1, [r5, #0x18]
ldr r3, [r5, #4]
add r2, r4, #0
bl FUN_0200A9C4
add r1, r4, #0
add r6, r0, #0
str r1, [sp]
mov r0, #0xff
str r0, [sp, #4]
str r1, [sp, #8]
ldr r0, [r5, #0x10]
add r2, r6, #0
add r3, r1, #0
bl FUN_0201BD84
add r0, r6, #0
bl FUN_02021A20
mov r0, #1
str r0, [sp, #0x10]
ldr r0, _021E84EC ; =0x021F78D4
ldr r7, _021E84F0 ; =0x021F78C4
str r0, [sp, #0xc]
_021E8460:
ldr r0, [sp, #0xc]
ldr r1, [r0]
cmp r1, #3
bne _021E846E
ldr r0, [r5, #0x1c]
cmp r0, #0
beq _021E84D6
_021E846E:
ldr r0, [sp, #0x14]
add r4, r4, r0
ldr r0, [r5, #0x18]
bl FUN_0200A914
add r6, r0, #0
mov r1, #0
str r4, [sp]
mov r0, #0xff
str r0, [sp, #4]
mov r0, #0
str r0, [sp, #8]
ldr r0, [r5, #0x10]
add r2, r6, #0
add r3, r1, #0
bl FUN_0201BD84
add r0, r6, #0
bl FUN_02021A20
sub r2, r7, #4
ldr r0, [r5, #0x14]
ldr r1, [r5, #0x18]
ldr r2, [r2]
ldr r3, [r5, #4]
bl FUN_0200A9C4
add r6, r0, #0
mov r0, #0
mov r1, #2
bl FUN_02002E4C
add r2, r0, #0
mov r0, #0
add r1, r6, #0
bl FUN_02002E14
mov r1, #0x68
sub r3, r1, r0
str r4, [sp]
mov r0, #0xff
str r0, [sp, #4]
mov r0, #0
str r0, [sp, #8]
ldr r0, [r5, #0x10]
mov r1, #0
add r2, r6, #0
bl FUN_0201BD84
add r0, r6, #0
bl FUN_02021A20
_021E84D6:
ldr r0, [sp, #0xc]
add r7, r7, #4
add r0, r0, #4
str r0, [sp, #0xc]
ldr r0, [sp, #0x10]
add r0, r0, #1
str r0, [sp, #0x10]
cmp r0, #5
blo _021E8460
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_021E84EC: .word 0x021F78D4
_021E84F0: .word 0x021F78C4
thumb_func_start MOD05_021E84F4
MOD05_021E84F4: ; 0x021E84F4
push {r3, r4, lr}
sub sp, #0x14
add r4, r0, #0
ldr r0, [r4, #4]
mov r1, #0x10
bl AllocFromHeap
str r0, [r4, #0x10]
mov r3, #1
str r3, [sp]
ldr r0, [r4, #0x2c]
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #4]
ldr r0, [r4, #0x30]
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #8]
mov r0, #0xd
str r0, [sp, #0xc]
ldr r0, _021E8564 ; =0x0000027F
str r0, [sp, #0x10]
ldrb r2, [r4, #8]
ldr r0, [r4, #0xc]
ldr r1, [r4, #0x10]
bl FUN_02019064
mov r0, #0
str r0, [sp]
ldr r0, [r4, #4]
ldr r2, _021E8568 ; =0x000003D9
str r0, [sp, #4]
ldrb r1, [r4, #8]
ldr r0, [r4, #0xc]
mov r3, #0xb
bl FUN_0200CB00
mov r0, #0
mov r1, #6
bl FUN_02002E4C
add r1, r0, #0
ldr r0, [r4, #0x10]
bl FUN_02019620
add r0, r4, #0
bl MOD05_021E8410
ldr r0, [r4, #0x10]
ldr r2, _021E8568 ; =0x000003D9
mov r1, #0
mov r3, #0xb
bl FUN_0200CCA4
add sp, #0x14
pop {r3, r4, pc}
.balign 4, 0
_021E8564: .word 0x0000027F
_021E8568: .word 0x000003D9
thumb_func_start MOD05_021E856C
MOD05_021E856C: ; 0x021E856C
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0x10]
mov r1, #0
bl FUN_0200CCF8
ldr r0, [r4, #0x10]
bl FUN_02019178
ldr r0, [r4, #0x10]
bl FreeToHeap
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021E8588
MOD05_021E8588: ; 0x021E8588
push {r3, r4, r5, r6, r7, lr}
add r5, r1, #0
add r6, r0, #0
add r0, r5, #0
mov r1, #0x34
add r7, r2, #0
bl AllocFromHeap
add r4, r0, #0
str r6, [r4]
str r5, [r4, #4]
strb r7, [r4, #8]
ldr r0, [r6, #8]
str r0, [r4, #0xc]
add r0, r5, #0
bl FUN_0200AA80
str r0, [r4, #0x14]
ldr r2, _021E85E0 ; =0x000001E3
mov r0, #1
mov r1, #0x1a
add r3, r5, #0
bl FUN_0200A86C
str r0, [r4, #0x18]
add r0, r4, #0
ldr r1, [r4]
add r0, #0x1c
bl MOD05_021E8310
add r1, r4, #0
ldr r0, [r4, #0x14]
add r1, #0x1c
bl MOD05_021E835C
mov r0, #0xd
str r0, [r4, #0x2c]
add r0, r4, #0
add r0, #0x1c
bl MOD05_021E8400
str r0, [r4, #0x30]
add r0, r4, #0
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_021E85E0: .word 0x000001E3
thumb_func_start MOD05_021E85E4
MOD05_021E85E4: ; 0x021E85E4
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0x18]
bl FUN_0200A8B8
ldr r0, [r4, #0x14]
bl FUN_0200AB18
add r0, r4, #0
bl FreeToHeap
pop {r4, pc}
thumb_func_start MOD05_021E85FC
MOD05_021E85FC: ; 0x021E85FC
push {r4, lr}
add r4, r0, #0
bl FUN_02034E48
add r0, r4, #0
mov r1, #4
mov r2, #0
bl MOD05_021EFA9C
ldr r0, [r4, #0x38]
bl FUN_02055320
ldr r1, [r4, #0x1c]
str r0, [r1, #8]
ldr r0, [r4, #0x38]
bl FUN_0205532C
ldr r1, [r4, #0x1c]
str r0, [r1, #0xc]
mov r1, #0
ldr r0, [r4, #0x1c]
mvn r1, r1
str r1, [r0, #4]
ldr r0, [r4, #0x38]
bl FUN_020552F8
ldr r1, [r4, #0x1c]
str r0, [r1, #0x10]
ldr r0, [r4, #0xc]
bl FUN_02022720
cmp r0, #2
bne _021E8642
mov r0, #1
pop {r4, pc}
_021E8642:
mov r0, #0
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021E8648
MOD05_021E8648: ; 0x021E8648
push {r4, r5, r6, lr}
add r5, r0, #0
ldr r0, _021E8690 ; =MOD05_021E8728
ldr r3, [r5, #0x28]
mov r1, #0x38
mov r2, #5
bl FUN_020061E8
add r6, r0, #0
bl FUN_0201B6C8
add r4, r0, #0
add r2, r4, #4
mov r3, #5
_021E8664:
ldmia r5!, {r0, r1}
stmia r2!, {r0, r1}
sub r3, r3, #1
bne _021E8664
ldr r0, [r5]
str r0, [r2]
str r6, [r4, #0x34]
mov r0, #0
str r0, [r4, #0x30]
bl GX_GetBankForLCDC
str r0, [r4]
add r0, r4, #4
bl MOD05_021E87C8
ldr r0, _021E8694 ; =MOD05_021E8768
add r1, r4, #0
mov r2, #0
bl FUN_0200CA98
add r0, r4, #0
pop {r4, r5, r6, pc}
.balign 4, 0
_021E8690: .word MOD05_021E8728
_021E8694: .word MOD05_021E8768
thumb_func_start MOD05_021E8698
MOD05_021E8698: ; 0x021E8698
push {r4, lr}
add r4, r0, #0
add r0, r1, #0
add r1, r2, #0
add r2, r3, #0
bl GX_SetGraphicsMode
ldr r0, [r4]
ldr r0, [r0]
bl GX_SetBankForLCDC
ldr r0, [r4]
ldr r0, [r0, #4]
cmp r0, #0xa
bgt _021E86C8
bge _021E86EC
cmp r0, #6
bgt _021E8708
cmp r0, #2
blt _021E8708
beq _021E86CE
cmp r0, #6
beq _021E86DE
b _021E8708
_021E86C8:
cmp r0, #0xe
beq _021E86FA
b _021E8708
_021E86CE:
mov r1, #0x1a
mov r2, #2
mov r0, #0
lsl r1, r1, #0x16
lsl r2, r2, #0x10
bl MIi_CpuClearFast
b _021E870E
_021E86DE:
mov r2, #2
ldr r1, _021E871C ; =0x06820000
mov r0, #0
lsl r2, r2, #0x10
bl MIi_CpuClearFast
b _021E870E
_021E86EC:
mov r2, #2
ldr r1, _021E8720 ; =0x06840000
mov r0, #0
lsl r2, r2, #0x10
bl MIi_CpuClearFast
b _021E870E
_021E86FA:
mov r2, #2
ldr r1, _021E8724 ; =0x06860000
mov r0, #0
lsl r2, r2, #0x10
bl MIi_CpuClearFast
b _021E870E
_021E8708:
mov r0, #0
bl GX_SetBankForLCDC
_021E870E:
ldr r0, [r4]
ldr r0, [r0, #0x34]
bl FUN_0200621C
mov r0, #0
str r0, [r4]
pop {r4, pc}
.balign 4, 0
_021E871C: .word 0x06820000
_021E8720: .word 0x06840000
_021E8724: .word 0x06860000
thumb_func_start MOD05_021E8728
MOD05_021E8728: ; 0x021E8728
push {r4, r5, r6, r7}
ldr r0, [r1, #0x30]
cmp r0, #0
beq _021E8760
ldr r6, [r1, #0x20]
ldr r5, [r1, #0x10]
ldr r4, [r1, #0x1c]
ldr r3, [r1, #0x18]
ldr r2, [r1, #0x14]
ldr r0, [r1, #0x24]
ldr r1, [r1, #0x28]
lsl r5, r5, #0x14
lsl r7, r1, #8
lsl r1, r3, #0x18
lsl r3, r2, #0x1d
mov r2, #2
lsl r2, r2, #0x1e
orr r3, r2
lsl r2, r4, #0x19
orr r2, r3
orr r1, r2
lsl r6, r6, #0x10
orr r1, r5
orr r1, r6
orr r1, r7
orr r1, r0
ldr r0, _021E8764 ; =0x04000064
str r1, [r0]
_021E8760:
pop {r4, r5, r6, r7}
bx lr
.balign 4, 0
_021E8764: .word 0x04000064
thumb_func_start MOD05_021E8768
MOD05_021E8768: ; 0x021E8768
push {r3, r4, r5, lr}
add r4, r1, #0
add r5, r0, #0
ldr r0, [r4, #4]
cmp r0, #0xa
bgt _021E8786
bge _021E879C
cmp r0, #6
bgt _021E87AC
cmp r0, #2
blt _021E87AC
beq _021E878C
cmp r0, #6
beq _021E8794
b _021E87AC
_021E8786:
cmp r0, #0xe
beq _021E87A4
b _021E87AC
_021E878C:
mov r0, #1
bl GX_SetBankForLCDC
b _021E87B2
_021E8794:
mov r0, #2
bl GX_SetBankForLCDC
b _021E87B2
_021E879C:
mov r0, #4
bl GX_SetBankForLCDC
b _021E87B2
_021E87A4:
mov r0, #8
bl GX_SetBankForLCDC
b _021E87B2
_021E87AC:
mov r0, #0
bl GX_SetBankForLCDC
_021E87B2:
ldr r0, [r4, #4]
ldr r1, [r4, #8]
ldr r2, [r4, #0xc]
bl GX_SetGraphicsMode
mov r0, #1
str r0, [r4, #0x30]
add r0, r5, #0
bl FUN_0200CAB4
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021E87C8
MOD05_021E87C8: ; 0x021E87C8
push {r4, r5, r6, lr}
add r4, r0, #0
ldr r0, [r4]
cmp r0, #0xa
bgt _021E87E4
bge _021E8808
cmp r0, #6
bgt _021E8822
cmp r0, #2
blt _021E8822
beq _021E87EA
cmp r0, #6
beq _021E87FA
b _021E8822
_021E87E4:
cmp r0, #0xe
beq _021E8816
b _021E8822
_021E87EA:
mov r1, #0x1a
mov r2, #2
mov r0, #0
lsl r1, r1, #0x16
lsl r2, r2, #0x10
bl MIi_CpuClearFast
b _021E8822
_021E87FA:
mov r2, #2
ldr r1, _021E8850 ; =0x06820000
mov r0, #0
lsl r2, r2, #0x10
bl MIi_CpuClearFast
b _021E8822
_021E8808:
mov r2, #2
ldr r1, _021E8854 ; =0x06840000
mov r0, #0
lsl r2, r2, #0x10
bl MIi_CpuClearFast
b _021E8822
_021E8816:
mov r2, #2
ldr r1, _021E8858 ; =0x06860000
mov r0, #0
lsl r2, r2, #0x10
bl MIi_CpuClearFast
_021E8822:
ldr r5, [r4, #0x10]
ldr r1, [r4, #0x1c]
ldr r3, [r4, #0x18]
ldr r6, [r4, #0x14]
ldr r0, [r4, #0xc]
mov r4, #2
lsl r2, r1, #0x10
lsl r1, r0, #0x14
lsl r5, r5, #0x1d
lsl r4, r4, #0x1e
orr r4, r5
lsl r3, r3, #0x19
lsl r0, r6, #0x18
orr r3, r4
orr r0, r3
orr r0, r1
add r1, r2, #0
orr r1, r0
mov r0, #0x10
orr r1, r0
ldr r0, _021E885C ; =0x04000064
str r1, [r0]
pop {r4, r5, r6, pc}
.balign 4, 0
_021E8850: .word 0x06820000
_021E8854: .word 0x06840000
_021E8858: .word 0x06860000
_021E885C: .word 0x04000064
thumb_func_start MOD05_021E8860
MOD05_021E8860: ; 0x021E8860
push {r4, r5, r6, r7, lr}
sub sp, #0x2c
add r5, r0, #0
add r4, r1, #0
mov r0, #2
mov r1, #0
bl FUN_0201E6E4
mov r0, #4
mov r1, #0
bl FUN_0201E6E4
mov r0, #8
mov r1, #0
bl FUN_0201E6E4
bl GX_ResetBankForBG
mov r0, #4
add r1, r0, #0
bl AllocFromHeap
add r7, r0, #0
mov r0, #0
add r1, r7, #0
mov r2, #4
bl MIi_CpuClear32
ldr r6, _021E88BC ; =0x021F78E4
add r3, sp, #0
mov r2, #5
_021E889E:
ldmia r6!, {r0, r1}
stmia r3!, {r0, r1}
sub r2, r2, #1
bne _021E889E
ldr r0, [r6]
str r0, [r3]
add r0, sp, #0
str r5, [sp, #0x20]
str r4, [sp, #0x24]
bl MOD05_021E8648
str r0, [r7]
add r0, r7, #0
add sp, #0x2c
pop {r4, r5, r6, r7, pc}
.balign 4, 0
_021E88BC: .word 0x021F78E4
thumb_func_start MOD05_021E88C0
MOD05_021E88C0: ; 0x021E88C0
push {r4, lr}
add r4, r0, #0
mov r1, #1
ldr r0, [r4]
mov r2, #0
add r3, r1, #0
bl MOD05_021E8698
mov r0, #4
bl GX_SetBankForBG
mov r0, #0xe
mov r1, #1
bl FUN_0201E6E4
ldr r1, [r4]
mov r0, #4
bl FUN_02016A8C
pop {r4, pc}
thumb_func_start MOD05_021E88E8
MOD05_021E88E8: ; 0x021E88E8
push {r3, r4, r5, r6, lr}
sub sp, #0xc
add r4, r1, #0
add r6, r0, #0
ldr r0, [r4]
ldr r5, [r4, #0xc]
cmp r0, #5
bls _021E88FA
b _021E8A56
_021E88FA:
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021E8906: ; jump table
.short _021E8912 - _021E8906 - 2 ; case 0
.short _021E8936 - _021E8906 - 2 ; case 1
.short _021E8952 - _021E8906 - 2 ; case 2
.short _021E899C - _021E8906 - 2 ; case 3
.short _021E89F4 - _021E8906 - 2 ; case 4
.short _021E8A1C - _021E8906 - 2 ; case 5
_021E8912:
mov r0, #4
mov r1, #0x20
bl AllocFromHeap
str r0, [r4, #0xc]
mov r1, #0
mov r2, #0x20
bl memset
ldr r5, [r4, #0xc]
bl MOD05_021E3768
str r0, [r5, #0x1c]
ldr r0, [r4]
add sp, #0xc
add r0, r0, #1
str r0, [r4]
pop {r3, r4, r5, r6, pc}
_021E8936:
mov r1, #0x10
mov r0, #2
add r2, r1, #0
str r0, [sp]
mov r0, #1
sub r2, #0x20
add r3, r4, #4
bl MOD05_021E3474
ldr r0, [r4]
add sp, #0xc
add r0, r0, #1
str r0, [r4]
pop {r3, r4, r5, r6, pc}
_021E8952:
ldr r0, [r4, #4]
cmp r0, #0
beq _021E8A56
mov r1, #0
str r1, [r4, #4]
ldr r0, [r4]
mov r2, #2
add r0, r0, #1
str r0, [r4]
ldr r0, _021E8A5C ; =0xFFFFD000
str r1, [sp]
str r0, [sp, #4]
lsl r0, r0, #2
str r0, [sp, #8]
ldr r1, [r5, #0x1c]
add r0, r4, #0
mov r3, #7
bl MOD05_021E37CC
ldr r0, [r4, #0x10]
ldr r0, [r0, #0x20]
str r0, [r5]
bl FUN_0201F010
mov r2, #0x32
add r1, r0, #0
mov r0, #6
lsl r2, r2, #0xc
mov r3, #0x1e
str r0, [sp]
add r0, r5, #4
add r2, r1, r2
lsl r3, r3, #0xc
bl MOD05_021E3644
add sp, #0xc
pop {r3, r4, r5, r6, pc}
_021E899C:
add r0, r5, #4
bl MOD05_021E36A4
add r6, r0, #0
ldr r0, [r5, #4]
ldr r1, [r5]
bl FUN_0201EFE0
cmp r6, #1
bne _021E8A56
ldr r0, [r4]
mov r2, #2
add r0, r0, #1
str r0, [r4]
ldr r0, _021E8A5C ; =0xFFFFD000
mov r3, #6
str r0, [sp]
mov r0, #0xff
lsl r0, r0, #0xc
str r0, [sp, #4]
mov r0, #0x1e
lsl r0, r0, #0xc
str r0, [sp, #8]
ldr r1, [r5, #0x1c]
add r0, r4, #0
bl MOD05_021E3888
ldr r0, [r4, #0x10]
ldr r0, [r0, #0x20]
str r0, [r5]
bl FUN_0201F010
mov r2, #0x32
add r1, r0, #0
mov r0, #6
lsl r2, r2, #0xc
str r0, [sp]
ldr r3, _021E8A60 ; =0xFFF01000
add r0, r5, #4
sub r2, r1, r2
bl MOD05_021E3644
add sp, #0xc
pop {r3, r4, r5, r6, pc}
_021E89F4:
add r0, r5, #4
bl MOD05_021E36A4
add r6, r0, #0
ldr r0, [r5, #4]
ldr r1, [r5]
bl FUN_0201EFE0
cmp r6, #1
bne _021E8A56
add r0, r4, #0
bl MOD05_021E35AC
cmp r0, #1
bne _021E8A56
ldr r0, [r4]
add sp, #0xc
add r0, r0, #1
str r0, [r4]
pop {r3, r4, r5, r6, pc}
_021E8A1C:
mov r0, #0
add r1, r0, #0
bl FUN_0200E3A0
mov r0, #1
mov r1, #0
bl FUN_0200E3A0
ldr r0, _021E8A64 ; =0x04000010
mov r1, #0
str r1, [r0]
str r1, [r0, #4]
str r1, [r0, #8]
str r1, [r0, #0xc]
ldr r1, [r4, #0x14]
cmp r1, #0
beq _021E8A42
mov r0, #1
str r0, [r1]
_021E8A42:
ldr r0, [r5, #0x1c]
bl MOD05_021E37A4
ldr r1, [r4, #0xc]
mov r0, #4
bl FUN_02016A8C
add r0, r6, #0
bl FUN_0200621C
_021E8A56:
add sp, #0xc
pop {r3, r4, r5, r6, pc}
nop
_021E8A5C: .word 0xFFFFD000
_021E8A60: .word 0xFFF01000
_021E8A64: .word 0x04000010
thumb_func_start MOD05_021E8A68
MOD05_021E8A68: ; 0x021E8A68
push {r3, r4, r5, r6, lr}
sub sp, #0xc
add r4, r1, #0
add r6, r0, #0
ldr r0, [r4]
ldr r5, [r4, #0xc]
cmp r0, #5
bls _021E8A7A
b _021E8BD6
_021E8A7A:
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021E8A86: ; jump table
.short _021E8A92 - _021E8A86 - 2 ; case 0
.short _021E8AB6 - _021E8A86 - 2 ; case 1
.short _021E8AD2 - _021E8A86 - 2 ; case 2
.short _021E8B1C - _021E8A86 - 2 ; case 3
.short _021E8B74 - _021E8A86 - 2 ; case 4
.short _021E8B9C - _021E8A86 - 2 ; case 5
_021E8A92:
mov r0, #4
mov r1, #0x20
bl AllocFromHeap
str r0, [r4, #0xc]
mov r1, #0
mov r2, #0x20
bl memset
ldr r5, [r4, #0xc]
bl MOD05_021E3768
str r0, [r5, #0x1c]
ldr r0, [r4]
add sp, #0xc
add r0, r0, #1
str r0, [r4]
pop {r3, r4, r5, r6, pc}
_021E8AB6:
mov r0, #2
str r0, [sp]
mov r0, #1
add r1, r0, #0
sub r1, #0x11
add r2, r1, #0
add r3, r4, #4
bl MOD05_021E3474
ldr r0, [r4]
add sp, #0xc
add r0, r0, #1
str r0, [r4]
pop {r3, r4, r5, r6, pc}
_021E8AD2:
ldr r0, [r4, #4]
cmp r0, #0
beq _021E8BD6
mov r1, #0
str r1, [r4, #4]
ldr r0, [r4]
mov r2, #5
add r0, r0, #1
str r0, [r4]
ldr r0, _021E8BDC ; =0xFFFFE000
str r1, [sp]
str r0, [sp, #4]
ldr r0, _021E8BE0 ; =0xFFFF4000
mov r3, #7
str r0, [sp, #8]
ldr r1, [r5, #0x1c]
add r0, r4, #0
bl MOD05_021E37CC
ldr r0, [r4, #0x10]
ldr r0, [r0, #0x20]
str r0, [r5]
bl FUN_0201F010
mov r2, #0x32
add r1, r0, #0
mov r0, #6
lsl r2, r2, #0xc
mov r3, #0x1e
str r0, [sp]
add r0, r5, #4
add r2, r1, r2
lsl r3, r3, #0xc
bl MOD05_021E3644
add sp, #0xc
pop {r3, r4, r5, r6, pc}
_021E8B1C:
add r0, r5, #4
bl MOD05_021E36A4
add r6, r0, #0
ldr r0, [r5, #4]
ldr r1, [r5]
bl FUN_0201EFE0
cmp r6, #1
bne _021E8BD6
ldr r0, [r4]
mov r2, #5
add r0, r0, #1
str r0, [r4]
ldr r0, _021E8BDC ; =0xFFFFE000
mov r3, #6
str r0, [sp]
mov r0, #0xff
lsl r0, r0, #0xc
str r0, [sp, #4]
mov r0, #0x1e
lsl r0, r0, #0xc
str r0, [sp, #8]
ldr r1, [r5, #0x1c]
add r0, r4, #0
bl MOD05_021E3888
ldr r0, [r4, #0x10]
ldr r0, [r0, #0x20]
str r0, [r5]
bl FUN_0201F010
mov r2, #0x1e
add r1, r0, #0
mov r0, #6
lsl r2, r2, #0xc
str r0, [sp]
ldr r3, _021E8BE4 ; =0xFFF9C000
add r0, r5, #4
sub r2, r1, r2
bl MOD05_021E3644
add sp, #0xc
pop {r3, r4, r5, r6, pc}
_021E8B74:
add r0, r5, #4
bl MOD05_021E36A4
add r6, r0, #0
ldr r0, [r5, #4]
ldr r1, [r5]
bl FUN_0201EFE0
cmp r6, #1
bne _021E8BD6
add r0, r4, #0
bl MOD05_021E35AC
cmp r0, #1
bne _021E8BD6
ldr r0, [r4]
add sp, #0xc
add r0, r0, #1
str r0, [r4]
pop {r3, r4, r5, r6, pc}
_021E8B9C:
mov r0, #0
add r1, r0, #0
bl FUN_0200E3A0
mov r0, #1
mov r1, #0
bl FUN_0200E3A0
ldr r0, _021E8BE8 ; =0x04000010
mov r1, #0
str r1, [r0]
str r1, [r0, #4]
str r1, [r0, #8]
str r1, [r0, #0xc]
ldr r1, [r4, #0x14]
cmp r1, #0
beq _021E8BC2
mov r0, #1
str r0, [r1]
_021E8BC2:
ldr r0, [r5, #0x1c]
bl MOD05_021E37A4
ldr r1, [r4, #0xc]
mov r0, #4
bl FUN_02016A8C
add r0, r6, #0
bl FUN_0200621C
_021E8BD6:
add sp, #0xc
pop {r3, r4, r5, r6, pc}
nop
_021E8BDC: .word 0xFFFFE000
_021E8BE0: .word 0xFFFF4000
_021E8BE4: .word 0xFFF9C000
_021E8BE8: .word 0x04000010
thumb_func_start MOD05_021E8BEC
MOD05_021E8BEC: ; 0x021E8BEC
push {r3, r4, r5, r6, lr}
sub sp, #0x14
add r4, r1, #0
add r6, r0, #0
ldr r0, [r4]
ldr r5, [r4, #0xc]
cmp r0, #6
bls _021E8BFE
b _021E8D16
_021E8BFE:
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021E8C0A: ; jump table
.short _021E8C18 - _021E8C0A - 2 ; case 0
.short _021E8C4A - _021E8C0A - 2 ; case 1
.short _021E8C6A - _021E8C0A - 2 ; case 2
.short _021E8CA0 - _021E8C0A - 2 ; case 3
.short _021E8CB2 - _021E8C0A - 2 ; case 4
.short _021E8CD4 - _021E8C0A - 2 ; case 5
.short _021E8CE6 - _021E8C0A - 2 ; case 6
_021E8C18:
mov r0, #4
mov r1, #0x10
bl AllocFromHeap
str r0, [r4, #0xc]
mov r2, #0x10
mov r1, #0
_021E8C26:
strb r1, [r0]
add r0, r0, #1
sub r2, r2, #1
bne _021E8C26
ldr r0, [r4, #0xc]
mov r1, #4
bl MOD05_021E8E8C
ldr r0, [r4, #0x10]
ldr r0, [r0, #4]
ldr r0, [r0, #0x1c]
bl MOD05_021F4608
ldr r0, [r4]
add sp, #0x14
add r0, r0, #1
str r0, [r4]
pop {r3, r4, r5, r6, pc}
_021E8C4A:
mov r0, #2
str r0, [sp]
mov r0, #1
add r1, r0, #0
sub r1, #0x11
add r2, r1, #0
add r3, r4, #4
bl MOD05_021E3474
mov r0, #0xa
str r0, [r5, #0xc]
ldr r0, [r4]
add sp, #0x14
add r0, r0, #1
str r0, [r4]
pop {r3, r4, r5, r6, pc}
_021E8C6A:
ldr r0, [r5, #0xc]
sub r0, r0, #1
str r0, [r5, #0xc]
bpl _021E8D16
ldr r0, [r4]
mov r3, #0x32
add r0, r0, #1
str r0, [r4]
mov r0, #0xc
str r0, [r5, #0xc]
lsl r0, r0, #0xc
str r0, [sp]
lsl r3, r3, #4
str r3, [sp, #4]
ldr r0, _021E8D1C ; =0x04000010
mov r1, #0
str r0, [sp, #8]
str r1, [sp, #0xc]
mov r0, #4
str r0, [sp, #0x10]
add r0, r5, #0
mov r2, #0xbf
sub r3, #0x76
bl MOD05_021E8EC0
add sp, #0x14
pop {r3, r4, r5, r6, pc}
_021E8CA0:
ldr r0, [r5, #0xc]
sub r0, r0, #1
str r0, [r5, #0xc]
bpl _021E8D16
ldr r0, [r4]
add sp, #0x14
add r0, r0, #1
str r0, [r4]
pop {r3, r4, r5, r6, pc}
_021E8CB2:
mov r0, #8
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
mov r0, #4
mov r2, #0
str r0, [sp, #8]
mov r0, #3
mov r1, #0x1e
add r3, r2, #0
bl FUN_0200E1D0
ldr r0, [r4]
add sp, #0x14
add r0, r0, #1
str r0, [r4]
pop {r3, r4, r5, r6, pc}
_021E8CD4:
bl FUN_0200E308
cmp r0, #0
beq _021E8D16
ldr r0, [r4]
add sp, #0x14
add r0, r0, #1
str r0, [r4]
pop {r3, r4, r5, r6, pc}
_021E8CE6:
add r0, r5, #0
bl MOD05_021E8EA8
ldr r0, [r4, #0x10]
ldr r0, [r0, #4]
ldr r0, [r0, #0x1c]
bl MOD05_021F45E8
ldr r1, [r4, #0x14]
cmp r1, #0
beq _021E8D00
mov r0, #1
str r0, [r1]
_021E8D00:
ldr r1, [r4, #0xc]
mov r0, #4
bl FUN_02016A8C
add r0, r6, #0
bl FUN_0200621C
mov r0, #1
mov r1, #0
bl FUN_0200E3A0
_021E8D16:
add sp, #0x14
pop {r3, r4, r5, r6, pc}
nop
_021E8D1C: .word 0x04000010
thumb_func_start MOD05_021E8D20
MOD05_021E8D20: ; 0x021E8D20
push {r3, r4, r5, r6, lr}
sub sp, #0x14
add r4, r1, #0
add r6, r0, #0
ldr r0, [r4]
ldr r5, [r4, #0xc]
cmp r0, #6
bls _021E8D32
b _021E8E4C
_021E8D32:
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021E8D3E: ; jump table
.short _021E8D4C - _021E8D3E - 2 ; case 0
.short _021E8D7E - _021E8D3E - 2 ; case 1
.short _021E8D9E - _021E8D3E - 2 ; case 2
.short _021E8DD6 - _021E8D3E - 2 ; case 3
.short _021E8DE8 - _021E8D3E - 2 ; case 4
.short _021E8E0A - _021E8D3E - 2 ; case 5
.short _021E8E1C - _021E8D3E - 2 ; case 6
_021E8D4C:
mov r0, #4
mov r1, #0x10
bl AllocFromHeap
str r0, [r4, #0xc]
mov r2, #0x10
mov r1, #0
_021E8D5A:
strb r1, [r0]
add r0, r0, #1
sub r2, r2, #1
bne _021E8D5A
ldr r0, [r4, #0xc]
mov r1, #4
bl MOD05_021E8E8C
ldr r0, [r4, #0x10]
ldr r0, [r0, #4]
ldr r0, [r0, #0x1c]
bl MOD05_021F4608
ldr r0, [r4]
add sp, #0x14
add r0, r0, #1
str r0, [r4]
pop {r3, r4, r5, r6, pc}
_021E8D7E:
mov r1, #0x10
mov r0, #2
add r2, r1, #0
str r0, [sp]
mov r0, #1
sub r2, #0x20
add r3, r4, #4
bl MOD05_021E3474
mov r0, #0xa
str r0, [r5, #0xc]
ldr r0, [r4]
add sp, #0x14
add r0, r0, #1
str r0, [r4]
pop {r3, r4, r5, r6, pc}
_021E8D9E:
ldr r0, [r5, #0xc]
sub r0, r0, #1
str r0, [r5, #0xc]
bpl _021E8E4C
ldr r0, [r4]
mov r3, #0x32
add r0, r0, #1
str r0, [r4]
mov r0, #0xc
str r0, [r5, #0xc]
mov r0, #0xf
lsl r0, r0, #0xc
str r0, [sp]
lsl r3, r3, #4
str r3, [sp, #4]
ldr r0, _021E8E50 ; =0x04000010
mov r1, #0
str r0, [sp, #8]
str r1, [sp, #0xc]
mov r0, #4
str r0, [sp, #0x10]
add r0, r5, #0
mov r2, #0xbf
add r3, #0xdf
bl MOD05_021E8EC0
add sp, #0x14
pop {r3, r4, r5, r6, pc}
_021E8DD6:
ldr r0, [r5, #0xc]
sub r0, r0, #1
str r0, [r5, #0xc]
bpl _021E8E4C
ldr r0, [r4]
add sp, #0x14
add r0, r0, #1
str r0, [r4]
pop {r3, r4, r5, r6, pc}
_021E8DE8:
mov r0, #8
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
mov r0, #4
mov r2, #0
str r0, [sp, #8]
mov r0, #3
mov r1, #0x1e
add r3, r2, #0
bl FUN_0200E1D0
ldr r0, [r4]
add sp, #0x14
add r0, r0, #1
str r0, [r4]
pop {r3, r4, r5, r6, pc}
_021E8E0A:
bl FUN_0200E308
cmp r0, #0
beq _021E8E4C
ldr r0, [r4]
add sp, #0x14
add r0, r0, #1
str r0, [r4]
pop {r3, r4, r5, r6, pc}
_021E8E1C:
add r0, r5, #0
bl MOD05_021E8EA8
ldr r0, [r4, #0x10]
ldr r0, [r0, #4]
ldr r0, [r0, #0x1c]
bl MOD05_021F45E8
ldr r1, [r4, #0x14]
cmp r1, #0
beq _021E8E36
mov r0, #1
str r0, [r1]
_021E8E36:
ldr r1, [r4, #0xc]
mov r0, #4
bl FUN_02016A8C
add r0, r6, #0
bl FUN_0200621C
mov r0, #1
mov r1, #0
bl FUN_0200E3A0
_021E8E4C:
add sp, #0x14
pop {r3, r4, r5, r6, pc}
.balign 4, 0
_021E8E50: .word 0x04000010
thumb_func_start MOD05_021E8E54
MOD05_021E8E54: ; 0x021E8E54
ldr r3, _021E8E60 ; =FUN_0200CA60
mov r2, #1
add r1, r0, #0
ldr r0, _021E8E64 ; =MOD05_021E8E68
lsl r2, r2, #0xa
bx r3
.balign 4, 0
_021E8E60: .word FUN_0200CA60
_021E8E64: .word MOD05_021E8E68
thumb_func_start MOD05_021E8E68
MOD05_021E8E68: ; 0x021E8E68
push {r4, lr}
add r4, r1, #0
ldr r0, [r4, #8]
cmp r0, #2
blo _021E8E7C
ldr r0, [r4]
bl FUN_02012B30
mov r0, #0
str r0, [r4, #8]
_021E8E7C:
ldr r0, [r4]
bl FUN_02012B68
ldr r0, [r4, #8]
add r0, r0, #1
str r0, [r4, #8]
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021E8E8C
MOD05_021E8E8C: ; 0x021E8E8C
push {r4, lr}
add r4, r0, #0
add r0, r1, #0
bl FUN_02012A00
str r0, [r4]
mov r0, #0
str r0, [r4, #8]
add r0, r4, #0
bl MOD05_021E8E54
str r0, [r4, #4]
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021E8EA8
MOD05_021E8EA8: ; 0x021E8EA8
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #4]
bl FUN_0200CAB4
ldr r0, [r4]
bl FUN_02012AC4
ldr r0, [r4]
bl FUN_02012B00
pop {r4, pc}
thumb_func_start MOD05_021E8EC0
MOD05_021E8EC0: ; 0x021E8EC0
push {r4, r5, lr}
sub sp, #0x14
ldr r4, [sp, #0x20]
add r5, sp, #0x10
str r4, [sp]
mov r4, #0x14
ldrsh r4, [r5, r4]
str r4, [sp, #4]
ldr r4, [sp, #0x28]
str r4, [sp, #8]
ldr r4, [sp, #0x2c]
str r4, [sp, #0xc]
ldr r4, [sp, #0x30]
str r4, [sp, #0x10]
ldr r0, [r0]
bl FUN_02012A30
add sp, #0x14
pop {r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021E8EE8
MOD05_021E8EE8: ; 0x021E8EE8
push {r3, r4, r5, r6, r7, lr}
ldr r0, [r0]
add r7, r1, #0
bl FUN_02012B20
add r5, r0, #0
mov r6, #0
_021E8EF6:
ldr r0, [r5]
add r1, r7, #0
lsl r0, r0, #0x10
asr r4, r0, #0x10
add r0, r6, #0
bl _u32_div_f
mov r1, #1
tst r0, r1
bne _021E8F0E
lsl r0, r4, #0x10
b _021E8F12
_021E8F0E:
neg r0, r4
lsl r0, r0, #0x10
_021E8F12:
lsr r0, r0, #0x10
str r0, [r5]
add r6, r6, #1
add r5, r5, #4
cmp r6, #0xc0
blt _021E8EF6
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD05_021E8F20
MOD05_021E8F20: ; 0x021E8F20
push {r3, r4, r5, r6, lr}
sub sp, #0xc
add r4, r1, #0
add r6, r0, #0
ldr r0, [r4]
ldr r5, [r4, #0xc]
cmp r0, #5
bhi _021E9026
add r1, r0, r0
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021E8F3C: ; jump table
.short _021E8F48 - _021E8F3C - 2 ; case 0
.short _021E8F68 - _021E8F3C - 2 ; case 1
.short _021E8F84 - _021E8F3C - 2 ; case 2
.short _021E8F92 - _021E8F3C - 2 ; case 3
.short _021E8FDC - _021E8F3C - 2 ; case 4
.short _021E8FFC - _021E8F3C - 2 ; case 5
_021E8F48:
mov r0, #4
mov r1, #0x1c
bl AllocFromHeap
str r0, [r4, #0xc]
mov r2, #0x1c
mov r1, #0
_021E8F56:
strb r1, [r0]
add r0, r0, #1
sub r2, r2, #1
bne _021E8F56
ldr r0, [r4]
add sp, #0xc
add r0, r0, #1
str r0, [r4]
pop {r3, r4, r5, r6, pc}
_021E8F68:
mov r0, #2
str r0, [sp]
mov r0, #1
add r1, r0, #0
sub r1, #0x11
add r2, r1, #0
add r3, r4, #4
bl MOD05_021E3474
ldr r0, [r4]
add sp, #0xc
add r0, r0, #1
str r0, [r4]
pop {r3, r4, r5, r6, pc}
_021E8F84:
ldr r1, [r4, #4]
cmp r1, #0
beq _021E9026
add r0, r0, #1
add sp, #0xc
str r0, [r4]
pop {r3, r4, r5, r6, pc}
_021E8F92:
ldr r0, [r4, #0x10]
ldr r0, [r0, #4]
ldr r0, [r0, #0x1c]
bl MOD05_021F4608
mov r0, #0xc
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
mov r0, #4
mov r1, #0x10
str r0, [sp, #8]
mov r0, #3
add r2, r1, #0
mov r3, #0
bl FUN_0200E1D0
ldr r0, [r4, #0x10]
ldr r0, [r0, #0x20]
str r0, [r5]
bl FUN_0201F010
mov r2, #0x19
add r1, r0, #0
mov r0, #0xc
lsl r2, r2, #0x10
str r0, [sp]
ldr r3, _021E902C ; =0xFFFFE000
add r0, r5, #4
sub r2, r1, r2
bl MOD05_021E3644
ldr r0, [r4]
add sp, #0xc
add r0, r0, #1
str r0, [r4]
pop {r3, r4, r5, r6, pc}
_021E8FDC:
add r0, r5, #4
bl MOD05_021E36A4
ldr r0, [r5, #4]
ldr r1, [r5]
bl FUN_0201EFE0
bl FUN_0200E308
cmp r0, #0
beq _021E9026
ldr r0, [r4]
add sp, #0xc
add r0, r0, #1
str r0, [r4]
pop {r3, r4, r5, r6, pc}
_021E8FFC:
ldr r0, [r4, #0x10]
ldr r0, [r0, #4]
ldr r0, [r0, #0x1c]
bl MOD05_021F45E8
ldr r1, [r4, #0x14]
cmp r1, #0
beq _021E9010
mov r0, #1
str r0, [r1]
_021E9010:
ldr r1, [r4, #0xc]
mov r0, #4
bl FUN_02016A8C
add r0, r6, #0
bl FUN_0200621C
mov r0, #1
mov r1, #0
bl FUN_0200E3A0
_021E9026:
add sp, #0xc
pop {r3, r4, r5, r6, pc}
nop
_021E902C: .word 0xFFFFE000
thumb_func_start MOD05_021E9030
MOD05_021E9030: ; 0x021E9030
push {r3, r4, r5, r6, lr}
sub sp, #0xc
add r4, r1, #0
add r6, r0, #0
ldr r0, [r4]
ldr r5, [r4, #0xc]
cmp r0, #5
bhi _021E9136
add r1, r0, r0
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021E904C: ; jump table
.short _021E9058 - _021E904C - 2 ; case 0
.short _021E9078 - _021E904C - 2 ; case 1
.short _021E9094 - _021E904C - 2 ; case 2
.short _021E90A2 - _021E904C - 2 ; case 3
.short _021E90EC - _021E904C - 2 ; case 4
.short _021E910C - _021E904C - 2 ; case 5
_021E9058:
mov r0, #4
mov r1, #0x1c
bl AllocFromHeap
str r0, [r4, #0xc]
mov r2, #0x1c
mov r1, #0
_021E9066:
strb r1, [r0]
add r0, r0, #1
sub r2, r2, #1
bne _021E9066
ldr r0, [r4]
add sp, #0xc
add r0, r0, #1
str r0, [r4]
pop {r3, r4, r5, r6, pc}
_021E9078:
mov r1, #0x10
mov r0, #2
add r2, r1, #0
str r0, [sp]
mov r0, #1
sub r2, #0x20
add r3, r4, #4
bl MOD05_021E3474
ldr r0, [r4]
add sp, #0xc
add r0, r0, #1
str r0, [r4]
pop {r3, r4, r5, r6, pc}
_021E9094:
ldr r1, [r4, #4]
cmp r1, #0
beq _021E9136
add r0, r0, #1
add sp, #0xc
str r0, [r4]
pop {r3, r4, r5, r6, pc}
_021E90A2:
ldr r0, [r4, #0x10]
ldr r0, [r0, #4]
ldr r0, [r0, #0x1c]
bl MOD05_021F4608
mov r0, #0xc
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
mov r0, #4
mov r1, #0x10
str r0, [sp, #8]
mov r0, #3
add r2, r1, #0
mov r3, #0
bl FUN_0200E1D0
ldr r0, [r4, #0x10]
ldr r0, [r0, #0x20]
str r0, [r5]
bl FUN_0201F010
mov r2, #0x32
add r1, r0, #0
mov r0, #0xc
lsl r2, r2, #0x10
str r0, [sp]
ldr r3, _021E913C ; =0xFFFFB000
add r0, r5, #4
sub r2, r1, r2
bl MOD05_021E3644
ldr r0, [r4]
add sp, #0xc
add r0, r0, #1
str r0, [r4]
pop {r3, r4, r5, r6, pc}
_021E90EC:
add r0, r5, #4
bl MOD05_021E36A4
ldr r0, [r5, #4]
ldr r1, [r5]
bl FUN_0201EFE0
bl FUN_0200E308
cmp r0, #0
beq _021E9136
ldr r0, [r4]
add sp, #0xc
add r0, r0, #1
str r0, [r4]
pop {r3, r4, r5, r6, pc}
_021E910C:
ldr r0, [r4, #0x10]
ldr r0, [r0, #4]
ldr r0, [r0, #0x1c]
bl MOD05_021F45E8
ldr r1, [r4, #0x14]
cmp r1, #0
beq _021E9120
mov r0, #1
str r0, [r1]
_021E9120:
ldr r1, [r4, #0xc]
mov r0, #4
bl FUN_02016A8C
add r0, r6, #0
bl FUN_0200621C
mov r0, #1
mov r1, #0
bl FUN_0200E3A0
_021E9136:
add sp, #0xc
pop {r3, r4, r5, r6, pc}
nop
_021E913C: .word 0xFFFFB000
thumb_func_start MOD05_021E9140
MOD05_021E9140: ; 0x021E9140
push {r4, r5, r6, r7, lr}
sub sp, #0x5c
add r7, r1, #0
str r0, [sp, #0x10]
ldr r0, [r7]
ldr r4, [r7, #0xc]
cmp r0, #7
bls _021E9152
b _021E948A
_021E9152:
add r1, r0, r0
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021E915E: ; jump table
.short _021E916E - _021E915E - 2 ; case 0
.short _021E9228 - _021E915E - 2 ; case 1
.short _021E9242 - _021E915E - 2 ; case 2
.short _021E924E - _021E915E - 2 ; case 3
.short _021E92B2 - _021E915E - 2 ; case 4
.short _021E931A - _021E915E - 2 ; case 5
.short _021E93A6 - _021E915E - 2 ; case 6
.short _021E9430 - _021E915E - 2 ; case 7
_021E916E:
mov r1, #0x1e
mov r0, #4
lsl r1, r1, #4
bl AllocFromHeap
mov r2, #0x1e
str r0, [r7, #0xc]
mov r1, #0
lsl r2, r2, #4
bl memset
ldr r0, [r7, #0x10]
ldr r4, [r7, #0xc]
ldr r1, [r0, #0x20]
mov r0, #7
lsl r0, r0, #6
str r1, [r4, r0]
bl MOD05_021E3768
str r0, [r4, #0x44]
add r0, r4, #0
add r0, #0x48
mov r1, #2
mov r2, #1
bl MOD05_021E3E14
mov r0, #5
str r0, [sp]
mov r0, #7
str r0, [sp, #4]
mov r0, #6
str r0, [sp, #8]
ldr r0, _021E949C ; =0x000927C0
mov r1, #0x61
str r0, [sp, #0xc]
add r0, r4, #0
lsl r1, r1, #2
add r0, #0x48
add r1, r4, r1
mov r2, #0
mov r3, #1
bl MOD05_021E3E64
mov r0, #0
str r0, [sp, #0x14]
add r6, r0, #0
add r0, r4, #0
str r0, [sp, #0x1c]
add r0, #0x48
add r5, r4, #0
str r0, [sp, #0x1c]
_021E91D4:
mov r0, #0
str r0, [sp]
mov r1, #0x61
str r0, [sp, #4]
lsl r1, r1, #2
mov r2, #2
mov r3, #6
ldr r0, [sp, #0x1c]
add r1, r4, r1
lsl r2, r2, #0x12
lsl r3, r3, #0x10
bl MOD05_021E3FC4
mov r1, #0x6e
lsl r1, r1, #2
str r0, [r5, r1]
add r0, r1, #0
ldr r0, [r5, r0]
mov r1, #0
bl FUN_020200A0
mov r0, #0x6e
lsl r0, r0, #2
ldr r0, [r5, r0]
add r1, r6, #0
bl FUN_02020310
ldr r0, [sp, #0x14]
add r5, r5, #4
add r0, r0, #1
add r6, r6, #2
str r0, [sp, #0x14]
cmp r0, #2
blt _021E91D4
mov r0, #0x10
mov r1, #1
bl FUN_0201E6E4
ldr r0, [r7]
add r0, r0, #1
str r0, [r7]
b _021E948A
_021E9228:
mov r0, #2
str r0, [sp]
mov r0, #1
add r1, r0, #0
sub r1, #0x11
add r2, r1, #0
add r3, r7, #4
bl MOD05_021E3474
ldr r0, [r7]
add r0, r0, #1
str r0, [r7]
b _021E948A
_021E9242:
ldr r1, [r7, #4]
cmp r1, #0
beq _021E9310
add r0, r0, #1
str r0, [r7]
b _021E948A
_021E924E:
mov r0, #0xa
mov r2, #1
str r0, [sp]
add r0, r4, #0
mov r1, #0x29
lsl r2, r2, #0xc
mov r3, #2
bl MOD05_021E3644
ldr r1, [r4]
add r0, sp, #0x50
add r2, r1, #0
add r3, r1, #0
bl MOD05_021E3FF8
mov r6, #0
add r5, r4, #0
_021E9270:
mov r0, #0x6e
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #1
bl FUN_020200A0
mov r0, #0x6e
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #2
bl FUN_020200EC
mov r0, #0x6e
lsl r0, r0, #2
ldr r0, [r5, r0]
add r1, sp, #0x50
bl FUN_02020064
add r6, r6, #1
add r5, r5, #4
cmp r6, #2
blt _021E9270
add r0, r4, #0
ldr r2, _021E94A0 ; =0x0000FFFF
add r0, #0x18
mov r1, #0
mov r3, #0xa
bl MOD05_021E35B0
ldr r0, [r7]
add r0, r0, #1
str r0, [r7]
b _021E948A
_021E92B2:
add r0, r4, #0
bl MOD05_021E36A4
ldr r1, [r4]
str r0, [sp, #0x18]
add r0, sp, #0x50
add r2, r1, #0
add r3, r1, #0
bl MOD05_021E3FF8
add r0, r4, #0
add r0, #0x18
bl MOD05_021E35C0
mov r6, #0
add r5, r4, #0
_021E92D2:
mov r0, #0x6e
lsl r0, r0, #2
ldr r0, [r5, r0]
add r1, sp, #0x50
bl FUN_02020064
add r6, r6, #1
add r5, r5, #4
cmp r6, #2
blt _021E92D2
mov r0, #0x6e
ldr r1, [r4, #0x18]
lsl r0, r0, #2
lsl r1, r1, #0x10
ldr r0, [r4, r0]
lsr r1, r1, #0x10
bl FUN_02020088
mov r1, #0x6f
lsl r1, r1, #2
ldr r0, [r4, r1]
ldr r2, [r4, #0x18]
sub r1, #0xbc
sub r1, r2, r1
lsl r1, r1, #0x10
lsr r1, r1, #0x10
bl FUN_02020088
ldr r0, [sp, #0x18]
cmp r0, #1
beq _021E9312
_021E9310:
b _021E948A
_021E9312:
ldr r0, [r7]
add r0, r0, #1
str r0, [r7]
b _021E948A
_021E931A:
mov r0, #0
str r0, [sp]
mov r0, #0xff
lsl r0, r0, #0xc
str r0, [sp, #4]
mov r0, #0xa
lsl r0, r0, #0xc
str r0, [sp, #8]
ldr r1, [r4, #0x44]
add r0, r7, #0
mov r2, #0x60
mov r3, #6
bl MOD05_021E37CC
mov r0, #0x6e
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #1
bl FUN_02020130
mov r0, #0x6f
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #2
bl FUN_02020130
mov r0, #6
str r0, [sp]
add r0, r4, #0
mov r2, #0xff
mov r3, #0xa
add r0, #0x2c
mov r1, #0
lsl r2, r2, #0xc
lsl r3, r3, #0xc
bl MOD05_021E3644
mov r0, #7
lsl r0, r0, #6
ldr r0, [r4, r0]
bl FUN_0201F010
add r1, r0, #0
mov r0, #6
str r0, [sp]
mov r0, #0x71
mov r2, #0x7d
lsl r0, r0, #2
lsl r2, r2, #0xe
ldr r3, _021E94A4 ; =0xFFFF6000
add r0, r4, r0
sub r2, r1, r2
bl MOD05_021E3644
mov r0, #0x6e
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0
bl FUN_02020088
mov r0, #0x6f
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0
bl FUN_02020088
ldr r0, [r7]
add r0, r0, #1
str r0, [r7]
b _021E948A
_021E93A6:
add r0, r4, #0
add r0, #0x2c
bl MOD05_021E36A4
mov r1, #2
ldr r2, [r4, #0x2c]
lsl r1, r1, #0x12
sub r1, r1, r2
mov r2, #6
add r0, sp, #0x2c
lsl r2, r2, #0x10
mov r3, #0
bl MOD05_021E3FF8
add r3, sp, #0x2c
ldmia r3!, {r0, r1}
add r2, sp, #0x44
stmia r2!, {r0, r1}
ldr r0, [r3]
mov r1, #2
str r0, [r2]
ldr r2, [r4, #0x2c]
lsl r1, r1, #0x12
add r1, r2, r1
mov r2, #6
add r0, sp, #0x20
lsl r2, r2, #0x10
mov r3, #0
bl MOD05_021E3FF8
add r3, sp, #0x20
ldmia r3!, {r0, r1}
add r2, sp, #0x38
stmia r2!, {r0, r1}
ldr r0, [r3]
add r1, sp, #0x44
str r0, [r2]
mov r0, #0x6e
lsl r0, r0, #2
ldr r0, [r4, r0]
bl FUN_02020044
mov r0, #0x6f
lsl r0, r0, #2
ldr r0, [r4, r0]
add r1, sp, #0x38
bl FUN_02020044
mov r0, #0x71
lsl r0, r0, #2
add r0, r4, r0
bl MOD05_021E36A4
mov r1, #0x71
lsl r1, r1, #2
ldr r0, [r4, r1]
sub r1, r1, #4
ldr r1, [r4, r1]
bl FUN_0201EFE0
add r0, r7, #0
bl MOD05_021E35AC
cmp r0, #0
beq _021E948A
ldr r0, [r7]
add r0, r0, #1
str r0, [r7]
b _021E948A
_021E9430:
mov r0, #0
add r1, r0, #0
bl FUN_0200E3A0
mov r0, #1
mov r1, #0
bl FUN_0200E3A0
ldr r1, [r7, #0x14]
cmp r1, #0
beq _021E944A
mov r0, #1
str r0, [r1]
_021E944A:
mov r6, #0
add r5, r4, #0
_021E944E:
mov r0, #0x6e
lsl r0, r0, #2
ldr r0, [r5, r0]
bl FUN_0201FFC8
add r6, r6, #1
add r5, r5, #4
cmp r6, #2
blt _021E944E
mov r1, #0x61
add r0, r4, #0
lsl r1, r1, #2
add r0, #0x48
add r1, r4, r1
bl MOD05_021E3F3C
add r0, r4, #0
add r0, #0x48
bl MOD05_021E3E44
ldr r0, [r4, #0x44]
bl MOD05_021E37A4
ldr r1, [r7, #0xc]
mov r0, #4
bl FUN_02016A8C
ldr r0, [sp, #0x10]
bl FUN_0200621C
_021E948A:
ldr r0, [r7]
cmp r0, #7
beq _021E9496
ldr r0, [r4, #0x48]
bl FUN_0201FDEC
_021E9496:
add sp, #0x5c
pop {r4, r5, r6, r7, pc}
nop
_021E949C: .word 0x000927C0
_021E94A0: .word 0x0000FFFF
_021E94A4: .word 0xFFFF6000
thumb_func_start MOD05_021E94A8
MOD05_021E94A8: ; 0x021E94A8
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x78
add r6, r1, #0
str r0, [sp, #0x10]
ldr r0, [r6]
ldr r4, [r6, #0xc]
cmp r0, #7
bhi _021E95A2
add r1, r0, r0
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021E94C4: ; jump table
.short _021E94D4 - _021E94C4 - 2 ; case 0
.short _021E9582 - _021E94C4 - 2 ; case 1
.short _021E959C - _021E94C4 - 2 ; case 2
.short _021E95AA - _021E94C4 - 2 ; case 3
.short _021E9638 - _021E94C4 - 2 ; case 4
.short _021E96C8 - _021E94C4 - 2 ; case 5
.short _021E9702 - _021E94C4 - 2 ; case 6
.short _021E972C - _021E94C4 - 2 ; case 7
_021E94D4:
mov r1, #0x71
mov r0, #4
lsl r1, r1, #2
bl AllocFromHeap
mov r2, #0x71
str r0, [r6, #0xc]
mov r1, #0
lsl r2, r2, #2
bl memset
ldr r0, [r6, #0x10]
ldr r4, [r6, #0xc]
ldr r1, [r0, #0x20]
mov r0, #0x69
lsl r0, r0, #2
str r1, [r4, r0]
bl MOD05_021E39FC
str r0, [r4, #0x28]
add r0, r4, #0
add r0, #0x2c
mov r1, #2
mov r2, #1
bl MOD05_021E3E14
mov r0, #2
str r0, [sp]
mov r0, #4
str r0, [sp, #4]
mov r0, #3
str r0, [sp, #8]
ldr r0, _021E9798 ; =0x000927C0
mov r1, #0x5a
str r0, [sp, #0xc]
add r0, r4, #0
lsl r1, r1, #2
add r0, #0x2c
add r1, r4, r1
mov r2, #0
mov r3, #1
bl MOD05_021E3E64
add r0, r4, #0
str r0, [sp, #0x14]
add r0, #0x2c
mov r7, #0
add r5, r4, #0
str r0, [sp, #0x14]
_021E9536:
mov r0, #0
str r0, [sp]
mov r1, #0x5a
str r0, [sp, #4]
lsl r1, r1, #2
mov r2, #2
ldr r0, [sp, #0x14]
add r1, r4, r1
lsl r2, r2, #0x12
mov r3, #0
bl MOD05_021E3FC4
mov r1, #0x67
lsl r1, r1, #2
str r0, [r5, r1]
add r0, r1, #0
ldr r0, [r5, r0]
mov r1, #0
bl FUN_020200A0
mov r0, #0x67
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #2
bl FUN_020200EC
add r7, r7, #1
add r5, r5, #4
cmp r7, #2
blt _021E9536
mov r0, #0x10
mov r1, #1
bl FUN_0201E6E4
ldr r0, [r6]
add r0, r0, #1
str r0, [r6]
b _021E9786
_021E9582:
mov r1, #0x10
mov r0, #2
add r2, r1, #0
str r0, [sp]
mov r0, #1
sub r2, #0x20
add r3, r6, #4
bl MOD05_021E3474
ldr r0, [r6]
add r0, r0, #1
str r0, [r6]
b _021E9786
_021E959C:
ldr r1, [r6, #4]
cmp r1, #0
bne _021E95A4
_021E95A2:
b _021E9786
_021E95A4:
add r0, r0, #1
str r0, [r6]
b _021E9786
_021E95AA:
mov r2, #3
ldr r1, _021E979C ; =0xFFF40000
add r0, r4, #0
lsl r2, r2, #0x12
mov r3, #8
bl MOD05_021E35EC
mov r0, #0x67
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #1
bl FUN_020200A0
mov r0, #0x1a
lsl r0, r0, #4
ldr r0, [r4, r0]
mov r1, #1
bl FUN_020200A0
mov r2, #2
ldr r1, [r4]
lsl r2, r2, #0x12
sub r1, r2, r1
add r0, sp, #0x3c
lsr r2, r2, #1
mov r3, #0
bl MOD05_021E3FF8
add r3, sp, #0x3c
ldmia r3!, {r0, r1}
add r2, sp, #0x6c
stmia r2!, {r0, r1}
ldr r0, [r3]
mov r3, #0
str r0, [r2]
mov r2, #2
ldr r1, [r4]
lsl r2, r2, #0x12
add r0, sp, #0x30
add r1, r1, r2
bl MOD05_021E3FF8
add r3, sp, #0x30
ldmia r3!, {r0, r1}
add r2, sp, #0x60
stmia r2!, {r0, r1}
ldr r0, [r3]
add r1, sp, #0x6c
str r0, [r2]
mov r0, #0x67
lsl r0, r0, #2
ldr r0, [r4, r0]
bl FUN_02020044
mov r0, #0x1a
lsl r0, r0, #4
ldr r0, [r4, r0]
add r1, sp, #0x60
bl FUN_02020044
add r0, r4, #0
ldr r2, _021E97A0 ; =0x0001FFFE
add r0, #0x14
mov r1, #0
mov r3, #8
bl MOD05_021E35B0
ldr r0, [r6]
add r0, r0, #1
str r0, [r6]
b _021E9786
_021E9638:
add r0, r4, #0
bl MOD05_021E35FC
mov r2, #2
add r5, r0, #0
ldr r1, [r4]
lsl r2, r2, #0x12
sub r1, r2, r1
add r0, sp, #0x24
lsr r2, r2, #1
mov r3, #0
bl MOD05_021E3FF8
add r3, sp, #0x24
ldmia r3!, {r0, r1}
add r2, sp, #0x54
stmia r2!, {r0, r1}
ldr r0, [r3]
mov r3, #0
str r0, [r2]
mov r2, #2
ldr r1, [r4]
lsl r2, r2, #0x12
add r0, sp, #0x18
add r1, r1, r2
bl MOD05_021E3FF8
add r3, sp, #0x18
ldmia r3!, {r0, r1}
add r2, sp, #0x48
stmia r2!, {r0, r1}
ldr r0, [r3]
add r1, sp, #0x54
str r0, [r2]
mov r0, #0x67
lsl r0, r0, #2
ldr r0, [r4, r0]
bl FUN_02020044
mov r0, #0x1a
lsl r0, r0, #4
ldr r0, [r4, r0]
add r1, sp, #0x48
bl FUN_02020044
add r0, r4, #0
add r0, #0x14
bl MOD05_021E35C0
mov r0, #0x67
ldr r1, [r4, #0x14]
lsl r0, r0, #2
lsl r1, r1, #0x10
ldr r0, [r4, r0]
lsr r1, r1, #0x10
bl FUN_02020088
ldr r1, [r4, #0x14]
mov r0, #0x1a
lsl r0, r0, #4
neg r1, r1
lsl r1, r1, #0x10
ldr r0, [r4, r0]
lsr r1, r1, #0x10
bl FUN_02020088
cmp r5, #1
bne _021E9786
ldr r0, [r6]
add r0, r0, #1
str r0, [r6]
b _021E9786
_021E96C8:
mov r3, #1
lsl r3, r3, #0xc
str r3, [sp]
ldr r1, [r4, #0x28]
add r0, r6, #0
mov r2, #8
bl MOD05_021E3A70
mov r0, #0x69
lsl r0, r0, #2
ldr r0, [r4, r0]
bl FUN_0201F010
add r1, r0, #0
mov r0, #8
str r0, [sp]
mov r0, #0x6a
mov r2, #0x7d
lsl r0, r0, #2
lsl r2, r2, #0xe
ldr r3, _021E97A4 ; =0xFFFF6000
add r0, r4, r0
sub r2, r1, r2
bl MOD05_021E3644
ldr r0, [r6]
add r0, r0, #1
str r0, [r6]
b _021E9786
_021E9702:
mov r0, #0x6a
lsl r0, r0, #2
add r0, r4, r0
bl MOD05_021E36A4
mov r1, #0x6a
lsl r1, r1, #2
ldr r0, [r4, r1]
sub r1, r1, #4
ldr r1, [r4, r1]
bl FUN_0201EFE0
add r0, r6, #0
bl MOD05_021E35AC
cmp r0, #1
bne _021E9786
ldr r0, [r6]
add r0, r0, #1
str r0, [r6]
b _021E9786
_021E972C:
mov r0, #0
add r1, r0, #0
bl FUN_0200E3A0
mov r0, #1
mov r1, #0
bl FUN_0200E3A0
ldr r1, [r6, #0x14]
cmp r1, #0
beq _021E9746
mov r0, #1
str r0, [r1]
_021E9746:
mov r7, #0
add r5, r4, #0
_021E974A:
mov r0, #0x67
lsl r0, r0, #2
ldr r0, [r5, r0]
bl FUN_0201FFC8
add r7, r7, #1
add r5, r5, #4
cmp r7, #2
blt _021E974A
mov r1, #0x5a
add r0, r4, #0
lsl r1, r1, #2
add r0, #0x2c
add r1, r4, r1
bl MOD05_021E3F3C
add r0, r4, #0
add r0, #0x2c
bl MOD05_021E3E44
ldr r0, [r4, #0x28]
bl MOD05_021E3A48
ldr r1, [r6, #0xc]
mov r0, #4
bl FUN_02016A8C
ldr r0, [sp, #0x10]
bl FUN_0200621C
_021E9786:
ldr r0, [r6]
cmp r0, #7
beq _021E9792
ldr r0, [r4, #0x2c]
bl FUN_0201FDEC
_021E9792:
add sp, #0x78
pop {r3, r4, r5, r6, r7, pc}
nop
_021E9798: .word 0x000927C0
_021E979C: .word 0xFFF40000
_021E97A0: .word 0x0001FFFE
_021E97A4: .word 0xFFFF6000
thumb_func_start MOD05_021E97A8
MOD05_021E97A8: ; 0x021E97A8
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x58
add r7, r1, #0
str r0, [sp, #0x14]
ldr r0, [r7]
ldr r4, [r7, #0xc]
cmp r0, #7
bls _021E97BA
b _021E9B2A
_021E97BA:
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021E97C6: ; jump table
.short _021E97D6 - _021E97C6 - 2 ; case 0
.short _021E9892 - _021E97C6 - 2 ; case 1
.short _021E98AC - _021E97C6 - 2 ; case 2
.short _021E98F2 - _021E97C6 - 2 ; case 3
.short _021E9958 - _021E97C6 - 2 ; case 4
.short _021E99E4 - _021E97C6 - 2 ; case 5
.short _021E9A68 - _021E97C6 - 2 ; case 6
.short _021E9AD0 - _021E97C6 - 2 ; case 7
_021E97D6:
mov r1, #0x7a
mov r0, #4
lsl r1, r1, #2
bl AllocFromHeap
mov r2, #0x7a
str r0, [r7, #0xc]
mov r1, #0
lsl r2, r2, #2
bl memset
ldr r0, [r7, #0x10]
ldr r4, [r7, #0xc]
ldr r1, [r0, #0x20]
mov r0, #0x72
lsl r0, r0, #2
str r1, [r4, r0]
add r0, r4, #0
add r0, #0x40
mov r1, #4
bl MOD05_021E8E8C
mov r0, #0x79
mov r1, #0xc
lsl r0, r0, #2
str r1, [r4, r0]
add r0, r4, #0
add r0, #0x50
mov r1, #2
mov r2, #1
bl MOD05_021E3E14
mov r0, #5
str r0, [sp]
mov r0, #7
str r0, [sp, #4]
mov r0, #6
str r0, [sp, #8]
ldr r0, _021E9B4C ; =0x000927C0
mov r1, #0x63
str r0, [sp, #0xc]
add r0, r4, #0
lsl r1, r1, #2
add r0, #0x50
add r1, r4, r1
mov r2, #0
mov r3, #1
bl MOD05_021E3E64
add r0, r4, #0
str r0, [sp, #0x1c]
add r0, #0x50
mov r6, #0
add r5, r4, #0
str r0, [sp, #0x1c]
_021E9844:
mov r0, #0
str r0, [sp]
mov r1, #0x63
str r0, [sp, #4]
lsl r1, r1, #2
mov r2, #2
mov r3, #6
ldr r0, [sp, #0x1c]
add r1, r4, r1
lsl r2, r2, #0x12
lsl r3, r3, #0x10
bl MOD05_021E3FC4
mov r1, #7
lsl r1, r1, #6
str r0, [r5, r1]
add r0, r1, #0
ldr r0, [r5, r0]
mov r1, #0
bl FUN_020200A0
mov r0, #7
lsl r0, r0, #6
ldr r0, [r5, r0]
add r1, r6, #0
bl FUN_02020310
add r6, r6, #1
add r5, r5, #4
cmp r6, #2
blt _021E9844
mov r0, #0x10
mov r1, #1
bl FUN_0201E6E4
ldr r0, [r7]
add r0, r0, #1
str r0, [r7]
b _021E9B2A
_021E9892:
mov r0, #2
str r0, [sp]
mov r0, #1
add r1, r0, #0
sub r1, #0x11
add r2, r1, #0
add r3, r7, #4
bl MOD05_021E3474
ldr r0, [r7]
add r0, r0, #1
str r0, [r7]
b _021E9B2A
_021E98AC:
mov r0, #0x79
lsl r0, r0, #2
ldr r1, [r4, r0]
sub r1, r1, #1
str r1, [r4, r0]
ldr r0, [r4, r0]
cmp r0, #0
bne _021E98E4
mov r0, #3
lsl r0, r0, #0xe
mov r3, #0x32
str r0, [sp]
lsl r3, r3, #4
str r3, [sp, #4]
ldr r0, _021E9B50 ; =0x04000010
mov r1, #0
str r0, [sp, #8]
str r1, [sp, #0xc]
mov r0, #4
str r0, [sp, #0x10]
add r0, r4, #0
add r0, #0x40
mov r2, #0xbf
sub r3, #0x76
bl MOD05_021E8EC0
mov r0, #1
str r0, [r4, #0x4c]
_021E98E4:
ldr r0, [r7, #4]
cmp r0, #0
beq _021E99BE
ldr r0, [r7]
add r0, r0, #1
str r0, [r7]
b _021E9B2A
_021E98F2:
add r0, r4, #0
add r0, #0x18
mov r1, #0
mov r2, #0x10
mov r3, #8
bl MOD05_021E35B0
ldr r3, [r4, #0x18]
mov r0, #0x10
sub r0, r0, r3
str r0, [sp]
ldr r0, _021E9B54 ; =0x04000050
mov r1, #0
mov r2, #0xf
bl G2x_SetBlendAlpha_
mov r6, #0
add r5, r4, #0
_021E9916:
mov r0, #7
lsl r0, r0, #6
ldr r0, [r5, r0]
mov r1, #1
bl FUN_020200A0
mov r0, #7
lsl r0, r0, #6
ldr r0, [r5, r0]
mov r1, #2
bl FUN_020200EC
mov r0, #7
lsl r0, r0, #6
ldr r0, [r5, r0]
mov r1, #1
bl FUN_02020398
add r6, r6, #1
add r5, r5, #4
cmp r6, #2
blt _021E9916
add r0, r4, #0
ldr r2, _021E9B58 ; =0x0000FFFF
add r0, #0x2c
mov r1, #0
mov r3, #8
bl MOD05_021E35B0
ldr r0, [r7]
add r0, r0, #1
str r0, [r7]
b _021E9B2A
_021E9958:
add r0, r4, #0
add r0, #0x18
bl MOD05_021E35C0
add r6, r0, #0
ldr r1, [r4, #0x18]
mov r0, #0x10
sub r0, r0, r1
lsl r0, r0, #8
orr r1, r0
ldr r0, _021E9B5C ; =0x04000052
strh r1, [r0]
ldr r0, [r4, #0x2c]
lsl r0, r0, #0x10
lsr r5, r0, #0x10
add r0, r4, #0
add r0, #0x2c
bl MOD05_021E35C0
cmp r0, #0
bne _021E99A2
mov r0, #7
ldr r1, [r4, #0x2c]
lsl r0, r0, #6
lsl r1, r1, #0x10
ldr r0, [r4, r0]
lsr r1, r1, #0x10
bl FUN_02020088
mov r0, #0x71
lsl r0, r0, #2
lsl r1, r5, #0x10
ldr r0, [r4, r0]
lsr r1, r1, #0x10
bl FUN_02020088
b _021E99BA
_021E99A2:
mov r0, #7
lsl r0, r0, #6
ldr r0, [r4, r0]
mov r1, #0
bl FUN_02020088
mov r0, #0x71
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0
bl FUN_02020088
_021E99BA:
cmp r6, #1
beq _021E99C0
_021E99BE:
b _021E9B2A
_021E99C0:
ldr r0, _021E9B54 ; =0x04000050
mov r6, #0
strh r6, [r0]
add r5, r4, #0
_021E99C8:
mov r0, #7
lsl r0, r0, #6
ldr r0, [r5, r0]
mov r1, #0
bl FUN_02020398
add r6, r6, #1
add r5, r5, #4
cmp r6, #2
blt _021E99C8
ldr r0, [r7]
add r0, r0, #1
str r0, [r7]
b _021E9B2A
_021E99E4:
mov r1, #8
str r1, [sp]
ldr r3, _021E9B60 ; =0x0000019A
add r0, r4, #0
lsl r1, r1, #9
mov r2, #0x29
bl MOD05_021E3644
ldr r1, [r4]
add r0, sp, #0x34
add r2, r1, #0
add r3, r1, #0
bl MOD05_021E3FF8
add r3, sp, #0x34
add r2, sp, #0x4c
ldmia r3!, {r0, r1}
str r2, [sp, #0x20]
stmia r2!, {r0, r1}
ldr r0, [r3]
mov r6, #0
str r0, [r2]
add r5, r4, #0
_021E9A12:
mov r0, #7
lsl r0, r0, #6
ldr r0, [r5, r0]
ldr r1, [sp, #0x20]
bl FUN_02020064
add r6, r6, #1
add r5, r5, #4
cmp r6, #2
blt _021E9A12
mov r0, #0x72
lsl r0, r0, #2
ldr r0, [r4, r0]
bl FUN_0201F010
add r1, r0, #0
mov r0, #8
str r0, [sp]
mov r0, #0x73
mov r2, #0x7d
lsl r0, r0, #2
lsl r2, r2, #0xe
ldr r3, _021E9B64 ; =0xFFFF6000
add r0, r4, r0
sub r2, r1, r2
bl MOD05_021E3644
mov r0, #8
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
mov r0, #4
mov r2, #0
str r0, [sp, #8]
mov r0, #3
mov r1, #0x18
add r3, r2, #0
bl FUN_0200E1D0
ldr r0, [r7]
add r0, r0, #1
str r0, [r7]
b _021E9B2A
_021E9A68:
add r0, r4, #0
bl MOD05_021E36A4
ldr r1, [r4]
str r0, [sp, #0x18]
add r0, sp, #0x28
add r2, r1, #0
add r3, r1, #0
bl MOD05_021E3FF8
add r3, sp, #0x28
add r2, sp, #0x40
ldmia r3!, {r0, r1}
str r2, [sp, #0x24]
stmia r2!, {r0, r1}
ldr r0, [r3]
mov r6, #0
str r0, [r2]
add r5, r4, #0
_021E9A8E:
mov r0, #7
lsl r0, r0, #6
ldr r0, [r5, r0]
ldr r1, [sp, #0x24]
bl FUN_02020064
add r6, r6, #1
add r5, r5, #4
cmp r6, #2
blt _021E9A8E
mov r0, #0x73
lsl r0, r0, #2
add r0, r4, r0
bl MOD05_021E36A4
mov r1, #0x73
lsl r1, r1, #2
ldr r0, [r4, r1]
sub r1, r1, #4
ldr r1, [r4, r1]
bl FUN_0201EFE0
ldr r0, [sp, #0x18]
cmp r0, #1
bne _021E9B2A
bl FUN_0200E308
cmp r0, #1
bne _021E9B2A
ldr r0, [r7]
add r0, r0, #1
str r0, [r7]
b _021E9B2A
_021E9AD0:
mov r0, #1
mov r1, #0
bl FUN_0200E3A0
ldr r1, [r7, #0x14]
cmp r1, #0
beq _021E9AE2
mov r0, #1
str r0, [r1]
_021E9AE2:
add r0, r4, #0
add r0, #0x40
bl MOD05_021E8EA8
mov r6, #0
str r6, [r4, #0x4c]
add r5, r4, #0
_021E9AF0:
mov r0, #7
lsl r0, r0, #6
ldr r0, [r5, r0]
bl FUN_0201FFC8
add r6, r6, #1
add r5, r5, #4
cmp r6, #2
blt _021E9AF0
mov r1, #0x63
add r0, r4, #0
lsl r1, r1, #2
add r0, #0x50
add r1, r4, r1
bl MOD05_021E3F3C
add r4, #0x50
add r0, r4, #0
bl MOD05_021E3E44
ldr r1, [r7, #0xc]
mov r0, #4
bl FUN_02016A8C
ldr r0, [sp, #0x14]
bl FUN_0200621C
add sp, #0x58
pop {r3, r4, r5, r6, r7, pc}
_021E9B2A:
ldr r0, [r4, #0x4c]
cmp r0, #1
bne _021E9B3A
add r0, r4, #0
add r0, #0x40
mov r1, #2
bl MOD05_021E8EE8
_021E9B3A:
ldr r0, [r7]
cmp r0, #7
beq _021E9B46
ldr r0, [r4, #0x50]
bl FUN_0201FDEC
_021E9B46:
add sp, #0x58
pop {r3, r4, r5, r6, r7, pc}
nop
_021E9B4C: .word 0x000927C0
_021E9B50: .word 0x04000010
_021E9B54: .word 0x04000050
_021E9B58: .word 0x0000FFFF
_021E9B5C: .word 0x04000052
_021E9B60: .word 0x0000019A
_021E9B64: .word 0xFFFF6000
thumb_func_start MOD05_021E9B68
MOD05_021E9B68: ; 0x021E9B68
push {r4, r5, r6, r7, lr}
sub sp, #0x44
str r0, [sp, #0x18]
add r0, r1, #0
ldr r0, [r0]
str r1, [sp, #0x1c]
ldr r4, [r1, #0xc]
cmp r0, #7
bls _021E9B7C
b _021EA01A
_021E9B7C:
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021E9B88: ; jump table
.short _021E9B98 - _021E9B88 - 2 ; case 0
.short _021E9CAA - _021E9B88 - 2 ; case 1
.short _021E9CCA - _021E9B88 - 2 ; case 2
.short _021E9D24 - _021E9B88 - 2 ; case 3
.short _021E9DE4 - _021E9B88 - 2 ; case 4
.short _021E9E82 - _021E9B88 - 2 ; case 5
.short _021E9F1C - _021E9B88 - 2 ; case 6
.short _021E9F70 - _021E9B88 - 2 ; case 7
_021E9B98:
mov r1, #9
mov r0, #4
lsl r1, r1, #6
bl AllocFromHeap
ldr r1, [sp, #0x1c]
mov r2, #9
str r0, [r1, #0xc]
mov r1, #0
lsl r2, r2, #6
bl memset
ldr r0, [sp, #0x1c]
ldr r4, [r0, #0xc]
ldr r0, [r0, #0x10]
ldr r1, [r0, #0x20]
mov r0, #0x22
lsl r0, r0, #4
str r1, [r4, r0]
sub r0, #0x10
add r0, r4, r0
mov r1, #4
bl MOD05_021E8E8C
mov r0, #0x8f
mov r1, #0xe
lsl r0, r0, #2
str r1, [r4, r0]
add r0, r4, #0
mov r1, #3
mov r2, #1
bl MOD05_021E3E14
mov r0, #2
str r0, [sp]
mov r0, #4
str r0, [sp, #4]
mov r0, #3
str r0, [sp, #8]
ldr r0, _021E9F5C ; =0x000927C0
mov r1, #0x4f
lsl r1, r1, #2
str r0, [sp, #0xc]
add r0, r4, #0
add r1, r4, r1
mov r2, #0
mov r3, #1
bl MOD05_021E3E64
mov r7, #0x4f
mov r6, #0
add r5, r4, #0
lsl r7, r7, #2
_021E9C02:
mov r0, #0
str r0, [sp]
mov r2, #0
str r0, [sp, #4]
add r0, r4, #0
add r1, r4, r7
add r3, r2, #0
bl MOD05_021E3FC4
mov r1, #0x17
lsl r1, r1, #4
str r0, [r5, r1]
add r0, r1, #0
ldr r0, [r5, r0]
mov r1, #0
bl FUN_020200A0
mov r0, #0x17
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #2
bl FUN_020200EC
mov r0, #4
bl MOD05_021E4140
mov r1, #0x7d
lsl r1, r1, #2
str r0, [r5, r1]
add r6, r6, #1
add r5, r5, #4
cmp r6, #3
blt _021E9C02
mov r0, #0x10
mov r1, #1
bl FUN_0201E6E4
mov r0, #4
mov r1, #1
bl FUN_02018FF4
mov r1, #0x83
lsl r1, r1, #2
str r0, [r4, r1]
mov r3, #0
str r3, [sp]
mov r0, #0x20
str r0, [sp, #4]
str r0, [sp, #8]
str r3, [sp, #0xc]
str r3, [sp, #0x10]
ldr r0, [sp, #0x1c]
ldr r1, [r4, r1]
ldr r0, [r0, #0x10]
mov r2, #3
ldr r0, [r0, #8]
bl FUN_02019064
mov r1, #0
add r0, sp, #0x28
strh r1, [r0]
mov r0, #3
add r1, sp, #0x28
mov r2, #2
mov r3, #0x1e
bl FUN_02017FB4
mov r0, #0x83
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0
bl FUN_02019620
mov r0, #0x83
lsl r0, r0, #2
ldr r0, [r4, r0]
bl FUN_02019220
ldr r0, [sp, #0x1c]
ldr r0, [r0]
add r1, r0, #1
ldr r0, [sp, #0x1c]
str r1, [r0]
b _021EA01A
_021E9CAA:
mov r1, #0x10
ldr r3, [sp, #0x1c]
mov r0, #2
add r2, r1, #0
str r0, [sp]
mov r0, #1
sub r2, #0x20
add r3, r3, #4
bl MOD05_021E3474
ldr r0, [sp, #0x1c]
ldr r0, [r0]
add r1, r0, #1
ldr r0, [sp, #0x1c]
str r1, [r0]
b _021EA01A
_021E9CCA:
mov r3, #0x8f
lsl r3, r3, #2
ldr r0, [r4, r3]
sub r0, r0, #1
str r0, [r4, r3]
ldr r0, [r4, r3]
cmp r0, #0
bne _021E9D08
mov r0, #3
lsl r0, r0, #0xe
str r0, [sp]
add r0, r3, #0
add r0, #0xe4
str r0, [sp, #4]
ldr r0, _021E9F60 ; =0x04000010
mov r1, #0
str r0, [sp, #8]
str r1, [sp, #0xc]
mov r0, #4
str r0, [sp, #0x10]
add r0, r3, #0
sub r0, #0x2c
add r0, r4, r0
mov r2, #0xbf
add r3, #0x6e
bl MOD05_021E8EC0
mov r0, #0x87
mov r1, #1
lsl r0, r0, #2
str r1, [r4, r0]
_021E9D08:
ldr r0, [sp, #0x1c]
ldr r0, [r0, #4]
cmp r0, #0
beq _021E9D34
mov r0, #0x8f
mov r1, #6
lsl r0, r0, #2
str r1, [r4, r0]
ldr r0, [sp, #0x1c]
ldr r0, [r0]
add r1, r0, #1
ldr r0, [sp, #0x1c]
str r1, [r0]
b _021EA01A
_021E9D24:
mov r0, #0x8f
lsl r0, r0, #2
ldr r1, [r4, r0]
sub r1, r1, #1
str r1, [r4, r0]
ldr r1, [r4, r0]
cmp r1, #0
blt _021E9D36
_021E9D34:
b _021EA01A
_021E9D36:
sub r0, #0x1c
ldr r0, [r4, r0]
bl FUN_0201F010
add r1, r0, #0
mov r0, #0x10
str r0, [sp]
mov r0, #0x89
mov r2, #0x7d
lsl r0, r0, #2
lsl r2, r2, #0xe
ldr r3, _021E9F64 ; =0xFFFF6000
add r0, r4, r0
sub r2, r1, r2
bl MOD05_021E3644
mov r0, #0x6e
lsl r0, r0, #2
ldr r2, _021E9F68 ; =0x0000FFFF
add r0, r4, r0
mov r1, #0
mov r3, #6
bl MOD05_021E35B0
mov r0, #0x5f
lsl r0, r0, #2
mov r2, #0x1f
add r0, r4, r0
mov r1, #0xe7
mvn r2, r2
mov r3, #6
bl MOD05_021E35B0
mov r0, #0
str r0, [sp]
mov r0, #6
str r0, [sp, #4]
mov r0, #0x83
lsl r0, r0, #2
ldr r1, [r4, r0]
mov r3, #0x40
str r1, [sp, #8]
mov r1, #0x56
str r1, [sp, #0xc]
str r3, [sp, #0x10]
mov r1, #0xf
str r1, [sp, #0x14]
sub r0, #0x18
mov r1, #0x2b
ldr r0, [r4, r0]
add r2, r1, #0
add r3, #0xf8
bl MOD05_021E4160
mov r1, #0x2b
mov r2, #0xe7
add r0, sp, #0x38
lsl r1, r1, #0xc
lsl r2, r2, #0xc
mov r3, #0
bl MOD05_021E3FF8
mov r0, #0x17
lsl r0, r0, #4
ldr r0, [r4, r0]
add r1, sp, #0x38
bl FUN_02020044
mov r0, #0x17
lsl r0, r0, #4
ldr r0, [r4, r0]
mov r1, #1
bl FUN_020200A0
mov r1, #1
lsl r0, r1, #9
str r1, [r4, r0]
ldr r0, [sp, #0x1c]
ldr r0, [r0]
add r1, r0, #1
ldr r0, [sp, #0x1c]
str r1, [r0]
mov r0, #0x8f
mov r1, #4
lsl r0, r0, #2
str r1, [r4, r0]
b _021EA01A
_021E9DE4:
mov r0, #0x8f
lsl r0, r0, #2
ldr r1, [r4, r0]
sub r1, r1, #1
str r1, [r4, r0]
ldr r1, [r4, r0]
cmp r1, #0
bge _021E9E92
sub r0, #0xac
mov r2, #0x1f
add r0, r4, r0
mov r1, #0xe7
mvn r2, r2
mov r3, #6
bl MOD05_021E35B0
mov r0, #0x73
lsl r0, r0, #2
ldr r2, _021E9F6C ; =0xFFFF0001
add r0, r4, r0
mov r1, #0
mov r3, #6
bl MOD05_021E35B0
mov r0, #0
str r0, [sp]
mov r0, #6
str r0, [sp, #4]
mov r0, #0x83
lsl r0, r0, #2
ldr r1, [r4, r0]
sub r0, #0x14
str r1, [sp, #8]
mov r1, #0x56
str r1, [sp, #0xc]
mov r1, #0x40
str r1, [sp, #0x10]
mov r1, #0xf
str r1, [sp, #0x14]
mov r1, #0xd7
add r3, r1, #0
ldr r0, [r4, r0]
add r2, r1, #0
add r3, #0x61
bl MOD05_021E4160
mov r1, #0xd7
mov r2, #0xe7
add r0, sp, #0x38
lsl r1, r1, #0xc
lsl r2, r2, #0xc
mov r3, #1
bl MOD05_021E3FF8
mov r0, #0x5d
lsl r0, r0, #2
ldr r0, [r4, r0]
add r1, sp, #0x38
bl FUN_02020044
mov r0, #0x5d
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #1
bl FUN_020200A0
mov r1, #0x81
mov r0, #1
lsl r1, r1, #2
str r0, [r4, r1]
ldr r0, [sp, #0x1c]
add r1, #0x38
ldr r0, [r0]
add r2, r0, #1
ldr r0, [sp, #0x1c]
str r2, [r0]
mov r0, #2
str r0, [r4, r1]
b _021EA01A
_021E9E82:
mov r0, #0x8f
lsl r0, r0, #2
ldr r1, [r4, r0]
sub r1, r1, #1
str r1, [r4, r0]
ldr r1, [r4, r0]
cmp r1, #0
blt _021E9E94
_021E9E92:
b _021EA01A
_021E9E94:
sub r0, #0x98
mov r2, #0x1f
add r0, r4, r0
mov r1, #0xe7
mvn r2, r2
mov r3, #6
bl MOD05_021E35B0
mov r0, #0x1e
lsl r0, r0, #4
ldr r2, _021E9F68 ; =0x0000FFFF
add r0, r4, r0
mov r1, #0
mov r3, #6
bl MOD05_021E35B0
mov r0, #0
str r0, [sp]
mov r0, #6
str r0, [sp, #4]
mov r0, #0x83
lsl r0, r0, #2
ldr r1, [r4, r0]
sub r0, #0x10
str r1, [sp, #8]
mov r1, #0x56
str r1, [sp, #0xc]
mov r1, #0x40
str r1, [sp, #0x10]
mov r1, #0xf
str r1, [sp, #0x14]
mov r1, #0x81
add r3, r1, #0
ldr r0, [r4, r0]
add r2, r1, #0
add r3, #0xb7
bl MOD05_021E4160
mov r1, #0x81
mov r2, #0xe7
add r0, sp, #0x38
lsl r1, r1, #0xc
lsl r2, r2, #0xc
mov r3, #2
bl MOD05_021E3FF8
mov r0, #0x5e
lsl r0, r0, #2
ldr r0, [r4, r0]
add r1, sp, #0x38
bl FUN_02020044
mov r0, #0x5e
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #1
bl FUN_020200A0
mov r0, #0x82
mov r1, #1
lsl r0, r0, #2
str r1, [r4, r0]
ldr r0, [sp, #0x1c]
ldr r0, [r0]
add r1, r0, #1
ldr r0, [sp, #0x1c]
str r1, [r0]
b _021EA01A
_021E9F1C:
mov r0, #0x89
lsl r0, r0, #2
add r0, r4, r0
bl MOD05_021E36A4
mov r1, #0x89
lsl r1, r1, #2
ldr r0, [r4, r1]
sub r1, r1, #4
ldr r1, [r4, r1]
bl FUN_0201EFE0
mov r1, #2
lsl r1, r1, #8
ldr r0, [r4, r1]
cmp r0, #0
bne _021EA01A
add r0, r1, #4
ldr r0, [r4, r0]
cmp r0, #0
bne _021EA01A
add r1, #8
ldr r0, [r4, r1]
cmp r0, #0
bne _021EA01A
ldr r0, [sp, #0x1c]
ldr r0, [r0]
add r1, r0, #1
ldr r0, [sp, #0x1c]
str r1, [r0]
b _021EA01A
nop
_021E9F5C: .word 0x000927C0
_021E9F60: .word 0x04000010
_021E9F64: .word 0xFFFF6000
_021E9F68: .word 0x0000FFFF
_021E9F6C: .word 0xFFFF0001
_021E9F70:
mov r0, #0
add r1, r0, #0
bl FUN_0200E3A0
mov r0, #1
mov r1, #0
bl FUN_0200E3A0
ldr r0, [sp, #0x1c]
ldr r1, [r0, #0x14]
cmp r1, #0
beq _021E9F8C
mov r0, #1
str r0, [r1]
_021E9F8C:
mov r0, #0x21
lsl r0, r0, #4
add r0, r4, r0
bl MOD05_021E8EA8
mov r0, #0x87
lsl r0, r0, #2
mov r6, #0
add r7, r0, #0
str r6, [r4, r0]
add r5, r4, #0
sub r7, #0x28
_021E9FA4:
mov r0, #0x17
lsl r0, r0, #4
ldr r0, [r5, r0]
bl FUN_0201FFC8
ldr r0, [r5, r7]
bl MOD05_021E4158
add r6, r6, #1
add r5, r5, #4
cmp r6, #3
blt _021E9FA4
mov r1, #0x4f
lsl r1, r1, #2
add r0, r4, #0
add r1, r4, r1
bl MOD05_021E3F3C
add r0, r4, #0
bl MOD05_021E3E44
mov r0, #0x83
lsl r0, r0, #2
ldr r0, [r4, r0]
bl FUN_02019570
mov r0, #0x83
lsl r0, r0, #2
ldr r0, [r4, r0]
bl FUN_02019178
mov r0, #0x83
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #1
bl FUN_020191A4
mov r0, #3
mov r1, #0x20
mov r2, #0
mov r3, #4
bl FUN_02017F18
ldr r0, [sp, #0x1c]
mov r1, #3
ldr r0, [r0, #0x10]
ldr r0, [r0, #8]
bl FUN_02018744
ldr r1, [sp, #0x1c]
mov r0, #4
ldr r1, [r1, #0xc]
bl FUN_02016A8C
ldr r0, [sp, #0x18]
bl FUN_0200621C
add sp, #0x44
pop {r4, r5, r6, r7, pc}
_021EA01A:
mov r0, #0x87
lsl r0, r0, #2
ldr r1, [r4, r0]
cmp r1, #1
bne _021EA02E
sub r0, #0xc
add r0, r4, r0
mov r1, #2
bl MOD05_021E8EE8
_021EA02E:
mov r1, #0x5f
mov r0, #0
lsl r1, r1, #2
str r0, [sp, #0x20]
add r0, r4, r1
add r1, #0x3c
add r5, r4, #0
str r0, [sp, #0x24]
add r7, r4, r1
add r6, r4, #0
_021EA042:
mov r0, #2
lsl r0, r0, #8
ldr r0, [r5, r0]
cmp r0, #1
bne _021EA0B0
mov r0, #0x7d
lsl r0, r0, #2
ldr r0, [r5, r0]
bl MOD05_021E41B8
cmp r0, #0
beq _021EA062
mov r0, #2
mov r1, #0
lsl r0, r0, #8
str r1, [r5, r0]
_021EA062:
ldr r0, [sp, #0x24]
bl MOD05_021E35C0
add r0, r7, #0
bl MOD05_021E35C0
mov r1, #0x6e
lsl r1, r1, #2
mov r0, #0x17
ldr r1, [r6, r1]
lsl r0, r0, #4
lsl r1, r1, #0x10
ldr r0, [r5, r0]
lsr r1, r1, #0x10
bl FUN_02020088
mov r0, #0x17
lsl r0, r0, #4
ldr r0, [r5, r0]
bl FUN_0202011C
add r3, r0, #0
add r2, sp, #0x2c
ldmia r3!, {r0, r1}
mov ip, r2
stmia r2!, {r0, r1}
ldr r0, [r3]
mov r1, ip
str r0, [r2]
mov r0, #0x5f
lsl r0, r0, #2
ldr r0, [r6, r0]
lsl r0, r0, #0xc
str r0, [sp, #0x30]
mov r0, #0x17
lsl r0, r0, #4
ldr r0, [r5, r0]
bl FUN_02020044
_021EA0B0:
ldr r0, [sp, #0x24]
add r5, r5, #4
add r0, #0x14
str r0, [sp, #0x24]
ldr r0, [sp, #0x20]
add r7, #0x14
add r0, r0, #1
add r6, #0x14
str r0, [sp, #0x20]
cmp r0, #3
blt _021EA042
mov r0, #0x83
lsl r0, r0, #2
ldr r0, [r4, r0]
bl FUN_02019220
ldr r0, [sp, #0x1c]
ldr r0, [r0]
cmp r0, #7
beq _021EA0DE
ldr r0, [r4]
bl FUN_0201FDEC
_021EA0DE:
add sp, #0x44
pop {r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021EA0E4
MOD05_021EA0E4: ; 0x021EA0E4
push {r4, r5, r6, r7, lr}
sub sp, #0x34
add r5, r1, #0
add r6, r0, #0
ldr r0, [r5]
ldr r4, [r5, #0xc]
cmp r0, #7
bhi _021EA1B8
add r1, r0, r0
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021EA100: ; jump table
.short _021EA110 - _021EA100 - 2 ; case 0
.short _021EA198 - _021EA100 - 2 ; case 1
.short _021EA1B2 - _021EA100 - 2 ; case 2
.short _021EA1C0 - _021EA100 - 2 ; case 3
.short _021EA236 - _021EA100 - 2 ; case 4
.short _021EA2C2 - _021EA100 - 2 ; case 5
.short _021EA310 - _021EA100 - 2 ; case 6
.short _021EA338 - _021EA100 - 2 ; case 7
_021EA110:
mov r1, #0x1f
mov r0, #4
lsl r1, r1, #4
bl AllocFromHeap
mov r2, #0x1f
str r0, [r5, #0xc]
mov r1, #0
lsl r2, r2, #4
bl memset
ldr r0, [r5, #0x10]
ldr r4, [r5, #0xc]
ldr r1, [r0, #0x20]
mov r0, #0x1d
lsl r0, r0, #4
str r1, [r4, r0]
add r0, r4, #0
mov r1, #1
add r0, #0x5c
add r2, r1, #0
bl MOD05_021E3E14
mov r0, #2
str r0, [sp]
mov r0, #4
str r0, [sp, #4]
mov r0, #3
str r0, [sp, #8]
ldr r0, _021EA394 ; =0x000927C0
mov r1, #0x66
str r0, [sp, #0xc]
add r0, r4, #0
lsl r1, r1, #2
add r0, #0x5c
add r1, r4, r1
mov r2, #0
mov r3, #1
bl MOD05_021E3E64
mov r0, #0
str r0, [sp]
mov r1, #0x66
str r0, [sp, #4]
add r0, r4, #0
lsl r1, r1, #2
mov r2, #2
ldr r3, _021EA398 ; =0xFFFE0000
add r0, #0x5c
add r1, r4, r1
lsl r2, r2, #0x12
bl MOD05_021E3FC4
mov r1, #0x73
lsl r1, r1, #2
str r0, [r4, r1]
ldr r0, [r4, r1]
mov r1, #0
bl FUN_020200A0
mov r0, #0x10
mov r1, #1
bl FUN_0201E6E4
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021EA382
_021EA198:
mov r0, #2
str r0, [sp]
mov r0, #1
add r1, r0, #0
sub r1, #0x11
add r2, r1, #0
add r3, r5, #4
bl MOD05_021E3474
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021EA382
_021EA1B2:
ldr r1, [r5, #4]
cmp r1, #0
bne _021EA1BA
_021EA1B8:
b _021EA382
_021EA1BA:
add r0, r0, #1
str r0, [r5]
b _021EA382
_021EA1C0:
mov r2, #1
mov r0, #0xc
lsl r2, r2, #0x14
str r0, [sp]
add r0, r4, #0
mov r1, #0
lsr r3, r2, #7
bl MOD05_021E3644
mov r0, #0x73
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #1
bl FUN_020200A0
mov r0, #0xc
str r0, [sp]
add r0, r4, #0
mov r2, #2
ldr r1, _021EA39C ; =0x0000019A
add r0, #0x18
lsl r2, r2, #0xc
mov r3, #0
bl MOD05_021E3644
mov r0, #0xc
str r0, [sp]
add r0, r4, #0
mov r2, #2
ldr r1, _021EA39C ; =0x0000019A
add r0, #0x30
lsl r2, r2, #0xc
mov r3, #0
bl MOD05_021E3644
ldr r1, [r4, #0x18]
ldr r2, [r4, #0x30]
add r0, sp, #0x28
mov r3, #0
bl MOD05_021E3FF8
mov r0, #0x73
lsl r0, r0, #2
ldr r0, [r4, r0]
add r1, sp, #0x28
mov r2, #2
bl FUN_02020074
add r0, r4, #0
ldr r2, _021EA3A0 ; =0x0000FFFF
add r0, #0x48
mov r1, #0
mov r3, #0xc
bl MOD05_021E35B0
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021EA382
_021EA236:
add r0, r4, #0
bl MOD05_021E36A4
mov r1, #2
lsl r1, r1, #0x12
add r6, r0, #0
ldr r3, [r4]
lsr r2, r1, #2
sub r2, r3, r2
add r0, sp, #0x10
mov r3, #0
bl MOD05_021E3FF8
add r3, sp, #0x10
add r2, sp, #0x1c
ldmia r3!, {r0, r1}
add r7, r2, #0
stmia r2!, {r0, r1}
ldr r0, [r3]
add r1, r7, #0
str r0, [r2]
mov r0, #0x73
lsl r0, r0, #2
ldr r0, [r4, r0]
bl FUN_02020044
add r0, r4, #0
add r0, #0x18
bl MOD05_021E36A4
add r0, r4, #0
add r0, #0x30
bl MOD05_021E36A4
ldr r1, [r4, #0x18]
ldr r2, [r4, #0x30]
add r0, sp, #0x28
mov r3, #0
bl MOD05_021E3FF8
mov r0, #0x73
lsl r0, r0, #2
ldr r0, [r4, r0]
add r1, sp, #0x28
bl FUN_02020064
add r0, r4, #0
add r0, #0x48
bl MOD05_021E35C0
mov r0, #0x73
ldr r1, [r4, #0x48]
lsl r0, r0, #2
lsl r1, r1, #0x10
ldr r0, [r4, r0]
lsr r1, r1, #0x10
bl FUN_02020088
cmp r6, #1
bne _021EA382
mov r0, #0x73
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0
bl FUN_020200A0
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021EA382
_021EA2C2:
ldr r0, [r5, #0x10]
ldr r0, [r0, #4]
ldr r0, [r0, #0x1c]
bl MOD05_021F4608
mov r0, #0x1d
lsl r0, r0, #4
ldr r0, [r4, r0]
bl FUN_0201F010
add r1, r0, #0
mov r0, #8
str r0, [sp]
mov r0, #0x75
mov r2, #0xfa
lsl r0, r0, #2
lsl r2, r2, #0xe
mov r3, #0xa
add r0, r4, r0
sub r2, r1, r2
lsl r3, r3, #0xc
bl MOD05_021E3644
mov r0, #8
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
mov r0, #4
mov r2, #0
str r0, [sp, #8]
mov r0, #3
mov r1, #0x12
add r3, r2, #0
bl FUN_0200E1D0
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021EA382
_021EA310:
mov r0, #0x75
lsl r0, r0, #2
add r0, r4, r0
bl MOD05_021E36A4
mov r1, #0x75
lsl r1, r1, #2
ldr r0, [r4, r1]
sub r1, r1, #4
ldr r1, [r4, r1]
bl FUN_0201EFE0
bl FUN_0200E308
cmp r0, #0
beq _021EA382
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021EA382
_021EA338:
mov r0, #1
mov r1, #0
bl FUN_0200E3A0
ldr r0, [r5, #0x10]
ldr r0, [r0, #4]
ldr r0, [r0, #0x1c]
bl MOD05_021F45E8
ldr r1, [r5, #0x14]
cmp r1, #0
beq _021EA354
mov r0, #1
str r0, [r1]
_021EA354:
mov r0, #0x73
lsl r0, r0, #2
ldr r0, [r4, r0]
bl FUN_0201FFC8
mov r1, #0x66
add r0, r4, #0
lsl r1, r1, #2
add r0, #0x5c
add r1, r4, r1
bl MOD05_021E3F3C
add r0, r4, #0
add r0, #0x5c
bl MOD05_021E3E44
ldr r1, [r5, #0xc]
mov r0, #4
bl FUN_02016A8C
add r0, r6, #0
bl FUN_0200621C
_021EA382:
ldr r0, [r5]
cmp r0, #7
beq _021EA38E
ldr r0, [r4, #0x5c]
bl FUN_0201FDEC
_021EA38E:
add sp, #0x34
pop {r4, r5, r6, r7, pc}
nop
_021EA394: .word 0x000927C0
_021EA398: .word 0xFFFE0000
_021EA39C: .word 0x0000019A
_021EA3A0: .word 0x0000FFFF
thumb_func_start MOD05_021EA3A4
MOD05_021EA3A4: ; 0x021EA3A4
push {r4, r5, r6, r7, lr}
sub sp, #0x44
str r0, [sp, #0x14]
add r0, r1, #0
ldr r0, [r0]
str r1, [sp, #0x18]
ldr r4, [r1, #0xc]
cmp r0, #9
bls _021EA3B8
b _021EA7DE
_021EA3B8:
add r1, r0, r0
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021EA3C4: ; jump table
.short _021EA3D8 - _021EA3C4 - 2 ; case 0
.short _021EA4CE - _021EA3C4 - 2 ; case 1
.short _021EA4EE - _021EA3C4 - 2 ; case 2
.short _021EA506 - _021EA3C4 - 2 ; case 3
.short _021EA582 - _021EA3C4 - 2 ; case 4
.short _021EA5FE - _021EA3C4 - 2 ; case 5
.short _021EA674 - _021EA3C4 - 2 ; case 6
.short _021EA6B4 - _021EA3C4 - 2 ; case 7
.short _021EA6FA - _021EA3C4 - 2 ; case 8
.short _021EA748 - _021EA3C4 - 2 ; case 9
_021EA3D8:
mov r1, #0x8a
mov r0, #4
lsl r1, r1, #2
bl AllocFromHeap
ldr r1, [sp, #0x18]
mov r2, #0x8a
str r0, [r1, #0xc]
mov r1, #0
lsl r2, r2, #2
bl memset
ldr r0, [sp, #0x18]
mov r2, #1
ldr r4, [r0, #0xc]
ldr r0, [r0, #0x10]
ldr r1, [r0, #0x20]
mov r0, #0x82
lsl r0, r0, #2
str r1, [r4, r0]
add r0, r4, #0
mov r1, #3
bl MOD05_021E3E14
mov r0, #2
str r0, [sp]
mov r0, #4
str r0, [sp, #4]
mov r0, #3
str r0, [sp, #8]
ldr r0, _021EA738 ; =0x000927C0
mov r1, #0x4f
lsl r1, r1, #2
str r0, [sp, #0xc]
add r0, r4, #0
add r1, r4, r1
mov r2, #0
mov r3, #1
bl MOD05_021E3E64
mov r7, #0x4f
mov r6, #0
add r5, r4, #0
lsl r7, r7, #2
_021EA430:
mov r0, #0
mov r2, #0
str r0, [sp]
add r3, r2, #0
str r0, [sp, #4]
add r0, r4, #0
add r1, r4, r7
sub r3, #0x20
bl MOD05_021E3FC4
mov r1, #0x17
lsl r1, r1, #4
str r0, [r5, r1]
add r0, r1, #0
ldr r0, [r5, r0]
mov r1, #0
bl FUN_020200A0
add r6, r6, #1
add r5, r5, #4
cmp r6, #3
blt _021EA430
mov r0, #0x10
mov r1, #1
bl FUN_0201E6E4
mov r0, #4
mov r1, #1
bl FUN_02018FF4
mov r1, #2
lsl r1, r1, #8
str r0, [r4, r1]
mov r3, #0
str r3, [sp]
mov r0, #0x20
str r0, [sp, #4]
str r0, [sp, #8]
str r3, [sp, #0xc]
str r3, [sp, #0x10]
ldr r0, [sp, #0x18]
ldr r1, [r4, r1]
ldr r0, [r0, #0x10]
mov r2, #3
ldr r0, [r0, #8]
bl FUN_02019064
mov r1, #0
add r0, sp, #0x28
strh r1, [r0]
mov r0, #3
add r1, sp, #0x28
mov r2, #2
mov r3, #0x1e
bl FUN_02017FB4
mov r0, #2
lsl r0, r0, #8
ldr r0, [r4, r0]
mov r1, #0
bl FUN_02019620
mov r0, #2
lsl r0, r0, #8
ldr r0, [r4, r0]
bl FUN_02019220
mov r0, #4
bl MOD05_021E4394
mov r1, #0x81
lsl r1, r1, #2
str r0, [r4, r1]
ldr r0, [sp, #0x18]
ldr r0, [r0]
add r1, r0, #1
ldr r0, [sp, #0x18]
str r1, [r0]
b _021EA7DE
_021EA4CE:
mov r1, #0x10
ldr r3, [sp, #0x18]
mov r0, #2
add r2, r1, #0
str r0, [sp]
mov r0, #1
sub r2, #0x20
add r3, r3, #4
bl MOD05_021E3474
ldr r0, [sp, #0x18]
ldr r0, [r0]
add r1, r0, #1
ldr r0, [sp, #0x18]
str r1, [r0]
b _021EA7DE
_021EA4EE:
ldr r1, [sp, #0x18]
ldr r1, [r1, #4]
cmp r1, #0
beq _021EA516
add r1, r0, #1
ldr r0, [sp, #0x18]
str r1, [r0]
mov r0, #0x89
mov r1, #0
lsl r0, r0, #2
strh r1, [r4, r0]
b _021EA7DE
_021EA506:
mov r0, #0x89
lsl r0, r0, #2
ldrsh r1, [r4, r0]
sub r1, r1, #1
strh r1, [r4, r0]
ldrsh r1, [r4, r0]
cmp r1, #0
ble _021EA518
_021EA516:
b _021EA7DE
_021EA518:
sub r0, #0xa8
mov r1, #0x1f
add r0, r4, r0
mvn r1, r1
mov r2, #0xe0
mov r3, #5
bl MOD05_021E35B0
mov r1, #2
ldr r2, _021EA73C ; =0xFFFE0000
add r0, sp, #0x38
lsl r1, r1, #0x12
mov r3, #0
bl MOD05_021E3FF8
mov r0, #0x17
lsl r0, r0, #4
ldr r0, [r4, r0]
add r1, sp, #0x38
bl FUN_02020044
mov r0, #0x17
lsl r0, r0, #4
ldr r0, [r4, r0]
mov r1, #1
bl FUN_020200A0
mov r0, #0x6e
lsl r0, r0, #2
ldr r2, _021EA740 ; =0x0000FFFF
add r0, r4, r0
mov r1, #0
mov r3, #5
bl MOD05_021E35B0
mov r0, #0x17
lsl r0, r0, #4
ldr r0, [r4, r0]
mov r1, #2
bl FUN_020200EC
mov r1, #0x7d
mov r3, #1
lsl r1, r1, #2
str r3, [r4, r1]
ldr r0, [sp, #0x18]
add r1, #0x30
ldr r0, [r0]
add r2, r0, #1
ldr r0, [sp, #0x18]
str r2, [r0]
strh r3, [r4, r1]
b _021EA7DE
_021EA582:
mov r0, #0x89
lsl r0, r0, #2
ldrsh r1, [r4, r0]
sub r1, r1, #1
strh r1, [r4, r0]
ldrsh r1, [r4, r0]
cmp r1, #0
bgt _021EA68E
sub r0, #0x94
mov r1, #0x1f
add r0, r4, r0
mvn r1, r1
mov r2, #0xe0
mov r3, #5
bl MOD05_021E35B0
mov r1, #0xd
ldr r2, _021EA73C ; =0xFFFE0000
add r0, sp, #0x38
lsl r1, r1, #0x10
mov r3, #0
bl MOD05_021E3FF8
mov r0, #0x5d
lsl r0, r0, #2
ldr r0, [r4, r0]
add r1, sp, #0x38
bl FUN_02020044
mov r0, #0x5d
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #1
bl FUN_020200A0
mov r0, #0x73
lsl r0, r0, #2
ldr r2, _021EA744 ; =0xFFFF0001
add r0, r4, r0
mov r1, #0
mov r3, #5
bl MOD05_021E35B0
mov r0, #0x5d
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #2
bl FUN_020200EC
mov r1, #0x7e
mov r0, #1
lsl r1, r1, #2
str r0, [r4, r1]
ldr r0, [sp, #0x18]
add r1, #0x2c
ldr r0, [r0]
add r2, r0, #1
ldr r0, [sp, #0x18]
str r2, [r0]
mov r0, #3
strh r0, [r4, r1]
b _021EA7DE
_021EA5FE:
mov r0, #0x89
lsl r0, r0, #2
ldrsh r1, [r4, r0]
sub r1, r1, #1
strh r1, [r4, r0]
ldrsh r1, [r4, r0]
cmp r1, #0
bgt _021EA68E
sub r0, #0x80
mov r1, #0x1f
add r0, r4, r0
mvn r1, r1
mov r2, #0xe0
mov r3, #5
bl MOD05_021E35B0
mov r1, #3
ldr r2, _021EA73C ; =0xFFFE0000
add r0, sp, #0x38
lsl r1, r1, #0x10
mov r3, #0
bl MOD05_021E3FF8
mov r0, #0x5e
lsl r0, r0, #2
ldr r0, [r4, r0]
add r1, sp, #0x38
bl FUN_02020044
mov r0, #0x5e
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #1
bl FUN_020200A0
mov r0, #0x1e
lsl r0, r0, #4
ldr r2, _021EA740 ; =0x0000FFFF
add r0, r4, r0
mov r1, #0
mov r3, #5
bl MOD05_021E35B0
mov r0, #0x5e
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #2
bl FUN_020200EC
mov r0, #0x7f
mov r1, #1
lsl r0, r0, #2
str r1, [r4, r0]
ldr r0, [sp, #0x18]
ldr r0, [r0]
add r1, r0, #1
ldr r0, [sp, #0x18]
str r1, [r0]
b _021EA7DE
_021EA674:
mov r1, #0x7d
lsl r1, r1, #2
ldr r0, [r4, r1]
cmp r0, #0
bne _021EA68E
add r0, r1, #4
ldr r0, [r4, r0]
cmp r0, #0
bne _021EA68E
add r1, #8
ldr r0, [r4, r1]
cmp r0, #0
beq _021EA690
_021EA68E:
b _021EA7DE
_021EA690:
mov r7, #0x17
mov r6, #0
add r5, r4, #0
lsl r7, r7, #4
_021EA698:
ldr r0, [r5, r7]
mov r1, #0
bl FUN_020200A0
add r6, r6, #1
add r5, r5, #4
cmp r6, #3
blt _021EA698
ldr r0, [sp, #0x18]
ldr r0, [r0]
add r1, r0, #1
ldr r0, [sp, #0x18]
str r1, [r0]
b _021EA7DE
_021EA6B4:
mov r0, #0xf
mov r1, #1
str r0, [sp]
mov r0, #0x81
lsl r0, r0, #2
lsl r3, r1, #9
ldr r0, [r4, r0]
ldr r3, [r4, r3]
add r2, r1, #0
bl MOD05_021E43E4
mov r0, #0x82
lsl r0, r0, #2
ldr r0, [r4, r0]
bl FUN_0201F010
add r1, r0, #0
mov r0, #0x40
str r0, [sp]
mov r0, #0x83
mov r2, #0xfa
lsl r0, r0, #2
lsl r2, r2, #0xe
mov r3, #0xa
add r0, r4, r0
sub r2, r1, r2
lsl r3, r3, #0xc
bl MOD05_021E3644
ldr r0, [sp, #0x18]
ldr r0, [r0]
add r1, r0, #1
ldr r0, [sp, #0x18]
str r1, [r0]
b _021EA7DE
_021EA6FA:
mov r0, #0x81
lsl r0, r0, #2
ldr r0, [r4, r0]
bl MOD05_021E4424
add r5, r0, #0
mov r0, #2
lsl r0, r0, #8
ldr r0, [r4, r0]
bl FUN_02019220
mov r0, #0x83
lsl r0, r0, #2
add r0, r4, r0
bl MOD05_021E36A4
mov r1, #0x83
lsl r1, r1, #2
ldr r0, [r4, r1]
sub r1, r1, #4
ldr r1, [r4, r1]
bl FUN_0201EFE0
cmp r5, #1
bne _021EA7DE
ldr r0, [sp, #0x18]
ldr r0, [r0]
add r1, r0, #1
ldr r0, [sp, #0x18]
str r1, [r0]
b _021EA7DE
.balign 4, 0
_021EA738: .word 0x000927C0
_021EA73C: .word 0xFFFE0000
_021EA740: .word 0x0000FFFF
_021EA744: .word 0xFFFF0001
_021EA748:
mov r0, #0
add r1, r0, #0
bl FUN_0200E3A0
mov r0, #1
mov r1, #0
bl FUN_0200E3A0
ldr r0, [sp, #0x18]
ldr r1, [r0, #0x14]
cmp r1, #0
beq _021EA764
mov r0, #1
str r0, [r1]
_021EA764:
mov r7, #0x17
mov r6, #0
add r5, r4, #0
lsl r7, r7, #4
_021EA76C:
ldr r0, [r5, r7]
bl FUN_0201FFC8
add r6, r6, #1
add r5, r5, #4
cmp r6, #3
blt _021EA76C
mov r1, #0x4f
lsl r1, r1, #2
add r0, r4, #0
add r1, r4, r1
bl MOD05_021E3F3C
add r0, r4, #0
bl MOD05_021E3E44
mov r0, #0x81
lsl r0, r0, #2
ldr r0, [r4, r0]
bl MOD05_021E43C4
mov r0, #2
lsl r0, r0, #8
ldr r0, [r4, r0]
bl FUN_02019570
mov r0, #2
lsl r0, r0, #8
ldr r0, [r4, r0]
bl FUN_02019178
mov r0, #2
lsl r0, r0, #8
ldr r0, [r4, r0]
mov r1, #1
bl FUN_020191A4
mov r0, #3
mov r1, #0x20
mov r2, #0
mov r3, #4
bl FUN_02017F18
ldr r0, [sp, #0x18]
mov r1, #3
ldr r0, [r0, #0x10]
ldr r0, [r0, #8]
bl FUN_02018744
ldr r1, [sp, #0x18]
mov r0, #4
ldr r1, [r1, #0xc]
bl FUN_02016A8C
ldr r0, [sp, #0x14]
bl FUN_0200621C
_021EA7DE:
mov r1, #0x5f
mov r0, #0
lsl r1, r1, #2
str r0, [sp, #0x1c]
add r0, r4, r1
add r1, #0x3c
add r5, r4, #0
str r0, [sp, #0x20]
add r7, r4, r1
add r6, r4, #0
_021EA7F2:
mov r0, #0x7d
lsl r0, r0, #2
ldr r0, [r5, r0]
cmp r0, #1
bne _021EA85A
ldr r0, [sp, #0x20]
bl MOD05_021E35C0
str r0, [sp, #0x24]
add r0, r7, #0
bl MOD05_021E35C0
ldr r0, [sp, #0x24]
cmp r0, #0
beq _021EA818
mov r0, #0x7d
mov r1, #0
lsl r0, r0, #2
str r1, [r5, r0]
_021EA818:
mov r0, #0x17
lsl r0, r0, #4
ldr r0, [r5, r0]
bl FUN_0202011C
add r3, r0, #0
add r2, sp, #0x2c
ldmia r3!, {r0, r1}
mov ip, r2
stmia r2!, {r0, r1}
ldr r0, [r3]
mov r1, ip
str r0, [r2]
mov r0, #0x5f
lsl r0, r0, #2
ldr r0, [r6, r0]
lsl r0, r0, #0xc
str r0, [sp, #0x30]
mov r0, #0x17
lsl r0, r0, #4
ldr r0, [r5, r0]
bl FUN_02020044
mov r1, #0x6e
lsl r1, r1, #2
mov r0, #0x17
ldr r1, [r6, r1]
lsl r0, r0, #4
lsl r1, r1, #0x10
ldr r0, [r5, r0]
lsr r1, r1, #0x10
bl FUN_02020088
_021EA85A:
ldr r0, [sp, #0x20]
add r5, r5, #4
add r0, #0x14
str r0, [sp, #0x20]
ldr r0, [sp, #0x1c]
add r7, #0x14
add r0, r0, #1
add r6, #0x14
str r0, [sp, #0x1c]
cmp r0, #3
blt _021EA7F2
ldr r0, [sp, #0x18]
ldr r0, [r0]
cmp r0, #9
beq _021EA87E
ldr r0, [r4]
bl FUN_0201FDEC
_021EA87E:
add sp, #0x44
pop {r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021EA884
MOD05_021EA884: ; 0x021EA884
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x40
add r4, r1, #0
add r6, r0, #0
ldr r0, [r4]
ldr r5, [r4, #0xc]
cmp r0, #7
bls _021EA896
b _021EAAC6
_021EA896:
add r1, r0, r0
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021EA8A2: ; jump table
.short _021EA8B2 - _021EA8A2 - 2 ; case 0
.short _021EA93E - _021EA8A2 - 2 ; case 1
.short _021EA958 - _021EA8A2 - 2 ; case 2
.short _021EA964 - _021EA8A2 - 2 ; case 3
.short _021EA996 - _021EA8A2 - 2 ; case 4
.short _021EA9C8 - _021EA8A2 - 2 ; case 5
.short _021EAA38 - _021EA8A2 - 2 ; case 6
.short _021EAA7C - _021EA8A2 - 2 ; case 7
_021EA8B2:
mov r1, #0x69
mov r0, #4
lsl r1, r1, #2
bl AllocFromHeap
mov r2, #0x69
str r0, [r4, #0xc]
mov r1, #0
lsl r2, r2, #2
bl memset
ldr r5, [r4, #0xc]
mov r1, #1
add r0, r5, #0
add r0, #0x2c
add r2, r1, #0
bl MOD05_021E3E14
mov r0, #5
str r0, [sp]
mov r0, #7
str r0, [sp, #4]
mov r0, #6
str r0, [sp, #8]
ldr r0, _021EAAD8 ; =0x000927C0
mov r1, #0x5a
str r0, [sp, #0xc]
add r0, r5, #0
lsl r1, r1, #2
add r0, #0x2c
add r1, r5, r1
mov r2, #0
mov r3, #1
bl MOD05_021E3E64
mov r0, #0
str r0, [sp]
mov r1, #0x5a
str r0, [sp, #4]
add r0, r5, #0
lsl r1, r1, #2
mov r2, #2
mov r3, #6
add r0, #0x2c
add r1, r5, r1
lsl r2, r2, #0x12
lsl r3, r3, #0x10
bl MOD05_021E3FC4
mov r1, #0x67
lsl r1, r1, #2
str r0, [r5, r1]
ldr r0, [r5, r1]
mov r1, #0
bl FUN_020200A0
mov r0, #0x67
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #1
bl FUN_02020398
mov r0, #0x10
mov r1, #1
bl FUN_0201E6E4
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021EAAC6
_021EA93E:
mov r1, #0x10
mov r0, #2
add r2, r1, #0
str r0, [sp]
mov r0, #1
sub r2, #0x20
add r3, r4, #4
bl MOD05_021E3474
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021EAAC6
_021EA958:
ldr r1, [r4, #4]
cmp r1, #0
beq _021EA9AE
add r0, r0, #1
str r0, [r4]
b _021EAAC6
_021EA964:
add r0, r5, #0
mov r1, #0
mov r2, #0x10
mov r3, #0xc
bl MOD05_021E35B0
ldr r3, [r5]
mov r0, #0x10
sub r0, r0, r3
str r0, [sp]
ldr r0, _021EAADC ; =0x04000050
mov r1, #0
mov r2, #0xf
bl G2x_SetBlendAlpha_
mov r0, #0x67
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #1
bl FUN_020200A0
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021EAAC6
_021EA996:
add r0, r5, #0
bl MOD05_021E35C0
ldr r2, [r5]
mov r1, #0x10
sub r1, r1, r2
lsl r1, r1, #8
orr r1, r2
ldr r2, _021EAAE0 ; =0x04000052
cmp r0, #1
strh r1, [r2]
beq _021EA9B0
_021EA9AE:
b _021EAAC6
_021EA9B0:
mov r1, #0
sub r0, r2, #2
strh r1, [r0]
mov r0, #0x67
lsl r0, r0, #2
ldr r0, [r5, r0]
bl FUN_02020398
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021EAAC6
_021EA9C8:
mov r0, #6
str r0, [sp]
add r0, r5, #0
mov r1, #1
ldr r2, _021EAAE4 ; =0x0000019A
add r0, #0x14
lsl r1, r1, #0xc
mov r3, #1
bl MOD05_021E3644
mov r0, #0x67
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #2
bl FUN_020200EC
ldr r1, [r5, #0x14]
add r0, sp, #0x1c
add r2, r1, #0
add r3, r1, #0
bl MOD05_021E3FF8
add r6, sp, #0x1c
add r3, sp, #0x34
ldmia r6!, {r0, r1}
add r2, r3, #0
stmia r3!, {r0, r1}
ldr r0, [r6]
add r1, r2, #0
str r0, [r3]
mov r0, #0x67
lsl r0, r0, #2
ldr r0, [r5, r0]
bl FUN_02020064
ldr r0, [r4, #0x10]
ldr r0, [r0, #4]
ldr r0, [r0, #0x1c]
bl MOD05_021F4608
mov r0, #6
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
mov r0, #4
mov r2, #0
str r0, [sp, #8]
mov r0, #3
mov r1, #0x10
add r3, r2, #0
bl FUN_0200E1D0
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021EAAC6
_021EAA38:
add r0, r5, #0
add r0, #0x14
bl MOD05_021E36A4
ldr r1, [r5, #0x14]
add r6, r0, #0
add r0, sp, #0x10
add r2, r1, #0
add r3, r1, #0
bl MOD05_021E3FF8
add r3, sp, #0x10
add r2, sp, #0x28
ldmia r3!, {r0, r1}
add r7, r2, #0
stmia r2!, {r0, r1}
ldr r0, [r3]
add r1, r7, #0
str r0, [r2]
mov r0, #0x67
lsl r0, r0, #2
ldr r0, [r5, r0]
bl FUN_02020064
cmp r6, #1
bne _021EAAC6
bl FUN_0200E308
cmp r0, #1
bne _021EAAC6
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021EAAC6
_021EAA7C:
mov r0, #1
mov r1, #0
bl FUN_0200E3A0
ldr r0, [r4, #0x10]
ldr r0, [r0, #4]
ldr r0, [r0, #0x1c]
bl MOD05_021F45E8
ldr r1, [r4, #0x14]
cmp r1, #0
beq _021EAA98
mov r0, #1
str r0, [r1]
_021EAA98:
mov r0, #0x67
lsl r0, r0, #2
ldr r0, [r5, r0]
bl FUN_0201FFC8
mov r1, #0x5a
add r0, r5, #0
lsl r1, r1, #2
add r0, #0x2c
add r1, r5, r1
bl MOD05_021E3F3C
add r0, r5, #0
add r0, #0x2c
bl MOD05_021E3E44
ldr r1, [r4, #0xc]
mov r0, #4
bl FUN_02016A8C
add r0, r6, #0
bl FUN_0200621C
_021EAAC6:
ldr r0, [r4]
cmp r0, #7
beq _021EAAD2
ldr r0, [r5, #0x2c]
bl FUN_0201FDEC
_021EAAD2:
add sp, #0x40
pop {r3, r4, r5, r6, r7, pc}
nop
_021EAAD8: .word 0x000927C0
_021EAADC: .word 0x04000050
_021EAAE0: .word 0x04000052
_021EAAE4: .word 0x0000019A
thumb_func_start MOD05_021EAAE8
MOD05_021EAAE8: ; 0x021EAAE8
push {r4, r5, r6, r7, lr}
sub sp, #0x24
add r6, r1, #0
str r0, [sp, #0x10]
ldr r0, [r6]
ldr r4, [r6, #0xc]
cmp r0, #7
bhi _021EABBC
add r1, r0, r0
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021EAB04: ; jump table
.short _021EAB14 - _021EAB04 - 2 ; case 0
.short _021EAB9C - _021EAB04 - 2 ; case 1
.short _021EABB6 - _021EAB04 - 2 ; case 2
.short _021EABC4 - _021EAB04 - 2 ; case 3
.short _021EAC0E - _021EAB04 - 2 ; case 4
.short _021EACC0 - _021EAB04 - 2 ; case 5
.short _021EACEA - _021EAB04 - 2 ; case 6
.short _021EACFA - _021EAB04 - 2 ; case 7
_021EAB14:
mov r1, #0x1b
mov r0, #4
lsl r1, r1, #4
bl AllocFromHeap
mov r2, #0x1b
str r0, [r6, #0xc]
mov r1, #0
lsl r2, r2, #4
bl memset
ldr r4, [r6, #0xc]
mov r1, #4
add r0, r4, #0
mov r2, #1
bl MOD05_021E3E14
mov r0, #2
str r0, [sp]
mov r0, #4
str r0, [sp, #4]
mov r0, #3
str r0, [sp, #8]
ldr r0, _021EAD5C ; =0x000927C0
mov r1, #0x4f
lsl r1, r1, #2
str r0, [sp, #0xc]
add r0, r4, #0
add r1, r4, r1
mov r2, #0
mov r3, #1
bl MOD05_021E3E64
mov r7, #0
add r5, r4, #0
_021EAB5A:
mov r0, #0
mov r1, #0x4f
str r0, [sp]
lsl r1, r1, #2
mov r2, #2
mov r3, #6
str r0, [sp, #4]
add r0, r4, #0
add r1, r4, r1
lsl r2, r2, #0x12
lsl r3, r3, #0x10
bl MOD05_021E3FC4
mov r1, #0x17
lsl r1, r1, #4
str r0, [r5, r1]
add r0, r1, #0
ldr r0, [r5, r0]
mov r1, #0
bl FUN_020200A0
add r7, r7, #1
add r5, r5, #4
cmp r7, #4
blt _021EAB5A
mov r0, #0x10
mov r1, #1
bl FUN_0201E6E4
ldr r0, [r6]
add r0, r0, #1
str r0, [r6]
b _021EAD4C
_021EAB9C:
mov r1, #0x10
mov r0, #2
add r2, r1, #0
str r0, [sp]
mov r0, #1
sub r2, #0x20
add r3, r6, #4
bl MOD05_021E3474
ldr r0, [r6]
add r0, r0, #1
str r0, [r6]
b _021EAD4C
_021EABB6:
ldr r1, [r6, #4]
cmp r1, #0
bne _021EABBE
_021EABBC:
b _021EAD4C
_021EABBE:
add r0, r0, #1
str r0, [r6]
b _021EAD4C
_021EABC4:
mov r3, #6
mov r2, #4
lsl r3, r3, #6
str r2, [sp]
add r0, r4, r3
mov r1, #0
lsl r2, r2, #0x11
add r3, #0x1a
bl MOD05_021E3644
mov r3, #0x66
mov r0, #4
mov r2, #0xa
lsl r3, r3, #2
str r0, [sp]
add r0, r4, r3
mov r1, #0
lsl r2, r2, #0x10
add r3, r3, #2
bl MOD05_021E3644
mov r7, #0
add r5, r4, #0
_021EABF2:
mov r0, #0x17
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #1
bl FUN_020200A0
add r7, r7, #1
add r5, r5, #4
cmp r7, #4
blt _021EABF2
ldr r0, [r6]
add r0, r0, #1
str r0, [r6]
b _021EAD4C
_021EAC0E:
mov r0, #6
lsl r0, r0, #6
mov r7, #0
add r5, r4, r0
_021EAC16:
add r0, r5, #0
bl MOD05_021E36A4
add r7, r7, #1
add r5, #0x18
str r0, [sp, #0x14]
cmp r7, #2
blt _021EAC16
mov r2, #6
lsl r2, r2, #6
ldr r3, [r4, r2]
mov r1, #2
lsl r2, r2, #0xa
sub r2, r2, r3
add r0, sp, #0x18
lsl r1, r1, #0x12
mov r3, #0
bl MOD05_021E3FF8
mov r0, #0x17
lsl r0, r0, #4
ldr r0, [r4, r0]
add r1, sp, #0x18
bl FUN_02020044
mov r2, #6
lsl r2, r2, #6
ldr r3, [r4, r2]
mov r1, #2
lsl r2, r2, #0xa
add r2, r3, r2
add r0, sp, #0x18
lsl r1, r1, #0x12
mov r3, #0
bl MOD05_021E3FF8
mov r0, #0x5d
lsl r0, r0, #2
ldr r0, [r4, r0]
add r1, sp, #0x18
bl FUN_02020044
mov r1, #0x66
lsl r1, r1, #2
ldr r2, [r4, r1]
mov r1, #2
lsl r1, r1, #0x12
sub r1, r1, r2
mov r2, #6
add r0, sp, #0x18
lsl r2, r2, #0x10
mov r3, #0
bl MOD05_021E3FF8
mov r0, #0x5e
lsl r0, r0, #2
ldr r0, [r4, r0]
add r1, sp, #0x18
bl FUN_02020044
mov r1, #0x66
lsl r1, r1, #2
ldr r2, [r4, r1]
mov r1, #2
lsl r1, r1, #0x12
add r1, r2, r1
mov r2, #6
add r0, sp, #0x18
lsl r2, r2, #0x10
mov r3, #0
bl MOD05_021E3FF8
mov r0, #0x5f
lsl r0, r0, #2
ldr r0, [r4, r0]
add r1, sp, #0x18
bl FUN_02020044
ldr r0, [sp, #0x14]
cmp r0, #1
bne _021EAD4C
ldr r0, [r6]
add r0, r0, #1
str r0, [r6]
b _021EAD4C
_021EACC0:
ldr r0, [r6, #0x10]
ldr r0, [r0, #4]
ldr r0, [r0, #0x1c]
bl MOD05_021F4608
mov r0, #8
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
mov r0, #4
mov r2, #0
str r0, [sp, #8]
mov r0, #3
mov r1, #0x22
add r3, r2, #0
bl FUN_0200E1D0
ldr r0, [r6]
add r0, r0, #1
str r0, [r6]
b _021EAD4C
_021EACEA:
bl FUN_0200E308
cmp r0, #1
bne _021EAD4C
ldr r0, [r6]
add r0, r0, #1
str r0, [r6]
b _021EAD4C
_021EACFA:
mov r0, #1
mov r1, #0
bl FUN_0200E3A0
ldr r0, [r6, #0x10]
ldr r0, [r0, #4]
ldr r0, [r0, #0x1c]
bl MOD05_021F45E8
ldr r1, [r6, #0x14]
cmp r1, #0
beq _021EAD16
mov r0, #1
str r0, [r1]
_021EAD16:
mov r7, #0
add r5, r4, #0
_021EAD1A:
mov r0, #0x17
lsl r0, r0, #4
ldr r0, [r5, r0]
bl FUN_0201FFC8
add r7, r7, #1
add r5, r5, #4
cmp r7, #4
blt _021EAD1A
mov r1, #0x4f
lsl r1, r1, #2
add r0, r4, #0
add r1, r4, r1
bl MOD05_021E3F3C
add r0, r4, #0
bl MOD05_021E3E44
ldr r1, [r6, #0xc]
mov r0, #4
bl FUN_02016A8C
ldr r0, [sp, #0x10]
bl FUN_0200621C
_021EAD4C:
ldr r0, [r6]
cmp r0, #7
beq _021EAD58
ldr r0, [r4]
bl FUN_0201FDEC
_021EAD58:
add sp, #0x24
pop {r4, r5, r6, r7, pc}
.balign 4, 0
_021EAD5C: .word 0x000927C0
thumb_func_start MOD05_021EAD60
MOD05_021EAD60: ; 0x021EAD60
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x48
str r0, [sp, #0x10]
add r0, r1, #0
ldr r0, [r0]
str r1, [sp, #0x14]
ldr r4, [r1, #0xc]
cmp r0, #7
bhi _021EAE6E
add r1, r0, r0
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021EAD7E: ; jump table
.short _021EAD8E - _021EAD7E - 2 ; case 0
.short _021EAE1A - _021EAD7E - 2 ; case 1
.short _021EAE3A - _021EAD7E - 2 ; case 2
.short _021EAE5E - _021EAD7E - 2 ; case 3
.short _021EAF9C - _021EAD7E - 2 ; case 4
.short _021EAFAE - _021EAD7E - 2 ; case 5
.short _021EAFDE - _021EAD7E - 2 ; case 6
.short _021EAFF2 - _021EAD7E - 2 ; case 7
_021EAD8E:
mov r1, #0x3d
mov r0, #4
lsl r1, r1, #4
bl AllocFromHeap
ldr r1, [sp, #0x14]
mov r2, #0x3d
str r0, [r1, #0xc]
mov r1, #0
lsl r2, r2, #4
bl memset
ldr r0, [sp, #0x14]
mov r1, #6
ldr r4, [r0, #0xc]
mov r2, #1
add r0, r4, #0
bl MOD05_021E3E14
mov r0, #2
str r0, [sp]
mov r0, #4
str r0, [sp, #4]
mov r0, #3
str r0, [sp, #8]
ldr r0, _021EB138 ; =0x000927C0
mov r1, #0x4f
lsl r1, r1, #2
str r0, [sp, #0xc]
add r0, r4, #0
add r1, r4, r1
mov r2, #0
mov r3, #1
bl MOD05_021E3E64
mov r7, #0x4f
mov r6, #0
add r5, r4, #0
lsl r7, r7, #2
_021EADDC:
mov r0, #0
str r0, [sp]
mov r2, #0
str r0, [sp, #4]
add r0, r4, #0
add r1, r4, r7
add r3, r2, #0
bl MOD05_021E3FC4
mov r1, #0x17
lsl r1, r1, #4
str r0, [r5, r1]
add r0, r1, #0
ldr r0, [r5, r0]
mov r1, #0
bl FUN_020200A0
add r6, r6, #1
add r5, r5, #4
cmp r6, #6
blt _021EADDC
mov r0, #0x10
mov r1, #1
bl FUN_0201E6E4
ldr r0, [sp, #0x14]
ldr r0, [r0]
add r1, r0, #1
ldr r0, [sp, #0x14]
str r1, [r0]
b _021EB04A
_021EAE1A:
mov r0, #2
str r0, [sp]
mov r0, #1
add r1, r0, #0
ldr r3, [sp, #0x14]
sub r1, #0x11
add r2, r1, #0
add r3, r3, #4
bl MOD05_021E3474
ldr r0, [sp, #0x14]
ldr r0, [r0]
add r1, r0, #1
ldr r0, [sp, #0x14]
str r1, [r0]
b _021EB04A
_021EAE3A:
ldr r1, [sp, #0x14]
ldr r1, [r1, #4]
cmp r1, #0
beq _021EAE6E
add r1, r0, #1
ldr r0, [sp, #0x14]
str r1, [r0]
mov r0, #0xf2
mov r1, #0
lsl r0, r0, #2
str r1, [r4, r0]
ldr r1, [r4, r0]
add r0, r0, #4
lsl r2, r1, #5
ldr r1, _021EB13C ; =0x021F7A50
ldr r1, [r1, r2]
str r1, [r4, r0]
b _021EB04A
_021EAE5E:
mov r0, #0xf3
lsl r0, r0, #2
ldr r1, [r4, r0]
sub r1, r1, #1
str r1, [r4, r0]
ldr r1, [r4, r0]
cmp r1, #0
blt _021EAE70
_021EAE6E:
b _021EB04A
_021EAE70:
sub r0, r0, #4
ldr r0, [r4, r0]
mov r1, #8
str r1, [sp]
mov r1, #0x86
lsl r1, r1, #2
add r2, r4, r1
mov r1, #0x18
mul r1, r0
lsl r3, r0, #5
add r0, r2, r1
ldr r1, _021EB140 ; =0x021F7A38
ldr r2, _021EB144 ; =0x021F7A3C
ldr r5, _021EB148 ; =0x021F7A40
ldr r1, [r1, r3]
ldr r2, [r2, r3]
ldr r3, [r5, r3]
bl MOD05_021E3644
mov r0, #0xf2
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #8
str r1, [sp]
mov r1, #0xaa
lsl r1, r1, #2
add r2, r4, r1
mov r1, #0x18
mul r1, r0
lsl r3, r0, #5
add r0, r2, r1
ldr r1, _021EB14C ; =0x021F7A44
ldr r2, _021EB150 ; =0x021F7A48
ldr r5, _021EB154 ; =0x021F7A4C
ldr r1, [r1, r3]
ldr r2, [r2, r3]
ldr r3, [r5, r3]
bl MOD05_021E3644
mov r0, #0x62
lsl r0, r0, #2
mov r1, #8
add r3, r4, r0
mov r0, #0xf2
str r1, [sp]
lsl r0, r0, #2
ldr r2, [r4, r0]
mov r0, #0x18
mul r0, r2
add r0, r3, r0
ldr r3, _021EB158 ; =0xFFFFF99A
lsl r1, r1, #0xa
mov r2, #0x29
bl MOD05_021E3644
mov r0, #0xf2
lsl r0, r0, #2
ldr r2, [r4, r0]
sub r0, #0x90
add r1, r4, r0
mov r0, #0x14
mul r0, r2
lsl r3, r2, #5
ldr r2, _021EB15C ; =0x021F7A54
add r0, r1, r0
ldr r2, [r2, r3]
mov r1, #0
mov r3, #8
bl MOD05_021E35B0
mov r0, #0xf2
lsl r0, r0, #2
ldr r0, [r4, r0]
lsl r0, r0, #2
add r1, r4, r0
mov r0, #0x17
lsl r0, r0, #4
ldr r0, [r1, r0]
mov r1, #1
bl FUN_020200A0
mov r0, #0xf2
lsl r0, r0, #2
ldr r0, [r4, r0]
ldr r1, _021EB140 ; =0x021F7A38
lsl r3, r0, #5
ldr r2, _021EB14C ; =0x021F7A44
ldr r1, [r1, r3]
ldr r2, [r2, r3]
add r0, sp, #0x3c
mov r3, #0
bl MOD05_021E3FF8
mov r0, #0xf2
lsl r0, r0, #2
ldr r0, [r4, r0]
lsl r0, r0, #2
add r1, r4, r0
mov r0, #0x17
lsl r0, r0, #4
ldr r0, [r1, r0]
add r1, sp, #0x3c
bl FUN_02020044
mov r1, #2
lsl r1, r1, #0xc
add r0, sp, #0x30
add r2, r1, #0
mov r3, #0
bl MOD05_021E3FF8
mov r0, #0xf2
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r2, #2
lsl r0, r0, #2
add r1, r4, r0
mov r0, #0x17
lsl r0, r0, #4
ldr r0, [r1, r0]
add r1, sp, #0x30
bl FUN_02020074
mov r1, #0xf2
lsl r1, r1, #2
ldr r0, [r4, r1]
mov r3, #1
lsl r0, r0, #2
add r2, r4, r0
add r0, r1, #0
sub r0, #0x18
str r3, [r2, r0]
ldr r0, [r4, r1]
add r0, r0, #1
str r0, [r4, r1]
ldr r0, [r4, r1]
cmp r0, #6
blt _021EAF90
ldr r0, [sp, #0x14]
ldr r0, [r0]
add r1, r0, #1
ldr r0, [sp, #0x14]
str r1, [r0]
b _021EB04A
_021EAF90:
lsl r2, r0, #5
ldr r0, _021EB13C ; =0x021F7A50
ldr r2, [r0, r2]
add r0, r1, #4
str r2, [r4, r0]
b _021EB04A
_021EAF9C:
mov r1, #0xf1
lsl r1, r1, #2
ldr r1, [r4, r1]
cmp r1, #0
bne _021EB04A
add r1, r0, #1
ldr r0, [sp, #0x14]
str r1, [r0]
b _021EB04A
_021EAFAE:
ldr r0, [sp, #0x14]
ldr r0, [r0, #0x10]
ldr r0, [r0, #4]
ldr r0, [r0, #0x1c]
bl MOD05_021F4608
mov r0, #0xc
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
mov r0, #4
mov r2, #0
str r0, [sp, #8]
mov r0, #3
mov r1, #0x22
add r3, r2, #0
bl FUN_0200E1D0
ldr r0, [sp, #0x14]
ldr r0, [r0]
add r1, r0, #1
ldr r0, [sp, #0x14]
str r1, [r0]
b _021EB04A
_021EAFDE:
bl FUN_0200E308
cmp r0, #0
beq _021EB04A
ldr r0, [sp, #0x14]
ldr r0, [r0]
add r1, r0, #1
ldr r0, [sp, #0x14]
str r1, [r0]
b _021EB04A
_021EAFF2:
mov r0, #1
mov r1, #0
bl FUN_0200E3A0
ldr r0, [sp, #0x14]
ldr r0, [r0, #0x10]
ldr r0, [r0, #4]
ldr r0, [r0, #0x1c]
bl MOD05_021F45E8
ldr r0, [sp, #0x14]
ldr r1, [r0, #0x14]
cmp r1, #0
beq _021EB012
mov r0, #1
str r0, [r1]
_021EB012:
mov r7, #0x17
mov r6, #0
add r5, r4, #0
lsl r7, r7, #4
_021EB01A:
ldr r0, [r5, r7]
bl FUN_0201FFC8
add r6, r6, #1
add r5, r5, #4
cmp r6, #6
blt _021EB01A
mov r1, #0x4f
lsl r1, r1, #2
add r0, r4, #0
add r1, r4, r1
bl MOD05_021E3F3C
add r0, r4, #0
bl MOD05_021E3E44
ldr r1, [sp, #0x14]
mov r0, #4
ldr r1, [r1, #0xc]
bl FUN_02016A8C
ldr r0, [sp, #0x10]
bl FUN_0200621C
_021EB04A:
mov r1, #0x86
mov r0, #0
lsl r1, r1, #2
str r0, [sp, #0x18]
add r0, r4, r1
str r0, [sp, #0x28]
add r0, r1, #0
add r0, #0x90
add r0, r4, r0
sub r1, #0x90
str r0, [sp, #0x24]
add r0, r4, r1
str r0, [sp, #0x20]
mov r0, #0xce
lsl r0, r0, #2
add r0, r4, r0
add r5, r4, #0
str r0, [sp, #0x1c]
add r6, r4, #0
add r7, r4, #0
_021EB072:
mov r0, #0x3b
lsl r0, r0, #4
ldr r0, [r5, r0]
cmp r0, #1
bne _021EB0FE
ldr r0, [sp, #0x28]
bl MOD05_021E36A4
str r0, [sp, #0x2c]
ldr r0, [sp, #0x24]
bl MOD05_021E36A4
ldr r0, [sp, #0x20]
bl MOD05_021E36A4
ldr r0, [sp, #0x1c]
bl MOD05_021E35C0
ldr r0, [sp, #0x2c]
cmp r0, #0
beq _021EB0AE
mov r0, #0x3b
mov r1, #0
lsl r0, r0, #4
str r1, [r5, r0]
mov r0, #0x17
lsl r0, r0, #4
ldr r0, [r5, r0]
bl FUN_020200A0
_021EB0AE:
mov r1, #0x86
mov r2, #0xaa
lsl r1, r1, #2
lsl r2, r2, #2
ldr r1, [r6, r1]
ldr r2, [r6, r2]
add r0, sp, #0x3c
mov r3, #0
bl MOD05_021E3FF8
mov r0, #0x17
lsl r0, r0, #4
ldr r0, [r5, r0]
add r1, sp, #0x3c
bl FUN_02020044
mov r0, #0x62
lsl r0, r0, #2
ldr r1, [r6, r0]
add r0, sp, #0x30
add r2, r1, #0
mov r3, #0
bl MOD05_021E3FF8
mov r0, #0x17
lsl r0, r0, #4
ldr r0, [r5, r0]
add r1, sp, #0x30
bl FUN_02020064
mov r1, #0xce
lsl r1, r1, #2
mov r0, #0x17
ldr r1, [r7, r1]
lsl r0, r0, #4
lsl r1, r1, #0x10
ldr r0, [r5, r0]
lsr r1, r1, #0x10
bl FUN_02020088
_021EB0FE:
ldr r0, [sp, #0x28]
add r5, r5, #4
add r0, #0x18
str r0, [sp, #0x28]
ldr r0, [sp, #0x24]
add r6, #0x18
add r0, #0x18
str r0, [sp, #0x24]
ldr r0, [sp, #0x20]
add r7, #0x14
add r0, #0x18
str r0, [sp, #0x20]
ldr r0, [sp, #0x1c]
add r0, #0x14
str r0, [sp, #0x1c]
ldr r0, [sp, #0x18]
add r0, r0, #1
str r0, [sp, #0x18]
cmp r0, #6
blt _021EB072
ldr r0, [sp, #0x14]
ldr r0, [r0]
cmp r0, #7
beq _021EB134
ldr r0, [r4]
bl FUN_0201FDEC
_021EB134:
add sp, #0x48
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_021EB138: .word 0x000927C0
_021EB13C: .word 0x021F7A50
_021EB140: .word 0x021F7A38
_021EB144: .word 0x021F7A3C
_021EB148: .word 0x021F7A40
_021EB14C: .word 0x021F7A44
_021EB150: .word 0x021F7A48
_021EB154: .word 0x021F7A4C
_021EB158: .word 0xFFFFF99A
_021EB15C: .word 0x021F7A54
thumb_func_start MOD05_021EB160
MOD05_021EB160: ; 0x021EB160
push {r4, r5, r6, lr}
sub sp, #0x18
add r5, r1, #0
add r6, r0, #0
ldr r0, [r5]
ldr r4, [r5, #0xc]
cmp r0, #7
bls _021EB172
b _021EB3F2
_021EB172:
add r1, r0, r0
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021EB17E: ; jump table
.short _021EB18E - _021EB17E - 2 ; case 0
.short _021EB272 - _021EB17E - 2 ; case 1
.short _021EB28C - _021EB17E - 2 ; case 2
.short _021EB29A - _021EB17E - 2 ; case 3
.short _021EB2D4 - _021EB17E - 2 ; case 4
.short _021EB312 - _021EB17E - 2 ; case 5
.short _021EB344 - _021EB17E - 2 ; case 6
.short _021EB374 - _021EB17E - 2 ; case 7
_021EB18E:
mov r1, #0x6f
mov r0, #4
lsl r1, r1, #2
bl AllocFromHeap
mov r2, #0x6f
str r0, [r5, #0xc]
mov r1, #0
lsl r2, r2, #2
bl memset
ldr r4, [r5, #0xc]
mov r1, #1
add r0, r4, #0
add r0, #8
add r2, r1, #0
bl MOD05_021E3E14
mov r0, #8
str r0, [sp]
mov r0, #0xa
str r0, [sp, #4]
mov r0, #9
str r0, [sp, #8]
ldr r0, _021EB404 ; =0x000927C0
mov r1, #0x51
str r0, [sp, #0xc]
add r0, r4, #0
lsl r1, r1, #2
mov r2, #1
add r0, #8
add r1, r4, r1
add r3, r2, #0
bl MOD05_021E3E64
mov r0, #0
str r0, [sp]
mov r1, #0x51
str r0, [sp, #4]
add r0, r4, #0
lsl r1, r1, #2
mov r2, #2
mov r3, #6
add r0, #8
add r1, r4, r1
lsl r2, r2, #0x12
lsl r3, r3, #0x10
bl MOD05_021E3FC4
mov r1, #0x5e
lsl r1, r1, #2
str r0, [r4, r1]
ldr r0, [r4, r1]
mov r1, #0
bl FUN_020200A0
mov r0, #0x5e
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #1
bl FUN_02020398
mov r0, #0x5e
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #1
bl FUN_02020238
mov r0, #0x10
mov r1, #1
bl FUN_0201E6E4
mov r0, #4
bl MOD05_021E4688
str r0, [r4, #4]
mov r0, #4
mov r1, #1
bl FUN_02018FF4
str r0, [r4]
mov r3, #0
str r3, [sp]
mov r0, #0x20
str r0, [sp, #4]
str r0, [sp, #8]
str r3, [sp, #0xc]
str r3, [sp, #0x10]
ldr r0, [r5, #0x10]
ldr r1, [r4]
ldr r0, [r0, #8]
mov r2, #3
bl FUN_02019064
mov r1, #0
add r0, sp, #0x14
strh r1, [r0]
mov r0, #3
add r1, sp, #0x14
mov r2, #2
mov r3, #0x1e
bl FUN_02017FB4
ldr r0, [r4]
mov r1, #0
bl FUN_02019620
ldr r0, [r4]
bl FUN_02019220
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021EB3F2
_021EB272:
mov r1, #0x10
mov r0, #2
add r2, r1, #0
str r0, [sp]
mov r0, #1
sub r2, #0x20
add r3, r5, #4
bl MOD05_021E3474
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021EB3F2
_021EB28C:
ldr r1, [r5, #4]
cmp r1, #0
bne _021EB294
b _021EB3F2
_021EB294:
add r0, r0, #1
str r0, [r5]
b _021EB3F2
_021EB29A:
mov r0, #0x19
lsl r0, r0, #4
add r0, r4, r0
mov r1, #0
mov r2, #0x10
mov r3, #0xf
bl MOD05_021E35B0
mov r0, #0x5e
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #1
bl FUN_020200A0
mov r0, #0x19
lsl r0, r0, #4
ldr r3, [r4, r0]
mov r0, #0x10
sub r0, r0, r3
str r0, [sp]
ldr r0, _021EB408 ; =0x04000050
mov r1, #0
mov r2, #0xf
bl G2x_SetBlendAlpha_
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021EB3F2
_021EB2D4:
mov r0, #0x19
lsl r0, r0, #4
add r0, r4, r0
bl MOD05_021E35C0
mov r2, #0x19
lsl r2, r2, #4
ldr r1, [r4, r2]
mov r3, #0x10
sub r3, r3, r1
lsl r3, r3, #8
orr r1, r3
ldr r3, _021EB40C ; =0x04000052
cmp r0, #1
strh r1, [r3]
bne _021EB3F2
mov r1, #0
sub r0, r3, #2
sub r2, #0x18
strh r1, [r0]
ldr r0, [r4, r2]
bl FUN_02020398
ldr r0, [r5]
mov r1, #0x10
add r0, r0, #1
str r0, [r5]
mov r0, #0x6e
lsl r0, r0, #2
str r1, [r4, r0]
b _021EB3F2
_021EB312:
mov r0, #0x6e
lsl r0, r0, #2
ldr r1, [r4, r0]
sub r1, r1, #1
str r1, [r4, r0]
ldr r1, [r4, r0]
cmp r1, #0
bgt _021EB3F2
sub r0, #0x3c
add r0, r4, r0
mov r1, #0
mov r2, #0xe
mov r3, #0x10
bl MOD05_021E35B0
ldr r0, [r4, #4]
ldr r2, [r4]
mov r1, #0x10
mov r3, #0xf
bl MOD05_021E46D4
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021EB3F2
_021EB344:
mov r0, #0x5f
lsl r0, r0, #2
add r0, r4, r0
bl MOD05_021E35C0
mov r0, #0x5f
lsl r0, r0, #2
ldr r1, [r4, r0]
lsl r0, r1, #4
orr r1, r0
ldr r0, _021EB410 ; =0x0400004D
strb r1, [r0]
ldr r0, [r4, #4]
bl MOD05_021E4754
cmp r0, #0
beq _021EB36C
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
_021EB36C:
ldr r0, [r4]
bl FUN_02019220
b _021EB3F2
_021EB374:
mov r0, #0
add r1, r0, #0
bl FUN_0200E3A0
mov r0, #1
mov r1, #0
bl FUN_0200E3A0
ldr r0, [r4, #4]
bl MOD05_021E46B4
ldr r1, [r5, #0x14]
cmp r1, #0
beq _021EB394
mov r0, #1
str r0, [r1]
_021EB394:
mov r0, #0x5e
lsl r0, r0, #2
ldr r0, [r4, r0]
bl FUN_0201FFC8
mov r1, #0x51
add r0, r4, #0
lsl r1, r1, #2
add r0, #8
add r1, r4, r1
bl MOD05_021E3F3C
add r0, r4, #0
add r0, #8
bl MOD05_021E3E44
ldr r0, [r4]
bl FUN_02019570
ldr r0, [r4]
bl FUN_02019178
ldr r0, [r4]
mov r1, #1
bl FUN_020191A4
mov r0, #3
mov r1, #0x20
mov r2, #0
mov r3, #4
bl FUN_02017F18
ldr r0, [r5, #0x10]
mov r1, #3
ldr r0, [r0, #8]
bl FUN_02018744
ldr r0, _021EB410 ; =0x0400004D
mov r1, #0
strb r1, [r0]
ldr r1, [r5, #0xc]
mov r0, #4
bl FUN_02016A8C
add r0, r6, #0
bl FUN_0200621C
_021EB3F2:
ldr r0, [r5]
cmp r0, #7
beq _021EB3FE
ldr r0, [r4, #8]
bl FUN_0201FDEC
_021EB3FE:
add sp, #0x18
pop {r4, r5, r6, pc}
nop
_021EB404: .word 0x000927C0
_021EB408: .word 0x04000050
_021EB40C: .word 0x04000052
_021EB410: .word 0x0400004D
thumb_func_start MOD05_021EB414
MOD05_021EB414: ; 0x021EB414
push {r3, r4, r5, lr}
sub sp, #8
add r4, r1, #0
add r5, r0, #0
ldrh r0, [r4, #8]
ldr r1, [r5, #0x20]
bl FUN_0201EEF0
ldr r0, [r4]
ldr r1, [r5, #0x20]
bl FUN_0201EFE0
ldrh r1, [r4, #4]
add r0, sp, #0
strh r1, [r0]
ldrh r1, [r4, #6]
strh r1, [r0, #2]
mov r1, #0
strh r1, [r0, #4]
ldr r1, [r5, #0x20]
add r0, sp, #0
bl FUN_0201EF90
add sp, #8
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021EB448
MOD05_021EB448: ; 0x021EB448
push {r3, r4, r5, r6, lr}
sub sp, #0xc
add r4, r1, #0
add r6, r0, #0
ldr r0, [r4]
ldr r5, [r4, #0xc]
cmp r0, #7
bls _021EB45A
b _021EB5A0
_021EB45A:
add r1, r0, r0
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021EB466: ; jump table
.short _021EB476 - _021EB466 - 2 ; case 0
.short _021EB4AE - _021EB466 - 2 ; case 1
.short _021EB4C6 - _021EB466 - 2 ; case 2
.short _021EB4D4 - _021EB466 - 2 ; case 3
.short _021EB4F8 - _021EB466 - 2 ; case 4
.short _021EB534 - _021EB466 - 2 ; case 5
.short _021EB556 - _021EB466 - 2 ; case 6
.short _021EB56C - _021EB466 - 2 ; case 7
_021EB476:
mov r0, #4
mov r1, #0x10
bl AllocFromHeap
str r0, [r4, #0xc]
mov r2, #0x10
mov r1, #0
_021EB484:
strb r1, [r0]
add r0, r0, #1
sub r2, r2, #1
bne _021EB484
mov r0, #2
mov r1, #0
bl FUN_0201E6E4
mov r0, #4
mov r1, #0
bl FUN_0201E6E4
mov r0, #8
mov r1, #0
bl FUN_0201E6E4
ldr r0, [r4]
add sp, #0xc
add r0, r0, #1
str r0, [r4]
pop {r3, r4, r5, r6, pc}
_021EB4AE:
mov r0, #1
mov r1, #0x10
str r0, [sp]
add r2, r1, #0
add r3, r4, #4
bl MOD05_021E3474
ldr r0, [r4]
add sp, #0xc
add r0, r0, #1
str r0, [r4]
pop {r3, r4, r5, r6, pc}
_021EB4C6:
ldr r1, [r4, #4]
cmp r1, #0
beq _021EB5A0
add r0, r0, #1
add sp, #0xc
str r0, [r4]
pop {r3, r4, r5, r6, pc}
_021EB4D4:
mov r0, #3
mov r1, #0xf
bl MOD05_021E8860
mov r2, #0
str r0, [r5]
mov r0, #0xc
add r1, r2, #0
mul r1, r0
ldr r0, _021EB5A4 ; =0x021F7982
str r2, [r5, #8]
ldrh r0, [r0, r1]
add sp, #0xc
str r0, [r5, #0xc]
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
pop {r3, r4, r5, r6, pc}
_021EB4F8:
ldr r0, [r5, #0xc]
sub r0, r0, #1
str r0, [r5, #0xc]
bpl _021EB5A0
ldr r2, [r5, #8]
mov r1, #0xc
ldr r3, _021EB5A8 ; =0x021F7978
mul r1, r2
ldr r0, [r4, #0x10]
add r1, r3, r1
bl MOD05_021EB414
ldr r0, [r5, #8]
add r2, r0, #1
str r2, [r5, #8]
cmp r2, #0x10
blo _021EB524
ldr r0, [r4]
add sp, #0xc
add r0, r0, #1
str r0, [r4]
pop {r3, r4, r5, r6, pc}
_021EB524:
mov r0, #0xc
add r1, r2, #0
mul r1, r0
ldr r0, _021EB5A4 ; =0x021F7982
add sp, #0xc
ldrh r0, [r0, r1]
str r0, [r5, #0xc]
pop {r3, r4, r5, r6, pc}
_021EB534:
mov r0, #0xa
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
mov r0, #4
mov r1, #0
str r0, [sp, #8]
ldr r3, _021EB5AC ; =0x00007FFF
mov r0, #3
add r2, r1, #0
bl FUN_0200E1D0
ldr r0, [r4]
add sp, #0xc
add r0, r0, #1
str r0, [r4]
pop {r3, r4, r5, r6, pc}
_021EB556:
bl FUN_0200E308
cmp r0, #0
beq _021EB5A0
mov r0, #0
str r0, [r4, #4]
ldr r0, [r4]
add sp, #0xc
add r0, r0, #1
str r0, [r4]
pop {r3, r4, r5, r6, pc}
_021EB56C:
mov r0, #1
mov r1, #0
bl FUN_0200E3A0
add r0, r5, #0
bl MOD05_021E88C0
ldr r0, _021EB5B0 ; =0x04000050
mov r1, #0
strh r1, [r0]
ldr r1, [r4, #0x14]
cmp r1, #0
beq _021EB58A
mov r0, #1
str r0, [r1]
_021EB58A:
ldr r1, [r4, #0xc]
mov r0, #4
bl FUN_02016A8C
add r0, r6, #0
bl FUN_0200621C
mov r0, #1
mov r1, #0
bl FUN_0200E3A0
_021EB5A0:
add sp, #0xc
pop {r3, r4, r5, r6, pc}
.balign 4, 0
_021EB5A4: .word 0x021F7982
_021EB5A8: .word 0x021F7978
_021EB5AC: .word 0x00007FFF
_021EB5B0: .word 0x04000050
thumb_func_start MOD05_021EB5B4
MOD05_021EB5B4: ; 0x021EB5B4
push {r3, r4, r5, r6, lr}
sub sp, #0xc
add r4, r1, #0
add r6, r0, #0
ldr r0, [r4]
ldr r5, [r4, #0xc]
cmp r0, #9
bhi _021EB636
add r1, r0, r0
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021EB5D0: ; jump table
.short _021EB5E4 - _021EB5D0 - 2 ; case 0
.short _021EB618 - _021EB5D0 - 2 ; case 1
.short _021EB630 - _021EB5D0 - 2 ; case 2
.short _021EB640 - _021EB5D0 - 2 ; case 3
.short _021EB66E - _021EB5D0 - 2 ; case 4
.short _021EB698 - _021EB5D0 - 2 ; case 5
.short _021EB6C6 - _021EB5D0 - 2 ; case 6
.short _021EB6E8 - _021EB5D0 - 2 ; case 7
.short _021EB70A - _021EB5D0 - 2 ; case 8
.short _021EB720 - _021EB5D0 - 2 ; case 9
_021EB5E4:
mov r0, #4
mov r1, #0x38
bl AllocFromHeap
mov r1, #0
mov r2, #0x38
str r0, [r4, #0xc]
bl memset
mov r0, #2
mov r1, #0
bl FUN_0201E6E4
mov r0, #4
mov r1, #0
bl FUN_0201E6E4
mov r0, #8
mov r1, #0
bl FUN_0201E6E4
ldr r0, [r4]
add sp, #0xc
add r0, r0, #1
str r0, [r4]
pop {r3, r4, r5, r6, pc}
_021EB618:
mov r0, #1
mov r1, #0x10
str r0, [sp]
add r2, r1, #0
add r3, r4, #4
bl MOD05_021E3474
ldr r0, [r4]
add sp, #0xc
add r0, r0, #1
str r0, [r4]
pop {r3, r4, r5, r6, pc}
_021EB630:
ldr r1, [r4, #4]
cmp r1, #0
bne _021EB638
_021EB636:
b _021EB754
_021EB638:
add r0, r0, #1
add sp, #0xc
str r0, [r4]
pop {r3, r4, r5, r6, pc}
_021EB640:
mov r0, #5
mov r1, #0xd
bl MOD05_021E8860
str r0, [r5]
ldr r0, [r4, #0x10]
ldr r0, [r0, #0x20]
bl FUN_0201F008
mov r2, #1
add r1, r0, #0
add r5, #8
lsl r2, r2, #8
add r0, r5, #0
add r2, r1, r2
mov r3, #0x28
bl MOD05_021E35B0
ldr r0, [r4]
add sp, #0xc
add r0, r0, #1
str r0, [r4]
pop {r3, r4, r5, r6, pc}
_021EB66E:
add r0, r5, #0
add r0, #8
bl MOD05_021E35C0
add r6, r0, #0
ldr r0, [r5, #8]
ldr r1, [r4, #0x10]
lsl r0, r0, #0x10
ldr r1, [r1, #0x20]
lsr r0, r0, #0x10
bl FUN_0201EEF0
cmp r6, #1
bne _021EB754
ldr r0, [r4]
add sp, #0xc
add r0, r0, #1
str r0, [r4]
mov r0, #5
str r0, [r5, #0x34]
pop {r3, r4, r5, r6, pc}
_021EB698:
ldr r0, [r5, #0x34]
sub r0, r0, #1
str r0, [r5, #0x34]
bpl _021EB754
ldr r0, [r4, #0x10]
ldr r0, [r0, #0x20]
bl FUN_0201F010
mov r3, #8
str r3, [sp]
ldr r2, _021EB758 ; =0x0092E000
add r1, r0, #0
add r5, #0x1c
add r0, r5, #0
sub r2, r1, r2
lsl r3, r3, #8
bl MOD05_021E3644
ldr r0, [r4]
add sp, #0xc
add r0, r0, #1
str r0, [r4]
pop {r3, r4, r5, r6, pc}
_021EB6C6:
add r0, r5, #0
add r0, #0x1c
bl MOD05_021E36A4
ldr r1, [r4, #0x10]
add r6, r0, #0
ldr r0, [r5, #0x1c]
ldr r1, [r1, #0x20]
bl FUN_0201EFE0
cmp r6, #1
bne _021EB754
ldr r0, [r4]
add sp, #0xc
add r0, r0, #1
str r0, [r4]
pop {r3, r4, r5, r6, pc}
_021EB6E8:
mov r0, #0x3c
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
mov r0, #4
mov r1, #0
str r0, [sp, #8]
ldr r3, _021EB75C ; =0x00007FFF
mov r0, #3
add r2, r1, #0
bl FUN_0200E1D0
ldr r0, [r4]
add sp, #0xc
add r0, r0, #1
str r0, [r4]
pop {r3, r4, r5, r6, pc}
_021EB70A:
bl FUN_0200E308
cmp r0, #0
beq _021EB754
mov r0, #0
str r0, [r4, #4]
ldr r0, [r4]
add sp, #0xc
add r0, r0, #1
str r0, [r4]
pop {r3, r4, r5, r6, pc}
_021EB720:
mov r0, #1
mov r1, #0
bl FUN_0200E3A0
add r0, r5, #0
bl MOD05_021E88C0
ldr r0, _021EB760 ; =0x04000050
mov r1, #0
strh r1, [r0]
ldr r1, [r4, #0x14]
cmp r1, #0
beq _021EB73E
mov r0, #1
str r0, [r1]
_021EB73E:
ldr r1, [r4, #0xc]
mov r0, #4
bl FUN_02016A8C
add r0, r6, #0
bl FUN_0200621C
mov r0, #1
mov r1, #0
bl FUN_0200E3A0
_021EB754:
add sp, #0xc
pop {r3, r4, r5, r6, pc}
.balign 4, 0
_021EB758: .word 0x0092E000
_021EB75C: .word 0x00007FFF
_021EB760: .word 0x04000050
thumb_func_start MOD05_021EB764
MOD05_021EB764: ; 0x021EB764
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x30
add r5, r0, #0
str r1, [sp, #0x14]
ldr r1, [r5]
add r6, r2, #0
ldr r4, [r5, #0xc]
cmp r1, #0xe
bls _021EB778
b _021EBB72
_021EB778:
add r2, r1, r1
add r2, pc
ldrh r2, [r2, #6]
lsl r2, r2, #0x10
asr r2, r2, #0x10
add pc, r2
_021EB784: ; jump table
.short _021EB7A2 - _021EB784 - 2 ; case 0
.short _021EB848 - _021EB784 - 2 ; case 1
.short _021EB85E - _021EB784 - 2 ; case 2
.short _021EB86A - _021EB784 - 2 ; case 3
.short _021EB8B8 - _021EB784 - 2 ; case 4
.short _021EB8D6 - _021EB784 - 2 ; case 5
.short _021EB99C - _021EB784 - 2 ; case 6
.short _021EB9EE - _021EB784 - 2 ; case 7
.short _021EBA04 - _021EB784 - 2 ; case 8
.short _021EBA34 - _021EB784 - 2 ; case 9
.short _021EBA4A - _021EB784 - 2 ; case 10
.short _021EBA72 - _021EB784 - 2 ; case 11
.short _021EBA8A - _021EB784 - 2 ; case 12
.short _021EBAAA - _021EB784 - 2 ; case 13
.short _021EBB0E - _021EB784 - 2 ; case 14
_021EB7A2:
mov r1, #0x1f
ldr r0, [sp, #0x14]
lsl r1, r1, #4
bl AllocFromHeap
mov r2, #0x1f
str r0, [r5, #0xc]
mov r1, #0
lsl r2, r2, #4
bl memset
ldr r4, [r5, #0xc]
mov r1, #1
add r0, r4, #0
add r0, #0x44
add r2, r1, #0
bl MOD05_021E3E14
mov r0, #0x17
str r0, [sp]
mov r1, #0x18
str r1, [sp, #4]
mov r0, #0x19
str r0, [sp, #8]
ldr r0, _021EBB4C ; =0x000927C0
lsl r1, r1, #4
str r0, [sp, #0xc]
add r0, r4, #0
add r0, #0x44
add r1, r4, r1
mov r2, #0x16
mov r3, #1
bl MOD05_021E3E64
mov r0, #0
str r0, [sp]
mov r1, #6
str r0, [sp, #4]
add r0, r4, #0
lsl r1, r1, #6
mov r3, #0x11
ldr r2, _021EBB50 ; =0xFFFE0000
add r0, #0x44
add r1, r4, r1
lsl r3, r3, #0xe
bl MOD05_021E3FC4
mov r1, #0x6d
lsl r1, r1, #2
str r0, [r4, r1]
ldr r0, [r4, r1]
mov r1, #0
bl FUN_020200A0
mov r0, #0x6d
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #2
bl FUN_020200EC
mov r0, #0
str r0, [sp]
ldrh r0, [r6, #6]
ldr r1, [sp, #0x14]
mov r3, #0xa
str r0, [sp, #4]
mov r0, #0x6d
lsl r0, r0, #2
ldrh r2, [r6, #4]
ldr r0, [r4, r0]
bl MOD05_021E4014
ldr r0, [r5, #0x10]
ldr r0, [r0, #8]
bl MOD05_021E3C00
bl MOD05_021E4788
str r0, [r4, #0x40]
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021EBB72
_021EB848:
mov r0, #1
mov r1, #0x10
str r0, [sp]
add r2, r1, #0
add r3, r5, #4
bl MOD05_021E3474
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021EBB72
_021EB85E:
ldr r0, [r5, #4]
cmp r0, #0
beq _021EB8E6
add r0, r1, #1
str r0, [r5]
b _021EBB72
_021EB86A:
ldr r3, [r5, #0x10]
mov r0, #0xd
ldr r3, [r3, #8]
mov r1, #0xc
mov r2, #0xb
bl MOD05_021E3D20
mov r0, #0x79
mov r2, #8
mov r1, #1
lsl r0, r0, #2
str r1, [r4, r0]
mov r0, #0x10
str r0, [sp]
mov r0, #0x1f
str r0, [sp, #4]
mov r0, #0x17
str r0, [sp, #8]
ldr r1, [r4, #0x40]
add r0, r5, #0
add r3, r2, #0
bl MOD05_021E47BC
mov r1, #1
add r0, r4, #0
lsl r1, r1, #0xc
add r0, #0x2c
add r2, r1, #0
mov r3, #0xf
bl MOD05_021E35EC
mov r0, #8
mov r1, #1
bl FUN_0201E6E4
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021EBB72
_021EB8B8:
bl MOD05_021E35AC
cmp r0, #0
beq _021EB8E6
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
ldr r0, [r4, #0x40]
bl MOD05_021E47A0
mov r0, #0x7b
mov r1, #0xa
lsl r0, r0, #2
str r1, [r4, r0]
b _021EBB72
_021EB8D6:
mov r0, #0x7b
lsl r0, r0, #2
ldr r1, [r4, r0]
sub r1, r1, #1
str r1, [r4, r0]
ldr r0, [r4, r0]
cmp r0, #0
blt _021EB8E8
_021EB8E6:
b _021EBB72
_021EB8E8:
mov r1, #2
lsl r1, r1, #0xc
add r0, sp, #0x18
add r2, r1, #0
mov r3, #0
bl MOD05_021E3FF8
mov r0, #0x6d
lsl r0, r0, #2
ldr r0, [r4, r0]
add r1, sp, #0x18
bl FUN_02020064
mov r0, #0
str r0, [sp]
mov r0, #0x6e
lsl r0, r0, #2
add r0, r4, r0
str r0, [sp, #4]
mov r0, #0x11
mov r2, #2
lsl r0, r0, #0xe
mov r1, #0x62
lsl r2, r2, #0xc
mov r3, #0x40
bl MOD05_021E49F0
ldr r3, _021EBB54 ; =0x04000048
mov r0, #0x3f
ldrh r2, [r3]
mov r1, #0x1f
bic r2, r0
orr r2, r1
mov r1, #0x20
orr r2, r1
strh r2, [r3]
ldrh r2, [r3, #2]
bic r2, r0
mov r0, #0xf
orr r0, r2
orr r0, r1
strh r0, [r3, #2]
lsl r0, r1, #0x15
ldr r3, [r0]
ldr r2, _021EBB58 ; =0xFFFF1FFF
lsl r1, r1, #8
and r2, r3
orr r1, r2
str r1, [r0]
mov r3, #4
str r3, [sp]
ldr r1, _021EBB50 ; =0xFFFE0000
ldr r2, [r6]
add r0, r4, #0
lsl r3, r3, #0x10
bl MOD05_021E3644
mov r0, #0x6d
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #1
bl FUN_020200A0
mov r0, #0x6d
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0
bl FUN_02020238
mov r0, #0x10
mov r1, #1
bl FUN_0201E6E4
mov r2, #0x11
ldr r1, [r4]
add r0, sp, #0x24
lsl r2, r2, #0xe
mov r3, #0
bl MOD05_021E3FF8
mov r0, #0x6d
lsl r0, r0, #2
ldr r0, [r4, r0]
add r1, sp, #0x24
bl FUN_02020044
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021EBB72
_021EB99C:
add r0, r4, #0
bl MOD05_021E36A4
mov r2, #0x11
add r6, r0, #0
ldr r1, [r4]
add r0, sp, #0x24
lsl r2, r2, #0xe
mov r3, #0
bl MOD05_021E3FF8
mov r0, #0x6d
lsl r0, r0, #2
ldr r0, [r4, r0]
add r1, sp, #0x24
bl FUN_02020044
mov r0, #0x6d
lsl r0, r0, #2
ldr r0, [r4, r0]
bl FUN_0202011C
mov r1, #0
str r1, [sp]
mov r1, #0x6e
lsl r1, r1, #2
add r1, r4, r1
str r1, [sp, #4]
mov r2, #2
ldr r0, [r0, #4]
mov r1, #0x62
lsl r2, r2, #0xc
mov r3, #0x40
bl MOD05_021E49F0
cmp r6, #1
bne _021EBA60
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021EBB72
_021EB9EE:
add r0, r4, #0
add r0, #0x18
mov r1, #0
mov r2, #0x10
mov r3, #3
bl MOD05_021E35B0
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021EBB72
_021EBA04:
add r0, r4, #0
add r0, #0x18
bl MOD05_021E35C0
add r7, r0, #0
add r0, r4, #0
add r0, #0x18
bl MOD05_021E4AD0
cmp r7, #1
bne _021EBA60
mov r3, #0
str r3, [sp]
mov r0, #0x6d
lsl r0, r0, #2
ldrh r2, [r6, #4]
ldr r0, [r4, r0]
ldr r1, [sp, #0x14]
bl MOD05_021E3F68
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021EBB72
_021EBA34:
add r0, r4, #0
add r0, #0x18
mov r1, #0x10
mov r2, #0
mov r3, #3
bl MOD05_021E35B0
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021EBB72
_021EBA4A:
add r0, r4, #0
add r0, #0x18
bl MOD05_021E35C0
add r6, r0, #0
add r0, r4, #0
add r0, #0x18
bl MOD05_021E4AD0
cmp r6, #1
beq _021EBA62
_021EBA60:
b _021EBB72
_021EBA62:
ldr r0, [r5]
mov r1, #0x1a
add r0, r0, #1
str r0, [r5]
mov r0, #0x7b
lsl r0, r0, #2
str r1, [r4, r0]
b _021EBB72
_021EBA72:
mov r0, #0x7b
lsl r0, r0, #2
ldr r1, [r4, r0]
sub r1, r1, #1
str r1, [r4, r0]
ldr r0, [r4, r0]
cmp r0, #0
bge _021EBB72
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021EBB72
_021EBA8A:
mov r0, #0xf
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
mov r0, #4
mov r1, #0
str r0, [sp, #8]
ldr r3, _021EBB5C ; =0x00007FFF
mov r0, #3
add r2, r1, #0
bl FUN_0200E1D0
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021EBB72
_021EBAAA:
add r0, r4, #0
add r0, #0x2c
bl MOD05_021E35FC
mov r2, #1
ldr r3, [r4, #0x2c]
lsl r2, r2, #0xc
add r1, r3, r2
add r2, r3, r2
add r0, sp, #0x18
mov r3, #0
bl MOD05_021E3FF8
mov r0, #0x6d
lsl r0, r0, #2
ldr r0, [r4, r0]
add r1, sp, #0x18
bl FUN_02020064
mov r0, #0x6d
lsl r0, r0, #2
ldr r0, [r4, r0]
bl FUN_0202011C
add r6, r0, #0
ldr r0, [r4, #0x2c]
mov r1, #0x44
mov r2, #0x1e
bl MOD05_021E4A3C
add r1, r0, #0
mov r0, #0
str r0, [sp]
mov r0, #0x6e
lsl r0, r0, #2
add r0, r4, r0
str r0, [sp, #4]
ldr r0, [r6, #4]
ldr r2, [sp, #0x1c]
mov r3, #0x40
bl MOD05_021E49F0
bl FUN_0200E308
cmp r0, #0
beq _021EBB72
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021EBB72
_021EBB0E:
ldr r1, _021EBB5C ; =0x00007FFF
mov r0, #1
bl FUN_0200E3A0
ldr r1, [r5, #0x14]
cmp r1, #0
beq _021EBB20
mov r0, #1
str r0, [r1]
_021EBB20:
mov r0, #0x6d
lsl r0, r0, #2
ldr r0, [r4, r0]
bl FUN_0201FFC8
mov r1, #6
add r0, r4, #0
lsl r1, r1, #6
add r0, #0x44
add r1, r4, r1
bl MOD05_021E3F3C
add r4, #0x44
add r0, r4, #0
bl MOD05_021E3E44
mov r2, #1
lsl r2, r2, #0x1a
ldr r1, [r2]
ldr r0, _021EBB58 ; =0xFFFF1FFF
b _021EBB60
nop
_021EBB4C: .word 0x000927C0
_021EBB50: .word 0xFFFE0000
_021EBB54: .word 0x04000048
_021EBB58: .word 0xFFFF1FFF
_021EBB5C: .word 0x00007FFF
_021EBB60:
and r0, r1
str r0, [r2]
ldr r1, [r5, #0xc]
mov r0, #4
bl FUN_02016A8C
add sp, #0x30
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021EBB72:
mov r1, #0x79
lsl r1, r1, #2
ldr r0, [r4, r1]
cmp r0, #1
bne _021EBBB6
ldr r3, [r4, #0x2c]
mov r0, #0
str r3, [sp]
str r0, [sp, #4]
mov r0, #0x80
str r0, [sp, #8]
mov r0, #0x44
str r0, [sp, #0xc]
add r0, r1, #4
ldr r0, [r4, r0]
sub r1, #0x24
str r0, [sp, #0x10]
add r0, r4, r1
ldr r1, [r5, #0x10]
mov r2, #3
ldr r1, [r1, #8]
bl MOD05_021E3DA0
mov r3, #0x7a
lsl r3, r3, #2
ldr r0, [r4, r3]
sub r0, #0xf
lsr r2, r0, #0x1f
lsl r1, r0, #0x17
sub r1, r1, r2
mov r0, #0x17
ror r1, r0
add r0, r2, r1
str r0, [r4, r3]
_021EBBB6:
ldr r0, [r5]
cmp r0, #0xe
beq _021EBBC2
ldr r0, [r4, #0x44]
bl FUN_0201FDEC
_021EBBC2:
mov r0, #0
add sp, #0x30
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD05_021EBBC8
MOD05_021EBBC8: ; 0x021EBBC8
push {r4, lr}
ldr r2, _021EBBE4 ; =0x021F7938
add r4, r0, #0
add r0, r1, #0
mov r1, #4
bl MOD05_021EB764
cmp r0, #1
bne _021EBBE0
add r0, r4, #0
bl FUN_0200621C
_021EBBE0:
pop {r4, pc}
nop
_021EBBE4: .word 0x021F7938
thumb_func_start MOD05_021EBBE8
MOD05_021EBBE8: ; 0x021EBBE8
push {r4, lr}
ldr r2, _021EBC04 ; =0x021F7940
add r4, r0, #0
add r0, r1, #0
mov r1, #4
bl MOD05_021EB764
cmp r0, #1
bne _021EBC00
add r0, r4, #0
bl FUN_0200621C
_021EBC00:
pop {r4, pc}
nop
_021EBC04: .word 0x021F7940
thumb_func_start MOD05_021EBC08
MOD05_021EBC08: ; 0x021EBC08
push {r4, lr}
ldr r2, _021EBC24 ; =0x021F7948
add r4, r0, #0
add r0, r1, #0
mov r1, #4
bl MOD05_021EB764
cmp r0, #1
bne _021EBC20
add r0, r4, #0
bl FUN_0200621C
_021EBC20:
pop {r4, pc}
nop
_021EBC24: .word 0x021F7948
thumb_func_start MOD05_021EBC28
MOD05_021EBC28: ; 0x021EBC28
push {r4, lr}
ldr r2, _021EBC44 ; =0x021F7950
add r4, r0, #0
add r0, r1, #0
mov r1, #4
bl MOD05_021EB764
cmp r0, #1
bne _021EBC40
add r0, r4, #0
bl FUN_0200621C
_021EBC40:
pop {r4, pc}
nop
_021EBC44: .word 0x021F7950
thumb_func_start MOD05_021EBC48
MOD05_021EBC48: ; 0x021EBC48
push {r4, lr}
ldr r2, _021EBC64 ; =0x021F7958
add r4, r0, #0
add r0, r1, #0
mov r1, #4
bl MOD05_021EB764
cmp r0, #1
bne _021EBC60
add r0, r4, #0
bl FUN_0200621C
_021EBC60:
pop {r4, pc}
nop
_021EBC64: .word 0x021F7958
thumb_func_start MOD05_021EBC68
MOD05_021EBC68: ; 0x021EBC68
push {r4, lr}
ldr r2, _021EBC84 ; =0x021F7960
add r4, r0, #0
add r0, r1, #0
mov r1, #4
bl MOD05_021EB764
cmp r0, #1
bne _021EBC80
add r0, r4, #0
bl FUN_0200621C
_021EBC80:
pop {r4, pc}
nop
_021EBC84: .word 0x021F7960
thumb_func_start MOD05_021EBC88
MOD05_021EBC88: ; 0x021EBC88
push {r4, lr}
ldr r2, _021EBCA4 ; =0x021F7968
add r4, r0, #0
add r0, r1, #0
mov r1, #4
bl MOD05_021EB764
cmp r0, #1
bne _021EBCA0
add r0, r4, #0
bl FUN_0200621C
_021EBCA0:
pop {r4, pc}
nop
_021EBCA4: .word 0x021F7968
thumb_func_start MOD05_021EBCA8
MOD05_021EBCA8: ; 0x021EBCA8
push {r4, lr}
ldr r2, _021EBCC4 ; =0x021F7970
add r4, r0, #0
add r0, r1, #0
mov r1, #4
bl MOD05_021EB764
cmp r0, #1
bne _021EBCC0
add r0, r4, #0
bl FUN_0200621C
_021EBCC0:
pop {r4, pc}
nop
_021EBCC4: .word 0x021F7970
thumb_func_start MOD05_021EBCC8
MOD05_021EBCC8: ; 0x021EBCC8
push {r3, lr}
ldr r0, [r0, #0xc]
bl FUN_020238F4
bl FUN_020239CC
pop {r3, pc}
.balign 4, 0
thumb_func_start MOD05_021EBCD8
MOD05_021EBCD8: ; 0x021EBCD8
push {r4, r5, r6, r7, lr}
sub sp, #0x4c
add r5, r0, #0
ldr r0, [r5]
str r1, [sp, #0x10]
str r2, [sp, #0x14]
ldr r4, [r5, #0xc]
cmp r0, #0x13
bls _021EBCEC
b _021EC3A0
_021EBCEC:
add r1, r0, r0
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021EBCF8: ; jump table
.short _021EBD20 - _021EBCF8 - 2 ; case 0
.short _021EBEC0 - _021EBCF8 - 2 ; case 1
.short _021EBED6 - _021EBCF8 - 2 ; case 2
.short _021EBEE4 - _021EBCF8 - 2 ; case 3
.short _021EBF6C - _021EBCF8 - 2 ; case 4
.short _021EBFBA - _021EBCF8 - 2 ; case 5
.short _021EBFD0 - _021EBCF8 - 2 ; case 6
.short _021EC002 - _021EBCF8 - 2 ; case 7
.short _021EC018 - _021EBCF8 - 2 ; case 8
.short _021EC038 - _021EBCF8 - 2 ; case 9
.short _021EC0D4 - _021EBCF8 - 2 ; case 10
.short _021EC122 - _021EBCF8 - 2 ; case 11
.short _021EC138 - _021EBCF8 - 2 ; case 12
.short _021EC16A - _021EBCF8 - 2 ; case 13
.short _021EC180 - _021EBCF8 - 2 ; case 14
.short _021EC19E - _021EBCF8 - 2 ; case 15
.short _021EC1E8 - _021EBCF8 - 2 ; case 16
.short _021EC21C - _021EBCF8 - 2 ; case 17
.short _021EC284 - _021EBCF8 - 2 ; case 18
.short _021EC342 - _021EBCF8 - 2 ; case 19
_021EBD20:
mov r1, #0x9b
ldr r0, [sp, #0x10]
lsl r1, r1, #2
bl AllocFromHeap
mov r2, #0x9b
str r0, [r5, #0xc]
mov r1, #0
lsl r2, r2, #2
bl memset
ldr r4, [r5, #0xc]
mov r1, #4
add r0, r4, #0
add r0, #0x44
mov r2, #3
bl MOD05_021E3E14
mov r0, #0x17
str r0, [sp]
mov r1, #0x18
str r1, [sp, #4]
mov r0, #0x19
str r0, [sp, #8]
ldr r0, _021EC0C0 ; =0x000927C0
lsl r1, r1, #4
str r0, [sp, #0xc]
add r0, r4, #0
add r0, #0x44
add r1, r4, r1
mov r2, #0x16
mov r3, #1
bl MOD05_021E3E64
mov r0, #0x17
str r0, [sp]
mov r0, #0x18
str r0, [sp, #4]
mov r0, #0x19
str r0, [sp, #8]
ldr r0, _021EC0C4 ; =0x000927C1
mov r1, #0x6d
str r0, [sp, #0xc]
add r0, r4, #0
lsl r1, r1, #2
add r0, #0x44
add r1, r4, r1
mov r2, #0x16
mov r3, #1
bl MOD05_021E3E64
mov r0, #0xf
str r0, [sp]
mov r0, #0x10
str r0, [sp, #4]
mov r0, #0x11
str r0, [sp, #8]
ldr r0, _021EC0C8 ; =0x000927C2
mov r1, #0x7a
str r0, [sp, #0xc]
ldr r2, [sp, #0x14]
add r0, r4, #0
lsl r1, r1, #2
ldrb r2, [r2, #6]
add r0, #0x44
add r1, r4, r1
mov r3, #0xc
bl MOD05_021E3E64
mov r1, #2
lsl r1, r1, #0xc
add r0, sp, #0x34
add r2, r1, #0
mov r3, #0
bl MOD05_021E3FF8
mov r0, #6
lsl r0, r0, #6
add r0, r4, r0
str r0, [sp, #0x18]
str r0, [sp, #0x20]
add r0, r4, #0
str r0, [sp, #0x24]
add r0, #0x44
mov r7, #0
add r6, r4, #0
str r0, [sp, #0x24]
_021EBDCE:
cmp r7, #3
bge _021EBDDA
mov r0, #0
ldr r1, [sp, #0x18]
str r0, [sp, #0x1c]
b _021EBDEA
_021EBDDA:
sub r1, r7, #1
mov r0, #0x34
add r2, r1, #0
mul r2, r0
ldr r0, [sp, #0x20]
add r1, r0, r2
mov r0, #1
str r0, [sp, #0x1c]
_021EBDEA:
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
mov r2, #0
ldr r0, [sp, #0x24]
add r3, r2, #0
bl MOD05_021E3FC4
mov r1, #0x87
lsl r1, r1, #2
str r0, [r6, r1]
add r0, r1, #0
ldr r0, [r6, r0]
mov r1, #0
bl FUN_020200A0
mov r0, #0x87
lsl r0, r0, #2
ldr r0, [r6, r0]
ldr r1, [sp, #0x1c]
bl FUN_02020130
ldr r0, [sp, #0x18]
add r7, r7, #1
add r0, #0x34
add r6, r6, #4
str r0, [sp, #0x18]
cmp r7, #4
blt _021EBDCE
ldr r0, [r5, #0x10]
bl MOD05_021EBCC8
cmp r0, #0
bne _021EBE48
mov r2, #0
str r2, [sp]
mov r0, #1
str r0, [sp, #4]
mov r0, #0x87
lsl r0, r0, #2
ldr r0, [r4, r0]
ldr r1, [sp, #0x10]
mov r3, #0xa
bl MOD05_021E4014
mov r1, #0
b _021EBE60
_021EBE48:
mov r0, #0
str r0, [sp]
mov r2, #1
mov r0, #0x87
str r2, [sp, #4]
lsl r0, r0, #2
ldr r0, [r4, r0]
ldr r1, [sp, #0x10]
mov r3, #0xa
bl MOD05_021E4014
mov r1, #1
_021EBE60:
mov r0, #0x99
lsl r0, r0, #2
str r1, [r4, r0]
mov r0, #0x87
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #2
bl FUN_020200EC
mov r0, #0x87
lsl r0, r0, #2
ldr r0, [r4, r0]
add r1, sp, #0x34
bl FUN_02020064
mov r0, #0
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
ldr r2, [sp, #0x14]
mov r0, #0x22
lsl r0, r0, #4
ldrb r2, [r2, #5]
ldr r0, [r4, r0]
ldr r1, [sp, #0x10]
mov r3, #0xa
bl MOD05_021E4014
mov r0, #0x22
lsl r0, r0, #4
ldr r0, [r4, r0]
mov r1, #2
bl FUN_020200EC
mov r0, #0x22
lsl r0, r0, #4
ldr r0, [r4, r0]
add r1, sp, #0x34
bl FUN_02020064
mov r0, #0x10
mov r1, #1
bl FUN_0201E6E4
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021EC3A0
_021EBEC0:
mov r0, #1
mov r1, #0x10
str r0, [sp]
add r2, r1, #0
add r3, r5, #4
bl MOD05_021E3474
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021EC3A0
_021EBED6:
ldr r1, [r5, #4]
cmp r1, #0
bne _021EBEDE
b _021EC3A0
_021EBEDE:
add r0, r0, #1
str r0, [r5]
b _021EC3A0
_021EBEE4:
mov r0, #6
mov r2, #0x2e
mov r3, #1
str r0, [sp]
ldr r1, _021EC0CC ; =0xFFFB0000
add r0, r4, #0
lsl r2, r2, #0xc
lsl r3, r3, #0x12
bl MOD05_021E3644
mov r2, #0x72
ldr r1, [r4]
add r0, sp, #0x40
lsl r2, r2, #0xc
mov r3, #0
bl MOD05_021E3FF8
mov r0, #0x87
lsl r0, r0, #2
ldr r0, [r4, r0]
add r1, sp, #0x40
bl FUN_02020044
mov r0, #9
ldr r1, [sp, #0x44]
lsl r0, r0, #0xe
add r0, r1, r0
str r0, [sp, #0x44]
mov r0, #1
ldr r1, [sp, #0x40]
lsl r0, r0, #0x10
add r0, r1, r0
str r0, [sp, #0x40]
mov r0, #0x89
lsl r0, r0, #2
ldr r0, [r4, r0]
add r1, sp, #0x40
bl FUN_02020044
mov r0, #0x87
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #1
bl FUN_020200A0
mov r0, #0x89
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #1
bl FUN_020200A0
mov r0, #0x89
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #1
bl FUN_020200BC
mov r0, #0x89
lsl r0, r0, #2
mov r1, #1
ldr r0, [r4, r0]
lsl r1, r1, #0xc
bl FUN_020200D8
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021EC3A0
_021EBF6C:
add r0, r4, #0
bl MOD05_021E36A4
mov r2, #0x72
add r6, r0, #0
ldr r1, [r4]
add r0, sp, #0x40
lsl r2, r2, #0xc
mov r3, #0
bl MOD05_021E3FF8
mov r0, #0x87
lsl r0, r0, #2
ldr r0, [r4, r0]
add r1, sp, #0x40
bl FUN_02020044
mov r0, #9
ldr r1, [sp, #0x44]
lsl r0, r0, #0xe
add r0, r1, r0
str r0, [sp, #0x44]
mov r0, #1
ldr r1, [sp, #0x40]
lsl r0, r0, #0x10
add r0, r1, r0
str r0, [sp, #0x40]
mov r0, #0x89
lsl r0, r0, #2
ldr r0, [r4, r0]
add r1, sp, #0x40
bl FUN_02020044
cmp r6, #1
bne _021EC02E
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021EC3A0
_021EBFBA:
add r0, r4, #0
add r0, #0x30
mov r1, #0
mov r2, #0x10
mov r3, #3
bl MOD05_021E35B0
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021EC3A0
_021EBFD0:
add r0, r4, #0
add r0, #0x30
bl MOD05_021E35C0
add r6, r0, #0
add r0, r4, #0
add r0, #0x30
bl MOD05_021E4AD0
cmp r6, #1
bne _021EC02E
mov r3, #0
mov r2, #0x87
str r3, [sp]
lsl r2, r2, #2
ldr r0, [r4, r2]
add r2, #0x48
ldr r1, [sp, #0x10]
ldr r2, [r4, r2]
bl MOD05_021E3F68
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021EC3A0
_021EC002:
add r0, r4, #0
add r0, #0x30
mov r1, #0x10
mov r2, #0
mov r3, #3
bl MOD05_021E35B0
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021EC3A0
_021EC018:
add r0, r4, #0
add r0, #0x30
bl MOD05_021E35C0
add r6, r0, #0
add r0, r4, #0
add r0, #0x30
bl MOD05_021E4AD0
cmp r6, #1
beq _021EC030
_021EC02E:
b _021EC3A0
_021EC030:
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021EC3A0
_021EC038:
mov r0, #6
mov r1, #0x15
mov r2, #0xd
str r0, [sp]
ldr r3, _021EC0D0 ; =0xFFFC0000
add r0, r4, #0
lsl r1, r1, #0x10
lsl r2, r2, #0x10
bl MOD05_021E3644
mov r2, #0x11
ldr r1, [r4]
add r0, sp, #0x40
lsl r2, r2, #0xe
mov r3, #0
bl MOD05_021E3FF8
mov r0, #0x22
lsl r0, r0, #4
ldr r0, [r4, r0]
add r1, sp, #0x40
bl FUN_02020044
mov r0, #9
ldr r1, [sp, #0x44]
lsl r0, r0, #0xe
add r0, r1, r0
str r0, [sp, #0x44]
mov r0, #1
ldr r1, [sp, #0x40]
lsl r0, r0, #0x10
sub r0, r1, r0
str r0, [sp, #0x40]
mov r0, #0x8a
lsl r0, r0, #2
ldr r0, [r4, r0]
add r1, sp, #0x40
bl FUN_02020044
mov r0, #0x22
lsl r0, r0, #4
ldr r0, [r4, r0]
mov r1, #1
bl FUN_020200A0
mov r0, #0x8a
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #1
bl FUN_020200A0
mov r0, #0x8a
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #1
bl FUN_020200BC
mov r0, #0x8a
lsl r0, r0, #2
mov r1, #1
ldr r0, [r4, r0]
lsl r1, r1, #0xc
bl FUN_020200D8
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021EC3A0
.balign 4, 0
_021EC0C0: .word 0x000927C0
_021EC0C4: .word 0x000927C1
_021EC0C8: .word 0x000927C2
_021EC0CC: .word 0xFFFB0000
_021EC0D0: .word 0xFFFC0000
_021EC0D4:
add r0, r4, #0
bl MOD05_021E36A4
mov r2, #0x11
add r6, r0, #0
ldr r1, [r4]
add r0, sp, #0x40
lsl r2, r2, #0xe
mov r3, #0
bl MOD05_021E3FF8
mov r0, #0x22
lsl r0, r0, #4
ldr r0, [r4, r0]
add r1, sp, #0x40
bl FUN_02020044
mov r0, #9
ldr r1, [sp, #0x44]
lsl r0, r0, #0xe
add r0, r1, r0
str r0, [sp, #0x44]
mov r0, #1
ldr r1, [sp, #0x40]
lsl r0, r0, #0x10
sub r0, r1, r0
str r0, [sp, #0x40]
mov r0, #0x8a
lsl r0, r0, #2
ldr r0, [r4, r0]
add r1, sp, #0x40
bl FUN_02020044
cmp r6, #1
bne _021EC212
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021EC3A0
_021EC122:
add r0, r4, #0
add r0, #0x30
mov r1, #0
mov r2, #0x10
mov r3, #3
bl MOD05_021E35B0
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021EC3A0
_021EC138:
add r0, r4, #0
add r0, #0x30
bl MOD05_021E35C0
add r6, r0, #0
add r0, r4, #0
add r0, #0x30
bl MOD05_021E4AD0
cmp r6, #1
bne _021EC212
mov r3, #0
mov r0, #0x22
ldr r2, [sp, #0x14]
str r3, [sp]
lsl r0, r0, #4
ldrb r2, [r2, #5]
ldr r0, [r4, r0]
ldr r1, [sp, #0x10]
bl MOD05_021E3F68
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021EC3A0
_021EC16A:
add r0, r4, #0
add r0, #0x30
mov r1, #0x10
mov r2, #0
mov r3, #3
bl MOD05_021E35B0
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021EC3A0
_021EC180:
add r0, r4, #0
add r0, #0x30
bl MOD05_021E35C0
add r6, r0, #0
add r0, r4, #0
add r0, #0x30
bl MOD05_021E4AD0
cmp r6, #1
bne _021EC212
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021EC3A0
_021EC19E:
ldr r0, [r5, #0x10]
mov r1, #0x8b
ldr r0, [r0, #0x20]
lsl r1, r1, #2
str r0, [r4, r1]
ldr r1, [r4, r1]
add r0, sp, #0x2c
bl FUN_0201F014
add r1, sp, #0x2c
mov r2, #0x92
ldrh r0, [r1]
lsl r2, r2, #2
strh r0, [r4, r2]
ldrh r3, [r1, #2]
add r0, r2, #2
strh r3, [r4, r0]
ldrh r3, [r1, #4]
add r0, r2, #4
strh r3, [r4, r0]
ldrh r1, [r1, #6]
add r0, r2, #6
ldr r3, [sp, #0x14]
strh r1, [r4, r0]
ldrh r1, [r4, r2]
add r2, #8
add r0, r4, r2
ldr r2, [sp, #0x14]
ldrb r3, [r3, #4]
ldr r2, [r2]
add r2, r1, r2
bl MOD05_021E35B0
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021EC3A0
_021EC1E8:
mov r0, #0x25
lsl r0, r0, #4
add r0, r4, r0
bl MOD05_021E35C0
mov r1, #0x25
lsl r1, r1, #4
add r6, r0, #0
add r0, r1, #0
ldr r2, [r4, r1]
sub r0, #8
strh r2, [r4, r0]
add r0, r1, #0
sub r1, #0x24
sub r0, #8
ldr r1, [r4, r1]
add r0, r4, r0
bl FUN_0201EF90
cmp r6, #1
beq _021EC214
_021EC212:
b _021EC3A0
_021EC214:
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021EC3A0
_021EC21C:
mov r0, #0x8b
lsl r0, r0, #2
ldr r0, [r4, r0]
bl FUN_0201F010
add r1, r0, #0
mov r0, #0x1e
str r0, [sp]
mov r0, #0x23
mov r2, #0xfa
lsl r0, r0, #4
lsl r2, r2, #0xc
add r0, r4, r0
sub r2, r1, r2
mov r3, #0
bl MOD05_021E3644
mov r0, #0x1e
mov r1, #0
mov r2, #6
str r0, [sp]
add r0, r4, #0
lsl r2, r2, #0x10
add r3, r1, #0
bl MOD05_021E3644
mov r0, #0x1e
str r0, [sp]
add r0, r4, #0
mov r1, #0
mov r2, #6
add r0, #0x18
lsl r2, r2, #0x10
add r3, r1, #0
bl MOD05_021E3644
mov r0, #0x1e
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
mov r0, #4
mov r1, #0
str r0, [sp, #8]
ldr r3, _021EC3B4 ; =0x00007FFF
mov r0, #3
add r2, r1, #0
bl FUN_0200E1D0
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021EC3A0
_021EC284:
mov r0, #0x23
lsl r0, r0, #4
add r0, r4, r0
bl MOD05_021E36A4
add r0, r4, #0
bl MOD05_021E36A4
add r0, r4, #0
add r0, #0x18
bl MOD05_021E36A4
mov r1, #0x23
lsl r1, r1, #4
ldr r0, [r4, r1]
sub r1, r1, #4
ldr r1, [r4, r1]
bl FUN_0201EFE0
mov r1, #0x2e
ldr r2, [r4]
lsl r1, r1, #0xc
sub r1, r1, r2
mov r2, #0x72
ldr r3, [r4, #0x18]
lsl r2, r2, #0xc
add r2, r3, r2
add r0, sp, #0x40
mov r3, #0
bl MOD05_021E3FF8
mov r0, #0x87
lsl r0, r0, #2
ldr r0, [r4, r0]
add r1, sp, #0x40
bl FUN_02020044
mov r0, #9
ldr r1, [sp, #0x44]
lsl r0, r0, #0xe
add r0, r1, r0
str r0, [sp, #0x44]
mov r0, #1
ldr r1, [sp, #0x40]
lsl r0, r0, #0x10
add r0, r1, r0
str r0, [sp, #0x40]
mov r0, #0x89
lsl r0, r0, #2
ldr r0, [r4, r0]
add r1, sp, #0x40
bl FUN_02020044
mov r1, #0xd
ldr r2, [r4]
lsl r1, r1, #0x10
add r1, r2, r1
mov r2, #0x11
ldr r3, [r4, #0x18]
lsl r2, r2, #0xe
sub r2, r2, r3
add r0, sp, #0x40
mov r3, #0
bl MOD05_021E3FF8
mov r0, #0x22
lsl r0, r0, #4
ldr r0, [r4, r0]
add r1, sp, #0x40
bl FUN_02020044
mov r0, #9
ldr r1, [sp, #0x44]
lsl r0, r0, #0xe
add r0, r1, r0
str r0, [sp, #0x44]
mov r0, #1
ldr r1, [sp, #0x40]
lsl r0, r0, #0x10
sub r0, r1, r0
str r0, [sp, #0x40]
mov r0, #0x8a
lsl r0, r0, #2
ldr r0, [r4, r0]
add r1, sp, #0x40
bl FUN_02020044
bl FUN_0200E308
cmp r0, #0
beq _021EC3A0
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021EC3A0
_021EC342:
ldr r1, _021EC3B4 ; =0x00007FFF
mov r0, #1
bl FUN_0200E3A0
ldr r1, [r5, #0x14]
cmp r1, #0
beq _021EC354
mov r0, #1
str r0, [r1]
_021EC354:
mov r7, #0
add r6, r4, #0
_021EC358:
mov r0, #0x87
lsl r0, r0, #2
ldr r0, [r6, r0]
bl FUN_0201FFC8
add r7, r7, #1
add r6, r6, #4
cmp r7, #4
blt _021EC358
mov r0, #6
lsl r0, r0, #6
add r6, r4, r0
add r0, r4, #0
str r0, [sp, #0x28]
add r0, #0x44
mov r7, #0
str r0, [sp, #0x28]
_021EC37A:
ldr r0, [sp, #0x28]
add r1, r6, #0
bl MOD05_021E3F3C
add r7, r7, #1
add r6, #0x34
cmp r7, #3
blt _021EC37A
add r4, #0x44
add r0, r4, #0
bl MOD05_021E3E44
ldr r1, [r5, #0xc]
mov r0, #4
bl FUN_02016A8C
add sp, #0x4c
mov r0, #1
pop {r4, r5, r6, r7, pc}
_021EC3A0:
ldr r0, [r5]
cmp r0, #0x13
beq _021EC3AC
ldr r0, [r4, #0x44]
bl FUN_0201FDEC
_021EC3AC:
mov r0, #0
add sp, #0x4c
pop {r4, r5, r6, r7, pc}
nop
_021EC3B4: .word 0x00007FFF
thumb_func_start MOD05_021EC3B8
MOD05_021EC3B8: ; 0x021EC3B8
push {r4, lr}
ldr r2, _021EC3D4 ; =0x021F7910
add r4, r0, #0
add r0, r1, #0
mov r1, #4
bl MOD05_021EBCD8
cmp r0, #1
bne _021EC3D0
add r0, r4, #0
bl FUN_0200621C
_021EC3D0:
pop {r4, pc}
nop
_021EC3D4: .word 0x021F7910
thumb_func_start MOD05_021EC3D8
MOD05_021EC3D8: ; 0x021EC3D8
push {r4, lr}
ldr r2, _021EC3F4 ; =0x021F7918
add r4, r0, #0
add r0, r1, #0
mov r1, #4
bl MOD05_021EBCD8
cmp r0, #1
bne _021EC3F0
add r0, r4, #0
bl FUN_0200621C
_021EC3F0:
pop {r4, pc}
nop
_021EC3F4: .word 0x021F7918
thumb_func_start MOD05_021EC3F8
MOD05_021EC3F8: ; 0x021EC3F8
push {r4, lr}
ldr r2, _021EC414 ; =0x021F7920
add r4, r0, #0
add r0, r1, #0
mov r1, #4
bl MOD05_021EBCD8
cmp r0, #1
bne _021EC410
add r0, r4, #0
bl FUN_0200621C
_021EC410:
pop {r4, pc}
nop
_021EC414: .word 0x021F7920
thumb_func_start MOD05_021EC418
MOD05_021EC418: ; 0x021EC418
push {r4, lr}
ldr r2, _021EC434 ; =0x021F7928
add r4, r0, #0
add r0, r1, #0
mov r1, #4
bl MOD05_021EBCD8
cmp r0, #1
bne _021EC430
add r0, r4, #0
bl FUN_0200621C
_021EC430:
pop {r4, pc}
nop
_021EC434: .word 0x021F7928
thumb_func_start MOD05_021EC438
MOD05_021EC438: ; 0x021EC438
push {r4, lr}
ldr r2, _021EC454 ; =0x021F7930
add r4, r0, #0
add r0, r1, #0
mov r1, #4
bl MOD05_021EBCD8
cmp r0, #1
bne _021EC450
add r0, r4, #0
bl FUN_0200621C
_021EC450:
pop {r4, pc}
nop
_021EC454: .word 0x021F7930
thumb_func_start MOD05_021EC458
MOD05_021EC458: ; 0x021EC458
push {r3, lr}
bl FUN_02023C74
bl FUN_02023C7C
pop {r3, pc}
thumb_func_start MOD05_021EC464
MOD05_021EC464: ; 0x021EC464
push {r3, r4, r5, r6, r7, lr}
mov r4, #0
add r6, r0, #0
add r5, r4, #0
mov r7, #5
_021EC46E:
add r0, r6, #0
add r1, r5, #0
bl FUN_02023C74
bl FUN_02023C7C
add r1, r7, #0
mov r2, #0
bl FUN_020672BC
cmp r0, #0
beq _021EC48C
add r0, r4, #1
lsl r0, r0, #0x18
lsr r4, r0, #0x18
_021EC48C:
add r0, r5, #1
lsl r0, r0, #0x18
lsr r5, r0, #0x18
cmp r5, #2
blo _021EC46E
add r0, r4, #0
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021EC49C
MOD05_021EC49C: ; 0x021EC49C
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
ldr r0, _021EC4D8 ; =0x021FD680
mov r4, #0
str r5, [r0]
mov r6, #5
add r7, r4, #0
_021EC4AA:
add r0, r5, #0
add r1, r4, #0
bl FUN_02023C74
bl FUN_02023C7C
add r1, r6, #0
add r2, r7, #0
bl FUN_020672BC
cmp r0, #0
bne _021EC4C6
add r0, r4, #0
pop {r3, r4, r5, r6, r7, pc}
_021EC4C6:
add r0, r4, #1
lsl r0, r0, #0x18
lsr r4, r0, #0x18
cmp r4, #2
blo _021EC4AA
mov r0, #0
mvn r0, r0
pop {r3, r4, r5, r6, r7, pc}
nop
_021EC4D8: .word 0x021FD680
thumb_func_start MOD05_021EC4DC
MOD05_021EC4DC: ; 0x021EC4DC
push {r3, lr}
mov r1, #6
mov r2, #0
bl FUN_020672BC
lsl r0, r0, #0x10
lsr r0, r0, #0x10
bl FUN_0206EA98
pop {r3, pc}
thumb_func_start MOD05_021EC4F0
MOD05_021EC4F0: ; 0x021EC4F0
push {r4, r5, r6, r7, lr}
sub sp, #0x24
add r5, r2, #0
add r6, r0, #0
str r1, [sp]
add r7, r3, #0
bl FUN_0206B9B0
add r4, r0, #0
add r0, r5, #0
bl FUN_02023C80
str r0, [sp, #8]
add r0, r5, #0
bl FUN_02023C7C
str r0, [sp, #4]
add r0, r7, #0
bl FUN_020238F4
bl FUN_0202398C
add r0, r4, #0
mov r1, #0x74
add r2, sp, #0xc
bl FUN_020671BC
add r0, r4, #0
bl FUN_020690E4
bl MOD05_021EC4DC
cmp r0, #0
beq _021EC544
ldr r0, [sp, #8]
bl FUN_02023C8C
add r2, r0, #0
add r0, r4, #0
mov r1, #0xa9
bl FUN_020671BC
_021EC544:
ldr r1, [sp, #4]
add r0, r4, #0
bl FUN_02069BB4
add r0, r5, #0
mov r1, #0
bl FUN_02023CA0
ldr r1, [sp]
add r0, r6, #0
bl FUN_0206B938
ldr r1, _021EC578 ; =0x000001B9
add r0, r6, #0
bl FUN_0206BAE4
cmp r0, #0
bne _021EC572
add r0, r7, #0
bl FUN_02029EF8
bl FUN_02029F08
_021EC572:
add sp, #0x24
pop {r4, r5, r6, r7, pc}
nop
_021EC578: .word 0x000001B9
thumb_func_start MOD05_021EC57C
MOD05_021EC57C: ; 0x021EC57C
push {r3, r4, r5, r6, r7, lr}
add r7, r3, #0
add r5, r0, #0
add r0, r7, #0
add r6, r1, #0
add r4, r2, #0
bl FUN_02029FC8
mov r1, #0x28
bl FUN_0202A0E8
add r0, r4, #0
bl MOD05_021EC49C
add r1, r0, #0
add r0, r4, #0
bl FUN_02023C74
add r2, r0, #0
add r0, r5, #0
add r1, r6, #0
add r3, r7, #0
bl MOD05_021EC4F0
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021EC5B0
MOD05_021EC5B0: ; 0x021EC5B0
push {r3, r4, r5, r6, r7, lr}
add r4, r0, #0
mov r1, #0
bl FUN_02023C74
add r5, r0, #0
add r0, r4, #0
mov r1, #1
bl FUN_02023C74
add r4, r0, #0
add r0, r5, #0
bl FUN_02023C7C
add r6, r0, #0
add r0, r4, #0
bl FUN_02023C7C
add r7, r0, #0
add r0, r6, #0
mov r1, #5
mov r2, #0
bl FUN_020672BC
cmp r0, #0
bne _021EC600
add r0, r7, #0
mov r1, #5
mov r2, #0
bl FUN_020672BC
cmp r0, #0
beq _021EC600
add r0, r5, #0
add r1, r4, #0
bl FUN_02023CF0
add r0, r4, #0
bl FUN_02023D3C
_021EC600:
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021EC604
MOD05_021EC604: ; 0x021EC604
push {r4, r5, r6, r7, lr}
sub sp, #0xc
add r5, r0, #0
mov r0, #0
str r0, [sp]
str r0, [sp, #8]
add r4, sp, #8
add r6, sp, #4
add r7, sp, #4
_021EC616:
add r0, r5, #0
bl FUN_020690E8
cmp r0, #0
beq _021EC658
mov r0, #0
str r0, [sp, #8]
add r0, r5, #0
add r1, r4, #0
add r2, r6, #0
bl FUN_02069818
cmp r0, #0
beq _021EC64E
_021EC632:
ldr r1, _021EC664 ; =0x0000FFFF
cmp r0, r1
bne _021EC640
ldrh r1, [r7]
add r0, r5, #0
bl FUN_02069708
_021EC640:
add r0, r5, #0
add r1, r4, #0
add r2, r6, #0
bl FUN_02069818
cmp r0, #0
bne _021EC632
_021EC64E:
ldr r0, [sp]
add r0, r0, #1
str r0, [sp]
cmp r0, #0x64
blt _021EC616
_021EC658:
add r0, r5, #0
bl FUN_02066ED8
add sp, #0xc
pop {r4, r5, r6, r7, pc}
nop
_021EC664: .word 0x0000FFFF
thumb_func_start MOD05_021EC668
MOD05_021EC668: ; 0x021EC668
push {r4, r5, r6, r7, lr}
sub sp, #0xc
str r0, [sp]
add r6, r1, #0
mov r0, #4
add r7, r2, #0
bl FUN_020669C0
add r4, r0, #0
add r0, r6, #0
bl FUN_02023C7C
add r5, r0, #0
add r0, r6, #0
bl FUN_02023C80
str r0, [sp, #4]
add r0, r7, #0
mov r1, #0
add r2, r5, #0
bl FUN_0200ACF8
add r0, r5, #0
mov r1, #5
mov r2, #0
bl FUN_020672BC
lsl r0, r0, #0x10
lsr r7, r0, #0x10
add r0, r5, #0
add r1, r4, #0
bl FUN_02069A64
add r0, r4, #0
mov r1, #0xa0
mov r2, #0
bl FUN_020671BC
cmp r0, #0x64
beq _021EC6E0
add r0, r4, #0
mov r1, #8
mov r2, #0
bl FUN_020671BC
str r0, [sp, #8]
add r0, r6, #0
bl FUN_02023C84
ldr r1, [sp, #8]
add r2, sp, #8
add r0, r1, r0
str r0, [sp, #8]
add r0, r4, #0
mov r1, #8
bl FUN_02067830
add r0, r4, #0
bl MOD05_021EC604
_021EC6E0:
add r0, r5, #0
bl MOD05_021EC4DC
cmp r0, #0
beq _021EC6FA
ldr r0, [sp, #4]
bl FUN_02023C8C
add r2, r0, #0
add r0, r4, #0
mov r1, #0xa9
bl FUN_02067830
_021EC6FA:
ldr r0, [sp]
add r1, r4, #0
bl FUN_0206B900
add r0, r5, #0
bl FUN_020669A0
add r0, r6, #0
mov r1, #0
bl FUN_02023CA0
add r0, r4, #0
bl FreeToHeap
add r0, r7, #0
add sp, #0xc
pop {r4, r5, r6, r7, pc}
thumb_func_start MOD05_021EC71C
MOD05_021EC71C: ; 0x021EC71C
push {r4, r5, r6, lr}
add r6, r2, #0
add r5, r0, #0
add r4, r1, #0
add r0, r6, #0
add r1, r3, #0
bl FUN_02023C74
add r1, r0, #0
add r0, r5, #0
add r2, r4, #0
bl MOD05_021EC668
lsl r0, r0, #0x10
lsr r4, r0, #0x10
add r0, r6, #0
bl MOD05_021EC5B0
add r0, r4, #0
pop {r4, r5, r6, pc}
thumb_func_start MOD05_021EC744
MOD05_021EC744: ; 0x021EC744
push {r3, r4, r5, r6, r7, lr}
add r6, r0, #0
mov r0, #4
add r5, r1, #0
bl FUN_020669C0
add r7, r0, #0
bl FUN_020690E4
add r4, r0, #0
add r0, r6, #0
add r1, r4, #0
bl FUN_02069BA0
add r0, r4, #0
mov r1, #8
mov r2, #0
bl FUN_020672BC
str r0, [sp]
add r0, r0, r5
str r0, [sp]
add r0, r4, #0
mov r1, #8
add r2, sp, #0
bl FUN_02067960
add r0, r4, #0
bl FUN_020687C8
add r4, r0, #0
add r0, r7, #0
bl FreeToHeap
add r0, r4, #0
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD05_021EC78C
MOD05_021EC78C: ; 0x021EC78C
push {r4, r5, r6, lr}
add r5, r0, #0
bl FUN_02023C7C
add r6, r0, #0
bl FUN_020687C8
lsl r0, r0, #0x18
lsr r4, r0, #0x18
add r0, r5, #0
bl FUN_02023C84
add r1, r0, #0
add r0, r6, #0
bl MOD05_021EC744
lsl r0, r0, #0x18
lsr r0, r0, #0x18
sub r0, r0, r4
pop {r4, r5, r6, pc}
thumb_func_start MOD05_021EC7B4
MOD05_021EC7B4: ; 0x021EC7B4
push {r3, r4, r5, lr}
add r5, r0, #0
bl FUN_02023C7C
add r4, r0, #0
add r0, r5, #0
bl FUN_02023C84
add r1, r0, #0
add r0, r4, #0
bl MOD05_021EC744
lsl r0, r0, #0x18
lsr r0, r0, #0x18
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021EC7D4
MOD05_021EC7D4: ; 0x021EC7D4
push {r4, r5, r6, lr}
sub sp, #8
add r4, r0, #0
add r5, r1, #0
bl FUN_02023C7C
add r6, r0, #0
add r0, r4, #0
bl MOD05_021EC78C
add r4, r0, #0
mov r0, #0
str r0, [sp]
mov r1, #1
add r0, r5, #0
add r2, r4, #0
mov r3, #3
str r1, [sp, #4]
bl FUN_0200AD38
add r0, r5, #0
mov r1, #0
add r2, r6, #0
bl FUN_0200ACF8
lsl r0, r4, #0x18
lsr r0, r0, #0x18
add sp, #8
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_start MOD05_021EC810
MOD05_021EC810: ; 0x021EC810
push {r4, r5, r6, lr}
sub sp, #8
add r4, r0, #0
add r5, r1, #0
bl FUN_02023C7C
add r6, r0, #0
add r0, r4, #0
bl MOD05_021EC78C
lsl r0, r0, #0x10
lsr r4, r0, #0x10
add r0, r5, #0
mov r1, #0
add r2, r6, #0
bl FUN_0200ACF8
add r1, r4, #1
mov r0, #0x64
mul r0, r1
lsl r0, r0, #0x10
lsr r4, r0, #0x10
mov r0, #0
str r0, [sp]
mov r1, #1
add r0, r5, #0
add r2, r4, #0
mov r3, #5
str r1, [sp, #4]
bl FUN_0200AD38
add r0, r4, #0
add sp, #8
pop {r4, r5, r6, pc}
thumb_func_start MOD05_021EC854
MOD05_021EC854: ; 0x021EC854
push {r4, lr}
add r4, r2, #0
bl FUN_02023C74
add r1, r4, #0
bl MOD05_021EC810
pop {r4, pc}
thumb_func_start MOD05_021EC864
MOD05_021EC864: ; 0x021EC864
push {r3, r4, r5, lr}
add r5, r2, #0
bl FUN_02023C74
add r4, r0, #0
bl FUN_02023C7C
mov r1, #5
mov r2, #0
bl FUN_020672BC
cmp r0, #0
beq _021EC888
add r0, r4, #0
add r1, r5, #0
bl MOD05_021EC7D4
pop {r3, r4, r5, pc}
_021EC888:
mov r0, #0
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021EC88C
MOD05_021EC88C: ; 0x021EC88C
push {r3, r4, r5, lr}
add r4, r1, #0
add r5, r0, #0
mov r1, #0
bl MOD05_021EC458
str r0, [r4]
add r0, r5, #0
mov r1, #1
bl MOD05_021EC458
str r0, [r4, #4]
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021EC8A8
MOD05_021EC8A8: ; 0x021EC8A8
push {r4, r5, r6, r7, lr}
sub sp, #0x14
mov r1, #0
mvn r1, r1
str r1, [sp]
add r1, sp, #4
bl MOD05_021EC88C
mov r4, #0
add r5, sp, #4
_021EC8BC:
ldr r0, [r5]
bl FUN_020689E8
cmp r0, #1
bne _021EC8C8
str r4, [sp]
_021EC8C8:
add r4, r4, #1
add r5, r5, #4
cmp r4, #2
blt _021EC8BC
mov r7, #0
add r6, r7, #0
add r4, sp, #4
add r5, sp, #0xc
_021EC8D8:
ldr r0, [r4]
mov r1, #5
mov r2, #0
bl FUN_020672BC
str r0, [r5]
cmp r0, #0x84
bne _021EC8EC
add r7, r7, #1
str r6, [sp]
_021EC8EC:
add r6, r6, #1
add r4, r4, #4
add r5, r5, #4
cmp r6, #2
blt _021EC8D8
cmp r7, #2
bne _021EC90E
bl rand_LC
ldr r1, _021EC940 ; =0x00007FFF
cmp r0, r1
blo _021EC90A
mov r0, #0
str r0, [sp]
b _021EC90E
_021EC90A:
mov r0, #1
str r0, [sp]
_021EC90E:
ldr r0, [sp]
mov r2, #0
lsl r1, r0, #2
add r0, sp, #4
ldr r0, [r0, r1]
mov r1, #6
bl FUN_020672BC
cmp r0, #0xe5
bne _021EC938
bl rand_LC
ldr r1, _021EC940 ; =0x00007FFF
cmp r0, r1
blo _021EC932
mov r0, #0
mvn r0, r0
str r0, [sp]
_021EC932:
ldr r0, [sp]
add sp, #0x14
pop {r4, r5, r6, r7, pc}
_021EC938:
mov r0, #0
mvn r0, r0
add sp, #0x14
pop {r4, r5, r6, r7, pc}
.balign 4, 0
_021EC940: .word 0x00007FFF
thumb_func_start MOD05_021EC944
MOD05_021EC944: ; 0x021EC944
push {r3, r4, r5, r6, r7, lr}
str r0, [sp]
mov r5, #0
bl MOD05_021EC8A8
add r1, r0, #0
bpl _021EC960
bl rand_MT
add r1, r0, #0
ldr r0, [sp]
bl FUN_02023CB8
pop {r3, r4, r5, r6, r7, pc}
_021EC960:
ldr r0, [sp]
bl MOD05_021EC458
add r1, r5, #0
add r2, r1, #0
bl FUN_020672BC
bl GetNatureFromPersonality
mov r7, #0x96
add r6, r0, #0
lsl r7, r7, #4
_021EC978:
bl rand_MT
add r4, r0, #0
bl GetNatureFromPersonality
cmp r6, r0
bne _021EC98A
cmp r4, #0
bne _021EC990
_021EC98A:
add r5, r5, #1
cmp r5, r7
ble _021EC978
_021EC990:
ldr r0, [sp]
add r1, r4, #0
bl FUN_02023CB8
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021EC99C
MOD05_021EC99C: ; 0x021EC99C
push {r3, r4}
sub sp, #8
mov r2, #0xff
strb r2, [r0, r1]
mov r2, #0
add r3, sp, #0
_021EC9A8:
ldrb r1, [r0, r2]
add r2, r2, #1
strb r1, [r3]
add r3, r3, #1
cmp r2, #6
blt _021EC9A8
mov r2, #0
add r4, r2, #0
add r3, sp, #0
_021EC9BA:
ldrb r1, [r3]
cmp r1, #0xff
beq _021EC9C4
strb r1, [r0, r2]
add r2, r2, #1
_021EC9C4:
add r4, r4, #1
add r3, r3, #1
cmp r4, #6
blt _021EC9BA
add sp, #8
pop {r3, r4}
bx lr
.balign 4, 0
thumb_func_start MOD05_021EC9D4
MOD05_021EC9D4: ; 0x021EC9D4
push {r4, r5, r6, r7, lr}
sub sp, #0x14
add r4, r0, #0
str r1, [sp]
mov r0, #0
add r1, sp, #8
_021EC9E0:
strb r0, [r1, r0]
add r0, r0, #1
lsl r0, r0, #0x18
lsr r0, r0, #0x18
cmp r0, #6
blo _021EC9E0
add r7, sp, #0xc
mov r5, #0
add r6, sp, #8
add r7, #2
_021EC9F4:
bl rand_LC
mov r1, #6
sub r1, r1, r5
bl _s32_div_f
ldrb r0, [r6, r1]
add r1, r5, #0
strb r0, [r7, r5]
add r0, r6, #0
bl MOD05_021EC99C
add r0, r5, #1
lsl r0, r0, #0x18
lsr r5, r0, #0x18
cmp r5, #3
blo _021EC9F4
add r6, sp, #4
mov r5, #0
add r6, #1
mov r7, #0x1f
_021ECA1E:
bl rand_LC
lsr r1, r0, #0x1f
lsl r0, r0, #0x1f
sub r0, r0, r1
ror r0, r7
add r0, r1, r0
strb r0, [r6, r5]
add r0, r5, #1
lsl r0, r0, #0x18
lsr r5, r0, #0x18
cmp r5, #3
blo _021ECA1E
mov r5, #0
add r7, sp, #4
add r6, sp, #4
_021ECA3E:
add r1, sp, #4
add r1, #1
ldrb r1, [r1, r5]
ldr r0, [sp]
bl MOD05_021EC458
add r1, sp, #0xc
add r1, #2
ldrb r1, [r1, r5]
cmp r1, #5
bhi _021ECAEE
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021ECA60: ; jump table
.short _021ECA6C - _021ECA60 - 2 ; case 0
.short _021ECA82 - _021ECA60 - 2 ; case 1
.short _021ECA98 - _021ECA60 - 2 ; case 2
.short _021ECAAE - _021ECA60 - 2 ; case 3
.short _021ECAC4 - _021ECA60 - 2 ; case 4
.short _021ECADA - _021ECA60 - 2 ; case 5
_021ECA6C:
mov r1, #0x46
mov r2, #0
bl FUN_020672BC
strb r0, [r6]
add r0, r4, #0
mov r1, #0x46
add r2, r7, #0
bl FUN_02067830
b _021ECAEE
_021ECA82:
mov r1, #0x47
mov r2, #0
bl FUN_020672BC
strb r0, [r6]
add r0, r4, #0
mov r1, #0x47
add r2, r7, #0
bl FUN_02067830
b _021ECAEE
_021ECA98:
mov r1, #0x48
mov r2, #0
bl FUN_020672BC
strb r0, [r6]
add r0, r4, #0
mov r1, #0x48
add r2, r7, #0
bl FUN_02067830
b _021ECAEE
_021ECAAE:
mov r1, #0x49
mov r2, #0
bl FUN_020672BC
strb r0, [r6]
add r0, r4, #0
mov r1, #0x49
add r2, r7, #0
bl FUN_02067830
b _021ECAEE
_021ECAC4:
mov r1, #0x4a
mov r2, #0
bl FUN_020672BC
strb r0, [r6]
add r0, r4, #0
mov r1, #0x4a
add r2, r7, #0
bl FUN_02067830
b _021ECAEE
_021ECADA:
mov r1, #0x4b
mov r2, #0
bl FUN_020672BC
strb r0, [r6]
add r0, r4, #0
mov r1, #0x4b
add r2, r7, #0
bl FUN_02067830
_021ECAEE:
add r0, r5, #1
lsl r0, r0, #0x18
lsr r5, r0, #0x18
cmp r5, #3
blo _021ECA3E
add sp, #0x14
pop {r4, r5, r6, r7, pc}
thumb_func_start MOD05_021ECAFC
MOD05_021ECAFC: ; 0x021ECAFC
push {r3, r4, r5, r6, r7, lr}
mov r4, #0
add r5, r1, #0
mov r1, #5
add r2, r4, #0
add r6, r4, #0
bl FUN_020671BC
lsl r0, r0, #0x10
lsr r2, r0, #0x10
ldr r0, _021ECB60 ; =0x00004E20
ldr r3, _021ECB64 ; =0x00000775
add r2, r2, r0
ldr r0, _021ECB68 ; =0x021F7B48
add r1, r4, #0
_021ECB1A:
lsl r7, r1, #1
ldrh r7, [r0, r7]
cmp r2, r7
bne _021ECB2A
add r0, r1, #1
lsl r0, r0, #0x10
lsr r6, r0, #0x10
b _021ECB34
_021ECB2A:
add r1, r1, #1
lsl r1, r1, #0x10
lsr r1, r1, #0x10
cmp r1, r3
blo _021ECB1A
_021ECB34:
ldr r2, _021ECB68 ; =0x021F7B48
lsl r0, r6, #1
ldr r3, _021ECB60 ; =0x00004E20
mov r1, #0
add r0, r2, r0
_021ECB3E:
lsl r6, r1, #1
ldrh r2, [r0, r6]
cmp r2, r3
bhi _021ECB58
add r1, r1, #1
strh r2, [r5, r6]
add r2, r4, #1
lsl r1, r1, #0x10
lsl r2, r2, #0x10
lsr r1, r1, #0x10
lsr r4, r2, #0x10
cmp r1, #0x10
blo _021ECB3E
_021ECB58:
lsl r0, r4, #0x18
lsr r0, r0, #0x18
pop {r3, r4, r5, r6, r7, pc}
nop
_021ECB60: .word 0x00004E20
_021ECB64: .word 0x00000775
_021ECB68: .word 0x021F7B48
thumb_func_start MOD05_021ECB6C
MOD05_021ECB6C: ; 0x021ECB6C
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x28
add r7, r0, #0
str r1, [sp]
mov r0, #4
mov r1, #0xb4
str r2, [sp, #4]
bl AllocFromHeap
add r4, r0, #0
mov r0, #0
add r1, r4, #0
mov r2, #0xb4
str r0, [sp, #0x1c]
bl MIi_CpuClearFast
add r0, r7, #0
mov r1, #5
mov r2, #0
bl FUN_020671BC
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp, #0x18]
add r0, r7, #0
mov r1, #0x70
mov r2, #0
bl FUN_020671BC
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp, #0xc]
add r2, r4, #0
ldr r0, [sp, #0x18]
ldr r1, [sp, #0xc]
add r2, #0x30
bl FUN_02069BFC
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp, #0x14]
mov r5, #0
_021ECBC0:
lsl r0, r5, #2
add r6, r5, #0
str r0, [sp, #0x20]
add r0, r4, r0
add r6, #0x36
str r0, [sp, #0x10]
ldr r0, [sp]
add r1, r6, #0
mov r2, #0
bl FUN_020672BC
ldr r1, [sp, #0x20]
mov r2, #0
str r0, [r4, r1]
ldr r0, [sp, #4]
add r1, r6, #0
bl FUN_020672BC
ldr r1, [sp, #0x10]
str r0, [r1, #0x20]
add r0, r5, #1
lsl r0, r0, #0x10
lsr r5, r0, #0x10
cmp r5, #4
blo _021ECBC0
add r1, r4, #0
add r0, r7, #0
add r1, #0x94
bl MOD05_021ECAFC
add r5, r0, #0
mov r6, #0
_021ECC00:
lsl r0, r6, #2
ldr r1, [r4, r0]
str r0, [sp, #0x24]
cmp r1, #0
beq _021ECC50
mov r0, #0
cmp r5, #0
bls _021ECC46
_021ECC10:
lsl r2, r0, #1
add r2, r4, r2
add r2, #0x94
ldrh r2, [r2]
cmp r1, r2
bne _021ECC3C
lsl r1, r1, #0x10
add r0, r7, #0
lsr r1, r1, #0x10
bl FUN_02069698
ldr r1, _021ECD60 ; =0x0000FFFF
cmp r0, r1
bne _021ECC46
ldr r1, [sp, #0x24]
add r0, r7, #0
ldr r1, [r4, r1]
lsl r1, r1, #0x10
lsr r1, r1, #0x10
bl FUN_02069708
b _021ECC46
_021ECC3C:
add r0, r0, #1
lsl r0, r0, #0x10
lsr r0, r0, #0x10
cmp r0, r5
blo _021ECC10
_021ECC46:
add r0, r6, #1
lsl r0, r0, #0x10
lsr r6, r0, #0x10
cmp r6, #4
blo _021ECC00
_021ECC50:
mov r0, #0
str r0, [sp, #8]
_021ECC54:
ldr r0, [sp, #8]
lsl r6, r0, #2
ldr r0, [r4, r6]
cmp r0, #0
beq _021ECCAC
mov r5, #0
_021ECC60:
mov r0, #0x52
lsl r0, r0, #2
add r0, r5, r0
lsl r0, r0, #0x10
lsr r0, r0, #0x10
bl FUN_0206EA30
ldr r1, [r4, r6]
cmp r1, r0
bne _021ECCA2
lsl r2, r5, #0x18
ldr r0, [sp, #0x18]
ldr r1, [sp, #0xc]
lsr r2, r2, #0x18
bl FUN_0206A16C
cmp r0, #0
beq _021ECCA2
ldr r1, [r4, r6]
add r0, r7, #0
lsl r1, r1, #0x10
lsr r1, r1, #0x10
bl FUN_02069698
ldr r1, _021ECD60 ; =0x0000FFFF
cmp r0, r1
bne _021ECCA2
ldr r1, [r4, r6]
add r0, r7, #0
lsl r1, r1, #0x10
lsr r1, r1, #0x10
bl FUN_02069708
_021ECCA2:
add r0, r5, #1
lsl r0, r0, #0x10
lsr r5, r0, #0x10
cmp r5, #0x64
blo _021ECC60
_021ECCAC:
ldr r0, [sp, #8]
add r0, r0, #1
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp, #8]
cmp r0, #4
blo _021ECC54
mov r6, #0
_021ECCBC:
lsl r1, r6, #2
ldr r0, [r4, r1]
cmp r0, #0
beq _021ECCFC
mov r3, #0
_021ECCC6:
lsl r2, r3, #2
add r2, r4, r2
ldr r0, [r4, r1]
ldr r2, [r2, #0x20]
cmp r0, r2
bne _021ECCE8
cmp r0, #0
beq _021ECCE8
ldr r2, [sp, #0x1c]
add r5, r2, #0
add r5, r5, #1
lsl r5, r5, #0x10
lsr r5, r5, #0x10
lsl r2, r2, #2
str r5, [sp, #0x1c]
add r2, r4, r2
str r0, [r2, #0x10]
_021ECCE8:
add r0, r3, #1
lsl r0, r0, #0x10
lsr r3, r0, #0x10
cmp r3, #4
blo _021ECCC6
add r0, r6, #1
lsl r0, r0, #0x10
lsr r6, r0, #0x10
cmp r6, #4
blo _021ECCBC
_021ECCFC:
mov r6, #0
_021ECCFE:
lsl r0, r6, #2
add r5, r4, r0
ldr r3, [r5, #0x10]
cmp r3, #0
beq _021ECD54
ldr r0, [sp, #0x14]
mov r2, #0
cmp r0, #0
bls _021ECD4A
_021ECD10:
lsl r0, r2, #1
add r0, r4, r0
ldrh r1, [r0, #0x30]
cmp r1, #0
beq _021ECD3E
ldr r0, [r5, #0x10]
cmp r0, r1
bne _021ECD3E
lsl r1, r3, #0x10
add r0, r7, #0
lsr r1, r1, #0x10
bl FUN_02069698
ldr r1, _021ECD60 ; =0x0000FFFF
cmp r0, r1
bne _021ECD4A
ldr r1, [r5, #0x10]
add r0, r7, #0
lsl r1, r1, #0x10
lsr r1, r1, #0x10
bl FUN_02069708
b _021ECD4A
_021ECD3E:
add r0, r2, #1
lsl r0, r0, #0x10
lsr r2, r0, #0x10
ldr r0, [sp, #0x14]
cmp r2, r0
blo _021ECD10
_021ECD4A:
add r0, r6, #1
lsl r0, r0, #0x10
lsr r6, r0, #0x10
cmp r6, #4
blo _021ECCFE
_021ECD54:
add r0, r4, #0
bl FreeToHeap
add sp, #0x28
pop {r3, r4, r5, r6, r7, pc}
nop
_021ECD60: .word 0x0000FFFF
thumb_func_start MOD05_021ECD64
MOD05_021ECD64: ; 0x021ECD64
push {r4, lr}
add r4, r0, #0
mov r1, #0
bl FUN_02023CB8
add r0, r4, #0
mov r1, #0
bl FUN_02023CC0
pop {r4, pc}
thumb_func_start MOD05_021ECD78
MOD05_021ECD78: ; 0x021ECD78
push {r4, r5, r6, lr}
sub sp, #8
add r5, r0, #0
add r0, r1, #0
add r1, sp, #0
bl MOD05_021EC88C
ldr r2, _021ECDE8 ; =0x021F7B12
mov r3, #0
mov r1, #6
_021ECD8C:
add r0, r3, #0
mul r0, r1
ldrh r0, [r2, r0]
cmp r5, r0
bne _021ECD9A
add r6, r3, #0
b _021ECDA4
_021ECD9A:
add r0, r3, #1
lsl r0, r0, #0x10
lsr r3, r0, #0x10
cmp r3, #9
blo _021ECD8C
_021ECDA4:
cmp r3, #9
bne _021ECDAE
add sp, #8
add r0, r5, #0
pop {r4, r5, r6, pc}
_021ECDAE:
ldr r0, [sp]
mov r1, #6
mov r2, #0
bl FUN_020672BC
lsl r0, r0, #0x10
lsr r4, r0, #0x10
ldr r0, [sp, #4]
mov r1, #6
mov r2, #0
bl FUN_020672BC
lsl r0, r0, #0x10
lsr r2, r0, #0x10
mov r0, #6
add r1, r6, #0
mul r1, r0
ldr r0, _021ECDEC ; =0x021F7B14
ldrh r0, [r0, r1]
cmp r4, r0
beq _021ECDE0
cmp r2, r0
beq _021ECDE0
ldr r0, _021ECDF0 ; =0x021F7B16
ldrh r5, [r0, r1]
_021ECDE0:
add r0, r5, #0
add sp, #8
pop {r4, r5, r6, pc}
nop
_021ECDE8: .word 0x021F7B12
_021ECDEC: .word 0x021F7B14
_021ECDF0: .word 0x021F7B16
thumb_func_start MOD05_021ECDF4
MOD05_021ECDF4: ; 0x021ECDF4
push {r3, r4, r5, lr}
sub sp, #8
add r4, r0, #0
add r0, r1, #0
add r1, sp, #0
bl MOD05_021EC88C
ldr r0, [sp]
mov r1, #6
mov r2, #0
bl FUN_020672BC
add r5, r0, #0
ldr r0, [sp, #4]
mov r1, #6
mov r2, #0
bl FUN_020672BC
cmp r5, #0xec
beq _021ECE20
cmp r0, #0xec
bne _021ECE3A
_021ECE20:
mov r1, #0x56
add r0, r4, #0
lsl r1, r1, #2
bl FUN_02069698
ldr r1, _021ECE40 ; =0x0000FFFF
cmp r0, r1
bne _021ECE3A
mov r1, #0x56
add r0, r4, #0
lsl r1, r1, #2
bl FUN_02069708
_021ECE3A:
add sp, #8
pop {r3, r4, r5, pc}
nop
_021ECE40: .word 0x0000FFFF
thumb_func_start MOD05_021ECE44
MOD05_021ECE44: ; 0x021ECE44
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x10
add r5, r1, #0
add r1, sp, #4
str r0, [sp]
bl MOD05_021EC88C
mov r4, #0
add r7, sp, #4
_021ECE56:
lsl r6, r4, #2
ldr r0, [r7, r6]
mov r1, #5
mov r2, #0
bl FUN_020672BC
lsl r1, r4, #1
add r2, sp, #0xc
strh r0, [r2, r1]
add r0, r2, #0
ldrh r0, [r0, r1]
cmp r0, #0x84
bne _021ECE7A
mov r0, #1
eor r0, r4
strb r0, [r5]
strb r4, [r5, #1]
b _021ECE8C
_021ECE7A:
ldr r0, [r7, r6]
bl FUN_020689E8
cmp r0, #1
bne _021ECE8C
mov r0, #1
strb r4, [r5]
eor r0, r4
strb r0, [r5, #1]
_021ECE8C:
add r0, r4, #1
lsl r0, r0, #0x10
lsr r4, r0, #0x10
cmp r4, #2
blo _021ECE56
ldrb r0, [r5]
lsl r1, r0, #1
add r0, sp, #0xc
ldrh r0, [r0, r1]
bl FUN_02069558
add r4, r0, #0
cmp r4, #0x1d
bne _021ECEBC
ldr r0, [sp]
bl FUN_02023C90
mov r1, #2
lsl r1, r1, #0xe
tst r0, r1
beq _021ECEBA
mov r4, #0x20
b _021ECEBC
_021ECEBA:
mov r4, #0x1d
_021ECEBC:
ldr r0, _021ECF08 ; =0x0000013A
cmp r4, r0
bne _021ECED6
ldr r0, [sp]
bl FUN_02023C90
mov r1, #2
lsl r1, r1, #0xe
tst r0, r1
beq _021ECED4
ldr r4, _021ECF0C ; =0x00000139
b _021ECED6
_021ECED4:
ldr r4, _021ECF08 ; =0x0000013A
_021ECED6:
ldr r0, _021ECF10 ; =0x000001EA
cmp r4, r0
bne _021ECEDE
sub r4, r0, #1
_021ECEDE:
ldrb r0, [r5, #1]
lsl r1, r0, #1
add r0, sp, #0xc
ldrh r0, [r0, r1]
cmp r0, #0x84
bne _021ECF02
ldrb r0, [r5]
lsl r1, r0, #2
add r0, sp, #4
ldr r0, [r0, r1]
bl FUN_020689E8
cmp r0, #1
beq _021ECF02
ldrb r1, [r5, #1]
ldrb r0, [r5]
strb r0, [r5, #1]
strb r1, [r5]
_021ECF02:
add r0, r4, #0
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_021ECF08: .word 0x0000013A
_021ECF0C: .word 0x00000139
_021ECF10: .word 0x000001EA
thumb_func_start MOD05_021ECF14
MOD05_021ECF14: ; 0x021ECF14
push {r0, r1, r2, r3}
push {r4, r5, r6, lr}
sub sp, #0x20
add r6, r1, #0
add r5, r0, #0
add r0, r6, #0
mov r1, #0x13
add r4, r3, #0
bl FUN_02068678
add r1, sp, #0x10
strb r0, [r1]
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
str r0, [sp, #0xc]
add r0, r5, #0
add r1, r6, #0
mov r2, #1
mov r3, #0x20
bl CreateMon
mov r1, #0
add r0, sp, #0x10
strb r1, [r0, #2]
mov r1, #4
strh r1, [r0, #4]
add r0, r5, #0
mov r1, #0x9a
add r2, sp, #0x14
bl FUN_02067830
add r0, r5, #0
mov r1, #9
add r2, sp, #0x10
bl FUN_02067830
add r2, sp, #0x10
add r0, r5, #0
mov r1, #0x9b
add r2, #2
bl FUN_02067830
add r0, sp, #0x30
ldrb r0, [r0, #8]
cmp r0, #0
beq _021ECF7E
add r0, r5, #0
mov r1, #0x97
add r2, sp, #0x38
bl FUN_02067830
_021ECF7E:
add r2, sp, #0x10
mov r1, #1
add r0, sp, #0x10
strb r1, [r0, #1]
add r0, r5, #0
mov r1, #0x4c
add r2, #1
bl FUN_02067830
ldr r0, _021ED008 ; =0x000001EE
mov r1, #4
bl FUN_0200AA50
add r6, r0, #0
add r0, r5, #0
mov r1, #0x76
add r2, r6, #0
bl FUN_02067830
add r0, r6, #0
bl FUN_02021A20
ldr r0, [sp, #0x40]
cmp r0, #4
bne _021ECFEE
add r0, r4, #0
bl FUN_020239BC
str r0, [sp, #0x1c]
add r0, r4, #0
bl FUN_020239CC
str r0, [sp, #0x18]
add r0, r4, #0
mov r1, #0x20
bl FUN_020239A0
add r6, r0, #0
add r0, r5, #0
mov r1, #0x90
add r2, r6, #0
bl FUN_02067830
add r0, r5, #0
mov r1, #7
add r2, sp, #0x1c
bl FUN_02067830
add r0, r5, #0
mov r1, #0x9c
add r2, sp, #0x18
bl FUN_02067830
add r0, r6, #0
bl FUN_02021A20
_021ECFEE:
mov r0, #0
str r0, [sp]
ldr r2, [sp, #0x40]
ldr r3, [sp, #0x44]
add r0, r5, #0
add r1, r4, #0
bl FUN_0208089C
add sp, #0x20
pop {r4, r5, r6}
pop {r3}
add sp, #0x10
bx r3
.balign 4, 0
_021ED008: .word 0x000001EE
thumb_func_start MOD05_021ED00C
MOD05_021ED00C: ; 0x021ED00C
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x18
str r1, [sp, #0x10]
add r7, r0, #0
ldr r0, [sp, #0x10]
mov r1, #0x13
add r5, r2, #0
add r6, r3, #0
bl FUN_02068678
add r1, sp, #0x14
strb r0, [r1]
add r0, r5, #0
bl FUN_02023C90
add r4, r0, #0
add r0, r5, #0
bl FUN_02023CC8
cmp r0, #0
beq _021ED05E
add r0, r6, #0
add r1, r4, #0
bl FUN_02068AAC
cmp r0, #0
bne _021ED05E
mov r5, #0
_021ED044:
add r0, r4, #0
bl rand_ALT
add r4, r0, #0
add r0, r6, #0
add r1, r4, #0
bl FUN_02068AAC
cmp r0, #0
bne _021ED05E
add r5, r5, #1
cmp r5, #4
blt _021ED044
_021ED05E:
mov r2, #1
str r2, [sp]
str r4, [sp, #4]
mov r0, #0
str r0, [sp, #8]
str r0, [sp, #0xc]
ldr r1, [sp, #0x10]
add r0, r7, #0
mov r3, #0x20
bl CreateMon
add r2, sp, #0x14
mov r1, #0
add r0, sp, #0x14
strb r1, [r0, #1]
mov r1, #4
strh r1, [r0, #2]
add r0, r7, #0
mov r1, #0x9a
add r2, #2
bl FUN_02067830
add r0, r7, #0
mov r1, #9
add r2, sp, #0x14
bl FUN_02067830
add r2, sp, #0x14
add r0, r7, #0
mov r1, #0x9b
add r2, #1
bl FUN_02067830
add r0, r7, #0
mov r1, #0x70
add r2, sp, #0x30
bl FUN_02067830
ldr r0, _021ED0C8 ; =0x000001EE
mov r1, #4
bl FUN_0200AA50
add r4, r0, #0
add r0, r7, #0
mov r1, #0x76
add r2, r4, #0
bl FUN_02067830
add r0, r4, #0
bl FUN_02021A20
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_021ED0C8: .word 0x000001EE
thumb_func_start MOD05_021ED0CC
MOD05_021ED0CC: ; 0x021ED0CC
push {r4, r5, r6, r7, lr}
sub sp, #0x14
add r5, r0, #0
mov r0, #4
str r1, [sp, #4]
add r7, r2, #0
bl FUN_020669C0
add r1, sp, #0x10
add r4, r0, #0
add r0, r5, #0
add r1, #1
bl MOD05_021ECE44
add r1, r5, #0
bl MOD05_021ECD78
add r6, r0, #0
add r0, r7, #0
bl FUN_020239BC
add r1, sp, #0x10
str r0, [sp, #8]
ldrb r1, [r1, #1]
add r0, r5, #0
bl MOD05_021EC458
mov r1, #0x70
mov r2, #0
bl FUN_020672BC
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp]
ldr r3, [sp, #8]
add r0, r4, #0
add r1, r6, #0
add r2, r5, #0
bl MOD05_021ED00C
add r0, r4, #0
add r1, r5, #0
bl MOD05_021EC9D4
add r1, sp, #0x10
ldrb r1, [r1, #2]
add r0, r5, #0
bl MOD05_021EC458
add r1, sp, #0x10
str r0, [sp, #0xc]
ldrb r1, [r1, #1]
add r0, r5, #0
bl MOD05_021EC458
add r2, r0, #0
ldr r1, [sp, #0xc]
add r0, r4, #0
bl MOD05_021ECB6C
mov r0, #1
mov r1, #0
bl FUN_02015CF8
add r3, r0, #0
mov r0, #4
str r0, [sp]
add r0, r4, #0
add r1, r7, #0
mov r2, #3
bl FUN_0208089C
cmp r6, #0xac
bne _021ED168
add r0, r4, #0
add r1, r5, #0
bl MOD05_021ECDF4
_021ED168:
mov r1, #1
add r0, sp, #0x10
strb r1, [r0]
add r0, r4, #0
mov r1, #0x4c
add r2, sp, #0x10
bl FUN_02067830
ldr r0, [sp, #4]
add r1, r4, #0
bl FUN_0206B900
add r0, r5, #0
bl MOD05_021ECD64
add r0, r4, #0
bl FreeToHeap
add sp, #0x14
pop {r4, r5, r6, r7, pc}
thumb_func_start MOD05_021ED190
MOD05_021ED190: ; 0x021ED190
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
bl FUN_0206B9AC
add r6, r0, #0
mov r4, #0
cmp r6, #0
ble _021ED1E0
mov r7, #0xac
_021ED1A2:
add r0, r5, #0
add r1, r4, #0
bl FUN_0206B9B0
add r1, r7, #0
mov r2, #0
bl FUN_020671BC
cmp r0, #0
bne _021ED1D6
add r0, r5, #0
add r1, r4, #0
bl FUN_0206B9B0
mov r1, #0xa
mov r2, #0
bl FUN_020671BC
lsl r0, r0, #0x18
lsr r0, r0, #0x18
cmp r0, #0x28
beq _021ED1D2
cmp r0, #0x31
bne _021ED1D6
_021ED1D2:
mov r0, #2
pop {r3, r4, r5, r6, r7, pc}
_021ED1D6:
add r0, r4, #1
lsl r0, r0, #0x18
lsr r4, r0, #0x18
cmp r4, r6
blt _021ED1A2
_021ED1E0:
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD05_021ED1E4
MOD05_021ED1E4: ; 0x021ED1E4
push {r4, r5, r6, r7}
mov r4, #0
add r3, r4, #0
_021ED1EA:
ldrh r7, [r0]
add r5, r3, #0
add r6, r1, #0
_021ED1F0:
ldrh r2, [r6]
cmp r7, r2
bne _021ED1FC
mov r0, #1
pop {r4, r5, r6, r7}
bx lr
_021ED1FC:
add r5, r5, #1
add r6, r6, #2
cmp r5, #2
blt _021ED1F0
add r4, r4, #1
add r0, r0, #2
cmp r4, #2
blt _021ED1EA
mov r0, #0
pop {r4, r5, r6, r7}
bx lr
.balign 4, 0
thumb_func_start MOD05_021ED214
MOD05_021ED214: ; 0x021ED214
push {r4, r5, r6, r7, lr}
sub sp, #0x24
add r5, r0, #0
mov r0, #0
str r0, [sp, #4]
add r0, sp, #0x10
add r4, sp, #0x18
str r0, [sp]
add r7, sp, #8
add r6, sp, #0x1c
_021ED228:
ldr r0, [r5]
mov r1, #5
mov r2, #0
bl FUN_020672BC
strh r0, [r4]
ldr r0, [r5]
mov r1, #7
mov r2, #0
bl FUN_020672BC
ldr r1, [sp]
str r0, [r1]
mov r1, #0
ldr r0, [r5]
add r2, r1, #0
bl FUN_020672BC
add r1, r0, #0
ldrh r0, [r4]
bl FUN_02068A20
stmia r7!, {r0}
ldrh r0, [r4]
mov r1, #0x16
bl FUN_02068678
strh r0, [r6]
ldrh r0, [r4]
mov r1, #0x17
bl FUN_02068678
strh r0, [r6, #2]
ldr r0, [sp]
add r5, r5, #4
add r0, r0, #4
str r0, [sp]
ldr r0, [sp, #4]
add r4, r4, #2
add r0, r0, #1
add r6, r6, #4
str r0, [sp, #4]
cmp r0, #2
blo _021ED228
add r0, sp, #8
ldrh r1, [r0, #0x14]
cmp r1, #0xf
beq _021ED28E
ldrh r0, [r0, #0x18]
cmp r0, #0xf
bne _021ED294
_021ED28E:
add sp, #0x24
mov r0, #0
pop {r4, r5, r6, r7, pc}
_021ED294:
cmp r1, #0xd
bne _021ED2A2
cmp r0, #0xd
bne _021ED2A2
add sp, #0x24
mov r0, #0
pop {r4, r5, r6, r7, pc}
_021ED2A2:
cmp r1, #0xd
beq _021ED2AA
cmp r0, #0xd
bne _021ED2BE
_021ED2AA:
ldr r1, [sp, #0x10]
ldr r0, [sp, #0x14]
cmp r1, r0
bne _021ED2B8
add sp, #0x24
mov r0, #0x14
pop {r4, r5, r6, r7, pc}
_021ED2B8:
add sp, #0x24
mov r0, #0x32
pop {r4, r5, r6, r7, pc}
_021ED2BE:
ldr r1, [sp, #0xc]
ldr r0, [sp, #8]
cmp r0, r1
bne _021ED2CC
add sp, #0x24
mov r0, #0
pop {r4, r5, r6, r7, pc}
_021ED2CC:
cmp r0, #2
beq _021ED2D4
cmp r1, #2
bne _021ED2DA
_021ED2D4:
add sp, #0x24
mov r0, #0
pop {r4, r5, r6, r7, pc}
_021ED2DA:
add r0, sp, #0x1c
add r1, sp, #0x20
bl MOD05_021ED1E4
cmp r0, #0
bne _021ED2EC
add sp, #0x24
mov r0, #0
pop {r4, r5, r6, r7, pc}
_021ED2EC:
add r0, sp, #8
ldrh r1, [r0, #0x10]
ldrh r0, [r0, #0x12]
cmp r1, r0
bne _021ED30A
ldr r1, [sp, #0x10]
ldr r0, [sp, #0x14]
cmp r1, r0
beq _021ED304
add sp, #0x24
mov r0, #0x46
pop {r4, r5, r6, r7, pc}
_021ED304:
add sp, #0x24
mov r0, #0x32
pop {r4, r5, r6, r7, pc}
_021ED30A:
ldr r1, [sp, #0x10]
ldr r0, [sp, #0x14]
cmp r1, r0
beq _021ED318
add sp, #0x24
mov r0, #0x32
pop {r4, r5, r6, r7, pc}
_021ED318:
mov r0, #0x14
add sp, #0x24
pop {r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021ED320
MOD05_021ED320: ; 0x021ED320
push {r3, lr}
sub sp, #8
add r1, sp, #0
bl MOD05_021EC88C
add r0, sp, #0
bl MOD05_021ED214
add sp, #8
pop {r3, pc}
thumb_func_start MOD05_021ED334
MOD05_021ED334: ; 0x021ED334
push {r3, r4, r5, lr}
add r4, r0, #0
bl FUN_0204B2C0
add r5, r0, #0
add r0, r4, #0
bl FUN_0204B2B4
mov r1, #0x64
mul r1, r0
add r0, r4, #0
add r5, r5, r1
bl FUN_0204B33C
cmp r0, #0
beq _021ED358
mov r0, #0xff
pop {r3, r4, r5, pc}
_021ED358:
ldr r2, _021ED374 ; =0x021F7AF8
mov r1, #0
_021ED35C:
ldrh r0, [r2]
cmp r5, r0
bne _021ED366
mov r0, #0xe6
pop {r3, r4, r5, pc}
_021ED366:
add r1, r1, #1
add r2, r2, #2
cmp r1, #0xd
blo _021ED35C
mov r0, #0xff
pop {r3, r4, r5, pc}
nop
_021ED374: .word 0x021F7AF8
thumb_func_start MOD05_021ED378
MOD05_021ED378: ; 0x021ED378
push {r4, r5, r6, r7, lr}
sub sp, #0x14
add r7, r1, #0
add r1, sp, #8
str r0, [sp]
str r2, [sp, #4]
bl MOD05_021EC88C
mov r6, #0
add r4, r6, #0
add r5, sp, #8
_021ED38E:
ldr r0, [r5]
mov r1, #0xab
mov r2, #0
bl FUN_020672BC
cmp r0, #0
beq _021ED3AC
ldr r0, [sp]
add r1, r4, #0
bl FUN_02023C74
mov r1, #1
bl FUN_02023CA8
add r6, r6, #1
_021ED3AC:
add r4, r4, #1
add r5, r5, #4
cmp r4, #2
blo _021ED38E
ldr r0, [sp]
bl FUN_02023C90
cmp r0, #0
bne _021ED3F8
cmp r6, #2
bne _021ED3F8
ldr r0, [sp]
mov r1, #1
bl FUN_02023C74
bl FUN_02023C84
lsl r0, r0, #0x18
lsr r0, r0, #0x18
cmp r0, #0xff
bne _021ED3F8
ldr r0, [sp]
bl MOD05_021ED320
add r4, r0, #0
bl rand_LC
mov r1, #0x64
mul r1, r0
add r0, r1, #0
ldr r1, _021ED498 ; =0x0000FFFF
bl _u32_div_f
cmp r4, r0
bls _021ED3F8
ldr r0, [sp]
bl MOD05_021EC944
_021ED3F8:
ldr r0, [sp]
bl FUN_02023C98
add r4, r0, #0
ldr r0, [sp]
add r1, r4, #1
bl FUN_02023CC0
ldr r0, [sp, #4]
bl MOD05_021ED334
add r1, r4, #1
cmp r1, r0
bne _021ED490
ldr r0, [sp]
mov r1, #0
bl FUN_02023CC0
add r0, r7, #0
bl MOD05_021ED190
add r6, r0, #0
add r0, r7, #0
mov r5, #0
bl FUN_0206B9AC
cmp r0, #0
bls _021ED490
_021ED430:
add r0, r7, #0
add r1, r5, #0
bl FUN_0206B9B0
mov r1, #0x4c
mov r2, #0
add r4, r0, #0
bl FUN_020671BC
cmp r0, #0
beq _021ED484
add r0, r4, #0
mov r1, #3
mov r2, #0
bl FUN_020671BC
cmp r0, #0
bne _021ED484
add r0, r4, #0
mov r1, #9
mov r2, #0
bl FUN_020671BC
str r0, [sp, #0x10]
cmp r0, #0
beq _021ED47E
cmp r0, r6
blo _021ED46E
sub r0, r0, r6
str r0, [sp, #0x10]
b _021ED472
_021ED46E:
sub r0, r0, #1
str r0, [sp, #0x10]
_021ED472:
add r0, r4, #0
mov r1, #9
add r2, sp, #0x10
bl FUN_02067830
b _021ED484
_021ED47E:
add sp, #0x14
mov r0, #1
pop {r4, r5, r6, r7, pc}
_021ED484:
add r0, r7, #0
add r5, r5, #1
bl FUN_0206B9AC
cmp r5, r0
blo _021ED430
_021ED490:
mov r0, #0
add sp, #0x14
pop {r4, r5, r6, r7, pc}
nop
_021ED498: .word 0x0000FFFF
thumb_func_start MOD05_021ED49C
MOD05_021ED49C: ; 0x021ED49C
push {r3, r4, r5, r6, r7, lr}
add r7, r0, #0
bl FUN_0206B9AC
add r6, r0, #0
mov r5, #0
cmp r6, #0
ble _021ED4DA
_021ED4AC:
add r0, r7, #0
add r1, r5, #0
bl FUN_0206B9B0
mov r1, #0x4c
mov r2, #0
add r4, r0, #0
bl FUN_020671BC
cmp r0, #0
beq _021ED4D4
add r0, r4, #0
mov r1, #9
mov r2, #0
bl FUN_020671BC
cmp r0, #0
bne _021ED4D4
add r0, r4, #0
pop {r3, r4, r5, r6, r7, pc}
_021ED4D4:
add r5, r5, #1
cmp r5, r6
blt _021ED4AC
_021ED4DA:
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021ED4E0
MOD05_021ED4E0: ; 0x021ED4E0
push {r4, lr}
sub sp, #8
add r4, r1, #0
add r1, sp, #0
bl MOD05_021EC88C
ldr r0, [sp]
mov r1, #5
mov r2, #0
bl FUN_020672BC
cmp r0, #0
beq _021ED50E
ldr r2, [sp]
add r0, r4, #0
mov r1, #0
bl FUN_0200ACF8
ldr r2, [sp]
add r0, r4, #0
mov r1, #2
bl FUN_0200AD18
_021ED50E:
ldr r0, [sp, #4]
mov r1, #5
mov r2, #0
bl FUN_020672BC
cmp r0, #0
beq _021ED526
ldr r2, [sp, #4]
add r0, r4, #0
mov r1, #1
bl FUN_0200ACF8
_021ED526:
add sp, #8
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021ED52C
MOD05_021ED52C: ; 0x021ED52C
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x10
add r4, r1, #0
add r1, sp, #0x18
ldrb r6, [r1, #0x10]
add r5, r0, #0
add r7, r2, #0
add r1, r6, #0
str r3, [sp, #8]
bl FUN_02023C74
str r0, [sp, #0xc]
add r0, r5, #0
add r1, r6, #0
bl MOD05_021EC458
add r5, r0, #0
ldr r0, [sp, #0x2c]
add r1, r4, #0
add r2, r5, #0
bl FUN_0200ACF8
ldr r0, [sp, #0xc]
bl FUN_02023C84
add r1, r0, #0
add r0, r5, #0
bl MOD05_021EC744
lsl r0, r0, #0x18
lsr r2, r0, #0x18
mov r0, #0
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
ldr r0, [sp, #0x2c]
add r1, r7, #0
mov r3, #3
bl FUN_0200AD38
add r0, r5, #0
mov r1, #0x6f
mov r2, #0
bl FUN_020672BC
lsl r0, r0, #0x18
lsr r4, r0, #0x18
cmp r4, #2
beq _021ED5B4
add r0, r5, #0
mov r1, #5
mov r2, #0
bl FUN_020672BC
lsl r0, r0, #0x10
lsr r0, r0, #0x10
cmp r0, #0x1d
beq _021ED5A4
cmp r0, #0x20
bne _021ED5B4
_021ED5A4:
add r0, r5, #0
mov r1, #0x4d
mov r2, #0
bl FUN_020672BC
cmp r0, #0
bne _021ED5B4
mov r4, #2
_021ED5B4:
ldr r0, [sp, #0x2c]
ldr r1, [sp, #8]
add r2, r4, #0
bl FUN_0200B3C0
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021ED5C4
MOD05_021ED5C4: ; 0x021ED5C4
push {r3, r4, r5, lr}
add r5, r2, #0
bl FUN_0206B9B0
add r4, r0, #0
bl FUN_020690E4
add r2, r0, #0
add r0, r5, #0
mov r1, #0
bl FUN_0200ACF8
add r0, r4, #0
mov r1, #5
mov r2, #0
bl FUN_020671BC
lsl r0, r0, #0x10
lsr r0, r0, #0x10
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021ED5EC
MOD05_021ED5EC: ; 0x021ED5EC
push {r4, lr}
add r4, r0, #0
bl FUN_02023C90
cmp r0, #0
beq _021ED5FC
mov r0, #1
pop {r4, pc}
_021ED5FC:
add r0, r4, #0
bl MOD05_021EC464
cmp r0, #0
beq _021ED60E
add r0, r0, #1
lsl r0, r0, #0x18
lsr r0, r0, #0x18
pop {r4, pc}
_021ED60E:
mov r0, #0
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021ED614
MOD05_021ED614: ; 0x021ED614
cmp r0, #0x14
bhi _021ED620
bhs _021ED632
cmp r0, #0
beq _021ED62E
b _021ED63E
_021ED620:
cmp r0, #0x32
bhi _021ED628
beq _021ED636
b _021ED63E
_021ED628:
cmp r0, #0x46
beq _021ED63A
b _021ED63E
_021ED62E:
mov r0, #3
bx lr
_021ED632:
mov r0, #2
bx lr
_021ED636:
mov r0, #1
bx lr
_021ED63A:
mov r0, #0
bx lr
_021ED63E:
mov r0, #0
bx lr
.balign 4, 0
thumb_func_start MOD05_021ED644
MOD05_021ED644: ; 0x021ED644
push {r3, lr}
bl MOD05_021ED320
bl MOD05_021ED614
pop {r3, pc}
thumb_func_start MOD05_021ED650
MOD05_021ED650: ; 0x021ED650
push {r4, r5, r6, r7, lr}
sub sp, #0x3c
add r4, r0, #0
add r5, r1, #0
mov r0, #8
bl FUN_020219F4
str r0, [sp, #0x10]
add r0, r5, #0
bl FUN_020669C0
add r6, r0, #0
add r0, r4, #0
mov r1, #5
mov r2, #0
bl FUN_020671BC
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp, #0x14]
mov r5, #0
add r7, sp, #0x34
_021ED67C:
add r1, r5, #0
add r0, r4, #0
add r1, #0x36
mov r2, #0
bl FUN_020671BC
lsl r1, r5, #1
strh r0, [r7, r1]
add r1, r5, #0
add r0, r4, #0
add r1, #0x3a
mov r2, #0
bl FUN_020671BC
add r1, sp, #0x30
strb r0, [r1, r5]
add r0, r5, #1
lsl r0, r0, #0x18
lsr r5, r0, #0x18
cmp r5, #4
blo _021ED67C
mov r1, #0
add r0, r4, #0
add r2, r1, #0
bl FUN_020671BC
add r7, r0, #0
mov r5, #0
_021ED6B4:
add r1, r5, #0
add r0, r4, #0
add r1, #0x46
mov r2, #0
bl FUN_020671BC
add r1, sp, #0x24
add r1, #2
strb r0, [r1, r5]
add r0, r5, #1
lsl r0, r0, #0x18
lsr r5, r0, #0x18
cmp r5, #6
blo _021ED6B4
add r0, r4, #0
mov r1, #0xc
mov r2, #0
bl FUN_020671BC
add r1, sp, #0x18
strb r0, [r1, #9]
add r0, r4, #0
mov r1, #0x79
mov r2, #0
bl FUN_020671BC
add r1, sp, #0x18
strb r0, [r1, #8]
add r0, r4, #0
mov r1, #0xb
mov r2, #0
bl FUN_020671BC
add r1, sp, #0x18
strb r0, [r1, #7]
add r0, r4, #0
mov r1, #0x99
mov r2, #0
bl FUN_020671BC
add r1, sp, #0x18
strb r0, [r1, #0xa]
add r0, r4, #0
mov r1, #0x6e
mov r2, #0
bl FUN_020671BC
add r1, sp, #0x18
strb r0, [r1, #5]
ldr r2, [sp, #0x10]
add r0, r4, #0
mov r1, #0x90
bl FUN_020671BC
add r0, r4, #0
mov r1, #0x9c
mov r2, #0
bl FUN_020671BC
add r1, sp, #0x18
strb r0, [r1, #3]
add r0, r4, #0
mov r1, #7
mov r2, #0
bl FUN_020671BC
str r0, [sp, #0x2c]
add r0, r4, #0
mov r1, #0x70
mov r2, #0
bl FUN_020671BC
add r1, sp, #0x18
strb r0, [r1, #4]
ldr r1, _021ED93C ; =0x000001EA
ldr r0, [sp, #0x14]
cmp r0, r1
bne _021ED788
add r0, r4, #0
mov r1, #0x97
mov r2, #0
bl FUN_020671BC
add r5, r0, #0
mov r0, #2
mov r1, #1
bl FUN_02015CF8
cmp r5, r0
bne _021ED788
ldr r0, [sp, #0x2c]
add r1, r7, #0
bl FUN_02068AAC
cmp r0, #0
beq _021ED788
_021ED774:
add r0, r7, #0
bl rand_ALT
add r7, r0, #0
ldr r0, [sp, #0x2c]
add r1, r7, #0
bl FUN_02068AAC
cmp r0, #0
bne _021ED774
_021ED788:
mov r2, #1
str r2, [sp]
str r7, [sp, #4]
mov r0, #0
str r0, [sp, #8]
str r0, [sp, #0xc]
ldr r1, [sp, #0x14]
add r0, r6, #0
mov r3, #0x20
bl CreateMon
mov r5, #0
add r7, sp, #0x34
_021ED7A2:
add r1, r5, #0
lsl r2, r5, #1
add r0, r6, #0
add r1, #0x36
add r2, r7, r2
bl FUN_02067830
add r1, r5, #0
add r2, sp, #0x30
add r0, r6, #0
add r1, #0x3a
add r2, r2, r5
bl FUN_02067830
add r0, r5, #1
lsl r0, r0, #0x18
lsr r5, r0, #0x18
cmp r5, #4
blo _021ED7A2
add r7, sp, #0x24
mov r5, #0
add r7, #2
_021ED7CE:
add r1, r5, #0
add r0, r6, #0
add r1, #0x46
add r2, r7, r5
bl FUN_02067830
add r0, r5, #1
lsl r0, r0, #0x18
lsr r5, r0, #0x18
cmp r5, #6
blo _021ED7CE
add r2, sp, #0x20
add r0, r6, #0
mov r1, #0xc
add r2, #1
bl FUN_02067830
add r0, r6, #0
mov r1, #0x79
add r2, sp, #0x20
bl FUN_02067830
add r2, sp, #0x1c
add r0, r6, #0
mov r1, #0xb
add r2, #3
bl FUN_02067830
add r2, sp, #0x1c
mov r1, #0x78
add r0, sp, #0x18
strb r1, [r0, #6]
add r0, r6, #0
mov r1, #9
add r2, #2
bl FUN_02067830
add r2, sp, #0x20
add r0, r6, #0
mov r1, #0x99
add r2, #2
bl FUN_02067830
add r2, sp, #0x1c
add r0, r6, #0
mov r1, #0x6e
add r2, #1
bl FUN_02067830
ldr r2, [sp, #0x10]
add r0, r6, #0
mov r1, #0x90
bl FUN_02067830
add r2, sp, #0x18
add r0, r6, #0
mov r1, #0x9c
add r2, #3
bl FUN_02067830
add r0, r6, #0
mov r1, #7
add r2, sp, #0x2c
bl FUN_02067830
add r0, r6, #0
mov r1, #0x70
add r2, sp, #0x1c
bl FUN_02067830
add r0, r4, #0
mov r1, #0x97
mov r2, #0
bl FUN_020671BC
add r1, sp, #0x18
strh r0, [r1, #0xc]
add r0, r4, #0
mov r1, #0x91
mov r2, #0
bl FUN_020671BC
add r1, sp, #0x18
strb r0, [r1, #2]
add r0, r4, #0
mov r1, #0x92
mov r2, #0
bl FUN_020671BC
add r1, sp, #0x18
strb r0, [r1, #1]
add r0, r4, #0
mov r1, #0x93
mov r2, #0
bl FUN_020671BC
add r1, sp, #0x18
strb r0, [r1]
add r0, r6, #0
mov r1, #0x97
add r2, sp, #0x24
bl FUN_02067830
add r2, sp, #0x18
add r0, r6, #0
mov r1, #0x91
add r2, #2
bl FUN_02067830
add r2, sp, #0x18
add r0, r6, #0
mov r1, #0x92
add r2, #1
bl FUN_02067830
add r0, r6, #0
mov r1, #0x93
add r2, sp, #0x18
bl FUN_02067830
add r0, r4, #0
mov r1, #0x98
mov r2, #0
bl FUN_020671BC
add r1, sp, #0x18
strh r0, [r1, #0xc]
add r0, r4, #0
mov r1, #0x94
mov r2, #0
bl FUN_020671BC
add r1, sp, #0x18
strb r0, [r1, #2]
add r0, r4, #0
mov r1, #0x95
mov r2, #0
bl FUN_020671BC
add r1, sp, #0x18
strb r0, [r1, #1]
add r0, r4, #0
mov r1, #0x96
mov r2, #0
bl FUN_020671BC
add r1, sp, #0x18
strb r0, [r1]
add r0, r6, #0
mov r1, #0x98
add r2, sp, #0x24
bl FUN_02067830
add r2, sp, #0x18
add r0, r6, #0
mov r1, #0x94
add r2, #2
bl FUN_02067830
add r2, sp, #0x18
add r0, r6, #0
mov r1, #0x95
add r2, #1
bl FUN_02067830
add r0, r6, #0
mov r1, #0x96
add r2, sp, #0x18
bl FUN_02067830
add r0, r6, #0
add r1, r4, #0
bl FUN_02069B88
ldr r0, [sp, #0x10]
bl FUN_02021A20
add r0, r6, #0
bl FreeToHeap
add sp, #0x3c
pop {r4, r5, r6, r7, pc}
nop
_021ED93C: .word 0x000001EA
thumb_func_start MOD05_021ED940
MOD05_021ED940: ; 0x021ED940
push {r4, r5, lr}
sub sp, #0x1c
mov r3, #0x46
add r2, sp, #0
strb r3, [r2, #3]
mov r5, #0
strb r5, [r2, #2]
mov r3, #4
strb r3, [r2, #1]
add r4, r0, #0
strb r5, [r2]
bl MOD05_021ED650
add r2, sp, #0
add r0, r4, #0
mov r1, #0x4c
add r2, #3
bl FUN_02067830
add r0, r4, #0
mov r1, #5
add r2, r5, #0
bl FUN_020671BC
lsl r0, r0, #0x10
lsr r0, r0, #0x10
add r1, r5, #0
add r2, sp, #4
bl FUN_0200A99C
add r0, r4, #0
mov r1, #0x74
add r2, sp, #4
bl FUN_02067830
add r2, sp, #0
add r0, r4, #0
mov r1, #0x4d
add r2, #2
bl FUN_02067830
add r2, sp, #0
add r0, r4, #0
mov r1, #0x9a
add r2, #1
bl FUN_02067830
add r0, r4, #0
mov r1, #0x9b
add r2, sp, #0
bl FUN_02067830
add r0, r4, #0
bl FUN_02066ED8
add sp, #0x1c
pop {r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021ED9B4
MOD05_021ED9B4: ; 0x021ED9B4
push {r3, lr}
bl MOD05_021ED214
bl MOD05_021ED614
pop {r3, pc}
thumb_func_start MOD05_021ED9C0
MOD05_021ED9C0: ; 0x021ED9C0
push {r3, r4, r5, lr}
mov r2, #0
mov r1, #4
add r3, r2, #0
add r5, r0, #0
bl MOD05_021E4BE8
add r4, r0, #0
str r5, [r4]
bl MOD05_021ED9EC
add r0, r4, #0
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021ED9DC
MOD05_021ED9DC: ; 0x021ED9DC
push {r4, lr}
add r4, r0, #0
bl MOD05_021EDA28
add r0, r4, #0
bl MOD05_021E4C00
pop {r4, pc}
thumb_func_start MOD05_021ED9EC
MOD05_021ED9EC: ; 0x021ED9EC
push {r3, r4, lr}
sub sp, #0xc
add r4, r0, #0
ldr r0, [r4]
mov r1, #4
mov r2, #0x57
bl MOD05_021E5078
ldr r0, [r4]
mov r1, #3
mov r2, #6
mov r3, #1
bl MOD05_021E50D4
mov r0, #3
str r0, [sp]
mov r3, #0
mov r1, #4
ldr r0, _021EDA24 ; =0x021F8A48
str r3, [sp, #4]
str r0, [sp, #8]
ldr r0, [r4]
add r2, r1, #0
bl MOD05_021E4EFC
add sp, #0xc
pop {r3, r4, pc}
nop
_021EDA24: .word 0x021F8A48
thumb_func_start MOD05_021EDA28
MOD05_021EDA28: ; 0x021EDA28
push {r4, lr}
add r4, r0, #0
ldr r0, [r4]
mov r1, #4
bl MOD05_021E50A0
ldr r0, [r4]
mov r1, #3
bl MOD05_021E5114
ldr r0, [r4]
mov r1, #4
bl MOD05_021E506C
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021EDA48
MOD05_021EDA48: ; 0x021EDA48
push {r4, r5, lr}
sub sp, #0x24
add r5, r0, #0
bl MOD05_021E4C24
add r4, r0, #0
add r0, r5, #0
bl FUN_02058738
str r0, [sp, #0x14]
add r0, r4, #0
mov r1, #0x18
str r4, [sp, #0x18]
bl MOD05_021E4C08
str r0, [sp, #0x1c]
add r1, sp, #8
mov r0, #0
str r0, [r1]
str r0, [r1, #4]
str r0, [r1, #8]
add r0, r5, #0
mov r1, #2
str r5, [sp, #0x20]
bl FUN_0205829C
add r1, sp, #0x14
str r1, [sp]
str r0, [sp, #4]
ldr r1, _021EDA94 ; =0x021F8A34
add r0, r4, #0
add r2, sp, #8
mov r3, #0
bl MOD05_021E4DC4
add sp, #0x24
pop {r4, r5, pc}
nop
_021EDA94: .word 0x021F8A34
thumb_func_start MOD05_021EDA98
MOD05_021EDA98: ; 0x021EDA98
push {r4, r5, lr}
sub sp, #0xc
add r4, r1, #0
add r2, sp, #0
mov r1, #0
str r1, [r2]
str r1, [r2, #4]
add r5, r0, #0
str r1, [r2, #8]
bl FUN_0206475C
add r2, r4, #0
add r3, r0, #0
add r2, #0x10
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldr r0, [r4, #0x1c]
bl FUN_02058448
str r0, [r4, #4]
ldr r0, [r4, #0x1c]
bl FUN_02058450
str r0, [r4, #8]
add r0, r5, #0
add r1, sp, #0
bl FUN_0206476C
ldr r0, [r4, #0x14]
mov r1, #4
add r2, sp, #0
bl MOD05_021E4EE4
str r0, [r4, #0x20]
mov r0, #1
add sp, #0xc
pop {r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021EDAE8
MOD05_021EDAE8: ; 0x021EDAE8
ldr r3, _021EDAF0 ; =FUN_0201F744
ldr r0, [r1, #0x20]
bx r3
nop
_021EDAF0: .word FUN_0201F744
thumb_func_start MOD05_021EDAF4
MOD05_021EDAF4: ; 0x021EDAF4
push {r4, lr}
add r2, r1, #0
add r4, r0, #0
ldr r0, [r2, #0x1c]
ldr r1, [r2, #4]
ldr r2, [r2, #8]
bl FUN_020582A8
cmp r0, #0
bne _021EDB0E
add r0, r4, #0
bl MOD05_021E4DE4
_021EDB0E:
pop {r4, pc}
thumb_func_start MOD05_021EDB10
MOD05_021EDB10: ; 0x021EDB10
push {r4, r5, r6, lr}
sub sp, #0x18
add r5, r1, #0
ldr r4, [r5, #0x1c]
ldr r1, [r5, #4]
add r6, r0, #0
ldr r2, [r5, #8]
add r0, r4, #0
bl FUN_020582A8
cmp r0, #0
bne _021EDB32
add r0, r6, #0
bl MOD05_021E4DE4
add sp, #0x18
pop {r4, r5, r6, pc}
_021EDB32:
add r0, r4, #0
add r1, sp, #0xc
bl FUN_02058B5C
add r0, r4, #0
add r1, sp, #0
bl FUN_02058B84
ldr r1, [sp, #0xc]
ldr r0, [sp]
add r0, r1, r0
str r0, [sp, #0xc]
ldr r1, [sp, #0x10]
ldr r0, [sp, #4]
add r0, r1, r0
str r0, [sp, #0x10]
ldr r1, [sp, #0x14]
ldr r0, [sp, #8]
add r1, r1, r0
mov r0, #3
lsl r0, r0, #0xe
str r1, [sp, #0x14]
add r0, r1, r0
str r0, [sp, #0x14]
ldr r0, [r5, #0x20]
add r1, sp, #0xc
bl FUN_0201F7C8
add sp, #0x18
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_start MOD05_021EDB70
MOD05_021EDB70: ; 0x021EDB70
push {r3, r4, r5, lr}
mov r2, #0
mov r1, #0x60
add r3, r2, #0
add r5, r0, #0
bl MOD05_021E4BE8
add r4, r0, #0
str r5, [r4]
bl MOD05_021EDB9C
add r0, r4, #0
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021EDB8C
MOD05_021EDB8C: ; 0x021EDB8C
push {r4, lr}
add r4, r0, #0
bl MOD05_021EDBBC
add r0, r4, #0
bl MOD05_021E4C00
pop {r4, pc}
thumb_func_start MOD05_021EDB9C
MOD05_021EDB9C: ; 0x021EDB9C
push {r3, lr}
sub sp, #8
add r3, r0, #0
add r0, #0x58
str r0, [sp]
add r0, r3, #0
add r0, #0x5c
str r0, [sp, #4]
ldr r0, [r3]
mov r1, #0x50
mov r2, #0
add r3, r3, #4
bl MOD05_021E51EC
add sp, #8
pop {r3, pc}
thumb_func_start MOD05_021EDBBC
MOD05_021EDBBC: ; 0x021EDBBC
ldr r3, _021EDBC4 ; =MOD05_021E4C00
ldr r0, [r0, #0x5c]
bx r3
nop
_021EDBC4: .word MOD05_021E4C00
thumb_func_start MOD05_021EDBC8
MOD05_021EDBC8: ; 0x021EDBC8
push {r4, r5, r6, lr}
sub sp, #0x20
add r2, sp, #8
mov r1, #0
str r1, [r2]
str r1, [r2, #4]
add r5, r0, #0
str r1, [r2, #8]
bl FUN_020553A0
add r4, r0, #0
bl MOD05_021E4C24
add r6, r0, #0
mov r1, #0x10
str r6, [sp, #0x14]
bl MOD05_021E4C08
str r0, [sp, #0x18]
add r0, r4, #0
mov r1, #2
str r5, [sp, #0x1c]
bl FUN_0205829C
add r1, sp, #0x14
str r1, [sp]
str r0, [sp, #4]
ldr r1, _021EDC10 ; =0x021F8A6C
add r0, r6, #0
add r2, sp, #8
mov r3, #0
bl MOD05_021E4DC4
add sp, #0x20
pop {r4, r5, r6, pc}
nop
_021EDC10: .word 0x021F8A6C
thumb_func_start MOD05_021EDC14
MOD05_021EDC14: ; 0x021EDC14
push {r3, r4, r5, lr}
add r5, r1, #0
bl FUN_0206475C
add r4, r0, #0
add r3, r4, #0
add r2, r5, #0
ldmia r3!, {r0, r1}
add r2, #0x24
stmia r2!, {r0, r1}
ldr r0, [r3]
str r0, [r2]
ldr r0, [r4, #8]
bl FUN_020553A0
mov r1, #0
mvn r1, r1
add r4, r0, #0
str r1, [r5, #4]
bl FUN_02058448
str r0, [r5, #0x14]
add r0, r4, #0
bl FUN_02058450
str r0, [r5, #0x18]
mov r0, #1
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021EDC4C
MOD05_021EDC4C: ; 0x021EDC4C
bx lr
.balign 4, 0
thumb_func_start MOD05_021EDC50
MOD05_021EDC50: ; 0x021EDC50
push {r4, r5, r6, r7, lr}
sub sp, #0x24
add r5, r1, #0
str r0, [sp]
ldr r0, [r5, #0x2c]
str r0, [sp, #4]
bl FUN_020553A0
ldr r1, [r5, #0x14]
ldr r2, [r5, #0x18]
add r6, r0, #0
bl FUN_020582A8
cmp r0, #0
bne _021EDC78
ldr r0, [sp]
bl MOD05_021E4DE4
add sp, #0x24
pop {r4, r5, r6, r7, pc}
_021EDC78:
ldr r7, [r5, #4]
add r0, r6, #0
bl FUN_02058720
strb r0, [r5, #8]
ldrb r0, [r5, #8]
bl MOD05_021EDDF4
str r0, [r5, #4]
mov r0, #0
str r0, [r5]
ldr r4, [r5, #4]
sub r0, r0, #1
cmp r4, r0
beq _021EDCA0
ldr r0, [sp, #4]
bl FUN_020552F8
cmp r4, r0
beq _021EDCAE
_021EDCA0:
mov r0, #0
str r0, [r5, #0x1c]
str r0, [r5, #0x20]
mov r0, #1
add sp, #0x24
str r0, [r5]
pop {r4, r5, r6, r7, pc}
_021EDCAE:
cmp r7, r4
beq _021EDCB8
mov r0, #0
str r0, [r5, #0x1c]
str r0, [r5, #0x20]
_021EDCB8:
add r0, r6, #0
bl FUN_02058B2C
add r4, r0, #0
ldr r0, [r5, #4]
bl FUN_02059BF4
add r7, r0, #0
add r0, r6, #0
bl FUN_02058B4C
str r0, [sp, #8]
ldr r0, [r5, #4]
bl FUN_02059C00
add r2, r0, #0
ldr r1, [sp, #8]
add r0, r4, r7
add r1, r1, r2
add r2, sp, #0xc
bl FUN_02059E60
add r0, r6, #0
add r1, sp, #0x18
bl FUN_02058B5C
ldr r0, [sp, #0x1c]
add r1, sp, #0xc
str r0, [sp, #0x10]
ldr r0, [sp]
bl FUN_0206476C
add sp, #0x24
pop {r4, r5, r6, r7, pc}
thumb_func_start MOD05_021EDCFC
MOD05_021EDCFC: ; 0x021EDCFC
push {r3, r4, r5, r6, lr}
sub sp, #0x3c
add r4, r1, #0
add r6, r0, #0
ldr r0, [r4]
cmp r0, #1
beq _021EDDE2
mov r0, #0
ldr r1, [r4, #4]
mvn r0, r0
cmp r1, r0
beq _021EDDE2
ldr r0, [r4, #0x1c]
add r0, r0, #1
str r0, [r4, #0x1c]
cmp r0, #0xf
ble _021EDD34
mov r0, #0
str r0, [r4, #0x1c]
ldr r0, [r4, #0x20]
add r0, r0, #1
lsr r2, r0, #0x1f
lsl r1, r0, #0x1f
sub r1, r1, r2
mov r0, #0x1f
ror r1, r0
add r0, r2, r1
str r0, [r4, #0x20]
_021EDD34:
ldr r3, _021EDDE8 ; =0x021F8A60
add r2, sp, #0x24
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldr r0, [r3]
ldr r5, _021EDDEC ; =0x021F8A80
str r0, [r2]
add r3, sp, #0
mov r2, #4
_021EDD46:
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
sub r2, r2, #1
bne _021EDD46
ldr r0, [r5]
mov r2, #0x18
str r0, [r3]
ldr r1, [r4, #4]
ldr r3, _021EDDF0 ; =0x021F8AA4
add r0, r1, #0
mul r0, r2
add r0, r3, r0
ldr r5, [r4, #0x20]
mov r3, #0xc
mul r3, r5
add r5, r0, r3
cmp r1, #3
bhi _021EDDB4
add r0, r1, r1
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021EDD76: ; jump table
.short _021EDD7E - _021EDD76 - 2 ; case 0
.short _021EDD8C - _021EDD76 - 2 ; case 1
.short _021EDD9A - _021EDD76 - 2 ; case 2
.short _021EDDA8 - _021EDD76 - 2 ; case 3
_021EDD7E:
mov r1, #0
add r0, sp, #0
mov r2, #0xb4
add r3, r1, #0
bl FUN_0201CB20
b _021EDDB4
_021EDD8C:
mov r1, #0
add r0, sp, #0
add r2, r1, #0
add r3, r1, #0
bl FUN_0201CB20
b _021EDDB4
_021EDD9A:
mov r1, #0
add r0, sp, #0
add r2, #0xf6
add r3, r1, #0
bl FUN_0201CB20
b _021EDDB4
_021EDDA8:
mov r1, #0
add r0, sp, #0
mov r2, #0x5a
add r3, r1, #0
bl FUN_0201CB20
_021EDDB4:
add r0, r6, #0
add r1, sp, #0x30
bl FUN_0206477C
ldr r1, [sp, #0x30]
ldr r0, [r5]
add r2, sp, #0
add r0, r1, r0
str r0, [sp, #0x30]
ldr r1, [sp, #0x34]
ldr r0, [r5, #4]
add r3, sp, #0x24
add r0, r1, r0
str r0, [sp, #0x34]
ldr r1, [sp, #0x38]
ldr r0, [r5, #8]
add r0, r1, r0
str r0, [sp, #0x38]
ldr r0, [r4, #0x28]
add r1, sp, #0x30
add r0, r0, #4
bl FUN_0201B26C
_021EDDE2:
add sp, #0x3c
pop {r3, r4, r5, r6, pc}
nop
_021EDDE8: .word 0x021F8A60
_021EDDEC: .word 0x021F8A80
_021EDDF0: .word 0x021F8AA4
thumb_func_start MOD05_021EDDF4
MOD05_021EDDF4: ; 0x021EDDF4
push {r4, lr}
add r4, r0, #0
bl FUN_020547D4
cmp r0, #0
beq _021EDE04
mov r0, #0
pop {r4, pc}
_021EDE04:
add r0, r4, #0
bl FUN_020547E0
cmp r0, #0
beq _021EDE12
mov r0, #1
pop {r4, pc}
_021EDE12:
add r0, r4, #0
bl FUN_020547C8
cmp r0, #0
beq _021EDE20
mov r0, #2
pop {r4, pc}
_021EDE20:
add r0, r4, #0
bl FUN_020547BC
cmp r0, #0
beq _021EDE2E
mov r0, #3
pop {r4, pc}
_021EDE2E:
mov r0, #0
mvn r0, r0
pop {r4, pc}
thumb_func_start MOD05_021EDE34
MOD05_021EDE34: ; 0x021EDE34
push {r4, r5, r6, lr}
add r6, r2, #0
add r5, r1, #0
add r1, r6, #0
bl _s32_div_f
add r4, r1, #0
add r0, r5, #0
add r1, r6, #0
bl _s32_div_f
cmp r4, r1
bne _021EDE52
mov r0, #1
pop {r4, r5, r6, pc}
_021EDE52:
mov r0, #0
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_start MOD05_021EDE58
MOD05_021EDE58: ; 0x021EDE58
push {r4, r5, r6, lr}
add r6, r2, #0
add r5, r1, #0
add r1, r6, #0
bl _s32_div_f
add r4, r0, #0
add r0, r5, #0
add r1, r6, #0
bl _s32_div_f
cmp r4, r0
bne _021EDE76
mov r0, #1
pop {r4, r5, r6, pc}
_021EDE76:
mov r0, #0
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_start MOD05_021EDE7C
MOD05_021EDE7C: ; 0x021EDE7C
push {r3, r4, r5, lr}
add r5, r0, #0
mov r0, #0x30
add r4, r1, #0
mul r4, r0
add r1, r5, r4
ldr r0, [r1, #0x14]
cmp r0, #0
beq _021EDE94
ldr r0, [r1, #0xc]
bl MOD05_021EF8F8
_021EDE94:
add r1, r5, r4
ldr r0, [r1, #0x18]
cmp r0, #0
beq _021EDEA2
ldr r0, [r1, #0x10]
bl MOD05_021F4444
_021EDEA2:
mov r1, #1
add r0, r5, r4
str r1, [r0, #0x28]
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021EDEAC
MOD05_021EDEAC: ; 0x021EDEAC
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0x10]
cmp r0, #0
beq _021EDEBC
ldr r0, [r4, #8]
bl MOD05_021EF8F8
_021EDEBC:
ldr r0, [r4, #0x14]
cmp r0, #0
beq _021EDEC8
ldr r0, [r4, #0xc]
bl MOD05_021F4444
_021EDEC8:
mov r0, #0
str r0, [r4, #0x10]
str r0, [r4, #0x14]
pop {r4, pc}
thumb_func_start MOD05_021EDED0
MOD05_021EDED0: ; 0x021EDED0
push {r3, r4, r5, r6, r7, lr}
add r5, r2, #0
asr r2, r0, #4
lsr r2, r2, #0x1b
add r2, r0, r2
asr r7, r2, #5
asr r2, r1, #4
lsr r2, r2, #0x1b
add r2, r1, r2
asr r6, r2, #5
ldr r2, [sp, #0x18]
str r3, [sp]
ldr r4, [sp, #0x1c]
bl MOD05_021EEE08
ldr r1, [sp, #0x18]
bl MOD05_021EF620
add r1, r6, #0
mul r1, r5
add r1, r7, r1
cmp r0, #3
bhi _021EDFB6
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021EDF0A: ; jump table
.short _021EDF12 - _021EDF0A - 2 ; case 0
.short _021EDF38 - _021EDF0A - 2 ; case 1
.short _021EDF60 - _021EDF0A - 2 ; case 2
.short _021EDF8A - _021EDF0A - 2 ; case 3
_021EDF12:
sub r2, r1, r5
str r1, [r4, #0xc]
sub r0, r2, #1
str r0, [r4]
str r2, [r4, #4]
sub r0, r1, #1
str r0, [r4, #8]
sub r0, r7, #1
bpl _021EDF2C
mov r0, #0
mvn r0, r0
str r0, [r4]
str r0, [r4, #8]
_021EDF2C:
sub r0, r6, #1
bpl _021EDFBA
mov r0, #0
mvn r0, r0
str r0, [r4, #4]
pop {r3, r4, r5, r6, r7, pc}
_021EDF38:
str r1, [r4, #8]
sub r0, r1, r5
str r0, [r4]
add r0, r0, #1
str r0, [r4, #4]
add r0, r1, #1
str r0, [r4, #0xc]
add r0, r7, #1
cmp r0, r5
blt _021EDF54
mov r0, #0
mvn r0, r0
str r0, [r4, #4]
str r0, [r4, #0xc]
_021EDF54:
sub r0, r6, #1
bpl _021EDFBA
mov r0, #0
mvn r0, r0
str r0, [r4]
pop {r3, r4, r5, r6, r7, pc}
_021EDF60:
str r1, [r4, #4]
sub r0, r1, #1
add r1, r1, r5
str r0, [r4]
sub r0, r1, #1
str r0, [r4, #8]
str r1, [r4, #0xc]
sub r0, r7, #1
bpl _021EDF7A
mov r0, #0
mvn r0, r0
str r0, [r4]
str r0, [r4, #8]
_021EDF7A:
ldr r0, [sp]
add r1, r6, #1
cmp r1, r0
ble _021EDFBA
mov r0, #0
mvn r0, r0
str r0, [r4, #0xc]
pop {r3, r4, r5, r6, r7, pc}
_021EDF8A:
str r1, [r4]
add r0, r1, #1
str r0, [r4, #4]
add r0, r1, r5
str r0, [r4, #8]
add r0, r0, #1
str r0, [r4, #0xc]
add r0, r7, #1
cmp r0, r5
blt _021EDFA6
mov r0, #0
mvn r0, r0
str r0, [r4, #4]
str r0, [r4, #0xc]
_021EDFA6:
ldr r0, [sp]
add r1, r6, #1
cmp r1, r0
ble _021EDFBA
mov r0, #0
mvn r0, r0
str r0, [r4]
pop {r3, r4, r5, r6, r7, pc}
_021EDFB6:
bl ErrorHandling
_021EDFBA:
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD05_021EDFBC
MOD05_021EDFBC: ; 0x021EDFBC
push {r3, r4, r5, r6, r7, lr}
mov r6, #0
add r5, r0, #0
sub r7, r6, #1
_021EDFC4:
ldr r1, _021EE03C ; =0x0000086C
mov r0, #4
bl AllocFromHeap
lsl r4, r6, #2
add r1, r5, r4
add r1, #0x90
str r0, [r1]
add r0, r5, r4
add r0, #0x90
ldr r2, [r0]
ldr r0, _021EE040 ; =0x00000864
mov r1, #0
str r1, [r2, r0]
add r2, r5, r4
add r2, #0x90
ldr r3, [r2]
ldr r2, _021EE044 ; =0x00000854
ldr r1, [r5]
add r0, r6, #0
add r2, r3, r2
bl MOD05_021F3C60
add r2, r5, r4
add r2, #0x90
ldr r3, [r2]
ldr r2, _021EE048 ; =0x00000858
ldr r1, [r5]
add r0, r6, #0
add r2, r3, r2
bl MOD05_021F3C68
mov r0, #4
bl MOD05_021E7C00
add r1, r5, r4
add r1, #0x90
ldr r2, [r1]
ldr r1, _021EE04C ; =0x00000868
str r0, [r2, r1]
add r0, r5, r4
add r0, #0x90
ldr r1, [r0]
mov r0, #0x86
lsl r0, r0, #4
str r7, [r1, r0]
add r1, r5, r4
add r1, #0x90
mov r2, #2
ldr r1, [r1]
add r0, r7, #0
lsl r2, r2, #0xa
bl MIi_CpuClearFast
add r0, r6, #1
lsl r0, r0, #0x18
lsr r6, r0, #0x18
cmp r6, #4
blo _021EDFC4
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_021EE03C: .word 0x0000086C
_021EE040: .word 0x00000864
_021EE044: .word 0x00000854
_021EE048: .word 0x00000858
_021EE04C: .word 0x00000868
thumb_func_start MOD05_021EE050
MOD05_021EE050: ; 0x021EE050
push {r3, r4, r5, r6, r7, lr}
mov r6, #0
add r5, r0, #0
add r7, r6, #0
_021EE058:
ldr r1, _021EE0B0 ; =0x0000086C
mov r0, #4
bl AllocFromHeap
lsl r4, r6, #2
add r1, r5, r4
add r1, #0x90
str r0, [r1]
add r0, r5, r4
add r0, #0x90
ldr r1, [r0]
ldr r0, _021EE0B4 ; =0x00000864
add r2, r5, r4
str r7, [r1, r0]
add r2, #0x90
ldr r3, [r2]
ldr r2, _021EE0B8 ; =0x00000854
ldr r1, [r5]
add r0, r6, #0
add r2, r3, r2
bl MOD05_021F3C60
mov r0, #4
bl MOD05_021E7C00
add r1, r5, r4
add r1, #0x90
ldr r2, [r1]
ldr r1, _021EE0BC ; =0x00000868
str r0, [r2, r1]
add r0, r5, r4
add r0, #0x90
ldr r2, [r0]
mov r1, #0
mov r0, #0x86
mvn r1, r1
lsl r0, r0, #4
str r1, [r2, r0]
add r0, r6, #1
lsl r0, r0, #0x18
lsr r6, r0, #0x18
cmp r6, #4
blo _021EE058
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_021EE0B0: .word 0x0000086C
_021EE0B4: .word 0x00000864
_021EE0B8: .word 0x00000854
_021EE0BC: .word 0x00000868
thumb_func_start MOD05_021EE0C0
MOD05_021EE0C0: ; 0x021EE0C0
push {r3, r4, r5, r6, r7, lr}
add r6, r0, #0
add r7, r1, #0
add r5, r2, #0
cmp r6, #0
beq _021EE0E6
mov r0, #4
mov r1, #0x10
bl AllocFromHeapAtEnd
add r4, r0, #0
add r0, r6, #0
add r1, r7, #0
mov r2, #0
mov r3, #0x10
str r4, [sp]
bl NARC_ReadFromMember
b _021EE0FC
_021EE0E6:
bl ErrorHandling
mov r0, #0x10
str r0, [sp]
mov r0, #0x43
add r1, r7, #0
mov r2, #4
mov r3, #0
bl AllocAtEndAndReadFromNarcMemberByIdPair
add r4, r0, #0
_021EE0FC:
ldr r0, [r4]
str r0, [r5]
ldr r0, [r4, #4]
str r0, [r5, #0xc]
ldr r0, [r4, #8]
str r0, [r5, #4]
ldr r0, [r4, #0xc]
str r0, [r5, #8]
add r0, r4, #0
bl FreeToHeap
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD05_021EE114
MOD05_021EE114: ; 0x021EE114
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x20
ldr r4, [sp, #0x40]
lsl r7, r0, #2
add r0, r4, r7
ldr r0, [r0, #0x18]
str r1, [sp, #0xc]
ldr r5, [sp, #0x3c]
cmp r0, #0
blt _021EE1D0
ldr r1, [sp, #0x38]
mul r1, r3
cmp r0, r1
bge _021EE1D0
add r1, r2, #0
bl FUN_02034660
add r1, r0, #0
ldr r0, _021EE1D4 ; =0x0000FFFF
cmp r1, r0
beq _021EE1D0
add r0, r5, #0
add r0, #0xf8
ldr r0, [r0]
add r2, sp, #0x10
bl MOD05_021EE0C0
add r0, r5, #0
add r0, #0xf8
ldr r0, [r0]
ldr r1, [sp, #0x10]
ldr r2, [r4, r7]
bl NARC_ReadFile
add r0, r5, #0
add r0, #0xf0
ldr r0, [r0]
ldr r3, _021EE1D8 ; =0x00000868
str r0, [sp]
add r0, r5, #0
ldr r6, [r4, r7]
add r0, #0xf8
ldr r0, [r0]
ldr r1, [sp, #0x1c]
ldr r2, [sp, #0xc]
ldr r3, [r6, r3]
bl MOD05_021E7CD8
ldr r0, [r4, #0x10]
add r0, r0, #1
str r0, [r4, #0x10]
ldr r0, [sp, #0xc]
ldr r6, [r4, r7]
bl MOD05_021F4C74
ldr r3, _021EE1DC ; =0x00000864
str r0, [sp]
add r0, r6, r3
add r2, r3, #0
str r0, [sp, #4]
add r0, r4, #0
add r0, #0x10
str r0, [sp, #8]
add r0, r5, #0
add r0, #0xf8
sub r2, #0x64
sub r3, #0x10
ldr r0, [r0]
ldr r1, [sp, #0x14]
add r2, r6, r2
add r3, r6, r3
bl MOD05_021EFA00
str r0, [r4, #8]
ldr r0, [r4, #0x14]
add r3, r4, #0
add r0, r0, #1
str r0, [r4, #0x14]
ldr r2, [r4, r7]
ldr r6, _021EE1E0 ; =0x00000858
add r5, #0xf8
add r0, r2, r6
str r0, [sp]
add r0, r4, #0
add r0, #0x10
str r0, [sp, #4]
ldr r0, [r5]
add r5, r6, #4
ldr r1, [sp, #0x18]
ldr r2, [r2, r5]
add r3, #0x14
bl MOD05_021F43E4
str r0, [r4, #0xc]
_021EE1D0:
add sp, #0x20
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_021EE1D4: .word 0x0000FFFF
_021EE1D8: .word 0x00000868
_021EE1DC: .word 0x00000864
_021EE1E0: .word 0x00000858
thumb_func_start MOD05_021EE1E4
MOD05_021EE1E4: ; 0x021EE1E4
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x1fc
sub sp, #0x1fc
sub sp, #0x1fc
sub sp, #0x1fc
sub sp, #0x30
str r1, [sp, #0xc]
add r1, r2, #0
add r2, r3, #0
ldr r3, _021EE294 ; =0x00000828
lsl r7, r0, #2
add r3, sp
ldr r4, [r3, #0x18]
ldr r5, [r3, #0x14]
add r0, r4, r7
ldr r0, [r0, #0x18]
cmp r0, #0
blt _021EE286
ldr r3, [r3, #0x10]
mul r3, r2
cmp r0, r3
bge _021EE286
bl FUN_02034660
add r1, r0, #0
ldr r0, _021EE298 ; =0x0000FFFF
cmp r1, r0
beq _021EE286
add r0, r5, #0
add r0, #0xf8
ldr r0, [r0]
add r2, sp, #0x10
bl MOD05_021EE0C0
add r0, r5, #0
add r0, #0xf8
mov r1, #2
ldr r0, [r0]
lsl r1, r1, #0xa
add r2, sp, #0x20
bl NARC_ReadFile
add r0, r5, #0
add r0, #0xf0
ldr r0, [r0]
ldr r3, _021EE29C ; =0x00000868
str r0, [sp]
add r0, r5, #0
ldr r6, [r4, r7]
add r0, #0xf8
ldr r0, [r0]
ldr r1, [sp, #0x1c]
ldr r2, [sp, #0xc]
ldr r3, [r6, r3]
bl MOD05_021E7CD8
ldr r0, [r4, #0x10]
add r0, r0, #1
str r0, [r4, #0x10]
ldr r0, [sp, #0xc]
ldr r6, [r4, r7]
bl MOD05_021F4C74
ldr r3, _021EE2A0 ; =0x00000864
str r0, [sp]
add r0, r6, r3
add r2, r3, #0
str r0, [sp, #4]
add r0, r4, #0
add r0, #0x10
str r0, [sp, #8]
add r5, #0xf8
sub r2, #0x64
sub r3, #0x10
ldr r0, [r5]
ldr r1, [sp, #0x14]
add r2, r6, r2
add r3, r6, r3
bl MOD05_021EFA00
str r0, [r4, #8]
_021EE286:
add sp, #0x1fc
add sp, #0x1fc
add sp, #0x1fc
add sp, #0x1fc
add sp, #0x30
pop {r3, r4, r5, r6, r7, pc}
nop
_021EE294: .word 0x00000828
_021EE298: .word 0x0000FFFF
_021EE29C: .word 0x00000868
_021EE2A0: .word 0x00000864
thumb_func_start MOD05_021EE2A4
MOD05_021EE2A4: ; 0x021EE2A4
push {r4, r5, r6, r7, lr}
sub sp, #0x1c
add r4, r1, #0
str r0, [sp, #4]
str r2, [sp, #8]
ldr r7, [sp, #0x3c]
add r1, r0, #0
bmi _021EE37A
ldr r2, [sp, #0x30]
ldr r1, [sp, #0x34]
add r5, r2, #0
mul r5, r1
add r1, r0, #0
cmp r1, r5
bge _021EE37A
add r1, r3, #0
bl FUN_02034660
add r1, r0, #0
ldr r0, _021EE380 ; =0x0000FFFF
cmp r1, r0
beq _021EE37A
add r0, r7, #0
add r0, #0xf8
ldr r0, [r0]
add r2, sp, #0xc
bl MOD05_021EE0C0
lsl r5, r4, #2
add r4, r7, #0
add r0, r7, #0
add r4, #0x90
add r0, #0xf8
ldr r0, [r0]
ldr r1, [sp, #0xc]
ldr r2, [r4, r5]
bl NARC_ReadFile
add r0, r7, #0
add r0, #0xf0
ldr r0, [r0]
ldr r3, _021EE384 ; =0x00000868
str r0, [sp]
add r0, r7, #0
ldr r6, [r4, r5]
add r0, #0xf8
ldr r0, [r0]
ldr r1, [sp, #0x18]
ldr r2, [sp, #8]
ldr r3, [r6, r3]
bl MOD05_021E7CD8
ldr r6, [r4, r5]
ldr r0, [sp, #8]
bl MOD05_021F4C74
str r0, [sp]
add r0, r7, #0
mov r3, #2
add r0, #0xf8
lsl r3, r3, #0xa
add r2, r6, r3
add r3, #0x54
ldr r0, [r0]
ldr r1, [sp, #0x10]
add r3, r6, r3
bl MOD05_021EFA40
ldr r1, [sp, #0x38]
cmp r1, #1
bne _021EE336
bl MOD05_021DB5EC
_021EE336:
ldr r6, _021EE388 ; =0x00000864
ldr r0, [r4, r5]
mov r1, #1
str r1, [r0, r6]
add r2, r6, #0
add r0, r7, #0
add r0, #0xf8
ldr r3, [r4, r5]
sub r2, #8
sub r6, #0xc
ldr r2, [r3, r2]
ldr r0, [r0]
ldr r1, [sp, #0x14]
ldr r3, [r3, r6]
bl MOD05_021F4344
mov r2, #0x86
ldr r1, [r4, r5]
ldr r0, [sp, #4]
lsl r2, r2, #4
str r0, [r1, r2]
add r0, r7, #0
add r0, #0xfc
ldr r3, [r0]
cmp r3, #0
beq _021EE37A
mov r0, #1
lsl r0, r0, #8
ldr r4, [r4, r5]
add r2, #8
ldr r0, [r7, r0]
ldr r1, [sp, #4]
ldr r2, [r4, r2]
blx r3
_021EE37A:
add sp, #0x1c
pop {r4, r5, r6, r7, pc}
nop
_021EE380: .word 0x0000FFFF
_021EE384: .word 0x00000868
_021EE388: .word 0x00000864
thumb_func_start MOD05_021EE38C
MOD05_021EE38C: ; 0x021EE38C
push {r4, r5, r6, r7, lr}
sub sp, #0x1fc
sub sp, #0x1fc
sub sp, #0x1fc
sub sp, #0x1fc
sub sp, #0x2c
str r2, [sp, #8]
ldr r2, _021EE44C ; =0x00000820
add r4, r1, #0
add r2, sp
str r0, [sp, #4]
ldr r5, [r2, #0x1c]
add r1, r0, #0
bmi _021EE43E
ldr r6, [r2, #0x10]
ldr r1, [r2, #0x14]
add r2, r6, #0
mul r2, r1
add r1, r0, #0
cmp r1, r2
bge _021EE43E
add r1, r3, #0
bl FUN_02034660
add r1, r0, #0
ldr r0, _021EE450 ; =0x0000FFFF
cmp r1, r0
beq _021EE43E
add r0, r5, #0
add r0, #0xf8
ldr r0, [r0]
add r2, sp, #0xc
bl MOD05_021EE0C0
add r0, r5, #0
add r0, #0xf8
mov r1, #2
ldr r0, [r0]
lsl r1, r1, #0xa
add r2, sp, #0x1c
bl NARC_ReadFile
add r0, r5, #0
add r0, #0xf0
ldr r0, [r0]
add r7, r5, #0
str r0, [sp]
add r0, r5, #0
add r0, #0xf8
lsl r4, r4, #2
add r7, #0x90
ldr r6, [r7, r4]
ldr r3, _021EE454 ; =0x00000868
ldr r0, [r0]
ldr r1, [sp, #0x18]
ldr r2, [sp, #8]
ldr r3, [r6, r3]
bl MOD05_021E7CD8
ldr r0, [sp, #8]
ldr r6, [r7, r4]
bl MOD05_021F4C74
mov r3, #2
str r0, [sp]
add r5, #0xf8
lsl r3, r3, #0xa
add r2, r6, r3
add r3, #0x54
ldr r0, [r5]
ldr r1, [sp, #0x10]
add r3, r6, r3
bl MOD05_021EFA40
ldr r1, _021EE44C ; =0x00000820
add r1, sp
ldr r1, [r1, #0x18]
cmp r1, #1
bne _021EE42E
bl MOD05_021DB5EC
_021EE42E:
ldr r1, [r7, r4]
ldr r0, _021EE458 ; =0x00000864
mov r2, #1
str r2, [r1, r0]
sub r1, r0, #4
ldr r2, [r7, r4]
ldr r0, [sp, #4]
str r0, [r2, r1]
_021EE43E:
add sp, #0x1fc
add sp, #0x1fc
add sp, #0x1fc
add sp, #0x1fc
add sp, #0x2c
pop {r4, r5, r6, r7, pc}
nop
_021EE44C: .word 0x00000820
_021EE450: .word 0x0000FFFF
_021EE454: .word 0x00000868
_021EE458: .word 0x00000864
thumb_func_start MOD05_021EE45C
MOD05_021EE45C: ; 0x021EE45C
ldr r1, [r0]
cmp r1, #0
bne _021EE46C
ldr r0, [r0, #4]
cmp r0, #0
bne _021EE46C
mov r0, #1
bx lr
_021EE46C:
mov r0, #0
bx lr
thumb_func_start MOD05_021EE470
MOD05_021EE470: ; 0x021EE470
push {r4, r5, r6, r7, lr}
sub sp, #0xc
add r4, r0, #0
str r3, [sp]
add r0, sp, #0x10
add r7, r1, #0
ldrb r1, [r0, #0x14]
mov r0, #0x30
str r2, [sp, #8]
add r5, r1, #0
mul r5, r0
add r0, r4, #0
str r0, [sp, #4]
add r0, #0x2c
str r0, [sp, #4]
ldr r0, [r0, r5]
cmp r0, #0
beq _021EE498
bl ErrorHandling
_021EE498:
ldr r0, [sp, #4]
mov r1, #1
str r1, [r0, r5]
add r0, sp, #0x10
add r5, r4, r5
add r1, r5, #0
ldrb r2, [r0, #0x18]
add r1, #0x30
add r3, r4, #0
strb r2, [r1]
add r2, r5, #0
ldr r1, [sp, #8]
str r7, [r5, #0x1c]
str r1, [r5, #0x20]
ldr r1, [sp]
add r2, #0x24
strb r1, [r2]
add r1, r5, #0
ldrb r0, [r0, #0x10]
add r1, #0x25
add r3, #0x90
strb r0, [r1]
ldr r1, [sp]
mov r6, #0
lsl r2, r1, #2
ldr r1, [r3, r2]
str r1, [r5, #4]
lsl r1, r0, #2
ldr r0, [r3, r1]
str r0, [r5, #8]
add r0, r5, #0
add r0, #0x26
strb r6, [r0]
add r0, r6, #0
str r0, [r5, #0x28]
add r0, r4, #0
add r0, #0xa0
ldrb r0, [r0]
cmp r0, #0
bne _021EE4F0
add r5, r4, #0
add r5, #0xb4
add r0, r6, #0
str r0, [r5]
_021EE4F0:
ldr r0, [r3, r2]
mov r2, #0x86
lsl r2, r2, #4
str r7, [r0, r2]
ldr r1, [r3, r1]
ldr r0, [sp, #8]
str r0, [r1, r2]
add r0, r4, #0
add r0, #0xa0
ldrb r0, [r0]
add r1, r0, #1
add r0, r4, #0
add r0, #0xa0
strb r1, [r0]
add r0, r4, #0
add r0, #0xa1
ldrb r0, [r0]
add r4, #0xa1
add r0, r0, #1
lsr r2, r0, #0x1f
lsl r1, r0, #0x1f
sub r1, r1, r2
mov r0, #0x1f
ror r1, r0
add r0, r2, r1
strb r0, [r4]
mov r0, #1
add sp, #0xc
pop {r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021EE52C
MOD05_021EE52C: ; 0x021EE52C
push {r4, r5, r6, r7, lr}
sub sp, #0x14
add r5, r1, #0
add r0, r5, #0
add r0, #0xa2
ldrb r1, [r0]
mov r0, #0x30
add r4, r5, #0
add r2, r5, #4
mul r0, r1
add r4, #0xcc
add r6, r2, r0
ldr r0, [r4, #0x20]
cmp r0, #1
bne _021EE572
ldr r0, [r4, #0x18]
cmp r0, #0
beq _021EE5D0
ldr r0, [r4, #0x14]
ldr r1, [r0]
ldr r0, [r4, #0x10]
ldr r0, [r0]
cmp r1, r0
ble _021EE560
bl ErrorHandling
_021EE560:
ldr r0, [r4, #0x10]
ldr r1, [r0]
ldr r0, [r4, #0x14]
ldr r0, [r0]
sub r1, r1, r0
mov r0, #1
lsl r0, r0, #0x10
cmp r1, r0
bge _021EE574
_021EE572:
b _021EE6B0
_021EE574:
ldr r1, [r4, #0xc]
add r2, sp, #0x10
ldr r0, [r1]
ldr r1, [r1, #8]
add r3, sp, #0xc
bl MOD05_021EF4F8
ldr r0, [sp, #0x10]
ldr r1, [sp, #0xc]
add r2, r5, #0
bl MOD05_021EF2AC
ldr r3, [r4, #0xc]
add r2, r4, #0
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldr r0, [r3]
str r0, [r2]
ldr r0, [r4, #8]
lsr r2, r0, #0x1f
lsl r1, r0, #0x11
sub r1, r1, r2
mov r0, #0x11
ror r1, r0
add r0, r2, r1
beq _021EE5B2
mov r0, #1
bl FUN_020336A0
cmp r0, #0
bne _021EE692
_021EE5B2:
ldr r0, [r4, #8]
lsr r2, r0, #0x1f
lsl r1, r0, #0x11
sub r1, r1, r2
mov r0, #0x11
ror r1, r0
add r0, r2, r1
beq _021EE5C6
bl ErrorHandling
_021EE5C6:
mov r0, #0
str r0, [r4, #0x18]
str r0, [r4, #0x10]
str r0, [r4, #0x14]
b _021EE6B0
_021EE5D0:
ldr r2, [r4, #0xc]
ldr r3, [r4]
ldr r7, [r2]
cmp r3, r7
beq _021EE5E8
ldr r1, [r4, #8]
ldr r0, [r2, #8]
cmp r1, r0
beq _021EE5E8
bl ErrorHandling
b _021EE6B0
_021EE5E8:
cmp r3, r7
bne _021EE5F4
ldr r1, [r4, #8]
ldr r0, [r2, #8]
cmp r1, r0
beq _021EE6B0
_021EE5F4:
mov r3, #1
str r3, [r4, #0x18]
ldr r2, [r4, #0xc]
ldr r0, [r4]
ldr r1, [r2]
cmp r0, r1
beq _021EE648
cmp r0, r1
ble _021EE612
str r4, [r4, #0x10]
ldr r0, [r4, #0xc]
str r0, [r4, #0x14]
mov r0, #3
strb r0, [r4, #0x1c]
b _021EE618
_021EE612:
str r2, [r4, #0x10]
str r4, [r4, #0x14]
strb r3, [r4, #0x1c]
_021EE618:
ldr r0, [r4]
lsr r2, r0, #0x1f
lsl r1, r0, #0x11
sub r1, r1, r2
mov r0, #0x11
ror r1, r0
add r0, r2, r1
beq _021EE632
mov r0, #1
bl FUN_020336A0
cmp r0, #0
bne _021EE692
_021EE632:
ldr r0, [r4]
lsr r2, r0, #0x1f
lsl r1, r0, #0x11
sub r1, r1, r2
mov r0, #0x11
ror r1, r0
add r0, r2, r1
beq _021EE6A8
bl ErrorHandling
b _021EE6A8
_021EE648:
add r1, r5, #0
add r1, #0xd8
add r0, r5, #0
ldr r1, [r1]
add r0, #0xd4
ldr r0, [r0]
ldr r1, [r1, #8]
cmp r0, r1
ble _021EE66A
add r0, r4, #0
add r0, #8
str r0, [r4, #0x10]
ldr r0, [r4, #0xc]
add r0, #8
str r0, [r4, #0x14]
mov r0, #4
b _021EE676
_021EE66A:
add r2, #8
add r0, r4, #0
str r2, [r4, #0x10]
add r0, #8
str r0, [r4, #0x14]
mov r0, #2
_021EE676:
strb r0, [r4, #0x1c]
ldr r0, [r4, #8]
lsr r2, r0, #0x1f
lsl r1, r0, #0x11
sub r1, r1, r2
mov r0, #0x11
ror r1, r0
add r0, r2, r1
beq _021EE694
mov r0, #1
bl FUN_020336A0
cmp r0, #0
beq _021EE694
_021EE692:
b _021EE8C2
_021EE694:
ldr r0, [r4, #8]
lsr r2, r0, #0x1f
lsl r1, r0, #0x11
sub r1, r1, r2
mov r0, #0x11
ror r1, r0
add r0, r2, r1
beq _021EE6A8
bl ErrorHandling
_021EE6A8:
ldrb r0, [r4, #0x1c]
add r1, r5, #0
bl MOD05_021EF458
_021EE6B0:
add r0, r5, #0
add r0, #0xb4
ldr r0, [r0]
cmp r0, #3
bls _021EE6BC
b _021EE818
_021EE6BC:
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021EE6C8: ; jump table
.short _021EE6D0 - _021EE6C8 - 2 ; case 0
.short _021EE726 - _021EE6C8 - 2 ; case 1
.short _021EE818 - _021EE6C8 - 2 ; case 2
.short _021EE804 - _021EE6C8 - 2 ; case 3
_021EE6D0:
add r0, r6, #0
add r0, #0x22
ldrb r0, [r0]
add r1, r6, r0
add r1, #0x20
ldrb r1, [r1]
lsl r1, r1, #2
add r1, r5, r1
add r1, #0x80
ldr r1, [r1]
cmp r1, #1
beq _021EE710
add r1, r5, #0
add r1, #0xc4
ldr r1, [r1]
add r4, r5, #0
str r1, [sp]
str r5, [sp, #4]
str r6, [sp, #8]
add r4, #0xf4
add r1, r5, #0
add r2, r5, #0
add r3, r5, #0
ldr r4, [r4]
add r1, #0xb8
add r2, #0xbc
add r3, #0xc0
ldr r1, [r1]
ldr r2, [r2]
ldr r3, [r3]
ldr r4, [r4, #4]
blx r4
_021EE710:
add r0, r6, #0
add r0, #0x22
ldrb r0, [r0]
add r6, #0x22
mov r1, #1
add r0, r0, #1
strb r0, [r6]
add r0, r5, #0
add r0, #0xb4
str r1, [r0]
b _021EE818
_021EE726:
add r0, r6, #0
add r0, #0x22
ldrb r0, [r0]
sub r0, r0, #1
add r0, r6, r0
add r0, #0x20
ldrb r0, [r0]
lsl r0, r0, #2
add r0, r5, r0
add r0, #0x80
ldr r0, [r0]
cmp r0, #1
bne _021EE75E
add r0, r6, #0
bl MOD05_021EDEAC
add r1, r6, #0
add r1, #0x22
ldrb r1, [r1]
mov r0, #0
sub r1, r1, #1
add r1, r6, r1
add r1, #0x20
ldrb r1, [r1]
lsl r1, r1, #2
add r1, r5, r1
add r1, #0x80
str r0, [r1]
_021EE75E:
add r0, r6, #0
add r0, #0x22
ldrb r0, [r0]
cmp r0, #2
bhi _021EE818
add r0, r6, #0
add r0, #0x10
bl MOD05_021EE45C
cmp r0, #1
bne _021EE818
add r0, r6, #0
add r0, #0x22
ldrb r0, [r0]
cmp r0, #2
blo _021EE784
mov r0, #1
str r0, [r6, #0x24]
b _021EE78C
_021EE784:
add r0, r5, #0
mov r1, #0
add r0, #0xb4
str r1, [r0]
_021EE78C:
add r0, r6, #0
add r0, #0x22
ldrb r0, [r0]
sub r0, r0, #1
lsl r0, r0, #2
ldr r2, [r6, r0]
ldr r0, _021EE8C8 ; =0x00000864
ldr r1, [r2, r0]
cmp r1, #1
bne _021EE7C4
sub r0, #0x10
ldr r0, [r2, r0]
bl FUN_020BC13C
add r7, r0, #0
ldrh r0, [r7, #0xe]
add r0, r7, r0
ldr r4, [r0, #0xc]
add r0, r5, #0
add r0, #0xb8
ldr r0, [r0]
bl MOD05_021F4CA8
cmp r0, #1
bne _021EE7C4
add r0, r7, r4
bl MOD05_021DB5EC
_021EE7C4:
add r0, r5, #0
add r0, #0xfc
ldr r3, [r0]
cmp r3, #0
beq _021EE818
add r0, r6, #0
add r0, #0x22
ldrb r0, [r0]
mov r2, #0x86
lsl r2, r2, #4
sub r0, r0, #1
lsl r0, r0, #2
ldr r4, [r6, r0]
ldr r1, [r4, r2]
cmp r1, #0
blt _021EE818
add r0, r5, #0
add r6, r5, #0
add r0, #0xc0
add r6, #0xc4
ldr r0, [r0]
ldr r6, [r6]
mul r6, r0
cmp r1, r6
bge _021EE818
mov r0, #1
lsl r0, r0, #8
add r2, #8
ldr r0, [r5, r0]
ldr r2, [r4, r2]
blx r3
b _021EE818
_021EE804:
add r6, #0x10
add r0, r6, #0
bl MOD05_021EE45C
cmp r0, #1
bne _021EE818
add r0, r5, #0
mov r1, #0
add r0, #0xa0
strb r1, [r0]
_021EE818:
add r0, r5, #0
add r0, #0xa0
ldrb r0, [r0]
cmp r0, #0
bne _021EE83A
add r0, r5, #0
mov r1, #0
add r0, #0xa2
strb r1, [r0]
add r0, r5, #0
add r0, #0xa1
strb r1, [r0]
mov r0, #2
add r5, #0xb4
add sp, #0x14
str r0, [r5]
pop {r4, r5, r6, r7, pc}
_021EE83A:
add r0, r5, #0
bl MOD05_021EF0F0
cmp r0, #1
bne _021EE8C2
add r0, r5, #0
add r0, #0xa2
ldrb r1, [r0]
mov r0, #0x30
mov r2, #0
mul r0, r1
add r0, r5, r0
str r2, [r0, #0x2c]
add r0, r5, #0
bl MOD05_021EF100
add r0, r5, #0
add r0, #0xa0
ldrb r0, [r0]
sub r1, r0, #1
add r0, r5, #0
add r0, #0xa0
strb r1, [r0]
add r0, r5, #0
add r0, #0xa2
ldrb r0, [r0]
add r0, r0, #1
lsr r2, r0, #0x1f
lsl r1, r0, #0x1f
sub r1, r1, r2
mov r0, #0x1f
ror r1, r0
add r0, r5, #0
add r1, r2, r1
add r0, #0xa2
strb r1, [r0]
add r0, r5, #0
add r0, #0xa0
ldrb r0, [r0]
cmp r0, #0
beq _021EE890
mov r1, #0
b _021EE8A0
_021EE890:
add r0, r5, #0
mov r1, #0
add r0, #0xa2
strb r1, [r0]
add r0, r5, #0
add r0, #0xa1
strb r1, [r0]
mov r1, #2
_021EE8A0:
add r0, r5, #0
add r0, #0xb4
str r1, [r0]
ldr r0, [r5, #0x6c]
cmp r0, #1
bne _021EE8C2
mov r0, #0
str r0, [r5, #0x6c]
add r0, r5, #0
add r0, #0x70
ldrb r0, [r0]
add r1, r5, #0
bl MOD05_021EF118
add r0, r5, #0
bl MOD05_021EF094
_021EE8C2:
add sp, #0x14
pop {r4, r5, r6, r7, pc}
nop
_021EE8C8: .word 0x00000864
thumb_func_start MOD05_021EE8CC
MOD05_021EE8CC: ; 0x021EE8CC
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x18
ldr r4, [sp, #0x34]
str r2, [sp, #0x10]
add r7, r0, #0
ldr r0, [r4, #0x6c]
add r5, r3, #0
str r1, [sp, #0xc]
ldr r6, [sp, #0x30]
cmp r0, #1
bne _021EE8E6
bl ErrorHandling
_021EE8E6:
add r0, r6, #0
add r1, r4, #0
add r2, sp, #0x14
bl MOD05_021EEF9C
cmp r0, #1
bne _021EE964
add r1, sp, #0x14
ldrb r1, [r1]
add r0, r4, #0
bl MOD05_021EDE7C
add r0, r4, #0
add r0, #0xa0
ldrb r0, [r0]
cmp r0, #2
blo _021EE948
mov r0, #1
str r0, [r4, #0x6c]
ldr r0, [sp, #0xc]
str r7, [r4, #0x74]
str r0, [r4, #0x78]
add r1, r4, #0
ldr r0, [sp, #0x10]
add r1, #0x7c
strb r0, [r1]
add r0, r4, #0
add r0, #0x7d
strb r5, [r0]
ldr r0, [sp, #0x10]
add r2, r4, #0
add r2, #0x90
lsl r1, r0, #2
ldr r0, [r2, r1]
str r0, [r4, #0x64]
lsl r0, r5, #2
ldr r3, [r2, r0]
str r3, [r4, #0x68]
add r4, #0x70
strb r6, [r4]
ldr r3, [r2, r1]
mov r1, #0x86
lsl r1, r1, #4
str r7, [r3, r1]
ldr r2, [r2, r0]
ldr r0, [sp, #0xc]
add sp, #0x18
str r0, [r2, r1]
pop {r3, r4, r5, r6, r7, pc}
_021EE948:
add r0, r4, #0
str r5, [sp]
add r0, #0xa1
ldrb r0, [r0]
ldr r2, [sp, #0xc]
add r1, r7, #0
str r0, [sp, #4]
str r6, [sp, #8]
ldr r3, [sp, #0x10]
add r0, r4, #0
bl MOD05_021EE470
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
_021EE964:
add r0, r4, #0
str r5, [sp]
add r0, #0xa1
ldrb r0, [r0]
ldr r2, [sp, #0xc]
add r1, r7, #0
str r0, [sp, #4]
str r6, [sp, #8]
ldr r3, [sp, #0x10]
add r0, r4, #0
bl MOD05_021EE470
cmp r0, #1
beq _021EE984
bl ErrorHandling
_021EE984:
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD05_021EE988
MOD05_021EE988: ; 0x021EE988
push {r4, r5, r6, lr}
add r6, r1, #0
add r4, r6, #0
lsl r5, r0, #2
add r4, #0x90
ldr r1, [r4, r5]
ldr r0, _021EE9CC ; =0x00000864
mov r2, #0
str r2, [r1, r0]
ldr r1, [r4, r5]
sub r0, #8
ldr r0, [r1, r0]
bl MOD05_021F43CC
ldr r1, [r4, r5]
ldr r0, _021EE9D0 ; =0x00000868
ldr r0, [r1, r0]
bl MOD05_021E7C1C
mov r0, #0
mov r2, #0x86
ldr r1, [r4, r5]
mvn r0, r0
lsl r2, r2, #4
str r0, [r1, r2]
ldr r1, [r4, r5]
sub r2, #0x60
bl MIi_CpuClearFast
add r0, r6, r5
mov r1, #1
add r0, #0x80
str r1, [r0]
pop {r4, r5, r6, pc}
.balign 4, 0
_021EE9CC: .word 0x00000864
_021EE9D0: .word 0x00000868
thumb_func_start MOD05_021EE9D4
MOD05_021EE9D4: ; 0x021EE9D4
push {r3, r4, r5, r6, r7, lr}
ldr r4, [sp, #0x18]
add r5, r1, #0
add r1, r4, #0
add r6, r0, #0
add r7, r2, #0
str r3, [sp]
bl MOD05_021EE988
add r0, r5, #0
add r1, r4, #0
bl MOD05_021EE988
add r4, #0x90
lsl r1, r6, #2
lsl r5, r5, #2
lsl r2, r7, #2
ldr r0, [r4, r1]
ldr r3, [r4, r5]
ldr r6, [r4, r2]
str r6, [r4, r1]
ldr r1, [sp]
lsl r6, r1, #2
ldr r1, [r4, r6]
str r1, [r4, r5]
str r0, [r4, r2]
str r3, [r4, r6]
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD05_021EEA0C
MOD05_021EEA0C: ; 0x021EEA0C
push {r4, r5, r6, r7, lr}
sub sp, #0x14
str r1, [sp, #8]
add r7, r0, #0
ldr r0, [sp, #8]
add r6, r2, #0
cmp r0, #4
bls _021EEA1E
b _021EED32
_021EEA1E:
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021EEA2A: ; jump table
.short _021EED32 - _021EEA2A - 2 ; case 0
.short _021EEBA4 - _021EEA2A - 2 ; case 1
.short _021EEC80 - _021EEA2A - 2 ; case 2
.short _021EEAD2 - _021EEA2A - 2 ; case 3
.short _021EEA34 - _021EEA2A - 2 ; case 4
_021EEA34:
mov r0, #2
mov r1, #3
mov r2, #0
mov r3, #1
str r6, [sp]
bl MOD05_021EE9D4
add r0, r6, #0
add r0, #0xad
ldrb r0, [r0]
cmp r0, #2
bne _021EEA7E
add r0, r6, #0
add r0, #0xc0
ldr r2, [r0]
mov r0, #1
sub r5, r7, r2
str r0, [sp, #0x10]
mov r0, #0
sub r4, r5, #1
str r0, [sp, #0xc]
cmp r5, #0
bge _021EEA68
sub r5, r0, #1
add r4, r5, #0
b _021EEAB4
_021EEA68:
cmp r4, #0
blt _021EEA78
add r0, r5, #0
add r1, r4, #0
bl MOD05_021EDE58
cmp r0, #0
bne _021EEAB4
_021EEA78:
mov r4, #0
mvn r4, r4
b _021EEAB4
_021EEA7E:
cmp r0, #3
bne _021EEAB0
add r0, r6, #0
add r0, #0xc0
ldr r2, [r0]
mov r0, #0
sub r5, r7, r2
str r0, [sp, #0x10]
mov r0, #1
add r4, r5, #1
str r0, [sp, #0xc]
cmp r5, #0
bge _021EEA9E
sub r5, r0, #2
add r4, r5, #0
b _021EEAB4
_021EEA9E:
add r0, r5, #0
add r1, r4, #0
bl MOD05_021EDE58
cmp r0, #0
bne _021EEAB4
mov r4, #0
mvn r4, r4
b _021EEAB4
_021EEAB0:
bl ErrorHandling
_021EEAB4:
ldr r2, [sp, #0x10]
ldr r3, [sp, #0xc]
ldr r0, [sp, #8]
lsl r2, r2, #0x18
str r0, [sp]
lsl r3, r3, #0x18
add r0, r5, #0
add r1, r4, #0
lsr r2, r2, #0x18
lsr r3, r3, #0x18
str r6, [sp, #4]
bl MOD05_021EE8CC
add sp, #0x14
pop {r4, r5, r6, r7, pc}
_021EEAD2:
mov r0, #1
mov r1, #3
mov r2, #0
mov r3, #2
str r6, [sp]
bl MOD05_021EE9D4
add r0, r6, #0
add r0, #0xad
ldrb r0, [r0]
cmp r0, #1
bne _021EEB30
add r0, r6, #0
add r0, #0xc0
ldr r2, [r0]
sub r5, r7, #1
sub r0, r7, r2
sub r4, r0, #1
mov r0, #2
str r0, [sp, #0x10]
mov r0, #0
str r0, [sp, #0xc]
cmp r5, #0
blt _021EEB0E
add r0, r5, #0
add r1, r7, #0
bl MOD05_021EDE58
cmp r0, #0
bne _021EEB14
_021EEB0E:
mov r5, #0
mvn r5, r5
add r4, r5, #0
_021EEB14:
cmp r4, #0
blt _021EEB2A
add r2, r6, #0
add r2, #0xc0
ldr r2, [r2]
add r0, r5, #0
add r1, r4, #0
bl MOD05_021EDE34
cmp r0, #0
bne _021EEB86
_021EEB2A:
mov r4, #0
mvn r4, r4
b _021EEB86
_021EEB30:
cmp r0, #3
bne _021EEB82
add r0, r6, #0
add r0, #0xc0
ldr r2, [r0]
sub r5, r7, #1
add r0, r7, r2
sub r4, r0, #1
mov r0, #0
str r0, [sp, #0x10]
mov r0, #2
str r0, [sp, #0xc]
cmp r5, #0
blt _021EEB58
add r0, r5, #0
add r1, r7, #0
bl MOD05_021EDE58
cmp r0, #0
bne _021EEB5E
_021EEB58:
mov r5, #0
mvn r5, r5
add r4, r5, #0
_021EEB5E:
add r0, r6, #0
add r0, #0xc0
ldr r2, [r0]
add r0, r6, #0
add r0, #0xc4
ldr r0, [r0]
mul r0, r2
cmp r0, r4
ble _021EEB7C
add r0, r5, #0
add r1, r4, #0
bl MOD05_021EDE34
cmp r0, #0
bne _021EEB86
_021EEB7C:
mov r4, #0
mvn r4, r4
b _021EEB86
_021EEB82:
bl ErrorHandling
_021EEB86:
ldr r2, [sp, #0x10]
ldr r3, [sp, #0xc]
ldr r0, [sp, #8]
lsl r2, r2, #0x18
str r0, [sp]
lsl r3, r3, #0x18
add r0, r5, #0
add r1, r4, #0
lsr r2, r2, #0x18
lsr r3, r3, #0x18
str r6, [sp, #4]
bl MOD05_021EE8CC
add sp, #0x14
pop {r4, r5, r6, r7, pc}
_021EEBA4:
mov r0, #0
mov r1, #2
mov r2, #1
mov r3, #3
str r6, [sp]
bl MOD05_021EE9D4
add r0, r6, #0
add r0, #0xad
ldrb r0, [r0]
cmp r0, #0
bne _021EEC12
add r0, r6, #0
add r0, #0xc0
ldr r2, [r0]
add r5, r7, #1
sub r0, r7, r2
add r4, r0, #1
mov r0, #3
str r0, [sp, #0x10]
mov r0, #1
str r0, [sp, #0xc]
add r0, r6, #0
add r0, #0xc4
ldr r0, [r0]
mul r0, r2
cmp r0, r5
ble _021EEBE8
add r0, r5, #0
add r1, r7, #0
bl MOD05_021EDE58
cmp r0, #0
bne _021EEBEE
_021EEBE8:
mov r5, #0
mvn r5, r5
add r4, r5, #0
_021EEBEE:
add r0, r6, #0
add r0, #0xc0
ldr r2, [r0]
add r0, r6, #0
add r0, #0xc4
ldr r0, [r0]
mul r0, r2
cmp r0, r4
ble _021EEC0C
add r0, r5, #0
add r1, r4, #0
bl MOD05_021EDE34
cmp r0, #0
bne _021EEC62
_021EEC0C:
mov r4, #0
mvn r4, r4
b _021EEC62
_021EEC12:
cmp r0, #2
bne _021EEC62
add r0, r6, #0
add r0, #0xc0
ldr r2, [r0]
add r5, r7, #1
add r0, r7, r2
add r4, r0, #1
mov r0, #1
str r0, [sp, #0x10]
mov r0, #3
str r0, [sp, #0xc]
add r0, r6, #0
add r0, #0xc4
ldr r0, [r0]
mul r0, r2
cmp r0, r5
ble _021EEC42
add r0, r5, #0
add r1, r7, #0
bl MOD05_021EDE58
cmp r0, #0
bne _021EEC48
_021EEC42:
mov r5, #0
mvn r5, r5
add r4, r5, #0
_021EEC48:
cmp r4, #0
blt _021EEC5E
add r2, r6, #0
add r2, #0xc0
ldr r2, [r2]
add r0, r5, #0
add r1, r4, #0
bl MOD05_021EDE34
cmp r0, #0
bne _021EEC62
_021EEC5E:
mov r4, #0
mvn r4, r4
_021EEC62:
ldr r2, [sp, #0x10]
ldr r3, [sp, #0xc]
ldr r0, [sp, #8]
lsl r2, r2, #0x18
str r0, [sp]
lsl r3, r3, #0x18
add r0, r5, #0
add r1, r4, #0
lsr r2, r2, #0x18
lsr r3, r3, #0x18
str r6, [sp, #4]
bl MOD05_021EE8CC
add sp, #0x14
pop {r4, r5, r6, r7, pc}
_021EEC80:
mov r0, #0
mov r1, #1
mov r2, #2
mov r3, #3
str r6, [sp]
bl MOD05_021EE9D4
add r0, r6, #0
add r0, #0xad
ldrb r0, [r0]
cmp r0, #0
bne _021EECD0
add r0, r6, #0
add r0, #0xc0
ldr r2, [r0]
mov r0, #3
str r0, [sp, #0x10]
mov r0, #2
str r0, [sp, #0xc]
add r0, r6, #0
add r0, #0xc4
ldr r0, [r0]
add r5, r7, r2
mul r0, r2
sub r4, r5, #1
cmp r0, r5
bgt _021EECBE
ldr r0, [sp, #0xc]
sub r5, r0, #3
add r4, r5, #0
b _021EED14
_021EECBE:
add r0, r5, #0
add r1, r4, #0
bl MOD05_021EDE58
cmp r0, #0
bne _021EED14
mov r4, #0
mvn r4, r4
b _021EED14
_021EECD0:
cmp r0, #1
bne _021EED10
add r0, r6, #0
add r0, #0xc0
ldr r2, [r0]
mov r0, #2
str r0, [sp, #0x10]
mov r0, #3
str r0, [sp, #0xc]
add r0, r6, #0
add r0, #0xc4
ldr r0, [r0]
add r5, r7, r2
mul r0, r2
add r4, r5, #1
cmp r0, r5
bgt _021EECFA
ldr r0, [sp, #0xc]
sub r5, r0, #4
add r4, r5, #0
b _021EED14
_021EECFA:
cmp r0, r4
ble _021EED0A
add r0, r5, #0
add r1, r4, #0
bl MOD05_021EDE58
cmp r0, #0
bne _021EED14
_021EED0A:
mov r4, #0
mvn r4, r4
b _021EED14
_021EED10:
bl ErrorHandling
_021EED14:
ldr r2, [sp, #0x10]
ldr r3, [sp, #0xc]
ldr r0, [sp, #8]
lsl r2, r2, #0x18
str r0, [sp]
lsl r3, r3, #0x18
add r0, r5, #0
add r1, r4, #0
lsr r2, r2, #0x18
lsr r3, r3, #0x18
str r6, [sp, #4]
bl MOD05_021EE8CC
add sp, #0x14
pop {r4, r5, r6, r7, pc}
_021EED32:
bl ErrorHandling
add sp, #0x14
pop {r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021EED3C
MOD05_021EED3C: ; 0x021EED3C
push {r4, r5, r6, r7, lr}
sub sp, #0x44
add r5, r1, #0
add r4, r5, #0
lsl r6, r0, #2
mov r0, #0x86
add r3, sp, #0x38
mov r1, #0
str r1, [r3]
str r1, [r3, #4]
str r2, [sp, #4]
add r2, r5, #0
add r4, #0x90
str r1, [r3, #8]
add r2, #0xbc
ldr r1, [r4, r6]
lsl r0, r0, #4
ldr r0, [r1, r0]
add r1, r5, #0
add r1, #0xc0
ldr r1, [r1]
ldr r2, [r2]
bl MOD05_021EF300
ldr r1, [r4, r6]
ldr r0, _021EEDD4 ; =0x00000864
ldr r0, [r1, r0]
cmp r0, #1
bne _021EEDA6
ldr r3, _021EEDD8 ; =0x021F8B14
add r2, sp, #0x2c
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldr r0, [r3]
ldr r3, _021EEDDC ; =0x021F8B20
str r0, [r2]
add r2, sp, #8
mov r7, #4
_021EED88:
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
sub r7, r7, #1
bne _021EED88
ldr r0, [r3]
add r3, sp, #0x2c
str r0, [r2]
mov r0, #2
ldr r1, [r4, r6]
lsl r0, r0, #0xa
add r0, r1, r0
add r1, sp, #0x38
add r2, sp, #8
bl FUN_0201B26C
_021EEDA6:
ldr r4, [r4, r6]
ldr r0, _021EEDD4 ; =0x00000864
ldr r0, [r4, r0]
cmp r0, #1
bne _021EEDCE
add r0, r5, #0
add r0, #0xb8
ldr r0, [r0]
bl MOD05_021F4CA8
add r2, r0, #0
ldr r0, _021EEDE0 ; =0x00000868
add r5, #0xb8
ldr r0, [r4, r0]
ldr r3, [sp, #4]
str r0, [sp]
ldr r1, [r5]
add r0, sp, #0x38
bl MOD05_021E7DD8
_021EEDCE:
add sp, #0x44
pop {r4, r5, r6, r7, pc}
nop
_021EEDD4: .word 0x00000864
_021EEDD8: .word 0x021F8B14
_021EEDDC: .word 0x021F8B20
_021EEDE0: .word 0x00000868
thumb_func_start MOD05_021EEDE4
MOD05_021EEDE4: ; 0x021EEDE4
push {r3, r4, r5, r6, r7, lr}
add r7, r2, #0
add r5, r1, #0
add r6, r0, #0
add r1, r7, #0
bl _u32_div_f
add r4, r1, #0
add r0, r6, #0
add r1, r7, #0
bl _u32_div_f
lsr r0, r0, #5
add r1, r0, #0
lsr r2, r4, #5
mul r1, r5
add r0, r2, r1
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD05_021EEE08
MOD05_021EEE08: ; 0x021EEE08
mul r2, r1
add r0, r0, r2
bx lr
.balign 4, 0
thumb_func_start MOD05_021EEE10
MOD05_021EEE10: ; 0x021EEE10
push {r3, r4, r5, r6, r7, lr}
add r7, r2, #0
add r5, r1, #0
add r6, r0, #0
add r1, r7, #0
bl _u32_div_f
add r4, r1, #0
add r0, r6, #0
add r1, r7, #0
bl _u32_div_f
lsr r0, r0, #5
add r1, r0, #0
lsr r2, r4, #5
mul r1, r5
add r0, r2, r1
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD05_021EEE34
MOD05_021EEE34: ; 0x021EEE34
push {r3, lr}
cmp r0, #0
bne _021EEE3E
mov r0, #3
pop {r3, pc}
_021EEE3E:
cmp r0, #1
bne _021EEE46
mov r0, #2
pop {r3, pc}
_021EEE46:
cmp r0, #2
bne _021EEE4E
mov r0, #1
pop {r3, pc}
_021EEE4E:
cmp r0, #3
bne _021EEE56
mov r0, #0
pop {r3, pc}
_021EEE56:
bl ErrorHandling
mov r0, #0
pop {r3, pc}
.balign 4, 0
thumb_func_start MOD05_021EEE60
MOD05_021EEE60: ; 0x021EEE60
push {r3, r4, r5, lr}
add r5, r2, #0
add r4, r3, #0
cmp r0, #4
bhi _021EEEC0
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021EEE76: ; jump table
.short _021EEEC0 - _021EEE76 - 2 ; case 0
.short _021EEE80 - _021EEE76 - 2 ; case 1
.short _021EEE96 - _021EEE76 - 2 ; case 2
.short _021EEEA4 - _021EEE76 - 2 ; case 3
.short _021EEEB8 - _021EEE76 - 2 ; case 4
_021EEE80:
add r0, r4, #0
add r1, r5, #0
bl _s32_div_f
add r0, r1, #1
cmp r0, r5
blt _021EEE92
add r0, r4, #0
pop {r3, r4, r5, pc}
_021EEE92:
add r0, r4, #1
pop {r3, r4, r5, pc}
_021EEE96:
lsl r1, r1, #5
add r0, r4, r5
mul r1, r5
cmp r0, r1
blt _021EEEC6
add r0, r4, #0
pop {r3, r4, r5, pc}
_021EEEA4:
add r0, r4, #0
add r1, r5, #0
bl _s32_div_f
sub r0, r1, #1
bpl _021EEEB4
add r0, r4, #0
pop {r3, r4, r5, pc}
_021EEEB4:
sub r0, r4, #1
pop {r3, r4, r5, pc}
_021EEEB8:
sub r0, r4, r5
bpl _021EEEC6
add r0, r4, #0
pop {r3, r4, r5, pc}
_021EEEC0:
bl ErrorHandling
mov r0, #0
_021EEEC6:
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021EEEC8
MOD05_021EEEC8: ; 0x021EEEC8
cmp r0, #4
bhi _021EEF00
add r2, r0, r0
add r2, pc
ldrh r2, [r2, #6]
lsl r2, r2, #0x10
asr r2, r2, #0x10
add pc, r2
_021EEED8: ; jump table
.short _021EEF00 - _021EEED8 - 2 ; case 0
.short _021EEEFA - _021EEED8 - 2 ; case 1
.short _021EEEEA - _021EEED8 - 2 ; case 2
.short _021EEEF2 - _021EEED8 - 2 ; case 3
.short _021EEEE2 - _021EEED8 - 2 ; case 4
_021EEEE2:
sub r0, r1, #2
lsl r0, r0, #0x18
lsr r0, r0, #0x18
bx lr
_021EEEEA:
add r0, r1, #2
lsl r0, r0, #0x18
lsr r0, r0, #0x18
bx lr
_021EEEF2:
sub r0, r1, #1
lsl r0, r0, #0x18
lsr r0, r0, #0x18
bx lr
_021EEEFA:
add r0, r1, #1
lsl r0, r0, #0x18
lsr r0, r0, #0x18
_021EEF00:
bx lr
.balign 4, 0
thumb_func_start MOD05_021EEF04
MOD05_021EEF04: ; 0x021EEF04
push {r4, r5, r6, lr}
add r5, r1, #0
add r4, r2, #0
bl MOD05_021EEEC8
cmp r5, r0
bge _021EEF36
sub r0, r0, r5
cmp r0, #1
bne _021EEF22
ldrb r0, [r4]
sub r0, r0, #1
lsl r0, r0, #0x18
lsr r6, r0, #0x18
b _021EEF62
_021EEF22:
cmp r0, #2
bne _021EEF30
ldrb r0, [r4]
sub r0, r0, #2
lsl r0, r0, #0x18
lsr r6, r0, #0x18
b _021EEF62
_021EEF30:
bl ErrorHandling
b _021EEF62
_021EEF36:
cmp r5, r0
ble _021EEF5E
sub r0, r5, r0
cmp r0, #1
bne _021EEF4A
ldrb r0, [r4]
add r0, r0, #1
lsl r0, r0, #0x18
lsr r6, r0, #0x18
b _021EEF62
_021EEF4A:
cmp r0, #2
bne _021EEF58
ldrb r0, [r4]
add r0, r0, #2
lsl r0, r0, #0x18
lsr r6, r0, #0x18
b _021EEF62
_021EEF58:
bl ErrorHandling
b _021EEF62
_021EEF5E:
bl ErrorHandling
_021EEF62:
strb r6, [r4]
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_start MOD05_021EEF68
MOD05_021EEF68: ; 0x021EEF68
push {r3, lr}
cmp r0, #4
bhi _021EEF94
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021EEF7A: ; jump table
.short _021EEF94 - _021EEF7A - 2 ; case 0
.short _021EEF8C - _021EEF7A - 2 ; case 1
.short _021EEF88 - _021EEF7A - 2 ; case 2
.short _021EEF90 - _021EEF7A - 2 ; case 3
.short _021EEF84 - _021EEF7A - 2 ; case 4
_021EEF84:
mov r0, #2
pop {r3, pc}
_021EEF88:
mov r0, #4
pop {r3, pc}
_021EEF8C:
mov r0, #3
pop {r3, pc}
_021EEF90:
mov r0, #1
pop {r3, pc}
_021EEF94:
bl ErrorHandling
mov r0, #0
pop {r3, pc}
thumb_func_start MOD05_021EEF9C
MOD05_021EEF9C: ; 0x021EEF9C
push {r3, r4, r5, r6, r7, lr}
add r6, r0, #0
add r5, r1, #0
add r7, r2, #0
mov r4, #0
_021EEFA6:
ldr r0, [r5, #0x2c]
cmp r0, #1
bne _021EEFC2
add r0, r6, #0
bl MOD05_021EEF68
add r1, r5, #0
add r1, #0x30
ldrb r1, [r1]
cmp r1, r0
bne _021EEFC2
strb r4, [r7]
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021EEFC2:
add r4, r4, #1
add r5, #0x30
cmp r4, #2
blt _021EEFA6
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021EEFD0
MOD05_021EEFD0: ; 0x021EEFD0
push {r4, r5, r6, lr}
add r5, r0, #0
add r0, #0xa1
ldrb r1, [r0]
mov r0, #0x30
add r4, r5, #0
mul r0, r1
add r0, r5, r0
ldr r0, [r0, #0x2c]
add r4, #0x64
cmp r0, #0
beq _021EEFEC
bl ErrorHandling
_021EEFEC:
add r1, r5, #0
add r1, #0xa1
ldrb r2, [r1]
mov r1, #0x30
mov r0, #1
add r3, r2, #0
mul r3, r1
add r2, r5, r3
add r3, r5, #0
str r0, [r2, #0x2c]
add r3, #0xa1
ldrb r3, [r3]
ldrb r2, [r4, #0xc]
add r6, r3, #0
mul r6, r1
add r3, r5, r6
add r3, #0x30
strb r2, [r3]
add r3, r5, #0
add r3, #0xa1
ldrb r3, [r3]
ldr r2, [r4, #0x10]
add r6, r3, #0
mul r6, r1
add r3, r5, r6
str r2, [r3, #0x1c]
add r3, r5, #0
add r3, #0xa1
ldrb r3, [r3]
ldr r2, [r4, #0x14]
add r6, r3, #0
mul r6, r1
add r3, r5, r6
str r2, [r3, #0x20]
add r3, r5, #0
add r3, #0xa1
ldrb r3, [r3]
ldrb r2, [r4, #0x18]
add r6, r3, #0
mul r6, r1
add r3, r5, r6
add r3, #0x24
strb r2, [r3]
add r3, r5, #0
add r3, #0xa1
ldrb r3, [r3]
ldrb r2, [r4, #0x19]
add r6, r3, #0
mul r6, r1
add r3, r5, r6
add r3, #0x25
strb r2, [r3]
add r3, r5, #0
add r3, #0xa1
ldrb r3, [r3]
ldr r2, [r4]
add r6, r3, #0
mul r6, r1
add r3, r5, r6
str r2, [r3, #4]
add r2, r5, #0
add r2, #0xa1
ldrb r2, [r2]
ldr r4, [r4, #4]
add r3, r2, #0
mul r3, r1
add r2, r5, r3
add r3, r5, #0
str r4, [r2, #8]
add r3, #0xa1
ldrb r3, [r3]
mov r2, #0
add r4, r3, #0
mul r4, r1
add r3, r5, r4
add r3, #0x26
strb r2, [r3]
add r3, r5, #0
add r3, #0xa1
ldrb r3, [r3]
mul r1, r3
add r1, r5, r1
str r2, [r1, #0x28]
pop {r4, r5, r6, pc}
thumb_func_start MOD05_021EF094
MOD05_021EF094: ; 0x021EF094
push {r3, r4, r5, lr}
add r5, r0, #0
add r0, #0xa0
ldrb r0, [r0]
add r4, r5, #0
add r4, #0x64
cmp r0, #2
blo _021EF0A8
bl ErrorHandling
_021EF0A8:
add r0, r5, #0
bl MOD05_021EEFD0
cmp r0, #1
beq _021EF0B6
bl ErrorHandling
_021EF0B6:
mov r0, #0x86
ldr r2, [r4, #0x10]
ldr r1, [r4]
lsl r0, r0, #4
str r2, [r1, r0]
ldr r2, [r4, #0x14]
ldr r1, [r4, #4]
str r2, [r1, r0]
add r0, r5, #0
add r0, #0xa0
ldrb r0, [r0]
add r1, r0, #1
add r0, r5, #0
add r0, #0xa0
strb r1, [r0]
add r0, r5, #0
add r0, #0xa1
ldrb r0, [r0]
add r5, #0xa1
add r0, r0, #1
lsr r2, r0, #0x1f
lsl r1, r0, #0x1f
sub r1, r1, r2
mov r0, #0x1f
ror r1, r0
add r0, r2, r1
strb r0, [r5]
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021EF0F0
MOD05_021EF0F0: ; 0x021EF0F0
add r1, r0, #0
add r1, #0xa2
ldrb r2, [r1]
mov r1, #0x30
mul r1, r2
add r0, r0, r1
ldr r0, [r0, #0x28]
bx lr
thumb_func_start MOD05_021EF100
MOD05_021EF100: ; 0x021EF100
mov r3, #0
add r2, r3, #0
_021EF104:
lsl r1, r3, #2
add r1, r0, r1
add r1, #0x80
str r2, [r1]
add r1, r3, #1
lsl r1, r1, #0x18
lsr r3, r1, #0x18
cmp r3, #4
blo _021EF104
bx lr
thumb_func_start MOD05_021EF118
MOD05_021EF118: ; 0x021EF118
cmp r0, #4
bhi _021EF168
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021EF128: ; jump table
.short _021EF168 - _021EF128 - 2 ; case 0
.short _021EF140 - _021EF128 - 2 ; case 1
.short _021EF14E - _021EF128 - 2 ; case 2
.short _021EF15C - _021EF128 - 2 ; case 3
.short _021EF132 - _021EF128 - 2 ; case 4
_021EF132:
add r0, r1, #0
mov r2, #1
add r0, #0x88
str r2, [r0]
add r1, #0x8c
str r2, [r1]
bx lr
_021EF140:
add r0, r1, #0
mov r2, #1
add r0, #0x80
str r2, [r0]
add r1, #0x88
str r2, [r1]
bx lr
_021EF14E:
add r0, r1, #0
mov r2, #1
add r0, #0x80
str r2, [r0]
add r1, #0x84
str r2, [r1]
bx lr
_021EF15C:
add r0, r1, #0
mov r2, #1
add r0, #0x84
str r2, [r0]
add r1, #0x8c
str r2, [r1]
_021EF168:
bx lr
.balign 4, 0
thumb_func_start MOD05_021EF16C
MOD05_021EF16C: ; 0x021EF16C
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x20
add r5, r0, #0
add r4, r3, #0
add r6, r1, #0
add r7, r2, #0
bl MOD05_021EDFBC
add r2, r5, #0
add r3, r5, #0
str r4, [sp]
add r0, sp, #0x10
str r0, [sp, #4]
add r2, #0xc0
add r3, #0xc4
ldr r2, [r2]
ldr r3, [r3]
add r0, r6, #0
add r1, r7, #0
bl MOD05_021EDED0
mov r6, #0
add r7, sp, #0x10
_021EF19A:
lsl r4, r6, #2
bl MOD05_021F4328
add r1, r5, r4
add r1, #0x90
ldr r2, [r1]
ldr r1, _021EF1F8 ; =0x0000085C
str r0, [r2, r1]
add r0, r5, r4
add r0, #0x90
ldr r1, [r0]
ldr r0, _021EF1F8 ; =0x0000085C
ldr r0, [r1, r0]
bl MOD05_021F4454
add r0, r5, #0
add r0, #0xb8
ldr r0, [r0]
bl MOD05_021F4CA8
add r1, r5, #0
add r1, #0xc0
ldr r1, [r1]
add r2, r5, #0
str r1, [sp]
add r1, r5, #0
add r1, #0xc4
ldr r1, [r1]
add r3, r5, #0
str r1, [sp, #4]
str r0, [sp, #8]
str r5, [sp, #0xc]
add r2, #0xb8
add r3, #0xbc
ldr r0, [r7, r4]
ldr r2, [r2]
ldr r3, [r3]
add r1, r6, #0
bl MOD05_021EE2A4
add r0, r6, #1
lsl r0, r0, #0x18
lsr r6, r0, #0x18
cmp r6, #4
blo _021EF19A
add sp, #0x20
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_021EF1F8: .word 0x0000085C
thumb_func_start MOD05_021EF1FC
MOD05_021EF1FC: ; 0x021EF1FC
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x20
add r5, r0, #0
add r4, r3, #0
add r6, r1, #0
add r7, r2, #0
bl MOD05_021EE050
add r2, r5, #0
add r3, r5, #0
str r4, [sp]
add r0, sp, #0x10
str r0, [sp, #4]
add r2, #0xc0
add r3, #0xc4
ldr r2, [r2]
ldr r3, [r3]
add r0, r6, #0
add r1, r7, #0
bl MOD05_021EDED0
mov r4, #0
add r7, r4, #0
_021EF22A:
lsl r6, r4, #2
add r0, r5, r6
add r0, #0x90
ldr r1, [r0]
ldr r0, _021EF278 ; =0x0000085C
str r7, [r1, r0]
add r0, r5, #0
add r0, #0xb8
ldr r0, [r0]
bl MOD05_021F4CA8
add r1, r5, #0
add r1, #0xc0
ldr r1, [r1]
add r2, r5, #0
str r1, [sp]
add r1, r5, #0
add r1, #0xc4
ldr r1, [r1]
add r3, r5, #0
str r1, [sp, #4]
str r0, [sp, #8]
str r5, [sp, #0xc]
add r0, sp, #0x10
add r2, #0xb8
add r3, #0xbc
ldr r0, [r0, r6]
ldr r2, [r2]
ldr r3, [r3]
add r1, r4, #0
bl MOD05_021EE38C
add r0, r4, #1
lsl r0, r0, #0x18
lsr r4, r0, #0x18
cmp r4, #4
blo _021EF22A
add sp, #0x20
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_021EF278: .word 0x0000085C
thumb_func_start MOD05_021EF27C
MOD05_021EF27C: ; 0x021EF27C
push {r4, lr}
add r1, r0, #0
mov r3, #0
add r1, #0xa2
strb r3, [r1]
add r1, r0, #0
add r1, #0xa1
strb r3, [r1]
add r1, r0, #0
add r1, #0xa0
strb r3, [r1]
add r4, r0, #0
add r2, r3, #0
mov r1, #1
_021EF298:
str r2, [r4, #0x2c]
str r1, [r4, #0x28]
add r3, r3, #1
add r4, #0x30
cmp r3, #2
blt _021EF298
bl MOD05_021EF100
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021EF2AC
MOD05_021EF2AC: ; 0x021EF2AC
push {r4, lr}
add r4, r2, #0
add r2, #0xc8
ldr r2, [r2]
bl MOD05_021EEE08
add r1, r4, #0
add r1, #0xa8
str r0, [r1]
add r0, r4, #0
add r1, r4, #0
add r0, #0xa8
add r1, #0xc8
ldr r0, [r0]
ldr r1, [r1]
bl MOD05_021EF620
add r1, r4, #0
add r1, #0xad
strb r0, [r1]
add r0, r4, #0
add r0, #0xad
ldrb r0, [r0]
bl MOD05_021EEE34
add r1, r4, #0
add r1, #0xac
strb r0, [r1]
add r0, r4, #0
add r1, r4, #0
add r2, r4, #0
add r0, #0xa8
add r1, #0xc0
add r2, #0xc8
ldr r0, [r0]
ldr r1, [r1]
ldr r2, [r2]
bl MOD05_021EEE10
add r4, #0xa4
str r0, [r4]
pop {r4, pc}
thumb_func_start MOD05_021EF300
MOD05_021EF300: ; 0x021EF300
push {r4, r5, r6, r7, lr}
sub sp, #0xc
add r7, r2, #0
mov r2, #1
add r5, r3, #0
lsl r2, r2, #0x14
str r2, [r5]
str r2, [r5, #8]
mov r2, #0
add r4, r0, #0
mvn r2, r2
str r1, [sp, #4]
cmp r4, r2
beq _021EF362
bl _s32_div_f
lsl r0, r1, #0x10
lsr r6, r0, #0x10
ldr r1, [sp, #4]
add r0, r4, #0
bl _s32_div_f
lsl r0, r0, #0x10
lsr r4, r0, #0x10
add r0, r7, #0
bl FUN_020344FC
str r0, [sp, #8]
add r0, r7, #0
bl FUN_02034574
add r1, r0, #0
ldr r0, [sp, #8]
add r2, r6, #0
str r0, [sp]
add r0, r7, #0
add r3, r4, #0
bl FUN_02034578
lsl r0, r0, #0xf
str r0, [r5, #4]
ldr r1, [r5]
lsl r0, r6, #0x15
add r0, r1, r0
str r0, [r5]
ldr r1, [r5, #8]
lsl r0, r4, #0x15
add r0, r1, r0
str r0, [r5, #8]
_021EF362:
add sp, #0xc
pop {r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021EF368
MOD05_021EF368: ; 0x021EF368
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
str r1, [sp]
mov r1, #0x41
add r5, r0, #0
mov r0, #4
lsl r1, r1, #2
str r2, [sp, #4]
add r6, r3, #0
bl AllocFromHeap
mov r2, #0x41
mov r1, #0
lsl r2, r2, #2
add r4, r0, #0
bl MI_CpuFill8
cmp r6, #0
bne _021EF39A
add r0, r4, #0
ldr r1, _021EF42C ; =0x021F8B04
add r0, #0xf4
str r1, [r0]
mov r7, #1
b _021EF3AE
_021EF39A:
cmp r6, #1
bne _021EF3AA
add r0, r4, #0
ldr r1, _021EF430 ; =0x021F8B0C
add r0, #0xf4
str r1, [r0]
mov r7, #0
b _021EF3AE
_021EF3AA:
bl ErrorHandling
_021EF3AE:
add r0, r7, #0
bl MOD05_021F3BC0
str r0, [r4]
add r1, r4, #0
ldr r0, [sp]
add r1, #0xb8
str r0, [r1]
add r0, r4, #0
add r0, #0xbc
str r5, [r0]
add r0, r5, #0
bl FUN_020344FC
add r1, r4, #0
add r1, #0xc0
str r0, [r1]
add r0, r5, #0
bl FUN_0203450C
add r1, r4, #0
add r1, #0xc4
str r0, [r1]
add r0, r4, #0
add r0, #0xc0
ldr r0, [r0]
lsl r1, r0, #5
add r0, r4, #0
add r0, #0xc8
str r1, [r0]
add r1, r4, #0
ldr r0, [sp, #4]
add r1, #0xf0
str r0, [r1]
add r0, r4, #0
mov r1, #1
add r0, #0xec
str r1, [r0]
add r0, r4, #0
bl MOD05_021EF27C
add r0, r4, #0
mov r1, #0
add r0, #0xb0
str r1, [r0]
add r0, r4, #0
mov r1, #2
add r0, #0xb4
str r1, [r0]
mov r0, #0x43
mov r1, #4
bl NARC_ctor
add r1, r4, #0
add r1, #0xf8
str r0, [r1]
add r0, r4, #0
mov r1, #0
add r0, #0xfc
str r1, [r0]
add r0, r4, #0
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_021EF42C: .word 0x021F8B04
_021EF430: .word 0x021F8B0C
thumb_func_start MOD05_021EF434
MOD05_021EF434: ; 0x021EF434
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r6, r5, #0
add r6, #0xf4
add r3, r5, #0
ldr r6, [r6]
add r3, #0xc8
ldr r3, [r3]
ldr r6, [r6]
add r4, r1, #0
add r7, r2, #0
blx r6
add r0, r4, #0
add r1, r7, #0
add r2, r5, #0
bl MOD05_021EF2AC
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD05_021EF458
MOD05_021EF458: ; 0x021EF458
push {r3, r4, r5, r6, r7, lr}
add r5, r1, #0
add r2, r5, #0
add r3, r5, #0
add r1, #0xc4
add r2, #0xc8
add r3, #0xa8
ldr r1, [r1]
ldr r2, [r2]
ldr r3, [r3]
add r6, r0, #0
bl MOD05_021EEE60
add r1, r5, #0
add r2, r5, #0
add r1, #0xc0
add r2, #0xc8
ldr r1, [r1]
ldr r2, [r2]
add r7, r0, #0
bl MOD05_021EEDE4
add r1, r5, #0
add r1, #0xc8
add r4, r0, #0
ldr r1, [r1]
add r0, r7, #0
bl MOD05_021EF620
add r1, r5, #0
add r1, #0xa4
ldr r1, [r1]
cmp r1, r4
bne _021EF4C0
add r1, r5, #0
add r1, #0xad
ldrb r1, [r1]
cmp r1, r0
beq _021EF4C0
add r0, r4, #0
add r1, r6, #0
add r2, r5, #0
bl MOD05_021EEA0C
add r1, r5, #0
add r1, #0xad
add r5, #0xac
ldrb r1, [r1]
add r0, r6, #0
add r2, r5, #0
bl MOD05_021EEF04
_021EF4C0:
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021EF4C4
MOD05_021EF4C4: ; 0x021EF4C4
push {r3, r4, r5, r6, r7, lr}
mov r4, #0
add r5, r0, #0
add r6, r1, #0
sub r7, r4, #1
_021EF4CE:
lsl r0, r4, #2
add r0, r5, r0
add r0, #0x90
ldr r1, [r0]
mov r0, #0x86
lsl r0, r0, #4
ldr r0, [r1, r0]
cmp r0, r7
beq _021EF4EA
add r0, r4, #0
add r1, r5, #0
add r2, r6, #0
bl MOD05_021EED3C
_021EF4EA:
add r0, r4, #1
lsl r0, r0, #0x18
lsr r4, r0, #0x18
cmp r4, #4
blo _021EF4CE
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021EF4F8
MOD05_021EF4F8: ; 0x021EF4F8
push {r3, r4}
asr r4, r0, #0xf
lsr r4, r4, #0x10
add r4, r0, r4
asr r0, r4, #0x10
str r0, [r2]
asr r0, r1, #0xf
lsr r0, r0, #0x10
add r0, r1, r0
asr r0, r0, #0x10
str r0, [r3]
pop {r3, r4}
bx lr
.balign 4, 0
thumb_func_start MOD05_021EF514
MOD05_021EF514: ; 0x021EF514
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
bl FUN_020162FC
bl FUN_020AF6A4
bl FUN_020AFA30
mov r4, #0
add r6, r5, #4
mov r7, #0x30
_021EF52A:
add r0, r4, #0
mul r0, r7
add r0, r6, r0
bl MOD05_021EDEAC
add r0, r4, #1
lsl r0, r0, #0x18
lsr r4, r0, #0x18
cmp r4, #2
blo _021EF52A
mov r6, #0
add r7, r6, #0
_021EF542:
lsl r4, r6, #2
add r0, r5, r4
add r0, #0x90
ldr r2, [r0]
ldr r0, _021EF59C ; =0x00000864
mov r1, #0
str r1, [r2, r0]
add r0, r5, r4
add r0, #0x90
ldr r1, [r0]
ldr r0, _021EF5A0 ; =0x0000085C
ldr r0, [r1, r0]
bl MOD05_021F43C0
add r0, r5, r4
add r0, #0x90
ldr r1, [r0]
ldr r0, _021EF5A4 ; =0x00000868
ldr r0, [r1, r0]
bl MOD05_021E7C14
add r0, r5, r4
add r0, #0x90
ldr r0, [r0]
bl FreeToHeap
add r0, r5, r4
add r0, #0x90
str r7, [r0]
add r0, r6, #1
lsl r0, r0, #0x18
lsr r6, r0, #0x18
cmp r6, #4
blo _021EF542
add r0, r5, #0
mov r1, #3
add r0, #0xb4
str r1, [r0]
add r0, r5, #0
mov r1, #1
add r0, #0xb0
str r1, [r0]
add r5, #0xec
str r7, [r5]
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_021EF59C: .word 0x00000864
_021EF5A0: .word 0x0000085C
_021EF5A4: .word 0x00000868
thumb_func_start MOD05_021EF5A8
MOD05_021EF5A8: ; 0x021EF5A8
push {r4, lr}
add r4, r0, #0
add r0, #0xf8
ldr r0, [r0]
bl NARC_dtor
ldr r0, [r4]
bl MOD05_021F3C30
add r0, r4, #0
bl FreeToHeap
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021EF5C4
MOD05_021EF5C4: ; 0x021EF5C4
add r1, r0, #0
add r1, #0xb0
ldr r1, [r1]
cmp r1, #1
bne _021EF5DA
add r0, #0xa0
ldrb r0, [r0]
cmp r0, #0
bne _021EF5DA
mov r0, #1
bx lr
_021EF5DA:
mov r0, #0
bx lr
.balign 4, 0
thumb_func_start MOD05_021EF5E0
MOD05_021EF5E0: ; 0x021EF5E0
push {r4, r5}
add r5, r0, #0
add r4, r1, #0
add r2, r4, #0
add r3, r5, #0
ldmia r3!, {r0, r1}
add r2, #0xcc
stmia r2!, {r0, r1}
ldr r0, [r3]
add r4, #0xd8
str r0, [r2]
str r5, [r4]
pop {r4, r5}
bx lr
thumb_func_start MOD05_021EF5FC
MOD05_021EF5FC: ; 0x021EF5FC
mov r1, #0
add r0, #0xd8
str r1, [r0]
bx lr
thumb_func_start MOD05_021EF604
MOD05_021EF604: ; 0x021EF604
lsl r0, r0, #2
add r0, r1, r0
add r0, #0x90
ldr r1, [r0]
ldr r0, _021EF614 ; =0x00000868
ldr r0, [r1, r0]
str r0, [r2]
bx lr
.balign 4, 0
_021EF614: .word 0x00000868
thumb_func_start MOD05_021EF618
MOD05_021EF618: ; 0x021EF618
add r0, #0xac
ldrb r0, [r0]
bx lr
.balign 4, 0
thumb_func_start MOD05_021EF620
MOD05_021EF620: ; 0x021EF620
push {r4, lr}
add r4, r0, #0
bl _u32_div_f
lsr r2, r0, #0x1f
lsl r1, r0, #0x1b
sub r1, r1, r2
mov r0, #0x1b
ror r1, r0
mov r0, #0x1f
and r0, r4
add r1, r2, r1
cmp r0, #0x10
bge _021EF648
cmp r1, #0x10
bge _021EF644
mov r0, #0
pop {r4, pc}
_021EF644:
mov r0, #2
pop {r4, pc}
_021EF648:
cmp r1, #0x10
bge _021EF650
mov r0, #1
pop {r4, pc}
_021EF650:
mov r0, #3
pop {r4, pc}
thumb_func_start MOD05_021EF654
MOD05_021EF654: ; 0x021EF654
push {r3, r4, r5, lr}
add r4, r2, #0
add r5, r0, #0
add r0, r4, #0
add r0, #0xa4
ldr r0, [r0]
cmp r0, r5
bne _021EF66A
add r4, #0xac
ldrb r0, [r4]
pop {r3, r4, r5, pc}
_021EF66A:
mov r0, #0
mvn r0, r0
cmp r5, r0
bne _021EF676
bl ErrorHandling
_021EF676:
add r0, r4, #0
add r0, #0xac
ldrb r1, [r0]
cmp r1, #3
bls _021EF682
b _021EF820
_021EF682:
add r0, r1, r1
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021EF68E: ; jump table
.short _021EF696 - _021EF68E - 2 ; case 0
.short _021EF6F8 - _021EF68E - 2 ; case 1
.short _021EF75C - _021EF68E - 2 ; case 2
.short _021EF7BE - _021EF68E - 2 ; case 3
_021EF696:
add r0, r4, #0
add r0, #0xa4
add r2, r4, #0
ldr r0, [r0]
add r2, #0xc0
ldr r2, [r2]
sub r3, r5, r0
cmp r2, r3
bne _021EF6B0
add r0, r1, #2
lsl r0, r0, #0x18
lsr r0, r0, #0x18
pop {r3, r4, r5, pc}
_021EF6B0:
cmp r3, #1
bne _021EF6CA
add r1, r5, #0
bl MOD05_021EDE58
cmp r0, #0
beq _021EF6CA
add r4, #0xac
ldrb r0, [r4]
add r0, r0, #1
lsl r0, r0, #0x18
lsr r0, r0, #0x18
pop {r3, r4, r5, pc}
_021EF6CA:
add r0, r4, #0
add r1, r4, #0
add r0, #0xa4
add r1, #0xc0
ldr r2, [r1]
ldr r0, [r0]
add r3, r2, #1
sub r1, r5, r0
cmp r3, r1
bne _021EF6F4
add r1, r5, #0
bl MOD05_021EDE58
cmp r0, #0
bne _021EF6F4
add r4, #0xac
ldrb r0, [r4]
add r0, r0, #3
lsl r0, r0, #0x18
lsr r0, r0, #0x18
pop {r3, r4, r5, pc}
_021EF6F4:
mov r0, #4
pop {r3, r4, r5, pc}
_021EF6F8:
add r0, r4, #0
add r0, #0xa4
add r2, r4, #0
ldr r0, [r0]
add r2, #0xc0
ldr r2, [r2]
sub r3, r5, r0
cmp r2, r3
bne _021EF712
add r0, r1, #2
lsl r0, r0, #0x18
lsr r0, r0, #0x18
pop {r3, r4, r5, pc}
_021EF712:
sub r1, r0, r5
cmp r1, #1
bne _021EF72E
add r1, r5, #0
bl MOD05_021EDE58
cmp r0, #0
beq _021EF72E
add r4, #0xac
ldrb r0, [r4]
sub r0, r0, #1
lsl r0, r0, #0x18
lsr r0, r0, #0x18
pop {r3, r4, r5, pc}
_021EF72E:
add r0, r4, #0
add r1, r4, #0
add r0, #0xa4
add r1, #0xc0
ldr r2, [r1]
ldr r0, [r0]
sub r3, r2, #1
sub r1, r5, r0
cmp r3, r1
bne _021EF758
add r1, r5, #0
bl MOD05_021EDE58
cmp r0, #0
bne _021EF758
add r4, #0xac
ldrb r0, [r4]
add r0, r0, #1
lsl r0, r0, #0x18
lsr r0, r0, #0x18
pop {r3, r4, r5, pc}
_021EF758:
mov r0, #4
pop {r3, r4, r5, pc}
_021EF75C:
add r0, r4, #0
add r0, #0xa4
add r2, r4, #0
ldr r0, [r0]
add r2, #0xc0
ldr r2, [r2]
sub r3, r0, r5
cmp r2, r3
bne _021EF776
sub r0, r1, #2
lsl r0, r0, #0x18
lsr r0, r0, #0x18
pop {r3, r4, r5, pc}
_021EF776:
sub r1, r2, #1
cmp r1, r3
bne _021EF792
add r1, r5, #0
bl MOD05_021EDE58
cmp r0, #0
bne _021EF792
add r4, #0xac
ldrb r0, [r4]
sub r0, r0, #1
lsl r0, r0, #0x18
lsr r0, r0, #0x18
pop {r3, r4, r5, pc}
_021EF792:
add r0, r4, #0
add r0, #0xa4
ldr r0, [r0]
sub r1, r5, r0
cmp r1, #1
bne _021EF7BA
add r2, r4, #0
add r2, #0xc0
ldr r2, [r2]
add r1, r5, #0
bl MOD05_021EDE58
cmp r0, #0
beq _021EF7BA
add r4, #0xac
ldrb r0, [r4]
add r0, r0, #1
lsl r0, r0, #0x18
lsr r0, r0, #0x18
pop {r3, r4, r5, pc}
_021EF7BA:
mov r0, #4
pop {r3, r4, r5, pc}
_021EF7BE:
add r0, r4, #0
add r0, #0xa4
add r2, r4, #0
ldr r0, [r0]
add r2, #0xc0
ldr r2, [r2]
sub r3, r0, r5
cmp r2, r3
bne _021EF7D8
sub r0, r1, #2
lsl r0, r0, #0x18
lsr r0, r0, #0x18
pop {r3, r4, r5, pc}
_021EF7D8:
add r1, r2, #1
cmp r1, r3
bne _021EF7F4
add r1, r5, #0
bl MOD05_021EDE58
cmp r0, #0
bne _021EF7F4
add r4, #0xac
ldrb r0, [r4]
sub r0, r0, #3
lsl r0, r0, #0x18
lsr r0, r0, #0x18
pop {r3, r4, r5, pc}
_021EF7F4:
add r0, r4, #0
add r0, #0xa4
ldr r0, [r0]
sub r1, r0, r5
cmp r1, #1
bne _021EF81C
add r2, r4, #0
add r2, #0xc0
ldr r2, [r2]
add r1, r5, #0
bl MOD05_021EDE58
cmp r0, #0
beq _021EF81C
add r4, #0xac
ldrb r0, [r4]
sub r0, r0, #1
lsl r0, r0, #0x18
lsr r0, r0, #0x18
pop {r3, r4, r5, pc}
_021EF81C:
mov r0, #4
pop {r3, r4, r5, pc}
_021EF820:
mov r0, #4
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021EF824
MOD05_021EF824: ; 0x021EF824
push {r3, r4, r5, lr}
add r5, r1, #0
add r4, r0, #0
cmp r5, #4
blo _021EF832
bl ErrorHandling
_021EF832:
lsl r0, r5, #2
add r0, r4, r0
add r0, #0x90
ldr r1, [r0]
mov r0, #0x86
lsl r0, r0, #4
ldr r0, [r1, r0]
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021EF844
MOD05_021EF844: ; 0x021EF844
push {r3, r4, r5, r6, r7, lr}
add r6, r2, #0
asr r2, r6, #4
add r5, r0, #0
lsr r2, r2, #0x1b
add r2, r6, r2
add r4, r1, #0
add r0, #0xc0
ldr r1, [r0]
asr r0, r4, #4
lsr r0, r0, #0x1b
add r0, r4, r0
asr r2, r2, #5
str r3, [sp]
add r3, r2, #0
asr r0, r0, #5
mul r3, r1
add r7, r0, r3
add r0, r5, #0
add r0, #0xc4
ldr r0, [r0]
mul r0, r1
cmp r7, r0
blo _021EF882
mov r0, #1
bl FUN_020336A0
cmp r0, #0
beq _021EF882
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
_021EF882:
add r0, r5, #0
add r0, #0xc0
ldr r1, [r0]
add r0, r5, #0
add r0, #0xc4
ldr r0, [r0]
mul r0, r1
cmp r7, r0
blo _021EF898
bl ErrorHandling
_021EF898:
add r0, r5, #0
add r0, #0xc8
ldr r1, [r0]
add r0, r6, #0
mul r0, r1
add r0, r4, r0
bl MOD05_021EF620
add r1, r0, #0
add r0, r7, #0
add r2, r5, #0
bl MOD05_021EF654
ldr r1, [sp]
cmp r1, #0
beq _021EF8BA
strb r0, [r1]
_021EF8BA:
cmp r0, #3
bls _021EF8C2
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
_021EF8C2:
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021EF8C8
MOD05_021EF8C8: ; 0x021EF8C8
lsl r1, r1, #2
add r0, r0, r1
add r0, #0x90
ldr r1, [r0]
ldr r0, _021EF8D8 ; =0x0000085C
ldr r0, [r1, r0]
bx lr
nop
_021EF8D8: .word 0x0000085C
thumb_func_start MOD05_021EF8DC
MOD05_021EF8DC: ; 0x021EF8DC
lsl r1, r1, #2
add r0, r0, r1
add r0, #0x90
ldr r0, [r0]
bx lr
.balign 4, 0
thumb_func_start MOD05_021EF8E8
MOD05_021EF8E8: ; 0x021EF8E8
add r3, r0, #0
add r3, #0xfc
str r1, [r3]
mov r1, #1
lsl r1, r1, #8
str r2, [r0, r1]
bx lr
.balign 4, 0
thumb_func_start MOD05_021EF8F8
MOD05_021EF8F8: ; 0x021EF8F8
push {r3, lr}
bl FUN_0201B6C8
mov r1, #1
str r1, [r0, #0x1c]
pop {r3, pc}
thumb_func_start MOD05_021EF904
MOD05_021EF904: ; 0x021EF904
push {r4, r5, r6, lr}
add r4, r1, #0
add r5, r0, #0
ldr r0, [r4, #0x1c]
cmp r0, #1
bne _021EF914
mov r0, #5
strb r0, [r4, #0x14]
_021EF914:
ldrb r0, [r4, #0x14]
cmp r0, #5
bhi _021EF9FE
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021EF926: ; jump table
.short _021EF932 - _021EF926 - 2 ; case 0
.short _021EF962 - _021EF926 - 2 ; case 1
.short _021EF998 - _021EF926 - 2 ; case 2
.short _021EF9B6 - _021EF926 - 2 ; case 3
.short _021EF9FE - _021EF926 - 2 ; case 4
.short _021EF9EC - _021EF926 - 2 ; case 5
_021EF932:
mov r0, #0
str r0, [r4, #0x24]
mov r0, #0xe
ldr r5, [r4, #4]
lsl r0, r0, #0xc
cmp r5, r0
bgt _021EF944
mov r0, #2
b _021EF948
_021EF944:
add r5, r0, #0
mov r0, #1
_021EF948:
strb r0, [r4, #0x14]
ldr r2, [r4, #0xc]
ldr r0, [r4]
ldr r3, [r2]
ldr r2, [r4, #0x24]
add r1, r5, #0
add r2, r3, r2
bl NARC_ReadFile
ldr r0, [r4, #0x24]
add r0, r0, r5
str r0, [r4, #0x24]
pop {r4, r5, r6, pc}
_021EF962:
ldr r2, [r4, #0x24]
ldr r0, [r4, #4]
sub r5, r0, r2
mov r0, #0xe
lsl r0, r0, #0xc
cmp r5, r0
ble _021EF976
add r5, r0, #0
mov r6, #0
b _021EF978
_021EF976:
mov r6, #1
_021EF978:
ldr r3, [r4, #0xc]
ldr r0, [r4]
ldr r3, [r3]
add r1, r5, #0
add r2, r3, r2
bl NARC_ReadFile
cmp r6, #0
beq _021EF990
mov r0, #2
strb r0, [r4, #0x14]
pop {r4, r5, r6, pc}
_021EF990:
ldr r0, [r4, #0x24]
add r0, r0, r5
str r0, [r4, #0x24]
pop {r4, r5, r6, pc}
_021EF998:
ldr r0, [r4, #0x10]
cmp r0, #0
beq _021EF9B0
bl FUN_0201B254
cmp r0, #1
bne _021EF9B0
ldr r0, [r4, #0xc]
ldr r1, [r4, #0x10]
ldr r0, [r0]
bl FUN_0201B3A8
_021EF9B0:
mov r0, #3
strb r0, [r4, #0x14]
pop {r4, r5, r6, pc}
_021EF9B6:
ldr r0, [r4, #0xc]
ldr r0, [r0]
bl FUN_020BC13C
add r5, r0, #0
ldrb r0, [r5, #9]
cmp r0, #1
beq _021EF9CA
bl ErrorHandling
_021EF9CA:
ldrh r0, [r5, #0xe]
add r0, r5, r0
ldr r0, [r0, #0xc]
add r5, r5, r0
bne _021EF9D8
bl ErrorHandling
_021EF9D8:
ldr r0, [r4, #8]
add r1, r5, #0
bl FUN_020B80B4
ldr r0, [r4, #0x18]
mov r1, #1
str r1, [r0]
mov r0, #5
strb r0, [r4, #0x14]
pop {r4, r5, r6, pc}
_021EF9EC:
ldr r0, [r4, #0x20]
mov r1, #0
str r1, [r0]
add r0, r4, #0
bl FreeToHeap
add r0, r5, #0
bl FUN_0200CAB4
_021EF9FE:
pop {r4, r5, r6, pc}
thumb_func_start MOD05_021EFA00
MOD05_021EFA00: ; 0x021EFA00
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r4, r1, #0
mov r0, #4
thumb_func_start MOD05_021EFA08
MOD05_021EFA08: ; 0x021EFA08
mov r1, #0x28
add r6, r2, #0
add r7, r3, #0
bl AllocFromHeapAtEnd
add r1, r0, #0
str r5, [r1]
str r4, [r1, #4]
str r6, [r1, #8]
ldr r0, [sp, #0x18]
str r7, [r1, #0xc]
str r0, [r1, #0x10]
mov r2, #0
ldr r0, [sp, #0x1c]
strb r2, [r1, #0x14]
str r0, [r1, #0x18]
str r2, [r0]
ldr r0, [sp, #0x20]
str r0, [r1, #0x20]
str r2, [r1, #0x1c]
ldr r0, _021EFA3C ; =MOD05_021EF904
mov r2, #1
bl FUN_0200CA44
pop {r3, r4, r5, r6, r7, pc}
nop
_021EFA3C: .word MOD05_021EF904
thumb_func_start MOD05_021EFA40
MOD05_021EFA40: ; 0x021EFA40
push {r3, r4, r5, lr}
add r4, r3, #0
add r5, r2, #0
ldr r2, [r4]
bl NARC_ReadFile
ldr r0, [sp, #0x10]
cmp r0, #0
beq _021EFA6A
bl FUN_0201B254
cmp r0, #1
bne _021EFA6A
ldr r0, [r4]
ldr r1, [sp, #0x10]
bl FUN_0201B3A8
cmp r0, #0
bne _021EFA6A
bl ErrorHandling
_021EFA6A:
ldr r0, [r4]
bl FUN_020BC13C
ldrb r0, [r0, #9]
cmp r0, #1
beq _021EFA7A
bl ErrorHandling
_021EFA7A:
ldr r0, [r4]
bl FUN_020BC13C
ldrh r1, [r0, #0xe]
add r1, r0, r1
ldr r1, [r1, #0xc]
add r4, r0, r1
bne _021EFA8E
bl ErrorHandling
_021EFA8E:
add r0, r5, #0
add r1, r4, #0
bl FUN_020B80B4
add r0, r4, #0
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021EFA9C
MOD05_021EFA9C: ; 0x021EFA9C
push {r3, lr}
ldr r0, [r0, #4]
ldr r0, [r0, #0x14]
cmp r0, #0
beq _021EFAAA
bl MOD20_022524DC
_021EFAAA:
pop {r3, pc}
thumb_func_start MOD05_021EFAAC
MOD05_021EFAAC: ; 0x021EFAAC
push {r3, r4, r5, r6, lr}
sub sp, #4
add r5, r0, #0
ldr r0, [r5, #0xc]
bl FUN_0204C1A8
add r4, r0, #0
ldr r0, [r5, #0xc]
bl FUN_020462AC
add r6, r0, #0
add r0, r4, #0
bl FUN_0204BEC8
cmp r0, #0
beq _021EFAF8
add r0, r6, #0
bl FUN_0205F1E4
cmp r0, #0
bne _021EFAF8
ldr r0, _021EFB0C ; =SDK_OVERLAY_MODULE_20_ID
mov r1, #2
bl HandleLoadOverlay
mov r0, #1
bl FUN_0200A03C
str r0, [sp]
ldr r1, [r5, #4]
ldr r2, [r5, #0xc]
ldr r3, [r5, #8]
add r0, r5, #0
add r1, #0x14
bl MOD20_02252448
add sp, #4
pop {r3, r4, r5, r6, pc}
_021EFAF8:
ldr r0, _021EFB10 ; =SDK_OVERLAY_MODULE_19_ID
mov r1, #2
bl HandleLoadOverlay
ldr r0, [r5, #8]
bl MOD19_02252440
add sp, #4
pop {r3, r4, r5, r6, pc}
nop
_021EFB0C: .word SDK_OVERLAY_MODULE_20_ID
_021EFB10: .word SDK_OVERLAY_MODULE_19_ID
thumb_func_start MOD05_021EFB14
MOD05_021EFB14: ; 0x021EFB14
push {r4, r5, r6, lr}
add r5, r0, #0
ldr r0, [r5, #0xc]
bl FUN_0204C1A8
add r4, r0, #0
ldr r0, [r5, #0xc]
bl FUN_020462AC
add r6, r0, #0
add r0, r4, #0
bl FUN_0204BEC8
cmp r0, #0
beq _021EFB46
add r0, r6, #0
bl FUN_0205F1E4
cmp r0, #0
bne _021EFB46
ldr r0, [r5, #4]
ldr r0, [r0, #0x14]
bl MOD20_022524BC
pop {r4, r5, r6, pc}
_021EFB46:
ldr r0, [r5, #8]
bl MOD19_022524F4
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_start MOD05_021EFB50
MOD05_021EFB50: ; 0x021EFB50
push {r4, r5, r6, lr}
add r5, r0, #0
ldr r0, [r5, #0xc]
bl FUN_0204C1A8
add r4, r0, #0
ldr r0, [r5, #0xc]
bl FUN_020462AC
add r6, r0, #0
add r0, r4, #0
bl FUN_0204BEC8
cmp r0, #0
beq _021EFB94
add r0, r6, #0
bl FUN_0205F1E4
cmp r0, #0
bne _021EFB94
ldr r0, [r5, #4]
ldr r0, [r0, #0x14]
bl MOD20_022524D0
cmp r0, #0
beq _021EFBA8
ldr r0, [r5, #4]
mov r1, #0
str r1, [r0, #0x14]
ldr r0, _021EFBAC ; =SDK_OVERLAY_MODULE_20_ID
bl UnloadOverlayByID
mov r0, #1
pop {r4, r5, r6, pc}
_021EFB94:
ldr r0, [r5, #8]
bl MOD19_02252504
cmp r0, #0
beq _021EFBA8
ldr r0, _021EFBB0 ; =SDK_OVERLAY_MODULE_19_ID
bl UnloadOverlayByID
mov r0, #1
pop {r4, r5, r6, pc}
_021EFBA8:
mov r0, #0
pop {r4, r5, r6, pc}
.balign 4, 0
_021EFBAC: .word SDK_OVERLAY_MODULE_20_ID
_021EFBB0: .word SDK_OVERLAY_MODULE_19_ID
thumb_func_start MOD05_021EFBB4
MOD05_021EFBB4: ; 0x021EFBB4
push {r4, lr}
add r4, r0, #0
ldr r0, _021EFBC8 ; =SDK_OVERLAY_MODULE_19_ID
mov r1, #2
bl HandleLoadOverlay
ldr r0, [r4, #8]
bl MOD19_02252440
pop {r4, pc}
.balign 4, 0
_021EFBC8: .word SDK_OVERLAY_MODULE_19_ID
thumb_func_start MOD05_021EFBCC
MOD05_021EFBCC: ; 0x021EFBCC
ldr r3, _021EFBD4 ; =MOD19_022524F4
ldr r0, [r0, #8]
bx r3
nop
_021EFBD4: .word MOD19_022524F4
thumb_func_start MOD05_021EFBD8
MOD05_021EFBD8: ; 0x021EFBD8
push {r3, lr}
ldr r0, [r0, #8]
bl MOD19_02252504
cmp r0, #0
beq _021EFBEE
ldr r0, _021EFBF4 ; =SDK_OVERLAY_MODULE_19_ID
bl UnloadOverlayByID
mov r0, #1
pop {r3, pc}
_021EFBEE:
mov r0, #0
pop {r3, pc}
nop
_021EFBF4: .word SDK_OVERLAY_MODULE_19_ID
thumb_func_start MOD05_021EFBF8
MOD05_021EFBF8: ; 0x021EFBF8
push {r4, lr}
sub sp, #8
add r4, r0, #0
ldr r0, [r4, #0x34]
bl FUN_020286EC
mov r1, #0
bl FUN_0202838C
add r1, r4, #0
ldr r0, [r4, #0x34]
add r1, #0x4c
mov r2, #4
bl FUN_020339B4
cmp r0, #0
bne _021EFC20
add sp, #8
mov r0, #1
pop {r4, pc}
_021EFC20:
add r0, r4, #0
mov r1, #0
add r0, #0x8c
str r1, [r0]
ldr r0, [r4, #0x34]
bl LoadPlayerDataAddress
bl FUN_02025084
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp]
mov r0, #4
str r0, [sp, #4]
ldr r0, [r4, #0x30]
ldr r2, _021EFC6C ; =0x000001E2
ldr r0, [r0, #8]
mov r1, #3
mov r3, #0xa
bl FUN_0200CD68
mov r0, #0
str r0, [sp]
mov r0, #4
str r0, [sp, #4]
ldr r0, [r4, #0x30]
ldr r2, _021EFC70 ; =0x000003D9
ldr r0, [r0, #8]
mov r1, #3
mov r3, #0xb
bl FUN_0200CB00
mov r0, #1
str r0, [r4, #0x48]
mov r0, #0
add sp, #8
pop {r4, pc}
nop
_021EFC6C: .word 0x000001E2
_021EFC70: .word 0x000003D9
thumb_func_start MOD05_021EFC74
MOD05_021EFC74: ; 0x021EFC74
push {r3, r4, r5, r6, lr}
sub sp, #4
mov r1, #0
add r6, r0, #0
mvn r1, r1
add r0, #0x8c
str r1, [r0]
mov r4, #0
bl FUN_02030F20
cmp r0, #0
ble _021EFCB0
add r5, r6, #0
_021EFC8E:
ldr r0, [r5, #0x4c]
cmp r0, #2
bne _021EFCA4
add r0, r6, #0
add r0, #0x8c
str r4, [r0]
lsl r0, r4, #2
mov r1, #0
add r0, r6, r0
str r1, [r0, #0x4c]
b _021EFCB0
_021EFCA4:
add r5, r5, #4
add r4, r4, #1
bl FUN_02030F20
cmp r4, r0
blt _021EFC8E
_021EFCB0:
add r0, r6, #0
add r0, #0x8c
ldr r1, [r0]
mov r0, #0
mvn r0, r0
cmp r1, r0
bne _021EFCC4
add sp, #4
mov r0, #1
pop {r3, r4, r5, r6, pc}
_021EFCC4:
ldr r0, [r6, #0x34]
bl FUN_0206F158
ldr r1, _021EFD3C ; =0x000001B5
mov r2, #1
mov r3, #4
bl FUN_0206EE50
cmp r0, #1
bne _021EFCFE
add r0, r6, #0
add r0, #0x8c
ldr r0, [r0]
bl FUN_0202DFA4
add r2, r0, #0
ldr r0, [r6, #0x38]
mov r1, #0
bl FUN_0200ABC0
add r0, r6, #0
mov r1, #0x21
bl MOD05_021F01EC
mov r0, #2
str r0, [r6, #0x48]
add sp, #4
mov r0, #0
pop {r3, r4, r5, r6, pc}
_021EFCFE:
ldr r0, [r6, #0x34]
bl FUN_020286EC
add r4, r0, #0
mov r5, #0
_021EFD08:
add r0, r4, #0
add r1, r5, #0
bl FUN_0202842C
cmp r0, #0
bne _021EFD2A
mov r0, #0
add r1, r6, #0
str r0, [sp]
add r1, #0x8c
ldr r0, [r6, #0x34]
ldr r1, [r1]
add r2, r5, #0
mov r3, #4
bl FUN_02033A70
b _021EFD30
_021EFD2A:
add r5, r5, #1
cmp r5, #0x20
blt _021EFD08
_021EFD30:
mov r0, #1
str r0, [r6, #0x48]
mov r0, #0
add sp, #4
pop {r3, r4, r5, r6, pc}
nop
_021EFD3C: .word 0x000001B5
thumb_func_start MOD05_021EFD40
MOD05_021EFD40: ; 0x021EFD40
push {r3, r4, lr}
sub sp, #4
add r4, r0, #0
ldr r0, [r4, #0x40]
lsl r0, r0, #0x18
lsr r0, r0, #0x18
bl FUN_0201BD70
cmp r0, #0
bne _021EFD6C
mov r0, #4
str r0, [sp]
ldr r0, [r4, #0x30]
ldr r1, _021EFD74 ; =0x021F8B44
ldr r0, [r0, #8]
ldr r2, _021EFD78 ; =0x000003D9
mov r3, #0xb
bl FUN_02002198
str r0, [r4, #0x44]
mov r0, #3
str r0, [r4, #0x48]
_021EFD6C:
mov r0, #0
add sp, #4
pop {r3, r4, pc}
nop
_021EFD74: .word 0x021F8B44
_021EFD78: .word 0x000003D9
thumb_func_start MOD05_021EFD7C
MOD05_021EFD7C: ; 0x021EFD7C
push {r3, r4, r5, r6, lr}
sub sp, #4
add r6, r0, #0
ldr r0, [r6, #0x44]
mov r1, #4
bl FUN_020021AC
mov r1, #0
mvn r1, r1
cmp r0, r1
bne _021EFD98
add sp, #4
mov r0, #0
pop {r3, r4, r5, r6, pc}
_021EFD98:
cmp r0, #0
bne _021EFDE4
ldr r0, [r6, #0x34]
bl FUN_020286EC
add r5, r0, #0
mov r4, #0
_021EFDA6:
add r0, r5, #0
add r1, r4, #0
bl FUN_0202842C
cmp r0, #0
bne _021EFDC8
mov r0, #0
add r1, r6, #0
str r0, [sp]
add r1, #0x8c
ldr r0, [r6, #0x34]
ldr r1, [r1]
add r2, r4, #0
mov r3, #4
bl FUN_02033A70
b _021EFDCE
_021EFDC8:
add r4, r4, #1
cmp r4, #0x20
blt _021EFDA6
_021EFDCE:
cmp r4, #0x20
bne _021EFDE4
add r0, r6, #0
mov r1, #0x22
bl MOD05_021F01EC
mov r0, #4
str r0, [r6, #0x48]
add sp, #4
mov r0, #0
pop {r3, r4, r5, r6, pc}
_021EFDE4:
mov r0, #1
str r0, [r6, #0x48]
mov r0, #0
add sp, #4
pop {r3, r4, r5, r6, pc}
.balign 4, 0
thumb_func_start MOD05_021EFDF0
MOD05_021EFDF0: ; 0x021EFDF0
push {r3, r4, lr}
sub sp, #4
add r4, r0, #0
ldr r0, [r4, #0x40]
lsl r0, r0, #0x18
lsr r0, r0, #0x18
bl FUN_0201BD70
cmp r0, #0
bne _021EFE1C
mov r0, #4
str r0, [sp]
ldr r0, [r4, #0x30]
ldr r1, _021EFE24 ; =0x021F8B44
ldr r0, [r0, #8]
ldr r2, _021EFE28 ; =0x000003D9
mov r3, #0xb
bl FUN_02002198
str r0, [r4, #0x44]
mov r0, #5
str r0, [r4, #0x48]
_021EFE1C:
mov r0, #0
add sp, #4
pop {r3, r4, pc}
nop
_021EFE24: .word 0x021F8B44
_021EFE28: .word 0x000003D9
thumb_func_start MOD05_021EFE2C
MOD05_021EFE2C: ; 0x021EFE2C
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0x44]
mov r1, #4
bl FUN_020021AC
mov r1, #0
mvn r1, r1
cmp r0, r1
bne _021EFE44
mov r0, #0
pop {r4, pc}
_021EFE44:
cmp r0, #0
bne _021EFE4C
mov r0, #8
b _021EFE6A
_021EFE4C:
add r0, r4, #0
add r0, #0x8c
ldr r0, [r0]
bl FUN_0202DFA4
add r2, r0, #0
ldr r0, [r4, #0x38]
mov r1, #0
bl FUN_0200ABC0
add r0, r4, #0
mov r1, #0x23
bl MOD05_021F01EC
mov r0, #6
_021EFE6A:
str r0, [r4, #0x48]
mov r0, #0
pop {r4, pc}
thumb_func_start MOD05_021EFE70
MOD05_021EFE70: ; 0x021EFE70
push {r3, r4, lr}
sub sp, #4
add r4, r0, #0
ldr r0, [r4, #0x40]
lsl r0, r0, #0x18
lsr r0, r0, #0x18
bl FUN_0201BD70
cmp r0, #0
bne _021EFE9C
mov r0, #4
str r0, [sp]
ldr r0, [r4, #0x30]
ldr r1, _021EFEA4 ; =0x021F8B44
ldr r0, [r0, #8]
ldr r2, _021EFEA8 ; =0x000003D9
mov r3, #0xb
bl FUN_02002198
str r0, [r4, #0x44]
mov r0, #7
str r0, [r4, #0x48]
_021EFE9C:
mov r0, #0
add sp, #4
pop {r3, r4, pc}
nop
_021EFEA4: .word 0x021F8B44
_021EFEA8: .word 0x000003D9
thumb_func_start MOD05_021EFEAC
MOD05_021EFEAC: ; 0x021EFEAC
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0x44]
mov r1, #4
bl FUN_020021AC
mov r1, #0
mvn r1, r1
cmp r0, r1
bne _021EFEC4
mov r0, #0
pop {r4, pc}
_021EFEC4:
cmp r0, #0
bne _021EFECC
mov r0, #0xc
b _021EFED6
_021EFECC:
add r0, r4, #0
mov r1, #0x22
bl MOD05_021F01EC
mov r0, #4
_021EFED6:
str r0, [r4, #0x48]
mov r0, #0
pop {r4, pc}
thumb_func_start MOD05_021EFEDC
MOD05_021EFEDC: ; 0x021EFEDC
push {r4, r5, r6, r7, lr}
sub sp, #0x34
add r5, r0, #0
ldr r0, [r5, #0x34]
bl FUN_020286EC
add r6, r0, #0
bl FUN_02028448
add r7, r0, #0
add r0, r7, #1
mov r1, #4
bl FUN_02012838
str r0, [r5]
mov r0, #1
str r0, [sp]
mov r0, #0xc
str r0, [sp, #4]
mov r0, #0xa
str r0, [sp, #8]
mov r0, #0xd
str r0, [sp, #0xc]
ldr r0, _021EFFB8 ; =0x000002A1
add r1, r5, #0
str r0, [sp, #0x10]
ldr r0, [r5, #0x30]
add r1, #0x20
ldr r0, [r0, #8]
mov r2, #3
mov r3, #0x13
bl FUN_02019064
add r0, r5, #0
ldr r2, _021EFFBC ; =0x000003D9
add r0, #0x20
mov r1, #1
mov r3, #0xb
bl FUN_0200CCA4
mov r4, #0
_021EFF2E:
add r0, r6, #0
add r1, r4, #0
bl FUN_0202842C
cmp r0, #0
beq _021EFF54
add r0, r6, #0
add r1, r4, #0
bl FUN_020283A4
add r1, r0, #0
ldr r0, [r5, #8]
bl FUN_02021E28
ldr r0, [r5]
ldr r1, [r5, #8]
add r2, r4, #0
bl FUN_020128A0
_021EFF54:
add r4, r4, #1
cmp r4, #0x20
blt _021EFF2E
mov r2, #0xb
add r3, r2, #0
ldr r0, [r5]
ldr r1, [r5, #0x3c]
sub r3, #0xd
bl FUN_02012880
ldr r4, _021EFFC0 ; =0x021F8B4C
add r3, sp, #0x14
add r2, r3, #0
ldmia r4!, {r0, r1}
stmia r3!, {r0, r1}
ldmia r4!, {r0, r1}
stmia r3!, {r0, r1}
ldmia r4!, {r0, r1}
stmia r3!, {r0, r1}
ldmia r4!, {r0, r1}
stmia r3!, {r0, r1}
add r1, r7, #1
add r0, sp, #0x14
strh r1, [r0, #0x10]
mov r1, #5
strh r1, [r0, #0x12]
ldr r0, [r5]
mov r1, #0
str r0, [sp, #0x14]
add r0, r5, #0
add r0, #0x20
str r0, [sp, #0x20]
ldr r0, _021EFFC4 ; =MOD05_021F0304
str r5, [sp, #0x30]
str r0, [sp, #0x18]
add r0, r2, #0
add r2, r1, #0
mov r3, #4
bl FUN_020010A8
str r0, [r5, #4]
add r0, r5, #0
add r0, #0x20
bl FUN_020191D0
mov r0, #9
str r0, [r5, #0x48]
mov r0, #0
add sp, #0x34
pop {r4, r5, r6, r7, pc}
.balign 4, 0
_021EFFB8: .word 0x000002A1
_021EFFBC: .word 0x000003D9
_021EFFC0: .word 0x021F8B4C
_021EFFC4: .word MOD05_021F0304
thumb_func_start MOD05_021EFFC8
MOD05_021EFFC8: ; 0x021EFFC8
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
ldr r0, [r5, #4]
bl FUN_02001204
add r4, r0, #0
mov r0, #1
mvn r0, r0
cmp r4, r0
beq _021EFFE6
add r0, r0, #1
cmp r4, r0
bne _021F000E
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
_021EFFE6:
ldr r0, _021F007C ; =0x000005DC
bl FUN_020054C8
add r0, r5, #0
add r0, #0x8c
ldr r0, [r0]
bl FUN_0202DFA4
add r2, r0, #0
ldr r0, [r5, #0x38]
mov r1, #0
bl FUN_0200ABC0
add r0, r5, #0
mov r1, #0x23
bl MOD05_021F01EC
mov r0, #6
str r0, [r5, #0x48]
b _021F0056
_021F000E:
ldr r0, _021F007C ; =0x000005DC
bl FUN_020054C8
add r0, r5, #0
add r0, #0x90
str r4, [r0]
ldr r0, [r5, #0x34]
bl FUN_020286EC
add r7, r0, #0
mov r0, #4
bl FUN_02023928
add r6, r0, #0
add r0, r7, #0
add r1, r4, #0
bl FUN_020283A4
add r1, r0, #0
add r0, r6, #0
bl FUN_0202395C
ldr r0, [r5, #0x38]
mov r1, #0
add r2, r6, #0
bl FUN_0200ABC0
add r0, r6, #0
bl FreeToHeap
add r0, r5, #0
mov r1, #0x24
bl MOD05_021F01EC
mov r0, #0xa
str r0, [r5, #0x48]
_021F0056:
add r0, r5, #0
add r0, #0x20
mov r1, #0
bl FUN_0200CCF8
add r0, r5, #0
add r0, #0x20
bl FUN_02019178
mov r1, #0
ldr r0, [r5, #4]
add r2, r1, #0
bl FUN_02001300
ldr r0, [r5]
bl FUN_02012870
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_021F007C: .word 0x000005DC
thumb_func_start MOD05_021F0080
MOD05_021F0080: ; 0x021F0080
push {r3, r4, lr}
sub sp, #4
add r4, r0, #0
ldr r0, [r4, #0x40]
lsl r0, r0, #0x18
lsr r0, r0, #0x18
bl FUN_0201BD70
cmp r0, #0
bne _021F00AC
mov r0, #4
str r0, [sp]
ldr r0, [r4, #0x30]
ldr r1, _021F00B4 ; =0x021F8B44
ldr r0, [r0, #8]
ldr r2, _021F00B8 ; =0x000003D9
mov r3, #0xb
bl FUN_02002198
str r0, [r4, #0x44]
mov r0, #0xb
str r0, [r4, #0x48]
_021F00AC:
mov r0, #0
add sp, #4
pop {r3, r4, pc}
nop
_021F00B4: .word 0x021F8B44
_021F00B8: .word 0x000003D9
thumb_func_start MOD05_021F00BC
MOD05_021F00BC: ; 0x021F00BC
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r0, [r5, #0x34]
bl FUN_020286EC
add r4, r0, #0
ldr r0, [r5, #0x44]
mov r1, #4
bl FUN_020021AC
mov r1, #0
mvn r1, r1
cmp r0, r1
bne _021F00DC
mov r0, #0
pop {r3, r4, r5, pc}
_021F00DC:
cmp r0, #0
bne _021F0104
add r1, r5, #0
add r1, #0x90
ldr r1, [r1]
add r0, r4, #0
bl FUN_02028468
mov r0, #0
add r1, r5, #0
str r0, [sp]
add r1, #0x8c
ldr r0, [r5, #0x34]
ldr r1, [r1]
mov r2, #0x1f
mov r3, #4
bl FUN_02033A70
mov r0, #1
b _021F0122
_021F0104:
add r0, r5, #0
add r0, #0x8c
ldr r0, [r0]
bl FUN_0202DFA4
add r2, r0, #0
ldr r0, [r5, #0x38]
mov r1, #0
bl FUN_0200ABC0
add r0, r5, #0
mov r1, #0x23
bl MOD05_021F01EC
mov r0, #6
_021F0122:
str r0, [r5, #0x48]
mov r0, #0
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021F0128
MOD05_021F0128: ; 0x021F0128
push {r3, r4, r5, lr}
add r5, r0, #0
bl FUN_0204652C
thumb_func_start MOD05_021F0130
MOD05_021F0130: ; 0x021F0130
add r4, r0, #0
add r0, r5, #0
bl FUN_02046528
ldr r0, [r4, #0x48]
cmp r0, #0xc
bhi _021F01E8
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021F014A: ; jump table
.short _021F0164 - _021F014A - 2 ; case 0
.short _021F0174 - _021F014A - 2 ; case 1
.short _021F0184 - _021F014A - 2 ; case 2
.short _021F018C - _021F014A - 2 ; case 3
.short _021F0194 - _021F014A - 2 ; case 4
.short _021F019C - _021F014A - 2 ; case 5
.short _021F01A4 - _021F014A - 2 ; case 6
.short _021F01AC - _021F014A - 2 ; case 7
.short _021F01B4 - _021F014A - 2 ; case 8
.short _021F01BC - _021F014A - 2 ; case 9
.short _021F01C4 - _021F014A - 2 ; case 10
.short _021F01CC - _021F014A - 2 ; case 11
.short _021F01D4 - _021F014A - 2 ; case 12
_021F0164:
add r0, r4, #0
bl MOD05_021EFBF8
cmp r0, #0
beq _021F01E8
mov r0, #0xc
str r0, [r4, #0x48]
b _021F01E8
_021F0174:
add r0, r4, #0
bl MOD05_021EFC74
cmp r0, #0
beq _021F01E8
mov r0, #0xc
str r0, [r4, #0x48]
b _021F01E8
_021F0184:
add r0, r4, #0
bl MOD05_021EFD40
b _021F01E8
_021F018C:
add r0, r4, #0
bl MOD05_021EFD7C
b _021F01E8
_021F0194:
add r0, r4, #0
bl MOD05_021EFDF0
b _021F01E8
_021F019C:
add r0, r4, #0
bl MOD05_021EFE2C
b _021F01E8
_021F01A4:
add r0, r4, #0
bl MOD05_021EFE70
b _021F01E8
_021F01AC:
add r0, r4, #0
bl MOD05_021EFEAC
b _021F01E8
_021F01B4:
add r0, r4, #0
bl MOD05_021EFEDC
b _021F01E8
_021F01BC:
add r0, r4, #0
bl MOD05_021EFFC8
b _021F01E8
_021F01C4:
add r0, r4, #0
bl MOD05_021F0080
b _021F01E8
_021F01CC:
add r0, r4, #0
bl MOD05_021F00BC
b _021F01E8
_021F01D4:
add r0, r4, #0
bl MOD05_021F0290
add r0, r4, #0
bl FreeToHeap
bl FUN_02037778
mov r0, #1
pop {r3, r4, r5, pc}
_021F01E8:
mov r0, #0
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021F01EC
MOD05_021F01EC: ; 0x021F01EC
push {r3, r4, r5, lr}
add r4, r0, #0
add r0, #0x10
add r5, r1, #0
bl FUN_02019048
cmp r0, #0
beq _021F0204
add r0, r4, #0
add r0, #0x10
bl FUN_02019178
_021F0204:
ldr r0, [r4, #0x3c]
ldr r2, [r4, #8]
add r1, r5, #0
bl FUN_0200A8E0
ldr r0, [r4, #0x38]
ldr r1, [r4, #0xc]
ldr r2, [r4, #8]
bl FUN_0200B7B8
ldr r0, [r4, #0x30]
add r1, r4, #0
ldr r0, [r0, #8]
add r1, #0x10
mov r2, #3
bl FUN_020545B8
ldr r0, [r4, #0x30]
ldr r0, [r0, #0xc]
bl LoadPlayerDataAddress
add r1, r0, #0
add r0, r4, #0
add r0, #0x10
bl FUN_02054608
ldr r0, [r4, #0x30]
ldr r0, [r0, #0xc]
bl LoadPlayerDataAddress
add r2, r0, #0
add r0, r4, #0
ldr r1, [r4, #0xc]
add r0, #0x10
mov r3, #1
bl FUN_02054658
str r0, [r4, #0x40]
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021F0254
MOD05_021F0254: ; 0x021F0254
push {r4, lr}
mov r1, #0
mov r2, #0x94
add r4, r0, #0
bl MI_CpuFill8
mov r0, #4
bl FUN_0200AA80
str r0, [r4, #0x38]
ldr r2, _021F028C ; =0x00000251
mov r0, #0
mov r1, #0x1a
mov r3, #4
bl FUN_0200A86C
str r0, [r4, #0x3c]
mov r0, #0x6e
mov r1, #4
bl FUN_020219F4
str r0, [r4, #0xc]
mov r0, #0x6e
mov r1, #4
bl FUN_020219F4
str r0, [r4, #8]
pop {r4, pc}
.balign 4, 0
_021F028C: .word 0x00000251
thumb_func_start MOD05_021F0290
MOD05_021F0290: ; 0x021F0290
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0x3c]
bl FUN_0200A8B8
ldr r0, [r4, #0x38]
bl FUN_0200AB18
ldr r0, [r4, #0xc]
bl FUN_02021A20
ldr r0, [r4, #8]
bl FUN_02021A20
add r0, r4, #0
add r0, #0x10
bl FUN_02019048
cmp r0, #0
beq _021F02C0
add r4, #0x10
add r0, r4, #0
bl FUN_02019178
_021F02C0:
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021F02C4
MOD05_021F02C4: ; 0x021F02C4
push {r4, r5, r6, lr}
add r6, r0, #0
ldr r5, [r6, #0x10]
mov r0, #0xb
mov r1, #0x94
bl AllocFromHeapAtEnd
add r4, r0, #0
bl MOD05_021F0254
str r6, [r4, #0x30]
ldr r0, [r6, #0xc]
str r0, [r4, #0x34]
mov r0, #0
str r0, [r4, #0x48]
cmp r5, #0
bne _021F02F2
ldr r1, _021F0300 ; =MOD05_021F0128
add r0, r6, #0
add r2, r4, #0
bl FUN_020463CC
pop {r4, r5, r6, pc}
_021F02F2:
ldr r1, _021F0300 ; =MOD05_021F0128
add r0, r5, #0
add r2, r4, #0
bl FUN_0204640C
pop {r4, r5, r6, pc}
nop
_021F0300: .word MOD05_021F0128
thumb_func_start MOD05_021F0304
MOD05_021F0304: ; 0x021F0304
push {r3, lr}
cmp r2, #0
bne _021F0310
ldr r0, _021F0314 ; =0x000005DC
bl FUN_020054C8
_021F0310:
pop {r3, pc}
nop
_021F0314: .word 0x000005DC
thumb_func_start MOD05_021F0318
MOD05_021F0318: ; 0x021F0318
push {r4, r5, r6, r7, lr}
sub sp, #0x6c
add r4, r3, #0
add r7, r0, #0
add r5, r1, #0
mov r0, #0
str r0, [sp, #0x58]
ldr r1, [r4, #0x50]
add r0, sp, #0x60
add r6, r2, #0
bl FUN_0201F02C
ldr r3, _021F0434 ; =0x021F8B6C
add r2, sp, #0xc
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldr r0, [r3]
cmp r6, #0x60
str r0, [r2]
bhs _021F0352
mov r1, #0x60
sub r0, r1, r6
lsl r0, r0, #0x18
ldrh r2, [r4]
lsr r0, r0, #0x18
mul r0, r2
bl _s32_div_f
b _021F036C
_021F0352:
sub r6, #0x60
lsl r0, r6, #0x18
ldrh r1, [r4]
lsr r0, r0, #0x18
mul r0, r1
mov r1, #0x60
bl _s32_div_f
lsl r0, r0, #0x10
lsr r1, r0, #0x10
mov r0, #0
mvn r0, r0
mul r0, r1
_021F036C:
lsl r0, r0, #0x10
lsr r1, r0, #0x10
cmp r5, #0x80
bhs _021F038A
mov r2, #0x80
sub r2, r2, r5
lsl r2, r2, #0x18
ldrh r0, [r4, #2]
lsr r2, r2, #0x18
mul r2, r0
asr r0, r2, #6
lsr r0, r0, #0x19
add r0, r2, r0
lsl r0, r0, #9
b _021F03A8
_021F038A:
ldrh r2, [r4, #2]
sub r5, #0x80
lsl r0, r5, #0x18
lsr r0, r0, #0x18
add r3, r2, #0
mul r3, r0
asr r0, r3, #6
lsr r0, r0, #0x19
add r0, r3, r0
lsl r0, r0, #9
lsr r2, r0, #0x10
mov r0, #0
mvn r0, r0
mul r0, r2
lsl r0, r0, #0x10
_021F03A8:
lsr r5, r0, #0x10
asr r0, r1, #4
lsl r3, r0, #1
lsl r1, r3, #1
ldr r2, _021F0438 ; =UNK_020FFA38
add r3, r3, #1
lsl r3, r3, #1
ldrsh r1, [r2, r1]
ldrsh r2, [r2, r3]
add r0, sp, #0x24
bl MTX_RotX43_
add r0, sp, #0xc
add r1, sp, #0x24
add r2, sp, #0x18
bl MTX_MultVec43
asr r0, r5, #4
lsl r2, r0, #1
lsl r1, r2, #1
ldr r3, _021F0438 ; =UNK_020FFA38
add r2, r2, #1
lsl r2, r2, #1
ldrsh r1, [r3, r1]
ldrsh r2, [r3, r2]
add r0, sp, #0x24
bl MTX_RotY43_
add r0, sp, #0x18
add r1, sp, #0x24
add r2, r0, #0
bl MTX_MultVec43
add r0, sp, #0x18
add r1, r4, #0
add r1, #0x20
add r2, r0, #0
bl MTX_MultVec43
add r0, r4, #0
add r0, #0x10
add r1, sp, #0x18
bl VEC_DotProduct
add r1, r0, #0
ldr r0, [r4, #0x1c]
bl FX_Div
neg r0, r0
add r1, sp, #0x18
add r2, r4, #4
add r3, sp, #0
bl VEC_MultAdd
ldr r1, [sp, #0x60]
ldr r0, [sp]
add r2, sp, #0x54
add r0, r1, r0
str r0, [sp, #0x54]
ldr r1, [sp, #0x68]
ldr r0, [sp, #8]
add r0, r1, r0
str r0, [sp, #0x5c]
ldmia r2!, {r0, r1}
stmia r7!, {r0, r1}
ldr r0, [r2]
str r0, [r7]
add sp, #0x6c
pop {r4, r5, r6, r7, pc}
nop
_021F0434: .word 0x021F8B6C
_021F0438: .word UNK_020FFA38
thumb_func_start MOD05_021F043C
MOD05_021F043C: ; 0x021F043C
push {r3, r4, r5, lr}
add r5, r0, #0
mov r0, #4
mov r1, #0x60
bl AllocFromHeap
add r1, r5, #0
add r4, r0, #0
bl MOD05_021F0454
add r0, r4, #0
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021F0454
MOD05_021F0454: ; 0x021F0454
push {r4, r5, lr}
sub sp, #0x2c
add r5, r0, #0
add r4, r1, #0
add r0, sp, #0
bl FUN_0201F014
add r0, r4, #0
bl FUN_0201F008
strh r0, [r5]
ldrh r0, [r5]
ldr r2, _021F04F0 ; =UNK_020FFA38
asr r0, r0, #4
lsl r1, r0, #1
lsl r0, r1, #1
add r1, r1, #1
lsl r1, r1, #1
ldrsh r0, [r2, r0]
ldrsh r1, [r2, r1]
bl FX_Div
lsl r0, r0, #2
mov r1, #3
bl _s32_div_f
bl FX_Atan
ldr r3, _021F04F4 ; =0x021F8B78
strh r0, [r5, #2]
ldmia r3!, {r0, r1}
add r2, sp, #0x20
stmia r2!, {r0, r1}
ldr r0, [r3]
add r1, r4, #0
str r0, [r2]
add r0, sp, #0x14
bl FUN_0201F03C
add r0, sp, #8
add r1, r4, #0
bl FUN_0201F02C
add r0, sp, #0x14
add r1, sp, #8
add r2, r5, #4
bl VEC_Subtract
add r3, sp, #0x20
add r2, r5, #0
ldmia r3!, {r0, r1}
add r2, #0x10
stmia r2!, {r0, r1}
ldr r0, [r3]
add r1, r5, #4
str r0, [r2]
add r0, sp, #0x20
bl VEC_DotProduct
str r0, [r5, #0x1c]
add r0, sp, #0
ldrh r0, [r0]
ldr r3, _021F04F0 ; =UNK_020FFA38
asr r0, r0, #4
lsl r2, r0, #1
lsl r1, r2, #1
add r2, r2, #1
lsl r2, r2, #1
add r0, r5, #0
ldrsh r1, [r3, r1]
ldrsh r2, [r3, r2]
add r0, #0x20
bl MTX_RotX43_
str r4, [r5, #0x50]
add sp, #0x2c
pop {r4, r5, pc}
nop
_021F04F0: .word UNK_020FFA38
_021F04F4: .word 0x021F8B78
thumb_func_start MOD05_021F04F8
MOD05_021F04F8: ; 0x021F04F8
push {r4, lr}
add r4, r0, #0
ldr r0, [r4]
cmp r0, #0
beq _021F0512
bne _021F0508
bl ErrorHandling
_021F0508:
ldr r0, [r4]
bl FreeToHeap
mov r0, #0
str r0, [r4]
_021F0512:
pop {r4, pc}
thumb_func_start MOD05_021F0514
MOD05_021F0514: ; 0x021F0514
push {r4, lr}
add r4, r0, #0
bl FUN_02058458
cmp r0, #0x97
bgt _021F053E
bge _021F05B2
cmp r0, #0x15
bgt _021F052E
bge _021F059E
cmp r0, #0
beq _021F059E
b _021F05BA
_021F052E:
cmp r0, #0x62
bgt _021F05BA
cmp r0, #0x61
blt _021F05BA
beq _021F059E
cmp r0, #0x62
beq _021F059E
b _021F05BA
_021F053E:
cmp r0, #0xb0
bgt _021F0554
bge _021F059E
cmp r0, #0x99
bgt _021F05BA
cmp r0, #0x98
blt _021F05BA
beq _021F05B2
cmp r0, #0x99
beq _021F05B2
b _021F05BA
_021F0554:
cmp r0, #0xb1
bgt _021F055C
beq _021F059E
b _021F05BA
_021F055C:
sub r0, #0xb2
cmp r0, #0x17
bhi _021F05BA
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021F056E: ; jump table
.short _021F059E - _021F056E - 2 ; case 0
.short _021F059E - _021F056E - 2 ; case 1
.short _021F059E - _021F056E - 2 ; case 2
.short _021F059E - _021F056E - 2 ; case 3
.short _021F05BA - _021F056E - 2 ; case 4
.short _021F05BA - _021F056E - 2 ; case 5
.short _021F05BA - _021F056E - 2 ; case 6
.short _021F05BA - _021F056E - 2 ; case 7
.short _021F059E - _021F056E - 2 ; case 8
.short _021F059E - _021F056E - 2 ; case 9
.short _021F059E - _021F056E - 2 ; case 10
.short _021F059E - _021F056E - 2 ; case 11
.short _021F05BA - _021F056E - 2 ; case 12
.short _021F05BA - _021F056E - 2 ; case 13
.short _021F05BA - _021F056E - 2 ; case 14
.short _021F05BA - _021F056E - 2 ; case 15
.short _021F05BA - _021F056E - 2 ; case 16
.short _021F05A8 - _021F056E - 2 ; case 17
.short _021F059E - _021F056E - 2 ; case 18
.short _021F059E - _021F056E - 2 ; case 19
.short _021F059E - _021F056E - 2 ; case 20
.short _021F059E - _021F056E - 2 ; case 21
.short _021F059E - _021F056E - 2 ; case 22
.short _021F059E - _021F056E - 2 ; case 23
_021F059E:
add r0, r4, #0
bl FUN_02058628
ldr r0, [r0, #4]
pop {r4, pc}
_021F05A8:
add r0, r4, #0
bl FUN_02058628
ldr r0, [r0, #4]
pop {r4, pc}
_021F05B2:
add r0, r4, #0
bl MOD05_021F1C24
pop {r4, pc}
_021F05BA:
add r0, r4, #0
bl FUN_02058628
ldr r0, [r0, #8]
pop {r4, pc}
thumb_func_start MOD05_021F05C4
MOD05_021F05C4: ; 0x021F05C4
push {r3, r4, r5, lr}
mov r1, #0x18
add r5, r0, #0
bl FUN_02058604
add r4, r0, #0
mov r0, #0
mvn r0, r0
add r1, r4, #0
strh r0, [r4]
add r0, r5, #0
add r1, #8
bl MOD05_021F1FC8
ldr r0, [r4, #8]
cmp r0, #0
beq _021F05EC
add r0, r5, #0
bl FUN_020586A0
_021F05EC:
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021F05F0
MOD05_021F05F0: ; 0x021F05F0
push {r4, lr}
add r4, r0, #0
bl FUN_02058628
add r1, r0, #0
add r0, r4, #0
add r1, #8
bl MOD05_021F2060
pop {r4, pc}
thumb_func_start MOD05_021F0604
MOD05_021F0604: ; 0x021F0604
push {r3, r4, r5, lr}
add r5, r0, #0
bl FUN_02058628
add r4, r0, #0
ldr r0, [r4, #8]
cmp r0, #0
beq _021F061C
add r1, r4, #0
add r1, #0xc
bl MOD05_021F20D8
_021F061C:
add r4, #8
add r0, r5, #0
add r1, r4, #0
bl MOD05_021F2060
mov r1, #2
add r0, r5, #0
lsl r1, r1, #0x14
bl FUN_02058410
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021F0634
MOD05_021F0634: ; 0x021F0634
push {r3, r4, r5, lr}
add r5, r0, #0
bl FUN_02058628
add r4, r0, #0
add r0, r5, #0
bl MOD05_021F2E28
cmp r0, #1
beq _021F0678
ldr r0, [r4, #8]
cmp r0, #0
bne _021F0658
add r1, r4, #0
add r0, r5, #0
add r1, #8
bl MOD05_021F1FC8
_021F0658:
ldr r0, [r4, #8]
cmp r0, #0
beq _021F0678
add r1, r4, #0
add r1, #0xc
bl MOD05_021F20F8
ldr r1, [r4, #8]
add r0, r5, #0
bl MOD05_021F2F48
mov r1, #2
add r0, r5, #0
lsl r1, r1, #0x14
bl FUN_02058418
_021F0678:
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021F067C
MOD05_021F067C: ; 0x021F067C
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
add r4, r0, #0
bl FUN_02058628
ldr r7, [r0, #8]
add r0, r4, #0
bl FUN_02058628
str r0, [sp]
add r0, r4, #0
bl MOD05_021F2E28
cmp r0, #1
beq _021F06E6
cmp r7, #0
beq _021F06E6
add r0, r4, #0
bl FUN_020584C4
str r0, [sp, #4]
add r0, r4, #0
bl FUN_0205854C
add r5, r0, #0
cmp r5, #9
blt _021F06B6
bl ErrorHandling
_021F06B6:
lsl r6, r5, #2
ldr r5, _021F06EC ; =0x021FC4B4
ldr r2, [sp]
ldr r3, [sp, #4]
ldr r5, [r5, r6]
add r0, r4, #0
add r1, r7, #0
blx r5
ldr r1, [sp, #4]
ldr r0, [sp]
strh r1, [r0]
add r0, r4, #0
bl FUN_0205854C
ldr r1, [sp]
str r0, [r1, #4]
add r0, r4, #0
add r1, r7, #0
bl MOD05_021F2F48
add r0, r4, #0
add r1, r7, #0
bl MOD05_021F19A4
_021F06E6:
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
nop
_021F06EC: .word 0x021FC4B4
thumb_func_start MOD05_021F06F0
MOD05_021F06F0: ; 0x021F06F0
push {r3, r4, r5, lr}
add r4, r0, #0
bl FUN_02058628
add r5, r0, #0
add r0, r4, #0
bl MOD05_021F2E28
cmp r0, #1
beq _021F071A
ldr r5, [r5, #8]
cmp r5, #0
beq _021F071A
add r0, r4, #0
add r1, r5, #0
bl MOD05_021F2F48
add r0, r4, #0
add r1, r5, #0
bl MOD05_021F19A4
_021F071A:
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021F071C
MOD05_021F071C: ; 0x021F071C
push {r3, r4, r5, lr}
add r4, r0, #0
bl FUN_02058628
add r5, r0, #0
add r0, r4, #0
bl MOD05_021F2E28
cmp r0, #1
beq _021F075A
ldr r5, [r5, #8]
cmp r5, #0
beq _021F075A
add r0, r4, #0
bl MOD05_021F1DFC
cmp r0, #0
bne _021F074A
mov r1, #1
add r0, r5, #0
lsl r1, r1, #0xc
bl FUN_0201F854
_021F074A:
add r0, r4, #0
add r1, r5, #0
bl MOD05_021F2F48
add r0, r4, #0
add r1, r5, #0
bl MOD05_021F19A4
_021F075A:
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021F075C
MOD05_021F075C: ; 0x021F075C
push {r4, lr}
mov r0, #0
ldrsh r0, [r2, r0]
add r4, r1, #0
cmp r3, r0
beq _021F0780
add r0, r3, #0
bl MOD05_021F2FAC
add r1, r0, #0
add r0, r4, #0
bl FUN_0201F830
add r0, r4, #0
mov r1, #0
bl FUN_0201F890
b _021F0786
_021F0780:
add r0, r4, #0
bl MOD05_021F194C
_021F0786:
add r0, r4, #0
mov r1, #0
bl FUN_0201F854
pop {r4, pc}
thumb_func_start MOD05_021F0790
MOD05_021F0790: ; 0x021F0790
push {r3, r4, r5, lr}
add r5, r0, #0
mov r0, #0
ldrsh r0, [r2, r0]
add r4, r1, #0
cmp r3, r0
beq _021F07B4
add r0, r3, #0
bl MOD05_021F2FAC
add r1, r0, #0
add r0, r4, #0
bl FUN_0201F830
add r0, r4, #0
mov r1, #0
bl FUN_0201F890
_021F07B4:
add r0, r5, #0
bl MOD05_021F1DFC
cmp r0, #0
bne _021F07C8
mov r1, #2
add r0, r4, #0
lsl r1, r1, #0xa
bl FUN_0201F854
_021F07C8:
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021F07CC
MOD05_021F07CC: ; 0x021F07CC
push {r3, r4, r5, lr}
add r5, r0, #0
mov r0, #0
ldrsh r0, [r2, r0]
add r4, r1, #0
cmp r3, r0
beq _021F07F0
add r0, r3, #0
bl MOD05_021F2FAC
add r1, r0, #0
add r0, r4, #0
bl FUN_0201F830
add r0, r4, #0
mov r1, #0
bl FUN_0201F890
_021F07F0:
add r0, r5, #0
bl MOD05_021F1DFC
cmp r0, #0
bne _021F0804
mov r1, #1
add r0, r4, #0
lsl r1, r1, #0xc
bl FUN_0201F854
_021F0804:
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021F0808
MOD05_021F0808: ; 0x021F0808
push {r3, r4, r5, lr}
add r5, r0, #0
mov r0, #0
ldrsh r0, [r2, r0]
add r4, r1, #0
cmp r3, r0
beq _021F082C
add r0, r3, #0
bl MOD05_021F2FAC
add r1, r0, #0
add r0, r4, #0
bl FUN_0201F830
add r0, r4, #0
mov r1, #0
bl FUN_0201F890
_021F082C:
add r0, r5, #0
bl MOD05_021F1DFC
cmp r0, #0
bne _021F0840
mov r1, #2
add r0, r4, #0
lsl r1, r1, #0xc
bl FUN_0201F854
_021F0840:
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021F0844
MOD05_021F0844: ; 0x021F0844
push {r3, r4, r5, lr}
add r5, r0, #0
mov r0, #0
ldrsh r0, [r2, r0]
add r4, r1, #0
cmp r3, r0
beq _021F0868
add r0, r3, #0
bl MOD05_021F2FAC
add r1, r0, #0
add r0, r4, #0
bl FUN_0201F830
add r0, r4, #0
mov r1, #0
bl FUN_0201F890
_021F0868:
add r0, r5, #0
bl MOD05_021F1DFC
cmp r0, #0
bne _021F087C
mov r1, #1
add r0, r4, #0
lsl r1, r1, #0xe
bl FUN_0201F854
_021F087C:
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021F0880
MOD05_021F0880: ; 0x021F0880
push {r3, r4, r5, r6, lr}
sub sp, #0x1c
add r6, r0, #0
add r4, r2, #0
mov r0, #0
ldrsh r0, [r4, r0]
add r5, r1, #0
cmp r3, r0
beq _021F08AC
add r0, r3, #0
bl MOD05_021F2FAC
add r1, r0, #0
add r0, r5, #0
bl FUN_0201F830
add r0, r5, #0
mov r1, #0
bl FUN_0201F890
mov r0, #0
strh r0, [r4, #2]
_021F08AC:
ldr r0, [r4, #4]
cmp r0, #6
beq _021F08B6
mov r0, #0
strh r0, [r4, #2]
_021F08B6:
add r0, r6, #0
bl MOD05_021F1DFC
cmp r0, #0
bne _021F08FC
ldr r6, _021F0900 ; =0x021FC43C
add r3, sp, #0
ldmia r6!, {r0, r1}
add r2, r3, #0
stmia r3!, {r0, r1}
ldmia r6!, {r0, r1}
stmia r3!, {r0, r1}
ldmia r6!, {r0, r1}
stmia r3!, {r0, r1}
ldr r0, [r6]
mov r1, #2
str r0, [r3]
ldrsh r1, [r4, r1]
add r0, r5, #0
lsl r1, r1, #2
ldr r1, [r2, r1]
bl FUN_0201F854
mov r0, #2
ldrsh r1, [r4, r0]
add r1, r1, #1
strh r1, [r4, #2]
ldrsh r0, [r4, r0]
lsl r1, r0, #2
add r0, sp, #0
ldr r0, [r0, r1]
cmp r0, #0
bne _021F08FC
mov r0, #0
strh r0, [r4, #2]
_021F08FC:
add sp, #0x1c
pop {r3, r4, r5, r6, pc}
.balign 4, 0
_021F0900: .word 0x021FC43C
thumb_func_start MOD05_021F0904
MOD05_021F0904: ; 0x021F0904
push {r4, r5, r6, lr}
sub sp, #0x10
add r6, r0, #0
add r4, r2, #0
mov r0, #0
ldrsh r0, [r4, r0]
add r5, r1, #0
cmp r3, r0
beq _021F0930
add r0, r3, #0
bl MOD05_021F2FAC
add r1, r0, #0
add r0, r5, #0
bl FUN_0201F830
add r0, r5, #0
mov r1, #0
bl FUN_0201F890
mov r0, #0
strh r0, [r4, #2]
_021F0930:
ldr r0, [r4, #4]
cmp r0, #7
beq _021F093A
mov r0, #0
strh r0, [r4, #2]
_021F093A:
add r0, r6, #0
bl MOD05_021F1DFC
cmp r0, #0
bne _021F0978
ldr r6, _021F097C ; =0x021FC42C
add r3, sp, #0
add r2, r3, #0
ldmia r6!, {r0, r1}
stmia r3!, {r0, r1}
ldmia r6!, {r0, r1}
stmia r3!, {r0, r1}
mov r1, #2
ldrsh r1, [r4, r1]
add r0, r5, #0
lsl r1, r1, #2
ldr r1, [r2, r1]
bl FUN_0201F854
mov r0, #2
ldrsh r1, [r4, r0]
add r1, r1, #1
strh r1, [r4, #2]
ldrsh r0, [r4, r0]
lsl r1, r0, #2
add r0, sp, #0
ldr r0, [r0, r1]
cmp r0, #0
bne _021F0978
mov r0, #0
strh r0, [r4, #2]
_021F0978:
add sp, #0x10
pop {r4, r5, r6, pc}
.balign 4, 0
_021F097C: .word 0x021FC42C
thumb_func_start MOD05_021F0980
MOD05_021F0980: ; 0x021F0980
push {r4, r5, r6, lr}
sub sp, #0x20
add r6, r0, #0
add r4, r2, #0
mov r0, #0
ldrsh r0, [r4, r0]
add r5, r1, #0
cmp r3, r0
beq _021F09AC
add r0, r3, #0
bl MOD05_021F2FAC
add r1, r0, #0
add r0, r5, #0
bl FUN_0201F830
add r0, r5, #0
mov r1, #0
bl FUN_0201F890
mov r0, #0
strh r0, [r4, #2]
_021F09AC:
ldr r0, [r4, #4]
cmp r0, #8
beq _021F09B6
mov r0, #0
strh r0, [r4, #2]
_021F09B6:
add r0, r6, #0
bl MOD05_021F1DFC
cmp r0, #0
bne _021F09FC
ldr r6, _021F0A00 ; =0x021FC494
add r3, sp, #0
add r2, r3, #0
ldmia r6!, {r0, r1}
stmia r3!, {r0, r1}
ldmia r6!, {r0, r1}
stmia r3!, {r0, r1}
ldmia r6!, {r0, r1}
stmia r3!, {r0, r1}
ldmia r6!, {r0, r1}
stmia r3!, {r0, r1}
mov r1, #2
ldrsh r1, [r4, r1]
add r0, r5, #0
lsl r1, r1, #2
ldr r1, [r2, r1]
bl FUN_0201F854
mov r0, #2
ldrsh r1, [r4, r0]
add r1, r1, #1
strh r1, [r4, #2]
ldrsh r0, [r4, r0]
lsl r1, r0, #2
add r0, sp, #0
ldr r0, [r0, r1]
cmp r0, #0
bne _021F09FC
mov r0, #0
strh r0, [r4, #2]
_021F09FC:
add sp, #0x20
pop {r4, r5, r6, pc}
.balign 4, 0
_021F0A00: .word 0x021FC494
thumb_func_start MOD05_021F0A04
MOD05_021F0A04: ; 0x021F0A04
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
add r4, r0, #0
bl FUN_02058628
ldr r7, [r0, #8]
add r0, r4, #0
bl FUN_02058628
str r0, [sp]
add r0, r4, #0
bl MOD05_021F2E28
cmp r0, #1
beq _021F0A6E
cmp r7, #0
beq _021F0A6E
add r0, r4, #0
thumb_func_start MOD05_021F0A28
MOD05_021F0A28: ; 0x021F0A28
bl FUN_020584C4
str r0, [sp, #4]
add r0, r4, #0
bl FUN_0205854C
add r5, r0, #0
cmp r5, #0xa
blt _021F0A3E
bl ErrorHandling
_021F0A3E:
lsl r6, r5, #2
ldr r5, _021F0A74 ; =0x021FC528
ldr r2, [sp]
ldr r3, [sp, #4]
ldr r5, [r5, r6]
add r0, r4, #0
add r1, r7, #0
blx r5
ldr r1, [sp, #4]
ldr r0, [sp]
strh r1, [r0]
add r0, r4, #0
bl FUN_0205854C
ldr r1, [sp]
str r0, [r1, #4]
add r0, r4, #0
add r1, r7, #0
bl MOD05_021F2F48
add r0, r4, #0
add r1, r7, #0
bl MOD05_021F19A4
_021F0A6E:
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
nop
_021F0A74: .word 0x021FC528
thumb_func_start MOD05_021F0A78
MOD05_021F0A78: ; 0x021F0A78
push {r4, lr}
mov r0, #0
ldrsh r0, [r2, r0]
add r4, r1, #0
cmp r3, r0
bne _021F0A8A
ldr r0, [r2, #4]
cmp r0, #9
bne _021F0AA2
_021F0A8A:
add r0, r3, #0
bl MOD05_021F2FAC
add r1, r0, #0
add r0, r4, #0
bl FUN_0201F830
add r0, r4, #0
mov r1, #0
bl FUN_0201F890
b _021F0AA8
_021F0AA2:
add r0, r4, #0
bl MOD05_021F194C
_021F0AA8:
add r0, r4, #0
mov r1, #0
bl FUN_0201F854
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021F0AB4
MOD05_021F0AB4: ; 0x021F0AB4
push {r4, lr}
ldr r0, [r2, #4]
add r4, r1, #0
cmp r0, #9
beq _021F0ACE
add r0, r4, #0
mov r1, #4
bl FUN_0201F830
add r0, r4, #0
mov r1, #0
bl FUN_0201F890
_021F0ACE:
mov r1, #1
add r0, r4, #0
lsl r1, r1, #0xc
bl FUN_0201F854
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021F0ADC
MOD05_021F0ADC: ; 0x021F0ADC
push {r3, r4, r5, lr}
mov r1, #0x14
add r5, r0, #0
bl FUN_02058604
add r4, r0, #0
mov r0, #0
mvn r0, r0
strb r0, [r4]
bl rand_LC
lsr r2, r0, #0x1f
lsl r1, r0, #0x1c
sub r1, r1, r2
mov r0, #0x1c
ror r1, r0
add r0, r2, r1
strb r0, [r4, #2]
add r0, r5, #0
add r1, r4, #4
bl MOD05_021F1FC8
ldr r0, [r4, #4]
cmp r0, #0
beq _021F0B14
add r0, r5, #0
bl FUN_020586A0
_021F0B14:
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021F0B18
MOD05_021F0B18: ; 0x021F0B18
push {r4, lr}
add r4, r0, #0
bl FUN_02058628
add r1, r0, #0
add r0, r4, #0
add r1, r1, #4
bl MOD05_021F2060
pop {r4, pc}
thumb_func_start MOD05_021F0B2C
MOD05_021F0B2C: ; 0x021F0B2C
push {r3, r4, r5, lr}
add r5, r0, #0
bl FUN_02058628
add r4, r0, #0
ldr r0, [r4, #4]
cmp r0, #0
beq _021F0B44
add r1, r4, #0
add r1, #8
bl MOD05_021F20D8
_021F0B44:
add r0, r5, #0
add r1, r4, #4
bl MOD05_021F2060
mov r1, #2
add r0, r5, #0
lsl r1, r1, #0x14
bl FUN_02058410
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021F0B58
MOD05_021F0B58: ; 0x021F0B58
push {r3, r4, r5, lr}
add r5, r0, #0
bl FUN_02058628
add r4, r0, #0
add r0, r5, #0
bl MOD05_021F2E28
cmp r0, #1
beq _021F0B9A
ldr r0, [r4, #4]
cmp r0, #0
bne _021F0B7A
add r0, r5, #0
add r1, r4, #4
bl MOD05_021F1FC8
_021F0B7A:
ldr r0, [r4, #4]
cmp r0, #0
beq _021F0B9A
add r1, r4, #0
add r1, #8
bl MOD05_021F20F8
ldr r1, [r4, #4]
add r0, r5, #0
bl MOD05_021F2F48
mov r1, #2
add r0, r5, #0
lsl r1, r1, #0x14
bl FUN_02058418
_021F0B9A:
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021F0B9C
MOD05_021F0B9C: ; 0x021F0B9C
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
bl FUN_02058628
ldr r6, [r0, #4]
add r0, r5, #0
bl FUN_02058628
add r4, r0, #0
add r0, r5, #0
bl MOD05_021F2E28
cmp r0, #1
beq _021F0C26
cmp r6, #0
beq _021F0C26
add r0, r5, #0
bl FUN_020584C4
add r7, r0, #0
add r0, r5, #0
bl FUN_0205854C
mov r1, #2
ldrsb r0, [r4, r1]
cmp r0, #0
beq _021F0BE0
sub r0, r0, #1
strb r0, [r4, #2]
add r0, r6, #0
mov r1, #0
bl FUN_0201F854
b _021F0C0C
_021F0BE0:
add r0, r6, #0
lsl r1, r1, #0xb
bl FUN_0201F854
mov r0, #1
ldrsb r1, [r4, r0]
add r1, r1, #1
strb r1, [r4, #1]
ldrsb r0, [r4, r0]
cmp r0, #0x20
blt _021F0C0C
mov r0, #0
strb r0, [r4, #1]
bl rand_LC
lsr r1, r0, #0x1f
lsl r2, r0, #0x1c
sub r2, r2, r1
mov r0, #0x1c
ror r2, r0
add r0, r1, r2
strb r0, [r4, #2]
_021F0C0C:
strb r7, [r4]
add r0, r5, #0
bl FUN_0205854C
strb r0, [r4, #3]
add r0, r5, #0
add r1, r6, #0
bl MOD05_021F2F48
add r0, r5, #0
add r1, r6, #0
bl MOD05_021F19A4
_021F0C26:
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD05_021F0C28
MOD05_021F0C28: ; 0x021F0C28
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
add r5, r0, #0
bl FUN_02058628
ldr r4, [r0, #8]
add r0, r5, #0
bl FUN_02058628
add r6, r0, #0
add r0, r5, #0
bl MOD05_021F2E28
cmp r0, #1
beq _021F0CEA
cmp r4, #0
beq _021F0CEA
add r0, r5, #0
bl FUN_020584C4
add r7, r0, #0
add r0, r5, #0
bl FUN_0205854C
cmp r0, #0
bne _021F0C9E
cmp r7, #1
bls _021F0C66
mov r0, #1
str r0, [sp, #4]
b _021F0C6A
_021F0C66:
mov r0, #0
str r0, [sp, #4]
_021F0C6A:
add r0, r4, #0
bl FUN_0201F844
ldr r1, [sp, #4]
cmp r1, r0
bne _021F0C7C
ldr r0, [r6, #4]
cmp r0, #0
bne _021F0C94
_021F0C7C:
ldr r1, [sp, #4]
add r0, r4, #0
bl FUN_0201F830
add r0, r4, #0
mov r1, #0
bl FUN_0201F890
add r0, r4, #0
mov r1, #0
bl FUN_0201F854
_021F0C94:
add r0, r4, #0
mov r1, #0
bl FUN_0201F854
b _021F0CD0
_021F0C9E:
cmp r7, #1
bls _021F0CA8
mov r0, #1
str r0, [sp]
b _021F0CAC
_021F0CA8:
mov r0, #0
str r0, [sp]
_021F0CAC:
add r0, r4, #0
bl FUN_0201F844
ldr r1, [sp]
cmp r1, r0
beq _021F0CC6
add r0, r4, #0
bl FUN_0201F830
add r0, r4, #0
mov r1, #0
bl FUN_0201F890
_021F0CC6:
mov r1, #1
add r0, r4, #0
lsl r1, r1, #0xc
bl FUN_0201F854
_021F0CD0:
strh r7, [r6]
add r0, r5, #0
bl FUN_0205854C
str r0, [r6, #4]
add r0, r5, #0
add r1, r4, #0
bl MOD05_021F2F48
add r0, r5, #0
add r1, r4, #0
bl MOD05_021F19A4
_021F0CEA:
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021F0CF0
MOD05_021F0CF0: ; 0x021F0CF0
push {r3, r4, r5, lr}
mov r1, #0x14
add r5, r0, #0
bl FUN_02058604
add r4, r0, #0
mov r0, #0
mvn r0, r0
strb r0, [r4]
add r0, r5, #0
add r1, r4, #4
bl MOD05_021F1FC8
ldr r0, [r4, #4]
cmp r0, #0
beq _021F0D16
add r0, r5, #0
bl FUN_020586A0
_021F0D16:
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021F0D18
MOD05_021F0D18: ; 0x021F0D18
push {r3, r4, lr}
sub sp, #0xc
add r2, sp, #0
mov r1, #0
str r1, [r2]
str r1, [r2, #4]
add r4, r0, #0
str r1, [r2, #8]
bl FUN_02058628
add r1, r0, #0
add r0, r4, #0
add r1, r1, #4
bl MOD05_021F2060
add r0, r4, #0
add r1, sp, #0
bl FUN_02058B94
add sp, #0xc
pop {r3, r4, pc}
.balign 4, 0
thumb_func_start MOD05_021F0D44
MOD05_021F0D44: ; 0x021F0D44
push {r3, r4, r5, lr}
add r5, r0, #0
bl FUN_02058628
add r4, r0, #0
ldr r0, [r4, #4]
cmp r0, #0
beq _021F0D5C
add r1, r4, #0
add r1, #8
bl MOD05_021F20D8
_021F0D5C:
add r0, r5, #0
add r1, r4, #4
bl MOD05_021F2060
mov r1, #2
add r0, r5, #0
lsl r1, r1, #0x14
bl FUN_02058410
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021F0D70
MOD05_021F0D70: ; 0x021F0D70
push {r3, r4, r5, lr}
add r5, r0, #0
bl FUN_02058628
add r4, r0, #0
add r0, r5, #0
bl MOD05_021F2E28
cmp r0, #1
beq _021F0DB2
ldr r0, [r4, #4]
cmp r0, #0
bne _021F0D92
add r0, r5, #0
add r1, r4, #4
bl MOD05_021F1FC8
_021F0D92:
ldr r0, [r4, #4]
cmp r0, #0
beq _021F0DB2
add r1, r4, #0
add r1, #8
bl MOD05_021F20F8
ldr r1, [r4, #4]
add r0, r5, #0
bl MOD05_021F2F48
mov r1, #2
add r0, r5, #0
lsl r1, r1, #0x14
bl FUN_02058418
_021F0DB2:
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021F0DB4
MOD05_021F0DB4: ; 0x021F0DB4
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
add r4, r0, #0
bl FUN_02058628
ldr r7, [r0, #4]
add r0, r4, #0
bl FUN_02058628
str r0, [sp]
add r0, r4, #0
bl MOD05_021F2E28
cmp r0, #1
beq _021F0E1E
cmp r7, #0
beq _021F0E1E
add r0, r4, #0
bl FUN_020584C4
str r0, [sp, #4]
add r0, r4, #0
bl FUN_0205854C
add r5, r0, #0
cmp r5, #0xa
blt _021F0DEE
bl ErrorHandling
_021F0DEE:
lsl r6, r5, #2
ldr r5, _021F0E24 ; =0x021FC500
ldr r2, [sp]
ldr r3, [sp, #4]
ldr r5, [r5, r6]
add r0, r4, #0
add r1, r7, #0
blx r5
ldr r1, [sp, #4]
ldr r0, [sp]
strb r1, [r0]
add r0, r4, #0
bl FUN_0205854C
ldr r1, [sp]
strb r0, [r1, #2]
add r0, r4, #0
add r1, r7, #0
bl MOD05_021F2F48
add r0, r4, #0
add r1, r7, #0
bl MOD05_021F19A4
_021F0E1E:
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
nop
_021F0E24: .word 0x021FC500
thumb_func_start MOD05_021F0E28
MOD05_021F0E28: ; 0x021F0E28
push {r3, r4, r5, lr}
add r4, r2, #0
mov r0, #0
ldrsb r0, [r4, r0]
add r5, r1, #0
cmp r3, r0
beq _021F0E56
add r0, r3, #0
bl MOD05_021F2FAC
add r1, r0, #0
add r0, r5, #0
bl FUN_0201F830
add r0, r5, #0
mov r1, #0
bl FUN_0201F890
ldrb r1, [r4, #3]
mov r0, #1
bic r1, r0
strb r1, [r4, #3]
pop {r3, r4, r5, pc}
_021F0E56:
mov r0, #2
ldrsb r0, [r4, r0]
cmp r0, #9
bne _021F0E6C
ldrb r1, [r4, #3]
mov r0, #1
bic r1, r0
mov r0, #1
orr r0, r1
strb r0, [r4, #3]
pop {r3, r4, r5, pc}
_021F0E6C:
ldrb r0, [r4, #3]
lsl r0, r0, #0x1f
lsr r0, r0, #0x1f
cmp r0, #1
bne _021F0E8E
add r0, r3, #0
bl MOD05_021F2FAC
add r1, r0, #0
add r0, r5, #0
bl MOD05_021F1980
ldrb r1, [r4, #3]
mov r0, #1
bic r1, r0
strb r1, [r4, #3]
pop {r3, r4, r5, pc}
_021F0E8E:
add r0, r5, #0
bl MOD05_021F194C
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021F0E98
MOD05_021F0E98: ; 0x021F0E98
push {r4, r5, r6, lr}
add r6, r0, #0
add r4, r2, #0
mov r0, #0
ldrsb r0, [r4, r0]
add r5, r1, #0
cmp r3, r0
beq _021F0EC0
add r0, r3, #0
bl MOD05_021F2FAC
add r1, r0, #0
add r0, r5, #0
bl FUN_0201F830
add r0, r5, #0
mov r1, #0
bl FUN_0201F890
b _021F0EF6
_021F0EC0:
mov r0, #2
ldrsb r0, [r4, r0]
cmp r0, #9
bne _021F0ED6
ldrb r1, [r4, #3]
mov r0, #1
bic r1, r0
mov r0, #1
orr r0, r1
strb r0, [r4, #3]
pop {r4, r5, r6, pc}
_021F0ED6:
ldrb r0, [r4, #3]
lsl r0, r0, #0x1f
lsr r0, r0, #0x1f
cmp r0, #1
bne _021F0EF6
add r0, r3, #0
bl MOD05_021F2FAC
add r1, r0, #0
add r0, r5, #0
bl MOD05_021F1980
ldrb r1, [r4, #3]
mov r0, #1
bic r1, r0
strb r1, [r4, #3]
_021F0EF6:
add r0, r6, #0
bl MOD05_021F1DFC
cmp r0, #0
bne _021F0F0A
mov r1, #2
add r0, r5, #0
lsl r1, r1, #0xa
bl FUN_0201F854
_021F0F0A:
pop {r4, r5, r6, pc}
thumb_func_start MOD05_021F0F0C
MOD05_021F0F0C: ; 0x021F0F0C
push {r3, r4, r5, lr}
add r5, r0, #0
mov r0, #0
ldrsb r0, [r2, r0]
add r4, r1, #0
cmp r3, r0
beq _021F0F32
add r0, r3, #0
bl MOD05_021F2FAC
add r1, r0, #0
add r0, r4, #0
bl FUN_0201F830
add r0, r4, #0
mov r1, #0
bl FUN_0201F890
b _021F0F48
_021F0F32:
mov r0, #2
ldrsb r0, [r2, r0]
cmp r0, #9
bne _021F0F48
add r0, r3, #0
bl MOD05_021F2FAC
add r1, r0, #0
add r0, r4, #0
bl MOD05_021F1980
_021F0F48:
add r0, r5, #0
bl MOD05_021F1DFC
cmp r0, #0
bne _021F0F5C
mov r1, #1
add r0, r4, #0
lsl r1, r1, #0xc
bl FUN_0201F854
_021F0F5C:
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021F0F60
MOD05_021F0F60: ; 0x021F0F60
push {r3, r4, r5, lr}
add r5, r0, #0
mov r0, #0
ldrsb r0, [r2, r0]
add r4, r1, #0
cmp r3, r0
beq _021F0F86
add r0, r3, #0
bl MOD05_021F2FAC
add r1, r0, #0
add r0, r4, #0
bl FUN_0201F830
add r0, r4, #0
mov r1, #0
bl FUN_0201F890
b _021F0F9C
_021F0F86:
mov r0, #2
ldrsb r0, [r2, r0]
cmp r0, #9
bne _021F0F9C
add r0, r3, #0
bl MOD05_021F2FAC
add r1, r0, #0
add r0, r4, #0
bl MOD05_021F1980
_021F0F9C:
add r0, r5, #0
bl MOD05_021F1DFC
cmp r0, #0
bne _021F0FB0
mov r1, #2
add r0, r4, #0
lsl r1, r1, #0xc
bl FUN_0201F854
_021F0FB0:
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021F0FB4
MOD05_021F0FB4: ; 0x021F0FB4
push {r3, r4, r5, lr}
add r5, r0, #0
mov r0, #0
ldrsb r0, [r2, r0]
add r4, r1, #0
cmp r3, r0
beq _021F0FDA
add r0, r3, #0
bl MOD05_021F2FAC
add r1, r0, #0
add r0, r4, #0
bl FUN_0201F830
add r0, r4, #0
mov r1, #0
bl FUN_0201F890
b _021F0FF0
_021F0FDA:
mov r0, #2
ldrsb r0, [r2, r0]
cmp r0, #9
bne _021F0FF0
add r0, r3, #0
bl MOD05_021F2FAC
add r1, r0, #0
add r0, r4, #0
bl MOD05_021F1980
_021F0FF0:
add r0, r5, #0
bl MOD05_021F1DFC
cmp r0, #0
bne _021F1004
mov r1, #1
add r0, r4, #0
lsl r1, r1, #0xe
bl FUN_0201F854
_021F1004:
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021F1008
MOD05_021F1008: ; 0x021F1008
push {r3, r4, r5, r6, lr}
sub sp, #0x1c
add r6, r0, #0
add r4, r2, #0
mov r0, #0
ldrsb r0, [r4, r0]
add r5, r1, #0
cmp r3, r0
beq _021F1036
add r0, r3, #0
bl MOD05_021F2FAC
add r1, r0, #0
add r0, r5, #0
bl FUN_0201F830
add r0, r5, #0
mov r1, #0
bl FUN_0201F890
mov r0, #0
strb r0, [r4, #1]
b _021F104C
_021F1036:
mov r0, #2
ldrsb r0, [r4, r0]
cmp r0, #9
bne _021F104C
add r0, r3, #0
bl MOD05_021F2FAC
add r1, r0, #0
add r0, r5, #0
bl MOD05_021F1980
_021F104C:
mov r0, #2
ldrsb r0, [r4, r0]
cmp r0, #6
beq _021F1058
mov r0, #0
strb r0, [r4, #1]
_021F1058:
add r0, r6, #0
bl MOD05_021F1DFC
cmp r0, #0
bne _021F109E
ldr r6, _021F10A4 ; =0x021FC458
add r3, sp, #0
ldmia r6!, {r0, r1}
add r2, r3, #0
stmia r3!, {r0, r1}
ldmia r6!, {r0, r1}
stmia r3!, {r0, r1}
ldmia r6!, {r0, r1}
stmia r3!, {r0, r1}
ldr r0, [r6]
mov r1, #1
str r0, [r3]
ldrsb r1, [r4, r1]
add r0, r5, #0
lsl r1, r1, #2
ldr r1, [r2, r1]
bl FUN_0201F854
mov r0, #1
ldrsb r1, [r4, r0]
add r1, r1, #1
strb r1, [r4, #1]
ldrsb r0, [r4, r0]
lsl r1, r0, #2
add r0, sp, #0
ldr r0, [r0, r1]
cmp r0, #0
bne _021F109E
mov r0, #0
strb r0, [r4, #1]
_021F109E:
add sp, #0x1c
pop {r3, r4, r5, r6, pc}
nop
_021F10A4: .word 0x021FC458
thumb_func_start MOD05_021F10A8
MOD05_021F10A8: ; 0x021F10A8
push {r4, r5, r6, lr}
sub sp, #0x10
add r6, r0, #0
add r4, r2, #0
mov r0, #0
ldrsb r0, [r4, r0]
add r5, r1, #0
cmp r3, r0
beq _021F10D6
add r0, r3, #0
bl MOD05_021F2FAC
add r1, r0, #0
add r0, r5, #0
bl FUN_0201F830
add r0, r5, #0
mov r1, #0
bl FUN_0201F890
mov r0, #0
strb r0, [r4, #1]
b _021F10EC
_021F10D6:
mov r0, #2
ldrsb r0, [r4, r0]
cmp r0, #9
bne _021F10EC
add r0, r3, #0
bl MOD05_021F2FAC
add r1, r0, #0
add r0, r5, #0
bl MOD05_021F1980
_021F10EC:
mov r0, #2
ldrsb r0, [r4, r0]
cmp r0, #7
beq _021F10F8
mov r0, #0
strb r0, [r4, #1]
_021F10F8:
add r0, r6, #0
bl MOD05_021F1DFC
cmp r0, #0
bne _021F1136
ldr r6, _021F113C ; =0x021FC3EC
add r3, sp, #0
add r2, r3, #0
ldmia r6!, {r0, r1}
stmia r3!, {r0, r1}
ldmia r6!, {r0, r1}
stmia r3!, {r0, r1}
mov r1, #1
ldrsb r1, [r4, r1]
add r0, r5, #0
lsl r1, r1, #2
ldr r1, [r2, r1]
bl FUN_0201F854
mov r0, #1
ldrsb r1, [r4, r0]
add r1, r1, #1
strb r1, [r4, #1]
ldrsb r0, [r4, r0]
lsl r1, r0, #2
add r0, sp, #0
ldr r0, [r0, r1]
cmp r0, #0
bne _021F1136
mov r0, #0
strb r0, [r4, #1]
_021F1136:
add sp, #0x10
pop {r4, r5, r6, pc}
nop
_021F113C: .word 0x021FC3EC
thumb_func_start MOD05_021F1140
MOD05_021F1140: ; 0x021F1140
push {r4, r5, r6, lr}
sub sp, #0x20
add r6, r0, #0
add r4, r2, #0
mov r0, #0
ldrsb r0, [r4, r0]
add r5, r1, #0
cmp r3, r0
beq _021F116E
add r0, r3, #0
bl MOD05_021F2FAC
add r1, r0, #0
add r0, r5, #0
bl FUN_0201F830
add r0, r5, #0
mov r1, #0
bl FUN_0201F890
mov r0, #0
strb r0, [r4, #1]
b _021F1184
_021F116E:
mov r0, #2
ldrsb r0, [r4, r0]
cmp r0, #9
bne _021F1184
add r0, r3, #0
bl MOD05_021F2FAC
add r1, r0, #0
add r0, r5, #0
bl MOD05_021F1980
_021F1184:
mov r0, #2
ldrsb r0, [r4, r0]
cmp r0, #8
beq _021F1190
mov r0, #0
strb r0, [r4, #1]
_021F1190:
add r0, r6, #0
bl MOD05_021F1DFC
cmp r0, #0
bne _021F11D6
ldr r6, _021F11DC ; =0x021FC474
add r3, sp, #0
add r2, r3, #0
ldmia r6!, {r0, r1}
stmia r3!, {r0, r1}
ldmia r6!, {r0, r1}
stmia r3!, {r0, r1}
ldmia r6!, {r0, r1}
stmia r3!, {r0, r1}
ldmia r6!, {r0, r1}
stmia r3!, {r0, r1}
mov r1, #1
ldrsb r1, [r4, r1]
add r0, r5, #0
lsl r1, r1, #2
ldr r1, [r2, r1]
bl FUN_0201F854
mov r0, #1
ldrsb r1, [r4, r0]
add r1, r1, #1
strb r1, [r4, #1]
ldrsb r0, [r4, r0]
lsl r1, r0, #2
add r0, sp, #0
ldr r0, [r0, r1]
cmp r0, #0
bne _021F11D6
mov r0, #0
strb r0, [r4, #1]
_021F11D6:
add sp, #0x20
pop {r4, r5, r6, pc}
nop
_021F11DC: .word 0x021FC474
thumb_func_start MOD05_021F11E0
MOD05_021F11E0: ; 0x021F11E0
push {r3, r4, r5, lr}
add r5, r0, #0
mov r0, #0
ldrsb r0, [r2, r0]
add r4, r1, #0
cmp r3, r0
beq _021F1206
add r0, r3, #0
bl MOD05_021F2FB8
add r1, r0, #0
add r0, r4, #0
bl FUN_0201F830
add r0, r4, #0
mov r1, #0
bl FUN_0201F890
b _021F121E
_021F1206:
mov r0, #2
ldrsb r0, [r2, r0]
cmp r0, #9
beq _021F121E
add r0, r3, #0
bl MOD05_021F2FB8
add r1, r0, #0
add r0, r4, #0
mov r2, #4
bl MOD05_021F1958
_021F121E:
add r0, r5, #0
bl MOD05_021F1DFC
cmp r0, #0
bne _021F1232
mov r1, #1
add r0, r4, #0
lsl r1, r1, #0xc
bl FUN_0201F854
_021F1232:
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021F1234
MOD05_021F1234: ; 0x021F1234
push {r4, r5, r6, r7, lr}
sub sp, #0xc
add r7, r0, #0
bl FUN_02058628
ldr r0, [r0, #4]
str r0, [sp]
add r0, r7, #0
bl FUN_02058628
add r4, r0, #0
add r0, r7, #0
bl MOD05_021F2E28
cmp r0, #1
beq _021F12B6
ldr r0, [sp]
cmp r0, #0
beq _021F12B6
add r0, r7, #0
bl FUN_020584C4
str r0, [sp, #8]
add r0, r7, #0
bl FUN_0205854C
str r0, [sp, #4]
cmp r0, #0xc
blt _021F1272
bl ErrorHandling
_021F1272:
mov r1, #2
ldrsb r2, [r4, r1]
cmp r2, #0
bne _021F128C
ldr r0, [sp, #4]
cmp r0, r2
beq _021F128C
ldrb r0, [r4, #3]
lsl r0, r0, #0x1f
lsr r0, r0, #0x1f
bne _021F128C
sub r0, r1, #3
strb r0, [r4]
_021F128C:
ldr r5, [sp, #4]
ldr r1, [sp]
lsl r6, r5, #2
ldr r5, _021F12BC ; =0x021FC4D8
ldr r3, [sp, #8]
ldr r5, [r5, r6]
add r0, r7, #0
add r2, r4, #0
blx r5
ldr r0, [sp, #8]
ldr r1, [sp]
strb r0, [r4]
ldr r0, [sp, #4]
strb r0, [r4, #2]
add r0, r7, #0
bl MOD05_021F2F48
ldr r1, [sp]
add r0, r7, #0
bl MOD05_021F19A4
_021F12B6:
add sp, #0xc
pop {r4, r5, r6, r7, pc}
nop
_021F12BC: .word 0x021FC4D8
thumb_func_start MOD05_021F12C0
MOD05_021F12C0: ; 0x021F12C0
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x10
add r6, r3, #0
add r4, r2, #0
add r2, sp, #0
ldr r3, _021F1348 ; =0x021FC3FC
add r5, r1, #0
add r7, r2, #0
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
lsl r0, r6, #2
ldr r1, [r7, r0]
mov r0, #0
ldrsb r0, [r4, r0]
cmp r6, r0
beq _021F12FE
add r0, r5, #0
bl FUN_0201F830
add r0, r5, #0
mov r1, #0
bl FUN_0201F890
ldrb r1, [r4, #3]
mov r0, #1
add sp, #0x10
bic r1, r0
strb r1, [r4, #3]
pop {r3, r4, r5, r6, r7, pc}
_021F12FE:
mov r2, #2
ldrsb r0, [r4, r2]
cmp r0, #0
beq _021F1316
ldrb r1, [r4, #3]
mov r0, #1
add sp, #0x10
bic r1, r0
mov r0, #1
orr r0, r1
strb r0, [r4, #3]
pop {r3, r4, r5, r6, r7, pc}
_021F1316:
ldrb r0, [r4, #3]
lsl r0, r0, #0x1f
lsr r0, r0, #0x1f
cmp r0, #1
bne _021F133A
add r0, r5, #0
bl FUN_0201F830
add r0, r5, #0
mov r1, #0
bl FUN_0201F890
ldrb r1, [r4, #3]
mov r0, #1
add sp, #0x10
bic r1, r0
strb r1, [r4, #3]
pop {r3, r4, r5, r6, r7, pc}
_021F133A:
add r0, r5, #0
lsl r1, r2, #0xb
bl FUN_0201F854
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
nop
_021F1348: .word 0x021FC3FC
thumb_func_start MOD05_021F134C
MOD05_021F134C: ; 0x021F134C
push {r3, r4, r5, r6, r7, lr}
add r7, r0, #0
add r0, r3, #0
add r5, r1, #0
add r6, r2, #0
str r3, [sp]
bl MOD05_021F2FC4
add r4, r0, #0
mov r0, #0
ldrsb r1, [r6, r0]
ldr r0, [sp]
cmp r0, r1
bne _021F1370
mov r0, #2
ldrsb r0, [r6, r0]
cmp r0, #0
beq _021F1382
_021F1370:
add r0, r5, #0
add r1, r4, #0
bl FUN_0201F830
add r0, r5, #0
mov r1, #0
bl FUN_0201F890
b _021F13B2
_021F1382:
cmp r0, #0xa
beq _021F1398
add r0, r5, #0
add r1, r4, #0
bl FUN_0201F830
add r0, r5, #0
mov r1, #0
bl FUN_0201F890
b _021F13B2
_021F1398:
add r0, r5, #0
bl FUN_0201F844
cmp r4, r0
beq _021F13B2
add r0, r5, #0
add r1, r4, #0
bl FUN_0201F830
add r0, r5, #0
mov r1, #0
bl FUN_0201F890
_021F13B2:
add r0, r7, #0
bl MOD05_021F1DFC
cmp r0, #0
bne _021F13C6
mov r1, #2
add r0, r5, #0
lsl r1, r1, #0xa
bl FUN_0201F854
_021F13C6:
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD05_021F13C8
MOD05_021F13C8: ; 0x021F13C8
push {r3, r4, r5, r6, r7, lr}
add r7, r0, #0
add r0, r3, #0
add r5, r1, #0
add r6, r2, #0
str r3, [sp]
bl MOD05_021F2FC4
add r4, r0, #0
mov r0, #0
ldrsb r1, [r6, r0]
ldr r0, [sp]
cmp r0, r1
beq _021F13F6
add r0, r5, #0
add r1, r4, #0
bl FUN_0201F830
add r0, r5, #0
mov r1, #0
bl FUN_0201F890
b _021F142A
_021F13F6:
mov r0, #2
ldrsb r0, [r6, r0]
cmp r0, #0xb
beq _021F1410
add r0, r5, #0
add r1, r4, #0
bl FUN_0201F830
add r0, r5, #0
mov r1, #0
bl FUN_0201F890
b _021F142A
_021F1410:
add r0, r5, #0
bl FUN_0201F844
cmp r4, r0
beq _021F142A
add r0, r5, #0
add r1, r4, #0
bl FUN_0201F830
add r0, r5, #0
mov r1, #0
bl FUN_0201F890
_021F142A:
add r0, r7, #0
bl MOD05_021F1DFC
cmp r0, #0
bne _021F143E
mov r1, #1
add r0, r5, #0
lsl r1, r1, #0xc
bl FUN_0201F854
_021F143E:
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD05_021F1440
MOD05_021F1440: ; 0x021F1440
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
add r4, r0, #0
bl FUN_02058628
ldr r7, [r0, #4]
add r0, r4, #0
bl FUN_02058628
str r0, [sp]
cmp r7, #0
beq _021F14B4
add r0, r4, #0
bl MOD05_021F2E28
cmp r0, #1
beq _021F14B4
add r0, r4, #0
bl FUN_020584C4
str r0, [sp, #4]
add r0, r4, #0
bl FUN_0205854C
add r5, r0, #0
cmp r5, #4
blt _021F147A
bl ErrorHandling
_021F147A:
lsl r6, r5, #2
ldr r5, _021F14B8 ; =0x021FC40C
ldr r2, [sp]
ldr r3, [sp, #4]
ldr r5, [r5, r6]
add r0, r4, #0
add r1, r7, #0
blx r5
ldr r2, [sp, #4]
add r0, r4, #0
add r1, r7, #0
bl MOD05_021F1658
ldr r1, [sp, #4]
ldr r0, [sp]
strb r1, [r0]
add r0, r4, #0
bl FUN_0205854C
ldr r1, [sp]
strb r0, [r1, #2]
add r0, r4, #0
add r1, r7, #0
bl MOD05_021F2F48
add r0, r4, #0
add r1, r7, #0
bl MOD05_021F19A4
_021F14B4:
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_021F14B8: .word 0x021FC40C
thumb_func_start MOD05_021F14BC
MOD05_021F14BC: ; 0x021F14BC
push {r4, lr}
mov r0, #0
ldrsb r0, [r2, r0]
add r4, r1, #0
cmp r3, r0
bne _021F14D0
mov r0, #2
ldrsb r0, [r2, r0]
cmp r0, #0
beq _021F14E6
_021F14D0:
ldr r1, _021F1508 ; =0x021FC41C
lsl r2, r3, #2
ldr r1, [r1, r2]
add r0, r4, #0
bl FUN_0201F830
mov r1, #0xf
add r0, r4, #0
lsl r1, r1, #0xc
bl FUN_0201F890
_021F14E6:
add r0, r4, #0
bl FUN_0201F8C0
mov r1, #1
lsl r1, r1, #0xc
sub r1, r0, r1
bpl _021F14F6
mov r1, #0
_021F14F6:
add r0, r4, #0
bl FUN_0201F890
add r0, r4, #0
mov r1, #0
bl FUN_0201F854
pop {r4, pc}
nop
_021F1508: .word 0x021FC41C
thumb_func_start MOD05_021F150C
MOD05_021F150C: ; 0x021F150C
push {r4, lr}
mov r0, #0
ldrsb r0, [r2, r0]
add r4, r1, #0
cmp r3, r0
bne _021F1520
mov r0, #2
ldrsb r0, [r2, r0]
cmp r0, #1
beq _021F1534
_021F1520:
ldr r1, _021F1540 ; =0x021FC41C
lsl r2, r3, #2
ldr r1, [r1, r2]
add r0, r4, #0
bl FUN_0201F830
add r0, r4, #0
mov r1, #0
bl FUN_0201F890
_021F1534:
mov r1, #1
add r0, r4, #0
lsl r1, r1, #0xc
bl FUN_0201F854
pop {r4, pc}
.balign 4, 0
_021F1540: .word 0x021FC41C
thumb_func_start MOD05_021F1544
MOD05_021F1544: ; 0x021F1544
push {r3, r4, r5, lr}
add r4, r2, #0
mov r0, #0
ldrsb r0, [r4, r0]
add r5, r1, #0
cmp r3, r0
bne _021F155A
mov r0, #2
ldrsb r0, [r4, r0]
cmp r0, #2
beq _021F1578
_021F155A:
ldr r1, _021F1604 ; =0x021FC41C
lsl r2, r3, #2
ldr r1, [r1, r2]
add r0, r5, #0
bl FUN_0201F830
mov r1, #0xf
add r0, r5, #0
lsl r1, r1, #0xc
bl FUN_0201F890
ldrb r1, [r4, #3]
mov r0, #0xfe
bic r1, r0
strb r1, [r4, #3]
_021F1578:
add r0, r5, #0
bl FUN_0201F8C0
add r1, r0, #0
ldrb r0, [r4, #3]
lsl r2, r0, #0x18
lsr r2, r2, #0x19
beq _021F1592
cmp r2, #1
beq _021F15B4
cmp r2, #2
beq _021F15DA
b _021F15F4
_021F1592:
mov r3, #1
lsl r3, r3, #0xc
sub r1, r1, r3
mov r3, #0xa
lsl r3, r3, #0xc
cmp r1, r3
bgt _021F15F4
add r2, r2, #1
lsl r2, r2, #0x18
lsr r2, r2, #0x18
mov r3, #0xfe
lsl r2, r2, #0x19
bic r0, r3
lsr r2, r2, #0x18
orr r0, r2
strb r0, [r4, #3]
b _021F15F4
_021F15B4:
mov r3, #1
lsl r3, r3, #0xc
add r1, r1, r3
mov r3, #0xf
lsl r3, r3, #0xc
cmp r1, r3
blt _021F15F4
add r2, r2, #1
lsl r2, r2, #0x18
lsr r2, r2, #0x18
mov r3, #0xfe
lsl r2, r2, #0x19
bic r0, r3
lsr r2, r2, #0x18
orr r0, r2
strb r0, [r4, #3]
mov r0, #0
strb r0, [r4, #1]
b _021F15F4
_021F15DA:
mov r0, #1
ldrsb r2, [r4, r0]
add r2, r2, #1
strb r2, [r4, #1]
ldrsb r0, [r4, r0]
cmp r0, #0x1e
blt _021F15F4
mov r0, #0
strb r0, [r4, #1]
ldrb r2, [r4, #3]
mov r0, #0xfe
bic r2, r0
strb r2, [r4, #3]
_021F15F4:
add r0, r5, #0
bl FUN_0201F890
add r0, r5, #0
mov r1, #0
bl FUN_0201F854
pop {r3, r4, r5, pc}
.balign 4, 0
_021F1604: .word 0x021FC41C
thumb_func_start MOD05_021F1608
MOD05_021F1608: ; 0x021F1608
push {r4, lr}
mov r0, #0
ldrsb r0, [r2, r0]
add r4, r1, #0
cmp r3, r0
bne _021F161C
mov r0, #2
ldrsb r0, [r2, r0]
cmp r0, #3
beq _021F1632
_021F161C:
ldr r1, _021F1654 ; =0x021FC41C
lsl r2, r3, #2
ldr r1, [r1, r2]
add r0, r4, #0
bl FUN_0201F830
mov r1, #0xf
add r0, r4, #0
lsl r1, r1, #0xc
bl FUN_0201F890
_021F1632:
add r0, r4, #0
bl FUN_0201F8C0
mov r1, #1
lsl r1, r1, #0xc
sub r1, r0, r1
bpl _021F1642
mov r1, #0
_021F1642:
add r0, r4, #0
bl FUN_0201F890
add r0, r4, #0
mov r1, #0
bl FUN_0201F854
pop {r4, pc}
nop
_021F1654: .word 0x021FC41C
thumb_func_start MOD05_021F1658
MOD05_021F1658: ; 0x021F1658
push {r4, r5, lr}
sub sp, #0xc
add r5, r0, #0
add r4, r2, #0
add r2, sp, #0
mov r0, #0
str r0, [r2]
str r0, [r2, #4]
str r0, [r2, #8]
add r0, r1, #0
bl FUN_0201F880
asr r1, r0, #0xb
lsr r1, r1, #0x14
add r1, r0, r1
asr r0, r1, #0xc
cmp r4, #3
bhi _021F16BE
add r1, r4, r4
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021F1688: ; jump table
.short _021F16BE - _021F1688 - 2 ; case 0
.short _021F1690 - _021F1688 - 2 ; case 1
.short _021F169C - _021F1688 - 2 ; case 2
.short _021F16AE - _021F1688 - 2 ; case 3
_021F1690:
cmp r0, #0x18
blt _021F16BE
mov r0, #6
lsl r0, r0, #0xc
str r0, [sp, #8]
b _021F16BE
_021F169C:
cmp r0, #0x28
bge _021F16A8
mov r0, #1
lsl r0, r0, #0xc
str r0, [sp]
b _021F16BE
_021F16A8:
ldr r0, _021F16CC ; =0xFFFFB000
str r0, [sp]
b _021F16BE
_021F16AE:
cmp r0, #0x38
bge _021F16B8
ldr r0, _021F16D0 ; =0xFFFFF000
str r0, [sp]
b _021F16BE
_021F16B8:
mov r0, #5
lsl r0, r0, #0xc
str r0, [sp]
_021F16BE:
add r0, r5, #0
add r1, sp, #0
bl FUN_02058B94
add sp, #0xc
pop {r4, r5, pc}
nop
_021F16CC: .word 0xFFFFB000
_021F16D0: .word 0xFFFFF000
thumb_func_start MOD05_021F16D4
MOD05_021F16D4: ; 0x021F16D4
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
bl FUN_02058628
ldr r4, [r0, #4]
add r0, r5, #0
bl FUN_02058628
add r6, r0, #0
add r0, r5, #0
bl MOD05_021F2E28
cmp r0, #1
beq _021F1734
cmp r4, #0
beq _021F1734
add r0, r5, #0
bl FUN_020584C4
add r7, r0, #0
strb r7, [r6]
add r0, r5, #0
bl FUN_0205854C
strb r0, [r6, #2]
add r0, r7, #0
bl MOD05_021F2FAC
add r1, r0, #0
add r0, r4, #0
bl FUN_0201F830
add r0, r4, #0
mov r1, #0
bl FUN_0201F890
add r0, r4, #0
mov r1, #0
bl FUN_0201F854
add r0, r5, #0
add r1, r4, #0
bl MOD05_021F2F48
add r0, r5, #0
add r1, r4, #0
bl MOD05_021F19A4
_021F1734:
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021F1738
MOD05_021F1738: ; 0x021F1738
push {r4, r5, r6, lr}
add r5, r0, #0
bl FUN_02058628
ldr r4, [r0, #4]
add r0, r5, #0
bl FUN_02058628
add r6, r0, #0
add r0, r5, #0
bl MOD05_021F2E28
cmp r0, #1
beq _021F179C
cmp r4, #0
beq _021F179C
add r0, r5, #0
bl FUN_020584C4
strb r0, [r6]
add r0, r5, #0
bl FUN_0205854C
strb r0, [r6, #2]
add r0, r4, #0
bl FUN_0201F844
cmp r0, #0
beq _021F1782
add r0, r4, #0
mov r1, #0
bl FUN_0201F830
add r0, r4, #0
mov r1, #0
bl FUN_0201F890
_021F1782:
mov r1, #1
add r0, r4, #0
lsl r1, r1, #0xc
bl FUN_0201F854
add r0, r5, #0
add r1, r4, #0
bl MOD05_021F2F48
add r0, r5, #0
add r1, r4, #0
bl MOD05_021F19A4
_021F179C:
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_start MOD05_021F17A0
MOD05_021F17A0: ; 0x021F17A0
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
bl FUN_02058628
ldr r4, [r0, #4]
add r0, r5, #0
bl FUN_02058628
add r6, r0, #0
add r0, r5, #0
bl MOD05_021F2E28
cmp r0, #1
beq _021F1836
cmp r4, #0
beq _021F1836
add r0, r5, #0
bl FUN_020584C4
add r7, r0, #0
add r0, r5, #0
bl FUN_0205854C
cmp r0, #0
bne _021F17F8
add r0, r4, #0
bl FUN_0201F844
cmp r0, #1
beq _021F17EC
add r0, r4, #0
mov r1, #1
bl FUN_0201F830
add r0, r4, #0
mov r1, #0
bl FUN_0201F890
_021F17EC:
mov r1, #1
add r0, r4, #0
lsl r1, r1, #0xc
bl FUN_0201F854
b _021F181C
_021F17F8:
add r0, r4, #0
bl FUN_0201F844
cmp r0, #0
beq _021F1812
add r0, r4, #0
mov r1, #0
bl FUN_0201F830
add r0, r4, #0
mov r1, #0
bl FUN_0201F890
_021F1812:
mov r1, #1
add r0, r4, #0
lsl r1, r1, #0xc
bl FUN_0201F854
_021F181C:
strb r7, [r6]
add r0, r5, #0
bl FUN_0205854C
strb r0, [r6, #2]
add r0, r5, #0
add r1, r4, #0
bl MOD05_021F2F48
add r0, r5, #0
add r1, r4, #0
bl MOD05_021F19A4
_021F1836:
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD05_021F1838
MOD05_021F1838: ; 0x021F1838
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
bl FUN_02058628
ldr r4, [r0, #4]
add r0, r5, #0
bl FUN_02058628
add r6, r0, #0
add r0, r5, #0
bl MOD05_021F2E28
cmp r0, #1
beq _021F18A0
cmp r4, #0
beq _021F18A0
add r0, r5, #0
bl FUN_020584C4
mov r1, #0
ldrsb r1, [r6, r1]
add r7, r0, #0
cmp r7, r1
beq _021F187C
bl MOD05_021F2FAC
add r1, r0, #0
add r0, r4, #0
bl FUN_0201F830
add r0, r4, #0
mov r1, #0
bl FUN_0201F890
_021F187C:
mov r1, #1
add r0, r4, #0
lsl r1, r1, #0xc
bl FUN_0201F854
add r0, r5, #0
add r1, r4, #0
bl MOD05_021F2F48
add r0, r5, #0
add r1, r4, #0
bl MOD05_021F19A4
add r0, r5, #0
strb r7, [r6]
bl FUN_0205854C
strb r0, [r6, #2]
_021F18A0:
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021F18A4
MOD05_021F18A4: ; 0x021F18A4
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
bl FUN_02058628
ldr r4, [r0, #4]
add r0, r5, #0
bl FUN_02058628
add r6, r0, #0
add r0, r5, #0
bl MOD05_021F2E28
cmp r0, #1
beq _021F191A
cmp r4, #0
beq _021F191A
add r0, r5, #0
bl FUN_020584C4
str r0, [sp]
add r0, r5, #0
bl FUN_0205854C
add r7, r0, #0
mov r0, #2
ldrsb r0, [r6, r0]
cmp r7, r0
beq _021F18FA
cmp r7, #0
bne _021F18EA
add r0, r4, #0
mov r1, #0
bl FUN_0201F830
b _021F18F2
_021F18EA:
add r0, r4, #0
mov r1, #1
bl FUN_0201F830
_021F18F2:
add r0, r4, #0
mov r1, #0
bl FUN_0201F890
_021F18FA:
mov r1, #1
add r0, r4, #0
lsl r1, r1, #0xc
bl FUN_0201F854
ldr r0, [sp]
add r1, r4, #0
strb r0, [r6]
add r0, r5, #0
strb r7, [r6, #2]
bl MOD05_021F2F48
add r0, r5, #0
add r1, r4, #0
bl MOD05_021F19A4
_021F191A:
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD05_021F191C
MOD05_021F191C: ; 0x021F191C
push {r4, r5, r6, lr}
add r5, r0, #0
add r6, r1, #0
bl FUN_0201F8C0
asr r1, r0, #0xb
lsr r1, r1, #0x14
add r1, r0, r1
asr r4, r1, #0xc
add r0, r4, #0
add r1, r6, #0
bl _s32_div_f
sub r1, r4, r1
add r0, r5, #0
lsl r1, r1, #0xc
bl FUN_0201F890
add r0, r5, #0
mov r1, #0
bl FUN_0201F854
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_start MOD05_021F194C
MOD05_021F194C: ; 0x021F194C
ldr r3, _021F1954 ; =MOD05_021F191C
mov r1, #8
bx r3
nop
_021F1954: .word MOD05_021F191C
thumb_func_start MOD05_021F1958
MOD05_021F1958: ; 0x021F1958
push {r4, r5, r6, lr}
add r4, r1, #0
add r5, r0, #0
add r1, r2, #0
bl MOD05_021F191C
add r0, r5, #0
bl FUN_0201F8C0
add r6, r0, #0
add r0, r5, #0
add r1, r4, #0
bl FUN_0201F830
add r0, r5, #0
add r1, r6, #0
bl FUN_0201F890
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_start MOD05_021F1980
MOD05_021F1980: ; 0x021F1980
push {r4, r5, r6, lr}
add r5, r0, #0
add r4, r1, #0
bl MOD05_021F194C
add r0, r5, #0
bl FUN_0201F8C0
add r6, r0, #0
add r0, r5, #0
add r1, r4, #0
bl FUN_0201F830
add r0, r5, #0
add r1, r6, #0
bl FUN_0201F890
pop {r4, r5, r6, pc}
thumb_func_start MOD05_021F19A4
MOD05_021F19A4: ; 0x021F19A4
push {r4, r5, r6, lr}
mov r4, #1
add r6, r1, #0
lsl r1, r4, #9
add r5, r0, #0
bl FUN_0205842C
cmp r0, #1
bne _021F19B8
mov r4, #0
_021F19B8:
mov r1, #1
add r0, r5, #0
lsl r1, r1, #0xc
bl FUN_0205842C
cmp r0, #1
bne _021F19D6
mov r1, #2
add r0, r5, #0
lsl r1, r1, #0xc
bl FUN_0205842C
cmp r0, #0
bne _021F19D6
mov r4, #0
_021F19D6:
lsl r1, r4, #0x18
add r0, r6, #0
lsr r1, r1, #0x18
bl FUN_0201F80C
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_start MOD05_021F19E4
MOD05_021F19E4: ; 0x021F19E4
push {r3, r4, r5, lr}
add r5, r0, #0
mov r1, #4
bl FUN_02058604
add r4, r0, #0
add r0, r5, #0
bl MOD06_0224A130
str r0, [r4]
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021F19FC
MOD05_021F19FC: ; 0x021F19FC
push {r3, r4, r5, lr}
add r5, r0, #0
mov r1, #4
bl FUN_02058604
add r4, r0, #0
add r0, r5, #0
bl MOD06_0224A6B8
str r0, [r4]
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021F1A14
MOD05_021F1A14: ; 0x021F1A14
push {r3, r4, r5, lr}
add r5, r0, #0
mov r1, #4
bl FUN_02058604
add r4, r0, #0
add r0, r5, #0
bl MOD06_0224A8D4
str r0, [r4]
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021F1A2C
MOD05_021F1A2C: ; 0x021F1A2C
push {r3, r4, r5, lr}
add r5, r0, #0
mov r1, #4
bl FUN_02058604
add r4, r0, #0
add r0, r5, #0
bl MOD06_0224AA40
str r0, [r4]
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021F1A44
MOD05_021F1A44: ; 0x021F1A44
bx lr
.balign 4, 0
thumb_func_start MOD05_021F1A48
MOD05_021F1A48: ; 0x021F1A48
push {r4, lr}
bl FUN_02058628
add r4, r0, #0
ldr r0, [r4]
cmp r0, #0
beq _021F1A5E
bl MOD05_021E4DE4
mov r0, #0
str r0, [r4]
_021F1A5E:
pop {r4, pc}
thumb_func_start MOD05_021F1A60
MOD05_021F1A60: ; 0x021F1A60
push {r4, lr}
bl FUN_02058628
add r4, r0, #0
ldr r0, [r4]
cmp r0, #0
beq _021F1A76
bl MOD05_021E4DE4
mov r0, #0
str r0, [r4]
_021F1A76:
pop {r4, pc}
thumb_func_start MOD05_021F1A78
MOD05_021F1A78: ; 0x021F1A78
push {r3, r4, r5, lr}
add r5, r0, #0
bl FUN_02058628
add r4, r0, #0
ldr r0, [r4]
cmp r0, #0
beq _021F1A8C
bl ErrorHandling
_021F1A8C:
add r0, r5, #0
bl MOD06_0224A130
str r0, [r4]
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021F1A98
MOD05_021F1A98: ; 0x021F1A98
push {r3, r4, r5, lr}
add r5, r0, #0
bl FUN_02058628
add r4, r0, #0
ldr r0, [r4]
cmp r0, #0
beq _021F1AAC
bl ErrorHandling
_021F1AAC:
add r0, r5, #0
bl MOD06_0224A6B8
str r0, [r4]
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021F1AB8
MOD05_021F1AB8: ; 0x021F1AB8
push {r3, r4, r5, lr}
add r5, r0, #0
bl FUN_02058628
add r4, r0, #0
ldr r0, [r4]
cmp r0, #0
beq _021F1ACC
bl ErrorHandling
_021F1ACC:
add r0, r5, #0
bl MOD06_0224A8D4
str r0, [r4]
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021F1AD8
MOD05_021F1AD8: ; 0x021F1AD8
push {r3, r4, r5, lr}
add r5, r0, #0
bl FUN_02058628
add r4, r0, #0
ldr r0, [r4]
cmp r0, #0
beq _021F1AEC
bl ErrorHandling
_021F1AEC:
add r0, r5, #0
bl MOD06_0224AA40
str r0, [r4]
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021F1AF8
MOD05_021F1AF8: ; 0x021F1AF8
push {r4, lr}
bl FUN_02058628
add r4, r0, #0
ldr r0, [r4]
bl MOD06_0224A6FC
mov r0, #0
str r0, [r4]
pop {r4, pc}
thumb_func_start MOD05_021F1B0C
MOD05_021F1B0C: ; 0x021F1B0C
push {r3, r4, lr}
sub sp, #0xc
add r4, r0, #0
bl MOD05_021F1C34
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
add r0, r4, #0
add r1, sp, #0
bl FUN_02058BB4
add sp, #0xc
pop {r3, r4, pc}
.balign 4, 0
thumb_func_start MOD05_021F1B2C
MOD05_021F1B2C: ; 0x021F1B2C
push {r3, r4, r5, lr}
add r5, r0, #0
bl FUN_02058628
ldr r4, [r0]
add r0, r5, #0
bl MOD05_021F2E28
cmp r0, #1
beq _021F1B54
cmp r4, #0
beq _021F1B54
add r0, r5, #0
bl MOD05_021F1C48
mov r1, #1
add r0, r4, #0
lsl r1, r1, #0xc
bl FUN_0201F854
_021F1B54:
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021F1B58
MOD05_021F1B58: ; 0x021F1B58
ldr r3, _021F1B5C ; =MOD05_021F1CA4
bx r3
.balign 4, 0
_021F1B5C: .word MOD05_021F1CA4
thumb_func_start MOD05_021F1B60
MOD05_021F1B60: ; 0x021F1B60
push {r3, r4, r5, lr}
add r5, r0, #0
bl FUN_02058628
add r4, r0, #0
ldr r0, [r4]
cmp r0, #0
beq _021F1B76
add r1, r4, #4
bl MOD05_021F20D8
_021F1B76:
add r0, r5, #0
add r1, r4, #0
bl MOD05_021F2060
mov r1, #2
add r0, r5, #0
lsl r1, r1, #0x14
bl FUN_02058410
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021F1B8C
MOD05_021F1B8C: ; 0x021F1B8C
push {r3, r4, r5, lr}
add r5, r0, #0
bl FUN_02058628
add r4, r0, #0
add r0, r5, #0
bl MOD05_021F2E28
cmp r0, #1
beq _021F1BCC
ldr r0, [r4]
cmp r0, #0
bne _021F1BAE
add r0, r5, #0
add r1, r4, #0
bl MOD05_021F1FC8
_021F1BAE:
ldr r0, [r4]
cmp r0, #0
beq _021F1BCC
add r1, r4, #4
bl MOD05_021F20F8
ldr r1, [r4]
add r0, r5, #0
bl MOD05_021F2F48
mov r1, #2
add r0, r5, #0
lsl r1, r1, #0x14
bl FUN_02058418
_021F1BCC:
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021F1BD0
MOD05_021F1BD0: ; 0x021F1BD0
push {r3, r4, lr}
sub sp, #0xc
add r4, r0, #0
bl MOD05_021F1C34
mov r1, #0
mov r0, #6
lsl r0, r0, #0xe
str r0, [sp, #4]
str r1, [sp]
str r1, [sp, #8]
add r0, r4, #0
add r1, sp, #0
bl FUN_02058BB4
add sp, #0xc
pop {r3, r4, pc}
.balign 4, 0
thumb_func_start MOD05_021F1BF4
MOD05_021F1BF4: ; 0x021F1BF4
push {r3, r4, r5, lr}
add r5, r0, #0
bl FUN_02058628
ldr r4, [r0]
add r0, r5, #0
bl MOD05_021F2E28
cmp r0, #1
beq _021F1C12
cmp r4, #0
beq _021F1C12
add r0, r5, #0
bl MOD05_021F1C48
_021F1C12:
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021F1C14
MOD05_021F1C14: ; 0x021F1C14
ldr r3, _021F1C18 ; =MOD05_021F1CA4
bx r3
.balign 4, 0
_021F1C18: .word MOD05_021F1CA4
thumb_func_start MOD05_021F1C1C
MOD05_021F1C1C: ; 0x021F1C1C
ldr r3, _021F1C20 ; =FUN_02058628
bx r3
.balign 4, 0
_021F1C20: .word FUN_02058628
thumb_func_start MOD05_021F1C24
MOD05_021F1C24: ; 0x021F1C24
push {r3, lr}
bl FUN_02058628
bl MOD05_021F1C30
pop {r3, pc}
thumb_func_start MOD05_021F1C30
MOD05_021F1C30: ; 0x021F1C30
ldr r0, [r0]
bx lr
thumb_func_start MOD05_021F1C34
MOD05_021F1C34: ; 0x021F1C34
push {r4, lr}
add r4, r0, #0
mov r1, #0x10
bl FUN_02058604
add r1, r0, #0
add r0, r4, #0
bl MOD05_021F1FC8
pop {r4, pc}
thumb_func_start MOD05_021F1C48
MOD05_021F1C48: ; 0x021F1C48
push {r3, r4, r5, lr}
add r5, r0, #0
bl FUN_02058628
ldr r4, [r0]
add r0, r5, #0
add r1, r4, #0
bl MOD05_021F2F48
add r0, r5, #0
add r1, r4, #0
bl MOD05_021F1C64
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021F1C64
MOD05_021F1C64: ; 0x021F1C64
push {r4, r5, r6, lr}
mov r4, #1
add r6, r1, #0
lsl r1, r4, #9
add r5, r0, #0
bl FUN_0205842C
cmp r0, #1
bne _021F1C78
mov r4, #0
_021F1C78:
mov r1, #1
add r0, r5, #0
lsl r1, r1, #0xc
bl FUN_0205842C
cmp r0, #1
bne _021F1C96
mov r1, #2
add r0, r5, #0
lsl r1, r1, #0xc
bl FUN_0205842C
cmp r0, #0
bne _021F1C96
mov r4, #0
_021F1C96:
lsl r1, r4, #0x18
add r0, r6, #0
lsr r1, r1, #0x18
bl FUN_0201F80C
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_start MOD05_021F1CA4
MOD05_021F1CA4: ; 0x021F1CA4
push {r4, lr}
add r4, r0, #0
bl FUN_02058628
add r1, r0, #0
add r0, r4, #0
bl MOD05_021F2060
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021F1CB8
MOD05_021F1CB8: ; 0x021F1CB8
push {r4, r5, r6, r7, lr}
sub sp, #0x14
add r4, r1, #0
mov r1, #1
add r5, r0, #0
add r6, r2, #0
add r7, r3, #0
bl FUN_02058390
cmp r0, #0
beq _021F1CD2
bl ErrorHandling
_021F1CD2:
add r0, r5, #0
bl MOD05_021F1D68
add r0, r5, #0
bl FUN_02058368
str r0, [sp, #0x10]
add r0, r5, #0
bl FUN_0205839C
sub r0, r0, #1
str r0, [sp, #0xc]
add r0, r5, #0
bl FUN_020583A0
str r4, [sp]
str r6, [sp, #4]
ldr r2, [sp, #0x10]
ldr r3, [sp, #0xc]
add r1, r5, #0
str r7, [sp, #8]
bl MOD05_021F1F04
add r0, r5, #0
mov r1, #4
bl MOD05_021F3780
add r4, r0, #0
add r0, r5, #0
add r1, r4, #0
bl FUN_020583A4
ldr r1, _021F1D28 ; =0x021F8B84
add r0, r4, #0
ldr r1, [r1]
bl MOD05_021F3810
add r0, r5, #0
mov r1, #1
bl FUN_0205837C
add sp, #0x14
pop {r4, r5, r6, r7, pc}
.balign 4, 0
_021F1D28: .word 0x021F8B84
thumb_func_start MOD05_021F1D2C
MOD05_021F1D2C: ; 0x021F1D2C
push {r4, lr}
add r4, r0, #0
bl FUN_020587E0
cmp r0, #1
beq _021F1D3C
bl ErrorHandling
_021F1D3C:
add r0, r4, #0
bl FUN_020583A0
bl MOD05_021F1F58
add r0, r4, #0
bl FUN_020583AC
bl MOD05_021F379C
add r0, r4, #0
mov r1, #0
bl FUN_020583A4
add r0, r4, #0
mov r1, #1
bl FUN_02058384
add r0, r4, #0
bl MOD05_021F1D80
pop {r4, pc}
thumb_func_start MOD05_021F1D68
MOD05_021F1D68: ; 0x021F1D68
push {r4, lr}
add r4, r0, #0
mov r0, #0x51
mov r1, #4
bl NARC_ctor
add r1, r0, #0
add r0, r4, #0
bl FUN_020583F0
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021F1D80
MOD05_021F1D80: ; 0x021F1D80
push {r3, lr}
bl FUN_020583F4
bl NARC_dtor
pop {r3, pc}
thumb_func_start MOD05_021F1D8C
MOD05_021F1D8C: ; 0x021F1D8C
push {r4, lr}
add r4, r0, #0
bl FUN_02058578
mov r1, #4
bl FUN_02058390
cmp r0, #0
bne _021F1DC6
mov r1, #1
add r0, r4, #0
lsl r1, r1, #0xe
bl FUN_02058424
cmp r0, #0
beq _021F1DC6
add r0, r4, #0
bl FUN_02058920
cmp r0, #0
beq _021F1DC0
add r0, r4, #0
bl FUN_02058AB4
cmp r0, #0
beq _021F1DC6
_021F1DC0:
add r0, r4, #0
bl FUN_020586A0
_021F1DC6:
pop {r4, pc}
thumb_func_start MOD05_021F1DC8
MOD05_021F1DC8: ; 0x021F1DC8
push {r3, lr}
bl FUN_02058458
bl MOD05_021F1DD4
pop {r3, pc}
thumb_func_start MOD05_021F1DD4
MOD05_021F1DD4: ; 0x021F1DD4
push {r3, lr}
ldr r3, _021F1DF4 ; =0x021F9A9C
ldr r1, _021F1DF8 ; =0x0000FFFF
_021F1DDA:
ldr r2, [r3]
cmp r2, r0
bne _021F1DE4
add r0, r3, #0
pop {r3, pc}
_021F1DE4:
add r3, #8
ldr r2, [r3]
cmp r2, r1
bne _021F1DDA
bl ErrorHandling
mov r0, #0
pop {r3, pc}
.balign 4, 0
_021F1DF4: .word 0x021F9A9C
_021F1DF8: .word 0x0000FFFF
thumb_func_start MOD05_021F1DFC
MOD05_021F1DFC: ; 0x021F1DFC
push {r4, lr}
add r4, r0, #0
bl FUN_02058920
cmp r0, #1
bne _021F1E16
add r0, r4, #0
bl FUN_02058AB4
cmp r0, #0
bne _021F1E16
mov r0, #1
pop {r4, pc}
_021F1E16:
mov r1, #1
add r0, r4, #0
lsl r1, r1, #8
bl FUN_02058424
cmp r0, #0
beq _021F1E28
mov r0, #1
pop {r4, pc}
_021F1E28:
mov r0, #0
pop {r4, pc}
thumb_func_start MOD05_021F1E2C
MOD05_021F1E2C: ; 0x021F1E2C
push {r4, r5, r6, lr}
add r4, r1, #0
add r5, r2, #0
bl FUN_020583F4
add r1, r4, #0
add r6, r0, #0
bl NARC_GetMemberSize
add r1, r0, #0
cmp r5, #1
bne _021F1E4C
mov r0, #4
bl AllocFromHeap
b _021F1E52
_021F1E4C:
mov r0, #4
bl AllocFromHeapAtEnd
_021F1E52:
add r5, r0, #0
add r0, r6, #0
add r1, r4, #0
add r2, r5, #0
bl NARC_ReadWholeMember
add r0, r5, #0
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_start MOD05_021F1E64
MOD05_021F1E64: ; 0x021F1E64
push {r3, r4, r5, lr}
sub sp, #0x30
add r4, r1, #0
add r5, r0, #0
add r1, sp, #0x24
bl FUN_02058B5C
add r0, r5, #0
add r1, sp, #0x18
bl FUN_02058B84
add r0, r5, #0
add r1, sp, #0xc
bl FUN_02058BA4
add r0, r5, #0
add r1, sp, #0
bl FUN_02058BC4
ldr r1, [sp, #0x24]
ldr r0, [sp, #0x18]
ldr r2, [sp, #0xc]
add r0, r1, r0
ldr r3, [sp]
add r0, r2, r0
add r0, r3, r0
str r0, [r4]
ldr r1, [sp, #0x28]
ldr r0, [sp, #0x1c]
ldr r2, [sp, #0x10]
add r0, r1, r0
ldr r3, [sp, #4]
add r0, r2, r0
add r0, r3, r0
str r0, [r4, #4]
ldr r1, [sp, #0x2c]
ldr r0, [sp, #0x20]
ldr r2, [sp, #0x14]
add r0, r1, r0
ldr r3, [sp, #8]
add r0, r2, r0
add r0, r3, r0
str r0, [r4, #8]
add sp, #0x30
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021F1EC0
MOD05_021F1EC0: ; 0x021F1EC0
push {r4, lr}
add r4, r0, #0
bl FUN_020584AC
add r0, r4, #0
bl FUN_02058884
cmp r0, #1
bne _021F1ED8
add r0, r4, #0
bl FUN_020586A0
_021F1ED8:
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021F1EDC
MOD05_021F1EDC: ; 0x021F1EDC
push {r4, lr}
mov r1, #1
add r4, r0, #0
bl FUN_0205889C
mov r1, #1
add r0, r4, #0
lsl r1, r1, #0x14
bl FUN_02058410
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021F1EF4
MOD05_021F1EF4: ; 0x021F1EF4
bx lr
.balign 4, 0
thumb_func_start MOD05_021F1EF8
MOD05_021F1EF8: ; 0x021F1EF8
bx lr
.balign 4, 0
thumb_func_start MOD05_021F1EFC
MOD05_021F1EFC: ; 0x021F1EFC
bx lr
.balign 4, 0
thumb_func_start MOD05_021F1F00
MOD05_021F1F00: ; 0x021F1F00
bx lr
.balign 4, 0
thumb_func_start MOD05_021F1F04
MOD05_021F1F04: ; 0x021F1F04
push {r4, r5, lr}
sub sp, #0xc
add r4, r2, #0
mov r2, #0x41
add r5, r0, #0
lsl r2, r2, #2
str r1, [r5, r2]
add r1, r4, #0
bl MOD05_021F2E40
add r0, r5, #0
add r1, r4, #0
mov r2, #0xa
bl MOD05_021F33B4
mov r2, #4
mov r1, #8
ldr r0, [sp, #0x18]
str r2, [sp]
str r0, [sp, #4]
ldr r0, [sp, #0x1c]
add r3, r1, #0
str r0, [sp, #8]
add r0, r5, #0
bl MOD05_021F22E0
add r0, r5, #0
add r1, r4, #0
bl MOD05_021F2160
ldr r1, [sp, #0x20]
ldr r2, _021F1F50 ; =0x021F8B90
ldr r3, _021F1F54 ; =0x021F8B88
add r0, r5, #0
bl MOD05_021F25A0
add sp, #0xc
pop {r4, r5, pc}
.balign 4, 0
_021F1F50: .word 0x021F8B90
_021F1F54: .word 0x021F8B88
thumb_func_start MOD05_021F1F58
MOD05_021F1F58: ; 0x021F1F58
push {r4, lr}
add r4, r0, #0
bl MOD05_021F3458
add r0, r4, #0
bl MOD05_021F21AC
add r0, r4, #0
bl MOD05_021F2D48
bl MOD05_021F2E68
add r0, r4, #0
bl MOD05_021F2368
pop {r4, pc}
thumb_func_start MOD05_021F1F78
MOD05_021F1F78: ; 0x021F1F78
push {r3, r4, r5, r6, r7, lr}
add r5, r1, #0
mov r1, #0
add r6, r2, #0
add r7, r0, #0
str r1, [r5]
bl MOD05_021F2F3C
add r1, r6, #0
str r0, [sp]
bl MOD05_021F28E8
add r4, r0, #0
bne _021F1FA2
add r0, r7, #0
add r1, r5, #0
add r2, r6, #0
bl MOD05_021F211C
add r0, r4, #0
pop {r3, r4, r5, r6, r7, pc}
_021F1FA2:
sub r0, r4, #3
cmp r0, #1
bhi _021F1FB8
ldr r0, [sp]
add r1, r7, #0
add r2, r5, #0
add r3, r6, #0
bl MOD05_021F32BC
add r0, r4, #0
pop {r3, r4, r5, r6, r7, pc}
_021F1FB8:
add r0, r7, #0
add r1, r6, #0
bl MOD05_021F1FE0
str r0, [r5]
add r0, r4, #0
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021F1FC8
MOD05_021F1FC8: ; 0x021F1FC8
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
bl FUN_02058458
add r2, r0, #0
add r0, r5, #0
add r1, r4, #0
bl MOD05_021F1F78
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021F1FE0
MOD05_021F1FE0: ; 0x021F1FE0
push {r4, r5, r6, r7, lr}
sub sp, #0xc
add r6, r0, #0
add r5, r1, #0
bl MOD05_021F2F3C
add r4, r0, #0
bl MOD05_021F2D48
add r7, r0, #0
add r0, r4, #0
add r1, r5, #0
bl MOD05_021F2AC8
add r0, r4, #0
add r1, r5, #0
bl MOD05_021F21CC
add r4, r0, #0
bne _021F200C
bl ErrorHandling
_021F200C:
add r0, r6, #0
add r1, sp, #0
bl MOD05_021F1E64
add r0, r7, #0
add r1, r4, #0
add r2, sp, #0
bl MOD05_021F2E70
add r4, r0, #0
bne _021F2026
bl ErrorHandling
_021F2026:
add r0, r4, #0
add sp, #0xc
pop {r4, r5, r6, r7, pc}
thumb_func_start MOD05_021F202C
MOD05_021F202C: ; 0x021F202C
push {r4, r5, r6, lr}
add r4, r1, #0
add r5, r0, #0
ldr r0, [r4]
add r6, r2, #0
bl FUN_0201F744
mov r0, #0
str r0, [r4]
add r0, r5, #0
bl FUN_02058578
add r1, r5, #0
add r2, r6, #0
bl MOD05_021F2284
cmp r0, #0
bne _021F205C
add r0, r5, #0
bl MOD05_021F2F3C
add r1, r6, #0
bl MOD05_021F2240
_021F205C:
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_start MOD05_021F2060
MOD05_021F2060: ; 0x021F2060
push {r4, r5, r6, lr}
add r4, r1, #0
add r5, r0, #0
bl MOD05_021F2150
ldr r0, [r4]
cmp r0, #0
beq _021F2092
add r0, r5, #0
bl FUN_02058458
add r6, r0, #0
bl FUN_0205C334
cmp r0, #1
bne _021F2088
add r0, r5, #0
bl FUN_0205C340
add r6, r0, #0
_021F2088:
add r0, r5, #0
add r1, r4, #0
add r2, r6, #0
bl MOD05_021F202C
_021F2092:
pop {r4, r5, r6, pc}
thumb_func_start MOD05_021F2094
MOD05_021F2094: ; 0x021F2094
push {r4, r5, r6, lr}
add r5, r1, #0
add r6, r0, #0
add r4, r2, #0
bl MOD05_021F2150
ldr r0, [r5]
cmp r0, #0
beq _021F20AE
bl FUN_0201F744
mov r0, #0
str r0, [r5]
_021F20AE:
ldr r0, _021F20D4 ; =0x0000FFFF
cmp r4, r0
beq _021F20D2
add r0, r6, #0
bl FUN_02058578
add r1, r6, #0
add r2, r4, #0
bl MOD05_021F2284
cmp r0, #0
bne _021F20D2
add r0, r6, #0
bl MOD05_021F2F3C
add r1, r4, #0
bl MOD05_021F2240
_021F20D2:
pop {r4, r5, r6, pc}
.balign 4, 0
_021F20D4: .word 0x0000FFFF
thumb_func_start MOD05_021F20D8
MOD05_021F20D8: ; 0x021F20D8
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
bl FUN_0201F820
str r0, [r4]
add r0, r5, #0
bl FUN_0201F844
strh r0, [r4, #6]
add r0, r5, #0
bl FUN_0201F880
str r0, [r4, #8]
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021F20F8
MOD05_021F20F8: ; 0x021F20F8
push {r3, r4, r5, lr}
add r4, r1, #0
ldr r1, [r4]
add r5, r0, #0
lsl r1, r1, #0x18
lsr r1, r1, #0x18
bl FUN_0201F80C
ldrh r1, [r4, #6]
add r0, r5, #0
bl FUN_0201F830
ldr r1, [r4, #8]
add r0, r5, #0
bl FUN_0201F86C
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021F211C
MOD05_021F211C: ; 0x021F211C
push {r3, r4, r5, r6, r7, lr}
add r4, r2, #0
add r6, r0, #0
add r5, r1, #0
bl MOD05_021F2F3C
add r1, r4, #0
add r7, r0, #0
bl MOD05_021F2460
cmp r0, #0
bne _021F2140
add r0, r6, #0
add r1, r4, #0
bl MOD05_021F1FE0
str r0, [r5]
pop {r3, r4, r5, r6, r7, pc}
_021F2140:
add r0, r7, #0
add r1, r6, #0
add r2, r5, #0
add r3, r4, #0
bl MOD05_021F32BC
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021F2150
MOD05_021F2150: ; 0x021F2150
push {r4, lr}
add r4, r0, #0
bl MOD05_021F2F3C
add r1, r4, #0
bl MOD05_021F32F8
pop {r4, pc}
thumb_func_start MOD05_021F2160
MOD05_021F2160: ; 0x021F2160
push {r3, r4, r5, r6, r7, lr}
add r6, r1, #0
mov r1, #0x28
add r7, r0, #0
mov r0, #4
mul r1, r6
bl AllocFromHeap
add r4, r0, #0
add r0, r7, #0
add r0, #0xe4
str r4, [r0]
cmp r4, #0
bne _021F2180
bl ErrorHandling
_021F2180:
mov r0, #4
lsl r1, r6, #3
bl AllocFromHeap
add r5, r0, #0
add r7, #0xf4
str r5, [r7]
cmp r5, #0
bne _021F2196
bl ErrorHandling
_021F2196:
ldr r0, _021F21A8 ; =0x0000FFFF
_021F2198:
str r0, [r5]
str r4, [r5, #4]
add r5, #8
add r4, #0x28
sub r6, r6, #1
bne _021F2198
pop {r3, r4, r5, r6, r7, pc}
nop
_021F21A8: .word 0x0000FFFF
thumb_func_start MOD05_021F21AC
MOD05_021F21AC: ; 0x021F21AC
push {r4, lr}
add r4, r0, #0
bl MOD05_021F2260
add r1, r4, #0
add r1, #0xe4
ldr r1, [r1]
mov r0, #4
bl FUN_02016A8C
add r4, #0xf4
ldr r1, [r4]
mov r0, #4
bl FUN_02016A8C
pop {r4, pc}
thumb_func_start MOD05_021F21CC
MOD05_021F21CC: ; 0x021F21CC
push {r4, r5, r6, lr}
add r2, r0, #0
add r2, #0xf4
ldr r4, [r2]
ldr r2, [r0, #4]
add r6, r4, #0
add r5, r2, #0
_021F21DA:
ldr r3, [r6]
cmp r3, r1
bne _021F21E4
ldr r0, [r6, #4]
pop {r4, r5, r6, pc}
_021F21E4:
add r6, #8
sub r5, r5, #1
bne _021F21DA
ldr r3, _021F2208 ; =0x0000FFFF
_021F21EC:
ldr r5, [r4]
cmp r5, r3
bne _021F21FE
str r1, [r4]
ldr r2, [r4, #4]
bl MOD05_021F2ED0
ldr r0, [r4, #4]
pop {r4, r5, r6, pc}
_021F21FE:
add r4, #8
sub r2, r2, #1
bne _021F21EC
mov r0, #0
pop {r4, r5, r6, pc}
.balign 4, 0
_021F2208: .word 0x0000FFFF
thumb_func_start MOD05_021F220C
MOD05_021F220C: ; 0x021F220C
push {r3, r4, r5, lr}
add r5, r1, #0
add r4, r2, #0
bl FUN_020583A0
add r1, r0, #0
add r1, #0xf4
ldr r2, [r1]
ldr r1, [r0, #4]
_021F221E:
ldr r0, [r2]
cmp r0, r5
bne _021F2234
ldr r3, [r2, #4]
mov r2, #5
_021F2228:
ldmia r3!, {r0, r1}
stmia r4!, {r0, r1}
sub r2, r2, #1
bne _021F2228
mov r0, #1
pop {r3, r4, r5, pc}
_021F2234:
add r2, #8
sub r1, r1, #1
bne _021F221E
mov r0, #0
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021F2240
MOD05_021F2240: ; 0x021F2240
add r2, r0, #0
add r2, #0xf4
ldr r3, [r2]
ldr r2, [r0, #4]
_021F2248:
ldr r0, [r3]
cmp r0, r1
bne _021F2254
ldr r0, _021F225C ; =0x0000FFFF
str r0, [r3]
bx lr
_021F2254:
add r3, #8
sub r2, r2, #1
bne _021F2248
bx lr
.balign 4, 0
_021F225C: .word 0x0000FFFF
thumb_func_start MOD05_021F2260
MOD05_021F2260: ; 0x021F2260
push {r3, r4}
add r1, r0, #0
add r1, #0xf4
ldr r4, [r1]
ldr r1, _021F2280 ; =0x0000FFFF
ldr r3, [r0, #4]
add r0, r1, #0
_021F226E:
ldr r2, [r4]
cmp r2, r0
beq _021F2276
str r1, [r4]
_021F2276:
add r4, #8
sub r3, r3, #1
bne _021F226E
pop {r3, r4}
bx lr
.balign 4, 0
_021F2280: .word 0x0000FFFF
thumb_func_start MOD05_021F2284
MOD05_021F2284: ; 0x021F2284
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r6, r1, #0
add r7, r2, #0
bl FUN_02058368
add r4, r0, #0
add r0, r5, #0
bl FUN_020583BC
str r0, [sp]
_021F229A:
ldr r0, [sp]
cmp r0, r6
beq _021F22CE
bl FUN_02058830
cmp r0, #1
bne _021F22CE
ldr r0, [sp]
bl FUN_02058458
add r5, r0, #0
bl FUN_0205C334
cmp r0, #1
bne _021F22C0
ldr r0, [sp]
bl FUN_0205C340
add r5, r0, #0
_021F22C0:
ldr r0, _021F22DC ; =0x0000FFFF
cmp r5, r0
beq _021F22CE
cmp r5, r7
bne _021F22CE
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021F22CE:
add r0, sp, #0
bl FUN_020583D4
sub r4, r4, #1
bne _021F229A
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_021F22DC: .word 0x0000FFFF
thumb_func_start MOD05_021F22E0
MOD05_021F22E0: ; 0x021F22E0
push {r3, r4, r5, r6, r7, lr}
add r4, r1, #0
add r5, r0, #0
add r6, r2, #0
add r7, r3, #0
mov r0, #4
mov r1, #0x40
lsl r2, r4, #0xc
add r3, r4, #0
bl MOD05_021F5990
add r1, r5, #0
add r1, #0xf8
str r0, [r1]
add r0, r5, #0
bl MOD05_021F2614
add r0, r5, #0
add r1, r6, #0
bl MOD05_021F2D80
add r0, r5, #0
sub r1, r4, r6
bl MOD05_021F2D88
mov r0, #4
mov r1, #0x41
lsl r2, r7, #7
add r3, r7, #0
bl MOD05_021F5990
add r1, r5, #0
add r1, #0xfc
str r0, [r1]
add r0, r5, #0
bl MOD05_021F2750
ldr r1, [sp, #0x18]
add r0, r5, #0
bl MOD05_021F2D90
ldr r1, [sp, #0x18]
add r0, r5, #0
sub r1, r7, r1
bl MOD05_021F2D98
ldr r0, [sp, #0x1c]
mov r1, #4
bl FUN_02020E90
add r1, r0, #0
add r0, r5, #0
bl MOD05_021F2D64
add r0, r5, #0
bl MOD05_021F288C
ldr r1, [sp, #0x20]
add r0, r5, #0
bl MOD05_021F2DA0
ldr r2, [sp, #0x1c]
ldr r1, [sp, #0x20]
add r0, r5, #0
sub r1, r2, r1
bl MOD05_021F2DA8
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD05_021F2368
MOD05_021F2368: ; 0x021F2368
push {r4, lr}
add r4, r0, #0
add r0, #0xf8
ldr r0, [r0]
bl MOD05_021F59EC
add r0, r4, #0
add r0, #0xfc
ldr r0, [r0]
bl MOD05_021F59EC
add r0, r4, #0
bl MOD05_021F2D6C
bl FUN_02020ED4
pop {r4, pc}
.balign 4, 0
_021F238C:
ldr r3, [r2]
cmp r3, r0
bne _021F2396
add r0, r2, #0
bx lr
_021F2396:
add r2, #8
ldr r3, [r2]
cmp r3, r1
bne _021F238C
mov r0, #0
bx lr
.balign 4, 0
thumb_func_start MOD05_021F23A4
MOD05_021F23A4: ; 0x021F23A4
push {r3, r4, r5, r6, r7, lr}
add r6, r1, #0
add r4, r2, #0
add r5, r0, #0
add r0, r6, #0
add r1, r4, #0
add r7, r3, #0
bl MOD05_021F5AA4
cmp r0, #1
bne _021F23BE
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
_021F23BE:
ldr r2, [sp, #0x18]
add r0, r4, #0
add r1, r7, #0
bl _021F238C
add r7, r0, #0
bne _021F23D0
bl ErrorHandling
_021F23D0:
mov r0, #0x41
lsl r0, r0, #2
ldr r0, [r5, r0]
bl FUN_020583F4
add r2, r0, #0
mov r0, #0
str r0, [sp]
ldr r3, [r7, #4]
add r0, r6, #0
add r1, r4, #0
bl MOD05_021F5AE4
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021F23F0
MOD05_021F23F0: ; 0x021F23F0
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r0, #0xf0
add r4, r2, #0
add r6, r1, #0
ldr r0, [r0]
add r1, r4, #0
add r7, r3, #0
bl FUN_02020EF8
cmp r0, #0
bne _021F240C
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
_021F240C:
add r0, r5, #0
add r1, r4, #0
bl MOD05_021F3084
cmp r0, #0
beq _021F241C
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021F241C:
ldr r1, _021F2448 ; =0x0000FFFF
add r0, r4, #0
add r2, r7, #0
bl _021F238C
add r2, r0, #0
bne _021F242E
mov r0, #2
pop {r3, r4, r5, r6, r7, pc}
_021F242E:
ldr r2, [r2, #4]
add r0, r5, #0
add r1, r4, #0
add r3, r6, #0
bl MOD05_021F2FD0
cmp r0, #1
bne _021F2442
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
_021F2442:
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
nop
_021F2448: .word 0x0000FFFF
thumb_func_start MOD05_021F244C
MOD05_021F244C: ; 0x021F244C
push {r3, lr}
ldr r3, _021F245C ; =0x021FA0AC
add r2, r1, #0
mov r1, #0
bl MOD05_021F23F0
pop {r3, pc}
nop
_021F245C: .word 0x021FA0AC
thumb_func_start MOD05_021F2460
MOD05_021F2460: ; 0x021F2460
push {r3, lr}
ldr r3, _021F2470 ; =0x021FA0AC
add r2, r1, #0
mov r1, #1
bl MOD05_021F23F0
pop {r3, pc}
nop
_021F2470: .word 0x021FA0AC
thumb_func_start MOD05_021F2474
MOD05_021F2474: ; 0x021F2474
push {r4, r5, r6, lr}
add r4, r1, #0
add r5, r0, #0
ldr r1, [r4]
ldr r0, _021F2494 ; =0x0000FFFF
cmp r1, r0
beq _021F2492
add r6, r0, #0
_021F2484:
add r0, r5, #0
bl MOD05_021F244C
add r4, r4, #4
ldr r1, [r4]
cmp r1, r6
bne _021F2484
_021F2492:
pop {r4, r5, r6, pc}
.balign 4, 0
_021F2494: .word 0x0000FFFF
thumb_func_start MOD05_021F2498
MOD05_021F2498: ; 0x021F2498
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
bl MOD05_021F2D54
ldr r0, _021F24C0 ; =0x021F9094
add r1, r5, #0
str r0, [sp]
add r1, #0xf8
ldr r1, [r1]
ldr r3, _021F24C4 ; =0x0000FFFF
add r0, r5, #0
add r2, r4, #0
bl MOD05_021F23A4
add r0, r5, #0
add r1, r4, #0
bl MOD05_021F2628
pop {r3, r4, r5, pc}
.balign 4, 0
_021F24C0: .word 0x021F9094
_021F24C4: .word 0x0000FFFF
thumb_func_start MOD05_021F24C8
MOD05_021F24C8: ; 0x021F24C8
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
bl MOD05_021F2D54
ldr r0, _021F24F0 ; =0x021F9094
add r1, r5, #0
str r0, [sp]
add r1, #0xf8
ldr r1, [r1]
ldr r3, _021F24F4 ; =0x0000FFFF
add r0, r5, #0
add r2, r4, #0
bl MOD05_021F23A4
add r0, r5, #0
add r1, r4, #0
bl MOD05_021F2670
pop {r3, r4, r5, pc}
.balign 4, 0
_021F24F0: .word 0x021F9094
_021F24F4: .word 0x0000FFFF
thumb_func_start MOD05_021F24F8
MOD05_021F24F8: ; 0x021F24F8
push {r4, r5, r6, lr}
add r4, r1, #0
add r5, r0, #0
ldr r1, [r4]
ldr r0, _021F2518 ; =0x0000FFFF
cmp r1, r0
beq _021F2516
add r6, r0, #0
_021F2508:
add r0, r5, #0
bl MOD05_021F2498
add r4, r4, #4
ldr r1, [r4]
cmp r1, r6
bne _021F2508
_021F2516:
pop {r4, r5, r6, pc}
.balign 4, 0
_021F2518: .word 0x0000FFFF
thumb_func_start MOD05_021F251C
MOD05_021F251C: ; 0x021F251C
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
bl MOD05_021F2D5C
ldr r0, _021F2544 ; =0x021F90E4
add r1, r5, #0
str r0, [sp]
add r1, #0xfc
ldr r1, [r1]
ldr r3, _021F2548 ; =0x0000FFFF
add r0, r5, #0
add r2, r4, #0
bl MOD05_021F23A4
add r0, r5, #0
add r1, r4, #0
bl MOD05_021F2764
pop {r3, r4, r5, pc}
.balign 4, 0
_021F2544: .word 0x021F90E4
_021F2548: .word 0x0000FFFF
thumb_func_start MOD05_021F254C
MOD05_021F254C: ; 0x021F254C
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
bl MOD05_021F2D5C
ldr r0, _021F2574 ; =0x021F90E4
add r1, r5, #0
str r0, [sp]
add r1, #0xfc
ldr r1, [r1]
ldr r3, _021F2578 ; =0x0000FFFF
add r0, r5, #0
add r2, r4, #0
bl MOD05_021F23A4
add r0, r5, #0
add r1, r4, #0
bl MOD05_021F27AC
pop {r3, r4, r5, pc}
.balign 4, 0
_021F2574: .word 0x021F90E4
_021F2578: .word 0x0000FFFF
thumb_func_start MOD05_021F257C
MOD05_021F257C: ; 0x021F257C
push {r4, r5, r6, lr}
add r4, r1, #0
add r5, r0, #0
ldr r1, [r4]
ldr r0, _021F259C ; =0x0000FFFF
cmp r1, r0
beq _021F259A
add r6, r0, #0
_021F258C:
add r0, r5, #0
bl MOD05_021F251C
add r4, r4, #4
ldr r1, [r4]
cmp r1, r6
bne _021F258C
_021F259A:
pop {r4, r5, r6, pc}
.balign 4, 0
_021F259C: .word 0x0000FFFF
thumb_func_start MOD05_021F25A0
MOD05_021F25A0: ; 0x021F25A0
push {r4, r5, r6, lr}
add r5, r0, #0
add r4, r2, #0
add r6, r3, #0
bl MOD05_021F2474
add r0, r5, #0
add r1, r4, #0
bl MOD05_021F24F8
add r0, r5, #0
add r1, r6, #0
bl MOD05_021F257C
pop {r4, r5, r6, pc}
.balign 4, 0
_021F25C0:
stmia r0!, {r1}
sub r2, r2, #1
bne _021F25C0
bx lr
thumb_func_start MOD05_021F25C8
MOD05_021F25C8: ; 0x021F25C8
push {r3, r4}
_021F25CA:
ldr r4, [r0]
cmp r4, r2
bne _021F25D8
str r1, [r0]
mov r0, #1
pop {r3, r4}
bx lr
_021F25D8:
add r0, r0, #4
sub r3, r3, #1
bne _021F25CA
mov r0, #0
pop {r3, r4}
bx lr
_021F25E4:
ldr r3, [r0]
cmp r3, r1
bne _021F25EE
mov r0, #1
bx lr
_021F25EE:
add r0, r0, #4
sub r2, r2, #1
bne _021F25E4
mov r0, #0
bx lr
thumb_func_start MOD05_021F25F8
MOD05_021F25F8: ; 0x021F25F8
push {r3, r4}
_021F25FA:
ldr r4, [r0]
cmp r4, r1
bne _021F2608
str r2, [r0]
mov r0, #1
pop {r3, r4}
bx lr
_021F2608:
add r0, r0, #4
sub r3, r3, #1
bne _021F25FA
mov r0, #0
pop {r3, r4}
bx lr
thumb_func_start MOD05_021F2614
MOD05_021F2614: ; 0x021F2614
push {r3, lr}
bl MOD05_021F2D78
ldr r1, _021F2624 ; =0x0000FFFF
mov r2, #8
bl _021F25C0
pop {r3, pc}
.balign 4, 0
_021F2624: .word 0x0000FFFF
thumb_func_start MOD05_021F2628
MOD05_021F2628: ; 0x021F2628
push {r4, r5, r6, lr}
add r5, r0, #0
add r4, r1, #0
bl MOD05_021F2D84
add r6, r0, #0
add r0, r5, #0
bl MOD05_021F2D78
ldr r2, _021F2650 ; =0x0000FFFF
add r1, r4, #0
add r3, r6, #0
bl MOD05_021F25C8
cmp r0, #0
bne _021F264C
bl ErrorHandling
_021F264C:
pop {r4, r5, r6, pc}
nop
_021F2650: .word 0x0000FFFF
thumb_func_start MOD05_021F2654
MOD05_021F2654: ; 0x021F2654
push {r4, r5, r6, lr}
add r5, r0, #0
add r4, r1, #0
bl MOD05_021F2D84
add r6, r0, #0
add r0, r5, #0
bl MOD05_021F2D78
add r1, r4, #0
add r2, r6, #0
bl _021F25E4
pop {r4, r5, r6, pc}
thumb_func_start MOD05_021F2670
MOD05_021F2670: ; 0x021F2670
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r7, r1, #0
bl MOD05_021F2D78
add r6, r0, #0
add r0, r5, #0
bl MOD05_021F2D84
lsl r4, r0, #2
add r0, r5, #0
bl MOD05_021F2D8C
add r3, r0, #0
ldr r2, _021F26A0 ; =0x0000FFFF
add r0, r6, r4
add r1, r7, #0
bl MOD05_021F25C8
cmp r0, #0
bne _021F269E
bl ErrorHandling
_021F269E:
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_021F26A0: .word 0x0000FFFF
thumb_func_start MOD05_021F26A4
MOD05_021F26A4: ; 0x021F26A4
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r7, r1, #0
bl MOD05_021F2D78
add r6, r0, #0
add r0, r5, #0
bl MOD05_021F2D84
lsl r4, r0, #2
add r0, r5, #0
bl MOD05_021F2D8C
add r2, r0, #0
add r0, r6, r4
add r1, r7, #0
bl _021F25E4
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021F26CC
MOD05_021F26CC: ; 0x021F26CC
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r7, r1, #0
bl MOD05_021F2D78
add r6, r0, #0
add r0, r5, #0
bl MOD05_021F2D84
lsl r4, r0, #2
add r0, r5, #0
bl MOD05_021F2D8C
add r3, r0, #0
ldr r2, _021F26F4 ; =0x0000FFFF
add r0, r6, r4
add r1, r7, #0
bl MOD05_021F25F8
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_021F26F4: .word 0x0000FFFF
thumb_func_start MOD05_021F26F8
MOD05_021F26F8: ; 0x021F26F8
push {r3, r4, r5, r6, r7, lr}
add r6, r1, #0
add r7, r0, #0
add r0, r6, #0
bl MOD05_021F2D54
add r0, r6, #0
bl MOD05_021F2D78
add r4, r0, #0
add r0, r6, #0
bl MOD05_021F2D84
lsl r0, r0, #2
add r5, r4, r0
add r0, r6, #0
bl MOD05_021F2D8C
add r4, r0, #0
_021F271E:
ldr r1, [r5]
ldr r0, _021F274C ; =0x0000FFFF
cmp r1, r0
beq _021F2742
add r0, r7, #0
mov r2, #0
bl MOD05_021F2B70
cmp r0, #0
bne _021F2742
add r0, r6, #0
add r0, #0xf8
ldr r0, [r0]
ldr r1, [r5]
bl MOD05_021F5A74
ldr r0, _021F274C ; =0x0000FFFF
str r0, [r5]
_021F2742:
add r5, r5, #4
sub r4, r4, #1
bne _021F271E
pop {r3, r4, r5, r6, r7, pc}
nop
_021F274C: .word 0x0000FFFF
thumb_func_start MOD05_021F2750
MOD05_021F2750: ; 0x021F2750
push {r3, lr}
bl MOD05_021F2D7C
ldr r1, _021F2760 ; =0x0000FFFF
mov r2, #8
bl _021F25C0
pop {r3, pc}
.balign 4, 0
_021F2760: .word 0x0000FFFF
thumb_func_start MOD05_021F2764
MOD05_021F2764: ; 0x021F2764
push {r4, r5, r6, lr}
add r5, r0, #0
add r4, r1, #0
bl MOD05_021F2D94
add r6, r0, #0
add r0, r5, #0
bl MOD05_021F2D7C
ldr r2, _021F278C ; =0x0000FFFF
add r1, r4, #0
add r3, r6, #0
bl MOD05_021F25C8
cmp r0, #0
bne _021F2788
bl ErrorHandling
_021F2788:
pop {r4, r5, r6, pc}
nop
_021F278C: .word 0x0000FFFF
thumb_func_start MOD05_021F2790
MOD05_021F2790: ; 0x021F2790
push {r4, r5, r6, lr}
add r5, r0, #0
add r4, r1, #0
bl MOD05_021F2D94
add r6, r0, #0
add r0, r5, #0
bl MOD05_021F2D7C
add r1, r4, #0
add r2, r6, #0
bl _021F25E4
pop {r4, r5, r6, pc}
thumb_func_start MOD05_021F27AC
MOD05_021F27AC: ; 0x021F27AC
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r7, r1, #0
bl MOD05_021F2D7C
add r6, r0, #0
add r0, r5, #0
bl MOD05_021F2D94
lsl r4, r0, #2
add r0, r5, #0
bl MOD05_021F2D9C
add r3, r0, #0
ldr r2, _021F27DC ; =0x0000FFFF
add r0, r6, r4
add r1, r7, #0
bl MOD05_021F25C8
cmp r0, #0
bne _021F27DA
bl ErrorHandling
_021F27DA:
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_021F27DC: .word 0x0000FFFF
thumb_func_start MOD05_021F27E0
MOD05_021F27E0: ; 0x021F27E0
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r7, r1, #0
bl MOD05_021F2D7C
add r6, r0, #0
add r0, r5, #0
bl MOD05_021F2D94
lsl r4, r0, #2
add r0, r5, #0
bl MOD05_021F2D9C
add r2, r0, #0
add r0, r6, r4
add r1, r7, #0
bl _021F25E4
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021F2808
MOD05_021F2808: ; 0x021F2808
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r7, r1, #0
bl MOD05_021F2D7C
add r6, r0, #0
add r0, r5, #0
bl MOD05_021F2D94
lsl r4, r0, #2
add r0, r5, #0
bl MOD05_021F2D9C
add r3, r0, #0
ldr r2, _021F2830 ; =0x0000FFFF
add r0, r6, r4
add r1, r7, #0
bl MOD05_021F25F8
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_021F2830: .word 0x0000FFFF
thumb_func_start MOD05_021F2834
MOD05_021F2834: ; 0x021F2834
push {r3, r4, r5, r6, r7, lr}
add r6, r1, #0
add r7, r0, #0
add r0, r6, #0
bl MOD05_021F2D5C
add r0, r6, #0
bl MOD05_021F2D7C
add r4, r0, #0
add r0, r6, #0
bl MOD05_021F2D94
lsl r0, r0, #2
add r5, r4, r0
add r0, r6, #0
bl MOD05_021F2D9C
add r4, r0, #0
_021F285A:
ldr r1, [r5]
ldr r0, _021F2888 ; =0x0000FFFF
cmp r1, r0
beq _021F287E
add r0, r7, #0
mov r2, #0
bl MOD05_021F2BF8
cmp r0, #0
bne _021F287E
add r0, r6, #0
add r0, #0xfc
ldr r0, [r0]
ldr r1, [r5]
bl MOD05_021F5A74
ldr r0, _021F2888 ; =0x0000FFFF
str r0, [r5]
_021F287E:
add r5, r5, #4
sub r4, r4, #1
bne _021F285A
pop {r3, r4, r5, r6, r7, pc}
nop
_021F2888: .word 0x0000FFFF
thumb_func_start MOD05_021F288C
MOD05_021F288C: ; 0x021F288C
push {r3, lr}
bl MOD05_021F2D74
ldr r1, _021F289C ; =0x0000FFFF
mov r2, #0x20
bl _021F25C0
pop {r3, pc}
.balign 4, 0
_021F289C: .word 0x0000FFFF
thumb_func_start MOD05_021F28A0
MOD05_021F28A0: ; 0x021F28A0
push {r4, r5, r6, lr}
add r5, r0, #0
add r4, r1, #0
bl MOD05_021F2DA4
add r6, r0, #0
add r0, r5, #0
bl MOD05_021F2D74
ldr r2, _021F28C8 ; =0x0000FFFF
add r1, r4, #0
add r3, r6, #0
bl MOD05_021F25C8
cmp r0, #0
bne _021F28C4
bl ErrorHandling
_021F28C4:
pop {r4, r5, r6, pc}
nop
_021F28C8: .word 0x0000FFFF
thumb_func_start MOD05_021F28CC
MOD05_021F28CC: ; 0x021F28CC
push {r4, r5, r6, lr}
add r5, r0, #0
add r4, r1, #0
bl MOD05_021F2DA4
add r6, r0, #0
add r0, r5, #0
bl MOD05_021F2D74
add r1, r4, #0
add r2, r6, #0
bl _021F25E4
pop {r4, r5, r6, pc}
thumb_func_start MOD05_021F28E8
MOD05_021F28E8: ; 0x021F28E8
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
bl MOD05_021F28CC
cmp r0, #1
bne _021F28FA
mov r0, #1
pop {r3, r4, r5, pc}
_021F28FA:
add r0, r5, #0
add r1, r4, #0
bl MOD05_021F29E0
cmp r0, #1
bne _021F290A
mov r0, #2
pop {r3, r4, r5, pc}
_021F290A:
add r0, r5, #0
add r1, r4, #0
bl MOD05_021F3084
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021F2914
MOD05_021F2914: ; 0x021F2914
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r7, r1, #0
bl MOD05_021F2D74
add r6, r0, #0
add r0, r5, #0
bl MOD05_021F2DA4
lsl r4, r0, #2
add r0, r5, #0
bl MOD05_021F2DAC
add r3, r0, #0
ldr r2, _021F2944 ; =0x0000FFFF
add r0, r6, r4
add r1, r7, #0
bl MOD05_021F25C8
cmp r0, #0
bne _021F2942
bl ErrorHandling
_021F2942:
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_021F2944: .word 0x0000FFFF
thumb_func_start MOD05_021F2948
MOD05_021F2948: ; 0x021F2948
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r7, r1, #0
bl MOD05_021F2D74
add r6, r0, #0
add r0, r5, #0
bl MOD05_021F2DA4
lsl r4, r0, #2
add r0, r5, #0
bl MOD05_021F2DAC
add r3, r0, #0
ldr r2, _021F2970 ; =0x0000FFFF
add r0, r6, r4
add r1, r7, #0
bl MOD05_021F25F8
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_021F2970: .word 0x0000FFFF
thumb_func_start MOD05_021F2974
MOD05_021F2974: ; 0x021F2974
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
add r6, r1, #0
str r0, [sp]
add r0, r6, #0
bl MOD05_021F2D6C
str r0, [sp, #4]
add r0, r6, #0
bl MOD05_021F2D74
add r4, r0, #0
add r0, r6, #0
bl MOD05_021F2DA4
lsl r0, r0, #2
add r5, r4, r0
add r0, r6, #0
bl MOD05_021F2DAC
add r7, r0, #0
_021F299E:
ldr r4, [r5]
ldr r0, _021F29DC ; =0x0000FFFF
cmp r4, r0
beq _021F29D0
ldr r0, [sp]
add r1, r4, #0
mov r2, #0
bl MOD05_021F2B10
cmp r0, #0
bne _021F29D0
ldr r0, [sp, #4]
add r1, r4, #0
bl FUN_02020FF0
add r0, r6, #0
add r1, r4, #0
bl MOD05_021F3050
add r0, r6, #0
add r1, r4, #0
bl MOD05_021F3204
ldr r0, _021F29DC ; =0x0000FFFF
str r0, [r5]
_021F29D0:
add r5, r5, #4
sub r7, r7, #1
bne _021F299E
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
nop
_021F29DC: .word 0x0000FFFF
thumb_func_start MOD05_021F29E0
MOD05_021F29E0: ; 0x021F29E0
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r7, r1, #0
bl MOD05_021F2D74
add r6, r0, #0
add r0, r5, #0
bl MOD05_021F2DA4
lsl r4, r0, #2
add r0, r5, #0
bl MOD05_021F2DAC
add r2, r0, #0
add r0, r6, r4
add r1, r7, #0
bl _021F25E4
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021F2A08
MOD05_021F2A08: ; 0x021F2A08
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
bl MOD05_021F28CC
cmp r0, #1
bne _021F2A1A
mov r0, #0
pop {r3, r4, r5, pc}
_021F2A1A:
add r0, r5, #0
add r1, r4, #0
bl MOD05_021F29E0
cmp r0, #1
bne _021F2A2A
mov r0, #1
pop {r3, r4, r5, pc}
_021F2A2A:
mov r0, #2
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021F2A30
MOD05_021F2A30: ; 0x021F2A30
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
bl MOD05_021F2654
cmp r0, #1
bne _021F2A42
mov r0, #0
pop {r3, r4, r5, pc}
_021F2A42:
add r0, r5, #0
add r1, r4, #0
bl MOD05_021F26A4
cmp r0, #1
bne _021F2A52
mov r0, #1
pop {r3, r4, r5, pc}
_021F2A52:
mov r0, #2
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021F2A58
MOD05_021F2A58: ; 0x021F2A58
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
bl MOD05_021F2790
cmp r0, #1
bne _021F2A6A
mov r0, #0
pop {r3, r4, r5, pc}
_021F2A6A:
add r0, r5, #0
add r1, r4, #0
bl MOD05_021F27E0
cmp r0, #1
bne _021F2A7A
mov r0, #1
pop {r3, r4, r5, pc}
_021F2A7A:
mov r0, #2
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021F2A80
MOD05_021F2A80: ; 0x021F2A80
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
bl MOD05_021F28E8
cmp r0, #0
bne _021F2A96
add r0, r5, #0
add r1, r4, #0
bl MOD05_021F2460
_021F2A96:
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021F2A98
MOD05_021F2A98: ; 0x021F2A98
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
bl MOD05_021F2A30
cmp r0, #2
bne _021F2AAE
add r0, r5, #0
add r1, r4, #0
bl MOD05_021F24C8
_021F2AAE:
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021F2AB0
MOD05_021F2AB0: ; 0x021F2AB0
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
bl MOD05_021F2A58
cmp r0, #2
bne _021F2AC6
add r0, r5, #0
add r1, r4, #0
bl MOD05_021F254C
_021F2AC6:
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021F2AC8
MOD05_021F2AC8: ; 0x021F2AC8
push {r3, r4, r5, lr}
add r4, r1, #0
add r5, r0, #0
add r0, r4, #0
bl MOD05_021F2DE8
add r1, r0, #0
add r0, r5, #0
bl MOD05_021F2A98
add r0, r4, #0
bl MOD05_021F2DF4
add r1, r0, #0
add r0, r5, #0
bl MOD05_021F2AB0
add r0, r5, #0
add r1, r4, #0
bl MOD05_021F2A80
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021F2AF4
MOD05_021F2AF4: ; 0x021F2AF4
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
bl MOD05_021F26F8
add r0, r5, #0
add r1, r4, #0
bl MOD05_021F2834
add r0, r5, #0
add r1, r4, #0
bl MOD05_021F2974
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021F2B10
MOD05_021F2B10: ; 0x021F2B10
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
add r6, r1, #0
mov r1, #0
add r5, r2, #0
str r1, [sp, #4]
str r1, [sp]
add r1, sp, #0
add r2, sp, #4
mov r3, #1
add r7, r0, #0
bl FUN_020580F4
cmp r0, #1
bne _021F2B6A
_021F2B2E:
cmp r5, #0
beq _021F2B38
ldr r0, [sp]
cmp r5, r0
beq _021F2B5A
_021F2B38:
ldr r0, [sp]
bl FUN_02058458
add r4, r0, #0
bl FUN_0205C334
cmp r0, #1
bne _021F2B50
ldr r0, [sp]
bl FUN_0205C340
add r4, r0, #0
_021F2B50:
cmp r4, r6
bne _021F2B5A
add sp, #8
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021F2B5A:
add r0, r7, #0
add r1, sp, #0
add r2, sp, #4
mov r3, #1
bl FUN_020580F4
cmp r0, #1
beq _021F2B2E
_021F2B6A:
mov r0, #0
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD05_021F2B70
MOD05_021F2B70: ; 0x021F2B70
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
add r6, r1, #0
mov r1, #0
add r5, r2, #0
str r1, [sp, #4]
str r1, [sp]
add r1, sp, #0
add r2, sp, #4
mov r3, #1
add r7, r0, #0
bl FUN_020580F4
cmp r0, #1
bne _021F2BEE
_021F2B8E:
cmp r5, #0
beq _021F2B98
ldr r0, [sp]
cmp r5, r0
beq _021F2BDE
_021F2B98:
ldr r0, [sp]
bl FUN_02058458
add r4, r0, #0
ldr r0, _021F2BF4 ; =0x0000FFFF
cmp r4, r0
beq _021F2BDE
ldr r0, [sp]
bl MOD05_021F1DC8
ldr r0, [r0, #4]
lsl r0, r0, #0x1c
lsr r0, r0, #0x1c
cmp r0, #1
bne _021F2BDE
add r0, r4, #0
bl FUN_0205C334
cmp r0, #1
bne _021F2BC8
ldr r0, [sp]
bl FUN_0205C340
add r4, r0, #0
_021F2BC8:
ldr r0, _021F2BF4 ; =0x0000FFFF
cmp r4, r0
beq _021F2BDE
add r0, r4, #0
bl MOD05_021F2DE8
cmp r6, r0
bne _021F2BDE
add sp, #8
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021F2BDE:
add r0, r7, #0
add r1, sp, #0
add r2, sp, #4
mov r3, #1
bl FUN_020580F4
cmp r0, #1
beq _021F2B8E
_021F2BEE:
mov r0, #0
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_021F2BF4: .word 0x0000FFFF
thumb_func_start MOD05_021F2BF8
MOD05_021F2BF8: ; 0x021F2BF8
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
add r6, r1, #0
mov r1, #0
add r5, r2, #0
str r1, [sp, #4]
str r1, [sp]
add r1, sp, #0
add r2, sp, #4
mov r3, #1
add r7, r0, #0
bl FUN_020580F4
cmp r0, #1
bne _021F2C74
_021F2C16:
cmp r5, #0
beq _021F2C20
ldr r0, [sp]
cmp r0, r5
beq _021F2C64
_021F2C20:
ldr r0, _021F2C7C ; =0x0000FFFF
cmp r4, r0
beq _021F2C64
ldr r0, [sp]
bl MOD05_021F1DC8
ldr r0, [r0, #4]
lsl r0, r0, #0x1c
lsr r0, r0, #0x1c
cmp r0, #1
bne _021F2C64
ldr r0, [sp]
bl FUN_02058458
add r4, r0, #0
bl FUN_0205C334
cmp r0, #1
bne _021F2C4E
ldr r0, [sp]
bl FUN_0205C340
add r4, r0, #0
_021F2C4E:
ldr r0, _021F2C7C ; =0x0000FFFF
cmp r4, r0
beq _021F2C64
add r0, r4, #0
bl MOD05_021F2DF4
cmp r6, r0
bne _021F2C64
add sp, #8
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021F2C64:
add r0, r7, #0
add r1, sp, #0
add r2, sp, #4
mov r3, #1
bl FUN_020580F4
cmp r0, #1
beq _021F2C16
_021F2C74:
mov r0, #0
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
nop
_021F2C7C: .word 0x0000FFFF
thumb_func_start MOD05_021F2C80
MOD05_021F2C80: ; 0x021F2C80
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
add r5, r1, #0
add r6, r0, #0
add r7, r2, #0
bl FUN_020583A0
add r4, r0, #0
add r0, r5, #0
bl MOD05_021F2DE8
str r0, [sp]
ldr r1, [sp]
add r0, r4, #0
bl MOD05_021F2A30
cmp r0, #1
bne _021F2CC6
ldr r1, [sp]
add r0, r6, #0
add r2, r7, #0
bl MOD05_021F2B70
cmp r0, #0
bne _021F2CC6
add r0, r4, #0
add r0, #0xf8
ldr r0, [r0]
ldr r1, [sp]
bl MOD05_021F5A74
ldr r1, [sp]
add r0, r4, #0
bl MOD05_021F26CC
_021F2CC6:
add r0, r5, #0
bl MOD05_021F2DF4
str r0, [sp, #4]
ldr r1, [sp, #4]
add r0, r4, #0
bl MOD05_021F2A58
cmp r0, #1
bne _021F2CFC
ldr r1, [sp, #4]
add r0, r6, #0
add r2, r7, #0
bl MOD05_021F2BF8
cmp r0, #0
bne _021F2CFC
add r0, r4, #0
add r0, #0xfc
ldr r0, [r0]
ldr r1, [sp, #4]
bl MOD05_021F5A74
ldr r1, [sp, #4]
add r0, r4, #0
bl MOD05_021F2808
_021F2CFC:
add r0, r4, #0
add r1, r5, #0
bl MOD05_021F2A08
cmp r0, #1
bne _021F2D3A
add r0, r6, #0
add r1, r5, #0
add r2, r7, #0
bl MOD05_021F2B10
cmp r0, #0
bne _021F2D3A
add r0, r4, #0
bl MOD05_021F2D6C
add r1, r5, #0
bl FUN_02020FF0
add r0, r4, #0
add r1, r5, #0
bl MOD05_021F2948
add r0, r4, #0
add r1, r5, #0
bl MOD05_021F3050
add r0, r4, #0
add r1, r5, #0
bl MOD05_021F3204
_021F2D3A:
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021F2D40
MOD05_021F2D40: ; 0x021F2D40
add r0, #0xe0
str r1, [r0]
bx lr
.balign 4, 0
thumb_func_start MOD05_021F2D48
MOD05_021F2D48: ; 0x021F2D48
add r0, #0xe0
ldr r0, [r0]
bx lr
.balign 4, 0
thumb_func_start MOD05_021F2D50
MOD05_021F2D50: ; 0x021F2D50
str r1, [r0, #4]
bx lr
thumb_func_start MOD05_021F2D54
MOD05_021F2D54: ; 0x021F2D54
add r0, #0xe8
ldr r0, [r0]
bx lr
.balign 4, 0
thumb_func_start MOD05_021F2D5C
MOD05_021F2D5C: ; 0x021F2D5C
add r0, #0xec
ldr r0, [r0]
bx lr
.balign 4, 0
thumb_func_start MOD05_021F2D64
MOD05_021F2D64: ; 0x021F2D64
add r0, #0xf0
str r1, [r0]
bx lr
.balign 4, 0
thumb_func_start MOD05_021F2D6C
MOD05_021F2D6C: ; 0x021F2D6C
add r0, #0xf0
ldr r0, [r0]
bx lr
.balign 4, 0
thumb_func_start MOD05_021F2D74
MOD05_021F2D74: ; 0x021F2D74
add r0, #0x60
bx lr
thumb_func_start MOD05_021F2D78
MOD05_021F2D78: ; 0x021F2D78
add r0, #0x20
bx lr
thumb_func_start MOD05_021F2D7C
MOD05_021F2D7C: ; 0x021F2D7C
add r0, #0x40
bx lr
thumb_func_start MOD05_021F2D80
MOD05_021F2D80: ; 0x021F2D80
str r1, [r0, #8]
bx lr
thumb_func_start MOD05_021F2D84
MOD05_021F2D84: ; 0x021F2D84
ldr r0, [r0, #8]
bx lr
thumb_func_start MOD05_021F2D88
MOD05_021F2D88: ; 0x021F2D88
str r1, [r0, #0xc]
bx lr
thumb_func_start MOD05_021F2D8C
MOD05_021F2D8C: ; 0x021F2D8C
ldr r0, [r0, #0xc]
bx lr
thumb_func_start MOD05_021F2D90
MOD05_021F2D90: ; 0x021F2D90
str r1, [r0, #0x10]
bx lr
thumb_func_start MOD05_021F2D94
MOD05_021F2D94: ; 0x021F2D94
ldr r0, [r0, #0x10]
bx lr
thumb_func_start MOD05_021F2D98
MOD05_021F2D98: ; 0x021F2D98
str r1, [r0, #0x14]
bx lr
thumb_func_start MOD05_021F2D9C
MOD05_021F2D9C: ; 0x021F2D9C
ldr r0, [r0, #0x14]
bx lr
thumb_func_start MOD05_021F2DA0
MOD05_021F2DA0: ; 0x021F2DA0
str r1, [r0, #0x18]
bx lr
thumb_func_start MOD05_021F2DA4
MOD05_021F2DA4: ; 0x021F2DA4
ldr r0, [r0, #0x18]
bx lr
thumb_func_start MOD05_021F2DA8
MOD05_021F2DA8: ; 0x021F2DA8
str r1, [r0, #0x1c]
bx lr
thumb_func_start MOD05_021F2DAC
MOD05_021F2DAC: ; 0x021F2DAC
ldr r0, [r0, #0x1c]
bx lr
thumb_func_start MOD05_021F2DB0
MOD05_021F2DB0: ; 0x021F2DB0
mov r3, #0x41
lsl r3, r3, #2
ldr r0, [r0, r3]
ldr r3, _021F2DBC ; =MOD05_021F1E2C
bx r3
nop
_021F2DBC: .word MOD05_021F1E2C
thumb_func_start MOD05_021F2DC0
MOD05_021F2DC0: ; 0x021F2DC0
push {r3, lr}
ldr r3, _021F2DE0 ; =0x021FAC6C
ldr r1, _021F2DE4 ; =0x0000FFFF
_021F2DC6:
ldr r2, [r3]
cmp r2, r0
bne _021F2DD0
add r0, r3, #0
pop {r3, pc}
_021F2DD0:
add r3, #0x10
ldr r2, [r3]
cmp r2, r1
bne _021F2DC6
bl ErrorHandling
mov r0, #0
pop {r3, pc}
.balign 4, 0
_021F2DE0: .word 0x021FAC6C
_021F2DE4: .word 0x0000FFFF
thumb_func_start MOD05_021F2DE8
MOD05_021F2DE8: ; 0x021F2DE8
push {r3, lr}
bl MOD05_021F2DC0
ldr r0, [r0, #4]
pop {r3, pc}
.balign 4, 0
thumb_func_start MOD05_021F2DF4
MOD05_021F2DF4: ; 0x021F2DF4
push {r3, lr}
bl MOD05_021F2DC0
ldr r0, [r0, #8]
pop {r3, pc}
.balign 4, 0
thumb_func_start MOD05_021F2E00
MOD05_021F2E00: ; 0x021F2E00
push {r3, lr}
bl MOD05_021F2DC0
ldr r0, [r0, #0xc]
pop {r3, pc}
.balign 4, 0
thumb_func_start MOD05_021F2E0C
MOD05_021F2E0C: ; 0x021F2E0C
push {r3, lr}
cmp r1, #1
bne _021F2E1C
mov r1, #1
lsl r1, r1, #0x16
bl FUN_02058410
pop {r3, pc}
_021F2E1C:
mov r1, #1
lsl r1, r1, #0x16
bl FUN_02058418
pop {r3, pc}
.balign 4, 0
thumb_func_start MOD05_021F2E28
MOD05_021F2E28: ; 0x021F2E28
push {r3, lr}
mov r1, #1
lsl r1, r1, #0x16
bl FUN_02058424
cmp r0, #0
beq _021F2E3A
mov r0, #1
pop {r3, pc}
_021F2E3A:
mov r0, #0
pop {r3, pc}
.balign 4, 0
thumb_func_start MOD05_021F2E40
MOD05_021F2E40: ; 0x021F2E40
push {r3, r4, r5, lr}
sub sp, #8
add r5, r0, #0
mov r0, #4
add r4, r1, #0
str r0, [sp, #4]
add r0, sp, #0
str r4, [sp]
bl FUN_0201F1B4
add r1, r0, #0
add r0, r5, #0
bl MOD05_021F2D40
add r0, r5, #0
add r1, r4, #0
bl MOD05_021F2D50
add sp, #8
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021F2E68
MOD05_021F2E68: ; 0x021F2E68
ldr r3, _021F2E6C ; =FUN_0201F23C
bx r3
.balign 4, 0
_021F2E6C: .word FUN_0201F23C
thumb_func_start MOD05_021F2E70
MOD05_021F2E70: ; 0x021F2E70
push {r4, lr}
sub sp, #0x20
str r0, [sp]
str r1, [sp, #4]
ldmia r2!, {r0, r1}
add r3, sp, #8
stmia r3!, {r0, r1}
ldr r0, [r2]
add r2, sp, #0x14
str r0, [r3]
ldr r3, _021F2ECC ; =0x021FC550
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldr r0, [r3]
str r0, [r2]
add r0, sp, #0
bl FUN_0201F6E8
add r4, r0, #0
beq _021F2EC4
mov r1, #0
bl FUN_0201F80C
add r0, r4, #0
mov r1, #0
bl FUN_0201F830
add r0, r4, #0
mov r1, #0
bl FUN_0201F890
add r0, r4, #0
bl FUN_0201F8E0
mov r1, #1
bl FUN_020BB9F4
add r0, r4, #0
bl FUN_0201F8E0
bl MOD05_021DB5EC
_021F2EC4:
add r0, r4, #0
add sp, #0x20
pop {r4, pc}
nop
_021F2ECC: .word 0x021FC550
thumb_func_start MOD05_021F2ED0
MOD05_021F2ED0: ; 0x021F2ED0
push {r4, r5, r6, lr}
add r5, r1, #0
add r6, r0, #0
add r0, r5, #0
add r4, r2, #0
bl MOD05_021F2DE8
add r1, r0, #0
add r0, r6, #0
add r0, #0xf8
ldr r0, [r0]
bl MOD05_021F5A90
str r0, [r4]
add r0, r5, #0
bl MOD05_021F2DF4
add r1, r0, #0
add r0, r6, #0
add r0, #0xfc
ldr r0, [r0]
bl MOD05_021F5A90
add r1, r4, #0
add r1, #0xc
bl FUN_0202227C
add r0, r6, #0
bl MOD05_021F2D6C
add r1, r5, #0
bl FUN_02021050
add r6, r0, #0
bl FUN_020210AC
str r0, [r4, #4]
add r0, r6, #0
bl FUN_020211AC
str r0, [r4, #0x1c]
add r0, r6, #0
bl FUN_020211BC
str r0, [r4, #0x20]
add r0, r6, #0
bl FUN_020211CC
str r0, [r4, #0x24]
add r0, r5, #0
bl MOD05_021F2E00
str r0, [r4, #8]
pop {r4, r5, r6, pc}
thumb_func_start MOD05_021F2F3C
MOD05_021F2F3C: ; 0x021F2F3C
push {r3, lr}
bl FUN_02058578
bl FUN_020583A0
pop {r3, pc}
thumb_func_start MOD05_021F2F48
MOD05_021F2F48: ; 0x021F2F48
push {r3, r4, lr}
sub sp, #0xc
add r4, r1, #0
add r1, sp, #0
bl MOD05_021F1E64
mov r0, #6
ldr r1, [sp, #8]
lsl r0, r0, #0xc
add r0, r1, r0
str r0, [sp, #8]
add r0, r4, #0
add r1, sp, #0
bl FUN_0201F7C8
mov r0, #0
add sp, #0xc
pop {r3, r4, pc}
thumb_func_start MOD05_021F2F6C
MOD05_021F2F6C: ; 0x021F2F6C
push {r4, r5, r6, lr}
mov r4, #1
add r6, r1, #0
lsl r1, r4, #9
add r5, r0, #0
bl FUN_0205842C
cmp r0, #1
bne _021F2F80
mov r4, #0
_021F2F80:
mov r1, #1
add r0, r5, #0
lsl r1, r1, #0xc
bl FUN_0205842C
cmp r0, #1
bne _021F2F9E
mov r1, #2
add r0, r5, #0
lsl r1, r1, #0xc
bl FUN_0205842C
cmp r0, #0
bne _021F2F9E
mov r4, #0
_021F2F9E:
lsl r1, r4, #0x18
add r0, r6, #0
lsr r1, r1, #0x18
bl FUN_0201F80C
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_start MOD05_021F2FAC
MOD05_021F2FAC: ; 0x021F2FAC
lsl r1, r0, #2
ldr r0, _021F2FB4 ; =0x021FC55C
ldr r0, [r0, r1]
bx lr
.balign 4, 0
_021F2FB4: .word 0x021FC55C
thumb_func_start MOD05_021F2FB8
MOD05_021F2FB8: ; 0x021F2FB8
lsl r1, r0, #2
ldr r0, _021F2FC0 ; =0x021FC56C
ldr r0, [r0, r1]
bx lr
.balign 4, 0
_021F2FC0: .word 0x021FC56C
thumb_func_start MOD05_021F2FC4
MOD05_021F2FC4: ; 0x021F2FC4
lsl r1, r0, #2
ldr r0, _021F2FCC ; =0x021FC57C
ldr r0, [r0, r1]
bx lr
.balign 4, 0
_021F2FCC: .word 0x021FC57C
thumb_func_start MOD05_021F2FD0
MOD05_021F2FD0: ; 0x021F2FD0
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
mov r0, #1
lsl r0, r0, #8
ldr r4, [r5, r0]
mov r0, #4
add r6, r1, #0
ldrsh r1, [r4, r0]
mov r0, #2
ldrsh r0, [r4, r0]
add r7, r2, #0
str r3, [sp]
cmp r1, r0
bge _021F2FFA
add r0, r5, #0
add r0, #0xe0
ldr r0, [r0]
bl FUN_0201F2C0
cmp r0, #1
bne _021F302C
_021F2FFA:
mov r2, #0
ldrsh r3, [r4, r2]
ldr r0, [r4, #0xc]
cmp r3, #0
ble _021F3024
_021F3004:
ldr r1, [r0, #0xc]
cmp r1, #0
bne _021F301C
add r5, #0xf0
ldr r1, [r5]
str r1, [r0, #0xc]
ldr r1, [sp]
str r1, [r0, #8]
str r6, [r0, #4]
str r7, [r0]
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
_021F301C:
add r2, r2, #1
add r0, #0x10
cmp r2, r3
blt _021F3004
_021F3024:
bl ErrorHandling
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
_021F302C:
add r0, r5, #0
add r1, r7, #0
mov r2, #0
bl MOD05_021F2DB0
add r2, r0, #0
ldr r3, [sp]
add r0, r5, #0
add r1, r6, #0
bl MOD05_021F317C
mov r0, #4
ldrsh r0, [r4, r0]
add r0, r0, #1
strh r0, [r4, #4]
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021F3050
MOD05_021F3050: ; 0x021F3050
push {r3, r4}
mov r2, #1
lsl r2, r2, #8
ldr r0, [r0, r2]
mov r3, #0
ldrsh r4, [r0, r3]
ldr r2, [r0, #0xc]
cmp r4, #0
ble _021F307E
_021F3062:
ldr r0, [r2, #4]
cmp r0, r1
bne _021F3076
ldr r0, [r2, #0xc]
cmp r0, #0
beq _021F3076
mov r0, #0
str r0, [r2, #0xc]
pop {r3, r4}
bx lr
_021F3076:
add r3, r3, #1
add r2, #0x10
cmp r3, r4
blt _021F3062
_021F307E:
pop {r3, r4}
bx lr
.balign 4, 0
thumb_func_start MOD05_021F3084
MOD05_021F3084: ; 0x021F3084
push {r3, r4}
mov r2, #1
lsl r2, r2, #8
ldr r0, [r0, r2]
mov r3, #0
ldrsh r4, [r0, r3]
ldr r2, [r0, #0xc]
cmp r4, #0
ble _021F30BC
_021F3096:
ldr r0, [r2, #4]
cmp r0, r1
bne _021F30B4
ldr r0, [r2, #0xc]
cmp r0, #0
beq _021F30B4
ldr r0, [r2, #8]
cmp r0, #0
bne _021F30AE
mov r0, #3
pop {r3, r4}
bx lr
_021F30AE:
mov r0, #4
pop {r3, r4}
bx lr
_021F30B4:
add r3, r3, #1
add r2, #0x10
cmp r3, r4
blt _021F3096
_021F30BC:
mov r0, #0
pop {r3, r4}
bx lr
.balign 4, 0
thumb_func_start MOD05_021F30C4
MOD05_021F30C4: ; 0x021F30C4
push {r3, r4, r5, r6, r7, lr}
str r1, [sp]
mov r1, #1
ldr r0, [sp]
lsl r1, r1, #8
ldr r4, [r0, r1]
add r0, #0xe0
ldr r0, [r0]
mov r6, #0
ldr r5, [r4, #0xc]
bl FUN_0201F2C0
cmp r0, #1
beq _021F3178
add r7, r4, #4
b _021F310E
_021F30E4:
ldr r0, [r5, #0xc]
cmp r0, #0
beq _021F310A
ldr r0, [sp]
ldr r1, [r5]
mov r2, #0
bl MOD05_021F2DB0
add r2, r0, #0
ldr r0, [sp]
ldr r1, [r5, #4]
ldr r3, [r5, #8]
bl MOD05_021F317C
mov r0, #0
str r0, [r5, #0xc]
ldrsh r0, [r7, r0]
add r0, r0, #1
strh r0, [r7]
_021F310A:
add r5, #0x10
add r6, r6, #1
_021F310E:
mov r0, #4
ldrsh r1, [r4, r0]
mov r0, #2
ldrsh r0, [r4, r0]
cmp r1, r0
bge _021F3122
mov r0, #0
ldrsh r0, [r4, r0]
cmp r6, r0
blt _021F30E4
_021F3122:
mov r6, #0
ldrsh r0, [r4, r6]
ldr r7, [r4, #0xc]
sub r1, r0, #1
cmp r1, #0
ble _021F3174
add r5, r7, #0
_021F3130:
ldr r1, [r5, #0xc]
cmp r1, #0
bne _021F3166
add r2, r6, #1
cmp r2, r0
bge _021F3166
lsl r1, r2, #4
add r3, r7, r1
_021F3140:
ldr r1, [r3, #0xc]
cmp r1, #0
beq _021F315E
lsl r0, r2, #4
add r3, r7, r0
mov ip, r3
add r2, r5, #0
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
mov r1, #0
mov r0, ip
str r1, [r0, #0xc]
b _021F3166
_021F315E:
add r2, r2, #1
add r3, #0x10
cmp r2, r0
blt _021F3140
_021F3166:
mov r0, #0
ldrsh r0, [r4, r0]
add r6, r6, #1
add r5, #0x10
sub r1, r0, #1
cmp r6, r1
blt _021F3130
_021F3174:
mov r0, #0
strh r0, [r4, #4]
_021F3178:
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021F317C
MOD05_021F317C: ; 0x021F317C
push {r3, r4, r5, r6, lr}
sub sp, #4
add r5, r0, #0
mov r0, #4
str r0, [sp]
add r0, r5, #0
add r0, #0xf0
add r4, r1, #0
add r6, r3, #0
add r1, r2, #0
ldr r0, [r0]
add r2, r4, #0
mov r3, #1
bl FUN_02020F54
cmp r0, #0
bne _021F31A2
bl ErrorHandling
_021F31A2:
add r0, r5, #0
add r1, r4, #0
bl MOD05_021F31C8
cmp r6, #0
bne _021F31BA
add r0, r5, #0
add r1, r4, #0
bl MOD05_021F28A0
add sp, #4
pop {r3, r4, r5, r6, pc}
_021F31BA:
add r0, r5, #0
add r1, r4, #0
bl MOD05_021F2914
add sp, #4
pop {r3, r4, r5, r6, pc}
.balign 4, 0
thumb_func_start MOD05_021F31C8
MOD05_021F31C8: ; 0x021F31C8
push {r4, r5, r6, lr}
mov r3, #1
lsl r3, r3, #8
ldr r3, [r0, r3]
mov r5, #1
ldr r4, [r3, #0x10]
mov r2, #0
strh r5, [r3, #6]
ldrsh r6, [r3, r2]
cmp r6, #0
ble _021F31FC
_021F31DE:
ldr r5, [r4, #8]
cmp r5, #0
bne _021F31F4
add r0, #0xf0
ldr r0, [r0]
str r0, [r4, #8]
str r1, [r4, #4]
mov r0, #0
str r0, [r4]
strh r0, [r3, #6]
pop {r4, r5, r6, pc}
_021F31F4:
add r2, r2, #1
add r4, #0xc
cmp r2, r6
blt _021F31DE
_021F31FC:
bl ErrorHandling
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_start MOD05_021F3204
MOD05_021F3204: ; 0x021F3204
push {r4, r5}
mov r2, #1
lsl r2, r2, #8
ldr r2, [r0, r2]
mov r0, #1
ldr r4, [r2, #0x10]
mov r3, #0
strh r0, [r2, #6]
ldrsh r5, [r2, r3]
cmp r5, #0
ble _021F3236
_021F321A:
ldr r0, [r4, #8]
cmp r0, #0
beq _021F322E
ldr r0, [r4, #4]
cmp r0, r1
bne _021F322E
mov r0, #0
str r0, [r4, #8]
str r0, [r4]
b _021F3236
_021F322E:
add r3, r3, #1
add r4, #0xc
cmp r3, r5
blt _021F321A
_021F3236:
mov r0, #0
strh r0, [r2, #6]
pop {r4, r5}
bx lr
.balign 4, 0
thumb_func_start MOD05_021F3240
MOD05_021F3240: ; 0x021F3240
push {r3, r4, r5, r6, r7, lr}
mov r0, #1
lsl r0, r0, #8
ldr r6, [r1, r0]
ldrh r0, [r6, #6]
cmp r0, #1
beq _021F327A
mov r4, #0
ldrsh r0, [r6, r4]
ldr r5, [r6, #0x10]
cmp r0, #0
ble _021F327A
mov r7, #1
_021F325A:
ldr r0, [r5]
cmp r0, #0
bne _021F326E
ldr r0, [r5, #8]
cmp r0, #0
beq _021F326E
ldr r1, [r5, #4]
bl FUN_020210F0
str r7, [r5]
_021F326E:
mov r0, #0
ldrsh r0, [r6, r0]
add r4, r4, #1
add r5, #0xc
cmp r4, r0
blt _021F325A
_021F327A:
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD05_021F327C
MOD05_021F327C: ; 0x021F327C
push {r3, r4, r5, r6, r7, lr}
mov r0, #1
lsl r0, r0, #8
ldr r6, [r1, r0]
mov r4, #0
ldr r5, [r6, #0x10]
mov r0, #1
strh r0, [r6, #6]
ldrsh r0, [r6, r4]
cmp r0, #0
ble _021F32B6
add r7, r4, #0
_021F3294:
ldr r0, [r5]
cmp r0, #1
bne _021F32AA
ldr r0, [r5, #8]
cmp r0, #0
beq _021F32AA
ldr r1, [r5, #4]
bl FUN_02021158
str r7, [r5]
str r7, [r5, #8]
_021F32AA:
mov r0, #0
ldrsh r0, [r6, r0]
add r4, r4, #1
add r5, #0xc
cmp r4, r0
blt _021F3294
_021F32B6:
mov r0, #0
strh r0, [r6, #6]
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD05_021F32BC
MOD05_021F32BC: ; 0x021F32BC
push {r4, r5, r6, lr}
mov r5, #1
lsl r5, r5, #8
ldr r5, [r0, r5]
mov r4, #0
ldrsh r6, [r5, r4]
ldr r0, [r5, #8]
cmp r6, #0
ble _021F32F2
_021F32CE:
ldr r5, [r0, #4]
cmp r5, #0
bne _021F32EA
str r1, [r0, #4]
str r2, [r0, #8]
str r3, [r0]
ldr r0, [r0, #8]
mov r2, #0
str r2, [r0]
add r0, r1, #0
mov r1, #1
bl MOD05_021F2E0C
pop {r4, r5, r6, pc}
_021F32EA:
add r4, r4, #1
add r0, #0xc
cmp r4, r6
blt _021F32CE
_021F32F2:
bl ErrorHandling
pop {r4, r5, r6, pc}
thumb_func_start MOD05_021F32F8
MOD05_021F32F8: ; 0x021F32F8
push {r3, r4}
mov r2, #1
lsl r2, r2, #8
ldr r0, [r0, r2]
mov r3, #0
ldrsh r4, [r0, r3]
ldr r2, [r0, #8]
cmp r4, #0
ble _021F3322
_021F330A:
ldr r0, [r2, #4]
cmp r0, r1
bne _021F331A
mov r0, #0
str r0, [r2, #4]
str r0, [r2, #8]
pop {r3, r4}
bx lr
_021F331A:
add r3, r3, #1
add r2, #0xc
cmp r3, r4
blt _021F330A
_021F3322:
pop {r3, r4}
bx lr
.balign 4, 0
thumb_func_start MOD05_021F3328
MOD05_021F3328: ; 0x021F3328
push {r3, r4, r5, r6, r7, lr}
add r7, r0, #0
mov r0, #1
lsl r0, r0, #8
ldr r6, [r7, r0]
mov r4, #0
ldrsh r0, [r6, r4]
ldr r5, [r6, #8]
cmp r0, #0
ble _021F3356
_021F333C:
ldr r0, [r5, #4]
cmp r0, #0
beq _021F334A
add r0, r7, #0
add r1, r5, #0
bl MOD05_021F3364
_021F334A:
mov r0, #0
ldrsh r0, [r6, r0]
add r4, r4, #1
add r5, #0xc
cmp r4, r0
blt _021F333C
_021F3356:
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD05_021F3358
MOD05_021F3358: ; 0x021F3358
ldr r3, _021F3360 ; =MOD05_021F3328
add r0, r1, #0
bx r3
nop
_021F3360: .word MOD05_021F3328
thumb_func_start MOD05_021F3364
MOD05_021F3364: ; 0x021F3364
push {r4, lr}
add r4, r1, #0
ldr r1, [r4]
bl MOD05_021F2A08
cmp r0, #2
beq _021F33B2
ldr r0, [r4, #4]
ldr r1, [r4]
bl MOD05_021F1FE0
ldr r1, [r4, #8]
str r0, [r1]
ldr r0, [r4, #8]
ldr r0, [r0]
cmp r0, #0
bne _021F338A
bl ErrorHandling
_021F338A:
ldr r0, [r4, #4]
mov r1, #0
bl MOD05_021F2E0C
mov r1, #2
ldr r0, [r4, #4]
lsl r1, r1, #0x14
bl FUN_0205842C
cmp r0, #1
ldr r0, [r4, #4]
bne _021F33A8
bl FUN_020586DC
b _021F33AC
_021F33A8:
bl FUN_020586A0
_021F33AC:
mov r0, #0
str r0, [r4, #4]
str r0, [r4, #8]
_021F33B2:
pop {r4, pc}
thumb_func_start MOD05_021F33B4
MOD05_021F33B4: ; 0x021F33B4
push {r4, r5, r6, r7, lr}
sub sp, #0xc
add r6, r1, #0
add r5, r0, #0
mov r0, #0xc
add r7, r6, #0
mul r7, r0
lsl r0, r6, #4
lsl r1, r7, #1
str r0, [sp, #4]
add r0, r1, r0
str r0, [sp, #8]
add r0, #0x28
str r0, [sp, #8]
ldr r1, [sp, #8]
mov r0, #4
str r2, [sp]
bl AllocFromHeap
add r4, r0, #0
bne _021F33E2
bl ErrorHandling
_021F33E2:
ldr r2, [sp, #8]
add r0, r4, #0
mov r1, #0
bl memset
ldr r0, [sp]
strh r6, [r4]
strh r0, [r4, #2]
add r0, r4, #0
add r0, #0x28
str r0, [r4, #8]
add r1, r0, r7
ldr r0, [sp, #4]
str r1, [r4, #0xc]
add r0, r1, r0
str r0, [r4, #0x10]
mov r0, #1
lsl r0, r0, #8
str r4, [r5, r0]
add r0, r0, #4
ldr r0, [r5, r0]
bl FUN_0205839C
add r6, r0, #0
ldr r0, _021F3448 ; =MOD05_021F30C4
add r1, r5, #0
add r2, r6, #1
bl FUN_0200CA44
str r0, [r4, #0x18]
ldr r0, _021F344C ; =MOD05_021F3358
add r1, r5, #0
add r2, r6, #2
bl FUN_0200CA44
str r0, [r4, #0x1c]
ldr r0, _021F3450 ; =MOD05_021F3240
add r1, r5, #0
mov r2, #0xff
bl FUN_0200CA60
str r0, [r4, #0x20]
ldr r0, _021F3454 ; =MOD05_021F327C
add r1, r5, #0
mov r2, #0xff
bl FUN_0200CA98
str r0, [r4, #0x24]
add sp, #0xc
pop {r4, r5, r6, r7, pc}
nop
_021F3448: .word MOD05_021F30C4
_021F344C: .word MOD05_021F3358
_021F3450: .word MOD05_021F3240
_021F3454: .word MOD05_021F327C
thumb_func_start MOD05_021F3458
MOD05_021F3458: ; 0x021F3458
push {r3, r4, r5, lr}
add r5, r0, #0
mov r0, #1
lsl r0, r0, #8
ldr r4, [r5, r0]
mov r0, #1
strh r0, [r4, #6]
ldr r0, [r4, #0x18]
bl FUN_0200CAB4
ldr r0, [r4, #0x1c]
bl FUN_0200CAB4
ldr r0, [r4, #0x20]
bl FUN_0200CAB4
ldr r0, [r4, #0x24]
bl FUN_0200CAB4
add r0, r4, #0
bl FreeToHeap
mov r0, #1
mov r1, #0
lsl r0, r0, #8
str r1, [r5, r0]
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021F3490
MOD05_021F3490: ; 0x021F3490
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r4, r1, #0
bl MOD05_021F2E28
cmp r0, #1
beq _021F34A8
add r0, r5, #0
bl MOD05_021F0514
cmp r0, #0
bne _021F34D2
_021F34A8:
add r0, r5, #0
bl FUN_02058458
add r6, r0, #0
add r0, r5, #0
bl FUN_02058578
add r7, r0, #0
add r0, r5, #0
bl FUN_020576A8
add r0, r7, #0
add r1, r6, #0
add r2, r5, #0
bl MOD05_021F2C80
add r0, r5, #0
add r1, r4, #0
bl FUN_02057614
pop {r3, r4, r5, r6, r7, pc}
_021F34D2:
add r0, r5, #0
add r1, r4, #0
bl MOD05_021F34DC
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD05_021F34DC
MOD05_021F34DC: ; 0x021F34DC
push {r4, r5, r6, r7, lr}
sub sp, #0x34
add r7, r0, #0
str r1, [sp, #8]
bl MOD05_021F2F3C
str r0, [sp, #0x18]
bl MOD05_021F2D48
str r0, [sp, #0x14]
add r0, r7, #0
bl MOD05_021F0514
str r0, [sp, #0x10]
mov r0, #4
mov r1, #0x58
bl AllocFromHeapAtEnd
mov r1, #0
mov r2, #0x58
add r5, r0, #0
bl memset
ldr r0, [sp, #8]
str r0, [r5]
add r0, r7, #0
str r7, [r5, #0x50]
bl FUN_02058458
add r6, r0, #0
bl MOD05_021F2DE8
ldr r4, _021F36C4 ; =0x021F9094
ldr r2, _021F36C8 ; =0x0000FFFF
_021F3520:
ldr r1, [r4]
cmp r1, r0
beq _021F352E
add r4, #8
ldr r1, [r4]
cmp r1, r2
bne _021F3520
_021F352E:
ldr r0, _021F36C8 ; =0x0000FFFF
cmp r1, r0
bne _021F3538
bl ErrorHandling
_021F3538:
ldr r0, [sp, #0x18]
ldr r1, [r4, #4]
mov r2, #0
bl MOD05_021F2DB0
str r0, [r5, #8]
add r0, r6, #0
bl MOD05_021F2DF4
ldr r4, _021F36CC ; =0x021F90E4
ldr r2, _021F36C8 ; =0x0000FFFF
_021F354E:
ldr r1, [r4]
cmp r1, r0
beq _021F355C
add r4, #8
ldr r1, [r4]
cmp r1, r2
bne _021F354E
_021F355C:
ldr r0, _021F36C8 ; =0x0000FFFF
cmp r1, r0
bne _021F3566
bl ErrorHandling
_021F3566:
ldr r0, [sp, #0x18]
ldr r1, [r4, #4]
mov r2, #0
bl MOD05_021F2DB0
add r1, r5, #0
add r1, #0x14
str r0, [r5, #0xc]
bl FUN_0202227C
ldr r4, _021F36D0 ; =0x021FA0AC
ldr r0, _021F36C8 ; =0x0000FFFF
_021F357E:
ldr r1, [r4]
cmp r1, r6
beq _021F358C
add r4, #8
ldr r1, [r4]
cmp r1, r0
bne _021F357E
_021F358C:
ldr r0, _021F36C8 ; =0x0000FFFF
cmp r1, r0
bne _021F3596
bl ErrorHandling
_021F3596:
ldr r0, [sp, #0x18]
ldr r1, [r4, #4]
mov r2, #0
bl MOD05_021F2DB0
str r0, [r5, #0x10]
bl FUN_020BC0FC
add r4, r0, #0
add r0, r6, #0
bl MOD05_021F2E00
add r3, r0, #0
add r0, r5, #0
add r0, #0x14
str r0, [sp]
add r0, r5, #0
ldr r1, [r5, #8]
add r0, #0x28
add r2, r4, #0
bl FUN_0201F7A4
ldr r0, [sp, #0x10]
bl FUN_0201F7E0
add r3, r0, #0
add r2, sp, #0x28
ldmia r3!, {r0, r1}
add r4, r2, #0
stmia r2!, {r0, r1}
ldr r0, [r3]
add r1, r5, #0
str r0, [r2]
ldr r0, [sp, #0x14]
add r1, #0x28
add r2, r4, #0
bl MOD05_021F2E70
str r0, [r5, #0x24]
cmp r0, #0
bne _021F35EC
bl ErrorHandling
_021F35EC:
ldr r0, [sp, #0x10]
bl FUN_0201F844
add r1, r0, #0
ldr r0, [r5, #0x24]
bl FUN_0201F830
ldr r0, [sp, #0x10]
bl FUN_0201F8C0
add r1, r0, #0
ldr r0, [r5, #0x24]
bl FUN_0201F890
ldr r0, [sp, #0x10]
bl FUN_0201F880
add r1, r0, #0
ldr r0, [r5, #0x24]
bl FUN_0201F86C
ldr r0, [r5, #0x24]
mov r1, #0
bl FUN_0201F854
ldr r0, [r5, #0x24]
mov r1, #1
bl FUN_0201F80C
ldr r0, [r5, #0x24]
bl FUN_0201F8F0
add r0, r7, #0
bl FUN_02058A9C
cmp r0, #1
bne _021F367A
add r0, r7, #0
mov r1, #2
bl FUN_0205829C
str r0, [sp, #0xc]
add r0, r7, #0
mov r1, #1
bl FUN_02059C90
lsl r0, r0, #0x18
lsr r0, r0, #0x18
mov r4, #0
bl FUN_02054AF0
cmp r0, #0
bne _021F3658
mov r4, #1
_021F3658:
add r0, r7, #0
add r1, sp, #0x1c
bl FUN_02058B5C
add r0, r7, #0
bl MOD05_021E4C24
ldr r1, [sp, #0xc]
str r4, [sp]
str r1, [sp, #4]
add r1, r5, #0
ldr r2, [r5, #0x24]
add r1, #0x28
add r3, sp, #0x1c
bl MOD06_02249B7C
str r0, [r5, #0x54]
_021F367A:
add r0, r7, #0
bl FUN_020576A8
mov r1, #0x41
ldr r0, [sp, #0x18]
lsl r1, r1, #2
ldr r0, [r0, r1]
add r1, r6, #0
add r2, r7, #0
bl MOD05_021F2C80
ldr r1, [sp, #8]
add r0, r7, #0
bl FUN_02057614
mov r1, #0x41
ldr r0, [sp, #0x18]
lsl r1, r1, #2
ldr r0, [r0, r1]
bl FUN_0205839C
ldr r0, _021F36D4 ; =MOD05_021F36D8
add r1, r5, #0
mov r2, #0xff
bl FUN_0200CA98
add r4, r0, #0
bne _021F36B6
bl ErrorHandling
_021F36B6:
add r0, r4, #0
add r1, r5, #0
bl MOD05_021F36D8
add sp, #0x34
pop {r4, r5, r6, r7, pc}
nop
_021F36C4: .word 0x021F9094
_021F36C8: .word 0x0000FFFF
_021F36CC: .word 0x021F90E4
_021F36D0: .word 0x021FA0AC
_021F36D4: .word MOD05_021F36D8
thumb_func_start MOD05_021F36D8
MOD05_021F36D8: ; 0x021F36D8
push {r4, r5, r6, lr}
add r5, r1, #0
add r6, r0, #0
ldr r0, [r5, #4]
ldr r4, [r5, #0x50]
cmp r0, #0
beq _021F36EC
cmp r0, #1
beq _021F3744
pop {r4, r5, r6, pc}
_021F36EC:
add r0, r4, #0
bl FUN_02058830
cmp r0, #0
beq _021F3700
add r0, r4, #0
bl MOD05_021F2E28
cmp r0, #0
bne _021F3730
_021F3700:
ldr r0, [r5, #0x54]
cmp r0, #0
beq _021F370A
bl FUN_02064520
_021F370A:
ldr r0, [r5, #0x24]
bl FUN_0201F744
ldr r0, [r5, #8]
bl FreeToHeap
ldr r0, [r5, #0xc]
bl FreeToHeap
ldr r0, [r5, #0x10]
bl FreeToHeap
add r0, r5, #0
bl FreeToHeap
add r0, r6, #0
bl FUN_0200CAB4
pop {r4, r5, r6, pc}
_021F3730:
add r0, r4, #0
bl FUN_02058458
ldr r1, [r5]
cmp r1, r0
beq _021F377C
ldr r0, [r5, #4]
add r0, r0, #1
str r0, [r5, #4]
pop {r4, r5, r6, pc}
_021F3744:
add r0, r4, #0
bl MOD05_021F2E28
cmp r0, #0
bne _021F377C
ldr r0, [r5, #0x54]
cmp r0, #0
beq _021F3758
bl FUN_02064520
_021F3758:
ldr r0, [r5, #0x24]
bl FUN_0201F744
ldr r0, [r5, #8]
bl FreeToHeap
ldr r0, [r5, #0xc]
bl FreeToHeap
ldr r0, [r5, #0x10]
bl FreeToHeap
add r0, r5, #0
bl FreeToHeap
add r0, r6, #0
bl FUN_0200CAB4
_021F377C:
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_start MOD05_021F3780
MOD05_021F3780: ; 0x021F3780
push {r4, r5, r6, lr}
add r6, r1, #0
add r5, r0, #0
add r0, r6, #0
bl MOD05_021F37AC
add r4, r0, #0
str r6, [r4]
str r5, [r4, #8]
bl MOD05_021F37DC
add r0, r4, #0
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_start MOD05_021F379C
MOD05_021F379C: ; 0x021F379C
push {r4, lr}
add r4, r0, #0
bl MOD05_021F37E0
add r0, r4, #0
bl MOD05_021F37D0
pop {r4, pc}
thumb_func_start MOD05_021F37AC
MOD05_021F37AC: ; 0x021F37AC
push {r4, lr}
mov r1, #0x10
bl AllocFromHeap
add r4, r0, #0
bne _021F37BC
bl ErrorHandling
_021F37BC:
add r2, r4, #0
mov r1, #0x10
mov r0, #0
_021F37C2:
strb r0, [r2]
add r2, r2, #1
sub r1, r1, #1
bne _021F37C2
add r0, r4, #0
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021F37D0
MOD05_021F37D0: ; 0x021F37D0
ldr r3, _021F37D8 ; =FUN_02016A8C
add r1, r0, #0
ldr r0, [r1]
bx r3
.balign 4, 0
_021F37D8: .word FUN_02016A8C
thumb_func_start MOD05_021F37DC
MOD05_021F37DC: ; 0x021F37DC
bx lr
.balign 4, 0
thumb_func_start MOD05_021F37E0
MOD05_021F37E0: ; 0x021F37E0
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r0, [r5, #4]
cmp r0, #0
beq _021F380E
ldr r4, [r5, #0xc]
cmp r4, #0
beq _021F380E
_021F37F0:
ldr r0, [r4, #0x5c]
cmp r0, #0
beq _021F37FC
add r0, r4, #0
bl MOD05_021F383C
_021F37FC:
ldr r0, [r5, #4]
add r4, #0x60
sub r0, r0, #1
str r0, [r5, #4]
bne _021F37F0
ldr r0, [r5]
ldr r1, [r5, #0xc]
bl FUN_02016A8C
_021F380E:
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021F3810
MOD05_021F3810: ; 0x021F3810
push {r3, r4, r5, lr}
add r4, r0, #0
str r1, [r4, #4]
mov r0, #0x60
add r5, r1, #0
mul r5, r0
ldr r0, [r4]
add r1, r5, #0
bl AllocFromHeap
str r0, [r4, #0xc]
cmp r0, #0
bne _021F382E
bl ErrorHandling
_021F382E:
ldr r0, [r4, #0xc]
mov r1, #0
add r2, r5, #0
bl memset
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021F383C
MOD05_021F383C: ; 0x021F383C
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0x5c]
bl FreeToHeap
add r0, r4, #0
mov r1, #0
mov r2, #0x60
bl memset
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021F3854
MOD05_021F3854: ; 0x021F3854
mov r0, #0
str r0, [r2]
str r0, [r2, #4]
bx lr
thumb_func_start MOD05_021F385C
MOD05_021F385C: ; 0x021F385C
bx lr
.balign 4, 0
thumb_func_start MOD05_021F3860
MOD05_021F3860: ; 0x021F3860
push {r3, r4, r5, r6, r7, lr}
add r5, r1, #0
ldr r0, [r5, #0x38]
add r4, r2, #0
bl FUN_02055320
add r6, r0, #0
ldr r0, [r5, #0x38]
bl FUN_0205532C
add r7, r0, #0
ldr r0, [r4]
cmp r0, r6
bne _021F3882
ldr r0, [r4, #4]
cmp r0, r7
beq _021F38B4
_021F3882:
str r6, [r4]
add r0, r5, #0
add r1, r6, #0
add r2, r7, #0
str r7, [r4, #4]
bl FUN_0204A6E0
add r4, r0, #0
bl FUN_02054A18
cmp r0, #0
beq _021F389E
mov r2, #0
b _021F38AA
_021F389E:
add r0, r4, #0
bl FUN_02054A0C
cmp r0, #0
beq _021F38B4
mov r2, #1
_021F38AA:
add r0, r6, #0
add r1, r7, #0
add r3, r5, #0
bl MOD05_021DAFA8
_021F38B4:
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021F38B8
MOD05_021F38B8: ; 0x021F38B8
ldr r0, [r0, #4]
ldr r3, _021F38C4 ; =MOD05_021D8024
ldr r0, [r0, #4]
ldr r1, _021F38C8 ; =0x021FC58C
bx r3
nop
_021F38C4: .word MOD05_021D8024
_021F38C8: .word 0x021FC58C
thumb_func_start MOD05_021F38CC
MOD05_021F38CC: ; 0x021F38CC
push {r4, r5, r6, r7, lr}
sub sp, #0xc
mov r1, #0
add r2, r1, #0
add r5, r0, #0
bl FUN_020671BC
lsl r0, r0, #0x10
lsr r4, r0, #0x10
add r0, r5, #0
mov r1, #0x46
mov r2, #0
bl FUN_020671BC
mov r1, #0xf
and r0, r1
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp, #8]
add r0, r5, #0
mov r1, #0x47
mov r2, #0
bl FUN_020671BC
mov r1, #0xf
and r0, r1
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp, #4]
add r0, r5, #0
mov r1, #0x48
mov r2, #0
bl FUN_020671BC
mov r1, #0xf
and r0, r1
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp]
add r0, r5, #0
mov r1, #0x49
mov r2, #0
bl FUN_020671BC
mov r1, #0xf
and r0, r1
lsl r0, r0, #0x10
lsr r7, r0, #0x10
add r0, r5, #0
mov r1, #0x4a
mov r2, #0
bl FUN_020671BC
mov r1, #0xf
and r0, r1
lsl r0, r0, #0x10
lsr r6, r0, #0x10
add r0, r5, #0
mov r1, #0x4b
mov r2, #0
bl FUN_020671BC
mov r1, #0xf
and r0, r1
lsl r0, r0, #0x10
lsr r0, r0, #0x10
eor r0, r6
asr r1, r4, #8
mul r0, r7
eor r0, r1
lsl r1, r4, #0x18
lsr r3, r1, #0x18
lsl r0, r0, #0x10
ldr r2, [sp, #4]
ldr r1, [sp]
lsr r0, r0, #0x10
eor r2, r1
ldr r1, [sp, #8]
mul r2, r1
add r1, r3, #0
eor r1, r2
lsl r1, r1, #0x10
lsr r1, r1, #8
add r0, r0, r1
add sp, #0xc
pop {r4, r5, r6, r7, pc}
thumb_func_start MOD05_021F3978
MOD05_021F3978: ; 0x021F3978
ldr r2, _021F399C ; =0x021FC5A4
mov r3, #1
_021F397C:
lsl r1, r3, #3
add r1, r2, r1
ldrh r1, [r1, #4]
cmp r0, r1
bhs _021F398E
sub r0, r3, #1
lsl r0, r0, #0x18
lsr r0, r0, #0x18
bx lr
_021F398E:
add r1, r3, #1
lsl r1, r1, #0x18
lsr r3, r1, #0x18
cmp r3, #0xf
blo _021F397C
add r0, r3, #0
bx lr
.balign 4, 0
_021F399C: .word 0x021FC5A4
thumb_func_start MOD05_021F39A0
MOD05_021F39A0: ; 0x021F39A0
push {r4, r5, r6, lr}
add r6, r0, #0
mov r0, #4
add r5, r1, #0
bl FUN_02087A6C
add r4, r0, #0
bl FUN_02087A84
add r0, r4, #0
mov r1, #0
mov r2, #4
bl FUN_02087A98
add r0, r4, #0
add r1, r6, #0
bl FUN_02087B58
add r6, r0, #0
add r0, r4, #0
bl FUN_02087B0C
add r0, r5, #0
bl MOD05_021F3978
lsl r4, r0, #3
ldr r0, _021F3A0C ; =0x021FC5A8
ldr r2, _021F3A10 ; =0x021FC5A6
ldrh r0, [r0, r4]
ldrh r2, [r2, r4]
asr r1, r5, #0x1f
mov r3, #0
sub r0, r5, r0
sbc r1, r3
bl _ll_udiv
add r2, r0, #0
add r0, r6, #0
ldr r6, _021F3A14 ; =0x021FC5A4
add r3, r1, #0
mov r5, #0
ldrh r4, [r6, r4]
add r1, r5, #0
add r2, r4, r2
adc r5, r3
add r3, r5, #0
bl _ll_mul
mov r2, #0xa
mov r3, #0
bl _ll_udiv
pop {r4, r5, r6, pc}
nop
_021F3A0C: .word 0x021FC5A8
_021F3A10: .word 0x021FC5A6
_021F3A14: .word 0x021FC5A4
thumb_func_start MOD05_021F3A18
MOD05_021F3A18: ; 0x021F3A18
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
add r4, r0, #0
ldr r0, [r4, #0xc]
add r5, r1, #0
bl FUN_0206BB1C
add r1, r5, #0
bl FUN_0206B9B0
mov r1, #5
mov r2, #0
str r0, [sp]
bl FUN_020671BC
lsl r0, r0, #0x10
lsr r5, r0, #0x10
ldr r0, [sp]
bl MOD05_021F38CC
add r1, sp, #4
strh r0, [r1, #2]
ldrh r1, [r1, #2]
add r0, r5, #0
bl MOD05_021F39A0
add r6, r0, #0
ldr r0, [r4, #0xc]
bl FUN_020462AC
bl FUN_0205F3E8
add r1, sp, #4
strh r0, [r1]
ldrh r1, [r1]
add r0, r5, #0
bl MOD05_021F39A0
add r7, r0, #0
mov r0, #0xfa
lsl r0, r0, #2
mul r0, r6
mov r1, #0xfe
bl _u32_div_f
add r0, r0, #5
mov r1, #0xa
bl _u32_div_f
add r5, r0, #0
mov r0, #0xfa
lsl r0, r0, #2
mul r0, r7
mov r1, #0xfe
bl _u32_div_f
add r0, r0, #5
mov r1, #0xa
bl _u32_div_f
cmp r5, r0
bne _021F3A9A
add sp, #8
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021F3A9A:
cmp r5, r0
bls _021F3AAE
ldr r2, [sp]
add r0, r4, #0
add r1, r6, #0
bl FUN_020619C0
add sp, #8
mov r0, #2
pop {r3, r4, r5, r6, r7, pc}
_021F3AAE:
mov r0, #0
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD05_021F3AB4
MOD05_021F3AB4: ; 0x021F3AB4
push {r3, r4, r5, lr}
add r4, r0, #0
ldr r0, [r4, #0xc]
add r5, r1, #0
bl FUN_0206BB1C
add r1, r5, #0
bl FUN_0206B9B0
bl MOD05_021F38CC
add r1, sp, #0
strh r0, [r1]
ldr r0, [r4, #0xc]
bl FUN_020462AC
add r1, sp, #0
ldrh r1, [r1]
bl FUN_0205F3F8
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021F3AE0
MOD05_021F3AE0: ; 0x021F3AE0
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
add r6, r1, #0
mov r1, #0xf
add r7, r2, #0
add r4, r3, #0
bl FUN_02039438
add r1, sp, #0x10
add r5, r0, #0
ldrh r1, [r1, #0x10]
add r0, r4, #0
bl MOD05_021F39A0
mov r1, #0xfa
lsl r1, r1, #2
mul r1, r0
add r0, r1, #0
mov r1, #0xfe
bl _u32_div_f
add r0, r0, #5
mov r1, #0xa
bl _u32_div_f
mov r1, #0xa
add r4, r0, #0
bl _u32_div_f
add r2, r0, #0
mov r0, #0
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
ldr r0, [r5]
add r1, r6, #0
mov r3, #3
bl FUN_0200AD38
add r0, r4, #0
mov r1, #0xa
bl _u32_div_f
mov r0, #0
add r2, r1, #0
str r0, [sp]
mov r3, #1
str r3, [sp, #4]
ldr r0, [r5]
add r1, r7, #0
bl FUN_0200AD38
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD05_021F3B4C
MOD05_021F3B4C: ; 0x021F3B4C
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
add r5, r0, #0
ldr r0, [r5, #0xc]
add r4, r1, #0
add r6, r2, #0
add r7, r3, #0
bl FUN_020462AC
bl FUN_0205F3E8
add r1, sp, #4
strh r0, [r1]
ldrh r0, [r1]
add r1, r4, #0
add r2, r6, #0
str r0, [sp]
add r0, r5, #0
add r3, r7, #0
bl MOD05_021F3AE0
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021F3B7C
MOD05_021F3B7C: ; 0x021F3B7C
push {r4, r5, r6, r7, lr}
sub sp, #0xc
add r5, r0, #0
str r2, [sp, #4]
ldr r0, [r5, #0xc]
add r4, r3, #0
add r7, r1, #0
bl FUN_0206BB1C
add r1, r4, #0
bl FUN_0206B9B0
mov r1, #5
mov r2, #0
add r6, r0, #0
bl FUN_020671BC
lsl r0, r0, #0x10
lsr r4, r0, #0x10
add r0, r6, #0
bl MOD05_021F38CC
add r1, sp, #8
strh r0, [r1]
ldrh r0, [r1]
add r1, r7, #0
add r3, r4, #0
str r0, [sp]
ldr r2, [sp, #4]
add r0, r5, #0
bl MOD05_021F3AE0
add sp, #0xc
pop {r4, r5, r6, r7, pc}
thumb_func_start MOD05_021F3BC0
MOD05_021F3BC0: ; 0x021F3BC0
push {r3, r4, r5, r6, r7, lr}
add r7, r0, #0
mov r0, #4
mov r1, #0x20
bl AllocFromHeap
add r5, r0, #0
mov r4, #0
_021F3BD0:
mov r1, #0xf
lsl r1, r1, #0xc
add r2, r4, #0
mul r2, r1
ldr r1, _021F3C2C ; =0x021FD684
lsl r0, r4, #2
add r1, r1, r2
add r6, r5, r0
str r1, [r5, r0]
ldr r0, [r5, r0]
cmp r0, #0
bne _021F3BEC
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
_021F3BEC:
cmp r7, #0
beq _021F3C0A
mov r1, #9
mov r0, #4
lsl r1, r1, #0xc
bl AllocFromHeap
str r0, [r6, #0x10]
cmp r0, #0
bne _021F3C04
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
_021F3C04:
mov r2, #9
lsl r2, r2, #0xc
b _021F3C10
_021F3C0A:
mov r0, #0
str r0, [r6, #0x10]
add r2, r0, #0
_021F3C10:
mov r1, #0xf
add r0, r4, #0
lsl r1, r1, #0xc
add r3, r5, #0
bl MOD05_021F3C74
add r0, r4, #1
lsl r0, r0, #0x18
lsr r4, r0, #0x18
cmp r4, #4
blo _021F3BD0
add r0, r5, #0
pop {r3, r4, r5, r6, r7, pc}
nop
_021F3C2C: .word 0x021FD684
thumb_func_start MOD05_021F3C30
MOD05_021F3C30: ; 0x021F3C30
push {r3, r4, r5, r6, r7, lr}
mov r4, #0
add r6, r0, #0
add r7, r4, #0
_021F3C38:
lsl r0, r4, #2
add r5, r6, r0
str r7, [r6, r0]
ldr r0, [r5, #0x10]
cmp r0, #0
beq _021F3C4C
bl FreeToHeap
mov r0, #0
str r0, [r5, #0x10]
_021F3C4C:
add r0, r4, #1
lsl r0, r0, #0x18
lsr r4, r0, #0x18
cmp r4, #4
blo _021F3C38
add r0, r6, #0
bl FreeToHeap
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021F3C60
MOD05_021F3C60: ; 0x021F3C60
lsl r0, r0, #2
ldr r0, [r1, r0]
str r0, [r2]
bx lr
thumb_func_start MOD05_021F3C68
MOD05_021F3C68: ; 0x021F3C68
lsl r0, r0, #2
add r0, r1, r0
ldr r0, [r0, #0x10]
str r0, [r2]
bx lr
.balign 4, 0
thumb_func_start MOD05_021F3C74
MOD05_021F3C74: ; 0x021F3C74
push {r3, r4, r5, r6, r7, lr}
add r5, r3, #0
lsl r4, r0, #2
add r6, r1, #0
add r7, r2, #0
ldr r0, [r5, r4]
mov r1, #0
add r2, r6, #0
bl MI_CpuFill8
add r0, r5, r4
ldr r0, [r0, #0x10]
mov r1, #0
add r2, r7, #0
bl MI_CpuFill8
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021F3C98
MOD05_021F3C98: ; 0x021F3C98
push {r4, r5, r6, r7}
add r4, r0, #0
add r3, r2, #0
mov r5, #0xc
add r2, r1, #0
ldr r0, [r4, #4]
mul r2, r5
ldrh r0, [r0, r2]
ldr r6, [r4, #0x10]
add r1, r0, #0
mul r1, r5
add r7, r6, r1
ldmia r7!, {r0, r1}
add r6, r3, #0
stmia r6!, {r0, r1}
ldr r0, [r7]
str r0, [r6]
ldr r1, [r4, #4]
ldr r0, [r4, #0x10]
add r1, r1, r2
ldrh r1, [r1, #2]
add r6, r1, #0
mul r6, r5
add r7, r0, r6
add r6, r3, #0
ldmia r7!, {r0, r1}
add r6, #0xc
stmia r6!, {r0, r1}
ldr r0, [r7]
add r3, #0x18
str r0, [r6]
ldr r1, [r4, #4]
ldr r0, [r4, #0x10]
add r1, r1, r2
ldrh r1, [r1, #4]
add r2, r1, #0
mul r2, r5
add r2, r0, r2
ldmia r2!, {r0, r1}
stmia r3!, {r0, r1}
ldr r0, [r2]
str r0, [r3]
pop {r4, r5, r6, r7}
bx lr
thumb_func_start MOD05_021F3CF0
MOD05_021F3CF0: ; 0x021F3CF0
push {r4, r5}
ldr r3, [r0, #0x14]
ldr r5, [r0, #4]
mov r0, #0xc
add r4, r1, #0
mul r4, r0
add r1, r5, r4
ldrh r1, [r1, #6]
mul r0, r1
add r3, r3, r0
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldr r0, [r3]
str r0, [r2]
pop {r4, r5}
bx lr
thumb_func_start MOD05_021F3D10
MOD05_021F3D10: ; 0x021F3D10
mov r3, #0
add r2, r3, #0
sub r1, r3, #1
_021F3D16:
str r2, [r0]
str r1, [r0, #4]
str r1, [r0, #8]
add r3, r3, #1
add r0, #0xc
cmp r3, #0xa
blt _021F3D16
bx lr
.balign 4, 0
thumb_func_start MOD05_021F3D28
MOD05_021F3D28: ; 0x021F3D28
push {r4, r5, r6, r7}
add r4, r0, #0
add r0, r2, #0
mov ip, r3
cmp r1, #0
bne _021F3D3A
mov r0, #0
pop {r4, r5, r6, r7}
bx lr
_021F3D3A:
cmp r1, #1
bne _021F3D4A
mov r1, #0
mov r0, ip
strh r1, [r0]
mov r0, #1
pop {r4, r5, r6, r7}
bx lr
_021F3D4A:
sub r5, r1, #1
lsr r1, r5, #0x1f
add r1, r5, r1
mov r3, #0
asr r6, r1, #1
mov r7, #0xa
_021F3D56:
add r1, r6, #0
mul r1, r7
add r2, r4, r1
ldrh r1, [r2, #4]
ldrh r2, [r2, #2]
lsl r1, r1, #0x10
orr r1, r2
cmp r1, r0
ble _021F3D84
sub r1, r5, #1
cmp r1, r3
ble _021F3D7A
add r2, r3, r6
lsr r1, r2, #0x1f
add r1, r2, r1
add r5, r6, #0
asr r6, r1, #1
b _021F3D56
_021F3D7A:
mov r0, ip
strh r6, [r0]
mov r0, #1
pop {r4, r5, r6, r7}
bx lr
_021F3D84:
add r1, r3, #1
cmp r1, r5
bge _021F3D96
add r2, r6, r5
lsr r1, r2, #0x1f
add r1, r2, r1
add r3, r6, #0
asr r6, r1, #1
b _021F3D56
_021F3D96:
add r1, r6, #1
mov r0, ip
strh r1, [r0]
mov r0, #1
pop {r4, r5, r6, r7}
bx lr
.balign 4, 0
thumb_func_start MOD05_021F3DA4
MOD05_021F3DA4: ; 0x021F3DA4
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x110
str r0, [sp, #0x20]
ldr r0, [sp, #0x128]
add r4, r3, #0
str r0, [sp, #0x128]
ldr r0, [r4, #0x1c]
add r6, r1, #0
add r7, r2, #0
cmp r0, #0
bne _021F3DC0
add sp, #0x110
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
_021F3DC0:
mov r5, #0
add r0, sp, #0x98
str r6, [sp, #0x68]
str r5, [sp, #0x6c]
str r7, [sp, #0x70]
bl MOD05_021F3D10
ldr r1, [r4]
ldr r0, [r1, #4]
sub r0, r6, r0
bpl _021F3DD8
add r0, r5, #0
_021F3DD8:
ldr r2, [r1, #8]
sub r7, r7, r2
bpl _021F3DE0
mov r7, #0
_021F3DE0:
ldr r1, [r1, #0x14]
bl FX_Div
ldr r1, [r4]
asr r6, r0, #0xc
ldrh r0, [r1]
cmp r6, r0
blo _021F3DF2
sub r6, r0, #1
_021F3DF2:
ldr r1, [r1, #0x18]
add r0, r7, #0
bl FX_Div
asr r1, r0, #0xc
ldr r0, [r4]
ldrh r0, [r0, #2]
cmp r1, r0
blo _021F3E06
sub r1, r0, #1
_021F3E06:
mul r0, r1
add r0, r6, r0
lsl r2, r0, #2
ldr r1, [r4, #8]
ldr r0, [r4, #0xc]
add r3, r1, r2
ldrh r6, [r3, #2]
ldrh r1, [r1, r2]
lsl r3, r6, #2
add r3, r6, r3
lsl r3, r3, #1
add r6, r0, r3
ldr r0, [sp, #0x70]
add r3, sp, #0x58
str r0, [sp, #0x28]
ldr r2, [sp, #0x28]
add r0, r6, #0
bl MOD05_021F3D28
cmp r0, #0
bne _021F3E36
add sp, #0x110
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
_021F3E36:
add r0, sp, #0x58
ldrh r1, [r0]
lsl r0, r1, #2
add r1, r1, r0
lsl r0, r1, #1
ldrh r0, [r6, r0]
str r0, [sp, #0x44]
add r0, r1, #4
lsl r0, r0, #1
add r1, r1, #3
ldrh r0, [r6, r0]
lsl r1, r1, #1
ldrh r1, [r6, r1]
lsl r0, r0, #0x10
orr r1, r0
mov r0, #0
str r0, [sp, #0x48]
ldr r0, [sp, #0x44]
cmp r0, #0
bls _021F3F50
add r0, sp, #0x98
str r0, [sp, #0x40]
lsl r0, r1, #1
str r0, [sp, #0x3c]
ldr r0, [sp, #0x28]
asr r0, r0, #0x1f
str r0, [sp, #0x38]
ldr r0, [sp, #0x68]
str r0, [sp, #0x2c]
asr r0, r0, #0x1f
str r0, [sp, #0x30]
mov r0, sp
str r0, [sp, #0x4c]
sub r0, r0, #4
str r0, [sp, #0x4c]
_021F3E7C:
ldr r0, [sp, #0x48]
ldr r2, [r4, #0x18]
lsl r1, r0, #1
ldr r0, [sp, #0x3c]
add r0, r0, r2
ldrh r7, [r1, r0]
add r0, r4, #0
add r2, sp, #0x74
add r1, r7, #0
bl MOD05_021F3C98
mov r0, #0
add r3, sp, #0x80
str r0, [sp, #0x78]
str r0, [sp, #0x84]
str r0, [sp, #0x90]
ldmia r3!, {r0, r1}
add r2, sp, #8
stmia r2!, {r0, r1}
ldr r0, [r3]
add r3, sp, #0x8c
str r0, [r2]
ldmia r3!, {r0, r1}
add r2, sp, #0x14
stmia r2!, {r0, r1}
ldr r0, [r3]
add r3, sp, #0x74
str r0, [r2]
ldr r2, [sp, #0x4c]
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldr r0, [r3]
add r6, sp, #0x68
str r0, [r2]
ldr r0, [sp, #0x4c]
ldr r3, [r0]
ldmia r6!, {r0, r1, r2}
bl FUN_0201C878
cmp r0, #1
bne _021F3F40
add r0, r4, #0
add r1, r7, #0
add r2, sp, #0x5c
bl MOD05_021F3CF0
ldr r0, [sp, #0x5c]
ldr r2, [sp, #0x2c]
ldr r3, [sp, #0x30]
asr r1, r0, #0x1f
bl _ll_mul
str r0, [sp, #0x50]
ldr r0, [sp, #0x64]
add r6, r1, #0
ldr r2, [sp, #0x28]
ldr r3, [sp, #0x38]
asr r1, r0, #0x1f
bl _ll_mul
mov ip, r0
mov r2, #0xc
ldr r0, [r4, #4]
mul r2, r7
add r0, r0, r2
mov r2, #2
ldr r3, [sp, #0x50]
lsl r2, r2, #0xa
add r3, r3, r2
ldr r2, _021F3FDC ; =0x00000000
ldr r0, [r0, #8]
adc r6, r2
lsl r2, r6, #0x14
lsr r3, r3, #0xc
orr r3, r2
mov r2, #2
lsl r2, r2, #0xa
mov r6, ip
add r2, r6, r2
ldr r6, _021F3FDC ; =0x00000000
adc r1, r6
lsl r1, r1, #0x14
lsr r2, r2, #0xc
orr r2, r1
add r1, r3, r2
add r0, r0, r1
ldr r1, [sp, #0x60]
neg r0, r0
bl FX_Div
ldr r1, [sp, #0x40]
add r5, r5, #1
str r0, [r1]
add r0, r1, #0
add r0, #0xc
str r0, [sp, #0x40]
cmp r5, #0xa
bge _021F3F50
_021F3F40:
ldr r0, [sp, #0x48]
add r0, r0, #1
lsl r0, r0, #0x10
lsr r1, r0, #0x10
str r1, [sp, #0x48]
ldr r0, [sp, #0x44]
cmp r1, r0
blo _021F3E7C
_021F3F50:
cmp r5, #1
ble _021F3FB8
mov r0, #0
str r0, [sp, #0x24]
ldr r0, [sp, #0x20]
ldr r1, [sp, #0x98]
bl FUN_0201C7A8
add r4, r0, #0
ldr r0, [sp, #0x20]
ldr r1, [sp, #0x98]
bl FUN_0201C7A0
sub r6, r4, r0
mov r4, #1
cmp r5, #1
ble _021F3FA4
_021F3F72:
mov r0, #0xc
add r7, r4, #0
mul r7, r0
add r1, sp, #0x98
ldr r0, [sp, #0x20]
ldr r1, [r1, r7]
bl FUN_0201C7A8
add r1, sp, #0x98
str r0, [sp, #0x54]
ldr r0, [sp, #0x20]
ldr r1, [r1, r7]
bl FUN_0201C7A0
ldr r1, [sp, #0x54]
sub r0, r1, r0
cmp r6, r0
ble _021F3F9A
add r6, r0, #0
str r4, [sp, #0x24]
_021F3F9A:
add r0, r4, #1
lsl r0, r0, #0x10
lsr r4, r0, #0x10
cmp r4, r5
blt _021F3F72
_021F3FA4:
ldr r0, [sp, #0x24]
mov r1, #0xc
mul r1, r0
add r0, sp, #0x98
ldr r1, [r0, r1]
ldr r0, [sp, #0x128]
add sp, #0x110
str r1, [r0]
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021F3FB8:
bne _021F3FC6
ldr r1, [sp, #0x98]
ldr r0, [sp, #0x128]
add sp, #0x110
str r1, [r0]
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021F3FC6:
cmp r5, #0
beq _021F3FD6
ldr r1, [sp, #0x98]
ldr r0, [sp, #0x128]
add sp, #0x110
str r1, [r0]
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021F3FD6:
mov r0, #0
add sp, #0x110
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_021F3FDC: .word 0x00000000
thumb_func_start MOD05_021F3FE0
MOD05_021F3FE0: ; 0x021F3FE0
push {r3, r4, r5, lr}
sub sp, #8
add r5, r0, #0
mov r0, #0
mov r2, #0x1c
add r4, r1, #0
bl MIi_CpuClear32
add r0, r5, #0
mov r1, #8
add r2, sp, #0
bl NARC_ReadFile
add r0, r5, #0
mov r1, #2
add r2, sp, #0
bl NARC_ReadFile
add r0, r5, #0
mov r1, #2
add r2, r4, #0
bl NARC_ReadFile
add r0, r5, #0
mov r1, #2
add r2, sp, #0
bl NARC_ReadFile
add r0, r5, #0
mov r1, #2
add r2, r4, #4
bl NARC_ReadFile
add r0, r5, #0
mov r1, #2
add r2, sp, #0
bl NARC_ReadFile
add r2, r4, #0
add r0, r5, #0
mov r1, #2
add r2, #8
bl NARC_ReadFile
add r0, r5, #0
mov r1, #2
add r2, sp, #0
bl NARC_ReadFile
add r0, r5, #0
mov r1, #2
add r2, sp, #0
bl NARC_ReadFile
add r2, r4, #0
add r0, r5, #0
mov r1, #2
add r2, #0xc
bl NARC_ReadFile
add r0, r5, #0
mov r1, #2
add r2, sp, #0
bl NARC_ReadFile
add r2, r4, #0
add r0, r5, #0
mov r1, #2
add r2, #0x18
bl NARC_ReadFile
add r0, r5, #0
mov r1, #2
add r2, sp, #0
bl NARC_ReadFile
add r2, r4, #0
add r0, r5, #0
mov r1, #4
add r2, #0x14
bl NARC_ReadFile
add r4, #0x10
add r0, r5, #0
mov r1, #4
add r2, r4, #0
bl NARC_ReadFile
add sp, #8
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021F4094
MOD05_021F4094: ; 0x021F4094
push {r4, r5, r6, lr}
ldr r4, [r2]
mov r3, #0
str r4, [r1, #0x10]
ldr r5, [r0]
mov r4, #0xc
mul r4, r5
add r3, r3, r4
lsr r6, r3, #0x1f
lsl r5, r3, #0x1e
sub r5, r5, r6
mov r4, #0x1e
ror r5, r4
add r4, r6, r5
lsl r4, r4, #0x18
lsr r4, r4, #0x18
beq _021F40B8
add r3, r3, r4
_021F40B8:
ldr r4, [r2]
add r4, r4, r3
str r4, [r1, #0x14]
ldr r5, [r0, #4]
mov r4, #0xc
mul r4, r5
add r3, r3, r4
lsr r6, r3, #0x1f
lsl r5, r3, #0x1e
sub r5, r5, r6
mov r4, #0x1e
ror r5, r4
add r4, r6, r5
lsl r4, r4, #0x18
lsr r4, r4, #0x18
beq _021F40DA
add r3, r3, r4
_021F40DA:
ldr r4, [r2]
add r4, r4, r3
str r4, [r1, #4]
ldr r5, [r0, #8]
mov r4, #0xc
mul r4, r5
add r3, r3, r4
lsr r6, r3, #0x1f
lsl r5, r3, #0x1e
sub r5, r5, r6
mov r4, #0x1e
ror r5, r4
add r4, r6, r5
lsl r4, r4, #0x18
lsr r4, r4, #0x18
beq _021F40FC
add r3, r3, r4
_021F40FC:
ldr r4, [r2]
add r4, r4, r3
add r3, #0x1c
str r4, [r1]
lsr r6, r3, #0x1f
lsl r5, r3, #0x1e
sub r5, r5, r6
mov r4, #0x1e
ror r5, r4
add r4, r6, r5
lsl r4, r4, #0x18
lsr r4, r4, #0x18
beq _021F4118
add r3, r3, r4
_021F4118:
ldr r4, [r2]
add r4, r4, r3
str r4, [r1, #8]
ldr r4, [r0, #0xc]
lsl r4, r4, #2
add r3, r3, r4
lsr r6, r3, #0x1f
lsl r5, r3, #0x1e
sub r5, r5, r6
mov r4, #0x1e
ror r5, r4
add r4, r6, r5
lsl r4, r4, #0x18
lsr r4, r4, #0x18
beq _021F4138
add r3, r3, r4
_021F4138:
ldr r4, [r2]
add r4, r4, r3
str r4, [r1, #0xc]
ldr r4, [r0, #0x14]
add r3, r3, r4
lsr r6, r3, #0x1f
lsl r5, r3, #0x1e
sub r5, r5, r6
mov r4, #0x1e
ror r5, r4
add r4, r6, r5
lsl r4, r4, #0x18
lsr r4, r4, #0x18
beq _021F4156
add r3, r3, r4
_021F4156:
ldr r2, [r2]
add r2, r2, r3
str r2, [r1, #0x18]
ldr r0, [r0, #0x10]
add r3, r3, r0
lsr r2, r3, #0x1f
lsl r1, r3, #0x1e
sub r1, r1, r2
mov r0, #0x1e
ror r1, r0
add r0, r2, r1
lsl r0, r0, #0x18
lsr r0, r0, #0x18
beq _021F4174
add r3, r3, r0
_021F4174:
mov r0, #9
lsl r0, r0, #0xc
cmp r3, r0
ble _021F4180
bl ErrorHandling
_021F4180:
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_start MOD05_021F4184
MOD05_021F4184: ; 0x021F4184
ldr r3, _021F4190 ; =NARC_ReadFile
add r2, r1, #0
mov r1, #0x1c
ldr r2, [r2]
bx r3
nop
_021F4190: .word NARC_ReadFile
thumb_func_start MOD05_021F4194
MOD05_021F4194: ; 0x021F4194
ldr r2, [r2]
add r3, r1, #0
mov r1, #0xc
mul r1, r2
ldr r2, [r3, #0x10]
ldr r3, _021F41A4 ; =NARC_ReadFile
bx r3
nop
_021F41A4: .word NARC_ReadFile
thumb_func_start MOD05_021F41A8
MOD05_021F41A8: ; 0x021F41A8
ldr r2, [r2, #4]
add r3, r1, #0
mov r1, #0xc
mul r1, r2
ldr r2, [r3, #0x14]
ldr r3, _021F41B8 ; =NARC_ReadFile
bx r3
nop
_021F41B8: .word NARC_ReadFile
thumb_func_start MOD05_021F41BC
MOD05_021F41BC: ; 0x021F41BC
ldr r2, [r2, #8]
add r3, r1, #0
mov r1, #0xc
mul r1, r2
ldr r2, [r3, #4]
ldr r3, _021F41CC ; =NARC_ReadFile
bx r3
nop
_021F41CC: .word NARC_ReadFile
thumb_func_start MOD05_021F41D0
MOD05_021F41D0: ; 0x021F41D0
add r3, r1, #0
ldr r1, [r2, #0xc]
ldr r2, [r3, #8]
ldr r3, _021F41DC ; =NARC_ReadFile
lsl r1, r1, #2
bx r3
.balign 4, 0
_021F41DC: .word NARC_ReadFile
thumb_func_start MOD05_021F41E0
MOD05_021F41E0: ; 0x021F41E0
add r3, r1, #0
ldr r1, [r2, #0x14]
ldr r2, [r3, #0xc]
ldr r3, _021F41EC ; =NARC_ReadFile
bx r3
nop
_021F41EC: .word NARC_ReadFile
thumb_func_start MOD05_021F41F0
MOD05_021F41F0: ; 0x021F41F0
add r3, r1, #0
ldr r1, [r2, #0x10]
ldr r2, [r3, #0x18]
ldr r3, _021F41FC ; =NARC_ReadFile
bx r3
nop
_021F41FC: .word NARC_ReadFile
thumb_func_start MOD05_021F4200
MOD05_021F4200: ; 0x021F4200
push {r3, r4, r5, lr}
add r4, r1, #0
add r1, #0xa0
ldr r1, [r1]
add r5, r0, #0
cmp r1, #1
bne _021F4216
add r1, r4, #0
mov r2, #2
add r1, #0x6c
strb r2, [r1]
_021F4216:
add r1, r4, #0
add r1, #0x6c
ldrb r1, [r1]
cmp r1, #0
beq _021F422A
cmp r1, #1
beq _021F425E
cmp r1, #2
beq _021F42EA
b _021F4302
_021F422A:
add r0, r4, #0
add r0, #0xb0
ldr r0, [r0]
ldr r0, [r0]
cmp r0, #0
beq _021F423A
mov r0, #0
b _021F4302
_021F423A:
add r0, r4, #0
add r0, #0xa8
add r1, r4, #0
ldr r0, [r0]
add r1, #0x4c
bl MOD05_021F3FE0
add r1, r4, #0
add r1, #0x9c
add r0, r4, #0
add r2, r4, #0
ldr r1, [r1]
add r0, #0x4c
add r2, #0x98
bl MOD05_021F4094
mov r0, #1
b _021F4302
_021F425E:
add r0, r4, #0
add r1, r4, #0
add r0, #0xa8
add r1, #0x9c
ldr r0, [r0]
ldr r1, [r1]
bl MOD05_021F4184
add r0, r4, #0
add r1, r4, #0
add r0, #0xa8
add r1, #0x9c
add r2, r4, #0
ldr r0, [r0]
ldr r1, [r1]
add r2, #0x4c
bl MOD05_021F4194
add r0, r4, #0
add r1, r4, #0
add r0, #0xa8
add r1, #0x9c
add r2, r4, #0
ldr r0, [r0]
ldr r1, [r1]
add r2, #0x4c
bl MOD05_021F41A8
add r0, r4, #0
add r1, r4, #0
add r0, #0xa8
add r1, #0x9c
add r2, r4, #0
ldr r0, [r0]
ldr r1, [r1]
add r2, #0x4c
bl MOD05_021F41BC
add r0, r4, #0
add r1, r4, #0
add r0, #0xa8
add r1, #0x9c
add r2, r4, #0
ldr r0, [r0]
ldr r1, [r1]
add r2, #0x4c
bl MOD05_021F41D0
add r0, r4, #0
add r1, r4, #0
add r0, #0xa8
add r1, #0x9c
add r2, r4, #0
ldr r0, [r0]
ldr r1, [r1]
add r2, #0x4c
bl MOD05_021F41E0
add r0, r4, #0
add r1, r4, #0
add r0, #0xa8
add r1, #0x9c
add r2, r4, #0
ldr r0, [r0]
ldr r1, [r1]
add r2, #0x4c
bl MOD05_021F41F0
mov r0, #1
b _021F4302
_021F42EA:
add r0, r4, #0
add r0, #0xa4
ldr r0, [r0]
mov r1, #0
str r1, [r0]
add r0, r4, #0
bl FreeToHeap
add r0, r5, #0
bl FUN_0200CAB4
pop {r3, r4, r5, pc}
_021F4302:
cmp r0, #1
bne _021F4326
add r0, r4, #0
add r0, #0x6c
ldrb r0, [r0]
add r1, r0, #1
add r0, r4, #0
add r0, #0x6c
strb r1, [r0]
add r0, r4, #0
add r0, #0x6c
ldrb r0, [r0]
cmp r0, #2
bne _021F4326
add r4, #0x9c
ldr r0, [r4]
mov r1, #1
str r1, [r0, #0x1c]
_021F4326:
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021F4328
MOD05_021F4328: ; 0x021F4328
push {r3, lr}
mov r0, #4
mov r1, #0x20
bl AllocFromHeap
mov r1, #0
str r1, [r0, #0x10]
str r1, [r0, #0x14]
str r1, [r0, #4]
str r1, [r0]
str r1, [r0, #8]
str r1, [r0, #0xc]
str r1, [r0, #0x18]
pop {r3, pc}
thumb_func_start MOD05_021F4344
MOD05_021F4344: ; 0x021F4344
push {r0, r1, r2, r3}
push {r4, r5, r6, lr}
add r5, r0, #0
mov r0, #4
mov r1, #0x1c
add r4, r2, #0
bl AllocFromHeapAtEnd
add r6, r0, #0
add r0, r5, #0
add r1, r6, #0
bl MOD05_021F3FE0
add r0, r6, #0
add r1, r4, #0
add r2, sp, #0x1c
bl MOD05_021F4094
add r0, r5, #0
add r1, r4, #0
bl MOD05_021F4184
add r0, r5, #0
add r1, r4, #0
add r2, r6, #0
bl MOD05_021F4194
add r0, r5, #0
add r1, r4, #0
add r2, r6, #0
bl MOD05_021F41A8
add r0, r5, #0
add r1, r4, #0
add r2, r6, #0
bl MOD05_021F41BC
add r0, r5, #0
add r1, r4, #0
add r2, r6, #0
bl MOD05_021F41D0
add r0, r5, #0
add r1, r4, #0
add r2, r6, #0
bl MOD05_021F41E0
add r0, r5, #0
add r1, r4, #0
add r2, r6, #0
bl MOD05_021F41F0
add r0, r6, #0
bl FreeToHeap
mov r0, #1
str r0, [r4, #0x1c]
pop {r4, r5, r6}
pop {r3}
add sp, #0x10
bx r3
.balign 4, 0
thumb_func_start MOD05_021F43C0
MOD05_021F43C0: ; 0x021F43C0
push {r3, lr}
cmp r0, #0
beq _021F43CA
bl FreeToHeap
_021F43CA:
pop {r3, pc}
thumb_func_start MOD05_021F43CC
MOD05_021F43CC: ; 0x021F43CC
cmp r0, #0
beq _021F43E2
mov r1, #0
str r1, [r0, #0x1c]
str r1, [r0, #0x10]
str r1, [r0, #0x14]
str r1, [r0, #4]
str r1, [r0]
str r1, [r0, #8]
str r1, [r0, #0xc]
str r1, [r0, #0x18]
_021F43E2:
bx lr
thumb_func_start MOD05_021F43E4
MOD05_021F43E4: ; 0x021F43E4
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r4, r1, #0
mov r0, #4
mov r1, #0xb4
add r6, r2, #0
add r7, r3, #0
bl AllocFromHeapAtEnd
add r1, r0, #0
add r2, r1, #0
mov r0, #0
add r2, #0x6c
strb r0, [r2]
add r2, r1, #0
add r2, #0xa8
str r5, [r2]
add r2, r1, #0
add r2, #0xac
str r4, [r2]
add r2, r1, #0
add r2, #0x9c
str r6, [r2]
add r2, r1, #0
add r2, #0xa4
str r7, [r2]
add r2, r1, #0
add r2, #0xa0
str r0, [r2]
str r0, [r1, #0x68]
str r0, [r1, #0x48]
ldr r0, [sp, #0x18]
ldr r2, [r0]
add r0, r1, #0
add r0, #0x98
str r2, [r0]
add r0, r1, #0
ldr r2, [sp, #0x1c]
add r0, #0xb0
str r2, [r0]
ldr r0, _021F4440 ; =MOD05_021F4200
mov r2, #1
bl FUN_0200CA44
pop {r3, r4, r5, r6, r7, pc}
nop
_021F4440: .word MOD05_021F4200
thumb_func_start MOD05_021F4444
MOD05_021F4444: ; 0x021F4444
push {r3, lr}
bl FUN_0201B6C8
mov r1, #1
add r0, #0xa0
str r1, [r0]
pop {r3, pc}
.balign 4, 0
thumb_func_start MOD05_021F4454
MOD05_021F4454: ; 0x021F4454
mov r1, #0
str r1, [r0, #0x1c]
bx lr
.balign 4, 0
thumb_func_start MOD05_021F445C
MOD05_021F445C: ; 0x021F445C
push {r4, r5}
ldr r3, [r2, #0x14]
cmp r3, #0
bne _021F446A
mov r0, #0
pop {r4, r5}
bx lr
_021F446A:
ldr r5, [r2]
ldr r3, [r2, #8]
ldr r4, [r2, #4]
ldr r2, [r2, #0xc]
add r3, r5, r3
add r2, r4, r2
sub r3, r3, #1
sub r2, r2, #1
cmp r5, r0
bgt _021F4490
cmp r0, r3
bgt _021F4490
cmp r4, r1
bgt _021F4490
cmp r1, r2
bgt _021F4490
mov r0, #1
pop {r4, r5}
bx lr
_021F4490:
mov r0, #0
pop {r4, r5}
bx lr
.balign 4, 0
thumb_func_start MOD05_021F4498
MOD05_021F4498: ; 0x021F4498
push {r4, r5, r6, lr}
add r6, r1, #0
add r5, r0, #0
add r0, r6, #0
mov r1, #8
bl AllocFromHeap
mov r1, #0x18
add r4, r0, #0
add r0, r6, #0
mul r1, r5
bl AllocFromHeap
str r0, [r4, #4]
mov r6, #0
str r5, [r4]
cmp r5, #0
bls _021F44D4
add r0, r6, #0
mov r1, #0x18
_021F44C0:
add r2, r6, #0
ldr r3, [r4, #4]
mul r2, r1
add r2, r3, r2
str r0, [r2, #0x14]
add r2, r6, #1
lsl r2, r2, #0x18
lsr r6, r2, #0x18
cmp r6, r5
blo _021F44C0
_021F44D4:
add r0, r4, #0
pop {r4, r5, r6, pc}
thumb_func_start MOD05_021F44D8
MOD05_021F44D8: ; 0x021F44D8
push {r4, r5}
ldr r5, [sp, #0x10]
mov r4, #0x18
mul r4, r0
ldr r0, [r5, #4]
str r1, [r0, r4]
ldr r0, [r5, #4]
ldr r1, [sp, #8]
add r0, r0, r4
str r2, [r0, #4]
ldr r0, [r5, #4]
add r0, r0, r4
str r3, [r0, #8]
ldr r0, [r5, #4]
add r0, r0, r4
str r1, [r0, #0xc]
ldr r0, [r5, #4]
ldr r1, [sp, #0xc]
add r0, r0, r4
str r1, [r0, #0x10]
ldr r0, [r5, #4]
mov r1, #1
add r0, r0, r4
str r1, [r0, #0x14]
pop {r4, r5}
bx lr
thumb_func_start MOD05_021F450C
MOD05_021F450C: ; 0x021F450C
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #4]
bl FreeToHeap
add r0, r4, #0
bl FreeToHeap
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021F4520
MOD05_021F4520: ; 0x021F4520
push {r3, r4, r5, r6, r7, lr}
add r6, r0, #0
add r7, r1, #0
add r5, r2, #0
str r3, [sp]
cmp r3, #0
bne _021F4532
bl ErrorHandling
_021F4532:
ldr r0, [r5]
mov r4, #0
cmp r0, #0
ble _021F4562
_021F453A:
mov r3, #0x18
ldr r2, [r5, #4]
mul r3, r4
add r0, r6, #0
add r1, r7, #0
add r2, r2, r3
bl MOD05_021F445C
cmp r0, #0
beq _021F4556
ldr r0, [sp]
strb r4, [r0]
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021F4556:
add r0, r4, #1
lsl r0, r0, #0x18
lsr r4, r0, #0x18
ldr r0, [r5]
cmp r4, r0
blt _021F453A
_021F4562:
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021F4568
MOD05_021F4568: ; 0x021F4568
push {r4, r5, r6, lr}
add r4, r1, #0
add r5, r0, #0
ldr r0, [r4]
cmp r5, r0
blt _021F4578
bl ErrorHandling
_021F4578:
mov r0, #0x18
add r6, r5, #0
mul r6, r0
ldr r0, [r4, #4]
add r0, r0, r6
ldr r0, [r0, #0x14]
cmp r0, #0
bne _021F458C
bl ErrorHandling
_021F458C:
ldr r0, [r4, #4]
add r0, r0, r6
ldr r0, [r0, #0x10]
pop {r4, r5, r6, pc}
thumb_func_start MOD05_021F4594
MOD05_021F4594: ; 0x021F4594
push {r4, r5, r6, lr}
add r6, r2, #0
add r5, r0, #0
ldr r0, [r6]
add r4, r1, #0
cmp r5, r0
blt _021F45A6
bl ErrorHandling
_021F45A6:
mov r0, #0x18
ldr r1, [r6, #4]
mul r0, r5
add r0, r1, r0
str r4, [r0, #0x10]
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_start MOD05_021F45B4
MOD05_021F45B4: ; 0x021F45B4
push {r4, lr}
mov r1, #0x1c
bl AllocFromHeap
add r4, r0, #0
bl MOD05_021F4650
add r0, r4, #0
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021F45C8
MOD05_021F45C8: ; 0x021F45C8
push {r4, lr}
add r4, r0, #0
beq _021F45E4
ldr r1, [r4]
cmp r1, #1
bne _021F45D8
bl MOD05_021F4608
_021F45D8:
add r0, r4, #0
bl MOD05_021F4650
add r0, r4, #0
bl FreeToHeap
_021F45E4:
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021F45E8
MOD05_021F45E8: ; 0x021F45E8
push {r4, lr}
add r4, r0, #0
ldr r0, _021F4604 ; =MOD05_021F4688
add r1, r4, #0
bl FUN_02015F34
cmp r0, #1
beq _021F45FC
bl ErrorHandling
_021F45FC:
mov r0, #1
str r0, [r4]
pop {r4, pc}
nop
_021F4604: .word MOD05_021F4688
thumb_func_start MOD05_021F4608
MOD05_021F4608: ; 0x021F4608
push {r4, lr}
add r4, r0, #0
mov r0, #0
add r1, r0, #0
bl FUN_02015F34
cmp r0, #1
beq _021F461C
bl ErrorHandling
_021F461C:
mov r0, #0
str r0, [r4]
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021F4624
MOD05_021F4624: ; 0x021F4624
push {r4, r5, r6, lr}
add r5, r1, #0
add r6, r2, #0
bl MOD05_021F46A8
add r4, r0, #0
bne _021F4636
bl ErrorHandling
_021F4636:
cmp r4, #0
beq _021F4642
str r6, [r4, #4]
str r5, [r4, #8]
mov r0, #1
str r0, [r4]
_021F4642:
add r0, r4, #0
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_start MOD05_021F4648
MOD05_021F4648: ; 0x021F4648
ldr r3, _021F464C ; =MOD05_021F4678
bx r3
.balign 4, 0
_021F464C: .word MOD05_021F4678
thumb_func_start MOD05_021F4650
MOD05_021F4650: ; 0x021F4650
push {r3, r4, r5, lr}
add r3, r0, #0
mov r2, #0x1c
mov r1, #0
_021F4658:
strb r1, [r3]
add r3, r3, #1
sub r2, r2, #1
bne _021F4658
mov r4, #0
str r4, [r0]
add r5, r0, #4
_021F4666:
add r0, r5, #0
bl MOD05_021F4678
add r4, r4, #1
add r5, #0xc
cmp r4, #2
blt _021F4666
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021F4678
MOD05_021F4678: ; 0x021F4678
mov r2, #0
ldr r1, _021F4684 ; =MOD05_021F46A4
str r2, [r0]
str r1, [r0, #8]
str r2, [r0, #4]
bx lr
.balign 4, 0
_021F4684: .word MOD05_021F46A4
thumb_func_start MOD05_021F4688
MOD05_021F4688: ; 0x021F4688
push {r4, r5, r6, lr}
add r5, r0, #0
mov r6, #0
add r4, r5, #4
_021F4690:
ldr r1, [r5, #8]
ldr r2, [r5, #0xc]
add r0, r4, #0
blx r2
add r6, r6, #1
add r5, #0xc
add r4, #0xc
cmp r6, #2
blt _021F4690
pop {r4, r5, r6, pc}
thumb_func_start MOD05_021F46A4
MOD05_021F46A4: ; 0x021F46A4
bx lr
.balign 4, 0
thumb_func_start MOD05_021F46A8
MOD05_021F46A8: ; 0x021F46A8
mov r2, #0
add r3, r0, #0
_021F46AC:
ldr r1, [r3, #4]
cmp r1, #0
bne _021F46BC
add r1, r0, #4
mov r0, #0xc
mul r0, r2
add r0, r1, r0
bx lr
_021F46BC:
add r2, r2, #1
add r3, #0xc
cmp r2, #2
blt _021F46AC
mov r0, #0
bx lr
thumb_func_start MOD05_021F46C8
MOD05_021F46C8: ; 0x021F46C8
push {r4, r5, r6, lr}
add r5, r1, #0
mov r1, #0xca
lsl r1, r1, #2
add r6, r0, #0
bl AllocFromHeap
mov r2, #0xca
mov r1, #0
lsl r2, r2, #2
add r4, r0, #0
bl memset
mov r2, #0x63
mov r0, #0
add r1, r4, #0
lsl r2, r2, #2
str r0, [r4]
add r0, r6, #0
add r1, #0xc
add r2, r4, r2
bl FUN_02012944
mov r1, #0xc3
lsl r1, r1, #2
str r0, [r4, r1]
add r0, r1, #4
str r5, [r4, r0]
add r0, r4, #0
pop {r4, r5, r6, pc}
thumb_func_start MOD05_021F4704
MOD05_021F4704: ; 0x021F4704
push {r4, lr}
add r4, r0, #0
ldr r1, [r4]
cmp r1, #1
bne _021F4712
bl MOD05_021F491C
_021F4712:
mov r0, #0xc3
lsl r0, r0, #2
ldr r0, [r4, r0]
bl FUN_02012974
add r0, r4, #0
bl FreeToHeap
pop {r4, pc}
thumb_func_start MOD05_021F4724
MOD05_021F4724: ; 0x021F4724
push {r4, lr}
add r4, r0, #0
ldr r0, [r4]
cmp r0, #0
beq _021F4732
bl ErrorHandling
_021F4732:
mov r0, #0x31
lsl r0, r0, #4
ldr r0, [r4, r0]
ldr r1, _021F47A4 ; =MOD05_021F48CC
add r2, r4, #0
bl MOD05_021F4624
mov r2, #0xc5
lsl r2, r2, #2
str r0, [r4, r2]
ldr r0, _021F47A8 ; =MOD05_021F47B4
add r1, r4, #0
add r2, #0xec
bl FUN_0200CA44
mov r2, #0xc7
lsl r2, r2, #2
str r0, [r4, r2]
ldr r0, _021F47AC ; =MOD05_021F48BC
add r1, r4, #0
add r2, #0xe4
bl FUN_0200CA60
mov r2, #0x32
lsl r2, r2, #4
str r0, [r4, r2]
ldr r0, _021F47B0 ; =MOD05_021F48F0
add r1, r4, #0
add r2, #0xe0
bl FUN_0200CA60
mov r1, #0xc9
lsl r1, r1, #2
str r0, [r4, r1]
add r0, r4, #0
mov r2, #6
add r0, #0xc
mov r1, #0
lsl r2, r2, #6
bl memset
mov r2, #0x63
lsl r2, r2, #2
add r0, r4, r2
mov r1, #0
sub r2, #0xc
bl memset
mov r0, #1
str r0, [r4]
mov r0, #0
str r0, [r4, #8]
mov r0, #0x61
lsl r0, r0, #4
bl FUN_020054C8
pop {r4, pc}
.balign 4, 0
_021F47A4: .word MOD05_021F48CC
_021F47A8: .word MOD05_021F47B4
_021F47AC: .word MOD05_021F48BC
_021F47B0: .word MOD05_021F48F0
thumb_func_start MOD05_021F47B4
MOD05_021F47B4: ; 0x021F47B4
push {r4, lr}
add r4, r1, #0
ldr r0, [r4, #8]
cmp r0, #3
bhi _021F483C
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021F47CA: ; jump table
.short _021F47D2 - _021F47CA - 2 ; case 0
.short _021F47DE - _021F47CA - 2 ; case 1
.short _021F480A - _021F47CA - 2 ; case 2
.short _021F4830 - _021F47CA - 2 ; case 3
_021F47D2:
mov r0, #3
str r0, [r4, #4]
ldr r0, [r4, #8]
add r0, r0, #1
str r0, [r4, #8]
pop {r4, pc}
_021F47DE:
ldr r0, [r4, #4]
sub r0, r0, #1
str r0, [r4, #4]
mov r0, #0xc3
lsl r0, r0, #2
ldr r0, [r4, r0]
bl FUN_02012988
ldr r1, [r4, #4]
mov r2, #3
sub r1, r2, r1
bl MOD05_021F4878
ldr r0, [r4, #4]
cmp r0, #0
bgt _021F483C
mov r0, #3
str r0, [r4, #4]
ldr r0, [r4, #8]
add r0, r0, #1
str r0, [r4, #8]
pop {r4, pc}
_021F480A:
ldr r0, [r4, #4]
sub r0, r0, #1
str r0, [r4, #4]
mov r0, #0xc3
lsl r0, r0, #2
ldr r0, [r4, r0]
bl FUN_02012988
ldr r1, [r4, #4]
mov r2, #3
bl MOD05_021F4878
ldr r0, [r4, #4]
cmp r0, #0
bgt _021F483C
ldr r0, [r4, #8]
add r0, r0, #1
str r0, [r4, #8]
pop {r4, pc}
_021F4830:
add r0, r4, #0
bl MOD05_021F491C
mov r0, #0
bl G3X_SetHOffset
_021F483C:
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021F4840
MOD05_021F4840: ; 0x021F4840
push {r4, lr}
ldr r1, _021F4870 ; =0x04000006
ldrh r4, [r1]
mov r1, #0xc3
lsl r1, r1, #2
ldr r0, [r0, r1]
bl FUN_0201299C
cmp r4, #0xc0
bge _021F486E
add r3, r4, #1
cmp r3, #0xc0
blt _021F485C
sub r3, #0xc0
_021F485C:
ldr r1, _021F4874 ; =0x04000004
ldrh r2, [r1]
mov r1, #2
tst r1, r2
beq _021F486E
lsl r1, r3, #1
ldrh r0, [r0, r1]
bl G3X_SetHOffset
_021F486E:
pop {r4, pc}
.balign 4, 0
_021F4870: .word 0x04000006
_021F4874: .word 0x04000004
thumb_func_start MOD05_021F4878
MOD05_021F4878: ; 0x021F4878
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
lsl r0, r1, #1
add r0, r1, r0
add r1, r2, #0
mov r4, #1
bl _s32_div_f
neg r1, r0
lsl r1, r1, #0x10
lsr r1, r1, #0x10
lsl r0, r0, #0x10
mov r6, #0
str r1, [sp]
lsr r7, r0, #0x10
_021F4896:
add r0, r6, #0
mov r1, #0xa
bl _s32_div_f
cmp r1, #0
bne _021F48A6
mov r0, #1
eor r4, r0
_021F48A6:
cmp r4, #0
beq _021F48AE
strh r7, [r5]
b _021F48B2
_021F48AE:
ldr r0, [sp]
strh r0, [r5]
_021F48B2:
add r6, r6, #1
add r5, r5, #2
cmp r6, #0xc0
blt _021F4896
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD05_021F48BC
MOD05_021F48BC: ; 0x021F48BC
mov r2, #0xc6
ldr r3, _021F48C8 ; =G3X_SetHOffset
mov r0, #0
lsl r2, r2, #2
str r0, [r1, r2]
bx r3
.balign 4, 0
_021F48C8: .word G3X_SetHOffset
thumb_func_start MOD05_021F48CC
MOD05_021F48CC: ; 0x021F48CC
ldr r3, _021F48D4 ; =MOD05_021F48D8
add r0, r1, #0
bx r3
nop
_021F48D4: .word MOD05_021F48D8
thumb_func_start MOD05_021F48D8
MOD05_021F48D8: ; 0x021F48D8
push {r3, lr}
ldr r1, [r0]
cmp r1, #1
bne _021F48EE
mov r1, #0xc6
lsl r1, r1, #2
ldr r1, [r0, r1]
cmp r1, #1
bne _021F48EE
bl MOD05_021F4840
_021F48EE:
pop {r3, pc}
thumb_func_start MOD05_021F48F0
MOD05_021F48F0: ; 0x021F48F0
ldr r3, _021F48F8 ; =MOD05_021F48FC
add r0, r1, #0
bx r3
nop
_021F48F8: .word MOD05_021F48FC
thumb_func_start MOD05_021F48FC
MOD05_021F48FC: ; 0x021F48FC
push {r4, lr}
add r4, r0, #0
ldr r0, [r4]
cmp r0, #1
bne _021F4918
mov r0, #0xc3
lsl r0, r0, #2
ldr r0, [r4, r0]
bl FUN_020129B4
mov r0, #0xc6
mov r1, #1
lsl r0, r0, #2
str r1, [r4, r0]
_021F4918:
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021F491C
MOD05_021F491C: ; 0x021F491C
push {r4, lr}
add r4, r0, #0
mov r0, #0xc5
lsl r0, r0, #2
ldr r0, [r4, r0]
bl MOD05_021F4648
mov r0, #0xc5
mov r1, #0
lsl r0, r0, #2
str r1, [r4, r0]
add r0, #8
ldr r0, [r4, r0]
bl FUN_0200CAB4
mov r0, #0xc7
mov r1, #0
lsl r0, r0, #2
str r1, [r4, r0]
add r0, r0, #4
ldr r0, [r4, r0]
bl FUN_0200CAB4
mov r0, #0x32
mov r1, #0
lsl r0, r0, #4
str r1, [r4, r0]
add r0, r0, #4
ldr r0, [r4, r0]
bl FUN_0200CAB4
mov r0, #0xc9
mov r1, #0
lsl r0, r0, #2
str r1, [r4, r0]
str r1, [r4]
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021F4968
MOD05_021F4968: ; 0x021F4968
ldr r2, [r1, #0x14]
ldr r3, _021F4974 ; =FUN_02016B44
add r1, r1, r2
sub r1, r1, r0
bx r3
nop
_021F4974: .word FUN_02016B44
thumb_func_start MOD05_021F4978
MOD05_021F4978: ; 0x021F4978
push {r4, r5, r6, lr}
add r6, r1, #0
mov r1, #0x23
add r5, r0, #0
mov r0, #4
lsl r1, r1, #6
bl AllocFromHeap
add r4, r0, #0
mov r0, #4
mov r1, #0x10
bl AllocFromHeapAtEnd
ldr r1, _021F49A8 ; =0x000008B8
mov r2, #0
str r0, [r4, r1]
ldr r0, [r4, r1]
str r5, [r0]
ldr r0, [r4, r1]
str r6, [r0, #4]
ldr r0, [r4, r1]
str r2, [r0, #0xc]
add r0, r4, #0
pop {r4, r5, r6, pc}
.balign 4, 0
_021F49A8: .word 0x000008B8
thumb_func_start MOD05_021F49AC
MOD05_021F49AC: ; 0x021F49AC
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x110
add r5, r0, #0
ldr r0, _021F4B9C ; =0x000008B8
mov r1, #0x2a
ldr r7, [r5, r0]
sub r0, #8
ldr r2, [r7]
add r0, r5, r0
bl ReadWholeNarcMemberByIdPair
mov r1, #0x8b
lsl r1, r1, #4
ldrh r1, [r5, r1]
mov r0, #0x2b
mov r2, #4
bl AllocAndReadWholeNarcMemberByIdPair
ldr r1, _021F4BA0 ; =0x000008BC
str r0, [r5, r1]
ldr r0, [r5, r1]
ldrh r1, [r0]
ldr r0, _021F4BA4 ; =0x00000226
strh r1, [r7, #8]
cmp r1, r0
blo _021F49E4
bl ErrorHandling
_021F49E4:
ldr r1, _021F4BA8 ; =0x000008A4
mov r0, #0
str r0, [r5, r1]
add r1, #0xe
ldrh r1, [r5, r1]
mov r0, #0x2c
mov r2, #4
bl AllocAndReadWholeNarcMemberByIdPair
ldr r1, _021F4BAC ; =0x0000089C
mov r2, #4
str r0, [r5, r1]
add r1, #0x14
ldrh r1, [r5, r1]
mov r0, #0x47
bl AllocAndReadWholeNarcMemberByIdPair
mov r1, #0x8a
lsl r1, r1, #4
str r0, [r5, r1]
sub r0, r1, #4
ldr r0, [r5, r0]
bl FUN_020BC0FC
ldr r1, _021F4BA8 ; =0x000008A4
str r0, [r5, r1]
ldrh r0, [r7, #8]
cmp r0, #0
beq _021F4A2C
sub r0, r1, #4
ldr r0, [r5, r0]
bl FUN_020BC0FC
ldr r1, _021F4BB0 ; =0x000008A8
str r0, [r5, r1]
b _021F4A32
_021F4A2C:
mov r2, #0
add r0, r1, #4
str r2, [r5, r0]
_021F4A32:
ldr r0, _021F4BA8 ; =0x000008A4
ldr r0, [r5, r0]
bl FUN_0201B3C4
cmp r0, #0
bne _021F4A42
bl ErrorHandling
_021F4A42:
ldr r1, _021F4BAC ; =0x0000089C
ldr r0, [r5, r1]
add r1, #8
ldr r1, [r5, r1]
bl MOD05_021F4968
ldr r0, _021F4BB0 ; =0x000008A8
ldr r0, [r5, r0]
cmp r0, #0
beq _021F4A70
bl FUN_0201B3C4
cmp r0, #0
bne _021F4A62
bl ErrorHandling
_021F4A62:
mov r1, #0x8a
lsl r1, r1, #4
ldr r0, [r5, r1]
add r1, #8
ldr r1, [r5, r1]
bl MOD05_021F4968
_021F4A70:
mov r2, #0
ldr r0, _021F4BA4 ; =0x00000226
add r3, r5, #0
add r1, r2, #0
_021F4A78:
add r2, r2, #1
str r1, [r3, #4]
add r3, r3, #4
cmp r2, r0
blt _021F4A78
ldr r0, _021F4BB4 ; =0x000008AC
str r1, [r5, r0]
mov r0, #0x28
mov r1, #4
bl NARC_ctor
str r0, [sp, #0xc]
ldr r0, [r7, #4]
bl MOD05_021DA220
str r0, [sp, #4]
mov r0, #0
str r0, [sp, #8]
ldrh r0, [r7, #8]
cmp r0, #0
ble _021F4B10
ldr r0, [sp, #8]
str r0, [sp]
_021F4AA6:
ldr r0, _021F4BA0 ; =0x000008BC
ldr r1, [r5, r0]
ldr r0, [sp]
add r0, r1, r0
ldrh r6, [r0, #2]
lsl r0, r6, #2
add r4, r5, r0
ldr r0, [r4, #4]
cmp r0, #0
beq _021F4ABE
bl ErrorHandling
_021F4ABE:
ldr r0, [sp, #0xc]
add r1, r6, #0
mov r2, #4
bl NARC_AllocAndReadWholeMember
str r0, [r4, #4]
ldr r0, [sp, #4]
cmp r6, r0
bge _021F4AEC
ldr r0, [r4, #4]
bl FUN_020BC13C
add r1, r0, #0
ldrh r2, [r1, #0xe]
ldr r3, [r7, #4]
add r0, r6, #0
add r2, r1, r2
ldr r2, [r2, #0xc]
add r1, r1, r2
ldr r2, _021F4BB0 ; =0x000008A8
ldr r2, [r5, r2]
bl MOD05_021D9CEC
_021F4AEC:
ldr r1, _021F4BB0 ; =0x000008A8
ldr r0, [r4, #4]
ldr r1, [r5, r1]
bl FUN_0201B3A8
cmp r0, #0
bne _021F4AFE
bl ErrorHandling
_021F4AFE:
ldr r0, [sp]
ldrh r1, [r7, #8]
add r0, r0, #2
str r0, [sp]
ldr r0, [sp, #8]
add r0, r0, #1
str r0, [sp, #8]
cmp r0, r1
blt _021F4AA6
_021F4B10:
ldr r0, [r5, #4]
cmp r0, #0
bne _021F4B46
ldr r0, [sp, #0xc]
mov r1, #0
mov r2, #4
bl NARC_AllocAndReadWholeMember
str r0, [r5, #4]
bl FUN_020BC0FC
add r4, r0, #0
beq _021F4B46
bl FUN_0201B3C4
cmp r0, #0
bne _021F4B36
bl ErrorHandling
_021F4B36:
ldr r0, [r5, #4]
add r1, r4, #0
bl FUN_0201B3A8
cmp r0, #0
bne _021F4B46
bl ErrorHandling
_021F4B46:
ldr r0, [sp, #0xc]
bl NARC_dtor
ldr r2, _021F4BB8 ; =0x04000060
ldr r0, _021F4BBC ; =0xFFFFCFFF
ldrh r1, [r2]
and r1, r0
mov r0, #0x20
orr r0, r1
strh r0, [r2]
ldr r0, _021F4BC0 ; =0x000008B6
ldrh r0, [r5, r0]
cmp r0, #0
bne _021F4B6A
ldr r0, _021F4BC4 ; =0x021FC624
bl G3X_SetEdgeColorTable
b _021F4B70
_021F4B6A:
ldr r0, _021F4BC8 ; =0x021FC634
bl G3X_SetEdgeColorTable
_021F4B70:
bl MOD05_021DB900
ldr r1, _021F4BB4 ; =0x000008AC
str r0, [r5, r1]
ldr r1, _021F4BCC ; =0x021FD648
add r0, sp, #0x10
bl sprintf
ldr r1, _021F4BB4 ; =0x000008AC
add r0, sp, #0x10
ldr r1, [r5, r1]
bl MOD05_021DB918
ldr r0, _021F4B9C ; =0x000008B8
ldr r0, [r5, r0]
bl FreeToHeap
ldr r0, _021F4B9C ; =0x000008B8
mov r1, #0
str r1, [r5, r0]
add sp, #0x110
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_021F4B9C: .word 0x000008B8
_021F4BA0: .word 0x000008BC
_021F4BA4: .word 0x00000226
_021F4BA8: .word 0x000008A4
_021F4BAC: .word 0x0000089C
_021F4BB0: .word 0x000008A8
_021F4BB4: .word 0x000008AC
_021F4BB8: .word 0x04000060
_021F4BBC: .word 0xFFFFCFFF
_021F4BC0: .word 0x000008B6
_021F4BC4: .word 0x021FC624
_021F4BC8: .word 0x021FC634
_021F4BCC: .word 0x021FD648
thumb_func_start MOD05_021F4BD0
MOD05_021F4BD0: ; 0x021F4BD0
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
bne _021F4BDC
bl ErrorHandling
_021F4BDC:
add r2, r4, #4
lsl r1, r5, #2
ldr r0, [r2, r1]
cmp r0, #0
bne _021F4BF4
ldr r0, [r4, #4]
cmp r0, #0
bne _021F4BF0
bl ErrorHandling
_021F4BF0:
add r0, r4, #4
pop {r3, r4, r5, pc}
_021F4BF4:
add r0, r2, r1
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021F4BF8
MOD05_021F4BF8: ; 0x021F4BF8
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
ldr r1, [r5]
ldr r0, _021F4C64 ; =0x000008AC
ldr r0, [r1, r0]
cmp r0, #0
beq _021F4C0A
bl MOD05_021DB9BC
_021F4C0A:
mov r6, #0
ldr r7, _021F4C68 ; =0x00000226
add r4, r6, #0
_021F4C10:
ldr r0, [r5]
add r0, r0, r4
ldr r0, [r0, #4]
cmp r0, #0
beq _021F4C1E
bl FreeToHeap
_021F4C1E:
add r6, r6, #1
add r4, r4, #4
cmp r6, r7
blt _021F4C10
ldr r1, [r5]
ldr r0, _021F4C6C ; =0x000008BC
ldr r0, [r1, r0]
bl FreeToHeap
ldr r1, [r5]
ldr r0, _021F4C70 ; =0x0000089C
ldr r0, [r1, r0]
bl FreeToHeap
ldr r1, [r5]
ldr r0, _021F4C70 ; =0x0000089C
mov r2, #0
str r2, [r1, r0]
ldr r1, [r5]
add r0, r0, #4
ldr r0, [r1, r0]
bl FreeToHeap
mov r0, #0x8a
ldr r1, [r5]
mov r2, #0
lsl r0, r0, #4
str r2, [r1, r0]
ldr r0, [r5]
bl FreeToHeap
mov r0, #0
str r0, [r5]
pop {r3, r4, r5, r6, r7, pc}
nop
_021F4C64: .word 0x000008AC
_021F4C68: .word 0x00000226
_021F4C6C: .word 0x000008BC
_021F4C70: .word 0x0000089C
thumb_func_start MOD05_021F4C74
MOD05_021F4C74: ; 0x021F4C74
push {r4, lr}
add r4, r0, #0
bne _021F4C7E
bl ErrorHandling
_021F4C7E:
ldr r0, _021F4C84 ; =0x000008A4
ldr r0, [r4, r0]
pop {r4, pc}
.balign 4, 0
_021F4C84: .word 0x000008A4
thumb_func_start MOD05_021F4C88
MOD05_021F4C88: ; 0x021F4C88
push {r4, lr}
add r4, r0, #0
bne _021F4C92
bl ErrorHandling
_021F4C92:
ldr r0, _021F4C98 ; =0x000008A8
ldr r0, [r4, r0]
pop {r4, pc}
.balign 4, 0
_021F4C98: .word 0x000008A8
thumb_func_start MOD05_021F4C9C
MOD05_021F4C9C: ; 0x021F4C9C
ldr r1, _021F4CA4 ; =0x000008AC
ldr r0, [r0, r1]
bx lr
nop
_021F4CA4: .word 0x000008AC
thumb_func_start MOD05_021F4CA8
MOD05_021F4CA8: ; 0x021F4CA8
ldr r1, _021F4CB8 ; =0x000008B6
ldrh r0, [r0, r1]
cmp r0, #0
beq _021F4CB4
mov r0, #1
bx lr
_021F4CB4:
mov r0, #0
bx lr
.balign 4, 0
_021F4CB8: .word 0x000008B6
thumb_func_start MOD05_021F4CBC
MOD05_021F4CBC: ; 0x021F4CBC
ldr r1, _021F4CD0 ; =0x000008B6
ldrh r0, [r0, r1]
cmp r0, #0
bne _021F4CC8
mov r0, #1
b _021F4CCA
_021F4CC8:
mov r0, #0
_021F4CCA:
lsl r0, r0, #0x18
lsr r0, r0, #0x18
bx lr
.balign 4, 0
_021F4CD0: .word 0x000008B6
thumb_func_start MOD05_021F4CD4
MOD05_021F4CD4: ; 0x021F4CD4
ldr r2, _021F4CE0 ; =0x000008BC
ldr r2, [r0, r2]
lsl r0, r1, #1
ldrh r0, [r2, r0]
bx lr
nop
_021F4CE0: .word 0x000008BC
thumb_func_start MOD05_021F4CE4
MOD05_021F4CE4: ; 0x021F4CE4
lsl r1, r1, #2
add r0, r0, r1
ldr r0, [r0, #4]
cmp r0, #0
beq _021F4CF2
mov r0, #1
bx lr
_021F4CF2:
mov r0, #0
bx lr
.balign 4, 0
thumb_func_start MOD05_021F4CF8
MOD05_021F4CF8: ; 0x021F4CF8
push {r4, lr}
mov r0, #4
mov r1, #0xfc
bl AllocFromHeap
mov r4, #0
add r2, r4, #0
_021F4D06:
lsl r1, r4, #3
add r3, r0, r1
strb r2, [r0, r1]
add r1, r4, #1
lsl r1, r1, #0x18
lsr r4, r1, #0x18
str r2, [r3, #4]
cmp r4, #0x15
blo _021F4D06
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021F4D1C
MOD05_021F4D1C: ; 0x021F4D1C
push {r4, lr}
add r4, r0, #0
ldr r0, [r4]
bl FreeToHeap
mov r0, #0
str r0, [r4]
pop {r4, pc}
thumb_func_start MOD05_021F4D2C
MOD05_021F4D2C: ; 0x021F4D2C
push {r3, r4, r5, r6, lr}
sub sp, #0x1c
add r5, r0, #0
ldr r0, _021F4D7C ; =0x000007D8
str r0, [r1]
ldr r0, [r5, #0x38]
bl FUN_02055320
add r4, r0, #0
ldr r0, [r5, #0x38]
bl FUN_0205532C
add r6, r0, #0
ldr r0, [r5, #0x38]
bl FUN_020552F8
cmp r0, #0
bne _021F4D76
mov r0, #1
str r0, [sp]
str r0, [sp, #4]
add r0, sp, #0xc
mov r2, #0
str r0, [sp, #8]
add r0, r4, #0
add r1, r6, #0
sub r3, r2, #1
bl FUN_0204A840
add r0, r5, #0
mov r1, #0x1a
add r2, sp, #0xc
mov r3, #0
bl FUN_0204A8C4
add sp, #0x1c
pop {r3, r4, r5, r6, pc}
_021F4D76:
mov r0, #0
add sp, #0x1c
pop {r3, r4, r5, r6, pc}
.balign 4, 0
_021F4D7C: .word 0x000007D8
thumb_func_start MOD05_021F4D80
MOD05_021F4D80: ; 0x021F4D80
push {r3, r4, r5, lr}
add r4, r0, #0
ldr r0, [r4, #0x1c]
ldr r0, [r0]
bl MOD05_021F50FC
add r5, r0, #0
cmp r5, #0x15
bne _021F4D96
bl ErrorHandling
_021F4D96:
ldr r0, [r4, #0xc]
bl FUN_0202A9B0
bl FUN_0202A9BC
add r1, r0, #0
add r0, r5, #0
bl FUN_0202A9C8
add r4, r0, #0
ldr r0, [r4]
bl MOD05_021F5120
cmp r0, #0
beq _021F4DB8
mov r0, #3
pop {r3, r4, r5, pc}
_021F4DB8:
ldr r0, [r4]
cmp r0, #0
beq _021F4DC2
mov r0, #2
pop {r3, r4, r5, pc}
_021F4DC2:
mov r0, #1
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021F4DC8
MOD05_021F4DC8: ; 0x021F4DC8
push {r3, r4, r5, r6, r7, lr}
add r6, r0, #0
ldr r0, [r6, #0x1c]
ldr r0, [r0]
bl MOD05_021F50FC
add r5, r0, #0
cmp r5, #0x15
bne _021F4DDE
bl ErrorHandling
_021F4DDE:
ldr r0, [r6, #0xc]
bl FUN_0202A9B0
bl FUN_0202A9BC
str r0, [sp]
ldr r1, [sp]
add r0, r5, #0
bl FUN_0202A9C8
add r4, r0, #0
mov r0, #0x5a
lsl r0, r0, #4
str r0, [r4]
ldr r0, [r6, #0xc]
bl FUN_020238F4
bl FUN_020239BC
add r1, r5, #0
bl MOD05_021F5138
add r7, r0, #0
ldr r0, [sp]
bl FUN_0202A9C0
cmp r5, r0
bne _021F4E42
bl rand_LC
mov r1, #0x29
lsl r1, r1, #4
bl _s32_div_f
lsl r0, r0, #0x10
lsr r6, r0, #0x10
cmp r6, #0x64
blo _021F4E2E
bl ErrorHandling
_021F4E2E:
cmp r6, #0x5a
bhs _021F4E42
add r0, r4, #4
bl MOD05_021F4F44
ldrb r0, [r4, #6]
bl MOD05_021F4FAC
strb r0, [r4, #7]
pop {r3, r4, r5, r6, r7, pc}
_021F4E42:
add r0, r7, #0
add r1, r4, #6
bl MOD05_021F4EE4
ldrb r0, [r4, #6]
cmp r0, #0
beq _021F4E60
add r0, r4, #4
bl MOD05_021F4F44
ldrb r0, [r4, #6]
bl MOD05_021F4F98
strb r0, [r4, #5]
b _021F4E68
_021F4E60:
mov r0, #0
strb r0, [r4, #5]
strb r0, [r4, #4]
str r0, [r4]
_021F4E68:
ldrb r0, [r4, #6]
bl MOD05_021F4FAC
strb r0, [r4, #7]
ldr r1, [sp]
add r0, r5, #0
bl FUN_0202A9C4
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021F4E7C
MOD05_021F4E7C: ; 0x021F4E7C
push {r3, r4, r5, r6, lr}
sub sp, #4
add r5, r0, #0
ldr r0, [r5, #0x1c]
ldr r0, [r0]
bl MOD05_021F50FC
add r4, r0, #0
cmp r4, #0x15
bne _021F4E94
bl ErrorHandling
_021F4E94:
add r0, r5, #0
add r0, #0xa4
ldr r0, [r0]
lsl r4, r4, #3
add r0, r0, r4
ldr r0, [r0, #4]
cmp r0, #0
beq _021F4EE0
ldr r0, [r5, #0x24]
bl MOD05_021EF618
ldr r1, [r5, #0x24]
add r2, sp, #0
bl MOD05_021EF604
ldr r0, [sp]
mov r1, #0x1a
bl MOD05_021E7ED8
add r6, r0, #0
bl MOD05_021E7EC8
add r1, r0, #0
cmp r6, #0
beq _021F4ED6
add r3, r5, #0
add r3, #0xa4
ldr r3, [r3]
ldr r0, [r5, #0x4c]
ldrb r3, [r3, r4]
mov r2, #0x1a
bl MOD05_021D9FB4
_021F4ED6:
add r5, #0xa4
ldr r0, [r5]
mov r1, #0
add r0, r0, r4
str r1, [r0, #4]
_021F4EE0:
add sp, #4
pop {r3, r4, r5, r6, pc}
thumb_func_start MOD05_021F4EE4
MOD05_021F4EE4: ; 0x021F4EE4
push {r4, r5, r6, lr}
add r6, r0, #0
add r5, r1, #0
bl rand_LC
mov r1, #0x29
lsl r1, r1, #4
bl _s32_div_f
lsl r0, r0, #0x10
lsr r4, r0, #0x10
cmp r4, #0x64
blo _021F4F02
bl ErrorHandling
_021F4F02:
cmp r6, #0
beq _021F4F2A
cmp r4, #1
bge _021F4F10
mov r0, #3
strb r0, [r5]
pop {r4, r5, r6, pc}
_021F4F10:
cmp r4, #0xa
bge _021F4F1A
mov r0, #0
strb r0, [r5]
pop {r4, r5, r6, pc}
_021F4F1A:
cmp r4, #0x1e
bge _021F4F24
mov r0, #1
strb r0, [r5]
pop {r4, r5, r6, pc}
_021F4F24:
mov r0, #2
strb r0, [r5]
pop {r4, r5, r6, pc}
_021F4F2A:
cmp r4, #0xa
bge _021F4F34
mov r0, #0
strb r0, [r5]
pop {r4, r5, r6, pc}
_021F4F34:
cmp r4, #0x1e
bge _021F4F3E
mov r0, #2
strb r0, [r5]
pop {r4, r5, r6, pc}
_021F4F3E:
mov r0, #1
strb r0, [r5]
pop {r4, r5, r6, pc}
thumb_func_start MOD05_021F4F44
MOD05_021F4F44: ; 0x021F4F44
push {r3, r4, r5, lr}
add r4, r0, #0
bl rand_LC
mov r1, #0x29
lsl r1, r1, #4
bl _s32_div_f
lsl r0, r0, #0x10
lsr r5, r0, #0x10
cmp r5, #0x64
blo _021F4F60
bl ErrorHandling
_021F4F60:
cmp r5, #5
bge _021F4F6A
mov r0, #5
strb r0, [r4]
pop {r3, r4, r5, pc}
_021F4F6A:
cmp r5, #0xa
bge _021F4F74
mov r0, #4
strb r0, [r4]
pop {r3, r4, r5, pc}
_021F4F74:
cmp r5, #0x14
bge _021F4F7E
mov r0, #3
strb r0, [r4]
pop {r3, r4, r5, pc}
_021F4F7E:
cmp r5, #0x28
bge _021F4F88
mov r0, #2
strb r0, [r4]
pop {r3, r4, r5, pc}
_021F4F88:
cmp r5, #0x3c
bge _021F4F92
mov r0, #1
strb r0, [r4]
pop {r3, r4, r5, pc}
_021F4F92:
mov r0, #0
strb r0, [r4]
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021F4F98
MOD05_021F4F98: ; 0x021F4F98
cmp r0, #3
bne _021F4FA0
mov r0, #2
bx lr
_021F4FA0:
cmp r0, #2
bne _021F4FA8
mov r0, #1
bx lr
_021F4FA8:
mov r0, #0
bx lr
thumb_func_start MOD05_021F4FAC
MOD05_021F4FAC: ; 0x021F4FAC
push {r3, r4, r5, lr}
add r4, r0, #0
bl rand_LC
mov r1, #0x29
lsl r1, r1, #4
bl _s32_div_f
lsl r0, r0, #0x10
lsr r5, r0, #0x10
cmp r5, #0x64
blo _021F4FC8
bl ErrorHandling
_021F4FC8:
cmp r4, #3
bne _021F4FE8
cmp r5, #5
bge _021F4FD4
mov r0, #2
pop {r3, r4, r5, pc}
_021F4FD4:
cmp r5, #6
bge _021F4FDC
mov r0, #1
pop {r3, r4, r5, pc}
_021F4FDC:
cmp r5, #7
bge _021F4FE4
mov r0, #0
pop {r3, r4, r5, pc}
_021F4FE4:
mov r0, #3
pop {r3, r4, r5, pc}
_021F4FE8:
cmp r4, #2
bne _021F5008
cmp r5, #0x4b
bge _021F4FF4
mov r0, #2
pop {r3, r4, r5, pc}
_021F4FF4:
cmp r5, #0x5f
bge _021F4FFC
mov r0, #1
pop {r3, r4, r5, pc}
_021F4FFC:
cmp r5, #0x60
bge _021F5004
mov r0, #0
pop {r3, r4, r5, pc}
_021F5004:
mov r0, #3
pop {r3, r4, r5, pc}
_021F5008:
cmp r4, #1
bne _021F5028
cmp r5, #0x13
bge _021F5014
mov r0, #2
pop {r3, r4, r5, pc}
_021F5014:
cmp r5, #0x4f
bge _021F501C
mov r0, #1
pop {r3, r4, r5, pc}
_021F501C:
cmp r5, #0x63
bge _021F5024
mov r0, #0
pop {r3, r4, r5, pc}
_021F5024:
mov r0, #3
pop {r3, r4, r5, pc}
_021F5028:
cmp r5, #1
bge _021F5030
mov r0, #2
pop {r3, r4, r5, pc}
_021F5030:
cmp r5, #0x13
bge _021F5038
mov r0, #1
pop {r3, r4, r5, pc}
_021F5038:
cmp r5, #0x63
bge _021F5040
mov r0, #0
pop {r3, r4, r5, pc}
_021F5040:
mov r0, #3
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021F5044
MOD05_021F5044: ; 0x021F5044
mov r2, #1
cmp r0, #3
bne _021F5050
mov r0, #2
strb r0, [r1]
b _021F5064
_021F5050:
cmp r0, #2
bne _021F5058
strb r2, [r1]
b _021F5064
_021F5058:
cmp r0, #1
bne _021F5062
mov r0, #0
strb r0, [r1]
b _021F5064
_021F5062:
mov r2, #0
_021F5064:
add r0, r2, #0
bx lr
thumb_func_start MOD05_021F5068
MOD05_021F5068: ; 0x021F5068
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
add r5, r0, #0
ldr r0, [r5, #0x28]
add r7, r1, #0
add r1, r2, #0
bl FUN_02034554
bl MOD05_021F50FC
add r4, r0, #0
cmp r4, #0x15
beq _021F50F8
ldr r0, [r5, #0xc]
bl FUN_0202A9B0
bl FUN_0202A9BC
add r1, r0, #0
add r0, r4, #0
bl FUN_0202A9C8
add r6, r0, #0
ldr r0, [r6]
bl MOD05_021F5120
cmp r0, #0
beq _021F50F8
ldrb r0, [r6, #7]
add r1, sp, #4
bl MOD05_021F5044
add r6, r0, #0
beq _021F50F8
add r0, r7, #0
mov r1, #0x1a
bl MOD05_021E7ED8
cmp r0, #0
beq _021F50F8
bl MOD05_021E7EC8
add r3, r5, #0
add r7, r0, #0
add r3, #0xa4
ldr r3, [r3]
lsl r4, r4, #3
ldrb r3, [r3, r4]
ldr r0, [r5, #0x4c]
add r1, r7, #0
mov r2, #0x1a
bl MOD05_021D9FB4
add r1, sp, #4
add r2, r5, #0
add r2, #0xa4
ldrb r0, [r1]
ldr r2, [r2]
add r3, r7, #0
strb r0, [r2, r4]
add r0, r5, #0
add r0, #0xa4
ldr r0, [r0]
mov r2, #1
add r0, r0, r4
str r6, [r0, #4]
ldr r0, [r5, #0x4c]
str r0, [sp]
ldrb r1, [r1]
mov r0, #0x1a
bl MOD05_021D9DC0
_021F50F8:
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD05_021F50FC
MOD05_021F50FC: ; 0x021F50FC
ldr r2, _021F511C ; =0x021FC650
mov r3, #0
_021F5100:
lsl r1, r3, #2
ldr r1, [r2, r1]
cmp r0, r1
bne _021F510C
add r0, r3, #0
bx lr
_021F510C:
add r1, r3, #1
lsl r1, r1, #0x18
lsr r3, r1, #0x18
cmp r3, #0x15
blo _021F5100
add r0, r3, #0
bx lr
nop
_021F511C: .word 0x021FC650
thumb_func_start MOD05_021F5120
MOD05_021F5120: ; 0x021F5120
cmp r0, #0
ble _021F512E
ldr r1, _021F5134 ; =0x00000438
cmp r0, r1
bgt _021F512E
mov r0, #1
bx lr
_021F512E:
mov r0, #0
bx lr
nop
_021F5134: .word 0x00000438
thumb_func_start MOD05_021F5138
MOD05_021F5138: ; 0x021F5138
push {r3, r4, r5, r6, r7, lr}
add r4, r1, #0
lsr r2, r0, #0x18
add r1, sp, #0
strb r2, [r1]
lsr r2, r0, #0x10
strb r2, [r1, #1]
lsr r2, r0, #8
strb r2, [r1, #2]
strb r0, [r1, #3]
ldrb r0, [r1]
mov r1, #0x15
bl _s32_div_f
add r0, sp, #0
strb r1, [r0]
ldrb r0, [r0, #1]
mov r1, #0x15
bl _s32_div_f
add r0, sp, #0
strb r1, [r0, #1]
ldrb r0, [r0, #2]
mov r1, #0x15
bl _s32_div_f
add r0, sp, #0
strb r1, [r0, #2]
ldrb r0, [r0, #3]
mov r1, #0x15
bl _s32_div_f
add r0, sp, #0
strb r1, [r0, #3]
mov r0, #0
mov r3, #1
add r1, sp, #0
add r2, r0, #0
_021F5184:
add r5, r2, #0
cmp r3, #0
bls _021F51A8
_021F518A:
ldrb r7, [r1, r5]
ldrb r6, [r1, r3]
cmp r7, r6
bne _021F519E
add r6, r6, #1
strb r6, [r1, r3]
ldrb r6, [r1, r3]
cmp r6, #0x15
blo _021F519E
strb r0, [r1, r3]
_021F519E:
add r5, r5, #1
lsl r5, r5, #0x18
lsr r5, r5, #0x18
cmp r5, r3
blo _021F518A
_021F51A8:
add r3, r3, #1
lsl r3, r3, #0x18
lsr r3, r3, #0x18
cmp r3, #4
blo _021F5184
mov r2, #0
add r1, sp, #0
_021F51B6:
ldrb r0, [r1, r2]
cmp r4, r0
bne _021F51C0
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021F51C0:
add r0, r2, #1
lsl r0, r0, #0x18
lsr r2, r0, #0x18
cmp r2, #4
blo _021F51B6
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021F51D0
MOD05_021F51D0: ; 0x021F51D0
push {r3, r4, r5, lr}
add r4, r0, #0
ldr r0, [r4, #0x1c]
ldr r0, [r0]
bl MOD05_021F50FC
add r5, r0, #0
cmp r5, #0x15
bne _021F51E6
bl ErrorHandling
_021F51E6:
ldr r0, [r4, #0xc]
bl FUN_0202A9B0
bl FUN_0202A9BC
add r1, r0, #0
add r0, r5, #0
bl FUN_0202A9C8
add r4, r0, #0
ldrb r1, [r4, #5]
mov r0, #0x6a
lsl r2, r1, #2
ldr r1, _021F5218 ; =0x021FC644
ldr r1, [r1, r2]
mov r2, #4
bl AllocAtEndAndReadWholeNarcMemberByIdPair
ldrb r1, [r4, #4]
lsl r1, r1, #2
ldr r4, [r0, r1]
bl FreeToHeap
add r0, r4, #0
pop {r3, r4, r5, pc}
.balign 4, 0
_021F5218: .word 0x021FC644
thumb_func_start MOD05_021F521C
MOD05_021F521C: ; 0x021F521C
push {r3, lr}
add r3, r1, #0
bmi _021F522A
add r1, r2, #0
add r2, r3, #0
bl MOD05_021F5068
_021F522A:
pop {r3, pc}
thumb_func_start MOD05_021F522C
MOD05_021F522C: ; 0x021F522C
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r0, [r5, #0x1c]
ldr r0, [r0]
bl MOD05_021F50FC
add r4, r0, #0
cmp r4, #0x15
bne _021F5242
bl ErrorHandling
_021F5242:
add r0, r5, #0
add r0, #0xa4
ldr r1, [r0]
lsl r0, r4, #3
mov r2, #0
add r0, r1, r0
str r2, [r0, #4]
ldr r0, [r5, #0xc]
bl FUN_0202A9B0
bl FUN_0202A9BC
add r1, r0, #0
add r0, r4, #0
bl FUN_0202A9C8
mov r1, #0
str r1, [r0]
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021F5268
MOD05_021F5268: ; 0x021F5268
push {r3, r4, r5, lr}
mov r5, #0
add r4, r0, #0
add r0, r1, #0
add r1, r2, #0
str r5, [sp]
add r2, r5, #0
bl FUN_02006C98
str r0, [r4]
bl FUN_020BC13C
str r0, [r4, #4]
ldrh r1, [r0, #0xe]
add r1, r0, r1
ldr r1, [r1, #0xc]
add r0, r0, r1
str r0, [r4, #8]
ldr r0, [r4]
bl FUN_020BC0FC
str r0, [r4, #0xc]
cmp r0, #0
beq _021F52A4
mov r2, #1
ldr r0, _021F52A8 ; =MOD05_021F52AC
add r1, r4, #0
lsl r2, r2, #0xa
bl FUN_0200CA98
_021F52A4:
pop {r3, r4, r5, pc}
nop
_021F52A8: .word MOD05_021F52AC
thumb_func_start MOD05_021F52AC
MOD05_021F52AC: ; 0x021F52AC
push {r3, r4, r5, lr}
add r4, r1, #0
add r5, r0, #0
ldr r0, [r4, #0xc]
bl FUN_0201B3C4
ldr r0, [r4]
ldr r1, [r4, #0xc]
bl FUN_0201B3A8
add r0, r5, #0
bl FUN_0200CAB4
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021F52C8
MOD05_021F52C8: ; 0x021F52C8
push {r4, lr}
sub sp, #8
add r4, r0, #0
ldr r0, [r4, #0xc]
cmp r0, #0
beq _021F52F8
add r1, sp, #4
add r2, sp, #0
bl FUN_020B7CF0
ldr r1, _021F5314 ; =UNK_021064BC
ldr r0, [sp, #4]
ldr r1, [r1]
blx r1
ldr r1, _021F5314 ; =UNK_021064BC
ldr r0, [sp]
ldr r1, [r1]
blx r1
ldr r0, [r4, #0xc]
bl FUN_020B7C58
ldr r1, _021F5318 ; =UNK_021064C4
ldr r1, [r1]
blx r1
_021F52F8:
ldr r0, [r4]
cmp r0, #0
beq _021F5302
bl FreeToHeap
_021F5302:
mov r1, #0x10
mov r0, #0
_021F5306:
strb r0, [r4]
add r4, r4, #1
sub r1, r1, #1
bne _021F5306
add sp, #8
pop {r4, pc}
nop
_021F5314: .word UNK_021064BC
_021F5318: .word UNK_021064C4
thumb_func_start MOD05_021F531C
MOD05_021F531C: ; 0x021F531C
push {r3, r4, r5, r6, lr}
sub sp, #4
add r4, r1, #0
mov r6, #0
add r1, r3, #0
add r5, r0, #0
add r0, r2, #0
ldr r3, [sp, #0x18]
add r2, r6, #0
str r6, [sp]
bl FUN_02006C98
add r2, r0, #0
ldr r3, [sp, #0x1c]
add r0, r5, #0
add r1, r4, #0
bl MOD05_021F54EC
add r0, r6, #0
str r0, [r5, #0x10]
add sp, #4
pop {r3, r4, r5, r6, pc}
thumb_func_start MOD05_021F5348
MOD05_021F5348: ; 0x021F5348
push {r4, lr}
add r4, r0, #0
bl MOD05_021F54EC
mov r0, #1
str r0, [r4, #0x10]
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021F5358
MOD05_021F5358: ; 0x021F5358
push {r4, lr}
add r4, r0, #0
ldr r0, [r4]
cmp r0, #0
beq _021F5376
add r0, r1, #0
ldr r1, [r4, #8]
bl thunk_FUN_020ae84c
ldr r0, [r4, #0x10]
cmp r0, #0
bne _021F5376
ldr r0, [r4]
bl FreeToHeap
_021F5376:
mov r1, #0x14
mov r0, #0
_021F537A:
strb r0, [r4]
add r4, r4, #1
sub r1, r1, #1
bne _021F537A
pop {r4, pc}
thumb_func_start MOD05_021F5384
MOD05_021F5384: ; 0x021F5384
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #8]
ldr r0, [r0, #8]
ldrh r0, [r0, #4]
lsl r2, r0, #0xc
cmp r1, #0
ble _021F53A2
ldr r0, [r4, #0xc]
add r0, r0, r1
add r1, r2, #0
bl _s32_div_f
str r1, [r4, #0xc]
b _021F53B4
_021F53A2:
ldr r0, [r4, #0xc]
add r3, r4, #0
add r3, #0xc
add r0, r0, r1
str r0, [r4, #0xc]
bpl _021F53B4
ldr r0, [r3]
add r0, r0, r2
str r0, [r3]
_021F53B4:
ldr r1, [r4, #0xc]
ldr r0, [r4, #8]
str r1, [r0]
pop {r4, pc}
thumb_func_start MOD05_021F53BC
MOD05_021F53BC: ; 0x021F53BC
push {r3, r4}
ldr r2, [r0, #8]
ldr r3, [r0, #0xc]
ldr r2, [r2, #8]
ldrh r2, [r2, #4]
lsl r4, r2, #0xc
mov r2, #0
cmp r1, #0
ble _021F53DE
add r1, r3, r1
cmp r1, r4
bge _021F53D8
str r1, [r0, #0xc]
b _021F53EA
_021F53D8:
str r4, [r0, #0xc]
mov r2, #1
b _021F53EA
_021F53DE:
add r1, r3, r1
bmi _021F53E6
str r1, [r0, #0xc]
b _021F53EA
_021F53E6:
str r2, [r0, #0xc]
mov r2, #1
_021F53EA:
ldr r1, [r0, #0xc]
ldr r0, [r0, #8]
str r1, [r0]
add r0, r2, #0
pop {r3, r4}
bx lr
.balign 4, 0
thumb_func_start MOD05_021F53F8
MOD05_021F53F8: ; 0x021F53F8
str r1, [r0, #0xc]
ldr r0, [r0, #8]
str r1, [r0]
bx lr
thumb_func_start MOD05_021F5400
MOD05_021F5400: ; 0x021F5400
push {r3, r4, r5, lr}
add r5, r1, #0
mov r1, #0
mov r2, #0x78
add r4, r0, #0
bl memset
ldr r1, [r5, #8]
add r0, r4, #0
bl FUN_020B80B4
mov r0, #1
str r0, [r4, #0x6c]
lsl r0, r0, #0xc
str r0, [r4, #0x60]
str r0, [r4, #0x64]
str r0, [r4, #0x68]
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021F5424
MOD05_021F5424: ; 0x021F5424
ldr r3, _021F542C ; =FUN_020B7EFC
ldr r1, [r1, #8]
bx r3
nop
_021F542C: .word FUN_020B7EFC
thumb_func_start MOD05_021F5430
MOD05_021F5430: ; 0x021F5430
push {r4, lr}
sub sp, #0x48
add r4, r0, #0
ldr r0, [r4, #0x6c]
cmp r0, #0
beq _021F54C4
add r0, sp, #0x24
bl MTX_Identity33_
add r0, r4, #0
add r0, #0x70
ldrh r0, [r0]
ldr r3, _021F54C8 ; =UNK_020FFA38
asr r0, r0, #4
lsl r2, r0, #1
lsl r1, r2, #1
add r2, r2, #1
lsl r2, r2, #1
ldrsh r1, [r3, r1]
ldrsh r2, [r3, r2]
add r0, sp, #0
bl MTX_RotX33_
add r1, sp, #0x24
add r0, sp, #0
add r2, r1, #0
bl MTX_Concat33
add r0, r4, #0
add r0, #0x74
ldrh r0, [r0]
ldr r3, _021F54C8 ; =UNK_020FFA38
asr r0, r0, #4
lsl r2, r0, #1
lsl r1, r2, #1
add r2, r2, #1
lsl r2, r2, #1
ldrsh r1, [r3, r1]
ldrsh r2, [r3, r2]
add r0, sp, #0
bl MTX_RotZ33_
add r1, sp, #0x24
add r0, sp, #0
add r2, r1, #0
bl MTX_Concat33
add r0, r4, #0
add r0, #0x72
ldrh r0, [r0]
ldr r3, _021F54C8 ; =UNK_020FFA38
asr r0, r0, #4
lsl r2, r0, #1
lsl r1, r2, #1
add r2, r2, #1
lsl r2, r2, #1
ldrsh r1, [r3, r1]
ldrsh r2, [r3, r2]
add r0, sp, #0
bl MTX_RotY33_
add r1, sp, #0x24
add r0, sp, #0
add r2, r1, #0
bl MTX_Concat33
add r1, r4, #0
add r0, r4, #0
add r4, #0x60
add r1, #0x54
add r2, sp, #0x24
add r3, r4, #0
bl FUN_0201B26C
_021F54C4:
add sp, #0x48
pop {r4, pc}
.balign 4, 0
_021F54C8: .word UNK_020FFA38
thumb_func_start MOD05_021F54CC
MOD05_021F54CC: ; 0x021F54CC
str r1, [r0, #0x6c]
bx lr
thumb_func_start MOD05_021F54D0
MOD05_021F54D0: ; 0x021F54D0
str r1, [r0, #0x54]
str r2, [r0, #0x58]
str r3, [r0, #0x5c]
bx lr
thumb_func_start MOD05_021F54D8
MOD05_021F54D8: ; 0x021F54D8
str r1, [r0, #0x60]
str r2, [r0, #0x64]
str r3, [r0, #0x68]
bx lr
thumb_func_start MOD05_021F54E0
MOD05_021F54E0: ; 0x021F54E0
lsl r2, r2, #1
add r0, r0, r2
add r0, #0x70
strh r1, [r0]
bx lr
.balign 4, 0
thumb_func_start MOD05_021F54EC
MOD05_021F54EC: ; 0x021F54EC
push {r4, r5, r6, lr}
add r5, r0, #0
add r4, r1, #0
str r2, [r5]
add r0, r2, #0
mov r1, #0
add r6, r3, #0
bl FUN_020BC4C8
str r0, [r5, #4]
ldr r1, [r5, #4]
ldr r2, [r4, #8]
add r0, r6, #0
bl FUN_020BB8D0
str r0, [r5, #8]
ldr r1, [r5, #4]
ldr r2, [r4, #8]
ldr r3, [r4, #0xc]
bl FUN_020B8110
pop {r4, r5, r6, pc}
thumb_func_start MOD05_021F5518
MOD05_021F5518: ; 0x021F5518
push {r3, r4, lr}
sub sp, #4
ldr r0, [r1, #8]
add r4, r2, #0
bl MOD05_021F5608
add r0, r4, #0
mov r1, #0
mov r2, #0xa
mov r3, #0x13
bl MOD05_021F5660
mov r3, #0
str r3, [r4, #0x14]
mov r0, #0x10
str r0, [sp]
ldr r0, _021F555C ; =0x04000050
mov r1, #4
mov r2, #0x29
bl G2x_SetBlendAlpha_
mov r0, #2
mov r1, #0
bl FUN_020178BC
mov r0, #4
mov r1, #1
bl FUN_0201E6E4
ldr r0, _021F5560 ; =0x00000648
bl FUN_020054C8
add sp, #4
pop {r3, r4, pc}
.balign 4, 0
_021F555C: .word 0x04000050
_021F5560: .word 0x00000648
thumb_func_start MOD05_021F5564
MOD05_021F5564: ; 0x021F5564
push {r3, r4, lr}
sub sp, #4
ldr r0, [r1, #8]
add r4, r2, #0
bl MOD05_021F5608
add r0, r4, #0
mov r1, #0xa
mov r2, #0
mov r3, #0xf
bl MOD05_021F5660
mov r0, #0
str r0, [r4, #0x14]
mov r0, #6
str r0, [sp]
ldr r0, _021F5594 ; =0x04000050
mov r1, #4
mov r2, #0x21
mov r3, #0xa
bl G2x_SetBlendAlpha_
add sp, #4
pop {r3, r4, pc}
.balign 4, 0
_021F5594: .word 0x04000050
thumb_func_start MOD05_021F5598
MOD05_021F5598: ; 0x021F5598
bx lr
.balign 4, 0
thumb_func_start MOD05_021F559C
MOD05_021F559C: ; 0x021F559C
push {r4, lr}
add r4, r2, #0
ldr r0, [r4, #0x14]
cmp r0, #1
beq _021F55C2
add r0, r4, #0
bl MOD05_021F5670
cmp r0, #0
beq _021F55B4
mov r0, #1
str r0, [r4, #0x14]
_021F55B4:
ldr r1, [r4]
mov r0, #0x10
sub r0, r0, r1
lsl r0, r0, #8
orr r1, r0
ldr r0, _021F55C4 ; =0x04000052
strh r1, [r0]
_021F55C2:
pop {r4, pc}
.balign 4, 0
_021F55C4: .word 0x04000052
thumb_func_start MOD05_021F55C8
MOD05_021F55C8: ; 0x021F55C8
bx lr
.balign 4, 0
thumb_func_start MOD05_021F55CC
MOD05_021F55CC: ; 0x021F55CC
ldr r0, [r0, #4]
ldr r3, _021F55D8 ; =MOD05_021D8024
ldr r0, [r0, #4]
ldr r1, _021F55DC ; =0x021FC6C0
bx r3
nop
_021F55D8: .word MOD05_021D8024
_021F55DC: .word 0x021FC6C0
thumb_func_start MOD05_021F55E0
MOD05_021F55E0: ; 0x021F55E0
ldr r3, _021F55E4 ; =MOD05_021D80A4
bx r3
.balign 4, 0
_021F55E4: .word MOD05_021D80A4
thumb_func_start MOD05_021F55E8
MOD05_021F55E8: ; 0x021F55E8
push {r3, lr}
bl MOD05_021D80E4
ldr r0, [r0, #0x14]
pop {r3, pc}
.balign 4, 0
thumb_func_start MOD05_021F55F4
MOD05_021F55F4: ; 0x021F55F4
ldr r0, [r0, #4]
ldr r3, _021F5600 ; =MOD05_021D8024
ldr r0, [r0, #4]
ldr r1, _021F5604 ; =0x021FC6A8
bx r3
nop
_021F5600: .word MOD05_021D8024
_021F5604: .word 0x021FC6A8
thumb_func_start MOD05_021F5608
MOD05_021F5608: ; 0x021F5608
push {r3, r4, r5, lr}
sub sp, #8
ldr r1, _021F5658 ; =0x00005D5F
add r5, r0, #0
add r0, sp, #4
strh r1, [r0]
mov r0, #2
add r1, sp, #4
add r2, r0, #0
mov r3, #0xc2
bl FUN_02017FB4
mov r0, #4
mov r1, #0x20
bl AllocFromHeap
mov r1, #0x11
mov r2, #0x20
add r4, r0, #0
bl memset
mov r0, #1
str r0, [sp]
add r0, r5, #0
mov r1, #2
add r2, r4, #0
mov r3, #0x20
bl FUN_02017E14
add r0, r4, #0
bl FreeToHeap
ldr r2, _021F565C ; =0x00006001
add r0, r5, #0
mov r1, #2
bl FUN_02018768
add sp, #8
pop {r3, r4, r5, pc}
nop
_021F5658: .word 0x00005D5F
_021F565C: .word 0x00006001
thumb_func_start MOD05_021F5660
MOD05_021F5660: ; 0x021F5660
str r1, [r0]
str r1, [r0, #4]
sub r1, r2, r1
str r1, [r0, #8]
str r3, [r0, #0x10]
mov r1, #0
str r1, [r0, #0xc]
bx lr
thumb_func_start MOD05_021F5670
MOD05_021F5670: ; 0x021F5670
push {r4, lr}
add r4, r0, #0
ldr r1, [r4, #8]
ldr r0, [r4, #0xc]
mul r0, r1
ldr r1, [r4, #0x10]
bl _s32_div_f
ldr r1, [r4, #4]
add r0, r0, r1
str r0, [r4]
ldr r0, [r4, #0xc]
ldr r1, [r4, #0x10]
add r0, r0, #1
cmp r0, r1
bgt _021F5696
str r0, [r4, #0xc]
mov r0, #0
pop {r4, pc}
_021F5696:
str r1, [r4, #0xc]
mov r0, #1
pop {r4, pc}
thumb_func_start MOD05_021F569C
MOD05_021F569C: ; 0x021F569C
ldr r3, _021F56A4 ; =FUN_02017FE4
mov r0, #2
mov r1, #0
bx r3
.balign 4, 0
_021F56A4: .word FUN_02017FE4
thumb_func_start MOD05_021F56A8
MOD05_021F56A8: ; 0x021F56A8
ldr r3, _021F56B0 ; =FUN_02017FE4
mov r0, #2
ldr r1, _021F56B4 ; =0x00007FFF
bx r3
.balign 4, 0
_021F56B0: .word FUN_02017FE4
_021F56B4: .word 0x00007FFF
thumb_func_start MOD05_021F56B8
MOD05_021F56B8: ; 0x021F56B8
push {r4, lr}
sub sp, #8
ldr r1, _021F5710 ; =0x00007FFF
add r4, r0, #0
add r0, sp, #4
strh r1, [r0]
mov r0, #4
mov r1, #0
bl FUN_0201E6E4
ldr r1, _021F5714 ; =0x0400000C
mov r0, #3
ldrh r2, [r1]
mov r3, #0xc4
bic r2, r0
mov r0, #3
orr r0, r2
strh r0, [r1]
mov r0, #2
add r1, sp, #4
add r2, r0, #0
bl FUN_02017FB4
mov r1, #2
str r1, [sp]
ldr r0, [r4, #8]
add r2, r1, #0
mov r3, #1
bl FUN_02017F48
ldr r0, [r4, #8]
ldr r2, _021F5718 ; =0x00006002
mov r1, #2
bl FUN_02018768
mov r0, #4
mov r1, #1
bl FUN_0201E6E4
add r0, r4, #0
bl MOD05_021F569C
add sp, #8
pop {r4, pc}
.balign 4, 0
_021F5710: .word 0x00007FFF
_021F5714: .word 0x0400000C
_021F5718: .word 0x00006002
thumb_func_start MOD05_021F571C
MOD05_021F571C: ; 0x021F571C
push {r4, lr}
sub sp, #8
ldr r1, _021F5774 ; =0x00007FFF
add r4, r0, #0
add r0, sp, #4
strh r1, [r0]
mov r0, #8
mov r1, #0
bl FUN_0201E6E4
ldr r1, _021F5778 ; =0x0400000E
mov r0, #3
ldrh r2, [r1]
mov r3, #0xc4
bic r2, r0
mov r0, #3
orr r2, r0
strh r2, [r1]
add r1, sp, #4
mov r2, #2
bl FUN_02017FB4
mov r2, #2
str r2, [sp]
ldr r0, [r4, #8]
mov r1, #3
mov r3, #1
bl FUN_02017F48
ldr r0, [r4, #8]
ldr r2, _021F577C ; =0x00006002
mov r1, #3
bl FUN_02018768
mov r0, #8
mov r1, #1
bl FUN_0201E6E4
add r0, r4, #0
bl MOD05_021F569C
add sp, #8
pop {r4, pc}
nop
_021F5774: .word 0x00007FFF
_021F5778: .word 0x0400000E
_021F577C: .word 0x00006002
thumb_func_start MOD05_021F5780
MOD05_021F5780: ; 0x021F5780
push {r3, lr}
ldr r0, [r0, #4]
ldr r0, [r0, #0xc]
bl MOD05_021DC1D0
ldr r3, _021F57A4 ; =0x021FC6A4
mov r2, #0
_021F578E:
ldr r1, [r3]
cmp r0, r1
bne _021F5798
mov r0, #1
pop {r3, pc}
_021F5798:
add r2, r2, #1
add r3, r3, #4
cmp r2, #1
blt _021F578E
mov r0, #0
pop {r3, pc}
.balign 4, 0
_021F57A4: .word 0x021FC6A4
thumb_func_start MOD05_021F57A8
MOD05_021F57A8: ; 0x021F57A8
push {r3, lr}
ldr r0, [r0, #4]
ldr r0, [r0, #0xc]
bl MOD05_021DC1D0
ldr r3, _021F57CC ; =0x021FC6D8
mov r2, #0
_021F57B6:
ldr r1, [r3]
cmp r0, r1
bne _021F57C0
mov r0, #0
pop {r3, pc}
_021F57C0:
add r2, r2, #1
add r3, r3, #4
cmp r2, #0x10
blt _021F57B6
mov r0, #1
pop {r3, pc}
.balign 4, 0
_021F57CC: .word 0x021FC6D8
thumb_func_start MOD05_021F57D0
MOD05_021F57D0: ; 0x021F57D0
push {r4, lr}
add r4, r0, #0
ldr r0, [r4]
cmp r0, #0
beq _021F57E2
bl MOD05_021F55E0
mov r0, #0
str r0, [r4]
_021F57E2:
add r0, r4, #0
bl FreeToHeap
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021F57EC
MOD05_021F57EC: ; 0x021F57EC
mov r0, #0xc
bx lr
thumb_func_start MOD05_021F57F0
MOD05_021F57F0: ; 0x021F57F0
push {r4, r5, r6, lr}
add r6, r0, #0
bl FUN_02046528
add r5, r0, #0
add r0, r6, #0
bl FUN_0204652C
add r4, r0, #0
ldrh r1, [r4, #8]
cmp r1, #9
bls _021F580A
b _021F597C
_021F580A:
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021F5816: ; jump table
.short _021F582A - _021F5816 - 2 ; case 0
.short _021F5856 - _021F5816 - 2 ; case 1
.short _021F5872 - _021F5816 - 2 ; case 2
.short _021F5888 - _021F5816 - 2 ; case 3
.short _021F58DA - _021F5816 - 2 ; case 4
.short _021F58EE - _021F5816 - 2 ; case 5
.short _021F5914 - _021F5816 - 2 ; case 6
.short _021F5936 - _021F5816 - 2 ; case 7
.short _021F5956 - _021F5816 - 2 ; case 8
.short _021F5968 - _021F5816 - 2 ; case 9
_021F582A:
add r0, r5, #0
bl MOD05_021F57A8
cmp r0, #1
bne _021F584C
mov r0, #1
strh r0, [r4, #8]
add r0, r5, #0
bl MOD05_021F5780
str r0, [r4, #4]
cmp r0, #0
beq _021F587C
add r0, r5, #0
bl MOD05_021F56A8
b _021F5980
_021F584C:
mov r0, #7
strh r0, [r4, #8]
mov r0, #0x14
strh r0, [r4, #0xa]
b _021F5980
_021F5856:
add r0, r5, #0
bl MOD05_021F55CC
str r0, [r4]
mov r0, #2
mov r1, #0
strh r0, [r4, #8]
bl FUN_020178BC
mov r0, #4
mov r1, #1
bl FUN_0201E6E4
b _021F5980
_021F5872:
ldr r0, [r4]
bl MOD05_021F55E8
cmp r0, #0
bne _021F587E
_021F587C:
b _021F5980
_021F587E:
mov r0, #0x16
strh r0, [r4, #0xa]
mov r0, #3
strh r0, [r4, #8]
b _021F5980
_021F5888:
mov r0, #0xa
ldrsh r0, [r4, r0]
sub r0, r0, #1
strh r0, [r4, #0xa]
ldr r0, [r5, #0x1c]
ldr r0, [r0]
bl FUN_020347D8
cmp r0, #0
beq _021F58D4
mov r0, #0xa
ldrsh r0, [r4, r0]
cmp r0, #0
bge _021F5980
ldr r0, [r5, #0x38]
bl FUN_02055320
add r6, r0, #0
ldr r0, [r5, #0x38]
bl FUN_0205532C
add r2, r0, #0
add r0, r5, #0
add r1, r6, #0
bl FUN_0204A6E0
add r1, r0, #0
add r0, r5, #0
bl MOD06_0223CDB8
cmp r0, #0
beq _021F58CE
mov r0, #6
strh r0, [r4, #8]
b _021F5980
_021F58CE:
mov r0, #4
strh r0, [r4, #8]
b _021F5980
_021F58D4:
mov r0, #4
strh r0, [r4, #8]
b _021F5980
_021F58DA:
ldr r0, [r4]
bl MOD05_021F55E0
add r0, r5, #0
bl MOD05_021F55F4
str r0, [r4]
mov r0, #5
strh r0, [r4, #8]
b _021F5980
_021F58EE:
ldr r0, [r4]
bl MOD05_021F55E8
cmp r0, #0
beq _021F5980
mov r0, #4
mov r1, #0
bl FUN_0201E6E4
ldr r0, _021F5984 ; =0x04000050
mov r1, #0
strh r1, [r0]
mov r0, #2
mov r1, #3
bl FUN_020178BC
mov r0, #8
strh r0, [r4, #8]
b _021F5980
_021F5914:
bl MOD05_021F57D0
ldr r0, [r4, #4]
cmp r0, #0
beq _021F5924
add r0, r5, #0
bl MOD05_021F571C
_021F5924:
add r0, r5, #0
add r1, r6, #0
bl MOD06_0223BE70
cmp r0, #0
bne _021F5980
bl ErrorHandling
b _021F5980
_021F5936:
mov r0, #0xa
ldrsh r1, [r4, r0]
sub r1, r1, #1
strh r1, [r4, #0xa]
ldrsh r0, [r4, r0]
cmp r0, #0
bge _021F5980
mov r2, #0
ldr r1, _021F5988 ; =0x000007ED
add r0, r6, #0
add r3, r2, #0
bl FUN_02038CD8
mov r0, #9
strh r0, [r4, #8]
b _021F5980
_021F5956:
mov r2, #0
ldr r1, _021F598C ; =0x000007EC
add r0, r6, #0
add r3, r2, #0
bl FUN_02038CD8
mov r0, #9
strh r0, [r4, #8]
b _021F5980
_021F5968:
bl MOD05_021F57D0
ldr r0, [r4, #4]
cmp r0, #0
beq _021F5978
add r0, r5, #0
bl MOD05_021F56B8
_021F5978:
mov r0, #1
pop {r4, r5, r6, pc}
_021F597C:
bl ErrorHandling
_021F5980:
mov r0, #0
pop {r4, r5, r6, pc}
.balign 4, 0
_021F5984: .word 0x04000050
_021F5988: .word 0x000007ED
_021F598C: .word 0x000007EC
thumb_func_start MOD05_021F5990
MOD05_021F5990: ; 0x021F5990
push {r4, r5, r6, r7, lr}
sub sp, #0xc
add r5, r2, #0
lsl r2, r3, #3
add r6, r5, r2
add r6, #0x18
str r2, [sp, #8]
add r2, r6, #0
str r0, [sp]
add r7, r1, #0
str r3, [sp, #4]
bl FUN_0201681C
cmp r0, #1
beq _021F59B2
bl ErrorHandling
_021F59B2:
sub r5, r6, r5
add r0, r7, #0
add r1, r5, #0
bl AllocFromHeap
add r4, r0, #0
bne _021F59C4
bl ErrorHandling
_021F59C4:
add r0, r4, #0
mov r1, #0
add r2, r5, #0
bl memset
ldr r0, [sp]
str r0, [r4]
ldr r0, [sp, #4]
str r7, [r4, #4]
str r0, [r4, #8]
ldr r0, [sp, #8]
str r6, [r4, #0xc]
str r0, [r4, #0x10]
add r0, r4, #0
add r0, #0x18
str r0, [r4, #0x14]
add r0, r4, #0
add sp, #0xc
pop {r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021F59EC
MOD05_021F59EC: ; 0x021F59EC
push {r4, r5, r6, lr}
add r6, r0, #0
ldr r4, [r6, #8]
ldr r5, [r6, #0x14]
cmp r4, #0
beq _021F5A0E
_021F59F8:
ldr r0, [r5]
cmp r0, #0
beq _021F5A06
ldr r1, [r5, #4]
add r0, r6, #0
bl MOD05_021F5A74
_021F5A06:
sub r4, r4, #1
add r5, #8
cmp r4, #0
bne _021F59F8
_021F5A0E:
ldr r4, [r6, #4]
add r0, r6, #0
bl FreeToHeap
add r0, r4, #0
bl FUN_020168D0
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_start MOD05_021F5A20
MOD05_021F5A20: ; 0x021F5A20
ldr r3, _021F5A24 ; =MOD05_021F5B14
bx r3
.balign 4, 0
_021F5A24: .word MOD05_021F5B14
thumb_func_start MOD05_021F5A28
MOD05_021F5A28: ; 0x021F5A28
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r4, r1, #0
add r6, r2, #0
add r7, r3, #0
bl MOD05_021F5B5C
str r0, [sp]
cmp r0, #0
bne _021F5A40
bl ErrorHandling
_021F5A40:
add r0, r5, #0
add r1, r6, #0
add r2, r7, #0
bl MOD05_021F5B14
add r5, r0, #0
ldr r0, [sp]
add r1, r4, #0
add r2, r5, #0
bl MOD05_021F5B8C
add r0, r5, #0
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021F5A5C
MOD05_021F5A5C: ; 0x021F5A5C
push {r4, lr}
add r4, r1, #0
bl MOD05_021F5B74
cmp r0, #0
beq _021F5A6C
bl MOD05_021F5B94
_021F5A6C:
add r0, r4, #0
bl MOD05_021F5B34
pop {r4, pc}
thumb_func_start MOD05_021F5A74
MOD05_021F5A74: ; 0x021F5A74
push {r4, lr}
bl MOD05_021F5B3C
add r4, r0, #0
bne _021F5A82
bl ErrorHandling
_021F5A82:
ldr r0, [r4]
bl MOD05_021F5B34
add r0, r4, #0
bl MOD05_021F5B94
pop {r4, pc}
thumb_func_start MOD05_021F5A90
MOD05_021F5A90: ; 0x021F5A90
push {r4, lr}
bl MOD05_021F5B3C
add r4, r0, #0
bne _021F5A9E
bl ErrorHandling
_021F5A9E:
ldr r0, [r4]
pop {r4, pc}
.balign 4, 0
thumb_func_start MOD05_021F5AA4
MOD05_021F5AA4: ; 0x021F5AA4
push {r3, lr}
bl MOD05_021F5B3C
cmp r0, #0
beq _021F5AB2
mov r0, #1
pop {r3, pc}
_021F5AB2:
mov r0, #0
pop {r3, pc}
.balign 4, 0
thumb_func_start MOD05_021F5AB8
MOD05_021F5AB8: ; 0x021F5AB8
push {r3, r4, r5, r6, r7, lr}
add r5, r1, #0
add r4, r2, #0
add r6, r0, #0
add r7, r3, #0
add r0, r5, #0
add r1, r4, #0
bl NARC_GetMemberSize
add r1, r0, #0
add r0, r6, #0
add r2, r7, #0
bl MOD05_021F5A20
add r6, r0, #0
add r0, r5, #0
add r1, r4, #0
add r2, r6, #0
bl NARC_ReadWholeMember
add r0, r6, #0
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD05_021F5AE4
MOD05_021F5AE4: ; 0x021F5AE4
push {r3, r4, r5, r6, r7, lr}
add r4, r2, #0
add r5, r0, #0
add r7, r3, #0
add r6, r1, #0
add r0, r4, #0
add r1, r7, #0
bl NARC_GetMemberSize
add r2, r0, #0
ldr r3, [sp, #0x18]
add r0, r5, #0
add r1, r6, #0
bl MOD05_021F5A28
add r5, r0, #0
add r0, r4, #0
add r1, r7, #0
add r2, r5, #0
bl NARC_ReadWholeMember
add r0, r5, #0
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_start MOD05_021F5B14
MOD05_021F5B14: ; 0x021F5B14
push {r4, lr}
cmp r2, #0
ldr r0, [r0, #4]
bne _021F5B22
bl AllocFromHeap
b _021F5B26
_021F5B22:
bl AllocFromHeapAtEnd
_021F5B26:
add r4, r0, #0
cmp r4, #0
bne _021F5B30
bl ErrorHandling
_021F5B30:
add r0, r4, #0
pop {r4, pc}
thumb_func_start MOD05_021F5B34
MOD05_021F5B34: ; 0x021F5B34
ldr r3, _021F5B38 ; =FreeToHeap
bx r3
.balign 4, 0
_021F5B38: .word FreeToHeap
thumb_func_start MOD05_021F5B3C
MOD05_021F5B3C: ; 0x021F5B3C
ldr r3, [r0, #8]
ldr r0, [r0, #0x14]
cmp r3, #0
beq _021F5B56
_021F5B44:
ldr r2, [r0]
cmp r2, #0
beq _021F5B50
ldr r2, [r0, #4]
cmp r2, r1
beq _021F5B58
_021F5B50:
add r0, #8
sub r3, r3, #1
bne _021F5B44
_021F5B56:
mov r0, #0
_021F5B58:
bx lr
.balign 4, 0
thumb_func_start MOD05_021F5B5C
MOD05_021F5B5C: ; 0x021F5B5C
ldr r2, [r0, #8]
ldr r0, [r0, #0x14]
cmp r2, #0
beq _021F5B70
_021F5B64:
ldr r1, [r0]
cmp r1, #0
beq _021F5B72
add r0, #8
sub r2, r2, #1
bne _021F5B64
_021F5B70:
mov r0, #0
_021F5B72:
bx lr
thumb_func_start MOD05_021F5B74
MOD05_021F5B74: ; 0x021F5B74
ldr r3, [r0, #8]
ldr r0, [r0, #0x14]
cmp r3, #0
beq _021F5B88
_021F5B7C:
ldr r2, [r0]
cmp r2, r1
beq _021F5B8A
add r0, #8
sub r3, r3, #1
bne _021F5B7C
_021F5B88:
mov r0, #0
_021F5B8A:
bx lr
thumb_func_start MOD05_021F5B8C
MOD05_021F5B8C: ; 0x021F5B8C
str r2, [r0]
str r1, [r0, #4]
bx lr
.balign 4, 0
thumb_func_start MOD05_021F5B94
MOD05_021F5B94: ; 0x021F5B94
mov r1, #0
str r1, [r0]
str r1, [r0, #4]
bx lr
thumb_func_start MOD05_021F5B9C
MOD05_021F5B9C: ; 0x021F5B9C
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x28
add r5, r0, #0
ldr r0, [r5, #0xc]
bl FUN_02050DF0
add r7, r0, #0
beq _021F5C40
bl MOD18_0223E2C4
add r6, r0, #0
bl MOD18_0223E2DC
lsl r1, r6, #0x15
lsl r0, r0, #0x15
mov r4, #0
str r1, [sp, #0xc]
str r0, [sp, #8]
_021F5BC0:
add r0, r7, #0
add r1, r4, #0
bl FUN_020267C4
add r6, r0, #0
bl FUN_0204CA80
str r0, [sp, #0x10]
add r0, r6, #0
bl FUN_0204CA90
str r0, [sp, #0x14]
cmp r6, #0
beq _021F5C3A
add r0, r7, #0
add r1, r4, #0
bl FUN_02026810
str r0, [sp, #0x18]
add r0, r7, #0
add r1, r4, #0
bl FUN_02026840
mov r2, #1
ldr r1, [sp, #0x18]
lsl r2, r2, #0xc
str r2, [sp, #0x20]
lsl r1, r1, #0x10
lsl r0, r0, #0x10
ldr r2, [sp, #0xc]
str r1, [sp, #0x1c]
add r1, r1, r2
ldr r2, [sp, #8]
str r0, [sp, #0x24]
add r0, r0, r2
ldr r2, [sp, #0x10]
str r1, [sp, #0x1c]
lsl r2, r2, #0xf
add r1, r1, r2
str r1, [sp, #0x1c]
ldr r1, [sp, #0x14]
str r0, [sp, #0x24]
lsl r1, r1, #0xf
add r0, r0, r1
str r0, [sp, #0x24]
ldr r0, [r5, #0x2c]
add r1, r6, #0
bl MOD05_021F4CD4
add r2, r0, #0
mov r0, #0
str r0, [sp]
ldr r0, [r5, #0x4c]
add r3, sp, #0x1c
str r0, [sp, #4]
add r0, r5, #0
add r0, #0xa0
ldr r0, [r0]
ldr r1, [r5, #0x2c]
bl MOD05_021E7FBC
_021F5C3A:
add r4, r4, #1
cmp r4, #0x20
blt _021F5BC0
_021F5C40:
add sp, #0x28
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD05_021F5C44
MOD05_021F5C44: ; 0x021F5C44
push {r3, r4, r5, lr}
add r0, r1, #0
mov r1, #0x18
add r5, r2, #0
bl AllocFromHeapAtEnd
add r4, r0, #0
add r2, r4, #0
mov r1, #0x18
mov r0, #0
_021F5C58:
strb r0, [r2]
add r2, r2, #1
sub r1, r1, #1
bne _021F5C58
add r0, r5, #0
str r5, [r4, #0xc]
bl MOD05_021F61B0
str r0, [r4, #4]
add r0, r4, #0
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_start MOD05_021F5C70
MOD05_021F5C70: ; 0x021F5C70
push {r3, r4, r5, r6, r7, lr}
add r6, r0, #0
bl FUN_02046528
add r4, r0, #0
add r0, r6, #0
bl FUN_0204652C
add r5, r0, #0
ldr r0, [r5]
cmp r0, #0
beq _021F5C8E
cmp r0, #1
beq _021F5CBA
b _021F5D28
_021F5C8E:
ldr r0, [r4, #0x34]
bl FUN_02058780
mov r0, #0
str r0, [r5, #0x10]
add r2, r5, #0
ldr r1, [r5, #0xc]
add r0, r4, #0
add r2, #0x10
bl MOD06_0223BD14
str r0, [r5, #8]
ldr r1, [r5, #0xc]
ldr r2, [r5, #8]
add r0, r4, #0
bl MOD05_021F5D2C
str r0, [r5, #0x14]
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021F5D28
_021F5CBA:
ldr r0, [r5, #0x14]
bl MOD05_021F5D50
cmp r0, #1
bne _021F5D28
ldr r0, [r5, #0x14]
bl MOD05_021F5D5C
add r7, r0, #0
ldr r0, [r5, #0x14]
bl MOD05_021F5D68
cmp r7, #1
ldr r0, [r5, #0x10]
bne _021F5D10
ldr r0, [r0, #8]
mov r1, #0
bl FUN_0206B9B0
ldr r2, [r5, #4]
add r3, r0, #0
lsl r2, r2, #0x10
add r0, r4, #0
mov r1, #1
lsr r2, r2, #0x10
bl FUN_02061208
ldr r0, [r4, #0xc]
bl FUN_02029FC8
mov r1, #0xa
bl FUN_0202A0E8
ldr r2, [r5, #0x10]
add r0, r4, #0
add r1, r6, #0
bl FUN_02046A20
add r0, r5, #0
bl FreeToHeap
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
_021F5D10:
cmp r0, #0
beq _021F5D18
bl FUN_02047964
_021F5D18:
ldr r0, [r4, #0x34]
bl FUN_020587B0
add r0, r5, #0
bl FreeToHeap
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021F5D28:
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD05_021F5D2C
MOD05_021F5D2C: ; 0x021F5D2C
push {r4, r5, r6, lr}
add r5, r0, #0
mov r0, #0x4c
add r4, r1, #0
add r6, r2, #0
bl MOD05_021F6074
add r1, r0, #0
str r5, [r1, #0x20]
str r4, [r1, #0x1c]
ldr r0, _021F5D4C ; =MOD05_021F5D7C
mov r2, #0x80
str r6, [r1]
bl FUN_0200CA44
pop {r4, r5, r6, pc}
.align 2, 0
_021F5D4C: .word MOD05_021F5D7C
thumb_func_start MOD05_021F5D50
MOD05_021F5D50: ; 0x021F5D50
push {r3, lr}
bl FUN_0201B6C8
ldr r0, [r0, #4]
pop {r3, pc}
.align 2, 0
thumb_func_start MOD05_021F5D5C
MOD05_021F5D5C: ; 0x021F5D5C
push {r3, lr}
bl FUN_0201B6C8
ldr r0, [r0, #8]
pop {r3, pc}
.align 2, 0
thumb_func_start MOD05_021F5D68
MOD05_021F5D68: ; 0x021F5D68
push {r4, lr}
add r4, r0, #0
bl FUN_0201B6C8
bl FreeToHeap
add r0, r4, #0
bl FUN_0200CAB4
pop {r4, pc}
thumb_func_start MOD05_021F5D7C
MOD05_021F5D7C: ; 0x021F5D7C
push {r3, r4, r5, r6, r7, lr}
add r5, r1, #0
ldr r0, [r5, #0x20]
ldr r6, [r0, #0x38]
add r0, r6, #0
bl FUN_020553A0
ldr r7, _021F5DA4 ; =0x021FC9B8
add r4, r0, #0
_021F5D8E:
ldr r3, [r5, #0xc]
add r0, r5, #0
lsl r3, r3, #2
ldr r3, [r7, r3]
add r1, r6, #0
add r2, r4, #0
blx r3
cmp r0, #0
bne _021F5D8E
pop {r3, r4, r5, r6, r7, pc}
nop
_021F5DA4: .word 0x021FC9B8
thumb_func_start MOD05_021F5DA8
MOD05_021F5DA8: ; 0x021F5DA8
push {r3, r4, r5, lr}
add r4, r2, #0
add r5, r0, #0
bl MOD05_021F60C4
add r0, r4, #0
bl FUN_02058914
mov r0, #1
str r0, [r5, #0xc]
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_start MOD05_021F5DC0
MOD05_021F5DC0: ; 0x021F5DC0
push {r4, r5, r6, lr}
add r6, r2, #0
add r5, r0, #0
add r0, r6, #0
add r4, r1, #0
bl FUN_0205AD98
cmp r0, #1
bne _021F5DF2
add r0, r6, #0
bl FUN_0205AE50
add r0, r4, #0
mov r1, #0x20
bl MOD05_021E5FD8
add r0, r4, #0
bl MOD05_021E5FE0
add r0, r6, #0
mov r1, #1
bl FUN_02058544
mov r0, #2
str r0, [r5, #0xc]
_021F5DF2:
mov r0, #0
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start MOD05_021F5DF8
MOD05_021F5DF8: ; 0x021F5DF8
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0x10]
add r0, r0, #1
str r0, [r4, #0x10]
cmp r0, #0xa
bne _021F5E0E
mov r0, #0x65
lsl r0, r0, #4
bl FUN_020054C8
_021F5E0E:
ldr r0, [r4, #0x10]
cmp r0, #0x22
bge _021F5E18
mov r0, #0
pop {r4, pc}
_021F5E18:
ldr r0, [r4]
cmp r0, #1
bne _021F5E22
mov r0, #3
b _021F5E24
_021F5E22:
mov r0, #0xc
_021F5E24:
str r0, [r4, #0xc]
mov r0, #0
str r0, [r4, #0x10]
mov r0, #1
pop {r4, pc}
.align 2, 0
thumb_func_start MOD05_021F5E30
MOD05_021F5E30: ; 0x021F5E30
push {r4, lr}
add r4, r0, #0
bl rand_LC
lsr r1, r0, #0x1f
lsl r0, r0, #0x1e
sub r0, r0, r1
mov r2, #0x1e
ror r0, r2
add r0, r1, r0
add r0, r0, #1
add r1, r0, #0
mul r1, r2
str r1, [r4, #0x14]
ldr r0, [r4, #0x1c]
lsl r1, r0, #2
ldr r0, _021F5E60 ; =0x021FC9AC
ldr r0, [r0, r1]
str r0, [r4, #0x18]
mov r0, #4
str r0, [r4, #0xc]
mov r0, #1
pop {r4, pc}
nop
_021F5E60: .word 0x021FC9AC
thumb_func_start MOD05_021F5E64
MOD05_021F5E64: ; 0x021F5E64
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r0, [r5, #0x14]
add r4, r2, #0
sub r0, r0, #1
str r0, [r5, #0x14]
bl MOD05_021F6098
cmp r0, #1
bne _021F5E80
mov r0, #0xa
str r0, [r5, #0xc]
mov r0, #1
pop {r3, r4, r5, pc}
_021F5E80:
ldr r0, [r5, #0x14]
cmp r0, #0
ble _021F5E8A
mov r0, #0
pop {r3, r4, r5, pc}
_021F5E8A:
add r0, r4, #0
mov r1, #2
bl FUN_02058544
add r0, r4, #0
mov r1, #0
mov r2, #1
bl MOD05_021E7AC0
str r0, [r5, #0x24]
mov r0, #5
str r0, [r5, #0xc]
mov r0, #1
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_start MOD05_021F5EA8
MOD05_021F5EA8: ; 0x021F5EA8
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0x18]
sub r0, r0, #1
str r0, [r4, #0x18]
bl MOD05_021F6098
cmp r0, #1
bne _021F5EC2
mov r0, #6
str r0, [r4, #0xc]
mov r0, #1
pop {r4, pc}
_021F5EC2:
ldr r0, [r4, #0x18]
cmp r0, #0
ble _021F5ECC
mov r0, #0
pop {r4, pc}
_021F5ECC:
mov r0, #0xb
str r0, [r4, #0xc]
mov r0, #0
pop {r4, pc}
thumb_func_start MOD05_021F5ED4
MOD05_021F5ED4: ; 0x021F5ED4
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r0, [r5, #0x24]
add r4, r2, #0
bl FUN_02064520
mov r0, #0
str r0, [r5, #0x24]
add r0, r4, #0
mov r1, #3
bl FUN_02058544
mov r0, #0
str r0, [r5, #0x10]
mov r1, #7
str r1, [r5, #0xc]
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_start MOD05_021F5EF8
MOD05_021F5EF8: ; 0x021F5EF8
push {r3, lr}
ldr r1, [r0, #0x10]
add r1, r1, #1
str r1, [r0, #0x10]
cmp r1, #0xf
ble _021F5F12
mov r1, #0
str r1, [r0, #0x10]
mov r1, #8
str r1, [r0, #0xc]
mov r1, #0x39
bl MOD05_021F6140
_021F5F12:
mov r0, #0
pop {r3, pc}
.align 2, 0
thumb_func_start MOD05_021F5F18
MOD05_021F5F18: ; 0x021F5F18
push {r4, lr}
add r4, r0, #0
bl MOD05_021F617C
cmp r0, #0
bne _021F5F28
mov r0, #0
pop {r4, pc}
_021F5F28:
mov r0, #9
str r0, [r4, #0xc]
mov r0, #1
pop {r4, pc}
thumb_func_start MOD05_021F5F30
MOD05_021F5F30: ; 0x021F5F30
mov r2, #1
str r2, [r0, #8]
mov r1, #0xf
str r1, [r0, #0xc]
add r0, r2, #0
bx lr
thumb_func_start MOD05_021F5F3C
MOD05_021F5F3C: ; 0x021F5F3C
push {r4, lr}
add r4, r0, #0
add r0, r2, #0
mov r1, #0
bl FUN_02058544
add r0, r4, #0
mov r1, #0x38
bl MOD05_021F6140
mov r0, #0x10
str r0, [r4, #0x10]
mov r0, #0xe
str r0, [r4, #0xc]
mov r0, #1
pop {r4, pc}
thumb_func_start MOD05_021F5F5C
MOD05_021F5F5C: ; 0x021F5F5C
push {r4, lr}
add r4, r0, #0
add r0, r2, #0
mov r1, #0
bl FUN_02058544
add r0, r4, #0
mov r1, #0x37
bl MOD05_021F6140
mov r0, #0x10
str r0, [r4, #0x10]
mov r0, #0xe
str r0, [r4, #0xc]
ldr r0, [r4, #0x20]
ldr r0, [r0, #0xc]
bl FUN_02029FC8
mov r1, #0x49
bl FUN_0202A0E8
ldr r0, [r4, #0x1c]
bl MOD05_021F61B0
add r2, r0, #0
mov r1, #0
ldr r0, [r4, #0x20]
add r3, r1, #0
bl FUN_02061208
mov r0, #1
pop {r4, pc}
thumb_func_start MOD05_021F5F9C
MOD05_021F5F9C: ; 0x021F5F9C
mov r1, #0x78
str r1, [r0, #0x10]
mov r1, #0xd
str r1, [r0, #0xc]
mov r0, #1
bx lr
thumb_func_start MOD05_021F5FA8
MOD05_021F5FA8: ; 0x021F5FA8
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r0, [r5, #0x10]
add r4, r2, #0
sub r0, r0, #1
str r0, [r5, #0x10]
bl MOD05_021F6098
cmp r0, #1
bne _021F5FC4
mov r0, #0xa
str r0, [r5, #0xc]
mov r0, #1
pop {r3, r4, r5, pc}
_021F5FC4:
ldr r0, [r5, #0x10]
cmp r0, #0
beq _021F5FCE
mov r0, #0
pop {r3, r4, r5, pc}
_021F5FCE:
add r0, r4, #0
mov r1, #0
bl FUN_02058544
add r0, r5, #0
mov r1, #0x36
bl MOD05_021F6140
mov r0, #0x10
str r0, [r5, #0x10]
mov r0, #0xe
str r0, [r5, #0xc]
mov r0, #0
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_start MOD05_021F5FEC
MOD05_021F5FEC: ; 0x021F5FEC
push {r4, lr}
add r4, r0, #0
ldr r1, [r4, #0x10]
add r1, r1, #1
str r1, [r4, #0x10]
cmp r1, #0x10
bge _021F5FFE
mov r0, #0
pop {r4, pc}
_021F5FFE:
mov r1, #0x10
str r1, [r4, #0x10]
bl MOD05_021F617C
cmp r0, #0
bne _021F600E
mov r0, #0
pop {r4, pc}
_021F600E:
mov r0, #0xf
str r0, [r4, #0xc]
mov r0, #1
pop {r4, pc}
.align 2, 0
thumb_func_start MOD05_021F6018
MOD05_021F6018: ; 0x021F6018
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r0, [r5, #0x24]
add r4, r1, #0
cmp r0, #0
beq _021F602C
bl FUN_02064520
mov r0, #0
str r0, [r5, #0x24]
_021F602C:
add r0, r5, #0
bl MOD05_021F60FC
add r0, r4, #0
bl FUN_020553C4
bl FUN_02055648
add r1, r0, #0
add r0, r4, #0
bl MOD05_021E5FD8
add r0, r4, #0
bl MOD05_021E5FE0
mov r0, #0
str r0, [r5, #0x10]
mov r0, #0x10
str r0, [r5, #0xc]
mov r0, #1
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_start MOD05_021F6058
MOD05_021F6058: ; 0x021F6058
ldr r1, [r0, #0x10]
add r1, r1, #1
str r1, [r0, #0x10]
cmp r1, #2
ble _021F6066
mov r1, #0x11
str r1, [r0, #0xc]
_021F6066:
mov r0, #0
bx lr
.align 2, 0
thumb_func_start MOD05_021F606C
MOD05_021F606C: ; 0x021F606C
mov r1, #1
str r1, [r0, #4]
mov r0, #0
bx lr
thumb_func_start MOD05_021F6074
MOD05_021F6074: ; 0x021F6074
push {r3, r4, r5, lr}
add r5, r0, #0
mov r0, #4
add r1, r5, #0
bl AllocFromHeapAtEnd
add r4, r0, #0
bne _021F6088
bl ErrorHandling
_021F6088:
add r0, r4, #0
mov r1, #0
add r2, r5, #0
bl memset
add r0, r4, #0
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_start MOD05_021F6098
MOD05_021F6098: ; 0x021F6098
ldr r0, _021F60A8 ; =gUnknown21C48B8
ldr r1, [r0, #0x48]
mov r0, #1
tst r1, r0
bne _021F60A4
mov r0, #0
_021F60A4:
bx lr
nop
_021F60A8: .word gUnknown21C48B8
thumb_func_start MOD05_021F60AC
MOD05_021F60AC: ; 0x021F60AC
ldr r0, _021F60C0 ; =gUnknown21C48B8
ldr r1, [r0, #0x48]
mov r0, #3
tst r0, r1
beq _021F60BA
mov r0, #1
bx lr
_021F60BA:
mov r0, #0
bx lr
nop
_021F60C0: .word gUnknown21C48B8
thumb_func_start MOD05_021F60C4
MOD05_021F60C4: ; 0x021F60C4
push {r4, lr}
add r4, r0, #0
mov r0, #1
mov r1, #0x1a
mov r2, #0xc7
mov r3, #4
bl FUN_0200A86C
str r0, [r4, #0x48]
mov r0, #1
lsl r0, r0, #0xa
mov r1, #4
bl FUN_020219F4
str r0, [r4, #0x2c]
mov r0, #1
lsl r0, r0, #0xa
mov r1, #4
bl FUN_020219F4
str r0, [r4, #0x30]
mov r0, #8
mov r1, #0x40
mov r2, #4
bl FUN_0200AA90
str r0, [r4, #0x34]
pop {r4, pc}
thumb_func_start MOD05_021F60FC
MOD05_021F60FC: ; 0x021F60FC
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0x34]
bl FUN_0200AB18
ldr r0, [r4, #0x2c]
bl FUN_02021A20
ldr r0, [r4, #0x30]
bl FUN_02021A20
ldr r0, [r4, #0x48]
bl FUN_0200A8B8
pop {r4, pc}
.align 2, 0
thumb_func_start MOD05_021F611C
MOD05_021F611C: ; 0x021F611C
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r4, [r5, #0x20]
add r1, r5, #0
ldr r0, [r4, #8]
add r1, #0x38
mov r2, #3
bl FUN_020545B8
ldr r0, [r4, #0xc]
bl LoadPlayerDataAddress
add r5, #0x38
add r1, r0, #0
add r0, r5, #0
bl FUN_02054608
pop {r3, r4, r5, pc}
thumb_func_start MOD05_021F6140
MOD05_021F6140: ; 0x021F6140
push {r4, r5, r6, lr}
add r5, r0, #0
add r6, r1, #0
bl MOD05_021F611C
ldr r0, [r5, #0x48]
ldr r2, [r5, #0x30]
add r1, r6, #0
ldr r4, [r5, #0x20]
bl FUN_0200A8E0
ldr r0, [r5, #0x34]
ldr r1, [r5, #0x2c]
ldr r2, [r5, #0x30]
bl FUN_0200B7B8
ldr r0, [r4, #0xc]
bl LoadPlayerDataAddress
add r2, r0, #0
add r0, r5, #0
ldr r1, [r5, #0x2c]
add r0, #0x38
mov r3, #1
bl FUN_02054658
add r5, #0x28
strb r0, [r5]
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start MOD05_021F617C
MOD05_021F617C: ; 0x021F617C
push {r4, lr}
add r4, r0, #0
add r0, #0x28
ldrb r0, [r0]
bl FUN_020546C8
cmp r0, #1
bne _021F61AA
bl MOD05_021F60AC
cmp r0, #1
bne _021F61AA
add r0, r4, #0
add r0, #0x38
mov r1, #0
bl FUN_0200D0E0
add r4, #0x38
add r0, r4, #0
bl FUN_02019178
mov r0, #1
pop {r4, pc}
_021F61AA:
mov r0, #0
pop {r4, pc}
.align 2, 0
thumb_func_start MOD05_021F61B0
MOD05_021F61B0: ; 0x021F61B0
push {r3, lr}
cmp r0, #0
beq _021F61C2
cmp r0, #1
beq _021F61C6
cmp r0, #2
beq _021F61CA
bl ErrorHandling
_021F61C2:
ldr r0, _021F61D0 ; =0x000001BD
pop {r3, pc}
_021F61C6:
ldr r0, _021F61D4 ; =0x000001BE
pop {r3, pc}
_021F61CA:
ldr r0, _021F61D8 ; =0x000001BF
pop {r3, pc}
nop
_021F61D0: .word 0x000001BD
_021F61D4: .word 0x000001BE
_021F61D8: .word 0x000001BF
thumb_func_start MOD05_021F61DC
MOD05_021F61DC: ; 0x021F61DC
lsl r1, r0, #2
ldr r0, _021F61E4 ; =0x021FCA00
ldrh r0, [r0, r1]
bx lr
.align 2, 0
_021F61E4: .word 0x021FCA00
thumb_func_start MOD05_021F61E8
MOD05_021F61E8: ; 0x021F61E8
lsl r1, r0, #2
ldr r0, _021F61F0 ; =0x021FCA02
ldrh r0, [r0, r1]
bx lr
.align 2, 0
_021F61F0: .word 0x021FCA02
thumb_func_start MOD05_021F61F4
MOD05_021F61F4: ; 0x021F61F4
push {r4, r5, r6, lr}
add r6, r1, #0
add r5, r0, #0
add r0, r6, #0
mov r1, #0x34
bl AllocFromHeapAtEnd
add r4, r0, #0
mov r1, #0
mov r2, #0x34
bl memset
str r6, [r4]
mov r0, #0
str r0, [r4, #0xc]
str r5, [r4, #0x2c]
ldr r0, [r5, #0x20]
str r0, [r4, #0x30]
bl FUN_0201F010
str r0, [r4, #0x10]
str r0, [r4, #0x20]
ldr r0, _021F622C ; =MOD05_021F6270
ldr r2, _021F6230 ; =0x0000FFFF
add r1, r4, #0
bl FUN_0200CA44
pop {r4, r5, r6, pc}
.align 2, 0
_021F622C: .word MOD05_021F6270
_021F6230: .word 0x0000FFFF
thumb_func_start MOD05_021F6234
MOD05_021F6234: ; 0x021F6234
push {r3, lr}
bl FUN_0201B6C8
ldr r0, [r0, #8]
pop {r3, pc}
.align 2, 0
thumb_func_start MOD05_021F6240
MOD05_021F6240: ; 0x021F6240
push {r4, lr}
add r4, r0, #0
bl FUN_0201B6C8
bl FreeToHeap
add r0, r4, #0
bl FUN_0200CAB4
pop {r4, pc}
thumb_func_start MOD05_021F6254
MOD05_021F6254: ; 0x021F6254
push {r4, r5, r6, lr}
add r5, r1, #0
add r4, r2, #0
add r6, r3, #0
bl FUN_0201B6C8
mov r1, #0
str r1, [r0, #4]
str r1, [r0, #8]
str r5, [r0, #0xc]
str r4, [r0, #0x14]
str r6, [r0, #0x1c]
str r1, [r0, #0x24]
pop {r4, r5, r6, pc}
thumb_func_start MOD05_021F6270
MOD05_021F6270: ; 0x021F6270
push {r3, lr}
add r0, r1, #0
ldr r1, [r1, #0xc]
lsl r2, r1, #2
ldr r1, _021F6280 ; =0x021FD1B8
ldr r1, [r1, r2]
blx r1
pop {r3, pc}
.align 2, 0
_021F6280: .word 0x021FD1B8
thumb_func_start MOD05_021F6284
MOD05_021F6284: ; 0x021F6284
mov r1, #1
str r1, [r0, #8]
bx lr
.align 2, 0
thumb_func_start MOD05_021F628C
MOD05_021F628C: ; 0x021F628C
push {r4, lr}
add r4, r0, #0
ldr r1, [r4, #4]
cmp r1, #0
beq _021F629C
cmp r1, #1
beq _021F62A6
pop {r4, pc}
_021F629C:
bl MOD05_021F630C
ldr r0, [r4, #4]
add r0, r0, #1
str r0, [r4, #4]
_021F62A6:
add r0, r4, #0
bl MOD05_021F633C
cmp r0, #1
bne _021F62BA
ldr r0, [r4, #4]
add r0, r0, #1
str r0, [r4, #4]
mov r0, #1
str r0, [r4, #8]
_021F62BA:
add r0, r4, #0
bl MOD05_021F62FC
pop {r4, pc}
.align 2, 0
thumb_func_start MOD05_021F62C4
MOD05_021F62C4: ; 0x021F62C4
push {r4, lr}
add r4, r0, #0
ldr r1, [r4, #4]
cmp r1, #0
beq _021F62D4
cmp r1, #1
beq _021F62DE
pop {r4, pc}
_021F62D4:
bl MOD05_021F6324
ldr r0, [r4, #4]
add r0, r0, #1
str r0, [r4, #4]
_021F62DE:
add r0, r4, #0
bl MOD05_021F633C
cmp r0, #1
bne _021F62F2
ldr r0, [r4, #4]
add r0, r0, #1
str r0, [r4, #4]
mov r0, #1
str r0, [r4, #8]
_021F62F2:
add r0, r4, #0
bl MOD05_021F62FC
pop {r4, pc}
.align 2, 0
thumb_func_start MOD05_021F62FC
MOD05_021F62FC: ; 0x021F62FC
ldr r3, _021F6308 ; =FUN_0201EFE0
add r1, r0, #0
ldr r0, [r1, #0x20]
ldr r1, [r1, #0x30]
bx r3
nop
_021F6308: .word FUN_0201EFE0
thumb_func_start MOD05_021F630C
MOD05_021F630C: ; 0x021F630C
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0x14]
ldr r1, [r4, #0x1c]
bl _s32_div_f
str r0, [r4, #0x28]
ldr r1, [r4, #0x20]
ldr r0, [r4, #0x14]
add r0, r1, r0
str r0, [r4, #0x18]
pop {r4, pc}
thumb_func_start MOD05_021F6324
MOD05_021F6324: ; 0x021F6324
push {r4, lr}
add r4, r0, #0
ldr r1, [r4, #0x10]
ldr r0, [r4, #0x20]
sub r0, r1, r0
ldr r1, [r4, #0x1c]
bl _s32_div_f
str r0, [r4, #0x28]
ldr r0, [r4, #0x10]
str r0, [r4, #0x18]
pop {r4, pc}
thumb_func_start MOD05_021F633C
MOD05_021F633C: ; 0x021F633C
ldr r2, [r0, #0x20]
ldr r1, [r0, #0x28]
add r1, r2, r1
str r1, [r0, #0x20]
ldr r1, [r0, #0x24]
add r2, r1, #1
str r2, [r0, #0x24]
ldr r1, [r0, #0x1c]
cmp r2, r1
blo _021F635A
str r1, [r0, #0x24]
ldr r1, [r0, #0x18]
str r1, [r0, #0x20]
mov r0, #1
bx lr
_021F635A:
mov r0, #0
bx lr
.align 2, 0
thumb_func_start MOD05_021F6360
MOD05_021F6360: ; 0x021F6360
push {r3, r4, r5, r6, r7, lr}
add r7, r0, #0
bl FUN_02046528
str r0, [sp]
add r0, r7, #0
bl FUN_0204652C
add r6, r0, #0
add r0, r7, #0
bl FUN_02046530
add r4, r0, #0
ldr r0, [r4]
ldr r5, [r6, #4]
cmp r0, #5
bhi _021F6424
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021F638E: ; jump table
.short _021F639A - _021F638E - 2 ; case 0
.short _021F63AC - _021F638E - 2 ; case 1
.short _021F63CC - _021F638E - 2 ; case 2
.short _021F63EA - _021F638E - 2 ; case 3
.short _021F6402 - _021F638E - 2 ; case 4
.short _021F6414 - _021F638E - 2 ; case 5
_021F639A:
mov r0, #0xb
mov r1, #8
bl AllocFromHeapAtEnd
str r0, [r6, #4]
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021F6424
_021F63AC:
bl MOD05_021F57EC
add r6, r0, #0
mov r0, #0xb
add r1, r6, #0
bl AllocFromHeapAtEnd
str r0, [r5, #4]
mov r1, #0
add r2, r6, #0
bl memset
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021F6424
_021F63CC:
ldr r0, [sp]
ldr r0, [r0, #0x38]
bl FUN_020553E8
add r3, r0, #0
ldr r0, [sp]
ldr r2, [r6]
mov r1, #0
bl MOD06_0224666C
str r0, [r5]
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021F6424
_021F63EA:
ldr r0, [r5]
bl MOD06_022466A0
cmp r0, #0
beq _021F6424
ldr r0, [r5]
bl MOD06_022466AC
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021F6424
_021F6402:
ldr r1, _021F6428 ; =MOD05_021F57F0
ldr r2, [r5, #4]
add r0, r7, #0
bl FUN_0204640C
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021F6424
_021F6414:
add r0, r5, #0
bl FreeToHeap
add r0, r6, #0
bl FreeToHeap
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021F6424:
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_021F6428: .word MOD05_021F57F0
.section .rodata
; 0x021F642C
.byte 0x14, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x01, 0x05, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x04
.byte 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00
.global UNK05_021F64C8
UNK05_021F64C8: ; 0x021F64C8
.word MOD05_021D7504, MOD05_021D767C, MOD05_021D76C0, 0xFFFFFFFF
; 0x021F64D8
.byte 0x00, 0x10, 0x00, 0x00
.byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x2F, 0x01, 0x00, 0x00, 0x30, 0x01, 0x00, 0x00
.byte 0x82, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0xA9, 0x01, 0x00, 0x00, 0xAA, 0x01, 0x00, 0x00
.byte 0x82, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0xA9, 0x01, 0x00, 0x00, 0xAA, 0x01, 0x00, 0x00
.byte 0x42, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00
.byte 0xF6, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0xAB, 0x01, 0x00, 0x00, 0xC8, 0x01, 0x00, 0x00
.byte 0x04, 0x01, 0x00, 0x00, 0x38, 0x01, 0x00, 0x00, 0x39, 0x01, 0x00, 0x00, 0xB6, 0x01, 0x00, 0x00
.byte 0xBC, 0x01, 0x00, 0x00, 0xB9, 0x01, 0x00, 0x00, 0xBA, 0x01, 0x00, 0x00, 0x2A, 0x01, 0x00, 0x00
.byte 0xE4, 0x01, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x0F, 0x02, 0x00, 0x00, 0x4B, 0x00, 0x00, 0x00
.byte 0x42, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00
.byte 0xF6, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0xAB, 0x01, 0x00, 0x00, 0xC8, 0x01, 0x00, 0x00
.byte 0x04, 0x01, 0x00, 0x00, 0x38, 0x01, 0x00, 0x00, 0x39, 0x01, 0x00, 0x00, 0xB6, 0x01, 0x00, 0x00
.byte 0xBC, 0x01, 0x00, 0x00, 0xB9, 0x01, 0x00, 0x00, 0xBA, 0x01, 0x00, 0x00, 0x2A, 0x01, 0x00, 0x00
.byte 0xE4, 0x01, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x0F, 0x02, 0x00, 0x00, 0x4B, 0x00, 0x00, 0x00
.byte 0x42, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00
.byte 0xF6, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0xAB, 0x01, 0x00, 0x00, 0xC8, 0x01, 0x00, 0x00
.byte 0x04, 0x01, 0x00, 0x00, 0x38, 0x01, 0x00, 0x00, 0x39, 0x01, 0x00, 0x00, 0xB6, 0x01, 0x00, 0x00
.byte 0xBC, 0x01, 0x00, 0x00, 0xB9, 0x01, 0x00, 0x00, 0xBA, 0x01, 0x00, 0x00, 0x2A, 0x01, 0x00, 0x00
.byte 0xE4, 0x01, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x0F, 0x02, 0x00, 0x00, 0x4B, 0x00, 0x00, 0x00
.byte 0xF8, 0xD1, 0x1F, 0x02, 0xE0, 0xD1, 0x1F, 0x02, 0x10, 0xD2, 0x1F, 0x02, 0xC1, 0xAE, 0x29, 0x00
.byte 0x02, 0xD6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x05, 0x00, 0x60, 0x09, 0x00
.byte 0x00, 0x40, 0x38, 0x00, 0xC1, 0xAE, 0x29, 0x00, 0x62, 0xCF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0xC1, 0x05, 0x00, 0x60, 0x09, 0x00, 0x00, 0x40, 0x38, 0x00, 0x4C, 0x37, 0x20, 0x00
.byte 0x22, 0xD9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x07, 0x00, 0x60, 0x09, 0x00
.byte 0x00, 0x40, 0x38, 0x00, 0xC1, 0xAE, 0x29, 0x00, 0x02, 0xD6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0xC1, 0x05, 0x00, 0x60, 0x09, 0x00, 0x00, 0x40, 0x38, 0x00, 0x9B, 0xB8, 0x61, 0x00
.byte 0x62, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x81, 0x02, 0x00, 0x60, 0x09, 0x00
.byte 0x00, 0x70, 0x6C, 0x00, 0x05, 0xC8, 0x13, 0x00, 0x03, 0xD6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x01, 0x0C, 0x00, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x00, 0xDF, 0x28, 0x36, 0x00
.byte 0x03, 0xCC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x04, 0x00, 0x30, 0x07, 0x00
.byte 0x00, 0x50, 0x4C, 0x00, 0xC1, 0xAE, 0x29, 0x00, 0x03, 0xD6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0xC1, 0x05, 0x00, 0x90, 0x09, 0x00, 0x00, 0x70, 0x40, 0x00, 0xC1, 0x6E, 0x29, 0x00
.byte 0xE3, 0xCD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x60, 0x09, 0x00
.byte 0x00, 0xA0, 0x40, 0x00, 0xAC, 0x59, 0x16, 0x00, 0x23, 0xE3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0xB0, 0x0A, 0x00, 0x60, 0x09, 0x00, 0x00, 0x40, 0x38, 0x00, 0xB1, 0x25, 0x4B, 0x00
.byte 0xC3, 0xD4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x03, 0x00, 0x60, 0x09, 0x00
.byte 0x00, 0x20, 0x6D, 0x00, 0x55, 0x3D, 0x2A, 0x00, 0xE3, 0xD6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0xC1, 0x05, 0x00, 0x60, 0x0E, 0x00, 0x00, 0x70, 0x46, 0x00, 0x3F, 0xE9, 0x23, 0x00
.byte 0x03, 0xD3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x06, 0x00, 0x60, 0x09, 0x00
.byte 0x00, 0x40, 0x38, 0x00, 0x4C, 0x37, 0x20, 0x00, 0x03, 0xDE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x70, 0x07, 0x00, 0x60, 0x09, 0x00, 0x00, 0x40, 0x38, 0x00, 0x65, 0x97, 0x0A, 0x00
.byte 0x44, 0xC8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x15, 0x00, 0xA0, 0x00, 0x00
.byte 0x00, 0x00, 0x3F, 0x00, 0xDF, 0xDE, 0x28, 0x00, 0x22, 0xD9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0xF0, 0x05, 0x00, 0x60, 0x09, 0x00, 0x00, 0x40, 0x38, 0x00, 0x91, 0xBE, 0x1D, 0x02
.byte 0x00, 0x00, 0x00, 0x00, 0xBD, 0xBE, 0x1D, 0x02, 0xE5, 0xBE, 0x1D, 0x02, 0x99, 0xBE, 0x1D, 0x02
.byte 0x00, 0x00, 0x00, 0x00, 0xC5, 0xBE, 0x1D, 0x02, 0xF1, 0xBE, 0x1D, 0x02, 0xA1, 0xBE, 0x1D, 0x02
.byte 0x00, 0x00, 0x00, 0x00, 0xCD, 0xBE, 0x1D, 0x02, 0xED, 0xBE, 0x1D, 0x02, 0xB5, 0xFB, 0x1E, 0x02
.byte 0x00, 0x00, 0x00, 0x00, 0xCD, 0xFB, 0x1E, 0x02, 0xD9, 0xFB, 0x1E, 0x02, 0x02, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00
.byte 0x20, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
.byte 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF
.byte 0xFA, 0xFF, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xFF, 0xF6, 0xFF, 0xFF, 0xFF, 0x64, 0x00, 0x00, 0x00
.byte 0x64, 0x00, 0x00, 0x00, 0xC8, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x2C, 0x01, 0x00, 0x00
.byte 0xFD, 0xFF, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xFF
.byte 0xFB, 0xFF, 0xFF, 0xFF, 0xFA, 0xFF, 0xFF, 0xFF, 0xF6, 0xFF, 0xFF, 0xFF, 0xFA, 0xFF, 0xFF, 0xFF
.byte 0xFD, 0xFF, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFF
.byte 0xFB, 0xFF, 0xFF, 0xFF, 0xFA, 0xFF, 0xFF, 0xFF, 0xF6, 0xFF, 0xFF, 0xFF, 0xFA, 0xFF, 0xFF, 0xFF
.byte 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00
.byte 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00
.byte 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
.byte 0x15, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00
.byte 0x24, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00
.byte 0x0A, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x00, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00
.byte 0x1E, 0x00, 0x00, 0x00, 0x1D, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x2E, 0x00, 0x00, 0x00
.byte 0x2D, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x2D, 0x00, 0x00, 0x00
.byte 0x2F, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00
.byte 0x31, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x4B, 0x00, 0x01, 0x00
.byte 0xFE, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x67, 0x00, 0x01, 0x00, 0xFE, 0x00, 0x00, 0x00
.byte 0x0E, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x00, 0x73, 0x02
.byte 0x74, 0x02, 0xFF, 0xFF, 0x75, 0x02, 0x00, 0x00, 0x2C, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x2D, 0x00, 0xFF, 0xFF, 0x76, 0x02, 0x77, 0x02, 0xFF, 0xFF, 0x78, 0x02
.byte 0x14, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x26, 0x00, 0xFF, 0xFF
.byte 0x79, 0x02, 0x7A, 0x02, 0xFF, 0xFF, 0x7B, 0x02, 0x4A, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x7C, 0x02
.byte 0xFF, 0xFF, 0x7D, 0x02, 0x4C, 0x00, 0x4C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x51, 0x00, 0x51, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x02, 0xFF, 0xFF
.byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7E, 0x02, 0x2B, 0x02, 0x2B, 0x02, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x2E, 0x00, 0xFF, 0xFF, 0x7F, 0x02, 0x80, 0x02, 0x81, 0x02, 0x00, 0x00
.byte 0x38, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x00, 0xFF, 0xFF
.byte 0x82, 0x02, 0x83, 0x02, 0x84, 0x02, 0x00, 0x00, 0x39, 0x00, 0x39, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x22, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79, 0x01, 0x85, 0x02
.byte 0x86, 0x02, 0xFF, 0xFF, 0x87, 0x02, 0x00, 0x00, 0x84, 0x00, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x85, 0x00, 0x85, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x8C, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x88, 0x02, 0x00, 0x00, 0x86, 0x00, 0x86, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0x00, 0x87, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x8D, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x89, 0x02, 0x00, 0x00
.byte 0x57, 0x00, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x01, 0x10, 0x01
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x01, 0x11, 0x01, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x12, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x8A, 0x02, 0x00, 0x00
.byte 0x7D, 0x01, 0x7D, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x01, 0x7E, 0x01
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x3A, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x8B, 0x02, 0xFF, 0xFF, 0x8C, 0x02
.byte 0x19, 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x1A, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1B, 0x00, 0xFF, 0xFF, 0x8D, 0x02, 0x8E, 0x02
.byte 0xFF, 0xFF, 0x8F, 0x02, 0x1C, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x1D, 0x00, 0x1D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x1E, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0xFF, 0xFF, 0x90, 0x02, 0x91, 0x02
.byte 0xFF, 0xFF, 0x92, 0x02, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x4B, 0x00, 0x4B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x49, 0x00, 0xFF, 0xFF
.byte 0xFF, 0xFF, 0x93, 0x02, 0xFF, 0xFF, 0x94, 0x02, 0x15, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
.byte 0xFF, 0xFF, 0x95, 0x02, 0x2D, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x96, 0x02
.byte 0x2E, 0x02, 0x2E, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x02, 0x2F, 0x02
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x02, 0x30, 0x02, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x42, 0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0xAA, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x97, 0x02, 0x00, 0x00, 0x16, 0x01, 0xFF, 0xFF
.byte 0xFF, 0xFF, 0x98, 0x02, 0xFF, 0xFF, 0x99, 0x02, 0x1A, 0x01, 0x1A, 0x01, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x33, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x9A, 0x02
.byte 0x34, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x9B, 0x02, 0x35, 0x02, 0x35, 0x02
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x02, 0x36, 0x02, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x37, 0x02, 0x37, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x38, 0x02, 0x38, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x00, 0x43, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAB, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
.byte 0x9C, 0x02, 0x00, 0x00, 0x1E, 0x01, 0x1E, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x1F, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0x9D, 0x02, 0xFF, 0xFF, 0x9E, 0x02, 0x3D, 0x02, 0xFF, 0xFF
.byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F, 0x02, 0x3E, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
.byte 0xFF, 0xFF, 0xA0, 0x02, 0x3F, 0x02, 0x3F, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x40, 0x02, 0x40, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x02, 0x41, 0x02
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x02, 0x42, 0x02, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xA1, 0x02, 0xFF, 0xFF, 0xA2, 0x02
.byte 0x20, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xA3, 0x02, 0x47, 0x02, 0xFF, 0xFF
.byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xA4, 0x02, 0x78, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xA5, 0x02
.byte 0xFF, 0xFF, 0xA6, 0x02, 0x21, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xA7, 0x02
.byte 0x49, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xA8, 0x02, 0x22, 0x01, 0x22, 0x01
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x01, 0x23, 0x01, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x24, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xA9, 0x02, 0xFF, 0xFF, 0xAA, 0x02
.byte 0x16, 0x00, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0xFF, 0xFF
.byte 0xAB, 0x02, 0xFF, 0xFF, 0xAC, 0x02, 0x00, 0x00, 0x18, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x5B, 0x00, 0x5B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x00, 0x5C, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5D, 0x00, 0x5D, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x99, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xAD, 0x02, 0x00, 0x00, 0x9A, 0x00, 0x9A, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA8, 0x00, 0xA8, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0xAC, 0x00, 0xAC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0xAD, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xAE, 0x02, 0x00, 0x00, 0xAE, 0x00, 0xAE, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAF, 0x00, 0xAF, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x41, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xAF, 0x02, 0xFF, 0xFF, 0xB0, 0x02, 0x26, 0x01, 0x26, 0x01
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xB1, 0x02
.byte 0xFF, 0xFF, 0xB2, 0x02, 0x54, 0x00, 0xFF, 0xFF, 0xB3, 0x02, 0xB4, 0x02, 0xFF, 0xFF, 0xB5, 0x02
.byte 0x2C, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xB6, 0x02, 0x00, 0x00, 0x71, 0x00, 0x71, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x72, 0x00, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x30, 0x01, 0x30, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x31, 0x01, 0x31, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB9, 0x01, 0xB9, 0x01
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBA, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xB7, 0x02
.byte 0xB8, 0x02, 0x00, 0x00, 0x31, 0x00, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x82, 0x00, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x01, 0x32, 0x01
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xB9, 0x02
.byte 0xFF, 0xFF, 0xBA, 0x02, 0x34, 0x01, 0x34, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x2A, 0x00, 0x2A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x45, 0x00, 0x45, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x00, 0x4F, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x7F, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x00, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x94, 0x00, 0x94, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x02, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xBB, 0x02, 0x00, 0x00, 0x39, 0x01, 0x39, 0x01
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4B, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
.byte 0xFF, 0xFF, 0xBC, 0x02, 0x4C, 0x02, 0x4C, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x37, 0x00, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x00, 0xFF, 0xFF
.byte 0xFF, 0xFF, 0xBD, 0x02, 0xFF, 0xFF, 0xBE, 0x02, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0xBF, 0x02, 0xC0, 0x02, 0xFF, 0xFF, 0xC1, 0x02, 0x00, 0x00
.byte 0x0C, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x01, 0xC2, 0x02
.byte 0xC3, 0x02, 0xC4, 0x02, 0x00, 0x00, 0x00, 0x00, 0x43, 0x01, 0x43, 0x01, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x13, 0x00, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, 0x24, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x25, 0x00, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x27, 0x00, 0x27, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x28, 0x00, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x29, 0x00, 0x29, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x01, 0x46, 0x01, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0xC3, 0x01, 0xFF, 0xFF, 0xC5, 0x02, 0xC6, 0x02, 0xFF, 0xFF, 0xC7, 0x02
.byte 0x0D, 0x00, 0xC8, 0x02, 0xC9, 0x02, 0xFF, 0xFF, 0xCA, 0x02, 0x00, 0x00, 0x47, 0x01, 0xFF, 0xFF
.byte 0xCB, 0x02, 0xCC, 0x02, 0xCD, 0x02, 0x00, 0x00, 0x48, 0x01, 0x48, 0x01, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x23, 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC8, 0x01, 0xCE, 0x02
.byte 0xCF, 0x02, 0xFF, 0xFF, 0xD0, 0x02, 0x00, 0x00, 0x35, 0x00, 0xFF, 0xFF, 0xD1, 0x02, 0xD2, 0x02
.byte 0xD3, 0x02, 0x00, 0x00, 0x58, 0x00, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x59, 0x00, 0x59, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5A, 0x00, 0x5A, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x00, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x4C, 0x01, 0xFF, 0xFF, 0xD4, 0x02, 0xD5, 0x02, 0xD6, 0x02, 0x00, 0x00
.byte 0x4D, 0x01, 0x4D, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x52, 0x00, 0x52, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
.byte 0xD7, 0x02, 0xD8, 0x02, 0x53, 0x00, 0xFF, 0xFF, 0xD9, 0x02, 0xDA, 0x02, 0xFF, 0xFF, 0xDB, 0x02
.byte 0x5E, 0x00, 0xFF, 0xFF, 0xDC, 0x02, 0xDD, 0x02, 0xFF, 0xFF, 0xDE, 0x02, 0x5F, 0x00, 0x5F, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
.byte 0xFF, 0xFF, 0xDF, 0x02, 0x50, 0x02, 0x50, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x51, 0x02, 0x51, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0xFF, 0xFF
.byte 0xE0, 0x02, 0xE1, 0x02, 0xFF, 0xFF, 0xE2, 0x02, 0x61, 0x00, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x52, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE3, 0x02
.byte 0x53, 0x02, 0x53, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x02, 0x54, 0x02
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6E, 0x00, 0x6E, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0xB4, 0x00, 0xB4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x51, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE4, 0x02, 0xE5, 0x02, 0x52, 0x01, 0x52, 0x01
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE2, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
.byte 0xFF, 0xFF, 0xE6, 0x02, 0x62, 0x00, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x63, 0x00, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE6, 0x01, 0xFF, 0xFF
.byte 0xE7, 0x02, 0xE8, 0x02, 0xE9, 0x02, 0x00, 0x00, 0x46, 0x00, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x48, 0x00, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x00, 0xFF, 0xFF
.byte 0xEA, 0x02, 0xEB, 0x02, 0xEC, 0x02, 0x00, 0x00, 0x50, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x92, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x93, 0x00, 0x93, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE8, 0x01, 0xE8, 0x01
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE9, 0x01, 0xE9, 0x01, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0xEA, 0x01, 0xEA, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x5A, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xED, 0x02, 0xFF, 0xFF, 0xEE, 0x02, 0xEB, 0x01, 0xEB, 0x01
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEC, 0x01, 0xEC, 0x01, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x89, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0x02, 0xF0, 0x02, 0x00, 0x00, 0x8E, 0x00, 0x8E, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8F, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xF1, 0x02
.byte 0xFF, 0xFF, 0xF2, 0x02, 0x8A, 0x00, 0x8A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x8B, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xF3, 0x02, 0xF4, 0x02, 0x00, 0x00, 0x90, 0x00, 0x90, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x91, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xF5, 0x02
.byte 0xF6, 0x02, 0x00, 0x00, 0x67, 0x00, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x68, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9F, 0x00, 0x9F, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x00, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0xA1, 0x00, 0xA1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0xA6, 0x00, 0xA6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB7, 0x00, 0xFF, 0xFF
.byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0x02, 0xB8, 0x00, 0xB8, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0xB9, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x02
.byte 0xBA, 0x00, 0xBA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBB, 0x00, 0xBB, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBC, 0x00, 0xBC, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x55, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF9, 0x02
.byte 0x56, 0x02, 0x56, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, 0x02, 0x57, 0x02
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x02, 0x58, 0x02, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x69, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x6A, 0x00, 0x6A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA2, 0x00, 0xA2, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA3, 0x00, 0xA3, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0xA4, 0x00, 0xA4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0xA7, 0x00, 0xA7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBD, 0x00, 0xFF, 0xFF
.byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFA, 0x02, 0xBE, 0x00, 0xBE, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0xBF, 0x00, 0xBF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0xC0, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFB, 0x02, 0xC1, 0x00, 0xC1, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC2, 0x00, 0xC2, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0xEE, 0x01, 0xEE, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x59, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x02, 0x5A, 0x02, 0x5A, 0x02
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5B, 0x02, 0x5B, 0x02, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x5C, 0x02, 0x5C, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0xFD, 0x02, 0xFE, 0x02, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x21, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x01, 0x00, 0x03
.byte 0x01, 0x03, 0xFF, 0xFF, 0x02, 0x03, 0x00, 0x00, 0x64, 0x01, 0x64, 0x01, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x6B, 0x00, 0xFF, 0xFF, 0x03, 0x03, 0xFF, 0xFF, 0x04, 0x03, 0x00, 0x00
.byte 0x66, 0x01, 0x66, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x67, 0x01, 0x67, 0x01
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6C, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x05, 0x03
.byte 0x07, 0x03, 0x00, 0x00, 0x68, 0x01, 0x68, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x69, 0x01, 0x69, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x00, 0xFF, 0xFF
.byte 0xFF, 0xFF, 0x06, 0x03, 0xFF, 0xFF, 0x08, 0x03, 0x6A, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
.byte 0xFF, 0xFF, 0x09, 0x03, 0x5D, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0A, 0x03
.byte 0x00, 0x02, 0x05, 0x07, 0x01, 0x06, 0x03, 0x04, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x1F, 0x00, 0x01, 0x00, 0x01, 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, 0x02, 0x01, 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, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00
.byte 0x2D, 0x00, 0x16, 0x00, 0x2D, 0x00, 0x44, 0x00, 0x5A, 0x00, 0x43, 0x00, 0x5B, 0x00, 0x71, 0x00
.byte 0x87, 0x00, 0x70, 0x00, 0x87, 0x00, 0x9E, 0x00, 0xB4, 0x00, 0x9D, 0x00, 0x69, 0x8A, 0x1E, 0x02
.byte 0xE9, 0x88, 0x1E, 0x02, 0xED, 0x8B, 0x1E, 0x02, 0x21, 0x8D, 0x1E, 0x02, 0x21, 0x8F, 0x1E, 0x02
.byte 0x31, 0x90, 0x1E, 0x02, 0x41, 0x91, 0x1E, 0x02, 0xA9, 0x94, 0x1E, 0x02, 0xA9, 0x97, 0x1E, 0x02
.byte 0x69, 0x9B, 0x1E, 0x02, 0xE5, 0xA0, 0x1E, 0x02, 0xA5, 0xA3, 0x1E, 0x02, 0xC9, 0xBB, 0x1E, 0x02
.byte 0xE9, 0xBB, 0x1E, 0x02, 0x09, 0xBC, 0x1E, 0x02, 0x29, 0xBC, 0x1E, 0x02, 0x49, 0xBC, 0x1E, 0x02
.byte 0x69, 0xBC, 0x1E, 0x02, 0x89, 0xBC, 0x1E, 0x02, 0xA9, 0xBC, 0x1E, 0x02, 0xB9, 0xC3, 0x1E, 0x02
.byte 0xD9, 0xC3, 0x1E, 0x02, 0xF9, 0xC3, 0x1E, 0x02, 0x19, 0xC4, 0x1E, 0x02, 0x39, 0xC4, 0x1E, 0x02
.byte 0x49, 0xB4, 0x1E, 0x02, 0xB5, 0xB5, 0x1E, 0x02, 0x61, 0xAD, 0x1E, 0x02, 0x61, 0xB1, 0x1E, 0x02
.byte 0x85, 0xA8, 0x1E, 0x02, 0xE9, 0xAA, 0x1E, 0x02, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
.byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
.byte 0x80, 0x00, 0x00, 0x00, 0x4D, 0x54, 0x1E, 0x02, 0x91, 0x54, 0x1E, 0x02, 0x95, 0x54, 0x1E, 0x02
.byte 0xC1, 0x54, 0x1E, 0x02, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
.byte 0x00, 0x10, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x51, 0x56, 0x1E, 0x02, 0x99, 0x56, 0x1E, 0x02
.byte 0x9D, 0x56, 0x1E, 0x02, 0xFD, 0x56, 0x1E, 0x02, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
.byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x11, 0x58, 0x1E, 0x02
.byte 0x59, 0x58, 0x1E, 0x02, 0x5D, 0x58, 0x1E, 0x02, 0x99, 0x58, 0x1E, 0x02, 0x00, 0x10, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
.byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00
.byte 0xAD, 0x59, 0x1E, 0x02, 0xF9, 0x59, 0x1E, 0x02, 0xFD, 0x59, 0x1E, 0x02, 0x35, 0x5A, 0x1E, 0x02
.byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
.byte 0x0C, 0x00, 0x00, 0x00, 0x81, 0x5B, 0x1E, 0x02, 0xF9, 0x5B, 0x1E, 0x02, 0x0D, 0x5C, 0x1E, 0x02
.byte 0x35, 0x5C, 0x1E, 0x02, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x51, 0x5D, 0x1E, 0x02
.byte 0xC9, 0x5D, 0x1E, 0x02, 0xDD, 0x5D, 0x1E, 0x02, 0x05, 0x5E, 0x1E, 0x02, 0x0C, 0x00, 0x00, 0x00
.byte 0x19, 0x5F, 0x1E, 0x02, 0x91, 0x5F, 0x1E, 0x02, 0xA5, 0x5F, 0x1E, 0x02, 0xCD, 0x5F, 0x1E, 0x02
.byte 0x79, 0x6C, 0x1E, 0x02, 0xA1, 0x6C, 0x1E, 0x02, 0xC5, 0x6C, 0x1E, 0x02, 0x81, 0x6D, 0x1E, 0x02
.byte 0xC1, 0x6D, 0x1E, 0x02, 0x49, 0x6E, 0x1E, 0x02, 0x6D, 0x6E, 0x1E, 0x02, 0x91, 0x6E, 0x1E, 0x02
.byte 0x51, 0x6F, 0x1E, 0x02, 0x9D, 0x6F, 0x1E, 0x02, 0x29, 0x6A, 0x1E, 0x02, 0x41, 0x6A, 0x1E, 0x02
.byte 0x59, 0x6A, 0x1E, 0x02, 0xAD, 0x6A, 0x1E, 0x02, 0xD5, 0x6A, 0x1E, 0x02, 0xF5, 0x6A, 0x1E, 0x02
.byte 0x1D, 0x6B, 0x1E, 0x02, 0x81, 0x6B, 0x1E, 0x02, 0x15, 0x60, 0x1E, 0x02, 0x55, 0x60, 0x1E, 0x02
.byte 0x9D, 0x60, 0x1E, 0x02, 0x0D, 0x61, 0x1E, 0x02, 0x19, 0x61, 0x1E, 0x02, 0x35, 0x61, 0x1E, 0x02
.byte 0x51, 0x61, 0x1E, 0x02, 0x6D, 0x61, 0x1E, 0x02, 0x89, 0x61, 0x1E, 0x02, 0x01, 0x00, 0x01, 0x00
.byte 0x3C, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, 0x00, 0x3C, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00
.byte 0x3C, 0x00, 0x02, 0x00, 0x03, 0x00, 0x01, 0x00, 0x3C, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00
.byte 0x3C, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x3C, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00
.byte 0x3C, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, 0x3C, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00
.byte 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00
.byte 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, 0xFE, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00
.byte 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00
.byte 0x01, 0x00, 0x01, 0x00, 0x3C, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x3C, 0x00, 0x01, 0x00
.byte 0x00, 0x00, 0x01, 0x00, 0x3C, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, 0x3C, 0x00, 0x01, 0x00
.byte 0x01, 0x00, 0x01, 0x00, 0x3C, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, 0x00, 0x3C, 0x00, 0x03, 0x00
.byte 0x00, 0x00, 0x01, 0x00, 0x3C, 0x00, 0x04, 0x00, 0x03, 0x00, 0x01, 0x00, 0x3C, 0x00, 0x05, 0x00
.byte 0x01, 0x00, 0x01, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00
.byte 0x44, 0x00, 0x00, 0x00, 0xA9, 0x79, 0x1E, 0x02, 0x6D, 0x7A, 0x1E, 0x02, 0x09, 0x7A, 0x1E, 0x02
.byte 0x89, 0x7A, 0x1E, 0x02, 0x44, 0x00, 0x00, 0x00, 0x09, 0x7B, 0x1E, 0x02, 0x6D, 0x7A, 0x1E, 0x02
.byte 0x79, 0x7B, 0x1E, 0x02, 0x89, 0x7A, 0x1E, 0x02, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
.byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
.byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x10, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00
.byte 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x04, 0x00, 0x00, 0x00, 0xDC, 0x05, 0x00, 0x00, 0x0F, 0x41, 0x0E, 0x00, 0xDC, 0x05, 0x00, 0x00
.byte 0x0F, 0x42, 0x12, 0x00, 0xDC, 0x05, 0x00, 0x00, 0x0F, 0x43, 0x13, 0x00, 0xDC, 0x05, 0x00, 0x00
.byte 0x0F, 0x44, 0x14, 0x00, 0xB8, 0x0B, 0x00, 0x00, 0x1E, 0x45, 0x15, 0x00, 0x00, 0x00, 0x0B, 0x00
.byte 0x3E, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x4A, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0C, 0x00
.byte 0x4B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x4C, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0C, 0x00
.byte 0x4D, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x4E, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0B, 0x00
.byte 0x40, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x4F, 0x00, 0x01, 0x00, 0xC1, 0xAE, 0x29, 0x00
.byte 0x02, 0xD6, 0x00, 0x00, 0xC1, 0x05, 0x04, 0x00, 0xC1, 0xAE, 0x29, 0x00, 0x02, 0xCF, 0x00, 0xFF
.byte 0x01, 0x06, 0x04, 0x00, 0xC1, 0xAE, 0x29, 0x00, 0x02, 0xE6, 0x00, 0x10, 0x91, 0x06, 0x04, 0x00
.byte 0xC1, 0xAE, 0x29, 0x00, 0x02, 0xD6, 0x00, 0x0A, 0x11, 0x07, 0x03, 0x00, 0xC1, 0xAE, 0x29, 0x00
.byte 0x02, 0xE1, 0x00, 0xF0, 0x80, 0x07, 0x03, 0x00, 0xC1, 0xAE, 0x29, 0x00, 0x02, 0xC6, 0x00, 0x00
.byte 0x51, 0x07, 0x03, 0x00, 0xC1, 0xAE, 0x29, 0x00, 0x02, 0xE0, 0x00, 0xF0, 0x00, 0x08, 0x03, 0x00
.byte 0xC1, 0xAE, 0x29, 0x00, 0x02, 0xD6, 0x00, 0x00, 0x02, 0x08, 0x03, 0x00, 0xC1, 0xAE, 0x29, 0x00
.byte 0x02, 0xD0, 0x00, 0x10, 0x00, 0x08, 0x03, 0x00, 0xC1, 0xAE, 0x29, 0x00, 0x02, 0xD9, 0x00, 0xF5
.byte 0x51, 0x07, 0x03, 0x00, 0xC1, 0xAE, 0x29, 0x00, 0x02, 0xD0, 0x00, 0x0A, 0xC1, 0x04, 0x02, 0x00
.byte 0xC1, 0xAE, 0x29, 0x00, 0x02, 0xE0, 0x00, 0xF0, 0xC1, 0x03, 0x02, 0x00, 0xC1, 0xAE, 0x29, 0x00
.byte 0x02, 0xD0, 0x00, 0xF0, 0x50, 0x06, 0x01, 0x00, 0xC1, 0xAE, 0x29, 0x00, 0x02, 0xE0, 0x00, 0xA0
.byte 0x41, 0x02, 0x01, 0x00, 0xC1, 0xAE, 0x29, 0x00, 0xA2, 0xE1, 0x00, 0x05, 0x00, 0x05, 0x01, 0x00
.byte 0xC1, 0xAE, 0x29, 0x00, 0x02, 0xD6, 0x00, 0x00, 0x41, 0x02, 0x01, 0x00, 0x00, 0x40, 0x10, 0x00
.byte 0x00, 0x00, 0x08, 0x00, 0x00, 0x20, 0xFE, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x06, 0x00
.byte 0x00, 0x40, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0x01, 0x00, 0x00, 0x00, 0xFF, 0xFF
.byte 0x00, 0x00, 0x08, 0x00, 0x00, 0xE0, 0x01, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x40, 0x06, 0x00
.byte 0x00, 0xC0, 0xFE, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x08, 0x00, 0x00, 0xE0, 0x01, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x40, 0x06, 0x00
.byte 0x00, 0x40, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0xFD, 0xFF, 0x00, 0xC0, 0x08, 0x00
.byte 0x00, 0x00, 0x08, 0x00, 0x00, 0x60, 0xFF, 0xFF, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x40, 0x06, 0x00
.byte 0x00, 0xC0, 0xFE, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0xFE, 0xFF, 0x00, 0x40, 0x10, 0x00
.byte 0x00, 0x00, 0x08, 0x00, 0x00, 0x20, 0xFE, 0xFF, 0x00, 0x00, 0x05, 0x00, 0x00, 0x40, 0x06, 0x00
.byte 0x00, 0x10, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0xFD, 0xFF, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x08, 0x00, 0x00, 0xE0, 0x01, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x40, 0x06, 0x00
.byte 0x00, 0xC0, 0xFE, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x70, 0x00, 0xD6, 0x00
.byte 0x2F, 0x01, 0x91, 0x01, 0xF5, 0x01, 0x63, 0x02, 0xC3, 0x02, 0x35, 0x03, 0xA0, 0x03, 0x07, 0x04
.byte 0x61, 0x04, 0xC8, 0x04, 0xC9, 0x04, 0x68, 0x01, 0xFF, 0x00, 0xCA, 0x00, 0x2A, 0x01, 0xFE, 0x00
.byte 0xB7, 0x00, 0xB7, 0x01, 0x3A, 0x01, 0x7A, 0x00, 0xB6, 0x01, 0x3B, 0x01, 0xB9, 0x00, 0xBE, 0x01
.byte 0x3C, 0x01, 0x8F, 0x00, 0xCA, 0x01, 0x3D, 0x01, 0xE2, 0x00, 0x96, 0x01, 0x3E, 0x01, 0x3B, 0x01
.byte 0xB8, 0x01, 0x3F, 0x01, 0x71, 0x00, 0xB1, 0x01, 0x40, 0x01, 0x66, 0x01, 0x21, 0x4E, 0x71, 0x00
.byte 0x82, 0x00, 0xDB, 0x00, 0xCC, 0x00, 0x50, 0x00, 0x59, 0x01, 0x40, 0x01, 0xAE, 0x00, 0x13, 0x01
.byte 0x0B, 0x01, 0x85, 0x00, 0xB5, 0x01, 0x24, 0x4E, 0xBB, 0x00, 0xF6, 0x00, 0x9D, 0x00, 0x2C, 0x00
.byte 0xC8, 0x00, 0xFB, 0x00, 0x0E, 0x00, 0x5D, 0x01, 0xF2, 0x00, 0x97, 0x01, 0xE8, 0x00, 0x8A, 0x01
.byte 0x27, 0x4E, 0xF3, 0x00, 0x72, 0x00, 0x36, 0x00, 0xC1, 0x00, 0xAF, 0x00, 0x1F, 0x01, 0x2C, 0x01
.byte 0x19, 0x01, 0x4A, 0x01, 0xFC, 0x00, 0x88, 0x01, 0xC5, 0x01, 0x30, 0x4E, 0xE4, 0x00, 0xB9, 0x00
.byte 0xC1, 0x00, 0xD3, 0x00, 0x3A, 0x01, 0x93, 0x01, 0x9D, 0x01, 0xFD, 0x00, 0x33, 0x4E, 0x67, 0x00
.byte 0xAC, 0x00, 0x9A, 0x00, 0x2C, 0x00, 0x44, 0x00, 0xB3, 0x00, 0xFD, 0x00, 0xCF, 0x00, 0x83, 0x01
.byte 0x7E, 0x01, 0x35, 0x4E, 0xB9, 0x00, 0xCE, 0x00, 0xB8, 0x00, 0x62, 0x00, 0xA1, 0x00, 0x36, 0x01
.byte 0x8F, 0x00, 0x12, 0x00, 0xFD, 0x00, 0x37, 0x4E, 0xE4, 0x00, 0x15, 0x00, 0xB4, 0x00, 0xFB, 0x00
.byte 0x31, 0x01, 0xB8, 0x00, 0x56, 0x01, 0x32, 0x00, 0x3B, 0x4E, 0xAF, 0x00, 0xDB, 0x00, 0x44, 0x00
.byte 0xE5, 0x00, 0x9D, 0x00, 0xE8, 0x00, 0x0E, 0x00, 0x32, 0x01, 0x90, 0x01, 0x3D, 0x4E, 0x30, 0x00
.byte 0x32, 0x00, 0x24, 0x00, 0x74, 0x00, 0xCC, 0x00, 0x44, 0x00, 0xFB, 0x00, 0xE4, 0x00, 0x40, 0x4E
.byte 0x44, 0x00, 0x32, 0x00, 0x30, 0x00, 0x24, 0x00, 0x85, 0x00, 0x5D, 0x00, 0xFB, 0x00, 0x85, 0x01
.byte 0x45, 0x4E, 0xB9, 0x00, 0x5F, 0x00, 0xAF, 0x00, 0xB4, 0x00, 0x32, 0x00, 0x50, 0x01, 0xF4, 0x00
.byte 0x01, 0x01, 0x8A, 0x01, 0x46, 0x01, 0x9C, 0x01, 0x49, 0x4E, 0x62, 0x00, 0xE4, 0x00, 0xB9, 0x00
.byte 0x10, 0x00, 0x12, 0x00, 0xAE, 0x00, 0xA1, 0x01, 0x5F, 0x00, 0xAC, 0x01, 0x9D, 0x01, 0x4B, 0x4E
.byte 0x0E, 0x00, 0x4B, 0x00, 0xAF, 0x00, 0xEB, 0x00, 0xCC, 0x00, 0x13, 0x01, 0x41, 0x01, 0x4E, 0x4E
.byte 0xCE, 0x00, 0x67, 0x00, 0x44, 0x00, 0x3C, 0x00, 0xAF, 0x00, 0xE6, 0x00, 0x71, 0x00, 0xE4, 0x00
.byte 0xE8, 0x00, 0xC2, 0x01, 0xB8, 0x01, 0x50, 0x4E, 0xE2, 0x00, 0x67, 0x00, 0xCA, 0x00, 0x44, 0x01
.byte 0x61, 0x00, 0xEA, 0x00, 0x86, 0x01, 0xC2, 0x01, 0x52, 0x4E, 0xB9, 0x00, 0x67, 0x00, 0xF6, 0x00
.byte 0xE4, 0x00, 0xFB, 0x00, 0xFD, 0x00, 0x9D, 0x00, 0xAA, 0x01, 0x36, 0x01, 0x54, 0x4E, 0xB4, 0x00
.byte 0xCC, 0x00, 0x5F, 0x00, 0x85, 0x00, 0xF4, 0x00, 0x12, 0x01, 0x3C, 0x01, 0xAF, 0x00, 0x83, 0x01
.byte 0x82, 0x01, 0x56, 0x4E, 0x5F, 0x00, 0x3C, 0x00, 0xC1, 0x00, 0x71, 0x00, 0xF8, 0x00, 0x5E, 0x00
.byte 0xEE, 0x00, 0x1F, 0x01, 0x6D, 0x00, 0x19, 0x01, 0xAA, 0x01, 0x58, 0x4E, 0x9D, 0x00, 0xC1, 0x00
.byte 0x60, 0x00, 0x44, 0x00, 0xB3, 0x00, 0xFB, 0x00, 0x17, 0x01, 0x09, 0x01, 0x72, 0x01, 0x5A, 0x4E
.byte 0x22, 0x00, 0xDB, 0x00, 0xF2, 0x00, 0x25, 0x00, 0x53, 0x00, 0x50, 0x01, 0x01, 0x01, 0x26, 0x00
.byte 0x8A, 0x01, 0x5C, 0x4E, 0x36, 0x00, 0x96, 0x00, 0x3D, 0x00, 0x72, 0x00, 0xAA, 0x00, 0x5A, 0x01
.byte 0x2D, 0x01, 0x55, 0x01, 0x1F, 0x01, 0x1B, 0x01, 0x5F, 0x4E, 0xE3, 0x00, 0x70, 0x00, 0x1A, 0x01
.byte 0x07, 0x00, 0x09, 0x00, 0x08, 0x00, 0x7B, 0x01, 0x81, 0x01, 0x62, 0x4E, 0x71, 0x00, 0x60, 0x00
.byte 0x1B, 0x00, 0xE3, 0x00, 0x09, 0x01, 0x44, 0x00, 0x9D, 0x00, 0x72, 0x01, 0x07, 0x00, 0x09, 0x00
.byte 0x08, 0x00, 0xA2, 0x01, 0x65, 0x4E, 0x0E, 0x00, 0xE3, 0x00, 0x73, 0x00, 0xEB, 0x00, 0x8D, 0x00
.byte 0x13, 0x01, 0x59, 0x01, 0x84, 0x01, 0x41, 0x01, 0x68, 0x4E, 0x3E, 0x00, 0xF3, 0x00, 0xE5, 0x00
.byte 0x72, 0x00, 0xDB, 0x00, 0x6D, 0x00, 0x1A, 0x01, 0x6F, 0x01, 0x6A, 0x4E, 0x05, 0x00, 0x9D, 0x00
.byte 0x4F, 0x01, 0x67, 0x01, 0xAF, 0x00, 0x6D, 0x4E, 0xAC, 0x00, 0x25, 0x00, 0x18, 0x00, 0x5F, 0x00
.byte 0xCC, 0x00, 0x26, 0x00, 0x20, 0x00, 0x6F, 0x4E, 0xDB, 0x00, 0xBB, 0x00, 0xF8, 0x00, 0x17, 0x00
.byte 0x2C, 0x01, 0xD6, 0x00, 0xAD, 0x00, 0x7E, 0x01, 0x4F, 0x01, 0xAC, 0x01, 0x73, 0x4E, 0xD3, 0x00
.byte 0xC1, 0x00, 0x77, 0x00, 0x10, 0x00, 0x62, 0x00, 0xAF, 0x00, 0x29, 0x01, 0xAE, 0x00, 0x57, 0x01
.byte 0xBD, 0x00, 0x90, 0x01, 0x74, 0x4E, 0x62, 0x00, 0x30, 0x00, 0x72, 0x00, 0xB9, 0x00, 0xAF, 0x00
.byte 0x1B, 0x01, 0x77, 0x00, 0x9D, 0x01, 0x76, 0x4E, 0x7A, 0x00, 0xC3, 0x00, 0x32, 0x00, 0x20, 0x00
.byte 0x15, 0x00, 0xE3, 0x00, 0xFC, 0x00, 0x4D, 0x01, 0x44, 0x01, 0x78, 0x4E, 0x72, 0x00, 0xD4, 0x00
.byte 0x7A, 0x00, 0x1E, 0x01, 0xAE, 0x00, 0x45, 0x01, 0x99, 0x00, 0xA9, 0x01, 0xFE, 0x00, 0x00, 0x01
.byte 0xFF, 0x00, 0x7A, 0x4E, 0x3D, 0x00, 0x24, 0x00, 0x70, 0x00, 0xE5, 0x00, 0x67, 0x00, 0x4D, 0x01
.byte 0x55, 0x01, 0x7C, 0x4E, 0x95, 0x00, 0xC3, 0x00, 0x72, 0x00, 0x36, 0x01, 0x05, 0x01, 0x20, 0x01
.byte 0x99, 0x00, 0x07, 0x00, 0x08, 0x00, 0x09, 0x00, 0x7F, 0x4E, 0x9D, 0x00, 0xAF, 0x00, 0x99, 0x00
.byte 0x4F, 0x01, 0x6F, 0x00, 0xCD, 0x00, 0x5E, 0x01, 0x80, 0x4E, 0x70, 0x00, 0x12, 0x01, 0x10, 0x01
.byte 0x07, 0x00, 0x09, 0x00, 0x08, 0x00, 0xA1, 0x01, 0x04, 0x01, 0xAB, 0x01, 0x82, 0x4E, 0x5B, 0x00
.byte 0x72, 0x00, 0x85, 0x00, 0xAF, 0x00, 0x15, 0x00, 0x1A, 0x01, 0x0E, 0x00, 0x41, 0x01, 0xF6, 0x00
.byte 0x86, 0x4E, 0xEB, 0x00, 0xEC, 0x00, 0x73, 0x00, 0xF6, 0x00, 0xF4, 0x00, 0x13, 0x01, 0xAE, 0x00
.byte 0x0B, 0x01, 0x7D, 0x01, 0xB5, 0x01, 0x88, 0x4E, 0x9D, 0x00, 0xF6, 0x00, 0xBB, 0x00, 0x67, 0x00
.byte 0x82, 0x00, 0xC3, 0x00, 0x0E, 0x00, 0x18, 0x00, 0xBA, 0x01, 0x8C, 0x4E, 0xBB, 0x00, 0xDE, 0x00
.byte 0x22, 0x00, 0xAE, 0x00, 0x09, 0x01, 0xD6, 0x00, 0xAD, 0x00, 0xA4, 0x00, 0x85, 0x00, 0x67, 0x01
.byte 0x8D, 0x4E, 0x67, 0x00, 0x95, 0x00, 0x3C, 0x00, 0xC2, 0x00, 0xDC, 0x00, 0x05, 0x01, 0x20, 0x01
.byte 0xB4, 0x00, 0xAE, 0x00, 0x8F, 0x4E, 0xF2, 0x00, 0xB3, 0x00, 0x9D, 0x00, 0x44, 0x00, 0xDE, 0x00
.byte 0x0E, 0x00, 0xAE, 0x00, 0x32, 0x01, 0x97, 0x01, 0xA7, 0x01, 0xA8, 0x01, 0xA6, 0x01, 0x91, 0x4E
.byte 0xD9, 0x00, 0x76, 0x00, 0xD7, 0x00, 0x38, 0x01, 0xA4, 0x00, 0x44, 0x00, 0x0E, 0x01, 0x64, 0x01
.byte 0x92, 0x4E, 0xAF, 0x00, 0x5D, 0x00, 0x48, 0x00, 0x73, 0x00, 0x85, 0x00, 0x49, 0x00, 0x0B, 0x01
.byte 0x1B, 0x01, 0xB5, 0x01, 0x93, 0x4E, 0x17, 0x00, 0xC1, 0x00, 0x74, 0x00, 0xDB, 0x00, 0x32, 0x00
.byte 0x44, 0x00, 0x32, 0x01, 0xA4, 0x00, 0x26, 0x00, 0x1B, 0x01, 0x67, 0x01, 0x94, 0x4E, 0xAF, 0x00
.byte 0x3E, 0x00, 0xBE, 0x00, 0x32, 0x00, 0x96, 0x00, 0x52, 0x00, 0xE1, 0x00, 0x44, 0x01, 0x96, 0x4E
.byte 0x3C, 0x00, 0x72, 0x00, 0x38, 0x00, 0xD6, 0x00, 0x2C, 0x01, 0xBD, 0x00, 0x91, 0x01, 0x9A, 0x4E
.byte 0xF8, 0x00, 0x5F, 0x00, 0x66, 0x00, 0xF4, 0x00, 0xFC, 0x00, 0x0F, 0x01, 0x6D, 0x00, 0x66, 0x01
.byte 0x2A, 0x01, 0x9B, 0x4E, 0x44, 0x00, 0xDB, 0x00, 0xE2, 0x00, 0x0D, 0x00, 0xB3, 0x00, 0x71, 0x00
.byte 0xCB, 0x00, 0x3E, 0x01, 0x95, 0x01, 0x90, 0x01, 0x9F, 0x4E, 0x1F, 0x00, 0xAF, 0x00, 0xCE, 0x00
.byte 0xB9, 0x00, 0x62, 0x00, 0x72, 0x01, 0x6C, 0x01, 0xA3, 0x4E, 0xC1, 0x00, 0xA4, 0x00, 0x41, 0x01
.byte 0x1F, 0x01, 0x5D, 0x01, 0xAE, 0x00, 0xD6, 0x00, 0x20, 0x00, 0xF6, 0x00, 0xFA, 0x00, 0x5A, 0x00
.byte 0xA5, 0x4E, 0xCC, 0x00, 0xAF, 0x00, 0xCB, 0x00, 0xAE, 0x00, 0x41, 0x01, 0x11, 0x01, 0x19, 0x01
.byte 0x39, 0x01, 0x57, 0x01, 0xAA, 0x4E, 0x3D, 0x00, 0x3E, 0x00, 0x15, 0x00, 0x30, 0x00, 0x72, 0x00
.byte 0x9D, 0x00, 0xBF, 0x00, 0x1A, 0x01, 0x7A, 0x01, 0x86, 0x01, 0xAC, 0x4E, 0x3D, 0x00, 0x3E, 0x00
.byte 0xE5, 0x00, 0x5B, 0x00, 0xAF, 0x00, 0x1A, 0x01, 0x6D, 0x00, 0x55, 0x01, 0xC4, 0x00, 0x67, 0x00
.byte 0xAE, 0x4E, 0x12, 0x00, 0xE4, 0x00, 0xC1, 0x00, 0xD3, 0x00, 0xE1, 0x00, 0xAE, 0x00, 0x74, 0x01
.byte 0xAF, 0x4E, 0x7A, 0x00, 0xCC, 0x00, 0x26, 0x00, 0xAE, 0x00, 0x5A, 0x00, 0xA4, 0x00, 0x12, 0x00
.byte 0xE4, 0x00, 0xB3, 0x4E, 0x71, 0x00, 0x36, 0x00, 0x72, 0x00, 0x30, 0x00, 0xE1, 0x00, 0x5D, 0x01
.byte 0x97, 0x01, 0xB8, 0x4E, 0x16, 0x00, 0x49, 0x00, 0x44, 0x00, 0xF6, 0x00, 0xAF, 0x00, 0x0B, 0x01
.byte 0x13, 0x01, 0x40, 0x01, 0xB5, 0x01, 0x38, 0x01, 0x7A, 0x01, 0xBB, 0x4E, 0x9A, 0x00, 0x62, 0x00
.byte 0xB3, 0x00, 0x25, 0x00, 0xC1, 0x00, 0x57, 0x01, 0x50, 0x01, 0x32, 0x01, 0x26, 0x00, 0x18, 0x00
.byte 0x8A, 0x01, 0xBE, 0x4E, 0xF2, 0x00, 0x25, 0x00, 0x38, 0x00, 0xF6, 0x00, 0x9D, 0x00, 0x2C, 0x01
.byte 0x5A, 0x01, 0x51, 0x01, 0x08, 0x00, 0xE8, 0x00, 0x5D, 0x01, 0xC1, 0x4E, 0x26, 0x00, 0xE4, 0x00
.byte 0xA3, 0x00, 0x74, 0x00, 0xB3, 0x00, 0xA4, 0x00, 0x0F, 0x01, 0x12, 0x01, 0x83, 0x01, 0xCC, 0x00
.byte 0x57, 0x01, 0xC3, 0x4E, 0x77, 0x00, 0x30, 0x00, 0xB9, 0x00, 0x11, 0x00, 0x12, 0x00, 0x8F, 0x00
.byte 0x29, 0x01, 0x61, 0x00, 0x65, 0x00, 0xC5, 0x4E, 0x3C, 0x00, 0x75, 0x00, 0x3E, 0x01, 0x95, 0x01
.byte 0x67, 0x00, 0xE3, 0x00, 0x1A, 0x01, 0xC2, 0x01, 0xC7, 0x4E, 0x3C, 0x00, 0x32, 0x00, 0x31, 0x00
.byte 0xE2, 0x00, 0xE4, 0x00, 0x44, 0x01, 0x86, 0x01, 0x8E, 0x01, 0xCA, 0x4E, 0xAF, 0x00, 0x67, 0x00
.byte 0x85, 0x00, 0x3C, 0x00, 0xFA, 0x00, 0x61, 0x00, 0x36, 0x00, 0xCC, 0x4E, 0xB3, 0x00, 0x75, 0x00
.byte 0xD9, 0x00, 0xE3, 0x00, 0x03, 0x00, 0x11, 0x01, 0x0C, 0x01, 0xFC, 0x00, 0x09, 0x00, 0x41, 0x01
.byte 0xCD, 0x4E, 0xD9, 0x00, 0x76, 0x00, 0x85, 0x00, 0xBB, 0x00, 0x96, 0x00, 0x66, 0x00, 0x11, 0x01
.byte 0xA4, 0x00, 0x39, 0x01, 0x57, 0x01, 0xCE, 0x4E, 0xC3, 0x00, 0xD9, 0x00, 0xB9, 0x00, 0x11, 0x01
.byte 0x39, 0x01, 0x83, 0x01, 0x57, 0x01, 0x64, 0x01, 0xCF, 0x4E, 0xD9, 0x00, 0x77, 0x00, 0x40, 0x00
.byte 0xC1, 0x00, 0xF8, 0x00, 0xA4, 0x00, 0xF4, 0x00, 0xA1, 0x01, 0x77, 0x01, 0x7D, 0x01, 0xD1, 0x4E
.byte 0x72, 0x00, 0x41, 0x00, 0x62, 0x00, 0xB9, 0x00, 0xD3, 0x00, 0xF4, 0x00, 0x29, 0x01, 0x1F, 0x01
.byte 0xAC, 0x01, 0x85, 0x01, 0xD3, 0x4E, 0x24, 0x00, 0x22, 0x00, 0xDB, 0x00, 0x67, 0x00, 0x73, 0x00
.byte 0x3C, 0x01, 0x0C, 0x01, 0x04, 0x01, 0x1C, 0x00, 0xD7, 0x4E, 0x71, 0x00, 0xD9, 0x00, 0x85, 0x00
.byte 0xF8, 0x00, 0xBB, 0x00, 0xC3, 0x00, 0x30, 0x00, 0xA4, 0x00, 0xC5, 0x01, 0x14, 0x01, 0x1F, 0x01
.byte 0xD9, 0x4E, 0x78, 0x00, 0x1D, 0x00, 0x6A, 0x00, 0x6F, 0x00, 0xCD, 0x00, 0x48, 0x01, 0xDB, 0x4E
.byte 0x5D, 0x00, 0xE3, 0x00, 0x26, 0x00, 0x73, 0x00, 0x85, 0x00, 0x0E, 0x01, 0xF4, 0x00, 0x38, 0x01
.byte 0x84, 0x01, 0xDE, 0x4E, 0x44, 0x00, 0x67, 0x00, 0xE4, 0x00, 0x61, 0x00, 0xB4, 0x00, 0x15, 0x00
.byte 0x03, 0x00, 0xFB, 0x00, 0xFC, 0x00, 0x57, 0x01, 0x54, 0x01, 0xDF, 0x4E, 0x40, 0x01, 0xE3, 0x00
.byte 0x49, 0x00, 0x0B, 0x01, 0xAE, 0x00, 0x0E, 0x01, 0x13, 0x01, 0xE6, 0x00, 0xE1, 0x4E, 0x12, 0x00
.byte 0xB3, 0x00, 0x8D, 0x00, 0x44, 0x01, 0x3E, 0x01, 0x6C, 0x01, 0xB9, 0x00, 0xE4, 0x00, 0xE2, 0x4E
.byte 0x22, 0x00, 0xF6, 0x00, 0xDB, 0x00, 0xAE, 0x00, 0x2C, 0x01, 0xFE, 0x00, 0x00, 0x01, 0xFF, 0x00
.byte 0x44, 0x00, 0xE3, 0x00, 0x18, 0x00, 0xE6, 0x4E, 0x12, 0x00, 0x41, 0x00, 0x77, 0x00, 0x11, 0x00
.byte 0x8F, 0x00, 0x6D, 0x00, 0x29, 0x01, 0xC3, 0x00, 0x77, 0x01, 0x67, 0x00, 0xB9, 0x00, 0xE8, 0x4E
.byte 0x67, 0x00, 0xC2, 0x00, 0xF4, 0x00, 0x1E, 0x01, 0x06, 0x01, 0x85, 0x01, 0xA9, 0x01, 0xAE, 0x00
.byte 0xB4, 0x00, 0xD2, 0x01, 0xEB, 0x4E, 0x24, 0x00, 0x85, 0x00, 0xC1, 0x00, 0xF8, 0x00, 0xFB, 0x00
.byte 0xF4, 0x00, 0x11, 0x01, 0x15, 0x01, 0x18, 0x00, 0xF3, 0x00, 0xEC, 0x4E, 0x73, 0x00, 0x2A, 0x00
.byte 0xAF, 0x00, 0x81, 0x00, 0x44, 0x00, 0x48, 0x01, 0x17, 0x01, 0x26, 0x00, 0x86, 0x01, 0xEE, 0x4E
.byte 0x75, 0x00, 0xF6, 0x00, 0x9D, 0x00, 0x2C, 0x00, 0x1D, 0x00, 0x36, 0x01, 0xAE, 0x00, 0x78, 0x01
.byte 0x15, 0x01, 0xAD, 0x00, 0xEF, 0x4E, 0xE8, 0x00, 0x11, 0x00, 0x0D, 0x00, 0x44, 0x00, 0x48, 0x01
.byte 0x61, 0x00, 0xE2, 0x00, 0x26, 0x00, 0x6C, 0x01, 0x90, 0x01, 0xB8, 0x01, 0xF1, 0x4E, 0x76, 0x00
.byte 0xB9, 0x00, 0x73, 0x00, 0xD9, 0x00, 0xF2, 0x00, 0xD7, 0x00, 0xAD, 0x00, 0x09, 0x01, 0x72, 0x01
.byte 0xA7, 0x01, 0xA8, 0x01, 0xA6, 0x01, 0xF3, 0x4E, 0xAF, 0x00, 0x72, 0x00, 0x3D, 0x00, 0x30, 0x00
.byte 0x36, 0x01, 0x44, 0x01, 0x8E, 0x01, 0xF5, 0x4E, 0xE6, 0x00, 0x1A, 0x01, 0x0E, 0x01, 0x6F, 0x01
.byte 0x48, 0x01, 0xBD, 0x00, 0xF6, 0x4E, 0x6A, 0x00, 0x75, 0x00, 0xAF, 0x00, 0xCE, 0x00, 0x17, 0x01
.byte 0xE4, 0x00, 0x26, 0x00, 0xF7, 0x4E, 0x44, 0x00, 0xB4, 0x00, 0xC1, 0x00, 0x73, 0x00, 0x2C, 0x00
.byte 0x32, 0x01, 0xFC, 0x00, 0xCA, 0x01, 0x82, 0x01, 0xE4, 0x00, 0xA4, 0x01, 0x08, 0x00, 0xF8, 0x4E
.byte 0xF2, 0x00, 0x24, 0x00, 0x45, 0x00, 0x44, 0x00, 0xE8, 0x00, 0x39, 0x01, 0x19, 0x01, 0xD6, 0x00
.byte 0xEE, 0x00, 0x26, 0x00, 0x72, 0x01, 0x90, 0x01, 0xFA, 0x4E, 0x97, 0x00, 0x01, 0x01, 0xAE, 0x00
.byte 0x6C, 0x00, 0x06, 0x01, 0xFE, 0x00, 0xFF, 0x00, 0x00, 0x01, 0xFC, 0x4E, 0x24, 0x00, 0x2C, 0x00
.byte 0x22, 0x00, 0x9D, 0x00, 0xF6, 0x00, 0x55, 0x01, 0x4D, 0x01, 0x26, 0x00, 0x5A, 0x00, 0xAE, 0x00
.byte 0xFE, 0x4E, 0x9D, 0x00, 0x67, 0x00, 0x36, 0x00, 0x85, 0x00, 0x70, 0x00, 0x13, 0x01, 0x6D, 0x00
.byte 0x4D, 0x01, 0x0B, 0x01, 0x88, 0x01, 0xFF, 0x4E, 0x3E, 0x00, 0xBE, 0x00, 0x30, 0x00, 0x72, 0x00
.byte 0x67, 0x00, 0x56, 0x00, 0x5E, 0x01, 0xAD, 0x00, 0xAF, 0x00, 0x01, 0x4F, 0x3E, 0x00, 0x62, 0x00
.byte 0xF8, 0x00, 0x96, 0x00, 0xE5, 0x00, 0x2D, 0x01, 0xA4, 0x01, 0x08, 0x00, 0x02, 0x4F, 0xEF, 0x00
.byte 0x38, 0x00, 0x72, 0x00, 0x15, 0x00, 0x2C, 0x01, 0x9D, 0x00, 0xF3, 0x00, 0x5A, 0x01, 0x96, 0x00
.byte 0x03, 0x4F, 0x41, 0x00, 0xE4, 0x00, 0x12, 0x00, 0x8F, 0x00, 0xAE, 0x00, 0x9D, 0x01, 0x74, 0x01
.byte 0x04, 0x4F, 0x53, 0x00, 0x63, 0x00, 0xE4, 0x00, 0x44, 0x00, 0xB4, 0x00, 0xB3, 0x00, 0xFB, 0x00
.byte 0x05, 0x01, 0xA8, 0x01, 0xA6, 0x01, 0xA1, 0x01, 0x82, 0x01, 0x07, 0x4F, 0x74, 0x00, 0x22, 0x00
.byte 0xF6, 0x00, 0xAD, 0x00, 0x44, 0x00, 0x5A, 0x00, 0x1B, 0x01, 0xA4, 0x01, 0x0A, 0x4F, 0xB4, 0x00
.byte 0x32, 0x00, 0x2C, 0x00, 0xCF, 0x00, 0xF4, 0x00, 0x46, 0x01, 0x25, 0x00, 0x18, 0x00, 0xAC, 0x01
.byte 0x0C, 0x4F, 0xE5, 0x00, 0x88, 0x00, 0xB7, 0x00, 0xAA, 0x00, 0x0E, 0x01, 0x44, 0x00, 0x9A, 0x01
.byte 0xA2, 0x01, 0x0E, 0x4F, 0x60, 0x00, 0xF4, 0x00, 0xFC, 0x00, 0x11, 0x01, 0x08, 0x00, 0x65, 0x01
.byte 0x0F, 0x4F, 0x02, 0x00, 0x70, 0x00, 0x1B, 0x00, 0x60, 0x00, 0xEE, 0x00, 0x07, 0x00, 0x08, 0x00
.byte 0xDF, 0x00, 0x10, 0x4F, 0x02, 0x00, 0x05, 0x00, 0x70, 0x00, 0x67, 0x00, 0xEE, 0x00, 0x09, 0x00
.byte 0xB7, 0x00, 0xDF, 0x00, 0x8A, 0x01, 0x11, 0x4F, 0xD9, 0x00, 0xB3, 0x00, 0x45, 0x00, 0xCB, 0x00
.byte 0xF4, 0x00, 0xAE, 0x00, 0x0E, 0x01, 0xD6, 0x00, 0x92, 0x00, 0x67, 0x01, 0x26, 0x00, 0x82, 0x01
.byte 0x16, 0x4F, 0xE4, 0x00, 0x17, 0x00, 0xC8, 0x00, 0x74, 0x00, 0xF6, 0x00, 0x5D, 0x01, 0xAE, 0x00
.byte 0x4E, 0x01, 0x74, 0x01, 0xBA, 0x01, 0x1C, 0x4F, 0xF2, 0x00, 0x2C, 0x01, 0x1B, 0x01, 0x49, 0x00
.byte 0xE1, 0x00, 0x32, 0x01, 0x84, 0x01, 0x18, 0x00, 0x40, 0x01, 0xEB, 0x00, 0x59, 0x01, 0xB5, 0x01
.byte 0x1F, 0x4F, 0x44, 0x00, 0xB3, 0x00, 0xCB, 0x00, 0xCF, 0x00, 0x9D, 0x00, 0x09, 0x01, 0x32, 0x01
.byte 0xE2, 0x00, 0x61, 0x00, 0x90, 0x01, 0x83, 0x01, 0x6C, 0x01, 0x22, 0x4F, 0x1F, 0x01, 0xFD, 0x00
.byte 0xAE, 0x00, 0x17, 0x00, 0x2D, 0x01, 0xF3, 0x00, 0x44, 0x00, 0xF6, 0x00, 0xFA, 0x00, 0x2C, 0x00
.byte 0x26, 0x00, 0xAA, 0x01, 0x25, 0x4F, 0x36, 0x01, 0x31, 0x01, 0x57, 0x01, 0x2B, 0x00, 0x19, 0x01
.byte 0x85, 0x01, 0xA7, 0x01, 0xA8, 0x01, 0xA6, 0x01, 0x7E, 0x01, 0x27, 0x4F, 0xCC, 0x00, 0xE4, 0x00
.byte 0xA4, 0x00, 0x41, 0x01, 0x0F, 0x01, 0x0E, 0x01, 0xBD, 0x00, 0x2E, 0x4F, 0xEB, 0x00, 0x4B, 0x00
.byte 0xE6, 0x00, 0x49, 0x00, 0xAF, 0x00, 0x37, 0x00, 0x41, 0x01, 0x31, 0x4F, 0x49, 0x00, 0x85, 0x00
.byte 0x62, 0x00, 0x0D, 0x00, 0x24, 0x00, 0xCE, 0x00, 0x84, 0x01, 0xA1, 0x01, 0x34, 0x4F, 0xE4, 0x00
.byte 0x30, 0x00, 0x1F, 0x01, 0x77, 0x00, 0x63, 0x00, 0x8F, 0x00, 0x12, 0x00, 0x9D, 0x01, 0x36, 0x4F
.byte 0x36, 0x00, 0xEF, 0x00, 0x61, 0x00, 0x10, 0x00, 0x5A, 0x01, 0x88, 0x01, 0x1A, 0x01, 0x38, 0x4F
.byte 0x32, 0x00, 0x05, 0x01, 0xD4, 0x00, 0x06, 0x01, 0xC2, 0x00, 0x20, 0x01, 0xA9, 0x01, 0x6D, 0x00
.byte 0x3B, 0x4F, 0xC1, 0x00, 0x55, 0x01, 0x3C, 0x00, 0x38, 0x00, 0xAA, 0x00, 0x44, 0x01, 0xC2, 0x01
.byte 0x3D, 0x4F, 0x39, 0x01, 0xCF, 0x00, 0xCC, 0x00, 0xCE, 0x00, 0x0E, 0x01, 0x84, 0x01, 0x66, 0x01
.byte 0x92, 0x01, 0x3F, 0x4F, 0xE4, 0x00, 0xA3, 0x00, 0x22, 0x00, 0xAD, 0x00, 0x32, 0x01, 0xAE, 0x00
.byte 0xD6, 0x00, 0x67, 0x01, 0x90, 0x01, 0x42, 0x4F, 0xCB, 0x00, 0xB9, 0x00, 0x10, 0x00, 0x3E, 0x01
.byte 0x95, 0x01, 0x90, 0x01, 0xC2, 0x01, 0x45, 0x4F, 0x24, 0x00, 0xAD, 0x00, 0xCF, 0x00, 0x46, 0x01
.byte 0x09, 0x01, 0x6C, 0x00, 0x1B, 0x01, 0x48, 0x4F, 0xB9, 0x00, 0xC5, 0x00, 0xC1, 0x00, 0x0E, 0x01
.byte 0xEE, 0x00, 0x17, 0x01, 0xDF, 0x00, 0x44, 0x00, 0x66, 0x01, 0xA2, 0x01, 0x4A, 0x4F, 0xE3, 0x00
.byte 0x2F, 0x00, 0x1F, 0x01, 0x15, 0x00, 0x41, 0x01, 0x39, 0x01, 0x4B, 0x4F, 0xDE, 0x00, 0xCD, 0x00
.byte 0x99, 0x00, 0x26, 0x00, 0x4F, 0x01, 0x4C, 0x4F, 0x0E, 0x01, 0xF4, 0x00, 0xFD, 0x00, 0x39, 0x01
.byte 0x11, 0x01, 0xE2, 0x00, 0xA4, 0x00, 0x41, 0x01, 0x83, 0x01, 0xFC, 0x00, 0xAC, 0x01, 0x85, 0x01
.byte 0x4E, 0x4F, 0xF4, 0x00, 0x69, 0x00, 0xEC, 0x00, 0xA1, 0x01, 0x04, 0x01, 0x4F, 0x4F, 0x0E, 0x00
.byte 0xCE, 0x00, 0x31, 0x01, 0xF4, 0x00, 0xF6, 0x00, 0x41, 0x01, 0x85, 0x01, 0xA7, 0x01, 0xA8, 0x01
.byte 0xA6, 0x01, 0x82, 0x01, 0x50, 0x4F, 0x1B, 0x01, 0x22, 0x00, 0x17, 0x00, 0x09, 0x01, 0xAE, 0x00
.byte 0x67, 0x00, 0xBA, 0x01, 0x97, 0x01, 0x53, 0x4F, 0x07, 0x00, 0x09, 0x00, 0x08, 0x00, 0xC1, 0x00
.byte 0xFC, 0x00, 0xE2, 0x00, 0xDF, 0x00, 0x80, 0x01, 0x81, 0x01, 0xAB, 0x01, 0xA2, 0x01, 0x55, 0x4F
.byte 0xF2, 0x00, 0x1D, 0x00, 0xFD, 0x00, 0xAE, 0x00, 0x81, 0x00, 0xB3, 0x01, 0xA7, 0x01, 0xA8, 0x01
.byte 0xA6, 0x01, 0x57, 0x4F, 0xA4, 0x00, 0x11, 0x01, 0x2F, 0x00, 0xBA, 0x00, 0x58, 0x4F, 0xA4, 0x00
.byte 0x11, 0x01, 0x2F, 0x00, 0xBA, 0x00, 0x59, 0x4F, 0xE2, 0x00, 0x3E, 0x01, 0x0F, 0x01, 0xE3, 0x00
.byte 0x95, 0x01, 0x5A, 0x4F, 0xE2, 0x00, 0x3E, 0x01, 0x4A, 0x00, 0xE3, 0x00, 0x95, 0x01, 0x5B, 0x4F
.byte 0xBF, 0x00, 0xEB, 0x00, 0x2A, 0x00, 0xB2, 0x00, 0x4F, 0x00, 0x4B, 0x00, 0xAA, 0x00, 0xB5, 0x01
.byte 0x5C, 0x4F, 0x8A, 0x00, 0x97, 0x00, 0x7B, 0x00, 0xDC, 0x00, 0xAE, 0x00, 0xC2, 0x00, 0x5E, 0x4F
.byte 0x38, 0x00, 0x26, 0x00, 0x25, 0x00, 0xF6, 0x00, 0x60, 0x4F, 0x26, 0x00, 0x25, 0x00, 0xCF, 0x00
.byte 0xAD, 0x00, 0xD6, 0x00, 0xAE, 0x00, 0x5A, 0x00, 0x41, 0x01, 0x6F, 0x00, 0x22, 0x00, 0x62, 0x4F
.byte 0x50, 0x01, 0xB8, 0x00, 0x22, 0x00, 0xCD, 0x00, 0x6F, 0x00, 0x17, 0x00, 0x19, 0x01, 0xF6, 0x00
.byte 0xAA, 0x01, 0x01, 0x01, 0x64, 0x4F, 0x1C, 0x01, 0xCB, 0x00, 0xD6, 0x00, 0x19, 0x01, 0x59, 0x00
.byte 0x5A, 0x00, 0x65, 0x4F, 0xF8, 0x00, 0x46, 0x01, 0xA4, 0x00, 0x0F, 0x01, 0xAC, 0x01, 0x85, 0x00
.byte 0xF3, 0x00, 0x67, 0x4F, 0xE3, 0x00, 0x9D, 0x00, 0x12, 0x01, 0x32, 0x00, 0xE2, 0x00, 0x11, 0x01
.byte 0x0F, 0x01, 0x09, 0x01, 0xFC, 0x00, 0x10, 0x01, 0xAB, 0x01, 0x68, 0x4F, 0x74, 0x00, 0x62, 0x00
.byte 0x10, 0x00, 0xAF, 0x00, 0xD2, 0x00, 0x6B, 0x4F, 0x40, 0x01, 0x33, 0x00, 0x2A, 0x01, 0xDF, 0x00
.byte 0x44, 0x00, 0x43, 0x00, 0x09, 0x01, 0x59, 0x01, 0x92, 0x01, 0x6D, 0x4F, 0x61, 0x00, 0x72, 0x00
.byte 0xE4, 0x00, 0x63, 0x00, 0x29, 0x01, 0x97, 0x01, 0x6F, 0x4F, 0xAF, 0x00, 0x18, 0x00, 0x0D, 0x00
.byte 0x44, 0x00, 0x2E, 0x00, 0xAE, 0x00, 0x9A, 0x00, 0x90, 0x01, 0xE8, 0x00, 0xCA, 0x01, 0x70, 0x4F
.byte 0xFE, 0x00, 0x00, 0x01, 0xFF, 0x00, 0x22, 0x00, 0xB8, 0x00, 0x74, 0x01, 0x90, 0x01, 0x73, 0x4F
.byte 0x25, 0x00, 0xFA, 0x00, 0xD1, 0x00, 0x38, 0x00, 0xAF, 0x00, 0x24, 0x00, 0x75, 0x4F, 0x2C, 0x01
.byte 0x1B, 0x01, 0x22, 0x00, 0xF6, 0x00, 0x1A, 0x01, 0x14, 0x01, 0xE8, 0x00, 0x79, 0x4F, 0x70, 0x00
.byte 0x69, 0x00, 0xF3, 0x00, 0x9D, 0x00, 0x7A, 0x01, 0x41, 0x01, 0x7B, 0x4F, 0xE5, 0x00, 0x1A, 0x01
.byte 0x0E, 0x00, 0x9D, 0x00, 0x67, 0x00, 0x1C, 0x00, 0xB8, 0x01, 0x7D, 0x4F, 0xF3, 0x00, 0xE1, 0x00
.byte 0x2C, 0x01, 0x5F, 0x00, 0x71, 0x00, 0x6D, 0x00, 0x36, 0x00, 0x72, 0x00, 0x41, 0x01, 0x7F, 0x4F
.byte 0xF8, 0x00, 0xF4, 0x00, 0x7D, 0x01, 0x32, 0x00, 0x85, 0x00, 0xD2, 0x01, 0x80, 0x4F, 0x32, 0x00
.byte 0x15, 0x01, 0x0F, 0x01, 0xFC, 0x00, 0xA1, 0x01, 0x92, 0x00, 0x81, 0x4F, 0x32, 0x00, 0xC2, 0x00
.byte 0xC1, 0x00, 0x36, 0x01, 0x1E, 0x01, 0xE4, 0x00, 0xA9, 0x01, 0x73, 0x01, 0x6D, 0x00, 0x83, 0x4F
.byte 0x1E, 0x01, 0xC2, 0x00, 0xDC, 0x00, 0x20, 0x01, 0x06, 0x01, 0xB9, 0x00, 0xD2, 0x01, 0x85, 0x4F
.byte 0x1D, 0x00, 0x15, 0x00, 0x0D, 0x00, 0x49, 0x00, 0x0B, 0x01, 0xB5, 0x01, 0xEB, 0x00, 0xAE, 0x00
.byte 0x5C, 0x01, 0x86, 0x4F, 0x32, 0x00, 0xAE, 0x00, 0x5F, 0x00, 0x8A, 0x00, 0x11, 0x01, 0xF8, 0x00
.byte 0x87, 0x4F, 0xE2, 0x00, 0xB9, 0x00, 0x26, 0x00, 0x15, 0x01, 0xAE, 0x00, 0xA4, 0x00, 0xD4, 0x00
.byte 0xAC, 0x01, 0x82, 0x01, 0x85, 0x01, 0x74, 0x01, 0x7E, 0x01, 0x89, 0x4F, 0x4F, 0x01, 0xBF, 0x00
.byte 0xCD, 0x00, 0x32, 0x00, 0x75, 0x00, 0x8B, 0x4F, 0x5A, 0x01, 0xFE, 0x00, 0x00, 0x01, 0xFF, 0x00
.byte 0x19, 0x01, 0x9D, 0x00, 0xAE, 0x00, 0x5A, 0x00, 0x44, 0x01, 0x8E, 0x4F, 0x1F, 0x01, 0x2C, 0x01
.byte 0x22, 0x00, 0x30, 0x00, 0x70, 0x00, 0x6D, 0x00, 0x88, 0x01, 0x91, 0x4F, 0xDE, 0x00, 0x82, 0x00
.byte 0x5A, 0x01, 0x85, 0x00, 0xD6, 0x00, 0x9D, 0x00, 0x91, 0x01, 0xAD, 0x00, 0xBD, 0x00, 0x92, 0x4F
.byte 0x96, 0x00, 0x30, 0x00, 0x5A, 0x01, 0x2C, 0x01, 0xBD, 0x01, 0x88, 0x01, 0x93, 0x4F, 0x38, 0x00
.byte 0x25, 0x00, 0x52, 0x00, 0xEF, 0x00, 0x5D, 0x01, 0xA8, 0x01, 0xA5, 0x01, 0x97, 0x01, 0xA3, 0x4F
.byte 0x84, 0x01, 0x4A, 0x00, 0x41, 0x01, 0x22, 0x00, 0x26, 0x00, 0x48, 0x01, 0x92, 0x01, 0x25, 0x00
.byte 0x85, 0x00, 0x14, 0x01, 0xA6, 0x4F, 0x07, 0x00, 0x09, 0x00, 0x18, 0x00, 0xE3, 0x00, 0x01, 0x01
.byte 0x74, 0x00, 0x0E, 0x01, 0xFC, 0x00, 0x2B, 0x01, 0x44, 0x00, 0xA9, 0x4F, 0xCA, 0x01, 0x30, 0x00
.byte 0x19, 0x01, 0x2C, 0x01, 0xBD, 0x00, 0xAD, 0x00, 0xAF, 0x00, 0x61, 0x00, 0x88, 0x01, 0x38, 0x00
.byte 0xAC, 0x4F, 0x29, 0x01, 0x1F, 0x00, 0xE4, 0x00, 0x36, 0x01, 0x1C, 0x00, 0xC1, 0x00, 0x26, 0x00
.byte 0xAF, 0x4F, 0x62, 0x00, 0x5A, 0x01, 0x26, 0x00, 0x9A, 0x00, 0x6F, 0x00, 0xCD, 0x00, 0x3C, 0x01
.byte 0x91, 0x01, 0xB3, 0x4F, 0xA7, 0x01, 0xA8, 0x01, 0xA6, 0x01, 0x62, 0x00, 0x50, 0x01, 0x24, 0x00
.byte 0xB6, 0x4F, 0xBF, 0x00, 0xEB, 0x00, 0x2A, 0x00, 0xB2, 0x00, 0x4F, 0x00, 0x4B, 0x00, 0xAA, 0x00
.byte 0xB5, 0x01, 0x46, 0x01, 0xB8, 0x4F, 0xF2, 0x00, 0x25, 0x00, 0x26, 0x00, 0x2B, 0x00, 0x15, 0x00
.byte 0x17, 0x00, 0x12, 0x00, 0x67, 0x01, 0xBA, 0x4F, 0x1D, 0x00, 0xB8, 0x00, 0x74, 0x00, 0x26, 0x00
.byte 0x5E, 0x01, 0x22, 0x00, 0x67, 0x00, 0xAE, 0x00, 0x5A, 0x00, 0xC1, 0x4F, 0x57, 0x01, 0x2C, 0x00
.byte 0x39, 0x01, 0x6F, 0x00, 0xCD, 0x00, 0x04, 0x01, 0xAF, 0x00, 0xC2, 0x4F, 0xBD, 0x00, 0x1D, 0x00
.byte 0x9A, 0x00, 0xA3, 0x00, 0x3C, 0x01, 0x03, 0x00, 0xD2, 0x00, 0xE2, 0x00, 0xC4, 0x4F, 0x4B, 0x00
.byte 0xE6, 0x00, 0x41, 0x01, 0x0B, 0x01, 0x40, 0x01, 0x38, 0x01, 0xC6, 0x4F, 0x44, 0x00, 0xF3, 0x00
.byte 0xFE, 0x00, 0x00, 0x01, 0xFF, 0x00, 0x19, 0x01, 0x06, 0x01, 0xAE, 0x00, 0x85, 0x00, 0x5A, 0x00
.byte 0xC9, 0x4F, 0x06, 0x01, 0x22, 0x00, 0xC2, 0x00, 0x32, 0x00, 0x72, 0x00, 0x5F, 0x00, 0xCB, 0x4F
.byte 0x39, 0x01, 0xFC, 0x00, 0xE3, 0x00, 0xBA, 0x00, 0xCA, 0x01, 0xD5, 0x00, 0x43, 0x00, 0x47, 0x01
.byte 0x9F, 0x01, 0x09, 0x00, 0x08, 0x00, 0x07, 0x00, 0xCF, 0x4F, 0x2C, 0x00, 0x27, 0x00, 0x62, 0x00
.byte 0x1C, 0x00, 0x39, 0x01, 0x74, 0x01, 0xD1, 0x4F, 0x32, 0x00, 0xAE, 0x00, 0x5F, 0x00, 0x8A, 0x00
.byte 0x11, 0x01, 0xF8, 0x00, 0x69, 0x00, 0xD2, 0x4F, 0xE4, 0x00, 0x2B, 0x00, 0x7B, 0x00, 0x26, 0x00
.byte 0xF2, 0x00, 0xB8, 0x00, 0x36, 0x01, 0x82, 0x01, 0xD6, 0x4F, 0x78, 0x00, 0x1D, 0x00, 0x6A, 0x00
.byte 0x6F, 0x00, 0xCD, 0x00, 0x48, 0x01, 0xD7, 0x4F, 0xF8, 0x00, 0x5F, 0x00, 0x66, 0x00, 0xF4, 0x00
.byte 0xFC, 0x00, 0x0F, 0x01, 0x6D, 0x00, 0x66, 0x01, 0x2A, 0x01, 0x69, 0x01, 0xCC, 0x00, 0xD8, 0x4F
.byte 0xD9, 0x00, 0x76, 0x00, 0xD7, 0x00, 0x38, 0x01, 0xA4, 0x00, 0x44, 0x00, 0x0E, 0x01, 0x64, 0x01
.byte 0x83, 0x01, 0xD9, 0x4F, 0xE3, 0x00, 0x65, 0x00, 0x61, 0x00, 0xA1, 0x01, 0x30, 0x00, 0xDA, 0x4F
.byte 0xC2, 0x00, 0xDC, 0x00, 0x6C, 0x00, 0x1E, 0x01, 0x20, 0x01, 0xA9, 0x01, 0xDB, 0x4F, 0xE1, 0x00
.byte 0xC8, 0x00, 0xEF, 0x00, 0xB8, 0x00, 0x26, 0x00, 0x25, 0x00, 0xE8, 0x00, 0x48, 0x01, 0x22, 0x00
.byte 0xBA, 0x01, 0xDE, 0x4F, 0x7A, 0x00, 0xCC, 0x00, 0x26, 0x00, 0xAE, 0x00, 0xA4, 0x00, 0x12, 0x00
.byte 0xE4, 0x00, 0xAC, 0x01, 0xDF, 0x4F, 0xEE, 0x00, 0xC5, 0x00, 0x2C, 0x00, 0xAA, 0x00, 0x47, 0x01
.byte 0x88, 0x00, 0x61, 0x00, 0x9A, 0x01, 0xF2, 0x00, 0x43, 0x00, 0x4E, 0x01, 0x2B, 0x01, 0xA2, 0x01
.byte 0xE1, 0x4F, 0xFE, 0x00, 0x00, 0x01, 0xFF, 0x00, 0xAE, 0x00, 0x2F, 0x01, 0x22, 0x00, 0x48, 0x01
.byte 0xE3, 0x4F, 0xB9, 0x00, 0x67, 0x00, 0x1C, 0x00, 0xA3, 0x00, 0x6D, 0x00, 0x12, 0x00, 0x61, 0x00
.byte 0xE4, 0x00, 0x90, 0x01, 0xE5, 0x4F, 0x7E, 0x01, 0x6C, 0x01, 0xDF, 0x00, 0x1D, 0x00, 0x9A, 0x01
.byte 0x60, 0x00, 0xFC, 0x00, 0x66, 0x01, 0x09, 0x01, 0xEE, 0x00, 0xA2, 0x01, 0xE7, 0x4F, 0x4F, 0x00
.byte 0x4E, 0x00, 0x4B, 0x00, 0x15, 0x00, 0xEB, 0x00, 0x59, 0x01, 0x49, 0x00, 0x84, 0x01, 0xE8, 0x4F
.byte 0xBA, 0x00, 0xCC, 0x00, 0xAF, 0x00, 0x91, 0x01, 0x96, 0x00, 0x3C, 0x00, 0x41, 0x01, 0x61, 0x00
.byte 0xEA, 0x4F, 0xEF, 0x00, 0x38, 0x00, 0x72, 0x00, 0x15, 0x00, 0x2C, 0x01, 0x9D, 0x00, 0xF3, 0x00
.byte 0x5A, 0x01, 0x96, 0x00, 0x44, 0x01, 0xEB, 0x4F, 0x49, 0x00, 0x59, 0x01, 0x92, 0x01, 0x4A, 0x00
.byte 0x26, 0x00, 0x36, 0x00, 0x17, 0x00, 0xFF, 0xFF, 0x24, 0x00, 0x00, 0x00, 0x99, 0xDA, 0x1E, 0x02
.byte 0xE9, 0xDA, 0x1E, 0x02, 0xF5, 0xDA, 0x1E, 0x02, 0x11, 0xDB, 0x1E, 0x02, 0x00, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
.byte 0x30, 0x00, 0x00, 0x00, 0x15, 0xDC, 0x1E, 0x02, 0x4D, 0xDC, 0x1E, 0x02, 0x51, 0xDC, 0x1E, 0x02
.byte 0xFD, 0xDC, 0x1E, 0x02, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6D, 0xF1, 0x1E, 0x02, 0x15, 0xE1, 0x1E, 0x02
.byte 0xFD, 0xF1, 0x1E, 0x02, 0xE5, 0xE1, 0x1E, 0x02, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
.byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x03, 0x19, 0x0D, 0x06, 0x04, 0x0D, 0x15, 0x03
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x20, 0x00, 0x20, 0x00, 0x00, 0x08, 0x00, 0x10, 0x2F, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
.byte 0xFF, 0xFF, 0x00, 0x00
UNK05_021F8BA0:
.word MOD05_021F0CF0, MOD05_021F18A4, MOD05_021F0D18, MOD05_021F0D44, MOD05_021F0D70
UNK05_021F8BB4:
.word MOD05_021F0CF0, MOD05_021F17A0, MOD05_021F0D18, MOD05_021F0D44, MOD05_021F0D70
UNK05_021F8BC8:
.word MOD05_021F0CF0, MOD05_021F0DB4, MOD05_021F0D18, MOD05_021F0D44, MOD05_021F0D70
UNK05_021F8BDC:
.word MOD05_021F1B0C, MOD05_021F1B2C, MOD05_021F1B58, MOD05_021F1B60, MOD05_021F1B8C
UNK05_021F8BF0:
.word MOD05_021F19FC, MOD05_021F1A44, MOD05_021F1A48, MOD05_021F1A60, MOD05_021F1A98
UNK05_021F8C04:
.word MOD05_021F0ADC, MOD05_021F0B9C, MOD05_021F0B18, MOD05_021F0B2C, MOD05_021F0B58
UNK05_021F8C18:
.word MOD05_021F0CF0, MOD05_021F1234, MOD05_021F0D18, MOD05_021F0D44, MOD05_021F0D70
UNK05_021F8C2C:
.word MOD05_021F0CF0, MOD05_021F16D4, MOD05_021F0D18, MOD05_021F0D44, MOD05_021F0D70
UNK05_021F8C40:
.word MOD05_021F05C4, MOD05_021F071C, MOD05_021F05F0, MOD05_021F0604, MOD05_021F0634
UNK05_021F8C54:
.word FUN_0205C3B0, FUN_0205C3D0, FUN_0205C490, FUN_0205C4A8, FUN_0205C4D8
UNK05_021F8C68:
.word MOD05_021F05C4, MOD05_021F067C, MOD05_021F05F0, MOD05_021F0604, MOD05_021F0634
UNK05_021F8C7C:
.word MOD05_021F1A14, MOD05_021F1A44, MOD05_021F1A48, MOD05_021F1A60, MOD05_021F1AB8
UNK05_021F8C90:
.word MOD05_021F19E4, MOD05_021F1A44, MOD05_021F1A48, MOD05_021F1A60, MOD05_021F1A78
UNK05_021F8CA4:
.word MOD05_021F0CF0, MOD05_021F1838, MOD05_021F0D18, MOD05_021F0D44, MOD05_021F0D70
UNK05_021F8CB8:
.word MOD05_021F05C4, MOD05_021F0A04, MOD05_021F05F0, MOD05_021F0604, MOD05_021F0634
UNK05_021F8CCC:
.word MOD05_021F05C4, MOD05_021F06F0, MOD05_021F05F0, MOD05_021F0604, MOD05_021F0634
UNK05_021F8CE0:
.word MOD05_021F05C4, MOD05_021F0C28, MOD05_021F05F0, MOD05_021F0604, MOD05_021F0634
UNK05_021F8CF4:
.word MOD05_021F0CF0, MOD05_021F1440, MOD05_021F0D18, MOD05_021F0D44, MOD05_021F0D70
UNK05_021F8D08:
.word MOD05_021F1A2C, MOD05_021F1A44, MOD05_021F1A48, MOD05_021F1A60, MOD05_021F1AD8
UNK05_021F8D1C:
.word MOD05_021F1BD0, MOD05_021F1BF4, MOD05_021F1C14, MOD05_021F1B60, MOD05_021F1B8C
UNK05_021F8D30:
.word MOD05_021F0CF0, MOD05_021F1738, MOD05_021F0D18, MOD05_021F0D44, MOD05_021F0D70
; 0x021F8D44
.byte 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00
.byte 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x10, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x0F, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x30, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x06, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x0C, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00
.byte 0x23, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00
.byte 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x30, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00
.byte 0x44, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x10, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00
.byte 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x4F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x50, 0x00, 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00
.byte 0x6F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00
.byte 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x40, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00
.byte 0x4F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x58, 0x00, 0x00, 0x00, 0x5B, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x5C, 0x00, 0x00, 0x00
.byte 0x5F, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x00, 0x00
.global UNK05_021F9080
UNK05_021F9080:
.word MOD05_021F1EDC
.word MOD05_021F1EF4
.word MOD05_021F1EF8
.word MOD05_021F1EFC
.word MOD05_021F1F00
.word 0x00000000
; 0x021F9098
.byte 0x78, 0x01, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00, 0x79, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7A, 0x01, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00, 0x7B, 0x01, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7C, 0x01, 0x00, 0x00
.byte 0x05, 0x00, 0x00, 0x00, 0x7F, 0x01, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x86, 0x01, 0x00, 0x00
.byte 0x07, 0x00, 0x00, 0x00, 0x87, 0x01, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x88, 0x01, 0x00, 0x00
.byte 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0x01, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00, 0x8A, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x8B, 0x01, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00, 0x8C, 0x01, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x8D, 0x01, 0x00, 0x00
.byte 0x05, 0x00, 0x00, 0x00, 0x8E, 0x01, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x8F, 0x01, 0x00, 0x00
.byte 0x07, 0x00, 0x00, 0x00, 0x90, 0x01, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x91, 0x01, 0x00, 0x00
.byte 0x09, 0x00, 0x00, 0x00, 0x92, 0x01, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x93, 0x01, 0x00, 0x00
.byte 0x0B, 0x00, 0x00, 0x00, 0x94, 0x01, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x95, 0x01, 0x00, 0x00
.byte 0x0D, 0x00, 0x00, 0x00, 0x96, 0x01, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x97, 0x01, 0x00, 0x00
.byte 0x0F, 0x00, 0x00, 0x00, 0x98, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x99, 0x01, 0x00, 0x00
.byte 0x11, 0x00, 0x00, 0x00, 0x9A, 0x01, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x9B, 0x01, 0x00, 0x00
.byte 0x13, 0x00, 0x00, 0x00, 0x9C, 0x01, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x9D, 0x01, 0x00, 0x00
.byte 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.global UNK05_021F9194
UNK05_021F9194:
.word 0x00001001
.word 0x00001002
.word 0x00001003
.word 0x00001004
.word 0x00001005
.word 0x00001006
.word 0x00001007
.word 0x00001008
.word 0x00001009
.word 0x0000100A
.word 0x0000100B
.word 0x0000100C
.word 0x0000100D
.word 0x0000100E
.word 0x0000100F
.word 0x00001010
.word 0x00001011
.word 0x00001012
.word 0x00001013
.word 0x00001014
.word 0x00001015
.word 0x00001016
.word 0x00001017
.word 0x00001018
.word 0x00001019
.word 0x0000101A
.word 0x0000101B
.word 0x0000101C
.word 0x0000101D
.word 0x0000101E
.word 0x0000101F
.word 0x00001020
.word 0x00001021
.word 0x00001022
.word 0x00001023
.word 0x00001024
.word 0x00001025
.word 0x00001026
.word 0x00001027
.word 0x00001028
.word 0x00001029
.word 0x0000102A
.word 0x0000102B
.word 0x0000102C
.word 0x0000102D
.word 0x0000102E
.word 0x0000102F
.word 0x00001030
.word 0x00001031
.word 0x00001032
.word 0x00001033
.word 0x00001034
.word 0x00001035
.word 0x00001036
.word 0x00001037
.word 0x00001038
.word 0x00001039
.word 0x0000103A
.word 0x0000103B
.word 0x0000103C
.word 0x0000103D
.word 0x0000103E
.word 0x0000103F
.word 0x00001040
.word 0x00001041
.word 0x00001042
.word 0x00001043
.word 0x00001044
.word 0x00001045
.word 0x00001046
.word 0x00001047
.word 0x00001048
.word 0x00001049
.word 0x0000104A
.word 0x0000104B
.word 0x0000104C
.word 0x0000104D
.word 0x0000104E
.word 0x0000104F
.word 0x00001050
.word 0x00001051
.word 0x00001052
.word 0x00001053
.word 0x00001054
.word 0x00001055
.word 0x00001056
.word 0x00001057
.word 0x00001058
.word 0x00001059
.word 0x0000105A
.word 0x0000105B
.word 0x0000105C
.word 0x0000105D
.word 0x0000105E
.word 0x0000105F
.word 0x00001060
.word 0x00001061
.word 0x00001062
.word 0x00001063
.word 0x00001064
.word 0x00001065
.word 0x00001066
.word 0x00001067
.word 0x00001068
.word 0x00001069
.word 0x0000106A
.word 0x0000106B
.word 0x0000106C
.word 0x0000106D
.word 0x0000106E
.word 0x0000106F
.word 0x00001070
.word 0x00001071
.word 0x00001072
.word 0x00001073
.word 0x00001074
.word 0x00001075
.word 0x00001076
.word 0x00001077
.word 0x00001078
.word 0x00001079
.word 0x0000107A
.word 0x0000107B
.word 0x0000107C
.word 0x0000107D
.word 0x0000107E
.word 0x0000107F
.word 0x00001080
.word 0x00001081
.word 0x00001082
.word 0x00001083
.word 0x00001084
.word 0x00001085
.word 0x00001086
.word 0x00001087
.word 0x00001088
.word 0x00001089
.word 0x0000108A
.word 0x0000108B
.word 0x0000108C
.word 0x0000108D
.word 0x0000108E
.word 0x0000108F
.word 0x00001090
.word 0x00001091
.word 0x00001092
.word 0x00001093
.word 0x00001094
.word 0x00001095
.word 0x00001096
.word 0x00001097
.word 0x00001098
.word 0x00001099
.word 0x0000109A
.word 0x0000109B
.word 0x0000109C
.word 0x0000109D
.word 0x0000109E
.word 0x0000109F
.word 0x000010A0
.word 0x000010A1
.word 0x000010A2
.word 0x000010A3
.word 0x000010A4
.word 0x000010A5
.word 0x000010A6
.word 0x000010A7
.word 0x000010A8
.word 0x000010A9
.word 0x000010AA
.word 0x000010AB
.word 0x000010AC
.word 0x000010AD
.word 0x000010AE
.word 0x000010AF
.word 0x000010B0
.word 0x000010B1
.word 0x000010B2
.word 0x000010B3
.word 0x000010B4
.word 0x000010B5
.word 0x000010B6
.word 0x000010B7
.word 0x000010B8
.word 0x000010B9
.word 0x000010BA
.word 0x000010BB
.word 0x000010BC
.word 0x000010BD
.word 0x000010BE
.word 0x000010BF
.word 0x000010C0
.global UNK05_021F9494
UNK05_021F9494: ; 0x021F9494
.word 0x00, UNK05_021F8BC8
.word 0x01, UNK05_021F8C68
.word 0x02, UNK05_021F8C68
.word 0x03, UNK05_021F8C68
.word 0x04, UNK05_021F8C68
.word 0x05, UNK05_021F8C68
.word 0x06, UNK05_021F8C68
.word 0x07, UNK05_021F8C68
.word 0x08, UNK05_021F8C68
.word 0x09, UNK05_021F8C68
.word 0x0A, UNK05_021F8C68
.word 0x0B, UNK05_021F8C68
.word 0x0C, UNK05_021F8C68
.word 0x0D, UNK05_021F8C68
.word 0x0E, UNK05_021F8C68
.word 0x0F, UNK05_021F8C68
.word 0x10, UNK05_021F8C68
.word 0x11, UNK05_021F8C68
.word 0x12, UNK05_021F8C68
.word 0x13, UNK05_021F8C68
.word 0x14, UNK05_021F8C68
.word 0x15, UNK05_021F8C18
.word 0x16, UNK05_021F8C68
.word 0x17, UNK05_021F8C68
.word 0x18, UNK05_021F8C68
.word 0x19, UNK05_021F8C68
.word 0x1A, UNK05_021F8CB8
.word 0x1B, UNK05_021F8C68
.word 0x1C, UNK05_021F8C68
.word 0x1D, UNK05_021F8C68
.word 0x1E, UNK05_021F8C68
.word 0x1F, UNK05_021F8C68
.word 0x20, UNK05_021F8C68
.word 0x21, UNK05_021F8C68
.word 0x22, UNK05_021F8C68
.word 0x23, UNK05_021F8C68
.word 0x24, UNK05_021F8C68
.word 0x25, UNK05_021F8C68
.word 0x26, UNK05_021F8C68
.word 0x27, UNK05_021F8C68
.word 0x28, UNK05_021F8C68
.word 0x29, UNK05_021F8C68
.word 0x2A, UNK05_021F8C68
.word 0x2B, UNK05_021F8C68
.word 0x2C, UNK05_021F8C68
.word 0x2D, UNK05_021F8C68
.word 0x2E, UNK05_021F8C68
.word 0x2F, UNK05_021F8C68
.word 0x30, UNK05_021F8C68
.word 0x31, UNK05_021F8C68
.word 0x32, UNK05_021F8C68
.word 0x33, UNK05_021F8C68
.word 0x34, UNK05_021F8C68
.word 0x35, UNK05_021F8C68
.word 0x36, UNK05_021F8C68
.word 0x37, UNK05_021F8C68
.word 0x38, UNK05_021F8C68
.word 0x39, UNK05_021F8C68
.word 0x3A, UNK05_021F8C68
.word 0x3B, UNK05_021F8C68
.word 0x3C, UNK05_021F8C68
.word 0x3D, UNK05_021F8C68
.word 0x3E, UNK05_021F8C68
.word 0x3F, UNK05_021F8C68
.word 0x40, UNK05_021F8C68
.word 0x41, UNK05_021F8C68
.word 0x42, UNK05_021F8C68
.word 0x43, UNK05_021F8C68
.word 0x44, UNK05_021F8C68
.word 0x45, UNK05_021F8C68
.word 0x46, UNK05_021F8C68
.word 0x47, UNK05_021F8C68
.word 0x48, UNK05_021F8C68
.word 0x49, UNK05_021F8C68
.word 0x4A, UNK05_021F8C68
.word 0x4B, UNK05_021F8C68
.word 0x4C, UNK05_021F8C68
.word 0x4D, UNK05_021F8C68
.word 0x4E, UNK05_021F8C68
.word 0x4F, UNK05_021F8C68
.word 0x50, UNK05_021F8C68
.word 0x51, UNK05_021F8C68
.word 0x52, UNK05_021F8C68
.word 0x53, UNK05_021F8C68
.word 0x54, UNK05_021F8CCC
.word 0x55, UNK05_021F8CCC
.word 0x56, UNK05_021F8CCC
.word 0x57, UNK05_021F8CCC
.word 0x58, UNK05_021F8C68
.word 0x59, UNK05_021F8C68
.word 0x5A, UNK05_021F8C68
.word 0x5B, UNK05_021F8C90
.word 0x5C, UNK05_021F8C90
.word 0x5D, UNK05_021F8C90
.word 0x5E, UNK05_021F8C90
.word 0x5F, UNK05_021F8C90
.word 0x60, UNK05_021F8C90
.word 0x61, UNK05_021F8BC8
.word 0x62, UNK05_021F8C18
.word 0x63, UNK05_021F8C68
.word 0x64, UNK05_021F8C54
.word 0x76, UNK05_021F8BF0
.word 0x78, UNK05_021F8C68
.word 0x79, UNK05_021F8C68
.word 0x7A, UNK05_021F8C68
.word 0x7B, UNK05_021F8C68
.word 0x7C, UNK05_021F8C68
.word 0x7D, UNK05_021F8C68
.word 0x7E, UNK05_021F8C68
.word 0x7F, UNK05_021F8C68
.word 0x80, UNK05_021F8C68
.word 0x81, UNK05_021F8C68
.word 0x82, UNK05_021F8C68
.word 0x83, UNK05_021F8C68
.word 0x84, UNK05_021F8C68
.word 0x85, UNK05_021F8C68
.word 0x86, UNK05_021F8C68
.word 0x87, UNK05_021F8C68
.word 0x88, UNK05_021F8C68
.word 0x89, UNK05_021F8C68
.word 0x8A, UNK05_021F8C68
.word 0x8B, UNK05_021F8C68
.word 0x8C, UNK05_021F8C68
.word 0x8D, UNK05_021F8C68
.word 0x8E, UNK05_021F8C68
.word 0x8F, UNK05_021F8C68
.word 0x90, UNK05_021F8C68
.word 0x91, UNK05_021F8C68
.word 0x92, UNK05_021F8C68
.word 0x93, UNK05_021F8C68
.word 0x94, UNK05_021F8C68
.word 0x95, UNK05_021F8C68
.word 0x96, UNK05_021F8C68
.word 0x97, UNK05_021F8D1C
.word 0x98, UNK05_021F8D1C
.word 0x99, UNK05_021F8D1C
.word 0x9A, UNK05_021F8BDC
.word 0x9B, UNK05_021F8BDC
.word 0x9C, UNK05_021F8C40
.word 0x9D, UNK05_021F8C40
.word 0x9E, UNK05_021F8C68
.word 0x9F, UNK05_021F8C40
.word 0xA0, UNK05_021F8C40
.word 0xA1, UNK05_021F8C40
.word 0xA2, UNK05_021F8C68
.word 0xA3, UNK05_021F8C68
.word 0xA4, UNK05_021F8C68
.word 0xA5, UNK05_021F8C68
.word 0xA6, UNK05_021F8C68
.word 0xA7, UNK05_021F8C68
.word 0xA8, UNK05_021F8C68
.word 0xA9, UNK05_021F8C68
.word 0xAA, UNK05_021F8C68
.word 0xAB, UNK05_021F8C68
.word 0xAC, UNK05_021F8C68
.word 0xAD, UNK05_021F8CE0
.word 0xAE, UNK05_021F8C68
.word 0xAF, UNK05_021F8C68
.word 0xB0, UNK05_021F8D30
.word 0xB1, UNK05_021F8D30
.word 0xB4, UNK05_021F8BB4
.word 0xB5, UNK05_021F8BB4
.word 0xB2, UNK05_021F8C2C
.word 0xB3, UNK05_021F8C2C
.word 0xB6, UNK05_021F8CCC
.word 0xB7, UNK05_021F8C7C
.word 0xB8, UNK05_021F8CCC
.word 0xB9, UNK05_021F8C68
.word 0xBA, UNK05_021F8BC8
.word 0xBB, UNK05_021F8BC8
.word 0xBC, UNK05_021F8CF4
.word 0xBD, UNK05_021F8CF4
.word 0xBE, UNK05_021F8C68
.word 0xBF, UNK05_021F8C68
.word 0xC0, UNK05_021F8C68
.word 0xC1, UNK05_021F8C68
.word 0xC2, UNK05_021F8C68
.word 0xC3, UNK05_021F8C04
.word 0xC4, UNK05_021F8CA4
.word 0xC5, UNK05_021F8CA4
.word 0xC6, UNK05_021F8D30
.word 0xC7, UNK05_021F8D30
.word 0xC8, UNK05_021F8BA0
.word 0xC9, UNK05_021F8BA0
.word 0xCA, UNK05_021F8CCC
.word 0xCB, UNK05_021F8CCC
.word 0xCC, UNK05_021F8C68
.word 0xCD, UNK05_021F8C68
.word 0xCE, UNK05_021F8C68
.word 0xCF, UNK05_021F8C68
.word 0xD0, UNK05_021F8C68
.word 0xD1, UNK05_021F8D08
; 0x021F9B24
.byte 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x02, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x04, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x06, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x08, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x0A, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x0C, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x0E, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x10, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x12, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x14, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x91, 0x04, 0x00, 0x00
.byte 0x16, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x18, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x1A, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x1C, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x1D, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x1E, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x20, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x22, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x24, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x26, 0x00, 0x00, 0x00, 0x91, 0x04, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x91, 0x04, 0x00, 0x00
.byte 0x28, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x2A, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x2C, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x2D, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x2E, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x30, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x32, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x34, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x36, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x38, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x3A, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x3B, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x3C, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x3D, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x3E, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x40, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x42, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x44, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x46, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x48, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x4A, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x4B, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x4C, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x4D, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x4E, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x4F, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x50, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x52, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x54, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x56, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x58, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x5A, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x5B, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
.byte 0x5C, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x5D, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
.byte 0x5E, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
.byte 0x60, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x62, 0x00, 0x00, 0x00, 0x91, 0x04, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x64, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00
.byte 0x78, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x7A, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x7B, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x7C, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x7D, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x7E, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x80, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x82, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x84, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x86, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x88, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x8A, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x8B, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x8C, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x8D, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x8E, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x8F, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x90, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x92, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x94, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x96, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x98, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x9A, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x9B, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x9C, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x9D, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x9E, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x9F, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0xA0, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xA1, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0xA2, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xA3, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0xA4, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xA5, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0xA6, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xA7, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0xA8, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xA9, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0xAA, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xAB, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0xAC, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xAD, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0xAE, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xAF, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0xB0, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xB1, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0xB2, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xB3, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0xB4, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xB5, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0xB6, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xB7, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00
.byte 0xB8, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xB9, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0xBA, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xBB, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0xBC, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xBD, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0xBE, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xBF, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0xC0, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xC1, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0xC2, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xC3, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC4, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0xC5, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xC6, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0xC7, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xC8, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00
.byte 0xC9, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xCA, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0xCB, 0x00, 0x00, 0x00, 0x11, 0x04, 0x00, 0x00, 0xCC, 0x00, 0x00, 0x00, 0x91, 0x04, 0x00, 0x00
.byte 0xCD, 0x00, 0x00, 0x00, 0x91, 0x04, 0x00, 0x00, 0xCE, 0x00, 0x00, 0x00, 0x91, 0x04, 0x00, 0x00
.byte 0xCF, 0x00, 0x00, 0x00, 0x91, 0x04, 0x00, 0x00, 0xD0, 0x00, 0x00, 0x00, 0x91, 0x04, 0x00, 0x00
.byte 0xD1, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x5A, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
.byte 0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00
.byte 0x06, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00
.byte 0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00
.byte 0x0A, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x0C, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00
.byte 0x0E, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00
.byte 0x10, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00
.byte 0x12, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00
.byte 0x14, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x5C, 0x00, 0x00, 0x00
.byte 0x16, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00
.byte 0x18, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00
.byte 0x1A, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00
.byte 0x1C, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x1D, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00
.byte 0x1E, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x1D, 0x00, 0x00, 0x00
.byte 0x20, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00
.byte 0x22, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00
.byte 0x24, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00
.byte 0x26, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00
.byte 0x28, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00
.byte 0x2A, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00
.byte 0x2C, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x00, 0x00, 0x2D, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00
.byte 0x2E, 0x00, 0x00, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00, 0x2D, 0x00, 0x00, 0x00
.byte 0x30, 0x00, 0x00, 0x00, 0x2E, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00
.byte 0x32, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00
.byte 0x34, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00
.byte 0x36, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00
.byte 0x38, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00
.byte 0x3A, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00
.byte 0x3C, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x00, 0x00
.byte 0x3E, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x00, 0x00
.byte 0x40, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00
.byte 0x42, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00
.byte 0x44, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00
.byte 0x46, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00
.byte 0x48, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00
.byte 0x4A, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x4B, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00
.byte 0x4C, 0x00, 0x00, 0x00, 0x4A, 0x00, 0x00, 0x00, 0x4D, 0x00, 0x00, 0x00, 0x4B, 0x00, 0x00, 0x00
.byte 0x4E, 0x00, 0x00, 0x00, 0x4C, 0x00, 0x00, 0x00, 0x4F, 0x00, 0x00, 0x00, 0x4D, 0x00, 0x00, 0x00
.byte 0x50, 0x00, 0x00, 0x00, 0x4E, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x4F, 0x00, 0x00, 0x00
.byte 0x52, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00
.byte 0x54, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00
.byte 0x56, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00
.byte 0x58, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00
.byte 0x5A, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x5B, 0x00, 0x00, 0x00
.byte 0x62, 0x00, 0x00, 0x00, 0x5D, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x5E, 0x00, 0x00, 0x00
.byte 0x00, 0x10, 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00
.byte 0x02, 0x10, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x03, 0x10, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00
.byte 0x78, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00
.byte 0x7A, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0x7B, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00
.byte 0x7C, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x7D, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00
.byte 0x7E, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x6A, 0x00, 0x00, 0x00
.byte 0x80, 0x00, 0x00, 0x00, 0x6B, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x6C, 0x00, 0x00, 0x00
.byte 0x82, 0x00, 0x00, 0x00, 0x6D, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x6E, 0x00, 0x00, 0x00
.byte 0x84, 0x00, 0x00, 0x00, 0x6F, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00
.byte 0x86, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00
.byte 0x88, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00
.byte 0x8A, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x8B, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00
.byte 0x8C, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x8D, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00
.byte 0x8E, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x8F, 0x00, 0x00, 0x00, 0x7A, 0x00, 0x00, 0x00
.byte 0x90, 0x00, 0x00, 0x00, 0x7B, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00
.byte 0x92, 0x00, 0x00, 0x00, 0x7D, 0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00
.byte 0x94, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00
.byte 0x96, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00
.byte 0x98, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00
.byte 0x9A, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x9B, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00
.byte 0x9C, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x9D, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00
.byte 0x9E, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x9F, 0x00, 0x00, 0x00, 0x8A, 0x00, 0x00, 0x00
.byte 0xA0, 0x00, 0x00, 0x00, 0x8B, 0x00, 0x00, 0x00, 0xA1, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x00
.byte 0xA2, 0x00, 0x00, 0x00, 0x8D, 0x00, 0x00, 0x00, 0xA3, 0x00, 0x00, 0x00, 0x8E, 0x00, 0x00, 0x00
.byte 0xA4, 0x00, 0x00, 0x00, 0x8F, 0x00, 0x00, 0x00, 0xA5, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00
.byte 0xA6, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0xA7, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00
.byte 0xA8, 0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00, 0xA9, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00
.byte 0xAA, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0xAB, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00
.byte 0xAC, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, 0xAD, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00
.byte 0xAE, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0xAF, 0x00, 0x00, 0x00, 0x9A, 0x00, 0x00, 0x00
.byte 0xB0, 0x00, 0x00, 0x00, 0x9B, 0x00, 0x00, 0x00, 0xB1, 0x00, 0x00, 0x00, 0x9C, 0x00, 0x00, 0x00
.byte 0xB4, 0x00, 0x00, 0x00, 0x9D, 0x00, 0x00, 0x00, 0xB5, 0x00, 0x00, 0x00, 0x9E, 0x00, 0x00, 0x00
.byte 0xB2, 0x00, 0x00, 0x00, 0x9F, 0x00, 0x00, 0x00, 0xB3, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x00
.byte 0xB6, 0x00, 0x00, 0x00, 0xA1, 0x00, 0x00, 0x00, 0xB8, 0x00, 0x00, 0x00, 0xA2, 0x00, 0x00, 0x00
.byte 0xB9, 0x00, 0x00, 0x00, 0xA3, 0x00, 0x00, 0x00, 0xBA, 0x00, 0x00, 0x00, 0xA4, 0x00, 0x00, 0x00
.byte 0xBB, 0x00, 0x00, 0x00, 0xA5, 0x00, 0x00, 0x00, 0xBC, 0x00, 0x00, 0x00, 0xA6, 0x00, 0x00, 0x00
.byte 0xBD, 0x00, 0x00, 0x00, 0xA7, 0x00, 0x00, 0x00, 0xBE, 0x00, 0x00, 0x00, 0xA8, 0x00, 0x00, 0x00
.byte 0xBF, 0x00, 0x00, 0x00, 0xA9, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0xAA, 0x00, 0x00, 0x00
.byte 0x04, 0x10, 0x00, 0x00, 0xAB, 0x00, 0x00, 0x00, 0x05, 0x10, 0x00, 0x00, 0xAC, 0x00, 0x00, 0x00
.byte 0x06, 0x10, 0x00, 0x00, 0xAD, 0x00, 0x00, 0x00, 0x07, 0x10, 0x00, 0x00, 0xAE, 0x00, 0x00, 0x00
.byte 0x08, 0x10, 0x00, 0x00, 0xAF, 0x00, 0x00, 0x00, 0x09, 0x10, 0x00, 0x00, 0xB0, 0x00, 0x00, 0x00
.byte 0x0A, 0x10, 0x00, 0x00, 0xB1, 0x00, 0x00, 0x00, 0x0B, 0x10, 0x00, 0x00, 0xB2, 0x00, 0x00, 0x00
.byte 0x0C, 0x10, 0x00, 0x00, 0xB3, 0x00, 0x00, 0x00, 0x0D, 0x10, 0x00, 0x00, 0xB4, 0x00, 0x00, 0x00
.byte 0x0E, 0x10, 0x00, 0x00, 0xB5, 0x00, 0x00, 0x00, 0x0F, 0x10, 0x00, 0x00, 0xB6, 0x00, 0x00, 0x00
.byte 0x10, 0x10, 0x00, 0x00, 0xB7, 0x00, 0x00, 0x00, 0x11, 0x10, 0x00, 0x00, 0xB8, 0x00, 0x00, 0x00
.byte 0x12, 0x10, 0x00, 0x00, 0xB9, 0x00, 0x00, 0x00, 0x13, 0x10, 0x00, 0x00, 0xBA, 0x00, 0x00, 0x00
.byte 0x14, 0x10, 0x00, 0x00, 0xBB, 0x00, 0x00, 0x00, 0x15, 0x10, 0x00, 0x00, 0xBC, 0x00, 0x00, 0x00
.byte 0x16, 0x10, 0x00, 0x00, 0xBD, 0x00, 0x00, 0x00, 0x17, 0x10, 0x00, 0x00, 0xBE, 0x00, 0x00, 0x00
.byte 0x18, 0x10, 0x00, 0x00, 0xBF, 0x00, 0x00, 0x00, 0x19, 0x10, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00
.byte 0x1A, 0x10, 0x00, 0x00, 0xC1, 0x00, 0x00, 0x00, 0x1B, 0x10, 0x00, 0x00, 0xC2, 0x00, 0x00, 0x00
.byte 0x1C, 0x10, 0x00, 0x00, 0xC3, 0x00, 0x00, 0x00, 0x1D, 0x10, 0x00, 0x00, 0xC4, 0x00, 0x00, 0x00
.byte 0x1E, 0x10, 0x00, 0x00, 0xC5, 0x00, 0x00, 0x00, 0x1F, 0x10, 0x00, 0x00, 0xC6, 0x00, 0x00, 0x00
.byte 0x20, 0x10, 0x00, 0x00, 0xC7, 0x00, 0x00, 0x00, 0x21, 0x10, 0x00, 0x00, 0xC8, 0x00, 0x00, 0x00
.byte 0x22, 0x10, 0x00, 0x00, 0xC9, 0x00, 0x00, 0x00, 0x23, 0x10, 0x00, 0x00, 0xCA, 0x00, 0x00, 0x00
.byte 0x24, 0x10, 0x00, 0x00, 0xCB, 0x00, 0x00, 0x00, 0x25, 0x10, 0x00, 0x00, 0xCC, 0x00, 0x00, 0x00
.byte 0x26, 0x10, 0x00, 0x00, 0xCD, 0x00, 0x00, 0x00, 0x27, 0x10, 0x00, 0x00, 0xCE, 0x00, 0x00, 0x00
.byte 0x28, 0x10, 0x00, 0x00, 0xCF, 0x00, 0x00, 0x00, 0x29, 0x10, 0x00, 0x00, 0xD0, 0x00, 0x00, 0x00
.byte 0x2A, 0x10, 0x00, 0x00, 0xD1, 0x00, 0x00, 0x00, 0x2B, 0x10, 0x00, 0x00, 0xD2, 0x00, 0x00, 0x00
.byte 0x2C, 0x10, 0x00, 0x00, 0xD3, 0x00, 0x00, 0x00, 0x2D, 0x10, 0x00, 0x00, 0xD4, 0x00, 0x00, 0x00
.byte 0x2E, 0x10, 0x00, 0x00, 0xD5, 0x00, 0x00, 0x00, 0x2F, 0x10, 0x00, 0x00, 0xD6, 0x00, 0x00, 0x00
.byte 0x30, 0x10, 0x00, 0x00, 0xD7, 0x00, 0x00, 0x00, 0x31, 0x10, 0x00, 0x00, 0xD8, 0x00, 0x00, 0x00
.byte 0x32, 0x10, 0x00, 0x00, 0xD9, 0x00, 0x00, 0x00, 0x33, 0x10, 0x00, 0x00, 0xDA, 0x00, 0x00, 0x00
.byte 0x34, 0x10, 0x00, 0x00, 0xDB, 0x00, 0x00, 0x00, 0x35, 0x10, 0x00, 0x00, 0xDC, 0x00, 0x00, 0x00
.byte 0x36, 0x10, 0x00, 0x00, 0xDD, 0x00, 0x00, 0x00, 0x37, 0x10, 0x00, 0x00, 0xDE, 0x00, 0x00, 0x00
.byte 0x38, 0x10, 0x00, 0x00, 0xDF, 0x00, 0x00, 0x00, 0x39, 0x10, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00
.byte 0x3A, 0x10, 0x00, 0x00, 0xE1, 0x00, 0x00, 0x00, 0x3B, 0x10, 0x00, 0x00, 0xE2, 0x00, 0x00, 0x00
.byte 0x3C, 0x10, 0x00, 0x00, 0xE3, 0x00, 0x00, 0x00, 0x3D, 0x10, 0x00, 0x00, 0xE4, 0x00, 0x00, 0x00
.byte 0x3E, 0x10, 0x00, 0x00, 0xE5, 0x00, 0x00, 0x00, 0x3F, 0x10, 0x00, 0x00, 0xE6, 0x00, 0x00, 0x00
.byte 0x40, 0x10, 0x00, 0x00, 0xE7, 0x00, 0x00, 0x00, 0x41, 0x10, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x00
.byte 0x42, 0x10, 0x00, 0x00, 0xE9, 0x00, 0x00, 0x00, 0x43, 0x10, 0x00, 0x00, 0xEA, 0x00, 0x00, 0x00
.byte 0x44, 0x10, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x00, 0x45, 0x10, 0x00, 0x00, 0xEC, 0x00, 0x00, 0x00
.byte 0x46, 0x10, 0x00, 0x00, 0xED, 0x00, 0x00, 0x00, 0x47, 0x10, 0x00, 0x00, 0xEE, 0x00, 0x00, 0x00
.byte 0x48, 0x10, 0x00, 0x00, 0xEF, 0x00, 0x00, 0x00, 0x49, 0x10, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00
.byte 0x4A, 0x10, 0x00, 0x00, 0xF1, 0x00, 0x00, 0x00, 0x4B, 0x10, 0x00, 0x00, 0xF2, 0x00, 0x00, 0x00
.byte 0x4C, 0x10, 0x00, 0x00, 0xF3, 0x00, 0x00, 0x00, 0x4D, 0x10, 0x00, 0x00, 0xF4, 0x00, 0x00, 0x00
.byte 0x4E, 0x10, 0x00, 0x00, 0xF5, 0x00, 0x00, 0x00, 0x4F, 0x10, 0x00, 0x00, 0xF6, 0x00, 0x00, 0x00
.byte 0x50, 0x10, 0x00, 0x00, 0xF7, 0x00, 0x00, 0x00, 0x51, 0x10, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00
.byte 0x52, 0x10, 0x00, 0x00, 0xF9, 0x00, 0x00, 0x00, 0x53, 0x10, 0x00, 0x00, 0xFA, 0x00, 0x00, 0x00
.byte 0x54, 0x10, 0x00, 0x00, 0xFB, 0x00, 0x00, 0x00, 0x55, 0x10, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00
.byte 0x56, 0x10, 0x00, 0x00, 0xFD, 0x00, 0x00, 0x00, 0x57, 0x10, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00
.byte 0x58, 0x10, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x59, 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00
.byte 0x5A, 0x10, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x5B, 0x10, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00
.byte 0x5C, 0x10, 0x00, 0x00, 0x03, 0x01, 0x00, 0x00, 0x5D, 0x10, 0x00, 0x00, 0x04, 0x01, 0x00, 0x00
.byte 0x5E, 0x10, 0x00, 0x00, 0x05, 0x01, 0x00, 0x00, 0x5F, 0x10, 0x00, 0x00, 0x06, 0x01, 0x00, 0x00
.byte 0x60, 0x10, 0x00, 0x00, 0x07, 0x01, 0x00, 0x00, 0x61, 0x10, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00
.byte 0x62, 0x10, 0x00, 0x00, 0x09, 0x01, 0x00, 0x00, 0x63, 0x10, 0x00, 0x00, 0x0A, 0x01, 0x00, 0x00
.byte 0x64, 0x10, 0x00, 0x00, 0x0B, 0x01, 0x00, 0x00, 0x65, 0x10, 0x00, 0x00, 0x0C, 0x01, 0x00, 0x00
.byte 0x66, 0x10, 0x00, 0x00, 0x0D, 0x01, 0x00, 0x00, 0x67, 0x10, 0x00, 0x00, 0x0E, 0x01, 0x00, 0x00
.byte 0x68, 0x10, 0x00, 0x00, 0x0F, 0x01, 0x00, 0x00, 0x69, 0x10, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00
.byte 0x6A, 0x10, 0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x6B, 0x10, 0x00, 0x00, 0x12, 0x01, 0x00, 0x00
.byte 0x6C, 0x10, 0x00, 0x00, 0x13, 0x01, 0x00, 0x00, 0x6D, 0x10, 0x00, 0x00, 0x14, 0x01, 0x00, 0x00
.byte 0x6E, 0x10, 0x00, 0x00, 0x15, 0x01, 0x00, 0x00, 0x6F, 0x10, 0x00, 0x00, 0x16, 0x01, 0x00, 0x00
.byte 0x70, 0x10, 0x00, 0x00, 0x17, 0x01, 0x00, 0x00, 0x71, 0x10, 0x00, 0x00, 0x18, 0x01, 0x00, 0x00
.byte 0x72, 0x10, 0x00, 0x00, 0x19, 0x01, 0x00, 0x00, 0x73, 0x10, 0x00, 0x00, 0x1A, 0x01, 0x00, 0x00
.byte 0x74, 0x10, 0x00, 0x00, 0x1B, 0x01, 0x00, 0x00, 0x75, 0x10, 0x00, 0x00, 0x1C, 0x01, 0x00, 0x00
.byte 0x76, 0x10, 0x00, 0x00, 0x1D, 0x01, 0x00, 0x00, 0x77, 0x10, 0x00, 0x00, 0x1E, 0x01, 0x00, 0x00
.byte 0x78, 0x10, 0x00, 0x00, 0x1F, 0x01, 0x00, 0x00, 0x79, 0x10, 0x00, 0x00, 0x20, 0x01, 0x00, 0x00
.byte 0x7A, 0x10, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x7B, 0x10, 0x00, 0x00, 0x22, 0x01, 0x00, 0x00
.byte 0x7C, 0x10, 0x00, 0x00, 0x23, 0x01, 0x00, 0x00, 0x7D, 0x10, 0x00, 0x00, 0x24, 0x01, 0x00, 0x00
.byte 0x7E, 0x10, 0x00, 0x00, 0x25, 0x01, 0x00, 0x00, 0x7F, 0x10, 0x00, 0x00, 0x26, 0x01, 0x00, 0x00
.byte 0x80, 0x10, 0x00, 0x00, 0x27, 0x01, 0x00, 0x00, 0x81, 0x10, 0x00, 0x00, 0x28, 0x01, 0x00, 0x00
.byte 0x82, 0x10, 0x00, 0x00, 0x29, 0x01, 0x00, 0x00, 0x83, 0x10, 0x00, 0x00, 0x2A, 0x01, 0x00, 0x00
.byte 0x84, 0x10, 0x00, 0x00, 0x2B, 0x01, 0x00, 0x00, 0x85, 0x10, 0x00, 0x00, 0x2C, 0x01, 0x00, 0x00
.byte 0x86, 0x10, 0x00, 0x00, 0x2D, 0x01, 0x00, 0x00, 0x87, 0x10, 0x00, 0x00, 0x2E, 0x01, 0x00, 0x00
.byte 0x88, 0x10, 0x00, 0x00, 0x2F, 0x01, 0x00, 0x00, 0x89, 0x10, 0x00, 0x00, 0x30, 0x01, 0x00, 0x00
.byte 0x8A, 0x10, 0x00, 0x00, 0x31, 0x01, 0x00, 0x00, 0x8B, 0x10, 0x00, 0x00, 0x32, 0x01, 0x00, 0x00
.byte 0x8C, 0x10, 0x00, 0x00, 0x33, 0x01, 0x00, 0x00, 0x8D, 0x10, 0x00, 0x00, 0x34, 0x01, 0x00, 0x00
.byte 0x8E, 0x10, 0x00, 0x00, 0x35, 0x01, 0x00, 0x00, 0x8F, 0x10, 0x00, 0x00, 0x36, 0x01, 0x00, 0x00
.byte 0x90, 0x10, 0x00, 0x00, 0x37, 0x01, 0x00, 0x00, 0x91, 0x10, 0x00, 0x00, 0x38, 0x01, 0x00, 0x00
.byte 0x92, 0x10, 0x00, 0x00, 0x39, 0x01, 0x00, 0x00, 0x93, 0x10, 0x00, 0x00, 0x3A, 0x01, 0x00, 0x00
.byte 0x94, 0x10, 0x00, 0x00, 0x3B, 0x01, 0x00, 0x00, 0x95, 0x10, 0x00, 0x00, 0x3C, 0x01, 0x00, 0x00
.byte 0x96, 0x10, 0x00, 0x00, 0x3D, 0x01, 0x00, 0x00, 0x97, 0x10, 0x00, 0x00, 0x3E, 0x01, 0x00, 0x00
.byte 0x98, 0x10, 0x00, 0x00, 0x3F, 0x01, 0x00, 0x00, 0x99, 0x10, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00
.byte 0x9A, 0x10, 0x00, 0x00, 0x41, 0x01, 0x00, 0x00, 0x9B, 0x10, 0x00, 0x00, 0x42, 0x01, 0x00, 0x00
.byte 0x9C, 0x10, 0x00, 0x00, 0x43, 0x01, 0x00, 0x00, 0x9D, 0x10, 0x00, 0x00, 0x44, 0x01, 0x00, 0x00
.byte 0x9E, 0x10, 0x00, 0x00, 0x45, 0x01, 0x00, 0x00, 0x9F, 0x10, 0x00, 0x00, 0x46, 0x01, 0x00, 0x00
.byte 0xA0, 0x10, 0x00, 0x00, 0x47, 0x01, 0x00, 0x00, 0xA1, 0x10, 0x00, 0x00, 0x48, 0x01, 0x00, 0x00
.byte 0xA2, 0x10, 0x00, 0x00, 0x49, 0x01, 0x00, 0x00, 0xA3, 0x10, 0x00, 0x00, 0x4A, 0x01, 0x00, 0x00
.byte 0xA4, 0x10, 0x00, 0x00, 0x4B, 0x01, 0x00, 0x00, 0xA5, 0x10, 0x00, 0x00, 0x4C, 0x01, 0x00, 0x00
.byte 0xA6, 0x10, 0x00, 0x00, 0x4D, 0x01, 0x00, 0x00, 0xA7, 0x10, 0x00, 0x00, 0x4E, 0x01, 0x00, 0x00
.byte 0xA8, 0x10, 0x00, 0x00, 0x4F, 0x01, 0x00, 0x00, 0xA9, 0x10, 0x00, 0x00, 0x50, 0x01, 0x00, 0x00
.byte 0xAA, 0x10, 0x00, 0x00, 0x51, 0x01, 0x00, 0x00, 0xAB, 0x10, 0x00, 0x00, 0x52, 0x01, 0x00, 0x00
.byte 0xAC, 0x10, 0x00, 0x00, 0x53, 0x01, 0x00, 0x00, 0xAD, 0x10, 0x00, 0x00, 0x54, 0x01, 0x00, 0x00
.byte 0xAE, 0x10, 0x00, 0x00, 0x55, 0x01, 0x00, 0x00, 0xAF, 0x10, 0x00, 0x00, 0x56, 0x01, 0x00, 0x00
.byte 0xB0, 0x10, 0x00, 0x00, 0x57, 0x01, 0x00, 0x00, 0xB1, 0x10, 0x00, 0x00, 0x58, 0x01, 0x00, 0x00
.byte 0xB2, 0x10, 0x00, 0x00, 0x59, 0x01, 0x00, 0x00, 0xB3, 0x10, 0x00, 0x00, 0x5A, 0x01, 0x00, 0x00
.byte 0xB4, 0x10, 0x00, 0x00, 0x5B, 0x01, 0x00, 0x00, 0xB5, 0x10, 0x00, 0x00, 0x5C, 0x01, 0x00, 0x00
.byte 0xB6, 0x10, 0x00, 0x00, 0x5D, 0x01, 0x00, 0x00, 0xB7, 0x10, 0x00, 0x00, 0x5E, 0x01, 0x00, 0x00
.byte 0xB8, 0x10, 0x00, 0x00, 0x5F, 0x01, 0x00, 0x00, 0xB9, 0x10, 0x00, 0x00, 0x60, 0x01, 0x00, 0x00
.byte 0xBA, 0x10, 0x00, 0x00, 0x61, 0x01, 0x00, 0x00, 0xBB, 0x10, 0x00, 0x00, 0x62, 0x01, 0x00, 0x00
.byte 0xBC, 0x10, 0x00, 0x00, 0x63, 0x01, 0x00, 0x00, 0xBD, 0x10, 0x00, 0x00, 0x64, 0x01, 0x00, 0x00
.byte 0xBE, 0x10, 0x00, 0x00, 0x65, 0x01, 0x00, 0x00, 0xBF, 0x10, 0x00, 0x00, 0x66, 0x01, 0x00, 0x00
.byte 0xC0, 0x10, 0x00, 0x00, 0x67, 0x01, 0x00, 0x00, 0xC1, 0x00, 0x00, 0x00, 0x69, 0x01, 0x00, 0x00
.byte 0xC2, 0x00, 0x00, 0x00, 0x68, 0x01, 0x00, 0x00, 0xC3, 0x00, 0x00, 0x00, 0x6A, 0x01, 0x00, 0x00
.byte 0xC4, 0x00, 0x00, 0x00, 0x6B, 0x01, 0x00, 0x00, 0xC5, 0x00, 0x00, 0x00, 0x6C, 0x01, 0x00, 0x00
.byte 0xC6, 0x00, 0x00, 0x00, 0x6D, 0x01, 0x00, 0x00, 0xC7, 0x00, 0x00, 0x00, 0x6E, 0x01, 0x00, 0x00
.byte 0xC8, 0x00, 0x00, 0x00, 0x6F, 0x01, 0x00, 0x00, 0xC9, 0x00, 0x00, 0x00, 0x70, 0x01, 0x00, 0x00
.byte 0xCA, 0x00, 0x00, 0x00, 0x71, 0x01, 0x00, 0x00, 0xCB, 0x00, 0x00, 0x00, 0x72, 0x01, 0x00, 0x00
.byte 0xCC, 0x00, 0x00, 0x00, 0x73, 0x01, 0x00, 0x00, 0xCD, 0x00, 0x00, 0x00, 0x74, 0x01, 0x00, 0x00
.byte 0xCE, 0x00, 0x00, 0x00, 0x75, 0x01, 0x00, 0x00, 0xCF, 0x00, 0x00, 0x00, 0x76, 0x01, 0x00, 0x00
.byte 0xD0, 0x00, 0x00, 0x00, 0x77, 0x01, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x90, 0x8F, 0x1F, 0x02
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xFC, 0x8F, 0x1F, 0x02
.byte 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x48, 0x8F, 0x1F, 0x02
.byte 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x1D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x27, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x2A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x2C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x2D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x2E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x39, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x3A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x3B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x3D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x45, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x4A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x4B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x4C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x4D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x4E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x4F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x51, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x54, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x55, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x56, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x57, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x59, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x5A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x90, 0x8F, 0x1F, 0x02
.byte 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xFC, 0x8F, 0x1F, 0x02
.byte 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x00, 0x10, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x01, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x02, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x03, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x7A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x7B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x7D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x85, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x87, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x8A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x8B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x8D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x8E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x8F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x93, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x94, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x95, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x97, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x74, 0x8D, 0x1F, 0x02
.byte 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x74, 0x8D, 0x1F, 0x02
.byte 0x99, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x74, 0x8D, 0x1F, 0x02
.byte 0x9A, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x44, 0x8D, 0x1F, 0x02
.byte 0x9B, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x44, 0x8D, 0x1F, 0x02
.byte 0x9C, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x5C, 0x8D, 0x1F, 0x02
.byte 0x9D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x5C, 0x8D, 0x1F, 0x02
.byte 0x9E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x9F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x5C, 0x8D, 0x1F, 0x02
.byte 0xA0, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x5C, 0x8D, 0x1F, 0x02
.byte 0xA1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x5C, 0x8D, 0x1F, 0x02
.byte 0xA2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0xA3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0xA4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0xA5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0xA6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0xA7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0xA8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0xA9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0xAB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0xAC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0xAD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0xEC, 0x8D, 0x1F, 0x02
.byte 0xAE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0xAF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0xB0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xA4, 0x8D, 0x1F, 0x02
.byte 0xB1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xA4, 0x8D, 0x1F, 0x02
.byte 0xB2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x94, 0x8E, 0x1F, 0x02
.byte 0xB3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x94, 0x8E, 0x1F, 0x02
.byte 0xB4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x10, 0x8E, 0x1F, 0x02
.byte 0xB5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x10, 0x8E, 0x1F, 0x02
.byte 0xB6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0xB8, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0xB9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0xBA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x90, 0x8F, 0x1F, 0x02
.byte 0xBB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x90, 0x8F, 0x1F, 0x02
.byte 0xBC, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x58, 0x8E, 0x1F, 0x02
.byte 0xBD, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x58, 0x8E, 0x1F, 0x02
.byte 0xBE, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0xBF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0x04, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x05, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x06, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x07, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x08, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x09, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x0A, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x0B, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x0C, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x0D, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x0E, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x0F, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x10, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x11, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x12, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x13, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x14, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x15, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x16, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x17, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x18, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x19, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x1A, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x1B, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x1C, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x1D, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x1E, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x1F, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x20, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x21, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x22, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x23, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x24, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x25, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x26, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x27, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x28, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x29, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x2A, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x2B, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x2C, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x2D, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x2E, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x2F, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x30, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x31, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x32, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x33, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x34, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x35, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x36, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x37, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x38, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x39, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x3A, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x3B, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x3C, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x3D, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x3E, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x3F, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x40, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x41, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x42, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x43, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x44, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x45, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x46, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x47, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x48, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x49, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x4A, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x4B, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x4C, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x4D, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x4E, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x4F, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x50, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x51, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x52, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x53, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x54, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x55, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x56, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x57, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x58, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x59, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x5A, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x5B, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x5C, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x5D, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x5E, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x5F, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x60, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x61, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x62, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x63, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x64, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x65, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x66, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x67, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x68, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x69, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x6A, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x6B, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x6C, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x6D, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x6E, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x6F, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x70, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x71, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x72, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x73, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x74, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x75, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x76, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x77, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x78, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x79, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x7A, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x7B, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x7C, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x7D, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x7E, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x7F, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x80, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x81, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x82, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x83, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x84, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x85, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x86, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x87, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x88, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x89, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x8A, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x8B, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x8C, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x8D, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x8E, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x8F, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x90, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x91, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x92, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x93, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x94, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x95, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x96, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x97, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x98, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x99, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x9A, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x9B, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x9C, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x9D, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x9E, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0x9F, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0xA0, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0xA1, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0xA2, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0xA3, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0xA4, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0xA5, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0xA6, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0xA7, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0xA8, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0xA9, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0xAA, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0xAB, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0xAC, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0xAD, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0xAE, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0xAF, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0xB0, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0xB1, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0xB2, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0xB3, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0xB4, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0xB5, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0xB6, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0xB7, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0xB8, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0xB9, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0xBA, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0xBB, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0xBC, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0xBD, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0xBE, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0xBF, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0xC0, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02
.byte 0xC1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0xC2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0xC3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x8C, 0x8D, 0x1F, 0x02
.byte 0xC4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0xD0, 0x8E, 0x1F, 0x02
.byte 0xC5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0xD0, 0x8E, 0x1F, 0x02
.byte 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0xBC, 0x8D, 0x1F, 0x02
.byte 0xC7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0xBC, 0x8D, 0x1F, 0x02
.byte 0xC8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x34, 0x8E, 0x1F, 0x02
.byte 0xC9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x34, 0x8E, 0x1F, 0x02
.byte 0xCA, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0xCB, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0xCC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0xCD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0xCE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0xCF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0xD0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02
.byte 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x30, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00
.byte 0xBD, 0x14, 0x1F, 0x02, 0x0D, 0x15, 0x1F, 0x02, 0x45, 0x15, 0x1F, 0x02, 0x09, 0x16, 0x1F, 0x02
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x30, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
.byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
.byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
.byte 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
.byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
.byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
.byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
.byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5D, 0x07, 0x1F, 0x02, 0x91, 0x07, 0x1F, 0x02
.byte 0x91, 0x07, 0x1F, 0x02, 0xCD, 0x07, 0x1F, 0x02, 0x09, 0x08, 0x1F, 0x02, 0x45, 0x08, 0x1F, 0x02
.byte 0x81, 0x08, 0x1F, 0x02, 0x05, 0x09, 0x1F, 0x02, 0x81, 0x09, 0x1F, 0x02, 0xC1, 0x12, 0x1F, 0x02
.byte 0x99, 0x0E, 0x1F, 0x02, 0x99, 0x0E, 0x1F, 0x02, 0x0D, 0x0F, 0x1F, 0x02, 0x61, 0x0F, 0x1F, 0x02
.byte 0x09, 0x10, 0x1F, 0x02, 0x09, 0x10, 0x1F, 0x02, 0x09, 0x10, 0x1F, 0x02, 0x4D, 0x13, 0x1F, 0x02
.byte 0xC9, 0x13, 0x1F, 0x02, 0x29, 0x0E, 0x1F, 0x02, 0x99, 0x0E, 0x1F, 0x02, 0x99, 0x0E, 0x1F, 0x02
.byte 0x0D, 0x0F, 0x1F, 0x02, 0x61, 0x0F, 0x1F, 0x02, 0xB5, 0x0F, 0x1F, 0x02, 0x09, 0x10, 0x1F, 0x02
.byte 0xA9, 0x10, 0x1F, 0x02, 0x41, 0x11, 0x1F, 0x02, 0xE1, 0x11, 0x1F, 0x02, 0x79, 0x0A, 0x1F, 0x02
.byte 0x91, 0x07, 0x1F, 0x02, 0x91, 0x07, 0x1F, 0x02, 0xCD, 0x07, 0x1F, 0x02, 0x09, 0x08, 0x1F, 0x02
.byte 0x45, 0x08, 0x1F, 0x02, 0x81, 0x08, 0x1F, 0x02, 0x05, 0x09, 0x1F, 0x02, 0x81, 0x09, 0x1F, 0x02
.byte 0xB5, 0x0A, 0x1F, 0x02, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
.byte 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00
.byte 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x55, 0x38, 0x1F, 0x02, 0x5D, 0x38, 0x1F, 0x02
.byte 0x61, 0x38, 0x1F, 0x02, 0x00, 0x00, 0x00, 0x00, 0x22, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x2C, 0x01, 0x01, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x90, 0x01, 0x02, 0x00, 0x6E, 0x00, 0x00, 0x00
.byte 0xF4, 0x01, 0x04, 0x00, 0x36, 0x01, 0x00, 0x00, 0x58, 0x02, 0x14, 0x00, 0xC6, 0x02, 0x00, 0x00
.byte 0xBC, 0x02, 0x32, 0x00, 0x96, 0x0A, 0x00, 0x00, 0x20, 0x03, 0x64, 0x00, 0x1E, 0x1E, 0x00, 0x00
.byte 0x84, 0x03, 0x96, 0x00, 0x2E, 0x45, 0x00, 0x00, 0xE8, 0x03, 0x96, 0x00, 0xC6, 0x7F, 0x00, 0x00
.byte 0x4C, 0x04, 0x64, 0x00, 0x5E, 0xBA, 0x00, 0x00, 0xB0, 0x04, 0x32, 0x00, 0x6E, 0xE1, 0x00, 0x00
.byte 0x14, 0x05, 0x14, 0x00, 0xF6, 0xF4, 0x00, 0x00, 0x78, 0x05, 0x05, 0x00, 0xC6, 0xFC, 0x00, 0x00
.byte 0xDC, 0x05, 0x02, 0x00, 0xBA, 0xFE, 0x00, 0x00, 0x40, 0x06, 0x01, 0x00, 0x82, 0xFF, 0x00, 0x00
.byte 0xA4, 0x06, 0x01, 0x00, 0xE6, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10
.byte 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10
.byte 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
.byte 0x04, 0x00, 0x00, 0x00, 0x5B, 0x01, 0x00, 0x00, 0x5D, 0x01, 0x00, 0x00, 0x5E, 0x01, 0x00, 0x00
.byte 0x61, 0x01, 0x00, 0x00, 0x62, 0x01, 0x00, 0x00, 0x64, 0x01, 0x00, 0x00, 0x6A, 0x01, 0x00, 0x00
.byte 0x6B, 0x01, 0x00, 0x00, 0x6E, 0x01, 0x00, 0x00, 0x6F, 0x01, 0x00, 0x00, 0x73, 0x01, 0x00, 0x00
.byte 0x75, 0x01, 0x00, 0x00, 0x7C, 0x01, 0x00, 0x00, 0x7E, 0x01, 0x00, 0x00, 0x84, 0x01, 0x00, 0x00
.byte 0x88, 0x01, 0x00, 0x00, 0x8B, 0x01, 0x00, 0x00, 0xC8, 0x00, 0x00, 0x00, 0xCA, 0x00, 0x00, 0x00
.byte 0xCC, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00
.byte 0x18, 0x00, 0x00, 0x00, 0x65, 0x55, 0x1F, 0x02, 0x99, 0x55, 0x1F, 0x02, 0x9D, 0x55, 0x1F, 0x02
.byte 0xC9, 0x55, 0x1F, 0x02, 0x00, 0x04, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x19, 0x55, 0x1F, 0x02
.byte 0x99, 0x55, 0x1F, 0x02, 0x9D, 0x55, 0x1F, 0x02, 0xC9, 0x55, 0x1F, 0x02, 0x02, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00
.byte 0x07, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00
.byte 0x0E, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x09, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x0B, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00
.byte 0x10, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00
.byte 0x1F, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00
.byte 0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00
.byte 0x19, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00, 0x1D, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00
.byte 0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00
.byte 0x09, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.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, 0xB1, 0x92, 0x24, 0x02, 0xD5, 0x92, 0x24, 0x02
.byte 0x01, 0x00, 0x00, 0x00, 0xA1, 0x97, 0x24, 0x02, 0xBD, 0x97, 0x24, 0x02, 0x02, 0x00, 0x00, 0x00
.byte 0xA9, 0x52, 0x1E, 0x02, 0xC5, 0x52, 0x1E, 0x02, 0x03, 0x00, 0x00, 0x00, 0x01, 0x53, 0x1E, 0x02
.byte 0x1D, 0x53, 0x1E, 0x02, 0x04, 0x00, 0x00, 0x00, 0x65, 0x55, 0x1E, 0x02, 0x81, 0x55, 0x1E, 0x02
.byte 0x05, 0x00, 0x00, 0x00, 0xBD, 0x55, 0x1E, 0x02, 0xD9, 0x55, 0x1E, 0x02, 0x06, 0x00, 0x00, 0x00
.byte 0x7D, 0x57, 0x1E, 0x02, 0x99, 0x57, 0x1E, 0x02, 0x07, 0x00, 0x00, 0x00, 0x19, 0x59, 0x1E, 0x02
.byte 0x35, 0x59, 0x1E, 0x02, 0x08, 0x00, 0x00, 0x00, 0xB5, 0x5A, 0x1E, 0x02, 0xD1, 0x5A, 0x1E, 0x02
.byte 0x09, 0x00, 0x00, 0x00, 0x8D, 0x5C, 0x1E, 0x02, 0xA9, 0x5C, 0x1E, 0x02, 0x0A, 0x00, 0x00, 0x00
.byte 0x11, 0x5E, 0x1E, 0x02, 0x2D, 0x5E, 0x1E, 0x02, 0x0B, 0x00, 0x00, 0x00, 0x99, 0x9C, 0x24, 0x02
.byte 0xB9, 0x9C, 0x24, 0x02, 0x0C, 0x00, 0x00, 0x00, 0x41, 0xA0, 0x24, 0x02, 0x5D, 0xA0, 0x24, 0x02
.byte 0x0D, 0x00, 0x00, 0x00, 0x81, 0xA2, 0x24, 0x02, 0x9D, 0xA2, 0x24, 0x02, 0x0E, 0x00, 0x00, 0x00
.byte 0x3D, 0xA6, 0x24, 0x02, 0x59, 0xA6, 0x24, 0x02, 0x0F, 0x00, 0x00, 0x00, 0x7D, 0xA8, 0x24, 0x02
.byte 0x99, 0xA8, 0x24, 0x02, 0x10, 0x00, 0x00, 0x00, 0x71, 0xDB, 0x1E, 0x02, 0x8D, 0xDB, 0x1E, 0x02
.byte 0x11, 0x00, 0x00, 0x00, 0x55, 0xAB, 0x24, 0x02, 0x71, 0xAB, 0x24, 0x02, 0x12, 0x00, 0x00, 0x00
.byte 0x11, 0xAE, 0x24, 0x02, 0x25, 0xAE, 0x24, 0x02, 0x13, 0x00, 0x00, 0x00, 0xA9, 0xB0, 0x24, 0x02
.byte 0xC5, 0xB0, 0x24, 0x02, 0x14, 0x00, 0x00, 0x00, 0x49, 0xB2, 0x24, 0x02, 0x65, 0xB2, 0x24, 0x02
.byte 0x15, 0x00, 0x00, 0x00, 0xE5, 0xB3, 0x24, 0x02, 0x01, 0xB4, 0x24, 0x02, 0x16, 0x00, 0x00, 0x00
.byte 0x9D, 0x77, 0x1E, 0x02, 0xB1, 0x77, 0x1E, 0x02, 0x17, 0x00, 0x00, 0x00, 0x49, 0xB9, 0x24, 0x02
.byte 0x65, 0xB9, 0x24, 0x02, 0x18, 0x00, 0x00, 0x00, 0xC1, 0xD9, 0x1E, 0x02, 0xDD, 0xD9, 0x1E, 0x02
.byte 0x19, 0x00, 0x00, 0x00, 0x51, 0xBB, 0x24, 0x02, 0x6D, 0xBB, 0x24, 0x02, 0x1A, 0x00, 0x00, 0x00
.byte 0xF5, 0xBC, 0x24, 0x02, 0x11, 0xBD, 0x24, 0x02, 0x1B, 0x00, 0x00, 0x00, 0x9D, 0xBF, 0x24, 0x02
.byte 0xB9, 0xBF, 0x24, 0x02, 0x1C, 0x00, 0x00, 0x00, 0x31, 0xCE, 0x24, 0x02, 0x4D, 0xCE, 0x24, 0x02
.byte 0x1D, 0x00, 0x00, 0x00, 0x45, 0xD2, 0x24, 0x02, 0x61, 0xD2, 0x24, 0x02, 0x1E, 0x00, 0x00, 0x00
.byte 0x4D, 0xA4, 0x24, 0x02, 0x61, 0xA4, 0x24, 0x02, 0x1F, 0x00, 0x00, 0x00, 0xE9, 0xA9, 0x24, 0x02
.byte 0x05, 0xAA, 0x24, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x2D, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0xA9, 0x5D, 0x1F, 0x02
.byte 0xC1, 0x5D, 0x1F, 0x02, 0xF9, 0x5D, 0x1F, 0x02, 0x31, 0x5E, 0x1F, 0x02, 0x65, 0x5E, 0x1F, 0x02
.byte 0xA9, 0x5E, 0x1F, 0x02, 0xD5, 0x5E, 0x1F, 0x02, 0xF9, 0x5E, 0x1F, 0x02, 0x19, 0x5F, 0x1F, 0x02
.byte 0x31, 0x5F, 0x1F, 0x02, 0x3D, 0x5F, 0x1F, 0x02, 0x5D, 0x5F, 0x1F, 0x02, 0x9D, 0x5F, 0x1F, 0x02
.byte 0xA9, 0x5F, 0x1F, 0x02, 0xED, 0x5F, 0x1F, 0x02, 0x19, 0x60, 0x1F, 0x02, 0x59, 0x60, 0x1F, 0x02
.byte 0x6D, 0x60, 0x1F, 0x02, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00
.byte 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00
.byte 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00
.byte 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x05, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00
.byte 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00
.byte 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00
.byte 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00
.byte 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00
.byte 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00
.byte 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00
.byte 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x05, 0x00, 0x01, 0x00
.byte 0x05, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x05, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00
.byte 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00
.byte 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00
.byte 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00
.byte 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00
.byte 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00
.byte 0x04, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00, 0x05, 0x00, 0x01, 0x00, 0x05, 0x00, 0x01, 0x00
.byte 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00
.byte 0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00
.byte 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00
.byte 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x04, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00
.byte 0x02, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00
.byte 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x00, 0x00, 0x05, 0x00, 0x01, 0x00, 0x05, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00
.byte 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00
.byte 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00
.byte 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x05, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00
.byte 0x02, 0x00, 0x01, 0x00, 0x05, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00
.byte 0x04, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00
.byte 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00
.byte 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00
.byte 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00
.byte 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00
.byte 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00
.byte 0x03, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00
.byte 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x05, 0x00, 0x01, 0x00
.byte 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00
.byte 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00
.byte 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00
.byte 0x04, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00
.byte 0x04, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x01, 0x00
.byte 0x01, 0x00, 0x01, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00
.byte 0x04, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00
.byte 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00
.byte 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00
.byte 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00
.byte 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x05, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00
.byte 0x04, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00
.byte 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00
.byte 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00
.byte 0x05, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00
.byte 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00
.byte 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00
.byte 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00
.byte 0x04, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x05, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x01, 0x00, 0x05, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00
.byte 0x04, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00, 0x05, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00
.byte 0x03, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00
.byte 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00
.byte 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00
.byte 0x04, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00, 0x05, 0x00, 0x01, 0x00
.byte 0x02, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00
.byte 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00
.byte 0x05, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00
.byte 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00
.byte 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00
.byte 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00
.byte 0x01, 0x00, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x01, 0x00
.byte 0x04, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00
.byte 0x04, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00
.byte 0x01, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00
.byte 0x02, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00
.byte 0x05, 0x00, 0x01, 0x00, 0x05, 0x00, 0x01, 0x00, 0x05, 0x00, 0x01, 0x00, 0x05, 0x00, 0x01, 0x00
.byte 0x05, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00
.byte 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x01, 0x00, 0x05, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x05, 0x00, 0x01, 0x00
.byte 0x05, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x05, 0x00, 0x01, 0x00, 0x05, 0x00, 0x01, 0x00
.byte 0x05, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00
.byte 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00
.byte 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00
.byte 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00
.byte 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00
.byte 0x04, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00
.byte 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00
.byte 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00
.byte 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00
.byte 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00
.byte 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00
.byte 0x03, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00
.byte 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00
.byte 0x03, 0x00, 0x01, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x01, 0x00
.byte 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00
.byte 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00
.byte 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00
.byte 0x03, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00
.byte 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x05, 0x00, 0x00, 0x00
.byte 0x04, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00
.byte 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00
.byte 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00, 0x05, 0x00, 0x01, 0x00
.byte 0x02, 0x00, 0x01, 0x00, 0x05, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00
.byte 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x05, 0x00, 0x01, 0x00
.byte 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x85, 0x62, 0x1F, 0x02
.byte 0x8D, 0x62, 0x1F, 0x02, 0xC5, 0x62, 0x1F, 0x02, 0x00, 0x00, 0x00, 0x00
.section .data
; 0x021FD1E0
.byte 0x64, 0x61, 0x74, 0x61, 0x2F, 0x61, 0x72, 0x65, 0x61, 0x30, 0x31, 0x6C, 0x69, 0x67, 0x68, 0x74
.byte 0x2E, 0x74, 0x78, 0x74, 0x00, 0x00, 0x00, 0x00, 0x64, 0x61, 0x74, 0x61, 0x2F, 0x61, 0x72, 0x65
.byte 0x61, 0x30, 0x30, 0x6C, 0x69, 0x67, 0x68, 0x74, 0x2E, 0x74, 0x78, 0x74, 0x00, 0x00, 0x00, 0x00
.byte 0x64, 0x61, 0x74, 0x61, 0x2F, 0x61, 0x72, 0x65, 0x61, 0x30, 0x32, 0x6C, 0x69, 0x67, 0x68, 0x74
.byte 0x2E, 0x74, 0x78, 0x74, 0x00, 0x00, 0x00, 0x00, 0x73, 0x65, 0x61, 0x00, 0x72, 0x68, 0x61, 0x6E
.byte 0x61, 0x00, 0x00, 0x00, 0x68, 0x61, 0x6D, 0x61, 0x62, 0x65, 0x00, 0x00, 0x61, 0x73, 0x61, 0x73
.byte 0x65, 0x61, 0x00, 0x00, 0x6C, 0x61, 0x6B, 0x65, 0x70, 0x2E, 0x31, 0x00, 0x64, 0x75, 0x6E, 0x5F
.byte 0x73, 0x65, 0x61, 0x00, 0x74, 0x33, 0x5F, 0x66, 0x6C, 0x5F, 0x70, 0x2E, 0x31, 0x00, 0x00, 0x00
.byte 0x74, 0x33, 0x5F, 0x66, 0x6C, 0x5F, 0x72, 0x2E, 0x31, 0x00, 0x00, 0x00, 0x74, 0x33, 0x5F, 0x66
.byte 0x6C, 0x5F, 0x79, 0x2E, 0x31, 0x00, 0x00, 0x00, 0x61, 0x73, 0x61, 0x68, 0x61, 0x6D, 0x61, 0x62
.byte 0x65, 0x00, 0x00, 0x00, 0x74, 0x33, 0x5F, 0x66, 0x6C, 0x5F, 0x62, 0x2E, 0x31, 0x00, 0x00, 0x00
.byte 0x28, 0xD2, 0x1F, 0x02, 0x2C, 0xD2, 0x1F, 0x02, 0x3C, 0xD2, 0x1F, 0x02, 0x34, 0xD2, 0x1F, 0x02
.byte 0x78, 0xD2, 0x1F, 0x02, 0x84, 0xD2, 0x1F, 0x02, 0x54, 0xD2, 0x1F, 0x02, 0x60, 0xD2, 0x1F, 0x02
.byte 0x6C, 0xD2, 0x1F, 0x02, 0x4C, 0xD2, 0x1F, 0x02, 0x44, 0xD2, 0x1F, 0x02, 0x64, 0x61, 0x74, 0x61
.byte 0x2F, 0x66, 0x6C, 0x64, 0x5F, 0x61, 0x6E, 0x69, 0x6D, 0x65, 0x25, 0x64, 0x2E, 0x62, 0x69, 0x6E
.byte 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x1D, 0xD7, 0x1D, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0x05, 0x00, 0x00, 0x00
.byte 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC9, 0x0A, 0x1E, 0x02, 0x00, 0x00, 0x00, 0x00
.byte 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0xD7, 0x1D, 0x02
.byte 0x05, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x31, 0xFE, 0x1D, 0x02, 0x05, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x45, 0xFD, 0x1D, 0x02, 0x03, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF
.byte 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0xDB, 0x1D, 0x02, 0x01, 0x00, 0x00, 0x00
.byte 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79, 0xDF, 0x1D, 0x02
.byte 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x1D, 0xF1, 0x1D, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0x06, 0x00, 0x00, 0x00, 0xAC, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0xC1, 0xE8, 0x1D, 0x02, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
.byte 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA5, 0x00, 0x1E, 0x02, 0x02, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2D, 0xEE, 0x1D, 0x02
.byte 0x04, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x89, 0xF5, 0x1D, 0x02, 0x07, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x44, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x1E, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0x08, 0x00, 0x00, 0x00
.byte 0xAC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD9, 0x09, 0x1E, 0x02, 0xFF, 0xFF, 0xFF, 0xFF
.byte 0x06, 0x00, 0x00, 0x00, 0xAC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x0D, 0x1E, 0x02
.byte 0xFF, 0xFF, 0xFF, 0xFF, 0x06, 0x00, 0x00, 0x00, 0xAC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x99, 0x0B, 0x1E, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x2C, 0x06, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0xAD, 0x0E, 0x1E, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00
.byte 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA9, 0x05, 0x1E, 0x02, 0xFF, 0xFF, 0xFF, 0xFF
.byte 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF9, 0xE5, 0x1D, 0x02
.byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x5D, 0xE7, 0x1D, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x0D, 0xF9, 0x1D, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0xE3, 0x1D, 0x02, 0x02, 0x00, 0x00, 0x00
.byte 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6D, 0xEA, 0x1D, 0x02
.byte 0x2F, 0x64, 0x61, 0x74, 0x61, 0x2F, 0x64, 0x70, 0x5F, 0x61, 0x72, 0x65, 0x61, 0x77, 0x69, 0x6E
.byte 0x64, 0x6F, 0x77, 0x2E, 0x4E, 0x43, 0x47, 0x52, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x64, 0x61, 0x74
.byte 0x61, 0x2F, 0x64, 0x70, 0x5F, 0x61, 0x72, 0x65, 0x61, 0x77, 0x69, 0x6E, 0x64, 0x6F, 0x77, 0x2E
.byte 0x4E, 0x43, 0x4C, 0x52, 0x00, 0x00, 0x00, 0x00, 0x66, 0x69, 0x65, 0x6C, 0x64, 0x64, 0x61, 0x74
.byte 0x61, 0x2F, 0x62, 0x75, 0x69, 0x6C, 0x64, 0x5F, 0x6D, 0x6F, 0x64, 0x65, 0x6C, 0x2F, 0x62, 0x75
.byte 0x69, 0x6C, 0x64, 0x5F, 0x6D, 0x6F, 0x64, 0x65, 0x6C, 0x5F, 0x6D, 0x61, 0x74, 0x73, 0x68, 0x70
.byte 0x2E, 0x64, 0x61, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.section .bss
; 0x021FD680
.space 0x3C020