Function at 0x48dad0
Capabilities:
Check if file exists
Get common file path
Get program files directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x53c148
mov eax, dword fs:[0]
push eax
sub esp, 0xe70
mov eax, dword [0x58c758]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0xe7c], ecx
xor eax, eax
mov word [ebp - 0x63c], ax
push 0x206
push 0
lea ecx, [ebp - 0x63a]
push ecx
call fcn.004b0ac0
add esp, 0xc
xor edx, edx
mov word [ebp - 0x42c], dx
push 0x206
push 0
lea eax, [ebp - 0x42a]
push eax
call fcn.004b0ac0
add esp, 0xc
xor ecx, ecx
mov word [ebp - 0x21c], cx
push 0x206
push 0
lea edx, [ebp - 0x21a]
push edx
call fcn.004b0ac0
add esp, 0xc
lea eax, [ebp - 0x42c]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
mov dword [ebp - 0x220], eax
cmp dword [ebp - 0x220], 0
je 0x48db8b
cmp dword [ebp - 0x220], 0x104
jbe 0x48db92
xor eax, eax
jmp 0x48dfc6
lea ecx, [ebp - 0x21c]
push ecx
push 0
push 0x54a5d0
lea edx, [ebp - 0x42c]
push edx
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
mov dword [ebp - 0x220], eax
cmp dword [ebp - 0x220], 0
jne 0x48dbc3
xor eax, eax
jmp 0x48dfc6
push 0x208
lea eax, [ebp - 0x63c]
push eax
lea ecx, [ebp - 0x21c]
push ecx
call dword [sym.imp.KERNEL32.dll_GetShortPathNameW]
mov dword [ebp - 0x220], eax
cmp dword [ebp - 0x220], 0
jne 0x48dbf2
xor eax, eax
jmp 0x48dfc6
push 0x208
push 0
lea edx, [ebp - 0x21c]
push edx
call fcn.004b0ac0
add esp, 0xc
lea eax, [ebp - 0x63c]
push eax
lea ecx, [ebp - 0x21c]
push ecx
call fcn.004b1f36
add esp, 8
push 0x208
push 0
lea edx, [ebp - 0x63c]
push edx
call fcn.004b0ac0
add esp, 0xc
mov dword [ebp - 0xe74], 0x540868
mov dword [ebp - 0xe70], str.system
mov dword [ebp - 0xe6c], str.system32
mov dword [ebp - 0xe68], str.fonts
mov dword [ebp - 0xe64], str.system32drivers
mov dword [ebp - 0xe60], str.system32dllcache
mov dword [ebp - 0xe5c], str.temp
mov dword [ebp - 0xe58], str.tasks
mov dword [ebp - 0xe54], 0x54a538
mov dword [ebp - 0xe50], str.Common_Files
mov dword [ebp - 0xe4c], str.Common_FilesSystem
mov dword [ebp - 0xe48], str.Common_FilesMicrosoft_SharedDAO
mov dword [ebp - 0x640], 0
mov dword [ebp - 0x430], 0
lea ecx, [ebp - 0x224]
call fcn.00403840
mov dword [ebp - 4], 0
xor eax, eax
mov word [ebp - 0xe44], ax
push 0x7fe
push 0
lea ecx, [ebp - 0xe42]
push ecx
call fcn.004b0ac0
add esp, 0xc
lea edx, [ebp - 0x63c]
push edx
push 0
push 0
push 0x24
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
jl 0x48de38
push 0x208
push 0
lea eax, [ebp - 0x42c]
push eax
call fcn.004b0ac0
add esp, 0xc
lea ecx, [ebp - 0x63c]
push ecx
lea edx, [ebp - 0x42c]
push edx
call fcn.004b1f36
add esp, 8
mov eax, dword [ebp - 0x640]
mov ecx, dword [ebp + eax*4 - 0xe74]
push ecx
call fcn.004b0eb7
add esp, 4
test eax, eax
jbe 0x48dd68
push 0x5408ec
lea edx, [ebp - 0x42c]
push edx
call fcn.004b1f08
add esp, 8
mov eax, dword [ebp - 0x640]
mov ecx, dword [ebp + eax*4 - 0xe74]
push ecx
lea edx, [ebp - 0x42c]
push edx
call fcn.004b1f08
add esp, 8
push 0x800
push 0
lea eax, [ebp - 0xe44]
push eax
call fcn.004b0ac0
add esp, 0xc
lea ecx, [ebp - 0x42c]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x48de1c
push 0x800
lea edx, [ebp - 0xe44]
push edx
lea eax, [ebp - 0x42c]
push eax
call dword [sym.imp.KERNEL32.dll_GetShortPathNameW]
test eax, eax
je 0x48de1c
mov ecx, dword [ebp - 0x430]
push ecx
push 0x542fc8
lea edx, [ebp - 0x224]
push edx
call fcn.00409170
add esp, 0xc
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0xe44]
push ecx
lea ecx, [ebp - 0x224]
call fcn.0043e290
push eax
push 0x5409f0
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
test eax, eax
je 0x48de1c
mov edx, dword [ebp - 0x430]
add edx, 1
mov dword [ebp - 0x430], edx
mov eax, dword [ebp - 0x640]
add eax, 1
mov dword [ebp - 0x640], eax
cmp dword [ebp - 0x640], 9
jl 0x48dd0e
push 0x208
push 0
lea ecx, [ebp - 0x63c]
push ecx
call fcn.004b0ac0
add esp, 0xc
lea edx, [ebp - 0x63c]
push edx
push 0
push 0
push 0x26
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
jl 0x48df95
push 0x208
push 0
lea eax, [ebp - 0x42c]
push eax
call fcn.004b0ac0
add esp, 0xc
lea ecx, [ebp - 0x63c]
push ecx
lea edx, [ebp - 0x42c]
push edx
call fcn.004b1f36
add esp, 8
mov eax, dword [ebp - 0x640]
mov ecx, dword [ebp + eax*4 - 0xe74]
push ecx
call fcn.004b0eb7
add esp, 4
test eax, eax
jbe 0x48dec5
push 0x5408ec
lea edx, [ebp - 0x42c]
push edx
call fcn.004b1f08
add esp, 8
mov eax, dword [ebp - 0x640]
mov ecx, dword [ebp + eax*4 - 0xe74]
push ecx
lea edx, [ebp - 0x42c]
push edx
call fcn.004b1f08
add esp, 8
push 0x800
push 0
lea eax, [ebp - 0xe44]
push eax
call fcn.004b0ac0
add esp, 0xc
lea ecx, [ebp - 0x42c]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x48df79
push 0x800
lea edx, [ebp - 0xe44]
push edx
lea eax, [ebp - 0x42c]
push eax
call dword [sym.imp.KERNEL32.dll_GetShortPathNameW]
test eax, eax
je 0x48df79
mov ecx, dword [ebp - 0x430]
push ecx
push 0x542fc8
lea edx, [ebp - 0x224]
push edx
call fcn.00409170
add esp, 0xc
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0xe44]
push ecx
lea ecx, [ebp - 0x224]
call fcn.0043e290
push eax
push 0x5409f0
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
test eax, eax
je 0x48df79
mov edx, dword [ebp - 0x430]
add edx, 1
mov dword [ebp - 0x430], edx
mov eax, dword [ebp - 0x640]
add eax, 1
mov dword [ebp - 0x640], eax
cmp dword [ebp - 0x640], 0xc
jl 0x48de6b
lea ecx, [ebp - 0x21c]
push ecx
mov ecx, dword [ebp + 8]
call fcn.00401ed0
mov dword [ebp - 0xe78], 1
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x224]
call fcn.00401eb0
mov eax, dword [ebp - 0xe78]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004b0a79
mov esp, ebp
pop ebp
ret 4