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

4411 lines
77 KiB
ArmAsm

.include "asm/macros.inc"
.include "global.inc"
.section .text
.balign 4, 0
thumb_func_start MOD54_021D74E0
MOD54_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 _021D761A
_021D74F4:
b _021D7628
_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, _021D7630 ; =0xFFFFE0FF
and r1, r0
str r1, [r2]
ldr r2, _021D7634 ; =0x04001000
ldr r1, [r2]
and r0, r1
str r0, [r2]
mov r2, #0x41
mov r0, #3
mov r1, #0x33
lsl r2, r2, #0xc
bl FUN_0201681C
ldr r1, _021D7638 ; =0x00004A60
add r0, r6, #0
mov r2, #0x33
bl FUN_02006268
ldr r2, _021D7638 ; =0x00004A60
mov r1, #0
add r4, r0, #0
bl memset
mov r0, #0x33
bl FUN_02016B94
str r0, [r4]
add r0, r6, #0
bl FUN_0200628C
str r0, [r4, #8]
ldr r1, [r0]
ldr r0, _021D763C ; =0x00004A38
str r1, [r4, r0]
mov r0, #0x33
bl FUN_0200AA80
str r0, [r4, #0x24]
ldr r2, _021D7640 ; =0x000001E2
mov r0, #0
mov r1, #0x1a
mov r3, #0x33
bl FUN_0200A86C
str r0, [r4, #0x28]
mov r0, #4
mov r1, #8
bl FUN_0201669C
bl MOD54_021D7874
ldr r0, [r4]
bl MOD54_021D7894
mov r0, #0
bl FUN_0200E394
mov r0, #1
bl FUN_0200E394
mov r0, #0x10
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
mov r0, #0x33
str r0, [sp, #8]
mov r0, #0
mov r1, #0x11
add r2, r1, #0
add r3, r0, #0
bl FUN_0200E1D0
add r0, r4, #0
bl MOD54_021D7AA0
ldr r0, _021D7644 ; =MOD54_021D784C
add r1, r4, #0
bl FUN_02015F10
add r0, r4, #0
bl MOD54_021D799C
bl MOD54_021D7B8C
add r0, r4, #0
bl MOD54_021D7BBC
add r0, r4, #0
bl MOD54_021D7CAC
add r0, r4, #0
add r1, r6, #0
bl MOD54_021D7DB4
mov r1, #0
mov r0, #0x34
add r2, r1, #0
bl FUN_0200433C
add r0, r4, #0
bl FUN_02084098
bl FUN_020328E4
mov r0, #3
bl FUN_02032B6C
bl FUN_02031190
cmp r0, #0
bne _021D75F4
mov r0, #2
bl FUN_02052B74
_021D75F4:
bl FUN_02033E74
ldr r0, _021D763C ; =0x00004A38
mov r1, #0xed
lsl r1, r1, #2
ldr r0, [r4, r0]
add r1, r4, r1
bl MOD54_021D9570
ldr r0, _021D7648 ; =MOD54_021D77E8
add r1, r4, #0
mov r2, #5
bl FUN_0200CA60
str r0, [r4, #0x20]
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021D7628
_021D761A:
bl FUN_02006278
mov r0, #0
str r0, [r5]
add sp, #0xc
mov r0, #1
pop {r3, r4, r5, r6, pc}
_021D7628:
mov r0, #0
add sp, #0xc
pop {r3, r4, r5, r6, pc}
nop
_021D7630: .word 0xFFFFE0FF
_021D7634: .word 0x04001000
_021D7638: .word 0x00004A60
_021D763C: .word 0x00004A38
_021D7640: .word 0x000001E2
_021D7644: .word MOD54_021D784C
_021D7648: .word MOD54_021D77E8
thumb_func_end MOD54_021D74E0
thumb_func_start MOD54_021D764C
MOD54_021D764C: ; 0x021D764C
push {r3, r4, r5, lr}
add r5, r1, #0
bl FUN_02006278
add r4, r0, #0
bl FUN_02031190
cmp r0, #0
bne _021D7672
ldr r0, _021D7730 ; =0x00004A50
ldr r0, [r4, r0]
cmp r0, #0
beq _021D7672
bl FUN_0202CB8C
ldr r1, _021D7730 ; =0x00004A50
ldr r2, [r4, r1]
and r0, r2
str r0, [r4, r1]
_021D7672:
ldr r1, [r5]
cmp r1, #3
bhi _021D7726
add r0, r1, r1
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021D7684: ; jump table
.short _021D768C - _021D7684 - 2 ; case 0
.short _021D76B4 - _021D7684 - 2 ; case 1
.short _021D7702 - _021D7684 - 2 ; case 2
.short _021D771A - _021D7684 - 2 ; case 3
_021D768C:
bl FUN_0200E308
cmp r0, #0
beq _021D7726
mov r0, #1
str r0, [r5]
bl FUN_02031190
cmp r0, #0
beq _021D7726
bl MOD54_021D8C08
cmp r0, #2
ble _021D7726
mov r1, #0
mov r0, #0x72
add r2, r1, #0
bl FUN_02030ADC
b _021D7726
_021D76B4:
mov r0, #0xd1
lsl r0, r0, #2
ldr r0, [r4, r0]
lsl r2, r0, #2
ldr r0, _021D7734 ; =0x021D97E0
ldr r2, [r0, r2]
cmp r2, #0
beq _021D76CA
add r0, r4, #0
blx r2
str r0, [r5]
_021D76CA:
ldr r0, _021D7738 ; =0x00004A40
ldrb r0, [r4, r0]
cmp r0, #0
bne _021D76E2
mov r0, #0xa6
lsl r0, r0, #2
ldr r2, _021D773C ; =0x00010300
add r0, r4, r0
mov r1, #0
add r3, r4, #0
bl MOD54_021D8AF8
_021D76E2:
add r0, r4, #0
bl MOD54_021D8D50
bl FUN_02031190
cmp r0, #0
bne _021D7726
add r0, r4, #0
mov r1, #1
bl MOD54_021D8F94
ldr r1, [r5]
cmp r1, #1
bne _021D7726
str r0, [r5]
b _021D7726
_021D7702:
mov r0, #0xd1
lsl r0, r0, #2
ldr r0, [r4, r0]
lsl r2, r0, #2
ldr r0, _021D7734 ; =0x021D97E0
ldr r2, [r0, r2]
cmp r2, #0
beq _021D7726
add r0, r4, #0
blx r2
str r0, [r5]
b _021D7726
_021D771A:
bl FUN_0200E308
cmp r0, #0
beq _021D7726
mov r0, #1
pop {r3, r4, r5, pc}
_021D7726:
ldr r0, [r4, #0x50]
bl FUN_0201FDEC
mov r0, #0
pop {r3, r4, r5, pc}
.align 2, 0
_021D7730: .word 0x00004A50
_021D7734: .word 0x021D97E0
_021D7738: .word 0x00004A40
_021D773C: .word 0x00010300
thumb_func_end MOD54_021D764C
thumb_func_start MOD54_021D7740
MOD54_021D7740: ; 0x021D7740
push {r3, r4, r5, r6, r7, lr}
str r0, [sp]
bl FUN_02006278
add r6, r0, #0
ldr r0, [r6, #0x20]
bl FUN_0200CAB4
mov r0, #0x6b
lsl r0, r0, #2
ldr r0, [r6, r0]
bl FUN_02009C0C
mov r0, #0x1b
lsl r0, r0, #4
ldr r0, [r6, r0]
bl FUN_02009E04
mov r7, #0x5f
mov r4, #0
add r5, r6, #0
lsl r7, r7, #2
_021D776C:
ldr r0, [r5, r7]
bl FUN_02008E2C
add r4, r4, #1
add r5, r5, #4
cmp r4, #4
blt _021D776C
ldr r0, [r6, #0x50]
bl FUN_0201FD58
bl FUN_02009FA0
bl FUN_0201D12C
bl FUN_0201E08C
add r0, r6, #0
bl MOD54_021D7EDC
ldr r0, [r6]
bl MOD54_021D7A6C
mov r0, #2
bl FUN_02032B6C
bl FUN_02031B50
ldr r0, [r6, #8]
ldr r0, [r0, #4]
bl FUN_02052F8C
ldr r0, [r6, #0x28]
bl FUN_0200A8B8
ldr r0, [r6, #0x24]
bl FUN_0200AB18
add r0, r6, #0
bl MOD54_021D7A34
ldr r0, [sp]
bl FUN_0200627C
ldr r2, _021D77E4 ; =0x04000304
ldrh r1, [r2]
lsr r0, r2, #0xb
orr r0, r1
strh r0, [r2]
mov r0, #0
bl FUN_02052B74
mov r0, #0
add r1, r0, #0
bl FUN_02015F10
mov r0, #0x33
bl FUN_020168D0
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_021D77E4: .word 0x04000304
thumb_func_end MOD54_021D7740
thumb_func_start MOD54_021D77E8
MOD54_021D77E8: ; 0x021D77E8
push {r4, lr}
add r4, r1, #0
ldr r0, [r4, #0xc]
add r1, #0xc
cmp r0, #0
beq _021D7842
ldr r0, [r1, #4]
ldr r3, [r1, #8]
lsl r2, r0, #1
ldr r0, _021D7844 ; =0x021D968A
ldrb r0, [r0, r2]
cmp r3, r0
ble _021D7832
mov r0, #0
str r0, [r1, #8]
ldr r2, [r1, #4]
add r2, r2, #1
str r2, [r1, #4]
lsl r3, r2, #1
ldr r2, _021D7848 ; =0x021D968B
ldrb r2, [r2, r3]
cmp r2, #0xff
bne _021D7818
str r0, [r1, #4]
_021D7818:
ldr r0, [r1, #0x10]
ldr r1, [r1, #4]
ldr r0, [r0, #0xc]
lsl r2, r1, #1
ldr r1, _021D7848 ; =0x021D968B
ldrb r1, [r1, r2]
mov r2, #0x20
lsl r1, r1, #5
add r0, r0, r1
mov r1, #0
bl GX_LoadOBJPltt
b _021D7838
_021D7832:
ldr r0, [r4, #0x14]
add r0, r0, #1
str r0, [r4, #0x14]
_021D7838:
mov r0, #0xe9
lsl r0, r0, #2
add r0, r4, r0
bl MOD54_021D8A90
_021D7842:
pop {r4, pc}
.align 2, 0
_021D7844: .word 0x021D968A
_021D7848: .word 0x021D968B
thumb_func_end MOD54_021D77E8
thumb_func_start MOD54_021D784C
MOD54_021D784C: ; 0x021D784C
push {r4, lr}
add r4, r0, #0
bl FUN_0201C30C
bl FUN_02009F80
add r0, r4, #0
bl FUN_0201AB60
ldr r3, _021D786C ; =0x027E0000
ldr r1, _021D7870 ; =0x00003FF8
mov r0, #1
ldr r2, [r3, r1]
orr r0, r2
str r0, [r3, r1]
pop {r4, pc}
.align 2, 0
_021D786C: .word 0x027E0000
_021D7870: .word 0x00003FF8
thumb_func_end MOD54_021D784C
thumb_func_start MOD54_021D7874
MOD54_021D7874: ; 0x021D7874
push {r4, lr}
sub sp, #0x28
ldr r4, _021D7890 ; =0x021D9758
add r3, sp, #0
mov r2, #5
_021D787E:
ldmia r4!, {r0, r1}
stmia r3!, {r0, r1}
sub r2, r2, #1
bne _021D787E
add r0, sp, #0
bl FUN_0201E66C
add sp, #0x28
pop {r4, pc}
.align 2, 0
_021D7890: .word 0x021D9758
thumb_func_end MOD54_021D7874
thumb_func_start MOD54_021D7894
MOD54_021D7894: ; 0x021D7894
push {r4, r5, lr}
sub sp, #0x9c
ldr r5, _021D7984 ; =0x021D9694
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, _021D7988 ; =0x021D9720
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, #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, _021D798C ; =0x021D973C
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, #5
str r0, [r3]
add r0, r4, #0
mov r3, #0
bl FUN_02016C18
add r0, r4, #0
mov r1, #5
bl FUN_02018744
ldr r5, _021D7990 ; =0x021D96CC
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, #6
str r0, [r3]
add r0, r4, #0
mov r3, #0
bl FUN_02016C18
ldr r5, _021D7994 ; =0x021D96E8
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, #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, _021D7998 ; =0x021D9704
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, #1
mov r3, #0
bl FUN_02016C18
mov r0, #0
mov r1, #0x20
add r2, r0, #0
mov r3, #0x33
bl FUN_02017F18
mov r0, #4
mov r1, #0x20
mov r2, #0
mov r3, #0x33
bl FUN_02017F18
add sp, #0x9c
pop {r4, r5, pc}
nop
_021D7984: .word 0x021D9694
_021D7988: .word 0x021D9720
_021D798C: .word 0x021D973C
_021D7990: .word 0x021D96CC
_021D7994: .word 0x021D96E8
_021D7998: .word 0x021D9704
thumb_func_end MOD54_021D7894
thumb_func_start MOD54_021D799C
MOD54_021D799C: ; 0x021D799C
push {r3, r4, r5, r6, r7, lr}
add r7, r0, #0
mov r6, #0
add r4, r7, #0
add r5, r7, #0
_021D79A6:
mov r0, #8
mov r1, #0x33
bl FUN_020219F4
str r0, [r4, #0x2c]
mov r0, #0xd9
mov r1, #0
lsl r0, r0, #2
str r1, [r5, r0]
add r0, r0, #4
str r1, [r5, r0]
mov r0, #0xe3
lsl r0, r0, #2
str r1, [r4, r0]
add r6, r6, #1
add r4, r4, #4
add r5, #8
cmp r6, #5
blt _021D79A6
mov r0, #0xb4
mov r1, #0x33
bl FUN_020219F4
str r0, [r7, #0x44]
mov r0, #0x28
mov r1, #0x33
bl FUN_020219F4
str r0, [r7, #0x48]
mov r0, #0xd1
mov r1, #0
lsl r0, r0, #2
str r1, [r7, r0]
ldr r0, [r7, #0x28]
ldr r2, [r7, #0x48]
mov r1, #0x11
bl FUN_0200A8E0
add r0, r7, #0
bl MOD54_021D8E64
mov r0, #0x33
bl FUN_02053708
mov r1, #0xea
lsl r1, r1, #2
str r0, [r7, r1]
mov r0, #0
str r0, [r7, #0xc]
str r0, [r7, #0x14]
add r2, r7, #0
str r0, [r7, #0x10]
mov r0, #0x56
mov r1, #1
add r2, #0x1c
mov r3, #0x33
bl FUN_02006C08
str r0, [r7, #0x18]
mov r1, #0x32
ldr r0, _021D7A30 ; =0x00004A44
mov r2, #0
str r2, [r7, r0]
lsl r1, r1, #4
str r2, [r7, r1]
mov r1, #2
add r0, r0, #4
str r1, [r7, r0]
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_021D7A30: .word 0x00004A44
thumb_func_end MOD54_021D799C
thumb_func_start MOD54_021D7A34
MOD54_021D7A34: ; 0x021D7A34
push {r4, r5, r6, lr}
add r6, r0, #0
bl MOD54_021D8F0C
ldr r0, [r6, #0x18]
bl FreeToHeap
mov r0, #0xea
lsl r0, r0, #2
ldr r0, [r6, r0]
bl FreeToHeap
mov r4, #0
add r5, r6, #0
_021D7A50:
ldr r0, [r5, #0x2c]
bl FUN_02021A20
add r4, r4, #1
add r5, r5, #4
cmp r4, #5
blt _021D7A50
ldr r0, [r6, #0x48]
bl FUN_02021A20
ldr r0, [r6, #0x44]
bl FUN_02021A20
pop {r4, r5, r6, pc}
thumb_func_end MOD54_021D7A34
thumb_func_start MOD54_021D7A6C
MOD54_021D7A6C: ; 0x021D7A6C
push {r4, lr}
add r4, r0, #0
mov r1, #6
bl FUN_020178A0
add r0, r4, #0
mov r1, #5
bl FUN_020178A0
add r0, r4, #0
mov r1, #4
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 MOD54_021D7A6C
thumb_func_start MOD54_021D7AA0
MOD54_021D7AA0: ; 0x021D7AA0
push {r3, r4, r5, lr}
sub sp, #0x10
add r5, r0, #0
mov r0, #2
ldr r4, [r5]
mov r1, #0
lsl r0, r0, #8
str r0, [sp]
mov r0, #0x33
str r0, [sp, #4]
mov r0, #0x56
add r2, r1, #0
add r3, r1, #0
bl FUN_02006930
mov r0, #0x20
str r0, [sp]
mov r0, #0x33
str r0, [sp, #4]
mov r0, #0xc
add r1, r0, #0
mov r2, #4
mov r3, #0
bl FUN_02006930
mov r1, #0x1a
mov r0, #0
lsl r1, r1, #4
mov r2, #0x33
bl FUN_02002EEC
mov r1, #0x1a
mov r0, #4
lsl r1, r1, #4
mov r2, #0x33
bl FUN_02002EEC
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
mov r0, #1
str r0, [sp, #8]
mov r0, #0x33
str r0, [sp, #0xc]
mov r0, #0xc
mov r1, #0xa
add r2, r4, #0
mov r3, #6
bl FUN_0200687C
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
mov r0, #1
str r0, [sp, #8]
mov r0, #0x33
str r0, [sp, #0xc]
mov r0, #0xc
mov r1, #0xb
add r2, r4, #0
mov r3, #6
bl FUN_020068C8
mov r0, #0
str r0, [sp]
mov r0, #2
lsl r0, r0, #0xc
str r0, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0x33
str r0, [sp, #0xc]
mov r0, #0x56
mov r1, #2
add r2, r4, #0
bl FUN_0200687C
mov r0, #0
str r0, [sp]
mov r0, #6
lsl r0, r0, #8
str r0, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0x33
str r0, [sp, #0xc]
mov r0, #0x56
mov r1, #3
add r2, r4, #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, #0x33
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, #0x33
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}
.align 2, 0
thumb_func_end MOD54_021D7AA0
thumb_func_start MOD54_021D7B8C
MOD54_021D7B8C: ; 0x021D7B8C
push {r4, lr}
sub sp, #0x10
ldr r4, _021D7BB8 ; =0x021D96A4
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, #0x33
bl FUN_0201E00C
bl FUN_0201D168
bl FUN_0201E0BC
add sp, #0x10
pop {r4, pc}
.align 2, 0
_021D7BB8: .word 0x021D96A4
thumb_func_end MOD54_021D7B8C
thumb_func_start MOD54_021D7BBC
MOD54_021D7BBC: ; 0x021D7BBC
push {r4, r5, r6, r7, lr}
sub sp, #0x14
add r6, 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, #0x33
str r2, [sp, #0x10]
add r2, r0, #0
bl FUN_02009EAC
add r1, r6, #0
mov r0, #0x1e
add r1, #0x54
mov r2, #0x33
bl FUN_02008C9C
str r0, [r6, #0x50]
add r0, r6, #0
mov r2, #1
add r0, #0x54
mov r1, #0
lsl r2, r2, #0x14
bl FUN_02008D24
mov r7, #0x5f
mov r4, #0
add r5, r6, #0
lsl r7, r7, #2
_021D7C02:
mov r0, #3
add r1, r4, #0
mov r2, #0x33
bl FUN_02008DEC
str r0, [r5, r7]
add r4, r4, #1
add r5, r5, #4
cmp r4, #4
blt _021D7C02
mov r0, #2
str r0, [sp]
mov r3, #1
str r3, [sp, #4]
mov r0, #0x33
str r0, [sp, #8]
mov r0, #0x5f
lsl r0, r0, #2
ldr r0, [r6, r0]
mov r1, #0x56
mov r2, #0xc
bl FUN_02008F34
mov r1, #0x6b
lsl r1, r1, #2
str r0, [r6, r1]
mov r0, #2
str r0, [sp]
mov r2, #1
str r2, [sp, #4]
mov r0, #0xf
str r0, [sp, #8]
mov r0, #0x33
sub r1, #0x2c
str r0, [sp, #0xc]
ldr r0, [r6, r1]
mov r1, #0x56
mov r3, #0
bl FUN_02008FEC
mov r1, #0x1b
lsl r1, r1, #4
str r0, [r6, r1]
mov r0, #2
str r0, [sp]
str r0, [sp, #4]
mov r0, #0x33
sub r1, #0x2c
str r0, [sp, #8]
ldr r0, [r6, r1]
mov r1, #0x56
mov r2, #0xd
mov r3, #1
bl FUN_020090AC
mov r1, #0x6d
lsl r1, r1, #2
str r0, [r6, r1]
mov r0, #2
str r0, [sp]
mov r0, #3
str r0, [sp, #4]
mov r0, #0x33
sub r1, #0x2c
str r0, [sp, #8]
ldr r0, [r6, r1]
mov r1, #0x56
mov r2, #0xe
mov r3, #1
bl FUN_020090AC
mov r1, #0x6e
lsl r1, r1, #2
str r0, [r6, r1]
sub r1, #0xc
ldr r0, [r6, r1]
bl FUN_02009A50
mov r0, #0x1b
lsl r0, r0, #4
ldr r0, [r6, r0]
bl FUN_02009CF0
add sp, #0x14
pop {r4, r5, r6, r7, pc}
thumb_func_end MOD54_021D7BBC
thumb_func_start MOD54_021D7CAC
MOD54_021D7CAC: ; 0x021D7CAC
push {r4, r5, r6, r7, lr}
sub sp, #0x5c
mov r1, #2
add r5, r0, #0
str r1, [sp]
sub r0, r1, #3
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0
mov r3, #0x5f
str r0, [sp, #0xc]
mov r2, #1
lsl r3, r3, #2
str r2, [sp, #0x10]
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, #0x88
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, #0x50]
mov r1, #0
str r0, [sp, #0x2c]
mov r0, #0x81
lsl r0, r0, #2
add r0, r5, r0
str r0, [sp, #0x30]
mov r0, #1
lsl r0, r0, #0xc
str r1, [sp, #0x3c]
str r0, [sp, #0x40]
str r0, [sp, #0x44]
str r0, [sp, #0x48]
add r0, sp, #0x2c
strh r1, [r0, #0x20]
mov r0, #1
str r0, [sp, #0x50]
str r0, [sp, #0x54]
mov r0, #0x33
str r0, [sp, #0x58]
lsl r0, r0, #0xe
str r0, [sp, #0x34]
mov r0, #0x15
lsl r0, r0, #0xe
str r0, [sp, #0x38]
add r0, sp, #0x2c
bl FUN_0201FE94
mov r1, #0x8a
lsl r1, r1, #2
str r0, [r5, r1]
ldr r0, [r5, r1]
mov r1, #1
bl FUN_020200BC
mov r0, #0x8a
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #1
bl FUN_020200A0
mov r7, #0x8b
ldr r4, _021D7DB0 ; =0x021D96B4
mov r6, #0
lsl r7, r7, #2
_021D7D4C:
ldrh r0, [r4, #4]
lsl r0, r0, #0xc
str r0, [sp, #0x34]
ldrh r0, [r4, #6]
lsl r0, r0, #0xc
str r0, [sp, #0x38]
add r0, sp, #0x2c
bl FUN_0201FE94
mov r1, #0x8b
lsl r1, r1, #2
str r0, [r5, r1]
add r0, r1, #0
ldr r0, [r5, r0]
mov r1, #1
bl FUN_020200BC
mov r0, #0x8b
lsl r0, r0, #2
sub r1, r6, #1
lsl r1, r1, #1
ldr r0, [r5, r0]
add r1, #0x1b
bl FUN_02020130
ldr r0, [r5, r7]
mov r1, #0
bl FUN_020200A0
add r6, r6, #1
add r4, r4, #4
add r5, r5, #4
cmp r6, #5
blt _021D7D4C
mov r0, #6
lsl r0, r0, #0xe
str r0, [sp, #0x34]
mov r0, #0x1a
lsl r0, r0, #0x10
str r0, [sp, #0x38]
mov r0, #0x10
mov r1, #1
bl FUN_0201E6E4
mov r0, #0x10
mov r1, #1
bl FUN_0201E74C
add sp, #0x5c
pop {r4, r5, r6, r7, pc}
.align 2, 0
_021D7DB0: .word 0x021D96B4
thumb_func_end MOD54_021D7CAC
thumb_func_start MOD54_021D7DB4
MOD54_021D7DB4: ; 0x021D7DB4
push {r3, r4, lr}
sub sp, #0x14
add r4, r0, #0
mov r0, #0x14
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, _021D7E90 ; =0x000001C3
mov r1, #0xbe
str r0, [sp, #0x10]
lsl r1, r1, #2
ldr r0, [r4]
add r1, r4, r1
mov r2, #5
mov r3, #0x1a
bl FUN_02019064
mov r0, #0xbe
lsl r0, r0, #2
add r0, r4, r0
mov r1, #0
bl FUN_02019620
mov r0, #0x13
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, #0xba
str r0, [sp, #0x10]
lsl r1, r1, #2
ldr r0, [r4]
add r1, r4, r1
mov r2, #0
mov r3, #2
bl FUN_02019064
mov r0, #0xba
lsl r0, r0, #2
add r0, r4, r0
mov r1, #0xf
bl FUN_02019620
mov r0, #1
str r0, [sp]
mov r0, #0x1a
str r0, [sp, #4]
mov r0, #2
str r0, [sp, #8]
mov r0, #0xf
str r0, [sp, #0xc]
mov r0, #0x94
mov r1, #0xc2
str r0, [sp, #0x10]
lsl r1, r1, #2
ldr r0, [r4]
add r1, r4, r1
mov r2, #0
mov r3, #3
bl FUN_02019064
mov r0, #0xc2
lsl r0, r0, #2
ldr r1, [r4, #0x48]
add r0, r4, r0
mov r2, #0
bl MOD54_021D7E98
mov r0, #6
str r0, [sp]
mov r0, #0x10
str r0, [sp, #4]
mov r0, #0xb
str r0, [sp, #8]
mov r0, #0xf
str r0, [sp, #0xc]
mov r0, #0xc8
mov r1, #0xa6
str r0, [sp, #0x10]
lsl r1, r1, #2
ldr r0, [r4]
add r1, r4, r1
mov r2, #0
mov r3, #2
bl FUN_02019064
mov r0, #0xa6
lsl r0, r0, #2
add r0, r4, r0
mov r1, #0
bl FUN_02019620
mov r0, #0xa6
lsl r0, r0, #2
ldr r2, _021D7E94 ; =0x00010300
add r0, r4, r0
mov r1, #0
add r3, r4, #0
bl MOD54_021D8AF8
add sp, #0x14
pop {r3, r4, pc}
.align 2, 0
_021D7E90: .word 0x000001C3
_021D7E94: .word 0x00010300
thumb_func_end MOD54_021D7DB4
thumb_func_start MOD54_021D7E98
MOD54_021D7E98: ; 0x021D7E98
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x10
add r5, r0, #0
add r4, r2, #0
mov r0, #1
mov r2, #0
add r7, r1, #0
bl FUN_02002E14
add r6, r0, #0
add r0, r5, #0
mov r1, #0
bl FUN_02019620
mov r1, #1
str r1, [sp]
mov r0, #0x41
mov r3, #0xd0
str r4, [sp, #4]
sub r4, r3, r6
lsl r0, r0, #0xa
lsr r3, r4, #0x1f
str r0, [sp, #8]
mov r0, #0
add r3, r4, r3
str r0, [sp, #0xc]
add r0, r5, #0
add r2, r7, #0
asr r3, r3, #1
bl FUN_0201BDE0
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_end MOD54_021D7E98
thumb_func_start MOD54_021D7EDC
MOD54_021D7EDC: ; 0x021D7EDC
push {r4, lr}
add r4, r0, #0
mov r0, #0xa6
lsl r0, r0, #2
add r0, r4, r0
bl FUN_02019178
mov r0, #0xc2
lsl r0, r0, #2
add r0, r4, r0
bl FUN_02019178
mov r0, #0xbe
lsl r0, r0, #2
add r0, r4, r0
bl FUN_02019178
mov r0, #0xba
lsl r0, r0, #2
add r0, r4, r0
bl FUN_02019178
pop {r4, pc}
.align 2, 0
thumb_func_end MOD54_021D7EDC
thumb_func_start MOD54_021D7F0C
MOD54_021D7F0C: ; 0x021D7F0C
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
mov r0, #0
mov r1, #1
bl FUN_020334E8
bl FUN_02031190
cmp r0, #0
bne _021D7F2E
add r0, r5, #0
mov r1, #2
mov r2, #0
bl MOD54_021D8C90
b _021D7F38
_021D7F2E:
add r0, r5, #0
mov r1, #8
mov r2, #0
bl MOD54_021D8C90
_021D7F38:
add r0, r5, #0
mov r1, #3
bl MOD54_021D80BC
add r0, r4, #0
pop {r3, r4, r5, pc}
thumb_func_end MOD54_021D7F0C
thumb_func_start MOD54_021D7F44
MOD54_021D7F44: ; 0x021D7F44
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
bl MOD54_021D7F70
bl FUN_02031190
cmp r0, #0
bne _021D7F66
bl MOD54_021D8ADC
cmp r0, #1
beq _021D7F6C
add r0, r5, #0
bl MOD54_021D8C04
b _021D7F6C
_021D7F66:
add r0, r5, #0
bl MOD54_021D8C04
_021D7F6C:
add r0, r4, #0
pop {r3, r4, r5, pc}
thumb_func_end MOD54_021D7F44
thumb_func_start MOD54_021D7F70
MOD54_021D7F70: ; 0x021D7F70
push {r3, r4, lr}
sub sp, #4
add r4, r0, #0
ldr r0, _021D808C ; =0x021C48B8
ldr r1, [r0, #0x48]
mov r0, #1
tst r0, r1
beq _021D7FD6
bl FUN_02031190
cmp r0, #0
bne _021D8086
bl MOD54_021D8C08
ldr r1, _021D8090 ; =0x00004A48
ldr r2, [r4, r1]
cmp r2, r0
bne _021D7FCC
add r1, #8
ldr r0, [r4, r1]
cmp r0, #0
bne _021D7FCC
mov r1, #1
add r0, sp, #0
strb r1, [r0, #2]
add r0, r4, #0
mov r1, #3
mov r2, #0
bl MOD54_021D8C90
add r0, r4, #0
mov r1, #0x16
bl MOD54_021D80BC
add r1, sp, #0
mov r0, #0x75
add r1, #2
mov r2, #1
bl FUN_02030ADC
add r0, r4, #0
mov r1, #0
bl MOD54_021D8F40
add sp, #4
pop {r3, r4, pc}
_021D7FCC:
ldr r0, _021D8094 ; =0x000005F2
bl FUN_020054C8
add sp, #4
pop {r3, r4, pc}
_021D7FD6:
mov r0, #2
tst r0, r1
beq _021D805A
bl FUN_02031190
cmp r0, #0
beq _021D800C
ldr r0, _021D8098 ; =0x00004A3C
ldr r0, [r4, r0]
cmp r0, #0
bne _021D8002
add r0, r4, #0
mov r1, #4
mov r2, #0
bl MOD54_021D8C90
add r0, r4, #0
mov r1, #4
bl MOD54_021D80BC
add sp, #4
pop {r3, r4, pc}
_021D8002:
ldr r0, _021D8094 ; =0x000005F2
bl FUN_020054C8
add sp, #4
pop {r3, r4, pc}
_021D800C:
bl FUN_02030F20
ldr r1, _021D8090 ; =0x00004A48
ldr r2, [r4, r1]
cmp r2, r0
bne _021D8050
add r1, #8
ldr r0, [r4, r1]
cmp r0, #0
bne _021D8050
mov r1, #1
add r0, sp, #0
strb r1, [r0, #1]
add r0, r4, #0
mov r1, #4
mov r2, #0
bl MOD54_021D8C90
add r0, r4, #0
mov r1, #4
bl MOD54_021D80BC
add r1, sp, #0
mov r0, #0x75
add r1, #1
mov r2, #1
bl FUN_02030ADC
add r0, r4, #0
mov r1, #0
bl MOD54_021D8F40
add sp, #4
pop {r3, r4, pc}
_021D8050:
ldr r0, _021D8094 ; =0x000005F2
bl FUN_020054C8
add sp, #4
pop {r3, r4, pc}
_021D805A:
ldr r0, _021D809C ; =0x00004A4C
ldr r0, [r4, r0]
cmp r0, #0
bne _021D8086
bl FUN_02031190
cmp r0, #0
bne _021D8086
bl FUN_02030F20
ldr r1, _021D8090 ; =0x00004A48
ldr r1, [r4, r1]
cmp r1, r0
bne _021D8086
mov r1, #0
add r0, sp, #0
strb r1, [r0]
mov r0, #0x75
add r1, sp, #0
mov r2, #1
bl FUN_02030ADC
_021D8086:
add sp, #4
pop {r3, r4, pc}
nop
_021D808C: .word 0x021C48B8
_021D8090: .word 0x00004A48
_021D8094: .word 0x000005F2
_021D8098: .word 0x00004A3C
_021D809C: .word 0x00004A4C
thumb_func_end MOD54_021D7F70
thumb_func_start MOD54_021D80A0
MOD54_021D80A0: ; 0x021D80A0
bx lr
.align 2, 0
thumb_func_end MOD54_021D80A0
thumb_func_start MOD54_021D80A4
MOD54_021D80A4: ; 0x021D80A4
push {r3, r4, r5, lr}
add r4, r1, #0
add r5, r0, #0
mov r1, #2
bl MOD54_021D80BC
add r0, r5, #0
bl MOD54_021D80A0
add r0, r4, #0
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_end MOD54_021D80A4
thumb_func_start MOD54_021D80BC
MOD54_021D80BC: ; 0x021D80BC
mov r2, #0xd1
mov r3, #0x1e
lsl r2, r2, #2
str r3, [r0, r2]
add r2, r2, #4
str r1, [r0, r2]
bx lr
.align 2, 0
thumb_func_end MOD54_021D80BC
thumb_func_start MOD54_021D80CC
MOD54_021D80CC: ; 0x021D80CC
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r0, [r5, #0x4c]
add r4, r1, #0
bl MOD54_021D8D20
cmp r0, #0
beq _021D80E6
mov r0, #0xd2
lsl r0, r0, #2
ldr r1, [r5, r0]
sub r0, r0, #4
str r1, [r5, r0]
_021D80E6:
add r0, r5, #0
bl MOD54_021D80A0
add r0, r4, #0
pop {r3, r4, r5, pc}
thumb_func_end MOD54_021D80CC
thumb_func_start MOD54_021D80F0
MOD54_021D80F0: ; 0x021D80F0
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
bl FUN_02031190
cmp r0, #0
bne _021D810C
mov r0, #0
str r0, [sp]
mov r0, #0x75
add r1, sp, #0
mov r2, #1
bl FUN_02030ADC
_021D810C:
mov r0, #0xd1
mov r1, #3
lsl r0, r0, #2
str r1, [r5, r0]
add r0, r5, #0
bl MOD54_021D80A0
add r0, r4, #0
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_end MOD54_021D80F0
thumb_func_start MOD54_021D8120
MOD54_021D8120: ; 0x021D8120
push {r3, r4, r5, lr}
add r5, r0, #0
mov r0, #0x33
add r4, r1, #0
str r0, [sp]
ldr r0, [r5]
ldr r1, _021D814C ; =0x021D9678
mov r2, #0x1f
mov r3, #0xb
bl FUN_02002198
mov r1, #0x32
lsl r1, r1, #4
str r0, [r5, r1]
mov r0, #5
add r1, #0x24
str r0, [r5, r1]
add r0, r5, #0
bl MOD54_021D80A0
add r0, r4, #0
pop {r3, r4, r5, pc}
.align 2, 0
_021D814C: .word 0x021D9678
thumb_func_end MOD54_021D8120
thumb_func_start MOD54_021D8150
MOD54_021D8150: ; 0x021D8150
push {r4, r5, r6, lr}
sub sp, #8
add r5, r0, #0
add r4, r1, #0
bl FUN_02031190
cmp r0, #0
beq _021D8184
ldr r0, _021D826C ; =0x00004A3C
ldr r0, [r5, r0]
cmp r0, #0
beq _021D81A8
ldr r0, _021D8270 ; =0x021C48B8
ldr r1, [r0, #0x48]
mov r0, #0xc3
tst r0, r1
beq _021D8178
ldr r0, _021D8274 ; =0x000005F2
bl FUN_020054C8
_021D8178:
add r0, r5, #0
bl MOD54_021D80A0
add sp, #8
add r0, r4, #0
pop {r4, r5, r6, pc}
_021D8184:
ldr r0, _021D8278 ; =0x00004A50
ldr r0, [r5, r0]
cmp r0, #0
beq _021D81A8
ldr r0, _021D8270 ; =0x021C48B8
ldr r1, [r0, #0x48]
mov r0, #0xc3
tst r0, r1
beq _021D819C
ldr r0, _021D8274 ; =0x000005F2
bl FUN_020054C8
_021D819C:
add r0, r5, #0
bl MOD54_021D80A0
add sp, #8
add r0, r4, #0
pop {r4, r5, r6, pc}
_021D81A8:
bl MOD54_021D8C08
add r6, r0, #0
bl FUN_02030F20
cmp r6, r0
beq _021D81C2
add r0, r5, #0
bl MOD54_021D80A0
add sp, #8
add r0, r4, #0
pop {r4, r5, r6, pc}
_021D81C2:
mov r0, #0x32
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #0x33
bl FUN_020021AC
mov r1, #0
mvn r1, r1
cmp r0, r1
beq _021D825E
sub r1, r1, #1
cmp r0, r1
bne _021D8204
bl FUN_02031190
cmp r0, #0
bne _021D81FA
mov r0, #0
str r0, [sp, #4]
mov r0, #0x75
add r1, sp, #4
mov r2, #1
bl FUN_02030ADC
add r0, r5, #0
mov r1, #1
bl MOD54_021D8F40
_021D81FA:
add r0, r5, #0
mov r1, #0
bl MOD54_021D80BC
b _021D8256
_021D8204:
bl FUN_02031190
cmp r0, #0
bne _021D8220
add r0, r5, #0
mov r1, #0xb
bl MOD54_021D80BC
add r0, r5, #0
mov r1, #0xe
mov r2, #0
bl MOD54_021D8C90
b _021D8256
_021D8220:
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, _021D827C ; =0x00004A54
mov r1, #1
strb r1, [r5, r0]
mov r1, #0
add r0, #0xa
strh r1, [r5, r0]
mov r0, #0xd1
mov r1, #6
lsl r0, r0, #2
str r1, [r5, r0]
mov r0, #0x70
add r1, sp, #0
mov r2, #4
bl FUN_02030ADC
_021D8256:
mov r0, #0x32
mov r1, #0
lsl r0, r0, #4
str r1, [r5, r0]
_021D825E:
add r0, r5, #0
bl MOD54_021D80A0
add r0, r4, #0
add sp, #8
pop {r4, r5, r6, pc}
nop
_021D826C: .word 0x00004A3C
_021D8270: .word 0x021C48B8
_021D8274: .word 0x000005F2
_021D8278: .word 0x00004A50
_021D827C: .word 0x00004A54
thumb_func_end MOD54_021D8150
thumb_func_start MOD54_021D8280
MOD54_021D8280: ; 0x021D8280
push {r4, lr}
add r4, r1, #0
ldr r1, _021D8294 ; =0x00004A5E
mov r2, #0
strh r2, [r0, r1]
bl MOD54_021D80A0
add r0, r4, #0
pop {r4, pc}
nop
_021D8294: .word 0x00004A5E
thumb_func_end MOD54_021D8280
thumb_func_start MOD54_021D8298
MOD54_021D8298: ; 0x021D8298
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
bl FUN_02030F20
ldr r1, _021D8318 ; =0x00004A5C
ldrh r1, [r5, r1]
cmp r1, r0
bne _021D82B6
bl MOD54_021D8C08
ldr r1, _021D8318 ; =0x00004A5C
ldrh r2, [r5, r1]
cmp r2, r0
beq _021D82CE
_021D82B6:
ldr r0, _021D831C ; =0x00004A5E
mov r1, #0
strh r1, [r5, r0]
mov r0, #0xd1
mov r1, #8
lsl r0, r0, #2
str r1, [r5, r0]
add r0, r5, #0
bl MOD54_021D80A0
add r0, r4, #0
pop {r3, r4, r5, pc}
_021D82CE:
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 _021D830E
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, #0x70
add r1, sp, #0
mov r2, #4
bl FUN_02030ADC
ldr r0, _021D831C ; =0x00004A5E
mov r1, #0
strh r1, [r5, r0]
mov r0, #0xd1
mov r1, #9
lsl r0, r0, #2
str r1, [r5, r0]
_021D830E:
add r0, r5, #0
bl MOD54_021D80A0
add r0, r4, #0
pop {r3, r4, r5, pc}
.align 2, 0
_021D8318: .word 0x00004A5C
_021D831C: .word 0x00004A5E
thumb_func_end MOD54_021D8298
thumb_func_start MOD54_021D8320
MOD54_021D8320: ; 0x021D8320
push {r3, r4, r5, lr}
ldr r2, _021D833C ; =0x00004A54
add r4, r1, #0
add r5, r0, #0
mov r1, #0
strb r1, [r5, r2]
bl MOD54_021D80BC
add r0, r5, #0
bl MOD54_021D80A0
add r0, r4, #0
pop {r3, r4, r5, pc}
nop
_021D833C: .word 0x00004A54
thumb_func_end MOD54_021D8320
thumb_func_start MOD54_021D8340
MOD54_021D8340: ; 0x021D8340
push {r3, r4, r5, lr}
add r5, r0, #0
mov r0, #0x33
add r4, r1, #0
str r0, [sp]
ldr r0, [r5]
ldr r1, _021D836C ; =0x021D9678
mov r2, #0x1f
mov r3, #0xb
bl FUN_02002198
mov r1, #0x32
lsl r1, r1, #4
str r0, [r5, r1]
mov r0, #0x17
add r1, #0x24
str r0, [r5, r1]
add r0, r5, #0
bl MOD54_021D80A0
add r0, r4, #0
pop {r3, r4, r5, pc}
.align 2, 0
_021D836C: .word 0x021D9678
thumb_func_end MOD54_021D8340
thumb_func_start MOD54_021D8370
MOD54_021D8370: ; 0x021D8370
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
bl MOD54_021D8C08
ldr r1, _021D8410 ; =0x00004A48
ldr r2, [r5, r1]
cmp r2, r0
bne _021D838A
add r1, #8
ldr r0, [r5, r1]
cmp r0, #0
beq _021D83A4
_021D838A:
ldr r0, _021D8414 ; =0x021C48B8
ldr r1, [r0, #0x48]
mov r0, #0xc3
tst r0, r1
beq _021D839A
ldr r0, _021D8418 ; =0x000005F2
bl FUN_020054C8
_021D839A:
add r0, r5, #0
bl MOD54_021D80A0
add r0, r4, #0
pop {r3, r4, r5, pc}
_021D83A4:
mov r0, #0x32
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #0x33
bl FUN_020021AC
mov r1, #0
mvn r1, r1
cmp r0, r1
beq _021D8404
sub r1, r1, #1
cmp r0, r1
bne _021D83DE
mov r0, #0
str r0, [sp]
mov r0, #0x75
add r1, sp, #0
mov r2, #1
bl FUN_02030ADC
add r0, r5, #0
mov r1, #1
bl MOD54_021D8F40
add r0, r5, #0
mov r1, #0
bl MOD54_021D80BC
b _021D83FC
_021D83DE:
bl FUN_02031190
cmp r0, #0
bne _021D83F8
mov r0, #0xd1
mov r1, #0x18
lsl r0, r0, #2
str r1, [r5, r0]
bl MOD54_021D8C08
ldr r1, _021D841C ; =0x00004A56
strb r0, [r5, r1]
b _021D83FC
_021D83F8:
bl ErrorHandling
_021D83FC:
mov r0, #0x32
mov r1, #0
lsl r0, r0, #4
str r1, [r5, r0]
_021D8404:
add r0, r5, #0
bl MOD54_021D80A0
add r0, r4, #0
pop {r3, r4, r5, pc}
nop
_021D8410: .word 0x00004A48
_021D8414: .word 0x021C48B8
_021D8418: .word 0x000005F2
_021D841C: .word 0x00004A56
thumb_func_end MOD54_021D8370
thumb_func_start MOD54_021D8420
MOD54_021D8420: ; 0x021D8420
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r0, _021D8448 ; =0x00004A57
add r4, r1, #0
ldrb r0, [r5, r0]
cmp r0, #0
bne _021D8442
mov r1, #0
mov r0, #0x73
add r2, r1, #0
bl FUN_02030ADC
cmp r0, #1
bne _021D8442
ldr r0, _021D8448 ; =0x00004A57
mov r1, #1
strb r1, [r5, r0]
_021D8442:
add r0, r4, #0
pop {r3, r4, r5, pc}
nop
_021D8448: .word 0x00004A57
thumb_func_end MOD54_021D8420
thumb_func_start MOD54_021D844C
MOD54_021D844C: ; 0x021D844C
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0x28]
ldr r2, [r4, #0x48]
mov r1, #0x12
bl FUN_0200A8E0
mov r0, #0xc2
lsl r0, r0, #2
ldr r1, [r4, #0x48]
add r0, r4, r0
mov r2, #0
bl MOD54_021D7E98
mov r0, #0x8a
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x25
bl FUN_02020130
mov r0, #1
str r0, [r4, #0xc]
pop {r4, pc}
.align 2, 0
thumb_func_end MOD54_021D844C
thumb_func_start MOD54_021D847C
MOD54_021D847C: ; 0x021D847C
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
bl FUN_02031190
cmp r0, #0
bne _021D848E
bl FUN_02030F20
_021D848E:
bl FUN_02030F20
ldr r1, _021D84A8 ; =0x00004A34
ldr r1, [r5, r1]
cmp r1, r0
bne _021D84A2
mov r0, #0xd1
mov r1, #0x1a
lsl r0, r0, #2
str r1, [r5, r0]
_021D84A2:
add r0, r4, #0
pop {r3, r4, r5, pc}
nop
_021D84A8: .word 0x00004A34
thumb_func_end MOD54_021D847C
thumb_func_start MOD54_021D84AC
MOD54_021D84AC: ; 0x021D84AC
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r0, _021D84CC ; =0x00004A38
add r4, r1, #0
ldr r1, _021D84D0 ; =0x00000F74
ldr r0, [r5, r0]
add r1, r5, r1
bl MOD54_021D95CC
mov r0, #0xd1
mov r1, #0x1b
lsl r0, r0, #2
str r1, [r5, r0]
add r0, r4, #0
pop {r3, r4, r5, pc}
nop
_021D84CC: .word 0x00004A38
_021D84D0: .word 0x00000F74
thumb_func_end MOD54_021D84AC
thumb_func_start MOD54_021D84D4
MOD54_021D84D4: ; 0x021D84D4
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
ldr r0, _021D8514 ; =0x021C4918
mov r1, #1
strb r1, [r0, #8]
mov r0, #0x33
bl FUN_020294F4
add r1, r0, #0
ldr r0, [r5, #8]
mov r2, #4
ldr r0, [r0, #0x10]
bl FUN_02028AD4
ldr r0, [r5, #8]
mov r1, #0x14
ldr r0, [r0, #0xc]
bl FUN_0202A170
mov r0, #0x3a
lsl r0, r0, #4
add r0, r5, r0
bl FUN_020336C0
mov r0, #0xd1
mov r1, #0x1c
lsl r0, r0, #2
str r1, [r5, r0]
add r0, r4, #0
pop {r3, r4, r5, pc}
nop
_021D8514: .word 0x021C4918
thumb_func_end MOD54_021D84D4
thumb_func_start MOD54_021D8518
MOD54_021D8518: ; 0x021D8518
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
bl FUN_02031190
cmp r0, #0
bne _021D852A
bl FUN_02030F20
_021D852A:
ldr r0, [r5, #8]
mov r2, #0x3a
lsl r2, r2, #4
ldr r0, [r0]
mov r1, #2
add r2, r5, r2
bl FUN_020336C8
cmp r0, #0
beq _021D8576
ldr r0, _021D857C ; =0x00000658
mov r1, #8
bl FUN_020054F0
add r0, r5, #0
mov r1, #0xd
mov r2, #0
bl MOD54_021D8C90
add r0, r5, #0
mov r1, #0x1d
bl MOD54_021D80BC
mov r0, #0x8a
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #0
bl FUN_02020130
mov r1, #0
mov r0, #0x35
str r1, [r5, #0xc]
lsl r0, r0, #4
str r1, [r5, r0]
ldr r0, _021D8580 ; =0x021C4918
strb r1, [r0, #8]
ldr r0, _021D8584 ; =0x00004A40
strb r1, [r5, r0]
_021D8576:
add r0, r4, #0
pop {r3, r4, r5, pc}
nop
_021D857C: .word 0x00000658
_021D8580: .word 0x021C4918
_021D8584: .word 0x00004A40
thumb_func_end MOD54_021D8518
thumb_func_start MOD54_021D8588
MOD54_021D8588: ; 0x021D8588
push {r3, r4}
mov r2, #0x35
lsl r2, r2, #4
ldr r4, [r0, r2]
add r3, r4, #1
str r3, [r0, r2]
cmp r4, #0x3c
ble _021D859E
mov r3, #0xf
sub r2, #0xc
str r3, [r0, r2]
_021D859E:
add r0, r1, #0
pop {r3, r4}
bx lr
thumb_func_end MOD54_021D8588
thumb_func_start MOD54_021D85A4
MOD54_021D85A4: ; 0x021D85A4
push {r3, r4, r5, lr}
add r4, r1, #0
add r5, r0, #0
mov r1, #5
mov r2, #0
bl MOD54_021D8C90
add r0, r5, #0
mov r1, #0xa
bl MOD54_021D80BC
add r0, r5, #0
bl MOD54_021D80A0
add r0, r4, #0
pop {r3, r4, r5, pc}
thumb_func_end MOD54_021D85A4
thumb_func_start MOD54_021D85C4
MOD54_021D85C4: ; 0x021D85C4
push {r4, r5, lr}
sub sp, #0xc
add r5, r0, #0
mov r0, #0x35
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 _021D85F4
mov r1, #0x10
str r1, [sp]
mov r0, #1
str r0, [sp, #4]
mov r0, #0x33
str r0, [sp, #8]
mov r0, #0
add r2, r1, #0
add r3, r0, #0
bl FUN_0200E1D0
mov r4, #3
_021D85F4:
add r0, r5, #0
bl MOD54_021D80A0
add r0, r4, #0
add sp, #0xc
pop {r4, r5, pc}
thumb_func_end MOD54_021D85C4
thumb_func_start MOD54_021D8600
MOD54_021D8600: ; 0x021D8600
push {r3, r4, r5, lr}
add r5, r0, #0
mov r0, #0x33
add r4, r1, #0
str r0, [sp]
ldr r0, [r5]
ldr r1, _021D862C ; =0x021D9678
mov r2, #0x1f
mov r3, #0xb
bl FUN_02002198
mov r1, #0x32
lsl r1, r1, #4
str r0, [r5, r1]
mov r0, #0xc
add r1, #0x24
str r0, [r5, r1]
add r0, r5, #0
bl MOD54_021D80A0
add r0, r4, #0
pop {r3, r4, r5, pc}
.align 2, 0
_021D862C: .word 0x021D9678
thumb_func_end MOD54_021D8600
thumb_func_start MOD54_021D8630
MOD54_021D8630: ; 0x021D8630
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
bl MOD54_021D8C08
ldr r1, _021D86D0 ; =0x00004A48
ldr r2, [r5, r1]
cmp r2, r0
bne _021D864A
add r1, #8
ldr r0, [r5, r1]
cmp r0, #0
beq _021D8664
_021D864A:
ldr r0, _021D86D4 ; =0x021C48B8
ldr r1, [r0, #0x48]
mov r0, #0xc3
tst r0, r1
beq _021D865A
ldr r0, _021D86D8 ; =0x000005F2
bl FUN_020054C8
_021D865A:
add r0, r5, #0
bl MOD54_021D80A0
add r0, r4, #0
pop {r3, r4, r5, pc}
_021D8664:
mov r0, #0x32
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #0x33
bl FUN_020021AC
mov r1, #0
mvn r1, r1
cmp r0, r1
beq _021D86C6
sub r1, r1, #1
cmp r0, r1
bne _021D869C
mov r1, #0
mov r0, #0xd1
str r1, [sp]
lsl r0, r0, #2
str r1, [r5, r0]
mov r0, #0x75
add r1, sp, #0
mov r2, #1
bl FUN_02030ADC
add r0, r5, #0
mov r1, #1
bl MOD54_021D8F40
b _021D86BE
_021D869C:
mov r0, #0xd1
mov r1, #0xd
lsl r0, r0, #2
str r1, [r5, r0]
mov r1, #0
mov r0, #0x71
add r2, r1, #0
bl FUN_02030ADC
mov r0, #0
bl FUN_0202DFA4
add r2, r0, #0
ldr r0, [r5, #0x24]
mov r1, #0
bl FUN_0200ABC0
_021D86BE:
mov r0, #0x32
mov r1, #0
lsl r0, r0, #4
str r1, [r5, r0]
_021D86C6:
add r0, r5, #0
bl MOD54_021D80A0
add r0, r4, #0
pop {r3, r4, r5, pc}
.align 2, 0
_021D86D0: .word 0x00004A48
_021D86D4: .word 0x021C48B8
_021D86D8: .word 0x000005F2
thumb_func_end MOD54_021D8630
thumb_func_start MOD54_021D86DC
MOD54_021D86DC: ; 0x021D86DC
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
bl FUN_02031190
cmp r0, #0
bne _021D86F6
add r0, r5, #0
mov r1, #5
mov r2, #0
bl MOD54_021D8C90
b _021D8710
_021D86F6:
mov r0, #0
bl FUN_0202DFA4
add r2, r0, #0
ldr r0, [r5, #0x24]
mov r1, #0
bl FUN_0200ABC0
add r0, r5, #0
mov r1, #0x10
mov r2, #0
bl MOD54_021D8C90
_021D8710:
add r0, r5, #0
mov r1, #0xe
bl MOD54_021D80BC
mov r0, #0x35
mov r1, #0
lsl r0, r0, #4
str r1, [r5, r0]
add r0, r5, #0
bl MOD54_021D80A0
add r0, r4, #0
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_end MOD54_021D86DC
thumb_func_start MOD54_021D872C
MOD54_021D872C: ; 0x021D872C
push {r4, lr}
add r4, r1, #0
mov r1, #0x35
lsl r1, r1, #4
ldr r2, [r0, r1]
add r2, r2, #1
str r2, [r0, r1]
ldr r2, [r0, r1]
cmp r2, #0x2d
ble _021D8746
mov r2, #0xf
sub r1, #0xc
str r2, [r0, r1]
_021D8746:
bl MOD54_021D80A0
add r0, r4, #0
pop {r4, pc}
.align 2, 0
thumb_func_end MOD54_021D872C
thumb_func_start MOD54_021D8750
MOD54_021D8750: ; 0x021D8750
push {r3, r4, r5, lr}
add r5, r0, #0
mov r0, #0xc9
add r4, r1, #0
bl FUN_02031588
mov r0, #0xd1
mov r1, #0x10
lsl r0, r0, #2
str r1, [r5, r0]
add r0, r5, #0
bl MOD54_021D80A0
add r0, r4, #0
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_end MOD54_021D8750
thumb_func_start MOD54_021D8770
MOD54_021D8770: ; 0x021D8770
push {r4, r5, lr}
sub sp, #0xc
add r4, r0, #0
mov r0, #0xc9
add r5, r1, #0
bl FUN_020315D8
cmp r0, #0
beq _021D87A2
mov r0, #0
add r1, r0, #0
bl FUN_020334E8
mov r1, #0x10
str r1, [sp]
mov r0, #1
str r0, [sp, #4]
mov r0, #0x33
str r0, [sp, #8]
mov r0, #0
add r2, r1, #0
add r3, r0, #0
bl FUN_0200E1D0
mov r5, #3
_021D87A2:
add r0, r4, #0
bl MOD54_021D80A0
add r0, r5, #0
add sp, #0xc
pop {r4, r5, pc}
.align 2, 0
thumb_func_end MOD54_021D8770
thumb_func_start MOD54_021D87B0
MOD54_021D87B0: ; 0x021D87B0
push {r3, r4, r5, lr}
add r4, r1, #0
mov r1, #9
mov r2, #0
add r5, r0, #0
bl MOD54_021D8C90
mov r0, #0xd1
mov r1, #0x12
lsl r0, r0, #2
str r1, [r5, r0]
add r0, r5, #0
bl MOD54_021D80A0
add r0, r4, #0
pop {r3, r4, r5, pc}
thumb_func_end MOD54_021D87B0
thumb_func_start MOD54_021D87D0
MOD54_021D87D0: ; 0x021D87D0
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r0, [r5, #0x4c]
add r4, r1, #0
bl MOD54_021D8D20
cmp r0, #0
beq _021D87E8
mov r0, #0xd1
mov r1, #0xa
lsl r0, r0, #2
str r1, [r5, r0]
_021D87E8:
add r0, r5, #0
bl MOD54_021D80A0
add r0, r4, #0
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_end MOD54_021D87D0
thumb_func_start MOD54_021D87F4
MOD54_021D87F4: ; 0x021D87F4
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r0, [r5, #0x4c]
add r4, r1, #0
cmp r0, #0xff
beq _021D8812
bl MOD54_021D8D20
cmp r0, #0
bne _021D8812
ldr r0, [r5, #0x4c]
lsl r0, r0, #0x18
lsr r0, r0, #0x18
bl FUN_0201BD7C
_021D8812:
add r0, r5, #0
mov r1, #0xf
mov r2, #1
bl MOD54_021D8C90
mov r0, #0xd1
mov r1, #0x14
lsl r0, r0, #2
str r1, [r5, r0]
bl FUN_02031190
cmp r0, #0
bne _021D8834
add r0, r5, #0
mov r1, #0
bl MOD54_021D8F40
_021D8834:
bl FUN_02030F20
ldr r1, _021D8848 ; =0x00004A58
str r0, [r5, r1]
add r0, r5, #0
bl MOD54_021D80A0
add r0, r4, #0
pop {r3, r4, r5, pc}
nop
_021D8848: .word 0x00004A58
thumb_func_end MOD54_021D87F4
thumb_func_start MOD54_021D884C
MOD54_021D884C: ; 0x021D884C
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r0, _021D8884 ; =0x00004A58
add r4, r1, #0
ldr r0, [r5, r0]
cmp r0, #0
beq _021D886A
bl FUN_02030F20
ldr r1, _021D8884 ; =0x00004A58
ldr r2, [r5, r1]
cmp r2, r0
beq _021D886A
mov r0, #0
str r0, [r5, r1]
_021D886A:
mov r0, #0xd1
mov r1, #0x15
lsl r0, r0, #2
str r1, [r5, r0]
mov r1, #0
add r0, #0xc
str r1, [r5, r0]
add r0, r5, #0
bl MOD54_021D80A0
add r0, r4, #0
pop {r3, r4, r5, pc}
nop
_021D8884: .word 0x00004A58
thumb_func_end MOD54_021D884C
thumb_func_start MOD54_021D8888
MOD54_021D8888: ; 0x021D8888
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r0, _021D88E0 ; =0x00004A58
add r4, r1, #0
ldr r0, [r5, r0]
cmp r0, #0
beq _021D88A6
bl FUN_02030F20
ldr r1, _021D88E0 ; =0x00004A58
ldr r2, [r5, r1]
cmp r2, r0
beq _021D88A6
mov r0, #0
str r0, [r5, r1]
_021D88A6:
mov r1, #0x35
lsl r1, r1, #4
ldr r0, [r5, r1]
add r0, r0, #1
str r0, [r5, r1]
ldr r0, [r5, r1]
cmp r0, #0x3c
ble _021D88D4
ldr r0, _021D88E0 ; =0x00004A58
ldr r0, [r5, r0]
cmp r0, #0
bne _021D88D4
mov r0, #0
sub r1, #0xc
str r0, [r5, r1]
bl FUN_02031190
cmp r0, #0
bne _021D88D4
add r0, r5, #0
mov r1, #1
bl MOD54_021D8F40
_021D88D4:
add r0, r5, #0
bl MOD54_021D80A0
add r0, r4, #0
pop {r3, r4, r5, pc}
nop
_021D88E0: .word 0x00004A58
thumb_func_end MOD54_021D8888
thumb_func_start MOD54_021D88E4
MOD54_021D88E4: ; 0x021D88E4
push {r4, r5, r6, lr}
add r4, r1, #0
add r5, r0, #0
add r6, r2, #0
cmp r4, #0xd
bgt _021D8906
bge _021D891A
cmp r4, #8
bgt _021D89BE
cmp r4, #2
blt _021D89BE
beq _021D8914
cmp r4, #7
beq _021D89B8
cmp r4, #8
beq _021D89B8
pop {r4, r5, r6, pc}
_021D8906:
cmp r4, #0x13
bgt _021D890E
beq _021D896C
pop {r4, r5, r6, pc}
_021D890E:
cmp r4, #0x19
beq _021D8934
pop {r4, r5, r6, pc}
_021D8914:
bl MOD54_021D8D40
b _021D89B8
_021D891A:
mov r0, #0x32
lsl r0, r0, #4
ldr r0, [r5, r0]
cmp r0, #0
beq _021D89B8
mov r1, #0x33
bl FUN_020021EC
mov r0, #0x32
mov r1, #0
lsl r0, r0, #4
str r1, [r5, r0]
b _021D89B8
_021D8934:
ldr r0, [r5, #0x4c]
bl MOD54_021D8D20
cmp r0, #0
bne _021D8948
ldr r0, [r5, #0x4c]
lsl r0, r0, #0x18
lsr r0, r0, #0x18
bl FUN_0201BD7C
_021D8948:
add r0, r5, #0
mov r1, #0xc
mov r2, #0
bl MOD54_021D8C90
mov r0, #0x32
lsl r0, r0, #4
ldr r0, [r5, r0]
cmp r0, #0
beq _021D89B8
mov r1, #0x33
bl FUN_020021EC
mov r0, #0x32
mov r1, #0
lsl r0, r0, #4
str r1, [r5, r0]
b _021D89B8
_021D896C:
ldr r0, _021D89C0 ; =0x00004A54
ldrb r0, [r5, r0]
cmp r0, #1
beq _021D89BE
add r0, r6, #0
bl FUN_0202DFA4
add r2, r0, #0
ldr r0, [r5, #0x24]
mov r1, #0
bl FUN_0200ABC0
bl FUN_02031190
cmp r6, r0
beq _021D89BE
mov r0, #0x32
lsl r0, r0, #4
ldr r0, [r5, r0]
cmp r0, #0
beq _021D89A4
mov r1, #0x33
bl FUN_020021EC
mov r0, #0x32
mov r1, #0
lsl r0, r0, #4
str r1, [r5, r0]
_021D89A4:
bl FUN_02031190
cmp r0, #0
bne _021D89B8
ldr r1, _021D89C4 ; =0x00004A50
ldr r0, _021D89C8 ; =0x0000FFFF
ldr r2, [r5, r1]
eor r0, r6
and r0, r2
str r0, [r5, r1]
_021D89B8:
mov r0, #0xd1
lsl r0, r0, #2
str r4, [r5, r0]
_021D89BE:
pop {r4, r5, r6, pc}
.align 2, 0
_021D89C0: .word 0x00004A54
_021D89C4: .word 0x00004A50
_021D89C8: .word 0x0000FFFF
thumb_func_end MOD54_021D88E4
thumb_func_start MOD54_021D89CC
MOD54_021D89CC: ; 0x021D89CC
push {r3, r4, r5, r6, lr}
sub sp, #4
add r5, r0, #0
mov r0, #0xd1
lsl r0, r0, #2
ldr r0, [r5, r0]
add r4, r1, #0
add r6, r2, #0
cmp r0, #3
bne _021D8A6C
cmp r4, #1
beq _021D89EA
cmp r4, #0x13
beq _021D8A2E
b _021D8A64
_021D89EA:
add r0, r6, #0
bl FUN_0202DFA4
add r2, r0, #0
ldr r0, [r5, #0x24]
mov r1, #0
bl FUN_0200ABC0
add r0, r5, #0
mov r1, #1
bl MOD54_021D8F40
mov r0, #0xd1
lsl r0, r0, #2
str r4, [r5, r0]
bl FUN_02030F20
ldr r1, _021D8A84 ; =0x00004A48
str r0, [r5, r1]
mov r0, #0
add r1, #8
str r0, [r5, r1]
bl FUN_02031190
cmp r0, #0
bne _021D8A7E
mov r2, #1
mov r0, #0x75
add r1, sp, #0
str r2, [sp]
bl FUN_02030ADC
add sp, #4
pop {r3, r4, r5, r6, pc}
_021D8A2E:
add r0, r6, #0
bl FUN_0202DFA4
add r2, r0, #0
ldr r0, [r5, #0x24]
mov r1, #0
bl FUN_0200ABC0
bl FUN_02031190
cmp r6, r0
beq _021D8A7E
bl FUN_02031190
cmp r0, #0
bne _021D8A5A
ldr r1, _021D8A88 ; =0x00004A50
ldr r0, _021D8A8C ; =0x0000FFFF
ldr r2, [r5, r1]
eor r0, r6
and r0, r2
str r0, [r5, r1]
_021D8A5A:
mov r0, #0xd1
lsl r0, r0, #2
add sp, #4
str r4, [r5, r0]
pop {r3, r4, r5, r6, pc}
_021D8A64:
bl ErrorHandling
add sp, #4
pop {r3, r4, r5, r6, pc}
_021D8A6C:
cmp r4, #1
bne _021D8A7E
ldr r0, _021D8A88 ; =0x00004A50
mov r1, #0
str r1, [r5, r0]
bl FUN_02030F20
ldr r1, _021D8A84 ; =0x00004A48
str r0, [r5, r1]
_021D8A7E:
add sp, #4
pop {r3, r4, r5, r6, pc}
nop
_021D8A84: .word 0x00004A48
_021D8A88: .word 0x00004A50
_021D8A8C: .word 0x0000FFFF
thumb_func_end MOD54_021D89CC
thumb_func_start MOD54_021D8A90
MOD54_021D8A90: ; 0x021D8A90
push {r3, lr}
ldrh r1, [r0]
add r1, #0xa
strh r1, [r0]
ldrh r2, [r0]
mov r1, #0x5a
lsl r1, r1, #2
cmp r2, r1
bls _021D8AA6
mov r1, #0
strh r1, [r0]
_021D8AA6:
ldrh r0, [r0]
bl FUN_0201B970
mov r1, #0xa
add r2, r0, #0
mul r2, r1
asr r0, r2, #0xb
lsr r0, r0, #0x14
add r0, r2, r0
asr r0, r0, #0xc
add r0, #0xf
lsl r2, r0, #5
mov r0, #0x1d
orr r2, r0
add r0, sp, #0
strh r2, [r0]
add r0, sp, #0
mov r2, #2
bl GX_LoadOBJPltt
add r0, sp, #0
mov r1, #0x2a
mov r2, #2
bl GX_LoadOBJPltt
pop {r3, pc}
.align 2, 0
thumb_func_end MOD54_021D8A90
thumb_func_start MOD54_021D8ADC
MOD54_021D8ADC: ; 0x021D8ADC
push {r3, r4, r5, lr}
mov r5, #0
add r4, r5, #0
_021D8AE2:
add r0, r4, #0
bl FUN_0202DFA4
cmp r0, #0
beq _021D8AEE
add r5, r5, #1
_021D8AEE:
add r4, r4, #1
cmp r4, #5
blt _021D8AE2
add r0, r5, #0
pop {r3, r4, r5, pc}
thumb_func_end MOD54_021D8ADC
thumb_func_start MOD54_021D8AF8
MOD54_021D8AF8: ; 0x021D8AF8
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x28
str r3, [sp, #0x14]
add r6, r0, #0
str r2, [sp, #0x10]
bl FUN_02031190
str r0, [sp, #0x1c]
ldr r0, [sp, #0x14]
bl MOD54_021D8C2C
cmp r0, #0
bne _021D8B18
add sp, #0x28
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
_021D8B18:
add r0, r6, #0
mov r1, #0
bl FUN_02019620
ldr r7, [sp, #0x14]
mov r0, #0
str r0, [sp, #0x20]
add r4, r7, #0
mov r5, #1
_021D8B2A:
mov r0, #0xd9
lsl r0, r0, #2
ldr r0, [r7, r0]
cmp r0, #0
beq _021D8BE4
bl FUN_020239C0
str r0, [sp, #0x24]
mov r0, #0xd9
lsl r0, r0, #2
ldr r0, [r7, r0]
ldr r1, [r4, #0x2c]
bl FUN_02023990
mov r0, #2
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
ldr r0, [sp, #0x14]
ldr r2, [sp, #0x24]
ldr r0, [r0, #0x24]
mov r1, #0
mov r3, #5
bl FUN_0200AD38
ldr r0, [sp, #0x14]
ldr r1, [sp, #0x14]
ldr r0, [r0, #0x24]
ldr r1, [r1, #0x28]
mov r2, #1
mov r3, #0x33
bl FUN_0200A9C4
str r0, [sp, #0x18]
ldr r1, [sp, #0x1c]
ldr r0, [sp, #0x20]
cmp r1, r0
str r5, [sp]
bne _021D8BAC
mov r0, #0xff
str r0, [sp, #4]
ldr r0, _021D8C00 ; =0x00020300
mov r1, #0
str r0, [sp, #8]
mov r0, #0
str r0, [sp, #0xc]
ldr r2, [r4, #0x2c]
add r0, r6, #0
mov r3, #5
bl FUN_0201BDE0
str r5, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, _021D8C00 ; =0x00020300
ldr r2, [sp, #0x18]
str r0, [sp, #8]
mov r0, #0
str r0, [sp, #0xc]
add r0, r6, #0
mov r1, #0
mov r3, #0x46
bl FUN_0201BDE0
b _021D8BDE
_021D8BAC:
mov r0, #0xff
str r0, [sp, #4]
ldr r0, [sp, #0x10]
mov r1, #0
str r0, [sp, #8]
mov r0, #0
str r0, [sp, #0xc]
ldr r2, [r4, #0x2c]
add r0, r6, #0
mov r3, #5
bl FUN_0201BDE0
str r5, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, [sp, #0x10]
ldr r2, [sp, #0x18]
str r0, [sp, #8]
mov r0, #0
str r0, [sp, #0xc]
add r0, r6, #0
mov r1, #0
mov r3, #0x46
bl FUN_0201BDE0
_021D8BDE:
ldr r0, [sp, #0x18]
bl FUN_02021A20
_021D8BE4:
ldr r0, [sp, #0x20]
add r7, #8
add r0, r0, #1
add r4, r4, #4
add r5, #0x12
str r0, [sp, #0x20]
cmp r0, #5
blt _021D8B2A
add r0, r6, #0
bl FUN_020191D0
mov r0, #1
add sp, #0x28
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_021D8C00: .word 0x00020300
thumb_func_end MOD54_021D8AF8
thumb_func_start MOD54_021D8C04
MOD54_021D8C04: ; 0x021D8C04
bx lr
.align 2, 0
thumb_func_end MOD54_021D8C04
thumb_func_start MOD54_021D8C08
MOD54_021D8C08: ; 0x021D8C08
push {r3, r4, r5, lr}
mov r5, #0
add r4, r5, #0
_021D8C0E:
add r0, r4, #0
bl FUN_0202DFA4
cmp r0, #0
beq _021D8C1A
add r5, r5, #1
_021D8C1A:
add r4, r4, #1
cmp r4, #5
blt _021D8C0E
add r0, r5, #0
pop {r3, r4, r5, pc}
thumb_func_end MOD54_021D8C08
thumb_func_start MOD54_021D8C24
MOD54_021D8C24: ; 0x021D8C24
ldr r3, _021D8C28 ; =MOD54_021D8C08
bx r3
.align 2, 0
_021D8C28: .word MOD54_021D8C08
thumb_func_end MOD54_021D8C24
thumb_func_start MOD54_021D8C2C
MOD54_021D8C2C: ; 0x021D8C2C
push {r3, r4, r5, r6, r7, lr}
add r6, r0, #0
mov r4, #0
mov r7, #0xd9
str r4, [sp]
add r5, r6, #0
lsl r7, r7, #2
_021D8C3A:
mov r0, #0xd9
lsl r0, r0, #2
ldr r1, [r5, r0]
add r0, r0, #4
str r1, [r5, r0]
add r0, r4, #0
bl FUN_0202DFA4
str r0, [r5, r7]
add r4, r4, #1
add r5, #8
cmp r4, #5
blt _021D8C3A
mov r7, #0xda
mov r5, #0
add r4, r6, #0
mov r1, #1
mov r0, #3
lsl r7, r7, #2
_021D8C60:
mov r2, #0xd9
lsl r2, r2, #2
ldr r3, [r6, r2]
ldr r2, [r6, r7]
cmp r2, r3
beq _021D8C80
str r1, [sp]
cmp r3, #0
bne _021D8C7A
mov r2, #0xe3
lsl r2, r2, #2
str r0, [r4, r2]
b _021D8C80
_021D8C7A:
mov r2, #0xe3
lsl r2, r2, #2
str r1, [r4, r2]
_021D8C80:
add r5, r5, #1
add r6, #8
add r4, r4, #4
cmp r5, #5
blt _021D8C60
ldr r0, [sp]
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_end MOD54_021D8C2C
thumb_func_start MOD54_021D8C90
MOD54_021D8C90: ; 0x021D8C90
push {r4, r5, r6, r7, lr}
sub sp, #0xc
add r5, r0, #0
add r7, r1, #0
mov r0, #0xb4
mov r1, #0x33
add r6, r2, #0
bl FUN_020219F4
add r4, r0, #0
ldr r0, [r5, #0x28]
add r1, r7, #0
add r2, r4, #0
bl FUN_0200A8E0
ldr r0, [r5, #0x24]
ldr r1, [r5, #0x44]
add r2, r4, #0
bl FUN_0200B7B8
add r0, r4, #0
bl FUN_02021A20
mov r0, #0xba
lsl r0, r0, #2
add r0, r5, r0
mov r1, #0xf
bl FUN_02019620
mov r0, #0xba
lsl r0, r0, #2
add r0, r5, r0
mov r1, #0
mov r2, #1
mov r3, #0xa
bl FUN_0200D0BC
cmp r6, #0
bne _021D8D00
add r0, r5, #0
bl MOD54_021D8F3C
mov r3, #0
str r3, [sp]
str r0, [sp, #4]
str r3, [sp, #8]
mov r0, #0xba
lsl r0, r0, #2
ldr r2, [r5, #0x44]
add r0, r5, r0
mov r1, #1
bl FUN_0201BD84
add sp, #0xc
str r0, [r5, #0x4c]
pop {r4, r5, r6, r7, pc}
_021D8D00:
mov r3, #0
str r3, [sp]
str r3, [sp, #4]
str r3, [sp, #8]
mov r0, #0xba
lsl r0, r0, #2
ldr r2, [r5, #0x44]
add r0, r5, r0
mov r1, #1
bl FUN_0201BD84
mov r0, #0xff
str r0, [r5, #0x4c]
add sp, #0xc
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_end MOD54_021D8C90
thumb_func_start MOD54_021D8D20
MOD54_021D8D20: ; 0x021D8D20
push {r3, lr}
cmp r0, #0xff
bne _021D8D2A
mov r0, #1
pop {r3, pc}
_021D8D2A:
lsl r0, r0, #0x18
lsr r0, r0, #0x18
bl FUN_0201BD70
cmp r0, #0
bne _021D8D3A
mov r0, #1
pop {r3, pc}
_021D8D3A:
mov r0, #0
pop {r3, pc}
.align 2, 0
thumb_func_end MOD54_021D8D20
thumb_func_start MOD54_021D8D40
MOD54_021D8D40: ; 0x021D8D40
mov r1, #0xba
lsl r1, r1, #2
add r0, r0, r1
ldr r3, _021D8D4C ; =FUN_0200D0E0
mov r1, #0
bx r3
.align 2, 0
_021D8D4C: .word FUN_0200D0E0
thumb_func_end MOD54_021D8D40
thumb_func_start MOD54_021D8D50
MOD54_021D8D50: ; 0x021D8D50
push {r4, r5, r6, r7, lr}
sub sp, #0x1c
add r5, r0, #0
mov r0, #0x1b
str r0, [sp, #4]
mov r0, #0xcb
lsl r0, r0, #2
add r0, r5, r0
str r0, [sp, #0x14]
mov r0, #0xcf
lsl r0, r0, #2
mov r4, #0
add r0, r5, r0
str r4, [sp, #8]
add r6, r5, #0
mov r7, #0x1c
str r0, [sp, #0x18]
_021D8D72:
mov r0, #0xe3
lsl r0, r0, #2
ldr r0, [r5, r0]
cmp r0, #3
bhi _021D8E3E
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021D8D88: ; jump table
.short _021D8E3E - _021D8D88 - 2 ; case 0
.short _021D8D90 - _021D8D88 - 2 ; case 1
.short _021D8E3E - _021D8D88 - 2 ; case 2
.short _021D8E06 - _021D8D88 - 2 ; case 3
_021D8D90:
mov r0, #0xd9
lsl r0, r0, #2
ldr r0, [r6, r0]
cmp r0, #0
bne _021D8D9E
bl ErrorHandling
_021D8D9E:
mov r0, #0xd9
lsl r0, r0, #2
ldr r0, [r6, r0]
bl FUN_020239CC
str r0, [sp, #0xc]
mov r0, #0xd9
lsl r0, r0, #2
ldr r0, [r6, r0]
bl FUN_02023A28
str r0, [sp, #0x10]
bl FUN_02031190
cmp r4, r0
bne _021D8DD0
mov r0, #0x8b
ldr r1, [sp, #0xc]
lsl r0, r0, #2
lsl r1, r1, #1
ldr r0, [r5, r0]
add r1, #0x26
bl FUN_02020130
b _021D8DEC
_021D8DD0:
ldr r0, [sp, #0xc]
ldr r1, [sp, #0x18]
str r0, [sp]
ldr r0, [sp, #0x14]
ldr r3, [sp, #0x10]
add r2, r4, #0
bl MOD54_021D8EC8
mov r0, #0x8b
lsl r0, r0, #2
ldr r0, [r5, r0]
ldr r1, [sp, #4]
bl FUN_02020130
_021D8DEC:
mov r0, #0x8b
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #1
bl FUN_020200A0
mov r0, #0xe3
mov r1, #2
lsl r0, r0, #2
str r1, [r5, r0]
mov r0, #1
str r0, [sp, #8]
b _021D8E3E
_021D8E06:
bl FUN_02031190
cmp r4, r0
bne _021D8E2A
mov r0, #0xd9
lsl r0, r0, #2
ldr r0, [r6, r0]
bl FUN_020239CC
add r1, r0, #0
mov r0, #0x8b
lsl r0, r0, #2
lsl r1, r1, #1
ldr r0, [r5, r0]
add r1, #0x27
bl FUN_02020130
b _021D8E36
_021D8E2A:
mov r0, #0x8b
lsl r0, r0, #2
ldr r0, [r5, r0]
add r1, r7, #0
bl FUN_02020130
_021D8E36:
mov r0, #0xe3
mov r1, #0
lsl r0, r0, #2
str r1, [r5, r0]
_021D8E3E:
ldr r0, [sp, #4]
add r4, r4, #1
add r0, r0, #2
add r5, r5, #4
add r6, #8
add r7, r7, #2
str r0, [sp, #4]
cmp r4, #5
blt _021D8D72
ldr r0, [sp, #8]
cmp r0, #0
beq _021D8E5C
ldr r0, _021D8E60 ; =0x0000064F
bl FUN_020054C8
_021D8E5C:
add sp, #0x1c
pop {r4, r5, r6, r7, pc}
.align 2, 0
_021D8E60: .word 0x0000064F
thumb_func_end MOD54_021D8D50
thumb_func_start MOD54_021D8E64
MOD54_021D8E64: ; 0x021D8E64
push {r3, r4, lr}
sub sp, #4
mov r2, #0xcf
add r4, r0, #0
lsl r2, r2, #2
mov r0, #0x68
mov r1, #8
add r2, r4, r2
mov r3, #0x33
bl FUN_02006C08
mov r2, #0xcd
lsl r2, r2, #2
str r0, [r4, r2]
add r2, #0xc
mov r0, #0x56
mov r1, #7
add r2, r4, r2
mov r3, #0x33
bl FUN_02006C08
mov r3, #0xce
lsl r3, r3, #2
str r0, [r4, r3]
mov r0, #0x33
sub r3, #0xc
str r0, [sp]
mov r0, #0x68
mov r1, #0x20
mov r2, #1
add r3, r4, r3
bl FUN_02006BB0
mov r1, #0xc9
lsl r1, r1, #2
str r0, [r4, r1]
mov r3, #0x33
str r3, [sp]
lsl r3, r3, #4
mov r0, #0x56
mov r1, #9
mov r2, #1
add r3, r4, r3
bl FUN_02006BB0
mov r1, #0xca
lsl r1, r1, #2
str r0, [r4, r1]
add sp, #4
pop {r3, r4, pc}
thumb_func_end MOD54_021D8E64
thumb_func_start MOD54_021D8EC8
MOD54_021D8EC8: ; 0x021D8EC8
push {r3, r4, r5, r6, r7, lr}
add r7, r0, #0
add r6, r1, #0
ldr r0, [sp, #0x18]
add r1, r3, #0
add r5, r2, #0
bl FUN_020536C8
add r4, r0, #0
ldr r0, [r6, #4]
mov r2, #6
ldr r6, [r0, #0xc]
ldr r0, [r7, #4]
lsl r2, r2, #8
ldr r1, [r0, #0x14]
add r0, r4, #0
mul r0, r2
add r0, r1, r0
ldr r1, _021D8F08 ; =0x021D9680
lsl r3, r5, #1
ldrh r1, [r1, r3]
bl GX_LoadOBJ
lsl r0, r4, #5
add r1, r5, #7
add r0, r6, r0
lsl r1, r1, #5
mov r2, #0x20
bl GX_LoadOBJPltt
pop {r3, r4, r5, r6, r7, pc}
nop
_021D8F08: .word 0x021D9680
thumb_func_end MOD54_021D8EC8
thumb_func_start MOD54_021D8F0C
MOD54_021D8F0C: ; 0x021D8F0C
push {r4, lr}
add r4, r0, #0
mov r0, #0xcd
lsl r0, r0, #2
ldr r0, [r4, r0]
bl FreeToHeap
mov r0, #0xce
lsl r0, r0, #2
ldr r0, [r4, r0]
bl FreeToHeap
mov r0, #0xc9
lsl r0, r0, #2
ldr r0, [r4, r0]
bl FreeToHeap
mov r0, #0xca
lsl r0, r0, #2
ldr r0, [r4, r0]
bl FreeToHeap
pop {r4, pc}
.align 2, 0
thumb_func_end MOD54_021D8F0C
thumb_func_start MOD54_021D8F3C
MOD54_021D8F3C: ; 0x021D8F3C
mov r0, #1
bx lr
thumb_func_end MOD54_021D8F3C
thumb_func_start MOD54_021D8F40
MOD54_021D8F40: ; 0x021D8F40
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
bl FUN_02031190
cmp r0, #0
bne _021D8F8C
mov r0, #0
mvn r0, r0
cmp r4, r0
bne _021D8F5E
mov r0, #1
bl FUN_02032B6C
b _021D8F6E
_021D8F5E:
bl FUN_02030F20
add r0, r4, r0
cmp r0, #5
ble _021D8F6A
mov r0, #5
_021D8F6A:
bl FUN_02032B6C
_021D8F6E:
mov r0, #0
mvn r0, r0
cmp r4, r0
ldr r0, _021D8F90 ; =0x00004A55
bne _021D8F7E
mov r1, #2
strb r1, [r5, r0]
pop {r3, r4, r5, pc}
_021D8F7E:
cmp r4, #0
bne _021D8F88
mov r1, #1
strb r1, [r5, r0]
pop {r3, r4, r5, pc}
_021D8F88:
mov r1, #0
strb r1, [r5, r0]
_021D8F8C:
pop {r3, r4, r5, pc}
nop
_021D8F90: .word 0x00004A55
thumb_func_end MOD54_021D8F40
thumb_func_start MOD54_021D8F94
MOD54_021D8F94: ; 0x021D8F94
push {r3, r4, r5, r6, lr}
sub sp, #4
add r4, r0, #0
add r6, r1, #0
bl MOD54_021D8C08
add r5, r0, #0
ldr r0, _021D9088 ; =0x00004A48
ldr r1, [r4, r0]
cmp r5, r1
ble _021D8FBE
mov r2, #1
add r0, sp, #0
strb r2, [r0]
mov r0, #0x75
add r1, sp, #0
bl FUN_02030ADC
mov r1, #1
ldr r0, _021D908C ; =0x00004A4C
b _021D8FC2
_021D8FBE:
mov r1, #0
add r0, r0, #4
_021D8FC2:
str r1, [r4, r0]
ldr r0, _021D9090 ; =0x00004A44
ldr r0, [r4, r0]
cmp r5, r0
bne _021D8FD2
add sp, #4
mov r0, #1
pop {r3, r4, r5, r6, pc}
_021D8FD2:
cmp r5, #5
bhi _021D9078
add r0, r5, r5
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021D8FE2: ; jump table
.short _021D9078 - _021D8FE2 - 2 ; case 0
.short _021D8FEE - _021D8FE2 - 2 ; case 1
.short _021D9032 - _021D8FE2 - 2 ; case 2
.short _021D9032 - _021D8FE2 - 2 ; case 3
.short _021D9032 - _021D8FE2 - 2 ; case 4
.short _021D906A - _021D8FE2 - 2 ; case 5
_021D8FEE:
bl FUN_02030F20
cmp r0, #1
bgt _021D8FFE
bl FUN_0202CB8C
cmp r0, #1
bls _021D9004
_021D8FFE:
add sp, #4
mov r0, #1
pop {r3, r4, r5, r6, pc}
_021D9004:
mov r0, #0xd1
mov r1, #0x11
lsl r0, r0, #2
str r1, [r4, r0]
add r0, r4, #0
sub r1, #0x12
bl MOD54_021D8F40
mov r0, #0x32
lsl r0, r0, #4
ldr r0, [r4, r0]
cmp r0, #0
beq _021D902C
mov r1, #0x33
bl FUN_020021EC
mov r0, #0x32
mov r1, #0
lsl r0, r0, #4
str r1, [r4, r0]
_021D902C:
add sp, #4
mov r0, #2
pop {r3, r4, r5, r6, pc}
_021D9032:
mov r0, #2
bl FUN_02052B74
ldr r0, _021D9090 ; =0x00004A44
ldr r1, [r4, r0]
cmp r5, r1
bge _021D9078
add r0, #0x11
ldrsb r0, [r4, r0]
cmp r0, #0
beq _021D904E
cmp r0, #1
beq _021D9058
b _021D9060
_021D904E:
add r0, r4, #0
add r1, r6, #0
bl MOD54_021D8F40
b _021D9060
_021D9058:
add r0, r4, #0
mov r1, #0
bl MOD54_021D8F40
_021D9060:
bl FUN_02030F20
ldr r1, _021D9088 ; =0x00004A48
str r0, [r4, r1]
b _021D9078
_021D906A:
mov r0, #9
bl FUN_02052B74
add r0, r4, #0
add r1, r6, #0
bl MOD54_021D8F40
_021D9078:
bl MOD54_021D8C08
ldr r1, _021D9090 ; =0x00004A44
str r0, [r4, r1]
mov r0, #1
add sp, #4
pop {r3, r4, r5, r6, pc}
nop
_021D9088: .word 0x00004A48
_021D908C: .word 0x00004A4C
_021D9090: .word 0x00004A44
thumb_func_end MOD54_021D8F94
thumb_func_start MOD54_021D9094
MOD54_021D9094: ; 0x021D9094
mov r0, #0x2c
bx lr
thumb_func_end MOD54_021D9094
thumb_func_start MOD54_021D9098
MOD54_021D9098: ; 0x021D9098
add r0, #0x2c
bx lr
thumb_func_end MOD54_021D9098
thumb_func_start MOD54_021D909C
MOD54_021D909C: ; 0x021D909C
push {r4, r5, r6, r7}
add r7, r0, #0
add r6, r7, #0
mov ip, r1
mov r5, #5
add r6, #0xdc
_021D90A8:
add r4, r6, #0
sub r4, #0x2c
add r3, r6, #0
mov r2, #5
_021D90B0:
ldmia r4!, {r0, r1}
stmia r3!, {r0, r1}
sub r2, r2, #1
bne _021D90B0
ldr r0, [r4]
sub r5, r5, #1
sub r6, #0x2c
str r0, [r3]
cmp r5, #2
bgt _021D90A8
add r7, #0x58
mov r3, #5
_021D90C8:
mov r2, ip
ldmia r2!, {r0, r1}
mov ip, r2
stmia r7!, {r0, r1}
sub r3, r3, #1
bne _021D90C8
mov r0, ip
ldr r0, [r0]
str r0, [r7]
pop {r4, r5, r6, r7}
bx lr
.align 2, 0
thumb_func_end MOD54_021D909C
thumb_func_start MOD54_021D90E0
MOD54_021D90E0: ; 0x021D90E0
push {r3, r4, r5, r6, r7, lr}
add r5, r1, #0
add r4, r0, #0
cmp r5, #2
blt _021D90EE
cmp r5, #5
ble _021D90F2
_021D90EE:
bl ErrorHandling
_021D90F2:
add r2, r5, #1
cmp r2, #5
bgt _021D911A
mov r0, #0x2c
mul r0, r2
add r3, r4, r0
_021D90FE:
add r6, r3, #0
add r7, r3, #0
sub r6, #0x2c
mov r5, #5
_021D9106:
ldmia r7!, {r0, r1}
stmia r6!, {r0, r1}
sub r5, r5, #1
bne _021D9106
ldr r0, [r7]
add r2, r2, #1
add r3, #0x2c
str r0, [r6]
cmp r2, #5
ble _021D90FE
_021D911A:
ldr r0, _021D9128 ; =0x0000FFFF
add r1, r4, #0
add r4, #0xdc
add r1, #0xdc
strh r0, [r4]
strh r0, [r1, #0x10]
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_021D9128: .word 0x0000FFFF
thumb_func_end MOD54_021D90E0
thumb_func_start MOD54_021D912C
MOD54_021D912C: ; 0x021D912C
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x10
str r0, [sp]
mov r0, #0
str r0, [sp, #0xc]
ldr r0, [sp]
add r5, r2, #0
str r1, [sp, #4]
str r3, [sp, #8]
cmp r0, #0
ble _021D91A6
mov r7, #0x2c
_021D9144:
ldr r0, [sp, #8]
ldr r1, [sp, #0xc]
ldr r6, [r0]
ldr r0, [sp, #4]
cmp r1, r0
beq _021D9194
cmp r6, #0
beq _021D9194
add r0, r6, #0
bl FUN_0202888C
cmp r0, #1
beq _021D9194
add r0, r6, #0
add r1, r5, #0
bl FUN_020288AC
cmp r0, #0
bne _021D9194
mov r4, #0
_021D916C:
add r1, r4, #2
add r2, r1, #0
mul r2, r7
add r0, r6, #0
add r1, r5, r2
bl FUN_020288AC
cmp r0, #0
beq _021D9186
add r0, r5, #0
add r1, r4, #2
bl MOD54_021D90E0
_021D9186:
add r4, r4, #1
cmp r4, #4
blt _021D916C
add r0, r5, #0
add r1, r6, #0
bl MOD54_021D909C
_021D9194:
ldr r0, [sp, #8]
add r0, r0, #4
str r0, [sp, #8]
ldr r0, [sp, #0xc]
add r1, r0, #1
ldr r0, [sp]
str r1, [sp, #0xc]
cmp r1, r0
blt _021D9144
_021D91A6:
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_end MOD54_021D912C
thumb_func_start MOD54_021D91AC
MOD54_021D91AC: ; 0x021D91AC
mov r0, #0x12
lsl r0, r0, #4
bx lr
.align 2, 0
thumb_func_end MOD54_021D91AC
thumb_func_start MOD54_021D91B4
MOD54_021D91B4: ; 0x021D91B4
mov r0, #0x12
lsl r0, r0, #4
bx lr
.align 2, 0
thumb_func_end MOD54_021D91B4
thumb_func_start MOD54_021D91BC
MOD54_021D91BC: ; 0x021D91BC
mov r0, #0x12
lsl r0, r0, #4
bx lr
.align 2, 0
thumb_func_end MOD54_021D91BC
thumb_func_start MOD54_021D91C4
MOD54_021D91C4: ; 0x021D91C4
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
str r3, [sp, #4]
add r5, r1, #0
str r2, [sp]
bl FUN_020238F4
add r4, r0, #0
ldr r0, [sp, #4]
mov r7, #0
cmp r0, #0
ble _021D9234
_021D91DC:
mov r0, #0
add r1, r5, #0
mov r2, #0x48
bl MIi_CpuClearFast
add r0, r4, #0
bl FUN_020239BC
str r0, [r5]
add r0, r4, #0
bl FUN_020239CC
strb r0, [r5, #4]
mov r0, #0xa
strb r0, [r5, #5]
mov r0, #2
strb r0, [r5, #6]
add r0, r4, #0
bl FUN_0202398C
add r1, r0, #0
add r0, r5, #0
add r0, #8
mov r2, #8
bl StringCopyN
add r3, r5, #0
ldr r6, [sp]
add r3, #0x18
mov r2, #6
_021D9218:
ldmia r6!, {r0, r1}
stmia r3!, {r0, r1}
sub r2, r2, #1
bne _021D9218
mov r0, #0
strb r0, [r5, #0x19]
ldr r0, [sp]
add r7, r7, #1
add r0, #0x30
str r0, [sp]
ldr r0, [sp, #4]
add r5, #0x48
cmp r7, r0
blt _021D91DC
_021D9234:
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end MOD54_021D91C4
thumb_func_start MOD54_021D9238
MOD54_021D9238: ; 0x021D9238
push {r3, r4, r5, r6, r7, lr}
add r4, r2, #0
add r5, r0, #0
add r0, r1, #0
add r1, r4, #0
bl AllocFromHeapAtEnd
add r7, r0, #0
add r0, r5, #0
bl FUN_02022504
add r6, r0, #0
add r0, r5, #0
bl MOD54_021D91AC
cmp r4, r0
beq _021D925E
bl ErrorHandling
_021D925E:
mov r2, #0x63
lsl r2, r2, #2
add r0, r5, #0
add r1, r7, #0
add r2, r6, r2
mov r3, #4
bl MOD54_021D91C4
add r0, r7, #0
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_end MOD54_021D9238
thumb_func_start MOD54_021D9274
MOD54_021D9274: ; 0x021D9274
push {r3, r4, r5, r6, r7, lr}
add r4, r2, #0
add r5, r0, #0
add r0, r1, #0
add r1, r4, #0
bl AllocFromHeapAtEnd
add r7, r0, #0
add r0, r5, #0
bl FUN_02022504
add r6, r0, #0
add r0, r5, #0
bl MOD54_021D91B4
cmp r4, r0
beq _021D929A
bl ErrorHandling
_021D929A:
add r6, #0xc
add r0, r5, #0
add r1, r7, #0
add r2, r6, #0
mov r3, #4
bl MOD54_021D91C4
add r0, r7, #0
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end MOD54_021D9274
thumb_func_start MOD54_021D92AC
MOD54_021D92AC: ; 0x021D92AC
push {r3, r4, r5, r6, r7, lr}
add r4, r2, #0
add r5, r0, #0
add r0, r1, #0
add r1, r4, #0
bl AllocFromHeapAtEnd
add r7, r0, #0
add r0, r5, #0
bl FUN_02022504
add r6, r0, #0
add r0, r5, #0
bl MOD54_021D91BC
cmp r4, r0
beq _021D92D2
bl ErrorHandling
_021D92D2:
add r6, #0xcc
add r0, r5, #0
add r1, r7, #0
add r2, r6, #0
mov r3, #4
bl MOD54_021D91C4
add r0, r7, #0
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end MOD54_021D92AC
thumb_func_start MOD54_021D92E4
MOD54_021D92E4: ; 0x021D92E4
push {r4, r5}
ldrb r3, [r2, #0x18]
cmp r3, #0
bne _021D92F2
mov r0, #0
pop {r4, r5}
bx lr
_021D92F2:
mov r4, #0
cmp r1, #0
ble _021D931E
add r5, r0, #0
_021D92FA:
ldrb r3, [r5, #0x18]
cmp r3, #0
bne _021D9316
mov r1, #0x48
mul r1, r4
add r4, r0, r1
mov r3, #9
_021D9308:
ldmia r2!, {r0, r1}
stmia r4!, {r0, r1}
sub r3, r3, #1
bne _021D9308
mov r0, #1
pop {r4, r5}
bx lr
_021D9316:
add r4, r4, #1
add r5, #0x48
cmp r4, r1
blt _021D92FA
_021D931E:
mov r5, #0
cmp r1, #0
ble _021D934A
add r4, r0, #0
_021D9326:
ldrb r3, [r4, #0x19]
cmp r3, #3
blo _021D9342
mov r1, #0x48
mul r1, r5
add r4, r0, r1
mov r3, #9
_021D9334:
ldmia r2!, {r0, r1}
stmia r4!, {r0, r1}
sub r3, r3, #1
bne _021D9334
mov r0, #1
pop {r4, r5}
bx lr
_021D9342:
add r5, r5, #1
add r4, #0x48
cmp r5, r1
blt _021D9326
_021D934A:
mov r0, #0
pop {r4, r5}
bx lr
thumb_func_end MOD54_021D92E4
thumb_func_start MOD54_021D9350
MOD54_021D9350: ; 0x021D9350
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x28
str r0, [sp]
str r1, [sp, #4]
add r7, r2, #0
add r0, sp, #0x18
mov r1, #0
mov r2, #0x10
str r3, [sp, #8]
ldr r5, [sp, #0x40]
bl MI_CpuFill8
mov r4, #0
add r6, r4, #0
cmp r7, #0
ble _021D93D8
str r5, [sp, #0x10]
_021D9372:
ldr r0, [sp, #0x10]
ldr r0, [r0]
cmp r0, #0
beq _021D93CC
mov r0, #0
str r0, [sp, #0x14]
str r0, [sp, #0xc]
b _021D93C6
_021D9382:
add r0, r4, #1
add r1, r7, #0
bl _s32_div_f
add r4, r1, #0
_021D938C:
lsl r2, r4, #2
ldr r0, [r5, r2]
cmp r0, #0
beq _021D9382
cmp r4, r6
beq _021D9382
add r0, sp, #0x18
ldrb r0, [r0, r4]
cmp r0, #4
beq _021D9382
add r1, r0, #1
add r0, sp, #0x18
strb r1, [r0, r4]
ldr r0, [sp, #8]
cmp r4, r0
beq _021D93BA
ldr r3, [r5, r2]
ldr r2, [sp, #0xc]
ldr r0, [sp]
ldr r1, [sp, #4]
add r2, r3, r2
bl MOD54_021D92E4
_021D93BA:
ldr r0, [sp, #0xc]
add r0, #0x48
str r0, [sp, #0xc]
ldr r0, [sp, #0x14]
add r0, r0, #1
str r0, [sp, #0x14]
_021D93C6:
ldr r0, [sp, #0x14]
cmp r0, #4
blt _021D938C
_021D93CC:
ldr r0, [sp, #0x10]
add r6, r6, #1
add r0, r0, #4
str r0, [sp, #0x10]
cmp r6, r7
blt _021D9372
_021D93D8:
add sp, #0x28
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end MOD54_021D9350
thumb_func_start MOD54_021D93DC
MOD54_021D93DC: ; 0x021D93DC
push {r3, r4, r5, lr}
add r5, r1, #0
mov r1, #0x93
add r4, r2, #0
lsl r1, r1, #2
str r3, [sp]
add r0, r0, r1
mov r1, #0x10
add r2, r5, #0
add r3, r4, #0
bl MOD54_021D9350
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_end MOD54_021D93DC
thumb_func_start MOD54_021D93F8
MOD54_021D93F8: ; 0x021D93F8
push {r3, r4, r5, lr}
add r5, r1, #0
ldr r1, _021D9410 ; =0x000006CC
add r4, r2, #0
str r3, [sp]
add r0, r0, r1
mov r1, #8
add r2, r5, #0
add r3, r4, #0
bl MOD54_021D9350
pop {r3, r4, r5, pc}
.align 2, 0
_021D9410: .word 0x000006CC
thumb_func_end MOD54_021D93F8
thumb_func_start MOD54_021D9414
MOD54_021D9414: ; 0x021D9414
push {r3, r4, r5, lr}
add r5, r1, #0
ldr r1, _021D942C ; =0x0000090C
add r4, r2, #0
str r3, [sp]
add r0, r0, r1
mov r1, #8
add r2, r5, #0
add r3, r4, #0
bl MOD54_021D9350
pop {r3, r4, r5, pc}
.align 2, 0
_021D942C: .word 0x0000090C
thumb_func_end MOD54_021D9414
thumb_func_start MOD54_021D9430
MOD54_021D9430: ; 0x021D9430
push {r3, lr}
bl FUN_0202881C
bl MOD54_021D9094
pop {r3, pc}
thumb_func_end MOD54_021D9430
thumb_func_start MOD54_021D943C
MOD54_021D943C: ; 0x021D943C
push {r4, r5, r6, lr}
add r4, r1, #0
add r5, r2, #0
bl FUN_0202881C
add r6, r0, #0
add r0, r4, #0
add r1, r5, #0
bl AllocFromHeapAtEnd
add r4, r0, #0
add r0, r6, #0
bl MOD54_021D9098
add r1, r4, #0
add r2, r5, #0
bl MIi_CpuCopyFast
add r0, r4, #0
pop {r4, r5, r6, pc}
thumb_func_end MOD54_021D943C
thumb_func_start MOD54_021D9464
MOD54_021D9464: ; 0x021D9464
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #4]
bl FUN_0202881C
add r2, r0, #0
ldr r0, [r4, #8]
ldr r1, [r4, #0xc]
ldr r3, [r4, #0x10]
bl MOD54_021D912C
pop {r4, pc}
thumb_func_end MOD54_021D9464
thumb_func_start MOD54_021D947C
MOD54_021D947C: ; 0x021D947C
push {r3, lr}
bl FUN_02027E24
bl FUN_02026FE0
pop {r3, pc}
thumb_func_end MOD54_021D947C
thumb_func_start MOD54_021D9488
MOD54_021D9488: ; 0x021D9488
push {r4, r5, r6, lr}
add r4, r1, #0
add r5, r2, #0
bl FUN_02027E24
add r6, r0, #0
add r0, r4, #0
add r1, r5, #0
bl AllocFromHeapAtEnd
add r4, r0, #0
add r0, r6, #0
mov r1, #0
bl FUN_02027008
add r1, r4, #0
add r2, r5, #0
bl MIi_CpuCopyFast
add r0, r4, #0
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_end MOD54_021D9488
thumb_func_start MOD54_021D94B4
MOD54_021D94B4: ; 0x021D94B4
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #4]
bl FUN_02027E24
add r2, r0, #0
ldr r0, [r4, #8]
ldr r1, [r4, #0xc]
lsl r0, r0, #0x18
ldr r3, [r4, #0x10]
lsr r0, r0, #0x18
bl FUN_02027D7C
pop {r4, pc}
thumb_func_end MOD54_021D94B4
thumb_func_start MOD54_021D94D0
MOD54_021D94D0: ; 0x021D94D0
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #4]
bl FUN_02022504
ldr r1, [r4, #8]
ldr r2, [r4, #0xc]
ldr r3, [r4, #0x10]
bl MOD54_021D93DC
pop {r4, pc}
.align 2, 0
thumb_func_end MOD54_021D94D0
thumb_func_start MOD54_021D94E8
MOD54_021D94E8: ; 0x021D94E8
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #4]
bl FUN_02022504
ldr r1, [r4, #8]
ldr r2, [r4, #0xc]
ldr r3, [r4, #0x10]
bl MOD54_021D93F8
pop {r4, pc}
.align 2, 0
thumb_func_end MOD54_021D94E8
thumb_func_start MOD54_021D9500
MOD54_021D9500: ; 0x021D9500
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #4]
bl FUN_02022504
ldr r1, [r4, #8]
ldr r2, [r4, #0xc]
ldr r3, [r4, #0x10]
bl MOD54_021D9414
pop {r4, pc}
.align 2, 0
thumb_func_end MOD54_021D9500
thumb_func_start MOD54_021D9518
MOD54_021D9518: ; 0x021D9518
ldr r3, _021D951C ; =FUN_0202B9EC
bx r3
.align 2, 0
_021D951C: .word FUN_0202B9EC
thumb_func_end MOD54_021D9518
thumb_func_start MOD54_021D9520
MOD54_021D9520: ; 0x021D9520
push {r3, r4, lr}
sub sp, #4
add r4, r0, #0
ldr r0, [r4, #4]
bl FUN_0202B8E4
ldr r0, [r4]
str r0, [sp]
ldr r2, [r4, #8]
ldr r0, [r4, #4]
lsl r2, r2, #0x18
ldr r1, [r4, #0xc]
ldr r3, [r4, #0x10]
lsr r2, r2, #0x18
bl FUN_0202BCF4
add sp, #4
pop {r3, r4, pc}
thumb_func_end MOD54_021D9520
thumb_func_start MOD54_021D9544
MOD54_021D9544: ; 0x021D9544
push {r4, r5, r6, lr}
add r5, r2, #0
add r6, r0, #0
add r0, r1, #0
add r1, r5, #0
bl AllocFromHeapAtEnd
add r4, r0, #0
mov r1, #0
add r2, r5, #0
bl MI_CpuFill8
add r0, r6, #0
mov r1, #0
add r2, r4, #0
bl FUN_02066840
add r0, r4, #0
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_end MOD54_021D9544
thumb_func_start MOD54_021D956C
MOD54_021D956C: ; 0x021D956C
bx lr
.align 2, 0
thumb_func_end MOD54_021D956C
thumb_func_start MOD54_021D9570
MOD54_021D9570: ; 0x021D9570
push {r4, r5, r6, r7, lr}
sub sp, #0xc
str r0, [sp]
mov r0, #0
ldr r6, _021D95C4 ; =0x00000BB8
ldr r5, _021D95C8 ; =0x021D9780
str r1, [sp, #4]
str r0, [sp, #8]
_021D9580:
ldr r0, [sp]
ldr r1, [r5]
blx r1
add r4, r0, #0
ldr r0, [sp]
ldr r3, [r5, #4]
mov r1, #0x33
add r2, r4, #0
blx r3
add r7, r0, #0
cmp r6, r4
bhi _021D959C
bl ErrorHandling
_021D959C:
ldr r1, [sp, #4]
add r0, r7, #0
add r2, r4, #0
bl MIi_CpuCopyFast
add r0, r7, #0
bl FreeToHeap
ldr r0, [sp, #4]
sub r6, r6, r4
add r0, r0, r4
str r0, [sp, #4]
ldr r0, [sp, #8]
add r5, #0xc
add r0, r0, #1
str r0, [sp, #8]
cmp r0, #7
blt _021D9580
add sp, #0xc
pop {r4, r5, r6, r7, pc}
.align 2, 0
_021D95C4: .word 0x00000BB8
_021D95C8: .word 0x021D9780
thumb_func_end MOD54_021D9570
thumb_func_start MOD54_021D95CC
MOD54_021D95CC: ; 0x021D95CC
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x40
str r0, [sp]
ldr r0, _021D9670 ; =0x00000BB8
str r1, [sp, #4]
str r0, [sp, #0x10]
mov r0, #0x33
str r0, [sp, #0x2c]
ldr r0, [sp]
mov r7, #0
str r0, [sp, #0x30]
bl FUN_02031190
str r0, [sp, #0x38]
mov r0, #5
str r0, [sp, #0x34]
add r0, sp, #0x18
str r0, [sp, #0x3c]
add r0, r7, #0
str r0, [sp, #0xc]
ldr r0, _021D9674 ; =0x021D9780
str r0, [sp, #8]
_021D95F8:
ldr r1, [sp, #8]
ldr r0, [sp]
ldr r1, [r1]
blx r1
ldr r1, [sp, #0x10]
str r0, [sp, #0x14]
cmp r1, r0
bhi _021D960C
bl ErrorHandling
_021D960C:
mov r6, #0
ldr r4, [sp, #4]
add r5, r6, #0
_021D9612:
add r0, r6, #0
bl FUN_0202DFA4
cmp r0, #0
beq _021D9624
ldr r0, [sp, #0x3c]
add r1, r4, r7
str r1, [r0, r5]
b _021D962A
_021D9624:
ldr r1, [sp, #0x3c]
mov r0, #0
str r0, [r1, r5]
_021D962A:
mov r0, #0x2f
lsl r0, r0, #6
add r6, r6, #1
add r4, r4, r0
add r5, r5, #4
cmp r6, #5
blt _021D9612
ldr r1, [sp, #8]
add r0, sp, #0x2c
ldr r1, [r1, #8]
blx r1
ldr r0, [sp, #0x14]
ldr r1, [sp, #0x10]
add r7, r7, r0
sub r0, r1, r0
str r0, [sp, #0x10]
ldr r0, [sp, #8]
add r0, #0xc
str r0, [sp, #8]
ldr r0, [sp, #0xc]
add r0, r0, #1
str r0, [sp, #0xc]
cmp r0, #7
blo _021D95F8
ldr r0, [sp]
bl FUN_02022504
add r4, r0, #0
bl FUN_0202B390
add r0, r4, #0
bl FUN_0202B3F8
add sp, #0x40
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_021D9670: .word 0x00000BB8
_021D9674: .word 0x021D9780
thumb_func_end MOD54_021D95CC
.section .rodata
; 0x021D9678
.byte 0x00, 0x17, 0x0D, 0x07, 0x04, 0x0D, 0x78, 0x01, 0xA0, 0x01, 0xA0, 0x07, 0xA0, 0x0D, 0xA0, 0x13
.byte 0xA0, 0x19, 0x08, 0x02, 0x08, 0x03, 0x08, 0x04, 0x18, 0x00, 0x00, 0xFF, 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00
.byte 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0xCC, 0x00, 0x54, 0x00
.byte 0xCC, 0x00, 0x35, 0x00, 0xE9, 0x00, 0x48, 0x00, 0xDF, 0x00, 0x67, 0x00, 0xB8, 0x00, 0x67, 0x00
.byte 0xAE, 0x00, 0x48, 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, 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, 0x1E, 0x04, 0x00, 0x00, 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, 0x1F, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x94, 0x1D, 0x02, 0x3D, 0x94, 0x1D, 0x02
.byte 0x65, 0x94, 0x1D, 0x02, 0x7D, 0x94, 0x1D, 0x02, 0x89, 0x94, 0x1D, 0x02, 0xB5, 0x94, 0x1D, 0x02
.byte 0xB5, 0x91, 0x1D, 0x02, 0x75, 0x92, 0x1D, 0x02, 0xD1, 0x94, 0x1D, 0x02, 0xBD, 0x91, 0x1D, 0x02
.byte 0xAD, 0x92, 0x1D, 0x02, 0xE9, 0x94, 0x1D, 0x02, 0xAD, 0x91, 0x1D, 0x02, 0x39, 0x92, 0x1D, 0x02
.byte 0x01, 0x95, 0x1D, 0x02, 0x35, 0xB9, 0x02, 0x02, 0x19, 0x95, 0x1D, 0x02, 0x21, 0x95, 0x1D, 0x02
.byte 0xE1, 0xA1, 0x02, 0x02, 0x45, 0x95, 0x1D, 0x02, 0x6D, 0x95, 0x1D, 0x02
.section .data
; 0x021D97E0
.byte 0x0D, 0x7F, 0x1D, 0x02, 0xA5, 0x80, 0x1D, 0x02, 0xF1, 0x80, 0x1D, 0x02, 0x45, 0x7F, 0x1D, 0x02
.byte 0x21, 0x81, 0x1D, 0x02, 0x51, 0x81, 0x1D, 0x02, 0x81, 0x82, 0x1D, 0x02, 0x99, 0x82, 0x1D, 0x02
.byte 0x21, 0x83, 0x1D, 0x02, 0xA5, 0x85, 0x1D, 0x02, 0xC5, 0x85, 0x1D, 0x02, 0x01, 0x86, 0x1D, 0x02
.byte 0x31, 0x86, 0x1D, 0x02, 0xDD, 0x86, 0x1D, 0x02, 0x2D, 0x87, 0x1D, 0x02, 0x51, 0x87, 0x1D, 0x02
.byte 0x71, 0x87, 0x1D, 0x02, 0xB1, 0x87, 0x1D, 0x02, 0xD1, 0x87, 0x1D, 0x02, 0xF5, 0x87, 0x1D, 0x02
.byte 0x4D, 0x88, 0x1D, 0x02, 0x89, 0x88, 0x1D, 0x02, 0x41, 0x83, 0x1D, 0x02, 0x71, 0x83, 0x1D, 0x02
.byte 0x21, 0x84, 0x1D, 0x02, 0x7D, 0x84, 0x1D, 0x02, 0xAD, 0x84, 0x1D, 0x02, 0xD5, 0x84, 0x1D, 0x02
.byte 0x19, 0x85, 0x1D, 0x02, 0x89, 0x85, 0x1D, 0x02, 0xCD, 0x80, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00