Function at 0x45ee90
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x47f47a
mov eax, dword fs:[0]
push eax
sub esp, 0x10
push ebx
push esi
push edi
mov eax, dword [0x4be5b4]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], 0
mov esi, dword [ebp + 8]
test esi, esi
jne 0x45eedb
lea eax, [esi + 6]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push esi
lea ecx, [ebp + 8]
call fcn.00403f50
lea ecx, [ebp + 8]
mov dword [ebp - 4], 0
call fcn.00461180
lea ecx, [ebp + 8]
call fcn.004610d0
mov eax, dword [ebp + 8]
cmp dword [eax - 0xc], 0
jne 0x45ef0e
mov esi, 3
jmp 0x45f170
mov ecx, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x45ef13
sub ecx, edx
sar ecx, 1
cmp ecx, 0x102
jbe 0x45ef34
mov esi, 8
jmp 0x45f170
push dword [ebp + 8]
call dword [sym.imp.SHLWAPI.dll_PathIsRelativeW]
test eax, eax
je 0x45ef4b
mov esi, 5
jmp 0x45f170
push dword [ebp + 8]
mov ebx, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
call ebx
test eax, eax
je 0x45ef6f
push dword [ebp + 8]
call dword [sym.imp.SHLWAPI.dll_PathIsDirectoryW]
test eax, eax
jne 0x45ef6f
lea esi, [eax + 4]
jmp 0x45f170
lea eax, [ebp + 8]
push eax
call fcn.0045f690
add esp, 4
test eax, eax
je 0x45ef89
mov esi, 6
jmp 0x45f170
lea ecx, [esi + 2]
nop dword [eax]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x45ef90
sub esi, ecx
sar esi, 1
cmp esi, 2
jb 0x45f00b
mov edi, dword [ebp + 8]
call fcn.0040b4c0
mov ecx, eax
test ecx, ecx
je 0x45f1a6
test edi, edi
je 0x45f1b0
mov eax, dword [ecx]
push 2
push 2
call dword [eax]
test eax, eax
je 0x45f1ba
cmp dword [eax + 8], 2
lea esi, [eax + 0x10]
mov dword [ebp - 0x14], esi
jl 0x45f1bf
push 4
push edi
xor eax, eax
mov dword [esi - 0xc], 2
push 4
push esi
mov word [esi + 4], ax
call fcn.0041a3b0
add esp, 0x10
mov dword [ebp - 0x10], 1
push esi
call ebx
test eax, eax
jne 0x45f00b
mov bl, 1
jmp 0x45f00d
xor bl, bl
test byte [ebp - 0x10], 1
je 0x45f01b
lea ecx, [ebp - 0x14]
call fcn.00404460
test bl, bl
je 0x45f029
mov esi, 0xa
jmp 0x45f170
mov eax, dword [ebp + 8]
cmp dword [eax - 0xc], 0
jl 0x45f1c9
movzx eax, word [eax]
push 1
push eax
call fcn.00452970
shrd eax, edx, 0x14
add esp, 8
shr edx, 0x14
cmp edx, dword [ebp + 0x10]
ja 0x45f0f6
jb 0x45f05f
cmp eax, dword [ebp + 0xc]
jae 0x45f0f6
mov eax, dword [0x4c2638]
test eax, eax
jne 0x45f0dc
mov eax, dword [vtable.CDHCriticalSection.0]
mov ecx, 0x4be280
mov dword [ebp - 0x14], 0x4be280
call dword [eax + 4]
cmp dword [0x4c2638], 0
jne 0x45f0c2
cmp dword [0x4be27c], 0
je 0x45f0c2
push 0x4c2644
push 0x58
call fcn.0042cd78
add esp, 8
mov dword [ebp - 0x10], eax
mov byte [ebp - 4], 2
test eax, eax
je 0x45f0b1
mov ecx, eax
call fcn.0044f9c0
jmp 0x45f0b3
xor eax, eax
mov dword [0x4c2638], eax
mov dword [0x4be27c], 0
mov eax, dword [vtable.CDHCriticalSection.0]
mov ecx, 0x4be280
mov byte [ebp - 4], 3
call dword [eax + 8]
mov eax, dword [0x4c2638]
mov byte [ebp - 4], 0
push 0x493c5c
push str.installpkg
push eax
call fcn.00450840
add esp, 0xc
mov esi, 1
jmp 0x45f170
push dword [ebp + 8]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x45f151
push eax
push eax
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
call fcn.004535e0
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x14]
mov byte [ebp - 4], 4
push eax
push ecx
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.0042a780
lea ecx, [ebp - 0x1c]
call fcn.00452ce0
lea ecx, [ebp - 0x1c]
test eax, eax
jne 0x45f148
call fcn.00452640
mov esi, 9
jmp 0x45f170
mov byte [ebp - 4], 0
call fcn.00452640
push ecx
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.0042a780
call fcn.00453240
add esp, 4
test eax, eax
jne 0x45f16e
lea esi, [eax + 2]
jmp 0x45f170
xor esi, esi
mov edi, dword [ebp + 8]
or eax, 0xffffffff
mov dword [ebp - 4], 0xffffffff
add edi, 0xfffffff0
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x45f192
mov ecx, dword [edi]
push edi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x80004005
call fcn.004068b0
push 0x80070057
call fcn.004068b0
call fcn.00416f00
push 0x80070057
call fcn.004068b0
push 0x80070057
call fcn.004068b0
int3