Function at 0x607468
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffbc
push ebx
xor ebx, ebx
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.0040c878
mov eax, dword [ebp - 8]
call fcn.004090ac
xor eax, eax
push ebp
push 0x6076a3
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 8]
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
je 0x6074b5
mov eax, dword [ebp - 0x34]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
jne 0x6074cd
lea eax, [ebp - 0x10]
push eax
push 0x11
push 0
call sub.shell32.dll_SHGetSpecialFolderLocation
jmp 0x607675
mov eax, dword [ebp - 8]
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], 0
je 0x6074e4
mov eax, dword [ebp - 0x38]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], 2
jne 0x60750a
mov eax, dword [ebp - 8]
cmp word [eax + 2], 0x3a
jne 0x60750a
lea edx, [ebp - 0x44]
mov eax, dword [ebp - 8]
call fcn.00429dc4
mov edx, dword [ebp - 0x44]
lea eax, [ebp - 8]
call fcn.004093f0
push 1
call sub.kernel32.dll_SetErrorMode
mov dword [ebp - 0x24], eax
call fcn.00607d78
mov byte [ebp - 0x25], al
xor eax, eax
push ebp
push 0x60766e
push dword fs:[eax]
mov dword fs:[eax], esp
cmp dword [ebp - 4], 0
jne 0x607589
cmp dword [ebp - 0xc], 0
jne 0x607589
mov eax, dword [ebp - 8]
call fcn.00409cc4
push eax
call sub.shell32.dll_ILCreateFromPathW
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
je 0x607557
call fcn.00408784
jmp 0x607675
lea eax, [ebp - 0x30]
push eax
push 0
lea eax, [ebp - 0x10]
push eax
push 0
mov eax, dword [ebp - 8]
call fcn.00409cc4
push eax
call sub.shell32.dll_SHParseDisplayName
mov dword [ebp - 0x3c], eax
test byte [ebp - 0x39], 0x80
sete al
test al, al
je 0x6075df
call fcn.00408784
jmp 0x607675
cmp dword [ebp - 4], 0
jne 0x60759d
lea eax, [ebp - 4]
call fcn.0040c804
push eax
call sub.shell32.dll_SHGetDesktopFolder
xor eax, eax
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x14]
push eax
mov eax, dword [ebp - 8]
call fcn.00409cc4
push eax
push 0
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 4]
push eax
mov eax, dword [eax]
call dword [eax + 0xc]
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
jne 0x6075df
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x10], eax
call fcn.00408784
jmp 0x607675
lea edx, [ebp - 0x2c]
mov eax, dword [ebp - 8]
call fcn.00607328
xor eax, eax
push ebp
push 0x60763c
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x30]
push eax
push 0
lea eax, [ebp - 0x10]
push eax
mov eax, dword [ebp - 0x2c]
push eax
mov eax, dword [ebp - 8]
call fcn.00409cc4
push eax
call sub.shell32.dll_SHParseDisplayName
mov dword [ebp - 0x40], eax
test byte [ebp - 0x3d], 0x80
sete al
test al, al
je 0x60762e
call fcn.00408784
call fcn.00408784
jmp 0x607675
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x607643
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x6076aa
lea eax, [ebp - 0x44]
call fcn.00408fc8
lea eax, [ebp - 0x2c]
call fcn.0040c804
lea eax, [ebp - 8]
call fcn.00408fc8
lea eax, [ebp - 4]
call fcn.0040c804
ret