Function at 0x4028e0
Capabilities:
Get common file path

Disassembly:
push 0xffffffffffffffff
push 0x4076e0
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x80c
push ebx
push esi
mov esi, dword [esp + 0x828]
push edi
xor ebx, ebx
push esi
lea ecx, [esp + 0x14]
mov dword [esp + 0x18], ebx
call sub.MFC42u.DLL_CString::CString_1
mov edi, 1
push esi
lea ecx, [esp + 0x10]
mov dword [esp + 0x824], edi
call sub.MFC42u.DLL_CString::CString_1
mov eax, dword [esp + 0x830]
mov byte [esp + 0x820], 2
cmp eax, 0xffffffff
jne 0x402c31
push esi
call dword [sym.imp.MSVCRT.dll_wcslen]
add esp, 4
test eax, eax
ja 0x40296d
mov esi, dword [esp + 0x828]
push 0x40af10
mov ecx, esi
call sub.MFC42u.DLL_CString::CString_1
mov dword [esp + 0x14], edi
jmp 0x402c71
mov eax, dword [esp + 0xc]
mov esi, dword [sym.imp.MSVCRT.dll__wcsicmp]
push str._COMMONFILESDIR_
push eax
call esi
add esp, 8
cmp eax, ebx
jne 0x402990
mov eax, 0x2b
jmp 0x402c31
mov ecx, dword [esp + 0xc]
push str._PROGRAMFILESDIR_
push ecx
call esi
add esp, 8
cmp eax, ebx
jne 0x4029ad
mov eax, 0x26
jmp 0x402c31
mov edx, dword [esp + 0xc]
push str._WINDOWSDIR_
push edx
call esi
add esp, 8
cmp eax, ebx
je 0x402c2c
mov eax, dword [esp + 0xc]
push str._WINDIR_
push eax
call esi
add esp, 8
cmp eax, ebx
je 0x402c2c
mov ecx, dword [esp + 0xc]
push str._SYSTEMDIR_
push ecx
call esi
add esp, 8
cmp eax, ebx
je 0x402c25
mov edx, dword [esp + 0xc]
push str._SYSDIR_
push edx
call esi
add esp, 8
cmp eax, ebx
je 0x402c25
mov eax, dword [esp + 0xc]
push str._WINSYSDIR_
push eax
call esi
add esp, 8
cmp eax, ebx
je 0x402c25
mov ecx, dword [esp + 0xc]
push str._SYSTEM_
push ecx
call esi
add esp, 8
cmp eax, ebx
je 0x402c25
mov edx, dword [esp + 0xc]
push str._DESKTOP_
push edx
call esi
add esp, 8
cmp eax, ebx
jne 0x402a54
mov eax, 0x10
jmp 0x402c31
mov eax, dword [esp + 0xc]
push str._PROGRAMMENU_
push eax
call esi
add esp, 8
cmp eax, ebx
jne 0x402a71
mov eax, 0x17
jmp 0x402c31
mov ecx, dword [esp + 0xc]
push str._STARTMENU_
push ecx
call esi
add esp, 8
cmp eax, ebx
jne 0x402a8e
mov eax, 0x16
jmp 0x402c31
mov edx, dword [esp + 0xc]
push str._STARTUP_
push edx
call esi
add esp, 8
cmp eax, ebx
jne 0x402aab
mov eax, 0x18
jmp 0x402c31
mov eax, dword [esp + 0xc]
push str._MYDOCUMENTS_
push eax
call esi
add esp, 8
cmp eax, ebx
jne 0x402ac8
mov eax, 5
jmp 0x402c31
mov ecx, dword [esp + 0xc]
push str._USERAPPDATA_
push ecx
call esi
add esp, 8
cmp eax, ebx
jne 0x402ae5
mov eax, 0x1c
jmp 0x402c31
mov edx, dword [esp + 0xc]
push str._COMMONDOCUMENTS_
push edx
call esi
add esp, 8
cmp eax, ebx
je 0x402c1e
mov eax, dword [esp + 0xc]
push str._PUBLICDOC_
push eax
call esi
add esp, 8
cmp eax, ebx
je 0x402c1e
mov ecx, dword [esp + 0xc]
push str._PUBLICAPPDATA_
push ecx
call esi
add esp, 8
cmp eax, ebx
jne 0x402b30
mov eax, 0x23
jmp 0x402c31
mov edx, dword [esp + 0xc]
push str._DOWNLOADEDPROGRAMFILESDIR_
push edx
call esi
add esp, 8
cmp eax, ebx
je 0x402c17
mov eax, dword [esp + 0xc]
push str._INSTALLDIR_
push eax
call esi
add esp, 8
cmp eax, ebx
je 0x402c17
mov ecx, dword [esp + 0xc]
push str._CURRENTDIR_
push ecx
call esi
add esp, 8
cmp eax, ebx
jne 0x402b7b
push 0x40af30
jmp 0x402c0e
mov edx, dword [esp + 0xc]
push str._TEMPDIR_
push edx
call esi
add esp, 8
cmp eax, ebx
je 0x402c09
mov eax, dword [esp + 0xc]
push str._TEMP_
push eax
call esi
add esp, 8
cmp eax, ebx
je 0x402c09
mov ecx, dword [esp + 0xc]
push str._RSUPPORTDOCUMENTS_
push ecx
call esi
add esp, 8
cmp eax, ebx
jne 0x402bbb
push 0x40af14
jmp 0x402c0e
mov edx, dword [esp + 0xc]
push str._RSUPPORTHOME_
push edx
call esi
add esp, 8
cmp eax, ebx
jne 0x402bd5
push 0x40af20
jmp 0x402c0e
mov eax, dword [esp + 0xc]
push 0x40a2c4
push eax
call esi
add esp, 8
cmp eax, ebx
jne 0x402bef
push 0x40af1c
jmp 0x402c0e
mov ecx, dword [esp + 0xc]
push str._RSUPPORTTEMP_
push ecx
call esi
add esp, 8
cmp eax, ebx
jne 0x402c17
push 0x40af18
jmp 0x402c0e
push 0x40af28
lea ecx, [esp + 0x14]
call sub.MFC42u.DLL_CString::operator
lea edx, [esp + 0x10]
push edx
jmp 0x402c5f
mov eax, 0x2e
jmp 0x402c31
mov eax, 0x25
jmp 0x402c31
mov eax, 0x24
push ebx
push eax
lea eax, [esp + 0x20]
push eax
push ebx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
lea ecx, [esp + 0x18]
push ecx
lea ecx, [esp + 0x14]
call sub.MFC42u.DLL_CString::operator_1
lea edx, [esp + 0x10]
push edx
call fcn.00402cb0
add esp, 4
lea eax, [esp + 0x10]
push eax
mov esi, dword [esp + 0x82c]
mov ecx, esi
call fcn.00407046
mov dword [esp + 0x14], edi
lea ecx, [esp + 0xc]
mov byte [esp + 0x820], 1
call sub.MFC42u.DLL_CString::CString
lea ecx, [esp + 0x10]
mov byte [esp + 0x820], bl
call sub.MFC42u.DLL_CString::CString
mov ecx, dword [esp + 0x818]
mov eax, esi
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
add esp, 0x818
ret