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

6353 lines
118 KiB
ArmAsm

.include "asm/macros.inc"
.include "global.inc"
.section .text
.balign 4, 0
thumb_func_start MOD84_021D74E0
MOD84_021D74E0: ; 0x021D74E0
push {r3, r4, r5, r6, lr}
sub sp, #0x14
add r5, r1, #0
ldr r1, [r5]
add r6, r0, #0
cmp r1, #0
beq _021D74FC
cmp r1, #1
bne _021D74F4
b _021D7620
_021D74F4:
cmp r1, #2
bne _021D74FA
b _021D765A
_021D74FA:
b _021D7668
_021D74FC:
mov r0, #3
mov r1, #0x4b
lsl r2, r0, #0x10
bl FUN_0201681C
ldr r1, _021D7670 ; =0x00001244
add r0, r6, #0
mov r2, #0x4b
bl FUN_02006268
add r4, r0, #0
bne _021D7516
b _021D7618
_021D7516:
mov r0, #0
add r1, r0, #0
bl FUN_02015F10
bl FUN_02015F1C
bl FUN_0201E6D8
bl FUN_0201E740
mov r2, #1
lsl r2, r2, #0x1a
ldr r1, [r2]
ldr r0, _021D7674 ; =0xFFFFE0FF
and r1, r0
str r1, [r2]
ldr r2, _021D7678 ; =0x04001000
ldr r1, [r2]
and r0, r1
str r0, [r2]
add r0, r6, #0
bl FUN_0200628C
str r0, [r4, #0x18]
mov r0, #0
str r0, [r4, #0x1c]
bl FUN_020B0FC0
mov r0, #0
str r0, [sp]
mov r1, #0x80
str r1, [sp, #4]
str r0, [sp, #8]
mov r3, #0x20
str r3, [sp, #0xc]
mov r2, #0x4b
str r2, [sp, #0x10]
add r2, r0, #0
bl FUN_02009EAC
add r1, r4, #0
mov r0, #0x80
add r1, #0xe0
mov r2, #0x4b
bl FUN_02008C9C
add r1, r4, #0
add r1, #0xdc
str r0, [r1]
add r0, r4, #0
mov r2, #0xd
add r0, #0xe0
mov r1, #0
lsl r2, r2, #0x10
bl FUN_02008D04
add r0, r4, #0
mov r1, #0
add r0, #0xe0
add r2, r1, #0
bl FUN_02008D24
add r0, r4, #0
str r6, [r4]
bl MOD84_021D7968
add r0, r4, #0
bl MOD84_021D7AA0
add r0, r4, #0
bl MOD84_021D7F94
add r0, r4, #0
bl MOD84_021D82B8
ldr r2, _021D767C ; =0x000001ED
mov r0, #0
mov r1, #0x1a
mov r3, #0x4b
bl FUN_0200A86C
str r0, [r4, #0x14]
str r0, [sp]
mov r1, #0xef
ldr r0, [r4, #4]
mvn r1, r1
mov r2, #1
mov r3, #0
bl MOD84_021D84F8
str r0, [r4, #8]
ldr r0, [r4, #0x14]
ldr r1, _021D7680 ; =0xFFFFFE40
str r0, [sp]
ldr r0, [r4, #4]
mov r2, #5
mov r3, #0
bl MOD84_021D84F8
str r0, [r4, #0xc]
mov r1, #0
ldr r2, _021D7684 ; =0x021DA6C8
ldr r0, _021D7688 ; =0x00001224
str r1, [r4, #0x10]
str r1, [r4, r0]
add r0, r0, #4
str r1, [r4, r0]
ldr r1, [r4, #4]
ldr r2, [r2, #0x2c]
add r0, r4, #0
blx r2
ldr r1, _021D768C ; =0x0000122C
mov r2, #1
str r0, [r4, r1]
ldr r1, _021D7690 ; =0x000004A2
mov r0, #0xe
bl FUN_0200433C
ldr r0, _021D7694 ; =MOD84_021D7958
add r1, r4, #0
mov r2, #1
bl FUN_0200CA60
ldr r1, _021D7698 ; =0x00001230
str r0, [r4, r1]
ldr r0, _021D769C ; =MOD84_021D7950
add r1, r4, #0
bl FUN_02015F10
_021D7618:
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021D7668
_021D7620:
bl FUN_02006278
ldr r2, _021D7684 ; =0x021DA6C8
ldr r1, _021D768C ; =0x0000122C
add r4, r0, #0
ldr r0, [r4, r1]
sub r1, r1, #4
ldr r2, [r2, #0x30]
add r1, r4, r1
blx r2
cmp r0, #0
beq _021D7668
ldr r1, _021D76A0 ; =0x00001228
mov r0, #0
str r0, [r4, r1]
mov r1, #0x20
str r1, [sp]
mov r1, #1
str r1, [sp, #4]
mov r2, #0x4b
str r2, [sp, #8]
add r2, r1, #0
add r3, r0, #0
bl FUN_0200E1D0
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021D7668
_021D765A:
bl FUN_0200E308
cmp r0, #0
beq _021D7668
add sp, #0x14
mov r0, #1
pop {r3, r4, r5, r6, pc}
_021D7668:
mov r0, #0
add sp, #0x14
pop {r3, r4, r5, r6, pc}
nop
_021D7670: .word 0x00001244
_021D7674: .word 0xFFFFE0FF
_021D7678: .word 0x04001000
_021D767C: .word 0x000001ED
_021D7680: .word 0xFFFFFE40
_021D7684: .word 0x021DA6C8
_021D7688: .word 0x00001224
_021D768C: .word 0x0000122C
_021D7690: .word 0x000004A2
_021D7694: .word MOD84_021D7958
_021D7698: .word 0x00001230
_021D769C: .word MOD84_021D7950
_021D76A0: .word 0x00001228
thumb_func_end MOD84_021D74E0
thumb_func_start MOD84_021D76A4
MOD84_021D76A4: ; 0x021D76A4
push {r4, r5, r6, lr}
add r4, r1, #0
add r6, r0, #0
bl FUN_02006278
add r5, r0, #0
ldr r0, [r4]
cmp r0, #3
bhi _021D773E
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021D76C2: ; jump table
.short _021D76CA - _021D76C2 - 2 ; case 0
.short _021D76EE - _021D76C2 - 2 ; case 1
.short _021D771A - _021D76C2 - 2 ; case 2
.short _021D772E - _021D76C2 - 2 ; case 3
_021D76CA:
bl OS_DisableInterrupts
add r6, r0, #0
ldr r0, _021D7744 ; =0x00001230
ldr r0, [r5, r0]
bl FUN_0200CAB4
add r0, r6, #0
bl OS_RestoreInterrupts
mov r0, #0
add r1, r0, #0
bl FUN_02015F10
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021D773E
_021D76EE:
ldr r0, [r5, #0xc]
bl MOD84_021D85B8
ldr r0, [r5, #8]
bl MOD84_021D85B8
ldr r0, [r5, #0x14]
bl FUN_0200A8B8
add r0, r5, #0
bl MOD84_021D8000
add r0, r5, #0
bl MOD84_021D7AB8
add r0, r5, #0
bl MOD84_021D7A84
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021D773E
_021D771A:
add r5, #0xdc
ldr r0, [r5]
bl FUN_0201FD58
bl FUN_02009FA0
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021D773E
_021D772E:
add r0, r6, #0
bl FUN_0200627C
mov r0, #0x4b
bl FUN_020168D0
mov r0, #1
pop {r4, r5, r6, pc}
_021D773E:
mov r0, #0
pop {r4, r5, r6, pc}
nop
_021D7744: .word 0x00001230
thumb_func_end MOD84_021D76A4
thumb_func_start MOD84_021D7748
MOD84_021D7748: ; 0x021D7748
push {r4, r5, lr}
sub sp, #0xc
add r5, r1, #0
bl FUN_02006278
add r4, r0, #0
ldr r0, [r4, #8]
mov r1, #1
bl MOD84_021D85EC
ldr r0, [r4, #0xc]
mov r1, #1
bl MOD84_021D85EC
str r0, [r4, #0x10]
ldr r0, [r5]
cmp r0, #0xa
bhi _021D7804
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021D7778: ; jump table
.short _021D778E - _021D7778 - 2 ; case 0
.short _021D77EC - _021D7778 - 2 ; case 1
.short _021D7826 - _021D7778 - 2 ; case 2
.short _021D7846 - _021D7778 - 2 ; case 3
.short _021D7868 - _021D7778 - 2 ; case 4
.short _021D7874 - _021D7778 - 2 ; case 5
.short _021D789C - _021D7778 - 2 ; case 6
.short _021D78AA - _021D7778 - 2 ; case 7
.short _021D78BE - _021D7778 - 2 ; case 8
.short _021D7920 - _021D7778 - 2 ; case 9
.short _021D7914 - _021D7778 - 2 ; case 10
_021D778E:
ldr r0, [r4, #0x1c]
cmp r0, #0
bne _021D77C8
ldr r0, _021D7928 ; =0x021C48B8
ldr r1, [r0, #0x48]
mov r0, #8
tst r0, r1
beq _021D77C8
ldr r0, [r4, #0x18]
ldr r0, [r0, #4]
cmp r0, #0
beq _021D77C8
mov r0, #0x10
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
mov r0, #0x4b
str r0, [sp, #8]
mov r0, #0
add r1, r0, #0
add r2, r0, #0
add r3, r0, #0
bl FUN_0200E1D0
mov r0, #1
str r0, [r4, #0x1c]
mov r0, #7
str r0, [r5]
b _021D7920
_021D77C8:
ldr r2, _021D792C ; =0x0000122C
sub r1, r2, #4
ldr r0, [r4, r2]
sub r2, #8
ldr r2, [r4, r2]
add r1, r4, r1
lsl r3, r2, #4
ldr r2, _021D7930 ; =0x021DA6FC
ldr r2, [r2, r3]
blx r2
cmp r0, #0
beq _021D7804
ldr r0, _021D7934 ; =0x00001228
mov r1, #0
str r1, [r4, r0]
mov r0, #1
str r0, [r5]
b _021D7920
_021D77EC:
ldr r2, _021D792C ; =0x0000122C
sub r1, r2, #4
ldr r0, [r4, r2]
sub r2, #8
ldr r2, [r4, r2]
add r1, r4, r1
lsl r3, r2, #4
ldr r2, _021D7938 ; =0x021DA700
ldr r2, [r2, r3]
blx r2
cmp r0, #0
bne _021D7806
_021D7804:
b _021D7920
_021D7806:
ldr r0, _021D793C ; =0x00001224
ldr r1, [r4, r0]
add r1, r1, #1
str r1, [r4, r0]
ldr r1, [r4, r0]
cmp r1, #7
bhs _021D7820
mov r1, #0
add r0, r0, #4
str r1, [r4, r0]
mov r0, #2
str r0, [r5]
b _021D7920
_021D7820:
mov r0, #4
str r0, [r5]
b _021D7920
_021D7826:
ldr r2, _021D793C ; =0x00001224
ldr r1, [r4, #4]
ldr r2, [r4, r2]
add r0, r4, #0
lsl r3, r2, #4
ldr r2, _021D7940 ; =0x021DA6F4
ldr r2, [r2, r3]
blx r2
ldr r1, _021D792C ; =0x0000122C
mov r2, #0
str r0, [r4, r1]
sub r0, r1, #4
str r2, [r4, r0]
mov r0, #3
str r0, [r5]
b _021D7920
_021D7846:
ldr r2, _021D792C ; =0x0000122C
sub r1, r2, #4
ldr r0, [r4, r2]
sub r2, #8
ldr r2, [r4, r2]
add r1, r4, r1
lsl r3, r2, #4
ldr r2, _021D7944 ; =0x021DA6F8
ldr r2, [r2, r3]
blx r2
cmp r0, #0
beq _021D7920
ldr r0, _021D7934 ; =0x00001228
mov r1, #0
str r1, [r4, r0]
str r1, [r5]
b _021D7920
_021D7868:
ldr r0, [r4, #0x10]
cmp r0, #0
beq _021D7920
mov r0, #5
str r0, [r5]
b _021D7920
_021D7874:
ldr r0, _021D7928 ; =0x021C48B8
ldr r1, [r0, #0x48]
mov r0, #9
tst r0, r1
beq _021D7920
mov r0, #8
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
mov r0, #0x4b
str r0, [sp, #8]
mov r0, #0
add r1, r0, #0
add r2, r0, #0
add r3, r0, #0
bl FUN_0200E1D0
mov r0, #6
str r0, [r5]
b _021D7920
_021D789C:
bl FUN_0200E308
cmp r0, #0
beq _021D7920
add sp, #0xc
mov r0, #1
pop {r4, r5, pc}
_021D78AA:
bl FUN_0200E308
cmp r0, #0
beq _021D7920
ldr r0, _021D7934 ; =0x00001228
mov r1, #0
str r1, [r4, r0]
mov r0, #8
str r0, [r5]
b _021D7920
_021D78BE:
ldr r2, _021D792C ; =0x0000122C
sub r1, r2, #4
ldr r0, [r4, r2]
sub r2, #8
ldr r2, [r4, r2]
add r1, r4, r1
lsl r3, r2, #4
ldr r2, _021D7938 ; =0x021DA700
ldr r2, [r2, r3]
blx r2
cmp r0, #0
beq _021D7920
ldr r0, [r4, #0xc]
mov r1, #1
bl MOD84_021D87B0
ldr r0, [r4, #8]
bl MOD84_021D881C
mov r2, #1
lsl r2, r2, #0x1a
ldr r1, [r2]
ldr r0, _021D7948 ; =0xFFFF1FFF
and r1, r0
str r1, [r2]
ldr r2, _021D794C ; =0x04001000
ldr r1, [r2]
and r0, r1
str r0, [r2]
mov r0, #0x20
str r0, [sp]
mov r1, #1
str r1, [sp, #4]
mov r0, #0x4b
str r0, [sp, #8]
mov r0, #0
add r2, r1, #0
add r3, r0, #0
bl FUN_0200E1D0
mov r0, #0xa
str r0, [r5]
b _021D7920
_021D7914:
bl FUN_0200E308
cmp r0, #0
beq _021D7920
mov r0, #5
str r0, [r5]
_021D7920:
mov r0, #0
add sp, #0xc
pop {r4, r5, pc}
nop
_021D7928: .word 0x021C48B8
_021D792C: .word 0x0000122C
_021D7930: .word 0x021DA6FC
_021D7934: .word 0x00001228
_021D7938: .word 0x021DA700
_021D793C: .word 0x00001224
_021D7940: .word 0x021DA6F4
_021D7944: .word 0x021DA6F8
_021D7948: .word 0xFFFF1FFF
_021D794C: .word 0x04001000
thumb_func_end MOD84_021D7748
thumb_func_start MOD84_021D7950
MOD84_021D7950: ; 0x021D7950
ldr r3, _021D7954 ; =MOD84_021D7CFC
bx r3
.align 2, 0
_021D7954: .word MOD84_021D7CFC
thumb_func_end MOD84_021D7950
thumb_func_start MOD84_021D7958
MOD84_021D7958: ; 0x021D7958
push {r3, lr}
add r1, #0xdc
ldr r0, [r1]
bl FUN_0201FDEC
bl FUN_02009F80
pop {r3, pc}
thumb_func_end MOD84_021D7958
thumb_func_start MOD84_021D7968
MOD84_021D7968: ; 0x021D7968
push {r4, r5, r6, r7, lr}
sub sp, #0xc
add r4, r0, #0
mov r0, #0x4b
bl FUN_02016B94
str r0, [r4, #4]
ldr r0, _021D7A60 ; =0x021DA68C
bl FUN_0201E66C
ldr r2, _021D7A64 ; =0x04000304
ldr r0, _021D7A68 ; =0xFFFF7FFF
ldrh r1, [r2]
and r0, r1
strh r0, [r2]
mov r0, #1
mov r1, #0
add r2, r0, #0
bl GX_SetGraphicsMode
ldr r0, _021D7A6C ; =0x021DA650
bl FUN_02016BBC
ldr r0, [r4, #4]
ldr r2, _021D7A70 ; =0x021DA670
mov r1, #1
mov r3, #0
bl FUN_02016C18
ldr r0, [r4, #4]
ldr r2, _021D7A70 ; =0x021DA670
mov r1, #5
mov r3, #0
bl FUN_02016C18
mov r2, #0
str r2, [sp]
mov r0, #0x20
str r0, [sp, #4]
mov r0, #0x4b
str r0, [sp, #8]
mov r0, #0x7f
mov r1, #0x42
add r3, r2, #0
bl FUN_02006948
mov r3, #0
str r3, [sp]
mov r0, #0x20
str r0, [sp, #4]
mov r0, #0x4b
str r0, [sp, #8]
mov r0, #0x7f
mov r1, #0x42
mov r2, #4
bl FUN_02006948
ldr r2, _021D7A74 ; =0x04000050
mov r0, #0
add r3, r2, #0
add r7, r2, #0
ldr r1, _021D7A78 ; =0x04001050
strh r0, [r2]
strh r0, [r1]
mov r0, #0xff
sub r3, #0x10
strh r0, [r3]
add r3, r2, #0
ldr r4, _021D7A7C ; =0x00005EC0
sub r3, #0xc
strh r4, [r3]
sub r7, #8
ldrh r4, [r7]
mov r5, #0x3f
mov r3, #0x1d
bic r4, r5
add r6, r4, #0
orr r6, r3
mov r4, #0x20
orr r6, r4
strh r6, [r7]
sub r7, r2, #6
ldrh r6, [r7]
mov r2, #0x1f
bic r6, r5
orr r6, r2
orr r6, r4
strh r6, [r7]
add r6, r1, #0
sub r6, #0x10
strh r0, [r6]
add r0, r1, #0
mov r6, #0x18
sub r0, #0xc
strh r6, [r0]
add r6, r1, #0
sub r6, #8
ldrh r0, [r6]
bic r0, r5
orr r0, r3
orr r0, r4
sub r3, r1, #6
strh r0, [r6]
ldrh r0, [r3]
sub r1, #0x50
bic r0, r5
orr r0, r2
orr r0, r4
strh r0, [r3]
lsl r3, r4, #0x15
ldr r0, [r3]
ldr r2, _021D7A80 ; =0xFFFF1FFF
add r5, r0, #0
and r5, r2
lsl r0, r4, #8
orr r0, r5
str r0, [r3]
ldr r0, [r1]
and r2, r0
lsl r0, r4, #8
orr r0, r2
str r0, [r1]
add sp, #0xc
pop {r4, r5, r6, r7, pc}
.align 2, 0
_021D7A60: .word 0x021DA68C
_021D7A64: .word 0x04000304
_021D7A68: .word 0xFFFF7FFF
_021D7A6C: .word 0x021DA650
_021D7A70: .word 0x021DA670
_021D7A74: .word 0x04000050
_021D7A78: .word 0x04001050
_021D7A7C: .word 0x00005EC0
_021D7A80: .word 0xFFFF1FFF
thumb_func_end MOD84_021D7968
thumb_func_start MOD84_021D7A84
MOD84_021D7A84: ; 0x021D7A84
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #4]
mov r1, #1
bl FUN_020178A0
ldr r0, [r4, #4]
mov r1, #5
bl FUN_020178A0
ldr r0, [r4, #4]
bl FreeToHeap
pop {r4, pc}
thumb_func_end MOD84_021D7A84
thumb_func_start MOD84_021D7AA0
MOD84_021D7AA0: ; 0x021D7AA0
push {r4, lr}
add r4, r0, #0
bl MOD84_021D7AC8
add r0, r4, #0
bl MOD84_021D7B54
add r0, r4, #0
bl MOD84_021D7BC8
pop {r4, pc}
.align 2, 0
thumb_func_end MOD84_021D7AA0
thumb_func_start MOD84_021D7AB8
MOD84_021D7AB8: ; 0x021D7AB8
push {r4, lr}
add r4, r0, #0
bl MOD84_021D7CD4
add r0, r4, #0
bl MOD84_021D7BBC
pop {r4, pc}
thumb_func_end MOD84_021D7AB8
thumb_func_start MOD84_021D7AC8
MOD84_021D7AC8: ; 0x021D7AC8
push {r3, lr}
bl FUN_020BB7F4
bl G3X_InitMtxStack
ldr r0, _021D7B3C ; =0x04000060
ldr r2, _021D7B40 ; =0xFFFFCFFD
ldrh r1, [r0]
and r1, r2
strh r1, [r0]
add r1, r2, #2
ldrh r3, [r0]
lsr r2, r2, #0x11
and r3, r1
mov r1, #0x10
orr r1, r3
strh r1, [r0]
ldrh r3, [r0]
ldr r1, _021D7B44 ; =0x0000CFFB
and r3, r1
strh r3, [r0]
ldrh r3, [r0]
sub r1, r1, #4
and r1, r3
strh r1, [r0]
mov r0, #0
add r1, r0, #0
mov r3, #0x3f
str r0, [sp]
bl G3X_SetClearColor
ldr r1, _021D7B48 ; =0x04000540
mov r0, #2
str r0, [r1]
ldr r0, _021D7B4C ; =0xBFFF0000
str r0, [r1, #0x40]
mov r0, #1
add r1, r0, #0
bl FUN_020AEB70
mov r0, #1
lsl r0, r0, #0xe
mov r1, #1
bl FUN_020AEDF4
mov r0, #1
add r1, r0, #0
bl FUN_0201E6E4
ldr r1, _021D7B50 ; =0x04000008
mov r0, #3
ldrh r2, [r1]
bic r2, r0
mov r0, #1
orr r0, r2
strh r0, [r1]
pop {r3, pc}
nop
_021D7B3C: .word 0x04000060
_021D7B40: .word 0xFFFFCFFD
_021D7B44: .word 0x0000CFFB
_021D7B48: .word 0x04000540
_021D7B4C: .word 0xBFFF0000
_021D7B50: .word 0x04000008
thumb_func_end MOD84_021D7AC8
thumb_func_start MOD84_021D7B54
MOD84_021D7B54: ; 0x021D7B54
push {r4, lr}
sub sp, #0x18
add r4, r0, #0
mov r0, #0x4b
bl FUN_0201EB64
str r0, [r4, #0x20]
mov r0, #0
str r0, [r4, #0x24]
str r0, [r4, #0x28]
str r0, [r4, #0x2c]
strh r0, [r4, #0x30]
strh r0, [r4, #0x32]
strh r0, [r4, #0x34]
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
ldr r0, [r4, #0x20]
mov r1, #0x4b
str r0, [sp, #8]
add r0, r4, #0
add r2, r4, #0
ldr r3, _021D7BB8 ; =0x00000FA4
add r0, #0x24
lsl r1, r1, #0xe
add r2, #0x30
bl FUN_0201ECA8
mov r1, #0
mov r0, #1
lsl r0, r0, #0xc
str r0, [sp, #0x10]
str r1, [sp, #0xc]
str r1, [sp, #0x14]
ldr r1, [r4, #0x20]
add r0, sp, #0xc
bl FUN_0201EC58
ldr r0, [r4, #0x20]
bl FUN_0201EB8C
mov r1, #0xfa
ldr r2, [r4, #0x20]
mov r0, #0
lsl r1, r1, #0xe
bl FUN_0201EC94
add sp, #0x18
pop {r4, pc}
nop
_021D7BB8: .word 0x00000FA4
thumb_func_end MOD84_021D7B54
thumb_func_start MOD84_021D7BBC
MOD84_021D7BBC: ; 0x021D7BBC
ldr r3, _021D7BC4 ; =FUN_0201EB70
ldr r0, [r0, #0x20]
bx r3
nop
_021D7BC4: .word FUN_0201EB70
thumb_func_end MOD84_021D7BBC
thumb_func_start MOD84_021D7BC8
MOD84_021D7BC8: ; 0x021D7BC8
push {r4, r5, lr}
sub sp, #0xc
mov r2, #0
add r5, r0, #0
add r4, r5, #0
str r2, [sp]
add r0, sp, #8
str r0, [sp, #4]
mov r0, #0x7f
mov r1, #1
mov r3, #0x4b
add r4, #0x38
bl FUN_02006D18
str r0, [r5, #0x38]
ldr r1, [sp, #8]
bl DC_FlushRange
ldr r0, [r5, #0x38]
cmp r0, #0
beq _021D7CCC
mov r1, #1
add r0, r4, #0
lsl r1, r1, #0xc
add r0, #0x88
str r1, [r0]
add r0, r4, #0
add r0, #0x8c
str r1, [r0]
add r0, r4, #0
add r0, #0x90
str r1, [r0]
mov r2, #0
add r0, r4, #0
ldr r1, _021D7CD0 ; =0xFFF8E000
str r2, [r4, #0x7c]
add r0, #0x80
str r1, [r0]
add r0, r4, #0
add r0, #0x84
str r2, [r0]
add r0, r4, #0
add r0, #0x94
strh r2, [r0]
mov r1, #0xa5
add r0, r4, #0
lsl r1, r1, #4
add r0, #0x96
strh r1, [r0]
add r0, r4, #0
mov r1, #0x50
add r0, #0x98
strh r1, [r0]
ldr r0, [r4]
bl FUN_020BC13C
str r0, [r4, #0x5c]
ldrh r1, [r0, #0xe]
add r1, r0, r1
ldr r1, [r1, #0xc]
add r0, r0, r1
str r0, [r4, #0x60]
ldr r0, [r4]
bl FUN_020BC0FC
str r0, [r4, #0x64]
bl FUN_0201B3C4
ldr r0, [r4]
ldr r1, [r4, #0x64]
bl FUN_0201B3A8
add r0, r4, #0
ldr r1, [r4, #0x60]
add r0, #8
bl FUN_020B80B4
mov r2, #0
str r2, [sp]
add r0, sp, #8
str r0, [sp, #4]
mov r0, #0x7f
mov r1, #3
mov r3, #0x4b
bl FUN_02006D18
str r0, [r4, #4]
cmp r0, #0
beq _021D7CCC
ldr r1, [sp, #8]
bl DC_FlushRange
add r0, r4, #0
add r0, #0x6c
mov r1, #0x4b
mov r2, #0x20
bl FUN_02016B20
ldr r0, [r4, #4]
mov r1, #0
bl FUN_020BC4C8
add r5, r0, #0
add r0, r4, #0
ldr r2, [r4, #0x60]
add r0, #0x6c
add r1, r5, #0
bl FUN_020BB8D0
str r0, [r4, #0x68]
ldr r2, [r4, #0x60]
ldr r3, [r4, #0x64]
add r1, r5, #0
bl FUN_020B8110
add r0, r4, #0
ldr r1, [r4, #0x68]
add r0, #8
bl FUN_020B7EFC
add r0, r4, #0
mov r1, #0
add r0, #0x9c
str r1, [r0]
ldr r0, [r4, #0x68]
add r4, #0xa0
ldr r0, [r0, #8]
ldrh r0, [r0, #4]
lsl r0, r0, #0xc
str r0, [r4]
_021D7CCC:
add sp, #0xc
pop {r4, r5, pc}
.align 2, 0
_021D7CD0: .word 0xFFF8E000
thumb_func_end MOD84_021D7BC8
thumb_func_start MOD84_021D7CD4
MOD84_021D7CD4: ; 0x021D7CD4
push {r4, lr}
add r4, r0, #0
add r4, #0x38
ldr r0, [r4, #4]
cmp r0, #0
beq _021D7CF0
add r0, r4, #0
ldr r1, [r4, #0x68]
add r0, #0x6c
bl thunk_FUN_020ae84c
ldr r0, [r4, #4]
bl FreeToHeap
_021D7CF0:
ldr r0, [r4]
cmp r0, #0
beq _021D7CFA
bl FreeToHeap
_021D7CFA:
pop {r4, pc}
thumb_func_end MOD84_021D7CD4
thumb_func_start MOD84_021D7CFC
MOD84_021D7CFC: ; 0x021D7CFC
push {r3, r4, lr}
sub sp, #0x4c
add r4, r0, #0
bl G3X_ResetMtxStack
mov r1, #0
mov r0, #0x11
add r2, r1, #0
bl FUN_020BB1C0
bl FUN_0201EBA4
add r4, #0x38
add r0, sp, #0x28
bl MTX_Identity33_
add r0, r4, #0
add r0, #0x94
ldrh r0, [r0]
ldr r3, _021D7DF0 ; =0x020FFA38
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, #4
bl MTX_RotX33_
add r1, sp, #0x28
add r0, sp, #4
add r2, r1, #0
bl MTX_Concat33
add r0, r4, #0
add r0, #0x96
ldrh r0, [r0]
ldr r3, _021D7DF0 ; =0x020FFA38
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, #4
bl MTX_RotY33_
add r1, sp, #0x28
add r0, sp, #4
add r2, r1, #0
bl MTX_Concat33
add r0, r4, #0
add r0, #0x98
ldrh r0, [r0]
ldr r3, _021D7DF0 ; =0x020FFA38
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, #4
bl MTX_RotZ33_
add r1, sp, #0x28
add r0, sp, #4
add r2, r1, #0
bl MTX_Concat33
add r1, r4, #0
add r1, #0x9c
ldr r2, [r1]
mov r1, #2
lsl r1, r1, #0xa
add r2, r2, r1
add r1, r4, #0
add r1, #0x9c
str r2, [r1]
add r1, r4, #0
add r1, #0xa0
ldr r2, [r1]
add r1, r4, #0
add r1, #0x9c
add r0, r4, #0
ldr r1, [r1]
add r0, #0x9c
cmp r1, r2
blt _021D7DBA
ldr r1, [r0]
sub r1, r1, r2
str r1, [r0]
_021D7DBA:
add r0, r4, #0
add r0, #0x9c
ldr r1, [r0]
ldr r0, [r4, #0x68]
add r2, sp, #0x28
str r1, [r0]
add r0, r4, #0
add r1, r4, #0
add r4, #0x88
add r0, #8
add r1, #0x7c
add r3, r4, #0
bl FUN_0201B26C
mov r2, #1
mov r0, #0x12
add r1, sp, #0
str r2, [sp]
bl FUN_020BB1C0
mov r0, #0
mov r1, #1
bl FUN_020222B4
add sp, #0x4c
pop {r3, r4, pc}
nop
_021D7DF0: .word 0x020FFA38
thumb_func_end MOD84_021D7CFC
thumb_func_start MOD84_021D7DF4
MOD84_021D7DF4: ; 0x021D7DF4
push {r4, r5, lr}
sub sp, #0xc
add r4, r0, #0
ldr r0, [r0, #0x38]
add r5, r1, #0
add r4, #0x38
cmp r0, #0
beq _021D7E08
bl FreeToHeap
_021D7E08:
ldr r1, _021D7ED4 ; =0x021DA648
lsl r3, r5, #1
mov r2, #0
ldrh r1, [r1, r3]
str r2, [sp]
add r0, sp, #8
str r0, [sp, #4]
mov r0, #0x7f
mov r3, #0x4b
bl FUN_02006D18
str r0, [r4]
cmp r0, #0
beq _021D7E9A
ldr r1, [sp, #8]
bl DC_FlushRange
mov r1, #1
add r0, r4, #0
lsl r1, r1, #0xc
add r0, #0x88
str r1, [r0]
add r0, r4, #0
add r0, #0x8c
str r1, [r0]
add r0, r4, #0
add r0, #0x90
str r1, [r0]
mov r2, #0
add r0, r4, #0
ldr r1, _021D7ED8 ; =0xFFF8E000
str r2, [r4, #0x7c]
add r0, #0x80
str r1, [r0]
add r0, r4, #0
add r0, #0x84
str r2, [r0]
add r0, r4, #0
add r0, #0x94
strh r2, [r0]
mov r1, #0xa5
add r0, r4, #0
lsl r1, r1, #4
add r0, #0x96
strh r1, [r0]
add r0, r4, #0
mov r1, #0x50
add r0, #0x98
strh r1, [r0]
ldr r0, [r4]
bl FUN_020BC13C
str r0, [r4, #0x5c]
ldrh r1, [r0, #0xe]
add r1, r0, r1
ldr r1, [r1, #0xc]
add r0, r0, r1
str r0, [r4, #0x60]
ldr r0, [r4]
bl FUN_020BC0FC
str r0, [r4, #0x64]
bl FUN_0201B3C4
ldr r0, [r4]
ldr r1, [r4, #0x64]
bl FUN_0201B3A8
add r0, r4, #0
ldr r1, [r4, #0x60]
add r0, #8
bl FUN_020B80B4
_021D7E9A:
ldr r0, [r4, #4]
cmp r0, #0
beq _021D7ED0
mov r1, #0
bl FUN_020BC4C8
add r1, r0, #0
ldr r0, [r4, #0x68]
ldr r2, [r4, #0x60]
ldr r3, [r4, #0x64]
bl FUN_020B8110
add r0, r4, #0
ldr r1, [r4, #0x68]
add r0, #8
bl FUN_020B7EFC
add r0, r4, #0
mov r1, #0
add r0, #0x9c
str r1, [r0]
ldr r0, [r4, #0x68]
add r4, #0xa0
ldr r0, [r0, #8]
ldrh r0, [r0, #4]
lsl r0, r0, #0xc
str r0, [r4]
_021D7ED0:
add sp, #0xc
pop {r4, r5, pc}
.align 2, 0
_021D7ED4: .word 0x021DA648
_021D7ED8: .word 0xFFF8E000
thumb_func_end MOD84_021D7DF4
thumb_func_start MOD84_021D7EDC
MOD84_021D7EDC: ; 0x021D7EDC
push {r4, r5, lr}
sub sp, #0x14
add r5, r0, #0
mov r0, #0x82
lsl r0, r0, #2
add r0, r5, r0
bl FUN_020B1A24
mov r0, #0x8b
lsl r0, r0, #2
add r0, r5, r0
bl FUN_020B1A24
mov r0, #0x25
lsl r0, r0, #4
add r0, r5, r0
bl FUN_020B1A24
mov r0, #0x9d
lsl r0, r0, #2
add r0, r5, r0
bl FUN_020B19DC
mov r0, #0xa2
lsl r0, r0, #2
add r0, r5, r0
bl FUN_020B19DC
mov r0, #0xa7
lsl r0, r0, #2
add r0, r5, r0
bl FUN_020B19DC
ldr r0, [r5, #0x18]
ldr r0, [r0]
cmp r0, #1
bne _021D7F2A
mov r0, #1
b _021D7F2C
_021D7F2A:
mov r0, #0
_021D7F2C:
mov r2, #0
lsl r4, r0, #3
str r2, [sp]
mov r0, #1
str r0, [sp, #4]
lsl r0, r0, #0xf
str r0, [sp, #8]
mov r0, #0x4b
ldr r1, _021D7F84 ; =0x021DA660
str r0, [sp, #0xc]
mov r0, #0x82
lsl r0, r0, #2
add r0, r5, r0
str r0, [sp, #0x10]
ldrh r1, [r1, r4]
mov r0, #0x7f
add r3, r2, #0
bl FUN_02006AE4
mov r0, #0x4b
ldr r1, _021D7F88 ; =0x021DA662
str r0, [sp]
mov r0, #0x9d
lsl r0, r0, #2
add r0, r5, r0
str r0, [sp, #4]
ldrh r1, [r1, r4]
mov r0, #0x7f
mov r2, #1
mov r3, #0
bl FUN_02006A8C
ldr r1, _021D7F8C ; =0x021DA664
ldr r2, _021D7F90 ; =0x021DA666
ldrh r1, [r1, r4]
ldrh r2, [r2, r4]
mov r0, #0x7f
bl MOD84_021D81DC
mov r1, #0xad
lsl r1, r1, #2
str r0, [r5, r1]
add sp, #0x14
pop {r4, r5, pc}
.align 2, 0
_021D7F84: .word 0x021DA660
_021D7F88: .word 0x021DA662
_021D7F8C: .word 0x021DA664
_021D7F90: .word 0x021DA666
thumb_func_end MOD84_021D7EDC
thumb_func_start MOD84_021D7F94
MOD84_021D7F94: ; 0x021D7F94
push {r4, lr}
sub sp, #0x30
add r4, r0, #0
bl MOD84_021D7EDC
mov r3, #0xad
mov r0, #1
lsl r3, r3, #2
str r0, [sp]
add r2, r3, #0
ldr r1, [r4, r3]
sub r2, #0xac
sub r3, #0x40
add r0, sp, #0xc
add r2, r4, r2
add r3, r4, r3
bl MOD84_021D8240
mov r1, #0
mov r2, #0xc8
add r3, r2, #0
str r1, [sp]
mov r0, #1
str r0, [sp, #4]
str r1, [sp, #8]
add r0, r4, #0
add r1, sp, #0xc
add r3, #0x98
bl MOD84_021D8260
mov r1, #0x2b
lsl r1, r1, #4
str r0, [r4, r1]
ldr r0, [r4, r1]
mov r1, #1
bl FUN_020200BC
mov r0, #0x2b
lsl r0, r0, #4
mov r1, #1
ldr r0, [r4, r0]
lsl r1, r1, #0xc
bl FUN_020200D8
mov r0, #0x10
mov r1, #1
bl FUN_0201E6E4
mov r0, #0x10
mov r1, #1
bl FUN_0201E74C
add sp, #0x30
pop {r4, pc}
thumb_func_end MOD84_021D7F94
thumb_func_start MOD84_021D8000
MOD84_021D8000: ; 0x021D8000
push {r4, lr}
add r4, r0, #0
mov r0, #0x2b
lsl r0, r0, #4
ldr r0, [r4, r0]
bl FUN_0201FFC8
mov r0, #0xad
lsl r0, r0, #2
ldr r0, [r4, r0]
bl MOD84_021D821C
pop {r4, pc}
.align 2, 0
thumb_func_end MOD84_021D8000
thumb_func_start MOD84_021D801C
MOD84_021D801C: ; 0x021D801C
push {r3, r4, r5, r6, r7, lr}
add r7, r0, #0
add r5, r1, #0
mov r0, #0x4b
mov r1, #0x30
str r2, [sp]
add r6, r3, #0
bl AllocFromHeap
add r4, r0, #0
beq _021D8090
ldr r0, [sp]
ldr r2, _021D8094 ; =0x021DA6B4
lsl r1, r0, #4
lsl r0, r5, #5
add r2, r2, r0
str r7, [r4]
ldr r2, [r1, r2]
str r6, [r4, #0x24]
str r2, [r4, #0x14]
ldr r2, _021D8098 ; =0x021DA6B8
add r2, r2, r0
ldr r2, [r1, r2]
str r2, [r4, #0x18]
ldr r2, _021D809C ; =0x021DA6BC
add r2, r2, r0
ldr r2, [r1, r2]
str r2, [r4, #0x1c]
ldr r2, _021D80A0 ; =0x021DA6C0
add r0, r2, r0
ldr r0, [r1, r0]
cmp r5, #0
str r0, [r4, #0x20]
bne _021D8068
ldr r0, _021D80A4 ; =0x021D80B8
str r0, [r4, #8]
ldr r0, _021D80A8 ; =0x021D80F0
b _021D806E
_021D8068:
ldr r0, _021D80AC ; =0x021D8104
str r0, [r4, #8]
ldr r0, _021D80B0 ; =0x021D813C
_021D806E:
str r0, [r4, #0xc]
mov r0, #0
str r0, [r4, #0x28]
mov r0, #1
lsl r0, r0, #0x10
add r1, r6, #0
bl _s32_div_f
str r0, [r4, #0x2c]
mov r0, #0
str r0, [r4, #0x10]
ldr r0, _021D80B4 ; =0x021D8151
add r1, r4, #0
mov r2, #1
bl FUN_0200CA98
str r0, [r4, #4]
_021D8090:
add r0, r4, #0
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_021D8094: .word 0x021DA6B4
_021D8098: .word 0x021DA6B8
_021D809C: .word 0x021DA6BC
_021D80A0: .word 0x021DA6C0
_021D80A4: .word 0x021D80B8
_021D80A8: .word 0x021D80F0
_021D80AC: .word 0x021D8104
_021D80B0: .word 0x021D813C
_021D80B4: .word 0x021D8151
thumb_func_end MOD84_021D801C
thumb_func_start MOD84_021D80B8
MOD84_021D80B8: ; 0x021D80B8
and r0, r3
thumb_func_end MOD84_021D80B8
non_word_aligned_thumb_func_start MOD84_021D80BA
MOD84_021D80BA: ; 0x021D80BA
thumb_func_end MOD84_021D80BA
_021D80BA:
.byte 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2
.byte 0x00, 0x40, 0xA0, 0xE1, 0x01, 0xE0, 0xA0, 0xE1, 0x02, 0xC0, 0xA0, 0xE1, 0x00, 0x30, 0x8D, 0xE5
.byte 0x14, 0x00, 0x9F, 0xE5, 0x04, 0x10, 0xA0, 0xE1, 0x0E, 0x20, 0xA0, 0xE1, 0x0C, 0x30, 0xA0, 0xE1
.byte 0xFD, 0xBC, 0xFB, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x18, 0x80, 0xBD, 0xE8, 0x50, 0x00, 0x00, 0x04
.byte 0x08, 0x20, 0x9F, 0xE5, 0x01, 0x04, 0x80, 0xE1, 0xB0, 0x00, 0xC2, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1
.byte 0x52, 0x00, 0x00, 0x04, 0x18, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x40, 0xA0, 0xE1
.byte 0x01, 0xE0, 0xA0, 0xE1, 0x02, 0xC0, 0xA0, 0xE1, 0x00, 0x30, 0x8D, 0xE5, 0x14, 0x00, 0x9F, 0xE5
.byte 0x04, 0x10, 0xA0, 0xE1, 0x0E, 0x20, 0xA0, 0xE1, 0x0C, 0x30, 0xA0, 0xE1, 0xEA, 0xBC, 0xFB, 0xEB
.byte 0x04, 0xD0, 0x8D, 0xE2, 0x18, 0x80, 0xBD, 0xE8, 0x50, 0x10, 0x00, 0x04, 0x08, 0x20, 0x9F, 0xE5
.byte 0x01, 0x04, 0x80, 0xE1, 0xB0, 0x00, 0xC2, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0x52, 0x10, 0x00, 0x04
.byte 0x70, 0xB5, 0x0D, 0x1C, 0x06, 0x1C, 0x28, 0x69, 0x00, 0x28, 0x04, 0xD0, 0x01, 0x28, 0x0C, 0xD0
.byte 0x02, 0x28, 0x1A, 0xD0, 0x70, 0xBD, 0x28, 0x6A, 0xE9, 0x69, 0xAC, 0x68, 0x00, 0x22, 0x10, 0x23
.byte 0xA0, 0x47, 0x28, 0x69, 0x40, 0x1C, 0x28, 0x61, 0x70, 0xBD, 0xA8, 0x69, 0x02, 0x21, 0x00, 0x06
.byte 0x00, 0x0E, 0x3F, 0xF6, 0x9B, 0xFB, 0x68, 0x69, 0x03, 0x21, 0x00, 0x06, 0x00, 0x0E, 0x3F, 0xF6
.byte 0x95, 0xFB, 0x28, 0x69, 0x40, 0x1C, 0x28, 0x61, 0x70, 0xBD, 0xA9, 0x6A, 0xE8, 0x6A, 0x08, 0x18
.byte 0x04, 0x13, 0xA8, 0x62, 0x10, 0x2C, 0x00, 0xDB, 0x10, 0x24, 0x10, 0x21, 0xEA, 0x68, 0x20, 0x1C
.byte 0x09, 0x1B, 0x90, 0x47, 0x10, 0x2C, 0x04, 0xDB, 0x00, 0x20, 0x68, 0x60, 0x30, 0x1C, 0x34, 0xF6
.byte 0x79, 0xFC, 0x70, 0xBD
thumb_func_start MOD84_021D81C4
MOD84_021D81C4: ; 0x021D81C4
ldr r0, [r0, #4]
cmp r0, #0
bne _021D81CE
mov r0, #1
bx lr
_021D81CE:
mov r0, #0
bx lr
.align 2, 0
thumb_func_end MOD84_021D81C4
thumb_func_start MOD84_021D81D4
MOD84_021D81D4: ; 0x021D81D4
ldr r3, _021D81D8 ; =FreeToHeap
bx r3
.align 2, 0
_021D81D8: .word FreeToHeap
thumb_func_end MOD84_021D81D4
thumb_func_start MOD84_021D81DC
MOD84_021D81DC: ; 0x021D81DC
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r6, r1, #0
mov r0, #0x4b
mov r1, #0x10
add r7, r2, #0
bl AllocFromHeap
add r4, r0, #0
beq _021D8218
mov r0, #0x4b
add r3, r4, #0
str r0, [sp]
add r0, r5, #0
add r1, r6, #0
mov r2, #0
add r3, #8
bl FUN_02006C30
str r0, [r4]
mov r0, #0x4b
add r3, r4, #0
str r0, [sp]
add r0, r5, #0
add r1, r7, #0
mov r2, #0
add r3, #0xc
bl FUN_02006C5C
str r0, [r4, #4]
_021D8218:
add r0, r4, #0
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end MOD84_021D81DC
thumb_func_start MOD84_021D821C
MOD84_021D821C: ; 0x021D821C
push {r4, lr}
add r4, r0, #0
beq _021D823C
ldr r0, [r4]
cmp r0, #0
beq _021D822C
bl FreeToHeap
_021D822C:
ldr r0, [r4, #4]
cmp r0, #0
beq _021D8236
bl FreeToHeap
_021D8236:
add r0, r4, #0
bl FreeToHeap
_021D823C:
pop {r4, pc}
.align 2, 0
thumb_func_end MOD84_021D821C
thumb_func_start MOD84_021D8240
MOD84_021D8240: ; 0x021D8240
str r2, [r0]
str r3, [r0, #8]
ldr r2, [r1, #8]
str r2, [r0, #0xc]
ldr r1, [r1, #0xc]
ldr r2, [sp]
str r1, [r0, #0x10]
add r1, r0, #0
add r1, #0x20
strb r2, [r1]
mov r1, #0
str r1, [r0, #4]
str r1, [r0, #0x14]
str r1, [r0, #0x18]
str r1, [r0, #0x1c]
bx lr
thumb_func_end MOD84_021D8240
thumb_func_start MOD84_021D8260
MOD84_021D8260: ; 0x021D8260
push {r4, lr}
sub sp, #0x20
add r0, #0xdc
ldr r0, [r0]
str r0, [sp]
lsl r0, r2, #0xc
str r0, [sp, #8]
lsl r0, r3, #0xc
str r0, [sp, #0xc]
mov r0, #0
str r0, [sp, #0x10]
ldr r0, [sp, #0x28]
str r1, [sp, #4]
str r0, [sp, #0x14]
ldr r0, [sp, #0x2c]
str r0, [sp, #0x18]
mov r0, #0x4b
str r0, [sp, #0x1c]
add r0, sp, #0
bl FUN_0201FF84
add r4, r0, #0
beq _021D82A6
mov r1, #1
bl FUN_020200BC
mov r1, #1
add r0, r4, #0
lsl r1, r1, #0xc
bl FUN_020200D8
ldr r1, [sp, #0x30]
add r0, r4, #0
bl FUN_020200A0
_021D82A6:
add r0, r4, #0
add sp, #0x20
pop {r4, pc}
thumb_func_end MOD84_021D8260
thumb_func_start MOD84_021D82AC
MOD84_021D82AC: ; 0x021D82AC
mov r1, #0x2b
lsl r1, r1, #4
ldr r0, [r0, r1]
bx lr
thumb_func_end MOD84_021D82AC
thumb_func_start MOD84_021D82B4
MOD84_021D82B4: ; 0x021D82B4
ldr r0, [r0, #0x10]
bx lr
thumb_func_end MOD84_021D82B4
thumb_func_start MOD84_021D82B8
MOD84_021D82B8: ; 0x021D82B8
push {r4, r5, r6, r7, lr}
sub sp, #0xc
add r4, r0, #0
ldr r0, _021D8428 ; =0x00001220
mov r1, #3
str r1, [r4, r0]
ldr r0, [r4, #0x18]
ldr r7, _021D8428 ; =0x00001220
ldr r6, [r0, #8]
mov r5, #1
_021D82CC:
ldr r0, _021D842C ; =0x00000186
cmp r5, r0
beq _021D8340
add r0, r0, #3
cmp r5, r0
beq _021D8340
ldr r0, _021D8430 ; =0x00000183
cmp r5, r0
beq _021D8340
lsl r1, r5, #0x10
add r0, r6, #0
lsr r1, r1, #0x10
bl FUN_02024594
cmp r0, #0
beq _021D8340
lsl r0, r5, #0x10
lsr r1, r0, #0x10
ldr r0, _021D8428 ; =0x00001220
ldr r0, [r4, r0]
lsl r0, r0, #3
add r2, r4, r0
mov r0, #0xae
lsl r0, r0, #2
strh r1, [r2, r0]
add r0, r6, #0
mov r2, #0
bl FUN_02024674
ldr r1, _021D8428 ; =0x00001220
ldr r1, [r4, r1]
lsl r1, r1, #3
add r2, r4, r1
ldr r1, _021D8434 ; =0x000002BA
strb r0, [r2, r1]
bl rand_LC
ldr r1, _021D8428 ; =0x00001220
ldr r1, [r4, r1]
lsl r1, r1, #3
add r2, r4, r1
mov r1, #0xaf
lsl r1, r1, #2
str r0, [r2, r1]
add r0, r6, #0
add r1, r5, #0
mov r2, #0
bl FUN_02024DAC
ldr r1, _021D8428 ; =0x00001220
ldr r1, [r4, r1]
lsl r1, r1, #3
add r2, r4, r1
ldr r1, _021D8438 ; =0x000002BB
strb r0, [r2, r1]
ldr r0, [r4, r7]
add r0, r0, #1
str r0, [r4, r7]
_021D8340:
ldr r0, _021D843C ; =0x000001ED
add r5, r5, #1
cmp r5, r0
blt _021D82CC
ldr r0, _021D8428 ; =0x00001220
mov r7, #3
ldr r0, [r4, r0]
sub r0, r0, #1
cmp r0, #3
ble _021D83B0
add r5, r4, #0
add r5, #0x18
_021D8358:
bl rand_LC
ldr r1, _021D8428 ; =0x00001220
ldr r1, [r4, r1]
sub r1, r1, r7
bl _s32_div_f
add r0, r1, #3
mov r2, #0xaf
lsl r2, r2, #2
ldr r2, [r5, r2]
lsl r0, r0, #3
mov r1, #0xae
lsl r1, r1, #2
ldr r1, [r5, r1]
str r2, [sp]
str r2, [sp, #8]
mov r2, #0xae
add r0, r4, r0
lsl r2, r2, #2
ldr r3, [r0, r2]
add r2, r2, #4
ldr r2, [r0, r2]
str r1, [sp, #4]
mov ip, r2
mov r2, #0xae
lsl r2, r2, #2
str r3, [r5, r2]
mov r3, ip
add r2, r2, #4
str r3, [r5, r2]
mov r2, #0xae
lsl r2, r2, #2
str r1, [r0, r2]
ldr r1, [sp]
add r2, r2, #4
str r1, [r0, r2]
ldr r0, _021D8428 ; =0x00001220
add r7, r7, #1
ldr r0, [r4, r0]
add r5, #8
sub r0, r0, #1
cmp r7, r0
blt _021D8358
_021D83B0:
bl rand_LC
mov r1, #3
bl _s32_div_f
add r5, r1, #0
mov r7, #0
_021D83BE:
cmp r5, #0
beq _021D83CC
cmp r5, #1
beq _021D83D6
cmp r5, #2
beq _021D83E0
b _021D83E8
_021D83CC:
mov r0, #0xae
ldr r1, _021D842C ; =0x00000186
lsl r0, r0, #2
strh r1, [r4, r0]
b _021D83E8
_021D83D6:
mov r0, #0xae
ldr r1, _021D8440 ; =0x00000189
lsl r0, r0, #2
strh r1, [r4, r0]
b _021D83E8
_021D83E0:
mov r0, #0xae
ldr r1, _021D8430 ; =0x00000183
lsl r0, r0, #2
strh r1, [r4, r0]
_021D83E8:
mov r1, #0xae
lsl r1, r1, #2
ldrh r1, [r4, r1]
add r0, r6, #0
mov r2, #0
bl FUN_02024674
ldr r1, _021D8434 ; =0x000002BA
strb r0, [r4, r1]
bl rand_LC
mov r1, #0xaf
lsl r1, r1, #2
str r0, [r4, r1]
sub r1, r1, #4
ldrh r1, [r4, r1]
add r0, r6, #0
mov r2, #0
bl FUN_02024DAC
ldr r1, _021D8438 ; =0x000002BB
add r5, r5, #1
strb r0, [r4, r1]
cmp r5, #3
blt _021D841C
mov r5, #0
_021D841C:
add r7, r7, #1
add r4, #8
cmp r7, #3
blt _021D83BE
add sp, #0xc
pop {r4, r5, r6, r7, pc}
.align 2, 0
_021D8428: .word 0x00001220
_021D842C: .word 0x00000186
_021D8430: .word 0x00000183
_021D8434: .word 0x000002BA
_021D8438: .word 0x000002BB
_021D843C: .word 0x000001ED
_021D8440: .word 0x00000189
thumb_func_end MOD84_021D82B8
thumb_func_start MOD84_021D8444
MOD84_021D8444: ; 0x021D8444
ldr r1, _021D844C ; =0x00001220
ldr r0, [r0, r1]
bx lr
nop
_021D844C: .word 0x00001220
thumb_func_end MOD84_021D8444
thumb_func_start MOD84_021D8450
MOD84_021D8450: ; 0x021D8450
mov r1, #0xae
lsl r1, r1, #2
add r0, r0, r1
bx lr
thumb_func_end MOD84_021D8450
thumb_func_start MOD84_021D8458
MOD84_021D8458: ; 0x021D8458
add r1, r0, #0
ldr r0, _021D8464 ; =0x00001234
ldr r3, _021D8468 ; =MOD84_021D847C
add r0, r1, r0
bx r3
nop
_021D8464: .word 0x00001234
_021D8468: .word MOD84_021D847C
thumb_func_end MOD84_021D8458
thumb_func_start MOD84_021D846C
MOD84_021D846C: ; 0x021D846C
ldr r1, _021D8474 ; =0x00001234
ldr r3, _021D8478 ; =MOD84_021D84A0
add r0, r0, r1
bx r3
.align 2, 0
_021D8474: .word 0x00001234
_021D8478: .word MOD84_021D84A0
thumb_func_end MOD84_021D846C
thumb_func_start MOD84_021D847C
MOD84_021D847C: ; 0x021D847C
push {r3, lr}
mov r3, #0
str r3, [r0, #4]
str r1, [r0]
mov r1, #1
str r3, [r0, #8]
lsl r1, r1, #0xa
str r1, [r0, #0xc]
mov r0, #0x10
str r0, [sp]
ldr r0, _021D849C ; =0x04001050
mov r1, #2
mov r2, #0x3f
bl G2x_SetBlendAlpha_
pop {r3, pc}
.align 2, 0
_021D849C: .word 0x04001050
thumb_func_end MOD84_021D847C
thumb_func_start MOD84_021D84A0
MOD84_021D84A0: ; 0x021D84A0
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #4]
ldr r1, [r4]
cmp r0, #0
beq _021D84B2
cmp r0, #1
beq _021D84C2
b _021D84EC
_021D84B2:
ldr r0, [r1, #0xc]
mov r1, #0
bl MOD84_021D87B0
ldr r0, [r4, #4]
add r0, r0, #1
str r0, [r4, #4]
b _021D84F0
_021D84C2:
ldr r1, [r4, #8]
ldr r0, [r4, #0xc]
add r0, r1, r0
asr r2, r0, #0xc
str r0, [r4, #8]
cmp r2, #0x10
blt _021D84D2
mov r2, #0x10
_021D84D2:
mov r0, #0x10
sub r0, r0, r2
lsl r0, r0, #8
add r1, r2, #0
orr r1, r0
ldr r0, _021D84F4 ; =0x04001052
cmp r2, #0x10
strh r1, [r0]
bne _021D84F0
ldr r0, [r4, #4]
add r0, r0, #1
str r0, [r4, #4]
b _021D84F0
_021D84EC:
mov r0, #1
pop {r4, pc}
_021D84F0:
mov r0, #0
pop {r4, pc}
.align 2, 0
_021D84F4: .word 0x04001052
thumb_func_end MOD84_021D84A0
thumb_func_start MOD84_021D84F8
MOD84_021D84F8: ; 0x021D84F8
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x18
add r6, r0, #0
str r1, [sp, #0x14]
mov r0, #0x4b
mov r1, #0x38
add r5, r2, #0
add r7, r3, #0
bl AllocFromHeap
add r4, r0, #0
beq _021D85AC
ldr r0, [sp, #0x14]
str r6, [r4, #0x20]
str r0, [r4]
add r0, #0xc0
str r0, [r4, #4]
str r0, [sp, #0x14]
ldr r0, [sp, #0x30]
str r5, [r4, #8]
str r0, [r4, #0x2c]
mov r0, #0
str r0, [r4, #0xc]
str r0, [r4, #0x10]
str r0, [r4, #0x14]
str r0, [r4, #0x18]
str r0, [r4, #0x1c]
mov r0, #1
lsl r0, r0, #8
mov r1, #0x4b
bl FUN_020219F4
str r0, [r4, #0x30]
mov r0, #0x4b
mov r1, #1
bl FUN_02018FF4
str r0, [r4, #0x24]
mov r3, #0
lsl r2, r5, #0x18
str r3, [sp]
mov r0, #0x20
str r0, [sp, #4]
str r0, [sp, #8]
lsl r0, r7, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0xc]
str r3, [sp, #0x10]
ldr r1, [r4, #0x24]
add r0, r6, #0
lsr r2, r2, #0x18
bl FUN_02019064
ldr r0, [r4, #0x24]
mov r1, #0
bl FUN_02019620
ldr r0, [r4, #0x24]
bl FUN_02019270
ldr r0, [r4, #0x24]
bl FUN_020191D0
mov r0, #0x4b
mov r1, #1
bl FUN_02018FF4
str r0, [r4, #0x28]
mov r3, #0
lsl r2, r5, #0x18
str r3, [sp]
mov r0, #0x20
str r0, [sp, #4]
mov r0, #2
str r0, [sp, #8]
lsl r0, r7, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0xc]
str r3, [sp, #0x10]
ldr r1, [r4, #0x28]
add r0, r6, #0
lsr r2, r2, #0x18
bl FUN_02019064
ldr r0, _021D85B4 ; =MOD84_021D8784
add r1, r4, #0
mov r2, #0
bl FUN_0200CA98
str r0, [r4, #0x34]
_021D85AC:
add r0, r4, #0
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
nop
_021D85B4: .word MOD84_021D8784
thumb_func_end MOD84_021D84F8
thumb_func_start MOD84_021D85B8
MOD84_021D85B8: ; 0x021D85B8
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0x34]
cmp r0, #0
beq _021D85C6
bl FUN_0200CAB4
_021D85C6:
ldr r0, [r4, #0x30]
bl FUN_02021A20
ldr r0, [r4, #0x24]
bl FUN_02019178
ldr r0, [r4, #0x28]
bl FUN_02019178
ldr r0, [r4, #0x24]
bl FreeToHeap
ldr r0, [r4, #0x28]
bl FreeToHeap
add r0, r4, #0
bl FreeToHeap
pop {r4, pc}
thumb_func_end MOD84_021D85B8
thumb_func_start MOD84_021D85EC
MOD84_021D85EC: ; 0x021D85EC
push {r4, r5, r6, r7, lr}
sub sp, #0x1c
add r5, r0, #0
ldr r2, [r5, #0x1c]
str r1, [sp, #0x18]
cmp r2, #2
bne _021D8600
add sp, #0x1c
mov r0, #1
pop {r4, r5, r6, r7, pc}
_021D8600:
ldr r1, [r5, #4]
ldr r0, [sp, #0x18]
add r6, r1, r0
cmp r2, #0
bne _021D86E0
ldr r2, [r5, #0xc]
mov r0, #6
add r1, r2, #0
mul r1, r0
ldr r0, _021D8774 ; =0x021DA766
ldrh r0, [r0, r1]
cmp r6, r0
blt _021D86E0
ldr r2, _021D8778 ; =0x021DA764
ldr r0, [r5, #0x2c]
ldrh r1, [r2, r1]
ldr r2, [r5, #0x30]
bl FUN_0200A8E0
ldr r1, [r5, #0xc]
mov r0, #6
add r2, r1, #0
mul r2, r0
ldr r0, _021D877C ; =0x021DA768
ldrh r0, [r0, r2]
cmp r0, #0
beq _021D864A
mov r0, #0
ldr r1, [r5, #0x30]
add r2, r0, #0
bl FUN_02002E14
mov r1, #1
lsl r1, r1, #8
sub r0, r1, r0
lsr r7, r0, #1
b _021D864C
_021D864A:
mov r7, #0x20
_021D864C:
ldr r1, [r5, #0xc]
mov r0, #6
add r2, r1, #0
mul r2, r0
ldr r0, _021D8774 ; =0x021DA766
mov r1, #0
ldrh r0, [r0, r2]
add r3, r7, #0
lsl r0, r0, #0x18
lsr r4, r0, #0x18
str r4, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, _021D8780 ; =0x00010200
str r0, [sp, #8]
str r1, [sp, #0xc]
ldr r0, [r5, #0x24]
ldr r2, [r5, #0x30]
bl FUN_0201BDE0
cmp r4, #0xf0
ble _021D86D0
ldr r0, [r5, #0x28]
mov r1, #0
bl FUN_02019620
mov r1, #0
str r1, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, _021D8780 ; =0x00010200
add r3, r7, #0
str r0, [sp, #8]
str r1, [sp, #0xc]
ldr r0, [r5, #0x28]
ldr r2, [r5, #0x30]
bl FUN_0201BDE0
ldr r1, [r5, #0x28]
sub r4, #0xf0
ldrb r2, [r1, #7]
mov r0, #0x10
sub r3, r0, r4
add r4, r0, #0
sub r0, r0, r3
lsl r2, r2, #0x13
lsr r2, r2, #0x10
str r2, [sp]
ldrb r2, [r1, #8]
lsl r0, r0, #0x10
lsl r3, r3, #0x10
lsl r2, r2, #0x13
lsr r2, r2, #0x10
str r2, [sp, #4]
mov r2, #0
str r2, [sp, #8]
str r2, [sp, #0xc]
add r4, #0xf0
str r4, [sp, #0x10]
lsr r0, r0, #0x10
str r0, [sp, #0x14]
ldr r0, [r5, #0x24]
ldr r1, [r1, #0xc]
lsr r3, r3, #0x10
bl FUN_02019658
_021D86D0:
mov r1, #1
str r1, [r5, #0x18]
ldr r0, [r5, #0xc]
add r0, r0, #1
str r0, [r5, #0xc]
cmp r0, #0xd6
blo _021D86E0
str r1, [r5, #0x1c]
_021D86E0:
str r6, [r5, #4]
ldr r0, [r5, #0x10]
mov r1, #6
add r2, r0, #0
ldr r0, _021D8774 ; =0x021DA766
mul r2, r1
ldrh r3, [r0, r2]
ldr r2, [r5]
add r0, r3, #0
add r0, #0x10
cmp r2, r0
ble _021D8766
lsl r0, r3, #0x18
lsr r3, r0, #0x18
cmp r3, #0xf0
bgt _021D8718
add r1, #0xfa
str r1, [sp]
mov r0, #0x10
str r0, [sp, #4]
mov r1, #0
lsl r3, r3, #0x10
ldr r0, [r5, #0x24]
add r2, r1, #0
lsr r3, r3, #0x10
bl FUN_020196F4
b _021D8754
_021D8718:
add r1, r3, #0
sub r1, #0xf0
mov r0, #0x10
sub r4, r0, r1
add r0, #0xf0
str r0, [sp]
lsl r0, r4, #0x10
lsr r0, r0, #0x10
str r0, [sp, #4]
mov r1, #0
lsl r3, r3, #0x10
ldr r0, [r5, #0x24]
add r2, r1, #0
lsr r3, r3, #0x10
bl FUN_020196F4
mov r1, #0
mov r0, #1
lsl r0, r0, #8
str r0, [sp]
mov r0, #0x10
sub r0, r0, r4
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp, #4]
ldr r0, [r5, #0x24]
add r2, r1, #0
add r3, r1, #0
bl FUN_020196F4
_021D8754:
mov r0, #1
str r0, [r5, #0x18]
ldr r0, [r5, #0x10]
add r0, r0, #1
str r0, [r5, #0x10]
cmp r0, #0xd7
blo _021D8766
mov r0, #2
str r0, [r5, #0x1c]
_021D8766:
ldr r1, [r5]
ldr r0, [sp, #0x18]
add r0, r1, r0
str r0, [r5]
mov r0, #0
add sp, #0x1c
pop {r4, r5, r6, r7, pc}
.align 2, 0
_021D8774: .word 0x021DA766
_021D8778: .word 0x021DA764
_021D877C: .word 0x021DA768
_021D8780: .word 0x00010200
thumb_func_end MOD84_021D85EC
thumb_func_start MOD84_021D8784
MOD84_021D8784: ; 0x021D8784
push {r4, lr}
add r4, r1, #0
ldr r0, [r4, #0x18]
cmp r0, #0
beq _021D8798
ldr r0, [r4, #0x24]
bl FUN_02019548
mov r0, #0
str r0, [r4, #0x18]
_021D8798:
ldr r1, [r4, #8]
ldr r3, [r4]
lsl r1, r1, #0x18
lsl r3, r3, #0x18
ldr r0, [r4, #0x20]
lsr r1, r1, #0x18
mov r2, #3
lsr r3, r3, #0x18
bl FUN_020179E0
pop {r4, pc}
.align 2, 0
thumb_func_end MOD84_021D8784
thumb_func_start MOD84_021D87B0
MOD84_021D87B0: ; 0x021D87B0
push {r3, r4, r5, lr}
sub sp, #0x18
add r5, r0, #0
mov r0, #2
str r0, [r5, #0x1c]
mov r0, #0
str r0, [r5, #0x18]
cmp r1, #0
beq _021D87CE
ldr r0, [r5, #0x24]
mov r1, #0xf
bl FUN_02019620
ldr r4, _021D8814 ; =0x0001020F
b _021D87D0
_021D87CE:
ldr r4, _021D8818 ; =0x00010200
_021D87D0:
ldr r0, [r5, #0x2c]
ldr r2, [r5, #0x30]
mov r1, #0xd7
bl FUN_0200A8E0
mov r0, #0
ldr r1, [r5, #0x30]
add r2, r0, #0
bl FUN_02002E14
mov r1, #1
lsl r1, r1, #8
sub r0, r1, r0
mov r1, #0
lsr r3, r0, #1
str r1, [r5]
mov r0, #0x50
str r0, [sp]
mov r0, #0xff
str r0, [sp, #4]
str r4, [sp, #8]
mov r0, #3
str r0, [sp, #0xc]
str r1, [sp, #0x10]
str r1, [sp, #0x14]
ldr r0, [r5, #0x24]
ldr r2, [r5, #0x30]
bl FUN_0201BE3C
ldr r0, [r5, #0x24]
bl FUN_02019548
add sp, #0x18
pop {r3, r4, r5, pc}
.align 2, 0
_021D8814: .word 0x0001020F
_021D8818: .word 0x00010200
thumb_func_end MOD84_021D87B0
thumb_func_start MOD84_021D881C
MOD84_021D881C: ; 0x021D881C
push {r4, lr}
sub sp, #0x10
add r4, r0, #0
mov r0, #2
str r0, [r4, #0x1c]
mov r0, #0
str r0, [r4]
str r0, [r4, #0x18]
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x4b
str r0, [sp, #0xc]
ldr r2, [r4, #0x20]
ldr r3, [r4, #8]
mov r0, #0x7f
mov r1, #0x2a
bl FUN_020068C8
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x4b
str r0, [sp, #0xc]
ldr r2, [r4, #0x20]
ldr r3, [r4, #8]
mov r0, #0x7f
mov r1, #0x2b
bl FUN_0200687C
mov r0, #0x20
str r0, [sp]
mov r0, #0x4b
mov r2, #0
str r0, [sp, #4]
mov r0, #0x7f
mov r1, #0x2c
add r3, r2, #0
bl FUN_02006930
add sp, #0x10
pop {r4, pc}
.align 2, 0
thumb_func_end MOD84_021D881C
thumb_func_start MOD84_021D8874
MOD84_021D8874: ; 0x021D8874
push {r4, r5, r6, lr}
add r5, r0, #0
add r6, r1, #0
mov r0, #0x4b
mov r1, #0x1c
bl AllocFromHeap
add r4, r0, #0
beq _021D88A0
str r5, [r4]
str r6, [r4, #4]
mov r0, #0
str r0, [r4, #0x14]
str r0, [r4, #0x18]
add r0, r5, #0
bl MOD84_021D82AC
str r0, [r4, #8]
mov r0, #0
str r0, [r4, #0xc]
sub r0, #0x36
str r0, [r4, #0x10]
_021D88A0:
add r0, r4, #0
pop {r4, r5, r6, pc}
thumb_func_end MOD84_021D8874
thumb_func_start MOD84_021D88A4
MOD84_021D88A4: ; 0x021D88A4
push {r4, lr}
add r4, r0, #0
bl MOD84_021D8958
cmp r0, #0
beq _021D88C4
ldr r0, [r4, #8]
mov r1, #1
bl FUN_02020130
ldr r0, [r4, #8]
mov r1, #1
bl FUN_020200A0
mov r0, #1
pop {r4, pc}
_021D88C4:
mov r0, #0
pop {r4, pc}
thumb_func_end MOD84_021D88A4
thumb_func_start MOD84_021D88C8
MOD84_021D88C8: ; 0x021D88C8
push {r4, lr}
add r4, r0, #0
bl MOD84_021D8A74
add r0, r4, #0
bl FreeToHeap
mov r0, #1
pop {r4, pc}
.align 2, 0
thumb_func_end MOD84_021D88C8
thumb_func_start MOD84_021D88DC
MOD84_021D88DC: ; 0x021D88DC
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r4, r1, #0
ldr r1, [r5, #0xc]
ldr r0, [r5, #0x10]
mov r7, #1
add r0, r1, r0
str r0, [r5, #0xc]
asr r6, r0, #0xc
lsl r7, r7, #8
ldr r0, [r5, #4]
mov r1, #2
mov r2, #0
add r3, r6, r7
bl FUN_020179E0
ldr r0, [r5, #4]
mov r1, #6
mov r2, #0
add r3, r6, r7
bl FUN_020179E0
ldr r0, [r4]
cmp r0, #0
beq _021D8914
cmp r0, #1
beq _021D893A
b _021D8950
_021D8914:
ldr r0, [r5, #0x14]
add r1, r0, #1
ldr r0, _021D8954 ; =0x00000708
str r1, [r5, #0x14]
cmp r1, r0
blt _021D8950
mov r0, #3
str r0, [sp]
mov r0, #0x20
add r1, r0, #0
sub r1, #0x30
mov r2, #0
mov r3, #0x1d
bl FUN_0200A208
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021D8950
_021D893A:
mov r0, #3
bl FUN_0200A344
cmp r0, #0
beq _021D8950
ldr r0, [r5, #8]
mov r1, #0
bl FUN_020200A0
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021D8950:
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_021D8954: .word 0x00000708
thumb_func_end MOD84_021D88DC
thumb_func_start MOD84_021D8958
MOD84_021D8958: ; 0x021D8958
push {r3, r4, r5, lr}
sub sp, #0x10
add r4, r1, #0
add r5, r0, #0
ldr r0, [r4]
cmp r0, #4
bhi _021D8A50
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021D8972: ; jump table
.short _021D897C - _021D8972 - 2 ; case 0
.short _021D899C - _021D8972 - 2 ; case 1
.short _021D89D8 - _021D8972 - 2 ; case 2
.short _021D8A10 - _021D8972 - 2 ; case 3
.short _021D8A30 - _021D8972 - 2 ; case 4
_021D897C:
ldr r0, [r5, #4]
ldr r2, _021D8A6C ; =0x021DAC70
mov r1, #2
mov r3, #0
bl FUN_02016C18
ldr r0, [r5, #4]
ldr r2, _021D8A6C ; =0x021DAC70
mov r1, #6
mov r3, #0
bl FUN_02016C18
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021D8A64
_021D899C:
mov r0, #0x80
str r0, [sp]
mov r0, #6
lsl r0, r0, #6
str r0, [sp, #4]
mov r0, #0x4b
mov r2, #0
str r0, [sp, #8]
mov r0, #0x7f
mov r1, #0x41
add r3, r2, #0
bl FUN_02006948
mov r0, #0x80
str r0, [sp]
mov r0, #6
lsl r0, r0, #6
str r0, [sp, #4]
mov r0, #0x4b
str r0, [sp, #8]
mov r0, #0x7f
mov r1, #0x41
mov r2, #4
mov r3, #0
bl FUN_02006948
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021D8A64
_021D89D8:
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x4b
str r0, [sp, #0xc]
ldr r2, [r5, #4]
mov r0, #0x7f
mov r1, #4
mov r3, #2
bl FUN_020068C8
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x4b
str r0, [sp, #0xc]
mov r1, #6
ldr r2, [r5, #4]
mov r0, #0x7f
add r3, r1, #0
bl FUN_020068C8
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021D8A64
_021D8A10:
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x4b
str r0, [sp, #0xc]
ldr r2, [r5, #4]
mov r0, #0x7f
mov r1, #5
mov r3, #2
bl FUN_0200687C
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021D8A64
_021D8A30:
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x4b
str r0, [sp, #0xc]
ldr r2, [r5, #4]
mov r0, #0x7f
mov r1, #7
mov r3, #6
bl FUN_0200687C
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021D8A64
_021D8A50:
ldr r0, _021D8A70 ; =0x04000050
mov r1, #0
mov r2, #0xc
mov r3, #0x10
str r1, [sp]
bl G2x_SetBlendAlpha_
add sp, #0x10
mov r0, #1
pop {r3, r4, r5, pc}
_021D8A64:
mov r0, #0
add sp, #0x10
pop {r3, r4, r5, pc}
nop
_021D8A6C: .word 0x021DAC70
_021D8A70: .word 0x04000050
thumb_func_end MOD84_021D8958
thumb_func_start MOD84_021D8A74
MOD84_021D8A74: ; 0x021D8A74
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #4]
mov r1, #2
bl FUN_020178A0
ldr r0, [r4, #4]
mov r1, #6
bl FUN_020178A0
pop {r4, pc}
.align 2, 0
thumb_func_end MOD84_021D8A74
thumb_func_start MOD84_021D8A8C
MOD84_021D8A8C: ; 0x021D8A8C
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
mov r0, #0x4b
mov r1, #0x10
bl AllocFromHeap
cmp r0, #0
beq _021D8AA8
str r5, [r0]
str r4, [r0, #4]
mov r1, #0
str r1, [r0, #8]
str r1, [r0, #0xc]
_021D8AA8:
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_end MOD84_021D8A8C
thumb_func_start MOD84_021D8AAC
MOD84_021D8AAC: ; 0x021D8AAC
push {r3, lr}
bl MOD84_021D8B70
cmp r0, #0
beq _021D8ABA
mov r0, #1
pop {r3, pc}
_021D8ABA:
mov r0, #0
pop {r3, pc}
.align 2, 0
thumb_func_end MOD84_021D8AAC
thumb_func_start MOD84_021D8AC0
MOD84_021D8AC0: ; 0x021D8AC0
push {r4, lr}
add r4, r0, #0
bl MOD84_021D8C3C
add r0, r4, #0
bl FreeToHeap
mov r0, #1
pop {r4, pc}
.align 2, 0
thumb_func_end MOD84_021D8AC0
thumb_func_start MOD84_021D8AD4
MOD84_021D8AD4: ; 0x021D8AD4
push {r3, r4, lr}
sub sp, #4
add r4, r1, #0
ldr r1, [r4]
cmp r1, #3
bhi _021D8B66
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021D8AEC: ; jump table
.short _021D8AF4 - _021D8AEC - 2 ; case 0
.short _021D8B16 - _021D8AEC - 2 ; case 1
.short _021D8B28 - _021D8AEC - 2 ; case 2
.short _021D8B4E - _021D8AEC - 2 ; case 3
_021D8AF4:
mov r0, #1
mov r1, #0
bl FUN_0201E6E4
mov r1, #0
mov r0, #3
add r2, r1, #0
str r0, [sp]
mov r0, #0x20
sub r2, #0x10
mov r3, #0x1d
bl FUN_0200A208
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021D8B66
_021D8B16:
mov r0, #3
bl FUN_0200A344
cmp r0, #0
beq _021D8B66
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021D8B66
_021D8B28:
ldr r1, [r0, #8]
add r1, r1, #1
str r1, [r0, #8]
ldr r0, _021D8B6C ; =0x000002DF
cmp r1, r0
blt _021D8B66
mov r0, #3
str r0, [sp]
mov r0, #0x20
add r1, r0, #0
sub r1, #0x30
mov r2, #0
mov r3, #0x1d
bl FUN_0200A208
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021D8B66
_021D8B4E:
mov r0, #3
bl FUN_0200A344
cmp r0, #0
beq _021D8B66
mov r0, #1
add r1, r0, #0
bl FUN_0201E6E4
add sp, #4
mov r0, #1
pop {r3, r4, pc}
_021D8B66:
mov r0, #0
add sp, #4
pop {r3, r4, pc}
.align 2, 0
_021D8B6C: .word 0x000002DF
thumb_func_end MOD84_021D8AD4
thumb_func_start MOD84_021D8B70
MOD84_021D8B70: ; 0x021D8B70
push {r3, r4, r5, lr}
sub sp, #0x10
add r4, r1, #0
add r5, r0, #0
ldr r0, [r4]
cmp r0, #3
bhi _021D8C2A
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021D8B8A: ; jump table
.short _021D8B92 - _021D8B8A - 2 ; case 0
.short _021D8BB2 - _021D8B8A - 2 ; case 1
.short _021D8BEA - _021D8B8A - 2 ; case 2
.short _021D8C0A - _021D8B8A - 2 ; case 3
_021D8B92:
ldr r0, [r5, #4]
ldr r2, _021D8C38 ; =0x021DAC8C
mov r1, #2
mov r3, #0
bl FUN_02016C18
ldr r0, [r5, #4]
ldr r2, _021D8C38 ; =0x021DAC8C
mov r1, #6
mov r3, #0
bl FUN_02016C18
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021D8C30
_021D8BB2:
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x4b
str r0, [sp, #0xc]
ldr r2, [r5, #4]
mov r0, #0x7f
mov r1, #0x24
mov r3, #2
bl FUN_020068C8
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x4b
str r0, [sp, #0xc]
ldr r2, [r5, #4]
mov r0, #0x7f
mov r1, #0x22
mov r3, #6
bl FUN_020068C8
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021D8C30
_021D8BEA:
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x4b
str r0, [sp, #0xc]
ldr r2, [r5, #4]
mov r0, #0x7f
mov r1, #0x25
mov r3, #2
bl FUN_0200687C
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021D8C30
_021D8C0A:
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x4b
str r0, [sp, #0xc]
ldr r2, [r5, #4]
mov r0, #0x7f
mov r1, #0x23
mov r3, #6
bl FUN_0200687C
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021D8C30
_021D8C2A:
add sp, #0x10
mov r0, #1
pop {r3, r4, r5, pc}
_021D8C30:
mov r0, #0
add sp, #0x10
pop {r3, r4, r5, pc}
nop
_021D8C38: .word 0x021DAC8C
thumb_func_end MOD84_021D8B70
thumb_func_start MOD84_021D8C3C
MOD84_021D8C3C: ; 0x021D8C3C
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #4]
mov r1, #2
bl FUN_020178A0
ldr r0, [r4, #4]
mov r1, #6
bl FUN_020178A0
pop {r4, pc}
.align 2, 0
thumb_func_end MOD84_021D8C3C
thumb_func_start MOD84_021D8C54
MOD84_021D8C54: ; 0x021D8C54
push {r4, r5, r6, lr}
add r6, r1, #0
mov r1, #0xe
add r5, r0, #0
mov r0, #0x4b
lsl r1, r1, #8
bl AllocFromHeap
add r4, r0, #0
beq _021D8CC6
str r5, [r4]
ldr r1, _021D8CCC ; =0x00000DF4
str r6, [r4, #4]
mov r2, #0
str r2, [r4, r1]
add r0, r1, #4
str r2, [r4, r0]
add r1, #0xa
strh r2, [r4, r1]
bl rand_LC
ldr r1, _021D8CD0 ; =0x00000DFC
strh r0, [r4, r1]
add r0, r5, #0
bl MOD84_021D8444
mov r1, #0x17
lsl r1, r1, #4
str r0, [r4, r1]
add r0, r5, #0
bl MOD84_021D8450
mov r1, #0x5b
lsl r1, r1, #2
str r0, [r4, r1]
ldr r0, _021D8CD4 ; =MOD84_021D9278
add r1, r4, #0
mov r2, #0
bl FUN_0200CA44
mov r1, #0x5a
lsl r1, r1, #2
str r0, [r4, r1]
mov r2, #0
str r2, [r4, #0xc]
mov r0, #0x15
str r2, [r4, #8]
add r3, r4, #0
add r1, r2, #0
lsl r0, r0, #4
_021D8CB8:
str r1, [r3, #0x60]
str r1, [r3, #0x48]
str r1, [r3, r0]
add r2, r2, #1
add r3, r3, #4
cmp r2, #6
blt _021D8CB8
_021D8CC6:
add r0, r4, #0
pop {r4, r5, r6, pc}
nop
_021D8CCC: .word 0x00000DF4
_021D8CD0: .word 0x00000DFC
_021D8CD4: .word MOD84_021D9278
thumb_func_end MOD84_021D8C54
thumb_func_start MOD84_021D8CD8
MOD84_021D8CD8: ; 0x021D8CD8
push {r3, lr}
bl MOD84_021D8DF8
cmp r0, #0
beq _021D8CE6
mov r0, #1
pop {r3, pc}
_021D8CE6:
mov r0, #0
pop {r3, pc}
.align 2, 0
thumb_func_end MOD84_021D8CD8
thumb_func_start MOD84_021D8CEC
MOD84_021D8CEC: ; 0x021D8CEC
push {r4, lr}
add r4, r0, #0
ldr r0, _021D8D08 ; =0x00000DFC
ldrh r0, [r4, r0]
bl seedr_LC
add r0, r4, #0
bl MOD84_021D9044
add r0, r4, #0
bl FreeToHeap
mov r0, #1
pop {r4, pc}
.align 2, 0
_021D8D08: .word 0x00000DFC
thumb_func_end MOD84_021D8CEC
thumb_func_start MOD84_021D8D0C
MOD84_021D8D0C: ; 0x021D8D0C
push {r3, r4, r5, lr}
add r5, r1, #0
ldr r1, [r5]
add r4, r0, #0
cmp r1, #3
bhi _021D8DC8
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021D8D24: ; jump table
.short _021D8D2C - _021D8D24 - 2 ; case 0
.short _021D8D56 - _021D8D24 - 2 ; case 1
.short _021D8D6E - _021D8D24 - 2 ; case 2
.short _021D8D9E - _021D8D24 - 2 ; case 3
_021D8D2C:
mov r0, #1
mov r1, #0
bl FUN_0201E6E4
mov r0, #0x10
mov r1, #0
bl FUN_0201E74C
mov r1, #0
mov r0, #3
add r2, r1, #0
str r0, [sp]
mov r0, #0x20
sub r2, #0x10
mov r3, #0x1d
bl FUN_0200A208
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021D8DE6
_021D8D56:
mov r0, #3
bl FUN_0200A344
cmp r0, #0
beq _021D8DE6
ldr r0, _021D8DEC ; =0x00000DF4
mov r1, #0
str r1, [r4, r0]
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021D8DE6
_021D8D6E:
ldr r1, _021D8DEC ; =0x00000DF4
ldr r2, [r4, r1]
cmp r2, #0
bne _021D8D98
mov r2, #0x64
str r2, [r4, r1]
add r1, #0xa
ldrh r1, [r4, r1]
bl MOD84_021D90C4
ldr r0, _021D8DF0 ; =0x00000DFE
ldrh r1, [r4, r0]
add r1, r1, #1
strh r1, [r4, r0]
ldrh r0, [r4, r0]
cmp r0, #6
blo _021D8DE6
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021D8DE6
_021D8D98:
sub r0, r2, #1
str r0, [r4, r1]
b _021D8DE6
_021D8D9E:
ldr r0, _021D8DEC ; =0x00000DF4
ldr r1, [r4, r0]
add r1, r1, #1
str r1, [r4, r0]
ldr r1, [r4, r0]
ldr r0, _021D8DF4 ; =0x000002FD
cmp r1, r0
blt _021D8DE6
mov r0, #3
str r0, [sp]
mov r0, #0x20
add r1, r0, #0
sub r1, #0x30
mov r2, #0
mov r3, #0x1d
bl FUN_0200A208
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021D8DE6
_021D8DC8:
mov r0, #3
bl FUN_0200A344
cmp r0, #0
beq _021D8DE6
mov r0, #1
add r1, r0, #0
bl FUN_0201E6E4
mov r0, #0x10
mov r1, #1
bl FUN_0201E74C
mov r0, #1
pop {r3, r4, r5, pc}
_021D8DE6:
mov r0, #0
pop {r3, r4, r5, pc}
nop
_021D8DEC: .word 0x00000DF4
_021D8DF0: .word 0x00000DFE
_021D8DF4: .word 0x000002FD
thumb_func_end MOD84_021D8D0C
thumb_func_start MOD84_021D8DF8
MOD84_021D8DF8: ; 0x021D8DF8
push {r4, r5, r6, r7, lr}
sub sp, #0x6c
add r4, r0, #0
ldr r0, [r1]
str r1, [sp, #0x14]
cmp r0, #8
bls _021D8E08
b _021D9028
_021D8E08:
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021D8E14: ; jump table
.short _021D8E26 - _021D8E14 - 2 ; case 0
.short _021D8E4A - _021D8E14 - 2 ; case 1
.short _021D8E86 - _021D8E14 - 2 ; case 2
.short _021D8EAA - _021D8E14 - 2 ; case 3
.short _021D8ECE - _021D8E14 - 2 ; case 4
.short _021D8EF2 - _021D8E14 - 2 ; case 5
.short _021D8F40 - _021D8E14 - 2 ; case 6
.short _021D8F86 - _021D8E14 - 2 ; case 7
.short _021D8FD4 - _021D8E14 - 2 ; case 8
_021D8E26:
ldr r0, [r4, #4]
ldr r2, _021D903C ; =0x021DACB8
mov r1, #2
mov r3, #0
bl FUN_02016C18
ldr r0, [r4, #4]
ldr r2, _021D903C ; =0x021DACB8
mov r1, #6
mov r3, #0
bl FUN_02016C18
ldr r0, [sp, #0x14]
ldr r0, [r0]
add r1, r0, #1
ldr r0, [sp, #0x14]
str r1, [r0]
b _021D9034
_021D8E4A:
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x4b
str r0, [sp, #0xc]
ldr r2, [r4, #4]
mov r0, #0x7f
mov r1, #0x22
mov r3, #2
bl FUN_020068C8
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x4b
str r0, [sp, #0xc]
ldr r2, [r4, #4]
mov r0, #0x7f
mov r1, #0x22
mov r3, #6
bl FUN_020068C8
ldr r0, [sp, #0x14]
ldr r0, [r0]
add r1, r0, #1
ldr r0, [sp, #0x14]
str r1, [r0]
b _021D9034
_021D8E86:
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x4b
str r0, [sp, #0xc]
ldr r2, [r4, #4]
mov r0, #0x7f
mov r1, #0x23
mov r3, #2
bl FUN_0200687C
ldr r0, [sp, #0x14]
ldr r0, [r0]
add r1, r0, #1
ldr r0, [sp, #0x14]
str r1, [r0]
b _021D9034
_021D8EAA:
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x4b
str r0, [sp, #0xc]
ldr r2, [r4, #4]
mov r0, #0x7f
mov r1, #0x23
mov r3, #6
bl FUN_0200687C
ldr r0, [sp, #0x14]
ldr r0, [r0]
add r1, r0, #1
ldr r0, [sp, #0x14]
str r1, [r0]
b _021D9034
_021D8ECE:
mov r0, #0x7f
mov r1, #0x35
mov r2, #0x36
bl MOD84_021D81DC
str r0, [r4, #8]
mov r0, #0x1b
mov r1, #0x29
mov r2, #0x2a
bl MOD84_021D81DC
str r0, [r4, #0xc]
ldr r0, [sp, #0x14]
ldr r0, [r0]
add r1, r0, #1
ldr r0, [sp, #0x14]
str r1, [r0]
b _021D9034
_021D8EF2:
add r0, r4, #0
add r0, #0x10
bl FUN_020B1A24
add r0, r4, #0
add r0, #0x34
bl FUN_020B19DC
mov r2, #0
str r2, [sp]
mov r0, #1
str r0, [sp, #4]
str r2, [sp, #8]
mov r0, #0x4b
str r0, [sp, #0xc]
add r0, r4, #0
add r0, #0x10
str r0, [sp, #0x10]
mov r0, #0x7f
mov r1, #0x37
add r3, r2, #0
bl FUN_02006AE4
mov r0, #0x4b
str r0, [sp]
add r4, #0x34
mov r0, #0x7f
mov r1, #0x38
mov r2, #1
mov r3, #0
str r4, [sp, #4]
bl FUN_02006A8C
ldr r0, [sp, #0x14]
ldr r0, [r0]
add r1, r0, #1
ldr r0, [sp, #0x14]
str r1, [r0]
b _021D9034
_021D8F40:
mov r0, #1
str r0, [sp]
add r2, r4, #0
add r3, r4, #0
ldr r1, [r4, #8]
add r0, sp, #0x48
add r2, #0x10
add r3, #0x34
bl MOD84_021D8240
mov r6, #0
add r5, r4, #0
add r7, r6, #0
_021D8F5A:
mov r0, #2
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
str r7, [sp, #8]
ldr r0, [r4]
add r1, sp, #0x48
add r2, r7, #0
add r3, r7, #0
bl MOD84_021D8260
str r0, [r5, #0x48]
add r6, r6, #1
add r5, r5, #4
cmp r6, #6
blt _021D8F5A
ldr r0, [sp, #0x14]
ldr r0, [r0]
add r1, r0, #1
ldr r0, [sp, #0x14]
str r1, [r0]
b _021D9034
_021D8F86:
mov r0, #0x4b
str r0, [sp]
mov r0, #0x1b
mov r1, #0x28
mov r2, #0
add r3, sp, #0x20
bl FUN_02006BB0
str r0, [sp, #0x18]
cmp r0, #0
beq _021D8FC8
mov r5, #0x19
lsl r5, r5, #8
mov r6, #0
add r4, #0x78
lsr r7, r5, #1
_021D8FA6:
add r0, r4, #0
bl FUN_020B1A24
ldr r0, [sp, #0x20]
add r1, r5, #0
mov r2, #1
add r3, r4, #0
bl FUN_020B1768
add r6, r6, #1
add r4, #0x24
add r5, r5, r7
cmp r6, #6
blt _021D8FA6
ldr r0, [sp, #0x18]
bl FreeToHeap
_021D8FC8:
ldr r0, [sp, #0x14]
ldr r0, [r0]
add r1, r0, #1
ldr r0, [sp, #0x14]
str r1, [r0]
b _021D9034
_021D8FD4:
add r0, r4, #0
add r6, r4, #0
str r0, [sp, #0x1c]
add r0, #0x34
mov r7, #0
add r6, #0x78
add r5, r4, #0
str r0, [sp, #0x1c]
_021D8FE4:
mov r0, #1
str r0, [sp]
ldr r1, [r4, #0xc]
ldr r3, [sp, #0x1c]
add r0, sp, #0x24
add r2, r6, #0
bl MOD84_021D8240
mov r0, #1
str r0, [sp]
str r0, [sp, #4]
mov r0, #0
str r0, [sp, #8]
mov r2, #0
ldr r0, [r4]
add r1, sp, #0x24
add r3, r2, #0
bl MOD84_021D8260
mov r1, #0xe
str r0, [r5, #0x60]
bl FUN_020202A8
add r7, r7, #1
add r6, #0x24
add r5, r5, #4
cmp r7, #6
blt _021D8FE4
ldr r0, [sp, #0x14]
ldr r0, [r0]
add r1, r0, #1
ldr r0, [sp, #0x14]
str r1, [r0]
b _021D9034
_021D9028:
ldr r0, _021D9040 ; =0x00003485
bl seedr_LC
add sp, #0x6c
mov r0, #1
pop {r4, r5, r6, r7, pc}
_021D9034:
mov r0, #0
add sp, #0x6c
pop {r4, r5, r6, r7, pc}
nop
_021D903C: .word 0x021DACB8
_021D9040: .word 0x00003485
thumb_func_end MOD84_021D8DF8
thumb_func_start MOD84_021D9044
MOD84_021D9044: ; 0x021D9044
push {r3, r4, r5, r6, r7, lr}
add r6, r0, #0
bl OS_DisableInterrupts
mov r7, #0x15
str r0, [sp]
mov r4, #0
add r5, r6, #0
lsl r7, r7, #4
_021D9056:
ldr r0, [r5, #0x48]
cmp r0, #0
beq _021D9060
bl FUN_0201FFC8
_021D9060:
ldr r0, [r5, #0x60]
cmp r0, #0
beq _021D906A
bl FUN_0201FFC8
_021D906A:
ldr r0, [r5, r7]
cmp r0, #0
beq _021D9082
bl FUN_0201B6C8
bl FreeToHeap
mov r0, #0x15
lsl r0, r0, #4
ldr r0, [r5, r0]
bl FUN_0200CAB4
_021D9082:
add r4, r4, #1
add r5, r5, #4
cmp r4, #6
blt _021D9056
mov r0, #0x5a
lsl r0, r0, #2
ldr r0, [r6, r0]
cmp r0, #0
beq _021D9098
bl FUN_0200CAB4
_021D9098:
ldr r0, [r6, #8]
cmp r0, #0
beq _021D90A2
bl MOD84_021D821C
_021D90A2:
ldr r0, [r6, #0xc]
cmp r0, #0
beq _021D90AC
bl MOD84_021D821C
_021D90AC:
ldr r0, [r6, #4]
mov r1, #2
bl FUN_020178A0
ldr r0, [r6, #4]
mov r1, #6
bl FUN_020178A0
ldr r0, [sp]
bl OS_RestoreInterrupts
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end MOD84_021D9044
thumb_func_start MOD84_021D90C4
MOD84_021D90C4: ; 0x021D90C4
push {r4, r5, r6, r7, lr}
sub sp, #0x1c
add r5, r0, #0
add r6, r1, #0
mov r0, #0x4b
mov r1, #0x38
bl AllocFromHeap
add r4, r0, #0
bne _021D90DA
b _021D91F6
_021D90DA:
mov r0, #1
str r0, [r4]
str r5, [r4, #4]
mov r0, #0x17
str r6, [r4, #8]
lsl r0, r0, #4
ldr r1, [r5, r0]
cmp r6, r1
blt _021D90F4
add r0, r6, #0
bl _s32_div_f
b _021D90F6
_021D90F4:
add r1, r6, #0
_021D90F6:
lsl r6, r6, #2
str r1, [r4, #0xc]
add r1, r5, r6
ldr r0, [r1, #0x48]
str r0, [r4, #0x14]
ldr r0, [r1, #0x60]
str r0, [r4, #0x10]
mov r0, #0x5b
lsl r0, r0, #2
ldr r3, [r5, r0]
ldr r0, [r4, #0xc]
ldr r7, [r4, #8]
lsl r1, r0, #3
mov r0, #0
add r2, r3, r1
str r0, [sp]
ldrb r0, [r2, #3]
str r0, [sp, #4]
ldr r0, [r2, #4]
str r0, [sp, #8]
ldrh r1, [r3, r1]
ldrb r2, [r2, #2]
add r0, sp, #0xc
mov r3, #2
bl FUN_02068C00
mov r0, #0x5d
lsl r0, r0, #2
add r0, r5, r0
str r0, [sp]
add r1, sp, #0xc
ldrh r0, [r1]
ldrh r1, [r1, #2]
ldr r3, _021D91FC ; =0x021DACA8
mov r2, #0x4b
bl FUN_02012400
mov r0, #0x5d
lsl r0, r0, #2
mov r1, #0x32
add r0, r5, r0
lsl r1, r1, #6
bl DC_FlushRange
mov r2, #0x32
mov r0, #0x5d
lsl r2, r2, #6
add r1, r7, #0
lsl r0, r0, #2
mul r1, r2
lsl r3, r2, #1
add r0, r5, r0
add r1, r1, r3
bl GX_LoadOBJ
mov r0, #0x4e
lsl r0, r0, #0xe
str r0, [r4, #0x18]
bl rand_LC
lsr r2, r0, #0x1f
lsl r1, r0, #0x19
sub r1, r1, r2
mov r0, #0x19
ror r1, r0
add r0, r2, r1
add r0, #0xf0
lsl r0, r0, #0xc
str r0, [r4, #0x1c]
mov r0, #0
str r0, [r4, #0x20]
bl rand_LC
ldr r1, _021D9200 ; =0x00000667
bl _s32_div_f
ldr r0, _021D9204 ; =0x00000666
add r0, r1, r0
str r0, [r4, #0x24]
ldr r0, [r4, #0x1c]
str r0, [r4, #0x30]
mov r0, #0
str r0, [r4, #0x28]
bl rand_LC
lsr r2, r0, #0x1f
lsl r1, r0, #0x1f
sub r1, r1, r2
mov r0, #0x1f
ror r1, r0
add r0, r2, r1
add r0, r0, #2
lsl r0, r0, #0xc
str r0, [r4, #0x2c]
bl rand_LC
mov r1, #0xc
bl _s32_div_f
add r0, r1, #4
str r0, [r4, #0x34]
add r1, r4, #0
ldr r0, [r4, #0x14]
add r1, #0x18
bl FUN_02020044
add r1, r4, #0
ldr r0, [r4, #0x10]
add r1, #0x18
bl FUN_02020044
ldr r0, [r4, #0x14]
mov r1, #1
bl FUN_020200A0
ldr r0, [r4, #0x10]
mov r1, #1
bl FUN_020200A0
ldr r0, _021D9208 ; =MOD84_021D920C
add r1, r4, #0
mov r2, #0
bl FUN_0200CA60
mov r1, #0x15
add r2, r5, r6
lsl r1, r1, #4
str r0, [r2, r1]
_021D91F6:
add sp, #0x1c
pop {r4, r5, r6, r7, pc}
nop
_021D91FC: .word 0x021DACA8
_021D9200: .word 0x00000667
_021D9204: .word 0x00000666
_021D9208: .word MOD84_021D920C
thumb_func_end MOD84_021D90C4
thumb_func_start MOD84_021D920C
MOD84_021D920C: ; 0x021D920C
push {r4, lr}
add r4, r1, #0
ldr r0, [r4]
cmp r0, #1
bne _021D9270
ldr r2, [r4, #0x28]
ldr r1, [r4, #0x2c]
add r0, r4, #0
add r2, r2, r1
mov r1, #0x5a
lsl r1, r1, #0xe
add r0, #0x28
str r2, [r4, #0x28]
cmp r2, r1
blt _021D9230
ldr r2, [r0]
sub r1, r2, r1
str r1, [r0]
_021D9230:
ldr r2, [r4, #0x28]
ldr r0, [r4, #0x34]
asr r2, r2, #0xc
lsl r3, r2, #2
ldr r2, _021D9274 ; =0x020EDF50
ldr r1, [r4, #0x30]
ldr r2, [r2, r3]
mul r2, r0
add r0, r1, r2
str r0, [r4, #0x1c]
ldr r2, [r4, #0x18]
ldr r0, [r4, #0x24]
add r1, r4, #0
sub r0, r2, r0
str r0, [r4, #0x18]
ldr r0, [r4, #0x14]
add r1, #0x18
bl FUN_02020044
add r1, r4, #0
ldr r0, [r4, #0x10]
add r1, #0x18
bl FUN_02020044
ldr r0, [r4, #0x18]
asr r1, r0, #0xc
mov r0, #0x37
mvn r0, r0
cmp r1, r0
bge _021D9270
mov r0, #0
str r0, [r4]
_021D9270:
pop {r4, pc}
nop
_021D9274: .word 0x020EDF50
thumb_func_end MOD84_021D920C
thumb_func_start MOD84_021D9278
MOD84_021D9278: ; 0x021D9278
push {r4, r5, r6, r7, lr}
sub sp, #0x24
str r1, [sp, #0xc]
mov r7, #0
add r6, r1, #0
_021D9282:
mov r0, #0x15
lsl r0, r0, #4
ldr r0, [r6, r0]
cmp r0, #0
beq _021D937A
bl FUN_0201B6C8
add r4, r0, #0
ldr r0, [r4]
cmp r0, #0
bne _021D937A
mov r1, #0x17
ldr r0, [r4, #0xc]
ldr r2, [sp, #0xc]
lsl r1, r1, #4
ldr r1, [r2, r1]
add r0, r0, #6
cmp r0, r1
blt _021D92AE
bl _s32_div_f
add r0, r1, #0
_021D92AE:
str r0, [r4, #0xc]
ldr r1, [r4, #8]
ldr r5, [r4, #4]
str r1, [sp, #0x10]
mov r1, #0x5b
lsl r1, r1, #2
ldr r3, [r5, r1]
lsl r1, r0, #3
mov r0, #0
add r2, r3, r1
str r0, [sp]
ldrb r0, [r2, #3]
str r0, [sp, #4]
ldr r0, [r2, #4]
str r0, [sp, #8]
ldrh r1, [r3, r1]
ldrb r2, [r2, #2]
add r0, sp, #0x14
mov r3, #2
bl FUN_02068C00
mov r0, #0x5d
lsl r0, r0, #2
add r0, r5, r0
str r0, [sp]
add r0, sp, #0x14
add r1, sp, #0x14
ldrh r0, [r0]
ldrh r1, [r1, #2]
ldr r3, _021D9388 ; =0x021DACA8
mov r2, #0x4b
bl FUN_02012400
mov r0, #0x5d
lsl r0, r0, #2
mov r1, #0x32
add r0, r5, r0
lsl r1, r1, #6
bl DC_FlushRange
ldr r2, [sp, #0x10]
mov r1, #0x32
mov r0, #0x5d
add r3, r2, #0
lsl r1, r1, #6
lsl r0, r0, #2
mul r3, r1
lsl r1, r1, #1
mov r2, #0x32
add r0, r5, r0
add r1, r3, r1
lsl r2, r2, #6
bl GX_LoadOBJ
mov r0, #0x4e
lsl r0, r0, #0xe
str r0, [r4, #0x18]
bl rand_LC
lsr r2, r0, #0x1f
lsl r1, r0, #0x19
sub r1, r1, r2
mov r0, #0x19
ror r1, r0
add r0, r2, r1
add r0, #0xf0
lsl r0, r0, #0xc
str r0, [r4, #0x1c]
mov r0, #0
str r0, [r4, #0x20]
bl rand_LC
ldr r1, _021D938C ; =0x00000667
bl _s32_div_f
ldr r0, _021D9390 ; =0x00000666
add r0, r1, r0
str r0, [r4, #0x24]
ldr r0, [r4, #0x1c]
str r0, [r4, #0x30]
mov r0, #0
str r0, [r4, #0x28]
bl rand_LC
lsr r2, r0, #0x1f
lsl r1, r0, #0x1f
sub r1, r1, r2
mov r0, #0x1f
ror r1, r0
add r0, r2, r1
add r0, r0, #2
lsl r0, r0, #0xc
str r0, [r4, #0x2c]
bl rand_LC
mov r1, #0xc
bl _s32_div_f
add r0, r1, #4
str r0, [r4, #0x34]
mov r0, #1
str r0, [r4]
_021D937A:
add r7, r7, #1
add r6, r6, #4
cmp r7, #6
bge _021D9384
b _021D9282
_021D9384:
add sp, #0x24
pop {r4, r5, r6, r7, pc}
.align 2, 0
_021D9388: .word 0x021DACA8
_021D938C: .word 0x00000667
_021D9390: .word 0x00000666
thumb_func_end MOD84_021D9278
thumb_func_start MOD84_021D9394
MOD84_021D9394: ; 0x021D9394
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
mov r0, #0x4b
mov r1, #0x10
bl AllocFromHeap
cmp r0, #0
beq _021D93B0
str r5, [r0]
str r4, [r0, #4]
mov r1, #0
str r1, [r0, #8]
str r1, [r0, #0xc]
_021D93B0:
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_end MOD84_021D9394
thumb_func_start MOD84_021D93B4
MOD84_021D93B4: ; 0x021D93B4
push {r3, lr}
bl MOD84_021D9478
cmp r0, #0
beq _021D93C2
mov r0, #1
pop {r3, pc}
_021D93C2:
mov r0, #0
pop {r3, pc}
.align 2, 0
thumb_func_end MOD84_021D93B4
thumb_func_start MOD84_021D93C8
MOD84_021D93C8: ; 0x021D93C8
push {r4, lr}
add r4, r0, #0
bl MOD84_021D9544
add r0, r4, #0
bl FreeToHeap
mov r0, #1
pop {r4, pc}
.align 2, 0
thumb_func_end MOD84_021D93C8
thumb_func_start MOD84_021D93DC
MOD84_021D93DC: ; 0x021D93DC
push {r3, r4, lr}
sub sp, #4
add r4, r1, #0
ldr r1, [r4]
cmp r1, #3
bhi _021D946E
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021D93F4: ; jump table
.short _021D93FC - _021D93F4 - 2 ; case 0
.short _021D941E - _021D93F4 - 2 ; case 1
.short _021D9430 - _021D93F4 - 2 ; case 2
.short _021D9456 - _021D93F4 - 2 ; case 3
_021D93FC:
mov r0, #1
mov r1, #0
bl FUN_0201E6E4
mov r1, #0
mov r0, #3
add r2, r1, #0
str r0, [sp]
mov r0, #0x20
sub r2, #0x10
mov r3, #0x1d
bl FUN_0200A208
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021D946E
_021D941E:
mov r0, #3
bl FUN_0200A344
cmp r0, #0
beq _021D946E
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021D946E
_021D9430:
ldr r1, [r0, #8]
add r1, r1, #1
str r1, [r0, #8]
ldr r0, _021D9474 ; =0x0000032F
cmp r1, r0
blt _021D946E
mov r0, #3
str r0, [sp]
mov r0, #0x20
add r1, r0, #0
sub r1, #0x30
mov r2, #0
mov r3, #0x1d
bl FUN_0200A208
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021D946E
_021D9456:
mov r0, #3
bl FUN_0200A344
cmp r0, #0
beq _021D946E
mov r0, #1
add r1, r0, #0
bl FUN_0201E6E4
add sp, #4
mov r0, #1
pop {r3, r4, pc}
_021D946E:
mov r0, #0
add sp, #4
pop {r3, r4, pc}
.align 2, 0
_021D9474: .word 0x0000032F
thumb_func_end MOD84_021D93DC
thumb_func_start MOD84_021D9478
MOD84_021D9478: ; 0x021D9478
push {r3, r4, r5, lr}
sub sp, #0x10
add r4, r1, #0
add r5, r0, #0
ldr r0, [r4]
cmp r0, #3
bhi _021D9532
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021D9492: ; jump table
.short _021D949A - _021D9492 - 2 ; case 0
.short _021D94BA - _021D9492 - 2 ; case 1
.short _021D94F2 - _021D9492 - 2 ; case 2
.short _021D9512 - _021D9492 - 2 ; case 3
_021D949A:
ldr r0, [r5, #4]
ldr r2, _021D9540 ; =0x021DACD4
mov r1, #2
mov r3, #0
bl FUN_02016C18
ldr r0, [r5, #4]
ldr r2, _021D9540 ; =0x021DACD4
mov r1, #6
mov r3, #0
bl FUN_02016C18
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021D9538
_021D94BA:
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x4b
str r0, [sp, #0xc]
ldr r2, [r5, #4]
mov r0, #0x7f
mov r1, #0x26
mov r3, #2
bl FUN_020068C8
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x4b
str r0, [sp, #0xc]
ldr r2, [r5, #4]
mov r0, #0x7f
mov r1, #0x22
mov r3, #6
bl FUN_020068C8
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021D9538
_021D94F2:
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x4b
str r0, [sp, #0xc]
ldr r2, [r5, #4]
mov r0, #0x7f
mov r1, #0x27
mov r3, #2
bl FUN_0200687C
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021D9538
_021D9512:
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x4b
str r0, [sp, #0xc]
ldr r2, [r5, #4]
mov r0, #0x7f
mov r1, #0x23
mov r3, #6
bl FUN_0200687C
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021D9538
_021D9532:
add sp, #0x10
mov r0, #1
pop {r3, r4, r5, pc}
_021D9538:
mov r0, #0
add sp, #0x10
pop {r3, r4, r5, pc}
nop
_021D9540: .word 0x021DACD4
thumb_func_end MOD84_021D9478
thumb_func_start MOD84_021D9544
MOD84_021D9544: ; 0x021D9544
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #4]
mov r1, #2
bl FUN_020178A0
ldr r0, [r4, #4]
mov r1, #6
bl FUN_020178A0
pop {r4, pc}
.align 2, 0
thumb_func_end MOD84_021D9544
thumb_func_start MOD84_021D955C
MOD84_021D955C: ; 0x021D955C
push {r4, r5, r6, lr}
add r5, r0, #0
add r6, r1, #0
mov r0, #0x4b
mov r1, #0x6c
bl AllocFromHeap
add r4, r0, #0
beq _021D958E
str r5, [r4]
str r6, [r4, #4]
mov r0, #0
str r0, [r4, #0x64]
str r0, [r4, #0x68]
add r0, r5, #0
bl MOD84_021D82AC
str r0, [r4, #0x4c]
mov r0, #0
str r0, [r4, #0x50]
str r0, [r4, #8]
str r0, [r4, #0xc]
str r0, [r4, #0x48]
str r0, [r4, #0x54]
str r0, [r4, #0x5c]
_021D958E:
add r0, r4, #0
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_end MOD84_021D955C
thumb_func_start MOD84_021D9594
MOD84_021D9594: ; 0x021D9594
push {r4, lr}
add r4, r0, #0
bl MOD84_021D9804
cmp r0, #0
beq _021D95B4
ldr r0, [r4, #0x4c]
mov r1, #0
bl FUN_02020130
ldr r0, [r4, #0x4c]
mov r1, #1
bl FUN_020200A0
mov r0, #1
pop {r4, pc}
_021D95B4:
mov r0, #0
pop {r4, pc}
thumb_func_end MOD84_021D9594
thumb_func_start MOD84_021D95B8
MOD84_021D95B8: ; 0x021D95B8
push {r4, lr}
add r4, r0, #0
bl MOD84_021D9A04
add r0, r4, #0
bl FreeToHeap
mov r0, #1
pop {r4, pc}
.align 2, 0
thumb_func_end MOD84_021D95B8
thumb_func_start MOD84_021D95CC
MOD84_021D95CC: ; 0x021D95CC
push {r3, r4, r5, r6, lr}
sub sp, #0x1c
add r4, r0, #0
ldr r0, [r4, #0x54]
add r5, r1, #0
add r0, #0x80
asr r6, r0, #0xc
str r0, [r4, #0x54]
ldr r0, [r4, #4]
mov r1, #2
mov r2, #0
add r3, r6, #0
bl FUN_020179E0
ldr r0, [r4, #4]
mov r1, #6
mov r2, #0
add r3, r6, #0
bl FUN_020179E0
ldr r0, [r4, #4]
mov r1, #3
mov r2, #0
add r3, r6, #0
bl FUN_020179E0
ldr r0, [r4, #4]
mov r1, #7
mov r2, #0
add r3, r6, #0
bl FUN_020179E0
ldr r0, [r4, #0x50]
cmp r0, #0
beq _021D9632
bl FUN_0202011C
add r3, r0, #0
add r2, sp, #0x10
ldmia r3!, {r0, r1}
add r6, r2, #0
stmia r2!, {r0, r1}
ldr r0, [r3]
add r1, r6, #0
str r0, [r2]
ldr r0, [sp, #0x14]
sub r0, #0x40
str r0, [sp, #0x14]
ldr r0, [r4, #0x50]
bl FUN_02020044
_021D9632:
ldr r0, [r5]
cmp r0, #7
bhi _021D96D2
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021D9644: ; jump table
.short _021D9654 - _021D9644 - 2 ; case 0
.short _021D966E - _021D9644 - 2 ; case 1
.short _021D968E - _021D9644 - 2 ; case 2
.short _021D96BE - _021D9644 - 2 ; case 3
.short _021D9750 - _021D9644 - 2 ; case 4
.short _021D9780 - _021D9644 - 2 ; case 5
.short _021D97B0 - _021D9644 - 2 ; case 6
.short _021D97D8 - _021D9644 - 2 ; case 7
_021D9654:
mov r1, #0
mov r0, #3
add r2, r1, #0
str r0, [sp]
mov r0, #0x10
sub r2, #0x10
mov r3, #0x1d
bl FUN_0200A208
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021D97F0
_021D966E:
mov r0, #3
bl FUN_0200A344
cmp r0, #0
beq _021D96D2
mov r1, #0
ldr r0, _021D97F8 ; =0x04000050
str r1, [sp]
mov r2, #0xc
mov r3, #0x10
bl G2x_SetBlendAlpha_
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021D97F0
_021D968E:
ldr r0, [r4, #0x64]
add r1, r0, #1
ldr r0, _021D97FC ; =0x00000172
str r1, [r4, #0x64]
cmp r1, r0
blt _021D96D2
mov r1, #0
ldr r0, [r4]
add r2, r1, #0
mov r3, #0x5a
bl MOD84_021D801C
str r0, [r4, #8]
ldr r0, [r4]
mov r1, #1
mov r2, #0
mov r3, #0x5a
bl MOD84_021D801C
str r0, [r4, #0xc]
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021D97F0
_021D96BE:
ldr r0, [r4, #8]
bl MOD84_021D81C4
cmp r0, #0
beq _021D96D2
ldr r0, [r4, #0xc]
bl MOD84_021D81C4
cmp r0, #0
bne _021D96D4
_021D96D2:
b _021D97F0
_021D96D4:
ldr r0, [r4, #8]
bl MOD84_021D81D4
ldr r0, [r4, #0xc]
bl MOD84_021D81D4
mov r0, #0
str r0, [r4, #8]
str r0, [r4, #0xc]
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x4b
str r0, [sp, #0xc]
ldr r2, [r4, #4]
mov r0, #0x7f
mov r1, #0x10
mov r3, #2
bl FUN_020068C8
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x4b
str r0, [sp, #0xc]
ldr r2, [r4, #4]
mov r0, #0x7f
mov r1, #0x12
mov r3, #6
bl FUN_020068C8
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x4b
str r0, [sp, #0xc]
ldr r2, [r4, #4]
mov r0, #0x7f
mov r1, #0x11
mov r3, #2
bl FUN_0200687C
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x4b
str r0, [sp, #0xc]
ldr r2, [r4, #4]
mov r0, #0x7f
mov r1, #0x13
mov r3, #6
bl FUN_0200687C
mov r0, #0
str r0, [r4, #0x64]
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021D97F0
_021D9750:
ldr r0, [r4, #0x64]
add r1, r0, #1
ldr r0, _021D9800 ; =0x0000010E
str r1, [r4, #0x64]
cmp r1, r0
blt _021D97F0
ldr r0, [r4]
mov r1, #0
mov r2, #1
mov r3, #0x5a
bl MOD84_021D801C
str r0, [r4, #8]
mov r1, #1
ldr r0, [r4]
add r2, r1, #0
mov r3, #0x5a
bl MOD84_021D801C
str r0, [r4, #0xc]
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021D97F0
_021D9780:
ldr r0, [r4, #8]
bl MOD84_021D81C4
cmp r0, #0
beq _021D97F0
ldr r0, [r4, #0xc]
bl MOD84_021D81C4
cmp r0, #0
beq _021D97F0
ldr r0, [r4, #8]
bl MOD84_021D81D4
ldr r0, [r4, #0xc]
bl MOD84_021D81D4
mov r0, #0
str r0, [r4, #8]
str r0, [r4, #0xc]
str r0, [r4, #0x64]
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021D97F0
_021D97B0:
ldr r0, [r4, #0x64]
add r1, r0, #1
mov r0, #0x4b
lsl r0, r0, #2
str r1, [r4, #0x64]
cmp r1, r0
blt _021D97F0
mov r0, #3
str r0, [sp]
mov r0, #0x20
add r1, r0, #0
sub r1, #0x30
mov r2, #0
mov r3, #0x1d
bl FUN_0200A208
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021D97F0
_021D97D8:
mov r0, #3
bl FUN_0200A344
cmp r0, #0
beq _021D97F0
ldr r0, [r4, #0x4c]
mov r1, #0
bl FUN_020200A0
add sp, #0x1c
mov r0, #1
pop {r3, r4, r5, r6, pc}
_021D97F0:
mov r0, #0
add sp, #0x1c
pop {r3, r4, r5, r6, pc}
nop
_021D97F8: .word 0x04000050
_021D97FC: .word 0x00000172
_021D9800: .word 0x0000010E
thumb_func_end MOD84_021D95CC
thumb_func_start MOD84_021D9804
MOD84_021D9804: ; 0x021D9804
push {r3, r4, r5, lr}
sub sp, #0x38
add r5, r1, #0
add r4, r0, #0
ldr r0, [r5]
cmp r0, #8
bls _021D9814
b _021D99F0
_021D9814:
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021D9820: ; jump table
.short _021D9832 - _021D9820 - 2 ; case 0
.short _021D986A - _021D9820 - 2 ; case 1
.short _021D98A2 - _021D9820 - 2 ; case 2
.short _021D98C2 - _021D9820 - 2 ; case 3
.short _021D98E2 - _021D9820 - 2 ; case 4
.short _021D991A - _021D9820 - 2 ; case 5
.short _021D993A - _021D9820 - 2 ; case 6
.short _021D995A - _021D9820 - 2 ; case 7
.short _021D99E0 - _021D9820 - 2 ; case 8
_021D9832:
ldr r0, [r4, #4]
ldr r2, _021D99FC ; =0x021DACF0
mov r1, #2
mov r3, #0
bl FUN_02016C18
ldr r0, [r4, #4]
ldr r2, _021D9A00 ; =0x021DAD0C
mov r1, #3
mov r3, #0
bl FUN_02016C18
ldr r0, [r4, #4]
ldr r2, _021D99FC ; =0x021DACF0
mov r1, #6
mov r3, #0
bl FUN_02016C18
ldr r0, [r4, #4]
ldr r2, _021D9A00 ; =0x021DAD0C
mov r1, #7
mov r3, #0
bl FUN_02016C18
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021D99F6
_021D986A:
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x4b
str r0, [sp, #0xc]
ldr r2, [r4, #4]
mov r0, #0x7f
mov r1, #8
mov r3, #2
bl FUN_020068C8
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x4b
str r0, [sp, #0xc]
ldr r2, [r4, #4]
mov r0, #0x7f
mov r1, #0xa
mov r3, #6
bl FUN_020068C8
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021D99F6
_021D98A2:
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x4b
str r0, [sp, #0xc]
ldr r2, [r4, #4]
mov r0, #0x7f
mov r1, #9
mov r3, #2
bl FUN_0200687C
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021D99F6
_021D98C2:
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x4b
str r0, [sp, #0xc]
ldr r2, [r4, #4]
mov r0, #0x7f
mov r1, #0xb
mov r3, #6
bl FUN_0200687C
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021D99F6
_021D98E2:
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x4b
str r0, [sp, #0xc]
ldr r2, [r4, #4]
mov r0, #0x7f
mov r1, #0xc
mov r3, #3
bl FUN_020068C8
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x4b
str r0, [sp, #0xc]
ldr r2, [r4, #4]
mov r0, #0x7f
mov r1, #0xe
mov r3, #7
bl FUN_020068C8
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021D99F6
_021D991A:
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x4b
str r0, [sp, #0xc]
ldr r2, [r4, #4]
mov r0, #0x7f
mov r1, #0xd
mov r3, #3
bl FUN_0200687C
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021D99F6
_021D993A:
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x4b
str r0, [sp, #0xc]
ldr r2, [r4, #4]
mov r0, #0x7f
mov r1, #0xf
mov r3, #7
bl FUN_0200687C
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021D99F6
_021D995A:
mov r0, #0x7f
mov r1, #0x39
mov r2, #0x3a
bl MOD84_021D81DC
str r0, [r4, #0x48]
add r0, r4, #0
add r0, #0x10
bl FUN_020B1A24
mov r2, #0
str r2, [sp]
mov r0, #1
str r0, [sp, #4]
str r2, [sp, #8]
mov r0, #0x4b
str r0, [sp, #0xc]
add r0, r4, #0
add r0, #0x10
str r0, [sp, #0x10]
mov r0, #0x7f
mov r1, #0x3b
add r3, r2, #0
bl FUN_02006AE4
add r0, r4, #0
add r0, #0x34
bl FUN_020B19DC
mov r0, #0x4b
str r0, [sp]
add r0, r4, #0
add r0, #0x34
str r0, [sp, #4]
mov r0, #0x7f
mov r1, #0x3c
mov r2, #1
mov r3, #0
bl FUN_02006A8C
mov r0, #2
str r0, [sp]
add r2, r4, #0
add r3, r4, #0
ldr r1, [r4, #0x48]
add r0, sp, #0x14
add r2, #0x10
add r3, #0x34
bl MOD84_021D8240
mov r0, #5
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
str r0, [sp, #8]
mov r3, #0x19
ldr r0, [r4]
add r1, sp, #0x14
mov r2, #0
lsl r3, r3, #4
bl MOD84_021D8260
str r0, [r4, #0x50]
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021D99F6
_021D99E0:
ldr r0, [r4]
mov r1, #0
bl MOD84_021D7DF4
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021D99F6
_021D99F0:
add sp, #0x38
mov r0, #1
pop {r3, r4, r5, pc}
_021D99F6:
mov r0, #0
add sp, #0x38
pop {r3, r4, r5, pc}
.align 2, 0
_021D99FC: .word 0x021DACF0
_021D9A00: .word 0x021DAD0C
thumb_func_end MOD84_021D9804
thumb_func_start MOD84_021D9A04
MOD84_021D9A04: ; 0x021D9A04
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0x50]
cmp r0, #0
beq _021D9A12
bl FUN_0201FFC8
_021D9A12:
ldr r0, [r4, #8]
cmp r0, #0
beq _021D9A1C
bl MOD84_021D81D4
_021D9A1C:
ldr r0, [r4, #0xc]
cmp r0, #0
beq _021D9A26
bl MOD84_021D81D4
_021D9A26:
ldr r0, [r4, #0x48]
cmp r0, #0
beq _021D9A30
bl MOD84_021D821C
_021D9A30:
ldr r0, [r4, #4]
mov r1, #2
bl FUN_020178A0
ldr r0, [r4, #4]
mov r1, #3
bl FUN_020178A0
ldr r0, [r4, #4]
mov r1, #6
bl FUN_020178A0
ldr r0, [r4, #4]
mov r1, #7
bl FUN_020178A0
pop {r4, pc}
.align 2, 0
thumb_func_end MOD84_021D9A04
thumb_func_start MOD84_021D9A54
MOD84_021D9A54: ; 0x021D9A54
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
mov r0, #0x4b
mov r1, #0x10
bl AllocFromHeap
cmp r0, #0
beq _021D9A70
str r5, [r0]
str r4, [r0, #4]
mov r1, #0
str r1, [r0, #8]
str r1, [r0, #0xc]
_021D9A70:
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_end MOD84_021D9A54
thumb_func_start MOD84_021D9A74
MOD84_021D9A74: ; 0x021D9A74
push {r3, lr}
bl MOD84_021D9B38
cmp r0, #0
beq _021D9A82
mov r0, #1
pop {r3, pc}
_021D9A82:
mov r0, #0
pop {r3, pc}
.align 2, 0
thumb_func_end MOD84_021D9A74
thumb_func_start MOD84_021D9A88
MOD84_021D9A88: ; 0x021D9A88
push {r4, lr}
add r4, r0, #0
bl MOD84_021D9C04
add r0, r4, #0
bl FreeToHeap
mov r0, #1
pop {r4, pc}
.align 2, 0
thumb_func_end MOD84_021D9A88
thumb_func_start MOD84_021D9A9C
MOD84_021D9A9C: ; 0x021D9A9C
push {r3, r4, lr}
sub sp, #4
add r4, r1, #0
ldr r1, [r4]
cmp r1, #3
bhi _021D9B2E
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021D9AB4: ; jump table
.short _021D9ABC - _021D9AB4 - 2 ; case 0
.short _021D9ADE - _021D9AB4 - 2 ; case 1
.short _021D9AF0 - _021D9AB4 - 2 ; case 2
.short _021D9B16 - _021D9AB4 - 2 ; case 3
_021D9ABC:
mov r0, #1
mov r1, #0
bl FUN_0201E6E4
mov r1, #0
mov r0, #3
add r2, r1, #0
str r0, [sp]
mov r0, #0x20
sub r2, #0x10
mov r3, #0x1d
bl FUN_0200A208
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021D9B2E
_021D9ADE:
mov r0, #3
bl FUN_0200A344
cmp r0, #0
beq _021D9B2E
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021D9B2E
_021D9AF0:
ldr r1, [r0, #8]
add r1, r1, #1
str r1, [r0, #8]
ldr r0, _021D9B34 ; =0x00000352
cmp r1, r0
blt _021D9B2E
mov r0, #3
str r0, [sp]
mov r0, #0x20
add r1, r0, #0
sub r1, #0x30
mov r2, #0
mov r3, #0x1d
bl FUN_0200A208
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021D9B2E
_021D9B16:
mov r0, #3
bl FUN_0200A344
cmp r0, #0
beq _021D9B2E
mov r0, #1
add r1, r0, #0
bl FUN_0201E6E4
add sp, #4
mov r0, #1
pop {r3, r4, pc}
_021D9B2E:
mov r0, #0
add sp, #4
pop {r3, r4, pc}
.align 2, 0
_021D9B34: .word 0x00000352
thumb_func_end MOD84_021D9A9C
thumb_func_start MOD84_021D9B38
MOD84_021D9B38: ; 0x021D9B38
push {r3, r4, r5, lr}
sub sp, #0x10
add r4, r1, #0
add r5, r0, #0
ldr r0, [r4]
cmp r0, #3
bhi _021D9BF2
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021D9B52: ; jump table
.short _021D9B5A - _021D9B52 - 2 ; case 0
.short _021D9B7A - _021D9B52 - 2 ; case 1
.short _021D9BB2 - _021D9B52 - 2 ; case 2
.short _021D9BD2 - _021D9B52 - 2 ; case 3
_021D9B5A:
ldr r0, [r5, #4]
ldr r2, _021D9C00 ; =0x021DAD28
mov r1, #2
mov r3, #0
bl FUN_02016C18
ldr r0, [r5, #4]
ldr r2, _021D9C00 ; =0x021DAD28
mov r1, #6
mov r3, #0
bl FUN_02016C18
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021D9BF8
_021D9B7A:
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x4b
str r0, [sp, #0xc]
ldr r2, [r5, #4]
mov r0, #0x7f
mov r1, #0x28
mov r3, #2
bl FUN_020068C8
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x4b
str r0, [sp, #0xc]
ldr r2, [r5, #4]
mov r0, #0x7f
mov r1, #0x22
mov r3, #6
bl FUN_020068C8
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021D9BF8
_021D9BB2:
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x4b
str r0, [sp, #0xc]
ldr r2, [r5, #4]
mov r0, #0x7f
mov r1, #0x29
mov r3, #2
bl FUN_0200687C
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021D9BF8
_021D9BD2:
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x4b
str r0, [sp, #0xc]
ldr r2, [r5, #4]
mov r0, #0x7f
mov r1, #0x23
mov r3, #6
bl FUN_0200687C
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021D9BF8
_021D9BF2:
add sp, #0x10
mov r0, #1
pop {r3, r4, r5, pc}
_021D9BF8:
mov r0, #0
add sp, #0x10
pop {r3, r4, r5, pc}
nop
_021D9C00: .word 0x021DAD28
thumb_func_end MOD84_021D9B38
thumb_func_start MOD84_021D9C04
MOD84_021D9C04: ; 0x021D9C04
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #4]
mov r1, #2
bl FUN_020178A0
ldr r0, [r4, #4]
mov r1, #6
bl FUN_020178A0
pop {r4, pc}
.align 2, 0
thumb_func_end MOD84_021D9C04
thumb_func_start MOD84_021D9C1C
MOD84_021D9C1C: ; 0x021D9C1C
push {r4, r5, r6, lr}
add r5, r0, #0
add r6, r1, #0
mov r0, #0x4b
mov r1, #0xf4
bl AllocFromHeap
add r4, r0, #0
beq _021D9C7C
str r5, [r4]
str r6, [r4, #4]
mov r1, #0
add r0, #0xec
str r1, [r0]
add r0, r4, #0
add r0, #0xf0
str r1, [r0]
add r0, r5, #0
bl MOD84_021D82AC
str r0, [r4, #0x10]
mov r0, #0
str r0, [r4, #0x14]
str r0, [r4, #0x18]
str r0, [r4, #0x54]
str r0, [r4, #8]
str r0, [r4, #0xc]
str r0, [r4, #0x60]
add r2, r4, #0
str r0, [r4, #0x64]
mov r0, #0x7f
mov r1, #0x41
add r2, #0x5c
mov r3, #0x4b
bl FUN_02006C08
str r0, [r4, #0x58]
cmp r0, #0
beq _021D9C76
ldr r0, [r4, #0x5c]
mov r1, #6
ldr r0, [r0, #0xc]
lsl r1, r1, #6
bl DC_FlushRange
_021D9C76:
add r0, r4, #0
bl MOD84_021DA388
_021D9C7C:
add r0, r4, #0
pop {r4, r5, r6, pc}
thumb_func_end MOD84_021D9C1C
thumb_func_start MOD84_021D9C80
MOD84_021D9C80: ; 0x021D9C80
push {r4, lr}
add r4, r0, #0
bl MOD84_021DA078
cmp r0, #0
beq _021D9CA0
ldr r0, [r4, #0x10]
mov r1, #2
bl FUN_02020130
ldr r0, [r4, #0x10]
mov r1, #1
bl FUN_020200A0
mov r0, #1
pop {r4, pc}
_021D9CA0:
mov r0, #0
pop {r4, pc}
thumb_func_end MOD84_021D9C80
thumb_func_start MOD84_021D9CA4
MOD84_021D9CA4: ; 0x021D9CA4
push {r3, r4, r5, lr}
add r5, r0, #0
bl OS_DisableInterrupts
add r4, r0, #0
add r0, r5, #0
bl MOD84_021DA390
add r0, r5, #0
bl MOD84_021DA31C
ldr r0, [r5, #0x58]
cmp r0, #0
beq _021D9CC4
bl FreeToHeap
_021D9CC4:
add r0, r5, #0
bl FreeToHeap
add r0, r4, #0
bl OS_RestoreInterrupts
mov r0, #1
pop {r3, r4, r5, pc}
thumb_func_end MOD84_021D9CA4
thumb_func_start MOD84_021D9CD4
MOD84_021D9CD4: ; 0x021D9CD4
push {r3, r4, r5, lr}
sub sp, #0x10
add r5, r1, #0
ldr r1, [r5]
add r4, r0, #0
cmp r1, #0xe
bls _021D9CE4
b _021DA068
_021D9CE4:
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021D9CF0: ; jump table
.short _021D9D0E - _021D9CF0 - 2 ; case 0
.short _021D9D28 - _021D9CF0 - 2 ; case 1
.short _021D9D48 - _021D9CF0 - 2 ; case 2
.short _021D9D6A - _021D9CF0 - 2 ; case 3
.short _021D9E00 - _021D9CF0 - 2 ; case 4
.short _021D9E3C - _021D9CF0 - 2 ; case 5
.short _021D9ECE - _021D9CF0 - 2 ; case 6
.short _021D9F08 - _021D9CF0 - 2 ; case 7
.short _021D9F3A - _021D9CF0 - 2 ; case 8
.short _021D9F54 - _021D9CF0 - 2 ; case 9
.short _021D9F78 - _021D9CF0 - 2 ; case 10
.short _021D9F90 - _021D9CF0 - 2 ; case 11
.short _021D9FBE - _021D9CF0 - 2 ; case 12
.short _021DA02A - _021D9CF0 - 2 ; case 13
.short _021DA058 - _021D9CF0 - 2 ; case 14
_021D9D0E:
mov r1, #0
mov r0, #3
add r2, r1, #0
str r0, [sp]
mov r0, #0x20
sub r2, #0x10
mov r3, #0x1d
bl FUN_0200A208
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021DA068
_021D9D28:
mov r0, #3
bl FUN_0200A344
cmp r0, #0
beq _021D9E16
mov r1, #0
ldr r0, _021DA070 ; =0x04000050
str r1, [sp]
mov r2, #0xc
mov r3, #0xa
bl G2x_SetBlendAlpha_
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021DA068
_021D9D48:
add r1, r4, #0
add r1, #0xec
ldr r1, [r1]
add r2, r1, #1
add r1, r4, #0
add r1, #0xec
add r4, #0xec
str r2, [r1]
ldr r1, [r4]
cmp r1, #0xf0
blt _021D9E16
bl MOD84_021DA3A0
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021DA068
_021D9D6A:
bl MOD84_021DA3C8
cmp r0, #0
beq _021D9E16
mov r0, #0x10
str r0, [sp]
ldr r0, _021DA070 ; =0x04000050
mov r1, #4
mov r2, #8
mov r3, #0
bl G2x_SetBlendAlpha_
mov r0, #0x10
str r0, [sp]
ldr r0, _021DA074 ; =0x04001050
mov r1, #4
mov r2, #8
mov r3, #0
bl G2x_SetBlendAlpha_
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x4b
str r0, [sp, #0xc]
ldr r2, [r4, #4]
mov r0, #0x7f
mov r1, #0x1c
mov r3, #2
bl FUN_020068C8
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x4b
str r0, [sp, #0xc]
ldr r2, [r4, #4]
mov r0, #0x7f
mov r1, #0x18
mov r3, #6
bl FUN_020068C8
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x4b
str r0, [sp, #0xc]
ldr r2, [r4, #4]
mov r0, #0x7f
mov r1, #0x1d
mov r3, #2
bl FUN_0200687C
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x4b
str r0, [sp, #0xc]
ldr r2, [r4, #4]
mov r0, #0x7f
mov r1, #0x19
mov r3, #6
bl FUN_0200687C
mov r0, #0
add r4, #0xec
str r0, [r4]
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021DA068
_021D9E00:
add r0, #0xec
ldr r0, [r0]
add r1, r0, #1
add r0, r4, #0
add r0, #0xec
str r1, [r0]
add r0, r4, #0
add r0, #0xec
ldr r0, [r0]
cmp r0, #0x96
bgt _021D9E18
_021D9E16:
b _021DA068
_021D9E18:
ldr r0, [r4]
mov r1, #0
mov r2, #1
mov r3, #0x5a
bl MOD84_021D801C
str r0, [r4, #8]
mov r1, #1
ldr r0, [r4]
add r2, r1, #0
mov r3, #0x5a
bl MOD84_021D801C
str r0, [r4, #0xc]
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021DA068
_021D9E3C:
ldr r0, [r4, #8]
bl MOD84_021D81C4
cmp r0, #0
beq _021D9F44
ldr r0, [r4, #0xc]
bl MOD84_021D81C4
cmp r0, #0
beq _021D9F44
ldr r0, [r4, #8]
bl MOD84_021D81D4
ldr r0, [r4, #0xc]
bl MOD84_021D81D4
mov r0, #0
str r0, [r4, #8]
str r0, [r4, #0xc]
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x4b
str r0, [sp, #0xc]
ldr r2, [r4, #4]
mov r0, #0x7f
mov r1, #0x20
mov r3, #3
bl FUN_020068C8
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x4b
str r0, [sp, #0xc]
ldr r2, [r4, #4]
mov r0, #0x7f
mov r1, #0x1e
mov r3, #7
bl FUN_020068C8
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x4b
str r0, [sp, #0xc]
ldr r2, [r4, #4]
mov r0, #0x7f
mov r1, #0x21
mov r3, #3
bl FUN_0200687C
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x4b
str r0, [sp, #0xc]
ldr r2, [r4, #4]
mov r0, #0x7f
mov r1, #0x1f
mov r3, #7
bl FUN_0200687C
mov r0, #0
add r4, #0xec
str r0, [r4]
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021DA068
_021D9ECE:
add r0, #0xec
ldr r0, [r0]
add r1, r0, #1
add r0, r4, #0
add r0, #0xec
str r1, [r0]
add r0, r4, #0
add r0, #0xec
ldr r0, [r0]
cmp r0, #0xc8
blt _021D9F44
mov r1, #0
ldr r0, [r4]
add r2, r1, #0
mov r3, #0x5a
bl MOD84_021D801C
str r0, [r4, #8]
ldr r0, [r4]
mov r1, #1
mov r2, #0
mov r3, #0x5a
bl MOD84_021D801C
str r0, [r4, #0xc]
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021DA068
_021D9F08:
ldr r0, [r4, #8]
bl MOD84_021D81C4
cmp r0, #0
beq _021D9F44
ldr r0, [r4, #0xc]
bl MOD84_021D81C4
cmp r0, #0
beq _021D9F44
ldr r0, [r4, #8]
bl MOD84_021D81D4
ldr r0, [r4, #0xc]
bl MOD84_021D81D4
mov r0, #0
str r0, [r4, #8]
str r0, [r4, #0xc]
add r4, #0xec
str r0, [r4]
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021DA068
_021D9F3A:
ldr r0, [r4]
bl MOD84_021D82B4
cmp r0, #0
bne _021D9F46
_021D9F44:
b _021DA068
_021D9F46:
mov r0, #0
add r4, #0xec
str r0, [r4]
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021DA068
_021D9F54:
add r0, #0xec
ldr r0, [r0]
add r1, r0, #1
add r0, r4, #0
add r0, #0xec
str r1, [r0]
add r0, r4, #0
add r0, #0xec
ldr r0, [r0]
cmp r0, #0x5a
blt _021DA068
ldr r0, [r4]
bl MOD84_021D8458
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021DA068
_021D9F78:
ldr r0, [r4]
bl MOD84_021D846C
cmp r0, #0
beq _021DA068
mov r0, #0
add r4, #0xec
str r0, [r4]
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021DA068
_021D9F90:
add r0, #0xec
ldr r0, [r0]
add r1, r0, #1
add r0, r4, #0
add r0, #0xec
add r4, #0xec
str r1, [r0]
ldr r0, [r4]
cmp r0, #0x96
blt _021DA068
mov r0, #3
str r0, [sp]
mov r0, #0x20
add r1, r0, #0
sub r1, #0x30
mov r2, #0
mov r3, #0x1d
bl FUN_0200A208
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021DA068
_021D9FBE:
mov r0, #3
bl FUN_0200A344
cmp r0, #0
beq _021DA068
mov r0, #1
mov r1, #0
bl FUN_0201E6E4
ldr r0, [r4, #0x10]
mov r1, #0
bl FUN_020200A0
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x4b
str r0, [sp, #0xc]
ldr r2, [r4, #4]
mov r0, #0x7f
mov r1, #0x2a
mov r3, #3
bl FUN_020068C8
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x4b
str r0, [sp, #0xc]
ldr r2, [r4, #4]
mov r0, #0x7f
mov r1, #0x2b
mov r3, #3
bl FUN_0200687C
mov r0, #0x20
str r0, [sp]
mov r0, #0x4b
mov r2, #0
str r0, [sp, #4]
mov r0, #0x7f
mov r1, #0x2c
add r3, r2, #0
bl FUN_02006930
mov r0, #0
add r4, #0xec
str r0, [r4]
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021DA068
_021DA02A:
add r0, #0xec
ldr r0, [r0]
add r1, r0, #1
add r0, r4, #0
add r0, #0xec
add r4, #0xec
str r1, [r0]
ldr r0, [r4]
cmp r0, #0x2d
blt _021DA068
mov r1, #0
mov r0, #1
add r2, r1, #0
str r0, [sp]
mov r0, #0x10
sub r2, #0x10
mov r3, #0x1d
bl FUN_0200A208
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021DA068
_021DA058:
mov r0, #1
bl FUN_0200A344
cmp r0, #0
beq _021DA068
add sp, #0x10
mov r0, #1
pop {r3, r4, r5, pc}
_021DA068:
mov r0, #0
add sp, #0x10
pop {r3, r4, r5, pc}
nop
_021DA070: .word 0x04000050
_021DA074: .word 0x04001050
thumb_func_end MOD84_021D9CD4
thumb_func_start MOD84_021DA078
MOD84_021DA078: ; 0x021DA078
push {r3, r4, r5, lr}
sub sp, #0x38
add r5, r1, #0
add r4, r0, #0
ldr r0, [r5]
cmp r0, #0xa
bls _021DA088
b _021DA2FE
_021DA088:
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021DA094: ; jump table
.short _021DA0AA - _021DA094 - 2 ; case 0
.short _021DA0E2 - _021DA094 - 2 ; case 1
.short _021DA11A - _021DA094 - 2 ; case 2
.short _021DA13A - _021DA094 - 2 ; case 3
.short _021DA15A - _021DA094 - 2 ; case 4
.short _021DA192 - _021DA094 - 2 ; case 5
.short _021DA1B2 - _021DA094 - 2 ; case 6
.short _021DA1D2 - _021DA094 - 2 ; case 7
.short _021DA1E2 - _021DA094 - 2 ; case 8
.short _021DA238 - _021DA094 - 2 ; case 9
.short _021DA2CE - _021DA094 - 2 ; case 10
_021DA0AA:
ldr r0, [r4, #4]
ldr r2, _021DA30C ; =0x021DAD68
mov r1, #2
mov r3, #0
bl FUN_02016C18
ldr r0, [r4, #4]
ldr r2, _021DA310 ; =0x021DAD4C
mov r1, #3
mov r3, #0
bl FUN_02016C18
ldr r0, [r4, #4]
ldr r2, _021DA30C ; =0x021DAD68
mov r1, #6
mov r3, #0
bl FUN_02016C18
ldr r0, [r4, #4]
ldr r2, _021DA310 ; =0x021DAD4C
mov r1, #7
mov r3, #0
bl FUN_02016C18
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021DA304
_021DA0E2:
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x4b
str r0, [sp, #0xc]
ldr r2, [r4, #4]
mov r0, #0x7f
mov r1, #0x16
mov r3, #2
bl FUN_020068C8
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x4b
str r0, [sp, #0xc]
ldr r2, [r4, #4]
mov r0, #0x7f
mov r1, #0x1a
mov r3, #6
bl FUN_020068C8
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021DA304
_021DA11A:
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x4b
str r0, [sp, #0xc]
ldr r2, [r4, #4]
mov r0, #0x7f
mov r1, #0x17
mov r3, #2
bl FUN_0200687C
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021DA304
_021DA13A:
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x4b
str r0, [sp, #0xc]
ldr r2, [r4, #4]
mov r0, #0x7f
mov r1, #0x1b
mov r3, #6
bl FUN_0200687C
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021DA304
_021DA15A:
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x4b
str r0, [sp, #0xc]
ldr r2, [r4, #4]
mov r0, #0x7f
mov r1, #0x14
mov r3, #3
bl FUN_020068C8
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x4b
str r0, [sp, #0xc]
ldr r2, [r4, #4]
mov r0, #0x7f
mov r1, #0x18
mov r3, #7
bl FUN_020068C8
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021DA304
_021DA192:
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x4b
str r0, [sp, #0xc]
ldr r2, [r4, #4]
mov r0, #0x7f
mov r1, #0x15
mov r3, #3
bl FUN_0200687C
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021DA304
_021DA1B2:
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x4b
str r0, [sp, #0xc]
ldr r2, [r4, #4]
mov r0, #0x7f
mov r1, #0x19
mov r3, #7
bl FUN_0200687C
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021DA304
_021DA1D2:
ldr r0, [r4]
mov r1, #2
bl MOD84_021D7DF4
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021DA304
_021DA1E2:
mov r0, #0x7f
mov r1, #0x3d
mov r2, #0x3e
bl MOD84_021D81DC
str r0, [r4, #0x54]
add r0, r4, #0
add r0, #0x1c
bl FUN_020B1A24
add r0, r4, #0
add r0, #0x40
bl FUN_020B19DC
mov r2, #0
str r2, [sp]
mov r0, #1
str r0, [sp, #4]
str r2, [sp, #8]
mov r0, #0x4b
str r0, [sp, #0xc]
add r0, r4, #0
add r0, #0x1c
str r0, [sp, #0x10]
mov r0, #0x7f
mov r1, #0x3f
add r3, r2, #0
bl FUN_02006AE4
mov r0, #0x4b
str r0, [sp]
add r4, #0x40
str r4, [sp, #4]
mov r0, #0x7f
mov r1, #0x40
mov r2, #1
mov r3, #0
bl FUN_02006A8C
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021DA304
_021DA238:
mov r2, #0
str r2, [sp]
mov r0, #2
str r0, [sp, #4]
str r2, [sp, #8]
mov r0, #0x4b
str r0, [sp, #0xc]
add r0, r4, #0
add r0, #0x1c
str r0, [sp, #0x10]
mov r0, #0x7f
mov r1, #0x3f
add r3, r2, #0
bl FUN_02006AE4
mov r0, #0x4b
str r0, [sp]
add r0, r4, #0
add r0, #0x40
str r0, [sp, #4]
mov r0, #0x7f
mov r1, #0x40
mov r2, #2
mov r3, #0
bl FUN_02006A8C
mov r0, #2
str r0, [sp]
add r2, r4, #0
add r3, r4, #0
ldr r1, [r4, #0x54]
add r0, sp, #0x14
add r2, #0x1c
add r3, #0x40
bl MOD84_021D8240
mov r0, #3
str r0, [sp]
mov r0, #1
mov r2, #0
str r0, [sp, #4]
str r2, [sp, #8]
ldr r0, [r4]
add r1, sp, #0x14
add r3, r2, #0
bl MOD84_021D8260
str r0, [r4, #0x14]
mov r0, #4
str r0, [sp]
mov r0, #1
mov r2, #0
str r0, [sp, #4]
str r2, [sp, #8]
ldr r0, [r4]
add r1, sp, #0x14
add r3, r2, #0
bl MOD84_021D8260
str r0, [r4, #0x18]
mov r1, #3
bl FUN_02020238
ldr r0, [r4, #0x18]
mov r1, #1
bl FUN_02020398
ldr r0, [r4, #0x18]
mov r1, #0
bl FUN_02020130
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021DA304
_021DA2CE:
ldr r0, [r4, #0x5c]
mov r1, #4
ldr r0, [r0, #0xc]
mov r2, #3
str r0, [sp]
ldr r0, _021DA314 ; =0x021DAD48
mov r3, #0
bl MOD84_021DA58C
str r0, [r4, #0x60]
ldr r0, [r4, #0x5c]
mov r1, #4
ldr r0, [r0, #0xc]
mov r2, #5
str r0, [sp]
ldr r0, _021DA318 ; =0x021DAD44
mov r3, #1
bl MOD84_021DA58C
str r0, [r4, #0x64]
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021DA304
_021DA2FE:
add sp, #0x38
mov r0, #1
pop {r3, r4, r5, pc}
_021DA304:
mov r0, #0
add sp, #0x38
pop {r3, r4, r5, pc}
nop
_021DA30C: .word 0x021DAD68
_021DA310: .word 0x021DAD4C
_021DA314: .word 0x021DAD48
_021DA318: .word 0x021DAD44
thumb_func_end MOD84_021DA078
thumb_func_start MOD84_021DA31C
MOD84_021DA31C: ; 0x021DA31C
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0x60]
cmp r0, #0
beq _021DA32A
bl MOD84_021DA5D8
_021DA32A:
ldr r0, [r4, #0x64]
cmp r0, #0
beq _021DA334
bl MOD84_021DA5D8
_021DA334:
ldr r0, [r4, #0x14]
cmp r0, #0
beq _021DA33E
bl FUN_0201FFC8
_021DA33E:
ldr r0, [r4, #0x18]
cmp r0, #0
beq _021DA348
bl FUN_0201FFC8
_021DA348:
ldr r0, [r4, #0x54]
cmp r0, #0
beq _021DA352
bl MOD84_021D821C
_021DA352:
ldr r0, [r4, #8]
cmp r0, #0
beq _021DA35C
bl MOD84_021D81D4
_021DA35C:
ldr r0, [r4, #0xc]
cmp r0, #0
beq _021DA366
bl MOD84_021D81D4
_021DA366:
ldr r0, [r4, #4]
mov r1, #2
bl FUN_020178A0
ldr r0, [r4, #4]
mov r1, #3
bl FUN_020178A0
ldr r0, [r4, #4]
mov r1, #6
bl FUN_020178A0
ldr r0, [r4, #4]
mov r1, #7
bl FUN_020178A0
pop {r4, pc}
thumb_func_end MOD84_021DA31C
thumb_func_start MOD84_021DA388
MOD84_021DA388: ; 0x021DA388
mov r1, #0
add r0, #0xe4
str r1, [r0]
bx lr
thumb_func_end MOD84_021DA388
thumb_func_start MOD84_021DA390
MOD84_021DA390: ; 0x021DA390
push {r3, lr}
add r0, #0xe4
ldr r0, [r0]
cmp r0, #0
beq _021DA39E
bl FUN_0200CAB4
_021DA39E:
pop {r3, pc}
thumb_func_end MOD84_021DA390
thumb_func_start MOD84_021DA3A0
MOD84_021DA3A0: ; 0x021DA3A0
push {r4, lr}
add r4, r0, #0
mov r2, #0
add r4, #0x68
str r2, [r0, #0x68]
str r2, [r4, #4]
str r2, [r4, #8]
add r1, r4, #0
str r2, [r4, #0x74]
add r1, #0x80
str r0, [r1]
ldr r0, _021DA3C4 ; =MOD84_021DA3D8
add r1, r4, #0
bl FUN_0200CA60
str r0, [r4, #0x7c]
pop {r4, pc}
nop
_021DA3C4: .word MOD84_021DA3D8
thumb_func_end MOD84_021DA3A0
thumb_func_start MOD84_021DA3C8
MOD84_021DA3C8: ; 0x021DA3C8
add r0, #0xe4
ldr r0, [r0]
cmp r0, #0
bne _021DA3D4
mov r0, #1
bx lr
_021DA3D4:
mov r0, #0
bx lr
thumb_func_end MOD84_021DA3C8
thumb_func_start MOD84_021DA3D8
MOD84_021DA3D8: ; 0x021DA3D8
push {r3, r4, r5, r6, lr}
sub sp, #0xc
add r4, r1, #0
add r1, #0x80
ldr r5, [r1]
ldr r1, [r4]
cmp r1, #3
bls _021DA3EA
b _021DA56C
_021DA3EA:
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021DA3F6: ; jump table
.short _021DA3FE - _021DA3F6 - 2 ; case 0
.short _021DA4B8 - _021DA3F6 - 2 ; case 1
.short _021DA50A - _021DA3F6 - 2 ; case 2
.short _021DA544 - _021DA3F6 - 2 ; case 3
_021DA3FE:
ldr r2, [r4, #4]
mov r0, #0x18
add r1, r2, #0
ldr r2, _021DA570 ; =0x021DAD84
mul r1, r0
ldr r2, [r2, r1]
ldr r3, _021DA574 ; =0x021DAD88
lsl r2, r2, #0xc
ldr r1, [r3, r1]
str r2, [r4, #0x14]
lsl r6, r1, #0xc
str r6, [r4, #0x18]
mov r1, #0
str r1, [r4, #0x1c]
ldr r3, [r4, #4]
add r1, r3, #0
ldr r3, _021DA578 ; =0x021DAD94
mul r1, r0
ldr r1, [r3, r1]
str r1, [r4, #0xc]
ldr r3, [r4, #4]
add r1, r3, #0
ldr r3, _021DA57C ; =0x021DAD98
mul r1, r0
ldr r1, [r3, r1]
str r1, [r4, #0x10]
ldr r1, [r4, #4]
add r3, r1, #0
mul r3, r0
ldr r0, _021DA580 ; =0x021DAD8C
ldr r1, [r4, #0xc]
ldr r0, [r0, r3]
lsl r0, r0, #0xc
sub r0, r0, r2
bl _s32_div_f
str r0, [r4, #0x20]
ldr r1, [r4, #4]
mov r0, #0x18
add r2, r1, #0
mul r2, r0
ldr r0, _021DA584 ; =0x021DAD90
ldr r1, [r4, #0xc]
ldr r0, [r0, r2]
lsl r0, r0, #0xc
sub r0, r0, r6
bl _s32_div_f
str r0, [r4, #0x24]
mov r0, #0
str r0, [r4, #0x28]
add r1, r4, #0
ldr r0, [r5, #0x14]
add r1, #0x14
bl FUN_02020044
ldr r0, [r5, #0x14]
mov r1, #1
bl FUN_020200A0
ldr r0, [r5, #0x14]
mov r1, #1
bl FUN_02020130
add r0, r4, #0
add r0, #0x20
add r1, sp, #0
bl VEC_Normalize
add r2, r4, #0
add r3, r4, #0
ldr r0, _021DA588 ; =0xFFFD8000
add r1, sp, #0
add r2, #0x14
add r3, #0x2c
bl VEC_MultAdd
add r1, r4, #0
ldr r0, [r5, #0x18]
add r1, #0x2c
bl FUN_02020044
ldr r0, [r5, #0x18]
mov r1, #1
bl FUN_020200A0
mov r0, #0
str r0, [r4, #0x74]
ldr r0, [r4]
add sp, #0xc
add r0, r0, #1
str r0, [r4]
pop {r3, r4, r5, r6, pc}
_021DA4B8:
ldr r0, [r4, #0xc]
cmp r0, #0
beq _021DA4F8
add r0, r4, #0
add r0, #0x14
add r1, r4, #0
add r1, #0x20
add r2, r0, #0
bl VEC_Add
add r0, r4, #0
add r0, #0x2c
add r1, r4, #0
add r1, #0x20
add r2, r0, #0
bl VEC_Add
add r1, r4, #0
ldr r0, [r5, #0x14]
add r1, #0x14
bl FUN_02020044
add r1, r4, #0
ldr r0, [r5, #0x18]
add r1, #0x2c
bl FUN_02020044
ldr r0, [r4, #0xc]
add sp, #0xc
sub r0, r0, #1
str r0, [r4, #0xc]
pop {r3, r4, r5, r6, pc}
_021DA4F8:
mov r0, #0x14
str r0, [r4, #0xc]
ldr r0, [r5, #0x14]
mov r1, #0
bl FUN_020200A0
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
_021DA50A:
ldr r0, [r4, #0xc]
cmp r0, #0
beq _021DA532
add r0, r4, #0
add r0, #0x2c
add r1, r4, #0
add r1, #0x20
add r2, r0, #0
bl VEC_Add
add r1, r4, #0
ldr r0, [r5, #0x18]
add r1, #0x2c
bl FUN_02020044
ldr r0, [r4, #0xc]
add sp, #0xc
sub r0, r0, #1
str r0, [r4, #0xc]
pop {r3, r4, r5, r6, pc}
_021DA532:
ldr r0, [r5, #0x18]
mov r1, #0
bl FUN_020200A0
ldr r0, [r4]
add sp, #0xc
add r0, r0, #1
str r0, [r4]
pop {r3, r4, r5, r6, pc}
_021DA544:
ldr r1, [r4, #0x10]
cmp r1, #0
beq _021DA552
sub r0, r1, #1
add sp, #0xc
str r0, [r4, #0x10]
pop {r3, r4, r5, r6, pc}
_021DA552:
ldr r1, [r4, #4]
add r1, r1, #1
str r1, [r4, #4]
cmp r1, #4
bhs _021DA564
mov r0, #0
add sp, #0xc
str r0, [r4]
pop {r3, r4, r5, r6, pc}
_021DA564:
bl FUN_0200CAB4
mov r0, #0
str r0, [r4, #0x7c]
_021DA56C:
add sp, #0xc
pop {r3, r4, r5, r6, pc}
.align 2, 0
_021DA570: .word 0x021DAD84
_021DA574: .word 0x021DAD88
_021DA578: .word 0x021DAD94
_021DA57C: .word 0x021DAD98
_021DA580: .word 0x021DAD8C
_021DA584: .word 0x021DAD90
_021DA588: .word 0xFFFD8000
thumb_func_end MOD84_021DA3D8
thumb_func_start MOD84_021DA58C
MOD84_021DA58C: ; 0x021DA58C
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r6, r1, #0
mov r0, #0x4b
mov r1, #0x1c
add r7, r2, #0
str r3, [sp]
bl AllocFromHeap
add r4, r0, #0
beq _021DA5CE
mov r0, #0
str r0, [r4]
str r0, [r4, #8]
ldr r0, [sp, #0x18]
add r1, r4, #0
str r0, [r4, #0x18]
str r5, [r4, #0x14]
str r6, [r4, #0xc]
ldr r0, [sp]
str r7, [r4, #4]
str r0, [r4, #0x10]
ldr r0, _021DA5D4 ; =MOD84_021DA5F0
mov r2, #2
bl FUN_0200CA98
add r5, r0, #0
bne _021DA5CA
add r0, r4, #0
bl FreeToHeap
_021DA5CA:
add r0, r5, #0
pop {r3, r4, r5, r6, r7, pc}
_021DA5CE:
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
nop
_021DA5D4: .word MOD84_021DA5F0
thumb_func_end MOD84_021DA58C
thumb_func_start MOD84_021DA5D8
MOD84_021DA5D8: ; 0x021DA5D8
push {r4, lr}
add r4, r0, #0
beq _021DA5EC
bl FUN_0201B6C8
bl FreeToHeap
add r0, r4, #0
bl FUN_0200CAB4
_021DA5EC:
pop {r4, pc}
.align 2, 0
thumb_func_end MOD84_021DA5D8
thumb_func_start MOD84_021DA5F0
MOD84_021DA5F0: ; 0x021DA5F0
push {r4, lr}
add r4, r1, #0
ldr r0, [r4]
add r1, r0, #1
str r1, [r4]
ldr r0, [r4, #4]
cmp r1, r0
ble _021DA644
ldr r1, [r4, #0x14]
ldr r0, [r4, #8]
ldrb r0, [r1, r0]
ldr r1, [r4, #0x18]
sub r0, r0, #4
lsl r2, r0, #4
ldr r0, [r4, #0x10]
cmp r0, #0
bne _021DA622
lsl r0, r2, #1
add r0, r1, r0
mov r1, #5
lsl r1, r1, #6
mov r2, #0x20
bl GX_LoadBGPltt
b _021DA630
_021DA622:
lsl r0, r2, #1
add r0, r1, r0
mov r1, #6
lsl r1, r1, #6
mov r2, #0x20
bl GXS_LoadBGPltt
_021DA630:
ldr r0, [r4, #8]
add r1, r0, #1
str r1, [r4, #8]
ldr r0, [r4, #0xc]
cmp r1, r0
blt _021DA640
mov r0, #0
str r0, [r4, #8]
_021DA640:
mov r0, #0
str r0, [r4]
_021DA644:
pop {r4, pc}
.align 2, 0
thumb_func_end MOD84_021DA5F0
.section .rodata
; 0x021DA648
.byte 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x30, 0x00, 0x2D, 0x00, 0x2E, 0x00
.byte 0x33, 0x00, 0x34, 0x00, 0x31, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1F, 0x06, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00
.byte 0x07, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00
.byte 0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x75, 0x88, 0x1D, 0x02
.byte 0xA5, 0x88, 0x1D, 0x02, 0xDD, 0x88, 0x1D, 0x02, 0xC9, 0x88, 0x1D, 0x02, 0x8D, 0x8A, 0x1D, 0x02
.byte 0xAD, 0x8A, 0x1D, 0x02, 0xD5, 0x8A, 0x1D, 0x02, 0xC1, 0x8A, 0x1D, 0x02, 0x55, 0x8C, 0x1D, 0x02
.byte 0xD9, 0x8C, 0x1D, 0x02, 0x0D, 0x8D, 0x1D, 0x02, 0xED, 0x8C, 0x1D, 0x02, 0x95, 0x93, 0x1D, 0x02
.byte 0xB5, 0x93, 0x1D, 0x02, 0xDD, 0x93, 0x1D, 0x02, 0xC9, 0x93, 0x1D, 0x02, 0x5D, 0x95, 0x1D, 0x02
.byte 0x95, 0x95, 0x1D, 0x02, 0xCD, 0x95, 0x1D, 0x02, 0xB9, 0x95, 0x1D, 0x02, 0x55, 0x9A, 0x1D, 0x02
.byte 0x75, 0x9A, 0x1D, 0x02, 0x9D, 0x9A, 0x1D, 0x02, 0x89, 0x9A, 0x1D, 0x02, 0x1D, 0x9C, 0x1D, 0x02
.byte 0x81, 0x9C, 0x1D, 0x02, 0xD5, 0x9C, 0x1D, 0x02, 0xA5, 0x9C, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x02, 0x00, 0x10, 0x00, 0x01, 0x00, 0x03, 0x00, 0xC2, 0x00, 0x00, 0x00, 0x04, 0x00
.byte 0xD7, 0x00, 0x00, 0x00, 0x05, 0x00, 0x89, 0x01, 0x00, 0x00, 0x06, 0x00, 0x9E, 0x01, 0x00, 0x00
.byte 0x07, 0x00, 0x50, 0x02, 0x00, 0x00, 0x08, 0x00, 0x65, 0x02, 0x00, 0x00, 0x09, 0x00, 0x17, 0x03
.byte 0x00, 0x00, 0x0A, 0x00, 0x2C, 0x03, 0x00, 0x00, 0x0B, 0x00, 0x64, 0x03, 0x00, 0x00, 0x0C, 0x00
.byte 0x79, 0x03, 0x00, 0x00, 0x0D, 0x00, 0xB1, 0x03, 0x00, 0x00, 0x0E, 0x00, 0xC6, 0x03, 0x00, 0x00
.byte 0x0F, 0x00, 0xFE, 0x03, 0x00, 0x00, 0x10, 0x00, 0x13, 0x04, 0x00, 0x00, 0x11, 0x00, 0x4B, 0x04
.byte 0x00, 0x00, 0x12, 0x00, 0x60, 0x04, 0x00, 0x00, 0x13, 0x00, 0x75, 0x04, 0x00, 0x00, 0x14, 0x00
.byte 0x8A, 0x04, 0x00, 0x00, 0x15, 0x00, 0x9F, 0x04, 0x00, 0x00, 0x16, 0x00, 0xB4, 0x04, 0x00, 0x00
.byte 0x17, 0x00, 0xC9, 0x04, 0x00, 0x00, 0x18, 0x00, 0xDE, 0x04, 0x00, 0x00, 0x19, 0x00, 0xF3, 0x04
.byte 0x00, 0x00, 0x1A, 0x00, 0x08, 0x05, 0x00, 0x00, 0x1B, 0x00, 0x1D, 0x05, 0x00, 0x00, 0x1C, 0x00
.byte 0x32, 0x05, 0x00, 0x00, 0x1D, 0x00, 0x47, 0x05, 0x00, 0x00, 0x1E, 0x00, 0xF9, 0x05, 0x00, 0x00
.byte 0x1F, 0x00, 0x0E, 0x06, 0x00, 0x00, 0x20, 0x00, 0x46, 0x06, 0x00, 0x00, 0x21, 0x00, 0x56, 0x06
.byte 0x00, 0x00, 0x22, 0x00, 0x66, 0x06, 0x00, 0x00, 0x23, 0x00, 0x7B, 0x06, 0x00, 0x00, 0x24, 0x00
.byte 0x90, 0x06, 0x00, 0x00, 0x25, 0x00, 0xA5, 0x06, 0x00, 0x00, 0x26, 0x00, 0xBA, 0x06, 0x00, 0x00
.byte 0x27, 0x00, 0xCF, 0x06, 0x00, 0x00, 0x28, 0x00, 0xE4, 0x06, 0x00, 0x00, 0x29, 0x00, 0xF9, 0x06
.byte 0x00, 0x00, 0x2A, 0x00, 0x0E, 0x07, 0x00, 0x00, 0x2B, 0x00, 0x23, 0x07, 0x00, 0x00, 0x2C, 0x00
.byte 0x38, 0x07, 0x00, 0x00, 0x2D, 0x00, 0x4D, 0x07, 0x00, 0x00, 0x2E, 0x00, 0x62, 0x07, 0x00, 0x00
.byte 0x2F, 0x00, 0x9A, 0x07, 0x00, 0x00, 0x30, 0x00, 0xAF, 0x07, 0x00, 0x00, 0x31, 0x00, 0xE7, 0x07
.byte 0x00, 0x00, 0x32, 0x00, 0xFC, 0x07, 0x00, 0x00, 0x33, 0x00, 0xAE, 0x08, 0x00, 0x00, 0x34, 0x00
.byte 0xC3, 0x08, 0x00, 0x00, 0x35, 0x00, 0xFB, 0x08, 0x00, 0x00, 0x36, 0x00, 0x10, 0x09, 0x00, 0x00
.byte 0x37, 0x00, 0x25, 0x09, 0x00, 0x00, 0x38, 0x00, 0x5D, 0x09, 0x00, 0x00, 0x39, 0x00, 0x72, 0x09
.byte 0x00, 0x00, 0x3A, 0x00, 0xAA, 0x09, 0x00, 0x00, 0x3B, 0x00, 0xBF, 0x09, 0x00, 0x00, 0x3C, 0x00
.byte 0x71, 0x0A, 0x00, 0x00, 0x3D, 0x00, 0x86, 0x0A, 0x00, 0x00, 0x3E, 0x00, 0xBE, 0x0A, 0x00, 0x00
.byte 0x3F, 0x00, 0xD3, 0x0A, 0x00, 0x00, 0x40, 0x00, 0xE8, 0x0A, 0x00, 0x00, 0x41, 0x00, 0xFD, 0x0A
.byte 0x00, 0x00, 0x42, 0x00, 0x12, 0x0B, 0x00, 0x00, 0x43, 0x00, 0x27, 0x0B, 0x00, 0x00, 0x44, 0x00
.byte 0x3C, 0x0B, 0x00, 0x00, 0x45, 0x00, 0x51, 0x0B, 0x00, 0x00, 0x46, 0x00, 0x66, 0x0B, 0x00, 0x00
.byte 0x47, 0x00, 0x7B, 0x0B, 0x00, 0x00, 0x48, 0x00, 0x90, 0x0B, 0x00, 0x00, 0x49, 0x00, 0xC8, 0x0B
.byte 0x00, 0x00, 0x4A, 0x00, 0xDD, 0x0B, 0x00, 0x00, 0x4B, 0x00, 0xF2, 0x0B, 0x00, 0x00, 0x4C, 0x00
.byte 0x07, 0x0C, 0x00, 0x00, 0x4D, 0x00, 0x1C, 0x0C, 0x00, 0x00, 0x4E, 0x00, 0x54, 0x0C, 0x00, 0x00
.byte 0x4F, 0x00, 0x69, 0x0C, 0x00, 0x00, 0x50, 0x00, 0x7E, 0x0C, 0x00, 0x00, 0x51, 0x00, 0x93, 0x0C
.byte 0x00, 0x00, 0x52, 0x00, 0xA8, 0x0C, 0x00, 0x00, 0x53, 0x00, 0xE0, 0x0C, 0x00, 0x00, 0x54, 0x00
.byte 0xF5, 0x0C, 0x00, 0x00, 0x55, 0x00, 0x0A, 0x0D, 0x00, 0x00, 0x56, 0x00, 0x1F, 0x0D, 0x00, 0x00
.byte 0x57, 0x00, 0x34, 0x0D, 0x00, 0x00, 0x58, 0x00, 0x49, 0x0D, 0x00, 0x00, 0x59, 0x00, 0x5E, 0x0D
.byte 0x00, 0x00, 0x5A, 0x00, 0x73, 0x0D, 0x00, 0x00, 0x5B, 0x00, 0xAB, 0x0D, 0x00, 0x00, 0x5C, 0x00
.byte 0xC0, 0x0D, 0x00, 0x00, 0x5D, 0x00, 0xF8, 0x0D, 0x00, 0x00, 0x5E, 0x00, 0x0D, 0x0E, 0x00, 0x00
.byte 0x5F, 0x00, 0x22, 0x0E, 0x00, 0x00, 0x60, 0x00, 0x37, 0x0E, 0x00, 0x00, 0x61, 0x00, 0x4C, 0x0E
.byte 0x00, 0x00, 0x62, 0x00, 0x84, 0x0E, 0x00, 0x00, 0x63, 0x00, 0x99, 0x0E, 0x00, 0x00, 0x64, 0x00
.byte 0xAE, 0x0E, 0x00, 0x00, 0x65, 0x00, 0xC3, 0x0E, 0x00, 0x00, 0x66, 0x00, 0xD8, 0x0E, 0x00, 0x00
.byte 0x67, 0x00, 0xED, 0x0E, 0x00, 0x00, 0x68, 0x00, 0x02, 0x0F, 0x00, 0x00, 0x69, 0x00, 0x17, 0x0F
.byte 0x00, 0x00, 0x6A, 0x00, 0x2C, 0x0F, 0x00, 0x00, 0x6B, 0x00, 0xDE, 0x0F, 0x00, 0x00, 0x6C, 0x00
.byte 0xF3, 0x0F, 0x00, 0x00, 0x6D, 0x00, 0x08, 0x10, 0x00, 0x00, 0x6E, 0x00, 0x1D, 0x10, 0x00, 0x00
.byte 0x6F, 0x00, 0x32, 0x10, 0x00, 0x00, 0x70, 0x00, 0x6A, 0x10, 0x00, 0x00, 0x71, 0x00, 0x7F, 0x10
.byte 0x00, 0x00, 0x72, 0x00, 0x94, 0x10, 0x00, 0x00, 0x73, 0x00, 0xA9, 0x10, 0x00, 0x00, 0x74, 0x00
.byte 0xBE, 0x10, 0x00, 0x00, 0x75, 0x00, 0xD3, 0x10, 0x00, 0x00, 0x76, 0x00, 0x0B, 0x11, 0x00, 0x00
.byte 0x77, 0x00, 0x2B, 0x11, 0x00, 0x00, 0x78, 0x00, 0x40, 0x11, 0x00, 0x00, 0x79, 0x00, 0x60, 0x11
.byte 0x00, 0x00, 0x7A, 0x00, 0x75, 0x11, 0x00, 0x00, 0x7B, 0x00, 0x8A, 0x11, 0x00, 0x00, 0x7C, 0x00
.byte 0x9F, 0x11, 0x00, 0x00, 0x7D, 0x00, 0xBF, 0x11, 0x00, 0x00, 0x7E, 0x00, 0xD4, 0x11, 0x00, 0x00
.byte 0x7F, 0x00, 0x0C, 0x12, 0x00, 0x00, 0x80, 0x00, 0x21, 0x12, 0x00, 0x00, 0x81, 0x00, 0x36, 0x12
.byte 0x00, 0x00, 0x82, 0x00, 0xE8, 0x12, 0x00, 0x00, 0x83, 0x00, 0xFD, 0x12, 0x00, 0x00, 0x84, 0x00
.byte 0x12, 0x13, 0x00, 0x00, 0x85, 0x00, 0x27, 0x13, 0x00, 0x00, 0x86, 0x00, 0x3C, 0x13, 0x00, 0x00
.byte 0x87, 0x00, 0x51, 0x13, 0x00, 0x00, 0x88, 0x00, 0x66, 0x13, 0x00, 0x00, 0x89, 0x00, 0x7B, 0x13
.byte 0x00, 0x00, 0x8A, 0x00, 0x90, 0x13, 0x00, 0x00, 0x8B, 0x00, 0xA5, 0x13, 0x00, 0x00, 0x8C, 0x00
.byte 0xBA, 0x13, 0x00, 0x00, 0x8D, 0x00, 0xCF, 0x13, 0x00, 0x00, 0x8E, 0x00, 0xE4, 0x13, 0x00, 0x00
.byte 0x8F, 0x00, 0xF9, 0x13, 0x00, 0x00, 0x90, 0x00, 0x0E, 0x14, 0x00, 0x00, 0x91, 0x00, 0x23, 0x14
.byte 0x00, 0x00, 0x92, 0x00, 0x38, 0x14, 0x00, 0x00, 0x93, 0x00, 0x4D, 0x14, 0x00, 0x00, 0x94, 0x00
.byte 0x62, 0x14, 0x00, 0x00, 0x95, 0x00, 0x77, 0x14, 0x00, 0x00, 0x96, 0x00, 0x8C, 0x14, 0x00, 0x00
.byte 0x97, 0x00, 0xA1, 0x14, 0x00, 0x00, 0x98, 0x00, 0xB6, 0x14, 0x00, 0x00, 0x99, 0x00, 0xCB, 0x14
.byte 0x00, 0x00, 0x9A, 0x00, 0xE0, 0x14, 0x00, 0x00, 0x9B, 0x00, 0xF5, 0x14, 0x00, 0x00, 0x9C, 0x00
.byte 0x0A, 0x15, 0x00, 0x00, 0x9D, 0x00, 0x1F, 0x15, 0x00, 0x00, 0x9E, 0x00, 0x34, 0x15, 0x00, 0x00
.byte 0x9F, 0x00, 0xE6, 0x15, 0x00, 0x00, 0xA0, 0x00, 0xFB, 0x15, 0x00, 0x00, 0xA1, 0x00, 0x10, 0x16
.byte 0x00, 0x00, 0xA2, 0x00, 0x25, 0x16, 0x00, 0x00, 0xA3, 0x00, 0x5D, 0x16, 0x00, 0x00, 0xA4, 0x00
.byte 0x72, 0x16, 0x00, 0x00, 0xA5, 0x00, 0x87, 0x16, 0x00, 0x00, 0xA6, 0x00, 0x9C, 0x16, 0x00, 0x00
.byte 0xA7, 0x00, 0xD4, 0x16, 0x00, 0x00, 0xA8, 0x00, 0xE9, 0x16, 0x00, 0x00, 0xA9, 0x00, 0xFE, 0x16
.byte 0x00, 0x00, 0xAA, 0x00, 0x13, 0x17, 0x00, 0x00, 0xAB, 0x00, 0xC5, 0x17, 0x00, 0x00, 0xAC, 0x00
.byte 0xDA, 0x17, 0x00, 0x00, 0xAD, 0x00, 0xEF, 0x17, 0x00, 0x00, 0xAE, 0x00, 0x27, 0x18, 0x00, 0x00
.byte 0xAF, 0x00, 0x3C, 0x18, 0x00, 0x00, 0xB0, 0x00, 0x74, 0x18, 0x00, 0x00, 0xB1, 0x00, 0x89, 0x18
.byte 0x00, 0x00, 0xB2, 0x00, 0xC1, 0x18, 0x00, 0x00, 0xB3, 0x00, 0xD6, 0x18, 0x00, 0x00, 0xB4, 0x00
.byte 0xEB, 0x18, 0x00, 0x00, 0xB5, 0x00, 0x23, 0x19, 0x00, 0x00, 0xB6, 0x00, 0x38, 0x19, 0x00, 0x00
.byte 0xB7, 0x00, 0x4D, 0x19, 0x00, 0x00, 0xB8, 0x00, 0x62, 0x19, 0x00, 0x00, 0xB9, 0x00, 0x77, 0x19
.byte 0x00, 0x00, 0xBA, 0x00, 0xAF, 0x19, 0x00, 0x00, 0xBB, 0x00, 0xC4, 0x19, 0x00, 0x00, 0xBC, 0x00
.byte 0xD9, 0x19, 0x00, 0x00, 0xBD, 0x00, 0xEE, 0x19, 0x00, 0x00, 0xBE, 0x00, 0x03, 0x1A, 0x00, 0x00
.byte 0xBF, 0x00, 0x18, 0x1A, 0x00, 0x00, 0xC0, 0x00, 0x50, 0x1A, 0x00, 0x00, 0xC1, 0x00, 0x65, 0x1A
.byte 0x00, 0x00, 0xC2, 0x00, 0x7A, 0x1A, 0x00, 0x00, 0xC3, 0x00, 0x8F, 0x1A, 0x00, 0x00, 0xC4, 0x00
.byte 0xA4, 0x1A, 0x00, 0x00, 0xC5, 0x00, 0xB9, 0x1A, 0x00, 0x00, 0xC6, 0x00, 0xCE, 0x1A, 0x00, 0x00
.byte 0xC7, 0x00, 0xE3, 0x1A, 0x00, 0x00, 0xC8, 0x00, 0xF8, 0x1A, 0x00, 0x00, 0xC9, 0x00, 0x0D, 0x1B
.byte 0x00, 0x00, 0xCA, 0x00, 0x22, 0x1B, 0x00, 0x00, 0xCB, 0x00, 0x37, 0x1B, 0x00, 0x00, 0xCC, 0x00
.byte 0x4C, 0x1B, 0x00, 0x00, 0xCD, 0x00, 0x61, 0x1B, 0x00, 0x00, 0xCE, 0x00, 0x13, 0x1C, 0x00, 0x00
.byte 0xCF, 0x00, 0x28, 0x1C, 0x00, 0x00, 0xD0, 0x00, 0x3D, 0x1C, 0x00, 0x00, 0xD1, 0x00, 0x52, 0x1C
.byte 0x00, 0x00, 0xD2, 0x00, 0x67, 0x1C, 0x00, 0x00, 0xD3, 0x00, 0x19, 0x1D, 0x00, 0x00, 0xD4, 0x00
.byte 0x2E, 0x1D, 0x00, 0x00, 0xD5, 0x00, 0x43, 0x1D, 0x00, 0x00, 0xD6, 0x00, 0x58, 0x1D, 0x00, 0x00
.byte 0xD7, 0x00, 0x68, 0x1D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x1B, 0x00, 0x00, 0x02, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1B, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x1B, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1B, 0x00
.byte 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x1B, 0x00, 0x00, 0x02, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x1D, 0x04, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x1B, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x05, 0x06, 0x05
.byte 0x09, 0x08, 0x07, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1D, 0x04, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x1B, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA7, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0xC5, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00
.byte 0x5A, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x00, 0x00
.byte 0x81, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x4F, 0x00, 0x00, 0x00
.byte 0x28, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x34, 0x01, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00
.byte 0x78, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00
.byte 0x55, 0x01, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00