.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