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

3531 lines
77 KiB
ArmAsm

.include "macros/function.inc"
.include "global.inc"
.text
.global func_ov52_02195500
arm_func_start func_ov52_02195500
func_ov52_02195500: ; 0x02195500
ldr r0, _0219550c ; =data_ov52_02197c40
ldrh r0, [r0, #4]
bx lr
.align 2, 0
arm_func_end func_ov52_02195500
_0219550c: .word data_ov52_02197c40
.global func_ov52_02195510
arm_func_start func_ov52_02195510
func_ov52_02195510: ; 0x02195510
stmdb sp!, {r3, lr}
bl func_ov52_02195500
ldr r3, _02195548 ; =0x88888889
mov r1, r0, lsr #0x1f
smull r2, ip, r3, r0
add ip, r0, ip
add ip, r1, ip, asr #4
smull r0, r1, r3, ip
add r1, ip, r1
mov r0, ip, lsr #0x1f
add r1, r0, r1, asr #5
mov r0, r1, lsl #0x10
mov r0, r0, lsr #0x10
ldmia sp!, {r3, pc}
.align 2, 0
arm_func_end func_ov52_02195510
_02195548: .word 0x88888889
.global func_ov52_0219554c
arm_func_start func_ov52_0219554c
func_ov52_0219554c: ; 0x0219554c
stmdb sp!, {r3, lr}
bl func_ov52_02195500
ldr r3, _02195590 ; =0x88888889
mov r1, r0, lsr #0x1f
smull r2, ip, r3, r0
add ip, r0, ip
add ip, r1, ip, asr #4
smull r0, r1, r3, ip
add r1, ip, r1
mov r0, ip, lsr #0x1f
add r1, r0, r1, asr #5
mov r2, #0x3c
smull r0, r1, r2, r1
sub r1, ip, r0
mov r0, r1, lsl #0x10
mov r0, r0, lsr #0x10
ldmia sp!, {r3, pc}
.align 2, 0
arm_func_end func_ov52_0219554c
_02195590: .word 0x88888889
.global func_ov52_02195594
arm_func_start func_ov52_02195594
func_ov52_02195594: ; 0x02195594
stmdb sp!, {r3, lr}
bl func_ov52_02195500
ldr ip, _021955e0 ; =0x88888889
mov r1, r0, lsr #0x1f
smull r2, lr, ip, r0
add lr, r0, lr
add lr, r1, lr, asr #4
mov r3, #0x1e
smull r1, r2, r3, lr
sub lr, r0, r1
mov r0, #0x64
mul r1, lr, r0
smull r0, r2, ip, r1
add r2, r1, r2
mov r0, r1, lsr #0x1f
add r2, r0, r2, asr #4
mov r0, r2, lsl #0x10
mov r0, r0, lsr #0x10
ldmia sp!, {r3, pc}
.align 2, 0
arm_func_end func_ov52_02195594
_021955e0: .word 0x88888889
.global func_ov52_021955e4
arm_func_start func_ov52_021955e4
func_ov52_021955e4: ; 0x021955e4
stmdb sp!, {r3, lr}
ldrb r0, [r0, #0x14]
cmp r0, #1
ldmneia sp!, {r3, pc}
ldr r0, _02195640 ; =data_027e0f74
ldr r0, [r0]
bl func_ov00_02097738
cmp r0, #0
ldmneia sp!, {r3, pc}
ldr r0, _02195640 ; =data_027e0f74
ldr r0, [r0]
bl func_ov00_02097750
cmp r0, #0
ldmneia sp!, {r3, pc}
ldr r0, _02195644 ; =data_ov52_02197c40
ldr r1, _02195648 ; =0x00002328
ldrh r2, [r0, #4]
add r2, r2, #1
strh r2, [r0, #4]
ldrh r2, [r0, #4]
cmp r2, r1
strhih r1, [r0, #4]
ldmia sp!, {r3, pc}
.align 2, 0
arm_func_end func_ov52_021955e4
_02195640: .word data_027e0f74
_02195644: .word data_ov52_02197c40
_02195648: .word 0x00002328
.global func_ov52_0219564c
arm_func_start func_ov52_0219564c
func_ov52_0219564c: ; 0x0219564c
ldr r0, _02195658 ; =data_ov09_0211f5b4
ldrh r0, [r0, #4]
bx lr
.align 2, 0
arm_func_end func_ov52_0219564c
_02195658: .word data_ov09_0211f5b4
.global func_ov52_0219565c
arm_func_start func_ov52_0219565c
func_ov52_0219565c: ; 0x0219565c
stmdb sp!, {r3, lr}
bl func_ov52_0219564c
ldr r3, _02195694 ; =0x88888889
mov r1, r0, lsr #0x1f
smull r2, ip, r3, r0
add ip, r0, ip
add ip, r1, ip, asr #4
smull r0, r1, r3, ip
add r1, ip, r1
mov r0, ip, lsr #0x1f
add r1, r0, r1, asr #5
mov r0, r1, lsl #0x10
mov r0, r0, lsr #0x10
ldmia sp!, {r3, pc}
.align 2, 0
arm_func_end func_ov52_0219565c
_02195694: .word 0x88888889
.global func_ov52_02195698
arm_func_start func_ov52_02195698
func_ov52_02195698: ; 0x02195698
stmdb sp!, {r3, lr}
bl func_ov52_0219564c
ldr r3, _021956dc ; =0x88888889
mov r1, r0, lsr #0x1f
smull r2, ip, r3, r0
add ip, r0, ip
add ip, r1, ip, asr #4
smull r0, r1, r3, ip
add r1, ip, r1
mov r0, ip, lsr #0x1f
add r1, r0, r1, asr #5
mov r2, #0x3c
smull r0, r1, r2, r1
sub r1, ip, r0
mov r0, r1, lsl #0x10
mov r0, r0, lsr #0x10
ldmia sp!, {r3, pc}
.align 2, 0
arm_func_end func_ov52_02195698
_021956dc: .word 0x88888889
.global func_ov52_021956e0
arm_func_start func_ov52_021956e0
func_ov52_021956e0: ; 0x021956e0
stmdb sp!, {r3, lr}
bl func_ov52_0219564c
ldr ip, _0219572c ; =0x88888889
mov r1, r0, lsr #0x1f
smull r2, lr, ip, r0
add lr, r0, lr
add lr, r1, lr, asr #4
mov r3, #0x1e
smull r1, r2, r3, lr
sub lr, r0, r1
mov r0, #0x64
mul r1, lr, r0
smull r0, r2, ip, r1
add r2, r1, r2
mov r0, r1, lsr #0x1f
add r2, r0, r2, asr #4
mov r0, r2, lsl #0x10
mov r0, r0, lsr #0x10
ldmia sp!, {r3, pc}
.align 2, 0
arm_func_end func_ov52_021956e0
_0219572c: .word 0x88888889
.global func_ov52_02195730
arm_func_start func_ov52_02195730
func_ov52_02195730: ; 0x02195730
ldr r1, _0219573c ; =data_ov09_0211f5b4
strh r0, [r1, #4]
bx lr
.align 2, 0
arm_func_end func_ov52_02195730
_0219573c: .word data_ov09_0211f5b4
.global func_ov52_02195740
arm_func_start func_ov52_02195740
func_ov52_02195740: ; 0x02195740
ldr r0, _0219574c ; =data_ov52_02197c40
ldrb r0, [r0, #6]
bx lr
.align 2, 0
arm_func_end func_ov52_02195740
_0219574c: .word data_ov52_02197c40
.global func_ov52_02195750
arm_func_start func_ov52_02195750
func_ov52_02195750: ; 0x02195750
bx lr
arm_func_end func_ov52_02195750
.global func_ov52_02195754
arm_func_start func_ov52_02195754
func_ov52_02195754: ; 0x02195754
ldr r0, _02195760 ; =data_ov52_02197c40
ldr r0, [r0]
bx lr
.align 2, 0
arm_func_end func_ov52_02195754
_02195760: .word data_ov52_02197c40
.global func_ov52_02195764
arm_func_start func_ov52_02195764
func_ov52_02195764: ; 0x02195764
stmdb sp!, {r3, lr}
ldr r1, _0219578c ; =data_027e0ce0
mov r0, #0x24
ldr r1, [r1, #4]
mov r2, #4
bl func_0202e9dc
cmp r0, #0
ldmeqia sp!, {r3, pc}
bl func_ov52_02195790
ldmia sp!, {r3, pc}
.align 2, 0
arm_func_end func_ov52_02195764
_0219578c: .word data_027e0ce0
.global func_ov52_02195790
arm_func_start func_ov52_02195790
func_ov52_02195790: ; 0x02195790
stmdb sp!, {r4, lr}
mov r4, r0
blx func_ov03_020f44d0
ldr r1, _021957e8 ; =data_ov52_021979a8
mvn r0, #0
str r1, [r4]
str r0, [r4, #4]
str r0, [r4, #8]
mov r1, #0
add r0, r4, #0x18
strb r1, [r4, #0xd]
blx func_02030274
ldr r0, _021957ec ; =data_ov52_021979d4
ldr r1, _021957f0 ; =data_ov52_02197c40
str r0, [r4, #0x18]
mov r0, r4
str r4, [r1]
bl func_ov52_02195750
mov r0, r4
bl func_ov52_021958a0
mov r0, r4
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov52_02195790
_021957e8: .word data_ov52_021979a8
_021957ec: .word data_ov52_021979d4
_021957f0: .word data_ov52_02197c40
.global func_ov52_021957f4
arm_func_start func_ov52_021957f4
func_ov52_021957f4: ; 0x021957f4
stmdb sp!, {r4, lr}
mov r4, r0
blx func_02030294
mov r0, r4
ldmia sp!, {r4, pc}
arm_func_end func_ov52_021957f4
.global func_ov52_02195808
arm_func_start func_ov52_02195808
func_ov52_02195808: ; 0x02195808
stmdb sp!, {r4, lr}
mov r4, r0
ldr r1, _02195834 ; =data_ov52_02197c40
mov r2, #0
add r0, r4, #0x18
str r2, [r1]
blx func_02030294
mov r0, r4
blx func_ov03_020f44ec
mov r0, r4
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov52_02195808
_02195834: .word data_ov52_02197c40
.global func_ov52_02195838
arm_func_start func_ov52_02195838
func_ov52_02195838: ; 0x02195838
stmdb sp!, {r4, lr}
mov r4, r0
ldr r1, _0219586c ; =data_ov52_02197c40
mov r2, #0
add r0, r4, #0x18
str r2, [r1]
blx func_02030294
mov r0, r4
blx func_ov03_020f44ec
mov r0, r4
bl func_0202ea0c
mov r0, r4
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov52_02195838
_0219586c: .word data_ov52_02197c40
.global func_ov52_02195870
arm_func_start func_ov52_02195870
func_ov52_02195870: ; 0x02195870
stmdb sp!, {r4, lr}
mov r4, r0
bl func_ov52_02195b5c
ldr r0, _0219589c ; =data_027e0f74
mov r1, #0x100
ldr r0, [r0]
mov r2, #1
bl func_ov00_0209779c
mov r0, #1
strb r0, [r4, #0x12]
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov52_02195870
_0219589c: .word data_027e0f74
.global func_ov52_021958a0
arm_func_start func_ov52_021958a0
func_ov52_021958a0: ; 0x021958a0
stmdb sp!, {r4, lr}
mov r4, r0
bl func_ov52_0219564c
cmp r0, #0
beq _021958c4
bl func_ov52_0219564c
ldr r1, _02195900 ; =0x0000041a
cmp r0, r1
bls _021958cc
_021958c4:
ldr r0, _02195900 ; =0x0000041a
bl func_ov52_02195730
_021958cc:
mov r1, #0
strb r1, [r4, #0x10]
ldr r0, _02195904 ; =data_ov52_02197c40
strb r1, [r4, #0x14]
strh r1, [r0, #4]
strb r1, [r0, #6]
strb r1, [r4, #0x20]
strh r1, [r4, #0xe]
strb r1, [r4, #0xd]
strb r1, [r4, #0x12]
strb r1, [r4, #0x11]
strb r1, [r4, #0x13]
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov52_021958a0
_02195900: .word 0x0000041a
_02195904: .word data_ov52_02197c40
.global func_ov52_02195908
arm_func_start func_ov52_02195908
func_ov52_02195908: ; 0x02195908
stmdb sp!, {r4, lr}
sub sp, sp, #0x18
ldr r1, _02195a04 ; =data_027e0f74
mov r4, r0
ldr r0, [r1]
mov r1, #0x100
mov r2, #0
bl func_ov00_0209779c
mov r0, r4
bl func_ov52_021958a0
mov r2, #1
strb r2, [r4, #0x13]
mov r3, #0
ldr r0, _02195a08 ; =data_027e0e60
strb r3, [r4, #0xc]
ldr r0, [r0]
mov r1, #0x1e
bl func_ov00_02084b38
mov r1, #0
ldr r0, _02195a08 ; =data_027e0e60
str r1, [sp, #4]
str r1, [sp, #8]
strh r1, [sp, #0x10]
strb r1, [sp, #0x13]
strb r1, [sp, #0x14]
strb r1, [sp, #0x15]
sub r1, r1, #2
str r1, [sp, #0xc]
mov r1, #0x47
str r1, [sp]
mov r1, #0xff
strb r1, [sp, #0x12]
ldr r0, [r0]
add r2, sp, #0
mov r1, #2
bl func_ov00_020838e8
ldr r0, _02195a0c ; =data_027e0900
ldr r2, _02195a10 ; =0x00000004
mov r1, #2
blx func_0202ff64
ldr r0, _02195a08 ; =data_027e0e60
add r1, sp, #0
ldr r0, [r0]
bl func_ov00_02082b3c
ldr r0, _02195a0c ; =data_027e0900
ldr r2, _02195a14 ; =0x00000005
mov r1, #2
blx func_0202ff64
ldr r1, _02195a18 ; =data_027e0fb8
mov r2, #0
ldr r3, [r1]
ldr r0, _02195a1c ; =data_027e103c
strb r2, [r3, #0x7a]
ldr r0, [r0]
mov r1, #1
bl func_ov00_020cfa24
ldr r0, _02195a1c ; =data_027e103c
mov r1, #1
ldr r0, [r0]
mov r2, #0
bl func_ov00_020cfa70
add sp, sp, #0x18
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov52_02195908
_02195a04: .word data_027e0f74
_02195a08: .word data_027e0e60
_02195a0c: .word data_027e0900
_02195a10: .word 0x00000004
_02195a14: .word 0x00000005
_02195a18: .word data_027e0fb8
_02195a1c: .word data_027e103c
.global func_ov52_02195a20
arm_func_start func_ov52_02195a20
func_ov52_02195a20: ; 0x02195a20
stmdb sp!, {r3, r4, r5, lr}
sub sp, sp, #0x18
mov r5, r0
bl func_ov52_02195500
mov r4, r0
bl func_ov52_0219564c
cmp r4, r0
bhs _02195a60
ldrb r0, [r5, #0x12]
cmp r0, #0
bne _02195a60
bl func_ov52_02195500
bl func_ov52_02195730
ldr r0, _02195b34 ; =data_ov52_02197c40
mov r1, #1
strb r1, [r0, #6]
_02195a60:
mov r4, #0
strb r4, [r5, #0x13]
mov lr, #0x47
ldr r0, _02195b38 ; =data_027e0e60
sub ip, lr, #0x49
mov r3, #0xff
ldr r0, [r0]
add r2, sp, #0
mov r1, #2
str lr, [sp]
str r4, [sp, #4]
str r4, [sp, #8]
str ip, [sp, #0xc]
strh r4, [sp, #0x10]
strb r3, [sp, #0x12]
strb r4, [sp, #0x13]
strb r4, [sp, #0x14]
strb r4, [sp, #0x15]
bl func_ov00_020838e8
ldr r0, _02195b3c ; =data_027e0900
ldr r2, _02195b40 ; =0x00000004
mov r1, #2
blx func_0202ff64
ldr r0, _02195b38 ; =data_027e0e60
add r1, sp, #0
ldr r0, [r0]
bl func_ov00_02082b3c
ldr r0, _02195b3c ; =data_027e0900
ldr r2, _02195b44 ; =0x00000005
mov r1, #2
blx func_0202ff64
ldr r0, _02195b48 ; =data_027e0fb8
mov r1, r4
ldr r3, [r0]
ldr r0, _02195b4c ; =data_ov52_02197c6c
ldr r2, _02195b50 ; =data_ov52_02197c68
str r1, [r0]
ldr r0, _02195b54 ; =data_ov52_02197c70
str r1, [r2]
str r1, [r0]
mov r2, #1
strb r2, [r3, #0x7a]
ldr r0, _02195b58 ; =data_027e103c
mov r2, r1
ldr r0, [r0]
bl func_ov00_020cfa24
ldr r0, _02195b58 ; =data_027e103c
mov r1, r4
ldr r0, [r0]
mov r2, r1
bl func_ov00_020cfa70
add sp, sp, #0x18
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov52_02195a20
_02195b34: .word data_ov52_02197c40
_02195b38: .word data_027e0e60
_02195b3c: .word data_027e0900
_02195b40: .word 0x00000004
_02195b44: .word 0x00000005
_02195b48: .word data_027e0fb8
_02195b4c: .word data_ov52_02197c6c
_02195b50: .word data_ov52_02197c68
_02195b54: .word data_ov52_02197c70
_02195b58: .word data_027e103c
.global func_ov52_02195b5c
arm_func_start func_ov52_02195b5c
func_ov52_02195b5c: ; 0x02195b5c
stmdb sp!, {r4, lr}
ldr r1, _02195ba8 ; =data_027e0e60
mov r4, r0
ldr r0, [r1]
mov r1, #0x1f
mov r2, #1
mov r3, #0
bl func_ov00_02084b38
ldr r0, _02195ba8 ; =data_027e0e60
mov r1, #0x1e
ldr r0, [r0]
mov r2, #1
mov r3, #0
bl func_ov00_02084b38
ldr r0, _02195bac ; =data_ov09_0211f5b4
blx func_ov03_020f4048
mov r0, #2
strb r0, [r4, #0xc]
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov52_02195b5c
_02195ba8: .word data_027e0e60
_02195bac: .word data_ov09_0211f5b4
.global func_ov52_02195bb0
arm_func_start func_ov52_02195bb0
func_ov52_02195bb0: ; 0x02195bb0
stmdb sp!, {r4, lr}
mov r4, r0
cmp r1, #0
ldmneia sp!, {r4, pc}
ldrb r0, [r4, #0xc]
cmp r0, #3
addls pc, pc, r0, lsl #2
b _02195ca4
_02195bd0: ; jump table
b _02195be0 ; case 0
b _02195c20 ; case 1
b _02195ca4 ; case 2
b _02195ca0 ; case 3
_02195be0:
ldr r0, _02195d14 ; =data_ov52_02197c70
ldr r0, [r0]
cmp r0, #0
bne _02195ca4
ldr r0, _02195d18 ; =data_ov00_020eec9c
ldr r1, _02195d1c ; =0x000003fd
bl func_ov00_020d77e4
ldr r0, _02195d20 ; =data_027e0e60
mov r2, #1
ldr r0, [r0]
mov r3, r2
mov r1, #0x1f
bl func_ov00_02084b38
mov r0, #1
strb r0, [r4, #0xc]
b _02195ca4
_02195c20:
ldr r0, _02195d20 ; =data_027e0e60
mov r1, #5
ldr r0, [r0]
mov r2, #0
bl func_ov00_020836dc
cmp r0, #0
beq _02195ca4
ldrb r0, [r4, #0x11]
cmp r0, #0
bne _02195c5c
bl func_ov03_020fb44c
bl func_ov03_020fb654
mov r0, #1
strb r0, [r4, #0xd]
strb r0, [r4, #0x11]
_02195c5c:
bl func_ov03_020fb44c
ldr r0, [r0, #0x130]
cmp r0, #6
ldmneia sp!, {r4, pc}
ldr r0, _02195d24 ; =data_027e0f74
ldr r0, [r0]
bl func_ov00_02097738
cmp r0, #0
ldmneia sp!, {r4, pc}
ldr r0, _02195d20 ; =data_027e0e60
mov r2, #1
ldr r0, [r0]
mov r3, r2
mov r1, #0x1e
bl func_ov00_02084b38
mov r0, #3
strb r0, [r4, #0xc]
_02195ca0:
ldmia sp!, {r4, pc}
_02195ca4:
ldrb r0, [r4, #0x11]
cmp r0, #0
bne _02195cc8
bl func_ov03_020fb44c
ldr r0, [r0, #0x130]
cmp r0, #0
bne _02195cc8
mov r0, r4
bl func_ov52_021955e4
_02195cc8:
mov r0, r4
bl func_ov52_02195d2c
cmp r0, #0
beq _02195ce8
mov r0, r4
bl func_ov52_02195b5c
mov r0, #1
strb r0, [r4, #0x10]
_02195ce8:
ldrb r0, [r4, #0x14]
cmp r0, #0
ldmneia sp!, {r4, pc}
mov r0, #1
strb r0, [r4, #0x14]
bl func_ov03_020fb44c
bl func_ov03_020fb5cc
ldr r0, _02195d28 ; =data_ov00_020eec68
mov r1, #0
bl func_ov00_020d716c
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov52_02195bb0
_02195d14: .word data_ov52_02197c70
_02195d18: .word data_ov00_020eec9c
_02195d1c: .word 0x000003fd
_02195d20: .word data_027e0e60
_02195d24: .word data_027e0f74
_02195d28: .word data_ov00_020eec68
.global func_ov52_02195d2c
arm_func_start func_ov52_02195d2c
func_ov52_02195d2c: ; 0x02195d2c
stmdb sp!, {r4, lr}
mov r4, r0
bl func_ov52_02195500
ldr r1, _02195d90 ; =0x00002328
cmp r0, r1
blo _02195d88
ldrb r0, [r4, #0x20]
cmp r0, #0
bne _02195d70
ldr r0, _02195d94 ; =data_027e0c68
ldr r1, _02195d98 ; =0x001e0013
mvn r2, #0
bl func_02036edc
mov r0, #1
strb r0, [r4, #0x20]
mov r0, #0
ldmia sp!, {r4, pc}
_02195d70:
ldr r0, _02195d94 ; =data_027e0c68
bl func_020367ec
cmp r0, #0
moveq r0, #1
movne r0, #0
ldmia sp!, {r4, pc}
_02195d88:
mov r0, #0
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov52_02195d2c
_02195d90: .word 0x00002328
_02195d94: .word data_027e0c68
_02195d98: .word 0x001e0013
.global func_ov52_02195d9c
arm_func_start func_ov52_02195d9c
func_ov52_02195d9c: ; 0x02195d9c
bx lr
arm_func_end func_ov52_02195d9c
.global func_ov52_02195da0
arm_func_start func_ov52_02195da0
func_ov52_02195da0: ; 0x02195da0
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, lr}
sub sp, sp, #0x3c
ldr r2, _02196104 ; =data_027e0618
mov sb, r0
ldrb r0, [r2, #0x101]
mov r4, r1
cmp r0, #0
addne sp, sp, #0x3c
ldmneia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, pc}
ldr r0, _02196108 ; =data_027e0f74
ldr r0, [r0]
bl func_ov00_02097738
cmp r0, #0
beq _02195dec
bl func_ov03_020fb44c
ldr r0, [r0, #0x130]
cmp r0, #0
addeq sp, sp, #0x3c
ldmeqia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, pc}
_02195dec:
ldrh r0, [r4]
tst r0, #2
addeq sp, sp, #0x3c
ldmeqia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, pc}
add r0, sp, #0x1c
bl func_01ffbe34
mov r1, #0
str r1, [sp]
str r1, [sp, #4]
mov r2, #0x6b
str r2, [sp, #8]
mov r0, #0x13
str r0, [sp, #0xc]
str r1, [sp, #0x10]
str r1, [sp, #0x14]
str r1, [sp, #0x18]
ldr r0, _0219610c ; =data_ov52_02197c70
mov r1, #2
ldr r0, [r0]
mov r3, #0x12
bl func_02034bc8
add r0, sp, #0x1c
mov r2, #0
str r0, [sp]
mov r3, r2
mov r0, #0x6b
mov r1, #0x10
bl func_0203493c
ldrb r0, [sb, #0xd]
mov r4, #1
mov r6, #6
cmp r0, #0
mov r7, #7
mov r5, #0x13
mov r8, #0
beq _02195ef4
bl func_ov52_0219564c
mov sl, r0
bl func_ov52_02195500
cmp sl, r0
bls _02195ea0
mov r5, #0x1f
mov r6, #0xe
mov r7, #0xf
mov r8, r4
_02195ea0:
ldrsh r0, [sb, #0xe]
add r0, r0, #1
strh r0, [sb, #0xe]
ldrsh r0, [sb, #0xe]
cmp r0, #0xa
ble _02195eec
cmp r0, #0xb
bne _02195ed4
cmp r8, #0
beq _02195ed4
ldr r0, _02196110 ; =data_ov00_020eec9c
mov r1, #0xc0
bl func_ov00_020d77e4
_02195ed4:
ldrsh r0, [sb, #0xe]
mov r4, #1
cmp r0, #0x22
movgt r0, #0
strgth r0, [sb, #0xe]
b _02195ef4
_02195eec:
cmp r0, #0
movge r4, #0
_02195ef4:
mov r1, #0
add r8, sp, #0x1c
mov r2, r1
mov r3, r1
mov r0, #0x6b
str r8, [sp]
bl func_0203493c
cmp r4, #0
beq _02195ff8
bl func_ov52_02195510
mov r4, #0
str r4, [sp]
mov r1, #1
str r4, [sp, #4]
mov r2, #0x6b
str r2, [sp, #8]
str r5, [sp, #0xc]
str r4, [sp, #0x10]
str r1, [sp, #0x14]
mov r3, r1
str r4, [sp, #0x18]
bl func_02034bc8
mov r3, r4
mov r4, r8
mov r1, r6
mov r0, #0x6b
mov r2, #6
stmia sp, {r3, r4}
bl func_020349cc
bl func_ov52_0219554c
mov r3, #0
str r3, [sp]
str r3, [sp, #4]
mov r2, #0x6b
str r2, [sp, #8]
str r5, [sp, #0xc]
str r3, [sp, #0x10]
mov r1, #1
str r1, [sp, #0x14]
str r3, [sp, #0x18]
mov r1, #2
mov r3, #3
bl func_02034bc8
mov r3, #0
str r3, [sp]
mov r2, r8
str r2, [sp, #4]
mov r1, r7
mov r0, #0x6b
mov r2, #7
bl func_020349cc
bl func_ov52_02195594
mov r3, #0
str r3, [sp]
str r3, [sp, #4]
mov r2, #0x6b
str r2, [sp, #8]
str r5, [sp, #0xc]
str r3, [sp, #0x10]
mov r1, #1
str r1, [sp, #0x14]
str r3, [sp, #0x18]
mov r1, #2
mov r3, #5
bl func_02034bc8
_02195ff8:
mov r2, #0
add r4, sp, #0x1c
mov r3, r2
mov r0, #0x6b
mov r1, #8
str r4, [sp]
bl func_0203493c
bl func_ov52_0219565c
mov r4, #0
str r4, [sp]
str r4, [sp, #4]
mov r2, #0x6b
str r2, [sp, #8]
mov r1, #0x1f
str r1, [sp, #0xc]
str r4, [sp, #0x10]
mov r1, #1
str r1, [sp, #0x14]
mov r3, #9
str r4, [sp, #0x18]
bl func_02034bc8
add r0, sp, #0x1c
mov r2, r4
str r0, [sp]
mov r3, r2
mov r0, #0x6b
mov r1, #0xe
bl func_0203493c
bl func_ov52_02195698
mov r3, r4
str r3, [sp]
str r3, [sp, #4]
mov r2, #0x6b
str r2, [sp, #8]
mov r1, #0x1f
str r1, [sp, #0xc]
str r3, [sp, #0x10]
mov r1, #1
str r1, [sp, #0x14]
str r3, [sp, #0x18]
mov r1, #2
mov r3, #0xb
bl func_02034bc8
add r1, sp, #0x1c
mov r2, r4
str r1, [sp]
mov r0, #0x6b
mov r1, #0xf
mov r3, r2
bl func_0203493c
bl func_ov52_021956e0
mov r3, r4
str r3, [sp]
str r3, [sp, #4]
mov r2, #0x6b
str r2, [sp, #8]
mov r1, #0x1f
str r1, [sp, #0xc]
str r3, [sp, #0x10]
mov r1, #1
str r1, [sp, #0x14]
str r3, [sp, #0x18]
mov r1, #2
mov r3, #0xd
bl func_02034bc8
add sp, sp, #0x3c
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, pc}
.align 2, 0
arm_func_end func_ov52_02195da0
_02196104: .word data_027e0618
_02196108: .word data_027e0f74
_0219610c: .word data_ov52_02197c70
_02196110: .word data_ov00_020eec9c
.global func_ov52_02196114
arm_func_start func_ov52_02196114
func_ov52_02196114: ; 0x02196114
mov r0, #0
bx lr
arm_func_end func_ov52_02196114
.global func_ov52_0219611c
arm_func_start func_ov52_0219611c
func_ov52_0219611c: ; 0x0219611c
stmdb sp!, {r3, r4, r5, r6, lr}
sub sp, sp, #0x14
mov r1, #4
str r1, [sp]
ldr r0, _02196194 ; =data_027e0f68
add r3, sp, #4
ldr r0, [r0]
mov r1, #0x87
mov r2, #0
bl func_ov00_0208d01c
movs r5, r0
mov r6, #0
beq _02196188
add r4, sp, #4
_02196154:
ldr r0, [r4, r6, lsl #2]
cmp r0, #0
beq _0219617c
ldr r1, [r0]
ldr r1, [r1, #0x9c]
blx r1
cmp r0, #0
addne sp, sp, #0x14
movne r0, #1
ldmneia sp!, {r3, r4, r5, r6, pc}
_0219617c:
add r6, r6, #1
cmp r6, r5
blo _02196154
_02196188:
mov r0, #0
add sp, sp, #0x14
ldmia sp!, {r3, r4, r5, r6, pc}
.align 2, 0
arm_func_end func_ov52_0219611c
_02196194: .word data_027e0f68
.global func_ov52_02196198
arm_func_start func_ov52_02196198
func_ov52_02196198: ; 0x02196198
stmdb sp!, {r4, r5, lr}
sub sp, sp, #0xc
bl func_ov52_02195500
ldr r1, _021963f8 ; =0x0000041a
cmp r0, r1
bhi _02196294
ldr r0, _021963fc ; =data_027e0f74
ldr r1, _02196400 ; =0x0000011d
ldr r0, [r0]
bl func_ov00_02097760
cmp r0, #0
bne _021961e4
ldr r0, _021963fc ; =data_027e0f74
ldr r1, _02196400 ; =0x0000011d
ldr r0, [r0]
mov r2, #1
bl func_ov00_0209779c
mov r4, #0x2a
b _021963a4
_021961e4:
bl func_ov52_02195740
cmp r0, #0
mov r1, #0
beq _02196244
ldr r2, _02196404 ; =data_027e0764
ldr r3, [r2]
ldmib r2, {r0, r4}
umull ip, r5, r4, r3
mla r5, r4, r0, r5
ldr r0, [r2, #0xc]
ldr r4, [r2, #0x10]
mla r5, r0, r3, r5
ldr r0, [r2, #0x14]
adds ip, r4, ip
adc r5, r0, r5
mov r0, #3
umull r3, r4, r5, r0
mla r4, r5, r1, r4
mla r4, r1, r0, r4
ldr r0, _02196408 ; =data_ov52_02197888
str ip, [r2]
str r5, [r2, #4]
ldr r4, [r0, r4, lsl #2]
b _021963a4
_02196244:
ldr r2, _02196404 ; =data_027e0764
ldr r3, [r2]
ldmib r2, {r0, r4}
umull ip, r5, r4, r3
mla r5, r4, r0, r5
ldr r0, [r2, #0xc]
ldr r4, [r2, #0x10]
mla r5, r0, r3, r5
ldr r0, [r2, #0x14]
adds ip, r4, ip
adc r5, r0, r5
mov r0, #3
umull r3, r4, r5, r0
mla r4, r5, r1, r4
mla r4, r1, r0, r4
ldr r0, _0219640c ; =data_ov52_02197894
str ip, [r2]
str r5, [r2, #4]
ldr r4, [r0, r4, lsl #2]
b _021963a4
_02196294:
bl func_ov52_02195500
ldr r1, _02196410 ; =0x00000546
cmp r0, r1
bhi _02196354
bl func_ov52_02195740
cmp r0, #0
mov r1, #0
beq _02196304
ldr r2, _02196404 ; =data_027e0764
ldr r3, [r2]
ldmib r2, {r0, r4}
umull ip, r5, r4, r3
mla r5, r4, r0, r5
ldr r0, [r2, #0xc]
ldr r4, [r2, #0x10]
mla r5, r0, r3, r5
ldr r0, [r2, #0x14]
adds ip, r4, ip
adc r5, r0, r5
mov r0, #3
umull r3, r4, r5, r0
mla r4, r5, r1, r4
mla r4, r1, r0, r4
ldr r0, _02196414 ; =data_ov52_021978a0
str ip, [r2]
str r5, [r2, #4]
ldr r4, [r0, r4, lsl #2]
b _021963a4
_02196304:
ldr r2, _02196404 ; =data_027e0764
ldr r3, [r2]
ldmib r2, {r0, r4}
umull ip, r5, r4, r3
mla r5, r4, r0, r5
ldr r0, [r2, #0xc]
ldr r4, [r2, #0x10]
mla r5, r0, r3, r5
ldr r0, [r2, #0x14]
adds ip, r4, ip
adc r5, r0, r5
mov r0, #3
umull r3, r4, r5, r0
mla r4, r5, r1, r4
mla r4, r1, r0, r4
ldr r0, _02196418 ; =data_ov52_021978ac
str ip, [r2]
str r5, [r2, #4]
ldr r4, [r0, r4, lsl #2]
b _021963a4
_02196354:
ldr r2, _02196404 ; =data_027e0764
mov r1, #0
ldr r3, [r2]
ldmib r2, {r0, ip}
umull r4, lr, ip, r3
mla lr, ip, r0, lr
ldr r0, [r2, #0xc]
ldr ip, [r2, #0x10]
mla lr, r0, r3, lr
ldr r0, [r2, #0x14]
adds r5, ip, r4
adc r4, r0, lr
mov r0, #3
umull r3, ip, r4, r0
mla ip, r4, r1, ip
mla ip, r1, r0, ip
str r5, [r2]
ldr r0, _0219641c ; =data_ov52_021978b8
str r4, [r2, #4]
ldr r4, [r0, ip, lsl #2]
_021963a4:
cmp r4, #0x30
bne _021963c4
add r0, sp, #8
blx func_ov09_0211c808
ldr r0, [sp, #8]
add r4, r0, #0x30
blx func_ov09_0211cac0
b _021963ec
_021963c4:
cmp r4, #0x2b
bne _021963ec
add r1, sp, #4
add r2, sp, #0
mov r0, #0xff
mov r3, #0
blx func_ov09_0211c724
ldr r0, [sp, #4]
ldr r1, [sp]
blx func_ov09_0211ca20
_021963ec:
mov r0, r4
add sp, sp, #0xc
ldmia sp!, {r4, r5, pc}
.align 2, 0
arm_func_end func_ov52_02196198
_021963f8: .word 0x0000041a
_021963fc: .word data_027e0f74
_02196400: .word 0x0000011d
_02196404: .word data_027e0764
_02196408: .word data_ov52_02197888
_0219640c: .word data_ov52_02197894
_02196410: .word 0x00000546
_02196414: .word data_ov52_021978a0
_02196418: .word data_ov52_021978ac
_0219641c: .word data_ov52_021978b8
.global func_ov52_02196420
arm_func_start func_ov52_02196420
func_ov52_02196420: ; 0x02196420
stmdb sp!, {r3, lr}
ldrh r0, [r1, #4]
cmp r0, #0
bne _02196470
bl func_ov52_02195500
ldr r1, _02196478 ; =0x00002328
cmp r0, r1
movhs r0, #3
ldmhsia sp!, {r3, pc}
bl func_ov52_02195500
ldr r1, _0219647c ; =0x0000041a
cmp r0, r1
movls r0, #0
ldmlsia sp!, {r3, pc}
bl func_ov52_02195500
ldr r1, _02196480 ; =0x00000528
cmp r0, r1
movls r0, #1
movhi r0, #2
ldmia sp!, {r3, pc}
_02196470:
mvn r0, #0
ldmia sp!, {r3, pc}
.align 2, 0
arm_func_end func_ov52_02196420
_02196478: .word 0x00002328
_0219647c: .word 0x0000041a
_02196480: .word 0x00000528
.global func_ov52_02196484
arm_func_start func_ov52_02196484
func_ov52_02196484: ; 0x02196484
stmdb sp!, {r3, lr}
ldrh r0, [r1, #4]
cmp r0, #0
bne _021964b4
bl func_ov52_02195500
ldr r1, _021964bc ; =0x00000708
cmp r0, r1
movls r0, #1
movhi r0, #0
mov r0, r0, lsl #0x18
mov r0, r0, asr #0x18
ldmia sp!, {r3, pc}
_021964b4:
mvn r0, #0
ldmia sp!, {r3, pc}
.align 2, 0
arm_func_end func_ov52_02196484
_021964bc: .word 0x00000708
.global func_ov52_021964c0
arm_func_start func_ov52_021964c0
func_ov52_021964c0: ; 0x021964c0
stmdb sp!, {r3, lr}
ldrh r0, [r1, #4]
cmp r0, #0
bne _021964ec
bl func_ov52_02195740
cmp r0, #0
moveq r0, #1
movne r0, #0
mov r0, r0, lsl #0x18
mov r0, r0, asr #0x18
ldmia sp!, {r3, pc}
_021964ec:
mvn r0, #0
ldmia sp!, {r3, pc}
arm_func_end func_ov52_021964c0
.global func_ov52_021964f4
arm_func_start func_ov52_021964f4
func_ov52_021964f4: ; 0x021964f4
stmdb sp!, {r4, lr}
mov r4, r0
blx func_02030294
mov r0, r4
bl func_0202ea0c
mov r0, r4
ldmia sp!, {r4, pc}
arm_func_end func_ov52_021964f4
.global func_ov52_02196510
arm_func_start func_ov52_02196510
func_ov52_02196510: ; 0x02196510
stmdb sp!, {r3, lr}
ldr r1, _0219653c ; =data_027e0fe0
mov r0, #0x264
ldr r1, [r1]
mov r2, #4
ldr r1, [r1]
bl func_0202e9dc
cmp r0, #0
ldmeqia sp!, {r3, pc}
bl func_ov52_02196540
ldmia sp!, {r3, pc}
.align 2, 0
arm_func_end func_ov52_02196510
_0219653c: .word data_027e0fe0
.global func_ov52_02196540
arm_func_start func_ov52_02196540
func_ov52_02196540: ; 0x02196540
stmdb sp!, {r4, lr}
mov r4, r0
bl func_ov00_020c1554
ldr r0, _021965f4 ; =data_ov52_02197a2c
mov r1, #0
str r0, [r4]
str r1, [r4, #0x158]
ldr r0, _021965f8 ; =data_027e0fec
str r1, [r4, #0x15c]
ldr r0, [r0]
add r0, r0, #0xe8
add r0, r0, #0x2800
bl func_ov00_020c4588
mov r1, r0
add r0, r4, #0x160
blx func_ov00_020a9588
mov r1, #0
str r1, [r4, #0x1ec]
strb r1, [r4, #0x1f0]
add r0, r4, #0x1f4
strb r1, [r4, #0x1f1]
bl func_ov00_020c66bc
ldr r0, _021965f8 ; =data_027e0fec
ldr r0, [r0]
add r0, r0, #0xe8
add r0, r0, #0x2800
bl func_ov00_020c4588
mov r2, r0
add r0, r4, #0x210
add r1, r4, #0x234
blx func_ov00_020c0c08
ldr r0, _021965fc ; =data_ov52_02197ae8
ldr r1, _02196600 ; =data_ov52_02197c48
str r0, [r4, #0x210]
mov r0, r4
ldr r2, [r1, #0x20]
add r2, r2, #1
str r2, [r1, #0x20]
ldr r2, [r1, #0x24]
add r2, r2, #1
str r2, [r1, #0x24]
ldr r2, [r1, #0x28]
add r2, r2, #1
str r2, [r1, #0x28]
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov52_02196540
_021965f4: .word data_ov52_02197a2c
_021965f8: .word data_027e0fec
_021965fc: .word data_ov52_02197ae8
_02196600: .word data_ov52_02197c48
.global func_ov52_02196604
arm_func_start func_ov52_02196604
func_ov52_02196604: ; 0x02196604
stmdb sp!, {r4, lr}
mov r4, r0
add r0, r4, #0x210
blx func_ov00_020a9acc
add r0, r4, #0x1f4
bl func_ov00_020c66d0
add r0, r4, #0x160
blx func_ov00_020a95a4
mov r0, r4
bl func_ov00_020c1730
mov r0, r4
ldmia sp!, {r4, pc}
arm_func_end func_ov52_02196604
.global func_ov52_02196634
arm_func_start func_ov52_02196634
func_ov52_02196634: ; 0x02196634
stmdb sp!, {r4, lr}
mov r4, r0
add r0, r4, #0x210
blx func_ov00_020a9acc
add r0, r4, #0x1f4
bl func_ov00_020c66d0
add r0, r4, #0x160
blx func_ov00_020a95a4
mov r0, r4
bl func_ov00_020c1730
mov r0, r4
bl func_0202ea0c
mov r0, r4
ldmia sp!, {r4, pc}
arm_func_end func_ov52_02196634
.global func_ov52_0219666c
arm_func_start func_ov52_0219666c
func_ov52_0219666c: ; 0x0219666c
stmdb sp!, {r4, lr}
ldr r1, _02196738 ; =0x00001333
mov r4, r0
str r1, [r4, #0x1e0]
str r1, [r4, #0x1e4]
add r0, r4, #0x1bc
str r1, [r4, #0x1e8]
bl func_01ff80d4
mov r1, #0
ldr lr, _0219673c ; =0x00000ccd
str r1, [r4, #0x7c]
str lr, [r4, #0x80]
str r1, [r4, #0x84]
str lr, [r4, #0x88]
ldr r0, [r4, #0x7c]
add r3, lr, #0x1000
str r0, [r4, #0x8c]
ldr r2, [r4, #0x80]
mov r0, r4
str r2, [r4, #0x90]
ldr ip, [r4, #0x84]
mov r2, r1
str ip, [r4, #0x94]
ldr ip, [r4, #0x88]
str ip, [r4, #0x98]
str r1, [r4, #0xa8]
str lr, [r4, #0xac]
str r1, [r4, #0xb0]
str r3, [r4, #0xb4]
strh r1, [r4, #0x9c]
bl func_ov52_021969d4
ldrsb r0, [r4, #0x2c]
cmp r0, #0
mov r0, r4
blt _02196704
mov r1, #1
bl func_ov52_02196a80
b _0219670c
_02196704:
mov r1, #0
bl func_ov52_02196a80
_0219670c:
mov r0, #2
str r0, [r4, #0x12c]
mov r0, #0x2f
strh r0, [r4, #0x7a]
mov r1, #0
str r1, [r4, #0x15c]
str r1, [r4, #0x158]
mov r0, r4
str r1, [r4, #0x6c]
bl func_ov00_020c1734
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov52_0219666c
_02196738: .word 0x00001333
_0219673c: .word 0x00000ccd
.global func_ov52_02196740
arm_func_start func_ov52_02196740
func_ov52_02196740: ; 0x02196740
stmdb sp!, {r3, r4, r5, lr}
sub sp, sp, #0x20
mov r5, r0
mov r4, r1
bl func_ov00_020c313c
cmp r0, #0
bne _02196768
ldr r0, [r5, #0x1ec]
cmp r0, #1
bne _02196890
_02196768:
ldr r1, [r5, #0x48]
mov r0, r5
str r1, [r5, #0x54]
ldr r1, [r5, #0x4c]
str r1, [r5, #0x58]
ldr r1, [r5, #0x50]
str r1, [r5, #0x5c]
bl func_ov00_020c1cf8
ldr r0, [r5, #0x154]
cmp r0, #0
ldrne r0, [r5, #0x1ec]
cmpne r0, #1
bne _02196890
mov r2, #0
str r2, [sp, #0x18]
str r2, [sp, #0xc]
str r2, [sp, #0x10]
str r2, [sp, #0x14]
ldr r1, [r5, #0x88]
mov r0, r1, lsl #0x1
str r2, [sp, #0xc]
str r1, [sp, #0x10]
str r2, [sp, #0x14]
str r1, [sp, #0x18]
str r0, [sp, #0x1c]
ldr r0, [r5, #0x1ec]
cmp r0, #0
beq _021967ec
cmp r0, #1
beq _02196860
cmp r0, #2
beq _02196874
b _02196888
_021967ec:
mov r0, r5
bl func_ov52_0219699c
ldr r0, _021968a8 ; =data_027e0fa0
bl func_01ff9cec
ldr r1, _021968ac ; =0x0000019a
cmp r0, r1
ble _0219682c
mov r0, r5
bl func_ov00_020c28d4
ldr r1, _021968b0 ; =0x0000099a
cmp r0, r1
bge _02196888
mov r0, r5
mov r1, #2
bl func_ov52_02196a80
b _02196888
_0219682c:
add r1, sp, #0xc
mov r0, #3
str r1, [sp]
str r0, [sp, #4]
sub r1, r0, #4
str r1, [sp, #8]
ldr r0, _021968b4 ; =data_027e0ff8
add r1, r5, #8
ldr r0, [r0]
add r2, r5, #0x48
add r3, r5, #0x54
bl func_ov05_021082e4
b _02196888
_02196860:
mov r0, r5
bl func_ov52_02196914
mov r0, r5
bl func_ov52_0219699c
b _02196888
_02196874:
ldr r0, [r5, #0x158]
sub r0, r0, #1
str r0, [r5, #0x158]
cmp r0, #0
strleb r2, [r5, #0x118]
_02196888:
add r0, r5, #0x210
bl func_ov00_020c0e04
_02196890:
mov r1, r4
add r0, r5, #0xa4
add r2, r5, #0x48
bl func_ov00_0207a1c8
add sp, sp, #0x20
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov52_02196740
_021968a8: .word data_027e0fa0
_021968ac: .word 0x0000019a
_021968b0: .word 0x0000099a
_021968b4: .word data_027e0ff8
.global func_ov52_021968b8
arm_func_start func_ov52_021968b8
func_ov52_021968b8: ; 0x021968b8
ldr ip, _021968c0 ; =func_ov00_020c17bc
bx ip
.align 2, 0
arm_func_end func_ov52_021968b8
_021968c0: .word func_ov00_020c17bc
.global func_ov52_021968c4
arm_func_start func_ov52_021968c4
func_ov52_021968c4: ; 0x021968c4
stmdb sp!, {r3, r4, lr}
sub sp, sp, #0xc
mov r4, r0
str r2, [sp]
add r0, r4, #0x60
str r0, [sp, #4]
add r0, r4, #0x260
str r0, [sp, #8]
add r0, r4, #0x200
ldrsh r3, [r0, #0x60]
mov r2, r1
add r0, r4, #0x1f4
add r1, r4, #0x48
bl func_ov00_020c6838
add r0, r4, #0x48
add r1, r4, #0x60
mov r2, r0
bl func_01ff9bc4
add sp, sp, #0xc
ldmia sp!, {r3, r4, pc}
arm_func_end func_ov52_021968c4
.global func_ov52_02196914
arm_func_start func_ov52_02196914
func_ov52_02196914: ; 0x02196914
stmdb sp!, {r4, lr}
mov r4, r0
bl func_ov00_020c28d4
ldr r1, _0219696c ; =0x0000099a
cmp r0, r1
bge _02196938
mov r0, r4
mov r1, #2
bl func_ov52_02196a80
_02196938:
ldr r1, _02196970 ; =0x00000153
ldr r2, _02196974 ; =0x00000aab
mov r0, r4
str r1, [r4, #0x20c]
bl func_ov52_021968c4
add r0, r4, #0x1f4
add r1, r4, #0x48
bl func_ov00_020c6794
cmp r0, #0
ldmeqia sp!, {r4, pc}
add r0, r4, #0x1f4
bl func_ov00_020c6788
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov52_02196914
_0219696c: .word 0x0000099a
_02196970: .word 0x00000153
_02196974: .word 0x00000aab
.global func_ov52_02196978
arm_func_start func_ov52_02196978
func_ov52_02196978: ; 0x02196978
stmdb sp!, {r3, lr}
ldr r1, [r1, #0x10]
cmp r1, #9
movne r0, #0
ldmneia sp!, {r3, pc}
mov r1, #2
bl func_ov52_02196a80
mov r0, #1
ldmia sp!, {r3, pc}
arm_func_end func_ov52_02196978
.global func_ov52_0219699c
arm_func_start func_ov52_0219699c
func_ov52_0219699c: ; 0x0219699c
stmdb sp!, {r4, lr}
mov r4, r0
ldrb r1, [r4, #0x1f0]
cmp r1, #1
ldmneia sp!, {r4, pc}
mov r1, #0x1a
bl func_ov00_020c1fc8
cmp r0, #0
ldmneia sp!, {r4, pc}
mov r1, #0
mov r0, r4
mov r2, r1
bl func_ov00_020c243c
ldmia sp!, {r4, pc}
arm_func_end func_ov52_0219699c
.global func_ov52_021969d4
arm_func_start func_ov52_021969d4
func_ov52_021969d4: ; 0x021969d4
stmdb sp!, {r3, r4, r5, r6, r7, lr}
sub sp, sp, #0x10
mov r6, r0
ldr r0, [r6, #0x25c]
mov r5, r1
cmp r0, r5
mov r4, r2
addeq sp, sp, #0x10
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
ldr r0, _02196a78 ; =data_027e0fec
str r5, [r6, #0x25c]
ldr r3, [r0]
add r1, sp, #0
mov r0, #0
mov r2, #0x10
add r7, r3, #0xe8
bl func_020078f4
ldr r1, _02196a7c ; =data_ov52_02197a20
add r0, sp, #0
ldr r1, [r1, r5, lsl #2]
bl func_02047024
add r0, r7, #0x2800
bl func_ov00_020c45b0
add r1, sp, #0
bl func_0201e544
mov r1, r0
mov r3, r4
add r0, r6, #0x210
mov r2, #0
bl func_ov00_020c0cc8
add r0, r6, #0x160
ldr r1, [r0]
ldr r1, [r1, #0x2c]
blx r1
add r0, r6, #0x160
ldr r2, [r0]
add r1, r6, #0x210
ldr r2, [r2, #0x24]
blx r2
add sp, sp, #0x10
ldmia sp!, {r3, r4, r5, r6, r7, pc}
.align 2, 0
arm_func_end func_ov52_021969d4
_02196a78: .word data_027e0fec
_02196a7c: .word data_ov52_02197a20
.global func_ov52_02196a80
arm_func_start func_ov52_02196a80
func_ov52_02196a80: ; 0x02196a80
stmdb sp!, {r4, lr}
sub sp, sp, #8
mov r4, r0
str r1, [r4, #0x1ec]
cmp r1, #0
beq _02196ab0
cmp r1, #1
beq _02196ac0
cmp r1, #2
beq _02196aec
add sp, sp, #8
ldmia sp!, {r4, pc}
_02196ab0:
mov r0, #1
add sp, sp, #8
strb r0, [r4, #0x1f0]
ldmia sp!, {r4, pc}
_02196ac0:
mov r0, #1
strb r0, [r4, #0x1f0]
ldrsh r2, [r4, #0x78]
add r1, r4, #0x200
add r0, r4, #0x1f4
strh r2, [r1, #0x60]
ldrsb r3, [r4, #0x2c]
add r1, r4, #0x48
bl func_ov00_020c66e4
add sp, sp, #8
ldmia sp!, {r4, pc}
_02196aec:
mov r3, #0
str r3, [sp]
ldr r0, _02196ba0 ; =data_027e0e58
str r3, [sp, #4]
ldr r0, [r0]
add r2, r4, #0x48
mov r1, #0x1a
bl func_ov00_0207c1b0
mov r3, #0
str r3, [sp]
ldr r0, _02196ba0 ; =data_027e0e58
str r3, [sp, #4]
ldr r0, [r0]
add r2, r4, #0x48
mov r1, #0x1b
bl func_ov00_0207c1b0
mov r3, #0
str r3, [sp]
ldr r0, _02196ba0 ; =data_027e0e58
str r3, [sp, #4]
ldr r0, [r0]
add r2, r4, #0x48
mov r1, #0x1c
bl func_ov00_0207c1b0
ldr r0, _02196ba4 ; =data_027e0ffc
ldr r1, _02196ba8 ; =0x000003fb
add r2, r4, #0x48
mov r3, #0
bl func_ov00_020ceacc
mov r0, #0x1e
str r0, [r4, #0x158]
mov r0, #0
strb r0, [r4, #0x1f0]
ldr r0, _02196bac ; =data_ov52_02197c48
ldr r1, [r0, #0x28]
sub r1, r1, #1
cmp r1, #0
str r1, [r0, #0x28]
addle sp, sp, #8
ldmleia sp!, {r4, pc}
ldr r0, _02196bb0 ; =data_ov00_020eec9c
mov r1, #0x3fc
bl func_ov00_020d77e4
add sp, sp, #8
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov52_02196a80
_02196ba0: .word data_027e0e58
_02196ba4: .word data_027e0ffc
_02196ba8: .word 0x000003fb
_02196bac: .word data_ov52_02197c48
_02196bb0: .word data_ov00_020eec9c
.global func_ov52_02196bb4
arm_func_start func_ov52_02196bb4
func_ov52_02196bb4: ; 0x02196bb4
stmdb sp!, {r4, lr}
sub sp, sp, #0x18
mov r4, r0
cmp r1, #0
ldrneb r0, [r4, #0xa5]
ldreqb r0, [r4, #0xa4]
cmp r0, #0
ldrneb r0, [r4, #0x1f0]
cmpne r0, #0
addeq sp, sp, #0x18
ldmeqia sp!, {r4, pc}
ldr r0, _02196c30 ; =data_ov00_020e9c88
ldr r3, _02196c34 ; =func_ov52_02196c40
add r2, r4, #0x48
str r4, [sp]
bl func_ov00_0207b89c
ldr r3, _02196c38 ; =0x00000666
mov r1, #0
str r3, [sp]
str r1, [sp, #4]
mov r0, #0xf
str r0, [sp, #8]
mov ip, #1
str ip, [sp, #0xc]
str ip, [sp, #0x10]
ldr r0, _02196c3c ; =data_ov00_020e9370
add r2, r4, #0x48
str ip, [sp, #0x14]
bl func_ov05_02102c2c
add sp, sp, #0x18
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov52_02196bb4
_02196c30: .word data_ov00_020e9c88
_02196c34: .word func_ov52_02196c40
_02196c38: .word 0x00000666
_02196c3c: .word data_ov00_020e9370
.global func_ov52_02196c40
arm_func_start func_ov52_02196c40
func_ov52_02196c40: ; 0x02196c40
ldr ip, _02196c48 ; =func_ov52_02196c4c
bx ip
.align 2, 0
arm_func_end func_ov52_02196c40
_02196c48: .word func_ov52_02196c4c
.global func_ov52_02196c4c
arm_func_start func_ov52_02196c4c
func_ov52_02196c4c: ; 0x02196c4c
stmdb sp!, {r3, r4, r5, lr}
mov r4, r0
ldr r0, _02196d20 ; =data_ov00_020e9360
mov r1, #2
bl func_ov00_02079e68
mov r5, r0
add r0, r4, #0x160
ldr r1, [r0]
ldr r1, [r1, #8]
blx r1
mov r1, r5
bl func_020197bc
add r0, r4, #0x160
ldr r1, [r0]
ldr r1, [r1, #8]
blx r1
mov r1, #0xf
bl func_020197fc
add r0, r4, #0x160
ldr r1, [r0]
ldr r1, [r1, #8]
blx r1
ldr r1, _02196d24 ; =data_027e0f78
ldr r1, [r1]
ldrh r1, [r1, #0x1e]
bl func_020196bc
add r0, r4, #0x160
ldr r1, [r0]
ldr r1, [r1, #8]
blx r1
ldr r1, _02196d24 ; =data_027e0f78
ldr r1, [r1]
ldrh r1, [r1, #0x1c]
bl func_020196fc
ldrh r1, [r4, #0x78]
add r0, r4, #0x1bc
ldr r3, _02196d28 ; =data_02050f54
mov r1, r1, asr #0x4
mov r2, r1, lsl #0x1
mov r1, r2, lsl #0x1
ldrsh r1, [r3, r1]
add r2, r2, #1
mov r2, r2, lsl #0x1
ldrsh r2, [r3, r2]
blx func_01ff8214
add r0, r4, #0x160
add r1, r4, #0x1e0
add r2, r4, #0x1bc
add r3, r4, #0x48
ldr r4, [r0]
ldr r4, [r4, #0x10]
blx r4
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov52_02196c4c
_02196d20: .word data_ov00_020e9360
_02196d24: .word data_027e0f78
_02196d28: .word data_02050f54
.global func_ov52_02196d2c
arm_func_start func_ov52_02196d2c
func_ov52_02196d2c: ; 0x02196d2c
stmdb sp!, {r4, lr}
sub sp, sp, #0x38
mov r4, r0
ldrh r2, [r4, #0x7a]
ldr r0, _02196dd0 ; =0x0000ffff
cmp r2, r0
addeq sp, sp, #0x38
ldmeqia sp!, {r4, pc}
ldrh r0, [r1]
tst r0, #4
ldrne r0, [r4, #0x1ec]
cmpne r0, #2
addeq sp, sp, #0x38
ldmeqia sp!, {r4, pc}
add r1, sp, #0x14
str r1, [sp]
mov r2, #0
add r0, sp, #0x10
stmib sp, {r0, r2}
ldr r0, _02196dd4 ; =data_027e0d3c
str r2, [sp, #0xc]
ldr r0, [r0]
mov r3, r2
add r1, r4, #0x48
bl func_ov00_02079470
cmp r0, #0
addeq sp, sp, #0x38
ldmeqia sp!, {r4, pc}
add r0, sp, #0x18
bl func_01ffbe34
mov r1, #1
add r0, sp, #0x18
str r1, [sp, #0x1c]
str r0, [sp]
ldrh r3, [r4, #0x7a]
ldr r1, [sp, #0x14]
ldr r2, [sp, #0x10]
ldr r0, _02196dd8 ; =data_02063e4c
bl func_020313c8
add sp, sp, #0x38
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov52_02196d2c
_02196dd0: .word 0x0000ffff
_02196dd4: .word data_027e0d3c
_02196dd8: .word data_02063e4c
.global func_ov52_02196ddc
arm_func_start func_ov52_02196ddc
func_ov52_02196ddc: ; 0x02196ddc
stmdb sp!, {r3, lr}
ldr r1, _02196e08 ; =data_027e0fe0
ldr r0, _02196e0c ; =0x000004a8
ldr r1, [r1]
mov r2, #4
ldr r1, [r1]
bl func_0202e9dc
cmp r0, #0
ldmeqia sp!, {r3, pc}
bl func_ov52_02196e10
ldmia sp!, {r3, pc}
.align 2, 0
arm_func_end func_ov52_02196ddc
_02196e08: .word data_027e0fe0
_02196e0c: .word 0x000004a8
.global func_ov52_02196e10
arm_func_start func_ov52_02196e10
func_ov52_02196e10: ; 0x02196e10
stmdb sp!, {r4, lr}
mov r4, r0
bl func_ov14_02144ed8
ldr r1, _02196e50 ; =data_ov52_02197b38
mvn r0, #0
str r1, [r4]
str r0, [r4, #0x474]
str r0, [r4, #0x478]
mov r1, #0
strb r1, [r4, #0x4a4]
ldr r0, _02196e54 ; =data_ov52_02197c74
strb r1, [r4, #0x4a5]
str r4, [r0, #0x20]
mov r0, r4
strb r1, [r4, #0x4a6]
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov52_02196e10
_02196e50: .word data_ov52_02197b38
_02196e54: .word data_ov52_02197c74
.global func_ov52_02196e58
arm_func_start func_ov52_02196e58
func_ov52_02196e58: ; 0x02196e58
stmdb sp!, {r4, lr}
ldr r1, _02196e78 ; =data_ov52_02197c74
mov r2, #0
mov r4, r0
str r2, [r1, #0x20]
bl func_ov14_021450a8
mov r0, r4
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov52_02196e58
_02196e78: .word data_ov52_02197c74
.global func_ov52_02196e7c
arm_func_start func_ov52_02196e7c
func_ov52_02196e7c: ; 0x02196e7c
stmdb sp!, {r4, lr}
ldr r1, _02196ea4 ; =data_ov52_02197c74
mov r2, #0
mov r4, r0
str r2, [r1, #0x20]
bl func_ov14_021450a8
mov r0, r4
bl func_0202ea0c
mov r0, r4
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov52_02196e7c
_02196ea4: .word data_ov52_02197c74
.global func_ov52_02196ea8
arm_func_start func_ov52_02196ea8
func_ov52_02196ea8: ; 0x02196ea8
stmdb sp!, {r3, r4, lr}
sub sp, sp, #0x7c
ldr r1, _0219706c ; =data_027e0f74
mov r4, r0
ldr r0, [r1]
mov r1, #0x9f
mov r2, #0
bl func_ov00_0209779c
mov r1, #0x46
mov r2, r1
add r0, r4, #0x1d8
bl func_ov14_02145a74
ldr r1, _02197070 ; =data_ov52_021978c8
mov r0, r4
bl func_ov14_021451f0
mov r1, #0
strb r1, [r4, #0x285]
add r0, r4, #0x1d8
bl func_ov14_02145e48
ldr r0, [r4, #0x1e8]
mov r1, #0x1000
str r1, [r0, #0x10]
bl func_ov52_02195754
ldrb r0, [r0, #0x13]
cmp r0, #0
beq _02196f6c
add r0, sp, #0x50
bl func_ov00_020c1500
mvn r1, #0
add r0, sp, #0x50
str r1, [sp, #0x6c]
str r1, [sp, #0x70]
bl func_ov00_020c3348
mov r2, #0
mov r3, #0xe6000
rsb r3, r3, #0
sub r1, r2, #0xe000
str r3, [sp, #0x44]
str r2, [sp, #0x48]
add r0, r4, #0x74
str r1, [sp, #0x4c]
add r1, r0, #0x400
str r1, [sp]
ldr r0, _02197074 ; =data_027e0fe8
ldr r1, _02197078 ; =0x4d544354
ldr r0, [r0]
add r2, sp, #0x44
add r3, sp, #0x50
bl func_ov00_020c4048
_02196f6c:
ldr r0, _0219706c ; =data_027e0f74
mov r1, #0x100
ldr r0, [r0]
bl func_ov00_02097760
cmp r0, #0
bne _02196fa4
bl func_ov52_02195754
ldrb r0, [r0, #0x11]
cmp r0, #0
bne _02196fa4
bl func_ov52_02195754
ldrb r0, [r0, #0x10]
cmp r0, #0
beq _02197054
_02196fa4:
mov r1, #1
mov r0, r4
strb r1, [r4, #0x4a6]
bl func_ov52_021973b8
mvn r1, #0
add r0, sp, #0x18
str r1, [sp, #4]
str r1, [sp, #8]
bl func_ov00_020c1500
mvn r1, #0
add r0, sp, #0x18
str r1, [sp, #0x34]
str r1, [sp, #0x38]
bl func_ov00_020c3348
ldr r1, _0219707c ; =0x00870005
add r0, r4, #0x48
str r1, [sp, #0x28]
add r3, sp, #0xc
ldmia r0, {r0, r1, r2}
stmia r3, {r0, r1, r2}
ldr r0, [sp, #0xc]
mov r2, r3
add r0, r0, #0x1800
str r0, [sp, #0xc]
ldr r1, [r4, #8]
add r3, sp, #4
str r1, [sp, #0x34]
ldr ip, [r4, #0xc]
ldr r0, _02197074 ; =data_027e0fe8
str ip, [sp, #0x38]
str r3, [sp]
ldr r1, _02197080 ; =0x47524d47
ldr r0, [r0]
add r3, sp, #0x18
bl func_ov00_020c4048
mov r1, r0
ldr r0, _02197084 ; =data_027e0fe4
ldr r0, [r0]
bl func_ov00_020c35d8
cmp r0, #0
beq _0219705c
mov r1, #3
bl func_ov14_0214548c
b _0219705c
_02197054:
mov r0, r4
bl func_ov52_02197234
_0219705c:
mov r0, r4
bl func_ov14_021450f0
add sp, sp, #0x7c
ldmia sp!, {r3, r4, pc}
.align 2, 0
arm_func_end func_ov52_02196ea8
_0219706c: .word data_027e0f74
_02197070: .word data_ov52_021978c8
_02197074: .word data_027e0fe8
_02197078: .word 0x4d544354
_0219707c: .word 0x00870005
_02197080: .word 0x47524d47
_02197084: .word data_027e0fe4
.global func_ov52_02197088
arm_func_start func_ov52_02197088
func_ov52_02197088: ; 0x02197088
stmdb sp!, {r4, lr}
mov r4, r0
ldr r1, [r4, #0x154]
cmp r1, #0
beq _021970b0
ldrsh r1, [r4, #0x12]
mov r0, #0
strh r1, [r4, #0x78]
strb r0, [r4, #0x285]
ldmia sp!, {r4, pc}
_021970b0:
ldr r1, [r4, #0x48]
str r1, [r4, #0x54]
ldr r1, [r4, #0x4c]
str r1, [r4, #0x58]
ldr r1, [r4, #0x50]
str r1, [r4, #0x5c]
ldr r1, [r4, #0x470]
cmp r1, #3
addls pc, pc, r1, lsl #2
b _02197104
_021970d8: ; jump table
b _021970e8 ; case 0
b _021970f0 ; case 1
b _021970f8 ; case 2
b _02197100 ; case 3
_021970e8:
bl func_ov52_0219726c
b _02197104
_021970f0:
bl func_ov52_02197330
b _02197104
_021970f8:
bl func_ov52_021973f8
b _02197104
_02197100:
bl func_ov52_021974e0
_02197104:
add r0, r4, #0x1d8
bl func_ov14_02145cac
mov r0, r4
bl func_ov14_02145178
ldmia sp!, {r4, pc}
arm_func_end func_ov52_02197088
.global func_ov52_02197118
arm_func_start func_ov52_02197118
func_ov52_02197118: ; 0x02197118
stmdb sp!, {r3, r4, lr}
sub sp, sp, #0x54
mvn r1, #0
mov r4, r0
str r1, [sp, #0x14]
str r1, [sp, #0x18]
ldrb r0, [r4, #0x4a6]
cmp r0, #0
bne _021971b0
add r0, sp, #0x28
bl func_ov00_020c1500
mvn r1, #0
add r0, sp, #0x28
str r1, [sp, #0x44]
str r1, [sp, #0x48]
bl func_ov00_020c3348
ldr r0, _02197220 ; =0x00870005
add r3, sp, #0x1c
str r0, [sp, #0x38]
add r0, r4, #0x48
ldmia r0, {r0, r1, r2}
stmia r3, {r0, r1, r2}
ldr r0, [sp, #0x1c]
mov r2, r3
add r0, r0, #0x1800
str r0, [sp, #0x1c]
ldr r0, [r4, #8]
add r1, sp, #0x14
str r0, [sp, #0x44]
ldr r3, [r4, #0xc]
ldr r0, _02197224 ; =data_027e0fe8
str r3, [sp, #0x48]
str r1, [sp]
ldr r0, [r0]
ldr r1, _02197228 ; =0x47524d47
add r3, sp, #0x28
bl func_ov00_020c4048
b _021971d4
_021971b0:
ldr r1, _0219722c ; =data_027e0fe4
ldr r2, _02197228 ; =0x47524d47
ldr r1, [r1]
add r0, sp, #0xc
bl func_ov00_020c3894
ldr r1, [sp, #0xc]
ldr r0, [sp, #0x10]
str r1, [sp, #0x14]
str r0, [sp, #0x18]
_021971d4:
ldr r0, [sp, #0x14]
ldr r1, _0219722c ; =data_027e0fe4
str r0, [r4, #0x188]
ldr r2, [sp, #0x18]
add r0, sp, #4
str r2, [r4, #0x18c]
ldr r1, [r1]
ldr r2, _02197230 ; =0x4e415649
bl func_ov00_020c3894
ldr r1, [sp, #4]
ldr r0, [sp, #8]
str r1, [sp, #0x14]
str r0, [sp, #0x18]
str r1, [r4, #0x180]
ldr r1, [sp, #0x18]
mov r0, #1
str r1, [r4, #0x184]
add sp, sp, #0x54
ldmia sp!, {r3, r4, pc}
.align 2, 0
arm_func_end func_ov52_02197118
_02197220: .word 0x00870005
_02197224: .word data_027e0fe8
_02197228: .word 0x47524d47
_0219722c: .word data_027e0fe4
_02197230: .word 0x4e415649
.global func_ov52_02197234
arm_func_start func_ov52_02197234
func_ov52_02197234: ; 0x02197234
stmdb sp!, {r4, lr}
mov r4, r0
mov r1, #0
str r1, [r4, #0x470]
add r0, r4, #0x1d8
bl func_ov14_02145f0c
ldr r1, [r4, #0x1e8]
mov r2, #0x1000
mov r0, r4
str r2, [r1, #0x10]
ldr r1, [r0]
ldr r1, [r1, #0xb4]
blx r1
ldmia sp!, {r4, pc}
arm_func_end func_ov52_02197234
.global func_ov52_0219726c
arm_func_start func_ov52_0219726c
func_ov52_0219726c: ; 0x0219726c
stmdb sp!, {r3, r4, lr}
sub sp, sp, #0xc
mov r4, r0
ldr r0, [r4, #0x1f4]
add r1, sp, #0
ldr r2, [r0]
ldr r2, [r2, #0x34]
blx r2
ldr r2, [r4, #0x1f4]
add r1, sp, #0
ldrsh r3, [r2, #0x78]
add r0, r4, #0x1f8
add r2, r2, #0x48
bl func_ov14_0214a92c
ldrb r0, [r4, #0x4a4]
cmp r0, #0
addne sp, sp, #0xc
ldmneia sp!, {r3, r4, pc}
bl func_ov52_02195754
bl func_ov52_0219611c
cmp r0, #0
addeq sp, sp, #0xc
ldmeqia sp!, {r3, r4, pc}
ldr r0, _02197308 ; =data_027e0fc8
ldr r0, [r0]
bl func_ov00_020bc500
cmp r0, #6
addeq sp, sp, #0xc
ldmeqia sp!, {r3, r4, pc}
ldr r0, _02197308 ; =data_027e0fc8
ldr r0, [r0]
bl func_ov00_020bd318
cmp r0, #0
addeq sp, sp, #0xc
ldmeqia sp!, {r3, r4, pc}
mov r0, r4
bl func_ov52_02197498
add sp, sp, #0xc
ldmia sp!, {r3, r4, pc}
.align 2, 0
arm_func_end func_ov52_0219726c
_02197308: .word data_027e0fc8
.global func_ov52_0219730c
arm_func_start func_ov52_0219730c
func_ov52_0219730c: ; 0x0219730c
stmdb sp!, {r4, lr}
mov r4, r0
mov r1, #1
str r1, [r4, #0x470]
bl func_ov14_0214591c
ldr r0, [r4, #0x1e8]
mov r1, #0x1000
str r1, [r0, #0x10]
ldmia sp!, {r4, pc}
arm_func_end func_ov52_0219730c
.global func_ov52_02197330
arm_func_start func_ov52_02197330
func_ov52_02197330: ; 0x02197330
stmdb sp!, {r3, r4, lr}
sub sp, sp, #0xc
mov r4, r0
ldr r0, [r4, #0x1f4]
add r1, sp, #0
ldr r2, [r0]
ldr r2, [r2, #0x34]
blx r2
ldr r0, [r4, #0x1f4]
add r1, sp, #0
ldrsh r2, [r0, #0x78]
add r0, r4, #0x1f8
bl func_ov14_0214aa0c
mov r0, r4
ldr r1, [r0]
ldr r1, [r1, #0xbc]
blx r1
cmp r0, #0
addeq sp, sp, #0xc
ldmeqia sp!, {r3, r4, pc}
ldr r0, _021973b0 ; =data_027e0f74
mov r1, #0x9e
ldr r0, [r0]
bl func_ov00_02097760
cmp r0, #0
beq _021973a0
ldr r0, _021973b4 ; =data_ov09_0211f5b4
blx func_ov03_020f403c
_021973a0:
mov r0, r4
bl func_ov52_02197234
add sp, sp, #0xc
ldmia sp!, {r3, r4, pc}
.align 2, 0
arm_func_end func_ov52_02197330
_021973b0: .word data_027e0f74
_021973b4: .word data_ov09_0211f5b4
.global func_ov52_021973b8
arm_func_start func_ov52_021973b8
func_ov52_021973b8: ; 0x021973b8
stmdb sp!, {r4, lr}
mov r4, r0
mov r1, #2
str r1, [r4, #0x470]
bl func_ov14_0214591c
ldr r1, [r4, #0x1e8]
mov r2, #0x1000
mov r0, r4
str r2, [r1, #0x10]
ldr r1, [r0]
ldr r1, [r1, #0xb4]
blx r1
mov r0, r4
mov r1, #1
bl func_ov00_020c1908
ldmia sp!, {r4, pc}
arm_func_end func_ov52_021973b8
.global func_ov52_021973f8
arm_func_start func_ov52_021973f8
func_ov52_021973f8: ; 0x021973f8
stmdb sp!, {r3, r4, lr}
sub sp, sp, #0xc
mov r4, r0
ldr r0, [r4, #0x1f4]
add r1, sp, #0
ldr r2, [r0]
ldr r2, [r2, #0x34]
blx r2
ldr r0, [r4, #0x1f4]
add r1, sp, #0
ldrsh r2, [r0, #0x78]
add r0, r4, #0x1f8
bl func_ov14_0214aa0c
mov r0, r4
ldr r1, [r0]
ldr r1, [r1, #0xbc]
blx r1
cmp r0, #0
addeq sp, sp, #0xc
ldmeqia sp!, {r3, r4, pc}
bl func_ov52_02195754
ldrb r0, [r0, #0x10]
cmp r0, #0
beq _02197480
ldr r0, _02197490 ; =data_027e0f74
mov r1, #0x9e
ldr r0, [r0]
bl func_ov00_02097760
cmp r0, #0
beq _02197480
ldr r0, _02197494 ; =data_ov09_0211f5b4
blx func_ov03_020f403c
add sp, sp, #0xc
ldmia sp!, {r3, r4, pc}
_02197480:
mov r0, r4
bl func_ov52_02197234
add sp, sp, #0xc
ldmia sp!, {r3, r4, pc}
.align 2, 0
arm_func_end func_ov52_021973f8
_02197490: .word data_027e0f74
_02197494: .word data_ov09_0211f5b4
.global func_ov52_02197498
arm_func_start func_ov52_02197498
func_ov52_02197498: ; 0x02197498
stmdb sp!, {r4, lr}
mov r4, r0
mov r1, #3
str r1, [r4, #0x470]
mov r1, #1
strb r1, [r4, #0x4a4]
bl func_ov14_0214591c
ldr r1, [r4, #0x1e8]
mov r2, #0x1000
mov r0, r4
str r2, [r1, #0x10]
ldr r1, [r0]
ldr r1, [r1, #0xb4]
blx r1
mov r0, r4
mov r1, #1
bl func_ov00_020c1908
ldmia sp!, {r4, pc}
arm_func_end func_ov52_02197498
.global func_ov52_021974e0
arm_func_start func_ov52_021974e0
func_ov52_021974e0: ; 0x021974e0
stmdb sp!, {r3, r4, lr}
sub sp, sp, #0xc
mov r4, r0
ldr r0, [r4, #0x1f4]
add r1, sp, #0
ldr r2, [r0]
ldr r2, [r2, #0x34]
blx r2
ldr r0, [r4, #0x1f4]
add r1, sp, #0
ldrsh r2, [r0, #0x78]
add r0, r4, #0x1f8
bl func_ov14_0214aa0c
mov r0, r4
ldr r1, [r0]
ldr r1, [r1, #0xbc]
blx r1
cmp r0, #0
addeq sp, sp, #0xc
ldmeqia sp!, {r3, r4, pc}
ldr r0, _02197560 ; =data_027e0f74
mov r1, #0x9e
ldr r0, [r0]
bl func_ov00_02097760
cmp r0, #0
beq _02197550
ldr r0, _02197564 ; =data_ov09_0211f5b4
blx func_ov03_020f403c
_02197550:
mov r0, r4
bl func_ov52_02197234
add sp, sp, #0xc
ldmia sp!, {r3, r4, pc}
.align 2, 0
arm_func_end func_ov52_021974e0
_02197560: .word data_027e0f74
_02197564: .word data_ov09_0211f5b4
.global func_ov52_02197568
arm_func_start func_ov52_02197568
func_ov52_02197568: ; 0x02197568
stmdb sp!, {r4, lr}
mov r4, r0
bl func_ov52_02195754
ldrb r0, [r0, #0x11]
cmp r0, #0
beq _021975a8
ldrb r0, [r4, #0x4a4]
cmp r0, #0
bne _021975a8
ldr r0, _021975b4 ; =data_027e0f74
mov r1, #0x9f
ldr r0, [r0]
bl func_ov00_02097760
cmp r0, #0
ldrne r0, _021975b8 ; =0x00870006
ldmneia sp!, {r4, pc}
_021975a8:
mov r0, r4
bl func_ov14_02144d00
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov52_02197568
_021975b4: .word data_027e0f74
_021975b8: .word 0x00870006
.global func_ov52_021975bc
arm_func_start func_ov52_021975bc
func_ov52_021975bc: ; 0x021975bc
stmdb sp!, {r4, lr}
mov r4, r0
cmp r1, #4
addls pc, pc, r1, lsl #2
b _02197658
_021975d0: ; jump table
b _021975e4 ; case 0
b _021975ec ; case 1
b _021975f4 ; case 2
b _021975fc ; case 3
b _02197604 ; case 4
_021975e4:
mov r0, #1
ldmia sp!, {r4, pc}
_021975ec:
mov r0, #1
ldmia sp!, {r4, pc}
_021975f4:
mov r0, #1
ldmia sp!, {r4, pc}
_021975fc:
mov r0, #1
ldmia sp!, {r4, pc}
_02197604:
ldr r0, _02197660 ; =data_027e0fc8
ldr r0, [r0]
bl func_ov00_020bc500
cmp r0, #6
moveq r0, #0
ldmeqia sp!, {r4, pc}
ldrb r0, [r4, #0x4a5]
cmp r0, #1
bne _02197638
mov r0, #0
strb r0, [r4, #0x4a5]
mov r0, #1
ldmia sp!, {r4, pc}
_02197638:
ldr r0, _02197660 ; =data_027e0fc8
mov r1, #0x2b
ldr r0, [r0]
bl func_ov00_020bce48
mov r0, #1
strb r0, [r4, #0x4a5]
mov r0, #0
ldmia sp!, {r4, pc}
_02197658:
mov r0, #0
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov52_021975bc
_02197660: .word data_027e0fc8
.global func_ov52_02197664
arm_func_start func_ov52_02197664
func_ov52_02197664: ; 0x02197664
stmdb sp!, {r4, r5, r6, lr}
mov r6, r0
mov r5, r1
mov r4, r2
bl func_ov52_02195754
bl func_ov52_02195510
str r0, [r6, #0x47c]
bl func_ov52_02195754
bl func_ov52_0219554c
ldr r2, _021977d4 ; =0x66666667
mov r1, r0, lsr #0x1f
smull r0, r3, r2, r0
add r3, r1, r3, asr #2
str r3, [r6, #0x480]
bl func_ov52_02195754
bl func_ov52_0219554c
ldr r3, _021977d4 ; =0x66666667
mov r1, r0, lsr #0x1f
smull r2, ip, r3, r0
add ip, r1, ip, asr #2
mov r3, #0xa
smull r1, r2, r3, ip
sub ip, r0, r1
str ip, [r6, #0x484]
bl func_ov52_02195754
bl func_ov52_02195594
ldr r2, _021977d4 ; =0x66666667
mov r1, r0, lsr #0x1f
smull r0, r3, r2, r0
add r3, r1, r3, asr #2
str r3, [r6, #0x488]
bl func_ov52_02195754
bl func_ov52_02195594
ldr r3, _021977d4 ; =0x66666667
mov r1, r0, lsr #0x1f
smull r2, ip, r3, r0
add ip, r1, ip, asr #2
mov r3, #0xa
smull r1, r2, r3, ip
sub ip, r0, r1
str ip, [r6, #0x48c]
bl func_ov52_02195754
bl func_ov52_0219565c
str r0, [r6, #0x490]
bl func_ov52_02195754
bl func_ov52_02195698
ldr r2, _021977d4 ; =0x66666667
mov r1, r0, lsr #0x1f
smull r0, r3, r2, r0
add r3, r1, r3, asr #2
str r3, [r6, #0x494]
bl func_ov52_02195754
bl func_ov52_02195698
ldr r3, _021977d4 ; =0x66666667
mov r1, r0, lsr #0x1f
smull r2, ip, r3, r0
add ip, r1, ip, asr #2
mov r3, #0xa
smull r1, r2, r3, ip
sub ip, r0, r1
str ip, [r6, #0x498]
bl func_ov52_02195754
bl func_ov52_021956e0
ldr r2, _021977d4 ; =0x66666667
mov r1, r0, lsr #0x1f
smull r0, r3, r2, r0
add r3, r1, r3, asr #2
str r3, [r6, #0x49c]
bl func_ov52_02195754
bl func_ov52_021956e0
mov r1, r5
ldr r5, _021977d4 ; =0x66666667
mov r2, r0, lsr #0x1f
smull r3, ip, r5, r0
add ip, r2, ip, asr #2
mov r5, #0xa
smull r2, r3, r5, ip
sub ip, r0, r2
add r0, r6, #0x7c
str ip, [r6, #0x4a0]
add r0, r0, #0x400
str r0, [r4, #0x38]
strh r5, [r4, #0x3c]
mov r2, r4
mov r0, r6
bl func_ov14_02144d70
ldr r0, [r6, #0x470]
cmp r0, #0
ldmneia sp!, {r4, r5, r6, pc}
mov r0, r6
bl func_ov52_0219730c
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
arm_func_end func_ov52_02197664
_021977d4: .word 0x66666667
.global func_ov52_021977d8
arm_func_start func_ov52_021977d8
func_ov52_021977d8: ; 0x021977d8
stmdb sp!, {r4, lr}
mov r4, r0
bl func_ov00_020c2974
cmp r0, #0x4000
bgt _021977fc
mov r1, #0x4000
rsb r1, r1, #0
cmp r0, r1
bge _02197804
_021977fc:
mov r0, #0
ldmia sp!, {r4, pc}
_02197804:
mov r0, r4
bl func_ov00_020c27e4
ldmia sp!, {r4, pc}
arm_func_end func_ov52_021977d8
.global func_ov52_02197810
arm_func_start func_ov52_02197810
func_ov52_02197810: ; 0x02197810
stmdb sp!, {r4, lr}
mov r4, r1
bl func_ov52_02195754
mov r1, r4
bl func_ov52_02196420
ldmia sp!, {r4, pc}
arm_func_end func_ov52_02197810
.global func_ov52_02197828
arm_func_start func_ov52_02197828
func_ov52_02197828: ; 0x02197828
stmdb sp!, {r4, lr}
mov r4, r1
bl func_ov52_02195754
mov r1, r4
bl func_ov52_02196484
ldmia sp!, {r4, pc}
arm_func_end func_ov52_02197828
.global func_ov52_02197840
arm_func_start func_ov52_02197840
func_ov52_02197840: ; 0x02197840
stmdb sp!, {r4, lr}
mov r4, r1
bl func_ov52_02195754
mov r1, r4
bl func_ov52_021964c0
ldmia sp!, {r4, pc}
arm_func_end func_ov52_02197840
.global func_ov52_02197858
arm_func_start func_ov52_02197858
func_ov52_02197858: ; 0x02197858
ldrh r1, [r1, #4]
cmp r1, #0
bne _02197880
ldrb r0, [r0, #0x4a6]
cmp r0, #0
moveq r0, #1
movne r0, #0
mov r0, r0, lsl #0x18
mov r0, r0, asr #0x18
bx lr
_02197880:
mvn r0, #0
bx lr
arm_func_end func_ov52_02197858
.rodata
.global data_ov52_02197888
data_ov52_02197888: ; 0x02197888
.byte 0x30, 0x00, 0x00, 0x00
.global data_ov52_0219788c
data_ov52_0219788c: ; 0x0219788c
.byte 0x2b, 0x00, 0x00, 0x00
.global data_ov52_02197890
data_ov52_02197890: ; 0x02197890
.byte 0x2b, 0x00, 0x00, 0x00
.global data_ov52_02197894
data_ov52_02197894: ; 0x02197894
.byte 0x30, 0x00, 0x00, 0x00
.global data_ov52_02197898
data_ov52_02197898: ; 0x02197898
.byte 0x09, 0x00, 0x00, 0x00
.global data_ov52_0219789c
data_ov52_0219789c: ; 0x0219789c
.byte 0x1a, 0x00, 0x00, 0x00
.global data_ov52_021978a0
data_ov52_021978a0: ; 0x021978a0
.byte 0x30, 0x00, 0x00, 0x00
.global data_ov52_021978a4
data_ov52_021978a4: ; 0x021978a4
.byte 0x30, 0x00, 0x00, 0x00
.global data_ov52_021978a8
data_ov52_021978a8: ; 0x021978a8
.byte 0x1a, 0x00, 0x00, 0x00
.global data_ov52_021978ac
data_ov52_021978ac: ; 0x021978ac
.byte 0x19, 0x00, 0x00, 0x00
.global data_ov52_021978b0
data_ov52_021978b0: ; 0x021978b0
.byte 0x30, 0x00, 0x00, 0x00
.global data_ov52_021978b4
data_ov52_021978b4: ; 0x021978b4
.byte 0x09, 0x00, 0x00, 0x00
.global data_ov52_021978b8
data_ov52_021978b8: ; 0x021978b8
.byte 0x19, 0x00, 0x00, 0x00
.global data_ov52_021978bc
data_ov52_021978bc: ; 0x021978bc
.byte 0x18, 0x00, 0x00, 0x00
.global data_ov52_021978c0
data_ov52_021978c0: ; 0x021978c0
.byte 0x18, 0x00, 0x00, 0x00
.global data_ov52_021978c4
data_ov52_021978c4: ; 0x021978c4
.byte 0x04, 0x00, 0x00, 0x00
.global data_ov52_021978c8
data_ov52_021978c8: ; 0x021978c8
.byte 0x00, 0x08, 0x00, 0x00
.global data_ov52_021978cc
data_ov52_021978cc: ; 0x021978cc
.byte 0xec, 0x09, 0x00, 0x00
.global data_ov52_021978d0
data_ov52_021978d0: ; 0x021978d0
.byte 0x66, 0x1a, 0x00, 0x00
.section .init, 4, 1, 4
.global func_ov52_021978d4
arm_func_start func_ov52_021978d4
func_ov52_021978d4: ; 0x021978d4
stmdb sp!, {r3, lr}
ldr r0, _02197900 ; =data_ov52_02197c54
ldr r1, _02197904 ; =0x4154474d
ldr r2, _02197908 ; =func_ov52_02196510
mov r3, #0
bl func_0203e784
ldr r0, _02197900 ; =data_ov52_02197c54
ldr r1, _0219790c ; =func_0203e7b4
ldr r2, _02197910 ; =data_ov52_02197c48
bl func_0204f8d4
ldmia sp!, {r3, pc}
.align 2, 0
arm_func_end func_ov52_021978d4
_02197900: .word data_ov52_02197c54
_02197904: .word 0x4154474d
_02197908: .word func_ov52_02196510
_0219790c: .word func_0203e7b4
_02197910: .word data_ov52_02197c48
.global func_ov52_02197914
arm_func_start func_ov52_02197914
func_ov52_02197914: ; 0x02197914
stmdb sp!, {r3, lr}
ldr r0, _02197940 ; =data_ov52_02197c80
ldr r1, _02197944 ; =0x4154474e
ldr r2, _02197948 ; =func_ov52_02196ddc
mov r3, #0
bl func_0203e784
ldr r0, _02197940 ; =data_ov52_02197c80
ldr r1, _0219794c ; =func_0203e7b4
ldr r2, _02197950 ; =data_ov52_02197c74
bl func_0204f8d4
ldmia sp!, {r3, pc}
.align 2, 0
arm_func_end func_ov52_02197914
_02197940: .word data_ov52_02197c80
_02197944: .word 0x4154474e
_02197948: .word func_ov52_02196ddc
_0219794c: .word func_0203e7b4
_02197950: .word data_ov52_02197c74
.section .sinit, 4, 1, 4
.global data_ov52_02197954
data_ov52_02197954: ; 0x02197954
.byte 0xd4, 0x78, 0x19, 0x02
.global data_ov52_02197958
data_ov52_02197958: ; 0x02197958
.byte 0x14, 0x79, 0x19, 0x02
.data
.global data_ov52_02197960
data_ov52_02197960: ; 0x02197960
.ascii "brg"
.byte 0x00
.global data_ov52_02197964
data_ov52_02197964: ; 0x02197964
.ascii "fnl"
.byte 0x00
.global data_ov52_02197968
data_ov52_02197968: ; 0x02197968
.ascii "pdl"
.byte 0x00
.global data_ov52_0219796c
data_ov52_0219796c: ; 0x0219796c
.ascii "dco"
.byte 0x00
.global data_ov52_02197970
data_ov52_02197970: ; 0x02197970
.ascii "can"
.byte 0x00
.global data_ov52_02197974
data_ov52_02197974: ; 0x02197974
.ascii "hul"
.byte 0x00
.global data_ov52_02197978
data_ov52_02197978: ; 0x02197978
.ascii "bow"
.byte 0x00
.global data_ov52_0219797c
data_ov52_0219797c: ; 0x0219797c
.ascii "anc"
.byte 0x00
.global data_ov52_02197980
data_ov52_02197980: ; 0x02197980
.byte 0x7c, 0x79, 0x19, 0x02
.global data_ov52_02197984
data_ov52_02197984: ; 0x02197984
.byte 0x78, 0x79, 0x19, 0x02
.global data_ov52_02197988
data_ov52_02197988: ; 0x02197988
.byte 0x74, 0x79, 0x19, 0x02
.global data_ov52_0219798c
data_ov52_0219798c: ; 0x0219798c
.byte 0x70, 0x79, 0x19, 0x02
.global data_ov52_02197990
data_ov52_02197990: ; 0x02197990
.byte 0x6c, 0x79, 0x19, 0x02
.global data_ov52_02197994
data_ov52_02197994: ; 0x02197994
.byte 0x68, 0x79, 0x19, 0x02
.global data_ov52_02197998
data_ov52_02197998: ; 0x02197998
.byte 0x64, 0x79, 0x19, 0x02
.global data_ov52_0219799c
data_ov52_0219799c: ; 0x0219799c
.byte 0x60, 0x79, 0x19, 0x02
.global data_ov52_021979a0
data_ov52_021979a0: ; 0x021979a0
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov52_021979a4
data_ov52_021979a4: ; 0x021979a4
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov52_021979a8
data_ov52_021979a8: ; 0x021979a8
.byte 0x08, 0x58, 0x19, 0x02
.global data_ov52_021979ac
data_ov52_021979ac: ; 0x021979ac
.byte 0x38, 0x58, 0x19, 0x02
.global data_ov52_021979b0
data_ov52_021979b0: ; 0x021979b0
.byte 0x08, 0x59, 0x19, 0x02
.global data_ov52_021979b4
data_ov52_021979b4: ; 0x021979b4
.byte 0x20, 0x5a, 0x19, 0x02
.global data_ov52_021979b8
data_ov52_021979b8: ; 0x021979b8
.byte 0x70, 0x58, 0x19, 0x02
.global data_ov52_021979bc
data_ov52_021979bc: ; 0x021979bc
.byte 0xb0, 0x5b, 0x19, 0x02
.global data_ov52_021979c0
data_ov52_021979c0: ; 0x021979c0
.byte 0x9c, 0x5d, 0x19, 0x02
.global data_ov52_021979c4
data_ov52_021979c4: ; 0x021979c4
.byte 0xa0, 0x5d, 0x19, 0x02
.global data_ov52_021979c8
data_ov52_021979c8: ; 0x021979c8
.byte 0x14, 0x61, 0x19, 0x02
.global data_ov52_021979cc
data_ov52_021979cc: ; 0x021979cc
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov52_021979d0
data_ov52_021979d0: ; 0x021979d0
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov52_021979d4
data_ov52_021979d4: ; 0x021979d4
.byte 0xf4, 0x57, 0x19, 0x02
.global data_ov52_021979d8
data_ov52_021979d8: ; 0x021979d8
.byte 0xf4, 0x64, 0x19, 0x02
.global data_ov52_021979dc
data_ov52_021979dc: ; 0x021979dc
.byte 0x21, 0x03, 0x03, 0x02
.global data_ov52_021979e0
data_ov52_021979e0: ; 0x021979e0
.byte 0x25, 0x03, 0x03, 0x02
.global data_ov52_021979e4
data_ov52_021979e4: ; 0x021979e4
.byte 0x29, 0x03, 0x03, 0x02
.global data_ov52_021979e8
data_ov52_021979e8: ; 0x021979e8
.byte 0x2d, 0x03, 0x03, 0x02
.global data_ov52_021979ec
data_ov52_021979ec: ; 0x021979ec
.byte 0x31, 0x03, 0x03, 0x02
.global data_ov52_021979f0
data_ov52_021979f0: ; 0x021979f0
.byte 0x35, 0x03, 0x03, 0x02
.global data_ov52_021979f4
data_ov52_021979f4: ; 0x021979f4
.byte 0x39, 0x03, 0x03, 0x02
.global data_ov52_021979f8
data_ov52_021979f8: ; 0x021979f8
.byte 0x3d, 0x03, 0x03, 0x02
.global data_ov52_021979fc
data_ov52_021979fc: ; 0x021979fc
.byte 0x41, 0x03, 0x03, 0x02
.global data_ov52_02197a00
data_ov52_02197a00: ; 0x02197a00
.byte 0x45, 0x03, 0x03, 0x02
.global data_ov52_02197a04
data_ov52_02197a04: ; 0x02197a04
.byte 0x49, 0x03, 0x03, 0x02
.global data_ov52_02197a08
data_ov52_02197a08: ; 0x02197a08
.byte 0xd5, 0x02, 0x03, 0x02
.global data_ov52_02197a0c
data_ov52_02197a0c: ; 0x02197a0c
.byte 0x4d, 0x03, 0x03, 0x02
.global data_ov52_02197a10
data_ov52_02197a10: ; 0x02197a10
.byte 0x51, 0x03, 0x03, 0x02
.global data_ov52_02197a14
data_ov52_02197a14: ; 0x02197a14
.ascii "gr_target"
.byte 0x00, 0x00, 0x00
.global data_ov52_02197a20
data_ov52_02197a20: ; 0x02197a20
.byte 0x14, 0x7a, 0x19, 0x02
.global data_ov52_02197a24
data_ov52_02197a24: ; 0x02197a24
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov52_02197a28
data_ov52_02197a28: ; 0x02197a28
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov52_02197a2c
data_ov52_02197a2c: ; 0x02197a2c
.byte 0x04, 0x66, 0x19, 0x02
.global data_ov52_02197a30
data_ov52_02197a30: ; 0x02197a30
.byte 0x34, 0x66, 0x19, 0x02
.global data_ov52_02197a34
data_ov52_02197a34: ; 0x02197a34
.byte 0x6c, 0x66, 0x19, 0x02
.global data_ov52_02197a38
data_ov52_02197a38: ; 0x02197a38
.byte 0x3c, 0x17, 0x0c, 0x02
.global data_ov52_02197a3c
data_ov52_02197a3c: ; 0x02197a3c
.byte 0x40, 0x17, 0x0c, 0x02
.global data_ov52_02197a40
data_ov52_02197a40: ; 0x02197a40
.byte 0x40, 0x67, 0x19, 0x02
.global data_ov52_02197a44
data_ov52_02197a44: ; 0x02197a44
.byte 0xb8, 0x68, 0x19, 0x02
.global data_ov52_02197a48
data_ov52_02197a48: ; 0x02197a48
.byte 0x2c, 0x6d, 0x19, 0x02
.global data_ov52_02197a4c
data_ov52_02197a4c: ; 0x02197a4c
.byte 0xb4, 0x6b, 0x19, 0x02
.global data_ov52_02197a50
data_ov52_02197a50: ; 0x02197a50
.byte 0x44, 0x17, 0x0c, 0x02
.global data_ov52_02197a54
data_ov52_02197a54: ; 0x02197a54
.byte 0x48, 0x17, 0x0c, 0x02
.global data_ov52_02197a58
data_ov52_02197a58: ; 0x02197a58
.byte 0xa8, 0x17, 0x0c, 0x02
.global data_ov52_02197a5c
data_ov52_02197a5c: ; 0x02197a5c
.byte 0xb0, 0x17, 0x0c, 0x02
.global data_ov52_02197a60
data_ov52_02197a60: ; 0x02197a60
.byte 0x4c, 0x17, 0x0c, 0x02
.global data_ov52_02197a64
data_ov52_02197a64: ; 0x02197a64
.byte 0x7c, 0x17, 0x0c, 0x02
.global data_ov52_02197a68
data_ov52_02197a68: ; 0x02197a68
.byte 0xe4, 0x27, 0x0c, 0x02
.global data_ov52_02197a6c
data_ov52_02197a6c: ; 0x02197a6c
.byte 0x04, 0x30, 0x0c, 0x02
.global data_ov52_02197a70
data_ov52_02197a70: ; 0x02197a70
.byte 0x44, 0x27, 0x0c, 0x02
.global data_ov52_02197a74
data_ov52_02197a74: ; 0x02197a74
.byte 0x78, 0x69, 0x19, 0x02
.global data_ov52_02197a78
data_ov52_02197a78: ; 0x02197a78
.byte 0x50, 0x1c, 0x0c, 0x02
.global data_ov52_02197a7c
data_ov52_02197a7c: ; 0x02197a7c
.byte 0x0c, 0x31, 0x0c, 0x02
.global data_ov52_02197a80
data_ov52_02197a80: ; 0x02197a80
.byte 0x14, 0x31, 0x0c, 0x02
.global data_ov52_02197a84
data_ov52_02197a84: ; 0x02197a84
.byte 0xa8, 0x18, 0x0c, 0x02
.global data_ov52_02197a88
data_ov52_02197a88: ; 0x02197a88
.byte 0xc4, 0x18, 0x0c, 0x02
.global data_ov52_02197a8c
data_ov52_02197a8c: ; 0x02197a8c
.byte 0xfc, 0x18, 0x0c, 0x02
.global data_ov52_02197a90
data_ov52_02197a90: ; 0x02197a90
.byte 0x04, 0x19, 0x0c, 0x02
.global data_ov52_02197a94
data_ov52_02197a94: ; 0x02197a94
.byte 0x10, 0x19, 0x0c, 0x02
.global data_ov52_02197a98
data_ov52_02197a98: ; 0x02197a98
.byte 0x14, 0x19, 0x0c, 0x02
.global data_ov52_02197a9c
data_ov52_02197a9c: ; 0x02197a9c
.byte 0x1c, 0x19, 0x0c, 0x02
.global data_ov52_02197aa0
data_ov52_02197aa0: ; 0x02197aa0
.byte 0x24, 0x19, 0x0c, 0x02
.global data_ov52_02197aa4
data_ov52_02197aa4: ; 0x02197aa4
.byte 0x2c, 0x19, 0x0c, 0x02
.global data_ov52_02197aa8
data_ov52_02197aa8: ; 0x02197aa8
.byte 0x28, 0x19, 0x0c, 0x02
.global data_ov52_02197aac
data_ov52_02197aac: ; 0x02197aac
.byte 0x34, 0x19, 0x0c, 0x02
.global data_ov52_02197ab0
data_ov52_02197ab0: ; 0x02197ab0
.byte 0x38, 0x19, 0x0c, 0x02
.global data_ov52_02197ab4
data_ov52_02197ab4: ; 0x02197ab4
.byte 0x3c, 0x19, 0x0c, 0x02
.global data_ov52_02197ab8
data_ov52_02197ab8: ; 0x02197ab8
.byte 0x40, 0x19, 0x0c, 0x02
.global data_ov52_02197abc
data_ov52_02197abc: ; 0x02197abc
.byte 0x48, 0x19, 0x0c, 0x02
.global data_ov52_02197ac0
data_ov52_02197ac0: ; 0x02197ac0
.byte 0x50, 0x19, 0x0c, 0x02
.global data_ov52_02197ac4
data_ov52_02197ac4: ; 0x02197ac4
.byte 0x54, 0x19, 0x0c, 0x02
.global data_ov52_02197ac8
data_ov52_02197ac8: ; 0x02197ac8
.byte 0x58, 0x19, 0x0c, 0x02
.global data_ov52_02197acc
data_ov52_02197acc: ; 0x02197acc
.byte 0x6c, 0x1b, 0x0c, 0x02
.global data_ov52_02197ad0
data_ov52_02197ad0: ; 0x02197ad0
.byte 0xb4, 0x1b, 0x0c, 0x02
.global data_ov52_02197ad4
data_ov52_02197ad4: ; 0x02197ad4
.byte 0xf8, 0x1b, 0x0c, 0x02
.global data_ov52_02197ad8
data_ov52_02197ad8: ; 0x02197ad8
.byte 0xfc, 0x31, 0x0c, 0x02
.global data_ov52_02197adc
data_ov52_02197adc: ; 0x02197adc
.byte 0x2c, 0x32, 0x0c, 0x02
.global data_ov52_02197ae0
data_ov52_02197ae0: ; 0x02197ae0
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov52_02197ae4
data_ov52_02197ae4: ; 0x02197ae4
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov52_02197ae8
data_ov52_02197ae8: ; 0x02197ae8
.byte 0xcd, 0x9a, 0x0a, 0x02
.global data_ov52_02197aec
data_ov52_02197aec: ; 0x02197aec
.byte 0xd9, 0x9a, 0x0a, 0x02
.global data_ov52_02197af0
data_ov52_02197af0: ; 0x02197af0
.ascii "brg"
.byte 0x00
.global data_ov52_02197af4
data_ov52_02197af4: ; 0x02197af4
.ascii "fnl"
.byte 0x00
.global data_ov52_02197af8
data_ov52_02197af8: ; 0x02197af8
.ascii "pdl"
.byte 0x00
.global data_ov52_02197afc
data_ov52_02197afc: ; 0x02197afc
.ascii "dco"
.byte 0x00
.global data_ov52_02197b00
data_ov52_02197b00: ; 0x02197b00
.ascii "can"
.byte 0x00
.global data_ov52_02197b04
data_ov52_02197b04: ; 0x02197b04
.ascii "hul"
.byte 0x00
.global data_ov52_02197b08
data_ov52_02197b08: ; 0x02197b08
.ascii "bow"
.byte 0x00
.global data_ov52_02197b0c
data_ov52_02197b0c: ; 0x02197b0c
.ascii "anc"
.byte 0x00
.global data_ov52_02197b10
data_ov52_02197b10: ; 0x02197b10
.byte 0x0c, 0x7b, 0x19, 0x02
.global data_ov52_02197b14
data_ov52_02197b14: ; 0x02197b14
.byte 0x08, 0x7b, 0x19, 0x02
.global data_ov52_02197b18
data_ov52_02197b18: ; 0x02197b18
.byte 0x04, 0x7b, 0x19, 0x02
.global data_ov52_02197b1c
data_ov52_02197b1c: ; 0x02197b1c
.byte 0x00, 0x7b, 0x19, 0x02
.global data_ov52_02197b20
data_ov52_02197b20: ; 0x02197b20
.byte 0xfc, 0x7a, 0x19, 0x02
.global data_ov52_02197b24
data_ov52_02197b24: ; 0x02197b24
.byte 0xf8, 0x7a, 0x19, 0x02
.global data_ov52_02197b28
data_ov52_02197b28: ; 0x02197b28
.byte 0xf4, 0x7a, 0x19, 0x02
.global data_ov52_02197b2c
data_ov52_02197b2c: ; 0x02197b2c
.byte 0xf0, 0x7a, 0x19, 0x02
.global data_ov52_02197b30
data_ov52_02197b30: ; 0x02197b30
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov52_02197b34
data_ov52_02197b34: ; 0x02197b34
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov52_02197b38
data_ov52_02197b38: ; 0x02197b38
.byte 0x58, 0x6e, 0x19, 0x02
.global data_ov52_02197b3c
data_ov52_02197b3c: ; 0x02197b3c
.byte 0x7c, 0x6e, 0x19, 0x02
.global data_ov52_02197b40
data_ov52_02197b40: ; 0x02197b40
.byte 0xa8, 0x6e, 0x19, 0x02
.global data_ov52_02197b44
data_ov52_02197b44: ; 0x02197b44
.byte 0x3c, 0x17, 0x0c, 0x02
.global data_ov52_02197b48
data_ov52_02197b48: ; 0x02197b48
.byte 0x40, 0x17, 0x0c, 0x02
.global data_ov52_02197b4c
data_ov52_02197b4c: ; 0x02197b4c
.byte 0x90, 0x4a, 0x14, 0x02
.global data_ov52_02197b50
data_ov52_02197b50: ; 0x02197b50
.byte 0x64, 0x4b, 0x14, 0x02
.global data_ov52_02197b54
data_ov52_02197b54: ; 0x02197b54
.byte 0xd4, 0x17, 0x0c, 0x02
.global data_ov52_02197b58
data_ov52_02197b58: ; 0x02197b58
.byte 0x00, 0x51, 0x14, 0x02
.global data_ov52_02197b5c
data_ov52_02197b5c: ; 0x02197b5c
.byte 0x44, 0x17, 0x0c, 0x02
.global data_ov52_02197b60
data_ov52_02197b60: ; 0x02197b60
.byte 0x48, 0x17, 0x0c, 0x02
.global data_ov52_02197b64
data_ov52_02197b64: ; 0x02197b64
.byte 0xa8, 0x17, 0x0c, 0x02
.global data_ov52_02197b68
data_ov52_02197b68: ; 0x02197b68
.byte 0xb0, 0x17, 0x0c, 0x02
.global data_ov52_02197b6c
data_ov52_02197b6c: ; 0x02197b6c
.byte 0x4c, 0x17, 0x0c, 0x02
.global data_ov52_02197b70
data_ov52_02197b70: ; 0x02197b70
.byte 0x7c, 0x17, 0x0c, 0x02
.global data_ov52_02197b74
data_ov52_02197b74: ; 0x02197b74
.byte 0xd8, 0x77, 0x19, 0x02
.global data_ov52_02197b78
data_ov52_02197b78: ; 0x02197b78
.byte 0x74, 0x59, 0x14, 0x02
.global data_ov52_02197b7c
data_ov52_02197b7c: ; 0x02197b7c
.byte 0x44, 0x27, 0x0c, 0x02
.global data_ov52_02197b80
data_ov52_02197b80: ; 0x02197b80
.byte 0x48, 0x1c, 0x0c, 0x02
.global data_ov52_02197b84
data_ov52_02197b84: ; 0x02197b84
.byte 0x50, 0x1c, 0x0c, 0x02
.global data_ov52_02197b88
data_ov52_02197b88: ; 0x02197b88
.byte 0x0c, 0x31, 0x0c, 0x02
.global data_ov52_02197b8c
data_ov52_02197b8c: ; 0x02197b8c
.byte 0x14, 0x31, 0x0c, 0x02
.global data_ov52_02197b90
data_ov52_02197b90: ; 0x02197b90
.byte 0xa8, 0x18, 0x0c, 0x02
.global data_ov52_02197b94
data_ov52_02197b94: ; 0x02197b94
.byte 0xc4, 0x18, 0x0c, 0x02
.global data_ov52_02197b98
data_ov52_02197b98: ; 0x02197b98
.byte 0xfc, 0x18, 0x0c, 0x02
.global data_ov52_02197b9c
data_ov52_02197b9c: ; 0x02197b9c
.byte 0x04, 0x19, 0x0c, 0x02
.global data_ov52_02197ba0
data_ov52_02197ba0: ; 0x02197ba0
.byte 0x64, 0x76, 0x19, 0x02
.global data_ov52_02197ba4
data_ov52_02197ba4: ; 0x02197ba4
.byte 0xbc, 0x75, 0x19, 0x02
.global data_ov52_02197ba8
data_ov52_02197ba8: ; 0x02197ba8
.byte 0x1c, 0x19, 0x0c, 0x02
.global data_ov52_02197bac
data_ov52_02197bac: ; 0x02197bac
.byte 0x98, 0x56, 0x14, 0x02
.global data_ov52_02197bb0
data_ov52_02197bb0: ; 0x02197bb0
.byte 0x18, 0x71, 0x19, 0x02
.global data_ov52_02197bb4
data_ov52_02197bb4: ; 0x02197bb4
.byte 0x3c, 0x57, 0x14, 0x02
.global data_ov52_02197bb8
data_ov52_02197bb8: ; 0x02197bb8
.byte 0x78, 0x55, 0x14, 0x02
.global data_ov52_02197bbc
data_ov52_02197bbc: ; 0x02197bbc
.byte 0xb0, 0x55, 0x14, 0x02
.global data_ov52_02197bc0
data_ov52_02197bc0: ; 0x02197bc0
.byte 0x3c, 0x19, 0x0c, 0x02
.global data_ov52_02197bc4
data_ov52_02197bc4: ; 0x02197bc4
.byte 0x40, 0x19, 0x0c, 0x02
.global data_ov52_02197bc8
data_ov52_02197bc8: ; 0x02197bc8
.byte 0x60, 0x57, 0x14, 0x02
.global data_ov52_02197bcc
data_ov52_02197bcc: ; 0x02197bcc
.byte 0x14, 0x58, 0x14, 0x02
.global data_ov52_02197bd0
data_ov52_02197bd0: ; 0x02197bd0
.byte 0x74, 0x58, 0x14, 0x02
.global data_ov52_02197bd4
data_ov52_02197bd4: ; 0x02197bd4
.byte 0xb0, 0x58, 0x14, 0x02
.global data_ov52_02197bd8
data_ov52_02197bd8: ; 0x02197bd8
.byte 0x6c, 0x1b, 0x0c, 0x02
.global data_ov52_02197bdc
data_ov52_02197bdc: ; 0x02197bdc
.byte 0xb4, 0x1b, 0x0c, 0x02
.global data_ov52_02197be0
data_ov52_02197be0: ; 0x02197be0
.byte 0xf8, 0x1b, 0x0c, 0x02
.global data_ov52_02197be4
data_ov52_02197be4: ; 0x02197be4
.byte 0xfc, 0x31, 0x0c, 0x02
.global data_ov52_02197be8
data_ov52_02197be8: ; 0x02197be8
.byte 0x2c, 0x32, 0x0c, 0x02
.global data_ov52_02197bec
data_ov52_02197bec: ; 0x02197bec
.byte 0x08, 0x4d, 0x14, 0x02
.global data_ov52_02197bf0
data_ov52_02197bf0: ; 0x02197bf0
.byte 0x34, 0x4d, 0x14, 0x02
.global data_ov52_02197bf4
data_ov52_02197bf4: ; 0x02197bf4
.byte 0x74, 0x4d, 0x14, 0x02
.global data_ov52_02197bf8
data_ov52_02197bf8: ; 0x02197bf8
.byte 0xfc, 0x4a, 0x14, 0x02
.global data_ov52_02197bfc
data_ov52_02197bfc: ; 0x02197bfc
.byte 0x88, 0x70, 0x19, 0x02
.global data_ov52_02197c00
data_ov52_02197c00: ; 0x02197c00
.byte 0x78, 0x56, 0x14, 0x02
.global data_ov52_02197c04
data_ov52_02197c04: ; 0x02197c04
.byte 0xe4, 0x55, 0x14, 0x02
.global data_ov52_02197c08
data_ov52_02197c08: ; 0x02197c08
.byte 0xa0, 0x58, 0x14, 0x02
.global data_ov52_02197c0c
data_ov52_02197c0c: ; 0x02197c0c
.byte 0x68, 0x75, 0x19, 0x02
.global data_ov52_02197c10
data_ov52_02197c10: ; 0x02197c10
.byte 0x10, 0x78, 0x19, 0x02
.global data_ov52_02197c14
data_ov52_02197c14: ; 0x02197c14
.byte 0x28, 0x78, 0x19, 0x02
.global data_ov52_02197c18
data_ov52_02197c18: ; 0x02197c18
.byte 0x40, 0x78, 0x19, 0x02
.global data_ov52_02197c1c
data_ov52_02197c1c: ; 0x02197c1c
.byte 0x58, 0x78, 0x19, 0x02
.global data_ov52_02197c20
data_ov52_02197c20: ; 0x02197c20
.byte 0xf4, 0x48, 0x14, 0x02
.global data_ov52_02197c24
data_ov52_02197c24: ; 0x02197c24
.byte 0xcc, 0x58, 0x14, 0x02
.global data_ov52_02197c28
data_ov52_02197c28: ; 0x02197c28
.byte 0x00, 0x59, 0x14, 0x02
.global data_ov52_02197c2c
data_ov52_02197c2c: ; 0x02197c2c
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov52_02197c30
data_ov52_02197c30: ; 0x02197c30
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov52_02197c34
data_ov52_02197c34: ; 0x02197c34
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov52_02197c38
data_ov52_02197c38: ; 0x02197c38
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov52_02197c3c
data_ov52_02197c3c: ; 0x02197c3c
.byte 0x00, 0x00, 0x00, 0x00
; 0x02197c40
.bss
.global data_ov52_02197c40
data_ov52_02197c40:
.space 0x4
.global data_ov52_02197c44
data_ov52_02197c44:
.space 0x2
.global data_ov52_02197c46
data_ov52_02197c46:
.space 0x2
.global data_ov52_02197c48
data_ov52_02197c48:
.space 0x4
.global data_ov52_02197c4c
data_ov52_02197c4c:
.space 0x4
.global data_ov52_02197c50
data_ov52_02197c50:
.space 0x4
.global data_ov52_02197c54
data_ov52_02197c54:
.space 0x4
.global data_ov52_02197c58
data_ov52_02197c58:
.space 0x4
.global data_ov52_02197c5c
data_ov52_02197c5c:
.space 0x4
.global data_ov52_02197c60
data_ov52_02197c60:
.space 0x4
.global data_ov52_02197c64
data_ov52_02197c64:
.space 0x4
.global data_ov52_02197c68
data_ov52_02197c68:
.space 0x4
.global data_ov52_02197c6c
data_ov52_02197c6c:
.space 0x4
.global data_ov52_02197c70
data_ov52_02197c70:
.space 0x4
.global data_ov52_02197c74
data_ov52_02197c74:
.space 0x4
.global data_ov52_02197c78
data_ov52_02197c78:
.space 0x4
.global data_ov52_02197c7c
data_ov52_02197c7c:
.space 0x4
.global data_ov52_02197c80
data_ov52_02197c80:
.space 0x4
.global data_ov52_02197c84
data_ov52_02197c84:
.space 0x4
.global data_ov52_02197c88
data_ov52_02197c88:
.space 0x4
.global data_ov52_02197c8c
data_ov52_02197c8c:
.space 0x4
.global data_ov52_02197c90
data_ov52_02197c90:
.space 0x4
.global data_ov52_02197c94
data_ov52_02197c94:
.space 0x4
.global data_ov52_02197c98
data_ov52_02197c98:
.space 0x4
.global data_ov52_02197c9c
data_ov52_02197c9c:
.space 0x4