Function at 0x422d09
Capabilities:
Check if file exists
Query or enumerate registry value

Disassembly:
push ebp
sub esp, 0x208
lea ebp, [esp - 4]
mov eax, dword [0x483260]
xor eax, ebp
mov dword [ebp + 0x208], eax
push 0x14
mov eax, 0x46b1c6
call fcn.00443747
xor eax, eax
xor ebx, ebx
push 0x206
mov word [ebp], ax
lea eax, [ebp + 2]
push ebx
push eax
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x1c], ebx
call fcn.0043e1d0
mov edi, dword [sym.imp.SHLWAPI.dll_SHGetValueW]
add esp, 0xc
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp]
push eax
lea eax, [ebp - 0x1c]
push eax
push str.Uninstallstring
push str.SOFTWAREMicrosoftWindowsCurrentVersionUninstall4705B7D9_5E57_4508_8EBD_27E3A710AE6C_is1
mov esi, 0x208
push reloc.OLEAUT32.dll_SysReAllocString
mov dword [ebp - 0x14], esi
call edi
cmp word [ebp], bx
je 0x422dc0
lea eax, [ebp]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.00402ad3
mov dword [ebp - 4], ebx
lea ebx, [ebp - 0x10]
call fcn.00424a3e
call fcn.00424a89
push dword [ebp - 0x10]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x422daf
mov dword [ebp - 0x18], 1
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x10]
add eax, 0xfffffff0
call fcn.004031f6
xor ebx, ebx
push esi
lea eax, [ebp]
push ebx
push eax
mov dword [ebp - 0x14], esi
call fcn.0043e1d0
add esp, 0xc
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp]
push eax
lea eax, [ebp - 0x1c]
push eax
push str.Uninstallstring
push str.SOFTWAREMicrosoftWindowsCurrentVersionUninstall3DE1D32B_29A9_4e53_A0C2_9522F199E094_is1
push reloc.OLEAUT32.dll_SysReAllocString
call edi
cmp word [ebp], bx
je 0x422e3a
lea eax, [ebp]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.00402ad3
lea ebx, [ebp - 0x10]
mov dword [ebp - 4], 1
call fcn.00424a3e
call fcn.00424a89
push dword [ebp - 0x10]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x422e29
mov dword [ebp - 0x18], 1
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x10]
add eax, 0xfffffff0
call fcn.004031f6
xor ebx, ebx
push esi
lea eax, [ebp]
push ebx
push eax
mov dword [ebp - 0x14], esi
call fcn.0043e1d0
add esp, 0xc
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp]
push eax
lea eax, [ebp - 0x1c]
push eax
push str.Uninstallstring
push str.SOFTWAREMicrosoftWindowsCurrentVersionUninstall29FE44D7_BC89_4188_8B0E_F6BA073C15A4_is1
push reloc.OLEAUT32.dll_SysReAllocString
call edi
cmp word [ebp], bx
je 0x422eb4
lea eax, [ebp]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.00402ad3
lea ebx, [ebp - 0x10]
mov dword [ebp - 4], 2
call fcn.00424a3e
call fcn.00424a89
push dword [ebp - 0x10]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x422ea3
mov dword [ebp - 0x18], 1
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x10]
add eax, 0xfffffff0
call fcn.004031f6
xor ebx, ebx
push esi
lea eax, [ebp]
push ebx
push eax
mov dword [ebp - 0x14], esi
call fcn.0043e1d0
add esp, 0xc
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp]
push eax
lea eax, [ebp - 0x1c]
push eax
push str.Uninstallstring
push str.SOFTWAREMicrosoftWindowsCurrentVersionUninstall0184EC1E_6DB6_4ef7_9B4E_0E82FB47CEF2_is1
push reloc.OLEAUT32.dll_SysReAllocString
call edi
cmp word [ebp], bx
je 0x422f28
lea eax, [ebp]
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.00402ad3
lea ebx, [ebp - 0x20]
mov dword [ebp - 4], 3
call fcn.00424a3e
call fcn.00424a89
push dword [ebp - 0x20]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x422f1d
mov dword [ebp - 0x18], 1
mov eax, dword [ebp - 0x20]
add eax, 0xfffffff0
call fcn.004031f6
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x208]
xor ecx, ebp
call fcn.0043b155
add ebp, 0x20c
leave
ret