.include "macros/function.inc" .include "global.inc" .text .global func_ov58_02198d00 arm_func_start func_ov58_02198d00 func_ov58_02198d00: ; 0x02198d00 stmdb sp!, {r3, r4, r5, r6, lr} sub sp, sp, #0x6c mov r4, r1 ldr r1, [r4, #4] mov r5, r0 str r1, [sp, #0x14] ldr r0, [r4, #8] ldr r1, _02198ee4 ; =func_ov58_02198ef4 str r0, [sp, #0x18] ldr r2, [r4, #0xc] ldr r3, _02198ee8 ; =func_ov58_02198ef8 str r2, [sp, #0x1c] str r1, [sp] add r0, sp, #0x38 mov r1, #3 mov r2, #0x10 bl func_0204f614 ldr r1, _02198eec ; =data_027e0f6c ldrh r2, [r4] mov r0, #0x4c ldr r3, [r1] mul r1, r2, r0 ldr r2, [r3, #0x20] add r0, sp, #8 add lr, r2, r1 ldrh r3, [r2, r1] ldrh r2, [lr, #2] mov r1, r0 strh r3, [sp, #0x20] strh r2, [sp, #0x22] ldrh r2, [lr, #4] strh r2, [sp, #0x24] ldrh r2, [lr, #6] strh r2, [sp, #0x26] ldr ip, [lr, #8] str ip, [sp, #0x28] ldr r3, [lr, #0xc] str r3, [sp, #0x2c] ldr r2, [lr, #0x10] str r2, [sp, #0x30] ldr r6, [lr, #0x14] str r6, [sp, #0x34] ldr r6, [lr, #0x18] str r6, [sp, #0x38] ldr r6, [lr, #0x1c] str r6, [sp, #0x3c] ldr r6, [lr, #0x20] str r6, [sp, #0x40] ldr r6, [lr, #0x24] str r6, [sp, #0x44] ldr r6, [lr, #0x28] str r6, [sp, #0x48] ldr r6, [lr, #0x2c] str r6, [sp, #0x4c] ldr r6, [lr, #0x30] str r6, [sp, #0x50] ldr r6, [lr, #0x34] str r6, [sp, #0x54] ldr r6, [lr, #0x38] str r6, [sp, #0x58] ldr r6, [lr, #0x3c] str r6, [sp, #0x5c] ldr r6, [lr, #0x40] str r6, [sp, #0x60] ldr r6, [lr, #0x44] str r6, [sp, #0x64] ldr lr, [lr, #0x48] str lr, [sp, #0x68] str ip, [sp, #8] str r3, [sp, #0xc] str r2, [sp, #0x10] bl func_01ff9d4c mov r1, #0x400 add r0, sp, #8 rsb r1, r1, #0 bl func_01fffbec add r0, sp, #0x14 add r1, sp, #8 mov r2, r0 bl func_01ff9bc4 ldr r1, _02198ef0 ; =data_027e0e60 add r0, sp, #4 ldr r6, [r1] add r2, sp, #0x14 mov r1, r6 bl func_ov00_02083a1c add r1, sp, #4 mov r0, r6 bl func_ov00_020840dc cmp r0, #0x46 bne _02198eb4 ldr r0, _02198ef0 ; =data_027e0e60 add r1, sp, #0x14 ldr r0, [r0] mov r2, #0 bl func_ov00_02083f44 ldr r1, [sp, #0x18] add r1, r1, #0xff add r1, r1, #0x1700 cmp r0, r1 bgt _02198eb4 ldr r3, _02198ee4 ; =func_ov58_02198ef4 add r0, sp, #0x38 mov r1, #3 mov r2, #0x10 bl func_0204f754 add sp, sp, #0x6c mov r0, #0 ldmia sp!, {r3, r4, r5, r6, pc} _02198eb4: mov r0, r5 mov r1, r4 bl func_ov14_02124034 mov r4, r0 ldr r3, _02198ee4 ; =func_ov58_02198ef4 add r0, sp, #0x38 mov r1, #3 mov r2, #0x10 bl func_0204f754 mov r0, r4 add sp, sp, #0x6c ldmia sp!, {r3, r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov58_02198d00 _02198ee4: .word func_ov58_02198ef4 _02198ee8: .word func_ov58_02198ef8 _02198eec: .word data_027e0f6c _02198ef0: .word data_027e0e60 .global func_ov58_02198ef4 arm_func_start func_ov58_02198ef4 func_ov58_02198ef4: ; 0x02198ef4 bx lr arm_func_end func_ov58_02198ef4 .global func_ov58_02198ef8 arm_func_start func_ov58_02198ef8 func_ov58_02198ef8: ; 0x02198ef8 bx lr arm_func_end func_ov58_02198ef8 .global func_ov58_02198efc arm_func_start func_ov58_02198efc func_ov58_02198efc: ; 0x02198efc stmdb sp!, {r4, lr} sub sp, sp, #0x18 ldr r1, _02198f6c ; =data_027e0fe4 mov r4, r0 ldr r0, [r1] mov r1, r2 bl func_ov00_020c35d8 cmp r0, #0 beq _02198f60 ldr r2, [r0, #4] ldr r1, _02198f70 ; =0x50574253 cmp r2, r1 bne _02198f60 mov r1, #1 add r3, sp, #0xc strb r1, [r4, #0x11] add r0, r0, #0x820 ldmia r0, {r0, r1, r2} stmia r3, {r0, r1, r2} ldr r0, [sp, #0xc] str r0, [r4, #0x14] ldr r0, [sp, #0x10] str r0, [r4, #0x18] ldr r0, [sp, #0x14] str r0, [r4, #0x1c] _02198f60: mov r0, #1 add sp, sp, #0x18 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov58_02198efc _02198f6c: .word data_027e0fe4 _02198f70: .word 0x50574253 .global func_ov58_02198f74 arm_func_start func_ov58_02198f74 func_ov58_02198f74: ; 0x02198f74 stmdb sp!, {r4, lr} mov r4, r1 mov r0, r4 ldr r1, [r0] ldr r1, [r1, #0x58] blx r1 cmp r0, #0 moveq r0, #0 ldmeqia sp!, {r4, pc} ldr r0, [r4, #4] tst r0, #0x800 moveq r0, #0 ldmeqia sp!, {r4, pc} ldr r0, _02198fbc ; =data_ov58_0219afc0 mov r1, #1 strb r1, [r0, #0x140] mov r0, #0 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov58_02198f74 _02198fbc: .word data_ov58_0219afc0 .global func_ov58_02198fc0 thumb_func_start func_ov58_02198fc0 func_ov58_02198fc0: ; 0x02198fc0 push {r3, lr} ldr r0, _02199020 ; =data_027e0fb4 mov r1, #9 ldr r0, [r0] blx func_ov00_020ad52c add r1, r0, #0 ldr r0, _02199024 ; =data_ov58_0219afcc blx func_ov00_020a9614 ldr r0, _02199020 ; =data_027e0fb4 mov r1, #0xf ldr r0, [r0] blx func_ov00_020ad52c add r1, r0, #0 ldr r0, _02199028 ; =data_ov58_0219b034 blx func_ov00_020a9614 ldr r0, _02199020 ; =data_027e0fb4 mov r1, #0xf ldr r0, [r0] blx func_ov00_020ad52c ldr r1, _0219902c ; =data_ov58_0219b040 str r0, [r1, #0x68] ldr r0, _02199020 ; =data_027e0fb4 ldr r1, _02199030 ; =data_ov58_0219ad68 ldr r0, [r0] blx func_ov00_020ad538 add r1, r0, #0 ldr r0, _02199034 ; =data_ov58_0219b0a0 blx func_ov00_020c0c44 ldr r0, _02199034 ; =data_ov58_0219b0a0 mov r1, #0 blx func_ov00_020c0e5c ldr r0, _02199028 ; =data_ov58_0219b034 ldr r1, _02199034 ; =data_ov58_0219b0a0 blx func_ov00_020a97e0 ldr r0, _02199038 ; =data_ov58_0219b080 mov r1, #2 strh r1, [r0, #0x10] pop {r3, pc} nop thumb_func_end func_ov58_02198fc0 _02199020: .word data_027e0fb4 _02199024: .word data_ov58_0219afcc _02199028: .word data_ov58_0219b034 _0219902c: .word data_ov58_0219b040 _02199030: .word data_ov58_0219ad68 _02199034: .word data_ov58_0219b0a0 _02199038: .word data_ov58_0219b080 .global func_ov58_0219903c thumb_func_start func_ov58_0219903c func_ov58_0219903c: ; 0x0219903c push {r4, lr} ldr r2, [r0] mov r1, #1 ldr r2, [r2, #0x28] add r4, r0, #0 blx r2 mov r0, #0 mvn r0, r0 str r0, [r4, #0xc] str r0, [r4, #0x10] add r0, r4, #0 bl func_ov14_0213eda0 add r0, r4, #0 blx func_ov14_0213ec64 pop {r4, pc} .align 2, 0 thumb_func_end func_ov58_0219903c .global func_ov58_02199060 thumb_func_start func_ov58_02199060 func_ov58_02199060: ; 0x02199060 ldr r0, _02199068 ; =data_ov58_0219b080 mov r1, #2 strh r1, [r0, #0x10] bx lr .align 2, 0 thumb_func_end func_ov58_02199060 _02199068: .word data_ov58_0219b080 .global func_ov58_0219906c thumb_func_start func_ov58_0219906c func_ov58_0219906c: ; 0x0219906c push {r4, r5, lr} sub sp, #0xc add r5, r0, #0 mov r0, #0x44 ldrsh r0, [r5, r0] add r1, r0, #1 add r0, r5, #0 add r0, #0x44 strh r1, [r0] ldr r0, _02199158 ; =data_027e0fb8 ldr r0, [r0] blx func_ov00_020b11dc cmp r0, #0 bne _02199094 add r0, r5, #0 add r0, #0x47 ldrb r0, [r0] cmp r0, #0 bne _021990b6 _02199094: add r0, r5, #0 add r0, #0x48 ldrb r0, [r0] cmp r0, #0 bne _021990b6 ldr r0, [r5, #0x18] cmp r0, #0 ble _021990b6 ldr r0, _0219915c ; =data_027e103c mov r1, #1 ldr r0, [r0] blx func_ov05_0210418c add r0, r5, #0 mov r1, #1 add r0, #0x48 strb r1, [r0] _021990b6: ldr r0, [r5, #0x18] cmp r0, #0 ble _02199154 ldr r0, _02199160 ; =data_ov58_0219b0a0 blx func_ov00_020c0e04 ldr r0, _02199164 ; =data_027e077c ldr r0, [r0] cmp r0, #0xd bne _02199154 add r4, r5, #0 add r4, #0x2c ldmia r4!, {r0, r1} add r3, sp, #0 add r2, r3, #0 stmia r3!, {r0, r1} ldr r0, [r4] add r1, r5, #0 str r0, [r3] add r0, r2, #0 add r1, #0x20 blx func_01ff9bf8 add r0, sp, #0 blx func_01ff9cec add r4, r0, #0 ldr r0, _02199168 ; =0x00000333 cmp r4, r0 bge _02199100 ldr r0, [r5, #0x2c] str r0, [r5, #0x20] ldr r0, [r5, #0x30] str r0, [r5, #0x24] ldr r0, [r5, #0x34] str r0, [r5, #0x28] b _02199144 _02199100: add r0, sp, #0 blx func_01fffb4c cmp r0, #0 beq _02199138 mov r0, #1 lsl r0, r0, #0xc cmp r4, r0 ldr r1, _02199168 ; =0x00000333 bge _0219911c add r0, sp, #0 blx func_01fffbec b _0219912a _0219911c: add r0, r4, #0 blx func_0200388c add r1, r0, #0 add r0, sp, #0 blx func_01fffbec _0219912a: add r0, r5, #0 add r0, #0x20 add r1, sp, #0 add r2, r0, #0 blx func_01ff9bc4 b _02199144 _02199138: ldr r0, [r5, #0x2c] str r0, [r5, #0x20] ldr r0, [r5, #0x30] str r0, [r5, #0x24] ldr r0, [r5, #0x34] str r0, [r5, #0x28] _02199144: ldr r0, _0219916c ; =data_027e0fc8 add r5, #0x20 mov r2, #2 ldr r0, [r0] add r1, r5, #0 lsl r2, r2, #0xa blx func_ov00_020bb810 _02199154: add sp, #0xc pop {r4, r5, pc} .align 2, 0 thumb_func_end func_ov58_0219906c _02199158: .word data_027e0fb8 _0219915c: .word data_027e103c _02199160: .word data_ov58_0219b0a0 _02199164: .word data_027e077c _02199168: .word 0x00000333 _0219916c: .word data_027e0fc8 .global func_ov58_02199170 thumb_func_start func_ov58_02199170 func_ov58_02199170: ; 0x02199170 push {r3, r4, r5, lr} sub sp, #0x10 add r4, r1, #0 ldr r1, [r0] add r5, r0, #0 ldr r1, [r1, #0x24] blx r1 cmp r0, #0 beq _021991bc add r0, r5, #0 add r1, sp, #4 blx func_ov00_020be99c ldr r1, [sp, #8] ldr r0, _02199200 ; =0x00000b33 add r2, sp, #4 add r0, r1, r0 str r0, [sp, #8] mov r1, #4 ldrsh r1, [r5, r1] ldr r0, _02199204 ; =data_ov58_0219afcc blx func_ov00_020b413c ldr r0, [r5, #0x14] cmp r0, #1 bne _021991de ldr r0, [r5, #0x18] cmp r0, #0 ble _021991de add r2, r5, #0 ldr r0, _02199208 ; =data_ov00_020e9c88 ldr r3, _0219920c ; =func_ov58_02199220 add r1, r4, #0 add r2, #0x20 str r5, [sp] blx func_ov00_0207b89c b _021991de _021991bc: add r0, r5, #0 mov r1, #1 blx func_ov58_021992c4 cmp r0, #0 beq _021991d8 ldr r1, _02199210 ; =data_ov58_0219b080 mov r0, #0x10 ldrsh r0, [r1, r0] cmp r0, #0 ble _021991de sub r0, r0, #1 strh r0, [r1, #0x10] b _021991de _021991d8: ldr r0, _02199210 ; =data_ov58_0219b080 mov r1, #2 strh r1, [r0, #0x10] _021991de: add r0, r5, #0 add r0, #0x46 ldrb r0, [r0] cmp r0, #0 beq _021991fc ldr r0, _02199214 ; =data_027e077c ldr r0, [r0] cmp r0, #0xd bne _021991fc ldr r0, _02199218 ; =data_027e0de4 ldr r2, _0219921c ; =func_ov58_02199264 mov r1, #5 add r3, r5, #0 blx func_ov00_0207bb1c _021991fc: add sp, #0x10 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end func_ov58_02199170 _02199200: .word 0x00000b33 _02199204: .word data_ov58_0219afcc _02199208: .word data_ov00_020e9c88 _0219920c: .word func_ov58_02199220 + 1 _02199210: .word data_ov58_0219b080 _02199214: .word data_027e077c _02199218: .word data_027e0de4 _0219921c: .word func_ov58_02199264 + 1 .global func_ov58_02199220 thumb_func_start func_ov58_02199220 func_ov58_02199220: ; 0x02199220 ldr r3, _02199224 ; =func_ov58_02199228 bx r3 .align 2, 0 thumb_func_end func_ov58_02199220 _02199224: .word func_ov58_02199228 + 1 .global func_ov58_02199228 thumb_func_start func_ov58_02199228 func_ov58_02199228: ; 0x02199228 push {r3, r4, r5, lr} add r5, r0, #0 ldr r0, _0219925c ; =data_ov00_020e9360 mov r1, #2 blx func_ov00_02079e68 add r4, r0, #0 ldr r0, _02199260 ; =data_ov58_0219b034 blx func_ov00_020a960c add r1, r4, #0 blx func_020197bc ldr r0, _02199260 ; =data_ov58_0219b034 blx func_ov00_020a960c mov r1, #1 blx func_0201987c add r5, #0x20 ldr r0, _02199260 ; =data_ov58_0219b034 add r1, r5, #0 blx func_ov00_020a9740 pop {r3, r4, r5, pc} nop thumb_func_end func_ov58_02199228 _0219925c: .word data_ov00_020e9360 _02199260: .word data_ov58_0219b034 .global func_ov58_02199264 thumb_func_start func_ov58_02199264 func_ov58_02199264: ; 0x02199264 ldr r3, _02199268 ; =func_ov58_0219926c bx r3 .align 2, 0 thumb_func_end func_ov58_02199264 _02199268: .word func_ov58_0219926c + 1 .global func_ov58_0219926c thumb_func_start func_ov58_0219926c func_ov58_0219926c: ; 0x0219926c push {r3, r4, lr} sub sp, #4 mov r1, #0x44 ldrsh r1, [r0, r1] add r4, r0, #0 add r4, #0x38 str r1, [sp] ldmia r4!, {r1, r2, r3} blx func_ov00_020be9e4 add sp, #4 pop {r3, r4, pc} thumb_func_end func_ov58_0219926c .global func_ov58_02199284 arm_func_start func_ov58_02199284 func_ov58_02199284: ; 0x02199284 stmdb sp!, {r4, lr} mov r4, r1 bl func_ov58_021992c4 cmp r0, #0 moveq r0, #0 ldmeqia sp!, {r4, pc} cmp r4, #0 beq _021992b8 ldr r0, _021992c0 ; =data_ov58_0219afc0 ldrsh r0, [r0, #0xd0] cmp r0, #0 movgt r0, #0 ldmgtia sp!, {r4, pc} _021992b8: mov r0, #1 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov58_02199284 _021992c0: .word data_ov58_0219afc0 .global func_ov58_021992c4 arm_func_start func_ov58_021992c4 func_ov58_021992c4: ; 0x021992c4 stmdb sp!, {r3, r4, r5, lr} ldr r2, _021993e8 ; =data_027e0e60 mov r5, r0 ldr r0, [r2] mov r4, r1 bl func_ov00_0208499c cmp r0, #0 beq _0219930c ldr r0, _021993ec ; =data_027e0c54 ldrb r0, [r0] cmp r0, #0 bne _0219930c ldr r0, _021993f0 ; =data_027e0d38 ldr r0, [r0] add r0, r0, #0xc bl func_ov00_020a5e9c cmp r0, #0x33 bne _02199314 _0219930c: mov r0, #0 ldmia sp!, {r3, r4, r5, pc} _02199314: ldr r0, _021993f4 ; =data_027e0fd4 ldr r0, [r0] ldrsh r0, [r0, #0x5a] cmp r0, #0 movne r0, #0 ldmneia sp!, {r3, r4, r5, pc} mov r0, r5 bl func_ov00_020beb30 cmp r0, #0 movle r0, #0 ldmleia sp!, {r3, r4, r5, pc} cmp r4, #0 beq _021993e0 ldr r0, _021993f8 ; =data_027e0fc8 ldr r0, [r0] bl func_ov00_020bba28 cmp r0, #0 moveq r0, #0 ldmeqia sp!, {r3, r4, r5, pc} ldr r0, _021993fc ; =data_027e077c ldr r0, [r0] cmp r0, #0xd bgt _02199394 cmp r0, #0xb blt _02199388 cmpne r0, #0xc cmpne r0, #0xd beq _021993ac b _021993d8 _02199388: cmp r0, #1 beq _021993ac b _021993d8 _02199394: cmp r0, #0x33 bgt _021993a4 beq _021993ac b _021993d8 _021993a4: cmp r0, #0x34 bne _021993d8 _021993ac: mov r0, r5 bl func_ov14_0213ed74 cmp r0, #0 beq _021993c8 bl func_ov14_0212505c cmp r0, #0 beq _021993d0 _021993c8: mov r0, #1 ldmia sp!, {r3, r4, r5, pc} _021993d0: mov r0, #0 ldmia sp!, {r3, r4, r5, pc} _021993d8: mov r0, #0 ldmia sp!, {r3, r4, r5, pc} _021993e0: mov r0, #1 ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov58_021992c4 _021993e8: .word data_027e0e60 _021993ec: .word data_027e0c54 _021993f0: .word data_027e0d38 _021993f4: .word data_027e0fd4 _021993f8: .word data_027e0fc8 _021993fc: .word data_027e077c .global func_ov58_02199400 thumb_func_start func_ov58_02199400 func_ov58_02199400: ; 0x02199400 push {r4, r5, lr} sub sp, #0x3c add r5, r0, #0 blx func_ov00_020beb30 cmp r0, #0 ble _02199414 ldr r0, [r5, #0x18] cmp r0, #0 bgt _0219941a _02199414: add sp, #0x3c mov r0, #0 pop {r4, r5, pc} _0219941a: add r0, r5, #0 blx func_ov00_020be990 add r3, r0, #0 ldmia r3!, {r0, r1} add r2, sp, #0x30 stmia r2!, {r0, r1} ldr r0, [r3] str r0, [r2] mov r0, #2 ldr r1, [sp, #0x34] lsl r0, r0, #0xa add r0, r1, r0 str r0, [sp, #0x34] add r0, sp, #4 blx func_ov00_020c1500 mov r0, #0 mvn r0, r0 str r0, [sp, #0x20] str r0, [sp, #0x24] add r0, sp, #4 blx func_ov00_020c3348 mov r0, #1 str r0, [sp, #0x20] mov r0, #4 ldrsh r1, [r5, r0] add r0, sp, #4 add r2, sp, #0x30 strh r1, [r0, #0x14] add r0, r5, #0 add r0, #0xc str r0, [sp] ldr r0, _02199490 ; =data_027e0fe8 ldr r1, _02199494 ; =0x424d5459 ldr r0, [r0] add r3, sp, #4 blx func_ov00_020c4048 add r0, r5, #0 blx func_ov14_0213ed74 add r4, r0, #0 beq _02199480 add r0, r5, #0 ldr r2, [r0] mov r1, #0 ldr r2, [r2, #0x20] mvn r1, r1 blx r2 _02199480: add r0, r5, #0 ldr r2, [r0] mov r1, #0 ldr r2, [r2, #0x28] blx r2 add r0, r4, #0 add sp, #0x3c pop {r4, r5, pc} .align 2, 0 thumb_func_end func_ov58_02199400 _02199490: .word data_027e0fe8 _02199494: .word 0x424d5459 .global func_ov58_02199498 thumb_func_start func_ov58_02199498 func_ov58_02199498: ; 0x02199498 push {r4, r5, r6, r7, lr} sub sp, #0x1fc sub sp, #0x38 add r5, r0, #0 add r4, r1, #0 mov r1, #0 ldr r0, _021997f0 ; =data_ov58_0219aec0 mvn r1, r1 str r1, [r0, #0x20] ldr r0, [r5, #0x18] cmp r0, #0x64 bge _021994ba add r0, r5, #0 add r0, #0x47 ldrb r0, [r0] cmp r0, #0 bne _021994c2 _021994ba: add sp, #0x1fc add sp, #0x38 mov r0, #0 pop {r4, r5, r6, r7, pc} _021994c2: ldr r0, _021997f4 ; =data_027e0e60 add r1, sp, #0x1bc ldr r0, [r0] blx func_ov00_0208346c ldr r0, [r4] add r1, sp, #0x128 str r0, [sp, #0x128] ldr r0, [r4, #4] str r0, [sp, #0x12c] ldr r0, [r4, #8] str r0, [sp, #0x130] add r0, sp, #0x1bc blx func_ov00_0208e72c cmp r0, #0 bne _021994e8 mov r0, #1 b _021994ea _021994e8: mov r0, #0 _021994ea: cmp r0, #0 beq _02199502 ldr r0, [r5, #0x18] cmp r0, #0 ble _021994fa mov r0, #0 add r5, #0x47 strb r0, [r5] _021994fa: add sp, #0x1fc add sp, #0x38 mov r0, #0 pop {r4, r5, r6, r7, pc} _02199502: ldr r1, _021997f4 ; =data_027e0e60 add r0, sp, #0x58 ldr r1, [r1] add r0, #2 add r2, r4, #0 blx func_ov00_02083a1c ldr r0, [r4] add r3, sp, #0x58 str r0, [sp, #0x1b0] ldr r0, [r4, #4] add r3, #2 str r0, [sp, #0x1b4] ldr r0, [r4, #8] mov r2, sp str r0, [sp, #0x1b8] ldr r0, _021997f4 ; =data_027e0e60 ldrb r6, [r3] ldr r0, [r0] sub r2, r2, #4 strb r6, [r2] ldrb r3, [r3, #1] add r1, sp, #0x1b0 strb r3, [r2, #1] ldr r2, [r2] blx func_ov00_02083c7c ldr r0, [r4, #4] str r0, [sp, #0x1b4] ldr r1, [r5, #0x18] cmp r1, #0 ble _021995c6 add r0, sp, #0x58 add r0, #2 ldrb r3, [r0] add r2, sp, #0x24 sub r1, r1, #1 strb r3, [r2, #0x1c] ldrb r0, [r0, #1] lsl r3, r1, #1 strb r0, [r2, #0x1d] ldr r0, [r5, #0x1c] add r1, r0, r3 ldrb r0, [r0, r3] strb r0, [r2, #6] ldrb r0, [r1, #1] strb r0, [r2, #7] ldrb r0, [r2, #6] strb r0, [r2, #0x1e] ldrb r0, [r2, #7] strb r0, [r2, #0x1f] ldrb r1, [r2, #0x1e] ldrb r0, [r2, #0x1c] cmp r1, r0 bne _02199580 ldrb r1, [r2, #0x1f] ldrb r0, [r2, #0x1d] cmp r1, r0 bne _02199580 add sp, #0x1fc add sp, #0x38 mov r0, #0 pop {r4, r5, r6, r7, pc} _02199580: ldr r0, _021997f4 ; =data_027e0e60 add r3, sp, #0x24 mov r2, sp ldrb r6, [r3, #6] ldr r0, [r0] sub r2, r2, #4 strb r6, [r2] ldrb r3, [r3, #7] add r1, sp, #0x1a4 strb r3, [r2, #1] ldr r2, [r2] blx func_ov00_02083c7c ldr r1, [r4] ldr r0, [sp, #0x1a4] sub r1, r1, r0 bpl _021995a4 neg r1, r1 _021995a4: mov r0, #1 lsl r0, r0, #0xc cmp r1, r0 bge _021995c6 ldr r1, [r4, #8] ldr r0, [sp, #0x1ac] sub r1, r1, r0 bpl _021995b6 neg r1, r1 _021995b6: mov r0, #1 lsl r0, r0, #0xc cmp r1, r0 bge _021995c6 add sp, #0x1fc add sp, #0x38 mov r0, #0 pop {r4, r5, r6, r7, pc} _021995c6: add r0, sp, #0x194 blx func_ov14_02124ff4 ldr r0, [r5, #0x18] cmp r0, #0 bgt _021995e2 ldr r1, _021997f8 ; =data_027e0f94 ldr r0, [r1] ldr r6, [r1, #4] str r0, [sp, #0x18] ldr r0, [r1, #8] str r6, [sp, #0x1b4] str r0, [sp, #0x14] b _02199606 _021995e2: ldr r0, [r5, #0x2c] ldr r6, [r5, #0x30] str r0, [sp, #0x18] ldr r0, [r5, #0x34] add r1, sp, #0x11c str r0, [sp, #0x14] ldr r0, [sp, #0x1b0] mov r2, #0 str r0, [sp, #0x11c] ldr r0, [sp, #0x1b4] str r0, [sp, #0x120] ldr r0, [sp, #0x1b8] str r0, [sp, #0x124] ldr r0, _021997f4 ; =data_027e0e60 ldr r0, [r0] blx func_ov00_02083ee0 str r0, [sp, #0x1b4] _02199606: ldr r1, [sp, #0x198] ldr r0, [sp, #0x1b4] add r6, r6, r1 add r1, r0, r1 ldr r0, [sp, #0x1b0] str r1, [sp, #0x1b4] str r0, [sp, #0x188] ldr r0, [sp, #0x1b8] str r1, [sp, #0x18c] str r0, [sp, #0x190] ldr r0, [sp, #0x18] add r1, sp, #0x110 str r0, [sp, #0x110] ldr r0, [sp, #0x14] str r6, [sp, #0x114] str r0, [sp, #0x118] add r0, sp, #0x188 add r2, r0, #0 blx func_01ff9bf8 ldr r7, [sp, #0x18c] mov r0, #0 str r0, [sp, #0x18c] add r0, sp, #0x188 blx func_01ff9cec str r0, [sp, #0x20] mov r0, #0 str r0, [sp, #0x1c] add r0, sp, #0x188 blx func_01fffb4c cmp r0, #0 bne _02199652 add sp, #0x1fc add sp, #0x38 mov r0, #0 pop {r4, r5, r6, r7, pc} _02199652: mov r1, #7 ldr r0, [sp, #0x20] lsl r1, r1, #0xc cmp r0, r1 ble _02199668 add r0, sp, #0x188 blx func_01fffbec mov r0, #1 str r0, [sp, #0x1c] b _0219968e _02199668: mov r1, #1 lsl r1, r1, #0xc cmp r0, r1 blt _0219968e ldr r0, [r5, #0x18] cmp r0, #0 ble _02199680 cmp r7, #0 bge _0219967c neg r7, r7 _0219967c: cmp r7, #0 ble _0219968e _02199680: mov r1, #1 add r0, sp, #0x188 lsl r1, r1, #0xc blx func_01fffbec mov r0, #1 str r0, [sp, #0x1c] _0219968e: ldr r0, [sp, #0x1c] cmp r0, #0 beq _02199708 ldr r1, [sp, #0x188] ldr r0, [sp, #0x18] add r2, sp, #0x1b0 add r0, r0, r1 str r0, [sp, #0x1b0] ldr r1, [sp, #0x190] ldr r0, [sp, #0x14] add r0, r0, r1 ldr r1, _021997f4 ; =data_027e0e60 str r0, [sp, #0x1b8] ldr r1, [r1] add r0, sp, #0x58 blx func_ov00_02083a1c add r0, sp, #0x58 ldrb r1, [r0] add r7, sp, #0x58 add r7, #2 strb r1, [r7] ldrb r0, [r0, #1] mov r3, sp sub r3, r3, #4 strb r0, [r7, #1] ldr r0, _021997f4 ; =data_027e0e60 ldrb r2, [r7] ldr r0, [r0] add r1, sp, #0x1b0 strb r2, [r3] ldrb r2, [r7, #1] strb r2, [r3, #1] ldr r2, [r3] blx func_ov00_02083c7c ldr r1, [sp, #0x1b4] ldr r0, _021997fc ; =0x00000999 mov r2, #0 add r1, r1, r0 ldr r0, [sp, #0x1b0] str r1, [sp, #0x1b4] str r0, [sp, #0x104] ldr r0, [sp, #0x1b8] str r1, [sp, #0x108] str r0, [sp, #0x10c] ldr r0, _021997f4 ; =data_027e0e60 add r1, sp, #0x104 ldr r0, [r0] blx func_ov00_02083ee0 ldr r1, [sp, #0x198] str r0, [sp, #0x1b4] add r0, r0, r1 str r0, [sp, #0x1b4] ldr r0, [sp, #0x1b0] str r0, [r4] ldr r0, [sp, #0x1b4] str r0, [r4, #4] ldr r0, [sp, #0x1b8] str r0, [r4, #8] _02199708: add r2, sp, #0x58 add r2, #2 ldrb r3, [r2] mov r1, sp sub r1, r1, #4 strb r3, [r1] ldrb r2, [r2, #1] add r0, r5, #0 strb r2, [r1, #1] ldr r1, [r1] blx func_ov58_0219a3b4 cmp r0, #0 beq _02199750 add r2, sp, #0x58 add r2, #2 ldrb r3, [r2] mov r1, sp sub r1, r1, #4 strb r3, [r1] ldrb r2, [r2, #1] add r0, r5, #0 strb r2, [r1, #1] ldr r1, [r1] blx func_ov58_02199ef0 ldr r1, [sp, #0x198] str r0, [sp, #0x1b4] add r0, r0, r1 str r0, [sp, #0x1b4] ldr r0, [sp, #0x1b0] str r0, [r4] ldr r0, [sp, #0x1b4] str r0, [r4, #4] ldr r0, [sp, #0x1b8] str r0, [r4, #8] _02199750: ldr r1, [r5, #0x18] cmp r1, #0 ble _021997ec sub r1, r1, #1 lsl r2, r1, #1 ldr r3, [r5, #0x1c] mov r1, sp add r7, r3, r2 ldrb r2, [r3, r2] sub r1, r1, #4 add r0, r5, #0 strb r2, [r1] ldrb r2, [r7, #1] strb r2, [r1, #1] ldr r1, [r1] blx func_ov58_0219a3b4 cmp r0, #0 beq _02199796 ldr r1, [r5, #0x18] ldr r2, [r5, #0x1c] sub r1, r1, #1 lsl r6, r1, #1 add r3, r2, r6 mov r1, sp ldrb r2, [r2, r6] sub r1, r1, #4 add r0, r5, #0 strb r2, [r1] ldrb r2, [r3, #1] strb r2, [r1, #1] ldr r1, [r1] blx func_ov58_02199ef0 add r6, r0, #0 _02199796: ldr r2, [r5, #0x18] ldr r0, _021997f4 ; =data_027e0e60 sub r2, r2, #1 ldr r1, [r5, #0x1c] lsl r2, r2, #1 ldr r0, [r0] add r1, r1, r2 blx func_ov00_02084088 cmp r0, #0x19 bne _021997ec ldr r1, [r5, #0x18] ldr r0, _021997f4 ; =data_027e0e60 sub r1, r1, #1 ldr r2, [r5, #0x1c] lsl r1, r1, #1 ldr r0, [r0] add r1, r2, r1 blx func_ov00_02083e58 ldr r1, [sp, #0x18] mov r2, #0 str r1, [sp, #0xf8] ldr r1, _02199800 ; =0x00001333 sub r0, r0, r1 str r0, [sp, #0xfc] ldr r0, [sp, #0x14] add r1, sp, #0xf8 str r0, [sp, #0x100] ldr r0, _021997f4 ; =data_027e0e60 ldr r0, [r0] blx func_ov00_02083ee0 add r6, r0, #0 ldr r0, [sp, #0x1b4] sub r1, r0, r6 ldr r0, _021997fc ; =0x00000999 cmp r1, r0 blt _021997ec add sp, #0x1fc add sp, #0x38 mov r0, #0 pop {r4, r5, r6, r7, pc} _021997ec: ldr r1, _02199804 ; =0x0000ffff b _02199808 .align 2, 0 thumb_func_end func_ov58_02199498 _021997f0: .word data_ov58_0219aec0 _021997f4: .word data_027e0e60 _021997f8: .word data_027e0f94 _021997fc: .word 0x00000999 _02199800: .word 0x00001333 _02199804: .word 0x0000ffff _02199808: add r0, sp, #0x1d4 strh r1, [r0, #0x24] strh r1, [r0, #0x26] strh r1, [r0, #0x28] strh r1, [r0, #0x2a] mov r1, #0 strh r1, [r0, #0x2c] add r0, sp, #0x214 strb r1, [r0, #0xe] strb r1, [r0, #0xf] strb r1, [r0, #0x10] strb r1, [r0, #0x11] strb r1, [r0, #0x18] strb r1, [r0, #0x19] strb r1, [r0, #0x1a] strb r1, [r0, #0x1b] strb r1, [r0, #0x1c] ldr r2, [sp, #0x1b4] strb r1, [r0, #0x1d] cmp r6, r2 bge _02199870 ldr r0, _02199b40 ; =0x00000999 sub r1, r2, r6 cmp r1, r0 bge _0219983e add r6, r2, #0 b _02199872 _0219983e: ldr r0, [sp, #0x18] add r1, sp, #0xec str r0, [sp, #0xec] ldr r0, [sp, #0x14] add r2, sp, #0x64 str r0, [sp, #0xf4] ldr r0, _02199b44 ; =data_027e0e60 add r3, sp, #0x17c ldr r0, [r0] str r6, [sp, #0xf0] blx func_ov00_02083f80 ldr r0, [sp, #0x17c] cmp r0, #0 bne _02199862 ldr r0, [sp, #0x184] cmp r0, #0 beq _02199872 _02199862: ldr r0, _02199b48 ; =0x0000099a ldr r1, [sp, #0x1b4] add r6, r6, r0 cmp r6, r1 blt _02199872 add r6, r1, #0 b _02199872 _02199870: str r6, [sp, #0x1b4] _02199872: ldr r0, _02199b4c ; =data_ov58_0219b100 mov r1, #0 strb r1, [r0] strb r1, [r0, #1] ldr r0, [sp, #0x1b0] str r6, [sp, #0xd8] str r0, [sp, #0xe0] ldr r0, [sp, #0x1b4] add r1, sp, #0x1d4 str r0, [sp, #0xe4] ldr r0, [sp, #0x1b8] add r2, sp, #0xe0 str r0, [sp, #0xe8] ldr r0, [sp, #0x18] add r3, sp, #0xd4 str r0, [sp, #0xd4] ldr r0, [sp, #0x14] str r0, [sp, #0xdc] add r0, sp, #0x194 str r0, [sp] mov r0, #9 str r0, [sp, #4] mov r0, #0xcf str r0, [sp, #8] ldr r0, _02199b50 ; =data_ov58_0219b0f0 str r0, [sp, #0xc] mov r0, #1 str r0, [sp, #0x10] ldr r0, _02199b44 ; =data_027e0e60 ldr r0, [r0] blx func_01ffbe78 ldr r1, _02199b4c ; =data_ov58_0219b100 ldrb r2, [r1] cmp r2, #0 beq _021998c2 add sp, #0x1fc add sp, #0x38 mov r0, #0 pop {r4, r5, r6, r7, pc} _021998c2: cmp r0, #0 bne _021998c8 b _02199cd0 _021998c8: ldrb r0, [r1, #1] cmp r0, #0 beq _02199928 ldr r0, _02199b54 ; =data_ov58_0219b0c0 add r2, sp, #0x1b0 ldr r1, [r0, #0x44] str r1, [sp, #0x1b0] ldr r1, [r0, #0x48] ldr r0, [r0, #0x4c] str r1, [sp, #0x1b4] str r0, [sp, #0x1b8] ldr r0, [r5, #0x24] ldr r1, _02199b44 ; =data_027e0e60 str r0, [sp, #0x1b4] add r0, sp, #0x54 ldr r1, [r1] add r0, #2 blx func_ov00_02083a1c add r1, sp, #0x54 add r1, #2 ldrb r2, [r1] add r0, sp, #0x58 add r0, #2 ldrb r1, [r1, #1] strb r2, [r0] strb r1, [r0, #1] ldr r0, [sp, #0x1b0] str r0, [r4] ldr r0, [sp, #0x1b4] str r0, [r4, #4] ldr r0, [sp, #0x1b8] str r0, [r4, #8] ldr r2, [sp, #0x1b4] ldr r1, [sp, #0x1b8] ldr r0, [sp, #0x1b0] str r0, [r5, #0x38] str r2, [r5, #0x3c] add r0, r5, #0 str r1, [r5, #0x40] mov r1, #0 add r0, #0x47 strb r1, [r0] add r0, r5, #0 mov r1, #1 add r0, #0x46 strb r1, [r0] b _02199d26 _02199928: add r0, sp, #0x214 ldrb r1, [r0, #0x18] cmp r1, #0 bne _02199932 b _02199c18 _02199932: ldr r0, [r5, #0x18] cmp r0, #0 bgt _02199940 add sp, #0x1fc add sp, #0x38 mov r0, #0 pop {r4, r5, r6, r7, pc} _02199940: ldr r0, [sp, #0x1d4] ldr r1, _02199b44 ; =data_027e0e60 str r0, [sp, #0x170] ldr r0, [sp, #0x1d8] ldr r1, [r1] str r0, [sp, #0x174] ldr r0, [sp, #0x1dc] add r2, sp, #0x170 str r0, [sp, #0x178] add r0, sp, #0x54 blx func_ov00_02083a1c add r0, sp, #0x54 ldrb r1, [r0] add r2, sp, #0x58 add r2, #2 strb r1, [r2] ldrb r0, [r0, #1] mov r1, sp sub r1, r1, #4 strb r0, [r2, #1] ldrb r3, [r2] add r0, r5, #0 strb r3, [r1] ldrb r2, [r2, #1] strb r2, [r1, #1] ldr r1, [r1] blx func_ov58_0219a3b4 cmp r0, #0 beq _02199986 add sp, #0x1fc add sp, #0x38 mov r0, #0 pop {r4, r5, r6, r7, pc} _02199986: add r7, sp, #0x58 ldr r0, _02199b44 ; =data_027e0e60 add r7, #2 mov r3, sp ldrb r2, [r7] ldr r0, [r0] sub r3, r3, #4 strb r2, [r3] ldrb r2, [r7, #1] add r1, sp, #0x170 strb r2, [r3, #1] ldr r2, [r3] blx func_ov00_02083c7c add r0, r7, #0 ldrb r2, [r0] add r1, sp, #0x24 strb r2, [r1, #0x18] ldrb r0, [r0, #1] strb r0, [r1, #0x19] ldr r2, [r5, #0x18] ldr r0, [r5, #0x1c] sub r2, r2, #1 lsl r3, r2, #1 add r2, r0, r3 ldrb r0, [r0, r3] strb r0, [r1, #0x1a] ldrb r0, [r2, #1] strb r0, [r1, #0x1b] ldrb r2, [r1, #0x1a] ldrb r0, [r1, #0x18] cmp r2, r0 bne _021999d0 ldrb r2, [r1, #0x1b] ldrb r0, [r1, #0x19] cmp r2, r0 beq _021999d2 _021999d0: b _02199bde _021999d2: ldr r0, [sp, #0x1d4] add r1, sp, #0xbc str r0, [sp, #0x164] ldr r0, [sp, #0x1d8] str r6, [sp, #0xc0] str r0, [sp, #0x168] ldr r0, [sp, #0x1dc] str r0, [sp, #0x16c] ldr r0, [sp, #0x18] str r0, [sp, #0xbc] ldr r0, [sp, #0x14] str r0, [sp, #0xc4] add r0, sp, #0x164 add r2, r0, #0 blx func_01ff9bf8 ldr r0, [sp, #0x16c] cmp r0, #0 bge _021999fa neg r0, r0 _021999fa: ldr r1, [sp, #0x164] cmp r1, #0 bge _02199a02 neg r1, r1 _02199a02: cmp r1, r0 ble _02199a0c mov r0, #0 str r0, [sp, #0x16c] b _02199a10 _02199a0c: mov r0, #0 str r0, [sp, #0x164] _02199a10: add r0, sp, #0x164 blx func_01fffb4c cmp r0, #0 beq _02199a30 ldr r0, [sp, #0x18] add r1, sp, #0x164 str r0, [sp, #0x170] ldr r0, [sp, #0x14] str r6, [sp, #0x174] str r0, [sp, #0x178] add r0, sp, #0x170 add r2, r0, #0 blx func_01ff9bc4 b _02199a38 _02199a30: add sp, #0x1fc add sp, #0x38 mov r0, #0 pop {r4, r5, r6, r7, pc} _02199a38: ldr r1, _02199b44 ; =data_027e0e60 add r0, sp, #0x50 ldr r1, [r1] add r0, #2 add r2, sp, #0x170 blx func_ov00_02083a1c add r0, sp, #0x50 add r0, #2 ldrb r1, [r0] add r2, sp, #0x58 add r2, #2 strb r1, [r2] ldrb r0, [r0, #1] mov r1, sp sub r1, r1, #4 strb r0, [r2, #1] ldrb r3, [r2] add r0, r5, #0 strb r3, [r1] ldrb r2, [r2, #1] strb r2, [r1, #1] ldr r1, [r1] blx func_ov58_0219a3b4 cmp r0, #0 beq _02199a76 add sp, #0x1fc add sp, #0x38 mov r0, #0 pop {r4, r5, r6, r7, pc} _02199a76: ldr r0, _02199b4c ; =data_ov58_0219b100 mov r1, #0 strb r1, [r0] strb r1, [r0, #1] ldr r0, [sp, #0x18] str r6, [sp, #0xb4] str r0, [sp, #0xb0] ldr r0, [sp, #0x14] add r1, sp, #0x1d4 str r0, [sp, #0xb8] add r0, sp, #0x194 str r0, [sp] mov r0, #9 str r0, [sp, #4] mov r0, #0xcf str r0, [sp, #8] ldr r0, _02199b50 ; =data_ov58_0219b0f0 add r2, sp, #0x170 str r0, [sp, #0xc] mov r0, #1 str r0, [sp, #0x10] ldr r0, _02199b44 ; =data_027e0e60 add r3, sp, #0xb0 ldr r0, [r0] blx func_01ffbe78 ldr r1, _02199b4c ; =data_ov58_0219b100 ldrb r1, [r1] cmp r1, #0 beq _02199aba add sp, #0x1fc add sp, #0x38 mov r0, #0 pop {r4, r5, r6, r7, pc} _02199aba: cmp r0, #0 bne _02199b30 ldr r1, _02199b44 ; =data_027e0e60 add r0, sp, #0x50 ldr r1, [r1] add r2, sp, #0x170 blx func_ov00_02083a1c add r1, sp, #0x50 ldrb r2, [r1] add r0, sp, #0x58 add r0, #2 ldrb r1, [r1, #1] strb r2, [r0] strb r1, [r0, #1] ldrb r2, [r0] add r1, sp, #0x24 strb r2, [r1, #4] ldrb r0, [r0, #1] strb r0, [r1, #5] ldrb r0, [r1, #4] strb r0, [r1, #0x14] ldrb r0, [r1, #5] strb r0, [r1, #0x15] ldr r2, [r5, #0x18] ldr r0, [r5, #0x1c] sub r2, r2, #1 lsl r3, r2, #1 add r2, r0, r3 ldrb r0, [r0, r3] strb r0, [r1, #0x16] ldrb r0, [r2, #1] strb r0, [r1, #0x17] ldrb r2, [r1, #0x16] ldrb r0, [r1, #0x14] cmp r2, r0 bne _02199b14 ldrb r2, [r1, #0x17] ldrb r0, [r1, #0x15] cmp r2, r0 bne _02199b14 add sp, #0x1fc add sp, #0x38 mov r0, #0 pop {r4, r5, r6, r7, pc} _02199b14: ldr r0, _02199b44 ; =data_027e0e60 add r7, sp, #0x24 mov r3, sp ldrb r2, [r7, #4] ldr r0, [r0] sub r3, r3, #4 strb r2, [r3] ldrb r2, [r7, #5] add r1, sp, #0x170 strb r2, [r3, #1] ldr r2, [r3] blx func_ov00_02083c7c b _02199bde _02199b30: add r0, sp, #0x214 ldrb r0, [r0, #0x18] cmp r0, #0 beq _02199bd6 ldr r0, [sp, #0x1d4] ldr r1, _02199b44 ; =data_027e0e60 b _02199b58 nop _02199b40: .word 0x00000999 _02199b44: .word data_027e0e60 _02199b48: .word 0x0000099a _02199b4c: .word data_ov58_0219b100 _02199b50: .word data_ov58_0219b0f0 _02199b54: .word data_ov58_0219b0c0 _02199b58: str r0, [sp, #0x170] ldr r0, [sp, #0x1d8] ldr r1, [r1] str r0, [sp, #0x174] ldr r0, [sp, #0x1dc] add r2, sp, #0x170 str r0, [sp, #0x178] add r0, sp, #0x4c add r0, #2 blx func_ov00_02083a1c add r1, sp, #0x4c add r1, #2 ldrb r2, [r1] add r0, sp, #0x58 add r0, #2 ldrb r1, [r1, #1] strb r2, [r0] strb r1, [r0, #1] ldrb r2, [r0] add r1, sp, #0x24 strb r2, [r1, #2] ldrb r0, [r0, #1] strb r0, [r1, #3] ldrb r0, [r1, #2] strb r0, [r1, #0x10] ldrb r0, [r1, #3] strb r0, [r1, #0x11] ldr r2, [r5, #0x18] ldr r0, [r5, #0x1c] sub r2, r2, #1 lsl r3, r2, #1 add r2, r0, r3 ldrb r0, [r0, r3] strb r0, [r1, #0x12] ldrb r0, [r2, #1] strb r0, [r1, #0x13] ldrb r2, [r1, #0x12] ldrb r0, [r1, #0x10] cmp r2, r0 bne _02199bba ldrb r2, [r1, #0x13] ldrb r0, [r1, #0x11] cmp r2, r0 bne _02199bba add sp, #0x1fc add sp, #0x38 mov r0, #0 pop {r4, r5, r6, r7, pc} _02199bba: ldr r0, _02199ee4 ; =data_027e0e60 add r7, sp, #0x24 mov r3, sp ldrb r2, [r7, #2] ldr r0, [r0] sub r3, r3, #4 strb r2, [r3] ldrb r2, [r7, #3] add r1, sp, #0x170 strb r2, [r3, #1] ldr r2, [r3] blx func_ov00_02083c7c b _02199bde _02199bd6: add sp, #0x1fc add sp, #0x38 mov r0, #0 pop {r4, r5, r6, r7, pc} _02199bde: ldr r0, [sp, #0x170] ldr r2, [sp, #0x178] ldr r3, [sp, #0x174] ldr r1, _02199ee8 ; =0x00000999 str r0, [sp, #0x1b0] str r0, [sp, #0xa4] ldr r0, _02199ee4 ; =data_027e0e60 add r1, r3, r1 str r3, [sp, #0x1b4] ldr r0, [r0] str r2, [sp, #0x1b8] str r2, [sp, #0xac] str r1, [sp, #0x1b4] str r1, [sp, #0xa8] add r1, sp, #0xa4 mov r2, #0 blx func_ov00_02083ee0 ldr r1, [sp, #0x198] str r0, [sp, #0x1b4] add r0, r0, r1 str r0, [sp, #0x1b4] ldr r0, [sp, #0x1b0] str r0, [r4] ldr r0, [sp, #0x1b4] str r0, [r4, #4] ldr r0, [sp, #0x1b8] str r0, [r4, #8] b _02199d26 _02199c18: ldrb r0, [r0, #0x19] cmp r0, #0 beq _02199cc8 ldr r0, [sp, #0x1d4] ldr r1, _02199ee4 ; =data_027e0e60 str r0, [sp, #0x158] ldr r0, [sp, #0x1d8] ldr r1, [r1] str r0, [sp, #0x15c] ldr r0, [sp, #0x1dc] add r2, sp, #0x158 str r0, [sp, #0x160] add r0, sp, #0x4c blx func_ov00_02083a1c add r1, sp, #0x4c ldrb r2, [r1] add r0, sp, #0x58 add r0, #2 ldrb r1, [r1, #1] strb r2, [r0] strb r1, [r0, #1] ldrb r2, [r0] add r1, sp, #0x24 strb r2, [r1] ldrb r0, [r0, #1] strb r0, [r1, #1] ldrb r0, [r1] strb r0, [r1, #0xc] ldrb r0, [r1, #1] strb r0, [r1, #0xd] ldr r2, [r5, #0x18] ldr r0, [r5, #0x1c] sub r2, r2, #1 lsl r3, r2, #1 add r2, r0, r3 ldrb r0, [r0, r3] strb r0, [r1, #0xe] ldrb r0, [r2, #1] strb r0, [r1, #0xf] ldrb r2, [r1, #0xe] ldrb r0, [r1, #0xc] cmp r2, r0 bne _02199c80 ldrb r2, [r1, #0xf] ldrb r0, [r1, #0xd] cmp r2, r0 bne _02199c80 add sp, #0x1fc add sp, #0x38 mov r0, #0 pop {r4, r5, r6, r7, pc} _02199c80: ldr r0, _02199ee4 ; =data_027e0e60 add r7, sp, #0x24 mov r3, sp ldrb r2, [r7] ldr r0, [r0] sub r3, r3, #4 strb r2, [r3] ldrb r2, [r7, #1] add r1, sp, #0x158 strb r2, [r3, #1] ldr r2, [r3] blx func_ov00_02083c7c ldr r0, [sp, #0x158] ldr r2, [sp, #0x160] ldr r3, [sp, #0x15c] ldr r1, _02199ee8 ; =0x00000999 str r0, [sp, #0x1b0] str r0, [sp, #0x98] ldr r0, _02199ee4 ; =data_027e0e60 add r1, r3, r1 str r3, [sp, #0x1b4] ldr r0, [r0] str r2, [sp, #0x1b8] str r2, [sp, #0xa0] str r1, [sp, #0x1b4] str r1, [sp, #0x9c] add r1, sp, #0x98 mov r2, #0 blx func_ov00_02083ee0 ldr r1, [sp, #0x198] str r0, [sp, #0x1b4] add r0, r0, r1 str r0, [sp, #0x1b4] b _02199d26 _02199cc8: add sp, #0x1fc add sp, #0x38 mov r0, #0 pop {r4, r5, r6, r7, pc} _02199cd0: ldr r0, _02199ee4 ; =data_027e0e60 add r2, sp, #0x1b0 ldr r7, [r0] add r0, sp, #0x48 add r0, #2 add r1, r7, #0 blx func_ov00_02083a1c add r1, sp, #0x48 add r0, r7, #0 add r1, #2 blx func_ov00_02084088 cmp r0, #0x19 bne _02199d0c ldr r0, _02199ee4 ; =data_027e0e60 add r2, sp, #0x1b0 ldr r7, [r0] add r0, sp, #0x48 add r1, r7, #0 blx func_ov00_02083a1c add r0, r7, #0 add r1, sp, #0x48 blx func_ov00_02083e58 ldr r1, _02199eec ; =0x00001333 str r0, [sp, #0x1b4] sub r0, r0, r1 str r0, [sp, #0x1b4] _02199d0c: ldr r0, [sp, #0x1b0] add r1, sp, #0x8c str r0, [sp, #0x8c] ldr r0, [sp, #0x1b4] mov r2, #0 str r0, [sp, #0x90] ldr r0, [sp, #0x1b8] str r0, [sp, #0x94] ldr r0, _02199ee4 ; =data_027e0e60 ldr r0, [r0] blx func_ov00_02083ee0 str r0, [sp, #0x1b4] _02199d26: ldr r0, [sp, #0x18] str r6, [sp, #0x150] str r0, [sp, #0x14c] ldr r0, [sp, #0x14] str r6, [sp, #0x144] str r0, [sp, #0x154] ldr r0, [sp, #0x18] mov r6, #1 str r0, [sp, #0x140] ldr r0, [sp, #0x14] add r7, sp, #0x14c str r0, [sp, #0x148] _02199d3e: mov r2, #1 add r0, r7, #0 add r1, sp, #0x1b0 lsl r2, r2, #0xc blx func_0202b2f8 cmp r0, #0 beq _02199d50 mov r6, #0 _02199d50: ldr r1, _02199ee4 ; =data_027e0e60 add r0, sp, #0x60 ldr r1, [r1] add r2, r7, #0 blx func_ov00_02083fb0 ldr r1, [sp, #0x60] ldr r0, [sp, #0x60] lsr r2, r1, #5 mov r1, #3 and r1, r2 cmp r1, #2 bne _02199dfc mov r1, #0x1f and r0, r1 cmp r0, #0xa beq _02199dfc ldr r2, [sp, #0x144] ldr r0, _02199ee8 ; =0x00000999 str r2, [sp, #0x1b4] add r0, r2, r0 ldr r1, [sp, #0x148] ldr r3, [sp, #0x140] str r0, [sp, #0x1b4] str r0, [sp, #0x84] ldr r0, _02199ee4 ; =data_027e0e60 str r1, [sp, #0x1b8] str r1, [sp, #0x88] ldr r0, [r0] add r1, sp, #0x80 mov r2, #0 str r3, [sp, #0x1b0] str r3, [sp, #0x80] blx func_ov00_02083ee0 ldr r1, [sp, #0x198] str r0, [sp, #0x1b4] add r0, r0, r1 str r0, [sp, #0x1b4] ldr r0, [sp, #0x1b0] ldr r1, _02199ee4 ; =data_027e0e60 str r0, [r4] ldr r0, [sp, #0x1b4] add r2, sp, #0x1b0 str r0, [r4, #4] ldr r0, [sp, #0x1b8] str r0, [r4, #8] add r0, sp, #0x44 ldr r1, [r1] add r0, #2 blx func_ov00_02083a1c add r0, sp, #0x44 add r0, #2 ldrb r2, [r0] add r1, sp, #0x58 add r1, #2 ldrb r0, [r0, #1] strb r2, [r1] strb r0, [r1, #1] ldrb r2, [r1] add r0, sp, #0x24 strb r2, [r0, #8] ldrb r1, [r1, #1] strb r1, [r0, #9] ldr r1, [r5, #0x18] ldr r3, [r5, #0x1c] sub r1, r1, #1 lsl r1, r1, #1 add r2, r3, r1 ldrb r1, [r3, r1] strb r1, [r0, #0xa] ldrb r1, [r2, #1] strb r1, [r0, #0xb] ldrb r2, [r0, #0xa] ldrb r1, [r0, #8] cmp r2, r1 bne _02199e0c ldrb r1, [r0, #0xb] ldrb r0, [r0, #9] cmp r1, r0 bne _02199e0c add sp, #0x1fc add sp, #0x38 mov r0, #0 pop {r4, r5, r6, r7, pc} _02199dfc: ldr r0, [sp, #0x14c] cmp r6, #0 str r0, [sp, #0x140] ldr r0, [sp, #0x150] str r0, [sp, #0x144] ldr r0, [sp, #0x154] str r0, [sp, #0x148] bne _02199d3e _02199e0c: add r1, sp, #0x58 add r1, #2 ldrb r2, [r1] mov r3, sp sub r3, r3, #4 strb r2, [r3] ldrb r1, [r1, #1] add r0, r5, #0 strb r1, [r3, #1] ldr r1, [r3] blx func_ov58_0219a3b4 cmp r0, #0 beq _02199e54 ldr r1, _02199ee4 ; =data_027e0e60 add r0, sp, #0x44 ldr r1, [r1] add r2, sp, #0x1b0 blx func_ov00_02083a1c add r1, sp, #0x44 mov r3, sp ldrb r2, [r1] sub r3, r3, #4 add r0, r5, #0 strb r2, [r3] ldrb r1, [r1, #1] strb r1, [r3, #1] ldr r1, [r3] blx func_ov58_02199ef0 ldr r1, [sp, #0x198] str r0, [sp, #0x1b4] add r0, r0, r1 str r0, [sp, #0x1b4] b _02199e8a _02199e54: ldr r0, [sp, #0x1b0] ldr r1, _02199ee4 ; =data_027e0e60 str r0, [sp, #0x74] ldr r0, [sp, #0x1b4] ldr r1, [r1] str r0, [sp, #0x78] ldr r0, [sp, #0x1b8] add r2, sp, #0x74 str r0, [sp, #0x7c] add r0, sp, #0x5c blx func_ov00_02083fb0 ldr r0, [sp, #0x5c] ldr r2, [sp, #0x5c] lsr r1, r0, #5 mov r0, #3 and r0, r1 cmp r0, #2 bne _02199e8a mov r0, #0x1f and r0, r2 cmp r0, #0xa beq _02199e8a add sp, #0x1fc add sp, #0x38 mov r0, #0 pop {r4, r5, r6, r7, pc} _02199e8a: ldr r0, [r5, #0x18] ldr r3, [r5, #0x1c] lsl r2, r0, #1 add r0, sp, #0x58 add r0, #2 ldrb r1, [r0] add r4, r3, r2 strb r1, [r3, r2] ldrb r0, [r0, #1] add r1, r5, #0 add r1, #0x20 strb r0, [r4, #1] ldr r0, [r5, #0x18] add r0, r0, #1 str r0, [r5, #0x18] ldr r0, [sp, #0x1b0] str r0, [sp, #0x134] ldr r0, [sp, #0x1b4] str r0, [sp, #0x138] ldr r0, [sp, #0x1b8] str r0, [sp, #0x13c] add r0, sp, #0x134 add r2, r0, #0 blx func_01ff9bf8 ldr r2, [sp, #0x1b4] ldr r1, [sp, #0x1b8] ldr r0, [sp, #0x1b0] str r0, [r5, #0x2c] str r2, [r5, #0x30] str r1, [r5, #0x34] ldr r0, [r5, #0x18] cmp r0, #1 bgt _02199eda ldr r0, [sp, #0x1b0] str r0, [r5, #0x20] ldr r0, [sp, #0x1b4] str r0, [r5, #0x24] ldr r0, [sp, #0x1b8] str r0, [r5, #0x28] _02199eda: mov r0, #1 str r0, [r5, #0x14] add sp, #0x1fc add sp, #0x38 pop {r4, r5, r6, r7, pc} .align 2, 0 _02199ee4: .word data_027e0e60 _02199ee8: .word 0x00000999 _02199eec: .word 0x00001333 .global func_ov58_02199ef0 arm_func_start func_ov58_02199ef0 func_ov58_02199ef0: ; 0x02199ef0 stmdb sp!, {r0, r1, r2, r3} stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0x24 ldr r0, _02199fd4 ; =data_027e0e60 ldrb r1, [sp, #0x4c] ldr r0, [r0] sub r3, sp, #4 strb r1, [r3] ldrb r2, [sp, #0x4d] add r1, sp, #0x18 strb r2, [r3, #1] ldr r2, [r3] bl func_ov00_02083c7c mov r8, #0 ldr r4, _02199fd4 ; =data_027e0e60 mov sb, r8 add r5, sp, #0xc mov r7, r8 mov fp, #0x400 add r6, sp, #0 _02199f40: mov r1, sb, lsl #0x10 mov r0, r6 mov r1, r1, asr #0x10 str r7, [sp] str r7, [sp, #4] str fp, [sp, #8] bl func_ov00_020a61ac ldr r1, [sp, #0x18] ldr r0, [sp, #0x1c] str r1, [sp, #0xc] ldr r1, [sp, #0x20] str r0, [sp, #0x10] str r1, [sp, #0x14] mov r0, r5 mov r1, r6 mov r2, r5 bl func_01ff9bc4 cmp r8, #0 ldr r0, [r4] mov r2, #0 mov r1, r5 bne _02199fa4 bl func_ov00_02083f44 mov sl, r0 b _02199fb0 _02199fa4: bl func_ov00_02083f44 cmp sl, r0 movle sl, r0 _02199fb0: add r8, r8, #1 cmp r8, #4 add sb, sb, #0x4000 blt _02199f40 mov r0, sl add sp, sp, #0x24 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} add sp, sp, #0x10 bx lr .align 2, 0 arm_func_end func_ov58_02199ef0 _02199fd4: .word data_027e0e60 .global func_ov58_02199fd8 arm_func_start func_ov58_02199fd8 func_ov58_02199fd8: ; 0x02199fd8 stmdb sp!, {r0, r1, r2, r3} stmdb sp!, {r3, lr} ldr r2, _0219a07c ; =data_ov58_0219aec0 mvn r1, #0 ldr lr, [r2, #0x20] cmp lr, r1 beq _0219a038 ldr r1, _0219a080 ; =data_ov58_0219afc0 ldrb ip, [sp, #0xc] ldrb r2, [r1, #0x150] ldrb r3, [sp, #0xd] ldrb r1, [r1, #0x151] strb r2, [sp, #2] cmp r2, ip strb r1, [sp, #3] andeq r2, r1, #0xff andeq r1, r3, #0xff cmpeq r2, r1 strb ip, [sp] strb r3, [sp, #1] moveq r0, lr ldmeqia sp!, {r3, lr} addeq sp, sp, #0x10 bxeq lr _0219a038: ldrb r2, [sp, #0xc] ldrb r1, [sp, #0xd] sub r3, sp, #4 strb r2, [r3] strb r1, [r3, #1] ldr r1, [r3] bl func_ov58_0219a084 ldr r2, _0219a07c ; =data_ov58_0219aec0 ldrb ip, [sp, #0xc] ldr r1, _0219a080 ; =data_ov58_0219afc0 ldrb r3, [sp, #0xd] str r0, [r2, #0x20] strb ip, [r1, #0x150] strb r3, [r1, #0x151] ldmia sp!, {r3, lr} add sp, sp, #0x10 bx lr .align 2, 0 arm_func_end func_ov58_02199fd8 _0219a07c: .word data_ov58_0219aec0 _0219a080: .word data_ov58_0219afc0 .global func_ov58_0219a084 arm_func_start func_ov58_0219a084 func_ov58_0219a084: ; 0x0219a084 stmdb sp!, {r0, r1, r2, r3} stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0xcc ldr r0, _0219a3a8 ; =data_027e0e60 ldrb r1, [sp, #0xf4] ldr r0, [r0] sub r3, sp, #4 strb r1, [r3] ldrb r2, [sp, #0xf5] add r1, sp, #0x30 strb r2, [r3, #1] ldr r2, [r3] bl func_ov00_02083c7c mov r8, #0 ldr r4, _0219a3a8 ; =data_027e0e60 add sl, sp, #0x3c mov sb, r8 mov r7, r8 mov r6, #0x400 add r5, sp, #0x24 mov fp, r8 _0219a0d8: mov r1, sb, lsl #0x10 mov r0, r5 mov r1, r1, asr #0x10 str r7, [sp, #0x24] str r7, [sp, #0x28] str r6, [sp, #0x2c] bl func_ov00_020a61ac ldr r1, [sp, #0x30] ldr r0, [sp, #0x34] str r1, [sl] ldr r2, [sp, #0x38] str r0, [sl, #4] mov r0, sl mov r1, r5 str r2, [sl, #8] mov r2, sl bl func_01ff9bc4 ldr r0, [r4] mov r1, sl mov r2, fp bl func_ov00_02083f44 str r0, [sl, #4] add sb, sb, #0x4000 add sl, sl, #0xc add r8, r8, #1 cmp r8, #4 blt _0219a0d8 ldr r3, [sp, #0x4c] ldr r2, [sp, #0x40] cmp r2, r3 ldreq r0, [sp, #0x58] cmpeq r2, r0 ldreq r0, [sp, #0x64] cmpeq r2, r0 bne _0219a308 ldr r0, _0219a3ac ; =0x0000ffff mov r2, #0 strh r0, [sp, #0x90] strh r0, [sp, #0x92] strh r0, [sp, #0x94] strh r0, [sp, #0x96] strh r2, [sp, #0x98] strb r2, [sp, #0xba] strb r2, [sp, #0xbb] strb r2, [sp, #0xbc] strb r2, [sp, #0xbd] strb r2, [sp, #0xc4] strb r2, [sp, #0xc5] strb r2, [sp, #0xc6] strb r2, [sp, #0xc7] strb r2, [sp, #0xc8] strb r2, [sp, #0xc9] mov r0, #0x200 str r0, [sp] mov r0, #9 str r0, [sp, #4] mov r1, #1 str r1, [sp, #8] ldr r0, _0219a3b0 ; =data_ov58_0219b0f0 add r1, sp, #0x6c str r0, [sp, #0xc] str r2, [sp, #0x10] ldr r0, _0219a3a8 ; =data_027e0e60 add r2, sp, #0x3c ldr r0, [r0] add r3, sp, #0x54 bl func_01ffbf5c cmp r0, #0 addne sp, sp, #0xcc movne r0, #7 ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} addne sp, sp, #0x10 bxne lr mov r0, #0x200 str r0, [sp] mov r0, #9 str r0, [sp, #4] mov r1, #1 str r1, [sp, #8] ldr r0, _0219a3b0 ; =data_ov58_0219b0f0 mov r1, #0 str r0, [sp, #0xc] str r1, [sp, #0x10] ldr r0, _0219a3a8 ; =data_027e0e60 add r1, sp, #0x6c ldr r0, [r0] add r2, sp, #0x48 add r3, sp, #0x60 bl func_01ffbf5c cmp r0, #0 addne sp, sp, #0xcc movne r0, #7 ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} addne sp, sp, #0x10 bxne lr mov r0, #0x200 str r0, [sp] mov r0, #9 str r0, [sp, #4] mov r1, #1 str r1, [sp, #8] ldr r0, _0219a3b0 ; =data_ov58_0219b0f0 mov r1, #0 str r0, [sp, #0xc] str r1, [sp, #0x10] ldr r0, _0219a3a8 ; =data_027e0e60 add r1, sp, #0x6c ldr r0, [r0] add r2, sp, #0x54 add r3, sp, #0x3c bl func_01ffbf5c cmp r0, #0 addne sp, sp, #0xcc movne r0, #7 ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} addne sp, sp, #0x10 bxne lr mov r0, #0x200 str r0, [sp] mov r0, #9 str r0, [sp, #4] mov r1, #1 str r1, [sp, #8] ldr r0, _0219a3b0 ; =data_ov58_0219b0f0 mov r1, #0 str r0, [sp, #0xc] str r1, [sp, #0x10] ldr r0, _0219a3a8 ; =data_027e0e60 add r1, sp, #0x6c ldr r0, [r0] add r2, sp, #0x60 add r3, sp, #0x48 bl func_01ffbf5c cmp r0, #0 movne r0, #7 add sp, sp, #0xcc moveq r0, #0 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} add sp, sp, #0x10 bx lr _0219a308: cmp r2, r3 ldreq r1, [sp, #0x58] ldreq r0, [sp, #0x64] cmpeq r1, r0 bne _0219a338 cmp r2, r1 movlt r0, #4 add sp, sp, #0xcc movge r0, #1 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} add sp, sp, #0x10 bx lr _0219a338: ldr r0, [sp, #0x64] cmp r2, r0 ldreq r0, [sp, #0x58] cmpeq r3, r0 bne _0219a368 cmp r2, r3 movlt r0, #3 add sp, sp, #0xcc movge r0, #2 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} add sp, sp, #0x10 bx lr _0219a368: ldr r0, _0219a3a8 ; =data_027e0e60 add r1, sp, #0x30 ldr r0, [r0] add r2, sp, #0x14 add r3, sp, #0x18 bl func_ov00_02083f80 ldr r0, [sp, #0x18] cmp r0, #0 ldreq r0, [sp, #0x20] cmpeq r0, #0 movne r0, #5 moveq r0, #7 add sp, sp, #0xcc ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} add sp, sp, #0x10 bx lr .align 2, 0 arm_func_end func_ov58_0219a084 _0219a3a8: .word data_027e0e60 _0219a3ac: .word 0x0000ffff _0219a3b0: .word data_ov58_0219b0f0 .global func_ov58_0219a3b4 arm_func_start func_ov58_0219a3b4 func_ov58_0219a3b4: ; 0x0219a3b4 stmdb sp!, {r0, r1, r2, r3} stmdb sp!, {r3, lr} ldrb r2, [sp, #0xc] ldrb r1, [sp, #0xd] sub r3, sp, #4 strb r2, [r3] strb r1, [r3, #1] ldr r1, [r3] bl func_ov58_02199fd8 cmp r0, #7 addls pc, pc, r0, lsl #2 b _0219a414 _0219a3e4: ; jump table b _0219a414 ; case 0 b _0219a404 ; case 1 b _0219a404 ; case 2 b _0219a404 ; case 3 b _0219a404 ; case 4 b _0219a414 ; case 5 b _0219a414 ; case 6 b _0219a404 ; case 7 _0219a404: mov r0, #1 ldmia sp!, {r3, lr} add sp, sp, #0x10 bx lr _0219a414: mov r0, #0 ldmia sp!, {r3, lr} add sp, sp, #0x10 bx lr arm_func_end func_ov58_0219a3b4 .global func_ov58_0219a424 arm_func_start func_ov58_0219a424 func_ov58_0219a424: ; 0x0219a424 stmdb sp!, {r4, lr} mov r4, r0 bl func_ov00_02081f4c mov r0, r4 bl func_0202ea0c mov r0, r4 ldmia sp!, {r4, pc} arm_func_end func_ov58_0219a424 .global func_ov58_0219a440 arm_func_start func_ov58_0219a440 func_ov58_0219a440: ; 0x0219a440 stmdb sp!, {r4, lr} mov r4, r0 bl func_ov00_02081f4c mov r0, r4 ldmia sp!, {r4, pc} arm_func_end func_ov58_0219a440 .global func_ov58_0219a454 arm_func_start func_ov58_0219a454 func_ov58_0219a454: ; 0x0219a454 stmdb sp!, {r3, lr} ldr r1, _0219a474 ; =data_ov58_0219af58 mov r2, #1 bl func_ov00_020a89bc ldr r0, _0219a478 ; =data_027e1098 ldr r0, [r0] blx func_ov58_0219acac ldmia sp!, {r3, pc} .align 2, 0 arm_func_end func_ov58_0219a454 _0219a474: .word data_ov58_0219af58 _0219a478: .word data_027e1098 .global func_ov58_0219a47c arm_func_start func_ov58_0219a47c func_ov58_0219a47c: ; 0x0219a47c stmdb sp!, {r3, r4, r5, r6, r7, lr} sub sp, sp, #0x10 ldr r1, _0219a5a8 ; =data_027e077c mov r5, r0 ldr r0, [r1] cmp r0, #0xd addne sp, sp, #0x10 ldmneia sp!, {r3, r4, r5, r6, r7, pc} ldr r0, _0219a5ac ; =data_027e103c ldr r0, [r0] bl func_ov00_020cf01c ldrb r0, [r0, #0xe0] cmp r0, #0 addeq sp, sp, #0x10 ldmeqia sp!, {r3, r4, r5, r6, r7, pc} mov r0, #0 strb r0, [r5, #0x24] bl func_ov58_0219a5b8 blx func_ov58_02199400 movs r4, r0 mov r0, r5 beq _0219a59c bl func_ov00_020a8cc4 ldr r1, [r4, #8] str r1, [r0] ldr r1, [r4, #0xc] str r1, [r0, #4] mov r0, r4 ldr r1, [r0] ldr r1, [r1, #0x58] blx r1 bl func_ov58_0219a5b8 mov r1, #0 bl func_ov14_0213ed94 ldrb r7, [r0] ldrb r6, [r0, #1] add r0, r4, #0x48 add lr, sp, #4 ldmia r0, {r0, r1, r2} stmia lr, {r0, r1, r2} ldr r3, _0219a5b0 ; =data_027e0e60 sub ip, sp, #4 ldr r0, [r3] mov r1, lr strb r7, [ip] strb r6, [ip, #1] ldr r2, [ip] strb r7, [sp] strb r6, [sp, #1] bl func_ov00_02083c7c bl func_020385b8 add r1, sp, #4 bl func_ov00_020ab8cc mov r0, r5 add r1, sp, #4 bl func_ov00_020a81ec ldr r0, _0219a5b4 ; =data_027e0fb8 mov r1, #0 ldr r2, [r0] mov r0, r5 strb r1, [r2, #0x79] strb r1, [r2, #0x7b] mov r1, #2 bl func_ov00_020a8138 mov r0, r5 bl func_ov00_020a8c78 ldrsh r0, [r0] strh r0, [r4, #0x78] bl func_ov58_0219a5b8 bl func_ov14_0213ec40 add sp, sp, #0x10 ldmia sp!, {r3, r4, r5, r6, r7, pc} _0219a59c: bl func_ov05_02105d94 add sp, sp, #0x10 ldmia sp!, {r3, r4, r5, r6, r7, pc} .align 2, 0 arm_func_end func_ov58_0219a47c _0219a5a8: .word data_027e077c _0219a5ac: .word data_027e103c _0219a5b0: .word data_027e0e60 _0219a5b4: .word data_027e0fb8 .global func_ov58_0219a5b8 arm_func_start func_ov58_0219a5b8 func_ov58_0219a5b8: ; 0x0219a5b8 ldr ip, _0219a5c4 ; =func_01fffcec mov r0, #7 bx ip .align 2, 0 arm_func_end func_ov58_0219a5b8 _0219a5c4: .word func_01fffcec .global func_ov58_0219a5c8 arm_func_start func_ov58_0219a5c8 func_ov58_0219a5c8: ; 0x0219a5c8 stmdb sp!, {r4, lr} sub sp, sp, #8 ldr r1, _0219a694 ; =data_027e0cbc mov r4, r0 ldr r0, [r1, #0x1c] mvn r1, #0 cmp r0, #3 addls pc, pc, r0, lsl #2 b _0219a618 _0219a5ec: ; jump table b _0219a5fc ; case 0 b _0219a604 ; case 1 b _0219a60c ; case 2 b _0219a614 ; case 3 _0219a5fc: mov r1, #0x22 b _0219a618 _0219a604: mov r1, #0x23 b _0219a618 _0219a60c: mov r1, #0x24 b _0219a618 _0219a614: mov r1, #0x25 _0219a618: add r0, r4, #4 mov r2, #0 blx func_ov00_0207c0ac ldrsh r1, [r4, #0xda] mov r3, #0 ldr r0, _0219a698 ; =data_027e0c38 strh r1, [r4, #0xd8] strb r3, [r4, #0xde] strb r3, [r4, #0xdf] strb r3, [r4, #0xe0] ldr r0, [r0, #0x10] mov r1, #3 cmp r0, #0 str r3, [sp] add r0, r4, #0x50 bne _0219a668 mov r2, #4 str r3, [sp, #4] bl func_020350b4 b _0219a674 _0219a668: mov r2, #5 str r3, [sp, #4] bl func_020350b4 _0219a674: mov r1, #0 mov r2, r1 mov r3, r1 add r0, r4, #0x50 str r1, [sp] bl func_020351b8 add sp, sp, #8 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov58_0219a5c8 _0219a694: .word data_027e0cbc _0219a698: .word data_027e0c38 .global func_ov58_0219a69c arm_func_start func_ov58_0219a69c func_ov58_0219a69c: ; 0x0219a69c stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} ldr r1, _0219a768 ; =data_027e077c mov sl, r0 ldr r0, [r1] mov sb, #0 cmp r0, #0xd bne _0219a760 mov r6, sb mov r8, sl add r7, sl, #8 mov fp, sb mov r4, #1 mov r5, sb _0219a6d0: mov r0, r7 ldr ip, [r0] mov r1, r5 ldr ip, [ip] mov r2, r5 mov r3, r5 blx ip tst r0, #8 beq _0219a74c cmp r6, #0 cmpne r6, #1 beq _0219a718 cmp r6, #2 bne _0219a724 ldrb r0, [sl, #0xdf] cmp r0, #0 beq _0219a724 b _0219a74c _0219a718: ldrb r0, [sl, #0xdf] cmp r0, #0 beq _0219a74c _0219a724: cmp sb, #0 bne _0219a740 ldrh r1, [r8, #0x12] mov r0, sl bl func_ov58_0219a76c cmp r0, #0 beq _0219a748 _0219a740: mov sb, r4 b _0219a74c _0219a748: mov sb, fp _0219a74c: add r6, r6, #1 cmp r6, #3 add r7, r7, #0x18 add r8, r8, #0x18 blt _0219a6d0 _0219a760: mov r0, sb ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 arm_func_end func_ov58_0219a69c _0219a768: .word data_027e077c .global func_ov58_0219a76c arm_func_start func_ov58_0219a76c func_ov58_0219a76c: ; 0x0219a76c stmdb sp!, {r4, lr} mov r4, r0 cmp r1, #0x40 beq _0219a790 cmp r1, #0x41 beq _0219a7b8 cmp r1, #0x42 beq _0219a7e0 b _0219a80c _0219a790: ldr r0, _0219a814 ; =data_ov00_020eec9c mov r1, #0x11 bl func_ov00_020d77e4 ldr r0, _0219a818 ; =data_027e0fb8 mov r1, #0 ldr r2, [r0] mov r0, #1 strb r1, [r2, #0x79] strb r1, [r2, #0x7b] ldmia sp!, {r4, pc} _0219a7b8: ldr r0, _0219a814 ; =data_ov00_020eec9c mov r1, #5 bl func_ov00_020d77e4 mov r1, #0 ldr r0, _0219a81c ; =data_027e1098 strb r1, [r4, #0xdf] ldr r0, [r0] blx func_ov58_0219ad34 mov r0, #1 ldmia sp!, {r4, pc} _0219a7e0: ldr r0, _0219a814 ; =data_ov00_020eec9c mov r1, #4 bl func_ov00_020d77e4 mov r1, #0 strb r1, [r4, #0xdf] mov r2, #1 add r0, r4, #4 strb r2, [r4, #0xe0] blx func_ov00_0207c0cc mov r0, #1 ldmia sp!, {r4, pc} _0219a80c: mov r0, #0 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov58_0219a76c _0219a814: .word data_ov00_020eec9c _0219a818: .word data_027e0fb8 _0219a81c: .word data_027e1098 .global func_ov58_0219a820 arm_func_start func_ov58_0219a820 func_ov58_0219a820: ; 0x0219a820 stmdb sp!, {r3, r4, lr} sub sp, sp, #0xc cmp r1, #0 mov r4, r0 addne sp, sp, #0xc ldmneia sp!, {r3, r4, pc} add r0, r4, #0x50 bl func_0203516c ldrb r0, [r4, #0xdf] cmp r0, #0 bne _0219a8f0 ldrb r1, [r4, #0xde] cmp r1, #0 ldreq r0, _0219a984 ; =data_027e077c ldreq r0, [r0] cmpeq r0, #0xd bne _0219a8d4 ldr r0, _0219a988 ; =data_027e0d78 ldrh r0, [r0, #0x34] tst r0, #1 beq _0219a8d4 mov r1, #0 str r1, [sp] ldr r0, _0219a98c ; =data_027e0d3c ldr r1, _0219a990 ; =data_027e0f94 ldr r0, [r0] add r2, sp, #8 add r3, sp, #4 bl func_ov00_0207914c ldr r0, _0219a988 ; =data_027e0d78 ldr r1, [sp, #8] ldr r0, [r0, #0x10] subs r0, r1, r0 rsbmi r0, r0, #0 cmp r0, #8 bgt _0219a8f0 ldr r0, _0219a988 ; =data_027e0d78 ldr r1, [sp, #4] ldr r0, [r0, #0x14] subs r0, r1, r0 rsbmi r0, r0, #0 cmp r0, #8 movle r0, #1 strleb r0, [r4, #0xde] b _0219a8f0 _0219a8d4: cmp r1, #0 beq _0219a8f0 ldr r0, _0219a988 ; =data_027e0d78 ldrb r0, [r0, #0xc] cmp r0, #0 moveq r0, #0 streqb r0, [r4, #0xde] _0219a8f0: ldr r0, _0219a984 ; =data_027e077c ldr r0, [r0] sub r0, r0, #0xb cmp r0, #4 addls pc, pc, r0, lsl #2 b _0219a97c _0219a908: ; jump table b _0219a91c ; case 0 b _0219a91c ; case 1 b _0219a92c ; case 2 b _0219a974 ; case 3 b _0219a974 ; case 4 _0219a91c: ldrsh r0, [r4, #0xda] add sp, sp, #0xc strh r0, [r4, #0xd8] ldmia sp!, {r3, r4, pc} _0219a92c: ldr r0, _0219a994 ; =data_027e0fb4 mov r1, #7 ldr r0, [r0] bl func_ov00_020ad714 ldr r0, [r0, #0x18] cmp r0, #0 bgt _0219a954 ldrb r0, [r4, #0xdf] cmp r0, #0 beq _0219a964 _0219a954: add r0, r4, #0xd8 bl func_ov00_020d0594 add sp, sp, #0xc ldmia sp!, {r3, r4, pc} _0219a964: add r0, r4, #0xd8 bl func_ov00_020d054c add sp, sp, #0xc ldmia sp!, {r3, r4, pc} _0219a974: add r0, r4, #0xd8 bl func_ov00_020d0594 _0219a97c: add sp, sp, #0xc ldmia sp!, {r3, r4, pc} .align 2, 0 arm_func_end func_ov58_0219a820 _0219a984: .word data_027e077c _0219a988: .word data_027e0d78 _0219a98c: .word data_027e0d3c _0219a990: .word data_027e0f94 _0219a994: .word data_027e0fb4 .global func_ov58_0219a998 arm_func_start func_ov58_0219a998 func_ov58_0219a998: ; 0x0219a998 stmdb sp!, {r4, r5, lr} sub sp, sp, #0x2c ldr r1, _0219aabc ; =data_027e0618 mov r4, r0 ldrb r0, [r1, #0x101] cmp r0, #0 addne sp, sp, #0x2c ldmneia sp!, {r4, r5, pc} ldr r0, _0219aac0 ; =data_027e077c ldr r5, [r0] cmp r5, #0xc cmpne r5, #0xd cmpne r5, #0xe addne sp, sp, #0x2c ldmneia sp!, {r4, r5, pc} mov r0, r4 bl func_ov58_0219aad0 mov r1, #0 mov r2, r0 mov r3, r1 str r1, [sp] add r0, r4, #0x38 bl func_ov00_020d00c4 ldrb r0, [r4, #0xdf] cmp r0, #0 beq _0219aa44 add r0, sp, #0xc bl func_01ffbe34 mov r1, #0 str r1, [sp, #0x10] add r3, sp, #0xc mov r2, r1 add r0, r4, #8 str r1, [sp] bl func_ov00_020d00c4 mov r1, #0 add r3, sp, #0xc mov r2, r1 add r0, r4, #0x20 str r1, [sp] bl func_ov00_020d00c4 add sp, sp, #0x2c ldmia sp!, {r4, r5, pc} _0219aa44: cmp r5, #0xd addne sp, sp, #0x2c ldmneia sp!, {r4, r5, pc} ldr r0, _0219aac4 ; =data_027e1098 ldrb r1, [r4, #0xde] ldr r0, [r0] cmp r1, #0 addne sp, sp, #0x2c ldrh r0, [r0, #0x34] ldmneia sp!, {r4, r5, pc} cmp r0, #0 addgt sp, sp, #0x2c ldmgtia sp!, {r4, r5, pc} mov r1, #0 str r1, [sp, #8] str r1, [sp, #4] str r1, [sp] ldr r0, _0219aac8 ; =data_027e0d3c ldr r1, _0219aacc ; =data_027e0f94 ldr r0, [r0] add r2, sp, #8 add r3, sp, #4 bl func_ov00_0207914c ldr r1, [sp, #8] ldr r2, [sp, #4] add r0, r4, #0x50 mov r3, #0 bl func_02034a1c add sp, sp, #0x2c ldmia sp!, {r4, r5, pc} .align 2, 0 arm_func_end func_ov58_0219a998 _0219aabc: .word data_027e0618 _0219aac0: .word data_027e077c _0219aac4: .word data_027e1098 _0219aac8: .word data_027e0d3c _0219aacc: .word data_027e0f94 .global func_ov58_0219aad0 arm_func_start func_ov58_0219aad0 func_ov58_0219aad0: ; 0x0219aad0 stmdb sp!, {r3, lr} ldrsh r3, [r0, #0xd8] ldrsh r2, [r0, #0xda] cmp r3, r2 moveq r2, #0 beq _0219ab10 ldrsh r1, [r0, #0xdc] cmp r3, r1 moveq r2, #0x1000 beq _0219ab10 sub r0, r3, r2 sub r1, r1, r2 mov r0, r0, lsl #0xc mov r1, r1, lsl #0xc bl func_01ff98e0 mov r2, r0 _0219ab10: mov r0, #0x20000 mov r1, #0 bl func_ov00_020d03f8 add r0, r0, #0x800 mov r0, r0, asr #0xc ldmia sp!, {r3, pc} arm_func_end func_ov58_0219aad0 .global func_ov58_0219ab28 thumb_func_start func_ov58_0219ab28 func_ov58_0219ab28: ; 0x0219ab28 push {r4, r5, r6, r7, lr} sub sp, #0x24 add r5, r0, #0 ldr r0, _0219ac94 ; =data_027e077c ldr r0, [r0] cmp r0, #0x33 bgt _0219ab50 bge _0219ab5a cmp r0, #0xe bgt _0219ab66 cmp r0, #0xc blt _0219ab66 beq _0219ab8c cmp r0, #0xd beq _0219abb0 cmp r0, #0xe bne _0219ab4c b _0219ac62 _0219ab4c: add sp, #0x24 pop {r4, r5, r6, r7, pc} _0219ab50: cmp r0, #0x34 bne _0219ab56 b _0219ac7a _0219ab56: add sp, #0x24 pop {r4, r5, r6, r7, pc} _0219ab5a: ldr r0, _0219ac98 ; =data_027e0d3c ldr r0, [r0] blx func_ov00_02078fd4 cmp r0, #0 beq _0219ab68 _0219ab66: b _0219ac8e _0219ab68: mov r0, #0x4a ldrsb r0, [r5, r0] cmp r0, #1 bgt _0219ab82 mov r0, #0 add r5, #0x4a strb r0, [r5] ldr r0, _0219ac94 ; =data_027e077c mov r1, #0xb blx func_0202e740 add sp, #0x24 pop {r4, r5, r6, r7, pc} _0219ab82: sub r0, r0, #1 add r5, #0x4a add sp, #0x24 strb r0, [r5] pop {r4, r5, r6, r7, pc} _0219ab8c: ldr r0, _0219ac98 ; =data_027e0d3c ldr r0, [r0] blx func_ov00_02078fd4 cmp r0, #0 bne _0219ac8e ldr r0, _0219ac98 ; =data_027e0d3c ldr r0, [r0] blx func_ov00_02078fac cmp r0, #1 bne _0219ac8e ldr r0, _0219ac94 ; =data_027e077c mov r1, #0xd blx func_0202e740 add sp, #0x24 pop {r4, r5, r6, r7, pc} _0219abb0: ldr r0, _0219ac9c ; =data_027e0d78 ldrb r0, [r0, #0xc] cmp r0, #0 beq _0219ac8e ldr r0, [r5, #0x38] add r0, #0xde ldrb r0, [r0] cmp r0, #0 beq _0219ac8e ldr r0, _0219aca0 ; =data_027e0fb4 ldr r0, [r0] ldr r1, [r0] cmp r1, #7 bne _0219ac8e ldr r1, _0219aca4 ; =data_027e103c ldr r2, [r1] mov r1, #0x1c ldrsh r1, [r2, r1] cmp r1, #0x40 beq _0219ac8e ldrh r2, [r5, #0x34] ldrh r1, [r5, #0x2c] cmp r2, r1 bhs _0219ac8e mov r1, #7 blx func_ov00_020ad714 add r4, r0, #0 beq _0219ac8e ldr r0, _0219ac9c ; =data_027e0d78 mov r3, #0x1e ldr r6, [r0, #0x10] ldr r7, [r0, #0x14] ldr r0, _0219aca8 ; =data_ov00_020ee6f8 add r1, r6, #0 add r2, r7, #0 blx func_ov00_020d61b0 add r0, sp, #0xc str r0, [sp] ldr r0, _0219ac98 ; =data_027e0d3c mov r1, #1 ldr r0, [r0] add r2, r6, #0 add r3, r7, #0 blx func_ov00_020792a0 ldr r0, [sp, #0xc] add r6, sp, #0x18 str r0, [sp, #0x18] ldr r0, [sp, #0x10] add r7, sp, #4 str r0, [sp, #0x1c] ldr r0, [sp, #0x14] str r0, [sp, #0x20] b _0219ac4a _0219ac20: mov r0, #0 mvn r0, r0 str r0, [sp, #4] str r0, [sp, #8] ldr r0, _0219ac98 ; =data_027e0d3c add r1, r6, #0 ldr r0, [r0] add r2, r7, #0 mov r3, #0 blx func_ov00_020791dc add r0, r5, #0 add r1, r7, #0 blx func_ov05_0210cc00 ldr r0, [sp, #0xc] str r0, [sp, #0x18] ldr r0, [sp, #0x10] str r0, [sp, #0x1c] ldr r0, [sp, #0x14] str r0, [sp, #0x20] _0219ac4a: ldrh r1, [r5, #0x34] ldrh r0, [r5, #0x2c] cmp r1, r0 bhs _0219ac8e add r0, r4, #0 add r1, r6, #0 bl func_ov58_02199498 cmp r0, #0 bne _0219ac20 add sp, #0x24 pop {r4, r5, r6, r7, pc} _0219ac62: ldr r0, _0219ac98 ; =data_027e0d3c ldr r0, [r0] blx func_ov00_02078fd4 cmp r0, #0 bne _0219ac8e ldr r0, _0219ac94 ; =data_027e077c mov r1, #0xf blx func_0202e740 add sp, #0x24 pop {r4, r5, r6, r7, pc} _0219ac7a: ldr r0, _0219ac98 ; =data_027e0d3c ldr r0, [r0] blx func_ov00_02078fd4 cmp r0, #0 bne _0219ac8e ldr r0, _0219ac94 ; =data_027e077c mov r1, #1 blx func_0202e740 _0219ac8e: add sp, #0x24 pop {r4, r5, r6, r7, pc} nop thumb_func_end func_ov58_0219ab28 _0219ac94: .word data_027e077c _0219ac98: .word data_027e0d3c _0219ac9c: .word data_027e0d78 _0219aca0: .word data_027e0fb4 _0219aca4: .word data_027e103c _0219aca8: .word data_ov00_020ee6f8 .global func_ov58_0219acac thumb_func_start func_ov58_0219acac func_ov58_0219acac: ; 0x0219acac push {r4, lr} add r4, r0, #0 ldr r0, _0219ad28 ; =data_027e0d3c ldr r0, [r0] blx func_ov00_02078fac cmp r0, #2 bne _0219acde ldr r0, _0219ad2c ; =data_027e0d38 ldr r0, [r0] add r0, #0xc blx func_ov00_020a5e9c cmp r0, #0x2e bne _0219acd4 add r0, r4, #0 mov r1, #0 add r0, #0x49 strb r1, [r0] b _0219ace6 _0219acd4: add r0, r4, #0 mov r1, #2 add r0, #0x49 strb r1, [r0] b _0219ace6 _0219acde: add r0, r4, #0 mov r1, #1 add r0, #0x49 strb r1, [r0] _0219ace6: add r0, r4, #0 mov r1, #0 add r0, #0x4a strb r1, [r0] ldr r0, _0219ad30 ; =data_027e077c ldr r0, [r0] cmp r0, #1 bne _0219ad12 add r0, r4, #0 add r0, #0x49 ldrb r0, [r0] cmp r0, #2 bne _0219ad04 mov r1, #0x33 b _0219ad06 _0219ad04: mov r1, #0xb _0219ad06: ldr r0, _0219ad30 ; =data_027e077c blx func_0202e740 add r0, r4, #0 blx func_ov00_02079b78 _0219ad12: ldr r2, [r4, #0x38] mov r1, #0 add r0, r2, #0 add r0, #0xde strb r1, [r0] add r0, r2, #0 add r0, #0xdf strb r1, [r0] add r2, #0xe0 strb r1, [r2] pop {r4, pc} .align 2, 0 thumb_func_end func_ov58_0219acac _0219ad28: .word data_027e0d3c _0219ad2c: .word data_027e0d38 _0219ad30: .word data_027e077c .global func_ov58_0219ad34 thumb_func_start func_ov58_0219ad34 func_ov58_0219ad34: ; 0x0219ad34 push {r4, lr} add r4, r0, #0 blx func_ov00_02079b78 add r0, r4, #0 mov r1, #0 add r0, #0x48 strb r1, [r0] mov r0, #1 lsl r0, r0, #0xc str r0, [r4, #0x3c] lsl r0, r0, #7 str r0, [r4, #0x40] mov r0, #6 lsl r0, r0, #0x10 str r0, [r4, #0x44] blx func_ov58_0219a5b8 bl func_ov14_0213eda0 blx func_ov58_0219a5b8 blx func_ov14_0213ec64 pop {r4, pc} .align 2, 0 thumb_func_end func_ov58_0219ad34 .balign 4, 0 .rodata .global data_ov58_0219ad68 data_ov58_0219ad68: ; 0x0219ad68 .ascii "bomchu_pt" .byte 0x00, 0x00, 0x00 .global data_ov58_0219ad74 data_ov58_0219ad74: ; 0x0219ad74 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov58_0219ad78 data_ov58_0219ad78: ; 0x0219ad78 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov58_0219ad7c data_ov58_0219ad7c: ; 0x0219ad7c .byte 0x64, 0x00, 0x00, 0x00 .section .init, 4, 1, 4 .global func_ov58_0219ad80 arm_func_start func_ov58_0219ad80 func_ov58_0219ad80: ; 0x0219ad80 stmdb sp!, {r3, lr} ldr r0, _0219ae3c ; =data_ov58_0219afcc mov r1, #0 blx func_ov00_020a9588 ldr r0, _0219ae3c ; =data_ov58_0219afcc ldr r1, _0219ae40 ; =0x020a95a5 ldr r2, _0219ae44 ; =data_ov58_0219afc0 bl func_0204f8d4 ldr r0, _0219ae48 ; =data_ov58_0219b034 mov r1, #0 blx func_ov00_020a9588 ldr r0, _0219ae48 ; =data_ov58_0219b034 ldr r1, _0219ae40 ; =0x020a95a5 ldr r2, _0219ae4c ; =data_ov58_0219b028 bl func_0204f8d4 ldr r0, _0219ae50 ; =data_ov58_0219b0a0 ldr r1, _0219ae54 ; =data_ov58_0219b0c4 mov r2, #0 blx func_ov00_020c0c08 ldr r2, _0219ae58 ; =data_ov58_0219af10 ldr r1, _0219ae5c ; =data_ov58_0219afc0 ldr r0, _0219ae50 ; =data_ov58_0219b0a0 str r2, [r1, #0xe0] ldr r1, _0219ae60 ; =0x020a9aad ldr r2, _0219ae64 ; =data_ov58_0219b094 bl func_0204f8d4 ldr r0, _0219ae68 ; =data_ov58_0219b0f0 mov r1, #3 bl func_ov00_020beba8 ldr r0, _0219ae6c ; =data_ov14_02155fb0 ldr r1, _0219ae5c ; =data_ov58_0219afc0 mov r3, #0 str r0, [r1, #0x130] str r3, [r1, #0x13c] ldr r2, _0219ae70 ; =data_ov58_0219aeec ldr r0, _0219ae68 ; =data_ov58_0219b0f0 str r2, [r1, #0x130] strb r3, [r1, #0x140] strb r3, [r1, #0x141] ldr r1, _0219ae74 ; =func_ov58_0219a440 ldr r2, _0219ae78 ; =data_ov58_0219b0e4 bl func_0204f8d4 mov r1, #0 ldr r0, _0219ae5c ; =data_ov58_0219afc0 strb r1, [r0, #0x150] strb r1, [r0, #0x151] ldmia sp!, {r3, pc} .align 2, 0 arm_func_end func_ov58_0219ad80 _0219ae3c: .word data_ov58_0219afcc _0219ae40: .word 0x020a95a5 _0219ae44: .word data_ov58_0219afc0 _0219ae48: .word data_ov58_0219b034 _0219ae4c: .word data_ov58_0219b028 _0219ae50: .word data_ov58_0219b0a0 _0219ae54: .word data_ov58_0219b0c4 _0219ae58: .word data_ov58_0219af10 _0219ae5c: .word data_ov58_0219afc0 _0219ae60: .word 0x020a9aad _0219ae64: .word data_ov58_0219b094 _0219ae68: .word data_ov58_0219b0f0 _0219ae6c: .word data_ov14_02155fb0 _0219ae70: .word data_ov58_0219aeec _0219ae74: .word func_ov58_0219a440 _0219ae78: .word data_ov58_0219b0e4 .section .sinit, 4, 1, 4 .global data_ov58_0219ae7c data_ov58_0219ae7c: ; 0x0219ae7c .byte 0x80, 0xad, 0x19, 0x02 .data .global data_ov58_0219aea0 data_ov58_0219aea0: ; 0x0219aea0 .ascii "brg" .byte 0x00 .global data_ov58_0219aea4 data_ov58_0219aea4: ; 0x0219aea4 .ascii "fnl" .byte 0x00 .global data_ov58_0219aea8 data_ov58_0219aea8: ; 0x0219aea8 .ascii "pdl" .byte 0x00 .global data_ov58_0219aeac data_ov58_0219aeac: ; 0x0219aeac .ascii "dco" .byte 0x00 .global data_ov58_0219aeb0 data_ov58_0219aeb0: ; 0x0219aeb0 .ascii "can" .byte 0x00 .global data_ov58_0219aeb4 data_ov58_0219aeb4: ; 0x0219aeb4 .ascii "hul" .byte 0x00 .global data_ov58_0219aeb8 data_ov58_0219aeb8: ; 0x0219aeb8 .ascii "bow" .byte 0x00 .global data_ov58_0219aebc data_ov58_0219aebc: ; 0x0219aebc .ascii "anc" .byte 0x00 .global data_ov58_0219aec0 data_ov58_0219aec0: ; 0x0219aec0 .byte 0xbc, 0xae, 0x19, 0x02 .global data_ov58_0219aec4 data_ov58_0219aec4: ; 0x0219aec4 .byte 0xb8, 0xae, 0x19, 0x02 .global data_ov58_0219aec8 data_ov58_0219aec8: ; 0x0219aec8 .byte 0xb4, 0xae, 0x19, 0x02 .global data_ov58_0219aecc data_ov58_0219aecc: ; 0x0219aecc .byte 0xb0, 0xae, 0x19, 0x02 .global data_ov58_0219aed0 data_ov58_0219aed0: ; 0x0219aed0 .byte 0xac, 0xae, 0x19, 0x02 .global data_ov58_0219aed4 data_ov58_0219aed4: ; 0x0219aed4 .byte 0xa8, 0xae, 0x19, 0x02 .global data_ov58_0219aed8 data_ov58_0219aed8: ; 0x0219aed8 .byte 0xa4, 0xae, 0x19, 0x02 .global data_ov58_0219aedc data_ov58_0219aedc: ; 0x0219aedc .byte 0xa0, 0xae, 0x19, 0x02 .global data_ov58_0219aee0 data_ov58_0219aee0: ; 0x0219aee0 .byte 0xff, 0xff, 0xff, 0xff .global data_ov58_0219aee4 data_ov58_0219aee4: ; 0x0219aee4 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov58_0219aee8 data_ov58_0219aee8: ; 0x0219aee8 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov58_0219aeec data_ov58_0219aeec: ; 0x0219aeec .byte 0x40, 0xa4, 0x19, 0x02 .global data_ov58_0219aef0 data_ov58_0219aef0: ; 0x0219aef0 .byte 0x24, 0xa4, 0x19, 0x02 .global data_ov58_0219aef4 data_ov58_0219aef4: ; 0x0219aef4 .byte 0x00, 0x8d, 0x19, 0x02 .global data_ov58_0219aef8 data_ov58_0219aef8: ; 0x0219aef8 .byte 0x40, 0x40, 0x12, 0x02 .global data_ov58_0219aefc data_ov58_0219aefc: ; 0x0219aefc .byte 0x74, 0x8f, 0x19, 0x02 .global data_ov58_0219af00 data_ov58_0219af00: ; 0x0219af00 .byte 0xfc, 0x8e, 0x19, 0x02 .global data_ov58_0219af04 data_ov58_0219af04: ; 0x0219af04 .byte 0x7c, 0xed, 0x0b, 0x02 .global data_ov58_0219af08 data_ov58_0219af08: ; 0x0219af08 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov58_0219af0c data_ov58_0219af0c: ; 0x0219af0c .byte 0x00, 0x00, 0x00, 0x00 .global data_ov58_0219af10 data_ov58_0219af10: ; 0x0219af10 .byte 0xad, 0x9a, 0x0a, 0x02 .global data_ov58_0219af14 data_ov58_0219af14: ; 0x0219af14 .byte 0xb9, 0x9a, 0x0a, 0x02 .global data_ov58_0219af18 data_ov58_0219af18: ; 0x0219af18 .ascii "brg" .byte 0x00 .global data_ov58_0219af1c data_ov58_0219af1c: ; 0x0219af1c .ascii "fnl" .byte 0x00 .global data_ov58_0219af20 data_ov58_0219af20: ; 0x0219af20 .ascii "pdl" .byte 0x00 .global data_ov58_0219af24 data_ov58_0219af24: ; 0x0219af24 .ascii "dco" .byte 0x00 .global data_ov58_0219af28 data_ov58_0219af28: ; 0x0219af28 .ascii "can" .byte 0x00 .global data_ov58_0219af2c data_ov58_0219af2c: ; 0x0219af2c .ascii "hul" .byte 0x00 .global data_ov58_0219af30 data_ov58_0219af30: ; 0x0219af30 .ascii "bow" .byte 0x00 .global data_ov58_0219af34 data_ov58_0219af34: ; 0x0219af34 .ascii "anc" .byte 0x00 .global data_ov58_0219af38 data_ov58_0219af38: ; 0x0219af38 .byte 0x34, 0xaf, 0x19, 0x02 .global data_ov58_0219af3c data_ov58_0219af3c: ; 0x0219af3c .byte 0x30, 0xaf, 0x19, 0x02 .global data_ov58_0219af40 data_ov58_0219af40: ; 0x0219af40 .byte 0x2c, 0xaf, 0x19, 0x02 .global data_ov58_0219af44 data_ov58_0219af44: ; 0x0219af44 .byte 0x28, 0xaf, 0x19, 0x02 .global data_ov58_0219af48 data_ov58_0219af48: ; 0x0219af48 .byte 0x24, 0xaf, 0x19, 0x02 .global data_ov58_0219af4c data_ov58_0219af4c: ; 0x0219af4c .byte 0x20, 0xaf, 0x19, 0x02 .global data_ov58_0219af50 data_ov58_0219af50: ; 0x0219af50 .byte 0x1c, 0xaf, 0x19, 0x02 .global data_ov58_0219af54 data_ov58_0219af54: ; 0x0219af54 .byte 0x18, 0xaf, 0x19, 0x02 .global data_ov58_0219af58 data_ov58_0219af58: ; 0x0219af58 .byte 0x1e, 0x00, 0x00, 0x00 .global data_ov58_0219af5c data_ov58_0219af5c: ; 0x0219af5c .byte 0x99, 0x19, 0x00, 0x00 .global data_ov58_0219af60 data_ov58_0219af60: ; 0x0219af60 .byte 0x00, 0x20, 0x00, 0x00 .global data_ov58_0219af64 data_ov58_0219af64: ; 0x0219af64 .byte 0x00, 0xa0, 0x00, 0x00 .global data_ov58_0219af68 data_ov58_0219af68: ; 0x0219af68 .ascii "brg" .byte 0x00 .global data_ov58_0219af6c data_ov58_0219af6c: ; 0x0219af6c .ascii "fnl" .byte 0x00 .global data_ov58_0219af70 data_ov58_0219af70: ; 0x0219af70 .ascii "pdl" .byte 0x00 .global data_ov58_0219af74 data_ov58_0219af74: ; 0x0219af74 .ascii "dco" .byte 0x00 .global data_ov58_0219af78 data_ov58_0219af78: ; 0x0219af78 .ascii "can" .byte 0x00 .global data_ov58_0219af7c data_ov58_0219af7c: ; 0x0219af7c .ascii "hul" .byte 0x00 .global data_ov58_0219af80 data_ov58_0219af80: ; 0x0219af80 .ascii "bow" .byte 0x00 .global data_ov58_0219af84 data_ov58_0219af84: ; 0x0219af84 .ascii "anc" .byte 0x00 .global data_ov58_0219af88 data_ov58_0219af88: ; 0x0219af88 .byte 0x84, 0xaf, 0x19, 0x02 .global data_ov58_0219af8c data_ov58_0219af8c: ; 0x0219af8c .byte 0x80, 0xaf, 0x19, 0x02 .global data_ov58_0219af90 data_ov58_0219af90: ; 0x0219af90 .byte 0x7c, 0xaf, 0x19, 0x02 .global data_ov58_0219af94 data_ov58_0219af94: ; 0x0219af94 .byte 0x78, 0xaf, 0x19, 0x02 .global data_ov58_0219af98 data_ov58_0219af98: ; 0x0219af98 .byte 0x74, 0xaf, 0x19, 0x02 .global data_ov58_0219af9c data_ov58_0219af9c: ; 0x0219af9c .byte 0x70, 0xaf, 0x19, 0x02 .global data_ov58_0219afa0 data_ov58_0219afa0: ; 0x0219afa0 .byte 0x6c, 0xaf, 0x19, 0x02 .global data_ov58_0219afa4 data_ov58_0219afa4: ; 0x0219afa4 .byte 0x68, 0xaf, 0x19, 0x02 .global data_ov58_0219afa8 data_ov58_0219afa8: ; 0x0219afa8 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov58_0219afac data_ov58_0219afac: ; 0x0219afac .byte 0x00, 0x00, 0x00, 0x00 .global data_ov58_0219afb0 data_ov58_0219afb0: ; 0x0219afb0 .byte 0x9c, 0xa6, 0x19, 0x02 .global data_ov58_0219afb4 data_ov58_0219afb4: ; 0x0219afb4 .byte 0x20, 0xa8, 0x19, 0x02 .global data_ov58_0219afb8 data_ov58_0219afb8: ; 0x0219afb8 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov58_0219afbc data_ov58_0219afbc: ; 0x0219afbc .byte 0x00, 0x00, 0x00, 0x00 ; 0x0219afc0 .bss .global data_ov58_0219afc0 data_ov58_0219afc0: .space 0x4 .global data_ov58_0219afc4 data_ov58_0219afc4: .space 0x4 .global data_ov58_0219afc8 data_ov58_0219afc8: .space 0x4 .global data_ov58_0219afcc data_ov58_0219afcc: .space 0x4 .global data_ov58_0219afd0 data_ov58_0219afd0: .space 0x4 .global data_ov58_0219afd4 data_ov58_0219afd4: .space 0x4 .global data_ov58_0219afd8 data_ov58_0219afd8: .space 0x4 .global data_ov58_0219afdc data_ov58_0219afdc: .space 0x4 .global data_ov58_0219afe0 data_ov58_0219afe0: .space 0x4 .global data_ov58_0219afe4 data_ov58_0219afe4: .space 0x4 .global data_ov58_0219afe8 data_ov58_0219afe8: .space 0x4 .global data_ov58_0219afec data_ov58_0219afec: .space 0x4 .global data_ov58_0219aff0 data_ov58_0219aff0: .space 0x4 .global data_ov58_0219aff4 data_ov58_0219aff4: .space 0x4 .global data_ov58_0219aff8 data_ov58_0219aff8: .space 0x4 .global data_ov58_0219affc data_ov58_0219affc: .space 0x4 .global data_ov58_0219b000 data_ov58_0219b000: .space 0x4 .global data_ov58_0219b004 data_ov58_0219b004: .space 0x4 .global data_ov58_0219b008 data_ov58_0219b008: .space 0x4 .global data_ov58_0219b00c data_ov58_0219b00c: .space 0x4 .global data_ov58_0219b010 data_ov58_0219b010: .space 0x4 .global data_ov58_0219b014 data_ov58_0219b014: .space 0x4 .global data_ov58_0219b018 data_ov58_0219b018: .space 0x4 .global data_ov58_0219b01c data_ov58_0219b01c: .space 0x4 .global data_ov58_0219b020 data_ov58_0219b020: .space 0x4 .global data_ov58_0219b024 data_ov58_0219b024: .space 0x4 .global data_ov58_0219b028 data_ov58_0219b028: .space 0x4 .global data_ov58_0219b02c data_ov58_0219b02c: .space 0x4 .global data_ov58_0219b030 data_ov58_0219b030: .space 0x4 .global data_ov58_0219b034 data_ov58_0219b034: .space 0x4 .global data_ov58_0219b038 data_ov58_0219b038: .space 0x4 .global data_ov58_0219b03c data_ov58_0219b03c: .space 0x4 .global data_ov58_0219b040 data_ov58_0219b040: .space 0x4 .global data_ov58_0219b044 data_ov58_0219b044: .space 0x4 .global data_ov58_0219b048 data_ov58_0219b048: .space 0x4 .global data_ov58_0219b04c data_ov58_0219b04c: .space 0x4 .global data_ov58_0219b050 data_ov58_0219b050: .space 0x4 .global data_ov58_0219b054 data_ov58_0219b054: .space 0x4 .global data_ov58_0219b058 data_ov58_0219b058: .space 0x4 .global data_ov58_0219b05c data_ov58_0219b05c: .space 0x4 .global data_ov58_0219b060 data_ov58_0219b060: .space 0x4 .global data_ov58_0219b064 data_ov58_0219b064: .space 0x4 .global data_ov58_0219b068 data_ov58_0219b068: .space 0x4 .global data_ov58_0219b06c data_ov58_0219b06c: .space 0x4 .global data_ov58_0219b070 data_ov58_0219b070: .space 0x4 .global data_ov58_0219b074 data_ov58_0219b074: .space 0x4 .global data_ov58_0219b078 data_ov58_0219b078: .space 0x4 .global data_ov58_0219b07c data_ov58_0219b07c: .space 0x4 .global data_ov58_0219b080 data_ov58_0219b080: .space 0x4 .global data_ov58_0219b084 data_ov58_0219b084: .space 0x4 .global data_ov58_0219b088 data_ov58_0219b088: .space 0x4 .global data_ov58_0219b08c data_ov58_0219b08c: .space 0x4 .global data_ov58_0219b090 data_ov58_0219b090: .space 0x4 .global data_ov58_0219b094 data_ov58_0219b094: .space 0x4 .global data_ov58_0219b098 data_ov58_0219b098: .space 0x4 .global data_ov58_0219b09c data_ov58_0219b09c: .space 0x4 .global data_ov58_0219b0a0 data_ov58_0219b0a0: .space 0x4 .global data_ov58_0219b0a4 data_ov58_0219b0a4: .space 0x4 .global data_ov58_0219b0a8 data_ov58_0219b0a8: .space 0x4 .global data_ov58_0219b0ac data_ov58_0219b0ac: .space 0x4 .global data_ov58_0219b0b0 data_ov58_0219b0b0: .space 0x4 .global data_ov58_0219b0b4 data_ov58_0219b0b4: .space 0x4 .global data_ov58_0219b0b8 data_ov58_0219b0b8: .space 0x4 .global data_ov58_0219b0bc data_ov58_0219b0bc: .space 0x4 .global data_ov58_0219b0c0 data_ov58_0219b0c0: .space 0x4 .global data_ov58_0219b0c4 data_ov58_0219b0c4: .space 0x4 .global data_ov58_0219b0c8 data_ov58_0219b0c8: .space 0x4 .global data_ov58_0219b0cc data_ov58_0219b0cc: .space 0x4 .global data_ov58_0219b0d0 data_ov58_0219b0d0: .space 0x4 .global data_ov58_0219b0d4 data_ov58_0219b0d4: .space 0x4 .global data_ov58_0219b0d8 data_ov58_0219b0d8: .space 0x4 .global data_ov58_0219b0dc data_ov58_0219b0dc: .space 0x4 .global data_ov58_0219b0e0 data_ov58_0219b0e0: .space 0x4 .global data_ov58_0219b0e4 data_ov58_0219b0e4: .space 0x4 .global data_ov58_0219b0e8 data_ov58_0219b0e8: .space 0x4 .global data_ov58_0219b0ec data_ov58_0219b0ec: .space 0x4 .global data_ov58_0219b0f0 data_ov58_0219b0f0: .space 0x4 .global data_ov58_0219b0f4 data_ov58_0219b0f4: .space 0x4 .global data_ov58_0219b0f8 data_ov58_0219b0f8: .space 0x4 .global data_ov58_0219b0fc data_ov58_0219b0fc: .space 0x4 .global data_ov58_0219b100 data_ov58_0219b100: .space 0x1 .global data_ov58_0219b101 data_ov58_0219b101: .space 0x1 .global data_ov58_0219b102 data_ov58_0219b102: .space 0x1 .global data_ov58_0219b103 data_ov58_0219b103: .space 0x1 .global data_ov58_0219b104 data_ov58_0219b104: .space 0x4 .global data_ov58_0219b108 data_ov58_0219b108: .space 0x4 .global data_ov58_0219b10c data_ov58_0219b10c: .space 0x4 .global data_ov58_0219b110 data_ov58_0219b110: .space 0x1 .global data_ov58_0219b111 data_ov58_0219b111: .space 0x1 .global data_ov58_0219b112 data_ov58_0219b112: .space 0x1 .global data_ov58_0219b113 data_ov58_0219b113: .space 0x1 .global data_ov58_0219b114 data_ov58_0219b114: .space 0x1 .global data_ov58_0219b115 data_ov58_0219b115: .space 0x1 .global data_ov58_0219b116 data_ov58_0219b116: .space 0x1 .global data_ov58_0219b117 data_ov58_0219b117: .space 0x1 .global data_ov58_0219b118 data_ov58_0219b118: .space 0x1 .global data_ov58_0219b119 data_ov58_0219b119: .space 0x1 .global data_ov58_0219b11a data_ov58_0219b11a: .space 0x1 .global data_ov58_0219b11b data_ov58_0219b11b: .space 0x1 .global data_ov58_0219b11c data_ov58_0219b11c: .space 0x1 .global data_ov58_0219b11d data_ov58_0219b11d: .space 0x1 .global data_ov58_0219b11e data_ov58_0219b11e: .space 0x2