.include "macros/function.inc" .include "global.inc" .text .global func_ov38_0217bd80 arm_func_start func_ov38_0217bd80 func_ov38_0217bd80: ; 0x0217bd80 stmdb sp!, {r3, lr} ldr r1, _0217bdac ; =data_027e0fe0 ldr r0, _0217bdb0 ; =0x000010b0 ldr r1, [r1] mov r2, #4 ldr r1, [r1] bl func_0202e9dc cmp r0, #0 ldmeqia sp!, {r3, pc} bl func_ov38_0217c5d4 ldmia sp!, {r3, pc} .align 2, 0 arm_func_end func_ov38_0217bd80 _0217bdac: .word data_027e0fe0 _0217bdb0: .word 0x000010b0 .global func_ov38_0217bdb4 arm_func_start func_ov38_0217bdb4 func_ov38_0217bdb4: ; 0x0217bdb4 stmdb sp!, {r4, lr} mov r4, r0 ldr r2, [r4, #4] ldr r1, [r4, #0x10] mov r0, #0x18 mla r3, r1, r0, r2 ldr r1, [r3, #0xc] ldr r0, [r4] tst r1, #1 add r0, r0, r1, asr #1 ldreq r1, [r3, #8] beq _0217bdf0 ldr r2, [r0] ldr r1, [r3, #8] ldr r1, [r2, r1] _0217bdf0: blx r1 ldr r0, [r4, #0xc] add r0, r0, #1 str r0, [r4, #0xc] ldmia sp!, {r4, pc} arm_func_end func_ov38_0217bdb4 .global func_ov38_0217be04 arm_func_start func_ov38_0217be04 func_ov38_0217be04: ; 0x0217be04 stmdb sp!, {r4, lr} mov r4, r0 str r1, [r4, #0x10] str r1, [r4, #0x14] ldr r1, [r4, #0x10] mov r0, #0x18 mul r0, r1, r0 ldr r1, [r4, #4] ldr r2, [r1, r0] add r3, r1, r0 cmp r2, #0 beq _0217be54 ldr r1, [r3, #4] ldr r0, [r4] tst r1, #1 add r0, r0, r1, asr #1 ldrne r1, [r0] ldrne r1, [r1, r2] ldreq r1, [r3] blx r1 _0217be54: mov r0, #0 str r0, [r4, #0xc] ldmia sp!, {r4, pc} arm_func_end func_ov38_0217be04 .global func_ov38_0217be60 arm_func_start func_ov38_0217be60 func_ov38_0217be60: ; 0x0217be60 stmdb sp!, {r3, r4, r5, lr} mov r5, r0 ldr r2, [r5, #0x10] mov r4, r1 cmp r2, r4 ldmeqia sp!, {r3, r4, r5, pc} ldr r1, [r5, #4] mov r0, #0x18 mla r3, r2, r0, r1 ldr r0, [r3, #0x10] cmp r0, #0 beq _0217beb8 ldr r1, [r3, #0x14] ldr r0, [r5] tst r1, #1 add r0, r0, r1, asr #1 ldreq r1, [r3, #0x10] beq _0217beb4 ldr r2, [r0] ldr r1, [r3, #0x10] ldr r1, [r2, r1] _0217beb4: blx r1 _0217beb8: mov r0, #0x18 ldr r1, [r5, #0x10] mul r0, r4, r0 str r1, [r5, #0x14] str r4, [r5, #0x10] ldr r1, [r5, #4] ldr r2, [r1, r0] add r3, r1, r0 cmp r2, #0 ldmeqia sp!, {r3, r4, r5, pc} ldr r1, [r3, #4] ldr r0, [r5] tst r1, #1 add r0, r0, r1, asr #1 ldrne r1, [r0] ldrne r1, [r1, r2] ldreq r1, [r3] blx r1 mov r0, #0 str r0, [r5, #0xc] ldmia sp!, {r3, r4, r5, pc} arm_func_end func_ov38_0217be60 .global func_ov38_0217bf0c arm_func_start func_ov38_0217bf0c func_ov38_0217bf0c: ; 0x0217bf0c stmdb sp!, {r4, lr} ldr r3, _0217bf3c ; =data_027e0c68 mvn ip, #0 ldr r4, [r3, #0x18] strb r2, [r4, #0x39] strb ip, [r4, #0x38] bl func_ov38_0217bf40 mov r2, r0 ldr r0, _0217bf3c ; =data_027e0c68 mov r1, r4 bl func_02036ce4 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov38_0217bf0c _0217bf3c: .word data_027e0c68 .global func_ov38_0217bf40 arm_func_start func_ov38_0217bf40 func_ov38_0217bf40: ; 0x0217bf40 orr r0, r1, r0, lsl #16 bx lr arm_func_end func_ov38_0217bf40 .global func_ov38_0217bf48 arm_func_start func_ov38_0217bf48 func_ov38_0217bf48: ; 0x0217bf48 stmdb sp!, {r3, lr} sub sp, sp, #0x18 ldr r1, _0217c030 ; =data_027e0fe4 ldr r2, _0217c034 ; =0x4e415649 ldr r1, [r1] add r0, sp, #0x10 bl func_ov00_020c3894 ldr r0, _0217c030 ; =data_027e0fe4 add r1, sp, #0x10 ldr r0, [r0] bl func_ov00_020c3674 mov r1, #1 strb r1, [r0, #0x28d] strb r1, [r0, #0x3c1] ldr r2, _0217c038 ; =0x00004a52 add r0, r0, #0x300 strh r2, [r0, #0xc4] strh r2, [r0, #0xc6] ldr r1, _0217c030 ; =data_027e0fe4 ldr r2, _0217c03c ; =0x57534e56 ldr r1, [r1] add r0, sp, #8 bl func_ov00_020c3894 ldr r0, _0217c030 ; =data_027e0fe4 ldr r3, [sp, #8] ldr r2, [sp, #0xc] ldr r0, [r0] add r1, sp, #0x10 str r3, [sp, #0x10] str r2, [sp, #0x14] bl func_ov00_020c3674 mov r1, #1 strb r1, [r0, #0x28d] ldr r1, _0217c030 ; =data_027e0fe4 ldr r2, _0217c040 ; =0x46434e56 ldr r1, [r1] add r0, sp, #0 bl func_ov00_020c3894 ldr r0, [sp, #4] ldr r1, [sp] str r0, [sp, #0x14] ldr r0, _0217c030 ; =data_027e0fe4 str r1, [sp, #0x10] ldr r0, [r0] add r1, sp, #0x10 bl func_ov00_020c3674 mov r1, #1 strb r1, [r0, #0x28d] ldr r0, _0217c044 ; =data_ov00_020eec9c bl func_ov00_020d8388 ldr r0, _0217c048 ; =data_ov00_020eec68 mov r1, #0xcf bl func_ov00_020d73bc ldr r0, _0217c04c ; =data_ov38_021891e0 ldr r0, [r0, #0x58] bl func_ov38_02184a18 add sp, sp, #0x18 ldmia sp!, {r3, pc} .align 2, 0 arm_func_end func_ov38_0217bf48 _0217c030: .word data_027e0fe4 _0217c034: .word 0x4e415649 _0217c038: .word 0x00004a52 _0217c03c: .word 0x57534e56 _0217c040: .word 0x46434e56 _0217c044: .word data_ov00_020eec9c _0217c048: .word data_ov00_020eec68 _0217c04c: .word data_ov38_021891e0 .global func_ov38_0217c050 arm_func_start func_ov38_0217c050 func_ov38_0217c050: ; 0x0217c050 stmdb sp!, {r3, lr} sub sp, sp, #0x18 ldr r1, _0217c128 ; =data_027e0fe4 ldr r2, _0217c12c ; =0x4e415649 ldr r1, [r1] add r0, sp, #0x10 bl func_ov00_020c3894 ldr r0, _0217c128 ; =data_027e0fe4 add r1, sp, #0x10 ldr r0, [r0] bl func_ov00_020c3674 mov r1, #0 strb r1, [r0, #0x28d] strb r1, [r0, #0x3c1] ldr r1, _0217c128 ; =data_027e0fe4 ldr r2, _0217c130 ; =0x57534e56 ldr r1, [r1] add r0, sp, #8 bl func_ov00_020c3894 ldr r0, _0217c128 ; =data_027e0fe4 ldr r3, [sp, #8] ldr r2, [sp, #0xc] ldr r0, [r0] add r1, sp, #0x10 str r3, [sp, #0x10] str r2, [sp, #0x14] bl func_ov00_020c3674 mov r1, #0 strb r1, [r0, #0x28d] ldr r1, _0217c128 ; =data_027e0fe4 ldr r2, _0217c134 ; =0x46434e56 ldr r1, [r1] add r0, sp, #0 bl func_ov00_020c3894 ldr r0, [sp, #4] ldr r1, [sp] str r0, [sp, #0x14] ldr r0, _0217c128 ; =data_027e0fe4 str r1, [sp, #0x10] ldr r0, [r0] add r1, sp, #0x10 bl func_ov00_020c3674 mov r1, #0 strb r1, [r0, #0x28d] ldr r0, _0217c138 ; =data_ov00_020eec9c bl func_ov00_020d8344 ldr r0, _0217c13c ; =data_ov00_020eec68 mov r1, #0xa bl func_ov00_020d73f0 ldr r0, _0217c140 ; =data_ov38_021891e0 ldr r0, [r0, #0x58] bl func_ov38_02184bac add sp, sp, #0x18 ldmia sp!, {r3, pc} .align 2, 0 arm_func_end func_ov38_0217c050 _0217c128: .word data_027e0fe4 _0217c12c: .word 0x4e415649 _0217c130: .word 0x57534e56 _0217c134: .word 0x46434e56 _0217c138: .word data_ov00_020eec9c _0217c13c: .word data_ov00_020eec68 _0217c140: .word data_ov38_021891e0 .global func_ov38_0217c144 arm_func_start func_ov38_0217c144 func_ov38_0217c144: ; 0x0217c144 ldr r3, [r1, #4] ldr r2, _0217c180 ; =0x474f3145 cmp r3, r2 beq _0217c164 add r0, r2, #0xb cmp r3, r0 beq _0217c170 b _0217c178 _0217c164: ldr r0, [r0, #4] cmp r0, #1 beq _0217c178 _0217c170: mov r0, #0 strb r0, [r1, #0x118] _0217c178: mov r0, #0 bx lr .align 2, 0 arm_func_end func_ov38_0217c144 _0217c180: .word 0x474f3145 .global func_ov38_0217c184 arm_func_start func_ov38_0217c184 func_ov38_0217c184: ; 0x0217c184 stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0x28 ldr r0, _0217c518 ; =data_027e0ce0 mov r1, #0x2bc ldr r0, [r0, #4] mov r2, #4 blx func_0201739c ldr r2, _0217c51c ; =data_ov38_021891e0 ldr r1, _0217c518 ; =data_027e0ce0 str r0, [r2, #0x80] ldr r0, [r1, #4] mov r1, #0x28 mov r2, #4 blx func_0201739c ldr r2, _0217c51c ; =data_ov38_021891e0 ldr r1, _0217c518 ; =data_027e0ce0 str r0, [r2, #0x9c] ldr r0, [r1, #4] mov r1, #0x28 mov r2, #4 blx func_0201739c ldr r1, _0217c51c ; =data_ov38_021891e0 mov r2, #0x2bc str r0, [r1, #0xb8] ldr r1, [r1, #0x80] ldr r0, _0217c520 ; =data_ov38_02189248 bl func_02007100 ldr r1, _0217c524 ; =data_ov38_02188908 mov r6, #0 ldrsh r0, [r1, #0xa2] str r0, [sp, #0x1c] ldrsh r0, [r1, #0xa0] str r0, [sp, #0x18] ldrsh r0, [r1, #0x9e] str r0, [sp, #0x14] _0217c210: ldr r0, _0217c520 ; =data_ov38_02189248 mov r1, #2 bl func_020055dc ldr r0, _0217c528 ; =data_ov38_02188970 cmp r6, #2 str r0, [sp, #0x24] str r0, [sp, #0x20] bne _0217c244 ldr r0, _0217c52c ; =data_ov38_02188982 str r0, [sp, #0x24] ldr r0, _0217c530 ; =data_ov38_02188994 str r0, [sp, #0x20] b _0217c250 _0217c244: cmp r6, #1 ldreq r0, _0217c52c ; =data_ov38_02188982 streq r0, [sp, #0x20] _0217c250: ldr r8, _0217c534 ; =data_ov38_021889a6 ldr sb, [sp, #0x24] ldr sl, [sp, #0x20] ldr r5, _0217c520 ; =data_ov38_02189248 mov r7, #0 mvn r4, #0 mov fp, #1 _0217c26c: ldrsh r1, [r8] mov r0, r5 ldrsh r2, [r8, #2] ldrsh r3, [r8, #4] bl func_020053c4 mov r0, r5 ldrsh r1, [sb] ldrsh r2, [sb, #2] ldrsh r3, [sb, #4] bl func_02005414 mov r0, r5 mov r1, r4 bl func_02005398 mov r0, r5 ldrsh r1, [r8] ldrsh r2, [r8, #2] ldrsh r3, [r8, #4] bl func_020053c4 mov r0, r5 ldrsh r1, [sl] ldrsh r2, [sl, #2] ldrsh r3, [sl, #4] bl func_02005414 mov r0, r5 mov r1, fp bl func_02005398 add r8, r8, #6 add sb, sb, #6 add sl, sl, #6 add r7, r7, #1 cmp r7, #3 blt _0217c26c ldr r0, _0217c520 ; =data_ov38_02189248 ldr r1, [sp, #0x14] ldr r2, [sp, #0x18] ldr r3, [sp, #0x1c] bl func_020053c4 ldr r0, [sp, #0x24] ldrsh r1, [r0] ldrsh r2, [r0, #2] ldrsh r3, [r0, #4] ldr r0, _0217c520 ; =data_ov38_02189248 bl func_02005414 ldr r0, _0217c520 ; =data_ov38_02189248 mvn r1, #0 bl func_02005398 ldr r0, _0217c520 ; =data_ov38_02189248 ldr r1, [sp, #0x14] ldr r2, [sp, #0x18] ldr r3, [sp, #0x1c] bl func_020053c4 ldr r1, [sp, #0x20] ldr r2, [sp, #0x20] ldr r3, [sp, #0x20] ldrsh r1, [r1] ldrsh r2, [r2, #2] ldrsh r3, [r3, #4] ldr r0, _0217c520 ; =data_ov38_02189248 bl func_02005414 ldr r0, _0217c520 ; =data_ov38_02189248 bl func_02005608 add r6, r6, #1 cmp r6, #3 blt _0217c210 ldr r0, _0217c520 ; =data_ov38_02189248 mov r1, #2 bl func_0200536c ldr r0, _0217c520 ; =data_ov38_02189248 mov r1, #4 bl func_02005398 ldr r0, _0217c520 ; =data_ov38_02189248 bl func_02007120 ldr r2, _0217c51c ; =data_ov38_021891e0 mov r1, r0 str r1, [r2, #0x7c] ldr r0, [r2, #0x70] bl func_0200e2c0 ldr r0, _0217c538 ; =data_ov38_02189264 ldr r1, _0217c51c ; =data_ov38_021891e0 mov r2, #0x28 ldr r1, [r1, #0x9c] bl func_02007100 mov r1, #0 str r1, [sp] str r1, [sp, #4] str r1, [sp, #8] str r1, [sp, #0xc] str r1, [sp, #0x10] ldr r0, _0217c538 ; =data_ov38_02189264 mov r2, r1 mov r3, r1 bl func_020054b4 ldr r0, _0217c538 ; =data_ov38_02189264 mov r1, #0 mov r2, r1 bl func_02005514 mov r2, #0 str r2, [sp] mov r0, #0x1f str r0, [sp, #4] mov r0, #0x2000 str r0, [sp, #8] ldr r0, _0217c538 ; =data_ov38_02189264 mov r1, #2 mov r3, r1 bl func_02005468 ldr r0, _0217c538 ; =data_ov38_02189264 mov r1, #0x44 ldr r2, _0217c53c ; =0x00001001 mov r3, #0 bl func_02005554 ldr r0, _0217c538 ; =data_ov38_02189264 mov r1, #0 mov r2, r1 mov r3, r1 bl func_02005598 ldr r0, _0217c538 ; =data_ov38_02189264 bl func_02007120 mov r1, r0 ldr r0, _0217c51c ; =data_ov38_021891e0 str r1, [r0, #0x98] ldr r0, [r0, #0x8c] bl func_0200e2c0 ldr r0, _0217c540 ; =data_ov38_02189280 ldr r1, _0217c51c ; =data_ov38_021891e0 mov r2, #0x28 ldr r1, [r1, #0xb8] bl func_02007100 mov r1, #0 str r1, [sp] str r1, [sp, #4] str r1, [sp, #8] str r1, [sp, #0xc] ldr r0, _0217c540 ; =data_ov38_02189280 mov r2, r1 mov r3, r1 str r1, [sp, #0x10] bl func_020054b4 mov r1, #0 ldr r0, _0217c540 ; =data_ov38_02189280 mov r2, r1 bl func_02005514 mov r2, #0 mov r1, #2 str r2, [sp] mov r4, #0x1f ldr r0, _0217c540 ; =data_ov38_02189280 mov r3, r1 str r4, [sp, #4] mov r4, #0x2000 str r4, [sp, #8] bl func_02005468 ldr r0, _0217c540 ; =data_ov38_02189280 ldr r1, _0217c544 ; =0x00001084 ldr r2, _0217c548 ; =0x00000c63 mov r3, #0 bl func_02005554 ldr r0, _0217c540 ; =data_ov38_02189280 mov r1, #0 mov r2, r1 mov r3, r1 bl func_02005598 ldr r0, _0217c540 ; =data_ov38_02189280 bl func_02007120 mov r1, r0 ldr r0, _0217c51c ; =data_ov38_021891e0 str r1, [r0, #0xb4] ldr r0, [r0, #0xa8] bl func_0200e2c0 add sp, sp, #0x28 ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 arm_func_end func_ov38_0217c184 _0217c518: .word data_027e0ce0 _0217c51c: .word data_ov38_021891e0 _0217c520: .word data_ov38_02189248 _0217c524: .word data_ov38_02188908 _0217c528: .word data_ov38_02188970 _0217c52c: .word data_ov38_02188982 _0217c530: .word data_ov38_02188994 _0217c534: .word data_ov38_021889a6 _0217c538: .word data_ov38_02189264 _0217c53c: .word 0x00001001 _0217c540: .word data_ov38_02189280 _0217c544: .word 0x00001084 _0217c548: .word 0x00000c63 .global func_ov38_0217c54c arm_func_start func_ov38_0217c54c func_ov38_0217c54c: ; 0x0217c54c stmdb sp!, {r3, lr} ldr r0, _0217c5cc ; =data_ov38_021891e0 ldr r1, [r0, #0x80] cmp r1, #0 beq _0217c578 ldr r0, _0217c5d0 ; =data_027e0ce0 ldr r0, [r0, #4] blx func_020174a4 ldr r0, _0217c5cc ; =data_ov38_021891e0 mov r1, #0 str r1, [r0, #0x80] _0217c578: ldr r0, _0217c5cc ; =data_ov38_021891e0 ldr r1, [r0, #0x9c] cmp r1, #0 beq _0217c5a0 ldr r0, _0217c5d0 ; =data_027e0ce0 ldr r0, [r0, #4] blx func_020174a4 ldr r0, _0217c5cc ; =data_ov38_021891e0 mov r1, #0 str r1, [r0, #0x9c] _0217c5a0: ldr r0, _0217c5cc ; =data_ov38_021891e0 ldr r1, [r0, #0xb8] cmp r1, #0 ldmeqia sp!, {r3, pc} ldr r0, _0217c5d0 ; =data_027e0ce0 ldr r0, [r0, #4] blx func_020174a4 ldr r0, _0217c5cc ; =data_ov38_021891e0 mov r1, #0 str r1, [r0, #0xb8] ldmia sp!, {r3, pc} .align 2, 0 arm_func_end func_ov38_0217c54c _0217c5cc: .word data_ov38_021891e0 _0217c5d0: .word data_027e0ce0 .global func_ov38_0217c5d4 arm_func_start func_ov38_0217c5d4 func_ov38_0217c5d4: ; 0x0217c5d4 stmdb sp!, {r3, r4, lr} sub sp, sp, #4 mov r4, r0 bl func_ov00_020c1554 ldr r1, _0217c75c ; =data_ov38_02188f38 ldr r0, _0217c760 ; =data_027e0fec str r1, [r4] ldr r0, [r0] add r0, r0, #0x3e8 add r0, r0, #0x1000 bl func_ov00_020c4588 mov r1, r0 add r0, r4, #0x158 blx func_ov00_020a9588 ldr r1, _0217c764 ; =0x020a9b6d add r0, r4, #0x1b4 str r1, [sp] mov r1, #2 mov r2, #0x80 ldr r3, _0217c768 ; =func_ov38_0217c798 bl func_0204f614 str r4, [r4, #0x2c8] ldr r1, _0217c76c ; =data_ov38_02188d20 mov r0, #0x13 str r1, [r4, #0x2cc] str r0, [r4, #0x2d0] mov r0, #0 str r0, [r4, #0x2d8] str r0, [r4, #0x2dc] sub r2, r0, #1 ldr r0, _0217c770 ; =data_02057200 ldr r1, _0217c774 ; =func_ov38_02184d74 ldr ip, [r0] ldr r3, [r0, #4] add r0, r4, #0x2f0 str ip, [r4, #0x2e0] str r3, [r4, #0x2e4] str r2, [r4, #0x2e8] str r2, [r4, #0x2ec] str r1, [sp] mov r1, #5 mov r2, #0x240 ldr r3, _0217c778 ; =func_ov38_02184d0c bl func_0204f614 ldr r1, _0217c77c ; =func_ov00_020b7d74 add r0, r4, #0xe30 str r1, [sp] mov r1, #2 mov r2, #4 ldr r3, _0217c780 ; =func_ov38_0217c988 bl func_0204f614 mov ip, #0 str ip, [r4, #0xe38] str ip, [r4, #0xe3c] str ip, [r4, #0xe40] add r0, r4, #4 add r3, r0, #0x1000 ldr r1, _0217c784 ; =data_ov00_020e2f04 add r0, r4, #0x1000 str r1, [r0, #4] mov r2, #1 strb r2, [r3, #4] strb ip, [r3, #5] str ip, [r3, #8] str ip, [r3, #0xc] str ip, [r3, #0x10] ldr r1, _0217c788 ; =data_ov00_020e2e3c str r1, [r0, #4] str ip, [r3, #0x20] str ip, [r3, #0x14] str ip, [r3, #0x18] str ip, [r3, #0x1c] str ip, [r0, #0x78] strh ip, [r0, #0x86] strh ip, [r0, #0x9a] strh ip, [r0, #0x9c] strb ip, [r0, #0xa0] strb ip, [r0, #0xa1] strb ip, [r0, #0xa5] strb ip, [r0, #0xa6] strb ip, [r0, #0xa7] strb ip, [r0, #0xa8] strb ip, [r0, #0xaa] strb ip, [r0, #0xab] strb ip, [r0, #0xad] strb r2, [r4, #0x128] mov r0, #0x18 str r0, [r4, #0x2b4] ldr r2, _0217c78c ; =data_ov38_021891e0 str r0, [r4, #0x2b8] ldr r0, _0217c790 ; =data_ov29_0217a4ac ldr r1, _0217c794 ; =data_ov38_0218923c str r4, [r2, #0x58] bl func_ov29_0216d74c bl func_ov38_0217c184 mov r0, r4 add sp, sp, #4 ldmia sp!, {r3, r4, pc} .align 2, 0 arm_func_end func_ov38_0217c5d4 _0217c75c: .word data_ov38_02188f38 _0217c760: .word data_027e0fec _0217c764: .word 0x020a9b6d _0217c768: .word func_ov38_0217c798 _0217c76c: .word data_ov38_02188d20 _0217c770: .word data_02057200 _0217c774: .word func_ov38_02184d74 _0217c778: .word func_ov38_02184d0c _0217c77c: .word func_ov00_020b7d74 _0217c780: .word func_ov38_0217c988 _0217c784: .word data_ov00_020e2f04 _0217c788: .word data_ov00_020e2e3c _0217c78c: .word data_ov38_021891e0 _0217c790: .word data_ov29_0217a4ac _0217c794: .word data_ov38_0218923c .global func_ov38_0217c798 arm_func_start func_ov38_0217c798 func_ov38_0217c798: ; 0x0217c798 stmdb sp!, {r4, lr} mov r4, r0 add r1, r4, #0x24 mov r2, #0 blx func_ov00_020c0c08 ldr r1, _0217c7bc ; =data_ov38_02188ff4 mov r0, r4 str r1, [r4] ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov38_0217c798 _0217c7bc: .word data_ov38_02188ff4 .global func_ov38_0217c7c0 arm_func_start func_ov38_0217c7c0 func_ov38_0217c7c0: ; 0x0217c7c0 stmdb sp!, {r4, lr} ldr r3, _0217c880 ; =data_ov38_02188f38 mov r4, r0 ldr r2, _0217c884 ; =data_ov38_021891e0 ldr r0, _0217c888 ; =data_ov29_0217a4ac ldr r1, _0217c88c ; =data_ov38_0218923c str r3, [r4] mov r3, #0 str r3, [r2, #0x58] bl func_ov29_0216d77c ldr r0, _0217c890 ; =data_ov00_020eec9c ldrb r1, [r0, #0xa] cmp r1, #0 beq _0217c7fc bl func_ov00_020d8344 _0217c7fc: bl func_ov38_0217c54c add r0, r4, #4 add r0, r0, #0x1000 bl func_ov00_02094824 add r0, r4, #0xe40 bl func_ov00_020b7d74 add r0, r4, #0x23c add r0, r0, #0xc00 bl func_ov00_020b7d74 add r0, r4, #0x238 add r0, r0, #0xc00 bl func_ov00_020b7d74 add r0, r4, #0xe30 mov r1, #2 mov r2, #4 ldr r3, _0217c894 ; =func_ov00_020b7d74 bl func_0204f754 add r0, r4, #0x2f0 mov r1, #5 mov r2, #0x240 ldr r3, _0217c898 ; =func_ov38_02184d74 bl func_0204f754 add r0, r4, #0x1b4 mov r1, #2 mov r2, #0x80 ldr r3, _0217c89c ; =0x020a9b6d bl func_0204f754 add r0, r4, #0x158 blx func_ov00_020a95a4 mov r0, r4 bl func_ov00_020c1730 mov r0, r4 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov38_0217c7c0 _0217c880: .word data_ov38_02188f38 _0217c884: .word data_ov38_021891e0 _0217c888: .word data_ov29_0217a4ac _0217c88c: .word data_ov38_0218923c _0217c890: .word data_ov00_020eec9c _0217c894: .word func_ov00_020b7d74 _0217c898: .word func_ov38_02184d74 _0217c89c: .word 0x020a9b6d .global func_ov38_0217c8a0 arm_func_start func_ov38_0217c8a0 func_ov38_0217c8a0: ; 0x0217c8a0 stmdb sp!, {r4, lr} ldr r3, _0217c968 ; =data_ov38_02188f38 mov r4, r0 ldr r2, _0217c96c ; =data_ov38_021891e0 ldr r0, _0217c970 ; =data_ov29_0217a4ac ldr r1, _0217c974 ; =data_ov38_0218923c str r3, [r4] mov r3, #0 str r3, [r2, #0x58] bl func_ov29_0216d77c ldr r0, _0217c978 ; =data_ov00_020eec9c ldrb r1, [r0, #0xa] cmp r1, #0 beq _0217c8dc bl func_ov00_020d8344 _0217c8dc: bl func_ov38_0217c54c add r0, r4, #4 add r0, r0, #0x1000 bl func_ov00_02094824 add r0, r4, #0xe40 bl func_ov00_020b7d74 add r0, r4, #0x23c add r0, r0, #0xc00 bl func_ov00_020b7d74 add r0, r4, #0x238 add r0, r0, #0xc00 bl func_ov00_020b7d74 add r0, r4, #0xe30 mov r1, #2 mov r2, #4 ldr r3, _0217c97c ; =func_ov00_020b7d74 bl func_0204f754 add r0, r4, #0x2f0 mov r1, #5 mov r2, #0x240 ldr r3, _0217c980 ; =func_ov38_02184d74 bl func_0204f754 add r0, r4, #0x1b4 mov r1, #2 mov r2, #0x80 ldr r3, _0217c984 ; =0x020a9b6d bl func_0204f754 add r0, r4, #0x158 blx func_ov00_020a95a4 mov r0, r4 bl func_ov00_020c1730 mov r0, r4 bl func_0202ea0c mov r0, r4 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov38_0217c8a0 _0217c968: .word data_ov38_02188f38 _0217c96c: .word data_ov38_021891e0 _0217c970: .word data_ov29_0217a4ac _0217c974: .word data_ov38_0218923c _0217c978: .word data_ov00_020eec9c _0217c97c: .word func_ov00_020b7d74 _0217c980: .word func_ov38_02184d74 _0217c984: .word 0x020a9b6d .global func_ov38_0217c988 arm_func_start func_ov38_0217c988 func_ov38_0217c988: ; 0x0217c988 mov r1, #0 str r1, [r0] bx lr arm_func_end func_ov38_0217c988 .global func_ov38_0217c994 arm_func_start func_ov38_0217c994 func_ov38_0217c994: ; 0x0217c994 stmdb sp!, {r4, lr} ldrsh ip, [r0] ldrsh lr, [sp, #8] sub ip, r1, ip mov ip, ip, lsl #0x10 cmp lr, ip, asr #16 mov r4, ip, asr #0x10 rsbgt ip, lr, #0 cmpgt r4, ip strgth r1, [r0] movgt r0, #1 ldmgtia sp!, {r4, pc} mul r1, r4, r2 mov r1, r1, lsl #0x4 mov r2, r1, asr #0x10 cmp r3, r1, asr #16 movlt r2, r3 blt _0217c9f0 rsb r1, r3, #0 mov r1, r1, lsl #0x10 cmp r2, r1, asr #16 mov r1, r1, asr #0x10 movlt r2, r1 _0217c9f0: ldrsh r1, [r0] add r1, r1, r2 strh r1, [r0] mov r0, #0 ldmia sp!, {r4, pc} arm_func_end func_ov38_0217c994 .global func_ov38_0217ca04 arm_func_start func_ov38_0217ca04 func_ov38_0217ca04: ; 0x0217ca04 stmdb sp!, {r3, lr} ldr lr, [r0] ldr ip, [sp, #8] sub lr, r1, lr cmp lr, ip bge _0217ca30 rsb ip, ip, #0 cmp lr, ip strgt r1, [r0] movgt r0, #1 ldmgtia sp!, {r3, pc} _0217ca30: smull r2, r1, lr, r2 adds r2, r2, #0x800 adc r1, r1, #0 mov r2, r2, lsr #0xc orr r2, r2, r1, lsl #20 cmp r2, r3 movgt r2, r3 bgt _0217ca5c rsb r1, r3, #0 cmp r2, r1 movlt r2, r1 _0217ca5c: ldr r1, [r0] add r1, r1, r2 str r1, [r0] mov r0, #0 ldmia sp!, {r3, pc} arm_func_end func_ov38_0217ca04 .global func_ov38_0217ca70 arm_func_start func_ov38_0217ca70 func_ov38_0217ca70: ; 0x0217ca70 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #0xc mov r6, r0 mov r7, r1 mov r5, r2 add r2, sp, #0 mov r0, r7 mov r1, r6 mov r4, r3 bl func_01ff9bf8 add r0, sp, #0 mov r1, r0 bl func_01ff9c2c ldr r1, [sp, #0x20] mul r2, r1, r1 cmp r0, r2, asr #12 bge _0217cad0 mov r0, r7 mov r1, r6 mov r2, #0xc bl func_02007908 add sp, sp, #0xc mov r0, #1 ldmia sp!, {r4, r5, r6, r7, pc} _0217cad0: mul r1, r5, r5 mov r1, r1, asr #0xc smull r3, r2, r1, r0 adds r3, r3, #0x800 mul r1, r4, r4 adc r2, r2, #0 mov r3, r3, lsr #0xc orr r3, r3, r2, lsl #20 cmp r3, r1, asr #12 ble _0217cb0c bl func_01ff9958 mov r1, r0 mov r0, r4 bl func_01ff98e0 mov r5, r0 _0217cb0c: add r1, sp, #0 mov r0, r5 mov r2, r6 mov r3, r6 bl func_01ff9e64 mov r0, #0 add sp, sp, #0xc ldmia sp!, {r4, r5, r6, r7, pc} arm_func_end func_ov38_0217ca70 .global func_ov38_0217cb2c arm_func_start func_ov38_0217cb2c func_ov38_0217cb2c: ; 0x0217cb2c stmdb sp!, {r3, r4, r5, r6, lr} sub sp, sp, #0xc mov r6, r0 mov r0, r2 mov r5, r1 add r2, sp, #0 mov r1, r6 mov r4, r3 bl func_01ff9bf8 ldr r0, [sp] ldr r3, [r5] smull r2, r1, r0, r4 adds r2, r2, #0x800 adc r0, r1, #0 mov r1, r2, lsr #0xc orr r1, r1, r0, lsl #20 add r0, r3, r1 str r0, [r5] ldr r0, [sp, #4] ldr r3, [r5, #4] smull r2, r1, r0, r4 adds r2, r2, #0x800 adc r0, r1, #0 mov r1, r2, lsr #0xc orr r1, r1, r0, lsl #20 add r0, r3, r1 str r0, [r5, #4] ldr r0, [sp, #8] ldr r3, [r5, #8] smull r2, r1, r0, r4 adds r2, r2, #0x800 adc r0, r1, #0 mov r1, r2, lsr #0xc orr r1, r1, r0, lsl #20 add r0, r3, r1 str r0, [r5, #8] ldr r3, [sp, #0x20] ldr r1, [r5] mov r0, r6 mov r2, r6 smull r6, r4, r1, r3 adds r6, r6, #0x800 adc r1, r4, #0 mov r4, r6, lsr #0xc orr r4, r4, r1, lsl #20 str r4, [r5] ldr r4, [r5, #4] mov r1, r5 smull ip, r6, r4, r3 adds ip, ip, #0x800 adc r4, r6, #0 mov r6, ip, lsr #0xc orr r6, r6, r4, lsl #20 str r6, [r5, #4] ldr r4, [r5, #8] smull r6, r3, r4, r3 adds r4, r6, #0x800 adc r3, r3, #0 mov r4, r4, lsr #0xc orr r4, r4, r3, lsl #20 str r4, [r5, #8] bl func_01ff9bc4 add sp, sp, #0xc ldmia sp!, {r3, r4, r5, r6, pc} arm_func_end func_ov38_0217cb2c .global func_ov38_0217cc2c arm_func_start func_ov38_0217cc2c func_ov38_0217cc2c: ; 0x0217cc2c stmdb sp!, {r3, lr} mov r1, r0 ldr r0, [r1, #8] ldr r3, _0217ccb0 ; =data_ov38_02189200 tst r0, #0x10 ldrneb ip, [r1, #0xae] mov r2, #0 mvneq ip, #0 _0217cc4c: ldr r0, [r3, r2, lsl #2] cmp ip, r0 bne _0217cc68 ldr r0, [r1, #4] ldr r0, [r0, #0x2c] bl func_ov38_0217ccb8 ldmia sp!, {r3, pc} _0217cc68: add r2, r2, #1 cmp r2, #5 blt _0217cc4c ldr r0, _0217ccb4 ; =data_ov38_021891e0 ldr r2, [r0, #0x34] cmp ip, r2 bne _0217cc94 ldr r0, [r1, #4] ldr r0, [r0, #0x2c] bl func_ov38_0217cd00 ldmia sp!, {r3, pc} _0217cc94: ldr r0, [r0, #0x38] cmp ip, r0 ldmneia sp!, {r3, pc} ldr r0, [r1, #4] ldr r0, [r0, #0x2c] bl func_ov38_0217cd38 ldmia sp!, {r3, pc} .align 2, 0 arm_func_end func_ov38_0217cc2c _0217ccb0: .word data_ov38_02189200 _0217ccb4: .word data_ov38_021891e0 .global func_ov38_0217ccb8 arm_func_start func_ov38_0217ccb8 func_ov38_0217ccb8: ; 0x0217ccb8 stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #0x30 mov r6, r0 add r0, sp, #0 mov r5, r2 mov r1, #0 bl func_0201b1bc bl func_02018450 mov r4, r0 mov r0, r6 mov r1, r5 bl func_ov38_02182e28 mov r2, r0 add r0, sp, #0 mov r1, r4 bl func_0202de3c add sp, sp, #0x30 ldmia sp!, {r4, r5, r6, pc} arm_func_end func_ov38_0217ccb8 .global func_ov38_0217cd00 arm_func_start func_ov38_0217cd00 func_ov38_0217cd00: ; 0x0217cd00 stmdb sp!, {r4, lr} sub sp, sp, #0x30 mov r4, r0 add r0, sp, #0 mov r1, #0 bl func_0201b1bc bl func_02018450 add r2, r4, #0x334 mov r1, r0 add r0, sp, #0 add r2, r2, #0xc00 bl func_0202de3c add sp, sp, #0x30 ldmia sp!, {r4, pc} arm_func_end func_ov38_0217cd00 .global func_ov38_0217cd38 arm_func_start func_ov38_0217cd38 func_ov38_0217cd38: ; 0x0217cd38 stmdb sp!, {r4, lr} sub sp, sp, #0x30 mov r4, r0 add r0, sp, #0 mov r1, #0 bl func_0201b1bc bl func_02018450 add r2, r4, #0x364 mov r1, r0 add r0, sp, #0 add r2, r2, #0xc00 bl func_0202de3c add sp, sp, #0x30 ldmia sp!, {r4, pc} arm_func_end func_ov38_0217cd38 .global func_ov38_0217cd70 arm_func_start func_ov38_0217cd70 func_ov38_0217cd70: ; 0x0217cd70 stmdb sp!, {r4, lr} mov r4, r0 ldr r0, [r4, #8] ldr r1, _0217ce7c ; =data_ov38_02189200 tst r0, #0x10 ldrneb r3, [r4, #0xae] mov r2, #0 mvneq r3, #0 _0217cd90: ldr r0, [r1, r2, lsl #2] cmp r3, r0 bne _0217cdb0 ldr r0, [r4, #4] mov r1, r4 ldr r0, [r0, #0x2c] bl func_ov38_0217ccb8 ldmia sp!, {r4, pc} _0217cdb0: add r2, r2, #1 cmp r2, #5 blt _0217cd90 ldr r0, _0217ce80 ; =data_ov38_021891e0 ldr r1, [r0, #0x34] cmp r3, r1 bne _0217ce0c ldr r1, [r4, #4] ldrb r0, [r1, #0x25] cmp r0, #2 bne _0217cdfc mov r0, #3 strb r0, [r4, #0x92] strb r0, [r1, #0x25] ldr r0, [r4, #4] mov r1, r4 ldr r0, [r0, #0x2c] bl func_ov38_0217cee8 ldmia sp!, {r4, pc} _0217cdfc: ldr r0, [r1, #0x2c] mov r1, r4 bl func_ov38_0217cd00 ldmia sp!, {r4, pc} _0217ce0c: ldr r1, [r0, #0x38] cmp r3, r1 bne _0217ce3c ldr r0, [r4, #4] mov r1, r4 ldr r0, [r0, #0x2c] bl func_ov38_0217cd38 ldr r1, [r4, #4] mov r0, #2 strb r0, [r4, #0x92] strb r0, [r1, #0x25] ldmia sp!, {r4, pc} _0217ce3c: ldr r1, [r0, #0x3c] cmp r3, r1 bne _0217ce5c ldr r0, [r4, #4] mov r1, r4 ldr r0, [r0, #0x2c] bl func_ov38_0217ce84 ldmia sp!, {r4, pc} _0217ce5c: ldr r0, [r0, #0x40] cmp r3, r0 ldmneia sp!, {r4, pc} ldr r0, [r4, #4] mov r1, r4 ldr r0, [r0, #0x2c] bl func_ov38_0217ce84 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov38_0217cd70 _0217ce7c: .word data_ov38_02189200 _0217ce80: .word data_ov38_021891e0 .global func_ov38_0217ce84 arm_func_start func_ov38_0217ce84 func_ov38_0217ce84: ; 0x0217ce84 stmdb sp!, {r3, r4, lr} sub sp, sp, #0x24 ldr r4, [r1, #0xb4] add r0, r0, #0x1000 ldr r1, [r4] ldr r3, _0217cee4 ; =data_02050f54 bic r1, r1, #2 str r1, [r4] ldrh r1, [r0, #0x88] add r0, sp, #0 mov r1, r1, asr #0x4 mov r2, r1, lsl #0x1 add r1, r2, #1 mov ip, r2, lsl #0x1 mov r2, r1, lsl #0x1 ldrsh r1, [r3, ip] ldrsh r2, [r3, r2] blx func_01ff8230 add r1, r4, #0x28 add r0, sp, #0 mov r2, r1 bl func_0202e030 add sp, sp, #0x24 ldmia sp!, {r3, r4, pc} .align 2, 0 arm_func_end func_ov38_0217ce84 _0217cee4: .word data_02050f54 .global func_ov38_0217cee8 arm_func_start func_ov38_0217cee8 func_ov38_0217cee8: ; 0x0217cee8 stmdb sp!, {r3, r4, r5, lr} sub sp, sp, #0x48 ldr r4, [r1, #0xb4] mov r5, r0 ldr r1, [r4] add r0, r5, #0x1000 bic r1, r1, #2 str r1, [r4] ldrh r1, [r0, #0x8c] ldr r3, _0217cf8c ; =data_02050f54 add r0, sp, #0x24 mov r1, r1, asr #0x4 mov r2, r1, lsl #0x1 add r1, r2, #1 mov ip, r2, lsl #0x1 mov r2, r1, lsl #0x1 ldrsh r1, [r3, ip] ldrsh r2, [r3, r2] blx func_01ff8230 add r1, r4, #0x28 add r0, sp, #0x24 mov r2, r1 bl func_0202e030 add r0, r5, #0x1000 ldrh r1, [r0, #0x8a] ldr r3, _0217cf8c ; =data_02050f54 add r0, sp, #0 mov r1, r1, asr #0x4 mov r2, r1, lsl #0x1 add r1, r2, #1 mov r5, r2, lsl #0x1 mov r2, r1, lsl #0x1 ldrsh r1, [r3, r5] ldrsh r2, [r3, r2] blx func_01ff8214 add r1, r4, #0x28 add r0, sp, #0 mov r2, r1 bl func_0202e030 add sp, sp, #0x48 ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov38_0217cee8 _0217cf8c: .word data_02050f54 .global func_ov38_0217cf90 arm_func_start func_ov38_0217cf90 func_ov38_0217cf90: ; 0x0217cf90 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0x6c ldr r1, _0217d504 ; =data_027e0fb4 mov r2, #0 ldr r3, [r1] ldr r1, _0217d508 ; =data_027e0f74 strh r2, [r3, #0xba] mov sl, r0 ldr r0, [r1] mov r1, #0xf7 bl func_ov00_02097760 cmp r0, #0 bne _0217cfdc ldr r0, _0217d508 ; =data_027e0f74 mov r1, #0x11 ldr r0, [r0] bl func_ov00_02097c18 cmp r0, #0 beq _0217cff0 _0217cfdc: mov r0, #0 strb r0, [sl, #0x118] add sp, sp, #0x6c mov r0, #1 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} _0217cff0: ldr r0, _0217d50c ; =data_ov38_021889b8 add r3, sp, #0x60 ldmia r0, {r0, r1, r2} stmia r3, {r0, r1, r2} ldr r0, [sp, #0x60] mov r2, #0x800 str r0, [sl, #0x7c] ldr r1, [sp, #0x64] add r0, sl, #0x100 str r1, [sl, #0x80] ldr r3, [sp, #0x68] mov r1, #0x118 str r3, [sl, #0x84] str r2, [sl, #0x88] strh r1, [r0, #0x22] strh r1, [r0, #0x20] ldrsh r2, [r0, #0x20] add r0, sl, #0x1000 mov r1, #0 sub r2, r2, #0x3c strh r2, [r0, #0x7e] str r1, [sl, #0x2bc] str r1, [sl, #0x2c0] add r0, sl, #0x158 str r1, [sl, #0x2c4] ldr r1, [r0] ldr r1, [r1, #8] blx r1 str r0, [sl, #0x1bc] add r0, sl, #0x158 ldr r1, [r0] ldr r1, [r1, #8] blx r1 str r0, [sl, #0x23c] str sl, [sl, #0x188] mov r0, #3 str r0, [sp] ldr r1, _0217d510 ; =func_ov38_0217cc2c add r0, sl, #0x15c mov r2, #0 mov r3, #6 bl func_02018c90 mov r1, #0 mov r0, sl mov r2, r1 mov r3, r1 bl func_ov38_0217d570 add r0, sl, #0x158 ldr r1, [r0] ldr r1, [r1, #8] blx r1 ldr r1, _0217d514 ; =data_ov38_02188a24 add r0, r0, #0x40 bl func_0201e388 ldr r1, _0217d518 ; =data_ov38_021891e0 str r0, [r1, #0x30] add r0, sl, #0x158 ldr r1, [r0] ldr r1, [r1, #8] blx r1 ldr r1, _0217d51c ; =data_ov38_02188a38 add r0, r0, #0x40 bl func_0201e388 ldr r1, _0217d518 ; =data_ov38_021891e0 str r0, [r1, #0x20] add r0, sl, #0x158 ldr r1, [r0] ldr r1, [r1, #8] blx r1 ldr r1, _0217d520 ; =data_ov38_02188a4c add r0, r0, #0x40 bl func_0201e388 ldr r1, _0217d518 ; =data_ov38_021891e0 str r0, [r1, #0x24] add r0, sl, #0x158 ldr r1, [r0] ldr r1, [r1, #8] blx r1 ldr r1, _0217d524 ; =data_ov38_02188a60 add r0, r0, #0x40 bl func_0201e388 ldr r1, _0217d518 ; =data_ov38_021891e0 str r0, [r1, #0x2c] add r0, sl, #0x158 ldr r1, [r0] ldr r1, [r1, #8] blx r1 add r0, r0, #0x40 ldr r1, _0217d528 ; =data_ov38_02188a74 bl func_0201e388 ldr r1, _0217d518 ; =data_ov38_021891e0 str r0, [r1, #0x28] add r0, sl, #0x158 ldr r1, [r0] ldr r1, [r1, #8] blx r1 add r0, r0, #0x40 ldr r1, _0217d52c ; =data_ov38_02188a88 bl func_0201e388 ldr r1, _0217d518 ; =data_ov38_021891e0 str r0, [r1, #0x34] add r0, sl, #0x158 ldr r1, [r0] ldr r1, [r1, #8] blx r1 ldr r1, _0217d530 ; =data_ov38_02188a9c add r0, r0, #0x40 bl func_0201e388 ldr r1, _0217d518 ; =data_ov38_021891e0 str r0, [r1, #0x38] add r0, sl, #0x158 ldr r1, [r0] ldr r1, [r1, #8] blx r1 ldr r1, _0217d534 ; =data_ov38_02188ab0 add r0, r0, #0x40 bl func_0201e388 ldr r1, _0217d518 ; =data_ov38_021891e0 str r0, [r1, #0x3c] add r0, sl, #0x158 ldr r1, [r0] ldr r1, [r1, #8] blx r1 ldr r1, _0217d538 ; =data_ov38_02188ac4 add r0, r0, #0x40 bl func_0201e388 ldr r2, _0217d518 ; =data_ov38_021891e0 ldr r3, _0217d53c ; =data_027e0d0c str r0, [r2, #0x40] ldrsh r0, [sl, #0x78] add r1, sl, #0x1000 ldr r5, _0217d540 ; =data_02050f54 strh r0, [r1, #0x7c] ldr r0, [r3] mov r2, #0 str r0, [sl, #0x60] ldr r1, [r3, #4] add r0, sl, #0x3b8 str r1, [sl, #0x64] ldr r1, [r3, #8] add r0, r0, #0xc00 str r1, [sl, #0x68] ldrsh r3, [sl, #0x78] add r1, sl, #0x394 add r1, r1, #0xc00 add r3, r3, r3, lsr #31 mov r3, r3, lsl #0xf mov r3, r3, lsr #0x10 mov r3, r3, asr #0x4 mov r3, r3, lsl #0x1 mov r4, r3, lsl #0x1 add r3, r3, #1 mov r3, r3, lsl #0x1 ldrsh r4, [r5, r4] str r2, [sl, #0xfb8] ldrsh r3, [r5, r3] str r4, [sl, #0xfbc] str r2, [sl, #0xfc0] str r3, [sl, #0xfc4] bl func_ov00_020d5cd8 add r0, sl, #0x364 ldr r5, _0217d544 ; =data_027e01b8 add r4, r0, #0xc00 ldmia r5!, {r0, r1, r2, r3} stmia r4!, {r0, r1, r2, r3} ldmia r5!, {r0, r1, r2, r3} stmia r4!, {r0, r1, r2, r3} ldmia r5, {r0, r1, r2, r3} stmia r4, {r0, r1, r2, r3} add r0, sl, #0x334 ldr r5, _0217d544 ; =data_027e01b8 add r4, r0, #0xc00 ldmia r5!, {r0, r1, r2, r3} stmia r4!, {r0, r1, r2, r3} ldmia r5!, {r0, r1, r2, r3} stmia r4!, {r0, r1, r2, r3} ldmia r5, {r0, r1, r2, r3} stmia r4, {r0, r1, r2, r3} add r1, sl, #0x388 add r0, sl, #0x48 add r1, r1, #0xc00 mov r2, #0xc bl func_02007908 add r1, sl, #0x358 add r0, sl, #0x48 add r1, r1, #0xc00 mov r2, #0xc bl func_02007908 mov r1, #3 add r0, sl, #0x1000 str r1, [r0, #0x6c] mov sb, #0 add r8, sp, #0x34 mvn r7, #0 add r6, sp, #0x18 ldr r5, _0217d548 ; =data_ov38_02189224 ldr r4, _0217d54c ; =data_027e0fe8 ldr fp, _0217d550 ; =data_027e0fe4 b _0217d360 _0217d30c: mov r0, r8 bl func_ov00_020c1500 mov r0, r8 str r7, [sp, #0x50] str r7, [sp, #0x54] bl func_ov00_020c3348 ldr r0, [r4] str r7, [sp, #0x18] str r7, [sp, #0x1c] strh sb, [sp, #0x34] ldr r1, _0217d554 ; =0x474f3145 str r6, [sp] add r2, sl, #0x48 mov r3, r8 bl func_ov00_020c4048 ldr r0, [fp] mov r1, r6 bl func_ov00_020c3674 str r0, [r5, sb, lsl #2] str sl, [r0, #0x204] add sb, sb, #1 _0217d360: cmp sb, #5 blt _0217d30c ldr r1, [sl, #0x18] mov r0, #2 sub r1, r1, #0x800 str r1, [sl, #0x58] str r1, [sl, #0x4c] str r0, [sl, #0x12c] add r0, sl, #0x1000 mov r1, #0 str r1, [r0, #0x74] str r1, [r0, #0x60] mov r0, #4 strb r0, [sl, #0x124] bl func_ov29_0216ffe8 bl func_ov29_0217159c mov r4, #0 add r1, sp, #0x20 bic r2, r4, #0x1f orr r2, r2, #2 bic r2, r2, #0x6000 orr r2, r2, #0x4000 orr r2, r2, #0xc00000 orr r3, r2, #0x59000000 add r0, sl, #4 str r4, [r1, #0xc] str r4, [r1] str r4, [r1, #4] str r4, [r1, #8] ldr r6, [sl, #0x48] ldr r5, _0217d558 ; =0x000014cd str r6, [sp, #0x20] ldr r6, [sl, #0x4c] mov r2, #0x2000 str r6, [sp, #0x24] ldr r6, [sl, #0x50] add r0, r0, #0x1000 str r6, [sp, #0x28] str r5, [sp, #0x2c] str r2, [sp, #0x30] ldr r2, [sl, #8] str r3, [sp, #0x14] str r4, [sp] ldr r4, [r0] ldr r4, [r4, #0x10] blx r4 add r0, sl, #0x2c8 mov r1, #0 bl func_ov38_0217be04 ldr r1, _0217d550 ; =data_027e0fe4 ldr r2, _0217d55c ; =0x42524d31 ldr r1, [r1] add r0, sp, #0xc bl func_ov00_020c3894 ldr r0, _0217d550 ; =data_027e0fe4 add r1, sp, #0xc ldr r0, [r0] bl func_ov00_020c3674 str r0, [sl, #0xff4] ldr r1, _0217d550 ; =data_027e0fe4 ldr r2, _0217d560 ; =0x4e415649 ldr r1, [r1] add r0, sp, #4 bl func_ov00_020c3894 ldr r0, _0217d550 ; =data_027e0fe4 ldr r3, [sp, #4] ldr r2, [sp, #8] ldr r0, [r0] add r1, sp, #0xc str r3, [sp, #0xc] str r2, [sp, #0x10] bl func_ov00_020c3674 str r0, [sl, #0xff8] mov r0, sl mov r1, #0 bl func_ov38_02185720 ldr r1, _0217d564 ; =data_027e0fec ldr r0, _0217d568 ; =data_ov29_0217a4ac ldr r1, [r1] add r2, sl, #0x1000 add r1, r1, #0x3e8 add r1, r1, #0x1000 ldr r1, [r1, #8] str r1, [r2] bl func_ov29_0216d86c add r1, sl, #0x1000 str r0, [sl, #0xffc] ldr r0, [r1] ldr r1, _0217d56c ; =data_ov38_021890cc bl func_ov29_0216db60 mov r4, r0 add r0, sl, #0x1000 ldr r0, [r0] mov r1, r4 bl func_ov29_0216db74 add r2, sl, #0x1000 str r0, [r2, #0x2c] ldr r0, [r2] mov r1, r4 bl func_ov29_0216dba8 add r1, sl, #0x1000 str r0, [r1, #0x30] mov r0, #1 add sp, sp, #0x6c ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 arm_func_end func_ov38_0217cf90 _0217d504: .word data_027e0fb4 _0217d508: .word data_027e0f74 _0217d50c: .word data_ov38_021889b8 _0217d510: .word func_ov38_0217cc2c _0217d514: .word data_ov38_02188a24 _0217d518: .word data_ov38_021891e0 _0217d51c: .word data_ov38_02188a38 _0217d520: .word data_ov38_02188a4c _0217d524: .word data_ov38_02188a60 _0217d528: .word data_ov38_02188a74 _0217d52c: .word data_ov38_02188a88 _0217d530: .word data_ov38_02188a9c _0217d534: .word data_ov38_02188ab0 _0217d538: .word data_ov38_02188ac4 _0217d53c: .word data_027e0d0c _0217d540: .word data_02050f54 _0217d544: .word data_027e01b8 _0217d548: .word data_ov38_02189224 _0217d54c: .word data_027e0fe8 _0217d550: .word data_027e0fe4 _0217d554: .word 0x474f3145 _0217d558: .word 0x000014cd _0217d55c: .word 0x42524d31 _0217d560: .word 0x4e415649 _0217d564: .word data_027e0fec _0217d568: .word data_ov29_0217a4ac _0217d56c: .word data_ov38_021890cc .global func_ov38_0217d570 arm_func_start func_ov38_0217d570 func_ov38_0217d570: ; 0x0217d570 stmdb sp!, {r3, r4, r5, r6, r7, lr} sub sp, sp, #0x10 mov r6, r0 ldr r0, [r6, #0x2c4] mov r5, r1 add r0, r6, r0, lsl #2 ldr r0, [r0, #0x2b4] mov r4, r2 cmp r5, r0 addeq sp, sp, #0x10 ldmeqia sp!, {r3, r4, r5, r6, r7, pc} cmp r3, #0 ldr r0, [r6, #0x2c4] beq _0217d5c8 cmp r0, #0 moveq r0, #1 movne r0, #0 str r0, [r6, #0x2c4] str r3, [r6, #0x2c0] rsb r0, r3, #0x1000 str r0, [r6, #0x2bc] b _0217d5e0 _0217d5c8: cmp r0, #0 moveq r0, #1 movne r0, #0 add r0, r6, r0, lsl #2 mov r1, #0x18 str r1, [r0, #0x2b4] _0217d5e0: ldr r1, [r6, #0x2c4] ldr r0, _0217d6d0 ; =data_027e0fec add r1, r6, r1, lsl #2 str r5, [r1, #0x2b4] ldr r3, [r0] add r1, sp, #0 mov r0, #0 mov r2, #0x10 add r7, r3, #0x3e8 bl func_020078f4 ldr r1, _0217d6d4 ; =data_ov38_02188cc0 add r0, sp, #0 ldr r1, [r1, r5, lsl #2] bl func_02047024 add r0, r7, #0x1000 bl func_ov00_020c45b0 add r1, sp, #0 bl func_0201e544 mov r1, r0 mov r3, r4 ldr r0, [r6, #0x2c4] add r4, r6, #0x1b4 mov r2, #0 add r0, r4, r0, lsl #7 bl func_ov00_020c0cc8 add r0, r6, #0x158 ldr r1, [r0] ldr r1, [r1, #0x2c] blx r1 add r0, r6, #0x158 ldr r2, [r0] ldr r1, [r6, #0x2c4] mov r3, r4 ldr r2, [r2, #0x24] add r1, r3, r1, lsl #7 blx r2 ldr r0, [r6, #0x2c4] cmp r0, #0 moveq r0, #1 movne r0, #0 add r0, r6, r0, lsl #2 ldr r0, [r0, #0x2b4] cmp r0, #0x18 beq _0217d6b8 ldr r0, [r6, #0x2c4] add r1, r6, #0x1b4 cmp r0, #0 add r0, r6, #0x158 ldr r2, [r0] moveq r3, #1 movne r3, #0 ldr r2, [r2, #0x24] add r1, r1, r3, lsl #7 blx r2 _0217d6b8: ldr r0, [r6, #0x2c4] mov r1, #0x1000 add r0, r6, r0, lsl #7 str r1, [r0, #0x1c4] add sp, sp, #0x10 ldmia sp!, {r3, r4, r5, r6, r7, pc} .align 2, 0 arm_func_end func_ov38_0217d570 _0217d6d0: .word data_027e0fec _0217d6d4: .word data_ov38_02188cc0 .global func_ov38_0217d6d8 arm_func_start func_ov38_0217d6d8 func_ov38_0217d6d8: ; 0x0217d6d8 stmdb sp!, {r4, r5, lr} sub sp, sp, #0x1c mov r4, r0 add r2, sp, #0x10 add r0, r4, #0x48 add r1, r4, #0x14 bl func_01ff9bf8 mov r1, #0 add r0, sp, #0x10 str r1, [sp, #0x14] bl func_01ff9cec cmp r0, #0x1400 ble _0217d760 add r0, sp, #0x10 bl func_01fffb4c cmp r0, #0 beq _0217d760 add r1, sp, #0x10 add r2, r4, #0x14 add r3, r4, #0x48 mov r0, #0x1400 ldr r5, [r4, #0x4c] bl func_01ff9e64 add r0, sp, #0x10 add r1, r4, #0x60 str r5, [r4, #0x4c] bl func_01ff9c2c ldr r2, _0217d904 ; =0xffffe99a add r1, sp, #0x10 mul r2, r0, r2 mov r0, r2, asr #0xc add r2, r4, #0x60 mov r3, r2 bl func_01ff9e64 _0217d760: ldr r1, _0217d908 ; =data_027e0f94 add r2, sp, #0x10 add r0, r4, #0x48 bl func_01ff9bf8 mov r1, #0 add r0, sp, #0x10 str r1, [sp, #0x14] bl func_01ff9cec mov r5, r0 cmp r5, #0x5000 bge _0217d7b8 add r0, sp, #0x10 bl func_01fffb4c cmp r0, #0 beq _0217d7b8 rsb r0, r5, #0x5000 mov r0, r0, lsl #0xa add r2, r4, #0x60 add r1, sp, #0x10 mov r0, r0, asr #0xc mov r3, r2 bl func_01ff9e64 _0217d7b8: add r0, r4, #0x48 add r1, r4, #0x60 mov r2, r0 bl func_01ff9bc4 ldr r1, [r4, #0x60] ldr r0, _0217d90c ; =0x00000d9a mov r2, #0x200 mul r3, r1, r0 mov r1, r3, asr #0xc str r1, [r4, #0x60] mov r1, #0 str r1, [r4, #0x64] ldr r3, [r4, #0x68] mov r1, #0xb6 mul r0, r3, r0 mov r0, r0, asr #0xc str r0, [r4, #0x68] add r0, r4, #0x1000 str r1, [sp] ldrsh r1, [r0, #0x7c] mov r3, r2 add r0, r4, #0x78 bl func_ov38_0217c994 mov r0, #0x14 str r0, [sp] ldr r1, [r4, #0x18] mov r2, #0x200 add r0, r4, #0x4c sub r1, r1, #0x800 sub r3, r2, #0x66 bl func_ov38_0217ca04 add ip, r4, #0x1000 ldrb r0, [ip, #0xa0] cmp r0, #0 bne _0217d874 ldr r0, [r4, #0x18] ldr r1, [r4, #0x4c] sub r0, r0, #0x2800 cmp r1, r0 ble _0217d874 ldr r0, _0217d910 ; =data_027e0ffc mov lr, #1 add r2, r4, #0x48 mov r1, #0x430 mov r3, #0 strb lr, [ip, #0xa0] bl func_ov00_020ceacc _0217d874: ldr r1, [r4, #0x48] add r0, r4, #4 str r1, [sp, #4] ldr r1, [r4, #0x4c] add r0, r0, #0x1000 str r1, [sp, #8] ldr r2, [r4, #0x50] add r1, sp, #4 str r2, [sp, #0xc] ldr r2, [r0] ldr r2, [r2, #0x30] blx r2 ldrsh r1, [r4, #0x78] mov r0, #0 ldr lr, _0217d914 ; =data_02050f54 add r1, r1, r1, lsr #31 mov r1, r1, lsl #0xf mov r1, r1, lsr #0x10 mov r1, r1, asr #0x4 mov ip, r1, lsl #0x1 add r3, ip, #1 mov ip, ip, lsl #0x1 mov r3, r3, lsl #0x1 add r1, r4, #0x394 ldrsh ip, [lr, ip] str r0, [r4, #0xfb8] ldrsh r3, [lr, r3] str ip, [r4, #0xfbc] str r0, [r4, #0xfc0] add r2, r4, #0x3b8 add r0, r2, #0xc00 add r1, r1, #0xc00 str r3, [r4, #0xfc4] bl func_ov00_020d5cd8 add sp, sp, #0x1c ldmia sp!, {r4, r5, pc} .align 2, 0 arm_func_end func_ov38_0217d6d8 _0217d904: .word 0xffffe99a _0217d908: .word data_027e0f94 _0217d90c: .word 0x00000d9a _0217d910: .word data_027e0ffc _0217d914: .word data_02050f54 .global func_ov38_0217d918 arm_func_start func_ov38_0217d918 func_ov38_0217d918: ; 0x0217d918 stmdb sp!, {r3, r4, r5, r6, r7, lr} sub sp, sp, #0x28 mov r7, r0 mov r4, #1 bl func_ov38_0217dac0 ldr r1, [r7, #8] mov r5, r0 bl func_ov14_0213d440 movs r6, r0 bmi _0217da1c mov r0, r5 bl func_ov14_0213d420 cmp r0, #0 movne r0, r4 moveq r0, #0 cmp r0, #0 beq _0217da14 add r2, sp, #0x1c mov r0, r5 mov r1, r6 bl func_ov14_0213d81c cmp r0, #0 beq _0217da0c ldr r1, [sp, #0x1c] add r0, r7, #0x60 add r1, r1, r1, lsl #1 mov r1, r1, lsl #0xa add r1, r1, #0x800 mov r1, r1, asr #0xc str r1, [r7, #0x60] ldr r2, [sp, #0x24] add r1, r7, #0x48 add r2, r2, r2, lsl #1 mov r2, r2, lsl #0xa add r2, r2, #0x800 mov r3, r2, asr #0xc mov r2, r1 str r3, [r7, #0x68] bl func_01ff9bc4 add r0, r7, #0x48 add r1, r7, #0x14 bl func_01ff9ec0 cmp r0, #0x3000 bge _0217d9f0 add r1, sp, #0xc mov r0, r7 bl func_ov00_020c2a0c add r2, sp, #0xc mov r0, r5 mov r1, r6 bl func_ov14_0213dadc cmp r0, #0 moveq r4, #0 b _0217da20 _0217d9f0: mov r0, r5 mov r1, r6 bl func_ov14_0213d91c mov r0, r5 bl func_ov57_02199e24 mov r4, #0 b _0217da20 _0217da0c: mov r4, #0 b _0217da20 _0217da14: mov r4, #0 b _0217da20 _0217da1c: mov r4, #0 _0217da20: ldr r1, [r7, #0x48] add r0, r7, #4 str r1, [sp] ldr r1, [r7, #0x4c] add r0, r0, #0x1000 str r1, [sp, #4] ldr r2, [r7, #0x50] add r1, sp, #0 str r2, [sp, #8] ldr r2, [r0] ldr r2, [r2, #0x30] blx r2 ldrsh r1, [r7, #0x78] mov r0, #0 ldr r6, _0217dabc ; =data_02050f54 add r1, r1, r1, lsr #31 mov r1, r1, lsl #0xf mov r1, r1, lsr #0x10 mov r1, r1, asr #0x4 mov r5, r1, lsl #0x1 add r3, r5, #1 mov r5, r5, lsl #0x1 mov r3, r3, lsl #0x1 add r1, r7, #0x394 ldrsh r5, [r6, r5] str r0, [r7, #0xfb8] ldrsh r3, [r6, r3] str r5, [r7, #0xfbc] str r0, [r7, #0xfc0] add r2, r7, #0x3b8 add r0, r2, #0xc00 add r1, r1, #0xc00 str r3, [r7, #0xfc4] bl func_ov00_020d5cd8 cmp r4, #0 moveq r0, #1 movne r0, #0 add sp, sp, #0x28 ldmia sp!, {r3, r4, r5, r6, r7, pc} .align 2, 0 arm_func_end func_ov38_0217d918 _0217dabc: .word data_02050f54 .global func_ov38_0217dac0 arm_func_start func_ov38_0217dac0 func_ov38_0217dac0: ; 0x0217dac0 ldr ip, _0217dacc ; =func_01fffcec mov r0, #6 bx ip .align 2, 0 arm_func_end func_ov38_0217dac0 _0217dacc: .word func_01fffcec .global func_ov38_0217dad0 arm_func_start func_ov38_0217dad0 func_ov38_0217dad0: ; 0x0217dad0 stmdb sp!, {r4, r5, lr} sub sp, sp, #0x1c mov r4, r0 add r2, sp, #0x10 add r0, r4, #0x48 add r1, r4, #0x14 bl func_01ff9bf8 mov r1, #0 add r0, sp, #0x10 str r1, [sp, #0x14] bl func_01ff9cec mov r5, r0 cmp r5, #0x2800 ble _0217db58 add r0, sp, #0x10 bl func_01fffb4c cmp r0, #0 beq _0217dbbc add r1, sp, #0x10 add r2, r4, #0x14 add r3, r4, #0x48 mov r0, #0x2800 ldr r5, [r4, #0x4c] bl func_01ff9e64 add r0, sp, #0x10 add r1, r4, #0x60 str r5, [r4, #0x4c] bl func_01ff9c2c add r2, r4, #0x60 add r1, sp, #0x10 rsb r0, r0, #0 mov r3, r2 bl func_01ff9e64 b _0217dbbc _0217db58: ldr r0, [r4, #0x2d8] cmp r0, #4 bne _0217dbbc cmp r5, #0x2800 bge _0217dbbc add r0, sp, #0x10 bl func_01fffb4c cmp r0, #0 bne _0217db9c mov r0, #0x1000 mov r1, #0 str r0, [sp, #0x18] str r1, [sp, #0x10] str r1, [sp, #0x14] ldrsh r1, [r4, #0x78] add r0, sp, #0x10 bl func_ov00_020a61ac _0217db9c: rsb r1, r5, #0x2800 mov r0, #0x14 mul r0, r1, r0 add r2, r4, #0x60 add r1, sp, #0x10 mov r0, r0, asr #0xc mov r3, r2 bl func_01ff9e64 _0217dbbc: add r0, r4, #0x48 add r1, r4, #0x60 mov r2, r0 bl func_01ff9bc4 ldr r2, [r4, #0x60] ldr r0, _0217dcd4 ; =0x00000f33 mov r1, #0 mul r3, r2, r0 mov r2, r3, asr #0xc str r2, [r4, #0x60] str r1, [r4, #0x64] ldr r1, [r4, #0x68] mul r0, r1, r0 mov r0, r0, asr #0xc str r0, [r4, #0x68] ldr r0, [sp, #0x10] ldr r1, [sp, #0x18] bl func_01ffa0f4 mov r0, r0, lsl #0x10 mov r2, #0x400 mov ip, #0xb6 mov r1, r0, asr #0x10 mov r3, r2 add r0, r4, #0x78 str ip, [sp] bl func_ov38_0217c994 mov r0, #0x14 str r0, [sp] ldr r1, [r4, #0x18] add r0, r4, #0x4c sub r1, r1, #0x1c00 mov r2, #0x200 mov r3, #0xcd bl func_ov38_0217ca04 ldr r1, [r4, #0x48] add r0, r4, #4 str r1, [sp, #4] ldr r2, [r4, #0x4c] add r0, r0, #0x1000 str r2, [sp, #8] ldr r2, [r4, #0x50] add r1, sp, #4 str r2, [sp, #0xc] ldr r2, [r0] ldr r2, [r2, #0x30] blx r2 ldrsh r0, [r4, #0x78] mov ip, #0 ldr r2, _0217dcd8 ; =data_02050f54 add r0, r0, r0, lsr #31 mov r0, r0, lsl #0xf mov r0, r0, lsr #0x10 mov r0, r0, asr #0x4 mov r3, r0, lsl #0x1 mov r0, r3, lsl #0x1 ldrsh r1, [r2, r0] add r0, r3, #1 mov r0, r0, lsl #0x1 str ip, [r4, #0xfb8] str r1, [r4, #0xfbc] add r1, r4, #0x394 ldrsh r0, [r2, r0] str ip, [r4, #0xfc0] add r1, r1, #0xc00 str r0, [r4, #0xfc4] add r0, r4, #0x3b8 add r0, r0, #0xc00 bl func_ov00_020d5cd8 add sp, sp, #0x1c ldmia sp!, {r4, r5, pc} .align 2, 0 arm_func_end func_ov38_0217dad0 _0217dcd4: .word 0x00000f33 _0217dcd8: .word data_02050f54 .global func_ov38_0217dcdc arm_func_start func_ov38_0217dcdc func_ov38_0217dcdc: ; 0x0217dcdc stmdb sp!, {r4, lr} sub sp, sp, #0x10 ldr r1, _0217ddb8 ; =data_027e0d0c mov r4, r0 ldr r0, [r1] mov r3, #0x10 str r0, [r4, #0x60] ldr r0, [r1, #4] ldr r2, _0217ddbc ; =0x0000019a str r0, [r4, #0x64] ldr r1, [r1, #8] add r0, r4, #0x78 str r1, [r4, #0x68] str r3, [sp] ldrsh r1, [r4, #0x12] mov r3, #0x100 bl func_ov38_0217c994 add r0, r4, #0x14 add r3, sp, #4 ldmia r0, {r0, r1, r2} stmia r3, {r0, r1, r2} ldr r1, [sp, #8] mov r0, #0x14 sub r1, r1, #0x3800 str r1, [sp, #8] mov r1, r3 str r0, [sp] ldr r2, _0217ddc0 ; =0x00000266 add r0, r4, #0x48 mov r3, #0xa4 bl func_ov38_0217ca70 ldrsh r0, [r4, #0x78] mov r2, #0 ldr lr, _0217ddc4 ; =data_02050f54 add r0, r0, r0, lsr #31 mov r0, r0, lsl #0xf mov r0, r0, lsr #0x10 mov r0, r0, asr #0x4 mov r3, r0, lsl #0x1 add r1, r4, #0x3b8 mov ip, r3, lsl #0x1 add r0, r1, #0xc00 add r1, r3, #1 mov r3, r1, lsl #0x1 add r1, r4, #0x394 ldrsh ip, [lr, ip] str r2, [r4, #0xfb8] ldrsh r3, [lr, r3] str ip, [r4, #0xfbc] str r2, [r4, #0xfc0] add r1, r1, #0xc00 str r3, [r4, #0xfc4] bl func_ov00_020d5cd8 add sp, sp, #0x10 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov38_0217dcdc _0217ddb8: .word data_027e0d0c _0217ddbc: .word 0x0000019a _0217ddc0: .word 0x00000266 _0217ddc4: .word data_02050f54 .global func_ov38_0217ddc8 arm_func_start func_ov38_0217ddc8 func_ov38_0217ddc8: ; 0x0217ddc8 stmdb sp!, {r3, r4, lr} sub sp, sp, #4 mov r4, r0 mov r0, #0xb6 str r0, [sp] add r0, r4, #0x1000 mov r2, #0x400 ldrsh r1, [r0, #0x7c] mov r3, r2 add r0, r4, #0x78 bl func_ov38_0217c994 ldrsh r1, [r4, #0x78] ldr lr, _0217de54 ; =data_02050f54 mov r0, #0 add r1, r1, r1, lsr #31 mov r1, r1, lsl #0xf mov r1, r1, lsr #0x10 mov r1, r1, asr #0x4 mov r1, r1, lsl #0x1 mov ip, r1, lsl #0x1 add r1, r1, #1 mov r3, r1, lsl #0x1 add r1, r4, #0x3b8 add r2, r4, #0x394 ldrsh ip, [lr, ip] str r0, [r4, #0xfb8] ldrsh r3, [lr, r3] str ip, [r4, #0xfbc] str r0, [r4, #0xfc0] add r0, r1, #0xc00 add r1, r2, #0xc00 str r3, [r4, #0xfc4] bl func_ov00_020d5cd8 add sp, sp, #4 ldmia sp!, {r3, r4, pc} .align 2, 0 arm_func_end func_ov38_0217ddc8 _0217de54: .word data_02050f54 .global func_ov38_0217de58 arm_func_start func_ov38_0217de58 func_ov38_0217de58: ; 0x0217de58 stmdb sp!, {r4, lr} mov r2, r0 ldrsh r1, [r2, #0x78] mov r0, #0 add r3, r2, #0x3b8 add r1, r1, r1, lsr #31 mov r1, r1, lsl #0xf mov r1, r1, lsr #0x10 mov r1, r1, asr #0x4 mov r1, r1, lsl #0x1 ldr r4, _0217debc ; =data_02050f54 mov lr, r1, lsl #0x1 add r1, r1, #1 mov ip, r1, lsl #0x1 add r1, r2, #0x394 ldrsh lr, [r4, lr] str r0, [r2, #0xfb8] ldrsh ip, [r4, ip] str lr, [r2, #0xfbc] str r0, [r2, #0xfc0] add r0, r3, #0xc00 add r1, r1, #0xc00 str ip, [r2, #0xfc4] bl func_ov00_020d5cd8 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov38_0217de58 _0217debc: .word data_02050f54 .global func_ov38_0217dec0 arm_func_start func_ov38_0217dec0 func_ov38_0217dec0: ; 0x0217dec0 stmdb sp!, {r4, lr} sub sp, sp, #0x48 mov r4, r0 mov r0, #0xb6 str r0, [sp] add r0, r4, #0x1000 ldrsh r1, [r0, #0x7c] mov r2, #0x400 mov r3, r2 add r0, r4, #0x78 bl func_ov38_0217c994 ldr r1, [r4, #0x48] add r0, r4, #0x3d8 str r1, [sp, #0x10] ldr r2, [r4, #0x4c] add r1, sp, #0x10 str r2, [sp, #0x14] ldr r3, [r4, #0x50] add r2, sp, #0x3c add r0, r0, #0xc00 str r3, [sp, #0x18] bl func_01ff9bf8 ldr r1, [sp, #0x40] add r0, sp, #0x3c add r1, r1, #0x1000 str r1, [sp, #0x40] bl func_01fffb4c cmp r0, #0 beq _0217dfa0 mov r0, #0x1000 mov r1, #0 str r0, [sp, #0x38] str r1, [sp, #0x2c] str r1, [sp, #0x30] str r1, [sp, #0x34] ldr r1, [r4, #0xfa0] add r0, sp, #0x1c str r1, [sp, #4] ldr r2, [r4, #0xfa4] add r1, sp, #4 str r2, [sp, #8] ldr r3, [r4, #0xfa8] add r2, sp, #0x3c str r3, [sp, #0xc] bl func_ov00_020d5f98 ldr r2, _0217dfe0 ; =0x0000010a add r0, sp, #0x2c add r1, sp, #0x1c bl func_ov00_020d5a68 add r0, r4, #0x3b8 add r1, sp, #0x2c add r0, r0, #0xc00 bl func_ov00_020d5eac add r0, r4, #0x3b8 add r0, r0, #0xc00 bl func_ov00_020d5c54 _0217dfa0: add r0, r4, #0x88 mov r1, #0x2800 mov r2, #0x800 mov ip, #0xb6 add r0, r0, #0x1000 rsb r1, r1, #0 sub r3, r2, #0xe4 str ip, [sp] bl func_ov38_0217c994 add r0, r4, #0x3b8 add r1, r4, #0x394 add r0, r0, #0xc00 add r1, r1, #0xc00 bl func_ov00_020d5cd8 add sp, sp, #0x48 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov38_0217dec0 _0217dfe0: .word 0x0000010a .global func_ov38_0217dfe4 arm_func_start func_ov38_0217dfe4 func_ov38_0217dfe4: ; 0x0217dfe4 stmdb sp!, {r3, r4, r5, lr} sub sp, sp, #0x68 mov r5, r0 mov r0, #0xb6 str r0, [sp] add r0, r5, #0x1000 ldrsh r1, [r0, #0x7c] mov r2, #0x400 mov r3, r2 add r0, r5, #0x78 bl func_ov38_0217c994 ldr r1, [r5, #0x48] add r0, r5, #0x3d8 str r1, [sp, #0x10] ldr r2, [r5, #0x4c] add r1, sp, #0x10 str r2, [sp, #0x14] ldr r3, [r5, #0x50] add r2, sp, #0x5c add r0, r0, #0xc00 str r3, [sp, #0x18] bl func_01ff9bf8 add r0, sp, #0x5c bl func_01fffb4c cmp r0, #0 beq _0217e0b8 mov r0, #0x1000 mov r1, #0 str r0, [sp, #0x58] str r1, [sp, #0x4c] str r1, [sp, #0x50] str r1, [sp, #0x54] ldr r1, [r5, #0xfa0] add r0, sp, #0x3c str r1, [sp, #4] ldr r2, [r5, #0xfa4] add r1, sp, #4 str r2, [sp, #8] ldr r3, [r5, #0xfa8] add r2, sp, #0x5c str r3, [sp, #0xc] bl func_ov00_020d5f98 add r0, sp, #0x4c add r1, sp, #0x3c mov r2, #0x200 bl func_ov00_020d5a68 add r0, r5, #0x3b8 add r1, sp, #0x4c add r0, r0, #0xc00 bl func_ov00_020d5eac add r0, r5, #0x3b8 add r0, r0, #0xc00 bl func_ov00_020d5c54 _0217e0b8: add r0, r5, #0x1000 ldrsh r2, [r0, #0x94] ldrsh r0, [r0, #0x84] ldr r1, _0217e254 ; =0xffff8001 sub r0, r2, r0 mov r0, r0, lsl #0x10 mov r2, r0, asr #0x10 cmp r1, r0, asr #16 movgt r2, r1, lsr #0x11 bgt _0217e0f0 cmp r2, #0 rsblt r0, r2, #0 movlt r0, r0, lsl #0x10 movlt r2, r0, asr #0x10 _0217e0f0: add r0, r5, #0x1000 ldr r1, [r0, #0x74] cmp r1, #5 bne _0217e12c add r0, r5, #0x88 mov r1, #0x2800 mov r2, #0x800 mov r4, #0xb6 add r0, r0, #0x1000 rsb r1, r1, #0 sub r3, r2, #0xe4 str r4, [sp] bl func_ov38_0217c994 mov r4, #1 b _0217e1c4 _0217e12c: cmp r2, #0x2000 bgt _0217e140 ldr r0, [r0, #0x54] cmp r0, #0 bne _0217e16c _0217e140: add r0, r5, #0x88 mov r1, #0x2800 mov r2, #0x800 mov r4, #0xb6 add r0, r0, #0x1000 rsb r1, r1, #0 sub r3, r2, #0xe4 str r4, [sp] bl func_ov38_0217c994 mov r4, #0 b _0217e1c4 _0217e16c: add r0, r5, #0x88 mov r1, #0x2800 mov r2, #0x800 mov r4, #0xb6 add r0, r0, #0x1000 rsb r1, r1, #0 sub r3, r2, #0xe4 str r4, [sp] bl func_ov38_0217c994 ldr r0, _0217e258 ; =data_02051054 mov r4, #0 ldrsh r3, [r0, #0x80] ldrsh r2, [r0, #0x82] add r0, r5, #0x3b8 add r1, sp, #0x1c add r0, r0, #0xc00 str r4, [sp, #0x1c] str r3, [sp, #0x20] str r4, [sp, #0x24] str r2, [sp, #0x28] bl func_ov00_020d5dc4 mov r4, #1 _0217e1c4: add r0, r5, #0x3b8 add r1, r5, #0x394 add r0, r0, #0xc00 add r1, r1, #0xc00 bl func_ov00_020d5cd8 add r0, r5, #0x1000 ldr r0, [r0, #0x54] mov r3, #0 cmp r0, #0 ble _0217e224 ldr r0, _0217e25c ; =data_ov38_02188ca0 ldr r2, [r5, #0x2e0] ldr r0, [r0, #0x248] mov ip, #1 cmp r2, r0 ldr r0, _0217e260 ; =data_ov38_02188ee8 bne _0217e21c ldr r1, [r5, #0x2e4] ldr r0, [r0, #4] cmp r1, r0 cmpne r2, #0 moveq ip, #0 _0217e21c: cmp ip, #0 movne r3, #1 _0217e224: cmp r3, #0 beq _0217e248 mov r0, #0 str r0, [sp] ldr r3, [r5, #8] ldr r0, _0217e264 ; =data_027e0ffc ldr r1, _0217e268 ; =0x00000444 add r2, r5, #0x48 bl func_ov00_020cec60 _0217e248: mov r0, r4 add sp, sp, #0x68 ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov38_0217dfe4 _0217e254: .word 0xffff8001 _0217e258: .word data_02051054 _0217e25c: .word data_ov38_02188ca0 _0217e260: .word data_ov38_02188ee8 _0217e264: .word data_027e0ffc _0217e268: .word 0x00000444 .global func_ov38_0217e26c arm_func_start func_ov38_0217e26c func_ov38_0217e26c: ; 0x0217e26c stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #0x58 mov r6, r0 mov r0, #0xb6 str r0, [sp] mov r4, r2 mov r2, #0x400 add r0, r6, #0x1000 mov r5, r1 ldrsh r1, [r0, #0x7c] mov r3, r2 add r0, r6, #0x78 bl func_ov38_0217c994 ldr r1, [r6, #0x48] add r0, r6, #0x3d8 str r1, [sp, #0x10] ldr r2, [r6, #0x4c] add r1, sp, #0x10 str r2, [sp, #0x14] ldr r3, [r6, #0x50] add r2, sp, #0x4c add r0, r0, #0xc00 str r3, [sp, #0x18] bl func_01ff9bf8 add r0, sp, #0x4c mov r1, r4 mov r2, r0 bl func_01ff9bc4 add r0, sp, #0x4c bl func_01fffb4c cmp r0, #0 beq _0217e358 mov r0, #0x1000 mov r1, #0 str r0, [sp, #0x48] str r1, [sp, #0x3c] str r1, [sp, #0x40] str r1, [sp, #0x44] ldr r1, [r6, #0xfa0] add r0, sp, #0x2c str r1, [sp, #4] ldr r2, [r6, #0xfa4] add r1, sp, #4 str r2, [sp, #8] ldr r3, [r6, #0xfa8] add r2, sp, #0x4c str r3, [sp, #0xc] bl func_ov00_020d5f98 add r0, sp, #0x3c add r1, sp, #0x2c mov r2, #0x200 bl func_ov00_020d5a68 add r0, r6, #0x3b8 add r1, sp, #0x3c add r0, r0, #0xc00 bl func_ov00_020d5eac add r0, r6, #0x3b8 add r0, r0, #0xc00 bl func_ov00_020d5c54 _0217e358: add r0, r6, #0x88 mov r2, #0x800 mov r4, #0xb6 add r0, r0, #0x1000 sub r3, r2, #0xe4 mov r1, #0 str r4, [sp] bl func_ov38_0217c994 add r0, r6, #0x3b8 mov r1, r5 add r0, r0, #0xc00 bl func_ov00_020d5dc4 add r0, r6, #0x3b8 add r1, r6, #0x394 add r0, r0, #0xc00 add r1, r1, #0xc00 bl func_ov00_020d5cd8 add sp, sp, #0x58 ldmia sp!, {r4, r5, r6, pc} arm_func_end func_ov38_0217e26c .global func_ov38_0217e3a4 arm_func_start func_ov38_0217e3a4 func_ov38_0217e3a4: ; 0x0217e3a4 stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #0x58 mov r6, r0 mov r0, #0xb6 str r0, [sp] mov r4, r2 mov r2, #0x400 add r0, r6, #0x1000 mov r5, r1 ldrsh r1, [r0, #0x7c] mov r3, r2 add r0, r6, #0x78 bl func_ov38_0217c994 ldr r1, [r6, #0x48] add r0, r6, #0x3d8 str r1, [sp, #0x10] ldr r2, [r6, #0x4c] add r1, sp, #0x10 str r2, [sp, #0x14] ldr r3, [r6, #0x50] add r2, sp, #0x4c add r0, r0, #0xc00 str r3, [sp, #0x18] bl func_01ff9bf8 add r0, sp, #0x4c mov r1, r4 mov r2, r0 bl func_01ff9bc4 add r0, sp, #0x4c bl func_01fffb4c cmp r0, #0 beq _0217e490 mov r0, #0x1000 mov r1, #0 str r0, [sp, #0x48] str r1, [sp, #0x3c] str r1, [sp, #0x40] str r1, [sp, #0x44] ldr r1, [r6, #0xfa0] add r0, sp, #0x2c str r1, [sp, #4] ldr r2, [r6, #0xfa4] add r1, sp, #4 str r2, [sp, #8] ldr r3, [r6, #0xfa8] add r2, sp, #0x4c str r3, [sp, #0xc] bl func_ov00_020d5f98 add r0, sp, #0x3c add r1, sp, #0x2c mov r2, #0x200 bl func_ov00_020d5a68 add r0, r6, #0x3b8 add r1, sp, #0x3c add r0, r0, #0xc00 bl func_ov00_020d5eac add r0, r6, #0x3b8 add r0, r0, #0xc00 bl func_ov00_020d5c54 _0217e490: add r0, r6, #0x88 mov r1, #0x2800 mov r2, #0x800 mov r4, #0xb6 add r0, r0, #0x1000 rsb r1, r1, #0 sub r3, r2, #0xe4 str r4, [sp] bl func_ov38_0217c994 add r0, r6, #0x3b8 mov r1, r5 add r0, r0, #0xc00 bl func_ov00_020d5dc4 add r0, r6, #0x3b8 add r1, r6, #0x394 add r0, r0, #0xc00 add r1, r1, #0xc00 bl func_ov00_020d5cd8 add sp, sp, #0x58 ldmia sp!, {r4, r5, r6, pc} arm_func_end func_ov38_0217e3a4 .global func_ov38_0217e4e0 arm_func_start func_ov38_0217e4e0 func_ov38_0217e4e0: ; 0x0217e4e0 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #0xc mov r7, r0 add r3, r7, #0x1000 ldr r0, _0217e678 ; =data_027e0f94 add r2, sp, #0 add r1, r7, #0x14 ldr r5, [r3, #0x78] bl func_01ff9bf8 mov r1, #0 add r0, sp, #0 str r1, [sp, #4] bl func_01ff9cec add r1, r7, #0x1000 ldr r2, _0217e678 ; =data_027e0f94 ldrsh r3, [r1, #0x94] ldr r6, [r2, #4] mov r4, r0 strh r3, [r1, #0x96] ldr r0, [sp] ldr r1, [sp, #8] bl func_01ffa0f4 add r1, r7, #0x1000 ldr r2, _0217e67c ; =0x00011fd7 strh r0, [r1, #0x94] str r4, [r1, #0x48] cmp r6, r2 ble _0217e560 cmp r4, #0xc000 movlt r0, #4 strlt r0, [r1, #0x78] b _0217e618 _0217e560: rsb r0, r2, #0x1b000 cmp r6, r0 ble _0217e580 ldr r0, _0217e680 ; =0x0000be66 cmp r4, r0 movgt r0, #3 strgt r0, [r1, #0x78] b _0217e618 _0217e580: sub r0, r2, #0x9000 cmp r6, r0 ble _0217e59c cmp r4, #0xc000 movlt r0, #2 strlt r0, [r1, #0x78] b _0217e618 _0217e59c: cmp r6, #0x29 ble _0217e5b8 ldr r0, _0217e680 ; =0x0000be66 cmp r4, r0 movgt r0, #1 strgt r0, [r1, #0x78] b _0217e618 _0217e5b8: sub r0, r2, #0x12000 cmp r6, r0 ble _0217e618 cmp r4, #0xc000 bge _0217e618 mov r0, #0 str r0, [r1, #0x78] ldr r0, [r1, #0x74] cmp r0, #5 bne _0217e618 ldr r0, _0217e684 ; =0x0000bccd cmp r4, r0 bge _0217e618 mov r0, r7 bl func_ov00_020c198c cmp r0, #0 beq _0217e618 add r0, r7, #0x1000 ldr r1, [r0, #0x74] cmp r1, #6 addlt r1, r1, #1 strlt r1, [r0, #0x74] mov r0, r7 bl func_ov38_02187520 _0217e618: add r0, r7, #0x1000 ldr r0, [r0, #0x78] cmp r0, #2 bne _0217e630 mov r0, r7 bl func_ov38_0218487c _0217e630: add r0, r7, #0x1000 ldr r1, [r0, #0x78] cmp r1, r5 ldrneb r0, [r0, #0xaa] cmpne r0, #0 addeq sp, sp, #0xc ldmeqia sp!, {r4, r5, r6, r7, pc} bl func_ov29_021716dc add r0, r7, #0x1000 ldr r0, [r0, #0x78] cmp r0, #1 cmpne r0, #3 addne sp, sp, #0xc ldmneia sp!, {r4, r5, r6, r7, pc} mov r0, r7 bl func_ov38_0218425c add sp, sp, #0xc ldmia sp!, {r4, r5, r6, r7, pc} .align 2, 0 arm_func_end func_ov38_0217e4e0 _0217e678: .word data_027e0f94 _0217e67c: .word 0x00011fd7 _0217e680: .word 0x0000be66 _0217e684: .word 0x0000bccd .global func_ov38_0217e688 arm_func_start func_ov38_0217e688 func_ov38_0217e688: ; 0x0217e688 stmdb sp!, {r3, r4, r5, r6, r7, lr} sub sp, sp, #0x10 mov r4, r0 add r1, r4, #0x1000 ldrb r1, [r1, #0xac] cmp r1, #0 beq _0217e73c bl func_ov38_0217dac0 ldr r1, [r4, #8] mov r5, r0 bl func_ov14_0213d440 add r1, r4, #0x1000 ldr r2, [r1, #0x5c] mov r6, r0 subs r0, r2, #1 moveq r7, #1 movne r7, #0 str r0, [r1, #0x5c] cmp r6, #0 blt _0217e71c mov r0, r5 bl func_ov14_0213d420 cmp r0, #0 movne r0, #1 moveq r0, #0 cmp r0, #0 beq _0217e768 add r1, sp, #0 mov r0, r4 bl func_ov00_020c2a0c add r2, sp, #0 mov r0, r5 mov r1, r6 bl func_ov14_0213dadc add sp, sp, #0x10 mov r0, r7 ldmia sp!, {r3, r4, r5, r6, r7, pc} _0217e71c: ldr r1, [r4, #8] mov r0, r5 bl func_ov14_0213d480 cmp r0, #0 blt _0217e768 add sp, sp, #0x10 mov r0, r7 ldmia sp!, {r3, r4, r5, r6, r7, pc} _0217e73c: bl func_ov00_020c2e7c cmp r0, #0 beq _0217e768 add r0, r4, #0x1000 mov r1, #1 strb r1, [r0, #0xac] mov r1, #0xa str r1, [r0, #0x5c] add sp, sp, #0x10 mov r0, #0 ldmia sp!, {r3, r4, r5, r6, r7, pc} _0217e768: add r1, r4, #0x1000 mov r0, #0 strb r0, [r1, #0xac] add sp, sp, #0x10 ldmia sp!, {r3, r4, r5, r6, r7, pc} arm_func_end func_ov38_0217e688 .global func_ov38_0217e77c arm_func_start func_ov38_0217e77c func_ov38_0217e77c: ; 0x0217e77c stmdb sp!, {r3, r4, r5, r6, lr} sub sp, sp, #0x3c mov r5, r0 bl func_ov38_02184120 ldr r1, _0217e8b4 ; =data_027e0f94 mov r4, r0 ldr r2, [r1] ldr r0, [r1, #4] str r2, [sp, #0x18] str r0, [sp, #0x1c] ldr r1, [r1, #8] add r0, sp, #0x18 str r1, [sp, #0x20] ldr r2, [r5, #0x14] add r1, sp, #0xc str r2, [sp, #0xc] ldr r3, [r5, #0x18] add r2, sp, #0x30 str r3, [sp, #0x10] ldr r3, [r5, #0x1c] str r3, [sp, #0x14] bl func_01ff9bf8 mov r1, #0 add r0, sp, #0x30 str r1, [sp, #0x34] bl func_01ff9cec mov r6, r0 cmp r6, #0xb800 movgt r6, #0xb800 bgt _0217e7fc cmp r6, #0x5000 movlt r6, #0x5000 _0217e7fc: add r0, sp, #0x30 bl func_01fffb4c cmp r0, #0 bne _0217e820 mov r1, #0 mov r0, #0x1000 str r1, [sp, #0x30] str r1, [sp, #0x34] str r0, [sp, #0x38] _0217e820: add r0, sp, #0x30 mov r1, r6 bl func_01fffbec ldr r1, [r5, #0x14] add r0, sp, #0x30 str r1, [sp] ldr r2, [r5, #0x18] add r1, sp, #0 str r2, [sp, #4] ldr r3, [r5, #0x1c] mov r2, r0 str r3, [sp, #8] bl func_01ff9bc4 mov r2, #0 add r1, sp, #0x30 mov r0, r4 str r2, [sp, #0x34] bl func_ov29_0217036c mov r0, #0 ldr r1, _0217e8b8 ; =0xfffffe66 str r0, [sp, #0x24] str r0, [sp, #0x28] str r1, [sp, #0x2c] ldrsh r1, [r5, #0x78] add r0, sp, #0x24 bl func_ov00_020a61ac add r1, r5, #0x60 add r0, sp, #0x24 mov r2, r1 bl func_01ff9bc4 ldr r0, _0217e8bc ; =data_027e0ffc ldr r1, _0217e8c0 ; =0x00000431 add r2, r5, #0x48 mov r3, #0 bl func_ov00_020ceacc add sp, sp, #0x3c ldmia sp!, {r3, r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov38_0217e77c _0217e8b4: .word data_027e0f94 _0217e8b8: .word 0xfffffe66 _0217e8bc: .word data_027e0ffc _0217e8c0: .word 0x00000431 .global func_ov38_0217e8c4 arm_func_start func_ov38_0217e8c4 func_ov38_0217e8c4: ; 0x0217e8c4 stmdb sp!, {r4, r5, r6, r7, r8, lr} sub sp, sp, #0x50 ldr r2, _0217ea44 ; =data_ov38_02188908 ldr r1, _0217ea48 ; =data_027e0f94 ldrh r5, [r2, #0xc0] ldr r4, [r1] ldr r3, [r1, #4] str r4, [sp, #0x20] str r3, [sp, #0x24] ldr r1, [r1, #8] mov r4, r0 str r1, [sp, #0x28] ldr r0, [r4, #0x14] ldrh r7, [r2, #0xbc] str r0, [sp, #0x14] ldrh r6, [r2, #0xbe] ldr r0, [r4, #0x18] add r1, sp, #0x14 str r0, [sp, #0x18] ldr r3, [r4, #0x1c] add r0, sp, #0x20 add r2, sp, #0x44 strh r7, [sp] strh r6, [sp, #2] strh r5, [sp, #4] str r3, [sp, #0x1c] bl func_01ff9bf8 mov r1, #0 add r0, sp, #0x44 str r1, [sp, #0x48] bl func_01ff9cec mov r5, r0 cmp r5, #0xb800 movgt r5, #0xb800 bgt _0217e958 cmp r5, #0x5000 movlt r5, #0x5000 _0217e958: add r0, sp, #0x44 bl func_01fffb4c cmp r0, #0 bne _0217e97c mov r1, #0 mov r0, #0x1000 str r1, [sp, #0x44] str r1, [sp, #0x48] str r0, [sp, #0x4c] _0217e97c: add r0, sp, #0x44 mov r1, r5 bl func_01fffbec ldr r1, [r4, #0x14] add r0, sp, #0x44 str r1, [sp, #8] ldr r2, [r4, #0x18] add r1, sp, #8 str r2, [sp, #0xc] ldr r3, [r4, #0x1c] mov r2, r0 str r3, [sp, #0x10] bl func_01ff9bc4 mov r8, #0 str r8, [sp, #0x48] add r7, sp, #0x44 add r6, sp, #0x38 add r5, sp, #0 _0217e9c4: mov r3, r8, lsl #0x1 ldmia r7, {r0, r1, r2} stmia r6, {r0, r1, r2} ldrsh r1, [r5, r3] mov r0, r6 bl func_ov00_020a61ac mov r0, r4 bl func_ov38_02184120 mov r1, r6 bl func_ov29_0217036c add r8, r8, #1 cmp r8, #3 blt _0217e9c4 ldr r0, _0217ea4c ; =0xfffffccd mov r1, #0 str r0, [sp, #0x34] str r1, [sp, #0x2c] str r1, [sp, #0x30] ldrsh r1, [r4, #0x78] add r0, sp, #0x2c bl func_ov00_020a61ac add r1, r4, #0x60 add r0, sp, #0x2c mov r2, r1 bl func_01ff9bc4 ldr r0, _0217ea50 ; =data_027e0ffc ldr r1, _0217ea54 ; =0x00000431 add r2, r4, #0x48 mov r3, #0 bl func_ov00_020ceacc add sp, sp, #0x50 ldmia sp!, {r4, r5, r6, r7, r8, pc} .align 2, 0 arm_func_end func_ov38_0217e8c4 _0217ea44: .word data_ov38_02188908 _0217ea48: .word data_027e0f94 _0217ea4c: .word 0xfffffccd _0217ea50: .word data_027e0ffc _0217ea54: .word 0x00000431 .global func_ov38_0217ea58 arm_func_start func_ov38_0217ea58 func_ov38_0217ea58: ; 0x0217ea58 stmdb sp!, {r4, lr} mov r4, r0 add r0, r4, #0x1000 mov r1, #2 str r1, [r0, #0x70] mov r0, #0 strb r0, [r4, #0x11a] bl func_ov38_0217ea8c mov r1, #1 strb r1, [r0, #0xa8] mov r0, r4 bl func_ov38_02185e38 ldmia sp!, {r4, pc} arm_func_end func_ov38_0217ea58 .global func_ov38_0217ea8c arm_func_start func_ov38_0217ea8c func_ov38_0217ea8c: ; 0x0217ea8c ldr ip, _0217ea98 ; =func_01fffcd8 mov r0, #6 bx ip .align 2, 0 arm_func_end func_ov38_0217ea8c _0217ea98: .word func_01fffcd8 .global func_ov38_0217ea9c arm_func_start func_ov38_0217ea9c func_ov38_0217ea9c: ; 0x0217ea9c bx lr arm_func_end func_ov38_0217ea9c .global func_ov38_0217eaa0 arm_func_start func_ov38_0217eaa0 func_ov38_0217eaa0: ; 0x0217eaa0 stmdb sp!, {r3, r4, r5, lr} sub sp, sp, #0x18 mov r4, r0 add ip, r4, #0x14 add r3, sp, #0xc ldmia ip, {r0, r1, r2} stmia r3, {r0, r1, r2} ldr r1, [sp, #0x10] ldr r0, [sp, #0xc] add r1, r1, #0x14800 str r1, [sp, #0x10] str r0, [r4, #0x48] ldr lr, [sp, #0x10] mov r2, #0 str lr, [r4, #0x4c] ldr r5, [sp, #0x14] mov r0, r4 str r5, [r4, #0x50] ldr r1, [sp, #0xc] mov r3, r2 str r1, [r4, #0x54] str lr, [r4, #0x58] str r5, [r4, #0x5c] ldmib ip, {r5, lr} ldr ip, [r4, #0x14] mov r1, #0x13 str ip, [r4, #0xfd8] str r5, [r4, #0xfdc] str lr, [r4, #0xfe0] ldr ip, [r4, #0xfdc] add ip, ip, #0x3800 str ip, [r4, #0xfdc] bl func_ov38_0217d570 mov ip, #1 ldr r0, _0217eb70 ; =data_ov00_020eec68 mov r1, #0xcc mov r2, #0 mov r3, #0x7f strb ip, [r4, #0x11a] bl func_ov00_020d70a4 ldr r0, _0217eb74 ; =data_027e0fc8 ldr r0, [r0] ldr r1, [r0] ldr r1, [r1, #0x80] blx r1 add r0, r4, #0x1000 mov r1, #0xa00 strh r1, [r0, #0x82] mov r1, #0 str r1, [r0, #0x68] add sp, sp, #0x18 ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov38_0217eaa0 _0217eb70: .word data_ov00_020eec68 _0217eb74: .word data_027e0fc8 .global func_ov38_0217eb78 arm_func_start func_ov38_0217eb78 func_ov38_0217eb78: ; 0x0217eb78 stmdb sp!, {r3, r4, r5, lr} sub sp, sp, #0x38 mov r4, r0 add r1, r4, #0x1000 ldr r2, [r1, #0x68] cmp r2, #4 addls pc, pc, r2, lsl #2 b _0217f1b0 _0217eb98: ; jump table b _0217ebac ; case 0 b _0217ebb8 ; case 1 b _0217ebec ; case 2 b _0217edd4 ; case 3 b _0217efcc ; case 4 _0217ebac: add r0, r2, #1 str r0, [r1, #0x68] b _0217f1cc _0217ebb8: bl func_ov38_0218307c mov r2, #1 add r0, r4, #0x1000 strb r2, [r0, #0xa5] mov r1, #0 str r1, [r0, #0x38] add r2, r2, #0x170 ldr r1, _0217f1f8 ; =0x0000030a str r2, [r0, #0x40] str r1, [r0, #0x3c] ldr r1, [r0, #0x68] add r1, r1, #1 str r1, [r0, #0x68] _0217ebec: add r1, r4, #0x1000 add r0, r4, #0x38 ldr r1, [r1, #0x3c] add r0, r0, #0x1000 mov r2, #0x66 bl func_0202b0f4 mov r0, #0x29 add r1, r4, #0x3d8 str r0, [sp] add r0, r4, #0x1000 ldr r2, [r0, #0x40] ldr r3, [r0, #0x38] add r0, r4, #0x48 add r1, r1, #0xc00 bl func_ov38_0217ca70 mov r1, #0x10 add r0, r4, #0x82 str r1, [sp] add r1, r4, #0x1000 ldr r2, [r1, #0x40] add r0, r0, #0x1000 mov r1, #0x294 mov r3, #0x200 bl func_ov38_0217c994 mov r0, r4 bl func_ov38_0217de58 ldr r0, [r4, #0xfdc] ldr r1, [r4, #0x4c] add r0, r0, #0x9a add r0, r0, #0x100 cmp r1, r0 bge _0217edbc ldr r0, [r4, #0x2c4] add r0, r4, r0, lsl #2 ldr r0, [r0, #0x2b4] cmp r0, #0x13 beq _0217ec8c cmp r0, #0x14 beq _0217ecd4 b _0217f1cc _0217ec8c: ldr r0, [r4, #0x2c4] add r1, r4, #0x1b4 add r0, r1, r0, lsl #7 add r0, r0, #0xc bl func_0202e544 cmp r0, #0 beq _0217ecbc mov r0, r4 mov r1, #0x14 mov r2, #1 mov r3, #0 bl func_ov38_0217d570 _0217ecbc: add r0, r4, #0x1000 ldrsh r1, [r4, #0x78] ldrsh r0, [r0, #0x82] add r0, r1, r0 strh r0, [r4, #0x78] b _0217f1cc _0217ecd4: ldr r0, [r4, #0x2c4] add r1, r4, #0x1b4 add r5, r1, r0, lsl #7 add r0, r5, #0xc bl func_0202e58c cmp r0, #0 beq _0217ed2c mov r2, #0 mov r0, r4 mov r3, r2 mov r1, #0x15 bl func_ov38_0217d570 ldr r0, _0217f1fc ; =data_027e103c ldr r1, _0217f200 ; =0x00180015 ldr r0, [r0] bl func_ov00_020cfc70 add r0, r4, #0x1000 mov r1, #0x5a str r1, [r0, #0x54] ldr r1, [r0, #0x68] add r1, r1, #1 str r1, [r0, #0x68] _0217ed2c: add r0, r5, #0xc mov r1, #0x28000 bl func_0202e310 cmp r0, #0 beq _0217ed54 ldr r0, _0217f204 ; =data_027e0ffc ldr r1, _0217f208 ; =0x0000042d add r2, r4, #0x48 mov r3, #0 bl func_ov00_020ceacc _0217ed54: ldr r0, [r5, #0x14] cmp r0, #0x28000 ble _0217eda4 mov r0, #0x10 str r0, [sp] add r0, r4, #0x1000 ldrsh r3, [r0, #0x82] ldr r2, [r0, #0x40] add r0, r4, #0x78 mov r1, #0 bl func_ov38_0217c994 mov r0, #0x29 str r0, [sp] ldr r1, [r4, #0x1c] rsb r2, r0, #0x35c mov r3, r2 add r0, r4, #0xfe0 add r1, r1, #0x2400 bl func_ov38_0217ca04 b _0217f1cc _0217eda4: add r0, r4, #0x1000 ldrsh r1, [r4, #0x78] ldrsh r0, [r0, #0x82] add r0, r1, r0 strh r0, [r4, #0x78] b _0217f1cc _0217edbc: add r0, r4, #0x1000 ldrsh r1, [r4, #0x78] ldrsh r0, [r0, #0x82] add r0, r1, r0 strh r0, [r4, #0x78] b _0217f1cc _0217edd4: add r0, r4, #0x38 ldr r1, [r1, #0x3c] add r0, r0, #0x1000 mov r2, #0x66 bl func_0202b0f4 mov r1, #0x10 add r0, r4, #0x82 str r1, [sp] add r1, r4, #0x1000 ldr r2, [r1, #0x40] add r0, r0, #0x1000 mov r1, #0xc0 mov r3, #0x200 bl func_ov38_0217c994 mov r0, #0x29 add r1, r4, #0x3d8 str r0, [sp] add r0, r4, #0x1000 ldr r2, [r0, #0x40] ldr r3, [r0, #0x38] add r0, r4, #0x48 add r1, r1, #0xc00 bl func_ov38_0217ca70 mov r0, r4 bl func_ov38_0217de58 add r0, r4, #0x1000 ldr r0, [r0, #0x54] cmp r0, #0 bne _0217ef98 ldr r0, [r4, #0x2c4] add r0, r4, r0, lsl #2 ldr r0, [r0, #0x2b4] cmp r0, #0x15 beq _0217ee68 cmp r0, #0x16 beq _0217eec4 b _0217f1cc _0217ee68: ldr r0, [r4, #0x2c4] add r1, r4, #0x1b4 add r0, r1, r0, lsl #7 add r0, r0, #0xc bl func_0202e544 cmp r0, #0 beq _0217eea0 mov r0, r4 add ip, r4, #0x1000 mov r3, #0 mov r1, #0x16 mov r2, #1 strh r3, [ip, #0x82] bl func_ov38_0217d570 _0217eea0: mov r0, #0x10 str r0, [sp] add r0, r4, #0x1000 ldrsh r3, [r0, #0x82] ldr r2, [r0, #0x40] add r0, r4, #0x78 mov r1, #0 bl func_ov38_0217c994 b _0217f1cc _0217eec4: ldr r0, [r4, #0x2c4] add r1, r4, #0x1b4 add r0, r1, r0, lsl #7 add r0, r0, #0xc bl func_0202e58c cmp r0, #0 ldreq r0, [r4, #0xfdc] addeq r0, r0, #0x66 streq r0, [r4, #0xfdc] beq _0217ef6c mov r0, r4 mov r1, #2 mov r2, #1 mov r3, #0 bl func_ov38_0217d570 ldr r0, _0217f204 ; =data_027e0ffc ldr r1, _0217f20c ; =0x0000042e add r2, r4, #0x48 mov r3, #0 bl func_ov00_020ceacc add r0, r4, #0x1000 ldr r2, [r0, #0x68] mov r1, #0x5a add r2, r2, #1 str r2, [r0, #0x68] str r1, [r0, #0x54] mov ip, #0 ldr r1, _0217f210 ; =0x00000733 str ip, [r0, #0x38] str r1, [r0, #0x3c] mov r1, #0x400 str r1, [r0, #0x40] ldr r3, [r4, #0x18] ldr r2, [r4, #0x1c] ldr r1, [r4, #0x14] str r1, [r4, #0xfd8] str r3, [r4, #0xfdc] str r2, [r4, #0xfe0] ldr r1, [r4, #0x4c] str r1, [r4, #0xfe8] str r1, [r4, #0xfdc] strh ip, [r0, #0x84] _0217ef6c: add r0, r4, #0x82 add r0, r0, #0x1000 mov r1, #0x300 mov r2, #0x18 bl func_0202b154 add r0, r4, #0x1000 ldrsh r1, [r4, #0x78] ldrsh r0, [r0, #0x82] add r0, r1, r0 strh r0, [r4, #0x78] b _0217f1cc _0217ef98: mov r0, #0x29 str r0, [sp] ldr r1, [r4, #0x1c] rsb r2, r0, #0x35c mov r3, r2 add r0, r4, #0xfe0 add r1, r1, #0x2400 bl func_ov38_0217ca04 add r0, r4, #0x1000 ldr r1, [r0, #0x54] sub r1, r1, #1 str r1, [r0, #0x54] b _0217f1cc _0217efcc: ldrsh r2, [r1, #0x82] add r0, r4, #0x84 ldr r1, _0217f214 ; =0x00007fff add r0, r0, #0x1000 bl func_0202b154 add r1, r4, #0x1000 add r0, r4, #0x38 ldr r1, [r1, #0x3c] add r0, r0, #0x1000 mov r2, #0x66 bl func_0202b0f4 mov r0, #0x29 add r1, r4, #0x3d8 str r0, [sp] add r0, r4, #0x1000 ldr r2, [r0, #0x40] ldr r3, [r0, #0x38] add r0, r4, #0x48 add r1, r1, #0xc00 bl func_ov38_0217ca70 add r0, r4, #0x82 add r0, r0, #0x1000 mov r1, #0x300 mov r2, #0x20 bl func_0202b154 add r0, r4, #0x1000 ldrsh r1, [r0, #0x84] ldr r0, _0217f218 ; =0x00005555 cmp r1, r0 ble _0217f074 ldr r1, [r4, #0x18] add r0, r4, #0x3dc add r0, r0, #0xc00 sub r1, r1, #0x8000 mov r2, #0x800 bl func_0202b0f4 add r0, r4, #0x3c add r0, r0, #0x1000 mov r1, #0x800 mov r2, #0xc bl func_0202b0f4 b _0217f0a4 _0217f074: mov r0, r1, lsl #0x10 mov r0, r0, lsr #0x10 mov r1, r0, asr #0x4 ldr r0, _0217f21c ; =data_02050f54 mov r1, r1, lsl #0x2 ldrsh r1, [r0, r1] mov r0, #0x3400 ldr r2, [r4, #0xfe8] smulbb r0, r1, r0 add r0, r0, #0x800 add r0, r2, r0, asr #12 str r0, [r4, #0xfdc] _0217f0a4: add r0, r4, #0x1000 ldr r1, [r0, #0x54] cmp r1, #0 bne _0217f0d0 ldr r2, [r0, #0x68] ldr r1, _0217f220 ; =data_027e0fc8 add r2, r2, #1 str r2, [r0, #0x68] ldr r0, [r1] bl func_ov00_020bb9b0 b _0217f114 _0217f0d0: ldr r0, _0217f220 ; =data_027e0fc8 ldr ip, [r4, #0xf5c] ldr r5, [r4, #0xf60] ldr r3, [r4, #0xf58] cmp ip, #0x800 movle ip, #0x800 ldr r0, [r0] add r1, sp, #0x2c mov r2, #0x400 str r3, [sp, #0x2c] str ip, [sp, #0x30] str r5, [sp, #0x34] bl func_ov00_020bb810 add r0, r4, #0x1000 ldr r1, [r0, #0x54] sub r1, r1, #1 str r1, [r0, #0x54] _0217f114: mov r0, #0x4000 mov r1, #0 str r0, [sp, #0x14] add r0, r4, #0x1000 str r1, [sp, #0x10] str r1, [sp, #0x18] ldrsh r1, [r0, #0x84] add r0, sp, #0x10 rsb r1, r1, #0 mov r1, r1, lsl #0x10 mov r1, r1, asr #0x10 bl func_ov00_020a6110 add r0, r4, #0x1000 ldrsh r1, [r0, #0x94] add r0, sp, #0x10 bl func_ov00_020a61ac add r0, r4, #0x1000 ldrsh r0, [r0, #0x82] ldr r1, _0217f21c ; =data_02050f54 mov r3, #0 add r0, r0, r0, lsr #31 mov r0, r0, lsl #0xf mov r0, r0, lsr #0x10 mov r0, r0, asr #0x4 mov r2, r0, lsl #0x1 add r0, r2, #1 mov r2, r2, lsl #0x1 ldrsh lr, [r1, r2] mov r0, r0, lsl #0x1 ldrsh ip, [r1, r0] add r1, sp, #0x1c add r2, sp, #0x10 mov r0, r4 str r3, [sp, #0x1c] str lr, [sp, #0x20] str r3, [sp, #0x24] str ip, [sp, #0x28] bl func_ov38_0217e3a4 b _0217f1cc _0217f1b0: bl func_ov29_02174f9c mov r0, r4 mov r1, #1 bl func_ov38_02185720 add r0, r4, #0x2c8 mov r1, #2 bl func_ov38_0217be60 _0217f1cc: ldr r0, [r4, #0x2c4] add r0, r4, r0, lsl #2 ldr r0, [r0, #0x2b4] cmp r0, #2 addeq sp, sp, #0x38 ldmeqia sp!, {r3, r4, r5, pc} ldr r0, _0217f224 ; =data_ov00_020eec9c ldr r1, _0217f228 ; =0x0000042c bl func_ov00_020d7c8c add sp, sp, #0x38 ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov38_0217eb78 _0217f1f8: .word 0x0000030a _0217f1fc: .word data_027e103c _0217f200: .word 0x00180015 _0217f204: .word data_027e0ffc _0217f208: .word 0x0000042d _0217f20c: .word 0x0000042e _0217f210: .word 0x00000733 _0217f214: .word 0x00007fff _0217f218: .word 0x00005555 _0217f21c: .word data_02050f54 _0217f220: .word data_027e0fc8 _0217f224: .word data_ov00_020eec9c _0217f228: .word 0x0000042c .global func_ov38_0217f22c arm_func_start func_ov38_0217f22c func_ov38_0217f22c: ; 0x0217f22c stmdb sp!, {r4, r5, r6, lr} mov r6, r0 ldr r0, [r6, #0x4c] ldr r4, _0217f280 ; =data_ov38_02189224 add r0, r0, #0x3000 mov r5, #0 str r0, [r6, #0x4c] _0217f248: ldr r0, [r4, r5, lsl #2] bl func_ov29_02172ddc add r5, r5, #1 cmp r5, #5 blt _0217f248 add r0, r6, #0x1000 mov r3, #0 add r1, r6, #4 ldr r2, _0217f284 ; =data_027e0f6c strb r3, [r0, #0xa5] ldr r0, [r2] add r1, r1, #0x1000 bl func_ov00_02093a5c ldmia sp!, {r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov38_0217f22c _0217f280: .word data_ov38_02189224 _0217f284: .word data_027e0f6c .global func_ov38_0217f288 arm_func_start func_ov38_0217f288 func_ov38_0217f288: ; 0x0217f288 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #0xc mov r4, r0 add r2, r4, #0x1000 mov r1, #0 str r1, [r2, #0x70] ldr r2, [r4, #0x2c4] add r2, r4, r2, lsl #2 ldr r2, [r2, #0x2b4] cmp r2, #2 mov r2, r1 bne _0217f2c4 mov r3, r1 bl func_ov38_0217d570 b _0217f2cc _0217f2c4: mov r3, #0x200 bl func_ov38_0217d570 _0217f2cc: ldr r3, _0217f3a0 ; =data_027e0764 mov ip, #0 ldr r1, [r3] ldmib r3, {r0, r2} umull r6, r5, r2, r1 mla r5, r2, r0, r5 ldr r0, [r3, #0xc] ldr r2, [r3, #0x10] mla r5, r0, r1, r5 ldr r0, [r3, #0x14] adds r6, r2, r6 adc r5, r0, r5 mov r1, #0x1f umull r0, r2, r5, r1 str r6, [r3] mla r2, r5, ip, r2 mov r0, ip mla r2, r0, r1, r2 add r1, r2, #0x3c str r5, [r3, #4] add r2, r4, #0x1000 str r1, [r2, #0x54] ldr r5, [r3] ldmib r3, {r1, lr} umull r7, r6, lr, r5 mla r6, lr, r1, r6 ldr r1, [r3, #0xc] ldr lr, [r3, #0x10] mla r6, r1, r5, r6 ldr r5, [r3, #0x14] adds r7, lr, r7 mov r1, #0xb adc r6, r5, r6 umull lr, r5, r6, r1 mla r5, r6, ip, r5 mla r5, r0, r1, r5 str r7, [r3] str r6, [r3, #4] add r0, r5, #0x14 str r0, [r2, #0x58] str ip, [r2, #0x68] strb ip, [r2, #0xa0] ldr r2, [r4, #0x18] ldr r1, [r4, #0x1c] ldr r0, [r4, #0x14] str r0, [r4, #0xfd8] str r2, [r4, #0xfdc] str r1, [r4, #0xfe0] ldr r0, [r4, #0xfdc] sub r0, r0, #0x800 str r0, [r4, #0xfdc] add sp, sp, #0xc ldmia sp!, {r4, r5, r6, r7, pc} .align 2, 0 arm_func_end func_ov38_0217f288 _0217f3a0: .word data_027e0764 .global func_ov38_0217f3a4 arm_func_start func_ov38_0217f3a4 func_ov38_0217f3a4: ; 0x0217f3a4 stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #0x40 mov r4, r0 ldr r0, [r4, #0x2c4] add r0, r4, r0, lsl #2 ldr r0, [r0, #0x2b4] cmp r0, #3 bne _0217f48c ldr r0, [r4, #0x2c4] add r1, r4, #0x1b4 add r0, r1, r0, lsl #7 add r0, r0, #0xc bl func_0202e58c cmp r0, #0 beq _0217f448 ldr ip, _0217f83c ; =data_027e0764 mov r1, #0 ldr r2, [ip] ldmib ip, {r0, r3} umull r6, r5, r3, r2 mla r5, r3, r0, r5 ldr r0, [ip, #0xc] ldr r3, [ip, #0x10] mla r5, r0, r2, r5 ldr r0, [ip, #0x14] adds r3, r3, r6 adc r6, r0, r5 mov r0, #0x1f umull r2, r5, r6, r0 str r3, [ip] str r6, [ip, #4] mla r5, r6, r1, r5 mov r2, r1 mla r5, r2, r0, r5 mov r0, r4 mov r3, r1 add r5, r5, #0x3c add ip, r4, #0x1000 str r5, [ip, #0x54] bl func_ov38_0217d570 b _0217f4fc _0217f448: ldr r0, [r4, #0x2c4] add r1, r4, #0x1b4 add r0, r1, r0, lsl #7 add r0, r0, #0xc mov r1, #0xf000 bl func_0202e310 cmp r0, #0 beq _0217f4fc add r0, r4, #0x1000 ldr r0, [r0, #0x74] cmp r0, #0 mov r0, r4 bne _0217f484 bl func_ov38_0217e77c b _0217f4fc _0217f484: bl func_ov38_0217e8c4 b _0217f4fc _0217f48c: add r0, r4, #0x1000 ldr r1, [r0, #0x78] cmp r1, #0 bne _0217f4fc mov r1, #0 strb r1, [r0, #0xaa] ldr r1, [r0, #0x54] cmp r1, #0 bne _0217f4e4 ldr r0, [r4, #0x2c4] add r1, r4, #0x1b4 add r0, r1, r0, lsl #7 add r0, r0, #0xc bl func_0202e544 cmp r0, #0 beq _0217f4ec mov r0, r4 mov r1, #3 mov r2, #1 mov r3, #0 bl func_ov38_0217d570 b _0217f4ec _0217f4e4: sub r1, r1, #1 str r1, [r0, #0x54] _0217f4ec: mov r0, r4 bl func_ov00_020c2974 add r1, r4, #0x1000 strh r0, [r1, #0x7c] _0217f4fc: add r0, r4, #0x1000 ldr r1, [r0, #0x58] cmp r1, #0 bne _0217f5a0 ldr r1, [r0, #0x78] cmp r1, #0 bne _0217f5a8 ldr r1, _0217f840 ; =data_ov29_0217bca0 ldr r1, [r1] cmp r1, #6 bge _0217f5a8 ldr r0, [r0, #0x6c] cmp r0, #0 ble _0217f5a8 mov r0, r4 bl func_ov38_021841e0 add r2, r4, #0x1000 ldr r0, [r2, #0x6c] ldr r3, _0217f83c ; =data_027e0764 sub r0, r0, #1 str r0, [r2, #0x6c] ldr r1, [r3] ldmib r3, {r0, ip} umull r5, lr, ip, r1 mla lr, ip, r0, lr ldr r0, [r3, #0xc] ldr r6, [r3, #0x10] mla lr, r0, r1, lr ldr ip, [r3, #0x14] adds r6, r6, r5 adc r5, ip, lr mov r0, #0xb str r6, [r3] mov r1, #0 umull ip, lr, r5, r0 mla lr, r5, r1, lr mla lr, r1, r0, lr str r5, [r3, #4] add r0, lr, #0xa str r0, [r2, #0x58] b _0217f5a8 _0217f5a0: sub r1, r1, #1 str r1, [r0, #0x58] _0217f5a8: ldr r0, _0217f840 ; =data_ov29_0217bca0 ldr r0, [r0] cmp r0, #0 addeq r1, r4, #0x1000 ldreq r0, [r1, #0x6c] cmpeq r0, #0 bne _0217f5fc ldr r0, [r1, #0x48] cmp r0, #0xb800 bge _0217f5fc mov r2, #1 mov r0, r4 strb r2, [r1, #0xab] bl func_ov38_0217e688 cmp r0, #0 beq _0217f608 add r0, r4, #0x2c8 mov r1, #3 bl func_ov38_0217be60 add sp, sp, #0x40 ldmia sp!, {r4, r5, r6, pc} _0217f5fc: add r0, r4, #0x1000 mov r1, #0 strb r1, [r0, #0xab] _0217f608: mov r1, #0 mov r0, r4 mov r2, r1 bl func_ov00_020c243c mov r0, r4 mov r1, #0x1a bl func_ov00_020c1fc8 mov r0, r4 bl func_ov38_0217d6d8 ldr r3, [r4, #0xf60] ldr r2, [r4, #0xf5c] ldr r0, [r4, #0xf58] ldr r1, _0217f844 ; =0x0000059a str r0, [sp, #0x34] ldr r0, _0217f848 ; =0xfffff333 str r2, [sp, #0x38] mov r2, #0 str r0, [sp, #0x30] str r3, [sp, #0x3c] str r2, [sp, #0x28] str r1, [sp, #0x2c] ldrsh r1, [r4, #0x78] add r0, sp, #0x28 mov r5, #1 bl func_ov00_020a61ac add r0, sp, #0x28 add r1, sp, #0x34 mov r2, r0 bl func_01ff9bc4 ldr r0, [r4, #0xe3c] cmp r0, #0 bne _0217f6b8 mov r1, #2 str r1, [sp] ldr r0, _0217f84c ; =data_027e0e58 add r1, r4, #0x23c ldr r0, [r0] ldr r2, _0217f850 ; =0x00001003 add r3, sp, #0x28 add r1, r1, #0xc00 bl func_ov00_0207c1f8 ldr r0, [r4, #0xe3c] cmp r0, #0 moveq r5, #0 _0217f6b8: cmp r5, #0 beq _0217f744 cmp r0, #0 beq _0217f710 ldr r1, [r0, #0x20] ldr r2, [sp, #0x28] ldr r1, [r1] ldr r1, [r1, #4] add r1, r2, r1 str r1, [r0, #0x28] ldr r1, [r0, #0x20] ldr r2, [sp, #0x2c] ldr r1, [r1] ldr r1, [r1, #8] add r1, r2, r1 str r1, [r0, #0x2c] ldr r1, [r0, #0x20] ldr r2, [sp, #0x30] ldr r1, [r1] ldr r1, [r1, #0xc] add r1, r2, r1 str r1, [r0, #0x30] _0217f710: ldr r3, [r4, #0xfb4] add r0, r4, #0x23c ldr r2, [r4, #0xfb0] rsb ip, r3, #0 ldr r1, [r4, #0xfac] rsb r3, r2, #0 rsb r2, r1, #0 add r1, sp, #0x1c add r0, r0, #0xc00 str r2, [sp, #0x1c] str r3, [sp, #0x20] str ip, [sp, #0x24] bl func_ov00_020b7ea4 _0217f744: ldr r0, _0217f854 ; =0x00000ccd ldr r1, _0217f844 ; =0x0000059a mov r2, #0 str r0, [sp, #0x18] str r2, [sp, #0x10] str r1, [sp, #0x14] ldrsh r1, [r4, #0x78] add r0, sp, #0x10 mov r5, #1 bl func_ov00_020a61ac add r0, sp, #0x10 add r1, sp, #0x34 mov r2, r0 bl func_01ff9bc4 ldr r0, [r4, #0xe40] cmp r0, #0 bne _0217f7b4 mov r1, #2 str r1, [sp] ldr r0, _0217f84c ; =data_027e0e58 ldr r2, _0217f850 ; =0x00001003 ldr r0, [r0] add r3, sp, #0x10 add r1, r4, #0xe40 bl func_ov00_0207c1f8 ldr r0, [r4, #0xe40] cmp r0, #0 moveq r5, #0 _0217f7b4: cmp r5, #0 addeq sp, sp, #0x40 ldmeqia sp!, {r4, r5, r6, pc} cmp r0, #0 beq _0217f810 ldr r1, [r0, #0x20] ldr r2, [sp, #0x10] ldr r1, [r1] ldr r1, [r1, #4] add r1, r2, r1 str r1, [r0, #0x28] ldr r1, [r0, #0x20] ldr r2, [sp, #0x14] ldr r1, [r1] ldr r1, [r1, #8] add r1, r2, r1 str r1, [r0, #0x2c] ldr r1, [r0, #0x20] ldr r2, [sp, #0x18] ldr r1, [r1] ldr r1, [r1, #0xc] add r1, r2, r1 str r1, [r0, #0x30] _0217f810: ldr ip, [r4, #0xfb4] ldr r3, [r4, #0xfb0] ldr r2, [r4, #0xfac] add r1, sp, #4 add r0, r4, #0xe40 str r2, [sp, #4] str r3, [sp, #8] str ip, [sp, #0xc] bl func_ov00_020b7ea4 add sp, sp, #0x40 ldmia sp!, {r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov38_0217f3a4 _0217f83c: .word data_027e0764 _0217f840: .word data_ov29_0217bca0 _0217f844: .word 0x0000059a _0217f848: .word 0xfffff333 _0217f84c: .word data_027e0e58 _0217f850: .word 0x00001003 _0217f854: .word 0x00000ccd .global func_ov38_0217f858 arm_func_start func_ov38_0217f858 func_ov38_0217f858: ; 0x0217f858 stmdb sp!, {r4, lr} mov r4, r0 ldr r0, [r4, #0xe3c] cmp r0, #0 beq _0217f878 add r0, r4, #0x23c add r0, r0, #0xc00 bl func_ov00_020b7e6c _0217f878: ldr r0, [r4, #0xe40] cmp r0, #0 ldmeqia sp!, {r4, pc} add r0, r4, #0xe40 bl func_ov00_020b7e6c ldmia sp!, {r4, pc} arm_func_end func_ov38_0217f858 .global func_ov38_0217f890 arm_func_start func_ov38_0217f890 func_ov38_0217f890: ; 0x0217f890 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #0xc mov r4, r0 mov r1, #0 add ip, r4, #0x1000 mov r2, r1 mov r3, #0x200 str r1, [ip, #0x70] bl func_ov38_0217d570 ldr r3, _0217f984 ; =data_027e0764 mov ip, #0 ldr r1, [r3] ldmib r3, {r0, r2} umull r6, r5, r2, r1 mla r5, r2, r0, r5 ldr r0, [r3, #0xc] ldr r7, [r3, #0x10] mla r5, r0, r1, r5 ldr r2, [r3, #0x14] adds r6, r7, r6 adc r5, r2, r5 mov r1, #0x1f umull r0, r2, r5, r1 str r6, [r3] mla r2, r5, ip, r2 mov r0, ip mla r2, r0, r1, r2 add r1, r2, #0x3c str r5, [r3, #4] add r2, r4, #0x1000 str r1, [r2, #0x54] ldr r5, [r3] ldmib r3, {r1, lr} umull r7, r6, lr, r5 mla r6, lr, r1, r6 ldr r1, [r3, #0xc] ldr lr, [r3, #0x10] mla r6, r1, r5, r6 ldr r5, [r3, #0x14] adds r7, lr, r7 mov r1, #0xb adc r6, r5, r6 umull lr, r5, r6, r1 mla r5, r6, ip, r5 mla r5, r0, r1, r5 str r7, [r3] str r6, [r3, #4] add r0, r5, #0x14 str r0, [r2, #0x58] str ip, [r2, #0x68] ldr r2, [r4, #0x18] ldr r1, [r4, #0x1c] ldr r0, [r4, #0x14] str r0, [r4, #0xfd8] str r2, [r4, #0xfdc] str r1, [r4, #0xfe0] ldr r0, [r4, #0xfdc] sub r0, r0, #0x800 str r0, [r4, #0xfdc] add sp, sp, #0xc ldmia sp!, {r4, r5, r6, r7, pc} .align 2, 0 arm_func_end func_ov38_0217f890 _0217f984: .word data_027e0764 .global func_ov38_0217f988 arm_func_start func_ov38_0217f988 func_ov38_0217f988: ; 0x0217f988 stmdb sp!, {r4, lr} mov r4, r0 bl func_ov38_0217d918 cmp r0, #0 ldmeqia sp!, {r4, pc} ldr r1, [r4, #0x60] add r0, r4, #0x2c8 mov r1, r1, lsl #0xa mov r1, r1, asr #0xc str r1, [r4, #0x60] ldr r2, [r4, #0x68] mov r1, #4 mov r2, r2, lsl #0xa mov r2, r2, asr #0xc str r2, [r4, #0x68] bl func_ov38_0217be60 ldmia sp!, {r4, pc} arm_func_end func_ov38_0217f988 .global func_ov38_0217f9cc arm_func_start func_ov38_0217f9cc func_ov38_0217f9cc: ; 0x0217f9cc stmdb sp!, {r4, lr} mov r4, r0 ldr r1, [r4, #0x2dc] cmp r1, #3 bne _0217fa24 ldr r0, _0217fa38 ; =data_027e0ffc ldr r1, _0217fa3c ; =0x00000435 add ip, r4, #0x1000 mov lr, #1 add r2, r4, #0x48 mov r3, #0 strb lr, [ip, #0xa8] bl func_ov00_020ceacc mov r0, r4 mov r1, #8 mov r2, #1 mov r3, #0x200 bl func_ov38_0217d570 add r0, r4, #0x1000 mov r1, #0x168 str r1, [r0, #0x64] ldmia sp!, {r4, pc} _0217fa24: mov r1, #7 mov r2, #0 mov r3, #0x200 bl func_ov38_0217d570 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov38_0217f9cc _0217fa38: .word data_027e0ffc _0217fa3c: .word 0x00000435 .global func_ov38_0217fa40 arm_func_start func_ov38_0217fa40 func_ov38_0217fa40: ; 0x0217fa40 stmdb sp!, {r3, r4, r5, lr} mov r4, r0 ldr r0, [r4, #0x2c4] add r0, r4, r0, lsl #2 ldr r0, [r0, #0x2b4] cmp r0, #8 bne _0217fa8c ldr r0, [r4, #0x2c4] add r1, r4, #0x1b4 add r0, r1, r0, lsl #7 add r0, r0, #0xc bl func_0202e58c cmp r0, #0 beq _0217fa8c mov r2, #0 mov r0, r4 mov r3, r2 mov r1, #7 bl func_ov38_0217d570 _0217fa8c: add r0, r4, #0x1000 ldr r1, [r0, #0x64] cmp r1, #0 subgt r1, r1, #1 strgt r1, [r0, #0x64] bgt _0217faf8 ldr r1, [r0, #0x74] cmp r1, #0 movgt r1, #6 movle r1, #3 str r1, [r0, #0x6c] add r0, r4, #0x1000 mov r1, #0 strb r1, [r0, #0xa8] bl func_ov38_0217dac0 mov r1, r4 mov r5, r0 bl func_ov14_0213ddd4 cmp r0, #0 blt _0217fae8 mov r0, r5 mov r1, r4 bl func_ov14_0213defc _0217fae8: add r0, r4, #0x2c8 mov r1, #2 bl func_ov38_0217be60 ldmia sp!, {r3, r4, r5, pc} _0217faf8: ldr r0, [r0, #0x48] cmp r0, #0xb800 bge _0217fb24 mov r0, r4 bl func_ov38_0217e688 cmp r0, #0 beq _0217fb24 add r0, r4, #0x2c8 mov r1, #3 bl func_ov38_0217be60 ldmia sp!, {r3, r4, r5, pc} _0217fb24: mov r0, r4 bl func_ov38_0217dad0 mov r1, #0 mov r0, r4 mov r2, r1 bl func_ov00_020c243c mov r0, r4 mov r1, #0x1a bl func_ov00_020c1fc8 ldmia sp!, {r3, r4, r5, pc} arm_func_end func_ov38_0217fa40 .global func_ov38_0217fb4c arm_func_start func_ov38_0217fb4c func_ov38_0217fb4c: ; 0x0217fb4c bx lr arm_func_end func_ov38_0217fb4c .global func_ov38_0217fb50 arm_func_start func_ov38_0217fb50 func_ov38_0217fb50: ; 0x0217fb50 stmdb sp!, {r4, lr} mov r4, r0 add r3, r4, #0x1000 mov r2, #1 strb r2, [r3, #0xa7] mov r1, #0xa str r1, [r3, #0x50] add r1, r4, #0x100 ldrsh ip, [r1, #0x20] ldrsh r1, [r3, #0x7e] cmp ip, r1 bgt _0217fbc4 mov r0, #0 strb r0, [r3, #0xa8] strb r0, [r3, #0xab] ldr r0, [r3, #0x74] mov r1, #9 cmp r0, #0 strgtb r2, [r3, #0xaa] mov r0, r4 mov r2, #1 mov r3, #0x200 bl func_ov38_0217d570 ldr r0, _0217fc14 ; =data_027e0ffc ldr r1, _0217fc18 ; =0x00000437 add r2, r4, #0x48 mov r3, #0 bl func_ov00_020ceacc ldmia sp!, {r4, pc} _0217fbc4: ldr r1, [r4, #0x2c4] add r1, r4, r1, lsl #2 ldr r1, [r1, #0x2b4] cmp r1, #8 beq _0217fbe8 mov r1, #8 mov r3, #0x200 bl func_ov38_0217d570 b _0217fbfc _0217fbe8: ldr r0, [r4, #0x2c4] add r1, r4, #0x1b4 add r0, r1, r0, lsl #7 mov r1, #0 bl func_ov00_020c0e24 _0217fbfc: ldr r0, _0217fc14 ; =data_027e0ffc ldr r1, _0217fc1c ; =0x00000436 add r2, r4, #0x48 mov r3, #0 bl func_ov00_020ceacc ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov38_0217fb50 _0217fc14: .word data_027e0ffc _0217fc18: .word 0x00000437 _0217fc1c: .word 0x00000436 .global func_ov38_0217fc20 arm_func_start func_ov38_0217fc20 func_ov38_0217fc20: ; 0x0217fc20 stmdb sp!, {r4, r5, r6, lr} mov r4, r0 ldr r1, [r4, #0x2c4] add r1, r4, r1, lsl #2 ldr r1, [r1, #0x2b4] cmp r1, #8 beq _0217fc50 cmp r1, #9 beq _0217fcc0 cmp r1, #0xa beq _0217fd08 ldmia sp!, {r4, r5, r6, pc} _0217fc50: ldr r0, [r4, #0x2c4] add r1, r4, #0x1b4 add r0, r1, r0, lsl #7 add r0, r0, #0xc bl func_0202e58c cmp r0, #0 beq _0217fc7c ldr r1, [r4, #0x2dc] add r0, r4, #0x2c8 bl func_ov38_0217be60 ldmia sp!, {r4, r5, r6, pc} _0217fc7c: add r3, r4, #0x1000 ldr r0, [r3, #0x50] cmp r0, #0 subne r0, r0, #1 strne r0, [r3, #0x50] bne _0217fcb4 mov r1, #0 mov r0, r4 mov r2, r1 strb r1, [r3, #0xa7] bl func_ov00_020c243c mov r0, r4 mov r1, #0x1a bl func_ov00_020c1fc8 _0217fcb4: mov r0, r4 bl func_ov38_0217dad0 ldmia sp!, {r4, r5, r6, pc} _0217fcc0: ldr r0, [r4, #0x2c4] add r1, r4, #0x1b4 add r0, r1, r0, lsl #7 add r0, r0, #0xc bl func_0202e58c cmp r0, #0 beq _0217fcfc mov r0, r4 add ip, r4, #0x1000 mov r5, #0x78 mov r1, #0xa mov r2, #0 mov r3, #0x200 str r5, [ip, #0x54] bl func_ov38_0217d570 _0217fcfc: mov r0, r4 bl func_ov38_0217dcdc ldmia sp!, {r4, r5, r6, pc} _0217fd08: add r1, r4, #0x1000 ldr r2, [r1, #0x54] cmp r2, #0 bne _0217fdd0 ldrsh r2, [r1, #0x7e] add r0, r4, #0x100 strh r2, [r0, #0x20] ldrsh r0, [r1, #0x7e] sub r0, r0, #0x3c strh r0, [r1, #0x7e] ldr r0, [r1, #0x74] cmp r0, #0 cmpne r0, #2 bne _0217fd50 add r0, r4, #0x2c8 mov r1, #6 bl func_ov38_0217be60 b _0217fdb8 _0217fd50: ldr r2, _0217fde0 ; =data_027e0764 mov r1, #0 ldr r3, [r2] ldmib r2, {r0, ip} umull r5, lr, ip, r3 mla lr, ip, r0, lr ldr r0, [r2, #0xc] ldr ip, [r2, #0x10] mla lr, r0, r3, lr ldr r0, [r2, #0x14] adds r6, ip, r5 adc r5, r0, lr mov r0, #0x64 umull r3, ip, r5, r0 mla ip, r5, r1, ip mla ip, r1, r0, ip str r6, [r2] str r5, [r2, #4] cmp ip, #0x32 add r0, r4, #0x2c8 ble _0217fdb0 mov r1, #6 bl func_ov38_0217be60 b _0217fdb8 _0217fdb0: mov r1, #7 bl func_ov38_0217be60 _0217fdb8: add r0, r4, #0x1000 ldr r1, [r0, #0x74] cmp r1, #6 addlt r1, r1, #1 strlt r1, [r0, #0x74] ldmia sp!, {r4, r5, r6, pc} _0217fdd0: sub r2, r2, #1 str r2, [r1, #0x54] bl func_ov38_0217dcdc ldmia sp!, {r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov38_0217fc20 _0217fde0: .word data_027e0764 .global func_ov38_0217fde4 arm_func_start func_ov38_0217fde4 func_ov38_0217fde4: ; 0x0217fde4 add r0, r0, #0x1000 mov r1, #0 strb r1, [r0, #0xa7] bx lr arm_func_end func_ov38_0217fde4 .global func_ov38_0217fdf4 arm_func_start func_ov38_0217fdf4 func_ov38_0217fdf4: ; 0x0217fdf4 stmdb sp!, {r3, r4, lr} sub sp, sp, #0xc mov r4, r0 add ip, r4, #0x1000 mov r2, #1 mov r1, #0xc mov r3, #0x200 str r2, [ip, #0x70] bl func_ov38_0217d570 add r1, r4, #0x1000 mov r2, #0 ldr r0, _0217fe98 ; =0x00000133 str r2, [r1, #0x38] str r0, [r1, #0x40] mov r0, #0x800 str r0, [r1, #0x3c] ldr ip, [r4, #0x18] ldr r3, [r4, #0x1c] ldr r2, [r4, #0x14] mov r0, r4 str r2, [r4, #0xfd8] str ip, [r4, #0xfdc] str r3, [r4, #0xfe0] ldr r2, [r4, #0xfdc] sub r2, r2, #0x3000 str r2, [r4, #0xfdc] ldrsh r2, [r4, #0x12] strh r2, [r1, #0x7c] bl func_ov38_0218307c add r1, r4, #4 add r0, r4, #0x1000 mov r3, #1 ldr r2, _0217fe9c ; =data_027e0f6c strb r3, [r0, #0xa5] ldr r0, [r2] add r1, r1, #0x1000 bl func_ov00_02093af0 mov r0, r4 bl func_ov38_021840f8 add sp, sp, #0xc ldmia sp!, {r3, r4, pc} .align 2, 0 arm_func_end func_ov38_0217fdf4 _0217fe98: .word 0x00000133 _0217fe9c: .word data_027e0f6c .global func_ov38_0217fea0 arm_func_start func_ov38_0217fea0 func_ov38_0217fea0: ; 0x0217fea0 stmdb sp!, {r4, r5, lr} sub sp, sp, #0x1c mov r4, r0 ldr r0, [r4, #0x2c4] add r0, r4, r0, lsl #2 ldr r0, [r0, #0x2b4] cmp r0, #0xc beq _0217fecc cmp r0, #0xe beq _0217ff94 b _02180074 _0217fecc: ldr r0, [r4, #0x2c4] add r1, r4, #0x1b4 add r0, r1, r0, lsl #7 add r0, r0, #0xc bl func_0202e58c cmp r0, #0 beq _0217ff14 mov r0, r4 mov r1, #0xe mov r2, #1 mov r3, #0x200 bl func_ov38_0217d570 ldr r0, _021800c0 ; =data_027e0ffc ldr r1, _021800c4 ; =0x0000043a add r2, r4, #0x48 mov r3, #0 bl func_ov00_020ceacc b _02180074 _0217ff14: ldr r0, [r4, #0x2c4] add r1, r4, #0x1b4 add r0, r1, r0, lsl #7 add r0, r0, #0xc mov r1, #0x1d000 bl func_0202e310 cmp r0, #0 beq _02180074 add r0, r4, #0x1000 mov r2, #0 ldr r1, _021800c8 ; =0x00000171 str r2, [r0, #0x38] str r1, [r0, #0x40] mov r1, #0x800 str r1, [r0, #0x3c] ldr r3, [r4, #0x18] ldr r2, [r4, #0x1c] ldr r1, [r4, #0x14] add r0, r4, #0x48 str r1, [r4, #0xfd8] str r3, [r4, #0xfdc] str r2, [r4, #0xfe0] ldr r1, [r4, #0xfdc] add r1, r1, #0x7000 str r1, [r4, #0xfdc] bl func_ov38_02185690 ldr r0, _021800c0 ; =data_027e0ffc ldr r1, _021800cc ; =0x00000439 add r2, r4, #0x48 mov r3, #0 bl func_ov00_020ceacc b _02180074 _0217ff94: ldr r0, [r4, #0x2c4] add r1, r4, #0x1b4 add r0, r1, r0, lsl #7 add r0, r0, #0xc bl func_0202e58c cmp r0, #0 beq _0217ffbc add r0, r4, #0x2c8 mov r1, #8 bl func_ov38_0217be60 _0217ffbc: ldr r0, [r4, #0x2c4] add r1, r4, #0x1b4 add r0, r1, r0, lsl #7 add r0, r0, #0xc mov r1, #0x2b000 bl func_0202e310 cmp r0, #0 beq _0218001c ldr r1, _021800d0 ; =0x00000266 add r0, r4, #0x1000 str r1, [r0, #0x40] mov r1, #0 str r1, [r0, #0x38] mov r1, #0x800 str r1, [r0, #0x3c] ldr r2, [r4, #0x18] ldr r1, [r4, #0x1c] ldr r0, [r4, #0x14] str r0, [r4, #0xfd8] str r2, [r4, #0xfdc] str r1, [r4, #0xfe0] ldr r0, [r4, #0xfdc] add r0, r0, #0x5800 str r0, [r4, #0xfdc] _0218001c: ldr r0, [r4, #0x2c4] add r1, r4, #0x1b4 add r5, r1, r0, lsl #7 add r0, r5, #0xc mov r1, #0x34000 bl func_0202e310 cmp r0, #0 beq _0218004c add r0, r4, #0x1000 ldr r1, [r0, #0x70] mov r0, r4 bl func_ov38_021840c8 _0218004c: add r0, r5, #0xc mov r1, #0x37000 bl func_0202e310 cmp r0, #0 beq _02180074 ldr r0, _021800c0 ; =data_027e0ffc ldr r1, _021800d4 ; =0x0000043b add r2, r4, #0x48 mov r3, #0 bl func_ov00_020ceacc _02180074: add r1, r4, #0x1000 add r0, r4, #0x38 ldr r1, [r1, #0x3c] add r0, r0, #0x1000 mov r2, #0x66 bl func_0202b0f4 mov r0, #0x29 add r1, r4, #0x3d8 str r0, [sp] add r0, r4, #0x1000 ldr r2, [r0, #0x40] ldr r3, [r0, #0x38] add r0, r4, #0x48 add r1, r1, #0xc00 bl func_ov38_0217ca70 mov r0, r4 bl func_ov38_0217ddc8 add sp, sp, #0x1c ldmia sp!, {r4, r5, pc} .align 2, 0 arm_func_end func_ov38_0217fea0 _021800c0: .word data_027e0ffc _021800c4: .word 0x0000043a _021800c8: .word 0x00000171 _021800cc: .word 0x00000439 _021800d0: .word 0x00000266 _021800d4: .word 0x0000043b .global func_ov38_021800d8 arm_func_start func_ov38_021800d8 func_ov38_021800d8: ; 0x021800d8 stmdb sp!, {r3, r4, lr} sub sp, sp, #0xc mov r4, r0 add ip, r4, #0x1000 mov lr, #2 mov r1, #0xc mov r2, #1 mov r3, #0x200 str lr, [ip, #0x70] bl func_ov38_0217d570 add r1, r4, #0x1000 mov r2, #0 ldr r0, _02180164 ; =0x00000133 str r2, [r1, #0x38] str r0, [r1, #0x40] mov r0, #0x800 str r0, [r1, #0x3c] ldr ip, [r4, #0x18] ldr r3, [r4, #0x1c] ldr r2, [r4, #0x14] mov r0, r4 str r2, [r4, #0xfd8] str ip, [r4, #0xfdc] str r3, [r4, #0xfe0] ldr r2, [r4, #0xfdc] sub r2, r2, #0x3000 str r2, [r4, #0xfdc] ldrsh r2, [r4, #0x12] strh r2, [r1, #0x7c] bl func_ov38_0218307c add r0, r4, #0x1000 mov r1, #1 strb r1, [r0, #0xa5] add sp, sp, #0xc ldmia sp!, {r3, r4, pc} .align 2, 0 arm_func_end func_ov38_021800d8 _02180164: .word 0x00000133 .global func_ov38_02180168 arm_func_start func_ov38_02180168 func_ov38_02180168: ; 0x02180168 stmdb sp!, {r4, r5, lr} sub sp, sp, #0x1c mov r5, r0 ldr r0, [r5, #0x2c4] add r0, r5, r0, lsl #2 ldr r0, [r0, #0x2b4] cmp r0, #0xc beq _0218019c cmp r0, #0xd beq _02180250 cmp r0, #0xe beq _02180298 b _02180360 _0218019c: ldr r0, [r5, #0x2c4] add r1, r5, #0x1b4 add r0, r1, r0, lsl #7 add r0, r0, #0xc bl func_0202e58c cmp r0, #0 beq _021801d0 mov r0, r5 mov r1, #0xd mov r2, #1 mov r3, #0x200 bl func_ov38_0217d570 b _02180360 _021801d0: ldr r0, [r5, #0x2c4] add r1, r5, #0x1b4 add r0, r1, r0, lsl #7 add r0, r0, #0xc mov r1, #0x1d000 bl func_0202e310 cmp r0, #0 beq _02180360 add r0, r5, #0x1000 mov r2, #0 ldr r1, _021803ac ; =0x00000171 str r2, [r0, #0x38] str r1, [r0, #0x40] mov r1, #0x800 str r1, [r0, #0x3c] ldr r3, [r5, #0x18] ldr r2, [r5, #0x1c] ldr r1, [r5, #0x14] add r0, r5, #0x48 str r1, [r5, #0xfd8] str r3, [r5, #0xfdc] str r2, [r5, #0xfe0] ldr r1, [r5, #0xfdc] add r1, r1, #0x10000 str r1, [r5, #0xfdc] bl func_ov38_02185690 ldr r0, _021803b0 ; =data_027e0ffc ldr r1, _021803b4 ; =0x00000439 add r2, r5, #0x48 mov r3, #0 bl func_ov00_020ceacc b _02180360 _02180250: ldr r0, [r5, #0x2c4] add r1, r5, #0x1b4 add r0, r1, r0, lsl #7 add r0, r0, #0xc bl func_0202e58c cmp r0, #0 beq _02180360 mov r0, r5 mov r1, #0xe mov r2, #1 mov r3, #0x200 bl func_ov38_0217d570 ldr r0, _021803b0 ; =data_027e0ffc ldr r1, _021803b8 ; =0x0000043a add r2, r5, #0x48 mov r3, #0 bl func_ov00_020ceacc b _02180360 _02180298: ldr r0, [r5, #0x2c4] add r1, r5, #0x1b4 add r4, r1, r0, lsl #7 add r0, r4, #0xc bl func_0202e58c cmp r0, #0 beq _021802c0 add r0, r5, #0x2c8 mov r1, #9 bl func_ov38_0217be60 _021802c0: add r0, r4, #0xc mov r1, #0x2b000 bl func_0202e310 cmp r0, #0 beq _02180314 ldr r1, _021803bc ; =0x00000266 add r0, r5, #0x1000 str r1, [r0, #0x40] mov r1, #0 str r1, [r0, #0x38] mov r1, #0x800 str r1, [r0, #0x3c] ldr r2, [r5, #0x18] ldr r1, [r5, #0x1c] ldr r0, [r5, #0x14] str r0, [r5, #0xfd8] str r2, [r5, #0xfdc] str r1, [r5, #0xfe0] ldr r0, [r5, #0xfdc] add r0, r0, #0xe800 str r0, [r5, #0xfdc] _02180314: add r0, r4, #0xc mov r1, #0x34000 bl func_0202e310 cmp r0, #0 beq _02180338 add r0, r5, #0x1000 ldr r1, [r0, #0x70] mov r0, r5 bl func_ov38_021840c8 _02180338: add r0, r4, #0xc mov r1, #0x37000 bl func_0202e310 cmp r0, #0 beq _02180360 ldr r0, _021803b0 ; =data_027e0ffc ldr r1, _021803c0 ; =0x0000043b add r2, r5, #0x48 mov r3, #0 bl func_ov00_020ceacc _02180360: add r1, r5, #0x1000 add r0, r5, #0x38 ldr r1, [r1, #0x3c] add r0, r0, #0x1000 mov r2, #0x66 bl func_0202b0f4 mov r0, #0x29 add r1, r5, #0x3d8 str r0, [sp] add r0, r5, #0x1000 ldr r2, [r0, #0x40] ldr r3, [r0, #0x38] add r0, r5, #0x48 add r1, r1, #0xc00 bl func_ov38_0217ca70 mov r0, r5 bl func_ov38_0217ddc8 add sp, sp, #0x1c ldmia sp!, {r4, r5, pc} .align 2, 0 arm_func_end func_ov38_02180168 _021803ac: .word 0x00000171 _021803b0: .word data_027e0ffc _021803b4: .word 0x00000439 _021803b8: .word 0x0000043a _021803bc: .word 0x00000266 _021803c0: .word 0x0000043b .global func_ov38_021803c4 arm_func_start func_ov38_021803c4 func_ov38_021803c4: ; 0x021803c4 stmdb sp!, {r4, r5, r6, lr} ldr r3, _02180444 ; =data_027e0d0c mov ip, #0 ldr r1, [r3] mov r2, ip str r1, [r0, #0x60] ldr r4, [r3, #4] ldr r1, _02180448 ; =data_027e0764 str r4, [r0, #0x64] ldr r3, [r3, #8] mov ip, ip, lsl #0x4 str r3, [r0, #0x68] ldr lr, [r1] ldmib r1, {r3, r4} umull r6, r5, r4, lr mla r5, r4, r3, r5 ldr r3, [r1, #0xc] ldr r4, [r1, #0x10] mla r5, r3, lr, r5 ldr r3, [r1, #0x14] adds r6, r4, r6 adc r4, r3, r5 str r6, [r1] orr ip, ip, r4, lsr #28 str r4, [r1, #4] add lr, ip, #0x1e add ip, r0, #0x1000 mov r3, r2 mov r1, #1 str lr, [ip, #0x54] bl func_ov38_0217d570 ldmia sp!, {r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov38_021803c4 _02180444: .word data_027e0d0c _02180448: .word data_027e0764 .global func_ov38_0218044c arm_func_start func_ov38_0218044c func_ov38_0218044c: ; 0x0218044c stmdb sp!, {r3, r4, r5, lr} mov r4, r0 add r1, r4, #0x1000 ldr r2, [r1, #0x78] cmp r2, #2 bne _021804e0 mov r2, #0 strb r2, [r1, #0xaa] ldr r2, [r1, #0x54] cmp r2, #0 bne _021804d8 mov r1, #1 bl func_ov38_02184574 cmp r0, #0 beq _021804e0 ldr r0, _02180504 ; =data_027e0764 mov r1, #0 ldr r3, [r0] ldmib r0, {r2, ip} umull r5, lr, ip, r3 mla lr, ip, r2, lr ldr r2, [r0, #0xc] ldr ip, [r0, #0x10] mla lr, r2, r3, lr ldr r2, [r0, #0x14] adds r3, ip, r5 adc r2, r2, lr mov r1, r1, lsl #0x4 str r3, [r0] orr r1, r1, r2, lsr #28 str r2, [r0, #4] add r1, r1, #0x1e add r0, r4, #0x1000 str r1, [r0, #0x54] b _021804e0 _021804d8: sub r0, r2, #1 str r0, [r1, #0x54] _021804e0: add r2, r4, #0x3d8 mov ip, #0x800 ldr r3, _02180508 ; =0x00000b33 add r0, r4, #0x48 add r1, r4, #0x60 add r2, r2, #0xc00 str ip, [sp] bl func_ov38_0217cb2c ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov38_0218044c _02180504: .word data_027e0764 _02180508: .word 0x00000b33 .global func_ov38_0218050c arm_func_start func_ov38_0218050c func_ov38_0218050c: ; 0x0218050c stmdb sp!, {r4, r5, r6, r7, r8, lr} ldr r3, _021805d4 ; =data_027e0d0c mov r1, #0 ldr r4, [r3] mov r2, r1 str r4, [r0, #0x60] ldr r4, [r3, #4] add ip, r0, #0x1000 str r4, [r0, #0x64] ldr r4, [r3, #8] ldr r3, _021805d8 ; =data_027e0764 str r4, [r0, #0x68] str r2, [ip, #0x4c] ldr r5, [r3] ldmib r3, {r4, r6} umull r8, r7, r6, r5 mla r7, r6, r4, r7 ldr r4, [r3, #0xc] ldr r6, [r3, #0x10] mla r7, r4, r5, r7 ldr r4, [r3, #0x14] adds r6, r6, r8 adc r5, r4, r7 mov r4, r1, lsl #0x1 str r6, [r3] orr r4, r4, r5, lsr #31 str r5, [r3, #4] add r4, r4, #2 str r4, [ip, #0x68] ldr r5, [r3, #8] ldmia r3, {r4, lr} umull r7, r6, r5, r4 mla r6, r5, lr, r6 ldr lr, [r3, #0xc] ldr r8, [r3, #0x10] mla r6, lr, r4, r6 ldr r5, [r3, #0x14] adds r7, r8, r7 adc r4, r5, r6 mov r1, r1, lsl #0x4 str r7, [r3] orr r1, r1, r4, lsr #28 str r4, [r3, #4] add r1, r1, #0x1e str r1, [ip, #0x54] mov r3, r2 mov r1, #1 str r2, [ip, #0x58] bl func_ov38_0217d570 ldmia sp!, {r4, r5, r6, r7, r8, pc} .align 2, 0 arm_func_end func_ov38_0218050c _021805d4: .word data_027e0d0c _021805d8: .word data_027e0764 .global func_ov38_021805dc arm_func_start func_ov38_021805dc func_ov38_021805dc: ; 0x021805dc stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr} sub sp, sp, #0x40 mov r4, r0 ldr r0, [r4, #0x2c4] add r0, r4, r0, lsl #2 ldr r0, [r0, #0x2b4] cmp r0, #4 bne _0218091c ldr r0, [r4, #0x2c4] add r1, r4, #0x1b4 add r0, r1, r0, lsl #7 add r0, r0, #0xc bl func_0202e544 cmp r0, #0 beq _02180784 add r0, r4, #0x1000 ldr r1, [r0, #0x68] subs r1, r1, #1 str r1, [r0, #0x68] bne _02180a20 ldr r1, [r0, #0x4c] mov r2, #0 cmp r1, #1 addlt r1, r1, #1 movge r1, #0 str r1, [r0, #0x4c] mov r0, r4 mov r3, r2 mov r1, #1 bl func_ov38_0217d570 ldr r0, [r4, #0x2c4] mov r1, #0x1000 add r0, r4, r0, lsl #7 ldr r8, _02180a44 ; =data_027e0764 str r1, [r0, #0x1c4] ldr r6, [r8] ldmib r8, {r0, r2} umull r5, r7, r2, r6 ldr ip, [r8, #0x10] mla r7, r2, r0, r7 ldr r1, [r8, #0xc] ldr r3, [r8, #0x14] mla r7, r1, r6, r7 adds r5, ip, r5 adc lr, r3, r7 mov r6, #0x64 umull r0, sb, lr, r6 mov r7, #0 mla sb, lr, r7, sb mov r0, r7 mla sb, r0, r6, sb stmia r8, {r5, lr} cmp sb, #0x1e ble _0218072c umull sb, r6, r2, r5 mla r6, r2, lr, r6 mla r6, r1, r5, r6 adds sb, ip, sb adc r5, r3, r6 mov r1, #0x1f umull r2, r3, r5, r1 mla r3, r5, r7, r3 mla r3, r0, r1, r3 str sb, [r8] str r5, [r8, #4] add r2, r3, #0x3c add r1, r4, #0x1000 str r2, [r1, #0x54] ldr r3, [r8] ldmib r8, {r2, r5} umull r7, r6, r5, r3 mla r6, r5, r2, r6 ldr r2, [r8, #0xc] ldr ip, [r8, #0x10] mla r6, r2, r3, r6 ldr r5, [r8, #0x14] adds r7, ip, r7 adc r2, r5, r6 mov r0, r0, lsl #0x1 str r7, [r8] orr r0, r0, r2, lsr #31 str r2, [r8, #4] add r0, r0, #2 str r0, [r1, #0x68] _0218072c: ldr r2, _02180a44 ; =data_027e0764 mov r1, #0 ldr r3, [r2] ldmib r2, {r0, r5} umull r7, r6, r5, r3 mla r6, r5, r0, r6 ldr r0, [r2, #0xc] ldr r5, [r2, #0x10] mla r6, r0, r3, r6 ldr r0, [r2, #0x14] adds r7, r5, r7 adc r6, r0, r6 mov r0, #0x3d umull r3, r5, r6, r0 mla r5, r6, r1, r5 mla r5, r1, r0, r5 str r7, [r2] str r6, [r2, #4] add r1, r5, #0x3c add r0, r4, #0x1000 str r1, [r0, #0x58] b _02180a20 _02180784: ldr r0, [r4, #0x2c4] add r1, r4, #0x1b4 add r0, r1, r0, lsl #7 add r0, r0, #0xc mov r1, #0xf000 bl func_0202e310 cmp r0, #0 beq _02180a20 mov r0, r4 bl func_ov38_02184120 ldr r1, _02180a48 ; =data_027e0f94 mov r5, r0 ldr r2, [r1] ldr r0, [r1, #4] str r2, [sp, #0x1c] str r0, [sp, #0x20] ldr r1, [r1, #8] add r0, sp, #0x1c str r1, [sp, #0x24] ldr r2, [r4, #0x14] add r1, sp, #0x10 str r2, [sp, #0x10] ldr r3, [r4, #0x18] add r2, sp, #0x34 str r3, [sp, #0x14] ldr r3, [r4, #0x1c] str r3, [sp, #0x18] bl func_01ff9bf8 mov r1, #0 add r0, sp, #0x34 str r1, [sp, #0x38] bl func_01ff9cec mov r6, r0 cmp r6, #0xb800 movgt r6, #0xb800 bgt _0218081c cmp r6, #0x7000 movlt r6, #0x7000 _0218081c: add r0, sp, #0x34 bl func_01fffb4c cmp r0, #0 bne _02180840 mov r1, #0 mov r0, #0x1000 str r1, [sp, #0x34] str r1, [sp, #0x38] str r0, [sp, #0x3c] _02180840: add r0, sp, #0x34 mov r1, r6 bl func_01fffbec ldr r1, [r4, #0x14] add r0, sp, #0x34 str r1, [sp, #4] ldr r2, [r4, #0x18] add r1, sp, #4 str r2, [sp, #8] ldr r3, [r4, #0x1c] mov r2, r0 str r3, [sp, #0xc] bl func_01ff9bc4 mov r0, #0x12000 str r0, [sp, #0x38] add r0, r4, #0x1000 ldr r1, [r0, #0x68] ldr r0, [r0, #0x4c] rsb r3, r1, #3 cmp r0, #0 beq _021808a0 cmp r0, #1 beq _021808b8 b _021808cc _021808a0: ldr r2, _02180a4c ; =data_ov38_02188908 add r1, sp, #0x34 mov r0, r5 add r2, r2, r3, lsl #4 bl func_ov29_02170850 b _021808cc _021808b8: ldr r2, _02180a50 ; =data_ov38_02188938 add r1, sp, #0x34 mov r0, r5 add r2, r2, r3, lsl #4 bl func_ov29_02170850 _021808cc: ldr r1, _02180a54 ; =0xfffffe66 mov r2, #0 mov r0, r4 str r2, [sp, #0x28] str r2, [sp, #0x2c] str r1, [sp, #0x30] bl func_ov00_020c2974 mov r1, r0 add r0, sp, #0x28 bl func_ov00_020a61ac add r1, r4, #0x60 add r0, sp, #0x28 mov r2, r1 bl func_01ff9bc4 ldr r0, _02180a58 ; =data_027e0ffc ldr r1, _02180a5c ; =0x00000432 add r2, r4, #0x48 mov r3, #0 bl func_ov00_020ceacc b _02180a20 _0218091c: add r0, r4, #0x1000 ldr r1, [r0, #0x78] cmp r1, #4 bne _02180a20 mov r1, #0 strb r1, [r0, #0xaa] ldr r1, [r0, #0x54] cmp r1, #0 bne _02180a18 ldr r0, [r0, #0x74] mov r1, #1 cmp r0, #3 add r0, r4, #0x1000 ldr r0, [r0, #0x68] movgt r1, #2 cmp r0, #0 beq _021809cc mov r0, r4 bl func_ov38_02184574 cmp r0, #0 beq _021809cc ldr r0, _02180a44 ; =data_027e0764 mov r1, #0 ldr r3, [r0] ldmib r0, {r2, r5} umull r7, r6, r5, r3 mla r6, r5, r2, r6 ldr r2, [r0, #0xc] ldr r5, [r0, #0x10] mla r6, r2, r3, r6 ldr r2, [r0, #0x14] adds r3, r5, r7 adc r2, r2, r6 mov r1, r1, lsl #0x4 str r3, [r0] orr r1, r1, r2, lsr #28 str r2, [r0, #4] add r1, r1, #0x1e add r0, r4, #0x1000 str r1, [r0, #0x54] ldr r1, [r0, #0x68] sub r1, r1, #1 str r1, [r0, #0x68] b _02180a20 _021809cc: add r0, r4, #0x1000 ldr r1, [r0, #0x58] cmp r1, #0 subne r1, r1, #1 strne r1, [r0, #0x58] bne _02180a20 mov r0, r4 mov r1, #4 mov r2, #0 mov r3, #0x200 bl func_ov38_0217d570 ldr r0, [r4, #0x2c4] mov r1, #0x1800 add r0, r4, r0, lsl #7 str r1, [r0, #0x1c4] add r0, r4, #0x1000 mov r1, #3 str r1, [r0, #0x68] b _02180a20 _02180a18: sub r1, r1, #1 str r1, [r0, #0x54] _02180a20: add r2, r4, #0x3d8 ldr r3, _02180a60 ; =0x00000b33 add r0, r4, #0x48 add r1, r4, #0x60 add r2, r2, #0xc00 str r3, [sp] bl func_ov38_0217cb2c add sp, sp, #0x40 ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc} .align 2, 0 arm_func_end func_ov38_021805dc _02180a44: .word data_027e0764 _02180a48: .word data_027e0f94 _02180a4c: .word data_ov38_02188908 _02180a50: .word data_ov38_02188938 _02180a54: .word 0xfffffe66 _02180a58: .word data_027e0ffc _02180a5c: .word 0x00000432 _02180a60: .word 0x00000b33 .global func_ov38_02180a64 arm_func_start func_ov38_02180a64 func_ov38_02180a64: ; 0x02180a64 stmdb sp!, {r3, r4, lr} sub sp, sp, #0x24 ldr r1, _02180bb4 ; =data_027e0d0c mov r4, r0 ldr r2, [r1] add r0, r4, #0x1000 str r2, [r4, #0x60] ldr r3, [r1, #4] mov r2, #0x1e str r3, [r4, #0x64] ldr r3, [r1, #8] mov r1, #0x12 str r3, [r4, #0x68] str r2, [r0, #0x54] str r1, [r0, #0x58] mov r2, #0 strb r2, [r0, #0xa3] ldr r1, _02180bb8 ; =0x00000171 strb r2, [r0, #0xa4] str r1, [r0, #0x40] str r2, [r0, #0x38] mov r1, #0x800 str r1, [r0, #0x3c] ldrsh r1, [r4, #0x12] strh r1, [r0, #0x7c] ldr r0, [r0, #0x70] cmp r0, #1 beq _02180ae0 cmp r0, #2 beq _02180b08 b _02180b30 _02180ae0: ldr r2, [r4, #0x18] ldr r1, [r4, #0x1c] ldr r0, [r4, #0x14] str r0, [r4, #0xfd8] str r2, [r4, #0xfdc] str r1, [r4, #0xfe0] ldr r0, [r4, #0xfdc] add r0, r0, #0x5800 str r0, [r4, #0xfdc] b _02180b48 _02180b08: ldr r2, [r4, #0x18] ldr r1, [r4, #0x1c] ldr r0, [r4, #0x14] str r0, [r4, #0xfd8] str r2, [r4, #0xfdc] str r1, [r4, #0xfe0] ldr r0, [r4, #0xfdc] add r0, r0, #0xe800 str r0, [r4, #0xfdc] b _02180b48 _02180b30: ldr r2, [r4, #0x4c] ldr r1, [r4, #0x50] ldr r0, [r4, #0x48] str r0, [r4, #0xfd8] str r2, [r4, #0xfdc] str r1, [r4, #0xfe0] _02180b48: ldr r1, [r4, #0xfdc] add r0, r4, #0x1000 add r1, r1, #0x6000 str r1, [r4, #0xfdc] mov r1, #0 strh r1, [r0, #0x82] ldr r1, [r0, #0x74] cmp r1, #2 ble _02180b74 movlt r1, #1 strltb r1, [r0, #0xaa] _02180b74: mov r0, r4 mov r1, #0xf mov r2, #1 mov r3, #0x200 bl func_ov38_0217d570 ldr r0, _02180bbc ; =data_027e0ffc add r2, r4, #0x48 mov r1, #0x440 mov r3, #0 bl func_ov00_020ceacc ldr r0, [r4, #0x2c4] mov r1, #0x1000 add r0, r4, r0, lsl #7 str r1, [r0, #0x1c4] add sp, sp, #0x24 ldmia sp!, {r3, r4, pc} .align 2, 0 arm_func_end func_ov38_02180a64 _02180bb4: .word data_027e0d0c _02180bb8: .word 0x00000171 _02180bbc: .word data_027e0ffc .global func_ov38_02180bc0 arm_func_start func_ov38_02180bc0 func_ov38_02180bc0: ; 0x02180bc0 stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #0x10 mov r4, r0 ldr r0, [r4, #0x2c4] add r0, r4, r0, lsl #2 ldr r0, [r0, #0x2b4] cmp r0, #0xf beq _02180be8 cmp r0, #0x10 b _02180c18 _02180be8: ldr r0, [r4, #0x2c4] add r1, r4, #0x1b4 add r0, r1, r0, lsl #7 add r0, r0, #0xc bl func_0202e58c cmp r0, #0 beq _02180c18 mov r2, #0 mov r0, r4 mov r3, r2 mov r1, #0x10 bl func_ov38_0217d570 _02180c18: add r0, r4, #0x1000 ldrb r1, [r0, #0xa3] cmp r1, #0 bne _02180c80 ldr r1, [r0, #0x54] subs r1, r1, #1 str r1, [r0, #0x54] bne _02180c80 mov r2, #1 strb r2, [r0, #0xa3] mov r1, #0 str r1, [r0, #0x38] rsb r1, r2, #0x134 str r1, [r0, #0x40] mov r1, #0x800 str r1, [r0, #0x3c] ldr r2, [r4, #0x18] ldr r1, [r4, #0x1c] ldr r0, [r4, #0x14] str r0, [r4, #0xfd8] str r2, [r4, #0xfdc] str r1, [r4, #0xfe0] ldr r0, [r4, #0xfdc] sub r0, r0, #0xa000 str r0, [r4, #0xfdc] b _02180cd8 _02180c80: add r2, r4, #0x1000 ldrb r0, [r2, #0xa3] cmp r0, #0 beq _02180cd8 ldr r0, [r4, #0xfdc] ldr r1, [r4, #0x4c] add r0, r0, #0x9a add r0, r0, #0x100 cmp r1, r0 bge _02180cd8 ldr r0, [r2, #0x74] cmp r0, #5 bge _02180ccc mov r3, #6 add r0, r4, #0x2c8 mov r1, #2 str r3, [r2, #0x6c] bl func_ov38_0217be60 b _02180cd8 _02180ccc: add r0, r4, #0x2c8 mov r1, #0xf bl func_ov38_0217be60 _02180cd8: add r0, r4, #0x1000 ldrb r1, [r0, #0xa4] cmp r1, #0 bne _02180d1c ldr r1, [r0, #0x58] subs r1, r1, #1 str r1, [r0, #0x58] bne _02180d1c mov r1, #1 ldr r5, _02180dac ; =data_ov38_02189224 strb r1, [r0, #0xa4] mov r6, #0 _02180d08: ldr r0, [r5, r6, lsl #2] bl func_ov29_02174cc8 add r6, r6, #1 cmp r6, #5 blt _02180d08 _02180d1c: add r1, r4, #0x1000 add r0, r4, #0x38 ldr r1, [r1, #0x3c] add r0, r0, #0x1000 mov r2, #0x66 bl func_0202b0f4 mov r0, #0x29 add r1, r4, #0x3d8 str r0, [sp] add r0, r4, #0x1000 ldr r2, [r0, #0x40] ldr r3, [r0, #0x38] add r0, r4, #0x48 add r1, r1, #0xc00 bl func_ov38_0217ca70 add r1, r4, #0x1000 ldrb r0, [r1, #0xa3] cmp r0, #0 beq _02180d9c mov r0, #0x10 str r0, [sp] add r0, r4, #0x82 ldr r2, [r1, #0x40] add r0, r0, #0x1000 mov r1, #0x600 mov r3, #0x400 bl func_ov38_0217c994 add r0, r4, #0x1000 ldrsh r1, [r4, #0x78] ldrsh r0, [r0, #0x82] add r0, r1, r0 strh r0, [r4, #0x78] _02180d9c: mov r0, r4 bl func_ov38_0217de58 add sp, sp, #0x10 ldmia sp!, {r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov38_02180bc0 _02180dac: .word data_ov38_02189224 .global func_ov38_02180db0 arm_func_start func_ov38_02180db0 func_ov38_02180db0: ; 0x02180db0 stmdb sp!, {r4, r5, r6, lr} ldr r4, _02180df8 ; =data_ov38_02189224 mov r6, r0 mov r5, #0 _02180dc0: ldr r0, [r4, r5, lsl #2] bl func_ov29_02172ddc add r5, r5, #1 cmp r5, #5 blt _02180dc0 add r0, r6, #0x1000 mov r3, #0 add r1, r6, #4 ldr r2, _02180dfc ; =data_027e0f6c strb r3, [r0, #0xa5] ldr r0, [r2] add r1, r1, #0x1000 bl func_ov00_02093a5c ldmia sp!, {r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov38_02180db0 _02180df8: .word data_ov38_02189224 _02180dfc: .word data_027e0f6c .global func_ov38_02180e00 arm_func_start func_ov38_02180e00 func_ov38_02180e00: ; 0x02180e00 stmdb sp!, {r3, r4, lr} sub sp, sp, #0x24 ldr r1, _02180f20 ; =data_027e0d0c mov r4, r0 ldr r2, [r1] add r0, r4, #0x1000 str r2, [r4, #0x60] ldr r3, [r1, #4] mov r2, #0x1e str r3, [r4, #0x64] ldr r3, [r1, #8] mov r1, #0x12 str r3, [r4, #0x68] str r2, [r0, #0x54] str r1, [r0, #0x58] mov r2, #0 strb r2, [r0, #0xa3] ldr r1, _02180f24 ; =0x00000171 strb r2, [r0, #0xa4] str r1, [r0, #0x40] str r2, [r0, #0x38] mov r1, #0x800 str r1, [r0, #0x3c] ldrsh r1, [r4, #0x12] strh r1, [r0, #0x7c] ldr r0, [r0, #0x70] cmp r0, #1 beq _02180e7c cmp r0, #2 beq _02180ea4 b _02180ecc _02180e7c: ldr r2, [r4, #0x18] ldr r1, [r4, #0x1c] ldr r0, [r4, #0x14] str r0, [r4, #0xfd8] str r2, [r4, #0xfdc] str r1, [r4, #0xfe0] ldr r0, [r4, #0xfdc] add r0, r0, #0x5800 str r0, [r4, #0xfdc] b _02180ee4 _02180ea4: ldr r2, [r4, #0x18] ldr r1, [r4, #0x1c] ldr r0, [r4, #0x14] str r0, [r4, #0xfd8] str r2, [r4, #0xfdc] str r1, [r4, #0xfe0] ldr r0, [r4, #0xfdc] add r0, r0, #0xe800 str r0, [r4, #0xfdc] b _02180ee4 _02180ecc: ldr r2, [r4, #0x4c] ldr r1, [r4, #0x50] ldr r0, [r4, #0x48] str r0, [r4, #0xfd8] str r2, [r4, #0xfdc] str r1, [r4, #0xfe0] _02180ee4: ldr r1, [r4, #0xfdc] add r0, r4, #0x1000 add r1, r1, #0x6000 str r1, [r4, #0xfdc] mov r1, #0 strh r1, [r0, #0x82] bl func_ov29_021716dc ldr r0, _02180f28 ; =data_ov00_020eec68 mov r1, #0xa bl func_ov00_020d716c add r0, r4, #0x1000 mov r1, #0xa str r1, [r0, #0x68] add sp, sp, #0x24 ldmia sp!, {r3, r4, pc} .align 2, 0 arm_func_end func_ov38_02180e00 _02180f20: .word data_027e0d0c _02180f24: .word 0x00000171 _02180f28: .word data_ov00_020eec68 .global func_ov38_02180f2c arm_func_start func_ov38_02180f2c func_ov38_02180f2c: ; 0x02180f2c stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #0x50 mov r4, r0 ldr r0, [r4, #0x2c4] add r0, r4, r0, lsl #2 ldr r0, [r0, #0x2b4] cmp r0, #5 beq _02180f58 cmp r0, #0x10 beq _02181098 b _02181020 _02180f58: ldr r0, [r4, #0x2c4] add r1, r4, #0x1b4 add r0, r1, r0, lsl #7 add r0, r0, #0xc bl func_0202e58c cmp r0, #0 beq _02180f8c mov r2, #0 mov r0, r4 mov r3, r2 mov r1, #0x10 bl func_ov38_0217d570 b _02181098 _02180f8c: ldr r0, [r4, #0x2c4] add r1, r4, #0x1b4 add r0, r1, r0, lsl #7 add r0, r0, #0xc mov r1, #0x2d000 bl func_0202e310 cmp r0, #0 beq _02181098 add r0, sp, #0x24 bl func_ov00_020c1500 mvn r1, #0 add r0, sp, #0x24 str r1, [sp, #0x40] str r1, [sp, #0x44] bl func_ov00_020c3348 mvn r3, #0 mov r2, #0 mov r0, #0x16000 str r0, [sp, #0x1c] add r1, sp, #4 str r3, [sp, #4] str r3, [sp, #8] str r2, [sp, #0x18] str r2, [sp, #0x20] str r1, [sp] ldr r0, _02181208 ; =data_027e0fe8 ldr r1, _0218120c ; =0x4e564d4d ldr r0, [r0] add r2, sp, #0x18 add r3, sp, #0x24 bl func_ov00_020c4048 ldr r0, _02181210 ; =data_027e0ffc ldr r1, _02181214 ; =0x00000442 add r2, r4, #0x48 mov r3, #0 bl func_ov00_020ceacc b _02181098 _02181020: add r0, r4, #0x1000 ldr r1, [r0, #0x68] cmp r1, #0 subne r1, r1, #1 strne r1, [r0, #0x68] add r0, r4, #0x1000 ldr r0, [r0, #0x68] cmp r0, #0 ldreq r0, [r4, #0x2e0] cmpeq r0, #0 addne sp, sp, #0x50 ldmneia sp!, {r4, r5, r6, pc} mov r0, r4 bl func_ov00_020c198c cmp r0, #0 addeq sp, sp, #0x50 ldmeqia sp!, {r4, r5, r6, pc} mov r0, r4 mov r1, #5 mov r2, #1 mov r3, #0x200 bl func_ov38_0217d570 ldr r1, [r4, #0x2c4] mov r0, r4 add r1, r4, r1, lsl #7 mov r2, #0x1000 str r2, [r1, #0x1c4] bl func_ov38_02186b08 add sp, sp, #0x50 ldmia sp!, {r4, r5, r6, pc} _02181098: add r0, r4, #0x1000 ldrb r1, [r0, #0xa3] cmp r1, #0 bne _02181100 ldr r1, [r0, #0x54] subs r1, r1, #1 str r1, [r0, #0x54] bne _02181100 mov r2, #1 strb r2, [r0, #0xa3] mov r1, #0 str r1, [r0, #0x38] rsb r1, r2, #0x134 str r1, [r0, #0x40] mov r1, #0x800 str r1, [r0, #0x3c] ldr r2, [r4, #0x18] ldr r1, [r4, #0x1c] ldr r0, [r4, #0x14] str r0, [r4, #0xfd8] str r2, [r4, #0xfdc] str r1, [r4, #0xfe0] ldr r0, [r4, #0xfdc] sub r0, r0, #0xa000 str r0, [r4, #0xfdc] b _02181134 _02181100: add r0, r4, #0x1000 ldrb r0, [r0, #0xa3] cmp r0, #0 beq _02181134 ldr r0, [r4, #0xfdc] ldr r1, [r4, #0x4c] add r0, r0, #0x9a add r0, r0, #0x100 cmp r1, r0 bge _02181134 add r0, r4, #0x2c8 mov r1, #0xf bl func_ov38_0217be60 _02181134: add r0, r4, #0x1000 ldrb r1, [r0, #0xa4] cmp r1, #0 bne _02181178 ldr r1, [r0, #0x58] subs r1, r1, #1 str r1, [r0, #0x58] bne _02181178 mov r1, #1 ldr r5, _02181218 ; =data_ov38_02189224 strb r1, [r0, #0xa4] mov r6, #0 _02181164: ldr r0, [r5, r6, lsl #2] bl func_ov29_02174cc8 add r6, r6, #1 cmp r6, #5 blt _02181164 _02181178: add r1, r4, #0x1000 add r0, r4, #0x38 ldr r1, [r1, #0x3c] add r0, r0, #0x1000 mov r2, #0x66 bl func_0202b0f4 mov r0, #0x29 add r1, r4, #0x3d8 str r0, [sp] add r0, r4, #0x1000 ldr r2, [r0, #0x40] ldr r3, [r0, #0x38] add r0, r4, #0x48 add r1, r1, #0xc00 bl func_ov38_0217ca70 add r1, r4, #0x1000 ldrb r0, [r1, #0xa3] cmp r0, #0 beq _021811f8 mov r0, #0x10 str r0, [sp] add r0, r4, #0x82 ldr r2, [r1, #0x40] add r0, r0, #0x1000 mov r1, #0x600 mov r3, #0x400 bl func_ov38_0217c994 add r0, r4, #0x1000 ldrsh r1, [r4, #0x78] ldrsh r0, [r0, #0x82] add r0, r1, r0 strh r0, [r4, #0x78] _021811f8: mov r0, r4 bl func_ov38_0217de58 add sp, sp, #0x50 ldmia sp!, {r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov38_02180f2c _02181208: .word data_027e0fe8 _0218120c: .word 0x4e564d4d _02181210: .word data_027e0ffc _02181214: .word 0x00000442 _02181218: .word data_ov38_02189224 .global func_ov38_0218121c arm_func_start func_ov38_0218121c func_ov38_0218121c: ; 0x0218121c stmdb sp!, {r4, r5, r6, lr} ldr r4, _02181250 ; =data_ov38_02189224 mov r6, r0 mov r5, #0 _0218122c: ldr r0, [r4, r5, lsl #2] bl func_ov29_02172ddc add r5, r5, #1 cmp r5, #5 blt _0218122c add r0, r6, #0x1000 mov r1, #0 strb r1, [r0, #0xa5] ldmia sp!, {r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov38_0218121c _02181250: .word data_ov38_02189224 .global func_ov38_02181254 arm_func_start func_ov38_02181254 func_ov38_02181254: ; 0x02181254 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #0xc mov r4, r0 mov r2, #1 add lr, r4, #0x1000 ldr r1, _02181320 ; =data_027e0d0c str r2, [lr, #0x70] ldr r3, [r1] mov r5, #0x1e str r3, [r4, #0x60] ldr r6, [r1, #4] mov r3, #0x12 str r6, [r4, #0x64] ldr r1, [r1, #8] mov ip, #0 str r1, [r4, #0x68] str r5, [lr, #0x54] str r3, [lr, #0x58] strb ip, [lr, #0xa3] strb ip, [lr, #0xa4] add r1, r2, #0x170 str r1, [lr, #0x40] str ip, [lr, #0x38] mov r1, #0x800 str r1, [lr, #0x3c] ldrsh r5, [r4, #0x12] mov r1, #0xf mov r3, #0x200 strh r5, [lr, #0x7c] ldr r7, [r4, #0x18] ldr r6, [r4, #0x1c] ldr r5, [r4, #0x14] str r5, [r4, #0xfd8] str r7, [r4, #0xfdc] str r6, [r4, #0xfe0] ldr r5, [r4, #0xfdc] add r5, r5, #0xe800 add r5, r5, #0x6000 str r5, [r4, #0xfdc] strh ip, [lr, #0x82] strb r2, [lr, #0xaa] ldrsh ip, [r4, #0x78] sub ip, ip, #0x6000 strh ip, [lr, #0x7c] bl func_ov38_0217d570 ldr r0, [r4, #0x2c4] mov r1, #0x1000 add r0, r4, r0, lsl #7 str r1, [r0, #0x1c4] add sp, sp, #0xc ldmia sp!, {r4, r5, r6, r7, pc} .align 2, 0 arm_func_end func_ov38_02181254 _02181320: .word data_027e0d0c .global func_ov38_02181324 arm_func_start func_ov38_02181324 func_ov38_02181324: ; 0x02181324 stmdb sp!, {r3, r4, r5, r6, lr} sub sp, sp, #0x1c mov r5, r0 ldr r0, [r5, #0x2c4] add r2, r5, #0x1b4 mov r1, r0 add r0, r5, r0, lsl #2 ldr r0, [r0, #0x2b4] add r4, r2, r1, lsl #7 cmp r0, #0xe beq _02181488 cmp r0, #0xf beq _02181364 cmp r0, #0x10 beq _02181388 b _0218154c _02181364: add r0, r4, #0xc bl func_0202e58c cmp r0, #0 beq _02181388 mov r0, r5 mov r1, #0x10 mov r2, #1 mov r3, #0x200 bl func_ov38_0217d570 _02181388: add r0, r5, #0x1000 ldrb r1, [r0, #0xa3] cmp r1, #0 bne _021813f0 ldr r1, [r0, #0x54] subs r1, r1, #1 str r1, [r0, #0x54] bne _021813f0 mov r2, #1 strb r2, [r0, #0xa3] mov r1, #0 str r1, [r0, #0x38] rsb r1, r2, #0x134 str r1, [r0, #0x40] mov r1, #0x800 str r1, [r0, #0x3c] ldr r2, [r5, #0x18] ldr r1, [r5, #0x1c] ldr r0, [r5, #0x14] str r0, [r5, #0xfd8] str r2, [r5, #0xfdc] str r1, [r5, #0xfe0] ldr r0, [r5, #0xfdc] add r0, r0, #0x7000 str r0, [r5, #0xfdc] b _02181440 _021813f0: add r0, r5, #0x1000 ldrb r1, [r0, #0xa3] cmp r1, #0 ldrneb r0, [r0, #0xa4] cmpne r0, #0 beq _02181440 add r0, r4, #0xc bl func_0202e58c cmp r0, #0 beq _02181440 mov r0, r5 mov r1, #0xe mov r2, #1 mov r3, #0x200 bl func_ov38_0217d570 ldr r0, _021815e8 ; =data_027e0ffc ldr r1, _021815ec ; =0x0000043a add r2, r5, #0x48 mov r3, #0 bl func_ov00_020ceacc _02181440: add r0, r5, #0x1000 ldrb r1, [r0, #0xa4] cmp r1, #0 bne _0218154c ldr r1, [r0, #0x58] subs r1, r1, #1 str r1, [r0, #0x58] bne _0218154c mov r1, #1 ldr r4, _021815f0 ; =data_ov38_02189224 strb r1, [r0, #0xa4] mov r6, #0 _02181470: ldr r0, [r4, r6, lsl #2] bl func_ov29_02174cc8 add r6, r6, #1 cmp r6, #5 blt _02181470 b _0218154c _02181488: add r0, r4, #0xc bl func_0202e58c cmp r0, #0 beq _021814a4 add r0, r5, #0x2c8 mov r1, #8 bl func_ov38_0217be60 _021814a4: add r0, r4, #0xc mov r1, #0x2b000 bl func_0202e310 cmp r0, #0 beq _021814f8 ldr r1, _021815f4 ; =0x00000266 add r0, r5, #0x1000 str r1, [r0, #0x40] mov r1, #0 str r1, [r0, #0x38] mov r1, #0x800 str r1, [r0, #0x3c] ldr r2, [r5, #0x18] ldr r1, [r5, #0x1c] ldr r0, [r5, #0x14] str r0, [r5, #0xfd8] str r2, [r5, #0xfdc] str r1, [r5, #0xfe0] ldr r0, [r5, #0xfdc] add r0, r0, #0x5800 str r0, [r5, #0xfdc] _021814f8: add r0, r4, #0xc mov r1, #0x34000 bl func_0202e310 cmp r0, #0 beq _02181524 mov r0, r5 bl func_ov38_021840f8 add r0, r5, #0x1000 ldr r1, [r0, #0x70] mov r0, r5 bl func_ov38_021840c8 _02181524: add r0, r4, #0xc mov r1, #0x37000 bl func_0202e310 cmp r0, #0 beq _0218154c ldr r0, _021815e8 ; =data_027e0ffc ldr r1, _021815f8 ; =0x0000043b add r2, r5, #0x48 mov r3, #0 bl func_ov00_020ceacc _0218154c: add r1, r5, #0x1000 add r0, r5, #0x38 ldr r1, [r1, #0x3c] add r0, r0, #0x1000 mov r2, #0x66 bl func_0202b0f4 mov r0, #0x29 add r1, r5, #0x3d8 str r0, [sp] add r0, r5, #0x1000 ldr r2, [r0, #0x40] ldr r3, [r0, #0x38] add r0, r5, #0x48 add r1, r1, #0xc00 bl func_ov38_0217ca70 add r1, r5, #0x1000 ldrb r0, [r1, #0xa3] cmp r0, #0 beq _021815d8 mov r0, #0x10 str r0, [sp] add r0, r5, #0x82 ldr r2, [r1, #0x40] add r0, r0, #0x1000 mov r1, #0x600 mov r3, #0x400 bl func_ov38_0217c994 mov r0, #0xb6 str r0, [sp] add r0, r5, #0x1000 ldrsh r1, [r0, #0x7c] ldrsh r3, [r0, #0x82] add r0, r5, #0x78 mov r2, #0x400 bl func_ov38_0217c994 _021815d8: mov r0, r5 bl func_ov38_0217de58 add sp, sp, #0x1c ldmia sp!, {r3, r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov38_02181324 _021815e8: .word data_027e0ffc _021815ec: .word 0x0000043a _021815f0: .word data_ov38_02189224 _021815f4: .word 0x00000266 _021815f8: .word 0x0000043b .global func_ov38_021815fc arm_func_start func_ov38_021815fc func_ov38_021815fc: ; 0x021815fc stmdb sp!, {r3, r4, lr} sub sp, sp, #0xc mov r4, r0 add ip, r4, #0x1000 mov lr, #2 mov r1, #0xc mov r2, #1 mov r3, #0x200 str lr, [ip, #0x70] bl func_ov38_0217d570 add r0, r4, #0x1000 mov r2, #0 ldr r1, _02181678 ; =0x00000133 str r2, [r0, #0x38] str r1, [r0, #0x40] mov r1, #0x800 str r1, [r0, #0x3c] ldr ip, [r4, #0x18] ldr r3, [r4, #0x1c] ldr r2, [r4, #0x14] mov r1, #1 str r2, [r4, #0xfd8] str ip, [r4, #0xfdc] str r3, [r4, #0xfe0] ldr r2, [r4, #0xfdc] add r2, r2, #0x5800 sub r2, r2, #0x1c00 str r2, [r4, #0xfdc] strb r1, [r0, #0xaa] add sp, sp, #0xc ldmia sp!, {r3, r4, pc} .align 2, 0 arm_func_end func_ov38_021815fc _02181678: .word 0x00000133 .global func_ov38_0218167c arm_func_start func_ov38_0218167c func_ov38_0218167c: ; 0x0218167c stmdb sp!, {r3, r4, r5, r6, lr} sub sp, sp, #0x1c mov r5, r0 ldr r0, [r5, #0x2c4] add r2, r5, #0x1b4 mov r1, r0 add r0, r5, r0, lsl #2 ldr r0, [r0, #0x2b4] add r4, r2, r1, lsl #7 cmp r0, #0xc beq _021816b4 cmp r0, #0xe beq _02181768 b _0218182c _021816b4: add r0, r4, #0xc bl func_0202e58c cmp r0, #0 beq _021816f0 mov r0, r5 mov r1, #0xe mov r2, #1 mov r3, #0x200 bl func_ov38_0217d570 ldr r0, _02181878 ; =data_027e0ffc ldr r1, _0218187c ; =0x0000043a add r2, r5, #0x48 mov r3, #0 bl func_ov00_020ceacc b _0218182c _021816f0: add r0, r4, #0xc mov r1, #0xf000 bl func_0202e310 cmp r0, #0 beq _0218182c add r0, r5, #0x1000 mov r4, #0 ldr r1, _02181880 ; =0x00000171 str r4, [r0, #0x38] str r1, [r0, #0x40] mov r1, #0x800 str r1, [r0, #0x3c] ldr r3, [r5, #0x18] ldr r2, [r5, #0x1c] ldr r1, [r5, #0x14] ldr r6, _02181884 ; =data_ov38_02189224 str r1, [r5, #0xfd8] str r3, [r5, #0xfdc] str r2, [r5, #0xfe0] ldr r1, [r5, #0xfdc] add r1, r1, #0x10000 str r1, [r5, #0xfdc] ldrsh r1, [r5, #0x12] strh r1, [r0, #0x7c] _02181750: ldr r0, [r6, r4, lsl #2] bl func_ov29_02174cc8 add r4, r4, #1 cmp r4, #5 blt _02181750 b _0218182c _02181768: add r0, r4, #0xc bl func_0202e58c cmp r0, #0 beq _02181784 add r0, r5, #0x2c8 mov r1, #9 bl func_ov38_0217be60 _02181784: add r0, r4, #0xc mov r1, #0x2b000 bl func_0202e310 cmp r0, #0 beq _021817d8 ldr r1, _02181888 ; =0x00000266 add r0, r5, #0x1000 str r1, [r0, #0x40] mov r1, #0 str r1, [r0, #0x38] mov r1, #0x800 str r1, [r0, #0x3c] ldr r2, [r5, #0x18] ldr r1, [r5, #0x1c] ldr r0, [r5, #0x14] str r0, [r5, #0xfd8] str r2, [r5, #0xfdc] str r1, [r5, #0xfe0] ldr r0, [r5, #0xfdc] add r0, r0, #0xe800 str r0, [r5, #0xfdc] _021817d8: add r0, r4, #0xc mov r1, #0x34000 bl func_0202e310 cmp r0, #0 beq _02181804 mov r0, r5 bl func_ov38_021840f8 add r0, r5, #0x1000 ldr r1, [r0, #0x70] mov r0, r5 bl func_ov38_021840c8 _02181804: add r0, r4, #0xc mov r1, #0x37000 bl func_0202e310 cmp r0, #0 beq _0218182c ldr r0, _02181878 ; =data_027e0ffc ldr r1, _0218188c ; =0x0000043b add r2, r5, #0x48 mov r3, #0 bl func_ov00_020ceacc _0218182c: add r1, r5, #0x1000 add r0, r5, #0x38 ldr r1, [r1, #0x3c] add r0, r0, #0x1000 mov r2, #0x66 bl func_0202b0f4 mov r0, #0x29 add r1, r5, #0x3d8 str r0, [sp] add r0, r5, #0x1000 ldr r2, [r0, #0x40] ldr r3, [r0, #0x38] add r0, r5, #0x48 add r1, r1, #0xc00 bl func_ov38_0217ca70 mov r0, r5 bl func_ov38_0217ddc8 add sp, sp, #0x1c ldmia sp!, {r3, r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov38_0218167c _02181878: .word data_027e0ffc _0218187c: .word 0x0000043a _02181880: .word 0x00000171 _02181884: .word data_ov38_02189224 _02181888: .word 0x00000266 _0218188c: .word 0x0000043b .global func_ov38_02181890 arm_func_start func_ov38_02181890 func_ov38_02181890: ; 0x02181890 stmdb sp!, {r3, r4, lr} sub sp, sp, #0xc mov r4, r0 mov r1, #0xc mov r2, #1 mov r3, #0x100 bl func_ov38_0217d570 add r0, r4, #0x1000 mov r2, #0 ldr r1, _0218194c ; =0x00000133 str r2, [r0, #0x38] str r1, [r0, #0x40] mov r1, #0x800 str r1, [r0, #0x3c] ldr r3, [r4, #0x18] ldr r2, [r4, #0x1c] ldr r1, [r4, #0x14] str r1, [r4, #0xfd8] str r3, [r4, #0xfdc] str r2, [r4, #0xfe0] ldr r0, [r0, #0x70] cmp r0, #1 beq _02181900 cmp r0, #2 ldreq r0, [r4, #0xfdc] addeq r0, r0, #0xe800 streq r0, [r4, #0xfdc] b _0218190c _02181900: ldr r0, [r4, #0xfdc] add r0, r0, #0x5800 str r0, [r4, #0xfdc] _0218190c: ldr r1, [r4, #0xfdc] add r0, r4, #0x1000 sub r1, r1, #0x1c00 str r1, [r4, #0xfdc] ldr r1, [r0, #0x74] cmp r1, #3 movgt r1, #4 movle r1, #1 str r1, [r0, #0x68] ldrsh r1, [r4, #0x78] add r0, r4, #0x1000 strh r1, [r0, #0x82] ldrsh r1, [r4, #0x78] strh r1, [r0, #0x7c] add sp, sp, #0xc ldmia sp!, {r3, r4, pc} .align 2, 0 arm_func_end func_ov38_02181890 _0218194c: .word 0x00000133 .global func_ov38_02181950 arm_func_start func_ov38_02181950 func_ov38_02181950: ; 0x02181950 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #0x34 mov r5, r0 ldr r1, [r5, #0x2c4] add r3, r5, #0x1b4 mov r2, r1 add r1, r5, r1, lsl #2 ldr r1, [r1, #0x2b4] add r4, r3, r2, lsl #7 cmp r1, #1 bgt _02181988 cmp r1, #1 beq _02181cb8 b _02181dbc _02181988: cmp r1, #0x12 bgt _02181dbc cmp r1, #0xc blt _02181dbc beq _021819b0 cmp r1, #0x11 beq _02181bc8 cmp r1, #0x12 beq _02181ab0 b _02181dbc _021819b0: add r0, r4, #0xc bl func_0202e58c cmp r0, #0 beq _02181a10 mov r0, r5 mov r1, #0x11 mov r2, #1 mov r3, #0xf6 bl func_ov38_0217d570 ldr r0, _02181e18 ; =data_027e0ffc ldr r1, _02181e1c ; =0x00000441 add r2, r5, #0x48 mov r3, #0 bl func_ov00_020ceacc ldr r0, [r5, #0x2c4] mov r1, #0x1000 add r0, r5, r0, lsl #7 str r1, [r0, #0x1c4] add r1, r5, #0x1000 ldrsh r0, [r1, #0x7c] add r0, r0, #0xa5 add r0, r0, #0x2f00 strh r0, [r1, #0x7c] b _02181dbc _02181a10: add r0, r4, #0xc mov r1, #0xf000 bl func_0202e310 cmp r0, #0 beq _02181dbc add r0, r5, #0x1000 mov r2, #0 ldr r1, _02181e20 ; =0x00000171 str r2, [r0, #0x38] str r1, [r0, #0x40] mov r1, #0x800 str r1, [r0, #0x3c] ldr r3, [r5, #0x18] ldr r2, [r5, #0x1c] ldr r1, [r5, #0x14] str r1, [r5, #0xfd8] str r3, [r5, #0xfdc] str r2, [r5, #0xfe0] ldr r0, [r0, #0x70] cmp r0, #1 beq _02181a78 cmp r0, #2 ldreq r0, [r5, #0xfdc] addeq r0, r0, #0xe800 streq r0, [r5, #0xfdc] b _02181a84 _02181a78: ldr r0, [r5, #0xfdc] add r0, r0, #0x5800 str r0, [r5, #0xfdc] _02181a84: ldr r0, [r5, #0xfdc] ldr r4, _02181e24 ; =data_ov38_02189224 add r0, r0, #0x5000 mov r6, #0 str r0, [r5, #0xfdc] _02181a98: ldr r0, [r4, r6, lsl #2] bl func_ov29_02174cc8 add r6, r6, #1 cmp r6, #5 blt _02181a98 b _02181dbc _02181ab0: add r0, r4, #0xc mov r1, #0x34000 bl func_0202e310 cmp r0, #0 beq _02181ad8 add r0, r5, #0x1000 ldr r1, [r0, #0x70] mov r0, r5 bl func_ov38_021840c8 b _02181b20 _02181ad8: add r0, r4, #0xc bl func_0202e58c cmp r0, #0 beq _02181b20 add r0, r5, #0x1000 ldr r0, [r0, #0x70] cmp r0, #1 beq _02181b04 cmp r0, #2 beq _02181b14 b _02181b20 _02181b04: add r0, r5, #0x2c8 mov r1, #8 bl func_ov38_0217be60 b _02181b20 _02181b14: add r0, r5, #0x2c8 mov r1, #9 bl func_ov38_0217be60 _02181b20: add r0, r4, #0xc mov r1, #0x37000 bl func_0202e310 cmp r0, #0 beq _02181b48 ldr r0, _02181e18 ; =data_027e0ffc ldr r1, _02181e28 ; =0x0000043b add r2, r5, #0x48 mov r3, #0 bl func_ov00_020ceacc _02181b48: add r0, r4, #0xc mov r1, #0x2b000 bl func_0202e310 cmp r0, #0 beq _02181dbc ldr r1, _02181e2c ; =0x00000266 add r0, r5, #0x1000 str r1, [r0, #0x40] mov r1, #0 str r1, [r0, #0x38] mov r1, #0x800 str r1, [r0, #0x3c] ldr r3, [r5, #0x18] ldr r2, [r5, #0x1c] ldr r1, [r5, #0x14] str r1, [r5, #0xfd8] str r3, [r5, #0xfdc] str r2, [r5, #0xfe0] ldr r0, [r0, #0x70] cmp r0, #1 beq _02181ba8 cmp r0, #2 beq _02181bb8 b _02181dbc _02181ba8: ldr r0, [r5, #0xfdc] add r0, r0, #0x5800 str r0, [r5, #0xfdc] b _02181dbc _02181bb8: ldr r0, [r5, #0xfdc] add r0, r0, #0xe800 str r0, [r5, #0xfdc] b _02181dbc _02181bc8: add r0, r4, #0xc mov r1, #0x26000 bl func_0202e310 cmp r0, #0 beq _02181c14 add r0, r5, #0x1000 mov r7, #0 ldr r1, _02181e2c ; =0x00000266 str r7, [r0, #0x38] str r1, [r0, #0x40] mov r1, #0x800 ldr r6, _02181e24 ; =data_ov38_02189224 str r1, [r0, #0x3c] _02181bfc: ldr r0, [r6, r7, lsl #2] bl func_ov29_02174054 add r7, r7, #1 cmp r7, #5 blt _02181bfc b _02181c50 _02181c14: add r0, r4, #0xc bl func_0202e58c cmp r0, #0 beq _02181c50 mov r0, r5 mov r1, #1 mov r2, #0 mov r3, #0x200 bl func_ov38_0217d570 add r0, r5, #0x1000 mov r1, #0x1e str r1, [r0, #0x54] ldr r1, [r0, #0x68] sub r1, r1, #1 str r1, [r0, #0x68] _02181c50: ldr r3, [r5, #0x18] ldr r2, [r5, #0x1c] ldr r1, [r5, #0x14] add r0, r5, #0x1000 str r1, [r5, #0xfd8] str r3, [r5, #0xfdc] str r2, [r5, #0xfe0] ldr r0, [r0, #0x70] cmp r0, #1 beq _02181c8c cmp r0, #2 ldreq r0, [r5, #0xfdc] addeq r0, r0, #0xe800 streq r0, [r5, #0xfdc] b _02181c98 _02181c8c: ldr r0, [r5, #0xfdc] add r0, r0, #0x5800 str r0, [r5, #0xfdc] _02181c98: ldr r0, [r4, #0x14] cmp r0, #0x26000 ldr r0, [r5, #0xfdc] addlt r0, r0, #0x5000 strlt r0, [r5, #0xfdc] addge r0, r0, #0x3000 strge r0, [r5, #0xfdc] b _02181dbc _02181cb8: add r1, r5, #0x1000 ldr r2, [r1, #0x54] cmp r2, #0 bne _02181db4 mov r3, #0 ldr r2, _02181e20 ; =0x00000171 str r3, [r1, #0x38] str r2, [r1, #0x40] mov r2, #0x800 str r2, [r1, #0x3c] ldr r1, [r1, #0x68] mov r2, #1 cmp r1, #0 bne _02181d74 mov r1, #0x12 bl func_ov38_0217d570 add r0, r5, #0x1000 mov r2, #0 ldr r1, _02181e20 ; =0x00000171 str r2, [r0, #0x38] str r1, [r0, #0x40] mov r1, #0x800 str r1, [r0, #0x3c] ldr r3, [r5, #0x18] ldr r2, [r5, #0x1c] ldr r1, [r5, #0x14] str r1, [r5, #0xfd8] str r3, [r5, #0xfdc] str r2, [r5, #0xfe0] ldr r0, [r0, #0x70] cmp r0, #1 beq _02181d4c cmp r0, #2 ldreq r0, [r5, #0xfdc] addeq r0, r0, #0xe800 streq r0, [r5, #0xfdc] b _02181d58 _02181d4c: ldr r0, [r5, #0xfdc] add r0, r0, #0x5800 str r0, [r5, #0xfdc] _02181d58: ldr r1, [r5, #0xfdc] add r0, r5, #0x1000 sub r1, r1, #0x1800 str r1, [r5, #0xfdc] ldrsh r1, [r0, #0x82] strh r1, [r0, #0x7c] b _02181dbc _02181d74: mov r1, #0x11 bl func_ov38_0217d570 ldr r0, _02181e18 ; =data_027e0ffc ldr r1, _02181e1c ; =0x00000441 add r2, r5, #0x48 mov r3, #0 bl func_ov00_020ceacc ldr r0, [r5, #0x2c4] mov r1, #0x1000 add r0, r5, r0, lsl #7 str r1, [r0, #0x1c4] add r0, r5, #0x1000 ldrsh r1, [r0, #0x7c] add r1, r1, #0x4000 strh r1, [r0, #0x7c] b _02181dbc _02181db4: sub r0, r2, #1 str r0, [r1, #0x54] _02181dbc: mov r1, #0 mov r0, r5 mov r2, r1 bl func_ov00_020c243c add r1, r5, #0x1000 add r0, r5, #0x38 ldr r1, [r1, #0x3c] add r0, r0, #0x1000 mov r2, #0x66 bl func_0202b0f4 mov r0, #0x29 add r1, r5, #0x3d8 str r0, [sp] add r0, r5, #0x1000 ldr r2, [r0, #0x40] ldr r3, [r0, #0x38] add r0, r5, #0x48 add r1, r1, #0xc00 bl func_ov38_0217ca70 mov r0, r5 bl func_ov38_0217ddc8 add sp, sp, #0x34 ldmia sp!, {r4, r5, r6, r7, pc} .align 2, 0 arm_func_end func_ov38_02181950 _02181e18: .word data_027e0ffc _02181e1c: .word 0x00000441 _02181e20: .word 0x00000171 _02181e24: .word data_ov38_02189224 _02181e28: .word 0x0000043b _02181e2c: .word 0x00000266 .global func_ov38_02181e30 arm_func_start func_ov38_02181e30 func_ov38_02181e30: ; 0x02181e30 stmdb sp!, {r4, lr} sub sp, sp, #0x10 mov r4, r0 add ip, r4, #0x1000 mov lr, #0 strh lr, [ip, #0x7e] mov r1, #0xc mov r2, #1 mov r3, #0x200 str lr, [ip, #0x70] bl func_ov38_0217d570 ldr r0, _02181f14 ; =data_027e0d0c add r1, r4, #0x1000 ldr r2, [r0] mov r3, #0 str r2, [r4, #0x60] ldr ip, [r0, #4] ldr r2, _02181f18 ; =0x00000133 str ip, [r4, #0x64] ldr ip, [r0, #8] mov r0, #0x800 str ip, [r4, #0x68] str r3, [r1, #0x38] str r2, [r1, #0x40] str r0, [r1, #0x3c] ldr ip, [r4, #0x18] ldr r3, [r4, #0x1c] ldr r2, [r4, #0x14] mov r0, r4 str r2, [r4, #0xfd8] str ip, [r4, #0xfdc] str r3, [r4, #0xfe0] ldr r2, [r4, #0xfdc] sub r2, r2, #0x3000 str r2, [r4, #0xfdc] ldrsh r2, [r4, #0x12] strh r2, [r1, #0x7c] bl func_ov38_0218307c add r0, r4, #0x1000 mov r2, #1 ldr r1, _02181f1c ; =func_ov38_0217cd70 strb r2, [r0, #0xa5] mov ip, #3 add r0, r4, #0x15c mov r2, #0 mov r3, #6 str ip, [sp] bl func_02018c90 add r0, r4, #0x1000 mov r1, #0 strh r1, [r0, #0x88] strh r1, [r0, #0x8a] strh r1, [r0, #0x8c] str r1, [r0, #0x50] strb r1, [r0, #0xa0] add sp, sp, #0x10 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov38_02181e30 _02181f14: .word data_027e0d0c _02181f18: .word 0x00000133 _02181f1c: .word func_ov38_0217cd70 .global func_ov38_02181f20 arm_func_start func_ov38_02181f20 func_ov38_02181f20: ; 0x02181f20 stmdb sp!, {r4, lr} sub sp, sp, #0x10 mov r4, r0 ldr r0, [r4, #0x2c4] add r0, r4, r0, lsl #2 ldr r0, [r0, #0x2b4] cmp r0, #0xc bne _02181ff0 ldr r0, [r4, #0x2c4] add r1, r4, #0x1b4 add r0, r1, r0, lsl #7 add r0, r0, #0xc bl func_0202e58c cmp r0, #0 beq _02181f88 add r0, r4, #0x1000 ldr r0, [r0, #0x78] cmp r0, #0 add r0, r4, #0x2c8 bne _02181f7c mov r1, #0x10 bl func_ov38_0217be60 b _02181ff0 _02181f7c: mov r1, #0x11 bl func_ov38_0217be60 b _02181ff0 _02181f88: ldr r0, [r4, #0x2c4] add r1, r4, #0x1b4 add r0, r1, r0, lsl #7 add r0, r0, #0xc mov r1, #0x1d000 bl func_0202e310 cmp r0, #0 beq _02181ff0 add r0, r4, #0x1000 mov r2, #0 ldr r1, _0218203c ; =0x00000171 str r2, [r0, #0x38] str r1, [r0, #0x40] mov r1, #0x800 str r1, [r0, #0x3c] ldr ip, [r4, #0x18] ldr r3, [r4, #0x1c] ldr r2, [r4, #0x14] mov r1, #0x5c00 str r2, [r4, #0xfd8] str ip, [r4, #0xfdc] str r3, [r4, #0xfe0] str r1, [r4, #0xfdc] ldrsh r1, [r0, #0x7c] add r1, r1, #0x6000 strh r1, [r0, #0x7c] _02181ff0: add r1, r4, #0x1000 add r0, r4, #0x38 ldr r1, [r1, #0x3c] add r0, r0, #0x1000 mov r2, #0x66 bl func_0202b0f4 mov r0, #0x29 add r1, r4, #0x3d8 str r0, [sp] add r0, r4, #0x1000 ldr r2, [r0, #0x40] ldr r3, [r0, #0x38] add r0, r4, #0x48 add r1, r1, #0xc00 bl func_ov38_0217ca70 mov r0, r4 bl func_ov38_0217ddc8 add sp, sp, #0x10 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov38_02181f20 _0218203c: .word 0x00000171 .global func_ov38_02182040 arm_func_start func_ov38_02182040 func_ov38_02182040: ; 0x02182040 add r1, r0, #0x1000 mov r2, #3 str r2, [r1, #0x68] mov r2, #0 str r2, [r1, #0x38] mov r3, #0x400 str r3, [r1, #0x3c] ldr r2, _0218208c ; =data_027e0fb4 ldr ip, _02182090 ; =func_ov38_0217d570 ldr r2, [r2] mov r3, #0x200 ldrh r2, [r2, #0xba] cmp r2, #0 ldrnesh r2, [r1, #0x9e] addne r2, r2, #1 strneh r2, [r1, #0x9e] mov r1, #2 mov r2, #0 bx ip .align 2, 0 arm_func_end func_ov38_02182040 _0218208c: .word data_027e0fb4 _02182090: .word func_ov38_0217d570 .global func_ov38_02182094 arm_func_start func_ov38_02182094 func_ov38_02182094: ; 0x02182094 stmdb sp!, {r3, r4, r5, r6, r7, r8, lr} sub sp, sp, #4 mov r4, r0 ldr r0, [r4, #0x2c4] add r1, r4, #0x1b4 add r0, r1, r0, lsl #7 add r0, r0, #0xc bl func_0202e544 cmp r0, #0 beq _021821d4 add r1, r4, #0x1000 ldr r0, [r1, #0x68] subs r0, r0, #1 str r0, [r1, #0x68] bne _021821d4 ldr r0, [r1, #0x78] cmp r0, #0 bne _02182130 ldr r2, _02182220 ; =data_027e0764 mov r3, #0 ldr r5, [r2] ldmib r2, {r0, r6} umull r8, r7, r6, r5 mla r7, r6, r0, r7 ldr r0, [r2, #0xc] ldr r6, [r2, #0x10] mla r7, r0, r5, r7 ldr r0, [r2, #0x14] adds r6, r6, r8 adc r8, r0, r7 str r6, [r2] mov r0, #0x64 umull r5, r7, r8, r0 mla r7, r8, r3, r7 mov r6, r3 mla r7, r6, r0, r7 str r8, [r2, #4] cmp r7, #0x50 bge _02182140 _02182130: add r0, r4, #0x2c8 mov r1, #0x11 bl func_ov38_0217be60 b _021821d4 _02182140: ldrsh r5, [r1, #0x7c] mov ip, r6, lsl #0x2 mov r0, #0x400 add r5, r5, #0x6000 strh r5, [r1, #0x7c] ldr r6, [r2, #8] ldmia r2, {r5, lr} umull r8, r7, r6, r5 mla r7, r6, lr, r7 ldr lr, [r2, #0xc] ldr r6, [r2, #0x10] mla r7, lr, r5, r7 ldr r5, [r2, #0x14] adds r6, r6, r8 adc r5, r5, r7 str r6, [r2] orr ip, ip, r5, lsr #30 str r5, [r2, #4] add r2, ip, #1 str r2, [r1, #0x68] str r3, [r1, #0x38] str r0, [r1, #0x3c] ldrh r0, [r1, #0x7c] ldr r2, _02182224 ; =data_02050f54 mov r0, r0, asr #0x4 mov r0, r0, lsl #0x2 ldrsh r0, [r2, r0] mov r0, r0, lsl #0x1 str r0, [r4, #0xfd8] ldrh r0, [r1, #0x7c] mov r0, r0, asr #0x4 mov r0, r0, lsl #0x1 add r0, r0, #1 mov r0, r0, lsl #0x1 ldrsh r0, [r2, r0] mov r0, r0, lsl #0x1 str r0, [r4, #0xfe0] _021821d4: add r1, r4, #0x1000 add r0, r4, #0x38 ldr r1, [r1, #0x3c] add r0, r0, #0x1000 mov r2, #0x66 bl func_0202b0f4 mov r0, #0x29 add r1, r4, #0x3d8 str r0, [sp] add r0, r4, #0x1000 ldr r2, [r0, #0x40] ldr r3, [r0, #0x38] add r0, r4, #0x48 add r1, r1, #0xc00 bl func_ov38_0217ca70 mov r0, r4 bl func_ov38_0217dec0 add sp, sp, #4 ldmia sp!, {r3, r4, r5, r6, r7, r8, pc} .align 2, 0 arm_func_end func_ov38_02182094 _02182220: .word data_027e0764 _02182224: .word data_02050f54 .global func_ov38_02182228 arm_func_start func_ov38_02182228 func_ov38_02182228: ; 0x02182228 stmdb sp!, {r4, r5, r6, r7, r8, lr} mov r4, r0 add ip, r4, #0x1000 mov r5, #3 mov r1, #2 mov r2, #0 mov r3, #0x200 str r5, [ip, #0x68] bl func_ov38_0217d570 add r1, r4, #0x1000 ldrsh r3, [r1, #0x94] mov r0, #0 ldr r2, _02182334 ; =0x0000059a sub r3, r3, #0x8000 strh r3, [r1, #0x84] strh r0, [r1, #0x82] str r0, [r1, #0x38] strb r0, [r1, #0xa0] str r2, [r1, #0x3c] mov r2, #0x400 str r2, [r1, #0x40] ldrsh r5, [r4, #0x78] ldr r3, _02182338 ; =data_027e0764 mov r2, #0x64 strh r5, [r1, #0x7c] ldr r6, [r3] ldmib r3, {r5, ip} umull r7, lr, ip, r6 mla lr, ip, r5, lr ldr r5, [r3, #0xc] ldr r8, [r3, #0x10] mla lr, r5, r6, lr ldr ip, [r3, #0x14] adds r8, r8, r7 adc r7, ip, lr umull r5, r6, r7, r2 str r8, [r3] str r7, [r3, #4] mla r6, r7, r0, r6 mov r5, r0 mla r6, r5, r2, r6 cmp r6, #0x32 movgt r0, #1 strb r0, [r1, #0xa3] add r2, r4, #0x1000 mov r0, #0 ldr r3, _02182338 ; =data_027e0764 str r0, [r2, #0x44] ldr r4, [r3] ldmib r3, {r1, ip} umull r5, lr, ip, r4 mla lr, ip, r1, lr ldr r1, [r3, #0xc] ldr r6, [r3, #0x10] mla lr, r1, r4, lr ldr ip, [r3, #0x14] adds r6, r6, r5 adc r5, ip, lr mov r1, #0x3d umull r4, ip, r5, r1 mla ip, r5, r0, ip mla ip, r0, r1, ip str r6, [r3] str r5, [r3, #4] add r0, ip, #0x96 str r0, [r2, #0x54] ldmia sp!, {r4, r5, r6, r7, r8, pc} .align 2, 0 arm_func_end func_ov38_02182228 _02182334: .word 0x0000059a _02182338: .word data_027e0764 .global func_ov38_0218233c arm_func_start func_ov38_0218233c func_ov38_0218233c: ; 0x0218233c stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #0x10 mov r6, r0 add r0, r6, #0x1000 mov r1, #0x180 strh r1, [r0, #0x82] ldrb r1, [r0, #0xa3] ldrsh r2, [r0, #0x84] add r3, r6, #0x38 cmp r1, #0 ldrnesh r1, [r0, #0x82] addne r1, r2, r1 ldreqsh r1, [r0, #0x82] subeq r1, r2, r1 strh r1, [r0, #0x84] add r0, r6, #0x1000 ldrh r1, [r0, #0x84] ldr r2, _0218254c ; =data_02050f54 mov r1, r1, asr #0x4 mov r4, r1, lsl #0x1 add r1, r4, #1 mov r4, r4, lsl #0x1 mov r1, r1, lsl #0x1 ldrsh r4, [r2, r4] ldrsh r2, [r2, r1] ldr r1, [r0, #0x3c] add r0, r4, r4, lsl #3 mov r4, r0, lsl #0xc add r2, r2, r2, lsl #3 mov r0, r2, lsl #0xc add r5, r0, #0x800 add r4, r4, #0x800 add r0, r3, #0x1000 mov r2, #0x66 mov r4, r4, asr #0xc mov r5, r5, asr #0xc bl func_0202b0f4 add r3, r6, #0x1000 ldr r0, [r3, #0x54] cmp r0, #0 bne _02182498 ldr r2, [r3, #0x44] ldr r0, _02182550 ; =0x00003d9a mov r1, #0 umull lr, ip, r2, r0 mla ip, r2, r1, ip mov r1, r2, asr #0x1f adds r2, lr, #0x800 mla ip, r1, r0, ip adc r0, ip, #0 mov r1, r2, lsr #0xc orr r1, r1, r0, lsl #20 add r0, r1, #0x66 add r0, r0, #0x1e00 str r0, [r6, #0xfdc] ldr r0, [r3, #0x44] rsb r1, r4, #0 smull r2, r0, r1, r0 adds r1, r2, #0x800 adc r0, r0, #0 mov r1, r1, lsr #0xc orr r1, r1, r0, lsl #20 add r0, r4, r1 str r0, [r6, #0xfd8] add r0, r6, #0x44 ldr r1, [r3, #0x44] rsb r2, r5, #0 smull r3, r1, r2, r1 adds r2, r3, #0x800 adc r1, r1, #0 mov r2, r2, lsr #0xc orr r2, r2, r1, lsl #20 add r3, r5, r2 add r0, r0, #0x1000 mov r1, #0x1000 mov r2, #0x66 str r3, [r6, #0xfe0] bl func_0202b0f4 cmp r0, #0 beq _021824e0 mov r0, r6 mov r1, #3 bl func_ov38_02185720 add r0, r6, #0x2c8 mov r1, #0x10 bl func_ov38_0217be60 b _021824e0 _02182498: ldr r0, _02182554 ; =0x00001e66 str r4, [r6, #0xfd8] str r0, [r6, #0xfdc] str r5, [r6, #0xfe0] ldr r1, [r3, #0x54] mov r0, r6 sub r4, r1, #1 mov r1, #2 mov r2, #0 str r4, [r3, #0x54] bl func_ov00_020c1e2c cmp r0, #0 beq _021824e0 ldr r0, _02182558 ; =data_027e0ffc ldr r1, _0218255c ; =0x00000443 add r2, r6, #0x48 mov r3, #0 bl func_ov00_020ceacc _021824e0: mov r0, #0x29 str r0, [sp] add r0, r6, #0x1000 add r1, r6, #0x3d8 ldr r2, [r0, #0x40] ldr r3, [r0, #0x38] add r0, r6, #0x48 add r1, r1, #0xc00 bl func_ov38_0217ca70 mov r0, r6 bl func_ov38_0217dfe4 cmp r0, #0 beq _02182528 add r0, r6, #0x1000 ldr r1, [r0, #0x54] cmp r1, #4 movlt r1, #4 strlt r1, [r0, #0x54] _02182528: mov r0, r6 mov r1, #0x1a bl func_ov00_020c1fc8 mov r1, #0 mov r0, r6 mov r2, r1 bl func_ov00_020c243c add sp, sp, #0x10 ldmia sp!, {r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov38_0218233c _0218254c: .word data_02050f54 _02182550: .word 0x00003d9a _02182554: .word 0x00001e66 _02182558: .word data_027e0ffc _0218255c: .word 0x00000443 .global func_ov38_02182560 arm_func_start func_ov38_02182560 func_ov38_02182560: ; 0x02182560 stmdb sp!, {r3, lr} add ip, r0, #0x1000 mov r2, #0 ldr r1, _0218259c ; =0x0000059a str r2, [ip, #0x44] str r1, [ip, #0x3c] mov r1, #0x400 str r1, [ip, #0x40] mov r1, #0x5a str r1, [ip, #0x54] mov r1, #0xb mov r3, #0x200 str r2, [ip, #0x68] bl func_ov38_0217d570 ldmia sp!, {r3, pc} .align 2, 0 arm_func_end func_ov38_02182560 _0218259c: .word 0x0000059a .global func_ov38_021825a0 arm_func_start func_ov38_021825a0 func_ov38_021825a0: ; 0x021825a0 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0xc4 mov sb, r0 add r1, sb, #0x1000 ldr r2, [r1, #0x68] cmp r2, #3 addls pc, pc, r2, lsl #2 b _02182d8c _021825c0: ; jump table b _021825d0 ; case 0 b _02182870 ; case 1 b _02182b78 ; case 2 b _02182d64 ; case 3 _021825d0: ldr r2, [r1, #0x44] mov r0, #0x180 add r2, r2, r2, lsl #1 add r2, r2, #0x1000 mul r0, r2, r0 add r0, r0, #0x800 mov r0, r0, asr #0xc strh r0, [r1, #0x82] ldrb r0, [r1, #0xa3] cmp r0, #0 ldrnesh r6, [r1, #0x82] bne _02182610 ldrsh r0, [r1, #0x82] rsb r0, r0, #0 mov r0, r0, lsl #0x10 mov r6, r0, asr #0x10 _02182610: add r1, sb, #0x1000 ldrsh r2, [r1, #0x84] add r0, sb, #0x38 ldr r4, _02182d94 ; =data_02050f54 add r2, r2, r6 strh r2, [r1, #0x84] ldrh r2, [r1, #0x84] ldr r1, [r1, #0x3c] add r0, r0, #0x1000 mov r2, r2, asr #0x4 mov r3, r2, lsl #0x1 add r2, r3, #1 mov r3, r3, lsl #0x1 ldrsh r3, [r4, r3] mov r2, r2, lsl #0x1 ldrsh r4, [r4, r2] add r3, r3, r3, lsl #3 mov r5, r3, lsl #0xc add r4, r4, r4, lsl #3 mov r3, r4, lsl #0xc add r5, r5, #0x800 add r4, r3, #0x800 mov r2, #0x66 mov r7, r5, asr #0xc mov r8, r4, asr #0xc bl func_0202b0f4 add r3, sb, #0x1000 rsb fp, r7, #0 ldr ip, [r3, #0x44] ldr r2, _02182d98 ; =0x0000299a rsb r7, r8, #0 umull sl, lr, ip, r2 mov r2, #0 mla lr, ip, r2, lr ldr r2, _02182d98 ; =0x0000299a mov r8, ip, asr #0x1f mla lr, r8, r2, lr adds r8, sl, #0x800 adc r2, lr, #0 mov r8, r8, lsr #0xc orr r8, r8, r2, lsl #20 add r2, r8, #0x66 add r2, r2, #0x1e00 str r2, [sb, #0xfdc] ldr r2, [r3, #0x44] add r1, sb, #0x3d8 smull r8, r2, fp, r2 adds r8, r8, #0x800 adc r2, r2, #0 mov r8, r8, lsr #0xc orr r8, r8, r2, lsl #20 add r2, r8, r5, asr #12 str r2, [sb, #0xfd8] ldr r2, [r3, #0x44] add r0, sb, #0x48 smull r5, r2, r7, r2 adds r5, r5, #0x800 adc r2, r2, #0 mov r5, r5, lsr #0xc orr r5, r5, r2, lsl #20 add r2, r5, r4, asr #12 str r2, [sb, #0xfe0] mov r2, #0x29 str r2, [sp] ldr r2, [r3, #0x40] ldr r3, [r3, #0x38] add r1, r1, #0xc00 bl func_ov38_0217ca70 add r0, r6, r6, lsr #31 mov r0, r0, lsl #0xf mov r0, r0, lsr #0x10 mov r0, r0, asr #0x4 mov r1, r0, lsl #0x1 add r0, sb, #0x1000 ldr r3, [r0, #0x44] mov r2, #0 mul r0, r3, r3 mov r0, r0, asr #0xc str r0, [sp, #0xbc] str r2, [sp, #0xb8] str r2, [sp, #0xc0] str r2, [sp, #0xa8] str r2, [sp, #0xb0] add r0, r1, #1 mov r3, r1, lsl #0x1 ldr r2, _02182d94 ; =data_02050f54 mov r1, r0, lsl #0x1 ldrsh r3, [r2, r3] ldrsh r2, [r2, r1] mov r0, sb add r1, sp, #0xa8 str r2, [sp, #0xb4] add r2, sp, #0xb8 str r3, [sp, #0xac] bl func_ov38_0217e26c add r0, sb, #0x1000 ldr r1, [r0, #0x54] mov r4, #1 cmp r1, #0 bne _02182808 add r0, sb, #0x44 add r0, r0, #0x1000 mov r1, #0x1000 mov r2, #0x14 bl func_0202b0f4 cmp r0, #0 beq _02182810 ldr r0, [sb, #0x2c4] add r1, sb, #0x1b4 add r0, r1, r0, lsl #7 add r0, r0, #0xc bl func_0202e544 cmp r0, #0 beq _02182810 mov r0, sb mov r1, #0x17 mov r2, r4 mov r3, #0x200 bl func_ov38_0217d570 add r0, sb, #0x1000 ldr r1, [r0, #0x68] mov r4, #0 add r1, r1, #1 str r1, [r0, #0x68] str r4, [r0, #0x44] b _02182810 _02182808: sub r1, r1, #1 str r1, [r0, #0x54] _02182810: cmp r4, #0 addeq sp, sp, #0xc4 ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} ldr r0, [sb, #0x2c4] add r1, sb, #0x1b4 add r4, r1, r0, lsl #7 add r0, r4, #0xc mov r1, #0x1000 bl func_0202e310 cmp r0, #0 bne _02182854 add r0, r4, #0xc mov r1, #0x11000 bl func_0202e310 cmp r0, #0 addeq sp, sp, #0xc4 ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} _02182854: ldr r0, _02182d9c ; =data_027e0ffc ldr r1, _02182da0 ; =0x00000446 add r2, sb, #0x48 mov r3, #0 bl func_ov00_020ceacc add sp, sp, #0xc4 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} _02182870: add r0, sb, #0x38 ldr r1, [r1, #0x3c] add r0, r0, #0x1000 mov r2, #0x66 bl func_0202b0f4 mov r0, #0x29 str r0, [sp] add r0, sb, #0x1000 add r1, sb, #0x3d8 ldr r2, [r0, #0x40] ldr r3, [r0, #0x38] add r0, sb, #0x48 add r1, r1, #0xc00 bl func_ov38_0217ca70 mov r1, #0 mov r0, #0x1000 str r0, [sp, #0xa4] add r0, sb, #0x1000 str r1, [sp, #0x9c] str r1, [sp, #0xa0] ldrsh r1, [r0, #0x94] add r0, sp, #0x9c bl func_ov00_020a61ac add r0, sb, #0x1000 ldrb r4, [r0, #0xa3] ldr r3, [sp, #0x9c] ldr r2, [sb, #0xfb4] ldr r1, [sp, #0xa4] ldr r0, [sb, #0xfac] mul r2, r3, r2 mul r0, r1, r0 cmp r4, #0 sub r1, r2, r0 beq _02182900 cmp r1, #0xb50 bgt _02182918 _02182900: cmp r4, #0 bne _02182920 mov r0, #0xb50 rsb r0, r0, #0 cmp r1, r0 bge _02182920 _02182918: mov r5, #1 b _02182924 _02182920: mov r5, #0 _02182924: ldr r0, [sb, #0x2c4] add r1, sb, #0x1b4 add r4, r1, r0, lsl #7 add r0, r4, #0xc bl func_0202e58c cmp r0, #0 beq _021829c0 add r0, sb, #0x1000 ldr r1, [r0, #0x68] mov r3, #0x96 add r1, r1, #1 str r1, [r0, #0x68] mov r1, #3 str r1, [r0, #0x58] mov r6, #0 strh r6, [r0, #0x84] ldr r1, [sb, #0xfd8] add r2, r3, #0x9d str r1, [sb, #0xfe4] ldr r5, [sb, #0xfdc] mov r1, #0x800 str r5, [sb, #0xfe8] ldr r5, [sb, #0xfe0] str r5, [sb, #0xfec] str r3, [r0, #0x54] strh r6, [r0, #0x82] str r6, [r0, #0x38] str r2, [r0, #0x40] str r1, [r0, #0x3c] ldr r2, [sb, #0x18] ldr r1, [sb, #0x1c] ldr r0, [sb, #0x14] str r0, [sb, #0xfd8] str r2, [sb, #0xfdc] str r1, [sb, #0xfe0] ldr r0, [sb, #0xfdc] sub r0, r0, #0xa000 str r0, [sb, #0xfdc] b _02182b14 _021829c0: ldr r0, [r4, #0x14] cmp r0, #0x64000 bge _02182a7c cmp r5, #0 bne _02182a7c add r0, sb, #0x44 mov r3, #0 mov r1, #0x1000 add r0, r0, #0x1000 mov r2, #0xcd str r3, [sp, #0x90] str r1, [sp, #0x94] str r3, [sp, #0x98] bl func_0202b0f4 add r0, sb, #0x82 add r0, r0, #0x1000 mov r1, #0x300 mov r2, #0x40 bl func_0202b154 add r0, sb, #0x1000 ldrb r1, [r0, #0xa3] ldrsh r0, [r0, #0x82] mov r6, #0 cmp r1, #0 rsbeq r0, r0, #0 moveq r0, r0, lsl #0x10 moveq r0, r0, asr #0x10 add r0, r0, r0, lsr #31 mov r0, r0, lsl #0xf mov r0, r0, lsr #0x10 mov r0, r0, asr #0x4 mov r2, r0, lsl #0x1 add r0, r2, #1 ldr r1, _02182d94 ; =data_02050f54 mov r2, r2, lsl #0x1 ldrsh r5, [r1, r2] mov r0, r0, lsl #0x1 ldrsh r3, [r1, r0] add r1, sp, #0x80 add r2, sp, #0x90 mov r0, sb str r6, [sp, #0x80] str r5, [sp, #0x84] str r6, [sp, #0x88] str r3, [sp, #0x8c] bl func_ov38_0217e26c b _02182b14 _02182a7c: mov r0, #0x1000 mov r1, #0 str r0, [sp, #0x7c] str r0, [sp, #0x68] str r0, [sp, #0x50] add r0, sb, #0x1000 str r1, [sp, #0x70] str r1, [sp, #0x74] str r1, [sp, #0x78] str r1, [sp, #0x64] str r1, [sp, #0x6c] str r1, [sp, #0x48] str r1, [sp, #0x4c] ldrsh r1, [r0, #0x94] add r0, sp, #0x48 bl func_ov00_020a61ac ldr r1, [sb, #0xfac] add r0, sp, #0x54 str r1, [sp, #8] ldr r2, [sb, #0xfb0] add r1, sp, #8 str r2, [sp, #0xc] ldr r3, [sb, #0xfb4] add r2, sp, #0x48 str r3, [sp, #0x10] bl func_ov00_020d5f98 ldr r2, _02182da4 ; =0x00000f33 add r0, sp, #0x54 add r1, sp, #0x70 bl func_ov00_020d59f0 add r0, sb, #0x3b8 add r1, sp, #0x54 add r0, r0, #0xc00 bl func_ov00_020d5eac mov r0, sb add r1, sp, #0x70 add r2, sp, #0x64 bl func_ov38_0217e26c _02182b14: add r0, r4, #0xc mov r1, #0x1000 bl func_0202e310 cmp r0, #0 beq _02182b44 ldr r0, _02182d9c ; =data_027e0ffc ldr r1, _02182da8 ; =0x00000447 add r2, sb, #0x48 mov r3, #0 bl func_ov00_020ceacc add sp, sp, #0xc4 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} _02182b44: add r0, r4, #0xc mov r1, #0x79000 bl func_0202e310 cmp r0, #0 addeq sp, sp, #0xc4 ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} ldr r0, _02182d9c ; =data_027e0ffc ldr r1, _02182dac ; =0x00000448 add r2, sb, #0x48 mov r3, #0 bl func_ov00_020ceacc add sp, sp, #0xc4 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} _02182b78: add r0, sb, #0x38 ldr r1, [r1, #0x3c] add r0, r0, #0x1000 mov r2, #0x66 bl func_0202b0f4 mov r0, #0x29 add r1, sb, #0x3d8 str r0, [sp] add r0, sb, #0x1000 ldr r2, [r0, #0x40] ldr r3, [r0, #0x38] add r0, sb, #0x48 add r1, r1, #0xc00 bl func_ov38_0217ca70 mov r1, #0x10 add r0, sb, #0x82 str r1, [sp] add r1, sb, #0x1000 ldr r2, [r1, #0x40] add r0, r0, #0x1000 mov r1, #0x600 mov r3, #0x400 bl func_ov38_0217c994 add r1, sb, #0x1000 ldr r0, [r1, #0x54] cmp r0, #0 bne _02182cd4 ldr r2, [r1, #0x68] mov r0, #0x800 add r2, r2, #1 str r2, [r1, #0x68] mov r2, #0x2d str r2, [r1, #0x54] ldr r2, [sb, #0x50] ldr r1, [sb, #0x48] rsb r0, r0, #0 str r1, [sp, #0x3c] str r0, [sp, #0x40] str r2, [sp, #0x44] mov r1, #0 str r1, [sp] str r1, [sp, #4] ldr r0, _02182db0 ; =data_027e0e58 add r2, sp, #0x3c ldr r0, [r0] mov r1, #0xb4 mov r3, #2 bl func_ov00_0207c1b0 mov r1, #0 str r1, [sp] str r1, [sp, #4] ldr r0, _02182db0 ; =data_027e0e58 add r2, sp, #0x3c ldr r0, [r0] mov r1, #0xb5 mov r3, #2 bl func_ov00_0207c1b0 mov r1, #0 str r1, [sp] str r1, [sp, #4] ldr r0, _02182db0 ; =data_027e0e58 add r2, sp, #0x3c ldr r0, [r0] mov r1, #0xb6 mov r3, #2 bl func_ov00_0207c1b0 mov r0, #0 str r0, [sp] str r0, [sp, #4] ldr r0, _02182db0 ; =data_027e0e58 mov r1, #0xb7 ldr r0, [r0] add r2, sp, #0x3c mov r3, #2 bl func_ov00_0207c1b0 mov r0, #3 add r1, sp, #0x3c mov r2, #0x2000 mov r3, #0 bl func_ov00_020c7508 ldr r0, _02182d9c ; =data_027e0ffc ldr r1, _02182db4 ; =0x00000449 add r2, sb, #0x48 mov r3, #0 bl func_ov00_020ceacc add sp, sp, #0xc4 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} _02182cd4: sub r2, r0, #1 str r2, [r1, #0x54] mov r4, #0 add r0, sb, #0x82 mov r3, #0x1000 add r0, r0, #0x1000 mov r1, #0x200 mov r2, #0x20 str r4, [sp, #0x20] str r3, [sp, #0x24] str r4, [sp, #0x28] bl func_0202b154 add r0, sb, #0x1000 ldrsh r0, [r0, #0x82] mov r3, r4 ldr r1, _02182d94 ; =data_02050f54 add r0, r0, r0, lsr #31 mov r0, r0, lsl #0xf mov r0, r0, lsr #0x10 mov r0, r0, asr #0x4 mov r2, r0, lsl #0x1 add r0, r2, #1 mov r2, r2, lsl #0x1 ldrsh r5, [r1, r2] mov r0, r0, lsl #0x1 ldrsh r4, [r1, r0] add r1, sp, #0x2c add r2, sp, #0x20 mov r0, sb str r3, [sp, #0x2c] str r5, [sp, #0x30] str r3, [sp, #0x34] str r4, [sp, #0x38] bl func_ov38_0217e26c add sp, sp, #0xc4 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} _02182d64: ldr r0, [r1, #0x54] cmp r0, #0 subne r0, r0, #1 strne r0, [r1, #0x54] addne sp, sp, #0xc4 ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} add r0, r2, #1 str r0, [r1, #0x68] mov r0, #0x3c str r0, [r1, #0x54] _02182d8c: add sp, sp, #0xc4 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 arm_func_end func_ov38_021825a0 _02182d94: .word data_02050f54 _02182d98: .word 0x0000299a _02182d9c: .word data_027e0ffc _02182da0: .word 0x00000446 _02182da4: .word 0x00000f33 _02182da8: .word 0x00000447 _02182dac: .word 0x00000448 _02182db0: .word data_027e0e58 _02182db4: .word 0x00000449 .global func_ov38_02182db8 arm_func_start func_ov38_02182db8 func_ov38_02182db8: ; 0x02182db8 stmdb sp!, {r3, r4, r5, lr} sub sp, sp, #0x20 mov r4, #0 ldr r2, _02182e20 ; =0x0000219a mov r5, r0 sub lr, r4, #0xa00 mov ip, #0x1400 mov r1, #4 add r0, sp, #0xc str r4, [sp, #0xc] str lr, [sp, #0x10] str r4, [sp, #0x14] str ip, [sp, #0x18] str r2, [sp, #0x1c] stmia sp, {r0, r1} sub r1, r1, #5 str r1, [sp, #8] ldr r0, _02182e24 ; =data_027e0ff8 add r3, r5, #0x388 add r2, r3, #0xc00 ldr r0, [r0] add r1, r5, #8 add r3, r3, #0xc00 bl func_ov05_021082e4 add sp, sp, #0x20 ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov38_02182db8 _02182e20: .word 0x0000219a _02182e24: .word data_027e0ff8 .global func_ov38_02182e28 arm_func_start func_ov38_02182e28 func_ov38_02182e28: ; 0x02182e28 add r0, r0, #0x244 add r2, r0, #0xc00 mov r0, #0x30 mla r0, r1, r0, r2 bx lr arm_func_end func_ov38_02182e28 .global func_ov38_02182e3c arm_func_start func_ov38_02182e3c func_ov38_02182e3c: ; 0x02182e3c stmdb sp!, {r4, r5, r6, r7, r8, lr} sub sp, sp, #0x18 mov r8, r0 ldr r3, [r8, #0x48] ldr r0, _0218306c ; =data_ov38_02189224 str r3, [sp, #0xc] ldr r4, [r8, #0x4c] ldr r3, [r0, r1, lsl #2] str r4, [sp, #0x10] ldr r1, [r8, #0x50] mov r7, r2 str r1, [sp, #0x14] ldr r1, [r3, #0x48] add r0, sp, #0xc str r1, [sp] ldr r2, [r3, #0x4c] add r1, sp, #0 str r2, [sp, #4] ldr r3, [r3, #0x50] mov r2, r0 str r3, [sp, #8] bl func_01ff9bf8 add r0, sp, #0xc bl func_01fffb4c cmp r0, #0 beq _02182ec0 add r0, sp, #0xc mov r1, #0x400 bl func_01fffbec add r0, r8, #0x60 add r1, sp, #0xc mov r2, r0 bl func_01ff9bc4 _02182ec0: mov r4, #0 ldr r5, _0218306c ; =data_ov38_02189224 mov r6, r4 _02182ecc: ldr r0, [r5, r6, lsl #2] bl func_ov29_02174ee4 cmp r0, #0 add r6, r6, #1 addne r4, r4, #1 cmp r6, #5 blt _02182ecc add r0, r8, #0x1000 ldr r2, [r0, #0x74] cmp r4, #5 moveq r5, #1 movne r5, #0 mov r6, #0 cmp r2, #3 beq _02182f14 cmp r2, #4 beq _02182f20 b _02182f28 _02182f14: cmp r4, #3 moveq r6, #1 b _02182f28 _02182f20: tst r4, #1 moveq r6, #1 _02182f28: cmp r5, #0 beq _0218302c add r0, r8, #0x1000 ldr r1, [r0, #0x70] cmp r1, #1 beq _02182f4c cmp r1, #2 beq _02182fb4 b _02183014 _02182f4c: cmp r2, #6 addls pc, pc, r2, lsl #2 b _02183014 _02182f58: ; jump table b _02182f74 ; case 0 b _02182f74 ; case 1 b _02182f94 ; case 2 b _02182f94 ; case 3 b _02183014 ; case 4 b _02183014 ; case 5 b _02183014 ; case 6 _02182f74: ldr r1, [r0, #0x74] cmp r1, #6 addlt r1, r1, #1 strlt r1, [r0, #0x74] add r0, r8, #0x2c8 mov r1, #0xa bl func_ov38_0217be60 b _02183014 _02182f94: ldr r1, [r0, #0x74] cmp r1, #6 addlt r1, r1, #1 strlt r1, [r0, #0x74] add r0, r8, #0x2c8 mov r1, #0xd bl func_ov38_0217be60 b _02183014 _02182fb4: cmp r2, #6 addls pc, pc, r2, lsl #2 b _02183014 _02182fc0: ; jump table b _02182fdc ; case 0 b _02182fdc ; case 1 b _02182fdc ; case 2 b _02182fdc ; case 3 b _02182fdc ; case 4 b _02183014 ; case 5 b _02183014 ; case 6 _02182fdc: ldr r1, [r0, #0x74] cmp r1, #6 addlt r1, r1, #1 strlt r1, [r0, #0x74] add r0, r8, #0x1000 ldr r0, [r0, #0x74] cmp r0, #5 add r0, r8, #0x2c8 blt _0218300c mov r1, #0xb bl func_ov38_0217be60 b _02183014 _0218300c: mov r1, #0xa bl func_ov38_0217be60 _02183014: ldr r0, _02183070 ; =data_027e0ffc ldr r1, _02183074 ; =0x0000043f mov r2, r7 mov r3, #0 bl func_ov00_020ceacc b _02183054 _0218302c: ldr r0, _02183070 ; =data_027e0ffc ldr r1, _02183078 ; =0x0000043e mov r2, r7 mov r3, #0 bl func_ov00_020ceacc cmp r6, #0 beq _02183054 add r0, r8, #0x2c8 mov r1, #0xe bl func_ov38_0217be60 _02183054: cmp r5, #0 cmpeq r6, #0 movne r0, #1 moveq r0, #0 add sp, sp, #0x18 ldmia sp!, {r4, r5, r6, r7, r8, pc} .align 2, 0 arm_func_end func_ov38_02182e3c _0218306c: .word data_ov38_02189224 _02183070: .word data_027e0ffc _02183074: .word 0x0000043f _02183078: .word 0x0000043e .global func_ov38_0218307c arm_func_start func_ov38_0218307c func_ov38_0218307c: ; 0x0218307c stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0x3c mov sl, r0 ldr r4, _02183148 ; =0x00000e66 add r8, sl, #0x2f0 mov sb, #0 add r7, sp, #0x18 mov fp, #0xc add r6, sp, #0xc add r5, sp, #0 _021830a4: mov r0, sl mov r1, sb bl func_ov38_02182e28 add r0, r0, #0x24 mov r1, r7 mov r2, fp bl func_02007908 mov r0, sl mov r1, sb bl func_ov38_02182e28 add r0, r0, #0x24 mov r1, r6 mov r2, #0xc bl func_02007908 mov r0, sl mov r1, sb bl func_ov38_02182e28 mov r1, r5 mov r2, #0xc bl func_02007908 mov r0, r4 mov r1, r5 mov r2, r7 mov r3, r7 bl func_01ff9e64 add r0, r4, #0x2c00 mov r1, r5 mov r2, r6 mov r3, r6 bl func_01ff9e64 mov r0, r8 mov r1, r7 mov r2, r6 mov r3, sb bl func_ov38_02184d9c add sb, sb, #1 cmp sb, #5 add r8, r8, #0x240 blt _021830a4 add sp, sp, #0x3c ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 arm_func_end func_ov38_0218307c _02183148: .word 0x00000e66 .global func_ov38_0218314c arm_func_start func_ov38_0218314c func_ov38_0218314c: ; 0x0218314c stmdb sp!, {r3, r4, r5, lr} sub sp, sp, #0x10 mov r5, r0 ldr r0, [r5, #0x2c4] add r2, r5, #0x1b4 add r0, r2, r0, lsl #7 mov r4, r1 bl func_ov00_020c0e04 ldr r0, [r5, #0x2bc] cmp r0, #0 ble _0218324c ldr r2, [r5, #0x2c0] add r0, r5, #0x2bc mov r1, #0 bl func_0202b0f4 cmp r0, #0 ldr r0, [r5, #0x2c4] beq _021831f4 cmp r0, #0 moveq r0, #1 movne r0, #0 add r0, r5, r0, lsl #2 mov r1, #0x18 str r1, [r0, #0x2b4] ldr r0, [r5, #0x2c4] add r1, r5, #0x1b4 add r0, r1, r0, lsl #7 bl func_ov00_020c0d4c mov r1, #0x1000 str r1, [r0, #4] add r0, r5, #0x158 ldr r1, [r0] ldr r1, [r1, #0x2c] blx r1 add r0, r5, #0x158 ldr r2, [r0] ldr r1, [r5, #0x2c4] add r3, r5, #0x1b4 ldr r2, [r2, #0x24] add r1, r3, r1, lsl #7 blx r2 b _0218324c _021831f4: cmp r0, #0 moveq r1, #1 movne r1, #0 add r0, r5, #0x1b4 add r0, r0, r1, lsl #7 bl func_ov00_020c0e04 ldr r0, [r5, #0x2c4] cmp r0, #0 moveq r1, #1 movne r1, #0 add r0, r5, #0x1b4 add r0, r0, r1, lsl #7 bl func_ov00_020c0d4c ldr r2, [r5, #0x2bc] add r1, r5, #0x1b4 str r2, [r0, #4] ldr r0, [r5, #0x2c4] add r0, r1, r0, lsl #7 bl func_ov00_020c0d4c ldr r1, [r5, #0x2bc] rsb r1, r1, #0x1000 str r1, [r0, #4] _0218324c: add r0, r5, #0x1000 ldrb r1, [r0, #0xa5] cmp r1, #0 beq _02183274 ldrb r0, [r0, #0xa6] cmp r0, #0 bne _02183274 mov r0, r5 mov r1, r4 bl func_ov38_021833ac _02183274: mov r0, #0x1c00 ldr r1, [r5, #0x4c] rsb r0, r0, #0 cmp r1, r0 bge _02183378 ldr r1, [r5, #0x50] ldr r2, [r5, #0x48] add r0, r0, #0x1400 str r2, [sp, #4] str r0, [sp, #8] str r1, [sp, #0xc] ldr r0, [r5, #0xe38] cmp r0, #0 bne _0218330c mov r1, #2 str r1, [sp] ldr r0, _0218339c ; =data_027e0e58 add r1, r5, #0x238 ldr r0, [r0] add r3, sp, #4 add r1, r1, #0xc00 mov r2, #0xb8 bl func_ov00_0207c1f8 ldr r0, [r5, #0x2d8] cmp r0, #0xa cmpne r0, #0x12 cmpne r0, #1 addne sp, sp, #0x10 ldmneia sp!, {r3, r4, r5, pc} add r0, r5, #0x48 bl func_ov38_02185690 ldr r0, _021833a0 ; =data_027e0ffc ldr r1, _021833a4 ; =0x0000042f add r2, r5, #0x48 mov r3, #0 bl func_ov00_020ceacc add sp, sp, #0x10 ldmia sp!, {r3, r4, r5, pc} _0218330c: beq _02183354 ldr r1, [r0, #0x20] ldr r1, [r1] ldr r1, [r1, #4] add r1, r2, r1 str r1, [r0, #0x28] ldr r1, [r0, #0x20] ldr r2, [sp, #8] ldr r1, [r1] ldr r1, [r1, #8] add r1, r2, r1 str r1, [r0, #0x2c] ldr r1, [r0, #0x20] ldr r2, [sp, #0xc] ldr r1, [r1] ldr r1, [r1, #0xc] add r1, r2, r1 str r1, [r0, #0x30] _02183354: mov r0, #0 str r0, [sp] ldr r3, [r5, #8] ldr r0, _021833a0 ; =data_027e0ffc ldr r1, _021833a8 ; =0x00000438 add r2, sp, #4 bl func_ov00_020cec60 add sp, sp, #0x10 ldmia sp!, {r3, r4, r5, pc} _02183378: ldr r0, [r5, #0xe38] cmp r0, #0 addeq sp, sp, #0x10 ldmeqia sp!, {r3, r4, r5, pc} add r0, r5, #0x238 add r0, r0, #0xc00 bl func_ov00_020b7e6c add sp, sp, #0x10 ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov38_0218314c _0218339c: .word data_027e0e58 _021833a0: .word data_027e0ffc _021833a4: .word 0x0000042f _021833a8: .word 0x00000438 .global func_ov38_021833ac arm_func_start func_ov38_021833ac func_ov38_021833ac: ; 0x021833ac stmdb sp!, {r4, r5, r6, lr} mov r6, r0 add r0, r6, #0x48 add r1, r6, #0xfa0 bl func_ov38_02184cdc add r4, r6, #0x2f0 mov r5, #0 _021833c8: mov r0, r6 mov r1, r5 bl func_ov38_02182e28 mov r1, r0 mov r0, r4 bl func_ov38_02184ee8 add r5, r5, #1 cmp r5, #5 add r4, r4, #0x240 blt _021833c8 ldmia sp!, {r4, r5, r6, pc} arm_func_end func_ov38_021833ac .global func_ov38_021833f4 arm_func_start func_ov38_021833f4 func_ov38_021833f4: ; 0x021833f4 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0xc mov sl, r0 mov sb, r1 bl func_ov38_02185584 add r6, sl, #0x2f0 mov r8, r6 mov r7, #0 mov r4, #0xc mov fp, #0x18 _0218341c: cmp sb, #0 bne _0218348c mov r0, sl mov r1, r7 bl func_ov38_02182e28 mov r5, r0 add r1, r8, #0x2c mov r2, r4 bl func_02007908 add r0, r5, #0xc add r1, r8, #0x14 mov r2, fp bl func_02007908 add r0, r5, #0x24 add r1, r8, #0x38 mov r2, #0xc bl func_02007908 ldr r1, [r5] ldr r0, _021834b0 ; =0x00000e66 str r1, [sp] ldr r2, [r5, #4] add r1, sp, #0 str r2, [sp, #4] ldr r3, [r5, #8] add r2, r8, #0x38 str r3, [sp, #8] mov r3, r2 bl func_01ff9e64 _0218348c: mov r0, r6 bl func_ov38_021855c8 add r7, r7, #1 cmp r7, #5 add r8, r8, #0x240 add r6, r6, #0x240 blt _0218341c add sp, sp, #0xc ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 arm_func_end func_ov38_021833f4 _021834b0: .word 0x00000e66 .global func_ov38_021834b4 arm_func_start func_ov38_021834b4 func_ov38_021834b4: ; 0x021834b4 stmdb sp!, {r3, r4, r5, r6, r7, lr} sub sp, sp, #0x28 mov r5, r0 ldr r0, [r5, #0x2d8] cmp r0, #0x11 addne sp, sp, #0x28 ldmneia sp!, {r3, r4, r5, r6, r7, pc} add r0, r5, #0x1000 ldr r1, [r0, #0x50] rsb r0, r1, #0xa cmp r0, #2 movlt r4, #1 movge r4, #0 cmp r1, #0 add r0, r5, #0x1000 moveq r1, #0 streqb r1, [r0, #0xa7] beq _02183528 ldr r1, [r0, #0x50] add r2, r5, #0x3e4 sub r1, r1, #1 str r1, [r0, #0x50] ldr r6, _021837fc ; =0x0000099a ldr r3, _02183800 ; =0x00000b33 add r0, r5, #0x48 add r1, r5, #0x60 add r2, r2, #0xc00 str r6, [sp] bl func_ov38_0217cb2c _02183528: mov r6, #0x29 add r0, r5, #0x34 ldr r3, _02183804 ; =0x00000266 add r0, r0, #0x1000 rsb r2, r6, #0x35c mov r1, #0 str r6, [sp] bl func_ov38_0217ca04 add lr, r5, #0x1000 ldrsh r0, [lr, #0x8e] strh r0, [lr, #0x8a] ldrsh r0, [lr, #0x90] strh r0, [lr, #0x8c] ldr r2, [lr, #0x34] cmp r2, #0 beq _021835f4 ldrsh r1, [lr, #0x92] ldr r0, _02183808 ; =data_02050f54 ldr ip, _0218380c ; =0x00000e39 mov r3, r1, lsl #0x12 mov r3, r3, lsr #0x10 mov r3, r3, asr #0x4 mov r6, r3, lsl #0x2 add r3, r1, r1, lsl #1 ldrsh r6, [r0, r6] mov r3, r3, lsl #0x10 mov r3, r3, lsr #0x10 mul r7, r6, r2 mov r3, r3, asr #0x4 mov r3, r3, lsl #0x2 ldrsh r0, [r0, r3] add r3, r7, #0x800 mov r3, r3, asr #0xc mul r2, r0, r2 mul r6, r3, ip add r0, r1, #0x55 add r1, r0, #0x1500 add r0, r2, #0x800 strh r1, [lr, #0x92] mov r0, r0, asr #0xc mul r1, r0, ip add r0, r6, #0x800 add r1, r1, #0x800 ldrsh r2, [lr, #0x8a] mov r0, r0, lsl #0x4 mov r1, r1, lsl #0x4 add r0, r2, r0, asr #16 strh r0, [lr, #0x8a] ldrsh r0, [lr, #0x8c] add r0, r0, r1, asr #16 strh r0, [lr, #0x8c] _021835f4: add r1, r5, #0x1000 ldrsh r2, [r1, #0x88] mov r0, #0x1400 rsb r0, r0, #0 cmp r2, r0 bge _021836c4 add r0, r5, #0x358 mov ip, #0 add r3, sp, #0x10 strh ip, [r1, #0x98] add r0, r0, #0xc00 ldmia r0, {r0, r1, r2} stmia r3, {r0, r1, r2} ldr r0, [sp, #0x14] ldr r2, [r5, #0x18] ldr r1, _02183810 ; =0x00000333 sub r2, r2, r0 umull r6, lr, r2, r1 mla lr, r2, ip, lr mov r2, r2, asr #0x1f mla lr, r2, r1, lr adds r6, r6, #0x800 adc r1, lr, #0 mov r2, r6, lsr #0xc orr r2, r2, r1, lsl #20 add r1, r0, r2 str r1, [sp, #0x14] add r2, sp, #0x1c mov r0, r3 add r1, r5, #0x48 bl func_01ff9bf8 ldrsh r1, [r5, #0x78] add r0, sp, #0x1c rsb r1, r1, #0 mov r1, r1, lsl #0x10 mov r1, r1, asr #0x10 bl func_ov00_020a61ac ldr r0, [sp, #0x1c] ldr r2, _02183814 ; =0x00001333 str r0, [r5, #0x7c] ldr r1, [sp, #0x20] mov r0, r5 str r1, [r5, #0x80] ldr r3, [sp, #0x24] mov r1, #0x1a str r3, [r5, #0x84] str r2, [r5, #0x88] bl func_ov00_020c1fc8 cmp r0, #0 moveq r0, #1 movne r0, #0 b _021836c8 _021836c4: mov r0, #1 _021836c8: cmp r0, #0 beq _0218376c add r1, r5, #0x388 add r0, r5, #0x1000 mov r2, #1 strh r2, [r0, #0x98] add r0, r1, #0xc00 add r3, sp, #4 ldmia r0, {r0, r1, r2} stmia r3, {r0, r1, r2} add r1, r5, #0x364 mov r0, #0x800 mov r2, r3 rsb r0, r0, #0 add r1, r1, #0xc00 bl func_01ff9e64 add r0, sp, #4 add r2, sp, #0x1c add r1, r5, #0x48 bl func_01ff9bf8 ldrsh r1, [r5, #0x78] add r0, sp, #0x1c rsb r1, r1, #0 mov r1, r1, lsl #0x10 mov r1, r1, asr #0x10 bl func_ov00_020a61ac ldr r0, [sp, #0x1c] mov r2, #0x1400 str r0, [r5, #0x7c] ldr r1, [sp, #0x20] mov r0, r5 str r1, [r5, #0x80] ldr r3, [sp, #0x24] mov r1, #0x1a str r3, [r5, #0x84] str r2, [r5, #0x88] bl func_ov00_020c1fc8 mov r1, #0 mov r0, r5 mov r2, r1 bl func_ov00_020c243c _0218376c: mov r0, r5 bl func_ov38_02182db8 cmp r4, #0 beq _021837c4 mov r0, r5 mov r1, #0 bl func_ov38_0218314c ldr r1, [r5, #0xff0] ldr r0, [r5, #0xf58] add sp, sp, #0x28 str r0, [r1, #0x48] ldr r0, [r5, #0xf5c] str r0, [r1, #0x4c] ldr r0, [r5, #0xf60] str r0, [r1, #0x50] ldr r0, [r5, #0xf58] str r0, [r1, #0x54] ldr r0, [r5, #0xf5c] str r0, [r1, #0x58] ldr r0, [r5, #0xf60] str r0, [r1, #0x5c] ldmia sp!, {r3, r4, r5, r6, r7, pc} _021837c4: add r0, r5, #0x100 ldrsh r0, [r0, #0x20] cmp r0, #0 addne sp, sp, #0x28 ldmneia sp!, {r3, r4, r5, r6, r7, pc} add r0, r5, #0x1000 ldr r0, [r0, #0x50] cmp r0, #2 addge sp, sp, #0x28 ldmgeia sp!, {r3, r4, r5, r6, r7, pc} ldr r0, _02183818 ; =data_ov29_0217a4ac bl func_ov09_02113698 add sp, sp, #0x28 ldmia sp!, {r3, r4, r5, r6, r7, pc} .align 2, 0 arm_func_end func_ov38_021834b4 _021837fc: .word 0x0000099a _02183800: .word 0x00000b33 _02183804: .word 0x00000266 _02183808: .word data_02050f54 _0218380c: .word 0x00000e39 _02183810: .word 0x00000333 _02183814: .word 0x00001333 _02183818: .word data_ov29_0217a4ac .global func_ov38_0218381c arm_func_start func_ov38_0218381c func_ov38_0218381c: ; 0x0218381c stmdb sp!, {r4, r5, lr} sub sp, sp, #0x24 mov r5, r0 mov r4, r1 bl func_ov00_020c313c cmp r0, #0 beq _02183a7c mov r0, r5 bl func_ov38_0217e4e0 add r0, r5, #0x1000 ldrb r1, [r0, #0xa1] cmp r1, #0 beq _02183870 mov r0, r5 bl func_ov38_021834b4 mov r1, r4 add r0, r5, #0xa4 add r2, r5, #0x48 bl func_ov00_0207a1c8 add sp, sp, #0x24 ldmia sp!, {r4, r5, pc} _02183870: ldr r0, [r0, #0x70] cmp r0, #0 ldr r0, [r5, #0x2d8] bne _021839cc cmp r0, #3 beq _02183a28 cmp r0, #2 add r2, sp, #0x18 bne _0218392c add r0, r5, #0x388 add r0, r0, #0xc00 add r1, r5, #0x48 bl func_01ff9bf8 add r0, r5, #0x1000 ldrb r0, [r0, #0xab] ldrsh r1, [r5, #0x78] cmp r0, #0 add r0, sp, #0x18 rsb r1, r1, #0 beq _021838fc mov r1, r1, lsl #0x10 mov r1, r1, asr #0x10 bl func_ov00_020a61ac ldr r1, [sp, #0x20] ldr r0, [sp, #0x18] add r1, r1, #0xc00 str r1, [sp, #0x20] str r0, [r5, #0x7c] ldr r1, [sp, #0x1c] mov r0, #0x1000 str r1, [r5, #0x80] ldr r1, [sp, #0x20] str r1, [r5, #0x84] str r0, [r5, #0x88] b _02183a28 _021838fc: mov r1, r1, lsl #0x10 mov r1, r1, asr #0x10 bl func_ov00_020a61ac ldr r1, [sp, #0x18] ldr r0, _02183a94 ; =0x0000151f str r1, [r5, #0x7c] ldr r1, [sp, #0x1c] str r1, [r5, #0x80] ldr r1, [sp, #0x20] str r1, [r5, #0x84] str r0, [r5, #0x88] b _02183a28 _0218392c: cmp r0, #0x11 bne _02183980 add r0, r5, #0x388 add r0, r0, #0xc00 add r1, r5, #0x48 bl func_01ff9bf8 ldrsh r1, [r5, #0x78] add r0, sp, #0x18 rsb r1, r1, #0 mov r1, r1, lsl #0x10 mov r1, r1, asr #0x10 bl func_ov00_020a61ac ldr r1, [sp, #0x18] ldr r0, _02183a98 ; =0x00001ccd str r1, [r5, #0x7c] ldr r1, [sp, #0x1c] str r1, [r5, #0x80] ldr r1, [sp, #0x20] str r1, [r5, #0x84] str r0, [r5, #0x88] b _02183a28 _02183980: add r0, r5, #0x358 add r0, r0, #0xc00 add r1, r5, #0x48 bl func_01ff9bf8 ldrsh r1, [r5, #0x78] add r0, sp, #0x18 rsb r1, r1, #0 mov r1, r1, lsl #0x10 mov r1, r1, asr #0x10 bl func_ov00_020a61ac ldr r1, [sp, #0x18] ldr r0, _02183a9c ; =0x00000e66 str r1, [r5, #0x7c] ldr r1, [sp, #0x1c] str r1, [r5, #0x80] ldr r1, [sp, #0x20] str r1, [r5, #0x84] str r0, [r5, #0x88] b _02183a28 _021839cc: cmp r0, #0xe mvnne r0, #0 strne r0, [r5, #0x88] bne _02183a28 add r0, r5, #0x388 add r2, sp, #0xc add r0, r0, #0xc00 add r1, r5, #0x48 bl func_01ff9bf8 ldrsh r1, [r5, #0x78] add r0, sp, #0xc rsb r1, r1, #0 mov r1, r1, lsl #0x10 mov r1, r1, asr #0x10 bl func_ov00_020a61ac ldr r1, [sp, #0xc] ldr r0, _02183a94 ; =0x0000151f str r1, [r5, #0x7c] ldr r1, [sp, #0x10] str r1, [r5, #0x80] ldr r1, [sp, #0x14] str r1, [r5, #0x84] str r0, [r5, #0x88] _02183a28: add r0, r5, #0x2c8 bl func_ov38_0217bdb4 mov r0, r5 mov r1, r4 bl func_ov38_0218314c mov r0, r5 bl func_ov38_02185830 mov r0, #0x1000 ldr ip, [r5, #0xf5c] rsb r0, r0, #0 cmp ip, r0 movle ip, r0 ldr r0, _02183aa0 ; =data_027e0fc8 ldr r3, [r5, #0xf60] ldr r2, [r5, #0xf58] ldr r0, [r0] add r1, sp, #0 str r2, [sp] str ip, [sp, #4] str r3, [sp, #8] bl func_ov00_020bb6d4 _02183a7c: mov r1, r4 add r0, r5, #0xa4 add r2, r5, #0x48 bl func_ov00_0207a1c8 add sp, sp, #0x24 ldmia sp!, {r4, r5, pc} .align 2, 0 arm_func_end func_ov38_0218381c _02183a94: .word 0x0000151f _02183a98: .word 0x00001ccd _02183a9c: .word 0x00000e66 _02183aa0: .word data_027e0fc8 .global func_ov38_02183aa4 arm_func_start func_ov38_02183aa4 func_ov38_02183aa4: ; 0x02183aa4 stmdb sp!, {r3, r4, r5, lr} mov r5, r0 mov r4, r1 bl func_ov00_020c313c cmp r0, #0 beq _02183b48 ldr r1, [r5, #0x2e8] mvn r0, #0 cmp r1, r0 beq _02183ae0 ldr r0, _02183b5c ; =data_027e0f74 ldr r0, [r0] bl func_ov00_02097b9c cmp r0, #0 bne _02183b04 _02183ae0: ldr r1, [r5, #0x2ec] mvn r0, #0 cmp r1, r0 beq _02183b48 ldr r0, _02183b5c ; =data_027e0f74 ldr r0, [r0] bl func_ov00_02097b9c cmp r0, #0 beq _02183b48 _02183b04: add r0, r5, #0x2c8 bl func_ov38_0217bdb4 mov r0, r5 mov r1, r4 bl func_ov38_0218314c ldr r0, [r5, #0x2e0] cmp r0, #0 beq _02183b48 ldr r0, [r5, #0x2e4] tst r0, #1 add r0, r5, r0, asr #1 ldreq r1, [r5, #0x2e0] beq _02183b44 ldr r2, [r0] ldr r1, [r5, #0x2e0] ldr r1, [r2, r1] _02183b44: blx r1 _02183b48: mov r1, r4 add r0, r5, #0xa4 add r2, r5, #0x48 bl func_ov00_0207a1c8 ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov38_02183aa4 _02183b5c: .word data_027e0f74 .global func_ov38_02183b60 arm_func_start func_ov38_02183b60 func_ov38_02183b60: ; 0x02183b60 stmdb sp!, {r4, r5, lr} sub sp, sp, #0x1c mov r5, r0 add r0, r5, #0x100 ldrsh r2, [r0, #0x20] mov r4, r1 cmp r2, #0 addgt r0, r5, #0x1000 ldrgtsh r0, [r0, #0x7e] cmpgt r2, r0 bgt _02183be0 ldr r0, _02183c9c ; =data_027e0e5c mov r1, #1 bl func_ov00_0207c7e8 ldr r0, _02183ca0 ; =data_027e0ffc ldr r1, _02183ca4 ; =0x00000191 add r2, r5, #0x48 mov r3, #0 bl func_ov00_020ceacc add r0, r5, #0x100 ldrsh r0, [r0, #0x20] cmp r0, #0 bgt _02183bf4 ldr r0, _02183ca8 ; =data_ov00_020eec68 mov r1, #5 bl func_ov00_020d716c ldr r0, _02183cac ; =data_027e0fc8 ldr r0, [r0] ldr r1, [r0] ldr r1, [r1, #0x84] blx r1 b _02183bf4 _02183be0: ldr r0, _02183ca0 ; =data_027e0ffc add r2, r5, #0x48 mov r1, #0x190 mov r3, #0 bl func_ov00_020ceacc _02183bf4: add r1, sp, #0 mov r0, r5 bl func_ov00_020c2a0c ldr r0, [r4] ldr r1, [r4, #8] bl func_01ffa0f4 mov r0, r0, lsl #0x10 mov r0, r0, asr #0x10 mov r0, r0, lsl #0x10 mov r0, r0, lsr #0x10 mov r0, r0, asr #0x4 mov r1, r0, lsl #0x1 add r0, r1, #1 ldr r3, [sp, #0xc] ldr r2, _02183cb0 ; =data_02050f54 mov r1, r1, lsl #0x1 mov r0, r0, lsl #0x1 ldrsh r1, [r2, r1] rsb r3, r3, #0 ldrsh r0, [r2, r0] smull r2, r4, r1, r3 adds r5, r2, #0x800 ldr r1, [sp, #4] smull r3, r2, r0, r3 adc r4, r4, #0 adds r3, r3, #0x800 mov r5, r5, lsr #0xc adc r0, r2, #0 mov r2, r3, lsr #0xc orr r5, r5, r4, lsl #20 ldr r3, [sp] orr r2, r2, r0, lsl #20 ldr r4, [sp, #8] add r3, r3, r5 add r2, r4, r2 add r0, sp, #0x10 str r1, [sp, #0x14] str r3, [sp, #0x10] str r2, [sp, #0x18] bl func_ov00_020c71fc add sp, sp, #0x1c ldmia sp!, {r4, r5, pc} .align 2, 0 arm_func_end func_ov38_02183b60 _02183c9c: .word data_027e0e5c _02183ca0: .word data_027e0ffc _02183ca4: .word 0x00000191 _02183ca8: .word data_ov00_020eec68 _02183cac: .word data_027e0fc8 _02183cb0: .word data_02050f54 .global func_ov38_02183cb4 arm_func_start func_ov38_02183cb4 func_ov38_02183cb4: ; 0x02183cb4 stmdb sp!, {r3, r4, r5, lr} sub sp, sp, #0x18 mov r5, r0 mov r4, r1 add r0, r5, #0x100 ldrsh r2, [r0, #0x20] ldrb r1, [r4] sub r1, r2, r1 strh r1, [r0, #0x20] ldrsh r1, [r0, #0x20] cmp r1, #0 movlt r1, #0 strlth r1, [r0, #0x20] add r0, r5, #0x1000 ldrsh r2, [r0, #0x86] ldrb r1, [r4] add r1, r2, r1 strh r1, [r0, #0x86] ldrsh r0, [r0, #0x86] cmp r0, #0x14 ble _02183d4c ldr r1, _02183d60 ; =data_027e0f94 add r2, sp, #0xc add r0, r5, #0x48 bl func_01ff9bf8 mov r2, #0 add r0, sp, #0xc add r1, sp, #0 str r2, [sp, #0x10] bl func_01ff9d4c add r2, r5, #0x60 ldr r0, _02183d64 ; =0x000004cd add r1, sp, #0 mov r3, r2 bl func_01ff9e64 add r0, r5, #0x1000 mov r1, #0 strh r1, [r0, #0x86] _02183d4c: mov r0, r5 add r1, r4, #4 bl func_ov38_02183b60 add sp, sp, #0x18 ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov38_02183cb4 _02183d60: .word data_027e0f94 _02183d64: .word 0x000004cd .global func_ov38_02183d68 arm_func_start func_ov38_02183d68 func_ov38_02183d68: ; 0x02183d68 stmdb sp!, {r4, r5, r6, lr} mov r6, r0 add r2, r6, #0x1000 ldrb r3, [r2, #0xa7] mov r5, r1 cmp r3, #0 movne r0, #0 ldmneia sp!, {r4, r5, r6, pc} ldr r3, _02184098 ; =data_ov29_0217bca0 ldr r4, [r5, #0x14] ldr r3, [r3] cmp r3, #0 ble _02183e88 cmp r4, #0 beq _02183e3c ldr r1, [r4, #4] ldr r0, _0218409c ; =0x424d524e cmp r1, r0 bne _02183dd8 mov r0, r4 bl func_ov14_021231d4 ldr r0, _021840a0 ; =data_027e0ffc ldr r1, _021840a4 ; =0x0000019d add r2, r6, #0x48 mov r3, #0 bl func_ov00_020ceacc mov r0, #1 ldmia sp!, {r4, r5, r6, pc} _02183dd8: ldr r0, _021840a8 ; =0x41525257 cmp r1, r0 bne _02183e08 ldrsh r1, [r4, #0x78] mov r0, r4 mov r2, #1 sub r1, r1, #0x8000 mov r1, r1, lsl #0x10 mov r1, r1, asr #0x10 bl func_ov14_02120ac4 mov r0, #1 ldmia sp!, {r4, r5, r6, pc} _02183e08: ldr r0, _021840ac ; =0x424f4d42 cmp r1, r0 bne _02183e34 mov r0, r4 bl func_ov14_02122eb8 cmp r0, #0 beq _02183e34 mov r0, r4 bl func_ov14_02122e98 mov r0, #1 ldmia sp!, {r4, r5, r6, pc} _02183e34: mov r0, #0 ldmia sp!, {r4, r5, r6, pc} _02183e3c: ldr r0, [r5, #0x10] cmp r0, #0 bne _02183e70 bl func_ov38_021840b8 mov r1, #0xf5 mov r2, #0 bl func_ov00_020bf008 ldr r0, _021840a0 ; =data_027e0ffc ldr r1, _021840b0 ; =0x000001bd add r2, r6, #0x48 mov r3, #0 bl func_ov00_020ceacc b _02184090 _02183e70: ldr r0, _021840a0 ; =data_027e0ffc ldr r1, _021840b0 ; =0x000001bd add r2, r6, #0x48 mov r3, #0 bl func_ov00_020ceacc b _02184090 _02183e88: cmp r4, #0 beq _02183f60 ldr r1, [r4, #4] ldr r0, _0218409c ; =0x424d524e cmp r1, r0 bne _02183ec4 mov r0, r4 bl func_ov14_021231d4 ldr r0, _021840a0 ; =data_027e0ffc ldr r1, _021840a4 ; =0x0000019d add r2, r6, #0x48 mov r3, #0 bl func_ov00_020ceacc mov r0, #1 ldmia sp!, {r4, r5, r6, pc} _02183ec4: ldr r0, _021840a8 ; =0x41525257 cmp r1, r0 bne _02183ef4 ldrsh r1, [r4, #0x78] mov r0, r4 mov r2, #1 sub r1, r1, #0x8000 mov r1, r1, lsl #0x10 mov r1, r1, asr #0x10 bl func_ov14_02120ac4 mov r0, #1 ldmia sp!, {r4, r5, r6, pc} _02183ef4: ldr r0, _021840ac ; =0x424f4d42 cmp r1, r0 bne _02183f20 mov r0, r4 bl func_ov14_02122eb8 cmp r0, #0 beq _02183f58 mov r0, r4 bl func_ov14_02122e98 mov r0, #1 ldmia sp!, {r4, r5, r6, pc} _02183f20: ldr r0, _021840b4 ; =0x524f5045 cmp r1, r0 ldreqb r0, [r2, #0xab] cmpeq r0, #0 bne _02183f58 mov r0, r4 bl func_ov14_02123904 ldr r0, _021840a0 ; =data_027e0ffc add r2, r6, #0x48 mov r1, #0xf6 mov r3, #0 bl func_ov00_020ceacc mov r0, #1 ldmia sp!, {r4, r5, r6, pc} _02183f58: mov r0, #0 ldmia sp!, {r4, r5, r6, pc} _02183f60: ldr r3, [r6, #0x2d8] cmp r3, #0x11 bne _02184054 ldrb r3, [r2, #0xa1] cmp r3, #0 beq _02184028 ldrsh r2, [r2, #0x98] cmp r2, #0 bne _02184028 add r2, r6, #0x100 ldrsh r2, [r2, #0x20] cmp r2, #0 moveq r0, #0 ldmeqia sp!, {r4, r5, r6, pc} bl func_ov38_02183cb4 add r0, r6, #0x1000 mov r1, #1 strb r1, [r0, #0xa7] mov r1, #0xa str r1, [r0, #0x50] mov r1, #0x1000 str r1, [r0, #0x34] ldr r1, [r5, #4] add r0, r6, #0x60 str r1, [r6, #0x60] ldr r2, [r5, #8] mov r1, r0 str r2, [r6, #0x64] ldr r2, [r5, #0xc] str r2, [r6, #0x68] bl func_01ff9d4c ldr r0, [r6, #0x60] add r1, r6, #0x1000 mov r0, r0, lsl #0xa add r0, r0, #0x800 mov r0, r0, asr #0xc str r0, [r6, #0x60] ldr r2, [r6, #0x64] mov r0, #1 mov r2, r2, lsl #0xa add r2, r2, #0x800 mov r2, r2, asr #0xc str r2, [r6, #0x64] ldr r2, [r6, #0x68] mov r2, r2, lsl #0xa add r2, r2, #0x800 mov r2, r2, asr #0xc str r2, [r6, #0x68] strb r0, [r1, #0xad] ldmia sp!, {r4, r5, r6, pc} _02184028: bl func_ov38_021840b8 mov r1, #0xf5 mov r2, #0 bl func_ov00_020bf008 ldr r0, _021840a0 ; =data_027e0ffc ldr r1, _021840b0 ; =0x000001bd add r2, r6, #0x48 mov r3, #0 bl func_ov00_020ceacc mov r0, #1 ldmia sp!, {r4, r5, r6, pc} _02184054: ldr r2, [r5, #0x10] cmp r2, #0 bne _02184090 bl func_ov38_02183cb4 ldr r0, [r6, #0x2d8] cmp r0, #5 beq _02184080 add r0, r6, #0x2c8 mov r1, #5 bl func_ov38_0217be60 b _02184088 _02184080: mov r0, r6 bl func_ov38_0217fb50 _02184088: mov r0, #1 ldmia sp!, {r4, r5, r6, pc} _02184090: mov r0, #0 ldmia sp!, {r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov38_02183d68 _02184098: .word data_ov29_0217bca0 _0218409c: .word 0x424d524e _021840a0: .word data_027e0ffc _021840a4: .word 0x0000019d _021840a8: .word 0x41525257 _021840ac: .word 0x424f4d42 _021840b0: .word 0x000001bd _021840b4: .word 0x524f5045 .global func_ov38_021840b8 arm_func_start func_ov38_021840b8 func_ov38_021840b8: ; 0x021840b8 ldr ip, _021840c4 ; =func_01fffcec mov r0, #0 bx ip .align 2, 0 arm_func_end func_ov38_021840b8 _021840c4: .word func_01fffcec .global func_ov38_021840c8 arm_func_start func_ov38_021840c8 func_ov38_021840c8: ; 0x021840c8 stmdb sp!, {r4, r5, r6, lr} ldr r4, _021840f4 ; =data_ov38_02189224 mov r6, r1 mov r5, #0 _021840d8: ldr r0, [r4, r5, lsl #2] mov r1, r6 bl func_ov29_02172f10 add r5, r5, #1 cmp r5, #5 blt _021840d8 ldmia sp!, {r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov38_021840c8 _021840f4: .word data_ov38_02189224 .global func_ov38_021840f8 arm_func_start func_ov38_021840f8 func_ov38_021840f8: ; 0x021840f8 stmdb sp!, {r3, r4, r5, lr} ldr r4, _0218411c ; =data_ov38_02189224 mov r5, #0 _02184104: ldr r0, [r4, r5, lsl #2] bl func_ov29_02174ef8 add r5, r5, #1 cmp r5, #5 blt _02184104 ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov38_021840f8 _0218411c: .word data_ov38_02189224 .global func_ov38_02184120 arm_func_start func_ov38_02184120 func_ov38_02184120: ; 0x02184120 stmdb sp!, {r4, lr} sub sp, sp, #0x48 mvn r1, #0 mov r4, r0 add r0, sp, #0x1c str r1, [sp, #8] str r1, [sp, #0xc] bl func_ov00_020c1500 mvn r1, #0 add r0, sp, #0x1c str r1, [sp, #0x38] str r1, [sp, #0x3c] bl func_ov00_020c3348 add r0, r4, #0x48 add r3, sp, #0x10 ldmia r0, {r0, r1, r2} stmia r3, {r0, r1, r2} ldr r1, [sp, #0x14] mov r2, r3 add r1, r1, #0x3000 str r1, [sp, #0x14] add r0, sp, #8 str r0, [sp] ldr r0, _021841cc ; =data_027e0fe8 ldr r1, _021841d0 ; =0x474f3154 ldr r0, [r0] add r3, sp, #0x1c bl func_ov00_020c4048 mov r0, #0 str r0, [sp] str r0, [sp, #4] ldr r0, _021841d4 ; =data_027e0e58 ldr r1, _021841d8 ; =0x00001037 ldr r0, [r0] add r2, r4, #0x48 mov r3, #2 bl func_ov00_0207c1b0 ldr r0, _021841dc ; =data_027e0fe4 add r1, sp, #8 ldr r0, [r0] bl func_ov00_020c3674 add sp, sp, #0x48 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov38_02184120 _021841cc: .word data_027e0fe8 _021841d0: .word 0x474f3154 _021841d4: .word data_027e0e58 _021841d8: .word 0x00001037 _021841dc: .word data_027e0fe4 .global func_ov38_021841e0 arm_func_start func_ov38_021841e0 func_ov38_021841e0: ; 0x021841e0 stmdb sp!, {r4, lr} sub sp, sp, #0x38 mvn r1, #0 mov r4, r0 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 add r1, sp, #4 str r1, [sp] ldr r0, _02184250 ; =data_027e0fe8 ldr r1, _02184254 ; =0x474f3150 ldr r0, [r0] add r3, sp, #0xc add r2, r4, #0x48 bl func_ov00_020c4048 ldr r0, _02184258 ; =data_027e0fe4 add r1, sp, #4 ldr r0, [r0] bl func_ov00_020c3674 str r4, [r0, #0x244] add sp, sp, #0x38 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov38_021841e0 _02184250: .word data_027e0fe8 _02184254: .word 0x474f3150 _02184258: .word data_027e0fe4 .global func_ov38_0218425c arm_func_start func_ov38_0218425c func_ov38_0218425c: ; 0x0218425c stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0xcc mov r1, #0 mov r5, r0 mov r0, #0xc800 str r1, [sp, #0xc0] str r1, [sp, #0xc4] str r0, [sp, #0xc8] add r0, r5, #0x1000 ldr r0, [r0, #0x78] cmp r0, #1 beq _02184298 cmp r0, #3 beq _021842b0 b _021842c4 _02184298: mov r0, #0x1000 str r0, [sp, #0x14] mov r6, #0x8000 mov fp, #0xaf0 ldr r4, _0218454c ; =0x00005348 b _021842c4 _021842b0: mov r0, #0xa000 ldr fp, _02184550 ; =0x00006b6c ldr r4, _02184554 ; =0xffffb364 str r0, [sp, #0x14] mov r6, #0x11000 _021842c4: ldr r0, _02184558 ; =data_027e0f94 mov r7, #0 ldr r2, [r0] ldr r1, [r0, #4] mov r3, #0x1000 str r7, [sp, #0xa8] str r7, [sp, #0xac] str r3, [sp, #0xb0] str r2, [sp, #0x34] str r1, [sp, #0x38] ldr r1, [r0, #8] add r0, sp, #0x34 str r1, [sp, #0x3c] ldr r2, [r5, #0x14] add r1, sp, #0x28 str r2, [sp, #0x28] ldr r3, [r5, #0x18] add r2, sp, #0xb4 str r3, [sp, #0x2c] ldr r3, [r5, #0x1c] str r3, [sp, #0x30] bl func_01ff9bf8 sub r0, r4, fp mov r0, r0, lsl #0x10 mov r0, r0, asr #0x10 str r0, [sp, #4] mov r0, r0, lsl #0xb add r0, r0, #0x800 add r0, fp, r0, asr #12 mov r1, r0, lsl #0x10 mov r2, r7 add r0, sp, #0xa8 mov r1, r1, asr #0x10 str r2, [sp, #0xb8] bl func_ov00_020a61ac add r0, sp, #0xb4 add r1, sp, #0xa8 bl func_01ff9c2c cmp r0, #0 bge _02184374 mov r1, #0x8000 add r0, sp, #0xc0 rsb r1, r1, #0 bl func_ov00_020a61ac _02184374: add r0, sp, #0x7c bl func_ov00_020c1500 mvn r1, #0 add r0, sp, #0x7c str r1, [sp, #0x98] str r1, [sp, #0x9c] bl func_ov00_020c3348 mov r0, #1 add r8, sp, #0x64 ldr sb, _0218455c ; =data_ov38_021889cc strh r0, [sp, #0x7c] ldr r7, _02184560 ; =0x021793cc str r8, [sp, #0x18] ldmia sb!, {r0, r1, r2, r3} stmia r8!, {r0, r1, r2, r3} ldr r0, [r7] mov r4, #0 str r0, [sp, #8] ldmia sb, {r0, r1} stmia r8, {r0, r1} ldr r0, [sp, #8] cmp r0, #0 addle sp, sp, #0xcc ldmleia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} ldr r0, [sp, #0x14] sub r0, r6, r0 str r0, [sp, #0xc] mov r0, r0, asr #0x1f str r0, [sp, #0x10] mvn r0, #0 ldr r6, _02184564 ; =data_027e0764 str r0, [sp, #0x1c] _021843f4: ldr r0, [sp, #0x18] add r7, sp, #0x58 add r0, r0, r4, lsl #3 ldmia r0, {r3, r8} add r0, sp, #0xc0 ldmia r0, {r0, r1, r2} stmia r7, {r0, r1, r2} sub r0, r8, r3 add sl, r0, #1 cmp sl, #0 movle r2, #0 ble _0218446c ldr r1, [r6] ldmib r6, {r0, ip} umull r7, lr, ip, r1 mla lr, ip, r0, lr ldr r2, [r6, #0xc] ldr sb, [r6, #0x10] mla lr, r2, r1, lr ldr r8, [r6, #0x14] adds r0, sb, r7 adc r2, r8, lr stmia r6, {r0, r2} cmp sl, #0 beq _0218446c umull r0, r1, r2, sl mov r0, #0 mla r1, r2, r0, r1 mla r1, r0, sl, r1 mov r2, r1 _0218446c: add r8, r3, r2 ldr sb, [sp, #0xc] mov r2, r8, asr #0x1f umull r7, r3, sb, r8 mla r3, sb, r2, r3 ldr r1, [sp, #4] ldr r2, [sp, #0x10] mul r1, r8, r1 add r1, r1, #0x800 add r1, fp, r1, asr #12 mov r1, r1, lsl #0x10 mla r3, r2, r8, r3 adds r7, r7, #0x800 adc r2, r3, #0 mov r3, r7, lsr #0xc orr r3, r3, r2, lsl #20 ldr r2, [sp, #0x14] add r0, sp, #0x58 add r2, r2, r3 mov r1, r1, asr #0x10 str r2, [sp, #0x5c] bl func_ov00_020a61ac add r0, sp, #0x58 add r1, r5, #0x14 add r2, sp, #0x4c bl func_01ff9bc4 ldr r0, [sp, #0x1c] add r3, sp, #0x7c str r0, [sp, #0x20] str r0, [sp, #0x24] ldr r0, [sp, #0x50] add r7, r0, #0x9000 add r0, sp, #0x4c ldmia r0, {r0, r1, r2} str r7, [sp, #0x50] add r7, sp, #0x40 stmia r7, {r0, r1, r2} add r0, sp, #0x20 str r0, [sp] ldr r0, _02184568 ; =data_027e0fe8 ldr r1, _0218456c ; =0x474f3154 ldr r0, [r0] add r2, sp, #0x4c bl func_ov00_020c4048 ldr r0, _02184570 ; =data_027e0fe4 add r1, sp, #0x20 ldr r0, [r0] bl func_ov00_020c3674 mov r1, r7 bl func_ov29_02170e98 ldr r0, [sp, #8] add r4, r4, #1 cmp r4, r0 blt _021843f4 add sp, sp, #0xcc ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 arm_func_end func_ov38_0218425c _0218454c: .word 0x00005348 _02184550: .word 0x00006b6c _02184554: .word 0xffffb364 _02184558: .word data_027e0f94 _0218455c: .word data_ov38_021889cc _02184560: .word 0x021793cc _02184564: .word data_027e0764 _02184568: .word data_027e0fe8 _0218456c: .word 0x474f3154 _02184570: .word data_027e0fe4 .global func_ov38_02184574 arm_func_start func_ov38_02184574 func_ov38_02184574: ; 0x02184574 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0x14 add r0, r0, #0x1000 str r0, [sp, #8] ldr r0, _02184738 ; =0x00007fff mov r4, #0 rsb r0, r0, #0 str r0, [sp, #0xc] ldr r0, _02184738 ; =0x00007fff str r1, [sp] rsb r0, r0, #0 str r4, [sp, #4] mov r6, r4 mov r5, #0x4000 str r0, [sp, #0x10] _021845b0: ldr r0, _0218473c ; =data_ov38_02189224 cmp r6, #4 ldr r7, [r0, r6, lsl #2] moveq r1, #0 addne r1, r6, #1 ldr r0, _0218473c ; =data_ov38_02189224 cmp r6, #0 ldr r8, [r0, r1, lsl #2] moveq r1, #4 ldr r0, _0218473c ; =data_ov38_02189224 subne r1, r6, #1 ldr sb, [r0, r1, lsl #2] ldr r1, [r7, #0x130] sub r0, r1, #3 cmp r0, #1 bhi _02184608 ldr r0, [sp] add r4, r4, #1 cmp r4, r0 addge sp, sp, #0x14 movge r0, #0 ldmgeia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} _02184608: cmp r1, #2 bne _02184708 mov r0, r7 bl func_ov29_02174ee4 cmp r0, #0 bne _02184708 mov r0, r7 bl func_ov29_02172c28 ldr r1, [sp, #8] ldrsh r1, [r1, #0x94] sub r0, r1, r0 mov r0, r0, lsl #0x10 movs sl, r0, asr #0x10 rsbmi r0, sl, #0 movmi r0, r0, lsl #0x10 movmi sl, r0, asr #0x10 cmp sl, r5 bge _02184708 ldr r0, [r8, #0x130] cmp r0, #3 bne _021846a8 mov r0, r7 bl func_ov29_02172c28 mov fp, r0 mov r0, r8 bl func_ov29_02172c28 sub r0, r0, fp mov r1, r0, lsl #0x10 ldr r0, [sp, #0xc] cmp r0, r1, asr #16 mov r1, r1, asr #0x10 ldrgt r1, _02184738 ; =0x00007fff bgt _0218469c cmp r1, #0 rsblt r0, r1, #0 movlt r0, r0, lsl #0x10 movlt r1, r0, asr #0x10 _0218469c: ldr r0, _02184740 ; =0x0000238e cmp r1, r0 blt _02184708 _021846a8: ldr r0, [sb, #0x130] cmp r0, #3 bne _02184700 mov r0, r7 bl func_ov29_02172c28 mov r8, r0 mov r0, sb bl func_ov29_02172c28 sub r0, r0, r8 mov r1, r0, lsl #0x10 ldr r0, [sp, #0x10] cmp r0, r1, asr #16 mov r1, r1, asr #0x10 ldrgt r1, _02184738 ; =0x00007fff bgt _021846f4 cmp r1, #0 rsblt r0, r1, #0 movlt r0, r0, lsl #0x10 movlt r1, r0, asr #0x10 _021846f4: ldr r0, _02184740 ; =0x0000238e cmp r1, r0 blt _02184708 _02184700: mov r5, sl str r7, [sp, #4] _02184708: add r6, r6, #1 cmp r6, #5 blt _021845b0 ldr r0, [sp, #4] cmp r0, #0 addeq sp, sp, #0x14 moveq r0, #0 ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} bl func_ov29_021733f4 mov r0, #1 add sp, sp, #0x14 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 arm_func_end func_ov38_02184574 _02184738: .word 0x00007fff _0218473c: .word data_ov38_02189224 _02184740: .word 0x0000238e .global func_ov38_02184744 arm_func_start func_ov38_02184744 func_ov38_02184744: ; 0x02184744 stmdb sp!, {r4, r5, lr} sub sp, sp, #0x54 ldr r1, _0218486c ; =data_027e0764 mov r3, #0 ldr r2, [r1] ldmib r1, {r0, ip} umull r4, lr, ip, r2 mla lr, ip, r0, lr ldr r0, [r1, #0xc] ldr ip, [r1, #0x10] mla lr, r0, r2, lr ldr r0, [r1, #0x14] adds r5, ip, r4 adc r4, r0, lr mov r0, #0x64 umull r2, ip, r4, r0 str r5, [r1] mla ip, r4, r3, ip mov r2, r3 mla ip, r2, r0, ip str r4, [r1, #4] cmp ip, #0x48 bge _021847c8 ldr r2, _02184870 ; =0x000011c7 mov ip, #1 mov r1, #0x7000 mov r0, #0xb000 strh ip, [sp, #0x38] strh r2, [sp, #0x3a] str r1, [sp, #0x3c] str r0, [sp, #0x40] str r3, [sp, #0x44] b _02184808 _021847c8: cmp ip, #0x5e mov r1, #0x6800 mov r0, #0xb800 bge _021847f0 strh r3, [sp, #0x38] strh r3, [sp, #0x3a] str r1, [sp, #0x3c] str r0, [sp, #0x40] str r3, [sp, #0x44] b _02184808 _021847f0: sub r2, r3, #0x8000 strh r3, [sp, #0x38] strh r2, [sp, #0x3a] str r1, [sp, #0x3c] str r0, [sp, #0x40] str r3, [sp, #0x44] _02184808: add r0, sp, #0x38 add r1, sp, #0x48 bl func_ov29_02171280 mvn r1, #0 mov r2, #0x10c00 add r0, sp, #0xc str r2, [sp, #0x4c] 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 add r1, sp, #4 str r1, [sp] ldr r0, _02184874 ; =data_027e0fe8 ldr r1, _02184878 ; =0x474f3143 ldr r0, [r0] add r2, sp, #0x48 add r3, sp, #0xc bl func_ov00_020c4048 add sp, sp, #0x54 ldmia sp!, {r4, r5, pc} .align 2, 0 arm_func_end func_ov38_02184744 _0218486c: .word data_027e0764 _02184870: .word 0x000011c7 _02184874: .word data_027e0fe8 _02184878: .word 0x474f3143 .global func_ov38_0218487c arm_func_start func_ov38_0218487c func_ov38_0218487c: ; 0x0218487c stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr} add r3, r0, #0x1000 ldr r1, [r3, #0x60] cmp r1, #0 bne _02184a08 ldr r1, [r0, #0x2d8] cmp r1, #0xe ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} ldr ip, _02184a14 ; =data_027e0764 mov r2, #0 ldr r4, [ip] ldmib ip, {r1, r6} umull sl, sb, r6, r4 mla sb, r6, r1, sb ldr r5, [ip, #0xc] ldr r8, [ip, #0x10] mla sb, r5, r4, sb adds r1, r8, sl ldr r7, [ip, #0x14] mov sl, #0x64 adc sb, r7, sb umull r4, lr, sb, sl mla lr, sb, r2, lr mov r4, r2 mla lr, r4, sl, lr stmia ip, {r1, sb} cmp lr, #0x41 bge _02184924 umull lr, sl, r6, r1 mla sl, r6, sb, sl adds lr, r8, lr mla sl, r5, r1, sl adc r7, r7, sl mov r1, #0x1f umull r5, r6, r7, r1 mla r6, r7, r2, r6 mla r6, r4, r1, r6 str lr, [ip] str r7, [ip, #4] add r1, r6, #0x2d str r1, [r3, #0x60] b _02184990 _02184924: cmp lr, #0x5f umull lr, sl, r6, r1 mla sl, r6, sb, sl bge _02184964 mla sl, r5, r1, sl adds lr, r8, lr adc r7, r7, sl mov r1, #0x4c umull r5, r6, r7, r1 mla r6, r7, r2, r6 mla r6, r4, r1, r6 str lr, [ip] str r7, [ip, #4] add r1, r6, #0x4b str r1, [r3, #0x60] b _02184990 _02184964: mla sl, r5, r1, sl adds lr, r8, lr adc r7, r7, sl mov r1, #0x1f umull r5, r6, r7, r1 mla r6, r7, r2, r6 mla r6, r4, r1, r6 str lr, [ip] str r7, [ip, #4] add r1, r6, #0x1e str r1, [r3, #0x60] _02184990: add r1, r0, #0x1000 ldr r1, [r1, #0x74] cmp r1, #0 cmpne r1, #1 bne _02184a00 ldr r3, _02184a14 ; =data_027e0764 mov r2, #0 ldr r4, [r3] ldmib r3, {r1, r5} umull r7, r6, r5, r4 mla r6, r5, r1, r6 ldr r1, [r3, #0xc] ldr r5, [r3, #0x10] mla r6, r1, r4, r6 ldr r1, [r3, #0x14] adds r7, r5, r7 adc r6, r1, r6 mov r1, #0xb umull r4, r5, r6, r1 mla r5, r6, r2, r5 mla r5, r2, r1, r5 str r7, [r3] add r1, r0, #0x1000 str r6, [r3, #4] ldr r3, [r1, #0x60] add r2, r5, #0x14 add r2, r3, r2 str r2, [r1, #0x60] _02184a00: bl func_ov38_02184744 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} _02184a08: sub r0, r1, #1 str r0, [r3, #0x60] ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} .align 2, 0 arm_func_end func_ov38_0218487c _02184a14: .word data_027e0764 .global func_ov38_02184a18 arm_func_start func_ov38_02184a18 func_ov38_02184a18: ; 0x02184a18 stmdb sp!, {r4, r5, lr} sub sp, sp, #0x54 mov r4, r0 add r2, r4, #0x1000 mov r0, #1 strb r0, [r2, #0xa1] ldrsh r0, [r2, #0x8a] mov r3, #0 add r1, r4, #0x100 strh r0, [r2, #0x8e] ldrsh r5, [r2, #0x8c] add r0, sp, #0x28 strh r5, [r2, #0x90] strh r3, [r2, #0x92] str r3, [r2, #0x34] ldrsh r1, [r1, #0x20] strh r1, [r2, #0x80] str r3, [r4, #0x12c] bl func_ov00_020c1500 mvn r1, #0 add r0, sp, #0x28 str r1, [sp, #0x44] str r1, [sp, #0x48] bl func_ov00_020c3348 mvn r0, #0 add r2, r4, #0x358 add r1, sp, #4 str r0, [sp, #4] str r0, [sp, #8] str r1, [sp] ldr r0, _02184b98 ; =data_027e0fe8 ldr r1, _02184b9c ; =0x4c4f4e44 ldr r0, [r0] add r3, sp, #0x28 add r2, r2, #0xc00 bl func_ov00_020c4048 ldr r0, _02184ba0 ; =data_027e0fe4 add r1, sp, #4 ldr r0, [r0] bl func_ov00_020c3674 str r0, [r4, #0xff0] ldr r2, _02184ba4 ; =data_027e0d0c ldr lr, _02184ba8 ; =0x0000119a ldr r5, [r2] ldr r3, [r2, #4] ldr r1, [r2, #8] ldr ip, [r4, #0xff0] mov r0, #2 str r0, [ip, #0x12c] str r5, [ip, #0x7c] str r3, [ip, #0x80] str r1, [ip, #0x84] str lr, [ip, #0x88] str r1, [sp, #0x20] ldr r1, [ip, #0x7c] str r3, [sp, #0x1c] str r1, [ip, #0xa8] ldr r3, [ip, #0x80] mov r1, #0x1400 str r3, [ip, #0xac] ldr r3, [ip, #0x84] add r0, r4, #0x1000 str r3, [ip, #0xb0] str lr, [ip, #0xb4] ldr r3, [r2] rsb r1, r1, #0 str r3, [r4, #0x60] ldr r3, [r2, #4] str lr, [sp, #0x24] str r3, [r4, #0x64] ldr r2, [r2, #8] str r5, [sp, #0x18] str r2, [r4, #0x68] ldr ip, [r4, #0x4c] ldr r3, [r4, #0x50] ldr r2, [r4, #0x48] str r2, [r4, #0xfe4] str ip, [r4, #0xfe8] str r3, [r4, #0xfec] ldrsh r2, [r0, #0x88] cmp r2, r1 sublt r1, r1, #0x1400 movge r1, r2, asr #0x1 strh r1, [r0, #0x88] ldr r2, [r4, #0xffc] add r0, r4, #0x1000 ldr r1, [r2, #8] ldr r4, [r0, #0x2c] ldr r2, [r2] ldr r3, [r0, #0x30] add r1, r4, r1 add r2, r2, r4 mov r0, #1 bl func_02017d30 add sp, sp, #0x54 ldmia sp!, {r4, r5, pc} .align 2, 0 arm_func_end func_ov38_02184a18 _02184b98: .word data_027e0fe8 _02184b9c: .word 0x4c4f4e44 _02184ba0: .word data_027e0fe4 _02184ba4: .word data_027e0d0c _02184ba8: .word 0x0000119a .global func_ov38_02184bac arm_func_start func_ov38_02184bac func_ov38_02184bac: ; 0x02184bac stmdb sp!, {r3, r4, r5, lr} mov r4, r0 add r2, r4, #0x1000 mov r5, #0 strb r5, [r2, #0xa1] ldrsh r1, [r2, #0x8e] mov ip, #2 ldr r3, _02184c88 ; =data_027e0d0c strh r1, [r2, #0x8a] ldrsh lr, [r2, #0x90] mov r1, #6 strh lr, [r2, #0x8c] str ip, [r4, #0x12c] ldr r2, [r4, #0xff0] strb r5, [r2, #0x118] str r5, [r4, #0xff0] ldr r2, [r3] str r2, [r4, #0x60] ldr r2, [r3, #4] str r2, [r4, #0x64] ldr r2, [r3, #8] str r2, [r4, #0x68] ldr r2, [r4, #0xfe4] str r2, [r4, #0x48] ldr r2, [r4, #0xfe8] str r2, [r4, #0x4c] ldr r2, [r4, #0xfec] str r2, [r4, #0x50] bl func_ov38_02185720 add ip, r4, #0x1000 mov r2, r5 strh r2, [ip, #0x9e] add r0, r4, #0x100 ldrsh r1, [r0, #0x20] ldrsh r0, [ip, #0x80] cmp r1, r0 ldmeqia sp!, {r3, r4, r5, pc} cmp r1, #0 mov r0, r4 ble _02184c74 mov r1, #0xb mov r3, #0x200 str r2, [ip, #0x54] bl func_ov38_0217d570 ldr r0, _02184c8c ; =data_027e0ffc ldr r1, _02184c90 ; =0x00000445 add r2, r4, #0x48 mov r3, r5 bl func_ov00_020ceacc ldmia sp!, {r3, r4, r5, pc} _02184c74: bl func_ov38_0218762c add r0, r4, #0x2c8 mov r1, #0x12 bl func_ov38_0217be60 ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov38_02184bac _02184c88: .word data_027e0d0c _02184c8c: .word data_027e0ffc _02184c90: .word 0x00000445 .global func_ov38_02184c94 arm_func_start func_ov38_02184c94 func_ov38_02184c94: ; 0x02184c94 stmdb sp!, {r3, r4, r5, lr} mov r5, r0 add r0, r5, #0x158 ldr r3, [r0] add r2, r5, #0x394 ldr r3, [r3, #0x14] mov r4, r1 add r1, r2, #0xc00 add r2, r5, #0x48 blx r3 add r0, r5, #0x1000 ldrb r0, [r0, #0xa5] cmp r0, #0 ldmeqia sp!, {r3, r4, r5, pc} mov r0, r5 mov r1, r4 bl func_ov38_021833f4 ldmia sp!, {r3, r4, r5, pc} arm_func_end func_ov38_02184c94 .global func_ov38_02184cdc arm_func_start func_ov38_02184cdc func_ov38_02184cdc: ; 0x02184cdc stmdb sp!, {r4, lr} mov r4, r1 ldr r1, _02184d04 ; =data_ov38_021892a8 mov r2, #0xc bl func_02007908 ldr r1, _02184d08 ; =data_ov38_021892c0 mov r0, r4 mov r2, #0xc bl func_02007908 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov38_02184cdc _02184d04: .word data_ov38_021892a8 _02184d08: .word data_ov38_021892c0 .global func_ov38_02184d0c arm_func_start func_ov38_02184d0c func_ov38_02184d0c: ; 0x02184d0c stmdb sp!, {r3, r4, lr} sub sp, sp, #4 mov r4, r0 mov r0, #0 ldr ip, _02184d60 ; =func_ov38_02184d6c str r0, [r4] ldr r3, _02184d64 ; =func_ov38_02184d70 add r0, r4, #4 mov r1, #4 mov r2, #0x50 str ip, [sp] bl func_0204f614 ldr r1, _02184d68 ; =0x00000b9a mov r0, r4 str r1, [r4, #0x224] str r1, [r4, #0x228] rsb r1, r1, #0x1200 str r1, [r4, #0x22c] str r1, [r4, #0x230] add sp, sp, #4 ldmia sp!, {r3, r4, pc} .align 2, 0 arm_func_end func_ov38_02184d0c _02184d60: .word func_ov38_02184d6c _02184d64: .word func_ov38_02184d70 _02184d68: .word 0x00000b9a .global func_ov38_02184d6c arm_func_start func_ov38_02184d6c func_ov38_02184d6c: ; 0x02184d6c bx lr arm_func_end func_ov38_02184d6c .global func_ov38_02184d70 arm_func_start func_ov38_02184d70 func_ov38_02184d70: ; 0x02184d70 bx lr arm_func_end func_ov38_02184d70 .global func_ov38_02184d74 arm_func_start func_ov38_02184d74 func_ov38_02184d74: ; 0x02184d74 stmdb sp!, {r4, lr} mov r4, r0 ldr r3, _02184d98 ; =func_ov38_02184d6c add r0, r4, #4 mov r1, #4 mov r2, #0x50 bl func_0204f754 mov r0, r4 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov38_02184d74 _02184d98: .word func_ov38_02184d6c .global func_ov38_02184d9c arm_func_start func_ov38_02184d9c func_ov38_02184d9c: ; 0x02184d9c stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0x1c mov sl, r0 mov r0, r2 add r2, sp, #0x10 str r3, [sp] mov sb, r1 str r3, [sl, #0x234] bl func_01ff9bf8 mov r0, #0x1000 mov r1, #3 mov r4, #0 bl func_01ff9b4c ldr fp, _02184ed8 ; =data_027e0d0c mov r5, r0 mov r7, sl add r8, sl, #0x38 mov r6, r4 _02184de4: ldr r1, [sb] mov r0, r4 str r1, [r7, #0x38] ldr r2, [sb, #4] add r1, sp, #0x10 str r2, [r7, #0x3c] ldr r3, [sb, #8] mov r2, r8 str r3, [r7, #0x40] mov r3, r8 bl func_01ff9e64 add r6, r6, #1 ldr r1, [fp, #8] ldmia fp, {r0, r2} str r0, [r7, #0x44] str r2, [r7, #0x48] str r1, [r7, #0x4c] cmp r6, #4 add r4, r4, r5 add r7, r7, #0x50 add r8, r8, #0x50 blt _02184de4 ldr r0, _02184edc ; =0x00000133 ldr r1, [sp] add r2, r0, #0x3200 mul r2, r1, r2 mov r1, r2, lsl #0x10 mov r1, r1, asr #0x10 add r1, r1, r1, lsr #31 mov r1, r1, lsl #0xf mov r1, r1, lsr #0x10 mov r1, r1, asr #0x4 mov r1, r1, lsl #0x1 mov r2, r1, lsl #0x1 ldr r3, _02184ee0 ; =data_02050f54 str r0, [sl, #0x220] mov r4, #0 add r1, r1, #1 strb r4, [sl, #0x23c] add r0, sl, #0x200 strh r4, [r0, #0x38] mov r1, r1, lsl #0x1 ldrsh r0, [r3, r1] ldrsh r2, [r3, r2] str r4, [sl, #0x204] ldr r1, _02184ee4 ; =data_ov38_02189224 str r2, [sl, #0x208] str r4, [sl, #0x20c] str r0, [sl, #0x210] ldr r0, [sp] ldr r0, [r1, r0, lsl #2] str sl, [r0, #0x208] ldr r0, [sp] ldr r0, [r1, r0, lsl #2] bl func_ov29_02172e88 ldr r1, [sl, #0x234] add r0, sl, #0x200 mov r1, r1, lsl #0xc strh r1, [r0, #0x3a] add sp, sp, #0x1c ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 arm_func_end func_ov38_02184d9c _02184ed8: .word data_027e0d0c _02184edc: .word 0x00000133 _02184ee0: .word data_02050f54 _02184ee4: .word data_ov38_02189224 .global func_ov38_02184ee8 arm_func_start func_ov38_02184ee8 func_ov38_02184ee8: ; 0x02184ee8 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0xd4 mov sl, r0 mov r6, r1 add r8, sp, #0xb0 add r5, sl, #4 add r3, sl, #0xf4 mov r0, r6 mov r1, r8 mov r2, #0xc add r7, sp, #0xa4 str r3, [sp, #4] add r4, r5, #0x50 bl func_02007908 add r0, r6, #0xc add r1, sp, #0x98 mov r2, #0xc bl func_02007908 add r0, r6, #0x18 mov r1, r7 mov r2, #0xc bl func_02007908 add r0, sp, #0x98 add r1, r5, #0x10 mov r2, #0x24 bl func_02007908 add r0, r6, #0x24 add r1, r5, #0x34 mov r2, #0xc bl func_02007908 add r2, r5, #0x34 ldr r0, _021854c8 ; =0x00000e66 mov r1, r8 mov r3, r2 bl func_01ff9e64 add r0, sl, #0x200 ldrsh r1, [r0, #0x3a] add r1, r1, #0x500 strh r1, [r0, #0x3a] ldr r0, [r8, #4] ldr r1, [r8] str r0, [sp, #0x90] ldr r0, [r8, #8] str r1, [sp, #0x8c] str r0, [sp, #0x94] ldrb r0, [sl, #0x23c] cmp r0, #0 beq _0218500c add r0, sl, #0x214 add r3, sp, #0x80 ldmia r0, {r0, r1, r2} stmia r3, {r0, r1, r2} mov r0, r3 mov r2, r3 add r1, r5, #0x34 bl func_01ff9bf8 mov r1, #0 add r0, sp, #0x80 str r1, [sp, #0x84] bl func_01fffb4c cmp r0, #0 beq _0218500c add r0, sp, #0x80 mov r1, #0x4000 bl func_ov00_020a61ac add r0, sp, #0x80 add r1, sp, #0x8c bl func_01ff9c2c add r2, sp, #0x8c rsb r0, r0, #0 add r1, sp, #0x80 mov r3, r2 bl func_01ff9e64 _0218500c: add r0, sl, #0x200 ldrh r1, [r0, #0x3a] ldr r0, _021854cc ; =data_02050f54 mov r2, #0 mov r1, r1, asr #0x4 mov r1, r1, lsl #0x2 ldrsh r3, [r0, r1] mov r1, #0xcd add r0, sp, #0x8c mov r3, r3, lsl #0xb mov r3, r3, asr #0xc add r3, r3, #0x800 umull sb, r6, r3, r1 mla r6, r3, r2, r6 mov r2, r3, asr #0x1f mla r6, r2, r1, r6 adds r3, sb, #0x800 adc r1, r6, #0 mov r2, r3, lsr #0xc orr r2, r2, r1, lsl #20 add r1, r2, #0x33 add r1, r1, #0x100 str r1, [sl, #0x220] bl func_01fffbec ldr r1, [sl, #0x228] ldr r2, _021854d0 ; =0x0000019a add r0, sl, #0x224 mov fp, #0x2c00 mov sb, #0 bl func_0202b0f4 ldr r1, _021854d4 ; =0x00000b9a add r0, sl, #0x22c str r1, [sl, #0x228] ldr r1, [sl, #0x230] mov r2, #0xcd bl func_0202b0f4 ldr r0, _021854d8 ; =0x00000666 str r0, [sl, #0x230] rsb r0, r0, #0x1400 str r0, [sp, #0x10] _021850ac: ldr r0, [sp, #4] mov r6, r5 mov r5, r4 cmp r4, r0 addne r4, r4, #0x50 add r0, r6, #0x34 add r1, r5, #0x34 add r2, sp, #0xc8 moveq r4, #0 bl func_01ff9bf8 add r0, sp, #0xc8 bl func_01ff9cec str r0, [sp, #8] add r0, sp, #0xc8 bl func_01fffb4c cmp r0, #0 bne _02185110 ldmia r8, {r0, r1} rsb r0, r0, #0 str r0, [sp, #0xc8] rsb r0, r1, #0 str r0, [sp, #0xcc] ldr r0, [r8, #8] rsb r0, r0, #0 str r0, [sp, #0xd0] _02185110: ldr r1, [sp, #8] ldr r0, _021854dc ; =0xfffff156 add r1, r1, r0 add r0, sp, #0xc8 bl func_01fffbec cmp r4, #0 beq _02185188 add r0, r4, #0x34 add r1, r5, #0x34 add r2, sp, #0xbc bl func_01ff9bf8 add r0, sp, #0xbc bl func_01ff9cec str r0, [sp, #0xc] add r0, sp, #0xbc bl func_01fffb4c cmp r0, #0 bne _02185170 ldr r1, [r8] ldr r0, [r8, #4] str r1, [sp, #0xbc] str r0, [sp, #0xc0] ldr r0, [r8, #8] str r0, [sp, #0xc4] _02185170: ldr r1, [sp, #0xc] ldr r0, _021854dc ; =0xfffff156 add r1, r1, r0 add r0, sp, #0xbc bl func_01fffbec b _02185198 _02185188: mov r0, #0 str r0, [sp, #0xbc] str r0, [sp, #0xc0] str r0, [sp, #0xc4] _02185198: ldrb r0, [sl, #0x23c] cmp r0, #0 beq _02185214 cmp sb, #0 beq _02185200 add r0, sl, #0x214 add r1, r5, #0x34 add r2, sp, #0x74 bl func_01ff9bf8 add r0, sp, #0x74 bl func_01ff9cec sub r0, r0, fp str r0, [sp] add r0, sp, #0x74 bl func_01fffb4c cmp r0, #0 beq _02185200 ldr r0, [sp] mul r1, r0, sb mov r1, r1, asr #0xc add r0, sp, #0x74 bl func_01fffbec add r0, r5, #0x40 add r1, sp, #0x74 mov r2, r0 bl func_01ff9bc4 _02185200: ldr r0, _021854d8 ; =0x00000666 sub fp, fp, #0x1600 sub r0, r0, sb mov r0, r0, lsl #0xb add sb, sb, r0, asr #12 _02185214: ldr r0, [sp, #0xcc] ldr r1, [sp, #0xc8] str r0, [sp, #0x6c] ldr r0, [sp, #0xbc] str r1, [sp, #0x68] ldr r1, [sp, #0xd0] str r0, [sp, #0x5c] ldr r0, [sp, #0xc4] str r1, [sp, #0x70] ldr r1, [sp, #0xc0] str r0, [sp, #0x64] str r1, [sp, #0x60] ldr r1, [sl, #0x22c] add r0, sp, #0x68 bl func_01fffbec ldr r1, [sl, #0x22c] add r0, sp, #0x5c bl func_01fffbec add r0, r5, #0x40 add r1, sp, #0x68 mov r2, r0 bl func_01ff9bc4 add r0, r5, #0x40 add r1, sp, #0x5c mov r2, r0 bl func_01ff9bc4 add r0, r5, #0x40 add r1, sp, #0x8c mov r2, r0 bl func_01ff9bc4 ldr r1, [sp, #0x10] add r0, sp, #0x8c bl func_01fffbec ldr r2, [r5, #0x40] ldr r1, [sl, #0x224] add r0, r5, #0x34 mul r1, r2, r1 mov r1, r1, asr #0xc str r1, [r5, #0x40] ldr r3, [r5, #0x44] ldr r2, [sl, #0x224] add r1, r5, #0x40 mul r2, r3, r2 mov r2, r2, asr #0xc str r2, [r5, #0x44] ldr ip, [r5, #0x48] ldr r3, [sl, #0x224] mov r2, r0 mul r3, ip, r3 mov r3, r3, asr #0xc str r3, [r5, #0x48] ldr r3, [r5, #0x44] sub r3, r3, #0x14 str r3, [r5, #0x44] bl func_01ff9bc4 ldr r1, [sl] cmp r1, #0 beq _02185304 mov r0, r5 blx r1 _02185304: cmp r4, #0 beq _02185378 add r1, r6, #0x34 add r0, r4, #0x34 mov r2, r8 bl func_01ff9bf8 mov r0, r8 bl func_01fffb4c cmp r0, #0 beq _021854ac mov r0, r8 add r1, sp, #0x98 mov r2, r7 bl func_01ff9c68 mov r0, r7 mov r1, r7 bl func_01ff9d4c mov r0, r7 mov r1, r8 add r2, sp, #0x98 bl func_01ff9c68 add r0, sp, #0x98 mov r1, r0 bl func_01ff9d4c add r0, sp, #0x98 add r1, r5, #0x10 mov r2, #0x24 bl func_02007908 b _021854ac _02185378: ldrb r0, [sl, #0x23c] cmp r0, #0 beq _021853bc mov r0, #0 str r0, [r8] mov r0, #0x1000 str r0, [r8, #4] mov r0, #0 str r0, [r8, #8] mov r0, r8 add r1, sp, #0x98 mov r2, r7 bl func_01ff9c68 mov r0, r7 mov r1, r7 bl func_01ff9d4c b _021853e8 _021853bc: add r1, r6, #0x34 add r0, r5, #0x34 mov r2, r8 bl func_01ff9bf8 mov r0, r8 add r1, sp, #0x98 mov r2, r7 bl func_01ff9c68 mov r0, r7 mov r1, r7 bl func_01ff9d4c _021853e8: mov r0, #0 str r0, [sp, #0x4c] str r0, [sp, #0x50] str r0, [sp, #0x54] mov r0, #0x1000 str r0, [sp, #0x58] ldr r1, [r5, #0x1c] add r0, sp, #0x2c str r1, [sp, #0x20] ldr r2, [r5, #0x20] add r1, sp, #0x20 str r2, [sp, #0x24] ldr r3, [r5, #0x24] mov r2, r7 str r3, [sp, #0x28] bl func_ov00_020d5f98 add r0, sp, #0x2c add r1, sp, #0x4c mov r2, #0xc00 bl func_ov00_020d59f0 ldr r1, [r5, #0x28] add r0, sp, #0x3c str r1, [sp, #0x14] ldr r2, [r5, #0x2c] add r1, sp, #0x14 str r2, [sp, #0x18] ldr r3, [r5, #0x30] mov r2, r8 str r3, [sp, #0x1c] bl func_ov00_020d5f98 add r0, sp, #0x3c add r1, sp, #0x4c mov r2, #0xc00 bl func_ov00_020d59f0 add r0, sl, #0x204 add r1, sp, #0x2c bl func_ov00_020d5eac add r0, sl, #0x204 add r1, sp, #0x3c bl func_ov00_020d5eac add r0, sl, #0x204 bl func_ov00_020d5c54 add r0, sl, #0x204 add r1, r5, #0x10 bl func_ov00_020d5cd8 ldr r1, [sl, #0x234] ldr r0, _021854e0 ; =data_ov38_02189224 ldr r0, [r0, r1, lsl #2] bl func_ov29_02172bc0 _021854ac: ldr r0, [sp, #4] cmp r5, r0 bne _021850ac mov r0, #0 strb r0, [sl, #0x23c] add sp, sp, #0xd4 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 arm_func_end func_ov38_02184ee8 _021854c8: .word 0x00000e66 _021854cc: .word data_02050f54 _021854d0: .word 0x0000019a _021854d4: .word 0x00000b9a _021854d8: .word 0x00000666 _021854dc: .word 0xfffff156 _021854e0: .word data_ov38_02189224 .global func_ov38_021854e4 arm_func_start func_ov38_021854e4 func_ov38_021854e4: ; 0x021854e4 stmdb sp!, {r4, lr} sub sp, sp, #0x18 mov r4, r0 mov r0, #1 strb r0, [r4, #0x23c] ldr r2, [r4, #0x128] add r0, sp, #0 str r2, [r4, #0x214] ldr r3, [r4, #0x12c] add r2, sp, #0xc str r3, [r4, #0x218] ldr r3, [r4, #0x130] str r3, [r4, #0x21c] ldr r3, [r1] str r3, [sp] ldr r3, [r1, #4] str r3, [sp, #4] ldr r3, [r1, #8] add r1, r4, #0x214 str r3, [sp, #8] bl func_01ff9bf8 add r0, sp, #0xc mov r1, #0xc00 bl func_01fffbec add r0, sp, #0xc bl func_01ff9cec mov r1, r0 cmp r1, #0x800 ble _0218556c mov r0, #0x800 bl func_01ff98e0 mov r1, r0 add r0, sp, #0xc bl func_01fffbec _0218556c: add r0, r4, #0x214 add r1, sp, #0xc mov r2, r0 bl func_01ff9bc4 add sp, sp, #0x18 ldmia sp!, {r4, pc} arm_func_end func_ov38_021854e4 .global func_ov38_02185584 arm_func_start func_ov38_02185584 func_ov38_02185584: ; 0x02185584 stmdb sp!, {r3, lr} ldr r0, _021855c0 ; =data_ov29_0217a4ac bl func_ov09_021136c4 cmp r0, #0 beq _021855ac ldr r1, _021855c4 ; =data_ov38_021891e0 ldr r0, [r1, #0xb8] ldr r1, [r1, #0xb4] bl func_01ffa94c ldmia sp!, {r3, pc} _021855ac: ldr r1, _021855c4 ; =data_ov38_021891e0 ldr r0, [r1, #0x9c] ldr r1, [r1, #0x98] bl func_01ffa94c ldmia sp!, {r3, pc} .align 2, 0 arm_func_end func_ov38_02185584 _021855c0: .word data_ov29_0217a4ac _021855c4: .word data_ov38_021891e0 .global func_ov38_021855c8 arm_func_start func_ov38_021855c8 func_ov38_021855c8: ; 0x021855c8 stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0x38 add sb, r0, #4 mov r3, #2 add r1, sp, #4 mov r0, #0x10 mov r2, #1 str r3, [sp, #4] bl func_01ffa9fc mov r1, #0 mov r2, r1 mov r0, #0x11 bl func_01ffa9fc mov sl, #0 ldr r8, _02185688 ; =data_027e03c8 add r7, sp, #8 mov r6, #0x17 mov r5, #0xc mov r4, #0x11 mov fp, sl _02185618: mov r1, r8 mov r2, r7 add r0, sb, #0x10 bl func_0202de3c mov r0, r6 mov r1, r7 mov r2, r5 bl func_01ffa9fc mov r0, r4 mov r1, fp mov r2, fp bl func_01ffa9fc add sl, sl, #1 cmp sl, #4 add sb, sb, #0x50 blt _02185618 mov r3, #4 add r1, sp, #0 mov r0, #0x12 mov r2, #1 str r3, [sp] bl func_01ffa9fc ldr r1, _0218568c ; =data_ov38_021891e0 ldr r0, [r1, #0x80] ldr r1, [r1, #0x7c] bl func_01ffa94c add sp, sp, #0x38 ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 arm_func_end func_ov38_021855c8 _02185688: .word data_027e03c8 _0218568c: .word data_ov38_021891e0 .global func_ov38_02185690 arm_func_start func_ov38_02185690 func_ov38_02185690: ; 0x02185690 stmdb sp!, {r3, r4, lr} sub sp, sp, #0x14 mov ip, #0x800 ldr r4, [r0, #8] ldr lr, [r0] rsb ip, ip, #0 add r1, sp, #8 mov r0, #3 mov r2, #0x1800 mov r3, #0 str lr, [sp, #8] str ip, [sp, #0xc] str r4, [sp, #0x10] bl func_ov00_020c7508 mov r1, #0 str r1, [sp] str r1, [sp, #4] ldr r0, _02185718 ; =data_027e0e58 add r2, sp, #8 ldr r0, [r0] mov r1, #0x1e8 mov r3, #2 bl func_ov00_0207c1b0 mov r1, #0 str r1, [sp] str r1, [sp, #4] ldr r0, _02185718 ; =data_027e0e58 ldr r1, _0218571c ; =0x00001002 ldr r0, [r0] add r2, sp, #8 mov r3, #2 bl func_ov00_0207c1b0 add sp, sp, #0x14 ldmia sp!, {r3, r4, pc} .align 2, 0 arm_func_end func_ov38_02185690 _02185718: .word data_027e0e58 _0218571c: .word 0x00001002 .global func_ov38_02185720 arm_func_start func_ov38_02185720 func_ov38_02185720: ; 0x02185720 stmdb sp!, {r4, lr} mov r4, r0 add r2, r4, #0x100 ldrsh r2, [r2, #0x20] cmp r2, #0 ldmeqia sp!, {r4, pc} add r2, r4, #0x1000 ldrsh r3, [r2, #0x9c] cmp r1, r3 ldmltia sp!, {r4, pc} strh r1, [r2, #0x9c] ldrsh r1, [r2, #0x9c] cmp r1, #9 addls pc, pc, r1, lsl #2 ldmia sp!, {r4, pc} _0218575c: ; jump table ldmia sp!, {r4, pc} ; case 0 b _02185784 ; case 1 ldmia sp!, {r4, pc} ; case 2 b _02185790 ; case 3 ldmia sp!, {r4, pc} ; case 4 b _021857e0 ; case 5 b _0218580c ; case 6 ldmia sp!, {r4, pc} ; case 7 ldmia sp!, {r4, pc} ; case 8 b _02185818 ; case 9 _02185784: ldr r0, _02185824 ; =0x00000708 strh r0, [r2, #0x9a] ldmia sp!, {r4, pc} _02185790: ldr r0, [r2, #0x78] cmp r0, #0 ldmneia sp!, {r4, pc} ldr r0, _02185828 ; =data_027e0e60 mov r1, #3 ldr r0, [r0] mov r2, #1 bl func_ov00_02084be0 cmp r0, #0 ldmneia sp!, {r4, pc} mov r0, r4 mov r1, #8 mov r2, #1 mov r3, #3 bl func_ov38_02185a70 add r0, r4, #0x1000 ldrsh r1, [r0, #0x9c] add r1, r1, #1 strh r1, [r0, #0x9c] ldmia sp!, {r4, pc} _021857e0: mov r1, #8 mov r2, #3 mov r3, #6 bl func_ov38_02185a70 add r0, r4, #0x1000 mov r2, #0 strh r2, [r0, #0x9e] ldr r1, _0218582c ; =data_ov29_0217a4ac mov r0, #1 strb r0, [r1, #0x56] ldmia sp!, {r4, pc} _0218580c: mov r0, #0x1e strh r0, [r2, #0x9a] ldmia sp!, {r4, pc} _02185818: mov r0, #0x5a strh r0, [r2, #0x9a] ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov38_02185720 _02185824: .word 0x00000708 _02185828: .word data_027e0e60 _0218582c: .word data_ov29_0217a4ac .global func_ov38_02185830 arm_func_start func_ov38_02185830 func_ov38_02185830: ; 0x02185830 stmdb sp!, {r4, lr} mov r4, r0 add r1, r4, #0x1000 ldrsh r2, [r1, #0x9c] cmp r2, #9 addls pc, pc, r2, lsl #2 ldmia sp!, {r4, pc} _0218584c: ; jump table ldmia sp!, {r4, pc} ; case 0 b _02185874 ; case 1 ldmia sp!, {r4, pc} ; case 2 ldmia sp!, {r4, pc} ; case 3 b _021858ac ; case 4 b _021858f0 ; case 5 b _02185934 ; case 6 b _02185968 ; case 7 b _02185984 ; case 8 b _021859e4 ; case 9 _02185874: ldrsh r2, [r1, #0x9a] cmp r2, #0 subne r0, r2, #1 strneh r0, [r1, #0x9a] ldmneia sp!, {r4, pc} mov r1, #8 mov r2, r1 mov r3, #0 bl func_ov38_02185a70 add r0, r4, #0x1000 ldrsh r1, [r0, #0x9c] add r1, r1, #1 strh r1, [r0, #0x9c] ldmia sp!, {r4, pc} _021858ac: ldr r0, [r4, #0x2d8] cmp r0, #0x10 ldmneia sp!, {r4, pc} ldr r0, _02185a64 ; =data_027e0e60 mov r1, #3 ldr r0, [r0] mov r2, #1 bl func_ov00_02084be0 cmp r0, #0 ldmeqia sp!, {r4, pc} ldr r0, [r4, #0xff8] ldr r1, [r0, #0x3b8] cmp r1, #0 ldmneia sp!, {r4, pc} mov r1, #0 bl func_ov29_021772f8 ldmia sp!, {r4, pc} _021858f0: ldr r0, _02185a64 ; =data_027e0e60 mov r1, #6 ldr r0, [r0] mov r2, #1 bl func_ov00_02084be0 cmp r0, #0 ldmeqia sp!, {r4, pc} ldr r0, _02185a64 ; =data_027e0e60 mov r1, #6 ldr r0, [r0] mov r2, #1 mov r3, #0 bl func_ov00_02084b38 ldr r0, _02185a68 ; =data_ov29_0217a4ac mov r1, #0 strb r1, [r0, #0x56] ldmia sp!, {r4, pc} _02185934: ldrsh r2, [r1, #0x9a] cmp r2, #0 subne r0, r2, #1 strneh r0, [r1, #0x9a] ldmneia sp!, {r4, pc} mov r1, #8 mov r2, #4 mov r3, #0 bl func_ov38_02185a70 mov r0, r4 mov r1, #9 bl func_ov38_02185720 ldmia sp!, {r4, pc} _02185968: ldr r1, [r4, #0xff8] ldr r1, [r1, #0x3b8] cmp r1, #0 ldmneia sp!, {r4, pc} mov r1, #9 bl func_ov38_02185720 ldmia sp!, {r4, pc} _02185984: ldr r0, _02185a64 ; =data_027e0e60 mov r1, #5 ldr r0, [r0] mov r2, #1 bl func_ov00_02084be0 cmp r0, #0 ldmeqia sp!, {r4, pc} ldr r0, [r4, #0xff8] ldr r1, [r0, #0x3b8] cmp r1, #0 ldmneia sp!, {r4, pc} mov r1, #0 bl func_ov29_021772f8 ldr r0, _02185a64 ; =data_027e0e60 mov r1, #5 ldr r0, [r0] mov r2, #1 mov r3, #0 bl func_ov00_02084b38 add r0, r4, #0x1000 ldrsh r1, [r0, #0x9c] sub r1, r1, #1 strh r1, [r0, #0x9c] ldmia sp!, {r4, pc} _021859e4: ldr r0, _02185a6c ; =data_027e0fb4 ldr r0, [r0] ldrh r0, [r0, #0xba] cmp r0, #0 ldreq r0, [r4, #0xff8] ldreq r0, [r0, #0x3b8] cmpeq r0, #0 ldmneia sp!, {r4, pc} ldrsh r0, [r1, #0x9a] cmp r0, #0 bne _02185a58 ldr r0, [r4, #0x2d8] cmp r0, #0x10 ldmneia sp!, {r4, pc} mov r0, #8 mov r1, #5 mov r2, #1 bl func_ov38_0217bf0c ldr r0, _02185a64 ; =data_027e0e60 mov r2, #1 ldr r0, [r0] mov r3, r2 mov r1, #5 bl func_ov00_02084b38 add r0, r4, #0x1000 ldrsh r1, [r0, #0x9c] sub r1, r1, #1 strh r1, [r0, #0x9c] ldmia sp!, {r4, pc} _02185a58: sub r0, r0, #1 strh r0, [r1, #0x9a] ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov38_02185830 _02185a64: .word data_027e0e60 _02185a68: .word data_ov29_0217a4ac _02185a6c: .word data_027e0fb4 .global func_ov38_02185a70 arm_func_start func_ov38_02185a70 func_ov38_02185a70: ; 0x02185a70 stmdb sp!, {r3, r4, r5, r6, r7, lr} sub sp, sp, #0x38 mov r7, r0 add r0, sp, #0xc mov r6, r1 mov r5, r2 mov r4, r3 bl func_ov00_020c1500 mvn r1, #0 add r0, sp, #0xc str r1, [sp, #0x28] str r1, [sp, #0x2c] bl func_ov00_020c3348 add r0, r5, r6, lsl #16 str r0, [sp, #0x1c] mvn r0, #0 str r0, [sp, #4] str r0, [sp, #8] mov r0, #1 strb r0, [sp, #0x15] strb r4, [sp, #0x17] add r1, sp, #4 str r1, [sp] ldr r0, _02185b08 ; =data_027e0fe8 ldr r1, _02185b0c ; =0x4e4d5347 ldr r0, [r0] add r2, r7, #0x48 add r3, sp, #0xc bl func_ov00_020c4048 ldr r0, _02185b10 ; =data_ov29_0217a4ac ldrb r1, [r0, #0x54] cmp r1, #0 addeq sp, sp, #0x38 ldmeqia sp!, {r3, r4, r5, r6, r7, pc} mov r1, #0 bl func_ov29_0216d930 add sp, sp, #0x38 ldmia sp!, {r3, r4, r5, r6, r7, pc} .align 2, 0 arm_func_end func_ov38_02185a70 _02185b08: .word data_027e0fe8 _02185b0c: .word 0x4e4d5347 _02185b10: .word data_ov29_0217a4ac .global func_ov38_02185b14 arm_func_start func_ov38_02185b14 func_ov38_02185b14: ; 0x02185b14 stmdb sp!, {r3, r4, r5, r6, r7, r8, lr} sub sp, sp, #0x44 mov r7, r0 mov r6, r1 mov r5, r2 mov r4, r3 bl func_ov38_0217e4e0 add r0, sp, #0x18 bl func_ov00_020c1500 mvn r0, #0 str r0, [sp, #0x34] str r0, [sp, #0x38] add r0, sp, #0x18 bl func_ov00_020c3348 add r0, r5, r6, lsl #16 str r0, [sp, #0x28] mvn r0, #0 strb r4, [sp, #0x23] add r4, r7, #0x1000 str r0, [sp, #4] str r0, [sp, #8] mov r0, #1 strb r0, [sp, #0x21] ldrsh r1, [r4, #0x94] ldr r0, _02185c38 ; =data_027e0f94 add r8, sp, #0xc sub r1, r1, #0x8000 strh r1, [sp, #0x2c] ldmia r0, {r0, r1, r2} stmia r8, {r0, r1, r2} mov r2, r8 ldrh r8, [r4, #0x94] ldr lr, [sp, #0x10] ldr ip, _02185c3c ; =data_02050f54 mov r8, r8, asr #0x4 mov r8, r8, lsl #0x2 add lr, lr, #0xcd add lr, lr, #0xc00 ldrsh r8, [ip, r8] mov r5, #0x1800 ldr r1, [sp, #0xc] smulbb r8, r8, r5 add r8, r8, #0x800 add r1, r1, r8, asr #12 str r1, [sp, #0xc] str lr, [sp, #0x10] ldrh r4, [r4, #0x94] ldr r0, [sp, #0x14] add r7, sp, #4 mov r4, r4, asr #0x4 mov r4, r4, lsl #0x1 add r4, r4, #1 mov r4, r4, lsl #0x1 ldrsh r4, [ip, r4] ldr r6, _02185c40 ; =data_027e0fe8 ldr r1, _02185c44 ; =0x444d534f smulbb r4, r4, r5 add r4, r4, #0x800 add r0, r0, r4, asr #12 str r0, [sp, #0x14] str r7, [sp] ldr r0, [r6] add r3, sp, #0x18 bl func_ov00_020c4048 ldr r0, _02185c48 ; =data_ov29_0217a4ac ldrb r1, [r0, #0x54] cmp r1, #0 addeq sp, sp, #0x44 ldmeqia sp!, {r3, r4, r5, r6, r7, r8, pc} mov r1, #0 bl func_ov29_0216d930 add sp, sp, #0x44 ldmia sp!, {r3, r4, r5, r6, r7, r8, pc} .align 2, 0 arm_func_end func_ov38_02185b14 _02185c38: .word data_027e0f94 _02185c3c: .word data_02050f54 _02185c40: .word data_027e0fe8 _02185c44: .word 0x444d534f _02185c48: .word data_ov29_0217a4ac .global func_ov38_02185c4c arm_func_start func_ov38_02185c4c func_ov38_02185c4c: ; 0x02185c4c stmdb sp!, {r4, r5, r6, r7, r8, lr} ldr r2, _02185d30 ; =data_027e0f64 mov r8, r0 ldr r0, [r2] mov r7, r1 ldr r0, [r0, #4] mov r1, r8 bl func_ov00_02087d34 ldr r0, _02185d30 ; =data_027e0f64 ldr r2, _02185d34 ; =data_02050f54 ldr r1, [r0] mov r0, #0x53 ldr r3, [r1, #4] ldr r1, [r3, #0x26c] str r1, [r7] ldr r1, [r3, #0x270] str r1, [r7, #4] ldr r1, [r3, #0x274] str r1, [r7, #8] ldr r1, [r8, #0x14] mov r1, r1, lsl #0x10 mov r1, r1, lsr #0x10 mov r1, r1, asr #0x4 mov r3, r1, lsl #0x1 add r1, r3, #1 mov r1, r1, lsl #0x1 mov r3, r3, lsl #0x1 ldrsh r5, [r2, r1] ldrsh r4, [r2, r3] bl func_ov00_02087d84 ldr r6, [r0, #0x24] mov r0, #0x53 bl func_ov00_02087d84 ldr ip, [r0, #0x1c] mul r0, r6, r5 mul r3, ip, r4 add r2, r0, #0x800 mul r0, r6, r4 mul r1, ip, r5 add r0, r0, #0x800 add r3, r3, #0x800 mov r2, r2, asr #0xc ldr r4, [r7] rsb r2, r2, r3, asr #12 sub r2, r4, r2 str r2, [r7] ldr r3, [r7, #4] ldr r2, [r8, #0x20] add r1, r1, #0x800 sub r2, r3, r2 str r2, [r7, #4] mov r0, r0, asr #0xc ldr r2, [r7, #8] add r0, r0, r1, asr #12 sub r0, r2, r0 str r0, [r7, #8] ldmia sp!, {r4, r5, r6, r7, r8, pc} .align 2, 0 arm_func_end func_ov38_02185c4c _02185d30: .word data_027e0f64 _02185d34: .word data_02050f54 .global func_ov38_02185d38 arm_func_start func_ov38_02185d38 func_ov38_02185d38: ; 0x02185d38 stmdb sp!, {r3, r4, r5, r6, lr} sub sp, sp, #0xc ldr ip, [r1, #0xc] ldr r5, [r2, #0xc] mov r4, r0 sub r0, r5, ip smull r6, r5, r0, r4 adds r6, r6, #0x800 adc r0, r5, #0 mov r5, r6, lsr #0xc orr r5, r5, r0, lsl #20 add r0, ip, r5 str r0, [r3, #0xc] ldr lr, [r1, #0x10] ldr r5, [r2, #0x10] ldr r0, [sp, #0x24] sub r5, r5, lr smull ip, r6, r5, r4 adds ip, ip, #0x800 adc r5, r6, #0 mov r6, ip, lsr #0xc orr r6, r6, r5, lsl #20 add r5, lr, r6 str r5, [r3, #0x10] ldr lr, [r1, #0x18] ldr r5, [r2, #0x18] sub r5, r5, lr smull ip, r6, r5, r4 adds ip, ip, #0x800 adc r5, r6, #0 mov r6, ip, lsr #0xc orr r6, r6, r5, lsl #20 add r5, lr, r6 str r5, [r3, #0x18] ldr r6, [r1, #0x20] ldr r5, [r2, #0x20] sub r5, r5, r6 smull lr, ip, r5, r4 adds lr, lr, #0x800 adc r5, ip, #0 mov ip, lr, lsr #0xc orr ip, ip, r5, lsl #20 add r5, r6, ip str r5, [r3, #0x20] ldr r5, [r1, #0x1c] ldr r2, [r2, #0x1c] ldr r1, [sp, #0x20] sub r2, r2, r5 smull lr, ip, r2, r4 adds lr, lr, #0x800 adc r2, ip, #0 mov ip, lr, lsr #0xc orr ip, ip, r2, lsl #20 add ip, r5, ip add r2, sp, #0 str ip, [r3, #0x1c] bl func_01ff9bf8 ldr r2, [sp, #0x20] ldr r3, [sp, #0x28] mov r0, r4 add r1, sp, #0 bl func_01ff9e64 add sp, sp, #0xc ldmia sp!, {r3, r4, r5, r6, pc} arm_func_end func_ov38_02185d38 .global func_ov38_02185e38 arm_func_start func_ov38_02185e38 func_ov38_02185e38: ; 0x02185e38 stmdb sp!, {r4, lr} sub sp, sp, #0xb0 ldr r1, _02185eb0 ; =data_ov38_021891e0 mov r2, #0 mov r4, r0 str r2, [r1, #0x20c] add r0, sp, #0 str r2, [r1, #0x210] bl func_ov00_0209a4f4 mov r2, #0 ldr r0, _02185eb4 ; =data_027e0f74 mvn ip, #0 mov r3, #0x32 ldr r0, [r0] add r1, sp, #0 str ip, [sp, #4] strb r3, [sp, #9] strb r2, [sp, #0xa] strb r2, [sp, #0xb] bl func_ov00_02097810 str r0, [r4, #0x2e8] ldr r1, _02185eb8 ; =data_ov38_02188ca0 add r0, sp, #0 ldr r2, [r1, #0x250] ldr r1, [r1, #0x254] str r2, [r4, #0x2e0] str r1, [r4, #0x2e4] bl func_ov00_0209a508 add sp, sp, #0xb0 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov38_02185e38 _02185eb0: .word data_ov38_021891e0 _02185eb4: .word data_027e0f74 _02185eb8: .word data_ov38_02188ca0 .global func_ov38_02185ebc arm_func_start func_ov38_02185ebc func_ov38_02185ebc: ; 0x02185ebc stmdb sp!, {r4, r5, lr} sub sp, sp, #0x154 ldr r1, _02186a10 ; =data_ov38_021891e0 mov r4, r0 ldr r2, [r1, #0x20c] cmp r2, #6 addls pc, pc, r2, lsl #2 b _021869dc _02185edc: ; jump table b _02185ef8 ; case 0 b _021862c8 ; case 1 b _02186350 ; case 2 b _021863e4 ; case 3 b _0218660c ; case 4 b _02186738 ; case 5 b _02186914 ; case 6 _02185ef8: ldr r0, [r1, #0x210] add r0, r0, #1 str r0, [r1, #0x210] cmp r0, #0x82 ble _02185f3c ldr r0, _02186a14 ; =data_027e0e60 mov r1, #1 ldr r0, [r0] mov r2, r1 mov r3, r1 bl func_ov00_02084b38 ldr r0, _02186a10 ; =data_ov38_021891e0 mov r1, #0 ldr r2, [r0, #0x20c] add r2, r2, #1 str r2, [r0, #0x20c] str r1, [r0, #0x210] _02185f3c: ldr r0, _02186a10 ; =data_ov38_021891e0 ldr r3, [r0, #0x210] cmp r3, #0x14 bne _02185f5c mov r2, #0 ldr r1, _02186a18 ; =0x00000ccd str r2, [r0, #0x10c] str r1, [r0, #0x110] _02185f5c: cmp r3, #0x2d bne _02186144 ldr r0, _02186a1c ; =data_027e0f94 ldr r1, _02186a10 ; =data_ov38_021891e0 ldr ip, [r0] ldr r5, [r0, #4] str ip, [r1, #0x21c] str r5, [r1, #0x220] ldr r2, [r0, #8] ldr r0, _02186a20 ; =data_027e0fc8 str r2, [r1, #0x224] sub r3, r2, #0x1800 ldr r0, [r0] ldr r2, _02186a24 ; =0x00000333 add r1, sp, #0x98 str ip, [sp, #0x98] str r5, [sp, #0x9c] str r3, [sp, #0xa0] bl func_ov00_020bcf50 add r0, sp, #0xa4 bl func_ov00_0209a4f4 ldr r0, _02186a28 ; =data_027e0f64 mov r2, #0x32 mov r1, #2 mov r5, #1 mvn r3, #0 strb r1, [sp, #0xae] ldr r0, [r0] strb r2, [sp, #0xad] strb r5, [sp, #0xaf] str r3, [sp, #0xa8] ldr r3, [r0, #4] ldr r0, _02186a2c ; =data_ov38_02189360 ldr r2, [r3, #0x26c] ldr r1, _02186a30 ; =data_ov38_021893d4 str r2, [sp, #0xc4] ldr r2, [r3, #0x270] str r2, [sp, #0xc8] ldr r2, [r3, #0x274] str r2, [sp, #0xcc] strb r5, [sp, #0xb8] bl func_ov38_02185c4c ldr r2, _02186a10 ; =data_ov38_021891e0 ldr r0, [r2, #0x1f4] str r0, [r2, #0x1e8] ldr r0, [r2, #0x1f8] str r0, [r2, #0x1ec] ldr r0, [r2, #0x1fc] str r0, [r2, #0x1f0] ldr r0, [r2, #0x180] str r0, [sp, #0xd0] ldr r0, [r2, #0x184] str r0, [sp, #0xd4] ldr r0, [r2, #0x188] str r0, [sp, #0xd8] ldr r0, [r2, #0x18c] str r0, [sp, #0xdc] ldr r0, [r2, #0x190] str r0, [sp, #0xe0] ldr r0, [r2, #0x194] str r0, [sp, #0xe4] ldr r0, [r2, #0x198] str r0, [sp, #0xe8] ldr r0, [r2, #0x19c] str r0, [sp, #0xec] ldr r0, [r2, #0x1a0] str r0, [sp, #0xf0] ldr r0, [r2, #0x1a4] str r0, [sp, #0xf4] ldr r0, [r2, #0x1a8] str r0, [sp, #0xf8] ldr r0, [r2, #0x1ac] str r0, [sp, #0xfc] ldr r0, [r2, #0x1b0] str r0, [sp, #0x100] ldr r0, [r2, #0x1b4] str r0, [sp, #0x104] ldr r0, [r2, #0x1b8] str r0, [sp, #0x108] ldr r0, [r2, #0x1bc] str r0, [sp, #0x10c] ldr r0, [r2, #0x1c0] str r0, [sp, #0x110] ldr r0, [r2, #0x1c4] str r0, [sp, #0x114] ldr r0, [r2, #0x1c8] str r0, [sp, #0x118] ldr r0, [r2, #0x1cc] str r0, [sp, #0x11c] ldr r0, [r2, #0x1d0] str r0, [sp, #0x120] ldr r0, [r2, #0x1d4] str r0, [sp, #0x124] ldr r1, [r2, #0x1d8] ldr r0, _02186a34 ; =data_027e0f74 str r1, [sp, #0x128] ldr r1, [r2, #0x1dc] ldr r0, [r0] str r1, [sp, #0x12c] ldrb r5, [r2, #0x1e0] mov r3, #4 add r1, sp, #0xa4 strb r5, [sp, #0x130] ldrb r5, [r2, #0x1e1] strb r5, [sp, #0x131] ldrb r5, [r2, #0x1e2] strb r5, [sp, #0x132] ldrb r5, [r2, #0x1e3] strb r5, [sp, #0x133] ldrb r2, [r2, #0x1e4] strb r2, [sp, #0x134] str r3, [sp, #0x138] bl func_ov00_02097810 str r0, [r4, #0x2ec] ldr r0, _02186a34 ; =data_027e0f74 ldr r1, [r4, #0x2e8] ldr r0, [r0] bl func_ov00_02097bcc mvn r1, #0 add r0, sp, #0xa4 str r1, [r4, #0x2e8] bl func_ov00_0209a508 _02186144: ldr r1, _02186a10 ; =data_ov38_021891e0 ldr r0, [r1, #0x210] cmp r0, #0x2d ble _02186194 ldr r0, [r1, #0x1f4] mov r2, #0 str r0, [sp, #0x68] ldr r3, [r1, #0x1f8] ldr r0, _02186a28 ; =data_027e0f64 str r3, [sp, #0x6c] ldr r3, [r1, #0x1fc] add r1, sp, #0x68 str r3, [sp, #0x70] str r2, [sp] str r2, [sp, #4] ldr r0, [r0] ldr r3, _02186a2c ; =data_ov38_02189360 ldr r0, [r0, #4] mov r2, #2 bl func_ov00_02089318 _02186194: ldr r0, _02186a10 ; =data_ov38_021891e0 ldr r1, [r0, #0x210] cmp r1, #0x14 addle sp, sp, #0x154 ldmleia sp!, {r4, r5, pc} ldr r0, [r0, #0x20c] cmp r0, #0 addne sp, sp, #0x154 ldmneia sp!, {r4, r5, pc} cmp r1, #0x78 bge _02186268 ldr r0, _02186a38 ; =data_ov38_021892f0 mov r1, #0x2000 mov r2, #0x52 bl func_0202b0f4 mov r3, #0 ldr r1, _02186a10 ; =data_ov38_021891e0 sub r0, r3, #0x1000 ldr r2, [r1, #0x110] str r3, [sp, #0x8c] str r2, [sp, #0x90] str r0, [sp, #0x94] ldr r0, [r1, #0x10c] ldr r2, _02186a3c ; =data_02050f54 add r3, r0, #0x500 mov r0, r3, lsl #0x10 mov r0, r0, lsr #0x10 mov r0, r0, asr #0x4 mov r0, r0, lsl #0x2 ldrsh r2, [r2, r0] str r3, [r1, #0x10c] add r0, sp, #0x8c mov r1, r2, lsl #0x11 mov r1, r1, asr #0x10 bl func_ov00_020a61ac ldr r1, _02186a1c ; =data_027e0f94 add r0, sp, #0x8c ldr r2, [r1, #4] ldr r3, [r1] str r2, [sp, #0x60] str r3, [sp, #0x5c] ldr r3, [r1, #8] add r1, sp, #0x5c mov r2, r0 str r3, [sp, #0x64] bl func_01ff9bc4 ldr r0, _02186a20 ; =data_027e0fc8 add r1, sp, #0x8c ldr r0, [r0] mov r2, #0x400 bl func_ov00_020bb810 add sp, sp, #0x154 ldmia sp!, {r4, r5, pc} _02186268: ldr r1, _02186a1c ; =data_027e0f94 mov r5, #0x1000 ldr r2, [r1, #4] ldr r3, [r1] sub r4, r5, #0x2000 mov ip, #0 str ip, [sp, #0x8c] str r5, [sp, #0x90] str r4, [sp, #0x94] str r2, [sp, #0x54] add r0, sp, #0x8c str r3, [sp, #0x50] ldr r3, [r1, #8] add r1, sp, #0x50 mov r2, r0 str r3, [sp, #0x58] bl func_01ff9bc4 ldr r0, _02186a20 ; =data_027e0fc8 add r1, sp, #0x8c ldr r0, [r0] mov r2, #0x200 bl func_ov00_020bb810 add sp, sp, #0x154 ldmia sp!, {r4, r5, pc} _021862c8: ldr r0, _02186a14 ; =data_027e0e60 mov r1, #2 ldr r0, [r0] mov r2, #1 bl func_ov00_02084be0 cmp r0, #0 beq _02186304 ldr r0, _02186a20 ; =data_027e0fc8 mov r1, #0 ldr r0, [r0] bl func_ov00_020bcfb8 ldr r0, _02186a10 ; =data_ov38_021891e0 ldr r1, [r0, #0x20c] add r1, r1, #1 str r1, [r0, #0x20c] _02186304: ldr r0, _02186a10 ; =data_ov38_021891e0 mov r1, #0 ldr r3, [r0, #0x1f4] ldr r2, [r0, #0x1f8] str r3, [sp, #0x44] str r2, [sp, #0x48] ldr r2, [r0, #0x1fc] ldr r0, _02186a28 ; =data_027e0f64 str r2, [sp, #0x4c] str r1, [sp] str r1, [sp, #4] ldr r0, [r0] ldr r3, _02186a2c ; =data_ov38_02189360 ldr r0, [r0, #4] add r1, sp, #0x44 mov r2, #2 bl func_ov00_02089318 add sp, sp, #0x154 ldmia sp!, {r4, r5, pc} _02186350: ldr r0, [r1, #0x1f4] mov r2, #0 str r0, [sp, #0x38] ldr r3, [r1, #0x1f8] ldr r0, _02186a28 ; =data_027e0f64 str r3, [sp, #0x3c] ldr r3, [r1, #0x1fc] add r1, sp, #0x38 str r3, [sp, #0x40] str r2, [sp] str r2, [sp, #4] ldr r0, [r0] ldr r3, _02186a2c ; =data_ov38_02189360 ldr r0, [r0, #4] mov r2, #2 bl func_ov00_02089318 ldr r1, _02186a10 ; =data_ov38_021891e0 ldr r0, [r1, #0x210] add r0, r0, #1 cmp r0, #0x3c str r0, [r1, #0x210] addle sp, sp, #0x154 ldmleia sp!, {r4, r5, pc} mov r2, #0 str r2, [r1, #0x10c] mov r0, #0x1000 str r0, [r1, #0x110] str r2, [r1, #0x210] ldr r2, [r1, #0x20c] ldr r0, _02186a20 ; =data_027e0fc8 add r2, r2, #1 str r2, [r1, #0x20c] ldr r0, [r0] mov r1, #0x74 bl func_ov00_020bd030 add sp, sp, #0x154 ldmia sp!, {r4, r5, pc} _021863e4: ldr r0, [r1, #0x210] add r0, r0, #1 str r0, [r1, #0x210] cmp r0, #0x92 ble _021864f0 ldr r0, [r1, #0x180] add r2, r2, #1 str r0, [r1, #0x118] ldr r3, [r1, #0x184] mov r0, #0 str r3, [r1, #0x11c] ldr r3, [r1, #0x188] str r3, [r1, #0x120] ldr r3, [r1, #0x18c] str r3, [r1, #0x124] ldr r3, [r1, #0x190] str r3, [r1, #0x128] ldr r3, [r1, #0x194] str r3, [r1, #0x12c] ldr r3, [r1, #0x198] str r3, [r1, #0x130] ldr r3, [r1, #0x19c] str r3, [r1, #0x134] ldr r3, [r1, #0x1a0] str r3, [r1, #0x138] ldr r3, [r1, #0x1a4] str r3, [r1, #0x13c] ldr r3, [r1, #0x1a8] str r3, [r1, #0x140] ldr r3, [r1, #0x1ac] str r3, [r1, #0x144] ldr r3, [r1, #0x1b0] str r3, [r1, #0x148] ldr r3, [r1, #0x1b4] str r3, [r1, #0x14c] ldr r3, [r1, #0x1b8] str r3, [r1, #0x150] ldr r3, [r1, #0x1bc] str r3, [r1, #0x154] ldr r3, [r1, #0x1c0] str r3, [r1, #0x158] ldr r3, [r1, #0x1c4] str r3, [r1, #0x15c] ldr r3, [r1, #0x1c8] str r3, [r1, #0x160] ldr r3, [r1, #0x1cc] str r3, [r1, #0x164] ldr r3, [r1, #0x1d0] str r3, [r1, #0x168] ldr r3, [r1, #0x1d4] str r3, [r1, #0x16c] ldr r3, [r1, #0x1d8] str r3, [r1, #0x170] ldr r3, [r1, #0x1dc] str r3, [r1, #0x174] ldrb r3, [r1, #0x1e0] strb r3, [r1, #0x178] ldrb r3, [r1, #0x1e1] strb r3, [r1, #0x179] ldrb r3, [r1, #0x1e2] strb r3, [r1, #0x17a] ldrb r3, [r1, #0x1e3] strb r3, [r1, #0x17b] ldrb r3, [r1, #0x1e4] strb r3, [r1, #0x17c] str r2, [r1, #0x20c] str r0, [r1, #0x210] _021864f0: ldr r0, _02186a38 ; =data_ov38_021892f0 mov r4, #0x14 ldr r2, _02186a40 ; =0x00000f9a mov r1, #0 mov r3, #0x29 str r4, [sp] bl func_ov38_0217ca04 ldr r3, _02186a10 ; =data_ov38_021891e0 mov r0, #0xcd ldr r1, [r3, #0x10c] add r2, r0, #0xcd add ip, r1, #0x1600 str ip, [r3, #0x10c] ldr r5, [r3, #0x110] mov r1, ip, lsl #0x11 mul r4, r5, r0 mul r2, r5, r2 mov r1, r1, lsr #0x10 mov r0, ip, lsl #0x10 mov r5, r1, asr #0x4 mov r0, r0, lsr #0x10 mov r0, r0, asr #0x4 add ip, r4, #0x800 add r1, r2, #0x800 ldr r4, _02186a3c ; =data_02050f54 mov r2, r5, lsl #0x2 mov r0, r0, lsl #0x2 ldrsh r2, [r4, r2] mov r5, ip, asr #0xc ldrsh r0, [r4, r0] mul r2, r5, r2 mov r1, r1, asr #0xc mul r0, r1, r0 add r1, r2, #0x800 mov r1, r1, asr #0xc add r0, r0, #0x800 str r1, [r3, #0xec] mov r4, r0, asr #0xc ldr r0, _02186a44 ; =data_ov38_021893c8 ldr r1, _02186a48 ; =data_ov38_021892cc ldr r2, _02186a30 ; =data_ov38_021893d4 str r4, [r3, #0xf0] mov r4, #0 str r4, [r3, #0xf4] bl func_01ff9bc4 ldr r0, _02186a10 ; =data_ov38_021891e0 ldr r0, [r0, #0x110] cmp r0, #0 ble _021865c0 ldr r0, _02186a4c ; =data_ov00_020eec9c ldr r1, _02186a50 ; =0x0000042b bl func_ov00_020d7d18 _021865c0: ldr r0, _02186a10 ; =data_ov38_021891e0 mov r1, #0 ldr r3, [r0, #0x1f4] ldr r2, [r0, #0x1f8] str r3, [sp, #0x2c] str r2, [sp, #0x30] ldr r2, [r0, #0x1fc] ldr r0, _02186a28 ; =data_027e0f64 str r2, [sp, #0x34] str r1, [sp] str r1, [sp, #4] ldr r0, [r0] ldr r3, _02186a2c ; =data_ov38_02189360 ldr r0, [r0, #4] add r1, sp, #0x2c mov r2, #2 bl func_ov00_02089318 add sp, sp, #0x154 ldmia sp!, {r4, r5, pc} _0218660c: ldr r5, [r4, #0x14] mov r3, #5 str r5, [r1, #0x1f4] ldr r0, [r4, #0x18] mov r2, #0x3200 str r0, [r1, #0x1f8] ldr ip, [r4, #0x1c] add r0, r0, #0x66 str ip, [r1, #0x1fc] add lr, r0, #0x600 str lr, [r1, #0x1f8] add ip, ip, #0x1800 str ip, [r1, #0x1fc] str r3, [r1, #0x184] str r2, [r1, #0x190] sub r0, r2, #0xb200 str r0, [r1, #0x194] mov r2, #0x14000 str r2, [r1, #0x198] ldr r0, _02186a54 ; =0x00000cd9 ldr r3, _02186a2c ; =data_ov38_02189360 str r0, [r1, #0x18c] str r5, [sp, #0x20] str lr, [sp, #0x24] str ip, [sp, #0x28] mov r1, #0 str r1, [sp] str r1, [sp, #4] ldr r0, _02186a28 ; =data_027e0f64 add r1, sp, #0x20 ldr r0, [r0] mov r2, #2 ldr r0, [r0, #4] bl func_ov00_02089318 ldr r0, _02186a10 ; =data_ov38_021891e0 ldr r1, [r0, #0x210] add r3, r1, #1 str r3, [r0, #0x210] cmp r3, #0x3c ble _021866d4 add r0, r4, #0x2c8 mov r1, #1 bl func_ov38_0217be60 ldr r0, _02186a10 ; =data_ov38_021891e0 mov r1, #0 ldr r2, [r0, #0x20c] add r2, r2, #1 str r2, [r0, #0x20c] str r1, [r0, #0x210] b _02186724 _021866d4: cmp r3, #5 ble _02186724 ldr r1, [r4, #0x18] ldr r2, [r4, #0x1c] ldr r0, [r4, #0x14] add r1, r1, #0xa000 str r0, [sp, #0x80] str r1, [sp, #0x84] str r2, [sp, #0x88] cmp r3, #6 bne _02186710 ldr r0, _02186a20 ; =data_027e0fc8 mov r1, #0 ldr r0, [r0] bl func_ov00_020bd070 _02186710: ldr r0, _02186a20 ; =data_027e0fc8 add r1, sp, #0x80 ldr r0, [r0] mov r2, #0x400 bl func_ov00_020bb810 _02186724: ldr r0, _02186a4c ; =data_ov00_020eec9c ldr r1, _02186a58 ; =0x0000042c bl func_ov00_020d7c8c add sp, sp, #0x154 ldmia sp!, {r4, r5, pc} _02186738: ldr lr, [r4, #0x14] mov r3, #5 str lr, [r1, #0x1f4] ldr r0, [r4, #0x18] mov r2, #0x3200 str r0, [r1, #0x1f8] ldr r4, [r4, #0x1c] add r0, r0, #0x66 str r4, [r1, #0x1fc] add ip, r0, #0x600 str ip, [r1, #0x1f8] add r4, r4, #0x1800 str r4, [r1, #0x1fc] str r3, [r1, #0x184] str r2, [r1, #0x190] sub r0, r2, #0xb200 str r0, [r1, #0x194] mov r2, #0x14000 str r2, [r1, #0x198] ldr r0, _02186a54 ; =0x00000cd9 ldr r3, _02186a2c ; =data_ov38_02189360 str r0, [r1, #0x18c] str lr, [sp, #0x14] str ip, [sp, #0x18] str r4, [sp, #0x1c] mov r1, #0 str r1, [sp] str r1, [sp, #4] ldr r0, _02186a28 ; =data_027e0f64 add r1, sp, #0x14 ldr r0, [r0] mov r2, #2 ldr r0, [r0, #4] bl func_ov00_02089318 ldr r1, _02186a10 ; =data_ov38_021891e0 ldr r0, [r1, #0x210] add r0, r0, #1 cmp r0, #0x50 str r0, [r1, #0x210] addle sp, sp, #0x154 ldmleia sp!, {r4, r5, pc} ldr r2, [r1, #0x20c] mov r0, #0 add r2, r2, #1 str r2, [r1, #0x20c] str r0, [r1, #0x218] str r0, [r1, #0x210] ldr r2, [r1, #0x118] ldr r0, _02186a1c ; =data_027e0f94 str r2, [r1, #0x180] ldr r2, [r1, #0x11c] add sp, sp, #0x154 str r2, [r1, #0x184] ldr r2, [r1, #0x120] str r2, [r1, #0x188] ldr r2, [r1, #0x124] str r2, [r1, #0x18c] ldr r2, [r1, #0x128] str r2, [r1, #0x190] ldr r2, [r1, #0x12c] str r2, [r1, #0x194] ldr r2, [r1, #0x130] str r2, [r1, #0x198] ldr r2, [r1, #0x134] str r2, [r1, #0x19c] ldr r2, [r1, #0x138] str r2, [r1, #0x1a0] ldr r2, [r1, #0x13c] str r2, [r1, #0x1a4] ldr r2, [r1, #0x140] str r2, [r1, #0x1a8] ldr r2, [r1, #0x144] str r2, [r1, #0x1ac] ldr r2, [r1, #0x148] str r2, [r1, #0x1b0] ldr r2, [r1, #0x14c] str r2, [r1, #0x1b4] ldr r2, [r1, #0x150] str r2, [r1, #0x1b8] ldr r2, [r1, #0x154] str r2, [r1, #0x1bc] ldr r2, [r1, #0x158] str r2, [r1, #0x1c0] ldr r2, [r1, #0x15c] str r2, [r1, #0x1c4] ldr r2, [r1, #0x160] str r2, [r1, #0x1c8] ldr r2, [r1, #0x164] str r2, [r1, #0x1cc] ldr r2, [r1, #0x168] str r2, [r1, #0x1d0] ldr r2, [r1, #0x16c] str r2, [r1, #0x1d4] ldr r2, [r1, #0x170] str r2, [r1, #0x1d8] ldr r2, [r1, #0x174] str r2, [r1, #0x1dc] ldrb r2, [r1, #0x178] strb r2, [r1, #0x1e0] ldrb r2, [r1, #0x179] strb r2, [r1, #0x1e1] ldrb r2, [r1, #0x17a] strb r2, [r1, #0x1e2] ldrb r2, [r1, #0x17b] strb r2, [r1, #0x1e3] ldrb r2, [r1, #0x17c] strb r2, [r1, #0x1e4] ldr r4, [r0] str r4, [r1, #0x1f4] ldr r3, [r0, #4] str r3, [r1, #0x1f8] ldr r2, [r0, #8] sub r0, r3, #0x3000 str r2, [r1, #0x1fc] str r4, [r1, #0x1e8] str r3, [r1, #0x1ec] str r2, [r1, #0x1f0] str r0, [r1, #0x1f8] ldmia sp!, {r4, r5, pc} _02186914: mov r0, #0x29 str r0, [sp] ldr r1, [r1, #0x1ec] ldr r0, _02186a5c ; =data_ov38_021893d8 mov r2, #0x400 mov r3, #0x2d bl func_ov38_0217ca04 ldr r0, _02186a10 ; =data_ov38_021891e0 mov r1, #0 ldr r3, [r0, #0x1f4] ldr r2, [r0, #0x1f8] str r3, [sp, #8] str r2, [sp, #0xc] ldr r2, [r0, #0x1fc] ldr r0, _02186a28 ; =data_027e0f64 str r2, [sp, #0x10] str r1, [sp] str r1, [sp, #4] ldr r0, [r0] ldr r3, _02186a2c ; =data_ov38_02189360 ldr r0, [r0, #4] add r1, sp, #8 mov r2, #2 bl func_ov00_02089318 ldr r0, [r4, #0x2d8] cmp r0, #1 addeq r0, r4, #0x1000 ldreq r0, [r0, #0x68] cmpeq r0, #4 bne _021869a8 ldr r1, _02186a10 ; =data_ov38_021891e0 ldr r0, _02186a20 ; =data_027e0fc8 ldr r2, [r1, #0x20c] ldr r0, [r0] add r2, r2, #1 str r2, [r1, #0x20c] bl func_ov00_020bd0a8 _021869a8: ldr r0, _02186a20 ; =data_027e0fc8 ldr lr, [r4, #0xf60] ldr ip, [r4, #0xf5c] ldr r3, [r4, #0xf58] ldr r0, [r0] add r1, sp, #0x74 mov r2, #0x400 str r3, [sp, #0x74] str ip, [sp, #0x78] str lr, [sp, #0x7c] bl func_ov00_020bb810 add sp, sp, #0x154 ldmia sp!, {r4, r5, pc} _021869dc: ldr r0, _02186a34 ; =data_027e0f74 ldr r1, [r4, #0x2ec] ldr r0, [r0] bl func_ov00_02097bcc mvn r1, #0 ldr r0, _02186a60 ; =data_02057200 str r1, [r4, #0x2ec] ldr r1, [r0] ldr r0, [r0, #4] str r1, [r4, #0x2e0] str r0, [r4, #0x2e4] add sp, sp, #0x154 ldmia sp!, {r4, r5, pc} .align 2, 0 arm_func_end func_ov38_02185ebc _02186a10: .word data_ov38_021891e0 _02186a14: .word data_027e0e60 _02186a18: .word 0x00000ccd _02186a1c: .word data_027e0f94 _02186a20: .word data_027e0fc8 _02186a24: .word 0x00000333 _02186a28: .word data_027e0f64 _02186a2c: .word data_ov38_02189360 _02186a30: .word data_ov38_021893d4 _02186a34: .word data_027e0f74 _02186a38: .word data_ov38_021892f0 _02186a3c: .word data_02050f54 _02186a40: .word 0x00000f9a _02186a44: .word data_ov38_021893c8 _02186a48: .word data_ov38_021892cc _02186a4c: .word data_ov00_020eec9c _02186a50: .word 0x0000042b _02186a54: .word 0x00000cd9 _02186a58: .word 0x0000042c _02186a5c: .word data_ov38_021893d8 _02186a60: .word data_02057200 .global func_ov38_02186a64 arm_func_start func_ov38_02186a64 func_ov38_02186a64: ; 0x02186a64 stmdb sp!, {lr} sub sp, sp, #0xc ldr r0, _02186abc ; =data_ov38_02189484 ldr r2, [r0] cmp r2, #0 addeq sp, sp, #0xc ldmeqia sp!, {pc} ldr r1, [r2, #0x48] ldr r0, _02186ac0 ; =data_027e0fc8 str r1, [sp] ldr r1, [r2, #0x4c] ldr r0, [r0] str r1, [sp, #4] ldr ip, [r2, #0x50] add r3, r1, #0x4000 add r1, sp, #0 mov r2, #0x400 str ip, [sp, #8] str r3, [sp, #4] bl func_ov00_020bb810 add sp, sp, #0xc ldmia sp!, {pc} .align 2, 0 arm_func_end func_ov38_02186a64 _02186abc: .word data_ov38_02189484 _02186ac0: .word data_027e0fc8 .global func_ov38_02186ac4 arm_func_start func_ov38_02186ac4 func_ov38_02186ac4: ; 0x02186ac4 stmdb sp!, {lr} sub sp, sp, #0xc ldr r3, [r0, #0xff8] ldr r0, _02186b04 ; =data_027e0fc8 ldr r1, [r3, #0x48] ldr r0, [r0] str r1, [sp] ldr r2, [r3, #0x4c] add r1, sp, #0 str r2, [sp, #4] ldr r3, [r3, #0x50] mov r2, #0x400 str r3, [sp, #8] bl func_ov00_020bb810 add sp, sp, #0xc ldmia sp!, {pc} .align 2, 0 arm_func_end func_ov38_02186ac4 _02186b04: .word data_027e0fc8 .global func_ov38_02186b08 arm_func_start func_ov38_02186b08 func_ov38_02186b08: ; 0x02186b08 stmdb sp!, {r3, r4, lr} sub sp, sp, #0xc4 ldr r1, _02186c5c ; =data_ov38_021891e0 mov r2, #0 str r2, [r1, #0x20c] mov r4, r0 str r2, [r1, #0x210] bl func_ov29_02170144 bl func_ov29_02171714 add r0, sp, #0x14 bl func_ov00_0209a4f4 mvn r0, #0 str r0, [sp, #0x18] mov r0, #0x32 strb r0, [sp, #0x1d] mov r0, #2 strb r0, [sp, #0x1e] strb r0, [sp, #0x1f] mov r0, #4 str r0, [sp, #0xa8] ldr r0, _02186c60 ; =data_ov38_02189360 ldr r1, _02186c64 ; =data_ov38_021893d4 bl func_ov38_02185c4c ldr r0, _02186c68 ; =data_ov38_02189414 blx func_0202ab54 ldr r0, _02186c5c ; =data_ov38_021891e0 mov r2, #1 mov r1, #0 str r2, [r0, #0x234] str r1, [r0, #0x23c] str r1, [sp] mov r1, #2 ldr r0, _02186c68 ; =data_ov38_02189414 mov r2, r1 mov r3, r1 blx func_0202ac0c ldr r0, _02186c6c ; =data_027e071c ldr r1, _02186c68 ; =data_ov38_02189414 bl func_0202d77c mov r0, #0 str r0, [sp, #8] mov r0, #0x12000 str r0, [sp, #0xc] mov r0, #0x8800 str r0, [sp, #0x10] sub r1, r0, #0x9700 add r0, sp, #8 bl func_ov00_020a61ac mov r3, #0 str r3, [sp] ldr r0, _02186c70 ; =data_027e0fc8 str r3, [sp, #4] ldr r0, [r0] add r1, sp, #8 ldr ip, [r0] mov r2, #0x7100 ldr ip, [ip, #0x34] blx ip ldr r1, _02186c74 ; =data_027e0fb4 ldr r0, _02186c78 ; =data_ov38_02188ca0 ldr r2, [r1] mov r3, #0x7f ldr r1, [r2, #0x10] str r1, [r0, #0x258] cmp r1, #0 movne r0, #0 strne r0, [r2, #0x10] ldr r0, _02186c7c ; =data_ov00_020eec68 mov r1, #0xce mov r2, #0 bl func_ov00_020d70a4 ldr r0, _02186c80 ; =data_027e0f74 add r1, sp, #0x14 ldr r0, [r0] bl func_ov00_02097810 str r0, [r4, #0x2e8] ldr r1, _02186c78 ; =data_ov38_02188ca0 add r0, sp, #0x14 ldr r2, [r1, #0x25c] ldr r1, [r1, #0x260] str r2, [r4, #0x2e0] str r1, [r4, #0x2e4] bl func_ov00_0209a508 add sp, sp, #0xc4 ldmia sp!, {r3, r4, pc} .align 2, 0 arm_func_end func_ov38_02186b08 _02186c5c: .word data_ov38_021891e0 _02186c60: .word data_ov38_02189360 _02186c64: .word data_ov38_021893d4 _02186c68: .word data_ov38_02189414 _02186c6c: .word data_027e071c _02186c70: .word data_027e0fc8 _02186c74: .word data_027e0fb4 _02186c78: .word data_ov38_02188ca0 _02186c7c: .word data_ov00_020eec68 _02186c80: .word data_027e0f74 .global func_ov38_02186c84 arm_func_start func_ov38_02186c84 func_ov38_02186c84: ; 0x02186c84 stmdb sp!, {r4, r5, lr} sub sp, sp, #0x8c ldr r1, _021874c4 ; =data_ov38_021891e0 mov r4, r0 ldr r0, [r1, #0x20c] cmp r0, #9 addls pc, pc, r0, lsl #2 b _0218746c _02186ca4: ; jump table b _02186ccc ; case 0 b _02186dd8 ; case 1 b _02186e38 ; case 2 b _02186f54 ; case 3 b _0218700c ; case 4 b _02187014 ; case 5 b _02187068 ; case 6 b _02187134 ; case 7 b _0218728c ; case 8 b _021873a8 ; case 9 _02186ccc: ldr r0, [r1, #0x210] add r0, r0, #1 str r0, [r1, #0x210] cmp r0, #0x64 ble _02186d4c ldr r0, _021874c8 ; =data_ov38_02189414 blx func_0202ab54 mov r1, #2 ldr r0, _021874c4 ; =data_ov38_021891e0 mov r2, #1 str r2, [r0, #0x234] mov r5, #0 str r5, [r0, #0x23c] ldr r0, _021874c8 ; =data_ov38_02189414 mov r2, r1 mov r3, r1 str r5, [sp] blx func_0202ac0c ldr r0, _021874cc ; =data_027e071c ldr r1, _021874c8 ; =data_ov38_02189414 bl func_0202d77c mov r0, #8 mov r1, #0xa mov r2, r5 bl func_ov38_0217bf0c ldr r0, _021874c4 ; =data_ov38_021891e0 mov r1, r5 str r1, [r0, #0x210] ldr r1, [r0, #0x20c] add r1, r1, #1 str r1, [r0, #0x20c] b _02186dd8 _02186d4c: ldr ip, [r4, #0x14] ldr r2, _021874d0 ; =0x00000bb8 str ip, [r1, #0x1f4] ldr r3, [r4, #0x18] mov r0, #5 str r3, [r1, #0x1f8] ldr r5, [r4, #0x1c] add r3, r3, #0x11800 str r5, [r1, #0x1fc] str r3, [r1, #0x1f8] str r0, [r1, #0x184] ldr r0, _021874d4 ; =0x00006d60 str r2, [r1, #0x190] str r0, [r1, #0x194] mov r0, #0x9000 str r0, [r1, #0x198] sub r0, r2, #0x1f4 str r0, [r1, #0x18c] str r3, [sp, #0x84] str ip, [sp, #0x80] str r5, [sp, #0x88] mov r1, #0 str r1, [sp] str r1, [sp, #4] ldr r0, _021874d8 ; =data_027e0f64 ldr r3, _021874dc ; =data_ov38_02189360 ldr r0, [r0] add r1, sp, #0x80 ldr r0, [r0, #4] mov r2, #2 bl func_ov00_02089318 mov r0, r4 bl func_ov38_02186a64 add sp, sp, #0x8c ldmia sp!, {r4, r5, pc} _02186dd8: ldr r2, _021874c4 ; =data_ov38_021891e0 mov r5, #0 ldr r1, [r2, #0x20c] ldr r0, _021874d8 ; =data_027e0f64 add r1, r1, #1 str r1, [r2, #0x20c] ldr r3, [r2, #0x1f4] add r1, sp, #0x74 str r3, [sp, #0x74] ldr ip, [r2, #0x1f8] ldr r3, _021874dc ; =data_ov38_02189360 str ip, [sp, #0x78] ldr ip, [r2, #0x1fc] mov r2, #2 str ip, [sp, #0x7c] str r5, [sp] str r5, [sp, #4] ldr r0, [r0] ldr r0, [r0, #4] bl func_ov00_02089318 mov r0, r4 bl func_ov38_02186a64 add sp, sp, #0x8c ldmia sp!, {r4, r5, pc} _02186e38: ldr r0, _021874e0 ; =data_027e0c68 mov r1, #0 bl func_02036770 cmp r0, #0 beq _02186e74 ldr r0, _021874c4 ; =data_ov38_021891e0 mov r1, #0 str r1, [r0, #0x210] ldr r2, [r0, #0x20c] ldr r1, _021874e4 ; =data_ov38_021893ec add r2, r2, #1 str r2, [r0, #0x20c] ldr r0, [r4, #0xff8] bl func_ov38_021880d8 b _02186f54 _02186e74: ldr lr, [r4, #0x14] ldr r1, _021874c4 ; =data_ov38_021891e0 ldr r3, _021874e8 ; =0x000008fc str lr, [r1, #0x1f4] ldr r5, [r4, #0x18] mov r2, #5 str r5, [r1, #0x1f8] ldr r0, [r4, #0x1c] add ip, r5, #0x12000 str r0, [r1, #0x1fc] add r0, r0, #0xcd add r5, r0, #0x1400 str ip, [r1, #0x1f8] str r5, [r1, #0x1fc] str r2, [r1, #0x184] ldr r2, _021874ec ; =0x000061a8 str r3, [r1, #0x190] str r2, [r1, #0x194] ldr r0, _021874f0 ; =0x00007ccd mov r2, #2 str r0, [r1, #0x198] add r0, r3, #0xc8 str r0, [r1, #0x18c] str lr, [sp, #0x68] str ip, [sp, #0x6c] str r5, [sp, #0x70] mov r1, #0 str r1, [sp] str r1, [sp, #4] ldr r0, _021874d8 ; =data_027e0f64 ldr r3, _021874dc ; =data_ov38_02189360 ldr r0, [r0] add r1, sp, #0x68 ldr r0, [r0, #4] bl func_ov00_02089318 ldr r0, _021874c4 ; =data_ov38_021891e0 mov r1, #0 ldr r3, [r0, #0x1f4] ldr r2, [r0, #0x1f8] str r3, [sp, #0x5c] str r2, [sp, #0x60] ldr r2, [r0, #0x1fc] ldr r0, _021874d8 ; =data_027e0f64 str r2, [sp, #0x64] str r1, [sp] str r1, [sp, #4] ldr r0, [r0] ldr r3, _021874dc ; =data_ov38_02189360 ldr r0, [r0, #4] add r1, sp, #0x5c mov r2, #2 bl func_ov00_02089318 mov r0, r4 bl func_ov38_02186a64 add sp, sp, #0x8c ldmia sp!, {r4, r5, pc} _02186f54: ldr lr, [r4, #0x14] ldr r1, _021874c4 ; =data_ov38_021891e0 ldr r3, _021874e8 ; =0x000008fc str lr, [r1, #0x1f4] ldr r5, [r4, #0x18] mov r2, #5 str r5, [r1, #0x1f8] ldr r0, [r4, #0x1c] add ip, r5, #0x12000 str r0, [r1, #0x1fc] add r0, r0, #0xcd add r5, r0, #0x1400 str ip, [r1, #0x1f8] str r5, [r1, #0x1fc] str r2, [r1, #0x184] ldr r2, _021874ec ; =0x000061a8 str r3, [r1, #0x190] str r2, [r1, #0x194] ldr r0, _021874f0 ; =0x00007ccd mov r2, #2 str r0, [r1, #0x198] add r0, r3, #0xc8 str r0, [r1, #0x18c] str lr, [sp, #0x50] str ip, [sp, #0x54] str r5, [sp, #0x58] mov r1, #0 str r1, [sp] str r1, [sp, #4] ldr r0, _021874d8 ; =data_027e0f64 ldr r3, _021874dc ; =data_ov38_02189360 ldr r0, [r0] add r1, sp, #0x50 ldr r0, [r0, #4] bl func_ov00_02089318 ldr r0, _021874f4 ; =data_ov38_02189484 ldr r0, [r0] cmp r0, #0 mov r0, r4 beq _02187000 bl func_ov38_02186a64 add sp, sp, #0x8c ldmia sp!, {r4, r5, pc} _02187000: bl func_ov38_02186ac4 add sp, sp, #0x8c ldmia sp!, {r4, r5, pc} _0218700c: add r0, r0, #1 str r0, [r1, #0x20c] _02187014: ldr r0, _021874c4 ; =data_ov38_021891e0 mov r1, #0 ldr r3, [r0, #0x1f4] ldr r2, [r0, #0x1f8] str r3, [sp, #0x44] str r2, [sp, #0x48] ldr r2, [r0, #0x1fc] ldr r0, _021874d8 ; =data_027e0f64 str r2, [sp, #0x4c] str r1, [sp] str r1, [sp, #4] ldr r0, [r0] ldr r3, _021874dc ; =data_ov38_02189360 ldr r0, [r0, #4] add r1, sp, #0x44 mov r2, #2 bl func_ov00_02089318 mov r0, r4 bl func_ov38_02186ac4 add sp, sp, #0x8c ldmia sp!, {r4, r5, pc} _02187068: mov r0, #8 mov r1, #0x22 mov r2, #0 bl func_ov38_0217bf0c ldr ip, [r4, #0x14] ldr r2, _021874c4 ; =data_ov38_021891e0 ldr r0, _021874f8 ; =0xffffce66 str ip, [r2, #0x1f4] ldr r5, [r4, #0x18] add ip, ip, r0 str r5, [r2, #0x1f8] ldr lr, [r4, #0x1c] ldr r1, _021874fc ; =0x00011333 str lr, [r2, #0x1fc] add r5, r5, r1 str ip, [r2, #0x1f4] str r5, [r2, #0x1f8] add r1, lr, #0x8000 ldr r3, _02187500 ; =0xfffffac4 str r1, [r2, #0x1fc] mov r0, #5 str r0, [r2, #0x184] ldr r0, _02187504 ; =0x000073a0 str r3, [r2, #0x190] str r0, [r2, #0x194] mov r0, #0x9c00 str r0, [r2, #0x198] rsb r0, r3, #0x35c str r0, [r2, #0x18c] str r1, [sp, #0x40] str ip, [sp, #0x38] str r5, [sp, #0x3c] mov r1, #0 str r1, [sp] str r1, [sp, #4] ldr r0, _021874d8 ; =data_027e0f64 ldr r3, _021874dc ; =data_ov38_02189360 ldr r0, [r0] add r1, sp, #0x38 ldr r0, [r0, #4] mov r2, #2 bl func_ov00_02089318 ldr r0, _02187508 ; =data_027e0fc8 ldr r0, [r0] bl func_ov00_020bb9b0 ldr r0, _021874c4 ; =data_ov38_021891e0 mov r1, #0 str r1, [r0, #0x210] ldr r1, [r0, #0x20c] add r1, r1, #1 str r1, [r0, #0x20c] _02187134: ldr r0, _021874e0 ; =data_027e0c68 mov r1, #0 bl func_02036770 cmp r0, #0 beq _02187198 ldr r0, _021874c4 ; =data_ov38_021891e0 ldr r1, [r0, #0x210] add r1, r1, #1 str r1, [r0, #0x210] cmp r1, #0x1e ble _02187198 mov r0, r4 mov r1, #8 mov r2, #0x24 mov r3, #0 bl func_ov38_02185b14 ldr r0, _021874c4 ; =data_ov38_021891e0 mov r1, #0 ldr r2, [r0, #0x20c] add r2, r2, #1 str r2, [r0, #0x20c] str r1, [r0, #0x210] ldr r0, [r4, #0xff8] bl func_ov00_020ba458 b _0218728c _02187198: ldr ip, [r4, #0x14] ldr r2, _021874c4 ; =data_ov38_021891e0 ldr r0, _021874f8 ; =0xffffce66 str ip, [r2, #0x1f4] ldr r5, [r4, #0x18] add ip, ip, r0 str r5, [r2, #0x1f8] ldr r3, [r4, #0x1c] ldr r1, _021874fc ; =0x00011333 str r3, [r2, #0x1fc] add r5, r5, r1 str ip, [r2, #0x1f4] str r5, [r2, #0x1f8] add r3, r3, #0x8000 ldr r1, _02187500 ; =0xfffffac4 str r3, [r2, #0x1fc] mov r0, #5 str r0, [r2, #0x184] ldr r0, _02187504 ; =0x000073a0 str r1, [r2, #0x190] str r0, [r2, #0x194] mov r0, #0x9c00 str r0, [r2, #0x198] rsb r0, r1, #0x35c str r0, [r2, #0x18c] str r3, [sp, #0x34] str ip, [sp, #0x2c] str r5, [sp, #0x30] mov r1, #0 str r1, [sp] str r1, [sp, #4] ldr r0, _021874d8 ; =data_027e0f64 ldr r3, _021874dc ; =data_ov38_02189360 ldr r0, [r0] add r1, sp, #0x2c ldr r0, [r0, #4] mov r2, #2 bl func_ov00_02089318 ldr r0, _021874c4 ; =data_ov38_021891e0 mov r1, #0 ldr r3, [r0, #0x1f4] ldr r2, [r0, #0x1f8] str r3, [sp, #0x20] str r2, [sp, #0x24] ldr r2, [r0, #0x1fc] ldr r0, _021874d8 ; =data_027e0f64 str r2, [sp, #0x28] str r1, [sp] str r1, [sp, #4] ldr r0, [r0] ldr r3, _021874dc ; =data_ov38_02189360 ldr r0, [r0, #4] add r1, sp, #0x20 mov r2, #2 bl func_ov00_02089318 mov r0, r4 bl func_ov38_02186ac4 ldr r0, [r4, #0xff8] bl func_ov00_020ba458 add sp, sp, #0x8c ldmia sp!, {r4, r5, pc} _0218728c: bl func_ov29_02178670 ldr r0, [r0, #0x130] cmp r0, #1 bne _02187308 ldr r1, _021874c4 ; =data_ov38_021891e0 ldr r0, _021874c8 ; =data_ov38_02189414 ldr r3, [r1, #0x20c] mov r2, #0 add r3, r3, #1 str r3, [r1, #0x20c] str r2, [r1, #0x210] blx func_0202ab54 ldr r0, _021874c4 ; =data_ov38_021891e0 mov r1, #1 str r1, [r0, #0x234] mov r5, #0 str r5, [r0, #0x23c] strb r5, [r0, #0x254] ldr r0, _021874c8 ; =data_ov38_02189414 mov r1, #0x3a mov r2, #4 mov r3, #0x10 str r5, [sp] blx func_0202ac0c ldr r0, _021874cc ; =data_027e071c ldr r1, _021874c8 ; =data_ov38_02189414 bl func_0202d77c ldr r0, _0218750c ; =data_ov00_020eec68 mov r1, #0x1e bl func_ov00_020d716c b _021873a8 _02187308: ldr r5, [r4, #0x14] ldr r2, _021874c4 ; =data_ov38_021891e0 ldr r0, _021874f8 ; =0xffffce66 str r5, [r2, #0x1f4] ldr ip, [r4, #0x18] add r5, r5, r0 str ip, [r2, #0x1f8] ldr r3, [r4, #0x1c] ldr r1, _021874fc ; =0x00011333 str r3, [r2, #0x1fc] add r4, ip, r1 str r5, [r2, #0x1f4] str r4, [r2, #0x1f8] add r3, r3, #0x8000 ldr r1, _02187500 ; =0xfffffac4 str r3, [r2, #0x1fc] mov r0, #5 str r0, [r2, #0x184] ldr r0, _02187504 ; =0x000073a0 str r1, [r2, #0x190] str r0, [r2, #0x194] mov r0, #0x9c00 str r0, [r2, #0x198] rsb r0, r1, #0x35c str r0, [r2, #0x18c] str r3, [sp, #0x1c] str r5, [sp, #0x14] str r4, [sp, #0x18] mov r1, #0 str r1, [sp] str r1, [sp, #4] ldr r0, _021874d8 ; =data_027e0f64 ldr r3, _021874dc ; =data_ov38_02189360 ldr r0, [r0] add r1, sp, #0x14 ldr r0, [r0, #4] mov r2, #2 bl func_ov00_02089318 add sp, sp, #0x8c ldmia sp!, {r4, r5, pc} _021873a8: ldr r2, _021874c4 ; =data_ov38_021891e0 ldr r0, [r2, #0x210] cmp r0, #0x1e ble _021873c8 ldr r0, [r2, #0x20c] add r0, r0, #1 str r0, [r2, #0x20c] b _0218746c _021873c8: add r0, r0, #1 str r0, [r2, #0x210] ldr ip, [r4, #0x14] ldr r0, _021874f8 ; =0xffffce66 str ip, [r2, #0x1f4] ldr r5, [r4, #0x18] add ip, ip, r0 str r5, [r2, #0x1f8] ldr lr, [r4, #0x1c] ldr r1, _021874fc ; =0x00011333 str lr, [r2, #0x1fc] add r4, r5, r1 str ip, [r2, #0x1f4] str r4, [r2, #0x1f8] add r1, lr, #0x8000 ldr r3, _02187500 ; =0xfffffac4 str r1, [r2, #0x1fc] mov r0, #5 str r0, [r2, #0x184] ldr r0, _02187504 ; =0x000073a0 str r3, [r2, #0x190] str r0, [r2, #0x194] mov r0, #0x9c00 str r0, [r2, #0x198] rsb r0, r3, #0x35c str r0, [r2, #0x18c] str r1, [sp, #0x10] str ip, [sp, #8] str r4, [sp, #0xc] mov r1, #0 str r1, [sp] str r1, [sp, #4] ldr r0, _021874d8 ; =data_027e0f64 ldr r3, _021874dc ; =data_ov38_02189360 ldr r0, [r0] add r1, sp, #8 ldr r0, [r0, #4] mov r2, #2 bl func_ov00_02089318 add sp, sp, #0x8c ldmia sp!, {r4, r5, pc} _0218746c: ldr r0, _02187510 ; =data_027e0f74 ldr r1, [r4, #0x2e8] ldr r0, [r0] bl func_ov00_02097bcc ldr r0, _0218750c ; =data_ov00_020eec68 mov r1, #0xcd mov r2, #0 mov r3, #0x7f bl func_ov00_020d70a4 ldr r0, _02187514 ; =data_ov38_02188ca0 ldr r1, [r0, #0x258] cmp r1, #0 ldrne r0, _02187518 ; =data_027e0fb4 ldrne r0, [r0] strne r1, [r0, #0x10] ldr r0, _0218751c ; =data_02057200 ldr r1, [r0] ldr r0, [r0, #4] str r1, [r4, #0x2e0] str r0, [r4, #0x2e4] add sp, sp, #0x8c ldmia sp!, {r4, r5, pc} .align 2, 0 arm_func_end func_ov38_02186c84 _021874c4: .word data_ov38_021891e0 _021874c8: .word data_ov38_02189414 _021874cc: .word data_027e071c _021874d0: .word 0x00000bb8 _021874d4: .word 0x00006d60 _021874d8: .word data_027e0f64 _021874dc: .word data_ov38_02189360 _021874e0: .word data_027e0c68 _021874e4: .word data_ov38_021893ec _021874e8: .word 0x000008fc _021874ec: .word 0x000061a8 _021874f0: .word 0x00007ccd _021874f4: .word data_ov38_02189484 _021874f8: .word 0xffffce66 _021874fc: .word 0x00011333 _02187500: .word 0xfffffac4 _02187504: .word 0x000073a0 _02187508: .word data_027e0fc8 _0218750c: .word data_ov00_020eec68 _02187510: .word data_027e0f74 _02187514: .word data_ov38_02188ca0 _02187518: .word data_027e0fb4 _0218751c: .word data_02057200 .global func_ov38_02187520 arm_func_start func_ov38_02187520 func_ov38_02187520: ; 0x02187520 stmdb sp!, {r4, lr} sub sp, sp, #0xb0 ldr r1, _021875bc ; =data_ov38_021891e0 mov r2, #0 mov r4, r0 str r2, [r1, #0x20c] add r0, sp, #0 str r2, [r1, #0x210] bl func_ov00_0209a4f4 mov r3, #0 ldr r0, _021875c0 ; =data_027e0f74 mvn lr, #0 mov ip, #0x32 mov r2, #1 ldr r0, [r0] add r1, sp, #0 str lr, [sp, #4] strb ip, [sp, #9] strb r3, [sp, #0xa] strb r3, [sp, #0xb] strb r2, [sp, #0x16] bl func_ov00_02097810 str r0, [r4, #0x2e8] ldr r0, [r4, #0xff4] bl func_ov29_0216fe04 ldr r0, _021875c4 ; =data_027e0f64 mov r1, #4 ldr r0, [r0] ldr r0, [r0, #4] bl func_ov00_02088000 ldr r1, _021875c8 ; =data_ov38_02188ca0 add r0, sp, #0 ldr r2, [r1, #0x264] ldr r1, [r1, #0x268] str r2, [r4, #0x2e0] str r1, [r4, #0x2e4] bl func_ov00_0209a508 add sp, sp, #0xb0 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov38_02187520 _021875bc: .word data_ov38_021891e0 _021875c0: .word data_027e0f74 _021875c4: .word data_027e0f64 _021875c8: .word data_ov38_02188ca0 .global func_ov38_021875cc arm_func_start func_ov38_021875cc func_ov38_021875cc: ; 0x021875cc stmdb sp!, {r3, lr} ldr r1, [r0, #0xff4] ldr r1, [r1, #0x130] cmp r1, #4 bne _021875f4 ldr r2, _02187620 ; =data_027e0f74 ldr r1, [r0, #0x2e8] ldr r0, [r2] bl func_ov00_02097bcc ldmia sp!, {r3, pc} _021875f4: ldr r0, _02187624 ; =data_ov38_021891e0 ldr r1, [r0, #0x210] add r1, r1, #1 str r1, [r0, #0x210] cmp r1, #0xa ldmneia sp!, {r3, pc} ldr r0, _02187628 ; =data_027e0fc8 mov r1, #0 ldr r0, [r0] bl func_ov00_020bcfb8 ldmia sp!, {r3, pc} .align 2, 0 arm_func_end func_ov38_021875cc _02187620: .word data_027e0f74 _02187624: .word data_ov38_021891e0 _02187628: .word data_027e0fc8 .global func_ov38_0218762c arm_func_start func_ov38_0218762c func_ov38_0218762c: ; 0x0218762c stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0xec ldr r1, _02187944 ; =data_ov38_021891e0 mov r2, #0 mov r4, r0 str r2, [r1, #0x20c] add r0, sp, #0x3c str r2, [r1, #0x210] bl func_ov00_0209a4f4 ldr r0, _02187948 ; =data_027e0f64 mov r3, #0x32 mov r2, #2 mov r1, #1 mvn r5, #0 strb r1, [sp, #0x47] ldr r0, [r0] strb r3, [sp, #0x45] strb r2, [sp, #0x46] str r5, [sp, #0x40] ldr r5, [r0, #4] ldr r0, _0218794c ; =data_ov38_02189360 ldr r2, [r5, #0x26c] ldr r1, _02187950 ; =data_ov38_021893d4 str r2, [sp, #0x5c] ldr r3, [r5, #0x270] mov r2, #0 str r3, [sp, #0x60] ldr r3, [r5, #0x274] str r3, [sp, #0x64] strb r2, [sp, #0x50] bl func_ov38_02185c4c ldr r0, _02187944 ; =data_ov38_021891e0 ldr sb, [r0, #0x180] str sb, [r0, #0x118] ldr r8, [r0, #0x184] str r8, [r0, #0x11c] ldr r7, [r0, #0x188] str r7, [r0, #0x120] ldr r1, [r0, #0x18c] str r1, [r0, #0x124] ldr r1, [r0, #0x190] str r1, [r0, #0x128] ldr r6, [r0, #0x194] str r6, [r0, #0x12c] ldr r1, [r0, #0x198] str r1, [r0, #0x130] ldr r5, [r0, #0x19c] str r5, [r0, #0x134] ldr lr, [r0, #0x1a0] str lr, [r0, #0x138] ldr ip, [r0, #0x1a4] str ip, [r0, #0x13c] ldr r3, [r0, #0x1a8] str r3, [r0, #0x140] ldr r2, [r0, #0x1ac] str r2, [r0, #0x144] ldr r1, [r0, #0x1b0] str r1, [r0, #0x148] ldr fp, [r0, #0x1b4] str fp, [r0, #0x14c] ldr sl, [r0, #0x1b8] str sl, [sp] str sl, [r0, #0x150] ldr sl, [r0, #0x1bc] str sl, [sp, #4] str sl, [r0, #0x154] ldr sl, [r0, #0x1c0] str sl, [sp, #8] str sl, [r0, #0x158] ldr sl, [r0, #0x1c4] str sl, [sp, #0xc] str sl, [r0, #0x15c] ldr sl, [r0, #0x1c8] str sl, [sp, #0x10] str sl, [r0, #0x160] ldr sl, [r0, #0x1cc] str sl, [sp, #0x14] str sl, [r0, #0x164] ldr sl, [r0, #0x1d0] str sl, [sp, #0x18] str sl, [r0, #0x168] ldr sl, [r0, #0x1d4] str sl, [sp, #0x1c] str sl, [r0, #0x16c] ldr sl, [r0, #0x1d8] str sl, [sp, #0x20] str sl, [r0, #0x170] ldr sl, [r0, #0x1dc] str sl, [sp, #0x24] str sl, [r0, #0x174] ldrb sl, [r0, #0x1e0] str sl, [sp, #0x28] strb sl, [r0, #0x178] ldrb sl, [r0, #0x1e1] str sl, [sp, #0x2c] strb sl, [r0, #0x179] ldrb sl, [r0, #0x1e2] str sl, [sp, #0x30] strb sl, [r0, #0x17a] ldrb sl, [r0, #0x1e3] str sl, [sp, #0x34] strb sl, [r0, #0x17b] ldrb sl, [r0, #0x1e4] str sl, [sp, #0x38] strb sl, [r0, #0x17c] ldr sl, [r0, #0x1f4] str sl, [r0, #0x1e8] ldr sl, [r0, #0x1f8] str sl, [r0, #0x1ec] ldr sl, [r0, #0x1fc] str sl, [r0, #0x1f0] mov sl, #0 str sl, [r0, #0x104] add sl, r5, #0x8800 sub r5, lr, #0x1000 ldr lr, [r4, #0x14] str lr, [r0, #0x1f4] ldr lr, [r4, #0x18] str lr, [r0, #0x1f8] ldr lr, [r4, #0x1c] str lr, [r0, #0x1fc] str r1, [sp, #0x98] ldr r1, [sp] str sl, [r0, #0x19c] str r1, [sp, #0xa0] ldr r1, [sp, #4] str r3, [sp, #0x90] str r1, [sp, #0xa4] ldr r1, [sp, #8] str r2, [sp, #0x94] str r1, [sp, #0xa8] ldr r1, [sp, #0xc] mov r2, #4 str r1, [sp, #0xac] ldr r1, [sp, #0x10] str r5, [r0, #0x1a0] str r1, [sp, #0xb0] ldr r1, [sp, #0x14] ldr r3, _02187954 ; =data_027e0f74 str r1, [sp, #0xb4] ldr r1, [sp, #0x18] str sb, [sp, #0x68] str r1, [sp, #0xb8] ldr r1, [sp, #0x1c] str r8, [sp, #0x6c] str r1, [sp, #0xbc] ldr r1, [sp, #0x20] str r7, [sp, #0x70] str r1, [sp, #0xc0] ldr r1, _02187958 ; =0x00000bb8 str r6, [sp, #0x7c] str r1, [r0, #0x190] mov r1, #0x7400 str r1, [r0, #0x198] mov r1, #0xfa0 str r1, [r0, #0x18c] ldr r0, [r3] mov r3, #0xfa0 str r3, [sp, #0x74] ldr r3, _02187958 ; =0x00000bb8 add r1, sp, #0x3c str r3, [sp, #0x78] mov r3, #0x7400 str r3, [sp, #0x80] ldr r3, [sp, #0x24] str ip, [sp, #0x8c] str r3, [sp, #0xc4] ldr r3, [sp, #0x28] str fp, [sp, #0x9c] strb r3, [sp, #0xc8] ldr r3, [sp, #0x2c] str sl, [sp, #0x84] strb r3, [sp, #0xc9] ldr r3, [sp, #0x30] str r5, [sp, #0x88] strb r3, [sp, #0xca] ldr r3, [sp, #0x34] str r2, [sp, #0xd0] strb r3, [sp, #0xcb] ldr r3, [sp, #0x38] strb r3, [sp, #0xcc] bl func_ov00_02097810 ldr r1, _0218795c ; =data_027e0fc8 str r0, [r4, #0x2e8] ldr r0, [r1] mov r1, #0 bl func_ov00_020bd070 mov r1, #0 ldr r0, _02187960 ; =data_ov38_02188ca0 str r1, [r4, #0x12c] ldr r2, [r0, #0x26c] ldr r1, [r0, #0x270] add r0, sp, #0x3c str r2, [r4, #0x2e0] str r1, [r4, #0x2e4] bl func_ov00_0209a508 add sp, sp, #0xec ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 arm_func_end func_ov38_0218762c _02187944: .word data_ov38_021891e0 _02187948: .word data_027e0f64 _0218794c: .word data_ov38_02189360 _02187950: .word data_ov38_021893d4 _02187954: .word data_027e0f74 _02187958: .word 0x00000bb8 _0218795c: .word data_027e0fc8 _02187960: .word data_ov38_02188ca0 .global func_ov38_02187964 arm_func_start func_ov38_02187964 func_ov38_02187964: ; 0x02187964 stmdb sp!, {r4, r5, lr} sub sp, sp, #0x154 ldr r1, _02188068 ; =data_ov38_021891e0 mov r5, r0 ldr r0, [r1, #0x20c] cmp r0, #0 beq _02187994 cmp r0, #1 beq _02187cd8 cmp r0, #2 beq _02187e98 b _02187f44 _02187994: ldr r0, _0218806c ; =data_ov38_021892e4 mov r4, #0x21 mov r1, #0x1000 mov r2, #0x66 mov r3, #0x52 str r4, [sp] bl func_ov38_0217ca04 cmp r0, #0 beq _02187b28 ldr r2, _02188068 ; =data_ov38_021891e0 ldr r0, [r2, #0x210] cmp r0, #0xf0 ble _02187b28 ldr r0, [r2, #0x20c] mov r4, #0 add r0, r0, #1 str r0, [r2, #0x20c] str r4, [r2, #0x104] str r4, [r2, #0x210] ldr r1, [r2, #0x1f4] ldr r0, _02188070 ; =data_027e0f64 str r1, [sp, #0x3c] ldr r3, [r2, #0x1f8] add r1, sp, #0x3c str r3, [sp, #0x40] ldr r2, [r2, #0x1fc] ldr r3, _02188074 ; =data_ov38_02189360 str r2, [sp, #0x44] str r4, [sp] str r4, [sp, #4] ldr r0, [r0] mov r2, #2 ldr r0, [r0, #4] bl func_ov00_02089318 ldr r0, _02188068 ; =data_ov38_021891e0 add sp, sp, #0x154 ldr r1, [r0, #0x180] str r1, [r0, #0x118] ldr r1, [r0, #0x184] str r1, [r0, #0x11c] ldr r1, [r0, #0x188] str r1, [r0, #0x120] ldr r1, [r0, #0x18c] str r1, [r0, #0x124] ldr r1, [r0, #0x190] str r1, [r0, #0x128] ldr r1, [r0, #0x194] str r1, [r0, #0x12c] ldr r1, [r0, #0x198] str r1, [r0, #0x130] ldr r1, [r0, #0x19c] str r1, [r0, #0x134] ldr r1, [r0, #0x1a0] str r1, [r0, #0x138] ldr r1, [r0, #0x1a4] str r1, [r0, #0x13c] ldr r1, [r0, #0x1a8] str r1, [r0, #0x140] ldr r1, [r0, #0x1ac] str r1, [r0, #0x144] ldr r1, [r0, #0x1b0] str r1, [r0, #0x148] ldr r1, [r0, #0x1b4] str r1, [r0, #0x14c] ldr r1, [r0, #0x1b8] str r1, [r0, #0x150] ldr r1, [r0, #0x1bc] str r1, [r0, #0x154] ldr r1, [r0, #0x1c0] str r1, [r0, #0x158] ldr r1, [r0, #0x1c4] str r1, [r0, #0x15c] ldr r1, [r0, #0x1c8] str r1, [r0, #0x160] ldr r1, [r0, #0x1cc] str r1, [r0, #0x164] ldr r1, [r0, #0x1d0] str r1, [r0, #0x168] ldr r1, [r0, #0x1d4] str r1, [r0, #0x16c] ldr r1, [r0, #0x1d8] str r1, [r0, #0x170] ldr r1, [r0, #0x1dc] str r1, [r0, #0x174] ldrb r1, [r0, #0x1e0] strb r1, [r0, #0x178] ldrb r1, [r0, #0x1e1] strb r1, [r0, #0x179] ldrb r1, [r0, #0x1e2] strb r1, [r0, #0x17a] ldrb r1, [r0, #0x1e3] strb r1, [r0, #0x17b] ldrb r1, [r0, #0x1e4] strb r1, [r0, #0x17c] ldr r1, [r0, #0x1f4] str r1, [r0, #0x1e8] ldr r1, [r0, #0x1f8] str r1, [r0, #0x1ec] ldr r1, [r0, #0x1fc] str r1, [r0, #0x1f0] ldmia sp!, {r4, r5, pc} _02187b28: ldr r3, _02188068 ; =data_ov38_021891e0 ldr r0, _02188078 ; =data_027e0fc8 ldr r1, [r3, #0x210] add r4, r5, #0x358 add ip, r1, #1 ldr r0, [r0] add r1, r4, #0xc00 mov r2, #0x400 str ip, [r3, #0x210] bl func_ov00_020bb810 ldr r0, _02188078 ; =data_027e0fc8 add r1, r4, #0xc00 ldr r0, [r0] bl func_ov00_020bb8c4 ldr lr, _02188074 ; =data_ov38_02189360 add ip, sp, #0xec mov r4, #6 _02187b6c: ldmia lr!, {r0, r1, r2, r3} stmia ip!, {r0, r1, r2, r3} subs r4, r4, #1 bne _02187b6c ldmia lr, {r0, r1} stmia ip, {r0, r1} ldr r1, [r5, #0x14] ldr r0, _02188068 ; =data_ov38_021891e0 mov r3, #0x8800 str r1, [r0, #0x1f4] ldr r1, [r5, #0x18] sub r2, r3, #0x9800 str r1, [r0, #0x1f8] ldr r4, [r5, #0x1c] ldr r1, _0218807c ; =0x00000bb8 str r4, [r0, #0x1fc] str r3, [r0, #0x19c] str r2, [r0, #0x1a0] str r1, [r0, #0x190] mov r1, #0x7400 str r1, [r0, #0x198] mov r1, #0xfa0 str r1, [r0, #0x18c] ldr r1, [r0, #0x104] mov r3, #0 mul r4, r1, r1 ldr r0, [sp, #0x100] mov r2, #0x1000 mov r1, r0, lsl #0x10 mov r4, r4, asr #0xc add r0, sp, #0x6c str r3, [sp, #0x6c] str r3, [sp, #0x70] str r2, [sp, #0x74] mov r1, r1, asr #0x10 rsb r4, r4, #0x1000 bl func_ov00_020a61ac ldr ip, [r5, #0x50] ldr r3, [r5, #0x48] mov r2, #0 add r0, sp, #0x6c add r1, sp, #0x60 str r3, [sp, #0x60] str r2, [sp, #0x64] str ip, [sp, #0x68] bl func_01ff9c2c add r2, sp, #0x60 add r1, sp, #0x6c mov r3, r2 rsb r0, r0, #0 bl func_01ff9e64 ldr r1, [sp, #0x60] ldr r0, _02188068 ; =data_ov38_021891e0 mul r1, r4, r1 ldr r2, [r0, #0x1f4] add r1, r2, r1, asr #12 str r1, [r0, #0x1f4] ldr r2, [sp, #0x68] ldr r3, [r0, #0x1fc] mul r2, r4, r2 add r2, r3, r2, asr #12 str r2, [r0, #0x1fc] ldr r1, _02188080 ; =data_ov38_021893c8 ldr r2, _02188084 ; =data_ov38_021893d4 str r1, [sp] str r2, [sp, #4] add r1, sp, #0x78 str r1, [sp, #8] ldr r0, [r0, #0x104] ldr r1, _02188088 ; =data_ov38_021892f8 ldr r2, _02188074 ; =data_ov38_02189360 add r3, sp, #0xec bl func_ov38_02185d38 ldr r1, [sp, #0x78] ldr r0, [sp, #0x7c] str r1, [sp, #0x30] ldr r1, [sp, #0x80] str r0, [sp, #0x34] str r1, [sp, #0x38] mov r0, #0 str r0, [sp] str r0, [sp, #4] ldr r0, _02188070 ; =data_027e0f64 add r1, sp, #0x30 ldr r0, [r0] mov r2, #2 ldr r0, [r0, #4] add r3, sp, #0xec bl func_ov00_02089318 add sp, sp, #0x154 ldmia sp!, {r4, r5, pc} _02187cd8: ldr r0, [r5, #0x2c4] add r0, r5, r0, lsl #2 ldr r0, [r0, #0x2b4] cmp r0, #0x17 bne _02187d90 ldr r0, [r5, #0x2c4] add r1, r5, #0x1b4 add r0, r1, r0, lsl #7 add r0, r0, #0xc bl func_0202e58c cmp r0, #0 beq _02187d90 ldr r1, _02188068 ; =data_ov38_021891e0 mov r2, #0 ldr r3, [r1, #0x20c] ldr r0, _02188078 ; =data_027e0fc8 add r3, r3, #1 str r3, [r1, #0x20c] str r2, [r1, #0x104] ldr r0, [r0] bl func_ov00_020bd0a8 ldr r0, _02188068 ; =data_ov38_021891e0 mov r1, #0 str r1, [r0, #0x210] ldr lr, [r5, #0x14] mov r1, #0x8800 str lr, [r0, #0x1e8] ldr ip, [r5, #0x18] sub r2, r1, #0x9800 str ip, [r0, #0x1ec] ldr r4, [r5, #0x1c] add r3, ip, #0x1800 str r4, [r0, #0x1f0] str lr, [r0, #0x1f4] str ip, [r0, #0x1f8] str r4, [r0, #0x1fc] str r3, [r0, #0x1ec] str r1, [r0, #0x19c] ldr r1, _0218807c ; =0x00000bb8 str r2, [r0, #0x1a0] str r1, [r0, #0x190] mov r1, #0x7400 str r1, [r0, #0x198] mov r1, #0xfa0 str r1, [r0, #0x18c] b _02187e98 _02187d90: ldr r0, _02188078 ; =data_027e0fc8 add r1, r5, #0x358 ldr r0, [r0] add r1, r1, #0xc00 mov r2, #0x400 bl func_ov00_020bb810 ldr r1, _02188068 ; =data_ov38_021891e0 ldr r0, _0218806c ; =data_ov38_021892e4 ldr r2, [r1, #0x210] mov r4, #0x14 add r2, r2, #1 str r2, [r1, #0x210] mov r1, #0x1000 mov r2, #0x66 mov r3, #0x29 str r4, [sp] bl func_ov38_0217ca04 ldr ip, _02188074 ; =data_ov38_02189360 add r5, sp, #0x84 mov r4, #6 _02187de0: ldmia ip!, {r0, r1, r2, r3} stmia r5!, {r0, r1, r2, r3} subs r4, r4, #1 bne _02187de0 ldmia ip, {r0, r1} stmia r5, {r0, r1} ldr r2, _02188068 ; =data_ov38_021891e0 mov r3, #0x7800 str r3, [r2, #0x19c] mov r3, #0x2c00 str r3, [r2, #0x1a0] ldr r0, _0218808c ; =0x00001a2c mov r1, #0xe10 str r0, [r2, #0x190] mov r0, #0x5c00 str r0, [r2, #0x198] str r1, [r2, #0x18c] ldr r0, _02188080 ; =data_ov38_021893c8 ldr r1, _02188084 ; =data_ov38_021893d4 str r0, [sp] str r1, [sp, #4] add r0, sp, #0x54 str r0, [sp, #8] ldr r0, [r2, #0x104] ldr r1, _02188088 ; =data_ov38_021892f8 ldr r2, _02188074 ; =data_ov38_02189360 add r3, sp, #0x84 bl func_ov38_02185d38 ldr r2, [sp, #0x54] ldr r1, [sp, #0x58] ldr r0, [sp, #0x5c] str r2, [sp, #0x24] str r1, [sp, #0x28] str r0, [sp, #0x2c] mov r1, #0 str r1, [sp] str r1, [sp, #4] ldr r0, _02188070 ; =data_027e0f64 add r1, sp, #0x24 ldr r0, [r0] add r3, sp, #0x84 ldr r0, [r0, #4] mov r2, #2 bl func_ov00_02089318 add sp, sp, #0x154 ldmia sp!, {r4, r5, pc} _02187e98: add r0, r5, #0x1000 ldr r0, [r0, #0x68] cmp r0, #3 bne _02187ed8 ldr r1, _02188068 ; =data_ov38_021891e0 mov r2, #0 ldr r3, [r1, #0x20c] ldr r0, _02188070 ; =data_027e0f64 add r3, r3, #1 str r3, [r1, #0x20c] str r2, [r1, #0x210] ldr r0, [r0] mov r1, #2 ldr r0, [r0, #4] bl func_ov00_02088000 b _02187f44 _02187ed8: ldr r0, _02188068 ; =data_ov38_021891e0 mov r1, #0x29 str r1, [sp] ldr r1, [r0, #0x1ec] ldr r0, _02188090 ; =data_ov38_021893d8 mov r2, #0x400 mov r3, #0x2d bl func_ov38_0217ca04 ldr r0, _02188068 ; =data_ov38_021891e0 mov r1, #0 ldr r3, [r0, #0x1f4] ldr r2, [r0, #0x1f8] str r3, [sp, #0x18] str r2, [sp, #0x1c] ldr r2, [r0, #0x1fc] ldr r0, _02188070 ; =data_027e0f64 str r2, [sp, #0x20] str r1, [sp] str r1, [sp, #4] ldr r0, [r0] ldr r3, _02188074 ; =data_ov38_02189360 ldr r0, [r0, #4] add r1, sp, #0x18 mov r2, #2 bl func_ov00_02089318 add sp, sp, #0x154 ldmia sp!, {r4, r5, pc} _02187f44: add r0, r5, #0x1000 ldr r0, [r0, #0x68] cmp r0, #4 bne _02187fac ldr r0, _02188094 ; =data_027e0f74 ldr r1, [r5, #0x2e8] ldr r0, [r0] bl func_ov00_02097bcc mvn r1, #0 ldr r0, _02188098 ; =data_02057200 str r1, [r5, #0x2e8] ldr r2, [r0] ldr r1, [r0, #4] ldr r0, _02188094 ; =data_027e0f74 str r2, [r5, #0x2e0] str r1, [r5, #0x2e4] ldr r0, [r0] mov r1, #0xf7 mov r2, #1 bl func_ov00_0209779c ldr r0, _02188094 ; =data_027e0f74 mov r1, #0x11 ldr r0, [r0] bl func_ov00_02097968 add sp, sp, #0x154 ldmia sp!, {r4, r5, pc} _02187fac: ldr r2, _02188068 ; =data_ov38_021891e0 mov r4, #0 ldr r1, [r2, #0x210] ldr r0, _02188070 ; =data_027e0f64 add r1, r1, #1 str r1, [r2, #0x210] ldr r3, [r2, #0x1f4] add r1, sp, #0xc str r3, [sp, #0xc] ldr ip, [r2, #0x1f8] ldr r3, _02188074 ; =data_ov38_02189360 str ip, [sp, #0x10] ldr ip, [r2, #0x1fc] mov r2, #2 str ip, [sp, #0x14] str r4, [sp] str r4, [sp, #4] ldr r0, [r0] ldr r0, [r0, #4] bl func_ov00_02089318 ldr r0, _02188068 ; =data_ov38_021891e0 ldr r0, [r0, #0x210] cmp r0, #0x2d addne sp, sp, #0x154 ldmneia sp!, {r4, r5, pc} add r0, r5, #0x1000 ldr r1, [r0, #0x48] cmp r1, #0x7000 addle sp, sp, #0x154 ldmleia sp!, {r4, r5, pc} ldr r1, _0218809c ; =data_027e0f94 ldr r2, _021880a0 ; =0x00006ccd ldr r1, [r1, #4] mov r3, r4 str r3, [sp, #0x48] str r2, [sp, #0x50] str r1, [sp, #0x4c] ldrsh r1, [r0, #0x94] add r0, sp, #0x48 bl func_ov00_020a61ac ldr r0, _02188078 ; =data_027e0fc8 add r1, sp, #0x48 ldr r0, [r0] mov r2, #0x800 bl func_ov00_020bcf50 add sp, sp, #0x154 ldmia sp!, {r4, r5, pc} .align 2, 0 arm_func_end func_ov38_02187964 _02188068: .word data_ov38_021891e0 _0218806c: .word data_ov38_021892e4 _02188070: .word data_027e0f64 _02188074: .word data_ov38_02189360 _02188078: .word data_027e0fc8 _0218807c: .word 0x00000bb8 _02188080: .word data_ov38_021893c8 _02188084: .word data_ov38_021893d4 _02188088: .word data_ov38_021892f8 _0218808c: .word 0x00001a2c _02188090: .word data_ov38_021893d8 _02188094: .word data_027e0f74 _02188098: .word data_02057200 _0218809c: .word data_027e0f94 _021880a0: .word 0x00006ccd .global func_ov38_021880a4 arm_func_start func_ov38_021880a4 func_ov38_021880a4: ; 0x021880a4 stmdb sp!, {r4, lr} ldr r3, _021880d4 ; =data_027e0c68 mvn ip, #0 ldr r4, [r3, #0x18] strb r2, [r4, #0x39] strb ip, [r4, #0x38] bl func_ov38_0217bf40 mov r2, r0 ldr r0, _021880d4 ; =data_027e0c68 mov r1, r4 bl func_02036ce4 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov38_021880a4 _021880d4: .word data_027e0c68 .global func_ov38_021880d8 arm_func_start func_ov38_021880d8 func_ov38_021880d8: ; 0x021880d8 stmdb sp!, {r3, r4, r5, lr} sub sp, sp, #8 ldr r2, _02188188 ; =data_ov38_02189438 mov r3, #0x78 strh r3, [r2, #0x24] mov r3, #0 mov r4, r0 strh r3, [r2, #0x20] str r1, [r2, #0x28] ldr r0, _0218818c ; =data_027e0fe4 ldr r2, _02188190 ; =0x4e564d4d ldr r1, [r0] add r0, sp, #0 bl func_ov00_020c3894 ldr r0, _0218818c ; =data_027e0fe4 add r1, sp, #0 ldr r0, [r0] bl func_ov00_020c3674 ldr r3, _02188188 ; =data_ov38_02189438 ldr r1, _02188194 ; =0xfffff99a str r0, [r3] ldr r2, [r4, #0x48] mov ip, #0 str r2, [r3, #4] ldr r5, [r4, #0x4c] ldr r2, _02188198 ; =data_ov38_021890f8 str r5, [r3, #8] ldr r5, [r4, #0x50] str r5, [r3, #0xc] ldr r5, [r0, #0x48] str r5, [r3, #0x10] ldr r5, [r0, #0x4c] str r5, [r3, #0x14] ldr lr, [r0, #0x50] add r0, r5, r1 str lr, [r3, #0x18] str r0, [r3, #0x14] strh ip, [r3, #0x22] ldr r1, [r2, #0x20] ldr r0, [r2, #0x24] str r1, [r4, #0x3b8] str r0, [r4, #0x3bc] add sp, sp, #8 ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov38_021880d8 _02188188: .word data_ov38_02189438 _0218818c: .word data_027e0fe4 _02188190: .word 0x4e564d4d _02188194: .word 0xfffff99a _02188198: .word data_ov38_021890f8 .global func_ov38_0218819c arm_func_start func_ov38_0218819c func_ov38_0218819c: ; 0x0218819c stmdb sp!, {r3, r4, r5, lr} sub sp, sp, #0x18 ldr ip, _021884b8 ; =data_ov38_02189438 mov r4, r0 ldrsh r0, [ip, #0x20] cmp r0, #4 addls pc, pc, r0, lsl #2 b _0218849c _021881bc: ; jump table b _021881d0 ; case 0 b _02188278 ; case 1 b _02188318 ; case 2 b _02188394 ; case 3 b _021883dc ; case 4 _021881d0: ldrsh r1, [ip, #0x22] ldr r5, _021884bc ; =data_02050f54 ldr r0, _021884c0 ; =data_ov38_0218943c add r1, r1, #0x1000 strh r1, [ip, #0x22] ldr r2, [ip, #0x10] add r1, sp, #0xc str r2, [sp, #0xc] ldr r3, [ip, #0x14] mov r2, #0x400 str r3, [sp, #0x10] ldr lr, [ip, #0x18] str lr, [sp, #0x14] ldrh ip, [ip, #0x22] mov ip, ip, asr #0x4 mov ip, ip, lsl #0x2 ldrsh r5, [r5, ip] add r5, r5, #0x1000 mov r5, r5, asr #0x1 mov r5, r5, lsl #0xc add r5, r5, #0x800 add r3, r3, r5, asr #12 str r3, [sp, #0x10] bl func_0202b2e8 cmp r0, #0 beq _02188264 ldr r3, _021884b8 ; =data_ov38_02189438 mov r2, #0 strh r2, [r3, #0x22] ldrsh r4, [r3, #0x20] mov r0, #8 mov r1, #0xb add r4, r4, #1 strh r4, [r3, #0x20] strh r2, [r3, #0x24] bl func_ov38_021880a4 b _02188278 _02188264: ldr r1, _021884c0 ; =data_ov38_0218943c mov r0, r4 bl func_ov00_020ba364 add sp, sp, #0x18 ldmia sp!, {r3, r4, r5, pc} _02188278: ldr r0, _021884c4 ; =data_027e0c68 mov r1, #0 bl func_02036770 cmp r0, #0 addeq sp, sp, #0x18 ldmeqia sp!, {r3, r4, r5, pc} ldr r1, _021884b8 ; =data_ov38_02189438 ldrsh r0, [r1, #0x24] add r0, r0, #1 strh r0, [r1, #0x24] ldrsh r0, [r1, #0x24] cmp r0, #0x1e addle sp, sp, #0x18 ldmleia sp!, {r3, r4, r5, pc} ldrsh r3, [r1, #0x20] mov r2, #0 ldr r0, _021884c8 ; =data_ov38_02189484 add r3, r3, #1 strh r3, [r1, #0x20] strh r2, [r1, #0x24] ldr r0, [r0] cmp r0, #0 beq _021882d8 bl func_ov38_0218864c _021882d8: mov r0, #8 mov r1, #0x20 mov r2, #0 bl func_ov38_021880a4 ldr r1, _021884b8 ; =data_ov38_02189438 add sp, sp, #0x18 ldr r0, [r1, #4] str r0, [r1, #0x10] ldr r0, [r1, #8] str r0, [r1, #0x14] ldr r2, [r1, #0xc] add r0, r0, #0x33 str r2, [r1, #0x18] add r0, r0, #0x300 str r0, [r1, #0x14] ldmia sp!, {r3, r4, r5, pc} _02188318: ldr r0, _021884c4 ; =data_027e0c68 mov r1, #0 bl func_02036770 cmp r0, #0 beq _02188370 ldr r3, _021884b8 ; =data_ov38_02189438 ldrsh r0, [r3, #0x24] add r0, r0, #1 strh r0, [r3, #0x24] ldrsh r0, [r3, #0x24] cmp r0, #0x1e ble _02188370 ldrsh r1, [r3, #0x20] mov r2, #0 mov r0, #8 add r1, r1, #1 strh r1, [r3, #0x20] mov r1, #0x21 strh r2, [r3, #0x24] bl func_ov38_021880a4 add sp, sp, #0x18 ldmia sp!, {r3, r4, r5, pc} _02188370: ldr r0, _021884c0 ; =data_ov38_0218943c ldr r1, _021884cc ; =data_ov38_02189448 mov r2, #0xcd bl func_0202b2e8 ldr r1, _021884c0 ; =data_ov38_0218943c mov r0, r4 bl func_ov00_020ba364 add sp, sp, #0x18 ldmia sp!, {r3, r4, r5, pc} _02188394: ldr r0, _021884c4 ; =data_027e0c68 mov r1, #0 bl func_02036770 cmp r0, #0 addeq sp, sp, #0x18 ldmeqia sp!, {r3, r4, r5, pc} ldr r0, _021884b8 ; =data_ov38_02189438 mov r1, #0 ldrsh r2, [r0, #0x20] add sp, sp, #0x18 add r2, r2, #1 strh r2, [r0, #0x20] strh r1, [r0, #0x24] ldr r1, [r0, #0x28] ldr r0, [r1] add r0, r0, #1 str r0, [r1] ldmia sp!, {r3, r4, r5, pc} _021883dc: ldr r0, _021884d0 ; =data_027e0f94 ldr r3, _021884bc ; =data_02050f54 ldr r5, [r0] ldr r1, [r0, #4] str r5, [sp] str r1, [sp, #4] ldr lr, [r0, #8] add r0, r1, #0xcd add r2, r0, #0xc00 sub r0, lr, #0x800 sub r1, r5, #0x800 str r2, [sp, #4] str r0, [sp, #8] str r1, [sp] ldrsh r1, [ip, #0x22] ldr r2, _021884d4 ; =0x0000019a ldr r0, _021884c0 ; =data_ov38_0218943c add r1, r1, #0x1000 strh r1, [ip, #0x22] ldrh ip, [ip, #0x22] add r1, sp, #0 mov ip, ip, asr #0x4 mov ip, ip, lsl #0x2 ldrsh r3, [r3, ip] add r3, r3, #0x1000 mov r3, r3, asr #0x1 mul r2, r3, r2 add r2, r2, #0x800 mov r2, r2, asr #0xc add r2, r2, #0x9a add r2, r2, #0x100 bl func_0202b2e8 cmp r0, #0 beq _02188488 ldr r0, _021884b8 ; =data_ov38_02189438 ldrsh r1, [r0, #0x20] add r1, r1, #1 strh r1, [r0, #0x20] ldr r1, [r0, #0x28] ldr r0, [r1] add r0, r0, #1 str r0, [r1] b _0218849c _02188488: ldr r1, _021884c0 ; =data_ov38_0218943c mov r0, r4 bl func_ov00_020ba364 add sp, sp, #0x18 ldmia sp!, {r3, r4, r5, pc} _0218849c: ldr r0, _021884d8 ; =data_02057200 ldr r1, [r0] ldr r0, [r0, #4] str r1, [r4, #0x3b8] str r0, [r4, #0x3bc] add sp, sp, #0x18 ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov38_0218819c _021884b8: .word data_ov38_02189438 _021884bc: .word data_02050f54 _021884c0: .word data_ov38_0218943c _021884c4: .word data_027e0c68 _021884c8: .word data_ov38_02189484 _021884cc: .word data_ov38_02189448 _021884d0: .word data_027e0f94 _021884d4: .word 0x0000019a _021884d8: .word data_02057200 .global func_ov38_021884dc arm_func_start func_ov38_021884dc func_ov38_021884dc: ; 0x021884dc stmdb sp!, {r3, lr} ldr r1, _02188508 ; =data_027e0fe0 mov r0, #0x170 ldr r1, [r1] mov r2, #4 ldr r1, [r1] bl func_0202e9dc cmp r0, #0 ldmeqia sp!, {r3, pc} bl func_ov38_0218850c ldmia sp!, {r3, pc} .align 2, 0 arm_func_end func_ov38_021884dc _02188508: .word data_027e0fe0 .global func_ov38_0218850c arm_func_start func_ov38_0218850c func_ov38_0218850c: ; 0x0218850c stmdb sp!, {r3, r4, lr} sub sp, sp, #4 mov r4, r0 bl func_ov00_020c1554 ldr r0, _02188554 ; =data_ov38_02189128 mov r1, #4 ldr ip, _02188558 ; =func_ov00_020b7d74 str r0, [r4] ldr r3, _0218855c ; =func_ov38_0217c988 mov r2, r1 add r0, r4, #0x160 str ip, [sp] bl func_0204f614 ldr r1, _02188560 ; =data_ov38_02189464 mov r0, r4 str r4, [r1, #0x20] add sp, sp, #4 ldmia sp!, {r3, r4, pc} .align 2, 0 arm_func_end func_ov38_0218850c _02188554: .word data_ov38_02189128 _02188558: .word func_ov00_020b7d74 _0218855c: .word func_ov38_0217c988 _02188560: .word data_ov38_02189464 .global func_ov38_02188564 arm_func_start func_ov38_02188564 func_ov38_02188564: ; 0x02188564 stmdb sp!, {r4, lr} mov r4, r0 mov r1, #4 ldr ip, _0218859c ; =data_ov38_02189464 mov lr, #0 ldr r3, _021885a0 ; =func_ov00_020b7d74 mov r2, r1 add r0, r4, #0x160 str lr, [ip, #0x20] bl func_0204f754 mov r0, r4 bl func_ov00_020c1730 mov r0, r4 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov38_02188564 _0218859c: .word data_ov38_02189464 _021885a0: .word func_ov00_020b7d74 .global func_ov38_021885a4 arm_func_start func_ov38_021885a4 func_ov38_021885a4: ; 0x021885a4 stmdb sp!, {r4, lr} mov r4, r0 mov r1, #4 ldr ip, _021885e4 ; =data_ov38_02189464 mov lr, #0 ldr r3, _021885e8 ; =func_ov00_020b7d74 mov r2, r1 add r0, r4, #0x160 str lr, [ip, #0x20] bl func_0204f754 mov r0, r4 bl func_ov00_020c1730 mov r0, r4 bl func_0202ea0c mov r0, r4 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov38_021885a4 _021885e4: .word data_ov38_02189464 _021885e8: .word func_ov00_020b7d74 .global func_ov38_021885ec arm_func_start func_ov38_021885ec func_ov38_021885ec: ; 0x021885ec stmdb sp!, {r3} sub sp, sp, #0xc ldr r1, _02188648 ; =data_ov38_02188ad8 add r3, sp, #0 mov ip, r0 ldmia r1, {r0, r1, r2} stmia r3, {r0, r1, r2} ldr r0, [sp] mov r1, #0x800 str r0, [ip, #0x7c] ldr r2, [sp, #4] mov r0, #1 str r2, [ip, #0x80] ldr r2, [sp, #8] str r2, [ip, #0x84] str r1, [ip, #0x88] ldr r1, [ip, #0x4c] sub r1, r1, #0x3000 str r1, [ip, #0x4c] str r1, [ip, #0x58] add sp, sp, #0xc ldmia sp!, {r3} bx lr .align 2, 0 arm_func_end func_ov38_021885ec _02188648: .word data_ov38_02188ad8 .global func_ov38_0218864c arm_func_start func_ov38_0218864c func_ov38_0218864c: ; 0x0218864c stmdb sp!, {r3, r4, r5, r6, r7, lr} sub sp, sp, #8 mov r2, #0 str r2, [sp] ldr r1, _02188738 ; =data_027e0e58 str r2, [sp, #4] mov r4, r0 ldr r0, [r1] ldr r1, _0218873c ; =0x0000102c add r2, r4, #0x48 mov r3, #2 bl func_ov00_0207c1b0 mov r1, #0 str r1, [sp] str r1, [sp, #4] ldr r0, _02188738 ; =data_027e0e58 ldr r1, _02188740 ; =0x0000102d ldr r0, [r0] add r2, r4, #0x48 mov r3, #2 bl func_ov00_0207c1b0 mov r1, #0 str r1, [sp] str r1, [sp, #4] ldr r0, _02188738 ; =data_027e0e58 ldr r1, _02188744 ; =0x0000102e ldr r0, [r0] add r2, r4, #0x48 mov r3, #2 bl func_ov00_0207c1b0 mov r0, #0 str r0, [sp] str r0, [sp, #4] ldr r0, _02188738 ; =data_027e0e58 ldr r1, _02188748 ; =0x0000102f ldr r0, [r0] add r2, r4, #0x48 mov r3, #2 bl func_ov00_0207c1b0 ldr r0, _02188738 ; =data_027e0e58 mov r6, #0 ldr r5, [r0] add r7, r4, #0x160 _021886f8: mov r0, r5 mov r1, r7 bl func_ov00_0207c444 add r6, r6, #1 cmp r6, #4 add r7, r7, #4 blo _021886f8 ldr r0, _0218874c ; =data_027e0ffc ldr r1, _02188750 ; =0x0000044b add r2, r4, #0x48 mov r3, #0 bl func_ov00_020ceacc mov r0, #0 strb r0, [r4, #0x118] add sp, sp, #8 ldmia sp!, {r3, r4, r5, r6, r7, pc} .align 2, 0 arm_func_end func_ov38_0218864c _02188738: .word data_027e0e58 _0218873c: .word 0x0000102c _02188740: .word 0x0000102d _02188744: .word 0x0000102e _02188748: .word 0x0000102f _0218874c: .word data_027e0ffc _02188750: .word 0x0000044b .global func_ov38_02188754 arm_func_start func_ov38_02188754 func_ov38_02188754: ; 0x02188754 stmdb sp!, {r4, lr} sub sp, sp, #0x10 mov r4, r0 ldr r0, [r4, #0x48] str r0, [r4, #0x54] ldr r0, [r4, #0x4c] str r0, [r4, #0x58] ldr r0, [r4, #0x50] str r0, [r4, #0x5c] ldr r1, [r4, #0x18] ldr r0, [r4, #0x4c] subs r0, r1, r0 rsbmi r0, r0, #0 mov r0, r0, lsl #0xa add r0, r0, #0x800 mov r2, r0, asr #0xc cmp r2, #0x400 movgt r2, #0x400 bgt _021887a8 cmp r2, #0x29 movlt r2, #0x29 _021887a8: add r0, r4, #0x48 add r1, r4, #0x14 bl func_0202b2e8 ldr r0, [r4, #0x160] cmp r0, #0 bne _021887fc ldr r3, _02188890 ; =0x0000102a add r0, r4, #0x48 str r3, [sp] add r1, r3, #1 str r1, [sp, #4] str r0, [sp, #8] mov r1, #2 ldr r0, _02188894 ; =data_027e0e58 str r1, [sp, #0xc] ldr r0, [r0] add r1, r4, #0x160 sub r2, r3, #2 sub r3, r3, #1 bl func_ov00_0207c358 b _0218886c _021887fc: add r2, r4, #0x160 add r1, r4, #0x170 cmp r2, r1 beq _0218886c _0218880c: ldr r0, [r2] cmp r0, #0 beq _02188860 ldr r3, [r0, #0x20] ldr ip, [r4, #0x48] ldr r3, [r3] ldr r3, [r3, #4] add r3, ip, r3 str r3, [r0, #0x28] ldr r3, [r0, #0x20] ldr ip, [r4, #0x4c] ldr r3, [r3] ldr r3, [r3, #8] add r3, ip, r3 str r3, [r0, #0x2c] ldr r3, [r0, #0x20] ldr ip, [r4, #0x50] ldr r3, [r3] ldr r3, [r3, #0xc] add r3, ip, r3 str r3, [r0, #0x30] _02188860: add r2, r2, #4 cmp r2, r1 bne _0218880c _0218886c: mov r0, #0 str r0, [sp] ldr r3, [r4, #8] ldr r0, _02188898 ; =data_027e0ffc ldr r1, _0218889c ; =0x0000044a add r2, r4, #0x48 bl func_ov00_020cec60 add sp, sp, #0x10 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov38_02188754 _02188890: .word 0x0000102a _02188894: .word data_027e0e58 _02188898: .word data_027e0ffc _0218889c: .word 0x0000044a .global func_ov38_021888a0 arm_func_start func_ov38_021888a0 func_ov38_021888a0: ; 0x021888a0 stmdb sp!, {r3, r4, r5, lr} mov r5, r0 mov r4, r1 bl func_ov00_020c313c cmp r0, #0 beq _021888c0 mov r0, r5 bl func_ov38_02188754 _021888c0: mov r1, r4 add r0, r5, #0xa4 add r2, r5, #0x48 bl func_ov00_0207a1c8 ldmia sp!, {r3, r4, r5, pc} arm_func_end func_ov38_021888a0 .global func_ov38_021888d4 arm_func_start func_ov38_021888d4 func_ov38_021888d4: ; 0x021888d4 stmdb sp!, {r3, r4, r5, lr} mov r5, r0 mov r4, r1 bl func_ov00_020c313c cmp r0, #0 beq _021888f4 mov r0, r5 bl func_ov38_02188754 _021888f4: mov r1, r4 add r0, r5, #0xa4 add r2, r5, #0x48 bl func_ov00_0207a1c8 ldmia sp!, {r3, r4, r5, pc} arm_func_end func_ov38_021888d4 .rodata .global data_ov38_02188908 data_ov38_02188908: ; 0x02188908 .byte 0x00, 0x00, 0xb0, 0x05 .global data_ov38_0218890c data_ov38_0218890c: ; 0x0218890c .byte 0x00, 0x78, 0x00, 0x00 .global data_ov38_02188910 data_ov38_02188910: ; 0x02188910 .byte 0x00, 0xa8, 0x00, 0x00 .global data_ov38_02188914 data_ov38_02188914: ; 0x02188914 .byte 0x00, 0xf0, 0xff, 0xff .global data_ov38_02188918 data_ov38_02188918: ; 0x02188918 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_0218891c data_ov38_0218891c: ; 0x0218891c .byte 0x00, 0x78, 0x00, 0x00 .global data_ov38_02188920 data_ov38_02188920: ; 0x02188920 .byte 0x00, 0xa8, 0x00, 0x00 .global data_ov38_02188924 data_ov38_02188924: ; 0x02188924 .byte 0x00, 0x10, 0x00, 0x00 .global data_ov38_02188928 data_ov38_02188928: ; 0x02188928 .byte 0x00, 0x00, 0x50, 0xfa .global data_ov38_0218892c data_ov38_0218892c: ; 0x0218892c .byte 0x00, 0x78, 0x00, 0x00 .global data_ov38_02188930 data_ov38_02188930: ; 0x02188930 .byte 0x00, 0xa8, 0x00, 0x00 .global data_ov38_02188934 data_ov38_02188934: ; 0x02188934 .byte 0x00, 0xf0, 0xff, 0xff .global data_ov38_02188938 data_ov38_02188938: ; 0x02188938 .byte 0x02, 0x00, 0x00, 0x00 .global data_ov38_0218893c data_ov38_0218893c: ; 0x0218893c .byte 0x00, 0x78, 0x00, 0x00 .global data_ov38_02188940 data_ov38_02188940: ; 0x02188940 .byte 0x00, 0xa8, 0x00, 0x00 .global data_ov38_02188944 data_ov38_02188944: ; 0x02188944 .byte 0x00, 0xf0, 0xff, 0xff .global data_ov38_02188948 data_ov38_02188948: ; 0x02188948 .byte 0x02, 0x00, 0x00, 0x00 .global data_ov38_0218894c data_ov38_0218894c: ; 0x0218894c .byte 0x00, 0x78, 0x00, 0x00 .global data_ov38_02188950 data_ov38_02188950: ; 0x02188950 .byte 0x00, 0xa8, 0x00, 0x00 .global data_ov38_02188954 data_ov38_02188954: ; 0x02188954 .byte 0x00, 0x10, 0x00, 0x00 .global data_ov38_02188958 data_ov38_02188958: ; 0x02188958 .byte 0x02, 0x00, 0x00, 0x00 .global data_ov38_0218895c data_ov38_0218895c: ; 0x0218895c .byte 0x00, 0x78, 0x00, 0x00 .global data_ov38_02188960 data_ov38_02188960: ; 0x02188960 .byte 0x00, 0xa8, 0x00, 0x00 .global data_ov38_02188964 data_ov38_02188964: ; 0x02188964 .byte 0x00, 0xf0, 0xff, 0xff .global data_ov38_02188968 data_ov38_02188968: ; 0x02188968 .byte 0x13, 0x00, 0x00, 0x00 .global data_ov38_0218896c data_ov38_0218896c: ; 0x0218896c .ascii "RJRJ" .global data_ov38_02188970 data_ov38_02188970: ; 0x02188970 .byte 0x00, 0x00, 0x80, 0x01 .global data_ov38_02188974 data_ov38_02188974: ; 0x02188974 .byte 0x00, 0x00, 0x4c, 0x01 .global data_ov38_02188978 data_ov38_02188978: ; 0x02188978 .byte 0x40, 0xff, 0x00, 0x00 .global data_ov38_0218897c data_ov38_0218897c: ; 0x0218897c .byte 0xb3, 0xfe, 0x40, 0xff .global data_ov38_02188980 data_ov38_02188980: ; 0x02188980 .byte 0x00, 0x00 .global data_ov38_02188982 data_ov38_02188982: ; 0x02188982 .byte 0x00, 0x00 .global data_ov38_02188984 data_ov38_02188984: ; 0x02188984 .byte 0xc0, 0x00 .global data_ov38_02188986 data_ov38_02188986: ; 0x02188986 .byte 0x00, 0x00 .global data_ov38_02188988 data_ov38_02188988: ; 0x02188988 .byte 0xa6, 0x00 .global data_ov38_0218898a data_ov38_0218898a: ; 0x0218898a .byte 0xa0, 0xff .global data_ov38_0218898c data_ov38_0218898c: ; 0x0218898c .byte 0x00, 0x00 .global data_ov38_0218898e data_ov38_0218898e: ; 0x0218898e .byte 0x59, 0xff .global data_ov38_02188990 data_ov38_02188990: ; 0x02188990 .byte 0xa0, 0xff .global data_ov38_02188992 data_ov38_02188992: ; 0x02188992 .byte 0x00, 0x00 .global data_ov38_02188994 data_ov38_02188994: ; 0x02188994 .byte 0x00, 0x00 .global data_ov38_02188996 data_ov38_02188996: ; 0x02188996 .byte 0x40, 0x00 .global data_ov38_02188998 data_ov38_02188998: ; 0x02188998 .byte 0x00, 0x00 .global data_ov38_0218899a data_ov38_0218899a: ; 0x0218899a .byte 0x37, 0x00 .global data_ov38_0218899c data_ov38_0218899c: ; 0x0218899c .byte 0xe0, 0xff .global data_ov38_0218899e data_ov38_0218899e: ; 0x0218899e .byte 0x00, 0x00 .global data_ov38_021889a0 data_ov38_021889a0: ; 0x021889a0 .byte 0xc8, 0xff .global data_ov38_021889a2 data_ov38_021889a2: ; 0x021889a2 .byte 0xe0, 0xff .global data_ov38_021889a4 data_ov38_021889a4: ; 0x021889a4 .byte 0x00, 0x00 .global data_ov38_021889a6 data_ov38_021889a6: ; 0x021889a6 .byte 0x00, 0x00 .global data_ov38_021889a8 data_ov38_021889a8: ; 0x021889a8 .byte 0x80, 0x0f .global data_ov38_021889aa data_ov38_021889aa: ; 0x021889aa .byte 0x00, 0x00 .global data_ov38_021889ac data_ov38_021889ac: ; 0x021889ac .byte 0x6c, 0x0d .global data_ov38_021889ae data_ov38_021889ae: ; 0x021889ae .byte 0x40, 0xf8 .global data_ov38_021889b0 data_ov38_021889b0: ; 0x021889b0 .byte 0x00, 0x00 .global data_ov38_021889b2 data_ov38_021889b2: ; 0x021889b2 .byte 0x93, 0xf2 .global data_ov38_021889b4 data_ov38_021889b4: ; 0x021889b4 .byte 0x40, 0xf8 .global data_ov38_021889b6 data_ov38_021889b6: ; 0x021889b6 .byte 0x00, 0x00 .global data_ov38_021889b8 data_ov38_021889b8: ; 0x021889b8 .byte 0x00, 0x00 .global data_ov38_021889ba data_ov38_021889ba: ; 0x021889ba .byte 0x00, 0x00 .global data_ov38_021889bc data_ov38_021889bc: ; 0x021889bc .byte 0x00, 0x08 .global data_ov38_021889be data_ov38_021889be: ; 0x021889be .byte 0x00, 0x00 .global data_ov38_021889c0 data_ov38_021889c0: ; 0x021889c0 .byte 0x00, 0x00 .global data_ov38_021889c2 data_ov38_021889c2: ; 0x021889c2 .byte 0x00, 0x00 .global data_ov38_021889c4 data_ov38_021889c4: ; 0x021889c4 .byte 0xab, 0xea .global data_ov38_021889c6 data_ov38_021889c6: ; 0x021889c6 .byte 0x00, 0x00 .global data_ov38_021889c8 data_ov38_021889c8: ; 0x021889c8 .byte 0x55, 0x15 .global data_ov38_021889ca data_ov38_021889ca: ; 0x021889ca .byte 0x00, 0x00 .global data_ov38_021889cc data_ov38_021889cc: ; 0x021889cc .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_021889d0 data_ov38_021889d0: ; 0x021889d0 .byte 0x1f, 0x05, 0x00, 0x00 .global data_ov38_021889d4 data_ov38_021889d4: ; 0x021889d4 .byte 0x71, 0x05, 0x00, 0x00 .global data_ov38_021889d8 data_ov38_021889d8: ; 0x021889d8 .byte 0x8f, 0x0a, 0x00, 0x00 .global data_ov38_021889dc data_ov38_021889dc: ; 0x021889dc .byte 0xe1, 0x0a, 0x00, 0x00 .global data_ov38_021889e0 data_ov38_021889e0: ; 0x021889e0 .byte 0x00, 0x10, 0x00, 0x00 .global data_ov38_021889e4 data_ov38_021889e4: ; 0x021889e4 .byte 0x82, 0x00, 0x00, 0x00 .global data_ov38_021889e8 data_ov38_021889e8: ; 0x021889e8 .byte 0x2d, 0x00, 0x00, 0x00 .global data_ov38_021889ec data_ov38_021889ec: ; 0x021889ec .byte 0x14, 0x00, 0x00, 0x00 .global data_ov38_021889f0 data_ov38_021889f0: ; 0x021889f0 .byte 0x00, 0x0c, 0x00, 0x00 .global data_ov38_021889f4 data_ov38_021889f4: ; 0x021889f4 .byte 0x00, 0x08, 0x00, 0x00 .global data_ov38_021889f8 data_ov38_021889f8: ; 0x021889f8 .byte 0xec, 0xff, 0xff, 0xff .global data_ov38_021889fc data_ov38_021889fc: ; 0x021889fc .byte 0x00, 0xf8, 0xff, 0xff .global data_ov38_02188a00 data_ov38_02188a00: ; 0x02188a00 .byte 0x00, 0xe4, 0xff, 0xff .global data_ov38_02188a04 data_ov38_02188a04: ; 0x02188a04 .byte 0x00, 0xb8, 0x00, 0x00 .global data_ov38_02188a08 data_ov38_02188a08: ; 0x02188a08 .byte 0x00, 0x70, 0x00, 0x00 .global data_ov38_02188a0c data_ov38_02188a0c: ; 0x02188a0c .byte 0x00, 0xb8, 0x00, 0x00 .global data_ov38_02188a10 data_ov38_02188a10: ; 0x02188a10 .byte 0x00, 0x50, 0x00, 0x00 .global data_ov38_02188a14 data_ov38_02188a14: ; 0x02188a14 .byte 0x00, 0xb8, 0x00, 0x00 .global data_ov38_02188a18 data_ov38_02188a18: ; 0x02188a18 .byte 0x00, 0x50, 0x00, 0x00 .global data_ov38_02188a1c data_ov38_02188a1c: ; 0x02188a1c .byte 0x00, 0x28, 0x00, 0x00 .global data_ov38_02188a20 data_ov38_02188a20: ; 0x02188a20 .byte 0x00, 0x14, 0x00, 0x00 .global data_ov38_02188a24 data_ov38_02188a24: ; 0x02188a24 .ascii "frontLeg1" .byte 0x00, 0x00, 0x00 .global data_ov38_02188a30 data_ov38_02188a30: ; 0x02188a30 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188a34 data_ov38_02188a34: ; 0x02188a34 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188a38 data_ov38_02188a38: ; 0x02188a38 .ascii "frontLeg2" .byte 0x00, 0x00, 0x00 .global data_ov38_02188a44 data_ov38_02188a44: ; 0x02188a44 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188a48 data_ov38_02188a48: ; 0x02188a48 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188a4c data_ov38_02188a4c: ; 0x02188a4c .ascii "frontLeg3" .byte 0x00, 0x00, 0x00 .global data_ov38_02188a58 data_ov38_02188a58: ; 0x02188a58 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188a5c data_ov38_02188a5c: ; 0x02188a5c .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188a60 data_ov38_02188a60: ; 0x02188a60 .ascii "backLeg1" .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188a6c data_ov38_02188a6c: ; 0x02188a6c .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188a70 data_ov38_02188a70: ; 0x02188a70 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188a74 data_ov38_02188a74: ; 0x02188a74 .ascii "backLeg2" .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188a80 data_ov38_02188a80: ; 0x02188a80 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188a84 data_ov38_02188a84: ; 0x02188a84 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188a88 data_ov38_02188a88: ; 0x02188a88 .ascii "eye" .byte 0x00 .global data_ov38_02188a8c data_ov38_02188a8c: ; 0x02188a8c .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188a90 data_ov38_02188a90: ; 0x02188a90 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188a94 data_ov38_02188a94: ; 0x02188a94 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188a98 data_ov38_02188a98: ; 0x02188a98 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188a9c data_ov38_02188a9c: ; 0x02188a9c .ascii "base2" .byte 0x00, 0x00, 0x00 .global data_ov38_02188aa4 data_ov38_02188aa4: ; 0x02188aa4 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188aa8 data_ov38_02188aa8: ; 0x02188aa8 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188aac data_ov38_02188aac: ; 0x02188aac .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188ab0 data_ov38_02188ab0: ; 0x02188ab0 .ascii "Lmouth" .byte 0x00, 0x00 .global data_ov38_02188ab8 data_ov38_02188ab8: ; 0x02188ab8 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188abc data_ov38_02188abc: ; 0x02188abc .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188ac0 data_ov38_02188ac0: ; 0x02188ac0 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188ac4 data_ov38_02188ac4: ; 0x02188ac4 .ascii "Rmouth" .byte 0x00, 0x00 .global data_ov38_02188acc data_ov38_02188acc: ; 0x02188acc .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188ad0 data_ov38_02188ad0: ; 0x02188ad0 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188ad4 data_ov38_02188ad4: ; 0x02188ad4 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188ad8 data_ov38_02188ad8: ; 0x02188ad8 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188adc data_ov38_02188adc: ; 0x02188adc .byte 0x00, 0x08, 0x00, 0x00 .global data_ov38_02188ae0 data_ov38_02188ae0: ; 0x02188ae0 .byte 0x00, 0x00, 0x00, 0x00 .section .init, 4, 1, 4 .global func_ov38_02188ae4 arm_func_start func_ov38_02188ae4 func_ov38_02188ae4: ; 0x02188ae4 stmdb sp!, {r3, lr} sub sp, sp, #8 ldr r0, _02188bdc ; =data_ov38_021891ec ldr r1, _02188be0 ; =0x47444f46 ldr r2, _02188be4 ; =func_ov38_0217bd80 mov r3, #0 bl func_0203e784 ldr r0, _02188bdc ; =data_ov38_021891ec ldr r1, _02188be8 ; =func_0203e7b4 ldr r2, _02188bec ; =data_ov38_021891e0 bl func_0204f8d4 ldr r1, _02188bf0 ; =data_02057200 ldr r0, _02188bf4 ; =data_ov38_02188ca0 ldr r2, [r1] ldr r1, [r1, #4] str r2, [sp] str r2, [r0, #0x90] str r1, [r0, #0x94] str r2, [r0, #0xd8] str r1, [r0, #0xdc] str r2, [r0, #0x120] str r1, [r0, #0x124] str r2, [r0, #0x138] str r1, [r0, #0x13c] str r2, [r0, #0x150] str r1, [r0, #0x154] str r2, [r0, #0x168] str r1, [r0, #0x16c] str r2, [r0, #0x1b0] str r1, [r0, #0x1b4] str r2, [r0, #0x1c8] str r1, [r0, #0x1cc] str r2, [r0, #0x1e0] str r1, [r0, #0x1e4] str r2, [r0, #0x1f8] str r1, [r0, #0x1fc] str r2, [r0, #0x210] str r1, [r0, #0x214] str r2, [r0, #0x228] str r1, [r0, #0x22c] str r2, [r0, #0x240] str r1, [sp, #4] str r1, [r0, #0x244] ldr r3, _02188bf8 ; =data_ov38_021891e0 ldr ip, _02188bfc ; =data_ov38_02188f28 ldr r0, _02188c00 ; =data_ov38_021892a8 ldr r1, _02188c04 ; =func_0202bac0 ldr r2, _02188c08 ; =data_ov38_0218929c str ip, [r3, #0x5c] bl func_0204f8d4 ldr r0, _02188c0c ; =data_ov38_021892c0 ldr r1, _02188c04 ; =func_0202bac0 ldr r2, _02188c10 ; =data_ov38_021892b4 bl func_0204f8d4 ldr r0, _02188c14 ; =data_ov38_02189414 blx func_0202ab78 ldr r0, _02188c14 ; =data_ov38_02189414 ldr r1, _02188c18 ; =0x0202ab65 ldr r2, _02188c1c ; =data_ov38_02189408 bl func_0204f8d4 add sp, sp, #8 ldmia sp!, {r3, pc} .align 2, 0 arm_func_end func_ov38_02188ae4 _02188bdc: .word data_ov38_021891ec _02188be0: .word 0x47444f46 _02188be4: .word func_ov38_0217bd80 _02188be8: .word func_0203e7b4 _02188bec: .word data_ov38_021891e0 _02188bf0: .word data_02057200 _02188bf4: .word data_ov38_02188ca0 _02188bf8: .word data_ov38_021891e0 _02188bfc: .word data_ov38_02188f28 _02188c00: .word data_ov38_021892a8 _02188c04: .word func_0202bac0 _02188c08: .word data_ov38_0218929c _02188c0c: .word data_ov38_021892c0 _02188c10: .word data_ov38_021892b4 _02188c14: .word data_ov38_02189414 _02188c18: .word 0x0202ab65 _02188c1c: .word data_ov38_02189408 .global func_ov38_02188c20 arm_func_start func_ov38_02188c20 func_ov38_02188c20: ; 0x02188c20 stmdb sp!, {r3, lr} ldr r0, _02188c4c ; =data_ov38_02189470 ldr r1, _02188c50 ; =0x4e564d4d ldr r2, _02188c54 ; =func_ov38_021884dc mov r3, #0 bl func_0203e784 ldr r0, _02188c4c ; =data_ov38_02189470 ldr r1, _02188c58 ; =func_0203e7b4 ldr r2, _02188c5c ; =data_ov38_02189464 bl func_0204f8d4 ldmia sp!, {r3, pc} .align 2, 0 arm_func_end func_ov38_02188c20 _02188c4c: .word data_ov38_02189470 _02188c50: .word 0x4e564d4d _02188c54: .word func_ov38_021884dc _02188c58: .word func_0203e7b4 _02188c5c: .word data_ov38_02189464 .section .sinit, 4, 1, 4 .global data_ov38_02188c60 data_ov38_02188c60: ; 0x02188c60 .byte 0xe4, 0x8a, 0x18, 0x02 .global data_ov38_02188c64 data_ov38_02188c64: ; 0x02188c64 .byte 0x20, 0x8c, 0x18, 0x02 .data .global data_ov38_02188c80 data_ov38_02188c80: ; 0x02188c80 .ascii "brg" .byte 0x00 .global data_ov38_02188c84 data_ov38_02188c84: ; 0x02188c84 .ascii "fnl" .byte 0x00 .global data_ov38_02188c88 data_ov38_02188c88: ; 0x02188c88 .ascii "pdl" .byte 0x00 .global data_ov38_02188c8c data_ov38_02188c8c: ; 0x02188c8c .ascii "dco" .byte 0x00 .global data_ov38_02188c90 data_ov38_02188c90: ; 0x02188c90 .ascii "can" .byte 0x00 .global data_ov38_02188c94 data_ov38_02188c94: ; 0x02188c94 .ascii "hul" .byte 0x00 .global data_ov38_02188c98 data_ov38_02188c98: ; 0x02188c98 .ascii "bow" .byte 0x00 .global data_ov38_02188c9c data_ov38_02188c9c: ; 0x02188c9c .ascii "anc" .byte 0x00 .global data_ov38_02188ca0 data_ov38_02188ca0: ; 0x02188ca0 .byte 0x9c, 0x8c, 0x18, 0x02 .global data_ov38_02188ca4 data_ov38_02188ca4: ; 0x02188ca4 .byte 0x98, 0x8c, 0x18, 0x02 .global data_ov38_02188ca8 data_ov38_02188ca8: ; 0x02188ca8 .byte 0x94, 0x8c, 0x18, 0x02 .global data_ov38_02188cac data_ov38_02188cac: ; 0x02188cac .byte 0x90, 0x8c, 0x18, 0x02 .global data_ov38_02188cb0 data_ov38_02188cb0: ; 0x02188cb0 .byte 0x8c, 0x8c, 0x18, 0x02 .global data_ov38_02188cb4 data_ov38_02188cb4: ; 0x02188cb4 .byte 0x88, 0x8c, 0x18, 0x02 .global data_ov38_02188cb8 data_ov38_02188cb8: ; 0x02188cb8 .byte 0x84, 0x8c, 0x18, 0x02 .global data_ov38_02188cbc data_ov38_02188cbc: ; 0x02188cbc .byte 0x80, 0x8c, 0x18, 0x02 .global data_ov38_02188cc0 data_ov38_02188cc0: ; 0x02188cc0 .byte 0x0c, 0x90, 0x18, 0x02 .global data_ov38_02188cc4 data_ov38_02188cc4: ; 0x02188cc4 .byte 0x14, 0x90, 0x18, 0x02 .global data_ov38_02188cc8 data_ov38_02188cc8: ; 0x02188cc8 .byte 0x1c, 0x90, 0x18, 0x02 .global data_ov38_02188ccc data_ov38_02188ccc: ; 0x02188ccc .byte 0x24, 0x90, 0x18, 0x02 .global data_ov38_02188cd0 data_ov38_02188cd0: ; 0x02188cd0 .byte 0x2c, 0x90, 0x18, 0x02 .global data_ov38_02188cd4 data_ov38_02188cd4: ; 0x02188cd4 .byte 0x34, 0x90, 0x18, 0x02 .global data_ov38_02188cd8 data_ov38_02188cd8: ; 0x02188cd8 .byte 0x3c, 0x90, 0x18, 0x02 .global data_ov38_02188cdc data_ov38_02188cdc: ; 0x02188cdc .byte 0x44, 0x90, 0x18, 0x02 .global data_ov38_02188ce0 data_ov38_02188ce0: ; 0x02188ce0 .byte 0x4c, 0x90, 0x18, 0x02 .global data_ov38_02188ce4 data_ov38_02188ce4: ; 0x02188ce4 .byte 0x54, 0x90, 0x18, 0x02 .global data_ov38_02188ce8 data_ov38_02188ce8: ; 0x02188ce8 .byte 0x5c, 0x90, 0x18, 0x02 .global data_ov38_02188cec data_ov38_02188cec: ; 0x02188cec .byte 0x64, 0x90, 0x18, 0x02 .global data_ov38_02188cf0 data_ov38_02188cf0: ; 0x02188cf0 .byte 0x6c, 0x90, 0x18, 0x02 .global data_ov38_02188cf4 data_ov38_02188cf4: ; 0x02188cf4 .byte 0x70, 0x90, 0x18, 0x02 .global data_ov38_02188cf8 data_ov38_02188cf8: ; 0x02188cf8 .byte 0x74, 0x90, 0x18, 0x02 .global data_ov38_02188cfc data_ov38_02188cfc: ; 0x02188cfc .byte 0x78, 0x90, 0x18, 0x02 .global data_ov38_02188d00 data_ov38_02188d00: ; 0x02188d00 .byte 0x80, 0x90, 0x18, 0x02 .global data_ov38_02188d04 data_ov38_02188d04: ; 0x02188d04 .byte 0x88, 0x90, 0x18, 0x02 .global data_ov38_02188d08 data_ov38_02188d08: ; 0x02188d08 .byte 0x94, 0x90, 0x18, 0x02 .global data_ov38_02188d0c data_ov38_02188d0c: ; 0x02188d0c .byte 0xa4, 0x90, 0x18, 0x02 .global data_ov38_02188d10 data_ov38_02188d10: ; 0x02188d10 .byte 0xac, 0x90, 0x18, 0x02 .global data_ov38_02188d14 data_ov38_02188d14: ; 0x02188d14 .byte 0xb4, 0x90, 0x18, 0x02 .global data_ov38_02188d18 data_ov38_02188d18: ; 0x02188d18 .byte 0xbc, 0x90, 0x18, 0x02 .global data_ov38_02188d1c data_ov38_02188d1c: ; 0x02188d1c .byte 0xc4, 0x90, 0x18, 0x02 .global data_ov38_02188d20 data_ov38_02188d20: ; 0x02188d20 .byte 0x58, 0xea, 0x17, 0x02 .global data_ov38_02188d24 data_ov38_02188d24: ; 0x02188d24 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188d28 data_ov38_02188d28: ; 0x02188d28 .byte 0x9c, 0xea, 0x17, 0x02 .global data_ov38_02188d2c data_ov38_02188d2c: ; 0x02188d2c .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188d30 data_ov38_02188d30: ; 0x02188d30 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188d34 data_ov38_02188d34: ; 0x02188d34 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188d38 data_ov38_02188d38: ; 0x02188d38 .byte 0xa0, 0xea, 0x17, 0x02 .global data_ov38_02188d3c data_ov38_02188d3c: ; 0x02188d3c .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188d40 data_ov38_02188d40: ; 0x02188d40 .byte 0x78, 0xeb, 0x17, 0x02 .global data_ov38_02188d44 data_ov38_02188d44: ; 0x02188d44 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188d48 data_ov38_02188d48: ; 0x02188d48 .byte 0x2c, 0xf2, 0x17, 0x02 .global data_ov38_02188d4c data_ov38_02188d4c: ; 0x02188d4c .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188d50 data_ov38_02188d50: ; 0x02188d50 .byte 0x88, 0xf2, 0x17, 0x02 .global data_ov38_02188d54 data_ov38_02188d54: ; 0x02188d54 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188d58 data_ov38_02188d58: ; 0x02188d58 .byte 0xa4, 0xf3, 0x17, 0x02 .global data_ov38_02188d5c data_ov38_02188d5c: ; 0x02188d5c .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188d60 data_ov38_02188d60: ; 0x02188d60 .byte 0x58, 0xf8, 0x17, 0x02 .global data_ov38_02188d64 data_ov38_02188d64: ; 0x02188d64 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188d68 data_ov38_02188d68: ; 0x02188d68 .byte 0x90, 0xf8, 0x17, 0x02 .global data_ov38_02188d6c data_ov38_02188d6c: ; 0x02188d6c .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188d70 data_ov38_02188d70: ; 0x02188d70 .byte 0x88, 0xf9, 0x17, 0x02 .global data_ov38_02188d74 data_ov38_02188d74: ; 0x02188d74 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188d78 data_ov38_02188d78: ; 0x02188d78 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188d7c data_ov38_02188d7c: ; 0x02188d7c .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188d80 data_ov38_02188d80: ; 0x02188d80 .byte 0xcc, 0xf9, 0x17, 0x02 .global data_ov38_02188d84 data_ov38_02188d84: ; 0x02188d84 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188d88 data_ov38_02188d88: ; 0x02188d88 .byte 0x40, 0xfa, 0x17, 0x02 .global data_ov38_02188d8c data_ov38_02188d8c: ; 0x02188d8c .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188d90 data_ov38_02188d90: ; 0x02188d90 .byte 0x4c, 0xfb, 0x17, 0x02 .global data_ov38_02188d94 data_ov38_02188d94: ; 0x02188d94 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188d98 data_ov38_02188d98: ; 0x02188d98 .byte 0x50, 0xfb, 0x17, 0x02 .global data_ov38_02188d9c data_ov38_02188d9c: ; 0x02188d9c .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188da0 data_ov38_02188da0: ; 0x02188da0 .byte 0x20, 0xfc, 0x17, 0x02 .global data_ov38_02188da4 data_ov38_02188da4: ; 0x02188da4 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188da8 data_ov38_02188da8: ; 0x02188da8 .byte 0xe4, 0xfd, 0x17, 0x02 .global data_ov38_02188dac data_ov38_02188dac: ; 0x02188dac .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188db0 data_ov38_02188db0: ; 0x02188db0 .byte 0xf4, 0xfd, 0x17, 0x02 .global data_ov38_02188db4 data_ov38_02188db4: ; 0x02188db4 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188db8 data_ov38_02188db8: ; 0x02188db8 .byte 0xa0, 0xfe, 0x17, 0x02 .global data_ov38_02188dbc data_ov38_02188dbc: ; 0x02188dbc .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188dc0 data_ov38_02188dc0: ; 0x02188dc0 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188dc4 data_ov38_02188dc4: ; 0x02188dc4 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188dc8 data_ov38_02188dc8: ; 0x02188dc8 .byte 0xd8, 0x00, 0x18, 0x02 .global data_ov38_02188dcc data_ov38_02188dcc: ; 0x02188dcc .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188dd0 data_ov38_02188dd0: ; 0x02188dd0 .byte 0x68, 0x01, 0x18, 0x02 .global data_ov38_02188dd4 data_ov38_02188dd4: ; 0x02188dd4 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188dd8 data_ov38_02188dd8: ; 0x02188dd8 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188ddc data_ov38_02188ddc: ; 0x02188ddc .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188de0 data_ov38_02188de0: ; 0x02188de0 .byte 0xc4, 0x03, 0x18, 0x02 .global data_ov38_02188de4 data_ov38_02188de4: ; 0x02188de4 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188de8 data_ov38_02188de8: ; 0x02188de8 .byte 0x4c, 0x04, 0x18, 0x02 .global data_ov38_02188dec data_ov38_02188dec: ; 0x02188dec .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188df0 data_ov38_02188df0: ; 0x02188df0 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188df4 data_ov38_02188df4: ; 0x02188df4 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188df8 data_ov38_02188df8: ; 0x02188df8 .byte 0x0c, 0x05, 0x18, 0x02 .global data_ov38_02188dfc data_ov38_02188dfc: ; 0x02188dfc .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188e00 data_ov38_02188e00: ; 0x02188e00 .byte 0xdc, 0x05, 0x18, 0x02 .global data_ov38_02188e04 data_ov38_02188e04: ; 0x02188e04 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188e08 data_ov38_02188e08: ; 0x02188e08 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188e0c data_ov38_02188e0c: ; 0x02188e0c .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188e10 data_ov38_02188e10: ; 0x02188e10 .byte 0x64, 0x0a, 0x18, 0x02 .global data_ov38_02188e14 data_ov38_02188e14: ; 0x02188e14 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188e18 data_ov38_02188e18: ; 0x02188e18 .byte 0xc0, 0x0b, 0x18, 0x02 .global data_ov38_02188e1c data_ov38_02188e1c: ; 0x02188e1c .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188e20 data_ov38_02188e20: ; 0x02188e20 .byte 0xb0, 0x0d, 0x18, 0x02 .global data_ov38_02188e24 data_ov38_02188e24: ; 0x02188e24 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188e28 data_ov38_02188e28: ; 0x02188e28 .byte 0x00, 0x0e, 0x18, 0x02 .global data_ov38_02188e2c data_ov38_02188e2c: ; 0x02188e2c .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188e30 data_ov38_02188e30: ; 0x02188e30 .byte 0x2c, 0x0f, 0x18, 0x02 .global data_ov38_02188e34 data_ov38_02188e34: ; 0x02188e34 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188e38 data_ov38_02188e38: ; 0x02188e38 .byte 0x1c, 0x12, 0x18, 0x02 .global data_ov38_02188e3c data_ov38_02188e3c: ; 0x02188e3c .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188e40 data_ov38_02188e40: ; 0x02188e40 .byte 0x54, 0x12, 0x18, 0x02 .global data_ov38_02188e44 data_ov38_02188e44: ; 0x02188e44 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188e48 data_ov38_02188e48: ; 0x02188e48 .byte 0x24, 0x13, 0x18, 0x02 .global data_ov38_02188e4c data_ov38_02188e4c: ; 0x02188e4c .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188e50 data_ov38_02188e50: ; 0x02188e50 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188e54 data_ov38_02188e54: ; 0x02188e54 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188e58 data_ov38_02188e58: ; 0x02188e58 .byte 0xfc, 0x15, 0x18, 0x02 .global data_ov38_02188e5c data_ov38_02188e5c: ; 0x02188e5c .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188e60 data_ov38_02188e60: ; 0x02188e60 .byte 0x7c, 0x16, 0x18, 0x02 .global data_ov38_02188e64 data_ov38_02188e64: ; 0x02188e64 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188e68 data_ov38_02188e68: ; 0x02188e68 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188e6c data_ov38_02188e6c: ; 0x02188e6c .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188e70 data_ov38_02188e70: ; 0x02188e70 .byte 0x90, 0x18, 0x18, 0x02 .global data_ov38_02188e74 data_ov38_02188e74: ; 0x02188e74 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188e78 data_ov38_02188e78: ; 0x02188e78 .byte 0x50, 0x19, 0x18, 0x02 .global data_ov38_02188e7c data_ov38_02188e7c: ; 0x02188e7c .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188e80 data_ov38_02188e80: ; 0x02188e80 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188e84 data_ov38_02188e84: ; 0x02188e84 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188e88 data_ov38_02188e88: ; 0x02188e88 .byte 0x30, 0x1e, 0x18, 0x02 .global data_ov38_02188e8c data_ov38_02188e8c: ; 0x02188e8c .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188e90 data_ov38_02188e90: ; 0x02188e90 .byte 0x20, 0x1f, 0x18, 0x02 .global data_ov38_02188e94 data_ov38_02188e94: ; 0x02188e94 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188e98 data_ov38_02188e98: ; 0x02188e98 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188e9c data_ov38_02188e9c: ; 0x02188e9c .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188ea0 data_ov38_02188ea0: ; 0x02188ea0 .byte 0x40, 0x20, 0x18, 0x02 .global data_ov38_02188ea4 data_ov38_02188ea4: ; 0x02188ea4 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188ea8 data_ov38_02188ea8: ; 0x02188ea8 .byte 0x94, 0x20, 0x18, 0x02 .global data_ov38_02188eac data_ov38_02188eac: ; 0x02188eac .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188eb0 data_ov38_02188eb0: ; 0x02188eb0 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188eb4 data_ov38_02188eb4: ; 0x02188eb4 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188eb8 data_ov38_02188eb8: ; 0x02188eb8 .byte 0x28, 0x22, 0x18, 0x02 .global data_ov38_02188ebc data_ov38_02188ebc: ; 0x02188ebc .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188ec0 data_ov38_02188ec0: ; 0x02188ec0 .byte 0x3c, 0x23, 0x18, 0x02 .global data_ov38_02188ec4 data_ov38_02188ec4: ; 0x02188ec4 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188ec8 data_ov38_02188ec8: ; 0x02188ec8 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188ecc data_ov38_02188ecc: ; 0x02188ecc .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188ed0 data_ov38_02188ed0: ; 0x02188ed0 .byte 0x60, 0x25, 0x18, 0x02 .global data_ov38_02188ed4 data_ov38_02188ed4: ; 0x02188ed4 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188ed8 data_ov38_02188ed8: ; 0x02188ed8 .byte 0xa0, 0x25, 0x18, 0x02 .global data_ov38_02188edc data_ov38_02188edc: ; 0x02188edc .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188ee0 data_ov38_02188ee0: ; 0x02188ee0 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188ee4 data_ov38_02188ee4: ; 0x02188ee4 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188ee8 data_ov38_02188ee8: ; 0x02188ee8 .byte 0x84, 0x6c, 0x18, 0x02 .global data_ov38_02188eec data_ov38_02188eec: ; 0x02188eec .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188ef0 data_ov38_02188ef0: ; 0x02188ef0 .byte 0xbc, 0x5e, 0x18, 0x02 .global data_ov38_02188ef4 data_ov38_02188ef4: ; 0x02188ef4 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188ef8 data_ov38_02188ef8: ; 0x02188ef8 .byte 0xff, 0xff, 0xff, 0xff .global data_ov38_02188efc data_ov38_02188efc: ; 0x02188efc .byte 0x84, 0x6c, 0x18, 0x02 .global data_ov38_02188f00 data_ov38_02188f00: ; 0x02188f00 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188f04 data_ov38_02188f04: ; 0x02188f04 .byte 0xcc, 0x75, 0x18, 0x02 .global data_ov38_02188f08 data_ov38_02188f08: ; 0x02188f08 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188f0c data_ov38_02188f0c: ; 0x02188f0c .byte 0x64, 0x79, 0x18, 0x02 .global data_ov38_02188f10 data_ov38_02188f10: ; 0x02188f10 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188f14 data_ov38_02188f14: ; 0x02188f14 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188f18 data_ov38_02188f18: ; 0x02188f18 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188f1c data_ov38_02188f1c: ; 0x02188f1c .byte 0x44, 0xc1, 0x17, 0x02 .global data_ov38_02188f20 data_ov38_02188f20: ; 0x02188f20 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188f24 data_ov38_02188f24: ; 0x02188f24 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188f28 data_ov38_02188f28: ; 0x02188f28 .byte 0x48, 0xbf, 0x17, 0x02 .global data_ov38_02188f2c data_ov38_02188f2c: ; 0x02188f2c .byte 0x50, 0xc0, 0x17, 0x02 .global data_ov38_02188f30 data_ov38_02188f30: ; 0x02188f30 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188f34 data_ov38_02188f34: ; 0x02188f34 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188f38 data_ov38_02188f38: ; 0x02188f38 .byte 0xc0, 0xc7, 0x17, 0x02 .global data_ov38_02188f3c data_ov38_02188f3c: ; 0x02188f3c .byte 0xa0, 0xc8, 0x17, 0x02 .global data_ov38_02188f40 data_ov38_02188f40: ; 0x02188f40 .byte 0x90, 0xcf, 0x17, 0x02 .global data_ov38_02188f44 data_ov38_02188f44: ; 0x02188f44 .byte 0x3c, 0x17, 0x0c, 0x02 .global data_ov38_02188f48 data_ov38_02188f48: ; 0x02188f48 .byte 0x40, 0x17, 0x0c, 0x02 .global data_ov38_02188f4c data_ov38_02188f4c: ; 0x02188f4c .byte 0x1c, 0x38, 0x18, 0x02 .global data_ov38_02188f50 data_ov38_02188f50: ; 0x02188f50 .byte 0xa4, 0x3a, 0x18, 0x02 .global data_ov38_02188f54 data_ov38_02188f54: ; 0x02188f54 .byte 0xd4, 0x17, 0x0c, 0x02 .global data_ov38_02188f58 data_ov38_02188f58: ; 0x02188f58 .byte 0x94, 0x4c, 0x18, 0x02 .global data_ov38_02188f5c data_ov38_02188f5c: ; 0x02188f5c .byte 0x44, 0x17, 0x0c, 0x02 .global data_ov38_02188f60 data_ov38_02188f60: ; 0x02188f60 .byte 0x48, 0x17, 0x0c, 0x02 .global data_ov38_02188f64 data_ov38_02188f64: ; 0x02188f64 .byte 0xa8, 0x17, 0x0c, 0x02 .global data_ov38_02188f68 data_ov38_02188f68: ; 0x02188f68 .byte 0xb0, 0x17, 0x0c, 0x02 .global data_ov38_02188f6c data_ov38_02188f6c: ; 0x02188f6c .byte 0x4c, 0x17, 0x0c, 0x02 .global data_ov38_02188f70 data_ov38_02188f70: ; 0x02188f70 .byte 0x7c, 0x17, 0x0c, 0x02 .global data_ov38_02188f74 data_ov38_02188f74: ; 0x02188f74 .byte 0xe4, 0x27, 0x0c, 0x02 .global data_ov38_02188f78 data_ov38_02188f78: ; 0x02188f78 .byte 0x04, 0x30, 0x0c, 0x02 .global data_ov38_02188f7c data_ov38_02188f7c: ; 0x02188f7c .byte 0x44, 0x27, 0x0c, 0x02 .global data_ov38_02188f80 data_ov38_02188f80: ; 0x02188f80 .byte 0x68, 0x3d, 0x18, 0x02 .global data_ov38_02188f84 data_ov38_02188f84: ; 0x02188f84 .byte 0x50, 0x1c, 0x0c, 0x02 .global data_ov38_02188f88 data_ov38_02188f88: ; 0x02188f88 .byte 0x0c, 0x31, 0x0c, 0x02 .global data_ov38_02188f8c data_ov38_02188f8c: ; 0x02188f8c .byte 0x14, 0x31, 0x0c, 0x02 .global data_ov38_02188f90 data_ov38_02188f90: ; 0x02188f90 .byte 0xa8, 0x18, 0x0c, 0x02 .global data_ov38_02188f94 data_ov38_02188f94: ; 0x02188f94 .byte 0xc4, 0x18, 0x0c, 0x02 .global data_ov38_02188f98 data_ov38_02188f98: ; 0x02188f98 .byte 0xfc, 0x18, 0x0c, 0x02 .global data_ov38_02188f9c data_ov38_02188f9c: ; 0x02188f9c .byte 0x04, 0x19, 0x0c, 0x02 .global data_ov38_02188fa0 data_ov38_02188fa0: ; 0x02188fa0 .byte 0x10, 0x19, 0x0c, 0x02 .global data_ov38_02188fa4 data_ov38_02188fa4: ; 0x02188fa4 .byte 0x14, 0x19, 0x0c, 0x02 .global data_ov38_02188fa8 data_ov38_02188fa8: ; 0x02188fa8 .byte 0x1c, 0x19, 0x0c, 0x02 .global data_ov38_02188fac data_ov38_02188fac: ; 0x02188fac .byte 0x24, 0x19, 0x0c, 0x02 .global data_ov38_02188fb0 data_ov38_02188fb0: ; 0x02188fb0 .byte 0x2c, 0x19, 0x0c, 0x02 .global data_ov38_02188fb4 data_ov38_02188fb4: ; 0x02188fb4 .byte 0x28, 0x19, 0x0c, 0x02 .global data_ov38_02188fb8 data_ov38_02188fb8: ; 0x02188fb8 .byte 0x34, 0x19, 0x0c, 0x02 .global data_ov38_02188fbc data_ov38_02188fbc: ; 0x02188fbc .byte 0x38, 0x19, 0x0c, 0x02 .global data_ov38_02188fc0 data_ov38_02188fc0: ; 0x02188fc0 .byte 0x3c, 0x19, 0x0c, 0x02 .global data_ov38_02188fc4 data_ov38_02188fc4: ; 0x02188fc4 .byte 0x40, 0x19, 0x0c, 0x02 .global data_ov38_02188fc8 data_ov38_02188fc8: ; 0x02188fc8 .byte 0x48, 0x19, 0x0c, 0x02 .global data_ov38_02188fcc data_ov38_02188fcc: ; 0x02188fcc .byte 0x50, 0x19, 0x0c, 0x02 .global data_ov38_02188fd0 data_ov38_02188fd0: ; 0x02188fd0 .byte 0x54, 0x19, 0x0c, 0x02 .global data_ov38_02188fd4 data_ov38_02188fd4: ; 0x02188fd4 .byte 0x58, 0x19, 0x0c, 0x02 .global data_ov38_02188fd8 data_ov38_02188fd8: ; 0x02188fd8 .byte 0x6c, 0x1b, 0x0c, 0x02 .global data_ov38_02188fdc data_ov38_02188fdc: ; 0x02188fdc .byte 0xb4, 0x1b, 0x0c, 0x02 .global data_ov38_02188fe0 data_ov38_02188fe0: ; 0x02188fe0 .byte 0xf8, 0x1b, 0x0c, 0x02 .global data_ov38_02188fe4 data_ov38_02188fe4: ; 0x02188fe4 .byte 0xfc, 0x31, 0x0c, 0x02 .global data_ov38_02188fe8 data_ov38_02188fe8: ; 0x02188fe8 .byte 0x2c, 0x32, 0x0c, 0x02 .global data_ov38_02188fec data_ov38_02188fec: ; 0x02188fec .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188ff0 data_ov38_02188ff0: ; 0x02188ff0 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02188ff4 data_ov38_02188ff4: ; 0x02188ff4 .byte 0x6d, 0x9b, 0x0a, 0x02 .global data_ov38_02188ff8 data_ov38_02188ff8: ; 0x02188ff8 .byte 0x79, 0x9b, 0x0a, 0x02 .global data_ov38_02188ffc data_ov38_02188ffc: ; 0x02188ffc .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02189000 data_ov38_02189000: ; 0x02189000 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02189004 data_ov38_02189004: ; 0x02189004 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02189008 data_ov38_02189008: ; 0x02189008 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_0218900c data_ov38_0218900c: ; 0x0218900c .ascii "wait1" .byte 0x00, 0x00, 0x00 .global data_ov38_02189014 data_ov38_02189014: ; 0x02189014 .ascii "wait2" .byte 0x00, 0x00, 0x00 .global data_ov38_0218901c data_ov38_0218901c: ; 0x0218901c .ascii "wait3" .byte 0x00, 0x00, 0x00 .global data_ov38_02189024 data_ov38_02189024: ; 0x02189024 .ascii "spit1" .byte 0x00, 0x00, 0x00 .global data_ov38_0218902c data_ov38_0218902c: ; 0x0218902c .ascii "spit2" .byte 0x00, 0x00, 0x00 .global data_ov38_02189034 data_ov38_02189034: ; 0x02189034 .ascii "spit3" .byte 0x00, 0x00, 0x00 .global data_ov38_0218903c data_ov38_0218903c: ; 0x0218903c .ascii "chance1" .byte 0x00 .global data_ov38_02189044 data_ov38_02189044: ; 0x02189044 .ascii "chance2" .byte 0x00 .global data_ov38_0218904c data_ov38_0218904c: ; 0x0218904c .ascii "damage1" .byte 0x00 .global data_ov38_02189054 data_ov38_02189054: ; 0x02189054 .ascii "damage2" .byte 0x00 .global data_ov38_0218905c data_ov38_0218905c: ; 0x0218905c .ascii "damage3" .byte 0x00 .global data_ov38_02189064 data_ov38_02189064: ; 0x02189064 .ascii "damage4" .byte 0x00 .global data_ov38_0218906c data_ov38_0218906c: ; 0x0218906c .ascii "up1" .byte 0x00 .global data_ov38_02189070 data_ov38_02189070: ; 0x02189070 .ascii "up2" .byte 0x00 .global data_ov38_02189074 data_ov38_02189074: ; 0x02189074 .ascii "up3" .byte 0x00 .global data_ov38_02189078 data_ov38_02189078: ; 0x02189078 .ascii "fall1" .byte 0x00, 0x00, 0x00 .global data_ov38_02189080 data_ov38_02189080: ; 0x02189080 .ascii "fall2" .byte 0x00, 0x00, 0x00 .global data_ov38_02189088 data_ov38_02189088: ; 0x02189088 .ascii "all_attack1" .byte 0x00 .global data_ov38_02189094 data_ov38_02189094: ; 0x02189094 .ascii "all_attack_end" .byte 0x00, 0x00 .global data_ov38_021890a4 data_ov38_021890a4: ; 0x021890a4 .ascii "enter1" .byte 0x00, 0x00 .global data_ov38_021890ac data_ov38_021890ac: ; 0x021890ac .ascii "enter2" .byte 0x00, 0x00 .global data_ov38_021890b4 data_ov38_021890b4: ; 0x021890b4 .ascii "enter3" .byte 0x00, 0x00 .global data_ov38_021890bc data_ov38_021890bc: ; 0x021890bc .ascii "enter4" .byte 0x00, 0x00 .global data_ov38_021890c4 data_ov38_021890c4: ; 0x021890c4 .ascii "dead1" .byte 0x00, 0x00, 0x00 .global data_ov38_021890cc data_ov38_021890cc: ; 0x021890cc .ascii "gdo1_eye_pl" .byte 0x00 .global data_ov38_021890d8 data_ov38_021890d8: ; 0x021890d8 .ascii "brg" .byte 0x00 .global data_ov38_021890dc data_ov38_021890dc: ; 0x021890dc .ascii "fnl" .byte 0x00 .global data_ov38_021890e0 data_ov38_021890e0: ; 0x021890e0 .ascii "pdl" .byte 0x00 .global data_ov38_021890e4 data_ov38_021890e4: ; 0x021890e4 .ascii "dco" .byte 0x00 .global data_ov38_021890e8 data_ov38_021890e8: ; 0x021890e8 .ascii "can" .byte 0x00 .global data_ov38_021890ec data_ov38_021890ec: ; 0x021890ec .ascii "hul" .byte 0x00 .global data_ov38_021890f0 data_ov38_021890f0: ; 0x021890f0 .ascii "bow" .byte 0x00 .global data_ov38_021890f4 data_ov38_021890f4: ; 0x021890f4 .ascii "anc" .byte 0x00 .global data_ov38_021890f8 data_ov38_021890f8: ; 0x021890f8 .byte 0xf4, 0x90, 0x18, 0x02 .global data_ov38_021890fc data_ov38_021890fc: ; 0x021890fc .byte 0xf0, 0x90, 0x18, 0x02 .global data_ov38_02189100 data_ov38_02189100: ; 0x02189100 .byte 0xec, 0x90, 0x18, 0x02 .global data_ov38_02189104 data_ov38_02189104: ; 0x02189104 .byte 0xe8, 0x90, 0x18, 0x02 .global data_ov38_02189108 data_ov38_02189108: ; 0x02189108 .byte 0xe4, 0x90, 0x18, 0x02 .global data_ov38_0218910c data_ov38_0218910c: ; 0x0218910c .byte 0xe0, 0x90, 0x18, 0x02 .global data_ov38_02189110 data_ov38_02189110: ; 0x02189110 .byte 0xdc, 0x90, 0x18, 0x02 .global data_ov38_02189114 data_ov38_02189114: ; 0x02189114 .byte 0xd8, 0x90, 0x18, 0x02 .global data_ov38_02189118 data_ov38_02189118: ; 0x02189118 .byte 0x9c, 0x81, 0x18, 0x02 .global data_ov38_0218911c data_ov38_0218911c: ; 0x0218911c .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02189120 data_ov38_02189120: ; 0x02189120 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02189124 data_ov38_02189124: ; 0x02189124 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov38_02189128 data_ov38_02189128: ; 0x02189128 .byte 0x64, 0x85, 0x18, 0x02 .global data_ov38_0218912c data_ov38_0218912c: ; 0x0218912c .byte 0xa4, 0x85, 0x18, 0x02 .global data_ov38_02189130 data_ov38_02189130: ; 0x02189130 .byte 0xec, 0x85, 0x18, 0x02 .global data_ov38_02189134 data_ov38_02189134: ; 0x02189134 .byte 0x3c, 0x17, 0x0c, 0x02 .global data_ov38_02189138 data_ov38_02189138: ; 0x02189138 .byte 0x40, 0x17, 0x0c, 0x02 .global data_ov38_0218913c data_ov38_0218913c: ; 0x0218913c .byte 0xd4, 0x88, 0x18, 0x02 .global data_ov38_02189140 data_ov38_02189140: ; 0x02189140 .byte 0xa0, 0x88, 0x18, 0x02 .global data_ov38_02189144 data_ov38_02189144: ; 0x02189144 .byte 0xd4, 0x17, 0x0c, 0x02 .global data_ov38_02189148 data_ov38_02189148: ; 0x02189148 .byte 0x94, 0x18, 0x0c, 0x02 .global data_ov38_0218914c data_ov38_0218914c: ; 0x0218914c .byte 0x44, 0x17, 0x0c, 0x02 .global data_ov38_02189150 data_ov38_02189150: ; 0x02189150 .byte 0x48, 0x17, 0x0c, 0x02 .global data_ov38_02189154 data_ov38_02189154: ; 0x02189154 .byte 0xa8, 0x17, 0x0c, 0x02 .global data_ov38_02189158 data_ov38_02189158: ; 0x02189158 .byte 0xb0, 0x17, 0x0c, 0x02 .global data_ov38_0218915c data_ov38_0218915c: ; 0x0218915c .byte 0x4c, 0x17, 0x0c, 0x02 .global data_ov38_02189160 data_ov38_02189160: ; 0x02189160 .byte 0x7c, 0x17, 0x0c, 0x02 .global data_ov38_02189164 data_ov38_02189164: ; 0x02189164 .byte 0xe4, 0x27, 0x0c, 0x02 .global data_ov38_02189168 data_ov38_02189168: ; 0x02189168 .byte 0x04, 0x30, 0x0c, 0x02 .global data_ov38_0218916c data_ov38_0218916c: ; 0x0218916c .byte 0x44, 0x27, 0x0c, 0x02 .global data_ov38_02189170 data_ov38_02189170: ; 0x02189170 .byte 0x48, 0x1c, 0x0c, 0x02 .global data_ov38_02189174 data_ov38_02189174: ; 0x02189174 .byte 0x50, 0x1c, 0x0c, 0x02 .global data_ov38_02189178 data_ov38_02189178: ; 0x02189178 .byte 0x0c, 0x31, 0x0c, 0x02 .global data_ov38_0218917c data_ov38_0218917c: ; 0x0218917c .byte 0x14, 0x31, 0x0c, 0x02 .global data_ov38_02189180 data_ov38_02189180: ; 0x02189180 .byte 0xa8, 0x18, 0x0c, 0x02 .global data_ov38_02189184 data_ov38_02189184: ; 0x02189184 .byte 0xc4, 0x18, 0x0c, 0x02 .global data_ov38_02189188 data_ov38_02189188: ; 0x02189188 .byte 0xfc, 0x18, 0x0c, 0x02 .global data_ov38_0218918c data_ov38_0218918c: ; 0x0218918c .byte 0x04, 0x19, 0x0c, 0x02 .global data_ov38_02189190 data_ov38_02189190: ; 0x02189190 .byte 0x10, 0x19, 0x0c, 0x02 .global data_ov38_02189194 data_ov38_02189194: ; 0x02189194 .byte 0x14, 0x19, 0x0c, 0x02 .global data_ov38_02189198 data_ov38_02189198: ; 0x02189198 .byte 0x1c, 0x19, 0x0c, 0x02 .global data_ov38_0218919c data_ov38_0218919c: ; 0x0218919c .byte 0x24, 0x19, 0x0c, 0x02 .global data_ov38_021891a0 data_ov38_021891a0: ; 0x021891a0 .byte 0x2c, 0x19, 0x0c, 0x02 .global data_ov38_021891a4 data_ov38_021891a4: ; 0x021891a4 .byte 0x28, 0x19, 0x0c, 0x02 .global data_ov38_021891a8 data_ov38_021891a8: ; 0x021891a8 .byte 0x34, 0x19, 0x0c, 0x02 .global data_ov38_021891ac data_ov38_021891ac: ; 0x021891ac .byte 0x38, 0x19, 0x0c, 0x02 .global data_ov38_021891b0 data_ov38_021891b0: ; 0x021891b0 .byte 0x3c, 0x19, 0x0c, 0x02 .global data_ov38_021891b4 data_ov38_021891b4: ; 0x021891b4 .byte 0x40, 0x19, 0x0c, 0x02 .global data_ov38_021891b8 data_ov38_021891b8: ; 0x021891b8 .byte 0x48, 0x19, 0x0c, 0x02 .global data_ov38_021891bc data_ov38_021891bc: ; 0x021891bc .byte 0x50, 0x19, 0x0c, 0x02 .global data_ov38_021891c0 data_ov38_021891c0: ; 0x021891c0 .byte 0x54, 0x19, 0x0c, 0x02 .global data_ov38_021891c4 data_ov38_021891c4: ; 0x021891c4 .byte 0x58, 0x19, 0x0c, 0x02 .global data_ov38_021891c8 data_ov38_021891c8: ; 0x021891c8 .byte 0x6c, 0x1b, 0x0c, 0x02 .global data_ov38_021891cc data_ov38_021891cc: ; 0x021891cc .byte 0xb4, 0x1b, 0x0c, 0x02 .global data_ov38_021891d0 data_ov38_021891d0: ; 0x021891d0 .byte 0xf8, 0x1b, 0x0c, 0x02 .global data_ov38_021891d4 data_ov38_021891d4: ; 0x021891d4 .byte 0xfc, 0x31, 0x0c, 0x02 .global data_ov38_021891d8 data_ov38_021891d8: ; 0x021891d8 .byte 0x2c, 0x32, 0x0c, 0x02 .global data_ov38_021891dc data_ov38_021891dc: ; 0x021891dc .byte 0x00, 0x00, 0x00, 0x00 ; 0x021891e0 .bss .global data_ov38_021891e0 data_ov38_021891e0: .space 0x4 .global data_ov38_021891e4 data_ov38_021891e4: .space 0x4 .global data_ov38_021891e8 data_ov38_021891e8: .space 0x4 .global data_ov38_021891ec data_ov38_021891ec: .space 0x4 .global data_ov38_021891f0 data_ov38_021891f0: .space 0x4 .global data_ov38_021891f4 data_ov38_021891f4: .space 0x4 .global data_ov38_021891f8 data_ov38_021891f8: .space 0x4 .global data_ov38_021891fc data_ov38_021891fc: .space 0x4 .global data_ov38_02189200 data_ov38_02189200: .space 0x4 .global data_ov38_02189204 data_ov38_02189204: .space 0x4 .global data_ov38_02189208 data_ov38_02189208: .space 0x4 .global data_ov38_0218920c data_ov38_0218920c: .space 0x4 .global data_ov38_02189210 data_ov38_02189210: .space 0x4 .global data_ov38_02189214 data_ov38_02189214: .space 0x4 .global data_ov38_02189218 data_ov38_02189218: .space 0x4 .global data_ov38_0218921c data_ov38_0218921c: .space 0x4 .global data_ov38_02189220 data_ov38_02189220: .space 0x4 .global data_ov38_02189224 data_ov38_02189224: .space 0x4 .global data_ov38_02189228 data_ov38_02189228: .space 0x4 .global data_ov38_0218922c data_ov38_0218922c: .space 0x4 .global data_ov38_02189230 data_ov38_02189230: .space 0x4 .global data_ov38_02189234 data_ov38_02189234: .space 0x4 .global data_ov38_02189238 data_ov38_02189238: .space 0x4 .global data_ov38_0218923c data_ov38_0218923c: .space 0x4 .global data_ov38_02189240 data_ov38_02189240: .space 0x4 .global data_ov38_02189244 data_ov38_02189244: .space 0x4 .global data_ov38_02189248 data_ov38_02189248: .space 0x4 .global data_ov38_0218924c data_ov38_0218924c: .space 0x4 .global data_ov38_02189250 data_ov38_02189250: .space 0x4 .global data_ov38_02189254 data_ov38_02189254: .space 0x4 .global data_ov38_02189258 data_ov38_02189258: .space 0x4 .global data_ov38_0218925c data_ov38_0218925c: .space 0x4 .global data_ov38_02189260 data_ov38_02189260: .space 0x4 .global data_ov38_02189264 data_ov38_02189264: .space 0x4 .global data_ov38_02189268 data_ov38_02189268: .space 0x4 .global data_ov38_0218926c data_ov38_0218926c: .space 0x4 .global data_ov38_02189270 data_ov38_02189270: .space 0x4 .global data_ov38_02189274 data_ov38_02189274: .space 0x4 .global data_ov38_02189278 data_ov38_02189278: .space 0x4 .global data_ov38_0218927c data_ov38_0218927c: .space 0x4 .global data_ov38_02189280 data_ov38_02189280: .space 0x4 .global data_ov38_02189284 data_ov38_02189284: .space 0x4 .global data_ov38_02189288 data_ov38_02189288: .space 0x4 .global data_ov38_0218928c data_ov38_0218928c: .space 0x4 .global data_ov38_02189290 data_ov38_02189290: .space 0x4 .global data_ov38_02189294 data_ov38_02189294: .space 0x4 .global data_ov38_02189298 data_ov38_02189298: .space 0x4 .global data_ov38_0218929c data_ov38_0218929c: .space 0x4 .global data_ov38_021892a0 data_ov38_021892a0: .space 0x4 .global data_ov38_021892a4 data_ov38_021892a4: .space 0x4 .global data_ov38_021892a8 data_ov38_021892a8: .space 0x4 .global data_ov38_021892ac data_ov38_021892ac: .space 0x4 .global data_ov38_021892b0 data_ov38_021892b0: .space 0x4 .global data_ov38_021892b4 data_ov38_021892b4: .space 0x4 .global data_ov38_021892b8 data_ov38_021892b8: .space 0x4 .global data_ov38_021892bc data_ov38_021892bc: .space 0x4 .global data_ov38_021892c0 data_ov38_021892c0: .space 0x4 .global data_ov38_021892c4 data_ov38_021892c4: .space 0x4 .global data_ov38_021892c8 data_ov38_021892c8: .space 0x4 .global data_ov38_021892cc data_ov38_021892cc: .space 0x4 .global data_ov38_021892d0 data_ov38_021892d0: .space 0x4 .global data_ov38_021892d4 data_ov38_021892d4: .space 0x4 .global data_ov38_021892d8 data_ov38_021892d8: .space 0x4 .global data_ov38_021892dc data_ov38_021892dc: .space 0x4 .global data_ov38_021892e0 data_ov38_021892e0: .space 0x4 .global data_ov38_021892e4 data_ov38_021892e4: .space 0x4 .global data_ov38_021892e8 data_ov38_021892e8: .space 0x4 .global data_ov38_021892ec data_ov38_021892ec: .space 0x4 .global data_ov38_021892f0 data_ov38_021892f0: .space 0x4 .global data_ov38_021892f4 data_ov38_021892f4: .space 0x4 .global data_ov38_021892f8 data_ov38_021892f8: .space 0x4 .global data_ov38_021892fc data_ov38_021892fc: .space 0x4 .global data_ov38_02189300 data_ov38_02189300: .space 0x4 .global data_ov38_02189304 data_ov38_02189304: .space 0x4 .global data_ov38_02189308 data_ov38_02189308: .space 0x4 .global data_ov38_0218930c data_ov38_0218930c: .space 0x4 .global data_ov38_02189310 data_ov38_02189310: .space 0x4 .global data_ov38_02189314 data_ov38_02189314: .space 0x4 .global data_ov38_02189318 data_ov38_02189318: .space 0x4 .global data_ov38_0218931c data_ov38_0218931c: .space 0x4 .global data_ov38_02189320 data_ov38_02189320: .space 0x4 .global data_ov38_02189324 data_ov38_02189324: .space 0x4 .global data_ov38_02189328 data_ov38_02189328: .space 0x4 .global data_ov38_0218932c data_ov38_0218932c: .space 0x4 .global data_ov38_02189330 data_ov38_02189330: .space 0x4 .global data_ov38_02189334 data_ov38_02189334: .space 0x4 .global data_ov38_02189338 data_ov38_02189338: .space 0x4 .global data_ov38_0218933c data_ov38_0218933c: .space 0x4 .global data_ov38_02189340 data_ov38_02189340: .space 0x4 .global data_ov38_02189344 data_ov38_02189344: .space 0x4 .global data_ov38_02189348 data_ov38_02189348: .space 0x4 .global data_ov38_0218934c data_ov38_0218934c: .space 0x4 .global data_ov38_02189350 data_ov38_02189350: .space 0x4 .global data_ov38_02189354 data_ov38_02189354: .space 0x4 .global data_ov38_02189358 data_ov38_02189358: .space 0x1 .global data_ov38_02189359 data_ov38_02189359: .space 0x1 .global data_ov38_0218935a data_ov38_0218935a: .space 0x1 .global data_ov38_0218935b data_ov38_0218935b: .space 0x1 .global data_ov38_0218935c data_ov38_0218935c: .space 0x4 .global data_ov38_02189360 data_ov38_02189360: .space 0x4 .global data_ov38_02189364 data_ov38_02189364: .space 0x4 .global data_ov38_02189368 data_ov38_02189368: .space 0x4 .global data_ov38_0218936c data_ov38_0218936c: .space 0x4 .global data_ov38_02189370 data_ov38_02189370: .space 0x4 .global data_ov38_02189374 data_ov38_02189374: .space 0x4 .global data_ov38_02189378 data_ov38_02189378: .space 0x4 .global data_ov38_0218937c data_ov38_0218937c: .space 0x4 .global data_ov38_02189380 data_ov38_02189380: .space 0x4 .global data_ov38_02189384 data_ov38_02189384: .space 0x4 .global data_ov38_02189388 data_ov38_02189388: .space 0x4 .global data_ov38_0218938c data_ov38_0218938c: .space 0x4 .global data_ov38_02189390 data_ov38_02189390: .space 0x4 .global data_ov38_02189394 data_ov38_02189394: .space 0x4 .global data_ov38_02189398 data_ov38_02189398: .space 0x4 .global data_ov38_0218939c data_ov38_0218939c: .space 0x4 .global data_ov38_021893a0 data_ov38_021893a0: .space 0x4 .global data_ov38_021893a4 data_ov38_021893a4: .space 0x4 .global data_ov38_021893a8 data_ov38_021893a8: .space 0x4 .global data_ov38_021893ac data_ov38_021893ac: .space 0x4 .global data_ov38_021893b0 data_ov38_021893b0: .space 0x4 .global data_ov38_021893b4 data_ov38_021893b4: .space 0x4 .global data_ov38_021893b8 data_ov38_021893b8: .space 0x4 .global data_ov38_021893bc data_ov38_021893bc: .space 0x4 .global data_ov38_021893c0 data_ov38_021893c0: .space 0x1 .global data_ov38_021893c1 data_ov38_021893c1: .space 0x1 .global data_ov38_021893c2 data_ov38_021893c2: .space 0x1 .global data_ov38_021893c3 data_ov38_021893c3: .space 0x1 .global data_ov38_021893c4 data_ov38_021893c4: .space 0x4 .global data_ov38_021893c8 data_ov38_021893c8: .space 0x4 .global data_ov38_021893cc data_ov38_021893cc: .space 0x4 .global data_ov38_021893d0 data_ov38_021893d0: .space 0x4 .global data_ov38_021893d4 data_ov38_021893d4: .space 0x4 .global data_ov38_021893d8 data_ov38_021893d8: .space 0x4 .global data_ov38_021893dc data_ov38_021893dc: .space 0x4 .global data_ov38_021893e0 data_ov38_021893e0: .space 0x4 .global data_ov38_021893e4 data_ov38_021893e4: .space 0x4 .global data_ov38_021893e8 data_ov38_021893e8: .space 0x4 .global data_ov38_021893ec data_ov38_021893ec: .space 0x4 .global data_ov38_021893f0 data_ov38_021893f0: .space 0x4 .global data_ov38_021893f4 data_ov38_021893f4: .space 0x4 .global data_ov38_021893f8 data_ov38_021893f8: .space 0x4 .global data_ov38_021893fc data_ov38_021893fc: .space 0x4 .global data_ov38_02189400 data_ov38_02189400: .space 0x4 .global data_ov38_02189404 data_ov38_02189404: .space 0x4 .global data_ov38_02189408 data_ov38_02189408: .space 0x4 .global data_ov38_0218940c data_ov38_0218940c: .space 0x4 .global data_ov38_02189410 data_ov38_02189410: .space 0x4 .global data_ov38_02189414 data_ov38_02189414: .space 0x4 .global data_ov38_02189418 data_ov38_02189418: .space 0x4 .global data_ov38_0218941c data_ov38_0218941c: .space 0x4 .global data_ov38_02189420 data_ov38_02189420: .space 0x4 .global data_ov38_02189424 data_ov38_02189424: .space 0x4 .global data_ov38_02189428 data_ov38_02189428: .space 0x4 .global data_ov38_0218942c data_ov38_0218942c: .space 0x4 .global data_ov38_02189430 data_ov38_02189430: .space 0x4 .global data_ov38_02189434 data_ov38_02189434: .space 0x4 .global data_ov38_02189438 data_ov38_02189438: .space 0x4 .global data_ov38_0218943c data_ov38_0218943c: .space 0x4 .global data_ov38_02189440 data_ov38_02189440: .space 0x4 .global data_ov38_02189444 data_ov38_02189444: .space 0x4 .global data_ov38_02189448 data_ov38_02189448: .space 0x4 .global data_ov38_0218944c data_ov38_0218944c: .space 0x4 .global data_ov38_02189450 data_ov38_02189450: .space 0x4 .global data_ov38_02189454 data_ov38_02189454: .space 0x4 .global data_ov38_02189458 data_ov38_02189458: .space 0x2 .global data_ov38_0218945a data_ov38_0218945a: .space 0x2 .global data_ov38_0218945c data_ov38_0218945c: .space 0x4 .global data_ov38_02189460 data_ov38_02189460: .space 0x4 .global data_ov38_02189464 data_ov38_02189464: .space 0x4 .global data_ov38_02189468 data_ov38_02189468: .space 0x4 .global data_ov38_0218946c data_ov38_0218946c: .space 0x4 .global data_ov38_02189470 data_ov38_02189470: .space 0x4 .global data_ov38_02189474 data_ov38_02189474: .space 0x4 .global data_ov38_02189478 data_ov38_02189478: .space 0x4 .global data_ov38_0218947c data_ov38_0218947c: .space 0x4 .global data_ov38_02189480 data_ov38_02189480: .space 0x4 .global data_ov38_02189484 data_ov38_02189484: .space 0x4 .global data_ov38_02189488 data_ov38_02189488: .space 0x4 .global data_ov38_0218948c data_ov38_0218948c: .space 0x4 .global data_ov38_02189490 data_ov38_02189490: .space 0x4 .global data_ov38_02189494 data_ov38_02189494: .space 0x4 .global data_ov38_02189498 data_ov38_02189498: .space 0x4 .global data_ov38_0218949c data_ov38_0218949c: .space 0x4