mirror of
https://github.com/pret/pokediamond.git
synced 2026-10-07 09:26:57 -04:00
66073 lines
1.2 MiB
Plaintext
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
|