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

Disassembly:
push 0x874
mov eax, 0x58daa8
call fcn.00532017
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x84c], esp
push str.package
call fcn.004036e4
lea eax, [ebp - 0x868]
xor ebx, ebx
push eax
xor ecx, ecx
mov dword [ebp - 4], ebx
call fcn.005795a4
or dword [ebp - 4], 0xffffffff
mov ecx, eax
call fcn.005794b5
push eax
mov edx, str.SoftwareMicrosoftWindowsCurrentVersionUninstall_
mov dword [ebp - 4], 1
lea ecx, [ebp - 0x82c]
call fcn.004043cc
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x868]
mov byte [ebp - 4], 3
call fcn.00403a36
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 0x575c08
push 0x800
lea eax, [ebp - 0x810]
push ebx
push eax
call fcn.0054b1f0
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 0x575c08
cmp dword [ebp - 0x814], eax
je 0x575c08
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.004036e4
lea eax, [ebp - 0x844]
mov byte [ebp - 4], 4
push eax
xor ecx, ecx
call fcn.005795a4
mov ecx, eax
mov byte [ebp - 4], 3
call fcn.005794b5
mov edx, eax
mov byte [ebp - 4], 5
mov ecx, esi
call fcn.0040406c
pop ecx
call fcn.0057b865
add esp, 0x18
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x844]
push ebx
push 1
call fcn.00403a36
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
mov dl, 1
lea ecx, [ebp - 0x810]
call fcn.0057b9a9
mov esi, eax
test esi, esi
je 0x575abe
cmp esi, 0x13
jne 0x575c08
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.004036e4
lea eax, [ebp - 0x880]
mov byte [ebp - 4], 6
push eax
xor ecx, ecx
call fcn.005795a4
mov ecx, eax
mov byte [ebp - 4], 3
call fcn.005794b5
push eax
mov edx, 0x5c5258
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x844]
call fcn.004043cc
pop ecx
push eax
lea ecx, [ebp - 0x82c]
call fcn.00402068
push ebx
push 1
lea ecx, [ebp - 0x844]
call fcn.00403a36
push ebx
push 1
lea ecx, [ebp - 0x880]
mov byte [ebp - 4], 3
call fcn.00403a36
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 0x575b96
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 0x575c08
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x84c], esp
push 0x5c5424
call fcn.004036e4
lea eax, [ebp - 0x844]
mov byte [ebp - 4], 8
push eax
xor ecx, ecx
call fcn.005795a4
mov ecx, eax
mov byte [ebp - 4], 3
call fcn.005794b5
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 0x5c5fa0
push dword [ebp - 0x848]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
push ebx
push 1
lea ecx, [ebp - 0x844]
call fcn.00403a36
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x84c], esp
push 0x5c52a4
call fcn.004036e4
sub esp, 0x18
mov byte [ebp - 4], 9
mov ecx, esp
mov dword [ebp - 0x814], esp
push 0x5c4ffe
call fcn.004036e4
sub esp, 0x18
mov byte [ebp - 4], 0xa
mov ecx, esp
push str.UNINSTALL
call fcn.004036e4
mov dl, 1
mov byte [ebp - 4], 3
mov ecx, esi
call fcn.00572131
add esp, 0x48
lea ecx, [ebp - 0x82c]
push ebx
push 1
call fcn.00403a36
mov eax, esi
call fcn.00531fc1
ret