Function at 0x402b50
Capabilities:
Check if file exists

Disassembly:
push 0xffffffffffffffff
push 0x414470
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x82c
push ebx
push ebp
push esi
push edi
mov eax, dword [esp + 0x854]
mov edi, dword [sym.imp.MSVCRT.dll_swprintf]
push eax
lea ecx, [esp + 0x430]
xor ebx, ebx
push 0x41cc44
push ecx
mov dword [esp + 0x850], ebx
call edi
mov esi, dword [esp + 0x85c]
add esp, 0xc
lea edx, [esp + 0x432]
and esi, 0xffff
push edx
push esi
lea eax, [esp + 0x63c]
push str._c:_s_system32_reg.exe
push eax
call edi
mov ebp, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
add esp, 0x10
lea ecx, [esp + 0x634]
push ecx
call ebp
test eax, eax
je 0x402dfc
mov edx, dword [esp + 0x84c]
push str.hints.dat
push edx
lea eax, [esp + 0x22c]
push 0x41c15c
push eax
call edi
add esp, 0x10
lea ecx, [esp + 0x224]
push ecx
call ebp
test eax, eax
je 0x402da8
lea edx, [esp + 0x432]
lea eax, [esp + 0x1c]
push edx
push esi
push str._c:_sSystem32configSOFTWARE
push eax
call edi
add esp, 0x10
lea ecx, [esp + 0x1c]
push ecx
call ebp
test eax, eax
je 0x402d6e
lea edx, [esp + 0x1c]
push edx
push str.LOAD_HKLMRRUSoftwareHive__s
push 0x4207a4
call sub.MFC42u.DLL_CString::Format
add esp, 0xc
push ebx
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push 0x4207b8
call fcn.00413dc4
push 0x20
push 0x40
push ebx
push ecx
mov ecx, esp
mov dword [esp + 0x28], esp
push 0x4207a4
mov byte [esp + 0x860], 1
call sub.MFC42u.DLL_CString::CString_2
push ecx
mov byte [esp + 0x860], 2
mov ecx, esp
mov dword [esp + 0x30], esp
push str.reg.exe
call fcn.00413dc4
mov byte [esp + 0x860], bl
call fcn.0040eb10
add esp, 0x1c
lea eax, [esp + 0x224]
push eax
push str.RESTORE_HKLMRRUSoftwareHiveMicrosoftWindowsCurrentVersionHints__s
push 0x4207a4
call sub.MFC42u.DLL_CString::Format
add esp, 0xc
push ebx
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 0x4207b8
call fcn.00413dc4
push 0x20
push 0x40
push ebx
push ecx
mov ecx, esp
mov dword [esp + 0x28], esp
push 0x4207a4
mov byte [esp + 0x860], 3
call sub.MFC42u.DLL_CString::CString_2
push ecx
mov byte [esp + 0x860], 4
mov ecx, esp
mov dword [esp + 0x34], esp
push str.reg.exe
call fcn.00413dc4
mov byte [esp + 0x860], bl
call fcn.0040eb10
add esp, 0x1c
push ebx
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 0x4207b8
call fcn.00413dc4
push 0x20
push 0x40
push ebx
push ecx
mov ecx, esp
mov dword [esp + 0x28], esp
push str.UNLOAD_HKLMRRUSoftwareHive
mov byte [esp + 0x860], 5
call fcn.00413dc4
push ecx
mov byte [esp + 0x860], 6
mov ecx, esp
mov dword [esp + 0x34], esp
push str.reg.exe
call fcn.00413dc4
mov byte [esp + 0x860], bl
call fcn.0040eb10
add esp, 0x1c
jmp 0x402dfc
lea ecx, [esp + 0x1c]
push ecx
push str.SOFTWARE_file_doesnt_exist:__s
push 0x42079c
call sub.MFC42u.DLL_CString::Format
add esp, 0xc
push ebx
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 0x41c198
call fcn.00413dc4
push ecx
mov byte [esp + 0x850], 7
mov ecx, esp
mov dword [esp + 0x1c], esp
jmp 0x402de3
lea edx, [esp + 0x224]
push edx
push str.Hints_file_doesnt_exist:__s
push 0x42079c
call sub.MFC42u.DLL_CString::Format
add esp, 0xc
push ebx
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 0x41c198
call fcn.00413dc4
push ecx
mov byte [esp + 0x850], 8
mov ecx, esp
mov dword [esp + 0x1c], esp
push 0x42079c
call sub.MFC42u.DLL_CString::CString_2
mov byte [esp + 0x850], bl
call fcn.00406ff0
add esp, 0xc
lea ecx, [esp + 0x854]
mov dword [esp + 0x844], 0xffffffff
call sub.MFC42u.DLL_CString::CString
mov ecx, dword [esp + 0x83c]
pop edi
pop esi
pop ebp
xor eax, eax
mov dword fs:[0], ecx
pop ebx
add esp, 0x838
ret