Function at 0x604860
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x240
mov eax, dword [0x78a6d4]
xor eax, ebp
mov dword [ebp - 8], eax
push ebx
push esi
mov esi, dword [ebp + 8]
lea eax, [ebp - 0x238]
push edi
push eax
push esi
lea ecx, [ebp - 0x234]
call fcn.0060ae80
lea ecx, [ebp - 0x234]
call fcn.0060adf0
mov eax, dword [ebp - 0x238]
test eax, eax
je 0x6048c8
push 0
push 0
push eax
push str.CWinsecApiImpersonateUserFromToken
push 0x45
push 0x64
push str.C:_temp_build_thehoffQuicksilver_fcs0.742171161775Quicksilver_fcs_vpnCommonIPCProcessAPI.cpp
push str.CProcessApi::IsProfileLoaded
call fcn.00612830
add esp, 0x20
xor al, al
jmp 0x604a73
lea eax, [ebp - 0x230]
mov dword [ebp - 0x230], 0
push eax
call dword [sym.imp.USERENV.dll_GetProfileType]
test eax, eax
jne 0x604912
push str.User_profile_is_not_loaded___cannot_get_profile_type_
push eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.::GetProfileType
push 0x49
push 0x6d
push str.C:_temp_build_thehoffQuicksilver_fcs0.742171161775Quicksilver_fcs_vpnCommonIPCProcessAPI.cpp
push str.CProcessApi::IsProfileLoaded
call fcn.00612830
add esp, 0x20
xor al, al
jmp 0x604a73
push 0x208
lea eax, [ebp - 0x214]
push 0
push eax
call fcn.0058d130
add esp, 0xc
mov dword [ebp - 0x23c], 0x104
lea eax, [ebp - 0x23c]
push eax
lea eax, [ebp - 0x214]
push eax
push esi
call dword [sym.imp.USERENV.dll_GetUserProfileDirectoryW]
test eax, eax
jne 0x604982
mov esi, dword [ebp - 0x230]
call dword [sym.imp.KERNEL32.dll_GetLastError]
push esi
push str.User_profile_is_not_loaded___cannot_get_profile_directory__profile_type__u_
push 0
push eax
push str.::GetUserProfileDirectory
push 0x49
push 0x79
push str.C:_temp_build_thehoffQuicksilver_fcs0.742171161775Quicksilver_fcs_vpnCommonIPCProcessAPI.cpp
push str.CProcessApi::IsProfileLoaded
call fcn.00612830
add esp, 0x24
xor al, al
jmp 0x604a73
lea eax, [ebp - 0x214]
push eax
lea ecx, [ebp - 0x22c]
call fcn.00447190
lea ecx, [ebp - 0x22c]
call fcn.0062fe50
mov edx, dword [ebp - 0x218]
test al, al
sete bl
cmp edx, 8
jb 0x6049e4
mov ecx, dword [ebp - 0x22c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x6049da
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x604a8c
push edx
push ecx
call fcn.0058ab22
add esp, 8
test bl, bl
je 0x604a71
mov ebx, dword [ebp - 0x230]
lea eax, [ebp - 0x214]
push eax
call fcn.0059a3bd
inc eax
add esp, 4
cmp eax, 0x3fffffff
jg 0x604a3d
lea esi, [eax + eax]
mov eax, esi
call fcn.0058b710
mov edi, esp
test edi, edi
je 0x604a3d
push 0
push 0
push esi
push edi
push 0xffffffffffffffff
lea eax, [ebp - 0x214]
mov byte [edi], 0
push eax
push 0
push 3
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
neg eax
sbb esi, esi
and esi, edi
jmp 0x604a3f
xor esi, esi
call dword [sym.imp.KERNEL32.dll_GetLastError]
push ebx
push esi
push str.User_profile_is_not_loaded___profile_directory___s__does_not_exist__profile_type__u_
push 0
push eax
push str.::GetUserProfileDirectory
push 0x49
push 0x82
push str.C:_temp_build_thehoffQuicksilver_fcs0.742171161775Quicksilver_fcs_vpnCommonIPCProcessAPI.cpp
push str.CProcessApi::IsProfileLoaded
call fcn.00612830
add esp, 0x28
xor al, al
jmp 0x604a73
mov al, 1
lea esp, [ebp - 0x24c]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.0058a893
mov esp, ebp
pop ebp
ret 4
call fcn.005968cf
int3