Files
ph/asm/ov36.s
T
2023-09-09 12:26:18 +02:00

12985 lines
268 KiB
ArmAsm

.include "macros/function.inc"
.include "global.inc"
.text
arm_func_start func_ov36_0217bd80
func_ov36_0217bd80: ; 0x0217bd80
stmdb sp!, {r3, lr}
ldr r1, _0217bdac ; =data_027e0fe0
ldr r0, _0217bdb0 ; =0x00001b10
ldr r1, [r1]
mov r2, #4
ldr r1, [r1]
bl func_0202e9dc
cmp r0, #0
ldmia sp!, {r3, pc}
bl func_ov36_0217ccd8
ldmia sp!, {r3, pc}
.align 2, 0
arm_func_end func_ov36_0217bd80
_0217bdac: .word data_027e0fe0
_0217bdb0: .word 0x00001b10
arm_func_start func_ov36_0217bdb4
func_ov36_0217bdb4: ; 0x0217bdb4
stmdb sp!, {r4, lr}
ldrh r2, [r1]
ldr r3, _0217be2c ; =data_02050f54
mov r1, #0x800
mov r2, r2, asr #0x4
mov r4, r2, lsl #0x1
mov r2, r4, lsl #0x1
ldrsh ip, [r3, r2]
add r2, r4, #1
mov r2, r2, lsl #0x1
ldrsh r3, [r3, r2]
mov r2, ip, asr #0x1f
mov lr, r2, lsl #0xc
adds r4, r1, ip, lsl #12
orr lr, lr, ip, lsr #20
mov r2, r3, asr #0x1f
adc ip, lr, #0
mov r4, r4, lsr #0xc
mov r2, r2, lsl #0xc
orr r4, r4, ip, lsl #20
adds ip, r1, r3, lsl #12
orr r2, r2, r3, lsr #20
strh r4, [r0, #0x50]
mov r3, #0
adc r1, r2, #0
mov r2, ip, lsr #0xc
strh r3, [r0, #0x52]
orr r2, r2, r1, lsl #20
strh r2, [r0, #0x54]
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov36_0217bdb4
_0217be2c: .word data_02050f54
arm_func_start func_ov36_0217be30
func_ov36_0217be30: ; 0x0217be30
stmdb sp!, {r3, r4, r5, lr}
sub sp, sp, #0x10
mov r4, r0
bl func_ov00_020c6114
ldr r3, _0217bf40 ; =data_ov36_02186e6c
add r0, r4, #0xfc
add r1, r4, #0x120
mov r2, #0
str r3, [r4]
blx func_ov00_020c0c08
ldr r1, _0217bf44 ; =data_ov36_02186e80
ldr r0, _0217bf48 ; =0x000014cd
str r1, [r4, #0xfc]
str r0, [r4, #0x17c]
mov r1, #0
strb r1, [r4, #0x188]
ldr r2, _0217bf4c ; =data_ov36_02186b04
mov r0, r4
mov r1, #0x54
bl func_ov00_020c5c98
ldr r0, [r4, #4]
ldr r1, _0217bf50 ; =data_ov36_02186b1c
str r0, [r4, #0x104]
ldr r2, [r4, #4]
ldr r0, [r2, #8]
add r0, r2, r0
add r0, r0, #4
bl func_0201e388
str r0, [r4, #0x180]
ldr r2, [r4, #4]
ldr r1, _0217bf54 ; =data_ov36_02186b30
ldr r0, [r2, #8]
add r0, r2, r0
add r0, r0, #4
bl func_0201e388
str r0, [r4, #0x184]
ldr r0, _0217bf58 ; =data_ov36_02186ea0
blx func_02016fe8
mov r5, r0
ldr r1, _0217bf5c ; =data_ov36_02186eb8
add r0, sp, #0
mov r2, #0x10
bl func_020470ec
mov r0, r5
add r1, sp, #0
bl func_0201e544
mov r1, r0
add r0, r4, #0xfc
bl func_ov00_020c0c9c
add r1, r4, #0x108
mov r0, #0x1000
str r0, [r1, #4]
mov r0, #0
strh r0, [r1]
add r0, r4, #0x20
ldr r2, [r0]
add r1, r4, #0xfc
ldr r2, [r2, #0x24]
blx r2
mov r0, r4
mov r1, #0
bl func_ov00_020c5d74
ldr r2, [r4, #0x10]
mov r1, #0x1000
mov r0, r4
str r1, [r2, #0x10]
add sp, sp, #0x10
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov36_0217be30
_0217bf40: .word data_ov36_02186e6c
_0217bf44: .word data_ov36_02186e80
_0217bf48: .word 0x000014cd
_0217bf4c: .word data_ov36_02186b04
_0217bf50: .word data_ov36_02186b1c
_0217bf54: .word data_ov36_02186b30
_0217bf58: .word data_ov36_02186ea0
_0217bf5c: .word data_ov36_02186eb8
arm_func_start func_ov36_0217bf60
func_ov36_0217bf60: ; 0x0217bf60
stmdb sp!, {r3, r4, lr}
sub sp, sp, #4
mov r4, r0
ldrb r0, [r4, #0x189]
cmp r0, #0
beq _0217bfa0
ldr r0, _0217c004 ; =0x000014cd
str r0, [r4, #0x17c]
ldrb r0, [r4, #0x188]
add r1, r0, #8
and r0, r1, #0xff
cmp r0, #0x14
strb r1, [r4, #0x188]
movhi r0, #0x14
strhib r0, [r4, #0x188]
b _0217bfbc
_0217bfa0:
ldr r2, _0217c008 ; =0x00000385
add r0, r4, #0x17c
mov r1, #0
bl func_0202b0f4
cmp r0, #0
movne r0, #0
strneb r0, [r4, #0x188]
_0217bfbc:
mov r0, #0
strb r0, [r4, #0x189]
ldrb r0, [r4, #0x188]
cmp r0, #0
addeq sp, sp, #4
ldmia sp!, {r3, r4, pc}
add r0, r4, #0xfc
bl func_ov00_020c0e04
ldr r2, [r4, #0x1c]
mov r0, #0
str r0, [sp]
ldr r3, [r2, #8]
ldr r0, _0217c00c ; =data_027e0ffc
ldr r1, _0217c010 ; =0x000002cf
add r2, r2, #0x48
bl func_ov00_020cec60
add sp, sp, #4
ldmia sp!, {r3, r4, pc}
.align 2, 0
arm_func_end func_ov36_0217bf60
_0217c004: .word 0x000014cd
_0217c008: .word 0x00000385
_0217c00c: .word data_027e0ffc
_0217c010: .word 0x000002cf
arm_func_start func_ov36_0217c014
func_ov36_0217c014: ; 0x0217c014
stmdb sp!, {r3, r4, r5, lr}
mov r5, r0
ldr r0, _0217c06c ; =data_ov00_020e9360
ldr r4, [r5, #4]
mov r1, #2
bl func_ov00_02079e68
mov r2, r0
ldr r1, [r5, #0x180]
mov r0, r4
bl func_02019534
ldr r0, _0217c06c ; =data_ov00_020e9360
ldr r4, [r5, #4]
mov r1, #2
bl func_ov00_02079e68
mov r2, r0
ldr r1, [r5, #0x184]
mov r0, r4
bl func_02019534
ldrb r1, [r5, #0x188]
ldr r0, [r5, #4]
bl func_020197fc
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov36_0217c014
_0217c06c: .word data_ov00_020e9360
arm_func_start func_ov36_0217c070
func_ov36_0217c070: ; 0x0217c070
stmdb sp!, {r3, r4, r5, lr}
sub sp, sp, #0x48
ldr r3, _0217c114 ; =0xfffffc39
ldr r2, _0217c118 ; =0x00000ccd
mov ip, #0
mov r4, r0
str ip, [sp, #0x24]
str r3, [sp, #0x28]
str r2, [sp, #0x2c]
ldr r0, [r4, #0x1c]
mov r5, r1
ldrsh r1, [r0, #0x78]
add r0, sp, #0x24
bl func_ov00_020a61ac
add r1, sp, #0x24
add r2, sp, #0x30
mov r0, r5
bl func_01ff9bc4
ldr r0, [r4, #0x1c]
ldr r3, _0217c11c ; =data_02050f54
ldrh r1, [r0, #0x78]
add r0, sp, #0
mov r1, r1, asr #0x4
mov r2, r1, lsl #0x1
mov r1, r2, lsl #0x1
add r2, r2, #1
mov r2, r2, lsl #0x1
ldrsh r1, [r3, r1]
ldrsh r2, [r3, r2]
blx func_01ff8214
ldr r1, [r4, #0x17c]
mov r0, r4
str r1, [sp, #0x3c]
str r1, [sp, #0x40]
str r1, [sp, #0x44]
add r1, sp, #0x3c
add r2, sp, #0
add r3, sp, #0x30
bl func_ov00_020c5f80
add sp, sp, #0x48
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov36_0217c070
_0217c114: .word 0xfffffc39
_0217c118: .word 0x00000ccd
_0217c11c: .word data_02050f54
arm_func_start func_ov36_0217c120
func_ov36_0217c120: ; 0x0217c120
stmdb sp!, {r4, lr}
ldr r3, _0217c144 ; =data_ov36_02186adc
mov r2, #0xdc
mov r4, r0
bl func_ov00_020c607c
ldr r1, _0217c148 ; =data_ov36_02186e58
mov r0, r4
str r1, [r4]
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov36_0217c120
_0217c144: .word data_ov36_02186adc
_0217c148: .word data_ov36_02186e58
arm_func_start func_ov36_0217c14c
func_ov36_0217c14c: ; 0x0217c14c
ldr r2, _0217c15c ; =data_ov36_02186d0c
str r2, [r0]
strh r1, [r0, #4]
bx lr
.align 2, 0
arm_func_end func_ov36_0217c14c
_0217c15c: .word data_ov36_02186d0c
arm_func_start func_ov36_0217c160
func_ov36_0217c160: ; 0x0217c160
ldr r3, [r1, #4]
ldr r2, _0217c198 ; =0x47524d47
cmp r3, r2
bne _0217c190
ldrb r2, [r1, #0x11a]
cmp r2, #0
beq _0217c190
ldrh r2, [r0, #4]
ldrh r0, [r1, #0x22]
cmp r2, r0
moveq r0, #1
bxeq lr
_0217c190:
mov r0, #0
bx lr
.align 2, 0
arm_func_end func_ov36_0217c160
_0217c198: .word 0x47524d47
arm_func_start func_ov36_0217c19c
func_ov36_0217c19c: ; 0x0217c19c
cmp r2, #9
moveq r0, #1
movne r0, #0
bx lr
arm_func_end func_ov36_0217c19c
arm_func_start func_ov36_0217c1ac
func_ov36_0217c1ac: ; 0x0217c1ac
mov r0, #0
bx lr
arm_func_end func_ov36_0217c1ac
arm_func_start func_ov36_0217c1b4
func_ov36_0217c1b4: ; 0x0217c1b4
stmdb sp!, {r4, lr}
mov r1, #0
mov r4, r0
blx func_ov00_020a956c
ldr r0, _0217c1fc ; =data_ov36_02186e10
mov r1, #0
str r0, [r4]
strh r1, [r4, #0xec]
sub r0, r1, #1
str r0, [r4, #0x100]
strb r1, [r4, #0x104]
str r1, [r4, #0x5c]
str r1, [r4, #0x60]
add r0, r4, #0x8c
str r1, [r4, #0x64]
bl func_01ff892c
mov r0, r4
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov36_0217c1b4
_0217c1fc: .word data_ov36_02186e10
arm_func_start func_ov36_0217c200
func_ov36_0217c200: ; 0x0217c200
ldr ip, _0217c210 ; =func_ov00_020a9998
mov r1, #6
mov r2, #2
bx ip
.align 2, 0
arm_func_end func_ov36_0217c200
_0217c210: .word func_ov00_020a9998
arm_func_start func_ov36_0217c214
func_ov36_0217c214: ; 0x0217c214
mov r1, r0
ldr r0, [r1, #4]
ldr ip, _0217c22c ; =func_ov36_0217c274
ldr r0, [r0, #0x2c]
add r0, r0, #0x178
bx ip
.align 2, 0
arm_func_end func_ov36_0217c214
_0217c22c: .word func_ov36_0217c274
arm_func_start func_ov36_0217c230
func_ov36_0217c230: ; 0x0217c230
mov r1, r0
ldr r0, [r1, #4]
ldr ip, _0217c248 ; =func_ov36_0217c51c
ldr r0, [r0, #0x2c]
add r0, r0, #0x178
bx ip
.align 2, 0
arm_func_end func_ov36_0217c230
_0217c248: .word func_ov36_0217c51c
arm_func_start func_ov36_0217c24c
func_ov36_0217c24c: ; 0x0217c24c
ldr r1, _0217c26c ; =func_ov36_0217c214
mov r2, #2
str r1, [r0, #0x24]
ldr r1, _0217c270 ; =func_ov36_0217c230
strb r2, [r0, #0x92]
str r1, [r0, #0x1c]
strb r2, [r0, #0x90]
bx lr
.align 2, 0
arm_func_end func_ov36_0217c24c
_0217c26c: .word func_ov36_0217c214
_0217c270: .word func_ov36_0217c230
arm_func_start func_ov36_0217c274
func_ov36_0217c274: ; 0x0217c274
stmdb sp!, {r3, r4, r5, r6, r7, r8, lr}
sub sp, sp, #0xb4
mov r8, r0
ldrb r0, [r8, #0x104]
mov r7, r1
cmp r0, #0
bne _0217c2f8
mov r0, #1
strb r0, [r8, #0x104]
ldr r0, [r7, #4]
ldr r1, _0217c508 ; =data_ov36_02186b44
ldr r0, [r0, #4]
add r0, r0, #0x40
bl func_0201e388
str r0, [r8, #0xf4]
ldr r0, [r7, #4]
ldr r1, _0217c50c ; =data_ov36_02186b58
ldr r0, [r0, #4]
add r0, r0, #0x40
bl func_0201e388
str r0, [r8, #0xf8]
ldr r0, [r7, #4]
ldr r1, _0217c510 ; =data_ov36_02186b6c
ldr r0, [r0, #4]
add r0, r0, #0x40
bl func_0201e388
str r0, [r8, #0xf0]
ldr r0, [r7, #4]
ldr r1, _0217c514 ; =data_ov36_02186b80
ldr r0, [r0, #4]
add r0, r0, #0x40
bl func_0201e388
str r0, [r8, #0xfc]
_0217c2f8:
ldr r0, [r7, #8]
ldr r4, [r7, #4]
tst r0, #0x10
ldrneb r6, [r7, #0xae]
ldr r0, [r8, #0xf4]
mvneq r6, #0
cmp r6, r0
bne _0217c370
ldrb r0, [r4, #0x25]
cmp r0, #2
bne _0217c334
mov r0, #3
strb r0, [r7, #0x92]
strb r0, [r4, #0x25]
b _0217c494
_0217c334:
cmp r0, #3
bne _0217c494
add r0, sp, #0x84
mov r1, #0
bl func_0201b1bc
ldr r3, [sp, #0xb0]
ldr r2, [sp, #0xac]
ldr r1, [sp, #0xa8]
mov r0, #2
str r1, [r8, #0x5c]
str r2, [r8, #0x60]
str r3, [r8, #0x64]
strb r0, [r7, #0x92]
strb r0, [r4, #0x25]
b _0217c494
_0217c370:
ldr r0, [r8, #0xf0]
cmp r6, r0
bne _0217c420
ldrb r0, [r4, #0x25]
cmp r0, #2
bne _0217c3e4
ldr r5, [r7, #0xb4]
ldr r3, _0217c518 ; =data_02050f54
ldr r1, [r5]
add r0, sp, #0x60
bic r1, r1, #2
str r1, [r5]
ldrh r1, [r8, #0xec]
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_01ff8214
add r1, r5, #0x28
add r0, sp, #0x60
mov r2, r1
bl func_0202e030
mov r0, #3
strb r0, [r7, #0x92]
strb r0, [r4, #0x25]
b _0217c494
_0217c3e4:
cmp r0, #3
bne _0217c494
add r0, sp, #0x30
mov r1, #0
bl func_0201b1bc
ldr r3, [sp, #0x5c]
ldr r2, [sp, #0x58]
ldr r1, [sp, #0x54]
mov r0, #2
str r1, [r8, #0x68]
str r2, [r8, #0x6c]
str r3, [r8, #0x70]
strb r0, [r7, #0x92]
strb r0, [r4, #0x25]
b _0217c494
_0217c420:
ldr r0, [r8, #0xfc]
cmp r6, r0
bne _0217c494
ldrb r0, [r4, #0x25]
cmp r0, #2
bne _0217c448
mov r0, #3
strb r0, [r7, #0x92]
strb r0, [r4, #0x25]
b _0217c494
_0217c448:
cmp r0, #3
bne _0217c494
mov r0, #0
strb r0, [r8, #0x105]
bl func_02018450
mov ip, r0
add r5, r8, #0x8c
ldmia ip!, {r0, r1, r2, r3}
stmia r5!, {r0, r1, r2, r3}
ldmia ip!, {r0, r1, r2, r3}
stmia r5!, {r0, r1, r2, r3}
ldmia ip!, {r0, r1, r2, r3}
stmia r5!, {r0, r1, r2, r3}
add r0, r8, #0xbc
mov r1, #0
bl func_0201b1bc
mov r0, #2
strb r0, [r7, #0x92]
strb r0, [r4, #0x25]
_0217c494:
ldr r0, [r8, #0xf8]
cmp r6, r0
addne sp, sp, #0xb4
ldmia sp!, {r3, r4, r5, r6, r7, r8, pc}
ldrb r0, [r4, #0x25]
cmp r0, #2
bne _0217c4c4
mov r0, #3
strb r0, [r7, #0x92]
add sp, sp, #0xb4
strb r0, [r4, #0x25]
ldmia sp!, {r3, r4, r5, r6, r7, r8, pc}
_0217c4c4:
cmp r0, #3
addne sp, sp, #0xb4
ldmia sp!, {r3, r4, r5, r6, r7, r8, pc}
add r0, sp, #0
mov r1, #0
bl func_0201b1bc
ldr r3, [sp, #0x2c]
ldr r2, [sp, #0x28]
ldr r1, [sp, #0x24]
mov r0, #2
str r1, [r8, #0x74]
str r2, [r8, #0x78]
str r3, [r8, #0x7c]
strb r0, [r7, #0x92]
strb r0, [r4, #0x25]
add sp, sp, #0xb4
ldmia sp!, {r3, r4, r5, r6, r7, r8, pc}
.align 2, 0
arm_func_end func_ov36_0217c274
_0217c508: .word data_ov36_02186b44
_0217c50c: .word data_ov36_02186b58
_0217c510: .word data_ov36_02186b6c
_0217c514: .word data_ov36_02186b80
_0217c518: .word data_02050f54
arm_func_start func_ov36_0217c51c
func_ov36_0217c51c: ; 0x0217c51c
stmdb sp!, {r3, r4, r5, lr}
mov r5, r0
ldr r2, [r5, #0x100]
mvn r0, #0
mov r4, r1
cmp r2, r0
bne _0217c558
ldr r0, [r4, #4]
ldr r1, _0217c59c ; =data_ov36_02186b94
ldr r2, [r0, #4]
ldr r0, [r2, #8]
add r0, r2, r0
add r0, r0, #4
bl func_0201e388
str r0, [r5, #0x100]
_0217c558:
ldr r0, [r4, #8]
tst r0, #8
ldrneb r1, [r4, #0xad]
ldr r0, [r5, #0x100]
mvneq r1, #0
cmp r0, r1
ldmia sp!, {r3, r4, r5, pc}
ldr r0, [r4, #4]
ldr r0, [r0, #0x2c]
bl func_ov36_02185428
cmp r0, #0
ldmia 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_ov36_0217c51c
_0217c59c: .word data_ov36_02186b94
arm_func_start func_ov36_0217c5a0
func_ov36_0217c5a0: ; 0x0217c5a0
stmdb sp!, {r3, r4, lr}
sub sp, sp, #0xc
mov r4, r0
add r0, r1, #0x5c
add r2, sp, #0
add r1, r1, #0x8c
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_ov36_0217c5a0
arm_func_start func_ov36_0217c5d0
func_ov36_0217c5d0: ; 0x0217c5d0
stmdb sp!, {r3, r4, lr}
sub sp, sp, #0xc
mov r4, r0
add r0, r1, #0x68
add r2, sp, #0
add r1, r1, #0x8c
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_ov36_0217c5d0
arm_func_start func_ov36_0217c600
func_ov36_0217c600: ; 0x0217c600
stmdb sp!, {r3, r4, lr}
sub sp, sp, #0xc
mov r4, r0
add r0, r1, #0x74
add r2, sp, #0
add r1, r1, #0x8c
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_ov36_0217c600
arm_func_start func_ov36_0217c630
func_ov36_0217c630: ; 0x0217c630
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #0x60
mov r4, r1
ldrb r1, [r4, #0x105]
mov r5, r0
mov r6, r2
cmp r1, #0
bne _0217c6e8
add r2, sp, #0x30
add r0, r4, #0xbc
add r1, r4, #0x8c
bl func_01ff8e84
add r0, sp, #0x30
add r1, sp, #0xc
bl func_020079d8
cmp r6, #0
ldr r2, _0217c6fc ; =0x00000266
mov r0, #0
beq _0217c690
ldr r1, _0217c700 ; =0x000004cd
str r2, [sp]
str r1, [sp, #4]
str r0, [sp, #8]
b _0217c6a0
_0217c690:
rsb r1, r2, #0xc00
str r2, [sp]
str r1, [sp, #4]
str r0, [sp, #8]
_0217c6a0:
add r0, sp, #0
add r1, sp, #0xc
mov r2, r0
bl func_01ff88b0
ldr r1, [sp]
ldr r0, [sp, #0x54]
ldr lr, [sp, #8]
ldr ip, [sp, #0x5c]
ldr r3, [sp, #4]
ldr r2, [sp, #0x58]
add r0, r1, r0
str r0, [r4, #0x80]
add r0, r3, r2
str r0, [r4, #0x84]
add r0, lr, ip
str r0, [r4, #0x88]
mov r0, #1
strb r0, [r4, #0x105]
_0217c6e8:
add r0, r4, #0x80
ldmia r0!, {r0, r1, r2}
stmia r5!, {r0, r1, r2}
add sp, sp, #0x60
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
arm_func_end func_ov36_0217c630
_0217c6fc: .word 0x00000266
_0217c700: .word 0x000004cd
arm_func_start func_ov36_0217c704
func_ov36_0217c704: ; 0x0217c704
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #0x10
ldr r2, _0217c7d0 ; =data_ov36_02186848
mov r4, r0
mov r1, #0xdb
bl func_ov00_020c5c98
add r0, r4, #0x20
bl func_ov36_0217c200
add r0, r4, #0x20
ldr r1, [r0]
ldr r1, [r1, #8]
blx r1
str r0, [r4, #0x19c]
ldr r1, _0217c7d4 ; =0x00000333
add r0, r4, #0x20
str r1, [r4, #0x210]
ldr r1, [r0]
ldr r1, [r1, #8]
blx r1
str r0, [r4, #0x21c]
ldr r1, _0217c7d8 ; =data_027e0fec
ldr r0, _0217c7dc ; =data_ov36_02186ec8
ldr r1, [r1]
add r1, r1, #0x2000
ldr r6, [r1, #0xff0]
blx func_02016fe8
mov r5, r0
ldr r1, _0217c7e0 ; =data_ov36_02186edc
add r0, sp, #0
mov r2, #0x10
bl func_020470ec
mov r0, r5
add r1, sp, #0
bl func_0201e544
mov r1, r0
mov r2, r6
add r0, r4, #0x214
mov r3, #1
bl func_ov00_020c0cc8
add r0, r4, #0x20
ldr r2, [r0]
add r1, r4, #0x214
ldr r2, [r2, #0x24]
blx r2
mov r0, #0
str r0, [r4, #0x224]
ldr r1, _0217c7e4 ; =data_ov36_02186c80
mov r0, r4
bl func_ov36_0217c7e8
add sp, sp, #0x10
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
arm_func_end func_ov36_0217c704
_0217c7d0: .word data_ov36_02186848
_0217c7d4: .word 0x00000333
_0217c7d8: .word data_027e0fec
_0217c7dc: .word data_ov36_02186ec8
_0217c7e0: .word data_ov36_02186edc
_0217c7e4: .word data_ov36_02186c80
arm_func_start func_ov36_0217c7e8
func_ov36_0217c7e8: ; 0x0217c7e8
ldr r1, [r1]
ldr ip, _0217c7fc ; =func_ov00_020c0e04
str r1, [r0, #0x228]
add r0, r0, #0x214
bx ip
.align 2, 0
arm_func_end func_ov36_0217c7e8
_0217c7fc: .word func_ov00_020c0e04
arm_func_start func_ov36_0217c800
func_ov36_0217c800: ; 0x0217c800
stmdb sp!, {r3, r4, r5, lr}
mov r4, r0
ldr r1, [r4, #0x208]
add r2, r4, #0x128
mov r0, #0x6c
mla r0, r1, r0, r2
bl func_ov00_020c0e04
mov r0, r4
bl func_ov36_0217cc84
cmp r0, #0
bne _0217c8b8
ldr r1, [r4, #0x20c]
ldr r0, [r4, #0x210]
add r5, r1, r0
str r5, [r4, #0x20c]
cmp r5, #0x1000
ble _0217c850
mov r0, r4
bl func_ov36_0217cc18
b _0217c8c0
_0217c850:
ldr r1, [r4, #0x208]
add r2, r4, #0x128
mov r0, #0x6c
mla r0, r1, r0, r2
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]
b _0217c8c0
_0217c8b8:
ldr r0, _0217c918 ; =0x00000333
str r0, [r4, #0x210]
_0217c8c0:
ldr r1, [r4, #0x208]
mov r2, #0
add r0, r4, r1, lsl #2
ldr r0, [r0, #0x200]
cmp r0, #0x1e
bne _0217c900
mov r0, #0x6c
mla r0, r1, r0, r4
ldr r0, [r0, #0x13c]
mov r1, r2
cmp r0, #0x10000
blt _0217c8f8
cmp r0, #0x51000
movle r1, #1
_0217c8f8:
cmp r1, #0
movne r2, #1
_0217c900:
cmp r2, #0
movne r0, #1
strneb r0, [r4, #0x409]
add r0, r4, #0x280
bl func_ov00_020c5e20
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov36_0217c800
_0217c918: .word 0x00000333
arm_func_start func_ov36_0217c91c
func_ov36_0217c91c: ; 0x0217c91c
stmdb sp!, {r3, r4, lr}
sub sp, sp, #0xc
mov r4, r0
ldrb r0, [r4, #0x408]
cmp r0, #0
addeq sp, sp, #0xc
ldmia sp!, {r3, r4, pc}
add r0, sp, #0
add r1, r4, #0x20
bl func_ov36_0217c5a0
add r1, sp, #0
add r0, r4, #0x280
bl func_ov36_0217c070
add sp, sp, #0xc
ldmia sp!, {r3, r4, pc}
arm_func_end func_ov36_0217c91c
arm_func_start func_ov36_0217c958
func_ov36_0217c958: ; 0x0217c958
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 _0217c998
ldr r1, [r5, #0x18]
mov r0, #0x14
mla r0, r4, r0, r1
ldr r0, [r0, #0x10]
cmp r0, #0
addeq sp, sp, #8
ldmia sp!, {r3, r4, r5, pc}
_0217c998:
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
ldmia sp!, {r3, r4, r5, pc}
ldr r2, [r5, #0x208]
add r3, r5, #0x128
mov r0, #0x6c
mla r0, r2, r0, r3
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 r3, [r5, #0x208]
ldr r2, [r0]
add ip, r5, #0x128
mov r1, #0x6c
mla r1, r3, r1, ip
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_ov36_0217c958
arm_func_start func_ov36_0217ca34
func_ov36_0217ca34: ; 0x0217ca34
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
ldmia sp!, {r3, r4, r5, pc}
mvn r2, #0
cmp r3, r2
bne _0217ca74
bl func_ov36_0217c958
add sp, sp, #8
ldmia sp!, {r3, r4, r5, pc}
_0217ca74:
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
ldmia sp!, {r3, r4, r5, pc}
ldr r0, [r5, #0x20c]
cmp r0, #0x800
ble _0217cafc
ldr r0, [r5, #0x208]
add ip, r5, #0x128
cmp r0, #0
moveq r2, #1
movne r2, #0
mov r0, #0x6c
mla r1, r2, r0, ip
str r2, [r5, #0x208]
str r1, [r5, #0x10]
ldr r1, [r5, #0x208]
mov r2, #0
add r1, r5, r1, lsl #2
str r4, [r1, #0x200]
str r2, [r5, #0x20c]
ldr r3, [r5, #0x208]
ldr r1, [sp, #4]
mla r0, r3, r0, ip
ldr r3, [sp]
bl func_ov00_020c0cc8
b _0217cb6c
_0217cafc:
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 _0217cb40
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 _0217cb6c
_0217cb40:
add r0, r5, r1, lsl #2
str r4, [r0, #0x200]
mov r2, #0
str r2, [r5, #0x20c]
ldr r1, [r5, #0x208]
add r3, r5, #0x128
mov r0, #0x6c
mla r0, r1, r0, r3
ldr r1, [sp, #4]
ldr r3, [sp]
bl func_ov00_020c0cc8
_0217cb6c:
ldr r0, [r5, #0xc]
ldr r1, [r0]
ldr r1, [r1, #0x2c]
blx r1
ldr r0, [r5, #0xc]
ldr r3, [r5, #0x208]
ldr r2, [r0]
add r4, r5, #0x128
mov r1, #0x6c
mla r1, r3, r1, r4
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 r1, [r5, #0x208]
add r2, r5, #0x128
mov r0, #0x6c
mla r0, r1, r0, r2
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_ov36_0217ca34
arm_func_start func_ov36_0217cc18
func_ov36_0217cc18: ; 0x0217cc18
stmdb sp!, {r4, lr}
mov r4, r0
ldr r0, [r4, #0x20c]
cmp r0, #0x1000
ldmia 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 r3, [r4, #0x208]
ldr r2, [r0]
add ip, r4, #0x128
mov r1, #0x6c
mla r1, r3, r1, ip
ldr r2, [r2, #0x24]
blx r2
ldr r1, [r4, #0x208]
add r2, r4, #0x128
mov r0, #0x6c
mla r0, r1, r0, r2
bl func_ov00_020c0d4c
mov r1, #0x1000
str r1, [r0, #4]
ldmia sp!, {r4, pc}
arm_func_end func_ov36_0217cc18
arm_func_start func_ov36_0217cc84
func_ov36_0217cc84: ; 0x0217cc84
ldr r0, [r0, #0x20c]
cmp r0, #0x1000
moveq r0, #1
movne r0, #0
bx lr
arm_func_end func_ov36_0217cc84
arm_func_start func_ov36_0217cc98
func_ov36_0217cc98: ; 0x0217cc98
stmdb sp!, {r3, r4, r5, r6, r7, lr}
mov ip, #0x14
mul r4, r1, ip
mov r7, r0
ldr r1, [r7, #0x18]
ldr r0, [r7, #8]
mov r6, r2
add r1, r1, r4
mov r5, r3
bl func_0201e544
str r0, [r6]
ldr r0, [r7, #0x18]
add r0, r0, r4
ldr r0, [r0, #0x10]
str r0, [r5]
ldmia sp!, {r3, r4, r5, r6, r7, pc}
arm_func_end func_ov36_0217cc98
arm_func_start func_ov36_0217ccd8
func_ov36_0217ccd8: ; 0x0217ccd8
stmdb sp!, {r3, r4, r5, lr}
mov r4, r0
bl func_ov00_020c1554
ldr r5, _0217cf94 ; =data_ov36_02186d18
mov r1, r4
add r0, r4, #0x158
add r2, r4, #0x178
add r3, r4, #0x280
str r5, [r4]
bl func_ov00_020c5c2c
ldr r1, _0217cf98 ; =data_ov36_02186dec
add r0, r4, #0x178
str r1, [r4, #0x158]
bl func_ov36_0217c1b4
ldr r1, _0217cf9c ; =func_ov00_020a9b4c
add r0, r4, #0x280
str r1, [sp]
mov r1, #2
mov r2, #0x6c
ldr r3, _0217cfa0 ; =func_ov36_0217d01c
bl func_0204f614
mov r2, #0
str r2, [r4, #0x360]
mov r0, #0x1000
str r0, [r4, #0x364]
add r0, r4, #0x36c
add r1, r4, #0x390
blx func_ov00_020c0c08
ldr r1, _0217cfa4 ; =data_ov36_02186e00
add r0, r4, #0x3d8
str r1, [r4, #0x36c]
mov r1, r4
bl func_ov36_0217be30
mov r0, #0
str r0, [r4, #0x564]
str r0, [r4, #0x568]
str r0, [r4, #0x56c]
sub r0, r0, #1
str r0, [r4, #0x358]
str r0, [r4, #0x35c]
add r0, r4, #0x570
mov r1, r4
bl func_ov36_0217c120
mvn r0, #0
str r0, [r4, #0x66c]
ldr r1, _0217cfa8 ; =func_ov36_0217cfec
add r0, r4, #0x670
str r1, [sp]
mov r1, #4
mov r2, #0xc
ldr r3, _0217cfac ; =func_ov36_0217d008
bl func_0204f614
mov r1, #0
str r1, [r4, #0x6a0]
sub r0, r1, #1
str r0, [r4, #0x6a4]
str r1, [r4, #0x6a8]
ldr r1, _0217cfb0 ; =func_ov00_020b7d74
add r0, r4, #0x2ac
str r1, [sp]
add r0, r0, #0x400
mov r1, #2
mov r2, #4
ldr r3, _0217cfb4 ; =func_ov36_0217d294
bl func_0204f614
mov r1, #0
str r1, [r4, #0x6b4]
add r0, r4, #0x6c0
str r1, [r4, #0x6b8]
blx func_0202ab78
add r0, r4, #0x3b4
add r0, r0, #0x400
mov r1, #0x1000000
bl func_ov00_020d18f4
mvn r0, #0
str r0, [r4, #0x810]
str r0, [r4, #0x814]
str r0, [r4, #0x818]
add r1, r4, #0x78
str r0, [r4, #0x81c]
mov r0, #0
str r0, [r4, #0x85c]
str r0, [r4, #0x864]
str r0, [r4, #0x868]
add r1, r1, #0x800
mov r2, #4
str r0, [r4, #0x870]
bl func_020078f4
add lr, r4, #0x800
mov r0, #0
strh r0, [lr, #0x7c]
strh r0, [lr, #0x7e]
strh r0, [lr, #0x86]
strh r0, [lr, #0x88]
strh r0, [lr, #0x8a]
strh r0, [lr, #0x8c]
strh r0, [lr, #0x92]
strh r0, [lr, #0x94]
strh r0, [lr, #0x96]
strh r0, [lr, #0x98]
strh r0, [lr, #0xa0]
strh r0, [lr, #0xa2]
strb r0, [r4, #0x8a4]
strb r0, [r4, #0x8a5]
strb r0, [r4, #0x8a6]
mov r1, #2
strb r1, [r4, #0x8a7]
strb r0, [r4, #0x8a8]
strb r0, [r4, #0x8a9]
mov r1, #1
strb r1, [r4, #0x8ab]
ldr r2, _0217cfb8 ; =data_ov00_020e2f04
strb r0, [r4, #0x8ac]
str r2, [r4, #0x8b0]
strb r1, [r4, #0x8b4]
strb r0, [r4, #0x8b5]
str r0, [r4, #0x8b8]
str r0, [r4, #0x8bc]
ldr r2, _0217cfbc ; =data_ov00_020e2e3c
str r0, [r4, #0x8c0]
str r2, [r4, #0x8b0]
str r0, [r4, #0x8d0]
str r0, [r4, #0x8c4]
str r0, [r4, #0x8c8]
str r0, [r4, #0x8cc]
ldr r3, _0217cfc0 ; =data_ov36_02186dd4
add r2, r4, #0x108
str r3, [r4, #0x8d8]
strb r0, [r4, #0x8dc]
str r0, [r4, #0x8e0]
str r0, [r4, #0x8e4]
str r0, [r4, #0x8e8]
add r3, r4, #0x178
str r0, [r4, #0x8ec]
add r2, r2, #0x800
str r2, [r4, #0x8f4]
add r2, r3, #0x1000
str r2, [r4, #0x8f8]
mov r2, #0x870
str r2, [r4, #0x8fc]
add r2, r4, #0xa10
str r0, [r4, #0x904]
add ip, r4, #0x1000
str r0, [ip, #0x9e8]
str r0, [ip, #0x9ec]
str r0, [ip, #0x9f0]
add r3, r4, #0xa90
str r0, [ip, #0x9f4]
add r2, r2, #0x1000
str r2, [ip, #0x9fc]
add r2, r3, #0x1000
mov r5, #0x80
str r2, [ip, #0xa00]
str r5, [ip, #0xa04]
str r0, [ip, #0xa0c]
sub r3, r5, #0x81
str r3, [r4, #0x810]
str r3, [r4, #0x814]
str r3, [r4, #0x818]
str r3, [r4, #0x81c]
strb r1, [r4, #0x128]
rsb r1, r1, #0x10000
strh r1, [r4, #0x7a]
strh r0, [lr, #0x80]
add r2, r4, #0x78
strh r3, [lr, #0x82]
add r1, r2, #0x800
strh r3, [lr, #0x84]
mov r2, #4
bl func_020078f4
ldr r1, [r4, #0x878]
mov r0, r4
orr r1, r1, #0x2080
str r1, [r4, #0x878]
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov36_0217ccd8
_0217cf94: .word data_ov36_02186d18
_0217cf98: .word data_ov36_02186dec
_0217cf9c: .word func_ov00_020a9b4c
_0217cfa0: .word func_ov36_0217d01c
_0217cfa4: .word data_ov36_02186e00
_0217cfa8: .word func_ov36_0217cfec
_0217cfac: .word func_ov36_0217d008
_0217cfb0: .word func_ov00_020b7d74
_0217cfb4: .word func_ov36_0217d294
_0217cfb8: .word data_ov00_020e2f04
_0217cfbc: .word data_ov00_020e2e3c
_0217cfc0: .word data_ov36_02186dd4
arm_func_start func_ov36_0217cfc4
func_ov36_0217cfc4: ; 0x0217cfc4
stmdb sp!, {r4, lr}
mov r4, r0
bl func_ov00_02081f6c
mov r0, r4
ldmia sp!, {r4, pc}
arm_func_end func_ov36_0217cfc4
arm_func_start func_ov36_0217cfd8
func_ov36_0217cfd8: ; 0x0217cfd8
stmdb sp!, {r4, lr}
mov r4, r0
blx func_ov00_020a95ec
mov r0, r4
ldmia sp!, {r4, pc}
arm_func_end func_ov36_0217cfd8
arm_func_start func_ov36_0217cfec
func_ov36_0217cfec: ; 0x0217cfec
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_ov36_0217cfec
arm_func_start func_ov36_0217d008
func_ov36_0217d008: ; 0x0217d008
mov r2, #0
str r2, [r0]
sub r1, r2, #1
stmib r0, {r1, r2}
bx lr
arm_func_end func_ov36_0217d008
arm_func_start func_ov36_0217d01c
func_ov36_0217d01c: ; 0x0217d01c
stmdb sp!, {r4, lr}
mov r4, r0
add r1, r4, #0x24
mov r2, #0
blx func_ov00_020c0c08
ldr r1, _0217d040 ; =data_ov36_02186e00
mov r0, r4
str r1, [r4]
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov36_0217d01c
_0217d040: .word data_ov36_02186e00
arm_func_start func_ov36_0217d044
func_ov36_0217d044: ; 0x0217d044
stmdb sp!, {r4, lr}
ldr r1, _0217d154 ; =data_ov36_02186d18
mov r4, r0
ldr r0, _0217d158 ; =data_027e0f6c
str r1, [r4]
ldr r0, [r0]
add r1, r4, #0x8b0
bl func_ov00_02093af0
add r0, r4, #0xd8
add r0, r0, #0x800
bl func_ov00_02081f6c
add r0, r4, #0x8b0
bl func_ov00_02094824
add r0, r4, #0x3b4
add r0, r0, #0x400
bl func_ov00_020d1980
add r0, r4, #0x6c0
blx func_0202ab64
add r0, r4, #0x2ac
add r0, r0, #0x400
mov r1, #2
mov r2, #4
ldr r3, _0217d15c ; =func_ov00_020b7d74
bl func_0204f754
add r0, r4, #0x6a0
bl func_ov00_020b7e6c
add r0, r4, #0x6a0
bl func_ov00_020b7df0
add r0, r4, #0x670
mov r1, #4
mov r2, #0xc
ldr r3, _0217d160 ; =func_ov36_0217cfec
bl func_0204f754
add r0, r4, #0x1ec
add r0, r0, #0x400
blx func_ov00_020a9b6c
add r0, r4, #0x590
blx func_ov00_020a95a4
add r0, r4, #0x16c
add r0, r0, #0x400
bl func_ov00_020b7d74
add r0, r4, #0x168
add r0, r0, #0x400
bl func_ov00_020b7d74
add r0, r4, #0x164
add r0, r0, #0x400
bl func_ov00_020b7d74
add r0, r4, #0xd4
add r0, r0, #0x400
blx func_ov00_020a9b6c
add r0, r4, #0x54
add r0, r0, #0x400
blx func_ov00_020a9b6c
add r0, r4, #0x3f8
blx func_ov00_020a95a4
add r0, r4, #0x36c
blx func_ov00_020a9b4c
add r0, r4, #0x280
mov r1, #2
mov r2, #0x6c
ldr r3, _0217d164 ; =func_ov00_020a9b4c
bl func_0204f754
add r0, r4, #0x178
blx func_ov00_020a95ec
mov r0, r4
bl func_ov00_020c1730
mov r0, r4
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov36_0217d044
_0217d154: .word data_ov36_02186d18
_0217d158: .word data_027e0f6c
_0217d15c: .word func_ov00_020b7d74
_0217d160: .word func_ov36_0217cfec
_0217d164: .word func_ov00_020a9b4c
arm_func_start func_ov36_0217d168
func_ov36_0217d168: ; 0x0217d168
stmdb sp!, {r4, lr}
ldr r1, _0217d280 ; =data_ov36_02186d18
mov r4, r0
ldr r0, _0217d284 ; =data_027e0f6c
str r1, [r4]
ldr r0, [r0]
add r1, r4, #0x8b0
bl func_ov00_02093af0
add r0, r4, #0xd8
add r0, r0, #0x800
bl func_ov00_02081f6c
add r0, r4, #0x8b0
bl func_ov00_02094824
add r0, r4, #0x3b4
add r0, r0, #0x400
bl func_ov00_020d1980
add r0, r4, #0x6c0
blx func_0202ab64
add r0, r4, #0x2ac
add r0, r0, #0x400
mov r1, #2
mov r2, #4
ldr r3, _0217d288 ; =func_ov00_020b7d74
bl func_0204f754
add r0, r4, #0x6a0
bl func_ov00_020b7e6c
add r0, r4, #0x6a0
bl func_ov00_020b7df0
add r0, r4, #0x670
mov r1, #4
mov r2, #0xc
ldr r3, _0217d28c ; =func_ov36_0217cfec
bl func_0204f754
add r0, r4, #0x1ec
add r0, r0, #0x400
blx func_ov00_020a9b6c
add r0, r4, #0x590
blx func_ov00_020a95a4
add r0, r4, #0x16c
add r0, r0, #0x400
bl func_ov00_020b7d74
add r0, r4, #0x168
add r0, r0, #0x400
bl func_ov00_020b7d74
add r0, r4, #0x164
add r0, r0, #0x400
bl func_ov00_020b7d74
add r0, r4, #0xd4
add r0, r0, #0x400
blx func_ov00_020a9b6c
add r0, r4, #0x54
add r0, r0, #0x400
blx func_ov00_020a9b6c
add r0, r4, #0x3f8
blx func_ov00_020a95a4
add r0, r4, #0x36c
blx func_ov00_020a9b4c
add r0, r4, #0x280
mov r1, #2
mov r2, #0x6c
ldr r3, _0217d290 ; =func_ov00_020a9b4c
bl func_0204f754
add r0, r4, #0x178
blx func_ov00_020a95ec
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_ov36_0217d168
_0217d280: .word data_ov36_02186d18
_0217d284: .word data_027e0f6c
_0217d288: .word func_ov00_020b7d74
_0217d28c: .word func_ov36_0217cfec
_0217d290: .word func_ov00_020a9b4c
arm_func_start func_ov36_0217d294
func_ov36_0217d294: ; 0x0217d294
mov r1, #0
str r1, [r0]
bx lr
arm_func_end func_ov36_0217d294
arm_func_start func_ov36_0217d2a0
func_ov36_0217d2a0: ; 0x0217d2a0
stmdb sp!, {r3, r4, r5, r6, r7, lr}
sub sp, sp, #0x70
ldr r1, _0217d680 ; =data_027e0f74
mov r5, r0
ldr r0, [r1]
mov r1, #0x7e
bl func_ov00_02097760
cmp r0, #0
addne sp, sp, #0x70
movne r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, pc}
ldr r0, _0217d680 ; =data_027e0f74
mov r1, #0xe
ldr r0, [r0]
bl func_ov00_02097c18
cmp r0, #0
addne sp, sp, #0x70
movne r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, pc}
add r0, sp, #0x44
bl func_ov00_020c1500
mvn r1, #0
add r0, sp, #0x44
str r1, [sp, #0x60]
str r1, [sp, #0x64]
bl func_ov00_020c3348
mvn r0, #0
str r0, [sp, #0xc]
str r0, [sp, #0x10]
ldr r0, [r5, #8]
add r1, sp, #0xc
str r0, [sp, #0x60]
ldr r2, [r5, #0xc]
ldr r0, _0217d684 ; =data_027e0fe8
str r2, [sp, #0x64]
str r1, [sp]
ldr r0, [r0]
ldr r1, _0217d688 ; =0x4c4f4e44
add r3, sp, #0x44
add r2, r5, #0x48
bl func_ov00_020c4048
ldr r1, [sp, #0xc]
mvn r0, #0
cmp r1, r0
beq _0217d368
ldr r0, _0217d68c ; =data_027e0fe4
add r1, sp, #0xc
ldr r0, [r0]
bl func_ov00_020c3674
str r0, [r5, #0x6b8]
_0217d368:
ldr r7, [r5, #0x6b8]
cmp r7, #0
addeq sp, sp, #0x70
moveq r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, pc}
ldr r0, _0217d690 ; =data_027e0d0c
mvn r3, #0
ldmia r0!, {r4, lr}
ldr ip, [r0, #8]
mov r2, #0
str r2, [r7, #0x12c]
str r4, [r7, #0x7c]
str lr, [r7, #0x80]
str ip, [r7, #0x84]
str r3, [r7, #0x88]
ldr r0, [r7, #0x7c]
ldr r6, _0217d694 ; =0x00000b33
str r0, [r7, #0xa8]
ldr r0, [r7, #0x80]
ldr r1, _0217d698 ; =0x0000199a
str r0, [r7, #0xac]
ldr r0, [r7, #0x84]
str r4, [sp, #0x34]
str r0, [r7, #0xb0]
str r3, [r7, #0xb4]
str r2, [r5, #0x7c]
str r6, [r5, #0x80]
str r2, [r5, #0x84]
str r3, [r5, #0x88]
str r2, [r5, #0x8c]
str r1, [r5, #0x90]
str r2, [r5, #0x94]
str r1, [r5, #0x98]
str r2, [r5, #0xa8]
add r0, r1, #0x800
str r0, [r5, #0xac]
add r0, r1, #0x1800
str r2, [r5, #0xb0]
str r0, [r5, #0xb4]
add r1, r6, #0x800
str r1, [r5, #0x860]
ldr r0, _0217d680 ; =data_027e0f74
mov r1, #0xeb
ldr r0, [r0]
str lr, [sp, #0x38]
str ip, [sp, #0x3c]
str r3, [sp, #0x40]
bl func_ov00_0209779c
ldr r0, _0217d680 ; =data_027e0f74
mov r1, #0xec
ldr r0, [r0]
mov r2, #0
bl func_ov00_0209779c
ldr r0, _0217d680 ; =data_027e0f74
mov r1, #0xed
ldr r0, [r0]
mov r2, #0
bl func_ov00_0209779c
add r0, r5, #0x158
bl func_ov36_0217c704
ldr r1, _0217d69c ; =func_ov36_0217c24c
add r0, r5, #0x17c
str r5, [r5, #0x1a8]
bl func_02018cb8
add r0, r5, #0x158
mov r1, #1
bl func_ov36_0217c958
add r0, r5, #0x570
mov r1, #0
bl func_ov00_020c5d74
ldr r0, [r5, #0x580]
mov r4, #0
mov r1, #2
str r4, [r0, #0x10]
str r1, [r5, #0x12c]
strb r1, [r5, #0x124]
mov r0, #3
strb r1, [r5, #0x125]
add r1, r5, #0x100
strh r0, [r1, #0x20]
ldr r1, [r5, #8]
add r2, r5, #0xd8
str r1, [r5, #0x7d4]
ldr r3, [r5, #0xc]
bic r1, r4, #0x6000
str r3, [r5, #0x7d8]
strb r4, [r5, #0x808]
strb r4, [r5, #0x11a]
ldr r3, [r5, #0x48]
bic r1, r1, #0x1f
str r3, [r5, #0x82c]
ldr r4, [r5, #0x4c]
orr r3, r1, #7
str r4, [r5, #0x830]
ldr r4, [r5, #0x50]
add r1, r5, #0x2c
str r4, [r5, #0x834]
ldr r4, [r5, #0x82c]
add ip, r0, #0xb30
str r4, [r5, #0x838]
ldr lr, [r1, #0x804]
rsb r4, r0, #0xcd0
str lr, [r5, #0x83c]
ldr r0, [r1, #0x808]
add r2, r2, #0x800
str r0, [r5, #0x840]
ldr r1, [r5, #0x48]
add r0, r5, #0x8b0
str r1, [sp, #0x14]
ldr lr, [r5, #0x4c]
add r1, sp, #0x14
str lr, [sp, #0x18]
ldr lr, [r5, #0x50]
str r3, [sp, #8]
str lr, [sp, #0x1c]
str ip, [sp, #0x20]
str r4, [sp, #0x24]
str r2, [sp]
ldr r4, [r0]
ldr r2, [r5, #8]
ldr r4, [r4, #0x10]
blx r4
mov r0, #1
strb r0, [r5, #0x8b4]
ldr r2, _0217d6a0 ; =data_ov36_0218683e
mov r4, r5
strb r0, [r5, #0x8dc]
mov r3, #0
mov r1, #2
_0217d56c:
mov r0, r3, lsl #0x1
ldrh r0, [r2, r0]
add r3, r3, #1
cmp r3, #4
str r0, [r4, #0x674]
str r1, [r4, #0x678]
add r4, r4, #0xc
blt _0217d56c
mov r0, #0xe
str r0, [r5, #0x6a4]
ldr r0, _0217d6a4 ; =0x00000333
str r1, [r5, #0x6a8]
ldr r1, _0217d6a8 ; =0x00001610
str r0, [sp]
ldr r0, _0217d6ac ; =data_027e0fec
str r1, [sp, #4]
ldr r0, [r0]
mov r2, #0x800
add r0, r0, #0x2000
ldr r1, [r0, #0xff0]
mov r3, r2
add r0, r5, #0x8e0
bl func_ov17_02168660
ldr r1, _0217d6a4 ; =0x00000333
add r0, r5, #0x1e8
mov r2, #0x800
ldr r3, _0217d6a8 ; =0x00001610
str r1, [sp]
ldr r1, _0217d6ac ; =data_027e0fec
str r3, [sp, #4]
ldr r1, [r1]
mov r3, r2
add r1, r1, #0x3000
ldr r1, [r1, #0x28]
add r0, r0, #0x1800
bl func_ov17_02168660
ldr r0, _0217d6b0 ; =data_027e0e60
mov r1, #3
ldr r0, [r0]
mov r2, r1
mov r3, #0
bl func_ov00_02084b38
ldr r0, _0217d6b0 ; =data_027e0e60
mov r1, #4
ldr r0, [r0]
mov r2, #3
mov r3, #0
bl func_ov00_02084b38
ldr r0, _0217d680 ; =data_027e0f74
mov r1, #0xeb
ldr r0, [r0]
mov r2, #0
bl func_ov00_0209779c
ldr r0, _0217d680 ; =data_027e0f74
ldr r1, _0217d6b4 ; =0x0000011e
ldr r0, [r0]
mov r2, #0
bl func_ov00_0209779c
ldr r0, _0217d680 ; =data_027e0f74
ldr r1, _0217d6b8 ; =0x0000011f
ldr r0, [r0]
mov r2, #0
bl func_ov00_0209779c
mov r0, r5
mov r1, #0
bl func_ov36_0217d6bc
mov r0, #1
add sp, sp, #0x70
ldmia sp!, {r3, r4, r5, r6, r7, pc}
.align 2, 0
arm_func_end func_ov36_0217d2a0
_0217d680: .word data_027e0f74
_0217d684: .word data_027e0fe8
_0217d688: .word 0x4c4f4e44
_0217d68c: .word data_027e0fe4
_0217d690: .word data_027e0d0c
_0217d694: .word 0x00000b33
_0217d698: .word 0x0000199a
_0217d69c: .word func_ov36_0217c24c
_0217d6a0: .word data_ov36_0218683e
_0217d6a4: .word 0x00000333
_0217d6a8: .word 0x00001610
_0217d6ac: .word data_027e0fec
_0217d6b0: .word data_027e0e60
_0217d6b4: .word 0x0000011e
_0217d6b8: .word 0x0000011f
arm_func_start func_ov36_0217d6bc
func_ov36_0217d6bc: ; 0x0217d6bc
stmdb sp!, {r3, r4, r5, lr}
mov r4, r1
mov r5, r0
add r1, sp, #0
mov r0, #0
mov r2, #4
bl func_020078f4
add r0, r5, #0x78
add r1, sp, #0
add r0, r0, #0x800
mov r2, #4
bl func_02007908
ldr r0, [r5, #0x878]
bic r2, r0, #0x20
bic r0, r2, #4
bic r1, r0, #1
bic r0, r1, #0x1000
str r0, [r5, #0x878]
tst r0, #0x100000
ldrne r0, _0217d7c4 ; =0x00001ccd
ldr r1, _0217d7c8 ; =0x0000219a
ldreq r0, _0217d7cc ; =0x00001333
str r0, [r5, #0x860]
str r1, [r5, #0x88]
mov r1, #2
str r1, [r5, #0x12c]
strb r1, [r5, #0x125]
ldr r0, _0217d7d0 ; =data_ov36_02186698
strb r1, [r5, #0x124]
add r1, r0, r4, lsl #3
ldr r0, [r1, #4]
tst r0, #1
add r0, r5, r0, asr #1
ldreq r1, [r1]
beq _0217d754
ldr r2, [r0]
ldr r1, [r1]
ldr r1, [r2, r1]
_0217d754:
blx r1
cmp r0, #0
bne _0217d7b4
ldr r0, [sp]
tst r0, #0x20
ldrne r0, [r5, #0x878]
orrne r0, r0, #0x20
strne r0, [r5, #0x878]
ldr r0, [sp]
tst r0, #4
ldrne r0, [r5, #0x878]
orrne r0, r0, #4
strne r0, [r5, #0x878]
ldr r0, [sp]
tst r0, #1
ldrne r0, [r5, #0x878]
orrne r0, r0, #1
strne r0, [r5, #0x878]
ldr r0, [sp]
tst r0, #0x1000
ldrne r0, [r5, #0x878]
orrne r0, r0, #0x1000
strne r0, [r5, #0x878]
ldmia sp!, {r3, r4, r5, pc}
_0217d7b4:
mov r0, #0
str r0, [r5, #0x138]
str r4, [r5, #0x130]
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov36_0217d6bc
_0217d7c4: .word 0x00001ccd
_0217d7c8: .word 0x0000219a
_0217d7cc: .word 0x00001333
_0217d7d0: .word data_ov36_02186698
arm_func_start func_ov36_0217d7d4
func_ov36_0217d7d4: ; 0x0217d7d4
stmdb sp!, {r3, r4, r5, lr}
mov r5, r0
mov r4, r1
bl func_ov00_020c313c
cmp r0, #0
beq _0217d7f4
mov r0, r5
bl func_ov36_0217da6c
_0217d7f4:
mov r0, r5
bl func_ov36_02185588
mov r1, r4
add r0, r5, #0xa4
add r2, r5, #0x48
bl func_ov00_0207a1c8
ldmia sp!, {r3, r4, r5, pc}
arm_func_end func_ov36_0217d7d4
arm_func_start func_ov36_0217d810
func_ov36_0217d810: ; 0x0217d810
stmdb sp!, {r4, r5, r6, r7, r8, lr}
sub sp, sp, #0x18
mov r5, r0
mov r4, r1
bl func_ov00_020c313c
cmp r0, #0
beq _0217d9d8
mov r0, r5
bl func_ov36_0217da08
cmp r0, #0
beq _0217d844
mov r0, r5
bl func_ov36_0217da6c
_0217d844:
ldr r0, [r5, #0x878]
tst r0, #0x20
beq _0217d9c8
ldr r0, _0217d9f8 ; =data_027e077c
ldr r0, [r0]
cmp r0, #0xd
bne _0217d9c8
add r0, r5, #0x48
add r3, sp, #0xc
ldmia r0!, {r0, r1, r2}
stmia r3!, {r0, r1, r2}
ldrh r0, [r5, #0x78]
ldr r2, _0217d9fc ; =data_02050f54
ldr r1, [sp, #0x10]
mov r0, r0, asr #0x4
mov r0, r0, lsl #0x1
mov r3, r0, lsl #0x1
add r0, r0, #1
mov r0, r0, lsl #0x1
ldrsh r6, [r2, r3]
ldrsh r3, [r2, r0]
mov r0, #0x800
mov r2, r6, asr #0x1f
mov r7, r2, lsl #0xd
mov r2, r3, asr #0x1f
mov r2, r2, lsl #0xd
str r1, [sp, #4]
orr r7, r7, r6, lsr #19
adds r8, r0, r6, lsl #13
adc r7, r7, #0
adds r6, r0, r3, lsl #13
orr r2, r2, r3, lsr #19
mov r3, r8, lsr #0xc
adc r0, r2, #0
mov r2, r6, lsr #0xc
ldr r6, [sp, #0xc]
orr r3, r3, r7, lsl #20
add r6, r6, r3
ldr r3, [sp, #0x14]
orr r2, r2, r0, lsl #20
add r0, r3, r2
str r6, [sp, #0xc]
str r0, [sp, #0x14]
str r0, [sp, #8]
str r6, [sp]
add r0, r5, #0x8b0
ldr r2, [r0]
add r1, sp, #0
ldr r2, [r2, #0x30]
blx r2
ldr r0, _0217da00 ; =data_027e0f6c
add r1, r5, #0x8b0
ldr r0, [r0]
bl func_ov00_02093a5c
ldr r0, [r5, #0x48]
ldr r6, _0217d9fc ; =data_02050f54
str r0, [sp, #0xc]
ldr r1, [r5, #0x4c]
ldr r2, _0217da04 ; =0x0000199a
str r1, [sp, #0x10]
ldr r1, [r5, #0x50]
mov r3, #0
str r1, [sp, #0x14]
ldrh r7, [r5, #0x78]
mov r7, r7, asr #0x4
mov r8, r7, lsl #0x1
mov r7, r8, lsl #0x1
add ip, r8, #1
mov ip, ip, lsl #0x1
ldrsh r7, [r6, r7]
ldrsh lr, [r6, ip]
umull r8, ip, r7, r2
mla ip, r7, r3, ip
mov r6, r7, asr #0x1f
adds r7, r8, #0x800
mla ip, r6, r2, ip
adc r6, ip, #0
mov r7, r7, lsr #0xc
orr r7, r7, r6, lsl #20
add r0, r0, r7
umull r7, r6, lr, r2
mla r6, lr, r3, r6
mov ip, lr, asr #0x1f
adds r3, r7, #0x800
mla r6, ip, r2, r6
adc r2, r6, #0
mov r3, r3, lsr #0xc
orr r3, r3, r2, lsl #20
add r1, r1, r3
str r0, [sp, #0xc]
str r1, [sp, #0x14]
str r0, [r5, #0x820]
ldr r0, [sp, #0x10]
str r0, [r5, #0x824]
ldr r0, [sp, #0x14]
str r0, [r5, #0x828]
b _0217d9d8
_0217d9c8:
ldr r0, _0217da00 ; =data_027e0f6c
add r1, r5, #0x8b0
ldr r0, [r0]
bl func_ov00_02093af0
_0217d9d8:
mov r0, r5
bl func_ov36_02185588
mov r1, r4
add r0, r5, #0xa4
add r2, r5, #0x48
bl func_ov00_0207a1c8
add sp, sp, #0x18
ldmia sp!, {r4, r5, r6, r7, r8, pc}
.align 2, 0
arm_func_end func_ov36_0217d810
_0217d9f8: .word data_027e077c
_0217d9fc: .word data_02050f54
_0217da00: .word data_027e0f6c
_0217da04: .word 0x0000199a
arm_func_start func_ov36_0217da08
func_ov36_0217da08: ; 0x0217da08
stmdb sp!, {r4, lr}
mov r4, r0
ldr r0, [r4, #0x878]
tst r0, #0x800
movne r0, #0
ldmia sp!, {r4, pc}
tst r0, #1
bne _0217da58
ldr r0, _0217da68 ; =data_027e0f74
ldr r1, [r4, #0x66c]
ldr r0, [r0]
bl func_ov00_02097b9c
cmp r0, #0
bne _0217da58
mov r0, #0x10000
ldr r1, [r4, #0x7cc]
rsb r0, r0, #0
and r0, r1, r0
cmp r0, #0x1000000
beq _0217da60
_0217da58:
mov r0, #1
ldmia sp!, {r4, pc}
_0217da60:
mov r0, #0
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov36_0217da08
_0217da68: .word data_027e0f74
arm_func_start func_ov36_0217da6c
func_ov36_0217da6c: ; 0x0217da6c
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x60
mov r4, r0
bl func_ov36_02184e10
mov r0, r4
bl func_ov00_020c2bf4
mov r0, r4
bl func_ov36_021852fc
ldr r0, [r4, #0x130]
cmp r0, #2
blt _0217dafc
cmp r0, #0x15
bgt _0217dafc
ldr r0, _0217dd64 ; =data_027e0fc8
ldr r0, [r0]
bl func_ov00_020bc46c
cmp r0, #1
beq _0217dac0
ldr r0, [r4, #0x878]
tst r0, #0x100000
beq _0217dafc
_0217dac0:
add r0, sp, #0x1c
add r1, r4, #0x178
ldr r5, [r4, #0x840]
bl func_ov36_0217c5a0
ldr r2, [r4, #0x838]
ldr r1, [sp, #0x20]
ldr r0, _0217dd68 ; =data_027e0f64
add r1, r1, #0x4000
str r1, [sp, #0x58]
ldr r0, [r0]
str r2, [sp, #0x54]
str r5, [sp, #0x5c]
ldr r0, [r0, #4]
add r1, sp, #0x54
bl func_ov00_02088010
_0217dafc:
ldr r0, [r4, #0x130]
ldr r1, _0217dd6c ; =data_ov36_02186768
add r1, r1, r0, lsl #3
ldr r0, [r1, #4]
tst r0, #1
add r0, r4, r0, asr #1
ldreq r1, [r1]
beq _0217db28
ldr r2, [r0]
ldr r1, [r1]
ldr r1, [r2, r1]
_0217db28:
blx r1
ldr r1, [r4, #0x48]
add r0, r4, #0x48
str r1, [r4, #0x54]
ldr r2, [r4, #0x4c]
add r1, r4, #0x60
str r2, [r4, #0x58]
ldr r3, [r4, #0x50]
mov r2, r0
str r3, [r4, #0x5c]
bl func_01ff9bc4
mov r0, r4
bl func_ov36_0218543c
mov r0, r4
mov r1, #0
bl func_01fffd04
mov r0, r4
bl func_ov36_021858f0
add r0, r4, #0x158
bl func_ov36_0217c800
add r0, r4, #0x570
bl func_ov00_020c5e20
ldr r0, [r4, #0x584]
cmp r0, #0
bne _0217dbac
ldr r0, [r4, #0x580]
add r0, r0, #0xc
bl func_0202e58c
cmp r0, #0
beq _0217dbac
add r0, r4, #0x570
mov r1, #1
bl func_ov00_020c5d74
_0217dbac:
ldr r0, [r4, #0x878]
tst r0, #4
addeq r0, r4, #0x800
moveq r1, #0
streqh r1, [r0, #0x90]
add r0, r4, #0x200
ldrsh r2, [r0, #0x64]
add r1, r4, #0x800
add r0, sp, #0xc
strh r2, [sp, #0xc]
ldrsh r1, [r1, #0x90]
mov r2, #0x16c
bl func_0202b154
ldrsh r2, [sp, #0xc]
add r1, r4, #0x200
mov r0, r4
strh r2, [r1, #0x64]
bl func_ov36_021850c8
add r3, r4, #0x38
add r0, r4, #0x2c
add r0, r0, #0x800
ldrh r5, [r4, #0x78]
add sl, r3, #0x800
ldmia r0!, {r0, r1, r2}
mov r3, r5, asr #0x4
mov r5, r3, lsl #0x1
add r3, sp, #0x48
stmia r3!, {r0, r1, r2}
add r0, r5, #1
mov r2, r5, lsl #0x1
ldr r1, _0217dd70 ; =data_02050f54
mov r0, r0, lsl #0x1
ldrsh r7, [r1, r0]
mov r0, #4
add sb, sp, #0x3c
ldrsh r8, [r1, r2]
sub lr, r0, #5
ldmia sl!, {r0, r1, r2}
stmia sb!, {r0, r1, r2}
mov r2, sb
ldr sb, [r4, #0x864]
ldr r1, [r4, #0x860]
mov r6, #0
mov r5, #0x5000
str r1, [sp, #0x34]
ldr ip, _0217dd74 ; =0x0000099a
str r5, [sp, #0x38]
umull sl, r5, sb, ip
mla r5, sb, r6, r5
mov r0, sb, asr #0x1f
str r6, [sp, #0x2c]
mla r5, r0, ip, r5
adds r6, sl, #0x800
adc r0, r5, #0
mov r5, r6, lsr #0xc
orr r5, r5, r0, lsl #20
smull sb, r6, r8, r5
smull r5, r0, r7, r5
adds r8, sb, #0x800
adc r7, r6, #0
adds r5, r5, #0x800
mov r6, r8, lsr #0xc
orr r6, r6, r7, lsl #20
adc r0, r0, #0
mov r5, r5, lsr #0xc
orr r5, r5, r0, lsl #20
add fp, sp, #0x28
str r6, [sp, #0x28]
str r5, [sp, #0x30]
str fp, [sp]
mov r0, #4
stmib sp, {r0, lr}
ldr r0, _0217dd78 ; =data_027e0ff8
add r1, r4, #8
ldr r0, [r0]
bl func_ov05_021082e4
rsb r0, r6, #0
str r0, [sp, #0x28]
rsb r0, r5, #0
str r0, [sp, #0x30]
mov r0, #0
str r0, [sp, #0x2c]
mov r1, fp
mov r0, #4
str r1, [sp]
str r0, [sp, #4]
sub r0, r0, #5
str r0, [sp, #8]
ldr r0, _0217dd78 ; =data_027e0ff8
ldr r1, [r4, #0x6b8]
ldr r0, [r0]
add r1, r1, #8
add r2, sp, #0x3c
add r3, sp, #0x48
bl func_ov05_021082e4
mov r0, r4
bl func_ov36_021854e8
ldr r0, [r4, #0x130]
cmp r0, #1
addlt sp, sp, #0x60
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
cmp r0, #0x16
addge sp, sp, #0x60
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
ldr r0, _0217dd64 ; =data_027e0fc8
add r1, r4, #0x48
ldr r0, [r0]
bl func_ov00_020bb6d4
add sp, sp, #0x60
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
arm_func_end func_ov36_0217da6c
_0217dd64: .word data_027e0fc8
_0217dd68: .word data_027e0f64
_0217dd6c: .word data_ov36_02186768
_0217dd70: .word data_02050f54
_0217dd74: .word 0x0000099a
_0217dd78: .word data_027e0ff8
arm_func_start func_ov36_0217dd7c
func_ov36_0217dd7c: ; 0x0217dd7c
ldr r2, [r0, #0x878]
mvn r1, #0
orr r2, r2, #1
str r2, [r0, #0x878]
str r1, [r0, #0x88]
mov r0, #1
bx lr
arm_func_end func_ov36_0217dd7c
arm_func_start func_ov36_0217dd98
func_ov36_0217dd98: ; 0x0217dd98
stmdb sp!, {r4, lr}
mov r1, #0
mov r4, r0
bl func_ov00_020c1bfc
cmp r0, #0
moveq r0, #0
streq r0, [r4, #0x138]
ldmia sp!, {r4, pc}
ldr r0, _0217ddfc ; =data_027e0e60
ldrh r1, [r4, #0x20]
ldr r0, [r0]
mov r2, #0
bl func_ov00_020836dc
cmp r0, #0
beq _0217ddf0
ldr r0, [r4, #0x138]
cmp r0, #0x34
ldmia sp!, {r4, pc}
mov r0, r4
mov r1, #1
bl func_ov36_0217d6bc
ldmia sp!, {r4, pc}
_0217ddf0:
mov r0, #0
str r0, [r4, #0x138]
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov36_0217dd98
_0217ddfc: .word data_027e0e60
arm_func_start func_ov36_0217de00
func_ov36_0217de00: ; 0x0217de00
stmdb sp!, {r4, lr}
mov r4, r0
bl func_ov00_020c198c
cmp r0, #0
moveq r0, #0
ldmia sp!, {r4, pc}
mov r0, r4
mov r1, #0
bl func_ov36_02184a64
cmp r0, #0
moveq r0, #0
ldmia sp!, {r4, pc}
add r1, r4, #0x3b4
ldr r2, [r4, #0x30]
ldr r0, _0217dec0 ; =data_027e0c68
add r1, r1, #0x400
bl func_02036ce4
ldr r1, [r4, #0x50]
mov r0, r4
sub r1, r1, #0x8000
str r1, [r4, #0x50]
mvn r2, #0
mov r1, #1
str r2, [r4, #0x98]
bl func_ov00_020c1908
mov r1, #1
add r0, r4, #0x158
strb r1, [r4, #0x11a]
bl func_ov36_0217c958
ldr r1, _0217dec4 ; =data_ov36_02186c84
add r0, r4, #0x158
bl func_ov36_0217c7e8
ldr r0, [r4, #0x878]
mov r2, #0
orr r0, r0, #1
bic r0, r0, #0x10000
bic r0, r0, #0x20000
bic r0, r0, #0x40000
bic r0, r0, #0x80000
str r0, [r4, #0x878]
add r0, r4, #0x800
strh r2, [r0, #0x90]
ldr r0, _0217dec8 ; =data_ov00_020eec68
mov r1, #0xca
mov r3, #0x7f
bl func_ov00_020d70a4
mov r0, #1
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov36_0217de00
_0217dec0: .word data_027e0c68
_0217dec4: .word data_ov36_02186c84
_0217dec8: .word data_ov00_020eec68
arm_func_start func_ov36_0217decc
func_ov36_0217decc: ; 0x0217decc
stmdb sp!, {r3, r4, r5, r6, lr}
sub sp, sp, #0x44
mov r5, r0
ldr r1, [r5, #0x878]
tst r1, #0x10000
bne _0217df28
ldr r0, [r5, #0x138]
cmp r0, #0x5a
addlt sp, sp, #0x44
ldmia sp!, {r3, r4, r5, r6, pc}
add r0, r5, #0x158
mov r1, #0
bl func_ov36_0217ca34
ldr r0, [r5, #0x168]
mov r1, #0x1000
str r1, [r0, #0x10]
mov r0, #0
str r0, [r5, #0x138]
ldr r0, [r5, #0x878]
add sp, sp, #0x44
orr r0, r0, #0x10000
str r0, [r5, #0x878]
ldmia sp!, {r3, r4, r5, r6, pc}
_0217df28:
tst r1, #0x20000
bne _0217df94
ldr r0, [r5, #0x138]
cmp r0, #0xc
bne _0217df50
ldr r0, _0217e3a4 ; =data_027e0fc8
ldr r0, [r0]
ldr r1, [r0]
ldr r1, [r1, #0x80]
blx r1
_0217df50:
ldr r0, [r5, #0x138]
cmp r0, #0x3c
addlt sp, sp, #0x44
ldmia sp!, {r3, r4, r5, r6, pc}
add r0, r5, #0x158
mov r1, #0
bl func_ov36_0217ca34
ldr r0, [r5, #0x168]
mov r1, #0x1000
str r1, [r0, #0x10]
mov r0, #0
str r0, [r5, #0x138]
ldr r0, [r5, #0x878]
add sp, sp, #0x44
orr r0, r0, #0x20000
str r0, [r5, #0x878]
ldmia sp!, {r3, r4, r5, r6, pc}
_0217df94:
tst r1, #0x40000
bne _0217e170
bl func_ov36_02185c84
ldr r1, [r5, #0x1c]
ldr r0, _0217e3a8 ; =0xffffe99a
ldr r2, [r5, #0x50]
add r0, r1, r0
cmp r2, r0
blt _0217e028
add r0, r5, #0x68
mov r1, #0
mov r2, #0x52
bl func_0202b0f4
cmp r0, #0
beq _0217e030
ldr r0, _0217e3ac ; =data_027e103c
ldr r1, _0217e3b0 ; =0x000c014f
ldr r0, [r0]
bl func_ov00_020cfc70
add r0, r5, #0x158
mov r1, #0x20
bl func_ov36_0217ca34
ldr r0, [r5, #0x168]
mov r1, #0x1000
str r1, [r0, #0x10]
mov r1, #0
ldr r0, _0217e3a4 ; =data_027e0fc8
str r1, [r5, #0x138]
ldr r0, [r0]
bl func_ov00_020bd0a8
add r0, r5, #0x800
mov r1, #0
strh r1, [r0, #0x7c]
ldr r0, [r5, #0x878]
orr r0, r0, #0x40000
str r0, [r5, #0x878]
b _0217e030
_0217e028:
ldr r0, _0217e3b4 ; =0x00000266
str r0, [r5, #0x68]
_0217e030:
ldr r0, [r5, #0x878]
tst r0, #0x40000
addne sp, sp, #0x44
ldmia sp!, {r3, r4, r5, r6, pc}
ldr r0, [r5, #0x138]
rsb r0, r0, #0x1e
mov r4, r0, lsl #0xc
cmp r4, #0x1000
ldr r0, _0217e3b8 ; =0x0000038e
ble _0217e070
ldr r2, [r5, #0x6f0]
mov r1, r4
sub r0, r0, r2
bl func_01ff98e0
ldr r1, [r5, #0x6f0]
add r0, r1, r0
_0217e070:
str r0, [r5, #0x6f0]
cmp r4, #0x1000
ldr r0, _0217e3bc ; =0x00000f42
ble _0217e098
ldr r2, [r5, #0x6f4]
mov r1, r4
sub r0, r0, r2
bl func_01ff98e0
ldr r1, [r5, #0x6f4]
add r0, r1, r0
_0217e098:
str r0, [r5, #0x6f4]
cmp r4, #0x1000
movle r0, #0x19000
ble _0217e0c0
ldr r0, [r5, #0x6fc]
mov r1, r4
rsb r0, r0, #0x19000
bl func_01ff98e0
ldr r1, [r5, #0x6fc]
add r0, r1, r0
_0217e0c0:
str r0, [r5, #0x6fc]
mov r0, r5
add r1, r5, #0x820
bl func_ov00_020c288c
cmp r0, #0x800
ldrlt r6, [r5, #0x68]
mov r3, #0x1000
add r0, sp, #0x38
mov r4, #0
movge r6, #0x1000
mov r2, r0
add r1, r5, #0x48
str r4, [sp, #0x38]
str r3, [sp, #0x3c]
str r3, [sp, #0x40]
bl func_01ff9bc4
add r1, sp, #0x38
mov r2, r6
add r0, r5, #0x820
bl func_0202b2e8
ldr r0, [r5, #0x820]
mov r1, r4
str r0, [sp, #0x20]
ldr r0, [r5, #0x824]
add r2, r5, #0x2e4
str r0, [sp, #0x24]
ldr r3, [r5, #0x828]
ldr r0, _0217e3c0 ; =data_027e0f64
str r3, [sp, #0x28]
str r1, [sp]
str r1, [sp, #4]
ldr r0, [r0]
add r3, r2, #0x400
ldr r0, [r0, #4]
add r1, sp, #0x20
mov r2, #2
bl func_ov00_02089318
ldr r0, [r5, #0x68]
ldr r1, _0217e3c4 ; =0x00000112
bl func_01ff98e0
ldr r1, [r5, #0x168]
add sp, sp, #0x44
str r0, [r1, #0x10]
ldmia sp!, {r3, r4, r5, r6, pc}
_0217e170:
tst r1, #0x80000
bne _0217e260
ldr r1, [r5, #0x168]
add r0, r5, #0x158
ldr r4, [r1, #0x14]
bl func_ov36_0217cc84
cmp r0, #0
beq _0217e1c8
ldr r0, [r5, #0x168]
add r0, r0, #0xc
bl func_0202e58c
cmp r0, #0
beq _0217e1c8
add r0, r5, #0x158
mov r1, #1
bl func_ov36_0217c958
mov r0, #0
str r0, [r5, #0x138]
ldr r0, [r5, #0x878]
orr r0, r0, #0x80000
str r0, [r5, #0x878]
b _0217e20c
_0217e1c8:
cmp r4, #0x2a000
bne _0217e20c
ldr r0, _0217e3c8 ; =data_027e0ffc
ldr r1, _0217e3cc ; =0x000002c2
add r2, r5, #0x48
mov r3, #0
bl func_ov00_020ceacc
ldr r0, _0217e3c0 ; =data_027e0f64
mov r1, #1
ldr r0, [r0]
ldr r0, [r0, #4]
bl func_ov00_02088000
mov r0, r5
add r1, r5, #0x800
mov r2, #5
strh r2, [r1, #0x7c]
bl func_ov36_02185eb8
_0217e20c:
cmp r4, #0x2a000
addle sp, sp, #0x44
ldmia sp!, {r3, r4, r5, r6, pc}
cmp r4, #0x77000
addge sp, sp, #0x44
ldmia sp!, {r3, r4, r5, r6, pc}
add r0, r5, #0x800
ldrsh r0, [r0, #0x7c]
cmp r0, #0
addne sp, sp, #0x44
ldmia sp!, {r3, r4, r5, r6, pc}
ldr r0, _0217e3c0 ; =data_027e0f64
mov r1, #0xd
ldr r0, [r0]
ldr r0, [r0, #4]
bl func_ov00_02088000
add r0, r5, #0x800
mov r1, #5
strh r1, [r0, #0x7c]
add sp, sp, #0x44
ldmia sp!, {r3, r4, r5, r6, pc}
_0217e260:
mov r0, #0x10000
ldr r1, [r5, #0x7cc]
rsb r0, r0, #0
and r0, r1, r0
cmp r0, #0x1000000
addne sp, sp, #0x44
ldmia sp!, {r3, r4, r5, r6, pc}
ldr r0, _0217e3d0 ; =data_027e0f74
ldr r1, [r5, #0x66c]
ldr r0, [r0]
bl func_ov00_02097b9c
cmp r0, #0
beq _0217e2a4
ldr r0, _0217e3d0 ; =data_027e0f74
ldr r1, [r5, #0x66c]
ldr r0, [r0]
bl func_ov00_02097bcc
_0217e2a4:
mvn r1, #0
ldr r0, _0217e3a4 ; =data_027e0fc8
str r1, [r5, #0x66c]
ldr r0, [r0]
bl func_ov00_020bc46c
cmp r0, #0
bne _0217e2dc
ldr r0, _0217e3a4 ; =data_027e0fc8
mov r1, #1
ldr r0, [r0]
mov r2, r1
ldr r3, [r0]
ldr r3, [r3, #0x7c]
blx r3
_0217e2dc:
ldr r1, _0217e3d4 ; =data_027e0fe4
ldr r2, _0217e3d8 ; =0x504c444d
ldr r1, [r1]
add r0, sp, #0x18
bl func_ov00_020c3894
ldr r1, [sp, #0x18]
mvn r0, #0
cmp r1, r0
beq _0217e314
ldr r0, _0217e3d4 ; =data_027e0fe4
add r1, sp, #0x18
ldr r0, [r0]
bl func_ov00_020c3674
str r0, [r5, #0x6b4]
_0217e314:
mvn r3, #0
add r2, sp, #0x10
mov r0, #0
mov r1, #1
str r0, [sp, #0x34]
str r3, [sp, #0x10]
str r3, [sp, #0x14]
str r2, [sp, #0x2c]
str r1, [sp, #0x30]
ldrh r1, [r5, #0x24]
add r0, sp, #8
bl func_ov36_0217c14c
ldr r0, _0217e3d4 ; =data_027e0fe4
add r1, sp, #8
ldr r0, [r0]
add r2, sp, #0x2c
bl func_ov00_020c37ec
cmp r0, #0
beq _0217e37c
ldr r0, _0217e3d4 ; =data_027e0fe4
ldr r1, [sp, #0x2c]
ldr r0, [r0]
bl func_ov00_020c3674
cmp r0, #0
movne r1, #0
strneb r1, [r0, #0x11a]
_0217e37c:
add r0, r5, #0x800
mov r1, #0x1e
ldr r2, _0217e3dc ; =0x0000199a
strh r1, [r0, #0x7e]
mov r0, r5
mov r1, #2
str r2, [r5, #0x98]
bl func_ov36_0217d6bc
add sp, sp, #0x44
ldmia sp!, {r3, r4, r5, r6, pc}
.align 2, 0
arm_func_end func_ov36_0217decc
_0217e3a4: .word data_027e0fc8
_0217e3a8: .word 0xffffe99a
_0217e3ac: .word data_027e103c
_0217e3b0: .word 0x000c014f
_0217e3b4: .word 0x00000266
_0217e3b8: .word 0x0000038e
_0217e3bc: .word 0x00000f42
_0217e3c0: .word data_027e0f64
_0217e3c4: .word 0x00000112
_0217e3c8: .word data_027e0ffc
_0217e3cc: .word 0x000002c2
_0217e3d0: .word data_027e0f74
_0217e3d4: .word data_027e0fe4
_0217e3d8: .word 0x504c444d
_0217e3dc: .word 0x0000199a
arm_func_start func_ov36_0217e3e0
func_ov36_0217e3e0: ; 0x0217e3e0
stmdb sp!, {r3, r4, r5, r6, r7, lr}
mov r4, r0
ldr r1, [r4, #0x878]
add r0, r4, #0x158
orr r2, r1, #4
mov r1, #0
str r2, [r4, #0x878]
bl func_ov36_0217ca34
ldr r1, _0217e4e4 ; =data_ov36_02186c88
add r0, r4, #0x158
bl func_ov36_0217c7e8
ldr r1, _0217e4e8 ; =data_027e0764
mov r0, #0
ldr r3, [r1]
ldmib r1, {r2, r5}
umull r7, r6, r5, r3
mla r6, r5, r2, r6
ldr r5, [r1, #0xc]
mov r2, r0, lsl #0x4
ldr r0, [r1, #0x10]
mla r6, r5, r3, r6
adds r7, r0, r7
ldr ip, [r1, #0x14]
add r0, r4, #0x800
adc r3, ip, r6
str r7, [r1]
orr r2, r2, r3, lsr #28
str r3, [r1, #4]
add r1, r2, #0xf
strh r1, [r0, #0x7c]
ldrsh r1, [r4, #0x78]
mov r0, r4
mov r2, #0x2000
bl func_ov36_02183070
ldrh r0, [r4, #0x78]
ldr r1, _0217e4ec ; =data_02050f54
mov r2, #0
mov r0, r0, asr #0x4
mov r3, r0, lsl #0x1
mov r0, r3, lsl #0x1
ldrsh lr, [r1, r0]
add r0, r3, #1
mov r0, r0, lsl #0x1
ldrsh ip, [r1, r0]
ldr r1, _0217e4f0 ; =0x00000112
mov r5, lr, asr #0x1f
umull r7, r6, lr, r1
mla r6, lr, r2, r6
mla r6, r5, r1, r6
adds r7, r7, #0x800
adc r5, r6, #0
mov r6, r7, lsr #0xc
orr r6, r6, r5, lsl #20
umull r5, lr, ip, r1
mla lr, ip, r2, lr
mov r3, ip, asr #0x1f
adds r2, r5, #0x800
mla lr, r3, r1, lr
adc r1, lr, #0
mov r2, r2, lsr #0xc
str r6, [r4, #0x60]
orr r2, r2, r1, lsl #20
mov r0, #1
str r2, [r4, #0x68]
ldmia sp!, {r3, r4, r5, r6, r7, pc}
.align 2, 0
arm_func_end func_ov36_0217e3e0
_0217e4e4: .word data_ov36_02186c88
_0217e4e8: .word data_027e0764
_0217e4ec: .word data_02050f54
_0217e4f0: .word 0x00000112
arm_func_start func_ov36_0217e4f4
func_ov36_0217e4f4: ; 0x0217e4f4
stmdb sp!, {r3, r4, r5, r6, lr}
sub sp, sp, #4
add r1, sp, #0
mov r4, r0
bl func_ov36_02184f44
cmp r0, #0
beq _0217e524
cmp r0, #1
beq _0217e594
cmp r0, #2
beq _0217e59c
b _0217e5ac
_0217e524:
add r0, r4, #0x800
ldrsh r1, [r0, #0x7c]
cmp r1, #0
bne _0217e58c
ldr r1, _0217e6ac ; =data_027e0764
mov r2, #0
ldr r5, [r1]
ldmib r1, {r3, r6}
umull lr, ip, r6, r5
mla ip, r6, r3, ip
ldr r3, [r1, #0xc]
ldr r6, [r1, #0x10]
mla ip, r3, r5, ip
ldr r3, [r1, #0x14]
adds r5, r6, lr
adc r3, r3, ip
mov r2, r2, lsl #0x4
str r5, [r1]
orr r2, r2, r3, lsr #28
str r3, [r1, #4]
add r1, r2, #0xf
strh r1, [r0, #0x7c]
ldrsh r1, [r4, #0x78]
mov r0, r4
mov r2, #0x2000
bl func_ov36_02183070
_0217e58c:
mov r5, #0x258
b _0217e5ac
_0217e594:
mov r5, #0x384
b _0217e5ac
_0217e59c:
ldrb r0, [sp]
add sp, sp, #4
strb r0, [r4, #0x8ab]
ldmia sp!, {r3, r4, r5, r6, pc}
_0217e5ac:
add r0, r4, #0x800
ldrsh r1, [r0, #0x8e]
mov r2, r5
add r0, r4, #0x78
bl func_0202b154
ldrh r1, [r4, #0x78]
ldr r2, _0217e6b0 ; =data_02050f54
ldr r0, _0217e6b4 ; =0x00000112
mov r1, r1, asr #0x4
mov r3, r1, lsl #0x1
mov r1, r3, lsl #0x1
ldrsh lr, [r2, r1]
add r1, r3, #1
mov r1, r1, lsl #0x1
ldrsh r2, [r2, r1]
umull r6, r5, lr, r0
mov r1, #0
mla r5, lr, r1, r5
umull ip, r3, r2, r0
mla r3, r2, r1, r3
mov lr, lr, asr #0x1f
mov r1, r2, asr #0x1f
adds r6, r6, #0x800
mla r5, lr, r0, r5
adc r5, r5, #0
mov r6, r6, lsr #0xc
orr r6, r6, r5, lsl #20
mla r3, r1, r0, r3
adds ip, ip, #0x800
adc r0, r3, #0
mov r1, ip, lsr #0xc
str r6, [r4, #0x60]
orr r1, r1, r0, lsl #20
str r1, [r4, #0x68]
ldrb r0, [r4, #0x110]
cmp r0, #0
ldreqb r0, [r4, #0x112]
cmpeq r0, #0
ldreqb r0, [r4, #0x113]
cmpeq r0, #0
bne _0217e668
ldrb r1, [r4, #0x8ab]
cmp r1, #0
beq _0217e678
ldrb r0, [sp]
cmp r0, #0
bne _0217e678
_0217e668:
mov r0, r4
mov r1, #6
bl func_ov36_0217d6bc
b _0217e694
_0217e678:
cmp r1, #0
bne _0217e694
mov r0, r4
add r1, r4, #0x14
bl func_ov00_020c2938
add r1, r4, #0x800
strh r0, [r1, #0x8e]
_0217e694:
ldrb r1, [sp]
mov r0, r4
strb r1, [r4, #0x8ab]
bl func_ov36_02183204
add sp, sp, #4
ldmia sp!, {r3, r4, r5, r6, pc}
.align 2, 0
arm_func_end func_ov36_0217e4f4
_0217e6ac: .word data_027e0764
_0217e6b0: .word data_02050f54
_0217e6b4: .word 0x00000112
arm_func_start func_ov36_0217e6b8
func_ov36_0217e6b8: ; 0x0217e6b8
stmdb sp!, {r4, lr}
mov r4, r0
ldrb r0, [r4, #0x8a7]
cmp r0, #5
blo _0217e6e0
mov r0, #0
strb r0, [r4, #0x8a7]
ldr r0, [r4, #0x878]
bic r0, r0, #0x80
str r0, [r4, #0x878]
_0217e6e0:
ldr r0, _0217e73c ; =data_027e0ffc
ldr r1, _0217e740 ; =0x000002c2
add r2, r4, #0x48
mov r3, #0
bl func_ov00_020ceacc
ldr r1, [r4, #0x878]
add r0, r4, #0x158
orr r2, r1, #0x1000
mov r1, #0x18
str r2, [r4, #0x878]
bl func_ov36_0217ca34
ldr r1, _0217e744 ; =data_ov36_02186c8c
add r0, r4, #0x158
bl func_ov36_0217c7e8
ldr r1, _0217e748 ; =data_027e0d0c
mov r0, #1
ldr r2, [r1]
str r2, [r4, #0x60]
ldr r2, [r1, #4]
str r2, [r4, #0x64]
ldr r1, [r1, #8]
str r1, [r4, #0x68]
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov36_0217e6b8
_0217e73c: .word data_027e0ffc
_0217e740: .word 0x000002c2
_0217e744: .word data_ov36_02186c8c
_0217e748: .word data_027e0d0c
arm_func_start func_ov36_0217e74c
func_ov36_0217e74c: ; 0x0217e74c
stmdb sp!, {r4, lr}
mov r4, r0
bl func_ov36_02185050
mov r1, r0
add r0, r4, #0x78
mov r2, #0x384
bl func_0202b154
add r0, r4, #0x158
bl func_ov36_0217cc84
cmp r0, #0
beq _0217e798
ldr r0, [r4, #0x168]
add r0, r0, #0xc
bl func_0202e58c
cmp r0, #0
beq _0217e798
mov r0, r4
mov r1, #4
bl func_ov36_0217d6bc
_0217e798:
mov r0, r4
bl func_ov36_02183204
ldmia sp!, {r4, pc}
arm_func_end func_ov36_0217e74c
arm_func_start func_ov36_0217e7a4
func_ov36_0217e7a4: ; 0x0217e7a4
stmdb sp!, {r4, lr}
mov r4, r0
mov r2, #4
strb r2, [r4, #0x125]
add r0, r4, #0x158
mov r1, #0
strb r2, [r4, #0x124]
bl func_ov36_0217c958
ldr r1, _0217e80c ; =data_ov36_02186c90
add r0, r4, #0x158
bl func_ov36_0217c7e8
ldr r1, _0217e810 ; =data_027e0d0c
ldr r2, _0217e814 ; =0x00000b33
ldr r3, [r1]
mov r0, #1
str r3, [r4, #0x60]
ldr r3, [r1, #4]
str r3, [r4, #0x64]
ldr r1, [r1, #8]
str r1, [r4, #0x68]
str r2, [r4, #0x94]
ldr r1, [r4, #0x878]
bic r1, r1, #0x100
orr r1, r1, #0x1000
str r1, [r4, #0x878]
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov36_0217e7a4
_0217e80c: .word data_ov36_02186c90
_0217e810: .word data_027e0d0c
_0217e814: .word 0x00000b33
arm_func_start func_ov36_0217e818
func_ov36_0217e818: ; 0x0217e818
stmdb sp!, {r3, r4, r5, r6, lr}
sub sp, sp, #0x3c
mov r6, r0
bl func_ov36_02185050
add r1, r6, #0x100
ldrsh r1, [r1, #0x20]
mov r5, r0
cmp r1, #3
moveq r4, #0
beq _0217e84c
cmp r1, #2
moveq r4, #0x1e
movne r4, #0x5a
_0217e84c:
ldr r0, [r6, #0x138]
cmp r0, r4
bge _0217e868
mov r1, r5
add r0, r6, #0x78
mov r2, #0x384
bl func_0202b154
_0217e868:
ldr r0, _0217eb34 ; =0x00000337
ldr r1, _0217eb38 ; =0x00000112
bl func_01ff98e0
ldr r1, [r6, #0x168]
str r0, [r1, #0x10]
ldrsh r0, [r6, #0x78]
sub r0, r0, r5
strh r0, [sp]
ldrsh r0, [sp]
cmp r0, #0
rsblt r0, r0, #0
cmp r0, #0x4000
bge _0217e978
mov r3, #0x2000
add r0, sp, #0x18
add r2, sp, #0
mov r1, r6
str r3, [r6, #0x88]
bl func_ov36_021851dc
ldr r2, [sp, #0x18]
ldr r1, [sp, #0x1c]
ldr r0, [sp, #0x20]
str r2, [sp, #0x30]
str r1, [sp, #0x34]
str r0, [sp, #0x38]
ldr r0, [r6, #0x878]
tst r0, #0x100
bne _0217e934
add r2, sp, #0x30
mov r0, r6
mov r1, #9
bl func_ov00_020c1e2c
cmp r0, #0
beq _0217e934
ldr r1, [r6, #0x878]
ldr r0, _0217eb3c ; =data_027e0fc8
orr r1, r1, #0x100
str r1, [r6, #0x878]
str r4, [r6, #0x138]
ldr r0, [r0]
bl func_ov00_020bc46c
cmp r0, #1
bne _0217e934
ldr r0, _0217eb3c ; =data_027e0fc8
mov r1, #1
ldr r0, [r0]
bl func_ov00_020bb5f0
ldr r2, [r0]
mvn r1, #1
ldr r2, [r2]
blx r2
_0217e934:
add r0, sp, #4
mov r1, r6
bl func_ov00_020c23c4
ldr r1, [sp, #4]
mvn r0, #0
cmp r1, r0
beq _0217e970
ldr r0, _0217eb40 ; =data_027e0fe4
add r1, sp, #4
ldr r0, [r0]
bl func_ov00_020c3674
ldr r1, [r0, #4]
ldr r0, _0217eb44 ; =0x504c444d
cmp r1, r0
streq r4, [r6, #0x138]
_0217e970:
ldr r0, _0217eb48 ; =0x0000219a
str r0, [r6, #0x88]
_0217e978:
ldr r1, [r6, #0x48]
ldr r0, _0217eb4c ; =data_027e0e60
str r1, [sp, #0xc]
ldr r1, [r6, #0x4c]
ldr r0, [r0]
str r1, [sp, #0x10]
ldr r1, [r6, #0x50]
add r2, sp, #0xc
str r1, [sp, #0x14]
ldrh r1, [r6, #0x22]
ldr r4, _0217eb34 ; =0x00000337
bl func_ov00_02083770
ldrh r2, [r6, #0x78]
ldr r5, _0217eb50 ; =data_02050f54
mov r1, #0x3800
mov r2, r2, asr #0x4
mov ip, r2, lsl #0x1
add r2, ip, #1
mov r3, r2, lsl #0x1
mov r2, ip, lsl #0x1
ldrsh r3, [r5, r3]
ldrsh r2, [r5, r2]
ldr r5, [r6, #0x50]
smulbb r3, r3, r1
smulbb r1, r2, r1
add r3, r3, #0x800
add lr, r5, r3, asr #12
ldr r2, [r6, #0x48]
ldr ip, [r6, #0x4c]
add r1, r1, #0x800
add r3, r2, r1, asr #12
ldr r1, _0217eb54 ; =data_027e0e58
mov r5, r0
ldr r0, [r1]
add r2, sp, #0x24
str r3, [sp, #0x24]
str ip, [sp, #0x28]
str lr, [sp, #0x2c]
add r1, r6, #0x6a0
bl func_ov00_0207c474
ldrsh r0, [r6, #0x78]
ldr r1, [r6, #0x6a0]
ldr r3, _0217eb50 ; =data_02050f54
add r0, r0, #0x8000
mov r0, r0, lsl #0x10
mov r0, r0, lsr #0x10
mov r0, r0, asr #0x4
mov ip, r0, lsl #0x1
add r0, ip, #1
mov r2, r0, lsl #0x1
mov r0, ip, lsl #0x1
cmp r1, #0
ldrsh r2, [r3, r2]
ldrsh r0, [r3, r0]
beq _0217ea64
strh r0, [r1, #0x50]
mov r0, #0
strh r0, [r1, #0x52]
strh r2, [r1, #0x54]
_0217ea64:
mov r0, r6
bl func_ov36_02185c84
ldrb r0, [r6, #0x110]
cmp r0, #0
ldreqb r0, [r6, #0x112]
cmpeq r0, #0
ldreqb r0, [r6, #0x113]
cmpeq r0, #0
beq _0217eacc
ldr r0, [r6, #0xc4]
ldr r1, [r6, #0xcc]
bl func_01ffa0f4
ldrsh r1, [r6, #0x78]
mov r0, r0, lsl #0x10
rsb r0, r1, r0, asr #16
mov r0, r0, lsl #0x10
movs r0, r0, asr #0x10
rsbmi r0, r0, #0
cmp r0, #0x4000
blt _0217eacc
add r0, r6, #0x6a0
bl func_ov00_020b7e6c
mov r0, r6
mov r1, #5
bl func_ov36_0217d6bc
mov r4, #0
_0217eacc:
strb r5, [r6, #0x8ab]
ldrh r1, [r6, #0x78]
ldr r3, _0217eb50 ; =data_02050f54
mov r0, r6
mov r1, r1, asr #0x4
mov r1, r1, lsl #0x1
mov r2, r1, lsl #0x1
add r1, r1, #1
mov r1, r1, lsl #0x1
ldrsh r2, [r3, r2]
ldrsh r1, [r3, r1]
smull r3, r5, r2, r4
adds ip, r3, #0x800
smull r3, r2, r1, r4
adc r1, r5, #0
adds r3, r3, #0x800
mov r4, ip, lsr #0xc
orr r4, r4, r1, lsl #20
adc r1, r2, #0
mov r2, r3, lsr #0xc
str r4, [r6, #0x60]
orr r2, r2, r1, lsl #20
str r2, [r6, #0x68]
bl func_ov36_02183204
add sp, sp, #0x3c
ldmia sp!, {r3, r4, r5, r6, pc}
.align 2, 0
arm_func_end func_ov36_0217e818
_0217eb34: .word 0x00000337
_0217eb38: .word 0x00000112
_0217eb3c: .word data_027e0fc8
_0217eb40: .word data_027e0fe4
_0217eb44: .word 0x504c444d
_0217eb48: .word 0x0000219a
_0217eb4c: .word data_027e0e60
_0217eb50: .word data_02050f54
_0217eb54: .word data_027e0e58
arm_func_start func_ov36_0217eb58
func_ov36_0217eb58: ; 0x0217eb58
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #0x18
mov r4, r0
ldrsh r0, [r4, #0x78]
ldr ip, _0217ecb8 ; =data_02050f54
ldr r3, _0217ecbc ; =0x000024cd
strh r0, [sp, #8]
ldrh r1, [sp, #8]
ldr lr, [r4, #0x4c]
ldr r0, [r4, #0x50]
mov r2, r1, asr #0x4
mov r6, r2, lsl #0x1
add r2, r6, #1
mov r5, r2, lsl #0x1
ldrsh r5, [ip, r5]
mov r2, r6, lsl #0x1
ldrsh ip, [ip, r2]
smulbb r5, r5, r3
smulbb r3, ip, r3
add r2, lr, #0x33
add r5, r5, #0x800
add r5, r0, r5, asr #12
ldr ip, [r4, #0x48]
add lr, r2, #0xb00
add r3, r3, #0x800
add r2, ip, r3, asr #12
add r1, r1, #0x8000
str r2, [sp, #0xc]
strh r1, [sp, #8]
add r0, sp, #8
str lr, [sp, #0x10]
str r5, [sp, #0x14]
str r0, [sp]
ldr r1, _0217ecc0 ; =func_ov36_0217bdb4
ldr r0, _0217ecc4 ; =data_027e0e58
str r1, [sp, #4]
ldr r0, [r0]
ldr r1, _0217ecc8 ; =0x00001009
add r2, sp, #0xc
mov r3, #2
bl func_ov00_0207c1b0
add r0, sp, #8
str r0, [sp]
ldr r1, _0217ecc0 ; =func_ov36_0217bdb4
ldr r0, _0217ecc4 ; =data_027e0e58
str r1, [sp, #4]
ldr r0, [r0]
ldr r1, _0217eccc ; =0x0000100a
add r2, sp, #0xc
mov r3, #2
bl func_ov00_0207c1b0
add r0, r4, #0x800
mov r2, #0
strh r2, [r0, #0xa0]
add r0, r4, #0x158
mov r1, #0x12
str r2, [r4, #0x94]
bl func_ov36_0217c958
ldr r1, _0217ecd0 ; =data_ov36_02186c94
add r0, r4, #0x158
bl func_ov36_0217c7e8
ldr r2, _0217ecd4 ; =data_027e0d0c
ldr r0, _0217ecd8 ; =data_027e0f64
ldr r3, [r2]
mov r1, #5
str r3, [r4, #0x60]
ldr r3, [r2, #4]
str r3, [r4, #0x64]
ldr r2, [r2, #8]
str r2, [r4, #0x68]
ldr r0, [r0]
ldr r0, [r0, #4]
bl func_ov00_02088000
ldr r0, _0217ecdc ; =data_027e0ffc
ldr r1, _0217ece0 ; =0x000002ce
add r2, r4, #0x48
mov r3, #0
bl func_ov00_020ceacc
ldr r0, _0217ece4 ; =data_027e1038
add r1, r4, #0x48
ldr r0, [r0]
bl func_ov00_020cef10
ldr r1, [r4, #0x878]
mov r0, #1
bic r1, r1, #0x100
str r1, [r4, #0x878]
add sp, sp, #0x18
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
arm_func_end func_ov36_0217eb58
_0217ecb8: .word data_02050f54
_0217ecbc: .word 0x000024cd
_0217ecc0: .word func_ov36_0217bdb4
_0217ecc4: .word data_027e0e58
_0217ecc8: .word 0x00001009
_0217eccc: .word 0x0000100a
_0217ecd0: .word data_ov36_02186c94
_0217ecd4: .word data_027e0d0c
_0217ecd8: .word data_027e0f64
_0217ecdc: .word data_027e0ffc
_0217ece0: .word 0x000002ce
_0217ece4: .word data_027e1038
arm_func_start func_ov36_0217ece8
func_ov36_0217ece8: ; 0x0217ece8
stmdb sp!, {r4, lr}
mov r4, r0
ldr r0, [r4, #0x138]
cmp r0, #0x19
bne _0217ed08
ldr r1, _0217ed4c ; =data_ov36_02186c98
add r0, r4, #0x158
bl func_ov36_0217c7e8
_0217ed08:
ldr r0, [r4, #0x168]
add r0, r0, #0xc
bl func_0202e58c
cmp r0, #0
beq _0217ed40
ldr r1, [r4, #0x878]
mov r0, r4
orr r2, r1, #0x200
mov r1, #6
str r2, [r4, #0x878]
bl func_ov36_0217d6bc
add r0, r4, #0x800
mov r1, #0
strh r1, [r0, #0x7e]
_0217ed40:
mov r0, r4
bl func_ov36_02183204
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov36_0217ece8
_0217ed4c: .word data_ov36_02186c98
arm_func_start func_ov36_0217ed50
func_ov36_0217ed50: ; 0x0217ed50
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #0xc
mov r4, r0
ldr r1, [r4, #0x878]
add r0, r4, #0x158
orr r1, r1, #4
str r1, [r4, #0x878]
mov r1, #0x16
bl func_ov36_0217ca34
ldr r2, [r4, #0x168]
mov r3, #0x1800
ldr r1, _0217ef04 ; =data_ov36_02186c9c
add r0, r4, #0x158
str r3, [r2, #0x10]
bl func_ov36_0217c7e8
ldr r0, _0217ef08 ; =data_027e0d0c
ldr r1, [r0]
str r1, [r4, #0x60]
ldr r1, [r0, #4]
str r1, [r4, #0x64]
ldr r0, [r0, #8]
str r0, [r4, #0x68]
ldrb r0, [r4, #0x110]
cmp r0, #0
ldreqb r0, [r4, #0x112]
cmpeq r0, #0
ldreqb r0, [r4, #0x113]
cmpeq r0, #0
beq _0217ede8
ldr r0, [r4, #0xc4]
ldr r1, [r4, #0xcc]
bl func_01ffa0f4
mov r1, r0, lsl #0x10
mov r0, r4
mov r1, r1, asr #0x10
mov r2, #0x2000
bl func_ov36_02183070
b _0217eef8
_0217ede8:
ldr r1, [r4, #0x48]
ldr r0, _0217ef0c ; =data_027e0e60
str r1, [sp]
ldr r1, [r4, #0x4c]
ldr r0, [r0]
str r1, [sp, #4]
ldr r1, [r4, #0x50]
add r2, sp, #0
str r1, [sp, #8]
ldrh r1, [r4, #0x22]
bl func_ov00_02083770
cmp r0, #0
moveq r0, #1
movne r0, #0
cmp r0, #0
beq _0217eee8
ldr r0, _0217ef0c ; =data_027e0e60
ldr r1, [r4, #0x54]
ldr r0, [r0]
bl func_ov00_020839d4
ldr r1, _0217ef0c ; =data_027e0e60
mov r6, r0
ldr r0, [r1]
ldr r1, [r4, #0x5c]
bl func_ov00_020839f8
ldr r1, _0217ef0c ; =data_027e0e60
mov r7, r0
ldr r0, [r1]
ldr r1, [r4, #0x48]
bl func_ov00_020839d4
ldr r1, _0217ef0c ; =data_027e0e60
mov r5, r0
ldr r0, [r1]
ldr r1, [r4, #0x50]
bl func_ov00_020839f8
cmp r6, r5
mov r2, #0
beq _0217ee8c
cmp r6, r5
sublt r2, r2, #0x4000
movge r2, #0x4000
_0217ee8c:
cmp r7, r0
beq _0217eec4
bge _0217eeb8
cmp r2, #0
moveq r2, #0x8000
rsbeq r2, r2, #0
beq _0217eec4
sub r0, r2, #0x8000
mov r0, r0, lsl #0xf
mov r2, r0, asr #0x10
b _0217eec4
_0217eeb8:
cmp r2, #0
moveq r2, #0
mov r2, r2, asr #0x1
_0217eec4:
ldr r1, [r4, #0x54]
add r0, r4, #0x800
str r1, [r4, #0x48]
ldr r1, [r4, #0x58]
str r1, [r4, #0x4c]
ldr r1, [r4, #0x5c]
str r1, [r4, #0x50]
strh r2, [r0, #0x8e]
b _0217eef8
_0217eee8:
mov r0, r4
mov r1, #0
mov r2, #0x8000
bl func_ov36_02183070
_0217eef8:
mov r0, #1
add sp, sp, #0xc
ldmia sp!, {r4, r5, r6, r7, pc}
.align 2, 0
arm_func_end func_ov36_0217ed50
_0217ef04: .word data_ov36_02186c9c
_0217ef08: .word data_027e0d0c
_0217ef0c: .word data_027e0e60
arm_func_start func_ov36_0217ef10
func_ov36_0217ef10: ; 0x0217ef10
stmdb sp!, {r3, r4, r5, lr}
add r1, sp, #0
mov r5, r0
bl func_ov36_02184f44
cmp r0, #0
beq _0217ef3c
cmp r0, #1
beq _0217ef44
cmp r0, #2
ldmia sp!, {r3, r4, r5, pc}
b _0217ef48
_0217ef3c:
mov r4, #0x258
b _0217ef48
_0217ef44:
mov r4, #0x384
_0217ef48:
add r0, r5, #0x800
ldrsh r1, [r0, #0x8e]
mov r2, r4
add r0, r5, #0x78
bl func_0202b154
cmp r0, #0
beq _0217ef70
mov r0, r5
mov r1, #2
bl func_ov36_0217d6bc
_0217ef70:
mov r0, r5
bl func_ov36_02183204
ldmia sp!, {r3, r4, r5, pc}
arm_func_end func_ov36_0217ef10
arm_func_start func_ov36_0217ef7c
func_ov36_0217ef7c: ; 0x0217ef7c
stmdb sp!, {r4, lr}
mov r4, r0
ldr r1, [r4, #0x878]
add r0, r4, #0x158
orr r1, r1, #4
str r1, [r4, #0x878]
mov r1, #0x16
bl func_ov36_0217ca34
ldr r2, [r4, #0x168]
mov r3, #0x2000
ldr r1, _0217efbc ; =data_ov36_02186ca0
add r0, r4, #0x158
str r3, [r2, #0x10]
bl func_ov36_0217c7e8
mov r0, #1
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov36_0217ef7c
_0217efbc: .word data_ov36_02186ca0
arm_func_start func_ov36_0217efc0
func_ov36_0217efc0: ; 0x0217efc0
stmdb sp!, {r4, r5, r6, lr}
ldr r1, _0217f0b4 ; =data_027e0fc8
mov r6, r0
ldr r0, [r1]
bl func_ov00_020bc46c
cmp r0, #1
mov r0, r6
bne _0217f0a0
bl func_ov00_020c2974
ldrsh r2, [r6, #0x78]
mov r4, r0
ldr r1, _0217f0b8 ; =0x00001555
sub r0, r4, r2
mov r0, r0, lsl #0x10
cmp r1, r0, asr #16
mov r5, r0, asr #0x10
addle r0, r6, #0x800
strleh r1, [r0, #0x90]
ble _0217f02c
rsb r0, r1, #0
cmp r5, r0
addgt r0, r6, #0x800
strgth r5, [r0, #0x90]
bgt _0217f02c
rsb r1, r1, #0
add r0, r6, #0x800
strh r1, [r0, #0x90]
_0217f02c:
ldr r0, [r6, #0x138]
cmp r0, #0x78
blt _0217f078
mov r0, r6
bl func_ov00_020c28ec
cmp r0, #0x5000
bge _0217f05c
ldr r0, _0217f0bc ; =0x00002aab
cmp r5, #0
rsblt r5, r5, #0
cmp r5, r0
ble _0217f078
_0217f05c:
mov r0, r6
add r2, r6, #0x800
mov r3, #0
mov r1, #8
strh r3, [r2, #0x90]
bl func_ov36_0217d6bc
b _0217f0a8
_0217f078:
mov r1, r4
add r0, r6, #0x78
mov r2, #0x384
bl func_0202b154
cmp r0, #0
beq _0217f0a8
mov r0, r6
mov r1, #2
bl func_ov36_0217d6bc
b _0217f0a8
_0217f0a0:
mov r1, #2
bl func_ov36_0217d6bc
_0217f0a8:
mov r0, r6
bl func_ov36_02183204
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
arm_func_end func_ov36_0217efc0
_0217f0b4: .word data_027e0fc8
_0217f0b8: .word 0x00001555
_0217f0bc: .word 0x00002aab
arm_func_start func_ov36_0217f0c0
func_ov36_0217f0c0: ; 0x0217f0c0
stmdb sp!, {r4, lr}
mov r4, r0
add r0, r4, #0x158
mov r1, #0x17
bl func_ov36_0217ca34
ldr r1, _0217f104 ; =data_ov36_02186ca4
add r0, r4, #0x158
bl func_ov36_0217c7e8
ldr r1, _0217f108 ; =data_027e0d0c
mov r0, #1
ldr r2, [r1]
str r2, [r4, #0x60]
ldr r2, [r1, #4]
str r2, [r4, #0x64]
ldr r1, [r1, #8]
str r1, [r4, #0x68]
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov36_0217f0c0
_0217f104: .word data_ov36_02186ca4
_0217f108: .word data_027e0d0c
arm_func_start func_ov36_0217f10c
func_ov36_0217f10c: ; 0x0217f10c
stmdb sp!, {r3, r4, lr}
sub sp, sp, #4
add r1, sp, #0
mov r4, r0
bl func_ov36_02184f44
cmp r0, #0
cmpne r0, #1
beq _0217f138
cmp r0, #2
addeq sp, sp, #4
ldmia sp!, {r3, r4, pc}
_0217f138:
add r0, r4, #0x158
bl func_ov36_0217cc84
cmp r0, #0
beq _0217f168
ldr r0, [r4, #0x168]
add r0, r0, #0xc
bl func_0202e58c
cmp r0, #0
beq _0217f168
mov r0, r4
mov r1, #2
bl func_ov36_0217d6bc
_0217f168:
mov r0, r4
bl func_ov36_02183204
add sp, sp, #4
ldmia sp!, {r3, r4, pc}
arm_func_end func_ov36_0217f10c
arm_func_start func_ov36_0217f178
func_ov36_0217f178: ; 0x0217f178
stmdb sp!, {r4, lr}
mov r4, r0
ldrb r0, [r4, #0x8a7]
cmp r0, #5
blo _0217f1a0
mov r0, #0
strb r0, [r4, #0x8a7]
ldr r0, [r4, #0x878]
bic r0, r0, #0x80
str r0, [r4, #0x878]
_0217f1a0:
ldr r1, [r4, #0x878]
add r0, r4, #0x158
orr r2, r1, #0x1000
mov r1, #0x13
str r2, [r4, #0x878]
bl func_ov36_0217ca34
ldr r1, _0217f20c ; =data_027e0d0c
mov r0, r4
ldr r2, [r1]
str r2, [r4, #0x60]
ldr r2, [r1, #4]
str r2, [r4, #0x64]
ldr r1, [r1, #8]
str r1, [r4, #0x68]
bl func_ov36_02185050
add r1, r4, #0x800
strh r0, [r1, #0x8e]
ldr r1, _0217f210 ; =data_ov36_02186ca8
add r0, r4, #0x158
bl func_ov36_0217c7e8
ldr r0, _0217f214 ; =data_027e0ffc
add r2, r4, #0x48
ldr r1, _0217f218 ; =0x000002c3
mov r3, #0
bl func_ov00_020ceacc
mov r0, #1
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov36_0217f178
_0217f20c: .word data_027e0d0c
_0217f210: .word data_ov36_02186ca8
_0217f214: .word data_027e0ffc
_0217f218: .word 0x000002c3
arm_func_start func_ov36_0217f21c
func_ov36_0217f21c: ; 0x0217f21c
stmdb sp!, {r4, lr}
sub sp, sp, #0x48
mov r4, r0
ldr r1, [r4, #0x138]
cmp r1, #0x1e
bgt _0217f26c
ldr r1, [r4, #0x878]
tst r1, #0x100000
beq _0217f258
bl func_ov00_020c2974
mov r1, r0
add r0, r4, #0x78
mov r2, #0x4b0
bl func_0202b154
b _0217f26c
_0217f258:
bl func_ov36_02185050
mov r1, r0
add r0, r4, #0x78
mov r2, #0x4b0
bl func_0202b154
_0217f26c:
mov r0, r4
bl func_ov36_02183204
cmp r0, #0
addne sp, sp, #0x48
ldmia sp!, {r4, pc}
ldr r0, [r4, #0x168]
ldr r0, [r0, #0x14]
cmp r0, #0x1a000
bgt _0217f3a4
addne sp, sp, #0x48
ldmia sp!, {r4, pc}
ldrb r1, [r4, #0x8a7]
add r0, sp, #0x1c
add r1, r1, #1
strb r1, [r4, #0x8a7]
bl func_ov00_020c1500
mvn r1, #0
add r0, sp, #0x1c
str r1, [sp, #0x38]
str r1, [sp, #0x3c]
bl func_ov00_020c3348
ldr r1, [r4, #8]
add r0, sp, #4
str r1, [sp, #0x38]
ldr r2, [r4, #0xc]
add r1, r4, #0x178
str r2, [sp, #0x3c]
ldrsh r3, [r4, #0x78]
mov r2, #0
strh r3, [sp, #0x30]
strh r2, [sp, #0x1c]
bl func_ov36_0217c5a0
add r0, sp, #4
add r3, sp, #0x10
ldmia r0!, {r0, r1, r2}
stmia r3!, {r0, r1, r2}
mov r0, #0
str r0, [sp]
ldr r0, _0217f3f0 ; =data_027e0fe8
mov r2, r3
ldr r1, _0217f3f4 ; =0x50424652
ldr r0, [r0]
add r3, sp, #0x1c
bl func_ov00_020c4048
ldrsh r0, [r4, #0x78]
mov r2, #0
ldr r1, _0217f3f0 ; =data_027e0fe8
add r0, r0, #0x55
add r0, r0, #0x1500
strh r0, [sp, #0x30]
str r2, [sp]
ldr r0, [r1]
ldr r1, _0217f3f4 ; =0x50424652
add r2, sp, #0x10
add r3, sp, #0x1c
bl func_ov00_020c4048
ldrsh r2, [r4, #0x78]
ldr r0, _0217f3f8 ; =0xffffeaab
mov r1, #0
add r0, r2, r0
strh r0, [sp, #0x30]
str r1, [sp]
ldr r0, _0217f3f0 ; =data_027e0fe8
ldr r1, _0217f3f4 ; =0x50424652
ldr r0, [r0]
add r2, sp, #0x10
add r3, sp, #0x1c
bl func_ov00_020c4048
ldr r1, [r4, #0x878]
ldr r0, _0217f3fc ; =data_027e0ffc
bic r1, r1, #0x1000
str r1, [r4, #0x878]
add r2, r4, #0x48
mov r1, #0x2c4
mov r3, #0
bl func_ov00_020ceacc
add sp, sp, #0x48
ldmia sp!, {r4, pc}
_0217f3a4:
add r0, r4, #0x158
bl func_ov36_0217cc84
cmp r0, #0
addeq sp, sp, #0x48
ldmia sp!, {r4, pc}
ldr r0, [r4, #0x168]
add r0, r0, #0xc
bl func_0202e58c
cmp r0, #0
addeq sp, sp, #0x48
ldmia sp!, {r4, pc}
mov r0, r4
add r2, r4, #0x800
mov r3, #0x1e
mov r1, #2
strh r3, [r2, #0x7e]
bl func_ov36_0217d6bc
add sp, sp, #0x48
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov36_0217f21c
_0217f3f0: .word data_027e0fe8
_0217f3f4: .word 0x50424652
_0217f3f8: .word 0xffffeaab
_0217f3fc: .word data_027e0ffc
arm_func_start func_ov36_0217f400
func_ov36_0217f400: ; 0x0217f400
ldr r2, _0217f410 ; =data_ov36_02186d00
str r2, [r0]
str r1, [r0, #4]
bx lr
.align 2, 0
arm_func_end func_ov36_0217f400
_0217f410: .word data_ov36_02186d00
arm_func_start func_ov36_0217f414
func_ov36_0217f414: ; 0x0217f414
stmdb sp!, {r3, r4, r5, lr}
mov r4, r1
ldr r2, [r4, #4]
ldr r1, _0217f474 ; =0x424f4d42
mov r5, r0
cmp r2, r1
bne _0217f46c
ldr r0, [r5, #4]
add r1, r4, #0x48
bl func_ov36_0217f478
cmp r0, #0
beq _0217f46c
mov r0, r4
bl func_ov14_02122e7c
cmp r0, #0
beq _0217f46c
ldr r0, [r5, #4]
ldr r1, [r4, #0x4c]
ldr r0, [r0, #0x4c]
cmp r1, r0
movne r0, #1
ldmia sp!, {r3, r4, r5, pc}
_0217f46c:
mov r0, #0
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov36_0217f414
_0217f474: .word 0x424f4d42
arm_func_start func_ov36_0217f478
func_ov36_0217f478: ; 0x0217f478
stmdb sp!, {r3, lr}
str r1, [sp]
ldrsh r1, [r0, #0x78]
ldr r3, _0217f498 ; =0x00001770
add r0, r0, #0x48
mov r2, #0x5000
bl func_ov00_020c54a0
ldmia sp!, {r3, pc}
.align 2, 0
arm_func_end func_ov36_0217f478
_0217f498: .word 0x00001770
arm_func_start func_ov36_0217f49c
func_ov36_0217f49c: ; 0x0217f49c
stmdb sp!, {r4, lr}
ldr r2, _0217f4f0 ; =data_027e0d0c
mov r4, r0
ldr r1, [r2]
add r0, r4, #0x158
str r1, [r4, #0x60]
ldr r3, [r2, #4]
mov r1, #0x1e
str r3, [r4, #0x64]
ldr r2, [r2, #8]
str r2, [r4, #0x68]
bl func_ov36_0217ca34
mov r2, #0
str r2, [r4, #0x6bc]
add r0, r4, #0x800
mov r1, #0xb4
strh r1, [r0, #0xa2]
str r2, [r4, #0x874]
strb r2, [r4, #0x8a7]
mov r0, #1
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov36_0217f49c
_0217f4f0: .word data_027e0d0c
arm_func_start func_ov36_0217f4f4
func_ov36_0217f4f4: ; 0x0217f4f4
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #0x7c
mov r5, r0
bl func_ov00_020c2974
mov r1, r0
add r0, r5, #0x78
mov r2, #0x3e8
bl func_0202b154
ldrb r0, [r5, #0x560]
cmp r0, #0
beq _0217f608
mvn r6, #0
add r4, sp, #0xc
mov r3, #1
mov r2, #0
add r0, sp, #4
mov r1, r5
str r6, [sp, #0xc]
str r6, [sp, #0x10]
str r4, [sp, #0x70]
str r3, [sp, #0x74]
str r2, [sp, #0x78]
bl func_ov36_0217f400
ldr r0, _0217f96c ; =data_027e0fe4
add r1, sp, #4
ldr r0, [r0]
add r2, sp, #0x70
bl func_ov00_020c37ec
ldr r1, [sp, #0xc]
mov r0, r6
cmp r1, r0
beq _0217f608
ldr r0, _0217f96c ; =data_027e0fe4
mov r1, r4
ldr r0, [r0]
bl func_ov00_020c3674
str r0, [r5, #0x6bc]
ldrb r0, [r5, #0xa4]
cmp r0, #0
ldreqb r0, [r5, #0xa5]
cmpeq r0, #0
beq _0217f5c4
add r0, sp, #0x20
add r1, r5, #0x178
bl func_ov36_0217c5a0
ldr r2, [sp, #0x20]
ldr r1, [sp, #0x24]
ldr r0, [sp, #0x28]
str r2, [sp, #0x64]
str r1, [sp, #0x68]
str r0, [sp, #0x6c]
b _0217f5e8
_0217f5c4:
ldr r0, [r5, #0x48]
str r0, [sp, #0x64]
ldr r0, [r5, #0x4c]
str r0, [sp, #0x68]
add r0, r0, #0x33
ldr r1, [r5, #0x50]
add r0, r0, #0xb00
str r1, [sp, #0x6c]
str r0, [sp, #0x68]
_0217f5e8:
ldr r0, [r5, #0x6bc]
add r1, sp, #0x64
bl func_ov14_02122e48
mov r0, r5
mov r1, #0xb
bl func_ov36_0217d6bc
add sp, sp, #0x7c
ldmia sp!, {r4, r5, r6, r7, pc}
_0217f608:
ldr r0, [r5, #0x168]
mov r1, #0x66000
add r0, r0, #0xc
bl func_0202e310
cmp r0, #0
beq _0217f650
ldr r0, _0217f970 ; =data_027e0f64
mov r1, #1
ldr r0, [r0]
ldr r0, [r0, #4]
bl func_ov00_02088000
ldr r0, _0217f974 ; =data_027e0ffc
ldr r1, _0217f978 ; =0x000002cd
add r2, r5, #0x48
mov r3, #0
bl func_ov00_020ceacc
mov r0, r5
bl func_ov36_02185eb8
_0217f650:
ldr r0, [r5, #0x168]
ldr r4, [r0, #0x14]
cmp r4, #0xc000
blt _0217f710
cmp r4, #0x10000
bgt _0217f710
rsb r1, r4, #0x10000
cmp r1, #0x1000
movle r0, #0x1000
ble _0217f68c
ldr r0, [r5, #0x868]
rsb r0, r0, #0x1000
bl func_01ff98e0
ldr r1, [r5, #0x868]
add r0, r1, r0
_0217f68c:
str r0, [r5, #0x868]
ldrh r1, [r5, #0x78]
ldr r2, _0217f97c ; =data_02050f54
ldr r0, _0217f980 ; =0xfffffccd
mov r1, r1, asr #0x4
mov r3, r1, lsl #0x1
mov r1, r3, lsl #0x1
ldrsh r7, [r2, r1]
add r1, r3, #1
mov r1, r1, lsl #0x1
ldrsh r2, [r2, r1]
umull lr, ip, r7, r0
mvn r1, #0
mla ip, r7, r1, ip
umull r6, r3, r2, r0
mla r3, r2, r1, r3
mov r1, r2, asr #0x1f
mov r7, r7, asr #0x1f
mla ip, r7, r0, ip
adds lr, lr, #0x800
adc r7, ip, #0
mov ip, lr, lsr #0xc
orr ip, ip, r7, lsl #20
mla r3, r1, r0, r3
adds r6, r6, #0x800
str ip, [r5, #0x60]
mov r2, #0
adc r0, r3, #0
mov r1, r6, lsr #0xc
str r2, [r5, #0x64]
orr r1, r1, r0, lsl #20
str r1, [r5, #0x68]
b _0217f7d4
_0217f710:
cmp r4, #0x61000
blt _0217f7c4
cmp r4, #0x66000
bgt _0217f7c4
rsb r1, r4, #0x66000
cmp r1, #0x1000
movle r0, #0
ble _0217f744
ldr r0, [r5, #0x868]
rsb r0, r0, #0
bl func_01ff98e0
ldr r1, [r5, #0x868]
add r0, r1, r0
_0217f744:
str r0, [r5, #0x868]
ldrh r1, [r5, #0x78]
ldr r2, _0217f97c ; =data_02050f54
ldr r0, _0217f984 ; =0x0000028f
mov r1, r1, asr #0x4
mov r3, r1, lsl #0x1
mov r1, r3, lsl #0x1
ldrsh lr, [r2, r1]
add r1, r3, #1
mov r1, r1, lsl #0x1
ldrsh r1, [r2, r1]
umull r7, r6, lr, r0
mov ip, #0
mla r6, lr, ip, r6
umull r3, r2, r1, r0
mla r2, r1, ip, r2
mov lr, lr, asr #0x1f
mov r1, r1, asr #0x1f
adds r7, r7, #0x800
mla r6, lr, r0, r6
adc r6, r6, #0
mov r7, r7, lsr #0xc
orr r7, r7, r6, lsl #20
str r7, [r5, #0x60]
mla r2, r1, r0, r2
adds r3, r3, #0x800
adc r0, r2, #0
mov r1, r3, lsr #0xc
str ip, [r5, #0x64]
orr r1, r1, r0, lsl #20
str r1, [r5, #0x68]
b _0217f7d4
_0217f7c4:
mov r0, #0
str r0, [r5, #0x60]
str r0, [r5, #0x64]
str r0, [r5, #0x68]
_0217f7d4:
cmp r4, #0x70000
blt _0217f940
bne _0217f7fc
mov r0, r5
add r1, r5, #0x800
mov r2, #0
strh r2, [r1, #0x90]
bl func_ov00_020c2974
add r1, r5, #0x800
strh r0, [r1, #0x8e]
_0217f7fc:
mov r0, r5
bl func_ov00_020c2974
mov r1, r0
add r0, r5, #0x78
mov r2, #0x190
bl func_0202b154
mov r0, #0
str r0, [sp]
ldr r3, [r5, #8]
ldr r0, _0217f974 ; =data_027e0ffc
ldr r1, _0217f988 ; =0x000002c5
add r2, r5, #0x48
bl func_ov00_020cec60
mov r0, #0x30000
mov r1, #0xb4000
bl func_01ff98e0
ldr r2, [r5, #0x874]
ldr r1, _0217f97c ; =data_02050f54
mul r0, r2, r0
mov r0, r0, lsl #0x10
mov r0, r0, lsr #0x10
mov r0, r0, asr #0x4
mov r0, r0, lsl #0x2
ldrsh r3, [r1, r0]
ldr r0, _0217f98c ; =0x009c4000
add r1, r2, #1
str r1, [r5, #0x874]
umull r1, r4, r3, r0
adds r1, r1, #0x800
mov ip, r1, lsr #0xc
mov r2, r3, asr #0x1f
mov r1, #0
mla r4, r3, r1, r4
mla r4, r2, r0, r4
adc r0, r4, #0
orr ip, ip, r0, lsl #20
mov r0, ip, lsl #0x4
mov r4, r0, asr #0x10
ldr r0, [r5, #0x878]
add r1, r5, #0x800
orr r0, r0, #4
str r0, [r5, #0x878]
strh r4, [r1, #0x90]
add r0, r5, #0x200
strh r4, [r0, #0x64]
ldrsh r0, [r1, #0x7c]
cmp r0, #0
bne _0217f940
mov r2, #6
add r0, sp, #0x38
strh r2, [r1, #0x7c]
bl func_ov00_020c1500
mvn r1, #0
add r0, sp, #0x38
str r1, [sp, #0x54]
str r1, [sp, #0x58]
bl func_ov00_020c3348
ldr r1, [r5, #8]
add r0, sp, #0x14
str r1, [sp, #0x54]
ldr r2, [r5, #0xc]
add r1, r5, #0x178
str r2, [sp, #0x58]
ldrsh r3, [r5, #0x78]
mov r2, #1
add r3, r3, r4
strh r3, [sp, #0x4c]
strh r2, [sp, #0x38]
bl func_ov36_0217c5a0
add r0, sp, #0x14
add r3, sp, #0x2c
ldmia r0!, {r0, r1, r2}
stmia r3!, {r0, r1, r2}
mov r0, #0
str r0, [sp]
ldr r0, _0217f990 ; =data_027e0fe8
mov r2, r3
ldr r1, _0217f994 ; =0x50424652
ldr r0, [r0]
add r3, sp, #0x38
bl func_ov00_020c4048
_0217f940:
ldr r0, [r5, #0x168]
add r0, r0, #0xc
bl func_0202e58c
cmp r0, #0
addeq sp, sp, #0x7c
ldmia sp!, {r4, r5, r6, r7, pc}
mov r0, r5
mov r1, #0xc
bl func_ov36_0217d6bc
add sp, sp, #0x7c
ldmia sp!, {r4, r5, r6, r7, pc}
.align 2, 0
arm_func_end func_ov36_0217f4f4
_0217f96c: .word data_027e0fe4
_0217f970: .word data_027e0f64
_0217f974: .word data_027e0ffc
_0217f978: .word 0x000002cd
_0217f97c: .word data_02050f54
_0217f980: .word 0xfffffccd
_0217f984: .word 0x0000028f
_0217f988: .word 0x000002c5
_0217f98c: .word 0x009c4000
_0217f990: .word data_027e0fe8
_0217f994: .word 0x50424652
arm_func_start func_ov36_0217f998
func_ov36_0217f998: ; 0x0217f998
stmdb sp!, {r4, lr}
ldr r2, _0217f9e8 ; =data_027e0d0c
mov r4, r0
ldr r1, [r2]
add r0, r4, #0x158
str r1, [r4, #0x60]
ldr r3, [r2, #4]
mov r1, #0x1d
str r3, [r4, #0x64]
ldr r2, [r2, #8]
str r2, [r4, #0x68]
bl func_ov36_0217ca34
ldr r1, _0217f9ec ; =data_ov36_02186cac
add r0, r4, #0x158
bl func_ov36_0217c7e8
ldr r1, [r4, #0x878]
mov r0, #1
bic r1, r1, #0x40
str r1, [r4, #0x878]
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov36_0217f998
_0217f9e8: .word data_027e0d0c
_0217f9ec: .word data_ov36_02186cac
arm_func_start func_ov36_0217f9f0
func_ov36_0217f9f0: ; 0x0217f9f0
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #0x38
mov r5, r0
ldr r0, [r5, #0x6bc]
cmp r0, #0
beq _0217fb90
ldrb r0, [r5, #0xa4]
cmp r0, #0
ldreqb r0, [r5, #0xa5]
cmpeq r0, #0
beq _0217fa44
add r0, sp, #8
add r1, r5, #0x178
bl func_ov36_0217c5a0
ldr r2, [sp, #8]
ldr r1, [sp, #0xc]
ldr r0, [sp, #0x10]
str r2, [sp, #0x2c]
str r1, [sp, #0x30]
str r0, [sp, #0x34]
b _0217fa68
_0217fa44:
ldr r0, [r5, #0x48]
str r0, [sp, #0x2c]
ldr r0, [r5, #0x4c]
str r0, [sp, #0x30]
add r0, r0, #0x33
ldr r1, [r5, #0x50]
add r0, r0, #0xb00
str r1, [sp, #0x34]
str r0, [sp, #0x30]
_0217fa68:
ldr r0, [r5, #0x6bc]
add r1, sp, #0x2c
bl func_ov14_02122e48
ldr r0, [r5, #0x168]
ldr r0, [r0, #0x14]
cmp r0, #0x37000
blt _0217fb90
ldr r0, _0217fdb8 ; =data_027e0f64
mov r1, #2
ldr r0, [r0]
ldr r0, [r0, #4]
bl func_ov00_02088000
ldr r0, [r5, #0x6bc]
mov r3, #0
strb r3, [r0, #0x118]
add r0, r5, #0x48
add ip, sp, #0x20
ldmia r0!, {r0, r1, r2}
stmia ip!, {r0, r1, r2}
ldr r1, [sp, #0x24]
ldr r0, _0217fdbc ; =data_027e0ffc
add r4, r1, #0x2800
ldr r1, _0217fdc0 ; =0x000001ad
mov r2, ip
str r4, [sp, #0x24]
bl func_ov00_020ceacc
ldr r0, _0217fdc4 ; =data_027e1038
add r1, sp, #0x20
ldr r0, [r0]
bl func_ov00_020cef10
ldr r0, _0217fdc8 ; =data_027e0e58
mov r2, #0
ldr r4, [r0]
ldr r1, _0217fdcc ; =0x00000203
str r2, [sp]
str r2, [sp, #4]
mov r0, r4
add r2, sp, #0x20
mov r3, #2
bl func_ov00_0207c1b0
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
mov r0, r4
mov r1, #0x204
add r2, sp, #0x20
mov r3, #2
bl func_ov00_0207c1b0
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
ldr r1, _0217fdd0 ; =0x00000205
mov r0, r4
add r2, sp, #0x20
mov r3, #2
bl func_ov00_0207c1b0
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
ldr r1, _0217fdd4 ; =0x00000206
mov r0, r4
add r2, sp, #0x20
mov r3, #2
bl func_ov00_0207c1b0
mov r1, #0
str r1, [sp]
str r1, [sp, #4]
ldr r1, _0217fdd8 ; =0x00000207
mov r0, r4
add r2, sp, #0x20
mov r3, #2
bl func_ov00_0207c1b0
mov r0, #0
str r0, [r5, #0x6bc]
_0217fb90:
ldr r0, [r5, #0x138]
cmp r0, #6
bne _0217fbb0
ldr r0, _0217fdbc ; =data_027e0ffc
add r2, r5, #0x48
mov r1, #0x2d0
mov r3, #0
bl func_ov00_020ceacc
_0217fbb0:
ldr r0, [r5, #0x168]
mov r1, #0x36000
add r0, r0, #0xc
bl func_0202e310
cmp r0, #0
beq _0217fbd8
ldr r1, _0217fddc ; =data_ov36_02186cb0
add r0, r5, #0x158
bl func_ov36_0217c7e8
b _0217fc04
_0217fbd8:
ldr r0, [r5, #0x168]
mov r1, #0x3b000
add r0, r0, #0xc
bl func_0202e310
cmp r0, #0
beq _0217fc04
ldr r0, _0217fdbc ; =data_027e0ffc
ldr r1, _0217fde0 ; =0x000002cb
add r2, r5, #0x48
mov r3, #0
bl func_ov00_020ceacc
_0217fc04:
ldr r0, [r5, #0x168]
ldr r4, [r0, #0x14]
cmp r4, #0x45000
blt _0217fcb0
cmp r4, #0x4f000
bgt _0217fcb0
rsb r1, r4, #0x4f000
cmp r1, #0x1000
movle r0, #0
ble _0217fc40
ldr r0, [r5, #0x868]
rsb r0, r0, #0
bl func_01ff98e0
ldr r1, [r5, #0x868]
add r0, r1, r0
_0217fc40:
str r0, [r5, #0x868]
ldrh r6, [r5, #0x78]
ldr r0, _0217fde4 ; =0x00000ccd
mov r1, #0xb000
bl func_01ff98e0
mov r1, r6, asr #0x4
mov r2, r1, lsl #0x1
add r1, r2, #1
ldr r3, _0217fde8 ; =data_02050f54
mov r2, r2, lsl #0x1
mov r1, r1, lsl #0x1
ldrsh r2, [r3, r2]
ldrsh r1, [r3, r1]
smull ip, r3, r2, r0
adds ip, ip, #0x800
smull r2, r0, r1, r0
adc r3, r3, #0
adds r1, r2, #0x800
mov r2, ip, lsr #0xc
orr r2, r2, r3, lsl #20
str r2, [r5, #0x60]
mov r2, #0
adc r0, r0, #0
mov r1, r1, lsr #0xc
str r2, [r5, #0x64]
orr r1, r1, r0, lsl #20
str r1, [r5, #0x68]
b _0217fcc0
_0217fcb0:
mov r0, #0
str r0, [r5, #0x60]
str r0, [r5, #0x64]
str r0, [r5, #0x68]
_0217fcc0:
cmp r4, #0x40000
blt _0217fd08
cmp r4, #0x68000
bgt _0217fd08
rsb r1, r4, #0x68000
cmp r1, #0x1000
movle r0, #0x4000
strleh r0, [r5, #0x78]
ble _0217fd08
ldrsh r0, [r5, #0x78]
rsb r0, r0, #0x4000
mov r0, r0, lsl #0x10
mov r0, r0, asr #0x4
bl func_01ff98e0
ldrsh r1, [r5, #0x78]
add r0, r0, #0x800
add r0, r1, r0, asr #12
strh r0, [r5, #0x78]
_0217fd08:
ldr r0, [r5, #0x168]
mov r1, #0x6b000
add r0, r0, #0xc
bl func_0202e310
cmp r0, #0
beq _0217fd8c
ldr r0, [r5, #0x4c]
ldr r2, [r5, #0x50]
ldr r1, [r5, #0x48]
add r0, r0, #0xcd
add r0, r0, #0x400
str r1, [sp, #0x14]
str r0, [sp, #0x18]
str r2, [sp, #0x1c]
mov r1, #0
str r1, [sp]
str r1, [sp, #4]
ldr r0, _0217fdc8 ; =data_027e0e58
add r2, sp, #0x14
ldr r0, [r0]
mov r1, #0x11
mov r3, #2
bl func_ov00_0207c1b0
ldr r0, _0217fdb8 ; =data_027e0f64
mov r1, #1
ldr r0, [r0]
ldr r0, [r0, #4]
bl func_ov00_02088000
ldr r0, _0217fdbc ; =data_027e0ffc
ldr r1, _0217fdec ; =0x000002c7
add r2, r5, #0x48
mov r3, #0
bl func_ov00_020ceacc
_0217fd8c:
ldr r0, [r5, #0x168]
add r0, r0, #0xc
bl func_0202e58c
cmp r0, #0
addeq sp, sp, #0x38
ldmia sp!, {r4, r5, r6, pc}
mov r0, r5
mov r1, #0x13
bl func_ov36_0217d6bc
add sp, sp, #0x38
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
arm_func_end func_ov36_0217f9f0
_0217fdb8: .word data_027e0f64
_0217fdbc: .word data_027e0ffc
_0217fdc0: .word 0x000001ad
_0217fdc4: .word data_027e1038
_0217fdc8: .word data_027e0e58
_0217fdcc: .word 0x00000203
_0217fdd0: .word 0x00000205
_0217fdd4: .word 0x00000206
_0217fdd8: .word 0x00000207
_0217fddc: .word data_ov36_02186cb0
_0217fde0: .word 0x000002cb
_0217fde4: .word 0x00000ccd
_0217fde8: .word data_02050f54
_0217fdec: .word 0x000002c7
arm_func_start func_ov36_0217fdf0
func_ov36_0217fdf0: ; 0x0217fdf0
stmdb sp!, {r4, lr}
ldr r2, _0217fe34 ; =data_027e0d0c
mov r4, r0
ldr r1, [r2]
add r0, r4, #0x158
str r1, [r4, #0x60]
ldr r3, [r2, #4]
mov r1, #0x15
str r3, [r4, #0x64]
ldr r2, [r2, #8]
str r2, [r4, #0x68]
bl func_ov36_0217ca34
ldr r1, _0217fe38 ; =data_ov36_02186cb4
add r0, r4, #0x158
bl func_ov36_0217c7e8
mov r0, #1
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov36_0217fdf0
_0217fe34: .word data_027e0d0c
_0217fe38: .word data_ov36_02186cb4
arm_func_start func_ov36_0217fe3c
func_ov36_0217fe3c: ; 0x0217fe3c
stmdb sp!, {r3, r4, r5, lr}
sub sp, sp, #0x48
mov r5, r0
bl func_ov00_020c2974
mov r1, r0
add r0, r5, #0x78
mov r2, #0x190
bl func_0202b154
mov r0, #0
str r0, [sp]
ldr r3, [r5, #8]
ldr r0, _0217ffc4 ; =data_027e0ffc
ldr r1, _0217ffc8 ; =0x000002c5
add r2, r5, #0x48
bl func_ov00_020cec60
mov r0, #0x30000
mov r1, #0xb4000
bl func_01ff98e0
ldr r2, [r5, #0x874]
ldr r1, _0217ffcc ; =data_02050f54
mul r0, r2, r0
mov r0, r0, lsl #0x10
mov r0, r0, lsr #0x10
mov r0, r0, asr #0x4
mov r0, r0, lsl #0x2
ldrsh r3, [r1, r0]
ldr r0, _0217ffd0 ; =0x009c4000
add r1, r2, #1
str r1, [r5, #0x874]
umull r1, r4, r3, r0
adds r1, r1, #0x800
mov ip, r1, lsr #0xc
mov r2, r3, asr #0x1f
mov r1, #0
mla r4, r3, r1, r4
mla r4, r2, r0, r4
adc r0, r4, #0
orr ip, ip, r0, lsl #20
mov r0, ip, lsl #0x4
mov r4, r0, asr #0x10
ldr r0, [r5, #0x878]
add r1, r5, #0x800
orr r0, r0, #4
str r0, [r5, #0x878]
strh r4, [r1, #0x90]
add r0, r5, #0x200
strh r4, [r0, #0x64]
ldrsh r0, [r1, #0x7c]
cmp r0, #0
bne _0217ff88
mov r2, #6
add r0, sp, #0x1c
strh r2, [r1, #0x7c]
bl func_ov00_020c1500
mvn r1, #0
add r0, sp, #0x1c
str r1, [sp, #0x38]
str r1, [sp, #0x3c]
bl func_ov00_020c3348
ldr r1, [r5, #8]
add r0, sp, #4
str r1, [sp, #0x38]
ldr r2, [r5, #0xc]
add r1, r5, #0x178
str r2, [sp, #0x3c]
ldrsh r3, [r5, #0x78]
mov r2, #1
add r3, r3, r4
strh r3, [sp, #0x30]
strh r2, [sp, #0x1c]
bl func_ov36_0217c5a0
add r0, sp, #4
add r3, sp, #0x10
ldmia r0!, {r0, r1, r2}
stmia r3!, {r0, r1, r2}
mov r0, #0
str r0, [sp]
ldr r0, _0217ffd4 ; =data_027e0fe8
mov r2, r3
ldr r1, _0217ffd8 ; =0x50424652
ldr r0, [r0]
add r3, sp, #0x1c
bl func_ov00_020c4048
_0217ff88:
add r2, r5, #0x800
ldrsh r0, [r2, #0xa2]
ldr r1, [r5, #0x138]
cmp r1, r0
addlt sp, sp, #0x48
ldmia sp!, {r3, r4, r5, pc}
mov r1, #0
mov r0, r5
strh r1, [r2, #0xa2]
mov r3, #0x1e
mov r1, #2
strh r3, [r2, #0x7e]
bl func_ov36_0217d6bc
add sp, sp, #0x48
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov36_0217fe3c
_0217ffc4: .word data_027e0ffc
_0217ffc8: .word 0x000002c5
_0217ffcc: .word data_02050f54
_0217ffd0: .word 0x009c4000
_0217ffd4: .word data_027e0fe8
_0217ffd8: .word 0x50424652
arm_func_start func_ov36_0217ffdc
func_ov36_0217ffdc: ; 0x0217ffdc
stmdb sp!, {r4, lr}
mov r4, r0
ldr r1, [r4, #0x130]
cmp r1, #0xd
bne _02180018
ldrb r1, [r4, #0x8a9]
add r2, r1, #1
and r1, r2, #0xff
strb r2, [r4, #0x8a9]
cmp r1, #5
blo _02180018
mov r1, #9
bl func_ov36_0217d6bc
mov r0, #0
ldmia sp!, {r4, pc}
_02180018:
add r0, r4, #0x800
mov r1, #0
strh r1, [r0, #0x92]
strb r1, [r4, #0x8a4]
ldr r0, _02180064 ; =0x00000333
mov r1, #0x14
str r0, [r4, #0x858]
ldr r0, [r4, #0x130]
cmp r0, #0xd
add r0, r4, #0x158
bne _0218004c
bl func_ov36_0217c958
b _02180050
_0218004c:
bl func_ov36_0217ca34
_02180050:
ldr r1, _02180068 ; =data_ov36_02186cb8
add r0, r4, #0x158
bl func_ov36_0217c7e8
mov r0, #1
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov36_0217ffdc
_02180064: .word 0x00000333
_02180068: .word data_ov36_02186cb8
arm_func_start func_ov36_0218006c
func_ov36_0218006c: ; 0x0218006c
stmdb sp!, {r3, r4, lr}
sub sp, sp, #4
mov r4, r0
ldr r2, [r4, #0x138]
add r1, sp, #0
rsb r2, r2, #7
mov r3, r2, lsl #0xc
mov r2, #0
str r3, [sp]
bl func_ov36_021855ec
mov r0, r4
bl func_ov36_02185274
ldr r0, [r4, #0x360]
add r0, r4, r0, lsl #2
ldr r0, [r0, #0x358]
cmp r0, #0x14
bne _021800d0
ldr r0, [r4, #0x168]
add r0, r0, #0xc
bl func_0202e58c
cmp r0, #0
beq _021800d0
add r0, r4, #0x158
mov r1, #1
bl func_ov36_0217c958
_021800d0:
ldr r0, [r4, #0x858]
cmp r0, #0
bne _021800fc
ldr r0, [r4, #0x360]
add r0, r4, r0, lsl #2
ldr r0, [r0, #0x358]
cmp r0, #0x14
beq _021800fc
mov r0, r4
mov r1, #7
bl func_ov36_0217d6bc
_021800fc:
mov r0, r4
bl func_ov36_02183204
ldr r0, [r4, #0x130]
cmp r0, #0xd
movne r0, #0
strneb r0, [r4, #0x8a9]
add sp, sp, #4
ldmia sp!, {r3, r4, pc}
arm_func_end func_ov36_0218006c
arm_func_start func_ov36_0218011c
func_ov36_0218011c: ; 0x0218011c
stmdb sp!, {r4, lr}
ldr r2, _02180160 ; =data_027e0d0c
mov r4, r0
ldr r1, [r2]
add r0, r4, #0x158
str r1, [r4, #0x60]
ldr r3, [r2, #4]
mov r1, #0x12
str r3, [r4, #0x64]
ldr r2, [r2, #8]
str r2, [r4, #0x68]
bl func_ov36_0217ca34
ldr r1, _02180164 ; =data_ov36_02186cbc
add r0, r4, #0x158
bl func_ov36_0217c7e8
mov r0, #1
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov36_0218011c
_02180160: .word data_027e0d0c
_02180164: .word data_ov36_02186cbc
arm_func_start func_ov36_02180168
func_ov36_02180168: ; 0x02180168
stmdb sp!, {r4, lr}
mov r4, r0
ldr r0, [r4, #0x138]
cmp r0, #0x19
bne _02180188
ldr r1, _021801c4 ; =data_ov36_02186cc0
add r0, r4, #0x158
bl func_ov36_0217c7e8
_02180188:
add r0, r4, #0x158
bl func_ov36_0217cc84
cmp r0, #0
beq _021801b8
ldr r0, [r4, #0x168]
add r0, r0, #0xc
bl func_0202e58c
cmp r0, #0
beq _021801b8
mov r0, r4
mov r1, #2
bl func_ov36_0217d6bc
_021801b8:
mov r0, r4
bl func_ov36_02183204
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov36_02180168
_021801c4: .word data_ov36_02186cc0
arm_func_start func_ov36_021801c8
func_ov36_021801c8: ; 0x021801c8
stmdb sp!, {r3, r4, r5, lr}
mov r5, r0
add r0, r5, #0x800
ldrsh r1, [r5, #0x78]
ldrsh r0, [r0, #0x9a]
sub r2, r0, r1
mov r2, r2, lsl #0x10
movs r3, r2, asr #0x10
mov r2, #0x4000
rsb r2, r2, #0
bpl _021802d8
sub r2, r2, r3
mov r2, r2, lsl #0x10
movs r4, r2, asr #0x10
ldr r2, _0218048c ; =0x00000dac
rsbmi r4, r4, #0
cmp r4, r2
bge _02180220
add r1, r0, #0x4000
add r0, r5, #0x800
strh r1, [r0, #0x9c]
b _02180254
_02180220:
mov r0, #0x4000
rsb r0, r0, #0
cmp r3, r0
bge _02180244
rsb r0, r2, #0
add r1, r1, r0
add r0, r5, #0x800
strh r1, [r0, #0x9c]
b _02180254
_02180244:
add r0, r1, #0x1ac
add r1, r0, #0xc00
add r0, r5, #0x800
strh r1, [r0, #0x9c]
_02180254:
add r0, r5, #0x800
ldrsh r2, [r0, #0x9c]
ldrsh r0, [r5, #0x78]
mov r1, #0x7000
sub r0, r2, r0
mov r0, r0, lsl #0xc
bl func_01ff98e0
mov r1, r0, asr #0xc
add r0, r5, #0x800
strh r1, [r0, #0x9e]
ldr r0, [r5, #0x130]
cmp r0, #0xf
bne _021802c4
ldr r0, [r5, #0x878]
tst r0, #0x40
beq _021802c4
ldr r1, [r5, #0x878]
mov r0, r5
bic r1, r1, #0x40
str r1, [r5, #0x878]
mov r2, #1
mov r1, #0xf
strb r2, [r5, #0x8a4]
bl func_ov36_0217d6bc
add r1, r5, #0x800
mov r0, #0
strh r0, [r1, #0x92]
ldmia sp!, {r3, r4, r5, pc}
_021802c4:
ldr r0, [r5, #0x878]
mov r4, #2
bic r0, r0, #0x40
str r0, [r5, #0x878]
b _021803b0
_021802d8:
sub r2, r2, r3
mov r2, r2, lsl #0x10
movs r4, r2, asr #0x10
ldr r2, _0218048c ; =0x00000dac
rsbmi r4, r4, #0
cmp r4, r2
bge _02180304
sub r1, r0, #0x4000
add r0, r5, #0x800
strh r1, [r0, #0x9c]
b _02180330
_02180304:
cmp r3, #0x4000
ble _02180320
add r0, r1, #0x1ac
add r1, r0, #0xc00
add r0, r5, #0x800
strh r1, [r0, #0x9c]
b _02180330
_02180320:
rsb r0, r2, #0
add r1, r1, r0
add r0, r5, #0x800
strh r1, [r0, #0x9c]
_02180330:
add r0, r5, #0x800
ldrsh r2, [r0, #0x9c]
ldrsh r0, [r5, #0x78]
mov r1, #0x7000
sub r0, r2, r0
mov r0, r0, lsl #0xc
bl func_01ff98e0
mov r1, r0, asr #0xc
add r0, r5, #0x800
strh r1, [r0, #0x9e]
ldr r0, [r5, #0x130]
cmp r0, #0xf
bne _021803a0
ldr r0, [r5, #0x878]
tst r0, #0x40
bne _021803a0
ldr r1, [r5, #0x878]
mov r0, r5
orr r1, r1, #0x40
str r1, [r5, #0x878]
mov r2, #1
mov r1, #0xf
strb r2, [r5, #0x8a4]
bl func_ov36_0217d6bc
add r1, r5, #0x800
mov r0, #0
strh r0, [r1, #0x92]
ldmia sp!, {r3, r4, r5, pc}
_021803a0:
ldr r0, [r5, #0x878]
mov r4, #3
orr r0, r0, #0x40
str r0, [r5, #0x878]
_021803b0:
ldr r0, _02180490 ; =data_027e0ffc
ldr r1, _02180494 ; =0x000002c9
add r2, r5, #0x48
mov r3, #0
bl func_ov00_020ceacc
ldr r0, _02180498 ; =data_027e0f64
mov r1, #0xb
ldr r0, [r0]
ldr r0, [r0, #4]
bl func_ov00_02088000
ldr r0, _0218049c ; =0x00000333
str r0, [r5, #0x858]
ldr r0, [r5, #0x130]
cmp r0, #0xf
ldr r0, [r5, #0x360]
beq _02180428
add r0, r5, r0, lsl #2
ldr r0, [r0, #0x358]
cmp r4, r0
bne _02180418
add r0, r5, #0x158
bl func_ov36_0217cc18
mov r1, r4
add r0, r5, #0x158
bl func_ov36_0217c958
b _02180458
_02180418:
mov r1, r4
add r0, r5, #0x158
bl func_ov36_0217ca34
b _02180458
_02180428:
add r0, r5, r0, lsl #2
ldr r0, [r0, #0x358]
add r1, r4, #2
cmp r1, r0
add r0, r5, #0x158
bne _02180454
bl func_ov36_0217cc18
add r0, r5, #0x158
add r1, r4, #2
bl func_ov36_0217c958
b _02180458
_02180454:
bl func_ov36_0217ca34
_02180458:
ldr r2, _021804a0 ; =0x00000e66
ldr r1, _021804a4 ; =data_ov36_02186cc4
add r0, r5, #0x158
str r2, [r5, #0x860]
bl func_ov36_0217c7e8
add r0, r5, #0x800
mov r1, #0x3c
strh r1, [r0, #0x86]
ldr r1, [r5, #0x878]
mov r0, #1
bic r1, r1, #0x200000
str r1, [r5, #0x878]
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov36_021801c8
_0218048c: .word 0x00000dac
_02180490: .word data_027e0ffc
_02180494: .word 0x000002c9
_02180498: .word data_027e0f64
_0218049c: .word 0x00000333
_021804a0: .word 0x00000e66
_021804a4: .word data_ov36_02186cc4
arm_func_start func_ov36_021804a8
func_ov36_021804a8: ; 0x021804a8
stmdb sp!, {r4, lr}
mov r4, r0
bl func_ov36_02185274
ldr r1, _0218056c ; =data_ov36_02186cc8
mov r0, r4
mov r2, #1
bl func_ov36_021855ec
ldr r0, [r4, #0x878]
tst r0, #0x200000
bne _02180544
mov r0, r4
bl func_ov36_02183204
add r0, r4, #0x800
ldrsh r1, [r0, #0x9c]
ldrsh r2, [r0, #0x9e]
add r0, r4, #0x78
bl func_0202b154
add r0, r4, #0x158
bl func_ov36_0217cc84
cmp r0, #0
ldmia sp!, {r4, pc}
ldr r0, [r4, #0x168]
add r0, r0, #0xc
bl func_0202e58c
cmp r0, #0
ldmia sp!, {r4, pc}
ldr r0, [r4, #0x878]
tst r0, #0x40
add r0, r4, #0x158
beq _0218052c
mov r1, #7
bl func_ov36_0217c958
b _02180534
_0218052c:
mov r1, #6
bl func_ov36_0217c958
_02180534:
ldr r0, [r4, #0x878]
orr r0, r0, #0x200000
str r0, [r4, #0x878]
ldmia sp!, {r4, pc}
_02180544:
add r0, r4, #0x800
ldrsh r0, [r0, #0x86]
cmp r0, #0
mov r0, r4
bne _02180564
mov r1, #0x10
bl func_ov36_0217d6bc
ldmia sp!, {r4, pc}
_02180564:
bl func_ov36_02183204
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov36_021804a8
_0218056c: .word data_ov36_02186cc8
arm_func_start func_ov36_02180570
func_ov36_02180570: ; 0x02180570
stmdb sp!, {r4, lr}
mov r4, r0
ldr r0, [r4, #0x878]
orr r0, r0, #0x1000
str r0, [r4, #0x878]
tst r0, #0x40
add r0, r4, #0x158
beq _0218059c
mov r1, #9
bl func_ov36_0217ca34
b _021805a4
_0218059c:
mov r1, #8
bl func_ov36_0217ca34
_021805a4:
mov r3, #0
ldr r1, _021805c8 ; =data_ov36_02186ccc
strb r3, [r4, #0x8a4]
add r2, r4, #0x800
add r0, r4, #0x158
strh r3, [r2, #0x92]
bl func_ov36_0217c7e8
mov r0, #1
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov36_02180570
_021805c8: .word data_ov36_02186ccc
arm_func_start func_ov36_021805cc
func_ov36_021805cc: ; 0x021805cc
stmdb sp!, {r3, r4, lr}
sub sp, sp, #4
mov r4, r0
ldr r2, [r4, #0x138]
add r1, sp, #0
rsb r2, r2, #7
mov r3, r2, lsl #0xc
mov r2, #0
str r3, [sp]
bl func_ov36_021855ec
mov r0, r4
bl func_ov36_02185274
ldr r0, [r4, #0x138]
cmp r0, #0x12
bne _02180614
ldr r1, _02180654 ; =data_ov36_02186cd0
add r0, r4, #0x158
bl func_ov36_0217c7e8
_02180614:
add r0, r4, #0x158
bl func_ov36_0217cc84
cmp r0, #0
beq _02180644
ldr r0, [r4, #0x168]
add r0, r0, #0xc
bl func_0202e58c
cmp r0, #0
beq _02180644
mov r0, r4
mov r1, #7
bl func_ov36_0217d6bc
_02180644:
mov r0, r4
bl func_ov36_02183204
add sp, sp, #4
ldmia sp!, {r3, r4, pc}
.align 2, 0
arm_func_end func_ov36_021805cc
_02180654: .word data_ov36_02186cd0
arm_func_start func_ov36_02180658
func_ov36_02180658: ; 0x02180658
mov r0, #1
bx lr
arm_func_end func_ov36_02180658
arm_func_start func_ov36_02180660
func_ov36_02180660: ; 0x02180660
bx lr
arm_func_end func_ov36_02180660
arm_func_start func_ov36_02180664
func_ov36_02180664: ; 0x02180664
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0xd4
mov r7, r0
ldr r0, [r7, #0x878]
mov r2, #0
orr r0, r0, #0x400
str r0, [r7, #0x878]
ldr r1, _02180980 ; =data_027e0d0c
str r2, [r7, #0x12c]
add r0, r7, #0x800
strh r2, [r0, #0x92]
ldr r0, [r1]
str r0, [r7, #0x60]
ldr r0, [r1, #4]
str r0, [r7, #0x64]
ldr r0, [r1, #8]
str r0, [r7, #0x68]
ldr r0, [r7, #0x878]
tst r0, #0x40
add r0, r7, #0x158
beq _021806c4
mov r1, #0xb
bl func_ov36_0217ca34
b _021806cc
_021806c4:
mov r1, #0xa
bl func_ov36_0217ca34
_021806cc:
ldr r1, _02180984 ; =data_ov36_02186cd4
add r0, r7, #0x158
bl func_ov36_0217c7e8
add r0, r7, #0x100
ldrsh r2, [r0, #0x20]
ldr r1, _02180988 ; =data_ov36_02186838
add r0, r7, #0x800
rsb r2, r2, #3
mov r2, r2, lsl #0x1
ldrsh r1, [r1, r2]
mov r4, #0
strh r1, [r0, #0x86]
ldr r1, [r7, #0x878]
tst r1, #2
bne _02180730
ldr r1, [r7, #0x878]
orr r1, r1, #2
str r1, [r7, #0x878]
strh r4, [r0, #0x9c]
ldrsh r0, [r7, #0x78]
cmp r0, #0
rsblt r0, r0, #0
mov r0, r0, lsl #0x10
mov r4, r0, lsr #0x10
b _02180860
_02180730:
ldrsh r1, [r7, #0x78]
ldr sl, _0218098c ; =data_02050f54
mov sb, #5
strh r1, [r0, #0x9c]
add r0, r1, #0x2000
and r0, r0, #0xc000
mov r0, r0, lsl #0x10
ldrsh r1, [r7, #0x78]
mov r6, r0, asr #0x10
mov fp, #0
sub r0, r1, r0, asr #16
mov r0, r0, lsl #0x10
movs r0, r0, asr #0x10
movpl r5, #0x4000
add r0, r7, #0x9c
submi r5, r4, #0x4000
add r8, r0, #0x800
_02180774:
mov r0, r6, lsl #0x10
mov r0, r0, lsr #0x10
ldr r2, [r7, #0x48]
ldr r3, [r7, #0x4c]
ldr r1, [r7, #0x50]
mov r0, r0, asr #0x4
str r3, [sp, #0x1c]
mov r3, r0, lsl #0x1
mov r0, r3, lsl #0x1
ldrsh lr, [sl, r0]
add r0, sl, r3, lsl #1
ldrsh ip, [r0, #2]
mov r0, lr, asr #0x1f
mov r0, r0, lsl #0xe
mov r3, #0x800
orr r0, r0, lr, lsr #18
adds lr, r3, lr, lsl #14
adc r0, r0, #0
mov r3, lr, lsr #0xc
orr r3, r3, r0, lsl #20
add r0, r2, r3
str r0, [sp, #0x18]
mov r0, ip, asr #0x1f
mov r2, r0, lsl #0xe
mov r0, #0x800
adds r3, r0, ip, lsl #14
orr r2, r2, ip, lsr #18
mov r0, #0
adc r0, r2, r0
mov r2, r3, lsr #0xc
orr r2, r2, r0, lsl #20
add r0, r1, r2
str r0, [sp, #0x20]
ldr r0, [r7, #0x48]
ldr r3, _02180990 ; =0x000004cd
str r0, [sp, #0xc]
ldr r0, [r7, #0x4c]
add r1, sp, #0x18
str r0, [sp, #0x10]
ldr r0, [r7, #0x50]
add r2, sp, #0xc
str r0, [sp, #0x14]
ldr r0, [r7, #8]
stmia sp!, {r0, sb, fp}
ldr r0, _02180994 ; =data_027e0e60
ldr r0, [r0]
bl func_01ffe1cc
cmp r0, #0
beq _02180860
ldrsh r1, [r8]
add r0, r6, r5
mov r0, r0, lsl #0x10
add r1, r1, r5
strh r1, [r8]
mov r6, r0, asr #0x10
add r0, r4, #0x4000
mov r0, r0, lsl #0x10
mov r4, r0, lsr #0x10
b _02180774
_02180860:
mov r0, r4, lsl #0xc
mov r1, #0xf000
bl func_01ff98e0
mov r1, r0, asr #0xc
add r0, r7, #0x800
strh r1, [r0, #0x9e]
ldr r0, [r7, #0x878]
tst r0, #8
bne _0218091c
mov r0, r7
bl func_ov00_020c198c
cmp r0, #0
beq _0218091c
add r0, sp, #0x24
bl func_ov00_0209a4f4
ldr r0, _02180998 ; =data_027e0f64
mvn r4, #0
mov r3, #0x32
mov r2, #3
add r1, r7, #0x2e4
ldr r0, [r0]
str r4, [sp, #0x28]
strb r3, [sp, #0x2d]
strb r2, [sp, #0x2f]
ldr r0, [r0, #4]
add r1, r1, #0x400
bl func_ov00_02087d34
ldr r1, _02180998 ; =data_027e0f64
mov r2, #2
strb r2, [sp, #0x2e]
ldr r1, [r1]
ldr r0, _0218099c ; =data_027e0f74
ldr r4, [r1, #4]
ldr r0, [r0]
ldr r1, [r4, #0x26c]
mov r2, #1
str r1, [sp, #0x44]
ldr r3, [r4, #0x270]
add r1, sp, #0x24
str r3, [sp, #0x48]
ldr r3, [r4, #0x274]
str r3, [sp, #0x4c]
strb r2, [sp, #0x3a]
bl func_ov00_02097810
str r0, [r7, #0x66c]
add r0, sp, #0x24
bl func_ov00_0209a508
_0218091c:
add r1, r7, #0x3b4
ldr r0, _021809a0 ; =data_027e0c68
ldr r2, _021809a4 ; =0x0069032e
add r1, r1, #0x400
bl func_02036ce4
mov r0, r7
mov r1, #1
bl func_ov00_020c1908
add r1, r7, #0x3b4
ldr r0, _021809a0 ; =data_027e0c68
add r1, r1, #0x400
bl func_020368f4
ldr r1, [r7, #0x878]
ldr r0, _021809a8 ; =data_027e0ffc
bic r1, r1, #0x200000
str r1, [r7, #0x878]
ldr r1, _021809ac ; =0x000002ca
add r2, r7, #0x48
mov r3, #0
bl func_ov00_020ceacc
mov r0, #0
strb r0, [r7, #0x8a6]
mov r0, #1
add sp, sp, #0xd4
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
arm_func_end func_ov36_02180664
_02180980: .word data_027e0d0c
_02180984: .word data_ov36_02186cd4
_02180988: .word data_ov36_02186838
_0218098c: .word data_02050f54
_02180990: .word 0x000004cd
_02180994: .word data_027e0e60
_02180998: .word data_027e0f64
_0218099c: .word data_027e0f74
_021809a0: .word data_027e0c68
_021809a4: .word 0x0069032e
_021809a8: .word data_027e0ffc
_021809ac: .word 0x000002ca
arm_func_start func_ov36_021809b0
func_ov36_021809b0: ; 0x021809b0
stmdb sp!, {r3, r4, r5, r6, lr}
sub sp, sp, #0x3c
mov r4, r0
add r0, r4, #0x800
ldrsh r1, [r0, #0x9c]
ldrsh r2, [r0, #0x9e]
add r0, r4, #0x78
bl func_0202b154
ldr r0, [r4, #0x878]
bic r0, r0, #0x20
str r0, [r4, #0x878]
tst r0, #0x200000
bne _02180ba8
ldr r0, [r4, #0x138]
add r1, sp, #8
rsb r0, r0, #0x14
mov r2, r0, lsl #0xc
str r2, [sp, #8]
mov r0, r4
mov r2, #0
bl func_ov36_021855ec
ldr r0, [r4, #0x168]
ldr r0, [r0, #0x14]
cmp r0, #0x2000
bne _02180a80
ldr r0, [r4, #0x4c]
ldr r2, [r4, #0x50]
ldr r1, [r4, #0x48]
add r0, r0, #0xcd
add r0, r0, #0x400
str r1, [sp, #0x30]
str r0, [sp, #0x34]
str r2, [sp, #0x38]
mov r1, #0
str r1, [sp]
str r1, [sp, #4]
ldr r0, _02180d00 ; =data_027e0e58
add r2, sp, #0x30
ldr r0, [r0]
mov r1, #0x11
mov r3, #2
bl func_ov00_0207c1b0
ldr r0, _02180d04 ; =data_027e0f64
mov r1, #1
ldr r0, [r0]
ldr r0, [r0, #4]
bl func_ov00_02088000
ldr r0, _02180d08 ; =data_027e0ffc
ldr r1, _02180d0c ; =0x000002c7
add r2, r4, #0x48
mov r3, #0
bl func_ov00_020ceacc
_02180a80:
add r0, r4, #0x158
bl func_ov36_0217cc84
cmp r0, #0
beq _02180bd0
ldr r0, [r4, #0x168]
add r0, r0, #0xc
bl func_0202e58c
cmp r0, #0
beq _02180bd0
ldr r0, [r4, #0x878]
tst r0, #0x40
add r0, r4, #0x158
beq _02180ac0
mov r1, #0xd
bl func_ov36_0217c958
b _02180ac8
_02180ac0:
mov r1, #0xc
bl func_ov36_0217c958
_02180ac8:
ldr r1, [r4, #0x878]
add r0, sp, #0x18
orr r2, r1, #0x200000
add r1, r4, #0x178
str r2, [r4, #0x878]
bl func_ov36_0217c5a0
add r0, sp, #0x18
str r0, [sp]
mov r2, #2
str r2, [sp, #4]
ldr r0, _02180d00 ; =data_027e0e58
add r1, r4, #0x2ac
ldr r0, [r0]
add r1, r1, #0x400
mov r2, #0x7a
mov r3, #0x7b
bl func_ov00_0207c2e8
mov r0, #0
str r0, [sp]
ldr r3, [r4, #8]
ldr r0, _02180d08 ; =data_027e0ffc
ldr r1, _02180d10 ; =0x000002c1
add r2, r4, #0x48
bl func_ov00_020cec60
ldr r0, [r4, #0x878]
orr r0, r0, #0x20
str r0, [r4, #0x878]
tst r0, #8
bne _02180bd0
mov r0, #0x18000
str r0, [r4, #0x6fc]
add r0, r4, #0x48
add r3, sp, #0x24
ldmia r0!, {r0, r1, r2}
stmia r3!, {r0, r1, r2}
ldr r0, [sp, #0x2c]
ldr r1, [sp, #0x24]
add r0, r0, #0x33
add r3, r0, #0x1b00
ldr r0, [sp, #0x28]
str r1, [sp, #0xc]
str r0, [sp, #0x10]
str r3, [sp, #0x2c]
str r3, [sp, #0x14]
mov r1, #0
str r1, [sp]
str r1, [sp, #4]
ldr r0, _02180d04 ; =data_027e0f64
add r2, r4, #0x2e4
ldr r0, [r0]
add r3, r2, #0x400
ldr r0, [r0, #4]
add r1, sp, #0xc
mov r2, #3
bl func_ov00_02089318
b _02180bd0
_02180ba8:
mov r0, #0
str r0, [sp]
ldr r3, [r4, #8]
ldr r0, _02180d08 ; =data_027e0ffc
ldr r1, _02180d10 ; =0x000002c1
add r2, r4, #0x48
bl func_ov00_020cec60
ldr r0, [r4, #0x878]
orr r0, r0, #0x20
str r0, [r4, #0x878]
_02180bd0:
mov r0, #0x10000
ldr r1, [r4, #0x7cc]
rsb r0, r0, #0
and r0, r1, r0
cmp r0, #0x1000000
beq _02180c90
add r0, r4, #0x3b4
add r0, r0, #0x400
ldr r1, [r0]
ldr r1, [r1, #0x10]
blx r1
mov r0, #0x10000
ldr r1, [r4, #0x7cc]
rsb r0, r0, #0
and r0, r1, r0
cmp r0, #0x1000000
addne sp, sp, #0x3c
ldmia sp!, {r3, r4, r5, r6, pc}
ldr r1, [r4, #0x878]
ldr r0, _02180d14 ; =data_027e0fc8
orr r1, r1, #8
bic r1, r1, #1
str r1, [r4, #0x878]
ldr r0, [r0]
bl func_ov00_020bc46c
cmp r0, #1
bne _02180c58
ldr r0, _02180d14 ; =data_027e0fc8
mov r1, #0
ldr r0, [r0]
mov r2, #1
ldr r3, [r0]
ldr r3, [r3, #0x7c]
blx r3
_02180c58:
ldr r0, _02180d18 ; =data_027e0f74
ldr r1, [r4, #0x66c]
ldr r0, [r0]
bl func_ov00_02097b9c
cmp r0, #0
beq _02180c80
ldr r0, _02180d18 ; =data_027e0f74
ldr r1, [r4, #0x66c]
ldr r0, [r0]
bl func_ov00_02097bcc
_02180c80:
mvn r0, #0
add sp, sp, #0x3c
str r0, [r4, #0x66c]
ldmia sp!, {r3, r4, r5, r6, pc}
_02180c90:
add r0, r4, #0x800
ldrsh r0, [r0, #0x86]
cmp r0, #0
bne _02180ce0
add r0, r4, #0x2ac
add r1, r4, #0x2b4
add r6, r0, #0x400
add r5, r1, #0x400
cmp r6, r5
beq _02180ccc
_02180cb8:
mov r0, r6
bl func_ov00_020b7e6c
add r6, r6, #4
cmp r6, r5
bne _02180cb8
_02180ccc:
mov r0, r4
mov r1, #0x15
bl func_ov36_0217d6bc
add sp, sp, #0x3c
ldmia sp!, {r3, r4, r5, r6, pc}
_02180ce0:
ldr r0, [r4, #0x878]
tst r0, #0x20
addeq sp, sp, #0x3c
ldmia sp!, {r3, r4, r5, r6, pc}
mov r0, r4
bl func_ov36_02183504
add sp, sp, #0x3c
ldmia sp!, {r3, r4, r5, r6, pc}
.align 2, 0
arm_func_end func_ov36_021809b0
_02180d00: .word data_027e0e58
_02180d04: .word data_027e0f64
_02180d08: .word data_027e0ffc
_02180d0c: .word 0x000002c7
_02180d10: .word 0x000002c1
_02180d14: .word data_027e0fc8
_02180d18: .word data_027e0f74
arm_func_start func_ov36_02180d1c
func_ov36_02180d1c: ; 0x02180d1c
stmdb sp!, {r3, r4, lr}
sub sp, sp, #0x3c
mov r4, r0
mov r2, #0
str r2, [r4, #0x60]
str r2, [r4, #0x64]
add r0, r4, #0x158
mov r1, #0xc
str r2, [r4, #0x68]
bl func_ov36_0217ca34
mov r2, #0
add r0, sp, #0x14
add r1, r4, #0x178
strb r2, [r4, #0x8a6]
bl func_ov36_0217c5a0
add r0, sp, #0x14
str r0, [sp]
mov r2, #2
str r2, [sp, #4]
ldr r0, _02180e1c ; =data_027e0e58
add r1, r4, #0x2ac
ldr r0, [r0]
add r1, r1, #0x400
mov r2, #0x7a
mov r3, #0x7b
bl func_ov00_0207c2e8
add r0, sp, #8
add r1, r4, #0x178
mov r2, #0
bl func_ov36_0217c630
add r0, sp, #8
add r3, sp, #0x20
ldmia r0!, {r0, r1, r2}
stmia r3!, {r0, r1, r2}
mov r0, r3
add r1, r4, #0x48
add r2, sp, #0x2c
bl func_01ff9bf8
ldr r1, _02180e20 ; =0x00000ccd
mov r0, #2
str r1, [sp, #0x38]
ldr ip, [r4, #0x6b8]
add r1, r4, #0x800
str r0, [ip, #0x12c]
ldr r0, [sp, #0x2c]
mov r2, #0xc8
str r0, [ip, #0x7c]
ldr r3, [sp, #0x30]
mov r0, #1
str r3, [ip, #0x80]
ldr r3, [sp, #0x34]
str r3, [ip, #0x84]
ldr r4, [sp, #0x38]
str r4, [ip, #0x88]
ldr r3, [ip, #0x7c]
str r3, [ip, #0xa8]
ldr r3, [ip, #0x80]
str r3, [ip, #0xac]
ldr r3, [ip, #0x84]
str r3, [ip, #0xb0]
str r4, [ip, #0xb4]
strh r2, [r1, #0x86]
add sp, sp, #0x3c
ldmia sp!, {r3, r4, pc}
.align 2, 0
arm_func_end func_ov36_02180d1c
_02180e1c: .word data_027e0e58
_02180e20: .word 0x00000ccd
arm_func_start func_ov36_02180e24
func_ov36_02180e24: ; 0x02180e24
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #0x48
mov r5, r0
add r0, sp, #0x1c
add r1, r5, #0x178
mov r2, #0
bl func_ov36_0217c630
ldr ip, [sp, #0x1c]
ldr r4, [sp, #0x20]
ldr r3, [sp, #0x24]
add r0, sp, #0x28
add r2, sp, #0x38
add r1, r5, #0x48
str ip, [sp, #0x28]
str r4, [sp, #0x2c]
str r3, [sp, #0x30]
bl func_01ff9bf8
ldr r1, _02181020 ; =0x00000ccd
ldr r0, [sp, #0x28]
str r1, [sp, #0x44]
str r1, [sp, #0x34]
ldr r4, [r5, #0x6b8]
mov r3, #0
str r0, [r4, #0x48]
ldr r1, [sp, #0x2c]
ldr r0, _02181024 ; =data_027e0ffc
str r1, [r4, #0x4c]
ldr r2, [sp, #0x30]
ldr r1, _02181028 ; =0x000002c1
str r2, [r4, #0x50]
ldr ip, [r5, #0x6b8]
ldr r4, [sp, #0x38]
add r2, r5, #0x48
str r4, [ip, #0x7c]
ldr r4, [sp, #0x3c]
str r4, [ip, #0x80]
ldr r4, [sp, #0x40]
str r4, [ip, #0x84]
ldr r4, [sp, #0x44]
str r4, [ip, #0x88]
str r3, [sp]
ldr r3, [r5, #8]
bl func_ov00_020cec60
ldr r0, [r5, #0x360]
add r0, r5, r0, lsl #2
ldr r0, [r0, #0x358]
cmp r0, #0x1b
bne _02180f04
ldr r0, [r5, #0x168]
add r0, r0, #0xc
bl func_0202e58c
cmp r0, #0
beq _02180f04
add r0, r5, #0x158
mov r1, #0xc
bl func_ov36_0217ca34
_02180f04:
add r0, r5, #0x800
ldrsh r0, [r0, #0x86]
cmp r0, #0
addne sp, sp, #0x48
ldmia sp!, {r4, r5, r6, pc}
add r0, r5, #0x2ac
add r1, r5, #0x2b4
add r6, r0, #0x400
add r4, r1, #0x400
cmp r6, r4
beq _02180f44
_02180f30:
mov r0, r6
bl func_ov00_020b7e6c
add r6, r6, #4
cmp r6, r4
bne _02180f30
_02180f44:
ldr r1, [r5, #0x818]
mvn r0, #0
cmp r1, r0
beq _02181000
ldr r0, _0218102c ; =data_027e0fe4
add r1, r5, #0x18
ldr r0, [r0]
add r1, r1, #0x800
bl func_ov00_020c3674
movs r4, r0
beq _02181000
ldrh r1, [r4, #0x78]
ldr r2, _02181030 ; =data_02050f54
mov r0, #0x800
mov r1, r1, asr #0x4
mov ip, r1, lsl #0x1
mov r1, ip, lsl #0x1
ldrsh r3, [r2, r1]
add r1, ip, #1
mov r1, r1, lsl #0x1
ldrsh r2, [r2, r1]
mov r1, r3, asr #0x1f
mov ip, r1, lsl #0xb
mov r1, r2, asr #0x1f
mov r1, r1, lsl #0xb
adds lr, r0, r3, lsl #11
orr ip, ip, r3, lsr #21
adc r3, ip, #0
mov ip, lr, lsr #0xc
orr ip, ip, r3, lsl #20
adds r0, r0, r2, lsl #11
orr r1, r1, r2, lsr #21
mov r3, r0, lsr #0xc
adc r1, r1, #0
orr r3, r3, r1, lsl #20
str ip, [r4, #0x60]
mov r2, #0
str r2, [r4, #0x64]
add r0, sp, #4
add r1, r5, #0x178
str r3, [r4, #0x68]
bl func_ov36_0217c630
add r1, sp, #4
mov r0, r4
bl func_ov14_02120c98
mov r0, #1
strb r0, [r4, #0x1b5]
_02181000:
mvn r2, #0
str r2, [r5, #0x818]
mov r0, r5
mov r1, #0x15
str r2, [r5, #0x81c]
bl func_ov36_0217d6bc
add sp, sp, #0x48
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
arm_func_end func_ov36_02180e24
_02181020: .word 0x00000ccd
_02181024: .word data_027e0ffc
_02181028: .word 0x000002c1
_0218102c: .word data_027e0fe4
_02181030: .word data_02050f54
arm_func_start func_ov36_02181034
func_ov36_02181034: ; 0x02181034
stmdb sp!, {r4, r5, r6, lr}
mov r4, r0
add r0, r4, #0x2ac
add r1, r4, #0x2b4
add r6, r0, #0x400
add r5, r1, #0x400
cmp r6, r5
beq _02181068
_02181054:
mov r0, r6
bl func_ov00_020b7e6c
add r6, r6, #4
cmp r6, r5
bne _02181054
_02181068:
ldr r1, [r4, #0x878]
mov r0, #0
orr r1, r1, #0x8000
bic r1, r1, #0x200000
str r1, [r4, #0x878]
str r0, [r4, #0x12c]
strb r0, [r4, #0x8a4]
mov r0, #1
ldmia sp!, {r4, r5, r6, pc}
arm_func_end func_ov36_02181034
arm_func_start func_ov36_0218108c
func_ov36_0218108c: ; 0x0218108c
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x118
mov r4, r0
ldr r2, [r4, #0x878]
tst r2, #0x200000
beq _02181138
ldr r1, [r4, #0x168]
ldr r1, [r1, #0x14]
cmp r1, #0x4000
bne _021810d0
tst r2, #0x40
beq _021810c8
mov r1, #0
bl func_ov36_02185b7c
b _021810d0
_021810c8:
mov r1, #1
bl func_ov36_02185b7c
_021810d0:
ldr r0, [r4, #0x168]
add r0, r0, #0xc
bl func_0202e58c
cmp r0, #0
beq _02181128
ldr r0, _02181540 ; =data_027e0f74
ldr r1, [r4, #0x66c]
ldr r0, [r0]
bl func_ov00_02097b9c
cmp r0, #0
beq _0218110c
ldr r0, _02181540 ; =data_027e0f74
ldr r1, [r4, #0x66c]
ldr r0, [r0]
bl func_ov00_02097bcc
_0218110c:
mvn r2, #0
mov r0, r4
mov r1, #0x15
str r2, [r4, #0x66c]
bl func_ov36_0217d6bc
add sp, sp, #0x118
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
_02181128:
mov r0, #0
add sp, sp, #0x118
str r0, [r4, #0x138]
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
_02181138:
ldr r1, [r4, #0x138]
cmp r1, #0x1e
addlt sp, sp, #0x118
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
bl func_ov00_020c198c
cmp r0, #0
beq _0218116c
ldr r0, _02181544 ; =data_027e0fb4
ldr r0, [r0]
ldr r0, [r0]
sub r0, r0, #9
cmp r0, #1
bhi _021811a4
_0218116c:
ldr r0, _02181540 ; =data_027e0f74
ldr r1, [r4, #0x66c]
ldr r0, [r0]
bl func_ov00_02097b9c
cmp r0, #0
beq _02181194
ldr r0, _02181540 ; =data_027e0f74
ldr r1, [r4, #0x66c]
ldr r0, [r0]
bl func_ov00_02097bcc
_02181194:
mvn r0, #0
add sp, sp, #0x118
str r0, [r4, #0x66c]
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
_021811a4:
ldr r1, [r4, #0x66c]
mvn r0, #0
cmp r1, r0
bne _02181454
add r0, r4, #0x100
ldrsh r0, [r0, #0x20]
cmp r0, #1
ble _02181454
add r0, sp, #0x68
bl func_ov00_0209a4f4
mvn r5, #0
mov r3, #0x32
mov r2, #2
mov r1, #3
ldr r0, _02181548 ; =data_027e0f64
str r5, [sp, #0x6c]
strb r3, [sp, #0x71]
strb r2, [sp, #0x72]
strb r1, [sp, #0x73]
ldr r1, [r4, #0x48]
ldr r0, [r0]
str r1, [sp, #0x88]
ldr r2, [r4, #0x4c]
add r1, sp, #0
str r2, [sp, #0x8c]
ldr r2, [r4, #0x50]
str r2, [sp, #0x90]
ldr r0, [r0, #4]
bl func_ov00_02087d34
mov sl, #0
ldr r3, _0218154c ; =0x000004cd
ldr r2, _02181550 ; =0x00001e84
ldr r1, _02181554 ; =0x0000038e
mov r5, #0x19000
ldr r0, [sp]
str r5, [sp, #0x18]
str sl, [sp, #0x24]
str r3, [sp, #0x20]
str sl, [sp, #0x1c]
str r2, [sp, #0x10]
str sl, [sp, #0x14]
str r1, [sp, #0xc]
str r0, [r4, #0x6e4]
ldr r0, [sp, #4]
str r0, [r4, #0x6e8]
ldr r0, [sp, #8]
str r0, [r4, #0x6ec]
ldr r0, [sp, #0xc]
str r0, [r4, #0x6f0]
ldr r0, [sp, #0x10]
str r0, [r4, #0x6f4]
ldr r0, [sp, #0x14]
str r0, [r4, #0x6f8]
ldr r0, [sp, #0x18]
str r0, [r4, #0x6fc]
ldr r0, [sp, #0x1c]
str r0, [r4, #0x700]
ldr r0, [sp, #0x20]
str r0, [r4, #0x704]
ldr r0, [sp, #0x24]
str r0, [r4, #0x708]
ldr r0, [sp, #0x28]
str r0, [r4, #0x70c]
ldr r0, [sp, #0x2c]
str r0, [r4, #0x710]
ldr r0, [sp, #0x30]
str r0, [r4, #0x714]
ldr r0, [sp, #0x34]
str r0, [r4, #0x718]
ldr r0, [sp, #0x38]
str r0, [r4, #0x71c]
ldr r0, [sp, #0x3c]
str r0, [r4, #0x720]
ldr r0, [sp, #0x40]
str r0, [r4, #0x724]
ldr r0, [sp, #0x44]
str r0, [r4, #0x728]
ldr r0, [sp, #0x48]
str r0, [r4, #0x72c]
ldr r0, [sp, #0x4c]
str r0, [r4, #0x730]
ldr r0, [sp, #0x50]
str r0, [r4, #0x734]
ldr r0, [sp, #0x54]
str r0, [r4, #0x738]
ldr r0, [sp, #0x58]
str r0, [r4, #0x73c]
ldr r0, [sp, #0x5c]
str r0, [r4, #0x740]
ldrb r0, [sp, #0x60]
strb r0, [r4, #0x744]
ldrb r0, [sp, #0x61]
strb r0, [r4, #0x745]
ldrb r0, [sp, #0x62]
strb r0, [r4, #0x746]
ldrb r0, [sp, #0x63]
strb r0, [r4, #0x747]
ldrb r0, [sp, #0x64]
strb r0, [r4, #0x748]
ldr r2, [sp]
ldr r1, [sp, #4]
ldr r0, [sp, #8]
str r2, [sp, #0x94]
str r1, [sp, #0x98]
str r0, [sp, #0x9c]
ldr r0, [sp, #0x1c]
ldr r8, [sp, #0xc]
ldr r7, [sp, #0x10]
ldr r6, [sp, #0x14]
str r0, [sp, #0xb0]
ldr r0, [sp, #0x34]
ldr r1, [sp, #0x18]
ldr sb, [sp, #0x20]
str r8, [sp, #0xa0]
ldr r8, [sp, #0x24]
str r7, [sp, #0xa4]
ldr r7, [sp, #0x28]
str r6, [sp, #0xa8]
ldr r6, [sp, #0x2c]
str r0, [sp, #0xc8]
ldr r0, [sp, #0x4c]
str r1, [sp, #0xac]
ldr r1, [sp, #0x30]
str sb, [sp, #0xb4]
ldr sb, [sp, #0x38]
str r8, [sp, #0xb8]
ldr r8, [sp, #0x3c]
str r7, [sp, #0xbc]
ldr r7, [sp, #0x40]
str r6, [sp, #0xc0]
ldr r6, [sp, #0x44]
ldrb r5, [sp, #0x60]
ldrb lr, [sp, #0x61]
ldrb ip, [sp, #0x62]
ldrb r3, [sp, #0x63]
ldrb r2, [sp, #0x64]
str r0, [sp, #0xe0]
ldr r0, _02181540 ; =data_027e0f74
str r1, [sp, #0xc4]
ldr r1, [sp, #0x48]
str sb, [sp, #0xcc]
ldr sb, [sp, #0x50]
str r8, [sp, #0xd0]
ldr r8, [sp, #0x54]
str r7, [sp, #0xd4]
ldr r7, [sp, #0x58]
str r6, [sp, #0xd8]
ldr r6, [sp, #0x5c]
mov fp, #1
str r1, [sp, #0xdc]
ldr r0, [r0]
add r1, sp, #0x68
str sb, [sp, #0xe4]
str r8, [sp, #0xe8]
str r7, [sp, #0xec]
str r6, [sp, #0xf0]
strb r5, [sp, #0xf4]
strb lr, [sp, #0xf5]
strb ip, [sp, #0xf6]
strb r3, [sp, #0xf7]
strb r2, [sp, #0xf8]
strb fp, [sp, #0x7c]
strb sl, [sp, #0x7e]
bl func_ov00_02097810
str r0, [r4, #0x66c]
cmp r0, #0
add r0, sp, #0x68
bge _02181450
bl func_ov00_0209a508
add sp, sp, #0x118
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
_02181450:
bl func_ov00_0209a508
_02181454:
ldr r0, [r4, #0x878]
tst r0, #0x40
add r0, r4, #0x158
beq _02181470
mov r1, #0xf
bl func_ov36_0217c958
b _02181478
_02181470:
mov r1, #0xe
bl func_ov36_0217c958
_02181478:
ldr r0, [r4, #0x878]
ldr r1, _02181558 ; =data_ov36_02186cd8
orr r2, r0, #0x200000
add r0, r4, #0x158
str r2, [r4, #0x878]
bl func_ov36_0217c7e8
mov r2, #0
str r2, [r4, #0x138]
add r0, r4, #0x100
ldrsh r1, [r0, #0x20]
sub r1, r1, #1
strh r1, [r0, #0x20]
ldrsh r0, [r0, #0x20]
cmp r0, #2
addeq r0, r4, #0x800
streqh r2, [r0, #0x82]
beq _021814c8
cmp r0, #1
addeq r0, r4, #0x800
streqh r2, [r0, #0x84]
_021814c8:
add r0, r4, #0x100
ldrsh r0, [r0, #0x20]
cmp r0, #0
bgt _021814ec
mov r0, r4
mov r1, #0x16
bl func_ov36_0217d6bc
add sp, sp, #0x118
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
_021814ec:
ldr r0, _0218155c ; =data_027e0ffc
ldr r1, _02181560 ; =0x000002cb
add r2, r4, #0x48
mov r3, #0
bl func_ov00_020ceacc
ldr r0, _0218155c ; =data_027e0ffc
ldr r1, _02181564 ; =0x000001ad
add r2, r4, #0x48
mov r3, #0
bl func_ov00_020ceacc
ldr r0, _02181568 ; =data_027e1038
add r1, r4, #0x48
ldr r0, [r0]
bl func_ov00_020cef10
ldr r0, _02181548 ; =data_027e0f64
mov r1, #2
ldr r0, [r0]
ldr r0, [r0, #4]
bl func_ov00_02088000
add sp, sp, #0x118
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
arm_func_end func_ov36_0218108c
_02181540: .word data_027e0f74
_02181544: .word data_027e0fb4
_02181548: .word data_027e0f64
_0218154c: .word 0x000004cd
_02181550: .word 0x00001e84
_02181554: .word 0x0000038e
_02181558: .word data_ov36_02186cd8
_0218155c: .word data_027e0ffc
_02181560: .word 0x000002cb
_02181564: .word 0x000001ad
_02181568: .word data_027e1038
arm_func_start func_ov36_0218156c
func_ov36_0218156c: ; 0x0218156c
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x118
mov r4, r0
bl func_ov00_020c198c
cmp r0, #0
addeq sp, sp, #0x118
mov r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
str r0, [r4, #0x12c]
strb r0, [r4, #0x8a7]
ldr r0, [r4, #0x878]
bic r1, r0, #0x80
bic r0, r1, #0x2000
str r0, [r4, #0x878]
tst r0, #0x40
add r0, r4, #0x158
beq _021815bc
mov r1, #0x11
bl func_ov36_0217c958
b _021815c4
_021815bc:
mov r1, #0x10
bl func_ov36_0217c958
_021815c4:
ldr r1, _02181784 ; =data_ov36_02186cdc
add r0, r4, #0x158
bl func_ov36_0217c7e8
mov r1, #0
add r0, sp, #0x68
strb r1, [r4, #0x8a4]
bl func_ov00_0209a4f4
mov r1, #3
ldr r0, _02181788 ; =data_027e0f64
mvn r3, #0
mov r2, #0x32
ldr r0, [r0]
str r3, [sp, #0x6c]
strb r2, [sp, #0x71]
strb r1, [sp, #0x72]
strb r1, [sp, #0x73]
ldr r0, [r0, #4]
add r1, sp, #0
bl func_ov00_02087d34
ldr r0, [r4, #0x130]
cmp r0, #0x14
bne _0218164c
ldr r0, _02181788 ; =data_027e0f64
mov r1, #0
ldr r0, [r0]
ldr r2, [r0, #4]
ldr r0, [r2, #0x26c]
str r0, [sp, #0x88]
ldr r0, [r2, #0x270]
str r0, [sp, #0x8c]
ldr r0, [r2, #0x274]
str r0, [sp, #0x90]
strb r1, [sp, #0x7e]
b _0218166c
_0218164c:
ldr r1, [r4, #0x48]
mov r0, #1
str r1, [sp, #0x88]
ldr r1, [r4, #0x4c]
str r1, [sp, #0x8c]
ldr r1, [r4, #0x50]
str r1, [sp, #0x90]
strb r0, [sp, #0x7e]
_0218166c:
ldr r0, [sp, #0x10]
ldr r8, [sp]
ldr r7, [sp, #4]
ldr r6, [sp, #8]
str r0, [sp, #0xa4]
ldr r0, [sp, #0x2c]
ldr r1, [sp, #0xc]
ldr sl, [sp, #0x14]
ldr sb, [sp, #0x18]
str r8, [sp, #0x94]
ldr r8, [sp, #0x1c]
str r7, [sp, #0x98]
ldr r7, [sp, #0x20]
str r6, [sp, #0x9c]
ldr r6, [sp, #0x24]
str r0, [sp, #0xc0]
ldr r0, [sp, #0x48]
str r1, [sp, #0xa0]
ldr r1, [sp, #0x28]
str sl, [sp, #0xa8]
ldr sl, [sp, #0x30]
str sb, [sp, #0xac]
ldr sb, [sp, #0x34]
str r8, [sp, #0xb0]
ldr r8, [sp, #0x38]
str r7, [sp, #0xb4]
ldr r7, [sp, #0x3c]
str r6, [sp, #0xb8]
ldr r6, [sp, #0x40]
ldrb r5, [sp, #0x60]
ldrb lr, [sp, #0x61]
ldrb ip, [sp, #0x62]
ldrb r3, [sp, #0x63]
ldrb r2, [sp, #0x64]
str r0, [sp, #0xdc]
ldr r0, _0218178c ; =data_027e0f74
str r1, [sp, #0xbc]
ldr r1, [sp, #0x44]
str sl, [sp, #0xc4]
ldr sl, [sp, #0x4c]
str sb, [sp, #0xc8]
ldr sb, [sp, #0x50]
str r8, [sp, #0xcc]
ldr r8, [sp, #0x54]
str r7, [sp, #0xd0]
ldr r7, [sp, #0x58]
str r6, [sp, #0xd4]
ldr r6, [sp, #0x5c]
mov fp, #1
str r1, [sp, #0xd8]
ldr r0, [r0]
add r1, sp, #0x68
str sl, [sp, #0xe0]
str sb, [sp, #0xe4]
str r8, [sp, #0xe8]
str r7, [sp, #0xec]
str r6, [sp, #0xf0]
strb r5, [sp, #0xf4]
strb lr, [sp, #0xf5]
strb ip, [sp, #0xf6]
strb r3, [sp, #0xf7]
strb r2, [sp, #0xf8]
strb fp, [sp, #0x7c]
bl func_ov00_02097810
str r0, [r4, #0x66c]
add r0, sp, #0x68
bl func_ov00_0209a508
mov r0, fp
add sp, sp, #0x118
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
arm_func_end func_ov36_0218156c
_02181784: .word data_ov36_02186cdc
_02181788: .word data_027e0f64
_0218178c: .word data_027e0f74
arm_func_start func_ov36_02181790
func_ov36_02181790: ; 0x02181790
stmdb sp!, {r4, lr}
mov r4, r0
ldr r0, [r4, #0x138]
cmp r0, #0x1e
bne _021817b0
ldr r1, _021818a0 ; =data_ov36_02186ce0
add r0, r4, #0x158
bl func_ov36_0217c7e8
_021817b0:
ldr r0, _021818a4 ; =data_027e0f74
ldr r1, [r4, #0x66c]
ldr r0, [r0]
bl func_ov00_02097b9c
cmp r0, #0
beq _02181848
ldr r0, [r4, #0x168]
mov r1, #0x31000
add r0, r0, #0xc
bl func_0202e310
cmp r0, #0
beq _021817f4
ldr r0, _021818a8 ; =data_027e0ffc
ldr r1, _021818ac ; =0x000002c6
add r2, r4, #0x48
mov r3, #0
bl func_ov00_020ceacc
_021817f4:
ldr r0, [r4, #0x168]
add r0, r0, #0xc
bl func_0202e58c
cmp r0, #0
ldmia sp!, {r4, pc}
ldr r0, _021818a4 ; =data_027e0f74
ldr r1, [r4, #0x66c]
ldr r0, [r0]
bl func_ov00_02097b9c
cmp r0, #0
beq _02181830
ldr r0, _021818a4 ; =data_027e0f74
ldr r1, [r4, #0x66c]
ldr r0, [r0]
bl func_ov00_02097bcc
_02181830:
mvn r2, #0
add r0, r4, #0x158
mov r1, #1
str r2, [r4, #0x66c]
bl func_ov36_0217c958
ldmia sp!, {r4, pc}
_02181848:
ldr r0, _021818b0 ; =data_027e0f64
ldr r0, [r0]
ldr r0, [r0, #4]
bl func_ov00_02089a2c
cmp r0, #0
ldmia sp!, {r4, pc}
add r1, r4, #0x800
mov r2, #0x1e
strh r2, [r1, #0x7e]
mov r0, r4
mov r1, #2
bl func_ov36_0217d6bc
ldr r0, [r4, #0x878]
tst r0, #0x8000
ldmia sp!, {r4, pc}
add r0, r4, #0x800
mov r1, #0x3c
strh r1, [r0, #0x8c]
ldr r0, [r4, #0x878]
bic r0, r0, #0x8000
str r0, [r4, #0x878]
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov36_02181790
_021818a0: .word data_ov36_02186ce0
_021818a4: .word data_027e0f74
_021818a8: .word data_027e0ffc
_021818ac: .word 0x000002c6
_021818b0: .word data_027e0f64
arm_func_start func_ov36_021818b4
func_ov36_021818b4: ; 0x021818b4
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x118
ldr r1, _02181b80 ; =data_027e103c
mov r4, r0
ldr r0, [r1]
mov r1, #0
bl func_ov00_020cfde4
add r0, r4, #0x2ac
add r1, r4, #0x2b4
add r6, r0, #0x400
add r5, r1, #0x400
cmp r6, r5
beq _021818fc
_021818e8:
mov r0, r6
bl func_ov00_020b7e6c
add r6, r6, #4
cmp r6, r5
bne _021818e8
_021818fc:
mov r2, #0
ldr r1, _02181b84 ; =data_027e0d0c
str r2, [r4, #0x12c]
add r0, r4, #0x800
strh r2, [r0, #0x92]
ldr r0, [r1]
str r0, [r4, #0x60]
ldr r0, [r1, #4]
str r0, [r4, #0x64]
ldr r0, [r1, #8]
str r0, [r4, #0x68]
ldr r0, [r4, #0x878]
bic r0, r0, #0x200000
tst r0, #0x40
movne r1, #0x1a
str r0, [r4, #0x878]
moveq r1, #0x19
add r0, r4, #0x158
bl func_ov36_0217ca34
ldr r0, _02181b88 ; =data_027e0f74
ldr r1, [r4, #0x66c]
ldr r0, [r0]
bl func_ov00_02097bcc
ldr r0, _02181b8c ; =data_ov00_020eec68
mov r1, #5
bl func_ov00_020d716c
add r0, sp, #0x68
bl func_ov00_0209a4f4
mov r0, #2
mov r1, #3
mvn r3, #0
mov r2, #0x32
strb r2, [sp, #0x71]
str r3, [sp, #0x6c]
strb r0, [sp, #0x74]
strb r0, [sp, #0x75]
strb r1, [sp, #0x72]
strb r1, [sp, #0x73]
ldr r1, [r4, #0x14]
ldr r0, _02181b90 ; =data_027e0f64
str r1, [r4, #0x48]
ldr r1, [r4, #0x18]
mov r2, #1
str r1, [r4, #0x4c]
ldr r3, [r4, #0x1c]
add r1, sp, #0
str r3, [r4, #0x50]
ldrsh r3, [r4, #0x12]
strh r3, [r4, #0x78]
ldr r3, [r4, #0x48]
ldr r0, [r0]
str r3, [sp, #0x88]
ldr r3, [r4, #0x4c]
str r3, [sp, #0x8c]
ldr r3, [r4, #0x50]
str r3, [sp, #0x90]
strb r2, [sp, #0x7e]
ldr r0, [r0, #4]
bl func_ov00_02087d34
mov r0, #0
mov r1, #0x1800
sub r6, r1, #0x2800
ldr r5, _02181b94 ; =0x0000038e
ldr r3, _02181b98 ; =0x00000dac
ldr r2, [sp, #4]
str r1, [sp, #0x20]
str r1, [sp, #0xb4]
mov r1, #0x26000
str r2, [sp, #0x98]
ldr r2, [sp, #0x28]
str r1, [sp, #0x18]
str r1, [sp, #0xac]
ldr r1, [sp]
str r2, [sp, #0xbc]
str r1, [sp, #0x94]
ldr r1, [sp, #8]
ldr r2, [sp, #0x30]
str r1, [sp, #0x9c]
ldr r1, [sp, #0x2c]
str r2, [sp, #0xc4]
str r1, [sp, #0xc0]
ldr r1, [sp, #0x34]
ldr r2, [sp, #0x38]
str r1, [sp, #0xc8]
ldr r1, [sp, #0x3c]
str r0, [sp, #0x24]
str r6, [sp, #0x1c]
str r6, [sp, #0xb0]
str r2, [sp, #0xcc]
str r5, [sp, #0xc]
str r3, [sp, #0x10]
str r0, [sp, #0x14]
str r5, [sp, #0xa0]
str r3, [sp, #0xa4]
str r0, [sp, #0xa8]
str r0, [sp, #0xb8]
str r1, [sp, #0xd0]
ldr r0, [sp, #0x48]
ldr r6, [sp, #0x40]
ldrb r5, [sp, #0x60]
ldrb lr, [sp, #0x61]
ldrb ip, [sp, #0x62]
ldrb r3, [sp, #0x63]
ldrb r2, [sp, #0x64]
str r0, [sp, #0xdc]
ldr r0, _02181b88 ; =data_027e0f74
ldr r1, [sp, #0x44]
ldr sl, [sp, #0x4c]
ldr sb, [sp, #0x50]
ldr r8, [sp, #0x54]
ldr r7, [sp, #0x58]
str r6, [sp, #0xd4]
ldr r6, [sp, #0x5c]
mov fp, #1
str r1, [sp, #0xd8]
ldr r0, [r0]
add r1, sp, #0x68
str sl, [sp, #0xe0]
str sb, [sp, #0xe4]
str r8, [sp, #0xe8]
str r7, [sp, #0xec]
str r6, [sp, #0xf0]
strb r5, [sp, #0xf4]
strb lr, [sp, #0xf5]
strb ip, [sp, #0xf6]
strb r3, [sp, #0xf7]
strb r2, [sp, #0xf8]
strb fp, [sp, #0x7c]
bl func_ov00_02097810
str r0, [r4, #0x66c]
ldr r1, [r4, #0x168]
mov r2, #0
ldr r0, _02181b9c ; =data_027e0fc8
str r2, [r1, #0x10]
ldr r0, [r0]
bl func_ov00_020bc46c
cmp r0, #1
bne _02181b40
ldr r0, _02181b9c ; =data_027e0fc8
mov r1, #0
ldr r0, [r0]
mov r2, fp
ldr r3, [r0]
ldr r3, [r3, #0x7c]
blx r3
_02181b40:
ldr r0, _02181ba0 ; =data_027e0f90
mov r1, #0
ldr r0, [r0]
bl func_ov00_020a7b10
ldr r1, [r4, #0x6b4]
mov r2, #0
strb r2, [r1, #0x11a]
ldr r0, _02181ba4 ; =data_027e0e58
mov r1, #1
ldr r0, [r0]
bl func_ov00_0207c5d4
add r0, sp, #0x68
bl func_ov00_0209a508
mov r0, #1
add sp, sp, #0x118
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
arm_func_end func_ov36_021818b4
_02181b80: .word data_027e103c
_02181b84: .word data_027e0d0c
_02181b88: .word data_027e0f74
_02181b8c: .word data_ov00_020eec68
_02181b90: .word data_027e0f64
_02181b94: .word 0x0000038e
_02181b98: .word 0x00000dac
_02181b9c: .word data_027e0fc8
_02181ba0: .word data_027e0f90
_02181ba4: .word data_027e0e58
arm_func_start func_ov36_02181ba8
func_ov36_02181ba8: ; 0x02181ba8
stmdb sp!, {r3, r4, lr}
sub sp, sp, #0x14
mov r4, r0
ldr r0, [r4, #0x878]
tst r0, #0x200000
bne _02181dc8
ldr r1, [r4, #0x168]
ldr r0, [r1, #0x10]
cmp r0, #0
bne _02181c58
ldr r0, _02181f08 ; =data_027e0f74
ldr r0, [r0]
bl func_ov00_0209809c
cmp r0, #0
addne sp, sp, #0x14
ldmia sp!, {r3, r4, pc}
ldr r0, [r4, #0x168]
mov r1, #0x1000
str r1, [r0, #0x10]
ldr lr, [r4, #0x168]
ldr r0, _02181f0c ; =data_027e0ffc
ldrh r3, [lr, #0xe]
ldr r1, _02181f10 ; =0x000002cb
add r2, r4, #0x48
bic ip, r3, #0xc
mov r3, #0
strh ip, [lr, #0xe]
bl func_ov00_020ceacc
ldr r0, _02181f0c ; =data_027e0ffc
ldr r1, _02181f14 ; =0x000001ad
add r2, r4, #0x48
mov r3, #0
bl func_ov00_020ceacc
ldr r0, _02181f18 ; =data_027e1038
add r1, r4, #0x48
ldr r0, [r0]
bl func_ov00_020cef10
ldr r0, _02181f1c ; =data_027e0f64
mov r1, #2
ldr r0, [r0]
ldr r0, [r0, #4]
bl func_ov00_02088000
add sp, sp, #0x14
ldmia sp!, {r3, r4, pc}
_02181c58:
add r0, r1, #0xc
mov r1, #0x4000
bl func_0202e310
cmp r0, #0
beq _02181c94
ldr r0, [r4, #0x878]
tst r0, #0x40
mov r0, r4
beq _02181c88
mov r1, #0
bl func_ov36_02185b7c
b _02181d40
_02181c88:
mov r1, #1
bl func_ov36_02185b7c
b _02181d40
_02181c94:
ldr r0, [r4, #0x168]
mov r1, #0x37000
add r0, r0, #0xc
bl func_0202e310
cmp r0, #0
beq _02181cbc
ldr r1, _02181f20 ; =data_ov36_02186ce4
add r0, r4, #0x158
bl func_ov36_0217c7e8
b _02181d40
_02181cbc:
ldr r0, [r4, #0x168]
mov r1, #0x3f000
add r0, r0, #0xc
bl func_0202e310
cmp r0, #0
beq _02181d40
ldr r0, [r4, #0x4c]
ldr r2, [r4, #0x50]
ldr r1, [r4, #0x48]
add r0, r0, #0xcd
add r0, r0, #0x400
str r1, [sp, #8]
str r0, [sp, #0xc]
str r2, [sp, #0x10]
mov r1, #0
str r1, [sp]
str r1, [sp, #4]
ldr r0, _02181f24 ; =data_027e0e58
add r2, sp, #8
ldr r0, [r0]
mov r1, #0x11
mov r3, #2
bl func_ov00_0207c1b0
ldr r0, _02181f1c ; =data_027e0f64
mov r1, #1
ldr r0, [r0]
ldr r0, [r0, #4]
bl func_ov00_02088000
ldr r0, _02181f0c ; =data_027e0ffc
ldr r1, _02181f28 ; =0x000002c7
add r2, r4, #0x48
mov r3, #0
bl func_ov00_020ceacc
_02181d40:
add r0, r4, #0x158
bl func_ov36_0217cc84
cmp r0, #0
addeq sp, sp, #0x14
ldmia sp!, {r3, r4, pc}
ldr r0, [r4, #0x168]
add r0, r0, #0xc
bl func_0202e58c
cmp r0, #0
addeq sp, sp, #0x14
ldmia sp!, {r3, r4, pc}
ldr r1, [r4, #0x878]
add r0, r4, #0x6c0
orr r1, r1, #0x200000
str r1, [r4, #0x878]
blx func_0202ab54
mov r0, #1
mov r1, #0x1e
str r0, [r4, #0x6c0]
mov r0, #0
str r0, [r4, #0x6c8]
mov ip, #2
mov r3, r1
add r0, r4, #0x6c0
mov r2, #0xa
str ip, [sp]
blx func_0202ac0c
ldr r0, _02181f2c ; =data_027e071c
add r1, r4, #0x6c0
bl func_0202d77c
mov r0, #0
add sp, sp, #0x14
str r0, [r4, #0x138]
ldmia sp!, {r3, r4, pc}
_02181dc8:
ldr r0, _02181f2c ; =data_027e071c
bl func_0202d7ac
cmp r0, #0
bne _02181e34
ldr r0, _02181f30 ; =data_027e0e60
mov r1, #2
ldr r0, [r0]
mov r2, #1
bl func_ov00_02084be0
cmp r0, #0
addeq sp, sp, #0x14
ldmia sp!, {r3, r4, pc}
ldr r0, _02181f24 ; =data_027e0e58
mov r1, #1
ldr r0, [r0]
mov r2, r1
bl func_ov00_0207c5d4
mov r0, r4
bl func_ov00_020c198c
cmp r0, #0
addeq sp, sp, #0x14
ldmia sp!, {r3, r4, pc}
mov r0, r4
mov r1, #0x17
bl func_ov36_0217d6bc
add sp, sp, #0x14
ldmia sp!, {r3, r4, pc}
_02181e34:
ldr r0, _02181f08 ; =data_027e0f74
ldr r1, _02181f34 ; =0x0000011e
ldr r0, [r0]
bl func_ov00_02097760
cmp r0, #0
ldreq r0, [r4, #0x6c0]
cmpeq r0, #0
addne sp, sp, #0x14
ldmia sp!, {r3, r4, pc}
ldr r0, _02181f38 ; =data_027e0f90
mov r1, #1
ldr r0, [r0]
bl func_ov00_020a7b10
ldr r0, _02181f24 ; =data_027e0e58
mov r1, #1
ldr r0, [r0]
mov r2, #0
bl func_ov00_0207c5d4
ldr r0, _02181f08 ; =data_027e0f74
ldr r1, _02181f34 ; =0x0000011e
ldr r0, [r0]
mov r2, #1
bl func_ov00_0209779c
ldr r0, _02181f08 ; =data_027e0f74
ldr r1, [r4, #0x66c]
ldr r0, [r0]
bl func_ov00_02097bcc
mvn r0, #0
str r0, [r4, #0x66c]
ldr r0, _02181f34 ; =0x0000011e
bl unk_0216e7b0
ldr r0, _02181f30 ; =data_027e0e60
mov r1, #3
ldr r0, [r0]
mov r2, r1
bl func_ov00_02084be0
cmp r0, #0
addne sp, sp, #0x14
ldmia sp!, {r3, r4, pc}
ldr r0, _02181f30 ; =data_027e0e60
mov r1, #3
ldr r0, [r0]
mov r2, r1
mov r3, #1
bl func_ov00_02084b38
ldr r0, _02181f30 ; =data_027e0e60
mov r1, #4
ldr r0, [r0]
mov r2, #3
mov r3, #1
bl func_ov00_02084b38
add sp, sp, #0x14
ldmia sp!, {r3, r4, pc}
.align 2, 0
arm_func_end func_ov36_02181ba8
_02181f08: .word data_027e0f74
_02181f0c: .word data_027e0ffc
_02181f10: .word 0x000002cb
_02181f14: .word 0x000001ad
_02181f18: .word data_027e1038
_02181f1c: .word data_027e0f64
_02181f20: .word data_ov36_02186ce4
_02181f24: .word data_027e0e58
_02181f28: .word 0x000002c7
_02181f2c: .word data_027e071c
_02181f30: .word data_027e0e60
_02181f34: .word 0x0000011e
_02181f38: .word data_027e0f90
arm_func_start func_ov36_02181f3c
func_ov36_02181f3c: ; 0x02181f3c
stmdb sp!, {r4, lr}
mov r4, r0
ldr r0, [r4, #0x878]
mov r1, #3
orr r2, r0, #0x100000
str r2, [r4, #0x878]
ldr r0, _02181fc8 ; =data_027e0e60
mov r2, r1
ldr r0, [r0]
mov r3, #0
bl func_ov00_02084b38
ldr r0, _02181fc8 ; =data_027e0e60
mov r1, #4
ldr r0, [r0]
mov r2, #3
mov r3, #0
bl func_ov00_02084b38
mov r2, #0
ldr r1, _02181fcc ; =data_027e0f64
strb r2, [r4, #0x8aa]
ldr r2, [r1]
add r0, r4, #0x2e4
add r1, r0, #0x400
ldr r0, [r2, #4]
bl func_ov00_02087d34
mov r0, #0
str r0, [r4, #0x700]
str r0, [r4, #0x704]
str r0, [r4, #0x708]
mov r0, #3
strb r0, [r4, #0x8a7]
mov r0, #4
strb r0, [r4, #0x8a8]
mov r0, #1
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov36_02181f3c
_02181fc8: .word data_027e0e60
_02181fcc: .word data_027e0f64
arm_func_start func_ov36_02181fd0
func_ov36_02181fd0: ; 0x02181fd0
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
sub sp, sp, #0x228
mov r4, r0
ldrb r0, [r4, #0x8aa]
cmp r0, #3
addls pc, pc, r0, lsl #2
b _02182940
_02181fec: ; jump table
b _02181ffc ; case 0
b _021822b4 ; case 1
b _021823d4 ; case 2
b _021825f8 ; case 3
_02181ffc:
ldr r0, [r4, #0x138]
cmp r0, #1
bne _02182270
add r0, sp, #0x178
bl func_ov00_0209a4f4
mov r0, #2
mvn r2, #0
mov r1, #0x32
str r2, [sp, #0x17c]
strb r1, [sp, #0x181]
strb r0, [sp, #0x182]
strb r0, [sp, #0x183]
ldr r2, [r4, #0x50]
ldr r1, [r4, #0x4c]
ldr r0, [r4, #0x48]
add r2, r2, #0x2000
str r0, [r4, #0x844]
str r1, [r4, #0x848]
str r2, [r4, #0x84c]
ldr r0, [r4, #0x844]
mov r2, #1
str r0, [sp, #0x198]
ldr r0, [r4, #0x848]
mov r3, #0x3e8
str r0, [sp, #0x19c]
ldr r0, [r4, #0x84c]
add r1, r3, #0xfa0
str r0, [sp, #0x1a0]
strb r2, [sp, #0x18e]
ldr r5, [r4, #0x6e4]
mov r0, #0xf000
str r5, [r4, #0x74c]
ldr r5, [r4, #0x6e8]
str r5, [r4, #0x750]
ldr r5, [r4, #0x6ec]
str r5, [r4, #0x754]
ldr r5, [r4, #0x6f0]
str r5, [r4, #0x758]
ldr r5, [r4, #0x6f4]
str r5, [r4, #0x75c]
ldr r5, [r4, #0x6f8]
str r5, [r4, #0x760]
ldr r5, [r4, #0x6fc]
str r5, [r4, #0x764]
ldr r5, [r4, #0x700]
str r5, [r4, #0x768]
ldr r5, [r4, #0x704]
str r5, [r4, #0x76c]
ldr r5, [r4, #0x708]
str r5, [r4, #0x770]
ldr r5, [r4, #0x70c]
str r5, [r4, #0x774]
ldr r5, [r4, #0x710]
str r5, [r4, #0x778]
ldr r5, [r4, #0x714]
str r5, [r4, #0x77c]
ldr r5, [r4, #0x718]
str r5, [r4, #0x780]
ldr r5, [r4, #0x71c]
str r5, [r4, #0x784]
ldr r5, [r4, #0x720]
str r5, [r4, #0x788]
ldr r5, [r4, #0x724]
str r5, [r4, #0x78c]
ldr r5, [r4, #0x728]
str r5, [r4, #0x790]
ldr r5, [r4, #0x72c]
str r5, [r4, #0x794]
ldr r5, [r4, #0x730]
str r5, [r4, #0x798]
ldr r5, [r4, #0x734]
str r5, [r4, #0x79c]
ldr r5, [r4, #0x738]
str r5, [r4, #0x7a0]
ldr r5, [r4, #0x73c]
str r5, [r4, #0x7a4]
ldr r5, [r4, #0x740]
str r5, [r4, #0x7a8]
ldrb r5, [r4, #0x744]
strb r5, [r4, #0x7ac]
ldrb r5, [r4, #0x745]
strb r5, [r4, #0x7ad]
ldrb r5, [r4, #0x746]
strb r5, [r4, #0x7ae]
ldrb r5, [r4, #0x747]
strb r5, [r4, #0x7af]
ldrb r5, [r4, #0x748]
strb r5, [r4, #0x7b0]
str r3, [r4, #0x758]
str r1, [r4, #0x75c]
str r0, [r4, #0x764]
ldr r0, [r4, #0x74c]
str r0, [sp, #0x1a4]
ldr r0, [r4, #0x750]
str r0, [sp, #0x1a8]
ldr r0, [r4, #0x754]
str r0, [sp, #0x1ac]
ldr r0, [r4, #0x758]
str r0, [sp, #0x1b0]
ldr r1, [r4, #0x75c]
ldr r0, _02182948 ; =data_027e0f74
str r1, [sp, #0x1b4]
ldr r1, [r4, #0x760]
ldr r0, [r0]
str r1, [sp, #0x1b8]
ldr r3, [r4, #0x764]
add r1, sp, #0x178
str r3, [sp, #0x1bc]
ldr r3, [r4, #0x768]
str r3, [sp, #0x1c0]
ldr r3, [r4, #0x76c]
str r3, [sp, #0x1c4]
ldr r3, [r4, #0x770]
str r3, [sp, #0x1c8]
ldr r3, [r4, #0x774]
str r3, [sp, #0x1cc]
ldr r3, [r4, #0x778]
str r3, [sp, #0x1d0]
ldr r3, [r4, #0x77c]
str r3, [sp, #0x1d4]
ldr r3, [r4, #0x780]
str r3, [sp, #0x1d8]
ldr r3, [r4, #0x784]
str r3, [sp, #0x1dc]
ldr r3, [r4, #0x788]
str r3, [sp, #0x1e0]
ldr r3, [r4, #0x78c]
str r3, [sp, #0x1e4]
ldr r3, [r4, #0x790]
str r3, [sp, #0x1e8]
ldr r3, [r4, #0x794]
str r3, [sp, #0x1ec]
ldr r3, [r4, #0x798]
str r3, [sp, #0x1f0]
ldr r3, [r4, #0x79c]
str r3, [sp, #0x1f4]
ldr r3, [r4, #0x7a0]
str r3, [sp, #0x1f8]
ldr r3, [r4, #0x7a4]
str r3, [sp, #0x1fc]
ldr r3, [r4, #0x7a8]
str r3, [sp, #0x200]
ldrb r3, [r4, #0x7ac]
strb r3, [sp, #0x204]
ldrb r3, [r4, #0x7ad]
strb r3, [sp, #0x205]
ldrb r3, [r4, #0x7ae]
strb r3, [sp, #0x206]
ldrb r3, [r4, #0x7af]
strb r3, [sp, #0x207]
ldrb r3, [r4, #0x7b0]
strb r3, [sp, #0x208]
strb r2, [sp, #0x18c]
bl func_ov00_02097810
str r0, [r4, #0x66c]
add r0, sp, #0x178
bl func_ov00_0209a508
_02182270:
ldr r0, _02182948 ; =data_027e0f74
ldr r1, [r4, #0x66c]
ldr r0, [r0]
bl func_ov00_02097b9c
cmp r0, #0
addeq sp, sp, #0x228
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
ldr r0, _0218294c ; =data_027e0f90
mov r1, #0
ldr r0, [r0]
bl func_ov00_020a7b10
mov r0, #1
strb r0, [r4, #0x8aa]
mov r0, #0
add sp, sp, #0x228
str r0, [r4, #0x138]
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
_021822b4:
ldr r0, [r4, #0x138]
ldr r1, [r4, #0x50]
rsb r0, r0, #0x3c
mov r5, r0, lsl #0xc
add r0, r4, #0x44
sub r7, r1, #0x800
ldr r6, [r4, #0x4c]
ldr r3, [r4, #0x48]
add r1, sp, #0x54
mov r2, r5
add r0, r0, #0x800
str r3, [sp, #0x54]
str r6, [sp, #0x58]
str r7, [sp, #0x5c]
bl func_0202b308
cmp r5, #0x1000
movle r0, #0x3e8
ble _02182314
ldr r0, [r4, #0x758]
mov r1, r5
rsb r0, r0, #0x3e8
bl func_01ff98e0
ldr r1, [r4, #0x758]
add r0, r1, r0
_02182314:
str r0, [r4, #0x758]
cmp r5, #0x1000
ldr r0, _02182950 ; =0x00000bb8
ble _0218233c
ldr r2, [r4, #0x75c]
mov r1, r5
sub r0, r0, r2
bl func_01ff98e0
ldr r1, [r4, #0x75c]
add r0, r1, r0
_0218233c:
str r0, [r4, #0x75c]
cmp r5, #0x1000
movle r0, #0xa000
ble _02182364
ldr r0, [r4, #0x764]
mov r1, r5
rsb r0, r0, #0xa000
bl func_01ff98e0
ldr r1, [r4, #0x764]
add r0, r1, r0
_02182364:
str r0, [r4, #0x764]
ldr r0, [r4, #0x844]
mov r1, #0
str r0, [sp, #0x20]
ldr r0, [r4, #0x848]
add r2, r4, #0x34c
str r0, [sp, #0x24]
ldr r3, [r4, #0x84c]
ldr r0, _02182954 ; =data_027e0f64
str r3, [sp, #0x28]
str r1, [sp]
str r1, [sp, #4]
ldr r0, [r0]
add r3, r2, #0x400
ldr r0, [r0, #4]
add r1, sp, #0x20
mov r2, #2
bl func_ov00_02089318
ldr r0, [r4, #0x138]
cmp r0, #0x3c
addlt sp, sp, #0x228
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
mov r0, #2
strb r0, [r4, #0x8aa]
mov r0, #0
add sp, sp, #0x228
str r0, [r4, #0x138]
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
_021823d4:
ldr r0, [r4, #0x138]
cmp r0, #0xf
bne _021823ec
ldr r1, _02182958 ; =data_ov36_02186ce8
add r0, r4, #0x158
bl func_ov36_0217c7e8
_021823ec:
ldr r0, [r4, #0x138]
cmp r0, #0x1e
addlt sp, sp, #0x228
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
ldr r0, _0218295c ; =data_ov00_020eec68
mov r1, #0xca
mov r2, #0
mov r3, #0x7f
bl func_ov00_020d70a4
mov r0, #3
strb r0, [r4, #0x8aa]
mov r0, #0
str r0, [r4, #0x138]
ldr r0, _02182948 ; =data_027e0f74
ldr r1, [r4, #0x66c]
ldr r0, [r0]
bl func_ov00_02097bcc
add r0, sp, #0xc8
bl func_ov00_0209a4f4
mov r1, #2
mvn r3, #0
mov r2, #0x32
add r0, r4, #0x2e4
str r3, [sp, #0xcc]
strb r2, [sp, #0xd1]
strb r1, [sp, #0xd2]
strb r1, [sp, #0xd3]
ldr r3, [r4, #0x50]
ldr r1, [r4, #0x4c]
ldr r2, [r4, #0x48]
add r5, r3, #0x800
add r3, r1, #0x1000
mov r1, #1
str r5, [sp, #0xf0]
add r6, sp, #0x60
str r2, [sp, #0xe8]
str r3, [sp, #0xec]
strb r1, [sp, #0xde]
add r7, r0, #0x400
mov r5, #6
_0218248c:
ldmia r7!, {r0, r1, r2, r3}
stmia r6!, {r0, r1, r2, r3}
subs r5, r5, #1
bne _0218248c
ldmia r7!, {r0, r1}
stmia r6!, {r0, r1}
ldrb r1, [sp, #0xc0]
ldr r5, [sp, #0x60]
mov lr, #0x3e8
strb r1, [sp, #0x154]
ldr r1, [sp, #0x64]
str r5, [sp, #0xf4]
ldr r5, [sp, #0x68]
str r1, [sp, #0xf8]
ldr r1, [sp, #0x7c]
str r5, [sp, #0xfc]
ldr r5, [sp, #0x80]
str r1, [sp, #0x110]
ldr r1, [sp, #0x84]
str r5, [sp, #0x114]
ldr r5, [sp, #0x88]
str r1, [sp, #0x118]
ldr r1, [sp, #0x8c]
str r5, [sp, #0x11c]
mov ip, #0xfa0
mov r3, #0
mov r2, #0x19000
ldr r5, [sp, #0x90]
str r1, [sp, #0x120]
ldr r1, [sp, #0x94]
str r5, [sp, #0x124]
ldr r5, [sp, #0x98]
str r1, [sp, #0x128]
ldr r1, [sp, #0x9c]
str r5, [sp, #0x12c]
ldr r5, [sp, #0xa0]
str r1, [sp, #0x130]
ldr r1, [sp, #0xa4]
str r5, [sp, #0x134]
ldr r5, [sp, #0xa8]
str r1, [sp, #0x138]
ldr r1, [sp, #0xac]
str r5, [sp, #0x13c]
ldr r5, [sp, #0xb0]
str r1, [sp, #0x140]
ldr r1, [sp, #0xb4]
ldrb sb, [sp, #0xc1]
ldrb r8, [sp, #0xc2]
ldrb r7, [sp, #0xc3]
ldrb r6, [sp, #0xc4]
ldr r0, _02182948 ; =data_027e0f74
str r5, [sp, #0x144]
ldr r5, [sp, #0xb8]
str r1, [sp, #0x148]
ldr r1, [sp, #0xbc]
str r5, [sp, #0x14c]
mov r5, #1
str r1, [sp, #0x150]
ldr r0, [r0]
add r1, sp, #0xc8
strb sb, [sp, #0x155]
str lr, [sp, #0x6c]
str ip, [sp, #0x70]
str r3, [sp, #0x74]
str r2, [sp, #0x78]
str lr, [sp, #0x100]
str ip, [sp, #0x104]
str r3, [sp, #0x108]
str r2, [sp, #0x10c]
strb r8, [sp, #0x156]
strb r7, [sp, #0x157]
strb r6, [sp, #0x158]
strb r5, [sp, #0xdc]
bl func_ov00_02097810
str r0, [r4, #0x66c]
ldr r0, [r4, #0x878]
tst r0, #0x40
add r0, r4, #0x158
beq _021825d4
mov r1, #0x11
bl func_ov36_0217ca34
b _021825dc
_021825d4:
mov r1, #0x10
bl func_ov36_0217ca34
_021825dc:
ldr r1, [r4, #0x878]
add r0, sp, #0xc8
bic r1, r1, #0x200000
str r1, [r4, #0x878]
bl func_ov00_0209a508
add sp, sp, #0x228
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
_021825f8:
ldr r0, [r4, #0x878]
tst r0, #0x200000
ldr r0, [r4, #0x168]
bne _02182654
add r0, r0, #0xc
bl func_0202e58c
cmp r0, #0
addeq sp, sp, #0x228
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
add r0, r4, #0x158
mov r1, #0x1f
bl func_ov36_0217c958
ldr r0, [r4, #0x580]
mov r1, #0x1000
str r1, [r0, #0x10]
ldr r1, [r4, #0x878]
add r0, r4, #0x800
orr r1, r1, #0x200000
str r1, [r4, #0x878]
mov r1, #5
strh r1, [r0, #0x7c]
add sp, sp, #0x228
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
_02182654:
mov r1, #0x6f000
add r0, r0, #0xc
bl func_0202e310
cmp r0, #0
beq _0218278c
ldr r0, [r4, #0x878]
ldr r2, _02182960 ; =0x00000333
orr r0, r0, #0x400000
str r0, [r4, #0x878]
sub r0, r2, #0x800
rsb r1, r2, #0x2000
str r0, [sp, #0x50]
str r2, [sp, #0x48]
str r1, [sp, #0x4c]
ldrsh r1, [r4, #0x78]
add r0, sp, #0x48
bl func_ov00_020a61ac
ldr r1, [r4, #0x48]
add r0, sp, #0x48
str r1, [sp, #0x14]
ldr r2, [r4, #0x4c]
add r1, sp, #0x14
str r2, [sp, #0x18]
ldr r3, [r4, #0x50]
mov r2, r0
str r3, [sp, #0x1c]
bl func_01ff9bc4
mov r1, #0
str r1, [sp]
str r1, [sp, #4]
ldr r0, _02182964 ; =data_027e0e58
ldr r1, _02182968 ; =0x00001001
ldr r0, [r0]
add r2, sp, #0x48
mov r3, #2
bl func_ov00_0207c1b0
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
ldr r0, _02182964 ; =data_027e0e58
ldr r1, _0218296c ; =0x00001002
ldr r0, [r0]
add r2, sp, #0x48
mov r3, #2
bl func_ov00_0207c1b0
ldr r0, _02182970 ; =data_027e0ffc
ldr r1, _02182974 ; =0x000002d1
add r2, sp, #0x48
mov r3, #0
bl func_ov00_020ceacc
mov r0, #0
str r0, [sp, #0x48]
ldr r0, _02182978 ; =0xfffffb33
ldr r1, _0218297c ; =0x0000199a
str r0, [sp, #0x50]
str r1, [sp, #0x4c]
ldrsh r1, [r4, #0x78]
add r0, sp, #0x48
bl func_ov00_020a61ac
ldr r1, [r4, #0x48]
add r0, sp, #0x48
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, _02182964 ; =data_027e0e58
ldr r1, _02182980 ; =0x00001003
ldr r0, [r0]
add r2, sp, #0x48
mov r3, #2
bl func_ov00_0207c1b0
_0218278c:
ldr r0, [r4, #0x168]
mov r1, #0x70000
add r0, r0, #0xc
bl func_0202e310
cmp r0, #0
beq _021827bc
ldr r0, _02182954 ; =data_027e0f64
mov r1, #1
ldr r0, [r0]
ldr r0, [r0, #4]
bl func_ov00_02088000
b _021827e8
_021827bc:
ldr r0, [r4, #0x168]
mov r1, #0x92000
add r0, r0, #0xc
bl func_0202e310
cmp r0, #0
beq _021827e8
ldr r0, _02182970 ; =data_027e0ffc
ldr r1, _02182984 ; =0x000002c2
add r2, r4, #0x48
mov r3, #0
bl func_ov00_020ceacc
_021827e8:
ldr r0, [r4, #0x168]
ldr r0, [r0, #0x14]
cmp r0, #0x70000
blt _02182808
cmp r0, #0x93000
ble _02182834
cmp r0, #0xe3000
bge _02182834
_02182808:
add r0, r4, #0x800
ldrsh r1, [r0, #0x7c]
cmp r1, #0
bne _02182834
mov r2, #5
ldr r1, _02182954 ; =data_027e0f64
strh r2, [r0, #0x7c]
ldr r0, [r1]
mov r1, #0xd
ldr r0, [r0, #4]
bl func_ov00_02088000
_02182834:
ldr r0, [r4, #0x168]
mov r1, #0xe3000
add r0, r0, #0xc
bl func_0202e310
cmp r0, #0
beq _0218287c
ldr r0, _02182954 ; =data_027e0f64
mov r1, #1
ldr r0, [r0]
ldr r0, [r0, #4]
bl func_ov00_02088000
ldr r0, _02182970 ; =data_027e0ffc
ldr r1, _02182988 ; =0x000002cd
add r2, r4, #0x48
mov r3, #0
bl func_ov00_020ceacc
mov r0, r4
bl func_ov36_02185eb8
_0218287c:
ldr r0, [r4, #0x168]
add r0, r0, #0xc
bl func_0202e58c
cmp r0, #0
addeq sp, sp, #0x228
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
ldr r0, _02182948 ; =data_027e0f74
ldr r1, [r4, #0x66c]
ldr r0, [r0]
bl func_ov00_02097bcc
mvn r1, #0
str r1, [r4, #0x66c]
ldr r0, _0218294c ; =data_027e0f90
mov r1, #1
ldr r0, [r0]
bl func_ov00_020a7b10
mov r3, #0
mov r0, #0xff
add r2, sp, #0x2c
str r3, [sp, #0x2c]
strb r0, [sp, #0x30]
strh r3, [sp, #0x40]
strh r3, [sp, #0x42]
mov r1, r3
_021828dc:
add r0, r2, r3, lsl #1
add r3, r3, #1
strh r1, [r0, #0x18]
cmp r3, #2
blo _021828dc
ldr r0, _0218298c ; =data_027e0e60
add r2, sp, #0x2c
ldr r0, [r0]
mov r1, #0x5b
bl func_ov00_02083918
cmp r0, #0
beq _02182934
ldr r0, _0218298c ; =data_027e0e60
ldrb r1, [sp, #0x30]
ldr r0, [r0]
mov r2, #0
bl func_ov00_02083948
ldr r0, _02182954 ; =data_027e0f64
mov r1, #0
ldr r0, [r0]
ldr r0, [r0, #4]
bl func_ov00_0208726c
_02182934:
mov r0, r4
mov r1, #2
bl func_ov36_0217d6bc
_02182940:
add sp, sp, #0x228
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
.align 2, 0
arm_func_end func_ov36_02181fd0
_02182948: .word data_027e0f74
_0218294c: .word data_027e0f90
_02182950: .word 0x00000bb8
_02182954: .word data_027e0f64
_02182958: .word data_ov36_02186ce8
_0218295c: .word data_ov00_020eec68
_02182960: .word 0x00000333
_02182964: .word data_027e0e58
_02182968: .word 0x00001001
_0218296c: .word 0x00001002
_02182970: .word data_027e0ffc
_02182974: .word 0x000002d1
_02182978: .word 0xfffffb33
_0218297c: .word 0x0000199a
_02182980: .word 0x00001003
_02182984: .word 0x000002c2
_02182988: .word 0x000002cd
_0218298c: .word data_027e0e60
arm_func_start func_ov36_02182990
func_ov36_02182990: ; 0x02182990
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, lr}
sub sp, sp, #0x124
ldr r1, _02182c64 ; =data_027e0e60
mov r4, r0
ldr r0, [r1]
mov r1, #0
bl func_ov00_02083958
ldr r0, _02182c68 ; =data_027e0f64
mov r1, #0
ldr r0, [r0]
ldr r0, [r0, #4]
bl func_ov00_0208726c
add r0, r4, #0x2ac
add r1, r4, #0x2b4
add r6, r0, #0x400
add r5, r1, #0x400
cmp r6, r5
beq _021829ec
_021829d8:
mov r0, r6
bl func_ov00_020b7e6c
add r6, r6, #4
cmp r6, r5
bne _021829d8
_021829ec:
ldr r0, _02182c6c ; =data_027e0ffc
add r2, r4, #0x48
mov r1, #0x2cc
mov r3, #0
bl func_ov00_020ceacc
ldr r0, _02182c70 ; =data_027e0fc8
ldr r0, [r0]
ldr r1, [r0]
ldr r1, [r1, #0x84]
blx r1
ldr r0, _02182c74 ; =data_ov00_020eec68
mov r1, #5
bl func_ov00_020d716c
ldr r2, _02182c78 ; =data_027e0d0c
add r0, r4, #0x158
ldr r3, [r2]
mov r1, #0x1c
str r3, [r4, #0x60]
ldr r3, [r2, #4]
str r3, [r4, #0x64]
ldr r2, [r2, #8]
str r2, [r4, #0x68]
ldr r2, [r4, #0x878]
bic r2, r2, #0x200000
str r2, [r4, #0x878]
bl func_ov36_0217ca34
ldr r0, _02182c7c ; =data_027e0f74
ldr r1, [r4, #0x66c]
ldr r0, [r0]
bl func_ov00_02097b9c
cmp r0, #0
beq _02182a7c
ldr r0, _02182c7c ; =data_027e0f74
ldr r1, [r4, #0x66c]
ldr r0, [r0]
bl func_ov00_02097bcc
_02182a7c:
mvn r1, #0
add r0, sp, #0x74
str r1, [r4, #0x66c]
bl func_ov00_0209a4f4
mov r1, #3
mov r0, #2
mvn r3, #0
mov r2, #0x32
str r3, [sp, #0x78]
strb r2, [sp, #0x7d]
strb r1, [sp, #0x7e]
strb r1, [sp, #0x7f]
strb r0, [sp, #0x80]
strb r0, [sp, #0x81]
ldr r0, [r4, #0x14]
add r6, sp, #0
str r0, [r4, #0x48]
ldr r1, [r4, #0x18]
add r0, r4, #0x48
str r1, [r4, #0x4c]
ldr r1, [r4, #0x1c]
ldr r3, _02182c68 ; =data_027e0f64
str r1, [r4, #0x50]
ldrsh r1, [r4, #0x12]
mov r5, #1
strh r1, [r4, #0x78]
ldmia r0!, {r0, r1, r2}
stmia r6!, {r0, r1, r2}
ldr r6, [sp]
ldr r2, [sp, #4]
ldr r1, [sp, #8]
ldr r0, [r3]
str r1, [sp, #0x9c]
str r6, [sp, #0x94]
str r2, [sp, #0x98]
strb r5, [sp, #0x8a]
ldr r0, [r0, #4]
add r1, sp, #0xc
bl func_ov00_02087d34
mov r5, #0
mov r3, #0x1800
ldr r1, _02182c80 ; =0x0000038e
ldr r0, _02182c84 ; =0x00000dac
sub r2, r3, #0x2800
mov r6, #0x26000
ldr r7, [sp, #0xc]
ldr r8, [sp, #0x10]
str r7, [sp, #0xa0]
ldr r7, [sp, #0x14]
str r8, [sp, #0xa4]
ldr r8, [sp, #0x34]
str r7, [sp, #0xa8]
ldr r7, [sp, #0x38]
str r8, [sp, #0xc8]
ldr r8, [sp, #0x3c]
str r7, [sp, #0xcc]
ldr r7, [sp, #0x40]
str r8, [sp, #0xd0]
ldr r8, [sp, #0x44]
str r7, [sp, #0xd4]
ldr r7, [sp, #0x48]
str r8, [sp, #0xd8]
ldr r8, [sp, #0x4c]
str r7, [sp, #0xdc]
ldr r7, [sp, #0x50]
str r8, [sp, #0xe0]
ldr r8, [sp, #0x54]
str r7, [sp, #0xe4]
ldr r7, [sp, #0x58]
str r8, [sp, #0xe8]
str r6, [sp, #0x24]
str r5, [sp, #0x30]
str r3, [sp, #0x2c]
str r2, [sp, #0x28]
str r1, [sp, #0x18]
str r0, [sp, #0x1c]
str r5, [sp, #0x20]
str r1, [sp, #0xac]
str r0, [sp, #0xb0]
str r5, [sp, #0xb4]
str r6, [sp, #0xb8]
str r2, [sp, #0xbc]
str r3, [sp, #0xc0]
str r5, [sp, #0xc4]
str r7, [sp, #0xec]
ldrb r6, [sp, #0x6c]
ldrb r5, [sp, #0x6d]
ldrb lr, [sp, #0x6e]
ldrb ip, [sp, #0x6f]
ldrb r3, [sp, #0x70]
ldr r0, _02182c7c ; =data_027e0f74
ldr sl, [sp, #0x5c]
ldr sb, [sp, #0x60]
ldr r8, [sp, #0x64]
ldr r7, [sp, #0x68]
mov r2, #1
ldr r0, [r0]
add r1, sp, #0x74
str sl, [sp, #0xf0]
str sb, [sp, #0xf4]
str r8, [sp, #0xf8]
str r7, [sp, #0xfc]
strb r6, [sp, #0x100]
strb r5, [sp, #0x101]
strb lr, [sp, #0x102]
strb ip, [sp, #0x103]
strb r3, [sp, #0x104]
strb r2, [sp, #0x88]
bl func_ov00_02097810
str r0, [r4, #0x66c]
mov r0, r4
bl func_ov00_020c1b18
mvn r1, #0
str r1, [r4, #0x88]
add r0, sp, #0x74
add r1, r4, #0x100
mov r2, #0
strh r2, [r1, #0x20]
bl func_ov00_0209a508
mov r0, #1
add sp, sp, #0x124
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, pc}
.align 2, 0
arm_func_end func_ov36_02182990
_02182c64: .word data_027e0e60
_02182c68: .word data_027e0f64
_02182c6c: .word data_027e0ffc
_02182c70: .word data_027e0fc8
_02182c74: .word data_ov00_020eec68
_02182c78: .word data_027e0d0c
_02182c7c: .word data_027e0f74
_02182c80: .word 0x0000038e
_02182c84: .word 0x00000dac
arm_func_start func_ov36_02182c88
func_ov36_02182c88: ; 0x02182c88
stmdb sp!, {r3, r4, lr}
sub sp, sp, #0x14
ldr r1, _02182df4 ; =data_027e0f90
mov r4, r0
ldr r0, [r1]
mov r1, #0
bl func_ov00_020a7b10
ldr r0, [r4, #0x168]
ldr r0, [r0, #0x14]
cmp r0, #0xa8000
bne _02182d20
ldr r0, [r4, #0x4c]
ldr r2, [r4, #0x50]
ldr r1, [r4, #0x48]
add r0, r0, #0xcd
add r0, r0, #0x400
str r1, [sp, #8]
str r0, [sp, #0xc]
str r2, [sp, #0x10]
mov r1, #0
str r1, [sp]
str r1, [sp, #4]
ldr r0, _02182df8 ; =data_027e0e58
add r2, sp, #8
ldr r0, [r0]
mov r1, #0x11
mov r3, #2
bl func_ov00_0207c1b0
ldr r0, _02182dfc ; =data_027e0f64
mov r1, #1
ldr r0, [r0]
ldr r0, [r0, #4]
bl func_ov00_02088000
ldr r0, _02182e00 ; =data_027e0ffc
ldr r1, _02182e04 ; =0x000002c7
add r2, r4, #0x48
mov r3, #0
bl func_ov00_020ceacc
_02182d20:
ldr r0, [r4, #0x168]
add r0, r0, #0xc
bl func_0202e58c
cmp r0, #0
beq _02182de4
ldr r0, [r4, #0x580]
mov r1, #0
str r1, [r0, #0x10]
str r1, [sp]
ldr r3, [r4, #8]
ldr r0, _02182e00 ; =data_027e0ffc
add r2, r4, #0x48
mov r1, #0x30c
bl func_ov00_020cec60
ldr r0, [r4, #0x138]
cmp r0, #0x3c
bgt _02182d94
mov r0, r0, lsl #0xc
rsb r0, r0, #0x3c000
mov r1, #0x3c000
bl func_01ff98e0
rsb r2, r0, #0x1000
mov r0, r4
str r2, [r4, #0x8e4]
add r1, r4, #0x1000
str r2, [r1, #0x9ec]
bl func_ov36_02185b18
add sp, sp, #0x14
ldmia sp!, {r3, r4, pc}
_02182d94:
cmp r0, #0x78
bgt _02182dbc
ldr r2, _02182e08 ; =0x0000019a
mov r0, r4
str r2, [r4, #0x8ec]
add r1, r4, #0x1000
str r2, [r1, #0x9f4]
bl func_ov36_02185b18
add sp, sp, #0x14
ldmia sp!, {r3, r4, pc}
_02182dbc:
ldr r0, _02182e0c ; =data_027e0fc8
ldr r0, [r0]
ldr r1, [r0]
ldr r1, [r1, #0x84]
blx r1
mov r0, r4
mov r1, #0x19
bl func_ov36_0217d6bc
add sp, sp, #0x14
ldmia sp!, {r3, r4, pc}
_02182de4:
mov r0, #0
str r0, [r4, #0x138]
add sp, sp, #0x14
ldmia sp!, {r3, r4, pc}
.align 2, 0
arm_func_end func_ov36_02182c88
_02182df4: .word data_027e0f90
_02182df8: .word data_027e0e58
_02182dfc: .word data_027e0f64
_02182e00: .word data_027e0ffc
_02182e04: .word 0x000002c7
_02182e08: .word 0x0000019a
_02182e0c: .word data_027e0fc8
arm_func_start func_ov36_02182e10
func_ov36_02182e10: ; 0x02182e10
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #0x14
mov r4, r0
ldr r0, [r4, #0x4c]
ldr r2, [r4, #0x50]
ldr r1, [r4, #0x48]
add r0, r0, #0xcd
add r0, r0, #0xc00
str r1, [sp, #8]
str r0, [sp, #0xc]
str r2, [sp, #0x10]
mov r1, #0
str r1, [sp]
str r1, [sp, #4]
ldr r0, _02182f64 ; =data_027e0e58
ldr r1, _02182f68 ; =0x0000100f
ldr r0, [r0]
add r2, sp, #8
mov r3, #2
bl func_ov00_0207c1b0
mov r1, #0
str r1, [sp]
str r1, [sp, #4]
ldr r0, _02182f64 ; =data_027e0e58
ldr r1, _02182f6c ; =0x00001010
ldr r0, [r0]
add r2, sp, #8
mov r3, #2
bl func_ov00_0207c1b0
mov r1, #0
str r1, [sp]
str r1, [sp, #4]
ldr r0, _02182f64 ; =data_027e0e58
ldr r1, _02182f70 ; =0x0000100e
ldr r0, [r0]
add r2, sp, #8
mov r3, #2
bl func_ov00_0207c1b0
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
ldr r0, _02182f64 ; =data_027e0e58
ldr r1, _02182f74 ; =0x00001011
ldr r0, [r0]
add r2, sp, #8
mov r3, #2
bl func_ov00_0207c1b0
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
ldr r0, _02182f64 ; =data_027e0e58
ldr r1, _02182f78 ; =0x00001012
ldr r0, [r0]
add r2, sp, #8
mov r3, #2
bl func_ov00_0207c1b0
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
ldr r0, _02182f64 ; =data_027e0e58
ldr r1, _02182f7c ; =0x00001013
ldr r0, [r0]
add r2, sp, #8
mov r3, #2
bl func_ov00_0207c1b0
ldr r5, _02182f64 ; =data_027e0e58
mov r6, #0
add r7, r4, #0x670
_02182f20:
ldr r0, [r5]
mov r1, r7
bl func_ov00_0207c444
add r6, r6, #1
cmp r6, #3
add r7, r7, #0xc
blt _02182f20
ldr r0, _02182f80 ; =data_027e0ffc
ldr r1, _02182f84 ; =0x0000030d
add r2, r4, #0x48
mov r3, #0
bl func_ov00_020ceacc
mov r0, #0
strb r0, [r4, #0x11a]
mov r0, #1
add sp, sp, #0x14
ldmia sp!, {r4, r5, r6, r7, pc}
.align 2, 0
arm_func_end func_ov36_02182e10
_02182f64: .word data_027e0e58
_02182f68: .word 0x0000100f
_02182f6c: .word 0x00001010
_02182f70: .word 0x0000100e
_02182f74: .word 0x00001011
_02182f78: .word 0x00001012
_02182f7c: .word 0x00001013
_02182f80: .word data_027e0ffc
_02182f84: .word 0x0000030d
arm_func_start func_ov36_02182f88
func_ov36_02182f88: ; 0x02182f88
stmdb sp!, {r4, lr}
sub sp, sp, #0x18
ldr r2, _02183064 ; =0x0000099a
mov r3, #0
sub r1, r2, #0x1000
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, _02183068 ; =data_027e0e58
add r1, r4, #0x294
ldr r0, [r0]
add r2, sp, #0xc
add r1, r1, #0x400
bl func_ov00_0207c474
ldr r0, [r4, #0x138]
cmp r0, #0x3c
addlt sp, sp, #0x18
ldmia sp!, {r4, pc}
ldr r0, _0218306c ; =data_027e0f74
ldr r1, [r4, #0x66c]
ldr r0, [r0]
bl func_ov00_02097b9c
cmp r0, #0
beq _02183030
ldr r0, _0218306c ; =data_027e0f74
ldr r1, [r4, #0x66c]
ldr r0, [r0]
bl func_ov00_02097bcc
_02183030:
mvn r1, #0
ldr r0, _0218306c ; =data_027e0f74
str r1, [r4, #0x66c]
ldr r0, [r0]
mov r1, #0xe
bl func_ov00_02097968
ldr r1, [r4, #0x6b8]
mov r2, #0
mov r0, r4
strb r2, [r1, #0x118]
bl func_ov00_020c3180
add sp, sp, #0x18
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov36_02182f88
_02183064: .word 0x0000099a
_02183068: .word data_027e0e58
_0218306c: .word data_027e0f74
arm_func_start func_ov36_02183070
func_ov36_02183070: ; 0x02183070
stmdb sp!, {r3, r4, r5, r6, r7, lr}
mov r3, r2, lsl #0x9
cmp r3, #0
movle r6, #0
ble _021830d0
ldr ip, _021830e4 ; =data_027e0764
ldr lr, [ip]
ldmib ip, {r4, r5}
umull r7, r6, r5, lr
mla r6, r5, r4, r6
ldr r4, [ip, #0xc]
ldr r5, [ip, #0x10]
mla r6, r4, lr, r6
ldr r4, [ip, #0x14]
adds r5, r5, r7
adc r6, r4, r6
stmia ip!, {r5, r6}
cmp r3, #0
beq _021830d0
mov r4, #0
umull lr, ip, r6, r3
mla ip, r6, r4, ip
mla ip, r4, r3, ip
mov r6, ip
_021830d0:
rsb r2, r2, r6, asr #8
add r1, r1, r2
add r0, r0, #0x800
strh r1, [r0, #0x8e]
ldmia sp!, {r3, r4, r5, r6, r7, pc}
.align 2, 0
arm_func_end func_ov36_02183070
_021830e4: .word data_027e0764
arm_func_start func_ov36_021830e8
func_ov36_021830e8: ; 0x021830e8
stmdb sp!, {r3, r4, r5, lr}
mov r5, r0
ldr r0, [r5, #0x878]
tst r0, #0x100000
ldr r0, _021831fc ; =data_027e0fc8
moveq r4, #1
ldr r0, [r0]
movne r4, #0
bl func_ov00_020bc46c
cmp r4, r0
bne _021831f4
mov r0, r5
bl func_ov00_020c28ec
mov r4, r0
cmp r4, #0x14000
bge _021831f4
ldr r0, [r5, #0x878]
tst r0, #0x100000
bne _0218314c
cmp r4, #0xa000
ble _0218314c
add r0, r5, #0x800
ldrsh r1, [r0, #0xa0]
add r1, r1, #1
strh r1, [r0, #0xa0]
_0218314c:
mov r0, r5
bl func_ov00_020c2974
ldrsh r2, [r5, #0x78]
ldr r1, _02183200 ; =0x00001555
sub r0, r0, r2
mov r0, r0, lsl #0x10
cmp r1, r0, asr #16
mov r2, r0, asr #0x10
addle r0, r5, #0x800
strleh r1, [r0, #0x90]
ble _02183198
rsb r0, r1, #0
cmp r2, r0
addgt r0, r5, #0x800
strgth r2, [r0, #0x90]
bgt _02183198
rsb r1, r1, #0
add r0, r5, #0x800
strh r1, [r0, #0x90]
_02183198:
cmp r2, #0
rsblt r2, r2, #0
cmp r2, #0x1f40
bge _021831dc
add r0, r5, #0x800
ldrsh r1, [r0, #0xa0]
mov r0, #3
cmp r1, #0x5a
movge r0, #2
bge _021831c8
cmp r4, #0xa000
movlt r0, #1
_021831c8:
add r1, r5, #0x800
ldrsh r1, [r1, #0x7e]
cmp r1, #0
movne r0, #3
ldmia sp!, {r3, r4, r5, pc}
_021831dc:
cmp r4, #0xa000
movlt r0, #3
ldmia sp!, {r3, r4, r5, pc}
add r0, r5, #0x800
mov r1, #0
strh r1, [r0, #0x90]
_021831f4:
mov r0, #0
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov36_021830e8
_021831fc: .word data_027e0fc8
_02183200: .word 0x00001555
arm_func_start func_ov36_02183204
func_ov36_02183204: ; 0x02183204
stmdb sp!, {r3, r4, r5, lr}
mov r5, r0
ldr r1, [r5, #0x878]
tst r1, #0x100000
movne r0, #0
ldmia sp!, {r3, r4, r5, pc}
add r1, r5, #0x800
ldrsh r1, [r1, #0x88]
cmp r1, #0
movne r0, #0
ldmia sp!, {r3, r4, r5, pc}
mov r1, #8
bl func_ov00_020c1fc8
cmp r0, #0
beq _021834e8
mov r0, r5
bl func_ov00_020c2974
mov r4, r0
add r1, r4, #0x8000
add r0, r5, #0x800
strh r1, [r0, #0x9a]
ldrsh r0, [r5, #0x78]
ldr r1, [r5, #0x130]
sub r0, r4, r0
mov r0, r0, lsl #0x10
cmp r1, #0xf
mov r0, r0, asr #0x10
beq _02183360
cmp r0, #0
rsblt r0, r0, #0
cmp r0, #0x1f40
bge _02183360
ldr r0, _021834f0 ; =data_027e0fc8
ldr r0, [r0]
bl func_ov00_020bcc78
cmp r0, #0
beq _021832f4
strh r4, [r5, #0x78]
ldr r0, [r5, #0x878]
tst r0, #0x1000
addeq r0, r5, #0x800
ldreqsh r0, [r0, #0x8c]
cmpeq r0, #0
bne _021832c4
mov r0, r5
mov r1, #0xd
bl func_ov36_0217d6bc
b _021832e0
_021832c4:
ldr r0, [r5, #0x85c]
cmp r0, #0
bne _021832e0
ldr r0, [r5, #0x130]
cmp r0, #4
ldrne r0, _021834f4 ; =0x00000333
strne r0, [r5, #0x85c]
_021832e0:
mov r0, r5
mov r1, #1
mov r2, #0
bl func_ov36_021856cc
b _02183338
_021832f4:
ldr r0, [r5, #0x878]
tst r0, #0x1000
addeq r0, r5, #0x800
ldreqsh r0, [r0, #0x8c]
cmpeq r0, #0
bne _02183328
ldr r0, [r5, #0x130]
cmp r0, #0xd
beq _02183328
mov r0, r5
mov r1, #0xd
strh r4, [r5, #0x78]
bl func_ov36_0217d6bc
_02183328:
mov r1, #0
mov r0, r5
mov r2, r1
bl func_ov36_021856cc
_02183338:
ldr r0, _021834f8 ; =data_027e0ffc
add r2, r5, #0x48
mov r1, #0x2c8
mov r3, #0
bl func_ov00_020ceacc
add r0, r5, #0x800
mov r1, #0xa
strh r1, [r0, #0x88]
mov r0, #1
ldmia sp!, {r3, r4, r5, pc}
_02183360:
ldr r1, _021834fc ; =data_027e0fa0
ldr r0, [r1]
ldr r1, [r1, #8]
bl func_01ffa0f4
add r1, r5, #0x800
ldrsh r1, [r1, #0x9a]
mov r0, r0, lsl #0x10
sub r0, r1, r0, asr #16
mov r0, r0, lsl #0x10
movs r1, r0, asr #0x10
ldr r0, _02183500 ; =0x00002aab
rsbmi r1, r1, #0
cmp r1, r0
ble _021833c4
mov r1, #0
mov r0, r5
mov r2, r1
bl func_ov36_021856cc
ldr r0, _021834f8 ; =data_027e0ffc
add r2, r5, #0x48
mov r1, #0x2c8
mov r3, #0
bl func_ov00_020ceacc
mov r0, #0
ldmia sp!, {r3, r4, r5, pc}
_021833c4:
ldr r0, _021834f0 ; =data_027e0fc8
ldr r0, [r0]
bl func_ov00_020bcc78
cmp r0, #0
bne _02183420
ldr r0, [r5, #0x130]
cmp r0, #0xf
beq _021833f4
ldr r0, [r5, #0x85c]
cmp r0, #0
ldreq r0, _021834f4 ; =0x00000333
streq r0, [r5, #0x85c]
_021833f4:
mov r1, #0
mov r0, r5
mov r2, r1
bl func_ov36_021856cc
ldr r0, _021834f8 ; =data_027e0ffc
add r2, r5, #0x48
mov r1, #0x2c8
mov r3, #0
bl func_ov00_020ceacc
mov r0, #0
ldmia sp!, {r3, r4, r5, pc}
_02183420:
ldr r0, [r5, #0x878]
mov r1, #1
tst r0, #0x1000
addeq r3, r5, #0x800
ldreqsh r0, [r3, #0x8c]
cmpeq r0, #0
beq _02183474
ldr r0, [r5, #0x85c]
mov r2, #0
cmp r0, #0
ldreq r0, _021834f4 ; =0x00000333
streq r0, [r5, #0x85c]
mov r0, r5
bl func_ov36_021856cc
ldr r0, _021834f8 ; =data_027e0ffc
add r2, r5, #0x48
mov r1, #0x2c8
mov r3, #0
bl func_ov00_020ceacc
mov r0, #0
ldmia sp!, {r3, r4, r5, pc}
_02183474:
ldrb r2, [r5, #0x8a4]
mov r0, r5
mov r4, r2, lsl #0xd
mov r2, r4, asr #0x1
add r2, r4, r2, lsr #30
mov r4, r2, asr #0x2
mov r2, r1
strh r4, [r3, #0x92]
bl func_ov36_021856cc
ldrb r2, [r5, #0x8a4]
add r0, r5, #0x800
mov r1, #0
add r2, r2, #1
strb r2, [r5, #0x8a4]
strh r1, [r0, #0xa2]
ldrb r0, [r5, #0x8a4]
cmp r0, #5
mov r0, r5
bhs _021834cc
mov r1, #0xf
bl func_ov36_0217d6bc
b _021834d4
_021834cc:
mov r1, #0x12
bl func_ov36_0217d6bc
_021834d4:
add r0, r5, #0x800
mov r1, #0xa
strh r1, [r0, #0x88]
mov r0, #1
ldmia sp!, {r3, r4, r5, pc}
_021834e8:
mov r0, #0
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov36_02183204
_021834f0: .word data_027e0fc8
_021834f4: .word 0x00000333
_021834f8: .word data_027e0ffc
_021834fc: .word data_027e0fa0
_02183500: .word 0x00002aab
arm_func_start func_ov36_02183504
func_ov36_02183504: ; 0x02183504
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x14c
mov r5, r0
ldr r1, [r5, #0x810]
mvn r0, #0
cmp r1, r0
bne _0218354c
ldr r1, _02183a08 ; =data_027e0fe4
ldr r2, _02183a0c ; =0x424d5459
ldr r1, [r1]
add r0, sp, #8
bl func_ov00_020c3894
ldr r0, [sp, #8]
str r0, [r5, #0x810]
ldr r0, [sp, #0xc]
add sp, sp, #0x14c
str r0, [r5, #0x814]
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
_0218354c:
ldr r0, _02183a08 ; =data_027e0fe4
add r1, r5, #0x810
ldr r0, [r0]
bl func_ov00_020c3674
movs r4, r0
beq _021839f4
add r0, r5, #0x48
add r3, sp, #0x28
ldmia r0!, {r0, r1, r2}
stmia r3!, {r0, r1, r2}
ldrh r1, [r5, #0x78]
ldr r2, _02183a10 ; =data_02050f54
mov r0, #0x800
mov r1, r1, asr #0x4
mov r6, r1, lsl #0x1
mov r1, r6, lsl #0x1
ldrsh r3, [r2, r1]
add r1, r6, #1
mov r1, r1, lsl #0x1
ldrsh r2, [r2, r1]
mov r1, r3, asr #0x1f
mov r6, r1, lsl #0xd
mov r1, r2, asr #0x1f
mov r1, r1, lsl #0xd
orr r6, r6, r3, lsr #19
adds r7, r0, r3, lsl #13
adc r6, r6, #0
adds r3, r0, r2, lsl #13
orr r1, r1, r2, lsr #19
mov r2, r7, lsr #0xc
adc r0, r1, #0
mov r1, r3, lsr #0xc
orr r2, r2, r6, lsl #20
ldr r3, [sp, #0x28]
orr r1, r1, r0, lsl #20
add r3, r3, r2
ldr r2, [sp, #0x30]
str r3, [sp, #0x28]
add r0, r2, r1
str r0, [sp, #0x30]
ldrb r0, [r5, #0x8a6]
mov r6, #0
cmp r0, #0
beq _02183614
cmp r0, #1
beq _021838fc
cmp r0, #2
beq _0218397c
add sp, sp, #0x14c
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
_02183614:
mov r0, r4
bl func_ov14_02125038
cmp r0, #0
addeq sp, sp, #0x14c
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
add r0, sp, #0x28
add r1, r4, #0x48
bl func_ov00_020ce2f0
cmp r0, #0x1000
addge sp, sp, #0x14c
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
mov r0, r5
bl func_ov00_020c198c
cmp r0, #0
addeq sp, sp, #0x14c
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
add r0, sp, #0x9c
bl func_ov00_0209a4f4
mvn r6, #0
mov r3, #0x32
mov r2, #2
mov r1, #3
ldr r0, _02183a14 ; =data_027e0f64
str r6, [sp, #0xa0]
strb r3, [sp, #0xa5]
strb r2, [sp, #0xa6]
strb r1, [sp, #0xa7]
ldr r1, [r4, #0x48]
ldr r0, [r0]
str r1, [sp, #0xbc]
ldr r2, [r4, #0x4c]
add r1, sp, #0x34
str r2, [sp, #0xc0]
ldr r2, [r4, #0x50]
str r2, [sp, #0xc4]
ldr r0, [r0, #4]
bl func_ov00_02087d34
mov sl, #0
ldr r3, _02183a18 ; =0x000004cd
ldr r2, _02183a1c ; =0x00001e84
ldr r1, _02183a20 ; =0x0000038e
mov r6, #0x19000
ldr r0, [sp, #0x34]
str r6, [sp, #0x4c]
str sl, [sp, #0x58]
str r3, [sp, #0x54]
str sl, [sp, #0x50]
str r2, [sp, #0x44]
str sl, [sp, #0x48]
str r1, [sp, #0x40]
str r0, [r5, #0x6e4]
ldr r0, [sp, #0x38]
str r0, [r5, #0x6e8]
ldr r0, [sp, #0x3c]
str r0, [r5, #0x6ec]
ldr r0, [sp, #0x40]
str r0, [r5, #0x6f0]
ldr r0, [sp, #0x44]
str r0, [r5, #0x6f4]
ldr r0, [sp, #0x48]
str r0, [r5, #0x6f8]
ldr r0, [sp, #0x4c]
str r0, [r5, #0x6fc]
ldr r0, [sp, #0x50]
str r0, [r5, #0x700]
ldr r0, [sp, #0x54]
str r0, [r5, #0x704]
ldr r0, [sp, #0x58]
str r0, [r5, #0x708]
ldr r0, [sp, #0x5c]
str r0, [r5, #0x70c]
ldr r0, [sp, #0x60]
str r0, [r5, #0x710]
ldr r0, [sp, #0x64]
str r0, [r5, #0x714]
ldr r0, [sp, #0x68]
str r0, [r5, #0x718]
ldr r0, [sp, #0x6c]
str r0, [r5, #0x71c]
ldr r0, [sp, #0x70]
str r0, [r5, #0x720]
ldr r0, [sp, #0x74]
str r0, [r5, #0x724]
ldr r0, [sp, #0x78]
str r0, [r5, #0x728]
ldr r0, [sp, #0x7c]
str r0, [r5, #0x72c]
ldr r0, [sp, #0x80]
str r0, [r5, #0x730]
ldr r0, [sp, #0x84]
str r0, [r5, #0x734]
ldr r0, [sp, #0x88]
str r0, [r5, #0x738]
ldr r0, [sp, #0x8c]
str r0, [r5, #0x73c]
ldr r0, [sp, #0x90]
str r0, [r5, #0x740]
ldrb r0, [sp, #0x94]
strb r0, [r5, #0x744]
ldrb r0, [sp, #0x95]
strb r0, [r5, #0x745]
ldrb r0, [sp, #0x96]
strb r0, [r5, #0x746]
ldrb r0, [sp, #0x97]
strb r0, [r5, #0x747]
ldrb r0, [sp, #0x98]
strb r0, [r5, #0x748]
ldr r1, [sp, #0x34]
ldr r0, [sp, #0x38]
str r1, [sp, #0xc8]
str r0, [sp, #0xcc]
ldr r0, [sp, #0x48]
ldr r8, [sp, #0x3c]
ldr r7, [sp, #0x40]
str r0, [sp, #0xdc]
ldr r0, [sp, #0x5c]
ldr r1, [sp, #0x44]
ldr sb, [sp, #0x4c]
str r8, [sp, #0xd0]
ldr r8, [sp, #0x50]
str r7, [sp, #0xd4]
ldr r7, [sp, #0x54]
str r0, [sp, #0xf0]
ldr r0, [sp, #0x70]
str r1, [sp, #0xd8]
ldr r1, [sp, #0x58]
str sb, [sp, #0xe0]
ldr sb, [sp, #0x60]
str r8, [sp, #0xe4]
ldr r8, [sp, #0x64]
str r7, [sp, #0xe8]
ldr r7, [sp, #0x68]
str r0, [sp, #0x104]
ldr r0, [sp, #0x84]
str r1, [sp, #0xec]
ldr r1, [sp, #0x6c]
str sb, [sp, #0xf4]
ldr sb, [sp, #0x74]
str r8, [sp, #0xf8]
ldr r8, [sp, #0x78]
str r7, [sp, #0xfc]
ldr r7, [sp, #0x7c]
ldrb r6, [sp, #0x94]
ldrb lr, [sp, #0x95]
ldrb ip, [sp, #0x96]
ldrb r3, [sp, #0x97]
ldrb r2, [sp, #0x98]
str r0, [sp, #0x118]
ldr r0, _02183a24 ; =data_027e0f74
str r1, [sp, #0x100]
ldr r1, [sp, #0x80]
str sb, [sp, #0x108]
ldr sb, [sp, #0x88]
str r8, [sp, #0x10c]
ldr r8, [sp, #0x8c]
str r7, [sp, #0x110]
ldr r7, [sp, #0x90]
mov fp, #1
str r1, [sp, #0x114]
ldr r0, [r0]
add r1, sp, #0x9c
str sb, [sp, #0x11c]
str r8, [sp, #0x120]
str r7, [sp, #0x124]
strb r6, [sp, #0x128]
strb lr, [sp, #0x129]
strb ip, [sp, #0x12a]
strb r3, [sp, #0x12b]
strb r2, [sp, #0x12c]
strb fp, [sp, #0xb0]
strb sl, [sp, #0xb2]
bl func_ov00_02097810
str r0, [r5, #0x66c]
cmp r0, #0
blt _021838ec
add r2, r5, #0x26c
mov r3, fp
add r1, sp, #0x28
mov r0, r4
add r2, r2, #0x400
strb r3, [r5, #0x8a6]
bl func_ov14_0212500c
_021838ec:
add r0, sp, #0x9c
bl func_ov00_0209a508
add sp, sp, #0x14c
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
_021838fc:
ldr r1, [r4, #0x48]
ldr r2, _02183a14 ; =data_027e0f64
str r1, [sp, #0x1c]
ldr r1, [r4, #0x4c]
add r0, r5, #0x2e4
str r1, [sp, #0x20]
ldr r3, [r4, #0x50]
add r1, sp, #0x1c
str r3, [sp, #0x24]
str r6, [sp]
str r6, [sp, #4]
ldr r2, [r2]
add r3, r0, #0x400
ldr r0, [r2, #4]
mov r2, #2
bl func_ov00_02089318
add r0, sp, #0x28
add r1, r4, #0x48
bl func_ov00_020ce2f0
ldr r1, _02183a28 ; =0x00000333
cmp r0, r1
addge sp, sp, #0x14c
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
add r2, r5, #0x26c
mov r0, r4
add r1, r5, #0x48
add r2, r2, #0x400
bl func_ov14_0212500c
mov r0, #2
add sp, sp, #0x14c
strb r0, [r5, #0x8a6]
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
_0218397c:
ldr r1, [r4, #0x48]
ldr r2, _02183a14 ; =data_027e0f64
str r1, [sp, #0x10]
ldr r1, [r4, #0x4c]
add r0, r5, #0x2e4
str r1, [sp, #0x14]
ldr r3, [r4, #0x50]
add r1, sp, #0x10
str r3, [sp, #0x18]
str r6, [sp]
str r6, [sp, #4]
ldr r2, [r2]
add r3, r0, #0x400
ldr r0, [r2, #4]
mov r2, #2
bl func_ov00_02089318
add r0, r5, #0x48
add r1, r4, #0x48
bl func_ov00_020ce2f0
cmp r0, #0x1000
addge sp, sp, #0x14c
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
mov r2, r6
strb r2, [r4, #0x118]
mov r0, r5
mov r1, #0x14
strb r2, [r5, #0x8a6]
bl func_ov36_0217d6bc
add sp, sp, #0x14c
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
_021839f4:
mvn r0, #0
str r0, [r5, #0x810]
str r0, [r5, #0x814]
add sp, sp, #0x14c
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
arm_func_end func_ov36_02183504
_02183a08: .word data_027e0fe4
_02183a0c: .word 0x424d5459
_02183a10: .word data_02050f54
_02183a14: .word data_027e0f64
_02183a18: .word 0x000004cd
_02183a1c: .word 0x00001e84
_02183a20: .word 0x0000038e
_02183a24: .word data_027e0f74
_02183a28: .word 0x00000333
arm_func_start func_ov36_02183a2c
func_ov36_02183a2c: ; 0x02183a2c
ldrb r3, [r0, #0x8a5]
mvn r2, #0
add r3, r3, #1
strb r3, [r0, #0x8a5]
ldrh r1, [r1]
add r0, r0, r1, lsl #1
add r0, r0, #0x800
strh r2, [r0, #0x80]
bx lr
arm_func_end func_ov36_02183a2c
arm_func_start func_ov36_02183a50
func_ov36_02183a50: ; 0x02183a50
ldrb r3, [r0, #0x8a5]
mov r2, #0xb4
sub r3, r3, #1
strb r3, [r0, #0x8a5]
ldrh r1, [r1]
add r0, r0, r1, lsl #1
add r0, r0, #0x800
strh r2, [r0, #0x80]
bx lr
arm_func_end func_ov36_02183a50
arm_func_start func_ov36_02183a74
func_ov36_02183a74: ; 0x02183a74
stmdb sp!, {r3, r4, r5, lr}
ldr r3, [r0, #0x878]
ands r4, r3, #0x100000
bne _02183a94
add r3, r0, #0x100
ldrsh r3, [r3, #0x20]
cmp r3, #0
ble _02183aa8
_02183a94:
cmp r4, #0
beq _02183ab0
ldr r3, [r0, #0x130]
cmp r3, #0x16
blt _02183ab0
_02183aa8:
mov r0, #0
ldmia sp!, {r3, r4, r5, pc}
_02183ab0:
ldrh r3, [r1]
cmp r3, #2
moveq r0, #0
ldmia sp!, {r3, r4, r5, pc}
ldrb r3, [r0, #0x8ac]
cmp r3, #0
cmpeq r2, #0
moveq r0, #0
ldmia sp!, {r3, r4, r5, pc}
cmp r4, #0
addeq r3, r0, #0x100
ldreqsh r3, [r3, #0x20]
movne r5, #1
mov r4, #0
rsbeq r5, r3, #4
cmp r5, #0
ble _02183b18
_02183af4:
add r3, r0, r4, lsl #1
add r3, r3, #0x800
ldrsh r3, [r3, #0x80]
cmp r3, #0
streqh r4, [r1]
beq _02183b18
add r4, r4, #1
cmp r4, r5
blt _02183af4
_02183b18:
cmp r4, r5
moveq r0, #0
ldmia sp!, {r3, r4, r5, pc}
ldr r1, _02183b78 ; =data_027e0764
ldr ip, [r1]
ldmib r1, {r3, lr}
umull r5, r4, lr, ip
mla r4, lr, r3, r4
ldr r3, [r1, #0xc]
ldr lr, [r1, #0x10]
mla r4, r3, ip, r4
ldr r3, [r1, #0x14]
adds r5, lr, r5
adc r3, r3, r4
str r5, [r1]
tst r3, #0x80000000
cmpeq r2, #0
str r3, [r1, #4]
moveq r0, #0
ldmia sp!, {r3, r4, r5, pc}
mov r1, #1
strb r1, [r0, #0x8ac]
mov r0, r1
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov36_02183a74
_02183b78: .word data_027e0764
arm_func_start func_ov36_02183b7c
func_ov36_02183b7c: ; 0x02183b7c
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x58
mov r6, r0
ldrb r2, [r6, #0x8ad]
mov r5, r1
cmp r2, #0
beq _02183ba4
bl func_ov36_021840c4
add sp, sp, #0x58
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
_02183ba4:
ldrb r0, [r6, #0x8a6]
cmp r0, #0
ldrne r0, [r5, #0x14]
cmpne r0, #0
beq _02183bd0
ldr r1, [r0, #4]
ldr r0, _0218408c ; =0x424d5459
cmp r1, r0
addeq sp, sp, #0x58
moveq r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
_02183bd0:
ldr r0, [r6, #0x870]
cmp r0, #0
addne sp, sp, #0x58
movne r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
ldr r0, [r5, #0x14]
cmp r0, #0
beq _02183c18
ldr r2, [r0, #0x4c]
ldr r1, [r0, #0x50]
ldr r0, [r0, #0x48]
str r0, [sp, #0x48]
str r2, [sp, #0x4c]
str r1, [sp, #0x50]
ldr r0, [r5, #0x14]
ldr r0, [r0, #0x88]
str r0, [sp, #0x54]
b _02183ce8
_02183c18:
ldr r0, [r5, #0x10]
cmp r0, #9
addls pc, pc, r0, lsl #2
b _02183cbc
_02183c28: ; jump table
b _02183c50 ; case 0
b _02183cbc ; case 1
b _02183c98 ; case 2
b _02183c98 ; case 3
b _02183c74 ; case 4
b _02183cbc ; case 5
b _02183cbc ; case 6
b _02183cbc ; case 7
b _02183cbc ; case 8
b _02183cbc ; case 9
_02183c50:
ldr r0, _02184090 ; =data_027e0fb4
mov r1, #0
ldr r0, [r0]
bl func_ov00_020ad714
ldr r2, [r0]
add r1, sp, #0x48
ldr r2, [r2, #0x3c]
blx r2
b _02183ce8
_02183c74:
ldr r0, _02184090 ; =data_027e0fb4
mov r1, #8
ldr r0, [r0]
bl func_ov00_020ad714
ldr r2, [r0]
add r1, sp, #0x48
ldr r2, [r2, #0x3c]
blx r2
b _02183ce8
_02183c98:
ldr r0, _02184090 ; =data_027e0fb4
mov r1, #1
ldr r0, [r0]
bl func_ov00_020ad714
ldr r2, [r0]
add r1, sp, #0x48
ldr r2, [r2, #0x3c]
blx r2
b _02183ce8
_02183cbc:
ldr r1, _02184094 ; =data_027e0f94
ldr r0, _02184098 ; =data_027e0fd4
ldr r3, [r1]
ldr r2, [r1, #4]
str r3, [sp, #0x48]
str r2, [sp, #0x4c]
ldr r1, [r1, #8]
ldr r0, [r0]
str r1, [sp, #0x50]
ldr r0, [r0, #0x2c]
str r0, [sp, #0x54]
_02183ce8:
add r0, r6, #0x38
add r0, r0, #0x800
add r3, sp, #0x3c
ldmia r0!, {r0, r1, r2}
stmia r3!, {r0, r1, r2}
add r1, sp, #0x48
mov r0, r3
bl func_ov00_020ce2f0
mov sl, r0
add r0, sp, #0x48
add r1, sp, #0x3c
add r2, sp, #0x30
bl func_01ff9bf8
ldr r0, [sp, #0x30]
ldr r1, [sp, #0x38]
bl func_01ffa0f4
mov r0, r0, lsl #0x10
ldr ip, [r6, #0x864]
ldrsh r2, [r6, #0x78]
mov r4, r0, asr #0x10
mov fp, #0
rsb r0, r2, r0, asr #16
mov r0, r0, lsl #0x10
mov r0, r0, lsr #0x10
mov r0, r0, asr #0x4
mov r2, r0, lsl #0x1
add r0, r2, #1
ldr r1, _0218409c ; =data_02050f54
mov r0, r0, lsl #0x1
ldrsh r3, [r1, r0]
mov r0, r2, lsl #0x1
ldrsh r8, [r1, r0]
ldr r1, _021840a0 ; =0x0000219a
ldr r0, _021840a0 ; =0x0000219a
umull r2, r1, ip, r1
adds r2, r2, #0x800
rsb lr, r0, #0x3800
mla r1, ip, fp, r1
mov sb, ip, asr #0x1f
ldr ip, _021840a0 ; =0x0000219a
mov r2, r2, lsr #0xc
mla r1, sb, ip, r1
adc r1, r1, #0
orr r2, r2, r1, lsl #20
smull r2, r1, r3, r2
adds r2, r2, #0x800
adc r1, r1, #0
mov r2, r2, lsr #0xc
orr r2, r2, r1, lsl #20
str r2, [sp, #0x2c]
umull r2, r1, r8, lr
adds r2, r2, #0x800
mla r1, r8, fp, r1
mov r7, r8, asr #0x1f
mla r1, r7, lr, r1
adc r1, r1, #0
mov r2, r2, lsr #0xc
orr r2, r2, r1, lsl #20
add r0, sp, #0x24
str fp, [sp, #0x28]
str r2, [sp, #0x24]
bl func_01ff9cec
ldr r1, [sp, #0x54]
add r0, r1, r0
cmp r0, sl
addlt sp, sp, #0x58
movlt r0, fp
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
ldr r0, [r5, #0x14]
cmp r0, #0
beq _02183f44
ldr r2, [r0, #4]
ldr r1, _0218408c ; =0x424d5459
cmp r2, r1
bne _02183f44
bl func_ov14_02125038
cmp r0, #0
beq _02183f44
ldr r1, [r6, #0x130]
sub r0, r1, #0xd
cmp r0, #0xa
addls pc, pc, r0, lsl #2
b _02183ef8
_02183e34: ; jump table
b _02183f38 ; case 0
b _02183f38 ; case 1
b _02183e60 ; case 2
b _02183ef8 ; case 3
b _02183ef8 ; case 4
b _02183f38 ; case 5
b _02183f38 ; case 6
b _02183f38 ; case 7
b _02183f38 ; case 8
b _02183f38 ; case 9
b _02183f38 ; case 10
_02183e60:
ldrsh r0, [r6, #0x78]
sub r0, r4, r0
mov r0, r0, lsl #0x10
movs r0, r0, asr #0x10
rsbmi r0, r0, #0
cmp r0, #0x1f40
bge _02183e8c
mov r0, r6
mov r1, #0xd
bl func_ov36_0217d6bc
b _02183ee8
_02183e8c:
add r0, r4, #0x8000
add r1, r6, #0x800
strh r0, [r1, #0x9a]
ldrb r0, [r6, #0x8a4]
mov r2, #0
mov r3, r0, lsl #0xd
mov r0, r3, asr #0x1
add r0, r3, r0, lsr #30
mov r0, r0, asr #0x2
strh r0, [r1, #0x92]
ldrb r0, [r6, #0x8a4]
add r0, r0, #1
strb r0, [r6, #0x8a4]
strh r2, [r1, #0xa2]
ldrb r0, [r6, #0x8a4]
cmp r0, #5
mov r0, r6
bhs _02183ee0
mov r1, #0xf
bl func_ov36_0217d6bc
b _02183ee8
_02183ee0:
mov r1, #0x12
bl func_ov36_0217d6bc
_02183ee8:
add r0, r6, #0x800
mov r1, #0xa
strh r1, [r0, #0x88]
b _02183f38
_02183ef8:
ldr r0, [r6, #0x878]
tst r0, #0x100000
bne _02183f38
cmp r1, #0x16
bge _02183f38
tst r0, #0x1000
addeq r0, r6, #0x800
ldreqsh r0, [r0, #0x8c]
cmpeq r0, #0
bne _02183f2c
mov r0, r6
mov r1, #0xe
bl func_ov36_0217d6bc
_02183f2c:
add r0, r6, #0x800
mov r1, #0xa
strh r1, [r0, #0x88]
_02183f38:
add sp, sp, #0x58
mov r0, #1
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
_02183f44:
ldr r0, [r5, #0x10]
cmp r0, #8
addls pc, pc, r0, lsl #2
b _02184078
_02183f54: ; jump table
b _02184050 ; case 0
b _02183f78 ; case 1
b _02184078 ; case 2
b _02184078 ; case 3
b _02184064 ; case 4
b _02183fb0 ; case 5
b _02184078 ; case 6
b _02183fd0 ; case 7
b _02184018 ; case 8
_02183f78:
ldr r0, [r5, #0x14]
cmp r0, #0
beq _02184078
ldr r2, [r0, #4]
ldr r1, _021840a4 ; =0x5342454d
cmp r2, r1
bne _02184078
bl func_ov14_02146634
ldr r0, _021840a8 ; =data_027e0ffc
add r2, r6, #0x48
mov r1, #0xf6
mov r3, #0
bl func_ov00_020ceacc
b _02184078
_02183fb0:
ldr r0, [r5, #0x14]
bl func_ov14_021231d4
ldr r0, _021840a8 ; =data_027e0ffc
ldr r1, _021840ac ; =0x0000019d
add r2, r6, #0x48
mov r3, #0
bl func_ov00_020ceacc
b _02184078
_02183fd0:
ldr r0, [r5, #0x14]
add r3, sp, #0x18
add r0, r0, #0x48
ldmia r0!, {r0, r1, r2}
stmia r3!, {r0, r1, r2}
ldr r3, [sp, #0x18]
ldr r0, [r6, #0x48]
ldr r2, [sp, #0x20]
ldr r1, [r6, #0x50]
sub r0, r3, r0
sub r1, r2, r1
bl func_01ffa0f4
mov r1, r0, lsl #0x10
ldr r0, [r5, #0x14]
mov r1, r1, asr #0x10
mov r2, #1
bl func_ov14_02120ac4
b _02184078
_02184018:
ldr r0, [r5, #0x14]
cmp r0, #0
beq _02184078
ldr r2, [r0, #4]
ldr r1, _021840b0 ; =0x524f5045
cmp r2, r1
bne _02184078
bl func_ov14_02123904
ldr r0, _021840a8 ; =data_027e0ffc
add r2, r6, #0x48
mov r1, #0xf6
mov r3, #0
bl func_ov00_020ceacc
b _02184078
_02184050:
bl func_ov36_021840b4
mov r1, #0xf6
mov r2, #0
bl func_ov00_020bf008
b _02184078
_02184064:
ldr r0, _021840a8 ; =data_027e0ffc
add r2, r6, #0x48
mov r1, #0xf6
mov r3, #0
bl func_ov00_020ceacc
_02184078:
mov r0, #0xa
str r0, [r6, #0x870]
mov r0, #1
add sp, sp, #0x58
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
arm_func_end func_ov36_02183b7c
_0218408c: .word 0x424d5459
_02184090: .word data_027e0fb4
_02184094: .word data_027e0f94
_02184098: .word data_027e0fd4
_0218409c: .word data_02050f54
_021840a0: .word 0x0000219a
_021840a4: .word 0x5342454d
_021840a8: .word data_027e0ffc
_021840ac: .word 0x0000019d
_021840b0: .word 0x524f5045
arm_func_start func_ov36_021840b4
func_ov36_021840b4: ; 0x021840b4
ldr ip, _021840c0 ; =func_01fffcec
mov r0, #0
bx ip
.align 2, 0
arm_func_end func_ov36_021840b4
_021840c0: .word func_01fffcec
arm_func_start func_ov36_021840c4
func_ov36_021840c4: ; 0x021840c4
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x30
mov r5, r1
ldr r1, [r5, #0x10]
mov r6, r0
cmp r1, #5
beq _021840ec
cmp r1, #8
beq _02184114
b _02184160
_021840ec:
ldr r0, [r5, #0x14]
bl func_ov14_021231d4
ldr r0, _02184408 ; =data_027e0ffc
ldr r1, _0218440c ; =0x0000019d
add r2, r6, #0x48
mov r3, #0
bl func_ov00_020ceacc
add sp, sp, #0x30
mov r0, #1
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
_02184114:
ldr r0, [r5, #0x14]
cmp r0, #0
beq _02184154
ldr r2, [r0, #4]
ldr r1, _02184410 ; =0x524f5045
cmp r2, r1
bne _02184154
bl func_ov14_02123904
ldr r0, _02184408 ; =data_027e0ffc
add r2, r6, #0x48
mov r1, #0xf6
mov r3, #0
bl func_ov00_020ceacc
add sp, sp, #0x30
mov r0, #1
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
_02184154:
add sp, sp, #0x30
mov r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
_02184160:
ldr r0, [r6, #0x870]
cmp r0, #0
addne sp, sp, #0x30
movne r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
ldrb r0, [r5]
cmp r0, #0
addeq sp, sp, #0x30
moveq r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
ldr r0, [r6, #0x130]
cmp r0, #0x13
cmpne r0, #0x11
addne sp, sp, #0x30
movne r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
ldr r3, [r5, #0x14]
mov r4, #0
cmp r3, #0
beq _021842d4
ldr r0, [r6, #0x50]
ldr r1, [r3, #0x50]
add r0, r0, #0x9a
add r0, r0, #0x100
cmp r1, r0
addlt sp, sp, #0x30
movlt r0, r4
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
ldr r1, [r3, #4]
ldr r0, _02184414 ; =0x41525257
cmp r1, r0
bne _0218432c
ldr r0, [r3, #8]
add r2, sp, #0x24
str r0, [r6, #0x818]
ldr r1, [r3, #0xc]
add r0, r3, #0x54
str r1, [r6, #0x81c]
add r1, r6, #0x48
mov r4, r3
bl func_01ff9bf8
ldr r0, [sp, #0x24]
ldr r1, [sp, #0x2c]
bl func_01ffa0f4
mov r0, r0, lsl #0x10
mov r0, r0, asr #0x10
mov r0, r0, lsl #0x10
mov r0, r0, lsr #0x10
mov r0, r0, asr #0x4
mov r2, r0, lsl #0x1
add r0, r2, #1
ldr r1, _02184418 ; =data_02050f54
mov r0, r0, lsl #0x1
ldrsh r7, [r1, r0]
mov r0, r2, lsl #0x1
ldrsh r2, [r1, r0]
ldr r0, _0218441c ; =0x00000ccd
mov fp, #0
umull sb, r8, r7, r0
mla r8, r7, fp, r8
mov lr, r7, asr #0x1f
mla r8, lr, r0, r8
adds sb, sb, #0x800
adc r7, r8, #0
mov r8, sb, lsr #0xc
ldr sl, [r6, #0x50]
orr r8, r8, r7, lsl #20
ldr r3, [r6, #0x4c]
ldr ip, [r6, #0x48]
add r7, sl, r8
str r7, [sp, #0x2c]
umull r8, r7, r2, r0
str r3, [sp, #0x28]
mla r7, r2, fp, r7
mov r1, r2, asr #0x1f
mla r7, r1, r0, r7
adds r1, r8, #0x800
adc r0, r7, #0
mov r1, r1, lsr #0xc
orr r1, r1, r0, lsl #20
add r0, ip, r1
str r0, [sp, #0x24]
ldrsh r0, [r4, #0x78]
sub r3, sp, #8
str r0, [sp, #4]
add r0, sp, #0x24
ldmia r0!, {r0, r1, r2}
stmia r3!, {r0, r1, r2}
mov r0, r4
add r1, r6, #8
ldmia r3!, {r2, r3}
bl func_ov14_02120998
b _0218432c
_021842d4:
cmp r1, #0
bne _02184320
ldr r0, _02184420 ; =data_027e0fb4
mov r1, r4
ldr r0, [r0]
bl func_ov00_020ad714
ldr r2, [r0]
add r1, sp, #0x14
ldr r2, [r2, #0x3c]
blx r2
ldr r0, [r6, #0x50]
ldr r1, [sp, #0x1c]
add r0, r0, #0x9a
add r0, r0, #0x100
cmp r1, r0
bge _0218432c
add sp, sp, #0x30
mov r0, r4
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
_02184320:
add sp, sp, #0x30
mov r0, r4
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
_0218432c:
ldr r0, [r6, #0x50]
ldr r2, [r6, #0x4c]
ldr r1, [r6, #0x48]
add r0, r0, #0xcd
add r3, r0, #0x400
add r0, sp, #8
str r1, [sp, #8]
str r2, [sp, #0xc]
str r3, [sp, #0x10]
bl func_ov00_020c71fc
add r0, r6, #0x100
ldrsh r7, [r0, #0x20]
ldrb r3, [r5]
ldr r2, _02184424 ; =data_027e0f64
mov r1, #0xb
add r3, r7, r3
strh r3, [r0, #0x20]
ldr r0, [r2]
ldr r0, [r0, #4]
bl func_ov00_02088000
ldr r0, _02184408 ; =data_027e0ffc
add r2, r6, #0x48
mov r1, #0x190
mov r3, #0
bl func_ov00_020ceacc
ldr r0, _02184408 ; =data_027e0ffc
ldr r1, _02184428 ; =0x000002cb
add r2, r6, #0x48
mov r3, #0
bl func_ov00_020ceacc
add r0, r6, #0x100
ldrsh r0, [r0, #0x20]
cmp r0, #0x96
blt _021843e8
cmp r4, #0
beq _021843d8
ldrsh r1, [r4, #0x78]
mov r0, r4
mov r2, #1
bl func_ov14_02120ac4
mvn r0, #0
str r0, [r6, #0x818]
str r0, [r6, #0x81c]
_021843d8:
mov r0, r6
mov r1, #0x18
bl func_ov36_0217d6bc
b _021843fc
_021843e8:
add r0, r6, #0x158
mov r1, #0x1b
bl func_ov36_0217c958
mov r0, #0xf
str r0, [r6, #0x870]
_021843fc:
mov r0, #1
add sp, sp, #0x30
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
arm_func_end func_ov36_021840c4
_02184408: .word data_027e0ffc
_0218440c: .word 0x0000019d
_02184410: .word 0x524f5045
_02184414: .word 0x41525257
_02184418: .word data_02050f54
_0218441c: .word 0x00000ccd
_02184420: .word data_027e0fb4
_02184424: .word data_027e0f64
_02184428: .word 0x000002cb
arm_func_start func_ov36_0218442c
func_ov36_0218442c: ; 0x0218442c
stmdb sp!, {r3, r4, r5, r6, lr}
sub sp, sp, #0x54
mov r5, r0
ldrb r0, [r5, #0x129]
ldrh r4, [r5, #0x7a]
cmp r0, #0
ldr r0, _0218460c ; =0x0000ffff
movne r4, #4
cmp r4, r0
addeq sp, sp, #0x54
ldmia sp!, {r3, r4, r5, r6, pc}
ldrh r0, [r1]
tst r0, #4
bne _02184470
tst r0, #8
addeq sp, sp, #0x54
ldmia sp!, {r3, r4, r5, r6, pc}
_02184470:
add r0, r5, #0x48
add r3, sp, #0x48
ldmia r0!, {r0, r1, r2}
stmia r3!, {r0, r1, r2}
add r1, sp, #0x14
str r1, [sp]
mov r2, #0
add r0, sp, #0x10
stmib sp, {r0, r2}
mov r1, r3
ldr r0, _02184610 ; =data_027e0d3c
str r2, [sp, #0xc]
ldr r0, [r0]
mov r3, r2
bl func_ov00_02079470
cmp r0, #0
addeq sp, sp, #0x54
ldmia sp!, {r3, r4, r5, r6, pc}
add r0, sp, #0x28
bl func_01ffbe34
mov r1, #0
add r0, sp, #0x28
str r1, [sp, #0x2c]
str r0, [sp]
ldr r1, [sp, #0x14]
ldr r2, [sp, #0x10]
ldr r0, _02184614 ; =data_02063e4c
mov r3, r4
bl func_020313c8
ldr r0, _02184618 ; =data_027e0c68
ldr r0, [r0, #0x38]
cmp r0, #0
beq _02184508
add r0, r0, #0x100
ldrsh r0, [r0, #0x5c]
cmp r0, #0
addgt sp, sp, #0x54
ldmia sp!, {r3, r4, r5, r6, pc}
_02184508:
mov r0, #2
str r0, [sp, #0x2c]
ldrh r1, [r5, #0x78]
ldr r2, _0218461c ; =data_02050f54
add r0, sp, #0x18
mov r1, r1, asr #0x4
mov r4, r1, lsl #0x1
add r1, r4, #1
mov r3, r1, lsl #0x1
mov r1, r4, lsl #0x1
ldrsh r4, [r2, r1]
ldrsh r5, [r2, r3]
mov r1, r4
rsb r2, r5, #0
blx func_01ff8018
mov r0, #0x1800
umull lr, ip, r4, r0
mov r2, #0
mla ip, r4, r2, ip
umull r1, r3, r5, r0
mov r4, r4, asr #0x1f
adds lr, lr, #0x800
mla ip, r4, r0, ip
adc ip, ip, #0
adds r4, r1, #0x800
mov lr, lr, lsr #0xc
add r6, sp, #0x18
mla r3, r5, r2, r3
mov r1, r5, asr #0x1f
mla r3, r1, r0, r3
adc r0, r3, #0
ldr r1, [sp, #0x48]
orr lr, lr, ip, lsl #20
add r5, r1, lr
mov r1, r4, lsr #0xc
ldr r3, [sp, #0x50]
orr r1, r1, r0, lsl #20
add r0, r3, r1
str r0, [sp, #0x50]
str r6, [sp, #0x28]
str r5, [sp, #0x48]
add r1, sp, #0x14
str r1, [sp]
add r0, sp, #0x10
stmib sp, {r0, r2}
ldr r0, _02184610 ; =data_027e0d3c
str r2, [sp, #0xc]
ldr r0, [r0]
add r1, sp, #0x48
mov r3, r2
bl func_ov00_02079470
add r1, sp, #0x28
str r1, [sp]
ldr r0, _02184614 ; =data_02063e4c
ldr r1, [sp, #0x14]
ldr r2, [sp, #0x10]
mov r3, #0x25
bl func_020313c8
ldr r0, _02184620 ; =data_027e0c38
mov r1, #2
mov r2, #7
mov r3, #1
bl func_02033e70
add sp, sp, #0x54
ldmia sp!, {r3, r4, r5, r6, pc}
.align 2, 0
arm_func_end func_ov36_0218442c
_0218460c: .word 0x0000ffff
_02184610: .word data_027e0d3c
_02184614: .word data_02063e4c
_02184618: .word data_027e0c68
_0218461c: .word data_02050f54
_02184620: .word data_027e0c38
arm_func_start func_ov36_02184624
func_ov36_02184624: ; 0x02184624
stmdb sp!, {r4, r5, lr}
sub sp, sp, #0xcc
mov r4, r0
cmp r1, #0
ldrneb r0, [r4, #0xa5]
ldreqb r0, [r4, #0xa4]
cmp r0, #0
addeq sp, sp, #0xcc
ldmia sp!, {r4, r5, pc}
add r0, r4, #0x8e0
bl unk_021687f0
add r0, r4, #0x1e8
add r0, r0, #0x1800
bl unk_021687f0
ldr r0, [r4, #0x878]
tst r0, #0x40
add r0, r4, #0x800
ldreqsh r1, [r0, #0x94]
ldreqsh r0, [r0, #0x96]
addeq r0, r1, r0
beq _02184684
ldrsh r1, [r0, #0x96]
ldrsh r0, [r0, #0x94]
sub r0, r1, r0
_02184684:
mov r0, r0, lsl #0x10
mov r0, r0, lsr #0x10
cmp r0, #0
bne _021846c4
ldrh r1, [r4, #0x78]
ldr r3, _021848e4 ; =data_02050f54
add r0, sp, #0xa8
mov r1, r1, asr #0x4
mov r2, r1, lsl #0x1
add r1, r2, #1
mov r5, r2, lsl #0x1
mov r2, r1, lsl #0x1
ldrsh r1, [r3, r5]
ldrsh r2, [r3, r2]
blx func_01ff8214
b _02184728
_021846c4:
mov r0, r0, asr #0x4
mov r1, r0, lsl #0x1
add r0, r1, #1
ldr r2, _021848e4 ; =data_02050f54
mov r1, r1, lsl #0x1
mov r0, r0, lsl #0x1
ldrsh r1, [r2, r1]
ldrsh r2, [r2, r0]
add r0, sp, #0xa8
blx func_01ff8230
ldrh r1, [r4, #0x78]
ldr r3, _021848e4 ; =data_02050f54
add r0, sp, #0x84
mov r1, r1, asr #0x4
mov r2, r1, lsl #0x1
add r1, r2, #1
mov r5, r2, lsl #0x1
mov r2, r1, lsl #0x1
ldrsh r1, [r3, r5]
ldrsh r2, [r3, r2]
blx func_01ff8214
add r0, sp, #0xa8
add r1, sp, #0x84
mov r2, r0
bl func_0202e030
_02184728:
ldr r1, [r4, #0x868]
mov r0, #0
str r0, [sp, #0x78]
str r0, [sp, #0x7c]
str r1, [sp, #0x80]
ldrsh r1, [r4, #0x78]
add r0, sp, #0x78
bl func_ov00_020a61ac
ldr r1, [r4, #0x48]
add r0, sp, #0x78
str r1, [sp, #0x60]
ldr r2, [r4, #0x4c]
add r1, sp, #0x60
str r2, [sp, #0x64]
ldr r3, [r4, #0x50]
mov r2, r0
str r3, [sp, #0x68]
bl func_01ff9bc4
add r1, sp, #0xa8
add r2, sp, #0x78
add r0, r4, #0x158
bl func_ov00_020c5e88
ldr r0, [r4, #0x878]
tst r0, #0x400000
beq _021847bc
add lr, sp, #0x30
add r5, r4, #0x234
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 r1, ip
add r0, r4, #0x570
bl func_ov00_020c6024
_021847bc:
ldr r1, [r4, #0x838]
add r0, sp, #0x24
str r1, [r4, #0x82c]
ldr r2, [r4, #0x83c]
add r1, r4, #0x178
str r2, [r4, #0x830]
ldr r2, [r4, #0x840]
str r2, [r4, #0x834]
bl func_ov36_0217c5d0
ldr r1, [sp, #0x24]
add r0, sp, #0x18
str r1, [r4, #0x838]
ldr r2, [sp, #0x28]
add r1, r4, #0x178
str r2, [r4, #0x83c]
ldr r2, [sp, #0x2c]
str r2, [r4, #0x840]
bl func_ov36_0217c600
add r0, sp, #0x18
add r3, sp, #0x6c
ldmia r0!, {r0, r1, r2}
stmia r3!, {r0, r1, r2}
add r1, r4, #0x38
ldr r2, [r4, #0x4c]
mov r0, r3
add r1, r1, #0x800
str r2, [r4, #0x83c]
bl func_ov00_020ce2f0
ldr r2, _021848e8 ; =0x00000333
ldr r1, _021848ec ; =0x0000219a
cmp r0, r2
bge _0218484c
mov r0, #0
str r0, [r4, #0x864]
rsb r1, r1, #0x3800
b _02184898
_0218484c:
cmp r0, #0x1800
bgt _02184898
rsb r1, r2, #0
add r0, r0, r1
rsb r1, r2, #0x1800
bl func_01ff98e0
ldr r1, _021848f0 ; =0x00000b34
mov r2, #0
umull ip, r3, r0, r1
mla r3, r0, r2, r3
mov r2, r0, asr #0x1f
mla r3, r2, r1, r3
adds ip, ip, #0x800
adc r1, r3, #0
mov r2, ip, lsr #0xc
orr r2, r2, r1, lsl #20
add r1, r2, #0x66
str r0, [r4, #0x864]
add r1, r1, #0x1600
_02184898:
str r1, [sp]
ldrsh r2, [r4, #0x78]
add r1, r4, #0x38
mov r0, #0x1f
str r2, [sp, #4]
str r0, [sp, #8]
mov ip, #1
str ip, [sp, #0xc]
str ip, [sp, #0x10]
ldr r0, _021848f4 ; =data_ov00_020e9370
ldr r3, _021848f8 ; =0x00001666
add r2, r1, #0x800
mov r1, #0
str ip, [sp, #0x14]
bl func_ov05_02102c2c
add r0, r4, #0x158
bl func_ov36_0217c91c
add sp, sp, #0xcc
ldmia sp!, {r4, r5, pc}
.align 2, 0
arm_func_end func_ov36_02184624
_021848e4: .word data_02050f54
_021848e8: .word 0x00000333
_021848ec: .word 0x0000219a
_021848f0: .word 0x00000b34
_021848f4: .word data_ov00_020e9370
_021848f8: .word 0x00001666
arm_func_start func_ov36_021848fc
func_ov36_021848fc: ; 0x021848fc
ldr r2, _0218490c ; =data_ov36_02186cf4
str r2, [r0]
strb r1, [r0, #4]
bx lr
.align 2, 0
arm_func_end func_ov36_021848fc
_0218490c: .word data_ov36_02186cf4
arm_func_start func_ov36_02184910
func_ov36_02184910: ; 0x02184910
ldr r3, [r1, #4]
ldr r2, _02184934 ; =0x47524d47
cmp r3, r2
ldreqb r2, [r0, #4]
ldreqb r0, [r1, #0x2a]
cmpeq r2, r0
moveq r0, #1
movne r0, #0
bx lr
.align 2, 0
arm_func_end func_ov36_02184910
_02184934: .word 0x47524d47
arm_func_start func_ov36_02184938
func_ov36_02184938: ; 0x02184938
stmdb sp!, {r3, r4, lr}
sub sp, sp, #0x1c
mov r4, r0
cmp r1, #0
bne _021849c4
ldr r1, _021849dc ; =data_027e0fe4
ldr r2, _021849e0 ; =0x4e415649
ldr r1, [r1]
add r0, sp, #8
bl func_ov00_020c3894
ldr r0, [sp, #8]
add r3, sp, #8
str r0, [r4, #0x7dc]
ldr r1, [sp, #0xc]
add r0, sp, #0
str r1, [r4, #0x7e0]
mov r1, #1
mov r2, #0
str r3, [sp, #0x10]
str r1, [sp, #0x14]
str r2, [sp, #0x18]
bl func_ov36_021848fc
ldr r0, _021849dc ; =data_027e0fe4
add r1, sp, #0
ldr r0, [r0]
add r2, sp, #0x10
bl func_ov00_020c37ec
cmp r0, #0
beq _021849d0
ldr r1, [sp, #0x10]
ldr r0, [r1]
str r0, [r4, #0x7e4]
ldr r0, [r1, #4]
str r0, [r4, #0x7e8]
b _021849d0
_021849c4:
add sp, sp, #0x1c
mov r0, #0
ldmia sp!, {r3, r4, pc}
_021849d0:
mov r0, #1
add sp, sp, #0x1c
ldmia sp!, {r3, r4, pc}
.align 2, 0
arm_func_end func_ov36_02184938
_021849dc: .word data_027e0fe4
_021849e0: .word 0x4e415649
arm_func_start func_ov36_021849e4
func_ov36_021849e4: ; 0x021849e4
stmdb sp!, {r3, lr}
cmp r1, #1
beq _02184a04
cmp r1, #2
beq _02184a30
cmp r1, #3
beq _02184a48
b _02184a5c
_02184a04:
ldr r1, [r0, #0x878]
tst r1, #0x80000
beq _02184a28
ldr r1, [r0, #0x138]
cmp r1, #0x1e
blt _02184a28
mov r1, #1
bl func_ov36_02184a64
ldmia sp!, {r3, pc}
_02184a28:
mov r0, #0
ldmia sp!, {r3, pc}
_02184a30:
mov r1, #2
bl func_ov36_02184a64
cmp r0, #0
bne _02184a5c
mov r0, #0
ldmia sp!, {r3, pc}
_02184a48:
mov r1, #1
bl func_ov36_02184a64
cmp r0, #0
moveq r0, #0
ldmia sp!, {r3, pc}
_02184a5c:
mov r0, #1
ldmia sp!, {r3, pc}
arm_func_end func_ov36_021849e4
arm_func_start func_ov36_02184a64
func_ov36_02184a64: ; 0x02184a64
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x118
ldr r2, _02184dd8 ; =data_027e0f74
mov r5, r0
mov r6, r1
ldr r0, [r2]
ldr r1, [r5, #0x66c]
bl func_ov00_02097b9c
cmp r0, #0
beq _02184a9c
ldr r0, _02184dd8 ; =data_027e0f74
ldr r1, [r5, #0x66c]
ldr r0, [r0]
bl func_ov00_02097bcc
_02184a9c:
add r0, sp, #0x68
bl func_ov00_0209a4f4
mov r1, #3
ldr r0, _02184ddc ; =data_027e0f64
mvn r3, #0
mov r2, #0x32
ldr r0, [r0]
str r3, [sp, #0x6c]
strb r2, [sp, #0x71]
strb r1, [sp, #0x72]
strb r1, [sp, #0x73]
ldr r0, [r0, #4]
add r1, sp, #0
bl func_ov00_02087d34
mov r1, #0
ldr r0, _02184de0 ; =data_027e0e60
str r1, [sp, #0x1c]
ldr r0, [r0]
str r1, [sp, #0x20]
str r1, [sp, #0x24]
bl func_ov00_02083400
ldr r1, _02184de0 ; =data_027e0e60
mov r4, r0
ldr r0, [r1]
bl func_ov00_020833f4
mov r2, #0
mov r1, r2
cmp r6, #0
beq _02184b24
cmp r6, #1
beq _02184c40
cmp r6, #2
beq _02184c68
b _02184c94
_02184b24:
mov r1, #0x2000
ldr r7, _02184de4 ; =0x0000038e
sub r6, r1, #0x17c
mov r3, #0x16800
str r7, [sp, #0xc]
str r6, [sp, #0x10]
str r2, [sp, #0x14]
str r3, [sp, #0x18]
str r0, [r5, #0x820]
str r1, [r5, #0x824]
add r4, r4, #0xa000
str r4, [r5, #0x828]
ldr r2, [sp]
str r2, [r5, #0x6e4]
ldr r2, [sp, #4]
str r2, [r5, #0x6e8]
ldr r2, [sp, #8]
str r2, [r5, #0x6ec]
ldr r2, [sp, #0xc]
str r2, [r5, #0x6f0]
ldr r2, [sp, #0x10]
str r2, [r5, #0x6f4]
ldr r2, [sp, #0x14]
str r2, [r5, #0x6f8]
ldr r2, [sp, #0x18]
str r2, [r5, #0x6fc]
ldr r2, [sp, #0x1c]
str r2, [r5, #0x700]
ldr r2, [sp, #0x20]
str r2, [r5, #0x704]
ldr r2, [sp, #0x24]
str r2, [r5, #0x708]
ldr r2, [sp, #0x28]
str r2, [r5, #0x70c]
ldr r2, [sp, #0x2c]
str r2, [r5, #0x710]
ldr r2, [sp, #0x30]
str r2, [r5, #0x714]
ldr r2, [sp, #0x34]
str r2, [r5, #0x718]
ldr r2, [sp, #0x38]
str r2, [r5, #0x71c]
ldr r2, [sp, #0x3c]
str r2, [r5, #0x720]
ldr r2, [sp, #0x40]
str r2, [r5, #0x724]
ldr r2, [sp, #0x44]
str r2, [r5, #0x728]
ldr r2, [sp, #0x48]
str r2, [r5, #0x72c]
ldr r2, [sp, #0x4c]
str r2, [r5, #0x730]
ldr r2, [sp, #0x50]
str r2, [r5, #0x734]
ldr r2, [sp, #0x54]
str r2, [r5, #0x738]
ldr r2, [sp, #0x58]
str r2, [r5, #0x73c]
ldr r2, [sp, #0x5c]
str r2, [r5, #0x740]
ldrb r2, [sp, #0x60]
strb r2, [r5, #0x744]
ldrb r2, [sp, #0x61]
strb r2, [r5, #0x745]
ldrb r2, [sp, #0x62]
strb r2, [r5, #0x746]
ldrb r2, [sp, #0x63]
strb r2, [r5, #0x747]
ldrb r2, [sp, #0x64]
strb r2, [r5, #0x748]
b _02184c94
_02184c40:
mov r1, #0x2000
ldr r7, _02184de4 ; =0x0000038e
sub r6, r1, #0x17c
mov r3, #0x16800
str r7, [sp, #0xc]
str r6, [sp, #0x10]
str r2, [sp, #0x14]
str r3, [sp, #0x18]
add r4, r4, #0xa000
b _02184c94
_02184c68:
ldr r8, _02184de4 ; =0x0000038e
ldr r7, _02184de8 ; =0x00001e84
mov r6, #0x1b800
mov r3, #2
str r8, [sp, #0xc]
str r7, [sp, #0x10]
str r2, [sp, #0x14]
str r6, [sp, #0x18]
strb r3, [sp, #0x73]
add r0, r0, #0x4800
sub r4, r4, #0xa800
_02184c94:
str r0, [sp, #0x88]
ldr sb, [sp]
ldr r8, [sp, #4]
ldr r0, [sp, #0x10]
str r1, [sp, #0x8c]
ldr r1, [sp, #0xc]
str r4, [sp, #0x90]
str sb, [sp, #0x94]
ldr sb, [sp, #0x14]
mov r2, #1
str r8, [sp, #0x98]
ldr r8, [sp, #0x18]
ldr r4, [sp, #0x1c]
str r0, [sp, #0xa4]
ldr r0, [sp, #0x24]
str r1, [sp, #0xa0]
ldr r1, [sp, #0x20]
str sb, [sp, #0xa8]
ldr sb, [sp, #0x28]
str r8, [sp, #0xac]
ldr r8, [sp, #0x2c]
str r4, [sp, #0xb0]
ldr r4, [sp, #0x30]
str r0, [sp, #0xb8]
ldr r0, [sp, #0x38]
str r1, [sp, #0xb4]
ldr r1, [sp, #0x34]
ldr sl, [sp, #8]
str sb, [sp, #0xbc]
ldr sb, [sp, #0x3c]
str r8, [sp, #0xc0]
ldr r8, [sp, #0x40]
str r4, [sp, #0xc4]
ldr r4, [sp, #0x44]
str r0, [sp, #0xcc]
ldr r0, [sp, #0x4c]
ldrb r7, [sp, #0x60]
ldrb r6, [sp, #0x61]
ldrb lr, [sp, #0x62]
ldrb ip, [sp, #0x63]
ldrb r3, [sp, #0x64]
str r1, [sp, #0xc8]
ldr r1, [sp, #0x48]
str sl, [sp, #0x9c]
str sb, [sp, #0xd0]
ldr sl, [sp, #0x50]
str r8, [sp, #0xd4]
ldr sb, [sp, #0x54]
str r4, [sp, #0xd8]
ldr r8, [sp, #0x58]
ldr r4, [sp, #0x5c]
str r1, [sp, #0xdc]
ldr fp, _02184dd8 ; =data_027e0f74
str r0, [sp, #0xe0]
ldr r0, [fp]
add r1, sp, #0x68
str sl, [sp, #0xe4]
str sb, [sp, #0xe8]
str r8, [sp, #0xec]
str r4, [sp, #0xf0]
strb r7, [sp, #0xf4]
strb r6, [sp, #0xf5]
strb lr, [sp, #0xf6]
strb ip, [sp, #0xf7]
strb r3, [sp, #0xf8]
strb r2, [sp, #0x7c]
strb r2, [sp, #0x7e]
bl func_ov00_02097810
mvn r1, #0
str r0, [r5, #0x66c]
cmp r0, r1
add r0, sp, #0x68
bne _02184dc8
bl func_ov00_0209a508
add sp, sp, #0x118
mov r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
_02184dc8:
bl func_ov00_0209a508
mov r0, #1
add sp, sp, #0x118
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
arm_func_end func_ov36_02184a64
_02184dd8: .word data_027e0f74
_02184ddc: .word data_027e0f64
_02184de0: .word data_027e0e60
_02184de4: .word 0x0000038e
_02184de8: .word 0x00001e84
arm_func_start func_ov36_02184dec
func_ov36_02184dec: ; 0x02184dec
ldr r3, [r1]
ldr r1, [r0, #0x850]
cmp r3, r1
strlt r3, [r0, #0x850]
ldr r2, [r2]
ldr r1, [r0, #0x854]
cmp r2, r1
strlt r2, [r0, #0x854]
bx lr
arm_func_end func_ov36_02184dec
arm_func_start func_ov36_02184e10
func_ov36_02184e10: ; 0x02184e10
stmdb sp!, {r3, r4, r5, lr}
mov r5, r0
ldrb r0, [r5, #0x8a8]
cmp r0, #0
moveq r4, #0x4000
ldr r0, [r5, #0x130]
movne r4, #0x6000
cmp r0, #0x18
blt _02184e60
ldr r0, [r5, #0x878]
tst r0, #0x10
beq _02184f2c
ldr r1, [r5, #0x878]
ldr r0, _02184f3c ; =data_027e103c
bic r1, r1, #0x10
str r1, [r5, #0x878]
ldr r0, [r0]
mov r1, #0
bl func_ov00_020cfe10
b _02184f2c
_02184e60:
ldr r0, _02184f40 ; =data_027e0fc8
ldr r0, [r0]
bl func_ov00_020bc46c
cmp r0, #1
ldr r0, [r5, #0x878]
bne _02184ed4
tst r0, #0x10
ldr r0, [r5, #0x850]
beq _02184eac
cmp r0, r4
blt _02184f2c
ldr r0, _02184f3c ; =data_027e103c
mov r1, #0
ldr r0, [r0]
bl func_ov00_020cfe10
ldr r0, [r5, #0x878]
bic r0, r0, #0x10
str r0, [r5, #0x878]
b _02184f2c
_02184eac:
cmp r0, r4
bge _02184f2c
ldr r0, _02184f3c ; =data_027e103c
mov r1, #1
ldr r0, [r0]
bl func_ov00_020cfe10
ldr r0, [r5, #0x878]
orr r0, r0, #0x10
str r0, [r5, #0x878]
b _02184f2c
_02184ed4:
tst r0, #0x10
ldr r0, [r5, #0x854]
beq _02184f08
cmp r0, r4
blt _02184f2c
ldr r0, _02184f3c ; =data_027e103c
mov r1, #0
ldr r0, [r0]
bl func_ov00_020cfe10
ldr r0, [r5, #0x878]
bic r0, r0, #0x10
str r0, [r5, #0x878]
b _02184f2c
_02184f08:
cmp r0, r4
bge _02184f2c
ldr r0, _02184f3c ; =data_027e103c
mov r1, #1
ldr r0, [r0]
bl func_ov00_020cfe10
ldr r0, [r5, #0x878]
orr r0, r0, #0x10
str r0, [r5, #0x878]
_02184f2c:
mvn r0, #0x80000000
str r0, [r5, #0x850]
str r0, [r5, #0x854]
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov36_02184e10
_02184f3c: .word data_027e103c
_02184f40: .word data_027e0fc8
arm_func_start func_ov36_02184f44
func_ov36_02184f44: ; 0x02184f44
stmdb sp!, {r3, r4, r5, r6, lr}
sub sp, sp, #0xc
mov r6, r0
ldrb r2, [r6, #0x8ab]
mov r5, r1
mov r4, #0
cmp r2, #0
beq _02184f6c
bl func_ov36_021830e8
mov r4, r0
_02184f6c:
ldr r1, [r6, #0x48]
ldr r0, _0218504c ; =data_027e0e60
str r1, [sp]
ldr r1, [r6, #0x4c]
ldr r0, [r0]
str r1, [sp, #4]
ldr r1, [r6, #0x50]
add r2, sp, #0
str r1, [sp, #8]
ldrh r1, [r6, #0x22]
bl func_ov00_02083770
strb r0, [r5]
cmp r4, #0
beq _02185040
cmp r4, #1
bne _02185008
ldr r0, [r6, #0x878]
tst r0, #0x100000
bne _02184fd8
mov r0, r6
bl func_ov36_02185864
cmp r0, #0
bne _02184ffc
mov r0, r6
mov r1, #9
bl func_ov36_0217d6bc
b _02184ffc
_02184fd8:
ldrb r0, [r6, #0x8a7]
cmp r0, #3
mov r0, r6
bne _02184ff4
mov r1, #0xa
bl func_ov36_0217d6bc
b _02184ffc
_02184ff4:
mov r1, #9
bl func_ov36_0217d6bc
_02184ffc:
add sp, sp, #0xc
mov r0, #2
ldmia sp!, {r3, r4, r5, r6, pc}
_02185008:
cmp r4, #2
mov r0, r6
bne _02185028
mov r1, #3
bl func_ov36_0217d6bc
add sp, sp, #0xc
mov r0, #2
ldmia sp!, {r3, r4, r5, r6, pc}
_02185028:
bl func_ov00_020c2974
add r1, r6, #0x800
strh r0, [r1, #0x8e]
add sp, sp, #0xc
mov r0, #1
ldmia sp!, {r3, r4, r5, r6, pc}
_02185040:
mov r0, #0
add sp, sp, #0xc
ldmia sp!, {r3, r4, r5, r6, pc}
.align 2, 0
arm_func_end func_ov36_02184f44
_0218504c: .word data_027e0e60
arm_func_start func_ov36_02185050
func_ov36_02185050: ; 0x02185050
stmdb sp!, {r3, r4, lr}
sub sp, sp, #0xc
ldr r1, _021850c0 ; =data_027e0fc8
mov r4, r0
ldr r0, [r1]
bl func_ov00_020bc46c
cmp r0, #1
bne _02185090
ldr r0, _021850c4 ; =data_027e0f94
ldr r2, [r0]
ldr r1, [r0, #4]
str r2, [sp]
str r1, [sp, #4]
ldr r0, [r0, #8]
str r0, [sp, #8]
b _021850ac
_02185090:
ldr r1, [r4, #0x6b4]
ldr r0, [r1, #0x48]
str r0, [sp]
ldr r0, [r1, #0x4c]
str r0, [sp, #4]
ldr r0, [r1, #0x50]
str r0, [sp, #8]
_021850ac:
add r1, sp, #0
mov r0, r4
bl func_ov00_020c2938
add sp, sp, #0xc
ldmia sp!, {r3, r4, pc}
.align 2, 0
arm_func_end func_ov36_02185050
_021850c0: .word data_027e0fc8
_021850c4: .word data_027e0f94
arm_func_start func_ov36_021850c8
func_ov36_021850c8: ; 0x021850c8
stmdb sp!, {r4, lr}
mov r4, r0
ldr r0, [r4, #0x360]
add r0, r4, r0, lsl #2
ldr r0, [r0, #0x358]
cmp r0, #0
beq _021850f0
cmp r0, #0x16
beq _0218515c
ldmia sp!, {r4, pc}
_021850f0:
ldr r0, [r4, #0x168]
mov r1, #0x6000
add r0, r0, #0xc
bl func_0202e310
cmp r0, #0
bne _02185120
ldr r0, [r4, #0x168]
mov r1, #0x1d000
add r0, r0, #0xc
bl func_0202e310
cmp r0, #0
ldmia sp!, {r4, pc}
_02185120:
ldr r0, _021851d4 ; =data_027e0ffc
add r2, r4, #0x48
mov r1, #0x2c0
mov r3, #0
bl func_ov00_020ceacc
ldr r0, [r4, #0x130]
cmp r0, #4
cmpne r0, #1
ldmia sp!, {r4, pc}
ldr r0, _021851d8 ; =data_027e0f64
mov r1, #0
ldr r0, [r0]
ldr r0, [r0, #4]
bl func_ov00_02088000
ldmia sp!, {r4, pc}
_0218515c:
ldr r0, [r4, #0x168]
mov r1, #0x7000
add r0, r0, #0xc
bl func_0202e310
cmp r0, #0
bne _021851bc
ldr r0, [r4, #0x168]
mov r1, #0xe000
add r0, r0, #0xc
bl func_0202e310
cmp r0, #0
bne _021851bc
ldr r0, [r4, #0x168]
mov r1, #0x17000
add r0, r0, #0xc
bl func_0202e310
cmp r0, #0
bne _021851bc
ldr r0, [r4, #0x168]
mov r1, #0x1e000
add r0, r0, #0xc
bl func_0202e310
cmp r0, #0
ldmia sp!, {r4, pc}
_021851bc:
ldr r0, _021851d4 ; =data_027e0ffc
add r2, r4, #0x48
mov r1, #0x2c0
mov r3, #0
bl func_ov00_020ceacc
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov36_021850c8
_021851d4: .word data_027e0ffc
_021851d8: .word data_027e0f64
arm_func_start func_ov36_021851dc
func_ov36_021851dc: ; 0x021851dc
stmdb sp!, {r4, r5, lr}
sub sp, sp, #0xc
ldr ip, _02185270 ; =0x00000666
mov lr, #0
mov r3, #0x214
str lr, [sp]
str ip, [sp, #4]
str r3, [sp, #8]
mov r5, r0
cmp r2, #0
mov r4, r1
ldrnesh r0, [r2]
bne _02185228
mov r0, r4
bl func_ov36_02185050
ldrsh r1, [r4, #0x78]
sub r0, r1, r0
mov r0, r0, lsl #0x10
mov r0, r0, asr #0x10
_02185228:
cmp r0, #0
ldrsh r1, [r4, #0x78]
add r0, sp, #0
ble _0218524c
sub r1, r1, #0x4000
mov r1, r1, lsl #0x10
mov r1, r1, asr #0x10
bl func_ov00_020a61ac
b _0218525c
_0218524c:
add r1, r1, #0x4000
mov r1, r1, lsl #0x10
mov r1, r1, asr #0x10
bl func_ov00_020a61ac
_0218525c:
add r0, sp, #0
ldmia r0!, {r0, r1, r2}
stmia r5!, {r0, r1, r2}
add sp, sp, #0xc
ldmia sp!, {r4, r5, pc}
.align 2, 0
arm_func_end func_ov36_021851dc
_02185270: .word 0x00000666
arm_func_start func_ov36_02185274
func_ov36_02185274: ; 0x02185274
stmdb sp!, {r3, lr}
ldr r1, [r0, #0x858]
cmp r1, #0
beq _02185294
subs r1, r1, #0x148
str r1, [r0, #0x858]
movmi r1, #0
strmi r1, [r0, #0x858]
_02185294:
add r1, r0, #0x800
ldrh r1, [r1, #0x9a]
ldr ip, _021852f8 ; =data_02050f54
ldr r2, [r0, #0x858]
mov r1, r1, asr #0x4
mov lr, r1, lsl #0x1
mov r1, lr, lsl #0x1
ldrsh r3, [ip, r1]
add r1, lr, #1
mov r1, r1, lsl #0x1
smull lr, r2, r3, r2
adds r3, lr, #0x800
adc r2, r2, #0
mov r3, r3, lsr #0xc
orr r3, r3, r2, lsl #20
str r3, [r0, #0x60]
ldrsh r2, [ip, r1]
ldr r1, [r0, #0x858]
smull r3, r1, r2, r1
adds r2, r3, #0x800
adc r1, r1, #0
mov r2, r2, lsr #0xc
orr r2, r2, r1, lsl #20
str r2, [r0, #0x68]
ldmia sp!, {r3, pc}
.align 2, 0
arm_func_end func_ov36_02185274
_021852f8: .word data_02050f54
arm_func_start func_ov36_021852fc
func_ov36_021852fc: ; 0x021852fc
stmdb sp!, {r4, lr}
mov r4, r0
ldr r0, [r4, #0x870]
cmp r0, #0
subne r0, r0, #1
strne r0, [r4, #0x870]
add r0, r4, #0x800
ldrsh r1, [r0, #0x7c]
cmp r1, #0
subne r1, r1, #1
strneh r1, [r0, #0x7c]
add r0, r4, #0x800
ldrsh r1, [r0, #0x7e]
cmp r1, #0
subne r1, r1, #1
strneh r1, [r0, #0x7e]
add r0, r4, #0x800
ldrsh r2, [r0, #0x88]
cmp r2, #0
beq _021853a4
ldr r1, [r4, #0x878]
tst r1, #0x100000
beq _02185368
cmp r2, #0
subne r1, r2, #1
strneh r1, [r0, #0x88]
b _021853a4
_02185368:
tst r1, #0x4000
subeq r1, r2, #1
streqh r1, [r0, #0x88]
beq _021853a4
ldr r0, _0218540c ; =data_027e0fc8
ldr r0, [r0]
bl func_ov00_020bcc78
cmp r0, #0
bne _021853a4
add r0, r4, #0x800
mov r1, #0
strh r1, [r0, #0x88]
ldr r0, [r4, #0x878]
bic r0, r0, #0x4000
str r0, [r4, #0x878]
_021853a4:
ldrb r0, [r4, #0x11c]
cmp r0, #0
ldreqb r0, [r4, #0x8a6]
cmpeq r0, #0
bne _021853cc
add r0, r4, #0x800
ldrsh r1, [r0, #0x86]
cmp r1, #0
subne r1, r1, #1
strneh r1, [r0, #0x86]
_021853cc:
mov r2, #0
_021853d0:
add r0, r4, r2, lsl #1
add r0, r0, #0x800
ldrsh r1, [r0, #0x80]
add r2, r2, #1
cmp r1, #0
subgt r1, r1, #1
strgth r1, [r0, #0x80]
cmp r2, #3
blt _021853d0
add r0, r4, #0x800
ldrsh r1, [r0, #0x8c]
cmp r1, #0
subne r1, r1, #1
strneh r1, [r0, #0x8c]
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov36_021852fc
_0218540c: .word data_027e0fc8
arm_func_start func_ov36_02185410
func_ov36_02185410: ; 0x02185410
add r0, r0, #0x800
ldrsh r1, [r0, #0x7e]
cmp r1, #0x1e
movlt r1, #0x1e
strlth r1, [r0, #0x7e]
bx lr
arm_func_end func_ov36_02185410
arm_func_start func_ov36_02185428
func_ov36_02185428: ; 0x02185428
ldr r0, [r0, #0x878]
tst r0, #0x400000
movne r0, #1
moveq r0, #0
bx lr
arm_func_end func_ov36_02185428
arm_func_start func_ov36_0218543c
func_ov36_0218543c: ; 0x0218543c
stmdb sp!, {r3, r4, r5, r6, lr}
sub sp, sp, #0xc
mov r4, r0
ldr r0, [r4, #0x85c]
cmp r0, #0
addeq sp, sp, #0xc
ldmia sp!, {r3, r4, r5, r6, pc}
add r1, r4, #0x800
ldrh r1, [r1, #0x9a]
mov ip, #0
ldr r2, _021854e4 ; =data_02050f54
mov r1, r1, asr #0x4
mov r3, r1, lsl #0x1
add r1, r3, #1
mov r3, r3, lsl #0x1
ldrsh r3, [r2, r3]
mov r1, r1, lsl #0x1
ldrsh r2, [r2, r1]
smull r5, lr, r3, r0
adds r6, r5, #0x800
smull r3, r0, r2, r0
adc r5, lr, #0
adds r2, r3, #0x800
mov r3, r6, lsr #0xc
orr r3, r3, r5, lsl #20
adc r0, r0, #0
mov r2, r2, lsr #0xc
orr r2, r2, r0, lsl #20
add r0, r4, #0x48
str r2, [sp, #8]
add r1, sp, #0
str r3, [sp]
str ip, [sp, #4]
mov r2, r0
bl func_01ff9bc4
ldr r0, [r4, #0x85c]
subs r0, r0, #0x148
str r0, [r4, #0x85c]
movmi r0, #0
strmi r0, [r4, #0x85c]
add sp, sp, #0xc
ldmia sp!, {r3, r4, r5, r6, pc}
.align 2, 0
arm_func_end func_ov36_0218543c
_021854e4: .word data_02050f54
arm_func_start func_ov36_021854e8
func_ov36_021854e8: ; 0x021854e8
stmdb sp!, {r4, lr}
mov r4, r0
ldr r0, [r4, #0x878]
tst r0, #0x400
ldmia sp!, {r4, pc}
tst r0, #0x200
ldmia sp!, {r4, pc}
add r0, r4, #0x800
ldrsh r1, [r0, #0x8a]
add r1, r1, #1
strh r1, [r0, #0x8a]
ldrsh r0, [r0, #0x8a]
cmp r0, #0x384
ldmia sp!, {r4, pc}
mov r0, #0x10000
ldr r1, [r4, #0x7cc]
rsb r0, r0, #0
and r0, r1, r0
cmp r0, #0x1000000
ldmia sp!, {r4, pc}
ldr r0, _0218557c ; =data_027e0fc8
ldr r0, [r0]
bl func_ov00_020bc46c
cmp r0, #1
ldmia sp!, {r4, pc}
add r1, r4, #0x3b4
ldr r0, _02185580 ; =data_027e0c68
ldr r2, _02185584 ; =0x00690332
add r1, r1, #0x400
bl func_02036ce4
mov r0, r4
mov r1, #1
bl func_ov00_020c1908
ldr r0, [r4, #0x878]
orr r0, r0, #0xc00
str r0, [r4, #0x878]
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov36_021854e8
_0218557c: .word data_027e0fc8
_02185580: .word data_027e0c68
_02185584: .word 0x00690332
arm_func_start func_ov36_02185588
func_ov36_02185588: ; 0x02185588
stmdb sp!, {r4, lr}
mov r4, r0
ldr r0, [r4, #0x130]
cmp r0, #0x12
ldmia sp!, {r4, pc}
mov r0, #0x10000
ldr r1, [r4, #0x7cc]
rsb r0, r0, #0
and r0, r1, r0
cmp r0, #0x1000000
ldmia sp!, {r4, pc}
add r0, r4, #0x3b4
add r0, r0, #0x400
ldr r1, [r0]
ldr r1, [r1, #0x10]
blx r1
mov r0, #0x10000
ldr r1, [r4, #0x7cc]
rsb r0, r0, #0
and r0, r1, r0
cmp r0, #0x1000000
ldreq r0, [r4, #0x878]
biceq r0, r0, #0x800
streq r0, [r4, #0x878]
ldmia sp!, {r4, pc}
arm_func_end func_ov36_02185588
arm_func_start func_ov36_021855ec
func_ov36_021855ec: ; 0x021855ec
stmdb sp!, {r4, r5, r6, lr}
mov r6, r0
add r0, r6, #0x800
mov r5, r1
mov r4, r2
ldr r1, [r5]
ldrsh r2, [r0, #0x92]
cmp r1, #0x1000
strleh r2, [r0, #0x94]
ble _0218563c
ldrsh r0, [r0, #0x94]
sub r0, r2, r0
mov r0, r0, lsl #0x10
mov r0, r0, asr #0x4
bl func_01ff98e0
add r1, r6, #0x800
ldrsh r2, [r1, #0x94]
add r0, r0, #0x800
add r0, r2, r0, asr #12
strh r0, [r1, #0x94]
_0218563c:
cmp r4, #0
bne _0218568c
add r0, r6, #0x800
mov r2, #0
strh r2, [r0, #0x98]
ldr r1, [r5]
cmp r1, #0x1000
strleh r2, [r0, #0x96]
ldmia sp!, {r4, r5, r6, pc}
ldrsh r0, [r0, #0x96]
rsb r0, r0, #0
mov r0, r0, lsl #0x10
mov r0, r0, asr #0x4
bl func_01ff98e0
add r1, r6, #0x800
ldrsh r2, [r1, #0x96]
add r0, r0, #0x800
add r0, r2, r0, asr #12
strh r0, [r1, #0x96]
ldmia sp!, {r4, r5, r6, pc}
_0218568c:
add r1, r6, #0x800
ldrh r3, [r1, #0x98]
ldr r2, _021856c8 ; =data_02050f54
mov r0, #0x1f4
mov r3, r3, asr #0x4
mov r3, r3, lsl #0x2
ldrsh r2, [r2, r3]
smulbb r0, r2, r0
mov r0, r0, asr #0xc
strh r0, [r1, #0x96]
ldrsh r0, [r1, #0x98]
add r0, r0, #0x1ac
add r0, r0, #0xc00
strh r0, [r1, #0x98]
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
arm_func_end func_ov36_021855ec
_021856c8: .word data_02050f54
arm_func_start func_ov36_021856cc
func_ov36_021856cc: ; 0x021856cc
stmdb sp!, {r3, r4, r5, r6, r7, lr}
sub sp, sp, #0x18
mov r7, r0
mov r6, r2
cmp r1, #0
beq _021857a8
ldr r1, _02185854 ; =data_027e0fa0
ldr r0, _02185858 ; =data_027e0fcc
ldmia r1!, {r2, r5}
str r5, [sp, #0x10]
str r2, [sp, #0xc]
ldr r2, [r1, #8]
ldr r1, _0218585c ; =data_027e0f94
str r2, [sp, #0x14]
ldr r0, [r0]
ldr r1, [r1, #4]
ldr r2, [r0, #8]
ldr r3, [r7, #0x4c]
mov r0, r5
mov r4, #0
_0218571c:
add r1, r1, r0
cmp r1, r3
sub r0, r0, r2
add r4, r4, #0x1000
bgt _0218571c
add r0, sp, #0xc
mov r2, #0
mov r1, r0
str r2, [sp, #0x10]
bl func_01ff9d4c
cmp r4, #0x8000
mov r0, #0x2000
blt _02185768
mov r1, r4
bl func_01ff98e0
mov r1, r0
add r0, sp, #0xc
bl func_01fffbec
b _0218577c
_02185768:
mov r1, #0x8000
bl func_01ff98e0
mov r1, r0
add r0, sp, #0xc
bl func_01fffbec
_0218577c:
ldr r1, [sp, #0xc]
ldr r0, [sp, #0x14]
rsb r1, r1, #0
rsb r0, r0, #0
str r5, [sp, #0x10]
str r1, [sp, #0xc]
str r0, [sp, #0x14]
ldr r0, [r7, #0x878]
orr r0, r0, #0x4000
str r0, [r7, #0x878]
b _0218581c
_021857a8:
bl func_ov00_020c2974
ldr r1, _02185854 ; =data_027e0fa0
mov r4, r0, lsl #0x10
ldr r0, [r1]
ldr r1, [r1, #8]
bl func_01ffa0f4
mov r0, r0, lsl #0x10
mov r0, r0, asr #0x10
add r0, r0, #0x8000
mov r2, #0
mov r0, r0, lsl #0x10
mov r0, r0, asr #0x10
rsb r0, r0, r4, lsr #16
mov r0, r0, lsl #0x10
mov r0, r0, asr #0x10
add r0, r0, r4, lsr #16
mov r1, r0, lsl #0x10
mov r3, #0x1000
add r0, sp, #0xc
mov r1, r1, asr #0x10
str r2, [sp, #0xc]
str r2, [sp, #0x10]
str r3, [sp, #0x14]
bl func_ov00_020a61ac
add r0, sp, #0xc
mov r1, #0x400
bl func_01fffbec
mov r0, #0
str r0, [sp, #0x10]
_0218581c:
ldr r0, _02185860 ; =data_027e0fc8
add r1, sp, #0xc
ldr r0, [r0]
mov r2, r6
ldr r3, [r0]
ldr r3, [r3, #0x6c]
blx r3
mov r0, r7
bl func_ov00_020c2840
add r0, r7, #0x800
mov r1, #0xa
strh r1, [r0, #0x88]
add sp, sp, #0x18
ldmia sp!, {r3, r4, r5, r6, r7, pc}
.align 2, 0
arm_func_end func_ov36_021856cc
_02185854: .word data_027e0fa0
_02185858: .word data_027e0fcc
_0218585c: .word data_027e0f94
_02185860: .word data_027e0fc8
arm_func_start func_ov36_02185864
func_ov36_02185864: ; 0x02185864
stmdb sp!, {r4, lr}
ldrb r1, [r0, #0x8a7]
cmp r1, #5
beq _021858b0
ldr r1, _021858ec ; =data_027e0764
ldr r3, [r1]
ldmib r1, {r2, ip}
umull r4, lr, ip, r3
mla lr, ip, r2, lr
ldr r2, [r1, #0xc]
ldr ip, [r1, #0x10]
mla lr, r2, r3, lr
ldr r2, [r1, #0x14]
adds r3, ip, r4
adc r2, r2, lr
str r3, [r1]
str r2, [r1, #4]
tst r2, #0x80000000
beq _021858e4
_021858b0:
ldr r1, [r0, #0x878]
tst r1, #0x80
bne _021858d4
ldr r2, [r0, #0x878]
mov r1, #3
orr r2, r2, #0x80
str r2, [r0, #0x878]
bl func_ov36_0217d6bc
b _021858dc
_021858d4:
mov r0, #0
ldmia sp!, {r4, pc}
_021858dc:
mov r0, #1
ldmia sp!, {r4, pc}
_021858e4:
mov r0, #0
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov36_02185864
_021858ec: .word data_027e0764
arm_func_start func_ov36_021858f0
func_ov36_021858f0: ; 0x021858f0
stmdb sp!, {r3, r4, lr}
sub sp, sp, #0x34
mov r4, r0
mov r1, #0
strb r1, [r4, #0x8ad]
ldr r1, [r4, #0x878]
tst r1, #0x100000
beq _02185af4
add r0, r4, #0x48
ldmia r0!, {r0, r1, r2}
add lr, sp, #0x28
stmia lr!, {r0, r1, r2}
add ip, r4, #0x7c
add r3, sp, #0x18
ldmia ip!, {r0, r1, r2}
stmia r3!, {r0, r1, r2}
ldr r0, [r4, #0x88]
mov r2, #1
str r0, [sp, #0x24]
ldr ip, [r4, #0x6b8]
add r0, sp, #0xc
ldr r3, [ip, #0x48]
add r1, r4, #0x178
str r3, [r4, #0x48]
ldr r3, [ip, #0x4c]
str r3, [r4, #0x4c]
ldr r3, [ip, #0x50]
str r3, [r4, #0x50]
ldr ip, [r4, #0x6b8]
ldr r3, [ip, #0x7c]
str r3, [r4, #0x7c]
ldr r3, [ip, #0x80]
str r3, [r4, #0x80]
ldr r3, [ip, #0x84]
str r3, [r4, #0x84]
ldr r3, [ip, #0x88]
str r3, [r4, #0x88]
strb r2, [r4, #0x8ad]
bl func_ov36_0217c630
ldr r0, [sp, #0xc]
mov r1, #0
str r0, [r4, #0x48]
ldr r2, [sp, #0x10]
mov r0, r4
str r2, [r4, #0x4c]
ldr r3, [sp, #0x14]
mov r2, #0x1800
str r3, [r4, #0x50]
str r1, [r4, #0x7c]
str r1, [r4, #0x80]
str r1, [r4, #0x84]
mov r1, #2
str r2, [r4, #0x88]
bl func_ov00_020c1fc8
cmp r0, #0
beq _02185a24
_021859d0:
ldr r0, [r4, #0x130]
cmp r0, #0x18
beq _021859f4
ldr r0, [sp, #0x28]
str r0, [r4, #0x48]
ldr r0, [sp, #0x2c]
str r0, [r4, #0x4c]
ldr r0, [sp, #0x30]
str r0, [r4, #0x50]
_021859f4:
ldr r1, [sp, #0x18]
mov r0, #0
str r1, [r4, #0x7c]
ldr r1, [sp, #0x1c]
str r1, [r4, #0x80]
ldr r1, [sp, #0x20]
str r1, [r4, #0x84]
ldr r1, [sp, #0x24]
add sp, sp, #0x34
str r1, [r4, #0x88]
strb r0, [r4, #0x8ad]
ldmia sp!, {r3, r4, pc}
_02185a24:
add r0, sp, #0
add r1, r4, #0x178
mov r2, #1
bl func_ov36_0217c630
ldr r0, [sp]
mov r1, #0
str r0, [r4, #0x48]
ldr r0, [sp, #4]
ldr r2, _02185b14 ; =0x00000ccd
str r0, [r4, #0x4c]
ldr r3, [sp, #8]
mov r0, r4
str r3, [r4, #0x50]
str r1, [r4, #0x7c]
str r1, [r4, #0x80]
str r1, [r4, #0x84]
mov r1, #0x18
str r2, [r4, #0x88]
bl func_ov00_020c1fc8
cmp r0, #0
bne _021859d0
mov r1, #0
mov r0, r4
mov r2, r1
bl func_ov00_020c243c
cmp r0, #0
bne _021859d0
ldr r1, [sp, #0x28]
mov r0, r4
str r1, [r4, #0x48]
ldr r1, [sp, #0x2c]
mov r2, #0
str r1, [r4, #0x4c]
ldr r3, [sp, #0x30]
mov r1, #0x1a
str r3, [r4, #0x50]
ldr r3, [sp, #0x18]
str r3, [r4, #0x7c]
ldr r3, [sp, #0x1c]
str r3, [r4, #0x80]
ldr r3, [sp, #0x20]
str r3, [r4, #0x84]
ldr r3, [sp, #0x24]
str r3, [r4, #0x88]
strb r2, [r4, #0x8ad]
bl func_ov00_020c1fc8
mov r1, #0
mov r0, r4
mov r2, r1
bl func_ov00_020c243c
add sp, sp, #0x34
ldmia sp!, {r3, r4, pc}
_02185af4:
mov r1, #0x10
bl func_ov00_020c1fc8
mov r1, #0
mov r0, r4
mov r2, r1
bl func_ov00_020c243c
add sp, sp, #0x34
ldmia sp!, {r3, r4, pc}
.align 2, 0
arm_func_end func_ov36_021858f0
_02185b14: .word 0x00000ccd
arm_func_start func_ov36_02185b18
func_ov36_02185b18: ; 0x02185b18
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #0xc
ldr r1, [r0, #0x4c]
ldr r3, [r0, #0x50]
ldr r2, [r0, #0x48]
add r1, r1, #0xcd
add r1, r1, #0xc00
ldr r4, _02185b78 ; =data_027e0e58
str r2, [sp]
str r1, [sp, #4]
str r3, [sp, #8]
add r7, r0, #0x670
mov r6, #0
add r5, sp, #0
_02185b50:
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 _02185b50
add sp, sp, #0xc
ldmia sp!, {r4, r5, r6, r7, pc}
.align 2, 0
arm_func_end func_ov36_02185b18
_02185b78: .word data_027e0e58
arm_func_start func_ov36_02185b7c
func_ov36_02185b7c: ; 0x02185b7c
stmdb sp!, {r4, lr}
sub sp, sp, #0x20
mov r4, r0
cmp r1, #0
mov r0, #0x1800
beq _02185bac
ldr r2, _02185c74 ; =0xffffe99a
str r0, [sp, #0x1c]
add r1, r2, #0x2000
str r2, [sp, #0x14]
str r1, [sp, #0x18]
b _02185bc0
_02185bac:
ldr r2, _02185c78 ; =0x00001666
str r0, [sp, #0x1c]
rsb r1, r2, #0x2000
str r2, [sp, #0x14]
str r1, [sp, #0x18]
_02185bc0:
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
add r0, r4, #0x78
str r0, [sp]
ldr r1, _02185c7c ; =func_ov36_0217bdb4
ldr r0, _02185c80 ; =data_027e0e58
str r1, [sp, #4]
ldr r0, [r0]
add r2, sp, #0x14
mov r1, #0xb
mov r3, #2
bl func_ov00_0207c1b0
add r0, r4, #0x78
str r0, [sp]
ldr r1, _02185c7c ; =func_ov36_0217bdb4
ldr r0, _02185c80 ; =data_027e0e58
str r1, [sp, #4]
ldr r0, [r0]
mov r1, #0xc
add r2, sp, #0x14
mov r3, #2
bl func_ov00_0207c1b0
add r0, r4, #0x78
str r0, [sp]
ldr r1, _02185c7c ; =func_ov36_0217bdb4
ldr r0, _02185c80 ; =data_027e0e58
str r1, [sp, #4]
ldr r0, [r0]
mov r1, #0xd
add r2, sp, #0x14
mov r3, #2
bl func_ov00_0207c1b0
add sp, sp, #0x20
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov36_02185b7c
_02185c74: .word 0xffffe99a
_02185c78: .word 0x00001666
_02185c7c: .word func_ov36_0217bdb4
_02185c80: .word data_027e0e58
arm_func_start func_ov36_02185c84
func_ov36_02185c84: ; 0x02185c84
stmdb sp!, {r4, lr}
sub sp, sp, #0x68
mov r4, r0
ldr r0, [r4, #0x360]
add r0, r4, r0, lsl #2
ldr r0, [r0, #0x358]
cmp r0, #0
addne sp, sp, #0x68
ldmia sp!, {r4, pc}
ldr r0, [r4, #0x168]
mov r1, #0x3000
add r0, r0, #0xc
bl func_0202e310
cmp r0, #0
beq _02185da4
ldr r2, _02185ea4 ; =0x00001333
ldr r3, _02185ea8 ; =0x00000266
ldr ip, _02185eac ; =0xfffff19a
sub r0, r2, #0x1800
add r1, r3, #0xc00
str r0, [sp, #0x58]
str ip, [sp, #0x5c]
str r3, [sp, #0x60]
str r2, [sp, #0x64]
str r3, [sp, #0x54]
str r1, [sp, #0x50]
ldrsh r1, [r4, #0x78]
add r0, sp, #0x5c
bl func_ov00_020a61ac
ldrsh r1, [r4, #0x78]
add r0, sp, #0x50
bl func_ov00_020a61ac
ldr r1, [r4, #0x48]
add r0, sp, #0x5c
str r1, [sp, #0x2c]
ldr r2, [r4, #0x4c]
add r1, sp, #0x2c
str r2, [sp, #0x30]
ldr r3, [r4, #0x50]
mov r2, r0
str r3, [sp, #0x34]
bl func_01ff9bc4
ldr r1, [r4, #0x48]
add r0, sp, #0x50
str r1, [sp, #0x20]
ldr r2, [r4, #0x4c]
add r1, sp, #0x20
str r2, [sp, #0x24]
ldr r3, [r4, #0x50]
mov r2, r0
str r3, [sp, #0x28]
bl func_01ff9bc4
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
ldr r0, _02185eb0 ; =data_027e0e58
mov r1, #0x10
ldr r0, [r0]
add r2, sp, #0x5c
mov r3, #2
bl func_ov00_0207c1b0
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
ldr r0, _02185eb0 ; =data_027e0e58
mov r1, #0xf
ldr r0, [r0]
add r2, sp, #0x50
mov r3, #2
bl func_ov00_0207c1b0
add sp, sp, #0x68
ldmia sp!, {r4, pc}
_02185da4:
ldr r0, [r4, #0x168]
mov r1, #0x1b000
add r0, r0, #0xc
bl func_0202e310
cmp r0, #0
addeq sp, sp, #0x68
ldmia sp!, {r4, pc}
ldr ip, _02185eb4 ; =0x00000e66
ldr r2, _02185ea4 ; =0x00001333
sub r3, ip, #0xc00
sub r0, r2, #0x1800
rsb r1, ip, #0
str r0, [sp, #0x40]
str ip, [sp, #0x44]
str r3, [sp, #0x48]
str r2, [sp, #0x4c]
str r3, [sp, #0x3c]
str r1, [sp, #0x38]
ldrsh r1, [r4, #0x78]
add r0, sp, #0x44
bl func_ov00_020a61ac
ldrsh r1, [r4, #0x78]
add r0, sp, #0x38
bl func_ov00_020a61ac
ldr r1, [r4, #0x48]
add r0, sp, #0x44
str r1, [sp, #0x14]
ldr r2, [r4, #0x4c]
add r1, sp, #0x14
str r2, [sp, #0x18]
ldr r3, [r4, #0x50]
mov r2, r0
str r3, [sp, #0x1c]
bl func_01ff9bc4
ldr r1, [r4, #0x48]
add r0, sp, #0x38
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, _02185eb0 ; =data_027e0e58
mov r1, #0x10
ldr r0, [r0]
add r2, sp, #0x44
mov r3, #2
bl func_ov00_0207c1b0
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
ldr r0, _02185eb0 ; =data_027e0e58
mov r1, #0xf
ldr r0, [r0]
add r2, sp, #0x38
mov r3, #2
bl func_ov00_0207c1b0
add sp, sp, #0x68
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov36_02185c84
_02185ea4: .word 0x00001333
_02185ea8: .word 0x00000266
_02185eac: .word 0xfffff19a
_02185eb0: .word data_027e0e58
_02185eb4: .word 0x00000e66
arm_func_start func_ov36_02185eb8
func_ov36_02185eb8: ; 0x02185eb8
stmdb sp!, {r3, r4, lr}
sub sp, sp, #0x2c
ldr r3, _02185fac ; =0xfffff19a
ldr r2, _02185fb0 ; =0x00000266
ldr r1, _02185fb4 ; =0x00001333
mov r4, r0
str r3, [sp, #0x20]
str r2, [sp, #0x24]
str r1, [sp, #0x28]
ldrsh r1, [r4, #0x78]
add r0, sp, #0x20
bl func_ov00_020a61ac
ldr r1, [r4, #0x48]
add r0, sp, #0x20
str r1, [sp, #0x14]
ldr r2, [r4, #0x4c]
add r1, sp, #0x14
str r2, [sp, #0x18]
ldr r3, [r4, #0x50]
mov r2, r0
str r3, [sp, #0x1c]
bl func_01ff9bc4
mov r1, #0
str r1, [sp]
str r1, [sp, #4]
ldr r0, _02185fb8 ; =data_027e0e58
add r2, sp, #0x20
ldr r0, [r0]
mov r1, #0x1000
mov r3, #2
bl func_ov00_0207c1b0
ldr r1, _02185fbc ; =0x00000e66
ldr r0, _02185fb4 ; =0x00001333
str r1, [sp, #0x20]
str r0, [sp, #0x28]
sub r0, r1, #0xc00
str r0, [sp, #0x24]
ldrsh r1, [r4, #0x78]
add r0, sp, #0x20
bl func_ov00_020a61ac
ldr r1, [r4, #0x48]
add r0, sp, #0x20
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, _02185fb8 ; =data_027e0e58
mov r1, #0x1000
ldr r0, [r0]
add r2, sp, #0x20
mov r3, #2
bl func_ov00_0207c1b0
add sp, sp, #0x2c
ldmia sp!, {r3, r4, pc}
.align 2, 0
arm_func_end func_ov36_02185eb8
_02185fac: .word 0xfffff19a
_02185fb0: .word 0x00000266
_02185fb4: .word 0x00001333
_02185fb8: .word data_027e0e58
_02185fbc: .word 0x00000e66
arm_func_start func_ov36_02185fc0
func_ov36_02185fc0: ; 0x02185fc0
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_ov36_02185fc0
arm_func_start func_ov36_02185fdc
func_ov36_02185fdc: ; 0x02185fdc
bx lr
arm_func_end func_ov36_02185fdc
arm_func_start func_ov36_02185fe0
func_ov36_02185fe0: ; 0x02185fe0
stmdb sp!, {r4, lr}
mov r4, r0
bl func_ov00_02081f6c
mov r0, r4
bl func_0202ea0c
mov r0, r4
ldmia sp!, {r4, pc}
arm_func_end func_ov36_02185fe0
arm_func_start func_ov36_02185ffc
func_ov36_02185ffc: ; 0x02185ffc
stmdb sp!, {r3, lr}
ldr r1, _02186028 ; =data_027e0fe0
mov r0, #0x180
ldr r1, [r1]
mov r2, #4
ldr r1, [r1]
bl func_0202e9dc
cmp r0, #0
ldmia sp!, {r3, pc}
bl func_ov36_0218602c
ldmia sp!, {r3, pc}
.align 2, 0
arm_func_end func_ov36_02185ffc
_02186028: .word data_027e0fe0
arm_func_start func_ov36_0218602c
func_ov36_0218602c: ; 0x0218602c
stmdb sp!, {r4, lr}
mov r4, r0
bl func_ov00_020c1554
ldr r0, _02186074 ; =data_ov36_02186eec
mov r1, #0
str r0, [r4]
str r1, [r4, #0x158]
sub r0, r1, #1
str r0, [r4, #0x15c]
str r1, [r4, #0x160]
str r1, [r4, #0x164]
str r0, [r4, #0x168]
str r1, [r4, #0x16c]
str r1, [r4, #0x170]
str r0, [r4, #0x174]
mov r0, r4
str r1, [r4, #0x178]
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov36_0218602c
_02186074: .word data_ov36_02186eec
arm_func_start func_ov36_02186078
func_ov36_02186078: ; 0x02186078
stmdb sp!, {r4, lr}
mov r4, r0
add r0, r4, #0x170
bl func_ov00_020b7e6c
add r0, r4, #0x170
bl func_ov00_020b7df0
add r0, r4, #0x164
bl func_ov00_020b7e6c
add r0, r4, #0x164
bl func_ov00_020b7df0
add r0, r4, #0x158
bl func_ov00_020b7e6c
add r0, r4, #0x158
bl func_ov00_020b7df0
mov r0, r4
bl func_ov00_020c1730
mov r0, r4
ldmia sp!, {r4, pc}
arm_func_end func_ov36_02186078
arm_func_start func_ov36_021860c0
func_ov36_021860c0: ; 0x021860c0
stmdb sp!, {r4, lr}
mov r4, r0
add r0, r4, #0x170
bl func_ov00_020b7e6c
add r0, r4, #0x170
bl func_ov00_020b7df0
add r0, r4, #0x164
bl func_ov00_020b7e6c
add r0, r4, #0x164
bl func_ov00_020b7df0
add r0, r4, #0x158
bl func_ov00_020b7e6c
add r0, r4, #0x158
bl func_ov00_020b7df0
mov r0, r4
bl func_ov00_020c1730
mov r0, r4
bl func_0202ea0c
mov r0, r4
ldmia sp!, {r4, pc}
arm_func_end func_ov36_021860c0
arm_func_start func_ov36_02186110
func_ov36_02186110: ; 0x02186110
stmdb sp!, {r4, r5, r6, r7, r8, lr}
mov r5, #0
str r5, [r0, #0x130]
str r5, [r0, #0x138]
ldrh r1, [r0, #0x20]
cmp r1, #0
bne _02186180
ldr r2, _021862a8 ; =0x00001004
mov r3, #2
strb r3, [r0, #0x124]
str r2, [r0, #0x15c]
str r3, [r0, #0x160]
add r1, r2, #1
str r1, [r0, #0x168]
str r3, [r0, #0x16c]
add r1, r2, #2
str r1, [r0, #0x174]
ldr r1, _021862ac ; =data_027e0d0c
str r3, [r0, #0x178]
ldr r3, [r1]
mov r2, #0x800
str r3, [r0, #0x7c]
ldr r3, [r1, #4]
str r3, [r0, #0x80]
ldr r1, [r1, #8]
str r1, [r0, #0x84]
str r2, [r0, #0x88]
b _021861c8
_02186180:
mov r1, #4
ldr r3, _021862b0 ; =0x00001007
strb r1, [r0, #0x124]
str r3, [r0, #0x15c]
mov r4, #2
mov r2, #0x800
str r4, [r0, #0x160]
add r3, r3, #1
str r3, [r0, #0x168]
str r4, [r0, #0x16c]
str r2, [r0, #0x17c]
mov r1, r2, lsl #0xb
str r5, [r0, #0x7c]
add r1, r1, #0x800
str r5, [r0, #0x80]
str r5, [r0, #0x84]
mov r1, r1, asr #0xc
str r1, [r0, #0x88]
_021861c8:
ldr r1, [r0, #0x7c]
mov r2, #2
str r1, [r0, #0x8c]
ldr r1, [r0, #0x80]
mov r3, #0
str r1, [r0, #0x90]
ldr r4, [r0, #0x84]
ldr r1, _021862ac ; =data_027e0d0c
str r4, [r0, #0x94]
ldr r4, [r0, #0x88]
mov r5, #7
str r4, [r0, #0x98]
ldr r6, [r0, #0x88]
ldr r4, [r1]
add r7, r6, #0x1000
str r4, [r0, #0xa8]
ldr r6, [r1, #4]
ldr r4, _021862b4 ; =data_02050f54
str r6, [r0, #0xac]
ldr r6, [r1, #8]
add r1, r2, #0x264
str r6, [r0, #0xb0]
str r7, [r0, #0xb4]
strh r5, [r0, #0x9c]
strb r2, [r0, #0x125]
ldrh r5, [r0, #0x78]
add r2, r2, #0x264
sub ip, r3, #0x3d
mov r5, r5, asr #0x4
mov r7, r5, lsl #0x1
mov r5, r7, lsl #0x1
ldrsh r6, [r4, r5]
add lr, r7, #1
mov lr, lr, lsl #0x1
ldrsh lr, [r4, lr]
umull r8, r7, r6, r1
umull r5, r4, lr, r2
adds r8, r8, #0x800
mla r7, r6, r3, r7
mov r6, r6, asr #0x1f
mla r7, r6, r1, r7
adc r1, r7, #0
mov r6, r8, lsr #0xc
adds r5, r5, #0x800
orr r6, r6, r1, lsl #20
mla r4, lr, r3, r4
mov r1, lr, asr #0x1f
mla r4, r1, r2, r4
adc r1, r4, #0
mov r2, r5, lsr #0xc
str r6, [r0, #0x60]
orr r2, r2, r1, lsl #20
str r2, [r0, #0x68]
str ip, [r0, #0x64]
mov r0, #1
ldmia sp!, {r4, r5, r6, r7, r8, pc}
.align 2, 0
arm_func_end func_ov36_02186110
_021862a8: .word 0x00001004
_021862ac: .word data_027e0d0c
_021862b0: .word 0x00001007
_021862b4: .word data_02050f54
arm_func_start func_ov36_021862b8
func_ov36_021862b8: ; 0x021862b8
stmdb sp!, {r4, r5, lr}
sub sp, sp, #0x14
mov r5, r0
mov r4, r1
bl func_ov00_020c313c
cmp r0, #0
beq _02186620
mov r0, r5
bl func_ov00_020c2bf4
ldr r0, [r5, #0x130]
cmp r0, #0
bne _021864cc
add r0, r5, #0x48
add r1, r5, #0x60
mov r2, r0
bl func_01ff9bc4
ldrh r0, [r5, #0x20]
cmp r0, #0
beq _0218633c
ldr r0, [r5, #0x17c]
cmp r0, #0x1000
bge _02186324
add r0, r0, #0x33
str r0, [r5, #0x17c]
cmp r0, #0x1000
movgt r0, #0x1000
strgt r0, [r5, #0x17c]
_02186324:
ldr r0, [r5, #0x17c]
mov r0, r0, lsl #0xb
add r0, r0, #0x800
mov r0, r0, asr #0xc
str r0, [r5, #0x98]
str r0, [r5, #0x88]
_0218633c:
ldrb r0, [r5, #0xa4]
cmp r0, #0
ldreqb r0, [r5, #0xa5]
cmpeq r0, #0
beq _02186470
ldrh r0, [r5, #0x20]
cmp r0, #0
beq _02186430
add r0, r5, #0x48
add r3, sp, #8
ldmia r0!, {r0, r1, r2}
stmia r3!, {r0, r1, r2}
ldr r0, [r5, #0x17c]
mov r1, #0x800
sub r0, r0, #0x800
bl func_01ff98e0
mov r1, r0, asr #0x1f
mov r2, r1, lsl #0xb
mov r1, #0x800
adds r3, r1, r0, lsl #11
orr r2, r2, r0, lsr #21
ldr r0, _02186638 ; =data_027e0e58
adc r1, r2, #0
mov r2, r3, lsr #0xc
orr r2, r2, r1, lsl #20
ldr r3, [sp, #0xc]
ldr r0, [r0]
add r3, r3, r2
add r2, sp, #8
add r1, r5, #0x158
str r3, [sp, #0xc]
bl func_ov00_0207c474
ldr r0, _02186638 ; =data_027e0e58
add r1, r5, #0x164
ldr r0, [r0]
add r2, sp, #8
bl func_ov00_0207c474
ldr r0, [r5, #0x17c]
ldr r1, [r5, #0x158]
mov r0, r0, lsl #0x10
mov r0, r0, asr #0x10
cmp r1, #0
strne r0, [r1, #0x70]
ldr r0, [r5, #0x17c]
ldr r1, [r5, #0x164]
mov r0, r0, lsl #0x10
mov r0, r0, asr #0x10
cmp r1, #0
strne r0, [r1, #0x70]
ldr r1, [r5, #0x164]
ldr r2, [r5, #0x17c]
ldr r0, _0218663c ; =0x00000333
cmp r1, #0
mul r0, r2, r0
add r0, r0, #0x800
mov r0, r0, asr #0xc
beq _02186488
mov r0, r0, lsl #0x10
mov r0, r0, asr #0x10
str r0, [r1, #0x6c]
b _02186488
_02186430:
ldr r0, _02186638 ; =data_027e0e58
add r1, r5, #0x158
ldr r0, [r0]
add r2, r5, #0x48
bl func_ov00_0207c474
ldr r0, _02186638 ; =data_027e0e58
add r1, r5, #0x164
ldr r0, [r0]
add r2, r5, #0x48
bl func_ov00_0207c474
ldr r0, _02186638 ; =data_027e0e58
add r1, r5, #0x170
ldr r0, [r0]
add r2, r5, #0x48
bl func_ov00_0207c474
b _02186488
_02186470:
add r0, r5, #0x158
bl func_ov00_020b7e6c
add r0, r5, #0x164
bl func_ov00_020b7e6c
add r0, r5, #0x170
bl func_ov00_020b7e6c
_02186488:
mov r0, r5
mov r1, #0
bl func_01fffd04
ldrb r0, [r5, #0x111]
cmp r0, #0
ldreqb r0, [r5, #0x110]
cmpeq r0, #0
ldreqb r0, [r5, #0x112]
cmpeq r0, #0
ldreqb r0, [r5, #0x113]
cmpeq r0, #0
beq _021865f4
mov r0, #1
str r0, [r5, #0x130]
mov r0, #0
str r0, [r5, #0x138]
b _021865f4
_021864cc:
ldrb r0, [r5, #0xa4]
cmp r0, #0
ldreqb r0, [r5, #0xa5]
cmpeq r0, #0
beq _0218658c
ldr r0, _02186638 ; =data_027e0e58
add r1, r5, #0x158
ldr r0, [r0]
add r2, r5, #0x48
bl func_ov00_0207c474
ldr r0, _02186638 ; =data_027e0e58
add r1, r5, #0x164
ldr r0, [r0]
add r2, r5, #0x48
bl func_ov00_0207c474
ldrh r0, [r5, #0x20]
cmp r0, #0
beq _02186574
ldr r0, [r5, #0x17c]
ldr r1, [r5, #0x158]
mov r0, r0, lsl #0x10
mov r0, r0, asr #0x10
cmp r1, #0
strne r0, [r1, #0x70]
ldr r0, [r5, #0x17c]
ldr r1, [r5, #0x164]
mov r0, r0, lsl #0x10
mov r0, r0, asr #0x10
cmp r1, #0
strne r0, [r1, #0x70]
ldr r2, [r5, #0x17c]
ldr r0, _0218663c ; =0x00000333
ldr r1, [r5, #0x164]
mul r0, r2, r0
add r0, r0, #0x800
cmp r1, #0
mov r0, r0, asr #0xc
beq _021865a4
mov r0, r0, lsl #0x10
mov r0, r0, asr #0x10
str r0, [r1, #0x6c]
b _021865a4
_02186574:
ldr r0, _02186638 ; =data_027e0e58
add r1, r5, #0x170
ldr r0, [r0]
add r2, r5, #0x48
bl func_ov00_0207c474
b _021865a4
_0218658c:
add r0, r5, #0x158
bl func_ov00_020b7e6c
add r0, r5, #0x164
bl func_ov00_020b7e6c
add r0, r5, #0x170
bl func_ov00_020b7e6c
_021865a4:
ldr r0, [r5, #0x138]
cmp r0, #0xf
ble _021865f4
add r0, r5, #0x158
bl func_ov00_020b7e6c
add r0, r5, #0x164
bl func_ov00_020b7e6c
add r0, r5, #0x170
bl func_ov00_020b7e6c
ldr r0, _02186640 ; =data_027e0fe4
add r1, r5, #0x34
ldr r0, [r0]
bl func_ov00_020c3674
cmp r0, #0
beq _021865e4
bl func_ov36_02185410
_021865e4:
mov r0, #0
add sp, sp, #0x14
strb r0, [r5, #0x118]
ldmia sp!, {r4, r5, pc}
_021865f4:
mov r0, r5
mov r1, #1
mov r2, #0
bl func_ov00_020c1e2c
add r0, sp, #0
mov r1, r5
bl func_ov00_020c23c4
ldr r1, _02186644 ; =data_ov36_02186ba8
mov r0, r5
mov r2, #0
bl func_ov00_020c243c
_02186620:
mov r1, r4
add r0, r5, #0xa4
add r2, r5, #0x48
bl func_ov00_0207a1c8
add sp, sp, #0x14
ldmia sp!, {r4, r5, pc}
.align 2, 0
arm_func_end func_ov36_021862b8
_02186638: .word data_027e0e58
_0218663c: .word 0x00000333
_02186640: .word data_027e0fe4
_02186644: .word data_ov36_02186ba8
arm_func_start func_ov36_02186648
func_ov36_02186648: ; 0x02186648
stmdb sp!, {r3, lr}
ldr r0, [r1, #0x14]
cmp r0, #0
beq _02186688
ldr r2, [r0, #4]
ldr r1, _02186690 ; =0x424f4d42
cmp r2, r1
bne _02186670
bl func_ov14_02122e98
b _02186680
_02186670:
ldr r1, _02186694 ; =0x424d5459
cmp r2, r1
moveq r1, #1
streqb r1, [r0, #0x180]
_02186680:
mov r0, #1
ldmia sp!, {r3, pc}
_02186688:
mov r0, #0
ldmia sp!, {r3, pc}
.align 2, 0
arm_func_end func_ov36_02186648
_02186690: .word 0x424f4d42
_02186694: .word 0x424d5459
data_ov36_02186698: ; 0x02186698
.byte 0x7c, 0xdd, 0x17, 0x02
data_ov36_0218669c: ; 0x0218669c
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_021866a0: ; 0x021866a0
.byte 0x00, 0xde, 0x17, 0x02
data_ov36_021866a4: ; 0x021866a4
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_021866a8: ; 0x021866a8
.byte 0xe0, 0xe3, 0x17, 0x02
data_ov36_021866ac: ; 0x021866ac
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_021866b0: ; 0x021866b0
.byte 0xb8, 0xe6, 0x17, 0x02
data_ov36_021866b4: ; 0x021866b4
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_021866b8: ; 0x021866b8
.byte 0xa4, 0xe7, 0x17, 0x02
data_ov36_021866bc: ; 0x021866bc
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_021866c0: ; 0x021866c0
.byte 0x58, 0xeb, 0x17, 0x02
data_ov36_021866c4: ; 0x021866c4
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_021866c8: ; 0x021866c8
.byte 0x50, 0xed, 0x17, 0x02
data_ov36_021866cc: ; 0x021866cc
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_021866d0: ; 0x021866d0
.byte 0x7c, 0xef, 0x17, 0x02
data_ov36_021866d4: ; 0x021866d4
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_021866d8: ; 0x021866d8
.byte 0xc0, 0xf0, 0x17, 0x02
data_ov36_021866dc: ; 0x021866dc
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_021866e0: ; 0x021866e0
.byte 0x78, 0xf1, 0x17, 0x02
data_ov36_021866e4: ; 0x021866e4
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_021866e8: ; 0x021866e8
.byte 0x9c, 0xf4, 0x17, 0x02
data_ov36_021866ec: ; 0x021866ec
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_021866f0: ; 0x021866f0
.byte 0x98, 0xf9, 0x17, 0x02
data_ov36_021866f4: ; 0x021866f4
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_021866f8: ; 0x021866f8
.byte 0xf0, 0xfd, 0x17, 0x02
data_ov36_021866fc: ; 0x021866fc
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186700: ; 0x02186700
.byte 0xdc, 0xff, 0x17, 0x02
data_ov36_02186704: ; 0x02186704
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186708: ; 0x02186708
.byte 0x1c, 0x01, 0x18, 0x02
data_ov36_0218670c: ; 0x0218670c
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186710: ; 0x02186710
.byte 0xc8, 0x01, 0x18, 0x02
data_ov36_02186714: ; 0x02186714
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186718: ; 0x02186718
.byte 0x70, 0x05, 0x18, 0x02
data_ov36_0218671c: ; 0x0218671c
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186720: ; 0x02186720
.byte 0x58, 0x06, 0x18, 0x02
data_ov36_02186724: ; 0x02186724
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186728: ; 0x02186728
.byte 0x64, 0x06, 0x18, 0x02
data_ov36_0218672c: ; 0x0218672c
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186730: ; 0x02186730
.byte 0x1c, 0x0d, 0x18, 0x02
data_ov36_02186734: ; 0x02186734
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186738: ; 0x02186738
.byte 0x34, 0x10, 0x18, 0x02
data_ov36_0218673c: ; 0x0218673c
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186740: ; 0x02186740
.byte 0x6c, 0x15, 0x18, 0x02
data_ov36_02186744: ; 0x02186744
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186748: ; 0x02186748
.byte 0xb4, 0x18, 0x18, 0x02
data_ov36_0218674c: ; 0x0218674c
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186750: ; 0x02186750
.byte 0x3c, 0x1f, 0x18, 0x02
data_ov36_02186754: ; 0x02186754
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186758: ; 0x02186758
.byte 0x90, 0x29, 0x18, 0x02
data_ov36_0218675c: ; 0x0218675c
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186760: ; 0x02186760
.byte 0x10, 0x2e, 0x18, 0x02
data_ov36_02186764: ; 0x02186764
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186768: ; 0x02186768
.byte 0x98, 0xdd, 0x17, 0x02
data_ov36_0218676c: ; 0x0218676c
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186770: ; 0x02186770
.byte 0xcc, 0xde, 0x17, 0x02
data_ov36_02186774: ; 0x02186774
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186778: ; 0x02186778
.byte 0xf4, 0xe4, 0x17, 0x02
data_ov36_0218677c: ; 0x0218677c
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186780: ; 0x02186780
.byte 0x4c, 0xe7, 0x17, 0x02
data_ov36_02186784: ; 0x02186784
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186788: ; 0x02186788
.byte 0x18, 0xe8, 0x17, 0x02
data_ov36_0218678c: ; 0x0218678c
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186790: ; 0x02186790
.byte 0xe8, 0xec, 0x17, 0x02
data_ov36_02186794: ; 0x02186794
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186798: ; 0x02186798
.byte 0x10, 0xef, 0x17, 0x02
data_ov36_0218679c: ; 0x0218679c
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_021867a0: ; 0x021867a0
.byte 0xc0, 0xef, 0x17, 0x02
data_ov36_021867a4: ; 0x021867a4
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_021867a8: ; 0x021867a8
.byte 0x0c, 0xf1, 0x17, 0x02
data_ov36_021867ac: ; 0x021867ac
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_021867b0: ; 0x021867b0
.byte 0x1c, 0xf2, 0x17, 0x02
data_ov36_021867b4: ; 0x021867b4
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_021867b8: ; 0x021867b8
.byte 0xf4, 0xf4, 0x17, 0x02
data_ov36_021867bc: ; 0x021867bc
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_021867c0: ; 0x021867c0
.byte 0xf0, 0xf9, 0x17, 0x02
data_ov36_021867c4: ; 0x021867c4
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_021867c8: ; 0x021867c8
.byte 0x3c, 0xfe, 0x17, 0x02
data_ov36_021867cc: ; 0x021867cc
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_021867d0: ; 0x021867d0
.byte 0x6c, 0x00, 0x18, 0x02
data_ov36_021867d4: ; 0x021867d4
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_021867d8: ; 0x021867d8
.byte 0x68, 0x01, 0x18, 0x02
data_ov36_021867dc: ; 0x021867dc
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_021867e0: ; 0x021867e0
.byte 0xa8, 0x04, 0x18, 0x02
data_ov36_021867e4: ; 0x021867e4
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_021867e8: ; 0x021867e8
.byte 0xcc, 0x05, 0x18, 0x02
data_ov36_021867ec: ; 0x021867ec
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_021867f0: ; 0x021867f0
.byte 0x60, 0x06, 0x18, 0x02
data_ov36_021867f4: ; 0x021867f4
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_021867f8: ; 0x021867f8
.byte 0xb0, 0x09, 0x18, 0x02
data_ov36_021867fc: ; 0x021867fc
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186800: ; 0x02186800
.byte 0x24, 0x0e, 0x18, 0x02
data_ov36_02186804: ; 0x02186804
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186808: ; 0x02186808
.byte 0x8c, 0x10, 0x18, 0x02
data_ov36_0218680c: ; 0x0218680c
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186810: ; 0x02186810
.byte 0x90, 0x17, 0x18, 0x02
data_ov36_02186814: ; 0x02186814
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186818: ; 0x02186818
.byte 0xa8, 0x1b, 0x18, 0x02
data_ov36_0218681c: ; 0x0218681c
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186820: ; 0x02186820
.byte 0xd0, 0x1f, 0x18, 0x02
data_ov36_02186824: ; 0x02186824
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186828: ; 0x02186828
.byte 0x88, 0x2c, 0x18, 0x02
data_ov36_0218682c: ; 0x0218682c
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186830: ; 0x02186830
.byte 0x88, 0x2f, 0x18, 0x02
data_ov36_02186834: ; 0x02186834
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186838: ; 0x02186838
.byte 0xa4, 0x01
data_ov36_0218683a: ; 0x0218683a
.byte 0x68, 0x01
data_ov36_0218683c: ; 0x0218683c
.byte 0x2c, 0x01
data_ov36_0218683e: ; 0x0218683e
.byte 0x0b, 0x10
data_ov36_02186840: ; 0x02186840
.byte 0x0c, 0x10
data_ov36_02186842: ; 0x02186842
.byte 0x0d, 0x10
data_ov36_02186844: ; 0x02186844
.byte 0x14, 0x10
data_ov36_02186846: ; 0x02186846
.byte 0x00, 0x00
data_ov36_02186848: ; 0x02186848
.byte 0x77, 0x61, 0x6c, 0x6b, 0x00, 0x00, 0x00, 0x00
data_ov36_02186850: ; 0x02186850
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186854: ; 0x02186854
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186858: ; 0x02186858
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_0218685c: ; 0x0218685c
.asciz "wait"
_02186861:
.byte 0x00, 0x00, 0x00
data_ov36_02186864: ; 0x02186864
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186868: ; 0x02186868
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_0218686c: ; 0x0218686c
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186870: ; 0x02186870
.asciz "stagger"
data_ov36_02186878: ; 0x02186878
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_0218687c: ; 0x0218687c
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186880: ; 0x02186880
.byte 0x01, 0x00, 0x00, 0x00
data_ov36_02186884: ; 0x02186884
.asciz "stagger_L"
_0218688e:
.byte 0x00, 0x00
data_ov36_02186890: ; 0x02186890
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186894: ; 0x02186894
.byte 0x01, 0x00, 0x00, 0x00
data_ov36_02186898: ; 0x02186898
.asciz "stagger_d"
_021868a2:
.byte 0x00, 0x00
data_ov36_021868a4: ; 0x021868a4
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_021868a8: ; 0x021868a8
.byte 0x01, 0x00, 0x00, 0x00
data_ov36_021868ac: ; 0x021868ac
.asciz "stagger_d_L"
data_ov36_021868b8: ; 0x021868b8
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_021868bc: ; 0x021868bc
.byte 0x01, 0x00, 0x00, 0x00
data_ov36_021868c0: ; 0x021868c0
.asciz "stagger_wait"
_021868cd:
.byte 0x00, 0x00, 0x00
data_ov36_021868d0: ; 0x021868d0
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_021868d4: ; 0x021868d4
.asciz "stagger_wait_L"
_021868e3:
.byte 0x00
data_ov36_021868e4: ; 0x021868e4
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_021868e8: ; 0x021868e8
.asciz "stagger_ed"
_021868f3:
.byte 0x00
data_ov36_021868f4: ; 0x021868f4
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_021868f8: ; 0x021868f8
.byte 0x01, 0x00, 0x00, 0x00
data_ov36_021868fc: ; 0x021868fc
.asciz "stagger_ed_L"
_02186909:
.byte 0x00, 0x00, 0x00
data_ov36_0218690c: ; 0x0218690c
.byte 0x01, 0x00, 0x00, 0x00
data_ov36_02186910: ; 0x02186910
.asciz "fall"
_02186915:
.byte 0x00, 0x00, 0x00
data_ov36_02186918: ; 0x02186918
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_0218691c: ; 0x0218691c
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186920: ; 0x02186920
.byte 0x01, 0x00, 0x00, 0x00
data_ov36_02186924: ; 0x02186924
.asciz "fall_L"
_0218692b:
.byte 0x00
data_ov36_0218692c: ; 0x0218692c
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186930: ; 0x02186930
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186934: ; 0x02186934
.byte 0x01, 0x00, 0x00, 0x00
data_ov36_02186938: ; 0x02186938
.asciz "fall_wait"
_02186942:
.byte 0x00, 0x00
data_ov36_02186944: ; 0x02186944
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186948: ; 0x02186948
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_0218694c: ; 0x0218694c
.asciz "fall_wait_L"
data_ov36_02186958: ; 0x02186958
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_0218695c: ; 0x0218695c
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186960: ; 0x02186960
.asciz "damage"
_02186967:
.byte 0x00
data_ov36_02186968: ; 0x02186968
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_0218696c: ; 0x0218696c
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186970: ; 0x02186970
.byte 0x01, 0x00, 0x00, 0x00
data_ov36_02186974: ; 0x02186974
.asciz "damage_L"
_0218697d:
.byte 0x00, 0x00, 0x00
data_ov36_02186980: ; 0x02186980
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186984: ; 0x02186984
.byte 0x01, 0x00, 0x00, 0x00
data_ov36_02186988: ; 0x02186988
.asciz "return"
_0218698f:
.byte 0x00
data_ov36_02186990: ; 0x02186990
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186994: ; 0x02186994
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186998: ; 0x02186998
.byte 0x01, 0x00, 0x00, 0x00
data_ov36_0218699c: ; 0x0218699c
.asciz "return_L"
_021869a5:
.byte 0x00, 0x00, 0x00
data_ov36_021869a8: ; 0x021869a8
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_021869ac: ; 0x021869ac
.byte 0x01, 0x00, 0x00, 0x00
data_ov36_021869b0: ; 0x021869b0
.asciz "return2"
data_ov36_021869b8: ; 0x021869b8
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_021869bc: ; 0x021869bc
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_021869c0: ; 0x021869c0
.byte 0x01, 0x00, 0x00, 0x00
data_ov36_021869c4: ; 0x021869c4
.asciz "fire"
_021869c9:
.byte 0x00, 0x00, 0x00
data_ov36_021869cc: ; 0x021869cc
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_021869d0: ; 0x021869d0
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_021869d4: ; 0x021869d4
.byte 0x01, 0x00, 0x00, 0x00
data_ov36_021869d8: ; 0x021869d8
.asciz "protect"
data_ov36_021869e0: ; 0x021869e0
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_021869e4: ; 0x021869e4
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_021869e8: ; 0x021869e8
.byte 0x01, 0x00, 0x00, 0x00
data_ov36_021869ec: ; 0x021869ec
.asciz "blazing"
data_ov36_021869f4: ; 0x021869f4
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_021869f8: ; 0x021869f8
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_021869fc: ; 0x021869fc
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186a00: ; 0x02186a00
.asciz "stepping"
_02186a09:
.byte 0x00, 0x00, 0x00
data_ov36_02186a0c: ; 0x02186a0c
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186a10: ; 0x02186a10
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186a14: ; 0x02186a14
.asciz "seek"
_02186a19:
.byte 0x00, 0x00, 0x00
data_ov36_02186a1c: ; 0x02186a1c
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186a20: ; 0x02186a20
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186a24: ; 0x02186a24
.byte 0x01, 0x00, 0x00, 0x00
data_ov36_02186a28: ; 0x02186a28
.asciz "roar"
_02186a2d:
.byte 0x00, 0x00, 0x00
data_ov36_02186a30: ; 0x02186a30
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186a34: ; 0x02186a34
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186a38: ; 0x02186a38
.byte 0x01, 0x00, 0x00, 0x00
data_ov36_02186a3c: ; 0x02186a3c
.asciz "dead"
_02186a41:
.byte 0x00, 0x00, 0x00
data_ov36_02186a44: ; 0x02186a44
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186a48: ; 0x02186a48
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186a4c: ; 0x02186a4c
.byte 0x01, 0x00, 0x00, 0x00
data_ov36_02186a50: ; 0x02186a50
.asciz "dead_L"
_02186a57:
.byte 0x00
data_ov36_02186a58: ; 0x02186a58
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186a5c: ; 0x02186a5c
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186a60: ; 0x02186a60
.byte 0x01, 0x00, 0x00, 0x00
data_ov36_02186a64: ; 0x02186a64
.asciz "damage2"
data_ov36_02186a6c: ; 0x02186a6c
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186a70: ; 0x02186a70
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186a74: ; 0x02186a74
.byte 0x01, 0x00, 0x00, 0x00
data_ov36_02186a78: ; 0x02186a78
.asciz "dead2"
_02186a7e:
.byte 0x00, 0x00
data_ov36_02186a80: ; 0x02186a80
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186a84: ; 0x02186a84
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186a88: ; 0x02186a88
.byte 0x01, 0x00, 0x00, 0x00
data_ov36_02186a8c: ; 0x02186a8c
.asciz "down"
_02186a91:
.byte 0x00, 0x00, 0x00
data_ov36_02186a94: ; 0x02186a94
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186a98: ; 0x02186a98
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186a9c: ; 0x02186a9c
.byte 0x01, 0x00, 0x00, 0x00
data_ov36_02186aa0: ; 0x02186aa0
.asciz "inhale"
_02186aa7:
.byte 0x00
data_ov36_02186aa8: ; 0x02186aa8
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186aac: ; 0x02186aac
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186ab0: ; 0x02186ab0
.byte 0x01, 0x00, 0x00, 0x00
data_ov36_02186ab4: ; 0x02186ab4
.asciz "revive"
_02186abb:
.byte 0x00
data_ov36_02186abc: ; 0x02186abc
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186ac0: ; 0x02186ac0
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186ac4: ; 0x02186ac4
.byte 0x01, 0x00, 0x00, 0x00
data_ov36_02186ac8: ; 0x02186ac8
.asciz "appear"
_02186acf:
.byte 0x00
data_ov36_02186ad0: ; 0x02186ad0
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186ad4: ; 0x02186ad4
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186ad8: ; 0x02186ad8
.byte 0x01, 0x00, 0x00, 0x00
data_ov36_02186adc: ; 0x02186adc
.byte 0x61, 0x70, 0x70, 0x65
.byte 0x61, 0x72, 0x00, 0x00
data_ov36_02186ae4: ; 0x02186ae4
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186ae8: ; 0x02186ae8
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186aec: ; 0x02186aec
.byte 0x01, 0x00, 0x00, 0x00
data_ov36_02186af0: ; 0x02186af0
.asciz "wait"
_02186af5:
.byte 0x00, 0x00, 0x00
data_ov36_02186af8: ; 0x02186af8
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186afc: ; 0x02186afc
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186b00: ; 0x02186b00
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186b04: ; 0x02186b04
.byte 0x69, 0x6e, 0x68, 0x61, 0x6c, 0x65, 0x5f, 0x77, 0x62, 0x6f, 0x73, 0x73
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186b14: ; 0x02186b14
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186b18: ; 0x02186b18
.byte 0x00, 0x70, 0x03, 0x00
data_ov36_02186b1c: ; 0x02186b1c
.byte 0x69, 0x6e, 0x68, 0x61
.byte 0x6c, 0x65, 0x5f, 0x74, 0x65, 0x78, 0x30, 0x31, 0x00, 0x00, 0x00, 0x00
data_ov36_02186b2c: ; 0x02186b2c
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186b30: ; 0x02186b30
.byte 0x69, 0x6e, 0x68, 0x61, 0x6c, 0x65, 0x5f, 0x74, 0x65, 0x78, 0x30, 0x32, 0x00, 0x00, 0x00, 0x00
data_ov36_02186b40: ; 0x02186b40
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186b44: ; 0x02186b44
.byte 0x63, 0x68, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00
data_ov36_02186b4c: ; 0x02186b4c
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186b50: ; 0x02186b50
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186b54: ; 0x02186b54
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186b58: ; 0x02186b58
.byte 0x74, 0x61, 0x69, 0x6c, 0x00, 0x00, 0x00, 0x00
data_ov36_02186b60: ; 0x02186b60
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186b64: ; 0x02186b64
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186b68: ; 0x02186b68
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186b6c: ; 0x02186b6c
.byte 0x63, 0x68, 0x65, 0x73
.byte 0x74, 0x00, 0x00, 0x00
data_ov36_02186b74: ; 0x02186b74
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186b78: ; 0x02186b78
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186b7c: ; 0x02186b7c
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186b80: ; 0x02186b80
.byte 0x73, 0x6b, 0x6c, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x00, 0x00, 0x00, 0x00
data_ov36_02186b8c: ; 0x02186b8c
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186b90: ; 0x02186b90
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186b94: ; 0x02186b94
.byte 0x6d, 0x74, 0x5f, 0x62, 0x70, 0x5f, 0x6a, 0x77, 0x6c, 0x32, 0x00, 0x00
data_ov36_02186ba0: ; 0x02186ba0
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186ba4: ; 0x02186ba4
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186ba8: ; 0x02186ba8
.byte 0x42, 0x4d, 0x4f, 0x42
data_ov36_02186bac: ; 0x02186bac
.asciz "YTMBLLUN@- "
_02186bba:
.byte 0x9f, 0xe5, 0x20, 0x10, 0x9f, 0xe5
.byte 0x20, 0x20, 0x9f, 0xe5, 0x00, 0x30, 0xa0, 0xe3, 0xed, 0xde, 0xfa, 0xeb, 0x0c, 0x00, 0x9f, 0xe5
.byte 0x14, 0x10, 0x9f, 0xe5, 0x14, 0x20, 0x9f, 0xe5, 0x3d, 0x23, 0xfb, 0xeb, 0x08, 0x80, 0xbd, 0xe8
_02186be0: .word data_ov36_02186fac
_02186be4: .word 0x50574253
_02186be8: .word func_ov36_0217bd80
_02186bec: .word func_0203e7b4
_02186bf0: .word data_ov36_02186fa0
arm_func_start func_ov36_02186bf4
func_ov36_02186bf4: ; 0x02186bf4
stmdb sp!, {r3, lr}
ldr r0, _02186c20 ; =data_ov36_02186fcc
ldr r1, _02186c24 ; =0x50424652
ldr r2, _02186c28 ; =func_ov36_02185ffc
mov r3, #0
bl func_0203e784
ldr r0, _02186c20 ; =data_ov36_02186fcc
ldr r1, _02186c2c ; =func_0203e7b4
ldr r2, _02186c30 ; =data_ov36_02186fc0
bl func_0204f8d4
ldmia sp!, {r3, pc}
.align 2, 0
arm_func_end func_ov36_02186bf4
_02186c20: .word data_ov36_02186fcc
_02186c24: .word 0x50424652
_02186c28: .word func_ov36_02185ffc
_02186c2c: .word func_0203e7b4
_02186c30: .word data_ov36_02186fc0
data_ov36_02186c34: ; 0x02186c34
.byte 0xb4, 0x6b, 0x18, 0x02
data_ov36_02186c38: ; 0x02186c38
.byte 0xf4, 0x6b, 0x18, 0x02
data_ov36_02186c3c: ; 0x02186c3c
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186c40: ; 0x02186c40
.byte 0x62, 0x72, 0x67, 0x00
data_ov36_02186c44: ; 0x02186c44
.byte 0x66, 0x6e, 0x6c, 0x00
data_ov36_02186c48: ; 0x02186c48
.byte 0x70, 0x64, 0x6c, 0x00
data_ov36_02186c4c: ; 0x02186c4c
.byte 0x64, 0x63, 0x6f, 0x00
data_ov36_02186c50: ; 0x02186c50
.byte 0x63, 0x61, 0x6e, 0x00
data_ov36_02186c54: ; 0x02186c54
.byte 0x68, 0x75, 0x6c, 0x00
data_ov36_02186c58: ; 0x02186c58
.byte 0x62, 0x6f, 0x77, 0x00
data_ov36_02186c5c: ; 0x02186c5c
.byte 0x61, 0x6e, 0x63, 0x00
data_ov36_02186c60: ; 0x02186c60
.byte 0x5c, 0x6c, 0x18, 0x02
data_ov36_02186c64: ; 0x02186c64
.byte 0x58, 0x6c, 0x18, 0x02
data_ov36_02186c68: ; 0x02186c68
.byte 0x54, 0x6c, 0x18, 0x02
data_ov36_02186c6c: ; 0x02186c6c
.byte 0x50, 0x6c, 0x18, 0x02
data_ov36_02186c70: ; 0x02186c70
.byte 0x4c, 0x6c, 0x18, 0x02
data_ov36_02186c74: ; 0x02186c74
.byte 0x48, 0x6c, 0x18, 0x02
data_ov36_02186c78: ; 0x02186c78
.byte 0x44, 0x6c, 0x18, 0x02
data_ov36_02186c7c: ; 0x02186c7c
.byte 0x40, 0x6c, 0x18, 0x02
data_ov36_02186c80: ; 0x02186c80
.byte 0x00, 0x10, 0x00, 0x00
data_ov36_02186c84: ; 0x02186c84
.byte 0x00, 0x10, 0x00, 0x00
data_ov36_02186c88: ; 0x02186c88
.byte 0x00, 0x10, 0x00, 0x00
data_ov36_02186c8c: ; 0x02186c8c
.byte 0x00, 0x10, 0x00, 0x00
data_ov36_02186c90: ; 0x02186c90
.byte 0x00, 0x10, 0x00, 0x00
data_ov36_02186c94: ; 0x02186c94
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186c98: ; 0x02186c98
.byte 0x00, 0x10, 0x00, 0x00
data_ov36_02186c9c: ; 0x02186c9c
.byte 0x00, 0x10, 0x00, 0x00
data_ov36_02186ca0: ; 0x02186ca0
.byte 0x00, 0x10, 0x00, 0x00
data_ov36_02186ca4: ; 0x02186ca4
.byte 0x00, 0x10, 0x00, 0x00
data_ov36_02186ca8: ; 0x02186ca8
.byte 0x00, 0x10, 0x00, 0x00
data_ov36_02186cac: ; 0x02186cac
.byte 0x00, 0x10, 0x00, 0x00
data_ov36_02186cb0: ; 0x02186cb0
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186cb4: ; 0x02186cb4
.byte 0x00, 0x10, 0x00, 0x00
data_ov36_02186cb8: ; 0x02186cb8
.byte 0x00, 0x10, 0x00, 0x00
data_ov36_02186cbc: ; 0x02186cbc
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186cc0: ; 0x02186cc0
.byte 0x00, 0x10, 0x00, 0x00
data_ov36_02186cc4: ; 0x02186cc4
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186cc8: ; 0x02186cc8
.byte 0x00, 0x50, 0x00, 0x00
data_ov36_02186ccc: ; 0x02186ccc
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186cd0: ; 0x02186cd0
.byte 0x00, 0x10, 0x00, 0x00
data_ov36_02186cd4: ; 0x02186cd4
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186cd8: ; 0x02186cd8
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186cdc: ; 0x02186cdc
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186ce0: ; 0x02186ce0
.byte 0x00, 0x10, 0x00, 0x00
data_ov36_02186ce4: ; 0x02186ce4
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186ce8: ; 0x02186ce8
.byte 0x00, 0x10, 0x00, 0x00
data_ov36_02186cec: ; 0x02186cec
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186cf0: ; 0x02186cf0
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186cf4: ; 0x02186cf4
.byte 0x10, 0x49, 0x18, 0x02
data_ov36_02186cf8: ; 0x02186cf8
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186cfc: ; 0x02186cfc
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186d00: ; 0x02186d00
.byte 0x14, 0xf4, 0x17, 0x02
data_ov36_02186d04: ; 0x02186d04
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186d08: ; 0x02186d08
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186d0c: ; 0x02186d0c
.byte 0x60, 0xc1, 0x17, 0x02
data_ov36_02186d10: ; 0x02186d10
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186d14: ; 0x02186d14
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186d18: ; 0x02186d18
.byte 0x44, 0xd0, 0x17, 0x02
data_ov36_02186d1c: ; 0x02186d1c
.byte 0x68, 0xd1, 0x17, 0x02
data_ov36_02186d20: ; 0x02186d20
.byte 0xa0, 0xd2, 0x17, 0x02
data_ov36_02186d24: ; 0x02186d24
.byte 0x3c, 0x17, 0x0c, 0x02
data_ov36_02186d28: ; 0x02186d28
.byte 0x40, 0x17, 0x0c, 0x02
data_ov36_02186d2c: ; 0x02186d2c
.byte 0xd4, 0xd7, 0x17, 0x02
data_ov36_02186d30: ; 0x02186d30
.byte 0x10, 0xd8, 0x17, 0x02
data_ov36_02186d34: ; 0x02186d34
.byte 0x2c, 0x44, 0x18, 0x02
data_ov36_02186d38: ; 0x02186d38
.byte 0x24, 0x46, 0x18, 0x02
data_ov36_02186d3c: ; 0x02186d3c
.byte 0x44, 0x17, 0x0c, 0x02
data_ov36_02186d40: ; 0x02186d40
.byte 0x48, 0x17, 0x0c, 0x02
data_ov36_02186d44: ; 0x02186d44
.byte 0xa8, 0x17, 0x0c, 0x02
data_ov36_02186d48: ; 0x02186d48
.byte 0xb0, 0x17, 0x0c, 0x02
data_ov36_02186d4c: ; 0x02186d4c
.byte 0x4c, 0x17, 0x0c, 0x02
data_ov36_02186d50: ; 0x02186d50
.byte 0x7c, 0x17, 0x0c, 0x02
data_ov36_02186d54: ; 0x02186d54
.byte 0xe4, 0x27, 0x0c, 0x02
data_ov36_02186d58: ; 0x02186d58
.byte 0x04, 0x30, 0x0c, 0x02
data_ov36_02186d5c: ; 0x02186d5c
.byte 0x44, 0x27, 0x0c, 0x02
data_ov36_02186d60: ; 0x02186d60
.byte 0x7c, 0x3b, 0x18, 0x02
data_ov36_02186d64: ; 0x02186d64
.byte 0x50, 0x1c, 0x0c, 0x02
data_ov36_02186d68: ; 0x02186d68
.byte 0x0c, 0x31, 0x0c, 0x02
data_ov36_02186d6c: ; 0x02186d6c
.byte 0x14, 0x31, 0x0c, 0x02
data_ov36_02186d70: ; 0x02186d70
.byte 0xa8, 0x18, 0x0c, 0x02
data_ov36_02186d74: ; 0x02186d74
.byte 0xc4, 0x18, 0x0c, 0x02
data_ov36_02186d78: ; 0x02186d78
.byte 0xfc, 0x18, 0x0c, 0x02
data_ov36_02186d7c: ; 0x02186d7c
.byte 0x04, 0x19, 0x0c, 0x02
data_ov36_02186d80: ; 0x02186d80
.byte 0x10, 0x19, 0x0c, 0x02
data_ov36_02186d84: ; 0x02186d84
.byte 0xe4, 0x49, 0x18, 0x02
data_ov36_02186d88: ; 0x02186d88
.byte 0x1c, 0x19, 0x0c, 0x02
data_ov36_02186d8c: ; 0x02186d8c
.byte 0x24, 0x19, 0x0c, 0x02
data_ov36_02186d90: ; 0x02186d90
.byte 0x38, 0x49, 0x18, 0x02
data_ov36_02186d94: ; 0x02186d94
.byte 0x28, 0x19, 0x0c, 0x02
data_ov36_02186d98: ; 0x02186d98
.byte 0x34, 0x19, 0x0c, 0x02
data_ov36_02186d9c: ; 0x02186d9c
.byte 0x38, 0x19, 0x0c, 0x02
data_ov36_02186da0: ; 0x02186da0
.byte 0x3c, 0x19, 0x0c, 0x02
data_ov36_02186da4: ; 0x02186da4
.byte 0x40, 0x19, 0x0c, 0x02
data_ov36_02186da8: ; 0x02186da8
.byte 0x48, 0x19, 0x0c, 0x02
data_ov36_02186dac: ; 0x02186dac
.byte 0x50, 0x19, 0x0c, 0x02
data_ov36_02186db0: ; 0x02186db0
.byte 0x54, 0x19, 0x0c, 0x02
data_ov36_02186db4: ; 0x02186db4
.byte 0x58, 0x19, 0x0c, 0x02
data_ov36_02186db8: ; 0x02186db8
.byte 0x6c, 0x1b, 0x0c, 0x02
data_ov36_02186dbc: ; 0x02186dbc
.byte 0xb4, 0x1b, 0x0c, 0x02
data_ov36_02186dc0: ; 0x02186dc0
.byte 0xf8, 0x1b, 0x0c, 0x02
data_ov36_02186dc4: ; 0x02186dc4
.byte 0xfc, 0x31, 0x0c, 0x02
data_ov36_02186dc8: ; 0x02186dc8
.byte 0x2c, 0x32, 0x0c, 0x02
data_ov36_02186dcc: ; 0x02186dcc
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186dd0: ; 0x02186dd0
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186dd4: ; 0x02186dd4
.byte 0xc4, 0xcf, 0x17, 0x02
data_ov36_02186dd8: ; 0x02186dd8
.byte 0xe0, 0x5f, 0x18, 0x02
data_ov36_02186ddc: ; 0x02186ddc
.byte 0x9c, 0xc1, 0x17, 0x02
data_ov36_02186de0: ; 0x02186de0
.byte 0xac, 0xc1, 0x17, 0x02
data_ov36_02186de4: ; 0x02186de4
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186de8: ; 0x02186de8
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186dec: ; 0x02186dec
.byte 0x98, 0xcc, 0x17, 0x02
data_ov36_02186df0: ; 0x02186df0
.byte 0xdc, 0x5f, 0x18, 0x02
data_ov36_02186df4: ; 0x02186df4
.byte 0x58, 0x5e, 0x0c, 0x02
data_ov36_02186df8: ; 0x02186df8
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186dfc: ; 0x02186dfc
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186e00: ; 0x02186e00
.byte 0x4d, 0x9b, 0x0a, 0x02
data_ov36_02186e04: ; 0x02186e04
.byte 0x59, 0x9b, 0x0a, 0x02
data_ov36_02186e08: ; 0x02186e08
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186e0c: ; 0x02186e0c
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186e10: ; 0x02186e10
.byte 0xd8, 0xcf, 0x17, 0x02
data_ov36_02186e14: ; 0x02186e14
.byte 0xc0, 0x5f, 0x18, 0x02
data_ov36_02186e18: ; 0x02186e18
.byte 0x0c, 0x96, 0x0a, 0x02
data_ov36_02186e1c: ; 0x02186e1c
.byte 0x14, 0x96, 0x0a, 0x02
data_ov36_02186e20: ; 0x02186e20
.byte 0x50, 0x96, 0x0a, 0x02
data_ov36_02186e24: ; 0x02186e24
.byte 0xd4, 0x96, 0x0a, 0x02
data_ov36_02186e28: ; 0x02186e28
.byte 0x40, 0x97, 0x0a, 0x02
data_ov36_02186e2c: ; 0x02186e2c
.byte 0x64, 0x97, 0x0a, 0x02
data_ov36_02186e30: ; 0x02186e30
.byte 0xd0, 0x97, 0x0a, 0x02
data_ov36_02186e34: ; 0x02186e34
.byte 0xe0, 0x97, 0x0a, 0x02
data_ov36_02186e38: ; 0x02186e38
.byte 0xf8, 0x97, 0x0a, 0x02
data_ov36_02186e3c: ; 0x02186e3c
.byte 0x64, 0x98, 0x0a, 0x02
data_ov36_02186e40: ; 0x02186e40
.byte 0xbc, 0x98, 0x0a, 0x02
data_ov36_02186e44: ; 0x02186e44
.byte 0x90, 0x98, 0x0a, 0x02
data_ov36_02186e48: ; 0x02186e48
.byte 0x68, 0x99, 0x0a, 0x02
data_ov36_02186e4c: ; 0x02186e4c
.byte 0x94, 0x99, 0x0a, 0x02
data_ov36_02186e50: ; 0x02186e50
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186e54: ; 0x02186e54
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186e58: ; 0x02186e58
.byte 0x34, 0x5d, 0x0c, 0x02
data_ov36_02186e5c: ; 0x02186e5c
.byte 0xdc, 0x5f, 0x18, 0x02
data_ov36_02186e60: ; 0x02186e60
.byte 0x58, 0x5e, 0x0c, 0x02
data_ov36_02186e64: ; 0x02186e64
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186e68: ; 0x02186e68
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186e6c: ; 0x02186e6c
.byte 0x34, 0x5d, 0x0c, 0x02
data_ov36_02186e70: ; 0x02186e70
.byte 0x60, 0xbf, 0x17, 0x02
data_ov36_02186e74: ; 0x02186e74
.byte 0x14, 0xc0, 0x17, 0x02
data_ov36_02186e78: ; 0x02186e78
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186e7c: ; 0x02186e7c
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186e80: ; 0x02186e80
.byte 0x6d, 0x9b, 0x0a, 0x02
data_ov36_02186e84: ; 0x02186e84
.byte 0x79, 0x9b, 0x0a, 0x02
data_ov36_02186e88: ; 0x02186e88
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186e8c: ; 0x02186e8c
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186e90: ; 0x02186e90
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186e94: ; 0x02186e94
.byte 0x58, 0x1f, 0x08, 0x02
data_ov36_02186e98: ; 0x02186e98
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186e9c: ; 0x02186e9c
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186ea0: ; 0x02186ea0
.byte 0x57, 0x42, 0x49, 0x3a, 0x2f, 0x69, 0x6e, 0x68, 0x61, 0x6c, 0x65, 0x5f, 0x77, 0x62, 0x6f, 0x73
.byte 0x73, 0x2e, 0x6e, 0x73, 0x62, 0x74, 0x61, 0x00
data_ov36_02186eb8: ; 0x02186eb8
.byte 0x69, 0x6e, 0x68, 0x61, 0x6c, 0x65, 0x5f, 0x77
.byte 0x62, 0x6f, 0x73, 0x73, 0x00, 0x00, 0x00, 0x00
data_ov36_02186ec8: ; 0x02186ec8
.byte 0x50, 0x57, 0x42, 0x3a, 0x2f, 0x62, 0x6f, 0x73
.byte 0x73, 0x5f, 0x70, 0x2e, 0x6e, 0x73, 0x62, 0x74, 0x70, 0x00, 0x00, 0x00
data_ov36_02186edc: ; 0x02186edc
.byte 0x62, 0x6f, 0x73, 0x73
.byte 0x5f, 0x70, 0x00, 0x00
data_ov36_02186ee4: ; 0x02186ee4
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186ee8: ; 0x02186ee8
.byte 0x00, 0x00, 0x00, 0x00
data_ov36_02186eec: ; 0x02186eec
.byte 0x78, 0x60, 0x18, 0x02
data_ov36_02186ef0: ; 0x02186ef0
.byte 0xc0, 0x60, 0x18, 0x02
data_ov36_02186ef4: ; 0x02186ef4
.byte 0x10, 0x61, 0x18, 0x02
data_ov36_02186ef8: ; 0x02186ef8
.byte 0x3c, 0x17, 0x0c, 0x02
data_ov36_02186efc: ; 0x02186efc
.byte 0x40, 0x17, 0x0c, 0x02
data_ov36_02186f00: ; 0x02186f00
.byte 0xb8, 0x62, 0x18, 0x02
data_ov36_02186f04: ; 0x02186f04
.byte 0xbc, 0x17, 0x0c, 0x02
data_ov36_02186f08: ; 0x02186f08
.byte 0xd4, 0x17, 0x0c, 0x02
data_ov36_02186f0c: ; 0x02186f0c
.byte 0x94, 0x18, 0x0c, 0x02
data_ov36_02186f10: ; 0x02186f10
.byte 0x44, 0x17, 0x0c, 0x02
data_ov36_02186f14: ; 0x02186f14
.byte 0x48, 0x17, 0x0c, 0x02
data_ov36_02186f18: ; 0x02186f18
.byte 0xa8, 0x17, 0x0c, 0x02
data_ov36_02186f1c: ; 0x02186f1c
.byte 0xb0, 0x17, 0x0c, 0x02
data_ov36_02186f20: ; 0x02186f20
.byte 0x4c, 0x17, 0x0c, 0x02
data_ov36_02186f24: ; 0x02186f24
.byte 0x7c, 0x17, 0x0c, 0x02
data_ov36_02186f28: ; 0x02186f28
.byte 0xe4, 0x27, 0x0c, 0x02
data_ov36_02186f2c: ; 0x02186f2c
.byte 0x04, 0x30, 0x0c, 0x02
data_ov36_02186f30: ; 0x02186f30
.byte 0x44, 0x27, 0x0c, 0x02
data_ov36_02186f34: ; 0x02186f34
.byte 0x48, 0x66, 0x18, 0x02
data_ov36_02186f38: ; 0x02186f38
.byte 0x50, 0x1c, 0x0c, 0x02
data_ov36_02186f3c: ; 0x02186f3c
.byte 0x0c, 0x31, 0x0c, 0x02
data_ov36_02186f40: ; 0x02186f40
.byte 0x14, 0x31, 0x0c, 0x02
data_ov36_02186f44: ; 0x02186f44
.byte 0xa8, 0x18, 0x0c, 0x02
data_ov36_02186f48: ; 0x02186f48
.byte 0xc4, 0x18, 0x0c, 0x02
data_ov36_02186f4c: ; 0x02186f4c
.byte 0xfc, 0x18, 0x0c, 0x02
data_ov36_02186f50: ; 0x02186f50
.byte 0x04, 0x19, 0x0c, 0x02
data_ov36_02186f54: ; 0x02186f54
.byte 0x10, 0x19, 0x0c, 0x02
data_ov36_02186f58: ; 0x02186f58
.byte 0x14, 0x19, 0x0c, 0x02
data_ov36_02186f5c: ; 0x02186f5c
.byte 0x1c, 0x19, 0x0c, 0x02
data_ov36_02186f60: ; 0x02186f60
.byte 0x24, 0x19, 0x0c, 0x02
data_ov36_02186f64: ; 0x02186f64
.byte 0x2c, 0x19, 0x0c, 0x02
data_ov36_02186f68: ; 0x02186f68
.byte 0x28, 0x19, 0x0c, 0x02
data_ov36_02186f6c: ; 0x02186f6c
.byte 0x34, 0x19, 0x0c, 0x02
data_ov36_02186f70: ; 0x02186f70
.byte 0x38, 0x19, 0x0c, 0x02
data_ov36_02186f74: ; 0x02186f74
.byte 0x3c, 0x19, 0x0c, 0x02
data_ov36_02186f78: ; 0x02186f78
.byte 0x40, 0x19, 0x0c, 0x02
data_ov36_02186f7c: ; 0x02186f7c
.byte 0x48, 0x19, 0x0c, 0x02
data_ov36_02186f80: ; 0x02186f80
.byte 0x50, 0x19, 0x0c, 0x02
data_ov36_02186f84: ; 0x02186f84
.byte 0x54, 0x19, 0x0c, 0x02
data_ov36_02186f88: ; 0x02186f88
.byte 0x58, 0x19, 0x0c, 0x02
data_ov36_02186f8c: ; 0x02186f8c
.byte 0x6c, 0x1b, 0x0c, 0x02
data_ov36_02186f90: ; 0x02186f90
.byte 0xb4, 0x1b, 0x0c, 0x02
data_ov36_02186f94: ; 0x02186f94
.byte 0xf8, 0x1b, 0x0c, 0x02
data_ov36_02186f98: ; 0x02186f98
.byte 0xfc, 0x31, 0x0c, 0x02
data_ov36_02186f9c: ; 0x02186f9c
.byte 0x2c, 0x32, 0x0c, 0x02
; 0x02186fa0
.bss
data_ov36_02186fa0:
.space 0x4
data_ov36_02186fa4:
.space 0x4
data_ov36_02186fa8:
.space 0x4
data_ov36_02186fac:
.space 0x4
data_ov36_02186fb0:
.space 0x4
data_ov36_02186fb4:
.space 0x4
data_ov36_02186fb8:
.space 0x4
data_ov36_02186fbc:
.space 0x4
data_ov36_02186fc0:
.space 0x4
data_ov36_02186fc4:
.space 0x4
data_ov36_02186fc8:
.space 0x4
data_ov36_02186fcc:
.space 0x4
data_ov36_02186fd0:
.space 0x4
data_ov36_02186fd4:
.space 0x4
data_ov36_02186fd8:
.space 0x4
data_ov36_02186fdc:
.space 0x4