Function at 0x4140f0
Capabilities:
Get common file path

Disassembly:
push 0xffffffffffffffff
push 0x41e685
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x148
push ebx
push esi
push edi
mov esi, ecx
lea eax, [esp + 0x164]
lea ecx, [esp + 0x30]
push eax
mov dword [esp + 0x160], 0
call fcn.0041b7f4
lea ecx, [esp + 0x1c]
mov byte [esp + 0x15c], 1
call sub.MFC42.DLL_CString::CString_2
lea ecx, [esp + 0x50]
mov byte [esp + 0x15c], 2
push ecx
mov ecx, esi
call fcn.004137e0
lea edx, [esp + 0x54]
push 0x100
push edx
mov byte [esp + 0x164], 3
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
mov eax, dword [esp + 0x54]
push 1
push eax
lea ecx, [esp + 0x54]
call sub.MFC42.DLL_CString::CString_3
push str.HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExplorerShell_Folders
lea ecx, [esp + 0x44]
mov byte [esp + 0x160], 4
call sub.MFC42.DLL_CString::CString_1
push ecx
mov byte [esp + 0x160], 5
mov ecx, esp
mov dword [esp + 0x18], esp
push str.Common_Desktop
call sub.MFC42.DLL_CString::CString_1
push ecx
lea edx, [esp + 0x48]
mov ecx, esp
mov dword [esp + 0x34], esp
push edx
mov byte [esp + 0x168], 6
call fcn.0041b7f4
lea eax, [esp + 0x50]
mov byte [esp + 0x164], 5
push eax
call fcn.00416dc0
add esp, 8
mov byte [esp + 0x160], 7
mov ecx, esp
mov dword [esp + 0x18], esp
push str.Common_Startup
call sub.MFC42.DLL_CString::CString_1
push ecx
lea edx, [esp + 0x48]
mov ecx, esp
mov dword [esp + 0x34], esp
push edx
mov byte [esp + 0x168], 8
call fcn.0041b7f4
lea eax, [esp + 0x4c]
mov byte [esp + 0x164], 7
push eax
call fcn.00416dc0
add esp, 8
mov byte [esp + 0x160], 9
mov ecx, esp
mov dword [esp + 0x18], esp
push str.Common_Programs
call sub.MFC42.DLL_CString::CString_1
push ecx
lea edx, [esp + 0x48]
mov ecx, esp
mov dword [esp + 0x34], esp
push edx
mov byte [esp + 0x168], 0xa
call fcn.0041b7f4
lea eax, [esp + 0x28]
mov byte [esp + 0x164], 9
push eax
call fcn.00416dc0
mov ecx, dword [esp + 0x3c]
mov edi, dword [sym.imp.MSVCRT.dll__mbsicmp]
push str.Desktop
push ecx
mov byte [esp + 0x170], 0xb
call edi
add esp, 0x14
test eax, eax
jne 0x41432a
lea edx, [esp + 0x48]
push 0x429044
lea eax, [esp + 0x10]
push edx
push eax
call sub.MFC42.DLL_operator
add esi, 0xc
lea ecx, [esp + 0x10]
push esi
push eax
push ecx
mov byte [esp + 0x168], 0xc
call sub.MFC42.DLL_operator_2
push str..lnk
lea edx, [esp + 0x28]
mov bl, 0xd
push eax
push edx
mov byte [esp + 0x168], bl
call sub.MFC42.DLL_operator
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x160], 0xe
call fcn.0041b82a
lea ecx, [esp + 0x24]
mov byte [esp + 0x15c], bl
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x10]
mov byte [esp + 0x15c], 0xc
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0xc]
mov byte [esp + 0x15c], 0xb
call sub.MFC42.DLL_CString::CString
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
lea eax, [esp + 0x20]
push eax
call fcn.0041b7f4
call fcn.00416b70
add esp, 4
jmp 0x4148f0
mov ecx, dword [esp + 0x30]
push str.Startup
push ecx
call edi
add esp, 8
test eax, eax
push 0x429044
jne 0x4143d5
lea edx, [esp + 0x48]
lea eax, [esp + 0x10]
push edx
push eax
call sub.MFC42.DLL_operator
add esi, 0xc
lea ecx, [esp + 0x10]
push esi
push eax
push ecx
mov byte [esp + 0x168], 0xf
call sub.MFC42.DLL_operator_2
push str..lnk
lea edx, [esp + 0x28]
mov bl, 0x10
push eax
push edx
mov byte [esp + 0x168], bl
call sub.MFC42.DLL_operator
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x160], 0x11
call fcn.0041b82a
lea ecx, [esp + 0x24]
mov byte [esp + 0x15c], bl
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x10]
mov byte [esp + 0x15c], 0xf
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0xc]
mov byte [esp + 0x15c], 0xb
call sub.MFC42.DLL_CString::CString
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
jmp 0x414313
lea ecx, [esp + 0x168]
call sub.MFC42.DLL_CString::Find_1
cmp eax, 0xffffffff
jne 0x41456f
lea ecx, [esp + 0x20]
push 0x42a014
lea edx, [esp + 0x2c]
push ecx
push edx
call sub.MFC42.DLL_operator
mov ecx, dword [esi + 0x20]
lea edx, [esp + 0x34]
add ecx, 0xd8
mov byte [esp + 0x15c], 0x12
push ecx
push eax
push edx
call sub.MFC42.DLL_operator_2
push 0x429044
push eax
lea eax, [esp + 0x40]
mov byte [esp + 0x164], 0x13
push eax
call sub.MFC42.DLL_operator
lea ecx, [esp + 0x164]
lea edx, [esp + 0x18]
push ecx
push eax
push edx
mov byte [esp + 0x168], 0x14
call sub.MFC42.DLL_operator_2
push str..lnk
push eax
lea eax, [esp + 0x14]
mov bl, 0x15
push eax
mov byte [esp + 0x168], bl
call sub.MFC42.DLL_operator
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x160], 0x16
call fcn.0041b82a
lea ecx, [esp + 0xc]
mov byte [esp + 0x15c], bl
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x18]
mov byte [esp + 0x15c], 0x14
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x38]
mov byte [esp + 0x15c], 0x13
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x34]
mov byte [esp + 0x15c], 0x12
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x28]
mov byte [esp + 0x15c], 0xb
call sub.MFC42.DLL_CString::CString
push ecx
lea edx, [esp + 0x20]
mov ecx, esp
mov dword [esp + 0x18], esp
push edx
call fcn.0041b7f4
call fcn.00416b70
add esp, 4
lea eax, [esp + 0x20]
lea ecx, [esp + 0x28]
push 0x42a014
push eax
push ecx
call sub.MFC42.DLL_operator
mov edx, dword [esi + 0x20]
mov byte [esp + 0x15c], 0x17
add edx, 0xd8
push edx
push eax
lea eax, [esp + 0x18]
push eax
call sub.MFC42.DLL_operator_2
lea ecx, [esp + 0x28]
mov byte [esp + 0x15c], 0x19
call sub.MFC42.DLL_CString::CString
push ecx
lea edx, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x18], esp
push edx
call fcn.0041b7f4
call fcn.004174e0
add esp, 4
test eax, eax
je 0x41455e
push ecx
lea eax, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x18], esp
push eax
call fcn.0041b7f4
call fcn.00416b70
add esp, 4
mov byte [esp + 0x15c], 0xb
lea ecx, [esp + 0x10]
jmp 0x414888
lea ecx, [esp + 0x14]
push eax
push ecx
lea ecx, [esp + 0x16c]
call sub.MFC42.DLL_CString::Left
mov byte [esp + 0x15c], 0x1a
call sub.MFC42.DLL_AfxGetModuleState
mov eax, dword [eax + 4]
lea edx, [esp + 0x20]
mov dword [esi + 0x20], eax
push 0x42a014
lea eax, [esp + 0x1c]
push edx
push eax
call sub.MFC42.DLL_operator
mov ecx, dword [esi + 0x20]
lea edx, [esp + 0x38]
add ecx, 0xd8
mov byte [esp + 0x15c], 0x1b
push ecx
push eax
push edx
call sub.MFC42.DLL_operator_2
push 0x429044
push eax
lea eax, [esp + 0x3c]
mov byte [esp + 0x164], 0x1c
push eax
call sub.MFC42.DLL_operator
lea ecx, [esp + 0x30]
lea edx, [esp + 0x28]
push ecx
mov bl, 0x1d
push eax
push edx
mov byte [esp + 0x168], bl
call sub.MFC42.DLL_operator_2
push ecx
mov byte [esp + 0x160], 0x1e
mov ecx, esp
mov dword [esp + 0x30], esp
push str..lnk
push eax
push ecx
call sub.MFC42.DLL_operator
call fcn.00416b70
add esp, 4
lea ecx, [esp + 0x28]
mov byte [esp + 0x15c], bl
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x34]
mov byte [esp + 0x15c], 0x1c
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x38]
mov byte [esp + 0x15c], 0x1b
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x18]
mov byte [esp + 0x15c], 0x1a
call sub.MFC42.DLL_CString::CString
lea edx, [esp + 0x20]
push 0x42a014
lea eax, [esp + 0x3c]
push edx
push eax
call sub.MFC42.DLL_operator
mov ecx, dword [esi + 0x20]
lea edx, [esp + 0x34]
add ecx, 0xd8
mov byte [esp + 0x15c], 0x1f
push ecx
push eax
push edx
call sub.MFC42.DLL_operator_2
mov byte [esp + 0x15c], 0x20
push 0x429044
push eax
lea eax, [esp + 0x30]
push eax
call sub.MFC42.DLL_operator
lea ecx, [esp + 0x30]
lea edx, [esp + 0xc]
push ecx
push eax
push edx
mov byte [esp + 0x168], 0x21
call sub.MFC42.DLL_operator_2
lea ecx, [esp + 0x28]
mov byte [esp + 0x15c], 0x25
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x34]
mov byte [esp + 0x15c], 0x24
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x38]
mov byte [esp + 0x15c], 0x23
call sub.MFC42.DLL_CString::CString
lea eax, [esp + 0x30]
lea ecx, [esp + 0x10]
push eax
call fcn.0041b7f4
mov bl, 0x26
mov byte [esp + 0x15c], bl
push 0x5c
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::ReverseFind
lea ecx, [esp + 0x18]
push eax
push ecx
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::Left
push eax
lea ecx, [esp + 0x10]
mov byte [esp + 0x160], 0x27
call fcn.0041b82a
lea ecx, [esp + 0x18]
mov byte [esp + 0x15c], bl
call sub.MFC42.DLL_CString::CString
push ecx
lea edx, [esp + 0x10]
mov ecx, esp
mov dword [esp + 0x40], esp
push edx
call fcn.0041b7f4
call fcn.004174e0
add esp, 4
test eax, eax
je 0x414779
push ecx
lea eax, [esp + 0x10]
mov ecx, esp
mov dword [esp + 0x40], esp
push eax
call fcn.0041b7f4
call fcn.00416b70
add esp, 4
push 0x5c
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::ReverseFind
mov edi, eax
lea ecx, [esp + 0x2c]
push edi
push ecx
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::Left
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x160], 0x28
call fcn.0041b82a
lea ecx, [esp + 0x2c]
mov byte [esp + 0x15c], bl
call sub.MFC42.DLL_CString::CString
cmp edi, 0xffffffff
jne 0x414707
lea edx, [esp + 0x20]
push 0x42a014
lea eax, [esp + 0x1c]
push edx
push eax
call sub.MFC42.DLL_operator
mov ecx, dword [esi + 0x20]
lea edx, [esp + 0x2c]
add ecx, 0xd8
mov byte [esp + 0x15c], 0x29
push ecx
push eax
push edx
call sub.MFC42.DLL_operator_2
push eax
lea ecx, [esp + 0x10]
mov byte [esp + 0x160], 0x2a
call fcn.0041b82a
lea ecx, [esp + 0x2c]
mov byte [esp + 0x15c], 0x29
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x18]
mov byte [esp + 0x15c], bl
call sub.MFC42.DLL_CString::CString
push ecx
lea eax, [esp + 0x10]
mov ecx, esp
mov dword [esp + 0x40], esp
push eax
call fcn.0041b7f4
call fcn.004174e0
add esp, 4
test eax, eax
je 0x41485a
push ecx
lea edx, [esp + 0x10]
mov ecx, esp
mov dword [esp + 0x40], esp
push edx
call fcn.0041b7f4
call fcn.00416b70
add esp, 4
lea ecx, [esp + 0x10]
mov byte [esp + 0x15c], 0x23
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0xc]
mov byte [esp + 0x15c], 0x1a
call sub.MFC42.DLL_CString::CString
mov byte [esp + 0x15c], 0xb
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::CString
lea eax, [esp + 0x20]
push 0x42a028
lea ecx, [esp + 0x28]
push eax
push ecx
call sub.MFC42.DLL_operator
push ecx
lea edx, [esp + 0x28]
mov ecx, esp
mov dword [esp + 0x40], esp
push edx
mov byte [esp + 0x164], 0x2b
call fcn.0041b7f4
call fcn.004174e0
add esp, 4
test eax, eax
je 0x4148df
push ecx
lea eax, [esp + 0x28]
mov ecx, esp
mov dword [esp + 0x40], esp
push eax
call fcn.0041b7f4
call fcn.00416b70
add esp, 4
lea ecx, [esp + 0x24]
mov byte [esp + 0x15c], 0xb
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x20]
mov byte [esp + 0x15c], 9
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x44]
mov byte [esp + 0x15c], 7
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x48]
mov byte [esp + 0x15c], 5
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x40]
mov byte [esp + 0x15c], 4
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x4c]
mov byte [esp + 0x15c], 3
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x50]
mov byte [esp + 0x15c], 2
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x1c]
mov byte [esp + 0x15c], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x30]
mov byte [esp + 0x15c], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x164]
mov dword [esp + 0x15c], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov ecx, dword [esp + 0x154]
pop edi
pop esi
mov eax, 1
mov dword fs:[0], ecx
pop ebx
add esp, 0x154
ret 4