Function at 0x4f10e0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x569b47
push eax
mov eax, 0xf1a4
mov dword fs:[0], esp
call fcn.00550140
push ebx
push esi
push edi
xor edi, edi
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x1c], edi
mov dword [ebp - 4], edi
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x20], edi
mov bl, 2
push 0x5d2a60
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], bl
call fcn.00410470
mov eax, dword [0x5cb0cc]
mov byte [ebp - 4], 3
cmp eax, edi
jne 0x4f1185
cmp dword [0x5cb0c8], edi
jne 0x4f1185
push 0xc
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [ebp - 0x2c], eax
cmp eax, edi
mov byte [ebp - 4], 4
je 0x4f115b
mov ecx, eax
call fcn.0045e9d0
jmp 0x4f115d
xor eax, eax
mov dword [0x5cb0c8], eax
mov eax, dword [0x5b5c48]
push eax
push 0x41ebd0
mov ecx, 0x5d0190
mov byte [ebp - 4], 3
call fcn.00406500
mov dword [0x5cb0cc], 1
mov ecx, dword [ebp - 0x14]
mov esi, dword [0x5cb0c8]
mov byte [ebp - 4], bl
mov edx, dword [ecx]
call dword [edx + 8]
mov eax, dword [esi]
lea ecx, [ebp - 0x1c]
push ecx
push esi
call dword [eax + 8]
test eax, eax
jl 0x4f1696
mov eax, dword [ebp - 0x1c]
cmp eax, edi
je 0x4f1696
push 0x5b7820
lea edx, [ebp - 0x28]
push eax
push edx
call fcn.00423a70
mov eax, dword [ebp - 0x1c]
push 0x5b68d0
lea ecx, [ebp - 0x20]
push eax
push ecx
call fcn.00423a70
mov dword [ebp - 0x30], edi
mov eax, dword [ebp - 0x28]
lea ecx, [ebp - 0x30]
push ecx
push eax
mov edx, dword [eax]
mov byte [ebp - 4], 5
call dword [edx + 0x10]
test eax, eax
jl 0x4f168c
mov dword [ebp - 0x10], edi
push 0x5d2ac0
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 6
call fcn.00410470
mov eax, dword [0x5cb048]
mov bl, 7
cmp eax, edi
mov byte [ebp - 4], bl
jne 0x4f1266
cmp dword [0x5cb044], edi
jne 0x4f1266
push 0x380
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [ebp - 0x2c], eax
cmp eax, edi
mov byte [ebp - 4], 8
je 0x4f123c
push edi
mov ecx, eax
call fcn.00414150
jmp 0x4f123e
xor eax, eax
mov edx, dword [0x5b4b90]
mov ecx, 0x5d0190
push edx
push 0x406940
mov byte [ebp - 4], bl
mov dword [0x5cb044], eax
call fcn.00406500
mov dword [0x5cb048], 1
mov ecx, dword [ebp - 0x14]
mov esi, dword [0x5cb044]
mov byte [ebp - 4], 6
mov eax, dword [ecx]
call dword [eax + 8]
mov ecx, dword [esi]
lea edx, [ebp - 0x10]
push edx
push esi
call dword [ecx + 0x78]
mov eax, 0x5cabc0
test eax, eax
mov eax, dword [ebp - 0x10]
jne 0x4f1297
cmp eax, edi
je 0x4f12ed
jmp 0x4f1354
cmp eax, edi
je 0x4f1354
mov ecx, 0x5cabc0
test ecx, ecx
jne 0x4f12ac
xor eax, eax
jmp 0x4f12d6
push 0x5cabc0
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov esi, eax
inc esi
lea eax, [esi + esi]
add eax, 3
and al, 0xfc
call fcn.00550140
mov eax, esp
push edi
push esi
push 0x5cabc0
push eax
call fcn.00477950
mov edx, dword [ebp - 0x10]
push eax
push edx
call dword [sym.imp.MSVCRT.dll_wcscmp]
add esp, 8
test eax, eax
sete al
test al, al
je 0x4f1354
mov ecx, 0x40
xor eax, eax
lea edi, [ebp - 0x153]
mov byte [ebp - 0x154], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x18]
mov dword [ebp - 0x18], 0
push eax
push 5
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x4f1352
lea ecx, [ebp - 0x154]
push ecx
push eax
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListA]
test eax, eax
je 0x4f1352
mov edx, dword [ebp - 0x10]
push edx
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
lea eax, [ebp - 0x154]
push 0xffffffffffffffff
push eax
call fcn.00406c60
add esp, 8
mov dword [ebp - 0x10], eax
xor edi, edi
push 0x5d2ac0
lea ecx, [ebp - 0x14]
mov dword [ebp - 0x34], edi
call fcn.00410470
mov eax, dword [0x5cb048]
mov bl, 9
cmp eax, edi
mov byte [ebp - 4], bl
jne 0x4f13c6
cmp dword [0x5cb044], edi
jne 0x4f13c6
push 0x380
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [ebp - 0x2c], eax
cmp eax, edi
mov byte [ebp - 4], 0xa
je 0x4f139c
push edi
mov ecx, eax
call fcn.00414150
jmp 0x4f139e
xor eax, eax
mov ecx, dword [0x5b4b90]
mov byte [ebp - 4], bl
push ecx
push 0x406940
mov ecx, 0x5d0190
mov dword [0x5cb044], eax
call fcn.00406500
mov dword [0x5cb048], 1
mov ecx, dword [ebp - 0x14]
mov esi, dword [0x5cb044]
mov byte [ebp - 4], 6
mov edx, dword [ecx]
call dword [edx + 8]
mov eax, dword [esi]
lea ecx, [ebp - 0x34]
push ecx
push esi
call dword [eax + 0x8c]
cmp dword [ebp - 0x34], edi
je 0x4f13fb
mov ecx, dword [0x5cb258]
cmp ecx, edi
je 0x4f13fb
push 1
call fcn.004ea1c0
call fcn.0041e9e0
mov ecx, eax
call fcn.0051bb90
mov edx, dword [ebp - 0x10]
mov esi, dword [ebp - 0x30]
push edx
push eax
call sub.MFC42.DLL_CWnd::FromHandle
push eax
push esi
push 0x80206
push edi
push edi
push 1
lea ecx, [ebp - 0xf1b0]
call fcn.00446fd0
lea ecx, [ebp - 0xf1b0]
mov byte [ebp - 4], 0xb
call fcn.004470c0
cmp eax, 1
jne 0x4f165e
mov eax, dword [0x5cb0b8]
cmp eax, edi
je 0x4f1453
mov ebx, eax
test ebx, ebx
jne 0x4f14b3
xor edi, edi
lea ecx, [ebp - 0xf1b0]
mov byte [ebp - 4], 6
call fcn.0044d1e0
mov eax, dword [ebp - 0x10]
mov esi, dword [sym.imp.OLEAUT32.dll_SysStringLen]
push eax
call esi
mov ecx, dword [ebp - 0x30]
push ecx
call esi
mov eax, dword [ebp - 0x20]
mov byte [ebp - 4], 1
cmp eax, edi
je 0x4f1485
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov eax, dword [ebp - 0x28]
mov byte [ebp - 4], 0
cmp eax, edi
je 0x4f1496
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 4], 0xffffffff
cmp eax, edi
je 0x4f16cc
mov edx, dword [eax]
push eax
call dword [edx + 8]
jmp 0x4f16cc
xor edi, edi
mov dword [ebp - 0x24], edi
mov eax, dword [ebx]
lea ecx, [ebp - 0x24]
push ecx
push ebx
mov byte [ebp - 4], 0xc
call dword [eax + 0xc0]
mov eax, dword [ebp - 0x24]
cmp eax, edi
je 0x4f164e
lea ecx, [ebp - 0x14]
mov dword [ebp - 0x14], edi
mov edx, dword [eax]
push ecx
push eax
call dword [edx + 0x24]
xor esi, esi
mov dword [ebp - 0x48], esi
mov eax, dword [ebp - 0x20]
mov byte [ebp - 4], 0xd
cmp eax, edi
mov dword [ebp - 0x40], edi
je 0x4f14fe
mov edx, dword [eax]
lea ecx, [ebp - 0x40]
push ecx
push eax
call dword [edx + 0x24]
lea ecx, [ebp - 0xf1b0]
mov dword [ebp - 0x4c], 1
mov dword [ebp - 0x44], 0xffffffff
call fcn.00447250
cmp eax, edi
mov dword [ebp - 0x38], eax
je 0x4f1568
lea edx, [ebp - 0x38]
lea ecx, [ebp - 0xf1b0]
push edx
call fcn.00447260
push esi
mov edi, eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
push edi
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov esi, eax
lea eax, [ebp - 0x44]
push 0
push eax
mov eax, dword [ebp - 0x40]
lea ecx, [ebp - 0x4c]
test eax, eax
setne dl
push ecx
mov ecx, dword [ebp - 0x3c]
push edx
push esi
push ebx
mov dword [ebp - 0x48], esi
call fcn.004f1ca0
mov eax, dword [ebp - 0x38]
test eax, eax
jne 0x4f151e
xor edi, edi
mov eax, dword [ebp - 0x24]
lea edx, [ebp - 0x2c]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x24]
mov ebx, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x14]
sub ebx, ecx
cmp ebx, edi
jle 0x4f1644
lea ecx, [ebp - 0x18]
call sub.MFC42.DLL_CString::CString_3
push ebx
lea eax, [ebp - 0x18]
push 0x5bd330
push eax
mov byte [ebp - 4], 0xe
call sub.MFC42.DLL_CString::Format
mov edx, dword [0x5d2a80]
mov ecx, 0x5d2a80
add esp, 0xc
mov dword [ebp - 0x3c], ecx
call dword [edx + 4]
mov eax, dword [0x5cb0c0]
mov bl, 0xf
cmp eax, edi
mov byte [ebp - 4], bl
jne 0x4f1615
cmp dword [0x5cb0bc], edi
jne 0x4f1615
push 0x1044
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [ebp - 0x50], eax
cmp eax, edi
mov byte [ebp - 4], 0x10
je 0x4f15ec
push edi
mov ecx, eax
call fcn.0041c900
jmp 0x4f15ee
xor eax, eax
mov dword [0x5cb0bc], eax
mov eax, dword [0x5b5894]
push eax
push 0x41c8d0
mov ecx, 0x5d0190
mov byte [ebp - 4], bl
call fcn.00406500
mov dword [0x5cb0c0], 1
mov edx, dword [0x5d2a80]
mov ebx, dword [0x5cb0bc]
mov ecx, 0x5d2a80
mov byte [ebp - 4], 0xe
call dword [edx + 8]
lea eax, [ebp - 0x18]
mov ecx, ebx
push eax
call fcn.0051cf20
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0xd
call sub.MFC42.DLL_CString::CString
push esi
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [ebp - 0x24]
cmp eax, edi
mov byte [ebp - 4], 0xb
je 0x4f165c
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
xor edi, edi
cmp dword [ebp - 0x34], edi
je 0x4f1673
mov ecx, dword [0x5cb258]
cmp ecx, edi
je 0x4f1673
push edi
call fcn.004ea1c0
lea ecx, [ebp - 0xf1b0]
mov byte [ebp - 4], 6
call fcn.0044d1e0
mov edx, dword [ebp - 0x10]
push edx
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [ebp - 0x30]
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [ebp - 0x20]
mov byte [ebp - 4], 1
cmp eax, edi
je 0x4f16a7
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x28]
mov byte [ebp - 4], 0
cmp eax, edi
je 0x4f16b8
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 4], 0xffffffff
cmp eax, edi
je 0x4f16cc
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [ebp - 0xc]
lea esp, [ebp - 0xf1bc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret