Function at 0x40586d
Capabilities:
Delete registry key

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x6a8
push ebx
push esi
push edi
mov edi, eax
push 0x44aedc
lea eax, [ebp - 0xc]
call fcn.004088d9
mov esi, 0x453b20
lea eax, [ebp - 0xc]
lea ebx, [ebp - 0x1c]
mov dword [ebp - 0x20], esi
call fcn.0041d619
mov eax, dword [ebp - 0xc]
add eax, 0xfffffff0
mov dword [ebp - 0x18], 0x40864a
mov byte [ebp - 0x14], 1
mov dword [ebp - 0x10], edi
call fcn.00404645
mov ebx, dword [ebp + 8]
test byte [ebx + 0x6c], 2
jne 0x4058fa
mov dword [ebp - 0x20], esi
cmp dword [ebp - 0x10], 0
je 0x4058d2
push dword [ebp - 0x10]
lea eax, [ebp - 0x20]
push eax
call dword [ebp - 0x18]
pop ecx
pop ecx
cmp byte [ebp - 0x14], 0
je 0x4058e6
push dword [ebp - 0x1c]
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
mov eax, dword [ebp - 0x1c]
add eax, 0xfffffff0
call fcn.00404645
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret 4
lea esi, [ebx + 0x18]
push 0x15
call fcn.00415b5b
test eax, eax
je 0x405911
mov dword [ebp - 0x20], 0x453b20
jmp 0x4058c0
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 0x40595b
push 0x14
call fcn.00415b5b
test eax, eax
je 0x405942
add eax, 4
push eax
mov ebx, edi
call fcn.00412231
mov ebx, dword [ebp + 8]
push 0xdf
lea esi, [ebp - 0x2c]
mov eax, ebx
mov dword [ebp - 0x2c], 0x44b990
mov dword [ebp - 0x28], edi
call fcn.00406071
mov eax, edi
call fcn.004122e4
test al, al
jne 0x4059d7
cmp byte [0x45ae9c], al
je 0x405997
push str.No_prerequisite_must_be_installed.
lea eax, [ebp + 8]
call fcn.00416c8f
push eax
call fcn.00416ca0
push eax
mov eax, 0x45ae6c
call fcn.0041601d
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
call fcn.00404645
xor esi, esi
cmp dword [ebp - 0x10], esi
mov dword [ebp - 0x20], 0x453b20
je 0x4059b1
push dword [ebp - 0x10]
lea eax, [ebp - 0x20]
push eax
call dword [ebp - 0x18]
pop ecx
pop ecx
cmp byte [ebp - 0x14], 0
je 0x4059c5
push dword [ebp - 0x1c]
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
mov eax, dword [ebp - 0x1c]
add eax, 0xfffffff0
call fcn.00404645
mov eax, esi
jmp 0x4058f3
lea esi, [ebx + 0x16c]
mov eax, esi
call fcn.004157f7
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.0041d67a
push edi
call fcn.00411f4e
test al, al
je 0x405a9e
cmp byte [0x45ae9c], 0
je 0x405a40
push str.Starting_installing_prerequisites_in_silent_mode.
lea eax, [ebp - 8]
call fcn.00416c8f
push eax
call fcn.00416ca0
push eax
mov eax, 0x45ae6c
call fcn.0041601d
mov eax, dword [ebp - 8]
add eax, 0xfffffff0
call fcn.00404645
lea ebx, [ebp - 0xac]
mov byte [ebp - 0x7c], 1
call fcn.0041e78c
xor esi, esi
push esi
mov eax, ebx
push eax
call fcn.0041da6a
push esi
mov eax, ebx
push eax
call fcn.0041e05b
push esi
call fcn.0041e455
xor bl, bl
cmp byte [ebp - 0x4b], bl
jne 0x405ba7
lea eax, [ebp - 0xac]
call fcn.0041d84c
lea edi, [ebp - 0xac]
call fcn.0041e673
test al, al
jne 0x405ba7
mov dword [ebp - 0xc], 1
jmp 0x405ba7
push edi
call fcn.00412034
test al, al
je 0x405b36
cmp byte [0x45ae9c], 0
je 0x405ade
push str.Starting_installing_prerequisites_in_basic_UI_mode.
lea eax, [ebp - 8]
call fcn.00416c8f
push eax
call fcn.00416ca0
push eax
mov eax, 0x45ae6c
call fcn.0041601d
mov eax, dword [ebp - 8]
add eax, 0xfffffff0
call fcn.00404645
push 0
mov eax, esi
call fcn.004156d0
push eax
lea ecx, [ebp - 0xac]
lea esi, [ebp - 0x104]
call fcn.0041ecd9
lea ebx, [ebp - 0xac]
call fcn.0041e78c
mov ebx, esi
call fcn.0041ed7d
dec eax
je 0x405b25
dec eax
je 0x405b1f
sub eax, 5
jne 0x405b29
mov dword [ebp - 0xc], 1
jmp 0x405b29
or dword [ebp - 0xc], 0xffffffff
jmp 0x405b29
and dword [ebp - 0xc], 0
lea eax, [ebp - 0x104]
call fcn.0041ed3f
jmp 0x405ba5
cmp byte [0x45ae9c], 0
je 0x405b68
push str.Starting_installing_prerequisites_in_full_UI_mode.
lea eax, [ebp - 8]
call fcn.00416c8f
push eax
call fcn.00416ca0
push eax
mov eax, 0x45ae6c
call fcn.0041601d
mov eax, dword [ebp - 8]
add eax, 0xfffffff0
call fcn.00404645
push esi
lea eax, [ebp - 0xac]
push eax
lea eax, [ebp - 0x6a4]
push eax
call fcn.0041efdc
call dword [sym.imp.USER32.dll_GetActiveWindow]
lea ebx, [ebp - 0x6a4]
call fcn.00408f18
cmp byte [ebp - 0x60b], 0
je 0x405b9a
or dword [ebp - 0xc], 0xffffffff
lea ebx, [ebp - 0x6a4]
call fcn.00405cbc
xor bl, bl
cmp byte [0x45ae9c], bl
je 0x405bf0
push dword [ebp - 0x4b]
lea eax, [ebp - 8]
push str.__Reboot_was_required
push str.After_running_prerequisites_we_have:
call fcn.00416c8f
push eax
call fcn.00416ca0
push eax
call fcn.00416ca0
push eax
call fcn.00416cbb
push eax
mov esi, 0x45ae6c
mov eax, esi
call fcn.0041601d
mov eax, dword [ebp - 8]
add eax, 0xfffffff0
call fcn.00404645
jmp 0x405bf5
mov esi, 0x45ae6c
cmp byte [ebp - 0x4b], bl
je 0x405c77
cmp byte [0x45ae9c], bl
je 0x405c31
push dword [ebp - 0x4c]
lea eax, [ebp - 8]
push str.__Reboot_was_refused
call fcn.00416c8f
push eax
call fcn.00416ca0
push eax
call fcn.00416cbb
push eax
mov eax, esi
call fcn.0041601d
mov eax, dword [ebp - 8]
add eax, 0xfffffff0
call fcn.00404645
cmp byte [ebp - 0x4c], bl
jne 0x405c6d
cmp byte [0x45ae9c], bl
je 0x405c6d
push dword [ebp - 0x30]
lea eax, [ebp - 8]
push str.__Reboot_in_Progress
call fcn.00416c8f
push eax
call fcn.00416ca0
push eax
call fcn.00416cbb
push eax
mov eax, esi
call fcn.0041601d
mov eax, dword [ebp - 8]
add eax, 0xfffffff0
call fcn.00404645
cmp byte [ebp - 0x4b], bl
je 0x405c77
cmp byte [ebp - 0x4c], bl
je 0x405c7c
cmp byte [ebp - 0x30], bl
je 0x405c8d
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.004098d1
lea ebx, [ebp - 0x94]
call fcn.0041e892
cmp dword [ebp - 0x10], 0
mov dword [ebp - 0xa8], 0x44b8e4
jmp 0x40599c