Function at 0x4001487d
Capabilities:
Check if file exists

Disassembly:
mov eax, 0x400710d6
call fcn.4006f3a0
sub esp, 0x20
push ebx
push esi
xor eax, eax
mov ebx, edx
push edi
mov edi, ecx
mov dword [ebp - 0x20], eax
mov dword [ebp - 4], eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], eax
lea eax, [ebp + 0xc]
mov byte [ebp - 4], 2
push eax
mov edx, str.SOFTWAREMicrosoftWindowsCurrentVersionUninstall_
lea ecx, [ebp - 0x18]
call fcn.40006aaf
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x1c]
mov edx, eax
mov dword [esp], str._is1
call fcn.40009e4c
mov dword [esp], 0x20019
lea ecx, [ebp - 0x2c]
push dword [eax]
push SysReAllocStringLen
call fcn.40001bcd
mov ecx, dword [ebp - 0x1c]
mov esi, eax
add ecx, 0xfffffff0
call fcn.40004636
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
call fcn.40004636
test esi, esi
jne 0x40014a08
and dword [ebp - 0x14], esi
lea eax, [ebp - 0x14]
push eax
push esi
push str.InstallLocation
lea ecx, [ebp - 0x2c]
call fcn.400142ee
test eax, eax
jne 0x40014a08
call fcn.40001ce1
push eax
lea ecx, [ebp - 0x18]
call fcn.40006f05
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x18]
push dword [ebp - 0x14]
call fcn.40006b63
push dword [ebp - 0x14]
lea ecx, [ebp - 0x18]
mov esi, eax
call fcn.40007032
lea eax, [ebp - 0x14]
push eax
push esi
push str.InstallLocation
lea ecx, [ebp - 0x2c]
call fcn.400142ee
push 0xffffffffffffffff
lea ecx, [ebp - 0x18]
mov esi, eax
call fcn.40006b9b
test esi, esi
mov esi, dword [ebp - 0x18]
jne 0x400149fc
push ebx
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
push eax
lea ecx, [ebp - 0x1c]
call fcn.400069d1
push esi
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 5
call fcn.400069d1
push 0x4007eae4
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 6
call fcn.40009edd
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x14]
call fcn.40009edd
push ebx
lea ecx, [ebp - 0x14]
call fcn.4000d585
test eax, eax
jne 0x400149e6
push str.installer
mov ecx, edi
call fcn.400069d1
mov ecx, dword [ebp - 0x14]
lea ecx, [ecx - 0x10]
call fcn.40004636
mov ecx, dword [ebp - 0x1c]
lea ecx, [ecx - 0x10]
call fcn.40004636
lea ecx, [esi - 0x10]
jmp 0x40014a9a
mov ecx, dword [ebp - 0x14]
lea ecx, [ecx - 0x10]
call fcn.40004636
mov ecx, dword [ebp - 0x1c]
lea ecx, [ecx - 0x10]
call fcn.40004636
lea ecx, [esi - 0x10]
mov byte [ebp - 4], 2
call fcn.40004636
push ebx
lea ecx, [ebp - 0x10]
call fcn.400069d1
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 7
call fcn.40009f0b
lea ecx, [ebp - 0x10]
call fcn.40009f0b
lea eax, [ebp + 8]
mov edx, str.Portable
push eax
lea ecx, [ebp - 0x18]
call fcn.40006aaf
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x1c]
mov edx, eax
mov dword [esp], str..exe
call fcn.40009e4c
pop ecx
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x10]
push dword [eax]
call fcn.40009edd
mov ecx, dword [ebp - 0x1c]
lea ecx, [ecx - 0x10]
call fcn.40004636
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x18]
lea ecx, [ecx - 0x10]
call fcn.40004636
push dword [ebp - 0x10]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
mov ecx, edi
test eax, eax
je 0x40014a8a
push str.portable
jmp 0x40014a8f
push str.archive
call fcn.400069d1
mov ecx, dword [ebp - 0x10]
lea ecx, [ecx - 0x10]
call fcn.40004636
cmp dword [ebp - 0x2c], 0
je 0x40014aae
push dword [ebp - 0x2c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp + 8]
lea ecx, [ecx - 0x10]
call fcn.40004636
mov ecx, dword [ebp + 0xc]
lea ecx, [ecx - 0x10]
call fcn.40004636
mov ecx, dword [ebp - 0xc]
mov eax, edi
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret