Function at 0x446ca0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push 0x104
push 0x4e4f38
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
test eax, eax
je 0x446cc5
push 0x4e4f38
call dword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
push 0x104
push 0x4e5140
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
je 0x446ce4
push 0x4e5140
call dword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
call fcn.00409a90
test eax, eax
je 0x446d22
push 0x4e4f38
push str._s_system
push 0x104
push 0x4e5348
call fcn.00468336
add esp, 0x10
push 0x4e5140
push 0x104
push 0x4e5550
call fcn.0046a6ad
add esp, 0xc
jmp 0x446d55
push 0x4e5140
push 0x104
push 0x4e5348
call fcn.0046a6ad
add esp, 0xc
push 0x4e4f38
push str._s_system32
push 0x104
push 0x4e5550
call fcn.00468336
add esp, 0x10
push 0x4e5758
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
test eax, eax
je 0x446d74
push 0x4e5758
call dword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
push 0x4e5d70
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x446d93
push 0x4e5d70
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 0x446dc0
push 0x4ba0f4
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 0x4470c0
push 0x4e7df0
push 0
push 0
push 0x8023
push 0
call dword [ebp - 0x10]
test eax, eax
jl 0x446dec
push 0x4e7df0
call dword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
push 0x4e4d30
push 0
push 0
push 0x8009
push 0
call dword [ebp - 0x10]
test eax, eax
jl 0x446e0e
push 0x4e4d30
call dword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
push 0x4e5960
push 0
push 0
push 0x8026
push 0
call dword [ebp - 0x10]
test eax, eax
jl 0x446e30
push 0x4e5960
call dword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
push 0x4e7be8
push 0
push 0
push 0x801a
push 0
call dword [ebp - 0x10]
test eax, eax
jl 0x446e52
push 0x4e7be8
call dword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
push 0x4e7ff8
push 0
push 0
push 0x801c
push 0
call dword [ebp - 0x10]
test eax, eax
jl 0x446e74
push 0x4e7ff8
call dword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
push 0x4e79e0
push 0
push 0
push 0x8018
push 0
call dword [ebp - 0x10]
test eax, eax
jl 0x446e96
push 0x4e79e0
call dword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
push 0x4e77d8
push 0
push 0
push 0x8007
push 0
call dword [ebp - 0x10]
test eax, eax
jl 0x446eb8
push 0x4e77d8
call dword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
push 0x4e8200
push 0
push 0
push 0x802e
push 0
call dword [ebp - 0x10]
test eax, eax
jl 0x446eda
push 0x4e8200
call dword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
push 0x4e8408
push 0
push 0
push 0x8005
push 0
call dword [ebp - 0x10]
test eax, eax
jl 0x446efc
push 0x4e8408
call dword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
push 0x4e8818
push 0
push 0
push 0x8019
push 0
call dword [ebp - 0x10]
test eax, eax
jl 0x446f1e
push 0x4e8818
call dword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
push 0x4e8610
push 0
push 0
push 0x8010
push 0
call dword [ebp - 0x10]
test eax, eax
jl 0x446f40
push 0x4e8610
call dword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
push 0x4e5b68
push 0
push 0
push 0x802b
push 0
call dword [ebp - 0x10]
test eax, eax
jl 0x446f62
push 0x4e5b68
call dword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
push 0x4e75d0
push 0
push 0
push 0x8016
push 0
call dword [ebp - 0x10]
test eax, eax
jl 0x446f84
push 0x4e75d0
call dword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
push 0x4e73c8
push 0
push 0
push 0x800b
push 0
call dword [ebp - 0x10]
test eax, eax
jl 0x446fa6
push 0x4e73c8
call dword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
push 0x4e71c0
push 0
push 0
push 0x8017
push 0
call dword [ebp - 0x10]
test eax, eax
jl 0x446fc8
push 0x4e71c0
call dword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
push 0x4e6fb8
push 0
push 0
push 0x8002
push 0
call dword [ebp - 0x10]
test eax, eax
jl 0x446fea
push 0x4e6fb8
call dword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
push 0x4e6590
push 0
push 0
push 0x8037
push 0
call dword [ebp - 0x10]
test eax, eax
jl 0x44700c
push 0x4e6590
call dword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
push 0x4e6388
push 0
push 0
push 0x800e
push 0
call dword [ebp - 0x10]
test eax, eax
jl 0x44702e
push 0x4e6388
call dword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
push 0x4e69a0
push 0
push 0
push 0x8035
push 0
call dword [ebp - 0x10]
test eax, eax
jl 0x447050
push 0x4e69a0
call dword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
push 0x4e6798
push 0
push 0
push 0x800d
push 0
call dword [ebp - 0x10]
test eax, eax
jl 0x447072
push 0x4e6798
call dword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
push 0x4e6db0
push 0
push 0
push 0x8036
push 0
call dword [ebp - 0x10]
test eax, eax
jl 0x447094
push 0x4e6db0
call dword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
push 0x4e6ba8
push 0
push 0
push 0x8027
push 0
call dword [ebp - 0x10]
test eax, eax
jl 0x4470b6
push 0x4e6ba8
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 0x4470ed
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 0x4471ba
mov dword [ebp - 0x14], 0
lea eax, [ebp - 0x14]
push eax
push 0
push 0x1000
push 0x4000
push 0x8000
call fcn.0044a060
add esp, 8
push eax
call fcn.0044a060
add esp, 8
push eax
push 0x4c1364
call dword [ebp - 0xc]
test eax, eax
jl 0x447152
mov ecx, dword [ebp - 0x14]
push ecx
push 0x104
push 0x4e6180
call fcn.0046a6ad
add esp, 0xc
push 0x4e6180
call dword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
lea edx, [ebp - 0x14]
push edx
push 0
push 0x1000
push 0x4000
push 0x8000
call fcn.0044a060
add esp, 8
push eax
call fcn.0044a060
add esp, 8
push eax
push 0x4c1354
call dword [ebp - 0xc]
test eax, eax
jl 0x4471a6
mov eax, dword [ebp - 0x14]
push eax
push 0x104
push 0x4e5f78
call fcn.0046a6ad
add esp, 0xc
push 0x4e5f78
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 [0x4e6180]
test eax, eax
jne 0x4471e1
push 0x104
push 0x4e8818
push 0x104
push 0x4e6180
call fcn.0046afc1
add esp, 0x10
movzx ecx, word [0x4e5f78]
test ecx, ecx
jne 0x447208
push 0x104
push 0x4e8610
push 0x104
push 0x4e5f78
call fcn.0046afc1
add esp, 0x10
push 0x104
push 0x4db9e8
mov edx, dword [0x4db5bc]
push edx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
je 0x44729d
push 0x104
push 0x4db9e8
push 0x104
push 0x4db7e0
call fcn.0046afc1
add esp, 0x10
push 0x4db7e0
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
push 0x104
push 0x4db9e8
push 0x104
push 0x4dbbf0
call fcn.0046afc1
add esp, 0x10
push 0x4dbbf0
call dword [sym.imp.SHLWAPI.dll_PathStripPathW]
push 0x104
push 0x4db9e8
push 0x104
push 0x4dbdf8
call fcn.0046afc1
add esp, 0x10
push str..cfg
push 0x4dbdf8
call dword [sym.imp.SHLWAPI.dll_PathRenameExtensionW]
push 0x4e4f38
push str.InitPathVar_____WINDOWS__s
call fcn.00456fc0
add esp, 8
push 0x4e5140
push str.InitPathVar_____WINSYS__s
call fcn.00456fc0
add esp, 8
push 0x4e5758
push str.InitPathVar_____CURRENTDIR__s
call fcn.00456fc0
add esp, 8
push 0x4e5d70
push str.InitPathVar_____TEMP__s
call fcn.00456fc0
add esp, 8
push 0x4e4d30
push str.InitPathVar_____SENDTO__s
call fcn.00456fc0
add esp, 8
push 0x4e5960
push str.InitPathVar_____PROGRAMFILES__s
call fcn.00456fc0
add esp, 8
push 0x4e5b68
push str.InitPathVar_____PROGRAM_FILES_COMMON__s
call fcn.00456fc0
add esp, 8
push 0x4e6388
push str.InitPathVar_____VIDEO_USER__s
call fcn.00456fc0
add esp, 8
push 0x4e6590
push str.InitPathVar_____VIDEO_ALLUSERS__s
call fcn.00456fc0
add esp, 8
push 0x4e6798
push str.InitPathVar_____MUSIC_USER__s
call fcn.00456fc0
add esp, 8
push 0x4e69a0
push str.InitPathVar_____MUSIC_ALLUSERS__s
call fcn.00456fc0
add esp, 8
push 0x4e6ba8
push str.InitPathVar_____PICTURES_USER__s
call fcn.00456fc0
add esp, 8
push 0x4e6db0
push str.InitPathVar_____PICTURES_ALLUSERS__s
call fcn.00456fc0
add esp, 8
push 0x4e6fb8
push str.InitPathVar_____PROGRAMS_USER__s
call fcn.00456fc0
add esp, 8
push 0x4e71c0
push str.InitPathVar_____PROGRAMS_ALLUSERS__s
call fcn.00456fc0
add esp, 8
push 0x4e73c8
push str.InitPathVar_____STARTMENU_USER__s
call fcn.00456fc0
add esp, 8
push 0x4e75d0
push str.InitPathVar_____STARTMENU_ALLUSERS__s
call fcn.00456fc0
add esp, 8
push 0x4e77d8
push str.InitPathVar_____STARTUP_USER__s
call fcn.00456fc0
add esp, 8
push 0x4e79e0
push str.InitPathVar_____STARTUP_ALLUSERS__s
call fcn.00456fc0
add esp, 8
push 0x4e7be8
push str.InitPathVar_____APPDATA__s
call fcn.00456fc0
add esp, 8
push 0x4e7df0
push str.InitPathVar_____COMMON_APPDATA__s
call fcn.00456fc0
add esp, 8
push 0x4e7ff8
push str.InitPathVar_____LOCAL_APPDATA__s
call fcn.00456fc0
add esp, 8
push 0x4e8408
push str.InitPathVar_____DOCUMENTS_USER__s
call fcn.00456fc0
add esp, 8
push 0x4e8200
push str.InitPathVar_____DOCUMENTS_ALLUSERS__s
call fcn.00456fc0
add esp, 8
push 0x4e8610
push str.InitPathVar_____DESKTOP_USER__s
call fcn.00456fc0
add esp, 8
push 0x4e8818
push str.InitPathVar_____DESKTOP_ALLUSERS__s
call fcn.00456fc0
add esp, 8
push 0x4e5f78
push str.InitPathVar_____DOWNLOAD_USER__s
call fcn.00456fc0
add esp, 8
push 0x4e6180
push str.InitPathVar_____DOWNLOAD_ALLUSERS__s
call fcn.00456fc0
add esp, 8
push 0x4db9e8
push str.InitPathVar____ModuleFile_s
call fcn.00456fc0
add esp, 8
push 0x4db7e0
push str.InitPathVar____ModulePath_s
call fcn.00456fc0
add esp, 8
push 0x4dbbf0
push str.InitPathVar____ModuleFileName_s
call fcn.00456fc0
add esp, 8
push 0x4dbdf8
push str.InitPathVar____ConfigFile_s
call fcn.00456fc0
add esp, 8
mov esp, ebp
pop ebp
ret