Function at 0x446770
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push 0x104
push 0x4e3b18
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
test eax, eax
je 0x446795
push 0x4e3b18
call dword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
push 0x104
push 0x4e3d20
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
je 0x4467b4
push 0x4e3d20
call dword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
call fcn.00409aa0
test eax, eax
je 0x4467f2
push 0x4e3b18
push str._s_system
push 0x104
push 0x4e3f28
call fcn.00467d96
add esp, 0x10
push 0x4e3d20
push 0x104
push 0x4e4130
call fcn.0046a10d
add esp, 0xc
jmp 0x446825
push 0x4e3d20
push 0x104
push 0x4e3f28
call fcn.0046a10d
add esp, 0xc
push 0x4e3b18
push str._s_system32
push 0x104
push 0x4e4130
call fcn.00467d96
add esp, 0x10
push 0x4e4338
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
test eax, eax
je 0x446844
push 0x4e4338
call dword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
push 0x4e4950
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x446863
push 0x4e4950
call dword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
mov dword [ebp - 0x10], 0
push str.shfolder.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x446890
push 0x4b8e6c
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
je 0x446b90
push 0x4e69d0
push 0
push 0
push 0x8023
push 0
call dword [ebp - 0x10]
test eax, eax
jl 0x4468bc
push 0x4e69d0
call dword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
push 0x4e3910
push 0
push 0
push 0x8009
push 0
call dword [ebp - 0x10]
test eax, eax
jl 0x4468de
push 0x4e3910
call dword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
push 0x4e4540
push 0
push 0
push 0x8026
push 0
call dword [ebp - 0x10]
test eax, eax
jl 0x446900
push 0x4e4540
call dword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
push 0x4e67c8
push 0
push 0
push 0x801a
push 0
call dword [ebp - 0x10]
test eax, eax
jl 0x446922
push 0x4e67c8
call dword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
push 0x4e6bd8
push 0
push 0
push 0x801c
push 0
call dword [ebp - 0x10]
test eax, eax
jl 0x446944
push 0x4e6bd8
call dword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
push 0x4e65c0
push 0
push 0
push 0x8018
push 0
call dword [ebp - 0x10]
test eax, eax
jl 0x446966
push 0x4e65c0
call dword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
push 0x4e63b8
push 0
push 0
push 0x8007
push 0
call dword [ebp - 0x10]
test eax, eax
jl 0x446988
push 0x4e63b8
call dword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
push 0x4e6de0
push 0
push 0
push 0x802e
push 0
call dword [ebp - 0x10]
test eax, eax
jl 0x4469aa
push 0x4e6de0
call dword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
push 0x4e6fe8
push 0
push 0
push 0x8005
push 0
call dword [ebp - 0x10]
test eax, eax
jl 0x4469cc
push 0x4e6fe8
call dword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
push 0x4e73f8
push 0
push 0
push 0x8019
push 0
call dword [ebp - 0x10]
test eax, eax
jl 0x4469ee
push 0x4e73f8
call dword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
push 0x4e71f0
push 0
push 0
push 0x8010
push 0
call dword [ebp - 0x10]
test eax, eax
jl 0x446a10
push 0x4e71f0
call dword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
push 0x4e4748
push 0
push 0
push 0x802b
push 0
call dword [ebp - 0x10]
test eax, eax
jl 0x446a32
push 0x4e4748
call dword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
push 0x4e61b0
push 0
push 0
push 0x8016
push 0
call dword [ebp - 0x10]
test eax, eax
jl 0x446a54
push 0x4e61b0
call dword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
push 0x4e5fa8
push 0
push 0
push 0x800b
push 0
call dword [ebp - 0x10]
test eax, eax
jl 0x446a76
push 0x4e5fa8
call dword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
push 0x4e5da0
push 0
push 0
push 0x8017
push 0
call dword [ebp - 0x10]
test eax, eax
jl 0x446a98
push 0x4e5da0
call dword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
push 0x4e5b98
push 0
push 0
push 0x8002
push 0
call dword [ebp - 0x10]
test eax, eax
jl 0x446aba
push 0x4e5b98
call dword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
push 0x4e5170
push 0
push 0
push 0x8037
push 0
call dword [ebp - 0x10]
test eax, eax
jl 0x446adc
push 0x4e5170
call dword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
push 0x4e4f68
push 0
push 0
push 0x800e
push 0
call dword [ebp - 0x10]
test eax, eax
jl 0x446afe
push 0x4e4f68
call dword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
push 0x4e5580
push 0
push 0
push 0x8035
push 0
call dword [ebp - 0x10]
test eax, eax
jl 0x446b20
push 0x4e5580
call dword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
push 0x4e5378
push 0
push 0
push 0x800d
push 0
call dword [ebp - 0x10]
test eax, eax
jl 0x446b42
push 0x4e5378
call dword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
push 0x4e5990
push 0
push 0
push 0x8036
push 0
call dword [ebp - 0x10]
test eax, eax
jl 0x446b64
push 0x4e5990
call dword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
push 0x4e5788
push 0
push 0
push 0x8027
push 0
call dword [ebp - 0x10]
test eax, eax
jl 0x446b86
push 0x4e5788
call dword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov dword [ebp - 0xc], 0
push str.shell32
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x446bbd
push str.SHGetKnownFolderPath
mov edx, dword [ebp - 8]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
je 0x446c8a
mov dword [ebp - 0x14], 0
lea eax, [ebp - 0x14]
push eax
push 0
push 0x1000
push 0x4000
push 0x8000
call fcn.00449a90
add esp, 8
push eax
call fcn.00449a90
add esp, 8
push eax
push 0x4c0114
call dword [ebp - 0xc]
test eax, eax
jl 0x446c22
mov ecx, dword [ebp - 0x14]
push ecx
push 0x104
push 0x4e4d60
call fcn.0046a10d
add esp, 0xc
push 0x4e4d60
call dword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
lea edx, [ebp - 0x14]
push edx
push 0
push 0x1000
push 0x4000
push 0x8000
call fcn.00449a90
add esp, 8
push eax
call fcn.00449a90
add esp, 8
push eax
push 0x4c0104
call dword [ebp - 0xc]
test eax, eax
jl 0x446c76
mov eax, dword [ebp - 0x14]
push eax
push 0x104
push 0x4e4b58
call fcn.0046a10d
add esp, 0xc
push 0x4e4b58
call dword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
mov ecx, dword [ebp - 0x14]
push ecx
call dword [sym.imp.ole32.dll_CoTaskMemFree]
mov edx, dword [ebp - 8]
push edx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
movzx eax, word [0x4e4d60]
test eax, eax
jne 0x446cb1
push 0x104
push 0x4e73f8
push 0x104
push 0x4e4d60
call fcn.0046aa21
add esp, 0x10
movzx ecx, word [0x4e4b58]
test ecx, ecx
jne 0x446cd8
push 0x104
push 0x4e71f0
push 0x104
push 0x4e4b58
call fcn.0046aa21
add esp, 0x10
push 0x104
push 0x4da5c8
mov edx, dword [0x4d2e1c]
push edx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
je 0x446d6d
push 0x104
push 0x4da5c8
push 0x104
push 0x4da3c0
call fcn.0046aa21
add esp, 0x10
push 0x4da3c0
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
push 0x104
push 0x4da5c8
push 0x104
push 0x4da7d0
call fcn.0046aa21
add esp, 0x10
push 0x4da7d0
call dword [sym.imp.SHLWAPI.dll_PathStripPathW]
push 0x104
push 0x4da5c8
push 0x104
push 0x4da9d8
call fcn.0046aa21
add esp, 0x10
push str..cfg
push 0x4da9d8
call dword [sym.imp.SHLWAPI.dll_PathRenameExtensionW]
push 0x4e3b18
push str.InitPathVar_____WINDOWS__s
call fcn.00456a00
add esp, 8
push 0x4e3d20
push str.InitPathVar_____WINSYS__s
call fcn.00456a00
add esp, 8
push 0x4e4338
push str.InitPathVar_____CURRENTDIR__s
call fcn.00456a00
add esp, 8
push 0x4e4950
push str.InitPathVar_____TEMP__s
call fcn.00456a00
add esp, 8
push 0x4e3910
push str.InitPathVar_____SENDTO__s
call fcn.00456a00
add esp, 8
push 0x4e4540
push str.InitPathVar_____PROGRAMFILES__s
call fcn.00456a00
add esp, 8
push 0x4e4748
push str.InitPathVar_____PROGRAM_FILES_COMMON__s
call fcn.00456a00
add esp, 8
push 0x4e4f68
push str.InitPathVar_____VIDEO_USER__s
call fcn.00456a00
add esp, 8
push 0x4e5170
push str.InitPathVar_____VIDEO_ALLUSERS__s
call fcn.00456a00
add esp, 8
push 0x4e5378
push str.InitPathVar_____MUSIC_USER__s
call fcn.00456a00
add esp, 8
push 0x4e5580
push str.InitPathVar_____MUSIC_ALLUSERS__s
call fcn.00456a00
add esp, 8
push 0x4e5788
push str.InitPathVar_____PICTURES_USER__s
call fcn.00456a00
add esp, 8
push 0x4e5990
push str.InitPathVar_____PICTURES_ALLUSERS__s
call fcn.00456a00
add esp, 8
push 0x4e5b98
push str.InitPathVar_____PROGRAMS_USER__s
call fcn.00456a00
add esp, 8
push 0x4e5da0
push str.InitPathVar_____PROGRAMS_ALLUSERS__s
call fcn.00456a00
add esp, 8
push 0x4e5fa8
push str.InitPathVar_____STARTMENU_USER__s
call fcn.00456a00
add esp, 8
push 0x4e61b0
push str.InitPathVar_____STARTMENU_ALLUSERS__s
call fcn.00456a00
add esp, 8
push 0x4e63b8
push str.InitPathVar_____STARTUP_USER__s
call fcn.00456a00
add esp, 8
push 0x4e65c0
push str.InitPathVar_____STARTUP_ALLUSERS__s
call fcn.00456a00
add esp, 8
push 0x4e67c8
push str.InitPathVar_____APPDATA__s
call fcn.00456a00
add esp, 8
push 0x4e69d0
push str.InitPathVar_____COMMON_APPDATA__s
call fcn.00456a00
add esp, 8
push 0x4e6bd8
push str.InitPathVar_____LOCAL_APPDATA__s
call fcn.00456a00
add esp, 8
push 0x4e6fe8
push str.InitPathVar_____DOCUMENTS_USER__s
call fcn.00456a00
add esp, 8
push 0x4e6de0
push str.InitPathVar_____DOCUMENTS_ALLUSERS__s
call fcn.00456a00
add esp, 8
push 0x4e71f0
push str.InitPathVar_____DESKTOP_USER__s
call fcn.00456a00
add esp, 8
push 0x4e73f8
push str.InitPathVar_____DESKTOP_ALLUSERS__s
call fcn.00456a00
add esp, 8
push 0x4e4b58
push str.InitPathVar_____DOWNLOAD_USER__s
call fcn.00456a00
add esp, 8
push 0x4e4d60
push str.InitPathVar_____DOWNLOAD_ALLUSERS__s
call fcn.00456a00
add esp, 8
push 0x4da5c8
push str.InitPathVar____ModuleFile_s
call fcn.00456a00
add esp, 8
push 0x4da3c0
push str.InitPathVar____ModulePath_s
call fcn.00456a00
add esp, 8
push 0x4da7d0
push str.InitPathVar____ModuleFileName_s
call fcn.00456a00
add esp, 8
push 0x4da9d8
push str.InitPathVar____ConfigFile_s
call fcn.00456a00
add esp, 8
mov esp, ebp
pop ebp
ret