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