Function at 0x406d20
Capabilities:
Delete registry key
Delete registry value

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x2250
call fcn.00419df0
mov eax, dword [0x4302ec]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 0x14]
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
xor ebx, ebx
push edi
mov dword [ebp - 0x2210], ecx
mov dword [ebp - 0x2220], eax
mov dword [ebp - 0x221c], ebx
mov dword [ebp - 0x2218], ebx
mov dword [ebp - 0x2238], edx
call fcn.00405a00
mov esi, eax
cmp esi, ebx
jl 0x407403
cmp word [edi], 0x7d
je 0x407401
lea ecx, [ecx]
mov esi, dword [sym.imp.KERNEL32.dll_lstrcmpiW]
push str.Delete
push edi
mov dword [ebp - 0x222c], 1
call esi
mov ebx, eax
neg ebx
push str.ForceRemove
sbb ebx, ebx
push edi
inc ebx
call esi
test eax, eax
je 0x406db3
test ebx, ebx
je 0x406ecb
mov ecx, dword [ebp - 0x2210]
push edi
call fcn.00405a00
mov esi, eax
test esi, esi
jl 0x4073f0
xor esi, esi
cmp dword [ebp + 0x10], esi
je 0x406ecd
push 0x5c
push edi
mov dword [ebp - 0x2228], esi
mov dword [ebp - 0x2224], esi
call fcn.00405950
add esp, 8
test eax, eax
jne 0x407357
mov ecx, dword [ebp - 0x2210]
push edi
call fcn.00405b80
test eax, eax
je 0x406e2d
mov eax, dword [ebp - 0x2220]
push edi
lea ecx, [ebp - 0x2228]
mov dword [ebp - 0x2228], eax
mov dword [ebp - 0x2224], esi
call fcn.00405d30
mov dword [ebp - 0x2228], esi
mov dword [ebp - 0x2224], esi
cmp ebx, esi
je 0x406ec3
mov ebx, dword [ebp - 0x2210]
push edi
mov ecx, ebx
call fcn.00405a00
mov esi, eax
test esi, esi
jl 0x407385
push edi
mov ecx, ebx
call fcn.00405c10
mov esi, eax
test esi, esi
jl 0x407385
mov dword [ebp - 0x2224], 0
cmp word [edi], 0x7b
jne 0x406eb4
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
cmp eax, 1
jne 0x406eb4
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp - 0x221c]
mov ecx, dword [ebp - 0x2210]
push 0
push edx
push eax
push edi
call fcn.00406d20
mov esi, eax
test esi, esi
jl 0x4073f0
mov ecx, dword [ebp - 0x2210]
push edi
call fcn.00405a00
mov esi, eax
test esi, esi
jl 0x4073f0
cmp word [edi], 0x7d
jne 0x406d80
jmp 0x4073f0
mov dword [ebp - 0x2224], esi
jmp 0x406ecd
xor esi, esi
push str.NoRemove
push edi
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x406efb
mov ecx, dword [ebp - 0x2210]
push edi
mov dword [ebp - 0x222c], eax
call fcn.00405a00
mov esi, eax
test esi, esi
jl 0x4073f0
xor esi, esi
push 0x428688
push edi
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x407025
lea ecx, [ebp - 0x220c]
push ecx
mov ecx, dword [ebp - 0x2210]
call fcn.00405a00
mov esi, eax
test esi, esi
jl 0x4073f0
mov ecx, dword [ebp - 0x2210]
push edi
call fcn.00405a00
mov esi, eax
test esi, esi
jl 0x4073f0
cmp word [edi], 0x3d
jne 0x407362
xor ebx, ebx
cmp dword [ebp + 0x10], ebx
je 0x406f9f
mov edx, dword [ebp - 0x2220]
push edi
lea eax, [ebp - 0x220c]
push eax
lea ecx, [ebp - 0x2240]
push ecx
mov ecx, dword [ebp - 0x2210]
mov dword [ebp - 0x2240], edx
mov dword [ebp - 0x223c], ebx
call fcn.004069c0
mov esi, eax
cmp esi, ebx
mov dword [ebp - 0x2240], ebx
mov dword [ebp - 0x223c], ebx
jl 0x40738d
mov dword [ebp - 0x223c], ebx
jmp 0x406e69
cmp dword [ebp + 0x14], ebx
jne 0x407010
cmp dword [ebp - 0x222c], ebx
je 0x407010
mov edx, dword [ebp - 0x2220]
push 0x20006
push ebx
push edx
lea ecx, [ebp - 0x2234]
mov dword [ebp - 0x2234], ebx
mov dword [ebp - 0x2230], ebx
call fcn.004055f0
cmp eax, ebx
jne 0x4073a5
mov esi, dword [ebp - 0x2234]
lea eax, [ebp - 0x220c]
push eax
push esi
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
cmp eax, ebx
je 0x406ff9
cmp eax, 2
jne 0x4073a5
cmp esi, ebx
je 0x40700a
push esi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x2234], ebx
mov dword [ebp - 0x2230], ebx
mov ecx, dword [ebp - 0x2210]
push edi
call fcn.00405c10
mov esi, eax
cmp esi, ebx
jmp 0x406eae
push 0x5c
push edi
call fcn.00405950
add esp, 8
test eax, eax
jne 0x407362
cmp dword [ebp + 0x10], esi
je 0x407149
mov ebx, dword [ebp - 0x2220]
lea ecx, [ebp - 0x2214]
push ecx
push 0x2001f
push esi
push edi
push ebx
mov dword [ebp - 0x2214], esi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
cmp eax, esi
jne 0x40708f
mov ecx, dword [ebp - 0x221c]
xor eax, eax
cmp ecx, esi
je 0x407079
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov edx, dword [ebp - 0x2214]
mov dword [ebp - 0x2218], esi
mov dword [ebp - 0x221c], edx
cmp eax, esi
je 0x407105
push 0x20019
push edi
push ebx
lea ecx, [ebp - 0x221c]
call fcn.004055f0
test eax, eax
je 0x407105
lea eax, [ebp - 0x2250]
push eax
lea ecx, [ebp - 0x2214]
push ecx
push esi
push 0x2001f
push esi
push esi
push esi
push edi
mov edx, ebx
push edx
mov dword [ebp - 0x2214], esi
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
mov ebx, eax
cmp ebx, esi
jne 0x4073b3
mov ecx, dword [ebp - 0x221c]
xor eax, eax
cmp ecx, esi
je 0x4070e9
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp - 0x2214]
mov dword [ebp - 0x2218], esi
mov ebx, eax
mov dword [ebp - 0x221c], ecx
cmp eax, esi
jne 0x4073b3
mov ecx, dword [ebp - 0x2210]
push edi
call fcn.00405a00
mov esi, eax
test esi, esi
jl 0x4073f0
cmp word [edi], 0x3d
jne 0x406e69
mov ecx, dword [ebp - 0x2210]
push edi
push 0
lea edx, [ebp - 0x221c]
push edx
call fcn.004069c0
mov esi, eax
test esi, esi
jl 0x4073f0
jmp 0x406e69
cmp dword [ebp + 0x14], esi
jne 0x407249
mov eax, dword [ebp - 0x2220]
push 0x20019
push edi
push eax
lea ecx, [ebp - 0x221c]
call fcn.004055f0
mov ebx, eax
mov dword [ebp - 0x2214], ebx
cmp ebx, esi
je 0x40717d
mov dword [ebp + 0x14], 1
push 0xffffffffffffffff
push edi
lea ecx, [ebp - 0x20c]
push 0x104
push ecx
call fcn.00419d10
push eax
call fcn.00402880
mov ecx, dword [ebp - 0x2210]
add esp, 0x14
push edi
call fcn.00405a00
mov esi, eax
test esi, esi
jl 0x4073f0
mov ecx, dword [ebp - 0x2210]
push edi
call fcn.00405c10
mov esi, eax
test esi, esi
jl 0x4073f0
cmp word [edi], 0x7b
jne 0x40721b
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
cmp eax, 1
jne 0x40721b
mov ebx, dword [ebp + 0x14]
mov edx, dword [ebp - 0x221c]
mov ecx, dword [ebp - 0x2210]
push ebx
push 0
push edx
push edi
call fcn.00406d20
mov esi, eax
test esi, esi
jge 0x4071ff
test ebx, ebx
je 0x4073f0
mov ecx, dword [ebp - 0x2210]
push edi
call fcn.00405a00
mov esi, eax
test esi, esi
jl 0x4073f0
mov ebx, dword [ebp - 0x2214]
mov eax, dword [ebp - 0x2238]
mov dword [ebp + 0x14], eax
cmp ebx, 2
je 0x406eb4
test ebx, ebx
je 0x40725e
test eax, eax
jne 0x406eb4
push ebx
call fcn.004054d0
add esp, 4
mov esi, eax
jmp 0x4073f0
mov dword [ebp - 0x2214], 2
mov ebx, dword [ebp - 0x2214]
jmp 0x407176
mov ebx, dword [ebp - 0x221c]
test eax, eax
je 0x4072b6
mov ecx, dword [ebp - 0x2210]
push ebx
call fcn.00405bc0
test eax, eax
je 0x4072b6
lea ecx, [ebp - 0x20c]
push ecx
mov ecx, dword [ebp - 0x2210]
call fcn.00405b80
test eax, eax
je 0x406eb4
cmp dword [ebp - 0x222c], 0
je 0x406eb4
lea edx, [ebp - 0x20c]
push edx
lea ecx, [ebp - 0x221c]
call fcn.00405d30
jmp 0x406eb4
mov ecx, dword [ebp - 0x2210]
push ebx
call fcn.00405bc0
mov dword [ebp - 0x224c], eax
mov dword [ebp - 0x2214], 0
test ebx, ebx
je 0x4072ed
push ebx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x2214], eax
mov dword [ebp - 0x221c], 0
mov ebx, dword [ebp - 0x2214]
mov dword [ebp - 0x2218], 0
test ebx, ebx
jne 0x4073b3
cmp dword [ebp - 0x222c], ebx
je 0x406eb4
cmp dword [ebp - 0x224c], ebx
jne 0x406eb4
mov ecx, dword [ebp - 0x2220]
lea eax, [ebp - 0x20c]
push eax
push ecx
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
xor ecx, ecx
mov dword [ebp - 0x2248], ecx
mov dword [ebp - 0x2244], ecx
cmp eax, ecx
jne 0x4073da
lea ecx, [ebp - 0x2248]
call fcn.00405d10
jmp 0x406eb4
lea ecx, [ebp - 0x2228]
call fcn.00405d10
lea ecx, [ebp - 0x221c]
call fcn.00405d10
pop edi
pop esi
mov eax, 0x80020009
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00418c6f
mov esp, ebp
pop ebp
ret 0x10
lea ecx, [ebp - 0x2228]
jmp 0x4073eb
lea ecx, [ebp - 0x2240]
call fcn.00405d10
lea ecx, [ebp - 0x221c]
call fcn.00405d10
jmp 0x407401
push eax
call fcn.004054d0
lea ecx, [ebp - 0x2234]
jmp 0x4073e6
lea ecx, [ebp - 0x221c]
call fcn.00405d10
push ebx
call fcn.004054d0
add esp, 4
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00418c6f
mov esp, ebp
pop ebp
ret 0x10
push eax
call fcn.004054d0
lea ecx, [ebp - 0x2248]
add esp, 4
mov esi, eax
call fcn.00405d10
mov eax, dword [ebp - 0x221c]
test eax, eax
je 0x407401
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, esi
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00418c6f
mov esp, ebp
pop ebp
ret 0x10