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

4120 lines
75 KiB
ArmAsm

.include "asm/macros.inc"
.include "global.inc"
.section .text
.balign 4, 0
thumb_func_start MOD53_021D74E0
MOD53_021D74E0: ; 0x021D74E0
push {r3, r4, r5, r6, lr}
sub sp, #0xc
add r5, r1, #0
ldr r1, [r5]
add r6, r0, #0
cmp r1, #0
beq _021D74F6
cmp r1, #1
bne _021D74F4
b _021D7622
_021D74F4:
b _021D7630
_021D74F6:
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, _021D7638 ; =0xFFFFE0FF
and r1, r0
str r1, [r2]
ldr r2, _021D763C ; =0x04001000
ldr r1, [r2]
and r0, r1
str r0, [r2]
mov r0, #3
mov r1, #0x27
lsl r2, r2, #6
bl FUN_0201681C
ldr r1, _021D7640 ; =0x0000940C
add r0, r6, #0
mov r2, #0x27
bl FUN_02006268
ldr r2, _021D7640 ; =0x0000940C
mov r1, #0
add r4, r0, #0
bl memset
mov r0, #0x27
bl FUN_02016B94
str r0, [r4]
mov r0, #0x27
bl FUN_0200AA80
str r0, [r4, #0xc]
ldr r2, _021D7644 ; =0x00000176
mov r0, #0
mov r1, #0x1a
mov r3, #0x27
bl FUN_0200A86C
str r0, [r4, #0x10]
mov r0, #4
mov r1, #8
bl FUN_0201669C
bl MOD53_021D78D0
ldr r0, [r4]
bl MOD53_021D78F0
mov r0, #0
add r1, r0, #0
bl FUN_0200E3A0
mov r0, #1
mov r1, #0
bl FUN_0200E3A0
mov r0, #0x10
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
mov r0, #0x27
str r0, [sp, #8]
mov r0, #0
mov r1, #0x11
add r2, r1, #0
add r3, r0, #0
bl FUN_0200E1D0
add r0, r6, #0
bl FUN_0200628C
str r0, [r4, #8]
add r0, r4, #0
bl MOD53_021D7B60
bl FUN_0201CC08
mov r0, #2
bl FUN_0201CC24
ldr r0, _021D7648 ; =MOD53_021D78A8
ldr r1, [r4]
bl FUN_02015F10
add r0, r4, #0
bl MOD53_021D79F8
bl MOD53_021D7C54
add r0, r4, #0
bl MOD53_021D7C84
add r0, r4, #0
bl MOD53_021D7E08
add r0, r4, #0
add r1, r6, #0
bl MOD53_021D7FDC
mov r1, #0
mov r0, #0x34
add r2, r1, #0
bl FUN_0200433C
ldr r2, _021D764C ; =0x04000304
ldr r0, _021D7650 ; =0xFFFF7FFF
ldrh r1, [r2]
and r0, r1
strh r0, [r2]
add r0, r4, #0
bl FUN_02083D48
mov r0, #0
mov r1, #1
bl FUN_020334E8
bl FUN_02031190
cmp r0, #0
bne _021D7602
mov r0, #3
bl FUN_02032B6C
_021D7602:
bl FUN_02033E74
bl FUN_02031190
cmp r0, #0
bne _021D761A
mov r0, #1
bl FUN_02052B74
mov r0, #1
bl FUN_0202EEB0
_021D761A:
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021D7630
_021D7622:
bl FUN_02006278
mov r0, #0
str r0, [r5]
add sp, #0xc
mov r0, #1
pop {r3, r4, r5, r6, pc}
_021D7630:
mov r0, #0
add sp, #0xc
pop {r3, r4, r5, r6, pc}
nop
_021D7638: .word 0xFFFFE0FF
_021D763C: .word 0x04001000
_021D7640: .word 0x0000940C
_021D7644: .word 0x00000176
_021D7648: .word MOD53_021D78A8
_021D764C: .word 0x04000304
_021D7650: .word 0xFFFF7FFF
thumb_func_end MOD53_021D74E0
thumb_func_start MOD53_021D7654
MOD53_021D7654: ; 0x021D7654
push {r3, r4, r5, lr}
add r5, r1, #0
bl FUN_02006278
add r4, r0, #0
bl FUN_02031190
cmp r0, #0
bne _021D767A
ldr r0, _021D7750 ; =0x000093B4
ldr r0, [r4, r0]
cmp r0, #0
beq _021D767A
bl FUN_0202CB8C
ldr r1, _021D7750 ; =0x000093B4
ldr r2, [r4, r1]
and r0, r2
str r0, [r4, r1]
_021D767A:
mov r0, #3
ldr r1, [r5]
lsl r0, r0, #8
str r1, [r4, r0]
ldr r1, [r5]
add r0, r4, #0
bl MOD53_021D93E8
ldr r1, [r5]
cmp r1, #3
bhi _021D7744
add r0, r1, r1
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021D769C: ; jump table
.short _021D76A4 - _021D769C - 2 ; case 0
.short _021D76D2 - _021D769C - 2 ; case 1
.short _021D7718 - _021D769C - 2 ; case 2
.short _021D7738 - _021D769C - 2 ; case 3
_021D76A4:
bl FUN_0200E308
cmp r0, #0
beq _021D7744
bl FUN_02031190
cmp r0, #0
beq _021D76CC
bl MOD53_021D9160
cmp r0, #2
blt _021D7744
mov r1, #0
mov r0, #0x80
add r2, r1, #0
bl FUN_02030ADC
mov r0, #1
str r0, [r5]
b _021D7744
_021D76CC:
mov r0, #1
str r0, [r5]
b _021D7744
_021D76D2:
mov r0, #0xc1
lsl r0, r0, #2
ldr r0, [r4, r0]
lsl r2, r0, #3
ldr r0, _021D7754 ; =0x021D98A0
ldr r2, [r0, r2]
cmp r2, #0
beq _021D76E8
add r0, r4, #0
blx r2
str r0, [r5]
_021D76E8:
mov r0, #0x9e
lsl r0, r0, #2
ldr r2, _021D7758 ; =0x000E0D0F
add r0, r4, r0
mov r1, #0
add r3, r4, #0
bl MOD53_021D9014
bl FUN_02031190
cmp r0, #0
bne _021D770E
add r0, r4, #0
bl MOD53_021D928C
ldr r1, [r5]
cmp r1, #1
bne _021D770E
str r0, [r5]
_021D770E:
ldr r0, _021D775C ; =0x00004374
add r0, r4, r0
bl MOD53_021D8FB8
b _021D7744
_021D7718:
mov r0, #0xc1
lsl r0, r0, #2
ldr r0, [r4, r0]
lsl r3, r0, #3
ldr r0, _021D7754 ; =0x021D98A0
ldr r2, [r0, r3]
cmp r2, #0
beq _021D7744
ldr r0, _021D7760 ; =0x021D98A4
ldr r0, [r0, r3]
cmp r0, #0
beq _021D7744
add r0, r4, #0
blx r2
str r0, [r5]
b _021D7744
_021D7738:
bl FUN_0200E308
cmp r0, #0
beq _021D7744
mov r0, #1
pop {r3, r4, r5, pc}
_021D7744:
ldr r0, [r4, #0x34]
bl FUN_0201FDEC
mov r0, #0
pop {r3, r4, r5, pc}
nop
_021D7750: .word 0x000093B4
_021D7754: .word 0x021D98A0
_021D7758: .word 0x000E0D0F
_021D775C: .word 0x00004374
_021D7760: .word 0x021D98A4
thumb_func_end MOD53_021D7654
thumb_func_start MOD53_021D7764
MOD53_021D7764: ; 0x021D7764
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r7, r1, #0
bl FUN_02006278
add r6, r0, #0
add r0, r5, #0
bl FUN_0200628C
add r4, r0, #0
ldr r0, [r7]
cmp r0, #3
bls _021D7780
b _021D789E
_021D7780:
add r1, r0, r0
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021D778C: ; jump table
.short _021D7794 - _021D778C - 2 ; case 0
.short _021D7820 - _021D778C - 2 ; case 1
.short _021D784E - _021D778C - 2 ; case 2
.short _021D786E - _021D778C - 2 ; case 3
_021D7794:
mov r0, #0x27
bl FUN_020294A8
add r1, r0, #0
ldr r0, [r4, #4]
mov r2, #4
bl FUN_02028AD4
mov r0, #0
add r1, r0, #0
bl FUN_02015F10
mov r0, #0x17
lsl r0, r0, #4
ldr r0, [r6, r0]
bl FUN_02009C0C
mov r0, #6
lsl r0, r0, #6
ldr r0, [r6, r0]
bl FUN_02009C0C
mov r0, #0x5d
lsl r0, r0, #2
ldr r0, [r6, r0]
bl FUN_02009E04
mov r0, #0x61
lsl r0, r0, #2
ldr r0, [r6, r0]
bl FUN_02009E04
mov r4, #0
add r5, r6, #0
_021D77D8:
mov r0, #0x16
lsl r0, r0, #4
ldr r0, [r5, r0]
bl FUN_02008E2C
add r4, r4, #1
add r5, r5, #4
cmp r4, #4
blt _021D77D8
ldr r0, [r6, #0x34]
bl FUN_0201FD58
bl FUN_02009FA0
bl FUN_0201D12C
bl FUN_0201E08C
add r0, r6, #0
bl MOD53_021D8104
ldr r0, [r6]
bl MOD53_021D7B24
bl FUN_0201CD04
ldr r0, [r6, #0x10]
bl FUN_0200A8B8
ldr r0, [r6, #0xc]
bl FUN_0200AB18
ldr r0, [r7]
add r0, r0, #1
str r0, [r7]
b _021D789E
_021D7820:
mov r0, #1
bl FUN_02032B6C
bl FUN_02031B50
ldr r0, [r4]
bl FUN_02052F8C
ldr r2, _021D78A4 ; =0x04000304
ldrh r1, [r2]
lsr r0, r2, #0xb
orr r0, r1
strh r0, [r2]
mov r0, #0
bl FUN_02052B74
mov r0, #0
bl FUN_0202EEB0
ldr r0, [r7]
add r0, r0, #1
str r0, [r7]
b _021D789E
_021D784E:
mov r1, #0x25
lsl r1, r1, #0xa
ldr r1, [r6, r1]
cmp r1, #0
beq _021D7868
bl FUN_0202CB8C
cmp r0, #1
bne _021D789E
ldr r0, [r7]
add r0, r0, #1
str r0, [r7]
b _021D789E
_021D7868:
add r0, r0, #1
str r0, [r7]
b _021D789E
_021D786E:
mov r0, #2
bl FUN_02032B6C
add r0, r6, #0
bl MOD53_021D7AE8
ldr r0, [r6, #8]
bl FreeToHeap
add r0, r5, #0
bl FUN_0200627C
mov r0, #0
add r1, r0, #0
bl FUN_02015F10
mov r0, #0x27
bl FUN_020168D0
mov r0, #2
bl FUN_02032B6C
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021D789E:
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
nop
_021D78A4: .word 0x04000304
thumb_func_end MOD53_021D7764
thumb_func_start MOD53_021D78A8
MOD53_021D78A8: ; 0x021D78A8
push {r4, lr}
add r4, r0, #0
bl FUN_0201C30C
bl FUN_02009F80
add r0, r4, #0
bl FUN_0201AB60
ldr r3, _021D78C8 ; =0x027E0000
ldr r1, _021D78CC ; =0x00003FF8
mov r0, #1
ldr r2, [r3, r1]
orr r0, r2
str r0, [r3, r1]
pop {r4, pc}
.align 2, 0
_021D78C8: .word 0x027E0000
_021D78CC: .word 0x00003FF8
thumb_func_end MOD53_021D78A8
thumb_func_start MOD53_021D78D0
MOD53_021D78D0: ; 0x021D78D0
push {r4, lr}
sub sp, #0x28
ldr r4, _021D78EC ; =0x021D95A4
add r3, sp, #0
mov r2, #5
_021D78DA:
ldmia r4!, {r0, r1}
stmia r3!, {r0, r1}
sub r2, r2, #1
bne _021D78DA
add r0, sp, #0
bl FUN_0201E66C
add sp, #0x28
pop {r4, pc}
.align 2, 0
_021D78EC: .word 0x021D95A4
thumb_func_end MOD53_021D78D0
thumb_func_start MOD53_021D78F0
MOD53_021D78F0: ; 0x021D78F0
push {r4, r5, lr}
sub sp, #0x9c
ldr r5, _021D79E0 ; =0x021D94F8
add r3, sp, #0x8c
add r4, r0, #0
add r2, r3, #0
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
add r0, r2, #0
bl FUN_02016BBC
ldr r5, _021D79E4 ; =0x021D9518
add r3, sp, #0x70
ldmia r5!, {r0, r1}
add r2, r3, #0
stmia r3!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
ldr r0, [r5]
mov r1, #0
str r0, [r3]
add r0, r4, #0
add r3, r1, #0
bl FUN_02016C18
add r0, r4, #0
mov r1, #0
bl FUN_02018744
ldr r5, _021D79E8 ; =0x021D9550
add r3, sp, #0x54
ldmia r5!, {r0, r1}
add r2, r3, #0
stmia r3!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
ldr r0, [r5]
mov r1, #1
str r0, [r3]
add r0, r4, #0
mov r3, #0
bl FUN_02016C18
add r0, r4, #0
mov r1, #1
bl FUN_02018744
ldr r5, _021D79EC ; =0x021D956C
add r3, sp, #0x38
ldmia r5!, {r0, r1}
add r2, r3, #0
stmia r3!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
ldr r0, [r5]
mov r1, #2
str r0, [r3]
add r0, r4, #0
mov r3, #0
bl FUN_02016C18
ldr r5, _021D79F0 ; =0x021D9588
add r3, sp, #0x1c
ldmia r5!, {r0, r1}
add r2, r3, #0
stmia r3!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
ldr r0, [r5]
mov r1, #4
str r0, [r3]
add r0, r4, #0
mov r3, #0
bl FUN_02016C18
add r0, r4, #0
mov r1, #4
bl FUN_02018744
ldr r5, _021D79F4 ; =0x021D9534
add r3, sp, #0
ldmia r5!, {r0, r1}
add r2, r3, #0
stmia r3!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
ldr r0, [r5]
str r0, [r3]
add r0, r4, #0
mov r1, #5
mov r3, #0
bl FUN_02016C18
mov r0, #0
mov r1, #0x20
add r2, r0, #0
mov r3, #0x27
bl FUN_02017F18
mov r0, #4
mov r1, #0x20
mov r2, #0
mov r3, #0x27
bl FUN_02017F18
add sp, #0x9c
pop {r4, r5, pc}
nop
_021D79E0: .word 0x021D94F8
_021D79E4: .word 0x021D9518
_021D79E8: .word 0x021D9550
_021D79EC: .word 0x021D956C
_021D79F0: .word 0x021D9588
_021D79F4: .word 0x021D9534
thumb_func_end MOD53_021D78F0
thumb_func_start MOD53_021D79F8
MOD53_021D79F8: ; 0x021D79F8
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
add r7, r0, #0
mov r0, #0
str r0, [sp]
ldr r0, _021D7ACC ; =0x0000438A
add r6, r7, #0
add r4, r7, r0
mov r0, #0x38
add r5, r7, #0
str r0, [sp, #4]
_021D7A0E:
mov r0, #8
mov r1, #0x27
bl FUN_020219F4
str r0, [r6, #0x14]
ldrb r1, [r4]
ldr r0, [sp, #4]
bic r1, r0
strb r1, [r4]
ldr r0, _021D7AD0 ; =0x000043B6
mov r1, #0
strh r1, [r6, r0]
mov r0, #0xcd
lsl r0, r0, #2
str r1, [r5, r0]
add r0, r0, #4
str r1, [r5, r0]
ldr r0, [sp]
add r6, r6, #4
add r0, r0, #1
add r4, #0xa
add r5, #8
str r0, [sp]
cmp r0, #5
blt _021D7A0E
mov r0, #0xa
mov r1, #0x27
bl FUN_020219F4
str r0, [r7, #0x28]
mov r0, #0x50
mov r1, #0x27
bl FUN_020219F4
str r0, [r7, #0x2c]
ldr r0, _021D7AD4 ; =0x00004376
mov r2, #0
strb r2, [r7, r0]
mov r1, #1
add r0, r0, #1
strb r1, [r7, r0]
ldr r0, _021D7AD8 ; =0x000093F4
str r1, [r7, r0]
add r0, r0, #4
str r2, [r7, r0]
mov r0, #0xc6
mov r1, #2
lsl r0, r0, #2
str r1, [r7, r0]
bl FUN_0202CB8C
mov r1, #0xc7
lsl r1, r1, #2
str r0, [r7, r1]
ldr r2, _021D7ADC ; =0x000093FC
mov r3, #0
str r3, [r7, r2]
add r0, r2, #4
str r3, [r7, r0]
add r0, r2, #0
sub r1, #0x18
str r3, [r7, r1]
add r0, #8
str r3, [r7, r0]
add r2, #0xc
str r3, [r7, r2]
bl FUN_02031190
add r0, r7, #0
mov r1, #4
bl MOD53_021D93E0
ldr r0, [r7, #0x10]
ldr r2, [r7, #0x28]
mov r1, #7
bl FUN_0200A8E0
mov r1, #0xf
mov r0, #0x27
lsl r1, r1, #0xa
bl AllocFromHeap
ldr r1, _021D7AE0 ; =0x000043C8
str r0, [r7, r1]
mov r0, #0x27
bl FUN_02014590
ldr r1, _021D7AE4 ; =0x000093F0
str r0, [r7, r1]
mov r0, #0xc5
mov r1, #0
lsl r0, r0, #2
str r1, [r7, r0]
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_021D7ACC: .word 0x0000438A
_021D7AD0: .word 0x000043B6
_021D7AD4: .word 0x00004376
_021D7AD8: .word 0x000093F4
_021D7ADC: .word 0x000093FC
_021D7AE0: .word 0x000043C8
_021D7AE4: .word 0x000093F0
thumb_func_end MOD53_021D79F8
thumb_func_start MOD53_021D7AE8
MOD53_021D7AE8: ; 0x021D7AE8
push {r4, r5, r6, lr}
add r6, r0, #0
ldr r0, _021D7B1C ; =0x000043C8
ldr r0, [r6, r0]
bl FreeToHeap
ldr r0, _021D7B20 ; =0x000093F0
ldr r0, [r6, r0]
bl FUN_020145A8
mov r4, #0
add r5, r6, #0
_021D7B00:
ldr r0, [r5, #0x14]
bl FUN_02021A20
add r4, r4, #1
add r5, r5, #4
cmp r4, #5
blt _021D7B00
ldr r0, [r6, #0x2c]
bl FUN_02021A20
ldr r0, [r6, #0x28]
bl FUN_02021A20
pop {r4, r5, r6, pc}
.align 2, 0
_021D7B1C: .word 0x000043C8
_021D7B20: .word 0x000093F0
thumb_func_end MOD53_021D7AE8
thumb_func_start MOD53_021D7B24
MOD53_021D7B24: ; 0x021D7B24
push {r4, lr}
add r4, r0, #0
mov r1, #5
bl FUN_020178A0
add r0, r4, #0
mov r1, #4
bl FUN_020178A0
add r0, r4, #0
mov r1, #3
bl FUN_020178A0
add r0, r4, #0
mov r1, #2
bl FUN_020178A0
add r0, r4, #0
mov r1, #1
bl FUN_020178A0
add r0, r4, #0
mov r1, #0
bl FUN_020178A0
add r0, r4, #0
bl FreeToHeap
pop {r4, pc}
.align 2, 0
thumb_func_end MOD53_021D7B24
thumb_func_start MOD53_021D7B60
MOD53_021D7B60: ; 0x021D7B60
push {r3, r4, r5, lr}
sub sp, #0x10
add r5, r0, #0
ldr r4, [r5]
mov r0, #0x40
mov r1, #0
str r0, [sp]
mov r0, #0x27
str r0, [sp, #4]
mov r0, #0x4e
add r2, r1, #0
add r3, r1, #0
bl FUN_02006930
mov r0, #0x40
str r0, [sp]
mov r0, #0x27
str r0, [sp, #4]
mov r0, #0x4e
mov r1, #1
mov r2, #4
mov r3, #0
bl FUN_02006930
mov r1, #0x1a
mov r0, #0
lsl r1, r1, #4
mov r2, #0x27
bl FUN_02002EEC
mov r1, #0x1a
mov r0, #4
lsl r1, r1, #4
mov r2, #0x27
bl FUN_02002EEC
mov r0, #0
str r0, [sp]
mov r0, #2
lsl r0, r0, #0xc
str r0, [sp, #4]
mov r0, #1
str r0, [sp, #8]
mov r0, #0x27
mov r1, #2
str r0, [sp, #0xc]
mov r0, #0x4e
add r2, r4, #0
add r3, r1, #0
bl FUN_0200687C
mov r0, #0
str r0, [sp]
mov r0, #6
lsl r0, r0, #8
str r0, [sp, #4]
mov r0, #1
str r0, [sp, #8]
mov r0, #0x27
str r0, [sp, #0xc]
mov r0, #0x4e
mov r1, #4
add r2, r4, #0
mov r3, #2
bl FUN_020068C8
mov r0, #0
str r0, [sp]
mov r0, #2
lsl r0, r0, #0xc
str r0, [sp, #4]
mov r0, #1
str r0, [sp, #8]
mov r0, #0x27
str r0, [sp, #0xc]
mov r0, #0x4e
mov r1, #3
add r2, r4, #0
mov r3, #5
bl FUN_0200687C
mov r0, #0
str r0, [sp]
mov r0, #6
lsl r0, r0, #8
str r0, [sp, #4]
mov r0, #1
str r0, [sp, #8]
mov r0, #0x27
mov r1, #5
str r0, [sp, #0xc]
mov r0, #0x4e
add r2, r4, #0
add r3, r1, #0
bl FUN_020068C8
ldr r0, [r5, #8]
ldr r0, [r0, #8]
bl FUN_02025084
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp]
mov r0, #0x27
str r0, [sp, #4]
add r0, r4, #0
mov r1, #0
mov r2, #1
mov r3, #0xa
bl FUN_0200CD68
mov r1, #0
str r1, [sp]
mov r0, #0x27
str r0, [sp, #4]
add r0, r4, #0
mov r2, #0x1f
mov r3, #0xb
bl FUN_0200CB00
add sp, #0x10
pop {r3, r4, r5, pc}
thumb_func_end MOD53_021D7B60
thumb_func_start MOD53_021D7C54
MOD53_021D7C54: ; 0x021D7C54
push {r4, lr}
sub sp, #0x10
ldr r4, _021D7C80 ; =0x021D9508
add r3, sp, #0
add r2, r3, #0
ldmia r4!, {r0, r1}
stmia r3!, {r0, r1}
ldmia r4!, {r0, r1}
stmia r3!, {r0, r1}
add r0, r2, #0
bl FUN_0201D040
mov r0, #0x14
mov r1, #0x27
bl FUN_0201E00C
bl FUN_0201D168
bl FUN_0201E0BC
add sp, #0x10
pop {r4, pc}
.align 2, 0
_021D7C80: .word 0x021D9508
thumb_func_end MOD53_021D7C54
thumb_func_start MOD53_021D7C84
MOD53_021D7C84: ; 0x021D7C84
push {r4, r5, r6, r7, lr}
sub sp, #0x14
add r5, r0, #0
bl FUN_020B0FC0
mov r0, #0
str r0, [sp]
mov r1, #0x7e
str r1, [sp, #4]
str r0, [sp, #8]
mov r3, #0x20
str r3, [sp, #0xc]
mov r2, #0x27
str r2, [sp, #0x10]
add r2, r0, #0
bl FUN_02009EAC
add r1, r5, #0
mov r0, #0x35
add r1, #0x38
mov r2, #0x27
bl FUN_02008C9C
str r0, [r5, #0x34]
add r0, r5, #0
mov r2, #1
add r0, #0x38
mov r1, #0
lsl r2, r2, #0x14
bl FUN_02008D24
mov r7, #0x16
mov r6, #0
add r4, r5, #0
lsl r7, r7, #4
_021D7CCA:
mov r0, #2
add r1, r6, #0
mov r2, #0x27
bl FUN_02008DEC
str r0, [r4, r7]
add r6, r6, #1
add r4, r4, #4
cmp r6, #4
blt _021D7CCA
mov r0, #0
str r0, [sp]
mov r3, #1
str r3, [sp, #4]
mov r0, #0x27
str r0, [sp, #8]
mov r0, #0x16
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #0x4e
mov r2, #6
bl FUN_02008F34
mov r1, #0x17
lsl r1, r1, #4
str r0, [r5, r1]
mov r2, #0
str r2, [sp]
mov r0, #1
str r0, [sp, #4]
mov r0, #7
str r0, [sp, #8]
mov r0, #0x27
sub r1, #0xc
str r0, [sp, #0xc]
ldr r0, [r5, r1]
mov r1, #0x4e
add r3, r2, #0
bl FUN_02008FEC
mov r1, #0x5d
lsl r1, r1, #2
str r0, [r5, r1]
mov r0, #0
str r0, [sp]
mov r0, #2
str r0, [sp, #4]
mov r0, #0x27
sub r1, #0xc
str r0, [sp, #8]
ldr r0, [r5, r1]
mov r1, #0x4e
mov r2, #7
mov r3, #1
bl FUN_020090AC
mov r1, #0x5e
lsl r1, r1, #2
str r0, [r5, r1]
mov r0, #0
str r0, [sp]
mov r0, #3
str r0, [sp, #4]
mov r0, #0x27
sub r1, #0xc
str r0, [sp, #8]
ldr r0, [r5, r1]
mov r1, #0x4e
mov r2, #8
mov r3, #1
bl FUN_020090AC
mov r1, #0x5f
lsl r1, r1, #2
str r0, [r5, r1]
mov r3, #1
str r3, [sp]
mov r0, #2
str r0, [sp, #4]
mov r0, #0x27
sub r1, #0x1c
str r0, [sp, #8]
ldr r0, [r5, r1]
mov r1, #0x4e
mov r2, #6
bl FUN_02008F34
mov r1, #6
lsl r1, r1, #6
str r0, [r5, r1]
mov r0, #1
str r0, [sp]
mov r0, #2
str r0, [sp, #4]
mov r0, #3
str r0, [sp, #8]
mov r0, #0x27
mov r2, #0
sub r1, #0x1c
str r0, [sp, #0xc]
ldr r0, [r5, r1]
mov r1, #0x4e
add r3, r2, #0
bl FUN_02008FEC
mov r1, #0x61
lsl r1, r1, #2
str r0, [r5, r1]
mov r3, #1
str r3, [sp]
mov r0, #2
str r0, [sp, #4]
mov r0, #0x27
sub r1, #0x1c
str r0, [sp, #8]
ldr r0, [r5, r1]
mov r1, #0x4e
mov r2, #7
bl FUN_020090AC
mov r1, #0x62
lsl r1, r1, #2
str r0, [r5, r1]
mov r3, #1
str r3, [sp]
mov r0, #3
str r0, [sp, #4]
mov r0, #0x27
sub r1, #0x1c
str r0, [sp, #8]
ldr r0, [r5, r1]
mov r1, #0x4e
mov r2, #8
bl FUN_020090AC
mov r1, #0x63
lsl r1, r1, #2
str r0, [r5, r1]
sub r1, #0x1c
ldr r0, [r5, r1]
bl FUN_02009A50
mov r0, #6
lsl r0, r0, #6
ldr r0, [r5, r0]
bl FUN_02009A50
mov r0, #0x5d
lsl r0, r0, #2
ldr r0, [r5, r0]
bl FUN_02009CF0
mov r0, #0x61
lsl r0, r0, #2
ldr r0, [r5, r0]
bl FUN_02009CF0
add sp, #0x14
pop {r4, r5, r6, r7, pc}
thumb_func_end MOD53_021D7C84
thumb_func_start MOD53_021D7E08
MOD53_021D7E08: ; 0x021D7E08
push {r4, r5, r6, r7, lr}
sub sp, #0x64
mov r1, #0
add r5, r0, #0
str r1, [sp]
sub r0, r1, #1
str r0, [sp, #4]
str r0, [sp, #8]
str r1, [sp, #0xc]
mov r2, #0x16
str r1, [sp, #0x10]
lsl r2, r2, #4
ldr r0, [r5, r2]
add r3, r1, #0
str r0, [sp, #0x14]
add r0, r2, #4
ldr r0, [r5, r0]
str r0, [sp, #0x18]
add r0, r2, #0
add r0, #8
ldr r0, [r5, r0]
str r0, [sp, #0x1c]
add r0, r2, #0
add r0, #0xc
ldr r0, [r5, r0]
add r2, #0x30
str r0, [sp, #0x20]
str r1, [sp, #0x24]
add r0, r5, r2
add r2, r1, #0
str r1, [sp, #0x28]
bl FUN_02008AA4
mov r1, #1
mov r3, #0x16
str r1, [sp]
sub r0, r1, #2
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0
str r0, [sp, #0xc]
str r0, [sp, #0x10]
lsl r3, r3, #4
ldr r2, [r5, r3]
str r2, [sp, #0x14]
add r2, r3, #4
ldr r2, [r5, r2]
str r2, [sp, #0x18]
add r2, r3, #0
add r2, #8
ldr r2, [r5, r2]
str r2, [sp, #0x1c]
add r2, r3, #0
add r2, #0xc
ldr r2, [r5, r2]
add r3, #0x54
str r2, [sp, #0x20]
str r0, [sp, #0x24]
str r0, [sp, #0x28]
add r0, r5, r3
add r2, r1, #0
add r3, r1, #0
bl FUN_02008AA4
ldr r0, [r5, #0x34]
mov r6, #0
str r0, [sp, #0x34]
mov r0, #0x19
lsl r0, r0, #4
add r0, r5, r0
str r0, [sp, #0x38]
mov r0, #1
lsl r0, r0, #0xc
str r6, [sp, #0x44]
str r0, [sp, #0x48]
str r0, [sp, #0x4c]
str r0, [sp, #0x50]
add r0, sp, #0x34
strh r6, [r0, #0x20]
mov r0, #1
str r0, [sp, #0x58]
str r0, [sp, #0x5c]
mov r0, #0x27
str r0, [sp, #0x60]
mov r0, #0x6d
lsl r0, r0, #2
add r0, r5, r0
mov r7, #0x18
add r4, r5, #0
str r0, [sp, #0x2c]
_021D7EBC:
ldr r0, [sp, #0x2c]
str r0, [sp, #0x38]
lsl r0, r7, #0xc
str r0, [sp, #0x3c]
mov r0, #1
lsl r0, r0, #0x12
str r0, [sp, #0x40]
mov r0, #2
str r0, [sp, #0x5c]
add r0, sp, #0x34
bl FUN_0201FE94
mov r1, #0x76
lsl r1, r1, #2
str r0, [r4, r1]
add r0, r1, #0
ldr r0, [r4, r0]
mov r1, #1
bl FUN_020200BC
mov r0, #0x76
lsl r0, r0, #2
ldr r0, [r4, r0]
add r1, r6, #0
bl FUN_02020130
mov r0, #0x76
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0
bl FUN_020200A0
add r6, r6, #1
add r7, #0x28
add r4, r4, #4
cmp r6, #5
blt _021D7EBC
mov r0, #0x6d
lsl r0, r0, #2
add r0, r5, r0
ldr r6, _021D7FD8 ; =0x021D9600
mov r7, #0
add r4, r5, #0
str r0, [sp, #0x30]
_021D7F14:
ldr r0, [sp, #0x30]
str r0, [sp, #0x38]
ldrh r0, [r6]
lsl r0, r0, #0xc
str r0, [sp, #0x3c]
ldrh r0, [r6, #2]
lsl r0, r0, #0xc
str r0, [sp, #0x40]
add r0, sp, #0x34
bl FUN_0201FE94
mov r1, #0x92
lsl r1, r1, #2
str r0, [r4, r1]
add r0, r1, #0
ldr r0, [r4, r0]
mov r1, #1
bl FUN_020200BC
mov r0, #0x92
lsl r0, r0, #2
ldrh r1, [r6, #4]
ldr r0, [r4, r0]
bl FUN_02020130
cmp r7, #8
blt _021D7F56
mov r0, #0x92
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #2
bl FUN_02020238
_021D7F56:
add r7, r7, #1
add r6, r6, #6
add r4, r4, #4
cmp r7, #0xc
blt _021D7F14
mov r0, #0x92
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #6
bl FUN_02020130
mov r7, #6
mov r6, #0
mov r4, #0x20
lsl r7, r7, #0xe
_021D7F74:
mov r0, #1
lsl r1, r4, #0xc
lsl r0, r0, #0x14
add r0, r1, r0
str r0, [sp, #0x40]
add r0, sp, #0x34
str r7, [sp, #0x3c]
bl FUN_0201FE94
mov r1, #0x21
lsl r1, r1, #4
str r0, [r5, r1]
add r0, r1, #0
ldr r0, [r5, r0]
mov r1, #1
bl FUN_020200BC
mov r0, #0x21
lsl r0, r0, #4
ldr r0, [r5, r0]
add r1, r6, #0
bl FUN_02020130
mov r0, #0x21
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #1
bl FUN_02020310
mov r0, #0x21
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #0
bl FUN_020200A0
add r6, r6, #1
add r4, #0x20
add r5, r5, #4
cmp r6, #5
blt _021D7F74
mov r0, #0x10
mov r1, #1
bl FUN_0201E6E4
mov r0, #0x10
mov r1, #1
bl FUN_0201E74C
add sp, #0x64
pop {r4, r5, r6, r7, pc}
.align 2, 0
_021D7FD8: .word 0x021D9600
thumb_func_end MOD53_021D7E08
thumb_func_start MOD53_021D7FDC
MOD53_021D7FDC: ; 0x021D7FDC
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x18
add r7, r0, #0
mov r0, #1
str r0, [sp]
mov r0, #0x1b
str r0, [sp, #4]
mov r0, #4
str r0, [sp, #8]
mov r0, #0xd
str r0, [sp, #0xc]
mov r0, #0x28
mov r1, #0xb6
str r0, [sp, #0x10]
lsl r1, r1, #2
ldr r0, [r7]
add r1, r7, r1
mov r2, #0
mov r3, #2
bl FUN_02019064
mov r0, #0xb6
lsl r0, r0, #2
add r0, r7, r0
mov r1, #0xf
bl FUN_02019620
mov r0, #2
str r0, [sp]
mov r0, #0x1e
str r0, [sp, #4]
mov r0, #0xf
str r0, [sp, #8]
mov r0, #0
mov r2, #1
str r0, [sp, #0xc]
str r2, [sp, #0x10]
mov r1, #0xb2
lsl r1, r1, #2
ldr r0, [r7]
add r1, r7, r1
add r3, r2, #0
bl FUN_02019064
mov r0, #0xb2
lsl r0, r0, #2
add r0, r7, r0
mov r1, #2
bl FUN_02019620
mov r0, #0x15
str r0, [sp]
mov r0, #6
str r0, [sp, #4]
mov r0, #2
str r0, [sp, #8]
mov r0, #0xd
str r0, [sp, #0xc]
ldr r0, _021D80F8 ; =0x000001C3
mov r1, #0xba
str r0, [sp, #0x10]
lsl r1, r1, #2
ldr r0, [r7]
add r1, r7, r1
mov r2, #1
mov r3, #0x19
bl FUN_02019064
mov r0, #0xba
lsl r0, r0, #2
add r0, r7, r0
mov r1, #0
bl FUN_02019620
ldr r1, [r7, #0x28]
mov r0, #1
mov r2, #0
mov r3, #0x30
bl FUN_02002F40
add r3, r0, #0
mov r1, #0
str r1, [sp]
ldr r0, _021D80FC ; =0x00070100
str r1, [sp, #4]
str r0, [sp, #8]
str r1, [sp, #0xc]
mov r0, #0xba
lsl r0, r0, #2
ldr r2, [r7, #0x28]
add r0, r7, r0
mov r1, #1
add r3, r3, #2
bl FUN_0201BDE0
mov r0, #0
str r0, [sp, #0x14]
mov r0, #0x9e
lsl r0, r0, #2
mov r6, #1
mov r4, #3
add r5, r7, r0
_021D80A8:
lsl r0, r4, #0x18
lsr r0, r0, #0x18
str r0, [sp]
mov r0, #0xa
str r0, [sp, #4]
mov r0, #2
str r0, [sp, #8]
mov r0, #0xd
str r0, [sp, #0xc]
lsl r0, r6, #0x10
lsr r0, r0, #0x10
str r0, [sp, #0x10]
ldr r0, [r7]
add r1, r5, #0
mov r2, #4
mov r3, #5
bl FUN_02019064
add r0, r5, #0
mov r1, #0
bl FUN_02019620
ldr r0, [sp, #0x14]
add r6, #0x14
add r0, r0, #1
add r4, r4, #4
add r5, #0x10
str r0, [sp, #0x14]
cmp r0, #5
blt _021D80A8
mov r0, #0x9e
lsl r0, r0, #2
ldr r2, _021D8100 ; =0x000E0D0F
add r0, r7, r0
mov r1, #0
add r3, r7, #0
bl MOD53_021D9014
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_021D80F8: .word 0x000001C3
_021D80FC: .word 0x00070100
_021D8100: .word 0x000E0D0F
thumb_func_end MOD53_021D7FDC
thumb_func_start MOD53_021D8104
MOD53_021D8104: ; 0x021D8104
push {r4, r5, r6, lr}
add r6, r0, #0
mov r0, #0x9e
lsl r0, r0, #2
mov r4, #0
add r5, r6, r0
_021D8110:
add r0, r5, #0
bl FUN_02019178
add r4, r4, #1
add r5, #0x10
cmp r4, #5
blt _021D8110
mov r0, #0xba
lsl r0, r0, #2
add r0, r6, r0
bl FUN_02019178
mov r0, #0xb2
lsl r0, r0, #2
add r0, r6, r0
bl FUN_02019178
mov r0, #0xb6
lsl r0, r0, #2
add r0, r6, r0
bl FUN_02019178
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_end MOD53_021D8104
thumb_func_start MOD53_021D8140
MOD53_021D8140: ; 0x021D8140
push {r4, r5, lr}
sub sp, #0xc
add r4, r0, #0
add r5, r2, #0
cmp r1, #0
ble _021D815E
lsl r0, r1, #0xc
bl _fflt
add r1, r0, #0
mov r0, #0x3f
lsl r0, r0, #0x18
bl _fadd
b _021D816C
_021D815E:
lsl r0, r1, #0xc
bl _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
bl _fsub
_021D816C:
bl _ffix
sub r5, #8
str r0, [sp]
cmp r5, #0
ble _021D818A
lsl r0, r5, #0xc
bl _fflt
add r1, r0, #0
mov r0, #0x3f
lsl r0, r0, #0x18
bl _fadd
b _021D8198
_021D818A:
lsl r0, r5, #0xc
bl _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
bl _fsub
_021D8198:
bl _ffix
str r0, [sp, #4]
mov r0, #0
str r0, [sp, #8]
add r0, r4, #0
add r1, sp, #0
bl FUN_02020044
add sp, #0xc
pop {r4, r5, pc}
.align 2, 0
thumb_func_end MOD53_021D8140
thumb_func_start MOD53_021D81B0
MOD53_021D81B0: ; 0x021D81B0
push {r4, r5, r6, r7, lr}
sub sp, #0x54
str r0, [sp]
mov r0, #0
str r0, [sp, #4]
ldr r0, _021D83AC ; =0x021D95CC
bl FUN_02020988
mov r1, #0
mvn r1, r1
str r0, [sp, #8]
cmp r0, r1
beq _021D81FE
cmp r0, #0xb
bhi _021D81FE
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021D81DA: ; jump table
.short _021D81F2 - _021D81DA - 2 ; case 0
.short _021D81F2 - _021D81DA - 2 ; case 1
.short _021D81F2 - _021D81DA - 2 ; case 2
.short _021D81F2 - _021D81DA - 2 ; case 3
.short _021D81F2 - _021D81DA - 2 ; case 4
.short _021D81F2 - _021D81DA - 2 ; case 5
.short _021D81F2 - _021D81DA - 2 ; case 6
.short _021D81F2 - _021D81DA - 2 ; case 7
.short _021D821A - _021D81DA - 2 ; case 8
.short _021D82BE - _021D81DA - 2 ; case 9
.short _021D82BE - _021D81DA - 2 ; case 10
.short _021D82BE - _021D81DA - 2 ; case 11
_021D81F2:
ldr r2, _021D83B0 ; =0x00004376
ldr r0, [sp]
ldrb r1, [r0, r2]
ldr r0, [sp, #8]
cmp r1, r0
bne _021D8200
_021D81FE:
b _021D8316
_021D8200:
add r1, r0, #0
ldr r0, [sp]
strb r1, [r0, r2]
mov r1, #0x92
lsl r1, r1, #2
add r0, r0, r1
ldr r1, [sp, #8]
bl MOD53_021D83DC
ldr r0, _021D83B4 ; =0x000005DC
bl FUN_020054C8
b _021D8316
_021D821A:
mov r1, #0xc1
ldr r0, [sp]
lsl r1, r1, #2
ldr r0, [r0, r1]
cmp r0, #4
bne _021D8316
bl FUN_02031190
cmp r0, #0
bne _021D8280
bl FUN_0202CB8C
mov r2, #0xc7
ldr r1, [sp]
lsl r2, r2, #2
ldr r1, [r1, r2]
cmp r1, r0
beq _021D8246
ldr r0, _021D83B8 ; =0x000005F2
bl FUN_020054C8
b _021D8316
_021D8246:
bl FUN_02030F20
bl FUN_02032B6C
ldr r1, _021D83BC ; =0x000093F4
ldr r0, [sp]
mov r2, #2
str r2, [r0, r1]
mov r1, #1
add r2, r1, #0
bl MOD53_021D91C8
ldr r0, [sp]
mov r1, #5
bl MOD53_021D93E0
mov r1, #0x92
ldr r0, [sp]
lsl r1, r1, #2
add r0, r0, r1
mov r1, #1
bl MOD53_021D840C
mov r0, #1
str r0, [sp, #4]
ldr r0, _021D83B4 ; =0x000005DC
bl FUN_020054C8
b _021D8316
_021D8280:
ldr r1, _021D83C0 ; =0x0000438B
ldr r0, [sp]
ldrb r0, [r0, r1]
cmp r0, #2
bne _021D8292
ldr r0, _021D83B8 ; =0x000005F2
bl FUN_020054C8
b _021D8316
_021D8292:
mov r1, #1
ldr r0, [sp]
add r2, r1, #0
bl MOD53_021D91C8
ldr r0, [sp]
mov r1, #5
bl MOD53_021D93E0
mov r1, #0x92
ldr r0, [sp]
lsl r1, r1, #2
add r0, r0, r1
mov r1, #1
bl MOD53_021D840C
mov r0, #1
str r0, [sp, #4]
ldr r0, _021D83B4 ; =0x000005DC
bl FUN_020054C8
b _021D8316
_021D82BE:
ldr r0, [sp, #8]
ldr r5, [sp]
str r0, [sp, #0xc]
sub r0, #9
mov r4, #0
mov r7, #0x1e
mov r6, #0x1d
str r0, [sp, #0xc]
_021D82CE:
ldr r0, [sp, #0xc]
cmp r0, r4
bne _021D82E2
mov r0, #0x9b
lsl r0, r0, #2
ldr r0, [r5, r0]
add r1, r7, #0
bl FUN_02020130
b _021D82EE
_021D82E2:
mov r0, #0x9b
lsl r0, r0, #2
ldr r0, [r5, r0]
add r1, r6, #0
bl FUN_02020130
_021D82EE:
add r4, r4, #1
add r7, r7, #2
add r5, r5, #4
add r6, r6, #2
cmp r4, #3
blt _021D82CE
ldr r2, _021D83C4 ; =0x00004377
ldr r0, [sp]
ldrb r1, [r0, r2]
ldr r0, [sp, #8]
sub r0, #9
str r0, [sp, #8]
cmp r1, r0
beq _021D8316
add r1, r0, #0
ldr r0, [sp]
strb r1, [r0, r2]
ldr r0, _021D83C8 ; =0x000005E5
bl FUN_020054C8
_021D8316:
ldr r0, _021D83CC ; =0x021D94F0
bl FUN_02020968
add r4, r0, #0
bl FUN_02031190
lsl r1, r0, #2
ldr r0, [sp]
add r1, r0, r1
mov r0, #0x76
lsl r0, r0, #2
ldr r0, [r1, r0]
mov r1, #0
bl FUN_020200A0
mov r0, #0
mvn r0, r0
cmp r4, r0
beq _021D836C
bl FUN_02031190
lsl r1, r0, #2
ldr r0, [sp]
ldr r2, _021D83D0 ; =0x021C48F8
add r1, r0, r1
mov r0, #0x76
lsl r0, r0, #2
ldr r0, [r1, r0]
ldrh r1, [r2, #0x1c]
ldrh r2, [r2, #0x1e]
bl MOD53_021D8140
bl FUN_02031190
lsl r1, r0, #2
ldr r0, [sp]
add r1, r0, r1
mov r0, #0x76
lsl r0, r0, #2
ldr r0, [r1, r0]
mov r1, #1
bl FUN_020200A0
_021D836C:
add r0, sp, #0x10
mov r1, #4
mov r2, #0x40
bl FUN_0201CD38
cmp r0, #1
bne _021D83A6
ldr r3, _021D83D4 ; =0x00004378
ldr r0, [sp]
ldr r2, [sp]
sub r4, r3, #2
ldrb r2, [r2, r4]
add r0, r0, r3
sub r4, r3, #1
ldr r3, [sp]
add r1, sp, #0x10
ldrb r3, [r3, r4]
bl MOD53_021D947C
ldr r0, [sp, #4]
cmp r0, #1
bne _021D83A6
ldr r1, _021D83D8 ; =0x00004380
ldr r0, [sp]
ldrb r2, [r0, r1]
mov r0, #0x38
bic r2, r0
ldr r0, [sp]
strb r2, [r0, r1]
_021D83A6:
add sp, #0x54
pop {r4, r5, r6, r7, pc}
nop
_021D83AC: .word 0x021D95CC
_021D83B0: .word 0x00004376
_021D83B4: .word 0x000005DC
_021D83B8: .word 0x000005F2
_021D83BC: .word 0x000093F4
_021D83C0: .word 0x0000438B
_021D83C4: .word 0x00004377
_021D83C8: .word 0x000005E5
_021D83CC: .word 0x021D94F0
_021D83D0: .word 0x021C48F8
_021D83D4: .word 0x00004378
_021D83D8: .word 0x00004380
thumb_func_end MOD53_021D81B0
thumb_func_start MOD53_021D83DC
MOD53_021D83DC: ; 0x021D83DC
push {r3, r4, r5, r6, r7, lr}
ldr r4, _021D8408 ; =0x021D9600
add r5, r0, #0
add r7, r1, #0
mov r6, #0
_021D83E6:
cmp r6, r7
ldr r0, [r5]
bne _021D83F6
ldrh r1, [r4, #4]
add r1, r1, #1
bl FUN_02020130
b _021D83FC
_021D83F6:
ldrh r1, [r4, #4]
bl FUN_02020130
_021D83FC:
add r6, r6, #1
add r4, r4, #6
add r5, r5, #4
cmp r6, #8
blt _021D83E6
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_021D8408: .word 0x021D9600
thumb_func_end MOD53_021D83DC
thumb_func_start MOD53_021D840C
MOD53_021D840C: ; 0x021D840C
push {r3, lr}
cmp r1, #1
ldr r0, [r0, #0x20]
bne _021D841C
mov r1, #0x16
bl FUN_02020130
pop {r3, pc}
_021D841C:
mov r1, #0x15
bl FUN_02020130
pop {r3, pc}
thumb_func_end MOD53_021D840C
thumb_func_start MOD53_021D8424
MOD53_021D8424: ; 0x021D8424
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
bl MOD53_021D81B0
bl FUN_02031190
cmp r0, #0
bne _021D8446
bl MOD53_021D8FF8
cmp r0, #1
beq _021D844C
add r0, r5, #0
bl MOD53_021D90F8
b _021D844C
_021D8446:
add r0, r5, #0
bl MOD53_021D90F8
_021D844C:
add r0, r5, #0
bl MOD53_021D8F50
ldr r2, _021D846C ; =0x00004382
mov r0, #0xb2
lsl r0, r0, #2
add r1, r5, r2
add r2, #0x32
add r0, r5, r0
add r2, r5, r2
mov r3, #1
bl MOD53_021D8E84
add r0, r4, #0
pop {r3, r4, r5, pc}
nop
_021D846C: .word 0x00004382
thumb_func_end MOD53_021D8424
thumb_func_start MOD53_021D8470
MOD53_021D8470: ; 0x021D8470
push {r4, lr}
add r4, r0, #0
bl MOD53_021D8F50
ldr r2, _021D8490 ; =0x00004382
mov r0, #0xb2
lsl r0, r0, #2
add r1, r4, r2
add r2, #0x32
add r0, r4, r0
add r2, r4, r2
mov r3, #0
bl MOD53_021D8E84
pop {r4, pc}
nop
_021D8490: .word 0x00004382
thumb_func_end MOD53_021D8470
thumb_func_start MOD53_021D8494
MOD53_021D8494: ; 0x021D8494
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
bl FUN_02031190
mov r1, #0x32
lsl r1, r1, #4
ldr r1, [r5, r1]
cmp r1, r0
bne _021D84B4
add r0, r5, #0
mov r1, #0xd
mov r2, #0
bl MOD53_021D91C8
b _021D84BE
_021D84B4:
mov r1, #0
add r0, r5, #0
add r2, r1, #0
bl MOD53_021D91C8
_021D84BE:
add r0, r5, #0
mov r1, #2
bl MOD53_021D93E0
ldr r0, _021D84E4 ; =0x000005E4
bl FUN_020054C8
mov r1, #0x1e
add r2, r1, #0
ldr r0, _021D84E8 ; =0x04000050
sub r2, #0x24
bl G2x_SetBlendBrightness_
add r0, r5, #0
bl MOD53_021D8470
add r0, r4, #0
pop {r3, r4, r5, pc}
nop
_021D84E4: .word 0x000005E4
_021D84E8: .word 0x04000050
thumb_func_end MOD53_021D8494
thumb_func_start MOD53_021D84EC
MOD53_021D84EC: ; 0x021D84EC
push {r4, lr}
add r4, r1, #0
bl MOD53_021D8470
add r0, r4, #0
pop {r4, pc}
thumb_func_end MOD53_021D84EC
thumb_func_start MOD53_021D84F8
MOD53_021D84F8: ; 0x021D84F8
push {r3, r4, r5, lr}
add r4, r1, #0
ldr r1, _021D8524 ; =0x04000050
mov r2, #0
strh r2, [r1]
add r5, r0, #0
mov r1, #1
bl MOD53_021D926C
add r0, r5, #0
mov r1, #4
bl MOD53_021D93E0
add r0, r5, #0
bl MOD53_021D8470
ldr r0, _021D8528 ; =0x00009404
mov r1, #0
str r1, [r5, r0]
add r0, r4, #0
pop {r3, r4, r5, pc}
nop
_021D8524: .word 0x04000050
_021D8528: .word 0x00009404
thumb_func_end MOD53_021D84F8
thumb_func_start MOD53_021D852C
MOD53_021D852C: ; 0x021D852C
push {r4, r5, lr}
sub sp, #0x14
add r5, r0, #0
ldr r0, [r5, #0x30]
add r4, r1, #0
bl MOD53_021D923C
cmp r0, #0
beq _021D8570
ldr r0, [r5]
mov r1, #0x19
str r0, [sp]
mov r0, #0
str r0, [sp, #4]
mov r0, #0xb4
str r0, [sp, #8]
mov r0, #8
str r0, [sp, #0xc]
add r0, sp, #0
strb r1, [r0, #0x10]
mov r1, #6
strb r1, [r0, #0x11]
add r0, r5, #0
add r1, sp, #0
bl MOD53_021D941C
cmp r0, #0
bne _021D8568
bl ErrorHandling
_021D8568:
add r0, r5, #0
mov r1, #6
bl MOD53_021D93E0
_021D8570:
add r0, r5, #0
bl MOD53_021D8470
add r0, r4, #0
add sp, #0x14
pop {r4, r5, pc}
thumb_func_end MOD53_021D852C
thumb_func_start MOD53_021D857C
MOD53_021D857C: ; 0x021D857C
push {r3, r4, r5, r6, lr}
sub sp, #4
add r4, r1, #0
add r5, r0, #0
ldr r1, _021D86C8 ; =0x00004380
mov r0, #0x38
ldrb r2, [r5, r1]
bic r2, r0
strb r2, [r5, r1]
add r1, #0xb
ldrb r0, [r5, r1]
cmp r0, #2
bne _021D85BA
bl FUN_02031190
cmp r0, #0
beq _021D85BA
add r0, r5, #0
bl MOD53_021D8470
add r0, r5, #0
bl MOD53_021D9460
cmp r0, #0
beq _021D85B4
ldr r0, _021D86CC ; =0x000005F2
bl FUN_020054C8
_021D85B4:
add sp, #4
add r0, r4, #0
pop {r3, r4, r5, r6, pc}
_021D85BA:
bl FUN_02031190
cmp r0, #0
bne _021D85D6
ldr r0, _021D86D0 ; =0x000093B4
ldr r0, [r5, r0]
cmp r0, #0
beq _021D85D6
add r0, r5, #0
bl MOD53_021D8470
add sp, #4
add r0, r4, #0
pop {r3, r4, r5, r6, pc}
_021D85D6:
bl MOD53_021D9160
add r6, r0, #0
bl FUN_02030F20
cmp r6, r0
beq _021D85F0
add r0, r5, #0
bl MOD53_021D8470
add sp, #4
add r0, r4, #0
pop {r3, r4, r5, r6, pc}
_021D85F0:
ldr r0, _021D86D4 ; =0x000093F0
ldr r0, [r5, r0]
bl FUN_0201466C
cmp r0, #1
beq _021D8602
cmp r0, #2
beq _021D8672
b _021D86BA
_021D8602:
bl FUN_02031190
cmp r0, #0
bne _021D861E
add r0, r5, #0
mov r1, #0xd
bl MOD53_021D93E0
add r0, r5, #0
mov r1, #4
mov r2, #1
bl MOD53_021D91C8
b _021D8660
_021D861E:
add r0, sp, #0
mov r1, #0
mov r2, #4
bl MI_CpuFill8
mov r1, #0
add r0, sp, #0
strb r1, [r0, #2]
bl FUN_02031190
add r1, sp, #0
strb r0, [r1]
ldr r0, _021D86D8 ; =0x000093BC
mov r1, #1
strb r1, [r5, r0]
mov r1, #0
sub r0, r0, #2
strh r1, [r5, r0]
add r0, r5, #0
mov r1, #7
bl MOD53_021D93E0
mov r0, #0x7e
add r1, sp, #0
mov r2, #4
bl FUN_02030ADC
mov r0, #0xb6
lsl r0, r0, #2
add r0, r5, r0
mov r1, #1
bl FUN_0200D0E0
_021D8660:
add r0, r5, #0
bl MOD53_021D9440
mov r0, #0xb2
lsl r0, r0, #2
add r0, r5, r0
bl FUN_020191D0
b _021D86BA
_021D8672:
add r0, r5, #0
mov r1, #4
bl MOD53_021D93E0
mov r0, #0x92
lsl r0, r0, #2
add r0, r5, r0
mov r1, #0
bl MOD53_021D840C
mov r0, #0xb6
lsl r0, r0, #2
add r0, r5, r0
mov r1, #1
bl FUN_0200D0E0
add r0, r5, #0
bl MOD53_021D9440
mov r0, #0xb2
lsl r0, r0, #2
add r0, r5, r0
bl FUN_020191D0
bl FUN_02031190
cmp r0, #0
bne _021D86BA
bl FUN_02030F20
add r0, r0, #1
bl FUN_02032B6C
ldr r0, _021D86DC ; =0x000093F4
mov r1, #1
str r1, [r5, r0]
_021D86BA:
add r0, r5, #0
bl MOD53_021D8470
add r0, r4, #0
add sp, #4
pop {r3, r4, r5, r6, pc}
nop
_021D86C8: .word 0x00004380
_021D86CC: .word 0x000005F2
_021D86D0: .word 0x000093B4
_021D86D4: .word 0x000093F0
_021D86D8: .word 0x000093BC
_021D86DC: .word 0x000093F4
thumb_func_end MOD53_021D857C
thumb_func_start MOD53_021D86E0
MOD53_021D86E0: ; 0x021D86E0
push {r4, lr}
ldr r2, _021D86FC ; =0x00004380
add r4, r1, #0
ldrb r3, [r0, r2]
mov r1, #0x38
bic r3, r1
strb r3, [r0, r2]
ldr r1, _021D8700 ; =0x000093BA
mov r2, #0
strh r2, [r0, r1]
bl MOD53_021D8470
add r0, r4, #0
pop {r4, pc}
.align 2, 0
_021D86FC: .word 0x00004380
_021D8700: .word 0x000093BA
thumb_func_end MOD53_021D86E0
thumb_func_start MOD53_021D8704
MOD53_021D8704: ; 0x021D8704
push {r3, r4, r5, lr}
add r4, r1, #0
add r5, r0, #0
ldr r1, _021D8790 ; =0x00004380
mov r0, #0x38
ldrb r2, [r5, r1]
bic r2, r0
strb r2, [r5, r1]
bl FUN_02030F20
ldr r1, _021D8794 ; =0x000093B8
ldrh r1, [r5, r1]
cmp r1, r0
bne _021D872C
bl MOD53_021D9160
ldr r1, _021D8794 ; =0x000093B8
ldrh r2, [r5, r1]
cmp r2, r0
beq _021D8744
_021D872C:
ldr r0, _021D8798 ; =0x000093BA
mov r1, #0
strh r1, [r5, r0]
add r0, r5, #0
mov r1, #9
bl MOD53_021D93E0
add r0, r5, #0
bl MOD53_021D8470
add r0, r4, #0
pop {r3, r4, r5, pc}
_021D8744:
add r0, r1, #2
ldrsh r0, [r5, r0]
add r2, r0, #1
add r0, r1, #2
strh r2, [r5, r0]
ldrsh r0, [r5, r0]
cmp r0, #0x1e
ble _021D8784
add r0, sp, #0
mov r1, #0
mov r2, #4
bl MI_CpuFill8
mov r1, #1
add r0, sp, #0
strb r1, [r0, #2]
bl FUN_02031190
add r1, sp, #0
strb r0, [r1]
mov r0, #0x7e
add r1, sp, #0
mov r2, #4
bl FUN_02030ADC
ldr r0, _021D8798 ; =0x000093BA
mov r1, #0
strh r1, [r5, r0]
add r0, r5, #0
mov r1, #0xa
bl MOD53_021D93E0
_021D8784:
add r0, r5, #0
bl MOD53_021D8470
add r0, r4, #0
pop {r3, r4, r5, pc}
nop
_021D8790: .word 0x00004380
_021D8794: .word 0x000093B8
_021D8798: .word 0x000093BA
thumb_func_end MOD53_021D8704
thumb_func_start MOD53_021D879C
MOD53_021D879C: ; 0x021D879C
push {r3, r4, r5, lr}
ldr r2, _021D87D0 ; =0x00004380
add r5, r0, #0
ldrb r3, [r5, r2]
add r4, r1, #0
mov r1, #0x38
bic r3, r1
strb r3, [r5, r2]
ldr r1, _021D87D4 ; =0x000093BC
mov r2, #0
strb r2, [r5, r1]
mov r1, #4
bl MOD53_021D93E0
mov r0, #0x92
lsl r0, r0, #2
add r0, r5, r0
mov r1, #0
bl MOD53_021D840C
add r0, r5, #0
bl MOD53_021D8470
add r0, r4, #0
pop {r3, r4, r5, pc}
nop
_021D87D0: .word 0x00004380
_021D87D4: .word 0x000093BC
thumb_func_end MOD53_021D879C
thumb_func_start MOD53_021D87D8
MOD53_021D87D8: ; 0x021D87D8
push {r3, r4, r5, lr}
add r4, r1, #0
add r5, r0, #0
mov r1, #6
mov r2, #1
bl MOD53_021D91C8
add r0, r5, #0
mov r1, #0xb
bl MOD53_021D93E0
add r0, r5, #0
bl MOD53_021D8470
add r0, r4, #0
pop {r3, r4, r5, pc}
thumb_func_end MOD53_021D87D8
thumb_func_start MOD53_021D87F8
MOD53_021D87F8: ; 0x021D87F8
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r0, [r5, #0x30]
add r4, r1, #0
bl MOD53_021D923C
cmp r0, #0
beq _021D8818
mov r0, #0x31
mov r1, #0
lsl r0, r0, #4
str r1, [r5, r0]
add r0, r5, #0
mov r1, #0xc
bl MOD53_021D93E0
_021D8818:
add r0, r5, #0
bl MOD53_021D8470
add r0, r4, #0
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_end MOD53_021D87F8
thumb_func_start MOD53_021D8824
MOD53_021D8824: ; 0x021D8824
push {r4, r5, lr}
sub sp, #0xc
add r5, r0, #0
mov r0, #0x31
lsl r0, r0, #4
add r4, r1, #0
ldr r1, [r5, r0]
add r1, r1, #1
str r1, [r5, r0]
ldr r0, [r5, r0]
cmp r0, #0x3c
ble _021D8854
mov r1, #0x10
str r1, [sp]
mov r0, #1
str r0, [sp, #4]
mov r0, #0x27
str r0, [sp, #8]
mov r0, #0
add r2, r1, #0
add r3, r0, #0
bl FUN_0200E1D0
mov r4, #3
_021D8854:
add r0, r5, #0
bl MOD53_021D8470
add r0, r4, #0
add sp, #0xc
pop {r4, r5, pc}
thumb_func_end MOD53_021D8824
thumb_func_start MOD53_021D8860
MOD53_021D8860: ; 0x021D8860
push {r4, r5, lr}
sub sp, #0x14
add r5, r0, #0
ldr r0, [r5, #0x30]
add r4, r1, #0
bl MOD53_021D923C
cmp r0, #0
beq _021D88A4
ldr r0, [r5]
mov r1, #0x19
str r0, [sp]
mov r0, #0
str r0, [sp, #4]
mov r0, #0xb4
str r0, [sp, #8]
mov r0, #8
str r0, [sp, #0xc]
add r0, sp, #0
strb r1, [r0, #0x10]
mov r1, #6
strb r1, [r0, #0x11]
add r0, r5, #0
add r1, sp, #0
bl MOD53_021D941C
cmp r0, #0
bne _021D889C
bl ErrorHandling
_021D889C:
add r0, r5, #0
mov r1, #0xe
bl MOD53_021D93E0
_021D88A4:
add r0, r5, #0
bl MOD53_021D8470
add r0, r4, #0
add sp, #0x14
pop {r4, r5, pc}
thumb_func_end MOD53_021D8860
thumb_func_start MOD53_021D88B0
MOD53_021D88B0: ; 0x021D88B0
push {r4, r5, r6, lr}
add r5, r0, #0
ldr r0, _021D8960 ; =0x000093F0
add r6, r1, #0
ldr r0, [r5, r0]
bl FUN_0201466C
add r4, r0, #0
bl MOD53_021D9160
mov r1, #0xc6
lsl r1, r1, #2
ldr r1, [r5, r1]
cmp r1, r0
bne _021D88D6
ldr r0, _021D8964 ; =0x000093B4
ldr r0, [r5, r0]
cmp r0, #0
beq _021D88E0
_021D88D6:
add r0, r5, #0
bl MOD53_021D8470
add r0, r6, #0
pop {r4, r5, r6, pc}
_021D88E0:
cmp r4, #1
beq _021D88EA
cmp r4, #2
beq _021D8916
b _021D8954
_021D88EA:
add r0, r5, #0
mov r1, #0xf
bl MOD53_021D93E0
mov r1, #0
mov r0, #0x7f
add r2, r1, #0
bl FUN_02030BC4
mov r0, #0
bl FUN_0202DFA4
add r2, r0, #0
ldr r0, [r5, #0xc]
mov r1, #0
bl FUN_0200ABC0
add r0, r5, #0
mov r6, #2
bl MOD53_021D9440
b _021D8954
_021D8916:
add r0, r5, #0
mov r1, #4
bl MOD53_021D93E0
mov r0, #0x92
lsl r0, r0, #2
add r0, r5, r0
mov r1, #0
bl MOD53_021D840C
mov r0, #0xb6
lsl r0, r0, #2
add r0, r5, r0
mov r1, #1
bl FUN_0200D0E0
add r0, r5, #0
bl MOD53_021D9440
bl FUN_02031190
cmp r0, #0
bne _021D8954
bl FUN_02030F20
add r0, r0, #1
bl FUN_02032B6C
ldr r0, _021D8968 ; =0x000093F4
mov r1, #1
str r1, [r5, r0]
_021D8954:
add r0, r5, #0
bl MOD53_021D8470
add r0, r6, #0
pop {r4, r5, r6, pc}
nop
_021D8960: .word 0x000093F0
_021D8964: .word 0x000093B4
_021D8968: .word 0x000093F4
thumb_func_end MOD53_021D88B0
thumb_func_start MOD53_021D896C
MOD53_021D896C: ; 0x021D896C
push {r3, r4, r5, lr}
add r5, r0, #0
mov r0, #0
add r4, r1, #0
bl FUN_0202DFA4
add r2, r0, #0
ldr r0, [r5, #0xc]
mov r1, #0
bl FUN_0200ABC0
add r0, r5, #0
mov r1, #3
mov r2, #1
bl MOD53_021D91C8
add r0, r5, #0
mov r1, #0x10
bl MOD53_021D93E0
add r0, r5, #0
bl MOD53_021D8470
add r0, r4, #0
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_end MOD53_021D896C
thumb_func_start MOD53_021D89A0
MOD53_021D89A0: ; 0x021D89A0
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r0, [r5, #0x30]
add r4, r1, #0
bl MOD53_021D923C
cmp r0, #0
beq _021D89BE
add r0, r5, #0
mov r1, #0x11
bl MOD53_021D93E0
mov r0, #0xc8
bl FUN_02031588
_021D89BE:
add r0, r5, #0
bl MOD53_021D8470
add r0, r4, #0
pop {r3, r4, r5, pc}
thumb_func_end MOD53_021D89A0
thumb_func_start MOD53_021D89C8
MOD53_021D89C8: ; 0x021D89C8
push {r4, r5, lr}
sub sp, #0xc
add r4, r0, #0
mov r0, #0xc8
add r5, r1, #0
bl FUN_020315D8
cmp r0, #0
bne _021D89E2
bl FUN_02030F20
cmp r0, #1
bne _021D89FA
_021D89E2:
mov r1, #0x10
str r1, [sp]
mov r0, #1
str r0, [sp, #4]
mov r0, #0x27
str r0, [sp, #8]
mov r0, #0
add r2, r1, #0
add r3, r0, #0
bl FUN_0200E1D0
mov r5, #3
_021D89FA:
add r0, r4, #0
bl MOD53_021D8470
add r0, r5, #0
add sp, #0xc
pop {r4, r5, pc}
.align 2, 0
thumb_func_end MOD53_021D89C8
thumb_func_start MOD53_021D8A08
MOD53_021D8A08: ; 0x021D8A08
add r0, r1, #0
bx lr
thumb_func_end MOD53_021D8A08
thumb_func_start MOD53_021D8A0C
MOD53_021D8A0C: ; 0x021D8A0C
push {r3, r4, r5, lr}
add r4, r1, #0
add r5, r0, #0
mov r1, #5
mov r2, #1
bl MOD53_021D91C8
add r0, r5, #0
mov r1, #0x14
bl MOD53_021D93E0
add r0, r5, #0
bl MOD53_021D8470
add r0, r4, #0
pop {r3, r4, r5, pc}
thumb_func_end MOD53_021D8A0C
thumb_func_start MOD53_021D8A2C
MOD53_021D8A2C: ; 0x021D8A2C
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r0, [r5, #0x30]
add r4, r1, #0
bl MOD53_021D923C
cmp r0, #0
beq _021D8A44
add r0, r5, #0
mov r1, #0xc
bl MOD53_021D93E0
_021D8A44:
add r0, r5, #0
bl MOD53_021D8470
add r0, r4, #0
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_end MOD53_021D8A2C
thumb_func_start MOD53_021D8A50
MOD53_021D8A50: ; 0x021D8A50
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r0, [r5, #0x30]
add r4, r1, #0
cmp r0, #0xff
beq _021D8A6E
bl MOD53_021D923C
cmp r0, #0
bne _021D8A6E
ldr r0, [r5, #0x30]
lsl r0, r0, #0x18
lsr r0, r0, #0x18
bl FUN_0201BD7C
_021D8A6E:
add r0, r5, #0
mov r1, #2
mov r2, #1
bl MOD53_021D91C8
add r0, r5, #0
mov r1, #0x16
bl MOD53_021D93E0
ldr r0, _021D8AA8 ; =0x000005E4
bl FUN_020054C8
bl FUN_02031190
cmp r0, #0
bne _021D8A96
add r0, r5, #0
mov r1, #0
bl MOD53_021D926C
_021D8A96:
bl FUN_02030F20
ldr r1, _021D8AAC ; =0x000093B0
str r0, [r5, r1]
add r0, r5, #0
bl MOD53_021D8470
add r0, r4, #0
pop {r3, r4, r5, pc}
.align 2, 0
_021D8AA8: .word 0x000005E4
_021D8AAC: .word 0x000093B0
thumb_func_end MOD53_021D8A50
thumb_func_start MOD53_021D8AB0
MOD53_021D8AB0: ; 0x021D8AB0
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r0, _021D8AF4 ; =0x000093B0
add r4, r1, #0
ldr r0, [r5, r0]
cmp r0, #0
beq _021D8ACE
bl FUN_02030F20
ldr r1, _021D8AF4 ; =0x000093B0
ldr r2, [r5, r1]
cmp r2, r0
beq _021D8ACE
mov r0, #0
str r0, [r5, r1]
_021D8ACE:
ldr r0, [r5, #0x30]
bl MOD53_021D923C
cmp r0, #0
beq _021D8AE8
add r0, r5, #0
mov r1, #0x17
bl MOD53_021D93E0
mov r0, #0x31
mov r1, #0
lsl r0, r0, #4
str r1, [r5, r0]
_021D8AE8:
add r0, r5, #0
bl MOD53_021D8470
add r0, r4, #0
pop {r3, r4, r5, pc}
nop
_021D8AF4: .word 0x000093B0
thumb_func_end MOD53_021D8AB0
thumb_func_start MOD53_021D8AF8
MOD53_021D8AF8: ; 0x021D8AF8
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r0, _021D8B5C ; =0x000093B0
add r4, r1, #0
ldr r0, [r5, r0]
cmp r0, #0
beq _021D8B16
bl FUN_02030F20
ldr r1, _021D8B5C ; =0x000093B0
ldr r2, [r5, r1]
cmp r2, r0
beq _021D8B16
mov r0, #0
str r0, [r5, r1]
_021D8B16:
mov r0, #0x31
lsl r0, r0, #4
ldr r1, [r5, r0]
add r1, r1, #1
str r1, [r5, r0]
ldr r0, [r5, r0]
cmp r0, #0x3c
ble _021D8B50
ldr r0, _021D8B5C ; =0x000093B0
ldr r0, [r5, r0]
cmp r0, #0
bne _021D8B50
add r0, r5, #0
bl MOD53_021D925C
add r0, r5, #0
mov r1, #4
bl MOD53_021D93E0
bl FUN_02031190
cmp r0, #0
bne _021D8B50
ldr r0, _021D8B60 ; =0x000093F4
mov r1, #1
str r1, [r5, r0]
add r0, r5, #0
bl MOD53_021D926C
_021D8B50:
add r0, r5, #0
bl MOD53_021D8470
add r0, r4, #0
pop {r3, r4, r5, pc}
nop
_021D8B5C: .word 0x000093B0
_021D8B60: .word 0x000093F4
thumb_func_end MOD53_021D8AF8
thumb_func_start MOD53_021D8B64
MOD53_021D8B64: ; 0x021D8B64
push {r4, r5, r6, lr}
add r5, r1, #0
add r4, r0, #0
add r6, r2, #0
cmp r5, #0xf
bgt _021D8B96
bge _021D8C42
cmp r5, #9
bhi _021D8C4A
add r1, r5, r5
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021D8B82: ; jump table
.short _021D8C40 - _021D8B82 - 2 ; case 0
.short _021D8B9C - _021D8B82 - 2 ; case 1
.short _021D8C40 - _021D8B82 - 2 ; case 2
.short _021D8BDA - _021D8B82 - 2 ; case 3
.short _021D8C40 - _021D8B82 - 2 ; case 4
.short _021D8C40 - _021D8B82 - 2 ; case 5
.short _021D8C40 - _021D8B82 - 2 ; case 6
.short _021D8C40 - _021D8B82 - 2 ; case 7
.short _021D8C42 - _021D8B82 - 2 ; case 8
.short _021D8C42 - _021D8B82 - 2 ; case 9
_021D8B96:
cmp r5, #0x15
beq _021D8BE0
pop {r4, r5, r6, pc}
_021D8B9C:
mov r0, #0xc1
lsl r0, r0, #2
ldr r0, [r4, r0]
cmp r0, #6
beq _021D8BAA
cmp r0, #0xe
bne _021D8BB0
_021D8BAA:
add r0, r4, #0
bl MOD53_021D9440
_021D8BB0:
mov r0, #0x92
lsl r0, r0, #2
add r0, r4, r0
mov r1, #0
bl MOD53_021D840C
add r0, r6, #0
bl FUN_0202DFA4
add r2, r0, #0
ldr r0, [r4, #0xc]
mov r1, #0
bl FUN_0200ABC0
mov r0, #0x32
lsl r0, r0, #4
str r6, [r4, r0]
ldr r0, _021D8C4C ; =0x000093B4
mov r1, #0
str r1, [r4, r0]
b _021D8C42
_021D8BDA:
bl MOD53_021D925C
b _021D8C42
_021D8BE0:
ldr r0, _021D8C50 ; =0x000093BC
ldrb r0, [r4, r0]
cmp r0, #1
beq _021D8C4A
add r0, r6, #0
bl FUN_0202DFA4
add r2, r0, #0
ldr r0, [r4, #0xc]
mov r1, #0
bl FUN_0200ABC0
bl FUN_02031190
cmp r6, r0
beq _021D8C4A
bl FUN_02031190
cmp r0, #0
bne _021D8C14
ldr r1, _021D8C4C ; =0x000093B4
ldr r0, _021D8C54 ; =0x0000FFFF
ldr r2, [r4, r1]
eor r0, r6
and r0, r2
str r0, [r4, r1]
_021D8C14:
mov r0, #0xc1
lsl r0, r0, #2
ldr r0, [r4, r0]
cmp r0, #6
beq _021D8C22
cmp r0, #0xe
bne _021D8C32
_021D8C22:
add r0, r4, #0
bl MOD53_021D9440
mov r0, #0xb2
lsl r0, r0, #2
add r0, r4, r0
bl FUN_020191D0
_021D8C32:
mov r0, #0x92
lsl r0, r0, #2
add r0, r4, r0
mov r1, #0
bl MOD53_021D840C
b _021D8C42
_021D8C40:
pop {r4, r5, r6, pc}
_021D8C42:
add r0, r4, #0
add r1, r5, #0
bl MOD53_021D93E0
_021D8C4A:
pop {r4, r5, r6, pc}
.align 2, 0
_021D8C4C: .word 0x000093B4
_021D8C50: .word 0x000093BC
_021D8C54: .word 0x0000FFFF
thumb_func_end MOD53_021D8B64
thumb_func_start MOD53_021D8C58
MOD53_021D8C58: ; 0x021D8C58
push {r4, r5, r6, r7, lr}
sub sp, #0x1c
ldr r4, [sp, #0x38]
mov ip, r1
add r6, r2, #0
add r7, r3, #0
str r0, [sp, #0x18]
ldr r3, [sp, #0x3c]
ldr r2, [sp, #0x40]
ldr r1, [sp, #0x44]
cmp r4, #0
bge _021D8C84
neg r0, r4
cmp r0, r2
ble _021D8C78
add r0, r2, #0
_021D8C78:
ldr r5, [sp, #0x30]
mov r4, #0
sub r5, r5, r0
add r6, r6, r0
str r5, [sp, #0x30]
sub r2, r2, r0
_021D8C84:
cmp r3, #0
bge _021D8C9C
neg r0, r3
cmp r0, r1
ble _021D8C90
add r0, r1, #0
_021D8C90:
ldr r5, [sp, #0x34]
mov r3, #0
sub r5, r5, r0
add r7, r7, r0
str r5, [sp, #0x34]
sub r1, r1, r0
_021D8C9C:
ldr r0, [sp, #0x30]
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp]
ldr r0, [sp, #0x34]
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp, #4]
lsl r0, r4, #0x10
lsr r0, r0, #0x10
str r0, [sp, #8]
lsl r0, r3, #0x10
lsr r0, r0, #0x10
str r0, [sp, #0xc]
lsl r0, r2, #0x10
lsr r0, r0, #0x10
str r0, [sp, #0x10]
lsl r0, r1, #0x10
lsr r0, r0, #0x10
str r0, [sp, #0x14]
lsl r2, r6, #0x10
lsl r3, r7, #0x10
ldr r0, [sp, #0x18]
mov r1, ip
lsr r2, r2, #0x10
lsr r3, r3, #0x10
bl FUN_02019658
add sp, #0x1c
pop {r4, r5, r6, r7, pc}
thumb_func_end MOD53_021D8C58
thumb_func_start MOD53_021D8CD8
MOD53_021D8CD8: ; 0x021D8CD8
push {r4, r5, r6, r7, lr}
sub sp, #0x3c
str r0, [sp, #0x18]
ldr r0, [sp, #0x50]
str r1, [sp, #0x1c]
str r0, [sp, #0x50]
ldr r0, [sp, #0x54]
str r2, [sp, #0x20]
str r0, [sp, #0x54]
ldr r0, [sp, #0x50]
str r3, [sp, #0x24]
ldr r4, [r0]
ldr r0, [sp, #0x54]
ldr r5, [r0]
add r0, r2, #0
str r0, [sp, #0x38]
add r0, r3, #0
str r0, [sp, #0x30]
ldr r0, [sp, #0x58]
cmp r0, #0
bne _021D8D18
ldr r0, [sp, #0x5c]
cmp r0, #0
bne _021D8D18
ldr r0, [sp, #0x50]
add r1, r2, #0
str r1, [r0]
ldr r0, [sp, #0x54]
add r1, r3, #0
str r1, [r0]
add sp, #0x3c
pop {r4, r5, r6, r7, pc}
_021D8D18:
ldr r0, [sp, #0x20]
sub r0, r0, r4
str r0, [sp, #0x34]
bpl _021D8D24
neg r0, r0
str r0, [sp, #0x34]
_021D8D24:
ldr r0, [sp, #0x24]
sub r7, r0, r5
bpl _021D8D2C
neg r7, r7
_021D8D2C:
ldr r0, [sp, #0x34]
cmp r0, r7
ble _021D8DBA
ldr r0, [sp, #0x20]
cmp r4, r0
ble _021D8D52
ldr r0, [sp, #0x24]
cmp r5, r0
ble _021D8D44
mov r0, #1
str r0, [sp, #0x2c]
b _021D8D4A
_021D8D44:
mov r0, #0
mvn r0, r0
str r0, [sp, #0x2c]
_021D8D4A:
str r4, [sp, #0x38]
ldr r4, [sp, #0x20]
ldr r5, [sp, #0x24]
b _021D8D64
_021D8D52:
ldr r0, [sp, #0x24]
cmp r5, r0
bge _021D8D5E
mov r0, #1
str r0, [sp, #0x2c]
b _021D8D64
_021D8D5E:
mov r0, #0
mvn r0, r0
str r0, [sp, #0x2c]
_021D8D64:
mov r0, #6
str r0, [sp]
str r0, [sp, #4]
str r4, [sp, #8]
str r5, [sp, #0xc]
str r0, [sp, #0x10]
str r0, [sp, #0x14]
mov r2, #0
ldr r0, [sp, #0x18]
ldr r1, [sp, #0x1c]
add r3, r2, #0
bl MOD53_021D8C58
ldr r0, [sp, #0x34]
add r4, r4, #1
asr r6, r0, #1
ldr r0, [sp, #0x38]
cmp r4, r0
bgt _021D8E3E
_021D8D8A:
sub r6, r6, r7
bpl _021D8D96
ldr r0, [sp, #0x34]
add r6, r6, r0
ldr r0, [sp, #0x2c]
add r5, r5, r0
_021D8D96:
mov r0, #6
str r0, [sp]
str r0, [sp, #4]
str r4, [sp, #8]
str r5, [sp, #0xc]
str r0, [sp, #0x10]
str r0, [sp, #0x14]
mov r2, #0
ldr r0, [sp, #0x18]
ldr r1, [sp, #0x1c]
add r3, r2, #0
bl MOD53_021D8C58
ldr r0, [sp, #0x38]
add r4, r4, #1
cmp r4, r0
ble _021D8D8A
b _021D8E3E
_021D8DBA:
ldr r0, [sp, #0x24]
cmp r5, r0
ble _021D8DDA
ldr r0, [sp, #0x20]
cmp r4, r0
ble _021D8DCC
mov r0, #1
str r0, [sp, #0x28]
b _021D8DD2
_021D8DCC:
mov r0, #0
mvn r0, r0
str r0, [sp, #0x28]
_021D8DD2:
str r5, [sp, #0x30]
ldr r5, [sp, #0x24]
ldr r4, [sp, #0x20]
b _021D8DEC
_021D8DDA:
ldr r0, [sp, #0x20]
cmp r4, r0
bge _021D8DE6
mov r0, #1
str r0, [sp, #0x28]
b _021D8DEC
_021D8DE6:
mov r0, #0
mvn r0, r0
str r0, [sp, #0x28]
_021D8DEC:
mov r0, #6
str r0, [sp]
str r0, [sp, #4]
str r4, [sp, #8]
str r5, [sp, #0xc]
str r0, [sp, #0x10]
str r0, [sp, #0x14]
mov r2, #0
ldr r0, [sp, #0x18]
ldr r1, [sp, #0x1c]
add r3, r2, #0
bl MOD53_021D8C58
ldr r0, [sp, #0x30]
add r5, r5, #1
asr r6, r7, #1
cmp r5, r0
bgt _021D8E3E
_021D8E10:
ldr r0, [sp, #0x34]
sub r6, r6, r0
bpl _021D8E1C
ldr r0, [sp, #0x28]
add r6, r6, r7
add r4, r4, r0
_021D8E1C:
mov r0, #6
str r0, [sp]
str r0, [sp, #4]
str r4, [sp, #8]
str r5, [sp, #0xc]
str r0, [sp, #0x10]
str r0, [sp, #0x14]
mov r2, #0
ldr r0, [sp, #0x18]
ldr r1, [sp, #0x1c]
add r3, r2, #0
bl MOD53_021D8C58
ldr r0, [sp, #0x30]
add r5, r5, #1
cmp r5, r0
ble _021D8E10
_021D8E3E:
ldr r1, [sp, #0x20]
ldr r0, [sp, #0x50]
str r1, [r0]
ldr r1, [sp, #0x24]
ldr r0, [sp, #0x54]
str r1, [r0]
add sp, #0x3c
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_end MOD53_021D8CD8
thumb_func_start MOD53_021D8E50
MOD53_021D8E50: ; 0x021D8E50
mov r2, #0
_021D8E52:
ldrb r3, [r0, #8]
lsl r3, r3, #0x1a
lsr r3, r3, #0x1d
strh r3, [r1, #2]
ldrb r3, [r0, #8]
lsl r3, r3, #0x1a
lsr r3, r3, #0x1d
beq _021D8E76
add r3, r0, r3
sub r3, r3, #1
ldrb r3, [r3]
strb r3, [r1]
ldrb r3, [r0, #8]
lsl r3, r3, #0x1a
lsr r3, r3, #0x1d
add r3, r0, r3
ldrb r3, [r3, #3]
strb r3, [r1, #1]
_021D8E76:
add r2, r2, #1
add r0, #0xa
add r1, r1, #4
cmp r2, #5
blt _021D8E52
bx lr
.align 2, 0
thumb_func_end MOD53_021D8E50
thumb_func_start MOD53_021D8E84
MOD53_021D8E84: ; 0x021D8E84
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x30
str r0, [sp, #0x10]
mov r0, #0
str r1, [sp, #0x14]
str r2, [sp, #0x18]
str r3, [sp, #0x1c]
str r0, [sp, #0x20]
str r0, [sp, #0x24]
add r5, r1, #0
add r7, r2, #0
_021D8E9A:
ldrb r0, [r5, #8]
lsl r0, r0, #0x1a
lsr r0, r0, #0x1d
beq _021D8F0A
ldrh r0, [r7, #2]
cmp r0, #0
beq _021D8EB4
ldrb r0, [r7]
sub r0, #9
str r0, [sp, #0x2c]
ldrb r0, [r7, #1]
sub r0, #0x11
str r0, [sp, #0x28]
_021D8EB4:
ldrb r0, [r5, #8]
mov r4, #0
lsl r0, r0, #0x1a
lsr r1, r0, #0x1d
cmp r1, #0
ble _021D8F0A
mov r0, #1
str r0, [sp, #0x20]
cmp r1, #0
ble _021D8F0A
_021D8EC8:
add r0, sp, #0x2c
str r0, [sp]
add r0, sp, #0x28
str r0, [sp, #4]
str r4, [sp, #8]
ldrh r0, [r7, #2]
mov r6, #0xc0
add r3, r5, r4
str r0, [sp, #0xc]
ldrb r1, [r5, #8]
ldrb r3, [r3, #4]
ldr r0, [sp, #0x10]
lsl r2, r1, #0x18
lsr r2, r2, #0x1e
mul r6, r2
ldr r2, _021D8F4C ; =0x021D9648
lsl r1, r1, #0x1d
add r2, r2, r6
lsr r6, r1, #0x1d
mov r1, #0x18
mul r1, r6
add r1, r2, r1
ldrb r2, [r5, r4]
sub r3, #0x11
sub r2, #9
bl MOD53_021D8CD8
ldrb r0, [r5, #8]
add r4, r4, #1
lsl r0, r0, #0x1a
lsr r0, r0, #0x1d
cmp r4, r0
blt _021D8EC8
_021D8F0A:
ldr r0, [sp, #0x24]
add r5, #0xa
add r0, r0, #1
add r7, r7, #4
str r0, [sp, #0x24]
cmp r0, #5
blt _021D8E9A
ldr r0, [sp, #0x20]
cmp r0, #0
beq _021D8F2A
ldr r0, [sp, #0x1c]
cmp r0, #0
beq _021D8F2A
ldr r0, [sp, #0x10]
bl FUN_020191D0
_021D8F2A:
ldr r0, [sp, #0x14]
ldr r1, [sp, #0x18]
bl MOD53_021D8E50
mov r3, #0
mov r1, #0x38
_021D8F36:
ldr r0, [sp, #0x14]
add r3, r3, #1
ldrb r2, [r0, #8]
bic r2, r1
strb r2, [r0, #8]
add r0, #0xa
str r0, [sp, #0x14]
cmp r3, #5
blt _021D8F36
add sp, #0x30
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_021D8F4C: .word 0x021D9648
thumb_func_end MOD53_021D8E84
thumb_func_start MOD53_021D8F50
MOD53_021D8F50: ; 0x021D8F50
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
ldr r0, _021D8FB4 ; =0x00004382
mov r7, #0x76
mov r6, #0
add r4, r5, r0
lsl r7, r7, #2
_021D8F5E:
bl FUN_02031190
cmp r6, r0
beq _021D8FA6
ldrb r0, [r4, #8]
lsl r0, r0, #0x1a
lsr r0, r0, #0x1d
beq _021D8F9A
add r0, r6, #0
bl FUN_0202DFA4
cmp r0, #0
beq _021D8F9A
mov r0, #0x76
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #1
bl FUN_020200A0
ldrb r0, [r4, #8]
lsl r0, r0, #0x1a
lsr r0, r0, #0x1d
add r2, r4, r0
sub r1, r2, #1
ldrb r1, [r1]
ldrb r2, [r2, #3]
ldr r0, [r5, r7]
bl MOD53_021D8140
b _021D8FA6
_021D8F9A:
mov r0, #0x76
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #0
bl FUN_020200A0
_021D8FA6:
add r6, r6, #1
add r4, #0xa
add r5, r5, #4
cmp r6, #5
blt _021D8F5E
pop {r3, r4, r5, r6, r7, pc}
nop
_021D8FB4: .word 0x00004382
thumb_func_end MOD53_021D8F50
thumb_func_start MOD53_021D8FB8
MOD53_021D8FB8: ; 0x021D8FB8
push {r3, lr}
ldrh r1, [r0]
add r1, #0x14
strh r1, [r0]
ldrh r2, [r0]
mov r1, #0x5a
lsl r1, r1, #2
cmp r2, r1
bls _021D8FCE
mov r1, #0
strh r1, [r0]
_021D8FCE:
ldrh r0, [r0]
bl FUN_0201B970
mov r1, #0xa
mul r1, r0
asr r0, r1, #0xb
lsr r0, r0, #0x14
add r0, r1, r0
asr r0, r0, #0xc
add r0, #0xf
lsl r1, r0, #5
mov r0, #0x1d
orr r1, r0
add r0, sp, #0
strh r1, [r0]
add r0, sp, #0
mov r1, #0x18
mov r2, #2
bl GX_LoadOBJPltt
pop {r3, pc}
thumb_func_end MOD53_021D8FB8
thumb_func_start MOD53_021D8FF8
MOD53_021D8FF8: ; 0x021D8FF8
push {r3, r4, r5, lr}
mov r5, #0
add r4, r5, #0
_021D8FFE:
add r0, r4, #0
bl FUN_0202DFA4
cmp r0, #0
beq _021D900A
add r5, r5, #1
_021D900A:
add r4, r4, #1
cmp r4, #5
blt _021D8FFE
add r0, r5, #0
pop {r3, r4, r5, pc}
thumb_func_end MOD53_021D8FF8
thumb_func_start MOD53_021D9014
MOD53_021D9014: ; 0x021D9014
push {r4, r5, r6, r7, lr}
sub sp, #0x1c
add r7, r3, #0
add r5, r0, #0
str r2, [sp, #0x10]
bl FUN_02031190
str r0, [sp, #0x14]
add r0, r7, #0
bl MOD53_021D9184
cmp r0, #0
beq _021D90EE
mov r0, #0
str r0, [sp, #0x18]
add r6, r7, #0
add r4, r7, #0
_021D9036:
mov r0, #0xcd
lsl r0, r0, #2
ldr r0, [r6, r0]
cmp r0, #0
bne _021D904E
mov r0, #0x21
lsl r0, r0, #4
ldr r0, [r4, r0]
mov r1, #0
bl FUN_020200A0
b _021D905A
_021D904E:
mov r0, #0x21
lsl r0, r0, #4
ldr r0, [r4, r0]
mov r1, #1
bl FUN_020200A0
_021D905A:
ldr r0, [sp, #0x18]
add r6, #8
add r0, r0, #1
add r4, r4, #4
str r0, [sp, #0x18]
cmp r0, #5
blt _021D9036
mov r6, #0
add r4, r5, #0
_021D906C:
mov r0, #0x50
mov r1, #0
str r0, [sp]
mov r0, #0x10
str r0, [sp, #4]
add r0, r4, #0
add r2, r1, #0
add r3, r1, #0
bl FUN_020196F4
add r6, r6, #1
add r4, #0x10
cmp r6, #5
blt _021D906C
mov r6, #0
add r4, r7, #0
_021D908C:
mov r0, #0xcd
lsl r0, r0, #2
ldr r0, [r7, r0]
cmp r0, #0
beq _021D90DC
ldr r1, [r4, #0x14]
bl FUN_02023990
ldr r0, [sp, #0x14]
cmp r0, r6
bne _021D90C0
mov r0, #0
str r0, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, _021D90F4 ; =0x0003040F
mov r1, #1
str r0, [sp, #8]
mov r0, #0
str r0, [sp, #0xc]
ldr r2, [r4, #0x14]
add r0, r5, #0
mov r3, #0
bl FUN_0201BDE0
b _021D90DC
_021D90C0:
mov r0, #0
str r0, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, [sp, #0x10]
mov r1, #1
str r0, [sp, #8]
mov r0, #0
str r0, [sp, #0xc]
ldr r2, [r4, #0x14]
add r0, r5, #0
mov r3, #0
bl FUN_0201BDE0
_021D90DC:
add r0, r5, #0
bl FUN_020191D0
add r6, r6, #1
add r7, #8
add r4, r4, #4
add r5, #0x10
cmp r6, #5
blt _021D908C
_021D90EE:
add sp, #0x1c
pop {r4, r5, r6, r7, pc}
nop
_021D90F4: .word 0x0003040F
thumb_func_end MOD53_021D9014
thumb_func_start MOD53_021D90F8
MOD53_021D90F8: ; 0x021D90F8
push {r4, lr}
add r4, r0, #0
bl FUN_02031190
cmp r0, #0
bne _021D9138
bl FUN_02031370
cmp r0, #0
beq _021D914C
ldr r1, _021D9150 ; =0x000093F4
ldr r0, _021D9154 ; =0x00004381
ldr r2, [r4, r1]
sub r1, #0x37
strb r2, [r4, r0]
sub r0, #9
add r2, r4, r1
add r3, r4, r0
mov r1, #0xa
_021D911E:
ldrb r0, [r3]
add r3, r3, #1
strb r0, [r2]
add r2, r2, #1
sub r1, r1, #1
bne _021D911E
ldr r1, _021D9158 ; =0x000093BD
mov r0, #0x78
add r1, r4, r1
mov r2, #0x32
bl FUN_02030BC4
pop {r4, pc}
_021D9138:
bl FUN_02031388
cmp r0, #0
beq _021D914C
ldr r1, _021D915C ; =0x00004378
mov r0, #0x77
add r1, r4, r1
mov r2, #0xa
bl FUN_02030ADC
_021D914C:
pop {r4, pc}
nop
_021D9150: .word 0x000093F4
_021D9154: .word 0x00004381
_021D9158: .word 0x000093BD
_021D915C: .word 0x00004378
thumb_func_end MOD53_021D90F8
thumb_func_start MOD53_021D9160
MOD53_021D9160: ; 0x021D9160
push {r3, r4, r5, lr}
mov r5, #0
add r4, r5, #0
_021D9166:
add r0, r4, #0
bl FUN_0202DFA4
cmp r0, #0
beq _021D9172
add r5, r5, #1
_021D9172:
add r4, r4, #1
cmp r4, #5
blt _021D9166
add r0, r5, #0
pop {r3, r4, r5, pc}
thumb_func_end MOD53_021D9160
thumb_func_start MOD53_021D917C
MOD53_021D917C: ; 0x021D917C
ldr r3, _021D9180 ; =MOD53_021D9160
bx r3
.align 2, 0
_021D9180: .word MOD53_021D9160
thumb_func_end MOD53_021D917C
thumb_func_start MOD53_021D9184
MOD53_021D9184: ; 0x021D9184
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
mov r7, #0
add r6, r7, #0
add r4, r5, #0
_021D918E:
mov r0, #0xcd
lsl r0, r0, #2
ldr r1, [r4, r0]
add r0, r0, #4
str r1, [r4, r0]
add r0, r6, #0
bl FUN_0202DFA4
mov r1, #0xcd
lsl r1, r1, #2
str r0, [r4, r1]
add r6, r6, #1
add r4, #8
cmp r6, #5
blt _021D918E
mov r6, #0
mov r2, #1
add r0, r1, #4
_021D91B2:
ldr r4, [r5, r0]
ldr r3, [r5, r1]
cmp r4, r3
beq _021D91BC
add r7, r2, #0
_021D91BC:
add r6, r6, #1
add r5, #8
cmp r6, #5
blt _021D91B2
add r0, r7, #0
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end MOD53_021D9184
thumb_func_start MOD53_021D91C8
MOD53_021D91C8: ; 0x021D91C8
push {r4, r5, r6, r7, lr}
sub sp, #0xc
add r5, r0, #0
add r7, r1, #0
mov r0, #0x50
mov r1, #0x27
add r4, r2, #0
bl FUN_020219F4
add r6, r0, #0
ldr r0, [r5, #0x10]
add r1, r7, #0
add r2, r6, #0
bl FUN_0200A8E0
ldr r0, [r5, #0xc]
ldr r1, [r5, #0x2c]
add r2, r6, #0
bl FUN_0200B7B8
add r0, r6, #0
bl FUN_02021A20
mov r0, #0xb6
lsl r0, r0, #2
add r0, r5, r0
mov r1, #0xf
bl FUN_02019620
mov r0, #0xb6
lsl r0, r0, #2
add r0, r5, r0
mov r1, #0
mov r2, #1
mov r3, #0xa
bl FUN_0200D0BC
cmp r4, #0
bne _021D9218
mov r4, #0
_021D9218:
mov r3, #0
str r3, [sp]
str r4, [sp, #4]
str r3, [sp, #8]
mov r0, #0xb6
lsl r0, r0, #2
ldr r2, [r5, #0x2c]
add r0, r5, r0
mov r1, #1
bl FUN_0201BD84
str r0, [r5, #0x30]
cmp r4, #0
bne _021D9238
mov r0, #0xff
str r0, [r5, #0x30]
_021D9238:
add sp, #0xc
pop {r4, r5, r6, r7, pc}
thumb_func_end MOD53_021D91C8
thumb_func_start MOD53_021D923C
MOD53_021D923C: ; 0x021D923C
push {r3, lr}
cmp r0, #0xff
bne _021D9246
mov r0, #1
pop {r3, pc}
_021D9246:
lsl r0, r0, #0x18
lsr r0, r0, #0x18
bl FUN_0201BD70
cmp r0, #0
bne _021D9256
mov r0, #1
pop {r3, pc}
_021D9256:
mov r0, #0
pop {r3, pc}
.align 2, 0
thumb_func_end MOD53_021D923C
thumb_func_start MOD53_021D925C
MOD53_021D925C: ; 0x021D925C
mov r1, #0xb6
lsl r1, r1, #2
add r0, r0, r1
ldr r3, _021D9268 ; =FUN_0200D0E0
mov r1, #0
bx r3
.align 2, 0
_021D9268: .word FUN_0200D0E0
thumb_func_end MOD53_021D925C
thumb_func_start MOD53_021D926C
MOD53_021D926C: ; 0x021D926C
push {r4, lr}
add r4, r1, #0
bl FUN_02031190
cmp r0, #0
bne _021D9288
bl FUN_02030F20
add r0, r4, r0
cmp r0, #5
ble _021D9284
mov r0, #5
_021D9284:
bl FUN_02032B6C
_021D9288:
pop {r4, pc}
.align 2, 0
thumb_func_end MOD53_021D926C
thumb_func_start MOD53_021D928C
MOD53_021D928C: ; 0x021D928C
push {r3, r4, r5, lr}
add r4, r0, #0
bl MOD53_021D9160
add r5, r0, #0
cmp r5, #5
bhi _021D932A
add r0, r5, r5
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021D92A6: ; jump table
.short _021D932A - _021D92A6 - 2 ; case 0
.short _021D92B2 - _021D92A6 - 2 ; case 1
.short _021D92F8 - _021D92A6 - 2 ; case 2
.short _021D92F8 - _021D92A6 - 2 ; case 3
.short _021D92F8 - _021D92A6 - 2 ; case 4
.short _021D9324 - _021D92A6 - 2 ; case 5
_021D92B2:
mov r0, #0xc1
lsl r0, r0, #2
ldr r0, [r4, r0]
cmp r0, #0xe
bgt _021D932A
bl FUN_0202CB8C
cmp r0, #1
beq _021D92CC
mov r0, #0x25
mov r1, #1
lsl r0, r0, #0xa
str r1, [r4, r0]
_021D92CC:
mov r0, #0xc2
mov r1, #0x13
lsl r0, r0, #2
str r1, [r4, r0]
mov r0, #1
bl FUN_02032B6C
ldr r0, _021D93CC ; =0x000093F8
ldr r0, [r4, r0]
cmp r0, #0
beq _021D92F4
add r0, r4, #0
bl MOD53_021D9440
mov r0, #0x9a
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x15
bl FUN_02020130
_021D92F4:
mov r0, #2
pop {r3, r4, r5, pc}
_021D92F8:
mov r0, #1
bl FUN_02052B74
mov r0, #0xc5
lsl r0, r0, #2
ldr r0, [r4, r0]
cmp r5, r0
bge _021D932A
ldr r0, _021D93D0 ; =0x000093F4
ldr r0, [r4, r0]
cmp r0, #2
bne _021D931A
add r0, r4, #0
mov r1, #0
bl MOD53_021D926C
b _021D932A
_021D931A:
add r0, r4, #0
mov r1, #1
bl MOD53_021D926C
b _021D932A
_021D9324:
mov r0, #8
bl FUN_02052B74
_021D932A:
mov r0, #0xc5
lsl r0, r0, #2
ldr r0, [r4, r0]
cmp r5, r0
bge _021D9374
bl FUN_02030F20
mov r1, #0xc6
lsl r1, r1, #2
str r0, [r4, r1]
bl FUN_0202CB8C
mov r1, #0xc7
lsl r1, r1, #2
str r0, [r4, r1]
ldr r0, _021D93D4 ; =0x00009404
ldr r2, [r4, r0]
cmp r2, #0
beq _021D9374
add r0, r0, #4
ldr r1, [r4, r1]
ldr r0, [r4, r0]
tst r0, r1
bne _021D9374
add r0, r4, #0
mov r1, #1
bl MOD53_021D926C
ldr r1, _021D93D0 ; =0x000093F4
mov r0, #1
str r0, [r4, r1]
add r0, r1, #0
mov r2, #0
add r0, #0x10
str r2, [r4, r0]
add r1, #0x14
str r2, [r4, r1]
_021D9374:
bl MOD53_021D9160
mov r1, #0xc5
lsl r1, r1, #2
str r0, [r4, r1]
bl FUN_02030F20
mov r1, #0xc6
lsl r1, r1, #2
ldr r1, [r4, r1]
cmp r1, r0
bge _021D93C8
ldr r0, _021D93D0 ; =0x000093F4
mov r1, #2
str r1, [r4, r0]
mov r1, #1
add r0, #0x10
str r1, [r4, r0]
bl FUN_0202CB8C
mov r1, #0xc7
lsl r1, r1, #2
ldr r1, [r4, r1]
eor r0, r1
ldr r1, _021D93D8 ; =0x00009408
str r0, [r4, r1]
ldr r1, [r4, r1]
mov r0, #0
sub r1, r1, #2
cmp r1, #0xe
bhi _021D93C0
mov r2, #1
add r3, r2, #0
lsl r3, r1
ldr r1, _021D93DC ; =0x00004045
tst r1, r3
beq _021D93C0
add r0, r2, #0
_021D93C0:
cmp r0, #0
bne _021D93C8
bl ErrorHandling
_021D93C8:
mov r0, #1
pop {r3, r4, r5, pc}
.align 2, 0
_021D93CC: .word 0x000093F8
_021D93D0: .word 0x000093F4
_021D93D4: .word 0x00009404
_021D93D8: .word 0x00009408
_021D93DC: .word 0x00004045
thumb_func_end MOD53_021D928C
thumb_func_start MOD53_021D93E0
MOD53_021D93E0: ; 0x021D93E0
mov r2, #0xc2
lsl r2, r2, #2
str r1, [r0, r2]
bx lr
thumb_func_end MOD53_021D93E0
thumb_func_start MOD53_021D93E8
MOD53_021D93E8: ; 0x021D93E8
push {r3, r4}
mov r3, #0xc2
lsl r3, r3, #2
sub r4, r3, #4
ldr r2, [r0, r3]
ldr r4, [r0, r4]
cmp r4, r2
beq _021D9412
cmp r1, #2
beq _021D9404
sub r1, r3, #4
str r2, [r0, r1]
pop {r3, r4}
bx lr
_021D9404:
ldr r1, _021D9418 ; =0x021D98A4
lsl r4, r2, #3
ldr r1, [r1, r4]
cmp r1, #0
beq _021D9412
sub r1, r3, #4
str r2, [r0, r1]
_021D9412:
pop {r3, r4}
bx lr
nop
_021D9418: .word 0x021D98A4
thumb_func_end MOD53_021D93E8
thumb_func_start MOD53_021D941C
MOD53_021D941C: ; 0x021D941C
push {r4, lr}
add r4, r0, #0
ldr r0, _021D943C ; =0x000093F8
ldr r2, [r4, r0]
cmp r2, #0
bne _021D9438
sub r0, #8
ldr r0, [r4, r0]
bl FUN_020145C8
ldr r1, _021D943C ; =0x000093F8
mov r0, #1
str r0, [r4, r1]
pop {r4, pc}
_021D9438:
mov r0, #0
pop {r4, pc}
.align 2, 0
_021D943C: .word 0x000093F8
thumb_func_end MOD53_021D941C
thumb_func_start MOD53_021D9440
MOD53_021D9440: ; 0x021D9440
push {r4, lr}
add r4, r0, #0
ldr r0, _021D945C ; =0x000093F8
ldr r1, [r4, r0]
cmp r1, #0
beq _021D945A
sub r0, #8
ldr r0, [r4, r0]
bl FUN_020146C4
ldr r0, _021D945C ; =0x000093F8
mov r1, #0
str r1, [r4, r0]
_021D945A:
pop {r4, pc}
.align 2, 0
_021D945C: .word 0x000093F8
thumb_func_end MOD53_021D9440
thumb_func_start MOD53_021D9460
MOD53_021D9460: ; 0x021D9460
push {r3, lr}
ldr r0, _021D9478 ; =0x021D94E8
bl FUN_02020988
mov r1, #0
mvn r1, r1
cmp r0, r1
beq _021D9474
mov r0, #1
pop {r3, pc}
_021D9474:
mov r0, #0
pop {r3, pc}
.align 2, 0
_021D9478: .word 0x021D94E8
thumb_func_end MOD53_021D9460
thumb_func_start MOD53_021D947C
MOD53_021D947C: ; 0x021D947C
push {r4, r5}
ldrh r4, [r1]
cmp r4, #0
beq _021D949C
ldrh r4, [r1, #2]
strb r4, [r0]
ldrh r4, [r1, #4]
strb r4, [r0, #4]
ldrh r4, [r1]
sub r4, r4, #1
lsl r4, r4, #3
add r5, r1, r4
ldrh r4, [r5, #2]
strb r4, [r0, #1]
ldrh r4, [r5, #4]
strb r4, [r0, #5]
_021D949C:
ldrh r5, [r1]
cmp r5, #2
blo _021D94AC
ldrb r4, [r0, #8]
mov r1, #0x38
bic r4, r1
mov r1, #0x10
b _021D94BA
_021D94AC:
ldrb r1, [r0, #8]
mov r4, #0x38
bic r1, r4
lsl r4, r5, #0x18
lsr r4, r4, #0x18
lsl r4, r4, #0x1d
lsr r4, r4, #0x1a
_021D94BA:
orr r1, r4
strb r1, [r0, #8]
ldrb r1, [r0, #8]
mov r4, #7
lsl r2, r2, #0x18
bic r1, r4
lsr r4, r2, #0x18
mov r2, #7
and r2, r4
orr r1, r2
strb r1, [r0, #8]
ldrb r2, [r0, #8]
mov r1, #0xc0
bic r2, r1
lsl r1, r3, #0x18
lsr r1, r1, #0x18
lsl r1, r1, #0x1e
lsr r1, r1, #0x18
orr r1, r2
strb r1, [r0, #8]
pop {r4, r5}
bx lr
.align 2, 0
thumb_func_end MOD53_021D947C
.section .rodata
; 0x021D94E8
.byte 0x30, 0x70, 0xC8, 0xF8, 0xFF, 0x00, 0x00, 0x00, 0x10, 0x88, 0x08, 0xF8, 0xFF, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x14, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x1E, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1E, 0x02
.byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1F, 0x00, 0x00, 0x01, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1B, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x96, 0xBD, 0x00, 0x17, 0x96, 0xBD, 0x18, 0x2F, 0x96, 0xBD, 0x30, 0x47
.byte 0x96, 0xBD, 0x48, 0x5F, 0x96, 0xBD, 0x60, 0x77, 0x96, 0xBD, 0x78, 0x8F, 0x96, 0xBD, 0x90, 0xA7
.byte 0x96, 0xBD, 0xA8, 0xBF, 0x96, 0xBD, 0xC0, 0xFF, 0x01, 0x0D, 0x0E, 0x1A, 0x01, 0x0D, 0x1E, 0x2A
.byte 0x01, 0x0D, 0x2E, 0x3A, 0xFF, 0x00, 0x00, 0x00, 0x0D, 0x00, 0xAB, 0x00, 0x05, 0x00, 0x25, 0x00
.byte 0xAB, 0x00, 0x07, 0x00, 0x3D, 0x00, 0xAB, 0x00, 0x09, 0x00, 0x55, 0x00, 0xAB, 0x00, 0x0B, 0x00
.byte 0x6D, 0x00, 0xAB, 0x00, 0x0D, 0x00, 0x85, 0x00, 0xAB, 0x00, 0x0F, 0x00, 0x9D, 0x00, 0xAB, 0x00
.byte 0x11, 0x00, 0xB5, 0x00, 0xAB, 0x00, 0x13, 0x00, 0xE1, 0x00, 0xAB, 0x00, 0x15, 0x00, 0x14, 0x00
.byte 0x09, 0x00, 0x1D, 0x00, 0x24, 0x00, 0x09, 0x00, 0x20, 0x00, 0x34, 0x00, 0x09, 0x00, 0x21, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x22, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x44, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x66, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x88, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x10, 0x11, 0x01, 0x00, 0x10, 0x11, 0x01, 0x00
.byte 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00
.byte 0x20, 0x22, 0x02, 0x00, 0x20, 0x22, 0x02, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x30, 0x33, 0x03, 0x00, 0x30, 0x33, 0x03, 0x00
.byte 0x00, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00
.byte 0x40, 0x44, 0x04, 0x00, 0x40, 0x44, 0x04, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x50, 0x55, 0x05, 0x00, 0x50, 0x55, 0x05, 0x00
.byte 0x00, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00
.byte 0x60, 0x66, 0x06, 0x00, 0x60, 0x66, 0x06, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x70, 0x77, 0x07, 0x00, 0x70, 0x77, 0x07, 0x00
.byte 0x00, 0x77, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00
.byte 0x80, 0x88, 0x08, 0x00, 0x80, 0x88, 0x08, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x10, 0x11, 0x01, 0x00, 0x11, 0x11, 0x11, 0x00, 0x11, 0x11, 0x11, 0x00, 0x11, 0x11, 0x11, 0x00
.byte 0x11, 0x11, 0x11, 0x00, 0x10, 0x11, 0x01, 0x00, 0x20, 0x22, 0x02, 0x00, 0x22, 0x22, 0x22, 0x00
.byte 0x22, 0x22, 0x22, 0x00, 0x22, 0x22, 0x22, 0x00, 0x22, 0x22, 0x22, 0x00, 0x20, 0x22, 0x02, 0x00
.byte 0x30, 0x33, 0x03, 0x00, 0x33, 0x33, 0x33, 0x00, 0x33, 0x33, 0x33, 0x00, 0x33, 0x33, 0x33, 0x00
.byte 0x33, 0x33, 0x33, 0x00, 0x30, 0x33, 0x03, 0x00, 0x40, 0x44, 0x04, 0x00, 0x44, 0x44, 0x44, 0x00
.byte 0x44, 0x44, 0x44, 0x00, 0x44, 0x44, 0x44, 0x00, 0x44, 0x44, 0x44, 0x00, 0x40, 0x44, 0x04, 0x00
.byte 0x50, 0x55, 0x05, 0x00, 0x55, 0x55, 0x55, 0x00, 0x55, 0x55, 0x55, 0x00, 0x55, 0x55, 0x55, 0x00
.byte 0x55, 0x55, 0x55, 0x00, 0x50, 0x55, 0x05, 0x00, 0x60, 0x66, 0x06, 0x00, 0x66, 0x66, 0x66, 0x00
.byte 0x66, 0x66, 0x66, 0x00, 0x66, 0x66, 0x66, 0x00, 0x66, 0x66, 0x66, 0x00, 0x60, 0x66, 0x06, 0x00
.byte 0x70, 0x77, 0x07, 0x00, 0x77, 0x77, 0x77, 0x00, 0x77, 0x77, 0x77, 0x00, 0x77, 0x77, 0x77, 0x00
.byte 0x77, 0x77, 0x77, 0x00, 0x70, 0x77, 0x07, 0x00, 0x80, 0x88, 0x08, 0x00, 0x88, 0x88, 0x88, 0x00
.byte 0x88, 0x88, 0x88, 0x00, 0x88, 0x88, 0x88, 0x00, 0x88, 0x88, 0x88, 0x00, 0x80, 0x88, 0x08, 0x00
.section .data
; 0x021D98A0
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x95, 0x84, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00
.byte 0xED, 0x84, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00, 0xF9, 0x84, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00
.byte 0x25, 0x84, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x85, 0x1D, 0x02, 0x01, 0x00, 0x00, 0x00
.byte 0x7D, 0x85, 0x1D, 0x02, 0x01, 0x00, 0x00, 0x00, 0xE1, 0x86, 0x1D, 0x02, 0x01, 0x00, 0x00, 0x00
.byte 0x05, 0x87, 0x1D, 0x02, 0x01, 0x00, 0x00, 0x00, 0x9D, 0x87, 0x1D, 0x02, 0x01, 0x00, 0x00, 0x00
.byte 0xD9, 0x87, 0x1D, 0x02, 0x01, 0x00, 0x00, 0x00, 0xF9, 0x87, 0x1D, 0x02, 0x01, 0x00, 0x00, 0x00
.byte 0x25, 0x88, 0x1D, 0x02, 0x01, 0x00, 0x00, 0x00, 0x61, 0x88, 0x1D, 0x02, 0x01, 0x00, 0x00, 0x00
.byte 0xB1, 0x88, 0x1D, 0x02, 0x01, 0x00, 0x00, 0x00, 0x6D, 0x89, 0x1D, 0x02, 0x01, 0x00, 0x00, 0x00
.byte 0xA1, 0x89, 0x1D, 0x02, 0x01, 0x00, 0x00, 0x00, 0xC9, 0x89, 0x1D, 0x02, 0x01, 0x00, 0x00, 0x00
.byte 0x09, 0x8A, 0x1D, 0x02, 0x01, 0x00, 0x00, 0x00, 0x0D, 0x8A, 0x1D, 0x02, 0x01, 0x00, 0x00, 0x00
.byte 0x2D, 0x8A, 0x1D, 0x02, 0x01, 0x00, 0x00, 0x00, 0x51, 0x8A, 0x1D, 0x02, 0x01, 0x00, 0x00, 0x00
.byte 0xB1, 0x8A, 0x1D, 0x02, 0x01, 0x00, 0x00, 0x00, 0xF9, 0x8A, 0x1D, 0x02, 0x01, 0x00, 0x00, 0x00