Function at 0x10007be0
Capabilities:
Check if file exists
Get common file path
Get file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x414
push esi
mov esi, dword [sym.imp.SHFOLDER.dll_SHGetFolderPathW]
push 0x100c6060
push 0
push 0
push 0x1a
push 0
call esi
test eax, eax
jne 0x10007c1c
push str.GPSoftwareDirectory_Opus
push 0x104
push 0x100c6060
call sym.dopuslib32.dll_SafePathAppend
add esp, 0xc
jmp 0x10007c24
xor eax, eax
mov word [0x100c6060], ax
push 0x100c6268
push 0
push 0
push 0x23
push 0
call esi
test eax, eax
jne 0x10007c50
push str.GPSoftwareDirectory_Opus
push 0x104
push 0x100c6268
call sym.dopuslib32.dll_SafePathAppend
add esp, 0xc
jmp 0x10007c58
xor eax, eax
mov word [0x100c6268], ax
push 0x100c6470
push 0
push 0
push 0x1c
push 0
call esi
test eax, eax
jne 0x10007c84
push str.GPSoftwareDirectory_Opus
push 0x104
push 0x100c6470
call sym.dopuslib32.dll_SafePathAppend
add esp, 0xc
jmp 0x10007c8c
xor eax, eax
mov word [0x100c6470], ax
push 0x104
push 0x100c6678
push dword [0x100c5ca8]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
je 0x10007ccf
push 0x100c6678
call sym.dopuslib32.dll_FindFilePartW
add esp, 4
test eax, eax
je 0x10007cd7
cmp eax, 0x100c6678
jbe 0x10007cd7
cmp word [eax - 2], 0x5c
jne 0x10007cc8
add eax, 0xfffffffe
xor ecx, ecx
mov word [eax], cx
jmp 0x10007cd7
xor eax, eax
mov word [0x100c6678], ax
mov edx, 0x104
mov ecx, 0x100c6a88
lea eax, [edx + 0x7ffffefa]
test eax, eax
je 0x10007d0b
movzx eax, word [ecx - 0x410]
test ax, ax
je 0x10007d04
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x10007ce1
jmp 0x10007d08
test edx, edx
jne 0x10007d0b
sub ecx, 2
xor eax, eax
mov word [ecx], ax
cmp word [0x100c6a88], ax
je 0x10007ed0
push 0x100c6a88
call sym.dopuslib32.dll_FindFilePartW
mov esi, eax
add esp, 4
test esi, esi
je 0x10007ed0
cmp esi, 0x100c6a88
jbe 0x10007ed0
cmp word [esi - 2], 0x5c
jne 0x10007ed0
mov ecx, 0x100ad4f8
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x10007d76
test dx, dx
je 0x10007d72
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x10007d76
add eax, 4
add ecx, 4
test dx, dx
jne 0x10007d50
xor eax, eax
jmp 0x10007d7b
sbb eax, eax
or eax, 1
test eax, eax
je 0x10007e33
mov ecx, 0x100ad500
mov eax, esi
lea ebx, [ebx]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x10007db6
test dx, dx
je 0x10007db2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x10007db6
add eax, 4
add ecx, 4
test dx, dx
jne 0x10007d90
xor eax, eax
jmp 0x10007dbb
sbb eax, eax
or eax, 1
test eax, eax
je 0x10007e33
mov ecx, 0x100ad508
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x10007dec
test dx, dx
je 0x10007de8
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x10007dec
add eax, 4
add ecx, 4
test dx, dx
jne 0x10007dc6
xor eax, eax
jmp 0x10007df1
sbb eax, eax
or eax, 1
test eax, eax
je 0x10007e33
mov ecx, 0x100ad510
mov eax, esi
lea esp, [esp]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x10007e26
test dx, dx
je 0x10007e22
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x10007e26
add eax, 4
add ecx, 4
test dx, dx
jne 0x10007e00
xor eax, eax
jmp 0x10007e2b
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10007ed0
sub esi, 0x100c6060
lea ecx, [ebp - 0x414]
push edi
sub esi, 0xa28
mov edi, 0x100c6a88
mov eax, ecx
sar esi, 1
mov edx, 0x208
sub edi, eax
lea eax, [edx + 0x7ffffdf6]
test eax, eax
je 0x10007e7d
movzx eax, word [edi + ecx]
test ax, ax
je 0x10007e76
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x10007e56
jmp 0x10007e7a
test edx, edx
jne 0x10007e7d
sub ecx, 2
xor eax, eax
mov edx, 0x208
mov word [ecx], ax
sub edx, esi
lea ecx, [ebp - 0x414]
lea ecx, [ecx + esi*2]
pop edi
test ecx, ecx
je 0x10007eb4
test edx, edx
je 0x10007eb4
cmp edx, 0x7fffffff
jbe 0x10007ea8
mov word [ecx], ax
jmp 0x10007eb4
push ecx
push str.dopus.cert
push ecx
call fcn.1000aea0
lea eax, [ebp - 0x414]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x10007ed0
xor eax, eax
mov word [esi*2 + 0x100c6a86], ax
mov edx, 0x104
mov ecx, 0x100c6880
pop esi
jmp 0x10007ee0
lea eax, [edx + 0x7ffffefa]
test eax, eax
je 0x10007f0a
movzx eax, word [ecx - 0x208]
test ax, ax
je 0x10007f03
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x10007ee0
jmp 0x10007f07
test edx, edx
jne 0x10007f0a
sub ecx, 2
xor eax, eax
mov edx, 0x104
mov word [ecx], ax
mov ecx, 0x100c6c90
lea esp, [esp]
lea eax, [edx + 0x7ffffefa]
test eax, eax
je 0x10007f4a
movzx eax, word [ecx - 0x208]
test ax, ax
je 0x10007f43
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x10007f20
jmp 0x10007f47
test edx, edx
jne 0x10007f4a
sub ecx, 2
push str.PA_OPUSDATAFILES
xor eax, eax
push 0x104
mov word [ecx], ax
lea eax, [ebp - 4]
push 0x100c6e98
push eax
call fcn.10086802
add esp, 0x10
test eax, eax
je 0x10007f76
xor eax, eax
mov word [0x100c6e98], ax
push str.PA_OPUSOTHERFILES
push 0x104
lea eax, [ebp - 4]
push 0x100c70a0
push eax
call fcn.10086802
add esp, 0x10
test eax, eax
je 0x10007f9d
xor eax, eax
mov word [0x100c70a0], ax
mov esp, ebp
pop ebp
ret