Function at 0x405822
Capabilities:
Delete registry key

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x6d0
push ebx
push esi
push edi
mov edi, eax
push 0x44aebc
lea eax, [ebp - 0xc]
call fcn.004087af
mov esi, 0x453a4c
lea eax, [ebp - 0xc]
lea ebx, [ebp - 0x1c]
mov dword [ebp - 0x20], esi
call fcn.0041b6d5
mov eax, dword [ebp - 0xc]
add eax, 0xfffffff0
mov dword [ebp - 0x18], 0x408596
mov byte [ebp - 0x14], 1
mov dword [ebp - 0x10], edi
call fcn.004045dc
mov ebx, dword [ebp + 8]
test byte [ebx + 0x6c], 2
jne 0x4058af
mov dword [ebp - 0x20], esi
cmp dword [ebp - 0x10], 0
je 0x405887
push dword [ebp - 0x10]
lea eax, [ebp - 0x20]
push eax
call dword [ebp - 0x18]
pop ecx
pop ecx
cmp byte [ebp - 0x14], 0
je 0x40589b
push dword [ebp - 0x1c]
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
mov eax, dword [ebp - 0x1c]
add eax, 0xfffffff0
call fcn.004045dc
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret 4
lea esi, [ebx + 0x18]
push 0x15
call fcn.00415ac5
test eax, eax
je 0x4058c6
mov dword [ebp - 0x20], 0x453a4c
jmp 0x405875
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 0x405910
push 0x14
call fcn.00415ac5
test eax, eax
je 0x4058f7
add eax, 4
push eax
mov ebx, edi
call fcn.00412215
mov ebx, dword [ebp + 8]
push 0xdf
lea esi, [ebp - 0x2c]
mov eax, ebx
mov dword [ebp - 0x2c], 0x44b968
mov dword [ebp - 0x28], edi
call fcn.004060b2
mov eax, edi
call fcn.004122c8
test al, al
jne 0x40598c
cmp byte [0x45aed4], al
je 0x40594c
push str.No_prerequisite_must_be_installed.
lea eax, [ebp + 8]
call fcn.00416bf9
push eax
call fcn.00416c0a
push eax
mov eax, 0x45aea4
call fcn.00415f87
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
call fcn.004045dc
xor esi, esi
cmp dword [ebp - 0x10], esi
mov dword [ebp - 0x20], 0x453a4c
je 0x405966
push dword [ebp - 0x10]
lea eax, [ebp - 0x20]
push eax
call dword [ebp - 0x18]
pop ecx
pop ecx
cmp byte [ebp - 0x14], 0
je 0x40597a
push dword [ebp - 0x1c]
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
mov eax, dword [ebp - 0x1c]
add eax, 0xfffffff0
call fcn.004045dc
mov eax, esi
jmp 0x4058a8
lea esi, [ebx + 0x16c]
mov eax, esi
call fcn.0041575c
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.0041b736
push edi
call fcn.00411f32
test al, al
je 0x405a53
cmp byte [0x45aed4], 0
je 0x4059f5
push str.Starting_installing_prerequisites_in_silent_mode.
lea eax, [ebp - 8]
call fcn.00416bf9
push eax
call fcn.00416c0a
push eax
mov eax, 0x45aea4
call fcn.00415f87
mov eax, dword [ebp - 8]
add eax, 0xfffffff0
call fcn.004045dc
lea ebx, [ebp - 0xac]
mov byte [ebp - 0x7c], 1
call fcn.0041c848
xor esi, esi
push esi
mov eax, ebx
push eax
call fcn.0041bb26
push esi
mov eax, ebx
push eax
call fcn.0041c117
push esi
call fcn.0041c511
xor bl, bl
cmp byte [ebp - 0x4b], bl
jne 0x405b5c
lea eax, [ebp - 0xac]
call fcn.0041b908
lea edi, [ebp - 0xac]
call fcn.0041c72f
test al, al
jne 0x405b5c
mov dword [ebp - 0xc], 1
jmp 0x405b5c
push edi
call fcn.00412018
test al, al
je 0x405aeb
cmp byte [0x45aed4], 0
je 0x405a93
push str.Starting_installing_prerequisites_in_basic_UI_mode.
lea eax, [ebp - 8]
call fcn.00416bf9
push eax
call fcn.00416c0a
push eax
mov eax, 0x45aea4
call fcn.00415f87
mov eax, dword [ebp - 8]
add eax, 0xfffffff0
call fcn.004045dc
push 0
mov eax, esi
call fcn.00415635
push eax
lea ecx, [ebp - 0xac]
lea esi, [ebp - 0x104]
call fcn.0041cd96
lea ebx, [ebp - 0xac]
call fcn.0041c848
mov ebx, esi
call fcn.0041ce3a
dec eax
je 0x405ada
dec eax
je 0x405ad4
sub eax, 5
jne 0x405ade
mov dword [ebp - 0xc], 1
jmp 0x405ade
or dword [ebp - 0xc], 0xffffffff
jmp 0x405ade
and dword [ebp - 0xc], 0
lea eax, [ebp - 0x104]
call fcn.0041cdfc
jmp 0x405b5a
cmp byte [0x45aed4], 0
je 0x405b1d
push str.Starting_installing_prerequisites_in_full_UI_mode.
lea eax, [ebp - 8]
call fcn.00416bf9
push eax
call fcn.00416c0a
push eax
mov eax, 0x45aea4
call fcn.00415f87
mov eax, dword [ebp - 8]
add eax, 0xfffffff0
call fcn.004045dc
push esi
lea eax, [ebp - 0xac]
push eax
lea eax, [ebp - 0x6cc]
push eax
call fcn.0041d090
call dword [sym.imp.USER32.dll_GetActiveWindow]
lea ebx, [ebp - 0x6cc]
call fcn.00408dee
cmp byte [ebp - 0x633], 0
je 0x405b4f
or dword [ebp - 0xc], 0xffffffff
lea eax, [ebp - 0x6cc]
call fcn.00405c71
xor bl, bl
cmp byte [0x45aed4], bl
je 0x405ba5
push dword [ebp - 0x4b]
lea eax, [ebp - 8]
push str.__Reboot_was_required
push str.After_running_prerequisites_we_have:
call fcn.00416bf9
push eax
call fcn.00416c0a
push eax
call fcn.00416c0a
push eax
call fcn.00416c25
push eax
mov esi, 0x45aea4
mov eax, esi
call fcn.00415f87
mov eax, dword [ebp - 8]
add eax, 0xfffffff0
call fcn.004045dc
jmp 0x405baa
mov esi, 0x45aea4
cmp byte [ebp - 0x4b], bl
je 0x405c2c
cmp byte [0x45aed4], bl
je 0x405be6
push dword [ebp - 0x4c]
lea eax, [ebp - 8]
push str.__Reboot_was_refused
call fcn.00416bf9
push eax
call fcn.00416c0a
push eax
call fcn.00416c25
push eax
mov eax, esi
call fcn.00415f87
mov eax, dword [ebp - 8]
add eax, 0xfffffff0
call fcn.004045dc
cmp byte [ebp - 0x4c], bl
jne 0x405c22
cmp byte [0x45aed4], bl
je 0x405c22
push dword [ebp - 0x30]
lea eax, [ebp - 8]
push str.__Reboot_in_Progress
call fcn.00416bf9
push eax
call fcn.00416c0a
push eax
call fcn.00416c25
push eax
mov eax, esi
call fcn.00415f87
mov eax, dword [ebp - 8]
add eax, 0xfffffff0
call fcn.004045dc
cmp byte [ebp - 0x4b], bl
je 0x405c2c
cmp byte [ebp - 0x4c], bl
je 0x405c31
cmp byte [ebp - 0x30], bl
je 0x405c42
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.004097d8
lea ebx, [ebp - 0x94]
call fcn.0041c94e
cmp dword [ebp - 0x10], 0
mov dword [ebp - 0xa8], 0x44b8c4
jmp 0x405951