Function at 0x405886
Capabilities:
Delete registry key

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x6b4
push ebx
push esi
push edi
push 0x449ecc
lea eax, [ebp - 4]
call fcn.00408943
mov edi, 0x4525bc
lea eax, [ebp - 4]
lea ebx, [ebp - 0x14]
mov dword [ebp - 0x18], edi
call fcn.0041a81a
mov eax, dword [ebp - 4]
mov ebx, dword [ebp + 0xc]
add eax, 0xfffffff0
mov dword [ebp - 0x10], 0x4086b4
mov byte [ebp - 0xc], 1
mov dword [ebp - 8], ebx
call fcn.0040469f
mov eax, dword [ebp + 8]
test byte [eax + 0x6c], 2
jne 0x405914
cmp dword [ebp - 8], 0
mov dword [ebp - 0x18], edi
je 0x4058ec
push dword [ebp - 8]
lea eax, [ebp - 0x18]
push eax
call dword [ebp - 0x10]
pop ecx
pop ecx
cmp byte [ebp - 0xc], 0
je 0x405900
push dword [ebp - 0x14]
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
mov eax, dword [ebp - 0x14]
add eax, 0xfffffff0
call fcn.0040469f
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret 8
lea esi, [eax + 0x18]
push 0x15
mov dword [ebp - 4], esi
call fcn.00415857
test eax, eax
jne 0x4058d7
mov eax, dword [ebx + 0x34]
mov esi, dword [ebp + 8]
mov dword [esi + 0xac], eax
mov al, byte [ebx + 0x38]
mov byte [esi + 0xb0], al
cmp dword [ebx + 8], 0
jle 0x405979
mov esi, dword [ebp - 4]
push 0x14
call fcn.00415857
test eax, eax
je 0x405957
add eax, 4
push eax
call fcn.00411fc0
mov eax, dword [ebp + 8]
push 0xdf
lea edi, [ebp - 0x24]
mov dword [ebp - 0x24], 0x44a930
mov dword [ebp - 0x20], ebx
call fcn.00406105
mov esi, dword [ebp + 8]
mov edi, 0x4525bc
mov eax, ebx
call fcn.00412073
test al, al
jne 0x4059f1
cmp byte [0x458cfc], al
je 0x4059b5
push str.No_prerequisite_must_be_installed.
lea eax, [ebp + 8]
call fcn.0041692e
push eax
call fcn.0041693f
push eax
mov eax, 0x458ccc
call fcn.00415cee
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
call fcn.0040469f
xor esi, esi
mov dword [ebp - 0x18], edi
cmp dword [ebp - 8], esi
je 0x4059cb
push dword [ebp - 8]
lea eax, [ebp - 0x18]
push eax
call dword [ebp - 0x10]
pop ecx
pop ecx
cmp byte [ebp - 0xc], 0
je 0x4059df
push dword [ebp - 0x14]
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
mov eax, dword [ebp - 0x14]
add eax, 0xfffffff0
call fcn.0040469f
mov eax, esi
jmp 0x40590d
lea edi, [esi + 0x168]
mov eax, edi
call fcn.004154f3
and dword [ebp + 0xc], 0
push edi
lea eax, [esi + 0x28]
push eax
lea eax, [ebp - 0xa8]
push eax
lea ecx, [ebp - 0x18]
mov edx, ebx
mov eax, esi
call fcn.0041a87b
push ebx
call fcn.00411cdd
test al, al
je 0x405abb
cmp byte [0x458cfc], 0
je 0x405a5a
push str.Starting_installing_prerequisites_in_silent_mode.
lea eax, [ebp - 4]
call fcn.0041692e
push eax
call fcn.0041693f
push eax
mov eax, 0x458ccc
call fcn.00415cee
mov eax, dword [ebp - 4]
add eax, 0xfffffff0
call fcn.0040469f
lea ebx, [ebp - 0xa8]
mov byte [ebp - 0x78], 1
call fcn.0041b951
xor edi, edi
push edi
mov eax, ebx
push eax
call fcn.0041ac69
push edi
mov eax, ebx
push eax
call fcn.0041b25b
push edi
call fcn.0041b61a
xor bl, bl
cmp byte [ebp - 0x47], bl
jne 0x405c42
lea eax, [ebp - 0xa8]
call fcn.0041aa4d
lea edi, [ebp - 0xa8]
call fcn.0041b838
mov esi, dword [ebp + 8]
test al, al
jne 0x405c42
mov dword [ebp + 0xc], 1
jmp 0x405c42
push ebx
call fcn.00411dc3
test al, al
je 0x405b56
cmp byte [0x458cfc], 0
je 0x405afb
push str.Starting_installing_prerequisites_in_basic_UI_mode.
lea eax, [ebp - 4]
call fcn.0041692e
push eax
call fcn.0041693f
push eax
mov eax, 0x458ccc
call fcn.00415cee
mov eax, dword [ebp - 4]
add eax, 0xfffffff0
call fcn.0040469f
push 0
mov eax, edi
call fcn.00415425
push eax
lea ecx, [ebp - 0xa8]
lea edi, [ebp - 0x100]
call fcn.0041be9c
lea ebx, [ebp - 0xa8]
call fcn.0041b951
mov ebx, edi
call fcn.0041bf40
dec eax
je 0x405b42
dec eax
je 0x405b3c
sub eax, 5
jne 0x405b46
mov dword [ebp + 0xc], 1
jmp 0x405b46
or dword [ebp + 0xc], 0xffffffff
jmp 0x405b46
and dword [ebp + 0xc], 0
lea eax, [ebp - 0x100]
call fcn.0041bf02
jmp 0x405c3d
cmp byte [0x458cfc], 0
je 0x405b88
push str.Starting_installing_prerequisites_in_full_UI_mode.
lea eax, [ebp - 4]
call fcn.0041692e
push eax
call fcn.0041693f
push eax
mov eax, 0x458ccc
call fcn.00415cee
mov eax, dword [ebp - 4]
add eax, 0xfffffff0
call fcn.0040469f
push edi
lea eax, [ebp - 0xa8]
push eax
lea eax, [ebp - 0x6b0]
push eax
call fcn.0041c196
call dword [sym.imp.USER32.dll_GetActiveWindow]
and dword [ebp - 0x688], 0xfffffbff
cmp dword [ebp - 0x684], 0
jne 0x405bbb
mov dword [ebp - 0x684], eax
mov eax, dword [ebp - 0x658]
mov dword [ebp - 0x66c], eax
mov eax, dword [ebp - 0x654]
mov dword [ebp - 0x674], eax
lea eax, [ebp - 0x6b0]
lea esi, [ebp - 0x6a8]
call fcn.00409ab7
lea eax, [ebp - 0x68c]
push eax
call dword [sym.imp.COMCTL32.dll_PropertySheetW]
xor esi, esi
mov dword [ebp - 0x674], esi
mov dword [ebp - 0x66c], esi
cmp dword [ebp - 0x658], esi
je 0x405c19
push dword [ebp - 0x658]
call fcn.00430c47
pop ecx
mov dword [ebp - 0x658], esi
cmp byte [ebp - 0x617], 0
mov dword [ebp - 0x654], esi
mov dword [ebp - 0x650], esi
je 0x405c32
or dword [ebp + 0xc], 0xffffffff
lea ebx, [ebp - 0x6b0]
call fcn.00405d7d
mov esi, dword [ebp + 8]
xor bl, bl
cmp byte [0x458cfc], bl
je 0x405c8b
push dword [ebp - 0x47]
lea eax, [ebp + 8]
push str.__Reboot_was_required
push str.After_running_prerequisites_we_have:
call fcn.0041692e
push eax
call fcn.0041693f
push eax
call fcn.0041693f
push eax
call fcn.0041695a
push eax
mov edi, 0x458ccc
mov eax, edi
call fcn.00415cee
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
call fcn.0040469f
jmp 0x405c90
mov edi, 0x458ccc
cmp byte [ebp - 0x47], bl
je 0x405d12
cmp byte [0x458cfc], bl
je 0x405ccc
push dword [ebp - 0x48]
lea eax, [ebp + 8]
push str.__Reboot_was_refused
call fcn.0041692e
push eax
call fcn.0041693f
push eax
call fcn.0041695a
push eax
mov eax, edi
call fcn.00415cee
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
call fcn.0040469f
cmp byte [ebp - 0x48], bl
jne 0x405d08
cmp byte [0x458cfc], bl
je 0x405d08
push dword [ebp - 0x2c]
lea eax, [ebp + 8]
push str.__Reboot_in_Progress
call fcn.0041692e
push eax
call fcn.0041693f
push eax
call fcn.0041695a
push eax
mov eax, edi
call fcn.00415cee
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
call fcn.0040469f
cmp byte [ebp - 0x47], bl
je 0x405d12
cmp byte [ebp - 0x48], bl
je 0x405d17
cmp byte [ebp - 0x2c], bl
je 0x405d25
or dword [ebp + 0xc], 0xffffffff
mov byte [ebp - 0xc], bl
mov byte [esi + 0x1b4], 1
mov eax, dword [ebp + 0xc]
lea edi, [ebp - 0x5c]
mov dword [esi + 0x10], eax
call fcn.00409929
lea ebx, [ebp - 0x90]
call fcn.0041ba57
cmp dword [ebp - 8], 0
mov dword [ebp - 0xa4], 0x44a8d4
mov dword [ebp - 0x18], 0x4525bc
je 0x405d61
push dword [ebp - 8]
lea eax, [ebp - 0x18]
push eax
call dword [ebp - 0x10]
pop ecx
pop ecx
cmp byte [ebp - 0xc], 0
je 0x405d75
push dword [ebp - 0x14]
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
mov esi, dword [ebp + 0xc]
jmp 0x4059df