.include "macros/function.inc" .include "global.inc" .text arm_func_start func_ov30_0217bd80 func_ov30_0217bd80: ; 0x0217bd80 stmdb sp!, {r4, r5, r6, r7, r8, sb, lr} sub sp, sp, #0x2c mov r2, #0 mov r7, r0 add r0, sp, #0x28 strh r2, [sp, #0x28] strh r2, [sp, #0x2a] bl func_ov30_021872c4 ldr r0, [r7, #0x200] cmp r0, #0 bne _0217bdf8 ldr r2, [r7, #0x200] ldr r0, [r7, #0x208] cmp r2, r0 addge sp, sp, #0x2c movge r0, #0 ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} ldrh r1, [sp, #0x28] ldrh r0, [sp, #0x2a] ldr r4, [r7, #0x204] mov r3, r2, lsl #0x2 add r2, r4, r2, lsl #2 strh r1, [r4, r3] strh r0, [r2, #2] ldr r1, [r7, #0x200] add sp, sp, #0x2c add r1, r1, #1 mov r0, #1 str r1, [r7, #0x200] ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} _0217bdf8: ldr r0, [r7, #0x200] mov r1, #0 strh r1, [sp, #0x24] strh r1, [sp, #0x26] subs r4, r0, #1 bmi _0217be38 ldr r1, [r7, #0x208] cmp r4, r1 bge _0217be38 ldr r3, [r7, #0x204] mov r2, r4, lsl #0x2 add r1, r3, r4, lsl #2 ldrh r2, [r3, r2] ldrh r1, [r1, #2] strh r2, [sp, #0x24] strh r1, [sp, #0x26] _0217be38: ldrh r6, [sp, #0x24] ldrh r4, [sp, #0x28] ldrh r5, [sp, #0x26] ldrh r3, [sp, #0x2a] strh r6, [sp, #8] strh r4, [sp, #0xc] ldrsh r2, [sp, #0xc] ldrsh r1, [sp, #8] strh r5, [sp, #0xa] strh r3, [sp, #0xe] cmp r2, r1 ldreqsh r2, [sp, #0xe] ldreqsh r1, [sp, #0xa] strh r6, [sp, #0x18] strh r5, [sp, #0x1a] cmpeq r2, r1 strh r4, [sp, #0x1c] strh r3, [sp, #0x1e] addeq sp, sp, #0x2c moveq r0, #1 ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} sub r5, r0, #1 cmp r5, #0 mov r6, #0 ble _0217bf94 add sb, sp, #0x20 add r8, sp, #0x28 mov r4, r6 _0217bea8: strh r4, [sp, #0x20] strh r4, [sp, #0x22] ldr r1, [r7, #0x204] ldrh r3, [sp, #0x28] mov r0, r6, lsl #0x2 ldrh lr, [r1, r0] ldrh r2, [sp, #0x2a] add r0, r1, r6, lsl #2 ldrh ip, [r0, #2] strh r3, [sp] strh lr, [sp, #4] ldrsh r1, [sp, #4] ldrsh r0, [sp] strh r2, [sp, #2] strh ip, [sp, #6] cmp r1, r0 ldreqsh r1, [sp, #6] ldreqsh r0, [sp, #2] strh lr, [sp, #0x20] strh ip, [sp, #0x22] strh r3, [sp, #0x10] strh r2, [sp, #0x12] strh lr, [sp, #0x14] strh ip, [sp, #0x16] cmpeq r1, r0 bne _0217bf24 add r0, r6, #1 str r0, [r7, #0x200] add sp, sp, #0x2c mov r0, #1 ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} _0217bf24: mov r0, sb mov r1, r8 bl func_ov30_021873bc cmp r0, #0 beq _0217bf88 add r2, r6, #1 str r2, [r7, #0x200] ldr r0, [r7, #0x208] cmp r2, r0 addge sp, sp, #0x2c movge r0, #0 ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} ldrh r1, [sp, #0x28] ldrh r0, [sp, #0x2a] ldr r4, [r7, #0x204] mov r3, r2, lsl #0x2 add r2, r4, r2, lsl #2 strh r1, [r4, r3] strh r0, [r2, #2] ldr r1, [r7, #0x200] add sp, sp, #0x2c add r1, r1, #1 mov r0, #1 str r1, [r7, #0x200] ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} _0217bf88: add r6, r6, #1 cmp r6, r5 blt _0217bea8 _0217bf94: ldr r2, [r7, #0x200] ldr r0, [r7, #0x208] cmp r2, r0 addge sp, sp, #0x2c movge r0, #0 ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} ldrh r1, [sp, #0x28] ldrh r0, [sp, #0x2a] ldr r4, [r7, #0x204] mov r3, r2, lsl #0x2 add r2, r4, r2, lsl #2 strh r1, [r4, r3] strh r0, [r2, #2] ldr r1, [r7, #0x200] mov r0, #1 add r1, r1, #1 str r1, [r7, #0x200] add sp, sp, #0x2c ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} arm_func_end func_ov30_0217bd80 arm_func_start func_ov30_0217bfe0 func_ov30_0217bfe0: ; 0x0217bfe0 stmdb sp!, {r3, lr} mov r3, #0 strh r3, [sp] strh r3, [sp, #2] ldr ip, [r0, #0x204] mov r3, r1, lsl #0x2 add r0, ip, r1, lsl #2 ldrh ip, [ip, r3] ldrh r3, [r0, #2] add r0, sp, #0 mov r1, r2 strh ip, [sp] strh r3, [sp, #2] bl func_ov30_02187304 mov r0, #1 ldmia sp!, {r3, pc} arm_func_end func_ov30_0217bfe0 arm_func_start func_ov30_0217c020 func_ov30_0217c020: ; 0x0217c020 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0x3c mov sb, r0 ldr r0, [sb, #0x200] ldr r5, [sp, #0x60] subs r4, r0, #1 mov r8, r1 mov r7, r2 mov r6, r3 addmi sp, sp, #0x3c ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} add fp, sp, #0x24 _0217c050: mov r0, sb mov r1, r4 add r2, sp, #0x30 bl func_ov30_0217bfe0 cmp r0, #0 beq _0217c0f4 ldr r0, [sp, #0x34] ldr lr, [sp, #0x30] add sl, r0, r7 str sl, [sp, #0x34] ldmia r8!, {r0, r1, r2} stmia fp!, {r0, r1, r2} ldr ip, [sp, #0x38] ldr r1, [sp, #0x24] ldr r0, [sp, #0x2c] str r1, [sp, #0xc] str r0, [sp, #0x14] str lr, [sp, #0x18] str ip, [sp, #0x20] str sl, [sp, #0x28] str sl, [sp, #0x1c] str sl, [sp, #0x10] mov r0, #6 stmia sp!, {r0, r6} mov r0, #0 str r0, [sp, #8] ldr r0, _0217c104 ; =data_027e0e60 mov r3, r7 ldr r0, [r0] add r1, sp, #0x18 add r2, sp, #0xc bl func_01ffe1cc cmp r0, #0 addne sp, sp, #0x3c ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} ldr r0, [sp, #0x30] str r0, [r5] ldr r0, [sp, #0x34] str r0, [r5, #4] ldr r0, [sp, #0x38] str r0, [r5, #8] _0217c0f4: subs r4, r4, #1 bpl _0217c050 add sp, sp, #0x3c ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 arm_func_end func_ov30_0217c020 _0217c104: .word data_027e0e60 arm_func_start func_ov30_0217c108 func_ov30_0217c108: ; 0x0217c108 ldr r2, _0217c11c ; =data_ov30_02188a48 mov r1, #0 str r2, [r0] strb r1, [r0, #4] bx lr .align 2, 0 arm_func_end func_ov30_0217c108 _0217c11c: .word data_ov30_02188a48 arm_func_start func_ov30_0217c120 func_ov30_0217c120: ; 0x0217c120 stmdb sp!, {r3, r4, r5, lr} mov r4, r1 mov r5, r0 mov r1, #0 mov r0, r4 strb r1, [r5, #4] ldr r1, [r0] ldr r1, [r1, #0x1c] blx r1 cmp r0, #3 cmpne r0, #0x1c bne _0217c164 add r0, r4, #0x18 bl func_ov00_020c5288 cmp r0, #0 moveq r0, #1 streqb r0, [r5, #4] _0217c164: mov r0, #1 ldmia sp!, {r3, r4, r5, pc} arm_func_end func_ov30_0217c120 arm_func_start func_ov30_0217c16c func_ov30_0217c16c: ; 0x0217c16c 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_ov30_0217c16c arm_func_start func_ov30_0217c188 func_ov30_0217c188: ; 0x0217c188 stmdb sp!, {r4, lr} mov r4, r0 bl func_ov00_02081f4c mov r0, r4 ldmia sp!, {r4, pc} arm_func_end func_ov30_0217c188 arm_func_start func_ov30_0217c19c func_ov30_0217c19c: ; 0x0217c19c mov r0, #0 bx lr arm_func_end func_ov30_0217c19c arm_func_start func_ov30_0217c1a4 func_ov30_0217c1a4: ; 0x0217c1a4 mov r0, #0 bx lr arm_func_end func_ov30_0217c1a4 arm_func_start func_ov30_0217c1ac func_ov30_0217c1ac: ; 0x0217c1ac ldr r2, [r1] ldr ip, _0217c1c4 ; =func_ov30_0217c44c str r2, [r0, #0x38] ldr r1, [r1, #4] str r1, [r0, #0x3c] bx ip .align 2, 0 arm_func_end func_ov30_0217c1ac _0217c1c4: .word func_ov30_0217c44c arm_func_start func_ov30_0217c1c8 func_ov30_0217c1c8: ; 0x0217c1c8 stmdb sp!, {r4, lr} sub sp, sp, #0x10 mov r4, r0 bl func_ov30_0217c44c add r1, sp, #4 add r0, r4, #0x38 bl func_ov00_020c53e8 cmp r0, #0 addeq sp, sp, #0x10 ldmia sp!, {r4, pc} mov r2, #0 add r0, sp, #0 add r1, sp, #4 strh r2, [sp] strh r2, [sp, #2] bl func_ov30_021872c4 add r1, sp, #0 mov r0, r4 bl func_ov30_0217c45c add sp, sp, #0x10 ldmia sp!, {r4, pc} arm_func_end func_ov30_0217c1c8 arm_func_start func_ov30_0217c21c func_ov30_0217c21c: ; 0x0217c21c stmdb sp!, {r3, r4, r5, r6, r7, lr} sub sp, sp, #0x30 mov r6, r0 ldr r0, [r6, #0x30] cmp r0, #0xc addge sp, sp, #0x30 movge r0, #0 ldmia sp!, {r3, r4, r5, r6, r7, pc} add r1, sp, #0x24 add r0, r6, #0x38 bl func_ov00_020c53e8 cmp r0, #0 beq _0217c3b4 mov r2, #0 add r0, sp, #0x20 add r1, sp, #0x24 strh r2, [sp, #0x20] strh r2, [sp, #0x22] bl func_ov30_021872c4 ldr r0, [r6, #0x30] cmp r0, #0 bne _0217c288 add r1, sp, #0x20 mov r0, r6 bl func_ov30_0217c45c add sp, sp, #0x30 ldmia sp!, {r3, r4, r5, r6, r7, pc} _0217c288: sub r1, r0, #1 mov r2, r1, lsl #0x2 ldrh r7, [r6, r2] ldrh r4, [sp, #0x20] add r1, r6, r1, lsl #2 ldrh r3, [sp, #0x22] ldrh r5, [r1, #2] strh r7, [sp, #8] strh r4, [sp, #0xc] ldrsh r2, [sp, #0xc] ldrsh r1, [sp, #8] strh r5, [sp, #0xa] strh r3, [sp, #0xe] cmp r2, r1 ldreqsh r2, [sp, #0xe] ldreqsh r1, [sp, #0xa] strh r7, [sp, #0x18] strh r5, [sp, #0x1a] cmpeq r2, r1 strh r4, [sp, #0x1c] strh r3, [sp, #0x1e] addeq sp, sp, #0x30 moveq r0, #1 ldmia sp!, {r3, r4, r5, r6, r7, pc} ldr r4, [r6, #0x34] cmp r4, r0 bge _0217c3a0 add r5, r6, r4, lsl #2 add r7, sp, #0x20 _0217c2fc: ldrh lr, [sp, #0x20] ldrh r3, [r5] ldrh ip, [sp, #0x22] ldrh r2, [r5, #2] strh lr, [sp] strh r3, [sp, #4] ldrsh r1, [sp, #4] ldrsh r0, [sp] strh ip, [sp, #2] strh r2, [sp, #6] cmp r1, r0 ldreqsh r1, [sp, #6] ldreqsh r0, [sp, #2] strh lr, [sp, #0x10] strh ip, [sp, #0x12] strh r3, [sp, #0x14] strh r2, [sp, #0x16] cmpeq r1, r0 bne _0217c35c add r0, r4, #1 str r0, [r6, #0x30] add sp, sp, #0x30 mov r0, #1 ldmia sp!, {r3, r4, r5, r6, r7, pc} _0217c35c: mov r0, r5 mov r1, r7 bl func_ov30_021873bc cmp r0, #0 beq _0217c38c add r2, r4, #1 add r1, sp, #0x20 mov r0, r6 str r2, [r6, #0x30] bl func_ov30_0217c45c add sp, sp, #0x30 ldmia sp!, {r3, r4, r5, r6, r7, pc} _0217c38c: ldr r0, [r6, #0x30] add r4, r4, #1 cmp r4, r0 add r5, r5, #4 blt _0217c2fc _0217c3a0: add r1, sp, #0x20 mov r0, r6 bl func_ov30_0217c45c add sp, sp, #0x30 ldmia sp!, {r3, r4, r5, r6, r7, pc} _0217c3b4: mov r0, #0 add sp, sp, #0x30 ldmia sp!, {r3, r4, r5, r6, r7, pc} arm_func_end func_ov30_0217c21c arm_func_start func_ov30_0217c3c0 func_ov30_0217c3c0: ; 0x0217c3c0 stmdb sp!, {r3, lr} ldr r3, [r0, #0x34] ldr r2, [r0, #0x30] cmp r3, r2 movge r0, #0 ldmia sp!, {r3, pc} add r0, r0, r3, lsl #2 bl func_ov30_02187304 mov r0, #1 ldmia sp!, {r3, pc} arm_func_end func_ov30_0217c3c0 arm_func_start func_ov30_0217c3e8 func_ov30_0217c3e8: ; 0x0217c3e8 ldr ip, [r0, #0x34] ldr r2, [r0, #0x30] cmp ip, r2 movge r0, #0 bxge lr mov r3, ip, lsl #0x2 add r2, r0, ip, lsl #2 ldrh r3, [r0, r3] ldrh r2, [r2, #2] mov r0, #1 strh r3, [r1] strh r2, [r1, #2] bx lr arm_func_end func_ov30_0217c3e8 arm_func_start func_ov30_0217c41c func_ov30_0217c41c: ; 0x0217c41c ldr r2, [r0, #0x34] ldr r1, [r0, #0x30] cmp r2, r1 addlt r1, r2, #1 strlt r1, [r0, #0x34] bx lr arm_func_end func_ov30_0217c41c arm_func_start func_ov30_0217c434 func_ov30_0217c434: ; 0x0217c434 ldr r1, [r0, #0x34] ldr r0, [r0, #0x30] cmp r1, r0 movge r0, #1 movlt r0, #0 bx lr arm_func_end func_ov30_0217c434 arm_func_start func_ov30_0217c44c func_ov30_0217c44c: ; 0x0217c44c mov r1, #0 str r1, [r0, #0x30] str r1, [r0, #0x34] bx lr arm_func_end func_ov30_0217c44c arm_func_start func_ov30_0217c45c func_ov30_0217c45c: ; 0x0217c45c ldr r3, [r0, #0x30] cmp r3, #0xc movge r0, #0 bxge lr ldrh r2, [r1] ldrh r1, [r1, #2] mov ip, r3, lsl #0x2 add r3, r0, r3, lsl #2 strh r2, [r0, ip] strh r1, [r3, #2] ldr r1, [r0, #0x30] add r1, r1, #1 str r1, [r0, #0x30] mov r0, #1 bx lr arm_func_end func_ov30_0217c45c arm_func_start func_ov30_0217c498 func_ov30_0217c498: ; 0x0217c498 stmdb sp!, {r4, lr} mov r1, #0 mov r4, r0 blx func_ov00_020a956c ldr r1, _0217c4b8 ; =data_ov30_02188a7c mov r0, r4 str r1, [r4] ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov30_0217c498 _0217c4b8: .word data_ov30_02188a7c arm_func_start func_ov30_0217c4bc func_ov30_0217c4bc: ; 0x0217c4bc ldr ip, _0217c4cc ; =func_ov00_020a9998 mov r1, #6 mov r2, #3 bx ip .align 2, 0 arm_func_end func_ov30_0217c4bc _0217c4cc: .word func_ov00_020a9998 arm_func_start func_ov30_0217c4d0 func_ov30_0217c4d0: ; 0x0217c4d0 stmdb sp!, {r4, r5, r6, lr} mov r4, r1 ldr r2, [r4, #4] ldr r1, _0217c580 ; =data_ov30_021885d4 ldr r2, [r2, #4] mov r5, r0 add r0, r2, #0x40 bl func_0201e388 ldr r2, [r4, #4] ldr r1, _0217c584 ; =data_ov30_021885e8 ldr r2, [r2, #4] mov r6, r0 add r0, r2, #0x40 bl func_0201e388 ldr r1, [r4, #8] tst r1, #0x10 ldrneb r1, [r4, #0xae] mvneq r1, #0 cmp r6, r1 bne _0217c544 add r0, r5, #0x5c mov r1, #0 bl func_0201b1bc bl func_02018450 mov r1, r0 add r0, r5, #0x5c mov r2, r0 bl func_01ff8e84 ldmia sp!, {r4, r5, r6, pc} _0217c544: ldr r1, [r4, #8] tst r1, #0x10 ldrneb r1, [r4, #0xae] mvneq r1, #0 cmp r0, r1 ldmia sp!, {r4, r5, r6, pc} add r0, r5, #0x8c mov r1, #0 bl func_0201b1bc bl func_02018450 mov r1, r0 add r0, r5, #0x8c mov r2, r0 bl func_01ff8e84 ldmia sp!, {r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov30_0217c4d0 _0217c580: .word data_ov30_021885d4 _0217c584: .word data_ov30_021885e8 arm_func_start func_ov30_0217c588 func_ov30_0217c588: ; 0x0217c588 ldr r3, [r0, #0x7c] ldr r2, [r0, #0x78] ldr r0, [r0, #0x74] stmia r1!, {r0, r2, r3} bx lr arm_func_end func_ov30_0217c588 arm_func_start func_ov30_0217c59c func_ov30_0217c59c: ; 0x0217c59c stmdb sp!, {lr} sub sp, sp, #0xc ldr r2, _0217c5d4 ; =data_ov30_021885fc add r3, sp, #0 mov lr, r0 mov ip, r1 ldmia r2!, {r0, r1, r2} stmia r3!, {r0, r1, r2} mov r0, r3 mov r2, ip add r1, lr, #0x5c bl func_01ff9158 add sp, sp, #0xc ldmia sp!, {pc} .align 2, 0 arm_func_end func_ov30_0217c59c _0217c5d4: .word data_ov30_021885fc arm_func_start func_ov30_0217c5d8 func_ov30_0217c5d8: ; 0x0217c5d8 stmdb sp!, {lr} sub sp, sp, #0xc ldr r2, _0217c610 ; =data_ov30_02188608 add r3, sp, #0 mov lr, r0 mov ip, r1 ldmia r2!, {r0, r1, r2} stmia r3!, {r0, r1, r2} mov r0, r3 mov r2, ip add r1, lr, #0x5c bl func_01ff9158 add sp, sp, #0xc ldmia sp!, {pc} .align 2, 0 arm_func_end func_ov30_0217c5d8 _0217c610: .word data_ov30_02188608 arm_func_start func_ov30_0217c614 func_ov30_0217c614: ; 0x0217c614 stmdb sp!, {lr} sub sp, sp, #0xc ldr r2, _0217c64c ; =data_ov30_02188614 add r3, sp, #0 mov lr, r0 mov ip, r1 ldmia r2!, {r0, r1, r2} stmia r3!, {r0, r1, r2} mov r0, r3 mov r2, ip add r1, lr, #0x8c bl func_01ff9158 add sp, sp, #0xc ldmia sp!, {pc} .align 2, 0 arm_func_end func_ov30_0217c614 _0217c64c: .word data_ov30_02188614 arm_func_start func_ov30_0217c650 func_ov30_0217c650: ; 0x0217c650 stmdb sp!, {lr} sub sp, sp, #0xc ldr r2, _0217c688 ; =data_ov30_02188620 add r3, sp, #0 mov lr, r0 mov ip, r1 ldmia r2!, {r0, r1, r2} stmia r3!, {r0, r1, r2} mov r0, r3 mov r2, ip add r1, lr, #0x8c bl func_01ff9158 add sp, sp, #0xc ldmia sp!, {pc} .align 2, 0 arm_func_end func_ov30_0217c650 _0217c688: .word data_ov30_02188620 arm_func_start func_ov30_0217c68c func_ov30_0217c68c: ; 0x0217c68c stmdb sp!, {lr} sub sp, sp, #0xc ldr r2, _0217c6c4 ; =data_ov30_0218862c add r3, sp, #0 mov lr, r0 mov ip, r1 ldmia r2!, {r0, r1, r2} stmia r3!, {r0, r1, r2} mov r0, r3 mov r2, ip add r1, lr, #0x8c bl func_01ff9158 add sp, sp, #0xc ldmia sp!, {pc} .align 2, 0 arm_func_end func_ov30_0217c68c _0217c6c4: .word data_ov30_0218862c arm_func_start func_ov30_0217c6c8 func_ov30_0217c6c8: ; 0x0217c6c8 stmdb sp!, {lr} sub sp, sp, #0xc ldr r2, _0217c700 ; =data_ov30_02188638 add r3, sp, #0 mov lr, r0 mov ip, r1 ldmia r2!, {r0, r1, r2} stmia r3!, {r0, r1, r2} mov r0, r3 mov r2, ip add r1, lr, #0x8c bl func_01ff9158 add sp, sp, #0xc ldmia sp!, {pc} .align 2, 0 arm_func_end func_ov30_0217c6c8 _0217c700: .word data_ov30_02188638 arm_func_start func_ov30_0217c704 func_ov30_0217c704: ; 0x0217c704 stmdb sp!, {r3, r4, r5, lr} mov r4, r0 add r2, r4, #0x20 add r3, r4, #0xdc mov r5, r1 bl func_ov00_020c5c2c ldr r1, _0217c788 ; =data_ov30_02188a68 add r0, r4, #0x20 str r1, [r4] bl func_ov30_0217c498 add r0, r4, #0xdc add r1, r4, #0x100 mov r2, #0 blx func_ov00_020c0c08 ldr r1, _0217c78c ; =data_ov30_02188ad8 add r0, r4, #0x200 str r1, [r4, #0xdc] mov r1, #0x10 strh r1, [r0, #0xe0] mov r2, #0 strh r2, [r0, #0xe2] strh r2, [r0, #0xe4] str r2, [r4, #0x304] mov r1, r5 str r2, [r4, #0x308] mov r2, #1 add r0, r4, #0x310 strb r2, [r4, #0x30c] bl func_ov30_0217cdb0 mov r1, #0 mov r0, r4 strb r1, [r4, #0x40c] ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov30_0217c704 _0217c788: .word data_ov30_02188a68 _0217c78c: .word data_ov30_02188ad8 arm_func_start func_ov30_0217c790 func_ov30_0217c790: ; 0x0217c790 stmdb sp!, {r4, lr} mov r4, r0 blx func_ov00_020a95ec mov r0, r4 ldmia sp!, {r4, pc} arm_func_end func_ov30_0217c790 arm_func_start func_ov30_0217c7a4 func_ov30_0217c7a4: ; 0x0217c7a4 stmdb sp!, {r3, r4, r5, r6, r7, lr} mov r5, r0 str r1, [r5, #0x15c] cmp r1, #3 addls pc, pc, r1, lsl #2 b _0217c7f8 _0217c7bc: ; jump table b _0217c7cc ; case 0 b _0217c7d8 ; case 1 b _0217c7e4 ; case 2 b _0217c7f0 ; case 3 _0217c7cc: mov r2, #0xe mov r4, #0x12 b _0217c7f8 _0217c7d8: mov r2, #0xf mov r4, #0x12 b _0217c7f8 _0217c7e4: mov r2, #0x10 mov r4, #0x12 b _0217c7f8 _0217c7f0: mov r2, #0x11 mov r4, r2 _0217c7f8: ldr r1, _0217c878 ; =data_027e0fec mov r0, #0x38 ldr r7, [r1] mla r0, r2, r0, r7 bl func_ov00_020c4588 mov r1, #0x38 mov r6, r0 mla r0, r4, r1, r7 bl func_ov00_020c45b0 mov r2, r0 ldr r3, _0217c87c ; =data_ov30_02188644 mov r0, r5 mov r1, r6 bl func_ov00_020c5c64 add r0, r5, #0x20 bl func_ov30_0217c4bc add r0, r5, #0x160 mov r1, #0xa bl func_ov00_020c0ec0 mov r1, #0 add r0, r5, #0x200 strh r1, [r0, #0xe4] strh r1, [r0, #0xe2] mov r3, #2 str r3, [sp] add r0, r5, #0x160 mov r1, #0x4f mov r2, #6 bl func_ov00_020c0ecc mov r0, #0 strb r0, [r5, #0x300] ldmia sp!, {r3, r4, r5, r6, r7, pc} .align 2, 0 arm_func_end func_ov30_0217c7a4 _0217c878: .word data_027e0fec _0217c87c: .word data_ov30_02188644 arm_func_start func_ov30_0217c880 func_ov30_0217c880: ; 0x0217c880 stmdb sp!, {r3, r4, r5, lr} mov r5, r0 ldr r1, [r5, #0x10] ldr r0, [r5, #0x14] ldr r4, [r1, #0x14] cmp r0, #7 bgt _0217c8bc cmp r0, #1 blt _0217cac8 beq _0217c924 cmp r0, #2 beq _0217ca44 cmp r0, #7 beq _0217c8c8 b _0217cac8 _0217c8bc: cmp r0, #0xc beq _0217ca9c b _0217cac8 _0217c8c8: add r0, r5, #0xe8 mov r1, #0x1000 bl func_0202e310 cmp r0, #0 ldrneb r0, [r5, #0x30c] cmpne r0, #0 beq _0217c8ec mov r0, r5 bl func_ov30_0217cc4c _0217c8ec: add r0, r5, #0xe8 mov r1, #0xd000 bl func_0202e310 cmp r0, #0 beq _0217c908 mov r0, r5 bl func_ov30_0217cd94 _0217c908: cmp r4, #0x1000 blt _0217cac8 cmp r4, #0xd000 bgt _0217cac8 mov r0, r5 bl func_ov30_0217ccbc b _0217cac8 _0217c924: ldr r0, [r5, #0x15c] cmp r0, #3 ldr r0, [r5, #0x1c] ldr r2, [r0, #0x68] bne _0217c9b4 ldr ip, [r0, #0x60] smull r1, r0, r2, r2 smull r3, r2, ip, ip adds r3, r3, #0x800 adc r2, r2, #0 adds r1, r1, #0x800 mov r3, r3, lsr #0xc adc r0, r0, #0 mov r1, r1, lsr #0xc orr r3, r3, r2, lsl #20 orr r1, r1, r0, lsl #20 add r0, r3, r1 bl func_01ff9958 sub r0, r0, #0xcd mov r1, #0xcd bl func_01ff98e0 cmp r0, #0x1000 movgt r0, #0x1000 bgt _0217c98c cmp r0, #0 movlt r0, #0 _0217c98c: mov r1, r0, asr #0x1f mov r2, r1, lsl #0xd mov r1, #0x800 adds r1, r1, r0, lsl #13 orr r2, r2, r0, lsr #19 adc r0, r2, #0 mov r1, r1, lsr #0xc orr r1, r1, r0, lsl #20 add r0, r1, #0x1000 b _0217c9f0 _0217c9b4: ldr ip, [r0, #0x60] smull r1, r0, r2, r2 smull r3, r2, ip, ip adds r3, r3, #0x800 adc r2, r2, #0 adds r1, r1, #0x800 mov r3, r3, lsr #0xc adc r0, r0, #0 mov r1, r1, lsr #0xc orr r3, r3, r2, lsl #20 orr r1, r1, r0, lsl #20 add r0, r3, r1 bl func_01ff9958 mov r1, #0x52 bl func_01ff98e0 _0217c9f0: str r0, [r5, #0xec] ldr r0, [r5, #0x15c] cmp r0, #3 beq _0217cac8 add r0, r5, #0xe8 mov r1, #0x1000 bl func_0202e310 cmp r0, #0 bne _0217ca28 add r0, r5, #0xe8 mov r1, #0x2c000 bl func_0202e310 cmp r0, #0 beq _0217cac8 _0217ca28: ldr r2, [r5, #0x1c] ldr r0, _0217cb54 ; =data_027e0ffc ldr r1, _0217cb58 ; =0x000001bb add r2, r2, #0x48 mov r3, #0 bl func_ov00_020ceacc b _0217cac8 _0217ca44: add r0, r5, #0xe8 mov r1, #0x1000 bl func_0202e310 cmp r0, #0 beq _0217ca70 ldr r1, [r5, #0x1c] ldr r0, _0217cb54 ; =data_027e0ffc add r2, r1, #0x48 mov r1, #0x1bc mov r3, #0 bl func_ov00_020ceacc _0217ca70: cmp r4, #0xa000 blt _0217cac8 cmp r4, #0xe000 bgt _0217cac8 ldr r0, [r5, #0x1c] mov r1, r5 ldr r3, [r0] mov r2, #0 ldr r3, [r3, #0xb0] blx r3 b _0217cac8 _0217ca9c: add r0, r5, #0xe8 mov r1, #0x32000 bl func_0202e310 cmp r0, #0 beq _0217cac8 ldr r2, [r5, #0x1c] ldr r0, _0217cb54 ; =data_027e0ffc ldr r1, _0217cb5c ; =0x000001bf add r2, r2, #0x48 mov r3, #0 bl func_ov00_020ceacc _0217cac8: ldr r0, [r5, #0x14] cmp r0, #7 beq _0217cadc mov r0, r5 bl func_ov30_0217cd94 _0217cadc: ldr r0, [r5, #0x15c] mov r2, #0xc cmp r0, #3 ldr r0, [r5, #0x14] moveq r2, #0xd mov r1, #8 cmp r0, #2 bne _0217cb34 cmp r4, r1, lsl #12 bge _0217cb18 add r0, r5, #0x200 mov r1, #0 strh r1, [r0, #0xe4] strh r1, [r0, #0xe2] b _0217cb3c _0217cb18: cmp r4, r2, lsl #12 movle r0, #1 strleb r0, [r5, #0x300] ble _0217cb3c add r0, r5, #0x160 bl func_ov00_020c10a0 b _0217cb3c _0217cb34: add r0, r5, #0x160 bl func_ov00_020c10a0 _0217cb3c: ldrb r0, [r5, #0x40c] cmp r0, #0 ldmia sp!, {r3, r4, r5, pc} add r0, r5, #0x310 bl func_ov00_020c5e20 ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov30_0217c880 _0217cb54: .word data_027e0ffc _0217cb58: .word 0x000001bb _0217cb5c: .word 0x000001bf arm_func_start func_ov30_0217cb60 func_ov30_0217cb60: ; 0x0217cb60 stmdb sp!, {r4, lr} mov r4, r0 mov r0, #1 strb r0, [r4, #0x40c] add r0, r4, #0x310 mov r1, #0 bl func_ov00_020c5d74 ldr r0, [r4, #0x320] mov r1, #0x1000 str r1, [r0, #0x10] ldmia sp!, {r4, pc} arm_func_end func_ov30_0217cb60 arm_func_start func_ov30_0217cb8c func_ov30_0217cb8c: ; 0x0217cb8c ldr r0, [r0, #0x320] ldr ip, _0217cb9c ; =func_0202e58c add r0, r0, #0xc bx ip .align 2, 0 arm_func_end func_ov30_0217cb8c _0217cb9c: .word func_0202e58c arm_func_start func_ov30_0217cba0 func_ov30_0217cba0: ; 0x0217cba0 stmdb sp!, {r4, lr} mov r4, r0 ldrb r1, [r4, #0x40c] cmp r1, #0 bne _0217cbc4 bl func_ov00_020c5f1c mov r0, r4 bl func_ov30_0217cbd0 ldmia sp!, {r4, pc} _0217cbc4: add r0, r4, #0x310 bl func_ov00_020c5f1c ldmia sp!, {r4, pc} arm_func_end func_ov30_0217cba0 arm_func_start func_ov30_0217cbd0 func_ov30_0217cbd0: ; 0x0217cbd0 stmdb sp!, {r4, lr} sub sp, sp, #0x18 mov r4, r0 ldrb r0, [r4, #0x300] cmp r0, #0 beq _0217cc38 ldr r0, [r4, #0x15c] add r1, sp, #0xc cmp r0, #3 add r0, r4, #0x20 beq _0217cc10 bl func_ov30_0217c614 add r1, sp, #0 add r0, r4, #0x20 bl func_ov30_0217c650 b _0217cc20 _0217cc10: bl func_ov30_0217c68c add r1, sp, #0 add r0, r4, #0x20 bl func_ov30_0217c6c8 _0217cc20: add r1, sp, #0 add r2, sp, #0xc add r0, r4, #0x160 bl func_ov00_020c0ffc mov r0, #0 strb r0, [r4, #0x300] _0217cc38: add r0, r4, #0x160 mov r1, #0x1f bl func_ov00_020c10d4 add sp, sp, #0x18 ldmia sp!, {r4, pc} arm_func_end func_ov30_0217cbd0 arm_func_start func_ov30_0217cc4c func_ov30_0217cc4c: ; 0x0217cc4c stmdb sp!, {r4, lr} sub sp, sp, #0x10 mov r4, r0 add r1, sp, #4 add r0, r4, #0x20 bl func_ov30_0217c59c mov r1, #2 str r1, [sp] ldr r0, _0217ccb8 ; =data_027e0e58 add r3, sp, #4 ldr r0, [r0] add r1, r4, #0x304 mov r2, #0x66 bl func_ov00_0207c1f8 add r1, sp, #4 add r0, r4, #0x20 bl func_ov30_0217c5d8 mov r0, #2 str r0, [sp] ldr r0, _0217ccb8 ; =data_027e0e58 add r1, r4, #0x308 ldr r0, [r0] mov r2, #0x66 add r3, sp, #4 bl func_ov00_0207c1f8 add sp, sp, #0x10 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov30_0217cc4c _0217ccb8: .word data_027e0e58 arm_func_start func_ov30_0217ccbc func_ov30_0217ccbc: ; 0x0217ccbc stmdb sp!, {r3, r4, lr} sub sp, sp, #0xc mov r4, r0 add r1, sp, #0 add r0, r4, #0x20 bl func_ov30_0217c59c ldr r0, [r4, #0x304] cmp r0, #0 beq _0217cd28 ldr r1, [r0, #0x20] ldr r2, [sp] ldr r1, [r1] ldr r1, [r1, #4] add r1, r2, r1 str r1, [r0, #0x28] ldr r1, [r0, #0x20] ldr r2, [sp, #4] ldr r1, [r1] ldr r1, [r1, #8] add r1, r2, r1 str r1, [r0, #0x2c] ldr r1, [r0, #0x20] ldr r2, [sp, #8] ldr r1, [r1] ldr r1, [r1, #0xc] add r1, r2, r1 str r1, [r0, #0x30] _0217cd28: add r1, sp, #0 add r0, r4, #0x20 bl func_ov30_0217c5d8 ldr r0, [r4, #0x308] cmp r0, #0 addeq sp, sp, #0xc ldmia sp!, {r3, r4, pc} ldr r1, [r0, #0x20] ldr r2, [sp] ldr r1, [r1] ldr r1, [r1, #4] add r1, r2, r1 str r1, [r0, #0x28] ldr r1, [r0, #0x20] ldr r2, [sp, #4] ldr r1, [r1] ldr r1, [r1, #8] add r1, r2, r1 str r1, [r0, #0x2c] ldr r1, [r0, #0x20] ldr r2, [sp, #8] ldr r1, [r1] ldr r1, [r1, #0xc] add r1, r2, r1 str r1, [r0, #0x30] add sp, sp, #0xc ldmia sp!, {r3, r4, pc} arm_func_end func_ov30_0217ccbc arm_func_start func_ov30_0217cd94 func_ov30_0217cd94: ; 0x0217cd94 stmdb sp!, {r4, lr} mov r4, r0 add r0, r4, #0x304 bl func_ov00_020b7e6c add r0, r4, #0x308 bl func_ov00_020b7e6c ldmia sp!, {r4, pc} arm_func_end func_ov30_0217cd94 arm_func_start func_ov30_0217cdb0 func_ov30_0217cdb0: ; 0x0217cdb0 stmdb sp!, {r4, lr} mov r4, r0 bl func_ov00_020c6114 ldr r3, _0217cddc ; =data_ov30_02188ac4 ldr r2, _0217cde0 ; =data_ov30_02188748 mov r0, r4 mov r1, #0x13 str r3, [r4] bl func_ov00_020c5c98 mov r0, r4 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov30_0217cdb0 _0217cddc: .word data_ov30_02188ac4 _0217cde0: .word data_ov30_02188748 arm_func_start func_ov30_0217cde4 func_ov30_0217cde4: ; 0x0217cde4 stmdb sp!, {r4, lr} mov r4, r0 blx func_ov00_020a95ec mov r0, r4 bl func_0202ea0c mov r0, r4 ldmia sp!, {r4, pc} arm_func_end func_ov30_0217cde4 arm_func_start func_ov30_0217ce00 func_ov30_0217ce00: ; 0x0217ce00 bx lr arm_func_end func_ov30_0217ce00 arm_func_start func_ov30_0217ce04 func_ov30_0217ce04: ; 0x0217ce04 stmdb sp!, {r3, lr} ldr ip, [r1, #4] ldr r3, _0217ce94 ; =0x43485352 cmp ip, r3 subne r2, r3, #0x20 cmpne ip, r2 subne r2, r3, #0x1e cmpne ip, r2 subne r2, r3, #0x1c cmpne ip, r2 movne r0, #0 ldmia sp!, {r3, pc} ldr lr, [r0, #4] cmp lr, #0 beq _0217ce7c mov ip, #0 ldr r2, [lr] sub r0, ip, #1 cmp r2, r0 beq _0217ce7c mvn r0, #0 _0217ce58: ldr r3, [lr, ip, lsl #3] ldr r2, [r1, #8] cmp r3, r2 moveq r0, #0 ldmia sp!, {r3, pc} add ip, ip, #1 ldr r2, [lr, ip, lsl #3] cmp r2, r0 bne _0217ce58 _0217ce7c: mov r0, r1 bl func_ov30_021823f8 cmp r0, #0 movne r0, #1 moveq r0, #0 ldmia sp!, {r3, pc} .align 2, 0 arm_func_end func_ov30_0217ce04 _0217ce94: .word 0x43485352 arm_func_start func_ov30_0217ce98 func_ov30_0217ce98: ; 0x0217ce98 stmdb sp!, {r3, lr} ldr r0, _0217cecc ; =data_027e0f6c ldrh r2, [r1] ldr r1, [r0] add r0, sp, #0 bl func_ov00_02093a1c ldr r0, [sp] mov r0, r0, lsr #0x16 and r0, r0, #1 cmp r0, #1 moveq r0, #0 movne r0, #1 ldmia sp!, {r3, pc} .align 2, 0 arm_func_end func_ov30_0217ce98 _0217cecc: .word data_027e0f6c arm_func_start func_ov30_0217ced0 func_ov30_0217ced0: ; 0x0217ced0 stmdb sp!, {r3, lr} ldr r0, _0217cf04 ; =data_027e0f6c ldrh r2, [r1] ldr r1, [r0] add r0, sp, #0 bl func_ov00_02093a1c ldr r0, [sp] mov r0, r0, lsr #0x16 and r0, r0, #1 cmp r0, #1 moveq r0, #0 movne r0, #1 ldmia sp!, {r3, pc} .align 2, 0 arm_func_end func_ov30_0217ced0 _0217cf04: .word data_027e0f6c arm_func_start func_ov30_0217cf08 func_ov30_0217cf08: ; 0x0217cf08 stmdb sp!, {r3, lr} mov r0, r1 ldr r1, [r0] ldr r1, [r1, #0x1c] blx r1 cmp r0, #0x58 bgt _0217d000 bge _0217d044 cmp r0, #0x41 bgt _0217cfe4 bge _0217d044 cmp r0, #0x24 bgt _0217cfdc cmp r0, #0 addge pc, pc, r0, lsl #2 b _0217d04c _0217cf48: ; jump table b _0217d04c ; case 0 b _0217d04c ; case 1 b _0217d04c ; case 2 b _0217d044 ; case 3 b _0217d044 ; case 4 b _0217d044 ; case 5 b _0217d04c ; case 6 b _0217d04c ; case 7 b _0217d04c ; case 8 b _0217d04c ; case 9 b _0217d044 ; case 10 b _0217d044 ; case 11 b _0217d044 ; case 12 b _0217d04c ; case 13 b _0217d044 ; case 14 b _0217d04c ; case 15 b _0217d044 ; case 16 b _0217d044 ; case 17 b _0217d04c ; case 18 b _0217d04c ; case 19 b _0217d044 ; case 20 b _0217d04c ; case 21 b _0217d04c ; case 22 b _0217d044 ; case 23 b _0217d04c ; case 24 b _0217d044 ; case 25 b _0217d04c ; case 26 b _0217d04c ; case 27 b _0217d044 ; case 28 b _0217d044 ; case 29 b _0217d044 ; case 30 b _0217d044 ; case 31 b _0217d04c ; case 32 b _0217d04c ; case 33 b _0217d04c ; case 34 b _0217d04c ; case 35 b _0217d044 ; case 36 _0217cfdc: cmp r0, #0x35 b _0217d04c _0217cfe4: cmp r0, #0x45 bgt _0217cff4 beq _0217d044 b _0217d04c _0217cff4: cmp r0, #0x46 beq _0217d044 b _0217d04c _0217d000: cmp r0, #0x7d bgt _0217d024 bge _0217d044 cmp r0, #0x59 bgt _0217d01c beq _0217d044 b _0217d04c _0217d01c: cmp r0, #0x67 b _0217d04c _0217d024: cmp r0, #0x81 bgt _0217d03c bge _0217d044 cmp r0, #0x7e beq _0217d044 b _0217d04c _0217d03c: cmp r0, #0x90 bne _0217d04c _0217d044: mov r0, #0 ldmia sp!, {r3, pc} _0217d04c: mov r0, #1 ldmia sp!, {r3, pc} arm_func_end func_ov30_0217cf08 arm_func_start func_ov30_0217d054 func_ov30_0217d054: ; 0x0217d054 stmdb sp!, {r3, lr} ldr r0, _0217d094 ; =data_027e0fe4 mov r1, r2 ldr r0, [r0] bl func_ov00_020c35d8 cmp r0, #0 moveq r0, #1 ldmia sp!, {r3, pc} ldr r1, [r0, #4] ldr r0, _0217d098 ; =0x43525053 cmp r1, r0 bne _0217d08c mov r0, #0 ldmia sp!, {r3, pc} _0217d08c: mov r0, #1 ldmia sp!, {r3, pc} .align 2, 0 arm_func_end func_ov30_0217d054 _0217d094: .word data_027e0fe4 _0217d098: .word 0x43525053 arm_func_start func_ov30_0217d09c func_ov30_0217d09c: ; 0x0217d09c stmdb sp!, {r4, r5, r6, r7, r8, lr} sub sp, sp, #0x58 ldr r3, _0217d388 ; =data_027e0f90 mov r7, r0 ldr r0, [r3] mov r6, r1 ldr r1, [r0] ldr r4, _0217d38c ; =data_027e0f94 ldr r1, [r1, #4] mov r5, r2 blx r1 cmp r0, #0 addeq sp, sp, #0x58 moveq r0, #0 ldmia sp!, {r4, r5, r6, r7, r8, pc} ldr r0, _0217d390 ; =data_027e0e60 ldr lr, [r4] ldr ip, [r4, #4] ldr r3, [r4, #8] ldr r0, [r0] add r2, sp, #0x28 mov r1, #0xff str lr, [sp, #0x28] str ip, [sp, #0x2c] str r3, [sp, #0x30] bl func_ov00_02083770 cmp r0, #0 addne sp, sp, #0x58 movne r0, #0 ldmia sp!, {r4, r5, r6, r7, r8, pc} add r2, sp, #0x4c mov r0, r4 add r1, r7, #0x48 bl func_01ff9bf8 mov r1, r4 add r0, r7, #0x48 bl func_ov00_020c5464 cmp r0, #0 addeq sp, sp, #0x58 moveq r0, #0 ldmia sp!, {r4, r5, r6, r7, r8, pc} cmp r5, #0 bne _0217d1b0 mov r2, r4 add r0, r7, #0x48 mov r1, #0x5000 bl func_ov00_020ce284 cmp r0, #0 beq _0217d1b0 add r0, r7, #0x800 ldrsh r8, [r0, #0x40] ldr r0, [sp, #0x4c] ldr r1, [sp, #0x54] bl func_01ffa0f4 mov r0, r0, lsl #0x10 rsb r0, r8, r0, asr #16 mov r0, r0, lsl #0x10 ldr r1, _0217d394 ; =0xffff8001 mov r2, r0, asr #0x10 cmp r1, r0, asr #16 mov r2, r1, lsr #0x11 bgt _0217d1a4 cmp r2, #0 rsblt r0, r2, #0 mov r0, r0, lsl #0x10 mov r2, r0, asr #0x10 _0217d1a4: ldr r0, _0217d398 ; =0x00002aaa cmp r2, r0 ble _0217d290 _0217d1b0: cmp r5, #1 bne _0217d220 mov r2, r4 add r0, r7, #0x48 mov r1, #0x5000 bl func_ov00_020ce284 cmp r0, #0 beq _0217d220 add r0, r7, #0x800 ldrsh r5, [r0, #0x40] ldr r0, [sp, #0x4c] ldr r1, [sp, #0x54] bl func_01ffa0f4 mov r0, r0, lsl #0x10 rsb r0, r5, r0, asr #16 mov r0, r0, lsl #0x10 ldr r1, _0217d394 ; =0xffff8001 mov r2, r0, asr #0x10 cmp r1, r0, asr #16 mov r2, r1, lsr #0x11 bgt _0217d214 cmp r2, #0 rsblt r0, r2, #0 mov r0, r0, lsl #0x10 mov r2, r0, asr #0x10 _0217d214: ldr r0, _0217d39c ; =0x00005555 cmp r2, r0 ble _0217d290 _0217d220: mov r2, r4 add r0, r7, #0x48 mov r1, #0xa000 bl func_ov00_020ce284 cmp r0, #0 beq _0217d284 add r0, r7, #0x800 ldrsh r5, [r0, #0x40] ldr r0, [sp, #0x4c] ldr r1, [sp, #0x54] bl func_01ffa0f4 mov r0, r0, lsl #0x10 rsb r0, r5, r0, asr #16 mov r0, r0, lsl #0x10 ldr r1, _0217d394 ; =0xffff8001 mov r2, r0, asr #0x10 cmp r1, r0, asr #16 mov r2, r1, lsr #0x11 bgt _0217d27c cmp r2, #0 rsblt r0, r2, #0 mov r0, r0, lsl #0x10 mov r2, r0, asr #0x10 _0217d27c: cmp r2, #0x1000 ble _0217d290 _0217d284: add sp, sp, #0x58 mov r0, #0 ldmia sp!, {r4, r5, r6, r7, r8, pc} _0217d290: cmp r6, #0 beq _0217d37c cmp r6, #1 beq _0217d2ac cmp r6, #2 beq _0217d2cc b _0217d37c _0217d2ac: mov r0, r7 mov r1, r4 bl func_ov00_020cca68 cmp r0, #0 beq _0217d37c add sp, sp, #0x58 mov r0, #0 ldmia sp!, {r4, r5, r6, r7, r8, pc} _0217d2cc: add r0, r7, #0x48 add r3, sp, #0x40 ldmia r0!, {r0, r1, r2} stmia r3!, {r0, r1, r2} ldr r0, [sp, #0x44] ldr r6, [sp, #0x40] add r0, r0, #0x9a add ip, r0, #0x100 ldr r5, [sp, #0x48] ldr r7, _0217d3a0 ; =data_ov30_02188ae8 add lr, sp, #0x34 ldmia r4!, {r0, r1, r2} stmia lr!, {r0, r1, r2} ldr r1, [sp, #0x34] ldr r0, [sp, #0x3c] str r1, [sp, #0x1c] str r0, [sp, #0x24] mov r3, #6 str ip, [sp, #0x44] str ip, [sp, #0x38] str r7, [sp, #0xc] str ip, [sp, #0x20] str r6, [sp, #0x10] str ip, [sp, #0x14] str r5, [sp, #0x18] str r3, [sp] mov r0, #0x8f str r0, [sp, #4] add r1, sp, #0xc str r1, [sp, #8] ldr r0, _0217d390 ; =data_027e0e60 add r1, sp, #0x1c ldr r0, [r0] add r2, sp, #0x10 add r3, r3, #0x194 bl func_01ffe1cc cmp r0, #0 add r0, sp, #0xc beq _0217d378 bl func_ov00_02081f4c add sp, sp, #0x58 mov r0, #0 ldmia sp!, {r4, r5, r6, r7, r8, pc} _0217d378: bl func_ov00_02081f4c _0217d37c: mov r0, #1 add sp, sp, #0x58 ldmia sp!, {r4, r5, r6, r7, r8, pc} .align 2, 0 arm_func_end func_ov30_0217d09c _0217d388: .word data_027e0f90 _0217d38c: .word data_027e0f94 _0217d390: .word data_027e0e60 _0217d394: .word 0xffff8001 _0217d398: .word 0x00002aaa _0217d39c: .word 0x00005555 _0217d3a0: .word data_ov30_02188ae8 arm_func_start func_ov30_0217d3a4 func_ov30_0217d3a4: ; 0x0217d3a4 stmdb sp!, {r4, lr} mov r4, r0 bl func_ov00_02081f4c mov r0, r4 ldmia sp!, {r4, pc} arm_func_end func_ov30_0217d3a4 arm_func_start func_ov30_0217d3b8 func_ov30_0217d3b8: ; 0x0217d3b8 stmdb sp!, {r3, r4, r5, lr} sub sp, sp, #0x20 ldr r1, _0217d4d8 ; =data_027e0f90 mov r5, r0 ldr r0, [r1] ldr r4, _0217d4dc ; =data_027e0f94 ldr r1, [r0] ldr r1, [r1, #4] blx r1 cmp r0, #0 addeq sp, sp, #0x20 moveq r0, #0 ldmia sp!, {r3, r4, r5, pc} ldr r0, _0217d4e0 ; =data_027e0e60 ldr lr, [r4] ldr ip, [r4, #4] ldr r3, [r4, #8] ldr r0, [r0] add r2, sp, #4 mov r1, #0xff str lr, [sp, #4] str ip, [sp, #8] str r3, [sp, #0xc] bl func_ov00_02083770 cmp r0, #0 addne sp, sp, #0x20 movne r0, #0 ldmia sp!, {r3, r4, r5, pc} ldr r0, [r5, #0x2a0] mov r2, #0x5000 str r4, [sp] ldrsh r1, [r5, #0x78] sub r0, r0, #6 cmp r0, #1 movls r2, #0xa000 add r0, r5, #0x48 mov r3, #0x1000 bl func_ov00_020c54a0 cmp r0, #0 addeq sp, sp, #0x20 moveq r0, #0 ldmia sp!, {r3, r4, r5, pc} add r0, r5, #0x8c add r3, sp, #0x10 ldmia r0!, {r0, r1, r2} stmia r3!, {r0, r1, r2} ldr r1, [r5, #0x98] mov r0, #0 str r1, [sp, #0x1c] ldr r2, _0217d4e4 ; =0x0000019a str r0, [r5, #0x8c] str r2, [r5, #0x90] str r0, [r5, #0x94] mov r0, r5 mov r1, r4 str r2, [r5, #0x98] bl func_ov00_020cca68 cmp r0, #0 addeq sp, sp, #0x20 moveq r0, #0 ldmia sp!, {r3, r4, r5, pc} ldr r1, [sp, #0x10] mov r0, #1 str r1, [r5, #0x8c] ldr r1, [sp, #0x14] str r1, [r5, #0x90] ldr r1, [sp, #0x18] str r1, [r5, #0x94] ldr r1, [sp, #0x1c] str r1, [r5, #0x98] add sp, sp, #0x20 ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov30_0217d3b8 _0217d4d8: .word data_027e0f90 _0217d4dc: .word data_027e0f94 _0217d4e0: .word data_027e0e60 _0217d4e4: .word 0x0000019a arm_func_start func_ov30_0217d4e8 func_ov30_0217d4e8: ; 0x0217d4e8 stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #0x18 mov r4, r1 mov r5, r0 mov r0, r4 bl func_ov00_020c5288 cmp r0, #0 addne sp, sp, #0x18 movne r0, #0 ldmia sp!, {r4, r5, r6, pc} ldr r1, [r4] ldr r0, _0217d684 ; =data_027e0e60 str r1, [sp] ldr r1, [r4, #4] ldr r0, [r0] str r1, [sp, #4] ldr r3, [r4, #8] add r2, sp, #0 mov r1, #0xff str r3, [sp, #8] bl func_ov00_02083770 cmp r0, #0 addne sp, sp, #0x18 movne r0, #0 ldmia sp!, {r4, r5, r6, pc} add r2, sp, #0xc mov r0, r4 add r1, r5, #0x48 bl func_01ff9bf8 mov r1, r4 add r0, r5, #0x48 bl func_ov00_020c5464 cmp r0, #0 addeq sp, sp, #0x18 moveq r0, #0 ldmia sp!, {r4, r5, r6, pc} mov r2, r4 add r0, r5, #0x48 mov r1, #0x5000 bl func_ov00_020ce284 cmp r0, #0 beq _0217d5e0 add r0, r5, #0x800 ldrsh r6, [r0, #0x40] ldr r0, [sp, #0xc] ldr r1, [sp, #0x14] bl func_01ffa0f4 mov r0, r0, lsl #0x10 rsb r0, r6, r0, asr #16 mov r0, r0, lsl #0x10 ldr r1, _0217d688 ; =0xffff8001 mov r2, r0, asr #0x10 cmp r1, r0, asr #16 mov r2, r1, lsr #0x11 bgt _0217d5d4 cmp r2, #0 rsblt r0, r2, #0 mov r0, r0, lsl #0x10 mov r2, r0, asr #0x10 _0217d5d4: ldr r0, _0217d68c ; =0x00002aaa cmp r2, r0 ble _0217d664 _0217d5e0: mov r2, r4 add r0, r5, #0x48 mov r1, #0xa000 bl func_ov00_020ce284 cmp r0, #0 beq _0217d644 add r0, r5, #0x800 ldrsh r6, [r0, #0x40] ldr r0, [sp, #0xc] ldr r1, [sp, #0x14] bl func_01ffa0f4 mov r0, r0, lsl #0x10 rsb r0, r6, r0, asr #16 mov r0, r0, lsl #0x10 ldr r1, _0217d688 ; =0xffff8001 mov r2, r0, asr #0x10 cmp r1, r0, asr #16 mov r2, r1, lsr #0x11 bgt _0217d63c cmp r2, #0 rsblt r0, r2, #0 mov r0, r0, lsl #0x10 mov r2, r0, asr #0x10 _0217d63c: cmp r2, #0x1000 ble _0217d664 _0217d644: mov r2, r4 add r0, r5, #0x48 mov r1, #0x1800 bl func_ov00_020ce284 cmp r0, #0 addeq sp, sp, #0x18 moveq r0, #0 ldmia sp!, {r4, r5, r6, pc} _0217d664: mov r0, r5 mov r1, r4 bl func_ov00_020cca68 cmp r0, #0 moveq r0, #1 movne r0, #0 add sp, sp, #0x18 ldmia sp!, {r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov30_0217d4e8 _0217d684: .word data_027e0e60 _0217d688: .word 0xffff8001 _0217d68c: .word 0x00002aaa arm_func_start func_ov30_0217d690 func_ov30_0217d690: ; 0x0217d690 stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #0x48 ldr r4, _0217d7cc ; =data_027e0f94 mov r5, r0 mov r0, r4 bl func_ov00_020c5288 cmp r0, #0 addne sp, sp, #0x48 movne r0, #0 ldmia sp!, {r4, r5, r6, pc} ldr r0, _0217d7d0 ; =data_027e0e60 ldr ip, [r4] ldr r6, [r4, #4] ldr r3, [r4, #8] ldr r0, [r0] add r2, sp, #0x24 mov r1, #0xff str ip, [sp, #0x24] str r6, [sp, #0x28] str r3, [sp, #0x2c] bl func_ov00_02083770 cmp r0, #0 addne sp, sp, #0x48 movne r0, #0 ldmia sp!, {r4, r5, r6, pc} mov r1, r4 add r0, r5, #0x48 bl func_ov00_020c5464 cmp r0, #0 addeq sp, sp, #0x48 moveq r0, #0 ldmia sp!, {r4, r5, r6, pc} mov r2, r4 add r0, r5, #0x48 mov r1, #0x1800 bl func_ov00_020ce284 cmp r0, #0 addeq sp, sp, #0x48 moveq r0, #0 ldmia sp!, {r4, r5, r6, pc} add r0, r5, #0x48 add r3, sp, #0x3c ldmia r0!, {r0, r1, r2} stmia r3!, {r0, r1, r2} ldr r0, [sp, #0x40] ldr ip, [sp, #0x3c] add r0, r0, #0x33 add lr, r0, #0x300 ldr r3, [sp, #0x44] add r6, sp, #0x30 ldmia r4!, {r0, r1, r2} stmia r6!, {r0, r1, r2} ldr r1, [sp, #0x30] ldr r0, [sp, #0x38] str r1, [sp, #0x18] str r0, [sp, #0x20] str lr, [sp, #0x40] str lr, [sp, #0x34] str lr, [sp, #0x1c] str ip, [sp, #0xc] str lr, [sp, #0x10] str r3, [sp, #0x14] mov r0, #6 str r0, [sp] ldrh r2, [r5, #0x9c] ldr r0, _0217d7d0 ; =data_027e0e60 add r1, sp, #0x18 str r2, [sp, #4] ldr r3, [r5, #0xa0] add r2, sp, #0xc str r3, [sp, #8] ldr r0, [r0] ldr r3, _0217d7d4 ; =0x00000333 bl func_01ffe1cc cmp r0, #0 moveq r0, #1 movne r0, #0 add sp, sp, #0x48 ldmia sp!, {r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov30_0217d690 _0217d7cc: .word data_027e0f94 _0217d7d0: .word data_027e0e60 _0217d7d4: .word 0x00000333 arm_func_start func_ov30_0217d7d8 func_ov30_0217d7d8: ; 0x0217d7d8 stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0x30 ldr r3, _0217d988 ; =data_027e0f94 mov fp, #0 ldr r5, [r3] ldr r4, [r3, #4] ldr r2, _0217d98c ; =data_027e0e60 mov sl, r0 ldr r0, [r2] str r1, [sp] strh fp, [sp, #0x14] strh fp, [sp, #0x16] str r5, [sp, #0x18] str r4, [sp, #0x1c] ldr r3, [r3, #8] add r1, sp, #0x18 add r2, sp, #0x14 str r3, [sp, #0x20] bl func_ov00_0208433c mov r0, fp ldrsh r2, [sp, #0x16] ldrsh r1, [sp, #0x14] str r0, [sp, #8] strh r0, [sp, #0x10] sub r0, r1, #3 mov r1, r0, lsl #0x10 ldr r0, [sp, #8] sub r2, r2, #3 strh r0, [sp, #0x12] sub sb, r0, #0x80000001 mov r0, r1, asr #0x10 str r0, [sp, #4] mov r4, r2, lsl #0x10 _0217d85c: ldr r0, [sp, #4] ldr r5, _0217d98c ; =data_027e0e60 mov r0, r0, lsl #0x10 mov r8, #0 mov r7, r0, asr #0x10 add r6, sp, #0xc _0217d874: strh r7, [sp, #0xc] add r0, r8, r4, asr #16 strh r0, [sp, #0xe] ldr r0, [r5] mov r1, r6 bl func_ov00_02084324 cmp r0, #0 beq _0217d934 ldrsh r1, [sp, #0x16] ldrsh r0, [sp, #0xe] subs r2, r1, r0 ldrsh r1, [sp, #0x14] ldrsh r0, [sp, #0xc] rsbmi r2, r2, #0 subs r0, r1, r0 rsbmi r0, r0, #0 add r0, r0, r2 cmp r0, #2 ble _0217d934 ldr r0, [r5] mov r1, r6 add r2, sp, #0x24 bl func_ov00_0208439c ldr r1, [sl, #8] ldr r0, [sp, #0x2c] ldr r3, [sl] sub r2, r1, r0 smull r1, r0, r2, r2 ldr r2, [sp, #0x24] sub r3, r3, r2 smull ip, r2, r3, r3 adds r3, ip, #0x800 adc ip, r2, #0 mov r2, r3, lsr #0xc adds r3, r1, #0x800 adc r0, r0, #0 mov r1, r3, lsr #0xc orr r2, r2, ip, lsl #20 orr r1, r1, r0, lsl #20 add r0, r2, r1 cmp sb, r0 ble _0217d934 mov sb, r0 ldrsh r1, [sp, #0xc] ldrsh r0, [sp, #0xe] mov fp, #1 strh r1, [sp, #0x10] strh r0, [sp, #0x12] _0217d934: add r8, r8, #1 cmp r8, #7 blt _0217d874 ldr r0, [sp, #8] add r0, r0, #1 str r0, [sp, #8] cmp r0, #7 ldr r0, [sp, #4] add r0, r0, #1 str r0, [sp, #4] blt _0217d85c cmp fp, #0 beq _0217d97c ldr r0, _0217d98c ; =data_027e0e60 ldr r2, [sp] ldr r0, [r0] add r1, sp, #0x10 bl func_ov00_0208439c _0217d97c: mov r0, fp add sp, sp, #0x30 ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 arm_func_end func_ov30_0217d7d8 _0217d988: .word data_027e0f94 _0217d98c: .word data_027e0e60 arm_func_start func_ov30_0217d990 func_ov30_0217d990: ; 0x0217d990 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_ov30_0217d990 arm_func_start func_ov30_0217d9ac func_ov30_0217d9ac: ; 0x0217d9ac stmdb sp!, {r4, lr} sub sp, sp, #8 mov r2, #0 str r2, [sp] ldr r1, _0217da98 ; =data_027e0e58 mov r4, r0 str r2, [sp, #4] ldr r0, [r1] mov r2, r4 mov r1, #0x5d mov r3, #2 bl func_ov00_0207c1b0 mov r1, #0 str r1, [sp] ldr r0, _0217da98 ; =data_027e0e58 str r1, [sp, #4] ldr r0, [r0] mov r2, r4 mov r1, #0x5e mov r3, #2 bl func_ov00_0207c1b0 mov r1, #0 str r1, [sp] ldr r0, _0217da98 ; =data_027e0e58 str r1, [sp, #4] ldr r0, [r0] mov r2, r4 mov r1, #0x5f mov r3, #2 bl func_ov00_0207c1b0 mov r0, #0 str r0, [sp] str r0, [sp, #4] ldr r0, _0217da98 ; =data_027e0e58 mov r1, #0x60 ldr r0, [r0] mov r2, r4 mov r3, #2 bl func_ov00_0207c1b0 mov r0, #0 str r0, [sp] str r0, [sp, #4] ldr r0, _0217da98 ; =data_027e0e58 mov r1, #0x61 ldr r0, [r0] mov r2, r4 mov r3, #2 bl func_ov00_0207c1b0 mov r2, r4 mov r0, #0 str r0, [sp] str r0, [sp, #4] ldr r0, _0217da98 ; =data_027e0e58 mov r1, #0x62 ldr r0, [r0] mov r3, #2 bl func_ov00_0207c1b0 add sp, sp, #8 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov30_0217d9ac _0217da98: .word data_027e0e58 arm_func_start func_ov30_0217da9c func_ov30_0217da9c: ; 0x0217da9c stmdb sp!, {r4, lr} sub sp, sp, #8 mov r2, #0 str r2, [sp] ldr r1, _0217daf8 ; =data_027e0e58 mov r4, r0 str r2, [sp, #4] ldr r0, [r1] mov r2, r4 mov r1, #0x64 mov r3, #2 bl func_ov00_0207c1b0 mov r1, #0 str r1, [sp] ldr r0, _0217daf8 ; =data_027e0e58 str r1, [sp, #4] ldr r0, [r0] mov r2, r4 mov r1, #0x65 mov r3, #2 bl func_ov00_0207c1b0 add sp, sp, #8 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov30_0217da9c _0217daf8: .word data_027e0e58 arm_func_start func_ov30_0217dafc func_ov30_0217dafc: ; 0x0217dafc stmdb sp!, {r3, lr} bl func_ov00_020c5118 mov r1, #0 bl func_ov30_02183e50 ldmia sp!, {r3, pc} arm_func_end func_ov30_0217dafc arm_func_start func_ov30_0217db10 func_ov30_0217db10: ; 0x0217db10 stmdb sp!, {r4, lr} mov r4, r0 bl func_ov00_020c5118 bl func_ov30_02183db8 cmp r0, #0 ldmia sp!, {r4, pc} mov r0, r4 mov r1, #1 mov r2, #0 bl func_ov00_020c50d4 ldmia sp!, {r4, pc} arm_func_end func_ov30_0217db10 arm_func_start func_ov30_0217db3c func_ov30_0217db3c: ; 0x0217db3c stmdb sp!, {r3, r4, r5, lr} mov r4, r1 mov r5, r0 bl func_ov00_020c5118 cmp r4, #4 addls pc, pc, r4, lsl #2 b _0217db70 _0217db58: ; jump table b _0217db70 ; case 0 b _0217db70 ; case 1 b _0217db70 ; case 2 b _0217db70 ; case 3 b _0217db6c ; case 4 _0217db6c: bl func_ov00_020cc960 _0217db70: mov r0, r5 str r4, [r5, #8] bl func_ov00_020c50fc ldmia sp!, {r3, r4, r5, pc} arm_func_end func_ov30_0217db3c arm_func_start func_ov30_0217db80 func_ov30_0217db80: ; 0x0217db80 stmdb sp!, {r3, r4, r5, lr} mov r5, r0 bl func_ov00_020c5118 mov r4, r0 bl func_ov30_02181088 mov r0, r4 mov r1, #0 bl func_ov00_020cb160 mov r4, r0 mov r1, #0 bl func_ov00_020c5d74 ldr r2, [r4, #0x10] mov r3, #0x1000 mov r0, r5 mov r1, #0 str r3, [r2, #0x10] bl func_ov30_0217db3c ldmia sp!, {r3, r4, r5, pc} arm_func_end func_ov30_0217db80 arm_func_start func_ov30_0217dbc8 func_ov30_0217dbc8: ; 0x0217dbc8 stmdb sp!, {r3, r4, r5, r6, lr} sub sp, sp, #0xbc mov r5, r0 bl func_ov00_020c5118 ldr r1, [r5, #8] mov r4, r0 cmp r1, #4 addls pc, pc, r1, lsl #2 b _0217df40 _0217dbec: ; jump table b _0217dc00 ; case 0 b _0217dccc ; case 1 b _0217dd18 ; case 2 b _0217de24 ; case 3 b _0217df20 ; case 4 _0217dc00: bl func_ov00_020cc928 cmp r0, #0 mov r0, r4 bne _0217dca8 bl func_ov00_020cc8dc cmp r0, #0 addeq sp, sp, #0xbc ldmia sp!, {r3, r4, r5, r6, pc} add r0, sp, #0xc bl func_ov00_0209a4f4 mov r0, #0x64 mvn r1, #0 strb r0, [sp, #0x15] add r5, sp, #0 add r0, r4, #0x48 str r1, [sp, #0x10] ldmia r0!, {r0, r1, r2} stmia r5!, {r0, r1, r2} ldr r0, [sp, #4] ldr r5, [sp] add r6, r0, #0x800 ldr r3, _0217df48 ; =data_027e0f64 ldr r2, [sp, #8] mov r1, #1 strb r1, [sp, #0x20] ldr r0, [r3] str r6, [sp, #4] str r5, [sp, #0x2c] str r6, [sp, #0x30] str r2, [sp, #0x34] ldr r0, [r0, #4] add r1, sp, #0x38 bl func_ov00_02087d34 mov r2, #0x19000 add r1, sp, #0xc mov r0, r4 str r2, [sp, #0x50] bl func_ov00_020cc908 add r0, sp, #0xc bl func_ov00_0209a508 add sp, sp, #0xbc ldmia sp!, {r3, r4, r5, r6, pc} _0217dca8: bl func_ov00_020cc940 cmp r0, #0 addeq sp, sp, #0xbc ldmia sp!, {r3, r4, r5, r6, pc} mov r0, r5 mov r1, #1 bl func_ov30_0217db3c add sp, sp, #0xbc ldmia sp!, {r3, r4, r5, r6, pc} _0217dccc: ldr r0, _0217df4c ; =data_027e0f74 ldr r0, [r0] bl func_ov00_02098058 cmp r0, #0x2d addne sp, sp, #0xbc ldmia sp!, {r3, r4, r5, r6, pc} ldr r1, [r4, #4] ldr r0, _0217df50 ; =0x43485334 cmp r1, r0 mov r0, r5 bne _0217dd08 mov r1, #3 bl func_ov30_0217db3c add sp, sp, #0xbc ldmia sp!, {r3, r4, r5, r6, pc} _0217dd08: mov r1, #2 bl func_ov30_0217db3c add sp, sp, #0xbc ldmia sp!, {r3, r4, r5, r6, pc} _0217dd18: mov r0, r5 bl func_ov00_020c50f0 cmp r0, #1 bne _0217dd4c add r0, r4, #0x48 bl func_ov30_0217d9ac ldr r0, _0217df54 ; =data_027e0ffc add r2, r4, #0x48 mov r1, #0x4f mov r3, #0 bl func_ov00_020ceacc add sp, sp, #0xbc ldmia sp!, {r3, r4, r5, r6, pc} _0217dd4c: cmp r0, #0x33 bne _0217dd8c mov r0, r4 mov r1, #1 bl func_ov30_02183e50 mov r0, r4 mov r1, #0 bl func_ov00_020cb160 mov r4, r0 mov r1, #8 bl func_ov00_020c5d74 ldr r0, [r4, #0x10] mov r1, #0x1000 str r1, [r0, #0x10] add sp, sp, #0xbc ldmia sp!, {r3, r4, r5, r6, pc} _0217dd8c: addle sp, sp, #0xbc ldmia sp!, {r3, r4, r5, r6, pc} mov r0, r4 mov r1, #0 bl func_ov00_020cb160 ldr r0, [r0, #0x10] add r0, r0, #0xc bl func_0202e58c cmp r0, #0 addeq sp, sp, #0xbc ldmia sp!, {r3, r4, r5, r6, pc} mov r0, r4 mov r1, #0 bl func_ov00_020cb160 mov r6, r0 mov r1, #0 bl func_ov00_020c5d74 ldr r1, [r6, #0x10] mov r2, #0x1000 mov r0, r4 str r2, [r1, #0x10] bl func_ov30_02183e30 ldr r0, _0217df4c ; =data_027e0f74 mov r1, #0x46 ldr r0, [r0] bl func_ov00_02097760 cmp r0, #0 bne _0217de10 ldr r0, _0217df4c ; =data_027e0f74 mov r1, #0x46 ldr r0, [r0] mov r2, #1 bl func_ov00_0209779c _0217de10: mov r0, r5 mov r1, #4 bl func_ov30_0217db3c add sp, sp, #0xbc ldmia sp!, {r3, r4, r5, r6, pc} _0217de24: mov r0, r5 bl func_ov00_020c50f0 cmp r0, #1 bne _0217de88 add r0, r4, #0x48 bl func_ov30_0217da9c ldr r0, _0217df54 ; =data_027e0ffc add r2, r4, #0x48 mov r1, #0x50 mov r3, #0 bl func_ov00_020ceacc mov r0, r4 mov r1, #1 bl func_ov30_02183e50 mov r0, r4 mov r1, #0 bl func_ov00_020cb160 mov r4, r0 mov r1, #8 bl func_ov00_020c5d74 ldr r0, [r4, #0x10] mov r1, #0x1000 str r1, [r0, #0x10] add sp, sp, #0xbc ldmia sp!, {r3, r4, r5, r6, pc} _0217de88: addle sp, sp, #0xbc ldmia sp!, {r3, r4, r5, r6, pc} mov r0, r4 mov r1, #0 bl func_ov00_020cb160 ldr r0, [r0, #0x10] add r0, r0, #0xc bl func_0202e58c cmp r0, #0 addeq sp, sp, #0xbc ldmia sp!, {r3, r4, r5, r6, pc} mov r0, r4 mov r1, #0 bl func_ov00_020cb160 mov r6, r0 mov r1, #0 bl func_ov00_020c5d74 ldr r1, [r6, #0x10] mov r2, #0x1000 mov r0, r4 str r2, [r1, #0x10] bl func_ov30_02183e30 ldr r0, _0217df4c ; =data_027e0f74 mov r1, #0x46 ldr r0, [r0] bl func_ov00_02097760 cmp r0, #0 bne _0217df0c ldr r0, _0217df4c ; =data_027e0f74 mov r1, #0x46 ldr r0, [r0] mov r2, #1 bl func_ov00_0209779c _0217df0c: mov r0, r5 mov r1, #4 bl func_ov30_0217db3c add sp, sp, #0xbc ldmia sp!, {r3, r4, r5, r6, pc} _0217df20: bl func_ov00_020cc980 cmp r0, #0 addeq sp, sp, #0xbc ldmia sp!, {r3, r4, r5, r6, pc} mov r0, r5 mov r1, #3 mov r2, #0 bl func_ov00_020c50d4 _0217df40: add sp, sp, #0xbc ldmia sp!, {r3, r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov30_0217dbc8 _0217df48: .word data_027e0f64 _0217df4c: .word data_027e0f74 _0217df50: .word 0x43485334 _0217df54: .word data_027e0ffc arm_func_start func_ov30_0217df58 func_ov30_0217df58: ; 0x0217df58 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #0xc mov r5, r1 mov r6, r0 bl func_ov00_020c5118 mov r4, r0 cmp r5, #7 addls pc, pc, r5, lsl #2 b _0217e07c _0217df7c: ; jump table b _0217df9c ; case 0 b _0217e07c ; case 1 b _0217dfc0 ; case 2 b _0217e040 ; case 3 b _0217e058 ; case 4 b _0217e07c ; case 5 b _0217e070 ; case 6 b _0217e078 ; case 7 _0217df9c: mov r1, #0 bl func_ov00_020cb160 mov r4, r0 mov r1, #0 bl func_ov00_020c5d74 ldr r0, [r4, #0x10] mov r1, #0x1000 str r1, [r0, #0x10] b _0217e07c _0217dfc0: mov r1, #1 bl func_ov30_021823cc mov r0, r4 mov r1, #0 bl func_ov00_020cb160 mov r7, r0 mov r1, #9 bl func_ov00_020c5d74 ldr r0, [r7, #0x10] mov r1, #0x1000 str r1, [r0, #0x10] ldr r2, _0217e090 ; =data_027e0f94 add r1, sp, #0 ldr r0, [r2] str r0, [r6, #0xc] ldr r3, [r2, #4] add r0, r4, #0x48 str r3, [r6, #0x10] ldr r2, [r2, #8] str r2, [r6, #0x14] bl func_ov30_0217d7d8 cmp r0, #0 beq _0217e034 ldr r0, [sp] str r0, [r6, #0xc] ldr r0, [sp, #4] str r0, [r6, #0x10] ldr r0, [sp, #8] str r0, [r6, #0x14] _0217e034: mov r0, #0x1f strb r0, [r4, #0xab7] b _0217e07c _0217e040: mov r1, #0 bl func_ov00_020cb160 ldr r0, [r0, #0x10] mov r1, #0 str r1, [r0, #0x10] b _0217e07c _0217e058: mov r1, #0 bl func_ov00_020cb160 ldr r0, [r0, #0x10] mov r1, #0x1000 str r1, [r0, #0x10] b _0217e07c _0217e070: bl func_ov00_020cc960 b _0217e07c _0217e078: bl func_ov30_02182da8 _0217e07c: mov r0, r6 str r5, [r6, #8] bl func_ov00_020c50fc add sp, sp, #0xc ldmia sp!, {r4, r5, r6, r7, pc} .align 2, 0 arm_func_end func_ov30_0217df58 _0217e090: .word data_027e0f94 arm_func_start func_ov30_0217e094 func_ov30_0217e094: ; 0x0217e094 stmdb sp!, {r4, lr} mov r4, r0 bl func_ov00_020c5118 mov r0, r4 mov r1, #0 bl func_ov30_0217df58 ldmia sp!, {r4, pc} arm_func_end func_ov30_0217e094 arm_func_start func_ov30_0217e0b0 func_ov30_0217e0b0: ; 0x0217e0b0 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #0xcc mov r6, r0 bl func_ov00_020c5118 ldr r1, [r6, #8] mov r4, r0 cmp r1, #7 addls pc, pc, r1, lsl #2 b _0217e3b8 _0217e0d4: ; jump table b _0217e0f4 ; case 0 b _0217e184 ; case 1 b _0217e1b0 ; case 2 b _0217e20c ; case 3 b _0217e280 ; case 4 b _0217e33c ; case 5 b _0217e364 ; case 6 b _0217e388 ; case 7 _0217e0f4: bl func_ov00_020cc928 cmp r0, #0 mov r0, r4 bne _0217e160 bl func_ov00_020cc8dc cmp r0, #0 addeq sp, sp, #0xcc ldmia sp!, {r4, r5, r6, r7, pc} add r0, sp, #0x1c bl func_ov00_0209a4f4 mvn r1, #0 mov r0, #0x64 str r1, [sp, #0x20] strb r0, [sp, #0x25] ldr r0, [r4, #0x48] add r1, sp, #0x1c str r0, [sp, #0x3c] ldr r2, [r4, #0x4c] mov r0, r4 str r2, [sp, #0x40] ldr r2, [r4, #0x50] str r2, [sp, #0x44] bl func_ov00_020cc908 add r0, sp, #0x1c bl func_ov00_0209a508 add sp, sp, #0xcc ldmia sp!, {r4, r5, r6, r7, pc} _0217e160: bl func_ov00_020cc940 cmp r0, #0 addeq sp, sp, #0xcc ldmia sp!, {r4, r5, r6, r7, pc} mov r0, r6 mov r1, #1 bl func_ov30_0217df58 add sp, sp, #0xcc ldmia sp!, {r4, r5, r6, r7, pc} _0217e184: ldr r0, _0217e3c0 ; =data_027e0f74 ldr r0, [r0] bl func_ov00_02098058 cmp r0, #0x2d addne sp, sp, #0xcc ldmia sp!, {r4, r5, r6, r7, pc} mov r0, r6 mov r1, #2 bl func_ov30_0217df58 add sp, sp, #0xcc ldmia sp!, {r4, r5, r6, r7, pc} _0217e1b0: mov r0, r6 ldrb r5, [r4, #0xab7] bl func_ov00_020c50f0 cmp r0, #8 blt _0217e1d0 cmp r5, #0x10 subhi r0, r5, #1 strhib r0, [r4, #0xab7] _0217e1d0: mov r0, r4 mov r1, #0 bl func_ov00_020cb160 ldr r0, [r0, #0x10] mov r1, #0x1e000 add r0, r0, #0xc bl func_0202e310 cmp r0, #0 addeq sp, sp, #0xcc ldmia sp!, {r4, r5, r6, r7, pc} mov r0, r6 mov r1, #3 bl func_ov30_0217df58 add sp, sp, #0xcc ldmia sp!, {r4, r5, r6, r7, pc} _0217e20c: add r1, r6, #0xc bl func_ov30_02182f0c ldr r0, [r4, #0x48] mov r3, #1 str r0, [sp, #0x10] ldr r0, [r4, #0x4c] mov r1, #0 str r0, [sp, #0x14] ldr r2, [r4, #0x50] ldr r0, _0217e3c4 ; =data_027e0f64 str r2, [sp, #0x18] stmia sp!, {r1, r3} str r1, [sp, #8] ldr r0, [r0] add r2, sp, #0x10 ldr r0, [r0, #4] sub r3, r3, #2 bl func_ov00_020884b4 mov r0, r4 add r1, r6, #0xc bl func_ov30_02182c68 cmp r0, #0 addeq sp, sp, #0xcc ldmia sp!, {r4, r5, r6, r7, pc} mov r0, r6 mov r1, #4 bl func_ov30_0217df58 add sp, sp, #0xcc ldmia sp!, {r4, r5, r6, r7, pc} _0217e280: ldrb r5, [r4, #0xab7] mov r1, #0 cmp r5, #0x1f addlo r0, r5, #1 andlo r5, r0, #0xff strlob r5, [r4, #0xab7] mov r0, r4 bl func_ov00_020cb160 ldr r0, [r0, #0x14] cmp r0, #9 bne _0217e2f0 mov r0, r4 mov r1, #0 bl func_ov00_020cb160 ldr r0, [r0, #0x10] add r0, r0, #0xc bl func_0202e58c cmp r0, #0 beq _0217e2f0 mov r0, r4 mov r1, #0 bl func_ov00_020cb160 mov r7, r0 mov r1, #0 bl func_ov00_020c5d74 ldr r0, [r7, #0x10] mov r1, #0x1000 str r1, [r0, #0x10] _0217e2f0: mov r0, r4 mov r1, #0 bl func_ov00_020cb160 ldr r0, [r0, #0x14] cmp r0, #9 addeq sp, sp, #0xcc ldmia sp!, {r4, r5, r6, r7, pc} cmp r5, #0x1f addne sp, sp, #0xcc ldmia sp!, {r4, r5, r6, r7, pc} ldr r0, _0217e3c8 ; =data_027e0c68 ldr r1, _0217e3cc ; =0x000e0055 mvn r2, #0 bl func_02036edc mov r0, r6 mov r1, #5 bl func_ov30_0217df58 add sp, sp, #0xcc ldmia sp!, {r4, r5, r6, r7, pc} _0217e33c: ldr r0, _0217e3c8 ; =data_027e0c68 bl func_020367ec cmp r0, #0 addne sp, sp, #0xcc ldmia sp!, {r4, r5, r6, r7, pc} mov r0, r6 mov r1, #6 bl func_ov30_0217df58 add sp, sp, #0xcc ldmia sp!, {r4, r5, r6, r7, pc} _0217e364: bl func_ov00_020cc980 cmp r0, #0 addeq sp, sp, #0xcc ldmia sp!, {r4, r5, r6, r7, pc} mov r0, r6 mov r1, #7 bl func_ov30_0217df58 add sp, sp, #0xcc ldmia sp!, {r4, r5, r6, r7, pc} _0217e388: bl func_ov30_02182dd4 mov r0, r6 bl func_ov00_020c50f0 cmp r0, #0x1e addle sp, sp, #0xcc ldmia sp!, {r4, r5, r6, r7, pc} mov r3, #2 add r2, sp, #0xc mov r0, r6 mov r1, #7 str r3, [sp, #0xc] bl func_ov00_020c50d4 _0217e3b8: add sp, sp, #0xcc ldmia sp!, {r4, r5, r6, r7, pc} .align 2, 0 arm_func_end func_ov30_0217e0b0 _0217e3c0: .word data_027e0f74 _0217e3c4: .word data_027e0f64 _0217e3c8: .word data_027e0c68 _0217e3cc: .word 0x000e0055 arm_func_start func_ov30_0217e3d0 func_ov30_0217e3d0: ; 0x0217e3d0 stmdb sp!, {r3, r4, r5, lr} bl func_ov00_020c5118 mov r5, r0 mov r1, #1 bl func_ov30_02183e50 mov r0, r5 mov r1, #0 bl func_ov00_020cb160 mov r4, r0 mov r1, #5 bl func_ov00_020c5d74 ldr r1, [r4, #0x10] mov r2, #0x1000 mov r0, r5 str r2, [r1, #0x10] bl func_ov30_02182da8 ldmia sp!, {r3, r4, r5, pc} arm_func_end func_ov30_0217e3d0 arm_func_start func_ov30_0217e414 func_ov30_0217e414: ; 0x0217e414 stmdb sp!, {r3, r4, r5, lr} mov r5, r0 bl func_ov00_020c5118 mov r4, r0 bl func_ov30_02182dc0 mov r0, r4 mov r1, #0 bl func_ov00_020cb160 ldr r0, [r0, #0x10] add r0, r0, #0xc bl func_0202e58c cmp r0, #0 ldmia sp!, {r3, r4, r5, pc} ldr r0, [r4, #0x844] cmp r0, #0 beq _0217e468 mov r0, r5 mov r1, #4 mov r2, #0 bl func_ov00_020c50d4 ldmia sp!, {r3, r4, r5, pc} _0217e468: ldr r0, _0217e4ac ; =data_027e10b4 ldr r0, [r0] bl func_ov30_02183fa0 cmp r0, #0 beq _0217e490 mov r0, r5 mov r1, #6 mov r2, #0 bl func_ov00_020c50d4 ldmia sp!, {r3, r4, r5, pc} _0217e490: mov r3, #1 add r2, sp, #0 mov r0, r5 mov r1, #5 strb r3, [sp] bl func_ov00_020c50d4 ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov30_0217e414 _0217e4ac: .word data_027e10b4 arm_func_start func_ov30_0217e4b0 func_ov30_0217e4b0: ; 0x0217e4b0 stmdb sp!, {r3, r4, r5, r6, r7, lr} mov r5, r1 mov r6, r0 bl func_ov00_020c5118 mov r4, r0 cmp r5, #0 beq _0217e4d8 cmp r5, #1 beq _0217e504 b _0217e52c _0217e4d8: mov r1, #0 bl func_ov00_020cb160 mov r7, r0 mov r1, #0 bl func_ov00_020c5d74 ldr r1, [r7, #0x10] mov r2, #0x1000 mov r0, r4 str r2, [r1, #0x10] bl func_ov30_02182da8 b _0217e52c _0217e504: mov r1, #0 bl func_ov00_020cb160 mov r7, r0 mov r1, #1 bl func_ov00_020c5d74 ldr r1, [r7, #0x10] mov r2, #0x1000 mov r0, r4 str r2, [r1, #0x10] bl func_ov30_02182da8 _0217e52c: mov r0, r6 str r5, [r6, #8] bl func_ov00_020c50fc ldmia sp!, {r3, r4, r5, r6, r7, pc} arm_func_end func_ov30_0217e4b0 arm_func_start func_ov30_0217e53c func_ov30_0217e53c: ; 0x0217e53c stmdb sp!, {r4, r5, r6, lr} mov r4, r0 bl func_ov00_020c5118 mov r1, #0 bl func_ov30_021823cc ldr r1, _0217e5a0 ; =data_027e0764 mov r2, #0 ldr r3, [r1] ldmib r1, {r0, ip} umull r5, lr, ip, r3 mla lr, ip, r0, lr ldr r0, [r1, #0xc] ldr r6, [r1, #0x10] mla lr, r0, r3, lr ldr ip, [r1, #0x14] adds r5, r6, r5 str r5, [r1] adc r3, ip, lr str r3, [r1, #4] add r2, r2, #0x5a mov r0, r4 mov r1, #0 strh r2, [r4, #0xc] bl func_ov30_0217e4b0 ldmia sp!, {r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov30_0217e53c _0217e5a0: .word data_027e0764 arm_func_start func_ov30_0217e5a4 func_ov30_0217e5a4: ; 0x0217e5a4 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr} sub sp, sp, #0x30 mov r6, r0 bl func_ov00_020c5118 ldr r1, [r6, #8] mov r5, r0 cmp r1, #0 beq _0217e5d4 cmp r1, #1 beq _0217e72c add sp, sp, #0x30 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} _0217e5d4: bl func_ov30_02182dc0 mov r0, r6 bl func_ov00_020c50f0 ldrsh r1, [r6, #0xc] cmp r0, r1 addle sp, sp, #0x30 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} ldrsh r0, [r5, #0x78] bl func_0202bbbc bl func_0202bba8 strh r0, [r6, #0xe] ldr r0, [r5, #0x844] cmp r0, #2 bne _0217e690 ldr r4, _0217e760 ; =data_02050f54 mov sl, #0 mov sb, #0x3000 add r8, sp, #0x24 add r7, sp, #0x18 _0217e620: ldrsh r2, [r6, #0xe] mov r0, sb mov r1, r8 add r2, r2, #0x4000 strh r2, [r6, #0xe] ldrh ip, [r6, #0xe] mov r3, r7 add r2, r5, #0x48 mov ip, ip, asr #0x4 mov lr, ip, lsl #0x1 mov ip, lr, lsl #0x1 add lr, r4, lr, lsl #1 ldrsh ip, [r4, ip] ldrsh lr, [lr, #2] str sl, [sp, #0x28] str ip, [sp, #0x24] str lr, [sp, #0x2c] bl func_01ff9e64 mov r0, r5 mov r1, r7 bl func_ov00_020cca68 cmp r0, #0 bne _0217e620 mov r0, r6 mov r1, #1 bl func_ov30_0217e4b0 add sp, sp, #0x30 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} _0217e690: cmp r0, #3 bne _0217e71c ldr r4, _0217e760 ; =data_02050f54 mov sl, #0 mov sb, #0x3000 add r8, sp, #0xc add r7, sp, #0 _0217e6ac: ldrsh r2, [r6, #0xe] mov r0, sb mov r1, r8 sub r2, r2, #0x4000 strh r2, [r6, #0xe] ldrh ip, [r6, #0xe] mov r3, r7 add r2, r5, #0x48 mov ip, ip, asr #0x4 mov lr, ip, lsl #0x1 mov ip, lr, lsl #0x1 add lr, r4, lr, lsl #1 ldrsh ip, [r4, ip] ldrsh lr, [lr, #2] str sl, [sp, #0x10] str ip, [sp, #0xc] str lr, [sp, #0x14] bl func_01ff9e64 mov r0, r5 mov r1, r7 bl func_ov00_020cca68 cmp r0, #0 bne _0217e6ac mov r0, r6 mov r1, #1 bl func_ov30_0217e4b0 add sp, sp, #0x30 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} _0217e71c: mov r0, r6 bl func_ov00_020c50fc add sp, sp, #0x30 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} _0217e72c: ldrsh r1, [r6, #0xe] bl func_ov30_02182e34 ldrsh r1, [r6, #0xe] mov r0, r5 bl func_ov30_02182e50 cmp r0, #0 addeq sp, sp, #0x30 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} mov r0, r6 mov r1, #0 bl func_ov30_0217e4b0 add sp, sp, #0x30 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} .align 2, 0 arm_func_end func_ov30_0217e5a4 _0217e760: .word data_02050f54 arm_func_start func_ov30_0217e764 func_ov30_0217e764: ; 0x0217e764 stmdb sp!, {r3, r4, r5, r6, r7, r8, lr} sub sp, sp, #4 mov r7, r0 mov r6, r1 bl func_ov00_020c5118 mov r4, r0 ldr r5, [r4, #0x8a4] cmp r6, #3 addls pc, pc, r6, lsl #2 b _0217e86c _0217e78c: ; jump table b _0217e79c ; case 0 b _0217e7c8 ; case 1 b _0217e7f4 ; case 2 b _0217e844 ; case 3 _0217e79c: mov r1, #0 bl func_ov00_020cb160 mov r5, r0 mov r1, #0 bl func_ov00_020c5d74 ldr r1, [r5, #0x10] mov r2, #0x1000 mov r0, r4 str r2, [r1, #0x10] bl func_ov30_02182da8 b _0217e86c _0217e7c8: mov r1, #0 bl func_ov00_020cb160 mov r5, r0 mov r1, #7 bl func_ov00_020c5d74 ldr r1, [r5, #0x10] mov r2, #0x1000 mov r0, r4 str r2, [r1, #0x10] bl func_ov30_02182da8 b _0217e86c _0217e7f4: mov r1, #0 bl func_ov00_020cb160 mov r8, r0 mov r1, #1 bl func_ov00_020c5d74 ldr r1, [r8, #0x10] mov r2, #0x1000 mov r0, r4 str r2, [r1, #0x10] bl func_ov30_02182eb4 mov r0, r4 bl func_ov00_020c29d8 mov r0, r5 ldr r2, [r4, #0xa0] add r1, r4, #0x48 str r2, [sp] ldr r2, [r4, #0x98] ldrh r3, [r4, #0x9c] bl func_ov30_02187e18 b _0217e86c _0217e844: bl func_ov30_02182da8 mov r0, r4 mov r1, #0 bl func_ov00_020cb160 mov r4, r0 mov r1, #5 bl func_ov00_020c5d74 ldr r0, [r4, #0x10] mov r1, #0x1000 str r1, [r0, #0x10] _0217e86c: mov r0, r7 str r6, [r7, #8] bl func_ov00_020c50fc add sp, sp, #4 ldmia sp!, {r3, r4, r5, r6, r7, r8, pc} arm_func_end func_ov30_0217e764 arm_func_start func_ov30_0217e880 func_ov30_0217e880: ; 0x0217e880 stmdb sp!, {r3, r4, r5, lr} mov r5, r0 mov r4, r1 bl func_ov00_020c5118 mov r1, #0 strb r1, [r0, #0x87e] ldr r2, [r4] mov r0, r5 str r2, [r5, #0xc] ldr r2, [r4, #4] str r2, [r5, #0x10] ldr r2, [r4, #8] str r2, [r5, #0x14] bl func_ov30_0217e764 ldmia sp!, {r3, r4, r5, pc} arm_func_end func_ov30_0217e880 arm_func_start func_ov30_0217e8bc func_ov30_0217e8bc: ; 0x0217e8bc stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #0x1c mov r6, r0 bl func_ov00_020c5118 ldr r1, [r6, #8] mov r4, r0 ldr r5, [r4, #0x8a4] cmp r1, #3 addls pc, pc, r1, lsl #2 b _0217eb5c _0217e8e4: ; jump table b _0217e8f4 ; case 0 b _0217e938 ; case 1 b _0217e9d4 ; case 2 b _0217eaa8 ; case 3 _0217e8f4: bl func_ov30_02182dc0 mov r0, r6 bl func_ov00_020c50f0 cmp r0, #0xf addle sp, sp, #0x1c ldmia sp!, {r4, r5, r6, r7, pc} mov r3, #0x100 mov r0, r5 add r1, r4, #0x48 add r2, r6, #0xc str r3, [sp] bl func_ov30_02187c00 mov r0, r6 mov r1, #1 bl func_ov30_0217e764 add sp, sp, #0x1c ldmia sp!, {r4, r5, r6, r7, pc} _0217e938: mov r0, r5 bl func_ov30_02187c44 mov r0, r4 add r1, r6, #0xc bl func_ov30_02182dfc mov r0, r4 add r1, r6, #0xc bl func_ov30_02182e18 cmp r0, #0 addeq sp, sp, #0x1c ldmia sp!, {r4, r5, r6, r7, pc} mov r0, r4 mov r1, #0 bl func_ov00_020cb160 ldr r0, [r0, #0x10] add r0, r0, #0xc bl func_0202e58c cmp r0, #0 addeq sp, sp, #0x1c ldmia sp!, {r4, r5, r6, r7, pc} mov r0, r5 bl func_ov30_02187d50 cmp r0, #0 beq _0217e9ac mov r0, r6 mov r1, #3 bl func_ov30_0217e764 add sp, sp, #0x1c ldmia sp!, {r4, r5, r6, r7, pc} _0217e9ac: mov r0, r5 bl func_ov30_02187d3c cmp r0, #0 addeq sp, sp, #0x1c ldmia sp!, {r4, r5, r6, r7, pc} mov r0, r6 mov r1, #2 bl func_ov30_0217e764 add sp, sp, #0x1c ldmia sp!, {r4, r5, r6, r7, pc} _0217e9d4: add r1, sp, #0x10 mov r0, r5 bl func_ov30_02187d88 add r1, sp, #0x10 mov r0, r4 mov r2, #2 bl func_ov30_02182ecc mov r0, r4 mov r1, #0xa000 bl func_ov00_020c29ec mov r7, r0 add r1, sp, #0x10 mov r0, r4 bl func_ov30_02182c68 cmp r0, #0 beq _0217ea30 ldr r1, [r4, #0xa0] mov r0, r5 str r1, [sp] ldrh r3, [r4, #0x9c] ldr r2, [r4, #0x98] add r1, r4, #0x48 bl func_ov30_02187e18 _0217ea30: add r1, sp, #4 mov r0, r5 bl func_ov30_02187dd8 add r1, sp, #4 mov r0, r4 bl func_ov30_02182c68 cmp r0, #0 cmpeq r7, #0 beq _0217ea68 mov r0, r6 mov r1, #3 bl func_ov30_0217e764 add sp, sp, #0x1c ldmia sp!, {r4, r5, r6, r7, pc} _0217ea68: add r1, sp, #4 mov r0, r4 bl func_ov00_020c288c cmp r0, #0x3000 addge sp, sp, #0x1c ldmia sp!, {r4, r5, r6, r7, pc} mov r0, r4 bl func_ov30_02183a78 cmp r0, #0 addeq sp, sp, #0x1c ldmia sp!, {r4, r5, r6, r7, pc} mov r0, r6 mov r1, #3 bl func_ov30_0217e764 add sp, sp, #0x1c ldmia sp!, {r4, r5, r6, r7, pc} _0217eaa8: bl func_ov30_02182dc0 mov r0, r4 mov r1, #0 bl func_ov00_020cb160 ldr r0, [r0, #0x10] add r0, r0, #0xc bl func_0202e58c cmp r0, #0 addeq sp, sp, #0x1c ldmia sp!, {r4, r5, r6, r7, pc} ldr r1, [r4, #4] ldr r0, _0217eb64 ; =0x43485336 cmp r1, r0 bne _0217eb04 ldrb r0, [r4, #0xab6] cmp r0, #0 beq _0217eb04 mov r0, r6 mov r1, #0xf mov r2, #0 bl func_ov00_020c50d4 add sp, sp, #0x1c ldmia sp!, {r4, r5, r6, r7, pc} _0217eb04: ldr r0, [r4, #0x844] cmp r0, #0 beq _0217eb28 mov r0, r6 mov r1, #0x10 mov r2, #0 bl func_ov00_020c50d4 add sp, sp, #0x1c ldmia sp!, {r4, r5, r6, r7, pc} _0217eb28: ldr r0, _0217eb68 ; =data_027e10b4 ldr r0, [r0] bl func_ov30_02183fa0 cmp r0, #0 mov r0, r6 mov r2, #0 beq _0217eb54 mov r1, #6 bl func_ov00_020c50d4 add sp, sp, #0x1c ldmia sp!, {r4, r5, r6, r7, pc} _0217eb54: mov r1, #5 bl func_ov00_020c50d4 _0217eb5c: add sp, sp, #0x1c ldmia sp!, {r4, r5, r6, r7, pc} .align 2, 0 arm_func_end func_ov30_0217e8bc _0217eb64: .word 0x43485336 _0217eb68: .word data_027e10b4 arm_func_start func_ov30_0217eb6c func_ov30_0217eb6c: ; 0x0217eb6c stmdb sp!, {r4, lr} bl func_ov00_020c5118 mov r4, r0 mov r1, #0 bl func_ov30_02183e50 ldr r0, [r4, #0x14] str r0, [r4, #0x48] ldr r0, [r4, #0x18] str r0, [r4, #0x4c] ldr r0, [r4, #0x1c] str r0, [r4, #0x50] ldr r0, [r4, #0x14] str r0, [r4, #0x54] ldr r0, [r4, #0x18] str r0, [r4, #0x58] ldr r0, [r4, #0x1c] str r0, [r4, #0x5c] ldrsh r0, [r4, #0x12] strh r0, [r4, #0x78] ldmia sp!, {r4, pc} arm_func_end func_ov30_0217eb6c arm_func_start func_ov30_0217ebbc func_ov30_0217ebbc: ; 0x0217ebbc stmdb sp!, {r3, r4, r5, r6, r7, r8, lr} sub sp, sp, #0xa4 mov r7, r0 bl func_ov00_020c5118 mov r4, r0 mov r0, r7 bl func_ov00_020c510c cmp r0, #0x384 addle sp, sp, #0xa4 ldmia sp!, {r3, r4, r5, r6, r7, r8, pc} ldr r2, _0217ece4 ; =data_027e0f94 add r0, r4, #0x14 mov r1, #0x2800 bl func_ov00_020ce284 cmp r0, #0 addne sp, sp, #0xa4 ldmia sp!, {r3, r4, r5, r6, r7, r8, pc} ldr r2, _0217ece8 ; =data_ov30_02188b08 mov r1, #0 add r3, sp, #0x24 mov r0, #0x10 str r0, [sp, #0x1c] str r2, [sp] str r1, [sp, #4] str r3, [sp, #0x18] str r1, [sp, #0x20] mvn r6, #0 add r0, sp, #0xa4 _0217ec2c: str r6, [r3] str r6, [r3, #4] add r3, r3, #8 cmp r3, r0 blo _0217ec2c ldr r1, [r4, #8] ldr r0, _0217ecec ; =data_027e0fe4 str r1, [sp, #8] ldr r5, [r4, #0xc] add r3, sp, #8 ldr r0, [r0] add r1, sp, #0 add r2, sp, #0x18 str r5, [sp, #0xc] str r6, [sp, #0x10] str r6, [sp, #0x14] str r3, [sp, #4] bl func_ov00_020c37ec ldr r0, [sp, #0x20] mov r5, #0 cmp r0, #0 ble _0217eccc ldr r8, _0217ecec ; =data_027e0fe4 mov r6, r5 _0217ec8c: ldr r1, [sp, #0x18] ldr r0, [r8] add r1, r1, r6 bl func_ov00_020c3674 mov r1, r0 mov r0, r4 add r1, r1, #0x48 bl func_ov00_020c288c cmp r0, #0x2800 addlt sp, sp, #0xa4 ldmia sp!, {r3, r4, r5, r6, r7, r8, pc} ldr r0, [sp, #0x20] add r5, r5, #1 cmp r5, r0 add r6, r6, #8 blt _0217ec8c _0217eccc: mov r0, r7 mov r1, #1 mov r2, #0 bl func_ov00_020c50d4 add sp, sp, #0xa4 ldmia sp!, {r3, r4, r5, r6, r7, r8, pc} .align 2, 0 arm_func_end func_ov30_0217ebbc _0217ece4: .word data_027e0f94 _0217ece8: .word data_ov30_02188b08 _0217ecec: .word data_027e0fe4 arm_func_start func_ov30_0217ecf0 func_ov30_0217ecf0: ; 0x0217ecf0 stmdb sp!, {r3, r4, r5, lr} bl func_ov00_020c5118 mov r1, #0 mov r5, r0 bl func_ov00_020cb160 mov r4, r0 mov r1, #6 bl func_ov00_020c5d74 ldr r0, [r4, #0x10] mov r1, #0x1000 str r1, [r0, #0x10] mov r0, #0 strb r0, [r5, #0x87e] ldmia sp!, {r3, r4, r5, pc} arm_func_end func_ov30_0217ecf0 arm_func_start func_ov30_0217ed28 func_ov30_0217ed28: ; 0x0217ed28 stmdb sp!, {r3, r4, r5, lr} mov r5, r0 bl func_ov00_020c5118 mov r4, r0 bl func_ov30_02182ea8 mov r0, r4 mov r1, #0 bl func_ov00_020cb160 ldr r0, [r0, #0x10] add r0, r0, #0xc bl func_0202e58c cmp r0, #0 ldmia sp!, {r3, r4, r5, pc} mov r3, #2 add r2, sp, #0 mov r0, r5 mov r1, #7 str r3, [sp] bl func_ov00_020c50d4 ldmia sp!, {r3, r4, r5, pc} arm_func_end func_ov30_0217ed28 arm_func_start func_ov30_0217ed78 func_ov30_0217ed78: ; 0x0217ed78 stmdb sp!, {r3, r4, r5, lr} bl func_ov00_020c5118 mov r1, #0 mov r5, r0 bl func_ov00_020cb160 mov r4, r0 mov r1, #6 bl func_ov00_020c5d74 ldr r1, [r4, #0x10] mov r2, #0x1000 mov r0, r5 str r2, [r1, #0x10] bl func_ov30_02182da8 ldmia sp!, {r3, r4, r5, pc} arm_func_end func_ov30_0217ed78 arm_func_start func_ov30_0217edb0 func_ov30_0217edb0: ; 0x0217edb0 stmdb sp!, {r3, r4, r5, lr} mov r5, r0 bl func_ov00_020c5118 mov r4, r0 bl func_ov30_02182dc0 mov r0, r4 mov r1, #0 bl func_ov00_020cb160 ldr r0, [r0, #0x10] add r0, r0, #0xc bl func_0202e58c cmp r0, #0 ldmia sp!, {r3, r4, r5, pc} mov r3, #2 add r2, sp, #0 mov r0, r5 mov r1, #7 str r3, [sp] bl func_ov00_020c50d4 ldmia sp!, {r3, r4, r5, pc} arm_func_end func_ov30_0217edb0 arm_func_start func_ov30_0217ee00 func_ov30_0217ee00: ; 0x0217ee00 stmdb sp!, {r3, r4, r5, r6, r7, lr} mov r5, r1 mov r6, r0 bl func_ov00_020c5118 mov r4, r0 cmp r5, #0 beq _0217ee30 cmp r5, #1 beq _0217ee5c cmp r5, #2 beq _0217ee88 b _0217eeb0 _0217ee30: mov r1, #0 bl func_ov00_020cb160 mov r7, r0 mov r1, #0 bl func_ov00_020c5d74 ldr r1, [r7, #0x10] mov r2, #0x1000 mov r0, r4 str r2, [r1, #0x10] bl func_ov30_02182da8 b _0217eeb0 _0217ee5c: mov r1, #0 bl func_ov00_020cb160 mov r7, r0 mov r1, #1 bl func_ov00_020c5d74 ldr r1, [r7, #0x10] mov r2, #0x1000 mov r0, r4 str r2, [r1, #0x10] bl func_ov30_02182eb4 b _0217eeb0 _0217ee88: mov r1, #0 bl func_ov00_020cb160 mov r7, r0 mov r1, #5 bl func_ov00_020c5d74 ldr r1, [r7, #0x10] mov r2, #0x1000 mov r0, r4 str r2, [r1, #0x10] bl func_ov30_02182da8 _0217eeb0: mov r0, r6 str r5, [r6, #8] bl func_ov00_020c50fc ldmia sp!, {r3, r4, r5, r6, r7, pc} arm_func_end func_ov30_0217ee00 arm_func_start func_ov30_0217eec0 func_ov30_0217eec0: ; 0x0217eec0 stmdb sp!, {r4, lr} mov r4, r0 bl func_ov00_020c5118 mov r1, #0 strb r1, [r0, #0x87e] mov r0, r4 bl func_ov30_0217ee00 ldmia sp!, {r4, pc} arm_func_end func_ov30_0217eec0 arm_func_start func_ov30_0217eee0 func_ov30_0217eee0: ; 0x0217eee0 stmdb sp!, {r4, r5, lr} sub sp, sp, #0xc mov r4, r0 bl func_ov00_020c5118 ldr r1, [r4, #8] mov r5, r0 cmp r1, #0 beq _0217ef18 cmp r1, #1 beq _0217ef44 cmp r1, #2 beq _0217efc4 add sp, sp, #0xc ldmia sp!, {r4, r5, pc} _0217ef18: bl func_ov30_02182dc0 mov r0, r4 bl func_ov00_020c50f0 cmp r0, #0x14 addle sp, sp, #0xc ldmia sp!, {r4, r5, pc} mov r0, r4 mov r1, #1 bl func_ov30_0217ee00 add sp, sp, #0xc ldmia sp!, {r4, r5, pc} _0217ef44: add r1, sp, #0 bl func_ov30_02183904 cmp r0, #0 bne _0217ef68 mov r0, r4 mov r1, #2 bl func_ov30_0217ee00 add sp, sp, #0xc ldmia sp!, {r4, r5, pc} _0217ef68: add r1, sp, #0 mov r0, r5 mov r2, #2 bl func_ov30_02182ecc mov r0, r5 bl func_ov30_02183818 cmp r0, #0 beq _0217ef9c mov r0, r4 mov r1, #2 bl func_ov30_0217ee00 add sp, sp, #0xc ldmia sp!, {r4, r5, pc} _0217ef9c: mov r0, r5 bl func_ov30_02182efc cmp r0, #0 addeq sp, sp, #0xc ldmia sp!, {r4, r5, pc} mov r0, r4 mov r1, #2 bl func_ov30_0217ee00 add sp, sp, #0xc ldmia sp!, {r4, r5, pc} _0217efc4: bl func_ov30_02182dc0 mov r0, r5 mov r1, #0 bl func_ov00_020cb160 ldr r0, [r0, #0x10] add r0, r0, #0xc bl func_0202e58c cmp r0, #0 addeq sp, sp, #0xc ldmia sp!, {r4, r5, pc} ldr r1, [r5, #4] ldr r0, _0217f080 ; =0x43485336 cmp r1, r0 bne _0217f020 ldrb r0, [r5, #0xab6] cmp r0, #0 beq _0217f020 mov r0, r4 mov r1, #0xf mov r2, #0 bl func_ov00_020c50d4 add sp, sp, #0xc ldmia sp!, {r4, r5, pc} _0217f020: ldr r0, [r5, #0x844] cmp r0, #0 beq _0217f044 mov r0, r4 mov r1, #0x10 mov r2, #0 bl func_ov00_020c50d4 add sp, sp, #0xc ldmia sp!, {r4, r5, pc} _0217f044: ldr r0, _0217f084 ; =data_027e10b4 ldr r0, [r0] bl func_ov30_02183fa0 cmp r0, #0 mov r0, r4 mov r2, #0 beq _0217f070 mov r1, #6 bl func_ov00_020c50d4 add sp, sp, #0xc ldmia sp!, {r4, r5, pc} _0217f070: mov r1, #5 bl func_ov00_020c50d4 add sp, sp, #0xc ldmia sp!, {r4, r5, pc} .align 2, 0 arm_func_end func_ov30_0217eee0 _0217f080: .word 0x43485336 _0217f084: .word data_027e10b4 arm_func_start func_ov30_0217f088 func_ov30_0217f088: ; 0x0217f088 stmdb sp!, {r4, lr} sub sp, sp, #8 mov r2, #0 str r2, [sp] ldr r1, _0217f12c ; =data_027e0e58 mov r4, r0 str r2, [sp, #4] ldr r0, [r1] mov r2, r4 mov r1, #0x67 mov r3, #2 bl func_ov00_0207c1b0 mov r1, #0 str r1, [sp] ldr r0, _0217f12c ; =data_027e0e58 str r1, [sp, #4] ldr r0, [r0] mov r2, r4 mov r1, #0x68 mov r3, #2 bl func_ov00_0207c1b0 mov r1, #0 str r1, [sp] ldr r0, _0217f12c ; =data_027e0e58 str r1, [sp, #4] ldr r0, [r0] mov r2, r4 mov r1, #0x69 mov r3, #2 bl func_ov00_0207c1b0 mov r2, r4 mov r0, #0 str r0, [sp] str r0, [sp, #4] ldr r0, _0217f12c ; =data_027e0e58 mov r1, #0x6a ldr r0, [r0] mov r3, #2 bl func_ov00_0207c1b0 add sp, sp, #8 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov30_0217f088 _0217f12c: .word data_027e0e58 arm_func_start func_ov30_0217f130 func_ov30_0217f130: ; 0x0217f130 stmdb sp!, {r3, r4, r5, r6, r7, lr} mov r6, r1 mov r7, r0 bl func_ov00_020c5118 mov r5, r0 cmp r6, #3 addls pc, pc, r6, lsl #2 b _0217f190 _0217f150: ; jump table b _0217f190 ; case 0 b _0217f160 ; case 1 b _0217f190 ; case 2 b _0217f18c ; case 3 _0217f160: mov r1, #0 bl func_ov00_020cb160 mov r4, r0 mov r1, #0xb bl func_ov00_020c5d74 ldr r1, [r4, #0x10] mov r2, #0x1000 mov r0, r5 str r2, [r1, #0x10] bl func_ov30_02182da8 b _0217f190 _0217f18c: bl func_ov30_02182da8 _0217f190: mov r0, r7 str r6, [r7, #8] bl func_ov00_020c50fc ldmia sp!, {r3, r4, r5, r6, r7, pc} arm_func_end func_ov30_0217f130 arm_func_start func_ov30_0217f1a0 func_ov30_0217f1a0: ; 0x0217f1a0 stmdb sp!, {r4, lr} mov r4, r0 bl func_ov00_020c5118 mov r1, #1 strb r1, [r0, #0xab6] mov r0, r4 mov r1, #0 bl func_ov30_0217f130 ldmia sp!, {r4, pc} arm_func_end func_ov30_0217f1a0 arm_func_start func_ov30_0217f1c4 func_ov30_0217f1c4: ; 0x0217f1c4 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr} sub sp, sp, #0x68 mov r7, r0 bl func_ov00_020c5118 ldr r1, [r7, #8] mov r5, r0 cmp r1, #3 addls pc, pc, r1, lsl #2 b _0217f53c _0217f1e8: ; jump table b _0217f1f8 ; case 0 b _0217f250 ; case 1 b _0217f2f4 ; case 2 b _0217f470 ; case 3 _0217f1f8: ldr r0, _0217f544 ; =data_027e0f74 mov r1, #0x158 ldr r0, [r0] bl func_ov00_02097760 cmp r0, #0 bne _0217f23c ldr r0, _0217f544 ; =data_027e0f74 mov r1, #0x158 ldr r0, [r0] mov r2, #1 bl func_ov00_0209779c mov r0, r7 mov r1, #0xe mov r2, #0 bl func_ov00_020c50d4 add sp, sp, #0x68 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} _0217f23c: mov r0, r7 mov r1, #1 bl func_ov30_0217f130 add sp, sp, #0x68 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} _0217f250: bl func_ov30_02182dc0 mov r0, r5 mov r1, #0 bl func_ov00_020cb160 ldr r0, [r0, #0x10] add r0, r0, #0xc bl func_0202e58c cmp r0, #0 addeq sp, sp, #0x68 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} mov r0, r5 mov r1, #0 bl func_ov30_02183e50 add r0, r5, #0x48 add r3, sp, #0x5c ldmia r0!, {r0, r1, r2} stmia r3!, {r0, r1, r2} ldr r0, _0217f548 ; =data_027e0e60 ldr r2, [sp, #0x5c] ldr r4, [sp, #0x60] ldr r3, [sp, #0x64] str r2, [sp, #0x14] ldr r0, [r0] add r1, sp, #0x14 mov r2, #1 str r4, [sp, #0x18] str r3, [sp, #0x1c] bl func_ov00_02083ee0 str r0, [sp, #0x60] add r0, sp, #0x5c bl func_ov30_0217f088 ldr r0, _0217f54c ; =data_027e0ffc add r2, r5, #0x48 mov r1, #0x51 mov r3, #0 bl func_ov00_020ceacc mov r0, r7 mov r1, #2 bl func_ov30_0217f130 add sp, sp, #0x68 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} _0217f2f4: mov r0, r7 bl func_ov00_020c50f0 cmp r0, #0xa addle sp, sp, #0x68 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} ldr r3, _0217f550 ; =data_ov00_020e8398 mvn r2, #0 mov r6, #1 mov r1, #0 ldr r0, _0217f554 ; =data_027e0ff0 str r3, [sp, #0x30] strb r2, [sp, #0x34] strb r6, [sp, #0x35] strb r1, [sp, #0x36] strb r1, [sp, #0x37] strb r6, [sp, #0x4c] strb r2, [sp, #0x20] strb r2, [sp, #0x21] strb r2, [sp, #0x22] strb r2, [sp, #0x23] ldrsb r4, [r5, #0x2c] ldr r0, [r0] ldr r1, _0217f558 ; =data_027e0f94 add r2, sp, #0x30 add r3, sp, #0x20 strb r4, [sp, #0x34] strb r6, [sp, #0x36] bl func_ov00_020c4ae8 cmp r0, #0 beq _0217f3b8 ldr r0, _0217f554 ; =data_027e0ff0 add r1, sp, #0x20 ldr r0, [r0] bl func_ov00_020c47cc ldr r6, [r0, #4] ldr r2, _0217f548 ; =data_027e0e60 str r6, [sp, #0x50] ldr r4, [r0, #8] add r1, sp, #8 str r4, [sp, #0x54] ldr r3, [r0, #0xc] ldr r0, [r2] mov r2, #0 str r3, [sp, #0x58] str r6, [sp, #8] str r4, [sp, #0xc] str r3, [sp, #0x10] bl func_ov00_02083ee0 str r0, [sp, #0x54] _0217f3b8: ldr r0, _0217f55c ; =data_027e10b4 mov r6, #0 ldr r0, [r0] bl func_ov30_021840e4 cmp r0, #0 ble _0217f43c ldr sb, _0217f55c ; =data_027e10b4 ldr r8, _0217f560 ; =data_027e0fe4 add sl, sp, #0x50 add r4, sp, #0 _0217f3e0: ldr r0, [sb] mov r1, r6 bl func_ov30_021840ec ldr r2, [r0] mov r1, r4 str r2, [sp] ldr r2, [r0, #4] ldr r0, [r8] str r2, [sp, #4] bl func_ov00_020c3674 movs r1, r0 beq _0217f428 mov r0, sl add r1, r1, #0x48 bl func_ov00_020ce2f0 cmp r0, #0x2000 addlt sp, sp, #0x68 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} _0217f428: ldr r0, [sb] add r6, r6, #1 bl func_ov30_021840e4 cmp r6, r0 blt _0217f3e0 _0217f43c: ldr r1, [sp, #0x50] mov r0, r7 str r1, [r5, #0x48] ldr r1, [sp, #0x54] mov r2, #0 str r1, [r5, #0x4c] ldr r3, [sp, #0x58] mov r1, #3 str r3, [r5, #0x50] strh r2, [r5, #0x78] bl func_ov30_0217f130 add sp, sp, #0x68 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} _0217f470: bl func_ov30_02182dc0 mov r0, r7 bl func_ov00_020c50f0 cmp r0, #1 bne _0217f4a8 add r0, r5, #0x48 bl func_ov30_0217d9ac ldr r0, _0217f54c ; =data_027e0ffc add r2, r5, #0x48 mov r1, #0x4f mov r3, #0 bl func_ov00_020ceacc add sp, sp, #0x68 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} _0217f4a8: cmp r0, #0x33 bne _0217f4f8 mov r0, r5 mov r1, #1 bl func_ov30_02183e50 mov r0, r5 mov r1, #0 bl func_ov00_020cb160 mov r4, r0 mov r1, #8 bl func_ov00_020c5d74 ldr r1, [r4, #0x10] mov r2, #0x1000 str r2, [r1, #0x10] ldr r0, _0217f55c ; =data_027e10b4 add r1, r5, #0x48 ldr r0, [r0] bl func_ov30_021840b0 add sp, sp, #0x68 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} _0217f4f8: addle sp, sp, #0x68 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} mov r0, r5 mov r1, #0 bl func_ov00_020cb160 ldr r0, [r0, #0x10] add r0, r0, #0xc bl func_0202e58c cmp r0, #0 addeq sp, sp, #0x68 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} mov r0, r5 bl func_ov30_02183e90 mov r0, r7 mov r1, #6 mov r2, #0 bl func_ov00_020c50d4 _0217f53c: add sp, sp, #0x68 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} .align 2, 0 arm_func_end func_ov30_0217f1c4 _0217f544: .word data_027e0f74 _0217f548: .word data_027e0e60 _0217f54c: .word data_027e0ffc _0217f550: .word data_ov00_020e8398 _0217f554: .word data_027e0ff0 _0217f558: .word data_027e0f94 _0217f55c: .word data_027e10b4 _0217f560: .word data_027e0fe4 arm_func_start func_ov30_0217f564 func_ov30_0217f564: ; 0x0217f564 stmdb sp!, {r4, r5, r6, r7, r8, sb, lr} sub sp, sp, #0x54 mov r8, r1 mov sb, r0 bl func_ov00_020c5118 mov r4, r0 cmp r8, #7 addls pc, pc, r8, lsl #2 b _0217f730 _0217f588: ; jump table b _0217f5a8 ; case 0 b _0217f5cc ; case 1 b _0217f5d4 ; case 2 b _0217f730 ; case 3 b _0217f5f8 ; case 4 b _0217f71c ; case 5 b _0217f724 ; case 6 b _0217f72c ; case 7 _0217f5a8: mov r1, #0 bl func_ov00_020cb160 mov r4, r0 mov r1, #0 bl func_ov00_020c5d74 ldr r0, [r4, #0x10] mov r1, #0x1000 str r1, [r0, #0x10] b _0217f730 _0217f5cc: bl func_ov30_02182da8 b _0217f730 _0217f5d4: mov r1, #0 bl func_ov00_020cb160 mov r4, r0 mov r1, #0xb bl func_ov00_020c5d74 ldr r0, [r4, #0x10] mov r1, #0x1000 str r1, [r0, #0x10] b _0217f730 _0217f5f8: ldr r3, _0217f744 ; =data_ov00_020e8398 mvn r2, #0 mov ip, #1 mov r1, #0 ldr r0, _0217f748 ; =data_027e0ff0 str r3, [sp, #0x34] strb r2, [sp, #0x38] strb ip, [sp, #0x39] strb r1, [sp, #0x3a] strb r1, [sp, #0x3b] strb ip, [sp, #0x50] strb r2, [sp, #0x24] strb r2, [sp, #0x25] strb r2, [sp, #0x26] strb r2, [sp, #0x27] ldrsb lr, [r4, #0x2c] ldr r0, [r0] ldr r1, _0217f74c ; =data_027e0f94 add r2, sp, #0x34 add r3, sp, #0x24 strb lr, [sp, #0x38] strb ip, [sp, #0x3a] bl func_ov00_020c4ae8 cmp r0, #0 beq _0217f69c ldr r0, _0217f748 ; =data_027e0ff0 add r1, sp, #0x24 ldr r0, [r0] bl func_ov00_020c47cc ldr r1, _0217f750 ; =data_027e0e60 ldr r5, [r0, #4] ldr r3, [r0, #8] ldr r7, [r0, #0xc] ldr r0, [r1] add r1, sp, #0x18 mov r2, #0 str r5, [sp, #0x18] str r3, [sp, #0x1c] str r7, [sp, #0x20] bl func_ov00_02083ee0 mov r6, r0 _0217f69c: str r5, [r4, #0x48] str r6, [r4, #0x4c] mov r0, r4 str r7, [r4, #0x50] mov r1, #0 strh r1, [r4, #0x78] bl func_ov00_020cb160 mov r5, r0 mov r1, #0 bl func_ov00_020c5d74 ldr r0, [r5, #0x10] mov r1, #0x1000 str r1, [r0, #0x10] ldr r0, [r4, #0x48] mov r2, #0 str r0, [sp, #0xc] ldr r0, [r4, #0x4c] mov r1, #0x3c str r0, [sp, #0x10] ldr r3, [r4, #0x50] mov r0, #1 str r3, [sp, #0x14] str r2, [sp] str r0, [sp, #4] str r2, [sp, #8] ldr r0, _0217f754 ; =data_027e0f64 add r2, sp, #0xc ldr r0, [r0] sub r3, r1, #0x3d ldr r0, [r0, #4] bl func_ov00_020884b4 b _0217f730 _0217f71c: bl func_ov30_02182da8 b _0217f730 _0217f724: bl func_ov00_020cc960 b _0217f730 _0217f72c: bl func_ov30_02182da8 _0217f730: mov r0, sb str r8, [sb, #8] bl func_ov00_020c50fc add sp, sp, #0x54 ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} .align 2, 0 arm_func_end func_ov30_0217f564 _0217f744: .word data_ov00_020e8398 _0217f748: .word data_027e0ff0 _0217f74c: .word data_027e0f94 _0217f750: .word data_027e0e60 _0217f754: .word data_027e0f64 arm_func_start func_ov30_0217f758 func_ov30_0217f758: ; 0x0217f758 stmdb sp!, {r4, lr} mov r4, r0 bl func_ov00_020c5118 mov r1, #1 strb r1, [r0, #0xab6] mov r0, r4 mov r1, #0 bl func_ov30_0217f564 ldmia sp!, {r4, pc} arm_func_end func_ov30_0217f758 arm_func_start func_ov30_0217f77c func_ov30_0217f77c: ; 0x0217f77c stmdb sp!, {r3, r4, r5, lr} sub sp, sp, #0xc8 mov r5, r0 bl func_ov00_020c5118 ldr r1, [r5, #8] mov r4, r0 cmp r1, #7 addls pc, pc, r1, lsl #2 b _0217fa98 _0217f7a0: ; jump table b _0217f7c0 ; case 0 b _0217f850 ; case 1 b _0217f880 ; case 2 b _0217f924 ; case 3 b _0217f94c ; case 4 b _0217f974 ; case 5 b _0217fa44 ; case 6 b _0217fa68 ; case 7 _0217f7c0: bl func_ov00_020cc928 cmp r0, #0 mov r0, r4 bne _0217f82c bl func_ov00_020cc8dc cmp r0, #0 addeq sp, sp, #0xc8 ldmia sp!, {r3, r4, r5, pc} add r0, sp, #0x18 bl func_ov00_0209a4f4 mvn r1, #0 mov r0, #0x64 str r1, [sp, #0x1c] strb r0, [sp, #0x21] ldr r0, [r4, #0x48] add r1, sp, #0x18 str r0, [sp, #0x38] ldr r2, [r4, #0x4c] mov r0, r4 str r2, [sp, #0x3c] ldr r2, [r4, #0x50] str r2, [sp, #0x40] bl func_ov00_020cc908 add r0, sp, #0x18 bl func_ov00_0209a508 add sp, sp, #0xc8 ldmia sp!, {r3, r4, r5, pc} _0217f82c: bl func_ov00_020cc940 cmp r0, #0 addeq sp, sp, #0xc8 ldmia sp!, {r3, r4, r5, pc} mov r0, r5 mov r1, #1 bl func_ov30_0217f564 add sp, sp, #0xc8 ldmia sp!, {r3, r4, r5, pc} _0217f850: mov r1, #0 bl func_ov30_02182e34 mov r0, r5 bl func_ov00_020c50f0 cmp r0, #0x3c addle sp, sp, #0xc8 ldmia sp!, {r3, r4, r5, pc} mov r0, r5 mov r1, #2 bl func_ov30_0217f564 add sp, sp, #0xc8 ldmia sp!, {r3, r4, r5, pc} _0217f880: bl func_ov30_02182dc0 mov r0, r4 mov r1, #0 bl func_ov00_020cb160 ldr r0, [r0, #0x10] add r0, r0, #0xc bl func_0202e58c cmp r0, #0 addeq sp, sp, #0xc8 ldmia sp!, {r3, r4, r5, pc} mov r0, r4 mov r1, #0 bl func_ov30_02183e50 add r0, r4, #0x48 add r3, sp, #0xc ldmia r0!, {r0, r1, r2} stmia r3!, {r0, r1, r2} ldr r0, _0217faa0 ; =data_027e0e60 ldr r2, [sp, #0xc] ldr ip, [sp, #0x10] ldr r3, [sp, #0x14] str r2, [sp] ldr r0, [r0] add r1, sp, #0 mov r2, #1 str ip, [sp, #4] str r3, [sp, #8] bl func_ov00_02083ee0 str r0, [sp, #0x10] add r0, sp, #0xc bl func_ov30_0217f088 ldr r0, _0217faa4 ; =data_027e0ffc add r2, r4, #0x48 mov r1, #0x51 mov r3, #0 bl func_ov00_020ceacc mov r0, r5 mov r1, #3 bl func_ov30_0217f564 add sp, sp, #0xc8 ldmia sp!, {r3, r4, r5, pc} _0217f924: mov r0, r5 bl func_ov00_020c50f0 cmp r0, #0x1e addle sp, sp, #0xc8 ldmia sp!, {r3, r4, r5, pc} mov r0, r5 mov r1, #4 bl func_ov30_0217f564 add sp, sp, #0xc8 ldmia sp!, {r3, r4, r5, pc} _0217f94c: mov r0, r5 bl func_ov00_020c50f0 cmp r0, #0x46 addle sp, sp, #0xc8 ldmia sp!, {r3, r4, r5, pc} mov r0, r5 mov r1, #5 bl func_ov30_0217f564 add sp, sp, #0xc8 ldmia sp!, {r3, r4, r5, pc} _0217f974: bl func_ov30_02182dc0 mov r0, r5 bl func_ov00_020c50f0 cmp r0, #1 bne _0217f9ac add r0, r4, #0x48 bl func_ov30_0217d9ac ldr r0, _0217faa4 ; =data_027e0ffc add r2, r4, #0x48 mov r1, #0x4f mov r3, #0 bl func_ov00_020ceacc add sp, sp, #0xc8 ldmia sp!, {r3, r4, r5, pc} _0217f9ac: cmp r0, #0x33 bne _0217f9fc mov r0, r4 mov r1, #1 bl func_ov30_02183e50 mov r0, r4 mov r1, #0 bl func_ov00_020cb160 mov r5, r0 mov r1, #8 bl func_ov00_020c5d74 ldr r1, [r5, #0x10] mov r2, #0x1000 str r2, [r1, #0x10] ldr r0, _0217faa8 ; =data_027e10b4 add r1, r4, #0x48 ldr r0, [r0] bl func_ov30_021840b0 add sp, sp, #0xc8 ldmia sp!, {r3, r4, r5, pc} _0217f9fc: addle sp, sp, #0xc8 ldmia sp!, {r3, r4, r5, pc} mov r0, r4 mov r1, #0 bl func_ov00_020cb160 ldr r0, [r0, #0x10] add r0, r0, #0xc bl func_0202e58c cmp r0, #0 addeq sp, sp, #0xc8 ldmia sp!, {r3, r4, r5, pc} mov r0, r4 bl func_ov30_02183e90 mov r0, r5 mov r1, #6 bl func_ov30_0217f564 add sp, sp, #0xc8 ldmia sp!, {r3, r4, r5, pc} _0217fa44: bl func_ov00_020cc980 cmp r0, #0 addeq sp, sp, #0xc8 ldmia sp!, {r3, r4, r5, pc} mov r0, r5 mov r1, #7 bl func_ov30_0217f564 add sp, sp, #0xc8 ldmia sp!, {r3, r4, r5, pc} _0217fa68: bl func_ov30_02182dd4 mov r0, r5 bl func_ov00_020c50f0 cmp r0, #0 addle sp, sp, #0xc8 ldmia sp!, {r3, r4, r5, pc} mov r0, r4 bl func_ov30_02183e90 mov r0, r5 mov r1, #6 mov r2, #0 bl func_ov00_020c50d4 _0217fa98: add sp, sp, #0xc8 ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov30_0217f77c _0217faa0: .word data_027e0e60 _0217faa4: .word data_027e0ffc _0217faa8: .word data_027e10b4 arm_func_start func_ov30_0217faac func_ov30_0217faac: ; 0x0217faac stmdb sp!, {r3, r4, r5, r6, r7, lr} mov r5, r1 mov r6, r0 bl func_ov00_020c5118 mov r4, r0 cmp r5, #0 beq _0217fadc cmp r5, #1 beq _0217fb08 cmp r5, #2 beq _0217fb48 b _0217fb4c _0217fadc: mov r1, #0 bl func_ov00_020cb160 mov r7, r0 mov r1, #0xb bl func_ov00_020c5d74 ldr r1, [r7, #0x10] mov r2, #0x1000 mov r0, r4 str r2, [r1, #0x10] bl func_ov30_02182da8 b _0217fb4c _0217fb08: ldr r2, [r4, #0x14] mov r1, #0 str r2, [r4, #0x48] ldr r2, [r4, #0x18] str r2, [r4, #0x4c] ldr r2, [r4, #0x1c] str r2, [r4, #0x50] strh r1, [r4, #0x78] bl func_ov00_020cb160 mov r4, r0 mov r1, #0 bl func_ov00_020c5d74 ldr r0, [r4, #0x10] mov r1, #0x1000 str r1, [r0, #0x10] b _0217fb4c _0217fb48: bl func_ov30_02182da8 _0217fb4c: mov r0, r6 str r5, [r6, #8] bl func_ov00_020c50fc ldmia sp!, {r3, r4, r5, r6, r7, pc} arm_func_end func_ov30_0217faac arm_func_start func_ov30_0217fb5c func_ov30_0217fb5c: ; 0x0217fb5c stmdb sp!, {r4, lr} mov r4, r0 bl func_ov00_020c5118 mov r1, #0 strb r1, [r0, #0xab6] mov r0, r4 bl func_ov30_0217faac ldmia sp!, {r4, pc} arm_func_end func_ov30_0217fb5c arm_func_start func_ov30_0217fb7c func_ov30_0217fb7c: ; 0x0217fb7c stmdb sp!, {r3, r4, r5, lr} sub sp, sp, #0x18 mov r5, r0 bl func_ov00_020c5118 ldr r1, [r5, #8] mov r4, r0 cmp r1, #0 beq _0217fbb4 cmp r1, #1 beq _0217fc58 cmp r1, #2 beq _0217fc80 add sp, sp, #0x18 ldmia sp!, {r3, r4, r5, pc} _0217fbb4: bl func_ov30_02182dc0 mov r0, r4 mov r1, #0 bl func_ov00_020cb160 ldr r0, [r0, #0x10] add r0, r0, #0xc bl func_0202e58c cmp r0, #0 addeq sp, sp, #0x18 ldmia sp!, {r3, r4, r5, pc} mov r0, r4 mov r1, #0 bl func_ov30_02183e50 add r0, r4, #0x48 add r3, sp, #0xc ldmia r0!, {r0, r1, r2} stmia r3!, {r0, r1, r2} ldr r0, _0217fd3c ; =data_027e0e60 ldr r2, [sp, #0xc] ldr ip, [sp, #0x10] ldr r3, [sp, #0x14] str r2, [sp] ldr r0, [r0] add r1, sp, #0 mov r2, #1 str ip, [sp, #4] str r3, [sp, #8] bl func_ov00_02083ee0 str r0, [sp, #0x10] add r0, sp, #0xc bl func_ov30_0217f088 ldr r0, _0217fd40 ; =data_027e0ffc add r2, r4, #0x48 mov r1, #0x51 mov r3, #0 bl func_ov00_020ceacc mov r0, r5 mov r1, #1 bl func_ov30_0217faac add sp, sp, #0x18 ldmia sp!, {r3, r4, r5, pc} _0217fc58: mov r0, r5 bl func_ov00_020c50f0 cmp r0, #0 addle sp, sp, #0x18 ldmia sp!, {r3, r4, r5, pc} mov r0, r5 mov r1, #2 bl func_ov30_0217faac add sp, sp, #0x18 ldmia sp!, {r3, r4, r5, pc} _0217fc80: bl func_ov30_02182dc0 mov r0, r5 bl func_ov00_020c50f0 cmp r0, #1 bne _0217fcb8 add r0, r4, #0x48 bl func_ov30_0217d9ac ldr r0, _0217fd40 ; =data_027e0ffc add r2, r4, #0x48 mov r1, #0x4f mov r3, #0 bl func_ov00_020ceacc add sp, sp, #0x18 ldmia sp!, {r3, r4, r5, pc} _0217fcb8: cmp r0, #0x33 bne _0217fcf8 mov r0, r4 mov r1, #1 bl func_ov30_02183e50 mov r0, r4 mov r1, #0 bl func_ov00_020cb160 mov r4, r0 mov r1, #8 bl func_ov00_020c5d74 ldr r0, [r4, #0x10] mov r1, #0x1000 str r1, [r0, #0x10] add sp, sp, #0x18 ldmia sp!, {r3, r4, r5, pc} _0217fcf8: addle sp, sp, #0x18 ldmia sp!, {r3, r4, r5, pc} mov r0, r4 mov r1, #0 bl func_ov00_020cb160 ldr r0, [r0, #0x10] add r0, r0, #0xc bl func_0202e58c cmp r0, #0 addeq sp, sp, #0x18 ldmia sp!, {r3, r4, r5, pc} mov r0, r5 mov r1, #3 mov r2, #0 bl func_ov00_020c50d4 add sp, sp, #0x18 ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov30_0217fb7c _0217fd3c: .word data_027e0e60 _0217fd40: .word data_027e0ffc arm_func_start func_ov30_0217fd44 func_ov30_0217fd44: ; 0x0217fd44 stmdb sp!, {r3, lr} bl func_ov00_020c510c cmp r0, #0x3c movgt r0, #1 movle r0, #0 ldmia sp!, {r3, pc} arm_func_end func_ov30_0217fd44 arm_func_start func_ov30_0217fd5c func_ov30_0217fd5c: ; 0x0217fd5c stmdb sp!, {r3, r4, r5, r6, r7, r8, lr} sub sp, sp, #4 mov r6, r0 mov r5, r1 bl func_ov00_020c5118 mov r4, r0 cmp r5, #3 add r7, r4, #0xa8 addls pc, pc, r5, lsl #2 b _0217fe14 _0217fd84: ; jump table b _0217fd94 ; case 0 b _0217fddc ; case 1 b _0217fde4 ; case 2 b _0217fdec ; case 3 _0217fd94: mov r1, #0 bl func_ov00_020cb160 mov r8, r0 mov r1, #1 bl func_ov00_020c5d74 ldr r1, [r8, #0x10] mov r2, #0x1000 mov r0, r4 str r2, [r1, #0x10] bl func_ov30_02182eb4 add r0, r7, #0x800 add r1, r6, #0xc str r1, [sp] add r1, r4, #0x48 ldr r2, [r4, #0x98] ldrh r3, [r4, #0x9c] bl func_ov30_0217c020 b _0217fe14 _0217fddc: bl func_ov30_02182eb4 b _0217fe14 _0217fde4: bl func_ov30_02182da8 b _0217fe14 _0217fdec: mov r1, #0 bl func_ov00_020cb160 mov r7, r0 mov r1, #2 bl func_ov00_020c5d74 ldr r1, [r7, #0x10] mov r2, #0x1000 mov r0, r4 str r2, [r1, #0x10] bl func_ov30_02182da8 _0217fe14: mov r0, r6 str r5, [r6, #8] bl func_ov00_020c50fc add sp, sp, #4 ldmia sp!, {r3, r4, r5, r6, r7, r8, pc} arm_func_end func_ov30_0217fd5c arm_func_start func_ov30_0217fe28 func_ov30_0217fe28: ; 0x0217fe28 stmdb sp!, {r4, lr} mov r4, r0 bl func_ov00_020c5118 mov r0, r4 mov r1, #0 bl func_ov30_0217fd5c ldmia sp!, {r4, pc} arm_func_end func_ov30_0217fe28 arm_func_start func_ov30_0217fe44 func_ov30_0217fe44: ; 0x0217fe44 stmdb sp!, {r3, r4, r5, r6, lr} sub sp, sp, #0xc mov r6, r0 bl func_ov00_020c5118 ldr r1, [r6, #8] mov r5, r0 cmp r1, #3 add r4, r5, #0xa8 beq _0217fe88 bl func_ov30_021824cc cmp r0, #0 beq _0217fe88 mov r0, r6 mov r1, #3 bl func_ov30_0217fd5c add sp, sp, #0xc ldmia sp!, {r3, r4, r5, r6, pc} _0217fe88: ldr r0, [r6, #8] cmp r0, #3 addls pc, pc, r0, lsl #2 b _0218009c _0217fe98: ; jump table b _0217fea8 ; case 0 b _0217ffa4 ; case 1 b _02180028 ; case 2 b _02180064 ; case 3 _0217fea8: mov r0, r5 add r1, r6, #0xc mov r2, #2 bl func_ov30_02182ecc mov r0, r5 add r1, r6, #0xc bl func_ov30_02182c68 cmp r0, #0 bne _0217fef8 mov r0, r6 bl func_ov00_020c510c ldr r3, _021800a4 ; =0x88888889 mov r1, r0, lsr #0x1f smull r2, ip, r3, r0 add ip, r0, ip add ip, r1, ip, asr #4 mov r3, #0x1e smull r1, r2, r3, ip subs ip, r0, r1 bne _0217ff38 _0217fef8: mov r0, r5 bl func_ov30_02182c58 cmp r0, #0 bne _0217ff1c mov r0, r6 mov r1, #1 bl func_ov30_0217fd5c add sp, sp, #0xc ldmia sp!, {r3, r4, r5, r6, pc} _0217ff1c: add r0, r6, #0xc str r0, [sp] ldrh r3, [r5, #0x9c] ldr r2, [r5, #0x98] add r0, r4, #0x800 add r1, r5, #0x48 bl func_ov30_0217c020 _0217ff38: mov r0, r5 mov r1, #2 mov r2, #0 bl func_ov30_0217d09c cmp r0, #0 beq _0217ff80 mov r0, r6 bl func_ov00_020c510c cmp r0, #0xf blt _0217ff80 mov r3, #0 add r2, sp, #8 mov r0, r6 mov r1, #7 str r3, [sp, #8] bl func_ov00_020c50d4 add sp, sp, #0xc ldmia sp!, {r3, r4, r5, r6, pc} _0217ff80: ldr r0, [r4, #0xa00] cmp r0, #1 addgt sp, sp, #0xc ldmia sp!, {r3, r4, r5, r6, pc} mov r0, r6 mov r1, #1 bl func_ov30_0217fd5c add sp, sp, #0xc ldmia sp!, {r3, r4, r5, r6, pc} _0217ffa4: mov r0, r5 add r1, r5, #0x14 mov r2, #2 bl func_ov30_02182ecc mov r0, r5 mov r1, #2 mov r2, #0 bl func_ov30_0217d09c cmp r0, #0 beq _0217fffc mov r0, r6 bl func_ov00_020c510c cmp r0, #0xf blt _0217fffc mov r3, #0 add r2, sp, #4 mov r0, r6 mov r1, #7 str r3, [sp, #4] bl func_ov00_020c50d4 add sp, sp, #0xc ldmia sp!, {r3, r4, r5, r6, pc} _0217fffc: mov r0, r5 add r1, r5, #0x14 bl func_ov30_02182c68 cmp r0, #0 addeq sp, sp, #0xc ldmia sp!, {r3, r4, r5, r6, pc} mov r0, r6 mov r1, #2 bl func_ov30_0217fd5c add sp, sp, #0xc ldmia sp!, {r3, r4, r5, r6, pc} _02180028: ldrsh r1, [r5, #0x12] mov r0, r5 bl func_ov30_02182e34 ldrsh r1, [r5, #0x78] ldrsh r0, [r5, #0x12] cmp r1, r0 addne sp, sp, #0xc ldmia sp!, {r3, r4, r5, r6, pc} mov r2, #0 mov r0, r6 mov r1, #4 str r2, [r4, #0xa00] bl func_ov00_020c50d4 add sp, sp, #0xc ldmia sp!, {r3, r4, r5, r6, pc} _02180064: mov r0, r5 bl func_ov30_02182dc0 mov r0, r5 mov r1, #0 bl func_ov00_020cb160 ldr r0, [r0, #0x10] add r0, r0, #0xc bl func_0202e58c cmp r0, #0 addeq sp, sp, #0xc ldmia sp!, {r3, r4, r5, r6, pc} mov r0, r6 mov r1, #0 bl func_ov30_0217fd5c _0218009c: add sp, sp, #0xc ldmia sp!, {r3, r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov30_0217fe44 _021800a4: .word 0x88888889 arm_func_start func_ov30_021800a8 func_ov30_021800a8: ; 0x021800a8 stmdb sp!, {r3, r4, r5, r6, r7, lr} mov r5, r1 mov r6, r0 bl func_ov00_020c5118 mov r4, r0 cmp r5, #6 addls pc, pc, r5, lsl #2 b _021801dc _021800c8: ; jump table b _021801dc ; case 0 b _021800e4 ; case 1 b _02180108 ; case 2 b _02180134 ; case 3 b _02180158 ; case 4 b _02180198 ; case 5 b _021801bc ; case 6 _021800e4: mov r1, #0 bl func_ov00_020cb160 mov r4, r0 mov r1, #0 bl func_ov00_020c5d74 ldr r0, [r4, #0x10] mov r1, #0x1000 str r1, [r0, #0x10] b _021801dc _02180108: mov r1, #0 bl func_ov00_020cb160 mov r7, r0 mov r1, #1 bl func_ov00_020c5d74 ldr r1, [r7, #0x10] mov r2, #0x1000 mov r0, r4 str r2, [r1, #0x10] bl func_ov30_02182eb4 b _021801dc _02180134: mov r1, #0 bl func_ov00_020cb160 mov r4, r0 mov r1, #0xa bl func_ov00_020c5d74 ldr r0, [r4, #0x10] mov r1, #0x1000 str r1, [r0, #0x10] b _021801dc _02180158: mov r1, #0 bl func_ov00_020cb160 mov r7, r0 mov r1, #1 bl func_ov00_020c5d74 ldr r1, [r7, #0x10] mov r2, #0x1000 mov r0, r4 str r2, [r1, #0x10] bl func_ov30_02182eb4 mov r0, r4 bl func_ov00_020c29d8 ldrsh r0, [r4, #0x78] sub r0, r0, #0x8000 strh r0, [r4, #0x78] b _021801dc _02180198: mov r1, #0 bl func_ov00_020cb160 mov r4, r0 mov r1, #5 bl func_ov00_020c5d74 ldr r0, [r4, #0x10] mov r1, #0x1000 str r1, [r0, #0x10] b _021801dc _021801bc: mov r1, #0 bl func_ov00_020cb160 mov r4, r0 mov r1, #0 bl func_ov00_020c5d74 ldr r0, [r4, #0x10] mov r1, #0x1000 str r1, [r0, #0x10] _021801dc: mov r0, r6 str r5, [r6, #8] bl func_ov00_020c50fc ldmia sp!, {r3, r4, r5, r6, r7, pc} arm_func_end func_ov30_021800a8 arm_func_start func_ov30_021801ec func_ov30_021801ec: ; 0x021801ec stmdb sp!, {r4, lr} mov r4, r0 bl func_ov00_020c5118 mov r0, r4 mov r1, #0 bl func_ov30_021800a8 ldmia sp!, {r4, pc} arm_func_end func_ov30_021801ec arm_func_start func_ov30_02180208 func_ov30_02180208: ; 0x02180208 stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #0x18 mov r5, r0 bl func_ov00_020c5118 ldr r1, [r5, #8] mov r4, r0 cmp r1, #6 addls pc, pc, r1, lsl #2 b _021803f4 _0218022c: ; jump table b _02180248 ; case 0 b _0218027c ; case 1 b _021802c8 ; case 2 b _021802fc ; case 3 b _02180330 ; case 4 b _021803c8 ; case 5 b _021803f4 ; case 6 _02180248: mov r1, #0 bl func_ov00_020cb160 ldr r0, [r0, #0x10] add r0, r0, #0xc bl func_0202e58c cmp r0, #0 addeq sp, sp, #0x18 ldmia sp!, {r4, r5, r6, pc} mov r0, r5 mov r1, #1 bl func_ov30_021800a8 add sp, sp, #0x18 ldmia sp!, {r4, r5, r6, pc} _0218027c: mov r0, r5 bl func_ov00_020c50f0 cmp r0, #0x28 addle sp, sp, #0x18 ldmia sp!, {r4, r5, r6, pc} mov r0, r4 mov r1, #0 bl func_ov00_020cb160 ldr r0, [r0, #0x10] add r0, r0, #0xc bl func_0202e58c cmp r0, #0 addeq sp, sp, #0x18 ldmia sp!, {r4, r5, r6, pc} mov r0, r5 mov r1, #2 bl func_ov30_021800a8 add sp, sp, #0x18 ldmia sp!, {r4, r5, r6, pc} _021802c8: ldr r1, _021803fc ; =data_027e0f94 mov r2, #1 bl func_ov30_02182ecc mov r0, r4 bl func_ov00_020c28ec cmp r0, #0x1800 addge sp, sp, #0x18 ldmia sp!, {r4, r5, r6, pc} mov r0, r5 mov r1, #3 bl func_ov30_021800a8 add sp, sp, #0x18 ldmia sp!, {r4, r5, r6, pc} _021802fc: mov r1, #0 bl func_ov00_020cb160 ldr r0, [r0, #0x10] add r0, r0, #0xc bl func_0202e58c cmp r0, #0 addeq sp, sp, #0x18 ldmia sp!, {r4, r5, r6, pc} mov r0, r5 mov r1, #4 bl func_ov30_021800a8 add sp, sp, #0x18 ldmia sp!, {r4, r5, r6, pc} _02180330: bl func_ov00_020c2974 sub r0, r0, #0x8000 mov r0, r0, lsl #0x10 mov r0, r0, asr #0x10 mov r0, r0, lsl #0x10 mov r0, r0, lsr #0x10 mov r0, r0, asr #0x4 mov r2, r0, lsl #0x1 add r0, r2, #1 mov lr, #0 ldr r1, _02180400 ; =data_02050f54 mov r2, r2, lsl #0x1 ldrsh r6, [r1, r2] mov r0, r0, lsl #0x1 ldrsh ip, [r1, r0] add r1, sp, #0 add r3, sp, #0xc add r2, r4, #0x48 mov r0, #0x1000 str r6, [sp] str lr, [sp, #4] str ip, [sp, #8] bl func_01ff9e64 add r1, sp, #0xc mov r0, r4 mov r2, #0 bl func_ov30_02182ecc ldr r1, _02180404 ; =0x0000019a mov r0, r4 bl func_ov00_020c29ec cmp r0, #0 addeq sp, sp, #0x18 ldmia sp!, {r4, r5, r6, pc} mov r0, r5 mov r1, #5 bl func_ov30_021800a8 add sp, sp, #0x18 ldmia sp!, {r4, r5, r6, pc} _021803c8: mov r1, #0 bl func_ov00_020cb160 ldr r0, [r0, #0x10] add r0, r0, #0xc bl func_0202e58c cmp r0, #0 addeq sp, sp, #0x18 ldmia sp!, {r4, r5, r6, pc} mov r0, r5 mov r1, #6 bl func_ov30_021800a8 _021803f4: add sp, sp, #0x18 ldmia sp!, {r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov30_02180208 _021803fc: .word data_027e0f94 _02180400: .word data_02050f54 _02180404: .word 0x0000019a arm_func_start func_ov30_02180408 func_ov30_02180408: ; 0x02180408 stmdb sp!, {r4, r5, r6, lr} mov r5, r1 mov r6, r0 bl func_ov00_020c5118 cmp r5, #0 beq _0218042c cmp r5, #1 beq _02180450 b _02180458 _0218042c: mov r1, #0 bl func_ov00_020cb160 mov r4, r0 mov r1, #0xc bl func_ov00_020c5d74 ldr r0, [r4, #0x10] mov r1, #0x1000 str r1, [r0, #0x10] b _02180458 _02180450: add r0, r0, #0x430 bl func_ov30_0217cb60 _02180458: mov r0, r6 str r5, [r6, #8] bl func_ov00_020c50fc ldmia sp!, {r4, r5, r6, pc} arm_func_end func_ov30_02180408 arm_func_start func_ov30_02180468 func_ov30_02180468: ; 0x02180468 stmdb sp!, {r4, lr} mov r4, r0 bl func_ov00_020c5118 mov r0, r4 mov r1, #0 bl func_ov30_02180408 ldmia sp!, {r4, pc} arm_func_end func_ov30_02180468 arm_func_start func_ov30_02180484 func_ov30_02180484: ; 0x02180484 stmdb sp!, {r4, r5, lr} sub sp, sp, #0xc mov r5, r0 bl func_ov00_020c5118 ldr r1, [r5, #8] mov r4, r0 cmp r1, #0 beq _021804b4 cmp r1, #1 beq _021804f4 add sp, sp, #0xc ldmia sp!, {r4, r5, pc} _021804b4: mov r1, #0 bl func_ov00_020cb160 ldr r0, [r0, #0x10] add r0, r0, #0xc bl func_0202e58c cmp r0, #0 addeq sp, sp, #0xc ldmia sp!, {r4, r5, pc} ldr r0, [r4, #4] add r1, r4, #0x48 bl func_ov00_020c87f8 mov r0, r5 mov r1, #1 bl func_ov30_02180408 add sp, sp, #0xc ldmia sp!, {r4, r5, pc} _021804f4: add r0, r4, #0x430 bl func_ov30_0217cb8c cmp r0, #0 addeq sp, sp, #0xc ldmia sp!, {r4, r5, pc} add r0, r4, #0x48 add r3, sp, #0 ldmia r0!, {r0, r1, r2} stmia r3!, {r0, r1, r2} ldr r0, [sp, #4] mov r1, r3 add r0, r0, #0xcd add r2, r0, #0x400 mov r0, #2 str r2, [sp, #4] bl func_ov00_020c87a8 mov r0, r4 bl func_ov00_020c3180 add sp, sp, #0xc ldmia sp!, {r4, r5, pc} arm_func_end func_ov30_02180484 arm_func_start func_ov30_02180544 func_ov30_02180544: ; 0x02180544 bx lr arm_func_end func_ov30_02180544 arm_func_start func_ov30_02180548 func_ov30_02180548: ; 0x02180548 stmdb sp!, {r3, lr} ldr r0, _0218059c ; =data_027e0d38 ldr r0, [r0] add r0, r0, #0xc bl func_ov00_020a5e9c cmp r0, #0x25 bne _02180594 ldr r0, _021805a0 ; =data_027e0e60 ldr r0, [r0] bl func_ov00_02082d08 cmp r0, #7 bne _02180594 ldr r0, _021805a4 ; =data_027e0f74 mov r1, #0x14 ldr r0, [r0] bl func_ov00_02097760 cmp r0, #0 movne r0, #0 ldmia sp!, {r3, pc} _02180594: ldr r0, _021805a8 ; =data_ov30_021887ac ldmia sp!, {r3, pc} .align 2, 0 arm_func_end func_ov30_02180548 _0218059c: .word data_027e0d38 _021805a0: .word data_027e0e60 _021805a4: .word data_027e0f74 _021805a8: .word data_ov30_021887ac arm_func_start func_ov30_021805ac func_ov30_021805ac: ; 0x021805ac stmdb sp!, {r3, lr} ldr r0, _02180600 ; =data_027e0d38 ldr r0, [r0] add r0, r0, #0xc bl func_ov00_020a5e9c cmp r0, #0x25 bne _021805f8 ldr r0, _02180604 ; =data_027e0e60 ldr r0, [r0] bl func_ov00_02082d08 cmp r0, #7 bne _021805f8 ldr r0, _02180608 ; =data_027e0f74 mov r1, #0x14 ldr r0, [r0] bl func_ov00_02097760 cmp r0, #0 moveq r0, #0 ldmia sp!, {r3, pc} _021805f8: ldr r0, _0218060c ; =data_ov30_021887b4 ldmia sp!, {r3, pc} .align 2, 0 arm_func_end func_ov30_021805ac _02180600: .word data_027e0d38 _02180604: .word data_027e0e60 _02180608: .word data_027e0f74 _0218060c: .word data_ov30_021887b4 arm_func_start func_ov30_02180610 func_ov30_02180610: ; 0x02180610 ldr r0, _02180618 ; =data_ov30_021887bc bx lr .align 2, 0 arm_func_end func_ov30_02180610 _02180618: .word data_ov30_021887bc arm_func_start func_ov30_0218061c func_ov30_0218061c: ; 0x0218061c ldr r0, _02180624 ; =data_ov30_021887c4 bx lr .align 2, 0 arm_func_end func_ov30_0218061c _02180624: .word data_ov30_021887c4 arm_func_start func_ov30_02180628 func_ov30_02180628: ; 0x02180628 stmdb sp!, {r4, lr} ldr r1, _02180660 ; =data_027e0fe0 ldr r0, _02180664 ; =0x00000ab8 ldr r1, [r1] mov r2, #4 ldr r1, [r1] bl func_0202e9dc movs r4, r0 beq _02180658 blx func_ov30_021808d4 ldr r0, _02180668 ; =data_ov30_02189054 str r0, [r4] _02180658: mov r0, r4 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov30_02180628 _02180660: .word data_027e0fe0 _02180664: .word 0x00000ab8 _02180668: .word data_ov30_02189054 arm_func_start func_ov30_0218066c func_ov30_0218066c: ; 0x0218066c stmdb sp!, {r4, lr} ldr r1, _021806a4 ; =data_027e0fe0 ldr r0, _021806a8 ; =0x00000ab8 ldr r1, [r1] mov r2, #4 ldr r1, [r1] bl func_0202e9dc movs r4, r0 beq _0218069c blx func_ov30_021808d4 ldr r0, _021806ac ; =data_ov30_02188f44 str r0, [r4] _0218069c: mov r0, r4 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov30_0218066c _021806a4: .word data_027e0fe0 _021806a8: .word 0x00000ab8 _021806ac: .word data_ov30_02188f44 arm_func_start func_ov30_021806b0 func_ov30_021806b0: ; 0x021806b0 stmdb sp!, {r4, lr} ldr r1, _021806e8 ; =data_027e0fe0 ldr r0, _021806ec ; =0x00000ab8 ldr r1, [r1] mov r2, #4 ldr r1, [r1] bl func_0202e9dc movs r4, r0 beq _021806e0 blx func_ov30_021808d4 ldr r0, _021806f0 ; =data_ov30_02188d24 str r0, [r4] _021806e0: mov r0, r4 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov30_021806b0 _021806e8: .word data_027e0fe0 _021806ec: .word 0x00000ab8 _021806f0: .word data_ov30_02188d24 arm_func_start func_ov30_021806f4 func_ov30_021806f4: ; 0x021806f4 stmdb sp!, {r4, lr} ldr r1, _0218072c ; =data_027e0fe0 ldr r0, _02180730 ; =0x00000ab8 ldr r1, [r1] mov r2, #4 ldr r1, [r1] bl func_0202e9dc movs r4, r0 beq _02180724 blx func_ov30_021808d4 ldr r0, _02180734 ; =data_ov30_02188e34 str r0, [r4] _02180724: mov r0, r4 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov30_021806f4 _0218072c: .word data_027e0fe0 _02180730: .word 0x00000ab8 _02180734: .word data_ov30_02188e34 arm_func_start func_ov30_02180738 func_ov30_02180738: ; 0x02180738 ldr r1, _02180744 ; =data_ov30_02188b14 str r1, [r0] bx lr .align 2, 0 arm_func_end func_ov30_02180738 _02180744: .word data_ov30_02188b14 arm_func_start func_ov30_02180748 func_ov30_02180748: ; 0x02180748 ldr r1, _02180754 ; =data_ov30_02188b28 str r1, [r0] bx lr .align 2, 0 arm_func_end func_ov30_02180748 _02180754: .word data_ov30_02188b28 arm_func_start func_ov30_02180758 func_ov30_02180758: ; 0x02180758 ldr r1, _02180764 ; =data_ov30_02188b3c str r1, [r0] bx lr .align 2, 0 arm_func_end func_ov30_02180758 _02180764: .word data_ov30_02188b3c arm_func_start func_ov30_02180768 func_ov30_02180768: ; 0x02180768 ldr r1, _02180774 ; =data_ov30_02188b50 str r1, [r0] bx lr .align 2, 0 arm_func_end func_ov30_02180768 _02180774: .word data_ov30_02188b50 arm_func_start func_ov30_02180778 func_ov30_02180778: ; 0x02180778 ldr r1, _02180784 ; =data_ov30_02188b64 str r1, [r0] bx lr .align 2, 0 arm_func_end func_ov30_02180778 _02180784: .word data_ov30_02188b64 arm_func_start func_ov30_02180788 func_ov30_02180788: ; 0x02180788 ldr r1, _02180794 ; =data_ov30_02188b78 str r1, [r0] bx lr .align 2, 0 arm_func_end func_ov30_02180788 _02180794: .word data_ov30_02188b78 arm_func_start func_ov30_02180798 func_ov30_02180798: ; 0x02180798 ldr r1, _021807a4 ; =data_ov30_02188bb4 str r1, [r0] bx lr .align 2, 0 arm_func_end func_ov30_02180798 _021807a4: .word data_ov30_02188bb4 arm_func_start func_ov30_021807a8 func_ov30_021807a8: ; 0x021807a8 ldr r1, _021807b4 ; =data_ov30_02188b8c str r1, [r0] bx lr .align 2, 0 arm_func_end func_ov30_021807a8 _021807b4: .word data_ov30_02188b8c arm_func_start func_ov30_021807b8 func_ov30_021807b8: ; 0x021807b8 ldr r1, _021807c4 ; =data_ov30_02188ba0 str r1, [r0] bx lr .align 2, 0 arm_func_end func_ov30_021807b8 _021807c4: .word data_ov30_02188ba0 arm_func_start func_ov30_021807c8 func_ov30_021807c8: ; 0x021807c8 ldr r1, _021807d4 ; =data_ov30_02188bc8 str r1, [r0] bx lr .align 2, 0 arm_func_end func_ov30_021807c8 _021807d4: .word data_ov30_02188bc8 arm_func_start func_ov30_021807d8 func_ov30_021807d8: ; 0x021807d8 ldr r1, _021807e4 ; =data_ov30_02188bdc str r1, [r0] bx lr .align 2, 0 arm_func_end func_ov30_021807d8 _021807e4: .word data_ov30_02188bdc arm_func_start func_ov30_021807e8 func_ov30_021807e8: ; 0x021807e8 ldr r1, _02180828 ; =data_ov30_02189434 add r3, r0, #0x10 str r1, [r0] add r1, r0, #0x40 mov r2, #0 _021807fc: strh r2, [r3] strh r2, [r3, #2] add r3, r3, #4 cmp r3, r1 blo _021807fc str r2, [r0, #0x40] str r2, [r0, #0x44] mvn r1, #0 str r1, [r0, #0x48] str r1, [r0, #0x4c] bx lr .align 2, 0 arm_func_end func_ov30_021807e8 _02180828: .word data_ov30_02189434 arm_func_start func_ov30_0218082c func_ov30_0218082c: ; 0x0218082c ldr r2, _0218085c ; =data_ov30_0218946c mvn r1, #0 str r2, [r0] strb r1, [r0, #0xc] strb r1, [r0, #0xd] strb r1, [r0, #0xe] strb r1, [r0, #0xf] strb r1, [r0, #0x10] strb r1, [r0, #0x11] strb r1, [r0, #0x12] strb r1, [r0, #0x13] bx lr .align 2, 0 arm_func_end func_ov30_0218082c _0218085c: .word data_ov30_0218946c arm_func_start func_ov30_02180860 func_ov30_02180860: ; 0x02180860 ldr r2, _02180880 ; =data_ov30_02189448 mvn r1, #0 str r2, [r0] strb r1, [r0, #0xc] strb r1, [r0, #0xd] strb r1, [r0, #0xe] strb r1, [r0, #0xf] bx lr .align 2, 0 arm_func_end func_ov30_02180860 _02180880: .word data_ov30_02189448 arm_func_start func_ov30_02180884 func_ov30_02180884: ; 0x02180884 ldr r1, _02180890 ; =data_ov30_02188bf0 str r1, [r0] bx lr .align 2, 0 arm_func_end func_ov30_02180884 _02180890: .word data_ov30_02188bf0 arm_func_start func_ov30_02180894 func_ov30_02180894: ; 0x02180894 ldr r1, _021808a0 ; =data_ov30_02188c04 str r1, [r0] bx lr .align 2, 0 arm_func_end func_ov30_02180894 _021808a0: .word data_ov30_02188c04 arm_func_start func_ov30_021808a4 func_ov30_021808a4: ; 0x021808a4 ldr r1, _021808b0 ; =data_ov30_02188c18 str r1, [r0] bx lr .align 2, 0 arm_func_end func_ov30_021808a4 _021808b0: .word data_ov30_02188c18 arm_func_start func_ov30_021808b4 func_ov30_021808b4: ; 0x021808b4 ldr r1, _021808c0 ; =data_ov30_02188c2c str r1, [r0] bx lr .align 2, 0 arm_func_end func_ov30_021808b4 _021808c0: .word data_ov30_02188c2c arm_func_start func_ov30_021808c4 func_ov30_021808c4: ; 0x021808c4 ldr r1, _021808d0 ; =data_ov30_02188c40 str r1, [r0] bx lr .align 2, 0 arm_func_end func_ov30_021808c4 _021808d0: .word data_ov30_02188c40 thumb_func_start func_ov30_021808d4 func_ov30_021808d4: ; 0x021808d4 push {r4, lr} add r4, r0, #0 blx func_ov00_020ca668 ldr r0, _02180bbc ; =data_ov30_02189164 mov r1, #0 str r0, [r4] mov r0, #0x87 lsl r0, r0, #2 strb r1, [r4, r0] add r0, r0, #4 add r0, r4, r0 add r1, r4, #0 blx func_ov00_020c5124 mov r0, #0xad lsl r0, r0, #2 add r0, r4, r0 blx func_ov30_021808c4 mov r0, #0xaf lsl r0, r0, #2 add r0, r4, r0 blx func_ov30_021808b4 mov r0, #0xb2 lsl r0, r0, #2 add r0, r4, r0 blx func_ov30_021808a4 mov r0, #0x2e lsl r0, r0, #4 add r0, r4, r0 blx func_ov30_02180894 mov r0, #0xba lsl r0, r0, #2 add r0, r4, r0 blx func_ov30_02180884 mov r0, #0xbe lsl r0, r0, #2 add r0, r4, r0 blx func_ov30_02180860 mov r0, #0xc5 lsl r0, r0, #2 add r0, r4, r0 blx func_ov30_0218082c mov r0, #0xcd lsl r0, r0, #2 add r0, r4, r0 blx func_ov30_021807e8 mov r0, #0x3a lsl r0, r0, #4 add r0, r4, r0 blx func_ov30_021807d8 mov r0, #0xeb lsl r0, r0, #2 add r0, r4, r0 blx func_ov30_021807c8 mov r0, #0xf1 lsl r0, r0, #2 add r0, r4, r0 blx func_ov30_021807b8 mov r0, #0xf3 lsl r0, r0, #2 add r0, r4, r0 blx func_ov30_021807a8 mov r0, #0xf5 lsl r0, r0, #2 add r0, r4, r0 blx func_ov30_02180798 mov r0, #0xf7 lsl r0, r0, #2 add r0, r4, r0 blx func_ov30_02180788 mov r0, #0xfa lsl r0, r0, #2 add r0, r4, r0 blx func_ov30_02180778 mov r0, #0xfd lsl r0, r0, #2 add r0, r4, r0 blx func_ov30_02180768 mov r0, #1 lsl r0, r0, #0xa add r0, r4, r0 blx func_ov30_02180758 ldr r0, _02180bc0 ; =0x00000418 add r0, r4, r0 blx func_ov30_02180748 ldr r0, _02180bc4 ; =0x00000424 add r0, r4, r0 blx func_ov30_02180738 mov r2, #0x22 lsl r2, r2, #4 add r0, r4, r2 add r2, #0x94 ldr r3, _02180bc8 ; =data_ov30_02189368 mov r1, #0 add r2, r4, r2 blx func_ov00_020c5150 mov r2, #0x22 lsl r2, r2, #4 add r0, r4, r2 add r2, #0x9c ldr r3, _02180bcc ; =data_ov30_0218935c mov r1, #1 add r2, r4, r2 blx func_ov00_020c5150 mov r2, #0x22 lsl r2, r2, #4 add r0, r4, r2 add r2, #0xa8 ldr r3, _02180bd0 ; =data_ov30_02189350 mov r1, #2 add r2, r4, r2 blx func_ov00_020c5150 mov r2, #0x22 lsl r2, r2, #4 add r0, r4, r2 add r2, #0xc0 ldr r3, _02180bd4 ; =data_ov30_02189344 mov r1, #3 add r2, r4, r2 blx func_ov00_020c5150 mov r2, #0x22 lsl r2, r2, #4 add r0, r4, r2 add r2, #0xc8 ldr r3, _02180bd8 ; =data_ov30_0218933c mov r1, #4 add r2, r4, r2 blx func_ov00_020c5150 mov r2, #0x22 lsl r2, r2, #4 add r0, r4, r2 add r2, #0xd8 ldr r3, _02180bdc ; =data_ov30_0218932c mov r1, #5 add r2, r4, r2 blx func_ov00_020c5150 mov r2, #0x22 lsl r2, r2, #4 add r0, r4, r2 add r2, #0xf4 ldr r3, _02180be0 ; =data_ov30_02189320 mov r1, #6 add r2, r4, r2 blx func_ov00_020c5150 mov r0, #0x22 mov r2, #0xcd lsl r0, r0, #4 lsl r2, r2, #2 ldr r3, _02180be4 ; =data_ov30_02189318 add r0, r4, r0 mov r1, #7 add r2, r4, r2 blx func_ov00_020c5150 mov r0, #0x22 mov r2, #0x3a lsl r0, r0, #4 lsl r2, r2, #4 ldr r3, _02180be8 ; =data_ov30_02189308 add r0, r4, r0 mov r1, #8 add r2, r4, r2 blx func_ov00_020c5150 mov r0, #0x22 mov r2, #0xeb lsl r0, r0, #4 lsl r2, r2, #2 ldr r3, _02180bec ; =data_ov30_021892f4 add r0, r4, r0 mov r1, #9 add r2, r4, r2 blx func_ov00_020c5150 mov r0, #0x22 mov r2, #0xf1 lsl r0, r0, #4 lsl r2, r2, #2 ldr r3, _02180bf0 ; =data_ov30_021892ec add r0, r4, r0 mov r1, #0xa add r2, r4, r2 blx func_ov00_020c5150 mov r0, #0x22 mov r2, #0xf3 lsl r0, r0, #4 lsl r2, r2, #2 ldr r3, _02180bf4 ; =data_ov30_021892e0 add r0, r4, r0 mov r1, #0xb add r2, r4, r2 blx func_ov00_020c5150 mov r0, #0x22 mov r2, #0xf5 lsl r0, r0, #4 lsl r2, r2, #2 ldr r3, _02180bf8 ; =data_ov30_021892d4 add r0, r4, r0 mov r1, #0xc add r2, r4, r2 blx func_ov00_020c5150 mov r0, #0x22 mov r2, #0xf7 lsl r0, r0, #4 lsl r2, r2, #2 ldr r3, _02180bfc ; =data_ov30_021892c4 add r0, r4, r0 mov r1, #0xd add r2, r4, r2 blx func_ov00_020c5150 mov r0, #0x22 mov r2, #0xfa lsl r0, r0, #4 lsl r2, r2, #2 ldr r3, _02180c00 ; =data_ov30_021892b0 add r0, r4, r0 mov r1, #0xe add r2, r4, r2 blx func_ov00_020c5150 mov r0, #0x22 mov r2, #0xfd lsl r0, r0, #4 lsl r2, r2, #2 ldr r3, _02180c04 ; =data_ov30_021892a4 add r0, r4, r0 mov r1, #0xf add r2, r4, r2 blx func_ov00_020c5150 mov r0, #0x22 mov r1, #0x10 lsl r0, r0, #4 lsl r2, r1, #6 ldr r3, _02180c08 ; =data_ov30_02189298 add r0, r4, r0 add r2, r4, r2 blx func_ov00_020c5150 mov r0, #0x22 ldr r2, _02180bc0 ; =0x00000418 lsl r0, r0, #4 ldr r3, _02180c0c ; =data_ov30_02189288 add r0, r4, r0 mov r1, #0x11 add r2, r4, r2 blx func_ov00_020c5150 mov r0, #0x22 ldr r2, _02180bc4 ; =0x00000424 lsl r0, r0, #4 ldr r3, _02180c10 ; =data_ov30_02189280 add r0, r4, r0 mov r1, #0x12 add r2, r4, r2 blx func_ov00_020c5150 mov r0, #0x43 lsl r0, r0, #4 add r0, r4, r0 add r1, r4, #0 blx func_ov30_0217c704 mov r0, #0x21 lsl r0, r0, #6 mov r1, #0 add r2, r0, #0 strh r1, [r4, r0] add r2, #9 strb r1, [r4, r2] add r2, r0, #0 add r2, #0xc str r1, [r4, r2] add r2, r0, #0 add r2, #0x10 str r1, [r4, r2] add r2, r0, #0 add r2, #0x14 str r1, [r4, r2] add r2, r0, #0 add r2, #0x18 str r1, [r4, r2] add r2, r0, #0 add r2, #0x1c str r1, [r4, r2] add r2, r0, #0 add r2, #0x3c strh r1, [r4, r2] add r2, r0, #0 add r2, #0x3e strb r1, [r4, r2] add r2, r0, #0 add r2, #0x40 str r1, [r4, r2] sub r2, r1, #1 add r1, r0, #0 add r1, #0x44 str r2, [r4, r1] add r1, r0, #0 add r0, #0x4c add r1, #0x48 add r0, r4, r0 str r2, [r4, r1] blx func_ov00_020c8ce4 mov r1, #0x8a lsl r1, r1, #4 mov r2, #0 str r2, [r4, r1] add r0, r1, #4 str r2, [r4, r0] add r1, #8 add r2, r4, r1 ldr r1, _02180c14 ; =0x00000aa8 mov r0, #0 add r1, r4, r1 _02180b8a: strh r0, [r2] strh r0, [r2, #2] add r2, r2, #4 cmp r2, r1 blo _02180b8a ldr r1, _02180c18 ; =0x000008a8 ldr r2, _02180c1c ; =0x00000aac add r1, r4, r1 str r1, [r4, r2] mov r3, #0x80 add r1, r2, #4 str r3, [r4, r1] sub r1, r2, #4 str r0, [r4, r1] add r1, r2, #0 add r1, #8 strh r0, [r4, r1] add r1, r2, #0 add r1, #0xa strb r0, [r4, r1] mov r0, #0x1f add r2, #0xb strb r0, [r4, r2] add r0, r4, #0 pop {r4, pc} .align 2, 0 thumb_func_end func_ov30_021808d4 _02180bbc: .word data_ov30_02189164 _02180bc0: .word 0x00000418 _02180bc4: .word 0x00000424 _02180bc8: .word data_ov30_02189368 _02180bcc: .word data_ov30_0218935c _02180bd0: .word data_ov30_02189350 _02180bd4: .word data_ov30_02189344 _02180bd8: .word data_ov30_0218933c _02180bdc: .word data_ov30_0218932c _02180be0: .word data_ov30_02189320 _02180be4: .word data_ov30_02189318 _02180be8: .word data_ov30_02189308 _02180bec: .word data_ov30_021892f4 _02180bf0: .word data_ov30_021892ec _02180bf4: .word data_ov30_021892e0 _02180bf8: .word data_ov30_021892d4 _02180bfc: .word data_ov30_021892c4 _02180c00: .word data_ov30_021892b0 _02180c04: .word data_ov30_021892a4 _02180c08: .word data_ov30_02189298 _02180c0c: .word data_ov30_02189288 _02180c10: .word data_ov30_02189280 _02180c14: .word 0x00000aa8 _02180c18: .word 0x000008a8 _02180c1c: .word 0x00000aac thumb_func_start func_ov30_02180c20 func_ov30_02180c20: ; 0x02180c20 push {r4, lr} add r4, r0, #0 ldr r0, _02180c8c ; =data_ov30_02189164 add r1, r4, #0 str r0, [r4] ldr r0, _02180c90 ; =data_027e10b4 ldr r0, [r0] bl func_ov30_02184368 ldr r0, _02180c94 ; =0x000007bc add r0, r4, r0 bl func_ov00_020a9b6c mov r0, #0x76 lsl r0, r0, #4 add r0, r4, r0 bl func_ov00_020a95a4 ldr r0, _02180c98 ; =0x00000738 add r0, r4, r0 blx func_ov00_020b7d74 ldr r0, _02180c9c ; =0x00000734 add r0, r4, r0 blx func_ov00_020b7d74 ldr r0, _02180ca0 ; =0x0000050c add r0, r4, r0 bl func_ov00_020a9b6c mov r0, #0x45 lsl r0, r0, #4 add r0, r4, r0 bl func_ov00_020a95ec mov r0, #0x76 lsl r0, r0, #2 add r0, r4, r0 blx func_ov00_02081f4c mov r0, #0x72 lsl r0, r0, #2 ldr r3, _02180ca4 ; =func_ov00_020b7d74 add r0, r4, r0 mov r1, #2 mov r2, #4 blx func_0204f754 add r0, r4, #0 blx func_ov00_020c1730 add r0, r4, #0 pop {r4, pc} nop thumb_func_end func_ov30_02180c20 _02180c8c: .word data_ov30_02189164 _02180c90: .word data_027e10b4 _02180c94: .word 0x000007bc _02180c98: .word 0x00000738 _02180c9c: .word 0x00000734 _02180ca0: .word 0x0000050c _02180ca4: .word func_ov00_020b7d74 thumb_func_start func_ov30_02180ca8 func_ov30_02180ca8: ; 0x02180ca8 push {r4, lr} add r4, r0, #0 ldr r0, _02180d18 ; =data_ov30_02189164 add r1, r4, #0 str r0, [r4] ldr r0, _02180d1c ; =data_027e10b4 ldr r0, [r0] bl func_ov30_02184368 ldr r0, _02180d20 ; =0x000007bc add r0, r4, r0 bl func_ov00_020a9b6c mov r0, #0x76 lsl r0, r0, #4 add r0, r4, r0 bl func_ov00_020a95a4 ldr r0, _02180d24 ; =0x00000738 add r0, r4, r0 blx func_ov00_020b7d74 ldr r0, _02180d28 ; =0x00000734 add r0, r4, r0 blx func_ov00_020b7d74 ldr r0, _02180d2c ; =0x0000050c add r0, r4, r0 bl func_ov00_020a9b6c mov r0, #0x45 lsl r0, r0, #4 add r0, r4, r0 bl func_ov00_020a95ec mov r0, #0x76 lsl r0, r0, #2 add r0, r4, r0 blx func_ov00_02081f4c mov r0, #0x72 lsl r0, r0, #2 ldr r3, _02180d30 ; =func_ov00_020b7d74 add r0, r4, r0 mov r1, #2 mov r2, #4 blx func_0204f754 add r0, r4, #0 blx func_ov00_020c1730 add r0, r4, #0 blx func_0202ea0c add r0, r4, #0 pop {r4, pc} .align 2, 0 thumb_func_end func_ov30_02180ca8 _02180d18: .word data_ov30_02189164 _02180d1c: .word data_027e10b4 _02180d20: .word 0x000007bc _02180d24: .word 0x00000738 _02180d28: .word 0x00000734 _02180d2c: .word 0x0000050c _02180d30: .word func_ov00_020b7d74 thumb_func_start func_ov30_02180d34 func_ov30_02180d34: ; 0x02180d34 push {r4, lr} add r4, r0, #0 ldr r0, _02180da0 ; =data_ov30_02189164 add r1, r4, #0 str r0, [r4] ldr r0, _02180da4 ; =data_027e10b4 ldr r0, [r0] bl func_ov30_02184368 ldr r0, _02180da8 ; =0x000007bc add r0, r4, r0 bl func_ov00_020a9b6c mov r0, #0x76 lsl r0, r0, #4 add r0, r4, r0 bl func_ov00_020a95a4 ldr r0, _02180dac ; =0x00000738 add r0, r4, r0 blx func_ov00_020b7d74 ldr r0, _02180db0 ; =0x00000734 add r0, r4, r0 blx func_ov00_020b7d74 ldr r0, _02180db4 ; =0x0000050c add r0, r4, r0 bl func_ov00_020a9b6c mov r0, #0x45 lsl r0, r0, #4 add r0, r4, r0 bl func_ov00_020a95ec mov r0, #0x76 lsl r0, r0, #2 add r0, r4, r0 blx func_ov00_02081f4c mov r0, #0x72 lsl r0, r0, #2 ldr r3, _02180db8 ; =func_ov00_020b7d74 add r0, r4, r0 mov r1, #2 mov r2, #4 blx func_0204f754 add r0, r4, #0 blx func_ov00_020c1730 add r0, r4, #0 pop {r4, pc} nop thumb_func_end func_ov30_02180d34 _02180da0: .word data_ov30_02189164 _02180da4: .word data_027e10b4 _02180da8: .word 0x000007bc _02180dac: .word 0x00000738 _02180db0: .word 0x00000734 _02180db4: .word 0x0000050c _02180db8: .word func_ov00_020b7d74 thumb_func_start func_ov30_02180dbc func_ov30_02180dbc: ; 0x02180dbc thumb_func_end func_ov30_02180dbc _02180dbc: .byte 0x70 data_ov30_02180dbd: ; 0x02180dbd .byte 0xb5, 0x04, 0x1c .byte 0xa8, 0x48, 0x21, 0x1c, 0x00, 0x68, 0x03, 0xf0, 0xa3, 0xfa, 0x00, 0x20, 0x21, 0x1c, 0xa6, 0x4a .byte 0xe0, 0x67, 0x80, 0x31, 0x0a, 0x60, 0x21, 0x1c, 0x84, 0x31, 0x08, 0x60, 0x21, 0x1c, 0x88, 0x31 .byte 0x0a, 0x60, 0x21, 0x1c, 0x8c, 0x31, 0x08, 0x60, 0x02, 0x22, 0x21, 0x1c, 0x92, 0x02, 0x90, 0x31 .byte 0x0a, 0x60, 0x21, 0x1c, 0x94, 0x31, 0x08, 0x60, 0x20, 0x1c, 0x98, 0x30, 0x02, 0x60, 0x62, 0x68 .byte 0x9a, 0x49, 0x8a, 0x42, 0x09, 0xd8, 0x08, 0x1f, 0x82, 0x42, 0x1c, 0xd3, 0x0d, 0xd0, 0x88, 0x1e .byte 0x82, 0x42, 0x0f, 0xd0, 0x8a, 0x42, 0x12, 0xd0, 0x15, 0xe0 _02180e1a: add r1, #0x1c cmp r2, r1 bne _02180e46 add r0, r4, #0 mov r1, #0x12 add r0, #0x7a strh r1, [r0] b _02180e46 _02180e2a: add r0, r4, #0 mov r1, #0x13 add r0, #0x7a strh r1, [r0] b _02180e46 _02180e34: add r0, r4, #0 mov r1, #0x15 add r0, #0x7a strh r1, [r0] b _02180e46 _02180e3e: add r0, r4, #0 mov r1, #0x14 add r0, #0x7a strh r1, [r0] _02180e46: ldr r0, _02181070 ; =0x00000848 mov r1, #0 strb r1, [r4, r0] ldr r2, [r4, #4] ldr r1, _0218106c ; =0x43485336 cmp r2, r1 bhi _02180e68 sub r0, r1, #4 cmp r2, r0 blo _02180ece beq _02180e6e sub r0, r1, #2 cmp r2, r0 beq _02180eb8 cmp r2, r1 beq _02180eb8 b _02180ece _02180e68: add r1, #0x1c cmp r2, r1 bne _02180ece _02180e6e: ldrh r0, [r4, #0x20] cmp r0, #4 bhi _02180ece add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02180e80: ; jump table .short _02180e8a - _02180e80 - 2 ; case 0 data_ov30_02180e82: ; 0x02180e82 .byte 0x10, 0x00 data_ov30_02180e84: ; 0x02180e84 .byte 0x1e, 0x00 data_ov30_02180e86: ; 0x02180e86 .byte 0x26, 0x00 data_ov30_02180e88: ; 0x02180e88 .byte 0x2e, 0x00 _02180e8a: ldr r0, _02181074 ; =0x00000844 mov r1, #0 str r1, [r4, r0] b _02180ece _02180e92: .byte 0x78, 0x48, 0x00, 0x21, 0x21, 0x50, 0x01, 0x21, 0x00, 0x1d, 0x21, 0x54, 0x16, 0xe0 .byte 0x74, 0x48, 0x01, 0x21, 0x21, 0x50, 0x12, 0xe0, 0x72, 0x48, 0x02, 0x21, 0x21, 0x50, 0x0e, 0xe0 .byte 0x70, 0x48, 0x03, 0x21, 0x21, 0x50, 0x0a, 0xe0 _02180eb8: ldr r0, _02181074 ; =0x00000844 mov r1, #0 str r1, [r4, r0] ldrh r1, [r4, #0x20] cmp r1, #0 beq _02180ece cmp r1, #1 bne _02180ece mov r1, #1 add r0, r0, #4 strb r1, [r4, r0] _02180ece: ldr r1, _02181078 ; =data_ov30_02188c9c add r0, r4, #0 blx func_ov00_020ca8a4 add r1, r4, #0 mov r2, #1 mov r0, #0 add r1, #0xa8 str r0, [r1] add r1, r4, #0 lsl r2, r2, #0xc add r1, #0xac str r2, [r1] add r1, r4, #0 add r1, #0xb0 str r0, [r1] add r1, r4, #0 lsl r2, r2, #1 add r1, #0xb4 str r2, [r1] ldr r2, [r4, #4] ldr r1, _0218107c ; =0x43485334 cmp r2, r1 bne _02180f12 str r0, [r4, #0x6c] add r0, r4, #0 mov r1, #1 add r0, #0x9c strh r1, [r0] mov r0, #0x49 mov r1, #8 lsl r0, r0, #2 strb r1, [r4, r0] b _02180f1a _02180f12: add r0, r4, #0 mov r1, #0x9f add r0, #0x9c strh r1, [r0] _02180f1a: ldr r0, _02181080 ; =0x0000019a add r1, r0, #0 sub r1, #0x12 str r0, [r4, r1] add r1, r0, #0 add r1, #0x16 ldrh r2, [r4, r1] mov r1, #2 orr r2, r1 add r1, r0, #0 add r1, #0x16 add r0, #0x3e strh r2, [r4, r1] add r0, r4, r0 mov r1, #0 blx func_ov00_020ca38c mov r0, #0x76 lsl r0, r0, #2 add r0, r4, r0 mov r1, #0 blx func_ov00_020ca3a4 mov r0, #0x76 lsl r0, r0, #2 add r0, r4, r0 mov r1, #0 blx func_ov00_020ca3bc mov r0, #0x76 lsl r0, r0, #2 add r0, r4, r0 mov r1, #0 blx func_ov00_020ca3d4 mov r0, #0x76 lsl r0, r0, #2 add r0, r4, r0 mov r1, #0 blx func_ov00_020ca3ec mov r1, #0x43 lsl r1, r1, #4 add r0, r4, #0 add r1, r4, r1 blx func_ov00_020cb140 mov r3, #0x22 lsl r3, r3, #4 add r1, r3, #0 add r0, r4, r3 sub r1, #0x9c str r0, [r4, r1] ldr r5, _02181084 ; =0x0000087c mov r2, #0 strh r2, [r4, r5] sub r1, r3, #4 strb r2, [r4, r1] ldr r1, [r4, #0x3c] cmp r1, #0 blt _02181016 add r0, r4, #0 blx func_ov00_020c3158 ldrh r0, [r4, #0x22] cmp r0, #5 bhi _02180fe6 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02180fac: ; jump table .short _02180fb8 - _02180fac - 2 ; case 0 data_ov30_02180fae: ; 0x02180fae .byte 0x12, 0x00 data_ov30_02180fb0: ; 0x02180fb0 .byte 0x1a, 0x00 data_ov30_02180fb2: ; 0x02180fb2 .byte 0x22, 0x00 data_ov30_02180fb4: ; 0x02180fb4 .byte 0x2a, 0x00 data_ov30_02180fb6: ; 0x02180fb6 .byte 0x32, 0x00 _02180fb8: mov r1, #0 add r0, r5, #4 str r1, [r4, r0] b _02180fe6 _02180fc0: .byte 0x05, 0x21, 0x28, 0x1d, 0x21, 0x50, 0x0e, 0xe0, 0x01, 0x21, 0x28, 0x1d, 0x21, 0x50, 0x0a, 0xe0 .byte 0x03, 0x21, 0x28, 0x1d, 0x21, 0x50, 0x06, 0xe0, 0x04, 0x21, 0x28, 0x1d, 0x21, 0x50, 0x02, 0xe0 .byte 0x02, 0x21, 0x28, 0x1d, 0x21, 0x50 _02180fe6: add r0, r4, #0 blx func_ov30_02183db8 cmp r0, #0 beq _02181006 add r0, r4, #0 blx func_ov30_02181088 mov r0, #0x22 lsl r0, r0, #4 add r0, r4, r0 mov r1, #3 mov r2, #0 blx func_ov00_020c515c b _0218105e _02181006: mov r0, #0x22 lsl r0, r0, #4 mov r1, #0 add r0, r4, r0 add r2, r1, #0 blx func_ov00_020c515c b _0218105e _02181016: add r1, r3, #0 sub r1, #0xdc ldr r6, [r4, r1] add r1, r5, #4 sub r3, #0xe0 str r6, [r4, r1] ldr r1, [r4, r3] cmp r1, #0xc bne _02181030 mov r1, #0xc blx func_ov00_020c515c b _0218105e _02181030: add r0, r4, #0 blx func_ov30_02183db8 cmp r0, #0 beq _02181050 add r0, r4, #0 blx func_ov30_02181088 mov r0, #0x22 lsl r0, r0, #4 add r0, r4, r0 mov r1, #3 mov r2, #0 blx func_ov00_020c515c b _0218105e _02181050: mov r0, #0x22 lsl r0, r0, #4 mov r1, #0 add r0, r4, r0 add r2, r1, #0 blx func_ov00_020c515c _0218105e: mov r0, #1 pop {r4, r5, r6, pc} nop _02181064: .word data_027e10b4 _02181068: .word 0x0000099a _0218106c: .word 0x43485336 _02181070: .word 0x00000848 _02181074: .word 0x00000844 _02181078: .word data_ov30_02188c9c _0218107c: .word 0x43485334 _02181080: .word 0x0000019a _02181084: .word 0x0000087c arm_func_start func_ov30_02181088 func_ov30_02181088: ; 0x02181088 stmdb sp!, {r4, lr} mov r4, r0 ldrb r0, [r4, #0x849] cmp r0, #0 ldmia sp!, {r4, pc} ldr r2, [r4, #4] ldr r1, _02181128 ; =0x43485336 cmp r2, r1 bhi _021810d4 sub r0, r1, #4 cmp r2, r0 blo _0218111c beq _021810f0 sub r0, r1, #2 cmp r2, r0 beq _02181100 cmp r2, r1 beq _02181110 b _0218111c _021810d4: add r0, r1, #0x1c cmp r2, r0 bne _0218111c add r0, r4, #0x430 mov r1, #0 bl func_ov30_0217c7a4 b _0218111c _021810f0: add r0, r4, #0x430 mov r1, #1 bl func_ov30_0217c7a4 b _0218111c _02181100: add r0, r4, #0x430 mov r1, #3 bl func_ov30_0217c7a4 b _0218111c _02181110: add r0, r4, #0x430 mov r1, #2 bl func_ov30_0217c7a4 _0218111c: mov r0, #1 strb r0, [r4, #0x849] ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov30_02181088 _02181128: .word 0x43485336 arm_func_start func_ov30_0218112c func_ov30_0218112c: ; 0x0218112c stmdb sp!, {r4, lr} mov r4, r0 cmp r1, #0 ldmia sp!, {r4, pc} mov r1, #0 strb r1, [r4, #0x21c] ldr r1, [r4, #0x14] str r1, [r4, #0x54] ldr r1, [r4, #0x18] str r1, [r4, #0x58] ldr r1, [r4, #0x1c] str r1, [r4, #0x5c] ldr r1, [r4, #0x54] str r1, [r4, #0x48] ldr r1, [r4, #0x58] str r1, [r4, #0x4c] ldr r1, [r4, #0x5c] str r1, [r4, #0x50] ldrsh r1, [r4, #0x12] strh r1, [r4, #0x78] bl func_ov30_02183db8 cmp r0, #0 beq _021811a4 mov r0, r4 bl func_ov30_02181088 add r0, r4, #0x220 mov r1, #3 mov r2, #0 bl func_ov00_020c515c ldmia sp!, {r4, pc} _021811a4: mov r1, #0 mov r2, r1 add r0, r4, #0x220 bl func_ov00_020c515c ldmia sp!, {r4, pc} arm_func_end func_ov30_0218112c arm_func_start func_ov30_021811b8 func_ov30_021811b8: ; 0x021811b8 stmdb sp!, {r3, r4, lr} sub sp, sp, #4 mov r4, r0 bl func_ov00_020caef8 ldr r0, [r4, #0x160] cmp r0, #1 bne _02181208 add r0, r4, #0x100 ldrsh r0, [r0, #0x20] cmp r0, #0 addle sp, sp, #4 ldmia sp!, {r3, r4, pc} mov r3, #1 add r2, sp, #0 add r0, r4, #0x220 mov r1, #7 str r3, [sp] bl func_ov00_020c515c add sp, sp, #4 ldmia sp!, {r3, r4, pc} _02181208: cmp r0, #2 addne sp, sp, #4 ldmia sp!, {r3, r4, pc} add r0, r4, #0x100 ldrsh r0, [r0, #0x20] cmp r0, #0 addle sp, sp, #4 ldmia sp!, {r3, r4, pc} ldr r0, [r4, #0x844] mov r2, #0 cmp r0, #0 add r0, r4, #0x220 beq _0218124c mov r1, #0x10 bl func_ov00_020c515c add sp, sp, #4 ldmia sp!, {r3, r4, pc} _0218124c: mov r1, #5 bl func_ov00_020c515c add sp, sp, #4 ldmia sp!, {r3, r4, pc} arm_func_end func_ov30_021811b8 arm_func_start func_ov30_0218125c func_ov30_0218125c: ; 0x0218125c stmdb sp!, {r4, lr} mov r4, r0 bl func_ov00_020cafbc add r0, r4, #0x430 mov r1, #3 bl func_ov00_020c5d74 ldr r0, [r4, #0x440] mov r1, #0x1000 str r1, [r0, #0x10] add r2, r4, #0x100 ldrh r3, [r2, #0x82] mov r0, r4 mov r1, #0 orr r3, r3, #0xf strh r3, [r2, #0x82] strb r1, [r4, #0x87e] bl func_ov30_02183018 ldmia sp!, {r4, pc} arm_func_end func_ov30_0218125c arm_func_start func_ov30_021812a4 func_ov30_021812a4: ; 0x021812a4 stmdb sp!, {r4, lr} mov r4, r0 bl func_ov00_020cb06c add r0, r4, #0x430 mov r1, #4 bl func_ov00_020c5d74 ldr r0, [r4, #0x440] mov r1, #0x1000 str r1, [r0, #0x10] add r0, r4, #0x100 ldrh r1, [r0, #0x82] orr r1, r1, #0xf strh r1, [r0, #0x82] ldmia sp!, {r4, pc} arm_func_end func_ov30_021812a4 arm_func_start func_ov30_021812dc func_ov30_021812dc: ; 0x021812dc stmdb sp!, {r3, lr} cmp r2, #0 ldmia sp!, {r3, pc} bl func_ov30_02182634 ldmia sp!, {r3, pc} arm_func_end func_ov30_021812dc arm_func_start func_ov30_021812f0 func_ov30_021812f0: ; 0x021812f0 stmdb sp!, {r4, lr} mov r4, r0 ldr r0, [r1] ldr r1, [r1, #8] bl func_01ffa0f4 ldrsh r2, [r4, #0x78] mov r0, r0, lsl #0x10 ldr r1, _02181360 ; =0xffff8001 sub r0, r2, r0, asr #16 mov r0, r0, lsl #0x10 cmp r1, r0, asr #16 mov r0, r0, asr #0x10 mov r0, r1, lsr #0x11 bgt _02181338 cmp r0, #0 rsblt r0, r0, #0 mov r0, r0, lsl #0x10 mov r0, r0, asr #0x10 _02181338: cmp r0, #0x4000 ble _02181350 mov r0, r4 bl func_ov00_020cc22c cmp r0, #0 bne _02181358 _02181350: mov r0, #1 ldmia sp!, {r4, pc} _02181358: mov r0, #0 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov30_021812f0 _02181360: .word 0xffff8001 arm_func_start func_ov30_02181364 func_ov30_02181364: ; 0x02181364 stmdb sp!, {r4, r5, r6, lr} mov r5, r0 ldr r2, [r5, #0x2a0] mov r4, r1 cmp r2, #0x12 moveq r0, #0 ldmia sp!, {r4, r5, r6, pc} ldr r2, [r5, #0x164] tst r2, #8 moveq r0, #0 ldmia sp!, {r4, r5, r6, pc} ldr r2, [r4, #0x10] cmp r2, #0xb addls pc, pc, r2, lsl #2 b _021817fc _021813a0: ; jump table b _021813d0 ; case 0 b _02181648 ; case 1 b _02181548 ; case 2 b _02181548 ; case 3 b _02181550 ; case 4 b _02181648 ; case 5 b _021815c0 ; case 6 b _02181648 ; case 7 b _02181728 ; case 8 b _021817fc ; case 9 b _021815f0 ; case 10 b _02181750 ; case 11 _021813d0: add r1, r4, #4 bl func_ov30_021812f0 cmp r0, #0 beq _021814f4 ldr r0, _02181804 ; =data_027e0fb4 mov r1, #0x25 ldr r0, [r0] bl func_ov00_020ada78 cmp r0, #0 beq _0218146c mov r2, #2 mov r0, r5 mov r1, r4 strb r2, [r5, #0x1a0] bl func_ov00_020cb60c cmp r0, #0 beq _021817fc mov r0, r5 mov r1, #0 bl func_ov30_02183018 mov r0, r5 mov r1, #0 bl func_ov30_021823cc ldr r1, [r5, #4] ldr r0, _02181808 ; =0x43485334 cmp r1, r0 mov r0, r5 bne _0218144c mov r1, #1 bl func_ov00_020cadb0 b _02181464 _0218144c: mov r1, #0 bl func_ov00_020cadb0 add r0, r5, #0x220 mov r1, #0x12 mov r2, #0 bl func_ov00_020c51d0 _02181464: mov r0, #1 ldmia sp!, {r4, r5, r6, pc} _0218146c: ldr r0, _02181804 ; =data_027e0fb4 mov r1, #1 ldr r0, [r0] bl func_ov00_020ad9e8 cmp r0, #1 blt _021814b4 mov r2, #5 mov r0, r5 mov r1, r4 strb r2, [r5, #0x1a0] bl func_ov00_020cb60c cmp r0, #0 beq _021817fc mov r0, r5 mov r1, #1 bl func_ov00_020cadb0 mov r0, #1 ldmia sp!, {r4, r5, r6, pc} _021814b4: mov r2, #4 mov r0, r5 mov r1, r4 strb r2, [r5, #0x1a0] bl func_ov00_020cb60c cmp r0, #0 beq _021817fc bl func_ov30_02181828 mov r1, #0xf6 mov r2, #0 bl func_ov00_020bf008 mov r0, r5 mov r1, #1 bl func_ov00_020cadb0 mov r0, #1 ldmia sp!, {r4, r5, r6, pc} _021814f4: bl func_ov30_02181828 mov r1, #0xf6 mov r2, #0 bl func_ov00_020bf008 ldr r0, _0218180c ; =data_027e0ffc ldr r1, _02181810 ; =0x000001bd add r2, r5, #0x48 mov r3, #0 bl func_ov00_020ceacc mov r0, r5 add r1, r4, #4 bl func_ov30_02182e9c mov r0, r5 mov r1, #0 bl func_ov00_020cadb0 add r0, r5, #0x220 mov r1, #0xa mov r2, #0 bl func_ov00_020c51d0 mov r0, #1 ldmia sp!, {r4, r5, r6, pc} _02181548: mov r0, #0 ldmia sp!, {r4, r5, r6, pc} _02181550: bl func_ov30_02181838 bl func_ov59_02198fe0 cmp r0, #0 beq _02181590 mov r2, #5 mov r0, r5 mov r1, r4 strb r2, [r5, #0x1a4] bl func_ov00_020cb60c cmp r0, #0 beq _021817fc mov r0, r5 mov r1, #1 bl func_ov00_020cadb0 mov r0, #1 ldmia sp!, {r4, r5, r6, pc} _02181590: mov r2, #4 mov r0, r5 mov r1, r4 strb r2, [r5, #0x1a4] bl func_ov00_020cb60c cmp r0, #0 beq _021817fc mov r0, r5 mov r1, #1 bl func_ov00_020cadb0 mov r0, #1 ldmia sp!, {r4, r5, r6, pc} _021815c0: ldr r2, [r5, #0x444] cmp r2, #2 moveq r0, #1 ldmia sp!, {r4, r5, r6, pc} bl func_ov00_020cb60c cmp r0, #0 beq _021817fc mov r0, r5 mov r1, #1 bl func_ov00_020cadb0 mov r0, #1 ldmia sp!, {r4, r5, r6, pc} _021815f0: add r1, r4, #4 bl func_ov30_021812f0 cmp r0, #0 mov r0, r5 beq _02181628 mov r1, r4 bl func_ov00_020cb60c cmp r0, #0 beq _021817fc mov r0, r5 mov r1, #1 bl func_ov00_020cadb0 mov r0, #1 ldmia sp!, {r4, r5, r6, pc} _02181628: mov r1, #0 bl func_ov00_020cadb0 add r0, r5, #0x220 mov r1, #0xb mov r2, #0 bl func_ov00_020c51d0 mov r0, #1 ldmia sp!, {r4, r5, r6, pc} _02181648: add r1, r4, #4 bl func_ov30_021812f0 cmp r0, #0 beq _02181680 mov r0, r5 mov r1, r4 bl func_ov00_020cb60c cmp r0, #0 beq _021817fc mov r0, r5 mov r1, #1 bl func_ov00_020cadb0 mov r0, #1 ldmia sp!, {r4, r5, r6, pc} _02181680: ldr r6, [r4, #0x14] cmp r6, #0 beq _02181704 ldr r1, [r6, #4] ldr r0, _02181814 ; =0x424d524e cmp r1, r0 bne _021816bc ldr r0, _0218180c ; =data_027e0ffc ldr r1, _02181818 ; =0x0000019d add r2, r5, #0x48 mov r3, #0 bl func_ov00_020ceacc mov r0, r6 bl func_ov14_021231d4 b _02181704 _021816bc: ldr r0, _0218181c ; =0x41525257 cmp r1, r0 bne _021816dc ldrsh r1, [r5, #0x78] mov r0, r6 mov r2, #1 bl func_ov14_02120ac4 b _02181704 _021816dc: ldr r0, _02181820 ; =0x5342454d cmp r1, r0 bne _02181704 ldr r0, _0218180c ; =data_027e0ffc add r2, r5, #0x48 mov r1, #0xf6 mov r3, #0 bl func_ov00_020ceacc ldr r0, [r4, #0x14] bl func_ov14_02146634 _02181704: mov r0, r5 mov r1, #0 bl func_ov00_020cadb0 add r0, r5, #0x220 mov r1, #0xb mov r2, #0 bl func_ov00_020c51d0 mov r0, #1 ldmia sp!, {r4, r5, r6, pc} _02181728: bl func_ov00_020cb60c cmp r0, #0 beq _021817fc mov r0, r5 bl func_ov30_0218322c mov r0, r5 mov r1, #1 bl func_ov00_020cadb0 mov r0, #1 ldmia sp!, {r4, r5, r6, pc} _02181750: ldr r3, [r4, #0x14] ldr r2, _02181824 ; =0x42494752 ldr r3, [r3, #4] cmp r3, r2 bne _0218178c mov r2, #2 strb r2, [r5, #0x1ab] bl func_ov00_020cb60c cmp r0, #0 beq _021817fc mov r0, r5 mov r1, #1 bl func_ov00_020cadb0 mov r0, #1 ldmia sp!, {r4, r5, r6, pc} _0218178c: add r1, r4, #4 bl func_ov30_021812f0 cmp r0, #0 beq _021817c4 mov r0, r5 mov r1, r4 bl func_ov00_020cb60c cmp r0, #0 beq _021817fc mov r0, r5 mov r1, #1 bl func_ov00_020cadb0 mov r0, #1 ldmia sp!, {r4, r5, r6, pc} _021817c4: ldr r0, _0218180c ; =data_027e0ffc ldr r1, _02181810 ; =0x000001bd add r2, r5, #0x48 mov r3, #0 bl func_ov00_020ceacc mov r0, r5 mov r1, #0 bl func_ov00_020cadb0 add r0, r5, #0x220 mov r1, #0xb mov r2, #0 bl func_ov00_020c51d0 mov r0, #1 ldmia sp!, {r4, r5, r6, pc} _021817fc: mov r0, #0 ldmia sp!, {r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov30_02181364 _02181804: .word data_027e0fb4 _02181808: .word 0x43485334 _0218180c: .word data_027e0ffc _02181810: .word 0x000001bd _02181814: .word 0x424d524e _02181818: .word 0x0000019d _0218181c: .word 0x41525257 _02181820: .word 0x5342454d _02181824: .word 0x42494752 arm_func_start func_ov30_02181828 func_ov30_02181828: ; 0x02181828 ldr ip, _02181834 ; =func_01fffcec mov r0, #0 bx ip .align 2, 0 arm_func_end func_ov30_02181828 _02181834: .word func_01fffcec arm_func_start func_ov30_02181838 func_ov30_02181838: ; 0x02181838 ldr ip, _02181844 ; =func_01fffcec mov r0, #8 bx ip .align 2, 0 arm_func_end func_ov30_02181838 _02181844: .word func_01fffcec arm_func_start func_ov30_02181848 func_ov30_02181848: ; 0x02181848 stmdb sp!, {r3, r4, r5, lr} mov r4, r1 mov r5, r0 mov r1, #0 bl func_ov30_021823cc mov r0, r5 mov r1, #1 bl func_ov30_02183018 mov r0, r5 bl func_ov00_020c3180 ldr r0, [r4] and r0, r0, #0x1f cmp r0, #8 bne _02181894 ldr r0, [r5, #4] add r1, r5, #0x48 mov r2, #1 bl func_ov00_020c8398 b _021818a8 _02181894: ldr r0, _021818b0 ; =data_027e0ffc ldr r1, _021818b4 ; =0x0000018f add r2, r5, #0x48 mov r3, #0 bl func_ov00_020ceacc _021818a8: mov r0, #1 ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov30_02181848 _021818b0: .word data_027e0ffc _021818b4: .word 0x0000018f arm_func_start func_ov30_021818b8 func_ov30_021818b8: ; 0x021818b8 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0x54 mov r5, r0 ldr r1, [r5, #0x2a0] cmp r1, #0 cmpne r1, #1 cmpne r1, #0xc addeq sp, sp, #0x54 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} add r1, sp, #0x44 bl func_ov00_020c2a0c ldr r1, _021819e0 ; =data_027e0fe4 ldr r2, _021819e4 ; =0x48415254 ldr r1, [r1] add r0, sp, #8 add r3, r5, #0x48 bl func_ov00_020c38fc ldr r1, [sp, #8] mvn r0, #0 cmp r1, r0 beq _02181944 ldr r0, _021819e0 ; =data_027e0fe4 add r1, sp, #8 ldr r0, [r0] bl func_ov00_020c3674 add r1, sp, #0x34 mov r4, r0 bl func_ov00_020c2a0c add r0, sp, #0x44 add r1, sp, #0x34 bl func_01ffec34 cmp r0, #0 beq _02181944 mov r0, r4 bl func_ov14_0213a3dc _02181944: ldr r7, _021819e0 ; =data_027e0fe4 mov r4, #0 add sl, sp, #0 add r8, sp, #0x10 add fp, sp, #0x44 mvn r6, #0 _0218195c: ldr sb, _021819e8 ; =data_ov30_021887d0 add lr, sp, #0x20 ldmia sb!, {r0, r1, r2, r3} mov ip, lr stmia lr!, {r0, r1, r2, r3} ldr sb, [sb] ldr r1, [r7] str sb, [lr] ldr r2, [ip, r4, lsl #2] mov r0, sl add r3, r5, #0x48 bl func_ov00_020c38fc ldr r0, [sp] cmp r0, r6 beq _021819cc ldr r0, [r7] mov r1, sl bl func_ov00_020c3674 mov r1, r8 mov sb, r0 bl func_ov00_020c2a0c mov r0, fp mov r1, r8 bl func_01ffec34 cmp r0, #0 beq _021819cc mov r0, sb bl func_ov14_02135474 _021819cc: add r4, r4, #1 cmp r4, #5 blt _0218195c add sp, sp, #0x54 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 arm_func_end func_ov30_021818b8 _021819e0: .word data_027e0fe4 _021819e4: .word 0x48415254 _021819e8: .word data_ov30_021887d0 arm_func_start func_ov30_021819ec func_ov30_021819ec: ; 0x021819ec stmdb sp!, {r3, lr} ldr r1, [r0, #0x444] cmp r1, #2 moveq r0, #0 ldmia sp!, {r3, pc} ldr r1, [r0, #0x2a0] cmp r1, #8 bgt _02181a3c cmp r1, #0 addge pc, pc, r1, lsl #2 b _02181a68 _02181a18: ; jump table b _02181a68 ; case 0 b _02181a68 ; case 1 b _02181a68 ; case 2 b _02181a48 ; case 3 b _02181a48 ; case 4 b _02181a48 ; case 5 b _02181a68 ; case 6 b _02181a68 ; case 7 b _02181a48 ; case 8 _02181a3c: cmp r1, #0x10 beq _02181a50 b _02181a68 _02181a48: mov r0, #1 ldmia sp!, {r3, pc} _02181a50: add r0, r0, r1, lsl #2 ldr r0, [r0, #0x220] bl func_ov30_0217fd44 cmp r0, #0 movne r0, #1 ldmia sp!, {r3, pc} _02181a68: mov r0, #0 ldmia sp!, {r3, pc} arm_func_end func_ov30_021819ec arm_func_start func_ov30_02181a70 func_ov30_02181a70: ; 0x02181a70 stmdb sp!, {r4, r5, lr} sub sp, sp, #0x24 mov r4, r0 bl func_ov30_021819ec cmp r0, #0 beq _02181ac0 mov r0, r4 bl func_ov30_02182fb4 cmp r0, #0 beq _02181ac0 ldr r0, [r4, #0x870] add r2, sp, #0x18 str r0, [sp, #0x18] ldr r1, [r4, #0x874] add r0, r4, #0x220 str r1, [sp, #0x1c] ldr r3, [r4, #0x878] mov r1, #9 str r3, [sp, #0x20] bl func_ov00_020c51d0 _02181ac0: bl func_0200e8f8 and r1, r1, #0 and r0, r0, #3 cmp r1, #0 cmpeq r0, #0 mov r2, #0 bne _02181cfc ldr r0, [r4, #0x2a0] cmp r0, #9 addls pc, pc, r0, lsl #2 b _02181b88 _02181aec: ; jump table b _02181b88 ; case 0 b _02181b88 ; case 1 b _02181b88 ; case 2 b _02181b14 ; case 3 b _02181b14 ; case 4 b _02181b14 ; case 5 b _02181b4c ; case 6 b _02181b88 ; case 7 b _02181b14 ; case 8 b _02181b4c ; case 9 _02181b14: mov r0, r4 mov r1, #2 bl func_ov30_0217d09c cmp r0, #0 beq _02181b88 mov r3, #0 add r2, sp, #8 add r0, r4, #0x220 mov r1, #7 str r3, [sp, #8] bl func_ov00_020c51d0 add sp, sp, #0x24 mov r0, #1 ldmia sp!, {r4, r5, pc} _02181b4c: mov r0, r4 mov r1, #2 mov r2, #1 bl func_ov30_0217d09c cmp r0, #0 beq _02181b88 mov r3, #0 add r2, sp, #4 add r0, r4, #0x220 mov r1, #7 str r3, [sp, #4] bl func_ov00_020c51d0 add sp, sp, #0x24 mov r0, #1 ldmia sp!, {r4, r5, pc} _02181b88: ldr r0, [r4, #0x2a0] cmp r0, #9 addls pc, pc, r0, lsl #2 b _02181c08 _02181b98: ; jump table b _02181c08 ; case 0 b _02181c08 ; case 1 b _02181c08 ; case 2 b _02181bc0 ; case 3 b _02181bc0 ; case 4 b _02181bc0 ; case 5 b _02181bc0 ; case 6 b _02181c08 ; case 7 b _02181bc0 ; case 8 b _02181bc0 ; case 9 _02181bc0: mov r0, r4 ldr r5, _02181d08 ; =data_027e0f94 bl func_ov30_0217d690 cmp r0, #0 beq _02181c08 ldr lr, [r5] ldr ip, [r5, #4] ldr r3, [r5, #8] add r2, sp, #0xc add r0, r4, #0x220 mov r1, #9 str lr, [sp, #0xc] str ip, [sp, #0x10] str r3, [sp, #0x14] bl func_ov00_020c51d0 add sp, sp, #0x24 mov r0, #1 ldmia sp!, {r4, r5, pc} _02181c08: ldr r0, [r4, #0x2a0] cmp r0, #9 addls pc, pc, r0, lsl #2 b _02181c6c _02181c18: ; jump table b _02181c6c ; case 0 b _02181c6c ; case 1 b _02181c6c ; case 2 b _02181c40 ; case 3 b _02181c40 ; case 4 b _02181c40 ; case 5 b _02181c40 ; case 6 b _02181c6c ; case 7 b _02181c6c ; case 8 b _02181c40 ; case 9 _02181c40: mov r0, r4 bl func_ov30_021833ec cmp r0, #0 beq _02181c6c add r0, r4, #0x220 mov r1, #8 mov r2, #0 bl func_ov00_020c51d0 add sp, sp, #0x24 mov r0, #1 ldmia sp!, {r4, r5, pc} _02181c6c: ldr r1, [r4, #4] ldr r0, _02181d0c ; =0x43485334 cmp r1, r0 bne _02181ce8 ldr r0, [r4, #0x2a0] cmp r0, #9 addls pc, pc, r0, lsl #2 b _02181cfc _02181c8c: ; jump table b _02181cfc ; case 0 b _02181cfc ; case 1 b _02181cfc ; case 2 b _02181cb4 ; case 3 b _02181cb4 ; case 4 b _02181cb4 ; case 5 b _02181cb4 ; case 6 b _02181cfc ; case 7 b _02181cfc ; case 8 b _02181cb4 ; case 9 _02181cb4: mov r0, r4 bl func_ov30_0217d3b8 cmp r0, #0 beq _02181cfc mov r3, #3 add r2, sp, #0 add r0, r4, #0x220 mov r1, #7 str r3, [sp] bl func_ov00_020c515c add sp, sp, #0x24 mov r0, #1 ldmia sp!, {r4, r5, pc} _02181ce8: add r0, r0, #2 cmp r1, r0 bne _02181cfc mov r0, r4 bl func_ov30_02183ea0 _02181cfc: mov r0, #0 add sp, sp, #0x24 ldmia sp!, {r4, r5, pc} .align 2, 0 arm_func_end func_ov30_02181a70 _02181d08: .word data_027e0f94 _02181d0c: .word 0x43485334 arm_func_start func_ov30_02181d10 func_ov30_02181d10: ; 0x02181d10 stmdb sp!, {r4, lr} mov r4, r0 bl func_ov30_021818b8 mov r0, r4 bl func_ov30_02181a70 ldr r0, [r4, #0x844] cmp r0, #0 beq _02181d5c ldr r0, [r4, #0x2a0] cmp r0, #3 cmpne r0, #4 bne _02181d4c mov r0, #0 str r0, [r4, #0xaa8] b _02181d5c _02181d4c: add r0, r4, #0xa8 add r0, r0, #0x800 add r1, r4, #0x48 bl func_ov30_0217bd80 _02181d5c: ldr r0, [r4, #0x2a0] cmp r0, #0 cmpne r0, #1 cmpne r0, #2 cmpne r0, #0xc cmpne r0, #0x11 cmpne r0, #0x12 beq _02181d88 ldrb r0, [r4, #0xab7] cmp r0, #0x1f beq _02181d9c _02181d88: mvn r0, #0 str r0, [r4, #0x20c] mov r0, #0 str r0, [r4, #0x164] b _02181e88 _02181d9c: mov r1, #3 str r1, [r4, #0x20c] mov r0, #0x800 str r0, [r4, #0x210] ldr r0, [r4, #0x164] orr r0, r0, #8 str r0, [r4, #0x164] ldr r0, [r4, #0x2a0] cmp r0, #7 bne _02181e34 ldr r0, [r4, #0x23c] ldr r0, [r0, #8] cmp r0, #0x10 addls pc, pc, r0, lsl #2 b _02181e28 _02181dd8: ; jump table b _02181e28 ; case 0 b _02181e28 ; case 1 b _02181e28 ; case 2 b _02181e28 ; case 3 b _02181e28 ; case 4 b _02181e1c ; case 5 b _02181e28 ; case 6 b _02181e1c ; case 7 b _02181e1c ; case 8 b _02181e1c ; case 9 b _02181e28 ; case 10 b _02181e1c ; case 11 b _02181e1c ; case 12 b _02181e28 ; case 13 b _02181e1c ; case 14 b _02181e1c ; case 15 b _02181e1c ; case 16 _02181e1c: mov r0, #0 str r0, [r4, #0x210] b _02181e70 _02181e28: mov r0, #0x800 str r0, [r4, #0x210] b _02181e70 _02181e34: cmp r0, #0xd bne _02181e50 sub r0, r1, #4 str r0, [r4, #0x20c] mov r0, #0 str r0, [r4, #0x164] b _02181e70 _02181e50: cmp r0, #0xf movne r0, #0 strne r0, [r4, #0x210] bne _02181e70 sub r0, r1, #4 str r0, [r4, #0x20c] mov r0, #0 str r0, [r4, #0x164] _02181e70: ldr r1, [r4, #4] ldr r0, _02181e90 ; =0x43485334 cmp r1, r0 ldrne r0, [r4, #0x164] orrne r0, r0, #1 strne r0, [r4, #0x164] _02181e88: mov r0, #1 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov30_02181d10 _02181e90: .word 0x43485334 arm_func_start func_ov30_02181e94 func_ov30_02181e94: ; 0x02181e94 stmdb sp!, {r4, lr} mov r4, r0 bl func_ov00_020cacf4 cmp r0, #0 movne r0, #1 ldmia sp!, {r4, pc} ldr r0, [r4, #0x2a0] cmp r0, #1 movls r0, #1 ldmia sp!, {r4, pc} cmp r0, #0x11 moveq r0, #1 ldmia sp!, {r4, pc} ldr r0, _02181ef4 ; =data_027e0fc8 ldr r0, [r0] bl func_ov00_020bbb64 cmp r0, #0 beq _02181eec ldr r0, [r4, #0x444] cmp r0, #2 moveq r0, #1 ldmia sp!, {r4, pc} _02181eec: mov r0, #0 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov30_02181e94 _02181ef4: .word data_027e0fc8 arm_func_start func_ov30_02181ef8 func_ov30_02181ef8: ; 0x02181ef8 stmdb sp!, {r3, r4, r5, r6, lr} sub sp, sp, #0x74 mov r4, r0 ldrh r2, [r4, #0x7a] ldr r0, _0218230c ; =0x0000ffff cmp r2, r0 addeq sp, sp, #0x74 ldmia sp!, {r3, r4, r5, r6, pc} ldrh r0, [r1] tst r0, #4 bne _02181f30 tst r0, #8 addeq sp, sp, #0x74 ldmia sp!, {r3, r4, r5, r6, pc} _02181f30: add r1, sp, #0x14 str r1, [sp] mov r2, #0 add r0, sp, #0x10 stmib sp, {r0, r2} ldr r0, _02182310 ; =data_027e0d3c str r2, [sp, #0xc] ldr r0, [r0] mov r3, r2 add r1, r4, #0x48 bl func_ov00_02079470 cmp r0, #0 addeq sp, sp, #0x74 ldmia sp!, {r3, r4, r5, r6, pc} add r0, sp, #0x54 bl func_01ffbe34 mov r1, #1 add r0, sp, #0x54 str r1, [sp, #0x58] str r0, [sp] ldrh r3, [r4, #0x7a] ldr r1, [sp, #0x14] ldr r2, [sp, #0x10] ldr r0, _02182314 ; =data_02063e4c bl func_020313c8 cmp r0, #0 addeq sp, sp, #0x74 ldmia sp!, {r3, r4, r5, r6, pc} ldrb r0, [r4, #0x87e] cmp r0, #0 beq _02181fd4 add r1, sp, #0x54 str r1, [sp] ldr r1, [sp, #0x14] ldr r2, [sp, #0x10] ldr r0, _02182314 ; =data_02063e4c add r1, r1, #9 sub r2, r2, #0xa mov r3, #0x27 bl func_020313c8 b _021820a4 _02181fd4: mov r0, r4 bl func_ov30_02182fdc cmp r0, #0 beq _02182038 add r0, r4, #0x800 ldrsh r2, [r0, #0x7c] ldr r1, _02182318 ; =data_02050f54 add r2, r2, #0xc00 strh r2, [r0, #0x7c] ldrh r0, [r0, #0x7c] mov r0, r0, asr #0x4 mov r0, r0, lsl #0x2 ldrsh r0, [r1, r0] cmp r0, #0 blt _021820a4 add r1, sp, #0x54 str r1, [sp] ldr r1, [sp, #0x14] ldr r2, [sp, #0x10] ldr r0, _02182314 ; =data_02063e4c add r1, r1, #9 sub r2, r2, #0xa mov r3, #0x1e bl func_020313c8 b _021820a4 _02182038: mov r0, r4 bl func_ov30_02182ffc cmp r0, #0 add r0, r4, #0x800 beq _0218209c ldrsh r2, [r0, #0x7c] ldr r1, _02182318 ; =data_02050f54 add r2, r2, #0xc00 strh r2, [r0, #0x7c] ldrh r0, [r0, #0x7c] mov r0, r0, asr #0x4 mov r0, r0, lsl #0x2 ldrsh r0, [r1, r0] cmp r0, #0 blt _021820a4 add r1, sp, #0x54 str r1, [sp] ldr r1, [sp, #0x14] ldr r2, [sp, #0x10] ldr r0, _02182314 ; =data_02063e4c add r1, r1, #9 sub r2, r2, #0xa mov r3, #0x27 bl func_020313c8 b _021820a4 _0218209c: mov r1, #0 strh r1, [r0, #0x7c] _021820a4: ldrsb r0, [sp, #0x5c] sub r0, r0, #1 strb r0, [sp, #0x5c] ldr r0, [r4, #0x880] cmp r0, #5 addls pc, pc, r0, lsl #2 b _0218219c _021820c0: ; jump table b _0218219c ; case 0 b _02182100 ; case 1 b _02182128 ; case 2 b _02182150 ; case 3 b _02182178 ; case 4 b _021820d8 ; case 5 _021820d8: add r1, sp, #0x54 str r1, [sp] ldr r1, [sp, #0x14] ldr r2, [sp, #0x10] ldr r0, _02182314 ; =data_02063e4c add r1, r1, #5 sub r2, r2, #4 mov r3, #0x20 bl func_020313c8 b _0218219c _02182100: add r1, sp, #0x54 str r1, [sp] ldr r1, [sp, #0x14] ldr r2, [sp, #0x10] ldr r0, _02182314 ; =data_02063e4c add r1, r1, #6 sub r2, r2, #5 mov r3, #0x21 bl func_020313c8 b _0218219c _02182128: add r1, sp, #0x54 str r1, [sp] ldr r1, [sp, #0x14] ldr r2, [sp, #0x10] ldr r0, _02182314 ; =data_02063e4c add r1, r1, #6 sub r2, r2, #5 mov r3, #0x28 bl func_020313c8 b _0218219c _02182150: add r1, sp, #0x54 str r1, [sp] ldr r1, [sp, #0x14] ldr r2, [sp, #0x10] ldr r0, _02182314 ; =data_02063e4c add r1, r1, #6 sub r2, r2, #5 mov r3, #0x29 bl func_020313c8 b _0218219c _02182178: add r1, sp, #0x54 str r1, [sp] ldr r1, [sp, #0x14] ldr r2, [sp, #0x10] ldr r0, _02182314 ; =data_02063e4c add r1, r1, #6 sub r2, r2, #5 mov r3, #0x2a bl func_020313c8 _0218219c: ldr r0, [r4, #0x15c] cmp r0, #2 addeq sp, sp, #0x74 ldmia sp!, {r3, r4, r5, r6, pc} add r0, sp, #0x34 bl func_01ffbe34 ldrh r4, [r4, #0x78] ldr r3, _02182318 ; =data_02050f54 add r0, sp, #0x24 mov r1, r4, asr #0x4 mov r2, r1, lsl #0x1 add r1, r2, #1 mov r1, r1, lsl #0x1 mov r5, r2, lsl #0x1 ldrsh r2, [r3, r1] ldrsh r1, [r3, r5] rsb r2, r2, #0 blx func_01ff8018 mov r0, r4, lsl #0x10 mov r0, r0, asr #0x10 mov r0, r0, lsl #0x10 mov r0, r0, lsr #0x10 mov r0, r0, asr #0x4 mov r3, r0, lsl #0x1 add r1, r3, #1 ldr r2, _02182318 ; =data_02050f54 mov r3, r3, lsl #0x1 mov r1, r1, lsl #0x1 ldrsh lr, [r2, r3] ldrsh r4, [r2, r1] add r2, sp, #0x24 mov r1, lr, asr #0x1f mov r5, r1, lsl #0xf mov r1, r4, asr #0x1f mov ip, r1, lsl #0xf mov r1, #2 str r1, [sp, #0x38] mov r1, #3 strb r1, [sp, #0x3c] mov r1, #1 ldr r0, _0218231c ; =data_027e0d0c mov r3, #0x800 add r6, sp, #0x18 str r2, [sp, #0x34] strb r1, [sp, #0x3f] ldmia r0!, {r0, r1, r2} stmia r6!, {r0, r1, r2} adds r1, r3, lr, lsl #15 orr r5, r5, lr, lsr #17 ldr r2, [sp, #0x18] adc r0, r5, #0 mov r1, r1, lsr #0xc orr r1, r1, r0, lsl #20 add r5, r2, r1 adds r1, r3, r4, lsl #15 orr ip, ip, r4, lsr #17 mov r2, r1, lsr #0xc adc r0, ip, #0 orr r2, r2, r0, lsl #20 ldr r3, [sp, #0x20] ldr r1, [sp, #0x14] add r2, r3, r2 add r0, r5, #0x800 add r0, r1, r0, asr #12 str r0, [sp, #0x14] str r2, [sp, #0x20] add r1, r2, #0x800 ldr r2, [sp, #0x10] str r5, [sp, #0x18] add r1, r2, r1, asr #12 add r0, sp, #0x34 str r1, [sp, #0x10] str r0, [sp] ldr r0, _02182314 ; =data_02063e4c ldr r1, [sp, #0x14] ldr r2, [sp, #0x10] mov r3, #0x25 bl func_020313c8 ldr r0, _02182320 ; =data_027e0d38 mov r4, #6 ldr r0, [r0] add r0, r0, #0xc bl func_ov00_020a5e9c cmp r0, #0x29 moveq r4, #8 ldr r0, _02182324 ; =data_027e0c38 mov r2, r4 mov r1, #2 mov r3, #1 bl func_02033e70 add sp, sp, #0x74 ldmia sp!, {r3, r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov30_02181ef8 _0218230c: .word 0x0000ffff _02182310: .word data_027e0d3c _02182314: .word data_02063e4c _02182318: .word data_02050f54 _0218231c: .word data_027e0d0c _02182320: .word data_027e0d38 _02182324: .word data_027e0c38 arm_func_start func_ov30_02182328 func_ov30_02182328: ; 0x02182328 stmdb sp!, {r4, lr} mov r4, r0 cmp r1, #0 ldrneb r0, [r4, #0xa5] ldreqb r0, [r4, #0xa4] cmp r0, #0 beq _02182364 mov r0, r4 bl func_ov00_020c31c0 ldrb r1, [r4, #0xab7] mov r0, r4 bl func_ov00_020cc9c4 mov r0, #1 strb r0, [r4, #0x73c] ldmia sp!, {r4, pc} _02182364: ldrsh r2, [r4, #0x78] add r0, r4, #0x800 mov r1, #0 strh r2, [r0, #0x40] strb r1, [r4, #0x73c] ldmia sp!, {r4, pc} arm_func_end func_ov30_02182328 arm_func_start func_ov30_0218237c func_ov30_0218237c: ; 0x0218237c stmdb sp!, {r3, r4, lr} sub sp, sp, #0xc mov r4, r0 ldrb r1, [r4, #0xab7] ldr r0, [r4, #0x434] bl func_020197fc add r0, r4, #0x430 bl func_ov30_0217cba0 add r1, sp, #0 add r0, r4, #0x450 bl func_ov30_0217c588 ldr r0, [sp] ldr r1, [sp, #8] bl func_01ffa0f4 add r1, r4, #0x800 strh r0, [r1, #0x40] add sp, sp, #0xc ldmia sp!, {r3, r4, pc} arm_func_end func_ov30_0218237c arm_func_start func_ov30_021823c4 func_ov30_021823c4: ; 0x021823c4 ldrb r0, [r0, #0x21c] bx lr arm_func_end func_ov30_021823c4 arm_func_start func_ov30_021823cc func_ov30_021823cc: ; 0x021823cc strb r1, [r0, #0x21c] bx lr arm_func_end func_ov30_021823cc arm_func_start func_ov30_021823d4 func_ov30_021823d4: ; 0x021823d4 ldr r0, [r0, #0x2a0] cmp r0, #0xc bne _021823e8 mov r0, #1 bx lr _021823e8: mov r0, #0 bx lr arm_func_end func_ov30_021823d4 arm_func_start func_ov30_021823f0 func_ov30_021823f0: ; 0x021823f0 ldrb r0, [r0, #0x848] bx lr arm_func_end func_ov30_021823f0 arm_func_start func_ov30_021823f8 func_ov30_021823f8: ; 0x021823f8 stmdb sp!, {r4, lr} mov r4, r0 ldrh r1, [r4, #0x24] cmp r1, #0 ble _02182424 ldr r0, _02182450 ; =data_027e0f74 ldr r0, [r0] bl func_ov00_02097760 cmp r0, #0 moveq r0, #0 ldmia sp!, {r4, pc} _02182424: ldrh r1, [r4, #0x26] cmp r1, #0 ble _02182448 ldr r0, _02182450 ; =data_027e0f74 ldr r0, [r0] bl func_ov00_02097760 cmp r0, #0 movne r0, #0 ldmia sp!, {r4, pc} _02182448: mov r0, #1 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov30_021823f8 _02182450: .word data_027e0f74 arm_func_start func_ov30_02182454 func_ov30_02182454: ; 0x02182454 ldr r1, [r0, #0x2a0] cmp r1, #7 ldreq r0, [r0, #0x23c] ldreq r0, [r0, #8] cmpeq r0, #0xc moveq r0, #1 movne r0, #0 bx lr arm_func_end func_ov30_02182454 arm_func_start func_ov30_02182474 func_ov30_02182474: ; 0x02182474 stmdb sp!, {r3, r4, r5, lr} ldr r1, _021824bc ; =data_027e0f90 mov r5, r0 ldr r0, [r1] ldr r4, _021824c0 ; =data_027e0f94 ldr r1, [r0] ldr r1, [r1, #4] blx r1 cmp r0, #0 moveq r0, #0 ldmia sp!, {r3, r4, r5, pc} str r4, [sp] ldrsh r1, [r5, #0x78] ldr r2, _021824c4 ; =0x00001b33 ldr r3, _021824c8 ; =0x00001555 add r0, r5, #0x48 bl func_ov00_020c54a0 ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov30_02182474 _021824bc: .word data_027e0f90 _021824c0: .word data_027e0f94 _021824c4: .word 0x00001b33 _021824c8: .word 0x00001555 arm_func_start func_ov30_021824cc func_ov30_021824cc: ; 0x021824cc stmdb sp!, {r4, r5, lr} sub sp, sp, #0x94 mov r4, r0 bl func_ov30_02182b4c ldr r0, [r4, #0x86c] ldr r2, _02182624 ; =0x0000ffff add r0, r0, r0, lsr #31 mov r0, r0, asr #0x1 str r0, [r4, #0x86c] mov r1, #0 add r0, sp, #0x1c strh r2, [sp, #0x58] strh r2, [sp, #0x5a] strh r2, [sp, #0x5c] strh r2, [sp, #0x5e] strh r1, [sp, #0x60] strb r1, [sp, #0x82] strb r1, [sp, #0x83] strb r1, [sp, #0x84] strb r1, [sp, #0x85] strb r1, [sp, #0x8c] strb r1, [sp, #0x8d] strb r1, [sp, #0x8e] strb r1, [sp, #0x8f] strb r1, [sp, #0x90] strb r1, [sp, #0x91] bl func_ov30_0217c108 mov r3, #0 strb r3, [sp, #0x20] ldr r0, [r4, #0x86c] mov r1, #4 str r0, [sp] ldr r2, [r4, #8] add r0, sp, #0x1c str r2, [sp, #4] str r1, [sp, #8] str r0, [sp, #0xc] ldr r0, _02182628 ; =data_027e0e60 str r3, [sp, #0x10] add r2, r4, #0x860 ldr r0, [r0] add r1, sp, #0x34 mov r3, r2 bl func_01ffbf5c cmp r0, #0 ldrneb r0, [sp, #0x20] cmpne r0, #0 add r0, sp, #0x1c beq _021825a0 bl func_ov00_02081f4c add sp, sp, #0x94 mov r0, #1 ldmia sp!, {r4, r5, pc} _021825a0: bl func_ov00_02081f4c ldr r1, _0218262c ; =data_027e0fe4 ldr r2, _02182630 ; =0x424f4d42 ldr r1, [r1] add r0, sp, #0x14 add r3, r4, #0x860 bl func_ov00_020c38fc ldr r1, [sp, #0x14] mvn r0, #0 cmp r1, r0 beq _02182618 ldr r0, _0218262c ; =data_027e0fe4 add r1, sp, #0x14 ldr r0, [r0] bl func_ov00_020c3674 add r1, sp, #0x24 mov r5, r0 bl func_ov00_020c2a0c add r0, sp, #0x24 add r1, r4, #0x860 bl func_01ffec34 cmp r0, #0 beq _02182618 add r0, r4, #0x48 add r1, r5, #0x48 bl func_ov00_020c5464 cmp r0, #0 addne sp, sp, #0x94 movne r0, #1 ldmia sp!, {r4, r5, pc} _02182618: mov r0, #0 add sp, sp, #0x94 ldmia sp!, {r4, r5, pc} .align 2, 0 arm_func_end func_ov30_021824cc _02182624: .word 0x0000ffff _02182628: .word data_027e0e60 _0218262c: .word data_027e0fe4 _02182630: .word 0x424f4d42 arm_func_start func_ov30_02182634 func_ov30_02182634: ; 0x02182634 stmdb sp!, {r4, r5, r6, r7, r8, sb, lr} sub sp, sp, #0x19c mov r4, r0 bl func_ov30_02182b4c add r0, sp, #0x14 mov r1, r4 add r2, r4, #0x860 bl func_ov00_020c23d4 mov r2, #0 add r0, sp, #0x114 ldr r1, _02182ab4 ; =0x0000ffff strh r2, [r0, #0x54] strh r1, [r0, #0x4c] strh r1, [r0, #0x4e] strh r1, [r0, #0x50] strh r1, [r0, #0x52] strb r2, [sp, #0x18a] strb r2, [sp, #0x18b] strb r2, [sp, #0x18c] strb r2, [sp, #0x18d] strb r2, [sp, #0x194] strb r2, [sp, #0x195] strb r2, [sp, #0x196] strb r2, [sp, #0x197] strb r2, [sp, #0x198] strb r2, [sp, #0x199] ldr r1, [r4, #0x86c] mov r0, #2 str r1, [sp] str r0, [sp, #4] mov r0, #4 str r0, [sp, #8] str r2, [sp, #0xc] str r2, [sp, #0x10] ldr r0, _02182ab8 ; =data_027e0e60 add r2, r4, #0x860 ldr r0, [r0] add r1, sp, #0x13c mov r3, r2 bl func_01ffbf5c mov r1, #0 add r0, sp, #0x128 mvn r2, #0 ldr r5, _02182abc ; =data_ov00_020e72f0 ldr r3, _02182ac0 ; =0x424f4d42 str r5, [sp, #0xf4] add r5, sp, #0x74 str r3, [sp, #0xf8] str r2, [sp, #0xfc] str r2, [sp, #0x100] str r1, [sp, #0x104] strb r1, [sp, #0x108] strb r1, [sp, #0x124] str r1, [r0, #0xc] str r1, [r0] str r1, [r0, #4] str r1, [r0, #8] add r0, sp, #0xf4 _0218271c: str r2, [r5] str r2, [r5, #4] add r5, r5, #8 cmp r5, r0 blo _0218271c ldr r0, _02182ac4 ; =data_027e0fe4 mov r3, #0 ldr r0, [r0] add r6, sp, #0x74 mov r5, #0x10 add r1, sp, #0xf4 add r2, sp, #0x68 str r3, [sp, #0x70] str r6, [sp, #0x68] str r5, [sp, #0x6c] bl func_ov00_020c37ec ldr r0, [sp, #0x70] mov r5, #0 cmp r0, #0 ble _021827d4 ldr r7, _02182ac4 ; =data_027e0fe4 mov r6, r5 add r8, sp, #0x58 _02182778: ldr r1, [sp, #0x68] ldr r0, [r7] add r1, r1, r6 bl func_ov00_020c3674 mov r1, r8 mov sb, r0 bl func_ov00_020c2a0c mov r1, r8 add r0, r4, #0x860 bl func_01ffec34 cmp r0, #0 beq _021827c0 mov r0, sb bl func_ov14_02122eb8 cmp r0, #0 beq _021827c0 mov r0, sb bl func_ov14_02122e98 _021827c0: ldr r0, [sp, #0x70] add r5, r5, #1 cmp r5, r0 add r6, r6, #8 blt _02182778 _021827d4: ldrh r0, [r4, #0x78] mov r1, #0 ldr r3, _02182ac8 ; =data_02050f54 mov r0, r0, asr #0x4 mov r2, r0, lsl #0x1 add r0, r2, #1 mov r2, r2, lsl #0x1 mov r0, r0, lsl #0x1 ldrsh r2, [r3, r2] ldrsh r0, [r3, r0] str r1, [sp, #0x50] str r2, [sp, #0x4c] str r0, [sp, #0x54] ldr r1, [r4, #4] ldr r0, _02182acc ; =0x43485334 add r2, sp, #0x4c cmp r1, r0 bne _02182960 mov r0, #1 str r0, [sp] ldrb r3, [r4, #0x124] mov r0, r4 add r1, r4, #0x860 bl func_ov00_020c1ef8 cmp r0, #0 addeq sp, sp, #0x19c moveq r0, #0 ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} ldr r0, _02182ad0 ; =data_ov30_021887e4 add r3, sp, #0x34 ldmia r0!, {r0, r1, r2} stmia r3!, {r0, r1, r2} ldrh r1, [r4, #0x78] ldr r3, _02182ac8 ; =data_02050f54 ldr r0, [r4, #0x48] mov r1, r1, asr #0x4 mov r2, r1, lsl #0x1 add r1, r2, #1 mov r2, r2, lsl #0x1 ldrsh r5, [r3, r2] mov r1, r1, lsl #0x1 str r0, [sp, #0x40] ldr ip, [r4, #0x4c] ldr r2, [sp, #0x3c] ldrsh r6, [r3, r1] smull r1, r3, r2, r5 adds lr, r1, #0x800 ldr r8, [sp, #0x34] ldr sb, [sp, #0x38] smull r1, r7, r2, r6 add r2, ip, sb str ip, [sp, #0x44] adc sb, r3, #0 ldr r3, [r4, #0x50] adds ip, r1, #0x800 mov r1, lr, lsr #0xc orr r1, r1, sb, lsl #20 add r1, r0, r1 str r2, [sp, #0x44] smull r4, r6, r8, r6 adc sb, r7, #0 adds r7, r4, #0x800 rsb r5, r5, #0 mov r0, ip, lsr #0xc orr r0, r0, sb, lsl #20 add r0, r3, r0 smull r5, r4, r8, r5 adc r6, r6, #0 mov r7, r7, lsr #0xc orr r7, r7, r6, lsl #20 add r6, r1, r7 adds r5, r5, #0x800 adc r1, r4, #0 mov r4, r5, lsr #0xc orr r4, r4, r1, lsl #20 add r0, r0, r4 str r0, [sp, #0x48] str r6, [sp, #0x40] mov r1, #0 str r1, [sp] str r1, [sp, #4] ldr r0, _02182ad4 ; =data_027e0e58 ldr r1, _02182ad8 ; =0x000001c1 ldr r0, [r0] add r2, sp, #0x40 mov r3, #2 bl func_ov00_0207c1b0 mov r1, #0 str r1, [sp] str r1, [sp, #4] ldr r0, _02182ad4 ; =data_027e0e58 ldr r1, _02182adc ; =0x000001c2 ldr r0, [r0] add r2, sp, #0x40 mov r3, #2 bl func_ov00_0207c1b0 add sp, sp, #0x19c mov r0, #1 ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} _02182960: mov r0, #0x1e str r0, [sp] ldrb r3, [r4, #0x124] mov r0, r4 add r1, r4, #0x860 bl func_ov30_02182ae4 cmp r0, #0 addeq sp, sp, #0x19c moveq r0, #0 ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} ldr r0, _02182ae0 ; =data_ov30_021887f0 add r3, sp, #0x1c ldmia r0!, {r0, r1, r2} stmia r3!, {r0, r1, r2} ldrh r0, [r4, #0x78] ldr r3, _02182ac8 ; =data_02050f54 ldr r8, [sp, #0x24] mov r0, r0, asr #0x4 mov r2, r0, lsl #0x1 add r0, r2, #1 mov r2, r2, lsl #0x1 mov r0, r0, lsl #0x1 ldrsh r2, [r3, r2] ldrsh r5, [r3, r0] ldr ip, [sp, #0x1c] smull r0, r6, r8, r2 adds lr, r0, #0x800 rsb r3, r2, #0 ldr r1, [r4, #0x48] adc r6, r6, #0 mov lr, lr, lsr #0xc smull r2, r7, r8, r5 orr lr, lr, r6, lsl #20 str r1, [sp, #0x28] ldr sb, [r4, #0x4c] ldr r0, [sp, #0x20] smull r5, r6, ip, r5 adds r8, r2, #0x800 add r1, r1, lr adc lr, r7, #0 adds r7, r5, #0x800 str sb, [sp, #0x2c] smull r5, r3, ip, r3 adc r6, r6, #0 mov r7, r7, lsr #0xc orr r7, r7, r6, lsl #20 ldr r2, [r4, #0x50] add r0, sb, r0 str r0, [sp, #0x2c] mov r0, r8, lsr #0xc orr r0, r0, lr, lsl #20 add r6, r1, r7 adds r5, r5, #0x800 adc r1, r3, #0 mov r3, r5, lsr #0xc add r0, r2, r0 orr r3, r3, r1, lsl #20 add r0, r0, r3 str r0, [sp, #0x30] str r6, [sp, #0x28] mov r1, #0 str r1, [sp] str r1, [sp, #4] ldr r0, _02182ad4 ; =data_027e0e58 ldr r1, _02182ad8 ; =0x000001c1 ldr r0, [r0] add r2, sp, #0x28 mov r3, #2 bl func_ov00_0207c1b0 mov r1, #0 str r1, [sp] str r1, [sp, #4] ldr r0, _02182ad4 ; =data_027e0e58 ldr r1, _02182adc ; =0x000001c2 ldr r0, [r0] add r2, sp, #0x28 mov r3, #2 bl func_ov00_0207c1b0 add r0, r4, #0x220 mov r1, #0x11 mov r2, #0 bl func_ov00_020c51d0 mov r0, #1 add sp, sp, #0x19c ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} .align 2, 0 arm_func_end func_ov30_02182634 _02182ab4: .word 0x0000ffff _02182ab8: .word data_027e0e60 _02182abc: .word data_ov00_020e72f0 _02182ac0: .word 0x424f4d42 _02182ac4: .word data_027e0fe4 _02182ac8: .word data_02050f54 _02182acc: .word 0x43485334 _02182ad0: .word data_ov30_021887e4 _02182ad4: .word data_027e0e58 _02182ad8: .word 0x000001c1 _02182adc: .word 0x000001c2 _02182ae0: .word data_ov30_021887f0 arm_func_start func_ov30_02182ae4 func_ov30_02182ae4: ; 0x02182ae4 stmdb sp!, {r4, r5, r6, lr} mov r6, r1 mov r5, r2 mov r4, r3 bl func_ov00_020c1d58 cmp r0, #0 moveq r0, #0 ldmia sp!, {r4, r5, r6, pc} ldr r0, _02182b44 ; =data_027e0f90 mov r1, r6 ldr r0, [r0] bl func_ov00_020a7c1c cmp r0, #0 moveq r0, #0 ldmia sp!, {r4, r5, r6, pc} ldr r0, _02182b48 ; =data_027e0fc8 ldrsh r3, [sp, #0x10] ldr r0, [r0] mov r1, r4 ldr ip, [r0] mov r2, r5 ldr ip, [ip, #0x70] blx ip ldmia sp!, {r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov30_02182ae4 _02182b44: .word data_027e0f90 _02182b48: .word data_027e0fc8 arm_func_start func_ov30_02182b4c func_ov30_02182b4c: ; 0x02182b4c stmdb sp!, {r3, r4, r5, r6, lr} sub sp, sp, #0xc ldr r1, _02182c50 ; =data_ov30_021887fc mov r3, r0 add r4, sp, #0 ldmia r1!, {r0, r1, r2} stmia r4!, {r0, r1, r2} ldrh r1, [r3, #0x78] ldr r0, [r3, #0x48] ldr r4, _02182c54 ; =data_02050f54 str r0, [r3, #0x860] ldr r0, [r3, #0x4c] mov r1, r1, asr #0x4 str r0, [r3, #0x864] ldr r0, [r3, #0x50] mov r2, r1, lsl #0x1 str r0, [r3, #0x868] mov r1, r2, lsl #0x1 ldrsh r0, [r4, r1] add r1, r2, #1 mov r1, r1, lsl #0x1 ldr r5, [r3, #0x864] ldr r2, [sp, #4] ldrsh r4, [r4, r1] add r1, r5, r2 str r1, [r3, #0x864] ldr r6, [sp, #8] ldr r5, [r3, #0x860] smull r1, ip, r6, r0 adds lr, r1, #0x800 smull r2, r1, r6, r4 adc ip, ip, #0 adds r2, r2, #0x800 mov lr, lr, lsr #0xc orr lr, lr, ip, lsl #20 add r5, r5, lr str r5, [r3, #0x860] adc r1, r1, #0 mov r2, r2, lsr #0xc ldr ip, [r3, #0x868] orr r2, r2, r1, lsl #20 add r1, ip, r2 str r1, [r3, #0x868] ldr lr, [sp] rsb r0, r0, #0 smull r1, r2, lr, r4 adds ip, r1, #0x800 smull r1, r0, lr, r0 adc r2, r2, #0 adds r1, r1, #0x800 mov ip, ip, lsr #0xc ldr lr, [r3, #0x860] orr ip, ip, r2, lsl #20 add r2, lr, ip str r2, [r3, #0x860] adc r0, r0, #0 mov r1, r1, lsr #0xc ldr r2, [r3, #0x868] orr r1, r1, r0, lsl #20 add r0, r2, r1 str r0, [r3, #0x868] mov r0, #0xc00 str r0, [r3, #0x86c] add sp, sp, #0xc ldmia sp!, {r3, r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov30_02182b4c _02182c50: .word data_ov30_021887fc _02182c54: .word data_02050f54 arm_func_start func_ov30_02182c58 func_ov30_02182c58: ; 0x02182c58 ldr ip, _02182c64 ; =func_ov00_020cca68 add r1, r0, #0x14 bx ip .align 2, 0 arm_func_end func_ov30_02182c58 _02182c64: .word func_ov00_020cca68 arm_func_start func_ov30_02182c68 func_ov30_02182c68: ; 0x02182c68 ldr ip, _02182c7c ; =func_ov00_020ce284 mov r2, r1 ldr r1, _02182c80 ; =0x0000019a add r0, r0, #0x48 bx ip .align 2, 0 arm_func_end func_ov30_02182c68 _02182c7c: .word func_ov00_020ce284 _02182c80: .word 0x0000019a arm_func_start func_ov30_02182c84 func_ov30_02182c84: ; 0x02182c84 ldr ip, _02182c98 ; =func_ov00_020ce284 mov r2, r1 add r0, r0, #0x48 mov r1, #0x800 bx ip .align 2, 0 arm_func_end func_ov30_02182c84 _02182c98: .word func_ov00_020ce284 arm_func_start func_ov30_02182c9c func_ov30_02182c9c: ; 0x02182c9c ldr ip, _02182cb0 ; =func_ov00_020ce284 mov r2, r1 add r0, r0, #0x48 mov r1, #0x400 bx ip .align 2, 0 arm_func_end func_ov30_02182c9c _02182cb0: .word func_ov00_020ce284 arm_func_start func_ov30_02182cb4 func_ov30_02182cb4: ; 0x02182cb4 stmdb sp!, {r4, lr} mov r4, r0 ldrb r0, [r4, #0x110] cmp r0, #0 ldreqb r0, [r4, #0x112] cmpeq r0, #0 ldreqb r0, [r4, #0x113] cmpeq r0, #0 beq _02182d34 ldr r0, [r4, #0xc4] ldr r1, [r4, #0xcc] bl func_01ffa0f4 mov r0, r0, lsl #0x10 mov r0, r0, asr #0x10 sub r0, r0, #0x8000 ldrsh r2, [r4, #0x78] mov r0, r0, lsl #0x10 ldr r1, _02182d3c ; =0xffff8001 rsb r0, r2, r0, asr #16 mov r0, r0, lsl #0x10 mov r2, r0, asr #0x10 cmp r1, r0, asr #16 mov r2, r1, lsr #0x11 bgt _02182d24 cmp r2, #0 rsblt r0, r2, #0 mov r0, r0, lsl #0x10 mov r2, r0, asr #0x10 _02182d24: ldr r0, _02182d40 ; =0x00001555 cmp r2, r0 movlt r0, #1 ldmia sp!, {r4, pc} _02182d34: mov r0, #0 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov30_02182cb4 _02182d3c: .word 0xffff8001 _02182d40: .word 0x00001555 arm_func_start func_ov30_02182d44 func_ov30_02182d44: ; 0x02182d44 stmdb sp!, {r3, r4, lr} sub sp, sp, #4 mov r4, r0 bl func_ov30_02182cb4 cmp r0, #0 ldrneh r2, [r4, #0xde] ldrne r0, _02182da0 ; =0x0000ffff cmpne r2, r0 beq _02182d94 ldr r1, _02182da4 ; =data_027e0f6c add r0, sp, #0 ldr r1, [r1] bl func_ov00_02093a1c ldr r0, [sp] mov r0, r0, lsr #0x9 and r0, r0, #3 cmp r0, #1 addeq sp, sp, #4 moveq r0, #1 ldmia sp!, {r3, r4, pc} _02182d94: mov r0, #0 add sp, sp, #4 ldmia sp!, {r3, r4, pc} .align 2, 0 arm_func_end func_ov30_02182d44 _02182da0: .word 0x0000ffff _02182da4: .word data_027e0f6c arm_func_start func_ov30_02182da8 func_ov30_02182da8: ; 0x02182da8 mov r1, r0 add r0, r1, #0x4c ldr ip, _02182dbc ; =func_ov00_020cd010 add r0, r0, #0x800 bx ip .align 2, 0 arm_func_end func_ov30_02182da8 _02182dbc: .word func_ov00_020cd010 arm_func_start func_ov30_02182dc0 func_ov30_02182dc0: ; 0x02182dc0 ldr ip, _02182dd0 ; =func_ov00_020cd028 add r0, r0, #0x4c add r0, r0, #0x800 bx ip .align 2, 0 arm_func_end func_ov30_02182dc0 _02182dd0: .word func_ov00_020cd028 arm_func_start func_ov30_02182dd4 func_ov30_02182dd4: ; 0x02182dd4 stmdb sp!, {r4, lr} mov r4, r0 bl func_ov00_020c2974 add r3, r4, #0x4c mov r1, r0 ldr r2, _02182df8 ; =0x00001388 add r0, r3, #0x800 bl func_ov00_020cd060 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov30_02182dd4 _02182df8: .word 0x00001388 arm_func_start func_ov30_02182dfc func_ov30_02182dfc: ; 0x02182dfc stmdb sp!, {r4, lr} mov r4, r0 bl func_ov00_020c2938 mov r1, r0 mov r0, r4 bl func_ov30_02182e34 ldmia sp!, {r4, pc} arm_func_end func_ov30_02182dfc arm_func_start func_ov30_02182e18 func_ov30_02182e18: ; 0x02182e18 stmdb sp!, {r4, lr} mov r4, r0 bl func_ov00_020c2938 mov r1, r0 mov r0, r4 bl func_ov30_02182e50 ldmia sp!, {r4, pc} arm_func_end func_ov30_02182e18 arm_func_start func_ov30_02182e34 func_ov30_02182e34: ; 0x02182e34 ldr ip, _02182e48 ; =func_ov00_020cd060 add r0, r0, #0x4c ldr r2, _02182e4c ; =0x00001388 add r0, r0, #0x800 bx ip .align 2, 0 arm_func_end func_ov30_02182e34 _02182e48: .word func_ov00_020cd060 _02182e4c: .word 0x00001388 arm_func_start func_ov30_02182e50 func_ov30_02182e50: ; 0x02182e50 ldrsh r0, [r0, #0x78] ldr r2, _02182e94 ; =0xffff8001 sub r0, r0, r1 mov r0, r0, lsl #0x10 mov r1, r0, asr #0x10 cmp r2, r0, asr #16 mov r1, r2, lsr #0x11 bgt _02182e80 cmp r1, #0 rsblt r0, r1, #0 mov r0, r0, lsl #0x10 mov r1, r0, asr #0x10 _02182e80: ldr r0, _02182e98 ; =0x0000038e cmp r1, r0 movlt r0, #1 movge r0, #0 bx lr .align 2, 0 arm_func_end func_ov30_02182e50 _02182e94: .word 0xffff8001 _02182e98: .word 0x0000038e arm_func_start func_ov30_02182e9c func_ov30_02182e9c: ; 0x02182e9c ldr ip, _02182ea4 ; =func_ov00_020cb1e8 bx ip .align 2, 0 arm_func_end func_ov30_02182e9c _02182ea4: .word func_ov00_020cb1e8 arm_func_start func_ov30_02182ea8 func_ov30_02182ea8: ; 0x02182ea8 ldr ip, _02182eb0 ; =func_ov00_020cb240 bx ip .align 2, 0 arm_func_end func_ov30_02182ea8 _02182eb0: .word func_ov00_020cb240 arm_func_start func_ov30_02182eb4 func_ov30_02182eb4: ; 0x02182eb4 ldr ip, _02182ec8 ; =func_ov00_020cd0a8 mov r1, r0 add r0, r1, #0x850 add r2, r1, #0x48 bx ip .align 2, 0 arm_func_end func_ov30_02182eb4 _02182ec8: .word func_ov00_020cd0a8 arm_func_start func_ov30_02182ecc func_ov30_02182ecc: ; 0x02182ecc stmdb sp!, {r3, r4, r5, lr} mov r4, r1 mov r1, r2 mov r5, r0 bl func_ov30_02183968 mov r2, r0 ldr r3, _02182ef8 ; =0x00001388 mov r1, r4 add r0, r5, #0x850 bl func_ov00_020cd120 ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov30_02182ecc _02182ef8: .word 0x00001388 arm_func_start func_ov30_02182efc func_ov30_02182efc: ; 0x02182efc ldr ip, _02182f08 ; =func_ov00_020cd14c add r0, r0, #0x850 bx ip .align 2, 0 arm_func_end func_ov30_02182efc _02182f08: .word func_ov00_020cd14c arm_func_start func_ov30_02182f0c func_ov30_02182f0c: ; 0x02182f0c stmdb sp!, {r4, r5, lr} sub sp, sp, #0xc ldr r2, _02182f78 ; =0x00001388 mov r5, r0 str r2, [sp] add r0, r5, #0x60 str r0, [sp, #4] add r0, r5, #0x78 str r0, [sp, #8] ldrsh r3, [r5, #0x78] ldr r2, _02182f7c ; =0x0000019a add r0, r5, #0x48 bl func_ov00_020c64d8 add r0, r5, #0x48 add r1, r5, #0x60 mov r2, r0 bl func_01ff9bc4 ldrh r4, [r5, #0x9c] mov r1, #0 mov r0, r5 strh r1, [r5, #0x9c] ldr r1, [r0] ldr r1, [r1, #0x104] blx r1 strh r4, [r5, #0x9c] add sp, sp, #0xc ldmia sp!, {r4, r5, pc} .align 2, 0 arm_func_end func_ov30_02182f0c _02182f78: .word 0x00001388 _02182f7c: .word 0x0000019a arm_func_start func_ov30_02182f80 func_ov30_02182f80: ; 0x02182f80 stmdb sp!, {r4, lr} mov r4, r0 mov r1, #0 bl func_ov30_02183018 ldr r0, [r4, #4] add r1, r4, #0x48 bl func_ov00_020c87f8 mov r0, r4 mov r1, #0 bl func_ov30_021823cc mov r0, r4 bl func_ov00_020c3180 ldmia sp!, {r4, pc} arm_func_end func_ov30_02182f80 arm_func_start func_ov30_02182fb4 func_ov30_02182fb4: ; 0x02182fb4 ldr r1, _02182fd4 ; =data_027e1038 mov r2, r0 ldr r0, [r1] ldr ip, _02182fd8 ; =func_ov00_020cef28 add r1, r2, #0x48 add r3, r2, #0x870 mov r2, #0x7800 bx ip .align 2, 0 arm_func_end func_ov30_02182fb4 _02182fd4: .word data_027e1038 _02182fd8: .word func_ov00_020cef28 arm_func_start func_ov30_02182fdc func_ov30_02182fdc: ; 0x02182fdc ldr r0, [r0, #0x2a0] cmp r0, #6 cmpne r0, #7 bne _02182ff4 mov r0, #1 bx lr _02182ff4: mov r0, #0 bx lr arm_func_end func_ov30_02182fdc arm_func_start func_ov30_02182ffc func_ov30_02182ffc: ; 0x02182ffc ldr r0, [r0, #0x2a0] cmp r0, #9 bne _02183010 mov r0, #1 bx lr _02183010: mov r0, #0 bx lr arm_func_end func_ov30_02182ffc arm_func_start func_ov30_02183018 func_ov30_02183018: ; 0x02183018 stmdb sp!, {r3, r4, r5, lr} sub sp, sp, #0x50 mov r5, r0 ldr r0, [r5, #0x880] mov r4, r1 cmp r0, #0 addeq sp, sp, #0x50 ldmia sp!, {r3, r4, r5, pc} add r0, r5, #0x48 add r3, sp, #0x44 ldmia r0!, {r0, r1, r2} stmia r3!, {r0, r1, r2} add r1, sp, #0x38 add r0, r5, #0x1e4 bl func_ov00_020c5330 add r0, sp, #0x38 ldr r2, [sp, #0x3c] mov r1, r0 str r2, [sp, #0x48] bl func_ov00_020c522c mvn r1, #0 add r0, sp, #0xc str r1, [sp, #4] str r1, [sp, #8] bl func_ov00_020c1500 mvn r1, #0 add r0, sp, #0xc str r1, [sp, #0x28] str r1, [sp, #0x2c] bl func_ov00_020c3348 ldr r0, [r5, #8] str r0, [sp, #0x28] ldr r0, [r5, #0xc] str r0, [sp, #0x2c] ldr r0, [r5, #0x880] cmp r0, #5 addls pc, pc, r0, lsl #2 b _02183208 _021830b0: ; jump table b _02183208 ; case 0 b _02183118 ; case 1 b _02183178 ; case 2 b _02183178 ; case 3 b _02183178 ; case 4 b _021830c8 ; case 5 _021830c8: mov r0, #1 strh r0, [sp, #0xc] add r1, sp, #4 str r1, [sp] ldr r0, _02183218 ; =data_027e0fe8 ldr r1, _0218321c ; =0x4e4b4559 ldr r0, [r0] add r2, sp, #0x44 add r3, sp, #0xc bl func_ov00_020c4048 ldr r0, _02183220 ; =data_027e0fe4 add r1, sp, #4 ldr r0, [r0] bl func_ov00_020c3674 cmp r0, #0 beq _02183208 add r1, sp, #0x38 mov r2, r4 bl func_ov17_02160fa4 b _02183208 _02183118: mov r0, #1 str r0, [sp, #0x30] add r1, sp, #4 str r4, [sp, #0x34] str r1, [sp] ldr r0, _02183218 ; =data_027e0fe8 ldr r1, _02183224 ; =0x464f5243 ldr r0, [r0] add r2, sp, #0x44 add r3, sp, #0xc bl func_ov00_020c4048 ldr r0, _02183220 ; =data_027e0fe4 add r1, sp, #4 ldr r0, [r0] bl func_ov00_020c3674 cmp r0, #0 beq _02183208 ldr r1, [sp, #0x38] str r1, [r0, #0x158] ldr r1, [sp, #0x3c] str r1, [r0, #0x15c] ldr r1, [sp, #0x40] str r1, [r0, #0x160] b _02183208 _02183178: mov r1, #1 str r1, [sp, #0x30] str r4, [sp, #0x34] ldr r0, [r5, #0x880] cmp r0, #2 beq _021831b0 cmp r0, #3 beq _021831a4 cmp r0, #4 streqh r1, [sp, #0xe] b _021831b8 _021831a4: mov r0, #0 strh r0, [sp, #0xe] b _021831b8 _021831b0: mov r0, #2 strh r0, [sp, #0xe] _021831b8: add r1, sp, #4 str r1, [sp] ldr r0, _02183218 ; =data_027e0fe8 ldr r1, _02183228 ; =0x43525953 ldr r0, [r0] add r2, sp, #0x44 add r3, sp, #0xc bl func_ov00_020c4048 ldr r0, _02183220 ; =data_027e0fe4 add r1, sp, #4 ldr r0, [r0] bl func_ov00_020c3674 cmp r0, #0 beq _02183208 ldr r1, [sp, #0x38] str r1, [r0, #0x158] ldr r1, [sp, #0x3c] str r1, [r0, #0x15c] ldr r1, [sp, #0x40] str r1, [r0, #0x160] _02183208: mov r0, #0 str r0, [r5, #0x880] add sp, sp, #0x50 ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov30_02183018 _02183218: .word data_027e0fe8 _0218321c: .word 0x4e4b4559 _02183220: .word data_027e0fe4 _02183224: .word 0x464f5243 _02183228: .word 0x43525953 arm_func_start func_ov30_0218322c func_ov30_0218322c: ; 0x0218322c stmdb sp!, {r4, lr} sub sp, sp, #0x38 mov r4, r0 ldr r0, [r4, #0x880] cmp r0, #0 addeq sp, sp, #0x38 ldmia sp!, {r4, pc} mvn r1, #0 add r0, sp, #0xc str r1, [sp, #4] str r1, [sp, #8] bl func_ov00_020c1500 mvn r1, #0 add r0, sp, #0xc str r1, [sp, #0x28] str r1, [sp, #0x2c] bl func_ov00_020c3348 ldr r0, [r4, #8] str r0, [sp, #0x28] ldr r0, [r4, #0xc] str r0, [sp, #0x2c] ldr r0, [r4, #0x880] cmp r0, #5 addls pc, pc, r0, lsl #2 b _021833c8 _02183290: ; jump table b _021833c8 ; case 0 b _021832f0 ; case 1 b _02183344 ; case 2 b _02183344 ; case 3 b _02183344 ; case 4 b _021832a8 ; case 5 _021832a8: mov r0, #1 strh r0, [sp, #0xc] add r1, sp, #4 str r1, [sp] ldr r0, _021833d8 ; =data_027e0fe8 ldr r1, _021833dc ; =0x4e4b4559 ldr r0, [r0] add r3, sp, #0xc add r2, r4, #0x48 bl func_ov00_020c4048 ldr r0, _021833e0 ; =data_027e0fe4 add r1, sp, #4 ldr r0, [r0] bl func_ov00_020c3674 cmp r0, #0 beq _021833c8 bl func_ov17_02160974 b _021833c8 _021832f0: mov r0, #1 str r0, [sp, #0x30] add r1, sp, #4 str r1, [sp] ldr r0, _021833d8 ; =data_027e0fe8 ldr r1, _021833e4 ; =0x464f5243 ldr r0, [r0] add r3, sp, #0xc add r2, r4, #0x48 bl func_ov00_020c4048 ldr r0, _021833e0 ; =data_027e0fe4 add r1, sp, #4 ldr r0, [r0] bl func_ov00_020c3674 cmp r0, #0 beq _021833c8 mov r2, #0 mov r1, #5 strb r2, [r0, #0x182] bl func_ov17_0215e9ec b _021833c8 _02183344: mov r1, #1 str r1, [sp, #0x30] ldr r0, [r4, #0x880] cmp r0, #2 beq _02183378 cmp r0, #3 beq _0218336c cmp r0, #4 streqh r1, [sp, #0xe] b _02183380 _0218336c: mov r0, #0 strh r0, [sp, #0xe] b _02183380 _02183378: mov r0, #2 strh r0, [sp, #0xe] _02183380: add r1, sp, #4 str r1, [sp] ldr r0, _021833d8 ; =data_027e0fe8 ldr r1, _021833e8 ; =0x43525953 ldr r0, [r0] add r3, sp, #0xc add r2, r4, #0x48 bl func_ov00_020c4048 ldr r0, _021833e0 ; =data_027e0fe4 add r1, sp, #4 ldr r0, [r0] bl func_ov00_020c3674 cmp r0, #0 beq _021833c8 mov r2, #0 mov r1, #3 strb r2, [r0, #0x182] bl func_ov17_0215f2e4 _021833c8: mov r0, #0 str r0, [r4, #0x880] add sp, sp, #0x38 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov30_0218322c _021833d8: .word data_027e0fe8 _021833dc: .word 0x4e4b4559 _021833e0: .word data_027e0fe4 _021833e4: .word 0x464f5243 _021833e8: .word 0x43525953 arm_func_start func_ov30_021833ec func_ov30_021833ec: ; 0x021833ec stmdb sp!, {r4, r5, r6, r7, r8, sb, lr} sub sp, sp, #0x2bc mov r4, r0 ldr r1, [r4, #4] ldr r0, _02183800 ; =0x43485334 cmp r1, r0 addeq sp, sp, #0x2bc moveq r0, #0 ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} add r0, r0, #0x1e cmp r1, r0 addeq sp, sp, #0x2bc moveq r0, #0 ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} ldr r0, [r4, #0x880] cmp r0, #0 beq _02183448 mvn r0, #0 str r0, [r4, #0x884] str r0, [r4, #0x888] add sp, sp, #0x2bc mov r0, #0 ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} _02183448: ldr r3, _02183804 ; =data_ov00_020e72f0 mvn r5, #0 mov r6, #0 add r1, sp, #0x2a8 ldr r2, _02183808 ; =0x464f5243 add r7, sp, #0x1f4 mov r0, #0x10 str r0, [sp, #0x1ec] str r5, [sp] str r5, [sp, #4] str r5, [sp, #8] str r5, [sp, #0xc] str r5, [sp, #0x10] str r5, [sp, #0x14] str r5, [sp, #0x18] str r5, [sp, #0x1c] str r5, [sp, #0x20] str r5, [sp, #0x24] str r5, [sp, #0x28] str r5, [sp, #0x2c] str r5, [sp, #0x30] str r5, [sp, #0x34] str r5, [sp, #0x38] str r5, [sp, #0x3c] str r3, [sp, #0x274] str r2, [sp, #0x278] str r5, [sp, #0x27c] str r5, [sp, #0x280] str r6, [sp, #0x284] strb r6, [sp, #0x288] strb r6, [sp, #0x2a4] str r6, [r1, #0xc] str r6, [r1] str r6, [r1, #4] str r6, [r1, #8] str r7, [sp, #0x1e8] str r6, [sp, #0x1f0] add r0, sp, #0x274 _021834e0: str r5, [r7] str r5, [r7, #4] add r7, r7, #8 cmp r7, r0 blo _021834e0 ldr r0, _0218380c ; =data_027e0fe4 add r1, sp, #0x274 ldr r0, [r0] add r2, sp, #0x1e8 bl func_ov00_020c37ec ldr r0, [sp, #0x1f0] mov r7, #0 cmp r0, #0 ble _0218358c ldr sb, _0218380c ; =data_027e0fe4 mov r8, r7 add r5, sp, #0 _02183524: ldr r1, [sp, #0x1e8] ldr r0, [sb] add r1, r1, r8 bl func_ov00_020c3674 cmp r0, #0 beq _02183578 ldrb r1, [r0, #0x11b] cmp r1, #0 bne _02183578 add r0, r0, #0x48 bl func_ov00_020c5288 cmp r0, #0 bne _02183578 ldr r2, [sp, #0x1e8] add r0, r5, r6, lsl #3 ldr r1, [r2, r8] add r2, r2, r8 str r1, [r5, r6, lsl #3] ldr r1, [r2, #4] add r6, r6, #1 str r1, [r0, #4] _02183578: ldr r0, [sp, #0x1f0] add r7, r7, #1 cmp r7, r0 add r8, r8, #8 blt _02183524 _0218358c: ldr r7, _02183804 ; =data_ov00_020e72f0 mov r2, #0 add r1, sp, #0x1d4 mvn r3, #0 ldr r5, _02183810 ; =0x43525953 add r8, sp, #0x120 mov r0, #0x10 str r0, [sp, #0x118] str r7, [sp, #0x1a0] str r5, [sp, #0x1a4] str r3, [sp, #0x1a8] str r3, [sp, #0x1ac] str r2, [sp, #0x1b0] strb r2, [sp, #0x1b4] strb r2, [sp, #0x1d0] str r2, [r1, #0xc] str r2, [r1] str r2, [r1, #4] str r2, [r1, #8] str r8, [sp, #0x114] str r2, [sp, #0x11c] add r0, sp, #0x1a0 _021835e4: str r3, [r8] str r3, [r8, #4] add r8, r8, #8 cmp r8, r0 blo _021835e4 ldr r0, _0218380c ; =data_027e0fe4 add r1, sp, #0x1a0 ldr r0, [r0] add r2, sp, #0x114 bl func_ov00_020c37ec ldr r0, [sp, #0x11c] mov r7, #0 cmp r0, #0 ble _02183690 ldr sb, _0218380c ; =data_027e0fe4 mov r8, r7 add r5, sp, #0 _02183628: ldr r1, [sp, #0x114] ldr r0, [sb] add r1, r1, r8 bl func_ov00_020c3674 cmp r0, #0 beq _0218367c ldrb r1, [r0, #0x11b] cmp r1, #0 bne _0218367c add r0, r0, #0x48 bl func_ov00_020c5288 cmp r0, #0 bne _0218367c ldr r2, [sp, #0x114] add r0, r5, r6, lsl #3 ldr r1, [r2, r8] add r2, r2, r8 str r1, [r5, r6, lsl #3] ldr r1, [r2, #4] add r6, r6, #1 str r1, [r0, #4] _0218367c: ldr r0, [sp, #0x11c] add r7, r7, #1 cmp r7, r0 add r8, r8, #8 blt _02183628 _02183690: ldr r7, _02183804 ; =data_ov00_020e72f0 mov r2, #0 add r1, sp, #0x100 mvn r3, #0 ldr r5, _02183814 ; =0x4e4b4559 add r8, sp, #0x4c mov r0, #0x10 str r0, [sp, #0x44] str r7, [sp, #0xcc] str r5, [sp, #0xd0] str r3, [sp, #0xd4] str r3, [sp, #0xd8] str r2, [sp, #0xdc] strb r2, [sp, #0xe0] strb r2, [sp, #0xfc] str r2, [r1, #0xc] str r2, [r1] str r2, [r1, #4] str r2, [r1, #8] str r8, [sp, #0x40] str r2, [sp, #0x48] add r0, sp, #0xcc _021836e8: str r3, [r8] str r3, [r8, #4] add r8, r8, #8 cmp r8, r0 blo _021836e8 ldr r0, _0218380c ; =data_027e0fe4 add r1, sp, #0xcc ldr r0, [r0] add r2, sp, #0x40 bl func_ov00_020c37ec ldr r0, [sp, #0x48] mov r7, #0 cmp r0, #0 ble _02183788 ldr sb, _0218380c ; =data_027e0fe4 mov r8, r7 add r5, sp, #0 _0218372c: ldr r1, [sp, #0x40] ldr r0, [sb] add r1, r1, r8 bl func_ov00_020c3674 cmp r0, #0 beq _02183774 add r0, r0, #0x48 bl func_ov00_020c5288 cmp r0, #0 bne _02183774 ldr r2, [sp, #0x40] add r0, r5, r6, lsl #3 ldr r1, [r2, r8] add r2, r2, r8 str r1, [r5, r6, lsl #3] ldr r1, [r2, #4] add r6, r6, #1 str r1, [r0, #4] _02183774: ldr r0, [sp, #0x48] add r7, r7, #1 cmp r7, r0 add r8, r8, #8 blt _0218372c _02183788: cmp r6, #0 mov r5, #0 ble _021837f4 ldr r7, _0218380c ; =data_027e0fe4 add r8, sp, #0 _0218379c: ldr r0, [r7] mov r1, r8 bl func_ov00_020c3674 mov r1, r0 mov r0, r4 add r1, r1, #0x48 bl func_ov30_0217d4e8 cmp r0, #0 beq _021837e4 add r0, sp, #0 ldr r2, [r0, r5, lsl #3] add r1, sp, #4 str r2, [r4, #0x884] ldr r1, [r1, r5, lsl #3] add sp, sp, #0x2bc mov r0, #1 str r1, [r4, #0x888] ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} _021837e4: add r5, r5, #1 cmp r5, r6 add r8, r8, #8 blt _0218379c _021837f4: mov r0, #0 add sp, sp, #0x2bc ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} .align 2, 0 arm_func_end func_ov30_021833ec _02183800: .word 0x43485334 _02183804: .word data_ov00_020e72f0 _02183808: .word 0x464f5243 _0218380c: .word data_027e0fe4 _02183810: .word 0x43525953 _02183814: .word 0x4e4b4559 arm_func_start func_ov30_02183818 func_ov30_02183818: ; 0x02183818 stmdb sp!, {r4, r5, r6, lr} ldr r2, _021838f4 ; =data_027e0fe4 mov r5, r0 add r1, r5, #0x84 ldr r0, [r2] add r1, r1, #0x800 bl func_ov00_020c3674 movs r4, r0 beq _021838ec ldr r6, [r5, #0x98] add r0, r5, #0x48 add r1, r4, #0x48 bl func_01ff9ec0 cmp r0, r6 bge _021838ec ldr r1, [r4, #4] ldr r0, _021838f8 ; =0x4e4b4559 cmp r1, r0 bne _02183878 mov r1, #5 mov r0, r4 str r1, [r5, #0x880] bl func_ov17_02160954 b _021838e4 _02183878: ldr r0, _021838fc ; =0x464f5243 cmp r1, r0 bne _02183898 mov r1, #1 mov r0, r4 str r1, [r5, #0x880] bl func_ov00_020c3180 b _021838e4 _02183898: ldr r0, _02183900 ; =0x43525953 cmp r1, r0 bne _021838e4 ldrh r0, [r4, #0x22] cmp r0, #0 beq _021838c8 cmp r0, #1 beq _021838d4 cmp r0, #2 moveq r0, #2 streq r0, [r5, #0x880] b _021838dc _021838c8: mov r0, #3 str r0, [r5, #0x880] b _021838dc _021838d4: mov r0, #4 str r0, [r5, #0x880] _021838dc: mov r0, r4 bl func_ov00_020c3180 _021838e4: mov r0, #1 ldmia sp!, {r4, r5, r6, pc} _021838ec: mov r0, #0 ldmia sp!, {r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov30_02183818 _021838f4: .word data_027e0fe4 _021838f8: .word 0x4e4b4559 _021838fc: .word 0x464f5243 _02183900: .word 0x43525953 arm_func_start func_ov30_02183904 func_ov30_02183904: ; 0x02183904 stmdb sp!, {r3, r4, r5, lr} ldr r3, _02183964 ; =data_027e0fe4 add r2, r0, #0x84 ldr r0, [r3] mov r5, r1 add r1, r2, #0x800 bl func_ov00_020c3674 movs r4, r0 beq _0218395c add r0, r4, #0x48 bl func_ov00_020c5288 cmp r0, #0 movne r0, #0 ldmia sp!, {r3, r4, r5, pc} ldr r1, [r4, #0x48] mov r0, #1 str r1, [r5] ldr r1, [r4, #0x4c] str r1, [r5, #4] ldr r1, [r4, #0x50] str r1, [r5, #8] ldmia sp!, {r3, r4, r5, pc} _0218395c: mov r0, #0 ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov30_02183904 _02183964: .word data_027e0fe4 arm_func_start func_ov30_02183968 func_ov30_02183968: ; 0x02183968 ldr r3, [r0, #4] ldr r2, _02183a68 ; =0x43485332 cmp r3, r2 bne _021839ac cmp r1, #0 beq _02183994 cmp r1, #1 beq _0218399c cmp r1, #2 beq _021839a4 b _02183a60 _02183994: mov r0, #0xf6 bx lr _0218399c: ldr r0, _02183a6c ; =0x00000171 bx lr _021839a4: ldr r0, _02183a70 ; =0x00000266 bx lr _021839ac: add r0, r2, #4 cmp r3, r0 bne _021839ec cmp r1, #0 beq _021839d4 cmp r1, #1 beq _021839dc cmp r1, #2 beq _021839e4 b _02183a60 _021839d4: mov r0, #0xa4 bx lr _021839dc: mov r0, #0xf6 bx lr _021839e4: ldr r0, _02183a74 ; =0x0000019a bx lr _021839ec: add r0, r2, #2 cmp r3, r0 bne _02183a2c cmp r1, #0 beq _02183a14 cmp r1, #1 beq _02183a1c cmp r1, #2 beq _02183a24 b _02183a60 _02183a14: mov r0, #0xa4 bx lr _02183a1c: ldr r0, _02183a6c ; =0x00000171 bx lr _02183a24: ldr r0, _02183a70 ; =0x00000266 bx lr _02183a2c: cmp r1, #0 beq _02183a48 cmp r1, #1 beq _02183a50 cmp r1, #2 beq _02183a58 b _02183a60 _02183a48: mov r0, #0xa4 bx lr _02183a50: mov r0, #0xf6 bx lr _02183a58: ldr r0, _02183a74 ; =0x0000019a bx lr _02183a60: mov r0, #0 bx lr .align 2, 0 arm_func_end func_ov30_02183968 _02183a68: .word 0x43485332 _02183a6c: .word 0x00000171 _02183a70: .word 0x00000266 _02183a74: .word 0x0000019a arm_func_start func_ov30_02183a78 func_ov30_02183a78: ; 0x02183a78 stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr} sub sp, sp, #0xa8 ldr r3, _02183b84 ; =data_ov30_02188b08 mov r2, #0 add r4, sp, #0x28 mov r1, #0x10 mov r6, r0 str r3, [sp, #4] str r2, [sp, #8] str r4, [sp, #0x1c] str r1, [sp, #0x20] str r2, [sp, #0x24] mvn r5, #0 add r0, sp, #0xa8 _02183ab0: str r5, [r4] str r5, [r4, #4] add r4, r4, #8 cmp r4, r0 blo _02183ab0 ldr r1, [r6, #8] ldr r0, _02183b88 ; =data_027e0fe4 str r1, [sp, #0xc] ldr r4, [r6, #0xc] add r3, sp, #0xc ldr r0, [r0] add r1, sp, #4 add r2, sp, #0x1c str r4, [sp, #0x10] str r5, [sp, #0x14] str r5, [sp, #0x18] str r3, [sp, #8] bl func_ov00_020c37ec cmp r0, #0 ldrgt r0, [sp, #0x24] movgt r4, #0 cmpgt r0, #0 ble _02183b78 ldr r8, _02183b8c ; =0x00002aaa ldr r7, _02183b88 ; =data_027e0fe4 mov r5, r4 mov sb, #0x2800 _02183b1c: ldr r1, [sp, #0x1c] ldr r0, [r7] add r1, r1, r5 bl func_ov00_020c3674 ldrb r1, [r0, #0x11a] add r0, r0, #0x48 cmp r1, #0 beq _02183b64 str r0, [sp] ldrsh r1, [r6, #0x78] mov r2, sb mov r3, r8 add r0, r6, #0x48 bl func_ov00_020c54a0 cmp r0, #0 addne sp, sp, #0xa8 movne r0, #1 ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc} _02183b64: ldr r0, [sp, #0x24] add r4, r4, #1 cmp r4, r0 add r5, r5, #8 blt _02183b1c _02183b78: mov r0, #0 add sp, sp, #0xa8 ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc} .align 2, 0 arm_func_end func_ov30_02183a78 _02183b84: .word data_ov30_02188b08 _02183b88: .word data_027e0fe4 _02183b8c: .word 0x00002aaa arm_func_start func_ov30_02183b90 func_ov30_02183b90: ; 0x02183b90 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr} sub sp, sp, #0xa8 ldr r3, _02183c9c ; =data_ov30_02188b08 mov r2, #0 add r4, sp, #0x28 mov r1, #0x10 mov r6, r0 str r3, [sp, #4] str r2, [sp, #8] str r4, [sp, #0x1c] str r1, [sp, #0x20] str r2, [sp, #0x24] mvn r5, #0 add r0, sp, #0xa8 _02183bc8: str r5, [r4] str r5, [r4, #4] add r4, r4, #8 cmp r4, r0 blo _02183bc8 ldr r1, [r6, #8] ldr r0, _02183ca0 ; =data_027e0fe4 str r1, [sp, #0xc] ldr r4, [r6, #0xc] add r3, sp, #0xc ldr r0, [r0] add r1, sp, #4 add r2, sp, #0x1c str r4, [sp, #0x10] str r5, [sp, #0x14] str r5, [sp, #0x18] str r3, [sp, #8] bl func_ov00_020c37ec cmp r0, #0 ldrgt r0, [sp, #0x24] movgt r4, #0 cmpgt r0, #0 ble _02183c90 ldr r8, _02183ca4 ; =0x00002aaa ldr r7, _02183ca0 ; =data_027e0fe4 mov r5, r4 mov sb, #0x2800 _02183c34: ldr r1, [sp, #0x1c] ldr r0, [r7] add r1, r1, r5 bl func_ov00_020c3674 add sl, r0, #0x48 bl func_ov30_02182454 cmp r0, #0 beq _02183c7c str sl, [sp] ldrsh r1, [r6, #0x78] mov r2, sb mov r3, r8 add r0, r6, #0x48 bl func_ov00_020c54a0 cmp r0, #0 addne sp, sp, #0xa8 movne r0, #1 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} _02183c7c: ldr r0, [sp, #0x24] add r4, r4, #1 cmp r4, r0 add r5, r5, #8 blt _02183c34 _02183c90: mov r0, #0 add sp, sp, #0xa8 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} .align 2, 0 arm_func_end func_ov30_02183b90 _02183c9c: .word data_ov30_02188b08 _02183ca0: .word data_027e0fe4 _02183ca4: .word 0x00002aaa arm_func_start func_ov30_02183ca8 func_ov30_02183ca8: ; 0x02183ca8 stmdb sp!, {r3, r4, r5, r7, lr} sub sp, sp, #0x3c ldr r2, _02183d78 ; =data_ov30_021894a0 mov r7, r1 ldr r2, [r2, #0x8c] ldr r1, [r0] ldr r4, [r2, #0x98] ldr r2, _02183d7c ; =data_027e0e60 str r1, [sp, #0x30] ldr r3, [r0, #4] add r1, sp, #0x30 str r3, [sp, #0x34] ldr r3, [r0, #8] ldr r0, [r2] str r3, [sp, #0x38] mov r2, #1 bl func_ov00_02083ee0 ldr r2, [r7] ldr r1, _02183d7c ; =data_027e0e60 str r2, [sp, #0x24] ldr r2, [r7, #4] add r5, r4, r0 str r2, [sp, #0x28] ldr r2, [r7, #8] ldr r0, [r1] str r2, [sp, #0x2c] add r1, sp, #0x24 mov r2, #1 bl func_ov00_02083ee0 ldr r1, _02183d78 ; =data_ov30_021894a0 add r0, r4, r0 str r0, [sp, #0x10] ldr r2, [r1, #0x8c] str r6, [sp, #0x18] str r5, [sp, #0x1c] str r6, [sp, #0x20] str r6, [sp, #0xc] str r6, [sp, #0x14] ldr r1, [r2, #8] mov r0, #0xc str r1, [sp] str r0, [sp, #4] ldr r1, [r2, #0xa0] ldr r0, _02183d7c ; =data_027e0e60 str r1, [sp, #8] ldr r0, [r0] add r1, sp, #0x18 add r2, sp, #0xc mov r3, r4 bl func_01ffe1cc add sp, sp, #0x3c ldmia sp!, {r3, r4, r5, r7, pc} .align 2, 0 arm_func_end func_ov30_02183ca8 _02183d78: .word data_ov30_021894a0 _02183d7c: .word data_027e0e60 arm_func_start func_ov30_02183d80 func_ov30_02183d80: ; 0x02183d80 stmdb sp!, {r3, lr} ldr r3, _02183dac ; =data_ov30_021894a0 ldr r2, _02183db0 ; =data_027e0ff0 str r0, [r3, #0x8c] ldr r0, [r2] ldr r2, _02183db4 ; =func_ov30_02183ca8 bl func_ov00_020c4898 ldr r0, _02183dac ; =data_ov30_021894a0 mov r1, #0 str r1, [r0, #0x8c] ldmia sp!, {r3, pc} .align 2, 0 arm_func_end func_ov30_02183d80 _02183dac: .word data_ov30_021894a0 _02183db0: .word data_027e0ff0 _02183db4: .word func_ov30_02183ca8 arm_func_start func_ov30_02183db8 func_ov30_02183db8: ; 0x02183db8 stmdb sp!, {r4, lr} mov r4, r0 bl func_ov30_021823f8 cmp r0, #0 moveq r0, #0 ldmia sp!, {r4, pc} ldrb r0, [r4, #0x2a] cmp r0, #0 beq _02183df4 mov r0, r4 mov r1, #0 bl func_ov00_020c1bfc cmp r0, #0 moveq r0, #0 ldmia sp!, {r4, pc} _02183df4: ldr r1, [r4, #4] ldr r0, _02183e28 ; =0x43485334 cmp r1, r0 bne _02183e20 ldr r0, _02183e2c ; =data_027e0f74 mov r1, #0x35 ldr r0, [r0] bl func_ov00_02097760 cmp r0, #0 movne r0, #0 ldmia sp!, {r4, pc} _02183e20: mov r0, #1 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov30_02183db8 _02183e28: .word 0x43485334 _02183e2c: .word data_027e0f74 arm_func_start func_ov30_02183e30 func_ov30_02183e30: ; 0x02183e30 stmdb sp!, {r3, lr} ldrb r1, [r0, #0x2b] cmp r1, #0 ldmia sp!, {r3, pc} mov r1, #1 mov r2, r1 bl func_ov00_020c1c20 ldmia sp!, {r3, pc} arm_func_end func_ov30_02183e30 arm_func_start func_ov30_02183e50 func_ov30_02183e50: ; 0x02183e50 cmp r1, #0 moveq r1, #0 streqb r1, [r0, #0x11a] streq r1, [r0, #0x12c] bxeq lr mov r1, #1 strb r1, [r0, #0x11a] mov r1, #2 str r1, [r0, #0x12c] bx lr arm_func_end func_ov30_02183e50 arm_func_start func_ov30_02183e78 func_ov30_02183e78: ; 0x02183e78 add r0, r0, #0xa00 ldrsh r0, [r0, #0xb4] cmp r0, #0 moveq r0, #1 movne r0, #0 bx lr arm_func_end func_ov30_02183e78 arm_func_start func_ov30_02183e90 func_ov30_02183e90: ; 0x02183e90 add r0, r0, #0xa00 mov r1, #0 strh r1, [r0, #0xb4] bx lr arm_func_end func_ov30_02183e90 arm_func_start func_ov30_02183ea0 func_ov30_02183ea0: ; 0x02183ea0 add r0, r0, #0xa00 ldrsh r1, [r0, #0xb4] cmp r1, #0 subgt r1, r1, #1 strgth r1, [r0, #0xb4] bx lr arm_func_end func_ov30_02183ea0 arm_func_start func_ov30_02183eb8 func_ov30_02183eb8: ; 0x02183eb8 stmdb sp!, {r4, lr} mov r4, r0 blx func_ov30_02180d34 mov r0, r4 bl func_0202ea0c mov r0, r4 ldmia sp!, {r4, pc} arm_func_end func_ov30_02183eb8 arm_func_start func_ov30_02183ed4 func_ov30_02183ed4: ; 0x02183ed4 stmdb sp!, {r4, lr} mov r4, r0 blx func_ov30_02180d34 mov r0, r4 ldmia sp!, {r4, pc} arm_func_end func_ov30_02183ed4 arm_func_start func_ov30_02183ee8 func_ov30_02183ee8: ; 0x02183ee8 stmdb sp!, {r4, lr} mov r4, r0 blx func_ov30_02180d34 mov r0, r4 bl func_0202ea0c mov r0, r4 ldmia sp!, {r4, pc} arm_func_end func_ov30_02183ee8 arm_func_start func_ov30_02183f04 func_ov30_02183f04: ; 0x02183f04 stmdb sp!, {r4, lr} mov r4, r0 blx func_ov30_02180d34 mov r0, r4 ldmia sp!, {r4, pc} arm_func_end func_ov30_02183f04 arm_func_start func_ov30_02183f18 func_ov30_02183f18: ; 0x02183f18 stmdb sp!, {r4, lr} mov r4, r0 blx func_ov30_02180d34 mov r0, r4 bl func_0202ea0c mov r0, r4 ldmia sp!, {r4, pc} arm_func_end func_ov30_02183f18 arm_func_start func_ov30_02183f34 func_ov30_02183f34: ; 0x02183f34 stmdb sp!, {r4, lr} mov r4, r0 blx func_ov30_02180d34 mov r0, r4 ldmia sp!, {r4, pc} arm_func_end func_ov30_02183f34 arm_func_start func_ov30_02183f48 func_ov30_02183f48: ; 0x02183f48 stmdb sp!, {r4, lr} mov r4, r0 blx func_ov30_02180d34 mov r0, r4 bl func_0202ea0c mov r0, r4 ldmia sp!, {r4, pc} arm_func_end func_ov30_02183f48 arm_func_start func_ov30_02183f64 func_ov30_02183f64: ; 0x02183f64 stmdb sp!, {r4, lr} mov r4, r0 blx func_ov30_02180d34 mov r0, r4 ldmia sp!, {r4, pc} arm_func_end func_ov30_02183f64 arm_func_start func_ov30_02183f78 func_ov30_02183f78: ; 0x02183f78 mov r1, #0x96 str r1, [r0, #0x9c] bx lr arm_func_end func_ov30_02183f78 arm_func_start func_ov30_02183f84 func_ov30_02183f84: ; 0x02183f84 ldr r1, [r0, #0x94] cmp r1, #0 moveq r1, #0 streq r1, [r0, #0x98] mov r1, #0x1e str r1, [r0, #0x94] bx lr arm_func_end func_ov30_02183f84 arm_func_start func_ov30_02183fa0 func_ov30_02183fa0: ; 0x02183fa0 ldr r1, [r0, #0x88] cmp r1, #0 movgt r0, #1 bxgt lr ldr r1, [r0, #0x94] cmp r1, #0 movgt r0, #1 bxgt lr ldr r0, [r0, #0x9c] cmp r0, #0 movgt r0, #1 movle r0, #0 bx lr arm_func_end func_ov30_02183fa0 arm_func_start func_ov30_02183fd4 func_ov30_02183fd4: ; 0x02183fd4 mov r1, #0 str r1, [r0, #0x94] bx lr arm_func_end func_ov30_02183fd4 arm_func_start func_ov30_02183fe0 func_ov30_02183fe0: ; 0x02183fe0 stmdb sp!, {r3, r4, r5, lr} ldrsh r3, [r0, #0xa0] mov r2, r1 cmp r3, #0 ldmia sp!, {r3, r4, r5, pc} ldr r1, _021840a8 ; =data_027e0764 mov r3, #0x3c strh r3, [r0, #0xa0] ldr r3, [r1] ldmib r1, {r0, ip} umull r4, lr, ip, r3 mla lr, ip, r0, lr ldr ip, [r1, #0xc] ldr r5, [r1, #0x10] mla lr, ip, r3, lr mov r0, #0 ldr r3, [r1, #0x14] adds r4, r5, r4 adc r3, r3, lr mov r0, r0, lsl #0x2 str r4, [r1] orr r0, r0, r3, lsr #30 str r3, [r1, #4] cmp r0, #3 addls pc, pc, r0, lsl #2 ldmia sp!, {r3, r4, r5, pc} _02184048: ; jump table b _02184058 ; case 0 b _0218406c ; case 1 b _02184080 ; case 2 b _02184094 ; case 3 _02184058: ldr r0, _021840ac ; =data_027e0c68 mov r1, #0xef mov r3, #0 bl func_02036da8 ldmia sp!, {r3, r4, r5, pc} _0218406c: ldr r0, _021840ac ; =data_027e0c68 mov r1, #0xf0 mov r3, #0 bl func_02036da8 ldmia sp!, {r3, r4, r5, pc} _02184080: ldr r0, _021840ac ; =data_027e0c68 mov r1, #0xf1 mov r3, #0 bl func_02036da8 ldmia sp!, {r3, r4, r5, pc} _02184094: ldr r0, _021840ac ; =data_027e0c68 mov r1, #0xf2 mov r3, #0 bl func_02036da8 ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov30_02183fe0 _021840a8: .word data_027e0764 _021840ac: .word data_027e0c68 arm_func_start func_ov30_021840b0 func_ov30_021840b0: ; 0x021840b0 stmdb sp!, {r3, lr} ldrsh r3, [r0, #0xa0] mov r2, r1 cmp r3, #0 ldmia sp!, {r3, pc} mov r1, #0x3c strh r1, [r0, #0xa0] ldr r0, _021840e0 ; =data_027e0c68 mov r1, #0xf3 mov r3, #0 bl func_02036da8 ldmia sp!, {r3, pc} .align 2, 0 arm_func_end func_ov30_021840b0 _021840e0: .word data_027e0c68 arm_func_start func_ov30_021840e4 func_ov30_021840e4: ; 0x021840e4 ldrsh r0, [r0, #6] bx lr arm_func_end func_ov30_021840e4 arm_func_start func_ov30_021840ec func_ov30_021840ec: ; 0x021840ec sub sp, sp, #8 mov r1, r1, lsl #0x10 ldr r2, [r0] mov r1, r1, asr #0x10 ldr r0, [r2, r1, lsl #3] add r1, r2, r1, lsl #3 str r0, [sp] ldr r1, [r1, #4] add r0, sp, #0 str r1, [sp, #4] add sp, sp, #8 bx lr arm_func_end func_ov30_021840ec arm_func_start func_ov30_0218411c func_ov30_0218411c: ; 0x0218411c stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #8 ldr r1, _021842fc ; =data_027e0fc8 mov sl, r0 ldr r0, [r1] bl func_ov00_020bbb64 cmp r0, #0 addne sp, sp, #8 ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} mov r8, #0 sub r0, r8, #1 str r0, [sl, #0x8c] str r0, [sl, #0x90] ldrsh r0, [sl, #4] mov r6, r8 sub r7, r8, #0x80000001 cmp r0, #0 ble _021841ec ldr r4, _02184300 ; =data_027e0fe4 mov sb, r8 add fp, sp, #0 _02184170: ldr r2, [sl] ldr r0, [r4] ldr r1, [r2, sb] add r2, r2, sb str r1, [sp] ldr r2, [r2, #4] mov r1, fp str r2, [sp, #4] bl func_ov00_020c3674 movs r5, r0 beq _021841d0 bl func_ov30_021823c4 cmp r0, #0 beq _021841d0 mov r0, r5 add r8, r8, #1 bl func_ov00_020c28ec cmp r0, r7 bge _021841d0 ldr r2, [sp, #4] ldr r1, [sp] mov r7, r0 str r1, [sl, #0x8c] str r2, [sl, #0x90] _021841d0: ldrsh r1, [sl, #4] add r0, r6, #1 mov r0, r0, lsl #0x10 cmp r1, r0, asr #16 add sb, sb, #8 mov r6, r0, asr #0x10 bgt _02184170 _021841ec: ldr r0, _02184304 ; =data_ov00_020eec68 cmp r8, #0 str r7, [r0, #0x28] str r8, [sl, #0x88] bne _0218424c bl func_ov00_020d7424 cmp r0, #0xa7 bne _0218424c ldr r0, _02184304 ; =data_ov00_020eec68 mov r1, #0xf bl func_ov00_020d716c ldr r0, _02184308 ; =data_027e0e60 ldr r0, [r0] bl func_ov00_02084740 mov r1, r0 ldr r0, _02184304 ; =data_ov00_020eec68 mov r2, #0 mov r3, #0x7f bl func_ov00_020d70a4 ldr r0, _02184308 ; =data_027e0e60 mov r1, #0 ldr r0, [r0] bl func_ov00_02084924 b _02184298 _0218424c: ldr r0, [sl, #0x88] cmp r0, #0 ble _02184298 ldr r0, _02184304 ; =data_ov00_020eec68 bl func_ov00_020d7424 cmp r0, #0xa7 beq _02184298 ldr r0, _02184304 ; =data_ov00_020eec68 mov r1, #0xf bl func_ov00_020d716c ldr r0, _02184304 ; =data_ov00_020eec68 mov r1, #0xa7 mov r2, #0 mov r3, #0x7f bl func_ov00_020d70a4 ldr r0, _02184308 ; =data_027e0e60 mov r1, #1 ldr r0, [r0] bl func_ov00_02084924 _02184298: ldr r0, [sl, #0x94] cmp r0, #0 ble _021842d4 sub r0, r0, #1 str r0, [sl, #0x94] ldr r0, [sl, #0x98] sub r0, r0, #1 str r0, [sl, #0x98] cmp r0, #0 bgt _021842d4 ldr r0, _0218430c ; =data_ov00_020eec9c mov r2, #0x10 mov r1, #0x1c0 str r2, [sl, #0x98] bl func_ov00_020d77e4 _021842d4: ldr r0, [sl, #0x9c] cmp r0, #0 subgt r0, r0, #1 strgt r0, [sl, #0x9c] ldrsh r0, [sl, #0xa0] cmp r0, #0 subgt r0, r0, #1 strgth r0, [sl, #0xa0] add sp, sp, #8 ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 arm_func_end func_ov30_0218411c _021842fc: .word data_027e0fc8 _02184300: .word data_027e0fe4 _02184304: .word data_ov00_020eec68 _02184308: .word data_027e0e60 _0218430c: .word data_ov00_020eec9c thumb_func_start func_ov30_02184310 func_ov30_02184310: ; 0x02184310 push {r3, r4, r5, r6} sub sp, #8 ldr r2, [r1, #8] ldr r1, [r1, #0xc] str r2, [sp] str r1, [sp, #4] mov r1, #4 ldrsh r2, [r0, r1] mov r1, #6 ldrsh r1, [r0, r1] cmp r1, r2 bge _02184360 mov r6, #0 cmp r2, #0 ble _02184360 ldr r3, [r0] sub r5, r6, #1 add r1, r3, #0 _02184334: ldr r4, [r1] cmp r4, r5 bne _02184354 ldr r1, [sp] lsl r2, r6, #3 str r1, [r3, r2] ldr r1, [sp, #4] add r4, r3, r2 str r1, [r4, #4] mov r1, #6 ldrsh r1, [r0, r1] add sp, #8 add r1, r1, #1 strh r1, [r0, #6] pop {r3, r4, r5, r6} bx lr _02184354: add r4, r6, #1 lsl r4, r4, #0x10 asr r6, r4, #0x10 add r1, #8 cmp r6, r2 blt _02184334 _02184360: add sp, #8 pop {r3, r4, r5, r6} bx lr .align 2, 0 thumb_func_end func_ov30_02184310 thumb_func_start func_ov30_02184368 func_ov30_02184368: ; 0x02184368 push {r3, r4, r5, r6} sub sp, #8 ldr r2, [r1, #8] ldr r1, [r1, #0xc] str r2, [sp] str r1, [sp, #4] mov r1, #6 ldrsh r3, [r0, r1] cmp r3, #0 bgt _02184380 sub r1, r1, #7 b _021843ba _02184380: mov r3, #4 ldrsh r5, [r0, r3] mov r1, #0 cmp r5, #0 ble _021843b6 ldr r4, [r0] add r3, r4, #0 _0218438e: ldr r6, [r3] cmp r6, r2 bne _021843aa mov r2, #0 lsl r3, r1, #3 mvn r2, r2 add r5, r4, r3 str r2, [r4, r3] str r2, [r5, #4] mov r2, #6 ldrsh r2, [r0, r2] sub r2, r2, #1 strh r2, [r0, #6] b _021843ba _021843aa: add r1, r1, #1 lsl r1, r1, #0x10 asr r1, r1, #0x10 add r3, #8 cmp r1, r5 blt _0218438e _021843b6: mov r1, #0 mvn r1, r1 _021843ba: add r0, r1, #0 add sp, #8 pop {r3, r4, r5, r6} bx lr .align 2, 0 thumb_func_end func_ov30_02184368 thumb_func_start func_ov30_021843c4 func_ov30_021843c4: ; 0x021843c4 push {r3, r4} mov r4, #0 mov r3, #0xff _021843ca: add r2, r0, #0 add r2, #0xa4 ldrb r2, [r2] cmp r1, r2 bne _021843da add r2, r0, #0 add r2, #0xa4 strb r3, [r2] _021843da: add r2, r4, #1 lsl r2, r2, #0x10 asr r4, r2, #0x10 add r0, #0x48 cmp r4, #0x40 blt _021843ca pop {r3, r4} bx lr .align 2, 0 thumb_func_end func_ov30_021843c4 thumb_func_start func_ov30_021843ec func_ov30_021843ec: ; 0x021843ec push {r4, r5, r6, r7, lr} sub sp, #0x14 str r1, [sp] mov r6, #0 add r7, r0, #0 str r6, [sp, #8] mov r0, #4 ldrsh r0, [r7, r0] cmp r0, #0 bgt _02184402 b _02184546 _02184402: str r6, [sp, #4] _02184404: ldr r1, [r7] ldr r0, [sp, #4] add r2, r1, r0 ldr r0, [r1, r0] add r1, sp, #0xc str r0, [sp, #0xc] ldr r0, [r2, #4] str r0, [sp, #0x10] ldr r0, _0218454c ; =data_027e0fe4 ldr r0, [r0] blx func_ov00_020c3674 add r4, r0, #0 bne _02184422 b _0218452a _02184422: ldr r2, [r4, #4] ldr r1, _02184550 ; =0x43485352 cmp r2, r1 beq _02184440 add r0, r1, #0 sub r0, #0x20 cmp r2, r0 beq _02184440 add r0, r1, #0 sub r0, #0x1e cmp r2, r0 beq _02184440 sub r1, #0x1c cmp r2, r1 bne _0218452a _02184440: cmp r6, #0x40 bge _0218452a add r1, r7, #0 mov r0, #0x48 add r1, #0xa4 mul r0, r6 add r5, r1, r0 _0218444e: ldrb r0, [r5] cmp r0, #0xff bne _0218451e ldr r0, [sp] add r1, r4, #0 strb r0, [r5] ldr r0, [r4, #4] add r1, #0x14 str r0, [r5, #4] ldr r0, [r4, #0x14] str r0, [r5, #8] ldr r0, [r1, #4] str r0, [r5, #0xc] ldr r0, [r1, #8] str r0, [r5, #0x10] mov r0, #0x12 ldrsh r0, [r4, r0] strh r0, [r5, #0x14] add r0, r4, #0 blx func_ov30_021823f0 cmp r0, #0 beq _02184490 add r1, r4, #0 ldr r0, [r4, #0x48] add r1, #0x48 str r0, [r5, #0x18] ldr r0, [r1, #4] str r0, [r5, #0x1c] ldr r0, [r1, #8] str r0, [r5, #0x20] mov r0, #0x78 b _021844a2 _02184490: add r1, r4, #0 ldr r0, [r4, #0x14] add r1, #0x14 str r0, [r5, #0x18] ldr r0, [r1, #4] str r0, [r5, #0x1c] ldr r0, [r1, #8] str r0, [r5, #0x20] mov r0, #0x12 _021844a2: ldrsh r0, [r4, r0] strh r0, [r5, #0x24] ldrh r1, [r4, #0x20] add r0, r4, #0 add r0, #0x20 strh r1, [r5, #0x28] ldrh r1, [r0, #2] strh r1, [r5, #0x2a] ldrh r1, [r0, #4] strh r1, [r5, #0x2c] ldrh r1, [r0, #6] strh r1, [r5, #0x2e] add r1, r5, #4 ldrb r2, [r0, #8] add r1, #0x2c strb r2, [r1] add r1, r5, #4 ldrb r2, [r0, #9] add r1, #0x2d strb r2, [r1] add r1, r5, #4 ldrb r2, [r0, #0xa] add r1, #0x2e strb r2, [r1] add r1, r5, #4 ldrb r2, [r0, #0xb] add r1, #0x2f strb r2, [r1] mov r1, #0xc ldrsb r2, [r0, r1] add r1, r5, #4 add r1, #0x30 strb r2, [r1] add r1, r5, #4 ldrb r2, [r0, #0xd] add r1, #0x31 strb r2, [r1] add r1, r5, #4 ldrb r2, [r0, #0xe] add r1, #0x32 strb r2, [r1] mov r1, #0xf ldrsb r2, [r0, r1] add r1, r5, #4 add r1, #0x33 strb r2, [r1] ldr r0, [r0, #0x10] str r0, [r5, #0x38] mov r0, #0x61 lsl r0, r0, #2 ldr r0, [r4, r0] add r0, #0x80 ldr r0, [r0] str r0, [r5, #0x3c] mov r0, #0x22 lsl r0, r0, #6 ldr r0, [r4, r0] str r0, [r5, #0x40] add r0, r6, #1 lsl r0, r0, #0x10 asr r6, r0, #0x10 b _0218452a _0218451e: add r0, r6, #1 lsl r0, r0, #0x10 asr r6, r0, #0x10 add r5, #0x48 cmp r6, #0x40 blt _0218444e _0218452a: ldr r0, [sp, #4] add r0, #8 str r0, [sp, #4] ldr r0, [sp, #8] add r0, r0, #1 lsl r0, r0, #0x10 asr r0, r0, #0x10 str r0, [sp, #8] mov r0, #4 ldrsh r1, [r7, r0] ldr r0, [sp, #8] cmp r0, r1 bge _02184546 b _02184404 _02184546: add sp, #0x14 pop {r4, r5, r6, r7, pc} nop thumb_func_end func_ov30_021843ec _0218454c: .word data_027e0fe4 _02184550: .word 0x43485352 thumb_func_start func_ov30_02184554 func_ov30_02184554: ; 0x02184554 push {r4, r5, r6, r7, lr} sub sp, #0x3c add r6, r0, #0 add r5, r6, #0 str r1, [sp, #4] mov r7, #0 add r5, #0xa8 add r4, sp, #8 _02184564: add r0, r6, #0 add r0, #0xa4 ldrb r1, [r0] ldr r0, [sp, #4] cmp r0, r1 bne _02184626 mov r0, #0 mvn r0, r0 str r0, [sp, #8] str r0, [sp, #0xc] add r0, sp, #0x10 blx func_ov00_020c1500 mov r0, #0 mvn r0, r0 str r0, [sp, #0x2c] str r0, [sp, #0x30] add r0, sp, #0x10 blx func_ov00_020c3348 ldrh r0, [r5, #0x24] add r2, r5, #4 add r3, sp, #0x10 strh r0, [r4, #8] ldrh r0, [r5, #0x26] strh r0, [r4, #0xa] ldrh r0, [r5, #0x28] strh r0, [r4, #0xc] ldrh r0, [r5, #0x2a] strh r0, [r4, #0xe] add r0, r5, #0 add r0, #0x2c ldrb r0, [r0] strb r0, [r4, #0x10] add r0, r5, #0 add r0, #0x2d ldrb r0, [r0] strb r0, [r4, #0x11] add r0, r5, #0 add r0, #0x2e ldrb r0, [r0] strb r0, [r4, #0x12] add r0, r5, #0 add r0, #0x2f ldrb r0, [r0] strb r0, [r4, #0x13] mov r0, #0x30 ldrsb r0, [r5, r0] strb r0, [r4, #0x14] add r0, r5, #0 add r0, #0x31 ldrb r0, [r0] strb r0, [r4, #0x15] add r0, r5, #0 add r0, #0x32 ldrb r0, [r0] strb r0, [r4, #0x16] mov r0, #0x33 ldrsb r0, [r5, r0] strb r0, [r4, #0x17] ldr r0, [r5, #0x34] str r0, [sp, #0x20] mov r0, #0x10 ldrsh r0, [r5, r0] strh r0, [r4, #0x1c] ldr r0, [r5, #0x38] str r0, [sp, #0x34] ldr r0, [r5, #0x3c] str r0, [sp, #0x38] add r0, sp, #8 str r0, [sp] ldr r0, _02184638 ; =data_027e0fe8 ldr r1, [r5] ldr r0, [r0] blx func_ov00_020c4048 ldr r0, _0218463c ; =data_027e0fe4 add r1, sp, #8 ldr r0, [r0] blx func_ov00_020c3674 ldr r1, [r5, #0x14] str r1, [r0, #0x48] ldr r1, [r5, #0x18] str r1, [r0, #0x4c] ldr r1, [r5, #0x1c] str r1, [r0, #0x50] ldr r1, [r5, #0x14] str r1, [r0, #0x54] ldr r1, [r5, #0x18] str r1, [r0, #0x58] ldr r1, [r5, #0x1c] str r1, [r0, #0x5c] mov r1, #0x20 ldrsh r1, [r5, r1] add r0, #0x78 strh r1, [r0] _02184626: add r0, r7, #1 lsl r0, r0, #0x10 asr r7, r0, #0x10 add r6, #0x48 add r5, #0x48 cmp r7, #0x40 blt _02184564 add sp, #0x3c pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end func_ov30_02184554 _02184638: .word data_027e0fe8 _0218463c: .word data_027e0fe4 thumb_func_start func_ov30_02184640 func_ov30_02184640: ; 0x02184640 push {r3, r4, r5, r6, r7, lr} sub sp, #0x18 add r5, r0, #0 mov r0, #6 ldrsh r0, [r5, r0] str r0, [sp, #8] cmp r0, #0 beq _0218470e ldr r0, _02184714 ; =0x00004844 ldr r1, [sp, #8] mov r2, #4 mul r0, r1 ldr r1, _02184718 ; =data_027e0ce0 ldr r1, [r1, #4] blx func_0202e9f4 cmp r0, #0 beq _02184674 ldr r1, _0218471c ; =func_ov30_02184738 ldr r2, _02184714 ; =0x00004844 str r1, [sp] mov r3, #0 ldr r1, [sp, #8] str r3, [sp, #4] blx func_0204f558 _02184674: ldr r1, _02184720 ; =0x000012a4 mov r2, #4 str r0, [r5, r1] ldr r0, _02184724 ; =0x00001024 ldr r1, [sp, #8] mul r0, r1 ldr r1, _02184718 ; =data_027e0ce0 ldr r1, [r1, #4] blx func_0202e9f4 cmp r0, #0 beq _0218469c ldr r1, _02184728 ; =func_ov30_02187f08 ldr r2, _02184724 ; =0x00001024 str r1, [sp] mov r3, #0 ldr r1, [sp, #8] str r3, [sp, #4] blx func_0204f558 _0218469c: ldr r1, _0218472c ; =0x000012a8 str r0, [r5, r1] mov r0, #0 str r0, [sp, #0xc] ldr r0, [sp, #8] cmp r0, #0 ble _021846f6 ldr r7, [sp, #0xc] add r6, r7, #0 add r4, r7, #0 _021846b0: ldr r0, [r5] add r1, r0, r7 ldr r0, [r0, r7] str r0, [sp, #0x10] ldr r0, [r1, #4] add r1, sp, #0x10 str r0, [sp, #0x14] ldr r0, _02184730 ; =data_027e0fe4 ldr r0, [r0] blx func_ov00_020c3674 ldr r1, _02184720 ; =0x000012a4 add r7, #8 ldr r1, [r5, r1] add r2, r1, r6 ldr r1, _02184734 ; =0x000008a4 str r2, [r0, r1] ldr r1, _0218472c ; =0x000012a8 ldr r1, [r5, r1] add r2, r1, r4 mov r1, #0x8a lsl r1, r1, #4 str r2, [r0, r1] ldr r0, _02184714 ; =0x00004844 add r6, r6, r0 ldr r0, _02184724 ; =0x00001024 add r4, r4, r0 ldr r0, [sp, #0xc] add r0, r0, #1 lsl r0, r0, #0x10 asr r1, r0, #0x10 ldr r0, [sp, #8] str r1, [sp, #0xc] cmp r1, r0 blt _021846b0 _021846f6: add r0, r5, #0 mov r1, #0 add r0, #0xa0 strh r1, [r0] add r0, r5, #0 add r0, #0x94 str r1, [r0] add r0, r5, #0 add r0, #0x98 str r1, [r0] add r5, #0x9c str r1, [r5] _0218470e: add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} nop thumb_func_end func_ov30_02184640 _02184714: .word 0x00004844 _02184718: .word data_027e0ce0 _0218471c: .word func_ov30_02184738 _02184720: .word 0x000012a4 _02184724: .word 0x00001024 _02184728: .word func_ov30_02187f08 _0218472c: .word 0x000012a8 _02184730: .word data_027e0fe4 _02184734: .word 0x000008a4 arm_func_start func_ov30_02184738 func_ov30_02184738: ; 0x02184738 mov r1, #0x18 str r1, [r0] str r1, [r0, #4] mov r1, #0 str r1, [r0, #8] str r1, [r0, #0xc] str r1, [r0, #0x10] str r1, [r0, #0x14] str r1, [r0, #0x18] add r3, r0, #0x44 str r3, [r0, #0x1c] strh r1, [r0, #0x2c] strh r1, [r0, #0x2e] strh r1, [r0, #0x30] strh r1, [r0, #0x32] strh r1, [r0, #0x34] strh r1, [r0, #0x36] add r1, r3, #0x4800 mov r2, #0 _02184784: str r2, [r3] str r2, [r3, #4] str r2, [r3, #8] str r2, [r3, #0x14] str r2, [r3, #0x18] strh r2, [r3, #0x1c] strh r2, [r3, #0x1e] add r3, r3, #0x20 cmp r3, r1 blo _02184784 bx lr arm_func_end func_ov30_02184738 arm_func_start func_ov30_021847b0 func_ov30_021847b0: ; 0x021847b0 stmdb sp!, {r3, lr} ldr r1, _021847dc ; =data_027e0fe0 mov r0, #0x158 ldr r1, [r1] mov r2, #4 ldr r1, [r1] bl func_0202e9dc cmp r0, #0 ldmia sp!, {r3, pc} blx func_ov30_021847e0 ldmia sp!, {r3, pc} .align 2, 0 arm_func_end func_ov30_021847b0 _021847dc: .word data_027e0fe0 thumb_func_start func_ov30_021847e0 func_ov30_021847e0: ; 0x021847e0 push {r4, lr} add r4, r0, #0 blx func_ov00_020c1554 ldr r0, _021847f0 ; =data_ov30_02189378 str r0, [r4] add r0, r4, #0 pop {r4, pc} .align 2, 0 thumb_func_end func_ov30_021847e0 _021847f0: .word data_ov30_02189378 thumb_func_start func_ov30_021847f4 func_ov30_021847f4: ; 0x021847f4 thumb_func_end func_ov30_021847f4 _021847f4: .byte 0x08 data_ov30_021847f5: ; 0x021847f5 .byte 0xb5, 0x41, 0x8c, 0x06, 0x29, 0x27, 0xd8, 0x49, 0x18, 0x79, 0x44 .byte 0xc9, 0x88, 0x09, 0x04, 0x09, 0x14, 0x8f, 0x44 _02184808: ; jump table .short _02184816 - _02184808 - 2 ; case 0 data_ov30_0218480a: ; 0x0218480a .byte 0x14, 0x00 data_ov30_0218480c: ; 0x0218480c .byte 0x1c, 0x00 data_ov30_0218480e: ; 0x0218480e .byte 0x24, 0x00 data_ov30_02184810: ; 0x02184810 .byte 0x2c, 0x00 data_ov30_02184812: ; 0x02184812 .byte 0x34, 0x00 data_ov30_02184814: ; 0x02184814 .byte 0x3c, 0x00 _02184816: mov r1, #0 blx func_ov30_02184850 b _0218484c _0218481e: .byte 0x01, 0x21 .byte 0x00, 0xf0, 0x16, 0xe8, 0x12, 0xe0, 0x02, 0x21, 0x00, 0xf0, 0x12, 0xe8, 0x0e, 0xe0, 0x03, 0x21 .byte 0x00, 0xf0, 0x0e, 0xe8, 0x0a, 0xe0, 0x04, 0x21, 0x00, 0xf0, 0x0a, 0xe8, 0x06, 0xe0, 0x05, 0x21 .byte 0x00, 0xf0, 0x06, 0xe8, 0x02, 0xe0, 0x06, 0x21, 0x00, 0xf0, 0x02, 0xe8 _0218484c: mov r0, #1 pop {r3, pc} arm_func_start func_ov30_02184850 func_ov30_02184850: ; 0x02184850 mov r2, #0 str r2, [r0, #0x138] ldr r2, [r0, #0x130] str r2, [r0, #0x134] str r1, [r0, #0x130] bx lr arm_func_end func_ov30_02184850 arm_func_start func_ov30_02184868 func_ov30_02184868: ; 0x02184868 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0x1bc sub sp, sp, #0x400 mov r4, r0 bl func_ov00_020c313c cmp r0, #0 addeq sp, sp, #0x1bc addeq sp, sp, #0x400 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} mov r0, r4 bl func_ov00_020c2bf4 ldr r0, [r4, #0x130] cmp r0, #6 addls pc, pc, r0, lsl #2 b _02185240 _021848a4: ; jump table b _021848c0 ; case 0 b _02184a08 ; case 1 b _02184b4c ; case 2 b _02184cc0 ; case 3 b _02184e2c ; case 4 b _02184f8c ; case 5 b _021850ec ; case 6 _021848c0: ldr r2, _0218524c ; =data_ov30_02188b08 mov r1, #0 add r3, sp, #0x500 mov r0, #0x10 add r3, r3, #0x3c str r0, [sp, #0x534] add r0, sp, #0x500 str r2, [sp, #0x24] str r1, [sp, #0x28] str r1, [sp, #0x538] str r3, [sp, #0x530] mvn r1, #0 add r0, r0, #0xbc _021848f4: str r1, [r3] str r1, [r3, #4] add r3, r3, #8 cmp r3, r0 blo _021848f4 ldr r0, _02185250 ; =data_027e0fe4 add r1, sp, #0x24 ldr r0, [r0] add r2, sp, #0x530 bl func_ov00_020c37ec ldr r0, [sp, #0x534] mov r6, #0 str r6, [sp, #0x18] cmp r0, #0 ldrh sl, [r4, #0x20] ble _021849cc ldr sb, [sp, #0x18] ldr fp, _02185254 ; =data_027e0e60 ldr r5, _02185250 ; =data_027e0fe4 _02184940: ldr r1, [sp, #0x530] ldr r0, [r5] add r1, r1, sb bl func_ov00_020c3674 movs r7, r0 beq _021849b8 mov r8, #0 cmp sl, #0 moveq r8, #1 beq _02184998 ldr r1, [r7, #0x48] ldr r0, [fp] str r1, [sp, #0x74] ldr r2, [r7, #0x4c] mov r1, sl str r2, [sp, #0x78] ldr r3, [r7, #0x50] add r2, sp, #0x74 str r3, [sp, #0x7c] bl func_ov00_02083770 cmp r0, #0 movne r8, #1 _02184998: cmp r8, #0 beq _021849b8 mov r0, r7 bl func_ov30_021823d4 cmp r0, #0 moveq r0, #1 streq r0, [sp, #0x18] beq _021849cc _021849b8: ldr r0, [sp, #0x534] add r6, r6, #1 cmp r6, r0 add sb, sb, #8 blt _02184940 _021849cc: ldr r0, [sp, #0x18] mov r1, #0 cmp r0, #0 mov r0, r4 bne _021849f4 mov r2, #1 bl func_ov00_020c1c20 add sp, sp, #0x1bc add sp, sp, #0x400 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} _021849f4: mov r2, r1 bl func_ov00_020c1c20 add sp, sp, #0x1bc add sp, sp, #0x400 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} _02184a08: ldr r2, _0218524c ; =data_ov30_02188b08 mov r1, #0 add r3, sp, #0x4b0 mov r0, #0x10 str r0, [sp, #0x4a8] str r2, [sp, #0x1c] str r1, [sp, #0x20] str r1, [sp, #0x4ac] str r3, [sp, #0x4a4] mvn r1, #0 add r0, sp, #0x530 _02184a34: str r1, [r3] str r1, [r3, #4] add r3, r3, #8 cmp r3, r0 blo _02184a34 ldr r0, _02185250 ; =data_027e0fe4 add r2, sp, #0x400 ldr r0, [r0] add r1, sp, #0x1c add r2, r2, #0xa4 bl func_ov00_020c37ec ldr r0, [sp, #0x4a8] mov r6, #0 str r6, [sp, #0x14] cmp r0, #0 ldrh sl, [r4, #0x20] ble _02184b10 ldr sb, [sp, #0x14] ldr fp, _02185254 ; =data_027e0e60 ldr r5, _02185250 ; =data_027e0fe4 _02184a84: ldr r1, [sp, #0x4a4] ldr r0, [r5] add r1, r1, sb bl func_ov00_020c3674 movs r7, r0 beq _02184afc mov r8, #0 cmp sl, #0 moveq r8, #1 beq _02184adc ldr r1, [r7, #0x48] ldr r0, [fp] str r1, [sp, #0x68] ldr r2, [r7, #0x4c] mov r1, sl str r2, [sp, #0x6c] ldr r3, [r7, #0x50] add r2, sp, #0x68 str r3, [sp, #0x70] bl func_ov00_02083770 cmp r0, #0 movne r8, #1 _02184adc: cmp r8, #0 beq _02184afc mov r0, r7 bl func_ov30_021823c4 cmp r0, #0 movne r0, #1 strne r0, [sp, #0x14] bne _02184b10 _02184afc: ldr r0, [sp, #0x4a8] add r6, r6, #1 cmp r6, r0 add sb, sb, #8 blt _02184a84 _02184b10: ldr r0, [sp, #0x14] mov r1, #0 cmp r0, #0 mov r0, r4 beq _02184b38 mov r2, #1 bl func_ov00_020c1c20 add sp, sp, #0x1bc add sp, sp, #0x400 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} _02184b38: mov r2, r1 bl func_ov00_020c1c20 add sp, sp, #0x1bc add sp, sp, #0x400 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} _02184b4c: ldr r6, _02185258 ; =data_ov00_020e72f0 mov r2, #0 add r1, sp, #0x490 mvn r3, #0 ldr r5, _0218525c ; =0x57544352 mov r0, #0x10 add r7, sp, #0x3dc str r0, [sp, #0x3d4] add r0, sp, #0x400 str r6, [sp, #0x45c] str r5, [sp, #0x460] str r3, [sp, #0x464] str r3, [sp, #0x468] str r2, [sp, #0x46c] strb r2, [sp, #0x470] strb r2, [sp, #0x48c] str r2, [r1, #0xc] str r2, [r1] str r2, [r1, #4] str r2, [r1, #8] str r7, [sp, #0x3d0] str r2, [sp, #0x3d8] add r0, r0, #0x5c _02184ba8: str r3, [r7] str r3, [r7, #4] add r7, r7, #8 cmp r7, r0 blo _02184ba8 ldr r0, _02185250 ; =data_027e0fe4 add r1, sp, #0x400 ldr r0, [r0] add r1, r1, #0x5c add r2, sp, #0x3d0 bl func_ov00_020c37ec ldr r0, [sp, #0x3d4] mov r6, #0 str r6, [sp, #0x10] cmp r0, #0 ldrh sl, [r4, #0x20] ble _02184c84 ldr sb, [sp, #0x10] ldr fp, _02185254 ; =data_027e0e60 ldr r5, _02185250 ; =data_027e0fe4 _02184bf8: ldr r1, [sp, #0x3d0] ldr r0, [r5] add r1, r1, sb bl func_ov00_020c3674 movs r7, r0 beq _02184c70 mov r8, #0 cmp sl, #0 moveq r8, #1 beq _02184c50 ldr r1, [r7, #0x48] ldr r0, [fp] str r1, [sp, #0x5c] ldr r2, [r7, #0x4c] mov r1, sl str r2, [sp, #0x60] ldr r3, [r7, #0x50] add r2, sp, #0x5c str r3, [sp, #0x64] bl func_ov00_02083770 cmp r0, #0 movne r8, #1 _02184c50: cmp r8, #0 beq _02184c70 mov r0, r7 bl func_ov26_02170014 cmp r0, #0 movne r0, #1 strne r0, [sp, #0x10] bne _02184c84 _02184c70: ldr r0, [sp, #0x3d4] add r6, r6, #1 cmp r6, r0 add sb, sb, #8 blt _02184bf8 _02184c84: ldr r0, [sp, #0x10] mov r1, #0 cmp r0, #0 mov r0, r4 beq _02184cac mov r2, #1 bl func_ov00_020c1c20 add sp, sp, #0x1bc add sp, sp, #0x400 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} _02184cac: mov r2, r1 bl func_ov00_020c1c20 add sp, sp, #0x1bc add sp, sp, #0x400 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} _02184cc0: ldr r6, _02185258 ; =data_ov00_020e72f0 mov r2, #0 add r1, sp, #0x3bc mvn r3, #0 ldr r5, _0218525c ; =0x57544352 add r7, sp, #0x308 mov r0, #0x10 str r0, [sp, #0x300] str r6, [sp, #0x388] str r5, [sp, #0x38c] str r3, [sp, #0x390] str r3, [sp, #0x394] str r2, [sp, #0x398] strb r2, [sp, #0x39c] strb r2, [sp, #0x3b8] str r2, [r1, #0xc] str r2, [r1] str r2, [r1, #4] str r2, [r1, #8] str r7, [sp, #0x2fc] str r2, [sp, #0x304] add r0, sp, #0x388 _02184d18: str r3, [r7] str r3, [r7, #4] add r7, r7, #8 cmp r7, r0 blo _02184d18 ldr r0, _02185250 ; =data_027e0fe4 add r1, sp, #0x388 ldr r0, [r0] add r2, sp, #0x2fc bl func_ov00_020c37ec ldr r0, [sp, #0x300] mov r6, #0 str r6, [sp, #0xc] cmp r0, #0 ldrh sl, [r4, #0x20] ble _02184df0 ldr sb, [sp, #0xc] ldr fp, _02185254 ; =data_027e0e60 ldr r5, _02185250 ; =data_027e0fe4 _02184d64: ldr r1, [sp, #0x2fc] ldr r0, [r5] add r1, r1, sb bl func_ov00_020c3674 movs r7, r0 beq _02184ddc mov r8, #0 cmp sl, #0 moveq r8, #1 beq _02184dbc ldr r1, [r7, #0x48] ldr r0, [fp] str r1, [sp, #0x50] ldr r2, [r7, #0x4c] mov r1, sl str r2, [sp, #0x54] ldr r3, [r7, #0x50] add r2, sp, #0x50 str r3, [sp, #0x58] bl func_ov00_02083770 cmp r0, #0 movne r8, #1 _02184dbc: cmp r8, #0 beq _02184ddc mov r0, r7 bl func_ov26_0217004c cmp r0, #0 movne r0, #1 strne r0, [sp, #0xc] bne _02184df0 _02184ddc: ldr r0, [sp, #0x300] add r6, r6, #1 cmp r6, r0 add sb, sb, #8 blt _02184d64 _02184df0: ldr r0, [sp, #0xc] mov r1, #0 cmp r0, #0 mov r0, r4 bne _02184e18 mov r2, #1 bl func_ov00_020c1c20 add sp, sp, #0x1bc add sp, sp, #0x400 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} _02184e18: mov r2, r1 bl func_ov00_020c1c20 add sp, sp, #0x1bc add sp, sp, #0x400 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} _02184e2c: ldr r6, _02185258 ; =data_ov00_020e72f0 mov r2, #0 add r1, sp, #0x2e8 mvn r3, #0 ldr r5, _02185260 ; =0x43485352 add r7, sp, #0x234 mov r0, #0x10 str r0, [sp, #0x22c] str r6, [sp, #0x2b4] str r5, [sp, #0x2b8] str r3, [sp, #0x2bc] str r3, [sp, #0x2c0] str r2, [sp, #0x2c4] strb r2, [sp, #0x2c8] strb r2, [sp, #0x2e4] str r2, [r1, #0xc] str r2, [r1] str r2, [r1, #4] str r2, [r1, #8] str r7, [sp, #0x228] str r2, [sp, #0x230] add r0, sp, #0x2b4 _02184e84: str r3, [r7] str r3, [r7, #4] add r7, r7, #8 cmp r7, r0 blo _02184e84 ldr r0, _02185250 ; =data_027e0fe4 add r1, sp, #0x2b4 ldr r0, [r0] add r2, sp, #0x228 bl func_ov00_020c37ec ldr r0, [sp, #0x22c] mov r7, #0 str r7, [sp, #8] cmp r0, #0 ldrh sl, [r4, #0x20] ble _02184f50 ldr sb, [sp, #8] ldr r5, _02185254 ; =data_027e0e60 ldr r6, _02185250 ; =data_027e0fe4 mov fp, r7 _02184ed4: ldr r1, [sp, #0x228] ldr r0, [r6] add r1, r1, sb bl func_ov00_020c3674 cmp r0, #0 beq _02184f3c mov r8, fp cmp sl, #0 moveq r8, #1 beq _02184f2c ldr r2, [r0, #0x48] mov r1, sl str r2, [sp, #0x44] ldr r3, [r0, #0x4c] add r2, sp, #0x44 str r3, [sp, #0x48] ldr r3, [r0, #0x50] ldr r0, [r5] str r3, [sp, #0x4c] bl func_ov00_02083770 cmp r0, #0 movne r8, #1 _02184f2c: cmp r8, #0 movne r0, #1 strne r0, [sp, #8] bne _02184f50 _02184f3c: ldr r0, [sp, #0x22c] add r7, r7, #1 cmp r7, r0 add sb, sb, #8 blt _02184ed4 _02184f50: ldr r0, [sp, #8] mov r1, #0 cmp r0, #0 mov r0, r4 bne _02184f78 mov r2, #1 bl func_ov00_020c1c20 add sp, sp, #0x1bc add sp, sp, #0x400 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} _02184f78: mov r2, r1 bl func_ov00_020c1c20 add sp, sp, #0x1bc add sp, sp, #0x400 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} _02184f8c: ldr r6, _02185258 ; =data_ov00_020e72f0 mov r2, #0 add r1, sp, #0x214 mvn r3, #0 ldr r5, _02185264 ; =0x43485332 add r7, sp, #0x160 mov r0, #0x10 str r0, [sp, #0x158] str r6, [sp, #0x1e0] str r5, [sp, #0x1e4] str r3, [sp, #0x1e8] str r3, [sp, #0x1ec] str r2, [sp, #0x1f0] strb r2, [sp, #0x1f4] strb r2, [sp, #0x210] str r2, [r1, #0xc] str r2, [r1] str r2, [r1, #4] str r2, [r1, #8] str r7, [sp, #0x154] str r2, [sp, #0x15c] add r0, sp, #0x1e0 _02184fe4: str r3, [r7] str r3, [r7, #4] add r7, r7, #8 cmp r7, r0 blo _02184fe4 ldr r0, _02185250 ; =data_027e0fe4 add r1, sp, #0x1e0 ldr r0, [r0] add r2, sp, #0x154 bl func_ov00_020c37ec ldr r0, [sp, #0x158] mov r7, #0 str r7, [sp, #4] cmp r0, #0 ldrh sl, [r4, #0x20] ble _021850b0 ldr sb, [sp, #4] ldr r5, _02185254 ; =data_027e0e60 ldr r6, _02185250 ; =data_027e0fe4 mov fp, r7 _02185034: ldr r1, [sp, #0x154] ldr r0, [r6] add r1, r1, sb bl func_ov00_020c3674 cmp r0, #0 beq _0218509c mov r8, fp cmp sl, #0 moveq r8, #1 beq _0218508c ldr r2, [r0, #0x48] mov r1, sl str r2, [sp, #0x38] ldr r3, [r0, #0x4c] add r2, sp, #0x38 str r3, [sp, #0x3c] ldr r3, [r0, #0x50] ldr r0, [r5] str r3, [sp, #0x40] bl func_ov00_02083770 cmp r0, #0 movne r8, #1 _0218508c: cmp r8, #0 movne r0, #1 strne r0, [sp, #4] bne _021850b0 _0218509c: ldr r0, [sp, #0x158] add r7, r7, #1 cmp r7, r0 add sb, sb, #8 blt _02185034 _021850b0: ldr r0, [sp, #4] mov r1, #0 cmp r0, #0 mov r0, r4 bne _021850d8 mov r2, #1 bl func_ov00_020c1c20 add sp, sp, #0x1bc add sp, sp, #0x400 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} _021850d8: mov r2, r1 bl func_ov00_020c1c20 add sp, sp, #0x1bc add sp, sp, #0x400 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} _021850ec: ldr r6, _02185258 ; =data_ov00_020e72f0 mov r2, #0 add r1, sp, #0x140 mvn r3, #0 ldr r5, _02185268 ; =0x43485336 add r7, sp, #0x8c mov r0, #0x10 str r0, [sp, #0x84] str r6, [sp, #0x10c] str r5, [sp, #0x110] str r3, [sp, #0x114] str r3, [sp, #0x118] str r2, [sp, #0x11c] strb r2, [sp, #0x120] strb r2, [sp, #0x13c] str r2, [r1, #0xc] str r2, [r1] str r2, [r1, #4] str r2, [r1, #8] str r7, [sp, #0x80] str r2, [sp, #0x88] add r0, sp, #0x10c _02185144: str r3, [r7] str r3, [r7, #4] add r7, r7, #8 cmp r7, r0 blo _02185144 ldr r0, _02185250 ; =data_027e0fe4 add r1, sp, #0x10c ldr r0, [r0] add r2, sp, #0x80 bl func_ov00_020c37ec ldr r0, [sp, #0x84] mov r7, #0 str r7, [sp] cmp r0, #0 ldrh sl, [r4, #0x20] ble _02185210 ldr sb, [sp] ldr r5, _02185254 ; =data_027e0e60 ldr r6, _02185250 ; =data_027e0fe4 mov fp, r7 _02185194: ldr r1, [sp, #0x80] ldr r0, [r6] add r1, r1, sb bl func_ov00_020c3674 cmp r0, #0 beq _021851fc mov r8, fp cmp sl, #0 moveq r8, #1 beq _021851ec ldr r2, [r0, #0x48] mov r1, sl str r2, [sp, #0x2c] ldr r3, [r0, #0x4c] add r2, sp, #0x2c str r3, [sp, #0x30] ldr r3, [r0, #0x50] ldr r0, [r5] str r3, [sp, #0x34] bl func_ov00_02083770 cmp r0, #0 movne r8, #1 _021851ec: cmp r8, #0 movne r0, #1 strne r0, [sp] bne _02185210 _021851fc: ldr r0, [sp, #0x84] add r7, r7, #1 cmp r7, r0 add sb, sb, #8 blt _02185194 _02185210: ldr r0, [sp] mov r1, #0 cmp r0, #0 mov r0, r4 bne _02185238 mov r2, #1 bl func_ov00_020c1c20 add sp, sp, #0x1bc add sp, sp, #0x400 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} _02185238: mov r2, r1 bl func_ov00_020c1c20 _02185240: add sp, sp, #0x1bc add sp, sp, #0x400 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 arm_func_end func_ov30_02184868 _0218524c: .word data_ov30_02188b08 _02185250: .word data_027e0fe4 _02185254: .word data_027e0e60 _02185258: .word data_ov00_020e72f0 _0218525c: .word 0x57544352 _02185260: .word 0x43485352 _02185264: .word 0x43485332 _02185268: .word 0x43485336 arm_func_start func_ov30_0218526c func_ov30_0218526c: ; 0x0218526c stmdb sp!, {r4, lr} mov r4, r0 bl func_ov00_020c1730 mov r0, r4 bl func_0202ea0c mov r0, r4 ldmia sp!, {r4, pc} arm_func_end func_ov30_0218526c arm_func_start func_ov30_02185288 func_ov30_02185288: ; 0x02185288 stmdb sp!, {r4, lr} mov r4, r0 bl func_ov00_020c1730 mov r0, r4 ldmia sp!, {r4, pc} arm_func_end func_ov30_02185288 arm_func_start func_ov30_0218529c func_ov30_0218529c: ; 0x0218529c stmdb sp!, {r3, r4, r5, r6, r7, r8, lr} sub sp, sp, #4 mov r7, r0 mov r6, r1 bl func_ov00_020c5118 mov r4, r0 ldr r5, [r4, #0x8a4] cmp r6, #0x10 addls pc, pc, r6, lsl #2 b _021856d0 _021852c4: ; jump table b _02185308 ; case 0 b _02185360 ; case 1 b _02185384 ; case 2 b _021853bc ; case 3 b _021853e8 ; case 4 b _02185430 ; case 5 b _02185488 ; case 6 b _021854f0 ; case 7 b _02185538 ; case 8 b _02185580 ; case 9 b _021855b8 ; case 10 b _021855e4 ; case 11 b _02185610 ; case 12 b _021856d0 ; case 13 b _02185648 ; case 14 b _021856a4 ; case 15 b _021856bc ; case 16 _02185308: mov r1, #1 bl func_ov30_021823cc mov r0, r4 mov r1, #0 bl func_ov00_020cb160 mov r5, r0 mov r1, #7 bl func_ov00_020c5d74 ldr r1, [r5, #0x10] mov r2, #0x1000 mov r0, r4 str r2, [r1, #0x10] bl func_ov30_02182da8 ldr r1, [r4, #4] ldr r0, _021856e4 ; =0x43485334 cmp r1, r0 beq _021856d0 ldr r0, _021856e8 ; =data_027e10b4 add r1, r4, #0x48 ldr r0, [r0] bl func_ov30_02183fe0 b _021856d0 _02185360: mov r1, #0 bl func_ov00_020cb160 mov r4, r0 mov r1, #0 bl func_ov00_020c5d74 ldr r0, [r4, #0x10] mov r1, #0x1000 str r1, [r0, #0x10] b _021856d0 _02185384: mov r1, #0 bl func_ov00_020cb160 mov r5, r0 mov r1, #0 bl func_ov00_020c5d74 ldr r1, [r5, #0x10] mov r2, #0x1000 mov r0, r4 str r2, [r1, #0x10] bl func_ov30_02182da8 ldrsh r0, [r4, #0x78] sub r0, r0, #0x8000 strh r0, [r7, #0x68] b _021856d0 _021853bc: mov r1, #0 bl func_ov00_020cb160 mov r5, r0 mov r1, #0 bl func_ov00_020c5d74 ldr r1, [r5, #0x10] mov r2, #0x1000 mov r0, r4 str r2, [r1, #0x10] bl func_ov30_02182da8 b _021856d0 _021853e8: mov r1, #1 bl func_ov30_021823cc mov r3, #0x100 mov r0, r5 add r1, r4, #0x48 add r2, r7, #0x5c str r3, [sp] bl func_ov30_02187c00 mov r0, r4 mov r1, #0 bl func_ov00_020cb160 mov r4, r0 mov r1, #0 bl func_ov00_020c5d74 ldr r0, [r4, #0x10] mov r1, #0x1000 str r1, [r0, #0x10] b _021856d0 _02185430: mov r2, #1 mov r1, #0 strb r2, [r7, #0xc] bl func_ov00_020cb160 mov r8, r0 mov r1, #1 bl func_ov00_020c5d74 ldr r1, [r8, #0x10] mov r2, #0x1000 mov r0, r4 str r2, [r1, #0x10] bl func_ov30_02182eb4 mov r0, r4 bl func_ov00_020c29d8 mov r0, r5 ldr r2, [r4, #0xa0] add r1, r4, #0x48 str r2, [sp] ldr r2, [r4, #0x98] ldrh r3, [r4, #0x9c] bl func_ov30_02187e18 b _021856d0 _02185488: mov r2, #0 mov r1, #1 strb r2, [r7, #0xc] bl func_ov30_021823cc mov r0, r4 mov r1, #0 bl func_ov00_020cb160 mov r5, r0 mov r1, #1 bl func_ov00_020c5d74 ldr r1, [r5, #0x10] mov r2, #0x1000 mov r0, r4 str r2, [r1, #0x10] bl func_ov30_02182eb4 mov r0, r4 bl func_ov00_020c29d8 ldr r1, [r4, #4] ldr r0, _021856e4 ; =0x43485334 cmp r1, r0 beq _021856d0 ldr r0, _021856e8 ; =data_027e10b4 add r1, r4, #0x48 ldr r0, [r0] bl func_ov30_02183fe0 b _021856d0 _021854f0: mov r2, #0 mov r1, #1 strb r2, [r7, #0xc] bl func_ov30_021823cc mov r0, r4 mov r1, #0 bl func_ov00_020cb160 mov r5, r0 mov r1, #1 bl func_ov00_020c5d74 ldr r1, [r5, #0x10] mov r2, #0x1000 mov r0, r4 str r2, [r1, #0x10] bl func_ov30_02182eb4 mov r0, r4 bl func_ov00_020c29d8 b _021856d0 _02185538: mov r2, #0 mov r1, #1 strb r2, [r7, #0xc] bl func_ov30_021823cc mov r0, r4 mov r1, #0 bl func_ov00_020cb160 mov r5, r0 mov r1, #1 bl func_ov00_020c5d74 ldr r1, [r5, #0x10] mov r2, #0x1000 mov r0, r4 str r2, [r1, #0x10] bl func_ov30_02182eb4 mov r0, r4 bl func_ov00_020c29d8 b _021856d0 _02185580: mov r1, #1 bl func_ov30_021823cc mov r0, r4 mov r1, #0 bl func_ov00_020cb160 mov r5, r0 mov r1, #2 bl func_ov00_020c5d74 ldr r1, [r5, #0x10] mov r2, #0x1000 mov r0, r4 str r2, [r1, #0x10] bl func_ov30_02182da8 b _021856d0 _021855b8: mov r1, #0 bl func_ov00_020cb160 mov r5, r0 mov r1, #0 bl func_ov00_020c5d74 ldr r1, [r5, #0x10] mov r2, #0x1000 mov r0, r4 str r2, [r1, #0x10] bl func_ov30_02182da8 b _021856d0 _021855e4: mov r1, #0 bl func_ov00_020cb160 mov r5, r0 mov r1, #2 bl func_ov00_020c5d74 ldr r1, [r5, #0x10] mov r2, #0x1000 mov r0, r4 str r2, [r1, #0x10] bl func_ov30_02182da8 b _021856d0 _02185610: mov r1, #0 bl func_ov30_021823cc mov r2, #1 mov r0, r4 mov r1, #0 strb r2, [r4, #0x87e] bl func_ov00_020cb160 mov r4, r0 mov r1, #5 bl func_ov00_020c5d74 ldr r0, [r4, #0x10] mov r1, #0x1000 str r1, [r0, #0x10] b _021856d0 _02185648: mov r1, #1 bl func_ov30_021823cc mov r0, r4 mov r1, #0 bl func_ov00_020cb160 mov r5, r0 mov r1, #9 bl func_ov00_020c5d74 ldr r0, [r5, #0x10] mov r2, #0x1000 ldr r1, _021856ec ; =data_027e0f94 str r2, [r0, #0x10] ldr r2, [r1] add r0, r7, #0x10 str r2, [r7, #0x50] ldr r2, [r1, #4] str r2, [r7, #0x54] ldr r1, [r1, #8] str r1, [r7, #0x58] bl func_ov30_0217c1c8 mov r0, #0x1f strb r0, [r4, #0xab7] b _021856d0 _021856a4: mov r1, #0 bl func_ov00_020cb160 ldr r0, [r0, #0x10] mov r1, #0 str r1, [r0, #0x10] b _021856d0 _021856bc: mov r1, #0 bl func_ov00_020cb160 ldr r0, [r0, #0x10] mov r1, #0x1000 str r1, [r0, #0x10] _021856d0: mov r0, r7 str r6, [r7, #8] bl func_ov00_020c50fc add sp, sp, #4 ldmia sp!, {r3, r4, r5, r6, r7, r8, pc} .align 2, 0 arm_func_end func_ov30_0218529c _021856e4: .word 0x43485334 _021856e8: .word data_027e10b4 _021856ec: .word data_027e0f94 arm_func_start func_ov30_021856f0 func_ov30_021856f0: ; 0x021856f0 stmdb sp!, {r3, r4, r5, lr} sub sp, sp, #8 mov r5, r0 mov r4, r1 bl func_ov00_020c5118 mov r2, #0 strb r2, [r0, #0x87e] sub r0, r2, #1 str r0, [sp, #4] add r1, sp, #0 str r2, [sp] add r0, r5, #0x10 bl func_ov30_0217c1ac ldr r0, [r4] cmp r0, #3 addls pc, pc, r0, lsl #2 b _0218578c _02185734: ; jump table b _02185780 ; case 0 b _02185744 ; case 1 b _02185758 ; case 2 b _0218576c ; case 3 _02185744: mov r0, r5 mov r1, #1 bl func_ov30_0218529c add sp, sp, #8 ldmia sp!, {r3, r4, r5, pc} _02185758: mov r0, r5 mov r1, #3 bl func_ov30_0218529c add sp, sp, #8 ldmia sp!, {r3, r4, r5, pc} _0218576c: mov r0, r5 mov r1, #0xd bl func_ov30_0218529c add sp, sp, #8 ldmia sp!, {r3, r4, r5, pc} _02185780: mov r0, r5 mov r1, #0 bl func_ov30_0218529c _0218578c: add sp, sp, #8 ldmia sp!, {r3, r4, r5, pc} arm_func_end func_ov30_021856f0 arm_func_start func_ov30_02185794 func_ov30_02185794: ; 0x02185794 stmdb sp!, {r3, r4, r5, r6, r7, lr} sub sp, sp, #0x68 mov r6, r0 bl func_ov00_020c5118 mov r4, r0 add r0, r6, #0x10 ldr r5, [r4, #0x8a4] bl func_ov30_0217c21c ldr r0, [r6, #8] mov r7, #0 cmp r0, #0x10 addls pc, pc, r0, lsl #2 b _02185824 _021857c8: ; jump table b _0218580c ; case 0 b _0218580c ; case 1 b _0218580c ; case 2 b _0218580c ; case 3 b _02185824 ; case 4 b _02185824 ; case 5 b _0218580c ; case 6 b _0218580c ; case 7 b _0218580c ; case 8 b _0218580c ; case 9 b _0218580c ; case 10 b _0218580c ; case 11 b _02185824 ; case 12 b _02185824 ; case 13 b _02185824 ; case 14 b _02185824 ; case 15 b _02185824 ; case 16 _0218580c: mov r1, #1 mov r0, r4 mov r2, r1 bl func_ov30_0217d09c cmp r0, #0 movne r7, #1 _02185824: cmp r7, #0 beq _0218587c ldr r0, _021863d4 ; =data_027e0f94 add r3, sp, #0x5c ldmia r0!, {r0, r1, r2} stmia r3!, {r0, r1, r2} mov r2, #0 add r0, sp, #0x10 mov r1, r3 strh r2, [sp, #0x10] strh r2, [sp, #0x12] bl func_ov30_021872c4 add r0, sp, #0x10 add r1, sp, #0x5c bl func_ov30_02187304 add r1, sp, #0x5c mov r0, r4 bl func_ov00_020cca68 cmp r0, #0 bne _0218587c add r0, r6, #0x10 bl func_ov30_0217c1c8 _0218587c: ldr r0, [r4, #0x844] cmp r0, #0 beq _021858c0 add r0, r4, #0xa8 ldr r1, [r0, #0xa00] ldr r0, [r0, #0xa08] cmp r1, r0 beq _021858b0 add r0, r4, #0x48 add r1, r4, #0x14 bl func_ov00_020ce2f0 cmp r0, #0xc000 ble _021858c0 _021858b0: mov r0, r6 mov r1, #0x10 mov r2, #0 bl func_ov00_020c50d4 _021858c0: ldr r0, [r6, #8] cmp r0, #0x10 addls pc, pc, r0, lsl #2 b _021863cc _021858d0: ; jump table b _02185914 ; case 0 b _021859a0 ; case 1 b _021859c8 ; case 2 b _02185a2c ; case 3 b _02185ac0 ; case 4 b _02185b28 ; case 5 b _02185c94 ; case 6 b _02185d68 ; case 7 b _02185ebc ; case 8 b _02186098 ; case 9 b _021860d8 ; case 10 b _02186124 ; case 11 b _02186180 ; case 12 b _0218623c ; case 13 b _02186294 ; case 14 b _021862f0 ; case 15 b _02186328 ; case 16 _02185914: mov r0, r4 bl func_ov30_02182dd4 mov r0, r4 mov r1, #0 bl func_ov00_020cb160 ldr r0, [r0, #0x10] add r0, r0, #0xc bl func_0202e58c cmp r0, #0 addeq sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} add r1, sp, #0x50 add r0, r6, #0x10 bl func_ov30_0217c3c0 add r1, sp, #0x50 mov r0, r4 bl func_ov00_020cca68 cmp r0, #0 bne _02185974 mov r0, r6 mov r1, #7 bl func_ov30_0218529c add sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} _02185974: ldr r1, [sp, #0x50] mov r0, r6 str r1, [r6, #0x5c] ldr r2, [sp, #0x54] mov r1, #4 str r2, [r6, #0x60] ldr r2, [sp, #0x58] str r2, [r6, #0x64] bl func_ov30_0218529c add sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} _021859a0: mov r0, r6 bl func_ov00_020c50f0 cmp r0, #0xa addle sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} mov r0, r6 mov r1, #2 bl func_ov30_0218529c add sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} _021859c8: ldrsh r1, [r6, #0x68] mov r0, r4 bl func_ov30_02182e34 mov r0, r4 mov r1, #2 mov r2, #1 bl func_ov30_0217d09c cmp r0, #0 beq _02185a00 mov r0, r6 mov r1, #0 bl func_ov30_0218529c add sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} _02185a00: ldrsh r1, [r6, #0x68] mov r0, r4 bl func_ov30_02182e50 cmp r0, #0 addeq sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} mov r0, r6 mov r1, #0xc bl func_ov30_0218529c add sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} _02185a2c: mov r0, r4 bl func_ov30_02182dc0 mov r0, r4 mov r1, #2 mov r2, #1 bl func_ov30_0217d09c cmp r0, #0 beq _02185aac add r1, sp, #0x44 add r0, r6, #0x10 bl func_ov30_0217c3c0 add r1, sp, #0x44 mov r0, r4 bl func_ov00_020cca68 cmp r0, #0 bne _02185a80 mov r0, r6 mov r1, #7 bl func_ov30_0218529c add sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} _02185a80: ldr r1, [sp, #0x44] mov r0, r6 str r1, [r6, #0x5c] ldr r2, [sp, #0x48] mov r1, #4 str r2, [r6, #0x60] ldr r2, [sp, #0x4c] str r2, [r6, #0x64] bl func_ov30_0218529c add sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} _02185aac: mov r0, r6 mov r1, #0xc bl func_ov30_0218529c add sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} _02185ac0: mov r0, r5 bl func_ov30_02187c44 mov r0, r6 bl func_ov00_020c50f0 cmp r0, #0xf addle sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} mov r0, r5 bl func_ov30_02187d50 cmp r0, #0 beq _02185b00 mov r0, r6 mov r1, #0xc bl func_ov30_0218529c add sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} _02185b00: mov r0, r5 bl func_ov30_02187d3c cmp r0, #0 addeq sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} mov r0, r6 mov r1, #5 bl func_ov30_0218529c add sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} _02185b28: add r1, sp, #0x38 mov r0, r5 bl func_ov30_02187d88 add r1, sp, #0x38 mov r0, r4 mov r2, #2 bl func_ov30_02182ecc add r1, sp, #0x38 mov r0, r4 bl func_ov30_02182c68 cmp r0, #0 beq _02185b74 ldr r1, [r4, #0xa0] mov r0, r5 str r1, [sp] ldrh r3, [r4, #0x9c] ldr r2, [r4, #0x98] add r1, r4, #0x48 bl func_ov30_02187e18 _02185b74: add r1, sp, #0x2c mov r0, r5 bl func_ov30_02187dd8 mov r0, r4 bl func_ov30_02182474 cmp r0, #0 beq _02185ba4 mov r0, r6 mov r1, #9 bl func_ov30_0218529c add sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} _02185ba4: mov r0, r4 bl func_ov30_021824cc cmp r0, #0 beq _02185bc8 mov r0, r6 mov r1, #0xb bl func_ov30_0218529c add sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} _02185bc8: mov r1, #1 mov r0, r4 mov r2, r1 bl func_ov30_0217d09c cmp r0, #0 beq _02185bf4 mov r0, r6 mov r1, #6 bl func_ov30_0218529c add sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} _02185bf4: mov r0, r4 mov r1, #0xa000 bl func_ov00_020c29ec cmp r0, #0 beq _02185c1c mov r0, r6 mov r1, #0xc bl func_ov30_0218529c add sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} _02185c1c: mov r0, r4 bl func_ov30_02183b90 cmp r0, #0 beq _02185c40 mov r0, r6 mov r1, #0xc bl func_ov30_0218529c add sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} _02185c40: mov r0, r4 add r1, r6, #0x5c bl func_ov30_02182c68 cmp r0, #0 beq _02185c68 mov r0, r6 mov r1, #7 bl func_ov30_0218529c add sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} _02185c68: add r1, sp, #0x2c mov r0, r4 bl func_ov30_02182c68 cmp r0, #0 addeq sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} mov r0, r6 mov r1, #0xc bl func_ov30_0218529c add sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} _02185c94: ldr r1, _021863d4 ; =data_027e0f94 mov r0, r4 mov r2, #2 bl func_ov30_02182ecc mov r0, r4 bl func_ov30_02182474 cmp r0, #0 beq _02185cc8 mov r0, r6 mov r1, #9 bl func_ov30_0218529c add sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} _02185cc8: mov r0, r4 bl func_ov30_021824cc cmp r0, #0 beq _02185cec mov r0, r6 mov r1, #0xb bl func_ov30_0218529c add sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} _02185cec: mov r0, r4 mov r1, #0xa000 bl func_ov00_020c29ec cmp r0, #0 beq _02185d14 mov r0, r6 mov r1, #0xc bl func_ov30_0218529c add sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} _02185d14: mov r0, r4 bl func_ov30_02183b90 cmp r0, #0 beq _02185d38 mov r0, r6 mov r1, #0xc bl func_ov30_0218529c add sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} _02185d38: mov r1, #1 mov r0, r4 mov r2, r1 bl func_ov30_0217d09c cmp r0, #0 addne sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} mov r0, r6 mov r1, #7 bl func_ov30_0218529c add sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} _02185d68: mov r2, #0 add r1, sp, #0xc add r0, r6, #0x10 strh r2, [sp, #0xc] strh r2, [sp, #0xe] bl func_ov30_0217c3e8 add r0, sp, #0xc add r1, sp, #0x20 bl func_ov30_02187304 add r1, sp, #0x20 mov r0, r4 mov r2, #2 bl func_ov30_02182ecc mov r0, r4 bl func_ov30_02182474 cmp r0, #0 beq _02185dc0 mov r0, r6 mov r1, #9 bl func_ov30_0218529c add sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} _02185dc0: mov r0, r4 bl func_ov30_021824cc cmp r0, #0 beq _02185de4 mov r0, r6 mov r1, #0xb bl func_ov30_0218529c add sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} _02185de4: mov r1, #1 mov r0, r4 mov r2, r1 bl func_ov30_0217d09c cmp r0, #0 beq _02185e10 mov r0, r6 mov r1, #6 bl func_ov30_0218529c add sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} _02185e10: mov r0, r4 bl func_ov30_02183b90 cmp r0, #0 beq _02185e34 mov r0, r6 mov r1, #0xc bl func_ov30_0218529c add sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} _02185e34: add r0, sp, #0xc bl func_ov30_021875d4 cmp r0, #0 add r1, sp, #0x20 mov r0, r4 beq _02185e70 bl func_ov30_02182c68 cmp r0, #0 addeq sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} mov r0, r6 mov r1, #8 bl func_ov30_0218529c add sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} _02185e70: bl func_ov00_020c288c cmp r0, #0x800 bge _02185e90 mov r0, r6 mov r1, #0xc bl func_ov30_0218529c add sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} _02185e90: mov r0, r4 mov r1, #0x1000 bl func_ov00_020c29ec cmp r0, #0 addeq sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} mov r0, r6 mov r1, #0xc bl func_ov30_0218529c add sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} _02185ebc: mov r2, #0 add r1, sp, #8 add r0, r6, #0x10 strh r2, [sp, #8] strh r2, [sp, #0xa] bl func_ov30_0217c3e8 add r0, sp, #8 add r1, sp, #0x14 bl func_ov30_02187304 add r1, sp, #0x14 mov r0, r4 mov r2, #2 bl func_ov30_02182ecc add r1, sp, #0x14 mov r0, r4 bl func_ov30_02182c68 cmp r0, #0 beq _02185f6c add r0, r6, #0x10 bl func_ov30_0217c41c add r0, r6, #0x10 bl func_ov30_0217c434 cmp r0, #0 beq _02185f30 mov r0, r6 mov r1, #0xc bl func_ov30_0218529c add sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} _02185f30: mov r2, #0 add r1, sp, #4 add r0, r6, #0x10 strh r2, [sp, #4] strh r2, [sp, #6] bl func_ov30_0217c3e8 add r0, sp, #4 bl func_ov30_021875d4 cmp r0, #0 bne _02185f6c mov r0, r6 mov r1, #0xc bl func_ov30_0218529c add sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} _02185f6c: mov r0, r4 bl func_ov30_02182474 cmp r0, #0 beq _02185f90 mov r0, r6 mov r1, #9 bl func_ov30_0218529c add sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} _02185f90: mov r0, r4 bl func_ov30_021824cc cmp r0, #0 beq _02185fb4 mov r0, r6 mov r1, #0xb bl func_ov30_0218529c add sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} _02185fb4: ldr r1, [r4, #4] ldr r0, _021863d8 ; =0x43485334 cmp r1, r0 bne _02185ff8 mov r0, r6 bl func_ov00_020c50f0 cmp r0, #0x3c ble _02185ff8 mov r0, r4 bl func_ov30_0217d3b8 cmp r0, #0 beq _02185ff8 mov r0, r6 mov r1, #0xd bl func_ov30_0218529c add sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} _02185ff8: mov r0, r4 mov r1, #0xa000 bl func_ov00_020c29ec cmp r0, #0 beq _02186020 mov r0, r6 mov r1, #0xc bl func_ov30_0218529c add sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} _02186020: mov r1, #1 mov r0, r4 mov r2, r1 bl func_ov30_0217d09c cmp r0, #0 beq _0218604c mov r0, r6 mov r1, #6 bl func_ov30_0218529c add sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} _0218604c: mov r0, r4 bl func_ov30_02182d44 cmp r0, #0 beq _02186070 mov r0, r6 mov r1, #0xc bl func_ov30_0218529c add sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} _02186070: mov r0, r4 bl func_ov30_02183b90 cmp r0, #0 addeq sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} mov r0, r6 mov r1, #0xc bl func_ov30_0218529c add sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} _02186098: mov r0, r4 bl func_ov30_02182dd4 mov r0, r4 mov r1, #0 bl func_ov00_020cb160 ldr r0, [r0, #0x10] add r0, r0, #0xc bl func_0202e58c cmp r0, #0 addeq sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} mov r0, r6 mov r1, #0xa bl func_ov30_0218529c add sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} _021860d8: mov r0, r4 bl func_ov30_02182dd4 mov r0, r6 bl func_ov00_020c50f0 cmp r0, #0xf addle sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} ldrb r0, [r6, #0xc] cmp r0, #0 mov r0, r6 beq _02186114 mov r1, #5 bl func_ov30_0218529c add sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} _02186114: mov r1, #8 bl func_ov30_0218529c add sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} _02186124: mov r0, r4 bl func_ov30_02182dc0 mov r0, r4 mov r1, #0 bl func_ov00_020cb160 ldr r0, [r0, #0x10] add r0, r0, #0xc bl func_0202e58c cmp r0, #0 addeq sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} ldrb r0, [r6, #0xc] cmp r0, #0 mov r0, r6 beq _02186170 mov r1, #5 bl func_ov30_0218529c add sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} _02186170: mov r1, #8 bl func_ov30_0218529c add sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} _02186180: mov r0, r4 mov r1, #0 bl func_ov00_020cb160 ldr r0, [r0, #0x10] add r0, r0, #0xc bl func_0202e58c cmp r0, #0 addeq sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} mov r1, #0 mov r0, r4 strb r1, [r4, #0x87e] bl func_ov30_021833ec cmp r0, #0 beq _021861d4 mov r0, r6 mov r1, #8 mov r2, #0 bl func_ov00_020c50d4 add sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} _021861d4: ldr r1, [r4, #4] ldr r0, _021863dc ; =0x43485336 cmp r1, r0 bne _02186208 ldrb r0, [r4, #0xab6] cmp r0, #0 beq _02186208 mov r0, r6 mov r1, #0xf mov r2, #0 bl func_ov00_020c50d4 add sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} _02186208: ldr r0, [r4, #0x844] mov r2, #0 cmp r0, #0 mov r0, r6 beq _0218622c mov r1, #0x10 bl func_ov00_020c50d4 add sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} _0218622c: mov r1, #5 bl func_ov00_020c50d4 add sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} _0218623c: ldr r0, _021863e0 ; =data_027e0f74 mov r1, #0x11c ldr r0, [r0] bl func_ov00_02097760 cmp r0, #0 bne _02186280 ldr r0, _021863e0 ; =data_027e0f74 mov r1, #0x11c ldr r0, [r0] mov r2, #1 bl func_ov00_0209779c mov r0, r6 mov r1, #2 mov r2, #0 bl func_ov00_020c50d4 add sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} _02186280: mov r0, r6 mov r1, #0xe bl func_ov30_0218529c add sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} _02186294: mov r0, r6 ldrb r5, [r4, #0xab7] bl func_ov00_020c50f0 cmp r0, #8 blt _021862b4 cmp r5, #0x10 subhi r0, r5, #1 strhib r0, [r4, #0xab7] _021862b4: mov r0, r4 mov r1, #0 bl func_ov00_020cb160 ldr r0, [r0, #0x10] mov r1, #0x1e000 add r0, r0, #0xc bl func_0202e310 cmp r0, #0 addeq sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} mov r0, r6 mov r1, #0xf bl func_ov30_0218529c add sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} _021862f0: mov r0, r4 add r1, r6, #0x50 bl func_ov30_02182f0c mov r0, r4 add r1, r6, #0x50 bl func_ov30_02182c68 cmp r0, #0 addeq sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} mov r0, r6 mov r1, #0x10 bl func_ov30_0218529c add sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} _02186328: ldrb r5, [r4, #0xab7] mov r1, #0 cmp r5, #0x1f addlo r0, r5, #1 andlo r5, r0, #0xff strlob r5, [r4, #0xab7] mov r0, r4 bl func_ov00_020cb160 ldr r0, [r0, #0x14] cmp r0, #9 bne _02186398 mov r0, r4 mov r1, #0 bl func_ov00_020cb160 ldr r0, [r0, #0x10] add r0, r0, #0xc bl func_0202e58c cmp r0, #0 beq _02186398 mov r0, r4 mov r1, #0 bl func_ov00_020cb160 mov r7, r0 mov r1, #0 bl func_ov00_020c5d74 ldr r0, [r7, #0x10] mov r1, #0x1000 str r1, [r0, #0x10] _02186398: mov r0, r4 mov r1, #0 bl func_ov00_020cb160 ldr r0, [r0, #0x14] cmp r0, #9 addeq sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} cmp r5, #0x1f addne sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} mov r0, r6 mov r1, #7 bl func_ov30_0218529c _021863cc: add sp, sp, #0x68 ldmia sp!, {r3, r4, r5, r6, r7, pc} .align 2, 0 arm_func_end func_ov30_02185794 _021863d4: .word data_027e0f94 _021863d8: .word 0x43485334 _021863dc: .word 0x43485336 _021863e0: .word data_027e0f74 arm_func_start func_ov30_021863e4 func_ov30_021863e4: ; 0x021863e4 stmdb sp!, {r3, r4, r5, r6, r7, lr} mov r5, r1 mov r6, r0 bl func_ov00_020c5118 mov r4, r0 cmp r5, #5 addls pc, pc, r5, lsl #2 b _021864fc _02186404: ; jump table b _021864fc ; case 0 b _0218641c ; case 1 b _02186450 ; case 2 b _02186484 ; case 3 b _021864b0 ; case 4 b _021864d4 ; case 5 _0218641c: mov r1, #0 bl func_ov00_020cb160 mov r7, r0 mov r1, #1 bl func_ov00_020c5d74 ldr r1, [r7, #0x10] mov r2, #0x1000 mov r0, r4 str r2, [r1, #0x10] bl func_ov30_02182eb4 mov r0, r4 bl func_ov00_020c29d8 b _021864fc _02186450: mov r1, #0 bl func_ov00_020cb160 mov r7, r0 mov r1, #1 bl func_ov00_020c5d74 ldr r1, [r7, #0x10] mov r2, #0x1000 mov r0, r4 str r2, [r1, #0x10] bl func_ov30_02182eb4 mov r0, r4 bl func_ov00_020c29d8 b _021864fc _02186484: mov r1, #0 bl func_ov00_020cb160 mov r7, r0 mov r1, #2 bl func_ov00_020c5d74 ldr r1, [r7, #0x10] mov r2, #0x1000 mov r0, r4 str r2, [r1, #0x10] bl func_ov30_02182da8 b _021864fc _021864b0: mov r1, #0 bl func_ov00_020cb160 mov r4, r0 mov r1, #0 bl func_ov00_020c5d74 ldr r0, [r4, #0x10] mov r1, #0x1000 str r1, [r0, #0x10] b _021864fc _021864d4: mov r1, #0 bl func_ov00_020cb160 mov r7, r0 mov r1, #5 bl func_ov00_020c5d74 ldr r1, [r7, #0x10] mov r2, #0x1000 mov r0, r4 str r2, [r1, #0x10] bl func_ov30_02182da8 _021864fc: mov r0, r6 str r5, [r6, #8] bl func_ov00_020c50fc ldmia sp!, {r3, r4, r5, r6, r7, pc} arm_func_end func_ov30_021863e4 arm_func_start func_ov30_0218650c func_ov30_0218650c: ; 0x0218650c stmdb sp!, {r3, r4, r5, r6, r7, lr} mov r7, r0 mov r6, r1 bl func_ov00_020c5118 mov r5, r0 mov r1, #0 add r4, r5, #0x8c bl func_ov30_021823cc cmp r6, #0 beq _02186574 ldrb r0, [r6] cmp r0, #0 beq _02186564 ldrsh r2, [r5, #0x78] ldrsb r3, [r5, #0x2c] add r0, r4, #0x800 add r1, r5, #0x48 bl func_ov00_020c8f84 mov r0, r7 mov r1, #2 bl func_ov30_021863e4 ldmia sp!, {r3, r4, r5, r6, r7, pc} _02186564: mov r0, r7 mov r1, #0 bl func_ov30_021863e4 ldmia sp!, {r3, r4, r5, r6, r7, pc} _02186574: mov r0, r7 mov r1, #0 bl func_ov30_021863e4 ldmia sp!, {r3, r4, r5, r6, r7, pc} arm_func_end func_ov30_0218650c arm_func_start func_ov30_02186584 func_ov30_02186584: ; 0x02186584 stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr} sub sp, sp, #0x40 mov r7, r0 bl func_ov00_020c5118 mov r4, r0 ldr r2, [r7, #8] add r1, r4, #0x8c cmp r2, #5 add r6, r1, #0x800 addls pc, pc, r2, lsl #2 b _02186940 _021865b0: ; jump table b _021865c8 ; case 0 b _0218668c ; case 1 b _02186718 ; case 2 b _021868a4 ; case 3 b _021868e0 ; case 4 b _0218690c ; case 5 _021865c8: ldr r3, _02186948 ; =data_ov00_020e8398 mvn r2, #0 mov r8, #1 mov r1, #0 ldr r0, _0218694c ; =data_027e0ff0 str r3, [sp, #0x20] strb r2, [sp, #0x24] strb r8, [sp, #0x25] strb r1, [sp, #0x26] strb r1, [sp, #0x27] strb r8, [sp, #0x3c] strb r2, [sp, #0x10] strb r2, [sp, #0x11] strb r2, [sp, #0x12] strb r2, [sp, #0x13] ldrsb r5, [r4, #0x2c] ldr r0, [r0] add r2, sp, #0x20 add r3, sp, #0x10 add r1, r4, #0x48 strb r5, [sp, #0x24] strb r8, [sp, #0x26] bl func_ov00_020c4c00 cmp r0, #0 addeq sp, sp, #0x40 ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc} ldr r1, [sp, #0x14] mov r0, r6 str r1, [r7, #0x10] ldr r2, [sp, #0x18] add r1, r7, #0xc str r2, [r7, #0x14] ldr r3, [sp, #0x1c] add r2, r7, #0xe str r3, [r7, #0x18] ldrsb r3, [sp, #0x10] strb r3, [r7, #0xc] ldrsb r3, [sp, #0x11] strb r3, [r7, #0xd] ldrsb r3, [sp, #0x12] strb r3, [r7, #0xe] ldrsb r3, [sp, #0x13] strb r3, [r7, #0xf] bl func_ov00_020c8e44 mov r0, r7 mov r1, r8 bl func_ov30_021863e4 add sp, sp, #0x40 ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc} _0218668c: add r1, r7, #0x10 bl func_ov30_02182c84 movs r5, r0 bne _021866ac mov r0, r4 add r1, r7, #0x10 mov r2, #0 bl func_ov30_02182ecc _021866ac: mov r0, r4 mov r1, #0x1000 bl func_ov00_020c29ec cmp r0, #0 beq _021866f8 ldr r1, [r4, #4] ldr r0, _02186950 ; =0x43485336 mov r2, #0 cmp r1, r0 mov r0, r7 bne _021866e8 mov r1, #0xf bl func_ov00_020c50d4 add sp, sp, #0x40 ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc} _021866e8: mov r1, #3 bl func_ov00_020c50d4 add sp, sp, #0x40 ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc} _021866f8: cmp r5, #0 addeq sp, sp, #0x40 ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc} mov r0, r7 mov r1, #2 bl func_ov30_021863e4 add sp, sp, #0x40 ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc} _02186718: add r1, sp, #4 mov r0, r6 mov r5, #0 bl func_ov00_020c9034 add r1, sp, #4 mov r0, r4 mov r2, r5 bl func_ov30_02182ecc add r1, sp, #4 mov r0, r4 bl func_ov30_02182c9c cmp r0, #0 beq _02186800 ldrsb r2, [r6, #0x10] add r1, sp, #0 mov r0, r4 strb r2, [sp] ldrsb r2, [r6, #0x11] strb r2, [sp, #1] bl func_ov30_02183d80 mov r0, r6 bl func_ov00_020c9224 cmp r0, #0 beq _021867dc cmp r0, #1 beq _0218678c cmp r0, #2 moveq r5, #1 b _021867dc _0218678c: ldr r2, _02186954 ; =data_027e0764 mov r1, r5 ldr r3, [r2] ldmib r2, {r0, ip} umull r8, 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 sb, ip, r8 adc r8, r0, lr mov r0, #0x64 umull r3, ip, r8, r0 mla ip, r8, r1, ip mla ip, r1, r0, ip str sb, [r2] cmp ip, #0x32 str r8, [r2, #4] movlt r5, #1 _021867dc: mov r0, r6 bl func_ov00_020c9070 cmp r5, #0 beq _02186800 mov r0, r7 mov r1, #5 bl func_ov30_021863e4 add sp, sp, #0x40 ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc} _02186800: mov r0, r4 bl func_ov30_021824cc cmp r0, #0 mov r0, r7 beq _02186824 mov r1, #3 bl func_ov30_021863e4 add sp, sp, #0x40 ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc} _02186824: bl func_ov00_020c50f0 cmp r0, #0x1e ble _02186860 mov r0, r4 mov r1, #0x1000 bl func_ov00_020c29ec cmp r0, #0 beq _02186860 mov r0, r6 bl func_ov00_020c900c cmp r0, #0 beq _02186860 mov r0, r7 mov r1, #4 bl func_ov30_021863e4 _02186860: ldr r0, _02186958 ; =data_027e10b4 ldr r0, [r0] bl func_ov30_02183fa0 cmp r0, #0 addeq sp, sp, #0x40 ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc} mov r0, r7 bl func_ov00_020c510c cmp r0, #0x1e addle sp, sp, #0x40 ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc} mov r0, r7 mov r1, #6 mov r2, #0 bl func_ov00_020c50d4 add sp, sp, #0x40 ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc} _021868a4: bl func_ov30_02182dc0 mov r0, r4 mov r1, #0 bl func_ov00_020cb160 ldr r0, [r0, #0x10] add r0, r0, #0xc bl func_0202e58c cmp r0, #0 addeq sp, sp, #0x40 ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc} mov r0, r7 mov r1, #2 bl func_ov30_021863e4 add sp, sp, #0x40 ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc} _021868e0: bl func_ov30_02182dc0 mov r0, r7 bl func_ov00_020c50f0 cmp r0, #0xf addle sp, sp, #0x40 ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc} mov r0, r7 mov r1, #2 bl func_ov30_021863e4 add sp, sp, #0x40 ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc} _0218690c: bl func_ov30_02182dc0 mov r0, r4 mov r1, #0 bl func_ov00_020cb160 ldr r0, [r0, #0x10] add r0, r0, #0xc bl func_0202e58c cmp r0, #0 addeq sp, sp, #0x40 ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc} mov r0, r7 mov r1, #2 bl func_ov30_021863e4 _02186940: add sp, sp, #0x40 ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc} .align 2, 0 arm_func_end func_ov30_02186584 _02186948: .word data_ov00_020e8398 _0218694c: .word data_027e0ff0 _02186950: .word 0x43485336 _02186954: .word data_027e0764 _02186958: .word data_027e10b4 arm_func_start func_ov30_0218695c func_ov30_0218695c: ; 0x0218695c stmdb sp!, {r4, lr} sub sp, sp, #0x30 mov r4, r1 bl func_ov00_020c5118 mvn r2, #0 mov lr, #1 mov r1, #0 ldr r3, _021869f8 ; =data_ov00_020e8398 strb r2, [sp, #0x14] str r3, [sp, #0x10] strb lr, [sp, #0x15] strb r1, [sp, #0x16] strb r1, [sp, #0x17] strb lr, [sp, #0x2c] strb r2, [sp] strb r2, [sp, #1] strb r2, [sp, #2] strb r2, [sp, #3] ldrsb ip, [r0, #0x2c] ldr r0, _021869fc ; =data_027e0ff0 ldr r1, _02186a00 ; =data_027e0f94 ldr r0, [r0] add r2, sp, #0x10 add r3, sp, #0 strb ip, [sp, #0x14] strb lr, [sp, #0x2c] strb lr, [sp, #0x16] bl func_ov00_020c4ae8 cmp r0, #0 addeq sp, sp, #0x30 moveq r0, #0 ldmia sp!, {r4, pc} ldrsb r1, [sp] mov r0, #1 strb r1, [r4] ldrsb r1, [sp, #1] strb r1, [r4, #1] add sp, sp, #0x30 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov30_0218695c _021869f8: .word data_ov00_020e8398 _021869fc: .word data_027e0ff0 _02186a00: .word data_027e0f94 arm_func_start func_ov30_02186a04 func_ov30_02186a04: ; 0x02186a04 stmdb sp!, {r3, r4, r5, r6, r7, lr} mov r5, r1 mov r6, r0 bl func_ov00_020c5118 mov r4, r0 cmp r5, #5 addls pc, pc, r5, lsl #2 b _02186b24 _02186a24: ; jump table b _02186b24 ; case 0 b _02186a3c ; case 1 b _02186a70 ; case 2 b _02186a9c ; case 3 b _02186ad0 ; case 4 b _02186afc ; case 5 _02186a3c: mov r1, #0 bl func_ov00_020cb160 mov r7, r0 mov r1, #1 bl func_ov00_020c5d74 ldr r1, [r7, #0x10] mov r2, #0x1000 mov r0, r4 str r2, [r1, #0x10] bl func_ov30_02182eb4 mov r0, r4 bl func_ov00_020c29d8 b _02186b24 _02186a70: mov r1, #0 bl func_ov00_020cb160 mov r7, r0 mov r1, #5 bl func_ov00_020c5d74 ldr r1, [r7, #0x10] mov r2, #0x1000 mov r0, r4 str r2, [r1, #0x10] bl func_ov30_02182da8 b _02186b24 _02186a9c: mov r1, #0 bl func_ov00_020cb160 mov r7, r0 mov r1, #1 bl func_ov00_020c5d74 ldr r1, [r7, #0x10] mov r2, #0x1000 mov r0, r4 str r2, [r1, #0x10] bl func_ov30_02182eb4 mov r0, r4 bl func_ov00_020c29d8 b _02186b24 _02186ad0: mov r1, #0 bl func_ov00_020cb160 mov r7, r0 mov r1, #5 bl func_ov00_020c5d74 ldr r1, [r7, #0x10] mov r2, #0x1000 mov r0, r4 str r2, [r1, #0x10] bl func_ov30_02182da8 b _02186b24 _02186afc: mov r1, #0 bl func_ov00_020cb160 mov r7, r0 mov r1, #2 bl func_ov00_020c5d74 ldr r1, [r7, #0x10] mov r2, #0x1000 mov r0, r4 str r2, [r1, #0x10] bl func_ov30_02182da8 _02186b24: mov r0, r6 str r5, [r6, #8] bl func_ov00_020c50fc ldmia sp!, {r3, r4, r5, r6, r7, pc} arm_func_end func_ov30_02186a04 arm_func_start func_ov30_02186b34 func_ov30_02186b34: ; 0x02186b34 stmdb sp!, {r4, lr} mov r4, r0 bl func_ov00_020c5118 mov r0, r4 mov r1, #0 bl func_ov30_02186a04 ldmia sp!, {r4, pc} arm_func_end func_ov30_02186b34 arm_func_start func_ov30_02186b50 func_ov30_02186b50: ; 0x02186b50 stmdb sp!, {r4, r5, r6, r7, r8, lr} sub sp, sp, #0xa0 mov r7, r0 bl func_ov00_020c5118 ldr r1, [r7, #8] mov r4, r0 ldr r6, [r4, #0x8a0] cmp r1, #5 addls pc, pc, r1, lsl #2 b _02187218 _02186b78: ; jump table b _02186b90 ; case 0 b _02186c44 ; case 1 b _02186cd0 ; case 2 b _02186fa8 ; case 3 b _02187170 ; case 4 b _021871e4 ; case 5 _02186b90: ldr r3, _02187220 ; =data_ov00_020e8398 mvn r2, #0 mov r6, #1 mov r1, #0 ldr r0, _02187224 ; =data_027e0ff0 str r3, [sp, #0x80] strb r2, [sp, #0x84] strb r6, [sp, #0x85] strb r1, [sp, #0x86] strb r1, [sp, #0x87] strb r6, [sp, #0x9c] strb r2, [sp, #0x70] strb r2, [sp, #0x71] strb r2, [sp, #0x72] strb r2, [sp, #0x73] ldrsb r5, [r4, #0x2c] ldr r0, [r0] add r2, sp, #0x80 add r3, sp, #0x70 add r1, r4, #0x48 strb r5, [sp, #0x84] strb r6, [sp, #0x86] bl func_ov00_020c4c00 cmp r0, #0 addeq sp, sp, #0xa0 ldmia sp!, {r4, r5, r6, r7, r8, pc} ldr r1, [sp, #0x74] mov r0, r7 str r1, [r7, #0x14] ldr r2, [sp, #0x78] mov r1, r6 str r2, [r7, #0x18] ldr r2, [sp, #0x7c] str r2, [r7, #0x1c] ldrsb r2, [sp, #0x70] strb r2, [r7, #0x10] ldrsb r2, [sp, #0x71] strb r2, [r7, #0x11] ldrsb r2, [sp, #0x72] strb r2, [r7, #0x12] ldrsb r2, [sp, #0x73] strb r2, [r7, #0x13] bl func_ov30_02186a04 add sp, sp, #0xa0 ldmia sp!, {r4, r5, r6, r7, r8, pc} _02186c44: add r1, r7, #0x14 bl func_ov30_02182c84 movs r5, r0 bne _02186c64 mov r0, r4 add r1, r7, #0x14 mov r2, #2 bl func_ov30_02182ecc _02186c64: mov r0, r4 mov r1, #0x1000 bl func_ov00_020c29ec cmp r0, #0 beq _02186cb0 ldr r1, [r4, #4] ldr r0, _02187228 ; =0x43485336 mov r2, #0 cmp r1, r0 mov r0, r7 bne _02186ca0 mov r1, #0xf bl func_ov00_020c50d4 add sp, sp, #0xa0 ldmia sp!, {r4, r5, r6, r7, r8, pc} _02186ca0: mov r1, #3 bl func_ov00_020c50d4 add sp, sp, #0xa0 ldmia sp!, {r4, r5, r6, r7, r8, pc} _02186cb0: cmp r5, #0 addeq sp, sp, #0xa0 ldmia sp!, {r4, r5, r6, r7, r8, pc} mov r0, r7 mov r1, #2 bl func_ov30_02186a04 add sp, sp, #0xa0 ldmia sp!, {r4, r5, r6, r7, r8, pc} _02186cd0: bl func_ov30_02182dc0 mov r0, r7 bl func_ov00_020c50f0 cmp r0, #1 bne _02186de0 ldrsb r1, [r4, #0x2c] mov r0, r6 bl func_ov30_02187f58 mvn r2, #0 mov ip, #1 mov r1, #0 ldr r3, _02187220 ; =data_ov00_020e8398 ldr r0, _02187224 ; =data_027e0ff0 str r3, [sp, #0x50] strb r2, [sp, #0x54] strb ip, [sp, #0x55] strb r1, [sp, #0x56] strb r1, [sp, #0x57] strb ip, [sp, #0x6c] strb r2, [sp, #0x40] strb r2, [sp, #0x41] strb r2, [sp, #0x42] strb r2, [sp, #0x43] ldrsb r5, [r4, #0x2c] ldr r0, [r0] add r2, sp, #0x50 add r3, sp, #0x40 add r1, r4, #0x48 strb r5, [sp, #0x54] strb ip, [sp, #0x6c] strb ip, [sp, #0x56] bl func_ov00_020c4ae8 cmp r0, #0 beq _02186d68 ldrsb r0, [sp, #0x40] strb r0, [r7, #0xc] ldrsb r0, [sp, #0x41] strb r0, [r7, #0xd] _02186d68: ldr r0, _0218722c ; =data_027e10b4 ldr r0, [r0] bl func_ov30_02183fa0 cmp r0, #0 mov r0, r7 beq _02186dd0 add r1, r7, #0xe bl func_ov30_0218695c ldrsb r1, [r7, #0xc] ldrsb r0, [r7, #0xe] cmp r1, r0 ldreqsb r1, [r7, #0xd] ldreqsb r0, [r7, #0xf] cmpeq r1, r0 bne _02186db8 mov r0, r7 mov r1, #4 bl func_ov30_02186a04 add sp, sp, #0xa0 ldmia sp!, {r4, r5, r6, r7, r8, pc} _02186db8: mov r0, r6 add r1, r7, #0xc add r2, r7, #0xe bl func_ov30_02188080 add sp, sp, #0xa0 ldmia sp!, {r4, r5, r6, r7, r8, pc} _02186dd0: mov r1, #4 bl func_ov30_02186a04 add sp, sp, #0xa0 ldmia sp!, {r4, r5, r6, r7, r8, pc} _02186de0: addle sp, sp, #0xa0 ldmia sp!, {r4, r5, r6, r7, r8, pc} mov r0, r6 mov r1, #0xa bl func_ov30_02188398 mov r0, r6 bl func_ov30_021883e0 cmp r0, #0 addeq sp, sp, #0xa0 ldmia sp!, {r4, r5, r6, r7, r8, pc} mov r0, r4 mov r1, #0 bl func_ov00_020cb160 ldr r0, [r0, #0x10] add r0, r0, #0xc bl func_0202e58c cmp r0, #0 addeq sp, sp, #0xa0 ldmia sp!, {r4, r5, r6, r7, r8, pc} ldr r1, [r4, #4] ldr r0, _02187228 ; =0x43485336 cmp r1, r0 bne _02186e9c mov r0, r6 bl func_ov30_02188410 cmp r0, #0 beq _02186e84 mov r0, r6 bl func_ov30_0218842c cmp r0, #0xf000 blt _02186e9c mov r0, r4 bl func_ov30_02183e78 cmp r0, #0 beq _02186e9c mov r0, r7 mov r1, #0xd mov r2, #0 bl func_ov00_020c50d4 add sp, sp, #0xa0 ldmia sp!, {r4, r5, r6, r7, r8, pc} _02186e84: mov r0, r7 mov r1, #0xd mov r2, #0 bl func_ov00_020c50d4 add sp, sp, #0xa0 ldmia sp!, {r4, r5, r6, r7, r8, pc} _02186e9c: mov r0, r6 bl func_ov30_02188448 mov r0, r6 bl func_ov30_02188410 cmp r0, #0 bne _02186ed8 mov r0, r6 bl func_ov30_021885b8 cmp r0, #0 beq _02186ed8 mov r0, r7 mov r1, #4 bl func_ov30_02186a04 add sp, sp, #0xa0 ldmia sp!, {r4, r5, r6, r7, r8, pc} _02186ed8: add r1, sp, #0x34 mov r0, r6 bl func_ov30_021884b8 cmp r0, #0 beq _02186f94 add r1, sp, #0x28 mov r0, r6 bl func_ov30_02188524 cmp r0, #0 beq _02186f94 add r0, sp, #0x34 add r2, sp, #0x1c add r1, r4, #0x48 bl func_01ff9bf8 add r0, sp, #0x28 add r1, sp, #0x34 add r2, sp, #0x10 bl func_01ff9bf8 ldr r0, [sp, #0x1c] ldr r1, [sp, #0x24] bl func_01ffa0f4 mov r5, r0, lsl #0x10 ldr r0, [sp, #0x10] ldr r1, [sp, #0x18] bl func_01ffa0f4 mov r0, r0, lsl #0x10 mov r0, r0, asr #0x10 rsb r0, r0, r5, asr #16 mov r0, r0, lsl #0x10 ldr r1, _02187230 ; =0xffff8001 mov r2, r0, asr #0x10 cmp r1, r0, asr #16 mov r2, r1, lsr #0x11 bgt _02186f70 cmp r2, #0 rsblt r0, r2, #0 mov r0, r0, lsl #0x10 mov r2, r0, asr #0x10 _02186f70: cmp r2, #0x4000 blt _02186f94 add r1, sp, #0x28 mov r0, r4 bl func_ov00_020cca68 cmp r0, #0 bne _02186f94 mov r0, r6 bl func_ov30_02188598 _02186f94: mov r0, r7 mov r1, #3 bl func_ov30_02186a04 add sp, sp, #0xa0 ldmia sp!, {r4, r5, r6, r7, r8, pc} _02186fa8: mov r8, #0 add r1, sp, #4 mov r0, r6 mov r5, r8 bl func_ov30_021884b8 add r1, sp, #4 mov r0, r4 mov r2, #2 bl func_ov30_02182ecc add r1, sp, #4 mov r0, r4 bl func_ov30_02182c9c cmp r0, #0 beq _02187024 mov r0, r6 mov r8, #1 bl func_ov30_021885b8 cmp r0, #0 movne r5, r8 bne _02187024 mvn r2, #0 add r1, sp, #2 mov r0, r6 strb r2, [sp, #2] strb r2, [sp, #3] bl func_ov30_0218848c add r1, sp, #2 mov r0, r4 bl func_ov30_02183d80 mov r0, r6 bl func_ov30_02188598 _02187024: mov r0, r4 bl func_ov30_021824cc cmp r0, #0 beq _02187048 mov r0, r7 mov r1, #5 bl func_ov30_02186a04 add sp, sp, #0xa0 ldmia sp!, {r4, r5, r6, r7, r8, pc} _02187048: mov r0, r4 mov r1, #0x1000 bl func_ov00_020c29ec cmp r0, #0 beq _02187070 mov r0, r7 mov r1, #4 bl func_ov30_02186a04 add sp, sp, #0xa0 ldmia sp!, {r4, r5, r6, r7, r8, pc} _02187070: cmp r5, #0 bne _02187098 mov r0, r7 bl func_ov00_020c50f0 cmp r0, #0x5a addle sp, sp, #0xa0 ldmia sp!, {r4, r5, r6, r7, r8, pc} cmp r8, #0 addeq sp, sp, #0xa0 ldmia sp!, {r4, r5, r6, r7, r8, pc} _02187098: mov r0, r6 add r1, r7, #0xc bl func_ov30_0218848c ldr r0, _0218722c ; =data_027e10b4 ldr r0, [r0] bl func_ov30_02183fa0 cmp r0, #0 beq _0218715c mvn r2, #0 add r1, sp, #0 mov r0, r7 strb r2, [sp] strb r2, [sp, #1] bl func_ov30_0218695c ldrsb r1, [r7, #0xe] ldrsb r0, [sp] cmp r1, r0 ldreqsb r1, [r7, #0xf] ldreqsb r0, [sp, #1] cmpeq r1, r0 beq _02187110 ldrsb r2, [sp] mov r0, r7 mov r1, #2 strb r2, [r7, #0xe] ldrsb r2, [sp, #1] strb r2, [r7, #0xf] bl func_ov30_02186a04 add sp, sp, #0xa0 ldmia sp!, {r4, r5, r6, r7, r8, pc} _02187110: mov r0, r6 bl func_ov30_02188410 cmp r0, #0 bne _02187134 mov r0, r7 mov r1, #2 bl func_ov30_02186a04 add sp, sp, #0xa0 ldmia sp!, {r4, r5, r6, r7, r8, pc} _02187134: cmp r5, #0 mov r0, r7 beq _02187150 mov r1, #4 bl func_ov30_02186a04 add sp, sp, #0xa0 ldmia sp!, {r4, r5, r6, r7, r8, pc} _02187150: bl func_ov00_020c50fc add sp, sp, #0xa0 ldmia sp!, {r4, r5, r6, r7, r8, pc} _0218715c: mov r0, r7 mov r1, #4 bl func_ov30_02186a04 add sp, sp, #0xa0 ldmia sp!, {r4, r5, r6, r7, r8, pc} _02187170: bl func_ov30_02182dc0 mov r0, r4 mov r1, #0 bl func_ov00_020cb160 ldr r0, [r0, #0x10] add r0, r0, #0xc bl func_0202e58c cmp r0, #0 addeq sp, sp, #0xa0 ldmia sp!, {r4, r5, r6, r7, r8, pc} ldr r1, [r4, #4] ldr r0, _02187228 ; =0x43485336 cmp r1, r0 bne _021871cc ldrb r0, [r4, #0xab6] cmp r0, #0 beq _021871cc mov r0, r7 mov r1, #0xf mov r2, #0 bl func_ov00_020c50d4 add sp, sp, #0xa0 ldmia sp!, {r4, r5, r6, r7, r8, pc} _021871cc: mov r0, r7 mov r1, #5 mov r2, #0 bl func_ov00_020c50d4 add sp, sp, #0xa0 ldmia sp!, {r4, r5, r6, r7, r8, pc} _021871e4: bl func_ov30_02182dc0 mov r0, r4 mov r1, #0 bl func_ov00_020cb160 ldr r0, [r0, #0x10] add r0, r0, #0xc bl func_0202e58c cmp r0, #0 addeq sp, sp, #0xa0 ldmia sp!, {r4, r5, r6, r7, r8, pc} mov r0, r7 mov r1, #3 bl func_ov30_02186a04 _02187218: add sp, sp, #0xa0 ldmia sp!, {r4, r5, r6, r7, r8, pc} .align 2, 0 arm_func_end func_ov30_02186b50 _02187220: .word data_ov00_020e8398 _02187224: .word data_027e0ff0 _02187228: .word 0x43485336 _0218722c: .word data_027e10b4 _02187230: .word 0xffff8001 arm_func_start func_ov30_02187234 func_ov30_02187234: ; 0x02187234 ldr r2, [r0] cmp r2, #0 mov r2, #0 bne _0218725c str r1, [r0] str r1, [r0, #4] str r2, [r1] str r2, [r1, #4] str r0, [r1, #8] bx lr _0218725c: ldr r3, [r0, #4] str r1, [r3, #4] ldr r3, [r0, #4] str r3, [r1] str r2, [r1, #4] str r0, [r1, #8] str r1, [r0, #4] bx lr arm_func_end func_ov30_02187234 arm_func_start func_ov30_0218727c func_ov30_0218727c: ; 0x0218727c mov r2, #0 str r2, [r1, #8] ldr r3, [r1] ldr r2, [r1, #4] cmp r3, #0 streq r2, [r0] strne r2, [r3, #4] ldr r2, [r1, #4] cmp r2, #0 ldreq r2, [r1] streq r2, [r0, #4] ldrne r0, [r1] strne r0, [r2] mov r0, #0 str r0, [r1] str r0, [r1, #4] str r0, [r1, #8] bx lr arm_func_end func_ov30_0218727c arm_func_start func_ov30_021872c4 func_ov30_021872c4: ; 0x021872c4 stmdb sp!, {lr} sub sp, sp, #0xc ldr r2, [r1] ldr r3, _02187300 ; =data_027e0e60 str r2, [sp] ldr ip, [r1, #4] mov r2, r0 str ip, [sp, #4] ldr ip, [r1, #8] ldr r0, [r3] add r1, sp, #0 str ip, [sp, #8] bl func_ov00_0208433c add sp, sp, #0xc ldmia sp!, {pc} .align 2, 0 arm_func_end func_ov30_021872c4 _02187300: .word data_027e0e60 arm_func_start func_ov30_02187304 func_ov30_02187304: ; 0x02187304 ldr r2, _02187320 ; =data_027e0e60 mov r3, r0 ldr r0, [r2] mov r2, r1 ldr ip, _02187324 ; =func_ov00_0208439c mov r1, r3 bx ip .align 2, 0 arm_func_end func_ov30_02187304 _02187320: .word data_027e0e60 _02187324: .word func_ov00_0208439c arm_func_start func_ov30_02187328 func_ov30_02187328: ; 0x02187328 stmdb sp!, {r3, lr} bl func_ov30_02187358 cmp r0, #1 moveq r0, #1 movne r0, #0 ldmia sp!, {r3, pc} arm_func_end func_ov30_02187328 arm_func_start func_ov30_02187340 func_ov30_02187340: ; 0x02187340 stmdb sp!, {r3, lr} bl func_ov30_02187388 cmp r0, #1 moveq r0, #1 movne r0, #0 ldmia sp!, {r3, pc} arm_func_end func_ov30_02187340 arm_func_start func_ov30_02187358 func_ov30_02187358: ; 0x02187358 ldrsh r3, [r0, #2] ldrsh r2, [r1, #2] subs r3, r3, r2 ldrsh r2, [r0] ldrsh r0, [r1] rsbmi r3, r3, #0 subs r0, r2, r0 rsbmi r0, r0, #0 add r0, r0, r3 mov r0, r0, lsl #0x10 mov r0, r0, asr #0x10 bx lr arm_func_end func_ov30_02187358 arm_func_start func_ov30_02187388 func_ov30_02187388: ; 0x02187388 ldrsh r3, [r0, #2] ldrsh r2, [r1, #2] subs r3, r3, r2 ldrsh r2, [r0] ldrsh r0, [r1] rsbmi r3, r3, #0 subs r0, r2, r0 rsbmi r0, r0, #0 cmp r0, r3 movle r0, r3 mov r0, r0, lsl #0x10 mov r0, r0, asr #0x10 bx lr arm_func_end func_ov30_02187388 arm_func_start func_ov30_021873bc func_ov30_021873bc: ; 0x021873bc stmdb sp!, {r3, r4, r5, lr} sub sp, sp, #8 ldr r2, _02187568 ; =data_027e0e60 mov r5, r0 ldr r0, [r2] mov r4, r1 bl func_ov00_02084324 cmp r0, #0 addeq sp, sp, #8 moveq r0, #0 ldmia sp!, {r3, r4, r5, pc} mov r0, r5 mov r1, r4 bl func_ov30_02187328 cmp r0, #0 addne sp, sp, #8 movne r0, #1 ldmia sp!, {r3, r4, r5, pc} mov r0, #0 strh r0, [sp, #4] strh r0, [sp, #6] strh r0, [sp] strh r0, [sp, #2] ldrsh r3, [r5] ldrsh r0, [r4] add ip, r3, #1 cmp ip, r0 bne _02187464 ldrsh r2, [r5, #2] ldrsh r1, [r4, #2] add r2, r2, #1 cmp r2, r1 bne _02187464 strh ip, [sp, #4] ldrsh r0, [r5, #2] strh r0, [sp, #6] ldrsh r0, [r5] strh r0, [sp] ldrsh r0, [r5, #2] add r0, r0, #1 strh r0, [sp, #2] b _02187524 _02187464: cmp ip, r0 bne _021874a4 ldrsh r2, [r5, #2] ldrsh r1, [r4, #2] sub r2, r2, #1 cmp r2, r1 bne _021874a4 strh ip, [sp, #4] ldrsh r0, [r5, #2] strh r0, [sp, #6] ldrsh r0, [r5] strh r0, [sp] ldrsh r0, [r5, #2] sub r0, r0, #1 strh r0, [sp, #2] b _02187524 _021874a4: sub r3, r3, #1 cmp r3, r0 bne _021874e8 ldrsh r2, [r5, #2] ldrsh r1, [r4, #2] add r2, r2, #1 cmp r2, r1 bne _021874e8 strh r3, [sp, #4] ldrsh r0, [r5, #2] strh r0, [sp, #6] ldrsh r0, [r5] strh r0, [sp] ldrsh r0, [r5, #2] add r0, r0, #1 strh r0, [sp, #2] b _02187524 _021874e8: cmp r3, r0 bne _02187524 ldrsh r1, [r5, #2] ldrsh r0, [r4, #2] sub r1, r1, #1 cmp r1, r0 bne _02187524 strh r3, [sp, #4] ldrsh r0, [r5, #2] strh r0, [sp, #6] ldrsh r0, [r5] strh r0, [sp] ldrsh r0, [r5, #2] sub r0, r0, #1 strh r0, [sp, #2] _02187524: ldr r0, _02187568 ; =data_027e0e60 add r1, sp, #4 ldr r0, [r0] bl func_ov00_02084324 cmp r0, #0 beq _0218755c ldr r0, _02187568 ; =data_027e0e60 add r1, sp, #0 ldr r0, [r0] bl func_ov00_02084324 cmp r0, #0 addne sp, sp, #8 movne r0, #1 ldmia sp!, {r3, r4, r5, pc} _0218755c: mov r0, #0 add sp, sp, #8 ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov30_021873bc _02187568: .word data_027e0e60 arm_func_start func_ov30_0218756c func_ov30_0218756c: ; 0x0218756c ldrsh r3, [r0, #2] ldrsh r2, [r1, #2] subs ip, r3, r2 ldrsh r2, [r0] movpl r3, ip ldrsh r0, [r1] rsbmi r3, ip, #0 subs r1, r2, r0 movpl r2, r1 rsbmi r2, r1, #0 cmp r2, r3 movge r2, r3 ldr r0, _021875d0 ; =0x000016a1 cmp ip, #0 rsblt ip, ip, #0 cmp r1, #0 rsblt r1, r1, #0 cmp r1, ip movle r1, ip mul r0, r2, r0 sub r1, r1, r2 add r0, r0, r1, lsl #12 add r0, r0, r0, lsr #31 mov r0, r0, asr #0x1 bx lr .align 2, 0 arm_func_end func_ov30_0218756c _021875d0: .word 0x000016a1 arm_func_start func_ov30_021875d4 func_ov30_021875d4: ; 0x021875d4 ldr r2, _021875e8 ; =data_027e0e60 ldr ip, _021875ec ; =func_ov00_02084324 mov r1, r0 ldr r0, [r2] bx ip .align 2, 0 arm_func_end func_ov30_021875d4 _021875e8: .word data_027e0e60 _021875ec: .word func_ov00_02084324 arm_func_start func_ov30_021875f0 func_ov30_021875f0: ; 0x021875f0 stmdb sp!, {r3, r4, r5, r6, r7, lr} mov r6, r0 mov r3, #0 str r3, [r6, #0xc] str r3, [r6, #0x10] str r3, [r6, #0x14] str r3, [r6, #0x18] ldr r0, [r6] mov r5, r1 mov r4, r2 cmp r0, #0 ble _02187690 mov ip, r3 mov r0, r3 _02187628: ldr r2, [r6, #4] mov r7, r0 cmp r2, #0 ble _02187678 _02187638: mla r2, r3, r2, r7 ldr lr, [r6, #0x1c] add r1, r7, #1 str ip, [lr, r2, lsl #5] add r2, lr, r2, lsl #5 str ip, [r2, #4] str ip, [r2, #8] str ip, [r2, #0x14] str ip, [r2, #0x18] str ip, [r2, #0xc] str ip, [r2, #0x10] mov r1, r1, lsl #0x10 ldr r2, [r6, #4] mov r7, r1, asr #0x10 cmp r2, r1, asr #16 bgt _02187638 _02187678: add r1, r3, #1 mov r1, r1, lsl #0x10 ldr r2, [r6] mov r3, r1, asr #0x10 cmp r2, r1, asr #16 bgt _02187628 _02187690: mov r2, #0 str r2, [r6, #0x20] mov r1, r5 add r0, r6, #0x2c str r2, [r6, #0x24] bl func_ov30_021872c4 mov r1, r4 add r0, r6, #0x30 bl func_ov30_021872c4 ldr r0, [r6] ldrsh r3, [r6, #0x2c] add r1, r0, r0, lsr #31 ldrsh r2, [r6, #0x30] ldrsh r4, [r6, #0x2e] mov r1, r1, asr #0x1 add r0, r3, r2 add r0, r0, r0, lsr #31 mov r0, r0, lsl #0xf ldrsh r2, [r6, #0x32] rsb r0, r1, r0, asr #16 strh r0, [r6, #0x34] ldr r1, [r6, #4] add r0, r4, r2 add r0, r0, r0, lsr #31 add r1, r1, r1, lsr #31 mov r0, r0, lsl #0xf mov r1, r1, asr #0x1 rsb r0, r1, r0, asr #16 strh r0, [r6, #0x36] ldr r0, [r5, #4] str r0, [r6, #0x40] ldrsh r1, [r6, #0x2c] ldrsh r0, [r6, #0x30] subs r1, r1, r0 ldr r0, [r6] rsbmi r1, r1, #0 cmp r1, r0 bge _02187744 ldrsh r1, [r6, #0x2e] ldrsh r0, [r6, #0x32] subs r1, r1, r0 ldr r0, [r6, #4] rsbmi r1, r1, #0 cmp r1, r0 blt _02187754 _02187744: ldr r1, _02187764 ; =0x00007fff mov r0, #0 strh r1, [r6, #0x38] ldmia sp!, {r3, r4, r5, r6, r7, pc} _02187754: mov r0, #0 strh r0, [r6, #0x38] mov r0, #1 ldmia sp!, {r3, r4, r5, r6, r7, pc} .align 2, 0 arm_func_end func_ov30_021875f0 _02187764: .word 0x00007fff arm_func_start func_ov30_02187768 func_ov30_02187768: ; 0x02187768 stmdb sp!, {r3, lr} ldrsh lr, [r1, #0x1c] ldrsh ip, [r0, #0x34] sub ip, lr, ip str ip, [r2] ldrsh r1, [r1, #0x1e] ldrsh r0, [r0, #0x36] sub r0, r1, r0 str r0, [r3] ldmia sp!, {r3, pc} arm_func_end func_ov30_02187768 arm_func_start func_ov30_02187790 func_ov30_02187790: ; 0x02187790 stmdb sp!, {r4, r5, r6, r7, r8, sb, lr} sub sp, sp, #0x1c mov r4, r0 ldmia r4!, {r0, sb} mul r1, r0, sb ldrsh r8, [r4, #0x38] ldrsh r0, [r4, #0x3a] cmp r8, r1 add r0, r8, r0 mov r6, r0, lsl #0x10 bge _021878dc add r7, sp, #0x10 _021877c0: cmp r8, r6, asr #16 addge sp, sp, #0x1c movge r0, #1 ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} mov r0, r8 mov r1, sb bl func_02002c14 mov r5, r0, lsl #0x10 mov r0, r8 mov r1, sb mov r8, r5, asr #0x10 bl func_02002c14 ldrsh r0, [r4, #0x34] mov r2, r1, lsl #0x10 mul r1, r8, sb ldr r3, [r4, #0x1c] add r1, r1, r2, asr #16 add r8, r3, r1, lsl #5 add r0, r0, r5, asr #16 strh r0, [r8, #0x1c] ldrsh r3, [r4, #0x36] mov r1, r7 add r0, r8, #0x1c add r2, r3, r2, asr #16 strh r2, [r8, #0x1e] bl func_ov30_02187304 add r0, r8, #0x1c bl func_ov30_021875d4 cmp r0, #0 beq _021878b0 ldr r1, [sp, #0x14] ldr r0, [r4, #0x40] subs r0, r1, r0 rsbmi r0, r0, #0 cmp r0, #0x800 bge _021878b0 ldrh sb, [r8, #0x1c] ldrh r3, [r4, #0x2c] ldrh r5, [r8, #0x1e] ldrh r2, [r4, #0x2e] strh sb, [sp] strh r3, [sp, #4] ldrsh r1, [sp, #4] ldrsh r0, [sp] strh r5, [sp, #2] strh r2, [sp, #6] cmp r1, r0 ldreqsh r1, [sp, #6] ldreqsh r0, [sp, #2] strh sb, [sp, #8] strh r5, [sp, #0xa] strh r3, [sp, #0xc] strh r2, [sp, #0xe] cmpeq r1, r0 bne _021878bc mov r1, r8 add r0, r4, #0xc bl func_ov30_02187234 str r8, [r4, #0x20] b _021878bc _021878b0: mov r1, r8 add r0, r4, #0x14 bl func_ov30_02187234 _021878bc: ldrsh r0, [r4, #0x38] add r0, r0, #1 strh r0, [r4, #0x38] ldmia r4!, {r0, sb} mul r1, r0, sb ldrsh r8, [r4, #0x38] cmp r8, r1 blt _021877c0 _021878dc: mov r0, #0 add sp, sp, #0x1c ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} arm_func_end func_ov30_02187790 arm_func_start func_ov30_021878e8 func_ov30_021878e8: ; 0x021878e8 stmdb sp!, {r4, r5, r6, r7, r8, lr} sub sp, sp, #0x18 mov r8, r0 ldr r3, [r8, #0xc] mov r4, #0 cmp r3, #0 sub r2, r4, #0x80000001 beq _0218792c _02187908: ldr r1, [r3, #0xc] ldr r0, [r3, #0x10] add r0, r1, r0 cmp r2, r0 movgt r4, r3 ldr r3, [r3, #4] movgt r2, r0 cmp r3, #0 bne _02187908 _0218792c: mov r1, r4 add r0, r8, #0xc bl func_ov30_0218727c mov r1, r4 add r0, r8, #0x14 bl func_ov30_02187234 add r2, sp, #0x14 add r3, sp, #0x10 mov r0, r8 mov r1, r4 bl func_ov30_02187768 ldr r0, [sp, #0x14] sub r5, r0, #1 add r0, r0, #1 cmp r5, r0 addgt sp, sp, #0x18 ldmia sp!, {r4, r5, r6, r7, r8, pc} _02187970: ldr r1, [sp, #0x10] sub r6, r1, #1 add r0, r1, #1 cmp r6, r0 bgt _02187ab0 _02187984: ldr r0, [sp, #0x14] cmp r5, r0 cmpeq r6, r1 beq _02187a9c cmp r5, #0 blt _02187a9c ldr r0, [r8] cmp r5, r0 bge _02187a9c cmp r6, #0 blt _02187a9c ldr r0, [r8, #4] cmp r6, r0 bge _02187a9c mla r0, r5, r0, r6 ldr r1, [r8, #0x1c] add r7, r1, r0, lsl #5 ldr r0, [r7, #8] cmp r0, #0 bne _02187a9c add r0, r4, #0x1c add r1, r7, #0x1c bl func_ov30_021873bc cmp r0, #0 beq _02187a9c mov r1, r7 str r4, [r7, #0x14] add r0, r8, #0xc bl func_ov30_02187234 ldr r0, [sp, #0x14] cmp r5, r0 ldrne r0, [sp, #0x10] cmpne r6, r0 ldr r0, [r7, #0x14] bne _02187a1c ldr r0, [r0, #0xc] add r0, r0, #0x1000 b _02187a28 _02187a1c: ldr r0, [r0, #0xc] add r0, r0, #0xa1 add r0, r0, #0x1600 _02187a28: str r0, [r7, #0xc] add r0, r7, #0x1c add r1, r8, #0x30 bl func_ov30_0218756c str r0, [r7, #0x10] ldr r1, [r8, #0x24] ldr r1, [r1, #0x10] cmp r1, r0 strgt r7, [r8, #0x24] ldrh lr, [r8, #0x30] ldrh r3, [r7, #0x1c] ldrh ip, [r8, #0x32] ldrh r2, [r7, #0x1e] strh lr, [sp] strh r3, [sp, #4] ldrsh r1, [sp, #4] ldrsh r0, [sp] strh ip, [sp, #2] strh r2, [sp, #6] cmp r1, r0 ldreqsh r1, [sp, #6] ldreqsh r0, [sp, #2] strh lr, [sp, #8] strh ip, [sp, #0xa] strh r3, [sp, #0xc] strh r2, [sp, #0xe] cmpeq r1, r0 addeq sp, sp, #0x18 ldmia sp!, {r4, r5, r6, r7, r8, pc} _02187a9c: ldr r1, [sp, #0x10] add r6, r6, #1 add r0, r1, #1 cmp r6, r0 ble _02187984 _02187ab0: ldr r0, [sp, #0x14] add r5, r5, #1 add r0, r0, #1 cmp r5, r0 ble _02187970 add sp, sp, #0x18 ldmia sp!, {r4, r5, r6, r7, r8, pc} arm_func_end func_ov30_021878e8 arm_func_start func_ov30_02187acc func_ov30_02187acc: ; 0x02187acc stmdb sp!, {r3, r4, r5, lr} mov r5, r0 ldrsh r0, [r5, #0x3c] mov r4, #0 cmp r0, #0 ble _02187b18 _02187ae4: mov r0, r5 bl func_ov30_02187b20 cmp r0, #0 movne r0, #0 ldmia sp!, {r3, r4, r5, pc} mov r0, r5 bl func_ov30_021878e8 add r0, r4, #1 mov r0, r0, lsl #0x10 ldrsh r1, [r5, #0x3c] mov r4, r0, asr #0x10 cmp r1, r0, asr #16 bgt _02187ae4 _02187b18: mov r0, #1 ldmia sp!, {r3, r4, r5, pc} arm_func_end func_ov30_02187acc arm_func_start func_ov30_02187b20 func_ov30_02187b20: ; 0x02187b20 stmdb sp!, {r3, lr} sub sp, sp, #0x10 ldr r1, [r0, #0xc] cmp r1, #0 addeq sp, sp, #0x10 moveq r0, #1 ldmia sp!, {r3, pc} ldr r1, [r0, #0x24] ldrh r3, [r0, #0x30] ldrh lr, [r1, #0x1c] ldrh ip, [r1, #0x1e] ldrh r2, [r0, #0x32] strh lr, [sp] strh r3, [sp, #4] ldrsh r1, [sp, #4] ldrsh r0, [sp] strh ip, [sp, #2] strh r2, [sp, #6] cmp r1, r0 ldreqsh r1, [sp, #6] ldreqsh r0, [sp, #2] strh lr, [sp, #8] strh ip, [sp, #0xa] cmpeq r1, r0 moveq r0, #1 strh r3, [sp, #0xc] strh r2, [sp, #0xe] movne r0, #0 add sp, sp, #0x10 ldmia sp!, {r3, pc} arm_func_end func_ov30_02187b20 arm_func_start func_ov30_02187b98 func_ov30_02187b98: ; 0x02187b98 stmdb sp!, {r3, r4, r5, lr} mov r4, r1 mov r5, r0 cmp r4, #4 addls pc, pc, r4, lsl #2 b _02187bf8 _02187bb0: ; jump table b _02187bf8 ; case 0 b _02187bf8 ; case 1 b _02187bc4 ; case 2 b _02187bf4 ; case 3 b _02187bf8 ; case 4 _02187bc4: ldr r0, [r5, #0x20] mov r1, #0 str r1, [r0, #0xc] ldr r0, [r5, #0x20] add r1, r5, #0x30 add r0, r0, #0x1c bl func_ov30_0218756c ldr r1, [r5, #0x20] str r0, [r1, #0x10] ldr r0, [r5, #0x20] str r0, [r5, #0x24] b _02187bf8 _02187bf4: bl func_ov30_02187d64 _02187bf8: str r4, [r5, #8] ldmia sp!, {r3, r4, r5, pc} arm_func_end func_ov30_02187b98 arm_func_start func_ov30_02187c00 func_ov30_02187c00: ; 0x02187c00 stmdb sp!, {r4, lr} ldrsh ip, [sp, #8] mov r4, r0 strh r3, [r4, #0x3a] strh ip, [r4, #0x3c] bl func_ov30_021875f0 cmp r0, #0 mov r0, r4 beq _02187c34 mov r1, #1 bl func_ov30_02187b98 mov r0, #1 ldmia sp!, {r4, pc} _02187c34: mov r1, #4 bl func_ov30_02187b98 mov r0, #0 ldmia sp!, {r4, pc} arm_func_end func_ov30_02187c00 arm_func_start func_ov30_02187c44 func_ov30_02187c44: ; 0x02187c44 stmdb sp!, {r3, r4, r5, lr} sub sp, sp, #0x10 mov r4, r0 ldr r1, [r4, #8] cmp r1, #4 addls pc, pc, r1, lsl #2 b _02187d34 _02187c60: ; jump table b _02187d34 ; case 0 b _02187c74 ; case 1 b _02187d18 ; case 2 b _02187d34 ; case 3 b _02187d34 ; case 4 _02187c74: bl func_ov30_02187790 cmp r0, #0 addne sp, sp, #0x10 ldmia sp!, {r3, r4, r5, pc} ldr r5, [r4, #0x20] cmp r5, #0 bne _02187ca4 mov r0, r4 mov r1, #4 bl func_ov30_02187b98 add sp, sp, #0x10 ldmia sp!, {r3, r4, r5, pc} _02187ca4: ldrh lr, [r4, #0x30] ldrh r3, [r5, #0x1c] ldrh ip, [r4, #0x32] ldrh r2, [r5, #0x1e] strh lr, [sp] strh r3, [sp, #4] ldrsh r1, [sp, #4] ldrsh r0, [sp] strh ip, [sp, #2] strh r2, [sp, #6] cmp r1, r0 ldreqsh r1, [sp, #6] ldreqsh r0, [sp, #2] strh lr, [sp, #8] strh ip, [sp, #0xa] cmpeq r1, r0 strh r3, [sp, #0xc] strh r2, [sp, #0xe] mov r0, r4 bne _02187d08 mov r1, #3 str r5, [r4, #0x24] bl func_ov30_02187b98 add sp, sp, #0x10 ldmia sp!, {r3, r4, r5, pc} _02187d08: mov r1, #2 bl func_ov30_02187b98 add sp, sp, #0x10 ldmia sp!, {r3, r4, r5, pc} _02187d18: bl func_ov30_02187acc cmp r0, #0 addne sp, sp, #0x10 ldmia sp!, {r3, r4, r5, pc} mov r0, r4 mov r1, #3 bl func_ov30_02187b98 _02187d34: add sp, sp, #0x10 ldmia sp!, {r3, r4, r5, pc} arm_func_end func_ov30_02187c44 arm_func_start func_ov30_02187d3c func_ov30_02187d3c: ; 0x02187d3c ldr r0, [r0, #8] cmp r0, #3 moveq r0, #1 movne r0, #0 bx lr arm_func_end func_ov30_02187d3c arm_func_start func_ov30_02187d50 func_ov30_02187d50: ; 0x02187d50 ldr r0, [r0, #8] cmp r0, #4 moveq r0, #1 movne r0, #0 bx lr arm_func_end func_ov30_02187d50 arm_func_start func_ov30_02187d64 func_ov30_02187d64: ; 0x02187d64 ldr r1, [r0, #0x20] str r1, [r0, #0x28] ldr r0, [r0, #0x24] _02187d70: mov r1, r0 ldr r0, [r0, #0x14] cmp r0, #0 strne r1, [r0, #0x18] bne _02187d70 bx lr arm_func_end func_ov30_02187d64 arm_func_start func_ov30_02187d88 func_ov30_02187d88: ; 0x02187d88 stmdb sp!, {r3, lr} ldr r0, [r0, #0x28] cmp r0, #0 moveq r0, #0 ldmia sp!, {r3, pc} add r0, r0, #0x1c bl func_ov30_02187304 mov r0, #1 ldmia sp!, {r3, pc} arm_func_end func_ov30_02187d88 arm_func_start func_ov30_02187dac func_ov30_02187dac: ; 0x02187dac stmdb sp!, {r3, lr} ldr r0, [r0, #0x28] cmp r0, #0 ldrne r0, [r0, #0x18] cmpne r0, #0 moveq r0, #0 ldmia sp!, {r3, pc} add r0, r0, #0x1c bl func_ov30_02187304 mov r0, #1 ldmia sp!, {r3, pc} arm_func_end func_ov30_02187dac arm_func_start func_ov30_02187dd8 func_ov30_02187dd8: ; 0x02187dd8 stmdb sp!, {r3, lr} ldr r0, [r0, #0x24] cmp r0, #0 moveq r0, #0 ldmia sp!, {r3, pc} add r0, r0, #0x1c bl func_ov30_02187304 mov r0, #1 ldmia sp!, {r3, pc} arm_func_end func_ov30_02187dd8 arm_func_start func_ov30_02187dfc func_ov30_02187dfc: ; 0x02187dfc ldr r1, [r0, #0x28] ldr r1, [r1, #0x18] cmp r1, #0 strne r1, [r0, #0x28] movne r0, #1 moveq r0, #0 bx lr arm_func_end func_ov30_02187dfc arm_func_start func_ov30_02187e18 func_ov30_02187e18: ; 0x02187e18 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0x3c mov sl, r0 mov sb, r1 mov r8, r2 mov r7, r3 ldr r6, [sp, #0x60] bl func_ov30_02187dfc ldr fp, _02187eec ; =data_027e0e60 add r5, sp, #0x24 mov r4, #6 _02187e44: mov r0, sl bl func_ov30_02187ef0 cmp r0, #0 addne sp, sp, #0x3c ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} mov r0, sl add r1, sp, #0x30 bl func_ov30_02187dac cmp r0, #0 addeq sp, sp, #0x3c ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} ldr r0, [sp, #0x34] ldr r3, [sp, #0x30] add ip, r0, r8 str ip, [sp, #0x34] ldmia sb!, {r0, r1, r2} stmia r5!, {r0, r1, r2} ldr r0, [sp, #0x24] ldr r1, [sp, #0x38] str r0, [sp, #0xc] ldr r0, [sp, #0x2c] str r3, [sp, #0x18] str r1, [sp, #0x20] str ip, [sp, #0x28] str ip, [sp, #0x1c] str ip, [sp, #0x10] str r0, [sp, #0x14] stmia sp!, {r4, r7} str r6, [sp, #8] ldr r0, [fp] add r1, sp, #0x18 add r2, sp, #0xc mov r3, r8 bl func_01ffe1cc cmp r0, #0 addne sp, sp, #0x3c ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} mov r0, sl bl func_ov30_02187dfc b _02187e44 arm_func_end func_ov30_02187e18 arm_func_start func_ov30_02187ee4 func_ov30_02187ee4: ; 0x02187ee4 add sp, sp, #0x3c ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 arm_func_end func_ov30_02187ee4 _02187eec: .word data_027e0e60 arm_func_start func_ov30_02187ef0 func_ov30_02187ef0: ; 0x02187ef0 ldr r0, [r0, #0x28] ldr r0, [r0, #0x18] cmp r0, #0 moveq r0, #1 movne r0, #0 bx lr arm_func_end func_ov30_02187ef0 arm_func_start func_ov30_02187f08 func_ov30_02187f08: ; 0x02187f08 mov r1, #0 str r1, [r0] str r1, [r0, #4] str r1, [r0, #8] add ip, r0, #0x10 str r1, [r0, #0xc] add r1, ip, #0x1000 mov r3, #0 mvn r2, #0 _02187f2c: str r3, [ip] str r3, [ip, #4] str r3, [ip, #8] str r3, [ip, #0x14] str r3, [ip, #0x18] strb r2, [ip, #0x1c] strb r2, [ip, #0x1d] add ip, ip, #0x20 cmp ip, r1 blo _02187f2c bx lr arm_func_end func_ov30_02187f08 arm_func_start func_ov30_02187f58 func_ov30_02187f58: ; 0x02187f58 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0xc str r0, [sp] add r0, r0, #0x1000 mov sb, #0 ldr r2, _0218807c ; =data_027e0ff0 str sb, [r0, #0x10] ldr r2, [r2] str r1, [sp, #4] ldr r0, [r2, #4] cmp r0, #0 addle sp, sp, #0xc ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} _02187f8c: ldr r8, [r2] and r7, sb, #0xff ldr r2, [r8, r7, lsl #3] cmp r2, #0 beq _02188054 ldrb r1, [r2, #4] ldr r0, [sp, #4] cmp r0, r1 bne _02188054 ldrb r0, [r2, #1] mov sl, #0 cmp r0, #0 ble _02188054 ldr r0, [sp] ldr fp, _0218807c ; =data_027e0ff0 add r6, r0, #0x10 add r5, r6, #0x1000 add r4, r0, #0x1000 _02187fd4: ldr r0, [fp] strb sb, [sp, #0xa] strb sl, [sp, #0xb] add r1, sp, #0xa bl func_ov00_020c47cc ldrsb r0, [r0, #0x16] cmp r0, #0 cmpne r0, #4 movne r0, #1 moveq r0, #0 cmp r0, #0 beq _02188038 ldrb r2, [sp, #0xa] ldrb r1, [sp, #0xb] ldr r0, [r4, #0x10] strb r2, [sp, #8] strb r1, [sp, #9] add r2, r6, r0, lsl #5 ldrsb r1, [sp, #8] ldrsb r0, [sp, #9] strb r1, [r2, #0x1c] strb r0, [r2, #0x1d] ldr r0, [r5] add r0, r0, #1 str r0, [r5] _02188038: ldr r1, [r8, r7, lsl #3] add r0, sl, #1 mov r0, r0, lsl #0x18 ldrb r1, [r1, #1] mov sl, r0, asr #0x18 cmp r1, r0, asr #24 bgt _02187fd4 _02188054: ldr r0, _0218807c ; =data_027e0ff0 add r1, sb, #1 ldr r2, [r0] mov r0, r1, lsl #0x18 ldr r1, [r2, #4] mov sb, r0, asr #0x18 cmp r1, r0, asr #24 bgt _02187f8c add sp, sp, #0xc ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 arm_func_end func_ov30_02187f58 _0218807c: .word data_027e0ff0 arm_func_start func_ov30_02188080 func_ov30_02188080: ; 0x02188080 stmdb sp!, {r3, r4, r5, lr} mov r5, r0 mov ip, #0 str ip, [r5] str ip, [r5, #4] str ip, [r5, #8] str ip, [r5, #0xc] add r0, r5, #0x1000 ldr r3, [r0, #0x10] mov r4, r1 cmp r3, #0 ble _021880e8 add lr, r5, #0x10 mov r3, ip _021880b8: str r3, [lr] str r3, [lr, #4] str r3, [lr, #8] str r3, [lr, #0x14] str r3, [lr, #0x18] str r3, [lr, #0xc] str r3, [lr, #0x10] ldr r1, [r0, #0x10] add ip, ip, #1 cmp ip, r1 add lr, lr, #0x20 blt _021880b8 _021880e8: add r3, r5, #0x1000 mov ip, #0 str ip, [r3, #0x14] mov r0, r5 mov r1, r2 str ip, [r3, #0x18] bl func_ov30_02188168 add r1, r5, #0x1000 str r0, [r1, #0x18] mov r0, r5 mov r1, r4 bl func_ov30_02188168 add r2, r5, #0x1000 str r0, [r2, #0x14] str r0, [r2, #0x1c] ldr r0, [r2, #0x14] mvn r1, #0x80000001 str r1, [r0, #0x10] ldr r0, [r2, #0x18] cmp r0, #0 ldrne r1, [r2, #0x14] cmpne r1, #0 beq _02188160 cmp r0, r1 streq r0, [r2, #0x1c] beq _02188158 mov r0, r5 bl func_ov30_02187234 _02188158: mov r0, #1 ldmia sp!, {r3, r4, r5, pc} _02188160: mov r0, #0 ldmia sp!, {r3, r4, r5, pc} arm_func_end func_ov30_02188080 arm_func_start func_ov30_02188168 func_ov30_02188168: ; 0x02188168 stmdb sp!, {r4, lr} add r2, r0, #0x1000 ldr r4, [r2, #0x10] mov ip, #0 cmp r4, #0 ble _021881b4 ldrsb lr, [r1] _02188184: add r3, r0, ip, lsl #5 ldrsb r2, [r3, #0x2c] ldrsb r3, [r3, #0x2d] cmp lr, r2 ldreqsb r2, [r1, #1] cmpeq r2, r3 addeq r0, r0, #0x10 addeq r0, r0, ip, lsl #5 ldmia sp!, {r4, pc} add ip, ip, #1 cmp ip, r4 blt _02188184 _021881b4: mov r0, #0 ldmia sp!, {r4, pc} arm_func_end func_ov30_02188168 arm_func_start func_ov30_021881bc func_ov30_021881bc: ; 0x021881bc stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0x2c mov sl, r0 ldr r3, [sl] mov r7, #0 cmp r3, #0 sub r2, r7, #0x80000001 beq _02188200 _021881dc: ldr r1, [r3, #0xc] ldr r0, [r3, #0x10] add r0, r1, r0 cmp r2, r0 movgt r7, r3 ldr r3, [r3, #4] movgt r2, r0 cmp r3, #0 bne _021881dc _02188200: mov r0, sl mov r1, r7 bl func_ov30_0218727c mov r1, r7 add r0, sl, #8 bl func_ov30_02187234 add r0, sl, #0x1000 ldr r3, [r0, #0x18] ldr r0, _02188394 ; =data_027e0ff0 ldrsb r2, [r3, #0x1c] ldr r0, [r0] add r1, sp, #0 strb r2, [sp] ldrsb r2, [r3, #0x1d] strb r2, [sp, #1] bl func_ov00_020c47cc add r0, r0, #4 add r3, sp, #0x20 ldmia r0!, {r0, r1, r2} stmia r3!, {r0, r1, r2} ldrsb r2, [r7, #0x1c] ldr r0, _02188394 ; =data_027e0ff0 add r1, sp, #4 strb r2, [sp, #4] ldrsb r2, [r7, #0x1d] ldr r0, [r0] strb r2, [sp, #5] bl func_ov00_020c47cc mov r6, r0 mov fp, #0 add sb, r6, #0x14 add r4, sl, #0x1000 _02188280: ldrsb r0, [sb, #2] sub r0, r0, #1 mov r0, r0, lsl #0x18 mov r0, r0, asr #0x18 and r0, r0, #0xff cmp r0, #2 bhi _02188378 ldrsb r0, [sb, #3] cmp r0, #0 bne _02188378 ldrsb r2, [sb] ldr r0, _02188394 ; =data_027e0ff0 add r1, sp, #2 strb r2, [sp, #2] ldrsb r2, [sb, #1] ldr r0, [r0] strb r2, [sp, #3] bl func_ov00_020c47cc mov r5, r0 mov r0, sl add r1, sp, #2 bl func_ov30_02188168 mov r8, r0 ldr r0, [r8, #8] cmp r0, #0 bne _02188378 mov r0, sl str r7, [r8, #0x14] mov r1, r8 bl func_ov30_02187234 ldr r1, [r6, #4] add r0, sp, #0x14 str r1, [sp, #0x14] ldr r2, [r6, #8] add r1, sp, #8 str r2, [sp, #0x18] ldr r2, [r6, #0xc] str r2, [sp, #0x1c] ldr r2, [r5, #4] str r2, [sp, #8] ldr r2, [r5, #8] str r2, [sp, #0xc] ldr r2, [r5, #0xc] str r2, [sp, #0x10] bl func_ov00_020ce2f0 ldr r2, [r8, #0x14] add r1, sp, #8 ldr r2, [r2, #0xc] add r0, r2, r0 str r0, [r8, #0xc] add r0, sp, #0x20 bl func_ov00_020ce2f0 str r0, [r8, #0x10] ldr r1, [r4, #0x1c] ldr r1, [r1, #0x10] cmp r1, r0 strgt r8, [r4, #0x1c] ldr r0, [r4, #0x18] cmp r8, r0 addeq sp, sp, #0x2c moveq r0, #1 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} _02188378: add fp, fp, #1 cmp fp, #4 add sb, sb, #4 blt _02188280 mov r0, #0 add sp, sp, #0x2c ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 arm_func_end func_ov30_021881bc _02188394: .word data_027e0ff0 arm_func_start func_ov30_02188398 func_ov30_02188398: ; 0x02188398 stmdb sp!, {r4, r5, r6, lr} mov r5, r1 mov r6, r0 mov r4, #0 cmp r5, #0 ldmia sp!, {r4, r5, r6, pc} _021883b0: mov r0, r6 bl func_ov30_021883e0 cmp r0, #0 ldmia sp!, {r4, r5, r6, pc} mov r0, r6 bl func_ov30_021881bc add r0, r4, #1 mov r0, r0, lsl #0x10 cmp r5, r0, asr #16 mov r4, r0, asr #0x10 bgt _021883b0 ldmia sp!, {r4, r5, r6, pc} arm_func_end func_ov30_02188398 arm_func_start func_ov30_021883e0 func_ov30_021883e0: ; 0x021883e0 ldr r1, [r0] cmp r1, #0 beq _02188400 add r0, r0, #0x1000 ldr r1, [r0, #0x18] ldr r0, [r0, #0x1c] cmp r1, r0 bne _02188408 _02188400: mov r0, #1 bx lr _02188408: mov r0, #0 bx lr arm_func_end func_ov30_021883e0 arm_func_start func_ov30_02188410 func_ov30_02188410: ; 0x02188410 add r0, r0, #0x1000 ldr r1, [r0, #0x1c] ldr r0, [r0, #0x18] cmp r1, r0 moveq r0, #1 movne r0, #0 bx lr arm_func_end func_ov30_02188410 arm_func_start func_ov30_0218842c func_ov30_0218842c: ; 0x0218842c add r0, r0, #0x1000 ldr r1, [r0, #0x18] ldr r0, [r0, #0x1c] cmp r0, r1 ldreq r0, [r1, #0xc] mvnne r0, #0x80000000 bx lr arm_func_end func_ov30_0218842c arm_func_start func_ov30_02188448 func_ov30_02188448: ; 0x02188448 add r1, r0, #0x1000 ldr r2, [r1, #0x14] str r2, [r1, #0x20] ldr r1, [r1, #0x1c] _02188458: mov r2, r1 ldr r1, [r1, #0x14] cmp r1, #0 strne r2, [r1, #0x18] bne _02188458 add r0, r0, #0x1000 ldr r0, [r0, #0x1c] cmp r0, #0 bxeq lr _0218847c: ldr r0, [r0, #0x18] cmp r0, #0 bne _0218847c bx lr arm_func_end func_ov30_02188448 arm_func_start func_ov30_0218848c func_ov30_0218848c: ; 0x0218848c add r0, r0, #0x1000 ldr r0, [r0, #0x20] cmp r0, #0 moveq r0, #0 bxeq lr ldrsb r3, [r0, #0x1d] ldrsb r2, [r0, #0x1c] mov r0, #1 strb r2, [r1] strb r3, [r1, #1] bx lr arm_func_end func_ov30_0218848c arm_func_start func_ov30_021884b8 func_ov30_021884b8: ; 0x021884b8 stmdb sp!, {r3, r4, lr} sub sp, sp, #4 add r0, r0, #0x1000 ldr r3, [r0, #0x20] mov r4, r1 cmp r3, #0 addeq sp, sp, #4 moveq r0, #0 ldmia sp!, {r3, r4, pc} ldrsb r2, [r3, #0x1c] ldr r0, _02188520 ; =data_027e0ff0 add r1, sp, #0 strb r2, [sp] ldrsb r2, [r3, #0x1d] ldr r0, [r0] strb r2, [sp, #1] bl func_ov00_020c47cc ldr r1, [r0, #4] str r1, [r4] ldr r1, [r0, #8] str r1, [r4, #4] ldr r1, [r0, #0xc] mov r0, #1 str r1, [r4, #8] add sp, sp, #4 ldmia sp!, {r3, r4, pc} .align 2, 0 arm_func_end func_ov30_021884b8 _02188520: .word data_027e0ff0 arm_func_start func_ov30_02188524 func_ov30_02188524: ; 0x02188524 stmdb sp!, {r3, r4, lr} sub sp, sp, #4 add r0, r0, #0x1000 ldr r0, [r0, #0x20] mov r4, r1 cmp r0, #0 ldrne r3, [r0, #0x18] cmpne r3, #0 addeq sp, sp, #4 moveq r0, #0 ldmia sp!, {r3, r4, pc} ldrsb r2, [r3, #0x1c] ldr r0, _02188594 ; =data_027e0ff0 add r1, sp, #0 strb r2, [sp] ldrsb r2, [r3, #0x1d] ldr r0, [r0] strb r2, [sp, #1] bl func_ov00_020c47cc ldr r1, [r0, #4] str r1, [r4] ldr r1, [r0, #8] str r1, [r4, #4] ldr r1, [r0, #0xc] mov r0, #1 str r1, [r4, #8] add sp, sp, #4 ldmia sp!, {r3, r4, pc} .align 2, 0 arm_func_end func_ov30_02188524 _02188594: .word data_027e0ff0 arm_func_start func_ov30_02188598 func_ov30_02188598: ; 0x02188598 add r0, r0, #0x1000 ldr r1, [r0, #0x20] ldr r1, [r1, #0x18] cmp r1, #0 strne r1, [r0, #0x20] movne r0, #1 moveq r0, #0 bx lr arm_func_end func_ov30_02188598 arm_func_start func_ov30_021885b8 func_ov30_021885b8: ; 0x021885b8 add r0, r0, #0x1000 ldr r0, [r0, #0x20] ldr r0, [r0, #0x18] cmp r0, #0 moveq r0, #1 movne r0, #0 bx lr arm_func_end func_ov30_021885b8 data_ov30_021885d4: ; 0x021885d4 .byte 0x68, 0x65, 0x61, 0x64, 0x5f, 0x6a, 0x6e, 0x74, 0x00, 0x00, 0x00, 0x00 data_ov30_021885e0: ; 0x021885e0 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_021885e4: ; 0x021885e4 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_021885e8: ; 0x021885e8 .byte 0x52, 0x61, 0x72, 0x6d, 0x42, 0x5f, 0x6a, 0x6e .byte 0x74, 0x00, 0x00, 0x00 data_ov30_021885f4: ; 0x021885f4 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_021885f8: ; 0x021885f8 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_021885fc: ; 0x021885fc .byte 0x33, 0x03, 0x00, 0x00 data_ov30_02188600: ; 0x02188600 .byte 0x14, 0xfe, 0xff, 0xff data_ov30_02188604: ; 0x02188604 .byte 0xcd, 0x04, 0x00, 0x00 data_ov30_02188608: ; 0x02188608 .byte 0x33, 0x03, 0x00, 0x00 data_ov30_0218860c: ; 0x0218860c .byte 0xec, 0x01, 0x00, 0x00 data_ov30_02188610: ; 0x02188610 .byte 0xcd, 0x04, 0x00, 0x00 data_ov30_02188614: ; 0x02188614 .byte 0x9a, 0x05, 0x00, 0x00 data_ov30_02188618: ; 0x02188618 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_0218861c: ; 0x0218861c .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188620: ; 0x02188620 .byte 0x9a, 0x05, 0x00, 0x00 data_ov30_02188624: ; 0x02188624 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188628: ; 0x02188628 .byte 0x66, 0x16, 0x00, 0x00 data_ov30_0218862c: ; 0x0218862c .byte 0x00, 0x08, 0x00, 0x00 data_ov30_02188630: ; 0x02188630 .byte 0x66, 0xfa, 0xff, 0xff data_ov30_02188634: ; 0x02188634 .byte 0xcd, 0x08, 0x00, 0x00 data_ov30_02188638: ; 0x02188638 .byte 0x9a, 0x05, 0x00, 0x00 data_ov30_0218863c: ; 0x0218863c .byte 0x00, 0xf0, 0xff, 0xff data_ov30_02188640: ; 0x02188640 .byte 0x66, 0x12, 0x00, 0x00 data_ov30_02188644: ; 0x02188644 .byte 0x77, 0x61, 0x69, 0x74, 0x00, 0x00, 0x00, 0x00 data_ov30_0218864c: ; 0x0218864c .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188650: ; 0x02188650 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188654: ; 0x02188654 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188658: ; 0x02188658 .asciz "walk" _0218865d: .byte 0x00, 0x00, 0x00 data_ov30_02188660: ; 0x02188660 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188664: ; 0x02188664 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188668: ; 0x02188668 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_0218866c: ; 0x0218866c .asciz "cutA" _02188671: .byte 0x00, 0x00, 0x00 data_ov30_02188674: ; 0x02188674 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188678: ; 0x02188678 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_0218867c: ; 0x0218867c .byte 0x01, 0x00, 0x00, 0x00 data_ov30_02188680: ; 0x02188680 .asciz "dam" data_ov30_02188684: ; 0x02188684 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188688: ; 0x02188688 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_0218868c: ; 0x0218868c .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188690: ; 0x02188690 .byte 0x01, 0x00, 0x00, 0x00 data_ov30_02188694: ; 0x02188694 .asciz "yoroke" _0218869b: .byte 0x00 data_ov30_0218869c: ; 0x0218869c .byte 0x00, 0x00, 0x00, 0x00 data_ov30_021886a0: ; 0x021886a0 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_021886a4: ; 0x021886a4 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_021886a8: ; 0x021886a8 .asciz "search" _021886af: .byte 0x00 data_ov30_021886b0: ; 0x021886b0 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_021886b4: ; 0x021886b4 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_021886b8: ; 0x021886b8 .byte 0x01, 0x00, 0x00, 0x00 data_ov30_021886bc: ; 0x021886bc .asciz "guard" _021886c2: .byte 0x00, 0x00 data_ov30_021886c4: ; 0x021886c4 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_021886c8: ; 0x021886c8 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_021886cc: ; 0x021886cc .byte 0x01, 0x00, 0x00, 0x00 data_ov30_021886d0: ; 0x021886d0 .asciz "notice" _021886d7: .byte 0x00 data_ov30_021886d8: ; 0x021886d8 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_021886dc: ; 0x021886dc .byte 0x00, 0x00, 0x00, 0x00 data_ov30_021886e0: ; 0x021886e0 .byte 0x01, 0x00, 0x00, 0x00 data_ov30_021886e4: ; 0x021886e4 .asciz "appear" _021886eb: .byte 0x00 data_ov30_021886ec: ; 0x021886ec .byte 0x00, 0x00, 0x00, 0x00 data_ov30_021886f0: ; 0x021886f0 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_021886f4: ; 0x021886f4 .byte 0x01, 0x00, 0x00, 0x00 data_ov30_021886f8: ; 0x021886f8 .asciz "invisible" _02188702: .byte 0x00, 0x00 data_ov30_02188704: ; 0x02188704 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188708: ; 0x02188708 .byte 0x01, 0x00, 0x00, 0x00 data_ov30_0218870c: ; 0x0218870c .asciz "killed" _02188713: .byte 0x00 data_ov30_02188714: ; 0x02188714 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188718: ; 0x02188718 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_0218871c: ; 0x0218871c .byte 0x01, 0x00, 0x00, 0x00 data_ov30_02188720: ; 0x02188720 .asciz "warp1" _02188726: .byte 0x00, 0x00 data_ov30_02188728: ; 0x02188728 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_0218872c: ; 0x0218872c .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188730: ; 0x02188730 .byte 0x01, 0x00, 0x00, 0x00 data_ov30_02188734: ; 0x02188734 .asciz "dead" _02188739: .byte 0x00, 0x00, 0x00 data_ov30_0218873c: ; 0x0218873c .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188740: ; 0x02188740 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188744: ; 0x02188744 .byte 0x01, 0x00, 0x00, 0x00 data_ov30_02188748: ; 0x02188748 .byte 0x64, 0x65, 0x61, 0x64, 0x00, 0x00, 0x00, 0x00 data_ov30_02188750: ; 0x02188750 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188754: ; 0x02188754 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188758: ; 0x02188758 .byte 0x01, 0x00, 0x00, 0x00 data_ov30_0218875c: ; 0x0218875c .byte 0x00, 0x30, 0x00, 0x00 data_ov30_02188760: ; 0x02188760 .byte 0x00, 0x10, 0x00, 0x00 data_ov30_02188764: ; 0x02188764 .byte 0x9a, 0x01, 0x00, 0x00 data_ov30_02188768: ; 0x02188768 .byte 0xcd, 0x00, 0x00, 0x00 data_ov30_0218876c: ; 0x0218876c .byte 0x00, 0xd0, 0x00, 0x00 data_ov30_02188770: ; 0x02188770 .byte 0x00, 0x10, 0x00, 0x00 data_ov30_02188774: ; 0x02188774 .byte 0x0e, 0x00, 0x00, 0x00 data_ov30_02188778: ; 0x02188778 .byte 0x12, 0x00, 0x00, 0x00 data_ov30_0218877c: ; 0x0218877c .byte 0x13, 0x00, 0x00, 0x00 data_ov30_02188780: ; 0x02188780 .byte 0xff, 0xff, 0xff, 0xff data_ov30_02188784: ; 0x02188784 .byte 0x0f, 0x00, 0x00, 0x00 data_ov30_02188788: ; 0x02188788 .byte 0x12, 0x00, 0x00, 0x00 data_ov30_0218878c: ; 0x0218878c .byte 0x13, 0x00, 0x00, 0x00 data_ov30_02188790: ; 0x02188790 .byte 0xff, 0xff, 0xff, 0xff data_ov30_02188794: ; 0x02188794 .byte 0x10, 0x00, 0x00, 0x00 data_ov30_02188798: ; 0x02188798 .byte 0x12, 0x00, 0x00, 0x00 data_ov30_0218879c: ; 0x0218879c .byte 0x13, 0x00, 0x00, 0x00 data_ov30_021887a0: ; 0x021887a0 .byte 0xff, 0xff, 0xff, 0xff data_ov30_021887a4: ; 0x021887a4 .byte 0x11, 0x00, 0x00, 0x00 data_ov30_021887a8: ; 0x021887a8 .byte 0xff, 0xff, 0xff, 0xff data_ov30_021887ac: ; 0x021887ac .byte 0x52, 0x53, 0x48, 0x43 data_ov30_021887b0: ; 0x021887b0 .byte 0x74, 0x87, 0x18, 0x02 data_ov30_021887b4: ; 0x021887b4 .byte 0x32, 0x53, 0x48, 0x43 data_ov30_021887b8: ; 0x021887b8 .byte 0x84, 0x87, 0x18, 0x02 data_ov30_021887bc: ; 0x021887bc .byte 0x36, 0x53, 0x48, 0x43 data_ov30_021887c0: ; 0x021887c0 .byte 0x94, 0x87, 0x18, 0x02 data_ov30_021887c4: ; 0x021887c4 .byte 0x34, 0x53, 0x48, 0x43 data_ov30_021887c8: ; 0x021887c8 .byte 0xa4, 0x87, 0x18, 0x02 data_ov30_021887cc: ; 0x021887cc .byte 0x02, 0x00, 0x00, 0x00 data_ov30_021887d0: ; 0x021887d0 .byte 0x4d, 0x42, 0x4c, 0x46 data_ov30_021887d4: ; 0x021887d4 .asciz "TBLFLALFMTLFMTSL" _021887e5: .byte 0x00, 0x00, 0x00 data_ov30_021887e8: ; 0x021887e8 .byte 0x33, 0x0b, 0x00, 0x00 data_ov30_021887ec: ; 0x021887ec .byte 0xcd, 0x14, 0x00, 0x00 data_ov30_021887f0: ; 0x021887f0 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_021887f4: ; 0x021887f4 .byte 0x33, 0x0b, 0x00, 0x00 data_ov30_021887f8: ; 0x021887f8 .byte 0xcd, 0x14, 0x00, 0x00 data_ov30_021887fc: ; 0x021887fc .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188800: ; 0x02188800 .byte 0x00, 0x0c, 0x00, 0x00 data_ov30_02188804: ; 0x02188804 .byte 0x00, 0x10, 0x00, 0x00 data_ov30_02188808: ; 0x02188808 .byte 0x0c, 0x00, 0x00, 0x00 data_ov30_0218880c: ; 0x0218880c .byte 0x08, 0x00, 0x00, 0x00 data_ov30_02188810: ; 0x02188810 .byte 0x10, 0x00, 0x00, 0x00 data_ov30_02188814: ; 0x02188814 .byte 0xfb, 0x06, 0xfc, 0x05 data_ov30_02188818: ; 0x02188818 .byte 0xf6, 0x09, 0x00, 0x0c data_ov30_0218881c: ; 0x0218881c .byte 0x05, 0x00, 0x00, 0x00 data_ov30_02188820: ; 0x02188820 .byte 0x00, 0x10, 0x00, 0x00 arm_func_start func_ov30_02188824 func_ov30_02188824: ; 0x02188824 stmdb sp!, {lr} sub sp, sp, #0x84 ldr r0, _02188988 ; =data_ov30_021894ac ldr r1, _0218898c ; =0x43485352 ldr r2, _02188990 ; =func_ov30_02180628 ldr r3, _02188994 ; =func_ov30_02180548 bl func_0203e784 ldr r0, _02188988 ; =data_ov30_021894ac ldr r1, _02188998 ; =func_0203e7b4 ldr r2, _0218899c ; =data_ov30_021894a0 bl func_0204f8d4 ldr r0, _021889a0 ; =data_ov30_021894cc ldr r1, _021889a4 ; =0x43485332 ldr r2, _021889a8 ; =func_ov30_0218066c ldr r3, _021889ac ; =func_ov30_021805ac bl func_0203e784 ldr r0, _021889a0 ; =data_ov30_021894cc ldr r1, _02188998 ; =func_0203e7b4 ldr r2, _021889b0 ; =data_ov30_021894c0 bl func_0204f8d4 ldr r0, _021889b4 ; =data_ov30_021894ec ldr r1, _021889b8 ; =0x43485336 ldr r2, _021889bc ; =func_ov30_021806b0 ldr r3, _021889c0 ; =func_ov30_02180610 bl func_0203e784 ldr r0, _021889b4 ; =data_ov30_021894ec ldr r1, _02188998 ; =func_0203e7b4 ldr r2, _021889c4 ; =data_ov30_021894e0 bl func_0204f8d4 ldr r0, _021889c8 ; =data_ov30_0218950c ldr r1, _021889cc ; =0x43485334 ldr r2, _021889d0 ; =func_ov30_021806f4 ldr r3, _021889d4 ; =func_ov30_0218061c bl func_0203e784 ldr r0, _021889c8 ; =data_ov30_0218950c ldr r1, _02188998 ; =func_0203e7b4 ldr r2, _021889d8 ; =data_ov30_02189500 bl func_0204f8d4 mov lr, #0 str lr, [sp] str lr, [sp, #4] mov ip, #2 str ip, [sp, #8] mov r3, #0x1000 str r3, [sp, #0xc] str r3, [sp, #0x10] str r3, [sp, #0x14] str ip, [sp, #0x18] mov r2, #4 str r2, [sp, #0x1c] str r2, [sp, #0x20] str lr, [sp, #0x24] str lr, [sp, #0x28] str r2, [sp, #0x2c] str r2, [sp, #0x30] str r2, [sp, #0x34] mov r0, #5 str r0, [sp, #0x38] str r2, [sp, #0x3c] str r2, [sp, #0x40] str r2, [sp, #0x44] mov r0, #0xf0 str r0, [sp, #0x48] str r3, [sp, #0x4c] str lr, [sp, #0x50] ldr r1, _021889dc ; =0x00000666 mov r0, #0x800 str r1, [sp, #0x54] str lr, [sp, #0x58] str r1, [sp, #0x5c] str r0, [sp, #0x60] str r0, [sp, #0x64] str r3, [sp, #0x68] str lr, [sp, #0x6c] str lr, [sp, #0x70] str lr, [sp, #0x74] str lr, [sp, #0x78] str lr, [sp, #0x7c] str ip, [sp, #0x80] ldr r0, _021889e0 ; =data_ov30_02188c9c mov r1, #0xff mov r3, r1 bl func_ov00_020ccdd4 ldr r0, _021889e0 ; =data_ov30_02188c9c ldr r1, _021889e4 ; =func_ov00_020cceec ldr r2, _021889e8 ; =data_ov30_02189520 bl func_0204f8d4 add sp, sp, #0x84 ldmia sp!, {pc} .align 2, 0 arm_func_end func_ov30_02188824 _02188988: .word data_ov30_021894ac _0218898c: .word 0x43485352 _02188990: .word func_ov30_02180628 _02188994: .word func_ov30_02180548 _02188998: .word func_0203e7b4 _0218899c: .word data_ov30_021894a0 _021889a0: .word data_ov30_021894cc _021889a4: .word 0x43485332 _021889a8: .word func_ov30_0218066c _021889ac: .word func_ov30_021805ac _021889b0: .word data_ov30_021894c0 _021889b4: .word data_ov30_021894ec _021889b8: .word 0x43485336 _021889bc: .word func_ov30_021806b0 _021889c0: .word func_ov30_02180610 _021889c4: .word data_ov30_021894e0 _021889c8: .word data_ov30_0218950c _021889cc: .word 0x43485334 _021889d0: .word func_ov30_021806f4 _021889d4: .word func_ov30_0218061c _021889d8: .word data_ov30_02189500 _021889dc: .word 0x00000666 _021889e0: .word data_ov30_02188c9c _021889e4: .word func_ov00_020cceec _021889e8: .word data_ov30_02189520 arm_func_start func_ov30_021889ec func_ov30_021889ec: ; 0x021889ec stmdb sp!, {r3, lr} ldr r0, _02188a18 ; =data_ov30_0218953c ldr r1, _02188a1c ; =0x43484f42 ldr r2, _02188a20 ; =func_ov30_021847b0 mov r3, #0 bl func_0203e784 ldr r0, _02188a18 ; =data_ov30_0218953c ldr r1, _02188a24 ; =func_0203e7b4 ldr r2, _02188a28 ; =data_ov30_02189530 bl func_0204f8d4 ldmia sp!, {r3, pc} .align 2, 0 arm_func_end func_ov30_021889ec _02188a18: .word data_ov30_0218953c _02188a1c: .word 0x43484f42 _02188a20: .word func_ov30_021847b0 _02188a24: .word func_0203e7b4 _02188a28: .word data_ov30_02189530 data_ov30_02188a2c: ; 0x02188a2c .byte 0x24, 0x88, 0x18, 0x02 data_ov30_02188a30: ; 0x02188a30 .byte 0xec, 0x89, 0x18, 0x02 data_ov30_02188a34: ; 0x02188a34 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188a38: ; 0x02188a38 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188a3c: ; 0x02188a3c .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188a40: ; 0x02188a40 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188a44: ; 0x02188a44 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188a48: ; 0x02188a48 .byte 0x88, 0xc1, 0x17, 0x02 data_ov30_02188a4c: ; 0x02188a4c .byte 0x6c, 0xc1, 0x17, 0x02 data_ov30_02188a50: ; 0x02188a50 .byte 0x9c, 0xc1, 0x17, 0x02 data_ov30_02188a54: ; 0x02188a54 .byte 0xa4, 0xc1, 0x17, 0x02 data_ov30_02188a58: ; 0x02188a58 .byte 0x20, 0xc1, 0x17, 0x02 data_ov30_02188a5c: ; 0x02188a5c .byte 0x50, 0x1f, 0x08, 0x02 data_ov30_02188a60: ; 0x02188a60 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188a64: ; 0x02188a64 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188a68: ; 0x02188a68 .byte 0x34, 0x5d, 0x0c, 0x02 data_ov30_02188a6c: ; 0x02188a6c .byte 0x80, 0xc8, 0x17, 0x02 data_ov30_02188a70: ; 0x02188a70 .byte 0x58, 0x5e, 0x0c, 0x02 data_ov30_02188a74: ; 0x02188a74 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188a78: ; 0x02188a78 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188a7c: ; 0x02188a7c .byte 0x90, 0xc7, 0x17, 0x02 data_ov30_02188a80: ; 0x02188a80 .byte 0xe4, 0xcd, 0x17, 0x02 data_ov30_02188a84: ; 0x02188a84 .byte 0x0c, 0x96, 0x0a, 0x02 data_ov30_02188a88: ; 0x02188a88 .byte 0x14, 0x96, 0x0a, 0x02 data_ov30_02188a8c: ; 0x02188a8c .byte 0x50, 0x96, 0x0a, 0x02 data_ov30_02188a90: ; 0x02188a90 .byte 0xd4, 0x96, 0x0a, 0x02 data_ov30_02188a94: ; 0x02188a94 .byte 0x40, 0x97, 0x0a, 0x02 data_ov30_02188a98: ; 0x02188a98 .byte 0x64, 0x97, 0x0a, 0x02 data_ov30_02188a9c: ; 0x02188a9c .byte 0xd0, 0x97, 0x0a, 0x02 data_ov30_02188aa0: ; 0x02188aa0 .byte 0xe0, 0x97, 0x0a, 0x02 data_ov30_02188aa4: ; 0x02188aa4 .byte 0xf8, 0x97, 0x0a, 0x02 data_ov30_02188aa8: ; 0x02188aa8 .byte 0x64, 0x98, 0x0a, 0x02 data_ov30_02188aac: ; 0x02188aac .byte 0xbc, 0x98, 0x0a, 0x02 data_ov30_02188ab0: ; 0x02188ab0 .byte 0x90, 0x98, 0x0a, 0x02 data_ov30_02188ab4: ; 0x02188ab4 .byte 0x68, 0x99, 0x0a, 0x02 data_ov30_02188ab8: ; 0x02188ab8 .byte 0xd0, 0xc4, 0x17, 0x02 data_ov30_02188abc: ; 0x02188abc .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188ac0: ; 0x02188ac0 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188ac4: ; 0x02188ac4 .byte 0x34, 0x5d, 0x0c, 0x02 data_ov30_02188ac8: ; 0x02188ac8 .byte 0x00, 0xce, 0x17, 0x02 data_ov30_02188acc: ; 0x02188acc .byte 0x58, 0x5e, 0x0c, 0x02 data_ov30_02188ad0: ; 0x02188ad0 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188ad4: ; 0x02188ad4 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188ad8: ; 0x02188ad8 .byte 0x6d, 0x9b, 0x0a, 0x02 data_ov30_02188adc: ; 0x02188adc .byte 0x79, 0x9b, 0x0a, 0x02 data_ov30_02188ae0: ; 0x02188ae0 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188ae4: ; 0x02188ae4 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188ae8: ; 0x02188ae8 .byte 0xa4, 0xd3, 0x17, 0x02 data_ov30_02188aec: ; 0x02188aec .byte 0x90, 0xd9, 0x17, 0x02 data_ov30_02188af0: ; 0x02188af0 .byte 0x98, 0xce, 0x17, 0x02 data_ov30_02188af4: ; 0x02188af4 .byte 0xd0, 0xce, 0x17, 0x02 data_ov30_02188af8: ; 0x02188af8 .byte 0x08, 0xcf, 0x17, 0x02 data_ov30_02188afc: ; 0x02188afc .byte 0x54, 0xd0, 0x17, 0x02 data_ov30_02188b00: ; 0x02188b00 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188b04: ; 0x02188b04 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188b08: ; 0x02188b08 .byte 0x04, 0xce, 0x17, 0x02 data_ov30_02188b0c: ; 0x02188b0c .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188b10: ; 0x02188b10 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188b14: ; 0x02188b14 .byte 0x68, 0x04, 0x18, 0x02 data_ov30_02188b18: ; 0x02188b18 .byte 0x84, 0x04, 0x18, 0x02 data_ov30_02188b1c: ; 0x02188b1c .byte 0x44, 0x05, 0x18, 0x02 data_ov30_02188b20: ; 0x02188b20 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188b24: ; 0x02188b24 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188b28: ; 0x02188b28 .byte 0xec, 0x01, 0x18, 0x02 data_ov30_02188b2c: ; 0x02188b2c .byte 0x08, 0x02, 0x18, 0x02 data_ov30_02188b30: ; 0x02188b30 .byte 0x44, 0x05, 0x18, 0x02 data_ov30_02188b34: ; 0x02188b34 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188b38: ; 0x02188b38 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188b3c: ; 0x02188b3c .byte 0x28, 0xfe, 0x17, 0x02 data_ov30_02188b40: ; 0x02188b40 .byte 0x44, 0xfe, 0x17, 0x02 data_ov30_02188b44: ; 0x02188b44 .byte 0x44, 0x05, 0x18, 0x02 data_ov30_02188b48: ; 0x02188b48 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188b4c: ; 0x02188b4c .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188b50: ; 0x02188b50 .byte 0x5c, 0xfb, 0x17, 0x02 data_ov30_02188b54: ; 0x02188b54 .byte 0x7c, 0xfb, 0x17, 0x02 data_ov30_02188b58: ; 0x02188b58 .byte 0x44, 0x05, 0x18, 0x02 data_ov30_02188b5c: ; 0x02188b5c .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188b60: ; 0x02188b60 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188b64: ; 0x02188b64 .byte 0x58, 0xf7, 0x17, 0x02 data_ov30_02188b68: ; 0x02188b68 .byte 0x7c, 0xf7, 0x17, 0x02 data_ov30_02188b6c: ; 0x02188b6c .byte 0x44, 0x05, 0x18, 0x02 data_ov30_02188b70: ; 0x02188b70 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188b74: ; 0x02188b74 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188b78: ; 0x02188b78 .byte 0xa0, 0xf1, 0x17, 0x02 data_ov30_02188b7c: ; 0x02188b7c .byte 0xc4, 0xf1, 0x17, 0x02 data_ov30_02188b80: ; 0x02188b80 .byte 0x44, 0x05, 0x18, 0x02 data_ov30_02188b84: ; 0x02188b84 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188b88: ; 0x02188b88 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188b8c: ; 0x02188b8c .byte 0x78, 0xed, 0x17, 0x02 data_ov30_02188b90: ; 0x02188b90 .byte 0xb0, 0xed, 0x17, 0x02 data_ov30_02188b94: ; 0x02188b94 .byte 0x44, 0x05, 0x18, 0x02 data_ov30_02188b98: ; 0x02188b98 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188b9c: ; 0x02188b9c .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188ba0: ; 0x02188ba0 .byte 0xf0, 0xec, 0x17, 0x02 data_ov30_02188ba4: ; 0x02188ba4 .byte 0x28, 0xed, 0x17, 0x02 data_ov30_02188ba8: ; 0x02188ba8 .byte 0x44, 0x05, 0x18, 0x02 data_ov30_02188bac: ; 0x02188bac .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188bb0: ; 0x02188bb0 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188bb4: ; 0x02188bb4 .byte 0x6c, 0xeb, 0x17, 0x02 data_ov30_02188bb8: ; 0x02188bb8 .byte 0xbc, 0xeb, 0x17, 0x02 data_ov30_02188bbc: ; 0x02188bbc .byte 0x44, 0x05, 0x18, 0x02 data_ov30_02188bc0: ; 0x02188bc0 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188bc4: ; 0x02188bc4 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188bc8: ; 0x02188bc8 .byte 0x80, 0xe8, 0x17, 0x02 data_ov30_02188bcc: ; 0x02188bcc .byte 0xbc, 0xe8, 0x17, 0x02 data_ov30_02188bd0: ; 0x02188bd0 .byte 0x44, 0x05, 0x18, 0x02 data_ov30_02188bd4: ; 0x02188bd4 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188bd8: ; 0x02188bd8 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188bdc: ; 0x02188bdc .byte 0xc0, 0xee, 0x17, 0x02 data_ov30_02188be0: ; 0x02188be0 .byte 0xe0, 0xee, 0x17, 0x02 data_ov30_02188be4: ; 0x02188be4 .byte 0x44, 0x05, 0x18, 0x02 data_ov30_02188be8: ; 0x02188be8 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188bec: ; 0x02188bec .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188bf0: ; 0x02188bf0 .byte 0x3c, 0xe5, 0x17, 0x02 data_ov30_02188bf4: ; 0x02188bf4 .byte 0xa4, 0xe5, 0x17, 0x02 data_ov30_02188bf8: ; 0x02188bf8 .byte 0x44, 0x05, 0x18, 0x02 data_ov30_02188bfc: ; 0x02188bfc .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188c00: ; 0x02188c00 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188c04: ; 0x02188c04 .byte 0xd0, 0xe3, 0x17, 0x02 data_ov30_02188c08: ; 0x02188c08 .byte 0x14, 0xe4, 0x17, 0x02 data_ov30_02188c0c: ; 0x02188c0c .byte 0x44, 0x05, 0x18, 0x02 data_ov30_02188c10: ; 0x02188c10 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188c14: ; 0x02188c14 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188c18: ; 0x02188c18 .byte 0x94, 0xe0, 0x17, 0x02 data_ov30_02188c1c: ; 0x02188c1c .byte 0xb0, 0xe0, 0x17, 0x02 data_ov30_02188c20: ; 0x02188c20 .byte 0x44, 0x05, 0x18, 0x02 data_ov30_02188c24: ; 0x02188c24 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188c28: ; 0x02188c28 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188c2c: ; 0x02188c2c .byte 0x80, 0xdb, 0x17, 0x02 data_ov30_02188c30: ; 0x02188c30 .byte 0xc8, 0xdb, 0x17, 0x02 data_ov30_02188c34: ; 0x02188c34 .byte 0x44, 0x05, 0x18, 0x02 data_ov30_02188c38: ; 0x02188c38 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188c3c: ; 0x02188c3c .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188c40: ; 0x02188c40 .byte 0xfc, 0xda, 0x17, 0x02 data_ov30_02188c44: ; 0x02188c44 .byte 0x10, 0xdb, 0x17, 0x02 data_ov30_02188c48: ; 0x02188c48 .byte 0x44, 0x05, 0x18, 0x02 data_ov30_02188c4c: ; 0x02188c4c .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188c50: ; 0x02188c50 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188c54: ; 0x02188c54 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188c58: ; 0x02188c58 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188c5c: ; 0x02188c5c .byte 0x62, 0x72, 0x67, 0x00 data_ov30_02188c60: ; 0x02188c60 .byte 0x66, 0x6e, 0x6c, 0x00 data_ov30_02188c64: ; 0x02188c64 .byte 0x70, 0x64, 0x6c, 0x00 data_ov30_02188c68: ; 0x02188c68 .byte 0x64, 0x63, 0x6f, 0x00 data_ov30_02188c6c: ; 0x02188c6c .byte 0x63, 0x61, 0x6e, 0x00 data_ov30_02188c70: ; 0x02188c70 .byte 0x68, 0x75, 0x6c, 0x00 data_ov30_02188c74: ; 0x02188c74 .byte 0x62, 0x6f, 0x77, 0x00 data_ov30_02188c78: ; 0x02188c78 .byte 0x61, 0x6e, 0x63, 0x00 data_ov30_02188c7c: ; 0x02188c7c .byte 0x78, 0x8c, 0x18, 0x02 data_ov30_02188c80: ; 0x02188c80 .byte 0x74, 0x8c, 0x18, 0x02 data_ov30_02188c84: ; 0x02188c84 .byte 0x70, 0x8c, 0x18, 0x02 data_ov30_02188c88: ; 0x02188c88 .byte 0x6c, 0x8c, 0x18, 0x02 data_ov30_02188c8c: ; 0x02188c8c .byte 0x68, 0x8c, 0x18, 0x02 data_ov30_02188c90: ; 0x02188c90 .byte 0x64, 0x8c, 0x18, 0x02 data_ov30_02188c94: ; 0x02188c94 .byte 0x60, 0x8c, 0x18, 0x02 data_ov30_02188c98: ; 0x02188c98 .byte 0x5c, 0x8c, 0x18, 0x02 data_ov30_02188c9c: ; 0x02188c9c .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188ca0: ; 0x02188ca0 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188ca4: ; 0x02188ca4 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188ca8: ; 0x02188ca8 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188cac: ; 0x02188cac .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188cb0: ; 0x02188cb0 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188cb4: ; 0x02188cb4 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188cb8: ; 0x02188cb8 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188cbc: ; 0x02188cbc .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188cc0: ; 0x02188cc0 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188cc4: ; 0x02188cc4 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188cc8: ; 0x02188cc8 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188ccc: ; 0x02188ccc .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188cd0: ; 0x02188cd0 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188cd4: ; 0x02188cd4 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188cd8: ; 0x02188cd8 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188cdc: ; 0x02188cdc .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188ce0: ; 0x02188ce0 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188ce4: ; 0x02188ce4 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188ce8: ; 0x02188ce8 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188cec: ; 0x02188cec .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188cf0: ; 0x02188cf0 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188cf4: ; 0x02188cf4 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188cf8: ; 0x02188cf8 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188cfc: ; 0x02188cfc .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188d00: ; 0x02188d00 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188d04: ; 0x02188d04 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188d08: ; 0x02188d08 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188d0c: ; 0x02188d0c .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188d10: ; 0x02188d10 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188d14: ; 0x02188d14 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188d18: ; 0x02188d18 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188d1c: ; 0x02188d1c .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188d20: ; 0x02188d20 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188d24: ; 0x02188d24 .byte 0xd4, 0x3e, 0x18, 0x02 data_ov30_02188d28: ; 0x02188d28 .byte 0xb8, 0x3e, 0x18, 0x02 data_ov30_02188d2c: ; 0x02188d2c .byte 0x00, 0xaa, 0x0c, 0x02 data_ov30_02188d30: ; 0x02188d30 .byte 0x3c, 0x17, 0x0c, 0x02 data_ov30_02188d34: ; 0x02188d34 .byte 0x2c, 0x11, 0x18, 0x02 data_ov30_02188d38: ; 0x02188d38 .byte 0x28, 0xaa, 0x0c, 0x02 data_ov30_02188d3c: ; 0x02188d3c .byte 0x30, 0xad, 0x0c, 0x02 data_ov30_02188d40: ; 0x02188d40 .byte 0xf8, 0x1e, 0x18, 0x02 data_ov30_02188d44: ; 0x02188d44 .byte 0x28, 0x23, 0x18, 0x02 data_ov30_02188d48: ; 0x02188d48 .byte 0x44, 0x17, 0x0c, 0x02 data_ov30_02188d4c: ; 0x02188d4c .byte 0x48, 0x17, 0x0c, 0x02 data_ov30_02188d50: ; 0x02188d50 .byte 0xa8, 0x17, 0x0c, 0x02 data_ov30_02188d54: ; 0x02188d54 .byte 0xb0, 0x17, 0x0c, 0x02 data_ov30_02188d58: ; 0x02188d58 .byte 0x4c, 0x17, 0x0c, 0x02 data_ov30_02188d5c: ; 0x02188d5c .byte 0x7c, 0x17, 0x0c, 0x02 data_ov30_02188d60: ; 0x02188d60 .byte 0xe4, 0x27, 0x0c, 0x02 data_ov30_02188d64: ; 0x02188d64 .byte 0x04, 0x30, 0x0c, 0x02 data_ov30_02188d68: ; 0x02188d68 .byte 0x44, 0x27, 0x0c, 0x02 data_ov30_02188d6c: ; 0x02188d6c .byte 0x64, 0x13, 0x18, 0x02 data_ov30_02188d70: ; 0x02188d70 .byte 0x48, 0x18, 0x18, 0x02 data_ov30_02188d74: ; 0x02188d74 .byte 0x0c, 0x31, 0x0c, 0x02 data_ov30_02188d78: ; 0x02188d78 .byte 0x14, 0x31, 0x0c, 0x02 data_ov30_02188d7c: ; 0x02188d7c .byte 0xa8, 0x18, 0x0c, 0x02 data_ov30_02188d80: ; 0x02188d80 .byte 0xc4, 0x18, 0x0c, 0x02 data_ov30_02188d84: ; 0x02188d84 .byte 0xfc, 0x18, 0x0c, 0x02 data_ov30_02188d88: ; 0x02188d88 .byte 0x04, 0x19, 0x0c, 0x02 data_ov30_02188d8c: ; 0x02188d8c .byte 0x10, 0x19, 0x0c, 0x02 data_ov30_02188d90: ; 0x02188d90 .byte 0x14, 0x19, 0x0c, 0x02 data_ov30_02188d94: ; 0x02188d94 .byte 0x1c, 0x19, 0x0c, 0x02 data_ov30_02188d98: ; 0x02188d98 .byte 0x24, 0x19, 0x0c, 0x02 data_ov30_02188d9c: ; 0x02188d9c .byte 0x2c, 0x19, 0x0c, 0x02 data_ov30_02188da0: ; 0x02188da0 .byte 0x28, 0x19, 0x0c, 0x02 data_ov30_02188da4: ; 0x02188da4 .byte 0x34, 0x19, 0x0c, 0x02 data_ov30_02188da8: ; 0x02188da8 .byte 0x38, 0x19, 0x0c, 0x02 data_ov30_02188dac: ; 0x02188dac .byte 0x3c, 0x19, 0x0c, 0x02 data_ov30_02188db0: ; 0x02188db0 .byte 0x40, 0x19, 0x0c, 0x02 data_ov30_02188db4: ; 0x02188db4 .byte 0x48, 0x19, 0x0c, 0x02 data_ov30_02188db8: ; 0x02188db8 .byte 0x50, 0x19, 0x0c, 0x02 data_ov30_02188dbc: ; 0x02188dbc .byte 0x54, 0x19, 0x0c, 0x02 data_ov30_02188dc0: ; 0x02188dc0 .byte 0x58, 0x19, 0x0c, 0x02 data_ov30_02188dc4: ; 0x02188dc4 .byte 0x6c, 0x1b, 0x0c, 0x02 data_ov30_02188dc8: ; 0x02188dc8 .byte 0xb4, 0x1b, 0x0c, 0x02 data_ov30_02188dcc: ; 0x02188dcc .byte 0xf8, 0x1b, 0x0c, 0x02 data_ov30_02188dd0: ; 0x02188dd0 .byte 0x7c, 0x23, 0x18, 0x02 data_ov30_02188dd4: ; 0x02188dd4 .byte 0xdc, 0x12, 0x18, 0x02 data_ov30_02188dd8: ; 0x02188dd8 .byte 0x94, 0x1e, 0x18, 0x02 data_ov30_02188ddc: ; 0x02188ddc .byte 0xbd, 0x0d, 0x18, 0x02 data_ov30_02188de0: ; 0x02188de0 .byte 0x10, 0x1d, 0x18, 0x02 data_ov30_02188de4: ; 0x02188de4 .byte 0xa0, 0xae, 0x0c, 0x02 data_ov30_02188de8: ; 0x02188de8 .byte 0x80, 0x2f, 0x18, 0x02 data_ov30_02188dec: ; 0x02188dec .byte 0xb8, 0x11, 0x18, 0x02 data_ov30_02188df0: ; 0x02188df0 .byte 0xfc, 0xae, 0x0c, 0x02 data_ov30_02188df4: ; 0x02188df4 .byte 0xb8, 0xaf, 0x0c, 0x02 data_ov30_02188df8: ; 0x02188df8 .byte 0x5c, 0x12, 0x18, 0x02 data_ov30_02188dfc: ; 0x02188dfc .byte 0xd0, 0xaf, 0x0c, 0x02 data_ov30_02188e00: ; 0x02188e00 .byte 0x58, 0xb0, 0x0c, 0x02 data_ov30_02188e04: ; 0x02188e04 .byte 0xa4, 0x12, 0x18, 0x02 data_ov30_02188e08: ; 0x02188e08 .byte 0x80, 0xb0, 0x0c, 0x02 data_ov30_02188e0c: ; 0x02188e0c .byte 0x0c, 0xb1, 0x0c, 0x02 data_ov30_02188e10: ; 0x02188e10 .byte 0x20, 0xb1, 0x0c, 0x02 data_ov30_02188e14: ; 0x02188e14 .byte 0x2c, 0xb1, 0x0c, 0x02 data_ov30_02188e18: ; 0x02188e18 .byte 0x3c, 0xb1, 0x0c, 0x02 data_ov30_02188e1c: ; 0x02188e1c .byte 0x50, 0xc1, 0x0c, 0x02 data_ov30_02188e20: ; 0x02188e20 .byte 0x5c, 0xc1, 0x0c, 0x02 data_ov30_02188e24: ; 0x02188e24 .byte 0x90, 0xc4, 0x0c, 0x02 data_ov30_02188e28: ; 0x02188e28 .byte 0x24, 0xc5, 0x0c, 0x02 data_ov30_02188e2c: ; 0x02188e2c .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188e30: ; 0x02188e30 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188e34: ; 0x02188e34 .byte 0x04, 0x3f, 0x18, 0x02 data_ov30_02188e38: ; 0x02188e38 .byte 0xe8, 0x3e, 0x18, 0x02 data_ov30_02188e3c: ; 0x02188e3c .byte 0x00, 0xaa, 0x0c, 0x02 data_ov30_02188e40: ; 0x02188e40 .byte 0x3c, 0x17, 0x0c, 0x02 data_ov30_02188e44: ; 0x02188e44 .byte 0x2c, 0x11, 0x18, 0x02 data_ov30_02188e48: ; 0x02188e48 .byte 0x28, 0xaa, 0x0c, 0x02 data_ov30_02188e4c: ; 0x02188e4c .byte 0x30, 0xad, 0x0c, 0x02 data_ov30_02188e50: ; 0x02188e50 .byte 0xf8, 0x1e, 0x18, 0x02 data_ov30_02188e54: ; 0x02188e54 .byte 0x28, 0x23, 0x18, 0x02 data_ov30_02188e58: ; 0x02188e58 .byte 0x44, 0x17, 0x0c, 0x02 data_ov30_02188e5c: ; 0x02188e5c .byte 0x48, 0x17, 0x0c, 0x02 data_ov30_02188e60: ; 0x02188e60 .byte 0xa8, 0x17, 0x0c, 0x02 data_ov30_02188e64: ; 0x02188e64 .byte 0xb0, 0x17, 0x0c, 0x02 data_ov30_02188e68: ; 0x02188e68 .byte 0x4c, 0x17, 0x0c, 0x02 data_ov30_02188e6c: ; 0x02188e6c .byte 0x7c, 0x17, 0x0c, 0x02 data_ov30_02188e70: ; 0x02188e70 .byte 0xe4, 0x27, 0x0c, 0x02 data_ov30_02188e74: ; 0x02188e74 .byte 0x04, 0x30, 0x0c, 0x02 data_ov30_02188e78: ; 0x02188e78 .byte 0x44, 0x27, 0x0c, 0x02 data_ov30_02188e7c: ; 0x02188e7c .byte 0x64, 0x13, 0x18, 0x02 data_ov30_02188e80: ; 0x02188e80 .byte 0x48, 0x18, 0x18, 0x02 data_ov30_02188e84: ; 0x02188e84 .byte 0x0c, 0x31, 0x0c, 0x02 data_ov30_02188e88: ; 0x02188e88 .byte 0x14, 0x31, 0x0c, 0x02 data_ov30_02188e8c: ; 0x02188e8c .byte 0xa8, 0x18, 0x0c, 0x02 data_ov30_02188e90: ; 0x02188e90 .byte 0xc4, 0x18, 0x0c, 0x02 data_ov30_02188e94: ; 0x02188e94 .byte 0xfc, 0x18, 0x0c, 0x02 data_ov30_02188e98: ; 0x02188e98 .byte 0x04, 0x19, 0x0c, 0x02 data_ov30_02188e9c: ; 0x02188e9c .byte 0x10, 0x19, 0x0c, 0x02 data_ov30_02188ea0: ; 0x02188ea0 .byte 0x14, 0x19, 0x0c, 0x02 data_ov30_02188ea4: ; 0x02188ea4 .byte 0x1c, 0x19, 0x0c, 0x02 data_ov30_02188ea8: ; 0x02188ea8 .byte 0x24, 0x19, 0x0c, 0x02 data_ov30_02188eac: ; 0x02188eac .byte 0x2c, 0x19, 0x0c, 0x02 data_ov30_02188eb0: ; 0x02188eb0 .byte 0x28, 0x19, 0x0c, 0x02 data_ov30_02188eb4: ; 0x02188eb4 .byte 0x34, 0x19, 0x0c, 0x02 data_ov30_02188eb8: ; 0x02188eb8 .byte 0x38, 0x19, 0x0c, 0x02 data_ov30_02188ebc: ; 0x02188ebc .byte 0x3c, 0x19, 0x0c, 0x02 data_ov30_02188ec0: ; 0x02188ec0 .byte 0x40, 0x19, 0x0c, 0x02 data_ov30_02188ec4: ; 0x02188ec4 .byte 0x48, 0x19, 0x0c, 0x02 data_ov30_02188ec8: ; 0x02188ec8 .byte 0x50, 0x19, 0x0c, 0x02 data_ov30_02188ecc: ; 0x02188ecc .byte 0x54, 0x19, 0x0c, 0x02 data_ov30_02188ed0: ; 0x02188ed0 .byte 0x58, 0x19, 0x0c, 0x02 data_ov30_02188ed4: ; 0x02188ed4 .byte 0x6c, 0x1b, 0x0c, 0x02 data_ov30_02188ed8: ; 0x02188ed8 .byte 0xb4, 0x1b, 0x0c, 0x02 data_ov30_02188edc: ; 0x02188edc .byte 0xf8, 0x1b, 0x0c, 0x02 data_ov30_02188ee0: ; 0x02188ee0 .byte 0x7c, 0x23, 0x18, 0x02 data_ov30_02188ee4: ; 0x02188ee4 .byte 0xdc, 0x12, 0x18, 0x02 data_ov30_02188ee8: ; 0x02188ee8 .byte 0x94, 0x1e, 0x18, 0x02 data_ov30_02188eec: ; 0x02188eec .byte 0xbd, 0x0d, 0x18, 0x02 data_ov30_02188ef0: ; 0x02188ef0 .byte 0x10, 0x1d, 0x18, 0x02 data_ov30_02188ef4: ; 0x02188ef4 .byte 0xa0, 0xae, 0x0c, 0x02 data_ov30_02188ef8: ; 0x02188ef8 .byte 0x80, 0x2f, 0x18, 0x02 data_ov30_02188efc: ; 0x02188efc .byte 0xb8, 0x11, 0x18, 0x02 data_ov30_02188f00: ; 0x02188f00 .byte 0xfc, 0xae, 0x0c, 0x02 data_ov30_02188f04: ; 0x02188f04 .byte 0xb8, 0xaf, 0x0c, 0x02 data_ov30_02188f08: ; 0x02188f08 .byte 0x5c, 0x12, 0x18, 0x02 data_ov30_02188f0c: ; 0x02188f0c .byte 0xd0, 0xaf, 0x0c, 0x02 data_ov30_02188f10: ; 0x02188f10 .byte 0x58, 0xb0, 0x0c, 0x02 data_ov30_02188f14: ; 0x02188f14 .byte 0xa4, 0x12, 0x18, 0x02 data_ov30_02188f18: ; 0x02188f18 .byte 0x80, 0xb0, 0x0c, 0x02 data_ov30_02188f1c: ; 0x02188f1c .byte 0x0c, 0xb1, 0x0c, 0x02 data_ov30_02188f20: ; 0x02188f20 .byte 0x20, 0xb1, 0x0c, 0x02 data_ov30_02188f24: ; 0x02188f24 .byte 0x2c, 0xb1, 0x0c, 0x02 data_ov30_02188f28: ; 0x02188f28 .byte 0x3c, 0xb1, 0x0c, 0x02 data_ov30_02188f2c: ; 0x02188f2c .byte 0x50, 0xc1, 0x0c, 0x02 data_ov30_02188f30: ; 0x02188f30 .byte 0x5c, 0xc1, 0x0c, 0x02 data_ov30_02188f34: ; 0x02188f34 .byte 0x90, 0xc4, 0x0c, 0x02 data_ov30_02188f38: ; 0x02188f38 .byte 0x24, 0xc5, 0x0c, 0x02 data_ov30_02188f3c: ; 0x02188f3c .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188f40: ; 0x02188f40 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02188f44: ; 0x02188f44 .byte 0x34, 0x3f, 0x18, 0x02 data_ov30_02188f48: ; 0x02188f48 .byte 0x18, 0x3f, 0x18, 0x02 data_ov30_02188f4c: ; 0x02188f4c .byte 0x00, 0xaa, 0x0c, 0x02 data_ov30_02188f50: ; 0x02188f50 .byte 0x3c, 0x17, 0x0c, 0x02 data_ov30_02188f54: ; 0x02188f54 .byte 0x2c, 0x11, 0x18, 0x02 data_ov30_02188f58: ; 0x02188f58 .byte 0x28, 0xaa, 0x0c, 0x02 data_ov30_02188f5c: ; 0x02188f5c .byte 0x30, 0xad, 0x0c, 0x02 data_ov30_02188f60: ; 0x02188f60 .byte 0xf8, 0x1e, 0x18, 0x02 data_ov30_02188f64: ; 0x02188f64 .byte 0x28, 0x23, 0x18, 0x02 data_ov30_02188f68: ; 0x02188f68 .byte 0x44, 0x17, 0x0c, 0x02 data_ov30_02188f6c: ; 0x02188f6c .byte 0x48, 0x17, 0x0c, 0x02 data_ov30_02188f70: ; 0x02188f70 .byte 0xa8, 0x17, 0x0c, 0x02 data_ov30_02188f74: ; 0x02188f74 .byte 0xb0, 0x17, 0x0c, 0x02 data_ov30_02188f78: ; 0x02188f78 .byte 0x4c, 0x17, 0x0c, 0x02 data_ov30_02188f7c: ; 0x02188f7c .byte 0x7c, 0x17, 0x0c, 0x02 data_ov30_02188f80: ; 0x02188f80 .byte 0xe4, 0x27, 0x0c, 0x02 data_ov30_02188f84: ; 0x02188f84 .byte 0x04, 0x30, 0x0c, 0x02 data_ov30_02188f88: ; 0x02188f88 .byte 0x44, 0x27, 0x0c, 0x02 data_ov30_02188f8c: ; 0x02188f8c .byte 0x64, 0x13, 0x18, 0x02 data_ov30_02188f90: ; 0x02188f90 .byte 0x48, 0x18, 0x18, 0x02 data_ov30_02188f94: ; 0x02188f94 .byte 0x0c, 0x31, 0x0c, 0x02 data_ov30_02188f98: ; 0x02188f98 .byte 0x14, 0x31, 0x0c, 0x02 data_ov30_02188f9c: ; 0x02188f9c .byte 0xa8, 0x18, 0x0c, 0x02 data_ov30_02188fa0: ; 0x02188fa0 .byte 0xc4, 0x18, 0x0c, 0x02 data_ov30_02188fa4: ; 0x02188fa4 .byte 0xfc, 0x18, 0x0c, 0x02 data_ov30_02188fa8: ; 0x02188fa8 .byte 0x04, 0x19, 0x0c, 0x02 data_ov30_02188fac: ; 0x02188fac .byte 0x10, 0x19, 0x0c, 0x02 data_ov30_02188fb0: ; 0x02188fb0 .byte 0x14, 0x19, 0x0c, 0x02 data_ov30_02188fb4: ; 0x02188fb4 .byte 0x1c, 0x19, 0x0c, 0x02 data_ov30_02188fb8: ; 0x02188fb8 .byte 0x24, 0x19, 0x0c, 0x02 data_ov30_02188fbc: ; 0x02188fbc .byte 0x2c, 0x19, 0x0c, 0x02 data_ov30_02188fc0: ; 0x02188fc0 .byte 0x28, 0x19, 0x0c, 0x02 data_ov30_02188fc4: ; 0x02188fc4 .byte 0x34, 0x19, 0x0c, 0x02 data_ov30_02188fc8: ; 0x02188fc8 .byte 0x38, 0x19, 0x0c, 0x02 data_ov30_02188fcc: ; 0x02188fcc .byte 0x3c, 0x19, 0x0c, 0x02 data_ov30_02188fd0: ; 0x02188fd0 .byte 0x40, 0x19, 0x0c, 0x02 data_ov30_02188fd4: ; 0x02188fd4 .byte 0x48, 0x19, 0x0c, 0x02 data_ov30_02188fd8: ; 0x02188fd8 .byte 0x50, 0x19, 0x0c, 0x02 data_ov30_02188fdc: ; 0x02188fdc .byte 0x54, 0x19, 0x0c, 0x02 data_ov30_02188fe0: ; 0x02188fe0 .byte 0x58, 0x19, 0x0c, 0x02 data_ov30_02188fe4: ; 0x02188fe4 .byte 0x6c, 0x1b, 0x0c, 0x02 data_ov30_02188fe8: ; 0x02188fe8 .byte 0xb4, 0x1b, 0x0c, 0x02 data_ov30_02188fec: ; 0x02188fec .byte 0xf8, 0x1b, 0x0c, 0x02 data_ov30_02188ff0: ; 0x02188ff0 .byte 0x7c, 0x23, 0x18, 0x02 data_ov30_02188ff4: ; 0x02188ff4 .byte 0xdc, 0x12, 0x18, 0x02 data_ov30_02188ff8: ; 0x02188ff8 .byte 0x94, 0x1e, 0x18, 0x02 data_ov30_02188ffc: ; 0x02188ffc .byte 0xbd, 0x0d, 0x18, 0x02 data_ov30_02189000: ; 0x02189000 .byte 0x10, 0x1d, 0x18, 0x02 data_ov30_02189004: ; 0x02189004 .byte 0xa0, 0xae, 0x0c, 0x02 data_ov30_02189008: ; 0x02189008 .byte 0x80, 0x2f, 0x18, 0x02 data_ov30_0218900c: ; 0x0218900c .byte 0xb8, 0x11, 0x18, 0x02 data_ov30_02189010: ; 0x02189010 .byte 0xfc, 0xae, 0x0c, 0x02 data_ov30_02189014: ; 0x02189014 .byte 0xb8, 0xaf, 0x0c, 0x02 data_ov30_02189018: ; 0x02189018 .byte 0x5c, 0x12, 0x18, 0x02 data_ov30_0218901c: ; 0x0218901c .byte 0xd0, 0xaf, 0x0c, 0x02 data_ov30_02189020: ; 0x02189020 .byte 0x58, 0xb0, 0x0c, 0x02 data_ov30_02189024: ; 0x02189024 .byte 0xa4, 0x12, 0x18, 0x02 data_ov30_02189028: ; 0x02189028 .byte 0x80, 0xb0, 0x0c, 0x02 data_ov30_0218902c: ; 0x0218902c .byte 0x0c, 0xb1, 0x0c, 0x02 data_ov30_02189030: ; 0x02189030 .byte 0x20, 0xb1, 0x0c, 0x02 data_ov30_02189034: ; 0x02189034 .byte 0x2c, 0xb1, 0x0c, 0x02 data_ov30_02189038: ; 0x02189038 .byte 0x3c, 0xb1, 0x0c, 0x02 data_ov30_0218903c: ; 0x0218903c .byte 0x50, 0xc1, 0x0c, 0x02 data_ov30_02189040: ; 0x02189040 .byte 0x5c, 0xc1, 0x0c, 0x02 data_ov30_02189044: ; 0x02189044 .byte 0x90, 0xc4, 0x0c, 0x02 data_ov30_02189048: ; 0x02189048 .byte 0x24, 0xc5, 0x0c, 0x02 data_ov30_0218904c: ; 0x0218904c .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02189050: ; 0x02189050 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02189054: ; 0x02189054 .byte 0x64, 0x3f, 0x18, 0x02 data_ov30_02189058: ; 0x02189058 .byte 0x48, 0x3f, 0x18, 0x02 data_ov30_0218905c: ; 0x0218905c .byte 0x00, 0xaa, 0x0c, 0x02 data_ov30_02189060: ; 0x02189060 .byte 0x3c, 0x17, 0x0c, 0x02 data_ov30_02189064: ; 0x02189064 .byte 0x2c, 0x11, 0x18, 0x02 data_ov30_02189068: ; 0x02189068 .byte 0x28, 0xaa, 0x0c, 0x02 data_ov30_0218906c: ; 0x0218906c .byte 0x30, 0xad, 0x0c, 0x02 data_ov30_02189070: ; 0x02189070 .byte 0xf8, 0x1e, 0x18, 0x02 data_ov30_02189074: ; 0x02189074 .byte 0x28, 0x23, 0x18, 0x02 data_ov30_02189078: ; 0x02189078 .byte 0x44, 0x17, 0x0c, 0x02 data_ov30_0218907c: ; 0x0218907c .byte 0x48, 0x17, 0x0c, 0x02 data_ov30_02189080: ; 0x02189080 .byte 0xa8, 0x17, 0x0c, 0x02 data_ov30_02189084: ; 0x02189084 .byte 0xb0, 0x17, 0x0c, 0x02 data_ov30_02189088: ; 0x02189088 .byte 0x4c, 0x17, 0x0c, 0x02 data_ov30_0218908c: ; 0x0218908c .byte 0x7c, 0x17, 0x0c, 0x02 data_ov30_02189090: ; 0x02189090 .byte 0xe4, 0x27, 0x0c, 0x02 data_ov30_02189094: ; 0x02189094 .byte 0x04, 0x30, 0x0c, 0x02 data_ov30_02189098: ; 0x02189098 .byte 0x44, 0x27, 0x0c, 0x02 data_ov30_0218909c: ; 0x0218909c .byte 0x64, 0x13, 0x18, 0x02 data_ov30_021890a0: ; 0x021890a0 .byte 0x48, 0x18, 0x18, 0x02 data_ov30_021890a4: ; 0x021890a4 .byte 0x0c, 0x31, 0x0c, 0x02 data_ov30_021890a8: ; 0x021890a8 .byte 0x14, 0x31, 0x0c, 0x02 data_ov30_021890ac: ; 0x021890ac .byte 0xa8, 0x18, 0x0c, 0x02 data_ov30_021890b0: ; 0x021890b0 .byte 0xc4, 0x18, 0x0c, 0x02 data_ov30_021890b4: ; 0x021890b4 .byte 0xfc, 0x18, 0x0c, 0x02 data_ov30_021890b8: ; 0x021890b8 .byte 0x04, 0x19, 0x0c, 0x02 data_ov30_021890bc: ; 0x021890bc .byte 0x10, 0x19, 0x0c, 0x02 data_ov30_021890c0: ; 0x021890c0 .byte 0x14, 0x19, 0x0c, 0x02 data_ov30_021890c4: ; 0x021890c4 .byte 0x1c, 0x19, 0x0c, 0x02 data_ov30_021890c8: ; 0x021890c8 .byte 0x24, 0x19, 0x0c, 0x02 data_ov30_021890cc: ; 0x021890cc .byte 0x2c, 0x19, 0x0c, 0x02 data_ov30_021890d0: ; 0x021890d0 .byte 0x28, 0x19, 0x0c, 0x02 data_ov30_021890d4: ; 0x021890d4 .byte 0x34, 0x19, 0x0c, 0x02 data_ov30_021890d8: ; 0x021890d8 .byte 0x38, 0x19, 0x0c, 0x02 data_ov30_021890dc: ; 0x021890dc .byte 0x3c, 0x19, 0x0c, 0x02 data_ov30_021890e0: ; 0x021890e0 .byte 0x40, 0x19, 0x0c, 0x02 data_ov30_021890e4: ; 0x021890e4 .byte 0x48, 0x19, 0x0c, 0x02 data_ov30_021890e8: ; 0x021890e8 .byte 0x50, 0x19, 0x0c, 0x02 data_ov30_021890ec: ; 0x021890ec .byte 0x54, 0x19, 0x0c, 0x02 data_ov30_021890f0: ; 0x021890f0 .byte 0x58, 0x19, 0x0c, 0x02 data_ov30_021890f4: ; 0x021890f4 .byte 0x6c, 0x1b, 0x0c, 0x02 data_ov30_021890f8: ; 0x021890f8 .byte 0xb4, 0x1b, 0x0c, 0x02 data_ov30_021890fc: ; 0x021890fc .byte 0xf8, 0x1b, 0x0c, 0x02 data_ov30_02189100: ; 0x02189100 .byte 0x7c, 0x23, 0x18, 0x02 data_ov30_02189104: ; 0x02189104 .byte 0xdc, 0x12, 0x18, 0x02 data_ov30_02189108: ; 0x02189108 .byte 0x94, 0x1e, 0x18, 0x02 data_ov30_0218910c: ; 0x0218910c .byte 0xbd, 0x0d, 0x18, 0x02 data_ov30_02189110: ; 0x02189110 .byte 0x10, 0x1d, 0x18, 0x02 data_ov30_02189114: ; 0x02189114 .byte 0xa0, 0xae, 0x0c, 0x02 data_ov30_02189118: ; 0x02189118 .byte 0x80, 0x2f, 0x18, 0x02 data_ov30_0218911c: ; 0x0218911c .byte 0xb8, 0x11, 0x18, 0x02 data_ov30_02189120: ; 0x02189120 .byte 0xfc, 0xae, 0x0c, 0x02 data_ov30_02189124: ; 0x02189124 .byte 0xb8, 0xaf, 0x0c, 0x02 data_ov30_02189128: ; 0x02189128 .byte 0x5c, 0x12, 0x18, 0x02 data_ov30_0218912c: ; 0x0218912c .byte 0xd0, 0xaf, 0x0c, 0x02 data_ov30_02189130: ; 0x02189130 .byte 0x58, 0xb0, 0x0c, 0x02 data_ov30_02189134: ; 0x02189134 .byte 0xa4, 0x12, 0x18, 0x02 data_ov30_02189138: ; 0x02189138 .byte 0x80, 0xb0, 0x0c, 0x02 data_ov30_0218913c: ; 0x0218913c .byte 0x0c, 0xb1, 0x0c, 0x02 data_ov30_02189140: ; 0x02189140 .byte 0x20, 0xb1, 0x0c, 0x02 data_ov30_02189144: ; 0x02189144 .byte 0x2c, 0xb1, 0x0c, 0x02 data_ov30_02189148: ; 0x02189148 .byte 0x3c, 0xb1, 0x0c, 0x02 data_ov30_0218914c: ; 0x0218914c .byte 0x50, 0xc1, 0x0c, 0x02 data_ov30_02189150: ; 0x02189150 .byte 0x5c, 0xc1, 0x0c, 0x02 data_ov30_02189154: ; 0x02189154 .byte 0x90, 0xc4, 0x0c, 0x02 data_ov30_02189158: ; 0x02189158 .byte 0x24, 0xc5, 0x0c, 0x02 data_ov30_0218915c: ; 0x0218915c .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02189160: ; 0x02189160 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02189164: ; 0x02189164 .byte 0x21, 0x0c, 0x18, 0x02 data_ov30_02189168: ; 0x02189168 .byte 0xa9, 0x0c, 0x18, 0x02 data_ov30_0218916c: ; 0x0218916c .byte 0x00, 0xaa, 0x0c, 0x02 data_ov30_02189170: ; 0x02189170 .byte 0x3c, 0x17, 0x0c, 0x02 data_ov30_02189174: ; 0x02189174 .byte 0x2c, 0x11, 0x18, 0x02 data_ov30_02189178: ; 0x02189178 .byte 0x28, 0xaa, 0x0c, 0x02 data_ov30_0218917c: ; 0x0218917c .byte 0x30, 0xad, 0x0c, 0x02 data_ov30_02189180: ; 0x02189180 .byte 0xf8, 0x1e, 0x18, 0x02 data_ov30_02189184: ; 0x02189184 .byte 0x28, 0x23, 0x18, 0x02 data_ov30_02189188: ; 0x02189188 .byte 0x44, 0x17, 0x0c, 0x02 data_ov30_0218918c: ; 0x0218918c .byte 0x48, 0x17, 0x0c, 0x02 data_ov30_02189190: ; 0x02189190 .byte 0xa8, 0x17, 0x0c, 0x02 data_ov30_02189194: ; 0x02189194 .byte 0xb0, 0x17, 0x0c, 0x02 data_ov30_02189198: ; 0x02189198 .byte 0x4c, 0x17, 0x0c, 0x02 data_ov30_0218919c: ; 0x0218919c .byte 0x7c, 0x17, 0x0c, 0x02 data_ov30_021891a0: ; 0x021891a0 .byte 0xe4, 0x27, 0x0c, 0x02 data_ov30_021891a4: ; 0x021891a4 .byte 0x04, 0x30, 0x0c, 0x02 data_ov30_021891a8: ; 0x021891a8 .byte 0x44, 0x27, 0x0c, 0x02 data_ov30_021891ac: ; 0x021891ac .byte 0x64, 0x13, 0x18, 0x02 data_ov30_021891b0: ; 0x021891b0 .byte 0x48, 0x18, 0x18, 0x02 data_ov30_021891b4: ; 0x021891b4 .byte 0x0c, 0x31, 0x0c, 0x02 data_ov30_021891b8: ; 0x021891b8 .byte 0x14, 0x31, 0x0c, 0x02 data_ov30_021891bc: ; 0x021891bc .byte 0xa8, 0x18, 0x0c, 0x02 data_ov30_021891c0: ; 0x021891c0 .byte 0xc4, 0x18, 0x0c, 0x02 data_ov30_021891c4: ; 0x021891c4 .byte 0xfc, 0x18, 0x0c, 0x02 data_ov30_021891c8: ; 0x021891c8 .byte 0x04, 0x19, 0x0c, 0x02 data_ov30_021891cc: ; 0x021891cc .byte 0x10, 0x19, 0x0c, 0x02 data_ov30_021891d0: ; 0x021891d0 .byte 0x14, 0x19, 0x0c, 0x02 data_ov30_021891d4: ; 0x021891d4 .byte 0x1c, 0x19, 0x0c, 0x02 data_ov30_021891d8: ; 0x021891d8 .byte 0x24, 0x19, 0x0c, 0x02 data_ov30_021891dc: ; 0x021891dc .byte 0x2c, 0x19, 0x0c, 0x02 data_ov30_021891e0: ; 0x021891e0 .byte 0x28, 0x19, 0x0c, 0x02 data_ov30_021891e4: ; 0x021891e4 .byte 0x34, 0x19, 0x0c, 0x02 data_ov30_021891e8: ; 0x021891e8 .byte 0x38, 0x19, 0x0c, 0x02 data_ov30_021891ec: ; 0x021891ec .byte 0x3c, 0x19, 0x0c, 0x02 data_ov30_021891f0: ; 0x021891f0 .byte 0x40, 0x19, 0x0c, 0x02 data_ov30_021891f4: ; 0x021891f4 .byte 0x48, 0x19, 0x0c, 0x02 data_ov30_021891f8: ; 0x021891f8 .byte 0x50, 0x19, 0x0c, 0x02 data_ov30_021891fc: ; 0x021891fc .byte 0x54, 0x19, 0x0c, 0x02 data_ov30_02189200: ; 0x02189200 .byte 0x58, 0x19, 0x0c, 0x02 data_ov30_02189204: ; 0x02189204 .byte 0x6c, 0x1b, 0x0c, 0x02 data_ov30_02189208: ; 0x02189208 .byte 0xb4, 0x1b, 0x0c, 0x02 data_ov30_0218920c: ; 0x0218920c .byte 0xf8, 0x1b, 0x0c, 0x02 data_ov30_02189210: ; 0x02189210 .byte 0x7c, 0x23, 0x18, 0x02 data_ov30_02189214: ; 0x02189214 .byte 0xdc, 0x12, 0x18, 0x02 data_ov30_02189218: ; 0x02189218 .byte 0x94, 0x1e, 0x18, 0x02 data_ov30_0218921c: ; 0x0218921c .byte 0xbd, 0x0d, 0x18, 0x02 data_ov30_02189220: ; 0x02189220 .byte 0x10, 0x1d, 0x18, 0x02 data_ov30_02189224: ; 0x02189224 .byte 0xa0, 0xae, 0x0c, 0x02 data_ov30_02189228: ; 0x02189228 .byte 0x80, 0x2f, 0x18, 0x02 data_ov30_0218922c: ; 0x0218922c .byte 0xb8, 0x11, 0x18, 0x02 data_ov30_02189230: ; 0x02189230 .byte 0xfc, 0xae, 0x0c, 0x02 data_ov30_02189234: ; 0x02189234 .byte 0xb8, 0xaf, 0x0c, 0x02 data_ov30_02189238: ; 0x02189238 .byte 0x5c, 0x12, 0x18, 0x02 data_ov30_0218923c: ; 0x0218923c .byte 0xd0, 0xaf, 0x0c, 0x02 data_ov30_02189240: ; 0x02189240 .byte 0x58, 0xb0, 0x0c, 0x02 data_ov30_02189244: ; 0x02189244 .byte 0xa4, 0x12, 0x18, 0x02 data_ov30_02189248: ; 0x02189248 .byte 0x80, 0xb0, 0x0c, 0x02 data_ov30_0218924c: ; 0x0218924c .byte 0x0c, 0xb1, 0x0c, 0x02 data_ov30_02189250: ; 0x02189250 .byte 0x20, 0xb1, 0x0c, 0x02 data_ov30_02189254: ; 0x02189254 .byte 0x2c, 0xb1, 0x0c, 0x02 data_ov30_02189258: ; 0x02189258 .byte 0x3c, 0xb1, 0x0c, 0x02 data_ov30_0218925c: ; 0x0218925c .byte 0x50, 0xc1, 0x0c, 0x02 data_ov30_02189260: ; 0x02189260 .byte 0x5c, 0xc1, 0x0c, 0x02 data_ov30_02189264: ; 0x02189264 .byte 0x90, 0xc4, 0x0c, 0x02 data_ov30_02189268: ; 0x02189268 .byte 0x24, 0xc5, 0x0c, 0x02 data_ov30_0218926c: ; 0x0218926c .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02189270: ; 0x02189270 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02189274: ; 0x02189274 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02189278: ; 0x02189278 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_0218927c: ; 0x0218927c .byte 0x44, 0x05, 0x18, 0x02 data_ov30_02189280: ; 0x02189280 .byte 0x44, 0x65, 0x61, 0x64, 0x00, 0x00, 0x00, 0x00 data_ov30_02189288: ; 0x02189288 .byte 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x6f .byte 0x77, 0x6e, 0x44, 0x65, 0x6d, 0x6f, 0x00, 0x00 data_ov30_02189298: ; 0x02189298 .byte 0x47, 0x4b, 0x47, 0x6f, 0x48, 0x6f, 0x6d, 0x65 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_021892a4: ; 0x021892a4 .byte 0x57, 0x61, 0x72, 0x70, 0x47, 0x6f, 0x48, 0x6f, 0x6d, 0x65, 0x00, 0x00 data_ov30_021892b0: ; 0x021892b0 .byte 0x57, 0x61, 0x72, 0x70, 0x47, 0x6f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x65, 0x6d, 0x6f .byte 0x00, 0x00, 0x00, 0x00 data_ov30_021892c4: ; 0x021892c4 .byte 0x57, 0x61, 0x72, 0x70, 0x47, 0x6f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_021892d4: ; 0x021892d4 .byte 0x57, 0x61, 0x69, 0x74, 0x52, 0x65, 0x76, 0x69, 0x76, 0x65, 0x00, 0x00 data_ov30_021892e0: ; 0x021892e0 .byte 0x47, 0x75, 0x61, 0x72, 0x64, 0x53, 0x74, 0x6f, 0x70, 0x00, 0x00, 0x00 data_ov30_021892ec: ; 0x021892ec .byte 0x47, 0x75, 0x61, 0x72 .byte 0x64, 0x00, 0x00, 0x00 data_ov30_021892f4: ; 0x021892f4 .byte 0x43, 0x61, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x53, 0x74, 0x61, 0x72 .byte 0x57, 0x61, 0x6c, 0x6b, 0x00, 0x00, 0x00, 0x00 data_ov30_02189308: ; 0x02189308 .byte 0x54, 0x72, 0x69, 0x66, 0x6f, 0x72, 0x63, 0x65 .byte 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x00 data_ov30_02189318: ; 0x02189318 .byte 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x00, 0x00 data_ov30_02189320: ; 0x02189320 .byte 0x41, 0x6c, 0x61, 0x72, 0x6d, 0x50, 0x61, 0x74, 0x72, 0x6f, 0x6c, 0x00 data_ov30_0218932c: ; 0x0218932c .byte 0x4e, 0x6f, 0x72, 0x6d .byte 0x61, 0x6c, 0x50, 0x61, 0x74, 0x72, 0x6f, 0x6c, 0x00, 0x00, 0x00, 0x00 data_ov30_0218933c: ; 0x0218933c .byte 0x57, 0x61, 0x69, 0x74 .byte 0x47, 0x4b, 0x00, 0x00 data_ov30_02189344: ; 0x02189344 .byte 0x46, 0x69, 0x72, 0x73, 0x74, 0x57, 0x61, 0x69, 0x74, 0x00, 0x00, 0x00 data_ov30_02189350: ; 0x02189350 .byte 0x47, 0x68, 0x6f, 0x73, 0x74, 0x44, 0x65, 0x6d, 0x6f, 0x00, 0x00, 0x00 data_ov30_0218935c: ; 0x0218935c .byte 0x41, 0x70, 0x70, 0x65 .byte 0x61, 0x72, 0x44, 0x65, 0x6d, 0x6f, 0x00, 0x00 data_ov30_02189368: ; 0x02189368 .byte 0x48, 0x69, 0x64, 0x65, 0x00, 0x00, 0x00, 0x00 data_ov30_02189370: ; 0x02189370 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02189374: ; 0x02189374 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02189378: ; 0x02189378 .byte 0x88, 0x52, 0x18, 0x02 data_ov30_0218937c: ; 0x0218937c .byte 0x6c, 0x52, 0x18, 0x02 data_ov30_02189380: ; 0x02189380 .byte 0xf5, 0x47, 0x18, 0x02 data_ov30_02189384: ; 0x02189384 .byte 0x3c, 0x17, 0x0c, 0x02 data_ov30_02189388: ; 0x02189388 .byte 0x40, 0x17, 0x0c, 0x02 data_ov30_0218938c: ; 0x0218938c .byte 0x68, 0x48, 0x18, 0x02 data_ov30_02189390: ; 0x02189390 .byte 0xbc, 0x17, 0x0c, 0x02 data_ov30_02189394: ; 0x02189394 .byte 0xd4, 0x17, 0x0c, 0x02 data_ov30_02189398: ; 0x02189398 .byte 0x94, 0x18, 0x0c, 0x02 data_ov30_0218939c: ; 0x0218939c .byte 0x44, 0x17, 0x0c, 0x02 data_ov30_021893a0: ; 0x021893a0 .byte 0x48, 0x17, 0x0c, 0x02 data_ov30_021893a4: ; 0x021893a4 .byte 0xa8, 0x17, 0x0c, 0x02 data_ov30_021893a8: ; 0x021893a8 .byte 0xb0, 0x17, 0x0c, 0x02 data_ov30_021893ac: ; 0x021893ac .byte 0x4c, 0x17, 0x0c, 0x02 data_ov30_021893b0: ; 0x021893b0 .byte 0x7c, 0x17, 0x0c, 0x02 data_ov30_021893b4: ; 0x021893b4 .byte 0xe4, 0x27, 0x0c, 0x02 data_ov30_021893b8: ; 0x021893b8 .byte 0x04, 0x30, 0x0c, 0x02 data_ov30_021893bc: ; 0x021893bc .byte 0x44, 0x27, 0x0c, 0x02 data_ov30_021893c0: ; 0x021893c0 .byte 0x48, 0x1c, 0x0c, 0x02 data_ov30_021893c4: ; 0x021893c4 .byte 0x50, 0x1c, 0x0c, 0x02 data_ov30_021893c8: ; 0x021893c8 .byte 0x0c, 0x31, 0x0c, 0x02 data_ov30_021893cc: ; 0x021893cc .byte 0x14, 0x31, 0x0c, 0x02 data_ov30_021893d0: ; 0x021893d0 .byte 0xa8, 0x18, 0x0c, 0x02 data_ov30_021893d4: ; 0x021893d4 .byte 0xc4, 0x18, 0x0c, 0x02 data_ov30_021893d8: ; 0x021893d8 .byte 0xfc, 0x18, 0x0c, 0x02 data_ov30_021893dc: ; 0x021893dc .byte 0x04, 0x19, 0x0c, 0x02 data_ov30_021893e0: ; 0x021893e0 .byte 0x10, 0x19, 0x0c, 0x02 data_ov30_021893e4: ; 0x021893e4 .byte 0x14, 0x19, 0x0c, 0x02 data_ov30_021893e8: ; 0x021893e8 .byte 0x1c, 0x19, 0x0c, 0x02 data_ov30_021893ec: ; 0x021893ec .byte 0x24, 0x19, 0x0c, 0x02 data_ov30_021893f0: ; 0x021893f0 .byte 0x2c, 0x19, 0x0c, 0x02 data_ov30_021893f4: ; 0x021893f4 .byte 0x28, 0x19, 0x0c, 0x02 data_ov30_021893f8: ; 0x021893f8 .byte 0x34, 0x19, 0x0c, 0x02 data_ov30_021893fc: ; 0x021893fc .byte 0x38, 0x19, 0x0c, 0x02 data_ov30_02189400: ; 0x02189400 .byte 0x3c, 0x19, 0x0c, 0x02 data_ov30_02189404: ; 0x02189404 .byte 0x40, 0x19, 0x0c, 0x02 data_ov30_02189408: ; 0x02189408 .byte 0x48, 0x19, 0x0c, 0x02 data_ov30_0218940c: ; 0x0218940c .byte 0x50, 0x19, 0x0c, 0x02 data_ov30_02189410: ; 0x02189410 .byte 0x54, 0x19, 0x0c, 0x02 data_ov30_02189414: ; 0x02189414 .byte 0x58, 0x19, 0x0c, 0x02 data_ov30_02189418: ; 0x02189418 .byte 0x6c, 0x1b, 0x0c, 0x02 data_ov30_0218941c: ; 0x0218941c .byte 0xb4, 0x1b, 0x0c, 0x02 data_ov30_02189420: ; 0x02189420 .byte 0xf8, 0x1b, 0x0c, 0x02 data_ov30_02189424: ; 0x02189424 .byte 0xfc, 0x31, 0x0c, 0x02 data_ov30_02189428: ; 0x02189428 .byte 0x2c, 0x32, 0x0c, 0x02 data_ov30_0218942c: ; 0x0218942c .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02189430: ; 0x02189430 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02189434: ; 0x02189434 .byte 0xf0, 0x56, 0x18, 0x02 data_ov30_02189438: ; 0x02189438 .byte 0x94, 0x57, 0x18, 0x02 data_ov30_0218943c: ; 0x0218943c .byte 0x44, 0x05, 0x18, 0x02 data_ov30_02189440: ; 0x02189440 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02189444: ; 0x02189444 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02189448: ; 0x02189448 .byte 0x0c, 0x65, 0x18, 0x02 data_ov30_0218944c: ; 0x0218944c .byte 0x84, 0x65, 0x18, 0x02 data_ov30_02189450: ; 0x02189450 .byte 0x44, 0x05, 0x18, 0x02 data_ov30_02189454: ; 0x02189454 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02189458: ; 0x02189458 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_0218945c: ; 0x0218945c .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02189460: ; 0x02189460 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02189464: ; 0x02189464 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02189468: ; 0x02189468 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_0218946c: ; 0x0218946c .byte 0x34, 0x6b, 0x18, 0x02 data_ov30_02189470: ; 0x02189470 .byte 0x50, 0x6b, 0x18, 0x02 data_ov30_02189474: ; 0x02189474 .byte 0x44, 0x05, 0x18, 0x02 data_ov30_02189478: ; 0x02189478 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_0218947c: ; 0x0218947c .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02189480: ; 0x02189480 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02189484: ; 0x02189484 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02189488: ; 0x02189488 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_0218948c: ; 0x0218948c .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02189490: ; 0x02189490 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02189494: ; 0x02189494 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_02189498: ; 0x02189498 .byte 0x00, 0x00, 0x00, 0x00 data_ov30_0218949c: ; 0x0218949c .byte 0x00, 0x00, 0x00, 0x00 ; 0x021894a0 .bss data_ov30_021894a0: .space 0x4 data_ov30_021894a4: .space 0x4 data_ov30_021894a8: .space 0x4 data_ov30_021894ac: .space 0x4 data_ov30_021894b0: .space 0x4 data_ov30_021894b4: .space 0x4 data_ov30_021894b8: .space 0x4 data_ov30_021894bc: .space 0x4 data_ov30_021894c0: .space 0x4 data_ov30_021894c4: .space 0x4 data_ov30_021894c8: .space 0x4 data_ov30_021894cc: .space 0x4 data_ov30_021894d0: .space 0x4 data_ov30_021894d4: .space 0x4 data_ov30_021894d8: .space 0x4 data_ov30_021894dc: .space 0x4 data_ov30_021894e0: .space 0x4 data_ov30_021894e4: .space 0x4 data_ov30_021894e8: .space 0x4 data_ov30_021894ec: .space 0x4 data_ov30_021894f0: .space 0x4 data_ov30_021894f4: .space 0x4 data_ov30_021894f8: .space 0x4 data_ov30_021894fc: .space 0x4 data_ov30_02189500: .space 0x4 data_ov30_02189504: .space 0x4 data_ov30_02189508: .space 0x4 data_ov30_0218950c: .space 0x4 data_ov30_02189510: .space 0x4 data_ov30_02189514: .space 0x4 data_ov30_02189518: .space 0x4 data_ov30_0218951c: .space 0x4 data_ov30_02189520: .space 0x4 data_ov30_02189524: .space 0x4 data_ov30_02189528: .space 0x4 data_ov30_0218952c: .space 0x4 data_ov30_02189530: .space 0x4 data_ov30_02189534: .space 0x4 data_ov30_02189538: .space 0x4 data_ov30_0218953c: .space 0x4 data_ov30_02189540: .space 0x4 data_ov30_02189544: .space 0x4 data_ov30_02189548: .space 0x4 data_ov30_0218954c: .space 0x4 data_ov30_02189550: .space 0x4 data_ov30_02189554: .space 0x4 data_ov30_02189558: .space 0x4 data_ov30_0218955c: .space 0x4