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

5097 lines
89 KiB
ArmAsm

.include "asm/macros.inc"
.include "global.inc"
.section .text
.balign 4, 0
thumb_func_start MOD59_021D74E0
MOD59_021D74E0: ; 0x021D74E0
push {r3, r4, r5, lr}
mov r2, #1
add r5, r0, #0
mov r0, #3
mov r1, #0x52
lsl r2, r2, #0x12
bl FUN_0201681C
add r0, r5, #0
mov r1, #0xb4
mov r2, #0x52
bl FUN_02006268
mov r1, #0
mov r2, #0xb4
add r4, r0, #0
bl memset
mov r0, #0x52
str r0, [r4]
add r0, r5, #0
bl FUN_0200628C
ldr r0, [r0, #8]
str r0, [r4, #4]
bl LoadPlayerDataAddress
mov r1, #0
str r0, [r4, #8]
str r1, [r4, #0xc]
str r1, [r4, #0x10]
str r1, [r4, #0x14]
ldr r0, [r4, #8]
add r2, r1, #0
str r0, [sp]
mov r0, #0x52
mov r3, #7
bl FUN_02077A84
str r0, [r4, #0x70]
ldr r0, [r4, #8]
mov r1, #3
str r0, [sp]
mov r0, #0x52
mov r2, #0
mov r3, #7
bl FUN_02077A84
str r0, [r4, #0x74]
add r0, r4, #0
mov r1, #0
add r0, #0x88
strb r1, [r0]
add r0, r4, #0
add r0, #0x89
strb r1, [r0]
add r0, r4, #0
add r0, #0x8a
strb r1, [r0]
add r0, r4, #0
add r0, #0x8b
strb r1, [r0]
add r4, #0x90
str r1, [r4]
mov r0, #1
pop {r3, r4, r5, pc}
thumb_func_end MOD59_021D74E0
thumb_func_start MOD59_021D7564
MOD59_021D7564: ; 0x021D7564
push {r3, r4, r5, r6, lr}
sub sp, #0xc
add r5, r1, #0
bl FUN_02006278
ldr r1, [r5]
add r4, r0, #0
mov r6, #0
cmp r1, #5
bls _021D757A
b _021D76AC
_021D757A:
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021D7586: ; jump table
.short _021D7592 - _021D7586 - 2 ; case 0
.short _021D75FA - _021D7586 - 2 ; case 1
.short _021D7642 - _021D7586 - 2 ; case 2
.short _021D7668 - _021D7586 - 2 ; case 3
.short _021D7690 - _021D7586 - 2 ; case 4
.short _021D76AA - _021D7586 - 2 ; case 5
_021D7592:
add r0, r6, #0
add r1, r6, #0
bl FUN_0200E3A0
mov r0, #1
add r1, r6, #0
bl FUN_0200E3A0
add r0, r6, #0
add r1, r0, #0
bl FUN_02015F10
add r0, r6, #0
add r1, r0, #0
bl FUN_02015F34
bl FUN_0201E6D8
bl FUN_0201E740
mov r2, #1
lsl r2, r2, #0x1a
ldr r1, [r2]
ldr r0, _021D76B4 ; =0xFFFFE0FF
and r1, r0
str r1, [r2]
ldr r2, _021D76B8 ; =0x04001000
ldr r1, [r2]
and r0, r1
str r0, [r2]
mov r0, #4
mov r1, #8
bl FUN_0201669C
add r0, r4, #0
bl MOD59_021D778C
add r0, r4, #0
bl MOD59_021D79F8
add r0, r4, #0
bl MOD59_021D7A4C
ldr r0, _021D76BC ; =MOD59_021D7724
add r1, r4, #0
bl FUN_02015F10
bl FUN_0201E788
mov r0, #1
str r0, [r5]
b _021D76AC
_021D75FA:
bl MOD59_021D8920
cmp r0, #1
bne _021D761E
mov r0, #6
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
ldr r0, [r4]
str r0, [sp, #8]
add r0, r6, #0
add r1, r0, #0
add r2, r0, #0
add r3, r0, #0
bl FUN_0200E1D0
mov r0, #2
str r0, [r5]
_021D761E:
ldr r0, [r4, #0x14]
cmp r0, #0
beq _021D76AC
mov r0, #6
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
ldr r0, [r4]
str r0, [sp, #8]
mov r0, #0
add r1, r0, #0
add r2, r0, #0
add r3, r0, #0
bl FUN_0200E1D0
mov r0, #3
str r0, [r5]
b _021D76AC
_021D7642:
bl FUN_0200E308
cmp r0, #1
bne _021D76AC
add r0, r4, #0
bl MOD59_021D7A34
add r0, r4, #0
bl MOD59_021D796C
add r0, r4, #0
bl MOD59_021D7A5C
add r0, r6, #0
add r1, r0, #0
bl FUN_02015F10
mov r6, #1
b _021D76AC
_021D7668:
bl FUN_0200E308
cmp r0, #1
bne _021D76AC
add r0, r4, #0
bl MOD59_021D7A34
add r0, r4, #0
bl MOD59_021D796C
add r0, r4, #0
bl MOD59_021D7A5C
add r0, r6, #0
add r1, r0, #0
bl FUN_02015F10
mov r0, #4
str r0, [r5]
b _021D76AC
_021D7690:
ldr r0, [r4, #0x14]
bl FUN_02006290
cmp r0, #1
bne _021D76AC
ldr r0, [r4, #0x14]
bl FUN_02006260
add r0, r6, #0
str r0, [r4, #0x14]
mov r0, #5
str r0, [r5]
b _021D76AC
_021D76AA:
str r6, [r5]
_021D76AC:
add r0, r6, #0
add sp, #0xc
pop {r3, r4, r5, r6, pc}
nop
_021D76B4: .word 0xFFFFE0FF
_021D76B8: .word 0x04001000
_021D76BC: .word MOD59_021D7724
thumb_func_end MOD59_021D7564
thumb_func_start MOD59_021D76C0
MOD59_021D76C0: ; 0x021D76C0
push {r4, r5, r6, lr}
add r6, r0, #0
bl FUN_02006278
add r4, r0, #0
ldr r0, [r4, #4]
ldr r5, [r4]
bl FUN_020238F4
ldr r1, [r4, #0x70]
ldr r1, [r1, #0x18]
bl FUN_0202397C
ldr r0, [r4, #4]
bl FUN_020238F4
ldr r1, [r4, #0x70]
ldr r1, [r1, #4]
bl FUN_020239C8
ldr r0, [r4, #4]
bl FUN_02024EB4
ldr r1, [r4, #0x74]
ldr r1, [r1, #0x18]
bl FUN_02024EF4
ldr r0, [r4, #0x70]
bl FUN_02077AC4
ldr r0, [r4, #0x74]
bl FUN_02077AC4
add r0, r6, #0
bl FUN_0200627C
add r0, r5, #0
bl FUN_020168D0
ldr r0, _021D771C ; =SDK_OVERLAY_MODULE_52_ID
ldr r1, _021D7720 ; =0x021D76D8
bl FUN_02000E7C
mov r0, #1
pop {r4, r5, r6, pc}
nop
_021D771C: .word SDK_OVERLAY_MODULE_52_ID
_021D7720: .word 0x021D76D8
thumb_func_end MOD59_021D76C0
thumb_func_start MOD59_021D7724
MOD59_021D7724: ; 0x021D7724
ldr r3, _021D772C ; =FUN_0201AB60
ldr r0, [r0, #0x18]
bx r3
nop
_021D772C: .word FUN_0201AB60
thumb_func_end MOD59_021D7724
thumb_func_start MOD59_021D7730
MOD59_021D7730: ; 0x021D7730
push {r3, r4}
ldr r2, _021D7788 ; =0x021C48F8
mov r0, #0
ldrh r1, [r2, #0x20]
cmp r1, #0
beq _021D7784
ldrh r3, [r2, #0x1c]
mov r1, #1
lsl r1, r1, #8
cmp r3, r1
bhs _021D7784
ldrh r2, [r2, #0x1e]
cmp r2, #0xc0
bhs _021D7784
cmp r3, #0x80
bhs _021D7758
mov r1, #0x80
sub r1, r1, r3
lsl r1, r1, #0x10
b _021D775C
_021D7758:
sub r3, #0x80
lsl r1, r3, #0x10
_021D775C:
lsr r3, r1, #0x10
cmp r2, #0x64
bhs _021D776A
mov r1, #0x64
sub r1, r1, r2
lsl r1, r1, #0x10
b _021D776E
_021D776A:
sub r2, #0x64
lsl r1, r2, #0x10
_021D776E:
lsr r4, r1, #0x10
add r2, r3, #0
add r1, r4, #0
mul r2, r3
mul r1, r4
add r2, r2, r1
mov r1, #1
lsl r1, r1, #8
cmp r2, r1
bgt _021D7784
mov r0, #1
_021D7784:
pop {r3, r4}
bx lr
.align 2, 0
_021D7788: .word 0x021C48F8
thumb_func_end MOD59_021D7730
thumb_func_start MOD59_021D778C
MOD59_021D778C: ; 0x021D778C
push {r3, r4, r5, lr}
sub sp, #0x78
ldr r5, _021D7954 ; =0x021D9F18
add r4, r0, #0
add r3, sp, #0x50
mov r2, #5
_021D7798:
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
sub r2, r2, #1
bne _021D7798
add r0, sp, #0x50
bl FUN_0201E66C
ldr r0, [r4]
bl FUN_02016B94
add r3, sp, #0x40
ldr r5, _021D7958 ; =0x021D9DCC
str r0, [r4, #0x18]
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, _021D795C ; =0x021D9EA0
add r3, sp, #0x24
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]
mov r0, #0xf
strb r0, [r2, #0x12]
mov r0, #6
strb r0, [r2, #0x13]
ldr r0, [r4, #0x18]
add r3, r1, #0
bl FUN_02016C18
ldr r0, [r4, #0x18]
mov r1, #0
bl FUN_02018744
mov r0, #0xe
add r2, sp, #0x24
strb r0, [r2, #0x12]
mov r0, #5
strb r0, [r2, #0x13]
ldr r0, [r4, #0x18]
mov r1, #1
mov r3, #0
bl FUN_02016C18
ldr r0, [r4, #0x18]
mov r1, #1
bl FUN_02018744
mov r0, #0xd
add r2, sp, #0x24
strb r0, [r2, #0x12]
mov r0, #4
strb r0, [r2, #0x13]
ldr r0, [r4, #0x18]
mov r1, #2
mov r3, #0
bl FUN_02016C18
ldr r0, [r4, #0x18]
mov r1, #2
bl FUN_02018744
mov r0, #0xc
add r2, sp, #0x24
strb r0, [r2, #0x12]
mov r1, #3
strb r1, [r2, #0x13]
ldr r0, [r4, #0x18]
mov r3, #0
bl FUN_02016C18
ldr r0, [r4, #0x18]
mov r1, #3
bl FUN_02018744
mov r1, #0
str r1, [sp]
ldr r0, [r4]
ldr r2, _021D7960 ; =0x000003E2
str r0, [sp, #4]
ldr r0, [r4, #0x18]
mov r3, #4
bl FUN_0200CD68
mov r1, #0
str r1, [sp]
ldr r0, [r4]
ldr r2, _021D7964 ; =0x000003D9
str r0, [sp, #4]
ldr r0, [r4, #0x18]
mov r3, #3
bl FUN_0200CB00
ldr r2, [r4]
mov r0, #0
mov r1, #0xa0
bl FUN_02002ED0
ldr r2, [r4]
mov r0, #0
mov r1, #0xc0
bl FUN_02002EEC
ldr r5, _021D7968 ; =0x021D9EBC
add r3, sp, #8
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, #0xf
str r0, [r3]
add r0, sp, #8
strb r1, [r0, #0x12]
mov r1, #6
strb r1, [r0, #0x13]
ldr r0, [r4, #0x18]
mov r1, #4
mov r3, #0
bl FUN_02016C18
ldr r0, [r4, #0x18]
mov r1, #4
bl FUN_02018744
mov r1, #0xe
add r0, sp, #8
strb r1, [r0, #0x12]
mov r1, #5
strb r1, [r0, #0x13]
ldr r0, [r4, #0x18]
add r2, sp, #8
mov r3, #0
bl FUN_02016C18
ldr r0, [r4, #0x18]
mov r1, #5
bl FUN_02018744
mov r1, #0xd
add r0, sp, #8
strb r1, [r0, #0x12]
mov r1, #4
strb r1, [r0, #0x13]
ldr r0, [r4, #0x18]
mov r1, #6
add r2, sp, #8
mov r3, #0
bl FUN_02016C18
ldr r0, [r4, #0x18]
mov r1, #6
bl FUN_02018744
mov r1, #0xc
add r0, sp, #8
strb r1, [r0, #0x12]
mov r1, #3
strb r1, [r0, #0x13]
ldr r0, [r4, #0x18]
mov r1, #7
add r2, sp, #8
mov r3, #0
bl FUN_02016C18
ldr r0, [r4, #0x18]
mov r1, #7
bl FUN_02018744
mov r0, #0
add r1, r0, #0
bl FUN_0201797C
mov r0, #1
mov r1, #0
bl FUN_0201797C
mov r0, #2
mov r1, #0
bl FUN_0201797C
mov r0, #3
mov r1, #0
bl FUN_0201797C
mov r0, #4
mov r1, #0
bl FUN_0201797C
mov r0, #5
mov r1, #0
bl FUN_0201797C
mov r0, #6
mov r1, #0
bl FUN_0201797C
mov r0, #7
mov r1, #0
bl FUN_0201797C
add r0, r4, #0
bl MOD59_021D8058
mov r0, #0
str r0, [r4, #0x78]
add sp, #0x78
pop {r3, r4, r5, pc}
.align 2, 0
_021D7954: .word 0x021D9F18
_021D7958: .word 0x021D9DCC
_021D795C: .word 0x021D9EA0
_021D7960: .word 0x000003E2
_021D7964: .word 0x000003D9
_021D7968: .word 0x021D9EBC
thumb_func_end MOD59_021D778C
thumb_func_start MOD59_021D796C
MOD59_021D796C: ; 0x021D796C
push {r4, lr}
add r4, r0, #0
mov r0, #0
add r1, r0, #0
bl FUN_0201797C
mov r0, #1
mov r1, #0
bl FUN_0201797C
mov r0, #2
mov r1, #0
bl FUN_0201797C
mov r0, #3
mov r1, #0
bl FUN_0201797C
mov r0, #4
mov r1, #0
bl FUN_0201797C
mov r0, #5
mov r1, #0
bl FUN_0201797C
mov r0, #6
mov r1, #0
bl FUN_0201797C
mov r0, #7
mov r1, #0
bl FUN_0201797C
ldr r0, [r4, #0x18]
mov r1, #0
bl FUN_020178A0
ldr r0, [r4, #0x18]
mov r1, #1
bl FUN_020178A0
ldr r0, [r4, #0x18]
mov r1, #2
bl FUN_020178A0
ldr r0, [r4, #0x18]
mov r1, #3
bl FUN_020178A0
ldr r0, [r4, #0x18]
mov r1, #4
bl FUN_020178A0
ldr r0, [r4, #0x18]
mov r1, #5
bl FUN_020178A0
ldr r0, [r4, #0x18]
mov r1, #6
bl FUN_020178A0
ldr r0, [r4, #0x18]
mov r1, #7
bl FUN_020178A0
ldr r0, [r4, #0x18]
bl FreeToHeap
pop {r4, pc}
thumb_func_end MOD59_021D796C
thumb_func_start MOD59_021D79F8
MOD59_021D79F8: ; 0x021D79F8
push {r4, lr}
add r4, r0, #0
ldr r2, _021D7A30 ; =0x00000155
ldr r3, [r4]
mov r0, #1
mov r1, #0x1a
bl FUN_0200A86C
str r0, [r4, #0x4c]
bl FUN_0201BD5C
mov r0, #0
ldr r3, [r4]
add r1, r0, #0
mov r2, #6
bl FUN_020142EC
str r0, [r4, #0x60]
ldr r0, [r4]
bl FUN_0200AA80
str r0, [r4, #0x64]
mov r0, #0
str r0, [r4, #0x50]
str r0, [r4, #0x54]
str r0, [r4, #0x2c]
pop {r4, pc}
nop
_021D7A30: .word 0x00000155
thumb_func_end MOD59_021D79F8
thumb_func_start MOD59_021D7A34
MOD59_021D7A34: ; 0x021D7A34
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0x64]
bl FUN_0200AB18
ldr r0, [r4, #0x60]
bl FUN_020143D0
ldr r0, [r4, #0x4c]
bl FUN_0200A8B8
pop {r4, pc}
thumb_func_end MOD59_021D7A34
thumb_func_start MOD59_021D7A4C
MOD59_021D7A4C: ; 0x021D7A4C
push {r4, lr}
add r4, r0, #0
ldr r0, [r4]
bl FUN_02014590
str r0, [r4, #0x68]
pop {r4, pc}
.align 2, 0
thumb_func_end MOD59_021D7A4C
thumb_func_start MOD59_021D7A5C
MOD59_021D7A5C: ; 0x021D7A5C
ldr r3, _021D7A64 ; =FUN_020145A8
ldr r0, [r0, #0x68]
bx r3
nop
_021D7A64: .word FUN_020145A8
thumb_func_end MOD59_021D7A5C
thumb_func_start MOD59_021D7A68
MOD59_021D7A68: ; 0x021D7A68
push {r3, r4, r5, r6, lr}
sub sp, #4
add r4, r1, #0
add r3, r0, #0
add r6, r2, #0
mov r5, #0
cmp r4, #6
bhi _021D7A92
add r0, r4, r4
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021D7A84: ; jump table
.short _021D7A92 - _021D7A84 - 2 ; case 0
.short _021D7A98 - _021D7A84 - 2 ; case 1
.short _021D7A9E - _021D7A84 - 2 ; case 2
.short _021D7A92 - _021D7A84 - 2 ; case 3
.short _021D7AA4 - _021D7A84 - 2 ; case 4
.short _021D7AAA - _021D7A84 - 2 ; case 5
.short _021D7AB0 - _021D7A84 - 2 ; case 6
_021D7A92:
mov r1, #1
mov r0, #0
b _021D7AB4
_021D7A98:
mov r1, #2
add r0, r5, #0
b _021D7AB4
_021D7A9E:
mov r1, #4
add r0, r5, #0
b _021D7AB4
_021D7AA4:
mov r1, #1
add r0, r1, #0
b _021D7AB4
_021D7AAA:
mov r1, #2
mov r0, #1
b _021D7AB4
_021D7AB0:
mov r1, #4
mov r0, #1
_021D7AB4:
ldr r2, [r3, #0x78]
cmp r2, #3
bls _021D7ABC
b _021D7BDE
_021D7ABC:
add r2, r2, r2
add r2, pc
ldrh r2, [r2, #6]
lsl r2, r2, #0x10
asr r2, r2, #0x10
add pc, r2
_021D7AC8: ; jump table
.short _021D7AD0 - _021D7AC8 - 2 ; case 0
.short _021D7B2C - _021D7AC8 - 2 ; case 1
.short _021D7B7C - _021D7AC8 - 2 ; case 2
.short _021D7BD0 - _021D7AC8 - 2 ; case 3
_021D7AD0:
cmp r6, #0
bne _021D7B1A
mov r2, #0
str r2, [r3, #0x7c]
add r2, r3, #0
mov r6, #0x10
add r2, #0x80
str r6, [r2]
mov r2, #1
str r2, [r3, #0x78]
cmp r0, #0
bne _021D7AFC
add r0, r3, #0
add r0, #0x80
ldr r0, [r0]
mov r2, #0xe
str r0, [sp]
ldr r0, _021D7BE4 ; =0x04000050
ldr r3, [r3, #0x7c]
bl G2x_SetBlendAlpha_
b _021D7B0E
_021D7AFC:
add r0, r3, #0
add r0, #0x80
ldr r0, [r0]
mov r2, #0xe
str r0, [sp]
ldr r0, _021D7BE8 ; =0x04001050
ldr r3, [r3, #0x7c]
bl G2x_SetBlendAlpha_
_021D7B0E:
lsl r0, r4, #0x18
lsr r0, r0, #0x18
mov r1, #1
bl FUN_0201797C
b _021D7BDE
_021D7B1A:
mov r0, #0x10
str r0, [r3, #0x7c]
add r0, r3, #0
mov r1, #0
add r0, #0x80
str r1, [r0]
mov r0, #2
str r0, [r3, #0x78]
b _021D7BDE
_021D7B2C:
add r2, r3, #0
add r2, #0x80
ldr r2, [r2]
cmp r2, #0
beq _021D7B76
ldr r2, [r3, #0x7c]
add r2, r2, #1
str r2, [r3, #0x7c]
add r2, r3, #0
add r2, #0x80
ldr r2, [r2]
sub r4, r2, #1
add r2, r3, #0
add r2, #0x80
str r4, [r2]
cmp r0, #0
bne _021D7B62
add r0, r3, #0
add r0, #0x80
ldr r0, [r0]
mov r2, #0xe
str r0, [sp]
ldr r0, _021D7BE4 ; =0x04000050
ldr r3, [r3, #0x7c]
bl G2x_SetBlendAlpha_
b _021D7BDE
_021D7B62:
add r0, r3, #0
add r0, #0x80
ldr r0, [r0]
mov r2, #0xe
str r0, [sp]
ldr r0, _021D7BE8 ; =0x04001050
ldr r3, [r3, #0x7c]
bl G2x_SetBlendAlpha_
b _021D7BDE
_021D7B76:
mov r0, #3
str r0, [r3, #0x78]
b _021D7BDE
_021D7B7C:
ldr r2, [r3, #0x7c]
cmp r2, #0
beq _021D7BC0
sub r2, r2, #1
str r2, [r3, #0x7c]
add r2, r3, #0
add r2, #0x80
ldr r2, [r2]
add r4, r2, #1
add r2, r3, #0
add r2, #0x80
str r4, [r2]
cmp r0, #0
bne _021D7BAC
add r0, r3, #0
add r0, #0x80
ldr r0, [r0]
mov r2, #0xe
str r0, [sp]
ldr r0, _021D7BE4 ; =0x04000050
ldr r3, [r3, #0x7c]
bl G2x_SetBlendAlpha_
b _021D7BDE
_021D7BAC:
add r0, r3, #0
add r0, #0x80
ldr r0, [r0]
mov r2, #0xe
str r0, [sp]
ldr r0, _021D7BE8 ; =0x04001050
ldr r3, [r3, #0x7c]
bl G2x_SetBlendAlpha_
b _021D7BDE
_021D7BC0:
mov r0, #3
str r0, [r3, #0x78]
lsl r0, r4, #0x18
lsr r0, r0, #0x18
mov r1, #0
bl FUN_0201797C
b _021D7BDE
_021D7BD0:
ldr r0, _021D7BE4 ; =0x04000050
mov r1, #0
strh r1, [r0]
ldr r0, _021D7BE8 ; =0x04001050
mov r5, #1
strh r1, [r0]
str r1, [r3, #0x78]
_021D7BDE:
add r0, r5, #0
add sp, #4
pop {r3, r4, r5, r6, pc}
.align 2, 0
_021D7BE4: .word 0x04000050
_021D7BE8: .word 0x04001050
thumb_func_end MOD59_021D7A68
thumb_func_start MOD59_021D7BEC
MOD59_021D7BEC: ; 0x021D7BEC
add r2, r0, #0
add r2, #0x90
ldr r2, [r2]
cmp r2, r1
bge _021D7C06
add r1, r0, #0
add r1, #0x90
ldr r1, [r1]
add r0, #0x90
add r1, r1, #1
str r1, [r0]
mov r0, #0
bx lr
_021D7C06:
mov r1, #0
add r0, #0x90
str r1, [r0]
mov r0, #1
bx lr
thumb_func_end MOD59_021D7BEC
thumb_func_start MOD59_021D7C10
MOD59_021D7C10: ; 0x021D7C10
push {r4, r5, lr}
sub sp, #0xc
add r5, r0, #0
mov r0, #0x20
str r0, [sp]
mov r0, #0x18
str r0, [sp, #4]
lsl r0, r2, #0x18
add r4, r1, #0
lsr r0, r0, #0x18
str r0, [sp, #8]
lsl r1, r4, #0x18
mov r2, #0
ldr r0, [r5, #0x18]
lsr r1, r1, #0x18
add r3, r2, #0
bl FUN_020186B4
lsl r1, r4, #0x18
ldr r0, [r5, #0x18]
lsr r1, r1, #0x18
bl FUN_02017CD0
add sp, #0xc
pop {r4, r5, pc}
.align 2, 0
thumb_func_end MOD59_021D7C10
thumb_func_start MOD59_021D7C44
MOD59_021D7C44: ; 0x021D7C44
push {r4, r5, r6, r7, lr}
sub sp, #0xc
add r5, r0, #0
ldr r0, [r5, #0x50]
add r7, r1, #0
mov r4, #0
cmp r0, #0
beq _021D7C5E
cmp r0, #1
beq _021D7D1C
cmp r0, #2
beq _021D7D36
b _021D7D54
_021D7C5E:
add r1, r5, #0
ldr r0, [r5, #0x18]
ldr r2, _021D7D5C ; =0x021D9DB8
add r1, #0x1c
bl FUN_02019150
mov r0, #0xd8
str r0, [sp]
mov r0, #0x20
str r0, [sp, #4]
add r0, r5, #0
add r2, r4, #0
add r0, #0x1c
mov r1, #0xf
add r3, r2, #0
bl FUN_020196F4
add r0, r5, #0
ldr r2, _021D7D60 ; =0x000003E2
add r0, #0x1c
add r1, r4, #0
mov r3, #4
bl FUN_0200D0BC
mov r0, #1
bl FUN_02002B60
add r0, r4, #0
bl FUN_02002B7C
mov r0, #1
ldr r1, [r5]
lsl r0, r0, #0xa
bl FUN_020219F4
add r6, r0, #0
mov r0, #1
ldr r1, [r5]
lsl r0, r0, #0xa
bl FUN_020219F4
str r0, [r5, #0x5c]
ldr r0, [r5, #0x4c]
add r1, r7, #0
add r2, r6, #0
bl FUN_0200A8E0
mov r0, #1
str r0, [sp]
mov r0, #2
str r0, [sp, #4]
ldr r2, [r5, #0x70]
add r3, r5, #0
add r3, #0x84
ldr r0, [r5, #0x64]
ldr r2, [r2, #0x18]
ldr r3, [r3]
add r1, r4, #0
bl FUN_0200ABB4
mov r1, #1
str r1, [sp]
mov r0, #2
str r0, [sp, #4]
ldr r2, [r5, #0x74]
ldr r0, [r5, #0x64]
ldr r2, [r2, #0x18]
add r3, r4, #0
bl FUN_0200ABB4
ldr r0, [r5, #0x64]
ldr r1, [r5, #0x5c]
add r2, r6, #0
bl FUN_0200B7B8
add r0, r6, #0
bl FUN_02021A20
ldr r0, [r5, #8]
bl FUN_02024FF4
add r3, r4, #0
str r3, [sp]
str r0, [sp, #4]
str r3, [sp, #8]
add r0, r5, #0
ldr r2, [r5, #0x5c]
add r0, #0x1c
mov r1, #1
bl FUN_0201BD84
str r0, [r5, #0x58]
mov r0, #1
str r0, [r5, #0x50]
b _021D7D54
_021D7D1C:
ldr r0, [r5, #0x58]
lsl r0, r0, #0x18
lsr r0, r0, #0x18
bl FUN_0201BD70
cmp r0, #0
bne _021D7D54
ldr r0, [r5, #0x5c]
bl FUN_02021A20
mov r0, #2
str r0, [r5, #0x50]
b _021D7D54
_021D7D36:
cmp r2, #0
bne _021D7D46
ldr r0, _021D7D64 ; =0x021C48B8
ldr r1, [r0, #0x48]
mov r0, #1
and r0, r1
cmp r0, #1
bne _021D7D54
_021D7D46:
add r0, r5, #0
add r0, #0x1c
bl FUN_02019178
mov r0, #0
str r0, [r5, #0x50]
mov r4, #1
_021D7D54:
add r0, r4, #0
add sp, #0xc
pop {r4, r5, r6, r7, pc}
nop
_021D7D5C: .word 0x021D9DB8
_021D7D60: .word 0x000003E2
_021D7D64: .word 0x021C48B8
thumb_func_end MOD59_021D7C44
thumb_func_start MOD59_021D7D68
MOD59_021D7D68: ; 0x021D7D68
push {r3, lr}
cmp r2, #0
bne _021D7D74
ldr r0, _021D7D78 ; =0x000005DC
bl FUN_020054C8
_021D7D74:
pop {r3, pc}
nop
_021D7D78: .word 0x000005DC
thumb_func_end MOD59_021D7D68
thumb_func_start MOD59_021D7D7C
MOD59_021D7D7C: ; 0x021D7D7C
push {r4, r5, r6, r7, lr}
sub sp, #0x24
add r5, r0, #0
mov r0, #0
str r0, [sp]
ldr r0, [r5, #0x2c]
add r4, r2, #0
cmp r0, #0
beq _021D7D94
cmp r0, #1
beq _021D7E4C
b _021D7E96
_021D7D94:
cmp r1, #0
beq _021D7DA0
cmp r1, #1
beq _021D7DA8
cmp r1, #2
beq _021D7DB0
_021D7DA0:
ldr r2, _021D7E9C ; =0x021D9DA8
ldr r4, _021D7EA0 ; =0x021D9E0C
mov r6, #2
b _021D7DC4
_021D7DA8:
ldr r2, _021D7EA4 ; =0x021D9DB0
ldr r4, _021D7EA8 ; =0x021D9E58
mov r6, #3
b _021D7DC4
_021D7DB0:
ldr r0, _021D7EAC ; =gGameVersion
ldr r2, _021D7EB0 ; =0x021D9DA0
ldrb r0, [r0]
cmp r0, #0xa
bne _021D7DC0
ldr r4, _021D7EB4 ; =0x021D9F40
mov r6, #5
b _021D7DC4
_021D7DC0:
ldr r4, _021D7EB8 ; =0x021D9F68
mov r6, #5
_021D7DC4:
add r1, r5, #0
ldr r0, [r5, #0x18]
add r1, #0x30
bl FUN_02019150
ldr r1, [r5]
add r0, r6, #0
bl FUN_02012838
mov r7, #0
str r0, [r5, #0x44]
cmp r6, #0
ble _021D7DF2
_021D7DDE:
ldr r0, [r5, #0x44]
ldr r1, [r5, #0x4c]
ldr r2, [r4]
ldr r3, [r4, #4]
bl FUN_02012880
add r7, r7, #1
add r4, #8
cmp r7, r6
blt _021D7DDE
_021D7DF2:
ldr r4, _021D7EBC ; =0x021D9EF8
add r3, sp, #4
add r2, r3, #0
ldmia r4!, {r0, r1}
stmia r3!, {r0, r1}
ldmia r4!, {r0, r1}
stmia r3!, {r0, r1}
ldmia r4!, {r0, r1}
stmia r3!, {r0, r1}
ldmia r4!, {r0, r1}
stmia r3!, {r0, r1}
ldr r0, [r5, #0x44]
str r0, [sp, #4]
lsl r0, r6, #0x10
lsr r1, r0, #0x10
add r0, sp, #4
strh r1, [r0, #0x10]
strh r1, [r0, #0x12]
ldr r0, _021D7EC0 ; =MOD59_021D7D68
mov r1, #0
str r0, [sp, #8]
add r0, r5, #0
add r0, #0x30
str r0, [sp, #0x10]
ldr r3, [r5]
add r0, r2, #0
lsl r3, r3, #0x18
add r2, r1, #0
lsr r3, r3, #0x18
bl FUN_020010A8
str r0, [r5, #0x40]
ldr r0, [sp, #0x10]
ldr r2, _021D7EC4 ; =0x000003D9
mov r1, #1
mov r3, #3
bl FUN_0200CCA4
add r0, r5, #0
add r0, #0x30
bl FUN_020191D0
mov r0, #1
str r0, [r5, #0x2c]
b _021D7E96
_021D7E4C:
ldr r0, [r5, #0x40]
bl FUN_02001204
mov r1, #0
mvn r1, r1
str r0, [r5, #0x48]
cmp r0, r1
beq _021D7E96
sub r1, r1, #1
cmp r0, r1
bne _021D7E66
cmp r4, #1
beq _021D7E96
_021D7E66:
add r0, r5, #0
add r0, #0x30
mov r1, #0
bl FUN_0200CCF8
add r0, r5, #0
add r0, #0x30
bl FUN_02019178
mov r1, #0
ldr r0, [r5, #0x40]
add r2, r1, #0
bl FUN_02001300
ldr r0, [r5, #0x44]
bl FUN_02012870
ldr r0, _021D7EC8 ; =0x000005DC
bl FUN_020054C8
mov r0, #0
str r0, [r5, #0x2c]
mov r0, #1
str r0, [sp]
_021D7E96:
ldr r0, [sp]
add sp, #0x24
pop {r4, r5, r6, r7, pc}
.align 2, 0
_021D7E9C: .word 0x021D9DA8
_021D7EA0: .word 0x021D9E0C
_021D7EA4: .word 0x021D9DB0
_021D7EA8: .word 0x021D9E58
_021D7EAC: .word gGameVersion
_021D7EB0: .word 0x021D9DA0
_021D7EB4: .word 0x021D9F40
_021D7EB8: .word 0x021D9F68
_021D7EBC: .word 0x021D9EF8
_021D7EC0: .word MOD59_021D7D68
_021D7EC4: .word 0x000003D9
_021D7EC8: .word 0x000005DC
thumb_func_end MOD59_021D7D7C
thumb_func_start MOD59_021D7ECC
MOD59_021D7ECC: ; 0x021D7ECC
push {r4, r5, r6, r7, lr}
sub sp, #0x1c
add r4, r0, #0
str r1, [sp, #0x10]
ldr r1, [r4, #0x54]
add r6, r2, #0
add r7, r3, #0
mov r5, #0
cmp r1, #5
bls _021D7EE2
b _021D803C
_021D7EE2:
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021D7EEE: ; jump table
.short _021D7EFA - _021D7EEE - 2 ; case 0
.short _021D7FD8 - _021D7EEE - 2 ; case 1
.short _021D7FE4 - _021D7EEE - 2 ; case 2
.short _021D7FF6 - _021D7EEE - 2 ; case 3
.short _021D8016 - _021D7EEE - 2 ; case 4
.short _021D8028 - _021D7EEE - 2 ; case 5
_021D7EFA:
add r0, r5, #0
add r1, r5, #0
bl FUN_0201797C
mov r0, #1
ldr r1, [r4]
lsl r0, r0, #0xa
bl FUN_020219F4
str r0, [r4, #0x5c]
ldr r0, [r4, #0x4c]
ldr r1, [sp, #0x10]
ldr r2, [r4, #0x5c]
bl FUN_0200A8E0
cmp r6, #1
add r0, sp, #0x14
bne _021D7F7C
ldr r1, _021D8044 ; =0x021D9D90
ldrh r2, [r1, #8]
strh r2, [r0]
ldrh r2, [r1, #0xa]
strh r2, [r0, #2]
ldrh r2, [r1, #0xc]
ldrh r1, [r1, #0xe]
strh r2, [r0, #4]
strh r1, [r0, #6]
ldr r0, [r4, #0x5c]
bl FUN_02002F90
mov r1, #0xc
sub r2, r1, r0
add r1, sp, #0x14
strb r2, [r1, #2]
lsl r0, r0, #1
strb r0, [r1, #4]
add r1, r4, #0
ldr r0, [r4, #0x18]
add r1, #0x1c
add r2, sp, #0x14
bl FUN_02019150
add r1, r5, #0
mov r0, #0xc0
str r0, [sp]
str r0, [sp, #4]
add r0, r4, #0
add r0, #0x1c
add r2, r1, #0
add r3, r1, #0
bl FUN_020196F4
add r1, r5, #0
str r1, [sp]
ldr r0, _021D8048 ; =0x00010200
str r1, [sp, #4]
str r0, [sp, #8]
str r1, [sp, #0xc]
add r0, r4, #0
ldr r2, [r4, #0x5c]
add r0, #0x1c
add r3, r1, #0
bl FUN_0201BDE0
b _021D7FCC
_021D7F7C:
ldr r1, _021D8044 ; =0x021D9D90
add r2, sp, #0x14
ldrh r3, [r1]
strh r3, [r0]
ldrh r3, [r1, #2]
strh r3, [r0, #2]
ldrh r3, [r1, #4]
ldrh r1, [r1, #6]
strh r3, [r0, #4]
strh r1, [r0, #6]
ldr r1, [sp, #0x30]
strb r7, [r0, #2]
strb r1, [r0, #4]
add r1, r4, #0
ldr r0, [r4, #0x18]
add r1, #0x1c
bl FUN_02019150
add r1, r5, #0
mov r0, #0xc0
str r0, [sp]
str r0, [sp, #4]
add r0, r4, #0
add r0, #0x1c
add r2, r1, #0
add r3, r1, #0
bl FUN_020196F4
add r1, r5, #0
str r1, [sp]
ldr r0, _021D804C ; =0x000F0200
str r1, [sp, #4]
str r0, [sp, #8]
str r1, [sp, #0xc]
add r0, r4, #0
ldr r2, [r4, #0x5c]
add r0, #0x1c
add r3, r1, #0
bl FUN_0201BDE0
_021D7FCC:
ldr r0, [r4, #0x5c]
bl FUN_02021A20
mov r0, #1
str r0, [r4, #0x54]
b _021D803C
_021D7FD8:
add r0, #0x1c
bl FUN_020191D0
mov r0, #2
str r0, [r4, #0x54]
b _021D803C
_021D7FE4:
add r1, r5, #0
add r2, r5, #0
bl MOD59_021D7A68
cmp r0, #1
bne _021D803C
mov r0, #3
str r0, [r4, #0x54]
b _021D803C
_021D7FF6:
ldr r0, _021D8050 ; =0x021C48B8
ldr r1, [r0, #0x48]
mov r0, #1
and r0, r1
cmp r0, #1
beq _021D800A
mov r0, #2
and r0, r1
cmp r0, #2
bne _021D803C
_021D800A:
ldr r0, _021D8054 ; =0x000005DC
bl FUN_020054C8
mov r0, #4
str r0, [r4, #0x54]
b _021D803C
_021D8016:
add r1, r5, #0
mov r2, #1
bl MOD59_021D7A68
cmp r0, #1
bne _021D803C
mov r0, #5
str r0, [r4, #0x54]
b _021D803C
_021D8028:
add r0, #0x1c
bl FUN_02019178
ldr r0, [r4, #0x18]
add r1, r5, #0
bl FUN_02018744
add r0, r5, #0
str r0, [r4, #0x54]
mov r5, #1
_021D803C:
add r0, r5, #0
add sp, #0x1c
pop {r4, r5, r6, r7, pc}
nop
_021D8044: .word 0x021D9D90
_021D8048: .word 0x00010200
_021D804C: .word 0x000F0200
_021D8050: .word 0x021C48B8
_021D8054: .word 0x000005DC
thumb_func_end MOD59_021D7ECC
thumb_func_start MOD59_021D8058
MOD59_021D8058: ; 0x021D8058
push {r3, r4, r5, lr}
sub sp, #0x10
mov r1, #0
str r1, [sp]
str r1, [sp, #4]
add r5, r0, #0
str r1, [sp, #8]
ldr r0, [r5]
mov r3, #3
str r0, [sp, #0xc]
ldr r2, [r5, #0x18]
mov r0, #0x7d
bl FUN_0200687C
mov r0, #0
ldr r3, [r5]
mov r1, #0x20
add r2, r0, #0
bl FUN_02017F18
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
ldr r0, [r5]
mov r1, #0x17
str r0, [sp, #0xc]
ldr r2, [r5, #0x18]
mov r0, #0x7d
mov r3, #7
bl FUN_0200687C
ldr r0, _021D80F8 ; =gGameVersion
ldrb r0, [r0]
cmp r0, #0xa
bne _021D80A6
mov r1, #1
mov r4, #0x18
b _021D80AA
_021D80A6:
mov r1, #2
mov r4, #0x19
_021D80AA:
mov r0, #0x60
str r0, [sp]
ldr r0, [r5]
mov r2, #0
str r0, [sp, #4]
mov r0, #0x7d
add r3, r2, #0
bl FUN_02006930
mov r0, #0xa0
str r0, [sp]
ldr r0, [r5]
add r1, r4, #0
str r0, [sp, #4]
mov r0, #0x7d
mov r2, #4
mov r3, #0
bl FUN_02006930
add r0, r5, #0
bl MOD59_021D80FC
add r0, r5, #0
bl MOD59_021D8140
add r0, r5, #0
bl MOD59_021D8234
mov r0, #0
add r1, r0, #0
bl FUN_02017FE4
mov r0, #4
mov r1, #0
bl FUN_02017FE4
add sp, #0x10
pop {r3, r4, r5, pc}
nop
_021D80F8: .word gGameVersion
thumb_func_end MOD59_021D8058
thumb_func_start MOD59_021D80FC
MOD59_021D80FC: ; 0x021D80FC
push {r4, r5, lr}
sub sp, #0x24
ldr r5, _021D813C ; =0x021D9E1C
add r3, r0, #0
ldmia r5!, {r0, r1}
add r4, sp, #0x10
add r2, r4, #0
stmia r4!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r4!, {r0, r1}
ldr r0, [r5]
str r0, [r4]
add r0, r3, #0
add r0, #0x88
ldrb r1, [r0]
cmp r1, #5
bhs _021D8138
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
ldr r0, [r3]
lsl r1, r1, #2
str r0, [sp, #0xc]
ldr r1, [r2, r1]
ldr r2, [r3, #0x18]
mov r0, #0x7d
mov r3, #3
bl FUN_020068C8
_021D8138:
add sp, #0x24
pop {r4, r5, pc}
.align 2, 0
_021D813C: .word 0x021D9E1C
thumb_func_end MOD59_021D80FC
thumb_func_start MOD59_021D8140
MOD59_021D8140: ; 0x021D8140
push {r3, r4, r5, lr}
sub sp, #0x68
ldr r5, _021D8230 ; =0x021D9F90
add r4, r0, #0
add r3, sp, #0x10
mov r2, #0xb
_021D814C:
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
sub r2, r2, #1
bne _021D814C
add r0, r4, #0
add r0, #0x89
ldrb r1, [r0]
cmp r1, #0
beq _021D81BE
cmp r1, #0xc
bhs _021D81BE
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
ldr r0, [r4]
lsl r2, r1, #3
str r0, [sp, #0xc]
add r1, sp, #0x10
ldr r1, [r1, r2]
ldr r2, [r4, #0x18]
mov r0, #0x7d
mov r3, #1
bl FUN_0200687C
mov r0, #0x20
str r0, [sp]
ldr r0, [r4]
add r1, r4, #0
str r0, [sp, #4]
add r1, #0x89
ldrb r1, [r1]
mov r0, #0x7d
mov r3, #0xe0
lsl r2, r1, #3
add r1, sp, #0x14
ldr r1, [r1, r2]
mov r2, #0
bl FUN_02006930
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
ldr r0, [r4]
mov r1, #0x16
str r0, [sp, #0xc]
ldr r2, [r4, #0x18]
mov r0, #0x7d
mov r3, #1
bl FUN_020068C8
add r0, r4, #0
mov r1, #1
mov r2, #7
bl MOD59_021D7C10
_021D81BE:
add r0, r4, #0
add r0, #0x8a
ldrb r1, [r0]
cmp r1, #0
beq _021D822A
cmp r1, #0xc
bhs _021D822A
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
ldr r0, [r4]
lsl r2, r1, #3
str r0, [sp, #0xc]
add r1, sp, #0x10
ldr r1, [r1, r2]
ldr r2, [r4, #0x18]
mov r0, #0x7d
mov r3, #2
bl FUN_0200687C
mov r0, #0x20
str r0, [sp]
ldr r0, [r4]
add r1, r4, #0
str r0, [sp, #4]
add r1, #0x8a
ldrb r1, [r1]
mov r0, #0x7d
add r3, r0, #0
lsl r2, r1, #3
add r1, sp, #0x14
ldr r1, [r1, r2]
mov r2, #0
add r3, #0x83
bl FUN_02006930
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
ldr r0, [r4]
mov r1, #0x16
str r0, [sp, #0xc]
ldr r2, [r4, #0x18]
mov r0, #0x7d
mov r3, #2
bl FUN_020068C8
add r0, r4, #0
mov r1, #2
mov r2, #8
bl MOD59_021D7C10
_021D822A:
add sp, #0x68
pop {r3, r4, r5, pc}
nop
_021D8230: .word 0x021D9F90
thumb_func_end MOD59_021D8140
thumb_func_start MOD59_021D8234
MOD59_021D8234: ; 0x021D8234
push {r4, r5, lr}
sub sp, #0x24
ldr r5, _021D829C ; =0x021D9E30
add r4, r0, #0
ldmia r5!, {r0, r1}
add r3, sp, #0x10
add r2, r3, #0
stmia r3!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
ldr r0, [r5]
str r0, [r3]
add r0, r4, #0
add r0, #0x8b
ldrb r1, [r0]
cmp r1, #5
bhs _021D8296
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
ldr r0, [r4]
lsl r1, r1, #2
str r0, [sp, #0xc]
ldr r1, [r2, r1]
ldr r2, [r4, #0x18]
mov r0, #0x7d
mov r3, #7
bl FUN_020068C8
add r0, r4, #0
add r0, #0x8b
ldrb r0, [r0]
cmp r0, #1
bne _021D8288
add r0, r4, #0
mov r1, #7
mov r2, #3
bl MOD59_021D7C10
add sp, #0x24
pop {r4, r5, pc}
_021D8288:
cmp r0, #2
bne _021D8296
add r0, r4, #0
mov r1, #7
mov r2, #2
bl MOD59_021D7C10
_021D8296:
add sp, #0x24
pop {r4, r5, pc}
nop
_021D829C: .word 0x021D9E30
thumb_func_end MOD59_021D8234
thumb_func_start MOD59_021D82A0
MOD59_021D82A0: ; 0x021D82A0
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x20
mov r2, #0
str r2, [sp]
str r2, [sp, #4]
add r5, r0, #0
ldr r1, _021D83EC ; =0x000001BE
str r2, [sp, #8]
add r0, sp, #0x10
mov r3, #2
bl FUN_02068C00
ldr r0, [r5]
mov r1, #0xc8
bl AllocFromHeap
add r7, r0, #0
ldr r2, _021D83F0 ; =0x021D9FE8
mov r1, #0
add r3, r7, #0
_021D82C8:
ldrb r0, [r2]
add r1, r1, #1
add r2, r2, #1
add r0, r0, #1
strh r0, [r3]
add r3, r3, #2
cmp r1, #0x64
blt _021D82C8
add r1, sp, #0x10
ldrh r0, [r1]
ldrh r1, [r1, #2]
ldr r2, [r5]
bl FUN_0201244C
add r1, sp, #0x10
add r4, r0, #0
ldrh r0, [r1]
ldrh r1, [r1, #4]
ldr r2, [r5]
bl FUN_02012470
mov r2, #0
add r6, r0, #0
str r2, [sp]
mov r0, #0x20
str r0, [sp, #4]
mov r0, #0x18
str r0, [sp, #8]
mov r0, #9
str r0, [sp, #0xc]
ldr r0, [r5, #0x18]
mov r1, #2
add r3, r2, #0
bl FUN_02018540
mov r3, #0xb
str r3, [sp]
mov r0, #0xa
str r0, [sp, #4]
str r0, [sp, #8]
ldr r0, [r5, #0x18]
mov r1, #2
add r2, r7, #0
bl FUN_02018148
add r0, r5, #0
mov r1, #2
mov r2, #9
bl MOD59_021D7C10
ldr r3, [r5]
mov r0, #2
mov r1, #0x20
mov r2, #0
bl FUN_02017F18
mov r0, #1
str r0, [sp]
mov r3, #0x32
ldr r0, [r5, #0x18]
mov r1, #2
add r2, r4, #0
lsl r3, r3, #6
bl FUN_02017E14
mov r3, #0x20
add r2, r3, #0
mov r0, #2
add r1, r6, #0
add r3, #0xe0
bl FUN_02017FB4
mov r3, #0x12
ldr r1, _021D83F4 ; =0x021D9ED8
mov r0, #2
mov r2, #0x20
lsl r3, r3, #4
bl FUN_02017FB4
mov r2, #0
str r2, [sp]
mov r0, #0x20
str r0, [sp, #4]
mov r0, #0x18
str r0, [sp, #8]
mov r0, #0xa
str r0, [sp, #0xc]
ldr r0, [r5, #0x18]
mov r1, #5
add r3, r2, #0
bl FUN_02018540
mov r0, #7
str r0, [sp]
mov r0, #0xa
str r0, [sp, #4]
str r0, [sp, #8]
ldr r0, [r5, #0x18]
mov r1, #5
add r2, r7, #0
mov r3, #0xb
bl FUN_02018148
add r0, r5, #0
mov r1, #5
mov r2, #0xa
bl MOD59_021D7C10
ldr r3, [r5]
mov r0, #5
mov r1, #0x20
mov r2, #0
bl FUN_02017F18
mov r0, #1
str r0, [sp]
mov r3, #0x32
ldr r0, [r5, #0x18]
mov r1, #5
add r2, r4, #0
lsl r3, r3, #6
bl FUN_02017E14
mov r0, #5
add r1, r6, #0
mov r2, #0x20
lsl r3, r0, #6
bl FUN_02017FB4
mov r0, #5
ldr r1, _021D83F4 ; =0x021D9ED8
mov r2, #0x20
lsl r3, r0, #6
bl FUN_02017FB4
add r0, r6, #0
bl FreeToHeap
add r0, r4, #0
bl FreeToHeap
add r0, r7, #0
bl FreeToHeap
add sp, #0x20
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_021D83EC: .word 0x000001BE
_021D83F0: .word 0x021D9FE8
_021D83F4: .word 0x021D9ED8
thumb_func_end MOD59_021D82A0
thumb_func_start MOD59_021D83F8
MOD59_021D83F8: ; 0x021D83F8
push {r4, lr}
sub sp, #0x10
add r4, r0, #0
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
ldr r0, [r4]
mov r1, #0x26
str r0, [sp, #0xc]
ldr r2, [r4, #0x18]
mov r0, #0x7d
mov r3, #6
bl FUN_020068C8
add r0, r4, #0
mov r1, #6
mov r2, #9
bl MOD59_021D7C10
mov r0, #0x60
str r0, [sp]
ldr r0, [r4]
mov r1, #0x27
str r0, [sp, #4]
mov r0, #0x7d
mov r2, #4
mov r3, #0xe0
bl FUN_02006930
ldr r3, [r4]
mov r0, #6
mov r1, #0x20
mov r2, #0
bl FUN_02017F18
mov r0, #0x20
str r0, [sp]
mov r0, #0
str r0, [sp, #4]
str r0, [sp, #8]
ldr r0, [r4]
mov r1, #0x1e
str r0, [sp, #0xc]
ldr r2, [r4, #0x18]
mov r0, #0x7d
mov r3, #6
bl FUN_0200687C
add sp, #0x10
pop {r4, pc}
.align 2, 0
thumb_func_end MOD59_021D83F8
thumb_func_start MOD59_021D8460
MOD59_021D8460: ; 0x021D8460
push {r4, r5, r6, lr}
add r5, r0, #0
add r4, r1, #0
mov r6, #0
cmp r2, #0
bne _021D849C
ldr r0, [r5, #0x18]
bl FUN_02017B48
cmp r0, #0
beq _021D8498
cmp r0, #0
ldr r0, [r5, #0x18]
ble _021D848A
lsl r1, r4, #0x18
lsr r1, r1, #0x18
mov r2, #2
mov r3, #4
bl FUN_020179E0
b _021D84E2
_021D848A:
lsl r1, r4, #0x18
lsr r1, r1, #0x18
mov r2, #1
mov r3, #4
bl FUN_020179E0
b _021D84E2
_021D8498:
mov r6, #1
b _021D84E2
_021D849C:
cmp r2, #1
bne _021D84C2
ldr r0, [r5, #0x18]
bl FUN_02017B48
add r1, r6, #0
sub r1, #0x30
cmp r0, r1
beq _021D84BE
lsl r1, r4, #0x18
ldr r0, [r5, #0x18]
lsr r1, r1, #0x18
mov r2, #2
mov r3, #4
bl FUN_020179E0
b _021D84E2
_021D84BE:
mov r6, #1
b _021D84E2
_021D84C2:
cmp r2, #2
bne _021D84E2
ldr r0, [r5, #0x18]
bl FUN_02017B48
cmp r0, #0
beq _021D84E0
lsl r1, r4, #0x18
ldr r0, [r5, #0x18]
lsr r1, r1, #0x18
mov r2, #1
mov r3, #4
bl FUN_020179E0
b _021D84E2
_021D84E0:
mov r6, #1
_021D84E2:
add r0, r6, #0
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_end MOD59_021D8460
thumb_func_start MOD59_021D84E8
MOD59_021D84E8: ; 0x021D84E8
add r1, r0, #0
mov r2, #0
add r1, #0x8c
strb r2, [r1]
add r1, r0, #0
add r1, #0x8d
strb r2, [r1]
add r1, r0, #0
add r1, #0x8e
strb r2, [r1]
add r0, #0x8f
strb r2, [r0]
bx lr
.align 2, 0
thumb_func_end MOD59_021D84E8
thumb_func_start MOD59_021D8504
MOD59_021D8504: ; 0x021D8504
push {r3, r4, r5, lr}
sub sp, #0x30
add r4, r0, #0
add r0, #0x84
ldr r0, [r0]
cmp r0, #0
bne _021D858E
add r0, r4, #0
add r0, #0x8d
ldrb r0, [r0]
cmp r0, #0
beq _021D8526
add r0, r4, #0
add r0, #0x8d
ldrb r0, [r0]
sub r1, r0, #1
b _021D8546
_021D8526:
add r0, r4, #0
add r0, #0x8c
ldrb r0, [r0]
add r1, r0, #1
add r0, r4, #0
add r0, #0x8c
strb r1, [r0]
add r0, r4, #0
add r0, #0x8c
ldrb r1, [r0]
mov r0, #3
and r1, r0
add r0, r4, #0
add r0, #0x8c
strb r1, [r0]
mov r1, #4
_021D8546:
add r0, r4, #0
add r0, #0x8d
strb r1, [r0]
mov r0, #0xa
str r0, [sp]
ldr r0, _021D860C ; =0x04000050
mov r1, #4
mov r2, #8
mov r3, #6
bl G2x_SetBlendAlpha_
ldr r5, _021D8610 ; =0x021D9DEC
add r3, sp, #0x20
add r2, r3, #0
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
ldr r0, [r4]
add r1, r4, #0
str r0, [sp, #0xc]
add r1, #0x8c
ldrb r1, [r1]
mov r0, #0x7d
mov r3, #1
lsl r1, r1, #2
ldr r1, [r2, r1]
ldr r2, [r4, #0x18]
bl FUN_0200687C
add sp, #0x30
pop {r3, r4, r5, pc}
_021D858E:
add r0, r4, #0
add r0, #0x8f
ldrb r0, [r0]
cmp r0, #0
beq _021D85A2
add r0, r4, #0
add r0, #0x8f
ldrb r0, [r0]
sub r1, r0, #1
b _021D85C2
_021D85A2:
add r0, r4, #0
add r0, #0x8e
ldrb r0, [r0]
add r1, r0, #1
add r0, r4, #0
add r0, #0x8e
strb r1, [r0]
add r0, r4, #0
add r0, #0x8e
ldrb r1, [r0]
mov r0, #3
and r1, r0
add r0, r4, #0
add r0, #0x8e
strb r1, [r0]
mov r1, #4
_021D85C2:
add r0, r4, #0
add r0, #0x8f
strb r1, [r0]
mov r0, #0xa
str r0, [sp]
ldr r0, _021D860C ; =0x04000050
mov r1, #2
mov r2, #8
mov r3, #6
bl G2x_SetBlendAlpha_
ldr r5, _021D8614 ; =0x021D9DFC
add r3, sp, #0x10
add r2, r3, #0
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
ldr r0, [r4]
add r1, r4, #0
str r0, [sp, #0xc]
add r1, #0x8e
ldrb r1, [r1]
mov r0, #0x7d
mov r3, #2
lsl r1, r1, #2
ldr r1, [r2, r1]
ldr r2, [r4, #0x18]
bl FUN_0200687C
add sp, #0x30
pop {r3, r4, r5, pc}
nop
_021D860C: .word 0x04000050
_021D8610: .word 0x021D9DEC
_021D8614: .word 0x021D9DFC
thumb_func_end MOD59_021D8504
thumb_func_start MOD59_021D8618
MOD59_021D8618: ; 0x021D8618
ldr r0, _021D8620 ; =0x04000050
mov r1, #0
strh r1, [r0]
bx lr
.align 2, 0
_021D8620: .word 0x04000050
thumb_func_end MOD59_021D8618
thumb_func_start MOD59_021D8624
MOD59_021D8624: ; 0x021D8624
add r1, r0, #0
mov r2, #0
add r1, #0x94
str r2, [r1]
add r0, #0x98
str r2, [r0]
bx lr
.align 2, 0
thumb_func_end MOD59_021D8624
thumb_func_start MOD59_021D8634
MOD59_021D8634: ; 0x021D8634
push {r4, r5, r6, lr}
sub sp, #0x40
add r3, r0, #0
add r0, #0x98
ldr r0, [r0]
mov r4, #0
cmp r0, #0
beq _021D864E
add r0, r3, #0
add r0, #0x98
ldr r0, [r0]
sub r1, r0, #1
b _021D865E
_021D864E:
add r0, r3, #0
add r0, #0x94
ldr r0, [r0]
add r1, r0, #1
add r0, r3, #0
add r0, #0x94
str r1, [r0]
mov r1, #8
_021D865E:
add r0, r3, #0
add r0, #0x98
str r1, [r0]
add r0, r3, #0
add r0, #0x84
ldr r0, [r0]
cmp r0, #0
bne _021D8674
ldr r6, _021D86B4 ; =0x021D9E88
add r5, sp, #0x28
b _021D8678
_021D8674:
ldr r6, _021D86B8 ; =0x021D9E70
add r5, sp, #0x10
_021D8678:
add r2, r5, #0
ldmia r6!, {r0, r1}
stmia r5!, {r0, r1}
ldmia r6!, {r0, r1}
stmia r5!, {r0, r1}
ldmia r6!, {r0, r1}
stmia r5!, {r0, r1}
add r0, r3, #0
add r0, #0x94
ldr r0, [r0]
lsl r0, r0, #2
ldr r1, [r2, r0]
cmp r1, #0xff
bne _021D8698
mov r4, #1
b _021D86AE
_021D8698:
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
ldr r0, [r3]
str r0, [sp, #0xc]
ldr r2, [r3, #0x18]
mov r0, #0x7d
mov r3, #1
bl FUN_0200687C
_021D86AE:
add r0, r4, #0
add sp, #0x40
pop {r4, r5, r6, pc}
.align 2, 0
_021D86B4: .word 0x021D9E88
_021D86B8: .word 0x021D9E70
thumb_func_end MOD59_021D8634
thumb_func_start MOD59_021D86BC
MOD59_021D86BC: ; 0x021D86BC
push {r3, r4, r5, r6, r7, lr}
add r6, r1, #0
add r4, r0, #0
ldr r0, [r6]
mov r7, #0
cmp r0, #5
bls _021D86CC
b _021D890A
_021D86CC:
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021D86D8: ; jump table
.short _021D86E4 - _021D86D8 - 2 ; case 0
.short _021D8728 - _021D86D8 - 2 ; case 1
.short _021D87A6 - _021D86D8 - 2 ; case 2
.short _021D87E0 - _021D86D8 - 2 ; case 3
.short _021D887C - _021D86D8 - 2 ; case 4
.short _021D88F8 - _021D86D8 - 2 ; case 5
_021D86E4:
ldr r0, [r4, #0x18]
mov r1, #2
add r2, r7, #0
add r3, r7, #0
bl FUN_020179E0
mov r2, #3
add r3, r2, #0
ldr r0, [r4, #0x18]
mov r1, #2
sub r3, #0x6b
bl FUN_020179E0
mov r0, #2
add r1, r7, #0
bl FUN_020178BC
mov r0, #5
mov r1, #1
bl FUN_0201797C
add r0, r4, #0
add r2, r7, #0
add r0, #0xa8
str r2, [r0]
add r0, r4, #0
mov r1, #8
add r0, #0xac
str r1, [r0]
add r4, #0xb0
str r2, [r4]
mov r0, #1
str r0, [r6]
b _021D890A
_021D8728:
ldr r0, [r4, #0x18]
mov r1, #2
bl FUN_02017B48
ldr r0, [r4, #0x18]
mov r1, #5
bl FUN_02017B54
add r1, r4, #0
add r1, #0xb0
ldr r3, [r1]
add r1, r4, #0
add r1, #0xac
ldr r2, [r1]
lsl r1, r2, #3
add r1, r2, r1
add r2, r3, #0
mul r2, r1
lsl r1, r3, #3
add r1, r3, r1
mul r1, r3
lsr r3, r1, #0x1f
add r3, r1, r3
asr r1, r3, #1
sub r5, r2, r1
cmp r0, #0x58
bge _021D8792
add r0, r4, #0
add r0, #0xb0
ldr r0, [r0]
mov r2, #1
add r1, r0, #1
add r0, r4, #0
add r0, #0xb0
str r1, [r0]
mov r1, #2
ldr r0, [r4, #0x18]
add r3, r1, #0
bl FUN_020179E0
ldr r0, [r4, #0x18]
mov r1, #5
mov r2, #1
mov r3, #2
bl FUN_020179E0
ldr r0, [r4, #0x18]
mov r1, #5
mov r2, #3
add r3, r5, #0
bl FUN_020179E0
b _021D890A
_021D8792:
mov r0, #5
add r1, r7, #0
bl FUN_0201797C
mov r0, #0x1e
add r4, #0xb0
str r0, [r4]
mov r0, #2
str r0, [r6]
b _021D890A
_021D87A6:
add r0, r4, #0
add r0, #0xb0
ldr r0, [r0]
cmp r0, #0
beq _021D87BE
add r0, r4, #0
add r0, #0xb0
ldr r0, [r0]
add r4, #0xb0
sub r0, r0, #1
str r0, [r4]
b _021D890A
_021D87BE:
mov r0, #2
mov r1, #1
bl FUN_0201797C
add r0, r4, #0
add r2, r7, #0
add r0, #0xa8
str r2, [r0]
add r0, r4, #0
mov r1, #9
add r0, #0xac
str r1, [r0]
add r4, #0xb0
str r2, [r4]
mov r0, #3
str r0, [r6]
b _021D890A
_021D87E0:
ldr r0, [r4, #0x18]
mov r1, #2
bl FUN_02017B48
ldr r0, [r4, #0x18]
mov r1, #2
bl FUN_02017B54
add r0, r4, #0
add r0, #0xb0
ldr r1, [r0]
add r0, r4, #0
add r0, #0xac
ldr r2, [r0]
lsl r0, r2, #3
add r0, r2, r0
lsl r2, r1, #3
add r2, r1, r2
mul r0, r1
mul r2, r1
lsr r1, r2, #0x1f
add r1, r2, r1
sub r0, #0x68
asr r1, r1, #1
sub r5, r0, r1
add r0, r4, #0
add r0, #0xa8
ldr r0, [r0]
cmp r0, #0
ble _021D8846
cmp r5, #0
bgt _021D8846
ldr r0, [r4, #0x18]
mov r1, #2
mov r2, #3
add r3, r7, #0
bl FUN_020179E0
add r0, r4, #0
add r2, r7, #0
add r0, #0xa8
str r2, [r0]
add r0, r4, #0
mov r1, #1
add r0, #0xac
str r1, [r0]
add r4, #0xb0
str r2, [r4]
mov r0, #4
str r0, [r6]
b _021D890A
_021D8846:
add r0, r4, #0
add r0, #0xb0
ldr r0, [r0]
mov r2, #1
add r1, r0, #1
add r0, r4, #0
add r0, #0xb0
str r1, [r0]
add r0, r4, #0
add r0, #0xa8
str r5, [r0]
ldr r0, [r4, #0x18]
mov r1, #2
add r3, r2, #0
bl FUN_020179E0
asr r5, r5, #1
cmp r5, #0x90
ble _021D886E
mov r5, #0x90
_021D886E:
ldr r0, [r4, #0x18]
mov r1, #2
mov r2, #3
add r3, r5, #0
bl FUN_020179E0
b _021D890A
_021D887C:
ldr r0, [r4, #0x18]
mov r1, #2
bl FUN_02017B48
ldr r0, [r4, #0x18]
mov r1, #2
bl FUN_02017B54
add r0, r4, #0
add r0, #0xb0
ldr r1, [r0]
add r0, r4, #0
add r0, #0xac
ldr r2, [r0]
lsl r0, r2, #3
add r0, r2, r0
lsl r2, r1, #3
add r2, r1, r2
mul r2, r1
mul r0, r1
lsr r1, r2, #0x1f
add r1, r2, r1
asr r1, r1, #1
sub r5, r0, r1
add r0, r4, #0
add r0, #0xa8
ldr r0, [r0]
cmp r0, #0
ble _021D88CC
cmp r5, #0
bgt _021D88CC
ldr r0, [r4, #0x18]
mov r1, #2
mov r2, #3
add r3, r7, #0
bl FUN_020179E0
mov r0, #5
str r0, [r6]
b _021D890A
_021D88CC:
add r0, r4, #0
add r0, #0xb0
ldr r0, [r0]
mov r2, #1
add r1, r0, #1
add r0, r4, #0
add r0, #0xb0
str r1, [r0]
mov r1, #2
ldr r0, [r4, #0x18]
add r3, r1, #0
bl FUN_020179E0
ldr r0, [r4, #0x18]
mov r1, #2
mov r2, #3
add r3, r5, #0
bl FUN_020179E0
add r4, #0xa8
str r5, [r4]
b _021D890A
_021D88F8:
ldr r0, _021D8910 ; =0x000001BE
bl FUN_02005578
add r0, r4, #0
mov r1, #2
mov r2, #8
bl MOD59_021D7C10
mov r7, #1
_021D890A:
add r0, r7, #0
pop {r3, r4, r5, r6, r7, pc}
nop
_021D8910: .word 0x000001BE
thumb_func_end MOD59_021D86BC
thumb_func_start MOD59_021D8914
MOD59_021D8914: ; 0x021D8914
ldr r3, _021D891C ; =FUN_020178BC
mov r0, #2
mov r1, #1
bx r3
.align 2, 0
_021D891C: .word FUN_020178BC
thumb_func_end MOD59_021D8914
thumb_func_start MOD59_021D8920
MOD59_021D8920: ; 0x021D8920
push {r4, r5, r6, lr}
sub sp, #0x30
add r4, r0, #0
ldr r1, [r4, #0xc]
mov r5, #0
cmp r1, #0x6d
bls _021D8932
bl _021D985C
_021D8932:
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021D893E: ; jump table
.short _021D8A1A - _021D893E - 2 ; case 0
.short _021D8A5A - _021D893E - 2 ; case 1
.short _021D8A76 - _021D893E - 2 ; case 2
.short _021D8A92 - _021D893E - 2 ; case 3
.short _021D8ADE - _021D893E - 2 ; case 4
.short _021D8AEE - _021D893E - 2 ; case 5
.short _021D8B02 - _021D893E - 2 ; case 6
.short _021D8B16 - _021D893E - 2 ; case 7
.short _021D8B60 - _021D893E - 2 ; case 8
.short _021D8B80 - _021D893E - 2 ; case 9
.short _021D8BA0 - _021D893E - 2 ; case 10
.short _021D8BD8 - _021D893E - 2 ; case 11
.short _021D8BE8 - _021D893E - 2 ; case 12
.short _021D8C02 - _021D893E - 2 ; case 13
.short _021D8C16 - _021D893E - 2 ; case 14
.short _021D8C30 - _021D893E - 2 ; case 15
.short _021D8C44 - _021D893E - 2 ; case 16
.short _021D8C5E - _021D893E - 2 ; case 17
.short _021D8C72 - _021D893E - 2 ; case 18
.short _021D8C98 - _021D893E - 2 ; case 19
.short _021D8CA8 - _021D893E - 2 ; case 20
.short _021D8CBC - _021D893E - 2 ; case 21
.short _021D8CF8 - _021D893E - 2 ; case 22
.short _021D8D1C - _021D893E - 2 ; case 23
.short _021D8D3E - _021D893E - 2 ; case 24
.short _021D8D7C - _021D893E - 2 ; case 25
.short _021D8D94 - _021D893E - 2 ; case 26
.short _021D8DD6 - _021D893E - 2 ; case 27
.short _021D8DEA - _021D893E - 2 ; case 28
.short _021D8E34 - _021D893E - 2 ; case 29
.short _021D8E44 - _021D893E - 2 ; case 30
.short _021D8E58 - _021D893E - 2 ; case 31
.short _021D8E90 - _021D893E - 2 ; case 32
.short _021D8EA0 - _021D893E - 2 ; case 33
.short _021D8EBE - _021D893E - 2 ; case 34
.short _021D8ED6 - _021D893E - 2 ; case 35
.short _021D8EF0 - _021D893E - 2 ; case 36
.short _021D8F0A - _021D893E - 2 ; case 37
.short _021D8F24 - _021D893E - 2 ; case 38
.short _021D8F3E - _021D893E - 2 ; case 39
.short _021D8F5E - _021D893E - 2 ; case 40
.short _021D8F7E - _021D893E - 2 ; case 41
.short _021D8F92 - _021D893E - 2 ; case 42
.short _021D8FA6 - _021D893E - 2 ; case 43
.short _021D8FC6 - _021D893E - 2 ; case 44
.short _021D900C - _021D893E - 2 ; case 45
.short _021D901C - _021D893E - 2 ; case 46
.short _021D9030 - _021D893E - 2 ; case 47
.short _021D9062 - _021D893E - 2 ; case 48
.short _021D90CE - _021D893E - 2 ; case 49
.short _021D90E2 - _021D893E - 2 ; case 50
.short _021D9106 - _021D893E - 2 ; case 51
.short _021D913E - _021D893E - 2 ; case 52
.short _021D9178 - _021D893E - 2 ; case 53
.short _021D9192 - _021D893E - 2 ; case 54
.short _021D91E4 - _021D893E - 2 ; case 55
.short _021D9208 - _021D893E - 2 ; case 56
.short _021D921A - _021D893E - 2 ; case 57
.short _021D922A - _021D893E - 2 ; case 58
.short _021D9244 - _021D893E - 2 ; case 59
.short _021D925C - _021D893E - 2 ; case 60
.short _021D926C - _021D893E - 2 ; case 61
.short _021D927E - _021D893E - 2 ; case 62
.short _021D9290 - _021D893E - 2 ; case 63
.short _021D92CA - _021D893E - 2 ; case 64
.short _021D92DC - _021D893E - 2 ; case 65
.short _021D92EE - _021D893E - 2 ; case 66
.short _021D930A - _021D893E - 2 ; case 67
.short _021D9384 - _021D893E - 2 ; case 68
.short _021D9396 - _021D893E - 2 ; case 69
.short _021D93AE - _021D893E - 2 ; case 70
.short _021D93C0 - _021D893E - 2 ; case 71
.short _021D93D8 - _021D893E - 2 ; case 72
.short _021D93F8 - _021D893E - 2 ; case 73
.short _021D942A - _021D893E - 2 ; case 74
.short _021D944A - _021D893E - 2 ; case 75
.short _021D945C - _021D893E - 2 ; case 76
.short _021D9476 - _021D893E - 2 ; case 77
.short _021D94DE - _021D893E - 2 ; case 78
.short _021D94EC - _021D893E - 2 ; case 79
.short _021D950C - _021D893E - 2 ; case 80
.short _021D954E - _021D893E - 2 ; case 81
.short _021D956E - _021D893E - 2 ; case 82
.short _021D9586 - _021D893E - 2 ; case 83
.short _021D9598 - _021D893E - 2 ; case 84
.short _021D95AA - _021D893E - 2 ; case 85
.short _021D95BC - _021D893E - 2 ; case 86
.short _021D95D4 - _021D893E - 2 ; case 87
.short _021D95E6 - _021D893E - 2 ; case 88
.short _021D95F8 - _021D893E - 2 ; case 89
.short _021D960A - _021D893E - 2 ; case 90
.short _021D9672 - _021D893E - 2 ; case 91
.short _021D9684 - _021D893E - 2 ; case 92
.short _021D9696 - _021D893E - 2 ; case 93
.short _021D96DE - _021D893E - 2 ; case 94
.short _021D96EC - _021D893E - 2 ; case 95
.short _021D96FE - _021D893E - 2 ; case 96
.short _021D9738 - _021D893E - 2 ; case 97
.short _021D974C - _021D893E - 2 ; case 98
.short _021D9764 - _021D893E - 2 ; case 99
.short _021D9788 - _021D893E - 2 ; case 100
.short _021D9798 - _021D893E - 2 ; case 101
.short _021D97B2 - _021D893E - 2 ; case 102
.short _021D97CC - _021D893E - 2 ; case 103
.short _021D97DC - _021D893E - 2 ; case 104
.short _021D9812 - _021D893E - 2 ; case 105
.short _021D982A - _021D893E - 2 ; case 106
.short _021D983A - _021D893E - 2 ; case 107
.short _021D9848 - _021D893E - 2 ; case 108
.short _021D985A - _021D893E - 2 ; case 109
_021D8A1A:
ldr r1, _021D8D70 ; =0x00000405
mov r0, #2
mov r2, #1
bl FUN_0200433C
ldr r0, _021D8D70 ; =0x00000405
add r1, r5, #0
bl FUN_02005350
add r0, r5, #0
mov r1, #1
bl FUN_0201797C
mov r0, #7
mov r1, #1
bl FUN_0201797C
mov r0, #6
mov r1, #1
str r0, [sp]
str r1, [sp, #4]
ldr r0, [r4]
add r2, r1, #0
str r0, [sp, #8]
add r0, r5, #0
add r3, r0, #0
bl FUN_0200E1D0
mov r0, #1
str r0, [r4, #0xc]
bl _021D985C
_021D8A5A:
bl FUN_0200E308
cmp r0, #1
bne _021D8B22
add r0, r4, #0
mov r1, #0x28
bl MOD59_021D7BEC
cmp r0, #1
bne _021D8B22
mov r0, #2
str r0, [r4, #0xc]
bl _021D985C
_021D8A76:
add r1, r5, #0
mov r2, #1
bl MOD59_021D7C44
cmp r0, #1
bne _021D8B22
mov r0, #3
str r0, [r4, #0xc]
ldr r0, [r4, #0x18]
add r1, r5, #0
bl FUN_02018744
bl _021D985C
_021D8A92:
ldr r0, _021D8D70 ; =0x00000405
bl FUN_0200521C
add r0, r4, #0
mov r1, #1
add r0, #0x89
strb r1, [r0]
add r0, r4, #0
add r1, r5, #0
add r0, #0x8a
strb r1, [r0]
add r0, r4, #0
bl MOD59_021D8140
mov r0, #3
mov r1, #1
bl FUN_0201797C
mov r0, #1
add r1, r0, #0
bl FUN_0201797C
mov r0, #0x10
str r0, [sp]
mov r0, #4
str r0, [sp, #4]
ldr r0, [r4]
mov r1, #1
str r0, [sp, #8]
mov r0, #3
add r2, r1, #0
add r3, r5, #0
bl FUN_0200E1D0
mov r0, #4
str r0, [r4, #0xc]
bl _021D985C
_021D8ADE:
bl FUN_0200E308
cmp r0, #1
bne _021D8B22
mov r0, #5
str r0, [r4, #0xc]
bl _021D985C
_021D8AEE:
mov r1, #1
add r2, r1, #0
bl MOD59_021D7C44
cmp r0, #1
bne _021D8B22
mov r0, #6
str r0, [r4, #0xc]
bl _021D985C
_021D8B02:
mov r1, #1
add r2, r1, #0
bl MOD59_021D8460
cmp r0, #1
bne _021D8B22
mov r0, #7
str r0, [r4, #0xc]
bl _021D985C
_021D8B16:
mov r1, #1
add r2, r1, #0
bl MOD59_021D7D7C
cmp r0, #1
beq _021D8B26
_021D8B22:
bl _021D985C
_021D8B26:
ldr r0, [r4, #0x48]
cmp r0, #1
beq _021D8B38
cmp r0, #2
beq _021D8B44
cmp r0, #3
beq _021D8B58
bl _021D985C
_021D8B38:
mov r0, #0xa
str r0, [r4, #0x10]
mov r0, #8
str r0, [r4, #0xc]
bl _021D985C
_021D8B44:
mov r0, #0x1f
str r0, [r4, #0x10]
mov r0, #8
str r0, [r4, #0xc]
ldr r0, [r4, #0x18]
add r1, r5, #0
bl FUN_02018744
bl _021D985C
_021D8B58:
mov r0, #0x29
str r0, [r4, #0xc]
bl _021D985C
_021D8B60:
mov r0, #6
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
ldr r0, [r4]
add r1, r5, #0
str r0, [sp, #8]
add r0, r5, #0
add r2, r5, #0
add r3, r5, #0
bl FUN_0200E1D0
mov r0, #9
str r0, [r4, #0xc]
bl _021D985C
_021D8B80:
bl FUN_0200E308
cmp r0, #1
bne _021D8C84
ldr r0, [r4, #0x18]
add r1, r5, #0
bl FUN_02018744
mov r0, #1
add r1, r5, #0
bl FUN_0201797C
ldr r0, [r4, #0x10]
str r0, [r4, #0xc]
bl _021D985C
_021D8BA0:
add r1, r4, #0
mov r2, #1
add r1, #0x88
strb r2, [r1]
bl MOD59_021D80FC
add r0, r4, #0
mov r1, #1
add r0, #0x8b
strb r1, [r0]
add r0, r4, #0
bl MOD59_021D8234
mov r0, #6
mov r1, #1
str r0, [sp]
str r1, [sp, #4]
ldr r0, [r4]
add r2, r1, #0
str r0, [sp, #8]
add r0, r5, #0
add r3, r0, #0
bl FUN_0200E1D0
mov r0, #0xb
str r0, [r4, #0xc]
bl _021D985C
_021D8BD8:
bl FUN_0200E308
cmp r0, #1
bne _021D8C84
mov r0, #0xc
str r0, [r4, #0xc]
bl _021D985C
_021D8BE8:
mov r1, #0x12
str r1, [sp]
mov r1, #2
add r2, r5, #0
mov r3, #3
bl MOD59_021D7ECC
cmp r0, #1
bne _021D8C84
mov r0, #0xd
str r0, [r4, #0xc]
bl _021D985C
_021D8C02:
add r1, r4, #0
mov r2, #2
add r1, #0x88
strb r2, [r1]
bl MOD59_021D80FC
mov r0, #0xe
str r0, [r4, #0xc]
bl _021D985C
_021D8C16:
mov r1, #0xc
str r1, [sp]
mov r1, #3
add r2, r5, #0
mov r3, #7
bl MOD59_021D7ECC
cmp r0, #1
bne _021D8C84
mov r0, #0xf
str r0, [r4, #0xc]
bl _021D985C
_021D8C30:
add r1, r4, #0
mov r2, #3
add r1, #0x88
strb r2, [r1]
bl MOD59_021D80FC
mov r0, #0x10
str r0, [r4, #0xc]
bl _021D985C
_021D8C44:
mov r1, #0xc
str r1, [sp]
mov r1, #4
add r2, r5, #0
add r3, r1, #0
bl MOD59_021D7ECC
cmp r0, #1
bne _021D8C84
mov r0, #0x11
str r0, [r4, #0xc]
bl _021D985C
_021D8C5E:
mov r1, #6
mov r2, #1
bl MOD59_021D7C44
cmp r0, #1
bne _021D8C84
mov r0, #0x12
str r0, [r4, #0xc]
bl _021D985C
_021D8C72:
mov r1, #0xa
str r1, [sp]
mov r1, #5
add r2, r5, #0
mov r3, #4
bl MOD59_021D7ECC
cmp r0, #1
beq _021D8C88
_021D8C84:
bl _021D985C
_021D8C88:
mov r0, #0x13
str r0, [r4, #0xc]
ldr r0, [r4, #0x18]
add r1, r5, #0
bl FUN_02018744
bl _021D985C
_021D8C98:
add r0, r5, #0
mov r1, #1
bl FUN_0201797C
mov r0, #0x14
str r0, [r4, #0xc]
bl _021D985C
_021D8CA8:
mov r1, #7
mov r2, #1
bl MOD59_021D7C44
cmp r0, #1
bne _021D8DA0
mov r0, #0x15
str r0, [r4, #0xc]
bl _021D985C
_021D8CBC:
ldr r6, _021D8D74 ; =0x021D9E44
add r3, sp, #0x1c
ldmia r6!, {r0, r1}
add r2, r3, #0
stmia r3!, {r0, r1}
ldmia r6!, {r0, r1}
stmia r3!, {r0, r1}
ldr r0, [r6]
add r1, r2, #0
str r0, [r3]
ldr r0, [r4, #0x18]
str r0, [sp, #0x1c]
ldr r0, [r4, #0x68]
bl FUN_020145C8
mov r0, #6
mov r1, #1
bl FUN_0201797C
add r0, r4, #0
mov r1, #3
add r0, #0x8b
strb r1, [r0]
add r0, r4, #0
bl MOD59_021D8234
mov r0, #0x16
str r0, [r4, #0xc]
bl _021D985C
_021D8CF8:
ldr r0, _021D8D78 ; =0x021C48B8
ldr r0, [r0, #0x48]
cmp r0, #0
beq _021D8D08
mov r0, #0x1b
str r0, [r4, #0xc]
bl _021D985C
_021D8D08:
ldr r0, [r4, #0x68]
bl FUN_02014630
sub r0, r0, #3
cmp r0, #1
bhi _021D8DA0
mov r0, #0x17
str r0, [r4, #0xc]
bl _021D985C
_021D8D1C:
ldr r0, [r4, #0x68]
bl FUN_02014630
cmp r0, #1
beq _021D8D2E
cmp r0, #2
beq _021D8D36
bl _021D985C
_021D8D2E:
mov r0, #0x18
str r0, [r4, #0xc]
bl _021D985C
_021D8D36:
mov r0, #0x1a
str r0, [r4, #0xc]
bl _021D985C
_021D8D3E:
mov r1, #6
mov r2, #1
bl MOD59_021D7A68
cmp r0, #1
bne _021D8DA0
ldr r0, [r4, #0x68]
bl FUN_020146C4
mov r0, #6
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
ldr r0, [r4]
str r0, [sp, #8]
add r0, r5, #0
add r1, r0, #0
add r2, r0, #0
add r3, r0, #0
bl FUN_0200E1D0
mov r0, #0x19
str r0, [r4, #0xc]
bl _021D985C
.align 2, 0
_021D8D70: .word 0x00000405
_021D8D74: .word 0x021D9E44
_021D8D78: .word 0x021C48B8
_021D8D7C:
bl FUN_0200E308
cmp r0, #1
bne _021D8DA0
ldr r0, [r4, #0x18]
add r1, r5, #0
bl FUN_02018744
mov r0, #0x1c
str r0, [r4, #0xc]
bl _021D985C
_021D8D94:
mov r1, #6
mov r2, #1
bl MOD59_021D7A68
cmp r0, #1
beq _021D8DA4
_021D8DA0:
bl _021D985C
_021D8DA4:
ldr r0, [r4, #0x18]
add r1, r5, #0
bl FUN_02018744
ldr r0, [r4, #0x68]
bl FUN_020146C4
add r0, r4, #0
mov r1, #1
add r0, #0x88
strb r1, [r0]
add r0, r4, #0
bl MOD59_021D80FC
add r0, r4, #0
mov r1, #1
add r0, #0x8b
strb r1, [r0]
add r0, r4, #0
bl MOD59_021D8234
mov r0, #0xc
str r0, [r4, #0xc]
bl _021D985C
_021D8DD6:
mov r1, #8
mov r2, #1
bl MOD59_021D7C44
cmp r0, #1
bne _021D8EB2
mov r0, #0x16
str r0, [r4, #0xc]
bl _021D985C
_021D8DEA:
add r1, r4, #0
add r1, #0x88
strb r5, [r1]
bl MOD59_021D80FC
add r0, r4, #0
add r1, r5, #0
add r0, #0x8b
strb r1, [r0]
add r0, r4, #0
bl MOD59_021D8234
mov r0, #1
add r1, r0, #0
bl FUN_0201797C
add r2, r5, #0
ldr r0, [r4, #0x18]
mov r1, #1
add r3, r2, #0
bl FUN_020179E0
mov r0, #6
mov r1, #1
str r0, [sp]
str r1, [sp, #4]
ldr r0, [r4]
add r2, r1, #0
str r0, [sp, #8]
add r0, r5, #0
add r3, r0, #0
bl FUN_0200E1D0
mov r0, #0x1d
str r0, [r4, #0xc]
bl _021D985C
_021D8E34:
bl FUN_0200E308
cmp r0, #1
bne _021D8EB2
mov r0, #0x1e
str r0, [r4, #0xc]
bl _021D985C
_021D8E44:
mov r1, #9
mov r2, #1
bl MOD59_021D7C44
cmp r0, #1
bne _021D8EB2
mov r0, #6
str r0, [r4, #0xc]
bl _021D985C
_021D8E58:
add r1, r4, #0
mov r2, #4
add r1, #0x88
strb r2, [r1]
bl MOD59_021D80FC
add r0, r4, #0
mov r1, #2
add r0, #0x8b
strb r1, [r0]
add r0, r4, #0
bl MOD59_021D8234
mov r0, #6
mov r1, #1
str r0, [sp]
str r1, [sp, #4]
ldr r0, [r4]
add r2, r1, #0
str r0, [sp, #8]
add r0, r5, #0
add r3, r0, #0
bl FUN_0200E1D0
mov r0, #0x20
str r0, [r4, #0xc]
bl _021D985C
_021D8E90:
bl FUN_0200E308
cmp r0, #1
bne _021D8EB2
mov r0, #0x21
str r0, [r4, #0xc]
bl _021D985C
_021D8EA0:
mov r1, #6
str r1, [sp]
mov r1, #0xa
mov r2, #1
mov r3, #9
bl MOD59_021D7ECC
cmp r0, #1
beq _021D8EB6
_021D8EB2:
bl _021D985C
_021D8EB6:
mov r0, #0x22
str r0, [r4, #0xc]
bl _021D985C
_021D8EBE:
mov r3, #8
mov r1, #0xb
mov r2, #1
str r3, [sp]
bl MOD59_021D7ECC
cmp r0, #1
bne _021D8FCE
mov r0, #0x23
str r0, [r4, #0xc]
bl _021D985C
_021D8ED6:
mov r1, #6
str r1, [sp]
mov r1, #0xc
mov r2, #1
mov r3, #9
bl MOD59_021D7ECC
cmp r0, #1
bne _021D8FCE
mov r0, #0x24
str r0, [r4, #0xc]
bl _021D985C
_021D8EF0:
mov r1, #0xe
str r1, [sp]
mov r1, #0xd
mov r2, #1
mov r3, #5
bl MOD59_021D7ECC
cmp r0, #1
bne _021D8FCE
mov r0, #0x25
str r0, [r4, #0xc]
bl _021D985C
_021D8F0A:
mov r1, #4
str r1, [sp]
mov r1, #0xe
mov r2, #1
mov r3, #0xa
bl MOD59_021D7ECC
cmp r0, #1
bne _021D8FCE
mov r0, #0x26
str r0, [r4, #0xc]
bl _021D985C
_021D8F24:
mov r1, #0xc
str r1, [sp]
mov r1, #0xf
mov r2, #1
mov r3, #6
bl MOD59_021D7ECC
cmp r0, #1
bne _021D8FCE
mov r0, #0x27
str r0, [r4, #0xc]
bl _021D985C
_021D8F3E:
mov r0, #6
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
ldr r0, [r4]
add r1, r5, #0
str r0, [sp, #8]
add r0, r5, #0
add r2, r5, #0
add r3, r5, #0
bl FUN_0200E1D0
mov r0, #0x28
str r0, [r4, #0xc]
bl _021D985C
_021D8F5E:
bl FUN_0200E308
cmp r0, #1
bne _021D8FCE
ldr r0, [r4, #0x18]
add r1, r5, #0
bl FUN_02018744
add r0, r5, #0
mov r1, #1
bl FUN_0201797C
mov r0, #0x1c
str r0, [r4, #0xc]
bl _021D985C
_021D8F7E:
mov r1, #1
mov r2, #2
bl MOD59_021D8460
cmp r0, #1
bne _021D8FCE
mov r0, #0x2a
str r0, [r4, #0xc]
bl _021D985C
_021D8F92:
mov r1, #0x10
mov r2, #1
bl MOD59_021D7C44
cmp r0, #1
bne _021D8FCE
mov r0, #0x2b
str r0, [r4, #0xc]
bl _021D985C
_021D8FA6:
mov r0, #6
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
ldr r0, [r4]
add r1, r5, #0
str r0, [sp, #8]
mov r0, #4
add r2, r5, #0
add r3, r5, #0
bl FUN_0200E1D0
mov r0, #0x2c
str r0, [r4, #0xc]
bl _021D985C
_021D8FC6:
bl FUN_0200E308
cmp r0, #1
beq _021D8FD2
_021D8FCE:
bl _021D985C
_021D8FD2:
add r0, r4, #0
bl MOD59_021D83F8
add r0, r4, #0
mov r1, #4
add r0, #0x8b
strb r1, [r0]
add r0, r4, #0
bl MOD59_021D8234
mov r0, #6
mov r1, #1
bl FUN_0201797C
mov r0, #6
mov r1, #1
str r0, [sp]
str r1, [sp, #4]
ldr r0, [r4]
add r2, r1, #0
str r0, [sp, #8]
mov r0, #4
add r3, r5, #0
bl FUN_0200E1D0
mov r0, #0x2d
str r0, [r4, #0xc]
bl _021D985C
_021D900C:
bl FUN_0200E308
cmp r0, #1
bne _021D90DA
mov r0, #0x2e
str r0, [r4, #0xc]
bl _021D985C
_021D901C:
mov r1, #0x11
mov r2, #1
bl MOD59_021D7C44
cmp r0, #1
bne _021D90DA
mov r0, #0x2f
str r0, [r4, #0xc]
bl _021D985C
_021D9030:
bl MOD59_021D7730
cmp r0, #1
bne _021D9054
add r0, r4, #0
add r1, r5, #0
add r0, #0x94
str r1, [r0]
add r0, r4, #0
add r0, #0x98
str r1, [r0]
ldr r0, [r4, #0x18]
bl FUN_02018744
mov r0, #0x30
str r0, [r4, #0xc]
bl _021D985C
_021D9054:
ldr r0, _021D9370 ; =0x021C48B8
ldr r0, [r0, #0x48]
cmp r0, #0
beq _021D90DA
mov r0, #0x31
str r0, [r4, #0xc]
b _021D985C
_021D9062:
add r0, #0x98
ldr r0, [r0]
cmp r0, #0
beq _021D9078
add r0, r4, #0
add r0, #0x98
ldr r0, [r0]
add r4, #0x98
sub r0, r0, #1
str r0, [r4]
b _021D985C
_021D9078:
ldr r6, _021D9374 ; =0x021D9DC0
add r3, sp, #0x10
ldmia r6!, {r0, r1}
add r2, r3, #0
stmia r3!, {r0, r1}
ldr r0, [r6]
str r0, [r3]
add r0, r4, #0
add r0, #0x94
ldr r0, [r0]
lsl r0, r0, #2
ldr r1, [r2, r0]
ldr r0, _021D9378 ; =0x0000FFFF
cmp r1, r0
bne _021D90A2
ldr r0, _021D937C ; =0x00000706
bl FUN_020054C8
mov r0, #0x32
str r0, [r4, #0xc]
b _021D985C
_021D90A2:
mov r0, #0x20
str r0, [sp]
str r5, [sp, #4]
str r5, [sp, #8]
ldr r0, [r4]
mov r3, #6
str r0, [sp, #0xc]
ldr r2, [r4, #0x18]
mov r0, #0x7d
bl FUN_0200687C
add r0, r4, #0
add r0, #0x94
ldr r0, [r0]
add r1, r0, #1
add r0, r4, #0
add r0, #0x94
str r1, [r0]
mov r0, #4
add r4, #0x98
str r0, [r4]
b _021D985C
_021D90CE:
mov r1, #0x12
mov r2, #1
bl MOD59_021D7C44
cmp r0, #1
beq _021D90DC
_021D90DA:
b _021D985C
_021D90DC:
mov r0, #0x2f
str r0, [r4, #0xc]
b _021D985C
_021D90E2:
mov r0, #1
mov r1, #0x10
add r2, r5, #0
mov r3, #0xb
str r0, [sp]
bl FUN_0200A208
mov r0, #2
str r0, [sp]
mov r0, #1
mov r1, #0x10
add r2, r5, #0
mov r3, #0xd
bl FUN_0200A208
mov r0, #0x33
str r0, [r4, #0xc]
b _021D985C
_021D9106:
mov r0, #1
bl FUN_0200A344
cmp r0, #1
bne _021D91F6
mov r0, #2
bl FUN_0200A344
cmp r0, #1
bne _021D91F6
mov r0, #1
add r1, r5, #0
mov r2, #0x10
mov r3, #0xb
str r0, [sp]
bl FUN_0200A208
mov r0, #2
str r0, [sp]
mov r0, #1
add r1, r5, #0
mov r2, #0x10
mov r3, #0xd
bl FUN_0200A208
mov r0, #0x34
str r0, [r4, #0xc]
b _021D985C
_021D913E:
mov r0, #1
bl FUN_0200A344
cmp r0, #1
bne _021D91F6
mov r0, #2
bl FUN_0200A344
cmp r0, #1
bne _021D91F6
mov r0, #1
str r0, [sp]
mov r0, #4
mov r1, #0x10
add r2, r5, #0
mov r3, #0xb
bl FUN_0200A208
mov r0, #2
str r0, [sp]
mov r0, #4
mov r1, #0x10
add r2, r5, #0
mov r3, #0xd
bl FUN_0200A208
mov r0, #0x35
str r0, [r4, #0xc]
b _021D985C
_021D9178:
mov r0, #1
bl FUN_0200A344
cmp r0, #1
bne _021D91F6
mov r0, #2
bl FUN_0200A344
cmp r0, #1
bne _021D91F6
mov r0, #0x36
str r0, [r4, #0xc]
b _021D985C
_021D9192:
bl MOD59_021D82A0
mov r0, #6
add r1, r5, #0
bl FUN_0201797C
add r0, r4, #0
add r1, r5, #0
add r0, #0x94
str r1, [r0]
add r1, r4, #0
add r0, r4, #0
add r1, #0x94
bl MOD59_021D86BC
add r0, r4, #0
add r1, r5, #0
add r0, #0x8b
strb r1, [r0]
add r0, r4, #0
bl MOD59_021D8234
mov r0, #1
str r0, [sp]
mov r0, #0x10
add r1, r5, #0
add r2, r0, #0
mov r3, #0xb
bl FUN_0200A208
mov r0, #2
str r0, [sp]
mov r0, #0x10
add r1, r5, #0
add r2, r0, #0
mov r3, #0xd
bl FUN_0200A208
mov r0, #0x37
str r0, [r4, #0xc]
b _021D985C
_021D91E4:
add r1, r4, #0
add r1, #0x94
bl MOD59_021D86BC
mov r0, #1
bl FUN_0200A344
cmp r0, #1
beq _021D91F8
_021D91F6:
b _021D985C
_021D91F8:
mov r0, #2
bl FUN_0200A344
cmp r0, #1
bne _021D92FA
mov r0, #0x38
str r0, [r4, #0xc]
b _021D985C
_021D9208:
add r1, r4, #0
add r1, #0x94
bl MOD59_021D86BC
cmp r0, #1
bne _021D92FA
mov r0, #0x39
str r0, [r4, #0xc]
b _021D985C
_021D921A:
mov r1, #0x28
bl MOD59_021D7BEC
cmp r0, #1
bne _021D92FA
mov r0, #0x3a
str r0, [r4, #0xc]
b _021D985C
_021D922A:
mov r1, #0x13
mov r2, #1
bl MOD59_021D7C44
cmp r0, #1
bne _021D92FA
ldr r0, [r4, #0x18]
add r1, r5, #0
bl FUN_02018744
mov r0, #0x3b
str r0, [r4, #0xc]
b _021D985C
_021D9244:
mov r1, #2
mov r2, #1
bl MOD59_021D7A68
cmp r0, #1
bne _021D92FA
add r0, r4, #0
bl MOD59_021D8914
mov r0, #0x3c
str r0, [r4, #0xc]
b _021D985C
_021D925C:
mov r1, #0x1e
bl MOD59_021D7BEC
cmp r0, #1
bne _021D92FA
mov r0, #0x3d
str r0, [r4, #0xc]
b _021D985C
_021D926C:
mov r1, #0x14
mov r2, #1
bl MOD59_021D7C44
cmp r0, #1
bne _021D92FA
mov r0, #0x3e
str r0, [r4, #0xc]
b _021D985C
_021D927E:
mov r1, #1
add r2, r1, #0
bl MOD59_021D7A68
cmp r0, #1
bne _021D92FA
mov r0, #0x3f
str r0, [r4, #0xc]
b _021D985C
_021D9290:
bl MOD59_021D84E8
add r0, r4, #0
mov r1, #2
add r0, #0x89
strb r1, [r0]
add r0, r4, #0
mov r1, #6
add r0, #0x8a
strb r1, [r0]
add r0, r4, #0
bl MOD59_021D8140
add r2, r5, #0
add r3, r2, #0
ldr r0, [r4, #0x18]
mov r1, #1
sub r3, #0x30
bl FUN_020179E0
ldr r0, [r4, #0x18]
mov r1, #2
add r2, r5, #0
mov r3, #0x30
bl FUN_020179E0
mov r0, #0x40
str r0, [r4, #0xc]
b _021D985C
_021D92CA:
mov r1, #1
add r2, r5, #0
bl MOD59_021D7A68
cmp r0, #1
bne _021D92FA
mov r0, #0x41
str r0, [r4, #0xc]
b _021D985C
_021D92DC:
mov r1, #2
add r2, r5, #0
bl MOD59_021D7A68
cmp r0, #1
bne _021D92FA
mov r0, #0x42
str r0, [r4, #0xc]
b _021D985C
_021D92EE:
mov r1, #0x15
mov r2, #1
bl MOD59_021D7C44
cmp r0, #1
beq _021D92FC
_021D92FA:
b _021D985C
_021D92FC:
add r0, r4, #0
add r1, r5, #0
add r0, #0x84
str r1, [r0]
mov r0, #0x43
str r0, [r4, #0xc]
b _021D985C
_021D930A:
ldr r0, _021D9370 ; =0x021C48B8
mov r1, #1
ldr r0, [r0, #0x48]
and r1, r0
cmp r1, #1
bne _021D933C
mov r0, #6
str r0, [r4, #0x7c]
add r0, r4, #0
mov r1, #0xa
add r0, #0x80
str r1, [r0]
mov r0, #2
str r0, [r4, #0x78]
add r0, r4, #0
add r0, #0x84
ldr r0, [r0]
cmp r0, #0
bne _021D9336
mov r0, #0x44
str r0, [r4, #0xc]
b _021D985C
_021D9336:
mov r0, #0x46
str r0, [r4, #0xc]
b _021D985C
_021D933C:
mov r1, #0x20
and r1, r0
cmp r1, #0x20
beq _021D934C
mov r1, #0x10
and r0, r1
cmp r0, #0x10
bne _021D9368
_021D934C:
add r0, r4, #0
add r0, #0x84
ldr r0, [r0]
cmp r0, #0
bne _021D935A
mov r1, #1
b _021D935C
_021D935A:
mov r1, #0
_021D935C:
add r0, r4, #0
add r0, #0x84
str r1, [r0]
ldr r0, _021D9380 ; =0x000005DC
bl FUN_020054C8
_021D9368:
add r0, r4, #0
bl MOD59_021D8504
b _021D985C
.align 2, 0
_021D9370: .word 0x021C48B8
_021D9374: .word 0x021D9DC0
_021D9378: .word 0x0000FFFF
_021D937C: .word 0x00000706
_021D9380: .word 0x000005DC
_021D9384:
mov r1, #2
mov r2, #1
bl MOD59_021D7A68
cmp r0, #1
bne _021D9414
mov r0, #0x45
str r0, [r4, #0xc]
b _021D985C
_021D9396:
mov r1, #1
add r2, r5, #0
bl MOD59_021D8460
cmp r0, #1
bne _021D9414
add r0, r4, #0
bl MOD59_021D8618
mov r0, #0x48
str r0, [r4, #0xc]
b _021D985C
_021D93AE:
mov r1, #1
add r2, r1, #0
bl MOD59_021D7A68
cmp r0, #1
bne _021D9414
mov r0, #0x47
str r0, [r4, #0xc]
b _021D985C
_021D93C0:
mov r1, #2
add r2, r5, #0
bl MOD59_021D8460
cmp r0, #1
bne _021D9414
add r0, r4, #0
bl MOD59_021D8618
mov r0, #0x48
str r0, [r4, #0xc]
b _021D985C
_021D93D8:
add r0, #0x84
ldr r0, [r0]
cmp r0, #0
bne _021D93E4
mov r1, #0x16
b _021D93E6
_021D93E4:
mov r1, #0x17
_021D93E6:
add r0, r4, #0
mov r2, #1
bl MOD59_021D7C44
cmp r0, #1
bne _021D9414
mov r0, #0x49
str r0, [r4, #0xc]
b _021D985C
_021D93F8:
add r1, r5, #0
add r2, r5, #0
bl MOD59_021D7D7C
cmp r0, #1
bne _021D9414
ldr r1, [r4, #0x48]
sub r0, r5, #2
cmp r1, r0
beq _021D941C
cmp r1, #1
beq _021D9416
cmp r1, #2
beq _021D941C
_021D9414:
b _021D985C
_021D9416:
mov r0, #0x4b
str r0, [r4, #0xc]
b _021D985C
_021D941C:
ldr r0, [r4, #0x18]
mov r1, #0
bl FUN_02018744
mov r0, #0x4a
str r0, [r4, #0xc]
b _021D985C
_021D942A:
add r0, #0x84
ldr r0, [r0]
cmp r0, #0
bne _021D9436
mov r1, #1
b _021D9438
_021D9436:
mov r1, #2
_021D9438:
add r0, r4, #0
mov r2, #1
bl MOD59_021D7A68
cmp r0, #1
bne _021D9530
mov r0, #0x3f
str r0, [r4, #0xc]
b _021D985C
_021D944A:
mov r1, #0x18
mov r2, #1
bl MOD59_021D7C44
cmp r0, #1
bne _021D9530
mov r0, #0x4c
str r0, [r4, #0xc]
b _021D985C
_021D945C:
add r0, #0x84
ldr r1, [r0]
ldr r0, [r4, #0x70]
str r1, [r0, #4]
ldr r0, _021D9778 ; =0x020FA5FC
ldr r1, [r4, #0x70]
ldr r2, [r4]
bl FUN_02006234
str r0, [r4, #0x14]
mov r0, #0x4d
str r0, [r4, #0xc]
b _021D985C
_021D9476:
add r0, r5, #0
mov r1, #1
bl FUN_0201797C
mov r0, #3
mov r1, #1
bl FUN_0201797C
mov r0, #7
mov r1, #1
bl FUN_0201797C
add r0, r4, #0
add r0, #0x84
ldr r0, [r0]
cmp r0, #0
bne _021D94AE
mov r0, #1
add r1, r0, #0
bl FUN_0201797C
add r2, r5, #0
ldr r0, [r4, #0x18]
mov r1, #1
add r3, r2, #0
bl FUN_020179E0
b _021D94C2
_021D94AE:
mov r0, #2
mov r1, #1
bl FUN_0201797C
add r2, r5, #0
ldr r0, [r4, #0x18]
mov r1, #2
add r3, r2, #0
bl FUN_020179E0
_021D94C2:
mov r0, #6
mov r1, #1
str r0, [sp]
str r1, [sp, #4]
ldr r0, [r4]
add r2, r1, #0
str r0, [sp, #8]
mov r0, #0
add r3, r0, #0
bl FUN_0200E1D0
mov r0, #0x4e
str r0, [r4, #0xc]
b _021D985C
_021D94DE:
bl FUN_0200E308
cmp r0, #1
bne _021D9530
mov r0, #0x4f
str r0, [r4, #0xc]
b _021D985C
_021D94EC:
add r0, #0x84
ldr r0, [r0]
cmp r0, #0
bne _021D94F8
mov r1, #0x19
b _021D94FA
_021D94F8:
mov r1, #0x1a
_021D94FA:
add r0, r4, #0
mov r2, #1
bl MOD59_021D7C44
cmp r0, #1
bne _021D9530
mov r0, #0x50
str r0, [r4, #0xc]
b _021D985C
_021D950C:
add r1, r5, #0
add r2, r5, #0
bl MOD59_021D7D7C
cmp r0, #1
bne _021D9530
ldr r0, [r4, #0x18]
add r1, r5, #0
bl FUN_02018744
ldr r1, [r4, #0x48]
sub r0, r5, #2
cmp r1, r0
beq _021D953C
cmp r1, #1
beq _021D9532
cmp r1, #2
beq _021D953C
_021D9530:
b _021D985C
_021D9532:
mov r0, #0x52
str r0, [r4, #0x10]
mov r0, #0x51
str r0, [r4, #0xc]
b _021D985C
_021D953C:
ldr r0, [r4, #0x70]
ldr r0, [r0, #0x18]
bl FUN_02021A4C
mov r0, #0x3f
str r0, [r4, #0x10]
mov r0, #0x51
str r0, [r4, #0xc]
b _021D985C
_021D954E:
add r0, #0x84
ldr r0, [r0]
cmp r0, #0
bne _021D955A
mov r1, #1
b _021D955C
_021D955A:
mov r1, #2
_021D955C:
add r0, r4, #0
mov r2, #1
bl MOD59_021D7A68
cmp r0, #1
bne _021D9616
ldr r0, [r4, #0x10]
str r0, [r4, #0xc]
b _021D985C
_021D956E:
add r1, r4, #0
mov r2, #1
add r1, #0x89
strb r2, [r1]
add r1, r4, #0
add r1, #0x8a
strb r5, [r1]
bl MOD59_021D8140
mov r0, #0x53
str r0, [r4, #0xc]
b _021D985C
_021D9586:
mov r1, #1
add r2, r5, #0
bl MOD59_021D7A68
cmp r0, #1
bne _021D9616
mov r0, #0x54
str r0, [r4, #0xc]
b _021D985C
_021D9598:
mov r1, #0x1b
mov r2, #1
bl MOD59_021D7C44
cmp r0, #1
bne _021D9616
mov r0, #0x55
str r0, [r4, #0xc]
b _021D985C
_021D95AA:
mov r1, #1
add r2, r1, #0
bl MOD59_021D7A68
cmp r0, #1
bne _021D9616
mov r0, #0x56
str r0, [r4, #0xc]
b _021D985C
_021D95BC:
add r1, r4, #0
mov r2, #0xa
add r1, #0x89
strb r2, [r1]
add r1, r4, #0
add r1, #0x8a
strb r5, [r1]
bl MOD59_021D8140
mov r0, #0x57
str r0, [r4, #0xc]
b _021D985C
_021D95D4:
mov r1, #1
add r2, r5, #0
bl MOD59_021D7A68
cmp r0, #1
bne _021D9616
mov r0, #0x58
str r0, [r4, #0xc]
b _021D985C
_021D95E6:
mov r1, #0x1c
mov r2, #1
bl MOD59_021D7C44
cmp r0, #1
bne _021D9616
mov r0, #0x59
str r0, [r4, #0xc]
b _021D985C
_021D95F8:
mov r1, #1
add r2, r1, #0
bl MOD59_021D8460
cmp r0, #1
bne _021D9616
mov r0, #0x5a
str r0, [r4, #0xc]
b _021D985C
_021D960A:
mov r1, #2
mov r2, #1
bl MOD59_021D7D7C
cmp r0, #1
beq _021D9618
_021D9616:
b _021D985C
_021D9618:
ldr r0, [r4, #0x48]
cmp r0, #5
bhi _021D971A
add r1, r0, r0
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021D962A: ; jump table
.short _021D985C - _021D962A - 2 ; case 0
.short _021D9636 - _021D962A - 2 ; case 1
.short _021D963C - _021D962A - 2 ; case 2
.short _021D963C - _021D962A - 2 ; case 3
.short _021D963C - _021D962A - 2 ; case 4
.short _021D963C - _021D962A - 2 ; case 5
_021D9636:
mov r0, #0x5c
str r0, [r4, #0xc]
b _021D985C
_021D963C:
ldr r1, _021D977C ; =gGameVersion
ldrb r1, [r1]
cmp r1, #0xa
bne _021D964C
sub r0, r0, #1
lsl r1, r0, #3
ldr r0, _021D9780 ; =0x021D9F40
b _021D9652
_021D964C:
sub r0, r0, #1
lsl r1, r0, #3
ldr r0, _021D9784 ; =0x021D9F68
_021D9652:
ldr r1, [r0, r1]
ldr r0, [r4, #0x4c]
bl FUN_0200A914
add r6, r0, #0
ldr r0, [r4, #0x74]
add r1, r6, #0
ldr r0, [r0, #0x18]
bl FUN_02021A74
add r0, r6, #0
bl FUN_02021A20
mov r0, #0x5b
str r0, [r4, #0xc]
b _021D985C
_021D9672:
mov r1, #1
mov r2, #2
bl MOD59_021D8460
cmp r0, #1
bne _021D971A
mov r0, #0x5f
str r0, [r4, #0xc]
b _021D985C
_021D9684:
ldr r0, _021D9778 ; =0x020FA5FC
ldr r1, [r4, #0x74]
ldr r2, [r4]
bl FUN_02006234
str r0, [r4, #0x14]
mov r0, #0x5d
str r0, [r4, #0xc]
b _021D985C
_021D9696:
add r0, r5, #0
mov r1, #1
bl FUN_0201797C
mov r0, #3
mov r1, #1
bl FUN_0201797C
mov r0, #7
mov r1, #1
bl FUN_0201797C
mov r0, #1
add r1, r0, #0
bl FUN_0201797C
add r2, r5, #0
ldr r0, [r4, #0x18]
mov r1, #1
add r3, r2, #0
bl FUN_020179E0
mov r0, #6
mov r1, #1
str r0, [sp]
str r1, [sp, #4]
ldr r0, [r4]
add r2, r1, #0
str r0, [sp, #8]
add r0, r5, #0
add r3, r0, #0
bl FUN_0200E1D0
mov r0, #0x5e
str r0, [r4, #0xc]
b _021D985C
_021D96DE:
bl FUN_0200E308
cmp r0, #1
bne _021D971A
mov r0, #0x5f
str r0, [r4, #0xc]
b _021D985C
_021D96EC:
mov r1, #0x1d
mov r2, #1
bl MOD59_021D7C44
cmp r0, #1
bne _021D971A
mov r0, #0x60
str r0, [r4, #0xc]
b _021D985C
_021D96FE:
add r1, r5, #0
add r2, r5, #0
bl MOD59_021D7D7C
cmp r0, #1
bne _021D971A
ldr r1, [r4, #0x48]
sub r0, r5, #2
cmp r1, r0
beq _021D972A
cmp r1, #1
beq _021D971C
cmp r1, #2
beq _021D972A
_021D971A:
b _021D985C
_021D971C:
ldr r0, [r4, #0x18]
add r1, r5, #0
bl FUN_02018744
mov r0, #0x61
str r0, [r4, #0xc]
b _021D985C
_021D972A:
ldr r0, [r4, #0x74]
ldr r0, [r0, #0x18]
bl FUN_02021A4C
mov r0, #0x58
str r0, [r4, #0xc]
b _021D985C
_021D9738:
mov r1, #1
add r2, r1, #0
bl MOD59_021D7A68
cmp r0, #1
beq _021D9746
b _021D985C
_021D9746:
mov r0, #0x62
str r0, [r4, #0xc]
b _021D985C
_021D974C:
add r1, r4, #0
mov r2, #1
add r1, #0x89
strb r2, [r1]
add r1, r4, #0
add r1, #0x8a
strb r5, [r1]
bl MOD59_021D8140
mov r0, #0x63
str r0, [r4, #0xc]
b _021D985C
_021D9764:
mov r1, #1
add r2, r5, #0
bl MOD59_021D7A68
cmp r0, #1
bne _021D985C
mov r0, #0x64
str r0, [r4, #0xc]
b _021D985C
nop
_021D9778: .word 0x020FA5FC
_021D977C: .word gGameVersion
_021D9780: .word 0x021D9F40
_021D9784: .word 0x021D9F68
_021D9788:
mov r1, #0x1e
bl MOD59_021D7BEC
cmp r0, #1
bne _021D985C
mov r0, #0x65
str r0, [r4, #0xc]
b _021D985C
_021D9798:
mov r1, #0x1e
mov r2, #1
bl MOD59_021D7C44
cmp r0, #1
bne _021D985C
add r0, r5, #0
mov r1, #0x32
bl FUN_020053CC
mov r0, #0x66
str r0, [r4, #0xc]
b _021D985C
_021D97B2:
mov r1, #1
add r2, r1, #0
bl MOD59_021D7A68
cmp r0, #1
bne _021D985C
ldr r0, [r4, #0x18]
add r1, r5, #0
bl FUN_02018744
mov r0, #0x67
str r0, [r4, #0xc]
b _021D985C
_021D97CC:
mov r1, #0x1e
bl MOD59_021D7BEC
cmp r0, #1
bne _021D985C
mov r0, #0x68
str r0, [r4, #0xc]
b _021D985C
_021D97DC:
add r1, r4, #0
add r1, #0x84
ldr r1, [r1]
cmp r1, #0
bne _021D97FA
add r1, r4, #0
mov r2, #2
add r1, #0x89
strb r2, [r1]
add r1, r4, #0
add r1, #0x8a
strb r5, [r1]
bl MOD59_021D8140
b _021D980C
_021D97FA:
add r1, r4, #0
mov r2, #6
add r1, #0x89
strb r2, [r1]
add r1, r4, #0
add r1, #0x8a
strb r5, [r1]
bl MOD59_021D8140
_021D980C:
mov r0, #0x69
str r0, [r4, #0xc]
b _021D985C
_021D9812:
mov r1, #1
add r2, r5, #0
bl MOD59_021D7A68
cmp r0, #1
bne _021D985C
add r0, r4, #0
bl MOD59_021D8624
mov r0, #0x6a
str r0, [r4, #0xc]
b _021D985C
_021D982A:
mov r1, #0x1e
bl MOD59_021D7BEC
cmp r0, #1
bne _021D985C
mov r0, #0x6b
str r0, [r4, #0xc]
b _021D985C
_021D983A:
bl MOD59_021D8634
cmp r0, #1
bne _021D985C
mov r0, #0x6c
str r0, [r4, #0xc]
b _021D985C
_021D9848:
ldr r0, _021D9864 ; =0x021D9DDC
ldr r2, [r4]
add r1, r5, #0
bl FUN_02006234
str r0, [r4, #0x14]
mov r0, #0x6d
str r0, [r4, #0xc]
b _021D985C
_021D985A:
mov r5, #1
_021D985C:
add r0, r5, #0
add sp, #0x30
pop {r4, r5, r6, pc}
nop
_021D9864: .word 0x021D9DDC
thumb_func_end MOD59_021D8920
thumb_func_start MOD59_021D9868
MOD59_021D9868: ; 0x021D9868
push {r4, lr}
mov r2, #1
add r4, r0, #0
mov r0, #3
mov r1, #0x53
lsl r2, r2, #0x12
bl FUN_0201681C
add r0, r4, #0
mov r1, #0x28
mov r2, #0x53
bl FUN_02006268
mov r1, #0
mov r2, #0x28
add r4, r0, #0
bl memset
mov r0, #0x53
str r0, [r4]
mov r0, #0
str r0, [r4, #0x24]
mov r0, #1
pop {r4, pc}
thumb_func_end MOD59_021D9868
thumb_func_start MOD59_021D9898
MOD59_021D9898: ; 0x021D9898
push {r3, r4, r5, r6, lr}
sub sp, #0xc
add r5, r1, #0
bl FUN_02006278
ldr r1, [r5]
add r4, r0, #0
mov r6, #0
cmp r1, #5
bls _021D98AE
b _021D99E2
_021D98AE:
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021D98BA: ; jump table
.short _021D98C6 - _021D98BA - 2 ; case 0
.short _021D992C - _021D98BA - 2 ; case 1
.short _021D9952 - _021D98BA - 2 ; case 2
.short _021D997C - _021D98BA - 2 ; case 3
.short _021D998E - _021D98BA - 2 ; case 4
.short _021D99C0 - _021D98BA - 2 ; case 5
_021D98C6:
add r0, r6, #0
add r1, r6, #0
bl FUN_0200E3A0
mov r0, #1
add r1, r6, #0
bl FUN_0200E3A0
add r0, r6, #0
add r1, r0, #0
bl FUN_02015F10
add r0, r6, #0
add r1, r0, #0
bl FUN_02015F34
bl FUN_0201E6D8
bl FUN_0201E740
mov r2, #1
lsl r2, r2, #0x1a
ldr r1, [r2]
ldr r0, _021D99E8 ; =0xFFFFE0FF
and r1, r0
str r1, [r2]
ldr r2, _021D99EC ; =0x04001000
ldr r1, [r2]
and r0, r1
str r0, [r2]
mov r0, #4
mov r1, #8
bl FUN_0201669C
add r0, r4, #0
bl MOD59_021D9A20
add r0, r4, #0
bl MOD59_021D9C48
ldr r0, _021D99F0 ; =MOD59_021D9A14
add r1, r4, #0
bl FUN_02015F10
bl FUN_0201E788
mov r0, #0x3c
str r0, [r4, #0x24]
mov r0, #1
str r0, [r5]
b _021D99E2
_021D992C:
ldr r0, [r4, #0x24]
cmp r0, #0
beq _021D9938
sub r0, r0, #1
str r0, [r4, #0x24]
b _021D99E2
_021D9938:
ldr r0, _021D99F4 ; =0x00000406
bl FUN_0200414C
ldr r1, _021D99F4 ; =0x00000406
mov r0, #4
mov r2, #1
bl FUN_0200433C
mov r0, #0x5a
str r0, [r4, #0x24]
mov r0, #2
str r0, [r5]
b _021D99E2
_021D9952:
ldr r0, [r4, #0x24]
cmp r0, #0
beq _021D995E
sub r0, r0, #1
str r0, [r4, #0x24]
b _021D99E2
_021D995E:
str r6, [r4, #0x24]
mov r0, #6
mov r1, #1
str r0, [sp]
str r1, [sp, #4]
ldr r0, [r4]
add r2, r1, #0
str r0, [sp, #8]
add r0, r6, #0
add r3, r6, #0
bl FUN_0200E1D0
mov r0, #3
str r0, [r5]
b _021D99E2
_021D997C:
bl MOD59_021D9D78
bl FUN_0200E308
cmp r0, #1
bne _021D99E2
mov r0, #4
str r0, [r5]
b _021D99E2
_021D998E:
bl MOD59_021D9D78
add r0, r4, #0
add r1, r6, #0
mov r2, #0x28
mov r3, #0x30
bl MOD59_021D9C74
cmp r0, #1
bne _021D99E2
mov r0, #6
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
ldr r0, [r4]
str r0, [sp, #8]
add r0, r6, #0
add r1, r0, #0
add r2, r0, #0
add r3, r0, #0
bl FUN_0200E1D0
mov r0, #5
str r0, [r5]
b _021D99E2
_021D99C0:
bl MOD59_021D9D78
bl FUN_0200E308
cmp r0, #1
bne _021D99E2
add r0, r4, #0
bl MOD59_021D9C68
add r0, r4, #0
bl MOD59_021D9BD0
add r0, r6, #0
add r1, r0, #0
bl FUN_02015F10
mov r6, #1
_021D99E2:
add r0, r6, #0
add sp, #0xc
pop {r3, r4, r5, r6, pc}
.align 2, 0
_021D99E8: .word 0xFFFFE0FF
_021D99EC: .word 0x04001000
_021D99F0: .word MOD59_021D9A14
_021D99F4: .word 0x00000406
thumb_func_end MOD59_021D9898
thumb_func_start MOD59_021D99F8
MOD59_021D99F8: ; 0x021D99F8
push {r3, r4, r5, lr}
add r5, r0, #0
bl FUN_02006278
ldr r4, [r0]
add r0, r5, #0
bl FUN_0200627C
add r0, r4, #0
bl FUN_020168D0
mov r0, #1
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_end MOD59_021D99F8
thumb_func_start MOD59_021D9A14
MOD59_021D9A14: ; 0x021D9A14
ldr r3, _021D9A1C ; =FUN_0201AB60
ldr r0, [r0, #4]
bx r3
nop
_021D9A1C: .word FUN_0201AB60
thumb_func_end MOD59_021D9A14
thumb_func_start MOD59_021D9A20
MOD59_021D9A20: ; 0x021D9A20
push {r3, r4, r5, lr}
sub sp, #0xb8
ldr r5, _021D9BB4 ; =0x021DA0D4
add r4, r0, #0
add r3, sp, #0x90
mov r2, #5
_021D9A2C:
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
sub r2, r2, #1
bne _021D9A2C
add r0, sp, #0x90
bl FUN_0201E66C
ldr r0, [r4]
bl FUN_02016B94
add r3, sp, #0x80
ldr r5, _021D9BB8 ; =0x021DA054
str r0, [r4, #4]
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, _021D9BBC ; =0x021DA080
add r3, sp, #0x64
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]
ldr r0, [r4, #4]
mov r3, #0
bl FUN_02016C18
ldr r3, [r4]
mov r0, #2
mov r1, #0x20
mov r2, #0
bl FUN_02017F18
ldr r0, [r4, #4]
mov r1, #2
bl FUN_02018744
ldr r5, _021D9BC0 ; =0x021DA09C
add r3, sp, #0x48
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]
ldr r0, [r4, #4]
add r3, r1, #0
bl FUN_02016C18
mov r3, #0
str r3, [sp]
str r3, [sp, #4]
str r3, [sp, #8]
ldr r0, [r4]
mov r1, #1
str r0, [sp, #0xc]
ldr r2, [r4, #4]
mov r0, #0x88
bl FUN_0200687C
mov r3, #0
str r3, [sp]
str r3, [sp, #4]
str r3, [sp, #8]
ldr r0, [r4]
mov r1, #4
str r0, [sp, #0xc]
ldr r2, [r4, #4]
mov r0, #0x88
bl FUN_020068C8
ldr r5, _021D9BC4 ; =0x021DA064
add r3, sp, #0x2c
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]
ldr r0, [r4, #4]
mov r3, #0
bl FUN_02016C18
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
ldr r0, [r4]
mov r1, #2
str r0, [sp, #0xc]
ldr r2, [r4, #4]
mov r0, #0x88
mov r3, #1
bl FUN_0200687C
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
ldr r0, [r4]
mov r1, #5
str r0, [sp, #0xc]
ldr r2, [r4, #4]
mov r0, #0x88
mov r3, #1
bl FUN_020068C8
ldr r5, _021D9BC8 ; =0x021DA0B8
add r3, sp, #0x10
ldmia r5!, {r0, r1}
add r2, r3, #0
stmia r3!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
ldr r0, [r5]
mov r1, #3
str r0, [r3]
ldr r0, [r4, #4]
mov r3, #0
bl FUN_02016C18
mov r1, #0
str r1, [sp]
str r1, [sp, #4]
str r1, [sp, #8]
ldr r0, [r4]
mov r3, #3
str r0, [sp, #0xc]
ldr r2, [r4, #4]
mov r0, #0x88
bl FUN_0200687C
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
ldr r0, [r4]
mov r1, #3
str r0, [sp, #0xc]
ldr r2, [r4, #4]
mov r0, #0x88
add r3, r1, #0
bl FUN_020068C8
mov r2, #0
str r2, [sp]
ldr r0, [r4]
mov r1, #6
str r0, [sp, #4]
mov r0, #0x88
add r3, r2, #0
bl FUN_02006930
ldr r2, [r4]
mov r0, #0
mov r1, #0x20
bl FUN_02002ED0
mov r0, #0
add r1, r0, #0
bl FUN_02017FE4
mov r0, #4
mov r1, #0
bl FUN_02017FE4
mov r2, #0xc
ldr r0, _021D9BCC ; =0x04000050
mov r1, #2
mov r3, #4
str r2, [sp]
bl G2x_SetBlendAlpha_
add sp, #0xb8
pop {r3, r4, r5, pc}
nop
_021D9BB4: .word 0x021DA0D4
_021D9BB8: .word 0x021DA054
_021D9BBC: .word 0x021DA080
_021D9BC0: .word 0x021DA09C
_021D9BC4: .word 0x021DA064
_021D9BC8: .word 0x021DA0B8
_021D9BCC: .word 0x04000050
thumb_func_end MOD59_021D9A20
thumb_func_start MOD59_021D9BD0
MOD59_021D9BD0: ; 0x021D9BD0
push {r4, lr}
add r4, r0, #0
mov r0, #0
add r1, r0, #0
bl FUN_0201797C
mov r0, #1
mov r1, #0
bl FUN_0201797C
mov r0, #2
mov r1, #0
bl FUN_0201797C
mov r0, #3
mov r1, #0
bl FUN_0201797C
mov r0, #4
mov r1, #0
bl FUN_0201797C
mov r0, #5
mov r1, #0
bl FUN_0201797C
mov r0, #6
mov r1, #0
bl FUN_0201797C
mov r0, #7
mov r1, #0
bl FUN_0201797C
ldr r0, _021D9C44 ; =0x04000050
mov r1, #0
strh r1, [r0]
ldr r0, [r4, #4]
mov r1, #3
bl FUN_020178A0
ldr r0, [r4, #4]
mov r1, #1
bl FUN_020178A0
ldr r0, [r4, #4]
mov r1, #0
bl FUN_020178A0
ldr r0, [r4, #4]
mov r1, #2
bl FUN_020178A0
ldr r0, [r4, #4]
bl FreeToHeap
pop {r4, pc}
nop
_021D9C44: .word 0x04000050
thumb_func_end MOD59_021D9BD0
thumb_func_start MOD59_021D9C48
MOD59_021D9C48: ; 0x021D9C48
push {r4, lr}
add r4, r0, #0
ldr r2, _021D9C64 ; =0x00000225
ldr r3, [r4]
mov r0, #1
mov r1, #0x1a
bl FUN_0200A86C
str r0, [r4, #8]
bl FUN_0201BD5C
mov r0, #0
str r0, [r4, #0xc]
pop {r4, pc}
.align 2, 0
_021D9C64: .word 0x00000225
thumb_func_end MOD59_021D9C48
thumb_func_start MOD59_021D9C68
MOD59_021D9C68: ; 0x021D9C68
ldr r3, _021D9C70 ; =FUN_0200A8B8
ldr r0, [r0, #8]
bx r3
nop
_021D9C70: .word FUN_0200A8B8
thumb_func_end MOD59_021D9C68
thumb_func_start MOD59_021D9C74
MOD59_021D9C74: ; 0x021D9C74
push {r4, r5, r6, r7, lr}
sub sp, #0x14
add r4, r0, #0
ldr r0, [r4, #0xc]
str r1, [sp, #0x10]
add r7, r3, #0
mov r5, #0
cmp r0, #3
bhi _021D9D66
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021D9C92: ; jump table
.short _021D9C9A - _021D9C92 - 2 ; case 0
.short _021D9D24 - _021D9C92 - 2 ; case 1
.short _021D9D36 - _021D9C92 - 2 ; case 2
.short _021D9D50 - _021D9C92 - 2 ; case 3
_021D9C9A:
mov r0, #2
add r1, r5, #0
bl FUN_0201797C
mov r0, #1
ldr r1, [r4]
lsl r0, r0, #0xa
bl FUN_020219F4
add r6, r0, #0
ldr r0, [r4, #8]
ldr r1, [sp, #0x10]
add r2, r6, #0
bl FUN_0200A8E0
add r1, r4, #0
ldr r0, [r4, #4]
ldr r2, _021D9D6C ; =0x021DA04C
add r1, #0x10
bl FUN_02019150
add r1, r5, #0
mov r0, #1
lsl r0, r0, #8
str r0, [sp]
mov r0, #0xc0
str r0, [sp, #4]
add r0, r4, #0
add r0, #0x10
add r2, r1, #0
add r3, r1, #0
bl FUN_020196F4
add r0, r5, #0
add r1, r6, #0
add r2, r0, #0
bl FUN_02002F08
mov r1, #1
lsl r1, r1, #8
sub r0, r1, r0
lsr r3, r0, #1
str r7, [sp]
add r1, r5, #0
ldr r0, _021D9D70 ; =0x000F0200
str r1, [sp, #4]
str r0, [sp, #8]
add r0, r4, #0
add r0, #0x10
add r2, r6, #0
str r1, [sp, #0xc]
bl FUN_0201BDE0
add r0, r6, #0
bl FUN_02021A20
add r0, r4, #0
add r0, #0x10
bl FUN_020191D0
mov r0, #2
mov r1, #1
bl FUN_0201797C
mov r0, #0xf0
str r0, [r4, #0x24]
mov r0, #1
str r0, [r4, #0xc]
b _021D9D66
_021D9D24:
ldr r0, [r4, #0x24]
cmp r0, #0
beq _021D9D30
sub r0, r0, #1
str r0, [r4, #0x24]
b _021D9D66
_021D9D30:
mov r0, #2
str r0, [r4, #0xc]
b _021D9D66
_021D9D36:
ldr r0, _021D9D74 ; =0x021C48B8
ldr r1, [r0, #0x48]
mov r0, #1
and r0, r1
cmp r0, #1
beq _021D9D4A
mov r0, #2
and r0, r1
cmp r0, #2
bne _021D9D66
_021D9D4A:
mov r0, #3
str r0, [r4, #0xc]
b _021D9D66
_021D9D50:
add r0, r4, #0
add r0, #0x10
bl FUN_02019178
ldr r0, [r4, #4]
mov r1, #2
bl FUN_02018744
add r0, r5, #0
str r0, [r4, #0xc]
mov r5, #1
_021D9D66:
add r0, r5, #0
add sp, #0x14
pop {r4, r5, r6, r7, pc}
.align 2, 0
_021D9D6C: .word 0x021DA04C
_021D9D70: .word 0x000F0200
_021D9D74: .word 0x021C48B8
thumb_func_end MOD59_021D9C74
thumb_func_start MOD59_021D9D78
MOD59_021D9D78: ; 0x021D9D78
push {r3, lr}
ldr r1, [r0, #0x20]
mov r2, #3
add r3, r1, #4
str r3, [r0, #0x20]
ldr r0, [r0, #4]
mov r1, #1
asr r3, r3, #4
bl FUN_020179E0
pop {r3, pc}
.align 2, 0
thumb_func_end MOD59_021D9D78
.section .rodata
; 0x021D9D90
.byte 0x00, 0x08, 0x00, 0x18, 0x18, 0x05, 0x2D, 0x01, 0x00, 0x04, 0x00, 0x18, 0x18, 0x05, 0x2D, 0x01
.byte 0x00, 0x02, 0x03, 0x0E, 0x0A, 0x05, 0xE1, 0x02, 0x00, 0x02, 0x03, 0x06, 0x04, 0x05, 0x55, 0x03
.byte 0x00, 0x01, 0x03, 0x10, 0x06, 0x05, 0x0D, 0x03, 0x00, 0x02, 0x13, 0x1B, 0x04, 0x06, 0x6D, 0x03
.byte 0x1F, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x69, 0x98, 0x1D, 0x02
.byte 0x99, 0x98, 0x1D, 0x02, 0xF9, 0x99, 0x1D, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0x08, 0x00, 0x00, 0x00
.byte 0x09, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00
.byte 0x0E, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
.byte 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00
.byte 0x1A, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00
.byte 0x1D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x08, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x20, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
.byte 0x0D, 0x00, 0x00, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x2D, 0x00, 0x00, 0x00, 0x2E, 0x00, 0x00, 0x00
.byte 0x2F, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00
.byte 0x29, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x6A, 0x3C, 0x6A, 0x3C, 0x6A, 0x3C, 0x6A
.byte 0x3C, 0x6A, 0x3C, 0x6A, 0x3C, 0x6A, 0x3C, 0x6A, 0x3C, 0x6A, 0x3C, 0x6A, 0x3C, 0x6A, 0x3C, 0x6A
.byte 0x3C, 0x6A, 0x3C, 0x6A, 0x3C, 0x6A, 0x3C, 0x6A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x10
.byte 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x24, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
.byte 0x26, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00
.byte 0x28, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x29, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
.byte 0x2B, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00
.byte 0x08, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00
.byte 0x0A, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00
.byte 0x0D, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00
.byte 0x0F, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00
.byte 0x14, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07
.byte 0x40, 0x41, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x42, 0x43, 0x10, 0x11, 0x12, 0x13
.byte 0x14, 0x15, 0x16, 0x17, 0x44, 0x45, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x46, 0x47
.byte 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x48, 0x49, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D
.byte 0x2E, 0x2F, 0x4A, 0x4B, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x4C, 0x4D, 0x38, 0x39
.byte 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x58, 0x59, 0x5A, 0x5B
.byte 0x60, 0x61, 0x54, 0x55, 0x56, 0x57, 0x5C, 0x5D, 0x5E, 0x5F, 0x62, 0x63, 0x02, 0x00, 0x00, 0x20
.byte 0x18, 0x01, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x04, 0x00, 0x01, 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, 0x00, 0x06, 0x00, 0x01, 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, 0x01, 0x05
.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, 0x01, 0x03, 0x08, 0x00, 0x01, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00