Files
ph/asm/ov05.s
T
2023-10-21 13:13:34 +02:00

22311 lines
439 KiB
ArmAsm

.include "macros/function.inc"
.include "global.inc"
.text
.global func_ov05_02100ae0
arm_func_start func_ov05_02100ae0
func_ov05_02100ae0: ; 0x02100ae0
stmdb sp!, {r4, r5, r6, lr}
mov r6, r0
ldr r0, [r6, #0x28]
mov r5, r1
ldrb r0, [r0, #0x34]
mov r4, r2
cmp r0, #0
movne r0, #0
ldmneia sp!, {r4, r5, r6, pc}
ldr r0, _02100b70 ; =data_027e071c
bl func_0202d7ac
cmp r0, #0
movne r0, #0
ldmneia sp!, {r4, r5, r6, pc}
ldr r1, _02100b74 ; =data_027e0e2c
mvn r0, #0
ldr r1, [r1, #4]
cmp r1, r0
movne r0, #0
ldmneia sp!, {r4, r5, r6, pc}
ldr r0, _02100b78 ; =data_027e077c
ldr r1, [r0]
ldr r0, [r0, #4]
cmp r1, r0
movne r0, #0
ldmneia sp!, {r4, r5, r6, pc}
bl func_ov00_02079e04
cmp r0, #0
movne r0, #0
ldmneia sp!, {r4, r5, r6, pc}
ldr r0, [r6, #0x28]
mov r1, r5
mov r2, r4
blx func_ov00_0207b5bc
mov r0, #1
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
arm_func_end func_ov05_02100ae0
_02100b70: .word data_027e071c
_02100b74: .word data_027e0e2c
_02100b78: .word data_027e077c
.global func_ov05_02100b7c
arm_func_start func_ov05_02100b7c
func_ov05_02100b7c: ; 0x02100b7c
stmdb sp!, {r4, r5, r6, lr}
ldr r2, _02100be8 ; =data_027e0618
mov r5, r0
ldrb r0, [r2, #0x101]
mov r4, r1
cmp r0, #0
bne _02100bc0
ldr r0, [r5, #8]
cmp r4, #0
add r0, r0, #1
str r0, [r5, #8]
bne _02100bc0
ldr r0, _02100bec ; =data_027e0e5c
ldrh r1, [r0]
cmp r1, #0
subne r1, r1, #1
strneh r1, [r0]
_02100bc0:
ldr r0, [r5, #0x24]
ldr r1, [r5, #4]
mov r2, r4
bl func_ov05_021023ac
mov r6, r0
ldr r0, [r5, #0x28]
mov r1, r4
bl func_ov00_0207b820
mov r0, r6
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
arm_func_end func_ov05_02100b7c
_02100be8: .word data_027e0618
_02100bec: .word data_027e0e5c
.global func_ov05_02100bf0
arm_func_start func_ov05_02100bf0
func_ov05_02100bf0: ; 0x02100bf0
stmdb sp!, {r3, lr}
ldr r0, _02100c90 ; =data_027e0c54
bl func_0203608c
cmp r0, #0
ldreq r0, _02100c94 ; =data_027e0618
ldreqb r0, [r0, #0x101]
cmpeq r0, #0
bne _02100c88
ldr r0, _02100c98 ; =data_027e071c
bl func_0202d7ac
cmp r0, #0
bne _02100c88
ldr r1, _02100c9c ; =data_027e0e2c
mvn r0, #0
ldr r1, [r1, #4]
cmp r1, r0
bne _02100c88
ldr r0, _02100ca0 ; =data_027e0d04
ldrsh r0, [r0]
cmp r0, #0
bgt _02100c88
ldr r0, _02100ca4 ; =data_027e0d54
ldrb r0, [r0, #0xe]
cmp r0, #0
bne _02100c88
ldr r0, _02100ca8 ; =data_027e077c
ldr r1, [r0]
ldr r0, [r0, #4]
cmp r1, r0
bne _02100c88
ldr r0, _02100cac ; =data_02056be4
ldrb r0, [r0, r1]
tst r0, #4
movne r0, #1
moveq r0, #0
cmp r0, #0
moveq r0, #1
ldmeqia sp!, {r3, pc}
_02100c88:
mov r0, #0
ldmia sp!, {r3, pc}
.align 2, 0
arm_func_end func_ov05_02100bf0
_02100c90: .word data_027e0c54
_02100c94: .word data_027e0618
_02100c98: .word data_027e071c
_02100c9c: .word data_027e0e2c
_02100ca0: .word data_027e0d04
_02100ca4: .word data_027e0d54
_02100ca8: .word data_027e077c
_02100cac: .word data_02056be4
.global func_ov05_02100cb0
arm_func_start func_ov05_02100cb0
func_ov05_02100cb0: ; 0x02100cb0
stmdb sp!, {r3, r4, r5, r6, lr}
sub sp, sp, #4
mov r6, r0
ldrb r3, [r6, #0x25]
mov r5, r1
mov r4, r2
cmp r3, #0
beq _02100d04
ldr r1, _02100da8 ; =data_027e0c54
ldrb r1, [r1]
cmp r1, #0
beq _02100ce8
blx func_ov00_0207c000
b _02100d04
_02100ce8:
ldr r0, _02100dac ; =data_ov00_020d88b0
ldrh r0, [r0]
strh r0, [r6, #0x2c]
ldrb r0, [r6, #0x26]
cmp r0, #0
movne r0, #0
strneb r0, [r6, #0x24]
_02100d04:
cmp r5, #0
beq _02100d24
ldrh r1, [r6, #0x2a]
ldr r0, _02100db0 ; =data_ov00_020eec68
bl func_ov00_020d716c
ldr r0, _02100db4 ; =data_027e0ffc
mvn r1, #0
str r1, [r0, #0x14]
_02100d24:
ldrb r0, [r6, #0x24]
cmp r0, #0
beq _02100d74
cmp r4, #0
movne r0, #0
moveq r0, #1
strb r0, [r6, #0x20]
mov r0, #1
str r0, [r6]
mov r1, #0
mov r0, r6
str r1, [r6, #8]
blx func_ov00_0207c030
mov r2, r0
ldrh r1, [r6, #0x2a]
mov r0, r6
blx func_0202abf4
ldr r0, _02100db8 ; =data_027e071c
mov r1, r6
bl func_0202d77c
_02100d74:
ldrb r0, [r6, #0x25]
cmp r0, #0
addeq sp, sp, #4
ldmeqia sp!, {r3, r4, r5, r6, pc}
mov r3, #0
str r3, [sp]
ldrh r2, [r6, #0x2a]
ldr r0, _02100dbc ; =data_027e0e2c
mov r1, #2
mov r2, r2, lsr #0x1
blx func_ov00_0207bd4c
add sp, sp, #4
ldmia sp!, {r3, r4, r5, r6, pc}
.align 2, 0
arm_func_end func_ov05_02100cb0
_02100da8: .word data_027e0c54
_02100dac: .word data_ov00_020d88b0
_02100db0: .word data_ov00_020eec68
_02100db4: .word data_027e0ffc
_02100db8: .word data_027e071c
_02100dbc: .word data_027e0e2c
.global func_ov05_02100dc0
arm_func_start func_ov05_02100dc0
func_ov05_02100dc0: ; 0x02100dc0
stmdb sp!, {r3, r4, r5, r6, r7, lr}
mov r4, r3
mov r7, r0
mov r6, r1
mov r5, r2
blx func_ov00_0207bfc4
cmp r4, #0
moveq r0, #1
strb r4, [r7, #0x27]
movne r0, #0
strb r0, [r7, #0x28]
mov r0, r7
mov r2, r5
strh r6, [r7, #0x2a]
mov r3, #0
mov r1, #1
strh r3, [r7, #0x2c]
bl func_ov05_02100cb0
ldmia sp!, {r3, r4, r5, r6, r7, pc}
arm_func_end func_ov05_02100dc0
.global func_ov05_02100e0c
arm_func_start func_ov05_02100e0c
func_ov05_02100e0c: ; 0x02100e0c
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
mov r5, r1
ldr r7, [r5, #8]
mov r6, r0
cmp r7, #1
bne _02100e4c
ldr r1, _02101058 ; =0x020d88ae
ldr r0, [r5, #4]
ldrh r1, [r1]
cmp r0, #0xfb
moveq r2, #1
movne r2, #0
mov r0, r6
mov r3, #1
bl func_ov05_02100dc0
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
_02100e4c:
blx func_ov00_0207bfc4
ldr r0, _0210105c ; =data_027e0d38
ldr r0, [r0]
add r0, r0, #0xc
bl func_ov00_020a5e9c
mov r4, r0
mov r0, r5
bl func_ov00_020a5e9c
mov sl, r0
ldr r0, _0210105c ; =data_027e0d38
mov sb, #0
ldr r0, [r0]
cmp r4, sl
ldr r8, [r0, #0x14]
cmpeq r8, r7
movne sb, #1
bne _02100ea0
bl func_ov00_02078b40
cmp r0, #0
moveq r0, #1
streqb r0, [r6, #0x26]
_02100ea0:
cmp r8, #1
mov r7, #0
beq _02101044
cmp r4, #3
moveq r7, #1
beq _02101044
ldr r0, _02101060 ; =data_027e0f7c
cmp r4, sl
ldr r8, [r0]
beq _02100f08
mov r0, r8
mov r1, r4
bl func_ov00_0209d758
cmp r0, #9
beq _02100ef0
mov r0, r8
mov r1, sl
bl func_ov00_0209d758
cmp r0, #9
bne _02100f08
_02100ef0:
ldr r0, _02101064 ; =data_ov00_020d88a8
mov r1, #1
ldrh r0, [r0]
strb r1, [r6, #0x25]
strh r0, [r6, #0x2a]
b _02101044
_02100f08:
ldr r0, [r5, #4]
cmp r0, #0xfd
bgt _02100f84
bge _02100fec
cmp r0, #0x17
addls pc, pc, r0, lsl #2
b _02101020
_02100f24: ; jump table
b _02101020 ; case 0
b _02100f90 ; case 1
b _02100f90 ; case 2
b _02101020 ; case 3
b _02101020 ; case 4
b _02101020 ; case 5
b _02100fc0 ; case 6
b _02100fc0 ; case 7
b _02100fc0 ; case 8
b _02100fc0 ; case 9
b _02100fa8 ; case 10
b _02100fa8 ; case 11
b _02100f98 ; case 12
b _02100f98 ; case 13
b _02101020 ; case 14
b _02101020 ; case 15
b _02101020 ; case 16
b _02101020 ; case 17
b _02101020 ; case 18
b _02100f90 ; case 19
b _02101020 ; case 20
b _02101020 ; case 21
b _02101020 ; case 22
b _02100fd8 ; case 23
_02100f84:
cmp r0, #0xfe
beq _02101008
b _02101020
_02100f90:
mov r7, #1
b _02101020
_02100f98:
mov sb, #1
cmp r0, #0xd
moveq r7, sb
b _02101020
_02100fa8:
ldr r0, _02101064 ; =data_ov00_020d88a8
mov sb, #1
ldrh r0, [r0]
strb sb, [r6, #0x25]
strh r0, [r6, #0x2a]
b _02101020
_02100fc0:
ldr r0, _02101068 ; =0x020d88a6
mov r1, #1
ldrh r0, [r0]
strb r1, [r6, #0x25]
strh r0, [r6, #0x2a]
b _02101020
_02100fd8:
mov r0, #1
strb r0, [r6, #0x25]
mov r0, #0x20
strh r0, [r6, #0x2a]
b _02101020
_02100fec:
ldr r1, _0210106c ; =data_ov00_020d88ac
ldr r0, _02101070 ; =0x020d88a2
ldrh r1, [r1]
ldrh r0, [r0]
strh r1, [r6, #0x2a]
strh r0, [r6, #0x2c]
b _02101020
_02101008:
ldr r1, _02101074 ; =0x020d88aa
ldr r0, _02101078 ; =data_ov00_020d88a0
ldrh r1, [r1]
ldrh r0, [r0]
strh r1, [r6, #0x2a]
strh r0, [r6, #0x2c]
_02101020:
ldr r0, _0210107c ; =data_ov00_020eec68
bl func_ov00_020d7180
cmp r0, #0
beq _02101044
ldr r0, _0210107c ; =data_ov00_020eec68
bl func_ov00_020d7424
cmp r0, #0x34
cmpne r0, #0x35
moveq sb, #1
_02101044:
mov r0, r6
mov r1, sb
mov r2, r7
bl func_ov05_02100cb0
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
.align 2, 0
arm_func_end func_ov05_02100e0c
_02101058: .word 0x020d88ae
_0210105c: .word data_027e0d38
_02101060: .word data_027e0f7c
_02101064: .word data_ov00_020d88a8
_02101068: .word 0x020d88a6
_0210106c: .word data_ov00_020d88ac
_02101070: .word 0x020d88a2
_02101074: .word 0x020d88aa
_02101078: .word data_ov00_020d88a0
_0210107c: .word data_ov00_020eec68
.global func_ov05_02101080
arm_func_start func_ov05_02101080
func_ov05_02101080: ; 0x02101080
stmdb sp!, {r4, lr}
mov r4, r0
ldrb r0, [r4, #0x24]
cmp r0, #0
beq _021010a0
ldr r0, _021010ac ; =data_027e071c
mov r1, #0
bl func_0202d77c
_021010a0:
mov r0, r4
blx func_ov00_0207bfc4
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov05_02101080
_021010ac: .word data_027e071c
.global func_ov05_021010b0
arm_func_start func_ov05_021010b0
func_ov05_021010b0: ; 0x021010b0
ldrb r1, [r0, #0x25]
cmp r1, #0
beq _021010d4
ldr r0, _021010e8 ; =data_027e0e2c
ldr r0, [r0]
cmp r0, #1
moveq r0, #1
movne r0, #0
bx lr
_021010d4:
ldr r0, [r0]
cmp r0, #0
moveq r0, #1
movne r0, #0
bx lr
.align 2, 0
arm_func_end func_ov05_021010b0
_021010e8: .word data_027e0e2c
.global func_ov05_021010ec
arm_func_start func_ov05_021010ec
func_ov05_021010ec: ; 0x021010ec
ldrb r1, [r0, #0x25]
cmp r1, #0
beq _02101114
ldr r1, _02101128 ; =data_027e0e2c
mvn r0, #0
ldr r1, [r1, #4]
cmp r1, r0
moveq r0, #1
movne r0, #0
bx lr
_02101114:
ldr r0, [r0]
cmp r0, #1
moveq r0, #1
movne r0, #0
bx lr
.align 2, 0
arm_func_end func_ov05_021010ec
_02101128: .word data_027e0e2c
.global func_ov05_0210112c
arm_func_start func_ov05_0210112c
func_ov05_0210112c: ; 0x0210112c
stmdb sp!, {r3, r4, r5, lr}
mov r5, r0
ldrb r0, [r5, #0xa]
mov r4, r1
cmp r0, #0
beq _0210117c
ldr r0, _021011a4 ; =data_027e071c
bl func_0202d7ac
cmp r0, #0
bne _0210117c
ldr r0, _021011a8 ; =data_027e0d38
ldr r0, [r0]
ldr r0, [r0, #0x28]
ldrb r0, [r0, #0x34]
cmp r0, #0
bne _0210117c
ldr r0, _021011ac ; =data_ov00_020eec68
bl func_ov00_020d7328
mov r0, #0
strb r0, [r5, #0xa]
_0210117c:
ldr r0, [r5, #4]
mov r1, r4
ldr r2, [r0]
ldr r2, [r2, #0x1c]
blx r2
ldr r0, _021011b0 ; =data_027e0f68
mov r1, r4
ldr r0, [r0]
bl func_ov05_02101230
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov05_0210112c
_021011a4: .word data_027e071c
_021011a8: .word data_027e0d38
_021011ac: .word data_ov00_020eec68
_021011b0: .word data_027e0f68
.global func_ov05_021011b4
arm_func_start func_ov05_021011b4
func_ov05_021011b4: ; 0x021011b4
stmdb sp!, {r3, lr}
ldr r0, [r0, #4]
ldr r2, [r0]
ldr r2, [r2, #0x24]
blx r2
ldmia sp!, {r3, pc}
arm_func_end func_ov05_021011b4
.global func_ov05_021011cc
arm_func_start func_ov05_021011cc
func_ov05_021011cc: ; 0x021011cc
stmdb sp!, {r4, lr}
ldr r0, _021011f4 ; =data_027e0f68
mov r4, r1
ldr r0, [r0]
bl func_ov05_021014d4
ldr r0, _021011f8 ; =data_027e0f70
mov r1, r4
ldr r0, [r0]
bl func_ov00_02095fe0
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov05_021011cc
_021011f4: .word data_027e0f68
_021011f8: .word data_027e0f70
.global func_ov05_021011fc
arm_func_start func_ov05_021011fc
func_ov05_021011fc: ; 0x021011fc
stmdb sp!, {r3, r4, r5, lr}
mov r5, r0
ldr r0, [r5, #4]
mov r4, r1
ldr r2, [r0]
ldr r2, [r2, #0x28]
blx r2
ldr r0, [r5, #4]
mov r1, r4
ldr r2, [r0]
ldr r2, [r2, #0x20]
blx r2
ldmia sp!, {r3, r4, r5, pc}
arm_func_end func_ov05_021011fc
.global func_ov05_02101230
arm_func_start func_ov05_02101230
func_ov05_02101230: ; 0x02101230
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x40
ldr r2, _0210141c ; =data_027e077c
mov sl, r0
ldr r0, [r2]
mov sb, r1
cmp r0, #0x22
addeq sp, sp, #0x40
ldmeqia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
ldr r2, [sl, #0xc]
ldr r0, [sl, #0x10]
mov r8, r2
add r1, r2, r0, lsl #2
cmp r2, r1
mov r7, #0
beq _02101350
sub r6, sp, #4
add r5, sp, #1
mov r4, r7
mov fp, r7
_02101280:
ldr r0, [r8]
mov r1, sb
ldr r2, [r0]
ldr r2, [r2, #0xc]
blx r2
ldr r1, [r8]
ldr r0, [r1, #4]
tst r0, #1
bne _02101338
ldr r0, _02101420 ; =data_027e0e60
ldr r0, [r0]
bl func_ov00_020828e0
ldr r3, [r8]
ldr r1, [sl, #0x18]
ldrb r7, [r3, #0x14]
ldrb r3, [r3, #0x15]
ldr r0, [sl, #0x1c]
str r1, [sp, #0x38]
add r2, r1, r0, lsl #2
strb r7, [r6]
strb r3, [sp, #3]
strb r3, [r6, #1]
ldr r3, [r6]
add r0, sp, #0x3c
str r2, [sp, #0x30]
str r2, [sp, #0x18]
str r2, [sp, #0x34]
strb r7, [sp, #2]
bl func_ov05_02101424
ldr r1, [sp, #0x3c]
strb r4, [r5]
and r3, r4, #0xff
strb r3, [r6]
ldr r2, [sp, #0x18]
ldr r3, [r6]
add r0, sl, #0x18
str r1, [sp, #0x1c]
bl func_ov05_021015c8
ldr r0, [r8]
cmp r0, #0
beq _02101330
ldr r1, [r0]
ldr r1, [r1, #4]
blx r1
_02101330:
mov r7, #1
str fp, [r8]
_02101338:
ldr r2, [sl, #0xc]
ldr r0, [sl, #0x10]
add r8, r8, #4
add r1, r2, r0, lsl #2
cmp r8, r1
bne _02101280
_02101350:
cmp r7, #0
beq _021013f4
str r1, [sp, #0x24]
str r1, [sp, #0xc]
str r2, [sp, #0x28]
str r1, [sp, #4]
str r2, [sp, #8]
b _02101378
_02101370:
add r2, r2, #4
str r2, [sp, #8]
_02101378:
cmp r2, r1
ldrne r0, [r2]
cmpne r0, #0
bne _02101370
ldr r0, [sp, #8]
ldr r2, [sp, #0xc]
mov r1, r0
cmp r0, r2
addne r3, r1, #4
cmpne r3, r2
beq _021013bc
_021013a4:
ldr r0, [r3]
add r3, r3, #4
cmp r0, #0
strne r0, [r1], #4
cmp r3, r2
bne _021013a4
_021013bc:
ldr r2, [sl, #0xc]
ldr r0, [sl, #0x10]
mov r3, #0
add r2, r2, r0, lsl #2
strb r3, [sp]
sub r0, sp, #4
strb r3, [r0]
ldr r3, [r0]
add r0, sl, #0xc
str r1, [sp, #0x2c]
str r2, [sp, #0x20]
str r2, [sp, #0x10]
str r1, [sp, #0x14]
bl func_ov05_021015c8
_021013f4:
cmp sb, #0
addne sp, sp, #0x40
ldmneia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
ldr r0, [sl, #4]
cmp r0, #0
addeq sp, sp, #0x40
ldmeqia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
bl func_ov15_0216ad3c
add sp, sp, #0x40
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
arm_func_end func_ov05_02101230
_0210141c: .word data_027e077c
_02101420: .word data_027e0e60
.global func_ov05_02101424
arm_func_start func_ov05_02101424
func_ov05_02101424: ; 0x02101424
stmdb sp!, {r0, r1, r2, r3}
stmdb sp!, {r4, r5, r6, r7, r8, lr}
sub sp, sp, #8
ldr r7, [sp, #0x28]
ldr r6, [sp, #0x24]
mov r4, r0
str r7, [sp]
str r6, [sp, #4]
add r5, sp, #0x2c
b _02101454
_0210144c:
add r6, r6, #4
str r6, [sp, #4]
_02101454:
cmp r6, r7
beq _02101470
ldr r1, [r6]
mov r0, r5
bl func_ov00_0208cb84
cmp r0, #0
beq _0210144c
_02101470:
ldr r7, [sp, #4]
ldr r6, [sp, #0x28]
mov r0, r7
cmp r0, r6
addne r8, r7, #4
str r7, [sp, #0x24]
cmpne r8, r6
beq _021014bc
add r5, sp, #0x2c
_02101494:
ldr r1, [r8]
mov r0, r5
bl func_ov00_0208cb84
cmp r0, #0
ldreq r0, [r8]
add r8, r8, #4
streq r0, [r7], #4
streq r7, [sp, #0x24]
cmp r8, r6
bne _02101494
_021014bc:
ldr r0, [sp, #0x24]
str r0, [r4]
add sp, sp, #8
ldmia sp!, {r4, r5, r6, r7, r8, lr}
add sp, sp, #0x10
bx lr
arm_func_end func_ov05_02101424
.global func_ov05_021014d4
arm_func_start func_ov05_021014d4
func_ov05_021014d4: ; 0x021014d4
stmdb sp!, {r4, r5, r6, lr}
mov r6, r0
ldr r0, [r6, #4]
mov r5, r1
cmp r0, #0
beq _021014f0
bl func_ov18_0216ad80
_021014f0:
ldr r4, [r6, #0xc]
ldr r0, [r6, #0x10]
add r0, r4, r0, lsl #2
cmp r4, r0
ldmeqia sp!, {r4, r5, r6, pc}
_02101504:
ldr r0, [r4], #4
mov r1, r5
ldr r2, [r0]
ldr r2, [r2, #0x10]
blx r2
ldr r1, [r6, #0xc]
ldr r0, [r6, #0x10]
add r0, r1, r0, lsl #2
cmp r4, r0
bne _02101504
ldmia sp!, {r4, r5, r6, pc}
arm_func_end func_ov05_021014d4
.global func_ov05_02101530
arm_func_start func_ov05_02101530
func_ov05_02101530: ; 0x02101530
stmdb sp!, {r4, r5, r6, lr}
mov r6, r0
ldr r4, [r6, #0x18]
ldr r0, [r6, #0x1c]
mov r5, r1
add r0, r4, r0, lsl #2
cmp r4, r0
ldmeqia sp!, {r4, r5, r6, pc}
_02101550:
ldr r0, [r4], #4
mov r1, r5
ldr r2, [r0]
ldr r2, [r2, #0x14]
blx r2
ldr r1, [r6, #0x18]
ldr r0, [r6, #0x1c]
add r0, r1, r0, lsl #2
cmp r4, r0
bne _02101550
ldmia sp!, {r4, r5, r6, pc}
arm_func_end func_ov05_02101530
.global func_ov05_0210157c
arm_func_start func_ov05_0210157c
func_ov05_0210157c: ; 0x0210157c
stmdb sp!, {r4, r5, r6, lr}
mov r6, r0
ldr r4, [r6, #0xc]
ldr r0, [r6, #0x10]
mov r5, r1
add r0, r4, r0, lsl #2
cmp r4, r0
ldmeqia sp!, {r4, r5, r6, pc}
_0210159c:
ldr r0, [r4], #4
mov r1, r5
ldr r2, [r0]
ldr r2, [r2, #0x14]
blx r2
ldr r1, [r6, #0xc]
ldr r0, [r6, #0x10]
add r0, r1, r0, lsl #2
cmp r4, r0
bne _0210159c
ldmia sp!, {r4, r5, r6, pc}
arm_func_end func_ov05_0210157c
.global func_ov05_021015c8
arm_func_start func_ov05_021015c8
func_ov05_021015c8: ; 0x021015c8
stmdb sp!, {r4, r5, r6, lr}
mov r5, r1
mov r4, r2
mov r6, r0
cmp r5, r4
beq _02101624
ldr r2, [r6]
ldr r1, [r6, #4]
mov r0, r5
add r1, r2, r1, lsl #2
sub r2, r1, r4
mov r1, r2, asr #0x1
add r1, r2, r1, lsr #30
mov r2, r1, asr #0x2
mov r1, r4
mov r2, r2, lsl #0x2
bl func_020435b4
sub r1, r4, r5
mov r0, r1, asr #0x1
ldr r2, [r6, #4]
add r0, r1, r0, lsr #30
sub r0, r2, r0, asr #2
str r0, [r6, #4]
_02101624:
mov r0, r5
ldmia sp!, {r4, r5, r6, pc}
arm_func_end func_ov05_021015c8
.global func_ov05_0210162c
arm_func_start func_ov05_0210162c
func_ov05_0210162c: ; 0x0210162c
stmdb sp!, {r3, r4, r5, r6, r7, lr}
mov r7, r0
ldr r0, [r7, #0x34]
cmp r0, #0
ldmltia sp!, {r3, r4, r5, r6, r7, pc}
ldr r2, [r7, #0x40]
mov r1, r0, lsl #0xc
cmp r1, #0x1000
strle r2, [r7, #0x10]
ble _02101674
ldr r0, [r7, #0x10]
sub r0, r2, r0
mov r0, r0, lsl #0xc
bl func_01ff98e0
ldr r1, [r7, #0x10]
add r0, r0, #0x800
add r0, r1, r0, asr #12
str r0, [r7, #0x10]
_02101674:
ldr r0, [r7, #0x34]
ldr r2, [r7, #0x3c]
mov r1, r0, lsl #0xc
cmp r1, #0x1000
strle r2, [r7, #0xc]
ble _021016ac
ldr r0, [r7, #0xc]
sub r0, r2, r0
mov r0, r0, lsl #0xc
bl func_01ff98e0
ldr r1, [r7, #0xc]
add r0, r0, #0x800
add r0, r1, r0, asr #12
str r0, [r7, #0xc]
_021016ac:
ldr r0, [r7, #0x34]
ldr r4, [r7, #8]
mov r1, r0, lsl #0xc
ldr r0, [r7, #0x38]
cmp r1, #0x1000
movle r4, r0
ble _021016dc
sub r0, r0, r4
mov r0, r0, lsl #0xc
bl func_01ff98e0
add r0, r0, #0x800
add r4, r4, r0, asr #12
_021016dc:
str r4, [r7, #8]
ldrh r4, [r7, #2]
ldr r1, [r7, #0x34]
ldrb r0, [r7, #0x45]
and r3, r4, #0x3e0
and r2, r4, #0x7c00
mov r3, r3, asr #0x5
mov r2, r2, asr #0xa
mov r1, r1, lsl #0xc
and r4, r4, #0x1f
cmp r1, #0x1000
and r5, r3, #0xff
and r6, r2, #0xff
movle r4, r0
ble _02101730
sub r0, r0, r4
mov r0, r0, lsl #0xc
bl func_01ff98e0
add r0, r0, #0x800
add r0, r4, r0, asr #12
and r4, r0, #0xff
_02101730:
ldr r1, [r7, #0x34]
ldrb r0, [r7, #0x46]
mov r1, r1, lsl #0xc
cmp r1, #0x1000
movle r5, r0
ble _02101760
sub r0, r0, r5
mov r0, r0, lsl #0xc
bl func_01ff98e0
add r0, r0, #0x800
add r0, r5, r0, asr #12
and r5, r0, #0xff
_02101760:
ldr r1, [r7, #0x34]
ldrb r0, [r7, #0x47]
mov r1, r1, lsl #0xc
cmp r1, #0x1000
movle r6, r0
ble _02101790
sub r0, r0, r6
mov r0, r0, lsl #0xc
bl func_01ff98e0
add r0, r0, #0x800
add r0, r6, r0, asr #12
and r6, r0, #0xff
_02101790:
orr r0, r4, r5, lsl #5
orr r0, r0, r6, lsl #10
strh r0, [r7, #2]
ldr r0, [r7, #0x34]
cmp r0, #0
ldreqb r0, [r7, #0x44]
cmpeq r0, #0
moveq r0, #0
streqb r0, [r7]
ldrh r2, [r7, #2]
ldr r1, [r7, #0x10]
ldr r0, _021017e4 ; =0x04000358
orr r1, r2, r1, lsl #16
str r1, [r0]
ldrb r0, [r7]
ldmib r7, {r1, r2, r3}
bl func_02005934
ldr r0, [r7, #0x34]
sub r0, r0, #1
str r0, [r7, #0x34]
ldmia sp!, {r3, r4, r5, r6, r7, pc}
.align 2, 0
arm_func_end func_ov05_0210162c
_021017e4: .word 0x04000358
.global func_ov05_021017e8
arm_func_start func_ov05_021017e8
func_ov05_021017e8: ; 0x021017e8
stmdb sp!, {r3, lr}
cmp r1, #0
ldmneia sp!, {r3, pc}
ldr r0, _02101800 ; =data_ov00_020ee0a0
bl func_ov05_0210162c
ldmia sp!, {r3, pc}
.align 2, 0
arm_func_end func_ov05_021017e8
_02101800: .word data_ov00_020ee0a0
.global func_ov05_02101804
arm_func_start func_ov05_02101804
func_ov05_02101804: ; 0x02101804
stmdb sp!, {r3, r4, r5, lr}
mov r5, r0
mov r4, r1
add ip, r5, #0xc
ldrb r3, [ip, r4]
cmp r2, r3
beq _0210183c
strb r2, [ip, r4]
cmp r2, #0
beq _02101838
add r2, r5, #0xe
bl func_ov00_020a1a24
b _0210183c
_02101838:
bl func_ov00_020a1b24
_0210183c:
add r0, r5, r4, lsl #2
ldr r0, [r0, #4]
bl func_ov05_02101984
ldmia sp!, {r3, r4, r5, pc}
arm_func_end func_ov05_02101804
.global func_ov05_0210184c
arm_func_start func_ov05_0210184c
func_ov05_0210184c: ; 0x0210184c
stmdb sp!, {r3, r4, r5, lr}
mov r5, r0
ldr r0, [r5]
mov r4, #0
cmp r0, #0
ldmleia sp!, {r3, r4, r5, pc}
_02101864:
add r0, r5, r4, lsl #2
ldr r0, [r0, #4]
bl func_ov05_02101984
ldr r0, [r5]
add r4, r4, #1
cmp r4, r0
blt _02101864
ldmia sp!, {r3, r4, r5, pc}
arm_func_end func_ov05_0210184c
.global func_ov05_02101884
arm_func_start func_ov05_02101884
func_ov05_02101884: ; 0x02101884
stmdb sp!, {r4, lr}
sub sp, sp, #8
mov r4, r0
ldrh r0, [r4, #4]
cmp r0, #0
bne _021018cc
ldr r0, [r4]
add r1, sp, #4
mov r0, r0, lsl #0x1e
str r0, [sp, #4]
mov r0, #0x33
mov r2, #1
bl func_01ffa9fc
ldr r0, [r4]
mov r1, #0
bl func_02018418
add sp, sp, #8
ldmia sp!, {r4, pc}
_021018cc:
ldrh r0, [r4, #6]
ldr r2, [r4]
add r1, sp, #0
orr r0, r0, r2, lsl #30
str r0, [sp]
mov r0, #0x33
mov r2, #1
bl func_01ffa9fc
ldrh r1, [r4, #6]
ldr r0, [r4]
bl func_02018418
add sp, sp, #8
ldmia sp!, {r4, pc}
arm_func_end func_ov05_02101884
.global func_ov05_02101900
arm_func_start func_ov05_02101900
func_ov05_02101900: ; 0x02101900
stmdb sp!, {r3, r4, lr}
sub sp, sp, #4
mov r4, r0
ldrh r0, [r4, #4]
cmp r0, #0
addeq sp, sp, #4
ldmeqia sp!, {r3, r4, pc}
ldrsh r1, [r4, #0xa]
ldrsh r3, [r4, #0xc]
ldrsh r2, [r4, #8]
ldr r0, _02101980 ; =0x000003ff
mov r1, r1, asr #0x3
and r2, r0, r2, asr #3
mov r0, r1, lsl #0x16
mov r3, r3, asr #0x3
orr r0, r2, r0, lsr #12
mov r1, r3, lsl #0x16
orr r0, r0, r1, lsr #2
ldr r2, [r4]
add r1, sp, #0
orr r0, r0, r2, lsl #30
str r0, [sp]
mov r0, #0x32
mov r2, #1
bl func_01ffa9fc
ldrsh r1, [r4, #8]
ldrsh r2, [r4, #0xa]
ldrsh r3, [r4, #0xc]
ldr r0, [r4]
bl func_020183dc
add sp, sp, #4
ldmia sp!, {r3, r4, pc}
.align 2, 0
arm_func_end func_ov05_02101900
_02101980: .word 0x000003ff
.global func_ov05_02101984
arm_func_start func_ov05_02101984
func_ov05_02101984: ; 0x02101984
stmdb sp!, {r4, lr}
mov r4, r0
bl func_ov05_02101884
mov r0, r4
bl func_ov05_02101900
ldmia sp!, {r4, pc}
arm_func_end func_ov05_02101984
.global func_ov05_0210199c
arm_func_start func_ov05_0210199c
func_ov05_0210199c: ; 0x0210199c
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #0x10
mov r5, r0
mov r4, r1
bl func_ov00_0208df2c
ldrh r1, [r5, #4]
ldr r0, [r5, #0x10]
mov r2, #0
str r0, [sp]
mov r0, r1, asr #0x4
mov r3, r0, lsl #0x1
ldr r1, [r5, #0x14]
add r0, r3, #1
str r1, [sp, #4]
ldr r1, _02101aa8 ; =data_027e0384
str r2, [sp, #8]
str r1, [sp, #0xc]
ldr r2, _02101aac ; =data_02050f54
mov r3, r3, lsl #0x1
mov r1, r0, lsl #0x1
ldrsh r0, [r2, r3]
ldrsh r1, [r2, r1]
ldr r2, [r5, #8]
ldr r3, [r5, #0xc]
bl func_02005bfc
ldr ip, _02101ab0 ; =data_027e037c
ldr lr, _02101ab4 ; =data_027e03c8
ldr r1, [ip, #0xfc]
add r0, r5, #0x260
bic r1, r1, #0x50
str r1, [ip, #0xfc]
ldr r2, [r5, #0x260]
add r1, r5, #0x278
str r2, [ip, #0x240]
ldr r3, [r5, #0x264]
add r2, r5, #0x26c
str r3, [ip, #0x244]
ldr r6, [r5, #0x268]
mov r3, #0
str r6, [ip, #0x248]
ldr r6, [r5, #0x278]
str r6, [ip, #0x24c]
ldr r6, [r5, #0x27c]
str r6, [ip, #0x250]
ldr r6, [r5, #0x280]
str r6, [ip, #0x254]
ldr r6, [r5, #0x26c]
str r6, [ip, #0x258]
ldr r6, [r5, #0x270]
str r6, [ip, #0x25c]
ldr r6, [r5, #0x274]
str r6, [ip, #0x260]
str lr, [sp]
bl func_02005dcc
ldr r0, _02101ab0 ; =data_027e037c
mov r1, r4
ldr r2, [r0, #0xfc]
bic r2, r2, #0xe8
str r2, [r0, #0xfc]
ldr r2, [r5, #0x154]
ldr r0, [r5, #0x160]
ldr r0, [r2, r0, lsl #2]
ldr r2, [r0]
ldr r2, [r2, #0x10]
blx r2
add sp, sp, #0x10
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
arm_func_end func_ov05_0210199c
_02101aa8: .word data_027e0384
_02101aac: .word data_02050f54
_02101ab0: .word data_027e037c
_02101ab4: .word data_027e03c8
.global func_ov05_02101ab8
arm_func_start func_ov05_02101ab8
func_ov05_02101ab8: ; 0x02101ab8
bx lr
arm_func_end func_ov05_02101ab8
.global func_ov05_02101abc
arm_func_start func_ov05_02101abc
func_ov05_02101abc: ; 0x02101abc
stmdb sp!, {r3, lr}
add r2, r0, r1, lsl #2
ldr r0, [r2, #4]
ldr r3, _02101ae4 ; =0x00001555
str r3, [r0, #8]
ldr r0, [r2, #4]
ldr r2, [r0]
ldr r2, [r2, #8]
blx r2
ldmia sp!, {r3, pc}
.align 2, 0
arm_func_end func_ov05_02101abc
_02101ae4: .word 0x00001555
.global func_ov05_02101ae8
arm_func_start func_ov05_02101ae8
func_ov05_02101ae8: ; 0x02101ae8
ldr ip, _02101af4 ; =func_ov05_02112294
ldr r0, [r0, #0x40]
bx ip
.align 2, 0
arm_func_end func_ov05_02101ae8
_02101af4: .word func_ov05_02112294
.global func_ov05_02101af8
arm_func_start func_ov05_02101af8
func_ov05_02101af8: ; 0x02101af8
stmdb sp!, {r4, lr}
mov r4, r0
ldr r0, [r4, #0x44]
bl func_ov05_02101b14
ldr r0, [r4, #0x40]
bl func_ov05_02112234
ldmia sp!, {r4, pc}
arm_func_end func_ov05_02101af8
.global func_ov05_02101b14
arm_func_start func_ov05_02101b14
func_ov05_02101b14: ; 0x02101b14
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #0x58
mov r6, r0
ldr r0, [r6, #8]
ldrb r5, [r6, #0x2b]
ldrb r0, [r0, #8]
mov r4, #0
cmp r0, #0
bne _02101ea8
ldr r1, [r6, #0x18]
sub r0, r4, #1
cmp r1, r0
beq _02101ea8
ldr r0, [r6, #0x10]
cmp r0, #0
ldr r0, [r6, #0xc8]
bne _02101d54
cmp r0, #0
beq _02101b6c
ldr r1, [r0]
ldr r1, [r1, #0xc]
blx r1
_02101b6c:
ldrb r0, [r6, #0x27]
cmp r0, #0
beq _02101b84
cmp r0, #1
beq _02101b94
b _02101bb4
_02101b84:
ldr r0, [r6, #8]
mov r1, #0
strb r1, [r0, #0xa]
b _02101d04
_02101b94:
ldr r2, [r6, #8]
mov r1, #0
ldr r0, _021021d4 ; =data_027e0f64
strb r1, [r2, #0xa]
ldr r0, [r0]
ldr r0, [r0, #4]
bl func_ov00_0208726c
b _02101d04
_02101bb4:
ldr r1, [r6, #8]
mov r2, #1
ldr r0, _021021d8 ; =data_027e0d38
strb r2, [r1, #0xa]
ldr r0, [r0]
add r0, r0, #0xc
bl func_ov00_020a5e9c
cmp r0, #0x33
bne _02101c04
mov r0, #1
str r0, [sp]
str r0, [sp, #4]
ldr r0, _021021d4 ; =data_027e0f64
ldrb r2, [r6, #0x27]
ldr r0, [r0]
add r1, r6, #0xcc
ldr r0, [r0, #4]
add r3, r6, #0xe4
bl func_ov00_02089318
b _02101cd4
_02101c04:
ldr r0, _021021d8 ; =data_027e0d38
ldr r0, [r0]
add r0, r0, #0xc
bl func_ov00_020a5e9c
cmp r0, #0x12
bne _02101c90
ldr r0, _021021dc ; =data_027e0e60
ldr r0, [r0]
bl func_ov00_02082d08
cmp r0, #2
beq _02101c44
ldr r0, _021021dc ; =data_027e0e60
ldr r0, [r0]
bl func_ov00_02082d08
cmp r0, #3
bne _02101c90
_02101c44:
ldr r0, _021021e0 ; =data_027e0f94
mov r1, #1
ldr r3, [r0]
ldr r2, [r0, #4]
str r3, [sp, #0x4c]
str r2, [sp, #0x50]
ldr r2, [r0, #8]
mov r0, #0
str r2, [sp, #0x54]
str r1, [sp]
str r0, [sp, #4]
ldr r0, _021021d4 ; =data_027e0f64
ldrb r2, [r6, #0x27]
ldr r0, [r0]
add r1, sp, #0x4c
ldr r0, [r0, #4]
add r3, r6, #0xe4
bl func_ov00_02089318
b _02101cd4
_02101c90:
ldr r0, _021021e0 ; =data_027e0f94
mov r1, #1
ldr r3, [r0]
ldr r2, [r0, #4]
str r3, [sp, #0x40]
str r2, [sp, #0x44]
ldr r2, [r0, #8]
ldr r0, _021021d4 ; =data_027e0f64
str r2, [sp, #0x48]
str r1, [sp]
str r1, [sp, #4]
ldr r0, [r0]
ldrb r2, [r6, #0x27]
ldr r0, [r0, #4]
add r1, sp, #0x40
add r3, r6, #0xe4
bl func_ov00_02089318
_02101cd4:
ldrb r0, [r6, #0x2d]
cmp r0, #0
ldreqb r0, [r6, #0x2f]
cmpeq r0, #0
beq _02101d04
ldr r0, _021021d4 ; =data_027e0f64
mov r1, #0
ldr r0, [r0]
ldr r0, [r0, #4]
ldr r2, [r0]
ldr r2, [r2, #4]
blx r2
_02101d04:
ldrb r0, [r6, #0x2c]
cmp r0, #0
beq _02101d30
ldr r0, _021021e4 ; =data_027e0ffc
mov r1, #0
bl func_ov00_020ce8e4
ldr r1, [r6, #4]
mvn r0, #0
cmp r1, r0
ldreqsh r0, [r6, #0x36]
streq r0, [r6, #4]
_02101d30:
mov r0, r6
mov r1, #0
mov r2, #1
bl func_ov00_020991ec
ldrb r1, [r6, #0x29]
ldr r0, [r6, #8]
mov r4, #1
bl func_ov00_02098694
b _02101e74
_02101d54:
cmp r0, #0
beq _02101d68
ldr r1, [r0]
ldr r1, [r1, #0xc]
blx r1
_02101d68:
ldrb r0, [r6, #0x27]
ldr r1, [r6, #0xc]
cmp r0, #8
addls pc, pc, r0, lsl #2
b _02101e24
_02101d7c: ; jump table
b _02101da0 ; case 0
b _02101e24 ; case 1
b _02101da0 ; case 2
b _02101e24 ; case 3
b _02101e24 ; case 4
b _02101da0 ; case 5
b _02101e24 ; case 6
b _02101e24 ; case 7
b _02101da0 ; case 8
_02101da0:
ldrb r0, [r1, #0xe]
cmp r0, #8
addls pc, pc, r0, lsl #2
b _02101dd4
_02101db0: ; jump table
b _02101e24 ; case 0
b _02101dd4 ; case 1
b _02101e24 ; case 2
b _02101dd4 ; case 3
b _02101dd4 ; case 4
b _02101e24 ; case 5
b _02101dd4 ; case 6
b _02101dd4 ; case 7
b _02101e24 ; case 8
_02101dd4:
ldr r0, _021021e0 ; =data_027e0f94
add r1, sp, #0x34
ldr r3, [r0]
ldr r2, [r0, #4]
str r3, [sp, #0x34]
str r2, [sp, #0x38]
ldr r0, [r0, #8]
str r0, [sp, #0x3c]
ldrb r2, [r6, #0x27]
ldr r0, [r6, #8]
bl func_ov00_02098890
cmp r0, #0
moveq r0, #1
movne r0, #0
cmp r0, #0
bne _02101e24
add r0, r6, #0x18
bl func_ov00_02098b34
add sp, sp, #0x58
ldmia sp!, {r4, r5, r6, pc}
_02101e24:
ldrb r0, [r6, #0x2c]
cmp r0, #0
beq _02101e64
ldr r0, [r6, #0xc]
ldrb r0, [r0, #0x14]
cmp r0, #0
bne _02101e50
ldr r0, _021021e4 ; =data_027e0ffc
mov r1, #0
bl func_ov00_020ce8e4
mov r4, #1
_02101e50:
ldr r1, [r6, #4]
mvn r0, #0
cmp r1, r0
ldreqsh r0, [r6, #0x36]
streq r0, [r6, #4]
_02101e64:
mov r1, #1
mov r0, r6
mov r2, r1
bl func_ov00_020991ec
_02101e74:
add r0, r6, #0x18
bl func_ov00_02098b4c
ldr r1, [r6, #8]
ldrb r0, [r1, #0xa]
cmp r0, #0
cmpeq r5, #0
bne _02101ea8
ldr r0, [r1]
bic r0, r0, #1
str r0, [r1]
ldr r0, [r1, #4]
bic r0, r0, #1
str r0, [r1, #4]
_02101ea8:
ldr r0, [r6, #0x10]
ldr r1, [r6, #0x18]
cmp r0, #0
mvn r0, #0
bne _02101f7c
cmp r1, r0
addne sp, sp, #0x58
ldmneia sp!, {r4, r5, r6, pc}
ldr r0, [r6, #8]
ldrb r0, [r0, #0xa]
cmp r0, #0
beq _02101f18
ldr r0, _021021d4 ; =data_027e0f64
ldr r0, [r0]
ldr r0, [r0, #4]
bl func_ov00_02089a2c
cmp r0, #0
bne _02101f18
ldr r0, [r6, #8]
mov r1, #0
strb r1, [r0, #0xa]
ldr r1, [r6, #8]
ldr r0, [r1]
bic r0, r0, #1
str r0, [r1]
ldr r0, [r1, #4]
bic r0, r0, #1
str r0, [r1, #4]
_02101f18:
ldr r0, [r6, #4]
cmp r0, #0
addlt sp, sp, #0x58
ldmltia sp!, {r4, r5, r6, pc}
cmp r4, #0
addne sp, sp, #0x58
ldmneia sp!, {r4, r5, r6, pc}
ldr r0, _021021e8 ; =data_ov00_020eec9c
mov r1, #1
bl func_ov00_020d7f18
cmp r0, #0
addne sp, sp, #0x58
ldmneia sp!, {r4, r5, r6, pc}
ldr r0, _021021dc ; =data_027e0e60
ldr r0, [r0]
bl func_ov00_02084740
mov r1, r0
ldr r2, [r6, #4]
ldr r0, _021021ec ; =data_ov00_020eec68
mov r3, #0x7f
bl func_ov00_020d70a4
mvn r0, #0
add sp, sp, #0x58
str r0, [r6, #4]
ldmia sp!, {r4, r5, r6, pc}
_02101f7c:
cmp r1, r0
addne sp, sp, #0x58
ldmneia sp!, {r4, r5, r6, pc}
ldr r0, _021021d4 ; =data_027e0f64
ldr r0, [r0]
ldr r0, [r0, #4]
bl func_ov00_02089ac8
cmp r0, #0
addne sp, sp, #0x58
ldmneia sp!, {r4, r5, r6, pc}
ldr r0, _021021d4 ; =data_027e0f64
ldr r0, [r0]
ldr r0, [r0, #4]
ldr r1, [r0, #0x160]
cmp r1, #5
cmpne r1, #6
cmpne r1, #0xc
beq _02102068
add r1, r6, #0xe4
bl func_ov00_02087d34
ldr r0, _021021d4 ; =data_027e0f64
ldr r1, [r0]
ldr r1, [r1, #4]
ldr r3, [r1, #0x270]
ldr r2, [r1, #0x274]
ldr r1, [r1, #0x26c]
str r1, [r6, #0xcc]
str r3, [r6, #0xd0]
str r2, [r6, #0xd4]
ldr r1, [r0]
ldr r1, [r1, #4]
ldr r3, [r1, #0x264]
ldr r2, [r1, #0x268]
ldr r1, [r1, #0x260]
str r1, [r6, #0xd8]
str r3, [r6, #0xdc]
str r2, [r6, #0xe0]
ldr r0, [r0]
ldr r0, [r0, #4]
ldr r0, [r0, #0x15c]
cmp r0, #0x54
bne _02102068
add r0, sp, #0xa
str r0, [sp]
add r2, sp, #0x18
add r3, sp, #0xc
add r0, r6, #0xcc
add r1, r6, #0xd8
bl func_0202b734
ldr r1, [sp, #0x18]
mov r0, #0
str r1, [r6, #0xfc]
ldrsh r1, [sp, #0xa]
str r1, [r6, #0xf8]
ldrsh r1, [sp, #0xc]
str r1, [r6, #0xf4]
str r0, [r6, #0x108]
str r0, [r6, #0x104]
str r0, [r6, #0x100]
_02102068:
ldr r4, [r6, #0xc]
add ip, r6, #0x48
ldr r0, [r4]
add lr, r4, #0x30
str r0, [r6, #0x18]
ldr r0, [r4, #4]
mov r5, #6
str r0, [r6, #0x1c]
ldr r0, [r4, #8]
str r0, [r6, #0x20]
ldrb r0, [r4, #0xc]
strb r0, [r6, #0x24]
ldrb r0, [r4, #0xd]
strb r0, [r6, #0x25]
ldrb r0, [r4, #0xe]
strb r0, [r6, #0x26]
ldrb r0, [r4, #0xf]
strb r0, [r6, #0x27]
ldrb r0, [r4, #0x10]
strb r0, [r6, #0x28]
ldrb r0, [r4, #0x11]
strb r0, [r6, #0x29]
ldrb r0, [r4, #0x12]
strb r0, [r6, #0x2a]
ldrb r0, [r4, #0x13]
strb r0, [r6, #0x2b]
ldrb r0, [r4, #0x14]
strb r0, [r6, #0x2c]
ldrb r0, [r4, #0x15]
strb r0, [r6, #0x2d]
ldrb r0, [r4, #0x16]
strb r0, [r6, #0x2e]
ldrb r0, [r4, #0x17]
strb r0, [r6, #0x2f]
ldrb r0, [r4, #0x18]
strb r0, [r6, #0x30]
ldrb r0, [r4, #0x19]
strb r0, [r6, #0x31]
ldrb r0, [r4, #0x1a]
strb r0, [r6, #0x32]
ldrb r0, [r4, #0x1b]
strb r0, [r6, #0x33]
ldrb r0, [r4, #0x1c]
strb r0, [r6, #0x34]
ldrsh r0, [r4, #0x1e]
strh r0, [r6, #0x36]
ldrsh r0, [r4, #0x20]
strh r0, [r6, #0x38]
ldr r0, [r4, #0x24]
str r0, [r6, #0x3c]
ldr r0, [r4, #0x28]
str r0, [r6, #0x40]
ldr r0, [r4, #0x2c]
str r0, [r6, #0x44]
_02102140:
ldmia lr!, {r0, r1, r2, r3}
stmia ip!, {r0, r1, r2, r3}
subs r5, r5, #1
bne _02102140
ldmia lr, {r0, r1}
stmia ip, {r0, r1}
ldr r0, [r4, #0x98]
add r1, r6, #0x1c
str r0, [r6, #0xb0]
ldrsh r0, [r4, #0x9c]
strh r0, [r6, #0xb4]
ldrsh r0, [r4, #0x9e]
strh r0, [r6, #0xb6]
ldrsh r0, [r4, #0xa0]
strh r0, [r6, #0xb8]
ldr r0, [r4, #0xa4]
str r0, [r6, #0xbc]
ldr r0, [r4, #0xa8]
str r0, [r6, #0xc0]
ldr r0, [r4, #0xac]
str r0, [r6, #0xc4]
ldr r0, [r4, #0xb0]
str r0, [r6, #0xc8]
ldr r0, [r6, #8]
bl func_ov00_020981b8
ldr r1, [r6, #0xc]
mov r2, #0
strb r2, [sp, #8]
sub r0, sp, #4
strb r2, [r0]
ldr r2, [r0]
add r0, r6, #0xc
str r1, [sp, #0x14]
str r1, [sp, #0x10]
bl func_ov05_021021f0
add sp, sp, #0x58
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
arm_func_end func_ov05_02101b14
_021021d4: .word data_027e0f64
_021021d8: .word data_027e0d38
_021021dc: .word data_027e0e60
_021021e0: .word data_027e0f94
_021021e4: .word data_027e0ffc
_021021e8: .word data_ov00_020eec9c
_021021ec: .word data_ov00_020eec68
.global func_ov05_021021f0
arm_func_start func_ov05_021021f0
func_ov05_021021f0: ; 0x021021f0
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
mov r6, r0
ldr r3, [r6]
ldr r2, [r6, #4]
mov r0, #0xb4
mla r4, r2, r0, r3
mov r5, r1
sub r3, r4, r5
ldr r2, _021023a8 ; =0xb60b60b7
mov r0, r3, lsr #0x1f
smull r1, r7, r2, r3
add r7, r3, r7
add r7, r0, r7, asr #7
subs r0, r7, #1
beq _02102378
add ip, r5, #0xb4
mov lr, r5
cmp ip, r4
bhs _02102378
_0210223c:
ldr r0, [ip]
add sb, ip, #0x30
str r0, [lr]
ldr r0, [ip, #4]
add r8, lr, #0x30
str r0, [lr, #4]
ldr r0, [ip, #8]
mov r7, #6
str r0, [lr, #8]
ldrb r0, [ip, #0xc]
strb r0, [lr, #0xc]
ldrb r0, [ip, #0xd]
strb r0, [lr, #0xd]
ldrb r0, [ip, #0xe]
strb r0, [lr, #0xe]
ldrb r0, [ip, #0xf]
strb r0, [lr, #0xf]
ldrb r0, [ip, #0x10]
strb r0, [lr, #0x10]
ldrb r0, [ip, #0x11]
strb r0, [lr, #0x11]
ldrb r0, [ip, #0x12]
strb r0, [lr, #0x12]
ldrb r0, [ip, #0x13]
strb r0, [lr, #0x13]
ldrb r0, [ip, #0x14]
strb r0, [lr, #0x14]
ldrb r0, [ip, #0x15]
strb r0, [lr, #0x15]
ldrb r0, [ip, #0x16]
strb r0, [lr, #0x16]
ldrb r0, [ip, #0x17]
strb r0, [lr, #0x17]
ldrb r0, [ip, #0x18]
strb r0, [lr, #0x18]
ldrb r0, [ip, #0x19]
strb r0, [lr, #0x19]
ldrb r0, [ip, #0x1a]
strb r0, [lr, #0x1a]
ldrb r0, [ip, #0x1b]
strb r0, [lr, #0x1b]
ldrb r0, [ip, #0x1c]
strb r0, [lr, #0x1c]
ldrsh r0, [ip, #0x1e]
strh r0, [lr, #0x1e]
ldrsh r0, [ip, #0x20]
strh r0, [lr, #0x20]
ldr r0, [ip, #0x24]
str r0, [lr, #0x24]
ldr r0, [ip, #0x28]
str r0, [lr, #0x28]
ldr r0, [ip, #0x2c]
str r0, [lr, #0x2c]
_02102310:
ldmia sb!, {r0, r1, r2, r3}
stmia r8!, {r0, r1, r2, r3}
subs r7, r7, #1
bne _02102310
ldmia sb, {r0, r1}
stmia r8, {r0, r1}
ldr r0, [ip, #0x98]
str r0, [lr, #0x98]
ldrsh r0, [ip, #0x9c]
strh r0, [lr, #0x9c]
ldrsh r0, [ip, #0x9e]
strh r0, [lr, #0x9e]
ldrsh r0, [ip, #0xa0]
strh r0, [lr, #0xa0]
ldr r0, [ip, #0xa4]
str r0, [lr, #0xa4]
ldr r0, [ip, #0xa8]
str r0, [lr, #0xa8]
ldr r0, [ip, #0xac]
str r0, [lr, #0xac]
ldr r0, [ip, #0xb0]
add ip, ip, #0xb4
str r0, [lr, #0xb0]
cmp ip, r4
add lr, lr, #0xb4
blo _0210223c
_02102378:
mov r0, #0
strb r0, [sp]
ldr r1, [r6, #4]
mov r0, #0xb4
sub r2, r1, #1
str r2, [r6, #4]
ldr r1, [r6]
mla r0, r2, r0, r1
add r0, r0, #4
bl func_ov00_0209a508
mov r0, r5
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
.align 2, 0
arm_func_end func_ov05_021021f0
_021023a8: .word 0xb60b60b7
.global func_ov05_021023ac
arm_func_start func_ov05_021023ac
func_ov05_021023ac: ; 0x021023ac
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
ldr r3, _021026a4 ; =data_027e0618
mov sl, r0
ldr r0, [r3, #0xcc]
mov sb, r1
mov r8, r2
cmp r0, #0
mov r4, #0
beq _02102460
cmp r0, #1
bne _02102498
ldrb r0, [r3, #0x101]
cmp r0, #0
beq _021023f8
ldr r0, _021026a8 ; =data_027e103c
mov r1, r8
ldr r0, [r0]
bl func_ov05_02103bb0
b _02102498
_021023f8:
cmp sb, #1
beq _02102498
cmp r8, #0
moveq r1, #1
movne r1, r4
cmp r1, #0
beq _0210243c
bl func_ov05_02100bf0
cmp r0, #0
beq _02102438
ldr r0, _021026a8 ; =data_027e103c
ldr r0, [r0]
bl func_ov05_02103cb0
cmp r0, #0
movne r1, #1
bne _0210243c
_02102438:
mov r1, #0
_0210243c:
ldr r0, _021026a4 ; =data_027e0618
ldrb r0, [r0, #0x101]
cmp r0, #0
bne _02102498
ldr r0, _021026a8 ; =data_027e103c
mov r2, r8
ldr r0, [r0]
bl func_ov05_02103bc8
b _02102498
_02102460:
ldr r0, _021026ac ; =data_ov00_020ec7dc
ldrb r0, [r0, #0x3c]
cmp r0, #0
movne r4, #7
bne _02102498
ldrb r0, [r3, #0x102]
cmp r0, #0
movne r4, #2
bne _02102498
ldr r0, _021026b0 ; =data_027e0d38
ldr r0, [r0]
add r0, r0, #0xc
bl func_ov00_020a5e9c
mov r4, #3
_02102498:
ldr r0, _021026a4 ; =data_027e0618
ldrb r0, [r0, #0x101]
cmp r0, #0
bne _0210269c
ldr r0, _021026b4 ; =data_027e0e5c
ldrh r0, [r0]
cmp r0, #0
ldr r0, _021026b0 ; =data_027e0d38
movne r6, #1
ldr r0, [r0]
moveq r6, #0
cmp sb, #1
moveq r7, #1
movne r7, #0
cmp r6, #0
ldr r5, [r0, #0x14]
bne _02102618
cmp r7, #0
bne _02102544
cmp r5, #1
beq _02102544
ldrb r0, [sl, #3]
cmp r8, #0
moveq r1, #1
movne r1, #0
cmp r0, #0
ldrne r0, _021026b8 ; =data_027e0c54
ldrneb r0, [r0]
cmpne r0, #0
movne r1, r8
cmp r1, #0
beq _02102544
ldr r0, _021026bc ; =data_027e0f74
ldr r0, [r0]
bl func_ov00_02097738
cmp r0, #0
bne _02102538
ldr r0, _021026c0 ; =data_027e1038
ldr r0, [r0]
bl func_ov00_020ceee0
_02102538:
ldr r0, _021026c4 ; =data_027e0ff8
ldr r0, [r0]
bl func_ov05_021083e0
_02102544:
ldr r0, _021026c8 ; =data_027e071c
bl func_0202d7ac
cmp r0, #0
bne _02102598
ldr r1, _021026cc ; =data_027e0e2c
mvn r0, #0
ldr r1, [r1, #4]
cmp r1, r0
bne _02102598
ldr r0, _021026d0 ; =data_027e0d04
ldrsh r0, [r0, #2]
cmp r0, #0
bgt _02102598
ldr r0, _021026a8 ; =data_027e103c
ldr r0, [r0]
bl func_ov05_02103f4c
cmp r0, #0
bne _02102598
cmp r5, #1
movne r2, #1
bne _0210259c
_02102598:
mov r2, #0
_0210259c:
ldr r0, _021026d4 ; =data_027e0f90
mov r1, r8
ldr r0, [r0]
ldr r3, [r0]
ldr r3, [r3, #0x2c]
blx r3
ldr r0, _021026d8 ; =data_027e0f64
mov r1, r8
ldr r0, [r0]
mov r2, #0
bl func_ov00_0208b11c
cmp r7, #0
bne _02102618
ldr r0, _021026dc ; =data_027e0f78
mov r1, r8
ldr r0, [r0]
bl func_ov05_021017e8
ldr r0, _021026e0 ; =data_027e0e60
mov r1, r8
ldr r0, [r0]
bl func_ov05_0210112c
cmp sb, #2
beq _02102608
ldr r0, _021026e4 ; =data_027e0fe4
mov r1, r8
ldr r0, [r0]
bl func_ov05_02105140
_02102608:
ldr r0, _021026e8 ; =data_027e0f6c
mov r1, r8
ldr r0, [r0]
bl func_01ffec78
_02102618:
ldr r0, _021026a4 ; =data_027e0618
ldr r0, [r0]
cmp r0, #6
bne _02102638
ldr r0, _021026ec ; =data_ov12_0213deb0
mov r1, r8
bl func_ov12_02134208
b _02102658
_02102638:
ldr r0, _021026b0 ; =data_027e0d38
ldr r0, [r0]
bl func_ov00_02078b40
cmp r0, #2
bne _02102658
ldr r0, _021026f0 ; =data_ov15_02190458
mov r1, r8
bl func_ov15_021849ec
_02102658:
cmp r7, #0
bne _02102678
ldr r0, _021026f4 ; =data_027e0e58
mov r1, r8
ldr r0, [r0]
mov r3, r6
mov r2, #0
bl func_ov05_0210d774
_02102678:
cmp r6, #0
cmpeq r8, #0
bne _0210269c
ldr r0, _021026bc ; =data_027e0f74
ldr r0, [r0]
bl func_ov05_02101ae8
ldr r0, _021026bc ; =data_027e0f74
ldr r0, [r0]
bl func_ov05_02101af8
_0210269c:
mov r0, r4
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
.align 2, 0
arm_func_end func_ov05_021023ac
_021026a4: .word data_027e0618
_021026a8: .word data_027e103c
_021026ac: .word data_ov00_020ec7dc
_021026b0: .word data_027e0d38
_021026b4: .word data_027e0e5c
_021026b8: .word data_027e0c54
_021026bc: .word data_027e0f74
_021026c0: .word data_027e1038
_021026c4: .word data_027e0ff8
_021026c8: .word data_027e071c
_021026cc: .word data_027e0e2c
_021026d0: .word data_027e0d04
_021026d4: .word data_027e0f90
_021026d8: .word data_027e0f64
_021026dc: .word data_027e0f78
_021026e0: .word data_027e0e60
_021026e4: .word data_027e0fe4
_021026e8: .word data_027e0f6c
_021026ec: .word data_ov12_0213deb0
_021026f0: .word data_ov15_02190458
_021026f4: .word data_027e0e58
.global func_ov05_021026f8
arm_func_start func_ov05_021026f8
func_ov05_021026f8: ; 0x021026f8
stmdb sp!, {r3, r4, r5, lr}
ldr r0, _02102740 ; =data_027e103c
mov r4, r2
ldr r0, [r0]
mov r5, r1
mov r1, r4
bl func_ov05_02103df0
cmp r5, #1
ldmeqia sp!, {r3, r4, r5, pc}
ldr r0, _02102744 ; =data_027e0e60
mov r1, r4
ldr r0, [r0]
bl func_ov05_021011b4
ldr r0, _02102748 ; =data_027e0fc0
mov r1, #0
ldr r0, [r0]
bl func_ov00_020b8600
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov05_021026f8
_02102740: .word data_027e103c
_02102744: .word data_027e0e60
_02102748: .word data_027e0fc0
.global func_ov05_0210274c
arm_func_start func_ov05_0210274c
func_ov05_0210274c: ; 0x0210274c
stmdb sp!, {r3, r4, r5, r6, lr}
sub sp, sp, #4
cmp r1, #1
mov r5, r0
mov r4, r2
addeq sp, sp, #4
ldmeqia sp!, {r3, r4, r5, r6, pc}
ldrb r0, [r5]
cmp r0, #0
beq _02102798
ldrh r2, [r4]
ldr r0, _02102814 ; =data_027e103c
add r1, sp, #0
bic r2, r2, #0xc
ldr r0, [r0]
strh r2, [sp]
bl func_ov05_02103e1c
add sp, sp, #4
ldmia sp!, {r3, r4, r5, r6, pc}
_02102798:
ldr r0, _02102814 ; =data_027e103c
mov r1, r4
ldr r0, [r0]
bl func_ov05_02103e1c
ldr r0, _02102818 ; =data_027e0c54
ldrb r6, [r0]
cmp r6, #0
ldrneb r0, [r5, #1]
cmpne r0, #0
bne _021027d8
ldr r0, _0210281c ; =data_027e0f90
mov r1, r4
ldr r0, [r0]
ldr r2, [r0]
ldr r2, [r2, #0x24]
blx r2
_021027d8:
cmp r6, #0
ldrneb r0, [r5, #2]
cmpne r0, #0
addne sp, sp, #4
ldmneia sp!, {r3, r4, r5, r6, pc}
ldr r0, _02102820 ; =data_027e0fe4
mov r1, r4
ldr r0, [r0]
bl func_ov05_02105304
ldr r0, _02102824 ; =data_027e0e60
mov r1, r4
ldr r0, [r0]
bl func_ov05_021011cc
add sp, sp, #4
ldmia sp!, {r3, r4, r5, r6, pc}
.align 2, 0
arm_func_end func_ov05_0210274c
_02102814: .word data_027e103c
_02102818: .word data_027e0c54
_0210281c: .word data_027e0f90
_02102820: .word data_027e0fe4
_02102824: .word data_027e0e60
.global func_ov05_02102828
arm_func_start func_ov05_02102828
func_ov05_02102828: ; 0x02102828
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
ldr r0, _02102a38 ; =data_027e0d38
mov sb, r1
ldr r0, [r0]
mov r8, r2
bl func_ov00_02078b40
cmp r0, #2
moveq r4, #1
movne r4, #0
cmp r4, #0
mov r6, #0
cmpne r8, #0
beq _02102874
ldr r0, _02102a38 ; =data_027e0d38
ldr r0, [r0]
add r0, r0, #0xc
bl func_ov00_020a5e9c
cmp r0, #3
moveq r6, #1
_02102874:
ldr r0, _02102a38 ; =data_027e0d38
cmp sb, #1
ldr r0, [r0]
moveq r7, #1
movne r7, #0
cmp r4, #0
mov r5, #0
ldr r4, [r0, #0x14]
beq _021028d4
cmp r6, #0
mov r5, #1
bne _021028d0
add r0, r0, #0xc
bl func_ov00_020a5e9c
cmp r0, #2
beq _021028d0
ldr r0, _02102a3c ; =data_027e10a4
ldr r1, [r0]
ldr r0, [r1, #0x2c]
cmp r0, #5
ldreq r0, [r1, #0x324]
cmpeq r0, #6
bne _021028d4
_021028d0:
mov r5, #0
_021028d4:
ldr r1, _02102a40 ; =data_ov00_020e9370
mov r0, #0
ldr r2, _02102a44 ; =data_ov00_020e9c70
str r0, [r1, #0x904]
ldr r1, _02102a48 ; =data_ov00_020e9c88
strh r0, [r2, #8]
ldr r3, _02102a4c ; =data_027e0de4
str r0, [r1, #0x180]
ldr r1, _02102a50 ; =data_027e0de8
mov r2, #0x20
str r0, [r3]
bl func_02007938
cmp r5, #0
bne _02102920
ldr r0, _02102a54 ; =data_027e0f88
mov r2, r5
ldr r0, [r0]
mov r1, #1
bl func_ov05_02101804
_02102920:
ldr r0, _02102a58 ; =data_027e0f64
mov r1, r8
ldr r0, [r0]
bl func_ov05_02101abc
cmp r5, #0
beq _0210294c
ldr r0, _02102a54 ; =data_027e0f88
mov r2, r5
ldr r0, [r0]
mov r1, #1
bl func_ov05_02101804
_0210294c:
ldr r0, _02102a54 ; =data_027e0f88
mov r2, r5
ldr r0, [r0]
mov r1, #0
bl func_ov05_02101804
cmp r7, #0
bne _02102978
ldr r0, _02102a5c ; =data_027e0e60
mov r1, r8
ldr r0, [r0]
bl func_ov05_021011fc
_02102978:
ldr r0, _02102a60 ; =data_027e0f90
mov r1, r8
ldr r0, [r0]
ldr r2, [r0]
ldr r2, [r2, #0x28]
blx r2
cmp r7, #0
ldmneia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
cmp sb, #2
beq _021029b0
ldr r0, _02102a64 ; =data_027e0fe4
mov r1, r8
ldr r0, [r0]
bl func_ov05_0210535c
_021029b0:
ldr r0, _02102a40 ; =data_ov00_020e9370
mov r1, r8
bl func_ov05_02102d1c
ldr r0, _02102a48 ; =data_ov00_020e9c88
bl func_ov00_0207b90c
ldr r0, _02102a68 ; =data_027e0618
ldr r0, [r0]
cmp r0, #2
bne _021029ec
cmp r4, #1
beq _021029ec
ldr r0, _02102a6c ; =data_027e1048
mov r1, r8
ldr r0, [r0]
bl func_ov09_02118cd4
_021029ec:
ldr r0, _02102a70 ; =data_027e077c
ldrb r0, [r0, #0xa]
cmp r0, #0
bne _02102a10
ldr r0, _02102a74 ; =data_027e0e58
mov r1, r8
ldr r0, [r0]
mov r2, #0
bl func_ov05_0210d820
_02102a10:
ldr r0, _02102a78 ; =data_027e103c
mov r1, r8
ldr r0, [r0]
bl func_ov05_02103e88
ldr r0, _02102a7c ; =data_027e0e2c
mov r1, r8
bl func_ov05_0210cb8c
ldr r0, _02102a4c ; =data_027e0de4
bl func_ov00_0207bb4c
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
.align 2, 0
arm_func_end func_ov05_02102828
_02102a38: .word data_027e0d38
_02102a3c: .word data_027e10a4
_02102a40: .word data_ov00_020e9370
_02102a44: .word data_ov00_020e9c70
_02102a48: .word data_ov00_020e9c88
_02102a4c: .word data_027e0de4
_02102a50: .word data_027e0de8
_02102a54: .word data_027e0f88
_02102a58: .word data_027e0f64
_02102a5c: .word data_027e0e60
_02102a60: .word data_027e0f90
_02102a64: .word data_027e0fe4
_02102a68: .word data_027e0618
_02102a6c: .word data_027e1048
_02102a70: .word data_027e077c
_02102a74: .word data_027e0e58
_02102a78: .word data_027e103c
_02102a7c: .word data_027e0e2c
.global func_ov05_02102a80
arm_func_start func_ov05_02102a80
func_ov05_02102a80: ; 0x02102a80
stmdb sp!, {r4, lr}
cmp r0, #0
ldmneia sp!, {r4, pc}
ldr r0, _02102af8 ; =data_027e0c54
ldrb r4, [r0]
mov r0, r4
blx func_ov00_0207b144
mov r0, r4
blx func_ov00_0207b030
cmp r4, #0
beq _02102ac0
ldr r0, _02102afc ; =data_02075dac
mov r1, #0
mov r2, #1
bl func_0203fab0
ldmia sp!, {r4, pc}
_02102ac0:
blx func_ov00_0207b1e4
ldr r0, _02102b00 ; =data_027e0d3c
mov r1, #0
ldr r0, [r0]
bl func_ov00_02079878
ldr r0, _02102b04 ; =data_027e103c
mov r1, #0
ldr r0, [r0]
bl func_ov00_020cf13c
ldr r0, _02102b08 ; =data_027e0cbc
mov r2, #0
ldr r1, [r0, #0x1c]
bl func_ov03_020fa874
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov05_02102a80
_02102af8: .word data_027e0c54
_02102afc: .word data_02075dac
_02102b00: .word data_027e0d3c
_02102b04: .word data_027e103c
_02102b08: .word data_027e0cbc
.global func_ov05_02102b0c
arm_func_start func_ov05_02102b0c
func_ov05_02102b0c: ; 0x02102b0c
stmdb sp!, {r4, r5, r6, r7, r8, lr}
ldr ip, _02102c28 ; =data_027e0e60
mov r8, r0
mov r7, r1
mov r4, r2
ldr r0, [ip]
mov r5, #0
mov r1, r8
mov r2, r7
mov r6, r3
str r5, [r4]
bl func_ov00_020840a0
cmp r0, #0x30
bgt _02102b9c
cmp r0, #0x28
blt _02102b64
beq _02102bc0
cmp r0, #0x29
beq _02102bdc
cmp r0, #0x30
beq _02102bec
b _02102c20
_02102b64:
cmp r0, #0x16
bgt _02102b90
bge _02102bdc
cmp r0, #9
bgt _02102c20
cmp r0, #8
blt _02102c20
beq _02102bcc
cmp r0, #9
beq _02102bc0
b _02102c20
_02102b90:
cmp r0, #0x27
beq _02102bcc
b _02102c20
_02102b9c:
cmp r0, #0x40
bgt _02102bb4
bge _02102bec
cmp r0, #0x35
beq _02102bfc
b _02102c20
_02102bb4:
cmp r0, #0x50
beq _02102bec
b _02102c20
_02102bc0:
mov r5, #1
str r5, [r4]
b _02102c20
_02102bcc:
mov r0, #1
str r0, [r4]
mov r5, #2
b _02102c20
_02102bdc:
mov r0, #1
str r0, [r4]
mov r5, #3
b _02102c20
_02102bec:
mov r0, #3
str r0, [r4]
mov r5, #1
b _02102c20
_02102bfc:
cmp r6, #0
beq _02102c20
mov r0, r8
mov r1, r7
bl func_ov18_021693b0
cmp r0, #0
movne r0, #3
strne r0, [r4]
movne r5, #1
_02102c20:
mov r0, r5
ldmia sp!, {r4, r5, r6, r7, r8, pc}
.align 2, 0
arm_func_end func_ov05_02102b0c
_02102c28: .word data_027e0e60
.global func_ov05_02102c2c
arm_func_start func_ov05_02102c2c
func_ov05_02102c2c: ; 0x02102c2c
stmdb sp!, {r3, r4, r5, r6, r7, lr}
cmp r3, #0
ldrgt lr, [sp, #0x18]
cmpgt lr, #0
ldmleia sp!, {r3, r4, r5, r6, r7, pc}
ldr ip, [sp, #0x20]
cmp ip, #0
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
ldr r5, [r0, #0x904]
cmp r5, #0x60
ldmgeia sp!, {r3, r4, r5, r6, r7, pc}
mov r4, #0x18
mul r7, r5, r4
ldr r4, [r2]
ldrb r5, [sp, #0x24]
str r4, [r0, r7]
ldr r6, [r2, #4]
add r4, r0, r7
str r6, [r4, #4]
ldr r6, [r2, #8]
ldrsh r2, [sp, #0x1c]
str r6, [r4, #8]
str r3, [r4, #0xc]
str lr, [r4, #0x10]
strh r2, [r4, #0x14]
mov r2, #0
strb r2, [r4, #0x16]
strb r2, [r4, #0x17]
ldrb r3, [r4, #0x16]
and r2, ip, #0x1f
mov r1, r1, lsl #0x1d
orr r2, r3, r2
orr r1, r2, r1, lsr #24
strb r1, [r4, #0x16]
cmp r5, #0
ldrneb r1, [r4, #0x17]
orrne r1, r1, #1
strneb r1, [r4, #0x17]
ldrb r1, [sp, #0x28]
cmp r1, #0
ldrneb r1, [r4, #0x17]
orrne r1, r1, #2
strneb r1, [r4, #0x17]
ldrb r1, [sp, #0x2c]
cmp r1, #0
ldrneb r1, [r4, #0x17]
orrne r1, r1, #4
strneb r1, [r4, #0x17]
ldr r1, [r0, #0x904]
add r1, r1, #1
str r1, [r0, #0x904]
ldmia sp!, {r3, r4, r5, r6, r7, pc}
arm_func_end func_ov05_02102c2c
.global func_ov05_02102cfc
arm_func_start func_ov05_02102cfc
func_ov05_02102cfc: ; 0x02102cfc
ldr r3, [r0, #0x18]
ldr r2, [r1, #0x18]
subs r2, r3, r2
ldreqh r2, [r0, #0x26]
ldreqh r0, [r1, #0x26]
subeq r2, r2, r0
mov r0, r2
bx lr
arm_func_end func_ov05_02102cfc
.global func_ov05_02102d1c
arm_func_start func_ov05_02102d1c
func_ov05_02102d1c: ; 0x02102d1c
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x90
str r0, [sp, #0x28]
ldr r0, [r0, #0x904]
cmp r0, #0
bgt _02102d4c
ldr r0, [sp, #0x28]
add r0, r0, #0x900
ldrsh r0, [r0, #8]
cmp r0, #0
addle sp, sp, #0x90
ldmleia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
_02102d4c:
cmp r1, #0
beq _02102d6c
ldr r0, [sp, #0x28]
add r0, r0, #0x900
ldrh r0, [r0, #0xa]
tst r0, #0x10
addne sp, sp, #0x90
ldmneia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
_02102d6c:
ldr r8, _02103558 ; =data_020691a0
bl func_ov05_02103ba0
str r0, [sp, #0x44]
ldr r0, [sp, #0x28]
mov r1, #0x20
bl func_ov05_02103b88
mov fp, r0
mov r2, #0
ldr r0, [sp, #0x28]
mov r1, #1
str r2, [sp, #0x40]
bl func_ov05_02103b88
cmp r0, #0
bne _02102de0
ldr r0, [sp, #0x28]
mov r1, #0x20
bl func_ov05_02103b88
cmp r0, #0
bne _02102dd8
ldr r0, [sp, #0x44]
bl func_ov00_0208430c
cmp r0, #0
bne _02102dd8
ldr r0, [sp, #0x44]
bl func_ov00_02084318
cmp r0, #0
beq _02102de0
_02102dd8:
mov r0, #1
str r0, [sp, #0x40]
_02102de0:
ldr r0, [sp, #0x28]
mov r1, #2
mov sl, #0
bl func_ov05_02103b88
cmp r0, #0
moveq r0, sl
streq r0, [sp, #0x30]
beq _02102e0c
ldr r0, [sp, #0x44]
bl func_ov00_02082424
str r0, [sp, #0x30]
_02102e0c:
ldr r0, [sp, #0x28]
ldr r7, [sp, #0x28]
ldr r0, [r0, #0x904]
mov r5, #0
cmp r0, #0
ble _02103224
_02102e24:
mov r0, #0x30
mla r6, sl, r0, r8
mov r1, r7
add r0, r6, #0x10
bl func_ov05_02103b6c
ldr r0, [sp, #0x28]
mov r1, #2
bl func_ov05_02103b88
cmp r0, #0
ldrne r0, [sp, #0x30]
strne r0, [r6, #0x14]
bne _02102ee8
mov r0, r7
mov r1, #1
bl func_ov05_02103b58
cmp r0, #0
bne _02102ee8
add r0, sp, #0x78
mov r1, r7
bl func_ov05_02103b3c
ldr r1, [sp, #0x44]
add r0, sp, #0x74
add r2, sp, #0x78
bl func_ov00_02083fb0
add r0, sp, #0x74
bl func_ov05_02103b2c
cmp r0, #2
moveq r4, #1
add r0, sp, #0x74
movne r4, #0
bl func_ov05_02103b28
add r0, sp, #0x78
bl func_0202bac0
cmp r4, #0
bne _02103204
add r0, sp, #0x84
mov r1, r7
bl func_ov05_02103b3c
ldr r0, [sp, #0x44]
add r1, sp, #0x84
mov r2, #1
bl func_ov00_02083ee0
str r0, [r6, #0x14]
add r0, sp, #0x84
bl func_0202bac0
ldr r1, [r7, #4]
ldr r0, [r6, #0x14]
cmp r1, r0
blt _02103204
_02102ee8:
mov r0, #0x4000
str r0, [r6]
mov r1, #0
str r1, [r6, #4]
mov r0, r7
str r1, [r6, #8]
bl func_ov05_02103b18
str r0, [r6, #0xc]
ldr r1, [r7, #0xc]
mov r0, r7
str r1, [r6, #0x1c]
ldr r1, [r7, #0x10]
str r1, [r6, #0x20]
ldrsh r1, [r7, #0x14]
strh r1, [r6, #0x24]
strh r5, [r6, #0x26]
bl func_ov05_02103b0c
str r0, [r6, #0x28]
ldr r0, [sp, #0x40]
add sl, sl, #1
cmp r0, #0
beq _0210314c
mov r0, r7
mov r1, #2
bl func_ov05_02103b58
cmp r0, #0
bne _0210314c
ldr r1, [r7]
ldr r0, [sp, #0x44]
bl func_ov00_020839d4
mov sb, r0
ldr r0, [sp, #0x44]
ldr r1, [r7, #8]
bl func_ov00_020839f8
str r0, [sp, #0x34]
ldr r1, [sp, #0x34]
mov r0, sb
add r2, r6, #8
mov r3, fp
bl func_ov05_02102b0c
str r0, [r6, #4]
ldr r0, [r7, #0xc]
str r0, [sp, #0x4c]
ldr r0, [r7, #0x10]
str r0, [sp, #0x50]
ldrsh r0, [r7, #0x14]
cmp r0, #0
beq _0210302c
mov r0, r0, lsl #0x10
mov r0, r0, lsr #0x10
bl func_ov05_02103af4
mov r4, r0
ldrh r0, [r7, #0x14]
bl func_ov05_02103ad4
str r0, [sp, #0x54]
ldr r0, [r7, #0xc]
ldr r1, [sp, #0x54]
bl func_ov05_02103abc
bl func_ov05_02103ab0
str r0, [sp, #0x58]
ldr r0, [r7, #0x10]
mov r1, r4
bl func_ov05_02103abc
bl func_ov05_02103ab0
mov r1, r0
ldr r0, [sp, #0x58]
bl func_ov05_02103aa4
str r0, [sp, #0x4c]
ldr r0, [r7, #0xc]
mov r1, r4
bl func_ov05_02103abc
bl func_ov05_02103ab0
mov r4, r0
ldr r1, [sp, #0x54]
ldr r0, [r7, #0x10]
bl func_ov05_02103abc
bl func_ov05_02103ab0
mov r1, r0
mov r0, r4
bl func_ov05_02103aa4
str r0, [sp, #0x50]
_0210302c:
ldr r0, [sp, #0x4c]
mov r4, #0
rsb r0, r0, #0
str r0, [sp, #0x3c]
ldr r0, [sp, #0x50]
rsb r0, r0, #0
str r0, [sp, #0x38]
_02103048:
cmp r4, #0
ldrne r0, [sp, #0x3c]
strne r0, [sp, #0x2c]
ldreq r0, [sp, #0x4c]
streq r0, [sp, #0x2c]
mov r0, r7
bl func_ov05_02103b18
str r0, [sp, #0x5c]
mov r0, r7
bl func_ov05_02103b0c
ldr r2, [sp, #0x34]
mov r1, sl
str r2, [sp]
ldr r2, [sp, #0x2c]
mov r3, sb
str r2, [sp, #4]
ldr r2, [sp, #0x5c]
str r2, [sp, #8]
str r7, [sp, #0xc]
ldr r2, [r7, #0xc]
str r2, [sp, #0x10]
ldr r2, [r7, #0x10]
str r2, [sp, #0x14]
ldrsh r2, [r7, #0x14]
str r2, [sp, #0x18]
str r5, [sp, #0x1c]
str r0, [sp, #0x20]
str fp, [sp, #0x24]
ldr r2, [r6, #4]
mov r0, r8
bl func_ov05_021038c8
cmp r4, #0
ldrne sl, [sp, #0x38]
str r0, [sp, #0x48]
mov r0, r7
ldreq sl, [sp, #0x50]
bl func_ov05_02103b18
str r0, [sp, #0x60]
mov r0, r7
bl func_ov05_02103b0c
ldr r2, [sp, #0x34]
ldr r1, [sp, #0x48]
stmia sp, {r2, sl}
ldr r2, [sp, #0x60]
mov r3, sb
str r2, [sp, #8]
str r7, [sp, #0xc]
ldr r2, [r7, #0xc]
str r2, [sp, #0x10]
ldr r2, [r7, #0x10]
str r2, [sp, #0x14]
ldrsh r2, [r7, #0x14]
str r2, [sp, #0x18]
str r5, [sp, #0x1c]
str r0, [sp, #0x20]
str fp, [sp, #0x24]
ldr r2, [r6, #4]
mov r0, r8
bl func_ov05_0210373c
mov sl, r0
add r0, r4, #1
mov r0, r0, lsl #0x10
mov r4, r0, lsr #0x10
cmp r4, #2
blo _02103048
_0210314c:
ldr r0, [sp, #0x28]
mov r1, #4
bl func_ov05_02103b88
cmp r0, #0
bne _02103174
mov r0, r7
mov r1, #4
bl func_ov05_02103b58
cmp r0, #0
beq _02103204
_02103174:
ldr r0, [r6, #4]
cmp r0, #0
bne _02103204
ldr r0, [sp, #0x28]
mov r1, #1
bl func_ov05_02103b88
cmp r0, #0
beq _021031c0
ldr r0, [sp, #0x28]
mov r1, #2
bl func_ov05_02103b88
cmp r0, #0
bne _021031c0
ldr r0, [sp, #0x28]
ldr r1, [r6, #0x14]
ldr r0, [r0, #0x914]
add r0, r1, r0
str r0, [r6, #0x14]
b _021031fc
_021031c0:
ldr r0, [sp, #0x28]
mov r1, #8
bl func_ov05_02103b88
cmp r0, #0
ldr r1, [r6, #0x14]
beq _021031ec
ldr r0, [sp, #0x28]
ldr r0, [r0, #0x910]
add r0, r1, r0
str r0, [r6, #0x14]
b _021031fc
_021031ec:
ldr r0, [sp, #0x28]
ldr r0, [r0, #0x90c]
add r0, r1, r0
str r0, [r6, #0x14]
_021031fc:
mov r0, #0
str r0, [r6]
_02103204:
add r0, r5, #1
mov r1, r0, lsl #0x10
ldr r0, [sp, #0x28]
mov r5, r1, lsr #0x10
ldr r0, [r0, #0x904]
add r7, r7, #0x18
cmp r0, r1, lsr #16
bgt _02102e24
_02103224:
cmp sl, #0
bgt _02103240
ldr r0, [sp, #0x28]
add r0, r0, #0x900
ldrsh r0, [r0, #8]
cmp r0, #0
ble _02103250
_02103240:
bl func_01ffa8d4
ldr r1, _0210355c ; =0x0000ffff
ldr r0, _02103560 ; =0x040004c0
str r1, [r0]
_02103250:
cmp sl, #0
ble _02103530
cmp sl, #1
ble _0210327c
mov r2, #0x30
mla r4, sl, r2, r8
ldr r3, _02103564 ; =func_ov05_02102cfc
mov r0, r8
mov r1, sl
str r4, [sp]
bl func_0200be04
_0210327c:
ldr r0, _02103568 ; =data_ov00_020e9360
mov r1, #0
mov r6, r8
ldrh r5, [r8, #0x26]
bl func_ov00_02079e68
cmp sl, #0
mov r4, #0
ble _021032d4
ldr sb, _02103568 ; =data_ov00_020e9360
mov r7, r4
_021032a4:
ldrh r2, [r6, #0x26]
cmp r5, r2
beq _021032c0
mov r0, sb
mov r1, r7
mov r5, r2
bl func_ov00_02079e68
_021032c0:
add r4, r4, #1
strb r0, [r6, #0x2c]
cmp r4, sl
add r6, r6, #0x30
blt _021032a4
_021032d4:
bl func_ov05_0210372c
mov r4, r0
mov r1, #0xf
bl func_ov05_02103718
str r0, [sp, #0x64]
mov r0, r4
mov r1, #0x10
bl func_ov05_02103718
str r0, [sp, #0x68]
mov r0, r4
mov r1, #0xf
bl func_ov05_02103704
str r0, [sp, #0x6c]
mov r0, r4
mov r1, #0x10
bl func_ov05_02103704
str r0, [sp, #0x70]
cmp sl, #0
mov sb, #0
ble _02103530
mov r4, #0x1000
ldr r6, _0210356c ; =data_ov05_021122a0
rsb r4, r4, #0
mov r7, sb
mov fp, sb
_02103338:
mov r0, #3
str r0, [sp]
stmib sp, {r0, r7}
ldr r2, [r8, #0xc]
add r1, sp, #0x64
ldr r2, [r1, r2, lsl #2]
mov r0, #6
str r2, [sp, #0xc]
mov r2, #2
mov r1, r7
mov r3, r2
bl func_ov05_021036c4
ldr r2, [r8, #0xc]
add r0, sp, #0x6c
ldr r0, [r0, r2, lsl #2]
mov r1, #6
bl func_ov05_021036a0
ldr r1, [r8, #0x28]
mov r0, fp
str r1, [sp]
ldr r2, [r8]
mov r1, fp
str r2, [sp, #4]
ldrb r3, [r8, #0x2c]
mov r2, #2
bl func_ov05_02103674
bl func_ov05_02103660
ldr r0, [r8, #0x10]
ldr r1, [r8, #0x14]
ldr r2, [r8, #0x18]
bl func_ov05_02103648
ldr r0, [r8, #4]
cmp r0, #1
beq _021033d4
cmp r0, #2
beq _02103404
cmp r0, #3
beq _02103434
b _02103464
_021033d4:
ldr r1, [r8, #8]
ldr r0, [r6, r1, lsl #4]
add r1, r6, r1, lsl #4
ldr r1, [r1, #4]
bl func_02005f58
ldr r2, [r8, #8]
mov r0, #0x1000
add r2, r6, r2, lsl #4
ldr r2, [r2, #0xc]
mov r1, #0
bl func_ov05_02103630
b _02103464
_02103404:
ldr r1, [r8, #8]
ldr r0, [r6, r1, lsl #4]
add r1, r6, r1, lsl #4
ldr r1, [r1, #4]
bl func_02005fd0
ldr r0, [r8, #8]
mov r1, #0
add r0, r6, r0, lsl #4
ldr r0, [r0, #0xc]
mov r2, #0x1000
bl func_ov05_02103630
b _02103464
_02103434:
ldr r1, [r8, #8]
ldr r0, [r6, r1, lsl #4]
add r1, r6, r1, lsl #4
ldr r1, [r1, #4]
rsb r0, r0, #0
bl func_02005fd0
ldr r0, [r8, #8]
mov r1, #0
add r0, r6, r0, lsl #4
ldr r0, [r0, #0xc]
mov r2, #0x1000
bl func_ov05_02103630
_02103464:
ldrsh r5, [r8, #0x24]
cmp r5, #0
beq _02103498
mov r0, r5, lsl #0x10
mov r0, r0, lsr #0x10
bl func_ov05_02103af4
mov r1, r5, lsl #0x10
mov r5, r0
mov r0, r1, lsr #0x10
bl func_ov05_02103ad4
mov r1, r0
mov r0, r5
bl func_02005f94
_02103498:
ldr r0, [r8, #0x1c]
ldr r2, [r8, #0x20]
mov r1, #0
bl func_ov05_02103630
mov r0, #1
bl func_ov05_02103620
mov r0, #0x40000
mov r1, r0
bl func_ov05_021035ec
mov r0, #0x1000
mov r1, #0
mov r2, r0
bl func_ov05_021035b8
mov r0, #0x40000
mov r1, #0
bl func_ov05_021035ec
mov r0, #0x1000
mov r1, r4
bl func_ov05_02103594
mov r0, #0
mov r1, r0
bl func_ov05_021035ec
mov r0, r4
mov r1, r4
bl func_ov05_02103594
mov r0, #0
mov r1, #0x40000
bl func_ov05_021035ec
mov r0, r4
mov r1, #0x1000
bl func_ov05_02103594
bl func_ov05_02103580
mov r0, #1
bl func_ov05_02103570
add sb, sb, #1
cmp sb, sl
add r8, r8, #0x30
blt _02103338
_02103530:
ldr r0, [sp, #0x28]
add r0, r0, #0x900
ldrsh r0, [r0, #8]
cmp r0, #0
addle sp, sp, #0x90
ldmleia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
ldr r0, [sp, #0x28]
bl func_ov18_0216945c
add sp, sp, #0x90
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
arm_func_end func_ov05_02102d1c
_02103558: .word data_020691a0
_0210355c: .word 0x0000ffff
_02103560: .word 0x040004c0
_02103564: .word func_ov05_02102cfc
_02103568: .word data_ov00_020e9360
_0210356c: .word data_ov05_021122a0
.global func_ov05_02103570
arm_func_start func_ov05_02103570
func_ov05_02103570: ; 0x02103570
ldr r1, _0210357c ; =0x04000448
str r0, [r1]
bx lr
.align 2, 0
arm_func_end func_ov05_02103570
_0210357c: .word 0x04000448
.global func_ov05_02103580
arm_func_start func_ov05_02103580
func_ov05_02103580: ; 0x02103580
ldr r0, _02103590 ; =0x04000504
mov r1, #0
str r1, [r0]
bx lr
.align 2, 0
arm_func_end func_ov05_02103580
_02103590: .word 0x04000504
.global func_ov05_02103594
arm_func_start func_ov05_02103594
func_ov05_02103594: ; 0x02103594
mov r1, r1, lsl #0x10
mov r1, r1, lsr #0x10
mov r0, r0, lsl #0x10
mov r2, r1, lsl #0x10
ldr r1, _021035b4 ; =0x04000498
orr r0, r2, r0, lsr #16
str r0, [r1]
bx lr
.align 2, 0
arm_func_end func_ov05_02103594
_021035b4: .word 0x04000498
.global func_ov05_021035b8
arm_func_start func_ov05_021035b8
func_ov05_021035b8: ; 0x021035b8
ldr r3, _021035e4 ; =0x000003ff
mov r1, r1, asr #0x6
mov ip, r2, asr #0x6
and r2, r3, r0, asr #6
mov r0, r1, lsl #0x16
mov r3, ip, lsl #0x16
orr r1, r2, r0, lsr #12
ldr r0, _021035e8 ; =0x04000490
orr r1, r1, r3, lsr #2
str r1, [r0]
bx lr
.align 2, 0
arm_func_end func_ov05_021035b8
_021035e4: .word 0x000003ff
_021035e8: .word 0x04000490
.global func_ov05_021035ec
arm_func_start func_ov05_021035ec
func_ov05_021035ec: ; 0x021035ec
mov r1, r1, lsl #0x8
mov r1, r1, asr #0x10
mov r0, r0, lsl #0x8
mov r1, r1, lsl #0x10
mov r0, r0, asr #0x10
mov r1, r1, lsr #0x10
mov r0, r0, lsl #0x10
mov r2, r1, lsl #0x10
ldr r1, _0210361c ; =0x04000488
orr r0, r2, r0, lsr #16
str r0, [r1]
bx lr
.align 2, 0
arm_func_end func_ov05_021035ec
_0210361c: .word 0x04000488
.global func_ov05_02103620
arm_func_start func_ov05_02103620
func_ov05_02103620: ; 0x02103620
ldr r1, _0210362c ; =0x04000500
str r0, [r1]
bx lr
.align 2, 0
arm_func_end func_ov05_02103620
_0210362c: .word 0x04000500
.global func_ov05_02103630
arm_func_start func_ov05_02103630
func_ov05_02103630: ; 0x02103630
ldr r3, _02103644 ; =0x0400046c
str r0, [r3]
str r1, [r3]
str r2, [r3]
bx lr
.align 2, 0
arm_func_end func_ov05_02103630
_02103644: .word 0x0400046c
.global func_ov05_02103648
arm_func_start func_ov05_02103648
func_ov05_02103648: ; 0x02103648
ldr r3, _0210365c ; =0x04000470
str r0, [r3]
str r1, [r3]
str r2, [r3]
bx lr
.align 2, 0
arm_func_end func_ov05_02103648
_0210365c: .word 0x04000470
.global func_ov05_02103660
arm_func_start func_ov05_02103660
func_ov05_02103660: ; 0x02103660
ldr r0, _02103670 ; =0x04000444
mov r1, #0
str r1, [r0]
bx lr
.align 2, 0
arm_func_end func_ov05_02103660
_02103670: .word 0x04000444
.global func_ov05_02103674
arm_func_start func_ov05_02103674
func_ov05_02103674: ; 0x02103674
orr r0, r0, r1, lsl #4
ldr r1, [sp, #4]
orr r0, r0, r2, lsl #6
orr r0, r1, r0
ldr r2, [sp]
orr r1, r0, r3, lsl #24
ldr r0, _0210369c ; =0x040004a4
orr r1, r1, r2, lsl #16
str r1, [r0]
bx lr
.align 2, 0
arm_func_end func_ov05_02103674
_0210369c: .word 0x040004a4
.global func_ov05_021036a0
arm_func_start func_ov05_021036a0
func_ov05_021036a0: ; 0x021036a0
cmp r1, #2
moveq r1, #1
movne r1, #0
rsb r1, r1, #4
mov r1, r0, lsr r1
ldr r0, _021036c0 ; =0x040004ac
str r1, [r0]
bx lr
.align 2, 0
arm_func_end func_ov05_021036a0
_021036c0: .word 0x040004ac
.global func_ov05_021036c4
arm_func_start func_ov05_021036c4
func_ov05_021036c4: ; 0x021036c4
ldr ip, [sp, #0xc]
mov r0, r0, lsl #0x1a
orr r0, r0, ip, lsr #3
orr r0, r0, r1, lsl #30
orr r0, r0, r2, lsl #20
ldr r1, [sp]
orr r0, r0, r3, lsl #23
ldr r2, [sp, #4]
orr r0, r0, r1, lsl #16
ldr r3, [sp, #8]
orr r1, r0, r2, lsl #18
ldr r0, _02103700 ; =0x040004a8
orr r1, r1, r3, lsl #29
str r1, [r0]
bx lr
.align 2, 0
arm_func_end func_ov05_021036c4
_02103700: .word 0x040004a8
.global func_ov05_02103704
arm_func_start func_ov05_02103704
func_ov05_02103704: ; 0x02103704
add r0, r0, r1, lsl #3
ldr r0, [r0, #0xc]
mov r0, r0, lsl #0x10
mov r0, r0, lsr #0xd
bx lr
arm_func_end func_ov05_02103704
.global func_ov05_02103718
arm_func_start func_ov05_02103718
func_ov05_02103718: ; 0x02103718
add r0, r0, r1, lsl #3
ldr r0, [r0, #8]
mov r0, r0, lsl #0x10
mov r0, r0, lsr #0xd
bx lr
arm_func_end func_ov05_02103718
.global func_ov05_0210372c
arm_func_start func_ov05_0210372c
func_ov05_0210372c: ; 0x0210372c
ldr r0, _02103738 ; =data_027e0d44
ldr r0, [r0]
bx lr
.align 2, 0
arm_func_end func_ov05_0210372c
_02103738: .word data_027e0d44
.global func_ov05_0210373c
arm_func_start func_ov05_0210373c
func_ov05_0210373c: ; 0x0210373c
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x10
ldr r7, [sp, #0x44]
ldr r4, _021038c0 ; =data_027e0e60
ldr r6, [r7, #8]
ldr r5, [sp, #0x3c]
ldr r4, [r4]
mov sl, r0
add r6, r6, r5
mov sb, r1
mov r0, r4
mov r1, r6
mov r8, r2
mov fp, r3
bl func_ov00_020839f8
ldr r1, [sp, #0x38]
str r0, [sp]
cmp r1, r0
beq _021038b4
mov r0, #0x30
mul ip, sb, r0
mov r2, #0x4000
ldrb r3, [sp, #0x5c]
add r5, sl, ip
str r2, [sl, ip]
ldr r1, [sp]
mov r0, fp
add r2, r5, #8
bl func_ov05_02102b0c
str r0, [r5, #4]
cmp r8, #0
ldreq r0, [r5, #4]
mov r2, #0
cmpeq r0, #1
bne _02103838
ldr r1, [r5, #8]
ldr r0, _021038c4 ; =data_ov05_021122a8
ldr r3, [sp, #0x3c]
ldr r1, [r0, r1, lsl #4]
ldr r0, [r7]
smull r8, r1, r3, r1
adds r3, r8, #0x800
str r0, [r5, #0x10]
ldr r0, [r7, #4]
adc r1, r1, r2
str r0, [r5, #0x14]
ldr r0, [r7, #8]
mov r8, r3, lsr #0xc
str r0, [r5, #0x18]
orr r8, r8, r1, lsl #20
ldr r0, [r7, #4]
ldr r3, [r7]
sub r7, r0, r8
add r1, sp, #4
mov r0, r4
str r3, [sp, #4]
str r7, [sp, #8]
str r6, [sp, #0xc]
bl func_ov00_02083ee0
add r0, r8, r0
str r0, [r5, #0x14]
mov r2, #1
b _02103878
_02103838:
cmp r8, #1
ldreq r0, [r5, #4]
cmpeq r0, #0
bne _02103878
ldr r1, [r7]
mov r0, r4
str r1, [r5, #0x10]
ldr r2, [r7, #4]
mov r1, fp
str r2, [r5, #0x14]
ldr r3, [r7, #8]
ldr r2, [sp]
str r3, [r5, #0x18]
bl func_ov00_02083e34
str r0, [r5, #0x14]
mov r2, #1
_02103878:
cmp r2, #0
beq _021038b4
ldr r1, [sp, #0x40]
ldr r0, [sp, #0x48]
str r1, [r5, #0xc]
ldr r1, [sp, #0x4c]
str r0, [r5, #0x1c]
ldrsh r0, [sp, #0x50]
str r1, [r5, #0x20]
ldrh r1, [sp, #0x54]
strh r0, [r5, #0x24]
ldr r0, [sp, #0x58]
strh r1, [r5, #0x26]
str r0, [r5, #0x28]
add sb, sb, #1
_021038b4:
mov r0, sb
add sp, sp, #0x10
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
arm_func_end func_ov05_0210373c
_021038c0: .word data_027e0e60
_021038c4: .word data_ov05_021122a8
.global func_ov05_021038c8
arm_func_start func_ov05_021038c8
func_ov05_021038c8: ; 0x021038c8
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x18
ldr r7, [sp, #0x4c]
ldr r4, _02103a9c ; =data_027e0e60
ldr r6, [r7]
ldr r5, [sp, #0x44]
ldr r4, [r4]
mov sl, r0
add r6, r6, r5
mov sb, r1
mov r0, r4
mov r1, r6
mov r8, r2
mov r5, r3
bl func_ov00_020839d4
mov fp, r0
cmp r5, fp
beq _02103a90
mov r1, #0x30
mul lr, sb, r1
add r5, sl, lr
mov ip, #0x4000
ldrb r3, [sp, #0x64]
ldr r1, [sp, #0x40]
add r2, r5, #8
str ip, [sl, lr]
bl func_ov05_02102b0c
str r0, [r5, #4]
cmp r8, r0
beq _02103a90
cmp r8, #0
mov r2, #0
bne _02103a10
ldr r3, [r5, #8]
ldr r1, _02103aa0 ; =data_ov05_021122a8
ldr r8, [sp, #0x44]
ldr r1, [r1, r3, lsl #4]
smull r3, r1, r8, r1
adds r3, r3, #0x800
adc r1, r1, r2
mov r8, r3, lsr #0xc
cmp r0, #3
orr r8, r8, r1, lsl #20
bne _021039c0
ldr r0, [r7]
add r1, sp, #0xc
str r0, [r5, #0x10]
ldr r3, [r7, #4]
mov r0, r4
str r3, [r5, #0x14]
ldr r3, [r7, #8]
str r3, [r5, #0x18]
ldmib r7, {r3, r4}
sub r3, r3, r8
str r6, [sp, #0xc]
str r3, [sp, #0x10]
str r4, [sp, #0x14]
bl func_ov00_02083ee0
add r0, r8, r0
str r0, [r5, #0x14]
mov r2, #1
b _02103a54
_021039c0:
cmp r0, #2
bne _02103a54
ldr r0, [r7]
add r1, sp, #0
str r0, [r5, #0x10]
ldr r3, [r7, #4]
mov r0, r4
str r3, [r5, #0x14]
ldr r3, [r7, #8]
str r3, [r5, #0x18]
ldmib r7, {r3, r4}
add r3, r3, r8
str r6, [sp]
str r3, [sp, #4]
str r4, [sp, #8]
bl func_ov00_02083ee0
sub r0, r0, r8
str r0, [r5, #0x14]
mov r2, #1
b _02103a54
_02103a10:
cmp r0, #0
bne _02103a54
sub r0, r8, #2
cmp r0, #1
bhi _02103a54
ldr r0, [r7]
ldr r2, [sp, #0x40]
str r0, [r5, #0x10]
ldr r1, [r7, #4]
mov r0, r4
str r1, [r5, #0x14]
ldr r3, [r7, #8]
mov r1, fp
str r3, [r5, #0x18]
bl func_ov00_02083e34
str r0, [r5, #0x14]
mov r2, #1
_02103a54:
cmp r2, #0
beq _02103a90
ldr r1, [sp, #0x48]
ldr r0, [sp, #0x50]
str r1, [r5, #0xc]
ldr r1, [sp, #0x54]
str r0, [r5, #0x1c]
ldrsh r0, [sp, #0x58]
str r1, [r5, #0x20]
ldrh r1, [sp, #0x5c]
strh r0, [r5, #0x24]
ldr r0, [sp, #0x60]
strh r1, [r5, #0x26]
str r0, [r5, #0x28]
add sb, sb, #1
_02103a90:
mov r0, sb
add sp, sp, #0x18
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
arm_func_end func_ov05_021038c8
_02103a9c: .word data_027e0e60
_02103aa0: .word data_ov05_021122a8
.global func_ov05_02103aa4
arm_func_start func_ov05_02103aa4
func_ov05_02103aa4: ; 0x02103aa4
cmp r0, r1
movle r0, r1
bx lr
arm_func_end func_ov05_02103aa4
.global func_ov05_02103ab0
arm_func_start func_ov05_02103ab0
func_ov05_02103ab0: ; 0x02103ab0
cmp r0, #0
rsblt r0, r0, #0
bx lr
arm_func_end func_ov05_02103ab0
.global func_ov05_02103abc
arm_func_start func_ov05_02103abc
func_ov05_02103abc: ; 0x02103abc
smull r2, r1, r0, r1
adds r0, r2, #0x800
adc r1, r1, #0
mov r0, r0, lsr #0xc
orr r0, r0, r1, lsl #20
bx lr
arm_func_end func_ov05_02103abc
.global func_ov05_02103ad4
arm_func_start func_ov05_02103ad4
func_ov05_02103ad4: ; 0x02103ad4
mov r0, r0, asr #0x4
mov r0, r0, lsl #0x1
add r1, r0, #1
ldr r0, _02103af0 ; =data_02050f54
mov r1, r1, lsl #0x1
ldrsh r0, [r0, r1]
bx lr
.align 2, 0
arm_func_end func_ov05_02103ad4
_02103af0: .word data_02050f54
.global func_ov05_02103af4
arm_func_start func_ov05_02103af4
func_ov05_02103af4: ; 0x02103af4
mov r1, r0, asr #0x4
ldr r0, _02103b08 ; =data_02050f54
mov r1, r1, lsl #0x2
ldrsh r0, [r0, r1]
bx lr
.align 2, 0
arm_func_end func_ov05_02103af4
_02103b08: .word data_02050f54
.global func_ov05_02103b0c
arm_func_start func_ov05_02103b0c
func_ov05_02103b0c: ; 0x02103b0c
ldrb r0, [r0, #0x16]
and r0, r0, #0x1f
bx lr
arm_func_end func_ov05_02103b0c
.global func_ov05_02103b18
arm_func_start func_ov05_02103b18
func_ov05_02103b18: ; 0x02103b18
ldrb r0, [r0, #0x16]
mov r0, r0, asr #0x5
and r0, r0, #7
bx lr
arm_func_end func_ov05_02103b18
.global func_ov05_02103b28
arm_func_start func_ov05_02103b28
func_ov05_02103b28: ; 0x02103b28
bx lr
arm_func_end func_ov05_02103b28
.global func_ov05_02103b2c
arm_func_start func_ov05_02103b2c
func_ov05_02103b2c: ; 0x02103b2c
ldr r0, [r0]
mov r0, r0, lsr #0x5
and r0, r0, #3
bx lr
arm_func_end func_ov05_02103b2c
.global func_ov05_02103b3c
arm_func_start func_ov05_02103b3c
func_ov05_02103b3c: ; 0x02103b3c
ldr r2, [r1]
str r2, [r0]
ldr r2, [r1, #4]
str r2, [r0, #4]
ldr r1, [r1, #8]
str r1, [r0, #8]
bx lr
arm_func_end func_ov05_02103b3c
.global func_ov05_02103b58
arm_func_start func_ov05_02103b58
func_ov05_02103b58: ; 0x02103b58
ldrb r0, [r0, #0x17]
tst r0, r1
movne r0, #1
moveq r0, #0
bx lr
arm_func_end func_ov05_02103b58
.global func_ov05_02103b6c
arm_func_start func_ov05_02103b6c
func_ov05_02103b6c: ; 0x02103b6c
ldr r2, [r1]
str r2, [r0]
ldr r2, [r1, #4]
str r2, [r0, #4]
ldr r1, [r1, #8]
str r1, [r0, #8]
bx lr
arm_func_end func_ov05_02103b6c
.global func_ov05_02103b88
arm_func_start func_ov05_02103b88
func_ov05_02103b88: ; 0x02103b88
add r0, r0, #0x900
ldrh r0, [r0, #0xa]
tst r0, r1
movne r0, #1
moveq r0, #0
bx lr
arm_func_end func_ov05_02103b88
.global func_ov05_02103ba0
arm_func_start func_ov05_02103ba0
func_ov05_02103ba0: ; 0x02103ba0
ldr r0, _02103bac ; =data_027e0e60
ldr r0, [r0]
bx lr
.align 2, 0
arm_func_end func_ov05_02103ba0
_02103bac: .word data_027e0e60
.global func_ov05_02103bb0
arm_func_start func_ov05_02103bb0
func_ov05_02103bb0: ; 0x02103bb0
stmdb sp!, {r3, lr}
ldr r0, [r0]
ldr r2, [r0]
ldr r2, [r2, #0x20]
blx r2
ldmia sp!, {r3, pc}
arm_func_end func_ov05_02103bb0
.global func_ov05_02103bc8
arm_func_start func_ov05_02103bc8
func_ov05_02103bc8: ; 0x02103bc8
stmdb sp!, {r3, r4, r5, lr}
ldr r1, _02103c64 ; =data_027e0f74
mov r5, r0
ldr r0, [r1]
mov r4, r2
bl func_ov00_02097738
cmp r0, #0
movne r0, #1
strneb r0, [r5, #0x24]
bne _02103bf8
mov r0, r5
bl func_ov05_02103eb8
_02103bf8:
ldr r0, [r5]
mov r1, r4
ldr r2, [r0]
ldr r2, [r2]
blx r2
ldr r0, [r5, #0x18]
cmp r0, #0
beq _02103c20
mov r1, r4
bl func_ov40_02186b14
_02103c20:
cmp r4, #0
ldmneia sp!, {r3, r4, r5, pc}
mov r0, r5
bl func_ov05_02103f20
ldr r0, _02103c68 ; =data_027e0618
ldr r0, [r0]
cmp r0, #2
ldmneia sp!, {r3, r4, r5, pc}
mov r0, r5
bl func_ov00_020cf7c4
cmp r0, #0
ldmeqia sp!, {r3, r4, r5, pc}
ldr r0, [r5]
ldr r1, [r0]
ldr r1, [r1, #0x5c]
blx r1
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov05_02103bc8
_02103c64: .word data_027e0f74
_02103c68: .word data_027e0618
.global func_ov05_02103c6c
arm_func_start func_ov05_02103c6c
func_ov05_02103c6c: ; 0x02103c6c
stmdb sp!, {r3, lr}
ldr ip, _02103ca8 ; =data_ov05_021124a0
cmp r3, #1
ldr lr, [ip, #0x24]
ldr r3, [ip, #0x2c]
stmib r0, {r1, lr}
str r2, [r0, #0xc]
str r3, [r0, #0x10]
ldmneia sp!, {r3, pc}
rsb r0, r2, #0
add r0, r0, r0, lsr #31
ldr r1, _02103cac ; =data_027e0c38
mov r0, r0, asr #0x1
str r0, [r1, #0x14]
ldmia sp!, {r3, pc}
.align 2, 0
arm_func_end func_ov05_02103c6c
_02103ca8: .word data_ov05_021124a0
_02103cac: .word data_027e0c38
.global func_ov05_02103cb0
arm_func_start func_ov05_02103cb0
func_ov05_02103cb0: ; 0x02103cb0
stmdb sp!, {r4, r5, r6, lr}
ldr r1, _02103dd8 ; =data_027e0d78
mov r5, r0
ldrb r0, [r1, #0xc]
cmp r0, #0
bne _02103cd8
ldrh r0, [r1, #0x34]
tst r0, #2
moveq r0, #0
streqh r0, [r5, #0x1c]
_02103cd8:
mov r1, #0
strh r1, [r5, #0x1e]
ldr r0, _02103ddc ; =data_027e0d38
strh r1, [r5, #0x20]
ldr r0, [r0]
bl func_ov00_02078b40
cmp r0, #2
bne _02103d18
ldr r0, _02103de0 ; =data_027e10a4
ldr r1, [r0]
ldr r0, [r1, #0x2c]
cmp r0, #6
ldreq r0, [r1, #0x430]
cmpeq r0, #0
moveq r0, #0
ldmeqia sp!, {r4, r5, r6, pc}
_02103d18:
ldr r0, [r5]
mov r4, #1
ldr r1, [r0]
ldr r1, [r1, #0x28]
blx r1
cmp r0, #0
ldr r0, [r5, #0x18]
moveq r4, #0
cmp r0, #0
beq _02103d54
bl func_ov40_02186a20
orrs r0, r4, r0
movne r4, #1
moveq r4, #0
b _02103d94
_02103d54:
ldr r0, _02103de4 ; =data_027e05f8
ldrh r0, [r0, #2]
tst r0, #8
beq _02103d94
ldr r0, _02103de8 ; =data_027e0db0
ldr r0, [r0, #4]
cmp r0, #0
ble _02103d94
ldr r0, _02103ddc ; =data_027e0d38
ldr r0, [r0]
ldr r0, [r0, #0x14]
cmp r0, #1
beq _02103d94
ldr r0, _02103dec ; =data_ov00_020eec9c
mov r1, #0xc
bl func_ov00_020d77e4
_02103d94:
cmp r4, #0
bne _02103dd0
ldr r0, [r5]
ldr r1, [r0]
ldr r1, [r1, #0x2c]
blx r1
mov r6, r0
ldr r0, [r5, #0x18]
cmp r0, #0
beq _02103dc0
bl func_ov40_02186a58
_02103dc0:
cmp r6, #0
cmpeq r4, #0
movne r4, #1
moveq r4, #0
_02103dd0:
mov r0, r4
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
arm_func_end func_ov05_02103cb0
_02103dd8: .word data_027e0d78
_02103ddc: .word data_027e0d38
_02103de0: .word data_027e10a4
_02103de4: .word data_027e05f8
_02103de8: .word data_027e0db0
_02103dec: .word data_ov00_020eec9c
.global func_ov05_02103df0
arm_func_start func_ov05_02103df0
func_ov05_02103df0: ; 0x02103df0
stmdb sp!, {r3, lr}
ldrh r2, [r1]
tst r2, #4
bne _02103e08
tst r2, #8
ldmeqia sp!, {r3, pc}
_02103e08:
ldr r0, [r0]
ldr r2, [r0]
ldr r2, [r2, #0x3c]
blx r2
ldmia sp!, {r3, pc}
arm_func_end func_ov05_02103df0
.global func_ov05_02103e1c
arm_func_start func_ov05_02103e1c
func_ov05_02103e1c: ; 0x02103e1c
stmdb sp!, {r3, r4, r5, lr}
mov r5, r0
mov r0, #1
strb r0, [r5, #0x28]
ldr r0, [r5]
mov r4, r1
ldr r2, [r0]
ldr r2, [r2, #0x40]
blx r2
ldr r0, [r5, #0x18]
cmp r0, #0
ldmeqia sp!, {r3, r4, r5, pc}
mov r1, r4
bl func_ov40_02186b84
ldmia sp!, {r3, r4, r5, pc}
arm_func_end func_ov05_02103e1c
.global func_ov05_02103e58
arm_func_start func_ov05_02103e58
func_ov05_02103e58: ; 0x02103e58
stmdb sp!, {r4, lr}
mov r4, r0
ldrb r0, [r4, #0x28]
cmp r0, #0
ldmeqia sp!, {r4, pc}
ldr r0, [r4]
ldr r2, [r0]
ldr r2, [r2, #0x44]
blx r2
mov r0, #0
strb r0, [r4, #0x28]
ldmia sp!, {r4, pc}
arm_func_end func_ov05_02103e58
.global func_ov05_02103e88
arm_func_start func_ov05_02103e88
func_ov05_02103e88: ; 0x02103e88
stmdb sp!, {r3, lr}
ldr r0, [r0]
ldr r2, [r0]
ldr r2, [r2, #0x50]
blx r2
ldmia sp!, {r3, pc}
arm_func_end func_ov05_02103e88
.global func_ov05_02103ea0
arm_func_start func_ov05_02103ea0
func_ov05_02103ea0: ; 0x02103ea0
stmdb sp!, {r3, lr}
ldr r0, [r0]
ldr r3, [r0]
ldr r3, [r3, #0x34]
blx r3
ldmia sp!, {r3, pc}
arm_func_end func_ov05_02103ea0
.global func_ov05_02103eb8
arm_func_start func_ov05_02103eb8
func_ov05_02103eb8: ; 0x02103eb8
stmdb sp!, {r4, lr}
ldr r2, _02103f10 ; =data_027e0d78
mov r4, r0
ldrh r0, [r2, #0x34]
tst r0, #1
beq _02103ef0
ldr r0, [r4]
ldr r1, [r2, #0x10]
ldr r3, [r0]
ldr r2, [r2, #0x14]
ldr r3, [r3, #0x34]
blx r3
strb r0, [r4, #0x24]
ldmia sp!, {r4, pc}
_02103ef0:
ldrb r0, [r2, #0xc]
cmp r0, #0
ldmneia sp!, {r4, pc}
ldrh r0, [r2, #0x34]
tst r0, #2
moveq r0, #1
streqb r0, [r4, #0x24]
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov05_02103eb8
_02103f10: .word data_027e0d78
.global func_ov05_02103f14
arm_func_start func_ov05_02103f14
func_ov05_02103f14: ; 0x02103f14
ldr r0, [r0, #0x14]
ldrb r0, [r0, #0x90]
bx lr
arm_func_end func_ov05_02103f14
.global func_ov05_02103f20
arm_func_start func_ov05_02103f20
func_ov05_02103f20: ; 0x02103f20
stmdb sp!, {r4, lr}
mov r4, r0
ldr r0, [r4, #0x14]
bl func_ov05_0210da7c
mov r0, r4
bl func_ov00_020cf7e8
ldmia sp!, {r4, pc}
arm_func_end func_ov05_02103f20
.global func_ov05_02103f3c
arm_func_start func_ov05_02103f3c
func_ov05_02103f3c: ; 0x02103f3c
ldr ip, _02103f48 ; =func_ov05_0210df7c
ldr r0, [r0, #0x14]
bx ip
.align 2, 0
arm_func_end func_ov05_02103f3c
_02103f48: .word func_ov05_0210df7c
.global func_ov05_02103f4c
arm_func_start func_ov05_02103f4c
func_ov05_02103f4c: ; 0x02103f4c
ldr r1, [r0, #0x14]
mov r0, #0x10000
ldr r1, [r1, #0x64]
rsb r0, r0, #0
and r0, r1, r0
cmp r0, #0x1000000
movne r0, #1
moveq r0, #0
bx lr
arm_func_end func_ov05_02103f4c
.global func_ov05_02103f70
arm_func_start func_ov05_02103f70
func_ov05_02103f70: ; 0x02103f70
ldr r0, [r0, #0x14]
mov r1, #0x1000000
str r1, [r0, #0x64]
bx lr
arm_func_end func_ov05_02103f70
.global func_ov05_02103f80
arm_func_start func_ov05_02103f80
func_ov05_02103f80: ; 0x02103f80
ldr r0, [r0, #0x14]
strb r1, [r0, #0x95]
bx lr
arm_func_end func_ov05_02103f80
.global func_ov05_02103f8c
arm_func_start func_ov05_02103f8c
func_ov05_02103f8c: ; 0x02103f8c
stmdb sp!, {r4, lr}
mov r4, r1
bl func_ov00_020cef9c
cmp r0, #0
ldmeqia sp!, {r4, pc}
add r0, r0, #0x52
mov r1, r4
add r0, r0, #0x200
bl func_02047024
ldmia sp!, {r4, pc}
arm_func_end func_ov05_02103f8c
.global func_ov05_02103fb4
arm_func_start func_ov05_02103fb4
func_ov05_02103fb4: ; 0x02103fb4
ldr r0, [r0]
ldr ip, _02103fc4 ; =func_ov03_020f6170
ldr r0, [r0, #0x14]
bx ip
.align 2, 0
arm_func_end func_ov05_02103fb4
_02103fc4: .word func_ov03_020f6170
.global func_ov05_02103fc8
arm_func_start func_ov05_02103fc8
func_ov05_02103fc8: ; 0x02103fc8
ldr r0, [r0]
ldr r0, [r0, #0x14]
strb r1, [r0, #0x220]
bx lr
arm_func_end func_ov05_02103fc8
.global func_ov05_02103fd8
arm_func_start func_ov05_02103fd8
func_ov05_02103fd8: ; 0x02103fd8
ldr r0, [r0]
ldr ip, _02103fec ; =func_ov03_020f5994
ldr r0, [r0, #0x14]
add r0, r0, #0x2c
bx ip
.align 2, 0
arm_func_end func_ov05_02103fd8
_02103fec: .word func_ov03_020f5994
.global func_ov05_02103ff0
arm_func_start func_ov05_02103ff0
func_ov05_02103ff0: ; 0x02103ff0
stmdb sp!, {r3, lr}
bl func_ov00_020cefbc
add r0, r0, #0x2c
bl func_ov03_020f5cf0
ldmia sp!, {r3, pc}
arm_func_end func_ov05_02103ff0
.global func_ov05_02104004
arm_func_start func_ov05_02104004
func_ov05_02104004: ; 0x02104004
stmdb sp!, {r3, lr}
bl func_ov00_020cefbc
bl func_ov03_020f6164
ldmia sp!, {r3, pc}
arm_func_end func_ov05_02104004
.global func_ov05_02104014
arm_func_start func_ov05_02104014
func_ov05_02104014: ; 0x02104014
ldr r0, [r0]
ldr ip, _02104024 ; =func_ov03_020f6d34
ldr r0, [r0, #0x14]
bx ip
.align 2, 0
arm_func_end func_ov05_02104014
_02104024: .word func_ov03_020f6d34
.global func_ov05_02104028
arm_func_start func_ov05_02104028
func_ov05_02104028: ; 0x02104028
stmdb sp!, {r3, r4, r5, lr}
mov r5, r0
mov r4, r1
bl func_ov00_020cf488
cmp r0, #0
ldmeqia sp!, {r3, r4, r5, pc}
strb r4, [r5, #0x29]
ldr r0, [r5]
mov r1, r4
ldr r0, [r0, #0x14]
bl func_ov03_020f6200
ldmia sp!, {r3, r4, r5, pc}
arm_func_end func_ov05_02104028
.global func_ov05_02104058
arm_func_start func_ov05_02104058
func_ov05_02104058: ; 0x02104058
stmdb sp!, {r3, lr}
bl func_ov00_020cf11c
cmp r0, #0
ldmeqia sp!, {r3, pc}
bl func_ov26_0216ed64
ldmia sp!, {r3, pc}
arm_func_end func_ov05_02104058
.global func_ov05_02104070
arm_func_start func_ov05_02104070
func_ov05_02104070: ; 0x02104070
stmdb sp!, {r3, lr}
bl func_ov00_020cf11c
cmp r0, #0
ldmeqia sp!, {r3, pc}
bl func_ov26_0216ed8c
ldmia sp!, {r3, pc}
arm_func_end func_ov05_02104070
.global func_ov05_02104088
arm_func_start func_ov05_02104088
func_ov05_02104088: ; 0x02104088
stmdb sp!, {r3, r4, r5, lr}
mov r5, r0
mov r4, r1
bl func_ov00_020cf11c
cmp r0, #0
ldmeqia sp!, {r3, r4, r5, pc}
bl func_ov26_0216ed8c
mov r0, r5
bl func_ov00_020cf534
cmp r0, #0
ldmeqia sp!, {r3, r4, r5, pc}
ldr r0, [r5]
mov r1, r4
ldr r0, [r0, #0x3c]
bl func_ov26_0216edb4
ldmia sp!, {r3, r4, r5, pc}
arm_func_end func_ov05_02104088
.global func_ov05_021040c8
arm_func_start func_ov05_021040c8
func_ov05_021040c8: ; 0x021040c8
stmdb sp!, {r4, lr}
mov r4, r0
bl func_ov00_020cf4d8
cmp r0, #0
ldmeqia sp!, {r4, pc}
ldr r0, [r4]
ldr r0, [r0, #0x30]
bl func_ov15_02183898
ldmia sp!, {r4, pc}
arm_func_end func_ov05_021040c8
.global func_ov05_021040ec
arm_func_start func_ov05_021040ec
func_ov05_021040ec: ; 0x021040ec
stmdb sp!, {r4, lr}
mov r4, r0
bl func_ov00_020cf4d8
cmp r0, #0
moveq r0, #0
ldmeqia sp!, {r4, pc}
ldr r0, [r4]
ldr r0, [r0, #0x28]
bl func_ov15_0212179c
ldmia sp!, {r4, pc}
arm_func_end func_ov05_021040ec
.global func_ov05_02104114
arm_func_start func_ov05_02104114
func_ov05_02104114: ; 0x02104114
stmdb sp!, {r4, lr}
mov r4, r0
bl func_ov00_020cf518
cmp r0, #0
ldmeqia sp!, {r4, pc}
ldr r0, [r4]
mov r1, #1
ldr r0, [r0, #0x48]
bl func_ov18_02169bac
ldmia sp!, {r4, pc}
arm_func_end func_ov05_02104114
.global func_ov05_0210413c
arm_func_start func_ov05_0210413c
func_ov05_0210413c: ; 0x0210413c
stmdb sp!, {r4, lr}
mov r4, r0
bl func_ov00_020cf4f4
cmp r0, #0
ldmeqia sp!, {r4, pc}
ldr r0, [r4]
ldr r0, [r0, #0x2c]
bl func_ov58_0219a5c8
ldmia sp!, {r4, pc}
arm_func_end func_ov05_0210413c
.global func_ov05_02104160
arm_func_start func_ov05_02104160
func_ov05_02104160: ; 0x02104160
stmdb sp!, {r4, lr}
mov r4, r0
bl func_ov00_020cf4f4
cmp r0, #0
ldmeqia sp!, {r4, pc}
ldr r0, [r4]
mov r1, #0
ldr r0, [r0, #0x2c]
add r0, r0, #4
blx func_ov00_0207c0cc
ldmia sp!, {r4, pc}
arm_func_end func_ov05_02104160
.global func_ov05_0210418c
arm_func_start func_ov05_0210418c
func_ov05_0210418c: ; 0x0210418c
stmdb sp!, {r3, r4, r5, lr}
mov r5, r0
mov r4, r1
bl func_ov00_020cf4f4
cmp r0, #0
ldmeqia sp!, {r3, r4, r5, pc}
ldr r1, [r5]
and r0, r4, #0xff
ldr r1, [r1, #0x2c]
cmp r0, #1
strb r4, [r1, #0xdf]
moveq r0, #0
streqb r0, [r1, #0xde]
ldmia sp!, {r3, r4, r5, pc}
arm_func_end func_ov05_0210418c
.global func_ov05_021041c4
arm_func_start func_ov05_021041c4
func_ov05_021041c4: ; 0x021041c4
stmdb sp!, {r4, lr}
ldr r1, _021041f4 ; =data_027e0618
mov r4, r0
mov r2, #1
ldr r0, _021041f8 ; =data_ov00_020ee734
strb r2, [r1, #0x101]
mov r1, #0
strb r1, [r4, #1]
blx func_ov00_020d6540
mov r0, #0
strb r0, [r4]
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov05_021041c4
_021041f4: .word data_027e0618
_021041f8: .word data_ov00_020ee734
.global func_ov05_021041fc
arm_func_start func_ov05_021041fc
func_ov05_021041fc: ; 0x021041fc
stmdb sp!, {r4, lr}
ldr r1, _02104320 ; =data_027e0618
mov r4, r0
ldrb r1, [r1, #0x101]
cmp r1, #0
ldmneia sp!, {r4, pc}
bl func_ov05_02104b30
ldr r0, [r4, #0x244]
cmp r0, #0
bne _02104230
ldrb r0, [r4, #0x250]
cmp r0, #2
bne _02104238
_02104230:
add r0, r4, #0x130
bl func_0203516c
_02104238:
ldr r0, _02104320 ; =data_027e0618
ldr r0, [r0]
cmp r0, #2
bne _021042c0
ldrb r0, [r4, #0x250]
cmp r0, #1
beq _02104260
cmp r0, #2
beq _02104280
b _021042c0
_02104260:
ldr r0, _02104324 ; =data_027e1054
ldr r0, [r0]
ldr r0, [r0, #4]
bl func_ov03_020f4b7c
cmp r0, #0
movne r0, #2
strneb r0, [r4, #0x250]
b _021042c0
_02104280:
ldr r0, _02104324 ; =data_027e1054
ldr r0, [r0]
ldr r0, [r0, #4]
ldrb r0, [r0, #0x95]
cmp r0, #0
bne _021042b8
add r0, r4, #0x214
mov r1, #0
bl func_0202e310
cmp r0, #0
beq _021042b8
ldr r0, _02104328 ; =data_ov00_020eec9c
mov r1, #0xc6
bl func_ov00_020d77e4
_021042b8:
add r0, r4, #0x1b8
bl func_0203516c
_021042c0:
ldr r0, [r4, #0x244]
cmp r0, #0
bne _021042d8
ldrb r0, [r4, #0x250]
cmp r0, #2
bne _021042e8
_021042d8:
add r0, r4, #0x20
bl func_0203516c
add r0, r4, #0xa8
bl func_0203516c
_021042e8:
ldr r1, [r4, #0x240]
mvn r0, #0x80000000
cmp r1, r0
addlt r0, r1, #1
strlt r0, [r4, #0x240]
ldrb r0, [r4, #0x251]
cmp r0, #1
ldmneia sp!, {r4, pc}
ldr r0, [r4, #0x240]
cmp r0, #0xb4
movgt r0, #0
strgtb r0, [r4, #0x251]
strgt r0, [r4, #0x240]
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov05_021041fc
_02104320: .word data_027e0618
_02104324: .word data_027e1054
_02104328: .word data_ov00_020eec9c
.global func_ov05_0210432c
arm_func_start func_ov05_0210432c
func_ov05_0210432c: ; 0x0210432c
stmdb sp!, {r3, r4, r5, lr}
ldr r2, _02104378 ; =data_027e0618
mov r5, r0
ldrb r2, [r2, #0x101]
mov r4, r1
cmp r2, #0
ldmneia sp!, {r3, r4, r5, pc}
bl func_ov05_02104494
ldr r0, _02104378 ; =data_027e0618
ldr r0, [r0]
cmp r0, #2
ldmneia sp!, {r3, r4, r5, pc}
mov r0, r5
mov r1, r4
bl func_ov05_02104574
mov r0, r5
mov r1, r4
bl func_ov05_021047c8
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov05_0210432c
_02104378: .word data_027e0618
.global func_ov05_0210437c
arm_func_start func_ov05_0210437c
func_ov05_0210437c: ; 0x0210437c
stmdb sp!, {r3, lr}
cmp r1, #1
ldmeqia sp!, {r3, pc}
ldr r1, _021043b8 ; =data_027e077c
ldr r2, _021043bc ; =data_02056be4
ldr r3, [r1]
ldrb r1, [r2, r3]
mov ip, r3
tst r1, #1
ldmneia sp!, {r3, pc}
ldrb r1, [r2, ip]
tst r1, #4
ldmneia sp!, {r3, pc}
bl func_ov05_02104d74
ldmia sp!, {r3, pc}
.align 2, 0
arm_func_end func_ov05_0210437c
_021043b8: .word data_027e077c
_021043bc: .word data_02056be4
.global func_ov05_021043c0
arm_func_start func_ov05_021043c0
func_ov05_021043c0: ; 0x021043c0
stmdb sp!, {r3, r4, r5, lr}
mov r4, r0
ldrb r0, [r4, #0x252]
mov r5, r1
cmp r0, #0
bne _021043f0
ldr r1, _02104428 ; =data_027e0d3c
add r0, r4, #0x52
ldr r1, [r1]
add r0, r0, #0x200
add r1, r1, #4
bl func_02047024
_021043f0:
str r5, [r4, #0x244]
mov r1, #0x14000
add r0, r4, #0x20
str r1, [r4, #0x84]
bl func_020352d8
mov r1, #0
add r0, r4, #0xa8
str r1, [r4, #0x10c]
bl func_020352d8
mov r1, #0x14000
add r0, r4, #0x130
str r1, [r4, #0x194]
bl func_020352d8
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov05_021043c0
_02104428: .word data_027e0d3c
.global func_ov05_0210442c
arm_func_start func_ov05_0210442c
func_ov05_0210442c: ; 0x0210442c
mov r1, #0
strb r1, [r0, #0x252]
str r1, [r0, #0x244]
bx lr
arm_func_end func_ov05_0210442c
.global func_ov05_0210443c
arm_func_start func_ov05_0210443c
func_ov05_0210443c: ; 0x0210443c
stmdb sp!, {r4, lr}
mov r4, r0
mov r0, #1
strb r0, [r4, #0x250]
strb r1, [r4, #0x24f]
mov r1, #0
add r0, r4, #0x1b8
str r1, [r4, #0x21c]
bl func_020352d8
mov r1, #0x14000
add r0, r4, #0x20
str r1, [r4, #0x84]
bl func_020352d8
mov r1, #0
add r0, r4, #0xa8
str r1, [r4, #0x10c]
bl func_020352d8
mov r1, #0x14000
add r0, r4, #0x130
str r1, [r4, #0x194]
bl func_020352d8
ldmia sp!, {r4, pc}
arm_func_end func_ov05_0210443c
.global func_ov05_02104494
arm_func_start func_ov05_02104494
func_ov05_02104494: ; 0x02104494
stmdb sp!, {r4, lr}
sub sp, sp, #8
mov r4, r0
ldr r0, [r4, #0x244]
cmp r0, #0
bne _021044bc
ldrb r0, [r4, #0x250]
cmp r0, #2
addne sp, sp, #8
ldmneia sp!, {r4, pc}
_021044bc:
ldr r0, _02104568 ; =data_027e0618
ldr r0, [r0]
cmp r0, #2
bne _021044e8
ldr r0, _0210456c ; =data_027e1054
ldr r0, [r0]
ldr r0, [r0, #4]
ldrb r0, [r0, #0x95]
cmp r0, #0
addne sp, sp, #8
ldmneia sp!, {r4, pc}
_021044e8:
ldr r1, _02104570 ; =data_027e0d3c
add r0, r4, #0x52
ldr r1, [r1]
add r0, r0, #0x200
add r1, r1, #4
bl func_0204716c
cmp r0, #0
addne sp, sp, #8
ldmneia sp!, {r4, pc}
ldrb r2, [r4, #0x24c]
ldr r0, _02104570 ; =data_027e0d3c
add r1, sp, #4
str r2, [sp, #4]
ldrb ip, [r4, #0x24d]
ldr r0, [r0]
add r2, sp, #0
mov r3, #1
str ip, [sp]
bl func_ov00_02079680
cmp r0, #0
addeq sp, sp, #8
ldmeqia sp!, {r4, pc}
ldrb r0, [r4, #0x24d]
ldr r1, [sp, #4]
ldr r2, [sp]
cmp r0, #0x60
movhi r3, #1
movls r3, #0
mov r0, r4
bl func_ov05_02104a48
add sp, sp, #8
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov05_02104494
_02104568: .word data_027e0618
_0210456c: .word data_027e1054
_02104570: .word data_027e0d3c
.global func_ov05_02104574
arm_func_start func_ov05_02104574
func_ov05_02104574: ; 0x02104574
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x2c
ldr r2, _02104730 ; =data_027e1054
mov r4, r0
ldr r0, [r2]
ldr r0, [r0, #4]
ldrb r0, [r0, #0x95]
cmp r0, #0
addne sp, sp, #0x2c
ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
ldrh r0, [r1]
tst r0, #4
movne r1, #1
moveq r1, #0
cmp r1, #0
bne _021045cc
tst r0, #8
movne r0, #1
moveq r0, #0
cmp r0, #0
addeq sp, sp, #0x2c
ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
_021045cc:
ldr r0, _02104734 ; =data_027e0d38
ldr r0, [r0]
add r0, r0, #0xc
bl func_ov00_020a5e9c
cmp r0, #1
cmpne r0, #0x32
addeq sp, sp, #0x2c
ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
add r0, sp, #0xc
bl func_01ffbe34
ldr r0, [sp, #0x18]
mov sb, #1
orr r0, r0, #0x1000
str sb, [sp, #0x10]
str r0, [sp, #0x18]
ldrb r0, [r4, #0x250]
cmp r0, #2
bne _02104664
ldr r0, _02104738 ; =data_027e0f7c
ldrb r1, [r4, #0x24f]
ldr r0, [r0]
bl func_ov00_0209d90c
ldr r5, [r0, #8]
ldr r6, [r0, #4]
add r3, sp, #0xc
mov r1, r6
mov r2, r5
add r0, r4, #0x1b8
bl func_02034a1c
cmp r5, #0x60
movgt r3, sb
movle r3, #0
mov r0, r4
mov r1, r6
mov r2, r5
bl func_ov05_02104a48
add sp, sp, #0x2c
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
_02104664:
ldr r7, _0210473c ; =data_027e0d3c
sub r0, sb, #2
ldr r1, [r7]
ldr sl, [r1, #0x48]
cmp sl, r0
addeq sp, sp, #0x2c
ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
ldr r5, _02104738 ; =data_027e0f7c
ldr r6, _02104740 ; =data_027e0fb4
add r4, r4, #0x200
add fp, sp, #8
add r8, sp, #0xc
_02104694:
ldrsb r0, [r4, #0x4f]
cmp sb, r0
beq _0210471c
ldr r0, [r6]
add r1, sb, #0x60
bl func_ov00_020ada78
cmp r0, #0
beq _0210471c
ldr r0, [r6]
and r1, sb, #0xff
bl func_ov00_020adabc
cmp r0, #0
bne _0210471c
ldr r0, [r5]
and r1, sb, #0xff
bl func_ov00_0209d90c
ldrb r1, [r0, #1]
cmp sl, r1
bne _0210471c
ldr r2, [r0, #4]
mov r1, fp
str r2, [sp, #8]
ldr r2, [r0, #8]
ldr r0, [r7]
str r2, [sp, #4]
add r2, sp, #4
mov r3, #1
bl func_ov00_02079680
str r8, [sp]
ldr r2, [sp, #8]
ldr r3, [sp, #4]
mov r0, #0xbd
mov r1, #0x18
bl func_02034984
_0210471c:
add sb, sb, #1
cmp sb, #0x20
blt _02104694
add sp, sp, #0x2c
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
arm_func_end func_ov05_02104574
_02104730: .word data_027e1054
_02104734: .word data_027e0d38
_02104738: .word data_027e0f7c
_0210473c: .word data_027e0d3c
_02104740: .word data_027e0fb4
.global func_ov05_02104744
arm_func_start func_ov05_02104744
func_ov05_02104744: ; 0x02104744
stmdb sp!, {r3, r4, r5, r6, lr}
sub sp, sp, #0xc
ldr r4, _021047c0 ; =data_027e0f7c
mov r5, r0
ldr r0, [r4]
mov r4, r1
mov r1, r5
mov r6, r2
mov r5, r3
bl func_ov00_0209d8d8
ldr r2, [r0, #8]
ldr r1, _021047c4 ; =data_027e0d3c
add r2, r6, r2
str r2, [sp, #8]
ldr r2, [r0, #0xc]
ldr r0, [r1]
add ip, r5, r2
add r1, sp, #8
add r2, sp, #4
mov r3, #1
str ip, [sp, #4]
bl func_ov00_02079680
ldr r0, [sp, #0x20]
mov r1, r4
str r0, [sp]
ldr r2, [sp, #8]
ldr r3, [sp, #4]
mov r0, #0xce
bl func_02034984
add sp, sp, #0xc
ldmia sp!, {r3, r4, r5, r6, pc}
.align 2, 0
arm_func_end func_ov05_02104744
_021047c0: .word data_027e0f7c
_021047c4: .word data_027e0d3c
.global func_ov05_021047c8
arm_func_start func_ov05_021047c8
func_ov05_021047c8: ; 0x021047c8
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x34
ldr r0, _02104a28 ; =data_027e1054
ldr r0, [r0]
ldr r0, [r0, #4]
ldrb r0, [r0, #0x95]
cmp r0, #0
addne sp, sp, #0x34
ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
ldrh r0, [r1]
tst r0, #4
movne r1, #1
moveq r1, #0
cmp r1, #0
bne _0210481c
tst r0, #8
movne r0, #1
moveq r0, #0
cmp r0, #0
addeq sp, sp, #0x34
ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
_0210481c:
add r0, sp, #0x14
bl func_01ffbe34
ldr r1, [sp, #0x20]
ldr r0, _02104a2c ; =data_027e0d3c
orr r1, r1, #0x1000
mov r2, #0
ldr r0, [r0]
str r2, [sp, #0x18]
str r1, [sp, #0x20]
ldr r0, [r0, #0x48]
cmp r0, #0
beq _0210485c
cmp r0, #1
beq _0210493c
add sp, sp, #0x34
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
_0210485c:
ldr r0, _02104a30 ; =data_027e0f74
ldr r1, _02104a34 ; =0x0000015f
ldr r0, [r0]
bl func_ov00_02097760
cmp r0, #0
beq _021048a8
ldr r0, _02104a38 ; =data_027e0fb4
mov r1, #0x15
ldr r0, [r0]
bl func_ov00_020ada78
cmp r0, #0
bne _021048a8
mov r2, #0
add r4, sp, #0x14
mov r3, r2
mov r0, #2
mov r1, #0xf
str r4, [sp]
bl func_ov05_02104744
_021048a8:
ldr r0, _02104a30 ; =data_027e0f74
mov r1, #0x82
ldr r0, [r0]
bl func_ov00_02097760
cmp r0, #0
addeq sp, sp, #0x34
ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
ldr r0, _02104a38 ; =data_027e0fb4
mov r1, #0
ldr r0, [r0]
bl func_ov00_020adabc
cmp r0, #0
addne sp, sp, #0x34
ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
ldr r0, _02104a3c ; =data_027e0f7c
mov r1, #0
ldr r0, [r0]
bl func_ov00_0209d90c
ldr r2, [r0, #4]
ldr r1, _02104a2c ; =data_027e0d3c
str r2, [sp, #0x10]
ldr r4, [r0, #8]
ldr r0, [r1]
add r1, sp, #0x10
add r2, sp, #0xc
mov r3, #1
str r4, [sp, #0xc]
bl func_ov00_02079680
add r1, sp, #0x14
str r1, [sp]
ldr r2, [sp, #0x10]
ldr r3, [sp, #0xc]
mov r0, #0xce
mov r1, #0x12
bl func_02034984
add sp, sp, #0x34
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
_0210493c:
ldr r0, _02104a40 ; =data_027e077c
mov r1, #1
ldr r0, [r0]
cmp r0, #0x39
moveq r1, r2
cmp r1, #0
addeq sp, sp, #0x34
ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
ldr r0, _02104a38 ; =data_027e0fb4
mov r1, #0x16
ldr r0, [r0]
bl func_ov00_020ada78
cmp r0, #0
addne sp, sp, #0x34
ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
ldr r0, _02104a30 ; =data_027e0f74
ldr r1, _02104a44 ; =0x00000125
ldr r0, [r0]
bl func_ov00_02097760
cmp r0, #0
bne _02104a04
ldr r4, _02104a2c ; =data_027e0d3c
mov sb, #0
mov r8, #0xd0
add r7, sp, #8
add r6, sp, #4
mov fp, #1
add r5, sp, #0x14
_021049ac:
and sl, sb, #0xff
mov r0, r8
mov r1, sl
mov r2, r7
mov r3, r6
bl func_02034698
ldr r0, [r4]
mov r1, r7
mov r2, r6
mov r3, fp
bl func_ov00_02079680
str r5, [sp]
ldr r2, [sp, #8]
ldr r3, [sp, #4]
mov r1, sl
mov r0, #0xd0
bl func_02034984
add sb, sb, #1
cmp sb, #0x2a
blt _021049ac
add sp, sp, #0x34
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
_02104a04:
mov r2, #0
add r4, sp, #0x14
sub r3, r2, #5
mov r0, #3
mov r1, #0x10
str r4, [sp]
bl func_ov05_02104744
add sp, sp, #0x34
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
arm_func_end func_ov05_021047c8
_02104a28: .word data_027e1054
_02104a2c: .word data_027e0d3c
_02104a30: .word data_027e0f74
_02104a34: .word 0x0000015f
_02104a38: .word data_027e0fb4
_02104a3c: .word data_027e0f7c
_02104a40: .word data_027e077c
_02104a44: .word 0x00000125
.global func_ov05_02104a48
arm_func_start func_ov05_02104a48
func_ov05_02104a48: ; 0x02104a48
stmdb sp!, {r3, r4, r5, r6, r7, lr}
sub sp, sp, #0x20
ldr r4, _02104afc ; =data_027e103c
mov r7, r0
ldr r0, [r4]
mov r6, r1
mov r5, r2
mov r4, r3
bl func_ov00_020cf05c
cmp r0, #0
beq _02104aa0
ldrh r1, [r0, #0x36]
ldr r0, _02104b00 ; =0x0000ffff
cmp r1, r0
bne _02104aa0
ldr r0, _02104b04 ; =data_027e077c
ldr r1, _02104b08 ; =data_02056be4
ldr r0, [r0]
ldrb r0, [r1, r0]
tst r0, #1
addne sp, sp, #0x20
ldmneia sp!, {r3, r4, r5, r6, r7, pc}
_02104aa0:
mov r1, r6
mov r2, r5
add r0, r7, #0x130
mov r3, #0
bl func_02034a1c
add r0, sp, #0
bl func_01ffbe34
mov r0, #0
str r0, [sp, #4]
cmp r4, #0
add r3, sp, #0
mov r1, r6
beq _02104ae8
mov r2, r5
add r0, r7, #0xa8
bl func_02034a1c
add sp, sp, #0x20
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_02104ae8:
mov r2, r5
add r0, r7, #0x20
bl func_02034a1c
add sp, sp, #0x20
ldmia sp!, {r3, r4, r5, r6, r7, pc}
.align 2, 0
arm_func_end func_ov05_02104a48
_02104afc: .word data_027e103c
_02104b00: .word 0x0000ffff
_02104b04: .word data_027e077c
_02104b08: .word data_02056be4
.global func_ov05_02104b0c
arm_func_start func_ov05_02104b0c
func_ov05_02104b0c: ; 0x02104b0c
stmdb sp!, {r3, lr}
ldr r0, _02104b2c ; =data_027e0fc8
ldr r0, [r0]
cmp r0, #0
moveq r0, #0
ldmeqia sp!, {r3, pc}
bl func_ov05_0210eba4
ldmia sp!, {r3, pc}
.align 2, 0
arm_func_end func_ov05_02104b0c
_02104b2c: .word data_027e0fc8
.global func_ov05_02104b30
arm_func_start func_ov05_02104b30
func_ov05_02104b30: ; 0x02104b30
stmdb sp!, {r4, lr}
ldr r1, _02104bbc ; =data_027e077c
ldr r2, _02104bc0 ; =data_02056be4
ldr r3, [r1]
mov r4, r0
ldrb r0, [r2, r3]
mov r1, r3
tst r0, #1
ldmneia sp!, {r4, pc}
ldrb r0, [r2, r1]
tst r0, #4
ldmneia sp!, {r4, pc}
ldr r0, _02104bc4 ; =data_027e0fc8
ldr r0, [r0]
cmp r0, #0
ldmeqia sp!, {r4, pc}
bl func_ov05_02104b0c
cmp r0, #0
beq _02104b9c
add r1, r4, #0x200
ldrsh r0, [r1, #0x48]
mov r2, #0xc
add r0, r0, #0x54
add r0, r0, #0x2400
strh r0, [r1, #0x48]
strh r2, [r1, #0x4a]
b _02104bb0
_02104b9c:
add r0, r4, #0x200
ldrsh r1, [r0, #0x4a]
cmp r1, #0
subgt r1, r1, #1
strgth r1, [r0, #0x4a]
_02104bb0:
mov r0, r4
bl func_ov05_02104bc8
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov05_02104b30
_02104bbc: .word data_027e077c
_02104bc0: .word data_02056be4
_02104bc4: .word data_027e0fc8
.global func_ov05_02104bc8
arm_func_start func_ov05_02104bc8
func_ov05_02104bc8: ; 0x02104bc8
stmdb sp!, {r4, lr}
sub sp, sp, #0x18
ldr r2, _02104c9c ; =data_027e0f64
ldr r1, _02104ca0 ; =data_027e0f94
ldr r2, [r2]
mov r4, r0
ldr r0, [r2, #4]
ldr r3, [r1]
ldr r2, [r1, #4]
str r3, [sp, #0xc]
str r2, [sp, #0x10]
ldr r1, [r1, #8]
mov ip, #0
str r1, [sp, #0x14]
add r1, sp, #0xc
add r2, sp, #8
add r3, sp, #4
str ip, [sp]
bl func_01ffe468
ldrb r1, [r4, #0x24e]
ldr r0, [sp, #8]
ands r2, r1, #1
bne _02104c30
cmp r0, #0x5c
movlt r0, #1
blt _02104c48
_02104c30:
cmp r2, #0
beq _02104c44
cmp r0, #0xaa
movgt r0, #1
bgt _02104c48
_02104c44:
mov r0, #0
_02104c48:
cmp r0, #0
bne _02104c8c
ands r1, r1, #2
ldr r0, [sp, #4]
bne _02104c68
cmp r0, #0x58
movlt r0, #1
blt _02104c80
_02104c68:
cmp r1, #0
beq _02104c7c
cmp r0, #0x7d
movgt r0, #1
bgt _02104c80
_02104c7c:
mov r0, #0
_02104c80:
cmp r0, #0
addeq sp, sp, #0x18
ldmeqia sp!, {r4, pc}
_02104c8c:
mov r0, r4
bl func_ov05_02104ca4
add sp, sp, #0x18
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov05_02104bc8
_02104c9c: .word data_027e0f64
_02104ca0: .word data_027e0f94
.global func_ov05_02104ca4
arm_func_start func_ov05_02104ca4
func_ov05_02104ca4: ; 0x02104ca4
stmdb sp!, {r4, lr}
sub sp, sp, #0x18
ldr r2, _02104d68 ; =data_027e0f64
ldr r1, _02104d6c ; =data_027e0f94
ldr r2, [r2]
mov r4, r0
ldr r0, [r2, #4]
ldr r3, [r1]
ldr r2, [r1, #4]
str r3, [sp, #0xc]
str r2, [sp, #0x10]
ldr ip, [r1, #8]
add r1, sp, #0xc
str ip, [sp, #0x14]
mov ip, #0
add r2, sp, #8
add r3, sp, #4
str ip, [sp]
bl func_01ffe468
ldr r0, _02104d70 ; =data_027e0fc8
ldr r1, [r0]
cmp r1, #0
beq _02104d2c
ldrh r0, [r1, #0x48]
tst r0, #0x24
beq _02104d2c
ldrsh r0, [r1, #0x4a]
cmp r0, #0
ldrb r0, [r4, #0x24e]
biceq r0, r0, #1
streqb r0, [r4, #0x24e]
orrne r0, r0, #1
strneb r0, [r4, #0x24e]
b _02104d48
_02104d2c:
ldr r0, [sp, #8]
cmp r0, #0x80
ldrb r0, [r4, #0x24e]
orrlt r0, r0, #1
strltb r0, [r4, #0x24e]
bicge r0, r0, #1
strgeb r0, [r4, #0x24e]
_02104d48:
ldr r0, [sp, #4]
cmp r0, #0x60
ldrb r0, [r4, #0x24e]
orrlt r0, r0, #2
bicge r0, r0, #2
strb r0, [r4, #0x24e]
add sp, sp, #0x18
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov05_02104ca4
_02104d68: .word data_027e0f64
_02104d6c: .word data_027e0f94
_02104d70: .word data_027e0fc8
.global func_ov05_02104d74
arm_func_start func_ov05_02104d74
func_ov05_02104d74: ; 0x02104d74
stmdb sp!, {r4, lr}
sub sp, sp, #0x18
ldr r1, _02104e3c ; =data_027e0fc8
mov r4, r0
ldr r0, [r1]
cmp r0, #0
addeq sp, sp, #0x18
ldmeqia sp!, {r4, pc}
ldr r0, _02104e40 ; =data_027e0f74
ldr r0, [r0]
bl func_ov00_02097738
cmp r0, #0
addne sp, sp, #0x18
ldmneia sp!, {r4, pc}
ldr r0, _02104e44 ; =data_027e0f64
ldr r1, _02104e48 ; =data_027e0f94
ldr r0, [r0]
ldr r3, [r1]
ldr r0, [r0, #4]
ldr r2, [r1, #4]
str r3, [sp, #0xc]
str r2, [sp, #0x10]
ldr ip, [r1, #8]
add r1, sp, #0xc
str ip, [sp, #0x14]
mov ip, #0
add r2, sp, #8
add r3, sp, #4
str ip, [sp]
bl func_01ffe468
add r0, r4, #0x200
ldrsh r0, [r0, #0x4a]
cmp r0, #0
bgt _02104e0c
bl func_ov05_02104b0c
cmp r0, #0
addeq sp, sp, #0x18
ldmeqia sp!, {r4, pc}
_02104e0c:
ldr r0, _02104e4c ; =data_027e0de4
ldr r2, _02104e50 ; =func_ov05_02104e58
mov r3, r4
mov r1, #4
bl func_ov00_0207bb1c
ldr r0, _02104e4c ; =data_027e0de4
ldr r2, _02104e54 ; =func_ov05_02104f28
mov r3, r4
mov r1, #6
bl func_ov00_0207bb1c
add sp, sp, #0x18
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov05_02104d74
_02104e3c: .word data_027e0fc8
_02104e40: .word data_027e0f74
_02104e44: .word data_027e0f64
_02104e48: .word data_027e0f94
_02104e4c: .word data_027e0de4
_02104e50: .word func_ov05_02104e58
_02104e54: .word func_ov05_02104f28
.global func_ov05_02104e58
arm_func_start func_ov05_02104e58
func_ov05_02104e58: ; 0x02104e58
stmdb sp!, {r3, r4, r5, r6, r7, lr}
sub sp, sp, #0x38
ldr r2, _02104f20 ; =data_027e0f64
ldr r1, _02104f24 ; =data_027e0f94
ldr r2, [r2]
mov r4, r0
ldr r0, [r2, #4]
ldr r3, [r1]
ldr r2, [r1, #4]
str r3, [sp, #0x14]
str r2, [sp, #0x18]
ldr r1, [r1, #8]
mov ip, #0
str r1, [sp, #0x1c]
add r1, sp, #0x14
add r2, sp, #0x10
add r3, sp, #0xc
str ip, [sp]
bl func_01ffe468
ldrb r0, [r4, #0x24e]
mov r3, #4
mov r1, #0x1a
tst r0, #1
movne r4, #1
moveq r4, #0
tst r0, #2
movne r5, #1
moveq r5, #0
cmp r4, #0
ldrne r0, [sp, #0x10]
mov r2, #5
subne r6, r0, #0xd
ldreq r0, [sp, #0x10]
subeq r6, r0, #0x7c
cmp r5, #0
ldrne r0, [sp, #0xc]
subne r7, r0, #0x24
ldreq r0, [sp, #0xc]
subeq r7, r0, #0x77
add r0, sp, #0x20
str r3, [sp]
bl func_ov00_020d0a30
mov r3, #0x80
add r0, sp, #0x20
mov r1, r6
mov r2, r7
stmia sp, {r3, r4, r5}
bl func_ov00_020d0a80
add sp, sp, #0x38
ldmia sp!, {r3, r4, r5, r6, r7, pc}
.align 2, 0
arm_func_end func_ov05_02104e58
_02104f20: .word data_027e0f64
_02104f24: .word data_027e0f94
.global func_ov05_02104f28
arm_func_start func_ov05_02104f28
func_ov05_02104f28: ; 0x02104f28
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
sub sp, sp, #0x68
ldr r2, _02105130 ; =data_027e0f64
ldr r1, _02105134 ; =data_027e0f94
ldr r2, [r2]
mov r8, r0
ldr r0, [r2, #4]
ldr r3, [r1]
ldr r2, [r1, #4]
str r3, [sp, #0x14]
str r2, [sp, #0x18]
ldr r1, [r1, #8]
mov r4, #0
str r1, [sp, #0x1c]
add r1, sp, #0x14
add r2, sp, #0x10
add r3, sp, #0xc
str r4, [sp]
bl func_01ffe468
ldrb r0, [r8, #0x24e]
tst r0, #1
movne r4, #1
tst r0, #2
movne r1, #1
moveq r1, #0
cmp r4, #0
ldrne r0, [sp, #0x10]
subne r5, r0, #0xd
ldreq r0, [sp, #0x10]
subeq r5, r0, #0x7c
cmp r1, #0
ldrne r0, [sp, #0xc]
subne r6, r0, #0x1b
ldreq r0, [sp, #0xc]
subeq r6, r0, #0x77
cmp r4, #0
movne r7, #0x25
moveq r7, #0x1f
bl func_ov05_02104b0c
cmp r0, #0
beq _021050cc
mov r4, #3
add r0, sp, #0x50
mov r1, #0x1b
mov r2, #5
mov r3, #2
str r4, [sp]
bl func_ov00_020d0a30
mov r2, #0x1e
ldr r0, _02105138 ; =data_ov00_020e9360
mov r1, #0xa
str r2, [sp, #0x60]
bl func_ov00_02079e68
str r0, [sp, #0x64]
mov r0, #0x40
str r0, [sp]
mov r1, #0
str r1, [sp, #4]
str r1, [sp, #8]
add r0, r8, #0x200
ldrh r3, [r0, #0x48]
ldr r2, _0210513c ; =data_02050f54
mov r4, #0xc000
mov r3, r3, asr #0x4
mov r3, r3, lsl #0x2
ldrsh lr, [r2, r3]
add r2, r7, #0xc
add r8, r5, r2
umull sl, sb, lr, r4
mla sb, lr, r1, sb
mov ip, lr, asr #0x1f
mla sb, ip, r4, sb
adds r4, sl, #0x800
adc r1, sb, #0
mov r4, r4, lsr #0xc
orr r4, r4, r1, lsl #20
add r1, r4, #0x800
add r0, sp, #0x50
add r2, r6, #0x14
mov r3, #0x20
add r1, r8, r1, asr #12
bl func_ov00_020d0a80
mov r3, #3
add r0, sp, #0x38
mov r1, #0x1c
mov r2, #5
str r3, [sp]
bl func_ov00_020d0a30
mov r0, #0x14
str r0, [sp, #0x48]
ldr r0, _02105138 ; =data_ov00_020e9360
mov r1, #0xa
bl func_ov00_02079e68
str r0, [sp, #0x4c]
mov r3, #0x40
str r3, [sp]
mov r0, #0
str r0, [sp, #4]
str r0, [sp, #8]
add r1, r5, r7
add r2, r6, #0x1e
add r0, sp, #0x38
bl func_ov00_020d0a80
add sp, sp, #0x68
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
_021050cc:
add r0, r8, #0x200
ldrsh r0, [r0, #0x4a]
cmp r0, #0
addle sp, sp, #0x68
ldmleia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
cmp r4, #0
addne r5, r5, #0x27
mov r3, #3
add r0, sp, #0x20
mov r1, #0x1d
mov r2, #5
addeq r5, r5, #0x21
str r3, [sp]
bl func_ov00_020d0a30
mov r3, #0x40
str r3, [sp]
mov r4, #0
str r4, [sp, #4]
add r0, sp, #0x20
mov r1, r5
add r2, r6, #0x1f
str r4, [sp, #8]
bl func_ov00_020d0a80
add sp, sp, #0x68
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
.align 2, 0
arm_func_end func_ov05_02104f28
_02105130: .word data_027e0f64
_02105134: .word data_027e0f94
_02105138: .word data_ov00_020e9360
_0210513c: .word data_02050f54
.global func_ov05_02105140
arm_func_start func_ov05_02105140
func_ov05_02105140: ; 0x02105140
stmdb sp!, {r3, r4, r5, r6, r7, lr}
movs r4, r1
mov r6, r0
bne _021051b8
ldr r0, [r6, #0x14]
bl func_ov00_020c3eb0
ldr r0, _021052e4 ; =data_027e0ff4
ldr r0, [r0]
bl func_ov05_0210d474
ldr r0, _021052e8 ; =data_027e0d38
ldr r1, [r0]
ldr r0, [r1, #0x14]
cmp r0, #1
beq _021051b8
add r0, r1, #0xc
bl func_ov00_020a5e9c
cmp r0, #0x29
cmpne r0, #0x25
moveq r0, #1
movne r0, #0
cmp r0, #0
beq _021051b8
ldr r0, _021052ec ; =data_027e0900
ldr r1, _021052f0 ; =0x0000001e
ldr r0, [r0, #0x1c]
cmp r1, r0
bne _021051b8
ldr r0, _021052f4 ; =data_027e10b4
ldr r0, [r0]
bl func_ov30_0218411c
_021051b8:
ldr r0, _021052f8 ; =data_027e0f74
ldr r0, [r0]
bl func_ov00_02097738
cmp r0, #0
ldreq r0, _021052fc ; =data_027e0c68
ldreqb r0, [r0, #4]
cmpeq r0, #0
bne _021051f8
ldr r0, _02105300 ; =data_027e077c
ldr r0, [r0]
cmp r0, #1
cmpne r0, #0x3d
moveq r0, #1
movne r0, #0
cmp r0, #0
bne _02105240
_021051f8:
ldrh r0, [r6]
ldr r5, [r6, #0x10]
add r7, r5, r0, lsl #2
cmp r5, r7
bhs _02105284
_0210520c:
ldr r0, [r5]
cmp r0, #0
ldrneb r1, [r0, #0x118]
cmpne r1, #0
beq _02105230
ldr r2, [r0]
mov r1, r4
ldr r2, [r2, #0x18]
blx r2
_02105230:
add r5, r5, #4
cmp r5, r7
blo _0210520c
b _02105284
_02105240:
ldrh r0, [r6]
ldr r5, [r6, #0x10]
add r7, r5, r0, lsl #2
cmp r5, r7
bhs _02105284
_02105254:
ldr r0, [r5]
cmp r0, #0
ldrneb r1, [r0, #0x118]
cmpne r1, #0
beq _02105278
ldr r2, [r0]
mov r1, r4
ldr r2, [r2, #0x14]
blx r2
_02105278:
add r5, r5, #4
cmp r5, r7
blo _02105254
_02105284:
cmp r4, #0
ldmneia sp!, {r3, r4, r5, r6, r7, pc}
ldrh r0, [r6]
ldr r5, [r6, #0x10]
mov r4, #0
cmp r0, #0
ldmleia sp!, {r3, r4, r5, r6, r7, pc}
mov r7, r4
_021052a4:
ldr r0, [r5]
cmp r0, #0
beq _021052cc
ldrb r0, [r0, #0x118]
cmp r0, #0
bne _021052cc
mov r0, r6
mov r1, r4
mov r2, r7
bl func_ov00_020c33d4
_021052cc:
ldrh r0, [r6]
add r4, r4, #1
add r5, r5, #4
cmp r4, r0
blt _021052a4
ldmia sp!, {r3, r4, r5, r6, r7, pc}
.align 2, 0
arm_func_end func_ov05_02105140
_021052e4: .word data_027e0ff4
_021052e8: .word data_027e0d38
_021052ec: .word data_027e0900
_021052f0: .word 0x0000001e
_021052f4: .word data_027e10b4
_021052f8: .word data_027e0f74
_021052fc: .word data_027e0c68
_02105300: .word data_027e077c
.global func_ov05_02105304
arm_func_start func_ov05_02105304
func_ov05_02105304: ; 0x02105304
stmdb sp!, {r4, r5, r6, lr}
ldrh r2, [r0]
ldr r4, [r0, #0x10]
mov r6, r1
add r5, r4, r2, lsl #2
cmp r4, r5
ldmhsia sp!, {r4, r5, r6, pc}
_02105320:
ldr r0, [r4]
cmp r0, #0
ldrneb r1, [r0, #0x118]
cmpne r1, #0
ldrneb r1, [r0, #0x11a]
cmpne r1, #0
beq _0210534c
ldr r2, [r0]
mov r1, r6
ldr r2, [r2, #0x1c]
blx r2
_0210534c:
add r4, r4, #4
cmp r4, r5
blo _02105320
ldmia sp!, {r4, r5, r6, pc}
arm_func_end func_ov05_02105304
.global func_ov05_0210535c
arm_func_start func_ov05_0210535c
func_ov05_0210535c: ; 0x0210535c
stmdb sp!, {r4, r5, r6, lr}
ldrb r2, [r0, #0x18]
ldrh r3, [r0]
ldr r4, [r0, #0x10]
mov r6, r1
cmp r2, #0
add r5, r4, r3, lsl #2
beq _021053c0
cmp r4, r5
ldmhsia sp!, {r4, r5, r6, pc}
_02105384:
ldr r0, [r4]
cmp r0, #0
ldrneb r1, [r0, #0x118]
cmpne r1, #0
ldrneb r1, [r0, #0x11a]
cmpne r1, #0
beq _021053b0
ldr r2, [r0]
mov r1, r6
ldr r2, [r2, #0x20]
blx r2
_021053b0:
add r4, r4, #4
cmp r4, r5
blo _02105384
ldmia sp!, {r4, r5, r6, pc}
_021053c0:
cmp r4, r5
ldmhsia sp!, {r4, r5, r6, pc}
_021053c8:
ldr r0, [r4]
cmp r0, #0
ldrneb r1, [r0, #0x118]
cmpne r1, #0
ldrneb r1, [r0, #0x11a]
cmpne r1, #0
ldrneb r1, [r0, #0x12a]
cmpne r1, #0
beq _021053fc
ldr r2, [r0]
mov r1, r6
ldr r2, [r2, #0x20]
blx r2
_021053fc:
add r4, r4, #4
cmp r4, r5
blo _021053c8
ldmia sp!, {r4, r5, r6, pc}
arm_func_end func_ov05_0210535c
.global func_ov05_0210540c
arm_func_start func_ov05_0210540c
func_ov05_0210540c: ; 0x0210540c
stmdb sp!, {r3, r4, r5, lr}
mov r4, r0
bl func_ov00_020a8158
ldr r0, [r4, #0x14]
cmp r0, #1
beq _02105438
mov r0, r4
bl func_ov00_020a82ac
bl func_ov05_021055d0
ldr r1, [r4, #0x1c]
bl func_ov00_020c06b0
_02105438:
ldr r1, [r4, #0x14]
mvn r0, #0
cmp r1, r0
beq _02105494
mov r0, r4
bl func_ov00_020a8d28
ldr r2, [r0]
mov r1, #1
ldr r2, [r2, #0x28]
blx r2
mov r0, r4
bl func_ov00_020a8c78
ldrsh r5, [r0]
ldr r1, [r4, #0x14]
mov r0, r4
bl func_ov00_020a8d28
strh r5, [r0, #4]
ldr r1, [r4, #0x14]
mov r0, r4
bl func_ov00_020a8d28
ldr r1, [r0]
ldr r1, [r1, #0x18]
blx r1
_02105494:
ldr r1, [r4, #0x14]
mvn r0, #0
cmp r1, r0
cmpne r1, #0
cmpne r1, #1
moveq r0, #0
streqb r0, [r4, #0x24]
beq _021054c8
ldr r0, _021055c4 ; =data_ov00_020eec9c
mov r1, #0xe
bl func_ov00_020d77e4
mov r0, #1
strb r0, [r4, #0x24]
_021054c8:
ldr r2, [r4, #0x14]
mvn r0, #0
cmp r2, r0
ldrle r0, _021055c8 ; =data_ov05_021124f0
ldrle r1, [r0, #0x1b4]
ldrle r0, [r0, #0x1b8]
ble _021054f4
ldr r1, _021055cc ; =data_ov05_0211264c
add r0, r1, r2, lsl #3
ldr r1, [r1, r2, lsl #3]
ldr r0, [r0, #4]
_021054f4:
str r1, [r4, #0xc]
str r0, [r4, #0x10]
ldr r0, [r4, #0x14]
add r0, r0, #1
cmp r0, #0xb
addls pc, pc, r0, lsl #2
b _021055b8
_02105510: ; jump table
ldmia sp!, {r3, r4, r5, pc} ; case 0
b _02105540 ; case 1
b _0210554c ; case 2
b _0210557c ; case 3
b _02105558 ; case 4
b _02105564 ; case 5
b _02105570 ; case 6
b _02105594 ; case 7
b _02105588 ; case 8
b _021055a0 ; case 9
b _021055ac ; case 10
b _021055ac ; case 11
_02105540:
mov r0, r4
bl func_ov05_02105850
ldmia sp!, {r3, r4, r5, pc}
_0210554c:
mov r0, r4
bl func_ov05_02105c28
ldmia sp!, {r3, r4, r5, pc}
_02105558:
mov r0, r4
bl func_ov54_02198eec
ldmia sp!, {r3, r4, r5, pc}
_02105564:
mov r0, r4
bl func_ov55_02198f78
ldmia sp!, {r3, r4, r5, pc}
_02105570:
mov r0, r4
bl func_ov56_021990c0
ldmia sp!, {r3, r4, r5, pc}
_0210557c:
mov r0, r4
bl func_ov53_02199730
ldmia sp!, {r3, r4, r5, pc}
_02105588:
mov r0, r4
bl func_ov58_0219a454
ldmia sp!, {r3, r4, r5, pc}
_02105594:
mov r0, r4
bl func_ov57_02199e64
ldmia sp!, {r3, r4, r5, pc}
_021055a0:
mov r0, r4
bl func_ov59_0219907c
ldmia sp!, {r3, r4, r5, pc}
_021055ac:
mov r0, r4
bl func_ov55_021993b8
ldmia sp!, {r3, r4, r5, pc}
_021055b8:
mov r0, r4
bl func_ov05_02105d94
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov05_0210540c
_021055c4: .word data_ov00_020eec9c
_021055c8: .word data_ov05_021124f0
_021055cc: .word data_ov05_0211264c
.global func_ov05_021055d0
arm_func_start func_ov05_021055d0
func_ov05_021055d0: ; 0x021055d0
ldr ip, _021055dc ; =func_01fffcec
mov r0, #0
bx ip
.align 2, 0
arm_func_end func_ov05_021055d0
_021055dc: .word func_01fffcec
.global func_ov05_021055e0
arm_func_start func_ov05_021055e0
func_ov05_021055e0: ; 0x021055e0
stmdb sp!, {r3, lr}
ldr r2, [r0, #0x14]
mvn r1, #0
cmp r2, r1
cmpne r2, #9
cmpne r2, #0xa
ldrneb r1, [r0, #0x24]
cmpne r1, #0
beq _0210563c
ldr r1, _02105668 ; =data_027e0fb8
ldr r1, [r1]
ldrb r1, [r1, #0x79]
cmp r1, #0
bne _0210563c
ldr r1, _0210566c ; =data_027e077c
ldr r2, [r1]
ldr r1, [r1, #4]
cmp r2, r1
bne _0210563c
cmp r2, #0xb
beq _0210563c
bl func_ov05_02105d94
ldmia sp!, {r3, pc}
_0210563c:
ldr r1, [r0, #0x10]
tst r1, #1
add r2, r0, r1, asr #1
ldreq r1, [r0, #0xc]
beq _0210565c
ldr r1, [r2]
ldr r0, [r0, #0xc]
ldr r1, [r1, r0]
_0210565c:
mov r0, r2
blx r1
ldmia sp!, {r3, pc}
.align 2, 0
arm_func_end func_ov05_021055e0
_02105668: .word data_027e0fb8
_0210566c: .word data_027e077c
.global func_ov05_02105670
arm_func_start func_ov05_02105670
func_ov05_02105670: ; 0x02105670
stmdb sp!, {r3, r4, lr}
sub sp, sp, #4
ldr r1, _021057a8 ; =data_027e0618
mov r4, r0
ldr r1, [r1]
cmp r1, #6
addeq sp, sp, #4
moveq r0, #0
ldmeqia sp!, {r3, r4, pc}
bl func_ov00_020a8b80
cmp r0, #0
beq _021056b4
mov r0, r4
mov r1, #2
bl func_ov00_020a8ba0
cmp r0, #0
beq _021056c0
_021056b4:
add sp, sp, #4
mov r0, #0
ldmia sp!, {r3, r4, pc}
_021056c0:
mov r0, r4
bl func_ov00_020a8bd8
cmp r0, #1
addeq sp, sp, #4
moveq r0, #0
ldmeqia sp!, {r3, r4, pc}
mvn r0, #0
strh r0, [r4, #0x20]
ldr r2, [r4, #0x18]
add r1, sp, #0
str r2, [sp]
mov r0, r4
mov r2, #0
bl func_ov05_02106740
ldr r1, [sp]
mvn r0, #0
cmp r1, r0
beq _02105770
mov r0, r4
str r1, [r4, #0x14]
bl func_ov00_020a8d28
ldr r2, [r0]
mov r1, #1
ldr r2, [r2, #0x14]
blx r2
cmp r0, #0
beq _02105764
ldr r0, [r4, #0x14]
cmp r0, #7
beq _02105758
ldr r0, _021057ac ; =data_027e0f64
ldr r0, [r0]
ldr r0, [r0, #4]
ldr r0, [r0, #0x15c]
cmp r0, #0x36
bne _02105758
bl func_ov05_021057b4
bl func_ov14_0213ec64
_02105758:
add sp, sp, #4
mov r0, #1
ldmia sp!, {r3, r4, pc}
_02105764:
add sp, sp, #4
mov r0, #0
ldmia sp!, {r3, r4, pc}
_02105770:
ldr r1, _021057b0 ; =data_027e0fb8
ldr r1, [r1]
ldrb r1, [r1, #0x79]
cmp r1, #0
bne _0210579c
ldr r1, [r4, #0x14]
cmp r1, #0
cmpne r1, #1
cmpne r1, r0
movne r0, #0
strne r0, [r4, #0x14]
_0210579c:
mov r0, #0
add sp, sp, #4
ldmia sp!, {r3, r4, pc}
.align 2, 0
arm_func_end func_ov05_02105670
_021057a8: .word data_027e0618
_021057ac: .word data_027e0f64
_021057b0: .word data_027e0fb8
.global func_ov05_021057b4
arm_func_start func_ov05_021057b4
func_ov05_021057b4: ; 0x021057b4
ldr ip, _021057c0 ; =func_01fffcec
mov r0, #7
bx ip
.align 2, 0
arm_func_end func_ov05_021057b4
_021057c0: .word func_01fffcec
.global func_ov05_021057c4
arm_func_start func_ov05_021057c4
func_ov05_021057c4: ; 0x021057c4
stmdb sp!, {r3, r4, r5, lr}
mov r5, r0
ldr r2, [r5, #0x14]
mov r4, r1
cmp r2, #6
bne _021057ec
bl func_ov57_0219a364
cmp r0, #0
moveq r0, #0
ldmeqia sp!, {r3, r4, r5, pc}
_021057ec:
cmp r4, #2
beq _02105820
cmp r4, #5
beq _02105818
cmp r4, #6
bne _0210583c
ldr r0, [r5, #0x14]
cmp r0, #0
bne _0210583c
mov r0, #0
ldmia sp!, {r3, r4, r5, pc}
_02105818:
mov r0, #0
ldmia sp!, {r3, r4, r5, pc}
_02105820:
ldr r0, _0210584c ; =data_027e077c
ldr r1, [r0]
ldr r0, [r0, #4]
cmp r1, r0
moveq r0, #1
movne r0, #0
ldmia sp!, {r3, r4, r5, pc}
_0210583c:
mov r0, r5
mov r1, r4
bl func_ov00_020a7fb8
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov05_021057c4
_0210584c: .word data_027e077c
.global func_ov05_02105850
arm_func_start func_ov05_02105850
func_ov05_02105850: ; 0x02105850
stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
sub sp, sp, #0xc
mov r6, r0
bl func_ov05_021055d0
mov r4, r0
mov r0, r6
bl func_ov00_020a81a0
mov r1, #0
ldr r0, _02105bf0 ; =data_027e0fb8
strb r1, [r6, #0x25]
ldr r0, [r0]
bl func_ov00_020af044
mov r0, r4
bl func_ov00_020bf028
cmp r0, #0
beq _021058a8
mvn r1, #0
mov r0, r6
str r1, [r6, #0x18]
bl func_ov05_02105dac
add sp, sp, #0xc
ldmia sp!, {r4, r5, r6, r7, r8, sb, pc}
_021058a8:
ldr r0, [r6, #0x1c]
cmp r0, #8
addls pc, pc, r0, lsl #2
b _02105b6c
_021058b8: ; jump table
b _021058dc ; case 0
b _021058f8 ; case 1
b _021058f8 ; case 2
b _02105914 ; case 3
b _02105968 ; case 4
b _02105b30 ; case 5
b _02105b30 ; case 6
b _02105b4c ; case 7
b _02105b4c ; case 8
_021058dc:
mov r0, r6
bl func_ov00_020a8c4c
mov r2, r0
ldr r0, _02105bf4 ; =data_ov00_020eec9c
ldr r1, _02105bf8 ; =0x00000111
bl func_ov00_020d7b20
b _02105b6c
_021058f8:
mov r0, r6
bl func_ov00_020a8c4c
mov r2, r0
ldr r0, _02105bf4 ; =data_ov00_020eec9c
ldr r1, _02105bfc ; =0x00000112
bl func_ov00_020d7b20
b _02105b6c
_02105914:
mov r0, r6
bl func_ov00_020a8c4c
mov r2, r0
ldr r0, _02105bf4 ; =data_ov00_020eec9c
ldr r1, _02105c00 ; =0x00000113
bl func_ov00_020d7b20
ldrsh r0, [r6, #0x20]
cmp r0, #0
bge _02105b6c
mov r0, r6
bl func_ov00_020a8d40
ldrsh r0, [r0, #0x5a]
cmp r0, #0
bne _02105b6c
mov r0, r6
bl func_ov00_020a8c78
ldrsh r1, [r0]
ldr r2, _02105c04 ; =0x00000666
mov r0, r6
bl func_ov00_020a82c4
b _02105b6c
_02105968:
mov r0, r6
bl func_ov00_020a8c4c
mov r2, r0
ldr r0, _02105bf4 ; =data_ov00_020eec9c
mov r1, #0x114
bl func_ov00_020d7b20
ldr r0, [r6, #0x58]
cmp r0, #3
beq _02105b6c
ldr r0, _02105bf0 ; =data_027e0fb8
ldr r0, [r0]
bl func_ov00_020aeffc
cmp r0, #0
beq _021059e0
ldr r0, _02105bf0 ; =data_027e0fb8
ldr r0, [r0]
bl func_ov00_020aeffc
mov r5, r0
mov r0, r6
bl func_ov00_020a8c4c
mov r1, r0
add r0, r6, #0x38
bl func_01ff9ec0
ldr r1, _02105c08 ; =data_ov05_021124f0
ldr r2, [r5, #0x88]
ldr r1, [r1, #0x24]
sub r0, r0, r2
subs r5, r0, r1
movmi r5, #0
b _021059f0
_021059e0:
mov r0, r6
bl func_ov05_02105d94
add sp, sp, #0xc
ldmia sp!, {r4, r5, r6, r7, r8, sb, pc}
_021059f0:
add r0, r6, #0x38
add r3, sp, #0
ldmia r0, {r0, r1, r2}
stmia r3, {r0, r1, r2}
ldr r0, _02105c0c ; =data_027e0e60
mov r1, r3
ldr r0, [r0]
mov r2, #1
bl func_ov00_02083ee0
ldr r2, _02105c08 ; =data_ov05_021124f0
str r0, [r6, #0x3c]
ldr r1, [r2, #0x20]
cmp r5, r1
ldrgt r0, [r2, #0x28]
bgt _02105a38
ldr r2, [r2, #0x28]
mul r0, r2, r5
bl func_02002c14
_02105a38:
str r0, [r6, #0x30]
mov r0, r6
bl func_ov00_020a8c58
mov r1, #0
str r1, [r0]
mov r0, r6
bl func_ov00_020a8c58
mov r1, #0
str r1, [r0, #8]
mov r0, r6
bl func_ov00_020a8c78
ldrh r5, [r0]
mov r0, r6
bl func_ov00_020a8c58
mov r1, r5, asr #0x4
mov r2, r1, lsl #0x1
mov r7, r2, lsl #0x1
ldr r5, _02105c10 ; =data_02050f54
add r2, r2, #1
mov r2, r2, lsl #0x1
ldrsh lr, [r5, r7]
ldrsh ip, [r5, r2]
ldr r2, _02105c14 ; =0x00000266
mov r3, #0
umull sb, r8, lr, r2
mla r8, lr, r3, r8
mov r7, lr, asr #0x1f
mla r8, r7, r2, r8
adds sb, sb, #0x800
adc r7, r8, #0
mov r8, sb, lsr #0xc
ldr r1, [r0]
orr r8, r8, r7, lsl #20
add r1, r1, r8
str r1, [r0]
umull lr, r1, ip, r2
mla r1, ip, r3, r1
mov r5, ip, asr #0x1f
mla r1, r5, r2, r1
adds r2, lr, #0x800
ldr r7, [r0, #8]
adc r1, r1, #0
mov r2, r2, lsr #0xc
orr r2, r2, r1, lsl #20
add r1, r7, r2
str r1, [r0, #8]
mov r0, r6
bl func_ov00_020a8c78
ldrsh r1, [r0]
ldr r2, _02105c14 ; =0x00000266
mov r0, r6
bl func_ov00_020a82c4
mov r0, r6
ldr r5, [r6, #0x30]
bl func_ov00_020a8c58
ldr r0, [r0, #4]
cmp r0, r5
bge _02105b6c
mov r0, r6
bl func_ov00_020a8c58
str r5, [r0, #4]
b _02105b6c
_02105b30:
mov r0, r6
bl func_ov00_020a8c4c
mov r2, r0
ldr r0, _02105bf4 ; =data_ov00_020eec9c
ldr r1, _02105c18 ; =0x00000115
bl func_ov00_020d7b20
b _02105b6c
_02105b4c:
mov r0, r6
bl func_ov00_020a8c4c
mov r2, r0
ldr r0, _02105bf4 ; =data_ov00_020eec9c
ldr r1, _02105c1c ; =0x00000116
bl func_ov00_020d7b20
mov r0, #0
strh r0, [r6, #0x22]
_02105b6c:
ldr r0, [r6, #0x58]
ldr r1, [r6, #0x1c]
ldr r2, _02105c20 ; =data_ov05_021125bc
cmp r0, #3
add r5, r2, r1, lsl #4
mov r2, #1
beq _02105b98
mov r0, r6
mov r1, r5
bl func_ov00_020a89bc
b _02105bb0
_02105b98:
ldr r1, _02105c24 ; =data_ov05_0211259c
mov r0, r6
bl func_ov00_020a8a4c
mov r0, r6
mov r1, r5
bl func_ov00_020a8ab0
_02105bb0:
ldr r0, [r6, #0x1c]
cmp r0, #4
beq _02105be0
ldr r1, [r5]
mov r0, r6
bl func_ov00_020a8d88
mov r1, r0
ldr r0, [r5, #8]
bl func_01ff98e0
mov r1, r0
mov r0, r4
bl func_ov00_020c05ec
_02105be0:
mvn r0, #0
str r0, [r6, #0x18]
add sp, sp, #0xc
ldmia sp!, {r4, r5, r6, r7, r8, sb, pc}
.align 2, 0
arm_func_end func_ov05_02105850
_02105bf0: .word data_027e0fb8
_02105bf4: .word data_ov00_020eec9c
_02105bf8: .word 0x00000111
_02105bfc: .word 0x00000112
_02105c00: .word 0x00000113
_02105c04: .word 0x00000666
_02105c08: .word data_ov05_021124f0
_02105c0c: .word data_027e0e60
_02105c10: .word data_02050f54
_02105c14: .word 0x00000266
_02105c18: .word 0x00000115
_02105c1c: .word 0x00000116
_02105c20: .word data_ov05_021125bc
_02105c24: .word data_ov05_0211259c
.global func_ov05_02105c28
arm_func_start func_ov05_02105c28
func_ov05_02105c28: ; 0x02105c28
stmdb sp!, {r4, r5, r6, lr}
mov r5, r0
bl func_ov00_020a8ca4
cmp r0, #0
ldmneia sp!, {r4, r5, r6, pc}
mov r0, r5
mov r1, #0
bl func_ov00_020a8d28
ldr r2, [r0]
mov r1, #1
ldr r2, [r2, #0x28]
blx r2
mov r0, r5
bl func_ov00_020a8dcc
ldr r1, _02105d78 ; =data_ov05_021124f0
ldr r1, [r1, #0xbc]
cmp r0, r1
blt _02105c98
mov r0, r5
bl func_ov00_020a8d50
ldr r1, _02105d78 ; =data_ov05_021124f0
ldr r2, [r1, #0x60]
cmp r0, r2
blt _02105c98
ldr r1, [r1, #0x64]
mov r0, r5
bl func_ov00_020a8ad0
b _02105ca8
_02105c98:
ldr r1, _02105d7c ; =data_ov05_021125ac
mov r0, r5
mov r2, #0
bl func_ov00_020a89bc
_02105ca8:
bl func_ov05_02105d84
ldr r0, [r0, #0x18]
cmp r0, #0
beq _02105cd0
cmp r0, #1
beq _02105cdc
cmp r0, #2
ldreq r0, _02105d78 ; =data_ov05_021124f0
ldreq r4, [r0, #0x38]
b _02105ce4
_02105cd0:
ldr r0, _02105d78 ; =data_ov05_021124f0
ldr r4, [r0, #0x30]
b _02105ce4
_02105cdc:
ldr r0, _02105d78 ; =data_ov05_021124f0
ldr r4, [r0, #0x34]
_02105ce4:
mov r0, r5
bl func_ov00_020a8c78
ldrh r6, [r0]
mov r0, r5
bl func_ov00_020a8c58
mov r1, r6, asr #0x4
mov r2, r1, lsl #0x1
add r1, r2, #1
ldr r3, _02105d80 ; =data_02050f54
mov r2, r2, lsl #0x1
ldrsh r2, [r3, r2]
mov r1, r1, lsl #0x1
ldrsh r1, [r3, r1]
smull r3, ip, r2, r4
adds lr, r3, #0x800
smull r3, r2, r1, r4
adc r1, ip, #0
adds r3, r3, #0x800
mov ip, lr, lsr #0xc
ldr lr, [r0]
orr ip, ip, r1, lsl #20
add r1, lr, ip
str r1, [r0]
adc r1, r2, #0
mov r2, r3, lsr #0xc
ldr r3, [r0, #8]
orr r2, r2, r1, lsl #20
add r1, r3, r2
str r1, [r0, #8]
mov r0, r5
bl func_ov00_020a8c78
mov r1, r0
mov r0, r5
ldrsh r1, [r1]
mov r2, r4
bl func_ov00_020a82c4
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
arm_func_end func_ov05_02105c28
_02105d78: .word data_ov05_021124f0
_02105d7c: .word data_ov05_021125ac
_02105d80: .word data_02050f54
.global func_ov05_02105d84
arm_func_start func_ov05_02105d84
func_ov05_02105d84: ; 0x02105d84
ldr ip, _02105d90 ; =func_01fffcec
mov r0, #1
bx ip
.align 2, 0
arm_func_end func_ov05_02105d84
_02105d90: .word func_01fffcec
.global func_ov05_02105d94
arm_func_start func_ov05_02105d94
func_ov05_02105d94: ; 0x02105d94
stmdb sp!, {r4, lr}
mov r4, r0
bl func_ov00_020a8994
mov r0, #0
str r0, [r4, #0x58]
ldmia sp!, {r4, pc}
arm_func_end func_ov05_02105d94
.global func_ov05_02105dac
arm_func_start func_ov05_02105dac
func_ov05_02105dac: ; 0x02105dac
stmdb sp!, {r3, r4, r5, r6, r7, lr}
sub sp, sp, #8
mov r4, r0
bl func_ov05_021055d0
mov r6, r0
mov r0, r4
mov r1, #2
bl func_ov00_020a8ba0
cmp r0, #0
bne _02105dec
ldr r0, _021065e8 ; =data_027e0fb4
ldr r0, [r0]
ldr r0, [r0]
sub r0, r0, #9
cmp r0, #1
bhi _02105dfc
_02105dec:
mov r0, r4
bl func_ov05_02105d94
add sp, sp, #8
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_02105dfc:
ldr r2, [r6, #0x40]
ldr r1, _021065ec ; =data_ov05_0211252c
mov r0, r4
ldr r1, [r1, r2, lsl #2]
mov r2, #0
bl func_ov00_020a8b04
ldr r1, [r6, #0x40]
mov r5, #0
cmp r1, #8
addls pc, pc, r1, lsl #2
b _02105f4c
_02105e28: ; jump table
b _02105f4c ; case 0
b _02105f4c ; case 1
b _02105f4c ; case 2
b _02105f4c ; case 3
b _02105f4c ; case 4
b _02105e4c ; case 5
b _02105e4c ; case 6
b _02105e68 ; case 7
b _02105edc ; case 8
_02105e4c:
cmp r0, #0
beq _02105f4c
bl func_ov05_02106634
mov r1, #2
mov r2, #1
bl func_ov00_020aee58
b _02105f4c
_02105e68:
ldrsh r1, [r4, #0x22]
cmp r1, #0xf
bge _02105ebc
mov r0, r4
mov r1, #0xc000
mov r2, #1
bl func_ov00_020a8b04
cmp r0, #0
beq _02105f4c
ldrb r0, [r4, #0x25]
cmp r0, #0
bne _02105f4c
mov r0, r4
mov r1, #0x6000
bl func_ov00_020a8ad0
bl func_ov05_021055d0
bl func_ov00_020bf330
ldrsh r0, [r4, #0x22]
add r0, r0, #1
strh r0, [r4, #0x22]
b _02105f4c
_02105ebc:
cmp r0, #0
mov r5, #1
beq _02105f4c
bl func_ov05_02106634
mov r1, #5
mov r2, r5
bl func_ov00_020aee58
b _02105f4c
_02105edc:
ldrsh r1, [r4, #0x22]
cmp r1, #0x11
bge _02105f30
mov r0, r4
mov r1, #0xb000
mov r2, #1
bl func_ov00_020a8b04
cmp r0, #0
beq _02105f4c
ldrb r0, [r4, #0x25]
cmp r0, #0
bne _02105f4c
mov r0, r4
mov r1, #0x6000
bl func_ov00_020a8ad0
bl func_ov05_021055d0
bl func_ov00_020bf330
ldrsh r0, [r4, #0x22]
add r0, r0, #1
strh r0, [r4, #0x22]
b _02105f4c
_02105f30:
cmp r0, #0
mov r5, #1
beq _02105f4c
bl func_ov05_02106634
mov r1, #5
mov r2, r5
bl func_ov00_020aee58
_02105f4c:
mov r0, r4
mov r1, r6
mov r2, #1
bl func_ov05_02106894
cmp r0, #0
beq _02105fd8
ldr r1, [r4, #0x18]
mvn r0, #0
cmp r1, r0
moveq r2, #1
movne r2, #0
mov r0, r4
add r1, r4, #0x18
bl func_ov05_02106740
mov r0, r4
mov r1, r6
mov r2, #0
bl func_ov05_02106894
cmp r0, #0
beq _02105fd8
mov r0, r4
bl func_ov05_02106a50
cmp r0, #0
addne sp, sp, #8
ldmneia sp!, {r3, r4, r5, r6, r7, pc}
ldr r0, _021065f0 ; =data_027e0fb8
ldr r0, [r0]
bl func_ov00_020b034c
ldr r1, _021065f4 ; =0x00000ccd
cmp r0, r1
blt _02105fd8
mov r0, r4
bl func_ov05_02105d94
add sp, sp, #8
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_02105fd8:
mov r0, r6
bl func_ov00_020bf028
cmp r0, #0
beq _02106150
mov r0, r4
bl func_ov00_020a8c64
mov r1, #0x800
str r1, [r0]
ldrb r0, [r4, #0x25]
cmp r0, #0
mov r0, r4
beq _0210602c
mov r1, #1
bl func_ov00_020a8b3c
cmp r0, #0
addeq sp, sp, #8
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
mov r0, r4
bl func_ov05_02105d94
add sp, sp, #8
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_0210602c:
mov r1, r6
mov r2, #0
bl func_ov05_02106894
cmp r0, #0
bne _02106150
ldr r0, [r6, #0x40]
mov r2, #1
cmp r0, #1
cmpne r0, #5
cmpne r0, #7
bne _02106068
ldr r1, _021065f8 ; =data_ov05_0211257c
mov r0, r4
bl func_ov00_020a89bc
b _02106074
_02106068:
ldr r1, _021065fc ; =data_ov05_0211258c
mov r0, r4
bl func_ov00_020a89bc
_02106074:
ldrsh r2, [r6, #0x5a]
ldr r0, _02106600 ; =0x00000266
mov r1, #0
umull r5, r3, r2, r0
mla r3, r2, r1, r3
mov r1, r2, asr #0x1f
mla r3, r1, r0, r3
adds r2, r5, #0x800
mov r0, r4
adc r1, r3, #0
mov r5, r2, lsr #0xc
orr r5, r5, r1, lsl #20
bl func_ov00_020a8c78
ldrsh r1, [r0]
mov r0, r4
sub r1, r1, #0x8000
mov r1, r1, lsl #0x10
mov r7, r1, asr #0x10
bl func_ov00_020a8c58
mov r1, r7, lsl #0x10
mov r1, r1, lsr #0x10
mov r1, r1, asr #0x4
mov r2, r1, lsl #0x1
add r1, r2, #1
ldr r3, _02106604 ; =data_02050f54
mov r2, r2, lsl #0x1
mov r1, r1, lsl #0x1
ldrsh r2, [r3, r2]
ldrsh r1, [r3, r1]
smull r3, r7, r2, r5
adds ip, r3, #0x800
smull r3, r2, r1, r5
adc r1, r7, #0
mov r5, ip, lsr #0xc
ldr r7, [r0]
orr r5, r5, r1, lsl #20
add r1, r7, r5
adds r3, r3, #0x800
str r1, [r0]
adc r1, r2, #0
mov r2, r3, lsr #0xc
ldr r3, [r0, #8]
orr r2, r2, r1, lsl #20
add r1, r3, r2
str r1, [r0, #8]
mov r0, r6
bl func_ov00_020bf088
mov r0, #1
strb r0, [r4, #0x25]
bl func_ov05_02106634
mov r1, #0
strh r1, [r0, #0x12]
strh r1, [r0, #0x14]
add sp, sp, #8
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_02106150:
mov r0, r4
bl func_ov00_020a8d40
ldrsh r0, [r0, #0x5a]
cmp r0, #0
moveq r0, #1
movne r0, #0
strb r0, [r6, #0x6d]
ldr r0, [r6, #0x40]
cmp r0, #4
mov r0, r4
bne _021064a4
bl func_ov00_020a8db8
ldr r1, _02106608 ; =data_ov05_021124f0
ldr r1, [r1, #0x10c]
cmp r1, r0
mov r0, r4
bne _0210627c
ldr r6, _0210660c ; =data_ov05_021125fc
bl func_ov00_020a8c58
ldr r0, [r0, #4]
cmp r0, #0
ble _021061f0
mov r0, r4
bl func_ov00_020a8c58
ldr r0, [r0, #4]
ldr r1, [r4, #0x30]
bl func_01ff98e0
mov r5, r0
ldr r3, [r6, #0xc]
ldr r1, [r6, #8]
mov r0, r4
sub r1, r3, r1
smull r2, r1, r5, r1
adds r2, r2, #0x800
adc r1, r1, #0
mov r2, r2, lsr #0xc
orr r2, r2, r1, lsl #20
sub r1, r3, r2
bl func_ov00_020a8ad0
b _021061fc
_021061f0:
ldr r1, [r6, #0xc]
mov r0, r4
bl func_ov00_020a8ad0
_021061fc:
mov r0, r4
bl func_ov00_020a8c58
ldr r0, [r0, #4]
cmp r0, #0
bgt _02106248
mov r0, r4
bl func_ov00_020a8c4c
mov r5, r0
mov r0, r4
bl func_ov00_020a8c58
ldr r1, _02106608 ; =data_ov05_021124f0
ldr r5, [r5, #4]
ldr r3, [r0, #4]
ldr r2, [r4, #0x3c]
ldr r0, [r1, #0x2c]
add r1, r5, r3
add r0, r2, r0
cmp r1, r0
ble _02106258
_02106248:
mov r0, r4
bl func_ov00_020a8b80
cmp r0, #0
beq _0210647c
_02106258:
mov r0, r4
bl func_ov00_020a8c4c
ldr r3, [r0, #4]
ldr r1, _02106610 ; =data_ov05_0211255c
mov r0, r4
mov r2, #0
str r3, [r4, #0x34]
bl func_ov00_020a8a4c
b _0210647c
_0210627c:
bl func_ov00_020a8db8
ldr r1, _02106608 ; =data_ov05_021124f0
ldr r1, [r1, #0x6c]
cmp r1, r0
mov r0, r4
bne _02106404
ldr r5, [r4, #0x3c]
bl func_ov00_020a8c4c
ldr r1, _02106608 ; =data_ov05_021124f0
ldr r2, [r0, #4]
ldr r0, [r1, #0x2c]
sub r1, r2, r5
cmp r1, r0
movgt r5, #0
bgt _021062e8
ldr r7, [r4, #0x34]
cmp r7, r5
movle r5, #0x1000
ble _021062e8
mov r0, r4
bl func_ov00_020a8c4c
ldr r2, [r0, #4]
ldr r0, [r4, #0x3c]
sub r1, r7, r5
sub r0, r2, r0
bl func_01ff98e0
rsb r5, r0, #0x1000
_021062e8:
ldr r1, _02106608 ; =data_ov05_021124f0
mov r0, r4
ldr r3, [r1, #0x74]
ldr r1, [r1, #0x78]
sub r1, r1, r3
smull r2, r1, r5, r1
adds r2, r2, #0x800
adc r1, r1, #0
mov r2, r2, lsr #0xc
orr r2, r2, r1, lsl #20
add r1, r3, r2
bl func_ov00_020a8ad0
mov r0, r4
bl func_ov00_020a8b80
cmp r0, #0
bne _02106340
mov r0, r4
bl func_ov00_020a8c4c
ldr r1, [r0, #4]
ldr r0, [r4, #0x3c]
cmp r1, r0
bgt _021063f0
_02106340:
ldr r0, [r4, #0x58]
cmp r0, #3
bne _021063d0
mov r0, r4
bl func_ov00_020a8b80
cmp r0, #0
beq _021063d0
mov r0, r4
bl func_ov00_020a8d40
bl func_ov00_020b53f4
cmp r0, #0
mov r5, #0
beq _021063a4
ldr r1, _02106614 ; =data_027e0e58
mov r0, r4
ldr r7, [r1]
bl func_ov00_020a8c4c
mov r2, r0
str r5, [sp]
mov r0, r7
mov r1, #0x120
mov r3, #1
str r5, [sp, #4]
bl func_ov00_0207c1b0
b _021063d0
_021063a4:
ldr r1, _02106614 ; =data_027e0e58
mov r0, r4
ldr r7, [r1]
bl func_ov00_020a8c4c
mov r2, r0
str r5, [sp]
ldr r1, _02106618 ; =0x0000011f
mov r0, r7
mov r3, #1
str r5, [sp, #4]
bl func_ov00_0207c1b0
_021063d0:
ldr r1, _0210661c ; =data_ov05_0211256c
mov r0, r4
mov r2, #0
bl func_ov00_020a8a4c
mov r0, r6
mov r1, #0x800
bl func_ov00_020c05ec
b _0210647c
_021063f0:
add r1, r5, r5, lsr #31
mov r0, r6
mov r1, r1, asr #0x1
bl func_ov00_020c05ec
b _0210647c
_02106404:
bl func_ov00_020a8db8
ldr r1, _02106608 ; =data_ov05_021124f0
ldr r1, [r1, #0x7c]
cmp r1, r0
mov r0, r4
bne _02106478
mov r1, #0
bl func_ov00_020a8b3c
cmp r0, #0
mov r0, r4
beq _0210643c
bl func_ov05_02105d94
add sp, sp, #8
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_0210643c:
bl func_ov00_020a8d6c
ldr r1, _02106608 ; =data_ov05_021124f0
mov r5, r0
ldr r1, [r1, #0x7c]
mov r0, r4
bl func_ov00_020a8d88
mov r1, r0
mov r0, r5
mov r1, r1, lsl #0x1
bl func_01ff98e0
mov r1, r0
mov r0, r6
add r1, r1, #0x800
bl func_ov00_020c05ec
b _0210647c
_02106478:
bl func_ov05_02105d94
_0210647c:
ldr r0, [r4, #0x58]
cmp r0, #3
addne sp, sp, #8
ldmneia sp!, {r3, r4, r5, r6, r7, pc}
mov r0, r4
bl func_ov00_020a8d40
ldr r1, _02106620 ; =0x00001666
add sp, sp, #8
strh r1, [r0, #0xa8]
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_021064a4:
mov r1, #1
bl func_ov00_020a8b3c
cmp r0, #0
beq _021064c4
mov r0, r4
bl func_ov05_02105d94
add sp, sp, #8
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_021064c4:
ldr r0, [r6, #0x40]
cmp r0, #3
beq _021064e0
cmp r0, #7
cmpne r0, #8
beq _021064f4
b _021065a8
_021064e0:
mov r0, r4
bl func_ov00_020a8c64
ldr r1, _021065f4 ; =0x00000ccd
str r1, [r0]
b _021065a8
_021064f4:
ldr r0, _021065f0 ; =data_027e0fb8
ldr r0, [r0]
bl func_ov00_020b034c
mov r7, r0
mov r0, r4
bl func_ov00_020a8c64
ldr r2, _02106624 ; =0x00000666
cmp r5, #0
str r2, [r0]
bne _02106594
rsb r0, r2, #0x800
cmp r7, r0
ble _0210653c
ldr r0, _021065f0 ; =data_027e0fb8
ldr r0, [r0]
bl func_ov00_020b0328
mov r1, r0
b _02106554
_0210653c:
ldrsh r1, [r4, #0x2c]
ldr r0, _02106628 ; =0x00001555
rsb r7, r2, #0x800
smulbb r0, r1, r0
mov r0, r0, lsl #0x10
mov r1, r0, asr #0x10
_02106554:
cmp r7, #0
ble _02106594
cmp r5, #0
bne _02106594
ldr r0, _0210662c ; =0x00000571
mov r2, #0
umull r5, r3, r7, r0
mla r3, r7, r2, r3
mov r2, r7, asr #0x1f
adds r5, r5, #0x800
mla r3, r2, r0, r3
adc r3, r3, #0
mov r2, r5, lsr #0xc
mov r0, r4
orr r2, r2, r3, lsl #20
bl func_ov00_020a82c4
_02106594:
mov r0, r4
bl func_ov05_0210f758
ldrsh r0, [r4, #0x2c]
add r0, r0, #1
strh r0, [r4, #0x2c]
_021065a8:
mov r0, r4
bl func_ov00_020a8d6c
mov r5, r0
ldr r2, [r6, #0x40]
ldr r1, _02106630 ; =data_ov05_021125bc
mov r0, r4
ldr r1, [r1, r2, lsl #4]
bl func_ov00_020a8d88
mov r1, r0
mov r0, r5
bl func_01ff98e0
mov r1, r0
mov r0, r6
bl func_ov00_020c05ec
add sp, sp, #8
ldmia sp!, {r3, r4, r5, r6, r7, pc}
.align 2, 0
arm_func_end func_ov05_02105dac
_021065e8: .word data_027e0fb4
_021065ec: .word data_ov05_0211252c
_021065f0: .word data_027e0fb8
_021065f4: .word 0x00000ccd
_021065f8: .word data_ov05_0211257c
_021065fc: .word data_ov05_0211258c
_02106600: .word 0x00000266
_02106604: .word data_02050f54
_02106608: .word data_ov05_021124f0
_0210660c: .word data_ov05_021125fc
_02106610: .word data_ov05_0211255c
_02106614: .word data_027e0e58
_02106618: .word 0x0000011f
_0210661c: .word data_ov05_0211256c
_02106620: .word 0x00001666
_02106624: .word 0x00000666
_02106628: .word 0x00001555
_0210662c: .word 0x00000571
_02106630: .word data_ov05_021125bc
.global func_ov05_02106634
arm_func_start func_ov05_02106634
func_ov05_02106634: ; 0x02106634
ldr ip, _02106640 ; =func_01fffcd8
mov r0, #4
bx ip
.align 2, 0
arm_func_end func_ov05_02106634
_02106640: .word func_01fffcd8
.global func_ov05_02106644
arm_func_start func_ov05_02106644
func_ov05_02106644: ; 0x02106644
stmdb sp!, {r3, r4, r5, lr}
mov r1, #0
mov r4, r0
bl func_ov00_020a8b3c
cmp r0, #0
mov r0, r4
beq _021066a4
mov r1, #1
bl func_ov00_020a8d28
mov r5, r0
mov r0, r4
mov r1, #0
bl func_ov00_020a8d28
ldr r1, [r0]
ldr r1, [r1, #0x24]
blx r1
mov r1, r0
mov r0, r5
ldr r2, [r0]
ldr r2, [r2, #0x28]
blx r2
mov r0, r4
bl func_ov05_02105d94
ldmia sp!, {r3, r4, r5, pc}
_021066a4:
bl func_ov00_020a8d50
ldr r1, _021066fc ; =data_ov05_021124f0
ldr r1, [r1, #0x60]
cmp r0, r1
ldmltia sp!, {r3, r4, r5, pc}
mov r0, r4
bl func_ov05_021112ec
ldr r1, [r4, #0x18]
mvn r0, #0
cmp r1, r0
moveq r2, #1
movne r2, #0
mov r0, r4
add r1, r4, #0x18
bl func_ov05_02106740
mov r0, r4
bl func_ov00_020a8c64
mov r1, #0x400
str r1, [r0]
mov r0, r4
bl func_ov05_02106a50
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov05_02106644
_021066fc: .word data_ov05_021124f0
.global func_ov05_02106700
arm_func_start func_ov05_02106700
func_ov05_02106700: ; 0x02106700
stmdb sp!, {lr}
sub sp, sp, #0xc
ldr ip, [r1, #8]
ldmia r1, {r3, lr}
str r3, [r0, #0x38]
str lr, [r0, #0x3c]
str ip, [r0, #0x40]
mov r1, #0
str r2, [r0, #0x30]
str r1, [r0, #0x14]
mov r1, #4
str r1, [r0, #0x1c]
mov r1, #3
str r1, [r0, #0x58]
add sp, sp, #0xc
ldmia sp!, {pc}
arm_func_end func_ov05_02106700
.global func_ov05_02106740
arm_func_start func_ov05_02106740
func_ov05_02106740: ; 0x02106740
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #0xc
mov r5, r1
ldr r3, [r5]
mov r1, #0
str r3, [sp, #8]
strb r1, [sp, #4]
mov r6, r0
mov r4, r2
bl func_ov05_02105d84
ldrb r0, [r0, #0xb]
cmp r0, #0
movne r0, #1
strne r0, [r5]
mov r0, r6
bl func_ov00_020a8ca4
cmp r0, #0
addne sp, sp, #0xc
ldmneia sp!, {r4, r5, r6, r7, pc}
ldr r1, _0210688c ; =data_027e0fb8
mov r0, r6
ldr r7, [r1]
bl func_ov00_020a8c78
add ip, sp, #4
mov r1, r0
add r2, sp, #8
mov r0, r7
add r3, r6, #0x1c
str ip, [sp]
bl func_ov00_020b0b0c
cmp r0, #0
addeq sp, sp, #0xc
ldmeqia sp!, {r4, r5, r6, r7, pc}
ldrb r0, [sp, #4]
cmp r0, #0
cmpne r4, #0
ldrnesh r0, [r6, #0x20]
addne r0, r0, #1
strneh r0, [r6, #0x20]
ldr r0, [sp, #8]
cmp r0, #0
bne _02106874
mov r0, r6
bl func_ov00_020a8d40
ldrsh r0, [r0, #0x5a]
cmp r0, #0
beq _02106810
ldr r0, [r6, #0x1c]
sub r0, r0, #5
cmp r0, #1
addls sp, sp, #0xc
ldmlsia sp!, {r4, r5, r6, r7, pc}
_02106810:
bl func_ov05_02106634
mov r1, #1
bl func_ov05_02106c80
cmp r0, #3
blt _02106874
ldr r0, _02106890 ; =data_027e0fb4
mov r1, #0x2d
ldr r0, [r0]
bl func_ov00_020ada78
cmp r0, #0
beq _02106874
ldr r0, [r6, #0x1c]
cmp r0, #5
bne _0210685c
mov r0, #7
str r0, [r6, #0x1c]
mov r0, #0
strh r0, [r6, #0x2c]
b _02106874
_0210685c:
cmp r0, #6
bne _02106874
mov r0, #8
str r0, [r6, #0x1c]
mov r0, #0
strh r0, [r6, #0x2c]
_02106874:
ldr r1, [sp, #8]
mov r0, #1
str r1, [r5]
strb r0, [r6, #0x26]
add sp, sp, #0xc
ldmia sp!, {r4, r5, r6, r7, pc}
.align 2, 0
arm_func_end func_ov05_02106740
_0210688c: .word data_027e0fb8
_02106890: .word data_027e0fb4
.global func_ov05_02106894
arm_func_start func_ov05_02106894
func_ov05_02106894: ; 0x02106894
stmdb sp!, {r4, r5, r6, lr}
mov r6, r0
ldrb r3, [r6, #0x25]
mov r5, r2
cmp r3, #0
beq _021068c8
bl func_ov00_020a8d6c
ldr r1, _02106974 ; =data_ov05_021124f0
ldr r1, [r1, #0x68]
cmp r0, r1
movge r0, #1
movlt r0, #0
ldmia sp!, {r4, r5, r6, pc}
_021068c8:
ldr r2, [r1, #0x40]
cmp r2, #4
bne _021068f8
bl func_ov00_020a8db8
ldr r1, _02106974 ; =data_ov05_021124f0
ldr r2, [r1, #0x7c]
cmp r2, r0
ldreq r4, [r1, #0x4c]
ldreq r0, [r1, #0x84]
beq _02106908
mov r0, #0
ldmia sp!, {r4, r5, r6, pc}
_021068f8:
ldr r1, _02106978 ; =data_ov05_0211252c
ldr r0, _0210697c ; =data_ov05_021125c4
ldr r4, [r1, r2, lsl #2]
ldr r0, [r0, r2, lsl #4]
_02106908:
cmp r5, #0
beq _0210695c
ldrsh r1, [r6, #0x20]
sub r3, r4, r0
mov r0, r6
add r1, r1, #1
mov r2, r1, lsl #0xc
mov r1, r2, asr #0x1
add r1, r2, r1, lsr #30
mov r1, r1, asr #0x2
smull r2, r1, r3, r1
adds r2, r2, #0x800
adc r1, r1, #0
mov r5, r2, lsr #0xc
orr r5, r5, r1, lsl #20
bl func_ov00_020a8d6c
sub r1, r4, r5
cmp r0, r1
movge r0, #1
movlt r0, #0
ldmia sp!, {r4, r5, r6, pc}
_0210695c:
mov r0, r6
bl func_ov00_020a8d6c
cmp r0, r4
movge r0, #1
movlt r0, #0
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
arm_func_end func_ov05_02106894
_02106974: .word data_ov05_021124f0
_02106978: .word data_ov05_0211252c
_0210697c: .word data_ov05_021125c4
.global func_ov05_02106980
arm_func_start func_ov05_02106980
func_ov05_02106980: ; 0x02106980
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #0xc
mov r5, r1
mov r1, #0
mov r6, r0
mov r7, r2
mov r4, r3
bl func_ov00_020a8d28
ldr r2, [r0]
mov r1, #1
ldr r2, [r2, #0x14]
blx r2
cmp r0, #0
bne _021069c4
cmp r7, #0
addne sp, sp, #0xc
ldmneia sp!, {r4, r5, r6, r7, pc}
_021069c4:
mov r0, r6
bl func_ov00_020a8bf8
cmp r0, #1
cmpeq r7, #0
bne _02106a28
bl func_ov05_021055d0
ldr r0, [r0, #0x40]
cmp r0, #0
bne _02106a28
ldr r0, _02106a4c ; =data_027e0764
ldr r2, [r0]
ldmib r0, {r1, r3}
umull lr, ip, r3, r2
mla ip, r3, r1, ip
ldr r1, [r0, #0xc]
ldr r3, [r0, #0x10]
mla ip, r1, r2, ip
ldr r1, [r0, #0x14]
adds r2, r3, lr
adc r1, r1, ip
str r2, [r0]
tst r1, #0x80000000
movne r7, #1
str r1, [r0, #4]
moveq r7, #2
_02106a28:
str r5, [r6, #0x18]
str r7, [r6, #0x1c]
ldr r1, [r4, #8]
ldmia r4, {r0, r2}
str r0, [r6, #0x38]
str r2, [r6, #0x3c]
str r1, [r6, #0x40]
add sp, sp, #0xc
ldmia sp!, {r4, r5, r6, r7, pc}
.align 2, 0
arm_func_end func_ov05_02106980
_02106a4c: .word data_027e0764
.global func_ov05_02106a50
arm_func_start func_ov05_02106a50
func_ov05_02106a50: ; 0x02106a50
stmdb sp!, {r3, r4, r5, lr}
mov r1, #2
mov r4, r0
bl func_ov00_020a8ba0
cmp r0, #0
movne r0, #0
ldmneia sp!, {r3, r4, r5, pc}
ldr r0, _02106bb8 ; =data_027e0fb8
ldr r0, [r0]
ldrb r1, [r0, #0x80]
cmp r1, #0
beq _02106a84
bl func_ov00_020af050
_02106a84:
mov r0, #4
bl func_01fffcd8
ldr r2, [r0]
mov r1, #0
ldr r2, [r2, #0x20]
blx r2
cmp r0, #0
beq _02106ab8
mov r0, r4
mov r1, #4
bl func_ov00_020a8138
mov r0, #1
ldmia sp!, {r3, r4, r5, pc}
_02106ab8:
mov r0, #2
bl func_01fffcd8
ldr r2, [r0]
mov r1, #0
ldr r2, [r2, #0x20]
blx r2
cmp r0, #0
beq _02106aec
mov r0, r4
mov r1, #2
bl func_ov00_020a8138
mov r0, #1
ldmia sp!, {r3, r4, r5, pc}
_02106aec:
mov r0, #3
bl func_01fffcd8
ldr r2, [r0]
mov r1, #0
ldr r2, [r2, #0x20]
blx r2
cmp r0, #0
beq _02106b20
mov r0, r4
mov r1, #3
bl func_ov00_020a8138
mov r0, #1
ldmia sp!, {r3, r4, r5, pc}
_02106b20:
ldr r1, [r4, #0x18]
mvn r0, #0
cmp r1, r0
beq _02106bb0
mov r0, r4
bl func_ov00_020a8d28
ldr r2, [r0]
mov r1, #1
ldr r2, [r2, #0x14]
blx r2
cmp r0, #0
beq _02106bb0
ldrsh r0, [r4, #0x20]
ldr r5, [r4, #0x18]
cmp r0, #4
blt _02106b80
mov r1, #0
mov r0, r4
strh r1, [r4, #0x20]
bl func_ov00_020a8d40
ldrsh r0, [r0, #0x5a]
cmp r0, #0
moveq r0, #5
streq r0, [r4, #0x1c]
_02106b80:
mov r0, r4
ldr r2, [r0]
mov r1, #1
ldr r2, [r2, #0x18]
blx r2
mov r0, r4
str r5, [r4, #0x14]
ldr r1, [r0]
ldr r1, [r1, #0x14]
blx r1
mov r0, #1
ldmia sp!, {r3, r4, r5, pc}
_02106bb0:
mov r0, #0
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov05_02106a50
_02106bb8: .word data_027e0fb8
.global func_ov05_02106bbc
arm_func_start func_ov05_02106bbc
func_ov05_02106bbc: ; 0x02106bbc
stmdb sp!, {r3, r4, r5, lr}
ldr r2, _02106c6c ; =data_027e0fb8
mov r5, r0
ldr r2, [r2]
mov r4, r1
ldrb r1, [r2, #0x79]
cmp r1, #0
beq _02106c64
mov r1, #0
strb r1, [sp]
strb r1, [sp, #1]
ldr r1, [r5, #0x14]
bl func_ov00_020a8d28
ldr r1, [r0]
ldr r1, [r1, #0x40]
blx r1
cmp r0, #0
beq _02106c64
ldr r0, _02106c6c ; =data_027e0fb8
add r1, sp, #0
ldr r0, [r0]
bl func_ov00_020af01c
cmp r0, #0
beq _02106c64
mov r0, r5
bl func_ov00_020a8c4c
ldr r0, [r0, #4]
ldr r1, _02106c70 ; =data_027e0e60
add r0, r0, #0x33
add r0, r0, #0x1300
str r0, [r4, #4]
ldr r0, [r1]
ldrb r3, [sp]
ldrb r2, [sp, #1]
sub r1, sp, #4
strb r3, [r1]
strb r2, [r1, #1]
ldr r2, [r1]
mov r1, r4
bl func_ov00_02083c7c
mov r0, #1
ldmia sp!, {r3, r4, r5, pc}
_02106c64:
mov r0, #0
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov05_02106bbc
_02106c6c: .word data_027e0fb8
_02106c70: .word data_027e0e60
.global func_ov05_02106c74
arm_func_start func_ov05_02106c74
func_ov05_02106c74: ; 0x02106c74
ldrh r1, [r1]
strh r1, [r0, #0x56]
bx lr
arm_func_end func_ov05_02106c74
.global func_ov05_02106c80
arm_func_start func_ov05_02106c80
func_ov05_02106c80: ; 0x02106c80
ldrh r2, [r0, #0x16]
cmp r2, r1
ldreqsh r0, [r0, #0x12]
movne r0, #0
bx lr
arm_func_end func_ov05_02106c80
.global func_ov05_02106c94
arm_func_start func_ov05_02106c94
func_ov05_02106c94: ; 0x02106c94
stmdb sp!, {r3, lr}
ldr r1, [r0, #4]
ldr r2, _02106ccc ; =data_ov05_021126f4
add r3, r2, r1, lsl #3
ldr r1, [r3, #4]
tst r1, #1
add r0, r0, r1, asr #1
ldreq r1, [r3]
beq _02106cc4
ldr r2, [r0]
ldr r1, [r3]
ldr r1, [r2, r1]
_02106cc4:
blx r1
ldmia sp!, {r3, pc}
.align 2, 0
arm_func_end func_ov05_02106c94
_02106ccc: .word data_ov05_021126f4
.global func_ov05_02106cd0
arm_func_start func_ov05_02106cd0
func_ov05_02106cd0: ; 0x02106cd0
stmdb sp!, {r4, r5, r6, r7, r8, lr}
sub sp, sp, #0x40
mov r7, r0
mov r0, #3
bl func_01fffcd8
ldr r2, [r0]
mov r1, #0
ldr r2, [r2, #0x20]
blx r2
cmp r0, #0
mov r0, r7
beq _02106d10
mov r1, #3
bl func_ov00_020a8138
add sp, sp, #0x40
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_02106d10:
bl func_ov00_020a8d40
bl func_ov00_020b50e0
cmp r0, #0
beq _02106d64
mov r0, r7
bl func_ov00_020a8d40
ldr r0, [r0, #0xc0]
cmp r0, #0
bne _02106d64
mov r0, r7
bl func_ov00_020a8d40
mov r4, r0
bl func_ov05_021071f8
add r1, r4, #0xfc
mov r2, #0xc
bl func_ov00_020acb6c
mov r0, r7
mov r1, #5
bl func_ov00_020a8138
add sp, sp, #0x40
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_02106d64:
ldr r0, _021071cc ; =data_027e0618
ldr r0, [r0]
cmp r0, #2
bne _02106d98
mov r0, r7
bl func_ov05_02108094
cmp r0, #0
beq _02106d98
mov r0, r7
mov r1, #4
bl func_ov00_020a8138
add sp, sp, #0x40
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_02106d98:
mov r0, r7
bl func_ov00_020a8c78
ldr r2, _021071d0 ; =data_ov00_020dc6e4
ldrsh r1, [r0]
ldr r2, [r2]
mov r0, r7
bl func_ov00_020a82c4
mov r0, r7
bl func_ov00_020a8b80
cmp r0, #0
mov r0, r7
beq _02106de4
bl func_ov00_020a8c78
ldrsh r2, [r0]
ldr r1, _021071d4 ; =0x00000b33
mov r0, r7
mov r3, #1
bl func_ov00_020a8680
b _02106e0c
_02106de4:
bl func_ov00_020a8c78
ldrsh r2, [r0]
mov r0, r7
mov r1, #0x1000
mov r3, #1
bl func_ov00_020a8680
mov r0, r7
ldr r4, [r7, #0x20]
bl func_ov00_020a8d40
str r4, [r0, #0x9c]
_02106e0c:
mov r0, r7
bl func_ov00_020a8d40
mov r1, r0
add r0, sp, #0xc
bl func_ov05_02107208
ldr r0, [sp, #0xc]
mov r4, #1
and r0, r0, #0x1f
cmp r0, #5
cmpne r0, #0xa
movne r4, #0
cmp r0, #0xd
moveq r5, #1
mov r0, r7
mov r1, #0
movne r5, #0
bl func_ov00_020a8b3c
cmp r0, #0
mov r0, r7
bne _021071bc
bl func_ov00_020a8c64
mov r1, #0x400
str r1, [r0]
mov r0, r7
bl func_ov00_020a8d50
ldr r1, _021071d8 ; =data_ov05_021126ac
ldr r1, [r1, #4]
cmp r0, r1
blt _02106ee0
ldr r0, _021071dc ; =data_027e0fb8
ldr r0, [r0]
bl func_ov00_020b034c
ldr r1, _021071e0 ; =0x00000ccd
cmp r0, r1
blt _02106eac
mov r0, r7
mov r1, #0
bl func_ov00_020a8138
add sp, sp, #0x40
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_02106eac:
mov r0, #4
bl func_01fffcd8
ldr r2, [r0]
mov r1, #0
ldr r2, [r2, #0x20]
blx r2
cmp r0, #0
beq _02106ee0
mov r0, r7
mov r1, #4
bl func_ov00_020a8138
add sp, sp, #0x40
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_02106ee0:
mov r0, r7
bl func_ov00_020a8b80
cmp r0, #0
beq _02106f70
mov r0, r7
bl func_ov00_020a8d50
cmp r0, #0xe000
bgt _02106f70
mov r0, r7
bl func_ov00_020a8d40
ldr r0, [r0, #0xd4]
cmp r0, #0x800
ble _02106f70
mov r0, r7
bl func_ov00_020a8d40
ldr r0, [r0, #0x70]
mov r0, r0, lsr #0x7
and r0, r0, #3
cmp r0, #2
beq _02106f70
mov r0, r7
bl func_ov00_020a8c78
ldrsh r4, [r0]
mov r0, r7
bl func_ov00_020a8ca4
cmp r0, #0
movne r2, #1
moveq r2, #0
mov r0, r7
mov r1, r4
bl func_ov05_02110e0c
mov r0, r7
mov r1, #0
bl func_ov00_020a8138
add sp, sp, #0x40
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_02106f70:
mov r0, r7
mov r1, #0x7000
mov r2, #0
bl func_ov00_020a8b04
cmp r0, #0
beq _02107008
cmp r5, #0
bne _02107020
cmp r4, #0
mov r6, #1
beq _02106fdc
ldr r1, _021071e4 ; =data_027e0e58
mov r0, r7
ldr r8, [r1]
bl func_ov00_020a8c4c
mov r3, r0
mov r0, r8
add r1, r7, #0x2c
add r2, r6, #0x170
str r6, [sp]
bl func_ov00_0207c1f8
mov r0, r7
bl func_ov00_020a8c78
ldrsh r1, [r0]
ldr r0, [r7, #0x2c]
strh r1, [r0, #0x56]
b _02107020
_02106fdc:
ldr r1, _021071e4 ; =data_027e0e58
mov r0, r7
ldr r8, [r1]
bl func_ov00_020a8c4c
mov r3, r0
mov r0, r8
add r1, r7, #0x2c
mov r2, #0x12c
str r6, [sp]
bl func_ov00_0207c1f8
b _02107020
_02107008:
mov r0, r7
bl func_ov00_020a8d50
cmp r0, #0x19000
ble _02107020
add r0, r7, #0x2c
bl func_ov00_020b7e6c
_02107020:
mov r0, r7
bl func_ov00_020a8c4c
ldr r1, [r7, #0x2c]
cmp r1, #0
beq _0210707c
ldr r2, [r1, #0x20]
ldr r3, [r0]
ldr r2, [r2]
ldr r2, [r2, #4]
add r2, r3, r2
str r2, [r1, #0x28]
ldr r2, [r1, #0x20]
ldr r3, [r0, #4]
ldr r2, [r2]
ldr r2, [r2, #8]
add r2, r3, r2
str r2, [r1, #0x2c]
ldr r2, [r1, #0x20]
ldr r3, [r0, #8]
ldr r0, [r2]
ldr r0, [r0, #0xc]
add r0, r3, r0
str r0, [r1, #0x30]
_0210707c:
cmp r4, #0
cmpeq r5, #0
beq _02107188
mov r0, r7
mov r1, #0xb000
mov r2, #0
bl func_ov00_020a8b04
cmp r0, #0
beq _02107188
mov r0, r7
bl func_ov00_020a8c78
ldrsh r1, [r0]
mov r0, r7
strh r1, [sp, #8]
bl func_ov00_020a8c4c
ldmia r0, {r0, r1, r2}
add r4, sp, #0x34
stmia r4, {r0, r1, r2}
add r3, sp, #0x28
ldmia r4, {r0, r1, r2}
stmia r3, {r0, r1, r2}
ldr r0, _021071e8 ; =data_027e0e60
ldr r4, [sp, #0x28]
ldr r5, [sp, #0x2c]
ldr r2, [sp, #0x30]
ldr r1, _021071ec ; =0xfffffb33
ldr r0, [r0]
add r6, r2, r1
add r1, sp, #0x1c
mov r2, #1
str r6, [sp, #0x30]
str r4, [sp, #0x1c]
str r6, [sp, #0x24]
str r5, [sp, #0x20]
bl func_ov00_02083f44
mov r8, r0
mov r0, r7
bl func_ov00_020a8c4c
ldr r0, [r0, #4]
add r0, r0, #0x800
cmp r0, r8
bge _02107148
ldr r0, _021071e8 ; =data_027e0e60
add r1, sp, #0x10
ldr r0, [r0]
mov r2, #1
str r4, [sp, #0x10]
str r5, [sp, #0x14]
str r6, [sp, #0x18]
bl func_ov00_02083ee0
mov r8, r0
_02107148:
mov r0, r7
bl func_ov00_020a8c4c
ldr r1, [r0, #4]
add r0, sp, #8
cmp r1, r8
movle r1, r8
str r1, [sp, #0x38]
str r0, [sp]
ldr r1, _021071f0 ; =func_ov05_02106c74
ldr r0, _021071e4 ; =data_027e0e58
str r1, [sp, #4]
ldr r0, [r0]
add r2, sp, #0x34
mov r1, #0x170
mov r3, #1
bl func_ov00_0207c1b0
_02107188:
ldr r1, _021071dc ; =data_027e0fb8
mov r0, r7
ldr r4, [r1]
bl func_ov00_020a8c4c
mov r1, r0
mov r0, r4
bl func_ov00_020b014c
ldr r0, _021071f4 ; =data_027e103c
mov r1, #1
ldr r0, [r0]
bl func_ov05_02103f80
add sp, sp, #0x40
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_021071bc:
mov r1, #0
bl func_ov00_020a8138
add sp, sp, #0x40
ldmia sp!, {r4, r5, r6, r7, r8, pc}
.align 2, 0
arm_func_end func_ov05_02106cd0
_021071cc: .word data_027e0618
_021071d0: .word data_ov00_020dc6e4
_021071d4: .word 0x00000b33
_021071d8: .word data_ov05_021126ac
_021071dc: .word data_027e0fb8
_021071e0: .word 0x00000ccd
_021071e4: .word data_027e0e58
_021071e8: .word data_027e0e60
_021071ec: .word 0xfffffb33
_021071f0: .word func_ov05_02106c74
_021071f4: .word data_027e103c
.global func_ov05_021071f8
arm_func_start func_ov05_021071f8
func_ov05_021071f8: ; 0x021071f8
ldr ip, _02107204 ; =func_01fffcd8
mov r0, #5
bx ip
.align 2, 0
arm_func_end func_ov05_021071f8
_02107204: .word func_01fffcd8
.global func_ov05_02107208
arm_func_start func_ov05_02107208
func_ov05_02107208: ; 0x02107208
ldr r1, [r1, #0x74]
str r1, [r0]
bx lr
arm_func_end func_ov05_02107208
.global func_ov05_02107214
arm_func_start func_ov05_02107214
func_ov05_02107214: ; 0x02107214
stmdb sp!, {r4, r5, lr}
sub sp, sp, #0x1c
ldr r1, _021073ac ; =data_027e0fb8
mov r4, r0
ldr r0, [r1]
mov r1, #1
bl func_ov00_020af454
cmp r0, #0
movne r0, #5
strneh r0, [r4, #0xe]
bne _02107250
ldrsh r0, [r4, #0xe]
cmp r0, #0
subgt r0, r0, #1
strgth r0, [r4, #0xe]
_02107250:
ldr r0, _021073b0 ; =data_ov00_020e6088
add r5, sp, #0xc
ldmia r0, {r0, r1, r2, r3}
stmia r5, {r0, r1, r2, r3}
mov r0, r4
mov r1, #0
bl func_ov00_020a8b3c
cmp r0, #0
beq _021072b8
ldrsh r0, [r4, #0xc]
sub r0, r0, #1
strh r0, [r4, #0xc]
ldrsh r0, [r4, #0xc]
cmp r0, #0
ble _021072a4
ldr r1, _021073b0 ; =data_ov00_020e6088
mov r0, r4
mov r2, #1
bl func_ov00_020a8a4c
add sp, sp, #0x1c
ldmia sp!, {r4, r5, pc}
_021072a4:
mov r0, r4
mov r1, #0
bl func_ov00_020a8138
add sp, sp, #0x1c
ldmia sp!, {r4, r5, pc}
_021072b8:
ldr r0, _021073b4 ; =data_ov00_020eec9c
mov r1, #0xd3
bl func_ov00_020d7cd4
mov r0, r4
bl func_ov00_020a8d50
ldr r1, _021073b0 ; =data_ov00_020e6088
mov r5, r0
ldr r1, [r1]
mov r0, r4
bl func_ov00_020a8d88
ldr r1, [sp, #0x10]
sub r0, r0, r1
cmp r5, r0
movge r0, #5
strgeh r0, [r4, #0xe]
bge _02107310
ldrsh r0, [r4, #0xe]
cmp r0, #0
ble _02107310
add r1, sp, #0xc
mov r0, r4
bl func_ov00_020a8a90
_02107310:
mov r0, r4
bl func_ov00_020a8be8
mov r5, r0
mov r0, r4
bl func_ov00_020a8c4c
add r2, sp, #0
add r1, r5, #0x34
bl func_01ff9bc4
add r2, r4, #0x2c
add r1, r4, #0x40
cmp r2, r1
addeq sp, sp, #0x1c
ldmeqia sp!, {r4, r5, pc}
_02107344:
ldr r0, [r2]
cmp r0, #0
beq _02107398
ldr r3, [r0, #0x20]
ldr r4, [sp]
ldr r3, [r3]
ldr r3, [r3, #4]
add r3, r4, r3
str r3, [r0, #0x28]
ldr r3, [r0, #0x20]
ldr r4, [sp, #4]
ldr r3, [r3]
ldr r3, [r3, #8]
add r3, r4, r3
str r3, [r0, #0x2c]
ldr r3, [r0, #0x20]
ldr r4, [sp, #8]
ldr r3, [r3]
ldr r3, [r3, #0xc]
add r3, r4, r3
str r3, [r0, #0x30]
_02107398:
add r2, r2, #4
cmp r2, r1
bne _02107344
add sp, sp, #0x1c
ldmia sp!, {r4, r5, pc}
.align 2, 0
arm_func_end func_ov05_02107214
_021073ac: .word data_027e0fb8
_021073b0: .word data_ov00_020e6088
_021073b4: .word data_ov00_020eec9c
.global func_ov05_021073b8
arm_func_start func_ov05_021073b8
func_ov05_021073b8: ; 0x021073b8
stmdb sp!, {r3, r4, r5, r6, r7, lr}
ldr r1, _0210759c ; =data_027e0fb8
mov r5, r0
ldr r0, [r1]
bl func_ov00_020b034c
mov r4, r0
cmp r4, #0
ble _02107430
mov r0, r5
bl func_ov00_020a8bc4
ldr r1, _0210759c ; =data_027e0fb8
ldr r6, [r0]
ldr r0, [r1]
bl func_ov00_020b0328
smull r1, r2, r4, r6
adds r3, r1, #0x800
mov r1, r0
adc r0, r2, #0
mov r2, r3, lsr #0xc
orr r2, r2, r0, lsl #20
mov r0, r2, asr #0x1f
mov r3, r0, lsl #0xc
mov r0, #0x800
adds r0, r0, r2, lsl #12
orr r3, r3, r2, lsr #20
adc r3, r3, #0
mov r2, r0, lsr #0xc
mov r0, r5
orr r2, r2, r3, lsl #20
bl func_ov00_020a82c4
_02107430:
mov r0, r5
bl func_ov00_020a8d40
ldr r1, [r0, #0xdc]
ldr r0, _021075a0 ; =0x0000030a
cmp r1, r0
bge _02107458
mov r0, r5
mov r1, #0
bl func_ov00_020a8138
b _0210758c
_02107458:
cmp r4, #0
mov r0, r5
bgt _021074c8
bl func_ov00_020a8c78
mov r4, r0
mov r0, r5
bl func_ov00_020a8d40
bl func_ov00_020b4c2c
strh r0, [r4]
mov r0, r5
bl func_ov00_020a8c58
ldr r1, _021075a4 ; =0x00000614
str r1, [r0, #4]
mov r0, r5
bl func_ov00_020a8d40
mov r1, #0x3800
strh r1, [r0, #0xa6]
mov r0, r5
bl func_ov00_020a8c4c
mov r2, r0
ldr r0, _021075a8 ; =data_ov00_020eec9c
mov r1, #0xea
bl func_ov00_020d7a84
mov r0, r5
mov r1, #4
mov r2, #3
bl func_ov00_020a8148
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_021074c8:
bl func_ov00_020a8d40
bl func_ov00_020b4c2c
mov r6, r0
ldr r3, _021075ac ; =0x00002aab
mov r0, r5
mov r1, r6
mov r2, r6
bl func_ov00_020a8238
ldr r0, _0210759c ; =data_027e0fb8
ldr r0, [r0]
bl func_ov00_020b0328
sub r0, r0, r6
mov r0, r0, lsl #0x10
mov r0, r0, lsr #0x10
mov r1, r0, asr #0x4
ldr r0, _021075b0 ; =data_02050f54
mov r1, r1, lsl #0x2
ldrsh r0, [r0, r1]
mov r3, #0
smull r1, r0, r4, r0
adds r2, r1, #0x800
adc r1, r0, #0
mov r0, r2, lsr #0xc
orrs r0, r0, r1, lsl #20
rsbmi r0, r0, #0
mov r1, #0x2800
umull ip, r4, r0, r1
rsb lr, r0, #0x1000
mla r4, r0, r3, r4
mov r0, r0, asr #0x1f
mov r2, lr, asr #0x1f
mov r6, r2, lsl #0xc
mov r2, #0x800
adds r7, r2, lr, lsl #12
orr r6, r6, lr, lsr #20
adc r6, r6, #0
mov r7, r7, lsr #0xc
mla r4, r0, r1, r4
adds r2, ip, #0x800
mov r1, r2, lsr #0xc
adc r0, r4, #0
orr r1, r1, r0, lsl #20
orr r7, r7, r6, lsl #20
add r3, r7, r1
ldr r2, _021075b4 ; =data_ov05_021126ac
ldr r1, _021075b8 ; =data_ov05_021126d4
mov r0, r5
str r3, [r2, #0x2c]
bl func_ov00_020a8a90
_0210758c:
ldr r0, _021075a8 ; =data_ov00_020eec9c
mov r1, #0xf1
bl func_ov00_020d7cd4
ldmia sp!, {r3, r4, r5, r6, r7, pc}
.align 2, 0
arm_func_end func_ov05_021073b8
_0210759c: .word data_027e0fb8
_021075a0: .word 0x0000030a
_021075a4: .word 0x00000614
_021075a8: .word data_ov00_020eec9c
_021075ac: .word 0x00002aab
_021075b0: .word data_02050f54
_021075b4: .word data_ov05_021126ac
_021075b8: .word data_ov05_021126d4
.global func_ov05_021075bc
arm_func_start func_ov05_021075bc
func_ov05_021075bc: ; 0x021075bc
stmdb sp!, {r3, r4, r5, r6, lr}
sub sp, sp, #0x1c
mov r5, r0
bl func_ov00_020a8b80
cmp r0, #0
beq _02107664
mov r0, r5
bl func_ov00_020a8d40
bl func_ov00_020b53f4
cmp r0, #0
mov r4, #0
beq _0210761c
ldr r1, _02107850 ; =data_027e0e58
mov r0, r5
ldr r6, [r1]
bl func_ov00_020a8c4c
mov r2, r0
str r4, [sp]
mov r0, r6
mov r1, #0x120
mov r3, #1
str r4, [sp, #4]
bl func_ov00_0207c1b0
b _02107648
_0210761c:
ldr r1, _02107850 ; =data_027e0e58
mov r0, r5
ldr r6, [r1]
bl func_ov00_020a8c4c
mov r2, r0
str r4, [sp]
ldr r1, _02107854 ; =0x0000011f
mov r0, r6
mov r3, #1
str r4, [sp, #4]
bl func_ov00_0207c1b0
_02107648:
mov r0, r5
bl func_ov05_02110bb4
mov r0, r5
mov r1, #0
bl func_ov00_020a8138
add sp, sp, #0x1c
ldmia sp!, {r3, r4, r5, r6, pc}
_02107664:
ldr r1, _02107858 ; =data_ov05_0211274c
mov r0, r5
str r1, [sp, #8]
bl func_ov00_020a8c4c
ldr r2, [r0]
mov r1, #0x2000
str r2, [sp, #0xc]
ldr r2, [r0, #4]
str r2, [sp, #0x10]
ldr r2, [r0, #8]
mov r0, r5
str r2, [sp, #0x14]
str r1, [sp, #0x18]
ldr r1, [r5, #0x1c]
str r1, [sp, #0x10]
bl func_ov00_020a8c58
ldr r0, [r0, #4]
add r0, r0, #0x214
add r4, r0, #0x400
cmp r4, #0
mov r0, r5
movle r4, #0
bl func_ov00_020a8c78
ldrh r0, [r0]
ldr r2, _0210785c ; =data_02050f54
add r1, sp, #0xc
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 ip, [r2, r3]
ldrsh r3, [r2, r0]
mov r0, #0x800
mov r2, ip, asr #0x1f
mov lr, r2, lsl #0xb
mov r2, r3, asr #0x1f
mov r2, r2, lsl #0xb
adds r6, r0, ip, lsl #11
orr lr, lr, ip, lsr #21
adc lr, lr, #0
adds ip, r0, r3, lsl #11
orr r2, r2, r3, lsr #21
mov r3, r6, lsr #0xc
adc r0, r2, #0
mov r2, ip, lsr #0xc
orr r2, r2, r0, lsl #20
ldr r6, [r1]
orr r3, r3, lr, lsl #20
add r6, r6, r3
ldr r3, [r1, #8]
mov r0, r5
add r2, r3, r2
str r6, [r1]
str r2, [r1, #8]
bl func_ov00_020a8c58
ldr r1, _02107860 ; =data_ov05_021126ac
ldr r3, [r0]
ldr r0, [r1]
ldr r2, [sp, #0xc]
smull r1, r0, r4, r0
adds r1, r1, #0x800
adc r0, r0, #0
mov r4, r1, lsr #0xc
orr r4, r4, r0, lsl #20
smull r1, r0, r3, r4
adds r1, r1, #0x800
adc r0, r0, #0
mov r1, r1, lsr #0xc
orr r1, r1, r0, lsl #20
add r0, r2, r1
str r0, [sp, #0xc]
mov r0, r5
bl func_ov00_020a8c58
ldr r3, [r0, #8]
ldr r2, [sp, #0x14]
smull r1, r0, r3, r4
adds r1, r1, #0x800
adc r0, r0, #0
mov r1, r1, lsr #0xc
orr r1, r1, r0, lsl #20
add r0, r2, r1
str r0, [sp, #0x14]
ldr r0, _02107864 ; =data_027e0fe4
mov r2, #0
ldr r0, [r0]
add r1, sp, #8
bl func_ov00_020c37ec
cmp r0, #0
ble _021077e8
bl func_ov05_02107870
ldr r2, _02107868 ; =0x00000614
add r1, sp, #0xc
bl func_ov05_02106700
mov r0, r5
mov r1, #1
bl func_ov00_020a8138
_021077e8:
mov r0, r5
bl func_ov00_020a8d40
ldr r1, _0210786c ; =0x00001666
strh r1, [r0, #0xa8]
mov r0, r5
bl func_ov00_020a8d40
ldrh r1, [r0, #0xa4]
orr r1, r1, #0x40
strh r1, [r0, #0xa4]
ldr r4, [r5, #0x20]
mov r0, r5
bl func_ov00_020a8d40
str r4, [r0, #0x9c]
mov r0, r5
bl func_ov00_020a8c58
ldr r0, [r0, #4]
cmp r0, #0
addle sp, sp, #0x1c
ldmleia sp!, {r3, r4, r5, r6, pc}
mov r0, r5
bl func_ov00_020a8d40
ldrh r1, [r0, #0xa4]
bic r1, r1, #4
strh r1, [r0, #0xa4]
add sp, sp, #0x1c
ldmia sp!, {r3, r4, r5, r6, pc}
.align 2, 0
arm_func_end func_ov05_021075bc
_02107850: .word data_027e0e58
_02107854: .word 0x0000011f
_02107858: .word data_ov05_0211274c
_0210785c: .word data_02050f54
_02107860: .word data_ov05_021126ac
_02107864: .word data_027e0fe4
_02107868: .word 0x00000614
_0210786c: .word 0x00001666
.global func_ov05_02107870
arm_func_start func_ov05_02107870
func_ov05_02107870: ; 0x02107870
ldr ip, _0210787c ; =func_01fffcd8
mov r0, #1
bx ip
.align 2, 0
arm_func_end func_ov05_02107870
_0210787c: .word func_01fffcd8
.global func_ov05_02107880
arm_func_start func_ov05_02107880
func_ov05_02107880: ; 0x02107880
stmdb sp!, {r4, r5, r6, lr}
ldr r1, _0210794c ; =data_027e0fb8
mov r5, r0
ldr r0, [r1]
mov r1, #1
bl func_ov00_020af454
cmp r0, #0
beq _021078b4
mov r0, r5
bl func_ov05_02107c8c
ldr r0, _02107950 ; =data_ov00_020eec9c
mov r1, #0x17
bl func_ov00_020d77e4
_021078b4:
ldrb r6, [r5, #0x29]
mov r0, r5
bl func_ov05_02107d74
cmp r0, #0
moveq r4, #1
movne r4, #0
cmp r6, #0
beq _02107908
ldrb r0, [r5, #0x29]
cmp r0, #0
bne _02107908
ldrsh r0, [r5, #0xc]
sub r0, r0, #1
strh r0, [r5, #0xc]
ldrsh r0, [r5, #0xc]
cmp r0, #0
bgt _02107908
mov r1, #0
mov r0, r5
strh r1, [r5, #0xc]
bl func_ov05_02107bd4
_02107908:
mov r0, r5
bl func_ov05_02107fc0
mov r0, r5
mov r1, #2
bl func_ov00_020a8ba0
cmp r0, #0
bne _02107934
mov r0, r5
mov r1, #0
bl func_ov00_020a8138
ldmia sp!, {r4, r5, r6, pc}
_02107934:
cmp r4, #0
ldmeqia sp!, {r4, r5, r6, pc}
mov r0, r5
mov r1, #0
bl func_ov00_020a8138
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
arm_func_end func_ov05_02107880
_0210794c: .word data_027e0fb8
_02107950: .word data_ov00_020eec9c
.global func_ov05_02107954
arm_func_start func_ov05_02107954
func_ov05_02107954: ; 0x02107954
stmdb sp!, {r3, r4, r5, lr}
sub sp, sp, #0x10
mov r4, r0
bl func_ov00_020a8c58
mov r1, #0
str r1, [r0, #4]
mov r0, r4
bl func_ov00_020a862c
tst r0, #0x10
beq _02107a18
ldrb r0, [r4, #0x28]
cmp r0, #0
beq _02107998
mov r0, r4
bl func_ov05_02107c8c
mov r0, #0
strb r0, [r4, #0x28]
_02107998:
mov r0, r4
bl func_ov00_020a8dcc
mov r5, r0
mov r0, r4
bl func_ov05_02107d74
cmp r0, #0
ldreq r0, _02107b5c ; =data_ov05_021126ac
ldreq r0, [r0, #0x18]
cmpeq r5, r0
bne _021079d0
ldr r1, _02107b60 ; =data_ov05_021126b4
mov r0, r4
mov r2, #1
bl func_ov00_020a8a4c
_021079d0:
ldrsh r0, [r4, #0x10]
cmp r0, #0
ble _02107a08
ldr r0, _02107b64 ; =data_027e0fb8
ldr r0, [r0]
bl func_ov00_020b134c
cmp r0, #0
beq _02107b1c
ldrsh r1, [r4, #0x10]
mov r0, #1
sub r1, r1, #0x14
strh r1, [r4, #0x10]
strb r0, [r4, #0x28]
b _02107b1c
_02107a08:
mov r0, r4
mov r1, #0x10
bl func_ov00_020a8668
b _02107b1c
_02107a18:
ldr r1, _02107b60 ; =data_ov05_021126b4
mov r0, r4
bl func_ov00_020a8a90
ldrsh r5, [r4, #0x10]
cmp r5, #0
ble _02107b1c
mov r0, r4
bl func_ov00_020a8c4c
add r1, r4, #0x8c
mov r2, r5, lsl #0xc
bl func_0202b308
ldrsh r0, [r4, #0x10]
sub r0, r0, #1
strh r0, [r4, #0x10]
ldrsh r0, [r4, #0x10]
cmp r0, #0
bgt _02107b1c
ldr r1, _02107b68 ; =data_027e0e60
mov r0, r4
ldr r5, [r1]
bl func_ov00_020a8c4c
mov r2, r0
add r0, sp, #2
mov r1, r5
bl func_ov00_02083a1c
mov r2, #0
ldrb r1, [sp, #2]
ldrb r0, [sp, #3]
strb r2, [sp]
strb r2, [sp, #1]
sub r2, sp, #4
strb r1, [r2]
strb r0, [r2, #1]
ldr r1, [r2]
add r0, sp, #0
bl func_ov00_020b1bfc
ldrb r1, [sp]
ldrb r0, [sp, #2]
ldr r2, _02107b6c ; =data_ov05_021122e0
add lr, sp, #4
sub r3, r1, r0
ldmia r2, {r0, r1, r2}
stmia lr, {r0, r1, r2}
mov r2, #0xcd
mul r0, r3, r2
str r0, [sp, #4]
ldrb ip, [sp, #1]
ldrb r3, [sp, #3]
mov r0, r4
mov r1, #0
sub r3, ip, r3
mul r2, r3, r2
str r2, [sp, #0xc]
bl func_ov00_020a8224
bl func_ov05_021071f8
ldrsh r2, [r4, #0x18]
add r1, sp, #4
bl func_ov00_020ace90
mov r0, r4
bl func_ov00_020a82ac
mov r0, r4
mov r1, #5
bl func_ov00_020a8138
add sp, sp, #0x10
ldmia sp!, {r3, r4, r5, pc}
_02107b1c:
mov r0, r4
bl func_ov00_020a8d40
ldrh r1, [r0, #0xa4]
bic r1, r1, #0xff
strh r1, [r0, #0xa4]
mov r0, r4
bl func_ov00_020a8c58
ldr r1, _02107b70 ; =data_027e0d0c
ldr r2, [r1]
str r2, [r0]
ldr r2, [r1, #4]
str r2, [r0, #4]
ldr r1, [r1, #8]
str r1, [r0, #8]
add sp, sp, #0x10
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov05_02107954
_02107b5c: .word data_ov05_021126ac
_02107b60: .word data_ov05_021126b4
_02107b64: .word data_027e0fb8
_02107b68: .word data_027e0e60
_02107b6c: .word data_ov05_021122e0
_02107b70: .word data_027e0d0c
.global func_ov05_02107b74
arm_func_start func_ov05_02107b74
func_ov05_02107b74: ; 0x02107b74
stmdb sp!, {r3, r4, r5, r6, r7, lr}
mov r7, r0
mov r6, r1
mov r5, r2
mov r4, r3
bl func_ov00_020a862c
tst r0, #8
ldmneia sp!, {r3, r4, r5, r6, r7, pc}
ldr r1, [r6]
mov r0, r7
str r1, [r7, #0x8c]
ldr r1, [r6, #4]
str r1, [r7, #0x90]
ldr r1, [r6, #8]
str r1, [r7, #0x94]
strh r5, [r7, #0x10]
strh r4, [r7, #0x18]
bl func_ov00_020a862c
tst r0, #0x10
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
mov r0, r7
mov r1, #0x10
bl func_ov00_020a8668
ldmia sp!, {r3, r4, r5, r6, r7, pc}
arm_func_end func_ov05_02107b74
.global func_ov05_02107bd4
arm_func_start func_ov05_02107bd4
func_ov05_02107bd4: ; 0x02107bd4
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
mov sl, r0
ldr r4, _02107c80 ; =0x47454c4c
ldr fp, _02107c84 ; =0x57544352
ldr r6, _02107c88 ; =data_027e0fe4
add sb, sl, #0x44
mov r8, #0
mvn r5, #0
_02107bf4:
add r0, sl, r8, lsl #3
ldr r0, [r0, #0x44]
cmp r0, r5
beq _02107c68
ldr r0, [r6]
mov r1, sb
bl func_ov00_020c3674
movs r7, r0
beq _02107c68
ldr r1, [r7, #4]
cmp r1, r4
beq _02107c30
cmp r1, fp
beq _02107c4c
b _02107c68
_02107c30:
bl func_ov32_0217fd68
cmp r0, #0
beq _02107c68
mov r0, r7
bl func_ov32_0217fd7c
mov r0, #1
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
_02107c4c:
bl func_ov26_02170150
cmp r0, #0
beq _02107c68
mov r0, r7
bl func_ov26_02170164
mov r0, #1
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
_02107c68:
add r8, r8, #1
cmp r8, #8
add sb, sb, #8
blt _02107bf4
mov r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
arm_func_end func_ov05_02107bd4
_02107c80: .word 0x47454c4c
_02107c84: .word 0x57544352
_02107c88: .word data_027e0fe4
.global func_ov05_02107c8c
arm_func_start func_ov05_02107c8c
func_ov05_02107c8c: ; 0x02107c8c
stmdb sp!, {r4, lr}
mov r4, r0
bl func_ov00_020a8dcc
ldr r1, _02107d60 ; =data_ov05_021126ac
ldr r1, [r1, #0x18]
cmp r1, r0
beq _02107cf4
ldr r1, _02107d64 ; =data_ov05_021126c4
mov r0, r4
mov r2, #1
bl func_ov00_020a8a4c
mov r0, #0x1000
strh r0, [r4, #0x1a]
mov r1, #0
strb r1, [r4, #0x29]
mov r1, #1
mov r0, r4
strb r1, [r4, #0x2a]
bl func_ov00_020a8c4c
mov r2, r0
ldr r0, _02107d68 ; =data_ov00_020eec9c
ldr r1, _02107d6c ; =0x00000121
bl func_ov00_020d7b20
mov r0, #1
strh r0, [r4, #0x26]
ldmia sp!, {r4, pc}
_02107cf4:
mov r0, r4
mov r1, #0
bl func_ov00_020a8b3c
cmp r0, #0
beq _02107d3c
ldrsh r0, [r4, #0x26]
cmp r0, #0
subgt r0, r0, #1
strgth r0, [r4, #0x26]
bgt _02107d3c
mov r0, r4
bl func_ov00_020a8c4c
mov r2, r0
ldr r0, _02107d68 ; =data_ov00_020eec9c
ldr r1, _02107d6c ; =0x00000121
bl func_ov00_020d7b20
mov r0, #1
strh r0, [r4, #0x26]
_02107d3c:
ldrsh r1, [r4, #0x1a]
ldr r0, _02107d70 ; =0x000014cd
add r1, r1, #0x800
strh r1, [r4, #0x1a]
ldrsh r1, [r4, #0x1a]
cmp r1, r0
strgth r0, [r4, #0x1a]
mov r0, #0
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov05_02107c8c
_02107d60: .word data_ov05_021126ac
_02107d64: .word data_ov05_021126c4
_02107d68: .word data_ov00_020eec9c
_02107d6c: .word 0x00000121
_02107d70: .word 0x000014cd
.global func_ov05_02107d74
arm_func_start func_ov05_02107d74
func_ov05_02107d74: ; 0x02107d74
stmdb sp!, {r4, lr}
sub sp, sp, #0x10
mov r4, r0
bl func_ov00_020a8dcc
ldr lr, _02107e78 ; =data_ov05_021126ac
ldr r1, [lr, #0x18]
cmp r1, r0
addne sp, sp, #0x10
movne r0, #0
ldmneia sp!, {r4, pc}
ldrb r0, [r4, #0x2a]
cmp r0, #0
beq _02107dbc
mov r0, #0
strb r0, [r4, #0x2a]
add sp, sp, #0x10
mov r0, #1
ldmia sp!, {r4, pc}
_02107dbc:
ldr r0, _02107e7c ; =data_ov05_021126c4
add ip, sp, #0
ldmia r0, {r0, r1, r2, r3}
stmia ip, {r0, r1, r2, r3}
ldrsh r1, [r4, #0x1a]
ldr r2, [lr, #0x1c]
mov r0, r4
smull r3, r1, r2, r1
adds r2, r3, #0x800
adc r1, r1, #0
mov r2, r2, lsr #0xc
orr r2, r2, r1, lsl #20
mov r1, ip
str r2, [sp, #4]
bl func_ov00_020a8a90
ldrb r0, [r4, #0x29]
cmp r0, #0
bne _02107e14
mov r0, r4
bl func_ov00_020a8d50
cmp r0, #0x6000
bge _02107e30
_02107e14:
ldrb r0, [r4, #0x29]
cmp r0, #0
beq _02107e6c
mov r0, r4
bl func_ov00_020a8d50
cmp r0, #0x6000
bge _02107e6c
_02107e30:
ldrsh r0, [r4, #0x1a]
add sp, sp, #0x10
add r0, r0, r0, lsr #31
mov r0, r0, asr #0x1
strh r0, [r4, #0x1a]
ldrb r0, [r4, #0x29]
cmp r0, #0
moveq r0, #1
movne r0, #0
strb r0, [r4, #0x29]
ldrsh r0, [r4, #0x1a]
cmp r0, #0x800
movge r0, #1
movlt r0, #0
ldmia sp!, {r4, pc}
_02107e6c:
mov r0, #1
add sp, sp, #0x10
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov05_02107d74
_02107e78: .word data_ov05_021126ac
_02107e7c: .word data_ov05_021126c4
.global func_ov05_02107e80
arm_func_start func_ov05_02107e80
func_ov05_02107e80: ; 0x02107e80
stmdb sp!, {r4, r5, r6, r7, r8, lr}
ldr r4, [sp, #0x18]
mov r7, r1
mov r8, r0
tst r7, #1
mov r6, r2
mov r5, r3
movne r0, #1
ldmneia sp!, {r4, r5, r6, r7, r8, pc}
tst r7, #2
beq _02107ee8
mov r3, #0
mvn r0, #0
_02107eb4:
add r2, r8, r3, lsl #3
ldr r1, [r2, #0x44]
cmp r1, r0
bne _02107edc
ldr r1, [r6]
mov r0, #2
str r1, [r2, #0x44]
ldr r1, [r6, #4]
str r1, [r2, #0x48]
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_02107edc:
add r3, r3, #1
cmp r3, #8
blt _02107eb4
_02107ee8:
mov r0, r8
bl func_ov00_020a8bf8
cmp r0, #4
movne r1, #1
moveq r1, #0
tst r7, #4
beq _02107f24
cmp r1, #0
ldreq r0, [r8, #4]
cmpeq r0, #5
beq _02107f24
mov r0, #1
strb r0, [r4]
mov r0, #4
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_02107f24:
tst r7, #8
beq _02107f60
cmp r1, #0
ldreq r0, [r8, #4]
cmpeq r0, #6
beq _02107f60
ldr r0, [r6]
mov r1, #1
str r0, [r8, #0x84]
ldr r2, [r6, #4]
mov r0, #8
str r2, [r8, #0x88]
strh r5, [r8, #0x10]
strb r1, [r4]
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_02107f60:
tst r7, #0x10
beq _02107f90
cmp r1, #0
ldreq r0, [r8, #4]
cmpeq r0, #7
beq _02107f90
mov r0, #0xb4
strh r0, [r8, #0x10]
mov r0, #1
strb r0, [r4]
mov r0, #0x10
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_02107f90:
tst r7, #0x20
beq _02107fb8
cmp r1, #0
ldreq r0, [r8, #4]
cmpeq r0, #0x20
beq _02107fb8
mov r0, #1
strb r0, [r4]
mov r0, #0x20
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_02107fb8:
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
arm_func_end func_ov05_02107e80
.global func_ov05_02107fc0
arm_func_start func_ov05_02107fc0
func_ov05_02107fc0: ; 0x02107fc0
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
mov r1, #2
mov sl, r0
bl func_ov00_020a8ba0
cmp r0, #0
ldmeqia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
mov r6, #0
ldr fp, _02108088 ; =0x47454c4c
ldr r4, _0210808c ; =data_027e0fe4
mov sb, r6
add r8, sl, #0x44
mvn r5, #0
_02107ff0:
add r0, sl, sb, lsl #3
ldr r0, [r0, #0x44]
cmp r0, r5
beq _02108060
ldr r0, [r4]
mov r1, r8
bl func_ov00_020c3674
movs r7, r0
beq _02108054
ldr r1, [r7, #4]
cmp r1, fp
bne _0210802c
bl func_ov32_0217fd68
cmp r0, #0
bne _0210804c
_0210802c:
ldr r1, [r7, #4]
ldr r0, _02108090 ; =0x57544352
cmp r1, r0
bne _02108054
mov r0, r7
bl func_ov26_02170150
cmp r0, #0
beq _02108054
_0210804c:
mov r6, #1
b _02108060
_02108054:
add r0, sl, sb, lsl #3
str r5, [r0, #0x44]
str r5, [r0, #0x48]
_02108060:
add sb, sb, #1
cmp sb, #8
add r8, r8, #8
blt _02107ff0
cmp r6, #0
ldmneia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
mov r0, sl
mov r1, #2
bl func_ov00_020a8668
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
arm_func_end func_ov05_02107fc0
_02108088: .word 0x47454c4c
_0210808c: .word data_027e0fe4
_02108090: .word 0x57544352
.global func_ov05_02108094
arm_func_start func_ov05_02108094
func_ov05_02108094: ; 0x02108094
stmdb sp!, {r4, lr}
mov r1, #0x3f
mov r4, r0
bl func_ov00_020a8ba0
cmp r0, #0
beq _0210817c
mov r0, r4
mov r1, #2
bl func_ov00_020a8ba0
cmp r0, #0
beq _021080ec
ldr r0, _02108184 ; =data_027e0fb8
mov r1, #1
ldr r0, [r0]
bl func_ov00_020af454
cmp r0, #0
moveq r0, #0
ldmeqia sp!, {r4, pc}
mov r0, #4
str r0, [r4, #4]
mov r0, #1
ldmia sp!, {r4, pc}
_021080ec:
mov r0, r4
mov r1, #8
bl func_ov00_020a8ba0
cmp r0, #0
beq _02108110
mov r0, #6
str r0, [r4, #4]
mov r0, #1
ldmia sp!, {r4, pc}
_02108110:
mov r0, r4
mov r1, #4
bl func_ov00_020a8ba0
cmp r0, #0
beq _02108134
mov r0, #5
str r0, [r4, #4]
mov r0, #1
ldmia sp!, {r4, pc}
_02108134:
mov r0, r4
mov r1, #0x10
bl func_ov00_020a8ba0
cmp r0, #0
beq _02108158
mov r0, #7
str r0, [r4, #4]
mov r0, #1
ldmia sp!, {r4, pc}
_02108158:
mov r0, r4
mov r1, #0x20
bl func_ov00_020a8ba0
cmp r0, #0
beq _0210817c
mov r0, #8
str r0, [r4, #4]
mov r0, #1
ldmia sp!, {r4, pc}
_0210817c:
mov r0, #0
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov05_02108094
_02108184: .word data_027e0fb8
.global func_ov05_02108188
arm_func_start func_ov05_02108188
func_ov05_02108188: ; 0x02108188
ldr ip, _021081a0 ; =func_ov00_020a8a4c
mov r3, #0
ldr r1, _021081a4 ; =data_ov05_021126e4
mov r2, #1
strb r3, [r0, #0x28]
bx ip
.align 2, 0
arm_func_end func_ov05_02108188
_021081a0: .word func_ov00_020a8a4c
_021081a4: .word data_ov05_021126e4
.global func_ov05_021081a8
arm_func_start func_ov05_021081a8
func_ov05_021081a8: ; 0x021081a8
stmdb sp!, {r4, lr}
mov r4, r0
bl func_ov00_020a862c
tst r0, #0x20
ldmneia sp!, {r4, pc}
mov r0, r4
mov r1, #0
bl func_ov00_020a8138
ldmia sp!, {r4, pc}
arm_func_end func_ov05_021081a8
.global func_ov05_021081cc
arm_func_start func_ov05_021081cc
func_ov05_021081cc: ; 0x021081cc
stmdb sp!, {r3, r4, r5, lr}
mov r4, r1
ldr r1, [r4, #0x12c]
mov r5, r0
cmp r1, #2
movne r0, #0
ldmneia sp!, {r3, r4, r5, pc}
add r0, r5, #4
add r1, r4, #0x48
bl func_01ff9ec0
ldr r2, [r5, #0x10]
ldr r1, [r4, #0x88]
add r1, r2, r1
cmp r0, r1
movle r0, #1
movgt r0, #0
ldmia sp!, {r3, r4, r5, pc}
arm_func_end func_ov05_021081cc
.global func_ov05_02108210
arm_func_start func_ov05_02108210
func_ov05_02108210: ; 0x02108210
stmdb sp!, {r3, lr}
ldrb r2, [r0, #1]
mov r3, #0
add r2, r0, r2, lsl #2
ldr r2, [r2, #4]
ldr r2, [r2]
cmp r2, #0
ble _02108264
ldr ip, [r0, #0xc]
ldr lr, [r1]
_02108238:
ldr r1, [ip]
cmp lr, r1
bne _02108254
ldr r1, [r0, #0xc]
mov r0, #0x38
mla r0, r3, r0, r1
ldmia sp!, {r3, pc}
_02108254:
add r3, r3, #1
cmp r3, r2
add ip, ip, #0x38
blt _02108238
_02108264:
mov r0, #0
ldmia sp!, {r3, pc}
arm_func_end func_ov05_02108210
.global func_ov05_0210826c
arm_func_start func_ov05_0210826c
func_ov05_0210826c: ; 0x0210826c
stmdb sp!, {r3, r4, r5, lr}
mov r5, r2
mov r4, r3
bl func_ov05_02108210
cmp r0, #0
beq _021082b8
cmp r5, #0
beq _021082a4
ldr r1, [r0, #0x2c]
str r1, [r5]
ldr r1, [r0, #0x30]
str r1, [r5, #4]
ldr r1, [r0, #0x34]
str r1, [r5, #8]
_021082a4:
cmp r4, #0
addne r1, r0, #0xc
strne r1, [r4]
ldr r0, [r0, #8]
ldmia sp!, {r3, r4, r5, pc}
_021082b8:
cmp r5, #0
beq _021082d0
mov r0, #0
str r0, [r5]
str r0, [r5, #4]
str r0, [r5, #8]
_021082d0:
cmp r4, #0
movne r0, #0
strne r0, [r4]
mov r0, #0
ldmia sp!, {r3, r4, r5, pc}
arm_func_end func_ov05_0210826c
.global func_ov05_021082e4
arm_func_start func_ov05_021082e4
func_ov05_021082e4: ; 0x021082e4
stmdb sp!, {r4, r5, r6, r7, r8, lr}
ldrb r4, [r0]
ldr lr, [sp, #0x18]
add r0, r0, r4, lsl #2
ldr ip, [r0, #4]
ldr r0, [ip]
cmp r0, #0x20
ldmgeia sp!, {r4, r5, r6, r7, r8, pc}
ldr r8, [ip]
mov r5, #0
cmp r8, #0
ble _0210833c
ldr r7, [r1]
add r6, ip, #4
_0210831c:
ldr r4, [r6]
cmp r7, r4
moveq r4, #1
beq _02108340
add r5, r5, #1
cmp r5, r8
add r6, r6, #0x3c
blt _0210831c
_0210833c:
mov r4, #0
_02108340:
cmp r4, #0
ldmneia sp!, {r4, r5, r6, r7, r8, pc}
mov r4, #0x3c
mul r5, r0, r4
add r6, ip, #4
ldr r4, [r1]
add r0, r6, r5
str r4, [r6, r5]
ldr r1, [r1, #4]
ldr r4, [sp, #0x1c]
str r1, [r0, #4]
ldr r5, [r2]
ldr r1, [sp, #0x20]
str r5, [r0, #8]
ldr r5, [r2, #4]
str r5, [r0, #0xc]
ldr r2, [r2, #8]
str r2, [r0, #0x10]
ldr r2, [r3]
str r2, [r0, #0x14]
ldr r2, [r3, #4]
str r2, [r0, #0x18]
ldr r2, [r3, #8]
str r2, [r0, #0x1c]
ldr r2, [lr]
str r2, [r0, #0x20]
ldr r2, [lr, #4]
str r2, [r0, #0x24]
ldr r2, [lr, #8]
str r2, [r0, #0x28]
ldr r2, [lr, #0xc]
str r2, [r0, #0x2c]
ldr r2, [lr, #0x10]
str r2, [r0, #0x30]
str r4, [r0, #0x34]
str r1, [r0, #0x38]
ldr r0, [ip]
add r0, r0, #1
str r0, [ip]
ldmia sp!, {r4, r5, r6, r7, r8, pc}
arm_func_end func_ov05_021082e4
.global func_ov05_021083e0
arm_func_start func_ov05_021083e0
func_ov05_021083e0: ; 0x021083e0
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
mov sl, r0
ldrb r0, [sl]
mov r1, #0
eor r0, r0, #1
strb r0, [sl]
ldrb r0, [sl, #1]
eor r0, r0, #1
strb r0, [sl, #1]
ldrb r0, [sl]
add r0, sl, r0, lsl #2
ldr r0, [r0, #4]
str r1, [r0]
ldrb r0, [sl, #1]
add r0, sl, r0, lsl #2
ldr r7, [r0, #4]
mov r0, r7
bl func_ov05_02108898
mov r5, r0
cmp r5, #0
mov r4, #0
ble _0210846c
mov r6, r4
_0210843c:
mov r0, r7
mov r1, r4
bl func_ov05_02108888
bl func_ov05_02108884
ldr r2, [sl, #0xc]
mov r1, r0
add r0, r2, r6
bl func_ov05_02108860
add r4, r4, #1
cmp r4, r5
add r6, r6, #0x38
blt _0210843c
_0210846c:
sub fp, r5, #1
mov r8, #0
cmp fp, #0
ldmleia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
_0210847c:
mov r0, r7
mov r1, r8
bl func_ov05_02108888
mov sb, r0
bl func_ov05_02108858
ldr r0, [r0, #0xc]
cmp r0, #0
blt _021084e4
add r6, r8, #1
cmp r6, r5
bge _021084e4
_021084a8:
mov r0, r7
mov r1, r6
bl func_ov05_02108888
mov r4, r0
bl func_ov05_02108858
ldr r0, [r0, #0xc]
cmp r0, #0
blt _021084d8
mov r0, sl
mov r1, sb
mov r2, r4
bl func_ov05_021084f4
_021084d8:
add r6, r6, #1
cmp r6, r5
blt _021084a8
_021084e4:
add r8, r8, #1
cmp r8, fp
blt _0210847c
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
arm_func_end func_ov05_021083e0
.global func_ov05_021084f4
arm_func_start func_ov05_021084f4
func_ov05_021084f4: ; 0x021084f4
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
sub sp, sp, #0x88
mov sb, r1
add r3, sp, #0x74
add r5, sb, #0x20
mov r8, r2
mov r6, r0
ldmia r5, {r0, r1, r2}
stmia r3, {r0, r1, r2}
ldr r0, [r5, #0xc]
add r4, sp, #0x60
str r0, [sp, #0x80]
ldr r0, [r5, #0x10]
add r5, r8, #0x20
str r0, [sp, #0x84]
ldmia r5, {r0, r1, r2}
stmia r4, {r0, r1, r2}
ldr r1, [r5, #0xc]
mov r0, r3
str r1, [sp, #0x6c]
ldr r1, [r5, #0x10]
mov r2, r3
str r1, [sp, #0x70]
ldr r3, [sb, #8]
add r1, sp, #0xc
str r3, [sp, #0xc]
ldr r3, [sb, #0xc]
str r3, [sp, #0x10]
ldr r3, [sb, #0x10]
str r3, [sp, #0x14]
bl func_01ff9bc4
ldr r1, [r8, #8]
mov r0, r4
str r1, [sp]
ldr r2, [r8, #0xc]
add r1, sp, #0
str r2, [sp, #4]
ldr r3, [r8, #0x10]
mov r2, r0
str r3, [sp, #8]
bl func_01ff9bc4
ldr r1, [sp, #0x78]
ldr r0, [sp, #0x64]
subs r2, r1, r0
ldr r0, [sp, #0x70]
ldr r1, [sp, #0x84]
mov r0, r0, asr #0x1
rsbmi r2, r2, #0
add r0, r0, r1, asr #1
cmp r2, r0
addge sp, sp, #0x88
ldmgeia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
ldr r7, [sp, #0x74]
mov r5, #0
ldr r4, [sp, #0x7c]
ldr r3, [sp, #0x60]
ldr r2, [sp, #0x68]
add r0, sp, #0x54
add r1, sp, #0x48
str r7, [sp, #0x54]
str r5, [sp, #0x58]
str r4, [sp, #0x5c]
str r3, [sp, #0x48]
str r5, [sp, #0x4c]
str r2, [sp, #0x50]
bl func_01ff9ec0
ldr r2, [sp, #0x80]
ldr r1, [sp, #0x6c]
mov r4, r0
add sl, r2, r1
cmp r4, sl
addge sp, sp, #0x88
ldmgeia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
mov r0, r6
mov r1, sb
bl func_ov05_02108210
mov r5, r0
mov r0, r6
mov r1, r8
bl func_ov05_02108210
ldr r2, [r5, #8]
mov r6, r0
cmp r2, #4
movge r0, #0
bge _02108670
ldr r0, [r8]
add r1, r5, #0xc
str r0, [r1, r2, lsl #3]
ldr r0, [r8, #4]
add r1, r1, r2, lsl #3
str r0, [r1, #4]
ldr r1, [r5, #8]
mov r0, #1
add r1, r1, #1
str r1, [r5, #8]
_02108670:
ldr r3, [r6, #8]
cmp r3, #4
movge r7, #0
bge _021086a8
ldr r1, [sb]
add r2, r6, #0xc
str r1, [r2, r3, lsl #3]
ldr r1, [sb, #4]
add r2, r2, r3, lsl #3
str r1, [r2, #4]
ldr r1, [r6, #8]
mov r7, #1
add r1, r1, #1
str r1, [r6, #8]
_021086a8:
ldr r2, [sb, #0x34]
sub r4, sl, r4
cmp r2, #5
ldrne r3, [r8, #0x34]
mov r1, #0
cmpne r3, #5
beq _021086f0
cmp r2, #0
cmpeq r3, #0
beq _021086f0
cmp r2, #4
cmpeq r3, #4
beq _021086f0
cmp r2, r3
movlt r1, #1
blt _021086f0
movgt r1, #2
movle r1, #3
_021086f0:
cmp r1, #3
addls pc, pc, r1, lsl #2
b _02108850
_021086fc: ; jump table
b _02108850 ; case 0
b _0210870c ; case 1
b _02108760 ; case 2
b _021087b4 ; case 3
_0210870c:
cmp r0, #0
ldrne r6, [sb, #0x38]
cmpne r6, #0
addeq sp, sp, #0x88
ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
add r0, sp, #0x54
add r1, sp, #0x48
add r2, sp, #0x3c
bl func_01ff9bf8
cmp r6, #0
cmpgt r4, r6
movgt r4, r6
add r0, sp, #0x3c
mov r1, r4
bl func_0202d95c
add r0, r5, #0x2c
add r1, sp, #0x3c
mov r2, r0
bl func_01ff9bc4
add sp, sp, #0x88
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
_02108760:
cmp r7, #0
ldrne r5, [r8, #0x38]
cmpne r5, #0
addeq sp, sp, #0x88
ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
add r0, sp, #0x48
add r1, sp, #0x54
add r2, sp, #0x30
bl func_01ff9bf8
cmp r5, #0
cmpgt r4, r5
movgt r4, r5
add r0, sp, #0x30
mov r1, r4
bl func_0202d95c
add r0, r6, #0x2c
add r1, sp, #0x30
mov r2, r0
bl func_01ff9bc4
add sp, sp, #0x88
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
_021087b4:
cmp r0, #0
ldrne sb, [sb, #0x38]
cmpne sb, #0
beq _02108800
add r0, sp, #0x54
add r1, sp, #0x48
add r2, sp, #0x24
bl func_01ff9bf8
add r0, r4, r4, lsr #31
mov r1, r0, asr #0x1
cmp sb, #0
cmpgt r1, sb
movgt r1, sb
add r0, sp, #0x24
bl func_0202d95c
add r0, r5, #0x2c
add r1, sp, #0x24
mov r2, r0
bl func_01ff9bc4
_02108800:
cmp r7, #0
ldrne r5, [r8, #0x38]
cmpne r5, #0
addeq sp, sp, #0x88
ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
add r0, sp, #0x48
add r1, sp, #0x54
add r2, sp, #0x18
bl func_01ff9bf8
add r0, r4, r4, lsr #31
mov r1, r0, asr #0x1
cmp r5, #0
cmpgt r1, r5
movgt r1, r5
add r0, sp, #0x18
bl func_0202d95c
add r0, r6, #0x2c
add r1, sp, #0x18
mov r2, r0
bl func_01ff9bc4
_02108850:
add sp, sp, #0x88
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
arm_func_end func_ov05_021084f4
.global func_ov05_02108858
arm_func_start func_ov05_02108858
func_ov05_02108858: ; 0x02108858
add r0, r0, #0x20
bx lr
arm_func_end func_ov05_02108858
.global func_ov05_02108860
arm_func_start func_ov05_02108860
func_ov05_02108860: ; 0x02108860
ldr r3, [r1]
mov r2, #0
str r3, [r0]
ldr r1, [r1, #4]
stmib r0, {r1, r2}
str r2, [r0, #0x2c]
str r2, [r0, #0x30]
str r2, [r0, #0x34]
bx lr
arm_func_end func_ov05_02108860
.global func_ov05_02108884
arm_func_start func_ov05_02108884
func_ov05_02108884: ; 0x02108884
bx lr
arm_func_end func_ov05_02108884
.global func_ov05_02108888
arm_func_start func_ov05_02108888
func_ov05_02108888: ; 0x02108888
add r2, r0, #4
mov r0, #0x3c
mla r0, r1, r0, r2
bx lr
arm_func_end func_ov05_02108888
.global func_ov05_02108898
arm_func_start func_ov05_02108898
func_ov05_02108898: ; 0x02108898
ldr r0, [r0]
bx lr
arm_func_end func_ov05_02108898
.global func_ov05_021088a0
arm_func_start func_ov05_021088a0
func_ov05_021088a0: ; 0x021088a0
stmdb sp!, {r3, lr}
ldrb r2, [r1, #1]
cmp r2, #9
bne _021088c0
ldr r1, [r1, #4]
str r1, [r0, #0x20]
mov r0, #2
ldmia sp!, {r3, pc}
_021088c0:
bl func_02037f58
ldmia sp!, {r3, pc}
arm_func_end func_ov05_021088a0
.global func_ov05_021088c8
arm_func_start func_ov05_021088c8
func_ov05_021088c8: ; 0x021088c8
stmdb sp!, {r4, r5, r6, r7, r8, lr}
sub sp, sp, #0x18
mov r5, r0
add r0, sp, #0
mov r4, r1
bl func_02037628
add r2, sp, #0
mov r0, r5
mov r1, r4
bl func_020385d0
cmp r0, #0
beq _0210899c
ldr r1, _021089a8 ; =data_027e0fbc
ldr r4, _021089ac ; =0x88888889
ldr r1, [r1]
mov ip, #0x3c
ldrh r2, [r1, #0xa]
ldr r6, _021089b0 ; =0x66666667
add sp, sp, #0x18
tst r2, #0x8000
ldrne r1, _021089b4 ; =0x00007fff
andne r1, r2, r1
moveq r1, #0
mov r3, r1, lsl #0x10
mov r5, r3, lsr #0x10
smull r2, r1, r4, r5
mov lr, r5, lsr #0x1f
add r1, r1, r3, lsr #16
add r1, lr, r1, asr #5
smull r1, r2, ip, r1
smull ip, r2, r4, r5
rsb r1, r1, r3, lsr #16
add r2, r2, r3, lsr #16
smull r3, r7, r6, r1
mov r5, r1, lsr #0x1f
smull r3, r8, r6, r1
add r7, r5, r7, asr #2
mov ip, #0xa
smull r3, r4, ip, r7
ldr r4, _021089b8 ; =data_ov05_02112770
add r2, lr, r2, asr #5
str r2, [r4, #0xa0]
str r1, [r4, #0xa4]
add r8, r5, r8, asr #2
sub r7, r1, r3
str r8, [r4, #0xa8]
ldr r1, _021089bc ; =data_ov05_02112810
str r7, [r4, #0xac]
str r1, [r0, #0x38]
mov r1, #4
strh r1, [r0, #0x3c]
mov r0, #1
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_0210899c:
mov r0, #0
add sp, sp, #0x18
ldmia sp!, {r4, r5, r6, r7, r8, pc}
.align 2, 0
arm_func_end func_ov05_021088c8
_021089a8: .word data_027e0fbc
_021089ac: .word 0x88888889
_021089b0: .word 0x66666667
_021089b4: .word 0x00007fff
_021089b8: .word data_ov05_02112770
_021089bc: .word data_ov05_02112810
.global func_ov05_021089c0
arm_func_start func_ov05_021089c0
func_ov05_021089c0: ; 0x021089c0
stmdb sp!, {r4, lr}
mov r4, r0
ldr r0, _021089ec ; =data_ov00_020eec68
mov r1, #0x4a
mov r2, #0
mov r3, #0x7f
bl func_ov00_020d70a4
ldr r1, [r4, #0x30]
ldr r0, _021089f0 ; =data_027e071c
blx func_0202d6e4
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov05_021089c0
_021089ec: .word data_ov00_020eec68
_021089f0: .word data_027e071c
.global func_ov05_021089f4
arm_func_start func_ov05_021089f4
func_ov05_021089f4: ; 0x021089f4
stmdb sp!, {r3, r4, r5, r6, lr}
sub sp, sp, #0xc
mov r4, r0
bl func_020385b8
bl func_ov00_020ab6c8
mov r0, r4
bl func_ov00_020a82ac
ldr r0, _02108ce0 ; =data_027e0fb8
ldr r0, [r0]
bl func_ov00_020af044
ldr r0, [r4, #0x74]
cmp r0, #0x87
bne _02108a70
ldr r0, _02108ce4 ; =data_027e103c
ldr r0, [r0]
bl func_ov00_020cfbb0
ldr r1, _02108ce8 ; =0x00002a30
cmp r0, r1
movlo r0, #0x19
strlo r0, [r4, #0x74]
blo _02108a70
cmp r0, r1, lsl #1
movlo r0, #0x7d
strlo r0, [r4, #0x74]
blo _02108a70
ldr r1, _02108cec ; =0x00008ca0
cmp r0, r1
movlo r0, #0x7e
strlo r0, [r4, #0x74]
movhs r0, #0x85
strhs r0, [r4, #0x74]
_02108a70:
ldr r1, [r4, #0x74]
cmp r1, #0x85
bgt _02108ab8
bge _02108af4
sub r0, r1, #0x75
cmp r0, #9
addls pc, pc, r0, lsl #2
b _02108be8
_02108a90: ; jump table
b _02108bb4 ; case 0
b _02108bd0 ; case 1
b _02108bd0 ; case 2
b _02108be8 ; case 3
b _02108be8 ; case 4
b _02108be8 ; case 5
b _02108be8 ; case 6
b _02108be8 ; case 7
b _02108ad4 ; case 8
b _02108af4 ; case 9
_02108ab8:
cmp r1, #0x86
bne _02108be8
mov r1, #0x34
mov r0, #4
str r1, [r4, #0x74]
blx func_ov09_0211cac0
b _02108be8
_02108ad4:
add r0, sp, #8
blx func_ov09_0211c808
ldr r0, [sp, #8]
add r0, r0, #0x30
str r0, [r4, #0x74]
ldr r0, [sp, #8]
blx func_ov09_0211cac0
b _02108be8
_02108af4:
ldr r0, _02108cf0 ; =data_027e0fb4
cmp r1, #0x85
moveq r5, #1
ldr r0, [r0]
movne r5, #0
mov r1, #3
mov r2, #0
blx func_ov00_020ad8f0
cmp r0, #0
add r1, sp, #4
add r2, sp, #0
mov r3, r5
blt _02108b34
mov r0, #0xff
blx func_ov09_0211c724
b _02108b3c
_02108b34:
mov r0, #0xf7
blx func_ov09_0211c724
_02108b3c:
ldr r0, [r4, #0x74]
cmp r0, #0x85
bne _02108b9c
ldr r2, _02108cf4 ; =data_027e0764
mov r1, #0
ldr r3, [r2]
ldmib r2, {r0, ip}
umull r5, lr, ip, r3
mla lr, ip, r0, lr
ldr r0, [r2, #0xc]
ldr ip, [r2, #0x10]
mla lr, r0, r3, lr
ldr r0, [r2, #0x14]
adds r6, ip, r5
adc r5, r0, lr
mov r0, #0x64000
umull r3, ip, r5, r0
mla ip, r5, r1, ip
mla ip, r1, r0, ip
str r6, [r2]
cmp ip, #0xa000
movlt r0, #8
str r5, [r2, #4]
strlt r0, [sp]
_02108b9c:
mov r0, #0x2b
str r0, [r4, #0x74]
ldr r0, [sp, #4]
ldr r1, [sp]
blx func_ov09_0211ca20
b _02108be8
_02108bb4:
ldr r0, _02108cf0 ; =data_027e0fb4
ldr r0, [r0]
bl func_ov00_020ae598
cmp r0, #0
movne r0, #9
strne r0, [r4, #0x74]
b _02108be8
_02108bd0:
ldr r0, _02108cf0 ; =data_027e0fb4
ldr r0, [r0]
bl func_ov00_020ae598
cmp r0, #0
movne r0, #0x1a
strne r0, [r4, #0x74]
_02108be8:
ldr r0, [r4, #0x74]
blx func_ov00_020ad020
cmp r0, #0
ldr r1, [r4, #0x74]
beq _02108c14
ldr r0, _02108cf8 ; =data_ov09_0211f5dc
blx func_ov03_020fb0b0
mov r0, #1
add sp, sp, #0xc
strb r0, [r4, #0xa6]
ldmia sp!, {r3, r4, r5, r6, pc}
_02108c14:
mvn r0, #0
cmp r1, r0
mov r0, r4
bne _02108c34
mov r1, #0
bl func_ov00_020a8138
add sp, sp, #0xc
ldmia sp!, {r3, r4, r5, r6, pc}
_02108c34:
bl func_ov00_020a8158
mov r0, #0
strh r0, [r4, #0x78]
ldr r0, _02108cf0 ; =data_027e0fb4
ldr r1, [r4, #0x74]
ldr r0, [r0]
blx func_ov00_020adb30
ldr r0, [r4, #0x74]
mov r2, #1
cmp r0, #0x81
cmpne r0, #0x82
cmpne r0, #0x3e
cmpne r0, #0
bne _02108c7c
ldr r1, _02108cfc ; =data_ov05_021127c0
mov r0, r4
bl func_ov00_020a8a4c
b _02108c88
_02108c7c:
ldr r1, _02108d00 ; =data_ov05_021127b0
mov r0, r4
bl func_ov00_020a8a4c
_02108c88:
mov r0, r4
bl func_ov00_020a8c78
ldrsh r1, [r0]
mov r0, r4
strh r1, [r4, #0x7a]
bl func_ov00_020a8c78
mov r3, #0x8000
rsb r3, r3, #0
mov r2, #0
ldr r1, _02108d04 ; =data_027e0f64
strh r3, [r0]
ldr r0, [r1]
mov r3, r2
ldr r0, [r0, #4]
mov r1, #0xa
bl func_ov00_0208766c
mov r0, #0
strb r0, [r4, #0xa6]
mov r0, #1
strh r0, [r4, #0x34]
add sp, sp, #0xc
ldmia sp!, {r3, r4, r5, r6, pc}
.align 2, 0
arm_func_end func_ov05_021089f4
_02108ce0: .word data_027e0fb8
_02108ce4: .word data_027e103c
_02108ce8: .word 0x00002a30
_02108cec: .word 0x00008ca0
_02108cf0: .word data_027e0fb4
_02108cf4: .word data_027e0764
_02108cf8: .word data_ov09_0211f5dc
_02108cfc: .word data_ov05_021127c0
_02108d00: .word data_ov05_021127b0
_02108d04: .word data_027e0f64
.global func_ov05_02108d08
arm_func_start func_ov05_02108d08
func_ov05_02108d08: ; 0x02108d08
stmdb sp!, {r3, r4, lr}
sub sp, sp, #0x1c
mov r4, r0
ldr r1, [r4, #0x74]
cmp r1, #0x4b
blt _02108d38
cmp r1, #0x6a
bgt _02108d38
ldr r0, _02108dfc ; =data_027e103c
sub r1, r1, #0x4b
ldr r0, [r0]
bl func_ov00_020cfb58
_02108d38:
ldr r0, [r4, #0x74]
bl func_ov03_020fc10c
ldr r0, [r4, #0x74]
cmp r0, #0
addeq sp, sp, #0x1c
ldmeqia sp!, {r3, r4, pc}
mov r0, r4
bl func_ov00_020a8c4c
ldr ip, _02108e00 ; =data_ov05_02112770
add r3, sp, #0x10
ldmia r0, {r0, r1, r2}
stmia r3, {r0, r1, r2}
ldr r2, [sp, #0x10]
ldr r0, [ip, #0x20]
ldr r1, [sp, #0x14]
add r0, r2, r0
str r0, [sp, #0x10]
ldr r0, [ip, #0x24]
ldr r2, [sp, #0x18]
add r0, r1, r0
str r0, [sp, #0x14]
ldr r0, [ip, #0x28]
mov r1, #0
add r0, r2, r0
str r0, [sp, #0x18]
str r1, [sp]
str r1, [sp, #4]
ldr r0, _02108e04 ; =data_027e0e58
mov r2, r3
ldr r0, [r0]
mov r1, #0x100
mov r3, #1
bl func_ov00_0207c1b0
mov r0, #0xfe
str r0, [sp]
mov r1, #0xff
str r1, [sp, #4]
add r0, sp, #0x10
str r0, [sp, #8]
mov r1, #1
str r1, [sp, #0xc]
ldr r0, _02108e04 ; =data_027e0e58
add r1, r4, #0x88
ldr r0, [r0]
mov r2, #0xfc
mov r3, #0xfd
bl func_ov00_0207c358
add sp, sp, #0x1c
ldmia sp!, {r3, r4, pc}
.align 2, 0
arm_func_end func_ov05_02108d08
_02108dfc: .word data_027e103c
_02108e00: .word data_ov05_02112770
_02108e04: .word data_027e0e58
.global func_ov05_02108e08
arm_func_start func_ov05_02108e08
func_ov05_02108e08: ; 0x02108e08
stmdb sp!, {r3, r4, r5, lr}
mov r5, r0
ldrsh r0, [r5, #0x7c]
cmp r0, #0
beq _02108e30
cmp r0, #1
beq _02108e38
cmp r0, #2
beq _02108e40
ldmia sp!, {r3, r4, r5, pc}
_02108e30:
mov r4, #0x2f
b _02108e44
_02108e38:
mov r4, #0x2d
b _02108e44
_02108e40:
mov r4, #0x2e
_02108e44:
mov r0, r5
bl func_ov00_020a8158
ldr r1, _02108e80 ; =data_ov05_021127d0
mov r0, r5
mov r2, #1
bl func_ov00_020a8a4c
ldr r1, _02108e84 ; =data_ov05_02112770
mov r0, r5
ldr r1, [r1, #0x68]
bl func_ov00_020a8ad0
ldr r0, _02108e88 ; =data_027e0fb4
mov r1, r4
ldr r0, [r0]
blx func_ov00_020adb30
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov05_02108e08
_02108e80: .word data_ov05_021127d0
_02108e84: .word data_ov05_02112770
_02108e88: .word data_027e0fb4
.global func_ov05_02108e8c
arm_func_start func_ov05_02108e8c
func_ov05_02108e8c: ; 0x02108e8c
stmdb sp!, {r4, lr}
mov r4, r0
ldrsh r0, [r4, #0x34]
sub r0, r0, #1
strh r0, [r4, #0x34]
ldrb r0, [r4, #0xa4]
cmp r0, #0
beq _02108ee8
ldr r0, [r4, #0x30]
ldr r0, [r0]
cmp r0, #0
ldmneia sp!, {r4, pc}
bl func_ov05_021071f8
mov r1, #0
ldr r2, _02108f30 ; =data_027e0f74
strh r1, [r0, #0x32]
ldr r0, [r2]
mov r3, r1
mov r2, #1
bl func_ov00_02097ff4
mov r0, r4
bl func_ov00_020a85fc
ldmia sp!, {r4, pc}
_02108ee8:
ldmneia sp!, {r4, pc}
ldrsh r0, [r4, #0x34]
cmp r0, #0
ldmgtia sp!, {r4, pc}
ldr r1, [r4, #0x30]
ldr r0, _02108f34 ; =data_027e071c
bl func_0202d77c
ldr r1, [r4, #0x30]
mov r0, #1
str r0, [r1]
mov r2, #0
str r2, [r1, #8]
ldr r0, [r4, #0x30]
mov r1, #0x14
blx func_0202abf4
mov r0, #1
strb r0, [r4, #0xa4]
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov05_02108e8c
_02108f30: .word data_027e0f74
_02108f34: .word data_027e071c
.global func_ov05_02108f38
arm_func_start func_ov05_02108f38
func_ov05_02108f38: ; 0x02108f38
stmdb sp!, {r4, lr}
mov r4, r0
bl func_ov00_020a8d40
ldrh r1, [r0, #0xa4]
bic r1, r1, #8
strh r1, [r0, #0xa4]
ldrsh r0, [r4, #0x34]
sub r0, r0, #1
strh r0, [r4, #0x34]
ldrsh r1, [r4, #0x34]
cmp r1, #0
ble _02108f88
ldr r0, _02108f90 ; =0x0000010b
cmp r1, r0
ldmgeia sp!, {r4, pc}
ldr r0, _02108f94 ; =data_027e0fb8
ldr r0, [r0]
bl func_ov00_020b1214
cmp r0, #0
ldmeqia sp!, {r4, pc}
_02108f88:
blx func_ov03_020f9f08
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov05_02108f38
_02108f90: .word 0x0000010b
_02108f94: .word data_027e0fb8
.global func_ov05_02108f98
arm_func_start func_ov05_02108f98
func_ov05_02108f98: ; 0x02108f98
stmdb sp!, {r4, lr}
mov r4, r0
bl func_ov00_020a8d40
ldrh r1, [r0, #0xa4]
bic r1, r1, #8
strh r1, [r0, #0xa4]
ldr r0, _0210928c ; =data_ov00_020eec68
bl func_ov00_020d7180
cmp r0, #0
ldmneia sp!, {r4, pc}
ldr r1, [r4, #0x30]
ldr r0, _02109290 ; =data_027e071c
bl func_0202d644
cmp r0, #0
bne _02109018
ldr r1, [r4, #0x30]
ldr r0, _02109290 ; =data_027e071c
blx func_0202d690
ldr r1, [r4, #0x30]
ldr r0, _02109290 ; =data_027e071c
bl func_0202d77c
ldr r0, [r4, #0x30]
blx func_0202ab78
ldr r1, [r4, #0x30]
mov r0, #1
str r0, [r1]
mov r2, #0
str r2, [r1, #8]
ldr r0, [r4, #0x30]
mov r1, #0x14
blx func_0202abf4
ldmia sp!, {r4, pc}
_02109018:
ldr r0, [r4, #0x30]
ldr r0, [r0]
cmp r0, #0
bne _021091b8
ldrb r0, [r4, #0xa4]
cmp r0, #0
beq _021090dc
ldrb r1, [r4, #0xab]
mov r0, r4
bl func_ov00_020a8614
ldr r1, [r4, #0x98]
cmp r1, #0
blt _02109060
ldr r0, _0210928c ; =data_ov00_020eec68
mov r2, #0
mov r3, #0x7f
bl func_ov00_020d70a4
b _02109080
_02109060:
ldr r0, _02109294 ; =data_027e0e60
ldr r0, [r0]
bl func_ov00_02084740
mov r1, r0
ldr r0, _0210928c ; =data_ov00_020eec68
mov r2, #0
mov r3, #0x7f
bl func_ov00_020d70a4
_02109080:
ldr r0, _02109298 ; =data_027e0d38
mov r1, #0
ldr r0, [r0]
blx func_ov03_020f3870
ldrh r1, [r4, #0x6c]
ldr r0, _0210929c ; =data_027e0618
strh r1, [r0, #0xfe]
ldrb r0, [r4, #0xa7]
cmp r0, #0
beq _021090c0
ldr r0, _021092a0 ; =data_027e0c54
ldrb r0, [r0]
cmp r0, #0
bne _021090c0
blx func_ov03_020f9f30
ldmia sp!, {r4, pc}
_021090c0:
ldr r2, _021092a4 ; =0x04001000
ldr r0, [r4, #0x70]
ldr r1, [r2]
bic r1, r1, #0x1f00
orr r0, r1, r0, lsl #8
str r0, [r2]
ldmia sp!, {r4, pc}
_021090dc:
ldrb r0, [r4, #0xab]
cmp r0, #0
beq _021090f4
ldr r0, _021092a8 ; =data_027e103c
ldr r0, [r0]
bl func_ov05_02104070
_021090f4:
ldr r0, _02109298 ; =data_027e0d38
mov r1, #1
ldr r0, [r0]
blx func_ov03_020f3870
ldr r0, _021092ac ; =data_027e0f64
mov r2, #0
ldr r0, [r0]
mov r3, r2
ldr r0, [r0, #4]
mov r1, #0xd
bl func_ov00_020872e8
ldr r0, _0210929c ; =data_027e0618
ldr r1, _021092a4 ; =0x04001000
ldrh r3, [r0, #0xfc]
mov r2, #0
strh r3, [r4, #0x6c]
strh r2, [r0, #0xfe]
ldr r0, [r1]
and r0, r0, #0x1f00
mov r0, r0, lsr #0x8
str r0, [r4, #0x70]
ldr r0, [r1]
bic r0, r0, #0x1f00
str r0, [r1]
ldr r0, [r4, #0x30]
blx func_0202ab78
ldr r2, [r4, #0x30]
mov r1, #0
str r1, [r2]
ldrb r0, [r2, #0x20]
cmp r0, #0
subne r0, r1, #0x10
moveq r0, #0x10
str r0, [r2, #8]
ldr r0, [r4, #0x30]
mov r1, #0x14
mov r2, #0
blx func_0202abdc
mov r0, r4
bl func_ov00_020a8c78
mov r1, #0
strh r1, [r0]
mov r0, r4
bl func_ov00_020a8158
ldr r1, _021092b0 ; =data_ov05_021127a0
mov r0, r4
mov r2, #0
bl func_ov00_020a8a4c
ldmia sp!, {r4, pc}
_021091b8:
cmp r0, #1
ldmneia sp!, {r4, pc}
mov r0, r4
mov r1, #0
bl func_ov00_020a8b3c
cmp r0, #0
beq _02109208
mov r0, #1
strb r0, [r4, #0xa4]
ldr r0, [r4, #0x30]
blx func_0202ab78
ldr r1, [r4, #0x30]
mov r0, #1
str r0, [r1]
mov r2, #0
str r2, [r1, #8]
ldr r0, [r4, #0x30]
mov r1, #0x14
blx func_0202abf4
b _02109218
_02109208:
mov r0, r4
mov r1, #0x50000
mov r2, #0
bl func_ov00_020a8b04
_02109218:
mov r0, r4
mov r1, #0x44000
mov r2, #0
bl func_ov00_020a8b04
cmp r0, #0
mov r0, r4
beq _0210924c
bl func_ov00_020a8c4c
mov r2, r0
ldr r0, _021092b4 ; =data_ov00_020eec9c
mov r1, #0x11c
bl func_ov00_020d7a84
b _02109278
_0210924c:
mov r1, #0x5f000
mov r2, #0
bl func_ov00_020a8b04
cmp r0, #0
beq _02109278
mov r0, r4
bl func_ov00_020a8c4c
mov r2, r0
ldr r0, _021092b4 ; =data_ov00_020eec9c
ldr r1, _021092b8 ; =0x0000011b
bl func_ov00_020d7a84
_02109278:
mov r0, r4
mov r1, #0x4b000
mov r2, #0
bl func_ov00_020a8b04
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov05_02108f98
_0210928c: .word data_ov00_020eec68
_02109290: .word data_027e071c
_02109294: .word data_027e0e60
_02109298: .word data_027e0d38
_0210929c: .word data_027e0618
_021092a0: .word data_027e0c54
_021092a4: .word 0x04001000
_021092a8: .word data_027e103c
_021092ac: .word data_027e0f64
_021092b0: .word data_ov05_021127a0
_021092b4: .word data_ov00_020eec9c
_021092b8: .word 0x0000011b
.global func_ov05_021092bc
arm_func_start func_ov05_021092bc
func_ov05_021092bc: ; 0x021092bc
stmdb sp!, {r4, r5, lr}
sub sp, sp, #0xc
mov r5, r0
ldr r0, _0210950c ; =data_027e071c
bl func_0202d7ac
cmp r0, #0
ldrb r0, [r5, #0xa6]
beq _021092f8
cmp r0, #0
bne _021094f4
ldr r1, _02109510 ; =data_ov05_021127b0
mov r0, r5
mov r2, #1
bl func_ov00_020a8a4c
b _021094f4
_021092f8:
cmp r0, #0
beq _02109330
ldr r0, [r5, #0x38]
cmp r0, #0
blt _021094f4
ldr r0, _02109514 ; =data_027e0f74
ldr r0, [r0]
bl func_ov00_02097738
cmp r0, #0
beq _021094f4
ldr r1, [r5, #0x74]
mov r0, r5
bl func_ov05_021097b0
b _021094f4
_02109330:
ldr r0, _02109518 ; =data_027e0f64
ldr r0, [r0]
ldr r0, [r0, #4]
ldr r1, [r0, #0x15c]
cmp r1, #0xa
bne _02109354
bl func_ov00_02089a2c
cmp r0, #0
bne _021093f0
_02109354:
ldrsh r0, [r5, #0x34]
cmp r0, #0
bne _021093f0
mov r0, r5
mov r1, #0x1c000
mov r2, #0
bl func_ov00_020a8b04
cmp r0, #0
beq _02109380
ldr r0, [r5, #0x74]
blx func_ov00_020ae648
_02109380:
mov r0, r5
bl func_ov00_020a8d50
cmp r0, #0x1c000
blt _02109398
ldr r0, _0210951c ; =data_ov00_020eec68
bl func_ov00_020d71a0
_02109398:
mov r0, r5
bl func_ov00_020a8dcc
ldr r1, _02109520 ; =data_ov05_02112770
ldr r1, [r1, #0x40]
cmp r1, r0
beq _021093c8
mov r0, r5
bl func_ov00_020a8dcc
ldr r1, _02109520 ; =data_ov05_02112770
ldr r1, [r1, #0x50]
cmp r1, r0
bne _021093f0
_021093c8:
mov r0, r5
mov r1, #0
bl func_ov00_020a8b3c
cmp r0, #0
beq _021093f0
mov r2, #0xb
mov r0, r5
mov r1, #6
str r2, [r5, #4]
bl func_ov00_020a8138
_021093f0:
ldr r0, [r5, #0x74]
mov r4, #0
sub r0, r0, #0x6b
cmp r0, #5
addls pc, pc, r0, lsl #2
b _02109464
_02109408: ; jump table
b _02109420 ; case 0
b _02109438 ; case 1
b _02109450 ; case 2
b _02109420 ; case 3
b _02109438 ; case 4
b _02109450 ; case 5
_02109420:
ldr r0, _02109524 ; =data_027e0fb4
mov r1, #1
ldr r0, [r0]
bl func_ov00_020ad428
mov r4, r0
b _02109464
_02109438:
ldr r0, _02109524 ; =data_027e0fb4
mov r1, #2
ldr r0, [r0]
bl func_ov00_020ad428
mov r4, r0
b _02109464
_02109450:
ldr r0, _02109524 ; =data_027e0fb4
mov r1, r4
ldr r0, [r0]
bl func_ov00_020ad428
mov r4, r0
_02109464:
cmp r4, #0
beq _021094f4
ldrsh r0, [r5, #0x34]
cmp r0, #0
bne _021094f4
mov r0, r5
mov r1, #0x1c000
mov r2, #0
bl func_ov00_020a8b04
cmp r0, #0
beq _021094f4
mov r0, r5
bl func_ov00_020a8c4c
ldr ip, _02109520 ; =data_ov05_02112770
add r3, sp, #0
ldmia r0, {r0, r1, r2}
stmia r3, {r0, r1, r2}
ldr r2, [sp]
ldr r1, [ip, #0x20]
ldr r0, _02109528 ; =0xfffffccd
add r1, r2, r1
str r1, [sp]
ldr r1, [ip, #0x24]
ldr r2, [sp, #4]
add r0, r1, r0
add r0, r2, r0
str r0, [sp, #4]
ldr r2, [sp, #8]
ldr r1, [ip, #0x28]
mov r0, r4
add r1, r2, r1
str r1, [sp, #8]
ldr r2, [r0]
mov r1, r3
ldr r2, [r2, #0xc0]
blx r2
_021094f4:
ldrsh r0, [r5, #0x34]
cmp r0, #0
subgt r0, r0, #1
strgth r0, [r5, #0x34]
add sp, sp, #0xc
ldmia sp!, {r4, r5, pc}
.align 2, 0
arm_func_end func_ov05_021092bc
_0210950c: .word data_027e071c
_02109510: .word data_ov05_021127b0
_02109514: .word data_027e0f74
_02109518: .word data_027e0f64
_0210951c: .word data_ov00_020eec68
_02109520: .word data_ov05_02112770
_02109524: .word data_027e0fb4
_02109528: .word 0xfffffccd
.global func_ov05_0210952c
arm_func_start func_ov05_0210952c
func_ov05_0210952c: ; 0x0210952c
stmdb sp!, {r4, lr}
mov r4, r0
ldr r0, _0210957c ; =data_ov05_02112770
ldrh r2, [r4, #0x78]
ldr r1, [r0, #0x2c]
ldr r0, _02109580 ; =data_027e0c68
add r1, r2, r1
strh r1, [r4, #0x78]
bl func_020367ec
cmp r0, #0
ldreqb r0, [r4, #0xa5]
cmpeq r0, #0
bne _02109570
ldr r1, [r4, #0x74]
mov r0, r4
bl func_ov05_021097b0
ldmia sp!, {r4, pc}
_02109570:
ldr r0, _02109584 ; =data_ov00_020eec68
bl func_ov00_020d71a0
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov05_0210952c
_0210957c: .word data_ov05_02112770
_02109580: .word data_027e0c68
_02109584: .word data_ov00_020eec68
.global func_ov05_02109588
arm_func_start func_ov05_02109588
func_ov05_02109588: ; 0x02109588
stmdb sp!, {r3, r4, r5, lr}
mov r4, r0
bl func_ov00_020a8d40
mov r5, r0
mov r0, r4
bl func_ov00_020a8c4c
ldr r1, [r0, #4]
mov r0, r5
bl func_ov00_020b542c
ldr r0, [r4, #4]
cmp r0, #0xc
bne _021095c4
ldrh r0, [r4, #0x3c]
cmp r0, #2
bhs _021095d4
_021095c4:
mov r0, r4
bl func_ov00_020b2d8c
cmp r0, #0
ldmeqia sp!, {r3, r4, r5, pc}
_021095d4:
ldr r0, [r4, #4]
cmp r0, #0xc
bne _021095ec
ldrh r0, [r4, #0x3c]
cmp r0, #2
bhs _021095fc
_021095ec:
ldrh r0, [r4, #0x3c]
add r0, r0, #1
strh r0, [r4, #0x3c]
ldmia sp!, {r3, r4, r5, pc}
_021095fc:
mov r0, r4
mov r1, #0
bl func_ov05_0211058c
ldmia sp!, {r3, r4, r5, pc}
arm_func_end func_ov05_02109588
.global func_ov05_0210960c
arm_func_start func_ov05_0210960c
func_ov05_0210960c: ; 0x0210960c
stmdb sp!, {r3, r4, r5, lr}
mov r5, r0
bl func_ov00_020a8d40
mov r4, r0
mov r0, r5
bl func_ov00_020a8c4c
ldr r1, [r0, #4]
mov r0, r4
bl func_ov00_020b542c
mov r0, r5
bl func_ov00_020b2d8c
cmp r0, #0
ldmneia sp!, {r3, r4, r5, pc}
mov r0, r5
add r1, r5, #0x40
bl func_ov00_020a81ec
ldmia sp!, {r3, r4, r5, pc}
arm_func_end func_ov05_0210960c
.global func_ov05_02109650
arm_func_start func_ov05_02109650
func_ov05_02109650: ; 0x02109650
stmdb sp!, {r4, lr}
mov r4, r0
bl func_ov00_020a8dcc
ldr r1, _021096b0 ; =data_ov05_02112770
ldr r1, [r1, #0x60]
cmp r1, r0
bne _02109690
mov r0, r4
mov r1, #0
bl func_ov00_020a8b3c
cmp r0, #0
ldmeqia sp!, {r4, pc}
ldr r1, _021096b4 ; =data_ov05_021127e0
mov r0, r4
bl func_ov00_020a8a90
ldmia sp!, {r4, pc}
_02109690:
ldr r0, _021096b8 ; =data_027e0c68
ldrb r0, [r0, #4]
cmp r0, #0
ldmneia sp!, {r4, pc}
mov r0, r4
mov r1, #0
bl func_ov00_020a8138
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov05_02109650
_021096b0: .word data_ov05_02112770
_021096b4: .word data_ov05_021127e0
_021096b8: .word data_027e0c68
.global func_ov05_021096bc
arm_func_start func_ov05_021096bc
func_ov05_021096bc: ; 0x021096bc
stmdb sp!, {r3, r4, r5, lr}
sub sp, sp, #0xb0
mov r5, r0
ldr r0, [r5, #0x38]
mov r4, r1
cmp r0, #0
addge sp, sp, #0xb0
movge r0, #0
ldmgeia sp!, {r3, r4, r5, pc}
add r0, sp, #0
bl func_ov00_0209a4f4
mov r2, #0
ldr r0, _02109764 ; =data_027e0f74
mvn ip, #0
mov r3, #0x14
ldr r0, [r0]
add r1, sp, #0
str ip, [sp, #4]
strb r3, [sp, #9]
strb r2, [sp, #0xa]
strb r2, [sp, #0xb]
strb r2, [sp, #0x16]
bl func_ov00_02097810
str r0, [r5, #0x38]
cmp r0, #0
blt _02109750
mov r0, #0xa
str r0, [r5, #4]
mov r0, r5
str r4, [r5, #0x74]
bl func_ov00_020a8bf8
strh r0, [r5, #0x7e]
add r0, sp, #0
bl func_ov00_0209a508
add sp, sp, #0xb0
mov r0, #1
ldmia sp!, {r3, r4, r5, pc}
_02109750:
add r0, sp, #0
bl func_ov00_0209a508
mov r0, #0
add sp, sp, #0xb0
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov05_021096bc
_02109764: .word data_027e0f74
.global func_ov05_02109768
arm_func_start func_ov05_02109768
func_ov05_02109768: ; 0x02109768
stmdb sp!, {r4, lr}
mov r4, r0
bl func_ov00_020a8bf8
cmp r0, #6
bne _021097a8
ldr r0, [r4, #4]
cmp r0, #0xb
beq _02109794
ldrb r0, [r4, #0xa6]
cmp r0, #0
beq _021097a8
_02109794:
ldr r1, [r4, #0x74]
mov r0, r4
bl func_ov05_021097b0
mov r0, #1
ldmia sp!, {r4, pc}
_021097a8:
mov r0, #0
ldmia sp!, {r4, pc}
arm_func_end func_ov05_02109768
.global func_ov05_021097b0
arm_func_start func_ov05_021097b0
func_ov05_021097b0: ; 0x021097b0
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #0x14
mov r4, r1
mov r5, r0
cmp r4, #0xf
bgt _021097fc
bge _02109868
cmp r4, #0
bgt _021097dc
beq _021098bc
b _0210989c
_021097dc:
cmp r4, #0xa
bgt _0210989c
cmp r4, #6
blt _0210989c
beq _02109828
cmp r4, #0xa
beq _02109834
b _0210989c
_021097fc:
cmp r4, #0x21
bgt _0210980c
beq _02109874
b _0210989c
_0210980c:
cmp r4, #0x23
bgt _0210989c
cmp r4, #0x22
blt _0210989c
cmpne r4, #0x23
beq _02109874
b _0210989c
_02109828:
ldr r1, _021099b8 ; =0x464f5243
bl func_ov00_020a8360
b _021098bc
_02109834:
ldr r0, _021099bc ; =data_027e0fbc
mov r1, #4
ldr r0, [r0]
blx func_ov00_020b804c
ldr r1, _021099bc ; =data_027e0fbc
mov r0, r5
ldr r1, [r1]
ldrsh r1, [r1]
bl func_ov00_020a820c
ldr r0, _021099c0 ; =data_027e103c
ldr r0, [r0]
bl func_ov05_02103ff0
b _021098bc
_02109868:
ldr r1, _021099c4 ; =0x424b4559
bl func_ov00_020a8360
b _021098bc
_02109874:
add r0, sp, #0
bl func_ov00_020c1500
sub r0, r4, #0x21
and r3, r0, #0xff
ldr r1, _021099c8 ; =0x43525953
add r2, sp, #0
mov r0, r5
strh r3, [sp, #2]
bl func_ov00_020a8390
b _021098bc
_0210989c:
mov r0, r4
blx func_ov00_020ad020
cmp r0, #0
bne _021098bc
ldr r0, _021099cc ; =data_027e0fb4
ldr r1, [r5, #0x74]
ldr r0, [r0]
blx func_ov00_020adcdc
_021098bc:
mov r0, r4
blx func_ov00_020ad020
cmp r0, #0
bne _02109914
ldr r0, _021099d0 ; =data_027e0c68
ldrb r0, [r0, #4]
cmp r0, #0
mov r0, r5
beq _02109908
bl func_ov00_020a8c78
ldrsh r2, [r5, #0x7a]
mov r1, #0
strh r2, [r0]
mov r0, r5
bl func_ov05_0211058c
mov r0, r5
bl func_ov00_020a8be8
bl func_ov00_020b4440
b _02109914
_02109908:
bl func_ov00_020a8c78
mov r1, #0
strh r1, [r0]
_02109914:
ldr r0, _021099d4 ; =data_027e0f64
ldr r0, [r0]
ldr r0, [r0, #4]
ldr r1, [r0, #0x15c]
cmp r1, #0xa
bne _02109934
mov r1, #0
bl func_ov00_020879e4
_02109934:
ldr r0, _021099d8 ; =data_027e0e58
add r7, r5, #0x88
ldr r4, [r0]
mov r6, #0
_02109944:
mov r0, r4
mov r1, r7
bl func_ov00_0207c444
add r6, r6, #1
cmp r6, #4
add r7, r7, #4
blo _02109944
mov r0, r5
bl func_ov00_020b2e84
mov r0, #0
strb r0, [r5, #0xa5]
ldrsh r0, [r5, #0x7e]
cmp r0, #2
bne _021099a4
mov r0, #2
bl func_01fffcd8
ldr r0, [r0, #4]
cmp r0, #6
bne _021099a4
ldrsh r1, [r5, #0x7e]
mov r0, r5
bl func_ov00_020a8138
add sp, sp, #0x14
ldmia sp!, {r4, r5, r6, r7, pc}
_021099a4:
mov r0, r5
mov r1, #0
bl func_ov00_020a8138
add sp, sp, #0x14
ldmia sp!, {r4, r5, r6, r7, pc}
.align 2, 0
arm_func_end func_ov05_021097b0
_021099b8: .word 0x464f5243
_021099bc: .word data_027e0fbc
_021099c0: .word data_027e103c
_021099c4: .word 0x424b4559
_021099c8: .word 0x43525953
_021099cc: .word data_027e0fb4
_021099d0: .word data_027e0c68
_021099d4: .word data_027e0f64
_021099d8: .word data_027e0e58
.global func_ov05_021099dc
arm_func_start func_ov05_021099dc
func_ov05_021099dc: ; 0x021099dc
stmdb sp!, {r4, r5, lr}
sub sp, sp, #0xc
ldr r1, _02109cb4 ; =data_027e0fb4
mov r5, r0
ldr r4, [r1]
mov r0, r4
bl func_ov00_020ad414
mov r1, r0
mov r0, r4
bl func_ov00_020ad428
ldrsh r1, [r5, #0x80]
mov r4, r0
cmp r1, #4
addls pc, pc, r1, lsl #2
b _02109cac
_02109a18: ; jump table
b _02109a2c ; case 0
b _02109a68 ; case 1
b _02109bd4 ; case 2
b _02109b04 ; case 3
b _02109c78 ; case 4
_02109a2c:
mov r0, r5
bl func_ov00_020b2d8c
cmp r0, #0
addeq sp, sp, #0xc
ldmeqia sp!, {r4, r5, pc}
mov r1, #1
strb r1, [r5, #0xa4]
mov r0, #0x14
strh r0, [r5, #0x34]
cmp r4, #0
strneb r1, [r4, #0x28f]
mov r0, #1
add sp, sp, #0xc
strh r0, [r5, #0x80]
ldmia sp!, {r4, r5, pc}
_02109a68:
ldrsh r0, [r5, #0x34]
cmp r0, #0
ble _02109ac0
mov r1, #0
ldr r3, _02109cb8 ; =0x00000e39
mov r0, r5
mov r2, r1
bl func_ov00_020a8238
mov r0, r5
bl func_ov00_020a8c58
ldr r2, _02109cbc ; =data_027e0d0c
mov r1, #0
ldr r3, [r2]
str r3, [r0]
ldr r3, [r2, #4]
str r3, [r0, #4]
ldr r2, [r2, #8]
str r2, [r0, #8]
mov r0, r5
bl func_ov05_0211058c
add sp, sp, #0xc
ldmia sp!, {r4, r5, pc}
_02109ac0:
mov r0, #0x5f
strh r0, [r5, #0x34]
ldr r0, [r5, #0x60]
sub r0, r0, #0x18
cmp r0, #1
movls r0, #3
addls sp, sp, #0xc
strlsh r0, [r5, #0x80]
ldmlsia sp!, {r4, r5, pc}
ldr r0, [r5, #0x68]
cmp r0, #0
beq _02109af4
bl func_ov17_02165ef8
_02109af4:
mov r0, #2
add sp, sp, #0xc
strh r0, [r5, #0x80]
ldmia sp!, {r4, r5, pc}
_02109b04:
mov r0, #0x5f
strh r0, [r5, #0x34]
mov r0, #0x10000
ldr r1, [r5, #0x24]
rsb r0, r0, #0
and r0, r1, r0
cmp r0, #0x1000000
bne _02109b48
ldr r0, [r5, #0x60]
add r1, r5, #0xc
cmp r0, #0x18
ldreq r2, _02109cc0 ; =0x00780335
ldr r0, _02109cc4 ; =data_027e0c68
ldrne r2, _02109cc8 ; =0x00780003
bl func_02036ce4
add sp, sp, #0xc
ldmia sp!, {r4, r5, pc}
_02109b48:
add r0, r5, #0xc
ldr r1, [r0]
ldr r1, [r1, #0x10]
blx r1
mov r0, #0x10000
ldr r1, [r5, #0x24]
rsb r0, r0, #0
and r0, r1, r0
cmp r0, #0x1000000
addne sp, sp, #0xc
ldmneia sp!, {r4, r5, pc}
ldr r0, [r5, #0x2c]
cmp r0, #0
bne _02109ba0
ldr r0, [r5, #0x68]
cmp r0, #0
beq _02109b90
bl func_ov17_02165ef8
_02109b90:
mov r0, #2
add sp, sp, #0xc
strh r0, [r5, #0x80]
ldmia sp!, {r4, r5, pc}
_02109ba0:
mov r1, #4
mov r0, r5
strh r1, [r5, #0x80]
bl func_ov00_020a8c4c
ldr r1, [r0, #8]
ldr r2, [r0, #4]
ldr r0, [r0]
add sp, sp, #0xc
str r0, [r5, #0x40]
str r2, [r5, #0x44]
add r0, r1, #0x1000
str r0, [r5, #0x48]
ldmia sp!, {r4, r5, pc}
_02109bd4:
ldrsh r0, [r5, #0x34]
cmp r0, #0x37
blt _02109c08
mov r1, #0
ldr r3, _02109cb8 ; =0x00000e39
mov r0, r5
mov r2, r1
bl func_ov00_020a8238
mov r0, r5
bl func_ov00_020a8c58
mov r1, #0x66
str r1, [r0, #4]
b _02109c60
_02109c08:
mov r0, r5
bl func_ov00_020a8be8
add r0, r0, #0x400
mov r1, #0
strh r1, [r0, #0xa2]
bl func_ov05_021055d0
mov r1, #0
strh r1, [r0, #0x5c]
bl func_ov05_02105d84
mov r1, #0
strh r1, [r0, #0xe]
cmp r4, #0
strneb r1, [r4, #0x11a]
mov r0, r5
strneb r1, [r4, #0x28f]
bl func_ov00_020a8d40
mov r4, r0
mov r0, r5
bl func_ov00_020a8c4c
ldr r1, [r0, #4]
mov r0, r4
bl func_ov00_020b542c
_02109c60:
ldr r1, _02109ccc ; =data_ov05_02112800
mov r0, r5
mov r2, #1
bl func_ov00_020a8a4c
add sp, sp, #0xc
ldmia sp!, {r4, r5, pc}
_02109c78:
ldrsh r1, [r5, #0x34]
mov r0, r5
add r1, r1, #1
strh r1, [r5, #0x34]
bl func_ov00_020b2d8c
cmp r0, #0
addeq sp, sp, #0xc
ldmeqia sp!, {r4, r5, pc}
mov r0, r5
bl func_ov00_020b2e84
mov r0, r5
mov r1, #0
bl func_ov00_020a8138
_02109cac:
add sp, sp, #0xc
ldmia sp!, {r4, r5, pc}
.align 2, 0
arm_func_end func_ov05_021099dc
_02109cb4: .word data_027e0fb4
_02109cb8: .word 0x00000e39
_02109cbc: .word data_027e0d0c
_02109cc0: .word 0x00780335
_02109cc4: .word data_027e0c68
_02109cc8: .word 0x00780003
_02109ccc: .word data_ov05_02112800
.global func_ov05_02109cd0
arm_func_start func_ov05_02109cd0
func_ov05_02109cd0: ; 0x02109cd0
stmdb sp!, {r3, r4, r5, r6, r7, lr}
sub sp, sp, #0x18
mov r7, r0
ldrsh r0, [r7, #0x3e]
mov r6, r1
mov r5, r2
mov r4, r3
cmp r0, #0
bge _02109d60
cmp r5, #0
moveq r0, #0
beq _02109d0c
ldr r0, [r6]
ldrb r0, [r0, #1]
sub r0, r0, #1
_02109d0c:
strh r0, [r7, #0x3e]
ldrsh r1, [r7, #0x3e]
ldr r2, [r6, #4]
mov r0, #0x24
smlabb r0, r1, r0, r2
ldr r2, [r0, #0xc]
ldmib r0, {r1, r3}
str r1, [r7, #0x40]
str r3, [r7, #0x44]
str r2, [r7, #0x48]
ldr r0, _02109e80 ; =data_027e0e60
add r1, r7, #0x40
ldr r0, [r0]
mov r2, #1
bl func_ov00_02083f44
str r0, [r7, #0x44]
mov r0, #0xd
str r0, [r7, #4]
str r4, [r7, #0x58]
mov r0, #0x78
strh r0, [r7, #0x34]
_02109d60:
mov r0, r7
bl func_ov00_020a8bc4
ldr r4, [r0]
mov r0, r7
bl func_ov00_020a8c4c
ldr r2, [r7, #0x58]
mov r1, r0
smull r3, r0, r2, r4
adds r2, r3, #0x800
adc r0, r0, #0
mov r2, r2, lsr #0xc
orr r2, r2, r0, lsl #20
mov r2, r2, lsl #0x10
add r0, r7, #0x40
mov r2, r2, asr #0x10
bl func_ov00_020b1e18
cmp r0, #0
beq _02109e3c
cmp r5, #0
beq _02109ddc
ldrsh r0, [r7, #0x3e]
cmp r0, #0
bne _02109dd0
mvn r0, #0
strh r0, [r7, #0x3e]
add sp, sp, #0x18
mov r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_02109dd0:
sub r0, r0, #1
strh r0, [r7, #0x3e]
b _02109e10
_02109ddc:
ldr r0, [r6]
ldrsh r1, [r7, #0x3e]
ldrb r0, [r0, #1]
sub r0, r0, #1
cmp r1, r0
bne _02109e08
mvn r0, #0
strh r0, [r7, #0x3e]
add sp, sp, #0x18
mov r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_02109e08:
add r0, r1, #1
strh r0, [r7, #0x3e]
_02109e10:
ldrsh r1, [r7, #0x3e]
ldr r2, [r6, #4]
mov r0, #0x24
smlabb r0, r1, r0, r2
ldr r2, [r0, #0xc]
ldmib r0, {r1, r3}
str r1, [r7, #0x40]
str r3, [r7, #0x44]
mov r0, #0x78
str r2, [r7, #0x48]
strh r0, [r7, #0x34]
_02109e3c:
ldrsh r0, [r7, #0x34]
cmp r0, #0
subgt r0, r0, #1
strgth r0, [r7, #0x34]
bgt _02109e74
mov r0, r7
bl func_ov00_020a8d40
mov r1, #0
strb r1, [r0, #0xbc]
mov r0, r7
bl func_ov00_020a8d40
ldrh r1, [r0, #0xa4]
bic r1, r1, #8
strh r1, [r0, #0xa4]
_02109e74:
mov r0, #1
add sp, sp, #0x18
ldmia sp!, {r3, r4, r5, r6, r7, pc}
.align 2, 0
arm_func_end func_ov05_02109cd0
_02109e80: .word data_027e0e60
.global func_ov05_02109e84
arm_func_start func_ov05_02109e84
func_ov05_02109e84: ; 0x02109e84
stmdb sp!, {r3, r4, lr}
sub sp, sp, #0xc
mov r4, r0
bl func_ov00_020a8bd8
cmp r0, #0
addne sp, sp, #0xc
ldmneia sp!, {r3, r4, pc}
mov r1, #0
mov r0, r4
strb r1, [r4, #0xa9]
bl func_ov00_020a8158
mov r0, r4
bl func_ov00_020a82ac
ldr r1, _02109f1c ; =data_ov00_020e62d8
mov r0, r4
mov r2, #1
bl func_ov00_020a8a4c
mov r3, #0
str r3, [sp]
str r3, [sp, #4]
mov r0, #1
str r0, [sp, #8]
ldr r0, _02109f20 ; =data_027e0fb4
ldr r1, _02109f24 ; =data_ov05_02112820
ldr r0, [r0]
ldr r2, _02109f28 ; =data_ov05_02112838
ldr r0, [r0, #0x120]
blx func_ov00_02079ffc
str r0, [r4, #0x9c]
mov r0, r4
bl func_ov00_020a8bf8
strh r0, [r4, #0x7e]
mov r0, r4
mov r1, #6
mov r2, #0x10
bl func_ov00_020a8148
add sp, sp, #0xc
ldmia sp!, {r3, r4, pc}
.align 2, 0
arm_func_end func_ov05_02109e84
_02109f1c: .word data_ov00_020e62d8
_02109f20: .word data_027e0fb4
_02109f24: .word data_ov05_02112820
_02109f28: .word data_ov05_02112838
.global func_ov05_02109f2c
arm_func_start func_ov05_02109f2c
func_ov05_02109f2c: ; 0x02109f2c
stmdb sp!, {r4, lr}
mov r4, r0
bl func_ov00_020a8bf8
cmp r0, #6
ldreq r0, [r4, #4]
cmpeq r0, #0x10
ldmneia sp!, {r4, pc}
ldrsh r0, [r4, #0x7e]
cmp r0, #2
bne _02109f78
mov r0, #2
bl func_01fffcd8
ldr r0, [r0, #4]
cmp r0, #6
bne _02109f78
ldrsh r1, [r4, #0x7e]
mov r0, r4
bl func_ov00_020a8138
ldmia sp!, {r4, pc}
_02109f78:
mov r0, r4
mov r1, #0
bl func_ov00_020a8138
ldmia sp!, {r4, pc}
arm_func_end func_ov05_02109f2c
.global func_ov05_02109f88
arm_func_start func_ov05_02109f88
func_ov05_02109f88: ; 0x02109f88
stmdb sp!, {r4, lr}
mov r4, r0
bl func_ov00_020aeef8
cmp r0, #0
beq _02109fdc
ldrsh r0, [r4, #0x7e]
cmp r0, #2
bne _02109fcc
mov r0, #2
bl func_01fffcd8
ldr r0, [r0, #4]
cmp r0, #6
bne _02109fcc
ldrsh r1, [r4, #0x7e]
mov r0, r4
bl func_ov00_020a8138
ldmia sp!, {r4, pc}
_02109fcc:
mov r0, r4
mov r1, #0
bl func_ov00_020a8138
ldmia sp!, {r4, pc}
_02109fdc:
ldrb r0, [r4, #0xa9]
cmp r0, #0
beq _0210a000
ldr r1, _0210a010 ; =data_ov00_020e62e8
mov r0, r4
bl func_ov00_020a8a08
mov r0, #0
strb r0, [r4, #0xa9]
ldmia sp!, {r4, pc}
_0210a000:
ldr r1, _0210a014 ; =data_ov00_020e62d8
mov r0, r4
bl func_ov00_020a8a08
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov05_02109f88
_0210a010: .word data_ov00_020e62e8
_0210a014: .word data_ov00_020e62d8
.global func_ov05_0210a018
arm_func_start func_ov05_0210a018
func_ov05_0210a018: ; 0x0210a018
stmdb sp!, {r4, lr}
ldr r1, _0210a060 ; =data_ov05_021127f0
mov r4, r0
mov r2, #1
bl func_ov00_020a8a4c
mov r1, #0x96
mov r0, r4
strh r1, [r4, #0x34]
bl func_ov00_020a8c4c
mov r2, r0
ldr r0, _0210a064 ; =data_ov00_020eec9c
ldr r1, _0210a068 ; =0x0000011d
bl func_ov00_020d7b20
mov r0, r4
mov r1, #6
mov r2, #0x11
bl func_ov00_020a8148
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov05_0210a018
_0210a060: .word data_ov05_021127f0
_0210a064: .word data_ov00_020eec9c
_0210a068: .word 0x0000011d
.global func_ov05_0210a06c
arm_func_start func_ov05_0210a06c
func_ov05_0210a06c: ; 0x0210a06c
stmdb sp!, {r4, lr}
ldr r1, _0210a0b8 ; =data_ov05_021127f0
mov r2, #1
mov r4, r0
bl func_ov00_020a8a4c
ldr r1, _0210a0bc ; =0x00000aab
mov r0, r4
mov r2, r1
mov r3, r1
bl func_ov00_020a8238
ldrsh r0, [r4, #0x34]
cmp r0, #0
subgt r0, r0, #1
strgth r0, [r4, #0x34]
ldmgtia sp!, {r4, pc}
mov r0, r4
mov r1, #0
bl func_ov00_020a8138
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov05_0210a06c
_0210a0b8: .word data_ov05_021127f0
_0210a0bc: .word 0x00000aab
.global func_ov05_0210a0c0
arm_func_start func_ov05_0210a0c0
func_ov05_0210a0c0: ; 0x0210a0c0
stmdb sp!, {r3, r4, r5, lr}
mov r5, r0
mov r4, r1
bl func_ov00_020a8bf8
cmp r0, #6
ldreq r0, [r5, #4]
cmpeq r0, #0xe
mov r0, r5
beq _0210a0fc
mov r1, #6
mov r2, #0xe
strh r4, [r5, #0x7c]
bl func_ov00_020a8148
mov r0, #0
ldmia sp!, {r3, r4, r5, pc}
_0210a0fc:
bl func_ov00_020a8dcc
cmp r0, #0x4f
movne r0, #1
moveq r0, #0
ldmia sp!, {r3, r4, r5, pc}
arm_func_end func_ov05_0210a0c0
.global func_ov05_0210a110
arm_func_start func_ov05_0210a110
func_ov05_0210a110: ; 0x0210a110
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #0xd0
mov r5, r0
ldr r2, [r5, #4]
mov r4, r1
sub r1, r2, #9
cmp r1, #7
addls pc, pc, r1, lsl #2
b _0210a4ac
_0210a134: ; jump table
b _0210a154 ; case 0
b _0210a4ac ; case 1
b _0210a208 ; case 2
b _0210a4ac ; case 3
b _0210a4ac ; case 4
b _0210a2e4 ; case 5
b _0210a4ac ; case 6
b _0210a44c ; case 7
_0210a154:
bl func_ov00_020a8db8
cmp r0, #0x4c
addne sp, sp, #0xd0
ldmneia sp!, {r4, r5, r6, pc}
ldr r0, _0210a4b4 ; =data_027e0fb4
mov r1, #0xb
ldr r0, [r0]
bl func_ov00_020ad52c
mov r1, r0
add r0, sp, #0x74
blx func_ov00_020a9588
add r6, sp, #0x74
ldr r1, _0210a4b8 ; =data_ov05_02112308
mov r0, r6
bl func_ov00_020a990c
mov r4, r0
mov r0, r5
bl func_ov00_020a8d50
cmp r0, #0x4b000
mov r0, r6
ldr r1, [r0]
bge _0210a1c4
ldr r1, [r1, #8]
blx r1
mov r1, r4
mov r2, #0x1f
bl func_02019570
b _0210a1d8
_0210a1c4:
ldr r1, [r1, #8]
blx r1
mov r1, r4
mov r2, #0
bl func_02019570
_0210a1d8:
mov r3, #0x1d
add r1, sp, #0x1c
mov r0, #0x14
mov r2, #1
str r3, [sp, #0x1c]
bl func_01ffa9fc
mov r0, r6
bl func_ov00_020b41c4
add r0, sp, #0x74
blx func_ov00_020a95a4
add sp, sp, #0xd0
ldmia sp!, {r4, r5, r6, pc}
_0210a208:
bl func_ov00_020a8c4c
ldr r3, _0210a4bc ; =data_ov05_02112770
add ip, sp, #0x68
ldmia r0, {r0, r1, r2}
stmia ip, {r0, r1, r2}
ldr r1, [sp, #0x68]
ldr r0, [r3, #0x20]
ldr r2, [sp, #0x6c]
add r0, r1, r0
str r0, [sp, #0x68]
ldr r0, [r3, #0x24]
ldr r1, [sp, #0x70]
add r0, r2, r0
str r0, [sp, #0x6c]
ldr r0, [r3, #0x28]
ldr r3, _0210a4c0 ; =data_02050f54
add r0, r1, r0
str r0, [sp, #0x70]
ldrh r1, [r5, #0x78]
add r0, sp, #0x44
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
ldr r0, [r5, #0x74]
cmp r0, #0x3e
bgt _0210a29c
addge sp, sp, #0xd0
ldmgeia sp!, {r4, r5, r6, pc}
cmp r0, #0
addeq sp, sp, #0xd0
ldmeqia sp!, {r4, r5, r6, pc}
b _0210a2c4
_0210a29c:
sub r0, r0, #0x6b
cmp r0, #5
addls pc, pc, r0, lsl #2
b _0210a2c4
_0210a2ac: ; jump table
b _0210a4ac ; case 0
b _0210a4ac ; case 1
b _0210a4ac ; case 2
b _0210a4ac ; case 3
b _0210a4ac ; case 4
b _0210a4ac ; case 5
_0210a2c4:
ldr r0, _0210a4c4 ; =data_ov00_020e9c88
ldr r3, _0210a4c8 ; =func_ov05_0210a4d4
add r2, sp, #0x68
mov r1, r4
str r5, [sp]
bl func_ov00_0207b89c
add sp, sp, #0xd0
ldmia sp!, {r4, r5, r6, pc}
_0210a2e4:
ldr r0, _0210a4b4 ; =data_027e0fb4
mov r1, #0
ldr r3, [r0]
mov r2, r1
mov r0, #0x11
ldr r4, [r3, #0x114]
bl func_01ffa9fc
mov r3, #0x1e
add r1, sp, #0x18
mov r0, #0x14
mov r2, #1
str r3, [sp, #0x18]
bl func_01ffa9fc
add r0, sp, #0x38
bl func_ov00_020b1d3c
mov r2, #1
add r1, sp, #0x14
mov r0, #0x12
str r2, [sp, #0x14]
bl func_01ffa9fc
mov r0, r5
mov r1, #0
bl func_ov00_020a8b3c
cmp r0, #0
bne _0210a360
mov r0, r5
bl func_ov00_020a8dcc
ldr r1, _0210a4bc ; =data_ov05_02112770
ldr r1, [r1, #0x70]
cmp r1, r0
bne _0210a408
_0210a360:
mov r1, #0
mov r2, r1
mov r0, #0x11
bl func_01ffa9fc
mov r3, #0x1d
add r1, sp, #0x10
mov r0, #0x14
mov r2, #1
str r3, [sp, #0x10]
bl func_01ffa9fc
add r0, sp, #0x2c
bl func_ov00_020b1d3c
mov r2, #1
add r1, sp, #0xc
mov r0, #0x12
str r2, [sp, #0xc]
bl func_01ffa9fc
ldr r1, [sp, #0x38]
ldr r0, [sp, #0x2c]
ldr r2, [sp, #0x40]
add r0, r1, r0
ldr r1, [sp, #0x34]
add r0, r0, r0, lsr #31
add r1, r2, r1
add r1, r1, r1, lsr #31
mov r0, r0, asr #0x1
mov r1, r1, asr #0x1
str r0, [sp, #0x38]
add r0, sp, #0x38
str r1, [sp, #0x40]
ldr r1, _0210a4cc ; =data_ov05_021122f0
mov r2, r0
bl func_01ff9bc4
mov r0, r5
bl func_ov00_020a8c78
mov r1, r0
ldrsh r1, [r1]
mov r0, r4
add r2, sp, #0x38
bl func_ov00_020b413c
add sp, sp, #0xd0
ldmia sp!, {r4, r5, r6, pc}
_0210a408:
mov r0, r5
bl func_ov00_020a8d50
cmp r0, #0x28000
addlt sp, sp, #0xd0
ldmltia sp!, {r4, r5, r6, pc}
add r0, sp, #0x38
ldr r1, _0210a4d0 ; =data_ov05_021122fc
mov r2, r0
bl func_01ff9bc4
mov r0, r5
bl func_ov00_020a8c78
ldrsh r1, [r0]
add r2, sp, #0x38
mov r0, r4
bl func_ov00_020b413c
add sp, sp, #0xd0
ldmia sp!, {r4, r5, r6, pc}
_0210a44c:
mov r2, #0
ldr r1, [r5, #0x9c]
add r0, sp, #0x20
mov r3, r2
blx func_ov00_020bd618
mov r1, #0
mov r2, r1
mov r0, #0x11
bl func_01ffa9fc
mov r3, #0x1e
add r1, sp, #8
mov r0, #0x14
mov r2, #1
str r3, [sp, #8]
bl func_01ffa9fc
add r0, sp, #0x20
bl func_ov00_020b41c4
mov r2, #1
add r1, sp, #4
mov r0, #0x12
str r2, [sp, #4]
bl func_01ffa9fc
add r0, sp, #0x20
blx func_ov00_020b3ea8
_0210a4ac:
add sp, sp, #0xd0
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
arm_func_end func_ov05_0210a110
_0210a4b4: .word data_027e0fb4
_0210a4b8: .word data_ov05_02112308
_0210a4bc: .word data_ov05_02112770
_0210a4c0: .word data_02050f54
_0210a4c4: .word data_ov00_020e9c88
_0210a4c8: .word func_ov05_0210a4d4
_0210a4cc: .word data_ov05_021122f0
_0210a4d0: .word data_ov05_021122fc
.global func_ov05_0210a4d4
arm_func_start func_ov05_0210a4d4
func_ov05_0210a4d4: ; 0x0210a4d4
ldr ip, _0210a4dc ; =func_ov05_0210a4e0
bx ip
.align 2, 0
arm_func_end func_ov05_0210a4d4
_0210a4dc: .word func_ov05_0210a4e0
.global func_ov05_0210a4e0
arm_func_start func_ov05_0210a4e0
func_ov05_0210a4e0: ; 0x0210a4e0
stmdb sp!, {r4, r5, lr}
sub sp, sp, #0x3c
mov r4, r0
bl func_ov00_020a8c4c
ldr r3, _0210a600 ; =data_ov05_02112770
add ip, sp, #0x30
ldmia r0, {r0, r1, r2}
stmia ip, {r0, r1, r2}
ldr r1, [sp, #0x30]
ldr r0, [r3, #0x20]
ldr r2, [sp, #0x34]
add r0, r1, r0
str r0, [sp, #0x30]
ldr r0, [r3, #0x24]
ldr r1, [sp, #0x38]
add r0, r2, r0
str r0, [sp, #0x34]
ldr r0, [r3, #0x28]
ldr r3, _0210a604 ; =data_02050f54
add r0, r1, r0
str r0, [sp, #0x38]
ldrh r1, [r4, #0x78]
add r0, sp, #0xc
mov r1, r1, asr #0x4
mov r2, r1, lsl #0x1
add r1, r2, #1
mov r4, r2, lsl #0x1
mov r2, r1, lsl #0x1
ldrsh r1, [r3, r4]
ldrsh r2, [r3, r2]
blx func_01ff8214
ldr r1, _0210a608 ; =data_027e0fb4
ldr r0, _0210a60c ; =data_ov00_020e9360
ldr r2, [r1]
mov r1, #2
ldr r5, [r2, #0x114]
bl func_ov00_02079e68
mov r4, r0
mov r0, r5
ldr r1, [r0]
ldr r1, [r1, #8]
blx r1
mov r1, r4
bl func_020197bc
mov r0, r5
ldr r1, [r0]
ldr r1, [r1, #8]
blx r1
mov r1, #1
bl func_0201987c
ldr r0, _0210a608 ; =data_027e0fb4
add r1, sp, #0
ldr r0, [r0]
blx func_ov00_020adca8
cmp r0, #0
mov r0, r5
beq _0210a5e4
ldr r4, [r0]
add r1, sp, #0
ldr r4, [r4, #0x10]
add r2, sp, #0xc
add r3, sp, #0x30
blx r4
add sp, sp, #0x3c
ldmia sp!, {r4, r5, pc}
_0210a5e4:
ldr r3, [r0]
add r1, sp, #0xc
ldr r3, [r3, #0x14]
add r2, sp, #0x30
blx r3
add sp, sp, #0x3c
ldmia sp!, {r4, r5, pc}
.align 2, 0
arm_func_end func_ov05_0210a4e0
_0210a600: .word data_ov05_02112770
_0210a604: .word data_02050f54
_0210a608: .word data_027e0fb4
_0210a60c: .word data_ov00_020e9360
.global func_ov05_0210a610
arm_func_start func_ov05_0210a610
func_ov05_0210a610: ; 0x0210a610
mov r1, #1
strb r1, [r0, #4]
mov r0, #0
bx lr
arm_func_end func_ov05_0210a610
.global func_ov05_0210a620
arm_func_start func_ov05_0210a620
func_ov05_0210a620: ; 0x0210a620
mov r1, #1
strb r1, [r0, #4]
mov r0, #0
bx lr
arm_func_end func_ov05_0210a620
.global func_ov05_0210a630
arm_func_start func_ov05_0210a630
func_ov05_0210a630: ; 0x0210a630
mov r1, #1
strb r1, [r0, #4]
mov r0, #0
bx lr
arm_func_end func_ov05_0210a630
.global func_ov05_0210a640
arm_func_start func_ov05_0210a640
func_ov05_0210a640: ; 0x0210a640
mov r0, #0
bx lr
arm_func_end func_ov05_0210a640
.global func_ov05_0210a648
arm_func_start func_ov05_0210a648
func_ov05_0210a648: ; 0x0210a648
stmdb sp!, {r4, lr}
mov r4, r0
bl func_ov05_02106634
bl func_ov00_020aee84
ldr r0, [r4, #4]
ldr r1, _0210a68c ; =data_ov05_021128c4
add r1, r1, r0, lsl #3
ldr r0, [r1, #4]
tst r0, #1
add r0, r4, r0, asr #1
ldreq r1, [r1]
beq _0210a684
ldr r2, [r0]
ldr r1, [r1]
ldr r1, [r2, r1]
_0210a684:
blx r1
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov05_0210a648
_0210a68c: .word data_ov05_021128c4
.global func_ov05_0210a690
arm_func_start func_ov05_0210a690
func_ov05_0210a690: ; 0x0210a690
stmdb sp!, {r4, lr}
mov r1, #0
mov r4, r0
bl func_ov00_020a8b3c
cmp r0, #0
ldmeqia sp!, {r4, pc}
mov r0, r4
bl func_ov00_020a8ca4
cmp r0, #0
beq _0210a700
mov r0, r4
bl func_ov00_020a8ca4
ldr r1, [r0]
ldr r1, [r1, #0x58]
blx r1
cmp r0, #0
beq _0210a700
mov r0, r4
bl func_ov00_020a8c4c
mov r2, r0
ldr r0, _0210a710 ; =data_ov00_020eec9c
mov r1, #0xcb
bl func_ov00_020d7a84
mov r1, #2
mov r0, r4
mov r2, r1
bl func_ov00_020a8148
ldmia sp!, {r4, pc}
_0210a700:
mov r0, r4
mov r1, #0
bl func_ov00_020a8138
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov05_0210a690
_0210a710: .word data_ov00_020eec9c
.global func_ov05_0210a714
arm_func_start func_ov05_0210a714
func_ov05_0210a714: ; 0x0210a714
stmdb sp!, {r4, lr}
mov r1, #0
mov r4, r0
bl func_ov00_020a8b3c
cmp r0, #0
mov r0, r4
bne _0210a750
bl func_ov00_020a8c58
mov r1, #0
str r1, [r0]
mov r0, r4
bl func_ov00_020a8c58
mov r1, #0
str r1, [r0, #8]
b _0210a758
_0210a750:
mov r1, #0
bl func_ov00_020a8138
_0210a758:
mov r0, r4
bl func_ov00_020a8cc4
mov r2, r0
mov r0, r4
mov r1, #1
bl func_ov00_020a86ec
ldmia sp!, {r4, pc}
arm_func_end func_ov05_0210a714
.global func_ov05_0210a774
arm_func_start func_ov05_0210a774
func_ov05_0210a774: ; 0x0210a774
stmdb sp!, {r4, lr}
mov r1, #1
mov r4, r0
bl func_ov00_020a8b3c
cmp r0, #0
mov r0, r4
beq _0210a798
bl func_ov00_020a8994
ldmia sp!, {r4, pc}
_0210a798:
bl func_ov00_020a8d6c
cmp r0, #0x2000
ldmltia sp!, {r4, pc}
add r0, r4, #0x18
bl func_01ff9cec
mov r1, r0
cmp r1, #0x5000
ldr r0, [r4, #4]
movgt r1, #0x5000
cmp r0, #4
moveq r2, #1
movne r2, #0
mov r0, r4
bl func_ov00_020ab9b8
ldmia sp!, {r4, pc}
arm_func_end func_ov05_0210a774
.global func_ov05_0210a7d4
arm_func_start func_ov05_0210a7d4
func_ov05_0210a7d4: ; 0x0210a7d4
stmdb sp!, {r3, r4, r5, r6, r7, lr}
sub sp, sp, #0x98
mov r1, #0
mov r6, r0
bl func_ov00_020a8b3c
cmp r0, #0
addeq sp, sp, #0x98
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
mov r0, r6
bl func_ov00_020a8c4c
add r2, sp, #0x2c
add r1, r6, #0x18
bl func_01ff9bc4
mov r0, r6
bl func_ov00_020a8ca4
movs r4, r0
bne _0210a830
mov r0, r6
bl func_ov00_020a8cc4
mvn r1, #0
str r1, [r0]
str r1, [r0, #4]
b _0210aa98
_0210a830:
ldr r1, _0210aad8 ; =data_027e0e60
add r0, sp, #0x14
ldr r1, [r1]
add r2, sp, #0x2c
bl func_ov00_02083a1c
ldr r0, _0210aad8 ; =data_027e0e60
add r1, sp, #0x14
ldr r0, [r0]
mov r5, #0
bl func_ov00_020840c4
cmp r0, #0
beq _0210a904
ldrsb r0, [r0, #0x12]
cmp r0, #0xa
bne _0210a904
ldr r1, [r4, #4]
ldr r0, _0210aadc ; =0x424f4d42
cmp r1, r0
ldr r0, _0210aae0 ; =data_027e0fb4
movne r5, #1
ldr r0, [r0]
ldr r0, [r0]
sub r0, r0, #9
cmp r0, #1
ldr r0, _0210aae4 ; =0x43525953
movls r5, #0
cmp r1, r0
bne _0210a904
ldr r1, _0210aad8 ; =data_027e0e60
mov r0, r6
ldr r7, [r1]
bl func_ov00_020a8cc4
ldr r2, [r0]
add r1, sp, #0x2c
mov r0, r7
bl func_ov00_0208583c
cmp r0, #0
blt _0210a904
mov r0, r4
ldr r2, [r0]
ldr r1, _0210aae8 ; =data_027e0d0c
ldr r2, [r2, #0x5c]
blx r2
cmp r0, #0
beq _0210a904
add r1, sp, #0x2c
mov r0, r4
bl func_ov17_0215f874
mov r0, r6
bl func_ov00_020a8cc4
mvn r1, #0
str r1, [r0]
str r1, [r0, #4]
_0210a904:
mov r0, r6
bl func_ov00_020a8cc4
ldr r0, [r0]
cmp r0, #0
blt _0210aa98
cmp r5, #0
bne _0210aa98
ldr r1, [r4, #4]
ldr r0, _0210aaec ; =0x424d5459
mov r5, #1
cmp r1, r0
beq _0210aa20
ldr r0, _0210aad8 ; =data_027e0e60
add r1, sp, #0x2c
ldr r0, [r0]
mov r2, #0
bl func_ov00_02083ee0
ldr r1, [sp, #0x30]
cmp r1, r0
movlt r5, #0
cmp r5, #0
beq _0210aa20
ldr r3, _0210aaf0 ; =0x0000ffff
mov r2, #0
ldr r1, _0210aaf4 ; =data_ov05_0211291c
mov r0, r6
strh r3, [sp, #0x5c]
strh r3, [sp, #0x5e]
strh r3, [sp, #0x60]
strh r3, [sp, #0x62]
strh r2, [sp, #0x64]
strb r2, [sp, #0x86]
strb r2, [sp, #0x87]
strb r2, [sp, #0x88]
strb r2, [sp, #0x89]
strb r2, [sp, #0x90]
strb r2, [sp, #0x91]
strb r2, [sp, #0x92]
strb r2, [sp, #0x93]
strb r2, [sp, #0x94]
strb r2, [sp, #0x95]
str r1, [sp, #0x18]
strb r2, [sp, #0x1c]
bl func_ov00_020a8c4c
ldr r1, [r0]
add lr, sp, #0x18
str r1, [sp, #0x20]
ldr r1, [r0, #4]
mov ip, #0
str r1, [sp, #0x24]
ldr r1, [r0, #8]
ldr r0, _0210aad8 ; =data_027e0e60
str r1, [sp, #0x28]
ldr r2, [r4, #0x98]
add r1, sp, #0x38
str r2, [sp]
ldr r3, [r4, #8]
add r2, sp, #0x2c
str r3, [sp, #4]
ldrh r7, [r4, #0x9c]
add r3, sp, #0x20
str r7, [sp, #8]
str lr, [sp, #0xc]
str ip, [sp, #0x10]
ldr r0, [r0]
bl func_01ffbf5c
ldrb r0, [sp, #0x1c]
cmp r0, #0
add r0, sp, #0x18
movne r5, #0
bl func_ov00_02081f4c
_0210aa20:
ldr r0, [r4, #0x4c]
cmp r5, #0
str r0, [sp, #0x30]
beq _0210aa48
ldr r0, [sp, #0x2c]
str r0, [r4, #0x48]
ldr r0, [sp, #0x30]
str r0, [r4, #0x4c]
ldr r0, [sp, #0x34]
b _0210aa64
_0210aa48:
mov r0, r6
bl func_ov00_020a8c4c
ldr r1, [r0]
str r1, [r4, #0x48]
ldr r1, [r0, #4]
str r1, [r4, #0x4c]
ldr r0, [r0, #8]
_0210aa64:
str r0, [r4, #0x50]
mov r0, r4
ldr r2, [r0]
ldr r1, _0210aae8 ; =data_027e0d0c
ldr r2, [r2, #0x5c]
blx r2
cmp r0, #0
beq _0210aa98
mov r0, r6
bl func_ov00_020a8cc4
mvn r1, #0
str r1, [r0]
str r1, [r0, #4]
_0210aa98:
mov r0, r6
bl func_ov00_020a8cc4
ldr r0, [r0]
cmp r0, #0
bge _0210aac0
mov r0, r6
mov r1, #0
bl func_ov00_020a8138
add sp, sp, #0x98
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_0210aac0:
mov r1, #2
mov r0, r6
str r1, [r6, #4]
bl func_ov00_020a8138
add sp, sp, #0x98
ldmia sp!, {r3, r4, r5, r6, r7, pc}
.align 2, 0
arm_func_end func_ov05_0210a7d4
_0210aad8: .word data_027e0e60
_0210aadc: .word 0x424f4d42
_0210aae0: .word data_027e0fb4
_0210aae4: .word 0x43525953
_0210aae8: .word data_027e0d0c
_0210aaec: .word 0x424d5459
_0210aaf0: .word 0x0000ffff
_0210aaf4: .word data_ov05_0211291c
.global func_ov05_0210aaf8
arm_func_start func_ov05_0210aaf8
func_ov05_0210aaf8: ; 0x0210aaf8
ldr ip, _0210ab04 ; =func_01fffcd8
mov r0, #3
bx ip
.align 2, 0
arm_func_end func_ov05_0210aaf8
_0210ab04: .word func_01fffcd8
.global func_ov05_0210ab08
arm_func_start func_ov05_0210ab08
func_ov05_0210ab08: ; 0x0210ab08
stmdb sp!, {r4, lr}
mov r4, r0
bl func_ov00_02081f4c
mov r0, r4
ldmia sp!, {r4, pc}
arm_func_end func_ov05_0210ab08
.global func_ov05_0210ab1c
arm_func_start func_ov05_0210ab1c
func_ov05_0210ab1c: ; 0x0210ab1c
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #0x24
mov r6, r0
bl func_ov00_020a8d40
mov r2, #1
ldr r1, _0210ad68 ; =data_027e0fe4
strb r2, [r0, #0xba]
ldr r0, [r1]
add r1, r6, #0x10
bl func_ov00_020c3674
mov r5, r0
mov r0, r6
mov r1, #0
bl func_ov05_0211058c
mov r0, r6
bl func_ov00_020a8bb8
cmp r0, #0
beq _0210ab84
ldr r0, _0210ad6c ; =data_027e0d38
ldr r0, [r0]
add r0, r0, #0xc
bl func_ov00_020a5e9c
cmp r0, #0x33
bne _0210ab84
mov r0, r6
bl func_ov05_021107fc
_0210ab84:
ldr r0, _0210ad70 ; =data_027e0f74
ldr r0, [r0]
bl func_ov00_02097750
cmp r0, #0
bne _0210aba8
cmp r5, #0
ldrneb r0, [r5, #0x11c]
cmpne r0, #0
beq _0210ad54
_0210aba8:
cmp r5, #0
addeq sp, sp, #0x24
ldmeqia sp!, {r4, r5, r6, r7, pc}
mov r0, r5
ldr r2, [r0]
add r1, sp, #0x18
ldr r2, [r2, #0x34]
blx r2
ldr r0, _0210ad74 ; =data_027e0fb4
mov r1, #0
ldr r0, [r0]
bl func_ov00_020ad428
ldr r1, _0210ad74 ; =data_027e0fb4
mov r4, r0
ldr r7, [r1]
mov r0, r7
bl func_ov00_020ad414
mov r1, r0
mov r0, r7
bl func_ov00_020ad428
cmp r5, r4
bne _0210ac7c
mov r0, #0x10000
ldr r1, [r4, #0x23c]
rsb r0, r0, #0
and r0, r1, r0
cmp r0, #0x1000000
beq _0210ac7c
ldrb r0, [r4, #0x28c]
cmp r0, #0
bne _0210ac7c
mov r0, r6
bl func_ov00_020a8c4c
ldr r1, [r4, #0x48]
ldr r0, [r0]
cmp r1, r0
mov r0, r6
blt _0210ac54
bl func_ov00_020a8c78
ldr r1, _0210ad78 ; =0x00000aab
ldr r2, _0210ad7c ; =0x0000071c
bl func_0202b154
b _0210ac64
_0210ac54:
bl func_ov00_020a8c78
ldr r1, _0210ad80 ; =0xfffff555
ldr r2, _0210ad7c ; =0x0000071c
bl func_0202b154
_0210ac64:
add r1, sp, #0x18
mov r0, r6
mov r2, #0x800
bl func_ov00_020a81fc
add sp, sp, #0x24
ldmia sp!, {r4, r5, r6, r7, pc}
_0210ac7c:
ldr r0, _0210ad74 ; =data_027e0fb4
ldr r4, [r0]
mov r0, r4
bl func_ov00_020ad414
mov r1, r0
mov r0, r4
bl func_ov00_020ad428
cmp r0, r5
mov r0, r6
beq _0210ad00
bl func_ov00_020a8c4c
mov r1, r0
add r0, sp, #0x18
add r2, sp, #0xc
bl func_01ff9bf8
ldr r0, [sp, #0xc]
ldr r1, [sp, #0x14]
bl func_01ffa0f4
mov r1, r0, lsl #0x10
mov r0, r6
mov r4, r1, asr #0x10
bl func_ov00_020a8c78
ldr r2, _0210ad7c ; =0x0000071c
mov r1, r4
bl func_0202b154
ldr r2, _0210ad84 ; =0x000004cd
mov r0, r6
add r1, sp, #0x18
bl func_ov00_020a81fc
mov r0, r6
bl func_ov00_020aa818
add sp, sp, #0x24
ldmia sp!, {r4, r5, r6, r7, pc}
_0210ad00:
bl func_ov00_020a8c4c
mov r1, r0
add r0, sp, #0x18
add r2, sp, #0
bl func_01ff9bf8
ldr r0, [sp]
ldr r1, [sp, #8]
bl func_01ffa0f4
mov r1, r0, lsl #0x10
mov r0, r6
mov r4, r1, asr #0x10
bl func_ov00_020a8c78
ldr r2, _0210ad7c ; =0x0000071c
mov r1, r4
bl func_0202b154
ldr r2, _0210ad84 ; =0x000004cd
mov r0, r6
add r1, sp, #0x18
bl func_ov00_020a81fc
add sp, sp, #0x24
ldmia sp!, {r4, r5, r6, r7, pc}
_0210ad54:
mov r0, r6
mov r1, #0
bl func_ov00_020a8138
add sp, sp, #0x24
ldmia sp!, {r4, r5, r6, r7, pc}
.align 2, 0
arm_func_end func_ov05_0210ab1c
_0210ad68: .word data_027e0fe4
_0210ad6c: .word data_027e0d38
_0210ad70: .word data_027e0f74
_0210ad74: .word data_027e0fb4
_0210ad78: .word 0x00000aab
_0210ad7c: .word 0x0000071c
_0210ad80: .word 0xfffff555
_0210ad84: .word 0x000004cd
.global func_ov05_0210ad88
arm_func_start func_ov05_0210ad88
func_ov05_0210ad88: ; 0x0210ad88
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x100
mov r5, r0
bl func_ov00_020a8d40
mov r2, #0
ldr r1, _0210b280 ; =data_027e0fe4
strb r2, [r0, #0xbc]
ldr r0, [r1]
add r1, r5, #0x10
bl func_ov00_020c3674
movs r4, r0
beq _0210ade0
ldr r0, _0210b284 ; =data_027e0f74
ldr r0, [r0]
bl func_ov00_02097738
cmp r0, #0
bne _0210ade0
mov r0, r5
bl func_ov00_020a8d40
ldrsh r0, [r0, #0x5c]
cmp r0, #0
ble _0210ae00
_0210ade0:
mov r0, r5
bl func_ov00_020a8ce0
mov r1, #0
str r1, [r0]
mov r0, r5
bl func_ov00_020a8138
add sp, sp, #0x100
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
_0210ae00:
ldr r0, [r5, #0xc]
cmp r0, #0
movle r0, #7
strle r0, [r5, #0xac]
ldrb r0, [r4, #0x158]
cmp r0, #0
beq _0210ae50
mov r0, r5
bl func_ov00_020a8c78
ldrsh r0, [r0]
bl func_0202bbbc
bl func_0202bb78
mov r1, r0
mov r0, r4
ldr r2, [r0]
ldr r2, [r2, #0xb4]
blx r2
cmp r0, #0
movne r0, #1
bne _0210ae54
_0210ae50:
mov r0, #0
_0210ae54:
strb r0, [r5, #0xb1]
ldrb r0, [r4, #0x159]
cmp r0, #0
beq _0210ae94
mov r0, r5
bl func_ov00_020a8c78
ldrsh r0, [r0]
bl func_0202bbbc
mov r1, r0
mov r0, r4
ldr r2, [r0]
ldr r2, [r2, #0xb4]
blx r2
cmp r0, #0
movne r1, #1
bne _0210ae98
_0210ae94:
mov r1, #0
_0210ae98:
mov r0, r5
strb r1, [r5, #0xb0]
bl func_ov00_020a8d40
add r0, r0, #0x20
add r3, sp, #0x34
ldmia r0, {r0, r1, r2}
stmia r3, {r0, r1, r2}
mov r0, r5
bl func_ov00_020a8c78
ldrh r0, [r0]
ldr r3, _0210b288 ; =data_02050f54
mov r1, #0x800
mov r0, r0, asr #0x4
mov r7, r0, lsl #0x1
mov r2, r7, lsl #0x1
ldrsh r6, [r3, r2]
add r2, r7, #1
mov r2, r2, lsl #0x1
ldrsh r2, [r3, r2]
mov r3, r6, asr #0x1f
mov r3, r3, lsl #0xc
orr r3, r3, r6, lsr #20
adds r6, r1, r6, lsl #12
ldr r0, [sp, #0x34]
adc r3, r3, #0
mov r6, r6, lsr #0xc
orr r6, r6, r3, lsl #20
add r0, r0, r6
str r0, [sp, #0x34]
adds r0, r1, r2, lsl #12
mov r1, r0, lsr #0xc
mov r0, #0
strh r0, [sp, #0xcc]
strb r0, [sp, #0xee]
strb r0, [sp, #0xef]
strb r0, [sp, #0xf0]
strb r0, [sp, #0xf1]
strb r0, [sp, #0xf8]
strb r0, [sp, #0xf9]
strb r0, [sp, #0xfa]
strb r0, [sp, #0xfb]
strb r0, [sp, #0xfc]
strb r0, [sp, #0xfd]
mov r0, r2, asr #0x1f
mov r0, r0, lsl #0xc
orr r0, r0, r2, lsr #20
adc r0, r0, #0
ldr r3, [sp, #0x3c]
orr r1, r1, r0, lsl #20
add r0, r3, r1
ldr r1, _0210b28c ; =0x0000ffff
str r0, [sp, #0x3c]
mov r0, r5
strh r1, [sp, #0xc4]
strh r1, [sp, #0xc6]
strh r1, [sp, #0xc8]
strh r1, [sp, #0xca]
add r1, sp, #0xa0
add r2, sp, #0x34
bl func_ov00_020a8c34
ldrb r0, [sp, #0xfa]
cmp r0, #0
moveq r1, #1
ldrb r0, [r5, #0xb0]
movne r1, #0
tst r0, r1
movne r1, #1
moveq r1, #0
mov r0, r5
strb r1, [r5, #0xb0]
bl func_ov00_020a8d40
add r0, r0, #0x20
add r3, sp, #0x28
ldmia r0, {r0, r1, r2}
stmia r3, {r0, r1, r2}
mov r0, r5
bl func_ov00_020a8c78
ldrh r1, [r0]
mov r0, #0x800
mvn lr, #0
mov r1, r1, asr #0x4
mov r1, r1, lsl #0x1
sub ip, r0, #0x1800
add r0, r1, #1
mov r2, r1, lsl #0x1
ldr r1, _0210b288 ; =data_02050f54
mov r0, r0, lsl #0x1
ldrsh r7, [r1, r2]
ldrsh r6, [r1, r0]
mov r0, #0
mov r3, lr, lsl #0xc
umull sb, r8, r7, r3
mla r8, r7, lr, r8
mov fp, r7, asr #0x1f
adds r7, sb, #0x800
mla r8, fp, r3, r8
ldr sl, [sp, #0x28]
adc r3, r8, #0
mov r7, r7, lsr #0xc
orr r7, r7, r3, lsl #20
add r3, sl, r7
umull r8, r7, r6, ip
strh r0, [sp, #0x6c]
strb r0, [sp, #0x8e]
strb r0, [sp, #0x8f]
strb r0, [sp, #0x90]
strb r0, [sp, #0x91]
strb r0, [sp, #0x98]
strb r0, [sp, #0x99]
strb r0, [sp, #0x9a]
strb r0, [sp, #0x9b]
strb r0, [sp, #0x9c]
strb r0, [sp, #0x9d]
ldr r0, [sp, #0x30]
mla r7, r6, lr, r7
str r0, [sp]
mov r0, r6, asr #0x1f
str r0, [sp, #4]
add r0, lr, #0x10000
str r3, [sp, #0x28]
ldr r3, [sp, #4]
adds r6, r8, #0x800
mla r7, r3, ip, r7
adc r3, r7, #0
mov r6, r6, lsr #0xc
orr r6, r6, r3, lsl #20
ldr r3, [sp]
strh r0, [sp, #0x64]
add r3, r3, r6
strh r0, [sp, #0x66]
strh r0, [sp, #0x68]
strh r0, [sp, #0x6a]
mov r0, r5
add r1, sp, #0x40
add r2, sp, #0x28
str r3, [sp, #0x30]
bl func_ov00_020a8c34
cmp r0, #0
moveq r1, #1
ldrb r0, [r5, #0xb1]
movne r1, #0
add r2, sp, #0x10
tst r0, r1
movne r1, #1
moveq r1, #0
strb r1, [r5, #0xb1]
ldr r0, _0210b290 ; =data_027e0e60
ldr r7, [sp, #0x28]
ldr r6, [sp, #0x2c]
ldr r3, [sp, #0x30]
ldr r1, [r0]
add r0, sp, #0xc
str r7, [sp, #0x10]
str r6, [sp, #0x14]
str r3, [sp, #0x18]
bl func_ov00_02083fb0
ldr r0, [sp, #0xc]
mov r0, r0, lsr #0x5
and r0, r0, #3
cmp r0, #2
movne r1, #1
ldrb r0, [r5, #0xb1]
moveq r1, #0
tst r0, r1
movne r3, #1
moveq r3, #0
add r1, sp, #0x1c
mov r0, r5
mov r2, r4
strb r3, [r5, #0xb1]
bl func_ov05_0210b4f4
ldr r1, _0210b294 ; =data_027e0fb8
mov r0, r5
ldr r6, [r1]
bl func_ov00_020a8c78
ldrsh r2, [r0]
add r1, sp, #0x1c
add r3, sp, #8
mov r0, r6
bl func_ov00_020b0778
cmp r0, #0
beq _0210b244
ldr r1, [sp, #8]
cmp r1, #0x1000
blt _0210b1c0
ldrb r0, [r4, #0x159]
cmp r0, #0
beq _0210b1c0
ldr r1, _0210b298 ; =data_ov05_021128a4
mov r0, r5
mov r2, #1
bl func_ov00_020a8a4c
ldr r0, [r5, #0xc]
cmp r0, #0
bgt _0210b220
mov r2, #8
mov r0, r5
mov r1, #2
str r2, [r5, #4]
bl func_ov00_020a8138
add sp, sp, #0x100
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
_0210b1c0:
mov r0, #0x1000
rsb r0, r0, #0
cmp r1, r0
bgt _0210b214
ldrb r0, [r4, #0x158]
cmp r0, #0
beq _0210b214
ldr r1, _0210b29c ; =data_ov05_021128b4
mov r0, r5
mov r2, #1
bl func_ov00_020a8a4c
ldr r0, [r5, #0xc]
cmp r0, #0
bgt _0210b220
mov r2, #9
mov r0, r5
mov r1, #2
str r2, [r5, #4]
bl func_ov00_020a8138
add sp, sp, #0x100
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
_0210b214:
ldr r1, _0210b2a0 ; =data_ov05_02112894
mov r0, r5
bl func_ov00_020a8a90
_0210b220:
ldr r0, [r5, #0xc]
cmp r0, #0
subgt r0, r0, #1
strgt r0, [r5, #0xc]
mov r0, r5
bl func_ov00_020a8ce0
mov r1, #0
str r1, [r0]
b _0210b264
_0210b244:
mov r0, r5
bl func_ov00_020a8ce0
mov r1, #0
str r1, [r0]
mov r0, r5
bl func_ov00_020a8138
add sp, sp, #0x100
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
_0210b264:
mov r0, r5
mov r1, r4
bl func_ov00_020aa844
add r0, r5, #0x24
bl func_0203516c
add sp, sp, #0x100
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
arm_func_end func_ov05_0210ad88
_0210b280: .word data_027e0fe4
_0210b284: .word data_027e0f74
_0210b288: .word data_02050f54
_0210b28c: .word 0x0000ffff
_0210b290: .word data_027e0e60
_0210b294: .word data_027e0fb8
_0210b298: .word data_ov05_021128a4
_0210b29c: .word data_ov05_021128b4
_0210b2a0: .word data_ov05_02112894
.global func_ov05_0210b2a4
arm_func_start func_ov05_0210b2a4
func_ov05_0210b2a4: ; 0x0210b2a4
stmdb sp!, {r3, r4, r5, lr}
mov r5, r0
bl func_ov00_020a8d40
mov r1, #0
strb r1, [r0, #0xbb]
mov r0, r5
bl func_ov00_020a8d40
mov r2, #0
ldr r1, _0210b3b0 ; =data_027e0fe4
strb r2, [r0, #0xbc]
ldr r0, [r1]
add r1, r5, #0x10
bl func_ov00_020c3674
movs r4, r0
bne _0210b2fc
mov r0, r5
bl func_ov00_020a8ce0
mov r1, #0
str r1, [r0]
mov r0, r5
bl func_ov00_020a8138
ldmia sp!, {r3, r4, r5, pc}
_0210b2fc:
ldr r0, _0210b3b4 ; =data_027e0fb8
ldr r0, [r0]
bl func_ov00_020b0ab4
cmp r0, #0
bne _0210b324
ldr r0, _0210b3b8 ; =data_027e0f74
ldr r0, [r0]
bl func_ov00_02097738
cmp r0, #0
beq _0210b32c
_0210b324:
mov r0, #1
strb r0, [r5, #0xb2]
_0210b32c:
ldr r0, [r4, #0x60]
cmp r0, #0
ldreq r0, [r4, #0x68]
cmpeq r0, #0
mov r0, r5
bne _0210b394
mov r1, #0
bl func_ov00_020a8b3c
cmp r0, #0
beq _0210b3a0
ldrb r0, [r5, #0xb2]
cmp r0, #0
beq _0210b37c
mov r0, r5
bl func_ov00_020a8ce0
mov r1, #0
str r1, [r0]
mov r0, r5
bl func_ov00_020a8138
ldmia sp!, {r3, r4, r5, pc}
_0210b37c:
mov r2, #7
mov r0, r5
mov r1, #2
str r2, [r5, #4]
bl func_ov00_020a8138
ldmia sp!, {r3, r4, r5, pc}
_0210b394:
bl func_ov00_020a8ce0
mov r1, #0
str r1, [r0]
_0210b3a0:
mov r0, r5
mov r1, r4
bl func_ov00_020aa844
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov05_0210b2a4
_0210b3b0: .word data_027e0fe4
_0210b3b4: .word data_027e0fb8
_0210b3b8: .word data_027e0f74
.global func_ov05_0210b3bc
arm_func_start func_ov05_0210b3bc
func_ov05_0210b3bc: ; 0x0210b3bc
stmdb sp!, {r3, r4, r5, r6, lr}
sub sp, sp, #0xc
ldrh r1, [r1]
mov r6, r0
tst r1, #1
bne _0210b3e0
tst r1, #2
addeq sp, sp, #0xc
ldmeqia sp!, {r3, r4, r5, r6, pc}
_0210b3e0:
ldr r0, [r6, #0xac]
mov r5, #0
mov r4, r5
cmp r0, #7
beq _0210b40c
cmp r0, #8
beq _0210b460
cmp r0, #9
beq _0210b474
add sp, sp, #0xc
ldmia sp!, {r3, r4, r5, r6, pc}
_0210b40c:
ldrsh r0, [r6, #0xa4]
cmp r0, #0
movgt r5, #1
mov r1, r5
cmp r5, #0
bne _0210b430
ldrb r0, [r6, #0xb0]
cmp r0, #0
bne _0210b438
_0210b430:
mov r5, #1
b _0210b43c
_0210b438:
mov r5, #2
_0210b43c:
cmp r1, #0
bne _0210b450
ldrb r0, [r6, #0xb1]
cmp r0, #0
bne _0210b458
_0210b450:
mov r4, #1
b _0210b484
_0210b458:
mov r4, #2
b _0210b484
_0210b460:
ldrb r0, [r6, #0xb0]
cmp r0, #0
moveq r5, #1
movne r5, #2
b _0210b484
_0210b474:
ldrb r0, [r6, #0xb1]
cmp r0, #0
moveq r4, #1
movne r4, #2
_0210b484:
ldr r0, _0210b4f0 ; =data_027e0fe4
add r1, r6, #0x10
ldr r0, [r0]
bl func_ov00_020c3674
movs r2, r0
addeq sp, sp, #0xc
ldmeqia sp!, {r3, r4, r5, r6, pc}
ldrb r0, [r6, #0xb2]
cmp r0, #0
addne sp, sp, #0xc
ldmneia sp!, {r3, r4, r5, r6, pc}
ldrb r0, [r2, #0x159]
add r1, sp, #0
cmp r0, #0
ldrb r0, [r2, #0x158]
moveq r5, #0
cmp r0, #0
moveq r4, #0
mov r0, r6
bl func_ov05_0210b4f4
add r1, sp, #0
mov r0, r6
mov r2, r5
mov r3, r4
bl func_ov00_020a8844
add sp, sp, #0xc
ldmia sp!, {r3, r4, r5, r6, pc}
.align 2, 0
arm_func_end func_ov05_0210b3bc
_0210b4f0: .word data_027e0fe4
.global func_ov05_0210b4f4
arm_func_start func_ov05_0210b4f4
func_ov05_0210b4f4: ; 0x0210b4f4
stmdb sp!, {r3, r4, r5, lr}
sub sp, sp, #0x10
mov r4, r1
mov r5, r0
add r1, sp, #0
mov r0, r2
bl func_ov00_020c2a0c
ldr r1, [sp, #4]
mov r0, r5
str r1, [r4, #4]
bl func_ov00_020a8c4c
ldr r1, [r0]
ldr r2, [sp]
mov r0, r5
add r1, r2, r1
add r1, r1, r1, lsr #31
mov r1, r1, asr #0x1
str r1, [r4]
bl func_ov00_020a8c4c
ldr r1, [sp, #8]
ldr r0, [r0, #8]
add r0, r1, r0
add r0, r0, r0, lsr #31
mov r0, r0, asr #0x1
str r0, [r4, #8]
add sp, sp, #0x10
ldmia sp!, {r3, r4, r5, pc}
arm_func_end func_ov05_0210b4f4
.global func_ov05_0210b560
arm_func_start func_ov05_0210b560
func_ov05_0210b560: ; 0x0210b560
stmdb sp!, {r4, lr}
mov r4, r0
bl func_ov00_02081f4c
mov r0, r4
bl func_0202ea0c
mov r0, r4
ldmia sp!, {r4, pc}
arm_func_end func_ov05_0210b560
.global func_ov05_0210b57c
arm_func_start func_ov05_0210b57c
func_ov05_0210b57c: ; 0x0210b57c
stmdb sp!, {r3, r4, r5, r6, lr}
sub sp, sp, #0x14
mov r5, r0
bl func_ov00_020a82ac
ldr r0, [r5, #4]
cmp r0, #0
beq _0210b5b8
mov r0, r5
bl func_ov00_020a8c58
mov r1, #0
str r1, [r0]
mov r0, r5
bl func_ov00_020a8c58
mov r1, #0
str r1, [r0, #8]
_0210b5b8:
ldr r0, [r5, #4]
cmp r0, #0xa
addls pc, pc, r0, lsl #2
b _0210b954
_0210b5c8: ; jump table
b _0210b5f4 ; case 0
b _0210b608 ; case 1
b _0210b634 ; case 2
b _0210b954 ; case 3
b _0210b954 ; case 4
b _0210b954 ; case 5
b _0210b684 ; case 6
b _0210b73c ; case 7
b _0210b79c ; case 8
b _0210b7b0 ; case 9
b _0210b7dc ; case 10
_0210b5f4:
mov r0, r5
mov r1, #0
bl func_ov00_020a8138
add sp, sp, #0x14
ldmia sp!, {r3, r4, r5, r6, pc}
_0210b608:
ldr r0, _0210b95c ; =data_027e0fb8
ldr r0, [r0]
bl func_ov00_020af044
mov r0, r5
bl func_ov00_020a8158
ldr r1, _0210b960 ; =data_ov05_02112984
mov r0, r5
mov r2, #1
bl func_ov00_020a8a4c
add sp, sp, #0x14
ldmia sp!, {r3, r4, r5, r6, pc}
_0210b634:
mov r1, #0xf
mov r0, r5
str r1, [r5, #0xc]
bl func_ov00_020a82ac
mov r0, r5
bl func_ov00_020a8158
mov r0, r5
bl func_ov00_020a8c78
mov r2, #0x8000
rsb r2, r2, #0
ldr r1, _0210b95c ; =data_027e0fb8
strh r2, [r0]
ldr r0, [r1]
bl func_ov00_020af044
ldr r1, _0210b964 ; =data_ov05_021129f4
mov r0, r5
mov r2, #1
bl func_ov00_020a8a4c
add sp, sp, #0x14
ldmia sp!, {r3, r4, r5, r6, pc}
_0210b684:
ldr r0, _0210b95c ; =data_027e0fb8
ldr r0, [r0]
bl func_ov00_020af044
ldr r1, _0210b968 ; =data_027e0e60
add r0, sp, #0x12
ldr r4, [r1]
add r2, r5, #0x24
mov r1, r4
bl func_ov00_02083a1c
add r1, sp, #0x12
mov r0, r4
bl func_ov00_020840c4
movs r4, r0
beq _0210b6d0
ldr r1, [r0]
ldr r1, [r1, #0x1c]
blx r1
cmp r0, #0x47
beq _0210b6dc
_0210b6d0:
mov r0, r5
mov r1, #0
bl func_ov00_020a8138
_0210b6dc:
ldrsh r4, [r4, #0xc]
mov r0, r5
bl func_ov00_020a8c78
sub r1, r4, #0x8000
strh r1, [r0]
mov r2, #0
str r2, [sp]
mov r3, r2
add r0, r5, #0x30
mov r1, #1
str r2, [sp, #4]
bl func_020350b4
mov r1, #0
mov r2, r1
mov r3, r1
add r0, r5, #0x30
str r1, [sp]
bl func_020351b8
mov r0, r5
bl func_ov00_020a8158
mov r0, #0
add sp, sp, #0x14
strb r0, [r5, #0x14]
ldmia sp!, {r3, r4, r5, r6, pc}
_0210b73c:
mov r1, #2
ldr r0, _0210b968 ; =data_027e0e60
str r1, [r5, #0xc]
ldr r4, [r0]
add r0, sp, #0x10
mov r1, r4
add r2, r5, #0x24
bl func_ov00_02083a1c
add r1, sp, #0x10
mov r0, r4
bl func_ov00_020840c4
cmp r0, #0
beq _0210b788
ldr r1, [r0]
ldr r1, [r1, #0x1c]
blx r1
cmp r0, #0x47
addeq sp, sp, #0x14
ldmeqia sp!, {r3, r4, r5, r6, pc}
_0210b788:
mov r0, r5
mov r1, #0
bl func_ov00_020a8138
add sp, sp, #0x14
ldmia sp!, {r3, r4, r5, r6, pc}
_0210b79c:
mov r0, r5
mov r1, #2
bl func_ov00_020a8138
add sp, sp, #0x14
ldmia sp!, {r3, r4, r5, r6, pc}
_0210b7b0:
ldr r0, _0210b95c ; =data_027e0fb8
ldr r0, [r0]
bl func_ov00_020af044
bl func_020385b8
add r1, r5, #0x24
bl func_ov00_020ab97c
mov r0, r5
mov r1, #2
bl func_ov00_020a8138
add sp, sp, #0x14
ldmia sp!, {r3, r4, r5, r6, pc}
_0210b7dc:
mov r0, r5
bl func_ov00_020a8158
ldr r1, _0210b968 ; =data_027e0e60
mov r0, r5
ldr r6, [r1]
bl func_ov00_020a8c4c
mov r4, r0
ldrb r1, [r5, #0x20]
mov r0, r6
bl func_ov00_02083c24
str r0, [r4]
ldr r1, _0210b968 ; =data_027e0e60
mov r0, r5
ldr r6, [r1]
bl func_ov00_020a8c4c
mov r4, r0
ldrb r1, [r5, #0x21]
mov r0, r6
bl func_ov00_02083c50
str r0, [r4, #8]
mov r0, r5
bl func_ov00_020a8c58
mov r1, #0
str r1, [r0]
mov r0, r5
bl func_ov00_020a8c58
mov r1, #0
str r1, [r0, #8]
strb r1, [r5, #0x15]
bl func_ov05_0210b96c
mov r4, r0
ldrsh r1, [r4, #0xa]
cmp r1, #1
addlt sp, sp, #0x14
ldmltia sp!, {r3, r4, r5, r6, pc}
bl func_ov14_0213d420
cmp r0, #0
movne r0, #1
moveq r0, #0
cmp r0, #0
addeq sp, sp, #0x14
ldmeqia sp!, {r3, r4, r5, r6, pc}
mvn r0, #0
str r0, [r5, #0x18]
ldrsh r0, [r4, #0x2e]
cmp r0, #2
bne _0210b8d0
ldrb r3, [r5, #0x20]
ldrb r1, [r4, #0x2c]
ldrb r2, [r5, #0x21]
ldrb r0, [r4, #0x2d]
strb r1, [sp, #0xe]
cmp r1, r3
strb r0, [sp, #0xf]
andeq r1, r0, #0xff
andeq r0, r2, #0xff
cmpeq r1, r0
moveq r0, #0
strb r3, [sp, #0xc]
strb r2, [sp, #0xd]
streq r0, [r5, #0x18]
_0210b8d0:
ldrsh r0, [r4, #0x4a]
cmp r0, #2
bne _0210b914
ldrb r3, [r5, #0x20]
ldrb r1, [r4, #0x48]
ldrb r2, [r5, #0x21]
ldrb r0, [r4, #0x49]
strb r1, [sp, #0xa]
cmp r1, r3
strb r0, [sp, #0xb]
andeq r1, r0, #0xff
andeq r0, r2, #0xff
cmpeq r1, r0
moveq r0, #1
strb r3, [sp, #8]
strb r2, [sp, #9]
streq r0, [r5, #0x18]
_0210b914:
ldr r1, [r5, #0x18]
mvn r0, #0
cmp r1, r0
addeq sp, sp, #0x14
ldmeqia sp!, {r3, r4, r5, r6, pc}
ldr r0, [r4, #0x38]
ldr r1, [r4, #0x1c]
cmp r1, r0
movge r1, r0
str r1, [r5, #0x1c]
ldr r1, [r5, #0x18]
mov r0, r4
bl func_ov14_0213d63c
strh r0, [r5, #0x16]
mov r0, #1
strb r0, [r5, #0x15]
_0210b954:
add sp, sp, #0x14
ldmia sp!, {r3, r4, r5, r6, pc}
.align 2, 0
arm_func_end func_ov05_0210b57c
_0210b95c: .word data_027e0fb8
_0210b960: .word data_ov05_02112984
_0210b964: .word data_ov05_021129f4
_0210b968: .word data_027e0e60
.global func_ov05_0210b96c
arm_func_start func_ov05_0210b96c
func_ov05_0210b96c: ; 0x0210b96c
ldr ip, _0210b978 ; =func_01fffcec
mov r0, #6
bx ip
.align 2, 0
arm_func_end func_ov05_0210b96c
_0210b978: .word func_01fffcec
.global func_ov05_0210b97c
arm_func_start func_ov05_0210b97c
func_ov05_0210b97c: ; 0x0210b97c
stmdb sp!, {r4, lr}
mov r4, r0
bl func_ov05_02106634
bl func_ov00_020aee84
ldr r0, [r4, #4]
ldr r1, _0210b9c0 ; =data_ov05_02112a04
add r1, r1, r0, lsl #3
ldr r0, [r1, #4]
tst r0, #1
add r0, r4, r0, asr #1
ldreq r1, [r1]
beq _0210b9b8
ldr r2, [r0]
ldr r1, [r1]
ldr r1, [r2, r1]
_0210b9b8:
blx r1
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov05_0210b97c
_0210b9c0: .word data_ov05_02112a04
.global func_ov05_0210b9c4
arm_func_start func_ov05_0210b9c4
func_ov05_0210b9c4: ; 0x0210b9c4
stmdb sp!, {r4, r5, lr}
sub sp, sp, #0xc
mov r1, #0
mov r4, r0
bl func_ov00_020a8b3c
cmp r0, #0
addeq sp, sp, #0xc
ldmeqia sp!, {r4, r5, pc}
ldr r0, [r4, #0x24]
ldr r1, _0210ba8c ; =data_027e0fe4
str r0, [sp]
ldr r2, [r4, #0x28]
ldr r0, _0210ba90 ; =data_027e0e60
str r2, [sp, #4]
ldr r3, [r4, #0x2c]
ldr r5, [r1]
ldr r0, [r0]
add r1, sp, #0
mov r2, #3
str r3, [sp, #8]
bl func_ov00_0208583c
mov r1, r0
mov r0, r5
bl func_ov00_020c35d8
movs r5, r0
mov r0, r4
beq _0210ba7c
bl func_ov00_020a8cc4
ldr r1, [r5, #8]
str r1, [r0]
ldr r1, [r5, #0xc]
str r1, [r0, #4]
mov r0, r4
bl func_ov00_020a8c4c
mov r2, r0
ldr r0, _0210ba94 ; =data_ov00_020eec9c
mov r1, #0xcb
bl func_ov00_020d7a84
mov r0, #2
bl func_01fffcd8
mov r1, #2
str r1, [r0, #4]
mov r0, r4
bl func_ov00_020a8138
add sp, sp, #0xc
ldmia sp!, {r4, r5, pc}
_0210ba7c:
mov r1, #0
bl func_ov00_020a8138
add sp, sp, #0xc
ldmia sp!, {r4, r5, pc}
.align 2, 0
arm_func_end func_ov05_0210b9c4
_0210ba8c: .word data_027e0fe4
_0210ba90: .word data_027e0e60
_0210ba94: .word data_ov00_020eec9c
.global func_ov05_0210ba98
arm_func_start func_ov05_0210ba98
func_ov05_0210ba98: ; 0x0210ba98
stmdb sp!, {r3, lr}
ldr r1, [r0, #0xc]
cmp r1, #0
subgt r1, r1, #1
strgt r1, [r0, #0xc]
ldmgtia sp!, {r3, pc}
mov r1, #6
bl func_ov00_020a8138
ldmia sp!, {r3, pc}
arm_func_end func_ov05_0210ba98
.global func_ov05_0210babc
arm_func_start func_ov05_0210babc
func_ov05_0210babc: ; 0x0210babc
stmdb sp!, {r3, r4, lr}
sub sp, sp, #0xc
mov r1, #0xa000
mov r2, #0
mov r4, r0
bl func_ov00_020a8b04
cmp r0, #0
beq _0210bb10
ldr r1, [r4, #0x24]
ldr r0, _0210bb48 ; =data_027e0e60
str r1, [sp]
ldr r1, [r4, #0x28]
ldr r0, [r0]
str r1, [sp, #4]
ldr r3, [r4, #0x2c]
add r1, sp, #0
mov r2, #5
str r3, [sp, #8]
bl func_ov00_0208583c
add sp, sp, #0xc
ldmia sp!, {r3, r4, pc}
_0210bb10:
mov r0, r4
mov r1, #0
bl func_ov00_020a8b3c
cmp r0, #0
addeq sp, sp, #0xc
ldmeqia sp!, {r3, r4, pc}
ldr r0, _0210bb4c ; =data_027e0fb8
ldr r0, [r0]
bl func_ov00_020af044
mov r0, r4
mov r1, #0
bl func_ov00_020a8138
add sp, sp, #0xc
ldmia sp!, {r3, r4, pc}
.align 2, 0
arm_func_end func_ov05_0210babc
_0210bb48: .word data_027e0e60
_0210bb4c: .word data_027e0fb8
.global func_ov05_0210bb50
arm_func_start func_ov05_0210bb50
func_ov05_0210bb50: ; 0x0210bb50
stmdb sp!, {r4, lr}
mov r4, r0
mov r1, #0
bl func_ov05_0211058c
add r0, r4, #0xb8
ldr r1, [r0]
ldr r1, [r1, #0x10]
blx r1
mov r0, #0x10000
ldr r1, [r4, #0xd0]
rsb r0, r0, #0
and r0, r1, r0
cmp r0, #0x1000000
ldmneia sp!, {r4, pc}
mov r0, r4
mov r1, #0
bl func_ov00_020a8138
ldmia sp!, {r4, pc}
arm_func_end func_ov05_0210bb50
.global func_ov05_0210bb98
arm_func_start func_ov05_0210bb98
func_ov05_0210bb98: ; 0x0210bb98
stmdb sp!, {r3, r4, r5, r6, lr}
sub sp, sp, #0x2c
mov r5, r0
bl func_ov00_020a8d40
mov r1, #0
strb r1, [r0, #0xbc]
ldr r1, _0210bd58 ; =data_027e0e60
add r0, sp, #0
ldr r4, [r1]
add r2, r5, #0x24
mov r1, r4
bl func_ov00_02083a1c
add r1, sp, #0
mov r0, r4
bl func_ov00_020840c4
movs r4, r0
beq _0210bc04
ldr r0, _0210bd5c ; =data_027e0f74
ldr r0, [r0]
bl func_ov00_02097738
cmp r0, #0
bne _0210bc04
mov r0, r5
bl func_ov00_020a8d40
ldrsh r0, [r0, #0x5c]
cmp r0, #0
ble _0210bc18
_0210bc04:
mov r0, r5
mov r1, #0
bl func_ov00_020a8138
add sp, sp, #0x2c
ldmia sp!, {r3, r4, r5, r6, pc}
_0210bc18:
add r1, sp, #0x20
mov r0, r5
mov r2, r4
bl func_ov05_0210ca80
ldr r1, _0210bd60 ; =data_027e0fb8
mov r0, r5
ldr r6, [r1]
bl func_ov00_020a8c78
ldrsh r2, [r0]
add r1, sp, #0x20
add r3, sp, #4
mov r0, r6
bl func_ov00_020b0778
cmp r0, #0
beq _0210bccc
mov r0, #0x1000
ldr r1, [sp, #4]
rsb r0, r0, #0
cmp r1, r0
bgt _0210bcac
ldr r1, _0210bd64 ; =data_ov05_021129d4
mov r0, r5
mov r2, #1
bl func_ov00_020a8a4c
ldr r0, [r5, #0xc]
cmp r0, #0
bgt _0210bcb8
mov r0, r4
bl func_ov14_0214bc98
mov r1, #7
mov r0, r5
str r1, [r5, #4]
ldr r1, [r0]
ldr r1, [r1, #0x14]
blx r1
add sp, sp, #0x2c
ldmia sp!, {r3, r4, r5, r6, pc}
_0210bcac:
ldr r1, _0210bd68 ; =data_ov05_021129c4
mov r0, r5
bl func_ov00_020a8a90
_0210bcb8:
ldr r0, [r5, #0xc]
cmp r0, #0
subgt r0, r0, #1
strgt r0, [r5, #0xc]
b _0210bce0
_0210bccc:
mov r0, r5
mov r1, #0
bl func_ov00_020a8138
add sp, sp, #0x2c
ldmia sp!, {r3, r4, r5, r6, pc}
_0210bce0:
mov r0, r4
ldr r2, [r0]
add r1, sp, #0x14
ldr r2, [r2, #0x8c]
blx r2
mov r0, r5
bl func_ov00_020a8c4c
mov r1, r0
add r0, sp, #0x14
add r2, sp, #8
bl func_01ff9bf8
add r0, sp, #8
bl func_01ff9cec
ldr r1, _0210bd6c ; =0x00000155
cmp r0, r1
blt _0210bd48
add r0, sp, #8
bl func_0202d95c
mov r0, r5
bl func_ov00_020a8c58
ldr r1, [sp, #8]
str r1, [r0]
ldr r1, [sp, #0xc]
str r1, [r0, #4]
ldr r1, [sp, #0x10]
str r1, [r0, #8]
_0210bd48:
add r0, r5, #0x30
bl func_0203516c
add sp, sp, #0x2c
ldmia sp!, {r3, r4, r5, r6, pc}
.align 2, 0
arm_func_end func_ov05_0210bb98
_0210bd58: .word data_027e0e60
_0210bd5c: .word data_027e0f74
_0210bd60: .word data_027e0fb8
_0210bd64: .word data_ov05_021129d4
_0210bd68: .word data_ov05_021129c4
_0210bd6c: .word 0x00000155
.global func_ov05_0210bd70
arm_func_start func_ov05_0210bd70
func_ov05_0210bd70: ; 0x0210bd70
stmdb sp!, {r3, r4, r5, lr}
sub sp, sp, #0x10
mov r5, r0
bl func_ov00_020a8d40
mov r1, #0
strb r1, [r0, #0xbb]
mov r0, r5
bl func_ov00_020a8d40
mov r1, #0
strb r1, [r0, #0xbc]
ldr r1, _0210bf40 ; =data_027e0e60
add r0, sp, #0
ldr r4, [r1]
add r2, r5, #0x24
mov r1, r4
bl func_ov00_02083a1c
add r1, sp, #0
mov r0, r4
bl func_ov00_020840c4
movs r4, r0
beq _0210bdd8
ldr r1, [r0]
ldr r1, [r1, #0x1c]
blx r1
cmp r0, #0x47
beq _0210bdec
_0210bdd8:
mov r0, r5
mov r1, #0
bl func_ov00_020a8138
add sp, sp, #0x10
ldmia sp!, {r3, r4, r5, pc}
_0210bdec:
ldr r0, _0210bf44 ; =data_027e0fb8
ldr r0, [r0]
bl func_ov00_020b0ab4
cmp r0, #0
bne _0210be14
ldr r0, _0210bf48 ; =data_027e0f74
ldr r0, [r0]
bl func_ov00_02097738
cmp r0, #0
beq _0210be1c
_0210be14:
mov r0, #1
strb r0, [r5, #0x14]
_0210be1c:
mov r0, r4
bl func_ov14_0214be64
cmp r0, #0
mov r0, r5
mov r1, #0
beq _0210be40
bl func_ov00_020a8138
add sp, sp, #0x10
ldmia sp!, {r3, r4, r5, pc}
_0210be40:
bl func_ov00_020a8b3c
cmp r0, #0
ldrb r0, [r5, #0x14]
beq _0210bea8
cmp r0, #0
bne _0210be68
mov r0, r4
bl func_ov14_0214bd7c
cmp r0, #0
beq _0210be7c
_0210be68:
mov r0, r5
mov r1, #0
bl func_ov00_020a8138
add sp, sp, #0x10
ldmia sp!, {r3, r4, r5, pc}
_0210be7c:
mov r0, r4
bl func_ov14_0214bd68
cmp r0, #0
beq _0210beb8
mov r1, #6
mov r0, r5
str r1, [r5, #4]
ldr r1, [r0]
ldr r1, [r1, #0x14]
blx r1
b _0210beb8
_0210bea8:
cmp r0, #0
bne _0210beb8
mov r0, r4
bl func_ov14_0214bc98
_0210beb8:
mov r0, r4
bl func_ov14_0214be64
cmp r0, #0
addne sp, sp, #0x10
ldmneia sp!, {r3, r4, r5, pc}
mov r0, r4
ldr r2, [r0]
add r1, sp, #4
ldr r2, [r2, #0x8c]
blx r2
mov r0, r5
bl func_ov00_020a8c4c
mov r1, r0
add r0, sp, #4
mov r2, r0
bl func_01ff9bf8
add r0, sp, #4
bl func_01ff9cec
ldr r1, _0210bf4c ; =0x00000155
cmp r0, r1
addlt sp, sp, #0x10
ldmltia sp!, {r3, r4, r5, pc}
add r0, sp, #4
bl func_0202d95c
mov r0, r5
bl func_ov00_020a8c58
ldr r1, [sp, #4]
str r1, [r0]
ldr r1, [sp, #8]
str r1, [r0, #4]
ldr r1, [sp, #0xc]
str r1, [r0, #8]
add sp, sp, #0x10
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov05_0210bd70
_0210bf40: .word data_027e0e60
_0210bf44: .word data_027e0fb8
_0210bf48: .word data_027e0f74
_0210bf4c: .word 0x00000155
.global func_ov05_0210bf50
arm_func_start func_ov05_0210bf50
func_ov05_0210bf50: ; 0x0210bf50
stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
sub sp, sp, #0x14
mov r4, r0
bl func_ov00_020a8c78
mov r5, r0
mov r0, r4
bl func_ov00_020a8c78
mov r6, r0
mov r0, r4
bl func_ov00_020a8ca4
cmp r0, #0
movne r0, #1
moveq r0, #0
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
ldrsh r2, [r5]
ldrsh r3, [r6]
mov r0, r4
mov r1, #0
bl func_ov05_02110228
bl func_ov05_0210aaf8
add r1, sp, #8
bl func_ov00_020a9180
mov r5, r0
bl func_020385b8
add r1, sp, #8
bl func_ov00_020ab770
cmp r0, #0
cmpeq r5, #0
movne r5, #1
mov r0, #2
moveq r5, #0
bl func_01fffcd8
ldr r2, [r0]
mov r1, r5
ldr r2, [r2, #0x20]
blx r2
cmp r0, #0
beq _0210c004
mov r0, r4
mov r1, #2
bl func_ov00_020a8138
add sp, sp, #0x14
ldmia sp!, {r4, r5, r6, r7, r8, sb, pc}
_0210c004:
mov r0, #1
bl func_01fffcd8
ldr r2, [r0]
mov r1, r5
ldr r2, [r2, #0x20]
blx r2
cmp r0, #0
beq _0210c040
bl func_ov05_02107870
mov r1, #1
str r1, [r0, #0x58]
mov r0, r4
bl func_ov00_020a8138
add sp, sp, #0x14
ldmia sp!, {r4, r5, r6, r7, r8, sb, pc}
_0210c040:
ldr r0, _0210c200 ; =data_027e0fb8
ldr r0, [r0]
bl func_ov00_020b034c
cmp r0, #0xcd
addle sp, sp, #0x14
ldmleia sp!, {r4, r5, r6, r7, r8, sb, pc}
ldr r1, _0210c200 ; =data_027e0fb8
mov r0, r4
ldr r6, [r1]
bl func_ov00_020a8c78
mov r5, r0
mov r0, r6
bl func_ov00_020b0328
strh r0, [r5]
bl func_ov05_0210b96c
bl func_ov14_0213d420
cmp r0, #0
movne r0, #1
moveq r0, #0
cmp r0, #0
ldrneb r0, [r4, #0x15]
cmpne r0, #0
beq _0210c19c
ldr r0, _0210c200 ; =data_027e0fb8
ldr r0, [r0]
bl func_ov00_020b0328
ldrsh r1, [r4, #0x16]
sub r0, r1, r0
mov r0, r0, lsl #0x10
movs r0, r0, asr #0x10
rsbmi r0, r0, #0
movmi r0, r0, lsl #0x10
movmi r0, r0, asr #0x10
cmp r0, #0x2000
bge _0210c19c
mov r0, r4
bl func_ov00_020a8c58
mov r1, #0
str r1, [r0]
mov r0, r4
bl func_ov00_020a8c58
mov r1, #0
str r1, [r0, #8]
ldrh r5, [r4, #0x16]
mov r0, r4
bl func_ov00_020a8c58
mov r1, r5, asr #0x4
mov r1, r1, lsl #0x1
add r2, r1, #1
ldr r3, _0210c204 ; =data_02050f54
mov r1, r1, lsl #0x1
ldrsh r6, [r3, r1]
ldr r1, _0210c208 ; =0x0000019a
mov r2, r2, lsl #0x1
ldrsh r3, [r3, r2]
umull r5, r7, r6, r1
mov r2, #0
umull lr, ip, r3, r1
adds r5, r5, #0x800
mov r8, r5, lsr #0xc
mla r7, r6, r2, r7
mla ip, r3, r2, ip
mov r5, r6, asr #0x1f
mla r7, r5, r1, r7
mov r2, r3, asr #0x1f
adc r5, r7, #0
mla ip, r2, r1, ip
adds r2, lr, #0x800
ldr sb, [r0]
orr r8, r8, r5, lsl #20
add r5, sb, r8
str r5, [r0]
adc r1, ip, #0
mov r2, r2, lsr #0xc
orr r2, r2, r1, lsl #20
ldr r1, [r0, #8]
add r1, r1, r2
str r1, [r0, #8]
mov r0, r4
bl func_ov00_020a8d40
mov r1, #2
strh r1, [r0, #0x5a]
mov r0, r4
mov r1, #0
bl func_ov00_020a8138
add sp, sp, #0x14
ldmia sp!, {r4, r5, r6, r7, r8, sb, pc}
_0210c19c:
ldr r0, _0210c200 ; =data_027e0fb8
ldr r0, [r0]
bl func_ov00_020b13c4
cmp r0, #0
addeq sp, sp, #0x14
ldmeqia sp!, {r4, r5, r6, r7, r8, sb, pc}
mov r0, r4
bl func_ov00_020a8c78
mov r5, r0
mov r0, r4
bl func_ov00_020a8ca4
cmp r0, #0
movne r0, #1
moveq r0, #0
str r0, [sp]
mov r2, #0x148
ldrsh r1, [r5]
mov r0, r4
mov r3, r2
bl func_ov05_02110e28
mov r0, r4
mov r1, #0
bl func_ov00_020a8138
add sp, sp, #0x14
ldmia sp!, {r4, r5, r6, r7, r8, sb, pc}
.align 2, 0
arm_func_end func_ov05_0210bf50
_0210c200: .word data_027e0fb8
_0210c204: .word data_02050f54
_0210c208: .word 0x0000019a
.global func_ov05_0210c20c
arm_func_start func_ov05_0210c20c
func_ov05_0210c20c: ; 0x0210c20c
stmdb sp!, {r3, r4, r5, r6, r7, lr}
sub sp, sp, #0x78
ldr r1, _0210c948 ; =data_027e0618
mov r7, r0
ldr r1, [r1]
cmp r1, #2
bne _0210c2b4
bl func_ov00_020a8bd8
cmp r0, #1
bne _0210c2b4
ldr r0, _0210c94c ; =data_027e0fb8
mov r2, #0
ldr r0, [r0]
add r1, sp, #8
strb r2, [sp, #8]
strb r2, [sp, #9]
bl func_ov00_020af01c
cmp r0, #0
beq _0210c2a8
ldr r0, _0210c950 ; =data_027e0e60
ldrb r2, [sp, #8]
ldrb r1, [sp, #9]
ldr r0, [r0]
sub r3, sp, #4
strb r2, [r3]
strb r1, [r3, #1]
ldr r2, [r3]
add r1, sp, #0x6c
bl func_ov00_02083c7c
mov r0, r7
bl func_ov00_020a8c4c
mov r1, r0
add r0, sp, #0x6c
add r2, sp, #0x60
bl func_01ff9bf8
bl func_ov05_02106634
add r1, sp, #8
add r2, sp, #0x60
bl func_ov23_021716b0
_0210c2a8:
add sp, sp, #0x78
mov r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_0210c2b4:
mov r0, r7
mov r1, #2
bl func_ov00_020a8ba0
cmp r0, #0
addne sp, sp, #0x78
movne r0, #0
ldmneia sp!, {r3, r4, r5, r6, r7, pc}
mov r0, r7
bl func_ov00_020a8b80
cmp r0, #0
addeq sp, sp, #0x78
moveq r0, #0
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
mov r0, #0x10000
ldr r1, [r7, #0xd0]
rsb r0, r0, #0
and r0, r1, r0
cmp r0, #0x1000000
beq _0210c314
mov r0, #5
str r0, [r7, #4]
add sp, sp, #0x78
mov r0, #1
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_0210c314:
mov r0, r7
bl func_ov00_020a8d40
ldrb r0, [r0, #0xcc]
cmp r0, #0
beq _0210c398
mov r0, r7
bl func_ov00_020a8d40
ldr r0, [r0, #0xc0]
cmp r0, #0x19
cmpne r0, #0x90
bne _0210c398
mov r0, r7
bl func_ov00_020a8d40
ldrb r2, [r0, #0xc4]
mov r1, #0xa
strb r2, [r7, #0x20]
ldrb r2, [r0, #0xc5]
mov r0, r7
strb r2, [r7, #0x21]
str r1, [r7, #4]
bl func_ov00_020a8d40
ldrb r0, [r0, #0x58]
cmp r0, #0
bne _0210c38c
mov r0, r7
bl func_ov00_020a8c4c
mov r2, r0
ldr r0, _0210c954 ; =data_ov00_020eec9c
mov r1, #0xd4
bl func_ov00_020d7a84
_0210c38c:
add sp, sp, #0x78
mov r0, #1
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_0210c398:
ldr r0, _0210c94c ; =data_027e0fb8
ldr r0, [r0]
ldr r5, [r0, #0xa0]
cmp r5, #0
beq _0210c3ec
ldr r0, _0210c950 ; =data_027e0e60
add r1, r5, #0x18
ldr r0, [r0]
add r2, r7, #0x24
bl func_ov00_0208527c
mov r6, r0
add r1, sp, #0x54
mov r0, r7
mov r2, r5
bl func_ov00_020a9210
mov r0, r7
bl func_ov00_020a8c4c
mov r1, r0
add r0, sp, #0x54
bl func_01ff9ec0
b _0210c3f8
_0210c3ec:
add sp, sp, #0x78
mov r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_0210c3f8:
ldr r1, _0210c958 ; =data_ov05_02112324
ldr r1, [r1, r6, lsl #2]
cmp r0, r1
addge sp, sp, #0x78
movge r0, #0
ldmgeia sp!, {r3, r4, r5, r6, r7, pc}
mov r0, r7
bl func_ov00_020a8ca4
cmp r0, #0
ldr r0, _0210c94c ; =data_027e0fb8
movne r2, #1
ldr r0, [r0]
moveq r2, #0
mov r1, r6
bl func_ov00_020afeec
cmp r0, #0
bne _0210c454
ldr r0, _0210c94c ; =data_027e0fb8
ldr r0, [r0]
bl func_ov00_020af050
add sp, sp, #0x78
mov r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_0210c454:
ldr r0, _0210c95c ; =data_ov05_02112360
cmp r6, #0xe
ldr r0, [r0, r6, lsl #2]
str r0, [r7, #4]
addls pc, pc, r6, lsl #2
b _0210c93c
_0210c46c: ; jump table
b _0210c4a8 ; case 0
b _0210c4b4 ; case 1
b _0210c4b4 ; case 2
b _0210c528 ; case 3
b _0210c540 ; case 4
b _0210c5a4 ; case 5
b _0210c650 ; case 6
b _0210c680 ; case 7
b _0210c738 ; case 8
b _0210c788 ; case 9
b _0210c7a8 ; case 10
b _0210c7cc ; case 11
b _0210c824 ; case 12
b _0210c88c ; case 13
b _0210c4d8 ; case 14
_0210c4a8:
add sp, sp, #0x78
mov r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_0210c4b4:
mov r0, r7
add r1, r7, #0x24
bl func_ov00_020a81ec
ldr r0, _0210c94c ; =data_027e0fb8
ldr r0, [r0]
bl func_ov00_020af050
add sp, sp, #0x78
mov r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_0210c4d8:
mov r0, r7
add r1, r7, #0x24
bl func_ov00_020a81ec
ldr r0, _0210c94c ; =data_027e0fb8
ldr r0, [r0]
bl func_ov00_020af050
ldr r1, [r7, #0x24]
ldr r0, _0210c950 ; =data_027e0e60
str r1, [sp, #0x3c]
ldr r1, [r7, #0x28]
ldr r0, [r0]
str r1, [sp, #0x40]
ldr r3, [r7, #0x2c]
add r1, sp, #0x3c
mov r2, #0xe
str r3, [sp, #0x44]
bl func_ov00_0208583c
add sp, sp, #0x78
mov r0, #1
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_0210c528:
mov r0, r7
add r1, r7, #0x24
bl func_ov00_020a81ec
add sp, sp, #0x78
mov r0, #1
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_0210c540:
ldr r1, [r7, #0x24]
ldr r0, _0210c950 ; =data_027e0e60
str r1, [sp, #0x30]
ldr r1, [r7, #0x28]
ldr r0, [r0]
str r1, [sp, #0x34]
ldr r3, [r7, #0x2c]
add r1, sp, #0x30
mov r2, #4
str r3, [sp, #0x38]
bl func_ov00_0208583c
mov r4, r0
bl func_ov05_0210c980
mov r1, r4
bl func_ov05_021096bc
cmp r0, #0
addeq sp, sp, #0x78
moveq r0, #0
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
mov r0, r7
add r1, r7, #0x24
bl func_ov00_020a81ec
add sp, sp, #0x78
mov r0, #1
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_0210c5a4:
mov r0, r5
ldr r1, [r0]
ldr r1, [r1, #0x1c]
blx r1
cmp r0, #9
beq _0210c5d0
cmp r0, #0x2c
beq _0210c5f0
cmp r0, #0x6d
beq _0210c5e0
b _0210c5fc
_0210c5d0:
mov r0, r5
bl func_ov14_02127df4
ldrb r4, [r5, #0x8c]
b _0210c604
_0210c5e0:
mov r0, r5
bl func_ov21_0216d830
ldrb r4, [r5, #0x8c]
b _0210c604
_0210c5f0:
mov r0, r5
bl func_ov14_0214a3dc
b _0210c604
_0210c5fc:
ldrb r4, [r5, #0x8c]
mov r0, #1
_0210c604:
cmp r0, #0
cmpne r4, #0
mov r2, #1
beq _0210c624
ldr r1, _0210c960 ; =data_ov05_02112994
mov r0, r7
bl func_ov00_020a8a4c
b _0210c630
_0210c624:
ldr r1, _0210c964 ; =data_ov05_021129a4
mov r0, r7
bl func_ov00_020a8a4c
_0210c630:
mov r0, r7
add r1, r7, #0x24
bl func_ov00_020a81ec
mov r0, r7
bl func_ov00_020a8158
add sp, sp, #0x78
mov r0, #1
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_0210c650:
ldr r1, _0210c964 ; =data_ov05_021129a4
mov r0, r7
mov r2, #1
bl func_ov00_020a8a4c
mov r0, r7
add r1, r7, #0x24
bl func_ov00_020a81ec
mov r0, r7
bl func_ov00_020a8158
add sp, sp, #0x78
mov r0, #1
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_0210c680:
ldr r1, [r7, #0x24]
ldr r0, _0210c950 ; =data_027e0e60
str r1, [sp, #0x24]
ldr r1, [r7, #0x28]
ldr r0, [r0]
str r1, [sp, #0x28]
ldr r3, [r7, #0x2c]
add r1, sp, #0x24
mov r2, #7
str r3, [sp, #0x2c]
bl func_ov00_0208583c
str r0, [r7, #0x10]
ldr r1, _0210c950 ; =data_027e0e60
add r0, sp, #6
ldr r1, [r1]
add r2, r7, #0x24
bl func_ov00_02083a1c
ldrb r3, [sp, #6]
ldrb r2, [sp, #7]
ldr r0, _0210c968 ; =0x00020007
strb r3, [sp, #4]
strb r3, [r7, #0xd8]
strb r2, [r7, #0xd9]
ldr r1, [r7, #0x10]
strb r2, [sp, #5]
cmp r1, r0
moveq r0, #1
movne r0, #0
strb r0, [r7, #0xe1]
ldr r2, [r7, #0x10]
ldr r0, _0210c96c ; =data_027e0c68
add r1, r7, #0xb8
bl func_02036ce4
cmp r0, #0
addeq sp, sp, #0x78
moveq r0, #0
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
mov r0, r7
add r1, r7, #0x24
bl func_ov00_020a81ec
ldr r0, _0210c94c ; =data_027e0fb8
ldr r0, [r0]
bl func_ov00_020af044
add sp, sp, #0x78
mov r0, #1
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_0210c738:
bl func_ov05_021055d0
ldr r2, [r0]
mov r1, #1
ldr r2, [r2, #0x14]
blx r2
cmp r0, #0
beq _0210c77c
mov r0, r7
add r1, r7, #0x24
bl func_ov00_020a81ec
ldr r0, _0210c94c ; =data_027e0fb8
ldr r0, [r0]
bl func_ov00_020af044
mov r0, r7
add r2, r7, #0x24
mov r1, #0
bl func_ov00_020a81b8
_0210c77c:
add sp, sp, #0x78
mov r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_0210c788:
mov r0, r7
add r1, r7, #0x24
bl func_ov00_020a81ec
mov r0, #0
str r0, [r7, #0xc]
add sp, sp, #0x78
mov r0, #1
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_0210c7a8:
ldr r0, _0210c94c ; =data_027e0fb8
ldr r0, [r0]
bl func_ov00_020af044
bl func_020385b8
add r1, r5, #0x18
bl func_ov00_020ab8cc
add sp, sp, #0x78
mov r0, #1
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_0210c7cc:
mov r0, r7
bl func_ov00_020a8ca4
ldr r1, [r0, #4]
ldr r0, _0210c970 ; =0x424b4559
cmp r1, r0
ldrne r0, _0210c974 ; =0x464f5243
cmpne r1, r0
bne _0210c818
ldr r1, [r7, #0x24]
ldr r0, _0210c950 ; =data_027e0e60
str r1, [sp, #0x18]
ldr r1, [r7, #0x28]
ldr r0, [r0]
str r1, [sp, #0x1c]
ldr r3, [r7, #0x2c]
add r1, sp, #0x18
mov r2, #0xb
str r3, [sp, #0x20]
bl func_ov00_0208583c
_0210c818:
add sp, sp, #0x78
mov r0, #1
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_0210c824:
ldr r1, [r7, #0x24]
ldr r0, _0210c978 ; =data_027e0fb4
str r1, [sp, #0xc]
ldr r1, [r7, #0x28]
ldr r0, [r0]
str r1, [sp, #0x10]
ldr r2, [r7, #0x2c]
mov r1, #0
str r2, [sp, #0x14]
bl func_ov00_020ad428
ldr r1, _0210c950 ; =data_027e0e60
mov r4, r0
ldr r0, [r1]
add r1, sp, #0xc
mov r2, #0xc
bl func_ov00_0208583c
mov r1, r0
mov r0, r4
ldr r4, [r0]
mov r2, #1
ldr r4, [r4, #0xbc]
mov r3, #0
blx r4
add sp, sp, #0x78
mov r0, #1
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_0210c88c:
mov r0, r7
add r1, r7, #0x24
bl func_ov00_020a81ec
mov r0, r7
bl func_ov00_020a8c78
mov r4, r0
mov r0, r7
bl func_ov00_020a8ca4
cmp r0, #0
movne r0, #1
moveq r0, #0
str r0, [sp]
ldrsh r1, [r4]
ldr r3, _0210c97c ; =0x000004cd
mov r0, r7
mov r2, #0x148
bl func_ov05_02110e28
mov r0, r7
bl func_ov00_020a8d40
mov r1, #1
strh r1, [r0, #0x5a]
add r2, sp, #0x48
mov r1, #0
mov r0, r7
str r1, [r2]
str r1, [r2, #4]
str r1, [r2, #8]
bl func_ov00_020a8c4c
ldr r1, [r0]
ldr r2, [r7, #0x24]
mov r0, r7
sub r1, r2, r1
str r1, [sp, #0x48]
bl func_ov00_020a8c4c
ldr r1, _0210c94c ; =data_027e0fb8
ldr r2, [r0, #8]
ldr r3, [r7, #0x2c]
ldr r0, [r1]
sub r1, r3, r2
str r1, [sp, #0x50]
bl func_ov00_020af050
add sp, sp, #0x78
mov r0, #1
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_0210c93c:
mov r0, #0
add sp, sp, #0x78
ldmia sp!, {r3, r4, r5, r6, r7, pc}
.align 2, 0
arm_func_end func_ov05_0210c20c
_0210c948: .word data_027e0618
_0210c94c: .word data_027e0fb8
_0210c950: .word data_027e0e60
_0210c954: .word data_ov00_020eec9c
_0210c958: .word data_ov05_02112324
_0210c95c: .word data_ov05_02112360
_0210c960: .word data_ov05_02112994
_0210c964: .word data_ov05_021129a4
_0210c968: .word 0x00020007
_0210c96c: .word data_027e0c68
_0210c970: .word 0x424b4559
_0210c974: .word 0x464f5243
_0210c978: .word data_027e0fb4
_0210c97c: .word 0x000004cd
.global func_ov05_0210c980
arm_func_start func_ov05_0210c980
func_ov05_0210c980: ; 0x0210c980
ldr ip, _0210c98c ; =func_01fffcd8
mov r0, #6
bx ip
.align 2, 0
arm_func_end func_ov05_0210c980
_0210c98c: .word func_01fffcd8
.global func_ov05_0210c990
arm_func_start func_ov05_0210c990
func_ov05_0210c990: ; 0x0210c990
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #0x10
ldrh r1, [r1]
mov r4, r0
tst r1, #1
bne _0210c9b4
tst r1, #2
addeq sp, sp, #0x10
ldmeqia sp!, {r4, r5, r6, pc}
_0210c9b4:
ldr r0, [r4, #4]
cmp r0, #6
beq _0210c9d0
cmp r0, #7
beq _0210c9e4
add sp, sp, #0x10
ldmia sp!, {r4, r5, r6, pc}
_0210c9d0:
ldrsh r0, [r4, #0xb0]
cmp r0, #0
movgt r5, #1
movle r5, #2
b _0210c9e8
_0210c9e4:
mov r5, #2
_0210c9e8:
ldr r1, _0210ca7c ; =data_027e0e60
add r0, sp, #0
ldr r6, [r1]
add r2, r4, #0x24
mov r1, r6
bl func_ov00_02083a1c
add r1, sp, #0
mov r0, r6
bl func_ov00_020840c4
movs r6, r0
addeq sp, sp, #0x10
ldmeqia sp!, {r4, r5, r6, pc}
ldrb r1, [r4, #0x14]
cmp r1, #0
addne sp, sp, #0x10
ldmneia sp!, {r4, r5, r6, pc}
ldr r1, [r0]
ldr r1, [r1, #0x1c]
blx r1
cmp r0, #0x47
addne sp, sp, #0x10
ldmneia sp!, {r4, r5, r6, pc}
mov r0, r6
bl func_ov14_0214bd7c
cmp r0, #0
movne r5, #0
add r1, sp, #4
mov r0, r4
mov r2, r6
bl func_ov05_0210ca80
add r1, sp, #4
mov r0, r4
mov r3, r5
mov r2, #0
bl func_ov00_020a8844
add sp, sp, #0x10
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
arm_func_end func_ov05_0210c990
_0210ca7c: .word data_027e0e60
.global func_ov05_0210ca80
arm_func_start func_ov05_0210ca80
func_ov05_0210ca80: ; 0x0210ca80
stmdb sp!, {r4, r5, lr}
sub sp, sp, #0xc
mov r5, r0
mov r0, r2
ldr r2, [r0]
mov r4, r1
ldr r2, [r2, #0x54]
blx r2
cmp r0, #0
bne _0210cabc
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
b _0210cacc
_0210cabc:
ldr r2, [r0]
add r1, sp, #0
ldr r2, [r2, #0x3c]
blx r2
_0210cacc:
mov r0, r5
bl func_ov00_020a8c4c
ldr r1, [r0]
str r1, [r4]
ldr r1, [r0, #4]
str r1, [r4, #4]
ldr r1, [r0, #8]
mov r0, r5
str r1, [r4, #8]
ldr r1, [sp, #4]
str r1, [r4, #4]
bl func_ov00_020a8c78
ldrh r1, [r0]
ldr r5, _0210cb7c ; =data_02050f54
mov r0, #0x800
mov r1, r1, asr #0x4
mov r2, r1, lsl #0x1
mov r1, r2, lsl #0x1
ldrsh r3, [r5, r1]
add r1, r2, #1
mov r1, r1, lsl #0x1
mov r2, r3, asr #0x1f
mov ip, r2, lsl #0xb
ldrsh r2, [r5, r1]
adds r1, r0, r3, lsl #11
orr ip, ip, r3, lsr #21
adc r5, ip, #0
mov ip, r1, lsr #0xc
mov r1, r2, asr #0x1f
mov r1, r1, lsl #0xb
adds r3, r0, r2, lsl #11
orr r1, r1, r2, lsr #21
ldr r0, [r4]
orr ip, ip, r5, lsl #20
add r0, r0, ip
str r0, [r4]
adc r0, r1, #0
mov r1, r3, lsr #0xc
ldr r2, [r4, #8]
orr r1, r1, r0, lsl #20
add r0, r2, r1
str r0, [r4, #8]
add sp, sp, #0xc
ldmia sp!, {r4, r5, pc}
.align 2, 0
arm_func_end func_ov05_0210ca80
_0210cb7c: .word data_02050f54
.global func_ov05_0210cb80
arm_func_start func_ov05_0210cb80
func_ov05_0210cb80: ; 0x0210cb80
ldr ip, _0210cb88 ; =func_ov05_0210e024
bx ip
.align 2, 0
arm_func_end func_ov05_0210cb80
_0210cb88: .word func_ov05_0210e024
.global func_ov05_0210cb8c
arm_func_start func_ov05_0210cb8c
func_ov05_0210cb8c: ; 0x0210cb8c
stmdb sp!, {r3, lr}
mov r1, r0
ldr r0, [r1, #4]
cmp r0, #2
cmpne r0, #3
ldmneia sp!, {r3, pc}
ldr r0, _0210cbbc ; =data_027e0de4
ldr r2, _0210cbc0 ; =func_ov05_0210cb80
add r3, r1, #0x18
mov r1, #7
bl func_ov00_0207bb1c
ldmia sp!, {r3, pc}
.align 2, 0
arm_func_end func_ov05_0210cb8c
_0210cbbc: .word data_027e0de4
_0210cbc0: .word func_ov05_0210cb80
.global func_ov05_0210cbc4
arm_func_start func_ov05_0210cbc4
func_ov05_0210cbc4: ; 0x0210cbc4
stmdb sp!, {r3, lr}
ldrh lr, [r0, #0x34]
ldrh r2, [r0, #0x2c]
cmp lr, r2
ldmhsia sp!, {r3, pc}
ldr r3, [r0, #0x30]
ldr r2, [r1]
add ip, r3, lr, lsl #3
str r2, [r3, lr, lsl #3]
ldr r1, [r1, #4]
str r1, [ip, #4]
ldrh r1, [r0, #0x34]
add r1, r1, #1
strh r1, [r0, #0x34]
ldmia sp!, {r3, pc}
arm_func_end func_ov05_0210cbc4
.global func_ov05_0210cc00
arm_func_start func_ov05_0210cc00
func_ov05_0210cc00: ; 0x0210cc00
stmdb sp!, {r4, r5, lr}
sub sp, sp, #0xc
mov r5, r0
ldrh ip, [r5, #0x34]
ldrh r2, [r5, #0x2c]
mov r4, r1
cmp ip, r2
addhs sp, sp, #0xc
ldmhsia sp!, {r4, r5, pc}
cmp ip, #0
bne _0210cc44
ldrb r1, [r5, #0x2f]
str r1, [sp]
ldrb r3, [r5, #0x2e]
ldmia r4, {r1, r2}
bl func_ov05_0210cd58
b _0210cc74
_0210cc44:
ldr r3, [r5, #0x30]
ldr r1, [r4, #4]
sub ip, ip, #1
str r1, [sp]
ldrb r1, [r5, #0x2e]
add r2, r3, ip, lsl #3
str r1, [sp, #4]
ldrb r1, [r5, #0x2f]
str r1, [sp, #8]
ldr r3, [r4]
ldmia r2, {r1, r2}
bl func_ov05_0210ceac
_0210cc74:
mov r0, r5
mov r1, r4
bl func_ov05_0210cbc4
add sp, sp, #0xc
ldmia sp!, {r4, r5, pc}
arm_func_end func_ov05_0210cc00
.global func_ov05_0210cc88
arm_func_start func_ov05_0210cc88
func_ov05_0210cc88: ; 0x0210cc88
stmdb sp!, {r3, r4, r5, r6, lr}
sub sp, sp, #0xc
mov r5, r0
ldrsh r2, [r5, #0x36]
mov r4, r1
cmp r2, r4
addeq sp, sp, #0xc
ldmeqia sp!, {r3, r4, r5, r6, pc}
strh r4, [r5, #0x36]
bl func_ov00_020798e8
ldrh ip, [r5, #0x34]
cmp ip, #0
addeq sp, sp, #0xc
ldmeqia sp!, {r3, r4, r5, r6, pc}
cmp r4, ip
addge sp, sp, #0xc
ldmgeia sp!, {r3, r4, r5, r6, pc}
ldr r3, [r5, #0x30]
sub r0, ip, #1
add r2, r3, r4, lsl #3
cmp r4, r0
ldmia r2, {r1, r2}
bne _0210cd00
ldrb r3, [r5, #0x2f]
mov r0, r5
str r3, [sp]
ldrb r3, [r5, #0x2e]
bl func_ov05_0210cd58
add sp, sp, #0xc
ldmia sp!, {r3, r4, r5, r6, pc}
_0210cd00:
add r4, r4, #1
cmp r4, ip
add r6, r3, r4, lsl #3
addge sp, sp, #0xc
ldmgeia sp!, {r3, r4, r5, r6, pc}
_0210cd14:
ldr r3, [r6, #4]
mov r0, r5
str r3, [sp]
ldrb r3, [r5, #0x2e]
str r3, [sp, #4]
ldrb r3, [r5, #0x2f]
str r3, [sp, #8]
ldr r3, [r6]
bl func_ov05_0210ceac
ldmia r6, {r1, r2}
ldrh r0, [r5, #0x34]
add r4, r4, #1
add r6, r6, #8
cmp r4, r0
blt _0210cd14
add sp, sp, #0xc
ldmia sp!, {r3, r4, r5, r6, pc}
arm_func_end func_ov05_0210cc88
.global func_ov05_0210cd58
arm_func_start func_ov05_0210cd58
func_ov05_0210cd58: ; 0x0210cd58
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
ldrb r6, [sp, #0x20]
mov r4, r0
mov r7, r1
mov r5, r2
mov sl, r3
cmp r6, #0
ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
ldr r0, [r4, #0x20]
cmp r0, #0
beq _0210cd90
bl func_ov00_020d3e80
movs sl, r0
ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
_0210cd90:
ldrb r0, [r4, #3]
cmp r0, #0
beq _0210cda4
cmp sl, #0x10
andhs sl, sl, #0xf
_0210cda4:
ldrb r0, [sp, #0x20]
ldr r1, _0210cea8 ; =data_027e0c38
ldr r2, [r4, #8]
ldr r1, [r1, #0x14]
tst r0, #1
add sb, r2, r1
mov r0, r0, asr #0x1
ldr r8, [r4, #0x10]
subeq r3, r0, #1
movne r3, r0
sub r6, r7, r3
add r8, sb, r8
cmp r6, sb
sub r8, r8, #1
add r7, r7, r0
movle r6, sb
cmp r7, r8
movge r7, r8
ldr r2, [r4, #0xc]
ldr r1, [r4, #0x14]
cmp r6, r7
ldmgtia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
add r1, r2, r1
sub r8, r5, r3
cmp r8, r2
sub r1, r1, #1
add sb, r5, r0
movle r8, r2
cmp sb, r1
movge sb, r1
cmp r8, sb
ldmgtia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
bgt _0210ce9c
_0210ce28:
mov r5, r6
cmp r6, r7
bgt _0210ce90
_0210ce34:
mov r0, r4
mov r1, r5
mov r2, r8
bl func_ov00_02079a4c
ldrb r2, [r4, #3]
ldr r1, [r4, #0x1c]
cmp r2, #0
beq _0210ce80
tst r5, #1
ldrb r2, [r1, r0]
beq _0210ce70
and r2, r2, #0xf
orr r2, r2, sl, lsl #4
strb r2, [r1, r0]
b _0210ce84
_0210ce70:
and r2, r2, #0xf0
orr r2, r2, sl
strb r2, [r1, r0]
b _0210ce84
_0210ce80:
strb sl, [r1, r0]
_0210ce84:
add r5, r5, #1
cmp r5, r7
ble _0210ce34
_0210ce90:
add r8, r8, #1
cmp r8, sb
ble _0210ce28
_0210ce9c:
mov r0, #0
strb r0, [r4, #4]
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
.align 2, 0
arm_func_end func_ov05_0210cd58
_0210cea8: .word data_027e0c38
.global func_ov05_0210ceac
arm_func_start func_ov05_0210ceac
func_ov05_0210ceac: ; 0x0210ceac
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x10
ldr r8, [sp, #0x40]
mov r7, r1
ldr r1, [sp, #0x38]
ldr sb, [sp, #0x3c]
mov r4, r0
mov sl, r2
str r3, [sp, #4]
cmp r8, #0
str r1, [sp, #0x38]
addeq sp, sp, #0x10
ldmeqia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
mov r1, r3
subs r6, r1, r7
ldr r1, [sp, #0x38]
sub r5, r1, sl
cmpeq r5, #0
bne _0210cf14
ldr r2, [sp, #0x38]
mov r1, r3
mov r3, sb
str r8, [sp]
bl func_ov05_0210cd58
add sp, sp, #0x10
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
_0210cf14:
cmp r6, #0
strge r6, [sp, #8]
rsblt r0, r6, #0
strlt r0, [sp, #8]
cmp r5, #0
movge fp, r5
ldr r1, [sp, #8]
rsblt fp, r5, #0
mov r1, r1, lsl #0xc
mov r0, fp, lsl #0xc
smull ip, r3, r1, r1
smull r2, r1, r0, r0
adds r0, ip, #0x800
adc r3, r3, #0
adds r2, r2, #0x800
mov r0, r0, lsr #0xc
adc r1, r1, #0
mov r2, r2, lsr #0xc
orr r0, r0, r3, lsl #20
orr r2, r2, r1, lsl #20
add r0, r0, r2
bl func_01ff9a80
ldr r0, [sp, #8]
cmp r0, fp
blt _0210d02c
mov r0, r5, lsl #0xc
mov r1, r6, lsl #0xc
bl func_01ff9b24
ldr r0, [sp, #4]
mov r5, sl, lsl #0xc
cmp r7, r0
movle fp, #1
mvngt fp, #0
bl func_01ff9a18
mov r6, r0
ldr r0, [sp, #0x38]
cmp sl, r0
bgt _0210cfb8
cmp r6, #0
rsblt r6, r6, #0
b _0210cfc0
_0210cfb8:
cmp r6, #0
rsbgt r6, r6, #0
_0210cfc0:
ldr r0, [sp, #8]
mov sl, #0
cmp r0, #0
addlt sp, sp, #0x10
ldmltia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
_0210cfd4:
ldr r0, [r4, #0x20]
cmp r0, #0
beq _0210cff0
add r2, r5, #0x800
mov r1, r7
mov r2, r2, asr #0xc
bl func_ov00_020d3e90
_0210cff0:
add r2, r5, #0x800
mov r0, r4
mov r1, r7
mov r3, sb
mov r2, r2, asr #0xc
str r8, [sp]
bl func_ov05_0210cd58
ldr r0, [sp, #8]
add sl, sl, #1
cmp sl, r0
add r7, r7, fp
add r5, r5, r6
ble _0210cfd4
add sp, sp, #0x10
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
_0210d02c:
mov r0, r6, lsl #0xc
mov r1, r5, lsl #0xc
bl func_01ff9b24
ldr r0, [sp, #0x38]
mov r5, r7, lsl #0xc
cmp sl, r0
movle r0, #1
strle r0, [sp, #0xc]
mvngt r0, #0
strgt r0, [sp, #0xc]
bl func_01ff9a18
mov r6, r0
ldr r0, [sp, #4]
cmp r7, r0
bgt _0210d074
cmp r6, #0
rsblt r6, r6, #0
b _0210d07c
_0210d074:
cmp r6, #0
rsbgt r6, r6, #0
_0210d07c:
cmp fp, #0
mov r7, #0
addlt sp, sp, #0x10
ldmltia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
_0210d08c:
ldr r0, [r4, #0x20]
cmp r0, #0
beq _0210d0a8
add r1, r5, #0x800
mov r2, sl
mov r1, r1, asr #0xc
bl func_ov00_020d3e90
_0210d0a8:
add r1, r5, #0x800
mov r0, r4
mov r2, sl
mov r3, sb
mov r1, r1, asr #0xc
str r8, [sp]
bl func_ov05_0210cd58
ldr r0, [sp, #0xc]
add r7, r7, #1
cmp r7, fp
add r5, r5, r6
add sl, sl, r0
ble _0210d08c
add sp, sp, #0x10
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
arm_func_end func_ov05_0210ceac
.global func_ov05_0210d0e4
arm_func_start func_ov05_0210d0e4
func_ov05_0210d0e4: ; 0x0210d0e4
stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
sub sp, sp, #0xc
ldr r5, [sp, #0x30]
ldr r4, [sp, #0x34]
cmp r2, #0
mov r8, r0
mov r7, r1
mov r6, r3
addne sp, sp, #0xc
ldmneia sp!, {r4, r5, r6, r7, r8, sb, pc}
ldr r0, _0210d30c ; =data_027e0d78
ldrb r0, [r0, #0xc]
cmp r0, #0
beq _0210d2f4
ldrb r1, [r8]
ldr r0, _0210d310 ; =data_027e077c
mov sb, #0
ldr r0, [r0]
cmp r1, #3
addls pc, pc, r1, lsl #2
b _0210d19c
_0210d138: ; jump table
b _0210d148 ; case 0
b _0210d154 ; case 1
b _0210d188 ; case 2
b _0210d194 ; case 3
_0210d148:
cmp r0, #0xd
moveq sb, #1
b _0210d19c
_0210d154:
cmp r0, #4
cmpne r0, #0x38
moveq sb, #1
beq _0210d19c
cmp r0, #9
bne _0210d19c
ldr r0, _0210d314 ; =data_027e103c
ldr r0, [r0]
bl func_ov00_020cefdc
ldrb r0, [r0, #0x33]
cmp r0, #0
movne sb, #1
b _0210d19c
_0210d188:
cmp r0, #0x11
moveq sb, #1
b _0210d19c
_0210d194:
cmp r0, #0x3d
moveq sb, #1
_0210d19c:
cmp sb, #0
beq _0210d2f4
ldr r1, [r8, #8]
mov sb, #0
mov r2, sb
mov r3, sb
cmp r1, r5
bgt _0210d1cc
ldr r0, [r8, #0x10]
add r0, r1, r0
cmp r5, r0
movlt r3, #1
_0210d1cc:
cmp r3, #0
beq _0210d1e0
ldr r0, [r8, #0xc]
cmp r0, r4
movle r2, #1
_0210d1e0:
cmp r2, #0
beq _0210d1fc
ldr r1, [r8, #0xc]
ldr r0, [r8, #0x14]
add r0, r1, r0
cmp r4, r0
movlt sb, #1
_0210d1fc:
ldr r0, _0210d318 ; =data_027e0c38
cmp r7, #0
ldr r0, [r0, #0x14]
mov r2, #0
add r5, r5, r0
bne _0210d268
ldr r0, _0210d30c ; =data_027e0d78
ldrh r0, [r0, #0x34]
tst r0, #1
bne _0210d23c
ldr r1, [r8, #0x24]
sub r0, r2, #0x8000
cmp r1, r0
ldreq r1, [r8, #0x28]
cmpeq r1, r0
bne _0210d268
_0210d23c:
cmp sb, #0
beq _0210d28c
ldrb r7, [sp, #0x28]
mov r0, r8
mov r1, r5
mov r2, r4
mov r3, r6
str r7, [sp]
bl func_ov05_0210cd58
mov r2, #1
b _0210d28c
_0210d268:
ldrb r0, [sp, #0x28]
stmia sp, {r4, r6}
str r0, [sp, #8]
ldr r1, [r8, #0x24]
ldr r2, [r8, #0x28]
mov r0, r8
mov r3, r5
bl func_ov05_0210ceac
mov r2, #1
_0210d28c:
cmp r2, #0
beq _0210d2bc
cmp sb, #0
beq _0210d2b0
ldr r3, [sp, #0x2c]
ldr r0, _0210d31c ; =data_ov00_020ee6f8
mov r1, r5
mov r2, r4
bl func_ov00_020d61b0
_0210d2b0:
str r5, [r8, #0x24]
str r4, [r8, #0x28]
b _0210d2cc
_0210d2bc:
mov r0, #0x8000
rsb r0, r0, #0
str r0, [r8, #0x24]
str r0, [r8, #0x28]
_0210d2cc:
ldr r0, _0210d320 ; =data_027e0fc8
ldr r0, [r0]
cmp r0, #0
addeq sp, sp, #0xc
ldmeqia sp!, {r4, r5, r6, r7, r8, sb, pc}
bl func_ov05_0210c980
mov r1, #1
strb r1, [r0, #0xa9]
add sp, sp, #0xc
ldmia sp!, {r4, r5, r6, r7, r8, sb, pc}
_0210d2f4:
mov r0, #0x8000
rsb r0, r0, #0
str r0, [r8, #0x24]
str r0, [r8, #0x28]
add sp, sp, #0xc
ldmia sp!, {r4, r5, r6, r7, r8, sb, pc}
.align 2, 0
arm_func_end func_ov05_0210d0e4
_0210d30c: .word data_027e0d78
_0210d310: .word data_027e077c
_0210d314: .word data_027e103c
_0210d318: .word data_027e0c38
_0210d31c: .word data_ov00_020ee6f8
_0210d320: .word data_027e0fc8
.global func_ov05_0210d324
arm_func_start func_ov05_0210d324
func_ov05_0210d324: ; 0x0210d324
stmdb sp!, {r3, lr}
sub sp, sp, #0x10
ldr lr, [sp, #0x18]
ldr ip, _0210d370 ; =data_027e0d78
stmia sp, {r3, lr}
ldr lr, [sp, #0x1c]
ldr r3, [ip, #0x10]
add lr, lr, r3
str lr, [sp, #8]
mov r3, r2
mov r2, r1
ldr lr, [sp, #0x20]
ldr ip, [ip, #0x14]
mov r1, #0
add ip, lr, ip
str ip, [sp, #0xc]
bl func_ov05_0210d0e4
add sp, sp, #0x10
ldmia sp!, {r3, pc}
.align 2, 0
arm_func_end func_ov05_0210d324
_0210d370: .word data_027e0d78
.global func_ov05_0210d374
arm_func_start func_ov05_0210d374
func_ov05_0210d374: ; 0x0210d374
stmdb sp!, {r4, lr}
sub sp, sp, #0x10
ldr ip, [sp, #0x1c]
ldr r4, [sp, #0x20]
str ip, [r0, #0x24]
str r4, [r0, #0x28]
str r3, [sp]
ldr r4, [sp, #0x18]
ldr r3, _0210d3d4 ; =data_027e0d78
str r4, [sp, #4]
ldr r4, [sp, #0x24]
ldr ip, [r3, #0x10]
ldr lr, [sp, #0x28]
add r4, r4, ip
str r4, [sp, #8]
ldr ip, [r3, #0x14]
mov r3, r2
add ip, lr, ip
mov r2, r1
mov r1, #1
str ip, [sp, #0xc]
bl func_ov05_0210d0e4
add sp, sp, #0x10
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov05_0210d374
_0210d3d4: .word data_027e0d78
.global func_ov05_0210d3d8
arm_func_start func_ov05_0210d3d8
func_ov05_0210d3d8: ; 0x0210d3d8
stmdb sp!, {r4, r5, lr}
sub sp, sp, #0x14
mov r3, r0
ldr r0, [r3]
mov ip, r1
cmp r0, #0x10
addge sp, sp, #0x14
mvnge r0, #0
ldmgeia sp!, {r4, r5, pc}
add r5, sp, #0
mov r0, #0
str r0, [r5]
str r0, [r5, #4]
str r0, [r5, #8]
str r0, [r5, #0xc]
str r0, [r5, #0x10]
add r0, ip, #0x48
ldmia r0, {r0, r1, r2}
stmia r5, {r0, r1, r2}
ldr r0, [ip, #0x88]
add r4, r3, #4
str r0, [sp, #0xc]
ldr r0, [ip, #4]
mov ip, #0x14
str r0, [sp, #0x10]
ldr lr, [r3]
ldmia r5, {r0, r1, r2}
mla r4, lr, ip, r4
stmia r4, {r0, r1, r2}
ldr r0, [sp, #0xc]
str r0, [r4, #0xc]
ldr r0, [sp, #0x10]
str r0, [r4, #0x10]
ldr r0, [r3]
add r0, r0, #1
str r0, [r3]
sub r0, r0, #1
add sp, sp, #0x14
ldmia sp!, {r4, r5, pc}
arm_func_end func_ov05_0210d3d8
.global func_ov05_0210d474
arm_func_start func_ov05_0210d474
func_ov05_0210d474: ; 0x0210d474
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x20
mov r8, r0
ldr r0, [r8]
mov r1, #0
cmp r0, #0
ble _0210d4c0
mov r3, r8
mov r2, r1
_0210d498:
str r2, [r3, #0x144]
str r2, [r3, #0x148]
str r2, [r3, #0x14c]
add r0, r1, #1
mov r1, r0, lsl #0x10
ldr r0, [r8]
add r3, r3, #0xc
cmp r0, r1, asr #16
mov r1, r1, asr #0x10
bgt _0210d498
_0210d4c0:
mov r1, #0
cmp r0, #0
str r1, [sp]
ble _0210d6c4
add r5, r8, #4
add r6, r8, #0x144
_0210d4d8:
cmp r0, #0
mov r4, #0
ble _0210d6a0
add r7, r8, #4
_0210d4e8:
ldr r0, [sp]
cmp r0, r4
beq _0210d684
ldr r2, [r5, #0xc]
ldr r0, [r7, #0xc]
ldr r1, [r5, #4]
add sb, r2, r0
ldr r0, [r7, #4]
subs r0, r1, r0
rsbmi r0, r0, #0
cmp r0, sb
bgt _0210d684
mov r0, r5
mov r1, r7
bl func_ov00_020ce2f0
movs sl, r0
bne _0210d5e8
add r0, sb, sb, lsr #31
str r0, [sp, #4]
ldr r0, _0210d6d4 ; =data_027e0764
ldr sl, [r0, #0x10]
ldr sb, [r0, #0x14]
ldr r3, [r0, #8]
ldr r1, [r0]
ldr r2, [r0, #0xc]
mov r0, #0
str r0, [sp, #0x18]
ldr r0, _0210d6d4 ; =data_027e0764
umull lr, ip, r3, r1
ldr fp, [r0, #4]
ldr r0, [sp, #4]
mla ip, r3, fp, ip
mla ip, r2, r1, ip
adds r3, sl, lr
ldr r1, _0210d6d4 ; =data_027e0764
adc r2, sb, ip
str r3, [r1]
str r2, [r1, #4]
mov r1, r2, lsr #0x10
mov r1, r1, lsl #0x10
mov r1, r1, lsr #0x10
mov r1, r1, lsl #0x10
mov r1, r1, asr #0x10
mov r1, r1, lsl #0x10
mov r1, r1, lsr #0x10
mov r1, r1, asr #0x4
mov r3, r1, lsl #0x1
ldr r1, _0210d6d8 ; =data_02050f54
mov r2, r3, lsl #0x1
ldrsh r2, [r1, r2]
add r1, r1, r3, lsl #1
ldrsh r1, [r1, #2]
str r2, [sp, #0x14]
mov r0, r0, asr #0x1
str r1, [sp, #0x1c]
ldr r2, [r8, #0x204]
ldr r1, [sp, #4]
mov r3, r6
cmp r2, r1, asr #1
movlt r0, r2
add r1, sp, #0x14
mov r2, r6
bl func_01ff9e64
b _0210d684
_0210d5e8:
cmp sl, sb
bge _0210d684
mov r0, #0x1000
mov r1, sl
bl func_01ff98e0
sub r1, sb, sl
add r1, r1, r1, lsr #31
mov r1, r1, asr #0x1
add r2, r1, r1, lsr #31
ldr r3, [r5]
ldr r1, [r7]
sub r3, r3, r1
smull sl, sb, r3, r0
mov r1, #0
adds r3, sl, #0x800
str r1, [sp, #0xc]
adc r1, sb, #0
mov r3, r3, lsr #0xc
orr r3, r3, r1, lsl #20
str r3, [sp, #8]
ldr r3, [r5, #8]
ldr r1, [r7, #8]
sub r1, r3, r1
smull sb, r3, r1, r0
mov r0, #0x800
adds r1, sb, r0
mov r0, #0
adc r0, r3, r0
mov r1, r1, lsr #0xc
orr r1, r1, r0, lsl #20
str r1, [sp, #0x10]
ldr r1, [r8, #0x204]
mov r0, r2, asr #0x1
cmp r1, r2, asr #1
movlt r0, r1
add r1, sp, #8
mov r2, r6
mov r3, r6
bl func_01ff9e64
_0210d684:
add r7, r7, #0x14
add r0, r4, #1
mov r1, r0, lsl #0x10
mov r4, r1, asr #0x10
ldr r0, [r8]
cmp r0, r1, asr #16
bgt _0210d4e8
_0210d6a0:
ldr r1, [sp]
add r5, r5, #0x14
add r1, r1, #1
mov r1, r1, lsl #0x10
cmp r0, r1, asr #16
mov r1, r1, asr #0x10
add r6, r6, #0xc
str r1, [sp]
bgt _0210d4d8
_0210d6c4:
mov r0, #0
str r0, [r8]
add sp, sp, #0x20
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
arm_func_end func_ov05_0210d474
_0210d6d4: .word data_027e0764
_0210d6d8: .word data_02050f54
.global func_ov05_0210d6dc
arm_func_start func_ov05_0210d6dc
func_ov05_0210d6dc: ; 0x0210d6dc
cmp r1, #0
blt _0210d714
cmp r1, #0x10
bge _0210d714
mov r3, #0xc
mla r3, r1, r3, r0
ldr r1, [r3, #0x144]
mov r0, #1
str r1, [r2]
ldr r1, [r3, #0x148]
str r1, [r2, #4]
ldr r1, [r3, #0x14c]
str r1, [r2, #8]
bx lr
arm_func_end func_ov05_0210d6dc
_0210d714:
mov r0, #0
str r0, [r2]
str r0, [r2, #4]
str r0, [r2, #8]
bx lr
.global func_ov05_0210d728
arm_func_start func_ov05_0210d728
func_ov05_0210d728: ; 0x0210d728
stmdb sp!, {r3, lr}
cmp r1, #0
ldmneia sp!, {r3, pc}
ldr r0, [r0]
cmp r0, #0
ldmeqia sp!, {r3, pc}
bl func_ov03_020f0e5c
ldmia sp!, {r3, pc}
arm_func_end func_ov05_0210d728
.global func_ov05_0210d748
arm_func_start func_ov05_0210d748
func_ov05_0210d748: ; 0x0210d748
stmdb sp!, {r3, lr}
ldr r0, [r0]
cmp r0, #0
ldrne r1, _0210d770 ; =data_027e080c
ldrne r1, [r1, #4]
cmpne r1, #1
cmpne r1, #2
ldmeqia sp!, {r3, pc}
bl func_ov03_020f0ee8
ldmia sp!, {r3, pc}
.align 2, 0
arm_func_end func_ov05_0210d748
_0210d770: .word data_027e080c
.global func_ov05_0210d774
arm_func_start func_ov05_0210d774
func_ov05_0210d774: ; 0x0210d774
stmdb sp!, {r3, r4, r5, r6, r7, lr}
ldr r4, _0210d81c ; =data_027e0c54
mov r5, r0
ldrb r6, [r4]
mov r4, r2
cmp r6, #0
beq _0210d7ac
ldrb r0, [r5, #0x24]
cmp r0, #0
bne _0210d7ac
cmp r1, #0
moveq r0, #1
movne r0, #0
b _0210d7b8
_0210d7ac:
cmp r6, r1
moveq r0, #1
movne r0, #0
_0210d7b8:
cmp r0, #0
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
cmp r3, #0
movne r7, #0x4000
moveq r7, #0
mov r6, #0
_0210d7d0:
add r0, r5, r6, lsl #2
ldr r0, [r0, #0x10]
cmp r0, #0
beq _0210d7ec
mov r1, r4
mov r2, r7
bl func_ov05_0210d894
_0210d7ec:
add r6, r6, #1
cmp r6, #2
blt _0210d7d0
ldrh r1, [r5, #0x20]
ldrh r0, [r5, #0x22]
cmp r1, r0
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
mov r0, r5
bl func_ov15_0217dd48
ldrh r0, [r5, #0x22]
strh r0, [r5, #0x20]
ldmia sp!, {r3, r4, r5, r6, r7, pc}
.align 2, 0
arm_func_end func_ov05_0210d774
_0210d81c: .word data_027e0c54
.global func_ov05_0210d820
arm_func_start func_ov05_0210d820
func_ov05_0210d820: ; 0x0210d820
stmdb sp!, {r4, r5, r6, r7, r8, lr}
mov r5, r0
add r0, r5, r1, lsl #2
ldr r6, [r0, #0x18]
mov r4, r2
cmp r6, #0
bne _0210d850
ldr r0, _0210d890 ; =data_027e0f64
ldr r0, [r0]
add r0, r0, r1, lsl #2
ldr r0, [r0, #4]
add r6, r0, #0x1c
_0210d850:
cmp r1, #0
movne r8, #0x40
moveq r8, #0x80
mov r7, #0
_0210d860:
add r0, r5, r7, lsl #2
ldr r0, [r0, #0x10]
cmp r0, #0
beq _0210d880
mov r1, r6
mov r2, r4
mov r3, r8
bl func_ov05_0210d9f0
_0210d880:
add r7, r7, #1
cmp r7, #2
blt _0210d860
ldmia sp!, {r4, r5, r6, r7, r8, pc}
.align 2, 0
arm_func_end func_ov05_0210d820
_0210d890: .word data_027e0f64
.global func_ov05_0210d894
arm_func_start func_ov05_0210d894
func_ov05_0210d894: ; 0x0210d894
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
mov sl, r0
ldr r0, [sl]
mov sb, r1
ldr r5, [r0, #4]
mov r8, r2
cmp r5, #0
beq _0210d9c8
mov r4, #0
_0210d8b8:
ldr r2, [r5, #0x24]
ldr r1, [r5, #0x20]
mov r0, r2, lsl #0x1b
movs r0, r0, lsr #0x1f
ldr r7, [r1]
ldr r6, [r5]
bne _0210d8ec
ldrh r1, [r5, #0x4c]
ldrh r0, [r7, #0x36]
cmp r1, r0
orrhs r0, r2, #0x10
strhs r0, [r5, #0x24]
strhsh r4, [r5, #0x4c]
_0210d8ec:
ldr r0, [r5, #0x24]
mov r0, r0, lsl #0x1d
movs r0, r0, lsr #0x1f
bne _0210d944
ldr r0, [r5, #0x84]
mov r0, r0, lsl #0xd
movs r0, r0, lsr #0x1d
beq _0210d920
ldr r1, [sl]
sub r0, r0, #1
ldrh r1, [r1, #0x48]
cmp r1, r0
bne _0210d944
_0210d920:
ldr r1, [r5, #0x9c]
and r0, sb, r1
cmp sb, r0
bne _0210d944
tst r1, r8
bne _0210d944
ldr r0, [sl]
mov r1, r5
bl func_0200fa3c
_0210d944:
ldr r0, [r7]
mov r0, r0, lsl #0x11
movs r0, r0, lsr #0x1f
ldrneh r1, [r7, #0x40]
cmpne r1, #0
beq _0210d978
ldr r0, [r5, #0x24]
mov r0, r0, lsl #0x1b
movs r0, r0, lsr #0x1f
beq _0210d978
ldrh r0, [r5, #0x4c]
cmp r0, r1
bhi _0210d988
_0210d978:
ldr r0, [r5, #0x24]
mov r0, r0, lsl #0x1f
movs r0, r0, lsr #0x1f
beq _0210d9bc
_0210d988:
ldr r0, [r5, #0xc]
cmp r0, #0
ldreq r0, [r5, #0x18]
cmpeq r0, #0
bne _0210d9bc
ldr r0, [sl]
mov r1, r5
add r0, r0, #4
bl func_02012320
ldr r2, [sl]
mov r1, r0
add r0, r2, #0x10
bl func_0201228c
_0210d9bc:
mov r5, r6
cmp r6, #0
bne _0210d8b8
_0210d9c8:
ldr r1, [sl]
ldrh r0, [r1, #0x48]
add r0, r0, #1
strh r0, [r1, #0x48]
ldr r1, [sl]
ldrh r0, [r1, #0x48]
cmp r0, #1
movhi r0, #0
strhih r0, [r1, #0x48]
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
arm_func_end func_ov05_0210d894
.global func_ov05_0210d9f0
arm_func_start func_ov05_0210d9f0
func_ov05_0210d9f0: ; 0x0210d9f0
stmdb sp!, {r3, r4, r5, r6, r7, lr}
mov r7, r0
mov r4, r1
mov r6, r2
mov r5, r3
bl func_01ffa8d4
ldr r1, _0210da78 ; =0x04000060
ldrh r0, [r1]
bic r0, r0, #0x3000
orr r0, r0, #8
strh r0, [r1]
ldr r0, [r7]
str r4, [r0, #0x44]
ldr r0, [r7]
ldr r4, [r0, #4]
cmp r4, #0
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
_0210da34:
ldr r0, [r7]
str r4, [r0, #0x40]
ldr r0, [r4, #0x24]
mov r0, r0, lsl #0x1c
movs r0, r0, lsr #0x1f
ldreq r1, [r4, #0x9c]
andeq r0, r6, r1
cmpeq r6, r0
bne _0210da68
tst r1, r5
bne _0210da68
ldr r0, [r7]
bl func_0201043c
_0210da68:
ldr r4, [r4]
cmp r4, #0
bne _0210da34
ldmia sp!, {r3, r4, r5, r6, r7, pc}
.align 2, 0
arm_func_end func_ov05_0210d9f0
_0210da78: .word 0x04000060
.global func_ov05_0210da7c
arm_func_start func_ov05_0210da7c
func_ov05_0210da7c: ; 0x0210da7c
stmdb sp!, {r4, r5, r6, lr}
ldr r1, _0210df58 ; =data_027e0d38
mov r6, r0
ldr r0, [r1]
bl func_ov00_02078b40
cmp r0, #2
ldr r0, _0210df5c ; =data_027e0d3c
moveq r4, #1
ldr r0, [r0]
movne r4, #0
mov r5, #0
bl func_ov00_02078fd4
cmp r0, #0
ldrne r0, _0210df60 ; =data_027e077c
ldrne r0, [r0]
cmpne r0, #0x30
movne r5, #1
cmp r4, #0
bne _0210daf8
ldr r0, _0210df64 ; =data_027e103c
ldr r0, [r0]
bl func_ov00_020cf444
cmp r0, #0
bne _0210daec
bl func_ov05_02107870
ldrb r0, [r0, #0x27]
cmp r0, #0
beq _0210daf8
_0210daec:
mov r0, r6
bl func_ov00_020d054c
b _0210db00
_0210daf8:
mov r0, r6
bl func_ov00_020d0594
_0210db00:
ldr r0, [r6, #0x48]
cmp r0, #0
beq _0210db2c
add r0, r6, #6
bl func_ov00_020d054c
ldrsh r1, [r6, #6]
ldrsh r0, [r6, #0xa]
cmp r1, r0
moveq r0, #0
streq r0, [r6, #0x48]
b _0210db90
_0210db2c:
mov r0, #0x10000
ldr r1, [r6, #0x64]
rsb r0, r0, #0
and r0, r1, r0
cmp r0, #0x1000000
beq _0210db70
add r0, r6, #6
bl func_ov00_020d054c
ldr r0, _0210df68 ; =data_027e0f74
ldr r0, [r0]
bl func_ov00_02097738
cmp r0, #0
bne _0210db90
ldr r0, _0210df6c ; =data_027e0c68
add r1, r6, #0x4c
bl func_02036888
b _0210db90
_0210db70:
ldr r0, _0210df6c ; =data_027e0c68
add r1, r6, #0x4c
ldr r2, [r0, #0x20]
cmp r2, r1
bne _0210db88
bl func_02036d4c
_0210db88:
add r0, r6, #6
bl func_ov00_020d0594
_0210db90:
ldr r0, _0210df68 ; =data_027e0f74
ldr r0, [r0]
bl func_ov00_02097738
cmp r0, #0
moveq r0, #0
streqb r0, [r6, #0x92]
ldrb r0, [r6, #0x92]
cmp r0, #0
bne _0210dbd4
ldr r0, _0210df70 ; =data_027e0fc8
ldr r0, [r0]
cmp r0, #0
beq _0210dbd4
bl func_ov05_0210c980
bl func_ov00_020b1e98
mov r0, #0
strb r0, [r6, #0x92]
_0210dbd4:
ldr r0, _0210df68 ; =data_027e0f74
mov r4, #0
ldr r0, [r0]
bl func_ov00_02097738
cmp r0, #0
beq _0210dbf8
ldrb r0, [r6, #0x92]
cmp r0, #0
moveq r4, #1
_0210dbf8:
ldr r0, _0210df74 ; =data_027e0db0
ldr r0, [r0, #4]
cmp r0, #0
ldrgtsh r0, [r6, #0x10]
strgth r0, [r6, #0xc]
bgt _0210dc44
cmp r4, #0
cmpeq r5, #0
bne _0210dc30
ldr r0, _0210df64 ; =data_027e103c
ldr r0, [r0]
ldrb r0, [r0, #0x2a]
cmp r0, #0
beq _0210dc3c
_0210dc30:
add r0, r6, #0xc
bl func_ov00_020d054c
b _0210dc44
_0210dc3c:
add r0, r6, #0xc
bl func_ov00_020d0594
_0210dc44:
ldr r0, _0210df60 ; =data_027e077c
ldr r1, [r0]
cmp r1, #0x28
bgt _0210dc8c
bge _0210dce8
cmp r1, #1
bgt _0210dc68
beq _0210dce8
b _0210dcf4
_0210dc68:
sub r0, r1, #0x13
cmp r0, #4
addls pc, pc, r0, lsl #2
b _0210dcf4
_0210dc78: ; jump table
b _0210dce8 ; case 0
b _0210dce8 ; case 1
b _0210dcf4 ; case 2
b _0210dce8 ; case 3
b _0210dce8 ; case 4
_0210dc8c:
cmp r1, #0x2a
bgt _0210dca4
bge _0210dce8
cmp r1, #0x29
beq _0210dce8
b _0210dcf4
_0210dca4:
sub r0, r1, #0x2b
cmp r0, #0xc
addls pc, pc, r0, lsl #2
b _0210dcf4
_0210dcb4: ; jump table
b _0210dce8 ; case 0
b _0210dcf4 ; case 1
b _0210dcf4 ; case 2
b _0210dcf4 ; case 3
b _0210dce8 ; case 4
b _0210dce8 ; case 5
b _0210dcf4 ; case 6
b _0210dcf4 ; case 7
b _0210dcf4 ; case 8
b _0210dcf4 ; case 9
b _0210dcf4 ; case 10
b _0210dcf4 ; case 11
b _0210dcf4 ; case 12
_0210dce8:
add r0, r6, #0x12
bl func_ov00_020d0594
b _0210dcfc
_0210dcf4:
add r0, r6, #0x12
bl func_ov00_020d054c
_0210dcfc:
ldr r0, _0210df70 ; =data_027e0fc8
mov r4, #0
ldr r0, [r0]
cmp r0, #0
beq _0210dd24
bl func_ov05_0210c980
ldr r0, [r0, #4]
cmp r0, #3
cmpne r0, #4
moveq r4, #1
_0210dd24:
ldr r0, _0210df78 ; =data_027e0d78
ldrb r0, [r0, #0xc]
cmp r0, #0
beq _0210dd84
ldr r0, _0210df64 ; =data_027e103c
ldr r0, [r0]
bl func_ov00_020cf42c
cmp r0, #0
bne _0210dd84
ldr r0, _0210df6c ; =data_027e0c68
bl func_020367ec
cmp r0, #0
beq _0210dd68
ldr r0, _0210df6c ; =data_027e0c68
bl func_02036824
cmp r0, #0
bne _0210dd84
_0210dd68:
cmp r4, #0
bne _0210dd9c
ldr r0, _0210df68 ; =data_027e0f74
ldr r0, [r0]
bl func_ov00_02097738
cmp r0, #0
beq _0210dd9c
_0210dd84:
mov r1, #0
strb r1, [r6, #0x93]
add r0, r6, #0x18
strb r1, [r6, #0x94]
bl func_ov00_020d0594
b _0210ddb0
_0210dd9c:
ldrb r0, [r6, #0x93]
cmp r0, #0xa
bhs _0210ddb0
add r0, r6, #0x18
bl func_ov00_020d0594
_0210ddb0:
ldr r0, _0210df58 ; =data_027e0d38
ldr r0, [r0]
bl func_ov00_02078b40
cmp r0, #2
ldrneb r4, [r6, #0x95]
ldrb r0, [r6, #0x94]
moveq r4, #1
cmp r0, #0
bne _0210de24
ldr r0, _0210df78 ; =data_027e0d78
ldrb r0, [r0, #0xc]
cmp r0, #0
beq _0210de50
ldr r0, _0210df64 ; =data_027e103c
ldr r0, [r0]
bl func_ov00_020cf42c
cmp r0, #0
bne _0210de50
cmp r4, #0
beq _0210de50
ldr r0, _0210df64 ; =data_027e103c
ldr r0, [r0]
ldrb r0, [r0, #0x24]
cmp r0, #0
beq _0210de50
ldr r0, _0210df6c ; =data_027e0c68
bl func_020367ec
cmp r0, #0
bne _0210de50
_0210de24:
ldrb r0, [r6, #0x93]
cmp r0, #0xff
addlo r0, r0, #1
strlob r0, [r6, #0x93]
ldrb r0, [r6, #0x93]
cmp r0, #0xa
bls _0210de50
mov r1, #1
add r0, r6, #0x18
strb r1, [r6, #0x94]
bl func_ov00_020d054c
_0210de50:
ldr r0, _0210df68 ; =data_027e0f74
ldr r0, [r0]
bl func_ov00_02097750
cmp r0, #0
add r0, r6, #0x1e
beq _0210de70
bl func_ov00_020d054c
b _0210de74
_0210de70:
bl func_ov00_020d0594
_0210de74:
ldr r0, _0210df70 ; =data_027e0fc8
ldr r0, [r0]
cmp r0, #0
beq _0210de9c
bl func_ov00_020bc46c
cmp r0, #0
beq _0210de9c
add r0, r6, #0x24
bl func_ov00_020d054c
b _0210dea4
_0210de9c:
add r0, r6, #0x24
bl func_ov00_020d0594
_0210dea4:
bl func_ov00_020cf948
cmp r0, #0
ldrnesh r0, [r6, #0x2e]
strneh r0, [r6, #0x2a]
bne _0210ded4
ldrb r0, [r6, #0x96]
cmp r0, #0
add r0, r6, #0x2a
beq _0210ded0
bl func_ov00_020d054c
b _0210ded4
_0210ded0:
bl func_ov00_020d0594
_0210ded4:
cmp r5, #0
ldrnesh r0, [r6, #0x46]
strneh r0, [r6, #0x42]
bne _0210df00
ldrb r0, [r6, #0x91]
cmp r0, #0
add r0, r6, #0x42
bne _0210defc
bl func_ov00_020d054c
b _0210df00
_0210defc:
bl func_ov00_020d0594
_0210df00:
ldrb r0, [r6, #0x97]
cmp r0, #0
add r0, r6, #0x30
beq _0210df18
bl func_ov00_020d054c
b _0210df1c
_0210df18:
bl func_ov00_020d0594
_0210df1c:
ldrb r0, [r6, #0x98]
cmp r0, #0
add r0, r6, #0x36
beq _0210df34
bl func_ov00_020d054c
b _0210df38
_0210df34:
bl func_ov00_020d0594
_0210df38:
ldrb r0, [r6, #0x99]
cmp r0, #0
add r0, r6, #0x3c
beq _0210df50
bl func_ov00_020d054c
ldmia sp!, {r4, r5, r6, pc}
_0210df50:
bl func_ov00_020d0594
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
arm_func_end func_ov05_0210da7c
_0210df58: .word data_027e0d38
_0210df5c: .word data_027e0d3c
_0210df60: .word data_027e077c
_0210df64: .word data_027e103c
_0210df68: .word data_027e0f74
_0210df6c: .word data_027e0c68
_0210df70: .word data_027e0fc8
_0210df74: .word data_027e0db0
_0210df78: .word data_027e0d78
.global func_ov05_0210df7c
arm_func_start func_ov05_0210df7c
func_ov05_0210df7c: ; 0x0210df7c
stmdb sp!, {r3, r4, r5, r6, r7, lr}
mov r7, r0
mov r6, r1
mov r5, r2
mov r4, r3
bl func_ov05_0210e014
cmp r0, #0
beq _0210dfc0
ldr r0, _0210e008 ; =data_027e0fc8
mov r1, #6
ldr r0, [r0]
ldr r2, [r0]
ldr r2, [r2, #0x18]
blx r2
cmp r0, #0
moveq r0, #0
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
_0210dfc0:
ldr r0, _0210e00c ; =data_027e077c
ldr r1, [r0]
ldr r0, [r0, #4]
cmp r1, r0
movne r0, #0
ldmneia sp!, {r3, r4, r5, r6, r7, pc}
str r6, [r7, #0x48]
str r5, [r7, #0x88]
str r4, [r7, #0x8c]
ldr r2, [r7, #0x48]
ldr r0, _0210e010 ; =data_027e0c68
add r1, r7, #0x4c
bl func_02036ce4
ldr r0, _0210e010 ; =data_027e0c68
add r1, r7, #0x4c
bl func_02036d30
mov r0, #1
ldmia sp!, {r3, r4, r5, r6, r7, pc}
.align 2, 0
arm_func_end func_ov05_0210df7c
_0210e008: .word data_027e0fc8
_0210e00c: .word data_027e077c
_0210e010: .word data_027e0c68
.global func_ov05_0210e014
arm_func_start func_ov05_0210e014
func_ov05_0210e014: ; 0x0210e014
ldr r0, _0210e020 ; =data_027e0fc8
ldr r0, [r0]
bx lr
.align 2, 0
arm_func_end func_ov05_0210e014
_0210e020: .word data_027e0fc8
.global func_ov05_0210e024
arm_func_start func_ov05_0210e024
func_ov05_0210e024: ; 0x0210e024
stmdb sp!, {r4, r5, r6, r7, r8, lr}
sub sp, sp, #0x10
ldr r1, [r0, #0x10]
ldmia r0, {r3, ip}
mov r4, r1, lsl #0xc
ldr r2, _0210e170 ; =0x001f0080
ldr r1, _0210e174 ; =0x040004a4
mov r0, #0x8000
str r2, [r1]
str r0, [r1, #0x1c]
mov r0, #0x1b00000
str r0, [r1, #4]
cmp r4, #0
bgt _0210e078
mov r0, #0
mov r1, r0
mov r2, #0x100000
mov r3, #0xc0000
bl func_ov05_0210e1b8
add sp, sp, #0x10
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_0210e078:
sub r6, r3, r4
cmp r6, #0
add r8, r3, r4
sub r5, ip, r4
add r7, ip, r4
ble _0210e0a4
mov r0, #0
mov r1, r0
mov r2, r6
mov r3, #0xc0000
bl func_ov05_0210e1b8
_0210e0a4:
cmp r8, #0x100000
bge _0210e0c0
mov r0, r8
rsb r2, r8, #0x100000
mov r1, #0
mov r3, #0xc0000
bl func_ov05_0210e1b8
_0210e0c0:
cmp r5, #0
ble _0210e0dc
mov r0, r6
mov r3, r5
mov r2, r4, lsl #0x1
mov r1, #0
bl func_ov05_0210e1b8
_0210e0dc:
cmp r7, #0xc0000
bge _0210e0f8
mov r0, r6
mov r1, r7
mov r2, r4, lsl #0x1
rsb r3, r7, #0xc0000
bl func_ov05_0210e1b8
_0210e0f8:
ldr r0, _0210e178 ; =0x0000ffff
ldr r1, _0210e17c ; =0x040004c0
ldr r3, _0210e180 ; =data_027e0d44
str r0, [r1]
ldr r0, [r3]
mov r2, r4, lsl #0x1
ldr r0, [r0, #0x90]
mov ip, #0
mov r0, r0, lsl #0x10
mov r0, r0, lsr #0x10
bic r0, r0, #0xe0000000
orr r0, r0, #0xbf0000
orr r0, r0, #0x39000000
str r0, [r1, #-0x18]
ldr r0, [r3]
mov r4, #0x80000
ldr r3, [r0, #0x94]
mov r0, r6
mov r3, r3, lsl #0x10
mov r3, r3, lsr #0x11
str r3, [r1, #-0x14]
str ip, [sp]
str ip, [sp, #4]
str r4, [sp, #8]
mov r1, r5
mov r3, r2
str r4, [sp, #0xc]
bl func_ov05_0210e20c
add sp, sp, #0x10
ldmia sp!, {r4, r5, r6, r7, r8, pc}
.align 2, 0
arm_func_end func_ov05_0210e024
_0210e170: .word 0x001f0080
_0210e174: .word 0x040004a4
_0210e178: .word 0x0000ffff
_0210e17c: .word 0x040004c0
_0210e180: .word data_027e0d44
.global func_ov05_0210e184
arm_func_start func_ov05_0210e184
func_ov05_0210e184: ; 0x0210e184
sub r1, r0, #0x80000
mov r0, r1, asr #0x6
add r0, r1, r0, lsr #25
mov r0, r0, lsl #0x9
mov r0, r0, asr #0x10
bx lr
arm_func_end func_ov05_0210e184
.global func_ov05_0210e19c
arm_func_start func_ov05_0210e19c
func_ov05_0210e19c: ; 0x0210e19c
stmdb sp!, {r3, lr}
rsb r0, r0, #0x60000
mov r1, #0x60
bl func_01ff9b4c
mov r0, r0, lsl #0x10
mov r0, r0, asr #0x10
ldmia sp!, {r3, pc}
arm_func_end func_ov05_0210e19c
.global func_ov05_0210e1b8
arm_func_start func_ov05_0210e1b8
func_ov05_0210e1b8: ; 0x0210e1b8
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
mov r8, r1
mov sb, r0
mov r4, r2
mov r7, r3
bl func_ov05_0210e184
mov r6, r0
mov r0, r8
bl func_ov05_0210e19c
mov r5, r0
add r0, sb, r4
bl func_ov05_0210e184
mov r4, r0
add r0, r8, r7
bl func_ov05_0210e19c
mov r1, r5
mov r2, r4
mov r3, r0
mov r0, r6
bl func_ov05_0210e398
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
arm_func_end func_ov05_0210e1b8
.global func_ov05_0210e20c
arm_func_start func_ov05_0210e20c
func_ov05_0210e20c: ; 0x0210e20c
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
sub sp, sp, #0x10
mov r8, r1
mov sb, r0
mov r4, r2
mov r7, r3
bl func_ov05_0210e184
mov r6, r0
mov r0, r8
bl func_ov05_0210e19c
mov r5, r0
add r0, sb, r4
bl func_ov05_0210e184
mov r4, r0
add r0, r8, r7
bl func_ov05_0210e19c
mov r1, r5
mov r2, r4
mov r3, r0
mov r0, r6
ldr lr, [sp, #0x30]
ldr ip, [sp, #0x34]
str lr, [sp]
str ip, [sp, #4]
ldr lr, [sp, #0x38]
ldr ip, [sp, #0x3c]
str lr, [sp, #8]
str ip, [sp, #0xc]
bl func_ov05_0210e404
add sp, sp, #0x10
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
arm_func_end func_ov05_0210e20c
.global func_ov05_0210e288
arm_func_start func_ov05_0210e288
func_ov05_0210e288: ; 0x0210e288
sub r0, r0, #0x80
mov r1, r0, lsl #0xc
mov r0, r1, asr #0x6
add r0, r1, r0, lsr #25
mov r0, r0, lsl #0x9
mov r0, r0, asr #0x10
bx lr
arm_func_end func_ov05_0210e288
.global func_ov05_0210e2a4
arm_func_start func_ov05_0210e2a4
func_ov05_0210e2a4: ; 0x0210e2a4
stmdb sp!, {r3, lr}
rsb r0, r0, #0x60
mov r0, r0, lsl #0xc
mov r1, #0x60
bl func_01ff9b4c
mov r0, r0, lsl #0x10
mov r0, r0, asr #0x10
ldmia sp!, {r3, pc}
arm_func_end func_ov05_0210e2a4
.global func_ov05_0210e2c4
arm_func_start func_ov05_0210e2c4
func_ov05_0210e2c4: ; 0x0210e2c4
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x14
mov sl, r0
ldmia sl, {r5, r6}
mov r0, r5
ldr r4, [sl, #8]
mov sb, r1
mov r8, r2
mov r7, r3
bl func_ov05_0210e288
mov fp, r0
mov r0, r6
bl func_ov05_0210e2a4
str r0, [sp, #0x10]
add r0, r5, r4
bl func_ov05_0210e288
ldr r1, [sl, #0xc]
mov r4, r0
add r0, r6, r1
bl func_ov05_0210e2a4
str sb, [sp]
str r8, [sp, #4]
mov r2, r4
mov r3, r0
ldr r1, [sp, #0x10]
ldr r4, [sp, #0x38]
str r7, [sp, #8]
mov r0, fp
str r4, [sp, #0xc]
bl func_ov05_0210e404
add sp, sp, #0x14
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
arm_func_end func_ov05_0210e2c4
.global func_ov05_0210e344
arm_func_start func_ov05_0210e344
func_ov05_0210e344: ; 0x0210e344
stmdb sp!, {r3, r4, lr}
sub sp, sp, #4
ldrb ip, [sp, #0x10]
cmp ip, #0
moveq lr, r2, lsl #0xc
movne lr, #0
cmp r3, #0
moveq r4, r1, lsl #0xc
ldrb ip, [sp, #0x10]
movne r4, #0
str lr, [sp]
cmp ip, #0
moveq r2, #0
movne r2, r2, lsl #0xc
cmp r3, #0
moveq r1, #0
movne r1, r1, lsl #0xc
mov r3, r4
bl func_ov05_0210e2c4
add sp, sp, #4
ldmia sp!, {r3, r4, pc}
arm_func_end func_ov05_0210e344
.global func_ov05_0210e398
arm_func_start func_ov05_0210e398
func_ov05_0210e398: ; 0x0210e398
stmdb sp!, {r3, r4, r5, lr}
ldr ip, _0210e400 ; =0x04000500
mov r3, r3, lsl #0x10
mov r2, r2, lsl #0x10
mov lr, #1
mov r1, r1, lsl #0x10
mov r0, r0, lsl #0x10
mov r5, r3, lsr #0x10
mov r4, r2, lsr #0x10
mov r3, r1, lsr #0x10
mov r1, r0, lsr #0x10
str lr, [ip]
orr r2, r4, r5, lsl #16
sub r0, ip, #0x74
str r2, [r0]
mov lr, #0
str lr, [r0]
orr r0, r4, r3, lsl #16
sub r2, ip, #0x6c
str r0, [r2]
orr r0, r1, r3, lsl #16
str r0, [r2]
orr r0, r1, r5, lsl #16
str r0, [r2]
str lr, [ip, #4]
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov05_0210e398
_0210e400: .word 0x04000500
.global func_ov05_0210e404
arm_func_start func_ov05_0210e404
func_ov05_0210e404: ; 0x0210e404
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
ldr r4, [sp, #0x2c]
ldr r5, [sp, #0x28]
mov r4, r4, lsl #0x8
mov r5, r5, lsl #0x8
ldr ip, _0210e4e0 ; =0x04000500
mov r7, r4, asr #0x10
mov r6, r5, asr #0x10
ldr r4, [sp, #0x24]
mov r5, r7, lsl #0x10
mov r6, r6, lsl #0x10
mov r3, r3, lsl #0x10
mov r2, r2, lsl #0x10
mov r4, r4, lsl #0x8
ldr sb, [sp, #0x20]
mov r7, #1
mov r4, r4, asr #0x10
mov r8, r4, lsl #0x10
mov r4, sb, lsl #0x8
mov lr, r1, lsl #0x10
mov r1, r4, asr #0x10
mov sb, r1, lsl #0x10
mov r4, r0, lsl #0x10
mov r1, r5, lsr #0x10
mov r0, r6, lsr #0x10
mov r6, r8, lsr #0x10
mov r5, sb, lsr #0x10
str r7, [ip]
orr sl, r0, r1, lsl #16
sub sb, ip, #0x78
mov r8, r3, lsr #0x10
mov r7, r2, lsr #0x10
mov r2, lr, lsr #0x10
mov r4, r4, lsr #0x10
str sl, [sb]
orr r3, r7, r8, lsl #16
sub sl, ip, #0x74
str r3, [sl]
mov r3, #0
str r3, [sl]
orr r0, r0, r6, lsl #16
str r0, [sb]
orr r0, r7, r2, lsl #16
sub r7, ip, #0x6c
str r0, [r7]
orr r0, r5, r6, lsl #16
str r0, [sb]
orr r0, r4, r2, lsl #16
str r0, [r7]
orr r0, r5, r1, lsl #16
str r0, [sb]
orr r0, r4, r8, lsl #16
str r0, [r7]
str r3, [ip, #4]
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
.align 2, 0
arm_func_end func_ov05_0210e404
_0210e4e0: .word 0x04000500
.global func_ov05_0210e4e4
arm_func_start func_ov05_0210e4e4
func_ov05_0210e4e4: ; 0x0210e4e4
stmdb sp!, {r3, r4, r5, r6, r7, lr}
sub sp, sp, #0x18
movs r5, r1
mov r6, r0
bne _0210e52c
ldr r0, _0210e878 ; =data_027e0fb8
mov r1, r2
ldr r0, [r0]
bl func_ov00_020af538
ldr r1, _0210e878 ; =data_027e0fb8
mov r0, r6
ldr r4, [r1]
bl func_ov00_020bc46c
cmp r0, #1
moveq r1, #1
movne r1, #0
mov r0, r4
bl func_ov00_020afb6c
_0210e52c:
mov r0, r6
mov r1, r5
bl func_ov00_020a7c00
cmp r0, #0
beq _0210e838
ldr r0, _0210e87c ; =data_027e0fcc
ldr r0, [r0]
ldr r1, [r0]
ldr r1, [r1, #0x20]
blx r1
ldr r0, _0210e880 ; =data_027e0d38
ldr r0, [r0]
ldr r0, [r0, #0x14]
cmp r0, #1
beq _0210e838
ldr r1, _0210e884 ; =data_027e0fd4
mov r0, r6
ldr r4, [r1]
bl func_ov00_020bc71c
mov r7, r0
mov r0, r6
bl func_ov00_020bc46c
cmp r0, #1
moveq r2, #1
movne r2, #0
mov r0, r4
mov r1, r7
bl func_ov00_020b5360
ldr r1, _0210e87c ; =data_027e0fcc
ldr r2, _0210e888 ; =data_027e0fa0
ldr r3, [r1]
ldr r1, _0210e884 ; =data_027e0fd4
ldr r3, [r3, #8]
ldr ip, [r2, #4]
smull r4, r0, r3, r0
adds r3, r4, #0x800
adc r0, r0, #0
mov r3, r3, lsr #0xc
orr r3, r3, r0, lsl #20
sub r3, ip, r3
ldr r0, [r1]
str r3, [r2, #4]
mov r1, #0x1000
strh r1, [r0, #0xa8]
ldrsh r0, [r6, #0x5a]
mov r1, #0
cmp r0, #0
subgt r0, r0, #1
strgth r0, [r6, #0x5a]
str r1, [r6, #0x20]
str r1, [r6, #0x24]
ldr r0, _0210e88c ; =data_027e0fd0
str r1, [r6, #0x28]
ldr r0, [r0]
ldr r1, [r0]
ldr r1, [r1, #0x1c]
blx r1
mov r0, r6
ldr r1, [r0]
ldr r1, [r1, #0x68]
blx r1
ldr r0, _0210e878 ; =data_027e0fb8
ldr r0, [r0]
ldrb r0, [r0, #0x7d]
cmp r0, #0
beq _0210e644
ldrsh r0, [r6, #8]
cmp r0, #0
subgt r0, r0, #1
strgth r0, [r6, #8]
_0210e644:
ldr r0, [r6, #0x4c]
cmp r0, #0
subgt r0, r0, #1
strgt r0, [r6, #0x4c]
ldr r0, _0210e88c ; =data_027e0fd0
ldr r0, [r0]
ldr r1, [r0]
ldr r1, [r1, #0x40]
blx r1
ldr r4, _0210e884 ; =data_027e0fd4
ldr r2, _0210e87c ; =data_027e0fcc
ldr r3, [r4]
ldr r1, _0210e890 ; =data_027e0f94
strb r0, [r3, #0xb8]
ldr r3, [r6, #0x20]
ldr r0, [r2]
str r3, [sp, #0xc]
ldr r3, [r6, #0x24]
ldr r2, _0210e888 ; =data_027e0fa0
str r3, [sp, #0x10]
ldr ip, [r6, #0x28]
add r3, sp, #0xc
str ip, [sp, #0x14]
str r0, [sp]
ldr r0, [r4]
bl func_ov00_020b5cb4
mov r0, r4
ldr r2, [r0]
ldrsh r3, [r2, #4]
cmp r3, #0
beq _0210e6d8
mov r0, r6
ldr r4, [r0]
ldrb r1, [r2, #6]
ldr r4, [r4, #0x30]
add r2, r2, #8
blx r4
_0210e6d8:
ldr r1, _0210e884 ; =data_027e0fd4
add r0, sp, #8
ldr r1, [r1]
bl func_ov05_0210e8a8
ldr r0, [sp, #8]
mov r0, r0, lsr #0x10
tst r0, #0x3f
beq _0210e760
ldr r0, _0210e884 ; =data_027e0fd4
mov r4, #0
ldr r0, [r0]
bl func_ov00_020b50e0
cmp r0, #0
beq _0210e72c
ldr r0, _0210e884 ; =data_027e0fd4
ldr r1, _0210e894 ; =data_027e0e60
ldr r2, [r0]
ldr r0, [r1]
add r1, r2, #0xc4
bl func_ov00_020840c4
mov r4, r0
_0210e72c:
ldr r1, _0210e884 ; =data_027e0fd4
add r0, sp, #4
ldr r1, [r1]
bl func_ov05_0210e8a8
ldr r0, _0210e884 ; =data_027e0fd4
ldr r1, [sp, #4]
ldr r0, [r0]
mov r1, r1, lsr #0x10
ldr r3, [r0, #0x18]
and r1, r1, #0x3f
mov r0, r6
mov r2, r4
bl func_ov00_020bc960
_0210e760:
ldr r0, _0210e898 ; =data_027e0f74
mov r4, #0
ldr r0, [r0]
bl func_ov00_02097738
cmp r0, #0
bne _0210e7b8
ldr r0, _0210e878 ; =data_027e0fb8
ldr r0, [r0]
ldrb r0, [r0, #0x7d]
cmp r0, #0
beq _0210e7b8
ldrsh r4, [r6, #8]
ldr r3, _0210e89c ; =0x66666667
mov r2, #5
smull r1, ip, r3, r4
mov r0, r4, lsr #0x1f
add ip, r0, ip, asr #1
smull r0, r1, r2, ip
sub ip, r4, r0
cmp ip, #3
movge r4, #1
movlt r4, #0
_0210e7b8:
ldr r0, _0210e884 ; =data_027e0fd4
ldr r0, [r0]
bl func_ov00_020b50f8
ldr ip, _0210e87c ; =data_027e0fcc
ldr r2, _0210e8a0 ; =data_027e0fac
ldr r1, [ip]
ldr r3, _0210e884 ; =data_027e0fd4
strb r0, [r1, #0x149]
ldr r0, [ip]
ldr r1, _0210e890 ; =data_027e0f94
strb r4, [r0, #0x14a]
ldr r0, [ip]
ldrsh r2, [r2]
ldr r4, [r0]
ldr r3, [r3]
ldr r4, [r4, #0x2c]
blx r4
ldr r0, _0210e87c ; =data_027e0fcc
ldr r0, [r0]
ldr r1, [r0]
ldr r1, [r1, #0x30]
blx r1
ldrsh r0, [r6, #0x54]
cmp r0, #0
ble _0210e838
sub r0, r0, #1
strh r0, [r6, #0x54]
ldrsh r0, [r6, #0x54]
cmp r0, #0
bgt _0210e838
mov r0, r6
bl func_ov29_02178fd0
_0210e838:
ldr r0, _0210e87c ; =data_027e0fcc
ldr r2, _0210e890 ; =data_027e0f94
ldr r0, [r0]
mov r1, r5
ldr r3, [r0]
ldr r3, [r3, #0x6c]
blx r3
mov r0, r6
bl func_ov00_020bbb64
cmp r0, #0
addeq sp, sp, #0x18
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
ldr r0, _0210e8a4 ; =data_ov00_020eec9c
bl func_ov00_020d8024
add sp, sp, #0x18
ldmia sp!, {r3, r4, r5, r6, r7, pc}
.align 2, 0
arm_func_end func_ov05_0210e4e4
_0210e878: .word data_027e0fb8
_0210e87c: .word data_027e0fcc
_0210e880: .word data_027e0d38
_0210e884: .word data_027e0fd4
_0210e888: .word data_027e0fa0
_0210e88c: .word data_027e0fd0
_0210e890: .word data_027e0f94
_0210e894: .word data_027e0e60
_0210e898: .word data_027e0f74
_0210e89c: .word 0x66666667
_0210e8a0: .word data_027e0fac
_0210e8a4: .word data_ov00_020eec9c
.global func_ov05_0210e8a8
arm_func_start func_ov05_0210e8a8
func_ov05_0210e8a8: ; 0x0210e8a8
ldr r1, [r1, #0x14]
str r1, [r0]
bx lr
arm_func_end func_ov05_0210e8a8
.global func_ov05_0210e8b4
arm_func_start func_ov05_0210e8b4
func_ov05_0210e8b4: ; 0x0210e8b4
stmdb sp!, {r3, r4, r5, lr}
sub sp, sp, #0x10
mov r5, r0
ldrb r2, [r5, #0x10]
mov r4, r1
cmp r2, #0
addeq sp, sp, #0x10
ldmeqia sp!, {r3, r4, r5, pc}
ldr r1, _0210ea88 ; =data_027e0d38
ldr r1, [r1]
ldr r1, [r1, #0x14]
cmp r1, #1
bne _0210e918
ldr r0, _0210ea8c ; =data_027e0e60
ldrh r2, [r5, #0xe]
ldr r0, [r0]
add r1, sp, #4
bl func_ov00_02083664
ldr r2, [sp, #0xc]
ldr r1, [sp, #8]
ldr r0, [sp, #4]
str r0, [r5, #0x14]
str r1, [r5, #0x18]
str r2, [r5, #0x1c]
b _0210ea38
_0210e918:
bl func_ov00_020bc500
cmp r0, #6
bne _0210ea1c
bl func_ov05_0210c980
bl func_ov00_020b1eb8
cmp r0, #0
beq _0210ea1c
ldr r0, _0210ea90 ; =data_027e0fac
ldrsh r0, [r0]
bl func_0202bbbc
cmp r0, #3
addls pc, pc, r0, lsl #2
b _0210ea38
_0210e94c: ; jump table
b _0210e95c ; case 0
b _0210e98c ; case 1
b _0210e9bc ; case 2
b _0210e9ec ; case 3
_0210e95c:
ldr r0, _0210ea94 ; =data_027e0f94
ldr r1, [r5, #0x14]
ldr r2, [r0]
cmp r2, r1
blt _0210ea38
ldr r1, [r0]
str r1, [r5, #0x14]
ldr r1, [r0, #4]
str r1, [r5, #0x18]
ldr r0, [r0, #8]
str r0, [r5, #0x1c]
b _0210ea38
_0210e98c:
ldr r0, _0210ea94 ; =data_027e0f94
ldr r1, [r5, #0x14]
ldr r2, [r0]
cmp r2, r1
bgt _0210ea38
ldr r1, [r0]
str r1, [r5, #0x14]
ldr r1, [r0, #4]
str r1, [r5, #0x18]
ldr r0, [r0, #8]
str r0, [r5, #0x1c]
b _0210ea38
_0210e9bc:
ldr r0, _0210ea94 ; =data_027e0f94
ldr r1, [r5, #0x1c]
ldr r2, [r0, #8]
cmp r2, r1
blt _0210ea38
ldr r1, [r0]
str r1, [r5, #0x14]
ldr r1, [r0, #4]
str r1, [r5, #0x18]
ldr r0, [r0, #8]
str r0, [r5, #0x1c]
b _0210ea38
_0210e9ec:
ldr r0, _0210ea94 ; =data_027e0f94
ldr r1, [r5, #0x1c]
ldr r2, [r0, #8]
cmp r2, r1
bgt _0210ea38
ldr r1, [r0]
str r1, [r5, #0x14]
ldr r1, [r0, #4]
str r1, [r5, #0x18]
ldr r0, [r0, #8]
str r0, [r5, #0x1c]
b _0210ea38
_0210ea1c:
ldr r0, _0210ea94 ; =data_027e0f94
ldr r1, [r0]
str r1, [r5, #0x14]
ldr r1, [r0, #4]
str r1, [r5, #0x18]
ldr r0, [r0, #8]
str r0, [r5, #0x1c]
_0210ea38:
ldr r0, _0210ea98 ; =data_027e0fcc
ldr r3, _0210ea90 ; =data_027e0fac
ldr r2, [r0]
mov r1, r4
ldrb ip, [r2, #0x14e]
add r2, r5, #0x14
str ip, [sp]
ldr r0, [r0]
ldrsh r3, [r3]
ldr r5, [r0]
ldr r5, [r5, #0x40]
blx r5
ldr r0, _0210ea9c ; =data_027e0fd0
mov r1, r4
ldr r0, [r0]
ldr r2, [r0]
ldr r2, [r2, #0x2c]
blx r2
add sp, sp, #0x10
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov05_0210e8b4
_0210ea88: .word data_027e0d38
_0210ea8c: .word data_027e0e60
_0210ea90: .word data_027e0fac
_0210ea94: .word data_027e0f94
_0210ea98: .word data_027e0fcc
_0210ea9c: .word data_027e0fd0
.global func_ov05_0210eaa0
arm_func_start func_ov05_0210eaa0
func_ov05_0210eaa0: ; 0x0210eaa0
stmdb sp!, {r4, r5, lr}
sub sp, sp, #0x14
ldr r2, [r0]
mov r4, r1
ldr r2, [r2, #0x10]
add r1, sp, #4
mov r5, r0
blx r2
ldrb r0, [r5, #0x11]
cmp r0, #0
beq _0210eb64
ldr r0, _0210eb90 ; =data_027e0fcc
ldr r1, _0210eb94 ; =data_027e0fac
ldr r0, [r0]
ldrsh r2, [r1]
ldr r3, [r0]
mov r1, r4
ldr r3, [r3, #0x3c]
blx r3
ldr r0, _0210eb90 ; =data_027e0fcc
cmp r4, #0
ldr r0, [r0]
ldrneb r1, [r0, #0x155]
ldreqb r1, [r0, #0x154]
cmp r1, #0
beq _0210eb64
ldr r1, _0210eb98 ; =data_027e0fb0
ldr r3, _0210eb94 ; =data_027e0fac
ldrsh ip, [r1]
ldr r2, _0210eb9c ; =data_027e0f94
mov r1, r4
str ip, [sp]
ldr ip, [r0]
ldrsh r3, [r3]
ldr ip, [ip, #0x44]
blx ip
ldr r0, _0210eba0 ; =data_027e0fd0
mov r1, r4
ldr r0, [r0]
ldr r2, [r0]
ldr r2, [r2, #0x30]
blx r2
ldr r0, _0210eb90 ; =data_027e0fcc
add r2, sp, #4
ldr r0, [r0]
mov r1, r4
ldr r3, [r0]
ldr r3, [r3, #0x4c]
blx r3
_0210eb64:
cmp r4, #0
addne sp, sp, #0x14
ldmneia sp!, {r4, r5, pc}
ldrsh r0, [r5, #0x54]
cmp r0, #0
addle sp, sp, #0x14
ldmleia sp!, {r4, r5, pc}
mov r0, r5
bl func_ov29_02179004
add sp, sp, #0x14
ldmia sp!, {r4, r5, pc}
.align 2, 0
arm_func_end func_ov05_0210eaa0
_0210eb90: .word data_027e0fcc
_0210eb94: .word data_027e0fac
_0210eb98: .word data_027e0fb0
_0210eb9c: .word data_027e0f94
_0210eba0: .word data_027e0fd0
.global func_ov05_0210eba4
arm_func_start func_ov05_0210eba4
func_ov05_0210eba4: ; 0x0210eba4
stmdb sp!, {r3, r4, r5, r6, r7, lr}
mov r4, r0
ldrh r1, [r4, #0x48]
mov r5, #1
mov r6, r5
tst r1, #0x3e
bne _0210ebf4
mov r7, #0
bl func_ov00_020bc500
cmp r0, #5
bne _0210ebec
ldrsh r0, [r4, #0xa]
cmp r0, #0
ble _0210ebec
bl func_ov05_021071f8
ldr r0, [r0, #0x18]
cmp r0, #6
moveq r7, r5
_0210ebec:
cmp r7, #0
moveq r6, #0
_0210ebf4:
cmp r6, #0
bne _0210ec34
mov r0, r4
mov r6, #0
bl func_ov00_020bc500
cmp r0, #4
bne _0210ec2c
ldrsh r0, [r4, #0xa]
cmp r0, #0
ble _0210ec2c
bl func_ov05_02106634
ldr r0, [r0, #4]
cmp r0, #7
moveq r6, #1
_0210ec2c:
cmp r6, #0
moveq r5, #0
_0210ec34:
mov r0, r5
ldmia sp!, {r3, r4, r5, r6, r7, pc}
arm_func_end func_ov05_0210eba4
.global func_ov05_0210ec3c
arm_func_start func_ov05_0210ec3c
func_ov05_0210ec3c: ; 0x0210ec3c
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #0x20
mov r6, r0
bl func_ov00_020a8c64
mov r1, #0x400
str r1, [r0]
ldr r0, [r6, #0x18]
cmp r0, #0xf
addls pc, pc, r0, lsl #2
b _0210f680
_0210ec64: ; jump table
b _0210f680 ; case 0
b _0210eca4 ; case 1
b _0210ed54 ; case 2
b _0210ed80 ; case 3
b _0210edbc ; case 4
b _0210ede8 ; case 5
b _0210eedc ; case 6
b _0210ed68 ; case 7
b _0210ed54 ; case 8
b _0210f0e8 ; case 9
b _0210f680 ; case 10
b _0210ecd0 ; case 11
b _0210ed28 ; case 12
b _0210f4f0 ; case 13
b _0210f0f8 ; case 14
b _0210f354 ; case 15
_0210eca4:
mov r0, r6
mov r1, #0
bl func_ov00_020a8b3c
cmp r0, #0
addeq sp, sp, #0x20
ldmeqia sp!, {r4, r5, r6, pc}
mov r0, r6
mov r1, #0
bl func_ov00_020a8138
add sp, sp, #0x20
ldmia sp!, {r4, r5, r6, pc}
_0210ecd0:
mov r0, r6
mov r1, #0
bl func_ov00_020a8b3c
cmp r0, #0
bne _0210ed14
mov r0, r6
bl func_ov00_020a8d50
cmp r0, #0x24000
addlt sp, sp, #0x20
ldmltia sp!, {r4, r5, r6, pc}
ldr r0, _0210f688 ; =data_027e0fb8
ldr r0, [r0]
bl func_ov00_020b034c
ldr r1, _0210f68c ; =0x00000ccd
cmp r0, r1
addlt sp, sp, #0x20
ldmltia sp!, {r4, r5, r6, pc}
_0210ed14:
mov r0, r6
mov r1, #0
bl func_ov00_020a8138
add sp, sp, #0x20
ldmia sp!, {r4, r5, r6, pc}
_0210ed28:
mov r0, r6
mov r1, #0
bl func_ov00_020a8b3c
cmp r0, #0
addeq sp, sp, #0x20
ldmeqia sp!, {r4, r5, r6, pc}
mov r0, r6
mov r1, #0
bl func_ov00_020a8138
add sp, sp, #0x20
ldmia sp!, {r4, r5, r6, pc}
_0210ed54:
mov r0, r6
mov r1, #0
bl func_ov00_020ac9e4
add sp, sp, #0x20
ldmia sp!, {r4, r5, r6, pc}
_0210ed68:
ldr r1, _0210f690 ; =data_ov00_020dc558
mov r0, r6
ldr r1, [r1]
bl func_ov00_020ac9e4
add sp, sp, #0x20
ldmia sp!, {r4, r5, r6, pc}
_0210ed80:
mov r0, r6
bl func_ov00_020a8c64
ldr r2, _0210f694 ; =0x000002aa
mov r1, #0
str r2, [r0]
mov r0, r6
bl func_ov00_020a8b3c
cmp r0, #0
addeq sp, sp, #0x20
ldmeqia sp!, {r4, r5, r6, pc}
mov r0, r6
mov r1, #0
bl func_ov00_020a8138
add sp, sp, #0x20
ldmia sp!, {r4, r5, r6, pc}
_0210edbc:
mov r0, r6
mov r1, #0
bl func_ov00_020a8b3c
cmp r0, #0
addeq sp, sp, #0x20
ldmeqia sp!, {r4, r5, r6, pc}
mov r0, r6
mov r1, #0
bl func_ov00_020a8138
add sp, sp, #0x20
ldmia sp!, {r4, r5, r6, pc}
_0210ede8:
mov r0, r6
mov r1, #0
bl func_ov00_020a8b3c
cmp r0, #0
beq _0210ee40
ldrsh r0, [r6, #0x20]
sub r0, r0, #1
strh r0, [r6, #0x20]
ldrsh r0, [r6, #0x20]
cmp r0, #0
ble _0210ee2c
ldr r1, _0210f698 ; =data_ov00_020e5adc
mov r0, r6
mov r2, #1
bl func_ov00_020a8a4c
add sp, sp, #0x20
ldmia sp!, {r4, r5, r6, pc}
_0210ee2c:
mov r0, r6
mov r1, #0
bl func_ov00_020a8138
add sp, sp, #0x20
ldmia sp!, {r4, r5, r6, pc}
_0210ee40:
mov r0, r6
bl func_ov00_020a8be8
mov r4, r0
mov r0, r6
bl func_ov00_020a8c4c
add r2, sp, #0x14
add r1, r4, #0x34
bl func_01ff9bc4
add r2, r6, #0x34
add r1, r6, #0x3c
cmp r2, r1
addeq sp, sp, #0x20
ldmeqia sp!, {r4, r5, r6, pc}
_0210ee74:
ldr r0, [r2]
cmp r0, #0
beq _0210eec8
ldr r3, [r0, #0x20]
ldr r4, [sp, #0x14]
ldr r3, [r3]
ldr r3, [r3, #4]
add r3, r4, r3
str r3, [r0, #0x28]
ldr r3, [r0, #0x20]
ldr r4, [sp, #0x18]
ldr r3, [r3]
ldr r3, [r3, #8]
add r3, r4, r3
str r3, [r0, #0x2c]
ldr r3, [r0, #0x20]
ldr r4, [sp, #0x1c]
ldr r3, [r3]
ldr r3, [r3, #0xc]
add r3, r4, r3
str r3, [r0, #0x30]
_0210eec8:
add r2, r2, #4
cmp r2, r1
bne _0210ee74
add sp, sp, #0x20
ldmia sp!, {r4, r5, r6, pc}
_0210eedc:
ldrsh r0, [r6, #0x24]
add r0, r0, #1
strh r0, [r6, #0x24]
ldr r0, [r6, #0x98]
bl func_ov00_020c0e04
mov r4, #0
mov r0, r6
mov r5, r4
bl func_ov00_020a8be8
mov r2, r4
str r2, [r0, #0x1c]
str r2, [r0, #0x20]
ldr r1, _0210f688 ; =data_027e0fb8
str r2, [r0, #0x24]
ldr r0, [r1]
bl func_ov00_020b134c
cmp r0, #0
bne _0210ef34
mov r0, r6
bl func_ov00_020a8c14
cmp r0, #0
bgt _0210f00c
_0210ef34:
ldrsh r0, [r6, #0x20]
sub r0, r0, #1
strh r0, [r6, #0x20]
ldrsh r0, [r6, #0x20]
cmp r0, #0
bne _0210ef74
mov r0, r6
mov r1, #0
bl func_ov00_020a8224
mov r0, r6
mov r1, #0
bl func_ov05_0211058c
mov r0, r6
mov r1, #0
bl func_ov00_020a8138
b _0210f030
_0210ef74:
ldr r0, _0210f688 ; =data_027e0fb8
ldr r1, [r0]
ldrsh r0, [r1, #0x72]
ldrsh r1, [r1, #0x74]
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 r1, r2, #1
ldr r0, _0210f69c ; =data_ov00_020dc550
ldr r3, _0210f6a0 ; =data_02050f54
mov r2, r2, lsl #0x1
mov r1, r1, lsl #0x1
ldrsh r2, [r3, r2]
ldr lr, [r0]
ldrsh r0, [r3, r1]
smull r1, r3, r2, lr
adds ip, r1, #0x800
smull r2, r1, r0, lr
adc r0, r3, #0
adds r2, r2, #0x800
mov r3, ip, lsr #0xc
orr r3, r3, r0, lsl #20
adc r0, r1, #0
mov r1, r2, lsr #0xc
orr r1, r1, r0, lsl #20
mov r0, r6
add r4, r4, r3
add r5, r5, r1
bl func_ov00_020a8be8
str r4, [r0, #0x1c]
mov r1, #0
str r1, [r0, #0x20]
str r5, [r0, #0x24]
b _0210f030
_0210f00c:
ldr r1, _0210f6a4 ; =data_ov00_020dc554
ldrsh r0, [r6, #0x24]
ldr r1, [r1]
bl func_02002c14
cmp r1, #0
bne _0210f030
mov r0, r6
mov r1, #2
bl func_ov00_020a8224
_0210f030:
ldrsh r3, [r6, #0x24]
ldr r1, _0210f6a8 ; =0x88888889
mov r2, #0x3c
smull r0, r4, r1, r3
add r4, r3, r4
mov r0, r3, lsr #0x1f
add r4, r0, r4, asr #5
smull r0, r1, r2, r4
subs r4, r3, r0
bne _0210f064
ldr r0, [r6, #0x98]
mov r1, #0
bl func_ov00_020c0e24
_0210f064:
mov r0, r6
bl func_ov00_020a8c4c
ldr r1, [r6, #0x9c]
cmp r1, #0
beq _0210f0c0
ldr r2, [r1, #0x20]
ldr r3, [r0]
ldr r2, [r2]
ldr r2, [r2, #4]
add r2, r3, r2
str r2, [r1, #0x28]
ldr r2, [r1, #0x20]
ldr r3, [r0, #4]
ldr r2, [r2]
ldr r2, [r2, #8]
add r2, r3, r2
str r2, [r1, #0x2c]
ldr r2, [r1, #0x20]
ldr r3, [r0, #8]
ldr r0, [r2]
ldr r0, [r0, #0xc]
add r0, r3, r0
str r0, [r1, #0x30]
_0210f0c0:
mov r0, r6
bl func_ov00_020a8d40
mov r1, #0
strb r1, [r0, #0xbb]
mov r0, r6
bl func_ov00_020a8d40
mov r1, #1
strb r1, [r0, #0xbd]
add sp, sp, #0x20
ldmia sp!, {r4, r5, r6, pc}
_0210f0e8:
mov r0, r6
bl func_ov23_021787a4
add sp, sp, #0x20
ldmia sp!, {r4, r5, r6, pc}
_0210f0f8:
mvn r3, #0
add r2, sp, #0
mov r0, r6
mov r1, #2
str r3, [sp]
str r3, [sp, #4]
bl func_ov00_020a86ec
ldr r0, _0210f6ac ; =data_027e0c54
ldrb r1, [r0]
cmp r1, #0
beq _0210f138
ldr r1, _0210f6b0 ; =func_ov05_02102a80
mov r2, #0
mov r3, #2
blx func_0203611c
b _0210f338
_0210f138:
mov r0, r6
bl func_ov00_020a8dcc
ldr r1, _0210f6b4 ; =data_ov00_020e5acc
ldr r1, [r1]
cmp r1, r0
beq _0210f1c4
ldrsh r0, [r6, #0x20]
cmp r0, #0
ble _0210f190
sub r0, r0, #1
strh r0, [r6, #0x20]
ldrsh r0, [r6, #0x20]
cmp r0, #0
bgt _0210f338
ldr r0, _0210f6b8 ; =data_027e0f64
mov r2, #0
ldr r0, [r0]
mov r3, r2
ldr r0, [r0, #4]
mov r1, #0xc
bl func_ov00_020872e8
b _0210f338
_0210f190:
ldr r0, _0210f6b8 ; =data_027e0f64
ldr r0, [r0]
ldr r0, [r0, #4]
bl func_ov00_02089a2c
cmp r0, #0
bne _0210f338
ldr r1, _0210f6b4 ; =data_ov00_020e5acc
mov r0, r6
mov r2, #1
bl func_ov00_020a8a4c
mov r0, #0xf
strh r0, [r6, #0x20]
b _0210f338
_0210f1c4:
mov r0, r6
mov r1, #0
bl func_ov00_020a8b3c
cmp r0, #0
beq _0210f2ac
ldrsh r0, [r6, #0x20]
cmp r0, #0
ble _0210f338
sub r0, r0, #1
strh r0, [r6, #0x20]
ldrsh r0, [r6, #0x20]
cmp r0, #0
bgt _0210f338
ldr r0, _0210f6bc ; =data_027e0618
ldr r0, [r0]
cmp r0, #6
bne _0210f21c
mov r1, #6
mov r0, r6
mov r2, r1
bl func_ov00_020a8148
b _0210f338
_0210f21c:
mov r0, r6
bl func_ov00_020a8bd8
cmp r0, #1
mov r0, r6
bne _0210f244
bl func_ov00_020a8118
ldr r0, _0210f6c0 ; =data_ov00_020dc55c
ldrsh r0, [r0]
strh r0, [r6, #0x20]
b _0210f338
_0210f244:
bl func_ov00_020a8c14
cmp r0, #0
bgt _0210f298
ldr r0, _0210f6c4 ; =data_027e0fb4
ldr r0, [r0]
bl func_ov00_020ae5d0
cmp r0, #0
beq _0210f298
mov r0, r6
mov r1, #6
mov r2, #9
bl func_ov00_020a8148
ldrsh r0, [r6, #0x32]
cmp r0, #0
movgt r4, #1
movle r4, #0
bl func_ov05_0210c980
strb r4, [r0, #0xab]
mov r0, #0
strh r0, [r6, #0x32]
b _0210f338
_0210f298:
mov r0, r6
mov r1, #6
mov r2, #7
bl func_ov00_020a8148
b _0210f338
_0210f2ac:
mov r0, r6
mov r1, #0x1000
mov r2, #0
bl func_ov00_020a8b04
cmp r0, #0
beq _0210f2d0
mov r0, r6
mov r1, #2
bl func_ov00_020a8508
_0210f2d0:
mov r0, r6
mov r1, #0x2c000
mov r2, #0
bl func_ov00_020a8b04
cmp r0, #0
beq _0210f338
mov r0, r6
bl func_ov00_020a8c4c
mov r2, r0
ldr r0, _0210f6c8 ; =data_ov00_020eec9c
mov r1, #0xd0
bl func_ov00_020d7a84
ldrsh r0, [r6, #0x32]
cmp r0, #0
ble _0210f338
ldr r0, _0210f6cc ; =data_027e103c
ldr r0, [r0]
bl func_ov05_02104058
ldr r0, _0210f6cc ; =data_027e103c
ldrsh r2, [r6, #0x32]
mvn r1, #0x3b
ldr r0, [r0]
smulbb r1, r2, r1
mov r2, #0
mov r3, #0x1e
bl func_ov00_020cfbf0
_0210f338:
mov r0, r6
bl func_ov00_020a8d40
ldrh r1, [r0, #0xa4]
add sp, sp, #0x20
bic r1, r1, #8
strh r1, [r0, #0xa4]
ldmia sp!, {r4, r5, r6, pc}
_0210f354:
ldr r0, _0210f6ac ; =data_027e0c54
ldrb r1, [r0]
cmp r1, #0
beq _0210f378
ldr r1, _0210f6b0 ; =func_ov05_02102a80
mov r2, #0
mov r3, #2
blx func_0203611c
b _0210f4d4
_0210f378:
mov r0, r6
bl func_ov00_020a8dcc
ldr r1, _0210f6d0 ; =data_ov05_02112a7c
ldr r1, [r1, #0x20]
cmp r1, r0
beq _0210f404
ldrsh r0, [r6, #0x20]
cmp r0, #0
ble _0210f3d0
sub r0, r0, #1
strh r0, [r6, #0x20]
ldrsh r0, [r6, #0x20]
cmp r0, #0
bgt _0210f4d4
ldr r0, _0210f6b8 ; =data_027e0f64
mov r2, #0
ldr r0, [r0]
mov r3, r2
ldr r0, [r0, #4]
mov r1, #0xc
bl func_ov00_020872e8
b _0210f4d4
_0210f3d0:
ldr r0, _0210f6b8 ; =data_027e0f64
ldr r0, [r0]
ldr r0, [r0, #4]
bl func_ov00_02089a2c
cmp r0, #0
bne _0210f4d4
ldr r1, _0210f6d4 ; =data_ov05_02112a9c
mov r0, r6
mov r2, #1
bl func_ov00_020a8a4c
mov r0, #0xf
strh r0, [r6, #0x20]
b _0210f4d4
_0210f404:
mov r0, r6
mov r1, #0
bl func_ov00_020a8b3c
cmp r0, #0
beq _0210f480
ldrsh r0, [r6, #0x20]
cmp r0, #0
ble _0210f4d4
sub r0, r0, #1
strh r0, [r6, #0x20]
ldrsh r0, [r6, #0x20]
cmp r0, #0
bgt _0210f4d4
mov r0, r6
bl func_ov00_020a8bd8
cmp r0, #1
bne _0210f460
mov r0, r6
bl func_ov00_020a8118
ldr r0, _0210f6c0 ; =data_ov00_020dc55c
ldrsh r0, [r0]
strh r0, [r6, #0x20]
b _0210f4d4
_0210f460:
mov r0, #6
bl func_01fffcd8
mov r1, #8
str r1, [r0, #4]
mov r0, r6
mov r1, #6
bl func_ov00_020a8138
b _0210f4d4
_0210f480:
mov r0, r6
mov r1, #0x1000
mov r2, #0
bl func_ov00_020a8b04
cmp r0, #0
beq _0210f4a4
mov r0, r6
mov r1, #3
bl func_ov00_020a8508
_0210f4a4:
mov r0, r6
mov r1, #0x2c000
mov r2, #0
bl func_ov00_020a8b04
cmp r0, #0
beq _0210f4d4
mov r0, r6
bl func_ov00_020a8c4c
mov r2, r0
ldr r0, _0210f6c8 ; =data_ov00_020eec9c
mov r1, #0xd0
bl func_ov00_020d7a84
_0210f4d4:
mov r0, r6
bl func_ov00_020a8d40
ldrh r1, [r0, #0xa4]
add sp, sp, #0x20
bic r1, r1, #8
strh r1, [r0, #0xa4]
ldmia sp!, {r4, r5, r6, pc}
_0210f4f0:
mov r0, r6
bl func_ov00_020a8d40
ldr r1, [r6, #0x28]
sub r1, r1, #0x1000
bl func_ov00_020b542c
ldrsh r0, [r6, #0x20]
sub r0, r0, #1
strh r0, [r6, #0x20]
ldrsh r0, [r6, #0x20]
cmp r0, #0x14
bne _0210f52c
mov r0, r6
mov r1, #2
bl func_ov00_020a8224
b _0210f62c
_0210f52c:
cmp r0, #2
bne _0210f5d8
ldr r0, _0210f6d8 ; =data_027e0f74
ldr r0, [r0]
bl func_ov00_02097738
cmp r0, #0
bne _0210f55c
ldr r0, _0210f6d8 ; =data_027e0f74
ldr r0, [r0]
bl func_ov00_02097bbc
cmp r0, #0
beq _0210f57c
_0210f55c:
mov r0, r6
bl func_ov05_02111358
cmp r0, #0
bne _0210f57c
ldrsh r0, [r6, #0x20]
add r0, r0, #1
strh r0, [r6, #0x20]
b _0210f62c
_0210f57c:
mov r0, r6
add r1, r6, #0xc
bl func_ov00_020a853c
ldr r1, [r6, #0xc]
ldr r0, _0210f6b8 ; =data_027e0f64
str r1, [sp, #8]
ldr r1, [r6, #0x10]
ldr r0, [r0]
str r1, [sp, #0xc]
ldr r2, [r6, #0x14]
add r1, sp, #8
str r2, [sp, #0x10]
bl func_ov00_0208aed8
mov r0, r6
bl func_ov00_020a8be8
ldr r2, [r0]
mov r1, #0
ldr r2, [r2, #0x28]
blx r2
mov r0, r6
mov r1, #1
bl func_ov05_021113c4
b _0210f62c
_0210f5d8:
cmp r0, #0
bgt _0210f62c
ldr r0, _0210f6b8 ; =data_027e0f64
ldr r0, [r0]
ldr r0, [r0, #4]
bl func_ov00_02089a2c
cmp r0, #0
bne _0210f62c
mov r0, r6
add r1, r6, #0xc
bl func_ov00_020a85ac
mov r0, r6
bl func_ov00_020a8d40
mov r2, #1
ldr r1, _0210f688 ; =data_027e0fb8
strb r2, [r0, #0xbe]
ldr r0, [r1]
bl func_ov00_020af298
mov r0, r6
mov r1, #0
bl func_ov00_020a8138
_0210f62c:
mov r0, r6
bl func_ov00_020a8d40
ldrsh r0, [r0, #0xc8]
cmp r0, #0xa
beq _0210f654
cmp r0, #0xf
bne _0210f65c
mov r0, r6
bl func_ov20_021773f4
b _0210f65c
_0210f654:
mov r0, r6
bl func_ov23_02178ab0
_0210f65c:
mov r0, r6
bl func_ov00_020a8b80
cmp r0, #0
beq _0210f678
mov r0, r6
mov r1, #0
bl func_ov00_020a84bc
_0210f678:
bl func_ov05_02106634
bl func_ov05_02107fc0
_0210f680:
add sp, sp, #0x20
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
arm_func_end func_ov05_0210ec3c
_0210f688: .word data_027e0fb8
_0210f68c: .word 0x00000ccd
_0210f690: .word data_ov00_020dc558
_0210f694: .word 0x000002aa
_0210f698: .word data_ov00_020e5adc
_0210f69c: .word data_ov00_020dc550
_0210f6a0: .word data_02050f54
_0210f6a4: .word data_ov00_020dc554
_0210f6a8: .word 0x88888889
_0210f6ac: .word data_027e0c54
_0210f6b0: .word func_ov05_02102a80
_0210f6b4: .word data_ov00_020e5acc
_0210f6b8: .word data_027e0f64
_0210f6bc: .word data_027e0618
_0210f6c0: .word data_ov00_020dc55c
_0210f6c4: .word data_027e0fb4
_0210f6c8: .word data_ov00_020eec9c
_0210f6cc: .word data_027e103c
_0210f6d0: .word data_ov05_02112a7c
_0210f6d4: .word data_ov05_02112a9c
_0210f6d8: .word data_027e0f74
.global func_ov05_0210f6dc
arm_func_start func_ov05_0210f6dc
func_ov05_0210f6dc: ; 0x0210f6dc
mov r0, #0
bx lr
arm_func_end func_ov05_0210f6dc
.global func_ov05_0210f6e4
arm_func_start func_ov05_0210f6e4
func_ov05_0210f6e4: ; 0x0210f6e4
ldrsh r2, [r1]
strh r2, [r0, #0x50]
ldrsh r2, [r1, #2]
strh r2, [r0, #0x52]
ldrsh r1, [r1, #4]
strh r1, [r0, #0x54]
bx lr
arm_func_end func_ov05_0210f6e4
.global func_ov05_0210f700
arm_func_start func_ov05_0210f700
func_ov05_0210f700: ; 0x0210f700
bx lr
arm_func_end func_ov05_0210f700
.global func_ov05_0210f704
arm_func_start func_ov05_0210f704
func_ov05_0210f704: ; 0x0210f704
bx lr
arm_func_end func_ov05_0210f704
.global func_ov05_0210f708
arm_func_start func_ov05_0210f708
func_ov05_0210f708: ; 0x0210f708
bx lr
arm_func_end func_ov05_0210f708
.global func_ov05_0210f70c
arm_func_start func_ov05_0210f70c
func_ov05_0210f70c: ; 0x0210f70c
mov r0, #1
bx lr
arm_func_end func_ov05_0210f70c
.global func_ov05_0210f714
arm_func_start func_ov05_0210f714
func_ov05_0210f714: ; 0x0210f714
mov r0, #0
bx lr
arm_func_end func_ov05_0210f714
.global func_ov05_0210f71c
arm_func_start func_ov05_0210f71c
func_ov05_0210f71c: ; 0x0210f71c
ldr r0, _0210f750 ; =data_027e0fb8
ldr r0, [r0]
ldrb r0, [r0, #0x7d]
cmp r0, #0
moveq r0, #1
bxeq lr
ldr r0, _0210f754 ; =data_027e077c
ldr r1, [r0]
ldr r0, [r0, #4]
cmp r1, r0
movne r0, #1
moveq r0, #0
bx lr
.align 2, 0
arm_func_end func_ov05_0210f71c
_0210f750: .word data_027e0fb8
_0210f754: .word data_027e077c
.global func_ov05_0210f758
arm_func_start func_ov05_0210f758
func_ov05_0210f758: ; 0x0210f758
stmdb sp!, {r3, r4, lr}
sub sp, sp, #0xc
ldr r2, _0210f7b0 ; =data_027e0f94
ldr r1, _0210f7b4 ; =data_027e0fd4
mov r4, r0
ldr r2, [r2, #4]
ldr r0, [r1]
add r1, sp, #0
str r2, [sp, #4]
bl func_ov00_020b5034
cmp r0, #0
addeq sp, sp, #0xc
ldmeqia sp!, {r3, r4, pc}
ldr r4, [r4, #8]
mov r0, r4
bl func_ov00_020bc46c
mov r2, r0
add r1, sp, #0
mov r0, r4
bl func_ov00_020bc8b8
add sp, sp, #0xc
ldmia sp!, {r3, r4, pc}
.align 2, 0
arm_func_end func_ov05_0210f758
_0210f7b0: .word data_027e0f94
_0210f7b4: .word data_027e0fd4
.global func_ov05_0210f7b8
arm_func_start func_ov05_0210f7b8
func_ov05_0210f7b8: ; 0x0210f7b8
stmdb sp!, {r4, lr}
mov r4, r0
bl func_ov00_020a8d40
mov r1, r0
ldrb r0, [r1, #0x1c]
ldrb r1, [r1, #0x1d]
ldr r2, _0210f800 ; =func_ov00_020b1940
bl func_ov00_020b199c
cmp r0, #0
ldmeqia sp!, {r4, pc}
ldr r4, [r4, #8]
mov r0, r4
bl func_ov00_020bc46c
mov r2, r0
ldr r1, _0210f804 ; =data_027e0f94
mov r0, r4
bl func_ov00_020bc8b8
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov05_0210f7b8
_0210f800: .word func_ov00_020b1940
_0210f804: .word data_027e0f94
.global func_ov05_0210f808
arm_func_start func_ov05_0210f808
func_ov05_0210f808: ; 0x0210f808
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x84
mov sl, r0
str r3, [sp, #8]
mov sb, r1
mov r6, r2
mov r4, #0
bl func_ov00_020a8c78
ldrsh r5, [r0]
mov r0, sl
bl func_ov00_020a8d40
ldrsh r0, [r0, #0x5a]
cmp r0, #2
moveq r0, #1
streq r0, [sp, #0xc]
movne r0, r4
strne r0, [sp, #0xc]
cmp r6, #0
beq _0210f884
mov r0, sl
bl func_ov00_020a8c4c
mov r1, r0
add r2, sp, #0x2c
mov r0, r6
bl func_01ff9bf8
ldr r0, [sp, #0x2c]
ldr r1, [sp, #0x34]
bl func_01ffa0f4
mov r0, r0, lsl #0x10
mov r5, r0, asr #0x10
b _0210f89c
_0210f884:
cmp sb, #0
ble _0210f89c
ldr r0, _021101d8 ; =data_027e0fb8
ldr r0, [r0]
bl func_ov00_020b0328
mov r5, r0
_0210f89c:
ldr r0, [sl, #8]
ldr r1, [r0]
ldr r1, [r1, #0x5c]
blx r1
cmp r0, #0
beq _0210f8dc
mov r0, #0x1800
umull r3, r2, sb, r0
mov r1, #0
mla r2, sb, r1, r2
mov r1, sb, asr #0x1f
adds r3, r3, #0x800
mla r2, r1, r0, r2
adc r0, r2, #0
mov sb, r3, lsr #0xc
orr sb, sb, r0, lsl #20
_0210f8dc:
ldr r0, [sl, #8]
mov r1, sb
ldr r2, [r0]
str r5, [sp, #0x14]
ldr r2, [r2, #0x64]
blx r2
bl func_ov05_02106634
bl func_ov00_020aee84
bl func_ov05_02106634
bl func_ov05_02107fc0
cmp sb, #0
ble _0210fee4
ldr r0, [sp, #0xc]
cmp r0, #0
bne _0210fda4
mov r0, sl
bl func_ov00_020a8d40
ldr r0, [r0, #0xd4]
cmp r0, #0
ble _0210fa38
mov r0, sl
bl func_ov00_020a8d40
ldr r0, [r0, #0x70]
mov r0, r0, lsr #0x7
and r0, r0, #3
cmp r0, #2
bne _0210fa38
mov r0, sl
bl func_ov00_020a8d40
mov r1, r0
ldr r0, [r1, #0x114]
ldr r1, [r1, #0x11c]
bl func_01ffa0f4
mov r0, r0, lsl #0x10
mov r0, r0, asr #0x10
sub r0, r0, #0x8000
mov r0, r0, lsl #0x10
sub r0, r5, r0, asr #16
mov r0, r0, lsl #0x10
mov r0, r0, lsr #0x10
mov r0, r0, asr #0x4
mov r0, r0, lsl #0x1
add r1, r0, #1
ldr r0, _021101dc ; =data_02050f54
mov r1, r1, lsl #0x1
ldrsh r1, [r0, r1]
ldr r0, _021101e0 ; =data_ov05_02112acc
smull r2, r1, sb, r1
adds r3, r2, #0x800
adc r2, r1, #0
mov r1, r3, lsr #0xc
ldr r0, [r0, #0x24]
orr r1, r1, r2, lsl #20
cmp r1, r0
ble _0210fc74
mul r0, sb, r0
bl func_02002c14
mov sb, r0
mov r0, sl
bl func_ov00_020a8c58
ldr r4, [r0]
mov r0, sl
bl func_ov00_020a8c58
mov r1, r4, asr #0x1f
mov r2, r1, lsl #0xb
mov r1, #0x800
adds r3, r1, r4, lsl #11
orr r2, r2, r4, lsr #21
adc r1, r2, #0
mov r2, r3, lsr #0xc
orr r2, r2, r1, lsl #20
str r2, [r0]
mov r0, sl
bl func_ov00_020a8c58
ldr r4, [r0, #8]
mov r0, sl
bl func_ov00_020a8c58
mov r1, r4, asr #0x1f
mov r2, r1, lsl #0xb
orr r2, r2, r4, lsr #21
mov r1, #0x800
adds r3, r1, r4, lsl #11
adc r1, r2, #0
mov r2, r3, lsr #0xc
orr r2, r2, r1, lsl #20
str r2, [r0, #8]
b _0210fc74
_0210fa38:
mov r0, sl
bl func_ov00_020a8d40
ldr r1, [r0, #0xd4]
ldr r0, _021101e4 ; =0x00000ccd
cmp r1, r0
ble _0210fc44
mov r0, sl
bl func_ov00_020a8bd8
cmp r0, #0
bne _0210fc44
cmp r6, #0
beq _0210fa80
ldr r0, _021101d8 ; =data_027e0fb8
mov r1, r6
ldr r0, [r0]
bl func_ov00_020afad8
cmp r0, #0
beq _0210fc30
_0210fa80:
mov r0, sl
bl func_ov00_020a8d40
ldrsh r0, [r0, #0xca]
cmp r0, #0
ble _0210fc04
ldr r4, _021101e8 ; =func_ov05_02110220
ldr r3, _021101ec ; =func_ov05_02110224
add r0, sp, #0x50
mov r1, #3
mov r2, #0x10
str r4, [sp]
bl func_0204f614
mov r0, sl
bl func_ov00_020a8d40
ldrh r2, [r0, #0xca]
mov r0, #0x4c
ldr r1, _021101f0 ; =data_027e0f6c
mul r0, r2, r0
ldr r1, [r1]
ldr r2, [r1, #0x20]
add r1, r2, r0
ldrh r2, [r2, r0]
ldrh r0, [r1, #2]
strh r2, [sp, #0x38]
strh r0, [sp, #0x3a]
ldrh r0, [r1, #4]
strh r0, [sp, #0x3c]
ldrh r0, [r1, #6]
strh r0, [sp, #0x3e]
ldr r2, [r1, #8]
str r2, [sp, #0x40]
ldr r0, [r1, #0xc]
cmp r2, #0
str r0, [sp, #0x44]
ldr r0, [r1, #0x10]
str r0, [sp, #0x48]
ldr r2, [r1, #0x14]
cmpeq r0, #0
str r2, [sp, #0x4c]
ldr r2, [r1, #0x18]
str r2, [sp, #0x50]
ldr r2, [r1, #0x1c]
str r2, [sp, #0x54]
ldr r2, [r1, #0x20]
str r2, [sp, #0x58]
ldr r2, [r1, #0x24]
str r2, [sp, #0x5c]
ldr r2, [r1, #0x28]
str r2, [sp, #0x60]
ldr r2, [r1, #0x2c]
str r2, [sp, #0x64]
ldr r2, [r1, #0x30]
str r2, [sp, #0x68]
ldr r2, [r1, #0x34]
str r2, [sp, #0x6c]
ldr r2, [r1, #0x38]
str r2, [sp, #0x70]
ldr r2, [r1, #0x3c]
str r2, [sp, #0x74]
ldr r2, [r1, #0x40]
str r2, [sp, #0x78]
ldr r2, [r1, #0x44]
str r2, [sp, #0x7c]
ldr r1, [r1, #0x48]
str r1, [sp, #0x80]
beq _0210fbf0
ldr r0, [sp, #0x40]
ldr r1, [sp, #0x48]
bl func_01ffa0f4
mov r0, r0, lsl #0x10
sub r1, r5, r0, asr #16
mov r1, r1, lsl #0x10
mov r1, r1, asr #0x10
cmp r1, #0x4000
mov r2, r0, asr #0x10
ble _0210fbcc
ldr r0, _021101f4 ; =0x0000638e
cmp r1, r0
bge _0210fbcc
add r0, r2, #0x4000
mov r0, r0, lsl #0x10
mov r5, r0, asr #0x10
b _0210fbf0
_0210fbcc:
mov r0, #0x4000
rsb r0, r0, #0
cmp r1, r0
bge _0210fbf0
ldr r0, _021101f8 ; =0xffff9c72
cmp r1, r0
subgt r0, r2, #0x4000
movgt r0, r0, lsl #0x10
movgt r5, r0, asr #0x10
_0210fbf0:
ldr r3, _021101e8 ; =func_ov05_02110220
add r0, sp, #0x50
mov r1, #3
mov r2, #0x10
bl func_0204f754
_0210fc04:
ldr r2, [sp, #8]
mov r0, sl
mov r1, r5
bl func_ov05_02110e0c
mov r0, sl
mov r1, #0
mov r2, #0x1000
bl func_ov00_020a8294
add sp, sp, #0x84
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
_0210fc30:
ldr r0, _021101d8 ; =data_027e0fb8
ldr r0, [r0]
bl func_ov00_020af050
mov sb, #0
b _0210fc74
_0210fc44:
mov r0, sl
bl func_ov00_020a8b80
cmp r0, #0
beq _0210fc74
ldr r0, _021101d8 ; =data_027e0fb8
ldr r0, [r0]
bl func_ov00_020b129c
mov r3, r0
mov r0, sl
mov r1, sb
mov r2, r5
bl func_ov00_020a8680
_0210fc74:
mov r0, sl
bl func_ov00_020a8d40
add r0, r0, #0x114
add r3, sp, #0x20
ldmia r0, {r0, r1, r2}
stmia r3, {r0, r1, r2}
ldr r0, [sp, #0x20]
cmp r0, #0
ldreq r0, [sp, #0x28]
cmpeq r0, #0
beq _0210fd34
mov r0, sl
bl func_ov00_020a8d40
ldr r0, [r0, #0x70]
mov r0, r0, lsr #0x7
and r0, r0, #3
cmp r0, #2
beq _0210fd34
cmp r6, #0
bne _0210fd44
ldr r1, _021101fc ; =0x00000e39
mov r0, sl
mov r2, #0x800
bl func_ov00_020a8294
ldr r0, [sp, #0x20]
ldr r1, [sp, #0x28]
bl func_01ffa0f4
mov r0, r0, lsl #0x10
mov r0, r0, asr #0x10
sub r0, r0, #0x8000
mov r0, r0, lsl #0x10
rsb r0, r5, r0, asr #16
mov r1, r0, lsl #0x10
mov r0, sl
mov r4, r1, asr #0x10
bl func_ov00_020a8d40
ldr r0, [r0, #0xd4]
smull r1, r0, r4, r0
adds r1, r1, #0x800
adc r0, r0, #0
mov r1, r1, lsr #0xc
orr r1, r1, r0, lsl #20
ldr r0, [sp, #0x14]
add r0, r0, r1
mov r0, r0, lsl #0x10
mov r0, r0, asr #0x10
str r0, [sp, #0x14]
b _0210fd44
_0210fd34:
mov r0, sl
mov r1, #0
mov r2, #0x1000
bl func_ov00_020a8294
_0210fd44:
mov r0, sl
bl func_ov00_020a8bc4
ldr r1, [r0]
mov r0, sl
smull r2, r1, sb, r1
adds r3, r2, #0x800
adc r2, r1, #0
mov r4, r3, lsr #0xc
mov r1, #2
orr r4, r4, r2, lsl #20
bl func_ov00_020a8ba0
cmp r0, #0
beq _0210feec
ldr r0, _02110200 ; =0x000004cd
mov r1, #0
umull r3, r2, r4, r0
mla r2, r4, r1, r2
mov r1, r4, asr #0x1f
adds r3, r3, #0x800
mla r2, r1, r0, r2
adc r0, r2, #0
mov r4, r3, lsr #0xc
orr r4, r4, r0, lsl #20
b _0210feec
_0210fda4:
bl func_ov05_0210b96c
ldrsh r0, [r0, #0xa]
cmp r0, #1
blt _0210feec
bl func_ov05_0210b96c
str r0, [sp, #0x10]
add r0, r0, #0x18
mov fp, sb, asr #0x1f
mov r6, #0
str r0, [sp, #0x18]
_0210fdcc:
ldr r0, [sp, #0x10]
mov r1, r6
bl func_ov14_0213d63c
mov r7, r0
sub r0, r5, r7
mov r0, r0, lsl #0x10
mov r0, r0, lsr #0x10
mov r1, r0, asr #0x4
ldr r0, _021101dc ; =data_02050f54
add r0, r0, r1, lsl #2
ldrsh r1, [r0, #2]
mov r0, r1, asr #0x1f
umull r3, r2, sb, r1
mla r2, sb, r0, r2
mla r2, fp, r1, r2
mov r0, #0x800
adds r1, r3, r0
mov r0, #0
adc r0, r2, r0
mov r8, r1, lsr #0xc
orr r8, r8, r0, lsl #20
cmp r8, #0xcd
ble _0210fed4
cmp r6, #0
moveq r2, #1
ldr r0, [sp, #0x18]
movne r2, #0
mov r1, #0x1c
mla r1, r2, r1, r0
mov r0, sl
mov r2, r7
bl func_ov00_020a8774
cmp r0, #0
beq _0210fe90
mov r0, #0x148
umull r3, r2, r8, r0
mov r0, #0
mla r2, r8, r0, r2
mov r1, r8, asr #0x1f
mov r0, #0x148
mla r2, r1, r0, r2
mov r0, #0x800
adds r1, r3, r0
mov r0, #0
adc r0, r2, r0
mov r4, r1, lsr #0xc
mov r5, r7
orr r4, r4, r0, lsl #20
b _0210fed4
_0210fe90:
mov r0, sl
bl func_ov00_020a8d40
mov r1, #1
strh r1, [r0, #0x5a]
ldr r4, [sp, #8]
ldr r3, _02110200 ; =0x000004cd
mov r0, sl
mov r1, r7
mov r2, #0x52
str r4, [sp]
bl func_ov05_02110e28
mov r0, sl
mov r1, #0
bl func_ov00_020a8138
add sp, sp, #0x84
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
_0210fed4:
add r6, r6, #1
cmp r6, #2
blt _0210fdcc
b _0210feec
_0210fee4:
bl func_ov05_0210aaf8
bl func_ov00_020a8f80
_0210feec:
mov r0, sl
bl func_ov00_020a8bd8
cmp r0, #1
mov r0, sl
bne _0210ff3c
bl func_ov00_020a8b80
cmp r0, #0
beq _0211016c
ldr r0, [sp, #8]
mov r2, r5
str r0, [sp]
ldr r3, [sp, #0x14]
ldr r5, [sp, #0xc]
mov r0, sl
mov r1, r4
str r5, [sp, #4]
bl func_ov05_02110228
mov r0, sl
bl func_ov05_0210f758
b _0211016c
_0210ff3c:
bl func_ov00_020a8b80
cmp r0, #0
mov r0, sl
bne _0210ffc8
ldr r5, _02110204 ; =0xfffffd71
bl func_ov00_020a8d40
ldrsh r0, [r0, #0x5c]
cmp r0, #0
ble _0210ff70
mov r0, sl
bl func_ov00_020a8d40
ldr r0, [r0, #0x68]
add r5, r5, r0
_0210ff70:
mov r0, sl
bl func_ov00_020a8c58
ldr r0, [r0, #4]
cmp r0, r5
blt _0210ff9c
mov r0, sl
bl func_ov00_020a8dcc
ldr r1, _021101e0 ; =data_ov05_02112acc
ldr r1, [r1, #0x38]
cmp r1, r0
bne _0210ffac
_0210ff9c:
ldr r1, _02110208 ; =data_ov05_02112b04
mov r0, sl
mov r2, #1
bl func_ov00_020a8a4c
_0210ffac:
ldr r0, [sp, #8]
cmp r0, #0
beq _0211016c
ldr r1, _0211020c ; =data_ov00_020e5694
mov r0, sl
bl func_ov00_020a8ab0
b _0211016c
_0210ffc8:
bl func_ov00_020a8dcc
ldr r1, _021101e0 ; =data_ov05_02112acc
ldr r1, [r1, #0x38]
cmp r1, r0
bne _02110054
mov r0, sl
bl func_ov00_020a8d50
cmp r0, #0x4000
bge _02110054
mov r0, sl
bl func_ov00_020a8d40
ldr r1, [r0, #0xe4]
cmp r1, #0
ldreq r0, [r0, #0xec]
cmpeq r0, #0
bne _02110054
ldr r0, [sp, #8]
cmp r0, #0
beq _02110020
ldr r1, _0211020c ; =data_ov00_020e5694
mov r0, sl
bl func_ov00_020a8ab0
_02110020:
mov r0, sl
bl func_ov00_020a8d40
ldrb r0, [r0, #0x59]
cmp r0, #0
beq _0211016c
mov r0, sl
bl func_ov00_020a8d40
ldrb r0, [r0, #0x58]
cmp r0, #0
bne _0211016c
mov r0, sl
bl func_ov05_02110bb4
b _0211016c
_02110054:
cmp sb, #0
ldreq r0, [sp, #8]
mov r6, #0
cmpeq r0, #0
bne _0211008c
mov r0, sl
bl func_ov00_020a8d40
mov r1, r0
add r0, sp, #0x1c
bl func_ov05_02107208
ldr r0, [sp, #0x1c]
and r0, r0, #0x1f
cmp r0, #0xc
moveq r6, #1
_0211008c:
cmp r6, #0
beq _021100cc
mov r0, sl
bl func_ov00_020a8d40
add r0, r0, #0x44
bl func_01ff9cec
cmp r0, #0xcd
ble _021100cc
ldr r1, _02110210 ; =data_ov05_02112b14
mov r0, sl
mov r2, #1
bl func_ov00_020a8a4c
ldr r0, _02110214 ; =data_ov00_020eec9c
mov r1, #0xda
bl func_ov00_020d7cd4
b _02110164
_021100cc:
cmp r6, #0
beq _02110140
mov r0, sl
bl func_ov00_020a8dcc
ldr r1, _021101e0 ; =data_ov05_02112acc
ldr r1, [r1, #0x48]
cmp r1, r0
bne _02110140
mov r0, sl
mov r1, #0
bl func_ov00_020a8b3c
cmp r0, #0
bne _02110140
mov r0, sl
mov r1, #0x1000
mov r2, #0
bl func_ov00_020a8b04
cmp r0, #0
beq _02110130
mov r0, sl
bl func_ov00_020a8c4c
mov r2, r0
ldr r0, _02110214 ; =data_ov00_020eec9c
ldr r1, _02110218 ; =0x00000122
bl func_ov00_020d7b20
_02110130:
ldr r0, _02110214 ; =data_ov00_020eec9c
mov r1, #0xda
bl func_ov00_020d7cd4
b _02110164
_02110140:
ldr r0, [sp, #8]
mov r2, r5
str r0, [sp]
ldr r3, [sp, #0x14]
ldr r5, [sp, #0xc]
mov r0, sl
mov r1, r4
str r5, [sp, #4]
bl func_ov05_02110228
_02110164:
mov r0, sl
bl func_ov05_0210f758
_0211016c:
ldr r0, _021101e0 ; =data_ov05_02112acc
ldr r0, [r0, #0x20]
cmp r4, r0
ble _021101bc
mov r0, sl
bl func_ov00_020a8bd8
cmp r0, #0
bne _021101a8
ldr r1, _021101d8 ; =data_027e0fb8
mov r0, sl
ldr r5, [r1]
bl func_ov00_020a8c4c
mov r1, r0
mov r0, r5
bl func_ov00_020b014c
_021101a8:
ldr r0, _0211021c ; =data_027e103c
mov r1, #1
ldr r0, [r0]
bl func_ov05_02103f80
b _021101cc
_021101bc:
ldr r0, _0211021c ; =data_027e103c
mov r1, #0
ldr r0, [r0]
bl func_ov05_02103f80
_021101cc:
mov r0, r4
add sp, sp, #0x84
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
arm_func_end func_ov05_0210f808
_021101d8: .word data_027e0fb8
_021101dc: .word data_02050f54
_021101e0: .word data_ov05_02112acc
_021101e4: .word 0x00000ccd
_021101e8: .word func_ov05_02110220
_021101ec: .word func_ov05_02110224
_021101f0: .word data_027e0f6c
_021101f4: .word 0x0000638e
_021101f8: .word 0xffff9c72
_021101fc: .word 0x00000e39
_02110200: .word 0x000004cd
_02110204: .word 0xfffffd71
_02110208: .word data_ov05_02112b04
_0211020c: .word data_ov00_020e5694
_02110210: .word data_ov05_02112b14
_02110214: .word data_ov00_020eec9c
_02110218: .word 0x00000122
_0211021c: .word data_027e103c
.global func_ov05_02110220
arm_func_start func_ov05_02110220
func_ov05_02110220: ; 0x02110220
bx lr
arm_func_end func_ov05_02110220
.global func_ov05_02110224
arm_func_start func_ov05_02110224
func_ov05_02110224: ; 0x02110224
bx lr
arm_func_end func_ov05_02110224
.global func_ov05_02110228
arm_func_start func_ov05_02110228
func_ov05_02110228: ; 0x02110228
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
ldr r4, _02110580 ; =data_ov05_02112acc
mov r8, r1
ldr r1, [r4, #0x20]
mov r5, r0
mov r4, r2
mov r7, r3
cmp r8, r1
bgt _02110264
ldr r0, [r5, #8]
ldr r1, [r0]
ldr r1, [r1, #0x5c]
blx r1
cmp r0, #0
beq _021104fc
_02110264:
mov r0, r5
bl func_ov00_020a8cd0
mov r6, r0
ldr r0, [r5, #8]
ldr r1, [r0]
ldr r1, [r1, #0x60]
blx r1
cmp r0, #0
ble _021102dc
mov r1, r0, asr #0x1f
mov r3, r1, lsl #0xb
mov r2, #0x800
adds sb, r2, r0, lsl #11
orr r3, r3, r0, lsr #21
adc r3, r3, #0
mov sb, sb, lsr #0xc
orr sb, sb, r3, lsl #20
rsb r3, sb, #0x1000
smull sb, r3, r6, r3
adds r6, sb, #0x800
mov r1, r1, lsl #0xa
adc r3, r3, #0
adds r2, r2, r0, lsl #10
orr r1, r1, r0, lsr #22
mov r6, r6, lsr #0xc
adc r0, r1, #0
mov r1, r2, lsr #0xc
orr r6, r6, r3, lsl #20
orr r1, r1, r0, lsl #20
sub r6, r6, r1
_021102dc:
mov r0, r6, asr #0x1f
mov r1, r0, lsl #0xb
mov r0, #0x800
adds r2, r0, r6, lsl #11
orr r1, r1, r6, lsr #21
adc r0, r1, #0
mov r1, r2, lsr #0xc
orr r1, r1, r0, lsl #20
rsb r0, r1, #0x1000
smull r0, r6, r8, r0
adds r8, r0, #0x800
ldr r1, _02110580 ; =data_ov05_02112acc
mov r0, r5
ldrsh r3, [r1, #0x28]
mov r1, r4
mov r2, r7
adc r6, r6, #0
mov sb, r8, lsr #0xc
orr sb, sb, r6, lsl #20
bl func_ov00_020a8238
ldr r0, [r5, #8]
mov r6, sb
ldr r1, [r0]
ldr r1, [r1, #0x5c]
blx r1
cmp r0, #0
beq _0211037c
mov r0, r5
bl func_ov00_020a8bc4
ldr r6, [r0]
mov r0, #0x1800
umull r3, r2, r6, r0
mov r1, #0
adds r3, r3, #0x800
mla r2, r6, r1, r2
mov r1, r6, asr #0x1f
mla r2, r1, r0, r2
adc r0, r2, #0
mov r6, r3, lsr #0xc
orr r6, r6, r0, lsl #20
_0211037c:
ldrb r0, [sp, #0x24]
mov r7, #5
mov r8, #6
cmp r0, #0
movne r7, #0x44
bne _021103c0
mov r0, r5
mov r1, #1
bl func_ov00_020a8cec
cmp r0, #0
movne r7, #8
bne _021103c0
mov r0, r5
mov r1, #3
bl func_ov00_020a8cec
cmp r0, #0
movne r7, #0x34
_021103c0:
bl func_ov05_02107870
ldr sl, [r0, #0x14]
mvn r0, #0
cmp sl, r0
ldrb r0, [sp, #0x24]
moveq sl, #0
cmp r0, #0
movne r8, #0x44
bne _02110410
mvn r0, #0
cmp sl, r0
beq _02110410
mov r0, r5
mov r1, sl
bl func_ov00_020a8cec
cmp r0, #0
beq _02110410
cmp sl, #3
moveq r8, #0x35
movne r8, #7
_02110410:
mov r0, r5
bl func_ov00_020a8be8
ldr sl, [r0]
mov r1, r6
ldr sl, [sl, #0x64]
mov r2, r7
mov r3, r8
blx sl
ldrb r0, [sp, #0x20]
cmp r0, #0
beq _0211044c
ldr r1, _02110584 ; =data_ov00_020e5694
mov r0, r5
bl func_ov00_020a8ab0
b _02110458
_0211044c:
mov r0, r5
mov r1, r6
bl func_ov05_0211086c
_02110458:
mov r0, r5
mov r1, #0x15000
mov r2, #0
bl func_ov00_020a8b04
cmp r0, #0
bne _02110488
mov r0, r5
mov r1, #0x5000
mov r2, #0
bl func_ov00_020a8b04
cmp r0, #0
beq _02110494
_02110488:
mov r0, r5
mov r1, r6
bl func_ov05_02110b40
_02110494:
ldr r0, [r5, #8]
ldr r1, [r0]
ldr r1, [r1, #0x5c]
blx r1
cmp r0, #0
bne _021104b4
mov r0, r5
bl func_ov05_02110be8
_021104b4:
mov r0, r5
bl func_ov00_020a8c78
ldrsh r0, [r0]
sub r0, r0, r4
mov r0, r0, lsl #0x10
mov r0, r0, asr #0x10
movs r0, r0, asr #0x3
rsbmi r0, r0, #0
rsb r0, r0, #0x1000
smull r1, r0, sb, r0
adds r1, r1, #0x800
adc r3, r0, #0
mov r2, r1, lsr #0xc
mov r0, r5
mov r1, r4
orr r2, r2, r3, lsl #20
bl func_ov00_020a82c4
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
_021104fc:
mov r0, r5
bl func_ov00_020a8dcc
cmp r0, #0xa
bne _02110520
mov r0, r5
mov r1, #0
bl func_ov00_020a8b3c
cmp r0, #0
ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
_02110520:
ldrb r0, [sp, #0x24]
cmp r0, #0
beq _02110554
ldr r1, _02110588 ; =data_ov05_02112b54
mov r0, r5
bl func_ov00_020a8a90
ldrb r0, [sp, #0x20]
cmp r0, #0
ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
ldr r1, _02110584 ; =data_ov00_020e5694
mov r0, r5
bl func_ov00_020a8ab0
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
_02110554:
ldrb r0, [sp, #0x20]
cmp r0, #0
beq _02110570
ldr r1, _02110584 ; =data_ov00_020e5694
mov r0, r5
bl func_ov00_020a8a90
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
_02110570:
mov r0, r5
mov r1, #1
bl func_ov05_0211058c
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
.align 2, 0
arm_func_end func_ov05_02110228
_02110580: .word data_ov05_02112acc
_02110584: .word data_ov00_020e5694
_02110588: .word data_ov05_02112b54
.global func_ov05_0211058c
arm_func_start func_ov05_0211058c
func_ov05_0211058c: ; 0x0211058c
stmdb sp!, {r3, r4, r5, r6, r7, lr}
ldr r2, _021107bc ; =data_027e0d38
mov r4, r0
ldr r0, [r2]
mov r7, r1
mov r5, #0
bl func_ov00_02078b40
cmp r0, #3
bne _02110610
ldr r0, _021107c0 ; =data_027e103c
ldr r0, [r0]
bl func_ov00_020cfb94
cmp r0, #0
beq _02110610
ldr r0, _021107c0 ; =data_027e103c
ldr r0, [r0]
bl func_ov00_020cfbb0
cmp r0, #0
bne _02110610
mov r0, r4
bl func_ov00_020a8c08
cmp r0, #0
ble _02110610
ldr r0, _021107c4 ; =data_027e0fd4
ldr r6, [r0]
mov r0, r6
bl func_ov00_020b510c
cmp r0, #0
bne _02110610
mov r0, r6
bl func_ov00_020b50f8
cmp r0, #0
moveq r5, #1
_02110610:
mov r0, r4
bl func_ov00_020a8ca4
cmp r0, #0
beq _02110634
ldr r1, _021107c8 ; =data_ov00_020e5694
mov r0, r4
bl func_ov00_020a8a90
mov r0, #1
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_02110634:
add r1, sp, #0
mov r0, r4
bl func_ov00_020a8704
cmp r0, #0
beq _02110684
ldrsh r0, [sp]
cmp r0, #0
rsblt r0, r0, #0
movlt r0, r0, lsl #0x10
movlt r0, r0, asr #0x10
cmp r0, #0x4000
ble _02110674
ldr r1, _021107cc ; =data_ov05_02112b74
mov r0, r4
bl func_ov00_020a8a90
b _021107b4
_02110674:
ldr r1, _021107d0 ; =data_ov05_02112b84
mov r0, r4
bl func_ov00_020a8a90
b _021107b4
_02110684:
mov r0, r4
mov r1, #3
bl func_ov00_020a8cec
cmp r0, #0
beq _021106ac
ldr r1, _021107d4 ; =data_ov05_02112b64
mov r0, r4
bl func_ov00_020a8a90
mov r0, #1
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_021106ac:
cmp r7, #0
beq _02110784
mov r0, r4
bl func_ov00_020a8c14
ldr r1, _021107d8 ; =data_ov05_02112acc
ldr r1, [r1, #0x2c]
cmp r0, r1
ble _021106d4
cmp r5, #0
beq _02110784
_021106d4:
ldr r0, _021107dc ; =data_027e0f74
ldr r0, [r0]
bl func_ov00_02097738
cmp r0, #0
ldreq r0, _021107e0 ; =data_027e0c68
ldreqb r0, [r0, #4]
cmpeq r0, #0
bne _02110784
ldr r0, _021107e4 ; =data_ov09_0211f5b4
bl func_ov03_020f3f94
cmp r0, #0
bne _02110784
mov r0, r4
bl func_ov00_020a8dcc
ldr r1, _021107d8 ; =data_ov05_02112acc
ldr r1, [r1, #0xc8]
cmp r1, r0
mov r0, r4
bne _02110740
mov r1, #0
bl func_ov00_020a8b3c
cmp r0, #0
beq _02110764
ldr r1, _021107e8 ; =data_ov05_02112ba4
mov r0, r4
bl func_ov00_020a8a90
b _02110764
_02110740:
bl func_ov00_020a8dcc
ldr r1, _021107d8 ; =data_ov05_02112acc
ldr r1, [r1, #0xd8]
cmp r1, r0
beq _02110764
ldr r1, _021107ec ; =data_ov05_02112b94
mov r0, r4
mov r2, #1
bl func_ov00_020a8a4c
_02110764:
mov r0, r4
bl func_ov00_020a8c78
ldrsh r1, [r0]
ldr r3, _021107f0 ; =0x00000333
mov r0, r4
mov r2, r1
bl func_ov00_020a8238
b _021107b4
_02110784:
mov r0, r4
mov r1, #1
bl func_ov00_020a8cec
cmp r0, #0
beq _021107a8
ldr r1, _021107f4 ; =data_ov05_02112bb4
mov r0, r4
bl func_ov00_020a8a90
b _021107b4
_021107a8:
ldr r1, _021107f8 ; =data_ov00_020e5684
mov r0, r4
bl func_ov00_020a8a90
_021107b4:
mov r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, pc}
.align 2, 0
arm_func_end func_ov05_0211058c
_021107bc: .word data_027e0d38
_021107c0: .word data_027e103c
_021107c4: .word data_027e0fd4
_021107c8: .word data_ov00_020e5694
_021107cc: .word data_ov05_02112b74
_021107d0: .word data_ov05_02112b84
_021107d4: .word data_ov05_02112b64
_021107d8: .word data_ov05_02112acc
_021107dc: .word data_027e0f74
_021107e0: .word data_027e0c68
_021107e4: .word data_ov09_0211f5b4
_021107e8: .word data_ov05_02112ba4
_021107ec: .word data_ov05_02112b94
_021107f0: .word 0x00000333
_021107f4: .word data_ov05_02112bb4
_021107f8: .word data_ov00_020e5684
.global func_ov05_021107fc
arm_func_start func_ov05_021107fc
func_ov05_021107fc: ; 0x021107fc
stmdb sp!, {r4, lr}
mov r4, r0
ldr r0, [r4, #8]
ldrb r1, [r0, #0x5e]
cmp r1, #0
ldmeqia sp!, {r4, pc}
bl func_ov00_020bc46c
cmp r0, #0
ldmneia sp!, {r4, pc}
mov r0, r4
bl func_ov00_020a8db8
ldr r1, _02110860 ; =data_ov00_020e5684
ldr r1, [r1]
cmp r1, r0
beq _02110850
mov r0, r4
bl func_ov00_020a8db8
ldr r1, _02110864 ; =data_ov05_02112acc
ldr r1, [r1, #0xe8]
cmp r1, r0
ldmneia sp!, {r4, pc}
_02110850:
ldr r1, _02110868 ; =data_ov05_02112bc4
mov r0, r4
bl func_ov00_020a8a90
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov05_021107fc
_02110860: .word data_ov00_020e5684
_02110864: .word data_ov05_02112acc
_02110868: .word data_ov05_02112bc4
.global func_ov05_0211086c
arm_func_start func_ov05_0211086c
func_ov05_0211086c: ; 0x0211086c
stmdb sp!, {r3, r4, r5, lr}
mov r4, r1
add r1, sp, #0
mov r5, r0
bl func_ov00_020a8704
cmp r0, #0
ldmeqia sp!, {r3, r4, r5, pc}
ldrsh r0, [sp]
cmp r0, #0
rsblt r0, r0, #0
movlt r0, r0, lsl #0x10
movlt r0, r0, asr #0x10
cmp r0, #0x4000
ble _02110914
ldr r0, _0211096c ; =data_ov05_02112acc
ldr r1, [r0, #0x30]
cmp r4, r1
bgt _021108d0
mov r0, r5
bl func_ov00_020a8be8
ldr r1, _02110970 ; =data_ov05_02112b74
mov r2, #0
mov r3, #1
bl func_ov00_020b464c
ldmia sp!, {r3, r4, r5, pc}
_021108d0:
ldr r0, [r0, #0x34]
cmp r4, r0
mov r0, r5
bge _021108fc
bl func_ov00_020a8be8
ldr r3, [r0]
ldr r1, _02110970 ; =data_ov05_02112b74
ldr r3, [r3, #0x68]
ldr r2, _02110974 ; =data_ov05_02112bd4
blx r3
ldmia sp!, {r3, r4, r5, pc}
_021108fc:
bl func_ov00_020a8be8
ldr r1, _02110974 ; =data_ov05_02112bd4
mov r2, #0
mov r3, #1
bl func_ov00_020b464c
ldmia sp!, {r3, r4, r5, pc}
_02110914:
ldr r0, _0211096c ; =data_ov05_02112acc
ldr r1, [r0, #0x30]
cmp r4, r1
bgt _02110940
mov r0, r5
bl func_ov00_020a8be8
ldr r1, _02110978 ; =data_ov05_02112b84
mov r2, #0
mov r3, #1
bl func_ov00_020b464c
ldmia sp!, {r3, r4, r5, pc}
_02110940:
ldr r0, [r0, #0x34]
cmp r4, r0
ldmgeia sp!, {r3, r4, r5, pc}
mov r0, r5
bl func_ov00_020a8be8
ldr r3, [r0]
ldr r1, _02110978 ; =data_ov05_02112b84
ldr r3, [r3, #0x68]
ldr r2, _02110974 ; =data_ov05_02112bd4
blx r3
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov05_0211086c
_0211096c: .word data_ov05_02112acc
_02110970: .word data_ov05_02112b74
_02110974: .word data_ov05_02112bd4
_02110978: .word data_ov05_02112b84
.global func_ov05_0211097c
arm_func_start func_ov05_0211097c
func_ov05_0211097c: ; 0x0211097c
stmdb sp!, {r4, r5, r6, lr}
ldr r0, _021109b8 ; =data_027e0fcc
mov r6, r1
ldr r0, [r0]
ldr r1, _021109bc ; =data_ov05_02112b54
mov r5, r2
mov r4, r3
bl func_ov00_020b45f8
ldr r0, _021109b8 ; =data_027e0fcc
mov r1, r6
ldr r0, [r0]
mov r2, r5
mov r3, r4
bl func_ov00_020b464c
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
arm_func_end func_ov05_0211097c
_021109b8: .word data_027e0fcc
_021109bc: .word data_ov05_02112b54
.global func_ov05_021109c0
arm_func_start func_ov05_021109c0
func_ov05_021109c0: ; 0x021109c0
stmdb sp!, {r3, r4, r5, r6, lr}
sub sp, sp, #4
ldr r1, _02110b38 ; =data_027e0fd4
ldr r2, _02110b3c ; =data_027e0e60
ldr r1, [r1]
mov r6, r0
ldr r0, [r2]
add r1, r1, #0x1c
mov r4, #0x13
bl func_ov00_020840c4
mov r5, r0
mov r0, r6
bl func_ov00_020a8d40
ldrsh r0, [r0, #0x5a]
cmp r0, #2
moveq r4, #0xf
beq _02110b2c
cmp r5, #0
beq _02110a38
mov r0, r5
ldr r1, [r0]
ldr r1, [r1, #0x1c]
blx r1
cmp r0, #1
bne _02110a38
ldr r0, [r5, #8]
cmp r0, #0
moveq r4, #5
movne r4, #6
b _02110b2c
_02110a38:
ldr r1, _02110b38 ; =data_027e0fd4
add r0, sp, #0
ldr r1, [r1]
bl func_ov05_02107208
ldr r0, [sp]
and r0, r0, #0x1f
cmp r0, #0x14
addls pc, pc, r0, lsl #2
b _02110b2c
_02110a5c: ; jump table
b _02110b2c ; case 0
b _02110b2c ; case 1
b _02110b2c ; case 2
b _02110ab0 ; case 3
b _02110ab8 ; case 4
b _02110ac0 ; case 5
b _02110ac8 ; case 6
b _02110ad0 ; case 7
b _02110ad8 ; case 8
b _02110ae0 ; case 9
b _02110ae8 ; case 10
b _02110b08 ; case 11
b _02110af0 ; case 12
b _02110af8 ; case 13
b _02110b00 ; case 14
b _02110b2c ; case 15
b _02110b10 ; case 16
b _02110b18 ; case 17
b _02110b20 ; case 18
b _02110ad8 ; case 19
b _02110b28 ; case 20
_02110ab0:
mov r4, #1
b _02110b2c
_02110ab8:
mov r4, #2
b _02110b2c
_02110ac0:
mov r4, #2
b _02110b2c
_02110ac8:
mov r4, #4
b _02110b2c
_02110ad0:
mov r4, #3
b _02110b2c
_02110ad8:
mov r4, #8
b _02110b2c
_02110ae0:
mov r4, #0x10
b _02110b2c
_02110ae8:
mov r4, #7
b _02110b2c
_02110af0:
mov r4, #9
b _02110b2c
_02110af8:
mov r4, #0xa
b _02110b2c
_02110b00:
mov r4, #0xb
b _02110b2c
_02110b08:
mov r4, #0xc
b _02110b2c
_02110b10:
mov r4, #0x11
b _02110b2c
_02110b18:
mov r4, #0xd
b _02110b2c
_02110b20:
mov r4, #0xe
b _02110b2c
_02110b28:
mov r4, #0x12
_02110b2c:
mov r0, r4
add sp, sp, #4
ldmia sp!, {r3, r4, r5, r6, pc}
.align 2, 0
arm_func_end func_ov05_021109c0
_02110b38: .word data_027e0fd4
_02110b3c: .word data_027e0e60
.global func_ov05_02110b40
arm_func_start func_ov05_02110b40
func_ov05_02110b40: ; 0x02110b40
stmdb sp!, {r4, r5, r6, lr}
mov r4, r0
cmp r1, #0
ldmleia sp!, {r4, r5, r6, pc}
ldr r2, _02110bac ; =0x2f149903
mov r1, r1, lsl #0x4
smull r0, r3, r2, r1
mov r0, r1, lsr #0x1f
add r3, r0, r3, asr #7
mov r0, r3, lsl #0x18
mov r6, r0, asr #0x18
cmp r6, #0xf
movgt r6, #0xf
bgt _02110b80
cmp r6, #1
movlt r6, #1
_02110b80:
mov r0, r4
bl func_ov05_021109c0
mov r5, r0
mov r0, r4
bl func_ov00_020a8c4c
mov r2, r0
ldr r0, _02110bb0 ; =data_ov00_020eec9c
mov r1, r5
mov r3, r6
bl func_ov00_020d78a0
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
arm_func_end func_ov05_02110b40
_02110bac: .word 0x2f149903
_02110bb0: .word data_ov00_020eec9c
.global func_ov05_02110bb4
arm_func_start func_ov05_02110bb4
func_ov05_02110bb4: ; 0x02110bb4
stmdb sp!, {r3, r4, r5, lr}
mov r5, r0
bl func_ov05_021109c0
mov r4, r0
mov r0, r5
bl func_ov00_020a8c4c
mov r2, r0
add r1, r4, #0x75
ldr r0, _02110be4 ; =data_ov00_020eec9c
add r1, r1, #0x100
bl func_ov00_020d7a84
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov05_02110bb4
_02110be4: .word data_ov00_020eec9c
.global func_ov05_02110be8
arm_func_start func_ov05_02110be8
func_ov05_02110be8: ; 0x02110be8
stmdb sp!, {r3, r4, r5, lr}
sub sp, sp, #0x18
ldr r1, _02110df0 ; =data_027e0fd4
mov r5, r0
ldr r1, [r1]
add r0, sp, #8
mvn r4, #0
bl func_ov05_02107208
ldr r0, [sp, #8]
and r0, r0, #0x1f
cmp r0, #0xa
bgt _02110c38
cmp r0, #5
blt _02110c50
beq _02110c44
cmp r0, #8
beq _02110c4c
cmp r0, #0xa
beq _02110c44
b _02110c50
_02110c38:
cmp r0, #0x13
beq _02110c4c
b _02110c50
_02110c44:
ldr r4, _02110df4 ; =0x00000253
b _02110c50
_02110c4c:
ldr r4, _02110df8 ; =0x000001e7
_02110c50:
cmp r4, #0
addlt sp, sp, #0x18
ldmltia sp!, {r3, r4, r5, pc}
mov r0, r5
bl func_ov00_020a8dcc
cmp r0, #6
cmpne r0, #7
addne sp, sp, #0x18
ldmneia sp!, {r3, r4, r5, pc}
mov r0, r5
mov r1, #0x10000
mov r2, #0
bl func_ov00_020a8b04
cmp r0, #0
beq _02110d30
ldr r1, _02110dfc ; =data_ov05_021123a0
mov r0, r5
ldrh r3, [r1]
ldrh r2, [r1, #2]
strh r3, [sp, #0x12]
strh r2, [sp, #0x14]
ldrh r1, [r1, #4]
strh r1, [sp, #0x16]
bl func_ov00_020a8c78
ldrh r2, [r0]
ldr r1, _02110e00 ; =data_02050f54
mov r0, r5
mov r2, r2, asr #0x4
mov r2, r2, lsl #0x2
ldrsh r1, [r1, r2]
rsb r1, r1, #0
strh r1, [sp, #0x12]
bl func_ov00_020a8c78
ldrh r2, [r0]
ldr r1, _02110e00 ; =data_02050f54
mov r0, r5
mov r2, r2, asr #0x4
mov r2, r2, lsl #0x1
add r2, r2, #1
mov r2, r2, lsl #0x1
ldrsh r1, [r1, r2]
rsb r1, r1, #0
strh r1, [sp, #0x16]
bl func_ov00_020a8be8
add r2, sp, #0x12
str r2, [sp]
ldr r2, _02110e04 ; =func_ov05_0210f6e4
mov r1, r4
str r2, [sp, #4]
add r2, r0, #0x64
ldr r0, _02110e08 ; =data_027e0e58
mov r3, #1
ldr r0, [r0]
bl func_ov00_0207c1b0
add sp, sp, #0x18
ldmia sp!, {r3, r4, r5, pc}
_02110d30:
mov r1, #0
mov r0, r5
mov r2, r1
bl func_ov00_020a8b04
cmp r0, #0
addeq sp, sp, #0x18
ldmeqia sp!, {r3, r4, r5, pc}
ldr r1, _02110dfc ; =data_ov05_021123a0
mov r0, r5
ldrh r3, [r1, #6]
ldrh r2, [r1, #8]
strh r3, [sp, #0xc]
strh r2, [sp, #0xe]
ldrh r1, [r1, #0xa]
strh r1, [sp, #0x10]
bl func_ov00_020a8c78
ldrh r2, [r0]
ldr r1, _02110e00 ; =data_02050f54
mov r0, r5
mov r2, r2, asr #0x4
mov r2, r2, lsl #0x2
ldrsh r1, [r1, r2]
rsb r1, r1, #0
strh r1, [sp, #0xc]
bl func_ov00_020a8c78
ldrh r2, [r0]
ldr r1, _02110e00 ; =data_02050f54
mov r0, r5
mov r2, r2, asr #0x4
mov r2, r2, lsl #0x1
add r2, r2, #1
mov r2, r2, lsl #0x1
ldrsh r1, [r1, r2]
rsb r1, r1, #0
strh r1, [sp, #0x10]
bl func_ov00_020a8be8
add r2, sp, #0xc
str r2, [sp]
ldr r2, _02110e04 ; =func_ov05_0210f6e4
mov r1, r4
str r2, [sp, #4]
add r2, r0, #0x94
ldr r0, _02110e08 ; =data_027e0e58
mov r3, #1
ldr r0, [r0]
bl func_ov00_0207c1b0
add sp, sp, #0x18
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov05_02110be8
_02110df0: .word data_027e0fd4
_02110df4: .word 0x00000253
_02110df8: .word 0x000001e7
_02110dfc: .word data_ov05_021123a0
_02110e00: .word data_02050f54
_02110e04: .word func_ov05_0210f6e4
_02110e08: .word data_027e0e58
.global func_ov05_02110e0c
arm_func_start func_ov05_02110e0c
func_ov05_02110e0c: ; 0x02110e0c
stmdb sp!, {r3, lr}
str r2, [sp]
ldr r2, _02110e24 ; =0x000002c9
mov r3, r2
bl func_ov05_02110e28
ldmia sp!, {r3, pc}
.align 2, 0
arm_func_end func_ov05_02110e0c
_02110e24: .word 0x000002c9
.global func_ov05_02110e28
arm_func_start func_ov05_02110e28
func_ov05_02110e28: ; 0x02110e28
stmdb sp!, {r3, r4, r5, r6, r7, lr}
mov r7, r0
mov r6, r1
mov r5, r2
mov r4, r3
bl func_ov00_020a8c58
mov r1, #0
str r1, [r0]
mov r0, r7
bl func_ov00_020a8c58
mov r1, #0
str r1, [r0, #8]
mov r0, r7
bl func_ov00_020a8c58
mov r1, r6, lsl #0x10
mov r1, r1, lsr #0x10
mov r1, r1, asr #0x4
mov r2, r1, lsl #0x1
add r1, r2, #1
ldr r3, _02110f40 ; =data_02050f54
mov r2, r2, lsl #0x1
ldrsh r2, [r3, r2]
mov r1, r1, lsl #0x1
ldrsh r1, [r3, r1]
smull r3, ip, r2, r5
adds lr, r3, #0x800
smull r3, r2, r1, r5
adc r1, ip, #0
adds r3, r3, #0x800
mov r5, lr, lsr #0xc
ldr ip, [r0]
orr r5, r5, r1, lsl #20
add r1, ip, r5
str r1, [r0]
adc r1, r2, #0
mov r2, r3, lsr #0xc
ldr r3, [r0, #8]
orr r2, r2, r1, lsl #20
add r1, r3, r2
str r1, [r0, #8]
mov r0, r7
bl func_ov00_020a8c78
strh r6, [r0]
mov r0, r7
bl func_ov00_020a8c58
ldr r0, [r0, #4]
cmp r0, r4
bge _02110ef4
mov r0, r7
bl func_ov00_020a8c58
str r4, [r0, #4]
_02110ef4:
mov r0, r7
bl func_ov00_020a82ac
mov r0, r7
bl func_ov00_020a8c4c
mov r2, r0
ldr r0, _02110f44 ; =data_ov00_020eec9c
mov r1, #0xcd
bl func_ov00_020d7a84
ldr r1, _02110f48 ; =data_ov05_02112b24
mov r0, r7
mov r2, #1
bl func_ov00_020a8a4c
ldrb r0, [sp, #0x18]
cmp r0, #0
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
ldr r1, _02110f4c ; =data_ov00_020e5694
mov r0, r7
bl func_ov00_020a8ab0
ldmia sp!, {r3, r4, r5, r6, r7, pc}
.align 2, 0
arm_func_end func_ov05_02110e28
_02110f40: .word data_02050f54
_02110f44: .word data_ov00_020eec9c
_02110f48: .word data_ov05_02112b24
_02110f4c: .word data_ov00_020e5694
.global func_ov05_02110f50
arm_func_start func_ov05_02110f50
func_ov05_02110f50: ; 0x02110f50
stmdb sp!, {r4, r5, r6, r7, r8, lr}
sub sp, sp, #0x18
movs r7, r1
mov r8, r0
mov r5, r2
mov r4, r3
ldr r6, [sp, #0x30]
beq _02110f7c
bl func_ov00_020a8dcc
cmp r0, #0x29
beq _02110f94
_02110f7c:
cmp r7, #0
bne _02111278
mov r0, r8
bl func_ov00_020a8dcc
cmp r0, #0x27
bne _02111278
_02110f94:
mov r0, r8
bl func_ov00_020a8c58
ldr r0, [r0, #4]
cmp r0, #0
bge _02111224
mov r0, r8
bl func_ov00_020a8b80
cmp r0, #0
mov r0, r8
beq _02111100
bl func_ov00_020a8c84
mov r1, #0
strh r1, [r0]
mov r0, r8
bl func_ov00_020a8c4c
mov r2, r0
ldr r0, _021112d0 ; =data_ov00_020eec9c
mov r1, #0xcf
bl func_ov00_020d7a84
cmp r7, #0
mov r2, #0
beq _02110ffc
ldr r1, _021112d4 ; =data_ov05_02112b44
mov r0, r8
bl func_ov00_020a8a4c
b _02111008
_02110ffc:
ldr r1, _021112d8 ; =data_ov05_02112b34
mov r0, r8
bl func_ov00_020a8a4c
_02111008:
cmp r4, #0
ble _0211101c
mov r0, r8
mov r1, r4
bl func_ov00_020a8224
_0211101c:
mov r0, r8
bl func_ov00_020a8d40
mov r1, r0
add r0, sp, #8
bl func_ov05_02107208
ldr r1, [sp, #8]
mov r0, r8
and r4, r1, #0x1f
bl func_ov00_020a8d40
ldr r0, [r0, #0xd0]
cmp r0, #0
ble _02111080
ldr r1, _021112dc ; =data_027e0e58
mov r0, r8
ldr r5, [r1]
bl func_ov00_020a8c4c
mov r4, #0
mov r2, r0
str r4, [sp]
ldr r1, _021112e0 ; =0x0000102e
mov r0, r5
mov r3, #1
str r4, [sp, #4]
bl func_ov00_0207c1b0
b _021112c4
_02111080:
cmp r4, #5
cmpne r4, #0xa
beq _02111098
cmp r4, #0xd
beq _021112c4
b _021110cc
_02111098:
ldr r1, _021112dc ; =data_027e0e58
mov r0, r8
ldr r5, [r1]
bl func_ov00_020a8c4c
mov r4, #0
mov r2, r0
str r4, [sp]
mov r0, r5
mov r1, #0x1a8
mov r3, #1
str r4, [sp, #4]
bl func_ov00_0207c1b0
b _021112c4
_021110cc:
ldr r1, _021112dc ; =data_027e0e58
mov r0, r8
ldr r5, [r1]
bl func_ov00_020a8c4c
mov r4, #0
mov r2, r0
str r4, [sp]
ldr r1, _021112e4 ; =0x000001a7
mov r0, r5
mov r3, #1
str r4, [sp, #4]
bl func_ov00_0207c1b0
b _021112c4
_02111100:
bl func_ov00_020a8c4c
ldr r2, [r0]
ldr r1, _021112e8 ; =data_027e0e60
str r2, [sp, #0xc]
ldr r2, [r0, #4]
ldr r5, [r1]
str r2, [sp, #0x10]
ldr r1, [r0, #8]
mov r0, r8
str r1, [sp, #0x14]
bl func_ov00_020a8c4c
mov r4, r0
add r1, sp, #0xc
mov r0, r5
mov r2, #1
bl func_ov00_02083ee0
ldr r1, [r4, #4]
mov r5, #0x4000
sub r4, r1, r0
cmp r7, #0
ldr r0, [r6]
rsbne r5, r5, #0
cmp r0, #0
beq _021111b4
smull r1, r0, r4, r0
adds r1, r1, #0x800
adc r0, r0, #0
mov r1, r1, lsr #0xc
orr r1, r1, r0, lsl #20
add r0, r5, r1
mov r1, r0, lsl #0x10
mov r0, r8
mov r4, r1, asr #0x10
bl func_ov00_020a8c84
ldrsh r0, [r0]
subs r0, r0, r5
rsbmi r0, r0, #0
subs r1, r4, r5
rsbmi r1, r1, #0
cmp r0, r1
ble _021112c4
mov r0, r8
bl func_ov00_020a8c84
strh r4, [r0]
b _021112c4
_021111b4:
cmp r4, #0
ble _02111214
cmp r7, #0
mov r7, #0x2d8
mov r0, r8
rsbne r7, r7, #0
bl func_ov00_020a8c84
ldrsh r1, [r0]
add r1, r1, r7
strh r1, [r0]
mov r0, r4
bl func_01ff991c
mov r4, r0
mov r0, r8
bl func_ov00_020a8c84
ldrsh r0, [r0]
sub r2, r0, r5
smull r1, r0, r2, r4
adds r1, r1, #0x800
adc r0, r0, #0
mov r1, r1, lsr #0xc
orr r1, r1, r0, lsl #20
str r1, [r6]
b _021112c4
_02111214:
mov r0, r8
bl func_ov00_020a8c84
strh r5, [r0]
b _021112c4
_02111224:
cmp r5, #0
ble _02111254
mov r0, r8
bl func_ov00_020a8c4c
ldr r0, [r0, #4]
cmp r0, r5
bge _02111254
mov r0, r8
bl func_ov00_020a8c58
ldr r1, [r0, #4]
add r1, r1, #0xcd
str r1, [r0, #4]
_02111254:
mov r4, #0x2d8
cmp r7, #0
mov r0, r8
rsbne r4, r4, #0
bl func_ov00_020a8c84
ldrsh r1, [r0]
add r1, r1, r4
strh r1, [r0]
b _021112c4
_02111278:
mov r0, r8
bl func_ov00_020a8d6c
cmp r0, #0x10000
blt _02111298
mov r0, r8
bl func_ov00_020a8be8
mov r1, #8
str r1, [r0, #0x144]
_02111298:
mov r0, r8
mov r1, #0
mov r2, #0x400
bl func_ov00_020a827c
mov r0, r8
mov r1, #0
bl func_ov00_020a8b3c
cmp r0, #0
addne sp, sp, #0x18
movne r0, #0
ldmneia sp!, {r4, r5, r6, r7, r8, pc}
_021112c4:
mov r0, #1
add sp, sp, #0x18
ldmia sp!, {r4, r5, r6, r7, r8, pc}
.align 2, 0
arm_func_end func_ov05_02110f50
_021112d0: .word data_ov00_020eec9c
_021112d4: .word data_ov05_02112b44
_021112d8: .word data_ov05_02112b34
_021112dc: .word data_027e0e58
_021112e0: .word 0x0000102e
_021112e4: .word 0x000001a7
_021112e8: .word data_027e0e60
.global func_ov05_021112ec
arm_func_start func_ov05_021112ec
func_ov05_021112ec: ; 0x021112ec
stmdb sp!, {r4, lr}
mov r4, r0
bl func_ov00_020a8b80
cmp r0, #0
ldmeqia sp!, {r4, pc}
mov r0, r4
mov r1, #0x3f
bl func_ov00_020a8ba0
cmp r0, #0
ldmneia sp!, {r4, pc}
mov r0, r4
bl func_ov00_020a8bd8
cmp r0, #0
ldmneia sp!, {r4, pc}
ldr r0, _02111354 ; =data_027e0fac
ldrsh r4, [r0]
bl func_ov05_02105d84
strh r4, [r0, #4]
bl func_ov05_02105d84
ldr r2, [r0]
mov r1, #1
ldr r2, [r2, #0x14]
mov r4, r0
blx r2
strb r0, [r4, #9]
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov05_021112ec
_02111354: .word data_027e0fac
.global func_ov05_02111358
arm_func_start func_ov05_02111358
func_ov05_02111358: ; 0x02111358
stmdb sp!, {r3, lr}
ldr r0, [r0, #8]
bl func_ov00_020bbb64
cmp r0, #0
bne _0211138c
bl func_ov05_0210c980
bl func_ov00_020b1e98
cmp r0, #0
bne _0211138c
bl func_ov05_02107870
bl func_ov00_020abf70
cmp r0, #0
beq _02111394
_0211138c:
mov r0, #1
ldmia sp!, {r3, pc}
_02111394:
mov r0, #0
ldmia sp!, {r3, pc}
arm_func_end func_ov05_02111358
.global func_ov05_0211139c
arm_func_start func_ov05_0211139c
func_ov05_0211139c: ; 0x0211139c
ldr r0, [r0, #8]
ldrsh r0, [r0, #0x5a]
cmp r0, #0
movgt r0, #1
movle r0, #0
bx lr
arm_func_end func_ov05_0211139c
.global func_ov05_021113b4
arm_func_start func_ov05_021113b4
func_ov05_021113b4: ; 0x021113b4
ldr ip, _021113c0 ; =func_ov00_020bd318
ldr r0, [r0, #8]
bx ip
.align 2, 0
arm_func_end func_ov05_021113b4
_021113c0: .word func_ov00_020bd318
.global func_ov05_021113c4
arm_func_start func_ov05_021113c4
func_ov05_021113c4: ; 0x021113c4
ldr r0, [r0, #8]
strb r1, [r0, #0x5f]
bx lr
arm_func_end func_ov05_021113c4
.global func_ov05_021113d0
arm_func_start func_ov05_021113d0
func_ov05_021113d0: ; 0x021113d0
mov r1, #0xa
strh r1, [r0, #0x12]
bx lr
arm_func_end func_ov05_021113d0
.global func_ov05_021113dc
arm_func_start func_ov05_021113dc
func_ov05_021113dc: ; 0x021113dc
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
sub sp, sp, #0x58
mov r5, r0
bl func_ov00_020a8ca4
mov r6, r0
bl func_ov05_0210aaf8
add r1, sp, #0x4c
bl func_ov00_020a9180
mov r7, r0
bl func_020385b8
add r1, sp, #0x4c
bl func_ov00_020ab770
movs r8, r0
cmpeq r7, #0
moveq sb, #0
mov r0, #5
movne sb, #1
bl func_01fffcd8
ldr r2, [r0]
mov r1, sb
ldr r2, [r2, #0x20]
blx r2
cmp r0, #0
beq _02111450
mov r0, r5
mov r1, #5
bl func_ov00_020a8138
add sp, sp, #0x58
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
_02111450:
ldr r0, _02111a5c ; =data_027e0f74
ldr r0, [r0]
bl func_ov00_02097738
cmp r0, #0
bne _02111548
ldr r0, _02111a60 ; =data_027e0d38
ldr r0, [r0]
ldr r0, [r0, #0x14]
cmp r0, #1
beq _02111548
mov r0, #2
bl func_01fffcd8
ldr r2, [r0]
mov r1, sb
ldr r2, [r2, #0x20]
blx r2
cmp r0, #0
beq _021114ac
mov r0, r5
mov r1, #2
bl func_ov00_020a8138
add sp, sp, #0x58
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
_021114ac:
mov r0, #3
bl func_01fffcd8
ldr r2, [r0]
mov r1, sb
ldr r2, [r2, #0x20]
blx r2
cmp r0, #0
beq _021114e0
mov r0, r5
mov r1, #3
bl func_ov00_020a8138
add sp, sp, #0x58
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
_021114e0:
mov r0, #4
bl func_01fffcd8
ldr r2, [r0]
mov r1, sb
ldr r2, [r2, #0x20]
blx r2
cmp r0, #0
beq _02111514
mov r0, r5
mov r1, #4
bl func_ov00_020a8138
add sp, sp, #0x58
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
_02111514:
mov r0, #1
bl func_01fffcd8
ldr r2, [r0]
mov r1, sb
ldr r2, [r2, #0x20]
blx r2
cmp r0, #0
beq _02111548
mov r0, r5
mov r1, #1
bl func_ov00_020a8138
add sp, sp, #0x58
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
_02111548:
cmp r8, #2
cmpne r7, #8
bne _02111560
mov r0, r5
bl func_ov00_020a81a0
b _02111594
_02111560:
cmp r8, #3
cmpne r8, #4
cmpne r8, #5
cmpne r7, #3
cmpne r7, #4
cmpne r7, #5
cmpne r7, #9
beq _0211158c
sub r0, r7, #0xd
cmp r0, #1
bhi _02111594
_0211158c:
mov r0, r5
bl func_ov00_020a8158
_02111594:
ldr r0, _02111a64 ; =data_027e0618
ldr r0, [r0]
cmp r0, #6
beq _021116a4
ldr r0, _02111a68 ; =data_027e0fb8
ldr r0, [r0]
bl func_ov00_020b0418
mov r7, r0
mov r0, r5
bl func_ov00_020a8f2c
cmp r0, #0
bne _021115cc
cmp r7, #0
strgt r7, [r5, #0xc]
_021115cc:
ldr r0, [r5, #0xc]
cmp r0, #0
ble _021116a4
ldr r1, _02111a6c ; =data_ov05_02112be4
mov r0, r5
ldrsh r8, [r1]
bl func_ov00_020a8c78
mov sl, r0
mov r0, r5
bl func_ov00_020a8c90
ldrsh r1, [sl]
mov r3, r8
add r0, r1, r0
mov r0, r0, lsl #0x10
mov r1, r0, asr #0x10
mov r0, r5
mov r2, r1
bl func_ov00_020a8238
ldr r1, [r5, #0xc]
cmp r7, r1
ble _0211166c
ldr r0, _02111a6c ; =data_ov05_02112be4
sub r1, r7, r1
ldr r2, [r0, #8]
mvn r3, #0x80000000
str r3, [sp]
ldr r3, [r0, #4]
add r0, r5, #0xc
smull ip, r8, r3, r2
adds r3, ip, #0x800
adc r8, r8, #0
mov r3, r3, lsr #0xc
add r1, r7, r1
orr r3, r3, r8, lsl #20
bl func_0202b418
ldr r0, [r5, #0xc]
cmp r0, #0x1000
movgt r0, #0x1000
strgt r0, [r5, #0xc]
b _021116a4
_0211166c:
ldr r0, _02111a70 ; =data_ov00_020e56f0
mvn r1, #0x80000000
ldr r2, [r0]
ldr r0, _02111a6c ; =data_ov05_02112be4
str r1, [sp]
ldr r0, [r0, #4]
mov r1, r7
smull r7, r3, r0, r2
adds r0, r7, #0x800
adc r7, r3, #0
mov r3, r0, lsr #0xc
add r0, r5, #0xc
orr r3, r3, r7, lsl #20
bl func_0202b418
_021116a4:
ldrb r0, [r5, #0x16]
cmp r0, #1
beq _02111960
cmp sb, #0
beq _02111744
add r2, sp, #0x40
mov r1, #0
mov r0, r5
str r1, [r2]
str r1, [r2, #4]
str r1, [r2, #8]
bl func_ov00_020a8c4c
ldr r1, [r0]
ldr r2, [sp, #0x4c]
mov r0, r5
sub r1, r2, r1
str r1, [sp, #0x40]
bl func_ov00_020a8c4c
ldr r1, [r0, #8]
ldr r2, [sp, #0x54]
add r0, sp, #0x40
sub r1, r2, r1
str r1, [sp, #0x48]
bl func_01ff9cec
ldr r1, _02111a74 ; =0x00000333
cmp r0, r1
ble _02111734
cmp r6, #0
movne r3, #1
moveq r3, #0
add r2, sp, #0x4c
mov r0, r5
mov r1, #0x1000
bl func_ov05_0210f808
mov r4, r0
b _02111960
_02111734:
ldr r0, _02111a68 ; =data_027e0fb8
ldr r0, [r0]
bl func_ov00_020af050
b _02111960
_02111744:
ldr r0, _02111a68 ; =data_027e0fb8
ldr r0, [r0]
bl func_ov00_020b034c
cmp r6, #0
movne r3, #1
mov r1, r0
moveq r3, #0
mov r0, r5
mov r2, #0
bl func_ov05_0210f808
ldr r1, _02111a5c ; =data_027e0f74
mov r4, r0
ldr r0, [r1]
bl func_ov00_02097750
cmp r0, #0
bne _02111868
ldr r3, _02111a78 ; =data_ov05_02112c04
mov r2, #0
mov r1, #0x4000
mov r0, r5
str r3, [sp, #0x24]
str r2, [sp, #0x28]
str r1, [sp, #0x2c]
bl func_ov00_020a8c4c
add r3, sp, #0x18
ldmia r0, {r0, r1, r2}
stmia r3, {r0, r1, r2}
ldr r3, [sp, #0x18]
ldr r2, [sp, #0x1c]
ldr r1, [sp, #0x20]
mov r0, r5
str r3, [sp, #0x30]
str r2, [sp, #0x34]
str r1, [sp, #0x38]
bl func_ov00_020a8c78
ldrsh r2, [r0]
ldr r0, _02111a7c ; =data_027e0fe4
add r1, sp, #0x24
strh r2, [sp, #0x3c]
ldr r0, [r0]
mov r2, #0
bl func_ov00_020c37ec
cmp r0, #0
ble _02111868
ldr r0, [sp, #0x2c]
ldr r3, [sp, #0x28]
rsb r1, r0, #0x4000
mov r0, r1, asr #0x1f
mov r7, r0, lsl #0xa
mov r0, #0x800
add r2, r3, #0x48
add sb, sp, #0xc
adds r8, r0, r1, lsl #10
orr r7, r7, r1, lsr #22
ldmia r2, {r0, r1, r2}
stmia sb, {r0, r1, r2}
add r0, r3, #0x100
adc r1, r7, #0
mov r2, r8, lsr #0xc
orr r2, r2, r1, lsl #20
add r1, r2, #0x9a
add r2, r1, #0x100
cmp r2, #0x1000
ldrsh r0, [r0, #0x1e]
ldr r1, [sp, #0x10]
movge r2, #0x1000
add r0, r1, r0
str r0, [sp, #0x10]
add r1, sp, #0xc
mov r0, r5
bl func_ov00_020a81fc
mov r0, r5
bl func_ov05_021113d0
_02111868:
ldrsh r0, [r5, #0x12]
cmp r0, #0
mov r0, r5
ble _0211188c
bl func_ov05_021107fc
ldrsh r0, [r5, #0x12]
sub r0, r0, #1
strh r0, [r5, #0x12]
b _021118c0
_0211188c:
bl func_ov00_020a8bb8
cmp r0, #0
beq _021118c0
cmp r4, #0
bne _021118c0
ldr r2, _02111a74 ; =0x00000333
mov r0, r5
mov r1, #0
bl func_ov00_020a8294
ldr r2, _02111a74 ; =0x00000333
mov r0, r5
mov r1, #0
bl func_ov00_020a827c
_021118c0:
cmp r6, #0
beq _02111960
ldr r1, [r6, #4]
ldr r0, _02111a80 ; =0x4b4f4b4f
cmp r1, r0
bne _02111960
mov r0, r5
bl func_ov00_020a8b80
cmp r0, #0
movne r0, #0x19
strneh r0, [r5, #0x10]
bne _02111960
ldrsh r0, [r5, #0x10]
cmp r0, #0
ble _02111944
mov r0, r5
bl func_ov00_020a8d40
ldr r1, _02111a84 ; =0x000004cd
strh r1, [r0, #0xa8]
ldrsh r0, [r5, #0x10]
cmp r0, #0x19
bne _02111934
mov r0, r5
bl func_ov00_020a8c4c
mov r2, r0
ldr r0, _02111a88 ; =data_027e0ffc
ldr r1, _02111a8c ; =0x0000023d
mov r3, #0
bl func_ov00_020ceacc
_02111934:
ldrsh r0, [r5, #0x10]
sub r0, r0, #1
strh r0, [r5, #0x10]
b _02111960
_02111944:
bl func_020385b8
mov r6, r0
mov r0, r5
bl func_ov00_020a8c58
mov r1, r0
mov r0, r6
bl func_ov00_020ab614
_02111960:
mov r0, r5
bl func_ov00_020a8ca4
cmp r0, #0
bne _02111a3c
ldr r0, _02111a6c ; =data_ov05_02112be4
ldr r0, [r0, #0xc]
cmp r4, r0
bgt _02111988
mov r0, r5
bl func_ov05_021112ec
_02111988:
ldrb r0, [r5, #0x15]
cmp r0, #0
beq _02111a18
ldrb r0, [r5, #0x16]
cmp r0, #0
bne _021119c8
ldr r1, _02111a90 ; =data_ov05_021123ac
mov r0, r5
mov r2, #0
bl func_ov00_020a8a4c
mov r0, r5
mov r1, #0
bl func_ov00_020a8ad0
mov r0, #1
strb r0, [r5, #0x16]
b _02111a18
_021119c8:
ldr r0, [r5, #0xc]
cmp r0, #0
ble _02111a0c
ldr r1, _02111a94 ; =data_ov05_021123ac
mov r0, r5
ldr r4, [r1, #0xc]
bl func_ov00_020a8d6c
cmp r0, r4
blt _02111a18
mov r0, r5
bl func_ov00_020a8d6c
mov r2, r0
sub r1, r4, #0x7000
mov r0, r5
sub r1, r2, r1
bl func_ov00_020a8ad0
b _02111a18
_02111a0c:
mov r0, #0
strb r0, [r5, #0x15]
strb r0, [r5, #0x16]
_02111a18:
mvn r3, #0
add r2, sp, #4
mov r0, r5
mov r1, #0
str r3, [sp, #4]
str r3, [sp, #8]
bl func_ov00_020a86ec
add sp, sp, #0x58
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
_02111a3c:
mov r0, r5
bl func_ov00_020a8cc4
mov r2, r0
mov r0, r5
mov r1, #1
bl func_ov00_020a86ec
add sp, sp, #0x58
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
.align 2, 0
arm_func_end func_ov05_021113dc
_02111a5c: .word data_027e0f74
_02111a60: .word data_027e0d38
_02111a64: .word data_027e0618
_02111a68: .word data_027e0fb8
_02111a6c: .word data_ov05_02112be4
_02111a70: .word data_ov00_020e56f0
_02111a74: .word 0x00000333
_02111a78: .word data_ov05_02112c04
_02111a7c: .word data_027e0fe4
_02111a80: .word 0x4b4f4b4f
_02111a84: .word 0x000004cd
_02111a88: .word data_027e0ffc
_02111a8c: .word 0x0000023d
_02111a90: .word data_ov05_021123ac
_02111a94: .word data_ov05_021123ac
.global func_ov05_02111a98
arm_func_start func_ov05_02111a98
func_ov05_02111a98: ; 0x02111a98
stmdb sp!, {r4, lr}
ldr r1, _02111af4 ; =data_027e0fb8
mov r4, r0
ldr r0, [r1]
bl func_ov00_020aeffc
cmp r0, #0
bne _02111aec
ldr r0, _02111af4 ; =data_027e0fb8
ldr r0, [r0]
ldr r0, [r0, #0xa0]
cmp r0, #0
bne _02111aec
mov r0, r4
bl func_ov00_020a8dcc
cmp r0, #2
beq _02111aec
mov r0, r4
bl func_ov00_020a8dcc
cmp r0, #3
movne r0, #1
ldmneia sp!, {r4, pc}
_02111aec:
mov r0, #0
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov05_02111a98
_02111af4: .word data_027e0fb8
.global func_ov05_02111af8
arm_func_start func_ov05_02111af8
func_ov05_02111af8: ; 0x02111af8
stmdb sp!, {r3, r4, r5, r6, lr}
sub sp, sp, #0xc
mov r4, r1
ldrb r1, [r4, #0x11a]
mov r5, r0
cmp r1, #0
addeq sp, sp, #0xc
moveq r0, #0
ldmeqia sp!, {r3, r4, r5, r6, pc}
ldr r0, [r4, #0x12c]
cmp r0, #2
cmpne r0, #5
addne sp, sp, #0xc
movne r0, #0
ldmneia sp!, {r3, r4, r5, r6, pc}
add r2, sp, #0
add r0, r4, #0x48
add r1, r5, #0xc
bl func_01ff9bf8
ldrsh r6, [r5, #0x18]
ldr r0, [sp]
ldr r1, [sp, #8]
bl func_01ffa0f4
mov r0, r0, lsl #0x10
rsb r0, r6, r0, asr #16
mov r0, r0, lsl #0x10
mov r0, r0, asr #0x10
movs r6, r0, asr #0x3
rsbmi r6, r6, #0
add r0, sp, #0
bl func_01ff9cec
mov r1, r6, asr #0x1f
mov r2, r1, lsl #0xe
mov r1, #0x800
adds r3, r1, r6, lsl #14
orr r2, r2, r6, lsr #18
adc r1, r2, #0
mov r2, r3, lsr #0xc
orr r2, r2, r1, lsl #20
add r2, r0, r2
ldr r1, [r5, #8]
mov r0, #0
cmp r2, r1
addge sp, sp, #0xc
ldmgeia sp!, {r3, r4, r5, r6, pc}
str r4, [r5, #4]
str r2, [r5, #8]
mov r0, #1
add sp, sp, #0xc
ldmia sp!, {r3, r4, r5, r6, pc}
arm_func_end func_ov05_02111af8
.global func_ov05_02111bc0
arm_func_start func_ov05_02111bc0
func_ov05_02111bc0: ; 0x02111bc0
stmdb sp!, {r3, r4, r5, lr}
mov r5, r0
cmp r1, #0
ldmneia sp!, {r3, r4, r5, pc}
ldr r0, [r5, #0x144]
bl func_ov05_02111e20
mov r4, #0
_02111bdc:
add r0, r5, r4, lsl #2
ldr r0, [r0, #0x160]
cmp r0, #0
beq _02111bf0
bl func_ov00_020c0e04
_02111bf0:
add r4, r4, #1
cmp r4, #8
blt _02111bdc
ldmia sp!, {r3, r4, r5, pc}
arm_func_end func_ov05_02111bc0
.global func_ov05_02111c00
arm_func_start func_ov05_02111c00
func_ov05_02111c00: ; 0x02111c00
stmdb sp!, {r4, r5, lr}
sub sp, sp, #0xc
mov r5, r0
ldr r0, [r5, #0x144]
mov r4, r1
bl func_ov05_02111f40
ldr r0, [r5, #0x140]
cmp r0, #0
ldrneb r0, [r5, #4]
cmpne r0, #0
addeq sp, sp, #0xc
ldmeqia sp!, {r4, r5, pc}
mov r0, r5
mov r1, r4
bl func_ov00_02080de8
ldr r0, _02111c68 ; =data_027e0e60
add r1, sp, #0
ldr r0, [r0]
bl func_ov00_0208344c
ldr r0, [r5, #0x140]
add r1, sp, #0
ldr r2, [r0]
ldr r2, [r2, #0x18]
blx r2
add sp, sp, #0xc
ldmia sp!, {r4, r5, pc}
.align 2, 0
arm_func_end func_ov05_02111c00
_02111c68: .word data_027e0e60
.global func_ov05_02111c6c
arm_func_start func_ov05_02111c6c
func_ov05_02111c6c: ; 0x02111c6c
bx lr
arm_func_end func_ov05_02111c6c
.global func_ov05_02111c70
arm_func_start func_ov05_02111c70
func_ov05_02111c70: ; 0x02111c70
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x10
mov sl, r0
ldrb r0, [sl, #5]
mov sb, r1
cmp r0, #0
bne _02111cac
ldr r0, _02111e10 ; =data_027e0f74
ldr r0, [r0]
bl func_ov00_02097738
cmp r0, #0
bne _02111cac
cmp sb, #0
addne sp, sp, #0x10
ldmneia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
_02111cac:
ldr r0, _02111e14 ; =data_027e0d38
ldr r0, [r0]
ldr r0, [r0, #0x14]
cmp r0, #1
bne _02111cd8
ldr r0, _02111e18 ; =data_027e0f68
mov r1, sb
ldr r0, [r0]
bl func_ov05_0210157c
add sp, sp, #0x10
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
_02111cd8:
ldr r1, _02111e1c ; =data_027e0f64
add r0, sp, #0xc
ldr r1, [r1]
add r1, r1, sb, lsl #2
ldr r1, [r1, #4]
bl func_ov00_02088130
ldr r1, _02111e1c ; =data_027e0f64
add r0, sp, #0xa
ldr r1, [r1]
add r1, r1, sb, lsl #2
ldr r1, [r1, #4]
bl func_ov00_02088144
ldrb r0, [sp, #0xd]
ldrb r3, [sp, #0xc]
ldrb r1, [sp, #0xb]
add r0, r0, #1
sub fp, r3, #1
add r8, r1, #1
ldrh r1, [sl, #0x28]
cmp fp, #0
ldrb r2, [sp, #0xa]
str r0, [sp, #4]
movle fp, #0
sub r0, r2, #1
str r0, [sp]
ldr r0, [sp]
ldrh r2, [sl, #0x2a]
cmp r0, #0
movle r0, #0
strle r0, [sp]
ldr r0, [sp, #4]
sub r1, r1, #1
cmp r0, r1
strge r1, [sp, #4]
sub r0, r2, #1
cmp r8, r0
movge r8, r0
ldr r0, [sp, #4]
cmp fp, r0
bgt _02111df8
add r5, sp, #8
_02111d7c:
ldr r7, [sp]
mov r0, r7
cmp r0, r8
bgt _02111de8
and r6, fp, #0xff
_02111d90:
mov r0, sl
strb r6, [sp, #8]
strb r7, [sp, #9]
ldr r2, [r0]
mov r1, r5
ldr r2, [r2, #0x78]
blx r2
movs r4, r0
beq _02111ddc
ldr r1, [r0]
ldr r1, [r1, #0x74]
blx r1
cmp r0, #1
beq _02111ddc
mov r0, r4
ldr r2, [r0]
mov r1, sb
ldr r2, [r2, #0x14]
blx r2
_02111ddc:
add r7, r7, #1
cmp r7, r8
ble _02111d90
_02111de8:
ldr r0, [sp, #4]
add fp, fp, #1
cmp fp, r0
ble _02111d7c
_02111df8:
ldr r0, _02111e18 ; =data_027e0f68
mov r1, sb
ldr r0, [r0]
bl func_ov05_02101530
add sp, sp, #0x10
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
arm_func_end func_ov05_02111c70
_02111e10: .word data_027e0f74
_02111e14: .word data_027e0d38
_02111e18: .word data_027e0f68
_02111e1c: .word data_027e0f64
.global func_ov05_02111e20
arm_func_start func_ov05_02111e20
func_ov05_02111e20: ; 0x02111e20
stmdb sp!, {r4, lr}
mov r4, r0
bl func_ov00_0209c8f4
mov r0, r4
bl func_ov05_02111fb8
mov r0, r4
bl func_ov05_021121cc
ldr r0, [r4, #0xec]
bl func_ov00_020a4e30
ldr r0, _02111f30 ; =data_027e0900
ldr r1, _02111f34 ; =0x0000001d
ldr r0, [r0, #0x18]
cmp r0, r1
bne _02111eb0
ldr r0, _02111f38 ; =data_027e0d38
ldr r0, [r0]
ldr r0, [r0, #0x14]
cmp r0, #1
beq _02111eb0
ldr r0, _02111f3c ; =data_ov61_0217a4ac
bl func_ov09_021136c4
cmp r0, #0
bne _02111ee0
ldr r0, [r4, #0x10c]
cmp r0, #0
beq _02111e8c
bl func_ov00_020c0e04
_02111e8c:
ldr r0, [r4, #0x110]
cmp r0, #0
beq _02111e9c
bl func_ov00_020c0e04
_02111e9c:
ldr r0, [r4, #0x114]
cmp r0, #0
beq _02111ee0
bl func_ov00_020c0e04
b _02111ee0
_02111eb0:
ldr r0, [r4, #0x10c]
cmp r0, #0
beq _02111ec0
bl func_ov00_020c0e04
_02111ec0:
ldr r0, [r4, #0x110]
cmp r0, #0
beq _02111ed0
bl func_ov00_020c0e04
_02111ed0:
ldr r0, [r4, #0x114]
cmp r0, #0
beq _02111ee0
bl func_ov00_020c0e04
_02111ee0:
ldr r0, [r4, #0x108]
cmp r0, #0
beq _02111f04
ldr r1, [r0]
ldr r1, [r1, #0x40]
blx r1
mov r0, r4
mov r1, #0
bl func_ov00_0209c648
_02111f04:
ldr r1, [r4, #0xf0]
cmp r1, #0
ldmeqia sp!, {r4, pc}
ldr r0, [r4, #0xf4]
cmp r0, #0
ldreq r0, [r4, #0x108]
ldreq r0, [r0, #0x84]
streq r0, [r1, #0x4c]
ldr r0, [r4, #0xf0]
bl func_ov15_02184bcc
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov05_02111e20
_02111f30: .word data_027e0900
_02111f34: .word 0x0000001d
_02111f38: .word data_027e0d38
_02111f3c: .word data_ov61_0217a4ac
.global func_ov05_02111f40
arm_func_start func_ov05_02111f40
func_ov05_02111f40: ; 0x02111f40
stmdb sp!, {r3, r4, r5, lr}
mov r5, r0
mov r4, r1
bl func_ov00_0209c958
ldr r0, [r5, #0xec]
mov r1, r4
bl func_ov00_020a4f38
ldr r0, [r5, #0xf0]
cmp r0, #0
ldmeqia sp!, {r3, r4, r5, pc}
ldr r0, _02111fb0 ; =data_027e0e60
ldr r0, [r0]
bl func_ov00_020848b8
cmp r0, #0
ldmneia sp!, {r3, r4, r5, pc}
bl func_ov15_0215b780
cmp r0, #0
ldmneia sp!, {r3, r4, r5, pc}
ldr r0, _02111fb4 ; =data_027e0d3c
ldr r0, [r0]
bl func_ov00_02078ffc
ldr r0, [r0]
cmp r0, #0x1000
ldmneia sp!, {r3, r4, r5, pc}
ldr r0, [r5, #0xf0]
mov r1, r4
bl func_ov15_02184bd0
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov05_02111f40
_02111fb0: .word data_027e0e60
_02111fb4: .word data_027e0d3c
.global func_ov05_02111fb8
arm_func_start func_ov05_02111fb8
func_ov05_02111fb8: ; 0x02111fb8
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
mov r4, r0
ldrb r0, [r4, #0x14]
cmp r0, #0
ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
ldrh r0, [r4, #0x16]
mov sl, #0
cmp r0, #0
subne r0, r0, #1
strneh r0, [r4, #0x16]
_02111fe0:
add r0, r4, sl, lsl #1
ldrh r5, [r0, #0x20]
ldrh r0, [r0, #0x88]
ldrh r1, [r4, #0x16]
and r3, r5, #0x3e0
and r2, r5, #0x7c00
and r7, r0, #0x3e0
and r6, r0, #0x7c00
mov r8, r7, asr #0x5
mov r2, r2, asr #0xa
mov sb, r6, asr #0xa
mov r3, r3, asr #0x5
mov r1, r1, lsl #0xc
and r5, r5, #0x1f
and r0, r0, #0x1f
cmp r1, #0x1000
and r6, r3, #0xff
and r7, r2, #0xff
and r8, r8, #0xff
and sb, sb, #0xff
movle r5, r0
ble _02112050
sub r0, r0, r5
mov r0, r0, lsl #0xc
bl func_01ff98e0
add r0, r0, #0x800
add r0, r5, r0, asr #12
and r5, r0, #0xff
_02112050:
ldrh r0, [r4, #0x16]
mov r1, r0, lsl #0xc
cmp r1, #0x1000
movle r6, r8
ble _0211207c
sub r0, r8, r6
mov r0, r0, lsl #0xc
bl func_01ff98e0
add r0, r0, #0x800
add r0, r6, r0, asr #12
and r6, r0, #0xff
_0211207c:
ldrh r0, [r4, #0x16]
mov r1, r0, lsl #0xc
cmp r1, #0x1000
movle r7, sb
ble _021120a8
sub r0, sb, r7
mov r0, r0, lsl #0xc
bl func_01ff98e0
add r0, r0, #0x800
add r0, r7, r0, asr #12
and r7, r0, #0xff
_021120a8:
orr r1, r5, r6, lsl #5
add r0, r4, sl, lsl #1
orr r1, r1, r7, lsl #10
add sl, sl, #1
strh r1, [r0, #0x20]
cmp sl, #7
blt _02111fe0
mov r5, #0
_021120c8:
add r0, r4, r5, lsl #1
ldrh r6, [r0, #0x2e]
ldrh r0, [r0, #0x96]
ldrh r1, [r4, #0x16]
and r3, r6, #0x3e0
and r2, r6, #0x7c00
and r8, r0, #0x3e0
and r7, r0, #0x7c00
mov sb, r8, asr #0x5
mov r2, r2, asr #0xa
mov sl, r7, asr #0xa
mov r3, r3, asr #0x5
mov r1, r1, lsl #0xc
and r6, r6, #0x1f
and r0, r0, #0x1f
cmp r1, #0x1000
and r7, r3, #0xff
and r8, r2, #0xff
and sb, sb, #0xff
and sl, sl, #0xff
movle r6, r0
ble _02112138
sub r0, r0, r6
mov r0, r0, lsl #0xc
bl func_01ff98e0
add r0, r0, #0x800
add r0, r6, r0, asr #12
and r6, r0, #0xff
_02112138:
ldrh r0, [r4, #0x16]
mov r1, r0, lsl #0xc
cmp r1, #0x1000
movle r7, sb
ble _02112164
sub r0, sb, r7
mov r0, r0, lsl #0xc
bl func_01ff98e0
add r0, r0, #0x800
add r0, r7, r0, asr #12
and r7, r0, #0xff
_02112164:
ldrh r0, [r4, #0x16]
mov r1, r0, lsl #0xc
cmp r1, #0x1000
movle r8, sl
ble _02112190
sub r0, sl, r8
mov r0, r0, lsl #0xc
bl func_01ff98e0
add r0, r0, #0x800
add r0, r8, r0, asr #12
and r8, r0, #0xff
_02112190:
orr r1, r6, r7, lsl #5
add r0, r4, r5, lsl #1
orr r1, r1, r8, lsl #10
add r5, r5, #1
strh r1, [r0, #0x2e]
cmp r5, #0x20
blt _021120c8
ldr r0, [r4]
mov r1, #0
bl func_ov00_0207dea0
ldrh r0, [r4, #0x16]
cmp r0, #0
moveq r0, #0
streqb r0, [r4, #0x14]
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
arm_func_end func_ov05_02111fb8
.global func_ov05_021121cc
arm_func_start func_ov05_021121cc
func_ov05_021121cc: ; 0x021121cc
stmdb sp!, {r3, lr}
mov r1, r0
ldrb r0, [r1, #0x15]
cmp r0, #0
ldmeqia sp!, {r3, pc}
ldrh r0, [r1, #0x18]
cmp r0, #0
subne r0, r0, #1
strneh r0, [r1, #0x18]
ldrh r0, [r1, #0x18]
cmp r0, #0
ldmneia sp!, {r3, pc}
mov r0, #0
strb r0, [r1, #0x15]
ldr r0, [r1, #0xf4]
cmp r0, #4
ldmneia sp!, {r3, pc}
ldr r0, [r1, #4]
cmp r0, #0x11
ldmneia sp!, {r3, pc}
ldr r0, [r1, #0x108]
ldr r1, [r1, #0x114]
ldr r2, [r0]
ldr r2, [r2, #0x24]
blx r2
ldmia sp!, {r3, pc}
arm_func_end func_ov05_021121cc
.global func_ov05_02112234
arm_func_start func_ov05_02112234
func_ov05_02112234: ; 0x02112234
stmdb sp!, {r3, lr}
ldr r1, [r0]
tst r1, #1
ldrne r1, [r0, #0x1c]
cmpne r1, #2
addne r0, r0, r1, lsl #2
ldrne r0, [r0, #0x84]
cmpne r0, #0
ldmeqia sp!, {r3, pc}
ldr r1, [r0]
ldr r1, [r1, #0x1c]
blx r1
ldmia sp!, {r3, pc}
arm_func_end func_ov05_02112234
.global func_ov05_02112268
arm_func_start func_ov05_02112268
func_ov05_02112268: ; 0x02112268
stmdb sp!, {r3, lr}
ldr r2, [r0, #0x1c]
cmp r2, #2
moveq r0, #0
ldmeqia sp!, {r3, pc}
add r0, r0, r2, lsl #2
ldr r0, [r0, #0x84]
ldr r2, [r0]
ldr r2, [r2, #0x20]
blx r2
ldmia sp!, {r3, pc}
arm_func_end func_ov05_02112268
.global func_ov05_02112294
arm_func_start func_ov05_02112294
func_ov05_02112294: ; 0x02112294
ldr r1, [r0, #4]
str r1, [r0]
bx lr
arm_func_end func_ov05_02112294
.rodata
.global data_ov05_021122a0
data_ov05_021122a0: ; 0x021122a0
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_021122a4
data_ov05_021122a4: ; 0x021122a4
.byte 0x00, 0x10, 0x00, 0x00
.global data_ov05_021122a8
data_ov05_021122a8: ; 0x021122a8
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_021122ac
data_ov05_021122ac: ; 0x021122ac
.byte 0x00, 0x10, 0x00, 0x00
.global data_ov05_021122b0
data_ov05_021122b0: ; 0x021122b0
.byte 0x4b, 0x0c, 0x00, 0x00
.global data_ov05_021122b4
data_ov05_021122b4: ; 0x021122b4
.byte 0x3e, 0x0a, 0x00, 0x00
.global data_ov05_021122b8
data_ov05_021122b8: ; 0x021122b8
.byte 0x33, 0x13, 0x00, 0x00
.global data_ov05_021122bc
data_ov05_021122bc: ; 0x021122bc
.byte 0xfe, 0x18, 0x00, 0x00
.global data_ov05_021122c0
data_ov05_021122c0: ; 0x021122c0
.byte 0x3b, 0x08, 0x00, 0x00
.global data_ov05_021122c4
data_ov05_021122c4: ; 0x021122c4
.byte 0xb8, 0x0d, 0x00, 0x00
.global data_ov05_021122c8
data_ov05_021122c8: ; 0x021122c8
.byte 0x9a, 0x09, 0x00, 0x00
.global data_ov05_021122cc
data_ov05_021122cc: ; 0x021122cc
.byte 0xa9, 0x12, 0x00, 0x00
.global data_ov05_021122d0
data_ov05_021122d0: ; 0x021122d0
.byte 0xf1, 0x05, 0x00, 0x00
.global data_ov05_021122d4
data_ov05_021122d4: ; 0x021122d4
.byte 0xdb, 0x0e, 0x00, 0x00
.global data_ov05_021122d8
data_ov05_021122d8: ; 0x021122d8
.byte 0x66, 0x06, 0x00, 0x00
.global data_ov05_021122dc
data_ov05_021122dc: ; 0x021122dc
.byte 0x3c, 0x11, 0x00, 0x00
.global data_ov05_021122e0
data_ov05_021122e0: ; 0x021122e0
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_021122e4
data_ov05_021122e4: ; 0x021122e4
.byte 0x48, 0x05, 0x00, 0x00
.global data_ov05_021122e8
data_ov05_021122e8: ; 0x021122e8
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_021122ec
data_ov05_021122ec: ; 0x021122ec
.byte 0x00, 0x08, 0x00, 0x00
.global data_ov05_021122f0
data_ov05_021122f0: ; 0x021122f0
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_021122f4
data_ov05_021122f4: ; 0x021122f4
.byte 0x00, 0x04, 0x00, 0x00
.global data_ov05_021122f8
data_ov05_021122f8: ; 0x021122f8
.byte 0x33, 0xff, 0xff, 0xff
.global data_ov05_021122fc
data_ov05_021122fc: ; 0x021122fc
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_02112300
data_ov05_02112300: ; 0x02112300
.byte 0x33, 0x03, 0x00, 0x00
.global data_ov05_02112304
data_ov05_02112304: ; 0x02112304
.byte 0x66, 0xfe, 0xff, 0xff
.global data_ov05_02112308
data_ov05_02112308: ; 0x02112308
.ascii "mat_rev_binP_2"
.byte 0x00, 0x00
.global data_ov05_02112318
data_ov05_02112318: ; 0x02112318
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_0211231c
data_ov05_0211231c: ; 0x0211231c
.byte 0x96, 0x00, 0x00, 0x00
.global data_ov05_02112320
data_ov05_02112320: ; 0x02112320
.byte 0x00, 0x10, 0x00, 0x00
.global data_ov05_02112324
data_ov05_02112324: ; 0x02112324
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_02112328
data_ov05_02112328: ; 0x02112328
.byte 0x66, 0x06, 0x00, 0x00
.global data_ov05_0211232c
data_ov05_0211232c: ; 0x0211232c
.byte 0x00, 0x18, 0x00, 0x00
.global data_ov05_02112330
data_ov05_02112330: ; 0x02112330
.byte 0x00, 0x14, 0x00, 0x00
.global data_ov05_02112334
data_ov05_02112334: ; 0x02112334
.byte 0x00, 0x18, 0x00, 0x00
.global data_ov05_02112338
data_ov05_02112338: ; 0x02112338
.byte 0x00, 0x20, 0x00, 0x00
.global data_ov05_0211233c
data_ov05_0211233c: ; 0x0211233c
.byte 0x00, 0x50, 0x00, 0x00
.global data_ov05_02112340
data_ov05_02112340: ; 0x02112340
.byte 0x00, 0x18, 0x00, 0x00
.global data_ov05_02112344
data_ov05_02112344: ; 0x02112344
.byte 0x00, 0x1c, 0x00, 0x00
.global data_ov05_02112348
data_ov05_02112348: ; 0x02112348
.byte 0x00, 0x08, 0x00, 0x00
.global data_ov05_0211234c
data_ov05_0211234c: ; 0x0211234c
.byte 0x00, 0x10, 0x00, 0x00
.global data_ov05_02112350
data_ov05_02112350: ; 0x02112350
.byte 0x00, 0x30, 0x00, 0x00
.global data_ov05_02112354
data_ov05_02112354: ; 0x02112354
.byte 0x00, 0x18, 0x00, 0x00
.global data_ov05_02112358
data_ov05_02112358: ; 0x02112358
.byte 0x00, 0x14, 0x00, 0x00
.global data_ov05_0211235c
data_ov05_0211235c: ; 0x0211235c
.byte 0x00, 0x18, 0x00, 0x00
.global data_ov05_02112360
data_ov05_02112360: ; 0x02112360
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_02112364
data_ov05_02112364: ; 0x02112364
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_02112368
data_ov05_02112368: ; 0x02112368
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_0211236c
data_ov05_0211236c: ; 0x0211236c
.byte 0x01, 0x00, 0x00, 0x00
.global data_ov05_02112370
data_ov05_02112370: ; 0x02112370
.byte 0x02, 0x00, 0x00, 0x00
.global data_ov05_02112374
data_ov05_02112374: ; 0x02112374
.byte 0x03, 0x00, 0x00, 0x00
.global data_ov05_02112378
data_ov05_02112378: ; 0x02112378
.byte 0x04, 0x00, 0x00, 0x00
.global data_ov05_0211237c
data_ov05_0211237c: ; 0x0211237c
.byte 0x05, 0x00, 0x00, 0x00
.global data_ov05_02112380
data_ov05_02112380: ; 0x02112380
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_02112384
data_ov05_02112384: ; 0x02112384
.byte 0x06, 0x00, 0x00, 0x00
.global data_ov05_02112388
data_ov05_02112388: ; 0x02112388
.byte 0x08, 0x00, 0x00, 0x00
.global data_ov05_0211238c
data_ov05_0211238c: ; 0x0211238c
.byte 0x09, 0x00, 0x00, 0x00
.global data_ov05_02112390
data_ov05_02112390: ; 0x02112390
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_02112394
data_ov05_02112394: ; 0x02112394
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_02112398
data_ov05_02112398: ; 0x02112398
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_0211239c
data_ov05_0211239c: ; 0x0211239c
.byte 0x00, 0x08, 0x00, 0x00
.global data_ov05_021123a0
data_ov05_021123a0: ; 0x021123a0
.byte 0x00, 0x00
.global data_ov05_021123a2
data_ov05_021123a2: ; 0x021123a2
.byte 0x00, 0x10
.global data_ov05_021123a4
data_ov05_021123a4: ; 0x021123a4
.byte 0x00, 0x00
.global data_ov05_021123a6
data_ov05_021123a6: ; 0x021123a6
.byte 0x00, 0x00
.global data_ov05_021123a8
data_ov05_021123a8: ; 0x021123a8
.byte 0x00, 0x10
.global data_ov05_021123aa
data_ov05_021123aa: ; 0x021123aa
.byte 0x00, 0x00
.global data_ov05_021123ac
data_ov05_021123ac: ; 0x021123ac
.byte 0x32, 0x00, 0x00, 0x00
.global data_ov05_021123b0
data_ov05_021123b0: ; 0x021123b0
.byte 0x00, 0x10, 0x00, 0x00
.global data_ov05_021123b4
data_ov05_021123b4: ; 0x021123b4
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_021123b8
data_ov05_021123b8: ; 0x021123b8
.byte 0x00, 0xf0, 0x00, 0x00
.section .init, 4, 1, 4
.global func_ov05_021123bc
arm_func_start func_ov05_021123bc
func_ov05_021123bc: ; 0x021123bc
ldr r0, _021123dc ; =data_ov05_021124a0
mov r1, #0
str r1, [r0, #0x20]
str r1, [r0, #0x24]
str r1, [r0, #0x28]
mov r1, #0xc0
str r1, [r0, #0x2c]
bx lr
.align 2, 0
arm_func_end func_ov05_021123bc
_021123dc: .word data_ov05_021124a0
.global func_ov05_021123e0
arm_func_start func_ov05_021123e0
func_ov05_021123e0: ; 0x021123e0
stmdb sp!, {r3, lr}
mov r0, #0xa4
bl func_01ff991c
ldr r1, _021123f8 ; =data_ov05_021126ac
str r0, [r1]
ldmia sp!, {r3, pc}
.align 2, 0
arm_func_end func_ov05_021123e0
_021123f8: .word data_ov05_021126ac
.global func_ov05_021123fc
arm_func_start func_ov05_021123fc
func_ov05_021123fc: ; 0x021123fc
ldr r1, _02112418 ; =data_02057200
ldr r0, _0211241c ; =data_ov05_02112870
ldr r2, [r1]
ldr r1, [r1, #4]
str r2, [r0, #0x54]
str r1, [r0, #0x58]
bx lr
.align 2, 0
arm_func_end func_ov05_021123fc
_02112418: .word data_02057200
_0211241c: .word data_ov05_02112870
.global func_ov05_02112420
arm_func_start func_ov05_02112420
func_ov05_02112420: ; 0x02112420
sub sp, sp, #8
ldr r1, _0211245c ; =data_02057200
ldr r0, _02112460 ; =data_ov05_02112954
ldr r2, [r1]
ldr r1, [r1, #4]
str r2, [sp]
str r2, [r0, #0xb0]
str r1, [r0, #0xb4]
str r2, [r0, #0xf0]
str r1, [r0, #0xf4]
str r2, [r0, #0xf8]
str r1, [sp, #4]
str r1, [r0, #0xfc]
add sp, sp, #8
bx lr
.align 2, 0
arm_func_end func_ov05_02112420
_0211245c: .word data_02057200
_02112460: .word data_ov05_02112954
.section .sinit, 4, 1, 4
.global data_ov05_02112464
data_ov05_02112464: ; 0x02112464
.byte 0xbc, 0x23, 0x11, 0x02
.global data_ov05_02112468
data_ov05_02112468: ; 0x02112468
.byte 0xe0, 0x23, 0x11, 0x02
.global data_ov05_0211246c
data_ov05_0211246c: ; 0x0211246c
.byte 0xfc, 0x23, 0x11, 0x02
.global data_ov05_02112470
data_ov05_02112470: ; 0x02112470
.byte 0x20, 0x24, 0x11, 0x02
.data
.global data_ov05_02112480
data_ov05_02112480: ; 0x02112480
.ascii "brg"
.byte 0x00
.global data_ov05_02112484
data_ov05_02112484: ; 0x02112484
.ascii "fnl"
.byte 0x00
.global data_ov05_02112488
data_ov05_02112488: ; 0x02112488
.ascii "pdl"
.byte 0x00
.global data_ov05_0211248c
data_ov05_0211248c: ; 0x0211248c
.ascii "dco"
.byte 0x00
.global data_ov05_02112490
data_ov05_02112490: ; 0x02112490
.ascii "can"
.byte 0x00
.global data_ov05_02112494
data_ov05_02112494: ; 0x02112494
.ascii "hul"
.byte 0x00
.global data_ov05_02112498
data_ov05_02112498: ; 0x02112498
.ascii "bow"
.byte 0x00
.global data_ov05_0211249c
data_ov05_0211249c: ; 0x0211249c
.ascii "anc"
.byte 0x00
.global data_ov05_021124a0
data_ov05_021124a0: ; 0x021124a0
.byte 0x9c, 0x24, 0x11, 0x02
.global data_ov05_021124a4
data_ov05_021124a4: ; 0x021124a4
.byte 0x98, 0x24, 0x11, 0x02
.global data_ov05_021124a8
data_ov05_021124a8: ; 0x021124a8
.byte 0x94, 0x24, 0x11, 0x02
.global data_ov05_021124ac
data_ov05_021124ac: ; 0x021124ac
.byte 0x90, 0x24, 0x11, 0x02
.global data_ov05_021124b0
data_ov05_021124b0: ; 0x021124b0
.byte 0x8c, 0x24, 0x11, 0x02
.global data_ov05_021124b4
data_ov05_021124b4: ; 0x021124b4
.byte 0x88, 0x24, 0x11, 0x02
.global data_ov05_021124b8
data_ov05_021124b8: ; 0x021124b8
.byte 0x84, 0x24, 0x11, 0x02
.global data_ov05_021124bc
data_ov05_021124bc: ; 0x021124bc
.byte 0x80, 0x24, 0x11, 0x02
.global data_ov05_021124c0
data_ov05_021124c0: ; 0x021124c0
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_021124c4
data_ov05_021124c4: ; 0x021124c4
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_021124c8
data_ov05_021124c8: ; 0x021124c8
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_021124cc
data_ov05_021124cc: ; 0x021124cc
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_021124d0
data_ov05_021124d0: ; 0x021124d0
.ascii "brg"
.byte 0x00
.global data_ov05_021124d4
data_ov05_021124d4: ; 0x021124d4
.ascii "fnl"
.byte 0x00
.global data_ov05_021124d8
data_ov05_021124d8: ; 0x021124d8
.ascii "pdl"
.byte 0x00
.global data_ov05_021124dc
data_ov05_021124dc: ; 0x021124dc
.ascii "dco"
.byte 0x00
.global data_ov05_021124e0
data_ov05_021124e0: ; 0x021124e0
.ascii "can"
.byte 0x00
.global data_ov05_021124e4
data_ov05_021124e4: ; 0x021124e4
.ascii "hul"
.byte 0x00
.global data_ov05_021124e8
data_ov05_021124e8: ; 0x021124e8
.ascii "bow"
.byte 0x00
.global data_ov05_021124ec
data_ov05_021124ec: ; 0x021124ec
.ascii "anc"
.byte 0x00
.global data_ov05_021124f0
data_ov05_021124f0: ; 0x021124f0
.byte 0xec, 0x24, 0x11, 0x02
.global data_ov05_021124f4
data_ov05_021124f4: ; 0x021124f4
.byte 0xe8, 0x24, 0x11, 0x02
.global data_ov05_021124f8
data_ov05_021124f8: ; 0x021124f8
.byte 0xe4, 0x24, 0x11, 0x02
.global data_ov05_021124fc
data_ov05_021124fc: ; 0x021124fc
.byte 0xe0, 0x24, 0x11, 0x02
.global data_ov05_02112500
data_ov05_02112500: ; 0x02112500
.byte 0xdc, 0x24, 0x11, 0x02
.global data_ov05_02112504
data_ov05_02112504: ; 0x02112504
.byte 0xd8, 0x24, 0x11, 0x02
.global data_ov05_02112508
data_ov05_02112508: ; 0x02112508
.byte 0xd4, 0x24, 0x11, 0x02
.global data_ov05_0211250c
data_ov05_0211250c: ; 0x0211250c
.byte 0xd0, 0x24, 0x11, 0x02
.global data_ov05_02112510
data_ov05_02112510: ; 0x02112510
.byte 0x00, 0x40, 0x00, 0x00
.global data_ov05_02112514
data_ov05_02112514: ; 0x02112514
.byte 0x33, 0x13, 0x00, 0x00
.global data_ov05_02112518
data_ov05_02112518: ; 0x02112518
.byte 0x48, 0x05, 0x00, 0x00
.global data_ov05_0211251c
data_ov05_0211251c: ; 0x0211251c
.byte 0xcd, 0x0c, 0x00, 0x00
.global data_ov05_02112520
data_ov05_02112520: ; 0x02112520
.byte 0x33, 0xff, 0xff, 0xff
.global data_ov05_02112524
data_ov05_02112524: ; 0x02112524
.byte 0x9a, 0xfd, 0xff, 0xff
.global data_ov05_02112528
data_ov05_02112528: ; 0x02112528
.byte 0x33, 0xfb, 0xff, 0xff
.global data_ov05_0211252c
data_ov05_0211252c: ; 0x0211252c
.byte 0x00, 0xf0, 0x00, 0x00
.global data_ov05_02112530
data_ov05_02112530: ; 0x02112530
.byte 0x00, 0xd0, 0x00, 0x00
.global data_ov05_02112534
data_ov05_02112534: ; 0x02112534
.byte 0x00, 0xd0, 0x00, 0x00
.global data_ov05_02112538
data_ov05_02112538: ; 0x02112538
.byte 0x00, 0x00, 0x01, 0x00
.global data_ov05_0211253c
data_ov05_0211253c: ; 0x0211253c
.byte 0x00, 0x70, 0x00, 0x00
.global data_ov05_02112540
data_ov05_02112540: ; 0x02112540
.byte 0x00, 0x40, 0x01, 0x00
.global data_ov05_02112544
data_ov05_02112544: ; 0x02112544
.byte 0x00, 0x40, 0x01, 0x00
.global data_ov05_02112548
data_ov05_02112548: ; 0x02112548
.byte 0x00, 0x40, 0x01, 0x00
.global data_ov05_0211254c
data_ov05_0211254c: ; 0x0211254c
.byte 0x00, 0x40, 0x01, 0x00
.global data_ov05_02112550
data_ov05_02112550: ; 0x02112550
.byte 0x00, 0x70, 0x00, 0x00
.global data_ov05_02112554
data_ov05_02112554: ; 0x02112554
.byte 0x00, 0x30, 0x00, 0x00
.global data_ov05_02112558
data_ov05_02112558: ; 0x02112558
.byte 0x00, 0x90, 0x00, 0x00
.global data_ov05_0211255c
data_ov05_0211255c: ; 0x0211255c
.byte 0x13, 0x00, 0x00, 0x00
.byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00
.global data_ov05_0211256c
data_ov05_0211256c: ; 0x0211256c
.byte 0x14, 0x00, 0x00, 0x00
.byte 0x9a, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00
.global data_ov05_0211257c
data_ov05_0211257c: ; 0x0211257c
.byte 0x17, 0x00, 0x00, 0x00
.byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x30, 0x01, 0x00
.global data_ov05_0211258c
data_ov05_0211258c: ; 0x0211258c
.byte 0x18, 0x00, 0x00, 0x00
.byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x30, 0x01, 0x00
.global data_ov05_0211259c
data_ov05_0211259c: ; 0x0211259c
.byte 0x45, 0x00, 0x00, 0x00
.byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
.global data_ov05_021125ac
data_ov05_021125ac: ; 0x021125ac
.byte 0x19, 0x00, 0x00, 0x00
.byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00
.global data_ov05_021125bc
data_ov05_021125bc: ; 0x021125bc
.byte 0x0e, 0x00, 0x00, 0x00
.byte 0xcd, 0x1c, 0x00, 0x00
.global data_ov05_021125c4
data_ov05_021125c4: ; 0x021125c4
.byte 0x00, 0x50, 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x0f, 0x00, 0x00, 0x00
.byte 0x9a, 0x19, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x10, 0x00, 0x00, 0x00
.byte 0x9a, 0x19, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x11, 0x00, 0x00, 0x00
.byte 0x66, 0x16, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x40, 0x01, 0x00
.global data_ov05_021125fc
data_ov05_021125fc: ; 0x021125fc
.byte 0x12, 0x00, 0x00, 0x00
.byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00
.byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x01, 0x00, 0x16, 0x00, 0x00, 0x00
.byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x70, 0x01, 0x00, 0x15, 0x00, 0x00, 0x00
.byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x01, 0x00, 0x16, 0x00, 0x00, 0x00
.byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x70, 0x01, 0x00
.global data_ov05_0211264c
data_ov05_0211264c: ; 0x0211264c
.byte 0xac, 0x5d, 0x10, 0x02
.global data_ov05_02112650
data_ov05_02112650: ; 0x02112650
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_02112654
data_ov05_02112654: ; 0x02112654
.byte 0x44, 0x66, 0x10, 0x02
.global data_ov05_02112658
data_ov05_02112658: ; 0x02112658
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_0211265c
data_ov05_0211265c: ; 0x0211265c
.byte 0x7c, 0x97, 0x19, 0x02
.global data_ov05_02112660
data_ov05_02112660: ; 0x02112660
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_02112664
data_ov05_02112664: ; 0x02112664
.byte 0xc8, 0x92, 0x19, 0x02
.global data_ov05_02112668
data_ov05_02112668: ; 0x02112668
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_0211266c
data_ov05_0211266c: ; 0x0211266c
.byte 0x20, 0x90, 0x19, 0x02
.global data_ov05_02112670
data_ov05_02112670: ; 0x02112670
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_02112674
data_ov05_02112674: ; 0x02112674
.byte 0x1c, 0x91, 0x19, 0x02
.global data_ov05_02112678
data_ov05_02112678: ; 0x02112678
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_0211267c
data_ov05_0211267c: ; 0x0211267c
.byte 0xdc, 0x9e, 0x19, 0x02
.global data_ov05_02112680
data_ov05_02112680: ; 0x02112680
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_02112684
data_ov05_02112684: ; 0x02112684
.byte 0x7c, 0xa4, 0x19, 0x02
.global data_ov05_02112688
data_ov05_02112688: ; 0x02112688
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_0211268c
data_ov05_0211268c: ; 0x0211268c
.byte 0xa4, 0x90, 0x19, 0x02
.global data_ov05_02112690
data_ov05_02112690: ; 0x02112690
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_02112694
data_ov05_02112694: ; 0x02112694
.byte 0x54, 0x96, 0x19, 0x02
.global data_ov05_02112698
data_ov05_02112698: ; 0x02112698
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_0211269c
data_ov05_0211269c: ; 0x0211269c
.byte 0x54, 0x96, 0x19, 0x02
.global data_ov05_021126a0
data_ov05_021126a0: ; 0x021126a0
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_021126a4
data_ov05_021126a4: ; 0x021126a4
.byte 0xac, 0x5d, 0x10, 0x02
.global data_ov05_021126a8
data_ov05_021126a8: ; 0x021126a8
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_021126ac
data_ov05_021126ac: ; 0x021126ac
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x10, 0x01, 0x00
.global data_ov05_021126b4
data_ov05_021126b4: ; 0x021126b4
.byte 0x2d, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x10, 0x01, 0x00
.global data_ov05_021126c4
data_ov05_021126c4: ; 0x021126c4
.byte 0x2c, 0x00, 0x00, 0x00, 0x33, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0xc0, 0x00, 0x00
.global data_ov05_021126d4
data_ov05_021126d4: ; 0x021126d4
.byte 0x46, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0xc0, 0x03, 0x00
.global data_ov05_021126e4
data_ov05_021126e4: ; 0x021126e4
.byte 0x47, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x80, 0x00, 0x00
.global data_ov05_021126f4
data_ov05_021126f4: ; 0x021126f4
.byte 0xd0, 0x6c, 0x10, 0x02
.global data_ov05_021126f8
data_ov05_021126f8: ; 0x021126f8
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_021126fc
data_ov05_021126fc: ; 0x021126fc
.byte 0x14, 0x72, 0x10, 0x02
.global data_ov05_02112700
data_ov05_02112700: ; 0x02112700
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_02112704
data_ov05_02112704: ; 0x02112704
.byte 0xb8, 0x73, 0x10, 0x02
.global data_ov05_02112708
data_ov05_02112708: ; 0x02112708
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_0211270c
data_ov05_0211270c: ; 0x0211270c
.byte 0xbc, 0x75, 0x10, 0x02
.global data_ov05_02112710
data_ov05_02112710: ; 0x02112710
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_02112714
data_ov05_02112714: ; 0x02112714
.byte 0x80, 0x78, 0x10, 0x02
.global data_ov05_02112718
data_ov05_02112718: ; 0x02112718
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_0211271c
data_ov05_0211271c: ; 0x0211271c
.byte 0x80, 0x06, 0x17, 0x02
.global data_ov05_02112720
data_ov05_02112720: ; 0x02112720
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_02112724
data_ov05_02112724: ; 0x02112724
.byte 0x2c, 0x5a, 0x17, 0x02
.global data_ov05_02112728
data_ov05_02112728: ; 0x02112728
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_0211272c
data_ov05_0211272c: ; 0x0211272c
.byte 0x54, 0x79, 0x10, 0x02
.global data_ov05_02112730
data_ov05_02112730: ; 0x02112730
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_02112734
data_ov05_02112734: ; 0x02112734
.byte 0xa8, 0x81, 0x10, 0x02
.global data_ov05_02112738
data_ov05_02112738: ; 0x02112738
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_0211273c
data_ov05_0211273c: ; 0x0211273c
.byte 0x1c, 0x18, 0x17, 0x02
.global data_ov05_02112740
data_ov05_02112740: ; 0x02112740
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_02112744
data_ov05_02112744: ; 0x02112744
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_02112748
data_ov05_02112748: ; 0x02112748
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_0211274c
data_ov05_0211274c: ; 0x0211274c
.byte 0xcc, 0x81, 0x10, 0x02
.global data_ov05_02112750
data_ov05_02112750: ; 0x02112750
.ascii "brg"
.byte 0x00
.global data_ov05_02112754
data_ov05_02112754: ; 0x02112754
.ascii "fnl"
.byte 0x00
.global data_ov05_02112758
data_ov05_02112758: ; 0x02112758
.ascii "pdl"
.byte 0x00
.global data_ov05_0211275c
data_ov05_0211275c: ; 0x0211275c
.ascii "dco"
.byte 0x00
.global data_ov05_02112760
data_ov05_02112760: ; 0x02112760
.ascii "can"
.byte 0x00
.global data_ov05_02112764
data_ov05_02112764: ; 0x02112764
.ascii "hul"
.byte 0x00
.global data_ov05_02112768
data_ov05_02112768: ; 0x02112768
.ascii "bow"
.byte 0x00
.global data_ov05_0211276c
data_ov05_0211276c: ; 0x0211276c
.ascii "anc"
.byte 0x00
.global data_ov05_02112770
data_ov05_02112770: ; 0x02112770
.byte 0x6c, 0x27, 0x11, 0x02
.global data_ov05_02112774
data_ov05_02112774: ; 0x02112774
.byte 0x68, 0x27, 0x11, 0x02
.global data_ov05_02112778
data_ov05_02112778: ; 0x02112778
.byte 0x64, 0x27, 0x11, 0x02
.global data_ov05_0211277c
data_ov05_0211277c: ; 0x0211277c
.byte 0x60, 0x27, 0x11, 0x02
.global data_ov05_02112780
data_ov05_02112780: ; 0x02112780
.byte 0x5c, 0x27, 0x11, 0x02
.global data_ov05_02112784
data_ov05_02112784: ; 0x02112784
.byte 0x58, 0x27, 0x11, 0x02
.global data_ov05_02112788
data_ov05_02112788: ; 0x02112788
.byte 0x54, 0x27, 0x11, 0x02
.global data_ov05_0211278c
data_ov05_0211278c: ; 0x0211278c
.byte 0x50, 0x27, 0x11, 0x02
.global data_ov05_02112790
data_ov05_02112790: ; 0x02112790
.byte 0xe3, 0x05, 0x00, 0x00
.global data_ov05_02112794
data_ov05_02112794: ; 0x02112794
.byte 0x2d, 0x15, 0x00, 0x00
.global data_ov05_02112798
data_ov05_02112798: ; 0x02112798
.byte 0xcd, 0x00, 0x00, 0x00
.global data_ov05_0211279c
data_ov05_0211279c: ; 0x0211279c
.byte 0x0e, 0x01, 0x00, 0x00
.global data_ov05_021127a0
data_ov05_021127a0: ; 0x021127a0
.byte 0x4c, 0x00, 0x00, 0x00
.global data_ov05_021127a4
data_ov05_021127a4: ; 0x021127a4
.byte 0x00, 0x10, 0x00, 0x00
.global data_ov05_021127a8
data_ov05_021127a8: ; 0x021127a8
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_021127ac
data_ov05_021127ac: ; 0x021127ac
.byte 0x00, 0xe0, 0x07, 0x00
.global data_ov05_021127b0
data_ov05_021127b0: ; 0x021127b0
.byte 0x4d, 0x00, 0x00, 0x00
.global data_ov05_021127b4
data_ov05_021127b4: ; 0x021127b4
.byte 0x33, 0x13, 0x00, 0x00
.global data_ov05_021127b8
data_ov05_021127b8: ; 0x021127b8
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_021127bc
data_ov05_021127bc: ; 0x021127bc
.byte 0x00, 0x40, 0x02, 0x00
.global data_ov05_021127c0
data_ov05_021127c0: ; 0x021127c0
.byte 0x55, 0x00, 0x00, 0x00
.global data_ov05_021127c4
data_ov05_021127c4: ; 0x021127c4
.byte 0x33, 0x13, 0x00, 0x00
.global data_ov05_021127c8
data_ov05_021127c8: ; 0x021127c8
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_021127cc
data_ov05_021127cc: ; 0x021127cc
.byte 0x00, 0x40, 0x02, 0x00
.global data_ov05_021127d0
data_ov05_021127d0: ; 0x021127d0
.byte 0x4f, 0x00, 0x00, 0x00
.global data_ov05_021127d4
data_ov05_021127d4: ; 0x021127d4
.byte 0x00, 0x10, 0x00, 0x00
.global data_ov05_021127d8
data_ov05_021127d8: ; 0x021127d8
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_021127dc
data_ov05_021127dc: ; 0x021127dc
.byte 0x00, 0xe0, 0x03, 0x00
.global data_ov05_021127e0
data_ov05_021127e0: ; 0x021127e0
.byte 0x50, 0x00, 0x00, 0x00
.global data_ov05_021127e4
data_ov05_021127e4: ; 0x021127e4
.byte 0x00, 0x10, 0x00, 0x00
.global data_ov05_021127e8
data_ov05_021127e8: ; 0x021127e8
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_021127ec
data_ov05_021127ec: ; 0x021127ec
.byte 0x00, 0xc0, 0x03, 0x00
.global data_ov05_021127f0
data_ov05_021127f0: ; 0x021127f0
.byte 0x51, 0x00, 0x00, 0x00
.global data_ov05_021127f4
data_ov05_021127f4: ; 0x021127f4
.byte 0x00, 0x10, 0x00, 0x00
.global data_ov05_021127f8
data_ov05_021127f8: ; 0x021127f8
.byte 0x00, 0x90, 0x03, 0x00
.global data_ov05_021127fc
data_ov05_021127fc: ; 0x021127fc
.byte 0x00, 0xa0, 0x03, 0x00
.global data_ov05_02112800
data_ov05_02112800: ; 0x02112800
.byte 0x48, 0x00, 0x00, 0x00
.global data_ov05_02112804
data_ov05_02112804: ; 0x02112804
.byte 0x00, 0x10, 0x00, 0x00
.global data_ov05_02112808
data_ov05_02112808: ; 0x02112808
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_0211280c
data_ov05_0211280c: ; 0x0211280c
.byte 0x00, 0x10, 0x00, 0x00
.global data_ov05_02112810
data_ov05_02112810: ; 0x02112810
.byte 0x02, 0x00, 0x00, 0x00
.global data_ov05_02112814
data_ov05_02112814: ; 0x02112814
.byte 0x03, 0x00, 0x00, 0x00
.global data_ov05_02112818
data_ov05_02112818: ; 0x02112818
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_0211281c
data_ov05_0211281c: ; 0x0211281c
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_02112820
data_ov05_02112820: ; 0x02112820
.ascii "Player/get/map.nsbmd"
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_02112838
data_ov05_02112838: ; 0x02112838
.ascii "Player/get/map.nsbtx"
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_02112850
data_ov05_02112850: ; 0x02112850
.ascii "brg"
.byte 0x00
.global data_ov05_02112854
data_ov05_02112854: ; 0x02112854
.ascii "fnl"
.byte 0x00
.global data_ov05_02112858
data_ov05_02112858: ; 0x02112858
.ascii "pdl"
.byte 0x00
.global data_ov05_0211285c
data_ov05_0211285c: ; 0x0211285c
.ascii "dco"
.byte 0x00
.global data_ov05_02112860
data_ov05_02112860: ; 0x02112860
.ascii "can"
.byte 0x00
.global data_ov05_02112864
data_ov05_02112864: ; 0x02112864
.ascii "hul"
.byte 0x00
.global data_ov05_02112868
data_ov05_02112868: ; 0x02112868
.ascii "bow"
.byte 0x00
.global data_ov05_0211286c
data_ov05_0211286c: ; 0x0211286c
.ascii "anc"
.byte 0x00
.global data_ov05_02112870
data_ov05_02112870: ; 0x02112870
.byte 0x6c, 0x28, 0x11, 0x02
.global data_ov05_02112874
data_ov05_02112874: ; 0x02112874
.byte 0x68, 0x28, 0x11, 0x02
.global data_ov05_02112878
data_ov05_02112878: ; 0x02112878
.byte 0x64, 0x28, 0x11, 0x02
.global data_ov05_0211287c
data_ov05_0211287c: ; 0x0211287c
.byte 0x60, 0x28, 0x11, 0x02
.global data_ov05_02112880
data_ov05_02112880: ; 0x02112880
.byte 0x5c, 0x28, 0x11, 0x02
.global data_ov05_02112884
data_ov05_02112884: ; 0x02112884
.byte 0x58, 0x28, 0x11, 0x02
.global data_ov05_02112888
data_ov05_02112888: ; 0x02112888
.byte 0x54, 0x28, 0x11, 0x02
.global data_ov05_0211288c
data_ov05_0211288c: ; 0x0211288c
.byte 0x50, 0x28, 0x11, 0x02
.global data_ov05_02112890
data_ov05_02112890: ; 0x02112890
.byte 0x02, 0x00, 0x00, 0x00
.global data_ov05_02112894
data_ov05_02112894: ; 0x02112894
.byte 0x1a, 0x00, 0x00, 0x00
.global data_ov05_02112898
data_ov05_02112898: ; 0x02112898
.byte 0x00, 0x10, 0x00, 0x00
.global data_ov05_0211289c
data_ov05_0211289c: ; 0x0211289c
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_021128a0
data_ov05_021128a0: ; 0x021128a0
.byte 0x00, 0x40, 0x01, 0x00
.global data_ov05_021128a4
data_ov05_021128a4: ; 0x021128a4
.byte 0x1b, 0x00, 0x00, 0x00
.global data_ov05_021128a8
data_ov05_021128a8: ; 0x021128a8
.byte 0x00, 0x10, 0x00, 0x00
.global data_ov05_021128ac
data_ov05_021128ac: ; 0x021128ac
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_021128b0
data_ov05_021128b0: ; 0x021128b0
.byte 0x00, 0x60, 0x01, 0x00
.global data_ov05_021128b4
data_ov05_021128b4: ; 0x021128b4
.byte 0x1c, 0x00, 0x00, 0x00
.global data_ov05_021128b8
data_ov05_021128b8: ; 0x021128b8
.byte 0xcd, 0x0c, 0x00, 0x00
.global data_ov05_021128bc
data_ov05_021128bc: ; 0x021128bc
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_021128c0
data_ov05_021128c0: ; 0x021128c0
.byte 0x00, 0x60, 0x01, 0x00
.global data_ov05_021128c4
data_ov05_021128c4: ; 0x021128c4
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_021128c8
data_ov05_021128c8: ; 0x021128c8
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_021128cc
data_ov05_021128cc: ; 0x021128cc
.byte 0x90, 0xa6, 0x10, 0x02
.global data_ov05_021128d0
data_ov05_021128d0: ; 0x021128d0
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_021128d4
data_ov05_021128d4: ; 0x021128d4
.byte 0x14, 0xa7, 0x10, 0x02
.global data_ov05_021128d8
data_ov05_021128d8: ; 0x021128d8
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_021128dc
data_ov05_021128dc: ; 0x021128dc
.byte 0x74, 0xa7, 0x10, 0x02
.global data_ov05_021128e0
data_ov05_021128e0: ; 0x021128e0
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_021128e4
data_ov05_021128e4: ; 0x021128e4
.byte 0x74, 0xa7, 0x10, 0x02
.global data_ov05_021128e8
data_ov05_021128e8: ; 0x021128e8
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_021128ec
data_ov05_021128ec: ; 0x021128ec
.byte 0xd4, 0xa7, 0x10, 0x02
.global data_ov05_021128f0
data_ov05_021128f0: ; 0x021128f0
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_021128f4
data_ov05_021128f4: ; 0x021128f4
.byte 0x1c, 0xab, 0x10, 0x02
.global data_ov05_021128f8
data_ov05_021128f8: ; 0x021128f8
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_021128fc
data_ov05_021128fc: ; 0x021128fc
.byte 0x88, 0xad, 0x10, 0x02
.global data_ov05_02112900
data_ov05_02112900: ; 0x02112900
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_02112904
data_ov05_02112904: ; 0x02112904
.byte 0xa4, 0xb2, 0x10, 0x02
.global data_ov05_02112908
data_ov05_02112908: ; 0x02112908
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_0211290c
data_ov05_0211290c: ; 0x0211290c
.byte 0xa4, 0xb2, 0x10, 0x02
.global data_ov05_02112910
data_ov05_02112910: ; 0x02112910
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_02112914
data_ov05_02112914: ; 0x02112914
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_02112918
data_ov05_02112918: ; 0x02112918
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_0211291c
data_ov05_0211291c: ; 0x0211291c
.byte 0x08, 0xab, 0x10, 0x02
.global data_ov05_02112920
data_ov05_02112920: ; 0x02112920
.byte 0x60, 0xb5, 0x10, 0x02
.global data_ov05_02112924
data_ov05_02112924: ; 0x02112924
.byte 0x10, 0xa6, 0x10, 0x02
.global data_ov05_02112928
data_ov05_02112928: ; 0x02112928
.byte 0x40, 0xa6, 0x10, 0x02
.global data_ov05_0211292c
data_ov05_0211292c: ; 0x0211292c
.byte 0x20, 0xa6, 0x10, 0x02
.global data_ov05_02112930
data_ov05_02112930: ; 0x02112930
.byte 0x30, 0xa6, 0x10, 0x02
.global data_ov05_02112934
data_ov05_02112934: ; 0x02112934
.ascii "brg"
.byte 0x00
.global data_ov05_02112938
data_ov05_02112938: ; 0x02112938
.ascii "fnl"
.byte 0x00
.global data_ov05_0211293c
data_ov05_0211293c: ; 0x0211293c
.ascii "pdl"
.byte 0x00
.global data_ov05_02112940
data_ov05_02112940: ; 0x02112940
.ascii "dco"
.byte 0x00
.global data_ov05_02112944
data_ov05_02112944: ; 0x02112944
.ascii "can"
.byte 0x00
.global data_ov05_02112948
data_ov05_02112948: ; 0x02112948
.ascii "hul"
.byte 0x00
.global data_ov05_0211294c
data_ov05_0211294c: ; 0x0211294c
.ascii "bow"
.byte 0x00
.global data_ov05_02112950
data_ov05_02112950: ; 0x02112950
.ascii "anc"
.byte 0x00
.global data_ov05_02112954
data_ov05_02112954: ; 0x02112954
.byte 0x50, 0x29, 0x11, 0x02
.global data_ov05_02112958
data_ov05_02112958: ; 0x02112958
.byte 0x4c, 0x29, 0x11, 0x02
.global data_ov05_0211295c
data_ov05_0211295c: ; 0x0211295c
.byte 0x48, 0x29, 0x11, 0x02
.global data_ov05_02112960
data_ov05_02112960: ; 0x02112960
.byte 0x44, 0x29, 0x11, 0x02
.global data_ov05_02112964
data_ov05_02112964: ; 0x02112964
.byte 0x40, 0x29, 0x11, 0x02
.global data_ov05_02112968
data_ov05_02112968: ; 0x02112968
.byte 0x3c, 0x29, 0x11, 0x02
.global data_ov05_0211296c
data_ov05_0211296c: ; 0x0211296c
.byte 0x38, 0x29, 0x11, 0x02
.global data_ov05_02112970
data_ov05_02112970: ; 0x02112970
.byte 0x34, 0x29, 0x11, 0x02
.global data_ov05_02112974
data_ov05_02112974: ; 0x02112974
.byte 0x09, 0x00, 0x00, 0x00
.global data_ov05_02112978
data_ov05_02112978: ; 0x02112978
.byte 0x00, 0x10, 0x00, 0x00
.global data_ov05_0211297c
data_ov05_0211297c: ; 0x0211297c
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_02112980
data_ov05_02112980: ; 0x02112980
.byte 0x00, 0x70, 0x00, 0x00
.global data_ov05_02112984
data_ov05_02112984: ; 0x02112984
.byte 0x1d, 0x00, 0x00, 0x00
.global data_ov05_02112988
data_ov05_02112988: ; 0x02112988
.byte 0x00, 0x10, 0x00, 0x00
.global data_ov05_0211298c
data_ov05_0211298c: ; 0x0211298c
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_02112990
data_ov05_02112990: ; 0x02112990
.byte 0x00, 0x50, 0x00, 0x00
.global data_ov05_02112994
data_ov05_02112994: ; 0x02112994
.byte 0x20, 0x00, 0x00, 0x00
.global data_ov05_02112998
data_ov05_02112998: ; 0x02112998
.byte 0x00, 0x10, 0x00, 0x00
.global data_ov05_0211299c
data_ov05_0211299c: ; 0x0211299c
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_021129a0
data_ov05_021129a0: ; 0x021129a0
.byte 0x00, 0x30, 0x02, 0x00
.global data_ov05_021129a4
data_ov05_021129a4: ; 0x021129a4
.byte 0x21, 0x00, 0x00, 0x00
.global data_ov05_021129a8
data_ov05_021129a8: ; 0x021129a8
.byte 0x00, 0x10, 0x00, 0x00
.global data_ov05_021129ac
data_ov05_021129ac: ; 0x021129ac
.byte 0x00, 0x20, 0x00, 0x00
.global data_ov05_021129b0
data_ov05_021129b0: ; 0x021129b0
.byte 0x00, 0x60, 0x01, 0x00
.global data_ov05_021129b4
data_ov05_021129b4: ; 0x021129b4
.byte 0x01, 0x00, 0x00, 0x00
.global data_ov05_021129b8
data_ov05_021129b8: ; 0x021129b8
.byte 0x00, 0x08, 0x00, 0x00
.global data_ov05_021129bc
data_ov05_021129bc: ; 0x021129bc
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_021129c0
data_ov05_021129c0: ; 0x021129c0
.byte 0x00, 0xc0, 0x03, 0x00
.global data_ov05_021129c4
data_ov05_021129c4: ; 0x021129c4
.byte 0x1a, 0x00, 0x00, 0x00
.global data_ov05_021129c8
data_ov05_021129c8: ; 0x021129c8
.byte 0x00, 0x10, 0x00, 0x00
.global data_ov05_021129cc
data_ov05_021129cc: ; 0x021129cc
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_021129d0
data_ov05_021129d0: ; 0x021129d0
.byte 0x00, 0x40, 0x01, 0x00
.global data_ov05_021129d4
data_ov05_021129d4: ; 0x021129d4
.byte 0x1c, 0x00, 0x00, 0x00
.global data_ov05_021129d8
data_ov05_021129d8: ; 0x021129d8
.byte 0xcd, 0x0c, 0x00, 0x00
.global data_ov05_021129dc
data_ov05_021129dc: ; 0x021129dc
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_021129e0
data_ov05_021129e0: ; 0x021129e0
.byte 0x00, 0x60, 0x01, 0x00
.global data_ov05_021129e4
data_ov05_021129e4: ; 0x021129e4
.byte 0x1f, 0x00, 0x00, 0x00
.global data_ov05_021129e8
data_ov05_021129e8: ; 0x021129e8
.byte 0x00, 0x20, 0x00, 0x00
.global data_ov05_021129ec
data_ov05_021129ec: ; 0x021129ec
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_021129f0
data_ov05_021129f0: ; 0x021129f0
.byte 0x00, 0xc0, 0x03, 0x00
.global data_ov05_021129f4
data_ov05_021129f4: ; 0x021129f4
.byte 0x4d, 0x00, 0x00, 0x00
.global data_ov05_021129f8
data_ov05_021129f8: ; 0x021129f8
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_021129fc
data_ov05_021129fc: ; 0x021129fc
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_02112a00
data_ov05_02112a00: ; 0x02112a00
.byte 0x00, 0x40, 0x02, 0x00
.global data_ov05_02112a04
data_ov05_02112a04: ; 0x02112a04
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_02112a08
data_ov05_02112a08: ; 0x02112a08
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_02112a0c
data_ov05_02112a0c: ; 0x02112a0c
.byte 0xc4, 0xb9, 0x10, 0x02
.global data_ov05_02112a10
data_ov05_02112a10: ; 0x02112a10
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_02112a14
data_ov05_02112a14: ; 0x02112a14
.byte 0x98, 0xba, 0x10, 0x02
.global data_ov05_02112a18
data_ov05_02112a18: ; 0x02112a18
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_02112a1c
data_ov05_02112a1c: ; 0x02112a1c
.byte 0xbc, 0xba, 0x10, 0x02
.global data_ov05_02112a20
data_ov05_02112a20: ; 0x02112a20
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_02112a24
data_ov05_02112a24: ; 0x02112a24
.byte 0xbc, 0xba, 0x10, 0x02
.global data_ov05_02112a28
data_ov05_02112a28: ; 0x02112a28
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_02112a2c
data_ov05_02112a2c: ; 0x02112a2c
.byte 0x50, 0xbb, 0x10, 0x02
.global data_ov05_02112a30
data_ov05_02112a30: ; 0x02112a30
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_02112a34
data_ov05_02112a34: ; 0x02112a34
.byte 0x98, 0xbb, 0x10, 0x02
.global data_ov05_02112a38
data_ov05_02112a38: ; 0x02112a38
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_02112a3c
data_ov05_02112a3c: ; 0x02112a3c
.byte 0x70, 0xbd, 0x10, 0x02
.global data_ov05_02112a40
data_ov05_02112a40: ; 0x02112a40
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_02112a44
data_ov05_02112a44: ; 0x02112a44
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_02112a48
data_ov05_02112a48: ; 0x02112a48
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_02112a4c
data_ov05_02112a4c: ; 0x02112a4c
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_02112a50
data_ov05_02112a50: ; 0x02112a50
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_02112a54
data_ov05_02112a54: ; 0x02112a54
.byte 0x50, 0xbf, 0x10, 0x02
.global data_ov05_02112a58
data_ov05_02112a58: ; 0x02112a58
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_02112a5c
data_ov05_02112a5c: ; 0x02112a5c
.ascii "fnl"
.byte 0x00
.global data_ov05_02112a60
data_ov05_02112a60: ; 0x02112a60
.ascii "bow"
.byte 0x00
.global data_ov05_02112a64
data_ov05_02112a64: ; 0x02112a64
.ascii "dco"
.byte 0x00
.global data_ov05_02112a68
data_ov05_02112a68: ; 0x02112a68
.ascii "can"
.byte 0x00
.global data_ov05_02112a6c
data_ov05_02112a6c: ; 0x02112a6c
.ascii "hul"
.byte 0x00
.global data_ov05_02112a70
data_ov05_02112a70: ; 0x02112a70
.ascii "pdl"
.byte 0x00
.global data_ov05_02112a74
data_ov05_02112a74: ; 0x02112a74
.ascii "anc"
.byte 0x00
.global data_ov05_02112a78
data_ov05_02112a78: ; 0x02112a78
.ascii "brg"
.byte 0x00
.global data_ov05_02112a7c
data_ov05_02112a7c: ; 0x02112a7c
.byte 0x74, 0x2a, 0x11, 0x02
.global data_ov05_02112a80
data_ov05_02112a80: ; 0x02112a80
.byte 0x60, 0x2a, 0x11, 0x02
.global data_ov05_02112a84
data_ov05_02112a84: ; 0x02112a84
.byte 0x6c, 0x2a, 0x11, 0x02
.global data_ov05_02112a88
data_ov05_02112a88: ; 0x02112a88
.byte 0x68, 0x2a, 0x11, 0x02
.global data_ov05_02112a8c
data_ov05_02112a8c: ; 0x02112a8c
.byte 0x64, 0x2a, 0x11, 0x02
.global data_ov05_02112a90
data_ov05_02112a90: ; 0x02112a90
.byte 0x70, 0x2a, 0x11, 0x02
.global data_ov05_02112a94
data_ov05_02112a94: ; 0x02112a94
.byte 0x5c, 0x2a, 0x11, 0x02
.global data_ov05_02112a98
data_ov05_02112a98: ; 0x02112a98
.byte 0x78, 0x2a, 0x11, 0x02
.global data_ov05_02112a9c
data_ov05_02112a9c: ; 0x02112a9c
.byte 0x4b, 0x00, 0x00, 0x00
.global data_ov05_02112aa0
data_ov05_02112aa0: ; 0x02112aa0
.byte 0x00, 0x10, 0x00, 0x00
.global data_ov05_02112aa4
data_ov05_02112aa4: ; 0x02112aa4
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_02112aa8
data_ov05_02112aa8: ; 0x02112aa8
.byte 0x00, 0xe0, 0x03, 0x00
.global data_ov05_02112aac
data_ov05_02112aac: ; 0x02112aac
.ascii "brg"
.byte 0x00
.global data_ov05_02112ab0
data_ov05_02112ab0: ; 0x02112ab0
.ascii "fnl"
.byte 0x00
.global data_ov05_02112ab4
data_ov05_02112ab4: ; 0x02112ab4
.ascii "pdl"
.byte 0x00
.global data_ov05_02112ab8
data_ov05_02112ab8: ; 0x02112ab8
.ascii "dco"
.byte 0x00
.global data_ov05_02112abc
data_ov05_02112abc: ; 0x02112abc
.ascii "can"
.byte 0x00
.global data_ov05_02112ac0
data_ov05_02112ac0: ; 0x02112ac0
.ascii "hul"
.byte 0x00
.global data_ov05_02112ac4
data_ov05_02112ac4: ; 0x02112ac4
.ascii "bow"
.byte 0x00
.global data_ov05_02112ac8
data_ov05_02112ac8: ; 0x02112ac8
.ascii "anc"
.byte 0x00
.global data_ov05_02112acc
data_ov05_02112acc: ; 0x02112acc
.byte 0xc8, 0x2a, 0x11, 0x02
.global data_ov05_02112ad0
data_ov05_02112ad0: ; 0x02112ad0
.byte 0xc4, 0x2a, 0x11, 0x02
.global data_ov05_02112ad4
data_ov05_02112ad4: ; 0x02112ad4
.byte 0xc0, 0x2a, 0x11, 0x02
.global data_ov05_02112ad8
data_ov05_02112ad8: ; 0x02112ad8
.byte 0xbc, 0x2a, 0x11, 0x02
.global data_ov05_02112adc
data_ov05_02112adc: ; 0x02112adc
.byte 0xb8, 0x2a, 0x11, 0x02
.global data_ov05_02112ae0
data_ov05_02112ae0: ; 0x02112ae0
.byte 0xb4, 0x2a, 0x11, 0x02
.global data_ov05_02112ae4
data_ov05_02112ae4: ; 0x02112ae4
.byte 0xb0, 0x2a, 0x11, 0x02
.global data_ov05_02112ae8
data_ov05_02112ae8: ; 0x02112ae8
.byte 0xac, 0x2a, 0x11, 0x02
.global data_ov05_02112aec
data_ov05_02112aec: ; 0x02112aec
.byte 0x29, 0x00, 0x00, 0x00
.global data_ov05_02112af0
data_ov05_02112af0: ; 0x02112af0
.byte 0x00, 0x0c, 0x00, 0x00
.global data_ov05_02112af4
data_ov05_02112af4: ; 0x02112af4
.byte 0x11, 0x11, 0x00, 0x00
.global data_ov05_02112af8
data_ov05_02112af8: ; 0x02112af8
.byte 0x06, 0x00, 0x00, 0x00
.global data_ov05_02112afc
data_ov05_02112afc: ; 0x02112afc
.byte 0xa4, 0x00, 0x00, 0x00
.global data_ov05_02112b00
data_ov05_02112b00: ; 0x02112b00
.byte 0x66, 0x02, 0x00, 0x00
.global data_ov05_02112b04
data_ov05_02112b04: ; 0x02112b04
.byte 0x0a, 0x00, 0x00, 0x00
.global data_ov05_02112b08
data_ov05_02112b08: ; 0x02112b08
.byte 0x00, 0x20, 0x00, 0x00
.global data_ov05_02112b0c
data_ov05_02112b0c: ; 0x02112b0c
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_02112b10
data_ov05_02112b10: ; 0x02112b10
.byte 0x00, 0xd0, 0x00, 0x00
.global data_ov05_02112b14
data_ov05_02112b14: ; 0x02112b14
.byte 0x49, 0x00, 0x00, 0x00
.global data_ov05_02112b18
data_ov05_02112b18: ; 0x02112b18
.byte 0x00, 0x10, 0x00, 0x00
.global data_ov05_02112b1c
data_ov05_02112b1c: ; 0x02112b1c
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_02112b20
data_ov05_02112b20: ; 0x02112b20
.byte 0x00, 0xe0, 0x01, 0x00
.global data_ov05_02112b24
data_ov05_02112b24: ; 0x02112b24
.byte 0x09, 0x00, 0x00, 0x00
.global data_ov05_02112b28
data_ov05_02112b28: ; 0x02112b28
.byte 0x00, 0x10, 0x00, 0x00
.global data_ov05_02112b2c
data_ov05_02112b2c: ; 0x02112b2c
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_02112b30
data_ov05_02112b30: ; 0x02112b30
.byte 0x00, 0x70, 0x00, 0x00
.global data_ov05_02112b34
data_ov05_02112b34: ; 0x02112b34
.byte 0x28, 0x00, 0x00, 0x00
.global data_ov05_02112b38
data_ov05_02112b38: ; 0x02112b38
.byte 0x00, 0x10, 0x00, 0x00
.global data_ov05_02112b3c
data_ov05_02112b3c: ; 0x02112b3c
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_02112b40
data_ov05_02112b40: ; 0x02112b40
.byte 0x00, 0x50, 0x02, 0x00
.global data_ov05_02112b44
data_ov05_02112b44: ; 0x02112b44
.byte 0x2a, 0x00, 0x00, 0x00
.global data_ov05_02112b48
data_ov05_02112b48: ; 0x02112b48
.byte 0x00, 0x10, 0x00, 0x00
.global data_ov05_02112b4c
data_ov05_02112b4c: ; 0x02112b4c
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_02112b50
data_ov05_02112b50: ; 0x02112b50
.byte 0x00, 0x50, 0x02, 0x00
.global data_ov05_02112b54
data_ov05_02112b54: ; 0x02112b54
.byte 0x43, 0x00, 0x00, 0x00
.global data_ov05_02112b58
data_ov05_02112b58: ; 0x02112b58
.byte 0x00, 0x10, 0x00, 0x00
.global data_ov05_02112b5c
data_ov05_02112b5c: ; 0x02112b5c
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_02112b60
data_ov05_02112b60: ; 0x02112b60
.byte 0x00, 0xc0, 0x03, 0x00
.global data_ov05_02112b64
data_ov05_02112b64: ; 0x02112b64
.byte 0x33, 0x00, 0x00, 0x00
.global data_ov05_02112b68
data_ov05_02112b68: ; 0x02112b68
.byte 0x00, 0x10, 0x00, 0x00
.global data_ov05_02112b6c
data_ov05_02112b6c: ; 0x02112b6c
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_02112b70
data_ov05_02112b70: ; 0x02112b70
.byte 0x00, 0xc0, 0x03, 0x00
.global data_ov05_02112b74
data_ov05_02112b74: ; 0x02112b74
.byte 0x24, 0x00, 0x00, 0x00
.global data_ov05_02112b78
data_ov05_02112b78: ; 0x02112b78
.byte 0x00, 0x10, 0x00, 0x00
.global data_ov05_02112b7c
data_ov05_02112b7c: ; 0x02112b7c
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_02112b80
data_ov05_02112b80: ; 0x02112b80
.byte 0x00, 0x00, 0x02, 0x00
.global data_ov05_02112b84
data_ov05_02112b84: ; 0x02112b84
.byte 0x26, 0x00, 0x00, 0x00
.global data_ov05_02112b88
data_ov05_02112b88: ; 0x02112b88
.byte 0x00, 0x10, 0x00, 0x00
.global data_ov05_02112b8c
data_ov05_02112b8c: ; 0x02112b8c
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_02112b90
data_ov05_02112b90: ; 0x02112b90
.byte 0x00, 0x00, 0x02, 0x00
.global data_ov05_02112b94
data_ov05_02112b94: ; 0x02112b94
.byte 0x03, 0x00, 0x00, 0x00
.global data_ov05_02112b98
data_ov05_02112b98: ; 0x02112b98
.byte 0x00, 0x10, 0x00, 0x00
.global data_ov05_02112b9c
data_ov05_02112b9c: ; 0x02112b9c
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_02112ba0
data_ov05_02112ba0: ; 0x02112ba0
.byte 0x00, 0xe0, 0x00, 0x00
.global data_ov05_02112ba4
data_ov05_02112ba4: ; 0x02112ba4
.byte 0x02, 0x00, 0x00, 0x00
.global data_ov05_02112ba8
data_ov05_02112ba8: ; 0x02112ba8
.byte 0x9a, 0x09, 0x00, 0x00
.global data_ov05_02112bac
data_ov05_02112bac: ; 0x02112bac
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_02112bb0
data_ov05_02112bb0: ; 0x02112bb0
.byte 0x00, 0x30, 0x01, 0x00
.global data_ov05_02112bb4
data_ov05_02112bb4: ; 0x02112bb4
.byte 0x04, 0x00, 0x00, 0x00
.global data_ov05_02112bb8
data_ov05_02112bb8: ; 0x02112bb8
.byte 0x00, 0x10, 0x00, 0x00
.global data_ov05_02112bbc
data_ov05_02112bbc: ; 0x02112bbc
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_02112bc0
data_ov05_02112bc0: ; 0x02112bc0
.byte 0x00, 0x80, 0x03, 0x00
.global data_ov05_02112bc4
data_ov05_02112bc4: ; 0x02112bc4
.byte 0x52, 0x00, 0x00, 0x00
.global data_ov05_02112bc8
data_ov05_02112bc8: ; 0x02112bc8
.byte 0x33, 0x13, 0x00, 0x00
.global data_ov05_02112bcc
data_ov05_02112bcc: ; 0x02112bcc
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_02112bd0
data_ov05_02112bd0: ; 0x02112bd0
.byte 0x00, 0xc0, 0x03, 0x00
.global data_ov05_02112bd4
data_ov05_02112bd4: ; 0x02112bd4
.byte 0x25, 0x00, 0x00, 0x00
.global data_ov05_02112bd8
data_ov05_02112bd8: ; 0x02112bd8
.byte 0x00, 0x10, 0x00, 0x00
.global data_ov05_02112bdc
data_ov05_02112bdc: ; 0x02112bdc
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_02112be0
data_ov05_02112be0: ; 0x02112be0
.byte 0x00, 0x00, 0x02, 0x00
.global data_ov05_02112be4
data_ov05_02112be4: ; 0x02112be4
.byte 0x11, 0x11, 0x00, 0x00
.global data_ov05_02112be8
data_ov05_02112be8: ; 0x02112be8
.byte 0x40, 0x00, 0x00, 0x00
.global data_ov05_02112bec
data_ov05_02112bec: ; 0x02112bec
.byte 0x55, 0x05, 0x00, 0x00
.global data_ov05_02112bf0
data_ov05_02112bf0: ; 0x02112bf0
.byte 0xcd, 0x04, 0x00, 0x00
.global data_ov05_02112bf4
data_ov05_02112bf4: ; 0x02112bf4
.byte 0x00, 0x04, 0x00, 0x00
.global data_ov05_02112bf8
data_ov05_02112bf8: ; 0x02112bf8
.byte 0x29, 0x00, 0x00, 0x00
.global data_ov05_02112bfc
data_ov05_02112bfc: ; 0x02112bfc
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_02112c00
data_ov05_02112c00: ; 0x02112c00
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_02112c04
data_ov05_02112c04: ; 0x02112c04
.byte 0xf8, 0x1a, 0x11, 0x02
.global data_ov05_02112c08
data_ov05_02112c08: ; 0x02112c08
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_02112c0c
data_ov05_02112c0c: ; 0x02112c0c
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_02112c10
data_ov05_02112c10: ; 0x02112c10
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_02112c14
data_ov05_02112c14: ; 0x02112c14
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_02112c18
data_ov05_02112c18: ; 0x02112c18
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov05_02112c1c
data_ov05_02112c1c: ; 0x02112c1c
.byte 0x00, 0x00, 0x00, 0x00
_02112c20:
; 0x02112c20