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

3591 lines
67 KiB
ArmAsm

thumb_func_start ov95_021E5900
ov95_021E5900: @ 0x021E5900
push {r3, lr}
bl FUN_02022C54
bl FUN_02022CBC
movs r2, #1
lsls r2, r2, #0x1a
ldr r1, [r2]
ldr r0, _021E5920 @ =0xFFFFE0FF
ands r1, r0
str r1, [r2]
ldr r2, _021E5924 @ =0x04001000
ldr r1, [r2]
ands r0, r1
str r0, [r2]
pop {r3, pc}
.align 2, 0
_021E5920: .4byte 0xFFFFE0FF
_021E5924: .4byte 0x04001000
thumb_func_end ov95_021E5900
thumb_func_start ov95_021E5928
ov95_021E5928: @ 0x021E5928
push {r3, lr}
movs r0, #7
str r0, [sp]
ldr r0, _021E594C @ =0x04000050
movs r1, #0
movs r2, #0xe
movs r3, #0xb
blx FUN_020CF15C
movs r0, #8
str r0, [sp]
ldr r0, _021E5950 @ =0x04001050
movs r1, #0
movs r2, #0xe
movs r3, #7
blx FUN_020CF15C
pop {r3, pc}
.align 2, 0
_021E594C: .4byte 0x04000050
_021E5950: .4byte 0x04001050
thumb_func_end ov95_021E5928
thumb_func_start ov95_021E5954
ov95_021E5954: @ 0x021E5954
push {r3, lr}
sub sp, #8
movs r2, #2
movs r1, #0
ldr r0, _021E5970 @ =ov95_021E5974
str r2, [sp]
str r0, [sp, #4]
movs r0, #0x46
adds r3, r1, #0
bl FUN_02026EB4
add sp, #8
pop {r3, pc}
nop
_021E5970: .4byte ov95_021E5974
thumb_func_end ov95_021E5954
thumb_func_start ov95_021E5974
ov95_021E5974: @ 0x021E5974
push {r3, lr}
movs r0, #1
adds r1, r0, #0
bl FUN_02022C60
ldr r0, _021E59E0 @ =0x04000008
movs r1, #3
ldrh r2, [r0]
bics r2, r1
movs r1, #1
orrs r1, r2
strh r1, [r0]
adds r0, #0x58
ldrh r2, [r0]
ldr r1, _021E59E4 @ =0xFFFFCFFD
ands r2, r1
strh r2, [r0]
adds r2, r1, #2
ldrh r3, [r0]
adds r1, r1, #2
ands r3, r2
movs r2, #0x10
orrs r2, r3
strh r2, [r0]
ldrh r3, [r0]
ldr r2, _021E59E8 @ =0x0000CFFB
ands r3, r2
strh r3, [r0]
ldrh r3, [r0]
subs r2, #0x1c
ands r3, r1
movs r1, #8
orrs r1, r3
strh r1, [r0]
ldrh r1, [r0]
ands r1, r2
strh r1, [r0]
movs r0, #0
adds r1, r0, #0
adds r2, r0, #0
adds r3, r0, #0
blx FUN_020CF82C
movs r0, #0
ldr r2, _021E59EC @ =0x00007FFF
adds r1, r0, #0
movs r3, #0x3f
str r0, [sp]
blx FUN_020CF910
ldr r1, _021E59F0 @ =0xBFFF0000
ldr r0, _021E59F4 @ =0x04000580
str r1, [r0]
pop {r3, pc}
.align 2, 0
_021E59E0: .4byte 0x04000008
_021E59E4: .4byte 0xFFFFCFFD
_021E59E8: .4byte 0x0000CFFB
_021E59EC: .4byte 0x00007FFF
_021E59F0: .4byte 0xBFFF0000
_021E59F4: .4byte 0x04000580
thumb_func_end ov95_021E5974
thumb_func_start ov95_021E59F8
ov95_021E59F8: @ 0x021E59F8
push {r3, r4, r5, lr}
ldr r3, _021E5A30 @ =0x02110924
movs r0, #2
movs r1, #0
ldr r3, [r3]
lsls r0, r0, #0xe
adds r2, r1, #0
blx r3
ldr r3, _021E5A34 @ =0x0211092C
movs r1, #0
adds r4, r0, #0
ldr r3, [r3]
movs r0, #0x80
adds r2, r1, #0
blx r3
adds r5, r0, #0
cmp r4, #0
bne _021E5A20
bl GF_AssertFail
_021E5A20:
cmp r5, #0
bne _021E5A28
bl GF_AssertFail
_021E5A28:
bl FUN_02014DA0
pop {r3, r4, r5, pc}
nop
_021E5A30: .4byte 0x02110924
_021E5A34: .4byte 0x0211092C
thumb_func_end ov95_021E59F8
thumb_func_start ov95_021E5A38
ov95_021E5A38: @ 0x021E5A38
push {r4, r5, lr}
sub sp, #0x8c
adds r4, r0, #0
bl FUN_02022C54
ldr r5, _021E5B14 @ =0x021E75B4
add r3, sp, #0x10
movs r2, #5
_021E5A48:
ldm r5!, {r0, r1}
stm r3!, {r0, r1}
subs r2, r2, #1
bne _021E5A48
add r0, sp, #0x10
bl FUN_02022BE8
movs r1, #6
movs r2, #2
movs r0, #0
lsls r1, r1, #0x18
lsls r2, r2, #0x12
blx FUN_020D47EC
movs r1, #0x62
movs r2, #2
movs r0, #0
lsls r1, r1, #0x14
lsls r2, r2, #0x10
blx FUN_020D47EC
movs r1, #0x19
movs r2, #1
movs r0, #0
lsls r1, r1, #0x16
lsls r2, r2, #0x12
blx FUN_020D47EC
movs r1, #0x66
movs r2, #2
movs r0, #0
lsls r1, r1, #0x14
lsls r2, r2, #0x10
blx FUN_020D47EC
ldr r5, _021E5B18 @ =_021E7538
add r3, sp, #0
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, _021E5B1C @ =0x021E767C
add r3, sp, #0x38
movs r2, #0xa
_021E5AA8:
ldm r5!, {r0, r1}
stm r3!, {r0, r1}
subs r2, r2, #1
bne _021E5AA8
ldr r0, [r5]
movs r1, #1
str r0, [r3]
adds r0, r4, #0
add r2, sp, #0x38
movs r3, #0
bl FUN_0201B1E4
adds r0, r4, #0
movs r1, #2
add r2, sp, #0x54
movs r3, #0
bl FUN_0201B1E4
adds r0, r4, #0
movs r1, #3
add r2, sp, #0x70
movs r3, #0
bl FUN_0201B1E4
adds r0, r4, #0
movs r1, #1
bl FUN_0201CAE0
adds r0, r4, #0
movs r1, #2
bl FUN_0201CAE0
adds r0, r4, #0
movs r1, #3
bl FUN_0201CAE0
ldr r1, _021E5B20 @ =0x04000008
movs r0, #3
ldrh r2, [r1]
bics r2, r0
movs r0, #1
orrs r2, r0
strh r2, [r1]
adds r1, r0, #0
bl FUN_02022C60
bl FUN_02022D24
movs r0, #0x10
movs r1, #1
bl FUN_02022C60
add sp, #0x8c
pop {r4, r5, pc}
.align 2, 0
_021E5B14: .4byte 0x021E75B4
_021E5B18: .4byte _021E7538
_021E5B1C: .4byte 0x021E767C
_021E5B20: .4byte 0x04000008
thumb_func_end ov95_021E5A38
thumb_func_start ov95_021E5B24
ov95_021E5B24: @ 0x021E5B24
push {r4, lr}
adds r4, r0, #0
ldr r0, [r4, #0x3c]
bl FUN_02009418
bl FUN_0202061C
bl FUN_0200D034
ldr r0, [r4, #8]
bl FUN_0200398C
ldr r0, [r4, #4]
bl FUN_0201EEB4
ldr r3, _021E5B50 @ =0x027E0000
ldr r1, _021E5B54 @ =0x00003FF8
movs r0, #1
ldr r2, [r3, r1]
orrs r0, r2
str r0, [r3, r1]
pop {r4, pc}
.align 2, 0
_021E5B50: .4byte 0x027E0000
_021E5B54: .4byte 0x00003FF8
thumb_func_end ov95_021E5B24
thumb_func_start ov95_021E5B58
ov95_021E5B58: @ 0x021E5B58
push {r3, lr}
bl FUN_02026E48
bl FUN_0201543C
cmp r0, #0
ble _021E5B6E
bl FUN_02026E48
blx FUN_020B7350
_021E5B6E:
bl FUN_02015460
movs r0, #1
movs r1, #0
bl FUN_02026E50
pop {r3, pc}
thumb_func_end ov95_021E5B58
thumb_func_start ov95_021E5B7C
ov95_021E5B7C: @ 0x021E5B7C
push {lr}
sub sp, #0xc
movs r0, #6
str r0, [sp]
movs r1, #1
str r1, [sp, #4]
movs r0, #0x46
str r0, [sp, #8]
movs r0, #0
adds r2, r1, #0
adds r3, r0, #0
bl FUN_0200FA24
add sp, #0xc
pop {pc}
.align 2, 0
thumb_func_end ov95_021E5B7C
thumb_func_start ov95_021E5B9C
ov95_021E5B9C: @ 0x021E5B9C
push {lr}
sub sp, #0xc
movs r0, #6
str r0, [sp]
movs r0, #1
str r0, [sp, #4]
movs r0, #0x46
str r0, [sp, #8]
movs r0, #0
adds r1, r0, #0
adds r2, r0, #0
adds r3, r0, #0
bl FUN_0200FA24
add sp, #0xc
pop {pc}
thumb_func_end ov95_021E5B9C
thumb_func_start ov95_021E5BBC
ov95_021E5BBC: @ 0x021E5BBC
push {r3, r4, r5, r6, lr}
sub sp, #0xc
adds r6, r2, #0
adds r4, r1, #0
lsls r1, r6, #0x18
lsrs r1, r1, #0x18
str r1, [sp]
movs r1, #0x46
str r1, [sp, #4]
movs r1, #1
movs r2, #0x14
movs r3, #0xf
adds r5, r0, #0
bl FUN_0200E644
adds r0, r6, #0
bl FUN_0200E640
adds r2, r0, #0
movs r0, #0
str r0, [sp]
movs r0, #0x20
str r0, [sp, #4]
movs r0, #0xc0
str r0, [sp, #8]
adds r0, r4, #0
movs r1, #0x26
movs r3, #0x46
bl FUN_02003200
movs r0, #0
str r0, [sp]
movs r0, #0x46
str r0, [sp, #4]
adds r0, r5, #0
movs r1, #1
movs r2, #0x32
movs r3, #0xd
bl FUN_0200E3DC
bl FUN_0200E3D8
adds r2, r0, #0
movs r0, #0
str r0, [sp]
movs r0, #0x20
str r0, [sp, #4]
movs r0, #0xd0
str r0, [sp, #8]
adds r0, r4, #0
movs r1, #0x26
movs r3, #0x46
bl FUN_02003200
movs r0, #0
str r0, [sp]
movs r0, #0x20
str r0, [sp, #4]
movs r0, #0xe0
str r0, [sp, #8]
adds r0, r4, #0
movs r1, #0x10
movs r2, #8
movs r3, #0x46
bl FUN_02003200
add sp, #0xc
pop {r3, r4, r5, r6, pc}
thumb_func_end ov95_021E5BBC
thumb_func_start ov95_021E5C44
ov95_021E5C44: @ 0x021E5C44
push {r4, r5, r6, r7, lr}
sub sp, #0x14
adds r5, r1, #0
adds r7, r0, #0
adds r0, r5, #0
adds r4, r2, #0
adds r6, r3, #0
bl FUN_0201D3C4
ldr r0, [sp, #0x28]
lsls r2, r4, #0x18
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
str r0, [sp]
ldr r0, [sp, #0x2c]
lsls r3, r6, #0x18
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
str r0, [sp, #4]
ldr r0, [sp, #0x30]
adds r1, r5, #0
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
str r0, [sp, #8]
ldr r0, [sp, #0x38]
lsrs r2, r2, #0x18
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
str r0, [sp, #0xc]
ldr r0, [sp, #0x34]
lsrs r3, r3, #0x18
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
str r0, [sp, #0x10]
adds r0, r7, #0
bl FUN_0201D40C
adds r0, r5, #0
movs r1, #1
movs r2, #0x14
movs r3, #0xc
bl FUN_0200E998
adds r0, r5, #0
movs r1, #0xf
bl FUN_0201D978
adds r0, r5, #0
bl FUN_0201D578
add sp, #0x14
pop {r4, r5, r6, r7, pc}
thumb_func_end ov95_021E5C44
thumb_func_start ov95_021E5CAC
ov95_021E5CAC: @ 0x021E5CAC
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x18
adds r4, r1, #0
movs r1, #0xf
str r0, [sp, #0xc]
str r2, [sp, #0x10]
adds r6, r3, #0
bl FUN_0201D978
movs r0, #0
movs r1, #0x1b
movs r2, #0xbb
movs r3, #0x46
bl FUN_0200BAF8
adds r7, r0, #0
movs r0, #0x46
bl FUN_0200BD08
adds r5, r0, #0
adds r0, r7, #0
adds r1, r4, #0
bl FUN_0200BBA0
str r0, [sp, #0x14]
movs r0, #0xff
movs r1, #0x46
bl FUN_02026354
adds r4, r0, #0
ldr r0, [sp, #0x10]
bl FUN_02070DB0
adds r2, r0, #0
adds r0, r5, #0
movs r1, #0
bl FUN_0200BF1C
ldr r2, [sp, #0x14]
adds r0, r5, #0
adds r1, r4, #0
bl FUN_0200CBBC
movs r3, #0
str r3, [sp]
str r6, [sp, #4]
ldr r0, [sp, #0xc]
movs r1, #1
adds r2, r4, #0
str r3, [sp, #8]
bl FUN_020200A8
adds r6, r0, #0
adds r0, r7, #0
bl FUN_0200BB44
adds r0, r4, #0
bl FUN_02026380
ldr r0, [sp, #0x14]
bl FUN_02026380
adds r0, r5, #0
bl FUN_0200BDA0
adds r0, r6, #0
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end ov95_021E5CAC
thumb_func_start ov95_021E5D34
ov95_021E5D34: @ 0x021E5D34
push {r4, lr}
adds r4, r0, #0
bl FUN_0201D8C8
adds r0, r4, #0
bl FUN_0201D520
pop {r4, pc}
thumb_func_end ov95_021E5D34
thumb_func_start ov95_021E5D44
ov95_021E5D44: @ 0x021E5D44
push {r3, r4, r5, lr}
sub sp, #0x10
adds r4, r1, #0
movs r1, #0
adds r5, r0, #0
str r1, [sp]
str r1, [sp, #4]
movs r0, #1
str r0, [sp, #8]
movs r0, #0x46
str r0, [sp, #0xc]
movs r0, #0x73
adds r2, r5, #0
movs r3, #3
bl FUN_020078F0
movs r0, #0
str r0, [sp]
str r0, [sp, #4]
movs r1, #1
str r1, [sp, #8]
movs r0, #0x46
str r0, [sp, #0xc]
movs r0, #0x73
adds r2, r5, #0
movs r3, #3
bl FUN_02007914
movs r1, #0
str r1, [sp]
movs r0, #0x40
str r0, [sp, #4]
str r1, [sp, #8]
adds r0, r4, #0
movs r1, #0x73
movs r2, #8
movs r3, #0x46
bl FUN_02003200
add sp, #0x10
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_end ov95_021E5D44
thumb_func_start ov95_021E5D98
ov95_021E5D98: @ 0x021E5D98
push {r4, lr}
ldr r3, _021E5DB0 @ =0x02110924
movs r2, #0
ldr r3, [r3]
blx r3
adds r4, r0, #0
bl FUN_02015354
lsls r0, r4, #0x10
lsrs r0, r0, #0xd
pop {r4, pc}
nop
_021E5DB0: .4byte 0x02110924
thumb_func_end ov95_021E5D98
thumb_func_start ov95_021E5DB4
ov95_021E5DB4: @ 0x021E5DB4
push {r4, lr}
ldr r3, _021E5DCC @ =0x0211092C
movs r2, #0
ldr r3, [r3]
blx r3
adds r4, r0, #0
bl FUN_02015394
lsls r0, r4, #0x10
lsrs r0, r0, #0xd
pop {r4, pc}
nop
_021E5DCC: .4byte 0x0211092C
thumb_func_end ov95_021E5DB4
thumb_func_start ov95_021E5DD0
ov95_021E5DD0: @ 0x021E5DD0
push {r4, lr}
sub sp, #8
movs r1, #0x12
lsls r1, r1, #0xa
adds r4, r0, #0
bl FUN_0201AA8C
adds r2, r0, #0
movs r0, #1
str r0, [sp]
movs r3, #0x12
ldr r0, _021E5E10 @ =ov95_021E5D98
ldr r1, _021E5E14 @ =ov95_021E5DB4
lsls r3, r3, #0xa
str r4, [sp, #4]
bl FUN_02014DB4
adds r4, r0, #0
bl FUN_02015524
adds r2, r0, #0
beq _021E5E08
movs r0, #1
movs r1, #0xe1
lsls r0, r0, #0xc
lsls r1, r1, #0xe
bl FUN_02023240
_021E5E08:
adds r0, r4, #0
add sp, #8
pop {r4, pc}
nop
_021E5E10: .4byte ov95_021E5D98
_021E5E14: .4byte ov95_021E5DB4
thumb_func_end ov95_021E5DD0
thumb_func_start ov95_021E5E18
ov95_021E5E18: @ 0x021E5E18
push {r3, r4, r5, r6, r7, lr}
adds r5, r0, #0
adds r6, r1, #0
adds r7, r2, #0
bl ov95_021E5DD0
adds r4, r0, #0
adds r0, r6, #0
adds r1, r7, #0
adds r2, r5, #0
bl FUN_02015264
adds r1, r0, #0
adds r0, r4, #0
movs r2, #0xa
movs r3, #1
bl FUN_0201526C
adds r0, r4, #0
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end ov95_021E5E18
thumb_func_start ov95_021E5E40
ov95_021E5E40: @ 0x021E5E40
push {r3, r4, r5, lr}
adds r5, r0, #0
bl FUN_020154D0
adds r4, r0, #0
adds r0, r5, #0
bl FUN_02014EBC
adds r0, r4, #0
bl FUN_0201AB0C
pop {r3, r4, r5, pc}
thumb_func_end ov95_021E5E40
thumb_func_start ov95_021E5E58
ov95_021E5E58: @ 0x021E5E58
push {r3}
sub sp, #0xc
add r2, sp, #0
movs r1, #0
str r1, [r2]
str r1, [r2, #4]
str r1, [r2, #8]
ldr r1, [r0, #0x20]
ldr r2, [sp]
ldr r1, [r1]
ldr r1, [r1, #4]
adds r1, r2, r1
str r1, [r0, #0x28]
ldr r1, [r0, #0x20]
ldr r2, [sp, #4]
ldr r1, [r1]
ldr r1, [r1, #8]
adds r1, r2, r1
str r1, [r0, #0x2c]
ldr r1, [r0, #0x20]
ldr r2, [sp, #8]
ldr r1, [r1]
ldr r1, [r1, #0xc]
adds r1, r2, r1
str r1, [r0, #0x30]
add sp, #0xc
pop {r3}
bx lr
thumb_func_end ov95_021E5E58
thumb_func_start ov95_021E5E90
ov95_021E5E90: @ 0x021E5E90
push {r3, r4, r5, lr}
adds r5, r0, #0
ldr r0, [r5]
movs r1, #0x10
bl FUN_0201AA8C
adds r4, r0, #0
bne _021E5EA4
bl GF_AssertFail
_021E5EA4:
ldr r0, [r5]
ldr r2, [r5, #4]
movs r1, #0x74
str r0, [r4]
str r2, [r4, #4]
ldr r0, [r4]
bl ov95_021E5E18
movs r1, #1
str r0, [r4, #0xc]
bl FUN_02015528
adds r0, r4, #0
pop {r3, r4, r5, pc}
thumb_func_end ov95_021E5E90
thumb_func_start ov95_021E5EC0
ov95_021E5EC0: @ 0x021E5EC0
push {r4, lr}
adds r4, r0, #0
ldr r0, [r4, #0xc]
ldr r2, _021E5ED8 @ =ov95_021E5E58
adds r3, r4, #0
bl FUN_02015494
ldr r0, [r4, #0xc]
movs r1, #1
bl FUN_02015528
pop {r4, pc}
.align 2, 0
_021E5ED8: .4byte ov95_021E5E58
thumb_func_end ov95_021E5EC0
thumb_func_start ov95_021E5EDC
ov95_021E5EDC: @ 0x021E5EDC
push {r3, lr}
ldr r0, [r0, #0xc]
bl FUN_020154B0
cmp r0, #0
beq _021E5EEC
movs r0, #1
pop {r3, pc}
_021E5EEC:
movs r0, #0
pop {r3, pc}
thumb_func_end ov95_021E5EDC
thumb_func_start ov95_021E5EF0
ov95_021E5EF0: @ 0x021E5EF0
ldr r3, _021E5EF4 @ =FUN_0201AB0C
bx r3
.align 2, 0
_021E5EF4: .4byte FUN_0201AB0C
thumb_func_end ov95_021E5EF0
thumb_func_start ov95_021E5EF8
ov95_021E5EF8: @ 0x021E5EF8
push {r4, r5, r6, lr}
sub sp, #0x38
ldr r3, _021E5FDC @ =0x021E7594
add r2, sp, #0x18
adds r6, r0, #0
ldm r3!, {r0, r1}
stm r2!, {r0, r1}
ldm r3!, {r0, r1}
stm r2!, {r0, r1}
ldm r3!, {r0, r1}
stm r2!, {r0, r1}
ldm r3!, {r0, r1}
stm r2!, {r0, r1}
ldr r5, [r6, #0x50]
ldr r4, [r6, #0x54]
ldr r6, [r6, #8]
movs r0, #1
str r0, [sp]
str r0, [sp, #4]
ldr r0, _021E5FE0 @ =0x00004E20
adds r1, r5, #0
str r0, [sp, #8]
ldr r3, [sp, #0x18]
adds r0, r4, #0
movs r2, #0x73
bl FUN_0200D4A4
movs r0, #0x73
str r0, [sp]
ldr r0, [sp, #0x1c]
movs r1, #2
str r0, [sp, #4]
movs r0, #0
str r0, [sp, #8]
movs r0, #1
str r0, [sp, #0xc]
str r0, [sp, #0x10]
ldr r0, _021E5FE4 @ =0x00004E21
adds r2, r4, #0
str r0, [sp, #0x14]
adds r0, r6, #0
adds r3, r5, #0
bl FUN_0200D644
movs r0, #1
str r0, [sp]
ldr r0, _021E5FE8 @ =0x00004E22
adds r1, r5, #0
str r0, [sp, #4]
ldr r3, [sp, #0x20]
adds r0, r4, #0
movs r2, #0x73
bl FUN_0200D6D4
movs r0, #1
str r0, [sp]
ldr r0, _021E5FEC @ =0x00004E23
adds r1, r5, #0
str r0, [sp, #4]
ldr r3, [sp, #0x24]
adds r0, r4, #0
movs r2, #0x73
bl FUN_0200D704
movs r0, #1
str r0, [sp]
str r0, [sp, #4]
ldr r0, _021E5FF0 @ =0x000061A8
adds r1, r5, #0
str r0, [sp, #8]
adds r0, r4, #0
movs r2, #0x73
movs r3, #7
bl FUN_0200D4A4
movs r0, #0x73
str r0, [sp]
movs r0, #0xa
str r0, [sp, #4]
movs r0, #0
str r0, [sp, #8]
movs r0, #1
str r0, [sp, #0xc]
str r0, [sp, #0x10]
ldr r0, _021E5FF4 @ =0x000061A9
movs r1, #2
str r0, [sp, #0x14]
adds r0, r6, #0
adds r2, r4, #0
adds r3, r5, #0
bl FUN_0200D644
movs r0, #1
str r0, [sp]
ldr r0, _021E5FF8 @ =0x000061AA
adds r1, r5, #0
str r0, [sp, #4]
adds r0, r4, #0
movs r2, #0x73
movs r3, #6
bl FUN_0200D6D4
movs r0, #1
str r0, [sp]
ldr r0, _021E5FFC @ =0x000061AB
adds r1, r5, #0
str r0, [sp, #4]
adds r0, r4, #0
movs r2, #0x73
movs r3, #5
bl FUN_0200D704
add sp, #0x38
pop {r4, r5, r6, pc}
.align 2, 0
_021E5FDC: .4byte 0x021E7594
_021E5FE0: .4byte 0x00004E20
_021E5FE4: .4byte 0x00004E21
_021E5FE8: .4byte 0x00004E22
_021E5FEC: .4byte 0x00004E23
_021E5FF0: .4byte 0x000061A8
_021E5FF4: .4byte 0x000061A9
_021E5FF8: .4byte 0x000061AA
_021E5FFC: .4byte 0x000061AB
thumb_func_end ov95_021E5EF8
thumb_func_start ov95_021E6000
ov95_021E6000: @ 0x021E6000
push {r3, r4, lr}
sub sp, #0x34
adds r4, r0, #0
movs r1, #0x80
add r0, sp, #0
strh r1, [r0]
movs r1, #0x78
strh r1, [r0, #2]
movs r1, #0
strh r1, [r0, #4]
strh r1, [r0, #6]
movs r0, #1
movs r2, #2
str r1, [sp, #8]
str r1, [sp, #0xc]
str r1, [sp, #0x30]
ldr r1, _021E609C @ =0x00004E20
str r0, [sp, #0x10]
adds r0, r1, #1
str r0, [sp, #0x18]
adds r0, r1, #2
str r0, [sp, #0x1c]
adds r0, r1, #3
str r0, [sp, #0x20]
subs r0, r2, #3
str r2, [sp, #0x2c]
str r1, [sp, #0x14]
str r0, [sp, #0x24]
str r0, [sp, #0x28]
ldr r0, [r4, #0x54]
ldr r1, [r4, #0x50]
add r2, sp, #0
bl FUN_0200D734
str r0, [r4, #0x74]
bl FUN_0200DC18
ldr r0, [r4, #0x74]
movs r1, #2
bl FUN_0200DF98
movs r2, #0
add r0, sp, #0
adds r1, r2, #0
strh r2, [r0]
subs r1, #0x10
strh r1, [r0, #2]
ldr r1, _021E60A0 @ =0x000061A8
str r2, [sp, #0x2c]
adds r0, r1, #1
str r0, [sp, #0x18]
adds r0, r1, #2
str r0, [sp, #0x1c]
adds r0, r1, #3
str r1, [sp, #0x14]
str r0, [sp, #0x20]
ldr r0, [r4, #0x54]
ldr r1, [r4, #0x50]
add r2, sp, #0
bl FUN_0200D734
str r0, [r4, #0x78]
bl FUN_0200DC18
movs r1, #0x90
add r0, sp, #0
strh r1, [r0, #2]
ldr r0, [r4, #0x54]
ldr r1, [r4, #0x50]
add r2, sp, #0
bl FUN_0200D734
str r0, [r4, #0x7c]
bl FUN_0200DC18
add sp, #0x34
pop {r3, r4, pc}
nop
_021E609C: .4byte 0x00004E20
_021E60A0: .4byte 0x000061A8
thumb_func_end ov95_021E6000
thumb_func_start ov95_021E60A4
ov95_021E60A4: @ 0x021E60A4
push {r3, r4, r5, r6, r7, lr}
adds r4, r0, #0
str r0, [sp]
adds r0, #0x80
adds r3, r1, #0
ldr r1, [r0]
adds r4, #0x80
cmp r1, #0
bne _021E6132
ldr r0, [r4, #4]
cmp r0, #0xa
blt _021E60C6
adds r0, r1, #1
str r0, [r4]
movs r0, #0
str r0, [r4, #4]
b _021E6132
_021E60C6:
movs r1, #0x14
adds r7, r3, #0
muls r7, r1, r7
ldr r1, _021E6140 @ =0x021E75DC
ldr r2, _021E6144 @ =0x021E762C
lsls r6, r0, #1
adds r1, r1, r7
adds r2, r2, r7
ldrsh r1, [r6, r1]
ldrsh r2, [r6, r2]
lsls r6, r0, #2
movs r0, #0x28
muls r0, r3, r0
ldr r3, _021E6148 @ =0x021E76D0
movs r5, #0
adds r3, r3, r0
ldr r7, [r6, r3]
ldr r3, _021E614C @ =0x021E7770
adds r0, r3, r0
ldr r6, [r6, r0]
cmp r1, #0xff
bne _021E60F6
adds r1, r5, #0
adds r5, r5, #1
_021E60F6:
cmp r2, #0xff
bne _021E60FE
movs r2, #0
adds r5, r5, #1
_021E60FE:
ldr r0, [sp]
ldr r0, [r0, #0x74]
bl FUN_0200DED0
movs r0, #0
adds r1, r7, #0
blx FUN_020F1C54
beq _021E611E
ldr r0, [sp]
adds r1, r7, #0
ldr r0, [r0, #0x74]
adds r2, r6, #0
bl FUN_0200E024
b _021E6120
_021E611E:
adds r5, r5, #1
_021E6120:
cmp r5, #3
beq _021E612C
ldr r0, [r4, #4]
adds r0, r0, #1
str r0, [r4, #4]
b _021E613A
_021E612C:
ldr r0, [r4]
adds r0, r0, #1
str r0, [r4]
_021E6132:
movs r0, #0
str r0, [r4]
str r0, [r4, #4]
pop {r3, r4, r5, r6, r7, pc}
_021E613A:
movs r0, #1
pop {r3, r4, r5, r6, r7, pc}
nop
_021E6140: .4byte 0x021E75DC
_021E6144: .4byte 0x021E762C
_021E6148: .4byte 0x021E76D0
_021E614C: .4byte 0x021E7770
thumb_func_end ov95_021E60A4
thumb_func_start ov95_021E6150
ov95_021E6150: @ 0x021E6150
push {r3, r4, r5, lr}
adds r5, r0, #0
adds r4, r1, #0
bl ov95_021E60A4
cmp r0, #0
bne _021E6162
movs r0, #2
pop {r3, r4, r5, pc}
_021E6162:
cmp r4, #4
bne _021E6172
adds r5, #0x84
ldr r0, [r5]
cmp r0, #6
bne _021E617E
movs r0, #1
pop {r3, r4, r5, pc}
_021E6172:
adds r5, #0x84
ldr r0, [r5]
cmp r0, #6
bne _021E617E
movs r0, #1
pop {r3, r4, r5, pc}
_021E617E:
movs r0, #0
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_end ov95_021E6150
thumb_func_start ov95_021E6184
ov95_021E6184: @ 0x021E6184
push {r4, lr}
adds r4, r0, #0
ldr r0, [r4, #0x74]
bl FUN_0200D9DC
ldr r0, [r4, #0x78]
bl FUN_0200D9DC
ldr r0, [r4, #0x7c]
bl FUN_0200D9DC
pop {r4, pc}
thumb_func_end ov95_021E6184
thumb_func_start ov95_021E619C
ov95_021E619C: @ 0x021E619C
push {r3, r4, r5, r6, lr}
sub sp, #0x4c
adds r4, r0, #0
movs r0, #0x46
bl FUN_0200CF18
add r2, sp, #0x2c
ldr r5, _021E621C @ =0x021E7574
str r0, [r4, #0x50]
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, _021E6220 @ =0x021E7548
stm r2!, {r0, r1}
add r5, sp, #0x18
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]
ldr r0, [r4, #0x50]
movs r3, #0x20
bl FUN_0200CF70
ldr r3, _021E6224 @ =0x021E755C
add r2, sp, #0
ldm r3!, {r0, r1}
stm r2!, {r0, r1}
ldm r3!, {r0, r1}
stm r2!, {r0, r1}
ldm r3!, {r0, r1}
stm r2!, {r0, r1}
ldr r0, [r4, #0x50]
bl FUN_0200CF38
str r0, [r4, #0x4c]
ldr r0, [r4, #0x50]
ldr r1, [r4, #0x4c]
movs r2, #0xff
bl FUN_0200CFF4
cmp r0, #0
bne _021E6206
bl GF_AssertFail
_021E6206:
ldr r0, [r4, #0x50]
ldr r1, [r4, #0x4c]
add r2, sp, #0
bl FUN_0200D3F8
cmp r0, #0
bne _021E6218
bl GF_AssertFail
_021E6218:
add sp, #0x4c
pop {r3, r4, r5, r6, pc}
.align 2, 0
_021E621C: .4byte 0x021E7574
_021E6220: .4byte 0x021E7548
_021E6224: .4byte 0x021E755C
thumb_func_end ov95_021E619C
thumb_func_start ov95_021E6228
ov95_021E6228: @ 0x021E6228
push {r4, lr}
adds r4, r0, #0
ldr r0, [r4, #0x50]
ldr r1, [r4, #0x4c]
bl FUN_0200D998
ldr r0, [r4, #0x50]
bl FUN_0200D108
pop {r4, pc}
thumb_func_end ov95_021E6228
thumb_func_start ov95_021E623C
ov95_021E623C: @ 0x021E623C
push {r4, r5, r6, r7, lr}
sub sp, #0x4c
adds r5, r0, #0
ldr r0, [r5]
movs r1, #5
ldr r4, [r0, #0xc]
movs r2, #0
adds r0, r4, #0
bl FUN_0206E540
adds r6, r0, #0
adds r0, r4, #0
movs r1, #2
bl FUN_0207083C
adds r7, r0, #0
movs r0, #0
str r0, [sp, #0x10]
adds r0, r4, #0
movs r1, #0x4c
add r2, sp, #0x10
bl FUN_0206EC40
add r0, sp, #0x3c
adds r1, r4, #0
movs r2, #2
bl FUN_02070124
lsls r2, r6, #0x10
ldr r0, [r5, #0x40]
add r1, sp, #0x14
lsrs r2, r2, #0x10
movs r3, #1
bl FUN_02072914
movs r1, #0
str r1, [sp]
adds r7, #0x60
str r1, [sp, #4]
add r0, sp, #0x14
str r0, [sp, #8]
str r1, [sp, #0xc]
ldr r0, [r5, #0x3c]
add r1, sp, #0x3c
movs r2, #0x80
adds r3, r7, #0
bl FUN_020085EC
str r0, [r5, #0x70]
add sp, #0x4c
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_end ov95_021E623C
thumb_func_start ov95_021E62A4
ov95_021E62A4: @ 0x021E62A4
push {r4, r5, lr}
sub sp, #0xc
adds r5, r0, #0
ldr r0, [r5]
movs r1, #5
ldr r0, [r0, #0xc]
movs r2, #0
bl FUN_0206E540
adds r4, r0, #0
ldr r0, [r5]
ldr r0, [r0, #0xc]
bl FUN_0206FDFC
ldr r0, [r5, #0x70]
movs r1, #1
bl FUN_02008550
movs r0, #2
str r0, [sp]
movs r0, #0
str r0, [sp, #4]
str r0, [sp, #8]
lsls r3, r4, #0x10
ldr r0, [r5, #0x40]
ldr r1, [r5, #0x58]
ldr r2, [r5, #0x70]
lsrs r3, r3, #0x10
bl FUN_0207294C
add sp, #0xc
pop {r4, r5, pc}
thumb_func_end ov95_021E62A4
thumb_func_start ov95_021E62E4
ov95_021E62E4: @ 0x021E62E4
ldr r3, _021E62EC @ =FUN_02008780
ldr r0, [r0, #0x70]
bx r3
nop
_021E62EC: .4byte FUN_02008780
thumb_func_end ov95_021E62E4
thumb_func_start ov95_021E62F0
ov95_021E62F0: @ 0x021E62F0
ldr r3, _021E62FC @ =FUN_020087A4
adds r2, r1, #0
ldr r0, [r0, #0x70]
movs r1, #6
bx r3
nop
_021E62FC: .4byte FUN_020087A4
thumb_func_end ov95_021E62F0
thumb_func_start ov95_021E6300
ov95_021E6300: @ 0x021E6300
push {r3, lr}
ldr r1, [r0, #0x5c]
lsls r2, r1, #2
ldr r1, _021E6310 @ =0x021E7810
ldr r1, [r1, r2]
blx r1
pop {r3, pc}
nop
_021E6310: .4byte 0x021E7810
thumb_func_end ov95_021E6300
thumb_func_start ov95_021E6314
ov95_021E6314: @ 0x021E6314
push {r3, r4, r5, r6, lr}
sub sp, #0x1c
adds r4, r0, #0
ldr r1, [r4, #0x60]
movs r5, #1
cmp r1, #0x11
bls _021E6324
b _021E6562
_021E6324:
adds r2, r1, r1
add r2, pc
ldrh r2, [r2, #6]
lsls r2, r2, #0x10
asrs r2, r2, #0x10
add pc, r2
_021E6330: @ jump table
.2byte _021E6354 - _021E6330 - 2 @ case 0
.2byte _021E63D2 - _021E6330 - 2 @ case 1
.2byte _021E63DC - _021E6330 - 2 @ case 2
.2byte _021E63FA - _021E6330 - 2 @ case 3
.2byte _021E640A - _021E6330 - 2 @ case 4
.2byte _021E641C - _021E6330 - 2 @ case 5
.2byte _021E642C - _021E6330 - 2 @ case 6
.2byte _021E643C - _021E6330 - 2 @ case 7
.2byte _021E648C - _021E6330 - 2 @ case 8
.2byte _021E64A0 - _021E6330 - 2 @ case 9
.2byte _021E64AE - _021E6330 - 2 @ case 10
.2byte _021E64D4 - _021E6330 - 2 @ case 11
.2byte _021E650E - _021E6330 - 2 @ case 12
.2byte _021E653C - _021E6330 - 2 @ case 13
.2byte _021E6542 - _021E6330 - 2 @ case 14
.2byte _021E6548 - _021E6330 - 2 @ case 15
.2byte _021E6552 - _021E6330 - 2 @ case 16
.2byte _021E6562 - _021E6330 - 2 @ case 17
_021E6354:
ldr r0, [r4, #4]
ldr r1, [r4, #8]
bl ov95_021E5D44
ldr r0, [r4, #4]
ldr r1, [r4, #8]
ldr r2, [r4, #0x14]
bl ov95_021E5BBC
movs r0, #0x13
str r0, [sp]
movs r0, #0x1b
str r0, [sp, #4]
movs r0, #4
str r0, [sp, #8]
movs r0, #0x3b
str r0, [sp, #0xc]
movs r0, #0xe
str r0, [sp, #0x10]
adds r1, r4, #0
ldr r0, [r4, #4]
adds r1, #0x18
adds r2, r5, #0
movs r3, #2
bl ov95_021E5C44
adds r0, r4, #0
bl ov95_021E5EF8
adds r0, r4, #0
bl ov95_021E6000
ldr r3, _021E6594 @ =0x0000520A
str r3, [sp]
adds r0, r3, #1
str r0, [sp, #4]
adds r0, r4, #0
adds r0, #0x88
subs r2, r3, #2
ldr r0, [r0]
ldr r1, [r4, #8]
subs r3, r3, #1
bl ov95_021E70BC
adds r0, r4, #0
bl ov95_021E623C
adds r0, r4, #0
adds r1, r5, #0
bl ov95_021E62F0
movs r0, #0x46
str r0, [sp, #0x14]
movs r0, #0
str r0, [sp, #0x18]
add r0, sp, #0x14
bl ov95_021E5E90
str r0, [r4, #0x44]
ldr r0, [r4, #0x60]
adds r0, r0, #1
str r0, [r4, #0x60]
b _021E6586
_021E63D2:
bl ov95_021E5B7C
ldr r0, [r4, #0x60]
adds r0, r0, #1
str r0, [r4, #0x60]
_021E63DC:
bl FUN_0200FB5C
cmp r0, #1
bne _021E6412
bl FUN_02005FA0
ldr r1, _021E6598 @ =0x000003F3
movs r0, #0xd
movs r2, #1
bl FUN_02004EC4
ldr r0, [r4, #0x60]
adds r0, r0, #1
str r0, [r4, #0x60]
b _021E6586
_021E63FA:
bl ov95_021E67F0
cmp r0, #0
bne _021E6412
ldr r0, [r4, #0x60]
adds r0, r0, #1
str r0, [r4, #0x60]
b _021E6586
_021E640A:
bl ov95_021E6838
cmp r0, #0
beq _021E6414
_021E6412:
b _021E6586
_021E6414:
ldr r0, [r4, #0x60]
adds r0, r0, #1
str r0, [r4, #0x60]
b _021E6586
_021E641C:
bl ov95_021E68A8
cmp r0, #0
bne _021E651E
ldr r0, [r4, #0x60]
adds r0, r0, #1
str r0, [r4, #0x60]
b _021E6586
_021E642C:
bl ov95_021E6900
cmp r0, #0
bne _021E651E
ldr r0, [r4, #0x60]
adds r0, r0, #1
str r0, [r4, #0x60]
b _021E6586
_021E643C:
bl ov95_021E6964
cmp r0, #0
bne _021E651E
adds r0, r4, #0
bl ov95_021E62A4
ldr r0, [r4]
movs r1, #5
ldr r0, [r0, #0xc]
movs r2, #0
bl FUN_0206E540
adds r6, r0, #0
ldr r0, [r4]
movs r1, #0x70
ldr r0, [r0, #0xc]
movs r2, #0
bl FUN_0206E540
adds r1, r0, #0
lsls r0, r6, #0x10
lsls r1, r1, #0x18
lsrs r0, r0, #0x10
lsrs r1, r1, #0x18
bl FUN_02006218
ldr r2, [r4]
adds r0, r4, #0
ldr r2, [r2, #0xc]
ldr r3, [r4, #0x10]
adds r0, #0x18
movs r1, #0
bl ov95_021E5CAC
str r0, [r4, #0xc]
ldr r0, [r4, #0x60]
adds r0, r0, #1
str r0, [r4, #0x60]
b _021E6586
_021E648C:
bl FUN_02006360
cmp r0, #0
bne _021E6586
ldr r0, _021E659C @ =0x000004A4
bl FUN_02006B24
ldr r0, [r4, #0x60]
adds r0, r0, #1
str r0, [r4, #0x60]
_021E64A0:
bl FUN_02006BCC
cmp r0, #0
bne _021E6586
ldr r0, [r4, #0x60]
adds r0, r0, #1
str r0, [r4, #0x60]
_021E64AE:
ldr r0, [r4, #0xc]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
bl FUN_02020094
cmp r0, #0
bne _021E6586
ldr r2, [r4]
adds r0, r4, #0
ldr r2, [r2, #0xc]
ldr r3, [r4, #0x10]
adds r0, #0x18
movs r1, #1
bl ov95_021E5CAC
str r0, [r4, #0xc]
ldr r0, [r4, #0x60]
adds r0, r0, #1
str r0, [r4, #0x60]
_021E64D4:
ldr r0, [r4, #0xc]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
bl FUN_02020094
cmp r0, #0
bne _021E6586
ldr r0, [r4, #0x58]
movs r1, #0
bl FUN_02017068
cmp r0, #1
bne _021E6586
ldr r0, [r4, #0x70]
bl FUN_020085DC
cmp r0, #0
bne _021E6586
adds r0, r4, #0
adds r0, #0x88
ldr r0, [r0]
movs r1, #2
movs r2, #3
bl ov95_021E7208
ldr r0, [r4, #0x60]
adds r0, r0, #1
str r0, [r4, #0x60]
b _021E6586
_021E650E:
adds r0, #0x88
ldr r0, [r0]
bl ov95_021E7258
cmp r0, #1
beq _021E6520
cmp r0, #2
beq _021E652E
_021E651E:
b _021E6586
_021E6520:
ldr r0, [r4]
adds r1, r5, #0
str r1, [r0, #4]
ldr r0, [r4, #0x60]
adds r0, r0, #1
str r0, [r4, #0x60]
b _021E6586
_021E652E:
ldr r0, [r4]
movs r1, #0
str r1, [r0, #4]
ldr r0, [r4, #0x60]
adds r0, r0, #1
str r0, [r4, #0x60]
b _021E6586
_021E653C:
adds r0, r1, #1
str r0, [r4, #0x60]
b _021E6586
_021E6542:
adds r0, r1, #1
str r0, [r4, #0x60]
b _021E6586
_021E6548:
bl ov95_021E5B9C
ldr r0, [r4, #0x60]
adds r0, r0, #1
str r0, [r4, #0x60]
_021E6552:
bl FUN_0200FB5C
cmp r0, #1
bne _021E6586
ldr r0, [r4, #0x60]
adds r0, r0, #1
str r0, [r4, #0x60]
b _021E6586
_021E6562:
adds r0, r4, #0
bl ov95_021E62E4
adds r0, r4, #0
bl ov95_021E6184
adds r0, r4, #0
adds r0, #0x18
bl ov95_021E5D34
ldr r0, [r4, #0x44]
ldr r0, [r0, #0xc]
bl ov95_021E5E40
ldr r0, [r4, #0x44]
bl ov95_021E5EF0
movs r5, #0
_021E6586:
ldr r0, [r4, #0x50]
bl FUN_0200D020
adds r0, r5, #0
add sp, #0x1c
pop {r3, r4, r5, r6, pc}
nop
_021E6594: .4byte 0x0000520A
_021E6598: .4byte 0x000003F3
_021E659C: .4byte 0x000004A4
thumb_func_end ov95_021E6314
thumb_func_start ov95_021E65A0
ov95_021E65A0: @ 0x021E65A0
push {r3, r4, r5, r6, lr}
sub sp, #0x1c
adds r4, r0, #0
ldr r1, [r4, #0x60]
movs r5, #1
cmp r1, #0x11
bls _021E65B0
b _021E67B4
_021E65B0:
adds r2, r1, r1
add r2, pc
ldrh r2, [r2, #6]
lsls r2, r2, #0x10
asrs r2, r2, #0x10
add pc, r2
_021E65BC: @ jump table
.2byte _021E65E0 - _021E65BC - 2 @ case 0
.2byte _021E6666 - _021E65BC - 2 @ case 1
.2byte _021E6670 - _021E65BC - 2 @ case 2
.2byte _021E668A - _021E65BC - 2 @ case 3
.2byte _021E66D8 - _021E65BC - 2 @ case 4
.2byte _021E66D8 - _021E65BC - 2 @ case 5
.2byte _021E66D8 - _021E65BC - 2 @ case 6
.2byte _021E66D8 - _021E65BC - 2 @ case 7
.2byte _021E66DE - _021E65BC - 2 @ case 8
.2byte _021E66F2 - _021E65BC - 2 @ case 9
.2byte _021E6700 - _021E65BC - 2 @ case 10
.2byte _021E6726 - _021E65BC - 2 @ case 11
.2byte _021E6760 - _021E65BC - 2 @ case 12
.2byte _021E678E - _021E65BC - 2 @ case 13
.2byte _021E6794 - _021E65BC - 2 @ case 14
.2byte _021E679A - _021E65BC - 2 @ case 15
.2byte _021E67A4 - _021E65BC - 2 @ case 16
.2byte _021E67B4 - _021E65BC - 2 @ case 17
_021E65E0:
ldr r0, [r4, #4]
ldr r1, [r4, #8]
bl ov95_021E5D44
ldr r0, [r4, #4]
ldr r1, [r4, #8]
ldr r2, [r4, #0x14]
bl ov95_021E5BBC
movs r0, #0x13
str r0, [sp]
movs r0, #0x1b
str r0, [sp, #4]
movs r0, #4
str r0, [sp, #8]
movs r0, #0x3b
str r0, [sp, #0xc]
movs r0, #0xe
str r0, [sp, #0x10]
adds r1, r4, #0
ldr r0, [r4, #4]
adds r1, #0x18
adds r2, r5, #0
movs r3, #2
bl ov95_021E5C44
adds r0, r4, #0
bl ov95_021E5EF8
adds r0, r4, #0
bl ov95_021E6000
ldr r0, [r4, #0x74]
movs r1, #0
bl FUN_0200DCE8
ldr r3, _021E67E4 @ =0x0000520A
str r3, [sp]
adds r0, r3, #1
str r0, [sp, #4]
adds r0, r4, #0
adds r0, #0x88
subs r2, r3, #2
ldr r0, [r0]
ldr r1, [r4, #8]
subs r3, r3, #1
bl ov95_021E70BC
adds r0, r4, #0
bl ov95_021E623C
adds r0, r4, #0
adds r1, r5, #0
bl ov95_021E62F0
movs r0, #0x46
str r0, [sp, #0x14]
adds r0, r5, #0
str r0, [sp, #0x18]
add r0, sp, #0x14
bl ov95_021E5E90
str r0, [r4, #0x44]
ldr r0, [r4, #0x60]
adds r0, r0, #1
str r0, [r4, #0x60]
b _021E67D8
_021E6666:
bl ov95_021E5B7C
ldr r0, [r4, #0x60]
adds r0, r0, #1
str r0, [r4, #0x60]
_021E6670:
bl FUN_0200FB5C
cmp r0, #1
bne _021E6770
ldr r1, _021E67E8 @ =0x000003F3
movs r0, #0xd
movs r2, #1
bl FUN_02004EC4
ldr r0, [r4, #0x60]
adds r0, r0, #1
str r0, [r4, #0x60]
b _021E67D8
_021E668A:
bl ov95_021E6B74
cmp r0, #0
bne _021E6770
adds r0, r4, #0
bl ov95_021E62A4
ldr r0, [r4]
movs r1, #5
ldr r0, [r0, #0xc]
movs r2, #0
bl FUN_0206E540
adds r6, r0, #0
ldr r0, [r4]
movs r1, #0x70
ldr r0, [r0, #0xc]
movs r2, #0
bl FUN_0206E540
adds r1, r0, #0
lsls r0, r6, #0x10
lsls r1, r1, #0x18
lsrs r0, r0, #0x10
lsrs r1, r1, #0x18
bl FUN_02006218
ldr r2, [r4]
adds r0, r4, #0
ldr r2, [r2, #0xc]
ldr r3, [r4, #0x10]
adds r0, #0x18
movs r1, #0
bl ov95_021E5CAC
str r0, [r4, #0xc]
movs r0, #8
str r0, [r4, #0x60]
b _021E67D8
_021E66D8:
bl GF_AssertFail
b _021E67D8
_021E66DE:
bl FUN_02006360
cmp r0, #0
bne _021E67D8
ldr r0, _021E67EC @ =0x000004A4
bl FUN_02006B24
ldr r0, [r4, #0x60]
adds r0, r0, #1
str r0, [r4, #0x60]
_021E66F2:
bl FUN_02006BCC
cmp r0, #0
bne _021E67D8
ldr r0, [r4, #0x60]
adds r0, r0, #1
str r0, [r4, #0x60]
_021E6700:
ldr r0, [r4, #0xc]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
bl FUN_02020094
cmp r0, #0
bne _021E67D8
ldr r2, [r4]
adds r0, r4, #0
ldr r2, [r2, #0xc]
ldr r3, [r4, #0x10]
adds r0, #0x18
movs r1, #1
bl ov95_021E5CAC
str r0, [r4, #0xc]
ldr r0, [r4, #0x60]
adds r0, r0, #1
str r0, [r4, #0x60]
_021E6726:
ldr r0, [r4, #0xc]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
bl FUN_02020094
cmp r0, #0
bne _021E67D8
ldr r0, [r4, #0x58]
movs r1, #0
bl FUN_02017068
cmp r0, #1
bne _021E67D8
ldr r0, [r4, #0x70]
bl FUN_020085DC
cmp r0, #0
bne _021E67D8
adds r0, r4, #0
adds r0, #0x88
ldr r0, [r0]
movs r1, #2
movs r2, #3
bl ov95_021E7208
ldr r0, [r4, #0x60]
adds r0, r0, #1
str r0, [r4, #0x60]
b _021E67D8
_021E6760:
adds r0, #0x88
ldr r0, [r0]
bl ov95_021E7258
cmp r0, #1
beq _021E6772
cmp r0, #2
beq _021E6780
_021E6770:
b _021E67D8
_021E6772:
ldr r0, [r4]
adds r1, r5, #0
str r1, [r0, #4]
ldr r0, [r4, #0x60]
adds r0, r0, #1
str r0, [r4, #0x60]
b _021E67D8
_021E6780:
ldr r0, [r4]
movs r1, #0
str r1, [r0, #4]
ldr r0, [r4, #0x60]
adds r0, r0, #1
str r0, [r4, #0x60]
b _021E67D8
_021E678E:
adds r0, r1, #1
str r0, [r4, #0x60]
b _021E67D8
_021E6794:
adds r0, r1, #1
str r0, [r4, #0x60]
b _021E67D8
_021E679A:
bl ov95_021E5B9C
ldr r0, [r4, #0x60]
adds r0, r0, #1
str r0, [r4, #0x60]
_021E67A4:
bl FUN_0200FB5C
cmp r0, #1
bne _021E67D8
ldr r0, [r4, #0x60]
adds r0, r0, #1
str r0, [r4, #0x60]
b _021E67D8
_021E67B4:
adds r0, r4, #0
bl ov95_021E62E4
adds r0, r4, #0
bl ov95_021E6184
adds r0, r4, #0
adds r0, #0x18
bl ov95_021E5D34
ldr r0, [r4, #0x44]
ldr r0, [r0, #0xc]
bl ov95_021E5E40
ldr r0, [r4, #0x44]
bl ov95_021E5EF0
movs r5, #0
_021E67D8:
ldr r0, [r4, #0x50]
bl FUN_0200D020
adds r0, r5, #0
add sp, #0x1c
pop {r3, r4, r5, r6, pc}
.align 2, 0
_021E67E4: .4byte 0x0000520A
_021E67E8: .4byte 0x000003F3
_021E67EC: .4byte 0x000004A4
thumb_func_end ov95_021E65A0
thumb_func_start ov95_021E67F0
ov95_021E67F0: @ 0x021E67F0
push {r4, lr}
adds r4, r0, #0
ldr r0, [r4, #0x68]
cmp r0, #0
beq _021E6800
cmp r0, #1
beq _021E6810
b _021E6828
_021E6800:
ldr r0, [r4, #0x74]
movs r1, #0
bl FUN_0200DCC0
ldr r0, [r4, #0x68]
adds r0, r0, #1
str r0, [r4, #0x68]
b _021E6830
_021E6810:
ldr r0, [r4, #0x64]
adds r0, r0, #1
str r0, [r4, #0x64]
cmp r0, #0x19
blt _021E6830
ldr r0, _021E6834 @ =0x00000714
bl FUN_0200604C
ldr r0, [r4, #0x68]
adds r0, r0, #1
str r0, [r4, #0x68]
b _021E6830
_021E6828:
movs r0, #0
str r0, [r4, #0x68]
str r0, [r4, #0x64]
pop {r4, pc}
_021E6830:
movs r0, #1
pop {r4, pc}
.align 2, 0
_021E6834: .4byte 0x00000714
thumb_func_end ov95_021E67F0
thumb_func_start ov95_021E6838
ov95_021E6838: @ 0x021E6838
push {r4, lr}
adds r4, r0, #0
ldr r1, [r4, #0x68]
cmp r1, #0
beq _021E6848
cmp r1, #1
beq _021E6862
b _021E6886
_021E6848:
ldr r0, [r4, #0x44]
bl ov95_021E5EDC
cmp r0, #1
beq _021E68A0
ldr r0, [r4, #0x74]
movs r1, #1
bl FUN_0200DCC0
ldr r0, [r4, #0x68]
adds r0, r0, #1
str r0, [r4, #0x68]
b _021E68A0
_021E6862:
movs r1, #0
bl ov95_021E6150
cmp r0, #2
bne _021E68A0
ldr r0, _021E68A4 @ =0x00000714
bl FUN_0200604C
ldr r0, [r4, #0x74]
movs r1, #2
bl FUN_0200DCC0
ldr r0, [r4, #0x68]
adds r0, r0, #1
str r0, [r4, #0x68]
movs r0, #0
str r0, [r4, #0x64]
b _021E68A0
_021E6886:
movs r1, #0
bl ov95_021E6150
cmp r0, #2
bne _021E68A0
ldr r0, [r4, #0x74]
movs r1, #2
bl FUN_0200DCC0
movs r0, #0
str r0, [r4, #0x68]
str r0, [r4, #0x64]
pop {r4, pc}
_021E68A0:
movs r0, #1
pop {r4, pc}
.align 2, 0
_021E68A4: .4byte 0x00000714
thumb_func_end ov95_021E6838
thumb_func_start ov95_021E68A8
ov95_021E68A8: @ 0x021E68A8
push {r3, r4, r5, lr}
adds r4, r0, #0
ldr r1, [r4, #0x68]
cmp r1, #0
beq _021E68B8
cmp r1, #1
beq _021E68BE
b _021E68F0
_021E68B8:
adds r0, r1, #1
str r0, [r4, #0x68]
b _021E68F8
_021E68BE:
movs r1, #1
bl ov95_021E6150
adds r5, r0, #0
cmp r5, #1
bne _021E68E0
ldr r0, _021E68FC @ =0x00000714
bl FUN_0200604C
ldr r0, [r4, #0x74]
movs r1, #3
bl FUN_0200DCC0
ldr r0, [r4, #0x44]
movs r1, #0
bl ov95_021E5EC0
_021E68E0:
cmp r5, #2
bne _021E68F8
movs r0, #0
str r0, [r4, #0x64]
ldr r0, [r4, #0x68]
adds r0, r0, #1
str r0, [r4, #0x68]
b _021E68F8
_021E68F0:
movs r0, #0
str r0, [r4, #0x68]
str r0, [r4, #0x64]
pop {r3, r4, r5, pc}
_021E68F8:
movs r0, #1
pop {r3, r4, r5, pc}
.align 2, 0
_021E68FC: .4byte 0x00000714
thumb_func_end ov95_021E68A8
thumb_func_start ov95_021E6900
ov95_021E6900: @ 0x021E6900
push {r3, r4, r5, lr}
adds r4, r0, #0
ldr r1, [r4, #0x68]
cmp r1, #0
beq _021E6910
cmp r1, #1
beq _021E6922
b _021E6954
_021E6910:
ldr r0, [r4, #0x44]
bl ov95_021E5EDC
cmp r0, #1
beq _021E695C
ldr r0, [r4, #0x68]
adds r0, r0, #1
str r0, [r4, #0x68]
b _021E695C
_021E6922:
movs r1, #2
bl ov95_021E6150
adds r5, r0, #0
cmp r5, #1
bne _021E6944
ldr r0, _021E6960 @ =0x00000714
bl FUN_0200604C
ldr r0, [r4, #0x74]
movs r1, #4
bl FUN_0200DCC0
ldr r0, [r4, #0x44]
movs r1, #1
bl ov95_021E5EC0
_021E6944:
cmp r5, #2
bne _021E695C
movs r0, #0
str r0, [r4, #0x64]
ldr r0, [r4, #0x68]
adds r0, r0, #1
str r0, [r4, #0x68]
b _021E695C
_021E6954:
movs r0, #0
str r0, [r4, #0x68]
str r0, [r4, #0x64]
pop {r3, r4, r5, pc}
_021E695C:
movs r0, #1
pop {r3, r4, r5, pc}
.align 2, 0
_021E6960: .4byte 0x00000714
thumb_func_end ov95_021E6900
thumb_func_start ov95_021E6964
ov95_021E6964: @ 0x021E6964
push {r4, r5, r6, lr}
sub sp, #0x10
adds r4, r0, #0
ldr r1, [r4, #0x68]
cmp r1, #5
bls _021E6972
b _021E6B50
_021E6972:
adds r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsls r1, r1, #0x10
asrs r1, r1, #0x10
add pc, r1
_021E697E: @ jump table
.2byte _021E698A - _021E697E - 2 @ case 0
.2byte _021E69AC - _021E697E - 2 @ case 1
.2byte _021E69EE - _021E697E - 2 @ case 2
.2byte _021E6A56 - _021E697E - 2 @ case 3
.2byte _021E6AE8 - _021E697E - 2 @ case 4
.2byte _021E6B34 - _021E697E - 2 @ case 5
_021E698A:
ldr r0, [r4, #0x44]
bl ov95_021E5EDC
cmp r0, #1
beq _021E69F8
ldr r0, [r4, #0x74]
movs r1, #4
bl FUN_0200DCC0
movs r0, #2
movs r1, #0
bl FUN_02022C60
ldr r0, [r4, #0x68]
adds r0, r0, #1
str r0, [r4, #0x68]
b _021E6B64
_021E69AC:
movs r1, #3
bl ov95_021E6150
adds r5, r0, #0
cmp r5, #1
bne _021E69D6
ldr r0, [r4, #0x74]
movs r1, #5
bl FUN_0200DCC0
ldr r0, _021E6B6C @ =0x00000707
bl FUN_0200604C
ldr r0, [r4, #0x44]
movs r1, #2
bl ov95_021E5EC0
ldr r0, [r4, #0x44]
movs r1, #3
bl ov95_021E5EC0
_021E69D6:
cmp r5, #2
bne _021E69F8
ldr r0, [r4, #0x74]
movs r1, #0
bl FUN_0200DCE8
movs r0, #0
str r0, [r4, #0x64]
ldr r0, [r4, #0x68]
adds r0, r0, #1
str r0, [r4, #0x68]
b _021E6B64
_021E69EE:
ldr r0, [r4, #0x64]
adds r0, r0, #1
str r0, [r4, #0x64]
cmp r0, #0xa
bge _021E69FA
_021E69F8:
b _021E6B64
_021E69FA:
movs r3, #0
str r3, [r4, #0x64]
str r3, [sp]
movs r0, #0x10
ldr r2, _021E6B70 @ =0x0000FFFF
str r0, [sp, #4]
str r2, [sp, #8]
ldr r0, [r4, #8]
movs r1, #1
bl FUN_02003370
ldr r0, [r4, #0x78]
ldr r0, [r0]
bl FUN_02024B34
movs r1, #1
bl FUN_02022808
adds r5, r0, #0
movs r3, #0
movs r6, #1
str r3, [sp]
movs r0, #0x10
ldr r2, _021E6B70 @ =0x0000FFFF
str r0, [sp, #4]
str r2, [sp, #8]
lsls r6, r5
eors r2, r6
lsls r2, r2, #0x10
ldr r0, [r4, #8]
movs r1, #4
lsrs r2, r2, #0x10
bl FUN_02003370
ldr r0, _021E6B70 @ =0x0000FFFF
movs r1, #0
str r0, [sp]
ldr r0, [r4, #0x70]
movs r2, #0x10
adds r3, r1, #0
bl FUN_020090B4
ldr r0, [r4, #0x68]
adds r0, r0, #1
str r0, [r4, #0x68]
b _021E6B64
_021E6A56:
add r1, sp, #0xc
ldr r0, [r4, #0x78]
movs r5, #0
adds r1, #2
add r2, sp, #0xc
bl FUN_0200DE44
add r0, sp, #0xc
adds r1, r5, #0
ldrsh r2, [r0, r1]
adds r0, r1, #0
subs r0, #0x30
cmp r2, r0
ble _021E6A7C
ldr r0, [r4, #0x78]
subs r2, r1, #4
bl FUN_0200DED0
b _021E6A7E
_021E6A7C:
adds r5, r5, #1
_021E6A7E:
add r1, sp, #0xc
ldr r0, [r4, #0x7c]
adds r1, #2
add r2, sp, #0xc
bl FUN_0200DE44
add r0, sp, #0xc
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0xc0
bge _021E6A9E
ldr r0, [r4, #0x7c]
movs r2, #4
bl FUN_0200DED0
b _021E6AA0
_021E6A9E:
adds r5, r5, #1
_021E6AA0:
ldr r0, [r4, #8]
bl FUN_02003B44
cmp r0, #0
bne _021E6B64
cmp r5, #2
bne _021E6B64
ldr r0, [r4, #0x70]
bl FUN_02009138
cmp r0, #0
bne _021E6B64
movs r0, #2
movs r1, #1
bl FUN_02022C60
adds r0, r4, #0
movs r1, #0
bl ov95_021E62F0
ldr r0, [r4, #0x74]
movs r1, #0
bl FUN_0200DCE8
ldr r0, [r4, #0x78]
movs r1, #0
bl FUN_0200DCE8
ldr r0, [r4, #0x7c]
movs r1, #0
bl FUN_0200DCE8
ldr r0, [r4, #0x68]
adds r0, r0, #1
str r0, [r4, #0x68]
b _021E6B64
_021E6AE8:
ldr r0, [r4, #0x64]
adds r0, r0, #1
str r0, [r4, #0x64]
cmp r0, #0x19
blt _021E6B64
movs r2, #0
ldr r0, _021E6B70 @ =0x0000FFFF
str r2, [r4, #0x64]
str r0, [sp]
ldr r0, [r4, #0x70]
movs r1, #0x10
adds r3, r2, #0
bl FUN_020090B4
movs r0, #0x10
str r0, [sp]
movs r3, #0
ldr r2, _021E6B70 @ =0x0000FFFF
str r3, [sp, #4]
str r2, [sp, #8]
ldr r0, [r4, #8]
movs r1, #1
bl FUN_02003370
movs r0, #0x10
str r0, [sp]
movs r3, #0
ldr r2, _021E6B70 @ =0x0000FFFF
str r3, [sp, #4]
str r2, [sp, #8]
ldr r0, [r4, #8]
movs r1, #4
bl FUN_02003370
ldr r0, [r4, #0x68]
adds r0, r0, #1
str r0, [r4, #0x68]
b _021E6B64
_021E6B34:
ldr r0, [r4, #8]
bl FUN_02003B44
cmp r0, #0
bne _021E6B64
ldr r0, [r4, #0x70]
bl FUN_02009138
cmp r0, #0
bne _021E6B64
ldr r0, [r4, #0x68]
adds r0, r0, #1
str r0, [r4, #0x68]
b _021E6B64
_021E6B50:
ldr r0, [r4, #0x44]
bl ov95_021E5EDC
cmp r0, #1
beq _021E6B64
movs r0, #0
str r0, [r4, #0x68]
add sp, #0x10
str r0, [r4, #0x64]
pop {r4, r5, r6, pc}
_021E6B64:
movs r0, #1
add sp, #0x10
pop {r4, r5, r6, pc}
nop
_021E6B6C: .4byte 0x00000707
_021E6B70: .4byte 0x0000FFFF
thumb_func_end ov95_021E6964
thumb_func_start ov95_021E6B74
ov95_021E6B74: @ 0x021E6B74
push {r4, r5, r6, lr}
sub sp, #0x10
adds r4, r0, #0
ldr r0, [r4, #0x68]
cmp r0, #4
bls _021E6B82
b _021E6D50
_021E6B82:
adds r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
add pc, r0
_021E6B8E: @ jump table
.2byte _021E6B98 - _021E6B8E - 2 @ case 0
.2byte _021E6BC8 - _021E6B8E - 2 @ case 1
.2byte _021E6C56 - _021E6B8E - 2 @ case 2
.2byte _021E6CE8 - _021E6B8E - 2 @ case 3
.2byte _021E6D34 - _021E6B8E - 2 @ case 4
_021E6B98:
ldr r0, [r4, #0x44]
movs r1, #0
bl ov95_021E5EC0
ldr r0, [r4, #0x44]
movs r1, #1
bl ov95_021E5EC0
ldr r0, [r4, #0x44]
movs r1, #2
bl ov95_021E5EC0
ldr r0, [r4, #0x44]
movs r1, #3
bl ov95_021E5EC0
movs r0, #2
movs r1, #0
bl FUN_02022C60
ldr r0, [r4, #0x68]
adds r0, r0, #1
str r0, [r4, #0x68]
b _021E6D5A
_021E6BC8:
ldr r0, [r4, #0x64]
cmp r0, #0x19
beq _021E6BD8
cmp r0, #0x50
beq _021E6BE0
cmp r0, #0x8e
beq _021E6BE8
b _021E6BEE
_021E6BD8:
ldr r0, _021E6D60 @ =0x00000806
bl FUN_0200604C
b _021E6BEE
_021E6BE0:
ldr r0, _021E6D64 @ =0x000007AA
bl FUN_0200604C
b _021E6BEE
_021E6BE8:
ldr r0, _021E6D68 @ =0x00000815
bl FUN_0200604C
_021E6BEE:
ldr r0, [r4, #0x64]
adds r0, r0, #1
str r0, [r4, #0x64]
cmp r0, #0xa0
bge _021E6BFA
b _021E6D5A
_021E6BFA:
movs r3, #0
str r3, [r4, #0x64]
str r3, [sp]
movs r0, #0x10
ldr r2, _021E6D6C @ =0x0000FFFF
str r0, [sp, #4]
str r2, [sp, #8]
ldr r0, [r4, #8]
movs r1, #1
bl FUN_02003370
ldr r0, [r4, #0x78]
ldr r0, [r0]
bl FUN_02024B34
movs r1, #1
bl FUN_02022808
adds r5, r0, #0
movs r3, #0
movs r6, #1
str r3, [sp]
movs r0, #0x10
ldr r2, _021E6D6C @ =0x0000FFFF
str r0, [sp, #4]
str r2, [sp, #8]
lsls r6, r5
eors r2, r6
lsls r2, r2, #0x10
ldr r0, [r4, #8]
movs r1, #4
lsrs r2, r2, #0x10
bl FUN_02003370
ldr r0, _021E6D6C @ =0x0000FFFF
movs r1, #0
str r0, [sp]
ldr r0, [r4, #0x70]
movs r2, #0x10
adds r3, r1, #0
bl FUN_020090B4
ldr r0, [r4, #0x68]
adds r0, r0, #1
str r0, [r4, #0x68]
b _021E6D5A
_021E6C56:
add r1, sp, #0xc
ldr r0, [r4, #0x78]
movs r5, #0
adds r1, #2
add r2, sp, #0xc
bl FUN_0200DE44
add r0, sp, #0xc
adds r1, r5, #0
ldrsh r2, [r0, r1]
adds r0, r1, #0
subs r0, #0x30
cmp r2, r0
ble _021E6C7C
ldr r0, [r4, #0x78]
subs r2, r1, #4
bl FUN_0200DED0
b _021E6C7E
_021E6C7C:
adds r5, r5, #1
_021E6C7E:
add r1, sp, #0xc
ldr r0, [r4, #0x7c]
adds r1, #2
add r2, sp, #0xc
bl FUN_0200DE44
add r0, sp, #0xc
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0xc0
bge _021E6C9E
ldr r0, [r4, #0x7c]
movs r2, #4
bl FUN_0200DED0
b _021E6CA0
_021E6C9E:
adds r5, r5, #1
_021E6CA0:
ldr r0, [r4, #8]
bl FUN_02003B44
cmp r0, #0
bne _021E6D5A
cmp r5, #2
bne _021E6D5A
ldr r0, [r4, #0x70]
bl FUN_02009138
cmp r0, #0
bne _021E6D5A
adds r0, r4, #0
movs r1, #0
bl ov95_021E62F0
movs r0, #2
movs r1, #1
bl FUN_02022C60
ldr r0, [r4, #0x74]
movs r1, #0
bl FUN_0200DCE8
ldr r0, [r4, #0x78]
movs r1, #0
bl FUN_0200DCE8
ldr r0, [r4, #0x7c]
movs r1, #0
bl FUN_0200DCE8
ldr r0, [r4, #0x68]
adds r0, r0, #1
str r0, [r4, #0x68]
b _021E6D5A
_021E6CE8:
ldr r0, [r4, #0x64]
adds r0, r0, #1
str r0, [r4, #0x64]
cmp r0, #0x19
blt _021E6D5A
movs r2, #0
ldr r0, _021E6D6C @ =0x0000FFFF
str r2, [r4, #0x64]
str r0, [sp]
ldr r0, [r4, #0x70]
movs r1, #0x10
adds r3, r2, #0
bl FUN_020090B4
movs r0, #0x10
str r0, [sp]
movs r3, #0
ldr r2, _021E6D6C @ =0x0000FFFF
str r3, [sp, #4]
str r2, [sp, #8]
ldr r0, [r4, #8]
movs r1, #1
bl FUN_02003370
movs r0, #0x10
str r0, [sp]
movs r3, #0
ldr r2, _021E6D6C @ =0x0000FFFF
str r3, [sp, #4]
str r2, [sp, #8]
ldr r0, [r4, #8]
movs r1, #4
bl FUN_02003370
ldr r0, [r4, #0x68]
adds r0, r0, #1
str r0, [r4, #0x68]
b _021E6D5A
_021E6D34:
ldr r0, [r4, #8]
bl FUN_02003B44
cmp r0, #0
bne _021E6D5A
ldr r0, [r4, #0x70]
bl FUN_02009138
cmp r0, #0
bne _021E6D5A
ldr r0, [r4, #0x68]
adds r0, r0, #1
str r0, [r4, #0x68]
b _021E6D5A
_021E6D50:
movs r0, #0
str r0, [r4, #0x68]
add sp, #0x10
str r0, [r4, #0x64]
pop {r4, r5, r6, pc}
_021E6D5A:
movs r0, #1
add sp, #0x10
pop {r4, r5, r6, pc}
.align 2, 0
_021E6D60: .4byte 0x00000806
_021E6D64: .4byte 0x000007AA
_021E6D68: .4byte 0x00000815
_021E6D6C: .4byte 0x0000FFFF
thumb_func_end ov95_021E6B74
thumb_func_start ov95_021E6D70
ov95_021E6D70: @ 0x021E6D70
push {r4, r5, lr}
sub sp, #0xc
adds r5, r0, #0
movs r0, #0
adds r1, r0, #0
bl FUN_0201A0FC
bl FUN_0201A108
movs r2, #1
movs r0, #3
movs r1, #0x46
lsls r2, r2, #0x12
bl FUN_0201A910
adds r0, r5, #0
movs r1, #0x8c
movs r2, #0x46
bl FUN_02007280
movs r1, #0
movs r2, #0x8c
adds r4, r0, #0
blx FUN_020E5B44
adds r0, r5, #0
bl FUN_020072A4
str r0, [r4]
ldr r0, [r0, #0x10]
bl FUN_0202AD3C
str r0, [r4, #0x10]
ldr r0, [r4]
ldr r0, [r0, #0x10]
bl FUN_0202ADCC
str r0, [r4, #0x14]
bl ov95_021E5954
str r0, [r4, #0x38]
movs r0, #0x46
bl FUN_02007FD4
str r0, [r4, #0x3c]
movs r0, #0xb4
movs r1, #0x46
bl FUN_02007688
str r0, [r4, #0x40]
movs r0, #0x46
bl FUN_0201AC88
str r0, [r4, #4]
movs r0, #0x40
movs r1, #0x46
bl FUN_0202055C
movs r0, #0x46
movs r1, #1
movs r2, #0
bl FUN_02016EDC
str r0, [r4, #0x58]
movs r0, #0x46
bl FUN_020030E8
movs r1, #1
str r0, [r4, #8]
bl FUN_02003B50
movs r2, #2
ldr r0, [r4, #8]
movs r1, #0
lsls r2, r2, #8
movs r3, #0x46
bl FUN_02003120
movs r1, #2
ldr r0, [r4, #8]
lsls r2, r1, #8
movs r3, #0x46
bl FUN_02003120
movs r1, #1
ldr r0, [r4, #8]
lsls r2, r1, #9
movs r3, #0x46
bl FUN_02003120
movs r0, #1
str r0, [sp]
movs r0, #0x20
str r0, [sp, #4]
movs r0, #0xf0
str r0, [sp, #8]
ldr r0, [r4, #8]
movs r1, #0x10
movs r2, #9
movs r3, #0x46
bl FUN_02003200
bl ov95_021E5900
bl ov95_021E5928
bl ov95_021E59F8
ldr r0, [r4, #4]
bl ov95_021E5A38
ldr r0, [r4, #4]
bl ov95_021E6FC4
adds r0, r4, #4
bl ov95_021E619C
movs r0, #1
bl FUN_02002B8C
ldr r0, [r4, #4]
ldr r1, [r4, #0x54]
ldr r2, [r4, #0x50]
movs r3, #0x46
bl ov95_021E7020
adds r1, r4, #0
adds r1, #0x88
str r0, [r1]
bl FUN_02005FA0
ldr r0, _021E6E84 @ =ov95_021E5B24
adds r1, r4, #0
bl FUN_0201A0FC
movs r0, #1
add sp, #0xc
pop {r4, r5, pc}
.align 2, 0
_021E6E84: .4byte ov95_021E5B24
thumb_func_end ov95_021E6D70
thumb_func_start ov95_021E6E88
ov95_021E6E88: @ 0x021E6E88
push {r3, r4, r5, lr}
adds r4, r1, #0
bl FUN_02007290
ldr r1, [r4]
adds r5, r0, #0
cmp r1, #0
beq _021E6E9E
cmp r1, #1
beq _021E6EDC
b _021E6EF8
_021E6E9E:
bl FUN_0200FB5C
cmp r0, #1
bne _021E6EAC
ldr r0, [r4]
adds r0, r0, #1
str r0, [r4]
_021E6EAC:
ldr r0, [r5]
movs r1, #5
ldr r0, [r0, #0xc]
movs r2, #0
bl FUN_0206E540
adds r4, r0, #0
adds r1, r5, #0
lsls r2, r4, #0x10
ldr r0, [r5, #0x40]
adds r1, #0x6c
lsrs r2, r2, #0x10
movs r3, #1
bl FUN_020729A4
ldr r0, _021E6F08 @ =0x000001EA
cmp r4, r0
bne _021E6ED6
movs r0, #1
str r0, [r5, #0x5c]
b _021E6F04
_021E6ED6:
movs r0, #0
str r0, [r5, #0x5c]
b _021E6F04
_021E6EDC:
bl ov95_021E6300
cmp r0, #0
bne _021E6EEC
ldr r0, [r4]
adds r0, r0, #1
str r0, [r4]
b _021E6F04
_021E6EEC:
ldr r0, [r5, #0x3c]
bl FUN_02008120
bl ov95_021E5B58
b _021E6F04
_021E6EF8:
bl FUN_0200FB5C
cmp r0, #1
bne _021E6F04
movs r0, #1
pop {r3, r4, r5, pc}
_021E6F04:
movs r0, #0
pop {r3, r4, r5, pc}
.align 2, 0
_021E6F08: .4byte 0x000001EA
thumb_func_end ov95_021E6E88
thumb_func_start ov95_021E6F0C
ov95_021E6F0C: @ 0x021E6F0C
push {r3, r4, r5, lr}
adds r5, r0, #0
bl FUN_02007290
adds r4, r0, #0
adds r0, #0x88
ldr r0, [r0]
bl ov95_021E7078
ldr r0, [r4, #0x38]
bl FUN_02026F54
movs r0, #1
movs r1, #0
bl FUN_02022C60
movs r0, #2
movs r1, #0
bl FUN_02022C60
movs r0, #3
movs r1, #0
bl FUN_02022C60
movs r0, #4
movs r1, #0
bl FUN_02022CC8
ldr r0, [r4, #8]
movs r1, #0
bl FUN_02003150
ldr r0, [r4, #8]
movs r1, #2
bl FUN_02003150
ldr r0, [r4, #8]
movs r1, #1
bl FUN_02003150
ldr r0, [r4, #8]
bl FUN_02003104
movs r0, #0
bl FUN_02002B8C
ldr r0, [r4, #4]
movs r1, #1
bl FUN_0201BB4C
ldr r0, [r4, #4]
movs r1, #2
bl FUN_0201BB4C
ldr r0, [r4, #4]
movs r1, #3
bl FUN_0201BB4C
ldr r0, [r4, #4]
bl FUN_0201AB0C
bl FUN_020205AC
ldr r0, [r4, #0x3c]
bl FUN_02008524
ldr r0, [r4, #0x58]
bl FUN_02016F2C
ldr r0, [r4, #0x40]
bl FUN_0200770C
adds r0, r4, #4
bl ov95_021E6228
adds r0, r5, #0
bl FUN_02007294
movs r0, #0x46
bl FUN_0201A9C4
movs r0, #0
adds r1, r0, #0
bl FUN_0201A0FC
bl FUN_0201A108
bl FUN_0203E354
movs r0, #1
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_end ov95_021E6F0C
thumb_func_start ov95_021E6FC4
ov95_021E6FC4: @ 0x021E6FC4
push {r4, r5, lr}
sub sp, #0x54
ldr r5, _021E701C @ =0x021E7860
adds r4, r0, #0
add r3, sp, #0
movs r2, #0xa
_021E6FD0:
ldm r5!, {r0, r1}
stm r3!, {r0, r1}
subs r2, r2, #1
bne _021E6FD0
ldr r0, [r5]
movs r1, #4
str r0, [r3]
adds r0, r4, #0
add r2, sp, #0
movs r3, #0
bl FUN_0201B1E4
adds r0, r4, #0
movs r1, #4
bl FUN_0201CAE0
adds r0, r4, #0
movs r1, #5
add r2, sp, #0x1c
movs r3, #0
bl FUN_0201B1E4
adds r0, r4, #0
movs r1, #5
bl FUN_0201CAE0
adds r0, r4, #0
movs r1, #6
add r2, sp, #0x38
movs r3, #0
bl FUN_0201B1E4
adds r0, r4, #0
movs r1, #6
bl FUN_0201CAE0
add sp, #0x54
pop {r4, r5, pc}
.align 2, 0
_021E701C: .4byte 0x021E7860
thumb_func_end ov95_021E6FC4
thumb_func_start ov95_021E7020
ov95_021E7020: @ 0x021E7020
push {r3, r4, r5, r6, r7, lr}
adds r5, r0, #0
adds r6, r1, #0
adds r7, r2, #0
str r3, [sp]
cmp r5, #0
bne _021E7032
bl GF_AssertFail
_021E7032:
cmp r6, #0
bne _021E703A
bl GF_AssertFail
_021E703A:
cmp r7, #0
bne _021E7042
bl GF_AssertFail
_021E7042:
ldr r0, [sp]
movs r1, #0x3c
bl FUN_0201AA8C
movs r1, #0
movs r2, #0x3c
adds r4, r0, #0
blx FUN_020D4994
ldr r0, [sp]
str r0, [r4]
str r5, [r4, #0xc]
str r6, [r4, #4]
str r7, [r4, #8]
bl FUN_0200BD08
str r0, [r4, #0x14]
ldr r1, [r4]
movs r0, #4
bl FUN_02002CEC
adds r0, r4, #0
bl ov95_021E72B8
adds r0, r4, #0
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_end ov95_021E7020
thumb_func_start ov95_021E7078
ov95_021E7078: @ 0x021E7078
push {r4, lr}
adds r4, r0, #0
bne _021E7082
bl GF_AssertFail
_021E7082:
adds r0, r4, #0
bl ov95_021E7308
adds r0, r4, #0
bl ov95_021E7404
movs r0, #4
bl FUN_02002DB4
ldr r0, [r4, #0x14]
bl FUN_0200BDA0
ldr r0, [r4, #0xc]
movs r1, #4
bl FUN_0201BB4C
ldr r0, [r4, #0xc]
movs r1, #5
bl FUN_0201BB4C
ldr r0, [r4, #0xc]
movs r1, #6
bl FUN_0201BB4C
adds r0, r4, #0
bl FUN_0201AB0C
pop {r4, pc}
.align 2, 0
thumb_func_end ov95_021E7078
thumb_func_start ov95_021E70BC
ov95_021E70BC: @ 0x021E70BC
push {r4, r5, r6, r7, lr}
sub sp, #0x1c
adds r5, r0, #0
str r1, [sp, #0x10]
str r2, [sp, #0x14]
str r3, [sp, #0x18]
ldr r7, [r5, #4]
ldr r6, [r5, #8]
bne _021E70D2
bl GF_AssertFail
_021E70D2:
cmp r7, #0
bne _021E70DA
bl GF_AssertFail
_021E70DA:
cmp r6, #0
bne _021E70E2
bl GF_AssertFail
_021E70E2:
ldr r1, [r5]
movs r0, #0xef
bl FUN_02007688
adds r4, r0, #0
movs r0, #0
str r0, [sp]
movs r0, #1
str r0, [sp, #4]
movs r0, #2
str r0, [sp, #8]
ldr r0, [sp, #0x18]
adds r1, r6, #0
str r0, [sp, #0xc]
adds r0, r7, #0
adds r2, r4, #0
movs r3, #0xb
bl FUN_0200D5D4
movs r0, #0
str r0, [sp]
movs r0, #2
str r0, [sp, #4]
ldr r0, [sp, #0x14]
adds r1, r6, #0
str r0, [sp, #8]
adds r0, r7, #0
adds r2, r4, #0
movs r3, #0xc
bl FUN_0200D504
movs r0, #0
str r0, [sp]
ldr r0, [sp, #0x30]
adds r1, r6, #0
str r0, [sp, #4]
adds r0, r7, #0
adds r2, r4, #0
movs r3, #0xd
bl FUN_0200D6EC
movs r0, #0
str r0, [sp]
ldr r0, [sp, #0x34]
adds r1, r6, #0
str r0, [sp, #4]
adds r0, r7, #0
adds r2, r4, #0
movs r3, #0xe
bl FUN_0200D71C
ldr r0, [sp, #0x34]
ldr r1, [sp, #0x14]
str r0, [sp]
ldr r2, [sp, #0x18]
ldr r3, [sp, #0x30]
adds r0, r5, #0
bl ov95_021E7388
movs r0, #1
str r0, [sp]
movs r0, #0xa0
str r0, [sp, #4]
movs r2, #0
ldr r0, [sp, #0x10]
movs r1, #0xef
movs r3, #0x46
str r2, [sp, #8]
bl FUN_02003200
movs r0, #1
str r0, [sp]
movs r0, #0x20
str r0, [sp, #4]
movs r0, #0xf0
str r0, [sp, #8]
ldr r0, [sp, #0x10]
movs r1, #0x10
movs r2, #9
movs r3, #0x46
bl FUN_02003200
movs r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
movs r0, #0x46
str r0, [sp, #0xc]
ldr r2, [r5, #0xc]
adds r0, r4, #0
movs r1, #1
movs r3, #4
bl FUN_02007B44
movs r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
movs r0, #0x46
str r0, [sp, #0xc]
ldr r2, [r5, #0xc]
adds r0, r4, #0
movs r1, #9
movs r3, #4
bl FUN_02007B68
movs r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
movs r0, #0x46
str r0, [sp, #0xc]
ldr r2, [r5, #0xc]
adds r0, r4, #0
movs r1, #1
movs r3, #5
bl FUN_02007B44
movs r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
movs r0, #0x46
str r0, [sp, #0xc]
ldr r2, [r5, #0xc]
adds r0, r4, #0
movs r1, #0xa
movs r3, #5
bl FUN_02007B68
movs r0, #5
movs r1, #0
bl FUN_0201BC28
movs r0, #6
movs r1, #0
bl FUN_0201BC28
movs r0, #0x10
movs r1, #1
bl FUN_02022C60
adds r0, r4, #0
bl FUN_0200770C
add sp, #0x1c
pop {r4, r5, r6, r7, pc}
thumb_func_end ov95_021E70BC
thumb_func_start ov95_021E7208
ov95_021E7208: @ 0x021E7208
push {r3, r4, r5, lr}
adds r4, r0, #0
adds r3, r1, #0
adds r1, r4, #0
adds r5, r2, #0
adds r1, #0x1c
adds r2, r3, #0
bl ov95_021E7328
adds r1, r4, #0
adds r0, r4, #0
adds r1, #0x2c
adds r2, r5, #0
bl ov95_021E7328
movs r0, #0
strb r0, [r4, #0x18]
movs r0, #1
strb r0, [r4, #0x19]
adds r0, r4, #0
bl ov95_021E7410
movs r0, #5
movs r1, #1
bl FUN_0201BC28
movs r0, #6
movs r1, #1
bl FUN_0201BC28
movs r0, #0x10
movs r1, #1
bl FUN_02022CC8
ldr r0, [r4, #0x10]
movs r1, #1
bl FUN_0200DCE8
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_end ov95_021E7208
thumb_func_start ov95_021E7258
ov95_021E7258: @ 0x021E7258
push {r4, lr}
adds r4, r0, #0
ldrb r1, [r4, #0x18]
cmp r1, #0
beq _021E7268
cmp r1, #1
beq _021E7278
b _021E72AE
_021E7268:
bl ov95_021E7450
cmp r0, #0
beq _021E72B2
ldrb r0, [r4, #0x18]
adds r0, r0, #1
strb r0, [r4, #0x18]
b _021E72B2
_021E7278:
bl ov95_021E7514
cmp r0, #0
beq _021E72B2
ldrb r0, [r4, #0x19]
cmp r0, #0
bne _021E728A
bl GF_AssertFail
_021E728A:
movs r0, #5
movs r1, #0
bl FUN_0201BC28
movs r0, #6
movs r1, #0
bl FUN_0201BC28
ldr r0, [r4, #0x10]
movs r1, #0
bl FUN_0200DCE8
movs r0, #0x10
movs r1, #0
bl FUN_02022CC8
ldrb r0, [r4, #0x19]
pop {r4, pc}
_021E72AE:
bl GF_AssertFail
_021E72B2:
movs r0, #0
pop {r4, pc}
.align 2, 0
thumb_func_end ov95_021E7258
thumb_func_start ov95_021E72B8
ov95_021E72B8: @ 0x021E72B8
push {r3, r4, lr}
sub sp, #0x14
adds r4, r0, #0
movs r0, #8
str r0, [sp]
movs r0, #0x18
str r0, [sp, #4]
movs r0, #2
str r0, [sp, #8]
movs r0, #0xf
str r0, [sp, #0xc]
movs r0, #0x50
str r0, [sp, #0x10]
adds r1, r4, #0
ldr r0, [r4, #0xc]
adds r1, #0x1c
movs r2, #6
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]
movs r0, #0xf
str r0, [sp, #0xc]
movs r0, #0x80
str r0, [sp, #0x10]
ldr r0, [r4, #0xc]
adds r4, #0x2c
adds r1, r4, #0
movs r2, #6
movs r3, #4
bl FUN_0201D40C
add sp, #0x14
pop {r3, r4, pc}
.align 2, 0
thumb_func_end ov95_021E72B8
thumb_func_start ov95_021E7308
ov95_021E7308: @ 0x021E7308
push {r3, r4, r5, lr}
adds r5, r0, #0
bne _021E7312
bl GF_AssertFail
_021E7312:
movs r4, #0
adds r5, #0x1c
_021E7316:
adds r0, r5, #0
bl FUN_0201D520
adds r4, r4, #1
adds r5, #0x10
cmp r4, #2
blt _021E7316
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_end ov95_021E7308
thumb_func_start ov95_021E7328
ov95_021E7328: @ 0x021E7328
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x10
adds r5, r0, #0
ldr r3, [r5]
adds r4, r1, #0
adds r6, r2, #0
movs r0, #0
movs r1, #0x1b
movs r2, #0xbb
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, _021E7384 @ =0x00010200
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
_021E7384: .4byte 0x00010200
thumb_func_end ov95_021E7328
thumb_func_start ov95_021E7388
ov95_021E7388: @ 0x021E7388
push {r4, r5, r6, r7, lr}
sub sp, #0x3c
ldr r4, _021E7400 @ =0x021E782C
str r2, [sp]
str r3, [sp, #4]
adds r5, r0, #0
adds r7, r1, #0
add r3, sp, #8
movs r2, #6
_021E739A:
ldm r4!, {r0, r1}
stm r3!, {r0, r1}
subs r2, r2, #1
bne _021E739A
ldr r0, [r4]
cmp r5, #0
str r0, [r3]
ldr r6, [r5, #4]
ldr r4, [r5, #8]
bne _021E73B2
bl GF_AssertFail
_021E73B2:
cmp r6, #0
bne _021E73BA
bl GF_AssertFail
_021E73BA:
cmp r4, #0
bne _021E73C2
bl GF_AssertFail
_021E73C2:
movs r1, #0x80
add r0, sp, #8
strh r1, [r0]
movs r1, #0x48
strh r1, [r0, #2]
movs r1, #1
strh r1, [r0, #6]
ldr r0, [sp]
adds r1, r4, #0
str r0, [sp, #0x20]
ldr r0, [sp, #4]
add r2, sp, #8
str r0, [sp, #0x24]
ldr r0, [sp, #0x50]
str r7, [sp, #0x1c]
str r0, [sp, #0x28]
adds r0, r6, #0
bl FUN_0200D734
adds r4, r0, #0
movs r1, #1
bl FUN_0200DC78
adds r0, r4, #0
movs r1, #0
bl FUN_0200DCE8
str r4, [r5, #0x10]
add sp, #0x3c
pop {r4, r5, r6, r7, pc}
nop
_021E7400: .4byte 0x021E782C
thumb_func_end ov95_021E7388
thumb_func_start ov95_021E7404
ov95_021E7404: @ 0x021E7404
ldr r3, _021E740C @ =FUN_0200D9DC
ldr r0, [r0, #0x10]
bx r3
nop
_021E740C: .4byte FUN_0200D9DC
thumb_func_end ov95_021E7404
thumb_func_start ov95_021E7410
ov95_021E7410: @ 0x021E7410
push {r3, r4, r5, lr}
adds r5, r0, #0
ldr r0, [r5, #0x10]
cmp r0, #0
bne _021E741E
bl GF_AssertFail
_021E741E:
ldrb r0, [r5, #0x19]
cmp r0, #1
beq _021E742A
cmp r0, #2
beq _021E742E
b _021E7432
_021E742A:
movs r4, #0
b _021E7436
_021E742E:
movs r4, #1
b _021E7436
_021E7432:
bl GF_AssertFail
_021E7436:
ldr r1, _021E7448 @ =0x021E7818
lsls r3, r4, #2
ldr r2, _021E744C @ =0x021E781A
ldrsh r1, [r1, r3]
ldrsh r2, [r2, r3]
ldr r0, [r5, #0x10]
bl FUN_0200DDB8
pop {r3, r4, r5, pc}
.align 2, 0
_021E7448: .4byte 0x021E7818
_021E744C: .4byte 0x021E781A
thumb_func_end ov95_021E7410
thumb_func_start ov95_021E7450
ov95_021E7450: @ 0x021E7450
push {r4, r5, r6, lr}
adds r5, r0, #0
ldr r0, _021E7508 @ =0x021E7820
movs r4, #0
bl FUN_02025224
adds r6, r0, #0
subs r0, r4, #1
cmp r6, r0
beq _021E7488
ldr r0, _021E750C @ =0x000005DC
bl FUN_0200604C
cmp r6, #0
beq _021E7474
cmp r6, #1
beq _021E747A
b _021E7482
_021E7474:
movs r4, #1
strb r4, [r5, #0x19]
b _021E74EC
_021E747A:
movs r0, #2
strb r0, [r5, #0x19]
movs r4, #1
b _021E74EC
_021E7482:
bl GF_AssertFail
b _021E74EC
_021E7488:
ldr r0, _021E7510 @ =0x021D110C
movs r1, #0x40
ldr r0, [r0, #0x48]
tst r1, r0
beq _021E74AA
ldrb r0, [r5, #0x19]
cmp r0, #1
beq _021E74EC
movs r0, #1
strb r0, [r5, #0x19]
adds r0, r5, #0
bl ov95_021E7410
ldr r0, _021E750C @ =0x000005DC
bl FUN_0200604C
b _021E74EC
_021E74AA:
movs r1, #0x80
tst r1, r0
beq _021E74C8
ldrb r0, [r5, #0x19]
cmp r0, #2
beq _021E74EC
movs r0, #2
strb r0, [r5, #0x19]
adds r0, r5, #0
bl ov95_021E7410
ldr r0, _021E750C @ =0x000005DC
bl FUN_0200604C
b _021E74EC
_021E74C8:
movs r1, #1
adds r2, r0, #0
tst r2, r1
beq _021E74E2
ldrb r0, [r5, #0x19]
cmp r0, #0
bne _021E74DE
bl GF_AssertFail
movs r0, #2
strb r0, [r5, #0x19]
_021E74DE:
movs r4, #1
b _021E74EC
_021E74E2:
movs r2, #2
tst r0, r2
beq _021E74EC
strb r2, [r5, #0x19]
adds r4, r1, #0
_021E74EC:
cmp r4, #0
beq _021E7504
adds r0, r5, #0
bl ov95_021E7410
ldr r0, [r5, #0x10]
movs r1, #3
bl FUN_0200DC4C
ldr r0, _021E750C @ =0x000005DC
bl FUN_0200604C
_021E7504:
adds r0, r4, #0
pop {r4, r5, r6, pc}
.align 2, 0
_021E7508: .4byte 0x021E7820
_021E750C: .4byte 0x000005DC
_021E7510: .4byte 0x021D110C
thumb_func_end ov95_021E7450
thumb_func_start ov95_021E7514
ov95_021E7514: @ 0x021E7514
push {r4, lr}
adds r4, r0, #0
ldr r0, [r4, #0x10]
bl FUN_0200DC64
cmp r0, #3
beq _021E7526
bl GF_AssertFail
_021E7526:
ldr r0, [r4, #0x10]
bl FUN_0200DCA0
cmp r0, #0
bne _021E7534
movs r0, #1
pop {r4, pc}
_021E7534:
movs r0, #0
pop {r4, pc}
thumb_func_end ov95_021E7514
.data
_021E7538:
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00
.byte 0x00, 0x40, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00
.byte 0x20, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 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, 0x04, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x01, 0x00
.byte 0x01, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x01, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00
.byte 0xFE, 0xFF, 0x02, 0x00, 0x02, 0x00, 0xFE, 0xFF, 0xFE, 0xFF, 0x02, 0x00, 0x02, 0x00, 0xFE, 0xFF
.byte 0xFF, 0x00, 0xFF, 0x00, 0xFD, 0xFF, 0x03, 0x00, 0x03, 0x00, 0xFD, 0xFF, 0xFD, 0xFF, 0x03, 0x00
.byte 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0x03, 0x00, 0x03, 0x00, 0xFD, 0xFF
.byte 0xFD, 0xFF, 0x03, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00
.byte 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0xFF, 0xFF
.byte 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00
.byte 0x01, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x00, 0x01, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x06, 0x04, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x80, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3F, 0x00, 0x00, 0x80, 0x3F
.byte 0xCD, 0xCC, 0x8C, 0x3F, 0xCD, 0xCC, 0x8C, 0x3F, 0xCD, 0xCC, 0x8C, 0x3F, 0xCD, 0xCC, 0x8C, 0x3F
.byte 0xCD, 0xCC, 0x8C, 0x3F, 0x00, 0x00, 0x80, 0x3F, 0x00, 0x00, 0x80, 0x3F, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x80, 0x3F, 0xCD, 0xCC, 0x8C, 0x3F, 0xCD, 0xCC, 0x8C, 0x3F, 0x9A, 0x99, 0x99, 0x3F
.byte 0x9A, 0x99, 0x99, 0x3F, 0x9A, 0x99, 0x99, 0x3F, 0xCD, 0xCC, 0x8C, 0x3F, 0xCD, 0xCC, 0x8C, 0x3F
.byte 0x00, 0x00, 0x80, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3F, 0xCD, 0xCC, 0x8C, 0x3F
.byte 0xCD, 0xCC, 0x8C, 0x3F, 0x9A, 0x99, 0x99, 0x3F, 0x9A, 0x99, 0x99, 0x3F, 0x9A, 0x99, 0x99, 0x3F
.byte 0xCD, 0xCC, 0x8C, 0x3F, 0xCD, 0xCC, 0x8C, 0x3F, 0x00, 0x00, 0x80, 0x3F, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x80, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3F, 0x00, 0x00, 0x80, 0x3F
.byte 0x66, 0x66, 0x66, 0x3F, 0x66, 0x66, 0x66, 0x3F, 0x66, 0x66, 0x66, 0x3F, 0x66, 0x66, 0x66, 0x3F
.byte 0x66, 0x66, 0x66, 0x3F, 0x00, 0x00, 0x80, 0x3F, 0x00, 0x00, 0x80, 0x3F, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x80, 0x3F, 0x00, 0x00, 0x80, 0x3F, 0x66, 0x66, 0x66, 0x3F, 0xCD, 0xCC, 0x4C, 0x3F
.byte 0x33, 0x33, 0x33, 0x3F, 0x33, 0x33, 0x33, 0x3F, 0xCD, 0xCC, 0x4C, 0x3F, 0x66, 0x66, 0x66, 0x3F
.byte 0x00, 0x00, 0x80, 0x3F, 0x00, 0x00, 0x80, 0x3F, 0x00, 0x00, 0x80, 0x3F, 0x00, 0x00, 0x80, 0x3F
.byte 0x66, 0x66, 0x66, 0x3F, 0xCD, 0xCC, 0x4C, 0x3F, 0x33, 0x33, 0x33, 0x3F, 0x33, 0x33, 0x33, 0x3F
.byte 0xCD, 0xCC, 0x4C, 0x3F, 0x66, 0x66, 0x66, 0x3F, 0x00, 0x00, 0x80, 0x3F, 0x00, 0x00, 0x80, 0x3F
.byte 0x15, 0x63, 0x1E, 0x02, 0xA1, 0x65, 0x1E, 0x02, 0x80, 0x00, 0x48, 0x00, 0x80, 0x00, 0x78, 0x00
.byte 0x32, 0x5C, 0x03, 0xFB, 0x63, 0x8C, 0x03, 0xFB, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x0E, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0D, 0x00
.byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x08, 0x00, 0x00
@ 0x021E78B4