Function at 0x416c20
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x41dea2
mov eax, dword fs:[0]
push eax
sub esp, 0x244
mov eax, dword [0x4263e4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x250], 0
push 0x200
lea eax, [ebp - 0x24c]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
lea ecx, [ebp - 0x24c]
push ecx
call fcn.00406e60
add esp, 4
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x4c], 0
jbe 0x416caa
mov edx, dword [ebp - 0x4c]
movsx eax, byte [ebp + edx - 0x24d]
cmp eax, 0x2f
je 0x416c9f
mov ecx, dword [ebp - 0x4c]
movsx edx, byte [ebp + ecx - 0x24d]
cmp edx, 0x5c
jne 0x416caa
mov eax, dword [ebp - 0x4c]
mov byte [ebp + eax - 0x24d], 0
lea ecx, [ebp - 0x24c]
push ecx
lea ecx, [ebp - 0x48]
call fcn.00401750
mov dword [ebp - 4], 0
push str.Driver_Cachei386_
lea ecx, [ebp - 0x48]
call fcn.004020e0
lea edx, [ebp - 0x48]
push edx
lea ecx, [ebp - 0x2c]
call fcn.00401d30
mov byte [ebp - 4], 1
push str.sp.cab
lea ecx, [ebp - 0x2c]
call fcn.004020e0
lea ecx, [ebp - 0x2c]
call fcn.00402000
push eax
call fcn.0041b5d0
add esp, 4
movzx eax, al
test eax, eax
je 0x416d40
lea ecx, [ebp - 0x2c]
push ecx
mov ecx, dword [ebp + 8]
call fcn.00401d30
mov edx, dword [ebp - 0x250]
or edx, 1
mov dword [ebp - 0x250], edx
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x2c]
call fcn.00401f50
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x48]
call fcn.00401f50
mov eax, dword [ebp + 8]
jmp 0x416fbb
lea eax, [ebp - 0x48]
push eax
lea ecx, [ebp - 0x2c]
call fcn.004020a0
push str.sp0.cab
lea ecx, [ebp - 0x2c]
call fcn.004020e0
lea ecx, [ebp - 0x2c]
call fcn.00402000
push eax
call fcn.0041b5d0
add esp, 4
movzx ecx, al
test ecx, ecx
je 0x416db4
lea ecx, [ebp - 0x2c]
call fcn.00402000
push eax
mov ecx, dword [ebp + 8]
call fcn.00401750
mov edx, dword [ebp - 0x250]
or edx, 1
mov dword [ebp - 0x250], edx
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x2c]
call fcn.00401f50
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x48]
call fcn.00401f50
mov eax, dword [ebp + 8]
jmp 0x416fbb
lea eax, [ebp - 0x48]
push eax
lea ecx, [ebp - 0x2c]
call fcn.004020a0
push str.sp1.cab
lea ecx, [ebp - 0x2c]
call fcn.004020e0
lea ecx, [ebp - 0x2c]
call fcn.00402000
push eax
call fcn.0041b5d0
add esp, 4
movzx ecx, al
test ecx, ecx
je 0x416e28
lea ecx, [ebp - 0x2c]
call fcn.00402000
push eax
mov ecx, dword [ebp + 8]
call fcn.00401750
mov edx, dword [ebp - 0x250]
or edx, 1
mov dword [ebp - 0x250], edx
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x2c]
call fcn.00401f50
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x48]
call fcn.00401f50
mov eax, dword [ebp + 8]
jmp 0x416fbb
lea eax, [ebp - 0x48]
push eax
lea ecx, [ebp - 0x2c]
call fcn.004020a0
push str.sp2.cab
lea ecx, [ebp - 0x2c]
call fcn.004020e0
lea ecx, [ebp - 0x2c]
call fcn.00402000
push eax
call fcn.0041b5d0
add esp, 4
movzx ecx, al
test ecx, ecx
je 0x416e9c
lea ecx, [ebp - 0x2c]
call fcn.00402000
push eax
mov ecx, dword [ebp + 8]
call fcn.00401750
mov edx, dword [ebp - 0x250]
or edx, 1
mov dword [ebp - 0x250], edx
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x2c]
call fcn.00401f50
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x48]
call fcn.00401f50
mov eax, dword [ebp + 8]
jmp 0x416fbb
lea eax, [ebp - 0x48]
push eax
lea ecx, [ebp - 0x2c]
call fcn.004020a0
push str.sp3.cab
lea ecx, [ebp - 0x2c]
call fcn.004020e0
lea ecx, [ebp - 0x2c]
call fcn.00402000
push eax
call fcn.0041b5d0
add esp, 4
movzx ecx, al
test ecx, ecx
je 0x416f10
lea ecx, [ebp - 0x2c]
call fcn.00402000
push eax
mov ecx, dword [ebp + 8]
call fcn.00401750
mov edx, dword [ebp - 0x250]
or edx, 1
mov dword [ebp - 0x250], edx
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x2c]
call fcn.00401f50
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x48]
call fcn.00401f50
mov eax, dword [ebp + 8]
jmp 0x416fbb
lea eax, [ebp - 0x48]
push eax
lea ecx, [ebp - 0x2c]
call fcn.004020a0
push str.sp4.cab
lea ecx, [ebp - 0x2c]
call fcn.004020e0
lea ecx, [ebp - 0x2c]
call fcn.00402000
push eax
call fcn.0041b5d0
add esp, 4
movzx ecx, al
test ecx, ecx
je 0x416f81
lea ecx, [ebp - 0x2c]
call fcn.00402000
push eax
mov ecx, dword [ebp + 8]
call fcn.00401750
mov edx, dword [ebp - 0x250]
or edx, 1
mov dword [ebp - 0x250], edx
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x2c]
call fcn.00401f50
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x48]
call fcn.00401f50
mov eax, dword [ebp + 8]
jmp 0x416fbb
push 0x420d53
mov ecx, dword [ebp + 8]
call fcn.00401750
mov eax, dword [ebp - 0x250]
or eax, 1
mov dword [ebp - 0x250], eax
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x2c]
call fcn.00401f50
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x48]
call fcn.00401f50
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00405248
mov esp, ebp
pop ebp
ret