Files
ph/asm/ov50.s
T
2023-10-06 17:59:49 +02:00

4639 lines
97 KiB
ArmAsm

.include "macros/function.inc"
.include "global.inc"
.text
.global func_ov50_02195500
arm_func_start func_ov50_02195500
func_ov50_02195500: ; 0x02195500
stmdb sp!, {r3, lr}
ldr r1, _0219552c ; =data_027e0fe0
mov r0, #0x1ec
ldr r1, [r1]
mov r2, #4
ldr r1, [r1]
bl func_0202e9dc
cmp r0, #0
ldmeqia sp!, {r3, pc}
bl func_ov50_0219554c
ldmia sp!, {r3, pc}
.align 2, 0
arm_func_end func_ov50_02195500
_0219552c: .word data_027e0fe0
.global func_ov50_02195530
arm_func_start func_ov50_02195530
func_ov50_02195530: ; 0x02195530
ldrsh r2, [r1]
strh r2, [r0, #0x50]
ldrsh r2, [r1, #2]
strh r2, [r0, #0x52]
ldrsh r1, [r1, #4]
strh r1, [r0, #0x54]
bx lr
arm_func_end func_ov50_02195530
.global func_ov50_0219554c
arm_func_start func_ov50_0219554c
func_ov50_0219554c: ; 0x0219554c
stmdb sp!, {r3, r4, r5, lr}
mov r4, r0
bl func_ov14_02148234
ldr r0, _02195638 ; =data_ov50_02198a04
mov r2, #0
str r0, [r4]
mov r0, #2
str r0, [r4, #0x15c]
str r2, [r4, #0x160]
str r2, [r4, #0x164]
str r2, [r4, #0x168]
str r2, [r4, #0x16c]
mov r0, #0x1000
str r0, [r4, #0x170]
str r2, [r4, #0x174]
sub r0, r2, #1
str r0, [r4, #0x178]
mov r1, #1
ldr r0, _0219563c ; =data_ov00_020e2f04
strb r1, [r4, #0x180]
str r0, [r4, #0x184]
strb r1, [r4, #0x188]
strb r2, [r4, #0x189]
str r2, [r4, #0x18c]
str r2, [r4, #0x190]
ldr r0, _02195640 ; =data_ov00_020e2dd8
str r2, [r4, #0x194]
ldr r1, _02195644 ; =data_ov00_020e2f98
str r0, [r4, #0x184]
ldr r0, _02195648 ; =data_027e0fec
str r1, [r4, #0x1b0]
ldr r0, [r0]
add r0, r0, #0x1e8
add r0, r0, #0x400
bl func_ov00_020c4588
mov r2, #0
mov r1, r0
mov r3, r2
add r0, r4, #0x1d8
blx func_ov00_020bd618
ldr r1, _0219564c ; =func_ov00_020b7d74
add r0, r4, #0x1e4
str r1, [sp]
mov r1, #2
mov r2, #4
ldr r3, _02195650 ; =func_ov50_02195658
bl func_0204f614
ldr r5, _02195654 ; =data_027e0194
add lr, r4, #0x1b4
mov ip, #0
ldmia r5!, {r0, r1, r2, r3}
stmia lr!, {r0, r1, r2, r3}
ldmia r5!, {r0, r1, r2, r3}
stmia lr!, {r0, r1, r2, r3}
ldr r1, [r5]
mov r0, r4
str r1, [lr]
strb ip, [r4, #0x158]
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov50_0219554c
_02195638: .word data_ov50_02198a04
_0219563c: .word data_ov00_020e2f04
_02195640: .word data_ov00_020e2dd8
_02195644: .word data_ov00_020e2f98
_02195648: .word data_027e0fec
_0219564c: .word func_ov00_020b7d74
_02195650: .word func_ov50_02195658
_02195654: .word data_027e0194
.global func_ov50_02195658
arm_func_start func_ov50_02195658
func_ov50_02195658: ; 0x02195658
mov r1, #0
str r1, [r0]
bx lr
arm_func_end func_ov50_02195658
.global func_ov50_02195664
arm_func_start func_ov50_02195664
func_ov50_02195664: ; 0x02195664
stmdb sp!, {r3, r4, r5, r6, r7, lr}
ldr r1, _02195700 ; =data_ov50_02198a04
mov r4, r0
ldr r0, _02195704 ; =data_027e0e58
str r1, [r4]
ldr r5, [r0]
add r7, r4, #0x1e4
mov r6, #0
_02195684:
mov r0, r5
mov r1, r7
bl func_ov00_0207c444
add r6, r6, #1
cmp r6, #2
add r7, r7, #4
blo _02195684
ldrb r0, [r4, #0x180]
cmp r0, #0
beq _021956bc
ldr r0, _02195708 ; =data_027e0f6c
add r1, r4, #0x184
ldr r0, [r0]
bl func_ov00_02093af0
_021956bc:
ldr r3, _0219570c ; =func_ov00_020b7d74
add r0, r4, #0x1e4
mov r1, #2
mov r2, #4
bl func_0204f754
add r0, r4, #0x1d8
blx func_ov00_020b3ea8
add r0, r4, #0x1b0
bl func_ov00_02081f6c
add r0, r4, #0x184
bl func_ov00_02094824
mov r0, r4
bl func_ov14_0214829c
mov r0, r4
bl func_0202ea0c
mov r0, r4
ldmia sp!, {r3, r4, r5, r6, r7, pc}
.align 2, 0
arm_func_end func_ov50_02195664
_02195700: .word data_ov50_02198a04
_02195704: .word data_027e0e58
_02195708: .word data_027e0f6c
_0219570c: .word func_ov00_020b7d74
.global func_ov50_02195710
arm_func_start func_ov50_02195710
func_ov50_02195710: ; 0x02195710
stmdb sp!, {r3, r4, r5, r6, r7, lr}
ldr r1, _021957a4 ; =data_ov50_02198a04
mov r4, r0
ldr r0, _021957a8 ; =data_027e0e58
str r1, [r4]
ldr r5, [r0]
add r7, r4, #0x1e4
mov r6, #0
_02195730:
mov r0, r5
mov r1, r7
bl func_ov00_0207c444
add r6, r6, #1
cmp r6, #2
add r7, r7, #4
blo _02195730
ldrb r0, [r4, #0x180]
cmp r0, #0
beq _02195768
ldr r0, _021957ac ; =data_027e0f6c
add r1, r4, #0x184
ldr r0, [r0]
bl func_ov00_02093af0
_02195768:
ldr r3, _021957b0 ; =func_ov00_020b7d74
add r0, r4, #0x1e4
mov r1, #2
mov r2, #4
bl func_0204f754
add r0, r4, #0x1d8
blx func_ov00_020b3ea8
add r0, r4, #0x1b0
bl func_ov00_02081f6c
add r0, r4, #0x184
bl func_ov00_02094824
mov r0, r4
bl func_ov14_0214829c
mov r0, r4
ldmia sp!, {r3, r4, r5, r6, r7, pc}
.align 2, 0
arm_func_end func_ov50_02195710
_021957a4: .word data_ov50_02198a04
_021957a8: .word data_027e0e58
_021957ac: .word data_027e0f6c
_021957b0: .word func_ov00_020b7d74
.global func_ov50_021957b4
arm_func_start func_ov50_021957b4
func_ov50_021957b4: ; 0x021957b4
stmdb sp!, {r3, r4, r5, lr}
sub sp, sp, #0x50
mov r4, r0
mov r1, #3
str r1, [r4, #0x12c]
add r1, r4, #0x100
mov r2, #0x4d
strh r2, [r1, #0x5a]
mov r1, #0xc00
str r1, [r4, #0x70]
bl func_ov50_02196600
mov r3, #0
str r3, [r4, #0xa8]
mov r0, #0xc00
str r0, [r4, #0xac]
str r3, [r4, #0xb0]
mov r0, #0x1c00
str r0, [r4, #0xb4]
mov r0, #0xff
strb r0, [r4, #0x125]
str r3, [r4, #0x130]
strb r3, [r4, #0x9e]
ldr r0, [r4, #0x48]
bic r2, r3, #0x6000
str r0, [r4, #0x160]
ldr r1, [r4, #0x50]
bic r5, r2, #0x1f
str r1, [r4, #0x164]
ldr r1, [r4, #0x48]
orr lr, r5, #9
str r1, [sp, #0x44]
ldr r2, [r4, #0x4c]
add r0, sp, #0x44
str r2, [sp, #0x48]
ldr r2, [r4, #0x50]
add r1, sp, #0x14
str r2, [sp, #0x4c]
ldr r5, [r4, #0x48]
mov r2, r0
str r5, [sp, #0x38]
ldr ip, [r4, #0x4c]
mov r5, #0x800
str ip, [sp, #0x3c]
ldr ip, [r4, #0x50]
str lr, [sp, #4]
str ip, [sp, #0x40]
str r5, [sp, #0x14]
str r3, [sp, #0x18]
str r5, [sp, #0x1c]
bl func_01ff9bf8
add r0, sp, #0x38
mov r3, #0x1000
add r1, sp, #8
mov r2, r0
str r3, [sp, #0xc]
str r5, [sp, #8]
str r5, [sp, #0x10]
bl func_01ff9bc4
add r0, sp, #0x44
add r5, sp, #0x20
ldmia r0, {r0, r1, r2}
stmia r5, {r0, r1, r2}
add r0, sp, #0x38
add lr, sp, #0x2c
ldmia r0, {r0, r1, r2}
stmia lr, {r0, r1, r2}
add ip, r4, #0x1b0
str ip, [sp]
add r0, r4, #0x184
ldr ip, [r0]
ldr r3, [sp, #4]
ldr r2, [r4, #8]
ldr ip, [ip, #0x14]
mov r1, r5
blx ip
ldr r0, _0219594c ; =data_027e0f6c
add r1, r4, #0x184
ldr r0, [r0]
bl func_ov00_02093a5c
ldrh r0, [r4, #0x20]
cmp r0, #2
moveq r0, #0
streqb r0, [r4, #0x119]
ldrh r0, [r4, #0x20]
add r0, r0, #0xff
add r0, r0, #0xff00
mov r0, r0, lsl #0x10
mov r0, r0, lsr #0x10
cmp r0, #1
bhi _02195940
mov r0, r4
mov r1, #0
bl func_ov00_020c1bfc
cmp r0, #0
beq _02195940
mov r0, r4
mov r1, #7
mov r2, #1
bl func_ov50_021960c8
_02195940:
mov r0, #1
add sp, sp, #0x50
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov50_021957b4
_0219594c: .word data_027e0f6c
.global func_ov50_02195950
arm_func_start func_ov50_02195950
func_ov50_02195950: ; 0x02195950
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #0x40
mov r6, r0
mov r5, r1
bl func_ov00_020c313c
cmp r0, #0
beq _02195c90
ldr r0, [r6, #0x48]
mov r4, #0
str r0, [r6, #0x54]
ldr r0, [r6, #0x4c]
str r0, [r6, #0x58]
ldr r0, [r6, #0x50]
str r0, [r6, #0x5c]
ldr r0, [r6, #0x130]
cmp r0, #7
addls pc, pc, r0, lsl #2
b _021959c8
_02195998: ; jump table
b _021959b8 ; case 0
b _021959c8 ; case 1
b _021959c8 ; case 2
b _021959c8 ; case 3
b _021959b8 ; case 4
b _021959b8 ; case 5
b _021959b8 ; case 6
b _021959b8 ; case 7
_021959b8:
str r4, [r6, #0x60]
str r4, [r6, #0x64]
str r4, [r6, #0x68]
b _02195c74
_021959c8:
mov r0, r6
bl func_ov50_021969ec
add r0, r6, #0x48
add r1, r6, #0x60
mov r2, r0
bl func_01ff9bc4
ldr r0, _02195ca8 ; =data_ov50_021989d0
add r1, sp, #0x20
str r0, [sp, #0x20]
str r6, [sp, #0x24]
str r1, [r6, #0xa0]
mov r0, r6
mov r1, #0
bl func_01fffd04
ldrb r1, [r6, #0x110]
mov r4, r0
cmp r1, #0
ldreqb r0, [r6, #0x112]
cmpeq r0, #0
beq _02195a34
ldr r0, [r6, #0x130]
cmp r0, #8
bne _02195a34
mov r0, r6
mov r1, #4
mov r2, #0
bl func_ov50_021960c8
_02195a34:
ldrb r0, [r6, #0x111]
cmp r0, #0
beq _02195bfc
ldrb r0, [r6, #0x114]
mov r1, #0
str r1, [sp, #0x1c]
cmp r0, #0
beq _02195a84
ldr r0, _02195cac ; =data_027e0e60
add r1, r6, #0x108
ldr r0, [r0]
bl func_ov00_020840c4
ldr r1, [r0]
ldr r1, [r1, #0x54]
blx r1
cmp r0, #0
moveq r0, #0
ldrne r0, [r0, #0xc]
str r0, [sp, #0x1c]
b _02195acc
_02195a84:
ldrb r0, [r6, #0x115]
cmp r0, #0
beq _02195ab0
ldr r0, _02195cb0 ; =data_027e0f6c
ldrh r2, [r6, #0xe0]
ldr r1, [r0]
add r0, sp, #0x14
bl func_ov00_02093a1c
ldr r0, [sp, #0x14]
str r0, [sp, #0x1c]
b _02195acc
_02195ab0:
ldr r0, _02195cb0 ; =data_027e0f6c
ldrh r2, [r6, #0xdc]
ldr r1, [r0]
add r0, sp, #0x10
bl func_ov00_02093a1c
ldr r0, [sp, #0x10]
str r0, [sp, #0x1c]
_02195acc:
ldr r0, [sp, #0x1c]
mov r1, r0
mov r0, r0, lsr #0x5
and r0, r0, #3
cmp r0, #2
bne _02195b10
and r0, r1, #0x1f
cmp r0, #8
mov r0, r6
mov r2, #0
bne _02195b04
mov r1, #6
bl func_ov50_021960c8
b _02195c18
_02195b04:
mov r1, #5
bl func_ov50_021960c8
b _02195c18
_02195b10:
ldr r0, [r6, #0x130]
cmp r0, #8
bne _02195b68
mov r1, #0
str r1, [sp]
ldr r0, _02195cb4 ; =data_027e0e58
str r1, [sp, #4]
ldr r0, [r0]
ldr r1, _02195cb8 ; =0x000001a5
add r2, r6, #0x48
mov r3, #2
bl func_ov00_0207c1b0
ldr r0, _02195cbc ; =data_027e0ffc
add r2, r6, #0x48
mov r1, #0x398
mov r3, #0
bl func_ov00_020ceacc
mov r1, #0
mov r0, r6
mov r2, r1
bl func_ov50_021960c8
b _02195c18
_02195b68:
cmp r0, #3
bne _02195bb0
ldr r3, [r6, #0xd4]
ldr r2, [r6, #0xd8]
ldr r1, [r6, #0xd0]
add r0, r6, #0x16c
str r1, [r6, #0x16c]
str r3, [r6, #0x170]
str r2, [r6, #0x174]
bl func_0202bfc0
ldr r1, [sp, #0x1c]
cmp r0, #0
moveq r0, #0
streq r0, [r6, #0x64]
mov r0, r6
and r1, r1, #0x1f
bl func_ov50_02196f7c
b _02195c18
_02195bb0:
beq _02195bf0
add r0, r6, #0xd0
bl func_0202bfc0
cmp r0, #0
ble _02195bf0
ldr r2, [r6, #0xd4]
ldr r3, [r6, #0xd8]
ldr r1, [r6, #0xd0]
mov r0, r6
str r1, [r6, #0x16c]
str r2, [r6, #0x170]
mov r1, #3
mov r2, #0
str r3, [r6, #0x174]
bl func_ov50_021960c8
b _02195c18
_02195bf0:
mov r0, #0
str r0, [r6, #0x64]
b _02195c18
_02195bfc:
ldr r0, [r6, #0x130]
cmp r0, #1
bne _02195c18
mov r0, r6
mov r1, #2
mov r2, #0
bl func_ov50_021960c8
_02195c18:
mov r0, r6
bl func_ov50_02196c04
ldr r0, [r6, #0x130]
cmp r0, #2
beq _02195c3c
cmp r0, #3
beq _02195c58
cmp r0, #8
bne _02195c6c
_02195c3c:
ldr r0, [r6, #0x138]
cmp r0, #5
blt _02195c6c
add r0, sp, #8
mov r1, r6
bl func_ov00_020c23c4
b _02195c6c
_02195c58:
ldr r0, [r6, #0x138]
cmp r0, #5
blt _02195c6c
mov r0, r6
bl func_ov50_02196d94
_02195c6c:
add r0, sp, #0x20
bl func_ov00_02081f4c
_02195c74:
mov r0, r6
bl func_ov00_020c2bf4
mov r0, r6
mov r1, r4
bl func_ov50_02195ce8
mov r0, r6
bl func_ov50_02196680
_02195c90:
mov r1, r5
add r0, r6, #0xa4
add r2, r6, #0x48
bl func_ov00_0207a1c8
add sp, sp, #0x40
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
arm_func_end func_ov50_02195950
_02195ca8: .word data_ov50_021989d0
_02195cac: .word data_027e0e60
_02195cb0: .word data_027e0f6c
_02195cb4: .word data_027e0e58
_02195cb8: .word 0x000001a5
_02195cbc: .word data_027e0ffc
.global func_ov50_02195cc0
arm_func_start func_ov50_02195cc0
func_ov50_02195cc0: ; 0x02195cc0
stmdb sp!, {r4, lr}
mov r4, r0
bl func_ov00_02081f4c
mov r0, r4
ldmia sp!, {r4, pc}
arm_func_end func_ov50_02195cc0
.global func_ov50_02195cd4
arm_func_start func_ov50_02195cd4
func_ov50_02195cd4: ; 0x02195cd4
stmdb sp!, {r3, lr}
ldr r2, [r0]
ldr r2, [r2, #0x14]
blx r2
ldmia sp!, {r3, pc}
arm_func_end func_ov50_02195cd4
.global func_ov50_02195ce8
arm_func_start func_ov50_02195ce8
func_ov50_02195ce8: ; 0x02195ce8
stmdb sp!, {r3, r4, r5, r6, lr}
sub sp, sp, #0x3c
mov r5, r0
ldr r2, [r5, #0x130]
mov r4, r1
cmp r2, #8
addls pc, pc, r2, lsl #2
b _0219609c
_02195d08: ; jump table
b _02195d2c ; case 0
b _02195da4 ; case 1
b _02195df4 ; case 2
b _02195e54 ; case 3
b _0219609c ; case 4
b _0219609c ; case 5
b _0219609c ; case 6
b _02196008 ; case 7
b _0219609c ; case 8
_02195d2c:
bl func_ov00_020c2864
cmp r0, #0
addeq sp, sp, #0x3c
ldmeqia sp!, {r3, r4, r5, r6, pc}
ldr r0, _021960a4 ; =data_027e0fc8
ldr r0, [r0]
bl func_ov00_020bba00
cmp r0, #0
addeq sp, sp, #0x3c
ldmeqia sp!, {r3, r4, r5, r6, pc}
add r1, sp, #0x30
mov r0, r5
bl func_ov50_02196d28
add r1, sp, #0x30
mov r0, r5
bl func_ov14_02148364
cmp r0, #0
beq _02195d8c
mov r0, r5
mov r1, #1
mov r2, #0
bl func_ov50_021960c8
add sp, sp, #0x3c
ldmia sp!, {r3, r4, r5, r6, pc}
_02195d8c:
ldr r0, [r5, #0x48]
add sp, sp, #0x3c
str r0, [r5, #0x160]
ldr r0, [r5, #0x50]
str r0, [r5, #0x164]
ldmia sp!, {r3, r4, r5, r6, pc}
_02195da4:
cmp r4, #0
beq _02195dc0
mov r1, #0
mov r2, r1
bl func_ov50_021960c8
add sp, sp, #0x3c
ldmia sp!, {r3, r4, r5, r6, pc}
_02195dc0:
ldr r2, [r5, #0x160]
ldr r1, [r5, #0x48]
cmp r2, r1
ldreq r2, [r5, #0x164]
ldreq r1, [r5, #0x50]
cmpeq r2, r1
addne sp, sp, #0x3c
ldmneia sp!, {r3, r4, r5, r6, pc}
mov r1, #0
mov r2, r1
bl func_ov50_021960c8
add sp, sp, #0x3c
ldmia sp!, {r3, r4, r5, r6, pc}
_02195df4:
ldr r1, [r5, #0x64]
cmp r1, #0
ldreq r2, [r5, #0x160]
ldreq r1, [r5, #0x48]
cmpeq r2, r1
ldreq r2, [r5, #0x164]
ldreq r1, [r5, #0x50]
cmpeq r2, r1
addne sp, sp, #0x3c
ldmneia sp!, {r3, r4, r5, r6, pc}
ldr r2, [r5, #0x168]
ldr r1, _021960a8 ; =0x00001333
cmp r2, r1
ble _02195e40
mov r1, #4
mov r2, #0
bl func_ov50_021960c8
add sp, sp, #0x3c
ldmia sp!, {r3, r4, r5, r6, pc}
_02195e40:
mov r1, #0
mov r2, r1
bl func_ov50_021960c8
add sp, sp, #0x3c
ldmia sp!, {r3, r4, r5, r6, pc}
_02195e54:
ldr r0, _021960ac ; =data_027e0f74
ldr r1, [r5, #0x178]
ldr r0, [r0]
bl func_ov00_02097b9c
cmp r0, #0
beq _02195eb0
ldr r0, [r5, #0x48]
mov r2, #0
str r0, [sp, #0xc]
ldr r0, [r5, #0x4c]
mov r1, #1
str r0, [sp, #0x10]
ldr r3, [r5, #0x50]
ldr r0, _021960b0 ; =data_027e0f64
str r3, [sp, #0x14]
str r2, [sp]
stmib sp, {r1, r2}
ldr r0, [r0]
add r2, sp, #0xc
ldr r0, [r0, #4]
mov r1, #3
mov r3, #0x1e
bl func_ov00_020884b4
_02195eb0:
cmp r4, #0
beq _02195f70
ldr r3, [r5, #0x68]
ldr r2, [r5, #0x60]
mov r1, #0
add r0, sp, #0x24
str r2, [sp, #0x24]
str r1, [sp, #0x28]
str r3, [sp, #0x2c]
bl func_01ff9cec
movs r4, r0
addeq sp, sp, #0x3c
ldmeqia sp!, {r3, r4, r5, r6, pc}
ldrb r0, [r5, #0x110]
cmp r0, #0
beq _02195f34
ldr r0, [sp, #0x24]
ldr r1, [sp, #0x2c]
bl func_01ffa0f4
mov r6, r0, lsl #0x10
ldr r0, [r5, #0xc4]
ldr r1, [r5, #0xcc]
bl func_01ffa0f4
mov r0, r0, lsl #0x10
mov r0, r0, asr #0x10
sub r0, r0, r6, asr #16
mov r0, r0, lsl #0x10
mov r0, r0, asr #0x10
movs r0, r0, asr #0x3
rsbmi r0, r0, #0
cmp r0, #0xc00
addlt sp, sp, #0x3c
ldmltia sp!, {r3, r4, r5, r6, pc}
_02195f34:
ldr r0, _021960b4 ; =0x00000266
cmp r4, r0
blt _02195f58
mov r0, r5
mov r1, #4
mov r2, #0
bl func_ov50_021960c8
add sp, sp, #0x3c
ldmia sp!, {r3, r4, r5, r6, pc}
_02195f58:
mov r1, #0
mov r0, r5
mov r2, r1
bl func_ov50_021960c8
add sp, sp, #0x3c
ldmia sp!, {r3, r4, r5, r6, pc}
_02195f70:
add r0, r5, #0x16c
bl func_0202bfc0
cmp r0, #0
addle sp, sp, #0x3c
ldmleia sp!, {r3, r4, r5, r6, pc}
ldr r0, [r5, #0x15c]
mov r1, #0
cmp r0, #3
addls pc, pc, r0, lsl #2
b _02195fe4
_02195f98: ; jump table
b _02195fa8 ; case 0
b _02195fb8 ; case 1
b _02195fc8 ; case 2
b _02195fd8 ; case 3
_02195fa8:
ldr r0, [r5, #0x16c]
cmp r0, #0
movlt r1, #1
b _02195fe4
_02195fb8:
ldr r0, [r5, #0x16c]
cmp r0, #0
movgt r1, #1
b _02195fe4
_02195fc8:
ldr r0, [r5, #0x174]
cmp r0, #0
movlt r1, #1
b _02195fe4
_02195fd8:
ldr r0, [r5, #0x174]
cmp r0, #0
movgt r1, #1
_02195fe4:
cmp r1, #0
addeq sp, sp, #0x3c
ldmeqia sp!, {r3, r4, r5, r6, pc}
mov r0, r5
mov r1, #4
mov r2, #0
bl func_ov50_021960c8
add sp, sp, #0x3c
ldmia sp!, {r3, r4, r5, r6, pc}
_02196008:
ldr r1, [r5, #0x138]
cmp r1, #0x96
addlt sp, sp, #0x3c
ldmltia sp!, {r3, r4, r5, r6, pc}
bl func_ov50_02196ee4
cmp r0, #0
addne sp, sp, #0x3c
ldmneia sp!, {r3, r4, r5, r6, pc}
mov r1, #1
mov r0, r5
strb r1, [r5, #0x11a]
bl func_ov50_02196600
ldr r1, [r5, #0x4c]
ldr r2, [r5, #0x50]
ldr r0, [r5, #0x48]
add r1, r1, #0xc00
str r0, [sp, #0x18]
str r1, [sp, #0x1c]
str r2, [sp, #0x20]
mov r1, #0
str r1, [sp]
str r1, [sp, #4]
ldr r0, _021960b8 ; =data_027e0e58
ldr r1, _021960bc ; =0x000001a1
ldr r0, [r0]
add r2, sp, #0x18
mov r3, #2
bl func_ov00_0207c1b0
ldr r0, _021960c0 ; =data_027e0ffc
ldr r1, _021960c4 ; =0x00000399
add r2, r5, #0x48
mov r3, #0
bl func_ov00_020ceacc
mov r1, #0
mov r0, r5
mov r2, r1
bl func_ov50_021960c8
_0219609c:
add sp, sp, #0x3c
ldmia sp!, {r3, r4, r5, r6, pc}
.align 2, 0
arm_func_end func_ov50_02195ce8
_021960a4: .word data_027e0fc8
_021960a8: .word 0x00001333
_021960ac: .word data_027e0f74
_021960b0: .word data_027e0f64
_021960b4: .word 0x00000266
_021960b8: .word data_027e0e58
_021960bc: .word 0x000001a1
_021960c0: .word data_027e0ffc
_021960c4: .word 0x00000399
.global func_ov50_021960c8
arm_func_start func_ov50_021960c8
func_ov50_021960c8: ; 0x021960c8
stmdb sp!, {r3, r4, r5, r6, r7, r8, lr}
sub sp, sp, #0xbc
mov r5, r0
mov r0, #0
mov r8, r1
cmp r8, #3
str r0, [r5, #0x138]
addne r7, r5, #0x1e4
addne r6, r5, #0x1ec
mov r4, r2
str r8, [r5, #0x130]
cmpne r7, r6
beq _02196110
_021960fc:
mov r0, r7
bl func_ov00_020b7e6c
add r7, r7, #4
cmp r7, r6
bne _021960fc
_02196110:
cmp r8, #8
addls pc, pc, r8, lsl #2
b _021963d4
_0219611c: ; jump table
b _02196140 ; case 0
b _02196168 ; case 1
b _02196184 ; case 2
b _021961e4 ; case 3
b _02196268 ; case 4
b _02196288 ; case 5
b _021962a8 ; case 6
b _021962c8 ; case 7
b _021963ac ; case 8
_02196140:
mov r0, #0
str r0, [r5, #0x60]
str r0, [r5, #0x64]
str r0, [r5, #0x68]
ldr r0, [r5, #0x48]
add sp, sp, #0xbc
str r0, [r5, #0x160]
ldr r0, [r5, #0x50]
str r0, [r5, #0x164]
ldmia sp!, {r3, r4, r5, r6, r7, r8, pc}
_02196168:
ldr r0, _021963dc ; =data_027e0ffc
ldr r1, _021963e0 ; =0x00000396
add r2, r5, #0x48
mov r3, #0
bl func_ov00_020ceacc
add sp, sp, #0xbc
ldmia sp!, {r3, r4, r5, r6, r7, r8, pc}
_02196184:
ldr r1, [r5, #0x48]
ldr r0, _021963e4 ; =data_027e0e60
str r1, [sp]
ldr r1, [r5, #0x4c]
ldr r0, [r0]
str r1, [sp, #4]
ldr r2, [r5, #0x50]
add r1, sp, #0
str r2, [sp, #8]
mov r2, #0
bl func_ov00_02083ee0
ldr r1, [r5, #0x4c]
sub r1, r1, r0
mov r0, r5
str r1, [r5, #0x168]
bl func_ov00_020c2864
cmp r0, #0
addeq sp, sp, #0xbc
ldmeqia sp!, {r3, r4, r5, r6, r7, r8, pc}
ldr r0, _021963e8 ; =data_027e0fc8
ldr r0, [r0]
bl func_ov00_020bba48
add sp, sp, #0xbc
ldmia sp!, {r3, r4, r5, r6, r7, r8, pc}
_021961e4:
mov r0, r5
bl func_ov00_020c2864
cmp r0, #0
beq _02196200
ldr r0, _021963e8 ; =data_027e0fc8
ldr r0, [r0]
bl func_ov00_020bba48
_02196200:
add r0, sp, #0xc
bl func_ov00_0209a4f4
mov r2, #6
mvn r4, #0
mov r3, #0x1e
mov r1, #0
ldr r0, _021963ec ; =data_027e0f74
str r4, [sp, #0x10]
strb r3, [sp, #0x15]
strb r2, [sp, #0x16]
strb r2, [sp, #0x17]
strb r1, [sp, #0x22]
ldr r1, [r5, #0x48]
ldr r0, [r0]
str r1, [sp, #0x2c]
ldr r2, [r5, #0x4c]
add r1, sp, #0xc
str r2, [sp, #0x30]
ldr r2, [r5, #0x50]
str r2, [sp, #0x34]
bl func_ov00_02097810
str r0, [r5, #0x178]
add r0, sp, #0xc
bl func_ov00_0209a508
add sp, sp, #0xbc
ldmia sp!, {r3, r4, r5, r6, r7, r8, pc}
_02196268:
mov r0, r5
bl func_ov50_02196840
mov r0, r5
mov r1, #7
mov r2, #0
bl func_ov50_021960c8
add sp, sp, #0xbc
ldmia sp!, {r3, r4, r5, r6, r7, r8, pc}
_02196288:
mov r0, r5
bl func_ov50_021969b0
mov r0, r5
mov r1, #7
mov r2, #0
bl func_ov50_021960c8
add sp, sp, #0xbc
ldmia sp!, {r3, r4, r5, r6, r7, r8, pc}
_021962a8:
mov r0, r5
bl func_ov50_021969b4
mov r0, r5
mov r1, #7
mov r2, #0
bl func_ov50_021960c8
add sp, sp, #0xbc
ldmia sp!, {r3, r4, r5, r6, r7, r8, pc}
_021962c8:
mov r0, r5
bl func_ov00_020c2864
cmp r0, #0
beq _021962e4
ldr r0, _021963e8 ; =data_027e0fc8
ldr r0, [r0]
bl func_ov00_020bba48
_021962e4:
mov r2, #0
str r2, [r5, #0x60]
str r2, [r5, #0x64]
str r2, [r5, #0x68]
ldr r1, [r5, #0x14]
mov r0, r5
str r1, [r5, #0x48]
ldr r1, [r5, #0x18]
str r1, [r5, #0x4c]
ldr r1, [r5, #0x1c]
str r1, [r5, #0x50]
ldr r1, [r5, #0x14]
str r1, [r5, #0x54]
ldr r1, [r5, #0x18]
str r1, [r5, #0x58]
ldr r1, [r5, #0x1c]
str r1, [r5, #0x5c]
strb r2, [r5, #0x11a]
bl func_ov50_021965c8
cmp r4, #0
bne _02196358
ldr r1, [r5, #0x178]
cmp r1, #0
blt _02196358
ldr r0, _021963ec ; =data_027e0f74
ldr r0, [r0]
bl func_ov00_02097bcc
mvn r0, #0
str r0, [r5, #0x178]
_02196358:
ldrh r0, [r5, #0x20]
add r0, r0, #0xff
add r0, r0, #0xff00
mov r0, r0, lsl #0x10
mov r0, r0, lsr #0x10
cmp r0, #1
addhi sp, sp, #0xbc
ldmhiia sp!, {r3, r4, r5, r6, r7, r8, pc}
mov r0, r5
mov r1, #0
mov r2, #1
bl func_ov00_020c1c20
ldrh r0, [r5, #0x20]
cmp r0, #1
bne _0219639c
mov r0, r5
bl func_ov00_020c3158
_0219639c:
mov r0, r5
bl func_ov00_020c3180
add sp, sp, #0xbc
ldmia sp!, {r3, r4, r5, r6, r7, r8, pc}
_021963ac:
mov r1, #0
mov r0, r5
str r1, [r5, #0x168]
bl func_ov00_020c2864
cmp r0, #0
addeq sp, sp, #0xbc
ldmeqia sp!, {r3, r4, r5, r6, r7, r8, pc}
ldr r0, _021963e8 ; =data_027e0fc8
ldr r0, [r0]
bl func_ov00_020bba48
_021963d4:
add sp, sp, #0xbc
ldmia sp!, {r3, r4, r5, r6, r7, r8, pc}
.align 2, 0
arm_func_end func_ov50_021960c8
_021963dc: .word data_027e0ffc
_021963e0: .word 0x00000396
_021963e4: .word data_027e0e60
_021963e8: .word data_027e0fc8
_021963ec: .word data_027e0f74
.global func_ov50_021963f0
arm_func_start func_ov50_021963f0
func_ov50_021963f0: ; 0x021963f0
stmdb sp!, {lr}
sub sp, sp, #0x24
mov ip, r0
ldr r0, [ip, #0x130]
cmp r0, #7
addeq sp, sp, #0x24
ldmeqia sp!, {pc}
cmp r1, #0
ldrneb r0, [ip, #0xa5]
ldreqb r0, [ip, #0xa4]
cmp r0, #0
addeq sp, sp, #0x24
ldmeqia sp!, {pc}
ldr r1, [ip, #0x4c]
ldr r2, [ip, #0x50]
ldr r0, [ip, #0x48]
add r1, r1, #0xc00
str r0, [sp, #0x18]
str r1, [sp, #0x1c]
str r2, [sp, #0x20]
add r0, ip, #0x1d8
ldr r3, [r0]
add r2, sp, #0x18
ldr r3, [r3, #0x14]
add r1, ip, #0x1b4
blx r3
mov r3, #0x800
str r3, [sp]
mov r1, #0
str r1, [sp, #4]
mov r0, #0x1f
str r0, [sp, #8]
str r1, [sp, #0xc]
ldr r0, _02196494 ; =data_ov00_020e9370
add r2, sp, #0x18
str r1, [sp, #0x10]
mov ip, #1
str ip, [sp, #0x14]
bl func_ov05_02102c2c
add sp, sp, #0x24
ldmia sp!, {pc}
.align 2, 0
arm_func_end func_ov50_021963f0
_02196494: .word data_ov00_020e9370
.global func_ov50_02196498
arm_func_start func_ov50_02196498
func_ov50_02196498: ; 0x02196498
stmdb sp!, {r3, r4, r5, lr}
ldr r2, _021964cc ; =data_027e0fac
mov r5, r0
ldrsh r0, [r2]
mov r4, r1
bl func_0202bbbc
cmp r4, r0
movne r0, #0
ldmneia sp!, {r3, r4, r5, pc}
mov r0, r5
mov r1, r4
bl func_ov14_02148334
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov50_02196498
_021964cc: .word data_027e0fac
.global func_ov50_021964d0
arm_func_start func_ov50_021964d0
func_ov50_021964d0: ; 0x021964d0
stmdb sp!, {r3, lr}
ldr r1, [r1, #0x14]
cmp r1, #0
beq _021964fc
ldr r2, [r1, #4]
ldr r1, _02196504 ; =0x42494752
cmp r2, r1
bne _021964fc
mov r1, #4
mov r2, #0
bl func_ov50_021960c8
_021964fc:
mov r0, #1
ldmia sp!, {r3, pc}
.align 2, 0
arm_func_end func_ov50_021964d0
_02196504: .word 0x42494752
.global func_ov50_02196508
arm_func_start func_ov50_02196508
func_ov50_02196508: ; 0x02196508
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #0x18
mov r4, r0
ldr r2, [r4, #0x130]
mov r6, r1
cmp r2, #0
addne sp, sp, #0x18
ldmneia sp!, {r4, r5, r6, pc}
mov r1, #8
mov r2, #0
bl func_ov50_021960c8
ldr r0, [r6]
add r5, sp, #0xc
str r0, [r4, #0x160]
ldr r0, [r6, #8]
str r0, [r4, #0x164]
ldmia r6, {r0, r1, r2}
stmia r5, {r0, r1, r2}
ldr lr, [r4, #0x50]
ldr ip, [r6, #4]
ldr r3, [r4, #0x48]
add r1, sp, #0
mov r0, r5
mov r2, r5
str r3, [sp]
str ip, [sp, #4]
str lr, [sp, #8]
bl func_01ff9bf8
mov r0, r5
mov r1, r0
bl func_01ff9d4c
ldr r1, _021965b0 ; =0x0000030a
mov r0, r5
bl func_01fffbec
ldr r2, [sp, #0x14]
ldr r1, [sp, #0xc]
mov r0, #0xc00
str r1, [r4, #0x60]
str r0, [r4, #0x64]
str r2, [r4, #0x68]
add sp, sp, #0x18
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
arm_func_end func_ov50_02196508
_021965b0: .word 0x0000030a
.global func_ov50_021965b4
arm_func_start func_ov50_021965b4
func_ov50_021965b4: ; 0x021965b4
ldr r0, [r0, #0x130]
cmp r0, #7
moveq r0, #1
movne r0, #0
bx lr
arm_func_end func_ov50_021965b4
.global func_ov50_021965c8
arm_func_start func_ov50_021965c8
func_ov50_021965c8: ; 0x021965c8
stmdb sp!, {r3, lr}
mov r2, r0
mov r1, #0
str r1, [r2, #0x12c]
ldrb r0, [r2, #0x180]
cmp r0, #0
ldmeqia sp!, {r3, pc}
ldr r0, _021965fc ; =data_027e0f6c
strb r1, [r2, #0x180]
ldr r0, [r0]
add r1, r2, #0x184
bl func_ov00_02093af0
ldmia sp!, {r3, pc}
.align 2, 0
arm_func_end func_ov50_021965c8
_021965fc: .word data_027e0f6c
.global func_ov50_02196600
arm_func_start func_ov50_02196600
func_ov50_02196600: ; 0x02196600
stmdb sp!, {r4, lr}
mov r4, r0
mov r2, #0
ldr r1, _02196674 ; =0x00000b85
str r2, [r4, #0x7c]
str r1, [r4, #0x80]
str r2, [r4, #0x84]
str r1, [r4, #0x88]
ldr r1, _02196678 ; =0x000007d7
str r2, [r4, #0x8c]
str r1, [r4, #0x90]
str r2, [r4, #0x94]
str r1, [r4, #0x98]
ldrh r2, [r4, #0x9c]
mov r1, #3
bic r2, r2, #0x30
strh r2, [r4, #0x9c]
str r1, [r4, #0x12c]
ldrb r1, [r4, #0x180]
cmp r1, #0
ldmneia sp!, {r4, pc}
mov r1, #1
strb r1, [r4, #0x180]
bl func_ov50_02196698
ldr r0, _0219667c ; =data_027e0f6c
add r1, r4, #0x184
ldr r0, [r0]
bl func_ov00_02093a5c
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov50_02196600
_02196674: .word 0x00000b85
_02196678: .word 0x000007d7
_0219667c: .word data_027e0f6c
.global func_ov50_02196680
arm_func_start func_ov50_02196680
func_ov50_02196680: ; 0x02196680
stmdb sp!, {r3, lr}
ldrb r1, [r0, #0x180]
cmp r1, #0
ldmeqia sp!, {r3, pc}
bl func_ov50_02196698
ldmia sp!, {r3, pc}
arm_func_end func_ov50_02196680
.global func_ov50_02196698
arm_func_start func_ov50_02196698
func_ov50_02196698: ; 0x02196698
stmdb sp!, {r3, r4, lr}
sub sp, sp, #0x54
mov r4, r0
ldr r1, [r4, #0x48]
add r0, sp, #0x48
str r1, [sp, #0x48]
ldr r2, [r4, #0x4c]
add r1, sp, #0x18
str r2, [sp, #0x4c]
ldr r3, [r4, #0x50]
mov r2, r0
str r3, [sp, #0x50]
ldr r3, [r4, #0x48]
mov ip, #0x800
str r3, [sp, #0x3c]
ldr lr, [r4, #0x4c]
mov r3, #0
str lr, [sp, #0x40]
ldr lr, [r4, #0x50]
str lr, [sp, #0x44]
str ip, [sp, #0x18]
str r3, [sp, #0x1c]
str ip, [sp, #0x20]
bl func_01ff9bf8
mov ip, #0x800
add r0, sp, #0x3c
mov r3, #0x1000
add r1, sp, #0xc
mov r2, r0
str ip, [sp, #0xc]
str r3, [sp, #0x10]
str ip, [sp, #0x14]
bl func_01ff9bc4
ldr r1, _0219683c ; =data_027e0e60
add r0, sp, #8
ldr r1, [r1]
add r2, r4, #0x48
bl func_ov00_02083a1c
ldrb r1, [sp, #8]
ldr r0, _0219683c ; =data_027e0e60
ldrb r2, [sp, #9]
sub r3, r1, #1
ldr r0, [r0]
add r1, sp, #6
strb r3, [sp, #6]
strb r2, [sp, #7]
bl func_ov00_020840dc
cmp r0, #0x46
ldreq r0, [sp, #0x48]
ldrb r1, [sp, #8]
subeq r0, r0, #0x800
streq r0, [sp, #0x48]
add r3, r1, #1
ldr r0, _0219683c ; =data_027e0e60
ldrb r2, [sp, #9]
ldr r0, [r0]
add r1, sp, #4
strb r3, [sp, #4]
strb r2, [sp, #5]
bl func_ov00_020840dc
cmp r0, #0x46
ldreq r0, [sp, #0x3c]
ldrb r1, [sp, #9]
addeq r0, r0, #0x800
streq r0, [sp, #0x3c]
sub r2, r1, #1
ldr r0, _0219683c ; =data_027e0e60
ldrb r3, [sp, #8]
ldr r0, [r0]
add r1, sp, #2
strb r3, [sp, #2]
strb r2, [sp, #3]
bl func_ov00_020840dc
cmp r0, #0x46
ldreq r0, [sp, #0x50]
ldrb r1, [sp, #9]
subeq r0, r0, #0x800
streq r0, [sp, #0x50]
add r2, r1, #1
ldr r0, _0219683c ; =data_027e0e60
ldrb r3, [sp, #8]
ldr r0, [r0]
add r1, sp, #0
strb r3, [sp]
strb r2, [sp, #1]
bl func_ov00_020840dc
cmp r0, #0x46
ldreq r0, [sp, #0x44]
addeq r0, r0, #0x800
streq r0, [sp, #0x44]
add r0, sp, #0x48
add ip, sp, #0x24
ldmia r0, {r0, r1, r2}
stmia ip, {r0, r1, r2}
add r0, sp, #0x3c
add r3, sp, #0x30
ldmia r0, {r0, r1, r2}
stmia r3, {r0, r1, r2}
add r0, r4, #0x184
ldr r2, [r0]
mov r1, ip
ldr r2, [r2, #0x20]
blx r2
add sp, sp, #0x54
ldmia sp!, {r3, r4, pc}
.align 2, 0
arm_func_end func_ov50_02196698
_0219683c: .word data_027e0e60
.global func_ov50_02196840
arm_func_start func_ov50_02196840
func_ov50_02196840: ; 0x02196840
stmdb sp!, {r4, lr}
sub sp, sp, #0x18
mov r4, r0
ldr r0, _02196998 ; =data_027e0ffc
ldr r1, _0219699c ; =0x00000395
add r2, r4, #0x48
mov r3, #0
bl func_ov00_020ceacc
ldr r1, [r4, #0x4c]
ldr r2, [r4, #0x50]
ldr r0, [r4, #0x48]
add r1, r1, #0xc00
str r0, [sp, #0xc]
str r1, [sp, #0x10]
str r2, [sp, #0x14]
mov r1, #0
str r1, [sp]
str r1, [sp, #4]
ldr r0, _021969a0 ; =data_027e0e58
add r2, sp, #0xc
ldr r0, [r0]
mov r1, #0x23
mov r3, #2
bl func_ov00_0207c1b0
mov r1, #0
str r1, [sp]
str r1, [sp, #4]
ldr r0, _021969a0 ; =data_027e0e58
add r2, sp, #0xc
ldr r0, [r0]
mov r1, #0x24
mov r3, #2
bl func_ov00_0207c1b0
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
ldr r0, _021969a0 ; =data_027e0e58
mov r1, #0x25
ldr r0, [r0]
add r2, sp, #0xc
mov r3, #2
bl func_ov00_0207c1b0
ldrb r0, [r4, #0x111]
cmp r0, #0
bne _02196920
mov r1, #0
str r1, [sp]
str r1, [sp, #4]
ldr r0, _021969a0 ; =data_027e0e58
ldr r1, _021969a4 ; =0x000001a1
ldr r0, [r0]
add r2, sp, #0xc
mov r3, #2
bl func_ov00_0207c1b0
add sp, sp, #0x18
ldmia sp!, {r4, pc}
_02196920:
ldr r0, _021969a8 ; =data_027e0f6c
ldrh r2, [r4, #0xdc]
ldr r1, [r0]
add r0, sp, #8
bl func_ov00_02093a1c
ldr r0, [sp, #8]
mov r1, #0
and r0, r0, #0x1f
cmp r0, #5
cmpne r0, #0xa
add r2, sp, #0xc
bne _02196974
str r1, [sp]
str r1, [sp, #4]
ldr r0, _021969a0 ; =data_027e0e58
ldr r1, _021969ac ; =0x000001a2
ldr r0, [r0]
mov r3, #2
bl func_ov00_0207c1b0
add sp, sp, #0x18
ldmia sp!, {r4, pc}
_02196974:
str r1, [sp]
str r1, [sp, #4]
ldr r0, _021969a0 ; =data_027e0e58
ldr r1, _021969a4 ; =0x000001a1
ldr r0, [r0]
mov r3, #2
bl func_ov00_0207c1b0
add sp, sp, #0x18
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov50_02196840
_02196998: .word data_027e0ffc
_0219699c: .word 0x00000395
_021969a0: .word data_027e0e58
_021969a4: .word 0x000001a1
_021969a8: .word data_027e0f6c
_021969ac: .word 0x000001a2
.global func_ov50_021969b0
arm_func_start func_ov50_021969b0
func_ov50_021969b0: ; 0x021969b0
bx lr
arm_func_end func_ov50_021969b0
.global func_ov50_021969b4
arm_func_start func_ov50_021969b4
func_ov50_021969b4: ; 0x021969b4
stmdb sp!, {r4, lr}
mov r4, r0
mov r0, #1
mov r2, r0
mov r3, r0
add r1, r4, #0x48
bl func_ov00_020c7764
ldr r0, _021969e8 ; =data_027e0ffc
add r2, r4, #0x48
mov r1, #0x1ac
mov r3, #0
bl func_ov00_020ceacc
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov50_021969b4
_021969e8: .word data_027e0ffc
.global func_ov50_021969ec
arm_func_start func_ov50_021969ec
func_ov50_021969ec: ; 0x021969ec
stmdb sp!, {r4, lr}
sub sp, sp, #0x18
mov r4, r0
ldr r0, [r4, #0x130]
cmp r0, #8
addls pc, pc, r0, lsl #2
b _02196bec
_02196a08: ; jump table
b _02196bec ; case 0
b _02196a2c ; case 1
b _02196a2c ; case 2
b _02196b38 ; case 3
b _02196bec ; case 4
b _02196bec ; case 5
b _02196bec ; case 6
b _02196bec ; case 7
b _02196ab4 ; case 8
_02196a2c:
mov r0, #0
str r0, [r4, #0x60]
str r0, [r4, #0x68]
ldr r1, [r4, #0x160]
ldr r0, [r4, #0x48]
cmp r1, r0
ldreq r1, [r4, #0x164]
ldreq r0, [r4, #0x50]
cmpeq r1, r0
beq _02196bec
add r0, r4, #0x48
add r3, sp, #0xc
ldmia r0, {r0, r1, r2}
stmia r3, {r0, r1, r2}
ldr r1, [r4, #0x160]
ldr r0, [r4, #0x48]
ldr r2, _02196bfc ; =0x00000111
cmp r1, r0
beq _02196a94
mov r0, r3
bl func_0202b0f4
ldr r1, [sp, #0xc]
ldr r0, [r4, #0x48]
sub r0, r1, r0
str r0, [r4, #0x60]
b _02196bec
_02196a94:
ldr r1, [r4, #0x164]
add r0, sp, #0x14
bl func_0202b0f4
ldr r1, [sp, #0x14]
ldr r0, [r4, #0x50]
sub r0, r1, r0
str r0, [r4, #0x68]
b _02196bec
_02196ab4:
add r0, r4, #0x48
add r3, sp, #0
ldmia r0, {r0, r1, r2}
stmia r3, {r0, r1, r2}
ldr r1, [r4, #0x160]
ldr r2, [r4, #0x60]
mov r0, r3
bl func_0202b0f4
cmp r0, #0
ldrne r1, [r4, #0x160]
movne r0, #0
strne r1, [r4, #0x48]
bne _02196af4
ldr r1, [sp]
ldr r0, [r4, #0x48]
sub r0, r1, r0
_02196af4:
str r0, [r4, #0x60]
ldr r1, [r4, #0x164]
ldr r2, [r4, #0x68]
add r0, sp, #8
bl func_0202b0f4
cmp r0, #0
bne _02196b24
ldr r1, [sp, #8]
ldr r0, [r4, #0x50]
sub r0, r1, r0
str r0, [r4, #0x68]
b _02196bec
_02196b24:
ldr r1, [r4, #0x164]
mov r0, #0
str r1, [r4, #0x50]
str r0, [r4, #0x68]
b _02196bec
_02196b38:
add r0, r4, #0x16c
bl func_0202bfc0
mov r0, r0, lsl #0x10
mov r0, r0, lsr #0x10
mov r0, r0, asr #0x4
mov r1, r0, lsl #0x1
add r0, r1, #1
ldr r2, _02196c00 ; =data_02050f54
mov r1, r1, lsl #0x1
mov r0, r0, lsl #0x1
ldrsh r1, [r2, r1]
ldrsh r0, [r2, r0]
ldr r3, [r4, #0x6c]
smull r2, r0, r1, r0
adds r1, r2, #0x800
adc r0, r0, #0
mov r1, r1, lsr #0xc
orr r1, r1, r0, lsl #20
smull r1, r0, r3, r1
adds r1, r1, #0x800
adc r0, r0, #0
mov r1, r1, lsr #0xc
orrs r1, r1, r0, lsl #20
beq _02196bec
ldr r0, [r4, #0x15c]
cmp r0, #3
addls pc, pc, r0, lsl #2
b _02196bec
_02196ba8: ; jump table
b _02196bb8 ; case 0
b _02196bb8 ; case 1
b _02196bd4 ; case 2
b _02196bd4 ; case 3
_02196bb8:
ldr r0, [r4, #0x60]
cmp r0, #0
addge r0, r0, r1
strge r0, [r4, #0x60]
sublt r0, r0, r1
strlt r0, [r4, #0x60]
b _02196bec
_02196bd4:
ldr r0, [r4, #0x68]
cmp r0, #0
addge r0, r0, r1
strge r0, [r4, #0x68]
sublt r0, r0, r1
strlt r0, [r4, #0x68]
_02196bec:
mov r0, r4
bl func_ov00_020c3070
add sp, sp, #0x18
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov50_021969ec
_02196bfc: .word 0x00000111
_02196c00: .word data_02050f54
.global func_ov50_02196c04
arm_func_start func_ov50_02196c04
func_ov50_02196c04: ; 0x02196c04
stmdb sp!, {r3, r4, lr}
sub sp, sp, #0x24
mov r4, r0
ldr r0, [r4, #0x15c]
cmp r0, #3
addls pc, pc, r0, lsl #2
b _02196d08
_02196c20: ; jump table
b _02196c30 ; case 0
b _02196c30 ; case 1
b _02196ca0 ; case 2
b _02196ca0 ; case 3
_02196c30:
ldr r0, _02196d20 ; =data_ov50_021989c0
ldr r2, [r4, #0x48]
ldr r1, [r4, #0x54]
ldrh r3, [r0, #4]
sub r1, r2, r1
mov r0, r1, asr #0x1f
umull ip, r2, r3, r1
mla r2, r3, r0, r2
mov r0, #0
mla r2, r0, r1, r2
adds r3, ip, #0x800
adc r0, r2, #0
mov r1, r3, lsr #0xc
orr r1, r1, r0, lsl #20
rsb r0, r1, #0
mov r0, r0, lsl #0x10
mov r0, r0, lsr #0x10
mov r0, r0, asr #0x4
mov r1, r0, lsl #0x1
add r0, r1, #1
ldr r2, _02196d24 ; =data_02050f54
mov r1, r1, lsl #0x1
mov r0, r0, lsl #0x1
ldrsh r1, [r2, r1]
ldrsh r2, [r2, r0]
add r0, sp, #0
blx func_01ff8230
b _02196d08
_02196ca0:
ldr r0, _02196d20 ; =data_ov50_021989c0
ldr r2, [r4, #0x50]
ldr r1, [r4, #0x5c]
ldrh r3, [r0, #4]
sub r1, r2, r1
mov r0, r1, asr #0x1f
umull ip, r2, r3, r1
mla r2, r3, r0, r2
mov r0, #0
mla r2, r0, r1, r2
adds r3, ip, #0x800
adc r0, r2, #0
mov r1, r3, lsr #0xc
orr r1, r1, r0, lsl #20
mov r0, r1, lsl #0x10
mov r0, r0, lsr #0x10
mov r0, r0, asr #0x4
mov r1, r0, lsl #0x1
add r0, r1, #1
ldr r2, _02196d24 ; =data_02050f54
mov r1, r1, lsl #0x1
mov r0, r0, lsl #0x1
ldrsh r1, [r2, r1]
ldrsh r2, [r2, r0]
add r0, sp, #0
blx func_01ff81f8
_02196d08:
add r0, r4, #0x1b4
add r1, sp, #0
mov r2, r0
bl func_01ff8690
add sp, sp, #0x24
ldmia sp!, {r3, r4, pc}
.align 2, 0
arm_func_end func_ov50_02196c04
_02196d20: .word data_ov50_021989c0
_02196d24: .word data_02050f54
.global func_ov50_02196d28
arm_func_start func_ov50_02196d28
func_ov50_02196d28: ; 0x02196d28
stmdb sp!, {r4, r5, r6, lr}
ldr r2, _02196d8c ; =data_027e0fac
mov r6, r0
ldrsh r0, [r2]
mov r5, r1
bl func_0202bbbc
ldr r1, _02196d90 ; =data_027e0fc8
mov r4, r0
ldr r0, [r1]
bl func_ov00_020bba14
cmp r0, #0
beq _02196d64
mov r0, r4
bl func_0202bb78
mov r4, r0
_02196d64:
mov r0, r6
mov r1, r4
mov r2, r5
str r4, [r6, #0x15c]
bl func_ov14_021482c0
ldr r0, [r5]
str r0, [r6, #0x160]
ldr r0, [r5, #8]
str r0, [r6, #0x164]
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
arm_func_end func_ov50_02196d28
_02196d8c: .word data_027e0fac
_02196d90: .word data_027e0fc8
.global func_ov50_02196d94
arm_func_start func_ov50_02196d94
func_ov50_02196d94: ; 0x02196d94
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x8c
mov r5, #0xff
sub r4, r5, #0x100
add r3, sp, #0x34
mov fp, r0
mov r7, #0
mov r6, #0xb
mov r2, #8
add r1, sp, #0x18
strb r5, [sp, #0x74]
str r6, [sp, #0x84]
str fp, [sp, #0x88]
str r4, [sp, #0x34]
str r4, [sp, #0x38]
str r4, [sp, #0x3c]
str r4, [sp, #0x40]
str r4, [sp, #0x44]
str r4, [sp, #0x48]
str r4, [sp, #0x4c]
str r4, [sp, #0x50]
str r4, [sp, #0x54]
str r4, [sp, #0x58]
str r4, [sp, #0x5c]
str r4, [sp, #0x60]
str r4, [sp, #0x64]
str r4, [sp, #0x68]
str r4, [sp, #0x6c]
str r4, [sp, #0x70]
str r3, [sp, #0x28]
str r2, [sp, #0x2c]
str r7, [sp, #0x30]
bl func_ov00_020c2a0c
ldr r1, _02196ed4 ; =data_ov50_021989f0
add r0, sp, #0x18
str r1, [sp]
add r4, sp, #4
ldmia r0, {r0, r1, r2}
stmia r4, {r0, r1, r2}
ldr r0, _02196ed8 ; =data_027e0fe4
ldr r3, [sp, #0x24]
ldr r0, [r0]
add r1, sp, #0
add r2, sp, #0x28
str r3, [r4, #0xc]
str fp, [sp, #0x14]
bl func_ov00_020c37ec
mov r8, r0
cmp r8, #0
mov sb, r7
addle sp, sp, #0x8c
ldmleia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
ldr r4, _02196edc ; =0x42494752
ldr r5, _02196ed8 ; =data_027e0fe4
add sl, sp, #0x34
add r6, sp, #0x74
_02196e74:
ldr r0, [r5]
mov r1, sl
bl func_ov00_020c3674
movs r7, r0
beq _02196ebc
ldr r2, [r0]
mov r1, r6
ldr r2, [r2, #0x48]
blx r2
ldr r0, [r7, #4]
cmp r0, r4
bne _02196ebc
mov r0, fp
mov r1, #4
mov r2, #0
bl func_ov50_021960c8
add sp, sp, #0x8c
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
_02196ebc:
add sb, sb, #1
cmp sb, r8
add sl, sl, #8
blt _02196e74
add sp, sp, #0x8c
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
arm_func_end func_ov50_02196d94
_02196ed4: .word data_ov50_021989f0
_02196ed8: .word data_027e0fe4
_02196edc: .word 0x42494752
.global func_ov50_02196ee0
arm_func_start func_ov50_02196ee0
func_ov50_02196ee0: ; 0x02196ee0
bx lr
arm_func_end func_ov50_02196ee0
.global func_ov50_02196ee4
arm_func_start func_ov50_02196ee4
func_ov50_02196ee4: ; 0x02196ee4
stmdb sp!, {r4, lr}
sub sp, sp, #0x28
add r1, sp, #0x18
mov r4, r0
bl func_ov00_020c2a0c
ldr r0, _02196f70 ; =data_027e0f90
add r1, sp, #0x18
ldr r0, [r0]
bl func_ov00_020a7c1c
cmp r0, #0
addne sp, sp, #0x28
movne r0, #1
ldmneia sp!, {r4, pc}
ldr r1, _02196f74 ; =data_ov50_021989f0
add r0, sp, #0x18
str r1, [sp]
add ip, sp, #4
ldmia r0, {r0, r1, r2}
stmia ip, {r0, r1, r2}
ldr r0, _02196f78 ; =data_027e0fe4
ldr r3, [sp, #0x24]
ldr r0, [r0]
add r1, sp, #0
mov r2, #0
str r3, [ip, #0xc]
str r4, [sp, #0x14]
bl func_ov00_020c37ec
cmp r0, #0
movgt r0, #1
movle r0, #0
cmp r0, #0
movne r0, #1
moveq r0, #0
add sp, sp, #0x28
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov50_02196ee4
_02196f70: .word data_027e0f90
_02196f74: .word data_ov50_021989f0
_02196f78: .word data_027e0fe4
.global func_ov50_02196f7c
arm_func_start func_ov50_02196f7c
func_ov50_02196f7c: ; 0x02196f7c
stmdb sp!, {r3, r4, r5, r6, lr}
sub sp, sp, #0x14
mov r4, r0
ldr r2, [r4, #0x4c]
ldr r3, [r4, #0x50]
ldr r0, [r4, #0x48]
add r2, r2, #0xc00
str r0, [sp, #8]
str r2, [sp, #0xc]
mov r5, r1
str r3, [sp, #0x10]
mov r0, #0
str r0, [sp]
ldr r3, [r4, #8]
ldr r0, _02197190 ; =data_027e0ffc
ldr r1, _02197194 ; =0x00000393
add r2, r4, #0x48
bl func_ov00_020cec60
cmp r5, #5
cmpne r5, #0xa
ldr r0, [r4, #0x1e8]
bne _021970ac
cmp r0, #0
addne r6, r4, #0x1e4
addne r5, r4, #0x1ec
cmpne r6, r5
beq _02196ffc
_02196fe8:
mov r0, r6
bl func_ov00_020b7e6c
add r6, r6, #4
cmp r6, r5
bne _02196fe8
_02196ffc:
ldr r0, [r4, #0x1e4]
cmp r0, #0
bne _02197030
mov r1, #2
str r1, [sp]
ldr r0, _02197198 ; =data_027e0e58
ldr r2, _0219719c ; =0x0000016f
ldr r0, [r0]
add r3, sp, #8
add r1, r4, #0x1e4
bl func_ov00_0207c1f8
add sp, sp, #0x14
ldmia sp!, {r3, r4, r5, r6, pc}
_02197030:
add r2, r4, #0x1e4
add r1, r4, #0x1ec
cmp r2, r1
addeq sp, sp, #0x14
ldmeqia sp!, {r3, r4, r5, r6, pc}
_02197044:
ldr r0, [r2]
cmp r0, #0
beq _02197098
ldr r3, [r0, #0x20]
ldr r4, [sp, #8]
ldr r3, [r3]
ldr r3, [r3, #4]
add r3, r4, r3
str r3, [r0, #0x28]
ldr r3, [r0, #0x20]
ldr r4, [sp, #0xc]
ldr r3, [r3]
ldr r3, [r3, #8]
add r3, r4, r3
str r3, [r0, #0x2c]
ldr r3, [r0, #0x20]
ldr r4, [sp, #0x10]
ldr r3, [r3]
ldr r3, [r3, #0xc]
add r3, r4, r3
str r3, [r0, #0x30]
_02197098:
add r2, r2, #4
cmp r2, r1
bne _02197044
add sp, sp, #0x14
ldmia sp!, {r3, r4, r5, r6, pc}
_021970ac:
cmp r0, #0
bne _021970d8
add r6, r4, #0x1e4
add r5, r4, #0x1ec
cmp r6, r5
beq _021970d8
_021970c4:
mov r0, r6
bl func_ov00_020b7e6c
add r6, r6, #4
cmp r6, r5
bne _021970c4
_021970d8:
ldr r0, [r4, #0x1e4]
cmp r0, #0
bne _02197114
add r0, sp, #8
str r0, [sp]
mov r1, #2
ldr r2, _021971a0 ; =0x0000016d
str r1, [sp, #4]
ldr r0, _02197198 ; =data_027e0e58
add r1, r4, #0x1e4
ldr r0, [r0]
add r3, r2, #1
bl func_ov00_0207c2e8
add sp, sp, #0x14
ldmia sp!, {r3, r4, r5, r6, pc}
_02197114:
add r2, r4, #0x1e4
add r1, r4, #0x1ec
cmp r2, r1
addeq sp, sp, #0x14
ldmeqia sp!, {r3, r4, r5, r6, pc}
_02197128:
ldr r0, [r2]
cmp r0, #0
beq _0219717c
ldr r3, [r0, #0x20]
ldr r4, [sp, #8]
ldr r3, [r3]
ldr r3, [r3, #4]
add r3, r4, r3
str r3, [r0, #0x28]
ldr r3, [r0, #0x20]
ldr r4, [sp, #0xc]
ldr r3, [r3]
ldr r3, [r3, #8]
add r3, r4, r3
str r3, [r0, #0x2c]
ldr r3, [r0, #0x20]
ldr r4, [sp, #0x10]
ldr r3, [r3]
ldr r3, [r3, #0xc]
add r3, r4, r3
str r3, [r0, #0x30]
_0219717c:
add r2, r2, #4
cmp r2, r1
bne _02197128
add sp, sp, #0x14
ldmia sp!, {r3, r4, r5, r6, pc}
.align 2, 0
arm_func_end func_ov50_02196f7c
_02197190: .word data_027e0ffc
_02197194: .word 0x00000393
_02197198: .word data_027e0e58
_0219719c: .word 0x0000016f
_021971a0: .word 0x0000016d
.global func_ov50_021971a4
arm_func_start func_ov50_021971a4
func_ov50_021971a4: ; 0x021971a4
stmdb sp!, {r4, lr}
sub sp, sp, #0x10
mov r4, r0
ldr r0, [r4, #0x14]
cmp r1, r0
addeq sp, sp, #0x10
moveq r0, #0
ldmeqia sp!, {r4, pc}
ldrb r0, [r1, #0x11a]
cmp r0, #0
addeq sp, sp, #0x10
moveq r0, #0
ldmeqia sp!, {r4, pc}
mov r0, r1
add r1, sp, #0
bl func_ov00_020c2b00
add r1, sp, #0
add r0, r4, #4
bl func_01ffec34
cmp r0, #0
movne r0, #1
moveq r0, #0
add sp, sp, #0x10
ldmia sp!, {r4, pc}
arm_func_end func_ov50_021971a4
.global func_ov50_02197204
arm_func_start func_ov50_02197204
func_ov50_02197204: ; 0x02197204
stmdb sp!, {r4, lr}
mov r4, r0
bl func_0202ea0c
mov r0, r4
ldmia sp!, {r4, pc}
arm_func_end func_ov50_02197204
.global func_ov50_02197218
arm_func_start func_ov50_02197218
func_ov50_02197218: ; 0x02197218
stmdb sp!, {r4, r5, lr}
sub sp, sp, #0x84
mov r4, r1
ldrh r2, [r4]
ldr r1, _02197440 ; =0x0000ffff
mov r5, r0
cmp r2, r1
beq _02197264
ldr r1, _02197444 ; =data_027e0f6c
add r0, sp, #0x10
ldr r1, [r1]
bl func_ov00_02093a1c
ldr r0, [sp, #0x10]
mov r0, r0, lsr #0x9
and r0, r0, #3
cmp r0, #1
addeq sp, sp, #0x84
moveq r0, #0
ldmeqia sp!, {r4, r5, pc}
_02197264:
ldr r0, [r5, #4]
ldr r0, [r0, #0x130]
cmp r0, #1
beq _02197284
cmp r0, #3
cmpne r0, #4
beq _0219729c
b _02197290
_02197284:
add sp, sp, #0x84
mov r0, #0
ldmia sp!, {r4, r5, pc}
_02197290:
add sp, sp, #0x84
mov r0, #1
ldmia sp!, {r4, r5, pc}
_0219729c:
ldr r1, _02197448 ; =func_ov50_02197460
ldr r3, _0219744c ; =func_ov50_02197464
str r1, [sp]
add r0, sp, #0x50
mov r1, #3
mov r2, #0x10
bl func_0204f614
ldr r1, _02197444 ; =data_027e0f6c
ldrh r2, [r4]
mov r0, #0x4c
ldr r1, [r1]
mul r3, r2, r0
ldr r2, [r1, #0x20]
add ip, r4, #4
add r0, r2, r3
ldrh r3, [r2, r3]
ldrh r2, [r0, #2]
add r1, sp, #0x40
add lr, sp, #0x2c
strh r3, [sp, #0x38]
strh r2, [sp, #0x3a]
ldrh r2, [r0, #4]
add r3, sp, #0x20
add r4, sp, #0x14
strh r2, [sp, #0x3c]
ldrh r2, [r0, #6]
strh r2, [sp, #0x3e]
ldr r2, [r0, #8]
str r2, [sp, #0x40]
ldr r2, [r0, #0xc]
str r2, [sp, #0x44]
ldr r2, [r0, #0x10]
str r2, [sp, #0x48]
ldr r2, [r0, #0x14]
str r2, [sp, #0x4c]
ldr r2, [r0, #0x18]
str r2, [sp, #0x50]
ldr r2, [r0, #0x1c]
str r2, [sp, #0x54]
ldr r2, [r0, #0x20]
str r2, [sp, #0x58]
ldr r2, [r0, #0x24]
str r2, [sp, #0x5c]
ldr r2, [r0, #0x28]
str r2, [sp, #0x60]
ldr r2, [r0, #0x2c]
str r2, [sp, #0x64]
ldr r2, [r0, #0x30]
str r2, [sp, #0x68]
ldr r2, [r0, #0x34]
str r2, [sp, #0x6c]
ldr r2, [r0, #0x38]
str r2, [sp, #0x70]
ldr r2, [r0, #0x3c]
str r2, [sp, #0x74]
ldr r2, [r0, #0x40]
str r2, [sp, #0x78]
ldr r2, [r0, #0x44]
str r2, [sp, #0x7c]
ldr r0, [r0, #0x48]
str r0, [sp, #0x80]
ldmia r1, {r0, r1, r2}
stmia lr, {r0, r1, r2}
ldmia ip, {r0, r1, r2}
stmia r3, {r0, r1, r2}
ldmia lr, {r0, r1, r2}
stmia r4, {r0, r1, r2}
ldr r0, _02197450 ; =0xfffff829
mov r1, lr
mov r2, r3
bl func_01ff9e64
ldr r1, [sp, #0x2c]
ldr r0, [sp, #0x30]
strh r1, [sp, #8]
ldr r1, [sp, #0x34]
strh r0, [sp, #0xa]
strh r1, [sp, #0xc]
add r0, sp, #8
str r0, [sp]
ldr r1, _02197454 ; =func_ov50_02195530
ldr r0, _02197458 ; =data_027e0e58
str r1, [sp, #4]
ldr r0, [r0]
ldr r1, _0219745c ; =0x0000016b
add r2, sp, #0x20
mov r3, #2
bl func_ov00_0207c1b0
add r0, sp, #8
str r0, [sp]
ldr r1, _02197454 ; =func_ov50_02195530
ldr r0, _02197458 ; =data_027e0e58
str r1, [sp, #4]
ldr r0, [r0]
add r2, sp, #0x20
mov r1, #0x16c
mov r3, #2
bl func_ov00_0207c1b0
ldr r3, _02197448 ; =func_ov50_02197460
add r0, sp, #0x50
mov r1, #3
mov r2, #0x10
bl func_0204f754
mov r0, #1
add sp, sp, #0x84
ldmia sp!, {r4, r5, pc}
.align 2, 0
arm_func_end func_ov50_02197218
_02197440: .word 0x0000ffff
_02197444: .word data_027e0f6c
_02197448: .word func_ov50_02197460
_0219744c: .word func_ov50_02197464
_02197450: .word 0xfffff829
_02197454: .word func_ov50_02195530
_02197458: .word data_027e0e58
_0219745c: .word 0x0000016b
.global func_ov50_02197460
arm_func_start func_ov50_02197460
func_ov50_02197460: ; 0x02197460
bx lr
arm_func_end func_ov50_02197460
.global func_ov50_02197464
arm_func_start func_ov50_02197464
func_ov50_02197464: ; 0x02197464
bx lr
arm_func_end func_ov50_02197464
.global func_ov50_02197468
arm_func_start func_ov50_02197468
func_ov50_02197468: ; 0x02197468
mov r0, #1
bx lr
arm_func_end func_ov50_02197468
.global func_ov50_02197470
arm_func_start func_ov50_02197470
func_ov50_02197470: ; 0x02197470
stmdb sp!, {r4, lr}
mov r4, r1
mov r0, r4
ldr r1, [r0]
ldr r1, [r1, #0x1c]
blx r1
cmp r0, #0x35
bgt _021974b0
bge _021974bc
cmp r0, #3
bgt _021974dc
cmp r0, #2
blt _021974dc
cmpne r0, #3
beq _021974bc
b _021974dc
_021974b0:
cmp r0, #0x45
beq _021974d4
b _021974dc
_021974bc:
mov r0, r4
ldr r1, [r0]
ldr r1, [r1, #0x20]
blx r1
mov r0, #0
ldmia sp!, {r4, pc}
_021974d4:
mov r0, #1
ldmia sp!, {r4, pc}
_021974dc:
mov r0, #0
ldmia sp!, {r4, pc}
arm_func_end func_ov50_02197470
.global func_ov50_021974e4
arm_func_start func_ov50_021974e4
func_ov50_021974e4: ; 0x021974e4
stmdb sp!, {r4, lr}
sub sp, sp, #0x18
ldr r1, _0219755c ; =data_027e0fe4
mov r4, r0
ldr r0, [r1]
mov r1, r2
bl func_ov00_020c35d8
cmp r0, #0
addeq sp, sp, #0x18
moveq r0, #1
ldmeqia sp!, {r4, pc}
ldr r2, [r0, #4]
ldr r1, _02197560 ; =0x42494752
cmp r2, r1
bne _02197550
mov r3, #0
mov r1, #0xff
mov r2, #0xb
strb r1, [sp]
str r3, [sp, #0x14]
str r2, [sp, #0x10]
ldr r2, [r4, #4]
add r1, sp, #0
str r2, [sp, #0x14]
ldr r2, [r0]
ldr r2, [r2, #0x48]
blx r2
_02197550:
mov r0, #1
add sp, sp, #0x18
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov50_021974e4
_0219755c: .word data_027e0fe4
_02197560: .word 0x42494752
.global func_ov50_02197564
arm_func_start func_ov50_02197564
func_ov50_02197564: ; 0x02197564
stmdb sp!, {r4, lr}
mov r4, r0
bl func_ov00_02081f4c
mov r0, r4
bl func_0202ea0c
mov r0, r4
ldmia sp!, {r4, pc}
arm_func_end func_ov50_02197564
.global func_ov50_02197580
arm_func_start func_ov50_02197580
func_ov50_02197580: ; 0x02197580
stmdb sp!, {r3, lr}
ldr r1, _021975ac ; =data_027e0fe0
mov r0, #0x32c
ldr r1, [r1]
mov r2, #4
ldr r1, [r1]
bl func_0202e9dc
cmp r0, #0
ldmeqia sp!, {r3, pc}
bl func_ov50_02197638
ldmia sp!, {r3, pc}
.align 2, 0
arm_func_end func_ov50_02197580
_021975ac: .word data_027e0fe0
.global func_ov50_021975b0
arm_func_start func_ov50_021975b0
func_ov50_021975b0: ; 0x021975b0
stmdb sp!, {r4, lr}
mov r4, r0
bl func_ov00_020c6114
ldr r3, _021975dc ; =data_ov50_02198c90
ldr r2, _021975e0 ; =data_ov50_021987cc
mov r0, r4
mov r1, #0x70
str r3, [r4]
bl func_ov00_020c5c98
mov r0, r4
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov50_021975b0
_021975dc: .word data_ov50_02198c90
_021975e0: .word data_ov50_021987cc
.global func_ov50_021975e4
arm_func_start func_ov50_021975e4
func_ov50_021975e4: ; 0x021975e4
stmdb sp!, {r4, lr}
mov r4, r0
ldr r0, [r4, #0x14]
cmp r0, #1
ldmneia sp!, {r4, pc}
add r0, r4, #0x88
mov r1, #0x1000
bl func_0202e310
cmp r0, #0
ldmeqia sp!, {r4, pc}
ldr r2, [r4, #0x1c]
ldr r0, _02197628 ; =data_027e0ffc
ldr r1, _0219762c ; =0x000001c6
add r2, r2, #0x48
mov r3, #0
bl func_ov00_020ceacc
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov50_021975e4
_02197628: .word data_027e0ffc
_0219762c: .word 0x000001c6
.global func_ov50_02197630
arm_func_start func_ov50_02197630
func_ov50_02197630: ; 0x02197630
mov r0, #0
bx lr
arm_func_end func_ov50_02197630
.global func_ov50_02197638
arm_func_start func_ov50_02197638
func_ov50_02197638: ; 0x02197638
stmdb sp!, {r3, r4, lr}
sub sp, sp, #4
mov r4, r0
bl func_ov00_020ca668
ldr r2, _02197690 ; =data_ov50_02198b80
mov r1, r4
add r0, r4, #0x21c
str r2, [r4]
bl func_ov50_021975b0
mvn r0, #0
str r0, [r4, #0x31c]
ldr ip, _02197694 ; =func_ov00_020b7d74
str r0, [r4, #0x320]
ldr r3, _02197698 ; =func_ov50_02195658
add r0, r4, #0x324
mov r1, #2
mov r2, #4
str ip, [sp]
bl func_0204f614
mov r0, r4
add sp, sp, #4
ldmia sp!, {r3, r4, pc}
.align 2, 0
arm_func_end func_ov50_02197638
_02197690: .word data_ov50_02198b80
_02197694: .word func_ov00_020b7d74
_02197698: .word func_ov50_02195658
.global func_ov50_0219769c
arm_func_start func_ov50_0219769c
func_ov50_0219769c: ; 0x0219769c
stmdb sp!, {r4, lr}
ldr r3, _02197750 ; =data_ov50_02198cc0
mov r4, r0
ldr r0, [r3, #0x2c]
tst r0, #1
bne _021976dc
ldr ip, _02197754 ; =data_ov50_02198b60
ldr r0, _02197758 ; =data_ov50_02198cfc
ldr r1, _0219775c ; =func_ov50_02197768
ldr r2, _02197760 ; =data_ov50_02198cf0
str ip, [r3, #0x3c]
bl func_0204f8d4
ldr r0, _02197750 ; =data_ov50_02198cc0
ldr r1, [r0, #0x2c]
orr r1, r1, #1
str r1, [r0, #0x2c]
_021976dc:
ldr r2, _02197758 ; =data_ov50_02198cfc
ldr r1, _02197764 ; =data_ov50_02198ad8
mov r0, r4
str r2, [r4, #0xa0]
bl func_ov00_020ca8a4
mov r0, r4
mov r1, #0xb
bl func_ov00_020c3200
mov r2, #0
mov r0, r4
add r1, r4, #0x21c
str r2, [r4, #0x6c]
bl func_ov00_020cb140
mov r0, r4
bl func_ov50_02197d04
ldrh r0, [r4, #0x20]
cmp r0, #0
beq _02197734
cmp r0, #1
moveq r0, #1
streq r0, [r4, #0x318]
b _0219773c
_02197734:
mov r0, #0
str r0, [r4, #0x318]
_0219773c:
mov r0, r4
mov r1, #0
bl func_ov50_02197df8
mov r0, #1
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov50_0219769c
_02197750: .word data_ov50_02198cc0
_02197754: .word data_ov50_02198b60
_02197758: .word data_ov50_02198cfc
_0219775c: .word func_ov50_02197768
_02197760: .word data_ov50_02198cf0
_02197764: .word data_ov50_02198ad8
.global func_ov50_02197768
arm_func_start func_ov50_02197768
func_ov50_02197768: ; 0x02197768
stmdb sp!, {r4, lr}
mov r4, r0
bl func_ov00_02081f4c
mov r0, r4
ldmia sp!, {r4, pc}
arm_func_end func_ov50_02197768
.global func_ov50_0219777c
arm_func_start func_ov50_0219777c
func_ov50_0219777c: ; 0x0219777c
stmdb sp!, {r3, lr}
mov r1, #0
str r1, [r0, #0x60]
str r1, [r0, #0x64]
str r1, [r0, #0x68]
ldr r1, [r0]
ldr r1, [r1, #0x104]
blx r1
ldmia sp!, {r3, pc}
arm_func_end func_ov50_0219777c
.global func_ov50_021977a0
arm_func_start func_ov50_021977a0
func_ov50_021977a0: ; 0x021977a0
stmdb sp!, {r4, lr}
mov r4, r0
bl func_ov00_020c2974
mov r1, r0
ldr r2, _021977e0 ; =0x0000038e
add r0, r4, #0x78
bl func_0202b154
mov r1, #0
str r1, [r4, #0x60]
str r1, [r4, #0x64]
mov r0, r4
str r1, [r4, #0x68]
ldr r1, [r0]
ldr r1, [r1, #0x104]
blx r1
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov50_021977a0
_021977e0: .word 0x0000038e
.global func_ov50_021977e4
arm_func_start func_ov50_021977e4
func_ov50_021977e4: ; 0x021977e4
stmdb sp!, {r4, lr}
mov r4, r0
bl func_ov00_020c2974
mov r1, r0
ldr r2, _02197828 ; =0x0000038e
add r0, r4, #0x78
bl func_0202b154
mov r1, #0
str r1, [r4, #0x60]
mov r0, #0x148
str r0, [r4, #0x64]
mov r0, r4
str r1, [r4, #0x68]
ldr r1, [r0]
ldr r1, [r1, #0x104]
blx r1
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov50_021977e4
_02197828: .word 0x0000038e
.global func_ov50_0219782c
arm_func_start func_ov50_0219782c
func_ov50_0219782c: ; 0x0219782c
stmdb sp!, {r4, lr}
mov r4, r0
bl func_ov00_020c2974
strh r0, [r4, #0x78]
ldrh r1, [r4, #0x78]
ldr r3, _021978f8 ; =data_02050f54
mov r0, #0
mov r1, r1, asr #0x4
mov r1, r1, lsl #0x1
mov r2, r1, lsl #0x1
add r1, r1, #1
ldrsh r2, [r3, r2]
mov r1, r1, lsl #0x1
ldrsh r1, [r3, r1]
str r2, [r4, #0x60]
str r0, [r4, #0x64]
str r1, [r4, #0x68]
ldr r2, [r4, #0x60]
mov r1, #0xcd
umull ip, r3, r2, r1
adds ip, ip, #0x800
mla r3, r2, r0, r3
mov r2, r2, asr #0x1f
mla r3, r2, r1, r3
adc r2, r3, #0
mov r3, ip, lsr #0xc
orr r3, r3, r2, lsl #20
str r3, [r4, #0x60]
ldr r3, [r4, #0x64]
mov r2, #0x8f
umull lr, ip, r3, r1
adds lr, lr, #0x800
mla ip, r3, r0, ip
mov r3, r3, asr #0x1f
mla ip, r3, r1, ip
adc r3, ip, #0
mov ip, lr, lsr #0xc
orr ip, ip, r3, lsl #20
str ip, [r4, #0x64]
ldr r3, [r4, #0x68]
umull lr, ip, r3, r1
adds lr, lr, #0x800
mla ip, r3, r0, ip
mov r0, r3, asr #0x1f
mla ip, r0, r1, ip
adc r0, ip, #0
mov r1, lr, lsr #0xc
orr r1, r1, r0, lsl #20
str r1, [r4, #0x68]
strh r2, [r4, #0x9c]
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov50_0219782c
_021978f8: .word data_02050f54
.global func_ov50_021978fc
arm_func_start func_ov50_021978fc
func_ov50_021978fc: ; 0x021978fc
stmdb sp!, {r4, lr}
sub sp, sp, #0x18
ldr r1, _021979a8 ; =data_027e0f94
mov r4, r0
add r3, sp, #0xc
ldmia r1, {r0, r1, r2}
stmia r3, {r0, r1, r2}
add r2, sp, #0
mov r0, r3
add r1, r4, #0x48
bl func_01ff9bf8
add r2, r4, #0x60
add r1, sp, #0
mov r3, r2
mov r0, #0x1d
bl func_01ff9e64
add r0, r4, #0x60
ldr r2, _021979ac ; =0x00000333
mov r1, #0
mov r3, r0
bl func_0202db30
ldr r0, [r4, #0x60]
ldr r1, [r4, #0x68]
bl func_01ffa0f4
mov r0, r0, lsl #0x10
mov r1, r0, asr #0x10
ldr r2, _021979b0 ; =0x0000071c
add r0, r4, #0x78
bl func_0202b154
mov r0, r4
ldr r1, [r0]
ldr r1, [r1, #0x104]
blx r1
ldrb r0, [r4, #0x111]
cmp r0, #0
addeq sp, sp, #0x18
ldmeqia sp!, {r4, pc}
ldr r0, [r4, #0x64]
cmp r0, #0
movlt r0, #0
strlt r0, [r4, #0x64]
add sp, sp, #0x18
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov50_021978fc
_021979a8: .word data_027e0f94
_021979ac: .word 0x00000333
_021979b0: .word 0x0000071c
.global func_ov50_021979b4
arm_func_start func_ov50_021979b4
func_ov50_021979b4: ; 0x021979b4
stmdb sp!, {r4, lr}
sub sp, sp, #8
ldr r1, _021979f8 ; =data_027e0fe4
mov r4, r0
ldr r1, [r1]
ldr r2, _021979fc ; =0x52555059
add r0, sp, #0
add r3, r4, #0x48
bl func_ov00_020c38fc
ldr r1, [sp]
mov r0, #0x8f
str r1, [r4, #0x31c]
ldr r1, [sp, #4]
str r1, [r4, #0x320]
strh r0, [r4, #0x9c]
add sp, sp, #8
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov50_021979b4
_021979f8: .word data_027e0fe4
_021979fc: .word 0x52555059
.global func_ov50_02197a00
arm_func_start func_ov50_02197a00
func_ov50_02197a00: ; 0x02197a00
stmdb sp!, {r4, lr}
sub sp, sp, #0x18
ldr r1, _02197ad0 ; =data_027e0fe4
mov r4, r0
ldr r0, [r1]
add r1, r4, #0x31c
bl func_ov00_020c3674
cmp r0, #0
mvneq r0, #0
streq r0, [r4, #0x31c]
streq r0, [r4, #0x320]
beq _02197a78
add r0, r0, #0x48
add r3, sp, #0xc
ldmia r0, {r0, r1, r2}
stmia r3, {r0, r1, r2}
add r2, sp, #0
mov r0, r3
add r1, r4, #0x48
bl func_01ff9bf8
add r2, r4, #0x60
add r1, sp, #0
mov r3, r2
mov r0, #0x29
bl func_01ff9e64
add r0, r4, #0x60
ldr r2, _02197ad4 ; =0x00000199
mov r1, #0
mov r3, r0
bl func_0202db30
_02197a78:
ldr r0, [r4, #0x60]
ldr r1, [r4, #0x68]
bl func_01ffa0f4
mov r0, r0, lsl #0x10
mov r1, r0, asr #0x10
ldr r2, _02197ad8 ; =0x00000aab
add r0, r4, #0x78
bl func_0202b154
mov r0, r4
ldr r1, [r0]
ldr r1, [r1, #0x104]
blx r1
ldrb r0, [r4, #0x111]
cmp r0, #0
addeq sp, sp, #0x18
ldmeqia sp!, {r4, pc}
ldr r0, [r4, #0x64]
cmp r0, #0
movlt r0, #0
strlt r0, [r4, #0x64]
add sp, sp, #0x18
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov50_02197a00
_02197ad0: .word data_027e0fe4
_02197ad4: .word 0x00000199
_02197ad8: .word 0x00000aab
.global func_ov50_02197adc
arm_func_start func_ov50_02197adc
func_ov50_02197adc: ; 0x02197adc
ldr r1, [r0, #0x31c]
mvn r0, #0
cmp r1, r0
moveq r0, #1
movne r0, #0
bx lr
arm_func_end func_ov50_02197adc
.global func_ov50_02197af4
arm_func_start func_ov50_02197af4
func_ov50_02197af4: ; 0x02197af4
ldr r1, [r0, #0x64]
cmp r1, #0
movlt r1, #0
strlt r1, [r0, #0x64]
mov r1, #3
strh r1, [r0, #0x9c]
bx lr
arm_func_end func_ov50_02197af4
.global func_ov50_02197b10
arm_func_start func_ov50_02197b10
func_ov50_02197b10: ; 0x02197b10
stmdb sp!, {r4, r5, r6, r7, r8, lr}
mov r4, r0
ldr r0, [r4, #0x60]
ldr r1, [r4, #0x68]
bl func_01ffa0f4
mov r0, r0, lsl #0x10
mov r1, r0, asr #0x10
add r0, r4, #0x78
mov r2, #0x16c
bl func_0202b154
mov r0, r4
bl func_ov00_020c2974
sub r0, r0, #0x8000
mov r0, r0, lsl #0x10
mov r0, r0, asr #0x10
mov r0, r0, lsl #0x10
mov r0, r0, lsr #0x10
mov r0, r0, asr #0x4
mov r0, r0, lsl #0x1
add r1, r0, #1
ldr r2, _02197c14 ; =data_02050f54
mov r0, r0, lsl #0x1
ldrsh r5, [r2, r0]
mov r0, #0x14
mov r1, r1, lsl #0x1
ldrsh r2, [r2, r1]
umull lr, r6, r5, r0
mov r1, #0
umull ip, r3, r2, r0
adds lr, lr, #0x800
mov r7, lr, lsr #0xc
mla r6, r5, r1, r6
mla r3, r2, r1, r3
mov lr, r5, asr #0x1f
mla r6, lr, r0, r6
mov r1, r2, asr #0x1f
adc r5, r6, #0
mla r3, r1, r0, r3
adds r1, ip, #0x800
ldr r8, [r4, #0x60]
orr r7, r7, r5, lsl #20
add r5, r8, r7
str r5, [r4, #0x60]
adc r0, r3, #0
mov r1, r1, lsr #0xc
ldr r2, [r4, #0x68]
orr r1, r1, r0, lsl #20
add r0, r2, r1
str r0, [r4, #0x68]
ldr r1, [r4, #0x64]
ldr r0, _02197c18 ; =0x00000333
add r1, r1, #0x14
str r1, [r4, #0x64]
cmp r1, r0
strgt r0, [r4, #0x64]
add r0, r4, #0x60
ldr r2, _02197c18 ; =0x00000333
mov r3, r0
mov r1, #0
bl func_0202db30
mov r0, r4
ldr r1, [r0]
ldr r1, [r1, #0x104]
blx r1
ldmia sp!, {r4, r5, r6, r7, r8, pc}
.align 2, 0
arm_func_end func_ov50_02197b10
_02197c14: .word data_02050f54
_02197c18: .word 0x00000333
.global func_ov50_02197c1c
arm_func_start func_ov50_02197c1c
func_ov50_02197c1c: ; 0x02197c1c
stmdb sp!, {r4, r5, r6, lr}
mov r1, r1, lsl #0x10
mov r1, r1, lsr #0x10
mov r1, r1, asr #0x4
mov r3, r1, lsl #0x1
add r1, r3, #1
ldr r2, _02197cb0 ; =data_02050f54
mov r3, r3, lsl #0x1
mov r1, r1, lsl #0x1
ldrsh r4, [r2, r3]
ldrsh r3, [r2, r1]
mov r1, #0x52
umull r6, r5, r4, r1
mov r2, #0
mla r5, r4, r2, r5
umull lr, ip, r3, r1
mla ip, r3, r2, ip
mov r4, r4, asr #0x1f
mov r3, r3, asr #0x1f
mla r5, r4, r1, r5
adds r6, r6, #0x800
adc r4, r5, #0
mov r5, r6, lsr #0xc
orr r5, r5, r4, lsl #20
mla ip, r3, r1, ip
adds lr, lr, #0x800
adc r1, ip, #0
mov r3, lr, lsr #0xc
str r5, [r0, #0x60]
orr r3, r3, r1, lsl #20
str r3, [r0, #0x68]
ldr r1, [r0, #0x64]
cmp r1, #0
strlt r2, [r0, #0x64]
mov r1, #1
strh r1, [r0, #0x9c]
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
arm_func_end func_ov50_02197c1c
_02197cb0: .word data_02050f54
.global func_ov50_02197cb4
arm_func_start func_ov50_02197cb4
func_ov50_02197cb4: ; 0x02197cb4
stmdb sp!, {r4, lr}
mov r4, r0
bl func_ov00_020c2974
ldr r1, [r4, #0x64]
ldr r0, _02197d00 ; =0x00000333
add r1, r1, #0x14
str r1, [r4, #0x64]
cmp r1, r0
strgt r0, [r4, #0x64]
add r0, r4, #0x60
ldr r2, _02197d00 ; =0x00000333
mov r3, r0
mov r1, #0
bl func_0202db30
mov r0, r4
ldr r1, [r0]
ldr r1, [r1, #0x104]
blx r1
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov50_02197cb4
_02197d00: .word 0x00000333
.global func_ov50_02197d04
arm_func_start func_ov50_02197d04
func_ov50_02197d04: ; 0x02197d04
stmdb sp!, {r3, r4, lr}
sub sp, sp, #4
mov r4, r0
ldrsh r2, [r4, #0x12]
add r1, sp, #0
add r0, r4, #0x48
strh r2, [r4, #0x78]
ldr r3, [r4, #0x14]
mov r2, #0
str r3, [r4, #0x48]
ldr r3, [r4, #0x18]
str r3, [r4, #0x4c]
ldr r3, [r4, #0x1c]
str r3, [r4, #0x50]
strb r2, [sp]
strb r2, [sp, #1]
bl func_ov00_020c5374
ldr r0, _02197dc0 ; =data_027e0e60
add r1, sp, #0
ldr r0, [r0]
bl func_ov00_020840c4
cmp r0, #0
beq _02197da0
ldr r1, [r0]
ldr r1, [r1, #0x1c]
blx r1
cmp r0, #0
beq _02197d80
cmp r0, #4
beq _02197d90
b _02197da0
_02197d80:
ldr r0, [r4, #0x4c]
add r0, r0, #0x2800
str r0, [r4, #0x4c]
b _02197da0
_02197d90:
ldr r0, [r4, #0x4c]
add r0, r0, #0xcd
add r0, r0, #0xc00
str r0, [r4, #0x4c]
_02197da0:
ldr r0, [r4, #0x48]
str r0, [r4, #0x54]
ldr r0, [r4, #0x4c]
str r0, [r4, #0x58]
ldr r0, [r4, #0x50]
str r0, [r4, #0x5c]
add sp, sp, #4
ldmia sp!, {r3, r4, pc}
.align 2, 0
arm_func_end func_ov50_02197d04
_02197dc0: .word data_027e0e60
.global func_ov50_02197dc4
arm_func_start func_ov50_02197dc4
func_ov50_02197dc4: ; 0x02197dc4
stmdb sp!, {r4, lr}
mov r4, r0
bl func_ov00_020caef8
mov r0, r4
mov r1, #5
bl func_ov50_02197df8
ldmia sp!, {r4, pc}
arm_func_end func_ov50_02197dc4
.global func_ov50_02197de0
arm_func_start func_ov50_02197de0
func_ov50_02197de0: ; 0x02197de0
stmdb sp!, {r4, lr}
mov r4, r0
bl func_ov00_020cafbc
mov r0, #0x8f
strh r0, [r4, #0x9c]
ldmia sp!, {r4, pc}
arm_func_end func_ov50_02197de0
.global func_ov50_02197df8
arm_func_start func_ov50_02197df8
func_ov50_02197df8: ; 0x02197df8
stmdb sp!, {r3, r4, r5, r6, r7, lr}
sub sp, sp, #8
mov r4, r1
mov r5, r0
cmp r4, #8
addls pc, pc, r4, lsl #2
b _02197fbc
_02197e14: ; jump table
b _02197e38 ; case 0
b _02197fbc ; case 1
b _02197e5c ; case 2
b _02197ea0 ; case 3
b _02197ec4 ; case 4
b _02197ee8 ; case 5
b _02197f34 ; case 6
b _02197f58 ; case 7
b _02197fa4 ; case 8
_02197e38:
add r0, r5, #0x21c
mov r1, #0
bl func_ov00_020c5d74
ldr r0, [r5, #0x22c]
mov r1, #0x1000
str r1, [r0, #0x10]
mov r0, #2
str r0, [r5, #0x12c]
b _02197fbc
_02197e5c:
add r0, r5, #0x21c
mov r1, #1
bl func_ov00_020c5d74
ldr r0, [r5, #0x22c]
mov r1, #0x1000
mov r2, #0x23c
str r1, [r0, #0x10]
add r0, r5, #0x48
str r0, [sp]
mov r1, #2
ldr r0, _02197fd0 ; =data_027e0e58
str r1, [sp, #4]
ldr r0, [r0]
add r1, r5, #0x324
add r3, r2, #1
bl func_ov00_0207c2e8
b _02197fbc
_02197ea0:
add r0, r5, #0x21c
mov r1, #1
bl func_ov00_020c5d74
ldr r1, [r5, #0x22c]
mov r2, #0x1000
mov r0, r5
str r2, [r1, #0x10]
bl func_ov50_0219782c
b _02197fbc
_02197ec4:
add r0, r5, #0x21c
mov r1, #1
bl func_ov00_020c5d74
ldr r1, [r5, #0x22c]
mov r2, #0x1000
mov r0, r5
str r2, [r1, #0x10]
bl func_ov50_021979b4
b _02197fbc
_02197ee8:
add r0, r5, #0x21c
mov r1, #1
bl func_ov00_020c5d74
ldr r1, [r5, #0x22c]
mov r2, #0x1000
mov r0, r5
str r2, [r1, #0x10]
bl func_ov50_02197af4
add r0, r5, #0x48
mov r2, #0x23c
str r0, [sp]
mov r1, #2
ldr r0, _02197fd0 ; =data_027e0e58
str r1, [sp, #4]
ldr r0, [r0]
add r1, r5, #0x324
add r3, r2, #1
bl func_ov00_0207c2e8
b _02197fbc
_02197f34:
add r0, r5, #0x21c
mov r1, #1
bl func_ov00_020c5d74
ldr r1, [r5, #0x22c]
mov r2, #0x1000
mov r0, r5
str r2, [r1, #0x10]
bl func_ov50_02197af4
b _02197fbc
_02197f58:
bl func_ov50_02197d04
mov r0, #0
add r7, r5, #0x324
add r6, r5, #0x32c
str r0, [r5, #0x12c]
cmp r7, r6
beq _02197f88
_02197f74:
mov r0, r7
bl func_ov00_020b7e6c
add r7, r7, #4
cmp r7, r6
bne _02197f74
_02197f88:
add r0, r5, #0x21c
mov r1, #0
bl func_ov00_020c5d74
ldr r0, [r5, #0x22c]
mov r1, #0x1000
str r1, [r0, #0x10]
b _02197fbc
_02197fa4:
add r0, r5, #0x21c
mov r1, #0
bl func_ov00_020c5d74
ldr r0, [r5, #0x22c]
mov r1, #0x1000
str r1, [r0, #0x10]
_02197fbc:
mov r0, #0
str r0, [r5, #0x138]
str r4, [r5, #0x130]
add sp, sp, #8
ldmia sp!, {r3, r4, r5, r6, r7, pc}
.align 2, 0
arm_func_end func_ov50_02197df8
_02197fd0: .word data_027e0e58
.global func_ov50_02197fd4
arm_func_start func_ov50_02197fd4
func_ov50_02197fd4: ; 0x02197fd4
stmdb sp!, {r3, r4, r5, r6, r7, lr}
sub sp, sp, #0x38
mov r4, r0
ldr r0, [r4, #0x130]
cmp r0, #7
bne _02197ff4
mov r0, #0
b _02197ff8
_02197ff4:
mov r0, #8
_02197ff8:
str r0, [r4, #0x164]
ldr r0, [r4, #0x130]
cmp r0, #7
beq _02198130
mov r0, r4
mov r1, #1
mov r2, #0
bl func_ov00_020c1e2c
cmp r0, #0
beq _02198130
ldr r0, _0219857c ; =data_027e0f94
add r2, sp, #0x2c
add r1, r4, #0x54
bl func_01ff9bf8
ldr r0, [sp, #0x2c]
ldr r1, [sp, #0x34]
bl func_01ffa0f4
ldr r1, _02198580 ; =data_027e0764
mov r0, r0, lsl #0x10
ldr r3, [r1]
ldmib r1, {r2, r5}
umull r7, r6, r5, r3
mla r6, r5, r2, r6
ldr r2, [r1, #0xc]
ldr ip, [r1, #0x10]
mla r6, r2, r3, r6
ldr r5, [r1, #0x14]
adds r7, ip, r7
adc r2, r5, r6
str r7, [r1]
str r2, [r1, #4]
mov r0, r0, asr #0x10
tst r2, #0x80000000
addne r0, r0, #0x4000
subeq r0, r0, #0x4000
mov r0, r0, lsl #0x10
mov r0, r0, asr #0x10
mov r0, r0, lsl #0x10
mov r0, r0, lsr #0x10
mov r0, r0, asr #0x4
mov r2, r0, lsl #0x1
add r0, r2, #1
ldr r1, _02198584 ; =data_02050f54
mov r2, r2, lsl #0x1
mov r0, r0, lsl #0x1
ldrsh lr, [r1, r2]
ldrsh r0, [r1, r0]
ldr r2, _02198588 ; =0x0000019a
mov r1, #0
umull ip, r6, lr, r2
mla r6, lr, r1, r6
umull r3, r5, r0, r2
mla r5, r0, r1, r5
mov lr, lr, asr #0x1f
mov r0, r0, asr #0x1f
adds r7, ip, #0x800
mla r6, lr, r2, r6
mla r5, r0, r2, r5
adc r6, r6, #0
adds lr, r3, #0x800
mov r3, r7, lsr #0xc
adc r0, r5, #0
mov r5, lr, lsr #0xc
orr r3, r3, r6, lsl #20
orr r5, r5, r0, lsl #20
ldr ip, _0219858c ; =data_027e0fc8
add r2, sp, #0x2c
ldr r0, [ip]
str r1, [sp, #0x30]
str r3, [sp, #0x2c]
str r5, [sp, #0x34]
bl func_ov00_020bd510
ldr r0, [r4, #0x130]
cmp r0, #3
bne _02198130
mov r0, r4
mov r1, #4
bl func_ov50_02197df8
_02198130:
ldr r0, [r4, #0x130]
cmp r0, #8
addls pc, pc, r0, lsl #2
b _02198500
_02198140: ; jump table
b _02198164 ; case 0
b _021981b8 ; case 1
b _02198204 ; case 2
b _02198258 ; case 3
b _021982d4 ; case 4
b _021983c4 ; case 5
b _0219845c ; case 6
b _0219849c ; case 7
b _02198500 ; case 8
_02198164:
mov r0, r4
bl func_ov50_0219777c
mov r0, r4
bl func_ov00_020c2974
ldrsh r1, [r4, #0x78]
subs r0, r0, r1
rsbmi r0, r0, #0
cmp r0, #0x4000
bge _02198198
mov r0, r4
bl func_ov00_020c28ec
cmp r0, #0x5000
blt _021981a8
_02198198:
mov r0, r4
bl func_ov00_020c28ec
cmp r0, #0x3000
bge _02198500
_021981a8:
mov r0, r4
mov r1, #1
bl func_ov50_02197df8
b _02198500
_021981b8:
mov r0, r4
bl func_ov50_021977a0
mov r0, r4
bl func_ov00_020c28ec
cmp r0, #0x3000
bgt _02198500
ldr r0, [r4, #0x318]
cmp r0, #0
bne _021981ec
mov r0, r4
mov r1, #2
bl func_ov50_02197df8
b _02198500
_021981ec:
cmp r0, #1
bne _02198500
mov r0, r4
mov r1, #5
bl func_ov50_02197df8
b _02198500
_02198204:
mov r0, r4
bl func_ov50_021977e4
ldr r0, [r4, #0x138]
cmp r0, #0x14
blt _02198500
ldr r0, [r4, #0x230]
cmp r0, #1
bne _0219823c
add r0, r4, #0x2a4
mov r1, #0x1000
bl func_0202e310
cmp r0, #0
movne r0, #1
bne _02198240
_0219823c:
mov r0, #0
_02198240:
cmp r0, #0
beq _02198500
mov r0, r4
mov r1, #3
bl func_ov50_02197df8
b _02198500
_02198258:
mov r0, r4
bl func_ov50_021978fc
ldrb r0, [r4, #0x110]
cmp r0, #0
ldreqb r0, [r4, #0x112]
cmpeq r0, #0
ldreqb r0, [r4, #0x113]
cmpeq r0, #0
beq _021982b8
add r0, r4, #0xc4
add r3, sp, #0x20
ldmia r0, {r0, r1, r2}
stmia r3, {r0, r1, r2}
ldr r0, [sp, #0x20]
ldr r1, [sp, #0x28]
bl func_01ffa0f4
mov r1, r0, lsl #0x10
mov r0, r4
mov r1, r1, asr #0x10
bl func_ov50_02197c1c
mov r0, r4
mov r1, #6
bl func_ov50_02197df8
b _02198500
_021982b8:
ldr r0, [r4, #0x138]
cmp r0, #0x3c
blt _02198500
mov r0, r4
mov r1, #5
bl func_ov50_02197df8
b _02198500
_021982d4:
mov r0, r4
bl func_ov50_02197a00
ldr r0, [r4, #0x138]
cmp r0, #0x1e
blt _02198340
ldr r1, _02198590 ; =data_027e0fe4
ldr r2, _02198594 ; =0x52555059
ldr r1, [r1]
add r0, sp, #0
add r3, r4, #0x48
bl func_ov00_020c38fc
ldr r1, [sp]
mvn r0, #0
cmp r1, r0
beq _02198340
ldr r0, _02198590 ; =data_027e0fe4
add r1, sp, #0
ldr r0, [r0]
bl func_ov00_020c3674
mov r5, r0
add r0, r4, #0x48
add r1, r5, #0x48
bl func_01ff9ec0
cmp r0, #0x800
bge _02198340
mov r0, r5
bl func_ov00_020c3180
_02198340:
ldrb r0, [r4, #0x110]
cmp r0, #0
ldreqb r0, [r4, #0x112]
cmpeq r0, #0
ldreqb r0, [r4, #0x113]
cmpeq r0, #0
beq _02198398
add r0, r4, #0xc4
add r3, sp, #0x14
ldmia r0, {r0, r1, r2}
stmia r3, {r0, r1, r2}
ldr r0, [sp, #0x14]
ldr r1, [sp, #0x1c]
bl func_01ffa0f4
mov r1, r0, lsl #0x10
mov r0, r4
mov r1, r1, asr #0x10
bl func_ov50_02197c1c
mov r0, r4
mov r1, #6
bl func_ov50_02197df8
b _02198500
_02198398:
ldr r0, [r4, #0x138]
cmp r0, #0x96
bge _021983b4
mov r0, r4
bl func_ov50_02197adc
cmp r0, #0
beq _02198500
_021983b4:
mov r0, r4
mov r1, #5
bl func_ov50_02197df8
b _02198500
_021983c4:
mov r0, r4
bl func_ov50_02197b10
ldrb r0, [r4, #0x110]
cmp r0, #0
ldreqb r0, [r4, #0x112]
cmpeq r0, #0
ldreqb r0, [r4, #0x113]
cmpeq r0, #0
beq _02198424
add r0, r4, #0xc4
add r3, sp, #8
ldmia r0, {r0, r1, r2}
stmia r3, {r0, r1, r2}
ldr r0, [sp, #8]
ldr r1, [sp, #0x10]
bl func_01ffa0f4
mov r1, r0, lsl #0x10
mov r0, r4
mov r1, r1, asr #0x10
bl func_ov50_02197c1c
mov r0, r4
mov r1, #6
bl func_ov50_02197df8
b _02198500
_02198424:
ldr r0, [r4, #0x154]
cmp r0, #0
beq _02198440
mov r0, r4
mov r1, #7
bl func_ov50_02197df8
b _02198500
_02198440:
ldr r0, [r4, #0x4c]
cmp r0, #0xa000
ble _02198500
mov r0, r4
mov r1, #7
bl func_ov50_02197df8
b _02198500
_0219845c:
mov r0, r4
bl func_ov50_02197cb4
ldr r0, [r4, #0x154]
cmp r0, #0
beq _02198480
mov r0, r4
mov r1, #7
bl func_ov50_02197df8
b _02198500
_02198480:
ldr r0, [r4, #0x4c]
cmp r0, #0xa000
ble _02198500
mov r0, r4
mov r1, #7
bl func_ov50_02197df8
b _02198500
_0219849c:
ldr r0, [r4, #0x318]
cmp r0, #0
bne _021984d4
ldr r0, [r4, #0x154]
cmp r0, #0
beq _02198500
mov r0, r4
bl func_ov00_020c28ec
cmp r0, #0x10000
ble _02198500
mov r0, r4
mov r1, #0
bl func_ov50_02197df8
b _02198500
_021984d4:
cmp r0, #1
bne _02198500
ldr r0, [r4, #0x154]
cmp r0, #0
beq _02198500
ldr r0, [r4, #0x138]
cmp r0, #0x96
ble _02198500
mov r0, r4
mov r1, #0
bl func_ov50_02197df8
_02198500:
add r2, r4, #0x324
add r1, r4, #0x32c
cmp r2, r1
beq _02198570
_02198510:
ldr r0, [r2]
cmp r0, #0
beq _02198564
ldr r3, [r0, #0x20]
ldr ip, [r4, #0x48]
ldr r3, [r3]
ldr r3, [r3, #4]
add r3, ip, r3
str r3, [r0, #0x28]
ldr r3, [r0, #0x20]
ldr ip, [r4, #0x4c]
ldr r3, [r3]
ldr r3, [r3, #8]
add r3, ip, r3
str r3, [r0, #0x2c]
ldr r3, [r0, #0x20]
ldr ip, [r4, #0x50]
ldr r3, [r3]
ldr r3, [r3, #0xc]
add r3, ip, r3
str r3, [r0, #0x30]
_02198564:
add r2, r2, #4
cmp r2, r1
bne _02198510
_02198570:
mov r0, #1
add sp, sp, #0x38
ldmia sp!, {r3, r4, r5, r6, r7, pc}
.align 2, 0
arm_func_end func_ov50_02197fd4
_0219857c: .word data_027e0f94
_02198580: .word data_027e0764
_02198584: .word data_02050f54
_02198588: .word 0x0000019a
_0219858c: .word data_027e0fc8
_02198590: .word data_027e0fe4
_02198594: .word 0x52555059
.global func_ov50_02198598
arm_func_start func_ov50_02198598
func_ov50_02198598: ; 0x02198598
stmdb sp!, {r3, r4, lr}
sub sp, sp, #0x54
mov r4, r0
ldr r1, [r4, #0x130]
cmp r1, #7
addeq sp, sp, #0x54
moveq r0, #0
ldmeqia sp!, {r3, r4, pc}
cmp r1, #6
bne _0219863c
ldrh r1, [r4, #0x78]
ldr r3, _02198674 ; =data_02050f54
add r0, sp, #0x30
mov r1, r1, asr #0x4
mov r2, r1, lsl #0x1
add r1, r2, #1
mov ip, r2, lsl #0x1
mov r2, r1, lsl #0x1
ldrsh r1, [r3, ip]
ldrsh r2, [r3, r2]
blx func_01ff8214
ldr r2, _02198678 ; =data_02054954
add r0, sp, #0
ldrsh r1, [r2, #0xa8]
ldrsh r2, [r2, #0xaa]
blx func_01ff81f8
add r1, sp, #0x30
add r0, sp, #0
mov r2, r1
bl func_01ff8690
add r1, sp, #0x30
add r0, r4, #0x21c
add r2, r4, #0x48
bl func_ov00_020c5e88
ldr r0, [r4, #0x318]
cmp r0, #1
beq _02198668
mov r0, r4
mov r1, #0x1f
bl func_ov00_020cc9c4
b _02198668
_0219863c:
add r1, sp, #0x24
bl func_ov00_020cc1f8
add r1, sp, #0x24
add r0, r4, #0x21c
bl func_ov00_020c5fc0
ldr r0, [r4, #0x318]
cmp r0, #1
beq _02198668
mov r0, r4
mov r1, #0x1f
bl func_ov00_020cc9c4
_02198668:
mov r0, #1
add sp, sp, #0x54
ldmia sp!, {r3, r4, pc}
.align 2, 0
arm_func_end func_ov50_02198598
_02198674: .word data_02050f54
_02198678: .word data_02054954
.global func_ov50_0219867c
arm_func_start func_ov50_0219867c
func_ov50_0219867c: ; 0x0219867c
stmdb sp!, {r4, lr}
mov r4, r0
bl func_ov00_020cacf4
cmp r0, #0
movne r0, #1
ldmneia sp!, {r4, pc}
ldr r0, [r4, #0x130]
cmp r0, #8
moveq r0, #1
movne r0, #0
ldmia sp!, {r4, pc}
arm_func_end func_ov50_0219867c
.global func_ov50_021986a8
arm_func_start func_ov50_021986a8
func_ov50_021986a8: ; 0x021986a8
stmdb sp!, {r3, lr}
ldr r1, [r0, #0x130]
cmp r1, #1
ldmhiia sp!, {r3, pc}
mov r1, #8
bl func_ov50_02197df8
ldmia sp!, {r3, pc}
arm_func_end func_ov50_021986a8
.global func_ov50_021986c4
arm_func_start func_ov50_021986c4
func_ov50_021986c4: ; 0x021986c4
stmdb sp!, {r3, lr}
ldr r1, [r0, #0x130]
cmp r1, #8
ldmneia sp!, {r3, pc}
mov r1, #0
bl func_ov50_02197df8
ldmia sp!, {r3, pc}
arm_func_end func_ov50_021986c4
.global func_ov50_021986e0
arm_func_start func_ov50_021986e0
func_ov50_021986e0: ; 0x021986e0
stmdb sp!, {r4, lr}
mov r4, r0
bl func_ov00_02081f4c
mov r0, r4
bl func_0202ea0c
mov r0, r4
ldmia sp!, {r4, pc}
arm_func_end func_ov50_021986e0
.global func_ov50_021986fc
arm_func_start func_ov50_021986fc
func_ov50_021986fc: ; 0x021986fc
stmdb sp!, {r4, lr}
mov r4, r0
ldr r3, _0219875c ; =func_ov00_020b7d74
add r0, r4, #0x324
mov r1, #2
mov r2, #4
bl func_0204f754
add r0, r4, #0x298
blx func_ov00_020a9b6c
add r0, r4, #0x23c
blx func_ov00_020a95a4
add r0, r4, #0x1d8
bl func_ov00_02081f4c
add r0, r4, #0x1c8
mov r1, #2
mov r2, #4
ldr r3, _0219875c ; =func_ov00_020b7d74
bl func_0204f754
mov r0, r4
bl func_ov00_020c1730
mov r0, r4
bl func_0202ea0c
mov r0, r4
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov50_021986fc
_0219875c: .word func_ov00_020b7d74
.global func_ov50_02198760
arm_func_start func_ov50_02198760
func_ov50_02198760: ; 0x02198760
stmdb sp!, {r4, lr}
mov r4, r0
ldr r3, _021987b8 ; =func_ov00_020b7d74
add r0, r4, #0x324
mov r1, #2
mov r2, #4
bl func_0204f754
add r0, r4, #0x298
blx func_ov00_020a9b6c
add r0, r4, #0x23c
blx func_ov00_020a95a4
add r0, r4, #0x1d8
bl func_ov00_02081f4c
add r0, r4, #0x1c8
mov r1, #2
mov r2, #4
ldr r3, _021987b8 ; =func_ov00_020b7d74
bl func_0204f754
mov r0, r4
bl func_ov00_020c1730
mov r0, r4
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov50_02198760
_021987b8: .word func_ov00_020b7d74
.global func_ov50_021987bc
arm_func_start func_ov50_021987bc
func_ov50_021987bc: ; 0x021987bc
mov r0, #1
bx lr
arm_func_end func_ov50_021987bc
.global func_ov50_021987c4
arm_func_start func_ov50_021987c4
func_ov50_021987c4: ; 0x021987c4
mov r0, #1
bx lr
arm_func_end func_ov50_021987c4
.rodata
.global data_ov50_021987cc
data_ov50_021987cc: ; 0x021987cc
.ascii "wait"
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov50_021987d4
data_ov50_021987d4: ; 0x021987d4
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov50_021987d8
data_ov50_021987d8: ; 0x021987d8
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov50_021987dc
data_ov50_021987dc: ; 0x021987dc
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov50_021987e0
data_ov50_021987e0: ; 0x021987e0
.ascii "fly"
.byte 0x00
.global data_ov50_021987e4
data_ov50_021987e4: ; 0x021987e4
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov50_021987e8
data_ov50_021987e8: ; 0x021987e8
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov50_021987ec
data_ov50_021987ec: ; 0x021987ec
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov50_021987f0
data_ov50_021987f0: ; 0x021987f0
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov50_021987f4
data_ov50_021987f4: ; 0x021987f4
.byte 0x00, 0x30, 0x00, 0x00
.global data_ov50_021987f8
data_ov50_021987f8: ; 0x021987f8
.byte 0x9a, 0x01, 0x00, 0x00
.global data_ov50_021987fc
data_ov50_021987fc: ; 0x021987fc
.byte 0x33, 0x03, 0x00, 0x00
.global data_ov50_02198800
data_ov50_02198800: ; 0x02198800
.byte 0x14, 0x00, 0x00, 0x00
.global data_ov50_02198804
data_ov50_02198804: ; 0x02198804
.byte 0x14, 0x00, 0x00, 0x00
.global data_ov50_02198808
data_ov50_02198808: ; 0x02198808
.byte 0x6c, 0x01, 0x00, 0x00
.global data_ov50_0219880c
data_ov50_0219880c: ; 0x0219880c
.byte 0x33, 0x03, 0x00, 0x00
.global data_ov50_02198810
data_ov50_02198810: ; 0x02198810
.byte 0x14, 0x00, 0x00, 0x00
.global data_ov50_02198814
data_ov50_02198814: ; 0x02198814
.byte 0x14, 0x00, 0x00, 0x00
.global data_ov50_02198818
data_ov50_02198818: ; 0x02198818
.byte 0xab, 0x0a, 0x00, 0x00
.global data_ov50_0219881c
data_ov50_0219881c: ; 0x0219881c
.byte 0x29, 0x00, 0x00, 0x00
.global data_ov50_02198820
data_ov50_02198820: ; 0x02198820
.byte 0x1c, 0x07, 0x00, 0x00
.global data_ov50_02198824
data_ov50_02198824: ; 0x02198824
.byte 0x1d, 0x00, 0x00, 0x00
.global data_ov50_02198828
data_ov50_02198828: ; 0x02198828
.byte 0x8e, 0x03, 0x8e, 0x03
.section .init, 4, 1, 4
.global func_ov50_0219882c
arm_func_start func_ov50_0219882c
func_ov50_0219882c: ; 0x0219882c
stmdb sp!, {r3, lr}
ldr r0, _02198874 ; =data_ov50_02198cac
ldr r1, _02198878 ; =0x42494752
ldr r2, _0219887c ; =func_ov50_02195500
mov r3, #0
bl func_0203e784
ldr r0, _02198874 ; =data_ov50_02198cac
ldr r1, _02198880 ; =func_0203e7b4
ldr r2, _02198884 ; =data_ov50_02198ca0
bl func_0204f8d4
ldr r1, _02198888 ; =0x00004b5c
ldr r2, _0219888c ; =data_ov50_021989c0
mov r0, #0x10000000
str r1, [r2]
bl func_01ff98e0
ldr r1, _0219888c ; =data_ov50_021989c0
strh r0, [r1, #4]
ldmia sp!, {r3, pc}
.align 2, 0
arm_func_end func_ov50_0219882c
_02198874: .word data_ov50_02198cac
_02198878: .word 0x42494752
_0219887c: .word func_ov50_02195500
_02198880: .word func_0203e7b4
_02198884: .word data_ov50_02198ca0
_02198888: .word 0x00004b5c
_0219888c: .word data_ov50_021989c0
.global func_ov50_02198890
arm_func_start func_ov50_02198890
func_ov50_02198890: ; 0x02198890
stmdb sp!, {lr}
sub sp, sp, #0x84
ldr r0, _02198984 ; =data_ov50_02198ccc
ldr r1, _02198988 ; =0x43524f57
ldr r2, _0219898c ; =func_ov50_02197580
mov r3, #0
bl func_0203e784
ldr r0, _02198984 ; =data_ov50_02198ccc
ldr r1, _02198990 ; =func_0203e7b4
ldr r2, _02198994 ; =data_ov50_02198cc0
bl func_0204f8d4
mov ip, #1
str ip, [sp]
ldr r1, _02198998 ; =0x00001b33
str ip, [sp, #4]
mov r2, #2
str r2, [sp, #8]
str r1, [sp, #0xc]
mov r0, #0x800
str r0, [sp, #0x10]
str r1, [sp, #0x14]
str ip, [sp, #0x18]
str ip, [sp, #0x1c]
mov r0, #0x96
str ip, [sp, #0x20]
mov r3, #0
str r3, [sp, #0x24]
str ip, [sp, #0x28]
str ip, [sp, #0x2c]
str ip, [sp, #0x30]
str ip, [sp, #0x34]
str ip, [sp, #0x38]
str ip, [sp, #0x3c]
str ip, [sp, #0x40]
str ip, [sp, #0x44]
str r0, [sp, #0x48]
str r3, [sp, #0x4c]
str r3, [sp, #0x50]
rsb r1, r1, #0x2000
str r1, [sp, #0x54]
str r3, [sp, #0x58]
str r1, [sp, #0x5c]
add r0, r0, #0x5d0
str r0, [sp, #0x60]
str r0, [sp, #0x64]
str r1, [sp, #0x68]
str r3, [sp, #0x6c]
str r3, [sp, #0x70]
str r3, [sp, #0x74]
str r3, [sp, #0x78]
str r3, [sp, #0x7c]
ldr r0, _0219899c ; =data_ov50_02198ad8
mov r1, #4
str r2, [sp, #0x80]
bl func_ov00_020ccdd4
ldr r0, _0219899c ; =data_ov50_02198ad8
ldr r1, _021989a0 ; =func_ov00_020cceec
ldr r2, _021989a4 ; =data_ov50_02198ce0
bl func_0204f8d4
add sp, sp, #0x84
ldmia sp!, {pc}
.align 2, 0
arm_func_end func_ov50_02198890
_02198984: .word data_ov50_02198ccc
_02198988: .word 0x43524f57
_0219898c: .word func_ov50_02197580
_02198990: .word func_0203e7b4
_02198994: .word data_ov50_02198cc0
_02198998: .word 0x00001b33
_0219899c: .word data_ov50_02198ad8
_021989a0: .word func_ov00_020cceec
_021989a4: .word data_ov50_02198ce0
.section .sinit, 4, 1, 4
.global data_ov50_021989a8
data_ov50_021989a8: ; 0x021989a8
.byte 0x2c, 0x88, 0x19, 0x02
.global data_ov50_021989ac
data_ov50_021989ac: ; 0x021989ac
.byte 0x90, 0x88, 0x19, 0x02
.data
.global data_ov50_021989c0
data_ov50_021989c0: ; 0x021989c0
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov50_021989c4
data_ov50_021989c4: ; 0x021989c4
.byte 0x00, 0x00
.global data_ov50_021989c6
data_ov50_021989c6: ; 0x021989c6
.byte 0x00, 0x00
.global data_ov50_021989c8
data_ov50_021989c8: ; 0x021989c8
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov50_021989cc
data_ov50_021989cc: ; 0x021989cc
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov50_021989d0
data_ov50_021989d0: ; 0x021989d0
.byte 0xc0, 0x5c, 0x19, 0x02
.global data_ov50_021989d4
data_ov50_021989d4: ; 0x021989d4
.byte 0x64, 0x75, 0x19, 0x02
.global data_ov50_021989d8
data_ov50_021989d8: ; 0x021989d8
.byte 0x18, 0x72, 0x19, 0x02
.global data_ov50_021989dc
data_ov50_021989dc: ; 0x021989dc
.byte 0x68, 0x74, 0x19, 0x02
.global data_ov50_021989e0
data_ov50_021989e0: ; 0x021989e0
.byte 0x70, 0x74, 0x19, 0x02
.global data_ov50_021989e4
data_ov50_021989e4: ; 0x021989e4
.byte 0xe4, 0x74, 0x19, 0x02
.global data_ov50_021989e8
data_ov50_021989e8: ; 0x021989e8
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov50_021989ec
data_ov50_021989ec: ; 0x021989ec
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov50_021989f0
data_ov50_021989f0: ; 0x021989f0
.byte 0xa4, 0x71, 0x19, 0x02
.global data_ov50_021989f4
data_ov50_021989f4: ; 0x021989f4
.byte 0xe0, 0x6e, 0x19, 0x02
.global data_ov50_021989f8
data_ov50_021989f8: ; 0x021989f8
.byte 0x04, 0x72, 0x19, 0x02
.global data_ov50_021989fc
data_ov50_021989fc: ; 0x021989fc
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov50_02198a00
data_ov50_02198a00: ; 0x02198a00
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov50_02198a04
data_ov50_02198a04: ; 0x02198a04
.byte 0x10, 0x57, 0x19, 0x02
.global data_ov50_02198a08
data_ov50_02198a08: ; 0x02198a08
.byte 0x64, 0x56, 0x19, 0x02
.global data_ov50_02198a0c
data_ov50_02198a0c: ; 0x02198a0c
.byte 0xb4, 0x57, 0x19, 0x02
.global data_ov50_02198a10
data_ov50_02198a10: ; 0x02198a10
.byte 0x3c, 0x17, 0x0c, 0x02
.global data_ov50_02198a14
data_ov50_02198a14: ; 0x02198a14
.byte 0x40, 0x17, 0x0c, 0x02
.global data_ov50_02198a18
data_ov50_02198a18: ; 0x02198a18
.byte 0x50, 0x59, 0x19, 0x02
.global data_ov50_02198a1c
data_ov50_02198a1c: ; 0x02198a1c
.byte 0xd4, 0x5c, 0x19, 0x02
.global data_ov50_02198a20
data_ov50_02198a20: ; 0x02198a20
.byte 0xd4, 0x17, 0x0c, 0x02
.global data_ov50_02198a24
data_ov50_02198a24: ; 0x02198a24
.byte 0xf0, 0x63, 0x19, 0x02
.global data_ov50_02198a28
data_ov50_02198a28: ; 0x02198a28
.byte 0x44, 0x17, 0x0c, 0x02
.global data_ov50_02198a2c
data_ov50_02198a2c: ; 0x02198a2c
.byte 0x48, 0x17, 0x0c, 0x02
.global data_ov50_02198a30
data_ov50_02198a30: ; 0x02198a30
.byte 0xa8, 0x17, 0x0c, 0x02
.global data_ov50_02198a34
data_ov50_02198a34: ; 0x02198a34
.byte 0xb0, 0x17, 0x0c, 0x02
.global data_ov50_02198a38
data_ov50_02198a38: ; 0x02198a38
.byte 0x4c, 0x17, 0x0c, 0x02
.global data_ov50_02198a3c
data_ov50_02198a3c: ; 0x02198a3c
.byte 0x7c, 0x17, 0x0c, 0x02
.global data_ov50_02198a40
data_ov50_02198a40: ; 0x02198a40
.byte 0xe4, 0x27, 0x0c, 0x02
.global data_ov50_02198a44
data_ov50_02198a44: ; 0x02198a44
.byte 0x04, 0x30, 0x0c, 0x02
.global data_ov50_02198a48
data_ov50_02198a48: ; 0x02198a48
.byte 0x44, 0x27, 0x0c, 0x02
.global data_ov50_02198a4c
data_ov50_02198a4c: ; 0x02198a4c
.byte 0xd0, 0x64, 0x19, 0x02
.global data_ov50_02198a50
data_ov50_02198a50: ; 0x02198a50
.byte 0x50, 0x1c, 0x0c, 0x02
.global data_ov50_02198a54
data_ov50_02198a54: ; 0x02198a54
.byte 0x0c, 0x31, 0x0c, 0x02
.global data_ov50_02198a58
data_ov50_02198a58: ; 0x02198a58
.byte 0x14, 0x31, 0x0c, 0x02
.global data_ov50_02198a5c
data_ov50_02198a5c: ; 0x02198a5c
.byte 0xa8, 0x18, 0x0c, 0x02
.global data_ov50_02198a60
data_ov50_02198a60: ; 0x02198a60
.byte 0xc4, 0x18, 0x0c, 0x02
.global data_ov50_02198a64
data_ov50_02198a64: ; 0x02198a64
.byte 0xfc, 0x18, 0x0c, 0x02
.global data_ov50_02198a68
data_ov50_02198a68: ; 0x02198a68
.byte 0x04, 0x19, 0x0c, 0x02
.global data_ov50_02198a6c
data_ov50_02198a6c: ; 0x02198a6c
.byte 0x10, 0x19, 0x0c, 0x02
.global data_ov50_02198a70
data_ov50_02198a70: ; 0x02198a70
.byte 0x14, 0x19, 0x0c, 0x02
.global data_ov50_02198a74
data_ov50_02198a74: ; 0x02198a74
.byte 0x1c, 0x19, 0x0c, 0x02
.global data_ov50_02198a78
data_ov50_02198a78: ; 0x02198a78
.byte 0x24, 0x19, 0x0c, 0x02
.global data_ov50_02198a7c
data_ov50_02198a7c: ; 0x02198a7c
.byte 0x2c, 0x19, 0x0c, 0x02
.global data_ov50_02198a80
data_ov50_02198a80: ; 0x02198a80
.byte 0x28, 0x19, 0x0c, 0x02
.global data_ov50_02198a84
data_ov50_02198a84: ; 0x02198a84
.byte 0x34, 0x19, 0x0c, 0x02
.global data_ov50_02198a88
data_ov50_02198a88: ; 0x02198a88
.byte 0x38, 0x19, 0x0c, 0x02
.global data_ov50_02198a8c
data_ov50_02198a8c: ; 0x02198a8c
.byte 0x3c, 0x19, 0x0c, 0x02
.global data_ov50_02198a90
data_ov50_02198a90: ; 0x02198a90
.byte 0x40, 0x19, 0x0c, 0x02
.global data_ov50_02198a94
data_ov50_02198a94: ; 0x02198a94
.byte 0x48, 0x19, 0x0c, 0x02
.global data_ov50_02198a98
data_ov50_02198a98: ; 0x02198a98
.byte 0x50, 0x19, 0x0c, 0x02
.global data_ov50_02198a9c
data_ov50_02198a9c: ; 0x02198a9c
.byte 0x54, 0x19, 0x0c, 0x02
.global data_ov50_02198aa0
data_ov50_02198aa0: ; 0x02198aa0
.byte 0x58, 0x19, 0x0c, 0x02
.global data_ov50_02198aa4
data_ov50_02198aa4: ; 0x02198aa4
.byte 0x6c, 0x1b, 0x0c, 0x02
.global data_ov50_02198aa8
data_ov50_02198aa8: ; 0x02198aa8
.byte 0xb4, 0x1b, 0x0c, 0x02
.global data_ov50_02198aac
data_ov50_02198aac: ; 0x02198aac
.byte 0xf8, 0x1b, 0x0c, 0x02
.global data_ov50_02198ab0
data_ov50_02198ab0: ; 0x02198ab0
.byte 0xfc, 0x31, 0x0c, 0x02
.global data_ov50_02198ab4
data_ov50_02198ab4: ; 0x02198ab4
.byte 0x2c, 0x32, 0x0c, 0x02
.global data_ov50_02198ab8
data_ov50_02198ab8: ; 0x02198ab8
.byte 0x98, 0x64, 0x19, 0x02
.global data_ov50_02198abc
data_ov50_02198abc: ; 0x02198abc
.byte 0x64, 0x83, 0x14, 0x02
.global data_ov50_02198ac0
data_ov50_02198ac0: ; 0x02198ac0
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov50_02198ac4
data_ov50_02198ac4: ; 0x02198ac4
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov50_02198ac8
data_ov50_02198ac8: ; 0x02198ac8
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov50_02198acc
data_ov50_02198acc: ; 0x02198acc
.byte 0x58, 0x1f, 0x08, 0x02
.global data_ov50_02198ad0
data_ov50_02198ad0: ; 0x02198ad0
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov50_02198ad4
data_ov50_02198ad4: ; 0x02198ad4
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov50_02198ad8
data_ov50_02198ad8: ; 0x02198ad8
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov50_02198adc
data_ov50_02198adc: ; 0x02198adc
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov50_02198ae0
data_ov50_02198ae0: ; 0x02198ae0
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov50_02198ae4
data_ov50_02198ae4: ; 0x02198ae4
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov50_02198ae8
data_ov50_02198ae8: ; 0x02198ae8
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov50_02198aec
data_ov50_02198aec: ; 0x02198aec
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov50_02198af0
data_ov50_02198af0: ; 0x02198af0
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov50_02198af4
data_ov50_02198af4: ; 0x02198af4
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov50_02198af8
data_ov50_02198af8: ; 0x02198af8
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov50_02198afc
data_ov50_02198afc: ; 0x02198afc
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov50_02198b00
data_ov50_02198b00: ; 0x02198b00
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov50_02198b04
data_ov50_02198b04: ; 0x02198b04
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov50_02198b08
data_ov50_02198b08: ; 0x02198b08
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov50_02198b0c
data_ov50_02198b0c: ; 0x02198b0c
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov50_02198b10
data_ov50_02198b10: ; 0x02198b10
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov50_02198b14
data_ov50_02198b14: ; 0x02198b14
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov50_02198b18
data_ov50_02198b18: ; 0x02198b18
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov50_02198b1c
data_ov50_02198b1c: ; 0x02198b1c
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov50_02198b20
data_ov50_02198b20: ; 0x02198b20
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov50_02198b24
data_ov50_02198b24: ; 0x02198b24
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov50_02198b28
data_ov50_02198b28: ; 0x02198b28
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov50_02198b2c
data_ov50_02198b2c: ; 0x02198b2c
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov50_02198b30
data_ov50_02198b30: ; 0x02198b30
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov50_02198b34
data_ov50_02198b34: ; 0x02198b34
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov50_02198b38
data_ov50_02198b38: ; 0x02198b38
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov50_02198b3c
data_ov50_02198b3c: ; 0x02198b3c
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov50_02198b40
data_ov50_02198b40: ; 0x02198b40
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov50_02198b44
data_ov50_02198b44: ; 0x02198b44
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov50_02198b48
data_ov50_02198b48: ; 0x02198b48
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov50_02198b4c
data_ov50_02198b4c: ; 0x02198b4c
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov50_02198b50
data_ov50_02198b50: ; 0x02198b50
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov50_02198b54
data_ov50_02198b54: ; 0x02198b54
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov50_02198b58
data_ov50_02198b58: ; 0x02198b58
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov50_02198b5c
data_ov50_02198b5c: ; 0x02198b5c
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov50_02198b60
data_ov50_02198b60: ; 0x02198b60
.byte 0x68, 0x77, 0x19, 0x02
.global data_ov50_02198b64
data_ov50_02198b64: ; 0x02198b64
.byte 0xe0, 0x86, 0x19, 0x02
.global data_ov50_02198b68
data_ov50_02198b68: ; 0x02198b68
.byte 0xbc, 0x87, 0x19, 0x02
.global data_ov50_02198b6c
data_ov50_02198b6c: ; 0x02198b6c
.byte 0xc4, 0x87, 0x19, 0x02
.global data_ov50_02198b70
data_ov50_02198b70: ; 0x02198b70
.byte 0x30, 0x76, 0x19, 0x02
.global data_ov50_02198b74
data_ov50_02198b74: ; 0x02198b74
.byte 0x50, 0x1f, 0x08, 0x02
.global data_ov50_02198b78
data_ov50_02198b78: ; 0x02198b78
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov50_02198b7c
data_ov50_02198b7c: ; 0x02198b7c
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov50_02198b80
data_ov50_02198b80: ; 0x02198b80
.byte 0x60, 0x87, 0x19, 0x02
.global data_ov50_02198b84
data_ov50_02198b84: ; 0x02198b84
.byte 0xfc, 0x86, 0x19, 0x02
.global data_ov50_02198b88
data_ov50_02198b88: ; 0x02198b88
.byte 0x00, 0xaa, 0x0c, 0x02
.global data_ov50_02198b8c
data_ov50_02198b8c: ; 0x02198b8c
.byte 0x3c, 0x17, 0x0c, 0x02
.global data_ov50_02198b90
data_ov50_02198b90: ; 0x02198b90
.byte 0xe8, 0xa7, 0x0c, 0x02
.global data_ov50_02198b94
data_ov50_02198b94: ; 0x02198b94
.byte 0x28, 0xaa, 0x0c, 0x02
.global data_ov50_02198b98
data_ov50_02198b98: ; 0x02198b98
.byte 0x30, 0xad, 0x0c, 0x02
.global data_ov50_02198b9c
data_ov50_02198b9c: ; 0x02198b9c
.byte 0xd4, 0x17, 0x0c, 0x02
.global data_ov50_02198ba0
data_ov50_02198ba0: ; 0x02198ba0
.byte 0xc0, 0xb1, 0x0c, 0x02
.global data_ov50_02198ba4
data_ov50_02198ba4: ; 0x02198ba4
.byte 0x44, 0x17, 0x0c, 0x02
.global data_ov50_02198ba8
data_ov50_02198ba8: ; 0x02198ba8
.byte 0x48, 0x17, 0x0c, 0x02
.global data_ov50_02198bac
data_ov50_02198bac: ; 0x02198bac
.byte 0xa8, 0x17, 0x0c, 0x02
.global data_ov50_02198bb0
data_ov50_02198bb0: ; 0x02198bb0
.byte 0xb0, 0x17, 0x0c, 0x02
.global data_ov50_02198bb4
data_ov50_02198bb4: ; 0x02198bb4
.byte 0x4c, 0x17, 0x0c, 0x02
.global data_ov50_02198bb8
data_ov50_02198bb8: ; 0x02198bb8
.byte 0x7c, 0x17, 0x0c, 0x02
.global data_ov50_02198bbc
data_ov50_02198bbc: ; 0x02198bbc
.byte 0xe4, 0x27, 0x0c, 0x02
.global data_ov50_02198bc0
data_ov50_02198bc0: ; 0x02198bc0
.byte 0x04, 0x30, 0x0c, 0x02
.global data_ov50_02198bc4
data_ov50_02198bc4: ; 0x02198bc4
.byte 0x44, 0x27, 0x0c, 0x02
.global data_ov50_02198bc8
data_ov50_02198bc8: ; 0x02198bc8
.byte 0xb4, 0xae, 0x0c, 0x02
.global data_ov50_02198bcc
data_ov50_02198bcc: ; 0x02198bcc
.byte 0x40, 0xa8, 0x0c, 0x02
.global data_ov50_02198bd0
data_ov50_02198bd0: ; 0x02198bd0
.byte 0x0c, 0x31, 0x0c, 0x02
.global data_ov50_02198bd4
data_ov50_02198bd4: ; 0x02198bd4
.byte 0x14, 0x31, 0x0c, 0x02
.global data_ov50_02198bd8
data_ov50_02198bd8: ; 0x02198bd8
.byte 0xa8, 0x18, 0x0c, 0x02
.global data_ov50_02198bdc
data_ov50_02198bdc: ; 0x02198bdc
.byte 0xc4, 0x18, 0x0c, 0x02
.global data_ov50_02198be0
data_ov50_02198be0: ; 0x02198be0
.byte 0xfc, 0x18, 0x0c, 0x02
.global data_ov50_02198be4
data_ov50_02198be4: ; 0x02198be4
.byte 0x04, 0x19, 0x0c, 0x02
.global data_ov50_02198be8
data_ov50_02198be8: ; 0x02198be8
.byte 0x10, 0x19, 0x0c, 0x02
.global data_ov50_02198bec
data_ov50_02198bec: ; 0x02198bec
.byte 0x14, 0x19, 0x0c, 0x02
.global data_ov50_02198bf0
data_ov50_02198bf0: ; 0x02198bf0
.byte 0x1c, 0x19, 0x0c, 0x02
.global data_ov50_02198bf4
data_ov50_02198bf4: ; 0x02198bf4
.byte 0x24, 0x19, 0x0c, 0x02
.global data_ov50_02198bf8
data_ov50_02198bf8: ; 0x02198bf8
.byte 0x2c, 0x19, 0x0c, 0x02
.global data_ov50_02198bfc
data_ov50_02198bfc: ; 0x02198bfc
.byte 0x28, 0x19, 0x0c, 0x02
.global data_ov50_02198c00
data_ov50_02198c00: ; 0x02198c00
.byte 0x34, 0x19, 0x0c, 0x02
.global data_ov50_02198c04
data_ov50_02198c04: ; 0x02198c04
.byte 0x38, 0x19, 0x0c, 0x02
.global data_ov50_02198c08
data_ov50_02198c08: ; 0x02198c08
.byte 0x3c, 0x19, 0x0c, 0x02
.global data_ov50_02198c0c
data_ov50_02198c0c: ; 0x02198c0c
.byte 0x40, 0x19, 0x0c, 0x02
.global data_ov50_02198c10
data_ov50_02198c10: ; 0x02198c10
.byte 0x48, 0x19, 0x0c, 0x02
.global data_ov50_02198c14
data_ov50_02198c14: ; 0x02198c14
.byte 0x50, 0x19, 0x0c, 0x02
.global data_ov50_02198c18
data_ov50_02198c18: ; 0x02198c18
.byte 0xa8, 0x86, 0x19, 0x02
.global data_ov50_02198c1c
data_ov50_02198c1c: ; 0x02198c1c
.byte 0xc4, 0x86, 0x19, 0x02
.global data_ov50_02198c20
data_ov50_02198c20: ; 0x02198c20
.byte 0x6c, 0x1b, 0x0c, 0x02
.global data_ov50_02198c24
data_ov50_02198c24: ; 0x02198c24
.byte 0xb4, 0x1b, 0x0c, 0x02
.global data_ov50_02198c28
data_ov50_02198c28: ; 0x02198c28
.byte 0xf8, 0x1b, 0x0c, 0x02
.global data_ov50_02198c2c
data_ov50_02198c2c: ; 0x02198c2c
.byte 0xfc, 0x31, 0x0c, 0x02
.global data_ov50_02198c30
data_ov50_02198c30: ; 0x02198c30
.byte 0x2c, 0x32, 0x0c, 0x02
.global data_ov50_02198c34
data_ov50_02198c34: ; 0x02198c34
.byte 0x7c, 0x86, 0x19, 0x02
.global data_ov50_02198c38
data_ov50_02198c38: ; 0x02198c38
.byte 0x9c, 0x76, 0x19, 0x02
.global data_ov50_02198c3c
data_ov50_02198c3c: ; 0x02198c3c
.byte 0xd4, 0x7f, 0x19, 0x02
.global data_ov50_02198c40
data_ov50_02198c40: ; 0x02198c40
.byte 0x98, 0x85, 0x19, 0x02
.global data_ov50_02198c44
data_ov50_02198c44: ; 0x02198c44
.byte 0xa8, 0xae, 0x0c, 0x02
.global data_ov50_02198c48
data_ov50_02198c48: ; 0x02198c48
.byte 0xc4, 0x7d, 0x19, 0x02
.global data_ov50_02198c4c
data_ov50_02198c4c: ; 0x02198c4c
.byte 0xfc, 0xae, 0x0c, 0x02
.global data_ov50_02198c50
data_ov50_02198c50: ; 0x02198c50
.byte 0xb8, 0xaf, 0x0c, 0x02
.global data_ov50_02198c54
data_ov50_02198c54: ; 0x02198c54
.byte 0xe0, 0x7d, 0x19, 0x02
.global data_ov50_02198c58
data_ov50_02198c58: ; 0x02198c58
.byte 0xd0, 0xaf, 0x0c, 0x02
.global data_ov50_02198c5c
data_ov50_02198c5c: ; 0x02198c5c
.byte 0x58, 0xb0, 0x0c, 0x02
.global data_ov50_02198c60
data_ov50_02198c60: ; 0x02198c60
.byte 0x6c, 0xb0, 0x0c, 0x02
.global data_ov50_02198c64
data_ov50_02198c64: ; 0x02198c64
.byte 0x80, 0xb0, 0x0c, 0x02
.global data_ov50_02198c68
data_ov50_02198c68: ; 0x02198c68
.byte 0x0c, 0xb1, 0x0c, 0x02
.global data_ov50_02198c6c
data_ov50_02198c6c: ; 0x02198c6c
.byte 0x20, 0xb1, 0x0c, 0x02
.global data_ov50_02198c70
data_ov50_02198c70: ; 0x02198c70
.byte 0x2c, 0xb1, 0x0c, 0x02
.global data_ov50_02198c74
data_ov50_02198c74: ; 0x02198c74
.byte 0x3c, 0xb1, 0x0c, 0x02
.global data_ov50_02198c78
data_ov50_02198c78: ; 0x02198c78
.byte 0x50, 0xc1, 0x0c, 0x02
.global data_ov50_02198c7c
data_ov50_02198c7c: ; 0x02198c7c
.byte 0x5c, 0xc1, 0x0c, 0x02
.global data_ov50_02198c80
data_ov50_02198c80: ; 0x02198c80
.byte 0x90, 0xc4, 0x0c, 0x02
.global data_ov50_02198c84
data_ov50_02198c84: ; 0x02198c84
.byte 0x24, 0xc5, 0x0c, 0x02
.global data_ov50_02198c88
data_ov50_02198c88: ; 0x02198c88
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov50_02198c8c
data_ov50_02198c8c: ; 0x02198c8c
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov50_02198c90
data_ov50_02198c90: ; 0x02198c90
.byte 0x34, 0x5d, 0x0c, 0x02
.global data_ov50_02198c94
data_ov50_02198c94: ; 0x02198c94
.byte 0xe4, 0x75, 0x19, 0x02
.global data_ov50_02198c98
data_ov50_02198c98: ; 0x02198c98
.byte 0x58, 0x5e, 0x0c, 0x02
.global data_ov50_02198c9c
data_ov50_02198c9c: ; 0x02198c9c
.byte 0x00, 0x00, 0x00, 0x00
; 0x02198ca0
.bss
.global data_ov50_02198ca0
data_ov50_02198ca0:
.space 0x4
.global data_ov50_02198ca4
data_ov50_02198ca4:
.space 0x4
.global data_ov50_02198ca8
data_ov50_02198ca8:
.space 0x4
.global data_ov50_02198cac
data_ov50_02198cac:
.space 0x4
.global data_ov50_02198cb0
data_ov50_02198cb0:
.space 0x4
.global data_ov50_02198cb4
data_ov50_02198cb4:
.space 0x4
.global data_ov50_02198cb8
data_ov50_02198cb8:
.space 0x4
.global data_ov50_02198cbc
data_ov50_02198cbc:
.space 0x4
.global data_ov50_02198cc0
data_ov50_02198cc0:
.space 0x4
.global data_ov50_02198cc4
data_ov50_02198cc4:
.space 0x4
.global data_ov50_02198cc8
data_ov50_02198cc8:
.space 0x4
.global data_ov50_02198ccc
data_ov50_02198ccc:
.space 0x4
.global data_ov50_02198cd0
data_ov50_02198cd0:
.space 0x4
.global data_ov50_02198cd4
data_ov50_02198cd4:
.space 0x4
.global data_ov50_02198cd8
data_ov50_02198cd8:
.space 0x4
.global data_ov50_02198cdc
data_ov50_02198cdc:
.space 0x4
.global data_ov50_02198ce0
data_ov50_02198ce0:
.space 0x4
.global data_ov50_02198ce4
data_ov50_02198ce4:
.space 0x4
.global data_ov50_02198ce8
data_ov50_02198ce8:
.space 0x4
.global data_ov50_02198cec
data_ov50_02198cec:
.space 0x4
.global data_ov50_02198cf0
data_ov50_02198cf0:
.space 0x4
.global data_ov50_02198cf4
data_ov50_02198cf4:
.space 0x4
.global data_ov50_02198cf8
data_ov50_02198cf8:
.space 0x4
.global data_ov50_02198cfc
data_ov50_02198cfc:
.space 0x4