Function at 0x407dc0
Capabilities:
Delete registry key

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5514b6
mov eax, dword fs:[0]
push eax
sub esp, 0x248
mov eax, dword [0x5bb270]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
xor ebx, ebx
push ebx
push ebx
call fcn.004083b0
push str.UnstCallBefore
lea eax, [ebp - 0x228]
mov dword [ebp - 0x228], ebx
lea esi, [edi + 0x150]
push eax
mov ecx, esi
call fcn.00402600
mov ecx, eax
test ecx, ecx
je 0x407e79
push ebx
sub esp, 0xc
mov eax, esp
push dword [ebp - 0x228]
mov dword [eax], ebx
push ecx
mov dword [eax + 4], 5
mov ecx, edi
mov dword [eax + 8], 8
call fcn.00404d20
cmp eax, 0x643
jne 0x407e60
push dword [ebp - 0x228]
mov ecx, esi
call fcn.004037b0
mov eax, 0x643
jmp 0x4082b2
cmp eax, 0xbc2
jne 0x407e6c
mov ebx, 1
push dword [ebp - 0x228]
mov ecx, esi
call fcn.004037b0
lea eax, [ebp - 0x224]
mov ecx, esi
push eax
call fcn.00403860
push dword [eax]
mov ecx, edi
mov dword [ebp - 4], 0
call fcn.00405440
mov edx, dword [ebp - 0x224]
or eax, 0xffffffff
add edx, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea ecx, [edx + 0xc]
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x407ebe
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x23c]
mov dword [ebp - 0x23c], 0
push eax
mov ecx, esi
call fcn.00403530
test eax, eax
je 0x407ef5
push dword [ebp - 0x23c]
mov ecx, edi
push eax
call fcn.00406aa0
push dword [ebp - 0x23c]
mov ecx, esi
call fcn.004037b0
push 9
push 5
mov ecx, edi
call fcn.004083b0
lea eax, [ebp - 0x238]
mov dword [ebp - 0x238], 0
push eax
mov ecx, esi
call fcn.00402e60
mov dword [ebp - 0x224], eax
mov dword [ebp - 0x21c], 0
test eax, eax
je 0x408014
lea ecx, [ebp - 0x254]
call fcn.00412c44
cmp dword [edi + 0x14], 4
mov dword [ebp - 4], 1
jne 0x407f56
lea eax, [ebp - 0x254]
mov ecx, edi
push eax
call fcn.004056f0
lea eax, [ebp - 0x220]
mov dword [ebp - 0x220], 0
push eax
mov ecx, esi
call fcn.00403010
lea ecx, [ebp - 0x254]
mov dword [ebp - 0x234], eax
push ecx
push eax
push dword [ebp - 0x220]
mov ecx, edi
sub esp, 0xc
mov eax, esp
push dword [ebp - 0x238]
mov dword [eax], 5
push dword [ebp - 0x224]
mov dword [eax + 4], 0x46
mov dword [eax + 8], 1
call fcn.00406e00
cmp eax, 0xbc2
jne 0x407fdf
mov eax, dword [edi + 0x14]
cmp eax, 4
jne 0x407fc1
xor ebx, ebx
jmp 0x407fd9
cmp eax, 3
jne 0x407fd4
xor ebx, ebx
mov dword [ebp - 0x21c], 1
jmp 0x407fdf
mov ebx, 1
mov dword [ebp - 0x21c], ebx
cmp dword [ebp - 0x234], 0
jbe 0x407ff5
push dword [ebp - 0x220]
mov ecx, esi
call fcn.004037b0
push dword [ebp - 0x238]
mov ecx, esi
call fcn.004037b0
lea ecx, [ebp - 0x254]
mov dword [ebp - 4], 0xffffffff
call fcn.00412c5b
push 2
push 0x46
mov ecx, edi
call fcn.004083b0
lea eax, [ebp - 0x22c]
mov dword [ebp - 0x22c], 0
push eax
mov ecx, esi
call fcn.00403010
mov ecx, eax
test ecx, ecx
je 0x408077
push dword [ebp - 0x21c]
sub esp, 0xc
mov eax, esp
push dword [ebp - 0x22c]
mov dword [eax], 0x46
push ecx
mov dword [eax + 4], 0x50
mov ecx, edi
mov dword [eax + 8], 3
call fcn.00407200
push dword [ebp - 0x22c]
mov ecx, esi
call fcn.004037b0
push 4
push 0x50
mov ecx, edi
call fcn.004083b0
cmp dword [ebp - 0x21c], 0
je 0x408092
mov ecx, edi
call fcn.00406ba0
lea eax, [ebp - 0x240]
mov dword [ebp - 0x240], 0
push eax
mov ecx, esi
call fcn.00402870
test eax, eax
je 0x4080c9
push dword [ebp - 0x240]
mov ecx, edi
push eax
call fcn.00407080
push dword [ebp - 0x240]
mov ecx, esi
call fcn.004037b0
lea ecx, [edi + 0x18]
mov dword [ebp - 0x21c], 0x5a
call fcn.00409a80
test eax, eax
je 0x40819c
lea eax, [ebp - 0x220]
mov dword [ebp - 0x220], 0
push eax
mov ecx, esi
call fcn.00402c60
mov edx, eax
test edx, edx
je 0x408136
sub esp, 0xc
mov ecx, 0x5a
mov eax, esp
push dword [ebp - 0x220]
mov dword [eax], 0x5a
mov dword [eax + 4], ecx
mov ecx, edi
push edx
mov dword [eax + 8], 5
call fcn.00407870
push dword [ebp - 0x220]
mov ecx, esi
call fcn.004037b0
lea eax, [ebp - 0x224]
mov dword [ebp - 0x21c], 0x5f
push eax
mov ecx, esi
mov dword [ebp - 0x224], 0
call fcn.00402a60
mov edx, eax
test edx, edx
je 0x408194
mov ecx, dword [ebp - 0x21c]
sub esp, 0xc
mov eax, esp
push dword [ebp - 0x224]
mov dword [eax], 0x5a
mov dword [eax + 4], ecx
mov ecx, edi
push edx
mov dword [eax + 8], 5
call fcn.00407680
push dword [ebp - 0x224]
mov ecx, esi
call fcn.004037b0
lea ecx, [edi + 0x18]
call fcn.0040a300
push 6
push dword [ebp - 0x21c]
mov ecx, edi
call fcn.004083b0
push str.UnstCallAfter
lea eax, [ebp - 0x230]
mov dword [ebp - 0x230], 0
push eax
mov ecx, esi
call fcn.00402600
mov edx, eax
test edx, edx
je 0x408212
mov ecx, dword [ebp - 0x21c]
push 1
sub esp, 0xc
mov eax, esp
push dword [ebp - 0x230]
mov dword [eax], ecx
mov ecx, edi
mov dword [eax + 4], 0x63
push edx
mov dword [eax + 8], 0xa
call fcn.00404d20
cmp eax, 0xbc2
jne 0x408205
mov ebx, 1
push dword [ebp - 0x230]
mov ecx, esi
call fcn.004037b0
push 0xb
push 0x63
mov ecx, edi
call fcn.004083b0
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x218], ax
lea eax, [ebp - 0x216]
push eax
call fcn.00537c80
add esp, 0xc
lea eax, [ebp - 0x234]
mov ecx, esi
push eax
call fcn.004039d0
push dword [eax]
lea eax, [ebp - 0x218]
push str.SoftwareMicrosoftWindowsCurrentVersionUninstall
push 0x561e78
push 0x104
push eax
call fcn.0053777e
mov edx, dword [ebp - 0x234]
add esp, 0x14
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x408289
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x218]
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.SHLWAPI.dll_SHDeleteKeyW]
push 7
push 0x64
mov ecx, edi
call fcn.004083b0
neg ebx
sbb ebx, ebx
and ebx, 0xbc2
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0053787e
mov esp, ebp
pop ebp
ret