Function at 0x40656d
Capabilities:
Delete registry key

Disassembly:
sub esp, 0x108
push ebx
push ebp
push esi
push edi
mov edi, ecx
lea ecx, [esp + 0x10]
push str.InterbootContext
call fcn.0040985c
lea eax, [esp + 0x10]
mov dword [esp + 0x18], 0x443b04
push eax
lea ecx, [esp + 0x20]
call fcn.004179e4
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x11c]
mov dword [esp + 0x20], 0x409053
mov byte [esp + 0x24], 1
lea ecx, [ecx - 0x10]
mov dword [esp + 0x28], esi
call fcn.004052ff
test byte [edi + 0x7c], 2
je 0x40669c
push 0x15
lea ecx, [edi + 0x24]
call fcn.00414203
test eax, eax
jne 0x40669c
mov eax, dword [esi + 0x34]
mov dword [edi + 0xc8], eax
mov al, byte [esi + 0x38]
mov byte [edi + 0xcc], al
cmp dword [esi + 8], 0
jle 0x40662b
push 0x14
lea ecx, [edi + 0x24]
call fcn.00414203
test eax, eax
je 0x40660e
add eax, 4
mov ecx, esi
push eax
call fcn.00413749
push 0xdf
lea eax, [esp + 0x30]
mov dword [esp + 0x30], 0x440070
push eax
mov ecx, edi
mov dword [esp + 0x38], esi
call fcn.00406a4a
mov ebp, dword [esi + 8]
xor ebx, ebx
test ebp, ebp
jle 0x406665
lea eax, [esi + 4]
push ebx
mov ecx, eax
call fcn.00409eeb
mov eax, dword [eax + 0x64]
cmp eax, 2
je 0x4066ed
cmp eax, 1
je 0x4066ed
cmp eax, 3
je 0x4066ed
inc ebx
lea eax, [esi + 4]
cmp ebx, ebp
jl 0x406637
cmp byte [0x449ac4], 0
je 0x40669c
lea ecx, [esp + 0x14]
call fcn.00415236
mov esi, eax
push str.No_prerequisite_must_be_installed.
mov ecx, esi
call fcn.004028da
push esi
mov ecx, 0x449a94
call fcn.0041466e
mov ecx, dword [esp + 0x14]
lea ecx, [ecx - 0x10]
call fcn.004052ff
xor ebx, ebx
cmp dword [esp + 0x28], 0
mov dword [esp + 0x18], 0x443b04
je 0x4066bc
push dword [esp + 0x28]
lea eax, [esp + 0x1c]
push eax
call dword [esp + 0x28]
pop ecx
pop ecx
cmp byte [esp + 0x24], 0
je 0x4066d2
push dword [esp + 0x1c]
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
mov ecx, dword [esp + 0x1c]
add ecx, 0xfffffff0
call fcn.004052ff
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
add esp, 0x108
ret 4
lea ecx, [edi + 0x188]
call fcn.0040f4f8
lea ecx, [esp + 0x18]
xor ebx, ebx
push ecx
lea eax, [edi + 0x17c]
push eax
lea eax, [edi + 0x38]
push eax
push esi
push edi
lea ecx, [esp + 0x4c]
call fcn.00417a46
mov ecx, edi
call fcn.00409282
mov ebp, 0x449a94
test al, al
je 0x4067ba
cmp byte [0x449ac4], bl
je 0x40675c
lea ecx, [esp + 0x10]
call fcn.00415236
mov esi, eax
push str.Starting_installing_prerequisites_in_silent_mode.
mov ecx, esi
call fcn.004028da
push esi
mov ecx, ebp
call fcn.0041466e
mov eax, dword [esp + 0x10]
lea ecx, [eax - 0x10]
call fcn.004052ff
lea ecx, [esp + 0x38]
mov byte [esp + 0x6c], 1
call fcn.00418b30
xor esi, esi
lea ecx, [esp + 0x38]
push esi
call fcn.00417d7d
push esi
lea ecx, [esp + 0x3c]
call fcn.00418415
push esi
lea ecx, [esp + 0x3c]
call fcn.00418806
cmp byte [esp + 0x9d], bl
jne 0x406848
push ecx
lea ecx, [esp + 0x3c]
call fcn.00417c17
lea ecx, [esp + 0x38]
call fcn.00418a40
test al, al
jne 0x406848
xor ebx, ebx
inc ebx
jmp 0x406848
cmp byte [0x449ac4], bl
je 0x4067ed
lea ecx, [esp + 0x10]
call fcn.00415236
mov esi, eax
push str.Starting_installing_prerequisites_in_basic_UI_mode.
mov ecx, esi
call fcn.004028da
push esi
mov ecx, ebp
call fcn.0041466e
mov ecx, dword [esp + 0x10]
lea ecx, [ecx - 0x10]
call fcn.004052ff
push 0
lea ecx, [edi + 0x17c]
call fcn.00413db6
push eax
lea eax, [esp + 0x3c]
push eax
lea ecx, [esp + 0xc8]
call fcn.0041911a
lea ecx, [esp + 0x38]
call fcn.00418b30
lea ecx, [esp + 0xc0]
call fcn.004191c7
sub eax, 1
je 0x40683a
sub eax, 1
je 0x406835
sub eax, 5
jne 0x40683c
xor ebx, ebx
inc ebx
jmp 0x40683c
or ebx, 0xffffffff
jmp 0x40683c
xor ebx, ebx
lea ecx, [esp + 0xc0]
call fcn.00419189
mov al, byte [0x449ac4]
test al, al
je 0x4068a3
mov al, byte [esp + 0x9d]
lea ecx, [esp + 0x14]
mov byte [esp + 0x10], al
call fcn.00415236
mov esi, eax
push str.After_running_prerequisites_we_have:
mov ecx, esi
call fcn.004028da
push str.__Reboot_was_required
mov ecx, esi
call fcn.004028da
push dword [esp + 0x10]
mov ecx, esi
call fcn.00415263
push eax
mov ecx, ebp
call fcn.0041466e
mov eax, dword [esp + 0x14]
lea ecx, [eax - 0x10]
call fcn.004052ff
mov al, byte [0x449ac4]
cmp byte [esp + 0x9d], 0
je 0x406960
test al, al
je 0x4068fb
mov al, byte [esp + 0x9c]
lea ecx, [esp + 0x10]
mov byte [esp + 0x14], al
call fcn.00415236
mov esi, eax
push str.__Reboot_was_refused
mov ecx, esi
call fcn.004028da
push dword [esp + 0x14]
mov ecx, esi
call fcn.00415263
push eax
mov ecx, ebp
call fcn.0041466e
mov eax, dword [esp + 0x10]
lea ecx, [eax - 0x10]
call fcn.004052ff
mov al, byte [0x449ac4]
mov cl, byte [esp + 0x9c]
test cl, cl
jne 0x406952
test al, al
je 0x406952
mov al, byte [esp + 0xb8]
lea ecx, [esp + 0x10]
mov byte [esp + 0x14], al
call fcn.00415236
mov esi, eax
push str.__Reboot_in_Progress
mov ecx, esi
call fcn.004028da
push dword [esp + 0x14]
mov ecx, esi
call fcn.00415263
push eax
mov ecx, ebp
call fcn.0041466e
mov ecx, dword [esp + 0x10]
add ecx, 0xfffffff0
call fcn.004052ff
mov cl, byte [esp + 0x9c]
cmp byte [esp + 0x9d], 0
je 0x406960
test cl, cl
je 0x40696a
cmp byte [esp + 0xb8], 0
je 0x406979
mov byte [esp + 0x24], 0
or ebx, 0xffffffff
mov byte [edi + 0x1f0], 1
mov ecx, dword [esp + 0x48]
lea ecx, [ecx - 0x10]
call fcn.0040ab13
lea ecx, [edi + 0x14]
lea esi, [eax + 0x10]
lea eax, [esp + 0x14]
mov dword [esp + 0x14], esi
push eax
call fcn.00409e7f
lea ecx, [esi - 0x10]
call fcn.004052ff
lea ecx, [esp + 0x38]
mov dword [edi + 0x18], ebx
call fcn.004069b2
jmp 0x40669e