Function at 0x4504f0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [0x4a86f0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
lea eax, [ebp - 0x14]
push eax
call dword [sym.imp.ole32.dll_CoCreateGuid]
test eax, eax
jne 0x450533
movdqu xmm0, xmmword [ebp - 0x14]
push 0x104
push 0x4b5148
sub esp, 0x10
mov eax, esp
movdqu xmmword [eax], xmm0
call fcn.0042db30
add esp, 0x18
jmp 0x45054a
push str.A6E044B8_6C25_48fc_806B_002A9582C81F
push 0x104
push 0x4b5148
call fcn.0046bf5a
add esp, 0xc
push 0x104
push 0x4b5558
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
mov esi, dword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
test eax, eax
je 0x45056b
push 0x4b5558
call esi
push 0x104
push 0x4b5760
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
je 0x450586
push 0x4b5760
call esi
call fcn.0042dff0
test eax, eax
je 0x4505be
push 0x4b5558
push str._s_system
push 0x104
push 0x4b5968
call fcn.0046988e
push 0x4b5760
push 0x104
push 0x4b5b70
call fcn.0046bf5a
jmp 0x4505eb
push 0x4b5760
push 0x104
push 0x4b5968
call fcn.0046bf5a
push 0x4b5558
push str._s_system32
push 0x104
push 0x4b5b70
call fcn.0046988e
add esp, 0x1c
push 0x4c3268
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
test eax, eax
je 0x450609
push 0x4c3268
call esi
push 0x4b6188
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x450624
push 0x4b6188
call esi
push str.shfolder.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov ebx, eax
test ebx, ebx
je 0x4508d4
push 0x492754
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edi, eax
test edi, edi
je 0x4508d4
push 0x4b8000
push 0
push 0
push 0x8023
push 0
call edi
test eax, eax
js 0x45066c
push 0x4b8000
call esi
push 0x4b5350
push 0
push 0
push 0x8009
push 0
call edi
test eax, eax
js 0x450689
push 0x4b5350
call esi
push 0x4b5d78
push 0
push 0
push 0x8026
push 0
call edi
test eax, eax
js 0x4506a6
push 0x4b5d78
call esi
push 0x4c3060
push 0
push 0
push 0x801a
push 0
call edi
test eax, eax
js 0x4506c3
push 0x4c3060
call esi
push 0x4b8208
push 0
push 0
push 0x801c
push 0
call edi
test eax, eax
js 0x4506e0
push 0x4b8208
call esi
push 0x4b7df8
push 0
push 0
push 0x8018
push 0
call edi
test eax, eax
js 0x4506fd
push 0x4b7df8
call esi
push 0x4b7bf0
push 0
push 0
push 0x8007
push 0
call edi
test eax, eax
js 0x45071a
push 0x4b7bf0
call esi
push 0x4b8410
push 0
push 0
push 0x802e
push 0
call edi
test eax, eax
js 0x450737
push 0x4b8410
call esi
push 0x4b8618
push 0
push 0
push 0x8005
push 0
call edi
test eax, eax
js 0x450754
push 0x4b8618
call esi
push 0x4b8a28
push 0
push 0
push 0x8019
push 0
call edi
test eax, eax
js 0x450771
push 0x4b8a28
call esi
push 0x4b8820
push 0
push 0
push 0x8010
push 0
call edi
test eax, eax
js 0x45078e
push 0x4b8820
call esi
push 0x4b5f80
push 0
push 0
push 0x802b
push 0
call edi
test eax, eax
js 0x4507ab
push 0x4b5f80
call esi
push 0x4b79e8
push 0
push 0
push 0x8016
push 0
call edi
test eax, eax
js 0x4507c8
push 0x4b79e8
call esi
push 0x4b77e0
push 0
push 0
push 0x800b
push 0
call edi
test eax, eax
js 0x4507e5
push 0x4b77e0
call esi
push 0x4b75d8
push 0
push 0
push 0x8017
push 0
call edi
test eax, eax
js 0x450802
push 0x4b75d8
call esi
push 0x4b73d0
push 0
push 0
push 0x8002
push 0
call edi
test eax, eax
js 0x45081f
push 0x4b73d0
call esi
push 0x4b69a8
push 0
push 0
push 0x8037
push 0
call edi
test eax, eax
js 0x45083c
push 0x4b69a8
call esi
push 0x4b67a0
push 0
push 0
push 0x800e
push 0
call edi
test eax, eax
js 0x450859
push 0x4b67a0
call esi
push 0x4b6db8
push 0
push 0
push 0x8035
push 0
call edi
test eax, eax
js 0x450876
push 0x4b6db8
call esi
push 0x4b6bb0
push 0
push 0
push 0x800d
push 0
call edi
test eax, eax
js 0x450893
push 0x4b6bb0
call esi
push 0x4b71c8
push 0
push 0
push 0x8036
push 0
call edi
test eax, eax
js 0x4508b0
push 0x4b71c8
call esi
push 0x4b6fc0
push 0
push 0
push 0x8027
push 0
call edi
test eax, eax
js 0x4508cd
push 0x4b6fc0
call esi
push ebx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push str.shell32
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov edi, eax
test edi, edi
je 0x450976
push str.SHGetKnownFolderPath
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ebx, eax
test ebx, ebx
je 0x450976
lea eax, [ebp - 0x18]
mov dword [ebp - 0x18], 0
push eax
push 0
push 0xd000
push 0x4980d8
call ebx
test eax, eax
js 0x450934
push dword [ebp - 0x18]
push 0x104
push 0x4b6598
call fcn.0046bf5a
add esp, 0xc
push 0x4b6598
call esi
lea eax, [ebp - 0x18]
push eax
push 0
push 0xd000
push 0x4980c8
call ebx
test eax, eax
js 0x450966
push dword [ebp - 0x18]
push 0x104
push 0x4b6390
call fcn.0046bf5a
add esp, 0xc
push 0x4b6390
call esi
push dword [ebp - 0x18]
call dword [sym.imp.ole32.dll_CoTaskMemFree]
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp word [0x4b6598], 0
jne 0x45099c
push 0x104
push 0x4b8a28
push 0x104
push 0x4b6598
call fcn.0046cc55
add esp, 0x10
cmp word [0x4b6390], 0
jne 0x4509c2
push 0x104
push 0x4b8820
push 0x104
push 0x4b6390
call fcn.0046cc55
add esp, 0x10
push 0x104
push 0x4ac210
push dword [0x4c1264]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
je 0x450a56
push 0x104
push 0x4ac210
push 0x104
push 0x4ac008
call fcn.0046cc55
add esp, 0x10
push 0x4ac008
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
push 0x104
push 0x4ac210
push 0x104
push 0x4ac418
call fcn.0046cc55
add esp, 0x10
push 0x4ac418
call dword [sym.imp.SHLWAPI.dll_PathStripPathW]
push 0x104
push 0x4ac210
push 0x104
push 0x4ac620
call fcn.0046cc55
add esp, 0x10
push str..cfg
push 0x4ac620
call dword [sym.imp.SHLWAPI.dll_PathRenameExtensionW]
push 0x4b5558
push str.InitPathVar_____WINDOWS__:__s
call fcn.0045f520
push 0x4b5760
push str.InitPathVar_____WINSYS__:__s
call fcn.0045f520
push 0x4c3268
push str.InitPathVar_____CURRENTDIR__:__s
call fcn.0045f520
push 0x4b6188
push str.InitPathVar_____TEMP__:__s
call fcn.0045f520
push 0x4b5350
push str.InitPathVar_____SENDTO__:__s
call fcn.0045f520
push 0x4b5d78
push str.InitPathVar_____PROGRAMFILES__:__s
call fcn.0045f520
push 0x4b5f80
push str.InitPathVar_____PROGRAM_FILES_COMMON__:__s
call fcn.0045f520
push 0x4b67a0
push str.InitPathVar_____VIDEO_USER__:__s
call fcn.0045f520
add esp, 0x40
push 0x4b69a8
push str.InitPathVar_____VIDEO_ALLUSERS__:__s
call fcn.0045f520
push 0x4b6bb0
push str.InitPathVar_____MUSIC_USER__:__s
call fcn.0045f520
push 0x4b6db8
push str.InitPathVar_____MUSIC_ALLUSERS__:__s
call fcn.0045f520
push 0x4b6fc0
push str.InitPathVar_____PICTURES_USER__:__s
call fcn.0045f520
push 0x4b71c8
push str.InitPathVar_____PICTURES_ALLUSERS__:__s
call fcn.0045f520
push 0x4b73d0
push str.InitPathVar_____PROGRAMS_USER__:__s
call fcn.0045f520
push 0x4b75d8
push str.InitPathVar_____PROGRAMS_ALLUSERS__:__s
call fcn.0045f520
push 0x4b77e0
push str.InitPathVar_____STARTMENU_USER__:__s
call fcn.0045f520
add esp, 0x40
push 0x4b79e8
push str.InitPathVar_____STARTMENU_ALLUSERS__:__s
call fcn.0045f520
push 0x4b7bf0
push str.InitPathVar_____STARTUP_USER__:__s
call fcn.0045f520
push 0x4b7df8
push str.InitPathVar_____STARTUP_ALLUSERS__:__s
call fcn.0045f520
push 0x4c3060
push str.InitPathVar_____APPDATA__:__s
call fcn.0045f520
push 0x4b8000
push str.InitPathVar_____COMMON_APPDATA__:__s
call fcn.0045f520
push 0x4b8208
push str.InitPathVar_____LOCAL_APPDATA__:__s
call fcn.0045f520
push 0x4b8618
push str.InitPathVar_____DOCUMENTS_USER__:__s
call fcn.0045f520
push 0x4b8410
push str.InitPathVar_____DOCUMENTS_ALLUSERS__:__s
call fcn.0045f520
add esp, 0x40
push 0x4b8820
push str.InitPathVar_____DESKTOP_USER__:__s
call fcn.0045f520
push 0x4b8a28
push str.InitPathVar_____DESKTOP_ALLUSERS__:__s
call fcn.0045f520
push 0x4b6390
push str.InitPathVar_____DOWNLOAD_USER__:__s
call fcn.0045f520
push 0x4b6598
push str.InitPathVar_____DOWNLOAD_ALLUSERS__:__s
call fcn.0045f520
push 0x4ac210
push str.InitPathVar____ModuleFile:__s
call fcn.0045f520
push 0x4ac008
push str.InitPathVar____ModulePath:__s
call fcn.0045f520
push 0x4ac418
push str.InitPathVar____ModuleFileName:__s
call fcn.0045f520
push 0x4ac620
push str.InitPathVar____ConfigFile:__s
call fcn.0045f520
add esp, 0x40
push 0x4b5148
push str.InitPathVar____NewGuid:__s
call fcn.0045f520
mov ecx, dword [ebp - 4]
add esp, 8
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.004698aa
mov esp, ebp
pop ebp
ret