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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4fceb0
mov eax, dword fs:[0]
push eax
sub esp, 0xc
push ebx
push esi
push edi
mov eax, dword [0x53f030]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
call fcn.0043ae40
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x457d74
push 0x80004005
call fcn.0043a9b0
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x10], eax
mov dword [ebp - 4], 0
call fcn.0043ae40
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x457da4
push 0x80004005
call fcn.0043a9b0
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0x14], esi
mov eax, dword [ebp - 0x10]
mov ebx, 1
mov edx, ebx
mov byte [ebp - 4], 1
mov ecx, dword [eax - 8]
sub edx, dword [eax - 4]
sub ecx, 0x104
or ecx, edx
jge 0x457ddf
push 0x104
lea ecx, [ebp - 0x10]
call fcn.0043b5a0
mov eax, dword [ebp - 0x10]
push eax
push 0
push 0
push 0x2a
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x18], eax
push dword [ecx - 8]
push ecx
call fcn.004d9e5f
mov edx, eax
add esp, 8
test edx, edx
js 0x457ea7
mov ecx, dword [ebp - 0x10]
cmp edx, dword [ecx - 8]
jg 0x457ea7
mov dword [ecx - 0xc], edx
or edi, 0xffffffff
mov eax, dword [ebp - 0x10]
xor ecx, ecx
mov word [eax + edx*2], cx
cmp dword [ebp - 0x18], ecx
jge 0x457e8b
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax - 8]
sub ebx, dword [eax - 4]
sub ecx, 0x104
or ecx, ebx
jge 0x457e4d
push 0x104
lea ecx, [ebp - 0x10]
call fcn.0043b5a0
mov eax, dword [ebp - 0x10]
push eax
push 0
push 0
push 0x26
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
mov ecx, dword [ebp - 0x10]
mov ebx, eax
push dword [ecx - 8]
push ecx
call fcn.004d9e5f
mov edx, eax
add esp, 8
test edx, edx
js 0x457ea7
mov ecx, dword [ebp - 0x10]
cmp edx, dword [ecx - 8]
jg 0x457ea7
mov dword [ecx - 0xc], edx
xor ecx, ecx
mov eax, dword [ebp - 0x10]
mov word [eax + edx*2], cx
test ebx, ebx
js 0x457f08
push 1
lea eax, [ebp - 0x18]
push eax
lea ecx, [ebp - 0x10]
call fcn.0044b6c0
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
cmp ecx, 1
jne 0x457ebb
test ecx, ecx
jns 0x457eb1
push 0x80070057
call fcn.0043a9b0
cmp word [eax], 0x5c
jne 0x457ebb
xor bl, bl
jmp 0x457ebd
mov bl, 1
mov edx, dword [ebp - 0x18]
mov ecx, edi
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x457ed9
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
test bl, bl
je 0x457eec
push 1
push 0x509c8c
lea ecx, [ebp - 0x10]
call fcn.00452320
push 0x1e
push str.Internet_Exploreriexplore.exe
lea ecx, [ebp - 0x10]
call fcn.00452320
push dword [ebp - 0x10]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x457f0c
xor ebx, ebx
jmp 0x457f35
push 0
push 0x507ffc
lea ecx, [ebp - 0x14]
call fcn.0043b750
push 0x4581a0
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.00458580
mov esi, dword [ebp - 0x14]
add esp, 0xc
mov ebx, eax
add esi, 0xfffffff0
mov byte [ebp - 4], 0
mov edx, edi
lea ecx, [esi + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x457f52
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x10]
add edx, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], edi
dec edi
test edi, edi
jg 0x457f73
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret