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

13858 lines
293 KiB
ArmAsm

.include "macros/function.inc"
.include "global.inc"
.text
.global func_ov39_0217bd80
arm_func_start func_ov39_0217bd80
func_ov39_0217bd80: ; 0x0217bd80
stmdb sp!, {r3, lr}
ldr r1, _0217bdac ; =data_027e0fe0
ldr r0, _0217bdb0 ; =0x00001884
ldr r1, [r1]
mov r2, #4
ldr r1, [r1]
bl func_0202e9dc
cmp r0, #0
ldmeqia sp!, {r3, pc}
bl func_ov39_0217cd14
ldmia sp!, {r3, pc}
.align 2, 0
arm_func_end func_ov39_0217bd80
_0217bdac: .word data_027e0fe0
_0217bdb0: .word 0x00001884
.global func_ov39_0217bdb4
arm_func_start func_ov39_0217bdb4
func_ov39_0217bdb4: ; 0x0217bdb4
ldrh r1, [r1]
add r1, r1, #0x8d
add r1, r1, #0xa300
strh r1, [r0, #0x56]
bx lr
arm_func_end func_ov39_0217bdb4
.global func_ov39_0217bdc8
arm_func_start func_ov39_0217bdc8
func_ov39_0217bdc8: ; 0x0217bdc8
stmdb sp!, {r4, lr}
sub sp, sp, #0x18
mov r4, r0
ldr r0, [r4, #8]
bl func_ov39_0217fcbc
ldr r1, _0217bf0c ; =data_027e0fe4
ldr r2, _0217bf10 ; =0x4e415649
ldr r1, [r1]
add r0, sp, #0x10
bl func_ov00_020c3894
ldr r0, _0217bf0c ; =data_027e0fe4
add r1, sp, #0x10
ldr r0, [r0]
bl func_ov00_020c3674
mov r1, #1
strb r1, [r0, #0x28d]
strb r1, [r0, #0x3c1]
ldr r2, _0217bf14 ; =0x00004a52
add r0, r0, #0x300
strh r2, [r0, #0xc4]
strh r2, [r0, #0xc6]
ldr r1, _0217bf0c ; =data_027e0fe4
ldr r2, _0217bf18 ; =0x57534e56
ldr r1, [r1]
add r0, sp, #8
bl func_ov00_020c3894
ldr r0, [sp, #0xc]
ldr r1, [sp, #8]
str r0, [sp, #0x14]
ldr r0, _0217bf0c ; =data_027e0fe4
str r1, [sp, #0x10]
ldr r0, [r0]
add r1, sp, #0x10
bl func_ov00_020c3674
mov r1, #1
strb r1, [r0, #0x28d]
ldr r1, _0217bf0c ; =data_027e0fe4
ldr r2, _0217bf1c ; =0x46434e56
ldr r1, [r1]
add r0, sp, #0
bl func_ov00_020c3894
ldr r0, [sp, #4]
ldr r1, [sp]
str r0, [sp, #0x14]
ldr r0, _0217bf0c ; =data_027e0fe4
str r1, [sp, #0x10]
ldr r0, [r0]
add r1, sp, #0x10
bl func_ov00_020c3674
mov r1, #1
strb r1, [r0, #0x28d]
ldr r0, _0217bf20 ; =data_ov00_020eec9c
bl func_ov00_020d8388
ldr r3, [r4, #8]
add r0, r3, #0x800
ldrsh r2, [r0, #0x68]
cmp r2, #0x7d0
blt _0217bebc
ldr r1, [r3, #0x130]
cmp r1, #7
bne _0217becc
_0217bebc:
mov r1, r2, asr #0x1
add r0, r3, #0x800
strh r1, [r0, #0x68]
b _0217bed4
_0217becc:
ldr r1, _0217bf24 ; =0x00002ee0
strh r1, [r0, #0x68]
_0217bed4:
ldr r0, _0217bf28 ; =data_027e0e58
mov r1, #6
ldr r0, [r0]
mov r2, #0
bl func_ov00_0207c5d4
ldr r0, _0217bf2c ; =data_ov00_020eec68
mov r1, #0xd2
bl func_ov00_020d73bc
ldr r1, [r4, #8]
ldr r0, [r1, #0x158]
bic r0, r0, #0x4000000
str r0, [r1, #0x158]
add sp, sp, #0x18
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov39_0217bdc8
_0217bf0c: .word data_027e0fe4
_0217bf10: .word 0x4e415649
_0217bf14: .word 0x00004a52
_0217bf18: .word 0x57534e56
_0217bf1c: .word 0x46434e56
_0217bf20: .word data_ov00_020eec9c
_0217bf24: .word 0x00002ee0
_0217bf28: .word data_027e0e58
_0217bf2c: .word data_ov00_020eec68
.global func_ov39_0217bf30
arm_func_start func_ov39_0217bf30
func_ov39_0217bf30: ; 0x0217bf30
stmdb sp!, {r4, lr}
sub sp, sp, #0x18
ldr r1, _0217c01c ; =data_027e0fe4
mov r4, r0
ldr r1, [r1]
ldr r2, _0217c020 ; =0x4e415649
add r0, sp, #0x10
bl func_ov00_020c3894
ldr r0, _0217c01c ; =data_027e0fe4
add r1, sp, #0x10
ldr r0, [r0]
bl func_ov00_020c3674
mov r1, #0
strb r1, [r0, #0x28d]
strb r1, [r0, #0x3c1]
ldr r1, _0217c01c ; =data_027e0fe4
ldr r2, _0217c024 ; =0x57534e56
ldr r1, [r1]
add r0, sp, #8
bl func_ov00_020c3894
ldr r0, _0217c01c ; =data_027e0fe4
ldr r1, [sp, #8]
ldr r2, [sp, #0xc]
str r1, [sp, #0x10]
ldr r0, [r0]
add r1, sp, #0x10
str r2, [sp, #0x14]
bl func_ov00_020c3674
mov r1, #0
strb r1, [r0, #0x28d]
ldr r1, _0217c01c ; =data_027e0fe4
ldr r2, _0217c028 ; =0x46434e56
ldr r1, [r1]
add r0, sp, #0
bl func_ov00_020c3894
ldr r0, [sp, #4]
ldr r1, [sp]
str r0, [sp, #0x14]
ldr r0, _0217c01c ; =data_027e0fe4
str r1, [sp, #0x10]
ldr r0, [r0]
add r1, sp, #0x10
bl func_ov00_020c3674
mov r1, #0
strb r1, [r0, #0x28d]
ldr r0, _0217c02c ; =data_ov00_020eec9c
bl func_ov00_020d8344
ldr r0, [r4, #8]
bl func_ov39_0217fd78
ldr r0, _0217c030 ; =data_027e0e58
mov r1, #6
ldr r0, [r0]
mov r2, #1
bl func_ov00_0207c5d4
ldr r0, _0217c034 ; =data_ov00_020eec68
mov r1, #0xa
bl func_ov00_020d73f0
add sp, sp, #0x18
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov39_0217bf30
_0217c01c: .word data_027e0fe4
_0217c020: .word 0x4e415649
_0217c024: .word 0x57534e56
_0217c028: .word 0x46434e56
_0217c02c: .word data_ov00_020eec9c
_0217c030: .word data_027e0e58
_0217c034: .word data_ov00_020eec68
.global func_ov39_0217c038
arm_func_start func_ov39_0217c038
func_ov39_0217c038: ; 0x0217c038
stmdb sp!, {r3, r4, r5, lr}
mov r5, r0
mov r4, r2
bl func_ov00_020c6114
ldr r3, _0217c0a4 ; =data_ov39_02186b84
add r0, r5, #0xfc
add r1, r5, #0x120
mov r2, #0
str r3, [r5]
blx func_ov00_020c0c08
ldr r0, _0217c0a8 ; =data_ov39_02186b98
cmp r4, #0
str r0, [r5, #0xfc]
strb r4, [r5, #0x148]
mov r1, #0x124
beq _0217c088
ldr r2, _0217c0ac ; =data_ov39_02186698
mov r0, r5
bl func_ov00_020c5c98
b _0217c094
_0217c088:
ldr r2, _0217c0b0 ; =data_ov39_021866ac
mov r0, r5
bl func_ov00_020c5c98
_0217c094:
ldr r1, [r5, #4]
mov r0, r5
str r1, [r5, #0x104]
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov39_0217c038
_0217c0a4: .word data_ov39_02186b84
_0217c0a8: .word data_ov39_02186b98
_0217c0ac: .word data_ov39_02186698
_0217c0b0: .word data_ov39_021866ac
.global func_ov39_0217c0b4
arm_func_start func_ov39_0217c0b4
func_ov39_0217c0b4: ; 0x0217c0b4
stmdb sp!, {r3, r4, r5, lr}
sub sp, sp, #0x10
mov r5, r0
ldrb r0, [r5, #0x148]
cmp r0, #0
beq _0217c0ec
ldr r0, _0217c15c ; =data_ov39_02186bb0
blx func_02016fe8
mov r4, r0
ldr r1, _0217c160 ; =data_ov39_02186bcc
add r0, sp, #0
mov r2, #0x10
bl func_020470ec
b _0217c108
_0217c0ec:
ldr r0, _0217c164 ; =data_ov39_02186bdc
blx func_02016fe8
mov r4, r0
ldr r1, _0217c168 ; =data_ov39_02186bf8
add r0, sp, #0
mov r2, #0x10
bl func_020470ec
_0217c108:
add r1, sp, #0
mov r0, r4
bl func_0201e544
mov r1, r0
add r0, r5, #0xfc
bl func_ov00_020c0c9c
mov r2, #0x1000
add r0, r5, #0xfc
add r1, r5, #0x24
str r2, [r5, #0x10c]
bl func_ov00_020c0d70
add r2, r5, #0x100
mov r1, #0
mov r0, r5
strh r1, [r2, #8]
bl func_ov00_020c5d74
ldr r0, [r5, #0x10]
mov r1, #0x1000
str r1, [r0, #0x10]
add sp, sp, #0x10
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov39_0217c0b4
_0217c15c: .word data_ov39_02186bb0
_0217c160: .word data_ov39_02186bcc
_0217c164: .word data_ov39_02186bdc
_0217c168: .word data_ov39_02186bf8
.global func_ov39_0217c16c
arm_func_start func_ov39_0217c16c
func_ov39_0217c16c: ; 0x0217c16c
ldr ip, _0217c178 ; =func_ov00_020c0e04
add r0, r0, #0xfc
bx ip
.align 2, 0
arm_func_end func_ov39_0217c16c
_0217c178: .word func_ov00_020c0e04
.global func_ov39_0217c17c
arm_func_start func_ov39_0217c17c
func_ov39_0217c17c: ; 0x0217c17c
stmdb sp!, {r4, r5, r6, lr}
mov r4, r0
ldr r2, [r4, #4]
ldr r1, _0217c200 ; =data_ov39_021866c0
ldr r0, [r2, #8]
add r0, r2, r0
add r0, r0, #4
bl func_0201e388
mov r5, r0
ldr r6, [r4, #4]
ldr r0, _0217c204 ; =data_ov00_020e9360
mov r1, #2
bl func_ov00_02079e68
mov r2, r0
mov r0, r6
mov r1, r5
bl func_02019534
ldr r2, [r4, #4]
ldr r1, _0217c208 ; =data_ov39_021866d4
ldr r0, [r2, #8]
add r0, r2, r0
add r0, r0, #4
bl func_0201e388
ldr r5, [r4, #4]
mov r4, r0
ldr r0, _0217c204 ; =data_ov00_020e9360
mov r1, #2
bl func_ov00_02079e68
mov r1, r4
mov r2, r0
mov r0, r5
bl func_02019534
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
arm_func_end func_ov39_0217c17c
_0217c200: .word data_ov39_021866c0
_0217c204: .word data_ov00_020e9360
_0217c208: .word data_ov39_021866d4
.global func_ov39_0217c20c
arm_func_start func_ov39_0217c20c
func_ov39_0217c20c: ; 0x0217c20c
mov r1, r0
ldr r0, [r1, #4]
ldr ip, _0217c228 ; =func_ov39_02185610
ldr r0, [r0, #0x2c]
add r0, r0, #0x224
add r0, r0, #0x800
bx ip
.align 2, 0
arm_func_end func_ov39_0217c20c
_0217c228: .word func_ov39_02185610
.global func_ov39_0217c22c
arm_func_start func_ov39_0217c22c
func_ov39_0217c22c: ; 0x0217c22c
mov r1, r0
ldr r0, [r1, #4]
ldr ip, _0217c248 ; =func_ov39_021856b4
ldr r0, [r0, #0x2c]
add r0, r0, #0x224
add r0, r0, #0x800
bx ip
.align 2, 0
arm_func_end func_ov39_0217c22c
_0217c248: .word func_ov39_021856b4
.global func_ov39_0217c24c
arm_func_start func_ov39_0217c24c
func_ov39_0217c24c: ; 0x0217c24c
ldr r1, _0217c270 ; =func_ov39_0217c20c
mov r2, #3
str r1, [r0, #0x24]
ldr r1, _0217c274 ; =func_ov39_0217c22c
strb r2, [r0, #0x92]
str r1, [r0, #0x1c]
mov r1, #2
strb r1, [r0, #0x90]
bx lr
.align 2, 0
arm_func_end func_ov39_0217c24c
_0217c270: .word func_ov39_0217c20c
_0217c274: .word func_ov39_0217c22c
.global func_ov39_0217c278
arm_func_start func_ov39_0217c278
func_ov39_0217c278: ; 0x0217c278
stmdb sp!, {r4, lr}
mov r1, #0
mov r4, r0
blx func_ov00_020a956c
ldr r0, _0217c2c0 ; =data_ov39_02186b18
mov r1, #0
str r0, [r4]
strh r1, [r4, #0x5c]
sub r0, r1, #1
str r0, [r4, #0xf0]
str r0, [r4, #0xf4]
str r0, [r4, #0xf8]
str r0, [r4, #0xfc]
str r0, [r4, #0x100]
strb r1, [r4, #0x104]
mov r0, r4
strb r1, [r4, #0x105]
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov39_0217c278
_0217c2c0: .word data_ov39_02186b18
.global func_ov39_0217c2c4
arm_func_start func_ov39_0217c2c4
func_ov39_0217c2c4: ; 0x0217c2c4
ldr ip, _0217c2d4 ; =func_ov00_020a9998
mov r1, #6
mov r2, #2
bx ip
.align 2, 0
arm_func_end func_ov39_0217c2c4
_0217c2d4: .word func_ov00_020a9998
.global func_ov39_0217c2d8
arm_func_start func_ov39_0217c2d8
func_ov39_0217c2d8: ; 0x0217c2d8
mov r1, r0
ldr r0, [r1, #4]
ldr ip, _0217c2f4 ; =func_ov39_0217c570
ldr r0, [r0, #0x2c]
add r0, r0, #0xc
add r0, r0, #0x800
bx ip
.align 2, 0
arm_func_end func_ov39_0217c2d8
_0217c2f4: .word func_ov39_0217c570
.global func_ov39_0217c2f8
arm_func_start func_ov39_0217c2f8
func_ov39_0217c2f8: ; 0x0217c2f8
stmdb sp!, {r3, r4, lr}
sub sp, sp, #4
mov r4, r0
str r1, [r4, #0x30]
mov ip, #3
ldr r1, _0217c334 ; =func_ov39_0217c2d8
add r0, r4, #4
mov r2, #0
mov r3, #6
str ip, [sp]
bl func_02018c90
mvn r0, #1
str r0, [r4, #0xf0]
add sp, sp, #4
ldmia sp!, {r3, r4, pc}
.align 2, 0
arm_func_end func_ov39_0217c2f8
_0217c334: .word func_ov39_0217c2d8
.global func_ov39_0217c338
arm_func_start func_ov39_0217c338
func_ov39_0217c338: ; 0x0217c338
stmdb sp!, {r3, r4, r5, r6, lr}
sub sp, sp, #0x24
mov r6, r0
ldr r2, [r6, #0xf0]
mov r5, r1
mvn r0, #0
cmp r2, r0
ldr r4, [r5, #4]
bne _0217c3c0
ldr r0, [r4, #4]
ldr r1, _0217c554 ; =data_ov39_021866e8
add r0, r0, #0x40
bl func_0201e388
str r0, [r6, #0xf0]
ldr r0, [r4, #4]
ldr r1, _0217c558 ; =data_ov39_021866fc
add r0, r0, #0x40
bl func_0201e388
str r0, [r6, #0xf4]
ldr r0, [r4, #4]
ldr r1, _0217c55c ; =data_ov39_02186710
add r0, r0, #0x40
bl func_0201e388
str r0, [r6, #0xf8]
ldr r0, [r4, #4]
ldr r1, _0217c560 ; =data_ov39_02186724
add r0, r0, #0x40
bl func_0201e388
str r0, [r6, #0xfc]
ldr r0, [r4, #4]
ldr r1, _0217c564 ; =data_ov39_02186738
add r0, r0, #0x40
bl func_0201e388
str r0, [r6, #0x100]
_0217c3c0:
ldr r0, [r5, #8]
tst r0, #0x10
ldrneb r1, [r5, #0xae]
ldr r0, [r6, #0xf0]
mvneq r1, #0
cmp r1, r0
bne _0217c44c
ldrb r0, [r4, #0x25]
cmp r0, #2
bne _0217c3fc
mov r0, #3
strb r0, [r5, #0x92]
add sp, sp, #0x24
strb r0, [r4, #0x25]
ldmia sp!, {r3, r4, r5, r6, pc}
_0217c3fc:
cmp r0, #3
addne sp, sp, #0x24
ldmneia sp!, {r3, r4, r5, r6, pc}
add r0, r6, #0x60
mov r1, #0
bl func_0201b1bc
bl func_02018450
mov lr, r0
add ip, r6, #0x90
ldmia lr!, {r0, r1, r2, r3}
stmia ip!, {r0, r1, r2, r3}
ldmia lr!, {r0, r1, r2, r3}
stmia ip!, {r0, r1, r2, r3}
ldmia lr, {r0, r1, r2, r3}
stmia ip, {r0, r1, r2, r3}
mov r6, #2
strb r6, [r5, #0x92]
add sp, sp, #0x24
strb r6, [r4, #0x25]
ldmia sp!, {r3, r4, r5, r6, pc}
_0217c44c:
ldrb r0, [r6, #0x105]
cmp r0, #0
beq _0217c4b0
ldr r0, [r6, #0xf4]
cmp r1, r0
bne _0217c4b0
ldrb r0, [r4, #0x25]
cmp r0, #2
bne _0217c484
mov r0, #3
strb r0, [r5, #0x92]
add sp, sp, #0x24
strb r0, [r4, #0x25]
ldmia sp!, {r3, r4, r5, r6, pc}
_0217c484:
cmp r0, #3
addne sp, sp, #0x24
ldmneia sp!, {r3, r4, r5, r6, pc}
add r0, r6, #0xc0
mov r1, #0
bl func_0201b1bc
mov r0, #2
strb r0, [r5, #0x92]
add sp, sp, #0x24
strb r0, [r4, #0x25]
ldmia sp!, {r3, r4, r5, r6, pc}
_0217c4b0:
ldrb r0, [r6, #0x104]
cmp r0, #0
beq _0217c524
ldr r0, [r6, #0xf8]
cmp r1, r0
ldrne r0, [r6, #0xfc]
cmpne r1, r0
bne _0217c524
ldr r4, [r5, #0xb4]
ldr r3, _0217c568 ; =data_02050f54
ldr r1, [r4]
add r0, sp, #0
bic r1, r1, #2
str r1, [r4]
ldrh r1, [r6, #0x5c]
mov r1, r1, asr #0x4
mov r1, r1, lsl #0x1
add r2, r1, #1
mov r2, r2, lsl #0x1
mov r1, r1, lsl #0x1
ldrsh r2, [r3, r2]
ldrsh r1, [r3, r1]
blx func_01ff8230
add r1, r4, #0x28
add r0, sp, #0
mov r2, r1
bl func_0202e030
add sp, sp, #0x24
ldmia sp!, {r3, r4, r5, r6, pc}
_0217c524:
ldr r0, [r6, #0x100]
cmp r1, r0
addne sp, sp, #0x24
ldmneia sp!, {r3, r4, r5, r6, pc}
ldr r0, _0217c56c ; =data_ov39_02186cec
mov r1, r5
ldr r0, [r0]
add r0, r0, #0x3bc
add r0, r0, #0x800
bl func_ov39_02184c90
add sp, sp, #0x24
ldmia sp!, {r3, r4, r5, r6, pc}
.align 2, 0
arm_func_end func_ov39_0217c338
_0217c554: .word data_ov39_021866e8
_0217c558: .word data_ov39_021866fc
_0217c55c: .word data_ov39_02186710
_0217c560: .word data_ov39_02186724
_0217c564: .word data_ov39_02186738
_0217c568: .word data_02050f54
_0217c56c: .word data_ov39_02186cec
.global func_ov39_0217c570
arm_func_start func_ov39_0217c570
func_ov39_0217c570: ; 0x0217c570
stmdb sp!, {r3, r4, r5, lr}
mov r4, r0
ldr r2, [r4, #0xf0]
mov r5, r1
mvn r0, #1
cmp r2, r0
ldr r0, [r5, #4]
bne _0217c5a4
ldr r0, [r0, #4]
ldr r1, _0217c5f4 ; =data_ov39_0218674c
add r0, r0, #0x40
bl func_0201e388
str r0, [r4, #0xf0]
_0217c5a4:
ldr r0, [r5, #8]
tst r0, #0x10
ldrneb r1, [r5, #0xae]
ldr r0, [r4, #0xf0]
mvneq r1, #0
cmp r0, r1
ldmneia sp!, {r3, r4, r5, pc}
add r0, r4, #0x60
mov r1, #0
bl func_0201b1bc
bl func_02018450
mov ip, r0
add r4, r4, #0x90
ldmia ip!, {r0, r1, r2, r3}
stmia r4!, {r0, r1, r2, r3}
ldmia ip!, {r0, r1, r2, r3}
stmia r4!, {r0, r1, r2, r3}
ldmia ip, {r0, r1, r2, r3}
stmia r4, {r0, r1, r2, r3}
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov39_0217c570
_0217c5f4: .word data_ov39_0218674c
.global func_ov39_0217c5f8
arm_func_start func_ov39_0217c5f8
func_ov39_0217c5f8: ; 0x0217c5f8
stmdb sp!, {r4, r5, lr}
sub sp, sp, #0x6c
mov r5, r2
mov r4, r0
add r0, r1, #0xc0
add r2, sp, #0x3c
add r1, r1, #0x90
bl func_01ff8e84
add r0, sp, #0x3c
add r1, sp, #0x18
bl func_020079d8
cmp r5, #3
addls pc, pc, r5, lsl #2
b _0217c69c
_0217c630: ; jump table
b _0217c640 ; case 0
b _0217c658 ; case 1
b _0217c670 ; case 2
b _0217c688 ; case 3
_0217c640:
ldr r1, _0217c6f0 ; =0x0000199a
mov r0, #0
str r1, [sp, #0xc]
str r0, [sp, #0x10]
str r0, [sp, #0x14]
b _0217c69c
_0217c658:
ldr r1, _0217c6f4 ; =0x00000ccd
mov r0, #0
str r1, [sp, #0xc]
str r0, [sp, #0x10]
str r0, [sp, #0x14]
b _0217c69c
_0217c670:
ldr r1, _0217c6f8 ; =0x0000299a
mov r0, #0
str r1, [sp, #0xc]
str r0, [sp, #0x10]
str r0, [sp, #0x14]
b _0217c69c
_0217c688:
ldr r1, _0217c6fc ; =0x000004cd
mov r0, #0
str r1, [sp, #0xc]
str r0, [sp, #0x10]
str r0, [sp, #0x14]
_0217c69c:
add r0, sp, #0xc
add r1, sp, #0x18
mov r2, r0
bl func_01ff88b0
ldr r3, [sp, #0xc]
ldr r2, [sp, #0x60]
ldr r1, [sp, #0x10]
add ip, r3, r2
ldr r0, [sp, #0x64]
ldr r2, [sp, #0x14]
add r3, r1, r0
ldr r1, [sp, #0x68]
add r0, sp, #0
add r1, r2, r1
str ip, [sp]
str r3, [sp, #4]
str r1, [sp, #8]
ldmia r0, {r0, r1, r2}
stmia r4, {r0, r1, r2}
add sp, sp, #0x6c
ldmia sp!, {r4, r5, pc}
.align 2, 0
arm_func_end func_ov39_0217c5f8
_0217c6f0: .word 0x0000199a
_0217c6f4: .word 0x00000ccd
_0217c6f8: .word 0x0000299a
_0217c6fc: .word 0x000004cd
.global func_ov39_0217c700
arm_func_start func_ov39_0217c700
func_ov39_0217c700: ; 0x0217c700
stmdb sp!, {r3, r4, lr}
sub sp, sp, #0xc
mov r4, r0
add r0, sp, #0
ldr lr, [r1, #0x8c]
ldr ip, [r1, #0x88]
ldr r3, [r1, #0x84]
mov r2, r0
add r1, r1, #0x90
str r3, [sp]
str ip, [sp, #4]
str lr, [sp, #8]
bl func_01ff9158
add r0, sp, #0
ldmia r0, {r0, r1, r2}
stmia r4, {r0, r1, r2}
add sp, sp, #0xc
ldmia sp!, {r3, r4, pc}
arm_func_end func_ov39_0217c700
.global func_ov39_0217c748
arm_func_start func_ov39_0217c748
func_ov39_0217c748: ; 0x0217c748
stmdb sp!, {r4, lr}
mov r4, r0
add r0, r4, #0x218
bl func_ov39_02185888
ldr r2, _0217c788 ; =data_ov39_02186124
mov r0, r4
mov r1, #0x5c
bl func_ov00_020c5c98
add r0, r4, #0x20
bl func_ov39_0217c2c4
add r0, r4, #0x20
ldr r1, [r0]
ldr r1, [r1, #8]
blx r1
str r0, [r4, #0x19c]
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov39_0217c748
_0217c788: .word data_ov39_02186124
.global func_ov39_0217c78c
arm_func_start func_ov39_0217c78c
func_ov39_0217c78c: ; 0x0217c78c
stmdb sp!, {r4, lr}
ldr r1, _0217c7bc ; =0x00000107
ldr r3, _0217c7c0 ; =data_ov39_02186390
mov r4, r0
add r2, r1, #0x1b
bl func_ov00_020c5ce4
ldr r1, [r4, #0x1c]
add r0, r4, #0x20
bl func_ov39_0217c2f8
mov r0, #1
strb r0, [r4, #0x214]
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov39_0217c78c
_0217c7bc: .word 0x00000107
_0217c7c0: .word data_ov39_02186390
.global func_ov39_0217c7c4
arm_func_start func_ov39_0217c7c4
func_ov39_0217c7c4: ; 0x0217c7c4
stmdb sp!, {r3, r4, r5, lr}
mov r4, r0
add r0, r4, #0x218
bl func_ov00_020c5e20
ldr r1, [r4, #0x208]
mvn r0, #0
add r1, r4, r1, lsl #2
ldr r1, [r1, #0x200]
cmp r1, r0
ldmeqia sp!, {r3, r4, r5, pc}
ldr r0, [r4, #0x10]
bl func_ov00_020c0e04
mov r0, r4
bl func_ov39_0217cd00
cmp r0, #0
bne _0217c884
ldr r1, [r4, #0x20c]
ldr r0, [r4, #0x210]
add r5, r1, r0
str r5, [r4, #0x20c]
cmp r5, #0x1000
ble _0217c828
mov r0, r4
bl func_ov39_0217ccac
ldmia sp!, {r3, r4, r5, pc}
_0217c828:
ldr r0, [r4, #0x10]
bl func_ov00_020c0d4c
str r5, [r0, #4]
ldr r0, [r4, #0x208]
add r1, r4, #0x128
cmp r0, #0
moveq r2, #1
movne r2, #0
mov r0, #0x6c
mla r0, r2, r0, r1
bl func_ov00_020c0e04
ldr r0, [r4, #0x208]
add r1, r4, #0x128
cmp r0, #0
moveq r2, #1
movne r2, #0
mov r0, #0x6c
mla r0, r2, r0, r1
bl func_ov00_020c0d4c
ldr r1, [r4, #0x20c]
rsb r1, r1, #0x1000
str r1, [r0, #4]
ldmia sp!, {r3, r4, r5, pc}
_0217c884:
ldr r0, _0217c890 ; =0x0000011f
str r0, [r4, #0x210]
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov39_0217c7c4
_0217c890: .word 0x0000011f
.global func_ov39_0217c894
arm_func_start func_ov39_0217c894
func_ov39_0217c894: ; 0x0217c894
stmdb sp!, {r4, r5, r6, r7, r8, lr}
sub sp, sp, #0xc0
mov r5, r0
add r8, r5, #0x80
mov r4, r1
ldmia r8!, {r0, r1, r2, r3}
add r7, sp, #0x90
mov r6, r7
stmia r7!, {r0, r1, r2, r3}
ldmia r8!, {r0, r1, r2, r3}
stmia r7!, {r0, r1, r2, r3}
ldmia r8, {r0, r1, r2, r3}
add lr, sp, #0x60
add r5, r5, #0xb0
stmia r7, {r0, r1, r2, r3}
ldmia r5!, {r0, r1, r2, r3}
mov ip, lr
stmia lr!, {r0, r1, r2, r3}
ldmia r5!, {r0, r1, r2, r3}
stmia lr!, {r0, r1, r2, r3}
ldmia r5, {r0, r1, r2, r3}
stmia lr, {r0, r1, r2, r3}
mov r0, r6
mov r1, ip
add r2, sp, #0x30
bl func_01ff8e84
add r0, sp, #0x30
add r1, sp, #0xc
bl func_020079d8
mov r0, #0
ldr r1, _0217c95c ; =0xfffff99a
str r0, [sp]
str r0, [sp, #8]
add r0, sp, #0
str r1, [sp, #4]
add r1, sp, #0xc
mov r2, r0
bl func_01ff88b0
ldr r1, [sp, #8]
ldr r0, [sp, #0x5c]
ldr r2, [sp, #4]
add r3, r1, r0
ldr r0, [sp, #0x58]
ldr r1, [sp]
add r2, r2, r0
ldr r0, [sp, #0x54]
add r0, r1, r0
stmia r4, {r0, r2, r3}
add sp, sp, #0xc0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
.align 2, 0
arm_func_end func_ov39_0217c894
_0217c95c: .word 0xfffff99a
.global func_ov39_0217c960
arm_func_start func_ov39_0217c960
func_ov39_0217c960: ; 0x0217c960
stmdb sp!, {r4, r5, r6, r7, r8, lr}
sub sp, sp, #0xc0
mov r5, r0
add r8, r5, #0x80
mov r4, r1
ldmia r8!, {r0, r1, r2, r3}
add r7, sp, #0x90
mov r6, r7
stmia r7!, {r0, r1, r2, r3}
ldmia r8!, {r0, r1, r2, r3}
stmia r7!, {r0, r1, r2, r3}
ldmia r8, {r0, r1, r2, r3}
add lr, sp, #0x60
add r5, r5, #0xb0
stmia r7, {r0, r1, r2, r3}
ldmia r5!, {r0, r1, r2, r3}
mov ip, lr
stmia lr!, {r0, r1, r2, r3}
ldmia r5!, {r0, r1, r2, r3}
stmia lr!, {r0, r1, r2, r3}
ldmia r5, {r0, r1, r2, r3}
stmia lr, {r0, r1, r2, r3}
mov r0, r6
mov r1, ip
add r2, sp, #0x30
bl func_01ff8e84
add r0, sp, #0x30
add r1, sp, #0xc
bl func_020079d8
mov r0, #0
ldr r1, _0217ca28 ; =0xfffff666
str r0, [sp]
str r0, [sp, #8]
add r0, sp, #0
str r1, [sp, #4]
add r1, sp, #0xc
mov r2, r0
bl func_01ff88b0
ldr r1, [sp, #8]
ldr r0, [sp, #0x5c]
ldr r2, [sp, #4]
add r3, r1, r0
ldr r0, [sp, #0x58]
ldr r1, [sp]
add r2, r2, r0
ldr r0, [sp, #0x54]
add r0, r1, r0
stmia r4, {r0, r2, r3}
add sp, sp, #0xc0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
.align 2, 0
arm_func_end func_ov39_0217c960
_0217ca28: .word 0xfffff666
.global func_ov39_0217ca2c
arm_func_start func_ov39_0217ca2c
func_ov39_0217ca2c: ; 0x0217ca2c
stmdb sp!, {r3, r4, r5, lr}
sub sp, sp, #8
mov r5, r0
ldr r0, [r5, #0x208]
mov r4, r1
add r0, r5, r0, lsl #2
ldr r0, [r0, #0x200]
cmp r4, r0
bne _0217ca6c
ldr r1, [r5, #0x18]
mov r0, #0x14
mla r0, r4, r0, r1
ldr r0, [r0, #0x10]
cmp r0, #0
addeq sp, sp, #8
ldmeqia sp!, {r3, r4, r5, pc}
_0217ca6c:
mov r1, #0
str r1, [sp, #4]
mov r0, r5
ldr ip, [r0]
add r2, sp, #4
ldr ip, [ip]
add r3, sp, #0
mov r1, r4
blx ip
ldr r1, [sp, #4]
cmp r1, #0
addeq sp, sp, #8
ldmeqia sp!, {r3, r4, r5, pc}
ldr r0, [r5, #0x10]
ldr r3, [sp]
mov r2, #0
bl func_ov00_020c0cc8
ldr r0, [r5, #0xc]
ldr r1, [r0]
ldr r1, [r1, #0x2c]
blx r1
ldr r0, [r5, #0xc]
ldr r1, [r5, #0x10]
ldr r2, [r0]
ldr r2, [r2, #0x24]
blx r2
ldr r1, [r5, #0x208]
mov r0, #0x1000
add r1, r5, r1, lsl #2
str r4, [r1, #0x200]
str r0, [r5, #0x20c]
add sp, sp, #8
ldmia sp!, {r3, r4, r5, pc}
arm_func_end func_ov39_0217ca2c
.global func_ov39_0217caf0
arm_func_start func_ov39_0217caf0
func_ov39_0217caf0: ; 0x0217caf0
stmdb sp!, {r3, r4, r5, lr}
sub sp, sp, #8
mov r5, r0
ldr r2, [r5, #0x208]
mov r4, r1
add r2, r5, r2, lsl #2
ldr r3, [r2, #0x200]
cmp r4, r3
addeq sp, sp, #8
ldmeqia sp!, {r3, r4, r5, pc}
mvn r2, #0
cmp r3, r2
bne _0217cb30
bl func_ov39_0217ca2c
add sp, sp, #8
ldmia sp!, {r3, r4, r5, pc}
_0217cb30:
mov r2, #0
str r2, [sp, #4]
ldr ip, [r0]
add r2, sp, #4
ldr ip, [ip]
add r3, sp, #0
blx ip
ldr r0, [sp, #4]
cmp r0, #0
addeq sp, sp, #8
ldmeqia sp!, {r3, r4, r5, pc}
ldr r0, [r5, #0x20c]
cmp r0, #0x800
ble _0217cbb4
ldr r0, [r5, #0x208]
add r1, r5, #0x128
cmp r0, #0
moveq r2, #1
movne r2, #0
mov r0, #0x6c
mla r0, r2, r0, r1
str r2, [r5, #0x208]
str r0, [r5, #0x10]
ldr r0, [r5, #0x208]
mov r2, #0
add r0, r5, r0, lsl #2
str r4, [r0, #0x200]
str r2, [r5, #0x20c]
ldr r0, [r5, #0x10]
ldr r1, [sp, #4]
ldr r3, [sp]
bl func_ov00_020c0cc8
b _0217cc18
_0217cbb4:
ldr r1, [r5, #0x208]
cmp r1, #0
moveq r2, #1
movne r2, #0
add r0, r5, r2, lsl #2
ldr r0, [r0, #0x200]
cmp r4, r0
bne _0217cbf8
add r1, r5, #0x128
mov r0, #0x6c
mla r0, r2, r0, r1
str r2, [r5, #0x208]
str r0, [r5, #0x10]
ldr r0, [r5, #0x20c]
rsb r0, r0, #0x1000
str r0, [r5, #0x20c]
b _0217cc18
_0217cbf8:
add r0, r5, r1, lsl #2
str r4, [r0, #0x200]
mov r2, #0
str r2, [r5, #0x20c]
ldr r0, [r5, #0x10]
ldr r1, [sp, #4]
ldr r3, [sp]
bl func_ov00_020c0cc8
_0217cc18:
ldr r0, [r5, #0xc]
ldr r1, [r0]
ldr r1, [r1, #0x2c]
blx r1
ldr r0, [r5, #0xc]
ldr r1, [r5, #0x10]
ldr r2, [r0]
ldr r2, [r2, #0x24]
blx r2
ldr r0, [r5, #0x208]
add r2, r5, #0x128
cmp r0, #0
moveq r3, #1
movne r3, #0
mov r1, #0x6c
ldr r0, [r5, #0xc]
mla r1, r3, r1, r2
ldr r2, [r0]
ldr r2, [r2, #0x24]
blx r2
ldr r0, [r5, #0x10]
bl func_ov00_020c0d4c
ldr r1, [r5, #0x20c]
str r1, [r0, #4]
ldr r0, [r5, #0x208]
add r1, r5, #0x128
cmp r0, #0
moveq r2, #1
movne r2, #0
mov r0, #0x6c
mla r0, r2, r0, r1
bl func_ov00_020c0d4c
ldr r1, [r5, #0x20c]
rsb r1, r1, #0x1000
str r1, [r0, #4]
add sp, sp, #8
ldmia sp!, {r3, r4, r5, pc}
arm_func_end func_ov39_0217caf0
.global func_ov39_0217ccac
arm_func_start func_ov39_0217ccac
func_ov39_0217ccac: ; 0x0217ccac
stmdb sp!, {r4, lr}
mov r4, r0
ldr r0, [r4, #0x20c]
cmp r0, #0x1000
ldmeqia sp!, {r4, pc}
mov r0, #0x1000
str r0, [r4, #0x20c]
ldr r0, [r4, #0xc]
ldr r1, [r0]
ldr r1, [r1, #0x2c]
blx r1
ldr r0, [r4, #0xc]
ldr r1, [r4, #0x10]
ldr r2, [r0]
ldr r2, [r2, #0x24]
blx r2
ldr r0, [r4, #0x10]
bl func_ov00_020c0d4c
mov r1, #0x1000
str r1, [r0, #4]
ldmia sp!, {r4, pc}
arm_func_end func_ov39_0217ccac
.global func_ov39_0217cd00
arm_func_start func_ov39_0217cd00
func_ov39_0217cd00: ; 0x0217cd00
ldr r0, [r0, #0x20c]
cmp r0, #0x1000
moveq r0, #1
movne r0, #0
bx lr
arm_func_end func_ov39_0217cd00
.global func_ov39_0217cd14
arm_func_start func_ov39_0217cd14
func_ov39_0217cd14: ; 0x0217cd14
stmdb sp!, {r3, r4, r5, lr}
mov r5, r0
bl func_ov00_020c1554
ldr r3, _0217cf68 ; =data_ov39_02186a38
add r1, r5, #0x158
mov r0, #0
mov r2, #4
str r3, [r5]
bl func_020078f4
mov r1, #0
strb r1, [r5, #0x15c]
str r1, [r5, #0x170]
str r1, [r5, #0x174]
str r1, [r5, #0x178]
str r1, [r5, #0x17c]
str r1, [r5, #0x180]
str r1, [r5, #0x188]
str r1, [r5, #0x18c]
sub r0, r1, #1
str r0, [r5, #0x190]
mov r0, #0xd
str r0, [r5, #0x194]
str r1, [r5, #0x198]
str r1, [r5, #0x19c]
mov r0, #0x1000
str r0, [r5, #0x1b4]
str r1, [r5, #0x1e4]
str r1, [r5, #0x280]
ldr r4, _0217cf6c ; =func_ov39_0217cfe8
str r1, [r5, #0x284]
ldr r3, _0217cf70 ; =func_ov39_0217d004
add r0, r5, #0x288
mov r1, #3
mov r2, #0xc
str r4, [sp]
bl func_0204f614
mov r1, #0
str r1, [r5, #0x2ac]
sub r0, r1, #1
str r0, [r5, #0x2b0]
str r1, [r5, #0x2b4]
add r0, r5, #0x388
blx func_0202ab78
mov r1, #0x10
add r0, r5, #0x500
strh r1, [r0, #0x2c]
mov r1, #0
strh r1, [r0, #0x2e]
strh r1, [r0, #0x30]
strb r1, [r5, #0x550]
strb r1, [r5, #0x551]
add r0, r5, #0x154
add r0, r0, #0x400
mov r1, r5
mov r2, #1
bl func_ov39_0217c038
add r0, r5, #0x6a0
mov r1, r5
mov r2, #0
bl func_ov39_0217c038
add r0, r5, #0x3ec
add r4, r0, #0x400
mov r0, r4
mov r1, r5
add r2, r4, #0x20
add r3, r4, #0x128
bl func_ov00_020c5c2c
ldr r1, _0217cf74 ; =data_ov39_02186af4
add r0, r4, #0x20
str r1, [r4]
bl func_ov39_0217c278
ldr ip, _0217cf78 ; =0x020a9b4d
ldr r3, _0217cf7c ; =func_ov39_0217cfc0
add r0, r4, #0x128
mov r1, #2
mov r2, #0x6c
str ip, [sp]
bl func_0204f614
mov r3, #0
str r3, [r4, #0x208]
mov r1, #0x1000
ldr r0, _0217cf80 ; =0x0000011f
str r1, [r4, #0x20c]
str r0, [r4, #0x210]
mov r1, r5
add r0, r4, #0x218
add r2, r4, #0x238
strb r3, [r4, #0x214]
add r3, r4, #0x314
bl func_ov00_020c5c2c
ldr r1, _0217cf84 ; =data_ov39_02186b60
add r0, r4, #0x238
str r1, [r4, #0x218]
bl func_ov39_021855c4
add r0, r4, #0x314
add r1, r4, #0x338
mov r2, #0
blx func_ov00_020c0c08
ldr r1, _0217cf88 ; =data_ov39_02186b74
mov r0, #0x1000
str r1, [r4, #0x314]
str r0, [r4, #0x370]
mvn r0, #0
str r0, [r4, #0x200]
str r0, [r4, #0x204]
add r0, r5, #0xb60
mov r1, #0
blx func_ov00_020a9588
add r0, r5, #0x3bc
add r0, r0, #0x800
bl func_ov39_02184b20
add r0, r5, #4
add r0, r0, #0xc00
mov r1, #0x1000000
bl func_ov00_020d18f4
add r0, r5, #0xc60
bl func_02038718
mov r0, #0
strb r0, [r5, #0xc9c]
str r0, [r5, #0xcac]
str r0, [r5, #0xcb0]
str r0, [r5, #0xcb4]
str r0, [r5, #0xcb8]
add r1, r5, #0xd4
add r1, r1, #0xc00
str r1, [r5, #0xcc0]
add r1, r5, #0x2a4
add r1, r1, #0x1000
str r1, [r5, #0xcc4]
mov r1, #0x5d0
str r1, [r5, #0xcc8]
str r0, [r5, #0xcd0]
ldr r2, _0217cf8c ; =data_ov39_02186cc0
add r1, r5, #0x158
str r5, [r2, #0x2c]
mov r2, #4
bl func_020078f4
ldr r2, _0217cf8c ; =data_ov39_02186cc0
ldr r0, _0217cf90 ; =data_ov29_0217a4ac
ldr r1, _0217cf94 ; =data_ov39_02186ce0
str r5, [r2, #0x28]
bl func_ov29_0216d74c
mov r2, #1
ldr r0, _0217cf90 ; =data_ov29_0217a4ac
sub r1, r2, #0x80000002
strb r2, [r0, #0x55]
mov r0, r5
str r1, [r5, #0x25c]
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov39_0217cd14
_0217cf68: .word data_ov39_02186a38
_0217cf6c: .word func_ov39_0217cfe8
_0217cf70: .word func_ov39_0217d004
_0217cf74: .word data_ov39_02186af4
_0217cf78: .word 0x020a9b4d
_0217cf7c: .word func_ov39_0217cfc0
_0217cf80: .word 0x0000011f
_0217cf84: .word data_ov39_02186b60
_0217cf88: .word data_ov39_02186b74
_0217cf8c: .word data_ov39_02186cc0
_0217cf90: .word data_ov29_0217a4ac
_0217cf94: .word data_ov39_02186ce0
.global func_ov39_0217cf98
arm_func_start func_ov39_0217cf98
func_ov39_0217cf98: ; 0x0217cf98
stmdb sp!, {r4, lr}
mov r4, r0
blx func_ov00_020a95ec
mov r0, r4
ldmia sp!, {r4, pc}
arm_func_end func_ov39_0217cf98
.global func_ov39_0217cfac
arm_func_start func_ov39_0217cfac
func_ov39_0217cfac: ; 0x0217cfac
stmdb sp!, {r4, lr}
mov r4, r0
blx func_ov00_020a95ec
mov r0, r4
ldmia sp!, {r4, pc}
arm_func_end func_ov39_0217cfac
.global func_ov39_0217cfc0
arm_func_start func_ov39_0217cfc0
func_ov39_0217cfc0: ; 0x0217cfc0
stmdb sp!, {r4, lr}
mov r4, r0
add r1, r4, #0x24
mov r2, #0
blx func_ov00_020c0c08
ldr r1, _0217cfe4 ; =data_ov39_02186b08
mov r0, r4
str r1, [r4]
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov39_0217cfc0
_0217cfe4: .word data_ov39_02186b08
.global func_ov39_0217cfe8
arm_func_start func_ov39_0217cfe8
func_ov39_0217cfe8: ; 0x0217cfe8
stmdb sp!, {r4, lr}
mov r4, r0
bl func_ov00_020b7e6c
mov r0, r4
bl func_ov00_020b7df0
mov r0, r4
ldmia sp!, {r4, pc}
arm_func_end func_ov39_0217cfe8
.global func_ov39_0217d004
arm_func_start func_ov39_0217d004
func_ov39_0217d004: ; 0x0217d004
mov r2, #0
str r2, [r0]
sub r1, r2, #1
stmib r0, {r1, r2}
bx lr
arm_func_end func_ov39_0217d004
.global func_ov39_0217d018
arm_func_start func_ov39_0217d018
func_ov39_0217d018: ; 0x0217d018
stmdb sp!, {r4, lr}
mov r4, r0
ldr r1, _0217d104 ; =data_ov39_02186cc0
mov r2, #0
add r0, r4, #0xc60
str r2, [r1, #0x2c]
bl func_0203780c
add r0, r4, #4
add r0, r0, #0xc00
bl func_ov00_020d1980
add r0, r4, #0x3bc
add r0, r0, #0x800
bl func_ov39_02184b74
add r0, r4, #0xb60
blx func_ov00_020a95a4
add r0, r4, #0xb00
blx func_ov00_020a9b0c
add r0, r4, #0x224
add r0, r0, #0x800
blx func_ov00_020a95ec
add r0, r4, #0x114
add r0, r0, #0x800
mov r1, #2
mov r2, #0x6c
ldr r3, _0217d108 ; =0x020a9b4d
bl func_0204f754
add r0, r4, #0xc
add r0, r0, #0x800
blx func_ov00_020a95ec
add r0, r4, #0x39c
add r0, r0, #0x400
blx func_ov00_020a9acc
add r0, r4, #0x31c
add r0, r0, #0x400
blx func_ov00_020a9b6c
add r0, r4, #0x6c0
blx func_ov00_020a95a4
add r0, r4, #0x650
blx func_ov00_020a9acc
add r0, r4, #0x5d0
blx func_ov00_020a9b6c
add r0, r4, #0x174
add r0, r0, #0x400
blx func_ov00_020a95a4
add r0, r4, #0x388
blx func_0202ab64
add r0, r4, #0x2ac
bl func_ov00_020b7e6c
add r0, r4, #0x2ac
bl func_ov00_020b7df0
add r0, r4, #0x288
mov r1, #3
mov r2, #0xc
ldr r3, _0217d10c ; =func_ov39_0217cfe8
bl func_0204f754
mov r0, r4
bl func_ov00_020c1730
mov r0, r4
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov39_0217d018
_0217d104: .word data_ov39_02186cc0
_0217d108: .word 0x020a9b4d
_0217d10c: .word func_ov39_0217cfe8
.global func_ov39_0217d110
arm_func_start func_ov39_0217d110
func_ov39_0217d110: ; 0x0217d110
stmdb sp!, {r4, lr}
mov r4, r0
ldr r1, _0217d204 ; =data_ov39_02186cc0
mov r2, #0
add r0, r4, #0xc60
str r2, [r1, #0x2c]
bl func_0203780c
add r0, r4, #4
add r0, r0, #0xc00
bl func_ov00_020d1980
add r0, r4, #0x3bc
add r0, r0, #0x800
bl func_ov39_02184b74
add r0, r4, #0xb60
blx func_ov00_020a95a4
add r0, r4, #0xb00
blx func_ov00_020a9b0c
add r0, r4, #0x224
add r0, r0, #0x800
blx func_ov00_020a95ec
add r0, r4, #0x114
add r0, r0, #0x800
mov r1, #2
mov r2, #0x6c
ldr r3, _0217d208 ; =0x020a9b4d
bl func_0204f754
add r0, r4, #0xc
add r0, r0, #0x800
blx func_ov00_020a95ec
add r0, r4, #0x39c
add r0, r0, #0x400
blx func_ov00_020a9acc
add r0, r4, #0x31c
add r0, r0, #0x400
blx func_ov00_020a9b6c
add r0, r4, #0x6c0
blx func_ov00_020a95a4
add r0, r4, #0x650
blx func_ov00_020a9acc
add r0, r4, #0x5d0
blx func_ov00_020a9b6c
add r0, r4, #0x174
add r0, r0, #0x400
blx func_ov00_020a95a4
add r0, r4, #0x388
blx func_0202ab64
add r0, r4, #0x2ac
bl func_ov00_020b7e6c
add r0, r4, #0x2ac
bl func_ov00_020b7df0
add r0, r4, #0x288
mov r1, #3
mov r2, #0xc
ldr r3, _0217d20c ; =func_ov39_0217cfe8
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_ov39_0217d110
_0217d204: .word data_ov39_02186cc0
_0217d208: .word 0x020a9b4d
_0217d20c: .word func_ov39_0217cfe8
.global func_ov39_0217d210
arm_func_start func_ov39_0217d210
func_ov39_0217d210: ; 0x0217d210
stmdb sp!, {r3, r4, r5, lr}
sub sp, sp, #0x48
ldr r1, _0217d504 ; =data_027e0fb4
mov r4, r0
ldr r0, [r1]
mov r1, #0
strh r1, [r0, #0xba]
add r2, r4, #0x100
strh r1, [r2, #0x20]
mov r3, #2
strb r3, [r4, #0x124]
mov r0, #4
strb r0, [r4, #0x125]
mov r0, #1
strb r0, [r4, #0x128]
str r3, [r4, #0x12c]
ldr r3, _0217d508 ; =0x00001333
str r1, [r4, #0x7c]
str r3, [r4, #0x80]
str r1, [r4, #0x84]
ldr r0, _0217d50c ; =0x0000199a
str r3, [r4, #0x88]
str r0, [r4, #0x1ac]
ldr r3, [r4, #0x48]
add r0, r4, #0x3ec
str r3, [r4, #0x268]
ldr r3, [r4, #0x4c]
add r0, r0, #0x400
str r3, [r4, #0x26c]
ldr r3, [r4, #0x50]
str r3, [r4, #0x270]
ldrsh r3, [r4, #0x78]
strh r3, [r2, #0x68]
str r1, [r4, #0x1e8]
str r1, [r4, #0x1ec]
bl func_ov39_0217c748
add r0, r4, #0x228
ldr r1, _0217d510 ; =func_ov39_0217c24c
add r0, r0, #0x800
str r4, [r4, #0xa54]
bl func_02018cb8
ldr r0, _0217d514 ; =data_027e0fc8
ldr r0, [r0]
ldr r1, [r0]
ldr r1, [r1, #0x80]
blx r1
ldr r0, _0217d518 ; =data_027e0fec
ldr r0, [r0]
add r0, r0, #0x18
add r0, r0, #0x4000
bl func_ov00_020c4588
mov r1, r0
add r0, r4, #0xb60
ldr r2, [r0]
ldr r2, [r2, #0xc]
blx r2
mov r0, r4
mov r1, #0
bl func_ov39_0217d5d4
ldr r1, [r4, #0x158]
mov r0, r4
orr r1, r1, #0x200
str r1, [r4, #0x158]
mov r1, #8
mov r2, #0x64
mov r3, #0
bl func_ov39_0217ec34
ldr r0, _0217d51c ; =data_ov00_020eec9c
mov r1, #0x3a
bl func_ov00_020d77e4
mov r0, r4
mov r1, #0
bl func_ov39_0218599c
add r0, r4, #0x154
add r0, r0, #0x400
bl func_ov39_0217c0b4
add r0, r4, #0x6a0
bl func_ov39_0217c0b4
ldr r1, [r4, #8]
ldr r0, _0217d518 ; =data_027e0fec
str r1, [r4, #0xc24]
ldr r2, [r4, #0xc]
add r1, r4, #0x1000
str r2, [r4, #0xc28]
ldr r0, [r0]
add r0, r0, #0x1000
ldr r0, [r0, #0x428]
str r0, [r1, #0x878]
ldr r1, [r1, #0x878]
ldr r0, _0217d520 ; =data_ov29_0217a4ac
bl func_ov29_0216d86c
add r1, r4, #0x1000
str r0, [r1, #0x874]
ldr r0, [r1, #0x878]
ldr r1, _0217d524 ; =data_ov39_02186c08
bl func_ov29_0216db60
mov r5, r0
add r0, r4, #0x1000
ldr r0, [r0, #0x878]
mov r1, r5
bl func_ov29_0216db74
add r2, r4, #0x1000
str r0, [r2, #0x87c]
ldr r0, [r2, #0x878]
mov r1, r5
bl func_ov29_0216dba8
add r1, r4, #0x1000
str r0, [r1, #0x880]
mov r0, #3
str r0, [r4, #0x54c]
mov r1, #0
add r0, r4, #0x500
strh r1, [r0, #0x30]
strh r1, [r0, #0x2e]
mov r3, #2
add r0, r4, #0x3ac
mov r1, #0x4f
mov r2, #6
str r3, [sp]
bl func_ov00_020c0ecc
mvn r0, #0
str r0, [sp, #4]
str r0, [sp, #8]
add r0, sp, #0x1c
bl func_ov00_020c1500
mvn r0, #0
str r0, [sp, #0x38]
str r0, [sp, #0x3c]
add r0, sp, #0x1c
bl func_ov00_020c3348
ldr r0, [r4, #8]
add r1, sp, #4
str r0, [sp, #0x38]
ldr r2, [r4, #0xc]
ldr r0, _0217d528 ; =data_027e0fe8
str r2, [sp, #0x3c]
str r1, [sp]
ldr r0, [r0]
ldr r1, _0217d52c ; =0x4c4f4e44
add r2, r4, #0x48
add r3, sp, #0x1c
bl func_ov00_020c4048
ldr r1, [sp, #4]
mvn r0, #0
cmp r1, r0
beq _0217d46c
ldr r0, _0217d530 ; =data_027e0fe4
add r1, sp, #4
ldr r0, [r0]
bl func_ov00_020c3674
str r0, [r4, #0x284]
_0217d46c:
add r0, r4, #0x7c
add r3, sp, #0xc
ldmia r0, {r0, r1, r2}
stmia r3, {r0, r1, r2}
ldr r1, [r4, #0x88]
mov r0, #2
str r1, [sp, #0x18]
ldr ip, [r4, #0x284]
sub r1, r0, #3
str r0, [ip, #0x12c]
ldr r2, [sp, #0xc]
mov r0, #1
str r2, [ip, #0x7c]
ldr r2, [sp, #0x10]
str r2, [ip, #0x80]
ldr r2, [sp, #0x14]
str r2, [ip, #0x84]
ldr r3, [sp, #0x18]
str r3, [ip, #0x88]
ldr r2, [ip, #0x7c]
str r2, [ip, #0xa8]
ldr r2, [ip, #0x80]
str r2, [ip, #0xac]
ldr r2, [ip, #0x84]
str r2, [ip, #0xb0]
str r3, [ip, #0xb4]
str r1, [sp, #0x18]
ldr r2, [r4, #0x284]
ldr r1, [sp, #0xc]
str r1, [r2, #0x7c]
ldr r1, [sp, #0x10]
str r1, [r2, #0x80]
ldr r1, [sp, #0x14]
str r1, [r2, #0x84]
ldr r1, [sp, #0x18]
str r1, [r2, #0x88]
add sp, sp, #0x48
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov39_0217d210
_0217d504: .word data_027e0fb4
_0217d508: .word 0x00001333
_0217d50c: .word 0x0000199a
_0217d510: .word func_ov39_0217c24c
_0217d514: .word data_027e0fc8
_0217d518: .word data_027e0fec
_0217d51c: .word data_ov00_020eec9c
_0217d520: .word data_ov29_0217a4ac
_0217d524: .word data_ov39_02186c08
_0217d528: .word data_027e0fe8
_0217d52c: .word 0x4c4f4e44
_0217d530: .word data_027e0fe4
.global func_ov39_0217d534
arm_func_start func_ov39_0217d534
func_ov39_0217d534: ; 0x0217d534
stmdb sp!, {r3, r4, lr}
sub sp, sp, #0x14
mov r4, r0
ldr r1, [r4, #0x4c]
ldr r0, _0217d5c4 ; =data_027e0e60
add r1, r1, #0x3000
str r1, [r4, #0x4c]
ldr r1, [r4, #0x48]
ldr r0, [r0]
str r1, [sp, #8]
ldr r2, [r4, #0x4c]
add r1, sp, #8
str r2, [sp, #0xc]
ldr r3, [r4, #0x50]
mov r2, #0
str r3, [sp, #0x10]
bl func_ov00_02083ee0
ldr r1, _0217d5c8 ; =data_027e0f94
mov r3, r0
str r0, [r4, #0x4c]
add r0, r4, #0x48
add r2, r4, #0x268
str r3, [r4, #0x1b0]
bl func_01ff9bf8
ldr r1, _0217d5cc ; =data_027e0fe4
ldr r2, _0217d5d0 ; =0x4e415649
ldr r1, [r1]
add r0, sp, #0
bl func_ov00_020c3894
ldr r0, _0217d5cc ; =data_027e0fe4
add r1, sp, #0
ldr r0, [r0]
bl func_ov00_020c3674
str r0, [r4, #0x280]
add sp, sp, #0x14
ldmia sp!, {r3, r4, pc}
.align 2, 0
arm_func_end func_ov39_0217d534
_0217d5c4: .word data_027e0e60
_0217d5c8: .word data_027e0f94
_0217d5cc: .word data_027e0fe4
_0217d5d0: .word 0x4e415649
.global func_ov39_0217d5d4
arm_func_start func_ov39_0217d5d4
func_ov39_0217d5d4: ; 0x0217d5d4
stmdb sp!, {r3, r4, r5, lr}
mov r5, r0
mov r2, #0
add r0, r5, #0x288
mov r4, r1
strb r2, [r5, #0x911]
bl func_ov00_020b7e6c
add r0, r5, #0x294
bl func_ov00_020b7e6c
add r0, r5, #0x2a0
bl func_ov00_020b7e6c
mov r0, #0
str r0, [r5, #0x16c]
ldr r0, [r5, #0x158]
ldr r1, _0217d678 ; =0x00001333
bic r2, r0, #0x200
bic r0, r2, #0x400
bic r0, r0, #0x4000000
str r0, [r5, #0x158]
ldr r0, _0217d67c ; =0x0000199a
str r1, [r5, #0x88]
str r0, [r5, #0x1ac]
ldr r0, [r5, #0x158]
tst r0, #0x10
ldr r0, _0217d680 ; =data_ov39_021863a4
movne r4, #1
add r1, r0, r4, lsl #3
ldr r0, [r1, #4]
tst r0, #1
add r0, r5, r0, asr #1
ldreq r1, [r1]
beq _0217d660
ldr r2, [r0]
ldr r1, [r1]
ldr r1, [r2, r1]
_0217d660:
blx r1
cmp r0, #0
movne r0, #0
strne r0, [r5, #0x138]
strne r4, [r5, #0x130]
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov39_0217d5d4
_0217d678: .word 0x00001333
_0217d67c: .word 0x0000199a
_0217d680: .word data_ov39_021863a4
.global func_ov39_0217d684
arm_func_start func_ov39_0217d684
func_ov39_0217d684: ; 0x0217d684
stmdb sp!, {r3, r4, r5, lr}
mov r4, r0
mov r0, #0x10000
ldr r2, [r4, #0xc78]
rsb r0, r0, #0
and r0, r2, r0
mov r5, r1
cmp r0, #0x1000000
beq _0217d6b4
ldr r0, _0217d700 ; =data_027e0c68
add r1, r4, #0xc60
bl func_02036888
_0217d6b4:
mov r0, r4
mov r1, r5
bl func_ov00_020c313c
cmp r0, #0
beq _0217d6dc
ldr r1, [r4, #0x158]
mov r0, r4
bic r1, r1, #0x200000
str r1, [r4, #0x158]
bl func_ov39_0217d790
_0217d6dc:
mov r0, #3
str r0, [r4, #0x54c]
ldr r0, [r4, #0x158]
tst r0, #0x200000
movne r1, #1
moveq r1, #0
add r0, r4, #0x3ac
bl func_ov00_020c1424
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov39_0217d684
_0217d700: .word data_027e0c68
.global func_ov39_0217d704
arm_func_start func_ov39_0217d704
func_ov39_0217d704: ; 0x0217d704
stmdb sp!, {r3, r4, r5, lr}
mov r4, r0
mov r0, #0x10000
ldr r2, [r4, #0xc78]
rsb r0, r0, #0
and r0, r2, r0
mov r5, r1
cmp r0, #0x1000000
beq _0217d734
ldr r0, _0217d78c ; =data_027e0c68
add r1, r4, #0xc60
bl func_02036888
_0217d734:
mov r0, r4
mov r1, r5
bl func_ov00_020c313c
cmp r0, #0
beq _0217d768
ldr r0, [r4, #0x158]
tst r0, #0x200
beq _0217d768
ldr r1, [r4, #0x158]
mov r0, r4
bic r1, r1, #0x200000
str r1, [r4, #0x158]
bl func_ov39_0217d790
_0217d768:
mov r0, #3
str r0, [r4, #0x54c]
ldr r0, [r4, #0x158]
tst r0, #0x200000
movne r1, #1
moveq r1, #0
add r0, r4, #0x3ac
bl func_ov00_020c1424
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov39_0217d704
_0217d78c: .word data_027e0c68
.global func_ov39_0217d790
arm_func_start func_ov39_0217d790
func_ov39_0217d790: ; 0x0217d790
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #0x78
mov r5, r0
ldr r0, [r5, #0x158]
bic r0, r0, #0x100000
str r0, [r5, #0x158]
ldr r0, [r5, #0x48]
str r0, [r5, #0x54]
ldr r0, [r5, #0x4c]
str r0, [r5, #0x58]
ldr r0, [r5, #0x50]
str r0, [r5, #0x5c]
ldr r0, [r5, #0x188]
cmp r0, #0
subne r0, r0, #1
strne r0, [r5, #0x188]
ldr r0, _0217dcf8 ; =data_ov29_0217bd28
ldr r0, [r0]
cmp r0, #0
beq _0217d7f8
mov r0, r5
bl func_ov39_0217f034
cmp r0, #0
beq _0217d7f8
mov r0, r5
bl func_ov39_0217f0c0
_0217d7f8:
ldrb r0, [r5, #0xc9c]
cmp r0, #0
beq _0217d884
add r0, r5, #0x3bc
add r0, r0, #0x800
bl func_ov39_02184bb8
ldr r0, [r5, #0x130]
ldr r1, _0217dcfc ; =data_ov39_0218646c
add r1, r1, r0, lsl #3
ldr r0, [r1, #4]
tst r0, #1
add r0, r5, r0, asr #1
ldreq r1, [r1]
beq _0217d83c
ldr r2, [r0]
ldr r1, [r1]
ldr r1, [r2, r1]
_0217d83c:
blx r1
mov r0, r5
bl func_ov39_0217ec98
cmp r0, #0
bne _0217d86c
mov r0, r5
mov r1, #0x12
bl func_ov00_020c1fc8
mov r1, #0
mov r0, r5
mov r2, r1
bl func_ov00_020c243c
_0217d86c:
ldr r0, [r5, #0x158]
tst r0, #0x40
beq _0217d9a4
mov r0, r5
bl func_ov39_0217eae4
b _0217d9a4
_0217d884:
ldr r0, _0217dd00 ; =data_ov00_020eec9c
ldr r1, _0217dd04 ; =0x00000325
bl func_ov00_020d7d18
ldr r0, [r5, #0x158]
tst r0, #0x40
ldr r0, [r5, #0x130]
bne _0217d8b4
cmp r0, #1
beq _0217d8cc
mov r0, r5
bl func_ov39_0217f32c
b _0217d8cc
_0217d8b4:
cmp r0, #1
beq _0217d8cc
mov r0, r5
bl func_ov39_0217eae4
mov r0, r5
bl func_ov39_0217f570
_0217d8cc:
add r0, r5, #0x3bc
add r0, r0, #0x800
bl func_ov39_02184e6c
mov r0, r5
bl func_ov39_02185aa4
mov r0, r5
bl func_ov00_020c2bf4
ldr r0, [r5, #0x130]
ldr r1, _0217dcfc ; =data_ov39_0218646c
add r1, r1, r0, lsl #3
ldr r0, [r1, #4]
tst r0, #1
add r0, r5, r0, asr #1
ldreq r1, [r1]
beq _0217d914
ldr r2, [r0]
ldr r1, [r1]
ldr r1, [r2, r1]
_0217d914:
blx r1
ldr r0, [r5, #0x130]
cmp r0, #0x10
ldrne r0, [r5, #0x1e4]
cmpne r0, #0
beq _0217d950
add r0, r5, #0x154
add r0, r0, #0x400
bl func_ov00_020c5e20
add r0, r5, #0x6a0
bl func_ov00_020c5e20
ldr r2, _0217dd08 ; =0x0000011f
add r0, r5, #0x1e4
mov r1, #0
bl func_0202b0f4
_0217d950:
mov r0, r5
bl func_ov39_0217e82c
add r0, r5, #0x3ec
add r0, r0, #0x400
bl func_ov39_0217c7c4
mov r0, r5
bl func_ov39_0217fc50
mov r0, r5
bl func_ov39_0217e8b4
add r0, r5, #0x48
add r1, r5, #0x60
mov r2, r0
bl func_01ff9bc4
ldr r1, [r5, #0x1b0]
ldr r0, [r5, #0x4c]
cmp r0, r1
bge _0217d9a4
str r1, [r5, #0x4c]
mov r0, #0
str r0, [r5, #0x64]
str r0, [r5, #0x6c]
_0217d9a4:
ldr r0, [r5, #0x130]
cmp r0, #0x10
bne _0217da40
mov r0, r5
bl func_ov00_020c2974
ldr r2, [r5, #0x48]
ldr r1, _0217dd0c ; =data_027e0f64
str r2, [sp, #0x54]
ldr r2, [r5, #0x4c]
ldr r1, [r1]
str r2, [sp, #0x58]
ldr r2, [r5, #0x50]
mov r4, r0
str r2, [sp, #0x5c]
ldr r0, [r1, #8]
add r1, sp, #0x54
mov r2, r4
bl func_ov00_02087fe0
add r0, r5, #0x100
strh r4, [r0, #0x68]
mov r0, #0x14000
str r0, [r5, #0x1ec]
ldr r1, [r5, #0x48]
ldr r0, _0217dd0c ; =data_027e0f64
str r1, [sp, #0x48]
ldr r1, [r5, #0x4c]
ldr r0, [r0]
str r1, [sp, #0x4c]
ldr r2, [r5, #0x50]
add r1, sp, #0x48
str r2, [sp, #0x50]
ldr r0, [r0, #4]
mov r2, r4
bl func_ov00_02087fe0
ldr r0, _0217dd10 ; =data_027e0fc8
add r1, r5, #0x48
ldr r0, [r0]
bl func_ov00_020bb6d4
b _0217dcc4
_0217da40:
cmp r0, #1
bne _0217dba4
ldr r0, [r5, #0x194]
cmp r0, #9
blt _0217db14
cmp r0, #0xb
bge _0217db14
ldr r2, [r5, #0x280]
ldr r1, _0217dd14 ; =0x000004cd
ldr r6, [r2, #0x48]
add r0, sp, #0x6c
str r6, [sp, #0x6c]
ldr lr, [r2, #0x4c]
str lr, [sp, #0x70]
ldr ip, [r2, #0x50]
str ip, [sp, #0x74]
ldr r4, [r5, #0x50]
ldr r3, [r5, #0x4c]
ldr r2, [r5, #0x48]
sub r4, ip, r4
sub r3, lr, r3
sub r2, r6, r2
str r2, [sp, #0x6c]
str r3, [sp, #0x70]
str r4, [sp, #0x74]
bl func_01fffbec
ldr r1, [r5, #0x48]
add r0, sp, #0x6c
str r1, [sp, #0x3c]
ldr r2, [r5, #0x4c]
add r1, sp, #0x3c
str r2, [sp, #0x40]
ldr r3, [r5, #0x50]
mov r2, r0
str r3, [sp, #0x44]
bl func_01ff9bc4
add r1, sp, #0x6c
add r0, r5, #0x238
mov r2, #0x8000
bl func_0202b308
ldr r1, [r5, #0x238]
ldr r0, _0217dd0c ; =data_027e0f64
str r1, [sp, #0x30]
ldr r1, [r5, #0x23c]
ldr r0, [r0]
str r1, [sp, #0x34]
ldr r2, [r5, #0x240]
add r1, sp, #0x30
str r2, [sp, #0x38]
ldrsh r2, [r5, #0x78]
ldr r0, [r0, #8]
bl func_ov00_02087fe0
b _0217db54
_0217db14:
add r0, r5, #0x238
add r1, r5, #0x48
mov r2, #0x8000
bl func_0202b308
ldr r1, [r5, #0x238]
ldr r0, _0217dd0c ; =data_027e0f64
str r1, [sp, #0x24]
ldr r1, [r5, #0x23c]
ldr r0, [r0]
str r1, [sp, #0x28]
ldr r2, [r5, #0x240]
add r1, sp, #0x24
str r2, [sp, #0x2c]
ldrsh r2, [r5, #0x78]
ldr r0, [r0, #8]
bl func_ov00_02087fe0
_0217db54:
ldr r1, [r5, #0x48]
ldr r0, _0217dd0c ; =data_027e0f64
str r1, [sp, #0x18]
ldr r1, [r5, #0x4c]
ldr r0, [r0]
str r1, [sp, #0x1c]
ldr r2, [r5, #0x50]
add r1, sp, #0x18
str r2, [sp, #0x20]
ldrsh r2, [r5, #0x78]
ldr r0, [r0, #4]
bl func_ov00_02087fe0
ldr r0, [r5, #0x194]
cmp r0, #1
beq _0217dcc4
ldr r0, _0217dd10 ; =data_027e0fc8
add r1, r5, #0x48
ldr r0, [r0]
bl func_ov00_020bb6d4
b _0217dcc4
_0217dba4:
cmp r0, #0x17
bge _0217dcc4
ldrsh r2, [r5, #0x78]
ldr r1, [r5, #0x1ec]
add r0, r5, #0x100
cmp r1, #0x1000
strleh r2, [r0, #0x68]
ble _0217dbec
ldrsh r0, [r0, #0x68]
sub r0, r2, r0
mov r0, r0, lsl #0x10
mov r0, r0, asr #0x4
bl func_01ff98e0
add r1, r5, #0x100
ldrsh r2, [r1, #0x68]
add r0, r0, #0x800
add r0, r2, r0, asr #12
strh r0, [r1, #0x68]
_0217dbec:
ldr r0, [r5, #0x1ec]
ldr r1, _0217dd0c ; =data_027e0f64
cmp r0, #0x1000
subge r0, r0, #0x1000
strge r0, [r5, #0x1ec]
ldr r0, [r5, #0x48]
ldr r1, [r1]
str r0, [sp, #0xc]
ldr r2, [r5, #0x4c]
add r0, r5, #0x100
str r2, [sp, #0x10]
ldr r2, [r5, #0x50]
str r2, [sp, #0x14]
ldrsh r2, [r0, #0x68]
ldr r0, [r1, #8]
add r1, sp, #0xc
bl func_ov00_02087fe0
ldr r0, [r5, #0x158]
tst r0, #0x4000000
movne r0, #0x14000
strne r0, [r5, #0x1e8]
bne _0217dc74
ldr r1, _0217dd18 ; =data_027e0f94
add r2, sp, #0x60
add r0, r5, #0x48
bl func_01ff9bf8
ldr r2, [r5, #0x1e8]
add r1, sp, #0x60
add r0, r5, #0x268
bl func_0202b308
ldr r0, [r5, #0x1e8]
cmp r0, #0x1000
subge r0, r0, #0x1000
strge r0, [r5, #0x1e8]
_0217dc74:
ldr r0, _0217dd18 ; =data_027e0f94
add r2, sp, #0x60
add r1, r5, #0x268
bl func_01ff9bc4
ldr r3, [sp, #0x60]
ldr r1, [sp, #0x68]
ldr r0, _0217dd0c ; =data_027e0f64
ldr r2, [sp, #0x64]
str r1, [sp, #8]
str r3, [sp]
str r2, [sp, #4]
ldr r0, [r0]
ldrsh r2, [r5, #0x78]
ldr r0, [r0, #4]
add r1, sp, #0
bl func_ov00_02087fe0
ldr r0, _0217dd10 ; =data_027e0fc8
add r1, r5, #0x48
ldr r0, [r0]
bl func_ov00_020bb6d4
_0217dcc4:
mov r0, r5
bl func_ov39_0217f810
mov r0, r5
bl func_ov39_0217e434
ldr r0, [r5, #0x280]
ldrb r1, [r0, #0x11a]
cmp r1, #0
addne sp, sp, #0x78
ldmneia sp!, {r4, r5, r6, pc}
ldrb r1, [r5, #0xc9c]
bl func_ov39_02185324
add sp, sp, #0x78
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
arm_func_end func_ov39_0217d790
_0217dcf8: .word data_ov29_0217bd28
_0217dcfc: .word data_ov39_0218646c
_0217dd00: .word data_ov00_020eec9c
_0217dd04: .word 0x00000325
_0217dd08: .word 0x0000011f
_0217dd0c: .word data_027e0f64
_0217dd10: .word data_027e0fc8
_0217dd14: .word 0x000004cd
_0217dd18: .word data_027e0f94
.global func_ov39_0217dd1c
arm_func_start func_ov39_0217dd1c
func_ov39_0217dd1c: ; 0x0217dd1c
stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
sub sp, sp, #0x9c
mov r5, r0
add r0, r5, #0x3ec
add r0, r0, #0x400
mov r4, r1
bl func_ov00_020c5f1c
ldr r0, [r5, #0x130]
cmp r0, #0x17
bge _0217dd7c
add r0, sp, #0x30
mov r1, r5
bl func_ov39_0217f798
ldr r1, [sp, #0x30]
mov r0, r5
str r1, [r5, #0x208]
ldr r1, [sp, #0x34]
str r1, [r5, #0x20c]
ldr r1, [sp, #0x38]
str r1, [r5, #0x210]
bl func_ov39_02185ae0
mvn r0, #0x80000000
str r0, [r5, #0x25c]
b _0217ddcc
_0217dd7c:
add r0, r5, #0xac
add r0, r0, #0xc00
bl func_ov17_021687f0
ldrh r1, [r5, #0x78]
ldr r3, _0217dfac ; =data_02050f54
add r0, sp, #0x78
mov r1, r1, asr #0x4
mov r2, r1, lsl #0x1
add r1, r2, #1
mov r6, r2, lsl #0x1
mov r2, r1, lsl #0x1
ldrsh r1, [r3, r6]
ldrsh r2, [r3, r2]
blx func_01ff8214
add r0, r5, #0xb60
ldr r3, [r0]
add r1, sp, #0x78
ldr r3, [r3, #0x14]
add r2, r5, #0x48
blx r3
_0217ddcc:
cmp r4, #0
bne _0217de6c
ldr r0, [r5, #0x158]
tst r0, #0x400000
beq _0217de3c
add r1, r5, #0xc
add r0, sp, #0x24
add r1, r1, #0x800
mov r2, #2
bl func_ov39_0217c5f8
ldr r0, [sp, #0x24]
add r1, r5, #0xc
str r0, [r5, #0x244]
ldr r2, [sp, #0x28]
add r0, sp, #0x18
str r2, [r5, #0x248]
ldr r2, [sp, #0x2c]
add r1, r1, #0x800
str r2, [r5, #0x24c]
mov r2, #3
bl func_ov39_0217c5f8
ldr r0, [sp, #0x18]
str r0, [r5, #0x250]
ldr r0, [sp, #0x1c]
str r0, [r5, #0x254]
ldr r0, [sp, #0x20]
str r0, [r5, #0x258]
b _0217de6c
_0217de3c:
tst r0, #0x800000
beq _0217de6c
add r0, r5, #0x224
add r0, r0, #0x800
add r1, r5, #0x244
mov r2, #1
bl func_ov39_0218577c
add r0, r5, #0x224
add r0, r0, #0x800
add r1, r5, #0x250
mov r2, #2
bl func_ov39_0218577c
_0217de6c:
add r0, r5, #0x3ac
add r1, r5, #0x244
add r2, r5, #0x250
mov r3, #0x1f
bl func_ov00_020c1450
ldrb r0, [r5, #0xc9c]
cmp r0, #0
bne _0217df70
ldr r0, [r5, #0x1e4]
cmp r0, #0
beq _0217df70
ldr r6, _0217dfb0 ; =data_027e0194
add r4, sp, #0x3c
ldmia r6!, {r0, r1, r2, r3}
mov ip, r4
stmia r4!, {r0, r1, r2, r3}
ldmia r6!, {r0, r1, r2, r3}
stmia r4!, {r0, r1, r2, r3}
ldr r0, [r6]
add r1, r5, #0x154
str r0, [r4]
ldr r2, [r5, #0x1e4]
ldr r0, _0217dfb4 ; =0xffffe8cd
str r2, [sp, #0x6c]
str r2, [sp, #0x70]
str r2, [sp, #0x74]
ldr r2, [r5, #0x4c]
ldr r4, [r5, #0x50]
add r3, r2, r0
ldr r2, [r5, #0x48]
add r0, r1, #0x400
str r2, [sp, #0x60]
str r3, [sp, #0x64]
add r1, sp, #0x6c
add r3, sp, #0x60
mov r2, ip
str r4, [sp, #0x68]
bl func_ov00_020c5f80
ldr r0, [sp, #0x70]
ldr r1, _0217dfb8 ; =0x00001666
bl func_01ff98e0
rsb r7, r0, #0x1000
mov r4, #0x5000
ldr r1, [r5, #0x4c]
mov ip, #0
umull sb, r8, r7, r4
add lr, r1, #0x1000
mla r8, r7, ip, r8
mov r6, r7, asr #0x1f
mla r8, r6, r4, r8
adds r6, sb, #0x800
ldr r2, [r5, #0x50]
ldr r0, [r5, #0x48]
adc r4, r8, #0
mov r6, r6, lsr #0xc
orr r6, r6, r4, lsl #20
str r0, [sp, #0x60]
str r2, [sp, #0x68]
add r4, r6, lr
add r0, r5, #0x6a0
add r1, sp, #0x6c
add r2, sp, #0x3c
add r3, sp, #0x60
str r4, [sp, #0x64]
bl func_ov00_020c5f80
_0217df70:
mov r3, #0x1000
str r3, [sp]
mov r1, #0
str r1, [sp, #4]
mov r0, #0x1f
str r0, [sp, #8]
mov r4, #1
str r4, [sp, #0xc]
str r4, [sp, #0x10]
ldr r0, _0217dfbc ; =data_ov00_020e9370
add r2, r5, #0x48
str r4, [sp, #0x14]
bl func_ov05_02102c2c
add sp, sp, #0x9c
ldmia sp!, {r4, r5, r6, r7, r8, sb, pc}
.align 2, 0
arm_func_end func_ov39_0217dd1c
_0217dfac: .word data_02050f54
_0217dfb0: .word data_027e0194
_0217dfb4: .word 0xffffe8cd
_0217dfb8: .word 0x00001666
_0217dfbc: .word data_ov00_020e9370
.global func_ov39_0217dfc0
arm_func_start func_ov39_0217dfc0
func_ov39_0217dfc0: ; 0x0217dfc0
stmdb sp!, {r4, lr}
sub sp, sp, #0x10
mov r4, r0
ldr r0, [r4, #0x188]
cmp r0, #0
bne _0217dfec
ldr r0, [r4, #0x130]
cmp r0, #0x13
blt _0217dff8
cmp r0, #0x15
bgt _0217dff8
_0217dfec:
add sp, sp, #0x10
mov r0, #0
ldmia sp!, {r4, pc}
_0217dff8:
ldrb r0, [r4, #0xc9c]
cmp r0, #0
ldreq r0, [r1, #0x10]
cmpeq r0, #0
mov r0, r4
beq _0217e01c
bl func_ov39_0217edf4
add sp, sp, #0x10
ldmia sp!, {r4, pc}
_0217e01c:
bl func_ov39_0217f7d8
cmp r0, #0
addne sp, sp, #0x10
movne r0, #0
ldmneia sp!, {r4, pc}
ldr r0, [r4, #0x130]
cmp r0, #0xb
bne _0217e05c
mov r0, r4
mov r1, #0xc
bl func_ov39_0217d5d4
mov r0, #0xa
str r0, [r4, #0x188]
add sp, sp, #0x10
mov r0, #1
ldmia sp!, {r4, pc}
_0217e05c:
bl func_ov39_0217e288
ldr r1, [r4, #0x130]
ldr r0, [r0, #0x40]
cmp r1, #0x10
bne _0217e13c
sub r0, r0, #5
cmp r0, #3
bhi _0217e13c
ldr r0, _0217e280 ; =data_027e0f64
mov r1, #1
ldr r0, [r0]
ldr r0, [r0, #8]
bl func_ov00_020875f8
ldr r0, [r4, #0x48]
mov r1, #0
str r0, [sp, #4]
ldr r2, [r4, #0x4c]
ldr r0, _0217e280 ; =data_027e0f64
str r2, [sp, #8]
ldr r3, [r4, #0x50]
add r2, sp, #4
str r3, [sp, #0xc]
str r1, [sp]
ldr r0, [r0]
ldrsh r3, [r4, #0x78]
ldr r0, [r0, #8]
mov r1, #0x55
bl func_ov00_02087584
mov r3, #0
ldr r0, _0217e284 ; =data_027e0fc8
str r3, [sp]
ldr r0, [r0]
add r2, r4, #8
mov r1, #0x20
bl func_ov00_020bd3b0
cmp r0, #0
bne _0217e120
bl func_ov39_0217e288
mov r1, #0xf6
mov r2, #0
bl func_ov00_020bf008
mov r0, r4
mov r1, #0x11
bl func_ov39_0217d5d4
mov r0, #0x64
str r0, [r4, #0x19c]
mov r0, #0xa
str r0, [r4, #0x188]
b _0217e274
_0217e120:
mov r0, r4
bl func_ov00_020c2974
strh r0, [r4, #0x78]
mov r0, r4
mov r1, #9
bl func_ov39_0217d5d4
b _0217e274
_0217e13c:
ldr r0, [r4, #0x158]
tst r0, #0x400
beq _0217e1a0
bl func_ov39_0217e288
mov r1, #0xf6
mov r2, #0
bl func_ov00_020bf008
ldr r0, [r4, #0x9f4]
add r0, r4, r0, lsl #2
ldr r0, [r0, #0x9ec]
sub r0, r0, #0x10
cmp r0, #1
bhi _0217e274
mov r0, r4
bl func_ov39_021859e8
cmp r0, #0
beq _0217e274
add r0, r4, #0x3ec
add r0, r0, #0x400
mov r1, #0x11
bl func_ov39_0217ca2c
ldr r0, [r4, #0x7fc]
mov r1, #0
str r1, [r0, #0x14]
b _0217e274
_0217e1a0:
mov r0, r4
bl func_ov39_0217e55c
cmp r0, #0
bne _0217e200
mov r0, r4
mov r1, #6
bl func_ov39_0217d5d4
mov r0, #0xa
str r0, [r4, #0x188]
ldr r0, [r4, #0x158]
tst r0, #0x10000
ldreq r0, [r4, #0x130]
cmpeq r0, #6
beq _0217e1ec
bl func_ov39_0217e288
mov r1, #0xf6
mov r2, #0x2000
bl func_ov00_020bf008
b _0217e274
_0217e1ec:
bl func_ov39_0217e288
mov r1, #0xf6
mov r2, #0
bl func_ov00_020bf008
b _0217e274
_0217e200:
mov r3, #0
ldr r0, _0217e284 ; =data_027e0fc8
str r3, [sp]
ldr r0, [r0]
add r2, r4, #8
mov r1, #0x20
bl func_ov00_020bd3b0
cmp r0, #0
mov r0, r4
bne _0217e26c
mov r1, #6
bl func_ov39_0217d5d4
ldr r0, [r4, #0x158]
tst r0, #0x10000
ldreq r0, [r4, #0x130]
cmpeq r0, #6
beq _0217e258
bl func_ov39_0217e288
mov r1, #0xf6
mov r2, #0x2000
bl func_ov00_020bf008
b _0217e274
_0217e258:
bl func_ov39_0217e288
mov r1, #0xf6
mov r2, #0
bl func_ov00_020bf008
b _0217e274
_0217e26c:
mov r1, #9
bl func_ov39_0217d5d4
_0217e274:
mov r0, #1
add sp, sp, #0x10
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov39_0217dfc0
_0217e280: .word data_027e0f64
_0217e284: .word data_027e0fc8
.global func_ov39_0217e288
arm_func_start func_ov39_0217e288
func_ov39_0217e288: ; 0x0217e288
ldr ip, _0217e294 ; =func_01fffcec
mov r0, #0
bx ip
.align 2, 0
arm_func_end func_ov39_0217e288
_0217e294: .word func_01fffcec
.global func_ov39_0217e298
arm_func_start func_ov39_0217e298
func_ov39_0217e298: ; 0x0217e298
stmdb sp!, {r4, lr}
mov r4, r0
ldrb r1, [r4, #0xc9c]
cmp r1, #0
ldmneia sp!, {r4, pc}
bl func_ov00_020c2974
mov r1, r0
ldr r2, _0217e2c4 ; =0x000005dc
add r0, r4, #0x78
bl func_0202b154
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov39_0217e298
_0217e2c4: .word 0x000005dc
.global func_ov39_0217e2c8
arm_func_start func_ov39_0217e2c8
func_ov39_0217e2c8: ; 0x0217e2c8
stmdb sp!, {r3, lr}
bl func_ov39_0217e404
ldr r1, _0217e2e4 ; =0x00003333
cmp r0, r1
movle r0, #1
movgt r0, #0
ldmia sp!, {r3, pc}
.align 2, 0
arm_func_end func_ov39_0217e2c8
_0217e2e4: .word 0x00003333
.global func_ov39_0217e2e8
arm_func_start func_ov39_0217e2e8
func_ov39_0217e2e8: ; 0x0217e2e8
stmdb sp!, {r4, r5, r6, lr}
mov r4, r0
bl func_ov39_0217e2c8
cmp r0, #0
beq _0217e378
ldr r2, _0217e400 ; =data_027e0764
mov r1, #0
ldr r3, [r2]
ldmib r2, {r0, r5}
umull ip, r6, r5, r3
mla r6, r5, r0, r6
ldr r0, [r2, #0xc]
ldr r5, [r2, #0x10]
mla r6, r0, r3, r6
ldr r0, [r2, #0x14]
adds ip, r5, ip
adc r6, r0, r6
mov r0, #0x64000
umull r3, r5, r6, r0
mla r5, r6, r1, r5
mla r5, r1, r0, r5
str ip, [r2]
str r6, [r2, #4]
cmp r5, #0x2000
bge _0217e3f8
ldr r0, [r4, #0x158]
tst r0, #0x40
mov r0, r4
beq _0217e368
mov r1, #3
bl func_ov39_0217d5d4
b _0217e370
_0217e368:
mov r1, #5
bl func_ov39_0217d5d4
_0217e370:
mov r0, #1
ldmia sp!, {r4, r5, r6, pc}
_0217e378:
mov r0, r4
bl func_ov39_0217e404
cmp r0, #0x4800
bgt _0217e3f8
ldr r0, [r4, #0x158]
tst r0, #0x40
beq _0217e3f8
ldr r2, _0217e400 ; =data_027e0764
mov r1, #0
ldr r3, [r2]
ldmib r2, {r0, ip}
umull r5, 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 r6, ip, r5
adc r5, r0, lr
mov r0, #0x64000
umull r3, ip, r5, r0
mla ip, r5, r1, ip
mla ip, r1, r0, ip
str r6, [r2]
str r5, [r2, #4]
cmp ip, #0x2000
bge _0217e3f8
mov r0, r4
mov r1, #4
bl func_ov39_0217d5d4
mov r0, #1
ldmia sp!, {r4, r5, r6, pc}
_0217e3f8:
mov r0, #0
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
arm_func_end func_ov39_0217e2e8
_0217e400: .word data_027e0764
.global func_ov39_0217e404
arm_func_start func_ov39_0217e404
func_ov39_0217e404: ; 0x0217e404
stmdb sp!, {r4, lr}
mov r4, r0
ldr r1, [r4, #0x158]
tst r1, #0x100000
bne _0217e42c
ldr r1, [r4, #0x158]
orr r1, r1, #0x100000
str r1, [r4, #0x158]
bl func_ov00_020c28ec
str r0, [r4, #0x1e0]
_0217e42c:
ldr r0, [r4, #0x1e0]
ldmia sp!, {r4, pc}
arm_func_end func_ov39_0217e404
.global func_ov39_0217e434
arm_func_start func_ov39_0217e434
func_ov39_0217e434: ; 0x0217e434
stmdb sp!, {r3, r4, r5, r6, r7, lr}
sub sp, sp, #0x20
mov r3, r0
ldr r0, [r3, #0x1ac]
cmp r0, #0
addle sp, sp, #0x20
ldmleia sp!, {r3, r4, r5, r6, r7, pc}
ldr r0, [r3, #0x158]
tst r0, #0x8000000
addne sp, sp, #0x20
ldmneia sp!, {r3, r4, r5, r6, r7, pc}
mov r1, #0
str r1, [sp, #0x18]
str r1, [sp, #0xc]
str r1, [sp, #0x10]
str r1, [sp, #0x14]
ldr r0, [r3, #0x130]
cmp r0, #0x10
bne _0217e4a0
ldr r2, [r3, #0x1ac]
mov r0, #0x3000
str r1, [sp, #0xc]
str r1, [sp, #0x10]
str r1, [sp, #0x14]
str r2, [sp, #0x18]
str r0, [sp, #0x1c]
b _0217e51c
_0217e4a0:
ldrh r2, [r3, #0x78]
ldr r0, [r3, #0x1ac]
mov ip, #0x3000
mov r2, r2, asr #0x4
mov r5, r2, lsl #0x1
add r2, r5, #1
ldr r4, _0217e554 ; =data_02050f54
mov r5, r5, lsl #0x1
mov r2, r2, lsl #0x1
ldrsh r6, [r4, r5]
ldrsh r4, [r4, r2]
mov r2, #0x800
mov r5, r6, asr #0x1f
mov r5, r5, lsl #0xb
mov lr, r4, asr #0x1f
mov lr, lr, lsl #0xb
adds r7, r2, r6, lsl #11
orr r5, r5, r6, lsr #21
adc r6, r5, r1
adds r5, r2, r4, lsl #11
orr lr, lr, r4, lsr #21
mov r7, r7, lsr #0xc
orr r7, r7, r6, lsl #20
adc r2, lr, r1
mov r4, r5, lsr #0xc
orr r4, r4, r2, lsl #20
str r7, [sp, #0xc]
str r1, [sp, #0x10]
str r4, [sp, #0x14]
str r0, [sp, #0x18]
str ip, [sp, #0x1c]
_0217e51c:
add r1, sp, #0xc
mov r0, #4
str r1, [sp]
str r0, [sp, #4]
sub r1, r0, #5
str r1, [sp, #8]
ldr r0, _0217e558 ; =data_027e0ff8
add r1, r3, #8
add r2, r3, #0x48
ldr r0, [r0]
add r3, r3, #0x54
bl func_ov05_021082e4
add sp, sp, #0x20
ldmia sp!, {r3, r4, r5, r6, r7, pc}
.align 2, 0
arm_func_end func_ov39_0217e434
_0217e554: .word data_02050f54
_0217e558: .word data_027e0ff8
.global func_ov39_0217e55c
arm_func_start func_ov39_0217e55c
func_ov39_0217e55c: ; 0x0217e55c
stmdb sp!, {r3, lr}
ldr r1, [r0, #0x130]
cmp r1, #0x11
moveq r0, #1
ldmeqia sp!, {r3, pc}
ldr r1, [r0, #0x17c]
cmp r1, #5
movlt r0, #0
ldmltia sp!, {r3, pc}
ldr r0, [r0, #0x158]
tst r0, #0x40
moveq r0, #0
ldmeqia sp!, {r3, pc}
bl func_ov39_0217e288
ldr r0, [r0, #0x40]
cmp r0, #0
cmpne r0, #3
cmpne r0, #4
movne r0, #0
moveq r0, #1
ldmia sp!, {r3, pc}
arm_func_end func_ov39_0217e55c
.global func_ov39_0217e5b0
arm_func_start func_ov39_0217e5b0
func_ov39_0217e5b0: ; 0x0217e5b0
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x48
mov r4, r0
ldrb r0, [r4, #0xc9c]
cmp r0, #0
addne sp, sp, #0x48
movne r0, #0
ldmneia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
ldr r0, [r4, #0x158]
tst r0, #0x800
addne sp, sp, #0x48
movne r0, #0
ldmneia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
cmp r1, #3
addls pc, pc, r1, lsl #2
b _0217e69c
_0217e5f0: ; jump table
b _0217e600 ; case 0
b _0217e628 ; case 1
b _0217e650 ; case 2
b _0217e678 ; case 3
_0217e600:
cmp r2, #1
addgt sp, sp, #0x48
movgt r0, #0
ldmgtia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
mov r0, #6
mul r0, r2, r0
ldr r1, _0217e808 ; =data_ov39_02186548
ldr r8, _0217e80c ; =0x0000099a
add r7, r1, r0, lsl #2
b _0217e69c
_0217e628:
cmp r2, #1
addgt sp, sp, #0x48
movgt r0, #0
ldmgtia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
mov r0, #6
mul r0, r2, r0
ldr r1, _0217e810 ; =data_ov39_021865d8
ldr r8, _0217e80c ; =0x0000099a
add r7, r1, r0, lsl #2
b _0217e69c
_0217e650:
cmp r2, #1
addgt sp, sp, #0x48
movgt r0, #0
ldmgtia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
mov r0, #6
mul r0, r2, r0
ldr r1, _0217e814 ; =data_ov39_02186620
ldr r8, _0217e80c ; =0x0000099a
add r7, r1, r0, lsl #2
b _0217e69c
_0217e678:
cmp r2, #1
addgt sp, sp, #0x48
movgt r0, #0
ldmgtia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
mov r0, #6
mul r0, r2, r0
ldr r1, _0217e818 ; =data_ov39_02186590
ldr r8, _0217e81c ; =0x0000059a
add r7, r1, r0, lsl #2
_0217e69c:
ldrh r0, [r4, #0x78]
mov sb, #0
ldr r2, _0217e820 ; =data_02050f54
mov r0, r0, asr #0x4
mov r1, r0, lsl #0x1
add r0, r1, #1
mov r1, r1, lsl #0x1
mov r0, r0, lsl #0x1
ldrsh r1, [r2, r1]
ldrsh r0, [r2, r0]
ldr fp, _0217e824 ; =data_027e0f90
str sb, [sp, #0x1c]
str r1, [sp, #0x18]
str r0, [sp, #0x20]
add r6, sp, #0x3c
add r5, sp, #0x30
_0217e6dc:
ldmia r7, {r1, r2, r3}
str r2, [sp, #0x40]
str r3, [sp, #0x44]
str r1, [sp, #0x3c]
ldrsh r1, [r4, #0x78]
mov r0, r6
bl func_ov00_020a61ac
ldr r1, [r4, #0x48]
mov r0, r6
str r1, [sp, #0xc]
ldr r2, [r4, #0x4c]
add r1, sp, #0xc
str r2, [sp, #0x10]
ldr r3, [r4, #0x50]
mov r2, r6
str r3, [sp, #0x14]
bl func_01ff9bc4
ldr r3, [r7, #0x20]
ldr r2, [r7, #0x1c]
ldr r1, [r7, #0x18]
mov r0, r5
str r2, [sp, #0x34]
str r3, [sp, #0x38]
str r1, [sp, #0x30]
ldrsh r1, [r4, #0x78]
bl func_ov00_020a61ac
ldr r1, [r4, #0x48]
mov r0, r5
str r1, [sp]
ldr r2, [r4, #0x4c]
add r1, sp, #0
str r2, [sp, #4]
ldr r3, [r4, #0x50]
mov r2, r5
str r3, [sp, #8]
bl func_01ff9bc4
mov r0, r6
mov r1, r5
add r2, sp, #0x24
bl func_01ff9bf8
ldr r0, [fp]
mov sl, #0
mov r1, r5
mov r2, r6
mov r3, r8
bl func_ov00_020a7c60
cmp r0, #0
movne sl, #1
cmp sl, #0
beq _0217e7ec
ldr r0, _0217e824 ; =data_027e0f90
add r2, sp, #0x18
ldr r0, [r0]
mov r1, #4
ldr r5, [r0]
mov r3, #2
ldr r5, [r5, #0x30]
blx r5
mov r0, r4
bl func_ov39_0217fbc8
ldr r0, _0217e828 ; =data_ov29_0217bd28
add sp, sp, #0x48
ldr r1, [r0]
cmp r1, #0
movne r0, #0
strneb r0, [r1, #0x25c]
mov r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
_0217e7ec:
add sb, sb, #1
cmp sb, #2
add r7, r7, #0xc
blt _0217e6dc
mov r0, #0
add sp, sp, #0x48
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
arm_func_end func_ov39_0217e5b0
_0217e808: .word data_ov39_02186548
_0217e80c: .word 0x0000099a
_0217e810: .word data_ov39_021865d8
_0217e814: .word data_ov39_02186620
_0217e818: .word data_ov39_02186590
_0217e81c: .word 0x0000059a
_0217e820: .word data_02050f54
_0217e824: .word data_027e0f90
_0217e828: .word data_ov29_0217bd28
.global func_ov39_0217e82c
arm_func_start func_ov39_0217e82c
func_ov39_0217e82c: ; 0x0217e82c
stmdb sp!, {r4, lr}
mov r4, r0
ldr r1, [r4, #0x130]
cmp r1, #7
ldmeqia sp!, {r4, pc}
mov r1, #0x12
bl func_ov00_020c1fc8
mov r1, #0
mov r0, r4
mov r2, r1
bl func_ov00_020c243c
ldr r0, [r4, #0x130]
cmp r0, #0x10
ldmneia sp!, {r4, pc}
ldr r0, [r4, #0x7fc]
ldr r0, [r0, #0x14]
cmp r0, #0x17000
ldmltia sp!, {r4, pc}
mov r0, r4
mov r1, #2
mov r2, #0
bl func_ov00_020c1e2c
cmp r0, #0
ldmeqia sp!, {r4, pc}
mov r0, r4
bl func_ov00_020c2974
sub r2, r0, #0x8000
add r1, r4, #0x100
mov r0, r4
strh r2, [r1, #0x60]
mov r1, #0x2d
str r1, [r4, #0x16c]
bl func_ov39_0217fbc8
ldmia sp!, {r4, pc}
arm_func_end func_ov39_0217e82c
.global func_ov39_0217e8b4
arm_func_start func_ov39_0217e8b4
func_ov39_0217e8b4: ; 0x0217e8b4
stmdb sp!, {r4, lr}
sub sp, sp, #0x10
mov r4, r0
ldr r1, [r4, #0x130]
sub r1, r1, #5
cmp r1, #3
addls sp, sp, #0x10
ldmlsia sp!, {r4, pc}
ldr r1, [r4, #0x180]
cmp r1, #0
addeq sp, sp, #0x10
ldmeqia sp!, {r4, pc}
subs r1, r1, #1
addne sp, sp, #0x10
str r1, [r4, #0x180]
ldmneia sp!, {r4, pc}
bl func_ov39_0217f760
ldr r0, [r4, #0x158]
add ip, sp, #0
bic r0, r0, #0x2000
str r0, [r4, #0x158]
ldr lr, [r4, #0x284]
mvn r3, #0
add r0, lr, #0x7c
ldmia r0, {r0, r1, r2}
stmia ip, {r0, r1, r2}
ldr r0, [sp]
str r3, [sp, #0xc]
str r0, [lr, #0x7c]
ldr r1, [sp, #4]
mov r0, #2
str r1, [lr, #0x80]
ldr r1, [sp, #8]
str r1, [lr, #0x84]
ldr r1, [sp, #0xc]
str r1, [lr, #0x88]
str r0, [r4, #0x12c]
add sp, sp, #0x10
ldmia sp!, {r4, pc}
arm_func_end func_ov39_0217e8b4
.global func_ov39_0217e950
arm_func_start func_ov39_0217e950
func_ov39_0217e950: ; 0x0217e950
stmdb sp!, {r4, lr}
ldr lr, [r0, #0x48]
ldr r2, [r1]
ldr r3, _0217e9d8 ; =0xffff6b33
add ip, lr, r2
cmp ip, r3
mov r4, #0
bge _0217e980
sub r2, r3, lr
str r2, [r1]
mov r4, #1
b _0217e994
_0217e980:
rsb r2, r3, #0
cmp ip, r2
subgt r2, r2, lr
strgt r2, [r1]
movgt r4, #1
_0217e994:
ldr ip, [r0, #0x50]
ldr r0, [r1, #8]
ldr r2, _0217e9d8 ; =0xffff6b33
add r3, ip, r0
cmp r3, r2
bge _0217e9bc
sub r0, r2, ip
str r0, [r1, #8]
mov r4, #1
b _0217e9d0
_0217e9bc:
rsb r0, r2, #0
cmp r3, r0
subgt r0, r0, ip
strgt r0, [r1, #8]
movgt r4, #1
_0217e9d0:
mov r0, r4
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov39_0217e950
_0217e9d8: .word 0xffff6b33
.global func_ov39_0217e9dc
arm_func_start func_ov39_0217e9dc
func_ov39_0217e9dc: ; 0x0217e9dc
ldr r3, [r0, #0x48]
ldr r2, [r1]
ldr ip, [r0, #0x50]
ldr r0, [r1, #8]
add r2, r3, r2
ldr r1, _0217ea34 ; =0x000094cd
add r3, ip, r0
mov r0, #0
cmp r2, r1
movgt r0, #1
bgt _0217ea14
rsb r1, r1, #0
cmp r2, r1
movlt r0, #2
_0217ea14:
ldr r1, _0217ea34 ; =0x000094cd
cmp r3, r1
orrgt r0, r0, #4
bxgt lr
rsb r1, r1, #0
cmp r3, r1
orrlt r0, r0, #8
bx lr
.align 2, 0
arm_func_end func_ov39_0217e9dc
_0217ea34: .word 0x000094cd
.global func_ov39_0217ea38
arm_func_start func_ov39_0217ea38
func_ov39_0217ea38: ; 0x0217ea38
mov r0, #0xa800
ldr r3, [r1]
rsb r0, r0, #0
cmp r3, r0
ldrlt r0, [r2]
cmplt r0, #0
blt _0217ea90
cmp r3, #0xa800
ldrgt r0, [r2]
cmpgt r0, #0
bgt _0217ea90
mov r0, #0xa800
ldr r1, [r1, #8]
rsb r0, r0, #0
cmp r1, r0
ldrlt r0, [r2, #8]
cmplt r0, #0
blt _0217ea90
cmp r1, #0xa800
ldrgt r0, [r2, #8]
cmpgt r0, #0
ble _0217ea98
_0217ea90:
mov r0, #1
bx lr
_0217ea98:
mov r0, #0
bx lr
arm_func_end func_ov39_0217ea38
.global func_ov39_0217eaa0
arm_func_start func_ov39_0217eaa0
func_ov39_0217eaa0: ; 0x0217eaa0
ldr r3, [r1]
ldr r2, _0217eae0 ; =0xffff6b33
cmp r3, r2
blt _0217ead0
rsb r0, r2, #0
cmp r3, r0
bgt _0217ead0
ldr r1, [r1, #8]
cmp r1, r2
blt _0217ead0
cmp r1, r0
ble _0217ead8
_0217ead0:
mov r0, #1
bx lr
_0217ead8:
mov r0, #0
bx lr
.align 2, 0
arm_func_end func_ov39_0217eaa0
_0217eae0: .word 0xffff6b33
.global func_ov39_0217eae4
arm_func_start func_ov39_0217eae4
func_ov39_0217eae4: ; 0x0217eae4
stmdb sp!, {r3, r4, lr}
sub sp, sp, #0xc
mov r4, r0
add r0, sp, #0
mov r1, r4
bl func_ov39_0217f798
ldr r0, [r4, #0x280]
add r1, sp, #0
bl func_ov39_02185288
add sp, sp, #0xc
ldmia sp!, {r3, r4, pc}
arm_func_end func_ov39_0217eae4
.global func_ov39_0217eb10
arm_func_start func_ov39_0217eb10
func_ov39_0217eb10: ; 0x0217eb10
bx lr
arm_func_end func_ov39_0217eb10
.global func_ov39_0217eb14
arm_func_start func_ov39_0217eb14
func_ov39_0217eb14: ; 0x0217eb14
stmdb sp!, {r4, r5, r6, lr}
mov r4, r0
ldr r1, [r4, #0x158]
tst r1, #0x40
moveq r0, #0
ldmeqia sp!, {r4, r5, r6, pc}
ldr r1, [r4, #0x19c]
cmp r1, #0
beq _0217eb48
sub r0, r1, #1
str r0, [r4, #0x19c]
mov r0, #0
ldmia sp!, {r4, r5, r6, pc}
_0217eb48:
add r1, r4, #0x800
ldrsh r1, [r1, #0x68]
cmp r1, #0
movne r0, #0
ldmneia sp!, {r4, r5, r6, pc}
add r1, r4, #0x100
ldrsh r1, [r1, #0x20]
rsb r1, r1, #0xc8
cmp r1, #0x64
movgt r0, #0
ldmgtia sp!, {r4, r5, r6, pc}
bl func_ov39_0217e2c8
cmp r0, #0
movne r0, #0
ldmneia sp!, {r4, r5, r6, pc}
ldr r0, _0217ec20 ; =data_027e0fb4
ldr r0, [r0]
ldrh r0, [r0, #0xba]
cmp r0, #0
beq _0217eba4
cmp r0, #1
beq _0217ebac
b _0217ebb4
_0217eba4:
ldr r1, _0217ec24 ; =0x00000548
b _0217ebb8
_0217ebac:
ldr r1, _0217ec28 ; =0x00001548
b _0217ebb8
_0217ebb4:
ldr r1, _0217ec2c ; =0x00003548
_0217ebb8:
ldr r3, _0217ec30 ; =data_027e0764
mov r0, #0
ldr ip, [r3]
ldmib r3, {r2, lr}
umull r6, r5, lr, ip
mla r5, lr, r2, r5
ldr r2, [r3, #0xc]
ldr lr, [r3, #0x10]
mla r5, r2, ip, r5
ldr r2, [r3, #0x14]
adds r6, lr, r6
adc r5, r2, r5
mov r2, #0x64000
umull ip, lr, r5, r2
str r6, [r3]
mla lr, r5, r0, lr
mov ip, r0
mla lr, ip, r2, lr
str r5, [r3, #4]
cmp lr, r1
ldmgtia sp!, {r4, r5, r6, pc}
mov r0, r4
mov r1, #0x10
bl func_ov39_0217d5d4
mov r0, #1
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
arm_func_end func_ov39_0217eb14
_0217ec20: .word data_027e0fb4
_0217ec24: .word 0x00000548
_0217ec28: .word 0x00001548
_0217ec2c: .word 0x00003548
_0217ec30: .word data_027e0764
.global func_ov39_0217ec34
arm_func_start func_ov39_0217ec34
func_ov39_0217ec34: ; 0x0217ec34
stmdb sp!, {r3, r4, r5, lr}
mov r5, r0
mov ip, #1
mov r0, r1
mov r1, r2
strb ip, [r5, #0xc99]
sub r2, ip, #2
mov r4, r3
strb r2, [r5, #0xc98]
bl func_ov39_0217ec90
mov r2, r0
ldr r0, _0217ec88 ; =data_027e0c68
add r1, r5, #0xc60
bl func_02036ce4
ldr r0, _0217ec8c ; =data_027e0e60
mov r1, r4
ldr r0, [r0]
mov r2, #1
mov r3, r2
bl func_ov00_02084b38
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov39_0217ec34
_0217ec88: .word data_027e0c68
_0217ec8c: .word data_027e0e60
.global func_ov39_0217ec90
arm_func_start func_ov39_0217ec90
func_ov39_0217ec90: ; 0x0217ec90
orr r0, r1, r0, lsl #16
bx lr
arm_func_end func_ov39_0217ec90
.global func_ov39_0217ec98
arm_func_start func_ov39_0217ec98
func_ov39_0217ec98: ; 0x0217ec98
stmdb sp!, {r3, r4, r5, lr}
sub sp, sp, #0x10
mov r4, r0
ldr r0, [r4, #0x188]
cmp r0, #0
addne sp, sp, #0x10
movne r0, #0
ldmneia sp!, {r3, r4, r5, pc}
ldr r0, [r4, #0x158]
tst r0, #0x20
beq _0217ecdc
add r0, r4, #0x800
ldrsh r0, [r0, #0x68]
cmp r0, #0x7d0
addlt sp, sp, #0x10
movlt r0, #0
ldmltia sp!, {r3, r4, r5, pc}
_0217ecdc:
ldrsh r5, [r4, #0x78]
mov r0, r4
bl func_ov00_020c2974
subs r1, r0, r5
ldr r0, _0217ede4 ; =0x0000471c
rsbmi r1, r1, #0
cmp r1, r0
addlt sp, sp, #0x10
movlt r0, #0
ldmltia sp!, {r3, r4, r5, pc}
add r0, r4, #0x3ec
add r1, sp, #0
add r0, r0, #0x400
bl func_ov39_0217c894
ldr r0, _0217ede8 ; =data_027e0f90
ldr r3, _0217edec ; =0x00000b33
ldr r0, [r0]
add r1, sp, #0
mov r2, #0
str r3, [sp, #0xc]
bl func_ov00_020a7ce4
cmp r0, #0
beq _0217edd8
ldr r0, [r4, #0x158]
tst r0, #0x20
bne _0217ed80
bl func_ov39_0217e288
mov r1, #0xf6
mov r2, #0
bl func_ov00_020bf008
ldr r0, [r4, #0x158]
tst r0, #0x10
bne _0217ed6c
mov r0, r4
mov r1, #1
bl func_ov39_0217d5d4
_0217ed6c:
mov r0, #0xa
str r0, [r4, #0x188]
add sp, sp, #0x10
mov r0, #0
ldmia sp!, {r3, r4, r5, pc}
_0217ed80:
add r0, r4, #0x3ec
add r1, sp, #0
add r0, r0, #0x400
bl func_ov39_0217c960
ldr r0, _0217edf0 ; =data_027e0ffc
add r2, sp, #0
mov r1, #0x190
mov r3, #0
bl func_ov00_020ceacc
add r0, sp, #0
bl func_ov00_020c71fc
mov r0, r4
mov r1, #0x12
bl func_ov39_0217d5d4
add r0, r4, #0x3bc
mov r1, #0xa
add r0, r0, #0x800
str r1, [r4, #0x188]
bl func_ov39_02184bac
add sp, sp, #0x10
mov r0, #1
ldmia sp!, {r3, r4, r5, pc}
_0217edd8:
mov r0, #0
add sp, sp, #0x10
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov39_0217ec98
_0217ede4: .word 0x0000471c
_0217ede8: .word data_027e0f90
_0217edec: .word 0x00000b33
_0217edf0: .word data_027e0ffc
.global func_ov39_0217edf4
arm_func_start func_ov39_0217edf4
func_ov39_0217edf4: ; 0x0217edf4
stmdb sp!, {r4, lr}
ldr r2, [r1, #0x10]
mov r4, r0
cmp r2, #0xb
addls pc, pc, r2, lsl #2
b _0217f000
_0217ee0c: ; jump table
b _0217ee3c ; case 0
b _0217ee50 ; case 1
b _0217f000 ; case 2
b _0217f000 ; case 3
b _0217ef50 ; case 4
b _0217ee8c ; case 5
b _0217ef2c ; case 6
b _0217eec8 ; case 7
b _0217eef4 ; case 8
b _0217f000 ; case 9
b _0217f008 ; case 10
b _0217f008 ; case 11
_0217ee3c:
bl func_ov39_0217e288
mov r1, #0xf6
mov r2, #0
bl func_ov00_020bf008
b _0217f008
_0217ee50:
ldr r0, [r1, #0x14]
cmp r0, #0
beq _0217f008
ldr r2, [r0, #4]
ldr r1, _0217f010 ; =0x5342454d
cmp r2, r1
bne _0217f008
bl func_ov14_02146634
ldr r0, _0217f014 ; =data_027e0ffc
add r2, r4, #0x48
mov r1, #0xf6
mov r3, #0
bl func_ov00_020ceacc
mov r0, #1
ldmia sp!, {r4, pc}
_0217ee8c:
ldr r0, [r1, #0x14]
cmp r0, #0
beq _0217f008
ldr r2, [r0, #4]
ldr r1, _0217f018 ; =0x424d524e
cmp r2, r1
bne _0217f008
bl func_ov14_021231d4
ldr r0, _0217f014 ; =data_027e0ffc
ldr r1, _0217f01c ; =0x0000019d
add r2, r4, #0x48
mov r3, #0
bl func_ov00_020ceacc
mov r0, #1
ldmia sp!, {r4, pc}
_0217eec8:
ldr r0, [r1, #0x14]
cmp r0, #0
beq _0217f008
ldr r2, [r0, #4]
ldr r1, _0217f020 ; =0x41525257
cmp r2, r1
bne _0217f008
ldrsh r1, [r4, #0x78]
mov r2, #1
bl func_ov14_02120ac4
b _0217f008
_0217eef4:
ldr r0, [r1, #0x14]
cmp r0, #0
beq _0217f008
ldr r2, [r0, #4]
ldr r1, _0217f024 ; =0x524f5045
cmp r2, r1
bne _0217f008
bl func_ov14_02123904
ldr r0, _0217f014 ; =data_027e0ffc
add r2, r4, #0x48
mov r1, #0xf6
mov r3, #0
bl func_ov00_020ceacc
b _0217f008
_0217ef2c:
ldr r0, [r1, #0x14]
cmp r0, #0
beq _0217f008
ldr r2, [r0, #4]
ldr r1, _0217f028 ; =0x424f4d42
cmp r2, r1
bne _0217f008
bl func_ov14_02122e98
b _0217f008
_0217ef50:
add r0, r4, #0x3ec
add r0, r0, #0x400
mov r1, #0
bl func_ov39_0217caf0
mov r0, #0
str r0, [r4, #0x16c]
ldr r1, _0217f02c ; =0x0000019a
str r0, [r4, #0x138]
str r1, [r4, #0x1a8]
mov r1, #0xf
str r1, [r4, #0x180]
ldrsh r1, [r4, #0x78]
ldr r3, _0217f030 ; =data_02050f54
ldr ip, [r4, #0x1a8]
add r1, r1, #0x8000
mov r1, r1, lsl #0x10
mov r1, r1, lsr #0x10
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]
mul r3, r2, ip
mul r2, r1, ip
add r1, r3, #0x800
mov r1, r1, asr #0xc
str r1, [r4, #0x60]
add r1, r2, #0x800
str r0, [r4, #0x64]
mov r1, r1, asr #0xc
mov r0, r4
str r1, [r4, #0x68]
add r1, r4, #0x60
bl func_ov39_0217e950
ldr r1, [r4, #0x158]
mov r0, r4
bic r1, r1, #0x10000
str r1, [r4, #0x158]
mov r1, #6
str r1, [r4, #0x130]
bl func_ov39_02185a44
b _0217f008
_0217f000:
mov r0, #0
ldmia sp!, {r4, pc}
_0217f008:
mov r0, #1
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov39_0217edf4
_0217f010: .word 0x5342454d
_0217f014: .word data_027e0ffc
_0217f018: .word 0x424d524e
_0217f01c: .word 0x0000019d
_0217f020: .word 0x41525257
_0217f024: .word 0x524f5045
_0217f028: .word 0x424f4d42
_0217f02c: .word 0x0000019a
_0217f030: .word data_02050f54
.global func_ov39_0217f034
arm_func_start func_ov39_0217f034
func_ov39_0217f034: ; 0x0217f034
stmdb sp!, {r4, lr}
ldr r1, _0217f0b4 ; =data_ov29_0217bd28
mov r4, r0
ldr r0, [r1]
ldrb r1, [r0, #0x118]
cmp r1, #0
moveq r0, #0
ldmeqia sp!, {r4, pc}
bl func_ov29_02178060
cmp r0, #0
beq _0217f0ac
ldr r0, _0217f0b8 ; =data_027e0fb4
ldr r1, [r0]
ldrh r0, [r1, #0xba]
cmp r0, #9
addlo r0, r0, #1
strloh r0, [r1, #0xba]
ldr r0, _0217f0b4 ; =data_ov29_0217bd28
ldr r0, [r0]
bl func_ov29_02177ff0
ldr r0, _0217f0bc ; =data_ov00_020eec9c
mov r1, #0xc1
bl func_ov00_020d7ad4
ldr r0, [r4, #0x158]
tst r0, #0x40
ldrne r0, [r4, #0x158]
orrne r0, r0, #0x80000
strne r0, [r4, #0x158]
mov r0, #1
ldmia sp!, {r4, pc}
_0217f0ac:
mov r0, #0
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov39_0217f034
_0217f0b4: .word data_ov29_0217bd28
_0217f0b8: .word data_027e0fb4
_0217f0bc: .word data_ov00_020eec9c
.global func_ov39_0217f0c0
arm_func_start func_ov39_0217f0c0
func_ov39_0217f0c0: ; 0x0217f0c0
stmdb sp!, {r4, lr}
ldr r1, _0217f108 ; =data_ov29_0217bd28
mov r4, r0
ldr r2, [r1]
add r1, r2, #0x48
add r2, r2, #0x60
bl func_ov39_0217ea38
cmp r0, #0
moveq r0, #0
ldmeqia sp!, {r4, pc}
ldr r0, _0217f108 ; =data_ov29_0217bd28
ldr r0, [r0]
bl func_ov29_02177ff0
mov r0, r4
mov r1, #0
bl func_ov39_0217d5d4
mov r0, #1
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov39_0217f0c0
_0217f108: .word data_ov29_0217bd28
.global func_ov39_0217f10c
arm_func_start func_ov39_0217f10c
func_ov39_0217f10c: ; 0x0217f10c
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x1c
mov r5, r0
ldr r1, _0217f264 ; =data_027e0fac
ldr r4, [r5, #0x138]
ldrsh r3, [r1]
ldr r0, _0217f268 ; =data_027e0f94
add r8, sp, #0x10
ldmia r0, {r0, r1, r2}
strh r3, [sp]
stmia r8, {r0, r1, r2}
add r3, r5, #0x48
ldmia r3, {r0, r1, r2}
add r7, sp, #4
stmia r7, {r0, r1, r2}
ldrh r0, [r5, #0x78]
rsb r1, r4, #0
mov r4, r1, lsl #0xc
mov r0, r0, asr #0x4
mov r6, r0, lsl #0x1
ldr r3, _0217f26c ; =data_02050f54
mov r2, r6, lsl #0x1
mov r1, r7
ldrsh r7, [r3, r2]
add r2, r6, #1
mov r2, r2, lsl #0x1
ldrsh ip, [r3, r2]
ldr r3, _0217f270 ; =0x00002b33
mov r0, r8
umull sb, r8, r7, r3
mov r3, #0
mla r8, r7, r3, r8
ldr r3, _0217f270 ; =0x00002b33
mov r6, r7, asr #0x1f
mla r8, r6, r3, r8
adds r6, sb, #0x800
ldr sl, [sp, #4]
adc r3, r8, #0
mov r6, r6, lsr #0xc
orr r6, r6, r3, lsl #20
add r3, sl, r6
str r3, [sp, #4]
ldr r3, _0217f270 ; =0x00002b33
mov fp, ip, asr #0x1f
umull r7, r6, ip, r3
mov r3, #0
mla r6, ip, r3, r6
ldr r3, _0217f270 ; =0x00002b33
adds r7, r7, #0x800
mla r6, fp, r3, r6
adc r3, r6, #0
mov r6, r7, lsr #0xc
ldr lr, [sp, #0xc]
orr r6, r6, r3, lsl #20
add r3, lr, r6
mov r2, r4
str r3, [sp, #0xc]
bl func_0202b308
mov r0, r5
bl func_ov00_020c2974
add r0, r0, #0x8000
mov r0, r0, lsl #0x10
mov r2, r0, asr #0x10
cmp r4, #0x1000
strleh r2, [sp]
ble _0217f23c
ldrsh r0, [sp]
mov r1, r4
sub r0, r2, r0
mov r0, r0, lsl #0x10
mov r0, r0, asr #0x4
bl func_01ff98e0
ldrsh r1, [sp]
add r0, r0, #0x800
add r0, r1, r0, asr #12
strh r0, [sp]
_0217f23c:
ldr r0, _0217f274 ; =data_027e0fc8
add r1, sp, #0x10
ldr r0, [r0]
bl func_ov00_020bd4d8
ldr r0, _0217f274 ; =data_027e0fc8
add r1, sp, #0
ldr r0, [r0]
bl func_ov00_020bd4fc
add sp, sp, #0x1c
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
arm_func_end func_ov39_0217f10c
_0217f264: .word data_027e0fac
_0217f268: .word data_027e0f94
_0217f26c: .word data_02050f54
_0217f270: .word 0x00002b33
_0217f274: .word data_027e0fc8
.global func_ov39_0217f278
arm_func_start func_ov39_0217f278
func_ov39_0217f278: ; 0x0217f278
stmdb sp!, {r3, r4, lr}
sub sp, sp, #0x1c
ldr r2, _0217f31c ; =0x00000a66
mov r3, #0x7b
add r1, r2, #0xc00
mov r4, r0
str r3, [sp, #0x10]
str r2, [sp, #0x14]
str r1, [sp, #0x18]
ldrsh r1, [r4, #0x78]
add r0, sp, #0x10
bl func_ov00_020a61ac
ldr r1, [r4, #0x48]
add r0, sp, #0x10
str r1, [sp, #4]
ldr r2, [r4, #0x4c]
add r1, sp, #4
str r2, [sp, #8]
ldr r3, [r4, #0x50]
mov r2, r0
str r3, [sp, #0xc]
bl func_01ff9bc4
ldr r0, _0217f320 ; =data_027e0e58
add r2, sp, #0x10
ldr r0, [r0]
add r1, r4, #0x288
bl func_ov00_0207c474
ldr r0, _0217f320 ; =data_027e0e58
add r1, r4, #0x294
ldr r0, [r0]
add r2, sp, #0x10
bl func_ov00_0207c474
mov r0, #0
str r0, [sp]
ldr r3, [r4, #8]
ldr r0, _0217f324 ; =data_027e0ffc
ldr r1, _0217f328 ; =0x0000031d
add r2, sp, #0x10
bl func_ov00_020cec60
add sp, sp, #0x1c
ldmia sp!, {r3, r4, pc}
.align 2, 0
arm_func_end func_ov39_0217f278
_0217f31c: .word 0x00000a66
_0217f320: .word data_027e0e58
_0217f324: .word data_027e0ffc
_0217f328: .word 0x0000031d
.global func_ov39_0217f32c
arm_func_start func_ov39_0217f32c
func_ov39_0217f32c: ; 0x0217f32c
stmdb sp!, {r4, lr}
mov r4, r0
ldr r1, [r4, #0x158]
tst r1, #0x20
ldmneia sp!, {r4, pc}
tst r1, #0x10
ldmneia sp!, {r4, pc}
tst r1, #8
bne _0217f3c4
bl func_ov39_0217f488
cmp r0, #0
ldmneia sp!, {r4, pc}
ldr r0, [r4, #0x158]
tst r0, #1
bne _0217f38c
ldr r1, [r4, #0x158]
mov r0, r4
orr ip, r1, #1
mov r1, #8
mov r2, #0x65
mov r3, #0
str ip, [r4, #0x158]
bl func_ov39_0217ec34
ldmia sp!, {r4, pc}
_0217f38c:
tst r0, #2
bne _0217f3b8
ldr r1, [r4, #0x158]
mov r0, r4
orr ip, r1, #2
mov r1, #8
mov r2, #0x66
mov r3, #0
str ip, [r4, #0x158]
bl func_ov39_0217ec34
ldmia sp!, {r4, pc}
_0217f3b8:
ldr r0, [r4, #0x158]
orr r0, r0, #4
str r0, [r4, #0x158]
_0217f3c4:
ldr r0, _0217f47c ; =data_027e0e60
mov r1, #3
ldr r0, [r0]
mov r2, #1
bl func_ov00_02084be0
cmp r0, #0
beq _0217f40c
ldr r0, _0217f480 ; =data_ov29_0217bd28
ldr r0, [r0]
cmp r0, #0
ldmeqia sp!, {r4, pc}
ldr r0, _0217f47c ; =data_027e0e60
mov r1, #3
ldr r0, [r0]
mov r2, #1
mov r3, #0
bl func_ov00_02084b38
ldmia sp!, {r4, pc}
_0217f40c:
ldr r0, _0217f480 ; =data_ov29_0217bd28
ldr r0, [r0]
cmp r0, #0
ldmneia sp!, {r4, pc}
ldr r0, _0217f484 ; =data_027e0fb4
ldr r0, [r0]
ldrh r0, [r0, #0xba]
cmp r0, #0
ldmneia sp!, {r4, pc}
ldr r0, [r4, #0x18c]
cmp r0, #0
subne r0, r0, #1
strne r0, [r4, #0x18c]
ldmneia sp!, {r4, pc}
mov r1, #8
mov r0, r4
mov r2, r1
mov r3, #3
bl func_ov39_0217ec34
ldr r0, [r4, #0x280]
mov r1, #0
bl func_ov29_021772f8
mov r0, #0x3c
str r0, [r4, #0x18c]
ldr r0, [r4, #0x158]
orr r0, r0, #8
str r0, [r4, #0x158]
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov39_0217f32c
_0217f47c: .word data_027e0e60
_0217f480: .word data_ov29_0217bd28
_0217f484: .word data_027e0fb4
.global func_ov39_0217f488
arm_func_start func_ov39_0217f488
func_ov39_0217f488: ; 0x0217f488
ldr r0, _0217f4a8 ; =data_027e0c68
ldr r0, [r0, #0x30]
add r0, r0, #0x100
ldrsh r0, [r0, #0x5c]
cmp r0, #0
movgt r0, #1
movle r0, #0
bx lr
.align 2, 0
arm_func_end func_ov39_0217f488
_0217f4a8: .word data_027e0c68
.global func_ov39_0217f4ac
arm_func_start func_ov39_0217f4ac
func_ov39_0217f4ac: ; 0x0217f4ac
stmdb sp!, {r4, r5, r6, lr}
mov r4, r0
ldrb r0, [r4, #0x15c]
cmp r0, #0
ldmneia sp!, {r4, r5, r6, pc}
ldr r0, [r4, #0x158]
tst r0, #0x80000
ldmeqia sp!, {r4, r5, r6, pc}
ldr r0, [r4, #0x198]
add r0, r0, #1
str r0, [r4, #0x198]
cmp r0, #0x2d
ldmleia sp!, {r4, r5, r6, pc}
mov r0, #0
ldr r2, _0217f564 ; =data_027e0764
str r0, [r4, #0x198]
ldr r3, [r2]
ldmib r2, {r1, ip}
umull r5, lr, ip, r3
mla lr, ip, r1, lr
ldr r1, [r2, #0xc]
ldr ip, [r2, #0x10]
mla lr, r1, r3, lr
ldr r1, [r2, #0x14]
adds r6, ip, r5
adc r5, r1, lr
mov r1, #0x64000
umull r3, ip, r5, r1
mla ip, r5, r0, ip
mla ip, r0, r1, ip
str r6, [r2]
str r5, [r2, #4]
cmp ip, #0x1e000
ldmgeia sp!, {r4, r5, r6, pc}
add r0, r4, #0x3bc
mov r1, #1
strb r1, [r4, #0x910]
add r0, r0, #0x800
strb r1, [r4, #0x15c]
bl func_ov39_02184d40
ldr r0, _0217f568 ; =data_027e0ffc
ldr r1, _0217f56c ; =0x00000326
add r2, r4, #0x48
mov r3, #0
bl func_ov00_020ceacc
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
arm_func_end func_ov39_0217f4ac
_0217f564: .word data_027e0764
_0217f568: .word data_027e0ffc
_0217f56c: .word 0x00000326
.global func_ov39_0217f570
arm_func_start func_ov39_0217f570
func_ov39_0217f570: ; 0x0217f570
stmdb sp!, {r3, r4, r5, lr}
mov r4, r0
ldrb r0, [r4, #0x15c]
cmp r0, #3
addls pc, pc, r0, lsl #2
ldmia sp!, {r3, r4, r5, pc}
_0217f588: ; jump table
ldmia sp!, {r3, r4, r5, pc} ; case 0
b _0217f598 ; case 1
b _0217f5d0 ; case 2
b _0217f68c ; case 3
_0217f598:
add r0, r4, #0x68
ldr r1, _0217f6d8 ; =0x00002ee0
add r0, r0, #0x800
mov r2, #0x258
bl func_0202b154
cmp r0, #0
beq _0217f5c4
mov r0, #2
strb r0, [r4, #0x15c]
mov r0, #0
str r0, [r4, #0x170]
_0217f5c4:
mov r0, #1
strb r0, [r4, #0x910]
ldmia sp!, {r3, r4, r5, pc}
_0217f5d0:
ldr r1, [r4, #0x170]
add r0, r4, #0x100
add r1, r1, #1
str r1, [r4, #0x170]
ldrsh r0, [r0, #0x20]
rsb r0, r0, #0xc8
cmp r0, #0x5a
movle r5, #0x1e
ble _0217f600
cmp r0, #0x87
movle r5, #0x3c
movgt r5, #0x5a
_0217f600:
ldr r0, [r4, #0xbec]
cmp r0, #1
bne _0217f65c
cmp r0, #1
mov r1, #0
bne _0217f644
add r0, r4, #0xb00
ldrsh r2, [r0, #0xf8]
sub r0, r1, #0x100
cmp r2, r0
movgt r0, #1
movle r0, r1
cmp r2, #0x100
movlt r2, #1
movge r2, #0
tst r0, r2
movne r1, #1
_0217f644:
cmp r1, #0
beq _0217f65c
add r0, r4, #0x3bc
add r0, r0, #0x800
mov r1, #3
bl func_ov39_02184d40
_0217f65c:
ldr r0, [r4, #0x170]
cmp r0, r5
blt _0217f680
add r0, r4, #0x3bc
mov r2, #3
add r0, r0, #0x800
mov r1, #0
strb r2, [r4, #0x15c]
bl func_ov39_02184d40
_0217f680:
mov r0, #1
strb r0, [r4, #0x910]
ldmia sp!, {r3, r4, r5, pc}
_0217f68c:
ldr r0, [r4, #0x158]
mov r1, #0
tst r0, #0x40000
movne r2, #0x4b0
add r0, r4, #0x68
moveq r2, #0x258
add r0, r0, #0x800
bl func_0202b154
cmp r0, #0
moveq r0, #1
streqb r0, [r4, #0x910]
ldmeqia sp!, {r3, r4, r5, pc}
mov r1, #0
strb r1, [r4, #0x15c]
ldr r0, [r4, #0x158]
bic r0, r0, #0x40000
str r0, [r4, #0x158]
strb r1, [r4, #0x910]
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov39_0217f570
_0217f6d8: .word 0x00002ee0
.global func_ov39_0217f6dc
arm_func_start func_ov39_0217f6dc
func_ov39_0217f6dc: ; 0x0217f6dc
stmdb sp!, {r3, r4, lr}
sub sp, sp, #0x44
mov r4, r0
add r0, sp, #0x18
bl func_ov00_020c1500
mvn r1, #0
add r0, sp, #0x18
str r1, [sp, #0x34]
str r1, [sp, #0x38]
bl func_ov00_020c3348
mvn r0, #0
str r0, [sp, #4]
str r0, [sp, #8]
ldr r0, [r4, #0x280]
add r3, sp, #0xc
add r0, r0, #0x48
ldmia r0, {r0, r1, r2}
stmia r3, {r0, r1, r2}
ldr r0, [sp, #0x10]
mov r2, r3
add r0, r0, #0x800
str r0, [sp, #0x10]
add r1, sp, #4
str r1, [sp]
ldr r0, _0217f758 ; =data_027e0fe8
ldr r1, _0217f75c ; =0x54535350
ldr r0, [r0]
add r3, sp, #0x18
bl func_ov00_020c4048
add sp, sp, #0x44
ldmia sp!, {r3, r4, pc}
.align 2, 0
arm_func_end func_ov39_0217f6dc
_0217f758: .word data_027e0fe8
_0217f75c: .word 0x54535350
.global func_ov39_0217f760
arm_func_start func_ov39_0217f760
func_ov39_0217f760: ; 0x0217f760
mov r3, #0
str r3, [r0, #0x178]
ldr r1, [r0, #0x158]
bic r2, r1, #0x2000000
bic r1, r2, #0x8000000
str r1, [r0, #0x158]
tst r1, #0x40
streq r3, [r0, #0x17c]
bxeq lr
tst r1, #0x20000
moveq r1, #4
streq r1, [r0, #0x17c]
strne r3, [r0, #0x17c]
bx lr
arm_func_end func_ov39_0217f760
.global func_ov39_0217f798
arm_func_start func_ov39_0217f798
func_ov39_0217f798: ; 0x0217f798
stmdb sp!, {r3, r4, r5, lr}
mov r4, r1
ldr r2, [r4, #0x25c]
mvn r1, #0x80000000
mov r5, r0
cmp r2, r1
bne _0217f7c8
add r0, r4, #0x224
add r0, r0, #0x800
add r1, r4, #0x25c
mov r2, #0
bl func_ov39_0218577c
_0217f7c8:
add r0, r4, #0x25c
ldmia r0, {r0, r1, r2}
stmia r5, {r0, r1, r2}
ldmia sp!, {r3, r4, r5, pc}
arm_func_end func_ov39_0217f798
.global func_ov39_0217f7d8
arm_func_start func_ov39_0217f7d8
func_ov39_0217f7d8: ; 0x0217f7d8
stmdb sp!, {r3, lr}
ldr r2, [r0, #0x158]
tst r2, #0x8000000
ldreq r1, [r0, #0x180]
cmpeq r1, #0
moveq r0, #0
ldmeqia sp!, {r3, pc}
tst r2, #0x2000000
moveq r0, #0
ldmeqia sp!, {r3, pc}
mov r1, #7
bl func_ov39_0217d5d4
mov r0, #1
ldmia sp!, {r3, pc}
arm_func_end func_ov39_0217f7d8
.global func_ov39_0217f810
arm_func_start func_ov39_0217f810
func_ov39_0217f810: ; 0x0217f810
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
sub sp, sp, #0x18
mov r4, r0
ldr r0, [r4, #0x284]
mvn r1, #0
ldr r2, [r0, #0x88]
cmp r2, r1
bne _0217f868
ldr r1, [r4, #0x48]
add sp, sp, #0x18
str r1, [r0, #0x48]
ldr r1, [r4, #0x4c]
str r1, [r0, #0x4c]
ldr r1, [r4, #0x50]
str r1, [r0, #0x50]
ldr r1, [r4, #0x48]
str r1, [r0, #0x54]
ldr r1, [r4, #0x4c]
str r1, [r0, #0x58]
ldr r1, [r4, #0x50]
str r1, [r0, #0x5c]
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
_0217f868:
bl func_ov00_020c281c
cmp r0, #0
beq _0217f97c
ldr r0, [r4, #0x158]
ldr r5, _0217fa38 ; =data_02050f54
orr r0, r0, #0x8000000
str r0, [r4, #0x158]
ldr r0, [r4, #0x284]
mov r7, #0
ldrsh r3, [r0, #0x78]
add r0, r0, #0x48
ldmia r0, {r0, r1, r2}
add r3, r3, #0x8000
mov r3, r3, lsl #0x10
mov r3, r3, lsr #0x10
mov r3, r3, asr #0x4
mov r3, r3, lsl #0x1
mov r6, r3, lsl #0x1
ldrsh r8, [r5, r6]
mov ip, #0xcd
add r3, r3, #1
umull sl, sb, r8, ip
mov r3, r3, lsl #0x1
ldrsh lr, [r5, r3]
add r3, sp, #0xc
stmia r3, {r0, r1, r2}
umull r6, r5, lr, ip
mla sb, r8, r7, sb
mov r0, r8, asr #0x1f
mla sb, r0, ip, sb
adds sl, sl, #0x800
mla r5, lr, r7, r5
adc r1, sb, #0
mov r0, sl, lsr #0xc
orr r0, r0, r1, lsl #20
adds r1, r6, #0x800
mov r2, r1, lsr #0xc
mov r1, lr, asr #0x1f
mla r5, r1, ip, r5
adc r1, r5, #0
orr r2, r2, r1, lsl #20
str r0, [sp]
str r7, [sp, #4]
str r2, [sp, #8]
ldr r5, [r4, #0x284]
add r1, sp, #0
str r0, [r5, #0x60]
ldr r2, [sp, #4]
mov r0, r3
str r2, [r5, #0x64]
mov r2, r3
ldr r3, [sp, #8]
str r3, [r5, #0x68]
bl func_01ff9bc4
ldr r1, [r4, #0x284]
ldr r0, [sp, #0xc]
str r0, [r1, #0x48]
ldr r0, [sp, #0x10]
str r0, [r1, #0x4c]
ldr r0, [sp, #0x14]
str r0, [r1, #0x50]
ldr r0, [sp, #0xc]
str r0, [r1, #0x54]
ldr r0, [sp, #0x10]
str r0, [r1, #0x58]
ldr r0, [sp, #0x14]
add sp, sp, #0x18
str r0, [r1, #0x5c]
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
_0217f97c:
ldrsh r0, [r4, #0x78]
ldr r2, _0217fa38 ; =data_02050f54
ldr r1, _0217fa3c ; =0x00000a66
add r0, r0, #0x8000
mov r0, r0, lsl #0x10
mov r0, r0, lsr #0x10
mov r0, r0, asr #0x4
mov r3, r0, lsl #0x1
add r0, r3, #1
mov r0, r0, lsl #0x1
ldrsh r6, [r2, r0]
mov r0, r3, lsl #0x1
ldrsh r3, [r2, r0]
umull r8, r7, r6, r1
mov r2, #0
umull r0, r5, r3, r1
adds r8, r8, #0x800
mla r7, r6, r2, r7
mov r6, r6, asr #0x1f
mla r7, r6, r1, r7
adc r7, r7, #0
adds r6, r0, #0x800
mov r0, r8, lsr #0xc
mla r5, r3, r2, r5
mov r2, r3, asr #0x1f
mla r5, r2, r1, r5
adc r1, r5, #0
mov r2, r6, lsr #0xc
ldr r3, [r4, #0x48]
orr r2, r2, r1, lsl #20
ldr r6, [r4, #0x50]
orr r0, r0, r7, lsl #20
ldr r5, [r4, #0x4c]
ldr r1, [r4, #0x284]
add r2, r3, r2
str r2, [r1, #0x48]
str r5, [r1, #0x4c]
add r0, r6, r0
str r0, [r1, #0x50]
str r2, [r1, #0x54]
str r5, [r1, #0x58]
str r0, [r1, #0x5c]
ldrsh r1, [r4, #0x78]
ldr r0, [r4, #0x284]
strh r1, [r0, #0x78]
add sp, sp, #0x18
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
.align 2, 0
arm_func_end func_ov39_0217f810
_0217fa38: .word data_02050f54
_0217fa3c: .word 0x00000a66
.global func_ov39_0217fa40
arm_func_start func_ov39_0217fa40
func_ov39_0217fa40: ; 0x0217fa40
stmdb sp!, {r4, lr}
sub sp, sp, #0x10
ldr r1, _0217faa8 ; =data_027e0f64
mov r4, r0
ldr r0, [r1]
mov r1, #1
ldr r0, [r0, #8]
bl func_ov00_020875f8
ldr r0, [r4, #0x48]
mov r2, #1
str r0, [sp, #4]
ldr r0, [r4, #0x4c]
ldr r1, _0217faa8 ; =data_027e0f64
str r0, [sp, #8]
ldr r3, [r4, #0x50]
add r0, r4, #0x100
str r3, [sp, #0xc]
str r2, [sp]
ldr r1, [r1]
ldrsh r3, [r0, #0x68]
ldr r0, [r1, #8]
add r2, sp, #4
mov r1, #0x56
bl func_ov00_02087584
add sp, sp, #0x10
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov39_0217fa40
_0217faa8: .word data_027e0f64
.global func_ov39_0217faac
arm_func_start func_ov39_0217faac
func_ov39_0217faac: ; 0x0217faac
stmdb sp!, {r3, r4, r5, r6, r7, lr}
sub sp, sp, #0x18
ldr r2, _0217fb3c ; =0x00005666
ldr r1, _0217fb40 ; =0x00000b33
mov r3, #0
mov r4, r0
str r3, [sp, #0xc]
str r2, [sp, #0x10]
str r1, [sp, #0x14]
ldrsh r1, [r4, #0x78]
add r0, sp, #0xc
bl func_ov00_020a61ac
ldr r1, [r4, #0x48]
add r0, sp, #0xc
str r1, [sp]
ldr r2, [r4, #0x4c]
add r1, sp, #0
str r2, [sp, #4]
ldr r3, [r4, #0x50]
mov r2, r0
str r3, [sp, #8]
bl func_01ff9bc4
add r7, r4, #0x288
ldr r4, _0217fb44 ; =data_027e0e58
mov r6, #0
add r5, sp, #0xc
_0217fb14:
ldr r0, [r4]
mov r1, r7
mov r2, r5
bl func_ov00_0207c474
add r6, r6, #1
cmp r6, #3
add r7, r7, #0xc
blt _0217fb14
add sp, sp, #0x18
ldmia sp!, {r3, r4, r5, r6, r7, pc}
.align 2, 0
arm_func_end func_ov39_0217faac
_0217fb3c: .word 0x00005666
_0217fb40: .word 0x00000b33
_0217fb44: .word data_027e0e58
.global func_ov39_0217fb48
arm_func_start func_ov39_0217fb48
func_ov39_0217fb48: ; 0x0217fb48
stmdb sp!, {r4, lr}
sub sp, sp, #0x18
ldr r2, _0217fbbc ; =0x00005666
ldr r1, _0217fbc0 ; =0x00000b33
mov r3, #0
mov r4, r0
str r3, [sp, #0xc]
str r2, [sp, #0x10]
str r1, [sp, #0x14]
ldrsh r1, [r4, #0x78]
add r0, sp, #0xc
bl func_ov00_020a61ac
ldr r1, [r4, #0x48]
add r0, sp, #0xc
str r1, [sp]
ldr r2, [r4, #0x4c]
add r1, sp, #0
str r2, [sp, #4]
ldr r3, [r4, #0x50]
mov r2, r0
str r3, [sp, #8]
bl func_01ff9bc4
ldr r0, _0217fbc4 ; =data_027e0e58
add r2, sp, #0xc
ldr r0, [r0]
add r1, r4, #0x288
bl func_ov00_0207c474
add sp, sp, #0x18
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov39_0217fb48
_0217fbbc: .word 0x00005666
_0217fbc0: .word 0x00000b33
_0217fbc4: .word data_027e0e58
.global func_ov39_0217fbc8
arm_func_start func_ov39_0217fbc8
func_ov39_0217fbc8: ; 0x0217fbc8
stmdb sp!, {lr}
sub sp, sp, #0x14
ldr r1, _0217fc40 ; =data_027e0f94
mov ip, r0
add r3, sp, #8
ldmia r1, {r0, r1, r2}
stmia r3, {r0, r1, r2}
ldr r0, [ip, #0x4c]
mov r2, r3
add r0, r0, #0x800
str r0, [sp, #0xc]
mov r1, #0
str r1, [sp]
str r1, [sp, #4]
ldr r0, _0217fc44 ; =data_027e0e58
ldr r1, _0217fc48 ; =0x000001c1
ldr r0, [r0]
mov r3, #2
bl func_ov00_0207c1b0
mov r1, #0
str r1, [sp]
str r1, [sp, #4]
ldr r0, _0217fc44 ; =data_027e0e58
ldr r1, _0217fc4c ; =0x000001c2
ldr r0, [r0]
add r2, sp, #8
mov r3, #2
bl func_ov00_0207c1b0
add sp, sp, #0x14
ldmia sp!, {pc}
.align 2, 0
arm_func_end func_ov39_0217fbc8
_0217fc40: .word data_027e0f94
_0217fc44: .word data_027e0e58
_0217fc48: .word 0x000001c1
_0217fc4c: .word 0x000001c2
.global func_ov39_0217fc50
arm_func_start func_ov39_0217fc50
func_ov39_0217fc50: ; 0x0217fc50
stmdb sp!, {r4, lr}
mov r4, r0
ldr r0, [r4, #0x9f4]
add r0, r4, r0, lsl #2
ldr r0, [r0, #0x9ec]
cmp r0, #1
ldmneia sp!, {r4, pc}
ldr r0, [r4, #0x7fc]
mov r1, #0xb000
add r0, r0, #0xc
bl func_0202e310
cmp r0, #0
bne _0217fc9c
ldr r0, [r4, #0x7fc]
mov r1, #0x23000
add r0, r0, #0xc
bl func_0202e310
cmp r0, #0
ldmeqia sp!, {r4, pc}
_0217fc9c:
ldr r0, _0217fcb4 ; =data_027e0ffc
ldr r1, _0217fcb8 ; =0x00000315
add r2, r4, #0x48
mov r3, #0
bl func_ov00_020ceacc
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov39_0217fc50
_0217fcb4: .word data_027e0ffc
_0217fcb8: .word 0x00000315
.global func_ov39_0217fcbc
arm_func_start func_ov39_0217fcbc
func_ov39_0217fcbc: ; 0x0217fcbc
stmdb sp!, {r4, r5, r6, lr}
mov r5, r0
mov r0, #1
strb r0, [r5, #0xc9c]
add r1, r5, #0x1000
ldr r3, [r1, #0x874]
ldr r2, [r1, #0x87c]
ldr r6, [r3]
ldr r4, [r3, #8]
ldr r3, [r1, #0x880]
add r1, r2, r4
add r2, r6, r2
bl func_02017d30
add r0, r5, #0x3ec
add r0, r0, #0x400
add r0, r0, #0x238
ldr r1, [r0]
ldr r1, [r1, #8]
blx r1
mov r4, r0
ldr r0, [r4, #8]
ldr r1, _0217fd6c ; =data_ov39_02186760
add r0, r4, r0
add r0, r0, #4
bl func_0201e388
ldr r1, [r4, #8]
mov r6, r0
add r0, r4, r1
add r0, r0, #4
ldr r1, _0217fd70 ; =data_ov39_02186774
bl func_0201e388
mov r1, r6
mov r6, r0
mov r0, r4
ldr r2, _0217fd74 ; =0x00004a52
bl func_020193f0
mov r0, r4
mov r1, r6
ldr r2, _0217fd74 ; =0x00004a52
bl func_020193f0
add r0, r5, #0x3bc
add r0, r0, #0x800
bl func_ov39_02184b78
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
arm_func_end func_ov39_0217fcbc
_0217fd6c: .word data_ov39_02186760
_0217fd70: .word data_ov39_02186774
_0217fd74: .word 0x00004a52
.global func_ov39_0217fd78
arm_func_start func_ov39_0217fd78
func_ov39_0217fd78: ; 0x0217fd78
stmdb sp!, {r3, r4, r5, r6, r7, lr}
mov r5, r0
add r0, r5, #0x3bc
add r0, r0, #0x800
bl func_ov39_02184b98
add r0, r5, #0x3ec
add r0, r0, #0x400
add r0, r0, #0x238
ldr r1, [r0]
ldr r1, [r1, #8]
blx r1
mov r4, r0
ldr r0, [r4, #8]
ldr r1, _0217fe24 ; =data_ov39_02186788
add r0, r4, r0
add r0, r0, #4
bl func_0201e388
ldr r1, [r4, #8]
mov r7, r0
add r0, r4, r1
add r0, r0, #4
ldr r1, _0217fe28 ; =data_ov39_0218679c
bl func_0201e388
mov r6, r0
ldr r0, [r5, #0x280]
ldr r1, [r0]
ldr r1, [r1, #0xc4]
blx r1
mov r1, r7
mov r2, r0
mov r0, r4
bl func_020193f0
ldr r0, [r5, #0x280]
ldr r1, [r0]
ldr r1, [r1, #0xc8]
blx r1
mov r1, r6
mov r2, r0
mov r0, r4
bl func_020193f0
mov r0, #0
strb r0, [r5, #0xc9c]
ldmia sp!, {r3, r4, r5, r6, r7, pc}
.align 2, 0
arm_func_end func_ov39_0217fd78
_0217fe24: .word data_ov39_02186788
_0217fe28: .word data_ov39_0218679c
.global func_ov39_0217fe2c
arm_func_start func_ov39_0217fe2c
func_ov39_0217fe2c: ; 0x0217fe2c
stmdb sp!, {r4, lr}
mov r4, r0
add r0, r4, #0x3ec
add r0, r0, #0x400
mov r1, #0
bl func_ov39_0217caf0
mov r0, #0
str r0, [r4, #0x60]
str r0, [r4, #0x64]
str r0, [r4, #0x68]
mov r0, #1
ldmia sp!, {r4, pc}
arm_func_end func_ov39_0217fe2c
.global func_ov39_0217fe5c
arm_func_start func_ov39_0217fe5c
func_ov39_0217fe5c: ; 0x0217fe5c
stmdb sp!, {r3, r4, r5, lr}
mov r4, r0
ldrsh r5, [r4, #0x78]
bl func_ov39_0217e298
ldrsh r0, [r4, #0x78]
subs r0, r5, r0
rsbmi r0, r0, #0
cmp r0, #0x16c
add r0, r4, #0x3ec
add r0, r0, #0x400
blt _0217fe94
mov r1, #1
bl func_ov39_0217caf0
b _0217fe9c
_0217fe94:
mov r1, #0
bl func_ov39_0217caf0
_0217fe9c:
ldrb r0, [r4, #0xc9c]
cmp r0, #0
ldmneia sp!, {r3, r4, r5, pc}
mov r0, r4
bl func_ov39_0217f4ac
ldr r0, [r4, #0x138]
cmp r0, #0xa
ldmltia sp!, {r3, r4, r5, pc}
mov r0, r4
bl func_ov39_0217eb14
cmp r0, #0
ldmneia sp!, {r3, r4, r5, pc}
mov r0, r4
bl func_ov39_0217e2e8
cmp r0, #0
ldmneia sp!, {r3, r4, r5, pc}
ldr r0, _0217ff14 ; =data_027e0f94
ldr r1, [r4, #0x4c]
ldr r0, [r0, #4]
cmp r0, r1
ldmltia sp!, {r3, r4, r5, pc}
mov r0, r4
bl func_ov39_0217e404
ldr r1, _0217ff18 ; =0x00003333
cmp r0, r1
ldmleia sp!, {r3, r4, r5, pc}
mov r0, r4
mov r1, #2
bl func_ov39_0217d5d4
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov39_0217fe5c
_0217ff14: .word data_027e0f94
_0217ff18: .word 0x00003333
.global func_ov39_0217ff1c
arm_func_start func_ov39_0217ff1c
func_ov39_0217ff1c: ; 0x0217ff1c
stmdb sp!, {r3, lr}
ldr r1, [r0, #0x158]
mov r2, #0
bic r3, r1, #0x10
orr r1, r3, #0x420
str r1, [r0, #0x158]
str r2, [r0, #0x194]
str r2, [r0, #0x60]
str r2, [r0, #0x64]
add r1, r0, #0x3ec
str r2, [r0, #0x68]
add r0, r1, #0x400
mov r1, #1
bl func_ov39_0217caf0
mov r0, #1
ldmia sp!, {r3, pc}
arm_func_end func_ov39_0217ff1c
.global func_ov39_0217ff5c
arm_func_start func_ov39_0217ff5c
func_ov39_0217ff5c: ; 0x0217ff5c
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #0x130
mov r5, r0
ldrb r1, [r5, #0xc9c]
cmp r1, #0
addne sp, sp, #0x130
ldmneia sp!, {r4, r5, r6, pc}
bl func_ov39_0217e298
ldr r0, [r5, #0x194]
cmp r0, #0xc
addls pc, pc, r0, lsl #2
b _02180f14
_0217ff8c: ; jump table
b _0217ffc0 ; case 0
b _02180328 ; case 1
b _02180528 ; case 2
b _021805fc ; case 3
b _02180814 ; case 4
b _021808a4 ; case 5
b _02180900 ; case 6
b _02180a48 ; case 7
b _02180a94 ; case 8
b _02180b58 ; case 9
b _02180dc8 ; case 10
b _02180e10 ; case 11
b _02180e94 ; case 12
_0217ffc0:
mov r0, r5
bl func_ov00_020c198c
cmp r0, #0
beq _021802bc
ldr r0, _02180f1c ; =data_027e071c
bl func_0202d7ac
cmp r0, #0
bne _021802bc
ldr r0, _02180f1c ; =data_027e071c
ldr r1, [r0, #0x44]
cmp r1, #0
beq _02180004
ldr r0, _02180f20 ; =data_027e0fc8
ldr r0, [r0]
ldr r0, [r0, #4]
cmp r1, r0
bne _021802bc
_02180004:
add r0, r5, #0x204
add r0, r0, #0x800
mov r1, #2
bl func_ov00_020c5d74
ldr r1, [r5, #0x158]
mov r0, #0
bic r1, r1, #0x800000
str r1, [r5, #0x158]
str r0, [r5, #0xca0]
str r0, [r5, #0xca4]
ldr r1, [r5, #0x158]
add r0, sp, #0x80
orr r1, r1, #0x200
str r1, [r5, #0x158]
bl func_ov00_0209a4f4
mov r2, #0
ldr r1, _02180f24 ; =data_027e0f64
mov r3, #0x32
mvn r4, #0
ldr r0, _02180f28 ; =data_027e0f74
ldr r1, [r1]
strb r3, [sp, #0x89]
strb r2, [sp, #0x8a]
strb r2, [sp, #0x8b]
str r4, [sp, #0x84]
ldr r4, [r1, #4]
ldr r0, [r0]
ldr r2, [r4, #0x26c]
add r1, sp, #0x80
str r2, [sp, #0xa0]
ldr r3, [r4, #0x270]
mov r2, #1
str r3, [sp, #0xa4]
ldr r3, [r4, #0x274]
str r3, [sp, #0xa8]
strb r2, [sp, #0x96]
bl func_ov00_02097810
add r1, r5, #0x3ec
str r0, [r5, #0x190]
add r0, r1, #0x400
mov r1, #0
bl func_ov39_0217caf0
mov r0, #0
strb r0, [r5, #0xc58]
str r0, [r5, #0x60]
str r0, [r5, #0x64]
str r0, [r5, #0x68]
add r0, r5, #0x388
blx func_0202ab54
mov r1, #2
mov r0, #1
str r0, [r5, #0x388]
mov r0, #0
str r0, [r5, #0x390]
add r0, r5, #0x388
mov r2, r1
mov r3, r1
str r1, [sp]
blx func_0202ac0c
ldr r0, _02180f1c ; =data_027e071c
add r1, r5, #0x388
bl func_0202d77c
ldr r0, _02180f24 ; =data_027e0f64
mov r1, #0
ldr r0, [r0]
ldr r0, [r0, #4]
bl func_ov00_020875f8
ldr r0, _02180f24 ; =data_027e0f64
add r1, r5, #0x2b8
ldr r0, [r0]
ldr r0, [r0, #4]
bl func_ov00_02087d34
ldr r1, [r5, #0x14]
ldr r0, _02180f2c ; =0x00001b33
str r1, [r5, #0x214]
str r0, [r5, #0x218]
ldr r0, [r5, #0x1c]
mov r4, #0
add r0, r0, #0x9a
add r0, r0, #0x3900
str r0, [r5, #0x21c]
mov r0, #0x4000
str r0, [r5, #0x2d0]
str r4, [r5, #0x2dc]
str r4, [r5, #0x2d8]
mov r1, #0x7d0
str r4, [r5, #0x2d4]
str r1, [r5, #0x2c4]
sub r0, r1, #0xfa0
str r0, [r5, #0x2c8]
add r0, r1, #0x3840
str r0, [r5, #0x2cc]
ldr r1, [r5, #0x214]
ldr r0, _02180f24 ; =data_027e0f64
str r1, [sp, #0x20]
ldr r2, [r5, #0x218]
add r1, sp, #0x20
str r2, [sp, #0x24]
ldr r2, [r5, #0x21c]
add r3, r5, #0x2b8
str r2, [sp, #0x28]
str r4, [sp]
str r4, [sp, #4]
ldr r0, [r0]
mov r2, #2
ldr r0, [r0, #4]
bl func_ov00_02089318
ldr r2, _02180f30 ; =0x00000b33
ldr r1, _02180f34 ; =0x00000666
rsb r0, r2, #0x800
str r1, [sp, #0x78]
str r2, [sp, #0x74]
str r0, [sp, #0x7c]
ldr r0, [r5, #0x280]
add r1, sp, #0x74
bl func_ov39_02185120
mov r1, #1
str r1, [r5, #0x194]
ldr r0, _02180f20 ; =data_027e0fc8
add r1, r5, #0x48
ldr r0, [r0]
bl func_ov00_020bb6d4
mov r3, r4
str r3, [r5, #0x138]
sub r0, r3, #1
str r0, [r5, #0x1ac]
ldr r4, [r5, #0x1c]
ldr r2, [r5, #0x18]
ldr r1, [r5, #0x14]
ldr r0, _02180f38 ; =data_027e0f90
str r1, [r5, #0x48]
str r2, [r5, #0x4c]
str r4, [r5, #0x50]
ldr ip, [r5, #0x1c]
ldr r4, [r5, #0x18]
ldr r2, [r5, #0x14]
add r1, sp, #0x68
str r2, [r5, #0x54]
str r4, [r5, #0x58]
str ip, [r5, #0x5c]
ldrsh r4, [r5, #0x12]
sub r2, r3, #0x8000
strh r4, [r5, #0x78]
ldr r4, [r5, #0x50]
ldr ip, [r5, #0x4c]
add lr, r4, #0x4000
ldr r4, [r5, #0x48]
str r4, [sp, #0x68]
str ip, [sp, #0x6c]
str lr, [sp, #0x70]
str r3, [sp]
str r3, [sp, #4]
ldr r0, [r0]
ldr r4, [r0]
ldr r4, [r4, #0x34]
blx r4
ldr r1, [r5, #0x48]
ldr r0, _02180f3c ; =data_027e0fb4
str r1, [r5, #0x238]
ldr r1, [r5, #0x4c]
str r1, [r5, #0x23c]
ldr r1, [r5, #0x50]
str r1, [r5, #0x240]
ldr r1, [r0]
ldr r1, [r1, #0x10]
str r1, [r5, #0x1a0]
cmp r1, #0
ldrne r0, [r0]
movne r1, #0
strne r1, [r0, #0x10]
add r0, sp, #0x80
bl func_ov00_0209a508
add sp, sp, #0x130
ldmia sp!, {r4, r5, r6, pc}
_021802bc:
mov r0, r5
bl func_ov39_0217e404
cmp r0, #0x4000
addle sp, sp, #0x130
ldmleia sp!, {r4, r5, r6, pc}
ldrh r1, [r5, #0x78]
ldr r3, _02180f40 ; =data_02050f54
mov r0, #0xcd
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]
smulbb r2, r2, r0
smulbb r0, r1, r0
add r2, r2, #0x800
mov r1, r2, asr #0xc
add r0, r0, #0x800
str r1, [r5, #0x60]
mov r1, #0
str r1, [r5, #0x64]
mov r0, r0, asr #0xc
add sp, sp, #0x130
str r0, [r5, #0x68]
ldmia sp!, {r4, r5, r6, pc}
_02180328:
ldr r2, _02180f30 ; =0x00000b33
ldr r1, _02180f34 ; =0x00000666
rsb r0, r2, #0x800
str r1, [sp, #0x60]
str r2, [sp, #0x5c]
str r0, [sp, #0x64]
ldr r0, [r5, #0x280]
add r1, sp, #0x5c
bl func_ov39_02185208
ldr r0, _02180f20 ; =data_027e0fc8
add r1, r5, #0x48
ldr r0, [r0]
bl func_ov00_020bb6d4
ldr r0, _02180f20 ; =data_027e0fc8
add r1, sp, #0x5c
ldr r0, [r0]
mov r2, #0x400
bl func_ov00_020bb810
ldr r1, [r5, #0x138]
ldr r0, [r5, #0x2c8]
rsb r1, r1, #0x32
mov r0, r0, lsl #0x10
mov r4, r1, lsl #0xc
mov r6, r0, asr #0x10
cmp r4, #0x1000
movle r6, #0
ble _021803b8
rsb r0, r6, #0
mov r0, r0, lsl #0x10
mov r1, r4
mov r0, r0, asr #0x4
bl func_01ff98e0
add r0, r0, #0x800
add r0, r6, r0, asr #12
mov r0, r0, lsl #0x10
mov r6, r0, asr #0x10
_021803b8:
str r6, [r5, #0x2c8]
cmp r4, #0x1000
ldr r0, _02180f30 ; =0x00000b33
ble _021803e0
ldr r2, [r5, #0x218]
mov r1, r4
sub r0, r0, r2
bl func_01ff98e0
ldr r1, [r5, #0x218]
add r0, r1, r0
_021803e0:
str r0, [r5, #0x218]
ldr r0, [r5, #0x214]
mov r2, #0
str r0, [sp, #0x14]
ldr r1, [r5, #0x218]
ldr r0, _02180f24 ; =data_027e0f64
str r1, [sp, #0x18]
ldr r3, [r5, #0x21c]
add r1, sp, #0x14
str r3, [sp, #0x1c]
str r2, [sp]
str r2, [sp, #4]
ldr r0, [r0]
add r3, r5, #0x2b8
ldr r0, [r0, #4]
mov r2, #2
bl func_ov00_02089318
ldr r0, [r5, #0x138]
cmp r0, #0x1e
bne _02180450
add r1, r5, #4
ldr r0, _02180f44 ; =data_027e0c68
ldr r2, _02180f48 ; =0x00080015
add r1, r1, #0xc00
bl func_02036ce4
mov r0, r5
mov r1, #1
bl func_ov00_020c1908
_02180450:
mov r0, #0x10000
ldr r1, [r5, #0xc1c]
rsb r0, r0, #0
and r0, r1, r0
cmp r0, #0x1000000
addeq sp, sp, #0x130
ldmeqia sp!, {r4, r5, r6, pc}
add r0, r5, #4
add r0, r0, #0xc00
ldr r1, [r0]
ldr r1, [r1, #0x10]
blx r1
mov r0, #0x10000
ldr r1, [r5, #0xc1c]
rsb r0, r0, #0
and r0, r1, r0
cmp r0, #0x1000000
addne sp, sp, #0x130
ldmneia sp!, {r4, r5, r6, pc}
ldr r0, _02180f24 ; =data_027e0f64
mov r1, #1
ldr r0, [r0]
ldr r0, [r0, #4]
bl func_ov00_020875f8
ldr r0, [r5, #0x48]
mov r1, #1
str r0, [sp, #8]
ldr r2, [r5, #0x4c]
ldr r0, _02180f24 ; =data_027e0f64
str r2, [sp, #0xc]
ldr r3, [r5, #0x50]
add r2, sp, #8
str r3, [sp, #0x10]
str r1, [sp]
ldr r0, [r0]
ldrsh r3, [r5, #0x78]
ldr r0, [r0, #4]
mov r1, #0x54
bl func_ov00_02087584
add r1, r5, #4
mov r3, #2
ldr r0, _02180f44 ; =data_027e0c68
ldr r2, _02180f4c ; =0x0008001a
add r1, r1, #0xc00
str r3, [r5, #0x194]
bl func_02036ce4
mov r0, r5
mov r1, #1
bl func_ov00_020c1908
ldr r0, _02180f20 ; =data_027e0fc8
ldr r0, [r0]
bl func_ov00_020bb9b0
add sp, sp, #0x130
ldmia sp!, {r4, r5, r6, pc}
_02180528:
ldr r0, [r5, #0x280]
add r1, r0, #0x48
bl func_ov39_02185208
mov r0, #0x10000
ldr r1, [r5, #0xc1c]
rsb r0, r0, #0
and r0, r1, r0
cmp r0, #0x1000000
addeq sp, sp, #0x130
ldmeqia sp!, {r4, r5, r6, pc}
add r0, r5, #4
add r0, r0, #0xc00
ldr r1, [r0]
ldr r1, [r1, #0x10]
blx r1
mov r0, #0x10000
ldr r1, [r5, #0xc1c]
rsb r0, r0, #0
and r0, r1, r0
cmp r0, #0x1000000
addne sp, sp, #0x130
ldmneia sp!, {r4, r5, r6, pc}
ldr r1, [r5, #0x280]
mov r0, r5
add r1, r1, #0x48
bl func_ov00_020c2938
add r1, r5, #0x100
strh r0, [r1, #0x62]
ldr r1, [r5, #0x280]
mov r0, r5
add r1, r1, #0x48
bl func_ov00_020c288c
str r0, [r5, #0x1b8]
ldr r1, [r5, #0x280]
ldr r0, _02180f50 ; =0x0000199a
ldr r2, [r1, #0x4c]
mov r1, #3
str r2, [r5, #0x1bc]
str r1, [r5, #0x194]
mov r2, #0
str r2, [r5, #0x138]
rsb r1, r0, #0x800
str r0, [sp, #0x50]
str r2, [sp, #0x54]
str r1, [sp, #0x58]
bl func_01ffa0f4
add r1, r5, #0x100
strh r0, [r1, #0x60]
add r0, sp, #0x50
bl func_01ff9cec
add sp, sp, #0x130
str r0, [r5, #0x1cc]
ldmia sp!, {r4, r5, r6, pc}
_021805fc:
add r0, r5, #0x100
ldrsh r2, [r5, #0x78]
ldrsh r1, [r0, #0x60]
ldr r3, [r5, #0x138]
add r1, r2, r1
rsb r3, r3, #0x28
mov r1, r1, lsl #0x10
mov r4, r3, lsl #0xc
mov r2, r1, asr #0x10
cmp r4, #0x1000
strleh r2, [r0, #0x62]
ble _02180658
ldrsh r0, [r0, #0x62]
mov r1, r4
sub r0, r2, r0
mov r0, r0, lsl #0x10
mov r0, r0, asr #0x4
bl func_01ff98e0
add r1, r5, #0x100
ldrsh r2, [r1, #0x62]
add r0, r0, #0x800
add r0, r2, r0, asr #12
strh r0, [r1, #0x62]
_02180658:
ldr r2, [r5, #0x1cc]
cmp r4, #0x1000
strle r2, [r5, #0x1b8]
ble _02180684
ldr r0, [r5, #0x1b8]
mov r1, r4
sub r0, r2, r0
bl func_01ff98e0
ldr r1, [r5, #0x1b8]
add r0, r1, r0
str r0, [r5, #0x1b8]
_02180684:
cmp r4, #0x1000
ldr r0, _02180f50 ; =0x0000199a
ble _021806a8
ldr r2, [r5, #0x1bc]
mov r1, r4
sub r0, r0, r2
bl func_01ff98e0
ldr r1, [r5, #0x1bc]
add r0, r1, r0
_021806a8:
str r0, [r5, #0x1bc]
add r0, r5, #0x100
ldrh r0, [r0, #0x62]
ldr r1, _02180f40 ; =data_02050f54
ldr lr, [r5, #0x1b8]
mov r0, r0, asr #0x4
mov r3, r0, lsl #0x1
add r0, r3, #1
mov r2, r0, lsl #0x1
ldrsh r2, [r1, r2]
mov r0, r3, lsl #0x1
ldrsh r1, [r1, r0]
smull r3, r4, r2, lr
adds ip, r3, #0x800
smull r3, r2, r1, lr
adc r1, r4, #0
mov lr, ip, lsr #0xc
ldr r0, [r5, #0x50]
orr lr, lr, r1, lsl #20
adds r3, r3, #0x800
adc r1, r2, #0
mov r2, r3, lsr #0xc
ldr ip, [r5, #0x4c]
ldr r4, [r5, #0x1bc]
orr r2, r2, r1, lsl #20
ldr r3, [r5, #0x48]
add lr, r0, lr
add r1, ip, r4
add r0, r3, r2
str r1, [sp, #0x48]
str lr, [sp, #0x4c]
str r0, [sp, #0x44]
ldr r0, [r5, #0x280]
add r1, sp, #0x44
bl func_ov39_02185208
ldr r0, [r5, #0x48]
ldr r1, [r5, #0x4c]
add r2, r0, #0x9a
add r1, r1, #0x9a
ldr r3, [r5, #0x50]
ldr r0, _02180f54 ; =0xffffee66
add r1, r1, #0x1900
add r3, r3, r0
add r0, r2, #0x1900
str r1, [sp, #0x48]
str r3, [sp, #0x4c]
str r0, [sp, #0x44]
ldr r0, [r5, #0x138]
cmp r0, #5
addlt sp, sp, #0x130
ldmltia sp!, {r4, r5, r6, pc}
bne _02180788
add r0, r5, #0x3ec
add r0, r0, #0x400
mov r1, #9
bl func_ov39_0217caf0
_02180788:
ldr r0, [r5, #0x9f4]
add r0, r5, r0, lsl #2
ldr r0, [r0, #0x9ec]
cmp r0, #9
bne _021807c4
ldr r0, [r5, #0x7fc]
add r0, r0, #0xc
bl func_0202e58c
cmp r0, #0
addeq sp, sp, #0x130
ldmeqia sp!, {r4, r5, r6, pc}
add r0, r5, #0x3ec
add r0, r0, #0x400
mov r1, #0
bl func_ov39_0217caf0
_021807c4:
ldr r1, [r5, #0x280]
add r0, sp, #0x44
add r1, r1, #0x48
bl func_01ff9ec0
ldr r1, _02180f58 ; =0x00000333
cmp r0, r1
addge sp, sp, #0x130
ldmgeia sp!, {r4, r5, r6, pc}
add r1, r5, #4
mov r3, #4
ldr r0, _02180f44 ; =data_027e0c68
ldr r2, _02180f5c ; =0x0008001b
add r1, r1, #0xc00
str r3, [r5, #0x194]
bl func_02036ce4
mov r0, r5
mov r1, #1
bl func_ov00_020c1908
add sp, sp, #0x130
ldmia sp!, {r4, r5, r6, pc}
_02180814:
mov r0, r5
bl func_ov39_0217eb10
mov r0, #0x10000
ldr r1, [r5, #0xc1c]
rsb r0, r0, #0
and r0, r1, r0
cmp r0, #0x1000000
addeq sp, sp, #0x130
ldmeqia sp!, {r4, r5, r6, pc}
add r0, r5, #4
add r0, r0, #0xc00
ldr r1, [r0]
ldr r1, [r1, #0x10]
blx r1
mov r0, #0x10000
ldr r1, [r5, #0xc1c]
rsb r0, r0, #0
and r0, r1, r0
cmp r0, #0x1000000
addne sp, sp, #0x130
ldmneia sp!, {r4, r5, r6, pc}
ldr r0, [r5, #0x158]
mov r4, #5
orr r0, r0, #0x40
str r0, [r5, #0x158]
str r4, [sp]
ldr r0, _02180f60 ; =data_027e0c54
ldr r1, _02180f64 ; =func_ov05_02102a80
mov r2, #0
mov r3, #2
str r4, [sp, #4]
blx func_02036140
mov r0, r4
add sp, sp, #0x130
str r0, [r5, #0x194]
ldmia sp!, {r4, r5, r6, pc}
_021808a4:
mov r0, r5
bl func_ov39_0217eb10
ldr r0, _02180f60 ; =data_027e0c54
bl func_0203608c
cmp r0, #0
addne sp, sp, #0x130
ldmneia sp!, {r4, r5, r6, pc}
ldr r0, _02180f60 ; =data_027e0c54
ldrb r0, [r0]
cmp r0, #0
addeq sp, sp, #0x130
ldmeqia sp!, {r4, r5, r6, pc}
mov r0, r5
mov r1, #8
mov r2, #0x16
mov r3, #0
bl func_ov39_0217ec34
mov r0, #6
str r0, [r5, #0x194]
mov r0, #0
add sp, sp, #0x130
str r0, [r5, #0x138]
ldmia sp!, {r4, r5, r6, pc}
_02180900:
mov r0, r5
bl func_ov39_0217eb10
ldr r0, [r5, #0x9f4]
add r0, r5, r0, lsl #2
ldr r0, [r0, #0x9ec]
cmp r0, #0xa
bne _02180970
ldr r0, [r5, #0x7fc]
mov r1, #0x1e000
add r0, r0, #0xc
bl func_0202e310
cmp r0, #0
beq _02180948
ldr r0, _02180f68 ; =data_027e0ffc
ldr r1, _02180f6c ; =0x00000326
add r2, r5, #0x48
mov r3, #0
bl func_ov00_020ceacc
_02180948:
ldr r0, [r5, #0x7fc]
add r0, r0, #0xc
bl func_0202e58c
cmp r0, #0
beq _021809ac
add r0, r5, #0x3ec
add r0, r0, #0x400
mov r1, #0xb
bl func_ov39_0217ca2c
b _021809ac
_02180970:
cmp r0, #0xb
beq _021809ac
ldr r0, [r5, #0x138]
cmp r0, #0x23
blt _021809ac
add r0, r5, #0x3ec
add r0, r0, #0x400
mov r1, #0xa
bl func_ov39_0217caf0
add r0, r5, #0x3bc
add r0, r0, #0x800
mov r1, #1
bl func_ov39_02184d40
mov r0, #0
str r0, [r5, #0x138]
_021809ac:
mov r0, r5
bl func_ov39_0217f488
cmp r0, #0
ldr r0, [r5, #0x9f4]
add r0, r5, r0, lsl #2
bne _02180a14
ldr r0, [r0, #0x9ec]
cmp r0, #0xa
moveq r0, #7
addeq sp, sp, #0x130
streq r0, [r5, #0x194]
ldmeqia sp!, {r4, r5, r6, pc}
cmp r0, #0xb
bne _021809f4
mov r0, r5
bl func_ov39_02180f88
add sp, sp, #0x130
ldmia sp!, {r4, r5, r6, pc}
_021809f4:
add r0, r5, #0x3ec
add r0, r0, #0x400
mov r1, #0xa
bl func_ov39_0217ca2c
mov r0, #7
add sp, sp, #0x130
str r0, [r5, #0x194]
ldmia sp!, {r4, r5, r6, pc}
_02180a14:
ldr r0, [r0, #0x9ec]
sub r0, r0, #0xa
cmp r0, #1
addhi sp, sp, #0x130
ldmhiia sp!, {r4, r5, r6, pc}
ldr r0, [r5, #0x138]
cmp r0, #0x28
addlt sp, sp, #0x130
ldmltia sp!, {r4, r5, r6, pc}
mov r0, r5
bl func_ov39_02180fac
add sp, sp, #0x130
ldmia sp!, {r4, r5, r6, pc}
_02180a48:
mov r0, r5
bl func_ov39_0217eb10
ldr r0, [r5, #0x7fc]
add r0, r0, #0xc
bl func_0202e58c
cmp r0, #0
beq _02180a74
mov r0, r5
bl func_ov39_02180f88
add sp, sp, #0x130
ldmia sp!, {r4, r5, r6, pc}
_02180a74:
ldr r0, [r5, #0x138]
cmp r0, #0x28
addlt sp, sp, #0x130
ldmltia sp!, {r4, r5, r6, pc}
mov r0, r5
bl func_ov39_02180fac
add sp, sp, #0x130
ldmia sp!, {r4, r5, r6, pc}
_02180a94:
mov r0, r5
bl func_ov39_0217eb10
ldr r0, [r5, #0x9f4]
add r0, r5, r0, lsl #2
ldr r0, [r0, #0x9ec]
cmp r0, #0xa
bne _02180ae4
ldr r0, [r5, #0x7fc]
add r0, r0, #0xc
bl func_0202e58c
cmp r0, #0
beq _02180ae4
add r0, r5, #0x3ec
add r0, r0, #0x400
mov r1, #0xb
bl func_ov39_0217ca2c
add r0, r5, #0x3bc
add r0, r0, #0x800
mov r1, #2
bl func_ov39_02184d40
_02180ae4:
ldr r0, [r5, #0x9f4]
add r0, r5, r0, lsl #2
ldr r0, [r0, #0x9ec]
cmp r0, #0xb
addne sp, sp, #0x130
ldmneia sp!, {r4, r5, r6, pc}
mov r0, r5
bl func_ov39_0217f488
cmp r0, #0
beq _02180b1c
ldr r0, [r5, #0x138]
cmp r0, #0x28
addlt sp, sp, #0x130
ldmltia sp!, {r4, r5, r6, pc}
_02180b1c:
mov r0, r5
bl func_ov39_02185a6c
cmp r0, #0
addeq sp, sp, #0x130
ldmeqia sp!, {r4, r5, r6, pc}
mov r0, #0
str r0, [r5, #0x138]
ldr r1, [r5, #0xaec]
mov r0, #1
str r1, [r5, #0xaf0]
strb r0, [r5, #0xafc]
mov r0, #9
add sp, sp, #0x130
str r0, [r5, #0x194]
ldmia sp!, {r4, r5, r6, pc}
_02180b58:
ldr r1, [r5, #0xa14]
ldr r0, [r5, #0x280]
ldr r4, [r1, #0x14]
add r0, r0, #0x48
add r3, sp, #0x38
ldmia r0, {r0, r1, r2}
stmia r3, {r0, r1, r2}
ldr r0, [r5, #0xa14]
mov r1, #0xa000
add r0, r0, #0xc
bl func_0202e310
cmp r0, #0
bne _02180bbc
ldr r0, [r5, #0xa14]
mov r1, #0x23000
add r0, r0, #0xc
bl func_0202e310
cmp r0, #0
bne _02180bbc
ldr r0, [r5, #0xa14]
mov r1, #0x34000
add r0, r0, #0xc
bl func_0202e310
cmp r0, #0
beq _02180bd0
_02180bbc:
ldr r0, _02180f68 ; =data_027e0ffc
ldr r1, _02180f70 ; =0x00000312
add r2, r5, #0x48
mov r3, #0
bl func_ov00_020ceacc
_02180bd0:
cmp r4, #0xb000
bge _02180c00
ldr r1, _02180f74 ; =data_ov39_02186668
add r2, sp, #0x2c
add r0, r5, #0x48
bl func_01ff9bc4
ldr r0, [r5, #0x280]
add r1, sp, #0x2c
bl func_ov39_02185208
ldr r0, _02180f34 ; =0x00000666
str r0, [r5, #0x1c0]
b _02180dac
_02180c00:
cmp r4, #0x10000
bge _02180c64
ldr r1, _02180f78 ; =data_ov39_02186674
add r2, sp, #0x2c
add r0, r5, #0x48
bl func_01ff9bc4
ldr r2, [r5, #0x1c0]
add r0, sp, #0x38
add r1, sp, #0x2c
bl func_0202b2e8
ldr r2, _02180f7c ; =0x0000019a
add r0, r5, #0x1c0
mov r1, #0x400
bl func_0202b0f4
ldr r0, [r5, #0x280]
add r1, sp, #0x38
bl func_ov39_02185208
cmp r4, #0xb000
bne _02180dac
mov r0, r5
mov r1, #8
mov r2, #0x18
mov r3, #0
bl func_ov39_0217ec34
b _02180dac
_02180c64:
cmp r4, #0x24000
bge _02180c94
ldr r1, _02180f78 ; =data_ov39_02186674
add r2, sp, #0x2c
add r0, r5, #0x48
bl func_01ff9bc4
ldr r0, [r5, #0x280]
add r1, sp, #0x2c
bl func_ov39_02185208
ldr r0, _02180f34 ; =0x00000666
str r0, [r5, #0x1c0]
b _02180dac
_02180c94:
cmp r4, #0x2d000
bge _02180cdc
ldr r1, _02180f80 ; =data_ov39_02186680
add r2, sp, #0x2c
add r0, r5, #0x48
bl func_01ff9bc4
ldr r2, [r5, #0x1c0]
add r0, sp, #0x38
add r1, sp, #0x2c
bl func_0202b2e8
ldr r2, _02180f7c ; =0x0000019a
add r0, r5, #0x1c0
mov r1, #0x400
bl func_0202b0f4
ldr r0, [r5, #0x280]
add r1, sp, #0x38
bl func_ov39_02185208
b _02180dac
_02180cdc:
cmp r4, #0x38000
bge _02180d24
ldr r1, _02180f84 ; =data_ov39_0218668c
add r2, sp, #0x2c
add r0, r5, #0x48
bl func_01ff9bc4
ldr r2, [r5, #0x1c0]
add r0, sp, #0x38
add r1, sp, #0x2c
bl func_0202b2e8
ldr r2, _02180f7c ; =0x0000019a
add r0, r5, #0x1c0
mov r1, #0x400
bl func_0202b0f4
ldr r0, [r5, #0x280]
add r1, sp, #0x38
bl func_ov39_02185208
b _02180dac
_02180d24:
cmp r4, #0x3c000
bge _02180d4c
ldr r1, _02180f84 ; =data_ov39_0218668c
add r2, sp, #0x2c
add r0, r5, #0x48
bl func_01ff9bc4
ldr r0, [r5, #0x280]
add r1, sp, #0x2c
bl func_ov39_02185208
b _02180dac
_02180d4c:
cmp r4, #0x3c000
mov r0, r5
bne _02180da8
mov r1, #8
mov r2, #0x20
mov r3, #0
bl func_ov39_0217ec34
ldr r1, [r5, #0x280]
mov r3, #0
strb r3, [r1, #0x11a]
ldr r0, _02180f3c ; =data_027e0fb4
mov r1, #1
ldr r0, [r0]
add r2, r5, #0x48
strb r1, [r0, #0x14d]
ldr r1, [r5, #0x158]
ldr r0, _02180f68 ; =data_027e0ffc
orr r1, r1, #0x80
str r1, [r5, #0x158]
mov r1, #0x314
str r3, [r5, #0x138]
bl func_ov00_020ceacc
b _02180dac
_02180da8:
bl func_ov39_0217eae4
_02180dac:
mov r0, r5
bl func_ov39_02185a90
cmp r0, #0
movne r0, #0xa
add sp, sp, #0x130
strne r0, [r5, #0x194]
ldmia sp!, {r4, r5, r6, pc}
_02180dc8:
mov r0, r5
bl func_ov39_0217eae4
mov r0, r5
bl func_ov39_0217f488
cmp r0, #0
beq _02180df0
ldr r0, [r5, #0x138]
cmp r0, #0x28
addlt sp, sp, #0x130
ldmltia sp!, {r4, r5, r6, pc}
_02180df0:
add r0, r5, #0x3ec
add r0, r0, #0x400
mov r1, #0xc
bl func_ov39_0217ca2c
mov r0, #0xb
add sp, sp, #0x130
str r0, [r5, #0x194]
ldmia sp!, {r4, r5, r6, pc}
_02180e10:
mov r0, r5
bl func_ov39_0217eae4
ldr r0, [r5, #0x7fc]
add r0, r0, #0xc
bl func_0202e58c
cmp r0, #0
beq _02180e60
mov r0, r5
mov r1, #8
mov r2, #0x1c
mov r3, #0
bl func_ov39_0217ec34
add r0, r5, #0x3ec
add r0, r0, #0x400
mov r1, #0
bl func_ov39_0217ca2c
mov r0, #0xc
add sp, sp, #0x130
str r0, [r5, #0x194]
ldmia sp!, {r4, r5, r6, pc}
_02180e60:
ldr r0, [r5, #0x7fc]
mov r1, #0x8000
add r0, r0, #0xc
bl func_0202e310
cmp r0, #0
addeq sp, sp, #0x130
ldmeqia sp!, {r4, r5, r6, pc}
add r0, r5, #0x3bc
add r0, r0, #0x800
mov r1, #0
bl func_ov39_02184d40
add sp, sp, #0x130
ldmia sp!, {r4, r5, r6, pc}
_02180e94:
mov r0, r5
bl func_ov39_0217eae4
mov r0, r5
bl func_ov39_0217f488
cmp r0, #0
addne sp, sp, #0x130
ldmneia sp!, {r4, r5, r6, pc}
ldr r0, _02180f28 ; =data_027e0f74
ldr r1, [r5, #0x190]
ldr r0, [r0]
bl func_ov00_02097bcc
mvn r4, #0
mov r0, r5
mov r1, #8
mov r2, #0x1d
mov r3, #0
str r4, [r5, #0x190]
bl func_ov39_0217ec34
mov r0, #1
strb r0, [r5, #0xc58]
ldr r1, _02180f50 ; =0x0000199a
mov r0, r5
str r1, [r5, #0x1ac]
bl func_ov39_0217f760
mov r0, r5
mov r1, #0
bl func_ov39_0217d5d4
ldr r1, [r5, #0x1a0]
cmp r1, #0
ldrne r0, _02180f3c ; =data_027e0fb4
ldrne r0, [r0]
strne r1, [r0, #0x10]
_02180f14:
add sp, sp, #0x130
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
arm_func_end func_ov39_0217ff5c
_02180f1c: .word data_027e071c
_02180f20: .word data_027e0fc8
_02180f24: .word data_027e0f64
_02180f28: .word data_027e0f74
_02180f2c: .word 0x00001b33
_02180f30: .word 0x00000b33
_02180f34: .word 0x00000666
_02180f38: .word data_027e0f90
_02180f3c: .word data_027e0fb4
_02180f40: .word data_02050f54
_02180f44: .word data_027e0c68
_02180f48: .word 0x00080015
_02180f4c: .word 0x0008001a
_02180f50: .word 0x0000199a
_02180f54: .word 0xffffee66
_02180f58: .word 0x00000333
_02180f5c: .word 0x0008001b
_02180f60: .word data_027e0c54
_02180f64: .word func_ov05_02102a80
_02180f68: .word data_027e0ffc
_02180f6c: .word 0x00000326
_02180f70: .word 0x00000312
_02180f74: .word data_ov39_02186668
_02180f78: .word data_ov39_02186674
_02180f7c: .word 0x0000019a
_02180f80: .word data_ov39_02186680
_02180f84: .word data_ov39_0218668c
.global func_ov39_02180f88
arm_func_start func_ov39_02180f88
func_ov39_02180f88: ; 0x02180f88
stmdb sp!, {r4, lr}
mov r4, r0
add r0, r4, #0x3ec
add r0, r0, #0x400
mov r1, #0xb
bl func_ov39_0217ca2c
mov r0, r4
bl func_ov39_02180fac
ldmia sp!, {r4, pc}
arm_func_end func_ov39_02180f88
.global func_ov39_02180fac
arm_func_start func_ov39_02180fac
func_ov39_02180fac: ; 0x02180fac
stmdb sp!, {r4, lr}
mov r1, #8
mov r2, #0x17
mov r3, #0
mov r4, r0
bl func_ov39_0217ec34
mov r0, #8
str r0, [r4, #0x194]
mov r0, #0
str r0, [r4, #0x138]
ldmia sp!, {r4, pc}
arm_func_end func_ov39_02180fac
.global func_ov39_02180fd8
arm_func_start func_ov39_02180fd8
func_ov39_02180fd8: ; 0x02180fd8
stmdb sp!, {r3, lr}
add r0, r0, #0x3ec
add r0, r0, #0x400
mov r1, #1
bl func_ov39_0217caf0
mov r0, #1
ldmia sp!, {r3, pc}
arm_func_end func_ov39_02180fd8
.global func_ov39_02180ff4
arm_func_start func_ov39_02180ff4
func_ov39_02180ff4: ; 0x02180ff4
stmdb sp!, {r4, lr}
mov r4, r0
bl func_ov39_0217e298
ldrh r1, [r4, #0x78]
ldr r3, _021810bc ; =data_02050f54
mov r0, #0xcd
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]
smulbb r2, r2, r0
smulbb r0, r1, r0
add r2, r2, #0x800
mov r1, r2, asr #0xc
add r0, r0, #0x800
str r1, [r4, #0x60]
mov r1, #0
str r1, [r4, #0x64]
mov r0, r0, asr #0xc
str r0, [r4, #0x68]
ldrb r0, [r4, #0xc9c]
cmp r0, #0
ldmneia sp!, {r4, pc}
mov r0, r4
bl func_ov39_0217f4ac
mov r0, r4
bl func_ov39_0217eb14
cmp r0, #0
ldmneia sp!, {r4, pc}
mov r0, r4
bl func_ov39_0217e2e8
cmp r0, #0
ldmneia sp!, {r4, pc}
ldr r0, _021810c0 ; =data_027e0f94
ldr r1, [r4, #0x4c]
ldr r0, [r0, #4]
cmp r0, r1
ldmgtia sp!, {r4, pc}
mov r0, r4
bl func_ov39_0217e404
ldr r1, _021810c4 ; =0x00003333
cmp r0, r1
ldmgtia sp!, {r4, pc}
mov r0, r4
mov r1, #0
bl func_ov39_0217d5d4
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov39_02180ff4
_021810bc: .word data_02050f54
_021810c0: .word data_027e0f94
_021810c4: .word 0x00003333
.global func_ov39_021810c8
arm_func_start func_ov39_021810c8
func_ov39_021810c8: ; 0x021810c8
stmdb sp!, {r4, lr}
mov r4, r0
ldr r0, _02181124 ; =data_027e0ffc
ldr r1, _02181128 ; =0x00000316
add r2, r4, #0x48
mov r3, #0
bl func_ov00_020ceacc
add r0, r4, #0x3ec
add r0, r0, #0x400
mov r1, #2
bl func_ov39_0217ca2c
mov r0, #0
str r0, [r4, #0x60]
str r0, [r4, #0x64]
str r0, [r4, #0x68]
ldr r1, [r4, #0x158]
mov r0, #1
orr r2, r1, #0x400
bic r1, r2, #0x800
orr r1, r1, #0x400000
str r1, [r4, #0x158]
strb r0, [r4, #0x911]
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov39_021810c8
_02181124: .word data_027e0ffc
_02181128: .word 0x00000316
.global func_ov39_0218112c
arm_func_start func_ov39_0218112c
func_ov39_0218112c: ; 0x0218112c
stmdb sp!, {r4, lr}
mov r4, r0
bl func_ov39_0217e298
ldr r0, [r4, #0x7fc]
ldr r0, [r0, #0x14]
cmp r0, #0xb000
blt _02181164
cmp r0, #0xc000
bgt _02181164
sub r1, r0, #0xb000
mov r0, r4
mov r2, r1, asr #0xc
mov r1, #0
bl func_ov39_0217e5b0
_02181164:
ldr r0, [r4, #0x138]
cmp r0, #0xa
blt _02181198
cmp r0, #0xc
bgt _02181188
ldr r0, [r4, #0x158]
orr r0, r0, #0x200000
str r0, [r4, #0x158]
b _02181198
_02181188:
cmp r0, #0xd
ldreq r0, [r4, #0x158]
biceq r0, r0, #0x400000
streq r0, [r4, #0x158]
_02181198:
mov r0, r4
bl func_ov39_0217f4ac
ldr r0, [r4, #0x7fc]
add r0, r0, #0xc
bl func_0202e58c
cmp r0, #0
ldmeqia sp!, {r4, pc}
mov r0, r4
mov r1, #0
bl func_ov39_0217d5d4
ldmia sp!, {r4, pc}
arm_func_end func_ov39_0218112c
.global func_ov39_021811c4
arm_func_start func_ov39_021811c4
func_ov39_021811c4: ; 0x021811c4
stmdb sp!, {r4, lr}
mov r4, r0
ldr r0, _02181220 ; =data_027e0ffc
ldr r1, _02181224 ; =0x00000317
add r2, r4, #0x48
mov r3, #0
bl func_ov00_020ceacc
add r0, r4, #0x3ec
add r0, r0, #0x400
mov r1, #3
bl func_ov39_0217ca2c
mov r0, #0
str r0, [r4, #0x60]
str r0, [r4, #0x64]
str r0, [r4, #0x68]
ldr r1, [r4, #0x158]
mov r0, #1
orr r2, r1, #0x400
bic r1, r2, #0x800
orr r1, r1, #0x400000
str r1, [r4, #0x158]
strb r0, [r4, #0x911]
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov39_021811c4
_02181220: .word data_027e0ffc
_02181224: .word 0x00000317
.global func_ov39_02181228
arm_func_start func_ov39_02181228
func_ov39_02181228: ; 0x02181228
stmdb sp!, {r3, r4, r5, lr}
sub sp, sp, #0x20
mov r4, r0
ldr r2, [r4, #0x7fc]
ldr r1, [r4, #0x138]
ldr r5, [r2, #0x14]
cmp r1, #0x19
bge _0218124c
bl func_ov39_0217e298
_0218124c:
ldr r0, [r4, #0x138]
cmp r0, #0x26
ldreq r0, [r4, #0x158]
biceq r0, r0, #0x400
streq r0, [r4, #0x158]
cmp r5, #0x22000
blt _02181284
cmp r5, #0x23000
bgt _02181284
sub r1, r5, #0x22000
mov r0, r4
mov r2, r1, asr #0xc
mov r1, #3
bl func_ov39_0217e5b0
_02181284:
ldrb r0, [r4, #0xc9c]
cmp r0, #0
bne _02181358
ldr r0, [r4, #0x7fc]
mov r1, #0x21000
add r0, r0, #0xc
bl func_0202e310
cmp r0, #0
beq _021812c0
ldr r0, _021813c0 ; =data_027e0ffc
add r2, r4, #0x48
mov r1, #0x318
mov r3, #0
bl func_ov00_020ceacc
b _02181358
_021812c0:
ldr r0, [r4, #0x7fc]
mov r1, #0x24000
add r0, r0, #0xc
bl func_0202e310
cmp r0, #0
beq _02181358
mov r0, #0x3800
mov r1, #0
str r0, [sp, #0x1c]
str r1, [sp, #0x14]
str r1, [sp, #0x18]
ldrsh r1, [r4, #0x78]
add r0, sp, #0x14
bl func_ov00_020a61ac
ldr r1, [r4, #0x48]
add r0, sp, #0x14
str r1, [sp, #8]
ldr r2, [r4, #0x4c]
add r1, sp, #8
str r2, [sp, #0xc]
ldr r3, [r4, #0x50]
mov r2, r0
str r3, [sp, #0x10]
bl func_01ff9bc4
mov r1, #0
str r1, [sp]
str r1, [sp, #4]
ldr r0, _021813c4 ; =data_027e0e58
ldr r1, _021813c8 ; =0x0000100c
ldr r0, [r0]
add r2, sp, #0x14
mov r3, #2
bl func_ov00_0207c1b0
ldr r0, _021813c0 ; =data_027e0ffc
ldr r1, _021813cc ; =0x00000319
add r2, r4, #0x48
mov r3, #0
bl func_ov00_020ceacc
_02181358:
ldr r0, [r4, #0x138]
cmp r0, #0x1f
blt _0218138c
cmp r0, #0x24
bgt _0218137c
ldr r0, [r4, #0x158]
orr r0, r0, #0x200000
str r0, [r4, #0x158]
b _0218138c
_0218137c:
cmp r0, #0x25
ldreq r0, [r4, #0x158]
biceq r0, r0, #0x400000
streq r0, [r4, #0x158]
_0218138c:
mov r0, r4
bl func_ov39_0217f4ac
ldr r0, [r4, #0x7fc]
add r0, r0, #0xc
bl func_0202e58c
cmp r0, #0
addeq sp, sp, #0x20
ldmeqia sp!, {r3, r4, r5, pc}
mov r0, r4
mov r1, #0
bl func_ov39_0217d5d4
add sp, sp, #0x20
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov39_02181228
_021813c0: .word data_027e0ffc
_021813c4: .word data_027e0e58
_021813c8: .word 0x0000100c
_021813cc: .word 0x00000319
.global func_ov39_021813d0
arm_func_start func_ov39_021813d0
func_ov39_021813d0: ; 0x021813d0
stmdb sp!, {r4, lr}
mov r4, r0
ldr r0, _02181484 ; =data_027e0ffc
ldr r1, _02181488 ; =0x00000311
add r2, r4, #0x48
mov r3, #0
bl func_ov00_020ceacc
mov r1, #0
str r1, [r4, #0x60]
str r1, [r4, #0x64]
add r0, r4, #0x3ec
str r1, [r4, #0x68]
add r0, r0, #0x400
mov r1, #0xf
bl func_ov39_0217caf0
ldr r1, [r4, #0x158]
mov r0, r4
orr r1, r1, #0x400
str r1, [r4, #0x158]
bl func_ov39_021859fc
mov r0, r4
bl func_ov39_0217e404
ldr r1, _0218148c ; =0x00001666
cmp r0, r1
movlt r0, r1
blt _02181444
ldr r1, _02181490 ; =0x00003333
cmp r0, r1
movgt r0, r1
_02181444:
ldr r2, _02181494 ; =0xffffe99a
ldr r1, _02181498 ; =0x00001ccd
add r0, r0, r2
bl func_01ff98e0
mov r1, r0, asr #0x1f
mov r2, r1, lsl #0xb
mov r1, #0x800
adds r1, r1, r0, lsl #11
orr r2, r2, r0, lsr #21
adc r0, r2, #0
mov r1, r1, lsr #0xc
orr r1, r1, r0, lsl #20
add r0, r1, #0x800
str r0, [r4, #0x1b4]
mov r0, #1
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov39_021813d0
_02181484: .word data_027e0ffc
_02181488: .word 0x00000311
_0218148c: .word 0x00001666
_02181490: .word 0x00003333
_02181494: .word 0xffffe99a
_02181498: .word 0x00001ccd
.global func_ov39_0218149c
arm_func_start func_ov39_0218149c
func_ov39_0218149c: ; 0x0218149c
stmdb sp!, {r4, lr}
mov r4, r0
bl func_ov39_0217e298
mov r0, r4
bl func_ov39_0217f4ac
ldr r0, [r4, #0x9f4]
add r0, r4, r0, lsl #2
ldr r0, [r0, #0x9ec]
sub r0, r0, #0xf
cmp r0, #3
addls pc, pc, r0, lsl #2
ldmia sp!, {r4, pc}
_021814cc: ; jump table
b _021814dc ; case 0
b _0218150c ; case 1
b _02181588 ; case 2
b _02181564 ; case 3
_021814dc:
ldr r0, [r4, #0x7fc]
add r0, r0, #0xc
bl func_0202e58c
cmp r0, #0
ldmeqia sp!, {r4, pc}
add r0, r4, #0x3ec
add r0, r0, #0x400
mov r1, #0x10
bl func_ov39_0217ca2c
mov r0, #0
str r0, [r4, #0x138]
ldmia sp!, {r4, pc}
_0218150c:
ldr r0, [r4, #0x138]
cmp r0, #0xf
bne _02181520
mov r0, r4
bl func_ov39_02185a20
_02181520:
ldr r0, [r4, #0x138]
cmp r0, #0xf
ldmleia sp!, {r4, pc}
mov r0, r4
bl func_ov39_021859e8
cmp r0, #0
ldmneia sp!, {r4, pc}
ldr r0, [r4, #0x7fc]
add r0, r0, #0xc
bl func_0202e58c
cmp r0, #0
ldmeqia sp!, {r4, pc}
add r0, r4, #0x3ec
add r0, r0, #0x400
mov r1, #0x12
bl func_ov39_0217ca2c
ldmia sp!, {r4, pc}
_02181564:
ldr r0, [r4, #0x7fc]
add r0, r0, #0xc
bl func_0202e58c
cmp r0, #0
ldmeqia sp!, {r4, pc}
mov r0, r4
mov r1, #0
bl func_ov39_0217d5d4
ldmia sp!, {r4, pc}
_02181588:
ldr r0, [r4, #0x138]
cmp r0, #0xf
bne _0218159c
mov r0, r4
bl func_ov39_02185a20
_0218159c:
ldr r0, [r4, #0x7fc]
add r0, r0, #0xc
bl func_0202e58c
cmp r0, #0
ldmeqia sp!, {r4, pc}
add r0, r4, #0x3ec
add r0, r0, #0x400
mov r1, #0x10
bl func_ov39_0217ca2c
ldmia sp!, {r4, pc}
arm_func_end func_ov39_0218149c
.global func_ov39_021815c4
arm_func_start func_ov39_021815c4
func_ov39_021815c4: ; 0x021815c4
stmdb sp!, {r4, r5, r6, r7, r8, lr}
sub sp, sp, #0x10
mov r4, r0
bl func_ov39_02185a44
ldr r0, [r4, #0x158]
tst r0, #0x40
bne _02181600
ldr r0, [r4, #0x17c]
cmp r0, #3
blt _02181600
ldr r1, [r4, #0x158]
mov r0, r4
bic r1, r1, #0x2000
str r1, [r4, #0x158]
bl func_ov39_0217f760
_02181600:
ldr r2, [r4, #0x17c]
cmp r2, #4
blt _02181628
ldr r1, _02181888 ; =data_ov39_02186124
add r0, r4, #0x3ec
ldr r1, [r1, #0x420]
add r0, r0, #0x400
bl func_ov39_0217ca2c
ldr r0, _0218188c ; =0x00000333
b _02181640
_02181628:
ldr r1, _02181890 ; =data_ov39_02186534
add r0, r4, #0x3ec
ldr r1, [r1, r2, lsl #2]
add r0, r0, #0x400
bl func_ov39_0217ca2c
ldr r0, _02181894 ; =0x0000019a
_02181640:
str r0, [r4, #0x1a8]
mov r0, #0xf
str r0, [r4, #0x180]
ldrsh r0, [r4, #0x78]
ldr r2, _02181898 ; =data_02050f54
ldr r3, [r4, #0x1a8]
add r0, r0, #0x8000
mov r0, r0, lsl #0x10
mov r0, r0, lsr #0x10
mov r0, r0, asr #0x4
mov r0, r0, lsl #0x1
mov r1, r0, lsl #0x1
add r0, r0, #1
mov r0, r0, lsl #0x1
ldrsh r1, [r2, r1]
ldrsh r0, [r2, r0]
mul r2, r1, r3
mul r1, r0, r3
add r0, r2, #0x800
mov r2, r0, asr #0xc
add r0, r1, #0x800
str r2, [r4, #0x60]
mov r1, #0
str r1, [r4, #0x64]
mov r1, r0, asr #0xc
str r1, [r4, #0x68]
mov r0, r4
add r1, r4, #0x60
bl func_ov39_0217e950
ldr r1, [r4, #0x158]
mov r0, r4
bic r1, r1, #0x10000
str r1, [r4, #0x158]
bl func_ov00_020c2974
strh r0, [r4, #0x78]
ldr r1, [r4, #0x158]
tst r1, #0x40
bne _02181748
ldr r0, [r4, #0x17c]
cmp r0, #2
blt _021816ec
tst r1, #0x2000
beq _0218173c
_021816ec:
ldr r2, _0218189c ; =data_027e0764
mov r1, #0
ldr r3, [r2]
ldmib r2, {r0, r5}
umull r7, r6, r5, r3
mla r6, r5, r0, r6
ldr r0, [r2, #0xc]
ldr r5, [r2, #0x10]
mla r6, r0, r3, r6
ldr r0, [r2, #0x14]
adds r7, r5, r7
adc r6, r0, r6
mov r0, #0x64000
umull r3, r5, r6, r0
mla r5, r6, r1, r5
mla r5, r1, r0, r5
str r7, [r2]
str r6, [r2, #4]
cmp r5, #0xa000
bge _02181748
_0218173c:
ldr r0, [r4, #0x158]
orr r0, r0, #0x12400
str r0, [r4, #0x158]
_02181748:
ldr r0, [r4, #0x17c]
add r0, r0, #1
str r0, [r4, #0x17c]
ldr r0, [r4, #0x178]
add r0, r0, #1
str r0, [r4, #0x178]
cmp r0, #3
bne _0218187c
ldr r0, [r4, #0x158]
tst r0, #0x80
beq _0218187c
tst r0, #0x80000
beq _0218187c
ldr r0, [r4, #0x158]
add r6, sp, #0
orr r0, r0, #0x2000000
str r0, [r4, #0x158]
ldr r3, [r4, #0x284]
ldr r5, _021818a0 ; =0x00001333
add r0, r3, #0x7c
ldmia r0, {r0, r1, r2}
stmia r6, {r0, r1, r2}
str r5, [sp, #0xc]
ldr r0, [sp]
ldr r5, _02181898 ; =data_02050f54
str r0, [r3, #0x7c]
ldr r0, [sp, #4]
ldr ip, _021818a4 ; =0x00000a66
str r0, [r3, #0x80]
ldr r0, [sp, #8]
mov lr, #0
str r0, [r3, #0x84]
ldr r0, [sp, #0xc]
str r0, [r3, #0x88]
ldrsh r1, [r4, #0x78]
ldr r0, [r4, #0x48]
ldr r2, [r4, #0x50]
add r1, r1, #0x8000
mov r1, r1, lsl #0x10
mov r1, r1, lsr #0x10
mov r1, r1, asr #0x4
mov r3, r1, lsl #0x1
add r1, r3, #1
mov r1, r1, lsl #0x1
ldrsh r6, [r5, r1]
mov r1, r3, lsl #0x1
ldrsh r3, [r5, r1]
umull r8, r7, r6, ip
mla r7, r6, lr, r7
umull r1, r5, r3, ip
mla r5, r3, lr, r5
mov r6, r6, asr #0x1f
mov r3, r3, asr #0x1f
mla r7, r6, ip, r7
adds r8, r8, #0x800
adc r7, r7, #0
adds r6, r1, #0x800
mla r5, r3, ip, r5
adc r3, r5, #0
mov r5, r6, lsr #0xc
orr r5, r5, r3, lsl #20
mov r1, r8, lsr #0xc
orr r1, r1, r7, lsl #20
ldr r6, [r4, #0x4c]
ldr r3, [r4, #0x284]
add r0, r0, r5
str r0, [r3, #0x48]
add r1, r2, r1
str r6, [r3, #0x4c]
str r1, [r3, #0x50]
str r0, [r3, #0x54]
str r6, [r3, #0x58]
str r1, [r3, #0x5c]
ldrsh r1, [r4, #0x78]
ldr r0, [r4, #0x284]
strh r1, [r0, #0x78]
str lr, [r4, #0x12c]
_0218187c:
mov r0, #1
add sp, sp, #0x10
ldmia sp!, {r4, r5, r6, r7, r8, pc}
.align 2, 0
arm_func_end func_ov39_021815c4
_02181888: .word data_ov39_02186124
_0218188c: .word 0x00000333
_02181890: .word data_ov39_02186534
_02181894: .word 0x0000019a
_02181898: .word data_02050f54
_0218189c: .word data_027e0764
_021818a0: .word 0x00001333
_021818a4: .word 0x00000a66
.global func_ov39_021818a8
arm_func_start func_ov39_021818a8
func_ov39_021818a8: ; 0x021818a8
stmdb sp!, {r4, lr}
mov r4, r0
ldr r0, [r4, #0x1a8]
cmp r0, #0
ble _021818cc
subs r0, r0, #0x52
str r0, [r4, #0x1a8]
movmi r0, #0
strmi r0, [r4, #0x1a8]
_021818cc:
ldrsh r0, [r4, #0x78]
ldr r2, _02181998 ; =data_02050f54
ldr r3, [r4, #0x1a8]
add r0, r0, #0x8000
mov r0, r0, lsl #0x10
mov r0, r0, lsr #0x10
mov r0, r0, asr #0x4
mov r0, r0, lsl #0x1
mov r1, r0, lsl #0x1
add r0, r0, #1
ldrsh r1, [r2, r1]
mov r0, r0, lsl #0x1
ldrsh r0, [r2, r0]
mul r2, r1, r3
mul r1, r0, r3
add r0, r2, #0x800
mov r0, r0, asr #0xc
add r1, r1, #0x800
str r0, [r4, #0x60]
mov r2, #0
mov r0, r4
str r2, [r4, #0x64]
mov r2, r1, asr #0xc
add r1, r4, #0x60
str r2, [r4, #0x68]
bl func_ov39_0217e950
mov r0, r4
bl func_ov39_0217f4ac
ldr r0, [r4, #0x7fc]
add r0, r0, #0xc
bl func_0202e58c
cmp r0, #0
bne _02181964
ldr r0, [r4, #0x9f4]
add r0, r4, r0, lsl #2
ldr r0, [r0, #0x9ec]
cmp r0, #0
ldmneia sp!, {r4, pc}
_02181964:
ldr r0, [r4, #0x1a8]
cmp r0, #0
ldmneia sp!, {r4, pc}
ldr r0, [r4, #0x158]
tst r0, #0x10000
mov r0, r4
beq _0218198c
mov r1, #5
bl func_ov39_0217d5d4
ldmia sp!, {r4, pc}
_0218198c:
mov r1, #0
bl func_ov39_0217d5d4
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov39_021818a8
_02181998: .word data_02050f54
.global func_ov39_0218199c
arm_func_start func_ov39_0218199c
func_ov39_0218199c: ; 0x0218199c
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
sub sp, sp, #0x40
mov r4, #1
mov sl, r0
mov r5, r4
bl func_ov00_020c2974
mov r6, #0
add r0, r0, #0x8000
mov r0, r0, lsl #0x10
mov r7, r0, asr #0x10
add r0, r7, #0xab
mov r3, #0x3800
add sb, r0, #0x2a00
ldr r2, _02181cbc ; =data_027e0f94
mov r1, sb, lsl #0x10
ldr r0, [r2]
str r6, [sp, #0x34]
str r6, [sp, #0x38]
str r3, [sp, #0x3c]
str r0, [sl, #0x274]
ldr r3, [r2, #4]
add r0, sp, #0x34
str r3, [sl, #0x278]
ldr r2, [r2, #8]
mov r1, r1, asr #0x10
str r2, [sl, #0x27c]
bl func_ov00_020a61ac
ldr r1, [sl, #0x274]
add r0, sp, #0x34
str r1, [sp, #0xc]
ldr r2, [sl, #0x278]
add r1, sp, #0xc
str r2, [sp, #0x10]
ldr r3, [sl, #0x27c]
mov r2, r0
str r3, [sp, #0x14]
bl func_01ff9bc4
add r1, sp, #0x34
mov r0, sl
bl func_ov39_0217eaa0
cmp r0, #0
mov r3, #0
ldr r0, _02181cc0 ; =0xffffd555
mov r2, #0x3800
add r8, r7, r0
mov r1, r8, lsl #0x10
add r0, sp, #0x34
str r3, [sp, #0x34]
str r3, [sp, #0x38]
str r2, [sp, #0x3c]
mov r1, r1, asr #0x10
movne r5, r6
bl func_ov00_020a61ac
ldr r1, [sl, #0x274]
add r0, sp, #0x34
str r1, [sp]
ldr r2, [sl, #0x278]
add r1, sp, #0
str r2, [sp, #4]
ldr r3, [sl, #0x27c]
mov r2, r0
str r3, [sp, #8]
bl func_01ff9bc4
add r1, sp, #0x34
mov r0, sl
bl func_ov39_0217eaa0
cmp r0, #0
movne r4, #0
cmp r5, #0
mov r6, #1
cmpne r4, #0
beq _02181afc
ldr r0, _02181cc4 ; =data_027e0764
ldr r2, [r0]
ldmib r0, {r1, r3}
umull r5, r4, r3, r2
mla r4, r3, r1, r4
ldr r1, [r0, #0xc]
ldr r3, [r0, #0x10]
mla r4, r1, r2, r4
ldr r1, [r0, #0x14]
adds r2, r3, r5
adc r1, r1, r4
str r2, [r0]
tst r1, #0x80000000
str r1, [r0, #4]
movne r6, #0
b _02181bd4
_02181afc:
cmp r5, #0
cmpeq r4, #0
bne _02181bcc
ldr r0, _02181cbc ; =data_027e0f94
add r3, sp, #0x28
ldmia r0, {r0, r1, r2}
stmia r3, {r0, r1, r2}
ldr r0, [sp, #0x28]
cmp r0, #0
bge _02181b78
ldr r0, [sp, #0x30]
cmp r0, #0
bge _02181b54
cmp r7, #0x2000
blt _02181b4c
mov r0, r7, lsl #0x10
mov r0, r0, lsr #0x10
cmp r0, #0xa000
movlo r6, #1
blo _02181bd4
_02181b4c:
mov r6, #0
b _02181bd4
_02181b54:
cmp r7, #0x6000
blt _02181b70
mov r0, r7, lsl #0x10
mov r0, r0, lsr #0x10
cmp r0, #0xe000
movlo r6, #1
blo _02181bd4
_02181b70:
mov r6, #0
b _02181bd4
_02181b78:
ldr r0, [sp, #0x30]
cmp r0, #0
bge _02181ba8
cmp r7, #0x6000
blt _02181ba0
mov r0, r7, lsl #0x10
mov r0, r0, lsr #0x10
cmp r0, #0xe000
movlo r6, #0
blo _02181bd4
_02181ba0:
mov r6, #1
b _02181bd4
_02181ba8:
cmp r7, #0x2000
blt _02181bc4
mov r0, r7, lsl #0x10
mov r0, r0, lsr #0x10
cmp r0, #0xa000
movlo r6, #0
blo _02181bd4
_02181bc4:
mov r6, #1
b _02181bd4
_02181bcc:
cmp r5, #0
movne r6, #0
_02181bd4:
mov r0, sl
bl func_ov39_0217e404
str r0, [sl, #0x1b4]
cmp r6, #0
add r0, sl, #0x3ec
add r2, sl, #0x100
beq _02181c04
add r0, r0, #0x400
mov r1, #0x14
strh r8, [r2, #0x64]
bl func_ov39_0217ca2c
b _02181c14
_02181c04:
add r0, r0, #0x400
mov r1, #0x13
strh sb, [r2, #0x64]
bl func_ov39_0217ca2c
_02181c14:
ldr r0, [sl, #0x7fc]
mov r3, #0
str r3, [r0, #0x10]
mov r2, #0x8f
add r0, sl, #0x100
strh r7, [r0, #0x66]
add r1, r2, r2, lsl #3
str r2, [sl, #0x6c]
str r3, [sl, #0x60]
mov r0, r1, asr #0x1
str r0, [sl, #0x64]
str r3, [sl, #0x68]
ldr r0, [sl, #0x158]
sub r5, r2, #0x90
orr r0, r0, #0x2400
bic r1, r0, #0x2000000
orr r0, r1, #0x4000000
orr r0, r0, #0x40000
str r0, [sl, #0x158]
str r5, [sl, #0x88]
ldr r0, [sl, #0x284]
add r4, sp, #0x18
add r0, r0, #0x7c
ldmia r0, {r0, r1, r2}
stmia r4, {r0, r1, r2}
str r5, [sp, #0x24]
ldr r5, [sl, #0x284]
ldr r1, [sp, #0x18]
ldr r0, _02181cc8 ; =data_027e0ffc
str r1, [r5, #0x7c]
ldr r1, [sp, #0x1c]
add r2, sl, #0x48
str r1, [r5, #0x80]
ldr r4, [sp, #0x20]
mov r1, #0x324
str r4, [r5, #0x84]
ldr r4, [sp, #0x24]
str r4, [r5, #0x88]
bl func_ov00_020ceacc
mov r0, #1
add sp, sp, #0x40
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
.align 2, 0
arm_func_end func_ov39_0218199c
_02181cbc: .word data_027e0f94
_02181cc0: .word 0xffffd555
_02181cc4: .word data_027e0764
_02181cc8: .word data_027e0ffc
.global func_ov39_02181ccc
arm_func_start func_ov39_02181ccc
func_ov39_02181ccc: ; 0x02181ccc
stmdb sp!, {r3, r4, r5, lr}
sub sp, sp, #0x18
mov r5, r0
ldr r0, [r5, #0x138]
rsb r0, r0, #9
mov r4, r0, lsl #0xc
cmp r4, #0x1000
movle r0, #0x3800
ble _02181d08
ldr r0, [r5, #0x1b4]
mov r1, r4
rsb r0, r0, #0x3800
bl func_01ff98e0
ldr r1, [r5, #0x1b4]
add r0, r1, r0
_02181d08:
str r0, [r5, #0x1b4]
add r0, r5, #0x100
ldrsh r2, [r0, #0x64]
cmp r4, #0x1000
strleh r2, [r0, #0x66]
ble _02181d4c
ldrsh r0, [r0, #0x66]
mov r1, r4
sub r0, r2, r0
mov r0, r0, lsl #0x10
mov r0, r0, asr #0x4
bl func_01ff98e0
add r1, r5, #0x100
ldrsh r2, [r1, #0x66]
add r0, r0, #0x800
add r0, r2, r0, asr #12
strh r0, [r1, #0x66]
_02181d4c:
ldr r1, [r5, #0x1b4]
mov r0, #0
str r0, [sp, #0xc]
str r0, [sp, #0x10]
add r0, r5, #0x100
str r1, [sp, #0x14]
ldrsh r1, [r0, #0x66]
add r0, sp, #0xc
bl func_ov00_020a61ac
ldr r1, [r5, #0x274]
add r0, sp, #0xc
str r1, [sp]
ldr r2, [r5, #0x278]
add r1, sp, #0
str r2, [sp, #4]
ldr r3, [r5, #0x27c]
mov r2, r0
str r3, [sp, #8]
bl func_01ff9bc4
ldr r1, [sp, #0xc]
ldr r0, [r5, #0x48]
sub r0, r1, r0
str r0, [r5, #0x60]
ldr r1, [r5, #0x64]
ldr r0, [r5, #0x6c]
sub r0, r1, r0
str r0, [r5, #0x64]
ldr r1, [sp, #0x14]
ldr r0, [r5, #0x50]
sub r0, r1, r0
str r0, [r5, #0x68]
ldr r0, [r5, #0x6c]
cmp r0, #0
bne _02181df0
ldr r0, [r5, #0x7fc]
mov r1, #0x1000
str r1, [r0, #0x10]
ldr r1, [r5, #0x7fc]
ldrh r0, [r1, #0xe]
bic r0, r0, #0xc
strh r0, [r1, #0xe]
_02181df0:
mov r0, r5
add r1, r5, #0x60
bl func_ov39_0217e950
mov r0, r5
bl func_ov39_0217e298
ldr r0, [r5, #0x7fc]
ldr r0, [r0, #0x10]
cmp r0, #0
addle sp, sp, #0x18
ldmleia sp!, {r3, r4, r5, pc}
ldr r1, [r5, #0x158]
mov r0, r5
bic r2, r1, #0x8000000
mov r1, #8
str r2, [r5, #0x158]
bl func_ov39_0217d5d4
add sp, sp, #0x18
ldmia sp!, {r3, r4, r5, pc}
arm_func_end func_ov39_02181ccc
.global func_ov39_02181e38
arm_func_start func_ov39_02181e38
func_ov39_02181e38: ; 0x02181e38
stmdb sp!, {r4, lr}
mov r4, r0
ldr r0, _02181e90 ; =data_027e0ffc
ldr r1, _02181e94 ; =0x0000031a
add r2, r4, #0x48
mov r3, #0
bl func_ov00_020ceacc
mov r0, #0
str r0, [r4, #0x60]
str r0, [r4, #0x64]
str r0, [r4, #0x68]
ldr r1, [r4, #0x158]
mov r0, #2
bic r1, r1, #0x800
orr r2, r1, #0x400000
bic r1, r2, #0x2000000
orr r1, r1, #0x4000000
str r1, [r4, #0x158]
str r0, [r4, #0x12c]
mov r0, #1
strb r0, [r4, #0x911]
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov39_02181e38
_02181e90: .word data_027e0ffc
_02181e94: .word 0x0000031a
.global func_ov39_02181e98
arm_func_start func_ov39_02181e98
func_ov39_02181e98: ; 0x02181e98
stmdb sp!, {r4, lr}
sub sp, sp, #0x20
mov r4, r0
bl func_ov00_020c281c
cmp r0, #0
ldrne r0, [r4, #0x158]
bicne r0, r0, #0x4000000
strne r0, [r4, #0x158]
ldr r0, [r4, #0x138]
cmp r0, #8
bgt _02181ecc
mov r0, r4
bl func_ov39_0217e298
_02181ecc:
ldr r0, [r4, #0x138]
cmp r0, #0x1a
ldreq r0, [r4, #0x158]
biceq r0, r0, #0x400
streq r0, [r4, #0x158]
ldr r0, [r4, #0x1a8]
cmp r0, #0
ble _02181efc
subs r0, r0, #0x52
str r0, [r4, #0x1a8]
movmi r0, #0
strmi r0, [r4, #0x1a8]
_02181efc:
ldrsh r0, [r4, #0x78]
ldr r2, _021820dc ; =data_02050f54
ldr r3, [r4, #0x1a8]
add r0, r0, #0x8000
mov r0, r0, lsl #0x10
mov r0, r0, lsr #0x10
mov r0, r0, asr #0x4
mov r0, r0, lsl #0x1
mov r1, r0, lsl #0x1
add r0, r0, #1
ldrsh r1, [r2, r1]
mov r0, r0, lsl #0x1
ldrsh r0, [r2, r0]
mul r2, r1, r3
mul r1, r0, r3
add r0, r2, #0x800
mov r2, r0, asr #0xc
add r0, r1, #0x800
str r2, [r4, #0x60]
mov r1, #0
str r1, [r4, #0x64]
mov r1, r0, asr #0xc
mov r0, r4
str r1, [r4, #0x68]
add r1, r4, #0x60
bl func_ov39_0217e950
ldr r0, [r4, #0x7fc]
mov r1, #0xc000
add r0, r0, #0xc
bl func_0202e310
cmp r0, #0
beq _02182028
ldrb r0, [r4, #0xc9c]
cmp r0, #0
bne _02182028
ldr r0, [r4, #0x9f4]
add r0, r4, r0, lsl #2
ldr r0, [r0, #0x9ec]
cmp r0, #0x13
bne _02181fb8
ldr r2, _021820e0 ; =0xffffd333
ldr r0, _021820e4 ; =0xffffdccd
add r1, r2, #0x4000
str r2, [sp, #0x14]
str r1, [sp, #0x18]
str r0, [sp, #0x1c]
b _02181fd0
_02181fb8:
ldr r2, _021820e8 ; =0x000014cd
ldr r0, _021820ec ; =0xffffe99a
add r1, r2, #0x1000
str r2, [sp, #0x14]
str r1, [sp, #0x18]
str r0, [sp, #0x1c]
_02181fd0:
ldrsh r1, [r4, #0x78]
add r0, sp, #0x14
bl func_ov00_020a61ac
ldr r1, [r4, #0x48]
add r0, sp, #0x14
str r1, [sp, #8]
ldr r2, [r4, #0x4c]
add r1, sp, #8
str r2, [sp, #0xc]
ldr r3, [r4, #0x50]
mov r2, r0
str r3, [sp, #0x10]
bl func_01ff9bc4
mov r1, #0
str r1, [sp]
str r1, [sp, #4]
ldr r0, _021820f0 ; =data_027e0e58
ldr r1, _021820f4 ; =0x0000100b
ldr r0, [r0]
add r2, sp, #0x14
mov r3, #2
bl func_ov00_0207c1b0
_02182028:
ldr r0, [r4, #0x7fc]
ldr r1, [r0, #0x14]
cmp r1, #0x10000
blt _02182074
cmp r1, #0x11000
bgt _02182074
ldr r0, [r4, #0x9f4]
sub r1, r1, #0x10000
add r0, r4, r0, lsl #2
ldr r0, [r0, #0x9ec]
mov r2, r1, asr #0xc
cmp r0, #0x13
mov r0, r4
bne _0218206c
mov r1, #1
bl func_ov39_0217e5b0
b _02182074
_0218206c:
mov r1, #2
bl func_ov39_0217e5b0
_02182074:
ldr r0, [r4, #0x138]
cmp r0, #0xf
blt _021820a8
cmp r0, #0x12
bgt _02182098
ldr r0, [r4, #0x158]
orr r0, r0, #0x200000
str r0, [r4, #0x158]
b _021820a8
_02182098:
cmp r0, #0x13
ldreq r0, [r4, #0x158]
biceq r0, r0, #0x400000
streq r0, [r4, #0x158]
_021820a8:
mov r0, r4
bl func_ov39_0217f4ac
ldr r0, [r4, #0x7fc]
add r0, r0, #0xc
bl func_0202e58c
cmp r0, #0
addeq sp, sp, #0x20
ldmeqia sp!, {r4, pc}
mov r0, r4
mov r1, #0
bl func_ov39_0217d5d4
add sp, sp, #0x20
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov39_02181e98
_021820dc: .word data_02050f54
_021820e0: .word 0xffffd333
_021820e4: .word 0xffffdccd
_021820e8: .word 0x000014cd
_021820ec: .word 0xffffe99a
_021820f0: .word data_027e0e58
_021820f4: .word 0x0000100b
.global func_ov39_021820f8
arm_func_start func_ov39_021820f8
func_ov39_021820f8: ; 0x021820f8
stmdb sp!, {r4, lr}
sub sp, sp, #0x20
mov r4, r0
add r0, r4, #0x3bc
mov r1, #3
strb r1, [r4, #0x15c]
add r0, r0, #0x800
mov r1, #0
bl func_ov39_02184d40
ldr r1, [r4, #0x158]
add r0, r4, #0x3ec
orr r2, r1, #0x60000
add r0, r0, #0x400
mov r1, #0xd
str r2, [r4, #0x158]
bl func_ov39_0217ca2c
mov r0, #0x1e
str r0, [r4, #0x184]
mov r1, #0
str r1, [r4, #0x60]
str r1, [r4, #0x64]
mov r0, r4
str r1, [r4, #0x68]
bl func_ov39_0217f760
ldr r1, [r4, #0x158]
ldr r0, _02182268 ; =0x00001019
bic r1, r1, #0x2000
str r1, [r4, #0x158]
str r0, [r4, #0x28c]
mov r1, #2
add r0, r0, #1
str r1, [r4, #0x290]
str r0, [r4, #0x298]
str r1, [r4, #0x29c]
ldr r1, _0218226c ; =0x00000a66
mov r0, #0x7b
str r0, [sp, #0x14]
str r1, [sp, #0x18]
add r1, r1, #0xc00
str r1, [sp, #0x1c]
ldrsh r1, [r4, #0x78]
add r0, sp, #0x14
bl func_ov00_020a61ac
ldr r1, [r4, #0x48]
add r0, sp, #0x14
str r1, [sp, #8]
ldr r2, [r4, #0x4c]
add r1, sp, #8
str r2, [sp, #0xc]
ldr r3, [r4, #0x50]
mov r2, r0
str r3, [sp, #0x10]
bl func_01ff9bc4
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
ldr r0, _02182270 ; =data_027e0e58
ldr r1, _02182274 ; =0x00001018
ldr r0, [r0]
add r2, sp, #0x14
mov r3, #2
bl func_ov00_0207c1b0
ldr r0, _02182278 ; =data_027e0ffc
mov r1, #0xf6
add r2, sp, #0x14
mov r3, #0
bl func_ov00_020ceacc
ldr r0, [r4, #0x130]
cmp r0, #0x10
bne _02182228
ldr r0, _0218227c ; =data_027e0f64
mov r1, #1
ldr r0, [r0]
ldr r0, [r0, #4]
bl func_ov00_02088000
b _0218223c
_02182228:
ldr r0, _0218227c ; =data_027e0f64
mov r1, #0
ldr r0, [r0]
ldr r0, [r0, #4]
bl func_ov00_02088000
_0218223c:
ldr r0, _02182280 ; =data_ov29_0217a4ac
ldrb r1, [r0, #0x54]
cmp r1, #0
beq _02182254
mov r1, #0
bl func_ov29_0216d930
_02182254:
ldr r1, _02182280 ; =data_ov29_0217a4ac
mov r0, #1
strb r0, [r1, #0x56]
add sp, sp, #0x20
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov39_021820f8
_02182268: .word 0x00001019
_0218226c: .word 0x00000a66
_02182270: .word data_027e0e58
_02182274: .word 0x00001018
_02182278: .word data_027e0ffc
_0218227c: .word data_027e0f64
_02182280: .word data_ov29_0217a4ac
.global func_ov39_02182284
arm_func_start func_ov39_02182284
func_ov39_02182284: ; 0x02182284
stmdb sp!, {r3, r4, lr}
sub sp, sp, #0xc
mov r4, r0
bl func_ov39_0217f10c
mov r0, r4
bl func_ov39_0217f278
ldr r0, _021823e8 ; =data_027e0fb8
ldr r0, [r0]
bl func_ov00_020b134c
cmp r0, #0
beq _021822c8
ldr r0, _021823ec ; =data_027e0fc8
ldr r0, [r0]
bl func_ov00_020bc210
ldr r0, [r4, #0x184]
sub r0, r0, #1
str r0, [r4, #0x184]
_021822c8:
ldr r0, [r4, #0x184]
cmp r0, #0
bgt _0218233c
ldr r0, _021823ec ; =data_027e0fc8
mov r1, #0
ldr r0, [r0]
bl func_ov00_020bc280
bl func_ov39_0218240c
mov r1, #0
ldr r3, _021823f0 ; =data_027e0f94
mov r2, r1
bl func_ov05_02106980
bl func_ov39_0217e288
mov r1, #0xf6
mov r2, #0x1800
bl func_ov00_020bf008
ldr r0, _021823f4 ; =data_027e0ffc
ldr r1, _021823f8 ; =0x000001bd
add r2, r4, #0x48
mov r3, #0
bl func_ov00_020ceacc
ldr r2, _021823fc ; =data_ov29_0217a4ac
mov r3, #0
mov r0, r4
mov r1, #0xb
strb r3, [r2, #0x56]
bl func_ov39_0217d5d4
add sp, sp, #0xc
ldmia sp!, {r3, r4, pc}
_0218233c:
ldr r0, [r4, #0x138]
cmp r0, #0x96
addle sp, sp, #0xc
ldmleia sp!, {r3, r4, pc}
ldrh r2, [r4, #0x78]
ldr r0, _021823ec ; =data_027e0fc8
mov r1, #0
mov r2, r2, asr #0x4
mov r3, r2, lsl #0x1
add r2, r3, #1
ldr ip, _02182400 ; =data_02050f54
mov r3, r3, lsl #0x1
mov r2, r2, lsl #0x1
ldrsh r3, [ip, r3]
ldrsh r2, [ip, r2]
ldr r0, [r0]
str r3, [sp]
str r1, [sp, #4]
str r2, [sp, #8]
bl func_ov00_020bc280
ldr r0, _02182404 ; =data_027e0f90
mov r1, #2
ldr r0, [r0]
add r2, sp, #0
ldr ip, [r0]
mov r3, r1
ldr ip, [ip, #0x30]
blx ip
mov r0, r4
bl func_ov39_0217fbc8
ldr r0, _02182408 ; =data_ov29_0217bd28
ldr r2, _021823fc ; =data_ov29_0217a4ac
ldr r1, [r0]
mov r3, #0
cmp r1, #0
movne r0, #0
strneb r0, [r1, #0x25c]
mov r0, r4
mov r1, #0xa
strb r3, [r2, #0x56]
bl func_ov39_0217d5d4
add sp, sp, #0xc
ldmia sp!, {r3, r4, pc}
.align 2, 0
arm_func_end func_ov39_02182284
_021823e8: .word data_027e0fb8
_021823ec: .word data_027e0fc8
_021823f0: .word data_027e0f94
_021823f4: .word data_027e0ffc
_021823f8: .word 0x000001bd
_021823fc: .word data_ov29_0217a4ac
_02182400: .word data_02050f54
_02182404: .word data_027e0f90
_02182408: .word data_ov29_0217bd28
.global func_ov39_0218240c
arm_func_start func_ov39_0218240c
func_ov39_0218240c: ; 0x0218240c
ldr ip, _02182418 ; =func_01fffcd8
mov r0, #1
bx ip
.align 2, 0
arm_func_end func_ov39_0218240c
_02182418: .word func_01fffcd8
.global func_ov39_0218241c
arm_func_start func_ov39_0218241c
func_ov39_0218241c: ; 0x0218241c
stmdb sp!, {r3, lr}
add r0, r0, #0x3ec
add r0, r0, #0x400
mov r1, #0xe
bl func_ov39_0217ca2c
mov r0, #1
ldmia sp!, {r3, pc}
arm_func_end func_ov39_0218241c
.global func_ov39_02182438
arm_func_start func_ov39_02182438
func_ov39_02182438: ; 0x02182438
stmdb sp!, {r4, lr}
mov r4, r0
bl func_ov39_0217f4ac
ldr r0, [r4, #0x7fc]
add r0, r0, #0xc
bl func_0202e58c
cmp r0, #0
ldmeqia sp!, {r4, pc}
mov r0, r4
mov r1, #2
bl func_ov39_0217d5d4
ldmia sp!, {r4, pc}
arm_func_end func_ov39_02182438
.global func_ov39_02182468
arm_func_start func_ov39_02182468
func_ov39_02182468: ; 0x02182468
stmdb sp!, {r3, lr}
add r0, r0, #0x3ec
add r0, r0, #0x400
mov r1, #0x15
bl func_ov39_0217ca2c
mov r0, #1
ldmia sp!, {r3, pc}
arm_func_end func_ov39_02182468
.global func_ov39_02182484
arm_func_start func_ov39_02182484
func_ov39_02182484: ; 0x02182484
stmdb sp!, {r4, lr}
mov r4, r0
bl func_ov39_0217e298
ldr r0, [r4, #0x7fc]
add r0, r0, #0xc
bl func_0202e58c
cmp r0, #0
ldmeqia sp!, {r4, pc}
mov r0, r4
mov r1, #0
bl func_ov39_0217d5d4
ldmia sp!, {r4, pc}
arm_func_end func_ov39_02182484
.global func_ov39_021824b4
arm_func_start func_ov39_021824b4
func_ov39_021824b4: ; 0x021824b4
stmdb sp!, {r3, r4, lr}
sub sp, sp, #0xbc
mov r4, r0
ldr r0, _021825b0 ; =data_027e0ffc
add r2, r4, #0x48
mov r1, #0x320
mov r3, #0
bl func_ov00_020ceacc
ldr r0, [r4, #0x4c]
ldr r3, [r4, #0x50]
ldr r1, [r4, #0x48]
add r0, r0, #0x33
add r2, r0, #0x1300
add r0, sp, #0
str r1, [sp]
str r2, [sp, #4]
str r3, [sp, #8]
bl func_ov00_020c71fc
add r0, r4, #0x3ec
add r0, r0, #0x400
mov r1, #0x16
bl func_ov39_0217ca2c
mov r0, r4
mov r1, #7
bl func_ov39_0218599c
ldr r0, [r4, #0x158]
orr r0, r0, #0x400
str r0, [r4, #0x158]
tst r0, #0x4000
bne _021825a4
add r0, sp, #0xc
bl func_ov00_0209a4f4
mov r1, #0
ldr r0, _021825b4 ; =data_027e0f64
mov r2, #0x32
mvn r3, #0
strb r2, [sp, #0x15]
ldr r0, [r0]
strb r1, [sp, #0x16]
strb r1, [sp, #0x17]
str r3, [sp, #0x10]
ldr r3, [r0, #4]
ldr r0, _021825b8 ; =data_027e0f74
ldr r1, [r3, #0x26c]
ldr r0, [r0]
str r1, [sp, #0x2c]
ldr r1, [r3, #0x270]
mov r2, #1
str r1, [sp, #0x30]
ldr r3, [r3, #0x274]
add r1, sp, #0xc
str r3, [sp, #0x34]
strb r2, [sp, #0x22]
bl func_ov00_02097810
str r0, [r4, #0x190]
ldr r1, [r4, #0x158]
add r0, sp, #0xc
orr r1, r1, #0x200
str r1, [r4, #0x158]
bl func_ov00_0209a508
_021825a4:
mov r0, #1
add sp, sp, #0xbc
ldmia sp!, {r3, r4, pc}
.align 2, 0
arm_func_end func_ov39_021824b4
_021825b0: .word data_027e0ffc
_021825b4: .word data_027e0f64
_021825b8: .word data_027e0f74
.global func_ov39_021825bc
arm_func_start func_ov39_021825bc
func_ov39_021825bc: ; 0x021825bc
stmdb sp!, {r4, lr}
mov r4, r0
ldr r0, [r4, #0x7fc]
add r0, r0, #0xc
bl func_0202e58c
cmp r0, #0
ldmeqia sp!, {r4, pc}
mov r0, r4
mov r1, #0xd
bl func_ov39_0217d5d4
ldmia sp!, {r4, pc}
arm_func_end func_ov39_021825bc
.global func_ov39_021825e8
arm_func_start func_ov39_021825e8
func_ov39_021825e8: ; 0x021825e8
stmdb sp!, {r4, lr}
mov r4, r0
ldr r0, [r4, #0x158]
mov r1, #0x17
tst r0, #0x4000
ldreq r0, [r4, #0x158]
orreq r0, r0, #0x200
streq r0, [r4, #0x158]
add r0, r4, #0x3ec
add r0, r0, #0x400
bl func_ov39_0217ca2c
ldr r0, _02182670 ; =data_027e0e60
mov r1, #1
ldr r0, [r0]
mov r2, r1
mov r3, #0
bl func_ov00_02084b38
ldr r0, _02182670 ; =data_027e0e60
mov r1, #2
ldr r0, [r0]
mov r2, #1
mov r3, #0
bl func_ov00_02084b38
mov r0, r4
mov r1, #8
mov r2, #7
mov r3, #1
bl func_ov39_0217ec34
ldr r1, [r4, #0x158]
mov r0, #1
orr r1, r1, #0x400
bic r1, r1, #0x100
str r1, [r4, #0x158]
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov39_021825e8
_02182670: .word data_027e0e60
.global func_ov39_02182674
arm_func_start func_ov39_02182674
func_ov39_02182674: ; 0x02182674
stmdb sp!, {r3, r4, lr}
sub sp, sp, #0xc
ldr r1, _021827a8 ; =data_027e0f74
mov r4, r0
ldr r0, [r1]
ldr r1, [r4, #0x190]
bl func_ov00_02097b9c
cmp r0, #0
beq _021826e4
mov r1, #0
mov r0, r4
str r1, [r4, #0x138]
bl func_ov39_0217f488
cmp r0, #0
bne _021826e4
ldr r1, [r4, #0x158]
ldr r0, _021827a8 ; =data_027e0f74
orr r1, r1, #0x4000
str r1, [r4, #0x158]
ldr r0, [r0]
ldr r1, [r4, #0x190]
bl func_ov00_02097bcc
mvn r1, #0
mov r0, r4
str r1, [r4, #0x190]
mov r1, #1
strb r1, [r4, #0xca9]
bl func_ov39_0217f6dc
_021826e4:
ldr r0, _021827ac ; =data_ov29_0217bd28
ldr r3, [r0]
cmp r3, #0
addeq sp, sp, #0xc
ldmeqia sp!, {r3, r4, pc}
ldr r0, [r4, #0x158]
tst r0, #0x100
bne _0218273c
ldr r0, [r4, #0x280]
add ip, sp, #0
add r0, r0, #0x48
ldmia r0, {r0, r1, r2}
stmia ip, {r0, r1, r2}
ldr r1, [sp, #4]
ldr r0, [sp]
add r1, r1, #0x800
str r1, [sp, #4]
str r0, [r3, #0x48]
ldr r0, [sp, #4]
str r0, [r3, #0x4c]
ldr r0, [sp, #8]
str r0, [r3, #0x50]
_0218273c:
ldr r0, [r4, #0xca0]
cmp r0, #9
addne sp, sp, #0xc
ldmneia sp!, {r3, r4, pc}
ldr r0, [r4, #0xa14]
mov r1, #0x1d000
add r0, r0, #0xc
bl func_0202e310
cmp r0, #0
addeq sp, sp, #0xc
ldmeqia sp!, {r3, r4, pc}
ldr r0, _021827ac ; =data_ov29_0217bd28
ldr r0, [r0]
bl func_ov29_02177d90
ldr r0, [r4, #0x158]
tst r0, #0x8000
ldreq r0, [r4, #0x158]
orreq r0, r0, #0x8000
streq r0, [r4, #0x158]
ldr r1, [r4, #0x158]
mov r0, r4
orr r2, r1, #0x100
mov r1, #0xe
str r2, [r4, #0x158]
bl func_ov39_0217d5d4
add sp, sp, #0xc
ldmia sp!, {r3, r4, pc}
.align 2, 0
arm_func_end func_ov39_02182674
_021827a8: .word data_027e0f74
_021827ac: .word data_ov29_0217bd28
.global func_ov39_021827b0
arm_func_start func_ov39_021827b0
func_ov39_021827b0: ; 0x021827b0
mov r0, #1
bx lr
arm_func_end func_ov39_021827b0
.global func_ov39_021827b8
arm_func_start func_ov39_021827b8
func_ov39_021827b8: ; 0x021827b8
stmdb sp!, {r4, lr}
ldr r1, _02182828 ; =data_ov29_0217bd28
mov r4, r0
ldr r0, [r1]
cmp r0, #0
ldmneia sp!, {r4, pc}
ldr r0, [r4, #0x9f4]
add r0, r4, r0, lsl #2
ldr r0, [r0, #0x9ec]
cmp r0, #0x17
ldr r0, [r4, #0x7fc]
add r0, r0, #0xc
bne _0218280c
bl func_0202e58c
cmp r0, #0
ldmeqia sp!, {r4, pc}
add r0, r4, #0x3ec
add r0, r0, #0x400
mov r1, #0x18
bl func_ov39_0217ca2c
ldmia sp!, {r4, pc}
_0218280c:
bl func_0202e58c
cmp r0, #0
ldmeqia sp!, {r4, pc}
mov r0, r4
mov r1, #0
bl func_ov39_0217d5d4
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov39_021827b8
_02182828: .word data_ov29_0217bd28
.global func_ov39_0218282c
arm_func_start func_ov39_0218282c
func_ov39_0218282c: ; 0x0218282c
stmdb sp!, {r4, lr}
mov r4, r0
add r0, r4, #0x3ec
add r0, r0, #0x400
mov r1, #0x18
bl func_ov39_0217caf0
ldr r1, [r4, #0x158]
mov r0, #1
orr r1, r1, #0x400
str r1, [r4, #0x158]
ldmia sp!, {r4, pc}
arm_func_end func_ov39_0218282c
.global func_ov39_02182858
arm_func_start func_ov39_02182858
func_ov39_02182858: ; 0x02182858
stmdb sp!, {r4, lr}
mov r4, r0
bl func_ov39_0217f4ac
ldr r0, [r4, #0x7fc]
add r0, r0, #0xc
bl func_0202e58c
cmp r0, #0
ldmeqia sp!, {r4, pc}
mov r0, r4
mov r1, #0
bl func_ov39_0217d5d4
ldmia sp!, {r4, pc}
arm_func_end func_ov39_02182858
.global func_ov39_02182888
arm_func_start func_ov39_02182888
func_ov39_02182888: ; 0x02182888
stmdb sp!, {r4, lr}
mov r4, r0
bl func_ov39_0217fa40
ldr r0, _02182944 ; =data_027e0ffc
ldr r1, _02182948 ; =0x0000031e
add r2, r4, #0x48
mov r3, #0
bl func_ov00_020ceacc
add r0, r4, #0x3ec
add r0, r0, #0x400
mov r1, #0x1a
bl func_ov39_0217ca2c
mov r0, r4
add r1, r4, #0x100
mov r2, #0
strh r2, [r1, #0x5e]
bl func_ov00_020c2974
add r1, r4, #0x100
strh r0, [r1, #0x60]
mov r1, #0
add r0, r4, #0x3bc
str r1, [r4, #0x1a8]
mov r2, #3
strb r2, [r4, #0x15c]
add r0, r0, #0x800
bl func_ov39_02184d40
ldr r0, [r4, #0x158]
mov r2, #0x2000
orr r0, r0, #0x40000
orr r0, r0, #0x400
str r0, [r4, #0x158]
ldr r0, _0218294c ; =0x00001b33
str r2, [r4, #0x88]
str r0, [r4, #0x1ac]
mov r1, #0
str r1, [r4, #0x60]
str r1, [r4, #0x64]
str r1, [r4, #0x68]
sub r0, r2, #0xfe0
str r0, [r4, #0x28c]
mov r1, #2
ldr r0, _02182950 ; =0x00001021
str r1, [r4, #0x290]
str r0, [r4, #0x298]
str r1, [r4, #0x29c]
mov r0, #1
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov39_02182888
_02182944: .word data_027e0ffc
_02182948: .word 0x0000031e
_0218294c: .word 0x00001b33
_02182950: .word 0x00001021
.global func_ov39_02182954
arm_func_start func_ov39_02182954
func_ov39_02182954: ; 0x02182954
stmdb sp!, {r4, r5, lr}
sub sp, sp, #0x44
mov r5, r0
ldrb r0, [r5, #0xc9c]
cmp r0, #0
beq _02182984
add r0, r5, #0x288
bl func_ov00_020b7e6c
add r0, r5, #0x294
bl func_ov00_020b7e6c
add sp, sp, #0x44
ldmia sp!, {r4, r5, pc}
_02182984:
add r0, r5, #0x154
add r0, r0, #0x400
bl func_ov00_020c5e20
add r0, r5, #0x6a0
bl func_ov00_020c5e20
ldr r0, [r5, #0x138]
cmp r0, #0x96
ble _02182b08
ldr r2, _02182f20 ; =0x0000011f
add r0, r5, #0x1e4
mov r1, #0
bl func_0202b0f4
add r0, r5, #0x5e
add r0, r0, #0x100
mov r1, #0
mov r2, #0x320
bl func_0202b154
add r0, r5, #0x1a8
mov r1, #0
mov r2, #0xcd
bl func_0202b0f4
add r0, r5, #0x100
ldrh r0, [r0, #0x60]
ldr r2, _02182f24 ; =data_02050f54
ldr ip, [r5, #0x1a8]
mov r0, r0, asr #0x4
mov r0, r0, lsl #0x1
mov r1, r0, lsl #0x1
add r0, r0, #1
mov r0, r0, lsl #0x1
ldrsh r1, [r2, r1]
ldrsh r0, [r2, r0]
smull r2, r3, r1, ip
adds r4, r2, #0x800
smull r2, r1, r0, ip
adc r3, r3, #0
adds r0, r2, #0x800
mov r2, r4, lsr #0xc
orr r2, r2, r3, lsl #20
str r2, [r5, #0x60]
mov r3, #0
mov r2, r0, lsr #0xc
adc r1, r1, #0
orr r2, r2, r1, lsl #20
str r3, [r5, #0x64]
mov r0, r5
add r1, r5, #0x60
str r2, [r5, #0x68]
bl func_ov39_0217e950
cmp r0, #0
movne r0, #0
strne r0, [r5, #0x1a8]
ldr r0, [r5, #0x60]
ldr r1, [r5, #0x68]
bl func_01ffa0f4
add r1, r5, #0x100
strh r0, [r1, #0x60]
ldrsh r1, [r1, #0x5e]
cmp r1, #0
ldreq r0, [r5, #0x1a8]
cmpeq r0, #0
bne _02182af8
ldr r0, [r5, #0x7fc]
add r0, r0, #0xc
bl func_0202e58c
cmp r0, #0
beq _02182e2c
ldr r0, _02182f28 ; =data_027e0f64
mov r1, #1
ldr r0, [r0]
ldr r0, [r0, #8]
bl func_ov00_020875f8
ldr r0, [r5, #0x48]
mov r1, #1
str r0, [sp, #0x20]
ldr r2, [r5, #0x4c]
ldr r0, _02182f28 ; =data_027e0f64
str r2, [sp, #0x24]
ldr r3, [r5, #0x50]
add r2, sp, #0x20
str r3, [sp, #0x28]
str r1, [sp]
ldr r0, [r0]
ldrsh r3, [r5, #0x78]
ldr r0, [r0, #8]
mov r1, #0x55
bl func_ov00_02087584
mov r2, #0x64
mov r0, r5
mov r1, #0
str r2, [r5, #0x19c]
bl func_ov39_0217d5d4
b _02182e2c
_02182af8:
ldrsh r0, [r5, #0x78]
add r0, r0, r1
strh r0, [r5, #0x78]
b _02182e2c
_02182b08:
ldr r1, [r5, #0x7fc]
ldr r0, [r1, #0x10]
cmp r0, #0
beq _02182bc0
add r0, r1, #0xc
mov r1, #0xf000
bl func_0202e310
cmp r0, #0
beq _02182bac
ldrb r0, [r5, #0xc9c]
cmp r0, #0
bne _02182bac
mov r2, #0x800
ldr r0, _02182f2c ; =0xffffd333
ldr r1, _02182f30 ; =0x000014cd
rsb r2, r2, #0
str r0, [sp, #0x40]
str r2, [sp, #0x38]
str r1, [sp, #0x3c]
ldrsh r1, [r5, #0x78]
add r0, sp, #0x38
bl func_ov00_020a61ac
ldr r1, [r5, #0x48]
add r0, sp, #0x38
str r1, [sp, #0x14]
ldr r2, [r5, #0x4c]
add r1, sp, #0x14
str r2, [sp, #0x18]
ldr r3, [r5, #0x50]
mov r2, r0
str r3, [sp, #0x1c]
bl func_01ff9bc4
mov r1, #0
str r1, [sp]
str r1, [sp, #4]
ldr r0, _02182f34 ; =data_027e0e58
ldr r1, _02182f38 ; =0x0000100d
ldr r0, [r0]
add r2, sp, #0x38
mov r3, #2
bl func_ov00_0207c1b0
_02182bac:
ldr r1, [r5, #0x7fc]
ldr r0, [r1, #0x14]
cmp r0, #0x1e000
moveq r0, #0
streq r0, [r1, #0x10]
_02182bc0:
ldr r0, [r5, #0x138]
cmp r0, #0x17
blt _02182e24
mov r0, #0
str r0, [sp]
ldr r3, [r5, #8]
ldr r0, _02182f3c ; =data_027e0ffc
ldr r1, _02182f40 ; =0x0000031f
add r2, r5, #0x48
bl func_ov00_020cec60
ldr r1, _02182f44 ; =0x00001666
ldr r2, _02182f20 ; =0x0000011f
add r0, r5, #0x1e4
bl func_0202b0f4
add r0, r5, #0x5e
ldr r1, _02182f48 ; =0x0000251c
add r0, r0, #0x100
mov r2, #0x384
bl func_0202b154
ldr r0, [r5, #0x7fc]
ldr r0, [r0, #0x10]
cmp r0, #0
bne _02182ccc
add r0, r5, #0x1a8
mov r1, #0x400
mov r2, #0xcd
bl func_0202b0f4
ldr r0, [r5, #0x16c]
cmp r0, #0
mov r0, r5
beq _02182cb8
bl func_ov00_020c2974
ldr r1, [r5, #0x16c]
mov r4, r0
mov r1, r1, lsl #0xc
add r0, r5, #0x100
cmp r1, #0x1000
strleh r4, [r0, #0x60]
ble _02182c84
ldrsh r0, [r0, #0x60]
sub r0, r4, r0
mov r0, r0, lsl #0x10
mov r0, r0, asr #0x4
bl func_01ff98e0
add r1, r5, #0x100
ldrsh r2, [r1, #0x60]
add r0, r0, #0x800
add r0, r2, r0, asr #12
strh r0, [r1, #0x60]
_02182c84:
add r0, r5, #0x100
ldrsh r0, [r0, #0x60]
subs r1, r0, r4
ldr r0, _02182f4c ; =0x00000222
rsbmi r1, r1, #0
cmp r1, r0
movlt r0, #0
strlt r0, [r5, #0x16c]
blt _02182ccc
ldr r0, [r5, #0x16c]
sub r0, r0, #1
str r0, [r5, #0x16c]
b _02182ccc
_02182cb8:
bl func_ov00_020c2974
mov r1, r0
add r0, r5, #0x160
mov r2, #0x12c
bl func_0202b154
_02182ccc:
add r0, r5, #0x100
ldrh r0, [r0, #0x60]
ldr r2, _02182f24 ; =data_02050f54
ldr ip, [r5, #0x1a8]
mov r0, r0, asr #0x4
mov r0, r0, lsl #0x1
mov r1, r0, lsl #0x1
ldrsh r1, [r2, r1]
add r0, r0, #1
mov r0, r0, lsl #0x1
ldrsh r0, [r2, r0]
smull r2, r3, r1, ip
adds r4, r2, #0x800
smull r2, r1, r0, ip
adc r0, r3, #0
mov r3, r4, lsr #0xc
orr r3, r3, r0, lsl #20
adds r2, r2, #0x800
str r3, [r5, #0x60]
mov r3, #0
adc r0, r1, #0
mov r1, r2, lsr #0xc
str r3, [r5, #0x64]
orr r1, r1, r0, lsl #20
str r1, [r5, #0x68]
ldr r0, [r5, #0x60]
str r0, [sp, #0x2c]
ldr r1, [r5, #0x64]
cmp r0, #0
str r1, [sp, #0x30]
ldr r0, [r5, #0x68]
cmpeq r1, #0
str r0, [sp, #0x34]
cmpeq r0, #0
beq _02182d98
add r0, sp, #0x2c
mov r1, r0
bl func_01ff9d4c
add r0, sp, #0x2c
mov r1, #0x1000
bl func_01fffbec
ldr r1, [r5, #0x60]
add r0, sp, #0x2c
str r1, [sp, #8]
ldr r2, [r5, #0x64]
add r1, sp, #8
str r2, [sp, #0xc]
ldr r3, [r5, #0x68]
mov r2, r0
str r3, [sp, #0x10]
bl func_01ff9bc4
_02182d98:
add r1, sp, #0x2c
mov r0, r5
bl func_ov39_0217e9dc
tst r0, #3
ldrne r1, [r5, #0x60]
rsbne r1, r1, #0
strne r1, [r5, #0x60]
tst r0, #0xc
ldrne r0, [r5, #0x68]
rsbne r0, r0, #0
strne r0, [r5, #0x68]
ldr r0, [r5, #0x1a8]
cmp r0, #0
beq _02182de4
ldr r0, [r5, #0x60]
ldr r1, [r5, #0x68]
bl func_01ffa0f4
add r1, r5, #0x100
strh r0, [r1, #0x60]
_02182de4:
add r0, r5, #0x100
ldrsh r2, [r5, #0x78]
ldrsh r1, [r0, #0x5e]
add r1, r2, r1
strh r1, [r5, #0x78]
ldrsh r0, [r0, #0x5e]
ldr r1, [r5, #0x1a4]
add r0, r1, r0
str r0, [r5, #0x1a4]
ldr r0, [r5, #0x138]
cmp r0, #0x96
bne _02182e2c
ldr r0, [r5, #0x7fc]
mov r1, #0x1000
str r1, [r0, #0x10]
b _02182e2c
_02182e24:
mov r0, r5
bl func_ov39_0217e298
_02182e2c:
ldr r1, [r5, #0x1e4]
ldr r0, _02182f44 ; =0x00001666
cmp r1, r0
bne _02182ef4
ldr r0, [r5, #0x158]
tst r0, #0x1000000
bne _02182e84
mov r0, #0
str r0, [r5, #0x1a4]
add r0, r5, #0x78
ldr r1, _02182f50 ; =func_ov39_0217bdb4
str r0, [sp]
ldr r0, _02182f34 ; =data_027e0e58
str r1, [sp, #4]
ldr r0, [r0]
ldr r1, _02182f54 ; =0x0000103e
add r2, r5, #0x48
mov r3, #2
bl func_ov00_0207c1b0
ldr r0, [r5, #0x158]
orr r0, r0, #0x1000000
str r0, [r5, #0x158]
_02182e84:
ldr r0, _02182f34 ; =data_027e0e58
add r1, r5, #0x288
ldr r0, [r0]
add r2, r5, #0x48
bl func_ov00_0207c474
ldr r0, _02182f34 ; =data_027e0e58
add r1, r5, #0x294
ldr r0, [r0]
add r2, r5, #0x48
bl func_ov00_0207c474
ldr r0, [r5, #0x1a4]
cmp r0, #0x10000
addlt sp, sp, #0x44
ldmltia sp!, {r4, r5, pc}
sub r0, r0, #0x10000
str r0, [r5, #0x1a4]
add r0, r5, #0x78
str r0, [sp]
ldr r1, _02182f50 ; =func_ov39_0217bdb4
ldr r0, _02182f34 ; =data_027e0e58
str r1, [sp, #4]
ldr r0, [r0]
ldr r1, _02182f54 ; =0x0000103e
add r2, r5, #0x48
mov r3, #2
bl func_ov00_0207c1b0
add sp, sp, #0x44
ldmia sp!, {r4, r5, pc}
_02182ef4:
mov r1, #0
add r0, r5, #0x288
str r1, [r5, #0x1a4]
bl func_ov00_020b7e6c
add r0, r5, #0x294
bl func_ov00_020b7e6c
ldr r0, [r5, #0x158]
bic r0, r0, #0x1000000
str r0, [r5, #0x158]
add sp, sp, #0x44
ldmia sp!, {r4, r5, pc}
.align 2, 0
arm_func_end func_ov39_02182954
_02182f20: .word 0x0000011f
_02182f24: .word data_02050f54
_02182f28: .word data_027e0f64
_02182f2c: .word 0xffffd333
_02182f30: .word 0x000014cd
_02182f34: .word data_027e0e58
_02182f38: .word 0x0000100d
_02182f3c: .word data_027e0ffc
_02182f40: .word 0x0000031f
_02182f44: .word 0x00001666
_02182f48: .word 0x0000251c
_02182f4c: .word 0x00000222
_02182f50: .word func_ov39_0217bdb4
_02182f54: .word 0x0000103e
.global func_ov39_02182f58
arm_func_start func_ov39_02182f58
func_ov39_02182f58: ; 0x02182f58
stmdb sp!, {r3, r4, r5, lr}
mov r4, r0
bl func_ov00_020c2974
strh r0, [r4, #0x78]
ldrsh r2, [r4, #0x78]
add r1, r4, #0x100
ldr ip, _02182ff4 ; =data_02050f54
add r2, r2, #0x8000
strh r2, [r1, #0x60]
ldrh r2, [r1, #0x60]
ldr r0, _02182ff8 ; =0x00000666
add r1, r4, #0x3ec
mov r2, r2, asr #0x4
mov r2, r2, lsl #0x1
mov r3, r2, lsl #0x1
add r2, r2, #1
mov r2, r2, lsl #0x1
ldrsh r3, [ip, r3]
ldrsh r2, [ip, r2]
str r0, [r4, #0x1a8]
smull ip, lr, r3, r0
adds r5, ip, #0x800
smull ip, r3, r2, r0
adc lr, lr, #0
adds r2, ip, #0x800
mov r5, r5, lsr #0xc
orr r5, r5, lr, lsl #20
str r5, [r4, #0x60]
mov ip, #0
adc r0, r3, #0
mov r2, r2, lsr #0xc
orr r2, r2, r0, lsl #20
str ip, [r4, #0x64]
add r0, r1, #0x400
mov r1, #0x19
str r2, [r4, #0x68]
bl func_ov39_0217ca2c
mov r0, #1
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov39_02182f58
_02182ff4: .word data_02050f54
_02182ff8: .word 0x00000666
.global func_ov39_02182ffc
arm_func_start func_ov39_02182ffc
func_ov39_02182ffc: ; 0x02182ffc
stmdb sp!, {r4, lr}
mov r4, r0
bl func_ov39_0217f4ac
mov r0, r4
bl func_ov39_0217e298
add r0, r4, #0x1a8
mov r1, #0
mov r2, #0x7b
bl func_0202b0f4
add r0, r4, #0x100
ldrh r0, [r0, #0x60]
ldr r2, _021830d4 ; =data_02050f54
ldr lr, [r4, #0x1a8]
mov r0, r0, asr #0x4
mov r0, r0, lsl #0x1
mov r1, r0, lsl #0x1
add r0, r0, #1
mov r0, r0, lsl #0x1
ldrsh r1, [r2, r1]
ldrsh r0, [r2, r0]
smull r2, r3, r1, lr
adds ip, r2, #0x800
smull r2, r1, r0, lr
adc r3, r3, #0
adds r0, r2, #0x800
mov r2, ip, lsr #0xc
orr r2, r2, r3, lsl #20
str r2, [r4, #0x60]
mov r3, #0
mov r2, r0, lsr #0xc
adc r1, r1, #0
orr r2, r2, r1, lsl #20
str r3, [r4, #0x64]
mov r0, r4
add r1, r4, #0x60
str r2, [r4, #0x68]
bl func_ov39_0217e950
cmp r0, #0
movne r0, #0
strne r0, [r4, #0x1a8]
ldr r0, [r4, #0x60]
ldr r1, [r4, #0x68]
bl func_01ffa0f4
add r1, r4, #0x100
strh r0, [r1, #0x60]
ldr r0, [r4, #0x7fc]
add r0, r0, #0xc
bl func_0202e58c
cmp r0, #0
ldmeqia sp!, {r4, pc}
mov r0, r4
mov r1, #0
bl func_ov39_0217d5d4
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov39_02182ffc
_021830d4: .word data_02050f54
.global func_ov39_021830d8
arm_func_start func_ov39_021830d8
func_ov39_021830d8: ; 0x021830d8
stmdb sp!, {r3, r4, r5, r6, lr}
sub sp, sp, #0xc
mov r6, r0
mov r0, r2
mov r5, r1
add r2, sp, #0
mov r1, r6
mov r4, r3
bl func_01ff9bf8
ldr r0, [sp]
ldr r3, [r5]
smull r2, r1, r0, r4
adds r2, r2, #0x800
adc r0, r1, #0
mov r1, r2, lsr #0xc
orr r1, r1, r0, lsl #20
add r0, r3, r1
str r0, [r5]
ldr r0, [sp, #4]
ldr r3, [r5, #4]
smull r2, r1, r0, r4
adds r2, r2, #0x800
adc r0, r1, #0
mov r1, r2, lsr #0xc
orr r1, r1, r0, lsl #20
add r0, r3, r1
str r0, [r5, #4]
ldr r0, [sp, #8]
ldr r3, [r5, #8]
smull r2, r1, r0, r4
adds r2, r2, #0x800
adc r0, r1, #0
mov r1, r2, lsr #0xc
orr r1, r1, r0, lsl #20
add r0, r3, r1
str r0, [r5, #8]
ldr r3, [sp, #0x20]
ldr r1, [r5]
mov r0, r6
mov r2, r6
smull r6, r4, r1, r3
adds r6, r6, #0x800
adc r1, r4, #0
mov r4, r6, lsr #0xc
orr r4, r4, r1, lsl #20
str r4, [r5]
ldr r4, [r5, #4]
mov r1, r5
smull ip, r6, r4, r3
adds ip, ip, #0x800
adc r4, r6, #0
mov r6, ip, lsr #0xc
orr r6, r6, r4, lsl #20
str r6, [r5, #4]
ldr r4, [r5, #8]
smull r6, r3, r4, r3
adds r4, r6, #0x800
adc r3, r3, #0
mov r4, r4, lsr #0xc
orr r4, r4, r3, lsl #20
str r4, [r5, #8]
bl func_01ff9bc4
add sp, sp, #0xc
ldmia sp!, {r3, r4, r5, r6, pc}
arm_func_end func_ov39_021830d8
.global func_ov39_021831d8
arm_func_start func_ov39_021831d8
func_ov39_021831d8: ; 0x021831d8
stmdb sp!, {r3, r4, r5, r6, r7, lr}
mov r4, r0
ldr r1, [r4, #0x174]
ldr r0, _021832bc ; =data_027e0f90
add r1, r1, #1
str r1, [r4, #0x174]
ldr r0, [r0]
bl func_ov00_020a7cfc
add r1, r4, #0x100
ldrsh r2, [r1, #0x20]
add r0, r2, r0
strh r0, [r1, #0x20]
ldrsh r0, [r1, #0x20]
cmp r0, #0xc8
blt _0218321c
ldr r0, _021832c0 ; =data_ov29_0217a4ac
bl func_ov09_02113698
_0218321c:
mov r0, #3
str r0, [r4, #0x16c]
ldr r0, [r4, #0x48]
ldr r3, _021832c4 ; =data_02050f54
str r0, [r4, #0x214]
ldr r0, [r4, #0x4c]
ldr r1, _021832c8 ; =0x00000666
str r0, [r4, #0x218]
ldr r0, [r4, #0x50]
mov lr, #0
str r0, [r4, #0x21c]
ldrh r2, [r4, #0x78]
mov r0, #1
mov r2, r2, asr #0x4
mov r6, r2, lsl #0x1
mov r2, r6, lsl #0x1
ldrsh r5, [r3, r2]
add r2, r6, #1
mov r2, r2, lsl #0x1
ldrsh r2, [r3, r2]
umull r7, r6, r5, r1
umull ip, r3, r2, r1
adds r7, r7, #0x800
mla r6, r5, lr, r6
mov r5, r5, asr #0x1f
mla r6, r5, r1, r6
adc r5, r6, #0
mov r6, r7, lsr #0xc
orr r6, r6, r5, lsl #20
adds ip, ip, #0x800
str r6, [r4, #0x60]
mla r3, r2, lr, r3
mov r2, r2, asr #0x1f
mla r3, r2, r1, r3
adc r1, r3, #0
mov r2, ip, lsr #0xc
str lr, [r4, #0x64]
orr r2, r2, r1, lsl #20
str r2, [r4, #0x68]
ldmia sp!, {r3, r4, r5, r6, r7, pc}
.align 2, 0
arm_func_end func_ov39_021831d8
_021832bc: .word data_027e0f90
_021832c0: .word data_ov29_0217a4ac
_021832c4: .word data_02050f54
_021832c8: .word 0x00000666
.global func_ov39_021832cc
arm_func_start func_ov39_021832cc
func_ov39_021832cc: ; 0x021832cc
stmdb sp!, {r3, r4, lr}
sub sp, sp, #4
mov r4, r0
ldrb r1, [r4, #0xc9c]
cmp r1, #0
bne _021832f4
mov r1, #0x13
bl func_ov39_0217d5d4
add sp, sp, #4
ldmia sp!, {r3, r4, pc}
_021832f4:
ldr r0, [r4, #0x16c]
cmp r0, #0
addeq sp, sp, #4
ldmeqia sp!, {r3, r4, pc}
subs r0, r0, #1
str r0, [r4, #0x16c]
bne _0218332c
ldr r0, [r4, #0x214]
str r0, [r4, #0x48]
ldr r0, [r4, #0x218]
str r0, [r4, #0x4c]
ldr r0, [r4, #0x21c]
str r0, [r4, #0x50]
b _02183348
_0218332c:
ldr ip, _0218339c ; =0x0000099a
ldr r3, _021833a0 ; =0x00000b33
add r0, r4, #0x48
add r1, r4, #0x60
add r2, r4, #0x214
str ip, [sp]
bl func_ov39_021830d8
_02183348:
add r0, r4, #0x3ec
add r0, r0, #0x400
bl func_ov39_0217c7c4
ldr r0, [r4, #0x9f4]
add r0, r4, r0, lsl #2
ldr r0, [r0, #0x9ec]
cmp r0, #0
addeq sp, sp, #4
ldmeqia sp!, {r3, r4, pc}
ldr r0, [r4, #0x7fc]
add r0, r0, #0xc
bl func_0202e58c
cmp r0, #0
addeq sp, sp, #4
ldmeqia sp!, {r3, r4, pc}
add r0, r4, #0x3ec
add r0, r0, #0x400
mov r1, #0
bl func_ov39_0217caf0
add sp, sp, #4
ldmia sp!, {r3, r4, pc}
.align 2, 0
arm_func_end func_ov39_021832cc
_0218339c: .word 0x0000099a
_021833a0: .word 0x00000b33
.global func_ov39_021833a4
arm_func_start func_ov39_021833a4
func_ov39_021833a4: ; 0x021833a4
stmdb sp!, {r3, r4, r5, lr}
sub sp, sp, #0xb0
ldr r1, _02183510 ; =0x000006b8
mov r4, r0
str r1, [r4, #0x1a8]
ldrsh r2, [r4, #0x78]
add r0, r4, #0x100
add r1, r4, #0x3ec
strh r2, [r0, #0x60]
ldrh r5, [r0, #0x60]
add r0, r1, #0x400
mov r1, #0x1b
bl func_ov39_0217ca2c
mov r0, r5, asr #0x4
mov r1, r0, lsl #0x1
add r0, r1, #1
ldr r2, _02183514 ; =data_02050f54
mov r1, r1, lsl #0x1
mov r0, r0, lsl #0x1
ldrsh r1, [r2, r1]
ldr r3, [r4, #0x1a8]
ldrsh r0, [r2, r0]
mul r2, r1, r3
mul r1, r0, r3
add r0, r2, #0x800
mov r3, r0, asr #0xc
add r2, r1, #0x800
add r0, r4, #0x3bc
str r3, [r4, #0x60]
mov r1, #0
str r1, [r4, #0x64]
mov r2, r2, asr #0xc
str r2, [r4, #0x68]
str r1, [r4, #0x174]
mov r2, #3
strb r2, [r4, #0x15c]
add r0, r0, #0x800
bl func_ov39_02184d40
ldr r1, [r4, #0x158]
mov r0, r4
orr r1, r1, #0x40000
orr r1, r1, #0x400
str r1, [r4, #0x158]
bl func_ov39_0217f760
ldr r1, _02183518 ; =0x00001022
mov r0, #2
str r1, [r4, #0x2b0]
str r0, [r4, #0x2b4]
add r0, r4, #0x100
ldrsh r0, [r0, #0x20]
cmp r0, #0xc8
blt _02183504
add r0, sp, #0
bl func_ov00_0209a4f4
mov r1, #0
ldr r0, _0218351c ; =data_027e0f64
mvn ip, #0
mov r2, #0x32
ldr r3, [r0]
str ip, [sp, #4]
strb r1, [sp, #0xa]
strb r1, [sp, #0xb]
strb r2, [sp, #9]
ldr r2, [r3, #4]
add r1, r4, #0x2b8
ldr r0, [r2, #0x26c]
str r0, [sp, #0x20]
ldr r0, [r2, #0x270]
str r0, [sp, #0x24]
ldr r0, [r2, #0x274]
str r0, [sp, #0x28]
ldr r0, [r3, #4]
bl func_ov00_02087d34
ldr r0, _02183520 ; =data_027e0f74
mov r2, #1
ldr r0, [r0]
add r1, sp, #0
strb r2, [sp, #0x16]
bl func_ov00_02097810
str r0, [r4, #0x190]
ldr r1, [r4, #0x158]
ldr r0, _02183524 ; =data_ov00_020eec68
orr r2, r1, #0x200
mov r1, #5
str r2, [r4, #0x158]
bl func_ov00_020d716c
add r0, sp, #0
bl func_ov00_0209a508
_02183504:
mov r0, #1
add sp, sp, #0xb0
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov39_021833a4
_02183510: .word 0x000006b8
_02183514: .word data_02050f54
_02183518: .word 0x00001022
_0218351c: .word data_027e0f64
_02183520: .word data_027e0f74
_02183524: .word data_ov00_020eec68
.global func_ov39_02183528
arm_func_start func_ov39_02183528
func_ov39_02183528: ; 0x02183528
stmdb sp!, {r3, r4, lr}
sub sp, sp, #4
mov r4, r0
add r0, r4, #0x68
add r0, r0, #0x800
mov r1, #0
mov r2, #0x4b0
bl func_0202b154
ldr r0, [r4, #0x1a8]
cmp r0, #0
ble _02183564
subs r0, r0, #0x29
str r0, [r4, #0x1a8]
movmi r0, #0
strmi r0, [r4, #0x1a8]
_02183564:
add r0, r4, #0x100
ldrh r1, [r0, #0x60]
ldr r3, _0218368c ; =data_02050f54
ldr ip, [r4, #0x1a8]
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]
mul r3, r2, ip
mul r2, r1, ip
add r3, r3, #0x800
add r1, r2, #0x800
ldr ip, [r4, #0x64]
mov r2, r3, asr #0xc
str r2, [r4, #0x60]
str ip, [r4, #0x64]
mov r1, r1, asr #0xc
str r1, [r4, #0x68]
ldr r1, [r4, #0x7fc]
ldr r1, [r1, #0x14]
cmp r1, #0
blt _0218360c
ldrsh r0, [r0, #0x60]
rsb r1, r1, #0x19000
cmp r1, #0x1000
sub r0, r0, #0x8000
mov r0, r0, lsl #0x10
mov r2, r0, asr #0x10
strleh r2, [r4, #0x78]
ble _0218360c
ldrsh r0, [r4, #0x78]
sub r0, r2, r0
mov r0, r0, lsl #0x10
mov r0, r0, asr #0x4
bl func_01ff98e0
ldrsh r1, [r4, #0x78]
add r0, r0, #0x800
add r0, r1, r0, asr #12
strh r0, [r4, #0x78]
_0218360c:
mov r0, r4
add r1, r4, #0x60
bl func_ov39_0217e950
ldr r0, [r4, #0x7fc]
add r0, r0, #0xc
bl func_0202e58c
cmp r0, #0
beq _02183638
mov r0, r4
mov r1, #0x14
bl func_ov39_0217d5d4
_02183638:
ldr r0, [r4, #0x1a8]
cmp r0, #0
beq _0218367c
ldr r0, _02183690 ; =data_027e0e58
add r1, r4, #0x2ac
ldr r0, [r0]
add r2, r4, #0x48
bl func_ov00_0207c474
mov r0, #0
str r0, [sp]
ldr r3, [r4, #8]
ldr r0, _02183694 ; =data_027e0ffc
ldr r1, _02183698 ; =0x0000031b
add r2, r4, #0x48
bl func_ov00_020cec60
add sp, sp, #4
ldmia sp!, {r3, r4, pc}
_0218367c:
add r0, r4, #0x2ac
bl func_ov00_020b7e6c
add sp, sp, #4
ldmia sp!, {r3, r4, pc}
.align 2, 0
arm_func_end func_ov39_02183528
_0218368c: .word data_02050f54
_02183690: .word data_027e0e58
_02183694: .word data_027e0ffc
_02183698: .word 0x0000031b
.global func_ov39_0218369c
arm_func_start func_ov39_0218369c
func_ov39_0218369c: ; 0x0218369c
stmdb sp!, {r4, lr}
mov r4, r0
add r0, r4, #0x3ec
add r0, r0, #0x400
mov r1, #0x1c
bl func_ov39_0217ca2c
ldr r1, [r4, #0x158]
add r0, r4, #0x100
orr r1, r1, #0x400
str r1, [r4, #0x158]
ldrsh r0, [r0, #0x20]
cmp r0, #0xc8
ldrge r0, [r4, #0x158]
orrge r0, r0, #0x200
strge r0, [r4, #0x158]
mov r0, #1
ldmia sp!, {r4, pc}
arm_func_end func_ov39_0218369c
.global func_ov39_021836e0
arm_func_start func_ov39_021836e0
func_ov39_021836e0: ; 0x021836e0
stmdb sp!, {r3, r4, lr}
sub sp, sp, #4
mov r4, r0
add r0, r4, #0x68
add r0, r0, #0x800
mov r1, #0
mov r2, #0x4b0
bl func_0202b154
ldr r0, [r4, #0x1a8]
cmp r0, #0
ble _0218371c
subs r0, r0, #0x29
str r0, [r4, #0x1a8]
movmi r0, #0
strmi r0, [r4, #0x1a8]
_0218371c:
add r0, r4, #0x100
ldrh r0, [r0, #0x60]
ldr r2, _02183808 ; =data_02050f54
ldr r3, [r4, #0x1a8]
mov r0, r0, asr #0x4
mov r0, r0, lsl #0x1
mov r1, r0, lsl #0x1
add r0, r0, #1
ldrsh r1, [r2, r1]
mov r0, r0, lsl #0x1
ldrsh r0, [r2, r0]
mul r2, r1, r3
mul r1, r0, r3
add r2, r2, #0x800
add r0, r1, #0x800
ldr r3, [r4, #0x64]
mov r1, r2, asr #0xc
str r1, [r4, #0x60]
str r3, [r4, #0x64]
mov r1, r0, asr #0xc
mov r0, r4
str r1, [r4, #0x68]
add r1, r4, #0x60
bl func_ov39_0217e950
ldr r0, [r4, #0x1a8]
cmp r0, #0
beq _021837bc
ldr r0, _0218380c ; =data_027e0e58
add r1, r4, #0x2ac
ldr r0, [r0]
add r2, r4, #0x48
bl func_ov00_0207c474
mov r0, #0
str r0, [sp]
ldr r3, [r4, #8]
ldr r0, _02183810 ; =data_027e0ffc
ldr r1, _02183814 ; =0x0000031b
add r2, r4, #0x48
bl func_ov00_020cec60
b _021837c4
_021837bc:
add r0, r4, #0x2ac
bl func_ov00_020b7e6c
_021837c4:
ldr r0, [r4, #0x1a8]
cmp r0, #0
addne sp, sp, #4
ldmneia sp!, {r3, r4, pc}
ldr r0, [r4, #0x7fc]
add r0, r0, #0xc
bl func_0202e58c
cmp r0, #0
addeq sp, sp, #4
ldmeqia sp!, {r3, r4, pc}
add r0, r4, #0x2ac
bl func_ov00_020b7e6c
mov r0, r4
mov r1, #0x15
bl func_ov39_0217d5d4
add sp, sp, #4
ldmia sp!, {r3, r4, pc}
.align 2, 0
arm_func_end func_ov39_021836e0
_02183808: .word data_02050f54
_0218380c: .word data_027e0e58
_02183810: .word data_027e0ffc
_02183814: .word 0x0000031b
.global func_ov39_02183818
arm_func_start func_ov39_02183818
func_ov39_02183818: ; 0x02183818
stmdb sp!, {r4, lr}
mov r4, r0
add r0, r4, #0x3ec
add r0, r0, #0x400
mov r1, #0x1d
bl func_ov39_0217ca2c
ldr r1, [r4, #0x158]
add r0, r4, #0x100
orr r1, r1, #0x400
str r1, [r4, #0x158]
ldrsh r0, [r0, #0x20]
cmp r0, #0xc8
blt _0218385c
ldr r0, [r4, #0x158]
orr r0, r0, #0x200
str r0, [r4, #0x158]
b _02183870
_0218385c:
ldr r0, _02183878 ; =data_027e0ffc
add r2, r4, #0x48
mov r1, #0x31c
mov r3, #0
bl func_ov00_020ceacc
_02183870:
mov r0, #1
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov39_02183818
_02183878: .word data_027e0ffc
.global func_ov39_0218387c
arm_func_start func_ov39_0218387c
func_ov39_0218387c: ; 0x0218387c
stmdb sp!, {r4, lr}
mov r4, r0
ldr r0, [r4, #0x7fc]
add r0, r0, #0xc
bl func_0202e58c
cmp r0, #0
ldmeqia sp!, {r4, pc}
add r0, r4, #0x100
ldrsh r0, [r0, #0x20]
cmp r0, #0xc8
mov r0, r4
blt _021838b8
mov r1, #0x16
bl func_ov39_0217d5d4
ldmia sp!, {r4, pc}
_021838b8:
mov r1, #0
bl func_ov39_0217d5d4
ldmia sp!, {r4, pc}
arm_func_end func_ov39_0218387c
.global func_ov39_021838c4
arm_func_start func_ov39_021838c4
func_ov39_021838c4: ; 0x021838c4
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x124
mov r4, r0
ldr r0, _02183c10 ; =data_027e0ffc
ldr r1, _02183c14 ; =0x00000321
add r2, r4, #0x48
mov r3, #0
bl func_ov00_020ceacc
mov r1, #0
str r1, [r4, #0x60]
str r1, [r4, #0x64]
ldr r0, _02183c18 ; =data_027e0fc8
str r1, [r4, #0x68]
ldr r0, [r0]
ldr r1, [r0]
ldr r1, [r1, #0x84]
blx r1
add r0, r4, #0x3ec
add r0, r0, #0x400
mov r1, #0x1e
bl func_ov39_0217ca2c
add r0, r4, #0x3bc
add r0, r0, #0x800
mov r1, #1
bl func_ov39_02184d40
ldr r0, _02183c10 ; =data_027e0ffc
ldr r1, _02183c1c ; =0x00000326
add r2, r4, #0x48
mov r3, #0
bl func_ov00_020ceacc
ldr r0, _02183c20 ; =data_027e0f74
ldr r1, [r4, #0x190]
ldr r0, [r0]
bl func_ov00_02097bcc
add r0, sp, #0x74
bl func_ov00_0209a4f4
mvn r0, #0
str r0, [sp, #0x78]
mov r0, #0x32
strb r0, [sp, #0x7d]
mov r0, #3
strb r0, [sp, #0x7e]
strb r0, [sp, #0x7f]
mov r0, #1
strb r0, [sp, #0x8a]
strb r0, [sp, #0x88]
mov r0, #0
strb r0, [sp, #0x8b]
ldr r0, _02183c24 ; =data_027e0f64
add r1, sp, #0xc
ldr r0, [r0]
ldr r0, [r0, #4]
bl func_ov00_02087d34
ldr r0, [sp, #0xc]
str r0, [r4, #0x2b8]
ldr r0, [sp, #0x10]
str r0, [r4, #0x2bc]
ldr r0, [sp, #0x14]
str r0, [r4, #0x2c0]
ldr r0, [sp, #0x18]
str r0, [r4, #0x2c4]
ldr r0, [sp, #0x1c]
str r0, [r4, #0x2c8]
ldr r0, [sp, #0x20]
str r0, [r4, #0x2cc]
ldr r0, [sp, #0x24]
str r0, [r4, #0x2d0]
ldr r0, [sp, #0x28]
str r0, [r4, #0x2d4]
ldr r0, [sp, #0x2c]
str r0, [r4, #0x2d8]
ldr r0, [sp, #0x30]
str r0, [r4, #0x2dc]
ldr r0, [sp, #0x34]
str r0, [r4, #0x2e0]
ldr r0, [sp, #0x38]
str r0, [r4, #0x2e4]
ldr r0, [sp, #0x3c]
str r0, [r4, #0x2e8]
ldr r0, [sp, #0x40]
str r0, [r4, #0x2ec]
ldr r0, [sp, #0x44]
str r0, [r4, #0x2f0]
ldr r0, [sp, #0x48]
str r0, [r4, #0x2f4]
ldr r0, [sp, #0x4c]
ldr r2, _02183c28 ; =0x000009c4
str r0, [r4, #0x2f8]
ldr r1, [sp, #0x50]
mov r0, r4
str r1, [r4, #0x2fc]
ldr r3, [sp, #0x54]
sub r1, r2, #0x3e8
str r3, [r4, #0x300]
ldr r5, [sp, #0x58]
mov r3, #0xa000
str r5, [r4, #0x304]
ldr r5, [sp, #0x5c]
str r5, [r4, #0x308]
ldr r5, [sp, #0x60]
str r5, [r4, #0x30c]
ldr r5, [sp, #0x64]
str r5, [r4, #0x310]
ldr r5, [sp, #0x68]
str r5, [r4, #0x314]
ldrb r5, [sp, #0x6c]
strb r5, [r4, #0x318]
ldrb r5, [sp, #0x6d]
strb r5, [r4, #0x319]
ldrb r5, [sp, #0x6e]
strb r5, [r4, #0x31a]
ldrb r5, [sp, #0x6f]
strb r5, [r4, #0x31b]
ldrb r5, [sp, #0x70]
strb r5, [r4, #0x31c]
str r3, [sp, #0x24]
str r2, [sp, #0x18]
str r1, [sp, #0x1c]
bl func_ov00_020c2974
mov fp, #0
ldr r6, [sp, #0xc]
ldr r5, [sp, #0x10]
ldr sl, [sp, #0x14]
ldr sb, [sp, #0x18]
ldr r8, [sp, #0x1c]
ldr r7, [sp, #0x24]
str r6, [sp, #0xa0]
ldr r6, [sp, #0x34]
str r5, [sp, #0xa4]
ldr r5, [sp, #0x38]
str sl, [sp, #0xa8]
ldr sl, [sp, #0x3c]
str sb, [sp, #0xac]
ldr sb, [sp, #0x40]
str r8, [sp, #0xb0]
ldr r8, [sp, #0x44]
str r7, [sp, #0xb8]
ldr r7, [sp, #0x48]
str r6, [sp, #0xc8]
ldr r6, [sp, #0x4c]
str r5, [sp, #0xcc]
ldr r5, [sp, #0x50]
ldrb lr, [sp, #0x6c]
ldrb ip, [sp, #0x6d]
ldrb r3, [sp, #0x6e]
ldrb r2, [sp, #0x6f]
ldrb r1, [sp, #0x70]
str sl, [sp, #0xd0]
ldr sl, [sp, #0x54]
str sb, [sp, #0xd4]
ldr sb, [sp, #0x58]
str r8, [sp, #0xd8]
ldr r8, [sp, #0x5c]
str r7, [sp, #0xdc]
ldr r7, [sp, #0x60]
str r6, [sp, #0xe0]
ldr r6, [sp, #0x64]
str r5, [sp, #0xe4]
ldr r5, [sp, #0x68]
str sl, [sp, #0xe8]
str r0, [sp, #0x20]
str fp, [sp, #0x30]
str fp, [sp, #0x2c]
str fp, [sp, #0x28]
str r0, [sp, #0xb4]
str fp, [sp, #0xbc]
str fp, [sp, #0xc0]
str fp, [sp, #0xc4]
str sb, [sp, #0xec]
str r8, [sp, #0xf0]
str r7, [sp, #0xf4]
str r6, [sp, #0xf8]
str r5, [sp, #0xfc]
strb lr, [sp, #0x100]
strb ip, [sp, #0x101]
strb r3, [sp, #0x102]
strb r2, [sp, #0x103]
strb r1, [sp, #0x104]
mov r1, r0, lsl #0x10
add r0, sp, #0
mov r1, r1, asr #0x10
str fp, [sp]
str fp, [sp, #4]
str fp, [sp, #8]
bl func_ov00_020a61ac
add r0, sp, #0
add r1, r4, #0x48
mov r2, r0
bl func_01ff9bc4
ldr r0, [sp, #4]
ldr r3, [sp]
add r0, r0, #0x66
add r5, r0, #0xe00
ldr r1, _02183c20 ; =data_027e0f74
ldr r2, [sp, #8]
ldr r0, [r1]
add r1, sp, #0x74
str r5, [sp, #4]
str r3, [sp, #0x94]
str r5, [sp, #0x98]
str r2, [sp, #0x9c]
bl func_ov00_02097810
str r0, [r4, #0x190]
ldr r1, [r4, #0x158]
add r0, sp, #0x74
orr r1, r1, #0x200
str r1, [r4, #0x158]
bl func_ov00_0209a508
mov r0, #1
add sp, sp, #0x124
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
arm_func_end func_ov39_021838c4
_02183c10: .word data_027e0ffc
_02183c14: .word 0x00000321
_02183c18: .word data_027e0fc8
_02183c1c: .word 0x00000326
_02183c20: .word data_027e0f74
_02183c24: .word data_027e0f64
_02183c28: .word 0x000009c4
.global func_ov39_02183c2c
arm_func_start func_ov39_02183c2c
func_ov39_02183c2c: ; 0x02183c2c
stmdb sp!, {r4, lr}
mov r4, r0
ldr r0, [r4, #0x7fc]
mov r1, #0x80000
add r0, r0, #0xc
bl func_0202e310
cmp r0, #0
beq _02183c5c
mov r0, r4
mov r1, #0xa
bl func_ov39_0218599c
b _02183c88
_02183c5c:
ldr r0, [r4, #0x7fc]
mov r1, #0x79000
add r0, r0, #0xc
bl func_0202e310
cmp r0, #0
beq _02183c88
ldr r0, _02183cc4 ; =data_027e0ffc
ldr r1, _02183cc8 ; =0x00000326
add r2, r4, #0x48
mov r3, #0
bl func_ov00_020ceacc
_02183c88:
ldr r0, [r4, #0x7fc]
add r0, r0, #0xc
bl func_0202e58c
cmp r0, #0
beq _02183cb8
ldr r0, [r4, #0x138]
cmp r0, #0x14
ldmltia sp!, {r4, pc}
mov r0, r4
mov r1, #0x17
bl func_ov39_0217d5d4
ldmia sp!, {r4, pc}
_02183cb8:
mov r0, #0
str r0, [r4, #0x138]
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov39_02183c2c
_02183cc4: .word data_027e0ffc
_02183cc8: .word 0x00000326
.global func_ov39_02183ccc
arm_func_start func_ov39_02183ccc
func_ov39_02183ccc: ; 0x02183ccc
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #0x15c
ldr r2, _0218430c ; =data_027e0f64
mov r7, r0
ldr r0, [r2]
add r1, r7, #0x2b8
ldr r3, [r0, #4]
ldr r0, [r3, #0x260]
str r0, [r7, #0x220]
ldr r0, [r3, #0x264]
str r0, [r7, #0x224]
ldr r0, [r3, #0x268]
str r0, [r7, #0x228]
ldr r0, [r2]
ldr r0, [r0, #4]
bl func_ov00_02087d34
mov r0, #0xa000
str r0, [r7, #0x2d0]
mov r0, #0
str r0, [r7, #0x2dc]
str r0, [r7, #0x2d8]
str r0, [r7, #0x2d4]
ldr r1, _02184310 ; =0x000009c4
mov r0, r7
str r1, [r7, #0x2c4]
sub r1, r1, #0x3e8
str r1, [r7, #0x2c8]
bl func_ov00_020c2974
ldr r1, _0218430c ; =data_027e0f64
str r0, [r7, #0x2cc]
ldr r0, [r1]
mov r1, #0
ldr r0, [r0, #4]
bl func_ov00_020875f8
ldr r0, _0218430c ; =data_027e0f64
mov r1, #0
ldr r0, [r0]
ldr r0, [r0, #8]
bl func_ov00_020875f8
ldr r0, _02184314 ; =data_027e0f74
ldr r1, [r7, #0x190]
ldr r0, [r0]
bl func_ov00_02097bcc
add r0, sp, #0xac
bl func_ov00_0209a4f4
mov r0, #1
mov r1, #2
mvn r2, #0
str r2, [sp, #0xb0]
mov r2, #0x32
strb r2, [sp, #0xb5]
strb r1, [sp, #0xb6]
strb r1, [sp, #0xb7]
strb r0, [sp, #0xc2]
strb r0, [sp, #0xc3]
strb r0, [sp, #0xc0]
ldr r0, [r7, #0x2b8]
str r0, [sp, #0xd8]
ldr r0, [r7, #0x2bc]
str r0, [sp, #0xdc]
ldr r0, [r7, #0x2c0]
str r0, [sp, #0xe0]
ldr r0, [r7, #0x2c4]
str r0, [sp, #0xe4]
ldr r0, [r7, #0x2c8]
str r0, [sp, #0xe8]
ldr r0, [r7, #0x2cc]
str r0, [sp, #0xec]
ldr r0, [r7, #0x2d0]
str r0, [sp, #0xf0]
ldr r0, [r7, #0x2d4]
str r0, [sp, #0xf4]
ldr r0, [r7, #0x2d8]
str r0, [sp, #0xf8]
ldr r0, [r7, #0x2dc]
str r0, [sp, #0xfc]
ldr r0, [r7, #0x2e0]
str r0, [sp, #0x100]
ldr r0, [r7, #0x2e4]
str r0, [sp, #0x104]
ldr r0, [r7, #0x2e8]
str r0, [sp, #0x108]
ldr r0, [r7, #0x2ec]
str r0, [sp, #0x10c]
ldr r0, [r7, #0x2f0]
str r0, [sp, #0x110]
ldr r0, [r7, #0x2f4]
mov r1, #0
str r0, [sp, #0x114]
ldr r2, [r7, #0x2f8]
add r0, sp, #0x38
str r2, [sp, #0x118]
ldr r2, [r7, #0x2fc]
str r2, [sp, #0x11c]
ldr r2, [r7, #0x300]
str r2, [sp, #0x120]
ldr r2, [r7, #0x304]
str r2, [sp, #0x124]
ldr r2, [r7, #0x308]
str r2, [sp, #0x128]
ldr r2, [r7, #0x30c]
str r2, [sp, #0x12c]
ldr r2, [r7, #0x310]
str r2, [sp, #0x130]
ldr r2, [r7, #0x314]
str r2, [sp, #0x134]
ldrb r2, [r7, #0x318]
strb r2, [sp, #0x138]
ldrb r2, [r7, #0x319]
strb r2, [sp, #0x139]
ldrb r2, [r7, #0x31a]
strb r2, [sp, #0x13a]
ldrb r2, [r7, #0x31b]
strb r2, [sp, #0x13b]
ldrb r2, [r7, #0x31c]
strb r2, [sp, #0x13c]
str r1, [sp, #0x38]
str r1, [sp, #0x3c]
str r1, [sp, #0x40]
ldr r1, [r7, #0x2cc]
mov r1, r1, lsl #0x10
mov r1, r1, asr #0x10
bl func_ov00_020a61ac
add r0, sp, #0x38
add r1, r7, #0x48
mov r2, r0
bl func_01ff9bc4
ldr r0, [sp, #0x3c]
ldr r3, [sp, #0x38]
add r0, r0, #0x66
add r4, r0, #0xe00
ldr r1, _02184314 ; =data_027e0f74
ldr r2, [sp, #0x40]
ldr r0, [r1]
add r1, sp, #0xac
str r4, [sp, #0x3c]
str r3, [sp, #0xcc]
str r4, [sp, #0xd0]
str r2, [sp, #0xd4]
bl func_ov00_02097810
add r5, sp, #0x44
str r0, [r7, #0x190]
add r6, r7, #0x2b8
mov r4, #6
_02183f0c:
ldmia r6!, {r0, r1, r2, r3}
stmia r5!, {r0, r1, r2, r3}
subs r4, r4, #1
bne _02183f0c
ldmia r6, {r0, r1}
stmia r5, {r0, r1}
ldr r3, [sp, #0x54]
ldr r2, [sp, #0x50]
mov r0, r3, lsl #0x10
mov r0, r0, lsr #0x10
mov r0, r0, asr #0x4
sub r2, r3, r2, lsl #1
mov r6, r0, lsl #0x1
mov r0, r2, lsl #0x10
mov r0, r0, lsr #0x10
mov r0, r0, asr #0x4
mov r3, r0, lsl #0x1
ldr r1, _02184318 ; =data_02050f54
mov r5, r6, lsl #0x1
ldrsh ip, [r1, r5]
ldr r5, [sp, #0x5c]
add r0, r3, #1
mov r4, r3, lsl #0x1
mov r3, r0, lsl #0x1
ldrsh r0, [r1, r4]
smull ip, r4, r5, ip
ldrsh r1, [r1, r3]
adds ip, ip, #0x800
adc r3, r4, #0
mov r4, ip, lsr #0xc
str r2, [sp, #0x54]
orr r4, r4, r3, lsl #20
bl func_01ff98e0
add r2, r6, #1
ldr r1, _02184318 ; =data_02050f54
mov r2, r2, lsl #0x1
ldrsh r1, [r1, r2]
ldr r3, [r7, #0x4c]
ldr r2, [r7, #0x50]
smull r1, r6, r5, r1
adds ip, r1, #0x800
ldr r1, [r7, #0x48]
adc r5, r6, #0
str r1, [sp, #0x2c]
mov r1, ip, lsr #0xc
orr r1, r1, r5, lsl #20
smull r5, r0, r1, r0
adds r1, r5, #0x800
adc r0, r0, #0
mov r1, r1, lsr #0xc
orr r1, r1, r0, lsl #20
sub r0, r4, r1
str r2, [sp, #0x34]
add r2, r3, r0
add r0, sp, #0x2c
add r1, r7, #0x220
str r2, [sp, #0x30]
bl func_01ff9ec0
str r0, [sp, #0x5c]
str r0, [r7, #0x1dc]
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
ldr r0, _0218430c ; =data_027e0f64
add r1, sp, #0x2c
ldr r0, [r0]
mov r2, #2
ldr r0, [r0, #8]
add r3, sp, #0x44
bl func_ov00_02089318
ldr r0, [sp, #0x2c]
str r0, [r7, #0x22c]
ldr r0, [sp, #0x30]
str r0, [r7, #0x230]
ldr r0, [sp, #0x34]
str r0, [r7, #0x234]
ldr r0, [sp, #0x44]
str r0, [r7, #0x320]
ldr r1, [sp, #0x48]
add r0, r7, #0x220
str r1, [r7, #0x324]
ldr r2, [sp, #0x4c]
add r1, r7, #0x22c
str r2, [r7, #0x328]
ldr r2, [sp, #0x50]
str r2, [r7, #0x32c]
ldr r2, [sp, #0x54]
str r2, [r7, #0x330]
ldr r2, [sp, #0x58]
str r2, [r7, #0x334]
ldr r2, [sp, #0x5c]
str r2, [r7, #0x338]
ldr r2, [sp, #0x60]
str r2, [r7, #0x33c]
ldr r2, [sp, #0x64]
str r2, [r7, #0x340]
ldr r2, [sp, #0x68]
str r2, [r7, #0x344]
ldr r2, [sp, #0x6c]
str r2, [r7, #0x348]
ldr r2, [sp, #0x70]
str r2, [r7, #0x34c]
ldr r2, [sp, #0x74]
str r2, [r7, #0x350]
ldr r2, [sp, #0x78]
str r2, [r7, #0x354]
ldr r2, [sp, #0x7c]
str r2, [r7, #0x358]
ldr r2, [sp, #0x80]
str r2, [r7, #0x35c]
ldr r2, [sp, #0x84]
str r2, [r7, #0x360]
ldr r2, [sp, #0x88]
str r2, [r7, #0x364]
ldr r2, [sp, #0x8c]
str r2, [r7, #0x368]
ldr r2, [sp, #0x90]
str r2, [r7, #0x36c]
ldr r2, [sp, #0x94]
str r2, [r7, #0x370]
ldr r2, [sp, #0x98]
str r2, [r7, #0x374]
ldr r2, [sp, #0x9c]
str r2, [r7, #0x378]
ldr r2, [sp, #0xa0]
str r2, [r7, #0x37c]
ldrb r2, [sp, #0xa4]
strb r2, [r7, #0x380]
ldrb r2, [sp, #0xa5]
strb r2, [r7, #0x381]
ldrb r2, [sp, #0xa6]
strb r2, [r7, #0x382]
ldrb r2, [sp, #0xa7]
strb r2, [r7, #0x383]
ldrb r2, [sp, #0xa8]
strb r2, [r7, #0x384]
bl func_ov00_020ce2f0
str r0, [r7, #0x1c4]
mov r1, #0
str r1, [r7, #0x1c8]
str r1, [r7, #0x1d0]
str r1, [r7, #0x1cc]
str r1, [r7, #0x1d4]
add r0, r7, #0x388
str r1, [r7, #0x1d8]
blx func_0202ab54
mov r1, #2
mov r0, #1
str r0, [r7, #0x388]
mov r4, #0
str r4, [r7, #0x390]
mov r2, r1
mov r3, r1
add r0, r7, #0x388
str r4, [sp]
blx func_0202ac0c
ldr r0, _0218431c ; =data_027e071c
add r1, r7, #0x388
bl func_0202d77c
mov r0, r4
str r0, [sp, #0x20]
ldr r0, _02184320 ; =0x000014cd
ldr r1, _02184324 ; =0x0000019a
str r0, [sp, #0x28]
str r1, [sp, #0x24]
ldrsh r1, [r7, #0x78]
add r0, sp, #0x20
bl func_ov00_020a61ac
ldr r1, [r7, #0x48]
add r0, sp, #0x20
str r1, [sp, #8]
ldr r2, [r7, #0x4c]
add r1, sp, #8
str r2, [sp, #0xc]
ldr r3, [r7, #0x50]
mov r2, r0
str r3, [sp, #0x10]
bl func_01ff9bc4
mov r1, r4
str r1, [sp]
str r1, [sp, #4]
ldr r0, _02184328 ; =data_027e0e58
ldr r1, _0218432c ; =0x00001004
ldr r0, [r0]
add r2, sp, #0x20
mov r3, #2
bl func_ov00_0207c1b0
mov r0, r4
str r0, [sp]
str r0, [sp, #4]
ldr r0, _02184328 ; =data_027e0e58
ldr r1, _02184330 ; =0x00001005
ldr r0, [r0]
add r2, sp, #0x20
mov r3, #2
bl func_ov00_0207c1b0
mov r0, r4
str r0, [sp]
str r0, [sp, #4]
ldr r0, _02184328 ; =data_027e0e58
ldr r1, _02184334 ; =0x00001006
ldr r0, [r0]
add r2, sp, #0x20
mov r3, #2
bl func_ov00_0207c1b0
mov r0, r4
str r0, [sp]
str r0, [sp, #4]
ldr r0, _02184328 ; =data_027e0e58
ldr r1, _02184338 ; =0x00001007
ldr r0, [r0]
add r2, sp, #0x20
mov r3, #2
bl func_ov00_0207c1b0
mov r0, r4
str r0, [sp]
str r0, [sp, #4]
ldr r0, _02184328 ; =data_027e0e58
ldr r1, _0218433c ; =0x00001008
ldr r0, [r0]
add r2, sp, #0x20
mov r3, #2
bl func_ov00_0207c1b0
mov r0, r4
str r0, [sp]
str r0, [sp, #4]
ldr r0, _02184328 ; =data_027e0e58
ldr r1, _02184340 ; =0x00001009
ldr r0, [r0]
add r2, sp, #0x20
mov r3, #2
bl func_ov00_0207c1b0
mov r0, r4
str r0, [sp]
str r0, [sp, #4]
ldr r0, _02184328 ; =data_027e0e58
ldr r1, _02184344 ; =0x0000100a
ldr r0, [r0]
add r2, sp, #0x20
mov r3, #2
bl func_ov00_0207c1b0
add r0, r7, #0x3ec
add r0, r0, #0x400
bl func_ov39_0217c78c
add r0, r7, #0x3ec
add r0, r0, #0x400
mov r1, r4
bl func_ov39_0217ca2c
ldr r1, [r7, #0x158]
add r0, sp, #0xac
orr r1, r1, #0x200
str r1, [r7, #0x158]
bl func_ov00_0209a508
mov r0, #1
add sp, sp, #0x15c
ldmia sp!, {r4, r5, r6, r7, pc}
.align 2, 0
arm_func_end func_ov39_02183ccc
_0218430c: .word data_027e0f64
_02184310: .word 0x000009c4
_02184314: .word data_027e0f74
_02184318: .word data_02050f54
_0218431c: .word data_027e071c
_02184320: .word 0x000014cd
_02184324: .word 0x0000019a
_02184328: .word data_027e0e58
_0218432c: .word 0x00001004
_02184330: .word 0x00001005
_02184334: .word 0x00001006
_02184338: .word 0x00001007
_0218433c: .word 0x00001008
_02184340: .word 0x00001009
_02184344: .word 0x0000100a
.global func_ov39_02184348
arm_func_start func_ov39_02184348
func_ov39_02184348: ; 0x02184348
stmdb sp!, {r3, r4, r5, lr}
sub sp, sp, #0x10
mov r5, r0
add r1, r5, #0xc
add r0, sp, #4
add r1, r1, #0x800
ldr r4, [r5, #8]
bl func_ov39_0217c700
mov ip, #0
ldr r0, _021843b8 ; =data_027e0ffc
ldr r1, _021843bc ; =0x00000323
add r2, sp, #4
mov r3, r4
str ip, [sp]
bl func_ov00_020cec60
mov r0, r5
bl func_ov39_021843c0
ldr r0, [r5, #0x7fc]
add r0, r0, #0xc
bl func_0202e58c
cmp r0, #0
addeq sp, sp, #0x10
ldmeqia sp!, {r3, r4, r5, pc}
mov r0, r5
mov r1, #0x18
bl func_ov39_0217d5d4
add sp, sp, #0x10
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov39_02184348
_021843b8: .word data_027e0ffc
_021843bc: .word 0x00000323
.global func_ov39_021843c0
arm_func_start func_ov39_021843c0
func_ov39_021843c0: ; 0x021843c0
stmdb sp!, {r3, r4, r5, r6, lr}
sub sp, sp, #0xfc
mov r6, r0
ldr r0, [r6, #0x22c]
add r5, sp, #0x94
str r0, [sp, #0x14]
ldr r0, [r6, #0x230]
add ip, r6, #0x2b8
str r0, [sp, #0x18]
ldr r0, [r6, #0x234]
mov r4, #6
str r0, [sp, #0x1c]
ldr r0, [r6, #0x4c]
ldr r2, [r6, #0x50]
ldr r1, [r6, #0x48]
add r0, r0, #0x66
add r0, r0, #0xe00
str r1, [sp, #0x20]
str r0, [sp, #0x24]
str r2, [sp, #0x28]
_02184410:
ldmia ip!, {r0, r1, r2, r3}
stmia r5!, {r0, r1, r2, r3}
subs r4, r4, #1
bne _02184410
ldmia ip, {r0, r1}
stmia r5, {r0, r1}
add r5, sp, #0x2c
add ip, r6, #0x320
mov r4, #6
_02184434:
ldmia ip!, {r0, r1, r2, r3}
stmia r5!, {r0, r1, r2, r3}
subs r4, r4, #1
bne _02184434
ldmia ip, {r0, r1}
stmia r5, {r0, r1}
ldr r0, [r6, #0x138]
rsb r0, r0, #0xd2
mov r4, r0, lsl #0xc
cmp r4, #0x1000
movle r0, #0x2000
ble _0218447c
ldr r0, [r6, #0x1d8]
mov r1, r4
rsb r0, r0, #0x2000
bl func_01ff98e0
ldr r1, [r6, #0x1d8]
add r0, r1, r0
_0218447c:
str r0, [r6, #0x1d8]
cmp r4, #0x1000
ldr r0, _0218477c ; =0x0000099a
ble _021844a4
ldr r2, [r6, #0x1d4]
mov r1, r4
sub r0, r0, r2
bl func_01ff98e0
ldr r1, [r6, #0x1d4]
add r0, r1, r0
_021844a4:
str r0, [r6, #0x1d4]
ldr r2, [sp, #0x24]
ldr r0, [r6, #0x1d8]
ldr r1, [sp, #0x18]
add r0, r2, r0
str r0, [sp, #0x24]
ldr r0, [r6, #0x1d4]
add r0, r1, r0
str r0, [sp, #0x18]
ldr r0, [r6, #0x138]
cmp r0, #0xbe
blt _02184500
cmp r4, #0x1000
movle r0, #0x2800
strle r0, [r6, #0x1c8]
ble _02184500
ldr r0, [r6, #0x1c8]
mov r1, r4
rsb r0, r0, #0x2800
bl func_01ff98e0
ldr r1, [r6, #0x1c8]
add r0, r1, r0
str r0, [r6, #0x1c8]
_02184500:
ldr r0, [r6, #0x138]
cmp r0, #0xbe
blt _02184540
mov r0, #0x2000
cmp r4, #0x1000
rsble r0, r0, #0
strle r0, [r6, #0x1cc]
ble _02184540
ldr r2, [r6, #0x1cc]
rsb r0, r0, #0
mov r1, r4
sub r0, r0, r2
bl func_01ff98e0
ldr r1, [r6, #0x1cc]
add r0, r1, r0
str r0, [r6, #0x1cc]
_02184540:
ldr r0, [sp, #0xa8]
ldr ip, [r6, #0x138]
mov r0, r0, lsl #0x10
ldr r2, [r6, #0x224]
ldr r1, [r6, #0x1c8]
ldr r3, [sp, #0x18]
add r1, r2, r1
cmp ip, #0xa0
mov r4, r0, lsr #0x10
sub r5, r3, r1
bgt _021845a8
rsb r0, ip, #0xa0
mov r1, r0, lsl #0xc
mov r0, #0x7000
cmp r1, #0x1000
rsble r0, r0, #0
strle r0, [r6, #0x1d0]
ble _021845e0
ldr r2, [r6, #0x1d0]
rsb r0, r0, #0
sub r0, r0, r2
bl func_01ff98e0
ldr r1, [r6, #0x1d0]
add r0, r1, r0
str r0, [r6, #0x1d0]
b _021845e0
_021845a8:
cmp ip, #0xbe
blt _021845e0
rsb r0, ip, #0xd2
mov r1, r0, lsl #0xc
cmp r1, #0x1000
movle r0, #0
strle r0, [r6, #0x1d0]
ble _021845e0
ldr r0, [r6, #0x1d0]
rsb r0, r0, #0
bl func_01ff98e0
ldr r1, [r6, #0x1d0]
add r0, r1, r0
str r0, [r6, #0x1d0]
_021845e0:
ldr ip, [r6, #0x1dc]
smull r1, r0, r5, r5
smull r3, r2, ip, ip
adds r3, r3, #0x800
adc r2, r2, #0
adds r1, r1, #0x800
mov r3, r3, lsr #0xc
adc r0, r0, #0
mov r1, r1, lsr #0xc
orr r3, r3, r2, lsl #20
orr r1, r1, r0, lsl #20
add r0, r3, r1
bl func_01ff9958
mov r1, r4, asr #0x4
mov r2, r1, lsl #0x1
add r1, r2, #1
ldr r4, [r6, #0x1cc]
ldr r3, _02184780 ; =data_02050f54
mov r2, r2, lsl #0x1
add r0, r4, r0
ldr r4, [r6, #0x1d0]
ldrsh r2, [r3, r2]
mov r1, r1, lsl #0x1
add r5, r4, r0
ldrsh r0, [r3, r1]
smull r1, r3, r2, r5
adds r4, r1, #0x800
smull r2, r1, r0, r5
adc r3, r3, #0
adds r2, r2, #0x800
mov r4, r4, lsr #0xc
adc r0, r1, #0
mov r1, r2, lsr #0xc
orr r1, r1, r0, lsl #20
ldr r2, [sp, #0x20]
orr r4, r4, r3, lsl #20
add r3, r2, r4
ldr r2, [sp, #0x28]
ldr ip, [r6, #0x224]
ldr r5, [r6, #0x1c8]
add r2, r2, r1
add r5, ip, r5
add r0, sp, #8
add r1, sp, #0x20
str r5, [sp, #0xc]
str r3, [sp, #8]
str r2, [sp, #0x10]
bl func_ov00_020ce2f0
ldr r3, [sp, #0xc]
ldr r2, [sp, #0x24]
mov r1, r0
sub r0, r3, r2
bl func_01ffa0f4
mov r0, r0, lsl #0x10
mov r2, r0, asr #0x10
add r0, sp, #8
add r1, sp, #0x20
str r2, [sp, #0xa4]
bl func_01ff9ec0
str r0, [sp, #0xac]
add r0, sp, #8
add r1, sp, #0x14
bl func_ov00_020ce2f0
mov r1, r0
ldr r2, [sp, #0xc]
ldr r0, [sp, #0x18]
sub r0, r2, r0
bl func_01ffa0f4
mov r0, r0, lsl #0x10
mov r0, r0, asr #0x10
str r0, [sp, #0x3c]
add r0, sp, #8
add r1, sp, #0x14
bl func_01ff9ec0
ldr r2, [sp, #0xa4]
ldr r1, [sp, #0x3c]
str r0, [sp, #0x44]
sub r0, r2, r1
mov r0, r0, asr #0x1
str r0, [sp, #0x38]
str r0, [sp, #0xa0]
mov r1, #0
str r1, [sp]
str r1, [sp, #4]
ldr r0, _02184784 ; =data_027e0f64
add r1, sp, #0x20
ldr r0, [r0]
add r3, sp, #0x94
ldr r0, [r0, #4]
mov r2, #2
bl func_ov00_02089318
mov r1, #0
str r1, [sp]
str r1, [sp, #4]
ldr r0, _02184784 ; =data_027e0f64
add r1, sp, #0x14
ldr r0, [r0]
add r3, sp, #0x2c
ldr r0, [r0, #8]
mov r2, #2
bl func_ov00_02089318
add sp, sp, #0xfc
ldmia sp!, {r3, r4, r5, r6, pc}
.align 2, 0
arm_func_end func_ov39_021843c0
_0218477c: .word 0x0000099a
_02184780: .word data_02050f54
_02184784: .word data_027e0f64
.global func_ov39_02184788
arm_func_start func_ov39_02184788
func_ov39_02184788: ; 0x02184788
stmdb sp!, {r4, lr}
sub sp, sp, #8
ldr r1, _02184808 ; =0x00000333
ldr r2, _0218480c ; =0x00001610
str r1, [sp]
ldr r1, _02184810 ; =data_027e0fec
str r2, [sp, #4]
ldr r1, [r1]
mov r4, r0
add r1, r1, #0x3000
add r0, r4, #0xac
mov r2, #0x800
ldr r1, [r1, #0x990]
mov r3, r2
add r0, r0, #0xc00
bl func_ov17_02168660
ldr r2, _02184814 ; =0x0000100e
ldr r0, [r4, #0x158]
mov r1, #2
orr r0, r0, #0x200
str r0, [r4, #0x158]
str r2, [r4, #0x28c]
str r1, [r4, #0x290]
add r0, r2, #1
str r0, [r4, #0x298]
str r1, [r4, #0x29c]
add r0, r2, #2
str r0, [r4, #0x2a4]
str r1, [r4, #0x2a8]
mov r0, #1
add sp, sp, #8
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov39_02184788
_02184808: .word 0x00000333
_0218480c: .word 0x00001610
_02184810: .word data_027e0fec
_02184814: .word 0x0000100e
.global func_ov39_02184818
arm_func_start func_ov39_02184818
func_ov39_02184818: ; 0x02184818
stmdb sp!, {r3, r4, r5, r6, r7, lr}
sub sp, sp, #0x38
mov r4, r0
ldr r1, [r4, #0x138]
cmp r1, #0x64
bgt _0218488c
add r1, r4, #0xc
add r0, sp, #0x20
add r1, r1, #0x800
ldr r6, [r4, #8]
bl func_ov39_0217c700
mov r5, #0
ldr r0, _02184a84 ; =data_027e0ffc
add r2, sp, #0x20
mov r3, r6
mov r1, #0x30c
str r5, [sp]
bl func_ov00_020cec60
mov r0, r4
bl func_ov39_0217faac
ldr r0, [r4, #0x138]
mov r1, #0x64000
mov r0, r0, lsl #0xc
rsb r0, r0, #0x64000
bl func_01ff98e0
rsb r0, r0, #0x1000
add sp, sp, #0x38
str r0, [r4, #0xcb0]
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_0218488c:
cmp r1, #0xa0
bgt _02184a48
add r1, r4, #0xc
add r0, sp, #0x14
add r1, r1, #0x800
ldr r6, [r4, #8]
bl func_ov39_0217c700
mov r5, #0
ldr r0, _02184a84 ; =data_027e0ffc
add r2, sp, #0x14
mov r3, r6
mov r1, #0x30c
str r5, [sp]
bl func_ov00_020cec60
mov r0, r4
bl func_ov39_0217faac
ldr r0, _02184a88 ; =0x0000019a
str r0, [r4, #0xcb8]
ldr r0, [r4, #0x138]
cmp r0, #0xa0
addne sp, sp, #0x38
ldmneia sp!, {r3, r4, r5, r6, r7, pc}
ldr r0, [r4, #0x4c]
ldr r2, [r4, #0x50]
ldr r1, [r4, #0x48]
add r0, r0, #0x66
add r0, r0, #0x5600
str r1, [sp, #0x2c]
str r0, [sp, #0x30]
str r2, [sp, #0x34]
mov r1, r5
str r1, [sp]
str r1, [sp, #4]
ldr r0, _02184a8c ; =data_027e0e58
ldr r1, _02184a90 ; =0x00001012
ldr r0, [r0]
add r2, sp, #0x2c
mov r3, #2
bl func_ov00_0207c1b0
mov r1, r5
str r1, [sp]
str r1, [sp, #4]
ldr r0, _02184a8c ; =data_027e0e58
ldr r1, _02184a94 ; =0x00001013
ldr r0, [r0]
add r2, sp, #0x2c
mov r3, #2
bl func_ov00_0207c1b0
mov r1, r5
str r1, [sp]
str r1, [sp, #4]
ldr r0, _02184a8c ; =data_027e0e58
ldr r1, _02184a98 ; =0x00001011
ldr r0, [r0]
add r2, sp, #0x2c
mov r3, #2
bl func_ov00_0207c1b0
mov r0, r5
str r0, [sp]
str r0, [sp, #4]
ldr r0, _02184a8c ; =data_027e0e58
ldr r1, _02184a9c ; =0x00001014
ldr r0, [r0]
add r2, sp, #0x2c
mov r3, #2
bl func_ov00_0207c1b0
mov r0, r5
str r0, [sp]
str r0, [sp, #4]
ldr r0, _02184a8c ; =data_027e0e58
ldr r1, _02184aa0 ; =0x00001015
ldr r0, [r0]
add r2, sp, #0x2c
mov r3, #2
bl func_ov00_0207c1b0
mov r0, r5
str r0, [sp]
str r0, [sp, #4]
ldr r0, _02184a8c ; =data_027e0e58
ldr r1, _02184aa4 ; =0x00001016
ldr r0, [r0]
add r2, sp, #0x2c
mov r3, #2
bl func_ov00_0207c1b0
mov r6, r5
ldr r5, _02184a8c ; =data_027e0e58
add r7, r4, #0x288
_021849e8:
ldr r0, [r5]
mov r1, r7
bl func_ov00_0207c444
add r6, r6, #1
cmp r6, #3
add r7, r7, #0xc
blt _021849e8
ldr r2, _02184aa8 ; =0x00001017
add r1, r4, #0xc
str r2, [r4, #0x28c]
mov r2, #2
add r0, sp, #8
add r1, r1, #0x800
str r2, [r4, #0x290]
bl func_ov39_0217c700
ldr r0, _02184a84 ; =data_027e0ffc
ldr r1, _02184aac ; =0x0000030d
add r2, sp, #8
mov r3, #0
bl func_ov00_020ceacc
mov r0, #0
add sp, sp, #0x38
strb r0, [r4, #0x11a]
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_02184a48:
bl func_ov39_0217fb48
ldr r0, [r4, #0x138]
cmp r0, #0xdc
addne sp, sp, #0x38
ldmneia sp!, {r3, r4, r5, r6, r7, pc}
ldr r0, _02184ab0 ; =data_027e0f74
ldr r1, [r4, #0x190]
ldr r0, [r0]
bl func_ov00_02097bcc
ldr r0, _02184ab0 ; =data_027e0f74
mov r1, #0x13
ldr r0, [r0]
bl func_ov00_02097968
add sp, sp, #0x38
ldmia sp!, {r3, r4, r5, r6, r7, pc}
.align 2, 0
arm_func_end func_ov39_02184818
_02184a84: .word data_027e0ffc
_02184a88: .word 0x0000019a
_02184a8c: .word data_027e0e58
_02184a90: .word 0x00001012
_02184a94: .word 0x00001013
_02184a98: .word 0x00001011
_02184a9c: .word 0x00001014
_02184aa0: .word 0x00001015
_02184aa4: .word 0x00001016
_02184aa8: .word 0x00001017
_02184aac: .word 0x0000030d
_02184ab0: .word data_027e0f74
.global func_ov39_02184ab4
arm_func_start func_ov39_02184ab4
func_ov39_02184ab4: ; 0x02184ab4
stmdb sp!, {r3, lr}
ldr lr, [r0]
ldr ip, [sp, #8]
sub lr, r1, lr
cmp lr, ip
bge _02184ae0
rsb ip, ip, #0
cmp lr, ip
strgt r1, [r0]
movgt r0, #1
ldmgtia sp!, {r3, pc}
_02184ae0:
smull r2, r1, lr, r2
adds r2, r2, #0x800
adc r1, r1, #0
mov r2, r2, lsr #0xc
orr r2, r2, r1, lsl #20
cmp r2, r3
movgt r2, r3
bgt _02184b0c
rsb r1, r3, #0
cmp r2, r1
movlt r2, r1
_02184b0c:
ldr r1, [r0]
add r1, r1, r2
str r1, [r0]
mov r0, #0
ldmia sp!, {r3, pc}
arm_func_end func_ov39_02184ab4
.global func_ov39_02184b20
arm_func_start func_ov39_02184b20
func_ov39_02184b20: ; 0x02184b20
stmdb sp!, {r4, lr}
mov r4, r0
ldr lr, _02184b70 ; =data_027e01b8
mov ip, r4
ldmia lr!, {r0, r1, r2, r3}
stmia ip!, {r0, r1, r2, r3}
ldmia lr!, {r0, r1, r2, r3}
stmia ip!, {r0, r1, r2, r3}
ldmia lr, {r0, r1, r2, r3}
stmia ip, {r0, r1, r2, r3}
mov r1, #0
str r1, [r4, #0x30]
str r1, [r4, #0x38]
strh r1, [r4, #0x3c]
strh r1, [r4, #0x3e]
strh r1, [r4, #0x40]
strh r1, [r4, #0x42]
mov r0, r4
strh r1, [r4, #0x44]
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov39_02184b20
_02184b70: .word data_027e01b8
.global func_ov39_02184b74
arm_func_start func_ov39_02184b74
func_ov39_02184b74: ; 0x02184b74
bx lr
arm_func_end func_ov39_02184b74
.global func_ov39_02184b78
arm_func_start func_ov39_02184b78
func_ov39_02184b78: ; 0x02184b78
ldrsh r2, [r0, #0x3c]
mov r1, #0
strh r2, [r0, #0x40]
ldrsh r2, [r0, #0x3e]
strh r2, [r0, #0x42]
strh r1, [r0, #0x44]
str r1, [r0, #0x38]
bx lr
arm_func_end func_ov39_02184b78
.global func_ov39_02184b98
arm_func_start func_ov39_02184b98
func_ov39_02184b98: ; 0x02184b98
ldrsh r1, [r0, #0x40]
strh r1, [r0, #0x3c]
ldrsh r1, [r0, #0x42]
strh r1, [r0, #0x3e]
bx lr
arm_func_end func_ov39_02184b98
.global func_ov39_02184bac
arm_func_start func_ov39_02184bac
func_ov39_02184bac: ; 0x02184bac
mov r1, #0x1000
str r1, [r0, #0x38]
bx lr
arm_func_end func_ov39_02184bac
.global func_ov39_02184bb8
arm_func_start func_ov39_02184bb8
func_ov39_02184bb8: ; 0x02184bb8
stmdb sp!, {r3, r4, r5, lr}
ldrsh r1, [r0, #0x40]
strh r1, [r0, #0x3c]
ldrsh r1, [r0, #0x42]
strh r1, [r0, #0x3e]
ldr r2, [r0, #0x38]
cmp r2, #0
ldmeqia sp!, {r3, r4, r5, pc}
ldrsh r1, [r0, #0x44]
mov lr, #0x29
ldr r4, _02184c84 ; =data_02050f54
mov r3, r1, lsl #0x12
mov r3, r3, lsr #0x10
mov r3, r3, asr #0x4
mov ip, r3, lsl #0x2
add r3, r1, r1, lsl #1
ldrsh ip, [r4, ip]
mov r3, r3, lsl #0x10
mov r3, r3, lsr #0x10
mul r5, ip, r2
mov r3, r3, asr #0x4
mov r3, r3, lsl #0x2
ldrsh r3, [r4, r3]
add r4, r5, #0x800
add r1, r1, #0x55
mul r2, r3, r2
add r1, r1, #0x1500
add r2, r2, #0x800
strh r1, [r0, #0x44]
ldr r1, _02184c88 ; =0x00000e39
mov r3, r4, asr #0xc
mul r4, r3, r1
mov r2, r2, asr #0xc
mul r1, r2, r1
add r3, r4, #0x800
add r2, r1, #0x800
ldrsh r4, [r0, #0x3c]
mov r1, r3, lsl #0x4
mov ip, r2, lsl #0x4
add r1, r4, r1, asr #16
strh r1, [r0, #0x3c]
ldrsh r1, [r0, #0x3e]
ldr r3, _02184c8c ; =0x00000266
rsb r2, lr, #0x35c
add r1, r1, ip, asr #16
strh r1, [r0, #0x3e]
add r0, r0, #0x38
mov r1, #0
str lr, [sp]
bl func_ov39_02184ab4
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov39_02184bb8
_02184c84: .word data_02050f54
_02184c88: .word 0x00000e39
_02184c8c: .word 0x00000266
.global func_ov39_02184c90
arm_func_start func_ov39_02184c90
func_ov39_02184c90: ; 0x02184c90
stmdb sp!, {r3, r4, r5, lr}
sub sp, sp, #0x48
ldr r2, [r1, #4]
ldrb r2, [r2, #0x25]
cmp r2, #2
addne sp, sp, #0x48
ldmneia sp!, {r3, r4, r5, pc}
ldr r5, [r1, #0xb4]
ldr r3, _02184d3c ; =data_02050f54
ldr r1, [r5]
bic r1, r1, #2
str r1, [r5]
ldrh r1, [r0, #0x3c]
ldrh r4, [r0, #0x3e]
add r0, sp, #0x24
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
mov r0, r4, asr #0x4
mov r1, r0, lsl #0x1
add r0, r1, #1
ldr r2, _02184d3c ; =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
add r1, r5, #0x28
add r0, sp, #0x24
mov r2, r1
bl func_0202e030
add r1, r5, #0x28
add r0, sp, #0
mov r2, r1
bl func_0202e030
add sp, sp, #0x48
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov39_02184c90
_02184d3c: .word data_02050f54
.global func_ov39_02184d40
arm_func_start func_ov39_02184d40
func_ov39_02184d40: ; 0x02184d40
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
ldr r2, [r0, #0x30]
cmp r1, r2
ldmeqia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
str r1, [r0, #0x30]
cmp r1, #3
addls pc, pc, r1, lsl #2
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
_02184d60: ; jump table
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} ; case 0
b _02184d70 ; case 1
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} ; case 2
b _02184d7c ; case 3
_02184d70:
mov r1, #0xa
str r1, [r0, #0x34]
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
_02184d7c:
ldr lr, _02184e64 ; =data_027e0764
mov ip, #0
ldr r2, [lr]
ldmib lr, {r1, r4}
umull r6, r5, r4, r2
mla r5, r4, r1, r5
ldr r1, [lr, #0xc]
ldr r4, [lr, #0x10]
mla r5, r1, r2, r5
ldr r1, [lr, #0x14]
adds r4, r4, r6
adc r5, r1, r5
str r4, [lr]
mov r2, #0x2e
umull r1, r4, r5, r2
mla r4, r5, ip, r4
mov r1, ip
mla r4, r1, r2, r4
str r5, [lr, #4]
add r2, r4, #0x2d
str r2, [r0, #0x34]
ldr r4, [lr]
ldmib lr, {r2, r5}
umull r7, r6, r5, r4
mla r6, r5, r2, r6
ldr r2, [lr, #0xc]
ldr r5, [lr, #0x10]
mla r6, r2, r4, r6
ldr r3, _02184e68 ; =0x00002aab
ldr r4, [lr, #0x14]
adds r5, r5, r7
adc r6, r4, r6
str r5, [lr]
umull r4, r5, r6, r3
mla r5, r6, ip, r5
mla r5, r1, r3, r5
sub r2, r3, #0x4000
str r6, [lr, #4]
add r2, r5, r2
strh r2, [r0, #0x40]
ldr r5, [lr]
ldmib lr, {r4, r7}
umull sb, r8, r7, r5
mla r8, r7, r4, r8
ldr r6, [lr, #0xc]
ldr fp, [lr, #0x10]
mla r8, r6, r5, r8
ldr sl, [lr, #0x14]
adds r4, fp, sb
adc r5, sl, r8
stmia lr, {r4, r5}
umull lr, r4, r5, r3
mla r4, r5, ip, r4
mla r4, r1, r3, r4
sub r2, r3, #0x4000
add r1, r4, r2
strh r1, [r0, #0x42]
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
arm_func_end func_ov39_02184d40
_02184e64: .word data_027e0764
_02184e68: .word 0x00002aab
.global func_ov39_02184e6c
arm_func_start func_ov39_02184e6c
func_ov39_02184e6c: ; 0x02184e6c
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x30
mov r4, r0
ldr r0, [r4, #0x30]
ldrsh r1, [r4, #0x3c]
ldrsh r5, [r4, #0x3e]
cmp r0, #3
addls pc, pc, r0, lsl #2
b _021850c4
_02184e90: ; jump table
b _02184ea0 ; case 0
b _02184eac ; case 1
b _02184ec8 ; case 2
b _02184fc8 ; case 3
_02184ea0:
ldr r1, _021850e8 ; =0xffffce39
mov r5, #0
b _021850c4
_02184eac:
ldr r0, [r4, #0x34]
cmp r0, #0
moveq r1, #0
subne r0, r0, #1
moveq r5, r1
strne r0, [r4, #0x34]
b _021850c4
_02184ec8:
ldr r0, _021850ec ; =data_ov39_02186cc0
add r3, sp, #0x24
ldr r5, [r0, #0x2c]
ldr r0, [r5, #0x280]
add r0, r0, #0x48
ldmia r0, {r0, r1, r2}
stmia r3, {r0, r1, r2}
ldr r2, [sp, #0x24]
ldr r0, [sp, #0x2c]
ldr r1, [sp, #0x28]
str r0, [sp, #0x14]
str r2, [sp, #0xc]
str r1, [sp, #0x10]
ldr r1, [r5, #0x48]
add r0, sp, #0xc
str r1, [sp]
ldr r2, [r5, #0x4c]
add r1, sp, #0
str r2, [sp, #4]
ldr r3, [r5, #0x50]
add r2, sp, #0x18
str r3, [sp, #8]
bl func_01ff9bf8
ldr r1, _021850ec ; =data_ov39_02186cc0
add r0, sp, #0x18
ldr r1, [r1, #0x2c]
ldrsh r1, [r1, #0x78]
rsb r1, r1, #0
mov r1, r1, lsl #0x10
mov r1, r1, asr #0x10
bl func_ov00_020a61ac
ldr r0, [sp, #0x1c]
ldr r1, [sp, #0x18]
sub r0, r0, #0xcd
sub r0, r0, #0x1400
cmp r1, #0x1000
str r0, [sp, #0x1c]
movgt r1, #0x1000
bgt _02184f74
mov r0, #0x1000
rsb r0, r0, #0
cmp r1, r0
movlt r1, r0
_02184f74:
ldr r5, [sp, #0x1c]
str r1, [sp, #0x18]
cmp r5, #0x1000
movgt r5, #0x1000
bgt _02184f98
mov r0, #0x1000
rsb r0, r0, #0
cmp r5, r0
movlt r5, r0
_02184f98:
ldr r1, [sp, #0x18]
ldr r0, _021850f0 ; =0x00001555
rsb r2, r5, #0
rsb r1, r1, #0
mul r3, r2, r0
mul r2, r1, r0
mov r0, r3, lsl #0x4
mov r2, r2, lsl #0x4
str r5, [sp, #0x1c]
mov r1, r0, asr #0x10
mov r5, r2, asr #0x10
b _021850c4
_02184fc8:
ldr r0, [r4, #0x34]
cmp r0, #0
subgt r0, r0, #1
strgt r0, [r4, #0x34]
bgt _021850bc
ldr r2, _021850f4 ; =data_027e0764
mov fp, #0
ldr r3, [r2]
ldmib r2, {r1, r5}
umull r7, r6, r5, r3
mla r6, r5, r1, r6
ldr r1, [r2, #0xc]
ldr r5, [r2, #0x10]
mla r6, r1, r3, r6
ldr r1, [r2, #0x14]
adds r3, r5, r7
adc r6, r1, r6
str r3, [r2]
mov r1, #0x2e
umull r3, r5, r6, r1
mla r5, r6, fp, r5
mov sl, fp
mla r5, sl, r1, r5
str r6, [r2, #4]
add r1, r5, #0x2d
str r1, [r4, #0x34]
ldr r3, [r2]
ldmib r2, {r1, r5}
umull r7, r6, r5, r3
mla r6, r5, r1, r6
ldr r1, [r2, #0xc]
ldr r5, [r2, #0x10]
mla r6, r1, r3, r6
ldr r0, _021850f8 ; =0x00002aab
ldr r3, [r2, #0x14]
adds r5, r5, r7
adc r6, r3, r6
str r5, [r2]
umull r3, r5, r6, r0
mla r5, r6, fp, r5
mla r5, sl, r0, r5
sub r1, r0, #0x4000
str r6, [r2, #4]
add r1, r5, r1
strh r1, [r4, #0x40]
ldr ip, [r2]
ldmib r2, {r3, r5, lr}
umull r7, r6, r5, ip
mla r6, r5, r3, r6
ldr sb, [r2, #0x10]
mla r6, lr, ip, r6
ldr r8, [r2, #0x14]
adds r3, sb, r7
adc r5, r8, r6
stmia r2, {r3, r5}
umull r2, r3, r5, r0
mla r3, r5, fp, r3
mla r3, sl, r0, r3
sub r1, r0, #0x4000
add r0, r3, r1
strh r0, [r4, #0x42]
_021850bc:
ldrsh r1, [r4, #0x40]
ldrsh r5, [r4, #0x42]
_021850c4:
ldr r2, _021850fc ; =0x0000071c
add r0, r4, #0x3c
bl func_0202b154
ldr r2, _021850fc ; =0x0000071c
mov r1, r5
add r0, r4, #0x3e
bl func_0202b154
add sp, sp, #0x30
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
arm_func_end func_ov39_02184e6c
_021850e8: .word 0xffffce39
_021850ec: .word data_ov39_02186cc0
_021850f0: .word 0x00001555
_021850f4: .word data_027e0764
_021850f8: .word 0x00002aab
_021850fc: .word 0x0000071c
.global func_ov39_02185100
arm_func_start func_ov39_02185100
func_ov39_02185100: ; 0x02185100
stmdb sp!, {r4, lr}
mov r4, r0
blx func_ov00_020a95ec
mov r0, r4
bl func_0202ea0c
mov r0, r4
ldmia sp!, {r4, pc}
arm_func_end func_ov39_02185100
.global func_ov39_0218511c
arm_func_start func_ov39_0218511c
func_ov39_0218511c: ; 0x0218511c
bx lr
arm_func_end func_ov39_0218511c
.global func_ov39_02185120
arm_func_start func_ov39_02185120
func_ov39_02185120: ; 0x02185120
stmdb sp!, {r3, lr}
ldr r3, _0218518c ; =data_ov39_02186cf0
mov r2, #0
strh r2, [r3, #0xc]
ldr lr, [r1]
ldr r2, _02185190 ; =data_ov39_02186c14
str lr, [r3]
ldr ip, [r1, #4]
str ip, [r3, #4]
ldr r1, [r1, #8]
str r1, [r3, #8]
str lr, [r0, #0x158]
ldr r1, [r3, #4]
str r1, [r0, #0x15c]
ldr r1, [r3, #8]
str r1, [r0, #0x160]
ldr r1, [r0, #0x158]
str r1, [r0, #0x48]
ldr r1, [r0, #0x15c]
str r1, [r0, #0x4c]
ldr r1, [r0, #0x160]
str r1, [r0, #0x50]
ldr r3, [r2]
ldr r1, [r2, #4]
str r3, [r0, #0x3b8]
str r1, [r0, #0x3bc]
ldmia sp!, {r3, pc}
.align 2, 0
arm_func_end func_ov39_02185120
_0218518c: .word data_ov39_02186cf0
_02185190: .word data_ov39_02186c14
.global func_ov39_02185194
arm_func_start func_ov39_02185194
func_ov39_02185194: ; 0x02185194
stmdb sp!, {r4, lr}
ldr r1, _02185200 ; =data_ov39_02186cf0
mov r4, r0
ldrsh r1, [r1, #0xc]
cmp r1, #0
beq _021851b4
cmp r1, #1
b _021851d4
_021851b4:
ldr r1, _02185204 ; =data_ov39_02186cf0
bl func_ov00_020c288c
cmp r0, #0x20
movle r2, #0xcd
ldr r1, _02185204 ; =data_ov39_02186cf0
movgt r2, #0x5000
add r0, r4, #0x48
bl func_0202b2e8
_021851d4:
mov r0, #0x10000
ldr r1, [r4, #0x23c]
rsb r0, r0, #0
and r0, r1, r0
cmp r0, #0x1000000
ldmeqia sp!, {r4, pc}
add r0, r4, #0x224
ldr r1, [r0]
ldr r1, [r1, #0x10]
blx r1
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov39_02185194
_02185200: .word data_ov39_02186cf0
_02185204: .word data_ov39_02186cf0
.global func_ov39_02185208
arm_func_start func_ov39_02185208
func_ov39_02185208: ; 0x02185208
stmdb sp!, {r3, lr}
ldr r2, _0218527c ; =data_ov39_02186c14
ldr ip, [r0, #0x3b8]
ldr r2, [r2, #8]
mov lr, #1
cmp ip, r2
ldr r2, _02185280 ; =data_ov39_02186c1c
bne _0218523c
ldr r3, [r0, #0x3bc]
ldr r2, [r2, #4]
cmp r3, r2
cmpne ip, #0
moveq lr, #0
_0218523c:
cmp lr, #0
ldmneia sp!, {r3, pc}
ldr r3, [r1]
ldr r2, _02185284 ; =data_ov39_02186cf0
str r3, [r0, #0x158]
ldr r3, [r1, #4]
str r3, [r0, #0x15c]
ldr r1, [r1, #8]
str r1, [r0, #0x160]
ldr r1, [r0, #0x158]
str r1, [r2]
ldr r1, [r0, #0x15c]
str r1, [r2, #4]
ldr r0, [r0, #0x160]
str r0, [r2, #8]
ldmia sp!, {r3, pc}
.align 2, 0
arm_func_end func_ov39_02185208
_0218527c: .word data_ov39_02186c14
_02185280: .word data_ov39_02186c1c
_02185284: .word data_ov39_02186cf0
.global func_ov39_02185288
arm_func_start func_ov39_02185288
func_ov39_02185288: ; 0x02185288
stmdb sp!, {r3, lr}
ldr r2, _02185318 ; =data_ov39_02186c14
ldr ip, [r0, #0x3b8]
ldr r2, [r2, #0x10]
mov lr, #1
cmp ip, r2
ldr r2, _0218531c ; =data_ov39_02186c24
bne _021852bc
ldr r3, [r0, #0x3bc]
ldr r2, [r2, #4]
cmp r3, r2
cmpne ip, #0
moveq lr, #0
_021852bc:
cmp lr, #0
ldmneia sp!, {r3, pc}
ldr r2, _02185320 ; =data_ov39_02186cf0
mov r3, #1
strh r3, [r2, #0xc]
ldr r3, [r1]
str r3, [r0, #0x158]
ldr r3, [r1, #4]
str r3, [r0, #0x15c]
ldr r1, [r1, #8]
str r1, [r0, #0x160]
ldr r3, [r0, #0x158]
str r3, [r2]
ldr r1, [r0, #0x15c]
str r1, [r2, #4]
ldr r1, [r0, #0x160]
str r1, [r2, #8]
str r3, [r0, #0x48]
ldr r1, [r2, #4]
str r1, [r0, #0x4c]
ldr r1, [r2, #8]
str r1, [r0, #0x50]
ldmia sp!, {r3, pc}
.align 2, 0
arm_func_end func_ov39_02185288
_02185318: .word data_ov39_02186c14
_0218531c: .word data_ov39_02186c24
_02185320: .word data_ov39_02186cf0
.global func_ov39_02185324
arm_func_start func_ov39_02185324
func_ov39_02185324: ; 0x02185324
stmdb sp!, {r4, lr}
sub sp, sp, #0x18
mov r4, r0
cmp r1, #0
beq _02185374
add r3, r4, #0x218
add r2, r4, #0x220
cmp r3, r2
addeq sp, sp, #0x18
ldmeqia sp!, {r4, pc}
_0218534c:
ldr r1, [r3]
add r3, r3, #4
cmp r1, #0
ldrne r0, [r1, #0x24]
orrne r0, r0, #8
strne r0, [r1, #0x24]
cmp r3, r2
bne _0218534c
add sp, sp, #0x18
ldmia sp!, {r4, pc}
_02185374:
ldr r1, [r0]
ldr r1, [r1, #0xd0]
blx r1
mov r0, r4
ldr r1, [r0]
ldr r1, [r1, #0xd4]
blx r1
add r0, r4, #0x48
add r1, r4, #0x60
mov r2, r0
bl func_01ff9bc4
mov r0, r4
bl func_ov00_020c2bf4
mov r0, r4
ldr r1, [r0]
ldr r1, [r1, #0xe0]
blx r1
mov r0, r4
ldr r1, [r0]
ldr r1, [r1, #0xd8]
blx r1
add r0, r4, #0x48
ldmia r0, {r0, r1, r2}
add r3, sp, #0xc
stmia r3, {r0, r1, r2}
add lr, r4, #0x54
add ip, sp, #0
ldmia lr, {r0, r1, r2}
stmia ip, {r0, r1, r2}
ldr r3, [sp, #0x10]
ldr r1, [sp, #4]
add r0, r3, #0x33
add r0, r0, #0x300
add r1, r1, #0x33
str r0, [sp, #0x10]
add r1, r1, #0x300
add r0, r4, #0x60
str r1, [sp, #4]
bl func_01ff9cec
add r1, r4, #0x200
ldrsh r3, [r1, #0x20]
mov r1, #0x3000
ldr r2, _021855c0 ; =0x55555556
smulbb r1, r3, r1
mov r3, r1, lsr #0x1
smull r1, ip, r2, r3
add ip, ip, r3, lsr #31
sub r1, r0, ip
ldr r0, [r4, #0x218]
cmp r0, #0
beq _02185488
ldr r2, [r0, #0x20]
ldr r3, [sp, #0xc]
ldr r2, [r2]
ldr r2, [r2, #4]
add r2, r3, r2
str r2, [r0, #0x28]
ldr r2, [r0, #0x20]
ldr r3, [sp, #0x10]
ldr r2, [r2]
ldr r2, [r2, #8]
add r2, r3, r2
str r2, [r0, #0x2c]
ldr r2, [r0, #0x20]
ldr r3, [sp, #0x14]
ldr r2, [r2]
ldr r2, [r2, #0xc]
add r2, r3, r2
str r2, [r0, #0x30]
_02185488:
ldr r3, [r4, #0x218]
cmp r3, #0
beq _021854c0
cmp r1, #0
movge r0, #1
movlt r0, #0
cmp r0, #0
moveq r0, #1
ldr r2, [r3, #0x24]
movne r0, #0
mov r0, r0, lsl #0x1f
bic r2, r2, #2
orr r0, r2, r0, lsr #30
str r0, [r3, #0x24]
_021854c0:
cmp r1, #0x1800
blt _02185548
add r0, sp, #0xc
add r1, sp, #0
mov r2, #0x2000
bl func_0202b308
ldr r0, [r4, #0x21c]
cmp r0, #0
beq _0218552c
ldr r1, [r0, #0x20]
ldr r2, [sp, #0xc]
ldr r1, [r1]
ldr r1, [r1, #4]
add r1, r2, r1
str r1, [r0, #0x28]
ldr r1, [r0, #0x20]
ldr r2, [sp, #0x10]
ldr r1, [r1]
ldr r1, [r1, #8]
add r1, r2, r1
str r1, [r0, #0x2c]
ldr r1, [r0, #0x20]
ldr r2, [sp, #0x14]
ldr r1, [r1]
ldr r1, [r1, #0xc]
add r1, r2, r1
str r1, [r0, #0x30]
_0218552c:
ldr r1, [r4, #0x21c]
cmp r1, #0
beq _0218555c
ldr r0, [r1, #0x24]
bic r0, r0, #2
str r0, [r1, #0x24]
b _0218555c
_02185548:
ldr r1, [r4, #0x21c]
cmp r1, #0
ldrne r0, [r1, #0x24]
orrne r0, r0, #2
strne r0, [r1, #0x24]
_0218555c:
add r3, r4, #0x200
ldrsh r0, [r3, #0x20]
ldr r1, _021855c0 ; =0x55555556
mov r2, #3
add ip, r0, #1
smull r0, lr, r1, ip
add lr, lr, ip, lsr #31
smull r0, r1, r2, lr
sub lr, ip, r0
add ip, r4, #0x218
add r2, r4, #0x220
cmp ip, r2
strh lr, [r3, #0x20]
addeq sp, sp, #0x18
ldmeqia sp!, {r4, pc}
_02185598:
ldr r1, [ip]
add ip, ip, #4
cmp r1, #0
ldrne r0, [r1, #0x24]
bicne r0, r0, #8
strne r0, [r1, #0x24]
cmp ip, r2
bne _02185598
add sp, sp, #0x18
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov39_02185324
_021855c0: .word 0x55555556
.global func_ov39_021855c4
arm_func_start func_ov39_021855c4
func_ov39_021855c4: ; 0x021855c4
stmdb sp!, {r4, lr}
mov r1, #0
mov r4, r0
blx func_ov00_020a956c
ldr r1, _0218560c ; =data_ov39_02186c74
mvn r0, #0
str r1, [r4]
str r0, [r4, #0xc8]
str r0, [r4, #0xcc]
str r0, [r4, #0xd0]
str r0, [r4, #0xd4]
mov r1, #0
strb r1, [r4, #0xd8]
str r1, [r4, #0x5c]
str r1, [r4, #0x60]
mov r0, r4
str r1, [r4, #0x64]
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov39_021855c4
_0218560c: .word data_ov39_02186c74
.global func_ov39_02185610
arm_func_start func_ov39_02185610
func_ov39_02185610: ; 0x02185610
stmdb sp!, {r3, r4, r5, lr}
mov r5, r0
ldr r2, [r5, #0xcc]
mvn r0, #0
mov r4, r1
cmp r2, r0
bne _0218565c
ldr r0, [r4, #4]
ldr r1, _021856ac ; =data_ov39_02186918
ldr r0, [r0, #4]
add r0, r0, #0x40
bl func_0201e388
str r0, [r5, #0xcc]
ldr r0, [r4, #4]
ldr r1, _021856b0 ; =data_ov39_0218692c
ldr r0, [r0, #4]
add r0, r0, #0x40
bl func_0201e388
str r0, [r5, #0xc8]
_0218565c:
ldr r0, [r4, #8]
tst r0, #0x10
ldrneb r1, [r4, #0xae]
ldr r0, [r5, #0xcc]
mvneq r1, #0
cmp r0, r1
ldmneia sp!, {r3, r4, r5, pc}
add r0, r5, #0x68
mov r1, #0
bl func_0201b1bc
bl func_02018450
mov ip, r0
add r4, r5, #0x98
ldmia ip!, {r0, r1, r2, r3}
stmia r4!, {r0, r1, r2, r3}
ldmia ip!, {r0, r1, r2, r3}
stmia r4!, {r0, r1, r2, r3}
ldmia ip, {r0, r1, r2, r3}
stmia r4, {r0, r1, r2, r3}
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov39_02185610
_021856ac: .word data_ov39_02186918
_021856b0: .word data_ov39_0218692c
.global func_ov39_021856b4
arm_func_start func_ov39_021856b4
func_ov39_021856b4: ; 0x021856b4
stmdb sp!, {r3, r4, r5, lr}
mov r5, r0
ldr r2, [r5, #0xd0]
mvn r0, #0
mov r4, r1
cmp r2, r0
bne _02185710
ldr r0, [r4, #4]
ldr r1, _02185774 ; =data_ov39_02186940
ldr r2, [r0, #4]
ldr r0, [r2, #8]
add r0, r2, r0
add r0, r0, #4
bl func_0201e388
str r0, [r5, #0xd0]
ldr r0, [r4, #4]
ldr r1, _02185778 ; =data_ov39_02186954
ldr r2, [r0, #4]
ldr r0, [r2, #8]
add r0, r2, r0
add r0, r0, #4
bl func_0201e388
str r0, [r5, #0xd4]
_02185710:
ldr r0, [r4, #8]
tst r0, #8
ldrneb r1, [r4, #0xad]
ldr r0, [r5, #0xd0]
mvneq r1, #0
cmp r1, r0
ldrne r0, [r5, #0xd4]
cmpne r1, r0
ldmneia sp!, {r3, r4, r5, pc}
ldr r0, [r4, #4]
ldr r0, [r0, #0x2c]
ldr r0, [r0, #0x158]
tst r0, #0x80
movne r0, #1
moveq r0, #0
cmp r0, #0
moveq r0, #1
movne r0, #0
cmp r0, #0
ldmeqia sp!, {r3, r4, r5, pc}
ldr r1, [r4, #0xb0]
ldr r0, [r1, #0xc]
bic r0, r0, #0x1f0000
str r0, [r1, #0xc]
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov39_021856b4
_02185774: .word data_ov39_02186940
_02185778: .word data_ov39_02186954
.global func_ov39_0218577c
arm_func_start func_ov39_0218577c
func_ov39_0218577c: ; 0x0218577c
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #0x60
mov r6, r0
mov r5, r2
mov r4, r1
add r2, sp, #0x30
add r0, r6, #0x68
add r1, r6, #0x98
bl func_01ff8e84
cmp r5, #0
beq _021857bc
cmp r5, #1
beq _021857f8
cmp r5, #2
beq _02185814
b _0218582c
_021857bc:
ldrb r0, [r6, #0xd8]
cmp r0, #0
beq _021857e0
ldr r2, [sp, #0x5c]
ldr r1, [sp, #0x58]
ldr r0, [sp, #0x54]
add sp, sp, #0x60
stmia r4, {r0, r1, r2}
ldmia sp!, {r4, r5, r6, pc}
_021857e0:
mov r0, #0
mov r1, #0x800
str r1, [sp, #0x24]
str r0, [sp, #0x28]
str r0, [sp, #0x2c]
b _0218582c
_021857f8:
ldr r0, _02185880 ; =0x00000333
mov r2, #0x800
mov r1, #0
str r2, [sp, #0x24]
str r1, [sp, #0x28]
str r0, [sp, #0x2c]
b _0218582c
_02185814:
ldr r0, _02185884 ; =0xfffffccd
mov r2, #0x800
mov r1, #0
str r2, [sp, #0x24]
str r1, [sp, #0x28]
str r0, [sp, #0x2c]
_0218582c:
add r0, sp, #0x30
add r1, sp, #0
bl func_020079d8
add r0, sp, #0x24
add r1, sp, #0
mov r2, r0
bl func_01ff88b0
ldr r1, [sp, #0x24]
ldr r0, [sp, #0x54]
ldr lr, [sp, #0x2c]
ldr ip, [sp, #0x5c]
ldr r3, [sp, #0x28]
ldr r2, [sp, #0x58]
add r0, r1, r0
str r0, [r4]
add r0, r3, r2
str r0, [r4, #4]
add r0, lr, ip
str r0, [r4, #8]
add sp, sp, #0x60
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
arm_func_end func_ov39_0218577c
_02185880: .word 0x00000333
_02185884: .word 0xfffffccd
.global func_ov39_02185888
arm_func_start func_ov39_02185888
func_ov39_02185888: ; 0x02185888
stmdb sp!, {r4, lr}
ldr r2, _021858b8 ; =data_ov39_021867b0
mov r4, r0
mov r1, #0x5d
bl func_ov00_020c5c98
mov r0, r4
mov r1, #2
bl func_ov00_020c5d74
ldr r0, [r4, #0x10]
mov r1, #0x1000
str r1, [r0, #0x10]
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov39_02185888
_021858b8: .word data_ov39_021867b0
.global func_ov39_021858bc
arm_func_start func_ov39_021858bc
func_ov39_021858bc: ; 0x021858bc
stmdb sp!, {r3, r4, r5, lr}
sub sp, sp, #0x70
mov r4, r0
add lr, sp, #0x40
add r5, r4, #0x80
mov ip, lr
ldmia r5!, {r0, r1, r2, r3}
stmia lr!, {r0, r1, r2, r3}
ldmia r5!, {r0, r1, r2, r3}
stmia lr!, {r0, r1, r2, r3}
ldmia r5, {r0, r1, r2, r3}
stmia lr, {r0, r1, r2, r3}
mov r0, #0
str r0, [sp]
ldr r2, _02185994 ; =0x00000785
ldr r3, _02185998 ; =0xfffff63d
mov r0, ip
mov r1, ip
bl func_01ff8988
ldr r0, [sp, #0x5c]
ldr r1, [sp, #0x58]
str r0, [sp, #0x14]
ldr r0, [sp, #0x40]
str r1, [sp, #0x10]
ldr r1, [sp, #0x60]
str r0, [sp, #0x1c]
ldr r0, [sp, #0x48]
str r1, [sp, #0x18]
ldr r1, [sp, #0x44]
str r0, [sp, #0x24]
ldr r0, [sp, #0x50]
str r1, [sp, #0x20]
ldr r1, [sp, #0x4c]
str r0, [sp, #0x2c]
ldr r0, [sp, #0x64]
str r1, [sp, #0x28]
ldr r1, [sp, #0x54]
str r0, [sp, #0x34]
ldr r0, [sp, #0x6c]
str r1, [sp, #0x30]
ldr r1, [sp, #0x68]
str r0, [sp, #0x3c]
str r1, [sp, #0x38]
ldr r1, [r4, #0x370]
add r0, r4, #0x218
str r1, [sp, #0xc]
mov r1, #0x1000
str r1, [sp, #4]
str r1, [sp, #8]
add r1, sp, #4
add r2, sp, #0x10
bl func_ov00_020c604c
add sp, sp, #0x70
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov39_021858bc
_02185994: .word 0x00000785
_02185998: .word 0xfffff63d
.global func_ov39_0218599c
arm_func_start func_ov39_0218599c
func_ov39_0218599c: ; 0x0218599c
stmdb sp!, {r3, r4, r5, lr}
ldr r2, _021859e4 ; =data_ov39_02186864
mov r4, r1
add r3, r2, r4, lsl #3
ldr r1, [r3, #4]
mov r5, r0
tst r1, #1
add r0, r5, r1, asr #1
ldreq r1, [r3]
beq _021859d0
ldr r2, [r0]
ldr r1, [r3]
ldr r1, [r2, r1]
_021859d0:
blx r1
str r4, [r5, #0xca0]
mov r0, #0
str r0, [r5, #0xca4]
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov39_0218599c
_021859e4: .word data_ov39_02186864
.global func_ov39_021859e8
arm_func_start func_ov39_021859e8
func_ov39_021859e8: ; 0x021859e8
ldr r0, [r0, #0xca0]
cmp r0, #4
moveq r0, #1
movne r0, #0
bx lr
arm_func_end func_ov39_021859e8
.global func_ov39_021859fc
arm_func_start func_ov39_021859fc
func_ov39_021859fc: ; 0x021859fc
stmdb sp!, {r3, lr}
ldr r1, [r0, #0xca0]
cmp r1, #0
movne r0, #0
ldmneia sp!, {r3, pc}
mov r1, #1
bl func_ov39_0218599c
mov r0, #1
ldmia sp!, {r3, pc}
arm_func_end func_ov39_021859fc
.global func_ov39_02185a20
arm_func_start func_ov39_02185a20
func_ov39_02185a20: ; 0x02185a20
stmdb sp!, {r3, lr}
ldr r1, [r0, #0xca0]
cmp r1, #2
movne r0, #0
ldmneia sp!, {r3, pc}
mov r1, #4
bl func_ov39_0218599c
mov r0, #1
ldmia sp!, {r3, pc}
arm_func_end func_ov39_02185a20
.global func_ov39_02185a44
arm_func_start func_ov39_02185a44
func_ov39_02185a44: ; 0x02185a44
stmdb sp!, {r3, lr}
ldr r1, [r0, #0xca0]
sub r1, r1, #1
cmp r1, #1
movhi r0, #0
ldmhiia sp!, {r3, pc}
mov r1, #3
bl func_ov39_0218599c
mov r0, #1
ldmia sp!, {r3, pc}
arm_func_end func_ov39_02185a44
.global func_ov39_02185a6c
arm_func_start func_ov39_02185a6c
func_ov39_02185a6c: ; 0x02185a6c
stmdb sp!, {r3, lr}
ldr r1, [r0, #0xca0]
cmp r1, #0
movne r0, #0
ldmneia sp!, {r3, pc}
mov r1, #6
bl func_ov39_0218599c
mov r0, #1
ldmia sp!, {r3, pc}
arm_func_end func_ov39_02185a6c
.global func_ov39_02185a90
arm_func_start func_ov39_02185a90
func_ov39_02185a90: ; 0x02185a90
ldr r0, [r0, #0xca0]
cmp r0, #6
movne r0, #1
moveq r0, #0
bx lr
arm_func_end func_ov39_02185a90
.global func_ov39_02185aa4
arm_func_start func_ov39_02185aa4
func_ov39_02185aa4: ; 0x02185aa4
stmdb sp!, {r3, lr}
ldr r1, [r0, #0xca0]
ldr r2, _02185adc ; =data_ov39_021868bc
add r3, r2, r1, lsl #3
ldr r1, [r3, #4]
tst r1, #1
add r0, r0, r1, asr #1
ldreq r1, [r3]
beq _02185ad4
ldr r2, [r0]
ldr r1, [r3]
ldr r1, [r2, r1]
_02185ad4:
blx r1
ldmia sp!, {r3, pc}
.align 2, 0
arm_func_end func_ov39_02185aa4
_02185adc: .word data_ov39_021868bc
.global func_ov39_02185ae0
arm_func_start func_ov39_02185ae0
func_ov39_02185ae0: ; 0x02185ae0
ldr ip, _02185af0 ; =func_ov39_021858bc
add r0, r0, #0x3ec
add r0, r0, #0x400
bx ip
.align 2, 0
arm_func_end func_ov39_02185ae0
_02185af0: .word func_ov39_021858bc
.global func_ov39_02185af4
arm_func_start func_ov39_02185af4
func_ov39_02185af4: ; 0x02185af4
ldr ip, _02185b08 ; =func_ov00_020c5d74
add r0, r0, #0x204
add r0, r0, #0x800
mov r1, #2
bx ip
.align 2, 0
arm_func_end func_ov39_02185af4
_02185b08: .word func_ov00_020c5d74
.global func_ov39_02185b0c
arm_func_start func_ov39_02185b0c
func_ov39_02185b0c: ; 0x02185b0c
bx lr
arm_func_end func_ov39_02185b0c
.global func_ov39_02185b10
arm_func_start func_ov39_02185b10
func_ov39_02185b10: ; 0x02185b10
stmdb sp!, {r4, lr}
ldr r1, _02185b84 ; =data_027e0764
mov r4, r0
ldr r2, [r1]
ldmib r1, {r0, r3}
umull lr, ip, r3, r2
mla ip, r3, r0, ip
ldr r0, [r1, #0xc]
ldr r3, [r1, #0x10]
mla ip, r0, r2, ip
ldr r0, [r1, #0x14]
adds r2, r3, lr
adc r0, r0, ip
str r2, [r1]
str r0, [r1, #4]
tst r0, #0x80000000
add r0, r4, #0x204
add r0, r0, #0x800
beq _02185b70
mov r1, #0
bl func_ov00_020c5d74
mov r0, #1
strb r0, [r4, #0xca8]
ldmia sp!, {r4, pc}
_02185b70:
mov r1, #1
bl func_ov00_020c5d74
mov r0, #0
strb r0, [r4, #0xca8]
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov39_02185b10
_02185b84: .word data_027e0764
.global func_ov39_02185b88
arm_func_start func_ov39_02185b88
func_ov39_02185b88: ; 0x02185b88
stmdb sp!, {r4, lr}
mov r4, r0
ldr r0, [r4, #0xa14]
mov r1, #0xf000
add r0, r0, #0xc
bl func_0202e310
cmp r0, #0
ldmeqia sp!, {r4, pc}
ldr r0, [r4, #0xa14]
mov r1, #0xf000
str r1, [r0, #0x14]
ldr r2, [r4, #0xa14]
mov r3, #0
mov r0, r4
mov r1, #2
str r3, [r2, #0x10]
bl func_ov39_0218599c
ldmia sp!, {r4, pc}
arm_func_end func_ov39_02185b88
.global func_ov39_02185bd0
arm_func_start func_ov39_02185bd0
func_ov39_02185bd0: ; 0x02185bd0
bx lr
arm_func_end func_ov39_02185bd0
.global func_ov39_02185bd4
arm_func_start func_ov39_02185bd4
func_ov39_02185bd4: ; 0x02185bd4
bx lr
arm_func_end func_ov39_02185bd4
.global func_ov39_02185bd8
arm_func_start func_ov39_02185bd8
func_ov39_02185bd8: ; 0x02185bd8
mov r1, #0x1000
ldr r0, [r0, #0xa14]
rsb r1, r1, #0
str r1, [r0, #0x10]
bx lr
arm_func_end func_ov39_02185bd8
.global func_ov39_02185bec
arm_func_start func_ov39_02185bec
func_ov39_02185bec: ; 0x02185bec
stmdb sp!, {r4, lr}
mov r4, r0
ldr r0, [r4, #0xa14]
mov r1, #0
add r0, r0, #0xc
bl func_0202e310
cmp r0, #0
ldmeqia sp!, {r4, pc}
mov r0, r4
mov r1, #0
bl func_ov39_0218599c
ldmia sp!, {r4, pc}
arm_func_end func_ov39_02185bec
.global func_ov39_02185c1c
arm_func_start func_ov39_02185c1c
func_ov39_02185c1c: ; 0x02185c1c
ldr r1, [r0, #0xa14]
mov r2, #0x1000
str r2, [r1, #0x10]
ldr r1, [r0, #0x158]
bic r1, r1, #0x1000
orr r1, r1, #0x800000
str r1, [r0, #0x158]
bx lr
arm_func_end func_ov39_02185c1c
.global func_ov39_02185c3c
arm_func_start func_ov39_02185c3c
func_ov39_02185c3c: ; 0x02185c3c
stmdb sp!, {r3, r4, r5, lr}
sub sp, sp, #0x38
mov r5, r0
ldr r1, [r5, #0x158]
tst r1, #0x1000
ldreqb r0, [r5, #0xc9c]
cmpeq r0, #0
bne _02185d8c
tst r1, #0x20
bne _02185d8c
add r0, sp, #0x10
mov r1, r5
bl func_ov39_0217f798
ldr r3, [sp, #0x10]
ldr r2, [sp, #0x14]
ldr r1, [sp, #0x18]
ldr r0, _02185e88 ; =0x00000e66
str r3, [sp, #0x28]
str r2, [sp, #0x2c]
str r1, [sp, #0x30]
str r0, [sp, #0x34]
ldr r0, [r5, #0xa14]
ldr r0, [r0, #0x14]
cmp r0, #0x1c000
bgt _02185d8c
add r1, sp, #0x28
add r2, sp, #0x1c
add r0, r5, #0x208
bl func_01ff9bf8
ldr r1, _02185e8c ; =data_027e0fac
ldr r0, [sp, #0x1c]
ldrsh r4, [r1]
ldr r1, [sp, #0x24]
bl func_01ffa0f4
mov r0, r0, lsl #0x10
rsbs r1, r4, r0, asr #16
ldr r0, _02185e90 ; =0x000031c7
rsbmi r1, r1, #0
cmp r1, r0
bgt _02185d1c
ldr r0, _02185e94 ; =data_027e0f90
add r1, sp, #0x28
ldr r0, [r0]
mov r2, #1
bl func_ov00_020a7ce4
cmp r0, #0
beq _02185d1c
bl func_ov39_02185ea8
add r2, r5, #0x48
mov r1, #0x18c
mov r3, #1
bl func_ov00_020c070c
ldr r0, [r5, #0x158]
orr r0, r0, #0x1000
str r0, [r5, #0x158]
b _02185d8c
_02185d1c:
ldrh r0, [r5, #0x78]
mov r4, #0
ldr r1, _02185e98 ; =data_02050f54
mov r0, r0, asr #0x4
mov r2, r0, lsl #0x1
add r0, r2, #1
mov r2, r2, lsl #0x1
ldrsh ip, [r1, r2]
mov r0, r0, lsl #0x1
ldrsh r3, [r1, r0]
add r1, sp, #0x28
add r2, sp, #0x1c
str r3, [sp, #0x24]
mov r0, r5
str ip, [sp, #0x1c]
str r4, [sp, #0x20]
mov r3, #2
str r3, [sp]
bl func_ov00_020c1ef8
cmp r0, #0
beq _02185d8c
ldr r0, _02185e9c ; =data_027e0ffc
ldr r1, _02185ea0 ; =0x00000313
add r2, r5, #0x48
mov r3, r4
bl func_ov00_020ceacc
mov r0, r5
bl func_ov39_0217fbc8
_02185d8c:
ldr r0, [r5, #0xa14]
ldr r4, [r0, #0x14]
cmp r4, #0x17000
bne _02185db0
ldr r0, _02185e9c ; =data_027e0ffc
ldr r1, _02185ea4 ; =0x00000312
add r2, r5, #0x48
mov r3, #0
bl func_ov00_020ceacc
_02185db0:
cmp r4, #0x18000
blt _02185dec
cmp r4, #0x1c000
bgt _02185dec
sub r0, r4, #0x18000
mov r1, #0x4000
bl func_01ff98e0
ldr r1, [r5, #0x1b4]
sub r1, r1, #0x1000
mul r1, r0, r1
add r0, r1, #0x800
mov r0, r0, asr #0xc
add r0, r0, #0x1000
str r0, [r5, #0xb5c]
b _02185e28
_02185dec:
cmp r4, #0x1c000
ble _02185e28
cmp r4, #0x22000
bgt _02185e28
sub r0, r4, #0x1c000
mov r1, #0x6000
bl func_01ff98e0
ldr r1, [r5, #0x1b4]
rsb r2, r0, #0x1000
sub r0, r1, #0x1000
mul r0, r2, r0
add r0, r0, #0x800
mov r0, r0, asr #0xc
add r0, r0, #0x1000
str r0, [r5, #0xb5c]
_02185e28:
cmp r4, #0x13000
blt _02185e50
cmp r4, #0x1d000
bgt _02185e50
ldr r0, [r5, #0x158]
cmp r4, #0x1d000
biceq r0, r0, #0x800000
streq r0, [r5, #0x158]
orrne r0, r0, #0x200000
strne r0, [r5, #0x158]
_02185e50:
ldr r0, [r5, #0xa14]
add r0, r0, #0xc
bl func_0202e58c
cmp r0, #0
addeq sp, sp, #0x38
ldmeqia sp!, {r3, r4, r5, pc}
ldr r1, [r5, #0x158]
mov r0, r5
bic r2, r1, #0x800000
mov r1, #0
str r2, [r5, #0x158]
bl func_ov39_0218599c
add sp, sp, #0x38
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov39_02185c3c
_02185e88: .word 0x00000e66
_02185e8c: .word data_027e0fac
_02185e90: .word 0x000031c7
_02185e94: .word data_027e0f90
_02185e98: .word data_02050f54
_02185e9c: .word data_027e0ffc
_02185ea0: .word 0x00000313
_02185ea4: .word 0x00000312
.global func_ov39_02185ea8
arm_func_start func_ov39_02185ea8
func_ov39_02185ea8: ; 0x02185ea8
ldr ip, _02185eb4 ; =func_01fffcec
mov r0, #1
bx ip
.align 2, 0
arm_func_end func_ov39_02185ea8
_02185eb4: .word func_01fffcec
.global func_ov39_02185eb8
arm_func_start func_ov39_02185eb8
func_ov39_02185eb8: ; 0x02185eb8
stmdb sp!, {r4, lr}
add r4, r0, #0x204
add r0, r4, #0x800
mov r1, #3
bl func_ov00_020c5d74
ldr r0, [r4, #0x810]
mov r1, #0x1000
str r1, [r0, #0x10]
ldmia sp!, {r4, pc}
arm_func_end func_ov39_02185eb8
.global func_ov39_02185edc
arm_func_start func_ov39_02185edc
func_ov39_02185edc: ; 0x02185edc
bx lr
arm_func_end func_ov39_02185edc
.global func_ov39_02185ee0
arm_func_start func_ov39_02185ee0
func_ov39_02185ee0: ; 0x02185ee0
stmdb sp!, {r4, lr}
add r4, r0, #0x204
add r0, r4, #0x800
mov r1, #4
bl func_ov00_020c5d74
ldr r0, [r4, #0x810]
mov r1, #0x1000
str r1, [r0, #0x10]
ldmia sp!, {r4, pc}
arm_func_end func_ov39_02185ee0
.global func_ov39_02185f04
arm_func_start func_ov39_02185f04
func_ov39_02185f04: ; 0x02185f04
stmdb sp!, {r4, lr}
mov r4, r0
ldr r0, [r4, #0xa14]
add r0, r0, #0xc
bl func_0202e58c
cmp r0, #0
ldmeqia sp!, {r4, pc}
mov r0, r4
mov r1, #5
bl func_ov39_0218599c
ldmia sp!, {r4, pc}
arm_func_end func_ov39_02185f04
.global func_ov39_02185f30
arm_func_start func_ov39_02185f30
func_ov39_02185f30: ; 0x02185f30
stmdb sp!, {r3, r4, r5, lr}
mov r5, r0
add r4, r5, #0x204
add r0, r4, #0x800
mov r1, #5
bl func_ov00_020c5d74
ldr r0, [r4, #0x810]
mov r1, #0x1000
str r1, [r0, #0x10]
mov r0, #0
strb r0, [r5, #0xca9]
ldmia sp!, {r3, r4, r5, pc}
arm_func_end func_ov39_02185f30
.global func_ov39_02185f60
arm_func_start func_ov39_02185f60
func_ov39_02185f60: ; 0x02185f60
stmdb sp!, {r4, lr}
mov r4, r0
ldr r0, [r4, #0xa14]
add r0, r0, #0xc
bl func_0202e58c
cmp r0, #0
ldmeqia sp!, {r4, pc}
ldr r0, [r4, #0x158]
tst r0, #0x4000
mov r0, r4
beq _02185fa8
bl func_ov39_0217f6dc
mov r2, #1
mov r0, r4
mov r1, #9
strb r2, [r4, #0xca9]
bl func_ov39_0218599c
ldmia sp!, {r4, pc}
_02185fa8:
mov r1, #8
bl func_ov39_0218599c
ldmia sp!, {r4, pc}
arm_func_end func_ov39_02185f60
.global func_ov39_02185fb4
arm_func_start func_ov39_02185fb4
func_ov39_02185fb4: ; 0x02185fb4
stmdb sp!, {r3, r4, r5, lr}
mov r5, r0
add r4, r5, #0x204
add r0, r4, #0x800
mov r1, #6
bl func_ov00_020c5d74
ldr r0, [r4, #0x810]
mov r1, #0x1000
str r1, [r0, #0x10]
ldr r0, [r5, #0x158]
tst r0, #0x4000
ldmeqia sp!, {r3, r4, r5, pc}
mov r0, r5
bl func_ov39_0217f6dc
ldmia sp!, {r3, r4, r5, pc}
arm_func_end func_ov39_02185fb4
.global func_ov39_02185ff0
arm_func_start func_ov39_02185ff0
func_ov39_02185ff0: ; 0x02185ff0
stmdb sp!, {r4, lr}
mov r4, r0
ldrb r0, [r4, #0xca9]
cmp r0, #0
ldmeqia sp!, {r4, pc}
ldr r0, [r4, #0xa14]
add r0, r0, #0xc
bl func_0202e58c
cmp r0, #0
ldmeqia sp!, {r4, pc}
mov r0, r4
mov r1, #9
bl func_ov39_0218599c
ldmia sp!, {r4, pc}
arm_func_end func_ov39_02185ff0
.global func_ov39_02186028
arm_func_start func_ov39_02186028
func_ov39_02186028: ; 0x02186028
stmdb sp!, {r4, lr}
add r4, r0, #0x204
add r0, r4, #0x800
mov r1, #7
bl func_ov00_020c5d74
ldr r0, [r4, #0x810]
mov r1, #0x1000
str r1, [r0, #0x10]
ldmia sp!, {r4, pc}
arm_func_end func_ov39_02186028
.global func_ov39_0218604c
arm_func_start func_ov39_0218604c
func_ov39_0218604c: ; 0x0218604c
stmdb sp!, {r4, lr}
mov r4, r0
ldr r0, [r4, #0xa14]
add r0, r0, #0xc
bl func_0202e58c
cmp r0, #0
ldmeqia sp!, {r4, pc}
mov r0, r4
mov r1, #5
bl func_ov39_0218599c
ldmia sp!, {r4, pc}
arm_func_end func_ov39_0218604c
.global func_ov39_02186078
arm_func_start func_ov39_02186078
func_ov39_02186078: ; 0x02186078
stmdb sp!, {r4, lr}
add r4, r0, #0x204
add r0, r4, #0x800
mov r1, #8
bl func_ov00_020c5d74
ldr r0, [r4, #0x810]
mov r1, #0x1000
str r1, [r0, #0x10]
ldmia sp!, {r4, pc}
arm_func_end func_ov39_02186078
.global func_ov39_0218609c
arm_func_start func_ov39_0218609c
func_ov39_0218609c: ; 0x0218609c
stmdb sp!, {r4, lr}
mov r4, r0
ldr r0, [r4, #0xa14]
mov r1, #0x9000
add r0, r0, #0xc
bl func_0202e310
cmp r0, #0
ldmeqia sp!, {r4, pc}
ldr r0, [r4, #0x158]
mov r2, #1
bic r0, r0, #0x80
str r0, [r4, #0x158]
ldr r1, [r4, #0x280]
ldr r0, _02186100 ; =data_02057200
strb r2, [r1, #0x11a]
ldr r3, [r4, #0x280]
ldr r2, [r0]
ldr r1, [r0, #4]
ldr r0, _02186104 ; =data_027e0fb4
str r2, [r3, #0x3b8]
str r1, [r3, #0x3bc]
ldr r0, [r0]
mov r1, #0
strb r1, [r0, #0x14d]
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov39_0218609c
_02186100: .word data_02057200
_02186104: .word data_027e0fb4
.global func_ov39_02186108
arm_func_start func_ov39_02186108
func_ov39_02186108: ; 0x02186108
stmdb sp!, {r4, lr}
mov r4, r0
blx func_ov00_020a95ec
mov r0, r4
bl func_0202ea0c
mov r0, r4
ldmia sp!, {r4, pc}
arm_func_end func_ov39_02186108
.rodata
.global data_ov39_02186124
data_ov39_02186124: ; 0x02186124
.ascii "wait"
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_0218612c
data_ov39_0218612c: ; 0x0218612c
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186130
data_ov39_02186130: ; 0x02186130
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186134
data_ov39_02186134: ; 0x02186134
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186138
data_ov39_02186138: ; 0x02186138
.ascii "walk"
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186140
data_ov39_02186140: ; 0x02186140
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186144
data_ov39_02186144: ; 0x02186144
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186148
data_ov39_02186148: ; 0x02186148
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_0218614c
data_ov39_0218614c: ; 0x0218614c
.ascii "cutA"
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186154
data_ov39_02186154: ; 0x02186154
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186158
data_ov39_02186158: ; 0x02186158
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_0218615c
data_ov39_0218615c: ; 0x0218615c
.byte 0x01, 0x00, 0x00, 0x00
.global data_ov39_02186160
data_ov39_02186160: ; 0x02186160
.ascii "cutB"
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186168
data_ov39_02186168: ; 0x02186168
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_0218616c
data_ov39_0218616c: ; 0x0218616c
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186170
data_ov39_02186170: ; 0x02186170
.byte 0x01, 0x00, 0x00, 0x00
.global data_ov39_02186174
data_ov39_02186174: ; 0x02186174
.ascii "guard"
.byte 0x00, 0x00, 0x00
.global data_ov39_0218617c
data_ov39_0218617c: ; 0x0218617c
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186180
data_ov39_02186180: ; 0x02186180
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186184
data_ov39_02186184: ; 0x02186184
.byte 0x01, 0x00, 0x00, 0x00
.global data_ov39_02186188
data_ov39_02186188: ; 0x02186188
.ascii "guard2"
.byte 0x00, 0x00
.global data_ov39_02186190
data_ov39_02186190: ; 0x02186190
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186194
data_ov39_02186194: ; 0x02186194
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186198
data_ov39_02186198: ; 0x02186198
.byte 0x01, 0x00, 0x00, 0x00
.global data_ov39_0218619c
data_ov39_0218619c: ; 0x0218619c
.ascii "guard3"
.byte 0x00, 0x00
.global data_ov39_021861a4
data_ov39_021861a4: ; 0x021861a4
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021861a8
data_ov39_021861a8: ; 0x021861a8
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021861ac
data_ov39_021861ac: ; 0x021861ac
.byte 0x01, 0x00, 0x00, 0x00
.global data_ov39_021861b0
data_ov39_021861b0: ; 0x021861b0
.ascii "guard4"
.byte 0x00, 0x00
.global data_ov39_021861b8
data_ov39_021861b8: ; 0x021861b8
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021861bc
data_ov39_021861bc: ; 0x021861bc
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021861c0
data_ov39_021861c0: ; 0x021861c0
.byte 0x01, 0x00, 0x00, 0x00
.global data_ov39_021861c4
data_ov39_021861c4: ; 0x021861c4
.ascii "guard6"
.byte 0x00, 0x00
.global data_ov39_021861cc
data_ov39_021861cc: ; 0x021861cc
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021861d0
data_ov39_021861d0: ; 0x021861d0
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021861d4
data_ov39_021861d4: ; 0x021861d4
.byte 0x01, 0x00, 0x00, 0x00
.global data_ov39_021861d8
data_ov39_021861d8: ; 0x021861d8
.ascii "search"
.byte 0x00, 0x00
.global data_ov39_021861e0
data_ov39_021861e0: ; 0x021861e0
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021861e4
data_ov39_021861e4: ; 0x021861e4
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021861e8
data_ov39_021861e8: ; 0x021861e8
.byte 0x01, 0x00, 0x00, 0x00
.global data_ov39_021861ec
data_ov39_021861ec: ; 0x021861ec
.ascii "open_sta"
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021861f8
data_ov39_021861f8: ; 0x021861f8
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021861fc
data_ov39_021861fc: ; 0x021861fc
.byte 0x01, 0x00, 0x00, 0x00
.global data_ov39_02186200
data_ov39_02186200: ; 0x02186200
.ascii "open"
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186208
data_ov39_02186208: ; 0x02186208
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_0218620c
data_ov39_0218620c: ; 0x0218620c
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186210
data_ov39_02186210: ; 0x02186210
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186214
data_ov39_02186214: ; 0x02186214
.ascii "open_end"
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186220
data_ov39_02186220: ; 0x02186220
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186224
data_ov39_02186224: ; 0x02186224
.byte 0x01, 0x00, 0x00, 0x00
.global data_ov39_02186228
data_ov39_02186228: ; 0x02186228
.ascii "guard5"
.byte 0x00, 0x00
.global data_ov39_02186230
data_ov39_02186230: ; 0x02186230
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186234
data_ov39_02186234: ; 0x02186234
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186238
data_ov39_02186238: ; 0x02186238
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_0218623c
data_ov39_0218623c: ; 0x0218623c
.ascii "guard_end"
.byte 0x00, 0x00, 0x00
.global data_ov39_02186248
data_ov39_02186248: ; 0x02186248
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_0218624c
data_ov39_0218624c: ; 0x0218624c
.byte 0x01, 0x00, 0x00, 0x00
.global data_ov39_02186250
data_ov39_02186250: ; 0x02186250
.ascii "counter2_sta"
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186260
data_ov39_02186260: ; 0x02186260
.byte 0x01, 0x00, 0x00, 0x00
.global data_ov39_02186264
data_ov39_02186264: ; 0x02186264
.ascii "counter2"
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186270
data_ov39_02186270: ; 0x02186270
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186274
data_ov39_02186274: ; 0x02186274
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186278
data_ov39_02186278: ; 0x02186278
.ascii "counter2_guard"
.byte 0x00, 0x00
.global data_ov39_02186288
data_ov39_02186288: ; 0x02186288
.byte 0x01, 0x00, 0x00, 0x00
.global data_ov39_0218628c
data_ov39_0218628c: ; 0x0218628c
.ascii "counter2_end"
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_0218629c
data_ov39_0218629c: ; 0x0218629c
.byte 0x01, 0x00, 0x00, 0x00
.global data_ov39_021862a0
data_ov39_021862a0: ; 0x021862a0
.ascii "counter1R"
.byte 0x00, 0x00, 0x00
.global data_ov39_021862ac
data_ov39_021862ac: ; 0x021862ac
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021862b0
data_ov39_021862b0: ; 0x021862b0
.byte 0x01, 0x00, 0x00, 0x00
.global data_ov39_021862b4
data_ov39_021862b4: ; 0x021862b4
.ascii "counter1L"
.byte 0x00, 0x00, 0x00
.global data_ov39_021862c0
data_ov39_021862c0: ; 0x021862c0
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021862c4
data_ov39_021862c4: ; 0x021862c4
.byte 0x01, 0x00, 0x00, 0x00
.global data_ov39_021862c8
data_ov39_021862c8: ; 0x021862c8
.ascii "guard_end2"
.byte 0x00, 0x00
.global data_ov39_021862d4
data_ov39_021862d4: ; 0x021862d4
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021862d8
data_ov39_021862d8: ; 0x021862d8
.byte 0x01, 0x00, 0x00, 0x00
.global data_ov39_021862dc
data_ov39_021862dc: ; 0x021862dc
.ascii "damage1_sta"
.byte 0x00
.global data_ov39_021862e8
data_ov39_021862e8: ; 0x021862e8
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021862ec
data_ov39_021862ec: ; 0x021862ec
.byte 0x01, 0x00, 0x00, 0x00
.global data_ov39_021862f0
data_ov39_021862f0: ; 0x021862f0
.ascii "damage1"
.byte 0x00
.global data_ov39_021862f8
data_ov39_021862f8: ; 0x021862f8
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021862fc
data_ov39_021862fc: ; 0x021862fc
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186300
data_ov39_02186300: ; 0x02186300
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186304
data_ov39_02186304: ; 0x02186304
.ascii "damage1_end"
.byte 0x00
.global data_ov39_02186310
data_ov39_02186310: ; 0x02186310
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186314
data_ov39_02186314: ; 0x02186314
.byte 0x01, 0x00, 0x00, 0x00
.global data_ov39_02186318
data_ov39_02186318: ; 0x02186318
.ascii "tired1"
.byte 0x00, 0x00
.global data_ov39_02186320
data_ov39_02186320: ; 0x02186320
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186324
data_ov39_02186324: ; 0x02186324
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186328
data_ov39_02186328: ; 0x02186328
.byte 0x01, 0x00, 0x00, 0x00
.global data_ov39_0218632c
data_ov39_0218632c: ; 0x0218632c
.ascii "cut_turn"
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186338
data_ov39_02186338: ; 0x02186338
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_0218633c
data_ov39_0218633c: ; 0x0218633c
.byte 0x01, 0x00, 0x00, 0x00
.global data_ov39_02186340
data_ov39_02186340: ; 0x02186340
.ascii "blowoff1"
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_0218634c
data_ov39_0218634c: ; 0x0218634c
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186350
data_ov39_02186350: ; 0x02186350
.byte 0x01, 0x00, 0x00, 0x00
.global data_ov39_02186354
data_ov39_02186354: ; 0x02186354
.ascii "blowoff2"
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186360
data_ov39_02186360: ; 0x02186360
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186364
data_ov39_02186364: ; 0x02186364
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186368
data_ov39_02186368: ; 0x02186368
.ascii "blowoff_end"
.byte 0x00
.global data_ov39_02186374
data_ov39_02186374: ; 0x02186374
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186378
data_ov39_02186378: ; 0x02186378
.byte 0x01, 0x00, 0x00, 0x00
.global data_ov39_0218637c
data_ov39_0218637c: ; 0x0218637c
.ascii "yoroi_dead"
.byte 0x00, 0x00
.global data_ov39_02186388
data_ov39_02186388: ; 0x02186388
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_0218638c
data_ov39_0218638c: ; 0x0218638c
.byte 0x01, 0x00, 0x00, 0x00
.global data_ov39_02186390
data_ov39_02186390: ; 0x02186390
.ascii "gran_dead"
.byte 0x00, 0x00, 0x00
.global data_ov39_0218639c
data_ov39_0218639c: ; 0x0218639c
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021863a0
data_ov39_021863a0: ; 0x021863a0
.byte 0x01, 0x00, 0x00, 0x00
.global data_ov39_021863a4
data_ov39_021863a4: ; 0x021863a4
.byte 0x2c, 0xfe, 0x17, 0x02
.global data_ov39_021863a8
data_ov39_021863a8: ; 0x021863a8
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021863ac
data_ov39_021863ac: ; 0x021863ac
.byte 0x1c, 0xff, 0x17, 0x02
.global data_ov39_021863b0
data_ov39_021863b0: ; 0x021863b0
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021863b4
data_ov39_021863b4: ; 0x021863b4
.byte 0xd8, 0x0f, 0x18, 0x02
.global data_ov39_021863b8
data_ov39_021863b8: ; 0x021863b8
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021863bc
data_ov39_021863bc: ; 0x021863bc
.byte 0xc8, 0x10, 0x18, 0x02
.global data_ov39_021863c0
data_ov39_021863c0: ; 0x021863c0
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021863c4
data_ov39_021863c4: ; 0x021863c4
.byte 0xc4, 0x11, 0x18, 0x02
.global data_ov39_021863c8
data_ov39_021863c8: ; 0x021863c8
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021863cc
data_ov39_021863cc: ; 0x021863cc
.byte 0xd0, 0x13, 0x18, 0x02
.global data_ov39_021863d0
data_ov39_021863d0: ; 0x021863d0
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021863d4
data_ov39_021863d4: ; 0x021863d4
.byte 0xc4, 0x15, 0x18, 0x02
.global data_ov39_021863d8
data_ov39_021863d8: ; 0x021863d8
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021863dc
data_ov39_021863dc: ; 0x021863dc
.byte 0x9c, 0x19, 0x18, 0x02
.global data_ov39_021863e0
data_ov39_021863e0: ; 0x021863e0
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021863e4
data_ov39_021863e4: ; 0x021863e4
.byte 0x38, 0x1e, 0x18, 0x02
.global data_ov39_021863e8
data_ov39_021863e8: ; 0x021863e8
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021863ec
data_ov39_021863ec: ; 0x021863ec
.byte 0xf8, 0x20, 0x18, 0x02
.global data_ov39_021863f0
data_ov39_021863f0: ; 0x021863f0
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021863f4
data_ov39_021863f4: ; 0x021863f4
.byte 0x1c, 0x24, 0x18, 0x02
.global data_ov39_021863f8
data_ov39_021863f8: ; 0x021863f8
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021863fc
data_ov39_021863fc: ; 0x021863fc
.byte 0x68, 0x24, 0x18, 0x02
.global data_ov39_02186400
data_ov39_02186400: ; 0x02186400
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186404
data_ov39_02186404: ; 0x02186404
.byte 0xb4, 0x24, 0x18, 0x02
.global data_ov39_02186408
data_ov39_02186408: ; 0x02186408
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_0218640c
data_ov39_0218640c: ; 0x0218640c
.byte 0xe8, 0x25, 0x18, 0x02
.global data_ov39_02186410
data_ov39_02186410: ; 0x02186410
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186414
data_ov39_02186414: ; 0x02186414
.byte 0xb0, 0x27, 0x18, 0x02
.global data_ov39_02186418
data_ov39_02186418: ; 0x02186418
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_0218641c
data_ov39_0218641c: ; 0x0218641c
.byte 0x2c, 0x28, 0x18, 0x02
.global data_ov39_02186420
data_ov39_02186420: ; 0x02186420
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186424
data_ov39_02186424: ; 0x02186424
.byte 0x88, 0x28, 0x18, 0x02
.global data_ov39_02186428
data_ov39_02186428: ; 0x02186428
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_0218642c
data_ov39_0218642c: ; 0x0218642c
.byte 0x58, 0x2f, 0x18, 0x02
.global data_ov39_02186430
data_ov39_02186430: ; 0x02186430
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186434
data_ov39_02186434: ; 0x02186434
.byte 0xd8, 0x31, 0x18, 0x02
.global data_ov39_02186438
data_ov39_02186438: ; 0x02186438
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_0218643c
data_ov39_0218643c: ; 0x0218643c
.byte 0xa4, 0x33, 0x18, 0x02
.global data_ov39_02186440
data_ov39_02186440: ; 0x02186440
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186444
data_ov39_02186444: ; 0x02186444
.byte 0x9c, 0x36, 0x18, 0x02
.global data_ov39_02186448
data_ov39_02186448: ; 0x02186448
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_0218644c
data_ov39_0218644c: ; 0x0218644c
.byte 0x18, 0x38, 0x18, 0x02
.global data_ov39_02186450
data_ov39_02186450: ; 0x02186450
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186454
data_ov39_02186454: ; 0x02186454
.byte 0xc4, 0x38, 0x18, 0x02
.global data_ov39_02186458
data_ov39_02186458: ; 0x02186458
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_0218645c
data_ov39_0218645c: ; 0x0218645c
.byte 0xcc, 0x3c, 0x18, 0x02
.global data_ov39_02186460
data_ov39_02186460: ; 0x02186460
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186464
data_ov39_02186464: ; 0x02186464
.byte 0x88, 0x47, 0x18, 0x02
.global data_ov39_02186468
data_ov39_02186468: ; 0x02186468
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_0218646c
data_ov39_0218646c: ; 0x0218646c
.byte 0x5c, 0xfe, 0x17, 0x02
.global data_ov39_02186470
data_ov39_02186470: ; 0x02186470
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186474
data_ov39_02186474: ; 0x02186474
.byte 0x5c, 0xff, 0x17, 0x02
.global data_ov39_02186478
data_ov39_02186478: ; 0x02186478
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_0218647c
data_ov39_0218647c: ; 0x0218647c
.byte 0xf4, 0x0f, 0x18, 0x02
.global data_ov39_02186480
data_ov39_02186480: ; 0x02186480
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186484
data_ov39_02186484: ; 0x02186484
.byte 0x2c, 0x11, 0x18, 0x02
.global data_ov39_02186488
data_ov39_02186488: ; 0x02186488
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_0218648c
data_ov39_0218648c: ; 0x0218648c
.byte 0x28, 0x12, 0x18, 0x02
.global data_ov39_02186490
data_ov39_02186490: ; 0x02186490
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186494
data_ov39_02186494: ; 0x02186494
.byte 0x9c, 0x14, 0x18, 0x02
.global data_ov39_02186498
data_ov39_02186498: ; 0x02186498
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_0218649c
data_ov39_0218649c: ; 0x0218649c
.byte 0xa8, 0x18, 0x18, 0x02
.global data_ov39_021864a0
data_ov39_021864a0: ; 0x021864a0
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021864a4
data_ov39_021864a4: ; 0x021864a4
.byte 0xcc, 0x1c, 0x18, 0x02
.global data_ov39_021864a8
data_ov39_021864a8: ; 0x021864a8
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021864ac
data_ov39_021864ac: ; 0x021864ac
.byte 0x98, 0x1e, 0x18, 0x02
.global data_ov39_021864b0
data_ov39_021864b0: ; 0x021864b0
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021864b4
data_ov39_021864b4: ; 0x021864b4
.byte 0x84, 0x22, 0x18, 0x02
.global data_ov39_021864b8
data_ov39_021864b8: ; 0x021864b8
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021864bc
data_ov39_021864bc: ; 0x021864bc
.byte 0x38, 0x24, 0x18, 0x02
.global data_ov39_021864c0
data_ov39_021864c0: ; 0x021864c0
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021864c4
data_ov39_021864c4: ; 0x021864c4
.byte 0x84, 0x24, 0x18, 0x02
.global data_ov39_021864c8
data_ov39_021864c8: ; 0x021864c8
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021864cc
data_ov39_021864cc: ; 0x021864cc
.byte 0xbc, 0x25, 0x18, 0x02
.global data_ov39_021864d0
data_ov39_021864d0: ; 0x021864d0
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021864d4
data_ov39_021864d4: ; 0x021864d4
.byte 0x74, 0x26, 0x18, 0x02
.global data_ov39_021864d8
data_ov39_021864d8: ; 0x021864d8
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021864dc
data_ov39_021864dc: ; 0x021864dc
.byte 0xb8, 0x27, 0x18, 0x02
.global data_ov39_021864e0
data_ov39_021864e0: ; 0x021864e0
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021864e4
data_ov39_021864e4: ; 0x021864e4
.byte 0x58, 0x28, 0x18, 0x02
.global data_ov39_021864e8
data_ov39_021864e8: ; 0x021864e8
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021864ec
data_ov39_021864ec: ; 0x021864ec
.byte 0x54, 0x29, 0x18, 0x02
.global data_ov39_021864f0
data_ov39_021864f0: ; 0x021864f0
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021864f4
data_ov39_021864f4: ; 0x021864f4
.byte 0xfc, 0x2f, 0x18, 0x02
.global data_ov39_021864f8
data_ov39_021864f8: ; 0x021864f8
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021864fc
data_ov39_021864fc: ; 0x021864fc
.byte 0xcc, 0x32, 0x18, 0x02
.global data_ov39_02186500
data_ov39_02186500: ; 0x02186500
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186504
data_ov39_02186504: ; 0x02186504
.byte 0x28, 0x35, 0x18, 0x02
.global data_ov39_02186508
data_ov39_02186508: ; 0x02186508
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_0218650c
data_ov39_0218650c: ; 0x0218650c
.byte 0xe0, 0x36, 0x18, 0x02
.global data_ov39_02186510
data_ov39_02186510: ; 0x02186510
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186514
data_ov39_02186514: ; 0x02186514
.byte 0x7c, 0x38, 0x18, 0x02
.global data_ov39_02186518
data_ov39_02186518: ; 0x02186518
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_0218651c
data_ov39_0218651c: ; 0x0218651c
.byte 0x2c, 0x3c, 0x18, 0x02
.global data_ov39_02186520
data_ov39_02186520: ; 0x02186520
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186524
data_ov39_02186524: ; 0x02186524
.byte 0x48, 0x43, 0x18, 0x02
.global data_ov39_02186528
data_ov39_02186528: ; 0x02186528
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_0218652c
data_ov39_0218652c: ; 0x0218652c
.byte 0x18, 0x48, 0x18, 0x02
.global data_ov39_02186530
data_ov39_02186530: ; 0x02186530
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186534
data_ov39_02186534: ; 0x02186534
.byte 0x04, 0x00, 0x00, 0x00
.global data_ov39_02186538
data_ov39_02186538: ; 0x02186538
.byte 0x05, 0x00, 0x00, 0x00
.global data_ov39_0218653c
data_ov39_0218653c: ; 0x0218653c
.byte 0x06, 0x00, 0x00, 0x00
.global data_ov39_02186540
data_ov39_02186540: ; 0x02186540
.byte 0x07, 0x00, 0x00, 0x00
.global data_ov39_02186544
data_ov39_02186544: ; 0x02186544
.byte 0x08, 0x00, 0x00, 0x00
.global data_ov39_02186548
data_ov39_02186548: ; 0x02186548
.byte 0x71, 0xf2, 0xff, 0xff
.global data_ov39_0218654c
data_ov39_0218654c: ; 0x0218654c
.byte 0xd9, 0x16, 0x00, 0x00
.global data_ov39_02186550
data_ov39_02186550: ; 0x02186550
.byte 0xc0, 0x35, 0x00, 0x00
.global data_ov39_02186554
data_ov39_02186554: ; 0x02186554
.byte 0xf4, 0xfd, 0xff, 0xff
.global data_ov39_02186558
data_ov39_02186558: ; 0x02186558
.byte 0x93, 0x13, 0x00, 0x00
.global data_ov39_0218655c
data_ov39_0218655c: ; 0x0218655c
.byte 0x39, 0x31, 0x00, 0x00
.global data_ov39_02186560
data_ov39_02186560: ; 0x02186560
.byte 0x41, 0x1c, 0x00, 0x00
.global data_ov39_02186564
data_ov39_02186564: ; 0x02186564
.byte 0x28, 0x08, 0x00, 0x00
.global data_ov39_02186568
data_ov39_02186568: ; 0x02186568
.byte 0xf9, 0x31, 0x00, 0x00
.global data_ov39_0218656c
data_ov39_0218656c: ; 0x0218656c
.byte 0x3e, 0x19, 0x00, 0x00
.global data_ov39_02186570
data_ov39_02186570: ; 0x02186570
.byte 0x0d, 0x08, 0x00, 0x00
.global data_ov39_02186574
data_ov39_02186574: ; 0x02186574
.byte 0x86, 0x25, 0x00, 0x00
.global data_ov39_02186578
data_ov39_02186578: ; 0x02186578
.byte 0x9e, 0x21, 0x00, 0x00
.global data_ov39_0218657c
data_ov39_0218657c: ; 0x0218657c
.byte 0xfc, 0x03, 0x00, 0x00
.global data_ov39_02186580
data_ov39_02186580: ; 0x02186580
.byte 0x60, 0x2d, 0x00, 0x00
.global data_ov39_02186584
data_ov39_02186584: ; 0x02186584
.byte 0xdf, 0x1b, 0x00, 0x00
.global data_ov39_02186588
data_ov39_02186588: ; 0x02186588
.byte 0xae, 0x05, 0x00, 0x00
.global data_ov39_0218658c
data_ov39_0218658c: ; 0x0218658c
.byte 0x0d, 0x22, 0x00, 0x00
.global data_ov39_02186590
data_ov39_02186590: ; 0x02186590
.byte 0x99, 0xe8, 0xff, 0xff
.global data_ov39_02186594
data_ov39_02186594: ; 0x02186594
.byte 0xb2, 0x3f, 0x00, 0x00
.global data_ov39_02186598
data_ov39_02186598: ; 0x02186598
.byte 0xff, 0x0a, 0x00, 0x00
.global data_ov39_0218659c
data_ov39_0218659c: ; 0x0218659c
.byte 0x27, 0xec, 0xff, 0xff
.global data_ov39_021865a0
data_ov39_021865a0: ; 0x021865a0
.byte 0xc9, 0x33, 0x00, 0x00
.global data_ov39_021865a4
data_ov39_021865a4: ; 0x021865a4
.byte 0x06, 0x0e, 0x00, 0x00
.global data_ov39_021865a8
data_ov39_021865a8: ; 0x021865a8
.byte 0xb6, 0xfc, 0xff, 0xff
.global data_ov39_021865ac
data_ov39_021865ac: ; 0x021865ac
.byte 0x85, 0x16, 0x00, 0x00
.global data_ov39_021865b0
data_ov39_021865b0: ; 0x021865b0
.byte 0xf7, 0x3b, 0x00, 0x00
.global data_ov39_021865b4
data_ov39_021865b4: ; 0x021865b4
.byte 0x41, 0xfd, 0xff, 0xff
.global data_ov39_021865b8
data_ov39_021865b8: ; 0x021865b8
.byte 0xbb, 0x12, 0x00, 0x00
.global data_ov39_021865bc
data_ov39_021865bc: ; 0x021865bc
.byte 0xc0, 0x2f, 0x00, 0x00
.global data_ov39_021865c0
data_ov39_021865c0: ; 0x021865c0
.byte 0xd8, 0xff, 0xff, 0xff
.global data_ov39_021865c4
data_ov39_021865c4: ; 0x021865c4
.byte 0x6f, 0x02, 0x00, 0x00
.global data_ov39_021865c8
data_ov39_021865c8: ; 0x021865c8
.byte 0x4c, 0x40, 0x00, 0x00
.global data_ov39_021865cc
data_ov39_021865cc: ; 0x021865cc
.byte 0x9c, 0xfe, 0xff, 0xff
.global data_ov39_021865d0
data_ov39_021865d0: ; 0x021865d0
.byte 0x85, 0x02, 0x00, 0x00
.global data_ov39_021865d4
data_ov39_021865d4: ; 0x021865d4
.byte 0x8e, 0x33, 0x00, 0x00
.global data_ov39_021865d8
data_ov39_021865d8: ; 0x021865d8
.byte 0x50, 0xdc, 0xff, 0xff
.global data_ov39_021865dc
data_ov39_021865dc: ; 0x021865dc
.byte 0x92, 0x08, 0x00, 0x00
.global data_ov39_021865e0
data_ov39_021865e0: ; 0x021865e0
.byte 0x57, 0x1f, 0x00, 0x00
.global data_ov39_021865e4
data_ov39_021865e4: ; 0x021865e4
.byte 0xe4, 0xde, 0xff, 0xff
.global data_ov39_021865e8
data_ov39_021865e8: ; 0x021865e8
.byte 0xda, 0x0a, 0x00, 0x00
.global data_ov39_021865ec
data_ov39_021865ec: ; 0x021865ec
.byte 0x04, 0x13, 0x00, 0x00
.global data_ov39_021865f0
data_ov39_021865f0: ; 0x021865f0
.byte 0x35, 0xf9, 0xff, 0xff
.global data_ov39_021865f4
data_ov39_021865f4: ; 0x021865f4
.byte 0x53, 0x0d, 0x00, 0x00
.global data_ov39_021865f8
data_ov39_021865f8: ; 0x021865f8
.byte 0xdf, 0x32, 0x00, 0x00
.global data_ov39_021865fc
data_ov39_021865fc: ; 0x021865fc
.byte 0x24, 0xf7, 0xff, 0xff
.global data_ov39_02186600
data_ov39_02186600: ; 0x02186600
.byte 0x75, 0x0f, 0x00, 0x00
.global data_ov39_02186604
data_ov39_02186604: ; 0x02186604
.byte 0x6c, 0x26, 0x00, 0x00
.global data_ov39_02186608
data_ov39_02186608: ; 0x02186608
.byte 0x7d, 0x23, 0x00, 0x00
.global data_ov39_0218660c
data_ov39_0218660c: ; 0x0218660c
.byte 0xd5, 0x0c, 0x00, 0x00
.global data_ov39_02186610
data_ov39_02186610: ; 0x02186610
.byte 0xf1, 0x20, 0x00, 0x00
.global data_ov39_02186614
data_ov39_02186614: ; 0x02186614
.byte 0xba, 0x17, 0x00, 0x00
.global data_ov39_02186618
data_ov39_02186618: ; 0x02186618
.byte 0x52, 0x0f, 0x00, 0x00
.global data_ov39_0218661c
data_ov39_0218661c: ; 0x0218661c
.byte 0x93, 0x1c, 0x00, 0x00
.global data_ov39_02186620
data_ov39_02186620: ; 0x02186620
.byte 0xd5, 0x25, 0x00, 0x00
.global data_ov39_02186624
data_ov39_02186624: ; 0x02186624
.byte 0xb6, 0x09, 0x00, 0x00
.global data_ov39_02186628
data_ov39_02186628: ; 0x02186628
.byte 0x9a, 0x20, 0x00, 0x00
.global data_ov39_0218662c
data_ov39_0218662c: ; 0x0218662c
.byte 0xa6, 0x1a, 0x00, 0x00
.global data_ov39_02186630
data_ov39_02186630: ; 0x02186630
.byte 0x8c, 0x0d, 0x00, 0x00
.global data_ov39_02186634
data_ov39_02186634: ; 0x02186634
.byte 0xba, 0x1b, 0x00, 0x00
.global data_ov39_02186638
data_ov39_02186638: ; 0x02186638
.byte 0x33, 0x06, 0x00, 0x00
.global data_ov39_0218663c
data_ov39_0218663c: ; 0x0218663c
.byte 0x39, 0x0c, 0x00, 0x00
.global data_ov39_02186640
data_ov39_02186640: ; 0x02186640
.byte 0x98, 0x36, 0x00, 0x00
.global data_ov39_02186644
data_ov39_02186644: ; 0x02186644
.byte 0x58, 0x04, 0x00, 0x00
.global data_ov39_02186648
data_ov39_02186648: ; 0x02186648
.byte 0x47, 0x0f, 0x00, 0x00
.global data_ov39_0218664c
data_ov39_0218664c: ; 0x0218664c
.byte 0x4f, 0x2a, 0x00, 0x00
.global data_ov39_02186650
data_ov39_02186650: ; 0x02186650
.byte 0x97, 0xdc, 0xff, 0xff
.global data_ov39_02186654
data_ov39_02186654: ; 0x02186654
.byte 0xef, 0x11, 0x00, 0x00
.global data_ov39_02186658
data_ov39_02186658: ; 0x02186658
.byte 0xd8, 0x28, 0x00, 0x00
.global data_ov39_0218665c
data_ov39_0218665c: ; 0x0218665c
.byte 0xd9, 0xe0, 0xff, 0xff
.global data_ov39_02186660
data_ov39_02186660: ; 0x02186660
.byte 0x46, 0x13, 0x00, 0x00
.global data_ov39_02186664
data_ov39_02186664: ; 0x02186664
.byte 0xd9, 0x1c, 0x00, 0x00
.global data_ov39_02186668
data_ov39_02186668: ; 0x02186668
.byte 0x9a, 0x19, 0x00, 0x00
.global data_ov39_0218666c
data_ov39_0218666c: ; 0x0218666c
.byte 0x9a, 0x19, 0x00, 0x00
.global data_ov39_02186670
data_ov39_02186670: ; 0x02186670
.byte 0x66, 0xee, 0xff, 0xff
.global data_ov39_02186674
data_ov39_02186674: ; 0x02186674
.byte 0x9a, 0x09, 0x00, 0x00
.global data_ov39_02186678
data_ov39_02186678: ; 0x02186678
.byte 0xcd, 0x2c, 0x00, 0x00
.global data_ov39_0218667c
data_ov39_0218667c: ; 0x0218667c
.byte 0x66, 0xee, 0xff, 0xff
.global data_ov39_02186680
data_ov39_02186680: ; 0x02186680
.byte 0x66, 0xf6, 0xff, 0xff
.global data_ov39_02186684
data_ov39_02186684: ; 0x02186684
.byte 0x00, 0x10, 0x00, 0x00
.global data_ov39_02186688
data_ov39_02186688: ; 0x02186688
.byte 0x66, 0xee, 0xff, 0xff
.global data_ov39_0218668c
data_ov39_0218668c: ; 0x0218668c
.byte 0x66, 0xe6, 0xff, 0xff
.global data_ov39_02186690
data_ov39_02186690: ; 0x02186690
.byte 0xcd, 0x14, 0x00, 0x00
.global data_ov39_02186694
data_ov39_02186694: ; 0x02186694
.byte 0x66, 0xee, 0xff, 0xff
.global data_ov39_02186698
data_ov39_02186698: ; 0x02186698
.ascii "ef_tornado_gdo1"
.byte 0x00
.global data_ov39_021866a8
data_ov39_021866a8: ; 0x021866a8
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021866ac
data_ov39_021866ac: ; 0x021866ac
.ascii "ef_tornado_gdo2"
.byte 0x00
.global data_ov39_021866bc
data_ov39_021866bc: ; 0x021866bc
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021866c0
data_ov39_021866c0: ; 0x021866c0
.ascii "tornado1_b"
.byte 0x00, 0x00
.global data_ov39_021866cc
data_ov39_021866cc: ; 0x021866cc
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021866d0
data_ov39_021866d0: ; 0x021866d0
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021866d4
data_ov39_021866d4: ; 0x021866d4
.ascii "tornado1_f"
.byte 0x00, 0x00
.global data_ov39_021866e0
data_ov39_021866e0: ; 0x021866e0
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021866e4
data_ov39_021866e4: ; 0x021866e4
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021866e8
data_ov39_021866e8: ; 0x021866e8
.ascii "chest_jnt"
.byte 0x00, 0x00, 0x00
.global data_ov39_021866f4
data_ov39_021866f4: ; 0x021866f4
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021866f8
data_ov39_021866f8: ; 0x021866f8
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021866fc
data_ov39_021866fc: ; 0x021866fc
.ascii "sword_jnt"
.byte 0x00, 0x00, 0x00
.global data_ov39_02186708
data_ov39_02186708: ; 0x02186708
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_0218670c
data_ov39_0218670c: ; 0x0218670c
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186710
data_ov39_02186710: ; 0x02186710
.ascii "mouthL_jnt"
.byte 0x00, 0x00
.global data_ov39_0218671c
data_ov39_0218671c: ; 0x0218671c
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186720
data_ov39_02186720: ; 0x02186720
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186724
data_ov39_02186724: ; 0x02186724
.ascii "mouthR_jnt"
.byte 0x00, 0x00
.global data_ov39_02186730
data_ov39_02186730: ; 0x02186730
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186734
data_ov39_02186734: ; 0x02186734
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186738
data_ov39_02186738: ; 0x02186738
.ascii "eye_jnt"
.byte 0x00
.global data_ov39_02186740
data_ov39_02186740: ; 0x02186740
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186744
data_ov39_02186744: ; 0x02186744
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186748
data_ov39_02186748: ; 0x02186748
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_0218674c
data_ov39_0218674c: ; 0x0218674c
.ascii "eye"
.byte 0x00
.global data_ov39_02186750
data_ov39_02186750: ; 0x02186750
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186754
data_ov39_02186754: ; 0x02186754
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186758
data_ov39_02186758: ; 0x02186758
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_0218675c
data_ov39_0218675c: ; 0x0218675c
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186760
data_ov39_02186760: ; 0x02186760
.ascii "navi_b_mat"
.byte 0x00, 0x00
.global data_ov39_0218676c
data_ov39_0218676c: ; 0x0218676c
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186770
data_ov39_02186770: ; 0x02186770
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186774
data_ov39_02186774: ; 0x02186774
.ascii "navi_w_mat"
.byte 0x00, 0x00
.global data_ov39_02186780
data_ov39_02186780: ; 0x02186780
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186784
data_ov39_02186784: ; 0x02186784
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186788
data_ov39_02186788: ; 0x02186788
.ascii "navi_b_mat"
.byte 0x00, 0x00
.global data_ov39_02186794
data_ov39_02186794: ; 0x02186794
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186798
data_ov39_02186798: ; 0x02186798
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_0218679c
data_ov39_0218679c: ; 0x0218679c
.ascii "navi_w_mat"
.byte 0x00, 0x00
.global data_ov39_021867a8
data_ov39_021867a8: ; 0x021867a8
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021867ac
data_ov39_021867ac: ; 0x021867ac
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021867b0
data_ov39_021867b0: ; 0x021867b0
.ascii "attack1"
.byte 0x00
.global data_ov39_021867b8
data_ov39_021867b8: ; 0x021867b8
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021867bc
data_ov39_021867bc: ; 0x021867bc
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021867c0
data_ov39_021867c0: ; 0x021867c0
.byte 0x01, 0x00, 0x00, 0x00
.global data_ov39_021867c4
data_ov39_021867c4: ; 0x021867c4
.ascii "attack2"
.byte 0x00
.global data_ov39_021867cc
data_ov39_021867cc: ; 0x021867cc
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021867d0
data_ov39_021867d0: ; 0x021867d0
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021867d4
data_ov39_021867d4: ; 0x021867d4
.byte 0x01, 0x00, 0x00, 0x00
.global data_ov39_021867d8
data_ov39_021867d8: ; 0x021867d8
.ascii "wait1"
.byte 0x00, 0x00, 0x00
.global data_ov39_021867e0
data_ov39_021867e0: ; 0x021867e0
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021867e4
data_ov39_021867e4: ; 0x021867e4
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021867e8
data_ov39_021867e8: ; 0x021867e8
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021867ec
data_ov39_021867ec: ; 0x021867ec
.ascii "wait2"
.byte 0x00, 0x00, 0x00
.global data_ov39_021867f4
data_ov39_021867f4: ; 0x021867f4
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021867f8
data_ov39_021867f8: ; 0x021867f8
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021867fc
data_ov39_021867fc: ; 0x021867fc
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186800
data_ov39_02186800: ; 0x02186800
.ascii "catch"
.byte 0x00, 0x00, 0x00
.global data_ov39_02186808
data_ov39_02186808: ; 0x02186808
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_0218680c
data_ov39_0218680c: ; 0x0218680c
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186810
data_ov39_02186810: ; 0x02186810
.byte 0x01, 0x00, 0x00, 0x00
.global data_ov39_02186814
data_ov39_02186814: ; 0x02186814
.ascii "loose_sta"
.byte 0x00, 0x00, 0x00
.global data_ov39_02186820
data_ov39_02186820: ; 0x02186820
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186824
data_ov39_02186824: ; 0x02186824
.byte 0x01, 0x00, 0x00, 0x00
.global data_ov39_02186828
data_ov39_02186828: ; 0x02186828
.ascii "loose"
.byte 0x00, 0x00, 0x00
.global data_ov39_02186830
data_ov39_02186830: ; 0x02186830
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186834
data_ov39_02186834: ; 0x02186834
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186838
data_ov39_02186838: ; 0x02186838
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_0218683c
data_ov39_0218683c: ; 0x0218683c
.ascii "loose_end"
.byte 0x00, 0x00, 0x00
.global data_ov39_02186848
data_ov39_02186848: ; 0x02186848
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_0218684c
data_ov39_0218684c: ; 0x0218684c
.byte 0x01, 0x00, 0x00, 0x00
.global data_ov39_02186850
data_ov39_02186850: ; 0x02186850
.ascii "tntcl_dead"
.byte 0x00, 0x00
.global data_ov39_0218685c
data_ov39_0218685c: ; 0x0218685c
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186860
data_ov39_02186860: ; 0x02186860
.byte 0x01, 0x00, 0x00, 0x00
.global data_ov39_02186864
data_ov39_02186864: ; 0x02186864
.byte 0xf4, 0x5a, 0x18, 0x02
.global data_ov39_02186868
data_ov39_02186868: ; 0x02186868
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_0218686c
data_ov39_0218686c: ; 0x0218686c
.byte 0x10, 0x5b, 0x18, 0x02
.global data_ov39_02186870
data_ov39_02186870: ; 0x02186870
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186874
data_ov39_02186874: ; 0x02186874
.byte 0xd0, 0x5b, 0x18, 0x02
.global data_ov39_02186878
data_ov39_02186878: ; 0x02186878
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_0218687c
data_ov39_0218687c: ; 0x0218687c
.byte 0xd8, 0x5b, 0x18, 0x02
.global data_ov39_02186880
data_ov39_02186880: ; 0x02186880
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186884
data_ov39_02186884: ; 0x02186884
.byte 0x1c, 0x5c, 0x18, 0x02
.global data_ov39_02186888
data_ov39_02186888: ; 0x02186888
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_0218688c
data_ov39_0218688c: ; 0x0218688c
.byte 0xb8, 0x5e, 0x18, 0x02
.global data_ov39_02186890
data_ov39_02186890: ; 0x02186890
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186894
data_ov39_02186894: ; 0x02186894
.byte 0xe0, 0x5e, 0x18, 0x02
.global data_ov39_02186898
data_ov39_02186898: ; 0x02186898
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_0218689c
data_ov39_0218689c: ; 0x0218689c
.byte 0x30, 0x5f, 0x18, 0x02
.global data_ov39_021868a0
data_ov39_021868a0: ; 0x021868a0
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021868a4
data_ov39_021868a4: ; 0x021868a4
.byte 0xb4, 0x5f, 0x18, 0x02
.global data_ov39_021868a8
data_ov39_021868a8: ; 0x021868a8
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021868ac
data_ov39_021868ac: ; 0x021868ac
.byte 0x28, 0x60, 0x18, 0x02
.global data_ov39_021868b0
data_ov39_021868b0: ; 0x021868b0
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021868b4
data_ov39_021868b4: ; 0x021868b4
.byte 0x78, 0x60, 0x18, 0x02
.global data_ov39_021868b8
data_ov39_021868b8: ; 0x021868b8
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021868bc
data_ov39_021868bc: ; 0x021868bc
.byte 0x0c, 0x5b, 0x18, 0x02
.global data_ov39_021868c0
data_ov39_021868c0: ; 0x021868c0
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021868c4
data_ov39_021868c4: ; 0x021868c4
.byte 0x88, 0x5b, 0x18, 0x02
.global data_ov39_021868c8
data_ov39_021868c8: ; 0x021868c8
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021868cc
data_ov39_021868cc: ; 0x021868cc
.byte 0xd4, 0x5b, 0x18, 0x02
.global data_ov39_021868d0
data_ov39_021868d0: ; 0x021868d0
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021868d4
data_ov39_021868d4: ; 0x021868d4
.byte 0xec, 0x5b, 0x18, 0x02
.global data_ov39_021868d8
data_ov39_021868d8: ; 0x021868d8
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021868dc
data_ov39_021868dc: ; 0x021868dc
.byte 0x3c, 0x5c, 0x18, 0x02
.global data_ov39_021868e0
data_ov39_021868e0: ; 0x021868e0
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021868e4
data_ov39_021868e4: ; 0x021868e4
.byte 0xdc, 0x5e, 0x18, 0x02
.global data_ov39_021868e8
data_ov39_021868e8: ; 0x021868e8
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021868ec
data_ov39_021868ec: ; 0x021868ec
.byte 0x04, 0x5f, 0x18, 0x02
.global data_ov39_021868f0
data_ov39_021868f0: ; 0x021868f0
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021868f4
data_ov39_021868f4: ; 0x021868f4
.byte 0x60, 0x5f, 0x18, 0x02
.global data_ov39_021868f8
data_ov39_021868f8: ; 0x021868f8
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_021868fc
data_ov39_021868fc: ; 0x021868fc
.byte 0xf0, 0x5f, 0x18, 0x02
.global data_ov39_02186900
data_ov39_02186900: ; 0x02186900
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186904
data_ov39_02186904: ; 0x02186904
.byte 0x4c, 0x60, 0x18, 0x02
.global data_ov39_02186908
data_ov39_02186908: ; 0x02186908
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_0218690c
data_ov39_0218690c: ; 0x0218690c
.byte 0x9c, 0x60, 0x18, 0x02
.global data_ov39_02186910
data_ov39_02186910: ; 0x02186910
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186914
data_ov39_02186914: ; 0x02186914
.byte 0x5d, 0x00, 0x00, 0x00
.global data_ov39_02186918
data_ov39_02186918: ; 0x02186918
.ascii "tntcl_5"
.byte 0x00
.global data_ov39_02186920
data_ov39_02186920: ; 0x02186920
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186924
data_ov39_02186924: ; 0x02186924
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186928
data_ov39_02186928: ; 0x02186928
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_0218692c
data_ov39_0218692c: ; 0x0218692c
.ascii "navi_b"
.byte 0x00, 0x00
.global data_ov39_02186934
data_ov39_02186934: ; 0x02186934
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186938
data_ov39_02186938: ; 0x02186938
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_0218693c
data_ov39_0218693c: ; 0x0218693c
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186940
data_ov39_02186940: ; 0x02186940
.ascii "navi_b_mat"
.byte 0x00, 0x00
.global data_ov39_0218694c
data_ov39_0218694c: ; 0x0218694c
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186950
data_ov39_02186950: ; 0x02186950
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186954
data_ov39_02186954: ; 0x02186954
.ascii "navi_w_mat"
.byte 0x00, 0x00
.global data_ov39_02186960
data_ov39_02186960: ; 0x02186960
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186964
data_ov39_02186964: ; 0x02186964
.byte 0x00, 0x00, 0x00, 0x00
.section .init, 4, 1, 4
.global func_ov39_02186968
arm_func_start func_ov39_02186968
func_ov39_02186968: ; 0x02186968
stmdb sp!, {r3, lr}
ldr r0, _021869a0 ; =data_ov39_02186ccc
ldr r1, _021869a4 ; =0x474f4354
ldr r2, _021869a8 ; =func_ov39_0217bd80
mov r3, #0
bl func_0203e784
ldr r0, _021869a0 ; =data_ov39_02186ccc
ldr r1, _021869ac ; =func_0203e7b4
ldr r2, _021869b0 ; =data_ov39_02186cc0
bl func_0204f8d4
ldr r0, _021869b4 ; =data_ov39_02186cc0
ldr r1, _021869b8 ; =data_ov39_02186a28
str r1, [r0, #0x20]
ldmia sp!, {r3, pc}
.align 2, 0
arm_func_end func_ov39_02186968
_021869a0: .word data_ov39_02186ccc
_021869a4: .word 0x474f4354
_021869a8: .word func_ov39_0217bd80
_021869ac: .word func_0203e7b4
_021869b0: .word data_ov39_02186cc0
_021869b4: .word data_ov39_02186cc0
_021869b8: .word data_ov39_02186a28
.section .sinit, 4, 1, 4
.global data_ov39_021869bc
data_ov39_021869bc: ; 0x021869bc
.byte 0x68, 0x69, 0x18, 0x02
.data
.global data_ov39_021869e0
data_ov39_021869e0: ; 0x021869e0
.ascii "brg"
.byte 0x00
.global data_ov39_021869e4
data_ov39_021869e4: ; 0x021869e4
.ascii "fnl"
.byte 0x00
.global data_ov39_021869e8
data_ov39_021869e8: ; 0x021869e8
.ascii "pdl"
.byte 0x00
.global data_ov39_021869ec
data_ov39_021869ec: ; 0x021869ec
.ascii "dco"
.byte 0x00
.global data_ov39_021869f0
data_ov39_021869f0: ; 0x021869f0
.ascii "can"
.byte 0x00
.global data_ov39_021869f4
data_ov39_021869f4: ; 0x021869f4
.ascii "hul"
.byte 0x00
.global data_ov39_021869f8
data_ov39_021869f8: ; 0x021869f8
.ascii "bow"
.byte 0x00
.global data_ov39_021869fc
data_ov39_021869fc: ; 0x021869fc
.ascii "anc"
.byte 0x00
.global data_ov39_02186a00
data_ov39_02186a00: ; 0x02186a00
.byte 0xfc, 0x69, 0x18, 0x02
.global data_ov39_02186a04
data_ov39_02186a04: ; 0x02186a04
.byte 0xf8, 0x69, 0x18, 0x02
.global data_ov39_02186a08
data_ov39_02186a08: ; 0x02186a08
.byte 0xf4, 0x69, 0x18, 0x02
.global data_ov39_02186a0c
data_ov39_02186a0c: ; 0x02186a0c
.byte 0xf0, 0x69, 0x18, 0x02
.global data_ov39_02186a10
data_ov39_02186a10: ; 0x02186a10
.byte 0xec, 0x69, 0x18, 0x02
.global data_ov39_02186a14
data_ov39_02186a14: ; 0x02186a14
.byte 0xe8, 0x69, 0x18, 0x02
.global data_ov39_02186a18
data_ov39_02186a18: ; 0x02186a18
.byte 0xe4, 0x69, 0x18, 0x02
.global data_ov39_02186a1c
data_ov39_02186a1c: ; 0x02186a1c
.byte 0xe0, 0x69, 0x18, 0x02
.global data_ov39_02186a20
data_ov39_02186a20: ; 0x02186a20
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186a24
data_ov39_02186a24: ; 0x02186a24
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186a28
data_ov39_02186a28: ; 0x02186a28
.byte 0xc8, 0xbd, 0x17, 0x02
.global data_ov39_02186a2c
data_ov39_02186a2c: ; 0x02186a2c
.byte 0x30, 0xbf, 0x17, 0x02
.global data_ov39_02186a30
data_ov39_02186a30: ; 0x02186a30
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186a34
data_ov39_02186a34: ; 0x02186a34
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186a38
data_ov39_02186a38: ; 0x02186a38
.byte 0x18, 0xd0, 0x17, 0x02
.global data_ov39_02186a3c
data_ov39_02186a3c: ; 0x02186a3c
.byte 0x10, 0xd1, 0x17, 0x02
.global data_ov39_02186a40
data_ov39_02186a40: ; 0x02186a40
.byte 0x10, 0xd2, 0x17, 0x02
.global data_ov39_02186a44
data_ov39_02186a44: ; 0x02186a44
.byte 0x34, 0xd5, 0x17, 0x02
.global data_ov39_02186a48
data_ov39_02186a48: ; 0x02186a48
.byte 0x40, 0x17, 0x0c, 0x02
.global data_ov39_02186a4c
data_ov39_02186a4c: ; 0x02186a4c
.byte 0x84, 0xd6, 0x17, 0x02
.global data_ov39_02186a50
data_ov39_02186a50: ; 0x02186a50
.byte 0x04, 0xd7, 0x17, 0x02
.global data_ov39_02186a54
data_ov39_02186a54: ; 0x02186a54
.byte 0xd4, 0x17, 0x0c, 0x02
.global data_ov39_02186a58
data_ov39_02186a58: ; 0x02186a58
.byte 0x1c, 0xdd, 0x17, 0x02
.global data_ov39_02186a5c
data_ov39_02186a5c: ; 0x02186a5c
.byte 0x44, 0x17, 0x0c, 0x02
.global data_ov39_02186a60
data_ov39_02186a60: ; 0x02186a60
.byte 0x48, 0x17, 0x0c, 0x02
.global data_ov39_02186a64
data_ov39_02186a64: ; 0x02186a64
.byte 0xa8, 0x17, 0x0c, 0x02
.global data_ov39_02186a68
data_ov39_02186a68: ; 0x02186a68
.byte 0xb0, 0x17, 0x0c, 0x02
.global data_ov39_02186a6c
data_ov39_02186a6c: ; 0x02186a6c
.byte 0x4c, 0x17, 0x0c, 0x02
.global data_ov39_02186a70
data_ov39_02186a70: ; 0x02186a70
.byte 0x7c, 0x17, 0x0c, 0x02
.global data_ov39_02186a74
data_ov39_02186a74: ; 0x02186a74
.byte 0xe4, 0x27, 0x0c, 0x02
.global data_ov39_02186a78
data_ov39_02186a78: ; 0x02186a78
.byte 0x04, 0x30, 0x0c, 0x02
.global data_ov39_02186a7c
data_ov39_02186a7c: ; 0x02186a7c
.byte 0x44, 0x27, 0x0c, 0x02
.global data_ov39_02186a80
data_ov39_02186a80: ; 0x02186a80
.byte 0xc0, 0xdf, 0x17, 0x02
.global data_ov39_02186a84
data_ov39_02186a84: ; 0x02186a84
.byte 0x50, 0x1c, 0x0c, 0x02
.global data_ov39_02186a88
data_ov39_02186a88: ; 0x02186a88
.byte 0x0c, 0x31, 0x0c, 0x02
.global data_ov39_02186a8c
data_ov39_02186a8c: ; 0x02186a8c
.byte 0x14, 0x31, 0x0c, 0x02
.global data_ov39_02186a90
data_ov39_02186a90: ; 0x02186a90
.byte 0xa8, 0x18, 0x0c, 0x02
.global data_ov39_02186a94
data_ov39_02186a94: ; 0x02186a94
.byte 0xc4, 0x18, 0x0c, 0x02
.global data_ov39_02186a98
data_ov39_02186a98: ; 0x02186a98
.byte 0xfc, 0x18, 0x0c, 0x02
.global data_ov39_02186a9c
data_ov39_02186a9c: ; 0x02186a9c
.byte 0x04, 0x19, 0x0c, 0x02
.global data_ov39_02186aa0
data_ov39_02186aa0: ; 0x02186aa0
.byte 0x10, 0x19, 0x0c, 0x02
.global data_ov39_02186aa4
data_ov39_02186aa4: ; 0x02186aa4
.byte 0x14, 0x19, 0x0c, 0x02
.global data_ov39_02186aa8
data_ov39_02186aa8: ; 0x02186aa8
.byte 0x1c, 0x19, 0x0c, 0x02
.global data_ov39_02186aac
data_ov39_02186aac: ; 0x02186aac
.byte 0x24, 0x19, 0x0c, 0x02
.global data_ov39_02186ab0
data_ov39_02186ab0: ; 0x02186ab0
.byte 0x2c, 0x19, 0x0c, 0x02
.global data_ov39_02186ab4
data_ov39_02186ab4: ; 0x02186ab4
.byte 0x28, 0x19, 0x0c, 0x02
.global data_ov39_02186ab8
data_ov39_02186ab8: ; 0x02186ab8
.byte 0x34, 0x19, 0x0c, 0x02
.global data_ov39_02186abc
data_ov39_02186abc: ; 0x02186abc
.byte 0x38, 0x19, 0x0c, 0x02
.global data_ov39_02186ac0
data_ov39_02186ac0: ; 0x02186ac0
.byte 0x3c, 0x19, 0x0c, 0x02
.global data_ov39_02186ac4
data_ov39_02186ac4: ; 0x02186ac4
.byte 0x40, 0x19, 0x0c, 0x02
.global data_ov39_02186ac8
data_ov39_02186ac8: ; 0x02186ac8
.byte 0x48, 0x19, 0x0c, 0x02
.global data_ov39_02186acc
data_ov39_02186acc: ; 0x02186acc
.byte 0x50, 0x19, 0x0c, 0x02
.global data_ov39_02186ad0
data_ov39_02186ad0: ; 0x02186ad0
.byte 0x54, 0x19, 0x0c, 0x02
.global data_ov39_02186ad4
data_ov39_02186ad4: ; 0x02186ad4
.byte 0x58, 0x19, 0x0c, 0x02
.global data_ov39_02186ad8
data_ov39_02186ad8: ; 0x02186ad8
.byte 0x6c, 0x1b, 0x0c, 0x02
.global data_ov39_02186adc
data_ov39_02186adc: ; 0x02186adc
.byte 0xb4, 0x1b, 0x0c, 0x02
.global data_ov39_02186ae0
data_ov39_02186ae0: ; 0x02186ae0
.byte 0xf8, 0x1b, 0x0c, 0x02
.global data_ov39_02186ae4
data_ov39_02186ae4: ; 0x02186ae4
.byte 0xfc, 0x31, 0x0c, 0x02
.global data_ov39_02186ae8
data_ov39_02186ae8: ; 0x02186ae8
.byte 0x2c, 0x32, 0x0c, 0x02
.global data_ov39_02186aec
data_ov39_02186aec: ; 0x02186aec
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186af0
data_ov39_02186af0: ; 0x02186af0
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186af4
data_ov39_02186af4: ; 0x02186af4
.byte 0x34, 0x5d, 0x0c, 0x02
.global data_ov39_02186af8
data_ov39_02186af8: ; 0x02186af8
.byte 0x1c, 0x51, 0x18, 0x02
.global data_ov39_02186afc
data_ov39_02186afc: ; 0x02186afc
.byte 0x58, 0x5e, 0x0c, 0x02
.global data_ov39_02186b00
data_ov39_02186b00: ; 0x02186b00
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186b04
data_ov39_02186b04: ; 0x02186b04
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186b08
data_ov39_02186b08: ; 0x02186b08
.byte 0x4d, 0x9b, 0x0a, 0x02
.global data_ov39_02186b0c
data_ov39_02186b0c: ; 0x02186b0c
.byte 0x59, 0x9b, 0x0a, 0x02
.global data_ov39_02186b10
data_ov39_02186b10: ; 0x02186b10
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186b14
data_ov39_02186b14: ; 0x02186b14
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186b18
data_ov39_02186b18: ; 0x02186b18
.byte 0xac, 0xcf, 0x17, 0x02
.global data_ov39_02186b1c
data_ov39_02186b1c: ; 0x02186b1c
.byte 0x00, 0x51, 0x18, 0x02
.global data_ov39_02186b20
data_ov39_02186b20: ; 0x02186b20
.byte 0x0c, 0x96, 0x0a, 0x02
.global data_ov39_02186b24
data_ov39_02186b24: ; 0x02186b24
.byte 0x14, 0x96, 0x0a, 0x02
.global data_ov39_02186b28
data_ov39_02186b28: ; 0x02186b28
.byte 0x50, 0x96, 0x0a, 0x02
.global data_ov39_02186b2c
data_ov39_02186b2c: ; 0x02186b2c
.byte 0xd4, 0x96, 0x0a, 0x02
.global data_ov39_02186b30
data_ov39_02186b30: ; 0x02186b30
.byte 0x40, 0x97, 0x0a, 0x02
.global data_ov39_02186b34
data_ov39_02186b34: ; 0x02186b34
.byte 0x64, 0x97, 0x0a, 0x02
.global data_ov39_02186b38
data_ov39_02186b38: ; 0x02186b38
.byte 0xd0, 0x97, 0x0a, 0x02
.global data_ov39_02186b3c
data_ov39_02186b3c: ; 0x02186b3c
.byte 0xe0, 0x97, 0x0a, 0x02
.global data_ov39_02186b40
data_ov39_02186b40: ; 0x02186b40
.byte 0xf8, 0x97, 0x0a, 0x02
.global data_ov39_02186b44
data_ov39_02186b44: ; 0x02186b44
.byte 0x64, 0x98, 0x0a, 0x02
.global data_ov39_02186b48
data_ov39_02186b48: ; 0x02186b48
.byte 0xbc, 0x98, 0x0a, 0x02
.global data_ov39_02186b4c
data_ov39_02186b4c: ; 0x02186b4c
.byte 0x90, 0x98, 0x0a, 0x02
.global data_ov39_02186b50
data_ov39_02186b50: ; 0x02186b50
.byte 0x68, 0x99, 0x0a, 0x02
.global data_ov39_02186b54
data_ov39_02186b54: ; 0x02186b54
.byte 0x38, 0xc3, 0x17, 0x02
.global data_ov39_02186b58
data_ov39_02186b58: ; 0x02186b58
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186b5c
data_ov39_02186b5c: ; 0x02186b5c
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186b60
data_ov39_02186b60: ; 0x02186b60
.byte 0x34, 0x5d, 0x0c, 0x02
.global data_ov39_02186b64
data_ov39_02186b64: ; 0x02186b64
.byte 0x1c, 0x51, 0x18, 0x02
.global data_ov39_02186b68
data_ov39_02186b68: ; 0x02186b68
.byte 0x58, 0x5e, 0x0c, 0x02
.global data_ov39_02186b6c
data_ov39_02186b6c: ; 0x02186b6c
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186b70
data_ov39_02186b70: ; 0x02186b70
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186b74
data_ov39_02186b74: ; 0x02186b74
.byte 0x0d, 0x9b, 0x0a, 0x02
.global data_ov39_02186b78
data_ov39_02186b78: ; 0x02186b78
.byte 0x19, 0x9b, 0x0a, 0x02
.global data_ov39_02186b7c
data_ov39_02186b7c: ; 0x02186b7c
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186b80
data_ov39_02186b80: ; 0x02186b80
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186b84
data_ov39_02186b84: ; 0x02186b84
.byte 0x34, 0x5d, 0x0c, 0x02
.global data_ov39_02186b88
data_ov39_02186b88: ; 0x02186b88
.byte 0x6c, 0xc1, 0x17, 0x02
.global data_ov39_02186b8c
data_ov39_02186b8c: ; 0x02186b8c
.byte 0x7c, 0xc1, 0x17, 0x02
.global data_ov39_02186b90
data_ov39_02186b90: ; 0x02186b90
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186b94
data_ov39_02186b94: ; 0x02186b94
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186b98
data_ov39_02186b98: ; 0x02186b98
.byte 0xcd, 0x9a, 0x0a, 0x02
.global data_ov39_02186b9c
data_ov39_02186b9c: ; 0x02186b9c
.byte 0xd9, 0x9a, 0x0a, 0x02
.global data_ov39_02186ba0
data_ov39_02186ba0: ; 0x02186ba0
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186ba4
data_ov39_02186ba4: ; 0x02186ba4
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186ba8
data_ov39_02186ba8: ; 0x02186ba8
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186bac
data_ov39_02186bac: ; 0x02186bac
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186bb0
data_ov39_02186bb0: ; 0x02186bb0
.ascii "GT1:/ef_tornado_gdo1.nsbta"
.byte 0x00, 0x00
.global data_ov39_02186bcc
data_ov39_02186bcc: ; 0x02186bcc
.ascii "ef_tornado_gdo1"
.byte 0x00
.global data_ov39_02186bdc
data_ov39_02186bdc: ; 0x02186bdc
.ascii "GT1:/ef_tornado_gdo2.nsbta"
.byte 0x00, 0x00
.global data_ov39_02186bf8
data_ov39_02186bf8: ; 0x02186bf8
.ascii "ef_tornado_gdo2"
.byte 0x00
.global data_ov39_02186c08
data_ov39_02186c08: ; 0x02186c08
.ascii "gdo3_eye_pl"
.byte 0x00
.global data_ov39_02186c14
data_ov39_02186c14: ; 0x02186c14
.byte 0x94, 0x51, 0x18, 0x02
.global data_ov39_02186c18
data_ov39_02186c18: ; 0x02186c18
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186c1c
data_ov39_02186c1c: ; 0x02186c1c
.byte 0x94, 0x51, 0x18, 0x02
.global data_ov39_02186c20
data_ov39_02186c20: ; 0x02186c20
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186c24
data_ov39_02186c24: ; 0x02186c24
.byte 0x94, 0x51, 0x18, 0x02
.global data_ov39_02186c28
data_ov39_02186c28: ; 0x02186c28
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186c2c
data_ov39_02186c2c: ; 0x02186c2c
.ascii "brg"
.byte 0x00
.global data_ov39_02186c30
data_ov39_02186c30: ; 0x02186c30
.ascii "fnl"
.byte 0x00
.global data_ov39_02186c34
data_ov39_02186c34: ; 0x02186c34
.ascii "pdl"
.byte 0x00
.global data_ov39_02186c38
data_ov39_02186c38: ; 0x02186c38
.ascii "dco"
.byte 0x00
.global data_ov39_02186c3c
data_ov39_02186c3c: ; 0x02186c3c
.ascii "can"
.byte 0x00
.global data_ov39_02186c40
data_ov39_02186c40: ; 0x02186c40
.ascii "hul"
.byte 0x00
.global data_ov39_02186c44
data_ov39_02186c44: ; 0x02186c44
.ascii "bow"
.byte 0x00
.global data_ov39_02186c48
data_ov39_02186c48: ; 0x02186c48
.ascii "anc"
.byte 0x00
.global data_ov39_02186c4c
data_ov39_02186c4c: ; 0x02186c4c
.byte 0x48, 0x6c, 0x18, 0x02
.global data_ov39_02186c50
data_ov39_02186c50: ; 0x02186c50
.byte 0x44, 0x6c, 0x18, 0x02
.global data_ov39_02186c54
data_ov39_02186c54: ; 0x02186c54
.byte 0x40, 0x6c, 0x18, 0x02
.global data_ov39_02186c58
data_ov39_02186c58: ; 0x02186c58
.byte 0x3c, 0x6c, 0x18, 0x02
.global data_ov39_02186c5c
data_ov39_02186c5c: ; 0x02186c5c
.byte 0x38, 0x6c, 0x18, 0x02
.global data_ov39_02186c60
data_ov39_02186c60: ; 0x02186c60
.byte 0x34, 0x6c, 0x18, 0x02
.global data_ov39_02186c64
data_ov39_02186c64: ; 0x02186c64
.byte 0x30, 0x6c, 0x18, 0x02
.global data_ov39_02186c68
data_ov39_02186c68: ; 0x02186c68
.byte 0x2c, 0x6c, 0x18, 0x02
.global data_ov39_02186c6c
data_ov39_02186c6c: ; 0x02186c6c
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186c70
data_ov39_02186c70: ; 0x02186c70
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186c74
data_ov39_02186c74: ; 0x02186c74
.byte 0x98, 0xcf, 0x17, 0x02
.global data_ov39_02186c78
data_ov39_02186c78: ; 0x02186c78
.byte 0x08, 0x61, 0x18, 0x02
.global data_ov39_02186c7c
data_ov39_02186c7c: ; 0x02186c7c
.byte 0x0c, 0x96, 0x0a, 0x02
.global data_ov39_02186c80
data_ov39_02186c80: ; 0x02186c80
.byte 0x14, 0x96, 0x0a, 0x02
.global data_ov39_02186c84
data_ov39_02186c84: ; 0x02186c84
.byte 0x50, 0x96, 0x0a, 0x02
.global data_ov39_02186c88
data_ov39_02186c88: ; 0x02186c88
.byte 0xd4, 0x96, 0x0a, 0x02
.global data_ov39_02186c8c
data_ov39_02186c8c: ; 0x02186c8c
.byte 0x40, 0x97, 0x0a, 0x02
.global data_ov39_02186c90
data_ov39_02186c90: ; 0x02186c90
.byte 0x64, 0x97, 0x0a, 0x02
.global data_ov39_02186c94
data_ov39_02186c94: ; 0x02186c94
.byte 0xd0, 0x97, 0x0a, 0x02
.global data_ov39_02186c98
data_ov39_02186c98: ; 0x02186c98
.byte 0xe0, 0x97, 0x0a, 0x02
.global data_ov39_02186c9c
data_ov39_02186c9c: ; 0x02186c9c
.byte 0xf8, 0x97, 0x0a, 0x02
.global data_ov39_02186ca0
data_ov39_02186ca0: ; 0x02186ca0
.byte 0x64, 0x98, 0x0a, 0x02
.global data_ov39_02186ca4
data_ov39_02186ca4: ; 0x02186ca4
.byte 0xbc, 0x98, 0x0a, 0x02
.global data_ov39_02186ca8
data_ov39_02186ca8: ; 0x02186ca8
.byte 0x90, 0x98, 0x0a, 0x02
.global data_ov39_02186cac
data_ov39_02186cac: ; 0x02186cac
.byte 0x68, 0x99, 0x0a, 0x02
.global data_ov39_02186cb0
data_ov39_02186cb0: ; 0x02186cb0
.byte 0x94, 0x99, 0x0a, 0x02
.global data_ov39_02186cb4
data_ov39_02186cb4: ; 0x02186cb4
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186cb8
data_ov39_02186cb8: ; 0x02186cb8
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov39_02186cbc
data_ov39_02186cbc: ; 0x02186cbc
.byte 0x00, 0x00, 0x00, 0x00
; 0x02186cc0
.bss
.global data_ov39_02186cc0
data_ov39_02186cc0:
.space 0x4
.global data_ov39_02186cc4
data_ov39_02186cc4:
.space 0x4
.global data_ov39_02186cc8
data_ov39_02186cc8:
.space 0x4
.global data_ov39_02186ccc
data_ov39_02186ccc:
.space 0x4
.global data_ov39_02186cd0
data_ov39_02186cd0:
.space 0x4
.global data_ov39_02186cd4
data_ov39_02186cd4:
.space 0x4
.global data_ov39_02186cd8
data_ov39_02186cd8:
.space 0x4
.global data_ov39_02186cdc
data_ov39_02186cdc:
.space 0x4
.global data_ov39_02186ce0
data_ov39_02186ce0:
.space 0x4
.global data_ov39_02186ce4
data_ov39_02186ce4:
.space 0x4
.global data_ov39_02186ce8
data_ov39_02186ce8:
.space 0x4
.global data_ov39_02186cec
data_ov39_02186cec:
.space 0x4
.global data_ov39_02186cf0
data_ov39_02186cf0:
.space 0x4
.global data_ov39_02186cf4
data_ov39_02186cf4:
.space 0x4
.global data_ov39_02186cf8
data_ov39_02186cf8:
.space 0x4
.global data_ov39_02186cfc
data_ov39_02186cfc:
.space 0x4