Function at 0x45f310
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4a38a1
mov eax, dword fs:[0]
push eax
mov eax, 0x2694
call fcn.004957d0
mov eax, dword [0x4c9614]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, dword [ebp + 8]
mov esi, ecx
xor edi, edi
mov dword [ebp - 0x2664], esi
mov dword [ebp - method.CFileVersion.virtual_0], vtable.CFileVersion.0
mov dword [ebp - 0x221c], edi
push ebx
lea eax, [ebp - 0x2428]
mov dword [ebp - 4], edi
call fcn.00469270
push 0x208
lea eax, [ebp - 0x218]
push edi
push eax
call fcn.004845b0
add esp, 0xc
push 0x104
lea ecx, [ebp - 0x218]
push ecx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
test eax, eax
je 0x45f4eb
lea edx, [ebp - 0x218]
push edx
push ebx
call dword [sym.imp.SHLWAPI.dll_StrStrIW]
test eax, eax
je 0x45f4eb
mov ecx, ebx
call fcn.004644e0
test eax, eax
je 0x45f4eb
cmp dword [ebp + 0xc], edi
je 0x45f4ba
lea eax, [ebp - 0x2658]
push eax
call fcn.0040fa10
push ecx
mov eax, esp
mov ebx, 1
mov byte [ebp - 4], bl
mov dword [ebp - 0x265c], esp
push ecx
mov dword [eax], edi
mov eax, esp
mov dword [ebp - 0x265c], esp
push esi
lea esi, [ebp - 0x262c]
mov dword [eax], edi
call fcn.00412210
cmp eax, edi
je 0x45f4aa
lea ecx, [ebp - 0x2684]
push str.IDS_WINDOW_TITLE
push ecx
or ecx, 0xffffffff
call fcn.004046e0
add esp, 8
mov esi, 8
mov byte [ebp - 4], 2
cmp dword [eax + 0x18], esi
jb 0x45f433
mov eax, dword [eax + 4]
jmp 0x45f436
add eax, 4
mov ecx, eax
lea edi, [ebp - 0x2658]
call 0x4117e0
lea ecx, [ebp - 0x2684]
mov byte [ebp - 4], bl
call fcn.00401420
mov ecx, dword [ebp - 0x2664]
lea edx, [ebp - 0x2684]
push str.IDS_SYS_EXE_NOT_IN_SB
push edx
call fcn.004046e0
add esp, 8
mov byte [ebp - 4], 3
cmp dword [eax + 0x18], esi
jb 0x45f479
mov eax, dword [eax + 4]
jmp 0x45f47c
add eax, 4
push 0
push 0
push eax
push 0
lea ecx, [ebp - 0x2658]
call int.00411960
lea ecx, [ebp - 0x2684]
mov byte [ebp - 4], bl
call fcn.00401420
push ebx
lea esi, [ebp - 0x2658]
call fcn.004116c0
xor edi, edi
lea eax, [ebp - 0x2658]
push eax
mov byte [ebp - 4], 0
call fcn.0040fbb0
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x221c]
mov dword [ebp - method.CFileVersion.virtual_0], vtable.CFileVersion.0
cmp eax, edi
je 0x45f4e4
push eax
call fcn.0047ff1e
add esp, 4
mov dword [ebp - 0x221c], edi
xor eax, eax
jmp 0x45f716
lea ecx, [ebp - 0x2668]
mov dword [ebp - 0x2660], edi
push ecx
lea edi, [ebp - 0x2660]
lea esi, [ebp - 0x2428]
call fcn.00454b60
xor esi, esi
push 0x38
lea edx, [ebp - 0x26a0]
push esi
push edx
mov dword [ebp - 0x265c], esi
call fcn.004845b0
lea eax, [ebp - 0x2218]
lea ecx, [ebp - 0x265c]
add esp, 0xc
mov dword [ebp - 0x2674], eax
push ecx
lea edi, [ebp - 0x26a0]
mov eax, ebx
mov dword [ebp - 0x2670], 0x2000
call fcn.00477360
add esp, 4
test eax, eax
je 0x45f6e7
mov eax, 3
cmp dword [ebp - 0x265c], eax
jne 0x45f6e7
cmp dword [ebp - 0x269c], eax
je 0x45f6e7
cmp dword [ebp - 0x2660], esi
je 0x45f5c0
xor ebx, ebx
mov edx, dword [ebx + 0x4cc790]
mov eax, edx
lea edi, [eax + 2]
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
cmp cx, si
jne 0x45f590
sub eax, edi
sar eax, 1
push eax
push edx
mov edx, dword [ebp - 0x2660]
push edx
call fcn.0047f911
add esp, 0xc
test eax, eax
je 0x45f6e7
add ebx, 4
cmp ebx, 0x1c
jb 0x45f57f
cmp dword [ebp + 0xc], esi
je 0x45f6b9
lea eax, [ebp - 0x2658]
push eax
call fcn.0040fa10
mov ebx, dword [ebp - 0x2664]
push ecx
mov byte [ebp - 4], 4
mov eax, esp
mov dword [ebp - 0x265c], esp
push ecx
mov dword [eax], esi
mov eax, esp
mov dword [ebp - 0x265c], esp
mov dword [eax], esi
push ebx
lea esi, [ebp - 0x262c]
call fcn.00412210
test eax, eax
je 0x45f6a7
lea ecx, [ebp - 0x2684]
push str.IDS_WINDOW_TITLE
push ecx
or ecx, 0xffffffff
call fcn.004046e0
add esp, 8
mov esi, 8
mov byte [ebp - 4], 5
cmp dword [eax + 0x18], esi
jb 0x45f633
mov eax, dword [eax + 4]
jmp 0x45f636
add eax, 4
mov ecx, eax
lea edi, [ebp - 0x2658]
call 0x4117e0
lea ecx, [ebp - 0x2684]
mov byte [ebp - 4], 4
call fcn.00401420
lea edx, [ebp - 0x2684]
push str.IDS_360EXE_NOT_IN_SB
push edx
mov ecx, ebx
call fcn.004046e0
add esp, 8
mov byte [ebp - 4], 6
cmp dword [eax + 0x18], esi
jb 0x45f676
mov eax, dword [eax + 4]
jmp 0x45f679
add eax, 4
push 0
push 0
push eax
push 0
lea ecx, [ebp - 0x2658]
call int.00411960
lea ecx, [ebp - 0x2684]
mov byte [ebp - 4], 4
call fcn.00401420
push 1
lea esi, [ebp - 0x2658]
call fcn.004116c0
lea eax, [ebp - 0x2658]
push eax
mov byte [ebp - 4], 0
call fcn.0040fbb0
xor esi, esi
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x221c]
mov dword [ebp - method.CFileVersion.virtual_0], vtable.CFileVersion.0
cmp eax, esi
je 0x45f6e3
push eax
call fcn.0047ff1e
add esp, 4
mov dword [ebp - 0x221c], esi
xor eax, eax
jmp 0x45f716
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x221c]
mov dword [ebp - method.CFileVersion.virtual_0], vtable.CFileVersion.0
cmp eax, esi
je 0x45f711
push eax
call fcn.0047ff1e
add esp, 4
mov dword [ebp - 0x221c], esi
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0047e6eb
mov esp, ebp
pop ebp
ret