Function at 0x10648e7
Capabilities:
Get common file path

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push ecx
and dword [ebp - 4], 0
cmp dword [ebp + 8], 0
push ebx
push esi
mov ebx, 0x80004005
push edi
mov edi, ebx
je 0x1064c9f
mov esi, dword [ebp + 0xc]
test esi, esi
je 0x1064c9f
lea eax, [ebp - 4]
push eax
push 0x1007cc0
push dword [ebp + 8]
call dword [sym.imp.msvcrt.dll_swscanf]
add esp, 0xc
test eax, eax
jne 0x1064933
mov eax, 0x80070057
jmp 0x1064ca4
mov eax, dword [ebp - 4]
cmp eax, 0xffffffff
je 0x1064929
cmp eax, 0x19
ja 0x1064b80
je 0x1064b6f
cmp eax, 0x11
ja 0x1064a6a
je 0x1064a27
sub eax, 0
je 0x1064c9b
dec eax
je 0x1064a15
sub eax, 9
je 0x1064b6f
dec eax
je 0x10649dc
dec eax
jne 0x1064c9b
shr esi, 1
push esi
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
je 0x1064990
xor edi, edi
jmp 0x10649b5
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x106499f
push 0x57
pop eax
test eax, eax
jle 0x10649ab
and eax, 0xffff
or eax, 0x80070000
mov edi, eax
test edi, edi
jne 0x1064c9b
push 0
push 4
call fcn.010563ec
test eax, eax
je 0x10649c9
push 0x100db68
jmp 0x10649ce
push 0x100db54
push esi
push dword [ebp + 8]
call fcn.010358a6
jmp 0x1064c9b
shr esi, 1
push esi
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
jmp 0x1064a21
xor edi, edi
jmp 0x1064c9b
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x1064a00
push 0x57
pop eax
test eax, eax
jle 0x1064c99
and eax, 0xffff
or eax, 0x80070000
jmp 0x1064c99
push dword [ebp + 8]
shr esi, 1
push esi
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
test eax, eax
jne 0x10649ea
jmp 0x10649f1
shr esi, 1
push esi
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_GetSystemWindowsDirectoryW]
test eax, eax
je 0x1064a3b
xor edi, edi
jmp 0x1064a60
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x1064a4a
push 0x57
pop eax
test eax, eax
jle 0x1064a56
and eax, 0xffff
or eax, 0x80070000
mov edi, eax
test edi, edi
jne 0x1064c9b
push 0x100db48
jmp 0x10649ce
sub eax, 0x12
je 0x1064b2c
dec eax
dec eax
je 0x1064ae9
dec eax
je 0x1064c9b
dec eax
dec eax
je 0x1064c9b
dec eax
jne 0x1064c9b
shr esi, 1
push esi
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
je 0x1064aa1
xor edi, edi
jmp 0x1064ac6
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x1064ab0
push 0x57
pop eax
test eax, eax
jle 0x1064abc
and eax, 0xffff
or eax, 0x80070000
mov edi, eax
test edi, edi
jne 0x1064c9b
push 0x1007db0
push dword [ebp + 8]
call dword [sym.imp.msvcrt.dll_wcsstr]
pop ecx
pop ecx
test eax, eax
je 0x1064c9b
xor ecx, ecx
mov word [eax + 4], cx
jmp 0x1064c9b
shr esi, 1
push esi
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_GetSystemWindowsDirectoryW]
test eax, eax
je 0x1064afd
xor edi, edi
jmp 0x1064b22
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x1064b0c
push 0x57
pop eax
test eax, eax
jle 0x1064b18
and eax, 0xffff
or eax, 0x80070000
mov edi, eax
test edi, edi
jne 0x1064c9b
push 0x100db38
jmp 0x10649ce
shr esi, 1
push esi
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_GetSystemWindowsDirectoryW]
test eax, eax
je 0x1064b40
xor edi, edi
jmp 0x1064b65
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x1064b4f
push 0x57
pop eax
test eax, eax
jle 0x1064b5b
and eax, 0xffff
or eax, 0x80070000
mov edi, eax
test edi, edi
jne 0x1064c9b
push 0x100db2c
jmp 0x10649ce
shr esi, 1
push esi
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_GetSystemWindowsDirectoryW]
jmp 0x1064a21
cmp eax, 0x4019
ja 0x1064c38
cmp eax, 0x4016
jae 0x1064c9b
cmp eax, 0x1e
je 0x1064c9b
cmp eax, 0x32
je 0x1064c9b
cmp eax, 0x33
je 0x1064bf9
cmp eax, 0x34
jne 0x1064c9b
shr esi, 1
push esi
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_GetSystemWindowsDirectoryW]
test eax, eax
je 0x1064bca
xor edi, edi
jmp 0x1064bef
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x1064bd9
push 0x57
pop eax
test eax, eax
jle 0x1064be5
and eax, 0xffff
or eax, 0x80070000
mov edi, eax
test edi, edi
jne 0x1064c9b
push 0x100db0c
jmp 0x10649ce
shr esi, 1
push esi
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_GetSystemWindowsDirectoryW]
test eax, eax
je 0x1064c0d
xor edi, edi
jmp 0x1064c2e
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x1064c1c
push 0x57
pop eax
test eax, eax
jle 0x1064c28
and eax, 0xffff
or eax, 0x80070000
mov edi, eax
test edi, edi
jne 0x1064c9b
push 0x100dafc
jmp 0x10649ce
sub eax, 0x401f
je 0x1064c9b
sub eax, 4
je 0x1064c8e
sub eax, 3
je 0x1064c81
sub eax, 5
je 0x1064c74
sub eax, 0x3825
jne 0x1064c9b
push 0x104
push 1
push dword [ebp + 8]
call fcn.01058c4e
mov edi, eax
neg edi
sbb edi, edi
and edi, 0x7fffbffb
add edi, ebx
jmp 0x1064c9b
shr esi, 1
push esi
push dword [ebp + 8]
call fcn.01064634
jmp 0x1064c99
shr esi, 1
push esi
push dword [ebp + 8]
call fcn.010643af
jmp 0x1064c99
shr esi, 1
push esi
push dword [ebp + 8]
call fcn.01064792
mov edi, eax
mov eax, edi
jmp 0x1064ca4
mov eax, 0x80004003
pop edi
pop esi
pop ebx
leave
ret 8