Function at 0x40743d
Capabilities:
Query or enumerate registry value
Set registry value

Disassembly:
push 0x874
mov eax, 0x5626da
call fcn.00531cbc
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x84c], esp
push str.package
call fcn.00402387
lea eax, [ebp - 0x868]
xor ebx, ebx
push eax
push ecx
xor ecx, ecx
mov dword [ebp - 4], ebx
call fcn.0040ad5d
or dword [ebp - 4], 0xffffffff
pop ecx
mov ecx, eax
call fcn.0040b4e7
push eax
mov edx, str.SoftwareMicrosoftWindowsCurrentVersionUninstall_
mov dword [ebp - 4], 1
lea ecx, [ebp - 0x82c]
call fcn.0040636e
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x868]
mov byte [ebp - 4], 3
call fcn.004034f0
cmp dword [ebp - 0x818], 8
lea ecx, [ebp - 0x848]
lea eax, [ebp - 0x82c]
cmovae eax, dword [ebp - 0x82c]
push ecx
push eax
push SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyW]
mov esi, eax
test esi, esi
jne 0x407715
push 0x7fe
mov word [ebp - 0x810], ax
lea eax, [ebp - 0x80e]
push ebx
push eax
call fcn.00532330
add esp, 0xc
mov dword [ebp - 0x814], 0x400
lea eax, [ebp - 0x814]
push eax
lea eax, [ebp - 0x810]
push eax
push ebx
push ebx
push str.UninstallStringOld
push dword [ebp - 0x848]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov esi, eax
test esi, esi
jne 0x407715
cmp dword [ebp - 0x814], eax
je 0x407715
sub esp, 0x18
mov esi, esp
push str..exe
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x84c], esp
push str.package
call fcn.00402387
lea eax, [ebp - 0x844]
mov byte [ebp - 4], 4
push eax
push ecx
xor ecx, ecx
call fcn.0040ad5d
pop ecx
mov ecx, eax
mov byte [ebp - 4], 3
call fcn.0040b4e7
mov edx, eax
mov byte [ebp - 4], 5
mov ecx, esi
call fcn.004046e2
pop ecx
call fcn.0040e469
add esp, 0x18
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x844]
push ebx
push 1
call fcn.004034f0
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
mov dl, 1
lea ecx, [ebp - 0x810]
call fcn.0040d4d3
mov esi, eax
test esi, esi
je 0x4075c7
cmp esi, 0x13
jne 0x407715
push dword [ebp - 0x848]
mov esi, ebx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x84c], esp
push str.package
call fcn.00402387
lea eax, [ebp - 0x880]
mov byte [ebp - 4], 6
push eax
push ecx
xor ecx, ecx
call fcn.0040ad5d
pop ecx
mov ecx, eax
mov byte [ebp - 4], 3
call fcn.0040b4e7
push eax
mov edx, 0x5a80d4
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x844]
call fcn.0040636e
pop ecx
push eax
lea ecx, [ebp - 0x82c]
call fcn.0040454a
push ebx
push 1
lea ecx, [ebp - 0x844]
call fcn.004034f0
push ebx
push 1
lea ecx, [ebp - 0x880]
mov byte [ebp - 4], 3
call fcn.004034f0
cmp dword [ebp - 0x818], 8
lea ecx, [ebp - 0x848]
lea eax, [ebp - 0x82c]
cmovae eax, dword [ebp - 0x82c]
push ecx
push eax
push SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyW]
test eax, eax
je 0x4076a1
cmp dword [ebp - 0x818], 8
lea ecx, [ebp - 0x848]
lea eax, [ebp - 0x82c]
cmovae eax, dword [ebp - 0x82c]
push ecx
push eax
push SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyW]
test eax, eax
jne 0x407715
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x84c], esp
push 0x5a7870
call fcn.00402387
lea eax, [ebp - 0x844]
mov byte [ebp - 4], 8
push eax
push ecx
xor ecx, ecx
call fcn.0040ad5d
pop ecx
mov ecx, eax
mov byte [ebp - 4], 3
call fcn.0040b4e7
cmp dword [ebp - 0x830], 8
lea ecx, [ebp - 0x844]
mov eax, dword [ebp - 0x834]
cmovae ecx, dword [ebp - 0x844]
add eax, eax
push eax
push ecx
push 1
push ebx
push str.AppInstanceUid
push dword [ebp - 0x848]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
push ebx
push 1
lea ecx, [ebp - 0x844]
call fcn.004034f0
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x84c], esp
push 0x5a76f4
call fcn.00402387
sub esp, 0x18
mov byte [ebp - 4], 9
mov ecx, esp
mov dword [ebp - 0x814], esp
push 0x5a77de
call fcn.00402387
sub esp, 0x18
mov byte [ebp - 4], 0xa
mov ecx, esp
push str.UNINSTALL
call fcn.00402387
mov dl, 1
mov byte [ebp - 4], 3
mov ecx, esi
call fcn.0040516a
add esp, 0x48
lea ecx, [ebp - 0x82c]
push ebx
push 1
call fcn.004034f0
mov eax, esi
call fcn.00531c6b
ret