Function at 0x405869
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.004088d5
mov esi, 0x453b18
lea eax, [ebp - 0xc]
lea ebx, [ebp - 0x1c]
mov dword [ebp - 0x20], esi
call fcn.0041d6a7
mov eax, dword [ebp - 0xc]
add eax, 0xfffffff0
mov dword [ebp - 0x18], 0x408646
mov byte [ebp - 0x14], 1
mov dword [ebp - 0x10], edi
call fcn.00404644
mov ebx, dword [ebp + 8]
test byte [ebx + 0x6c], 2
jne 0x4058f6
mov dword [ebp - 0x20], esi
cmp dword [ebp - 0x10], 0
je 0x4058ce
push dword [ebp - 0x10]
lea eax, [ebp - 0x20]
push eax
call dword [ebp - 0x18]
pop ecx
pop ecx
cmp byte [ebp - 0x14], 0
je 0x4058e2
push dword [ebp - 0x1c]
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
mov eax, dword [ebp - 0x1c]
add eax, 0xfffffff0
call fcn.00404644
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret 4
lea esi, [ebx + 0x18]
push 0x15
call fcn.00415c11
test eax, eax
je 0x40590d
mov dword [ebp - 0x20], 0x453b18
jmp 0x4058bc
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 0x405957
push 0x14
call fcn.00415c11
test eax, eax
je 0x40593e
add eax, 4
push eax
mov ebx, edi
call fcn.004122c6
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.0040606d
mov eax, edi
call fcn.00412379
test al, al
jne 0x4059d3
cmp byte [0x45ae9c], al
je 0x405993
push str.No_prerequisite_must_be_installed.
lea eax, [ebp + 8]
call fcn.00416d25
push eax
call fcn.00416d36
push eax
mov eax, 0x45ae6c
call fcn.004160b3
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
call fcn.00404644
xor esi, esi
cmp dword [ebp - 0x10], esi
mov dword [ebp - 0x20], 0x453b18
je 0x4059ad
push dword [ebp - 0x10]
lea eax, [ebp - 0x20]
push eax
call dword [ebp - 0x18]
pop ecx
pop ecx
cmp byte [ebp - 0x14], 0
je 0x4059c1
push dword [ebp - 0x1c]
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
mov eax, dword [ebp - 0x1c]
add eax, 0xfffffff0
call fcn.00404644
mov eax, esi
jmp 0x4058ef
lea esi, [ebx + 0x16c]
mov eax, esi
call fcn.004158ad
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.0041d708
push edi
call fcn.00411fe3
test al, al
je 0x405a9a
cmp byte [0x45ae9c], 0
je 0x405a3c
push str.Starting_installing_prerequisites_in_silent_mode.
lea eax, [ebp - 8]
call fcn.00416d25
push eax
call fcn.00416d36
push eax
mov eax, 0x45ae6c
call fcn.004160b3
mov eax, dword [ebp - 8]
add eax, 0xfffffff0
call fcn.00404644
lea ebx, [ebp - 0xac]
mov byte [ebp - 0x7c], 1
call fcn.0041e81a
xor esi, esi
push esi
mov eax, ebx
push eax
call fcn.0041daf8
push esi
mov eax, ebx
push eax
call fcn.0041e0e9
push esi
call fcn.0041e4e3
xor bl, bl
cmp byte [ebp - 0x4b], bl
jne 0x405ba3
lea eax, [ebp - 0xac]
call fcn.0041d8da
lea edi, [ebp - 0xac]
call fcn.0041e701
test al, al
jne 0x405ba3
mov dword [ebp - 0xc], 1
jmp 0x405ba3
push edi
call fcn.004120c9
test al, al
je 0x405b32
cmp byte [0x45ae9c], 0
je 0x405ada
push str.Starting_installing_prerequisites_in_basic_UI_mode.
lea eax, [ebp - 8]
call fcn.00416d25
push eax
call fcn.00416d36
push eax
mov eax, 0x45ae6c
call fcn.004160b3
mov eax, dword [ebp - 8]
add eax, 0xfffffff0
call fcn.00404644
push 0
mov eax, esi
call fcn.00415786
push eax
lea ecx, [ebp - 0xac]
lea esi, [ebp - 0x104]
call fcn.0041ed67
lea ebx, [ebp - 0xac]
call fcn.0041e81a
mov ebx, esi
call fcn.0041ee0b
dec eax
je 0x405b21
dec eax
je 0x405b1b
sub eax, 5
jne 0x405b25
mov dword [ebp - 0xc], 1
jmp 0x405b25
or dword [ebp - 0xc], 0xffffffff
jmp 0x405b25
and dword [ebp - 0xc], 0
lea eax, [ebp - 0x104]
call fcn.0041edcd
jmp 0x405ba1
cmp byte [0x45ae9c], 0
je 0x405b64
push str.Starting_installing_prerequisites_in_full_UI_mode.
lea eax, [ebp - 8]
call fcn.00416d25
push eax
call fcn.00416d36
push eax
mov eax, 0x45ae6c
call fcn.004160b3
mov eax, dword [ebp - 8]
add eax, 0xfffffff0
call fcn.00404644
push esi
lea eax, [ebp - 0xac]
push eax
lea eax, [ebp - 0x6a4]
push eax
call fcn.0041f062
call dword [sym.imp.USER32.dll_GetActiveWindow]
lea ebx, [ebp - 0x6a4]
call fcn.00408f35
cmp byte [ebp - 0x60b], 0
je 0x405b96
or dword [ebp - 0xc], 0xffffffff
lea ebx, [ebp - 0x6a4]
call fcn.00405cb8
xor bl, bl
cmp byte [0x45ae9c], bl
je 0x405bec
push dword [ebp - 0x4b]
lea eax, [ebp - 8]
push str.__Reboot_was_required
push str.After_running_prerequisites_we_have:
call fcn.00416d25
push eax
call fcn.00416d36
push eax
call fcn.00416d36
push eax
call fcn.00416d51
push eax
mov esi, 0x45ae6c
mov eax, esi
call fcn.004160b3
mov eax, dword [ebp - 8]
add eax, 0xfffffff0
call fcn.00404644
jmp 0x405bf1
mov esi, 0x45ae6c
cmp byte [ebp - 0x4b], bl
je 0x405c73
cmp byte [0x45ae9c], bl
je 0x405c2d
push dword [ebp - 0x4c]
lea eax, [ebp - 8]
push str.__Reboot_was_refused
call fcn.00416d25
push eax
call fcn.00416d36
push eax
call fcn.00416d51
push eax
mov eax, esi
call fcn.004160b3
mov eax, dword [ebp - 8]
add eax, 0xfffffff0
call fcn.00404644
cmp byte [ebp - 0x4c], bl
jne 0x405c69
cmp byte [0x45ae9c], bl
je 0x405c69
push dword [ebp - 0x30]
lea eax, [ebp - 8]
push str.__Reboot_in_Progress
call fcn.00416d25
push eax
call fcn.00416d36
push eax
call fcn.00416d51
push eax
mov eax, esi
call fcn.004160b3
mov eax, dword [ebp - 8]
add eax, 0xfffffff0
call fcn.00404644
cmp byte [ebp - 0x4b], bl
je 0x405c73
cmp byte [ebp - 0x4c], bl
je 0x405c78
cmp byte [ebp - 0x30], bl
je 0x405c89
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.004098fe
lea ebx, [ebp - 0x94]
call fcn.0041e920
cmp dword [ebp - 0x10], 0
mov dword [ebp - 0xa8], 0x44b8e4
jmp 0x405998