Function at 0x488f6f
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xa40
mov dword [ebp - 0x418], 0
mov dword [ebp - 0x834], 0
push 0x104
lea eax, [ebp - 0x104]
push eax
call fcn.00488eae
add esp, 8
test eax, eax
jne 0x488fab
xor eax, eax
jmp 0x489245
lea ecx, [ebp - 0x104]
push ecx
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [ebp - 0x418], eax
cmp dword [ebp - 0x418], 0
jne 0x488fce
xor eax, eax
jmp 0x489245
push 5
mov edx, dword [ebp - 0x418]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x834], eax
push 0x104
lea eax, [ebp - 0x30c]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
push str._system32dllcache
lea ecx, [ebp - 0x30c]
push ecx
push 0x53f30c
push 0x104
lea edx, [ebp - 0x724]
push edx
call fcn.0040a2c0
add esp, 0x14
push str.ServicePackFilesi386
lea eax, [ebp - 0x30c]
push eax
push 0x53f32c
push 0x104
lea ecx, [ebp - 0x828]
push ecx
call fcn.0040a2c0
add esp, 0x14
push str.Driver_Cachei386
lea edx, [ebp - 0x30c]
push edx
push 0x53f348
push 0x104
lea eax, [ebp - 0x620]
push eax
call fcn.0040a2c0
add esp, 0x14
push 0x208
lea ecx, [ebp - 0xa3c]
push ecx
mov edx, dword [ebp + 0xc]
push edx
call sub.ntdll.dll_strlen
add esp, 4
add eax, 1
push eax
mov eax, dword [ebp + 0xc]
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea ecx, [ebp - 0xa3c]
push ecx
push 0
call sub.sfc.dll_SfcIsFileProtected
test eax, eax
je 0x4891eb
push 0xffffffffffffffff
lea edx, [ebp - 0xa3c]
push edx
push 0
call dword [ebp - 0x834]
mov dword [ebp - 0x82c], eax
cmp dword [ebp - 0x82c], 0
je 0x4890d0
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0xa40], eax
push 0x5c
mov eax, dword [ebp + 0xc]
push eax
call dword [sym.imp.ntdll.dll_strrchr]
add esp, 8
mov dword [ebp - 0x414], eax
cmp dword [ebp - 0x414], 0
jne 0x4890f5
xor eax, eax
jmp 0x489245
mov ecx, dword [ebp - 0x414]
add ecx, 1
mov dword [ebp - 0x414], ecx
mov edx, dword [ebp - 0x414]
push edx
lea eax, [ebp - 0x724]
push eax
push 0x53f350
push 0x104
lea ecx, [ebp - 0x208]
push ecx
call fcn.0040a2c0
add esp, 0x14
mov edx, dword [ebp - 0x414]
push edx
lea eax, [ebp - 0x828]
push eax
push 0x53f358
push 0x104
lea ecx, [ebp - 0x410]
push ecx
call fcn.0040a2c0
add esp, 0x14
mov edx, dword [ebp - 0x414]
push edx
lea eax, [ebp - 0x620]
push eax
push 0x53f360
push 0x104
lea ecx, [ebp - 0x51c]
push ecx
call fcn.0040a2c0
add esp, 0x14
lea edx, [ebp - 0x208]
push edx
call fcn.0042ae0a
add esp, 4
test eax, eax
je 0x48919f
mov eax, dword [ebp + 8]
push eax
lea ecx, [ebp - 0x208]
push ecx
call fcn.00488d4d
add esp, 8
lea edx, [ebp - 0x410]
push edx
call fcn.0042ae0a
add esp, 4
test eax, eax
je 0x4891c5
mov eax, dword [ebp + 8]
push eax
lea ecx, [ebp - 0x410]
push ecx
call fcn.00488d4d
add esp, 8
lea edx, [ebp - 0x51c]
push edx
call fcn.0042ae0a
add esp, 4
test eax, eax
je 0x4891eb
mov eax, dword [ebp + 8]
push eax
lea ecx, [ebp - 0x51c]
push ecx
call fcn.00488d4d
add esp, 8
mov edx, dword [ebp + 8]
push edx
mov eax, dword [ebp + 0xc]
push eax
call fcn.00488d4d
add esp, 8
test eax, eax
je 0x48920b
mov dword [ebp - 0x830], 1
jmp 0x489215
mov dword [ebp - 0x830], 0
push str.dllcache_
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.SHLWAPI.dll_StrStrIA]
test eax, eax
jne 0x489232
mov edx, dword [ebp + 8]
push edx
call dword [0x542978]
mov eax, dword [ebp - 0x418]
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov eax, dword [ebp - 0x830]
mov esp, ebp
pop ebp
ret