Function at 0x40584d
Capabilities:
Delete registry key

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x6a8
push ebx
push esi
push edi
mov edi, eax
push 0x449edc
lea eax, [ebp - 0xc]
call fcn.004088b5
mov esi, 0x452ad8
lea eax, [ebp - 0xc]
lea ebx, [ebp - 0x1c]
mov dword [ebp - 0x20], esi
call fcn.0041d3d9
mov eax, dword [ebp - 0xc]
add eax, 0xfffffff0
mov dword [ebp - 0x18], 0x408626
mov byte [ebp - 0x14], 1
mov dword [ebp - 0x10], edi
call fcn.0040464c
mov ebx, dword [ebp + 8]
test byte [ebx + 0x6c], 2
jne 0x4058da
mov dword [ebp - 0x20], esi
cmp dword [ebp - 0x10], 0
je 0x4058b2
push dword [ebp - 0x10]
lea eax, [ebp - 0x20]
push eax
call dword [ebp - 0x18]
pop ecx
pop ecx
cmp byte [ebp - 0x14], 0
je 0x4058c6
push dword [ebp - 0x1c]
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
mov eax, dword [ebp - 0x1c]
add eax, 0xfffffff0
call fcn.0040464c
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret 4
lea esi, [ebx + 0x18]
push 0x15
call fcn.00415b64
test eax, eax
je 0x4058f1
mov dword [ebp - 0x20], 0x452ad8
jmp 0x4058a0
mov eax, dword [edi + 0x34]
mov dword [ebx + 0xb8], eax
mov al, byte [edi + 0x38]
mov byte [ebx + 0xbc], al
cmp dword [edi + 8], 0
jle 0x40593b
push 0x14
call fcn.00415b64
test eax, eax
je 0x405922
add eax, 4
push eax
mov ebx, edi
call fcn.00412219
mov ebx, dword [ebp + 8]
push 0xdf
lea esi, [ebp - 0x2c]
mov eax, ebx
mov dword [ebp - 0x2c], 0x44a98c
mov dword [ebp - 0x28], edi
call fcn.00406051
mov eax, edi
call fcn.004122cc
test al, al
jne 0x4059b7
cmp byte [0x459e5c], al
je 0x405977
push str.No_prerequisite_must_be_installed.
lea eax, [ebp + 8]
call fcn.00416c77
push eax
call fcn.00416c88
push eax
mov eax, 0x459e2c
call fcn.00416005
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
call fcn.0040464c
xor esi, esi
cmp dword [ebp - 0x10], esi
mov dword [ebp - 0x20], 0x452ad8
je 0x405991
push dword [ebp - 0x10]
lea eax, [ebp - 0x20]
push eax
call dword [ebp - 0x18]
pop ecx
pop ecx
cmp byte [ebp - 0x14], 0
je 0x4059a5
push dword [ebp - 0x1c]
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
mov eax, dword [ebp - 0x1c]
add eax, 0xfffffff0
call fcn.0040464c
mov eax, esi
jmp 0x4058d3
lea esi, [ebx + 0x16c]
mov eax, esi
call fcn.00415800
and dword [ebp - 0xc], 0
push esi
lea eax, [ebx + 0x28]
push eax
lea eax, [ebp - 0xac]
push eax
lea ecx, [ebp - 0x20]
mov edx, edi
mov eax, ebx
call fcn.0041d43a
push edi
call fcn.00411f36
test al, al
je 0x405a7e
cmp byte [0x459e5c], 0
je 0x405a20
push str.Starting_installing_prerequisites_in_silent_mode.
lea eax, [ebp - 8]
call fcn.00416c77
push eax
call fcn.00416c88
push eax
mov eax, 0x459e2c
call fcn.00416005
mov eax, dword [ebp - 8]
add eax, 0xfffffff0
call fcn.0040464c
lea ebx, [ebp - 0xac]
mov byte [ebp - 0x7c], 1
call fcn.0041e54c
xor esi, esi
push esi
mov eax, ebx
push eax
call fcn.0041d82a
push esi
mov eax, ebx
push eax
call fcn.0041de1b
push esi
call fcn.0041e215
xor bl, bl
cmp byte [ebp - 0x4b], bl
jne 0x405b87
lea eax, [ebp - 0xac]
call fcn.0041d60c
lea edi, [ebp - 0xac]
call fcn.0041e433
test al, al
jne 0x405b87
mov dword [ebp - 0xc], 1
jmp 0x405b87
push edi
call fcn.0041201c
test al, al
je 0x405b16
cmp byte [0x459e5c], 0
je 0x405abe
push str.Starting_installing_prerequisites_in_basic_UI_mode.
lea eax, [ebp - 8]
call fcn.00416c77
push eax
call fcn.00416c88
push eax
mov eax, 0x459e2c
call fcn.00416005
mov eax, dword [ebp - 8]
add eax, 0xfffffff0
call fcn.0040464c
push 0
mov eax, esi
call fcn.004156d9
push eax
lea ecx, [ebp - 0xac]
lea esi, [ebp - 0x104]
call fcn.0041ea99
lea ebx, [ebp - 0xac]
call fcn.0041e54c
mov ebx, esi
call fcn.0041eb3d
dec eax
je 0x405b05
dec eax
je 0x405aff
sub eax, 5
jne 0x405b09
mov dword [ebp - 0xc], 1
jmp 0x405b09
or dword [ebp - 0xc], 0xffffffff
jmp 0x405b09
and dword [ebp - 0xc], 0
lea eax, [ebp - 0x104]
call fcn.0041eaff
jmp 0x405b85
cmp byte [0x459e5c], 0
je 0x405b48
push str.Starting_installing_prerequisites_in_full_UI_mode.
lea eax, [ebp - 8]
call fcn.00416c77
push eax
call fcn.00416c88
push eax
mov eax, 0x459e2c
call fcn.00416005
mov eax, dword [ebp - 8]
add eax, 0xfffffff0
call fcn.0040464c
push esi
lea eax, [ebp - 0xac]
push eax
lea eax, [ebp - 0x6a4]
push eax
call fcn.0041ed91
call dword [sym.imp.USER32.dll_GetActiveWindow]
lea ebx, [ebp - 0x6a4]
call fcn.00408f15
cmp byte [ebp - 0x60b], 0
je 0x405b7a
or dword [ebp - 0xc], 0xffffffff
lea ebx, [ebp - 0x6a4]
call fcn.00405c9c
xor bl, bl
cmp byte [0x459e5c], bl
je 0x405bd0
push dword [ebp - 0x4b]
lea eax, [ebp - 8]
push str.__Reboot_was_required
push str.After_running_prerequisites_we_have:
call fcn.00416c77
push eax
call fcn.00416c88
push eax
call fcn.00416c88
push eax
call fcn.00416ca3
push eax
mov esi, 0x459e2c
mov eax, esi
call fcn.00416005
mov eax, dword [ebp - 8]
add eax, 0xfffffff0
call fcn.0040464c
jmp 0x405bd5
mov esi, 0x459e2c
cmp byte [ebp - 0x4b], bl
je 0x405c57
cmp byte [0x459e5c], bl
je 0x405c11
push dword [ebp - 0x4c]
lea eax, [ebp - 8]
push str.__Reboot_was_refused
call fcn.00416c77
push eax
call fcn.00416c88
push eax
call fcn.00416ca3
push eax
mov eax, esi
call fcn.00416005
mov eax, dword [ebp - 8]
add eax, 0xfffffff0
call fcn.0040464c
cmp byte [ebp - 0x4c], bl
jne 0x405c4d
cmp byte [0x459e5c], bl
je 0x405c4d
push dword [ebp - 0x30]
lea eax, [ebp - 8]
push str.__Reboot_in_Progress
call fcn.00416c77
push eax
call fcn.00416c88
push eax
call fcn.00416ca3
push eax
mov eax, esi
call fcn.00416005
mov eax, dword [ebp - 8]
add eax, 0xfffffff0
call fcn.0040464c
cmp byte [ebp - 0x4b], bl
je 0x405c57
cmp byte [ebp - 0x4c], bl
je 0x405c5c
cmp byte [ebp - 0x30], bl
je 0x405c6d
mov eax, dword [ebp + 8]
or dword [ebp - 0xc], 0xffffffff
mov byte [ebp - 0x14], bl
mov byte [eax + 0x1c0], 1
mov eax, dword [ebp + 8]
mov esi, dword [ebp - 0xc]
lea edi, [ebp - 0x60]
mov dword [eax + 0x10], esi
call fcn.00409873
lea ebx, [ebp - 0x94]
call fcn.0041e652
cmp dword [ebp - 0x10], 0
mov dword [ebp - 0xa8], 0x44a8e4
jmp 0x40597c