pokeheartgold/asm/overlay_53.s
2021-06-27 08:46:42 -04:00

5502 lines
99 KiB
ArmAsm

thumb_func_start ov53_021E5900
ov53_021E5900: @ 0x021E5900
push {r3, r4, r5, lr}
sub sp, #8
movs r2, #1
adds r5, r0, #0
movs r0, #3
movs r1, #0x50
lsls r2, r2, #0x12
bl FUN_0201A910
movs r1, #6
adds r0, r5, #0
lsls r1, r1, #6
movs r2, #0x50
bl FUN_02007280
movs r2, #6
movs r1, #0
lsls r2, r2, #6
adds r4, r0, #0
blx FUN_020E5B44
movs r0, #0x50
str r0, [r4]
adds r0, r5, #0
bl FUN_020072A4
ldr r0, [r0, #8]
str r0, [r4, #4]
bl FUN_02028EA8
movs r1, #0
str r0, [r4, #8]
str r1, [r4, #0xc]
str r1, [r4, #0x10]
str r1, [r4, #0x14]
ldr r0, [r4, #8]
adds r2, r1, #0
str r0, [sp]
movs r0, #0x50
movs r3, #7
str r1, [sp, #4]
bl FUN_020830D8
movs r1, #0x12
lsls r1, r1, #4
str r0, [r4, r1]
ldr r0, [r4, #8]
movs r2, #0
str r0, [sp]
movs r0, #0x50
movs r1, #3
movs r3, #7
str r2, [sp, #4]
bl FUN_020830D8
movs r2, #0x49
lsls r2, r2, #2
adds r1, r2, #0
str r0, [r4, r2]
movs r0, #0
adds r1, #0x58
str r0, [r4, r1]
adds r2, #0x18
str r0, [r4, r2]
bl FUN_02002B8C
ldr r1, [r4]
movs r0, #4
bl FUN_02002CEC
movs r0, #1
add sp, #8
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_end ov53_021E5900
thumb_func_start ov53_021E5994
ov53_021E5994: @ 0x021E5994
push {r3, r4, r5, r6, lr}
sub sp, #0xc
adds r5, r1, #0
bl FUN_02007290
ldr r1, [r5]
adds r4, r0, #0
movs r6, #0
cmp r1, #5
bls _021E59AA
b _021E5B22
_021E59AA:
adds r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsls r1, r1, #0x10
asrs r1, r1, #0x10
add pc, r1
_021E59B6: @ jump table
.2byte _021E59C2 - _021E59B6 - 2 @ case 0
.2byte _021E5A56 - _021E59B6 - 2 @ case 1
.2byte _021E5AA4 - _021E59B6 - 2 @ case 2
.2byte _021E5AD4 - _021E59B6 - 2 @ case 3
.2byte _021E5B06 - _021E59B6 - 2 @ case 4
.2byte _021E5B20 - _021E59B6 - 2 @ case 5
_021E59C2:
adds r0, r6, #0
adds r1, r6, #0
bl FUN_0200FBF4
movs r0, #1
adds r1, r6, #0
bl FUN_0200FBF4
adds r0, r6, #0
adds r1, r0, #0
bl FUN_0201A0FC
adds r0, r6, #0
adds r1, r0, #0
bl FUN_0201A120
bl FUN_02022C54
bl FUN_02022CBC
movs r2, #1
lsls r2, r2, #0x1a
ldr r1, [r2]
ldr r0, _021E5B3C @ =0xFFFFE0FF
ands r1, r0
str r1, [r2]
ldr r2, _021E5B40 @ =0x04001000
ldr r1, [r2]
ands r0, r1
str r0, [r2]
movs r0, #4
movs r1, #8
bl FUN_0201A71C
adds r0, r4, #0
bl ov53_021E5BDC
adds r0, r4, #0
bl ov53_021E5E6C
ldr r0, [r4, #0x18]
movs r1, #4
bl FUN_0201CAE0
adds r0, r4, #0
bl ov53_021E7F24
adds r0, r4, #0
bl ov53_021E8014
movs r0, #0xe
str r0, [sp]
ldr r0, [r4]
adds r1, r4, #0
str r0, [sp, #4]
adds r1, #0xe8
ldr r0, [r4, #0x18]
ldr r1, [r1]
movs r2, #6
movs r3, #4
bl ov53_021E80F4
movs r1, #0x5e
lsls r1, r1, #2
str r0, [r4, r1]
ldr r0, _021E5B44 @ =ov53_021E5BCC
adds r1, r4, #0
bl FUN_0201A0FC
bl FUN_02022D24
movs r0, #1
str r0, [r5]
b _021E5B22
_021E5A56:
bl ov53_021E7ECC
adds r0, r4, #0
bl ov53_021E6F9C
cmp r0, #1
bne _021E5A80
movs r0, #6
str r0, [sp]
movs r0, #1
str r0, [sp, #4]
ldr r0, [r4]
str r0, [sp, #8]
adds r0, r6, #0
adds r1, r0, #0
adds r2, r0, #0
adds r3, r0, #0
bl FUN_0200FA24
movs r0, #2
str r0, [r5]
_021E5A80:
ldr r0, [r4, #0x14]
cmp r0, #0
beq _021E5B22
movs r0, #6
str r0, [sp]
movs r0, #1
str r0, [sp, #4]
ldr r0, [r4]
str r0, [sp, #8]
movs r0, #0
adds r1, r0, #0
adds r2, r0, #0
adds r3, r0, #0
bl FUN_0200FA24
movs r0, #3
str r0, [r5]
b _021E5B22
_021E5AA4:
bl FUN_0200FB5C
cmp r0, #1
bne _021E5B22
movs r0, #0x5e
lsls r0, r0, #2
ldr r0, [r4, r0]
bl ov53_021E814C
adds r0, r4, #0
bl ov53_021E7FEC
adds r0, r4, #0
bl ov53_021E5EB8
adds r0, r4, #0
bl ov53_021E5DE0
adds r0, r6, #0
adds r1, r0, #0
bl FUN_0201A0FC
movs r6, #1
b _021E5B22
_021E5AD4:
bl FUN_0200FB5C
cmp r0, #1
bne _021E5B22
movs r0, #0x5e
lsls r0, r0, #2
ldr r0, [r4, r0]
bl ov53_021E814C
adds r0, r4, #0
bl ov53_021E7FEC
adds r0, r4, #0
bl ov53_021E5EB8
adds r0, r4, #0
bl ov53_021E5DE0
adds r0, r6, #0
adds r1, r0, #0
bl FUN_0201A0FC
movs r0, #4
str r0, [r5]
b _021E5B22
_021E5B06:
ldr r0, [r4, #0x14]
bl FUN_020072A8
cmp r0, #1
bne _021E5B22
ldr r0, [r4, #0x14]
bl FUN_02007278
adds r0, r6, #0
str r0, [r4, #0x14]
movs r0, #5
str r0, [r5]
b _021E5B22
_021E5B20:
str r6, [r5]
_021E5B22:
ldr r0, [r4, #0x14]
cmp r0, #0
bne _021E5B34
adds r4, #0xd4
ldr r0, [r4]
cmp r0, #0
beq _021E5B34
bl FUN_0200D020
_021E5B34:
adds r0, r6, #0
add sp, #0xc
pop {r3, r4, r5, r6, pc}
nop
_021E5B3C: .4byte 0xFFFFE0FF
_021E5B40: .4byte 0x04001000
_021E5B44: .4byte ov53_021E5BCC
thumb_func_end ov53_021E5994
thumb_func_start ov53_021E5B48
ov53_021E5B48: @ 0x021E5B48
push {r4, r5, r6, lr}
adds r6, r0, #0
bl FUN_02007290
adds r4, r0, #0
movs r0, #4
ldr r5, [r4]
bl FUN_02002DB4
ldr r0, [r4, #4]
bl FUN_02028E9C
movs r1, #0x12
lsls r1, r1, #4
ldr r1, [r4, r1]
ldr r1, [r1, #0x18]
bl FUN_02028F44
ldr r0, [r4, #4]
bl FUN_02028E9C
movs r1, #0x12
lsls r1, r1, #4
ldr r1, [r4, r1]
ldr r1, [r1, #4]
bl FUN_02028F90
ldr r0, [r4, #4]
bl FUN_0202A954
movs r1, #0x49
lsls r1, r1, #2
ldr r1, [r4, r1]
ldr r1, [r1, #0x18]
bl FUN_0202A9B0
movs r0, #0x12
lsls r0, r0, #4
ldr r0, [r4, r0]
bl FUN_0208311C
movs r0, #0x49
lsls r0, r0, #2
ldr r0, [r4, r0]
bl FUN_0208311C
adds r0, r6, #0
bl FUN_02007294
adds r0, r5, #0
bl FUN_0201A9C4
ldr r0, _021E5BC4 @ =0x00000024
ldr r1, _021E5BC8 @ =0x021E5C14
bl FUN_02000EF4
movs r0, #0
bl FUN_02002B8C
movs r0, #1
pop {r4, r5, r6, pc}
nop
_021E5BC4: .4byte 0x00000024
_021E5BC8: .4byte 0x021E5C14
thumb_func_end ov53_021E5B48
thumb_func_start ov53_021E5BCC
ov53_021E5BCC: @ 0x021E5BCC
push {r3, lr}
ldr r0, [r0, #0x18]
bl FUN_0201EEB4
bl FUN_0200D034
pop {r3, pc}
.align 2, 0
thumb_func_end ov53_021E5BCC
thumb_func_start ov53_021E5BDC
ov53_021E5BDC: @ 0x021E5BDC
push {r3, r4, r5, lr}
sub sp, #0x78
ldr r5, _021E5DC8 @ =0x021E8628
adds r4, r0, #0
add r3, sp, #0x50
movs r2, #5
_021E5BE8:
ldm r5!, {r0, r1}
stm r3!, {r0, r1}
subs r2, r2, #1
bne _021E5BE8
add r0, sp, #0x50
bl FUN_02022BE8
ldr r0, [r4]
bl FUN_0201AC88
add r3, sp, #0x40
ldr r5, _021E5DCC @ =0x021E8548
str r0, [r4, #0x18]
adds r2, r3, #0
ldm r5!, {r0, r1}
stm r3!, {r0, r1}
ldm r5!, {r0, r1}
stm r3!, {r0, r1}
adds r0, r2, #0
bl FUN_0201ACB0
ldr r5, _021E5DD0 @ =0x021E85CC
add r3, sp, #0x24
ldm r5!, {r0, r1}
adds r2, r3, #0
stm r3!, {r0, r1}
ldm r5!, {r0, r1}
stm r3!, {r0, r1}
ldm r5!, {r0, r1}
stm r3!, {r0, r1}
ldr r0, [r5]
movs r1, #0
str r0, [r3]
movs r0, #0xf
strb r0, [r2, #0x12]
movs r0, #6
strb r0, [r2, #0x13]
ldr r0, [r4, #0x18]
adds r3, r1, #0
bl FUN_0201B1E4
ldr r0, [r4, #0x18]
movs r1, #0
bl FUN_0201CAE0
movs r0, #0xe
add r2, sp, #0x24
strb r0, [r2, #0x12]
movs r0, #5
strb r0, [r2, #0x13]
ldr r0, [r4, #0x18]
movs r1, #1
movs r3, #0
bl FUN_0201B1E4
ldr r0, [r4, #0x18]
movs r1, #1
bl FUN_0201CAE0
movs r0, #0xd
add r2, sp, #0x24
strb r0, [r2, #0x12]
movs r0, #4
strb r0, [r2, #0x13]
ldr r0, [r4, #0x18]
movs r1, #2
movs r3, #0
bl FUN_0201B1E4
ldr r0, [r4, #0x18]
movs r1, #2
bl FUN_0201CAE0
movs r0, #0xc
add r2, sp, #0x24
strb r0, [r2, #0x12]
movs r1, #3
strb r1, [r2, #0x13]
ldr r0, [r4, #0x18]
movs r3, #0
bl FUN_0201B1E4
ldr r0, [r4, #0x18]
movs r1, #3
bl FUN_0201CAE0
movs r1, #0
str r1, [sp]
ldr r0, [r4]
ldr r2, _021E5DD4 @ =0x000003E2
str r0, [sp, #4]
ldr r0, [r4, #0x18]
movs r3, #4
bl FUN_0200E644
movs r1, #0
str r1, [sp]
ldr r0, [r4]
ldr r2, _021E5DD8 @ =0x000003D9
str r0, [sp, #4]
ldr r0, [r4, #0x18]
movs r3, #3
bl FUN_0200E3DC
ldr r2, [r4]
movs r0, #0
movs r1, #0xa0
bl FUN_02003030
ldr r2, [r4]
movs r0, #0
movs r1, #0xc0
bl FUN_0200304C
ldr r5, _021E5DDC @ =0x021E85E8
add r3, sp, #8
ldm r5!, {r0, r1}
adds r2, r3, #0
stm r3!, {r0, r1}
ldm r5!, {r0, r1}
stm r3!, {r0, r1}
ldm r5!, {r0, r1}
stm r3!, {r0, r1}
ldr r0, [r5]
movs r1, #0xf
str r0, [r3]
add r0, sp, #8
strb r1, [r0, #0x12]
movs r1, #6
strb r1, [r0, #0x13]
ldr r0, [r4, #0x18]
movs r1, #4
movs r3, #0
bl FUN_0201B1E4
ldr r0, [r4, #0x18]
movs r1, #4
bl FUN_0201CAE0
movs r1, #0xe
add r0, sp, #8
strb r1, [r0, #0x12]
movs r1, #5
strb r1, [r0, #0x13]
ldr r0, [r4, #0x18]
add r2, sp, #8
movs r3, #0
bl FUN_0201B1E4
ldr r0, [r4, #0x18]
movs r1, #5
bl FUN_0201CAE0
movs r1, #0xd
add r0, sp, #8
strb r1, [r0, #0x12]
movs r1, #4
strb r1, [r0, #0x13]
ldr r0, [r4, #0x18]
movs r1, #6
add r2, sp, #8
movs r3, #0
bl FUN_0201B1E4
ldr r0, [r4, #0x18]
movs r1, #6
bl FUN_0201CAE0
movs r1, #0xc
add r0, sp, #8
strb r1, [r0, #0x12]
movs r1, #3
strb r1, [r0, #0x13]
ldr r0, [r4, #0x18]
movs r1, #7
add r2, sp, #8
movs r3, #0
bl FUN_0201B1E4
ldr r0, [r4, #0x18]
movs r1, #7
bl FUN_0201CAE0
movs r0, #7
movs r1, #3
bl FUN_0201BB68
movs r1, #7
ldr r2, [r4]
movs r0, #4
lsls r1, r1, #6
bl FUN_02003030
ldr r3, [r4]
movs r0, #4
movs r1, #0x20
movs r2, #0
bl FUN_0201C1C4
movs r0, #0
adds r1, r0, #0
bl FUN_0201BC28
movs r0, #1
movs r1, #0
bl FUN_0201BC28
movs r0, #2
movs r1, #0
bl FUN_0201BC28
movs r0, #3
movs r1, #0
bl FUN_0201BC28
movs r0, #4
movs r1, #0
bl FUN_0201BC28
movs r0, #5
movs r1, #0
bl FUN_0201BC28
movs r0, #6
movs r1, #0
bl FUN_0201BC28
movs r0, #7
movs r1, #0
bl FUN_0201BC28
adds r0, r4, #0
bl ov53_021E65E0
movs r0, #0x4a
movs r1, #0
lsls r0, r0, #2
str r1, [r4, r0]
add sp, #0x78
pop {r3, r4, r5, pc}
.align 2, 0
_021E5DC8: .4byte 0x021E8628
_021E5DCC: .4byte 0x021E8548
_021E5DD0: .4byte 0x021E85CC
_021E5DD4: .4byte 0x000003E2
_021E5DD8: .4byte 0x000003D9
_021E5DDC: .4byte 0x021E85E8
thumb_func_end ov53_021E5BDC
thumb_func_start ov53_021E5DE0
ov53_021E5DE0: @ 0x021E5DE0
push {r4, lr}
adds r4, r0, #0
movs r0, #0
adds r1, r0, #0
bl FUN_0201BC28
movs r0, #1
movs r1, #0
bl FUN_0201BC28
movs r0, #2
movs r1, #0
bl FUN_0201BC28
movs r0, #3
movs r1, #0
bl FUN_0201BC28
movs r0, #4
movs r1, #0
bl FUN_0201BC28
movs r0, #5
movs r1, #0
bl FUN_0201BC28
movs r0, #6
movs r1, #0
bl FUN_0201BC28
movs r0, #7
movs r1, #0
bl FUN_0201BC28
ldr r0, [r4, #0x18]
movs r1, #0
bl FUN_0201BB4C
ldr r0, [r4, #0x18]
movs r1, #1
bl FUN_0201BB4C
ldr r0, [r4, #0x18]
movs r1, #2
bl FUN_0201BB4C
ldr r0, [r4, #0x18]
movs r1, #3
bl FUN_0201BB4C
ldr r0, [r4, #0x18]
movs r1, #4
bl FUN_0201BB4C
ldr r0, [r4, #0x18]
movs r1, #5
bl FUN_0201BB4C
ldr r0, [r4, #0x18]
movs r1, #6
bl FUN_0201BB4C
ldr r0, [r4, #0x18]
movs r1, #7
bl FUN_0201BB4C
ldr r0, [r4, #0x18]
bl FUN_0201AB0C
pop {r4, pc}
thumb_func_end ov53_021E5DE0
thumb_func_start ov53_021E5E6C
ov53_021E5E6C: @ 0x021E5E6C
push {r4, lr}
adds r4, r0, #0
ldr r3, [r4]
movs r0, #1
movs r1, #0x1b
movs r2, #0xdb
bl FUN_0200BAF8
movs r1, #1
lsls r1, r1, #8
str r0, [r4, r1]
bl FUN_02020080
movs r0, #0
ldr r3, [r4]
adds r1, r0, #0
movs r2, #6
bl FUN_020163E0
movs r1, #0x45
lsls r1, r1, #2
str r0, [r4, r1]
ldr r0, [r4]
bl FUN_0200BD08
movs r1, #0x46
lsls r1, r1, #2
str r0, [r4, r1]
adds r0, r1, #0
movs r2, #0
subs r0, #0x14
str r2, [r4, r0]
subs r1, #0x10
str r2, [r4, r1]
adds r4, #0x80
str r2, [r4]
pop {r4, pc}
.align 2, 0
thumb_func_end ov53_021E5E6C
thumb_func_start ov53_021E5EB8
ov53_021E5EB8: @ 0x021E5EB8
push {r4, lr}
adds r4, r0, #0
movs r0, #0x46
lsls r0, r0, #2
ldr r0, [r4, r0]
bl FUN_0200BDA0
movs r0, #0x45
lsls r0, r0, #2
ldr r0, [r4, r0]
bl FUN_020164C4
movs r0, #1
lsls r0, r0, #8
ldr r0, [r4, r0]
bl FUN_0200BB44
pop {r4, pc}
thumb_func_end ov53_021E5EB8
thumb_func_start ov53_021E5EDC
ov53_021E5EDC: @ 0x021E5EDC
push {r3, r4, r5, r6, r7, lr}
adds r4, r1, #0
adds r3, r0, #0
adds r6, r2, #0
movs r7, #0
cmp r4, #0x65
bgt _021E5F0A
bge _021E5F32
cmp r4, #6
bhi _021E5F0E
adds r0, r4, r4
add r0, pc
ldrh r0, [r0, #6]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
add pc, r0
_021E5EFC: @ jump table
.2byte _021E5F0E - _021E5EFC - 2 @ case 0
.2byte _021E5F14 - _021E5EFC - 2 @ case 1
.2byte _021E5F1A - _021E5EFC - 2 @ case 2
.2byte _021E5F0E - _021E5EFC - 2 @ case 3
.2byte _021E5F20 - _021E5EFC - 2 @ case 4
.2byte _021E5F26 - _021E5EFC - 2 @ case 5
.2byte _021E5F2C - _021E5EFC - 2 @ case 6
_021E5F0A:
cmp r4, #0x66
beq _021E5F38
_021E5F0E:
movs r1, #1
movs r0, #0
b _021E5F3C
_021E5F14:
movs r1, #2
adds r0, r7, #0
b _021E5F3C
_021E5F1A:
movs r1, #4
adds r0, r7, #0
b _021E5F3C
_021E5F20:
movs r1, #1
adds r0, r1, #0
b _021E5F3C
_021E5F26:
movs r1, #2
movs r0, #1
b _021E5F3C
_021E5F2C:
movs r1, #4
movs r0, #1
b _021E5F3C
_021E5F32:
movs r1, #0x10
adds r0, r7, #0
b _021E5F3C
_021E5F38:
movs r1, #0x10
movs r0, #1
_021E5F3C:
movs r5, #0x4a
lsls r5, r5, #2
ldr r2, [r3, r5]
cmp r2, #3
bls _021E5F48
b _021E60BE
_021E5F48:
adds r2, r2, r2
add r2, pc
ldrh r2, [r2, #6]
lsls r2, r2, #0x10
asrs r2, r2, #0x10
add pc, r2
_021E5F54: @ jump table
.2byte _021E5F5C - _021E5F54 - 2 @ case 0
.2byte _021E5FDC - _021E5F54 - 2 @ case 1
.2byte _021E6034 - _021E5F54 - 2 @ case 2
.2byte _021E60B0 - _021E5F54 - 2 @ case 3
_021E5F5C:
cmp r6, #0
bne _021E5FC8
movs r6, #0
adds r2, r5, #4
str r6, [r3, r2]
adds r2, r5, #0
movs r6, #0x10
adds r2, #8
str r6, [r3, r2]
movs r2, #1
str r2, [r3, r5]
cmp r0, #0
bne _021E5F8C
adds r0, r5, #0
adds r0, #8
ldr r0, [r3, r0]
adds r5, r5, #4
str r0, [sp]
ldr r0, _021E60C4 @ =0x04000050
ldr r3, [r3, r5]
movs r2, #0xe
blx FUN_020CF15C
b _021E5FA0
_021E5F8C:
adds r0, r5, #0
adds r0, #8
ldr r0, [r3, r0]
adds r5, r5, #4
str r0, [sp]
ldr r0, _021E60C8 @ =0x04001050
ldr r3, [r3, r5]
movs r2, #0xe
blx FUN_020CF15C
_021E5FA0:
cmp r4, #0x65
bne _021E5FAE
movs r0, #0x10
movs r1, #1
bl FUN_02022C60
b _021E60BE
_021E5FAE:
cmp r4, #0x66
bne _021E5FBC
movs r0, #0x10
movs r1, #1
bl FUN_02022CC8
b _021E60BE
_021E5FBC:
lsls r0, r4, #0x18
lsrs r0, r0, #0x18
movs r1, #1
bl FUN_0201BC28
b _021E60BE
_021E5FC8:
movs r1, #0x10
adds r0, r5, #4
str r1, [r3, r0]
adds r0, r5, #0
movs r1, #0
adds r0, #8
str r1, [r3, r0]
movs r0, #2
str r0, [r3, r5]
b _021E60BE
_021E5FDC:
adds r2, r5, #0
adds r2, #8
ldr r2, [r3, r2]
cmp r2, #0
beq _021E602E
adds r2, r5, #4
ldr r2, [r3, r2]
adds r4, r2, #1
adds r2, r5, #4
str r4, [r3, r2]
adds r2, r5, #0
adds r2, #8
ldr r2, [r3, r2]
subs r4, r2, #1
adds r2, r5, #0
adds r2, #8
str r4, [r3, r2]
cmp r0, #0
bne _021E6018
adds r0, r5, #0
adds r0, #8
ldr r0, [r3, r0]
adds r4, r5, #4
str r0, [sp]
ldr r0, _021E60C4 @ =0x04000050
ldr r3, [r3, r4]
movs r2, #0xe
blx FUN_020CF15C
b _021E60BE
_021E6018:
adds r0, r5, #0
adds r0, #8
ldr r0, [r3, r0]
adds r4, r5, #4
str r0, [sp]
ldr r0, _021E60C8 @ =0x04001050
ldr r3, [r3, r4]
movs r2, #0xe
blx FUN_020CF15C
b _021E60BE
_021E602E:
movs r0, #3
str r0, [r3, r5]
b _021E60BE
_021E6034:
adds r2, r5, #4
ldr r2, [r3, r2]
cmp r2, #0
beq _021E6084
adds r2, r5, #4
ldr r2, [r3, r2]
subs r4, r2, #1
adds r2, r5, #4
str r4, [r3, r2]
adds r2, r5, #0
adds r2, #8
ldr r2, [r3, r2]
adds r4, r2, #1
adds r2, r5, #0
adds r2, #8
str r4, [r3, r2]
cmp r0, #0
bne _021E606E
adds r0, r5, #0
adds r0, #8
ldr r0, [r3, r0]
adds r4, r5, #4
str r0, [sp]
ldr r0, _021E60C4 @ =0x04000050
ldr r3, [r3, r4]
movs r2, #0xe
blx FUN_020CF15C
b _021E60BE
_021E606E:
adds r0, r5, #0
adds r0, #8
ldr r0, [r3, r0]
adds r4, r5, #4
str r0, [sp]
ldr r0, _021E60C8 @ =0x04001050
ldr r3, [r3, r4]
movs r2, #0xe
blx FUN_020CF15C
b _021E60BE
_021E6084:
movs r0, #3
str r0, [r3, r5]
cmp r4, #0x65
bne _021E6096
movs r0, #0x10
movs r1, #0
bl FUN_02022C60
b _021E60BE
_021E6096:
cmp r4, #0x66
bne _021E60A4
movs r0, #0x10
movs r1, #0
bl FUN_02022CC8
b _021E60BE
_021E60A4:
lsls r0, r4, #0x18
lsrs r0, r0, #0x18
movs r1, #0
bl FUN_0201BC28
b _021E60BE
_021E60B0:
ldr r0, _021E60C4 @ =0x04000050
movs r1, #0
strh r1, [r0]
ldr r0, _021E60C8 @ =0x04001050
movs r7, #1
strh r1, [r0]
str r1, [r3, r5]
_021E60BE:
adds r0, r7, #0
pop {r3, r4, r5, r6, r7, pc}
nop
_021E60C4: .4byte 0x04000050
_021E60C8: .4byte 0x04001050
thumb_func_end ov53_021E5EDC
thumb_func_start ov53_021E60CC
ov53_021E60CC: @ 0x021E60CC
movs r2, #0x4f
lsls r2, r2, #2
ldr r3, [r0, r2]
cmp r3, r1
bge _021E60DE
adds r1, r3, #1
str r1, [r0, r2]
movs r0, #0
bx lr
_021E60DE:
movs r1, #0
str r1, [r0, r2]
movs r0, #1
bx lr
.align 2, 0
thumb_func_end ov53_021E60CC
thumb_func_start ov53_021E60E8
ov53_021E60E8: @ 0x021E60E8
push {r4, r5, lr}
sub sp, #0xc
adds r5, r0, #0
movs r0, #0x20
str r0, [sp]
movs r0, #0x18
str r0, [sp, #4]
lsls r0, r2, #0x18
adds r4, r1, #0
lsrs r0, r0, #0x18
str r0, [sp, #8]
lsls r1, r4, #0x18
movs r2, #0
ldr r0, [r5, #0x18]
lsrs r1, r1, #0x18
adds r3, r2, #0
bl FUN_0201CA4C
lsls r1, r4, #0x18
ldr r0, [r5, #0x18]
lsrs r1, r1, #0x18
bl FUN_0201BF7C
add sp, #0xc
pop {r4, r5, pc}
.align 2, 0
thumb_func_end ov53_021E60E8
thumb_func_start ov53_021E611C
ov53_021E611C: @ 0x021E611C
push {r4, r5, r6, r7, lr}
sub sp, #0xc
adds r7, r1, #0
movs r1, #0x41
adds r5, r0, #0
lsls r1, r1, #2
ldr r0, [r5, r1]
movs r4, #0
cmp r0, #0
beq _021E613C
cmp r0, #1
beq _021E621C
cmp r0, #2
bne _021E613A
b _021E6240
_021E613A:
b _021E6274
_021E613C:
adds r1, r5, #0
ldr r0, [r5, #0x18]
ldr r2, _021E627C @ =0x021E8500
adds r1, #0x2c
bl FUN_0201D4F8
movs r0, #0xd8
str r0, [sp]
movs r0, #0x20
str r0, [sp, #4]
adds r0, r5, #0
adds r2, r4, #0
adds r0, #0x2c
movs r1, #0xf
adds r3, r2, #0
bl FUN_0201DA74
adds r0, r5, #0
ldr r2, _021E6280 @ =0x000003E2
adds r0, #0x2c
adds r1, r4, #0
movs r3, #4
bl FUN_0200E998
movs r0, #1
bl FUN_02002B34
adds r0, r4, #0
bl FUN_02002B50
movs r0, #1
ldr r1, [r5]
lsls r0, r0, #0xa
bl FUN_02026354
adds r6, r0, #0
movs r0, #1
ldr r1, [r5]
lsls r0, r0, #0xa
bl FUN_02026354
movs r1, #0x11
lsls r1, r1, #4
str r0, [r5, r1]
subs r1, #0x10
ldr r0, [r5, r1]
adds r1, r7, #0
adds r2, r6, #0
bl FUN_0200BB6C
movs r3, #0x46
movs r0, #1
lsls r3, r3, #2
str r0, [sp]
movs r0, #2
adds r2, r3, #0
str r0, [sp, #4]
adds r2, #8
ldr r0, [r5, r3]
ldr r2, [r5, r2]
adds r3, #0x1c
ldrh r3, [r5, r3]
ldr r2, [r2, #0x18]
adds r1, r4, #0
bl FUN_0200BE3C
movs r1, #1
movs r2, #0x46
str r1, [sp]
movs r0, #2
lsls r2, r2, #2
str r0, [sp, #4]
ldr r0, [r5, r2]
adds r2, #0xc
ldr r2, [r5, r2]
adds r3, r4, #0
ldr r2, [r2, #0x18]
bl FUN_0200BE3C
movs r1, #0x46
lsls r1, r1, #2
ldr r0, [r5, r1]
subs r1, #8
ldr r1, [r5, r1]
adds r2, r6, #0
bl FUN_0200CBBC
adds r0, r6, #0
bl FUN_02026380
ldr r0, [r5, #8]
bl FUN_0202AD3C
adds r3, r4, #0
str r3, [sp]
str r0, [sp, #4]
movs r2, #0x11
adds r0, r5, #0
str r3, [sp, #8]
lsls r2, r2, #4
ldr r2, [r5, r2]
adds r0, #0x2c
movs r1, #1
bl FUN_020200A8
movs r1, #0x43
lsls r1, r1, #2
str r0, [r5, r1]
movs r0, #1
subs r1, #8
str r0, [r5, r1]
b _021E6274
_021E621C:
adds r1, #8
ldr r0, [r5, r1]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
bl FUN_02020094
cmp r0, #0
bne _021E6274
movs r0, #0x11
lsls r0, r0, #4
ldr r0, [r5, r0]
bl FUN_02026380
movs r0, #0x41
movs r1, #2
lsls r0, r0, #2
str r1, [r5, r0]
b _021E6274
_021E6240:
cmp r2, #0
bne _021E625E
ldr r0, _021E6284 @ =0x021D110C
ldr r2, [r0, #0x48]
movs r0, #1
ands r0, r2
cmp r0, #1
bne _021E6260
ldr r0, _021E6288 @ =0x000005DC
adds r1, #0x68
str r4, [r5, r1]
bl FUN_0200604C
movs r4, #1
b _021E6260
_021E625E:
movs r4, #1
_021E6260:
cmp r4, #0
beq _021E6274
adds r0, r5, #0
adds r0, #0x2c
bl FUN_0201D520
movs r0, #0x41
movs r1, #0
lsls r0, r0, #2
str r1, [r5, r0]
_021E6274:
adds r0, r4, #0
add sp, #0xc
pop {r4, r5, r6, r7, pc}
nop
_021E627C: .4byte 0x021E8500
_021E6280: .4byte 0x000003E2
_021E6284: .4byte 0x021D110C
_021E6288: .4byte 0x000005DC
thumb_func_end ov53_021E611C
thumb_func_start ov53_021E628C
ov53_021E628C: @ 0x021E628C
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x20
str r1, [sp, #0x10]
movs r1, #0
str r1, [sp, #0x14]
movs r1, #0x42
adds r4, r0, #0
lsls r1, r1, #2
ldr r1, [r4, r1]
adds r5, r2, #0
adds r7, r3, #0
ldr r6, [sp, #0x38]
cmp r1, #5
bls _021E62AA
b _021E6490
_021E62AA:
adds r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsls r1, r1, #0x10
asrs r1, r1, #0x10
add pc, r1
_021E62B6: @ jump table
.2byte _021E62C2 - _021E62B6 - 2 @ case 0
.2byte _021E63F6 - _021E62B6 - 2 @ case 1
.2byte _021E6406 - _021E62B6 - 2 @ case 2
.2byte _021E6428 - _021E62B6 - 2 @ case 3
.2byte _021E6460 - _021E62B6 - 2 @ case 4
.2byte _021E6476 - _021E62B6 - 2 @ case 5
_021E62C2:
ldr r0, [sp, #0x14]
adds r1, r0, #0
bl FUN_0201BC28
movs r0, #1
ldr r1, [r4]
lsls r0, r0, #0xa
bl FUN_02026354
movs r2, #0x11
lsls r2, r2, #4
str r0, [r4, r2]
adds r0, r2, #0
subs r0, #0x10
ldr r0, [r4, r0]
ldr r1, [sp, #0x10]
ldr r2, [r4, r2]
bl FUN_0200BB6C
ldr r0, _021E6498 @ =0x0000FFFF
cmp r7, r0
bne _021E6304
movs r0, #0x11
lsls r0, r0, #4
ldr r0, [r4, r0]
bl FUN_02026820
lsls r1, r0, #1
movs r0, #0x18
subs r1, r0, r1
lsrs r0, r1, #0x1f
adds r0, r1, r0
asrs r7, r0, #1
_021E6304:
ldr r0, _021E6498 @ =0x0000FFFF
cmp r6, r0
bne _021E6316
movs r0, #0x11
lsls r0, r0, #4
ldr r0, [r4, r0]
bl FUN_02026820
lsls r6, r0, #1
_021E6316:
cmp r5, #3
bhi _021E63E2
adds r0, r5, r5
add r0, pc
ldrh r0, [r0, #6]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
add pc, r0
_021E6326: @ jump table
.2byte _021E6384 - _021E6326 - 2 @ case 0
.2byte _021E632E - _021E6326 - 2 @ case 1
.2byte _021E6384 - _021E6326 - 2 @ case 2
.2byte _021E6384 - _021E6326 - 2 @ case 3
_021E632E:
ldr r1, _021E649C @ =_021E84F8
add r0, sp, #0x18
ldrh r3, [r1, #0x28]
add r2, sp, #0x18
strh r3, [r0]
ldrh r3, [r1, #0x2a]
strh r3, [r0, #2]
ldrh r3, [r1, #0x2c]
ldrh r1, [r1, #0x2e]
strh r3, [r0, #4]
strh r1, [r0, #6]
strb r7, [r0, #2]
strb r6, [r0, #4]
adds r1, r4, #0
ldr r0, [r4, #0x18]
adds r1, #0x1c
bl FUN_0201D4F8
movs r1, #0
movs r0, #0xc0
str r0, [sp]
str r0, [sp, #4]
adds r0, r4, #0
adds r0, #0x1c
adds r2, r1, #0
adds r3, r1, #0
bl FUN_0201DA74
movs r1, #0
str r1, [sp]
movs r2, #0x11
ldr r0, _021E64A0 @ =0x00010200
str r1, [sp, #4]
str r0, [sp, #8]
adds r0, r4, #0
str r1, [sp, #0xc]
lsls r2, r2, #4
ldr r2, [r4, r2]
adds r0, #0x1c
adds r3, r1, #0
bl FUN_020200FC
b _021E63E2
_021E6384:
ldr r1, _021E649C @ =_021E84F8
add r0, sp, #0x18
ldrh r2, [r1, #0x30]
cmp r5, #3
strh r2, [r0]
ldrh r2, [r1, #0x32]
strh r2, [r0, #2]
ldrh r2, [r1, #0x34]
ldrh r1, [r1, #0x36]
strh r2, [r0, #4]
strh r1, [r0, #6]
strb r7, [r0, #2]
strb r6, [r0, #4]
bne _021E63A6
ldrb r1, [r0, #1]
adds r1, r1, #4
strb r1, [r0, #1]
_021E63A6:
adds r1, r4, #0
ldr r0, [r4, #0x18]
adds r1, #0x1c
add r2, sp, #0x18
bl FUN_0201D4F8
movs r1, #0
movs r0, #0xc0
str r0, [sp]
str r0, [sp, #4]
adds r0, r4, #0
adds r0, #0x1c
adds r2, r1, #0
adds r3, r1, #0
bl FUN_0201DA74
movs r1, #0
str r1, [sp]
movs r2, #0x11
ldr r0, _021E64A4 @ =0x000F0200
str r1, [sp, #4]
str r0, [sp, #8]
adds r0, r4, #0
str r1, [sp, #0xc]
lsls r2, r2, #4
ldr r2, [r4, r2]
adds r0, #0x1c
adds r3, r1, #0
bl FUN_020200FC
_021E63E2:
movs r0, #0x11
lsls r0, r0, #4
ldr r0, [r4, r0]
bl FUN_02026380
movs r0, #0x42
movs r1, #1
lsls r0, r0, #2
str r1, [r4, r0]
b _021E6490
_021E63F6:
adds r0, #0x1c
bl FUN_0201D578
movs r0, #0x42
movs r1, #2
lsls r0, r0, #2
str r1, [r4, r0]
b _021E6490
_021E6406:
ldr r1, [sp, #0x14]
adds r2, r1, #0
bl ov53_021E5EDC
cmp r0, #1
bne _021E6490
movs r0, #0x42
movs r1, #3
lsls r0, r0, #2
str r1, [r4, r0]
cmp r5, #2
bne _021E6490
movs r1, #4
str r1, [r4, r0]
movs r0, #1
str r0, [sp, #0x14]
b _021E6490
_021E6428:
ldr r0, _021E64A8 @ =0x021D110C
ldr r1, [r0, #0x48]
movs r0, #1
ands r0, r1
cmp r0, #1
beq _021E643C
movs r0, #2
ands r0, r1
cmp r0, #2
bne _021E6490
_021E643C:
ldr r0, _021E64AC @ =0x021D114C
ldrh r0, [r0, #0x24]
cmp r0, #0
beq _021E6448
movs r1, #1
b _021E644A
_021E6448:
movs r1, #0
_021E644A:
movs r0, #0x5b
lsls r0, r0, #2
str r1, [r4, r0]
ldr r0, _021E64B0 @ =0x000005DC
bl FUN_0200604C
movs r0, #0x42
movs r1, #4
lsls r0, r0, #2
str r1, [r4, r0]
b _021E6490
_021E6460:
ldr r1, [sp, #0x14]
movs r2, #1
bl ov53_021E5EDC
cmp r0, #1
bne _021E6490
movs r0, #0x42
movs r1, #5
lsls r0, r0, #2
str r1, [r4, r0]
b _021E6490
_021E6476:
adds r0, #0x1c
bl FUN_0201D520
ldr r0, [r4, #0x18]
movs r1, #0
bl FUN_0201CAE0
movs r0, #0x42
movs r1, #0
lsls r0, r0, #2
str r1, [r4, r0]
movs r0, #1
str r0, [sp, #0x14]
_021E6490:
ldr r0, [sp, #0x14]
add sp, #0x20
pop {r3, r4, r5, r6, r7, pc}
nop
_021E6498: .4byte 0x0000FFFF
_021E649C: .4byte _021E84F8
_021E64A0: .4byte 0x00010200
_021E64A4: .4byte 0x000F0200
_021E64A8: .4byte 0x021D110C
_021E64AC: .4byte 0x021D114C
_021E64B0: .4byte 0x000005DC
thumb_func_end ov53_021E628C
thumb_func_start ov53_021E64B4
ov53_021E64B4: @ 0x021E64B4
push {r3, lr}
ldr r3, _021E64C0 @ =0x0000FFFF
str r3, [sp]
bl ov53_021E628C
pop {r3, pc}
.align 2, 0
_021E64C0: .4byte 0x0000FFFF
thumb_func_end ov53_021E64B4
thumb_func_start ov53_021E64C4
ov53_021E64C4: @ 0x021E64C4
push {r4, r5, r6, r7, lr}
sub sp, #0x34
adds r7, r0, #0
ldr r0, [sp, #0x48]
str r1, [sp, #0x28]
str r2, [sp, #0x2c]
str r3, [sp, #0x30]
str r0, [sp, #0x48]
str r0, [r7, #0x7c]
cmp r0, #2
bne _021E64DE
movs r0, #4
str r0, [sp, #0x10]
_021E64DE:
ldr r0, [sp, #0x48]
cmp r0, #3
bne _021E64E8
movs r0, #8
str r0, [sp, #0x10]
_021E64E8:
movs r0, #0
str r0, [sp, #0x1c]
ldr r0, [sp, #0x48]
cmp r0, #0
ble _021E65A6
add r0, sp, #0x28
str r0, [sp, #0x24]
ldr r0, [sp, #0x48]
adds r4, r7, #0
subs r1, r0, #2
movs r0, #0x18
adds r2, r1, #0
muls r2, r0, r2
ldr r0, _021E65AC @ =0x021E8680
adds r4, #0x3c
adds r0, r0, r2
str r0, [sp, #0x18]
str r0, [sp, #0x14]
_021E650C:
movs r0, #1
ldr r1, [r7]
lsls r0, r0, #0xa
bl FUN_02026354
adds r6, r0, #0
movs r0, #1
ldr r1, [sp, #0x24]
lsls r0, r0, #8
ldr r0, [r7, r0]
ldr r1, [r1]
adds r2, r6, #0
bl FUN_0200BB6C
movs r0, #0
adds r1, r6, #0
adds r2, r0, #0
bl FUN_02002F30
str r0, [sp, #0x20]
ldr r0, [r7, #0x18]
ldr r2, [sp, #0x18]
adds r1, r4, #0
bl FUN_0201D4F8
movs r1, #0
movs r0, #0xc0
str r0, [sp]
str r0, [sp, #4]
adds r0, r4, #0
adds r2, r1, #0
adds r3, r1, #0
bl FUN_0201DA74
ldr r0, [sp, #0x10]
ldr r3, [sp, #0x14]
str r0, [sp]
movs r0, #0
str r0, [sp, #4]
ldr r0, _021E65B0 @ =0x000F0100
movs r1, #4
str r0, [sp, #8]
movs r0, #0
str r0, [sp, #0xc]
ldrb r3, [r3, #3]
adds r0, r4, #0
adds r2, r6, #0
lsls r5, r3, #3
ldr r3, [sp, #0x20]
subs r5, r5, r3
lsrs r3, r5, #0x1f
adds r3, r5, r3
asrs r3, r3, #1
bl FUN_020200FC
adds r0, r4, #0
bl FUN_0201D578
adds r0, r6, #0
bl FUN_02026380
ldr r0, [sp, #0x24]
adds r4, #0x10
adds r0, r0, #4
str r0, [sp, #0x24]
ldr r0, [sp, #0x18]
adds r0, #8
str r0, [sp, #0x18]
ldr r0, [sp, #0x14]
adds r0, #8
str r0, [sp, #0x14]
ldr r0, [sp, #0x1c]
adds r1, r0, #1
ldr r0, [sp, #0x48]
str r1, [sp, #0x1c]
cmp r1, r0
blt _021E650C
_021E65A6:
add sp, #0x34
pop {r4, r5, r6, r7, pc}
nop
_021E65AC: .4byte 0x021E8680
_021E65B0: .4byte 0x000F0100
thumb_func_end ov53_021E64C4
thumb_func_start ov53_021E65B4
ov53_021E65B4: @ 0x021E65B4
push {r4, r5, r6, lr}
adds r6, r0, #0
ldr r0, [r6, #0x7c]
movs r4, #0
cmp r0, #0
ble _021E65D4
adds r5, r6, #0
adds r5, #0x3c
_021E65C4:
adds r0, r5, #0
bl FUN_0201D520
ldr r0, [r6, #0x7c]
adds r4, r4, #1
adds r5, #0x10
cmp r4, r0
blt _021E65C4
_021E65D4:
ldr r0, [r6, #0x18]
movs r1, #0
bl FUN_0201CAE0
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_end ov53_021E65B4
thumb_func_start ov53_021E65E0
ov53_021E65E0: @ 0x021E65E0
push {r4, r5, lr}
sub sp, #0x14
movs r1, #0
str r1, [sp]
str r1, [sp, #4]
adds r5, r0, #0
str r1, [sp, #8]
ldr r0, [r5]
movs r3, #3
str r0, [sp, #0xc]
ldr r2, [r5, #0x18]
movs r0, #0x78
bl FUN_020078F0
movs r0, #0
ldr r3, [r5]
movs r1, #0x20
adds r2, r0, #0
bl FUN_0201C1C4
movs r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
ldr r0, [r5]
movs r1, #0x20
str r0, [sp, #0xc]
ldr r2, [r5, #0x18]
movs r0, #0x78
movs r3, #7
bl FUN_020078F0
ldr r0, _021E66A0 @ =0x020F566C
ldrb r0, [r0]
cmp r0, #7
bne _021E662E
movs r1, #1
movs r4, #0x1e
b _021E6632
_021E662E:
movs r1, #2
movs r4, #0x1f
_021E6632:
movs r0, #0x60
str r0, [sp]
ldr r0, [r5]
movs r2, #0
str r0, [sp, #4]
movs r0, #0x78
adds r3, r2, #0
bl FUN_02007938
movs r0, #0xa0
str r0, [sp]
ldr r0, [r5]
adds r1, r4, #0
str r0, [sp, #4]
movs r0, #0x78
movs r2, #4
movs r3, #0
bl FUN_02007938
ldr r3, [r5]
movs r0, #0x78
adds r1, r4, #0
add r2, sp, #0x10
bl FUN_020079F4
ldr r1, [sp, #0x10]
ldr r1, [r1, #0xc]
ldrh r2, [r1, #0x18]
ldr r1, _021E66A4 @ =0x00000136
strh r2, [r5, r1]
bl FUN_0201AB0C
adds r0, r5, #0
movs r1, #1
bl ov53_021E66A8
movs r1, #0
adds r0, r5, #0
adds r2, r1, #0
bl ov53_021E66E8
adds r0, r5, #0
movs r1, #0
bl ov53_021E67C4
movs r0, #0
adds r1, r0, #0
bl FUN_0201C2D8
movs r0, #4
movs r1, #0
bl FUN_0201C2D8
add sp, #0x14
pop {r4, r5, pc}
.align 2, 0
_021E66A0: .4byte 0x020F566C
_021E66A4: .4byte 0x00000136
thumb_func_end ov53_021E65E0
thumb_func_start ov53_021E66A8
ov53_021E66A8: @ 0x021E66A8
push {r4, r5, r6, lr}
sub sp, #0x28
ldr r6, _021E66E4 @ =0x021E856C
add r5, sp, #0x10
adds r4, r0, #0
adds r3, r1, #0
adds r2, r5, #0
ldm r6!, {r0, r1}
stm r5!, {r0, r1}
ldm r6!, {r0, r1}
stm r5!, {r0, r1}
ldm r6!, {r0, r1}
stm r5!, {r0, r1}
cmp r3, #6
bge _021E66E0
movs r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
ldr r0, [r4]
lsls r1, r3, #2
str r0, [sp, #0xc]
ldr r1, [r2, r1]
ldr r2, [r4, #0x18]
movs r0, #0x78
movs r3, #3
bl FUN_02007914
_021E66E0:
add sp, #0x28
pop {r4, r5, r6, pc}
.align 2, 0
_021E66E4: .4byte 0x021E856C
thumb_func_end ov53_021E66A8
thumb_func_start ov53_021E66E8
ov53_021E66E8: @ 0x021E66E8
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x60
ldr r6, _021E67C0 @ =0x021E86F0
adds r4, r2, #0
adds r5, r0, #0
adds r7, r1, #0
add r3, sp, #0x10
movs r2, #0xa
_021E66F8:
ldm r6!, {r0, r1}
stm r3!, {r0, r1}
subs r2, r2, #1
bne _021E66F8
cmp r7, #0
beq _021E675C
cmp r4, #0xc
bge _021E675C
movs r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
ldr r0, [r5]
lsls r6, r7, #3
str r0, [sp, #0xc]
add r1, sp, #0x10
ldr r1, [r1, r6]
ldr r2, [r5, #0x18]
movs r0, #0x78
movs r3, #1
bl FUN_020078F0
movs r0, #0x20
str r0, [sp]
ldr r0, [r5]
add r1, sp, #0x14
str r0, [sp, #4]
ldr r1, [r1, r6]
movs r0, #0x78
movs r2, #0
movs r3, #0xe0
bl FUN_02007938
movs r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
ldr r0, [r5]
movs r1, #9
str r0, [sp, #0xc]
ldr r2, [r5, #0x18]
movs r0, #0x78
movs r3, #1
bl FUN_02007914
adds r0, r5, #0
movs r1, #1
movs r2, #7
bl ov53_021E60E8
_021E675C:
cmp r4, #0
beq _021E67BA
cmp r4, #0xc
bge _021E67BA
movs r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
ldr r0, [r5]
lsls r4, r4, #3
str r0, [sp, #0xc]
add r1, sp, #0x10
ldr r1, [r1, r4]
ldr r2, [r5, #0x18]
movs r0, #0x78
movs r3, #2
bl FUN_020078F0
movs r0, #0x20
str r0, [sp]
ldr r0, [r5]
add r1, sp, #0x14
str r0, [sp, #4]
movs r0, #0x78
adds r3, r0, #0
ldr r1, [r1, r4]
movs r2, #0
adds r3, #0x88
bl FUN_02007938
movs r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
ldr r0, [r5]
movs r1, #9
str r0, [sp, #0xc]
ldr r2, [r5, #0x18]
movs r0, #0x78
movs r3, #2
bl FUN_02007914
adds r0, r5, #0
movs r1, #2
movs r2, #8
bl ov53_021E60E8
_021E67BA:
add sp, #0x60
pop {r3, r4, r5, r6, r7, pc}
nop
_021E67C0: .4byte 0x021E86F0
thumb_func_end ov53_021E66E8
thumb_func_start ov53_021E67C4
ov53_021E67C4: @ 0x021E67C4
push {r3, r4, r5, r6, lr}
sub sp, #0x24
ldr r6, _021E6820 @ =0x021E8558
add r3, sp, #0x10
adds r5, r0, #0
adds r4, r1, #0
adds r2, r3, #0
ldm r6!, {r0, r1}
stm r3!, {r0, r1}
ldm r6!, {r0, r1}
stm r3!, {r0, r1}
ldr r0, [r6]
cmp r4, #5
str r0, [r3]
bge _021E681C
movs r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
ldr r0, [r5]
lsls r1, r4, #2
str r0, [sp, #0xc]
ldr r1, [r2, r1]
ldr r2, [r5, #0x18]
movs r0, #0x78
movs r3, #7
bl FUN_02007914
cmp r4, #1
bne _021E680E
adds r0, r5, #0
movs r1, #7
movs r2, #3
bl ov53_021E60E8
add sp, #0x24
pop {r3, r4, r5, r6, pc}
_021E680E:
cmp r4, #2
bne _021E681C
adds r0, r5, #0
movs r1, #7
movs r2, #2
bl ov53_021E60E8
_021E681C:
add sp, #0x24
pop {r3, r4, r5, r6, pc}
.align 2, 0
_021E6820: .4byte 0x021E8558
thumb_func_end ov53_021E67C4
thumb_func_start ov53_021E6824
ov53_021E6824: @ 0x021E6824
push {r4, r5, r6, lr}
sub sp, #0x28
ldr r4, _021E6904 @ =0x021E8584
add r3, sp, #0x10
adds r5, r0, #0
adds r6, r1, #0
adds r2, r3, #0
ldm r4!, {r0, r1}
stm r3!, {r0, r1}
ldm r4!, {r0, r1}
stm r3!, {r0, r1}
ldm r4!, {r0, r1}
stm r3!, {r0, r1}
movs r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
ldr r0, [r5]
lsls r4, r6, #3
str r0, [sp, #0xc]
ldr r1, [r2, r4]
ldr r2, [r5, #0x18]
movs r0, #0x78
movs r3, #6
bl FUN_02007914
adds r0, r5, #0
movs r1, #6
movs r2, #7
bl ov53_021E60E8
movs r0, #0x60
str r0, [sp]
ldr r0, [r5]
movs r1, #0x21
str r0, [sp, #4]
movs r0, #0x78
movs r2, #4
movs r3, #0xe0
bl FUN_02007938
ldr r3, [r5]
movs r0, #6
movs r1, #0x20
movs r2, #0
bl FUN_0201C1C4
movs r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
ldr r0, [r5]
add r1, sp, #0x14
str r0, [sp, #0xc]
ldr r1, [r1, r4]
ldr r2, [r5, #0x18]
movs r0, #0x78
movs r3, #6
bl FUN_020078F0
ldr r0, [r5, #0x18]
movs r1, #5
movs r2, #3
movs r3, #0
bl FUN_0201F238
cmp r6, #1
bne _021E6900
movs r0, #0x4d
lsls r0, r0, #2
ldrh r0, [r5, r0]
cmp r0, #0
ldr r0, [r5, #0x18]
bne _021E68DE
movs r1, #4
movs r2, #0
movs r3, #0x88
bl FUN_0201F238
ldr r0, [r5, #0x18]
movs r1, #6
movs r2, #0
movs r3, #0x88
bl FUN_0201F238
ldr r0, [r5, #0x18]
movs r1, #5
movs r2, #0
movs r3, #0x88
bl FUN_0201F238
add sp, #0x28
pop {r4, r5, r6, pc}
_021E68DE:
movs r2, #0
movs r1, #4
adds r3, r2, #0
bl FUN_0201F238
movs r2, #0
ldr r0, [r5, #0x18]
movs r1, #6
adds r3, r2, #0
bl FUN_0201F238
movs r2, #0
ldr r0, [r5, #0x18]
movs r1, #5
adds r3, r2, #0
bl FUN_0201F238
_021E6900:
add sp, #0x28
pop {r4, r5, r6, pc}
.align 2, 0
_021E6904: .4byte 0x021E8584
thumb_func_end ov53_021E6824
thumb_func_start ov53_021E6908
ov53_021E6908: @ 0x021E6908
lsls r2, r1, #4
ldr r1, _021E6924 @ =0x021E86B4
movs r3, #0
strb r3, [r0, #3]
ldr r1, [r1, r2]
strb r3, [r0]
strb r1, [r0, #1]
strb r3, [r0, #6]
strb r3, [r0, #4]
movs r1, #0x10
strb r1, [r0, #5]
strb r3, [r0, #2]
bx lr
nop
_021E6924: .4byte 0x021E86B4
thumb_func_end ov53_021E6908
thumb_func_start ov53_021E6928
ov53_021E6928: @ 0x021E6928
push {r3, r4, r5, lr}
sub sp, #0x10
ldr r3, _021E6980 @ =0x021E86B4
movs r2, #0x16
lsls r1, r1, #4
adds r4, r0, #0
movs r0, #0
lsls r2, r2, #4
ldr r5, [r3, r1]
strb r0, [r4, r2]
adds r3, r2, #1
strb r5, [r4, r3]
adds r3, r2, #4
strb r0, [r4, r3]
movs r3, #0x10
adds r2, r2, #5
strb r3, [r4, r2]
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
ldr r0, [r4]
ldr r2, _021E6984 @ =0x021E86B0
str r0, [sp, #0xc]
ldr r1, [r2, r1]
ldr r2, [r4, #0x18]
movs r0, #0x78
movs r3, #5
bl FUN_02007914
movs r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
ldr r0, [r4]
movs r1, #0x2a
str r0, [sp, #0xc]
ldr r2, [r4, #0x18]
movs r0, #0x78
movs r3, #5
bl FUN_020078F0
add sp, #0x10
pop {r3, r4, r5, pc}
nop
_021E6980: .4byte 0x021E86B4
_021E6984: .4byte 0x021E86B0
thumb_func_end ov53_021E6928
thumb_func_start ov53_021E6988
ov53_021E6988: @ 0x021E6988
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x30
movs r7, #0
adds r4, r1, #0
ldr r3, _021E6B80 @ =0x021E8650
adds r5, r0, #0
mvns r7, r7
add r2, sp, #0
movs r1, #0x30
_021E699A:
ldrb r0, [r3]
adds r3, r3, #1
strb r0, [r2]
adds r2, r2, #1
subs r1, r1, #1
bne _021E699A
ldr r6, _021E6B84 @ =0x00000166
ldrb r0, [r5, r6]
cmp r0, #0
beq _021E69C2
adds r0, r0, #1
strb r0, [r5, r6]
ldrb r0, [r5, r6]
cmp r0, #0x14
bls _021E69DE
movs r0, #0
strb r0, [r5, r6]
subs r0, r6, #3
ldrb r7, [r5, r0]
b _021E6B30
_021E69C2:
ldr r0, _021E6B88 @ =0x021D114C
ldrh r0, [r0, #0x24]
cmp r0, #0
beq _021E6A22
add r1, sp, #0
lsls r0, r4, #4
adds r0, r1, r0
bl FUN_02025224
adds r6, r0, #0
movs r0, #0
mvns r0, r0
cmp r6, r0
bne _021E69E0
_021E69DE:
b _021E6B30
_021E69E0:
adds r0, r5, #0
adds r1, r4, #0
bl ov53_021E6928
movs r0, #5
movs r1, #1
bl FUN_0201BC28
ldr r0, _021E6B8C @ =0x00000163
movs r3, #0xc
strb r6, [r5, r0]
muls r3, r4, r3
ldr r4, _021E6B8C @ =0x00000163
ldr r6, _021E6B90 @ =0x021E8604
ldrb r4, [r5, r4]
adds r3, r6, r3
ldr r0, [r5, #0x18]
lsls r4, r4, #2
ldr r3, [r4, r3]
movs r1, #5
movs r2, #3
bl FUN_0201F238
ldr r0, _021E6B84 @ =0x00000166
movs r1, #1
strb r1, [r5, r0]
movs r1, #2
subs r0, r0, #1
strb r1, [r5, r0]
ldr r0, _021E6B94 @ =0x000005DC
bl FUN_0200604C
b _021E6B30
_021E6A22:
subs r0, r6, #4
ldrb r0, [r5, r0]
cmp r0, #0
bne _021E6A52
ldr r0, _021E6B98 @ =0x021D110C
ldr r1, [r0, #0x48]
movs r0, #0xc3
tst r0, r1
beq _021E6B30
ldr r0, _021E6B94 @ =0x000005DC
bl FUN_0200604C
adds r0, r5, #0
adds r1, r4, #0
bl ov53_021E6928
movs r0, #5
movs r1, #1
bl FUN_0201BC28
movs r1, #1
subs r0, r6, #4
strb r1, [r5, r0]
b _021E6B30
_021E6A52:
ldr r0, _021E6B98 @ =0x021D110C
movs r1, #0x40
ldr r0, [r0, #0x48]
tst r1, r0
beq _021E6A90
subs r0, r6, #3
ldrb r0, [r5, r0]
cmp r0, #0
beq _021E6B30
subs r0, r6, #3
ldrb r0, [r5, r0]
movs r3, #0xc
muls r3, r4, r3
subs r1, r0, #1
subs r0, r6, #3
strb r1, [r5, r0]
subs r4, r6, #3
ldrb r4, [r5, r4]
ldr r0, [r5, #0x18]
movs r1, #5
lsls r6, r4, #2
ldr r4, _021E6B90 @ =0x021E8604
movs r2, #3
adds r3, r4, r3
ldr r3, [r6, r3]
bl FUN_0201F238
ldr r0, _021E6B94 @ =0x000005DC
bl FUN_0200604C
b _021E6B30
_021E6A90:
movs r3, #0x80
adds r1, r0, #0
tst r1, r3
beq _021E6ADA
adds r1, r3, #0
adds r0, r3, #0
adds r1, #0xe1
adds r0, #0xe3
ldrb r1, [r5, r1]
ldrb r0, [r5, r0]
subs r1, r1, #1
cmp r0, r1
beq _021E6B30
adds r0, r3, #0
adds r0, #0xe3
ldrb r0, [r5, r0]
movs r6, #0xc
muls r6, r4, r6
adds r1, r0, #1
adds r0, r3, #0
adds r0, #0xe3
strb r1, [r5, r0]
adds r3, #0xe3
ldrb r3, [r5, r3]
ldr r4, _021E6B90 @ =0x021E8604
ldr r0, [r5, #0x18]
lsls r3, r3, #2
adds r4, r4, r6
ldr r3, [r3, r4]
movs r1, #5
movs r2, #3
bl FUN_0201F238
ldr r0, _021E6B94 @ =0x000005DC
bl FUN_0200604C
b _021E6B30
_021E6ADA:
movs r2, #1
adds r1, r0, #0
tst r1, r2
beq _021E6AF2
strb r2, [r5, r6]
movs r0, #2
adds r3, #0xe5
strb r0, [r5, r3]
ldr r0, _021E6B94 @ =0x000005DC
bl FUN_0200604C
b _021E6B30
_021E6AF2:
movs r1, #2
tst r0, r1
beq _021E6B30
adds r0, r3, #0
adds r0, #0xe1
ldrb r0, [r5, r0]
subs r1, r0, #1
adds r0, r3, #0
adds r0, #0xe3
strb r1, [r5, r0]
adds r1, r3, #0
strb r2, [r5, r6]
movs r6, #0xc
muls r6, r4, r6
ldr r4, _021E6B90 @ =0x021E8604
adds r1, #0xe5
movs r0, #2
strb r0, [r5, r1]
adds r3, #0xe3
ldrb r3, [r5, r3]
adds r4, r4, r6
ldr r0, [r5, #0x18]
lsls r3, r3, #2
ldr r3, [r3, r4]
movs r1, #5
movs r2, #3
bl FUN_0201F238
ldr r0, _021E6B94 @ =0x000005DC
bl FUN_0200604C
_021E6B30:
ldr r0, _021E6B84 @ =0x00000166
ldrb r1, [r5, r0]
cmp r1, #0
beq _021E6B78
subs r1, r0, #2
ldrb r1, [r5, r1]
adds r2, r1, #1
subs r1, r0, #2
strb r2, [r5, r1]
ldrb r2, [r5, r1]
subs r1, r0, #1
ldrb r1, [r5, r1]
cmp r2, r1
bls _021E6B78
adds r1, r0, #1
ldrb r2, [r5, r1]
movs r1, #1
adds r3, r2, #0
eors r3, r1
adds r2, r0, #1
strb r3, [r5, r2]
subs r3, r0, #2
movs r2, #0
strb r2, [r5, r3]
adds r0, r0, #1
ldrb r0, [r5, r0]
cmp r0, #0
beq _021E6B70
movs r0, #5
bl FUN_0201BC28
b _021E6B78
_021E6B70:
movs r0, #5
adds r1, r2, #0
bl FUN_0201BC28
_021E6B78:
adds r0, r7, #0
add sp, #0x30
pop {r3, r4, r5, r6, r7, pc}
nop
_021E6B80: .4byte 0x021E8650
_021E6B84: .4byte 0x00000166
_021E6B88: .4byte 0x021D114C
_021E6B8C: .4byte 0x00000163
_021E6B90: .4byte 0x021E8604
_021E6B94: .4byte 0x000005DC
_021E6B98: .4byte 0x021D110C
thumb_func_end ov53_021E6988
thumb_func_start ov53_021E6B9C
ov53_021E6B9C: @ 0x021E6B9C
push {r3, r4}
movs r2, #0x1f
adds r4, r0, #0
asrs r3, r0, #5
ands r4, r2
ands r3, r2
asrs r0, r0, #0xa
adds r4, r4, r1
adds r3, r3, r1
adds r0, r0, r1
cmp r4, #0x1f
ble _021E6BB8
adds r4, r2, #0
b _021E6BBE
_021E6BB8:
cmp r4, #0
bge _021E6BBE
movs r4, #0
_021E6BBE:
cmp r3, #0x1f
ble _021E6BC6
movs r3, #0x1f
b _021E6BCC
_021E6BC6:
cmp r3, #0
bge _021E6BCC
movs r3, #0
_021E6BCC:
cmp r0, #0x1f
ble _021E6BD4
movs r0, #0x1f
b _021E6BDA
_021E6BD4:
cmp r0, #0
bge _021E6BDA
movs r0, #0
_021E6BDA:
lsls r1, r0, #0xa
lsls r0, r3, #5
orrs r0, r1
orrs r0, r4
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
pop {r3, r4}
bx lr
.align 2, 0
thumb_func_end ov53_021E6B9C
thumb_func_start ov53_021E6BEC
ov53_021E6BEC: @ 0x021E6BEC
push {r3, r4, r5, r6, lr}
sub sp, #4
adds r5, r0, #0
ldr r0, _021E6C9C @ =0x00000163
adds r6, r1, #0
ldrb r0, [r5, r0]
movs r4, #0
movs r1, #1
cmp r0, #0
beq _021E6C06
cmp r0, #1
beq _021E6C06
adds r1, r4, #0
_021E6C06:
cmp r1, #0
bne _021E6C0E
bl GF_AssertFail
_021E6C0E:
cmp r6, #0
bne _021E6C2E
movs r0, #0x5a
lsls r0, r0, #2
ldr r2, [r5, r0]
adds r1, r2, #1
str r1, [r5, r0]
movs r0, #0xa
muls r0, r2, r0
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
bl FUN_0201FCAC
lsls r0, r0, #3
asrs r4, r0, #0xc
b _021E6C36
_021E6C2E:
movs r0, #0x5a
movs r1, #0
lsls r0, r0, #2
str r1, [r5, r0]
_021E6C36:
ldr r0, _021E6CA0 @ =0x00000136
lsls r1, r4, #0x18
ldrh r0, [r5, r0]
asrs r1, r1, #0x18
bl ov53_021E6B9C
add r1, sp, #0
strh r0, [r1]
ldr r0, _021E6CA4 @ =0x00001CFF
movs r1, #0
bl ov53_021E6B9C
add r1, sp, #0
strh r0, [r1, #2]
ldr r3, _021E6C9C @ =0x00000163
movs r0, #6
ldrb r3, [r5, r3]
add r1, sp, #0
movs r2, #4
lsls r4, r3, #2
ldr r3, _021E6CA8 @ =0x021E8508
ldr r3, [r3, r4]
lsls r3, r3, #0x11
lsrs r3, r3, #0x10
bl FUN_0201C260
ldr r0, _021E6CA0 @ =0x00000136
add r1, sp, #0
ldrh r2, [r5, r0]
adds r0, #0x2d
strh r2, [r1]
ldr r2, _021E6CAC @ =0x0000739B
strh r2, [r1, #2]
ldrb r0, [r5, r0]
cmp r0, #0
bne _021E6C82
movs r3, #1
b _021E6C84
_021E6C82:
movs r3, #0
_021E6C84:
lsls r4, r3, #2
ldr r3, _021E6CA8 @ =0x021E8508
movs r0, #6
ldr r3, [r3, r4]
add r1, sp, #0
lsls r3, r3, #0x11
movs r2, #4
lsrs r3, r3, #0x10
bl FUN_0201C260
add sp, #4
pop {r3, r4, r5, r6, pc}
.align 2, 0
_021E6C9C: .4byte 0x00000163
_021E6CA0: .4byte 0x00000136
_021E6CA4: .4byte 0x00001CFF
_021E6CA8: .4byte 0x021E8508
_021E6CAC: .4byte 0x0000739B
thumb_func_end ov53_021E6BEC
thumb_func_start ov53_021E6CB0
ov53_021E6CB0: @ 0x021E6CB0
push {r3, lr}
ldr r1, _021E6CD8 @ =0x00000136
movs r2, #4
ldrh r1, [r0, r1]
add r0, sp, #0
movs r3, #0x18
strh r1, [r0]
ldr r1, _021E6CDC @ =0x0000739B
strh r1, [r0, #2]
movs r0, #6
add r1, sp, #0
bl FUN_0201C260
movs r0, #6
add r1, sp, #0
movs r2, #4
movs r3, #0x1c
bl FUN_0201C260
pop {r3, pc}
.align 2, 0
_021E6CD8: .4byte 0x00000136
_021E6CDC: .4byte 0x0000739B
thumb_func_end ov53_021E6CB0
thumb_func_start ov53_021E6CE0
ov53_021E6CE0: @ 0x021E6CE0
push {r3, r4, r5, r6, lr}
sub sp, #0xc
ldr r3, _021E6DD8 @ =0x021E8530
adds r5, r0, #0
movs r4, #0
add r2, sp, #0
movs r1, #0xc
_021E6CEE:
ldrb r0, [r3]
adds r3, r3, #1
strb r0, [r2]
adds r2, r2, #1
subs r1, r1, #1
bne _021E6CEE
ldr r0, _021E6DDC @ =0x021D114C
ldrh r0, [r0, #0x24]
cmp r0, #0
beq _021E6D38
add r0, sp, #0
bl FUN_02025224
adds r6, r0, #0
movs r0, #0
mvns r0, r0
cmp r6, r0
beq _021E6DD0
ldr r0, _021E6DE0 @ =0x00000163
movs r1, #1
strb r6, [r5, r0]
adds r2, r0, #3
strb r1, [r5, r2]
movs r2, #2
adds r0, r0, #2
strb r2, [r5, r0]
adds r0, r5, #0
bl ov53_021E6BEC
ldr r0, _021E6DE4 @ =0x000005DC
bl FUN_0200604C
movs r0, #0x5f
lsls r0, r0, #2
str r6, [r5, r0]
movs r4, #1
b _021E6DD0
_021E6D38:
ldr r0, _021E6DE8 @ =0x00000162
ldrb r0, [r5, r0]
cmp r0, #0
bne _021E6D5E
ldr r0, _021E6DEC @ =0x021D110C
ldr r1, [r0, #0x48]
movs r0, #0x31
tst r0, r1
beq _021E6DD0
ldr r0, _021E6DE4 @ =0x000005DC
bl FUN_0200604C
ldr r0, _021E6DE8 @ =0x00000162
movs r1, #1
strb r1, [r5, r0]
adds r0, r5, #0
bl ov53_021E6BEC
b _021E6DD0
_021E6D5E:
adds r0, r5, #0
movs r1, #0
bl ov53_021E6BEC
ldr r0, _021E6DEC @ =0x021D110C
movs r1, #0x20
ldr r0, [r0, #0x48]
tst r1, r0
beq _021E6D84
ldr r0, _021E6DE0 @ =0x00000163
ldrb r1, [r5, r0]
cmp r1, #0
beq _021E6DD0
subs r1, r1, #1
strb r1, [r5, r0]
ldr r0, _021E6DE4 @ =0x000005DC
bl FUN_0200604C
b _021E6DD0
_021E6D84:
movs r1, #0x10
tst r1, r0
beq _021E6DA4
ldr r0, _021E6DE0 @ =0x00000163
subs r1, r0, #2
ldrb r1, [r5, r1]
ldrb r2, [r5, r0]
subs r1, r1, #1
cmp r2, r1
beq _021E6DD0
adds r1, r2, #1
strb r1, [r5, r0]
ldr r0, _021E6DE4 @ =0x000005DC
bl FUN_0200604C
b _021E6DD0
_021E6DA4:
movs r1, #1
tst r0, r1
beq _021E6DD0
ldr r0, _021E6DE8 @ =0x00000162
movs r2, #0
strb r2, [r5, r0]
adds r2, r0, #4
strb r1, [r5, r2]
movs r2, #2
adds r0, r0, #3
strb r2, [r5, r0]
adds r0, r5, #0
bl ov53_021E6BEC
ldr r0, _021E6DE4 @ =0x000005DC
bl FUN_0200604C
ldr r0, _021E6DE0 @ =0x00000163
movs r4, #1
ldrb r1, [r5, r0]
adds r0, #0x19
str r1, [r5, r0]
_021E6DD0:
adds r0, r4, #0
add sp, #0xc
pop {r3, r4, r5, r6, pc}
nop
_021E6DD8: .4byte 0x021E8530
_021E6DDC: .4byte 0x021D114C
_021E6DE0: .4byte 0x00000163
_021E6DE4: .4byte 0x000005DC
_021E6DE8: .4byte 0x00000162
_021E6DEC: .4byte 0x021D110C
thumb_func_end ov53_021E6CE0
thumb_func_start ov53_021E6DF0
ov53_021E6DF0: @ 0x021E6DF0
movs r1, #5
movs r2, #0
lsls r1, r1, #6
str r2, [r0, r1]
adds r1, r1, #4
str r2, [r0, r1]
bx lr
.align 2, 0
thumb_func_end ov53_021E6DF0
thumb_func_start ov53_021E6E00
ov53_021E6E00: @ 0x021E6E00
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x40
movs r1, #0x51
adds r2, r0, #0
lsls r1, r1, #2
ldr r0, [r2, r1]
movs r7, #0
cmp r0, #0
beq _021E6E16
subs r0, r0, #1
b _021E6E22
_021E6E16:
subs r0, r1, #4
ldr r0, [r2, r0]
adds r3, r0, #1
subs r0, r1, #4
str r3, [r2, r0]
movs r0, #8
_021E6E22:
movs r3, #0x4d
lsls r3, r3, #2
str r0, [r2, r1]
ldrh r0, [r2, r3]
cmp r0, #0
bne _021E6E34
ldr r6, _021E6E74 @ =0x021E859C
add r5, sp, #0x28
b _021E6E38
_021E6E34:
ldr r6, _021E6E78 @ =0x021E85B4
add r5, sp, #0x10
_021E6E38:
adds r4, r5, #0
ldm r6!, {r0, r1}
stm r5!, {r0, r1}
ldm r6!, {r0, r1}
stm r5!, {r0, r1}
ldm r6!, {r0, r1}
adds r3, #0xc
stm r5!, {r0, r1}
ldr r0, [r2, r3]
lsls r0, r0, #2
ldr r1, [r4, r0]
cmp r1, #0xff
bne _021E6E56
movs r7, #1
b _021E6E6C
_021E6E56:
movs r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
ldr r0, [r2]
movs r3, #1
str r0, [sp, #0xc]
ldr r2, [r2, #0x18]
movs r0, #0x78
bl FUN_020078F0
_021E6E6C:
adds r0, r7, #0
add sp, #0x40
pop {r3, r4, r5, r6, r7, pc}
nop
_021E6E74: .4byte 0x021E859C
_021E6E78: .4byte 0x021E85B4
thumb_func_end ov53_021E6E00
thumb_func_start ov53_021E6E7C
ov53_021E6E7C: @ 0x021E6E7C
push {r3, r4, lr}
sub sp, #0x1c
add r0, sp, #0xc
add r1, sp, #0
movs r4, #1
bl FUN_02014708
ldr r0, [sp]
ldr r3, [sp, #4]
movs r1, #0x64
adds r2, r0, #0
muls r2, r1, r2
adds r0, r3, r2
lsls r1, r1, #2
cmp r0, r1
blo _021E6EA2
ldr r1, _021E6EE4 @ =0x00000423
cmp r0, r1
bls _021E6EDC
_021E6EA2:
ldr r1, _021E6EE8 @ =0x0000044C
cmp r0, r1
blo _021E6EB2
ldr r1, _021E6EEC @ =0x00000617
cmp r0, r1
bhi _021E6EB2
movs r4, #2
b _021E6EDC
_021E6EB2:
movs r1, #0x19
lsls r1, r1, #6
cmp r0, r1
blo _021E6EC4
ldr r1, _021E6EF0 @ =0x00000743
cmp r0, r1
bhi _021E6EC4
movs r4, #3
b _021E6EDC
_021E6EC4:
ldr r1, _021E6EF4 @ =0x0000076C
cmp r0, r1
blo _021E6ED4
ldr r1, _021E6EF8 @ =0x00000937
cmp r0, r1
bhi _021E6ED4
movs r4, #4
b _021E6EDC
_021E6ED4:
ldr r1, _021E6EFC @ =0x00000167
cmp r0, r1
bhi _021E6EDC
movs r4, #5
_021E6EDC:
adds r0, r4, #0
add sp, #0x1c
pop {r3, r4, pc}
nop
_021E6EE4: .4byte 0x00000423
_021E6EE8: .4byte 0x0000044C
_021E6EEC: .4byte 0x00000617
_021E6EF0: .4byte 0x00000743
_021E6EF4: .4byte 0x0000076C
_021E6EF8: .4byte 0x00000937
_021E6EFC: .4byte 0x00000167
thumb_func_end ov53_021E6E7C
thumb_func_start ov53_021E6F00
ov53_021E6F00: @ 0x021E6F00
push {r4, r5, r6, lr}
adds r4, r0, #0
movs r0, #0x5d
lsls r0, r0, #2
ldrh r3, [r4, r0]
cmp r3, #0
beq _021E6F18
cmp r3, #1
beq _021E6F2C
cmp r3, #2
beq _021E6F7E
b _021E6F86
_021E6F18:
movs r1, #1
strh r1, [r4, r0]
movs r1, #6
adds r3, r2, #0
muls r3, r1, r3
ldr r1, _021E6F8C @ =0x021E853C
adds r0, r0, #2
ldrsh r1, [r1, r3]
strh r1, [r4, r0]
b _021E6F86
_021E6F2C:
movs r3, #6
muls r3, r2, r3
ldr r2, _021E6F90 @ =0x021E8540
adds r5, r0, #2
ldrsh r2, [r2, r3]
ldrsh r5, [r4, r5]
adds r6, r5, r2
adds r5, r0, #2
strh r6, [r4, r5]
cmp r2, #0
ble _021E6F58
ldr r2, _021E6F94 @ =0x021E853E
ldrsh r3, [r2, r3]
adds r2, r5, #0
ldrsh r2, [r4, r2]
cmp r2, r3
blt _021E6F6C
adds r2, r5, #0
strh r3, [r4, r2]
movs r2, #2
strh r2, [r4, r0]
b _021E6F6C
_021E6F58:
ldr r2, _021E6F94 @ =0x021E853E
ldrsh r3, [r2, r3]
adds r2, r5, #0
ldrsh r2, [r4, r2]
cmp r2, r3
bgt _021E6F6C
adds r2, r5, #0
strh r3, [r4, r2]
movs r2, #2
strh r2, [r4, r0]
_021E6F6C:
ldr r3, _021E6F98 @ =0x00000176
lsls r1, r1, #0x18
ldrsh r3, [r4, r3]
ldr r0, [r4, #0x18]
lsrs r1, r1, #0x18
movs r2, #0
bl FUN_0201BC8C
b _021E6F86
_021E6F7E:
movs r1, #0
strh r1, [r4, r0]
movs r0, #1
pop {r4, r5, r6, pc}
_021E6F86:
movs r0, #0
pop {r4, r5, r6, pc}
nop
_021E6F8C: .4byte 0x021E853C
_021E6F90: .4byte 0x021E8540
_021E6F94: .4byte 0x021E853E
_021E6F98: .4byte 0x00000176
thumb_func_end ov53_021E6F00
thumb_func_start ov53_021E6F9C
ov53_021E6F9C: @ 0x021E6F9C
push {r3, r4, r5, lr}
sub sp, #0x10
adds r4, r0, #0
ldr r1, [r4, #0xc]
movs r5, #0
cmp r1, #0x7e
bls _021E6FAE
bl _021E7CF8
_021E6FAE:
adds r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsls r1, r1, #0x10
asrs r1, r1, #0x10
add pc, r1
_021E6FBA: @ jump table
.2byte _021E70B8 - _021E6FBA - 2 @ case 0
.2byte _021E7138 - _021E6FBA - 2 @ case 1
.2byte _021E7154 - _021E6FBA - 2 @ case 2
.2byte _021E7188 - _021E6FBA - 2 @ case 3
.2byte _021E719C - _021E6FBA - 2 @ case 4
.2byte _021E71CE - _021E6FBA - 2 @ case 5
.2byte _021E71EE - _021E6FBA - 2 @ case 6
.2byte _021E70E4 - _021E6FBA - 2 @ case 7
.2byte _021E7226 - _021E6FBA - 2 @ case 8
.2byte _021E7274 - _021E6FBA - 2 @ case 9
.2byte _021E7CF8 - _021E6FBA - 2 @ case 10
.2byte _021E7284 - _021E6FBA - 2 @ case 11
.2byte _021E7298 - _021E6FBA - 2 @ case 12
.2byte _021E72AC - _021E6FBA - 2 @ case 13
.2byte _021E72C0 - _021E6FBA - 2 @ case 14
.2byte _021E72D4 - _021E6FBA - 2 @ case 15
.2byte _021E72F0 - _021E6FBA - 2 @ case 16
.2byte _021E7304 - _021E6FBA - 2 @ case 17
.2byte _021E7320 - _021E6FBA - 2 @ case 18
.2byte _021E733C - _021E6FBA - 2 @ case 19
.2byte _021E735C - _021E6FBA - 2 @ case 20
.2byte _021E7378 - _021E6FBA - 2 @ case 21
.2byte _021E739C - _021E6FBA - 2 @ case 22
.2byte _021E73B0 - _021E6FBA - 2 @ case 23
.2byte _021E73E2 - _021E6FBA - 2 @ case 24
.2byte _021E7CF8 - _021E6FBA - 2 @ case 25
.2byte _021E7CF8 - _021E6FBA - 2 @ case 26
.2byte _021E7414 - _021E6FBA - 2 @ case 27
.2byte _021E7440 - _021E6FBA - 2 @ case 28
.2byte _021E7456 - _021E6FBA - 2 @ case 29
.2byte _021E7CF8 - _021E6FBA - 2 @ case 30
.2byte _021E7CF8 - _021E6FBA - 2 @ case 31
.2byte _021E7CF8 - _021E6FBA - 2 @ case 32
.2byte _021E7CF8 - _021E6FBA - 2 @ case 33
.2byte _021E7484 - _021E6FBA - 2 @ case 34
.2byte _021E74CE - _021E6FBA - 2 @ case 35
.2byte _021E74DE - _021E6FBA - 2 @ case 36
.2byte _021E74F2 - _021E6FBA - 2 @ case 37
.2byte _021E7504 - _021E6FBA - 2 @ case 38
.2byte _021E7516 - _021E6FBA - 2 @ case 39
.2byte _021E7528 - _021E6FBA - 2 @ case 40
.2byte _021E753A - _021E6FBA - 2 @ case 41
.2byte _021E754C - _021E6FBA - 2 @ case 42
.2byte _021E756A - _021E6FBA - 2 @ case 43
.2byte _021E7590 - _021E6FBA - 2 @ case 44
.2byte _021E75E8 - _021E6FBA - 2 @ case 45
.2byte _021E760C - _021E6FBA - 2 @ case 46
.2byte _021E762A - _021E6FBA - 2 @ case 47
.2byte _021E7672 - _021E6FBA - 2 @ case 48
.2byte _021E7682 - _021E6FBA - 2 @ case 49
.2byte _021E7694 - _021E6FBA - 2 @ case 50
.2byte _021E76A8 - _021E6FBA - 2 @ case 51
.2byte _021E76DE - _021E6FBA - 2 @ case 52
.2byte _021E771C - _021E6FBA - 2 @ case 53
.2byte _021E775E - _021E6FBA - 2 @ case 54
.2byte _021E77A2 - _021E6FBA - 2 @ case 55
.2byte _021E77B4 - _021E6FBA - 2 @ case 56
.2byte _021E77C6 - _021E6FBA - 2 @ case 57
.2byte _021E77D8 - _021E6FBA - 2 @ case 58
.2byte _021E77E8 - _021E6FBA - 2 @ case 59
.2byte _021E77FA - _021E6FBA - 2 @ case 60
.2byte _021E7818 - _021E6FBA - 2 @ case 61
.2byte _021E7842 - _021E6FBA - 2 @ case 62
.2byte _021E7850 - _021E6FBA - 2 @ case 63
.2byte _021E7892 - _021E6FBA - 2 @ case 64
.2byte _021E78AA - _021E6FBA - 2 @ case 65
.2byte _021E78C2 - _021E6FBA - 2 @ case 66
.2byte _021E7920 - _021E6FBA - 2 @ case 67
.2byte _021E794C - _021E6FBA - 2 @ case 68
.2byte _021E797C - _021E6FBA - 2 @ case 69
.2byte _021E79AC - _021E6FBA - 2 @ case 70
.2byte _021E79DE - _021E6FBA - 2 @ case 71
.2byte _021E7A3C - _021E6FBA - 2 @ case 72
.2byte _021E7CF8 - _021E6FBA - 2 @ case 73
.2byte _021E7CF8 - _021E6FBA - 2 @ case 74
.2byte _021E7CF8 - _021E6FBA - 2 @ case 75
.2byte _021E7CF8 - _021E6FBA - 2 @ case 76
.2byte _021E7CF8 - _021E6FBA - 2 @ case 77
.2byte _021E7CF8 - _021E6FBA - 2 @ case 78
.2byte _021E7CF8 - _021E6FBA - 2 @ case 79
.2byte _021E7CF8 - _021E6FBA - 2 @ case 80
.2byte _021E7CF8 - _021E6FBA - 2 @ case 81
.2byte _021E7CF8 - _021E6FBA - 2 @ case 82
.2byte _021E7CF8 - _021E6FBA - 2 @ case 83
.2byte _021E7CF8 - _021E6FBA - 2 @ case 84
.2byte _021E7CF8 - _021E6FBA - 2 @ case 85
.2byte _021E7CF8 - _021E6FBA - 2 @ case 86
.2byte _021E7CF8 - _021E6FBA - 2 @ case 87
.2byte _021E7CF8 - _021E6FBA - 2 @ case 88
.2byte _021E7CF8 - _021E6FBA - 2 @ case 89
.2byte _021E7CF8 - _021E6FBA - 2 @ case 90
.2byte _021E7CF8 - _021E6FBA - 2 @ case 91
.2byte _021E7CF8 - _021E6FBA - 2 @ case 92
.2byte _021E7A52 - _021E6FBA - 2 @ case 93
.2byte _021E7A64 - _021E6FBA - 2 @ case 94
.2byte _021E7A76 - _021E6FBA - 2 @ case 95
.2byte _021E7AA4 - _021E6FBA - 2 @ case 96
.2byte _021E7B30 - _021E6FBA - 2 @ case 97
.2byte _021E7B50 - _021E6FBA - 2 @ case 98
.2byte _021E7B6E - _021E6FBA - 2 @ case 99
.2byte _021E7BA0 - _021E6FBA - 2 @ case 100
.2byte _021E7BBE - _021E6FBA - 2 @ case 101
.2byte _021E7C20 - _021E6FBA - 2 @ case 102
.2byte _021E7C2E - _021E6FBA - 2 @ case 103
.2byte _021E7CF8 - _021E6FBA - 2 @ case 104
.2byte _021E7CF8 - _021E6FBA - 2 @ case 105
.2byte _021E7CF8 - _021E6FBA - 2 @ case 106
.2byte _021E7CF8 - _021E6FBA - 2 @ case 107
.2byte _021E7CF8 - _021E6FBA - 2 @ case 108
.2byte _021E7CF8 - _021E6FBA - 2 @ case 109
.2byte _021E7C40 - _021E6FBA - 2 @ case 110
.2byte _021E7C5E - _021E6FBA - 2 @ case 111
.2byte _021E7CF8 - _021E6FBA - 2 @ case 112
.2byte _021E7CF8 - _021E6FBA - 2 @ case 113
.2byte _021E7CF8 - _021E6FBA - 2 @ case 114
.2byte _021E7CF8 - _021E6FBA - 2 @ case 115
.2byte _021E7CF8 - _021E6FBA - 2 @ case 116
.2byte _021E7CF8 - _021E6FBA - 2 @ case 117
.2byte _021E7CF8 - _021E6FBA - 2 @ case 118
.2byte _021E7CF8 - _021E6FBA - 2 @ case 119
.2byte _021E7C6C - _021E6FBA - 2 @ case 120
.2byte _021E7CB4 - _021E6FBA - 2 @ case 121
.2byte _021E7CF8 - _021E6FBA - 2 @ case 122
.2byte _021E7CC0 - _021E6FBA - 2 @ case 123
.2byte _021E7CC6 - _021E6FBA - 2 @ case 124
.2byte _021E7CD8 - _021E6FBA - 2 @ case 125
.2byte _021E7CEE - _021E6FBA - 2 @ case 126
_021E70B8:
movs r0, #6
adds r1, r5, #0
bl FUN_0201BC28
movs r1, #0x3f
movs r0, #2
lsls r1, r1, #4
movs r2, #1
bl FUN_02004EC4
movs r0, #0x3f
lsls r0, r0, #4
adds r1, r5, #0
bl FUN_02005EB4
ldr r0, _021E7408 @ =0x000003F1
bl FUN_02005D48
movs r0, #7
str r0, [r4, #0xc]
bl _021E7CF8
_021E70E4:
adds r1, r5, #0
bl ov53_021E6824
adds r0, r4, #0
movs r1, #1
bl ov53_021E66A8
adds r0, r4, #0
adds r1, r5, #0
bl ov53_021E67C4
movs r0, #3
movs r1, #1
bl FUN_0201BC28
adds r0, r5, #0
movs r1, #1
bl FUN_0201BC28
movs r0, #4
movs r1, #1
bl FUN_0201BC28
movs r0, #7
movs r1, #1
bl FUN_0201BC28
movs r0, #6
movs r1, #1
str r0, [sp]
str r1, [sp, #4]
ldr r0, [r4]
adds r2, r1, #0
str r0, [sp, #8]
adds r0, r5, #0
adds r3, r0, #0
bl FUN_0200FA24
movs r0, #1
str r0, [r4, #0xc]
bl _021E7CF8
_021E7138:
bl FUN_0200FB5C
cmp r0, #1
bne _021E71F6
adds r0, r4, #0
movs r1, #0x28
bl ov53_021E60CC
cmp r0, #1
bne _021E71F6
movs r0, #2
str r0, [r4, #0xc]
bl _021E7CF8
_021E7154:
movs r1, #7
movs r2, #2
bl ov53_021E64B4
cmp r0, #1
bne _021E71F6
movs r0, #6
movs r1, #1
bl FUN_0201BC28
movs r0, #3
str r0, [r4, #0xc]
str r0, [sp]
adds r0, r4, #0
movs r1, #0x2c
movs r2, #0x2d
movs r3, #0x2e
bl ov53_021E64C4
ldr r0, _021E740C @ =0x00000162
adds r1, r5, #0
strb r1, [r4, r0]
adds r0, r0, #1
strb r1, [r4, r0]
bl _021E7CF8
_021E7188:
adds r1, r5, #0
bl ov53_021E6988
subs r1, r5, #1
cmp r0, r1
beq _021E71F6
movs r0, #4
str r0, [r4, #0xc]
bl _021E7CF8
_021E719C:
movs r1, #7
movs r2, #2
bl ov53_021E64B4
cmp r0, #1
bne _021E71F6
adds r0, r4, #0
bl ov53_021E65B4
movs r0, #4
adds r1, r5, #0
bl FUN_0201BC28
movs r0, #6
adds r1, r5, #0
bl FUN_0201BC28
movs r0, #5
adds r1, r5, #0
bl FUN_0201BC28
movs r0, #5
str r0, [r4, #0xc]
bl _021E7CF8
_021E71CE:
movs r0, #6
str r0, [sp]
movs r0, #1
str r0, [sp, #4]
ldr r0, [r4]
adds r1, r5, #0
str r0, [sp, #8]
adds r0, r5, #0
adds r2, r5, #0
adds r3, r5, #0
bl FUN_0200FA24
movs r0, #6
str r0, [r4, #0xc]
bl _021E7CF8
_021E71EE:
bl FUN_0200FB5C
cmp r0, #1
beq _021E71FA
_021E71F6:
bl _021E7CF8
_021E71FA:
ldr r0, _021E7410 @ =0x00000163
ldrb r0, [r4, r0]
cmp r0, #0
beq _021E720E
cmp r0, #1
beq _021E7216
cmp r0, #2
beq _021E721E
bl _021E7CF8
_021E720E:
movs r0, #8
str r0, [r4, #0xc]
bl _021E7CF8
_021E7216:
movs r0, #0x22
str r0, [r4, #0xc]
bl _021E7CF8
_021E721E:
movs r0, #0x2c
str r0, [r4, #0xc]
bl _021E7CF8
_021E7226:
ldr r0, [r4, #0x18]
movs r1, #4
bl FUN_0201CAE0
adds r0, r4, #0
movs r1, #1
bl ov53_021E66A8
adds r0, r4, #0
movs r1, #1
bl ov53_021E67C4
adds r0, r4, #0
movs r1, #1
bl ov53_021E7E08
movs r0, #4
movs r1, #1
bl FUN_0201BC28
movs r0, #7
movs r1, #1
bl FUN_0201BC28
movs r0, #6
movs r1, #1
str r0, [sp]
str r1, [sp, #4]
ldr r0, [r4]
adds r2, r1, #0
str r0, [sp, #8]
adds r0, r5, #0
adds r3, r0, #0
bl FUN_0200FA24
movs r0, #9
str r0, [r4, #0xc]
bl _021E7CF8
_021E7274:
bl FUN_0200FB5C
cmp r0, #1
bne _021E7348
movs r0, #0xb
str r0, [r4, #0xc]
bl _021E7CF8
_021E7284:
movs r1, #9
adds r2, r5, #0
bl ov53_021E64B4
cmp r0, #1
bne _021E7348
movs r0, #0xc
str r0, [r4, #0xc]
bl _021E7CF8
_021E7298:
movs r1, #0xa
adds r2, r5, #0
bl ov53_021E64B4
cmp r0, #1
bne _021E7348
movs r0, #0xd
str r0, [r4, #0xc]
bl _021E7CF8
_021E72AC:
movs r1, #0xb
adds r2, r5, #0
bl ov53_021E64B4
cmp r0, #1
bne _021E7348
movs r0, #0xe
str r0, [r4, #0xc]
bl _021E7CF8
_021E72C0:
movs r1, #0xc
adds r2, r5, #0
bl ov53_021E64B4
cmp r0, #1
bne _021E7348
movs r0, #0xf
str r0, [r4, #0xc]
bl _021E7CF8
_021E72D4:
movs r1, #0x17
movs r2, #2
bl ov53_021E64B4
cmp r0, #1
bne _021E7348
adds r0, r5, #0
movs r1, #1
bl FUN_0201BC28
movs r0, #0x10
str r0, [r4, #0xc]
bl _021E7CF8
_021E72F0:
movs r1, #0x19
adds r2, r5, #0
bl ov53_021E611C
cmp r0, #1
bne _021E7348
movs r0, #0x11
str r0, [r4, #0xc]
bl _021E7CF8
_021E7304:
movs r1, #0xd
adds r2, r5, #0
bl ov53_021E64B4
cmp r0, #1
bne _021E7348
adds r0, r4, #0
movs r1, #2
bl ov53_021E66A8
movs r0, #0x12
str r0, [r4, #0xc]
bl _021E7CF8
_021E7320:
movs r1, #0xe
movs r2, #3
bl ov53_021E64B4
cmp r0, #1
bne _021E7348
adds r0, r4, #0
movs r1, #1
bl ov53_021E66A8
movs r0, #0x13
str r0, [r4, #0xc]
bl _021E7CF8
_021E733C:
movs r1, #0xf
adds r2, r5, #0
bl ov53_021E64B4
cmp r0, #1
beq _021E734C
_021E7348:
bl _021E7CF8
_021E734C:
adds r0, r4, #0
movs r1, #3
bl ov53_021E66A8
movs r0, #0x14
str r0, [r4, #0xc]
bl _021E7CF8
_021E735C:
movs r1, #0x10
movs r2, #3
bl ov53_021E64B4
cmp r0, #1
bne _021E7462
adds r0, r4, #0
movs r1, #4
bl ov53_021E66A8
movs r0, #0x15
str r0, [r4, #0xc]
bl _021E7CF8
_021E7378:
movs r1, #0x11
movs r2, #3
bl ov53_021E64B4
cmp r0, #1
bne _021E7462
movs r0, #0x16
str r0, [r4, #0xc]
adds r0, r5, #0
movs r1, #1
bl FUN_0201BC28
adds r0, r4, #0
movs r1, #1
bl ov53_021E66A8
bl _021E7CF8
_021E739C:
movs r1, #0x1a
movs r2, #1
bl ov53_021E611C
cmp r0, #1
bne _021E7462
movs r0, #0x17
str r0, [r4, #0xc]
bl _021E7CF8
_021E73B0:
adds r1, r5, #0
bl ov53_021E7E08
ldr r0, [r4, #0x18]
movs r1, #4
bl FUN_0201CAE0
movs r0, #0x5e
lsls r0, r0, #2
ldr r0, [r4, r0]
movs r1, #7
bl ov53_021E816C
movs r0, #0x5e
lsls r0, r0, #2
ldr r0, [r4, r0]
movs r1, #0xdb
movs r2, #0x3d
movs r3, #0x3e
bl ov53_021E81F4
movs r0, #0x18
str r0, [r4, #0xc]
bl _021E7CF8
_021E73E2:
movs r0, #0x5e
lsls r0, r0, #2
ldr r0, [r4, r0]
bl ov53_021E8248
cmp r0, #1
beq _021E73F8
cmp r0, #2
beq _021E7400
bl _021E7CF8
_021E73F8:
movs r0, #0x1b
str r0, [r4, #0xc]
bl _021E7CF8
_021E7400:
movs r0, #0x1d
str r0, [r4, #0xc]
bl _021E7CF8
.align 2, 0
_021E7408: .4byte 0x000003F1
_021E740C: .4byte 0x00000162
_021E7410: .4byte 0x00000163
_021E7414:
movs r1, #6
movs r2, #1
bl ov53_021E5EDC
cmp r0, #1
bne _021E7462
movs r0, #6
str r0, [sp]
movs r0, #1
str r0, [sp, #4]
ldr r0, [r4]
str r0, [sp, #8]
adds r0, r5, #0
adds r1, r0, #0
adds r2, r0, #0
adds r3, r0, #0
bl FUN_0200FA24
movs r0, #0x1c
str r0, [r4, #0xc]
bl _021E7CF8
_021E7440:
bl FUN_0200FB5C
cmp r0, #1
bne _021E7462
adds r0, r4, #0
bl ov53_021E7D58
movs r0, #7
str r0, [r4, #0xc]
bl _021E7CF8
_021E7456:
movs r1, #6
movs r2, #1
bl ov53_021E5EDC
cmp r0, #1
beq _021E7466
_021E7462:
bl _021E7CF8
_021E7466:
adds r0, r4, #0
movs r1, #3
bl ov53_021E7E08
movs r0, #6
adds r1, r5, #0
bl FUN_0201BC28
adds r0, r4, #0
bl ov53_021E7D58
movs r0, #8
str r0, [r4, #0xc]
bl _021E7CF8
_021E7484:
movs r1, #5
bl ov53_021E66A8
adds r0, r4, #0
movs r1, #2
bl ov53_021E67C4
adds r0, r4, #0
bl ov53_021E7D58
adds r0, r4, #0
movs r1, #1
bl ov53_021E7E08
movs r0, #4
movs r1, #1
bl FUN_0201BC28
movs r0, #7
movs r1, #1
bl FUN_0201BC28
movs r0, #6
movs r1, #1
str r0, [sp]
str r1, [sp, #4]
ldr r0, [r4]
adds r2, r1, #0
str r0, [sp, #8]
adds r0, r5, #0
adds r3, r0, #0
bl FUN_0200FA24
movs r0, #0x23
str r0, [r4, #0xc]
bl _021E7CF8
_021E74CE:
bl FUN_0200FB5C
cmp r0, #1
bne _021E7572
movs r0, #0x24
str r0, [r4, #0xc]
bl _021E7CF8
_021E74DE:
movs r1, #0x1c
movs r2, #1
bl ov53_021E64B4
cmp r0, #1
bne _021E7572
movs r0, #0x25
str r0, [r4, #0xc]
bl _021E7CF8
_021E74F2:
movs r1, #0x1d
movs r2, #1
bl ov53_021E64B4
cmp r0, #1
bne _021E7572
movs r0, #0x26
str r0, [r4, #0xc]
b _021E7CF8
_021E7504:
movs r1, #0x1e
movs r2, #1
bl ov53_021E64B4
cmp r0, #1
bne _021E7572
movs r0, #0x27
str r0, [r4, #0xc]
b _021E7CF8
_021E7516:
movs r1, #0x1f
movs r2, #1
bl ov53_021E64B4
cmp r0, #1
bne _021E7572
movs r0, #0x28
str r0, [r4, #0xc]
b _021E7CF8
_021E7528:
movs r1, #0x20
movs r2, #1
bl ov53_021E64B4
cmp r0, #1
bne _021E7572
movs r0, #0x29
str r0, [r4, #0xc]
b _021E7CF8
_021E753A:
movs r1, #0x21
movs r2, #1
bl ov53_021E64B4
cmp r0, #1
bne _021E7572
movs r0, #0x2a
str r0, [r4, #0xc]
b _021E7CF8
_021E754C:
movs r0, #6
str r0, [sp]
movs r0, #1
str r0, [sp, #4]
ldr r0, [r4]
adds r1, r5, #0
str r0, [sp, #8]
adds r0, r5, #0
adds r2, r5, #0
adds r3, r5, #0
bl FUN_0200FA24
movs r0, #0x2b
str r0, [r4, #0xc]
b _021E7CF8
_021E756A:
bl FUN_0200FB5C
cmp r0, #1
beq _021E7574
_021E7572:
b _021E7CF8
_021E7574:
adds r0, r4, #0
bl ov53_021E7D58
adds r0, r4, #0
adds r1, r5, #0
bl ov53_021E7E08
adds r0, r5, #0
movs r1, #1
bl FUN_0201BC28
movs r0, #7
str r0, [r4, #0xc]
b _021E7CF8
_021E7590:
bl ov53_021E7D58
adds r0, r4, #0
movs r1, #1
bl ov53_021E7E08
adds r0, r4, #0
adds r1, r5, #0
bl ov53_021E66A8
ldr r0, [r4, #0x18]
movs r1, #5
bl FUN_0201CAE0
adds r0, r5, #0
movs r1, #1
bl FUN_0201BC28
movs r0, #3
adds r1, r5, #0
bl FUN_0201BC28
movs r0, #4
movs r1, #1
bl FUN_0201BC28
movs r0, #7
movs r1, #1
bl FUN_0201BC28
movs r0, #0x2d
str r0, [r4, #0xc]
movs r0, #6
movs r1, #1
str r0, [sp]
str r1, [sp, #4]
ldr r0, [r4]
adds r2, r1, #0
str r0, [sp, #8]
adds r0, r5, #0
adds r3, r0, #0
bl FUN_0200FA24
b _021E7CF8
_021E75E8:
bl FUN_0200FB5C
cmp r0, #1
bne _021E76A0
adds r0, r4, #0
movs r1, #0x28
bl ov53_021E60CC
cmp r0, #1
bne _021E76A0
movs r0, #0x2e
str r0, [r4, #0xc]
bl ov53_021E6E7C
movs r1, #0x17
lsls r1, r1, #4
str r0, [r4, r1]
b _021E7CF8
_021E760C:
movs r1, #0x17
lsls r1, r1, #4
ldr r1, [r4, r1]
movs r2, #1
bl ov53_021E611C
cmp r0, #1
bne _021E76A0
adds r0, r5, #0
movs r1, #6
bl FUN_02005F50
movs r0, #0x2f
str r0, [r4, #0xc]
b _021E7CF8
_021E762A:
bl FUN_02005F88
cmp r0, #0
bne _021E76A0
ldr r0, _021E7938 @ =0x000003F1
adds r1, r5, #0
bl FUN_02005EB4
ldr r0, _021E793C @ =0x000003F2
bl FUN_02005D48
adds r0, r4, #0
movs r1, #1
adds r2, r5, #0
bl ov53_021E66E8
movs r0, #3
movs r1, #1
bl FUN_0201BC28
movs r0, #1
adds r1, r0, #0
bl FUN_0201BC28
adds r1, r5, #0
movs r0, #1
adds r2, r1, #0
str r0, [sp]
movs r0, #0x10
subs r2, #0x10
movs r3, #0x1a
bl FUN_0200B484
movs r0, #0x30
str r0, [r4, #0xc]
b _021E7CF8
_021E7672:
movs r0, #1
bl FUN_0200B5C0
cmp r0, #0
beq _021E76A0
movs r0, #0x31
str r0, [r4, #0xc]
b _021E7CF8
_021E7682:
movs r1, #6
movs r2, #1
bl ov53_021E611C
cmp r0, #1
bne _021E76A0
movs r0, #0x32
str r0, [r4, #0xc]
b _021E7CF8
_021E7694:
movs r1, #1
adds r2, r5, #0
bl ov53_021E6F00
cmp r0, #1
beq _021E76A2
_021E76A0:
b _021E7CF8
_021E76A2:
movs r0, #0x33
str r0, [r4, #0xc]
b _021E7CF8
_021E76A8:
movs r1, #0x22
movs r2, #1
bl ov53_021E611C
cmp r0, #1
bne _021E77AC
adds r0, r4, #0
adds r0, #0xec
ldr r0, [r0]
movs r1, #3
bl FUN_020248F0
adds r0, r4, #0
adds r0, #0xec
ldr r0, [r0]
movs r1, #5
bl FUN_02024A14
adds r0, r4, #0
adds r0, #0xec
ldr r0, [r0]
movs r1, #1
bl FUN_02024830
movs r0, #0x34
str r0, [r4, #0xc]
b _021E7CF8
_021E76DE:
movs r1, #0x1e
bl ov53_021E60CC
cmp r0, #1
bne _021E77AC
movs r0, #1
str r0, [sp]
movs r0, #4
adds r1, r5, #0
movs r2, #0x10
movs r3, #0x1b
bl FUN_0200B484
movs r0, #2
str r0, [sp]
movs r0, #4
adds r1, r5, #0
movs r2, #0x10
movs r3, #0x1d
bl FUN_0200B484
ldr r0, _021E7940 @ =0x00000706
bl FUN_0200604C
movs r0, #5
adds r1, r5, #0
lsls r0, r0, #6
str r1, [r4, r0]
movs r0, #0x35
str r0, [r4, #0xc]
b _021E7CF8
_021E771C:
movs r0, #1
bl FUN_0200B5C0
cmp r0, #1
bne _021E77AC
movs r0, #2
bl FUN_0200B5C0
cmp r0, #1
bne _021E77AC
adds r0, r4, #0
adds r0, #0xec
ldr r0, [r0]
movs r1, #1
bl FUN_020248F0
adds r0, r4, #0
adds r0, #0xec
ldr r0, [r0]
movs r1, #4
bl FUN_02024A14
movs r2, #5
movs r1, #0x10
lsls r2, r2, #6
str r1, [r4, r2]
ldr r0, _021E7944 @ =0x04000050
ldr r2, [r4, r2]
blx FUN_020CF178
movs r0, #0x36
str r0, [r4, #0xc]
b _021E7CF8
_021E775E:
adds r0, #0xec
ldr r0, [r0]
bl FUN_02024B68
cmp r0, #0
bne _021E77AC
movs r2, #5
lsls r2, r2, #6
ldr r0, [r4, r2]
movs r1, #0x10
subs r0, r0, #1
str r0, [r4, r2]
ldr r0, _021E7944 @ =0x04000050
ldr r2, [r4, r2]
blx FUN_020CF178
movs r0, #5
lsls r0, r0, #6
ldr r0, [r4, r0]
cmp r0, #0
bne _021E77AC
adds r0, r4, #0
adds r0, #0xec
ldr r0, [r0]
movs r1, #2
bl FUN_020248F0
movs r0, #0xb7
adds r1, r5, #0
bl FUN_02006218
movs r0, #0x37
str r0, [r4, #0xc]
b _021E7CF8
_021E77A2:
movs r1, #0x28
bl ov53_021E60CC
cmp r0, #1
beq _021E77AE
_021E77AC:
b _021E7CF8
_021E77AE:
movs r0, #0x38
str r0, [r4, #0xc]
b _021E7CF8
_021E77B4:
movs r1, #0x23
movs r2, #1
bl ov53_021E611C
cmp r0, #1
bne _021E78B2
movs r0, #0x39
str r0, [r4, #0xc]
b _021E7CF8
_021E77C6:
movs r1, #0x65
movs r2, #1
bl ov53_021E5EDC
cmp r0, #1
bne _021E78B2
movs r0, #0x3a
str r0, [r4, #0xc]
b _021E7CF8
_021E77D8:
movs r1, #0x1e
bl ov53_021E60CC
cmp r0, #1
bne _021E78B2
movs r0, #0x3b
str r0, [r4, #0xc]
b _021E7CF8
_021E77E8:
movs r1, #1
adds r2, r1, #0
bl ov53_021E6F00
cmp r0, #1
bne _021E78B2
movs r0, #0x3c
str r0, [r4, #0xc]
b _021E7CF8
_021E77FA:
movs r1, #0x24
movs r2, #1
bl ov53_021E611C
cmp r0, #1
bne _021E78B2
movs r0, #0x3d
str r0, [r4, #0xc]
ldr r0, _021E7948 @ =0x00000163
adds r1, r5, #0
strb r1, [r4, r0]
movs r1, #2
subs r0, r0, #2
strb r1, [r4, r0]
b _021E7CF8
_021E7818:
movs r1, #0x25
movs r2, #1
bl ov53_021E611C
cmp r0, #1
bne _021E78B2
movs r0, #0x3e
str r0, [r4, #0xc]
movs r0, #6
str r0, [sp]
adds r1, r5, #0
movs r0, #1
str r0, [sp, #4]
ldr r0, [r4]
adds r2, r1, #0
str r0, [sp, #8]
movs r0, #4
adds r3, r1, #0
bl FUN_0200FA24
b _021E7CF8
_021E7842:
bl FUN_0200FB5C
cmp r0, #1
bne _021E78B2
movs r0, #0x3f
str r0, [r4, #0xc]
b _021E7CF8
_021E7850:
adds r1, r5, #0
bl ov53_021E7E08
movs r0, #4
adds r1, r5, #0
bl FUN_0201BC28
adds r0, r4, #0
movs r1, #4
bl ov53_021E67C4
adds r0, r4, #0
movs r1, #2
bl ov53_021E80B8
ldr r0, [r4, #0x18]
movs r1, #6
bl FUN_0201CAE0
movs r0, #6
movs r1, #1
str r0, [sp]
str r1, [sp, #4]
ldr r0, [r4]
adds r2, r1, #0
str r0, [sp, #8]
movs r0, #4
adds r3, r5, #0
bl FUN_0200FA24
movs r0, #0x40
str r0, [r4, #0xc]
b _021E7CF8
_021E7892:
bl FUN_0200FB5C
cmp r0, #1
bne _021E78B2
movs r0, #0x5f
lsls r0, r0, #2
ldr r1, [r4, r0]
subs r0, #0x19
strb r1, [r4, r0]
movs r0, #0x41
str r0, [r4, #0xc]
b _021E7CF8
_021E78AA:
bl ov53_021E6CE0
cmp r0, #0
bne _021E78B4
_021E78B2:
b _021E7CF8
_021E78B4:
movs r0, #0x42
str r0, [r4, #0xc]
ldr r0, _021E7948 @ =0x00000163
ldrb r1, [r4, r0]
subs r0, #0x2f
strh r1, [r4, r0]
b _021E7CF8
_021E78C2:
str r5, [sp]
movs r0, #0x10
str r0, [sp, #4]
movs r0, #0x17
str r0, [sp, #8]
str r5, [sp, #0xc]
ldr r3, _021E7948 @ =0x00000163
movs r2, #1
ldrb r3, [r4, r3]
ldr r0, [r4, #0x18]
movs r1, #7
eors r3, r2
lsls r3, r3, #0x1c
lsrs r3, r3, #0x18
bl FUN_0201C8C4
ldr r0, [r4, #0x18]
movs r1, #6
bl FUN_0201BF7C
ldr r0, [r4, #0x18]
movs r1, #7
bl FUN_0201BF7C
ldr r0, [r4, #0x18]
movs r1, #4
bl FUN_0201CAE0
movs r1, #0x4d
lsls r1, r1, #2
ldrh r1, [r4, r1]
adds r0, r4, #0
bl ov53_021E80B8
movs r0, #0x4d
lsls r0, r0, #2
ldrh r1, [r4, r0]
cmp r1, #0
bne _021E7914
movs r1, #0x26
b _021E7916
_021E7914:
movs r1, #0x27
_021E7916:
adds r0, #0x3c
str r1, [r4, r0]
movs r0, #0x43
str r0, [r4, #0xc]
b _021E7CF8
_021E7920:
movs r1, #0x17
lsls r1, r1, #4
ldr r1, [r4, r1]
movs r2, #1
bl ov53_021E611C
cmp r0, #1
bne _021E79B8
movs r0, #0x44
str r0, [r4, #0xc]
b _021E7CF8
nop
_021E7938: .4byte 0x000003F1
_021E793C: .4byte 0x000003F2
_021E7940: .4byte 0x00000706
_021E7944: .4byte 0x04000050
_021E7948: .4byte 0x00000163
_021E794C:
movs r0, #0x16
lsls r0, r0, #4
adds r0, r4, r0
movs r1, #1
bl ov53_021E6908
adds r0, r4, #0
movs r1, #1
bl ov53_021E6824
movs r0, #2
str r0, [sp]
adds r0, r4, #0
movs r1, #0x2f
movs r2, #0x30
adds r3, r5, #0
bl ov53_021E64C4
movs r0, #0x45
str r0, [r4, #0xc]
ldr r0, _021E7C80 @ =0x00000163
adds r1, r5, #0
strb r1, [r4, r0]
b _021E7CF8
_021E797C:
movs r0, #4
movs r1, #1
bl FUN_0201BC28
movs r0, #6
movs r1, #1
bl FUN_0201BC28
movs r1, #0x4d
lsls r1, r1, #2
ldrh r1, [r4, r1]
adds r0, r4, #0
adds r1, r1, #1
bl ov53_021E6988
subs r1, r5, #1
cmp r0, r1
beq _021E79B8
adds r0, r4, #0
bl ov53_021E65B4
movs r0, #0x46
str r0, [r4, #0xc]
b _021E7CF8
_021E79AC:
ldr r0, _021E7C80 @ =0x00000163
ldrb r0, [r4, r0]
cmp r0, #0
beq _021E79BA
cmp r0, #1
beq _021E79C0
_021E79B8:
b _021E7CF8
_021E79BA:
movs r0, #0x5d
str r0, [r4, #0xc]
b _021E7CF8
_021E79C0:
movs r0, #0x47
str r0, [r4, #0xc]
movs r0, #6
str r0, [sp]
movs r0, #1
str r0, [sp, #4]
ldr r0, [r4]
adds r1, r5, #0
str r0, [sp, #8]
movs r0, #4
adds r2, r5, #0
adds r3, r5, #0
bl FUN_0200FA24
b _021E7CF8
_021E79DE:
bl FUN_0200FB5C
cmp r0, #1
bne _021E7A6E
movs r0, #5
adds r1, r5, #0
bl FUN_0201BC28
movs r0, #6
adds r1, r5, #0
bl FUN_0201BC28
adds r0, r4, #0
movs r1, #3
bl ov53_021E80B8
adds r0, r4, #0
movs r1, #1
bl ov53_021E67C4
ldr r0, [r4, #0x18]
movs r1, #4
bl FUN_0201CAE0
adds r2, r5, #0
ldr r0, [r4, #0x18]
movs r1, #4
adds r3, r2, #0
bl FUN_0201F238
adds r0, r4, #0
bl ov53_021E6CB0
movs r0, #6
movs r1, #1
str r0, [sp]
str r1, [sp, #4]
ldr r0, [r4]
adds r2, r1, #0
str r0, [sp, #8]
movs r0, #4
adds r3, r5, #0
bl FUN_0200FA24
movs r0, #0x48
str r0, [r4, #0xc]
b _021E7CF8
_021E7A3C:
bl FUN_0200FB5C
cmp r0, #1
bne _021E7A6E
adds r0, r4, #0
movs r1, #1
bl ov53_021E7E08
movs r0, #0x3d
str r0, [r4, #0xc]
b _021E7CF8
_021E7A52:
movs r1, #0x28
movs r2, #1
bl ov53_021E611C
cmp r0, #1
bne _021E7A6E
movs r0, #0x5e
str r0, [r4, #0xc]
b _021E7CF8
_021E7A64:
movs r1, #0x28
bl ov53_021E60CC
cmp r0, #0
bne _021E7A70
_021E7A6E:
b _021E7CF8
_021E7A70:
movs r0, #0x5f
str r0, [r4, #0xc]
b _021E7CF8
_021E7A76:
movs r0, #0x12
lsls r0, r0, #4
ldr r0, [r4, r0]
ldr r0, [r0, #0x18]
bl FUN_020263AC
movs r1, #0x4d
lsls r1, r1, #2
adds r0, r1, #0
ldrh r2, [r4, r1]
subs r0, #0x14
ldr r0, [r4, r0]
subs r1, #0x14
str r2, [r0, #4]
ldr r0, _021E7C84 @ =0x02102610
ldr r1, [r4, r1]
ldr r2, [r4]
bl FUN_0200724C
str r0, [r4, #0x14]
movs r0, #0x60
str r0, [r4, #0xc]
b _021E7CF8
_021E7AA4:
adds r0, r5, #0
movs r1, #1
bl FUN_0201BC28
movs r0, #1
adds r1, r0, #0
bl FUN_0201BC28
movs r0, #3
movs r1, #1
bl FUN_0201BC28
movs r0, #4
movs r1, #1
bl FUN_0201BC28
movs r0, #7
movs r1, #1
bl FUN_0201BC28
movs r0, #6
movs r1, #1
bl FUN_0201BC28
adds r2, r5, #0
ldr r0, [r4, #0x18]
movs r1, #1
adds r3, r2, #0
bl FUN_0201BC8C
adds r0, r4, #0
bl ov53_021E7D04
movs r0, #6
movs r1, #1
str r0, [sp]
str r1, [sp, #4]
ldr r0, [r4]
adds r2, r1, #0
str r0, [sp, #8]
adds r0, r5, #0
adds r3, r0, #0
bl FUN_0200FA24
movs r0, #0x61
str r0, [r4, #0xc]
adds r0, r4, #0
movs r1, #1
adds r2, r5, #0
bl ov53_021E66E8
movs r1, #0x4d
lsls r1, r1, #2
ldrh r1, [r4, r1]
adds r0, r4, #0
bl ov53_021E80B8
movs r0, #0x4d
lsls r0, r0, #2
ldrh r1, [r4, r0]
cmp r1, #0
bne _021E7B28
movs r1, #0x29
adds r0, #0x3c
str r1, [r4, r0]
b _021E7CF8
_021E7B28:
movs r1, #0x2a
adds r0, #0x3c
str r1, [r4, r0]
b _021E7CF8
_021E7B30:
movs r1, #0x17
lsls r1, r1, #4
ldr r1, [r4, r1]
movs r2, #1
bl ov53_021E611C
cmp r0, #1
bne _021E7B7A
movs r0, #0x62
str r0, [r4, #0xc]
adds r0, #0xfe
adds r0, r4, r0
movs r1, #1
bl ov53_021E6908
b _021E7CF8
_021E7B50:
movs r1, #0x4d
lsls r1, r1, #2
ldrh r1, [r4, r1]
adds r1, r1, #1
bl ov53_021E6988
subs r1, r5, #1
cmp r0, r1
beq _021E7B7A
adds r0, r4, #0
bl ov53_021E65B4
movs r0, #0x63
str r0, [r4, #0xc]
b _021E7CF8
_021E7B6E:
ldr r0, _021E7C80 @ =0x00000163
ldrb r0, [r4, r0]
cmp r0, #0
beq _021E7B7C
cmp r0, #1
beq _021E7B82
_021E7B7A:
b _021E7CF8
_021E7B7C:
movs r0, #0x64
str r0, [r4, #0xc]
b _021E7CF8
_021E7B82:
movs r0, #6
str r0, [sp]
movs r0, #1
str r0, [sp, #4]
ldr r0, [r4]
adds r1, r5, #0
str r0, [sp, #8]
movs r0, #4
adds r2, r5, #0
adds r3, r5, #0
bl FUN_0200FA24
movs r0, #0x47
str r0, [r4, #0xc]
b _021E7CF8
_021E7BA0:
movs r0, #6
str r0, [sp]
movs r0, #1
str r0, [sp, #4]
ldr r0, [r4]
adds r1, r5, #0
str r0, [sp, #8]
movs r0, #4
adds r2, r5, #0
adds r3, r5, #0
bl FUN_0200FA24
movs r0, #0x65
str r0, [r4, #0xc]
b _021E7CF8
_021E7BBE:
bl FUN_0200FB5C
cmp r0, #1
beq _021E7BC8
b _021E7CF8
_021E7BC8:
movs r0, #6
adds r1, r5, #0
bl FUN_0201BC28
movs r0, #5
adds r1, r5, #0
bl FUN_0201BC28
adds r0, r4, #0
movs r1, #1
bl ov53_021E67C4
adds r0, r4, #0
movs r1, #3
bl ov53_021E80B8
ldr r0, [r4, #0x18]
movs r1, #4
bl FUN_0201CAE0
adds r2, r5, #0
ldr r0, [r4, #0x18]
movs r1, #4
adds r3, r2, #0
bl FUN_0201F238
adds r0, r4, #0
movs r1, #1
bl ov53_021E7E08
movs r0, #6
movs r1, #1
str r0, [sp]
str r1, [sp, #4]
ldr r0, [r4]
adds r2, r1, #0
str r0, [sp, #8]
movs r0, #4
adds r3, r5, #0
bl FUN_0200FA24
movs r0, #0x66
str r0, [r4, #0xc]
b _021E7CF8
_021E7C20:
bl FUN_0200FB5C
cmp r0, #1
bne _021E7CF8
movs r0, #0x67
str r0, [r4, #0xc]
b _021E7CF8
_021E7C2E:
movs r1, #0x2b
movs r2, #1
bl ov53_021E611C
cmp r0, #1
bne _021E7CF8
movs r0, #0x6e
str r0, [r4, #0xc]
b _021E7CF8
_021E7C40:
movs r0, #6
str r0, [sp]
movs r0, #1
str r0, [sp, #4]
ldr r0, [r4]
adds r1, r5, #0
str r0, [sp, #8]
adds r0, r5, #0
adds r2, r5, #0
adds r3, r5, #0
bl FUN_0200FA24
movs r0, #0x6f
str r0, [r4, #0xc]
b _021E7CF8
_021E7C5E:
bl FUN_0200FB5C
cmp r0, #1
bne _021E7CF8
movs r0, #0x78
str r0, [r4, #0xc]
b _021E7CF8
_021E7C6C:
movs r1, #0x4d
lsls r1, r1, #2
ldrh r1, [r4, r1]
cmp r1, #0
bne _021E7C88
movs r1, #2
adds r2, r5, #0
bl ov53_021E66E8
b _021E7C90
.align 2, 0
_021E7C80: .4byte 0x00000163
_021E7C84: .4byte 0x02102610
_021E7C88:
movs r1, #6
adds r2, r5, #0
bl ov53_021E66E8
_021E7C90:
movs r0, #6
movs r1, #1
str r0, [sp]
str r1, [sp, #4]
ldr r0, [r4]
adds r2, r1, #0
str r0, [sp, #8]
movs r0, #0
adds r3, r0, #0
bl FUN_0200FA24
movs r0, #0x79
str r0, [r4, #0xc]
movs r0, #0
adds r1, r0, #0
bl FUN_0201BC28
b _021E7CF8
_021E7CB4:
bl FUN_0200FB5C
cmp r0, #1
bne _021E7CC0
movs r0, #0x7b
str r0, [r4, #0xc]
_021E7CC0:
movs r0, #0x7c
str r0, [r4, #0xc]
b _021E7CF8
_021E7CC6:
adds r1, r5, #0
bl ov53_021E7E08
adds r0, r4, #0
bl ov53_021E6DF0
movs r0, #0x7d
str r0, [r4, #0xc]
b _021E7CF8
_021E7CD8:
movs r1, #0x1e
bl ov53_021E60CC
cmp r0, #1
bne _021E7CF8
ldr r0, _021E7D00 @ =0x00000918
bl FUN_0200604C
movs r0, #0x7e
str r0, [r4, #0xc]
b _021E7CF8
_021E7CEE:
bl ov53_021E6E00
cmp r0, #1
bne _021E7CF8
movs r5, #1
_021E7CF8:
adds r0, r5, #0
add sp, #0x10
pop {r3, r4, r5, pc}
nop
_021E7D00: .4byte 0x00000918
thumb_func_end ov53_021E6F9C
thumb_func_start ov53_021E7D04
ov53_021E7D04: @ 0x021E7D04
push {r4, lr}
sub sp, #0x10
adds r4, r0, #0
movs r1, #1
bl ov53_021E6824
adds r0, r4, #0
movs r1, #4
bl ov53_021E67C4
movs r0, #2
str r0, [sp]
adds r0, r4, #0
movs r1, #0x2f
movs r2, #0x30
movs r3, #0
bl ov53_021E64C4
movs r1, #0
movs r3, #0x4d
str r1, [sp]
movs r0, #0x10
str r0, [sp, #4]
movs r0, #0x17
str r0, [sp, #8]
str r1, [sp, #0xc]
lsls r3, r3, #2
ldrh r3, [r4, r3]
movs r2, #1
ldr r0, [r4, #0x18]
eors r3, r2
lsls r3, r3, #0x1c
movs r1, #7
lsrs r3, r3, #0x18
bl FUN_0201C8C4
ldr r0, [r4, #0x18]
movs r1, #7
bl FUN_0201BF7C
add sp, #0x10
pop {r4, pc}
thumb_func_end ov53_021E7D04
thumb_func_start ov53_021E7D58
ov53_021E7D58: @ 0x021E7D58
push {r4, lr}
adds r4, r0, #0
ldr r0, [r4, #0x18]
movs r1, #0
bl FUN_0201CAE0
ldr r0, [r4, #0x18]
movs r1, #4
bl FUN_0201CAE0
pop {r4, pc}
.align 2, 0
thumb_func_end ov53_021E7D58
thumb_func_start ov53_021E7D70
ov53_021E7D70: @ 0x021E7D70
push {r4, r5, r6, lr}
sub sp, #0x10
adds r5, r0, #0
movs r0, #1
ldr r1, [r5]
lsls r0, r0, #0xa
bl FUN_02026354
adds r6, r0, #0
movs r0, #1
lsls r0, r0, #8
adds r4, r5, #0
ldr r0, [r5, r0]
movs r1, #0x3c
adds r2, r6, #0
adds r4, #0x6c
bl FUN_0200BB6C
ldr r0, [r5, #0x18]
ldr r2, _021E7DD4 @ =0x021E8518
adds r1, r4, #0
bl FUN_0201D4F8
adds r0, r4, #0
movs r1, #0
bl FUN_0201D978
movs r3, #0
str r3, [sp]
ldr r0, _021E7DD8 @ =0x000F0100
str r3, [sp, #4]
str r0, [sp, #8]
adds r0, r4, #0
movs r1, #4
adds r2, r6, #0
str r3, [sp, #0xc]
bl FUN_020200FC
adds r0, r4, #0
bl FUN_0201D578
adds r0, r4, #0
bl FUN_0201D520
adds r0, r6, #0
bl FUN_02026380
add sp, #0x10
pop {r4, r5, r6, pc}
nop
_021E7DD4: .4byte 0x021E8518
_021E7DD8: .4byte 0x000F0100
thumb_func_end ov53_021E7D70
thumb_func_start ov53_021E7DDC
ov53_021E7DDC: @ 0x021E7DDC
push {r4, lr}
adds r4, r0, #0
adds r4, #0x6c
ldr r0, [r0, #0x18]
ldr r2, _021E7E04 @ =0x021E8518
adds r1, r4, #0
bl FUN_0201D4F8
adds r0, r4, #0
movs r1, #0
bl FUN_0201D978
adds r0, r4, #0
bl FUN_0201D578
adds r0, r4, #0
bl FUN_0201D520
pop {r4, pc}
nop
_021E7E04: .4byte 0x021E8518
thumb_func_end ov53_021E7DDC
thumb_func_start ov53_021E7E08
ov53_021E7E08: @ 0x021E7E08
push {r3, r4, r5, lr}
adds r4, r0, #0
adds r5, r1, #0
cmp r4, #0
bne _021E7E16
bl GF_AssertFail
_021E7E16:
cmp r5, #3
bhi _021E7E8E
adds r0, r5, r5
add r0, pc
ldrh r0, [r0, #6]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
add pc, r0
_021E7E26: @ jump table
.2byte _021E7E2E - _021E7E26 - 2 @ case 0
.2byte _021E7E52 - _021E7E26 - 2 @ case 1
.2byte _021E7E76 - _021E7E26 - 2 @ case 2
.2byte _021E7E82 - _021E7E26 - 2 @ case 3
_021E7E2E:
adds r0, r4, #0
adds r0, #0xe4
ldr r0, [r0]
bl FUN_020248B8
cmp r0, #1
beq _021E7E40
bl GF_AssertFail
_021E7E40:
adds r0, r4, #0
bl ov53_021E7DDC
adds r4, #0xe4
ldr r0, [r4]
movs r1, #0
bl FUN_02024830
pop {r3, r4, r5, pc}
_021E7E52:
adds r0, r4, #0
adds r0, #0xe4
ldr r0, [r0]
bl FUN_020248B8
cmp r0, #0
beq _021E7E64
bl GF_AssertFail
_021E7E64:
adds r0, r4, #0
bl ov53_021E7D70
adds r4, #0xe4
ldr r0, [r4]
movs r1, #1
bl FUN_02024830
pop {r3, r4, r5, pc}
_021E7E76:
adds r4, #0xe4
ldr r0, [r4]
movs r1, #1
bl FUN_020248F0
pop {r3, r4, r5, pc}
_021E7E82:
adds r4, #0xe4
ldr r0, [r4]
movs r1, #0
bl FUN_020248F0
pop {r3, r4, r5, pc}
_021E7E8E:
bl GF_AssertFail
pop {r3, r4, r5, pc}
thumb_func_end ov53_021E7E08
thumb_func_start ov53_021E7E94
ov53_021E7E94: @ 0x021E7E94
push {r3, lr}
adds r0, #0xe4
ldr r0, [r0]
bl FUN_020249A8
cmp r0, #1
bne _021E7EA6
movs r0, #1
pop {r3, pc}
_021E7EA6:
movs r0, #0
pop {r3, pc}
.align 2, 0
thumb_func_end ov53_021E7E94
thumb_func_start ov53_021E7EAC
ov53_021E7EAC: @ 0x021E7EAC
push {r4, lr}
adds r4, r0, #0
bne _021E7EB6
bl GF_AssertFail
_021E7EB6:
adds r4, #0xe4
ldr r0, [r4]
bl FUN_020248B8
cmp r0, #1
bne _021E7EC6
movs r0, #1
pop {r4, pc}
_021E7EC6:
movs r0, #0
pop {r4, pc}
.align 2, 0
thumb_func_end ov53_021E7EAC
thumb_func_start ov53_021E7ECC
ov53_021E7ECC: @ 0x021E7ECC
push {r3, r4, r5, lr}
adds r4, r0, #0
bl ov53_021E7EAC
cmp r0, #0
beq _021E7F18
ldr r0, _021E7F1C @ =0x021E8510
bl FUN_02025204
adds r5, r0, #0
bne _021E7EFA
bl FUN_02025358
cmp r0, #0
beq _021E7EFA
ldr r0, _021E7F20 @ =0x021D110C
movs r1, #1
str r1, [r0, #0x5c]
adds r0, r4, #0
movs r1, #2
bl ov53_021E7E08
pop {r3, r4, r5, pc}
_021E7EFA:
cmp r5, #0
bne _021E7F10
adds r0, r4, #0
bl ov53_021E7E94
cmp r0, #0
beq _021E7F10
ldr r0, _021E7F20 @ =0x021D110C
movs r1, #1
str r1, [r0, #0x5c]
pop {r3, r4, r5, pc}
_021E7F10:
adds r0, r4, #0
movs r1, #3
bl ov53_021E7E08
_021E7F18:
pop {r3, r4, r5, pc}
nop
_021E7F1C: .4byte 0x021E8510
_021E7F20: .4byte 0x021D110C
thumb_func_end ov53_021E7ECC
thumb_func_start ov53_021E7F24
ov53_021E7F24: @ 0x021E7F24
push {r3, r4, r5, r6, lr}
sub sp, #0x44
adds r4, r0, #0
movs r0, #0x10
movs r1, #1
bl FUN_02022C60
movs r0, #0x10
movs r1, #1
bl FUN_02022CC8
movs r0, #0x20
movs r1, #0x50
bl FUN_0202055C
movs r0, #0x50
bl FUN_0200CF18
adds r1, r4, #0
adds r1, #0xd0
str r0, [r1]
adds r0, r4, #0
adds r0, #0xd0
ldr r0, [r0]
bl FUN_0200CF38
adds r1, r4, #0
adds r1, #0xd4
add r2, sp, #0x24
ldr r5, _021E7FE0 @ =0x021E8764
str r0, [r1]
ldm r5!, {r0, r1}
adds r3, r2, #0
stm r2!, {r0, r1}
ldm r5!, {r0, r1}
stm r2!, {r0, r1}
ldm r5!, {r0, r1}
stm r2!, {r0, r1}
ldm r5!, {r0, r1}
ldr r6, _021E7FE4 @ =0x021E8750
stm r2!, {r0, r1}
add r5, sp, #0x10
ldm r6!, {r0, r1}
adds r2, r5, #0
stm r5!, {r0, r1}
ldm r6!, {r0, r1}
stm r5!, {r0, r1}
ldr r0, [r6]
adds r1, r3, #0
str r0, [r5]
adds r0, r4, #0
adds r0, #0xd0
ldr r0, [r0]
movs r3, #0x20
bl FUN_0200CF70
adds r0, r4, #0
adds r1, r4, #0
adds r0, #0xd0
adds r1, #0xd4
ldr r0, [r0]
ldr r1, [r1]
movs r2, #0xa
bl FUN_0200CFF4
adds r0, r4, #0
adds r0, #0xd0
ldr r0, [r0]
bl FUN_0200CF6C
movs r2, #3
movs r1, #0
lsls r2, r2, #0x12
bl FUN_02009FC8
ldr r3, _021E7FE8 @ =0x021E8740
add r2, sp, #0
movs r1, #7
_021E7FC0:
ldrh r0, [r3]
adds r3, r3, #2
strh r0, [r2]
adds r2, r2, #2
subs r1, r1, #1
bne _021E7FC0
adds r0, r4, #0
adds r0, #0xd0
adds r4, #0xd4
ldr r0, [r0]
ldr r1, [r4]
add r2, sp, #0
bl FUN_0200D294
add sp, #0x44
pop {r3, r4, r5, r6, pc}
.align 2, 0
_021E7FE0: .4byte 0x021E8764
_021E7FE4: .4byte 0x021E8750
_021E7FE8: .4byte 0x021E8740
thumb_func_end ov53_021E7F24
thumb_func_start ov53_021E7FEC
ov53_021E7FEC: @ 0x021E7FEC
push {r4, lr}
adds r4, r0, #0
adds r1, r4, #0
adds r0, #0xd0
adds r1, #0xd4
ldr r0, [r0]
ldr r1, [r1]
bl FUN_0200D0E4
adds r0, r4, #0
adds r0, #0xd0
ldr r0, [r0]
bl FUN_0200D108
bl FUN_020205AC
movs r0, #0
adds r4, #0xd4
str r0, [r4]
pop {r4, pc}
thumb_func_end ov53_021E7FEC
thumb_func_start ov53_021E8014
ov53_021E8014: @ 0x021E8014
push {r3, r4, r5, r6, r7, lr}
ldr r6, _021E80B4 @ =0x021E8784
adds r5, r0, #0
movs r4, #0
movs r7, #0x28
_021E801E:
adds r0, r5, #0
adds r1, r5, #0
adds r0, #0xd0
adds r1, #0xd4
adds r2, r4, #0
muls r2, r7, r2
ldr r0, [r0]
ldr r1, [r1]
adds r2, r6, r2
bl FUN_0200D2B4
lsls r1, r4, #2
adds r1, r5, r1
adds r1, #0xd8
str r0, [r1]
adds r0, r4, #1
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
cmp r4, #6
blo _021E801E
adds r0, r5, #0
adds r0, #0xd8
ldr r0, [r0]
movs r1, #0
bl FUN_02024830
adds r0, r5, #0
adds r0, #0xdc
ldr r0, [r0]
movs r1, #0
bl FUN_02024830
adds r0, r5, #0
adds r0, #0xe0
ldr r0, [r0]
movs r1, #0
bl FUN_02024830
adds r0, r5, #0
adds r0, #0xe4
ldr r0, [r0]
movs r1, #0
bl FUN_02024830
adds r0, r5, #0
adds r0, #0xe8
ldr r0, [r0]
movs r1, #0
bl FUN_02024830
adds r0, r5, #0
adds r0, #0xe4
ldr r0, [r0]
movs r1, #1
bl FUN_02024A04
adds r0, r5, #0
adds r0, #0xec
ldr r0, [r0]
movs r1, #1
bl FUN_0202484C
adds r0, r5, #0
adds r0, #0xec
ldr r0, [r0]
movs r1, #1
bl FUN_0202487C
adds r5, #0xec
ldr r0, [r5]
movs r1, #0
bl FUN_02024830
pop {r3, r4, r5, r6, r7, pc}
nop
_021E80B4: .4byte 0x021E8784
thumb_func_end ov53_021E8014
thumb_func_start ov53_021E80B8
ov53_021E80B8: @ 0x021E80B8
push {r3, r4, r5, lr}
movs r2, #0
adds r5, r0, #0
adds r4, r2, #0
cmp r1, #0
bne _021E80C8
movs r2, #1
b _021E80DC
_021E80C8:
cmp r1, #1
bne _021E80D0
movs r4, #1
b _021E80DC
_021E80D0:
cmp r1, #2
bne _021E80DA
movs r2, #1
adds r4, r2, #0
b _021E80DC
_021E80DA:
cmp r1, #3
_021E80DC:
adds r0, r5, #0
adds r0, #0xdc
ldr r0, [r0]
adds r1, r2, #0
bl FUN_02024830
adds r5, #0xe0
ldr r0, [r5]
adds r1, r4, #0
bl FUN_02024830
pop {r3, r4, r5, pc}
thumb_func_end ov53_021E80B8
thumb_func_start ov53_021E80F4
ov53_021E80F4: @ 0x021E80F4
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
adds r5, r0, #0
adds r6, r1, #0
adds r7, r2, #0
str r3, [sp]
cmp r5, #0
bne _021E8108
bl GF_AssertFail
_021E8108:
ldr r0, [sp, #0x24]
movs r1, #0x3c
str r0, [sp, #4]
bl FUN_0201AA8C
movs r1, #0
movs r2, #0x3c
adds r4, r0, #0
blx FUN_020D4994
ldr r0, [sp, #0x24]
str r0, [r4]
str r5, [r4, #0xc]
str r6, [r4, #0x10]
ldr r0, [sp]
strb r7, [r4, #0x19]
strb r0, [r4, #0x1a]
ldr r0, [sp, #0x20]
strb r0, [r4, #0x18]
ldr r0, [sp, #4]
bl FUN_0200BD08
str r0, [r4, #0x14]
adds r0, r6, #0
movs r1, #1
bl FUN_0202484C
adds r0, r4, #0
bl ov53_021E82BC
adds r0, r4, #0
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_end ov53_021E80F4
thumb_func_start ov53_021E814C
ov53_021E814C: @ 0x021E814C
push {r4, lr}
adds r4, r0, #0
bne _021E8156
bl GF_AssertFail
_021E8156:
adds r0, r4, #0
bl ov53_021E8310
ldr r0, [r4, #0x14]
bl FUN_0200BDA0
adds r0, r4, #0
bl FUN_0201AB0C
pop {r4, pc}
.align 2, 0
thumb_func_end ov53_021E814C
thumb_func_start ov53_021E816C
ov53_021E816C: @ 0x021E816C
push {r4, r5, r6, r7, lr}
sub sp, #0x14
adds r5, r0, #0
ldr r4, [r5]
ldrb r6, [r5, #0x19]
adds r7, r1, #0
movs r0, #0xef
adds r1, r4, #0
bl FUN_02007688
movs r1, #0x20
str r1, [sp]
movs r1, #0
movs r2, #4
lsls r3, r7, #5
str r0, [sp, #0x10]
str r4, [sp, #4]
bl FUN_02007B8C
movs r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
str r4, [sp, #0xc]
ldr r0, [sp, #0x10]
ldr r2, [r5, #0xc]
movs r1, #1
adds r3, r6, #0
bl FUN_02007B44
movs r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
str r4, [sp, #0xc]
ldr r0, [sp, #0x10]
ldr r2, [r5, #0xc]
movs r1, #0xa
adds r3, r6, #0
bl FUN_02007B68
movs r0, #0x20
str r0, [sp]
movs r0, #0x18
str r0, [sp, #4]
lsls r0, r7, #0x18
lsrs r0, r0, #0x18
str r0, [sp, #8]
movs r2, #0
ldr r0, [r5, #0xc]
adds r1, r6, #0
adds r3, r2, #0
bl FUN_0201CA4C
ldr r0, [r5, #0xc]
adds r1, r6, #0
bl FUN_0201BF7C
adds r0, r6, #0
movs r1, #0
bl FUN_0201BC28
ldr r0, [sp, #0x10]
bl FUN_0200770C
add sp, #0x14
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_end ov53_021E816C
thumb_func_start ov53_021E81F4
ov53_021E81F4: @ 0x021E81F4
push {r4, r5, r6, lr}
adds r5, r0, #0
adds r4, r1, #0
adds r1, r5, #0
adds r6, r3, #0
adds r1, #0x1c
adds r3, r4, #0
bl ov53_021E8330
adds r1, r5, #0
adds r0, r5, #0
adds r1, #0x2c
adds r2, r6, #0
adds r3, r4, #0
bl ov53_021E8330
ldrb r1, [r5, #0x1b]
movs r0, #0xf
bics r1, r0
strb r1, [r5, #0x1b]
ldrb r1, [r5, #0x1b]
movs r0, #0xf0
bics r1, r0
movs r0, #0x10
orrs r0, r1
strb r0, [r5, #0x1b]
adds r0, r5, #0
bl ov53_021E8390
ldrb r0, [r5, #0x19]
movs r1, #1
bl FUN_0201BC28
ldrb r0, [r5, #0x1a]
movs r1, #1
bl FUN_0201BC28
ldr r0, [r5, #0x10]
movs r1, #1
bl FUN_02024830
pop {r4, r5, r6, pc}
thumb_func_end ov53_021E81F4
thumb_func_start ov53_021E8248
ov53_021E8248: @ 0x021E8248
push {r4, lr}
adds r4, r0, #0
ldrb r1, [r4, #0x1b]
lsls r1, r1, #0x1c
lsrs r1, r1, #0x1c
beq _021E825A
cmp r1, #1
beq _021E827E
b _021E82B2
_021E825A:
bl ov53_021E83D4
cmp r0, #0
beq _021E82B6
ldrb r2, [r4, #0x1b]
movs r1, #0xf
adds r0, r2, #0
bics r0, r1
lsls r1, r2, #0x1c
lsrs r1, r1, #0x1c
adds r1, r1, #1
lsls r1, r1, #0x18
lsrs r2, r1, #0x18
movs r1, #0xf
ands r1, r2
orrs r0, r1
strb r0, [r4, #0x1b]
b _021E82B6
_021E827E:
bl ov53_021E84D4
cmp r0, #0
beq _021E82B6
ldrb r0, [r4, #0x1b]
lsls r0, r0, #0x18
lsrs r0, r0, #0x1c
bne _021E8292
bl GF_AssertFail
_021E8292:
ldrb r0, [r4, #0x19]
movs r1, #0
bl FUN_0201BC28
ldrb r0, [r4, #0x1a]
movs r1, #0
bl FUN_0201BC28
ldr r0, [r4, #0x10]
movs r1, #0
bl FUN_02024830
ldrb r0, [r4, #0x1b]
lsls r0, r0, #0x18
lsrs r0, r0, #0x1c
pop {r4, pc}
_021E82B2:
bl GF_AssertFail
_021E82B6:
movs r0, #0
pop {r4, pc}
.align 2, 0
thumb_func_end ov53_021E8248
thumb_func_start ov53_021E82BC
ov53_021E82BC: @ 0x021E82BC
push {r3, r4, lr}
sub sp, #0x14
adds r4, r0, #0
bne _021E82C8
bl GF_AssertFail
_021E82C8:
movs r0, #8
str r0, [sp]
movs r0, #0x18
str r0, [sp, #4]
movs r0, #2
str r0, [sp, #8]
ldrb r0, [r4, #0x18]
adds r1, r4, #0
adds r1, #0x1c
str r0, [sp, #0xc]
movs r0, #0x50
str r0, [sp, #0x10]
ldrb r2, [r4, #0x1a]
ldr r0, [r4, #0xc]
movs r3, #4
bl FUN_0201D40C
movs r0, #0xe
str r0, [sp]
movs r0, #0x18
str r0, [sp, #4]
movs r0, #2
str r0, [sp, #8]
ldrb r0, [r4, #0x18]
adds r1, r4, #0
adds r1, #0x2c
str r0, [sp, #0xc]
movs r0, #0x80
str r0, [sp, #0x10]
ldrb r2, [r4, #0x1a]
ldr r0, [r4, #0xc]
movs r3, #4
bl FUN_0201D40C
add sp, #0x14
pop {r3, r4, pc}
thumb_func_end ov53_021E82BC
thumb_func_start ov53_021E8310
ov53_021E8310: @ 0x021E8310
push {r3, r4, r5, lr}
adds r5, r0, #0
bne _021E831A
bl GF_AssertFail
_021E831A:
movs r4, #0
adds r5, #0x1c
_021E831E:
adds r0, r5, #0
bl FUN_0201D520
adds r4, r4, #1
adds r5, #0x10
cmp r4, #2
blt _021E831E
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_end ov53_021E8310
thumb_func_start ov53_021E8330
ov53_021E8330: @ 0x021E8330
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x10
adds r5, r0, #0
adds r6, r2, #0
adds r2, r3, #0
adds r4, r1, #0
ldr r3, [r5]
movs r0, #0
movs r1, #0x1b
bl FUN_0200BAF8
adds r7, r0, #0
ldr r0, [r5, #0x14]
ldr r3, [r5]
adds r1, r7, #0
adds r2, r6, #0
bl FUN_0200BC4C
adds r5, r0, #0
adds r0, r4, #0
movs r1, #0
bl FUN_0201D978
movs r3, #0
str r3, [sp]
ldr r0, _021E838C @ =0x000F0100
str r3, [sp, #4]
str r0, [sp, #8]
adds r0, r4, #0
movs r1, #4
adds r2, r5, #0
str r3, [sp, #0xc]
bl FUN_020200FC
adds r0, r4, #0
bl FUN_0201D578
adds r0, r7, #0
bl FUN_0200BB44
adds r0, r5, #0
bl FUN_02026380
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
nop
_021E838C: .4byte 0x000F0100
thumb_func_end ov53_021E8330
thumb_func_start ov53_021E8390
ov53_021E8390: @ 0x021E8390
push {r3, r4, r5, lr}
adds r5, r0, #0
ldr r0, [r5, #0x10]
cmp r0, #0
bne _021E839E
bl GF_AssertFail
_021E839E:
ldrb r0, [r5, #0x1b]
lsls r0, r0, #0x18
lsrs r0, r0, #0x1c
cmp r0, #1
beq _021E83AE
cmp r0, #2
beq _021E83B2
b _021E83B6
_021E83AE:
movs r4, #0
b _021E83BA
_021E83B2:
movs r4, #1
b _021E83BA
_021E83B6:
bl GF_AssertFail
_021E83BA:
ldr r1, _021E83CC @ =0x021E8874
lsls r3, r4, #2
ldr r2, _021E83D0 @ =0x021E8876
ldrsh r1, [r1, r3]
ldrsh r2, [r2, r3]
ldr r0, [r5, #0x10]
bl FUN_0200DD88
pop {r3, r4, r5, pc}
.align 2, 0
_021E83CC: .4byte 0x021E8874
_021E83D0: .4byte 0x021E8876
thumb_func_end ov53_021E8390
thumb_func_start ov53_021E83D4
ov53_021E83D4: @ 0x021E83D4
push {r4, r5, r6, lr}
adds r5, r0, #0
ldr r0, _021E84C8 @ =0x021E887C
movs r4, #0
bl FUN_02025224
adds r6, r0, #0
subs r0, r4, #1
cmp r6, r0
beq _021E841E
ldr r0, _021E84CC @ =0x000005DC
bl FUN_0200604C
cmp r6, #0
beq _021E83F8
cmp r6, #1
beq _021E8408
b _021E8418
_021E83F8:
ldrb r1, [r5, #0x1b]
movs r0, #0xf0
movs r4, #1
bics r1, r0
movs r0, #0x10
orrs r0, r1
strb r0, [r5, #0x1b]
b _021E84AA
_021E8408:
ldrb r1, [r5, #0x1b]
movs r0, #0xf0
movs r4, #1
bics r1, r0
movs r0, #0x20
orrs r0, r1
strb r0, [r5, #0x1b]
b _021E84AA
_021E8418:
bl GF_AssertFail
b _021E84AA
_021E841E:
ldr r0, _021E84D0 @ =0x021D110C
movs r1, #0x40
ldr r0, [r0, #0x48]
tst r1, r0
beq _021E844A
ldrb r1, [r5, #0x1b]
lsls r0, r1, #0x18
lsrs r0, r0, #0x1c
cmp r0, #1
beq _021E84AA
movs r0, #0xf0
bics r1, r0
movs r0, #0x10
orrs r0, r1
strb r0, [r5, #0x1b]
adds r0, r5, #0
bl ov53_021E8390
ldr r0, _021E84CC @ =0x000005DC
bl FUN_0200604C
b _021E84AA
_021E844A:
movs r1, #0x80
tst r1, r0
beq _021E8472
ldrb r1, [r5, #0x1b]
lsls r0, r1, #0x18
lsrs r0, r0, #0x1c
cmp r0, #2
beq _021E84AA
movs r0, #0xf0
bics r1, r0
movs r0, #0x20
orrs r0, r1
strb r0, [r5, #0x1b]
adds r0, r5, #0
bl ov53_021E8390
ldr r0, _021E84CC @ =0x000005DC
bl FUN_0200604C
b _021E84AA
_021E8472:
movs r2, #1
adds r1, r0, #0
tst r1, r2
beq _021E8496
ldrb r0, [r5, #0x1b]
lsls r0, r0, #0x18
lsrs r0, r0, #0x1c
bne _021E8492
bl GF_AssertFail
ldrb r1, [r5, #0x1b]
movs r0, #0xf0
bics r1, r0
movs r0, #0x20
orrs r0, r1
strb r0, [r5, #0x1b]
_021E8492:
movs r4, #1
b _021E84AA
_021E8496:
movs r1, #2
tst r0, r1
beq _021E84AA
ldrb r1, [r5, #0x1b]
movs r0, #0xf0
adds r4, r2, #0
bics r1, r0
movs r0, #0x20
orrs r0, r1
strb r0, [r5, #0x1b]
_021E84AA:
cmp r4, #0
beq _021E84C2
adds r0, r5, #0
bl ov53_021E8390
ldr r0, [r5, #0x10]
movs r1, #3
bl FUN_020248F0
ldr r0, _021E84CC @ =0x000005DC
bl FUN_0200604C
_021E84C2:
adds r0, r4, #0
pop {r4, r5, r6, pc}
nop
_021E84C8: .4byte 0x021E887C
_021E84CC: .4byte 0x000005DC
_021E84D0: .4byte 0x021D110C
thumb_func_end ov53_021E83D4
thumb_func_start ov53_021E84D4
ov53_021E84D4: @ 0x021E84D4
push {r4, lr}
adds r4, r0, #0
ldr r0, [r4, #0x10]
bl FUN_020249A8
cmp r0, #3
beq _021E84E6
bl GF_AssertFail
_021E84E6:
ldr r0, [r4, #0x10]
bl FUN_02024B68
cmp r0, #0
bne _021E84F4
movs r0, #1
pop {r4, pc}
_021E84F4:
movs r0, #0
pop {r4, pc}
thumb_func_end ov53_021E84D4
.rodata
_021E84F8:
.byte 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00
.byte 0x00, 0x02, 0x13, 0x1B, 0x04, 0x06, 0x6D, 0x03, 0x0C, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00
.byte 0x90, 0xBF, 0xA8, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x04, 0x18, 0x14, 0x07, 0x02, 0x0E, 0xA3, 0x00
.byte 0x00, 0x04, 0x00, 0x18, 0x18, 0x05, 0x2D, 0x01, 0x00, 0x04, 0x00, 0x18, 0x18, 0x05, 0x2D, 0x01
.byte 0x19, 0xAD, 0x12, 0x6F, 0x19, 0xAD, 0x90, 0xEF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCC, 0xFF
.byte 0xFE, 0xFF, 0xCC, 0xFF, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00
.byte 0x2B, 0x00, 0x00, 0x00, 0x2D, 0x00, 0x00, 0x00, 0x33, 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 0x08, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00
.byte 0x25, 0x00, 0x00, 0x00, 0x2E, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00
.byte 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00
.byte 0xFF, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00
.byte 0x1C, 0x00, 0x00, 0x00, 0x1D, 0x00, 0x00, 0x00, 0xFF, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC7, 0x01, 0x00, 0x00, 0x8F, 0x01, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0xAF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0xAF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x14, 0x32, 0x32, 0xD5, 0x4C, 0x6A, 0x32, 0xD5, 0x84, 0xA2, 0x32, 0xD5, 0xFF, 0x00, 0x00, 0x00
.byte 0x1A, 0x53, 0x8A, 0xFD, 0x6C, 0xA4, 0x8A, 0xFD, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x1A, 0x53, 0x0A, 0x7D, 0x6C, 0xA4, 0x0A, 0x7D, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x04, 0x02, 0x06, 0x0D, 0x03, 0x0E, 0x01, 0x00, 0x04, 0x02, 0x10, 0x0D, 0x03, 0x0E, 0x36, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x07, 0x03, 0x12, 0x03, 0x0E, 0x01, 0x00
.byte 0x04, 0x07, 0x0A, 0x12, 0x03, 0x0E, 0x37, 0x00, 0x04, 0x07, 0x11, 0x12, 0x03, 0x0E, 0x6D, 0x00
.byte 0x31, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x32, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x32, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x34, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00
.byte 0x0C, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00
.byte 0x0E, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00
.byte 0x11, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00
.byte 0x13, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00
.byte 0x1A, 0x00, 0x1B, 0x00, 0x19, 0x00, 0x18, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x4E, 0x00, 0x00, 0x00
.byte 0x0A, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00
.byte 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x40, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x01, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00
.byte 0xA0, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x48, 0x00, 0x80, 0x00, 0x78, 0x00, 0x32, 0x5C, 0x03, 0xFB
.byte 0x63, 0x8C, 0x03, 0xFB, 0xFF, 0x00, 0x00, 0x00
@ 0x021E8888