Function at 0x40f50b
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4d5fee
mov eax, dword fs:[0]
push eax
sub esp, 0x850
mov eax, dword [0x56f710]
xor eax, esp
mov dword [esp + 0x848], eax
push ebx
push esi
push edi
mov eax, dword [0x56f710]
xor eax, esp
push eax
lea eax, [esp + 0x860]
mov dword fs:[0], eax
mov ebx, ecx
push str.SOFTWAREMicrosoftWindowsCurrentVersionApp_Paths
lea ecx, [esp + 0x18]
mov dword [esp + 0x24], ebx
call fcn.0040254f
and dword [esp + 0x868], 0
call fcn.0049219b
push eax
lea ecx, [esp + 0x14]
call fcn.00402802
push 0
push 0x5c
mov ecx, ebx
mov byte [esp + 0x870], 1
call fcn.00411e72
cmp eax, 0xffffffff
je 0x40f67c
mov edi, dword [ebx]
mov esi, 0x82c
push esi
lea eax, [esp + 0x28]
push 0
push eax
call fcn.004b62d0
add esp, 0xc
test edi, edi
je 0x40f5b7
push edi
lea eax, [esp + 0x28]
call fcn.0040cbd2
lea eax, [esp + 0x43e]
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x86c], 2
call fcn.0040254f
push eax
lea eax, [esp + 0x23a]
push eax
lea eax, [esp + 0x24]
push eax
mov byte [esp + 0x874], 3
call fcn.0040c9b1
add esp, 0xc
push eax
mov ecx, ebx
mov byte [esp + 0x86c], 4
call fcn.004025ee
mov ecx, dword [esp + 0x1c]
add ecx, 0xfffffff0
call fcn.00402845
mov byte [esp + 0x868], 2
mov ecx, dword [esp + 0x18]
add ecx, 0xfffffff0
call fcn.00402845
mov eax, dword [ebx]
cmp dword [eax - 0xc], 0
jne 0x40f674
push esi
lea eax, [esp + 0x28]
push 0
push eax
call fcn.004b62d0
add esp, 0xc
mov ecx, dword [esp + 0x10]
add ecx, 0xfffffff0
call fcn.00402845
mov ecx, dword [esp + 0x14]
add ecx, 0xfffffff0
call fcn.00402845
mov al, 1
mov ecx, dword [esp + 0x860]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x848]
xor ecx, esp
call fcn.004b228f
mov esp, ebp
pop ebp
ret
mov byte [esp + 0x868], 1
push ecx
mov dword [esp + 0x1c], esp
mov ecx, esp
push ebx
call fcn.004022fa
lea ecx, [esp + 0x18]
call fcn.00406dfa
call fcn.0045d184
test al, al
je 0x40f846
lea eax, [esp + 0x10]
push eax
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
mov edi, 0x52dc10
push edi
call fcn.0040254f
push ecx
mov byte [esp + 0x874], 5
lea eax, [esp + 0x20]
mov dword [esp + 0x28], esp
mov ecx, esp
push eax
call fcn.004022fa
mov esi, reloc.OLEAUT32.dll_SysReAllocString
push esi
mov byte [esp + 0x878], 1
call fcn.0040e717
test eax, eax
je 0x40f71b
mov eax, dword [esp + 0x10]
push eax
mov dword [esp + 0x1c], eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x40f704
push dword [esp + 0x18]
call fcn.0040f4f9
jmp 0x40f706
mov al, 1
test al, al
je 0x40f71b
mov ecx, ebx
lea eax, [esp + 0x10]
push eax
call fcn.004025ee
jmp 0x40f636
lea eax, [esp + 0x10]
push eax
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
mov ebx, str.Path
push ebx
call fcn.0040254f
push ecx
mov byte [esp + 0x874], 6
lea eax, [esp + 0x20]
mov dword [esp + 0x28], esp
mov ecx, esp
push eax
call fcn.004022fa
push esi
mov byte [esp + 0x878], 1
call fcn.0040e717
test eax, eax
je 0x40f787
mov eax, dword [esp + 0x10]
push eax
mov dword [esp + 0x1c], eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x40f77b
push dword [esp + 0x18]
call fcn.0040f4f9
jmp 0x40f77d
mov al, 1
test al, al
je 0x40f787
mov ecx, dword [esp + 0x20]
jmp 0x40f70c
lea eax, [esp + 0x10]
push eax
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push edi
call fcn.0040254f
push ecx
mov byte [esp + 0x874], 7
lea eax, [esp + 0x20]
mov dword [esp + 0x28], esp
mov ecx, esp
push eax
call fcn.004022fa
push esi
mov byte [esp + 0x878], 1
call fcn.0040e834
test eax, eax
je 0x40f7e1
mov edi, dword [esp + 0x10]
push edi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x40f7db
push edi
call fcn.0040f4f9
jmp 0x40f7dd
mov al, 1
test al, al
jne 0x40f781
lea eax, [esp + 0x10]
push eax
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push ebx
call fcn.0040254f
push ecx
mov byte [esp + 0x874], 8
lea eax, [esp + 0x20]
mov dword [esp + 0x28], esp
mov ecx, esp
push eax
call fcn.004022fa
push esi
mov byte [esp + 0x878], 1
call fcn.0040e834
test eax, eax
je 0x40f83f
mov esi, dword [esp + 0x10]
push esi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x40f835
push esi
call fcn.0040f4f9
jmp 0x40f837
mov al, 1
test al, al
jne 0x40f781
xor bl, bl
jmp 0x40f923
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 0x52dc10
lea edi, [esp + 0x18]
call fcn.0040254f
push ecx
mov byte [esp + 0x870], 9
lea eax, [esp + 0x1c]
mov dword [esp + 0x24], esp
mov ecx, esp
push eax
call fcn.004022fa
mov esi, reloc.OLEAUT32.dll_SysReAllocString
push esi
mov ecx, edi
mov byte [esp + 0x874], 1
call fcn.0040e5d9
test eax, eax
je 0x40f8ae
mov edi, dword [esp + 0x10]
push edi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x40f8a4
push edi
call fcn.0040f4f9
jmp 0x40f8a6
mov al, 1
test al, al
jne 0x40f70a
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push str.Path
lea edi, [esp + 0x18]
call fcn.0040254f
push ecx
mov byte [esp + 0x870], 0xa
lea eax, [esp + 0x1c]
mov dword [esp + 0x24], esp
mov ecx, esp
push eax
call fcn.004022fa
push esi
mov ecx, edi
mov byte [esp + 0x874], 1
call fcn.0040e5d9
test eax, eax
je 0x40f83f
mov esi, dword [esp + 0x10]
push esi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x40f90b
push esi
call fcn.0040f4f9
jmp 0x40f90d
mov al, 1
test al, al
je 0x40f83f
lea eax, [esp + 0x10]
push eax
mov ecx, ebx
call fcn.004025ee
mov bl, 1
mov ecx, dword [esp + 0x10]
add ecx, 0xfffffff0
call fcn.00402845
mov ecx, dword [esp + 0x14]
add ecx, 0xfffffff0
call fcn.00402845
mov al, bl
jmp 0x40f650