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

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x2250
call fcn.004125f0
mov eax, dword [0x4297c0]
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.0040dcc0
mov esi, eax
cmp esi, ebx
jl 0x40f6a3
cmp word [edi], 0x7d
je 0x40f6a1
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 0x40f053
test ebx, ebx
je 0x40f16b
mov ecx, dword [ebp - 0x2210]
push edi
call fcn.0040dcc0
mov esi, eax
test esi, esi
jl 0x40f690
xor esi, esi
cmp dword [ebp + 0x10], esi
je 0x40f16d
push 0x5c
push edi
mov dword [ebp - 0x2228], esi
mov dword [ebp - 0x2224], esi
call fcn.0040dc10
add esp, 8
test eax, eax
jne 0x40f5f7
mov ecx, dword [ebp - 0x2210]
push edi
call fcn.0040de40
test eax, eax
je 0x40f0cd
mov eax, dword [ebp - 0x2220]
push edi
lea ecx, [ebp - 0x2228]
mov dword [ebp - 0x2228], eax
mov dword [ebp - 0x2224], esi
call fcn.0040dfd0
mov dword [ebp - 0x2228], esi
mov dword [ebp - 0x2224], esi
cmp ebx, esi
je 0x40f163
mov ebx, dword [ebp - 0x2210]
push edi
mov ecx, ebx
call fcn.0040dcc0
mov esi, eax
test esi, esi
jl 0x40f625
push edi
mov ecx, ebx
call fcn.0040ded0
mov esi, eax
test esi, esi
jl 0x40f625
mov dword [ebp - 0x2224], 0
cmp word [edi], 0x7b
jne 0x40f154
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
cmp eax, 1
jne 0x40f154
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.0040efc0
mov esi, eax
test esi, esi
jl 0x40f690
mov ecx, dword [ebp - 0x2210]
push edi
call fcn.0040dcc0
mov esi, eax
test esi, esi
jl 0x40f690
cmp word [edi], 0x7d
jne 0x40f020
jmp 0x40f690
mov dword [ebp - 0x2224], esi
jmp 0x40f16d
xor esi, esi
push str.NoRemove
push edi
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x40f19b
mov ecx, dword [ebp - 0x2210]
push edi
mov dword [ebp - 0x222c], eax
call fcn.0040dcc0
mov esi, eax
test esi, esi
jl 0x40f690
xor esi, esi
push 0x422b50
push edi
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x40f2c5
lea ecx, [ebp - 0x220c]
push ecx
mov ecx, dword [ebp - 0x2210]
call fcn.0040dcc0
mov esi, eax
test esi, esi
jl 0x40f690
mov ecx, dword [ebp - 0x2210]
push edi
call fcn.0040dcc0
mov esi, eax
test esi, esi
jl 0x40f690
cmp word [edi], 0x3d
jne 0x40f602
xor ebx, ebx
cmp dword [ebp + 0x10], ebx
je 0x40f23f
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.0040ec60
mov esi, eax
cmp esi, ebx
mov dword [ebp - 0x2240], ebx
mov dword [ebp - 0x223c], ebx
jl 0x40f62d
mov dword [ebp - 0x223c], ebx
jmp 0x40f109
cmp dword [ebp + 0x14], ebx
jne 0x40f2b0
cmp dword [ebp - 0x222c], ebx
je 0x40f2b0
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.0040a120
cmp eax, ebx
jne 0x40f645
mov esi, dword [ebp - 0x2234]
lea eax, [ebp - 0x220c]
push eax
push esi
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
cmp eax, ebx
je 0x40f299
cmp eax, 2
jne 0x40f645
cmp esi, ebx
je 0x40f2aa
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.0040ded0
mov esi, eax
cmp esi, ebx
jmp 0x40f14e
push 0x5c
push edi
call fcn.0040dc10
add esp, 8
test eax, eax
jne 0x40f602
cmp dword [ebp + 0x10], esi
je 0x40f3e9
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 0x40f32f
mov ecx, dword [ebp - 0x221c]
xor eax, eax
cmp ecx, esi
je 0x40f319
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 0x40f3a5
push 0x20019
push edi
push ebx
lea ecx, [ebp - 0x221c]
call fcn.0040a120
test eax, eax
je 0x40f3a5
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 0x40f653
mov ecx, dword [ebp - 0x221c]
xor eax, eax
cmp ecx, esi
je 0x40f389
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 0x40f653
mov ecx, dword [ebp - 0x2210]
push edi
call fcn.0040dcc0
mov esi, eax
test esi, esi
jl 0x40f690
cmp word [edi], 0x3d
jne 0x40f109
mov ecx, dword [ebp - 0x2210]
push edi
push 0
lea edx, [ebp - 0x221c]
push edx
call fcn.0040ec60
mov esi, eax
test esi, esi
jl 0x40f690
jmp 0x40f109
cmp dword [ebp + 0x14], esi
jne 0x40f4e9
mov eax, dword [ebp - 0x2220]
push 0x20019
push edi
push eax
lea ecx, [ebp - 0x221c]
call fcn.0040a120
mov ebx, eax
mov dword [ebp - 0x2214], ebx
cmp ebx, esi
je 0x40f41d
mov dword [ebp + 0x14], 1
push 0xffffffffffffffff
push edi
lea ecx, [ebp - 0x20c]
push 0x104
push ecx
call fcn.00413f1b
push eax
call fcn.00409220
mov ecx, dword [ebp - 0x2210]
add esp, 0x14
push edi
call fcn.0040dcc0
mov esi, eax
test esi, esi
jl 0x40f690
mov ecx, dword [ebp - 0x2210]
push edi
call fcn.0040ded0
mov esi, eax
test esi, esi
jl 0x40f690
cmp word [edi], 0x7b
jne 0x40f4bb
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
cmp eax, 1
jne 0x40f4bb
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.0040efc0
mov esi, eax
test esi, esi
jge 0x40f49f
test ebx, ebx
je 0x40f690
mov ecx, dword [ebp - 0x2210]
push edi
call fcn.0040dcc0
mov esi, eax
test esi, esi
jl 0x40f690
mov ebx, dword [ebp - 0x2214]
mov eax, dword [ebp - 0x2238]
mov dword [ebp + 0x14], eax
cmp ebx, 2
je 0x40f154
test ebx, ebx
je 0x40f4fe
test eax, eax
jne 0x40f154
push ebx
call fcn.0040d7e0
add esp, 4
mov esi, eax
jmp 0x40f690
mov dword [ebp - 0x2214], 2
mov ebx, dword [ebp - 0x2214]
jmp 0x40f416
mov ebx, dword [ebp - 0x221c]
test eax, eax
je 0x40f556
mov ecx, dword [ebp - 0x2210]
push ebx
call fcn.0040de80
test eax, eax
je 0x40f556
lea ecx, [ebp - 0x20c]
push ecx
mov ecx, dword [ebp - 0x2210]
call fcn.0040de40
test eax, eax
je 0x40f154
cmp dword [ebp - 0x222c], 0
je 0x40f154
lea edx, [ebp - 0x20c]
push edx
lea ecx, [ebp - 0x221c]
call fcn.0040dfd0
jmp 0x40f154
mov ecx, dword [ebp - 0x2210]
push ebx
call fcn.0040de80
mov dword [ebp - 0x224c], eax
mov dword [ebp - 0x2214], 0
test ebx, ebx
je 0x40f58d
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 0x40f653
cmp dword [ebp - 0x222c], ebx
je 0x40f154
cmp dword [ebp - 0x224c], ebx
jne 0x40f154
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 0x40f67a
lea ecx, [ebp - 0x2248]
call fcn.0040a7e0
jmp 0x40f154
lea ecx, [ebp - 0x2228]
call fcn.0040a7e0
lea ecx, [ebp - 0x221c]
call fcn.0040a7e0
pop edi
pop esi
mov eax, 0x80020009
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004125d9
mov esp, ebp
pop ebp
ret 0x10
lea ecx, [ebp - 0x2228]
jmp 0x40f68b
lea ecx, [ebp - 0x2240]
call fcn.0040a7e0
lea ecx, [ebp - 0x221c]
call fcn.0040a7e0
jmp 0x40f6a1
push eax
call fcn.0040d7e0
lea ecx, [ebp - 0x2234]
jmp 0x40f686
lea ecx, [ebp - 0x221c]
call fcn.0040a7e0
push ebx
call fcn.0040d7e0
add esp, 4
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004125d9
mov esp, ebp
pop ebp
ret 0x10
push eax
call fcn.0040d7e0
lea ecx, [ebp - 0x2248]
add esp, 4
mov esi, eax
call fcn.0040a7e0
mov eax, dword [ebp - 0x221c]
test eax, eax
je 0x40f6a1
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.004125d9
mov esp, ebp
pop ebp
ret 0x10