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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5624cb
mov eax, dword fs:[0]
push eax
mov eax, 0x224c
call fcn.005563f0
mov eax, dword [0x5c3678]
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 eax, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
xor esi, esi
mov dword [ebp - 0x221c], ecx
mov dword [ebp - 0x222c], eax
mov dword [ebp - 0x2224], esi
mov dword [ebp - 0x2220], esi
mov edx, dword [ebp + 0x14]
mov eax, ebx
mov dword [ebp - 4], esi
mov dword [ebp - 0x2244], edx
call fcn.0051b9b0
mov edi, eax
cmp edi, esi
jl 0x51c230
cmp word [ebx], 0x7d
je 0x51c22e
lea esp, [esp]
mov edi, dword [sym.imp.KERNEL32.dll_lstrcmpiW]
push str.Delete
push ebx
mov dword [ebp - 0x2228], 1
call edi
mov esi, eax
neg esi
push str.ForceRemove
sbb esi, esi
push ebx
inc esi
call edi
test eax, eax
je 0x51bbe3
test esi, esi
je 0x51bcfa
mov ecx, dword [ebp - 0x221c]
mov eax, ebx
call fcn.0051b9b0
mov edi, eax
test edi, edi
jl 0x51c21d
xor edi, edi
cmp dword [ebp + 0x10], edi
je 0x51bcfc
push 0x5c
mov eax, ebx
mov dword [ebp - 0x2238], edi
mov dword [ebp - 0x2234], edi
call fcn.0051b110
add esp, 4
test eax, eax
jne 0x51c195
push ebx
call fcn.0051b750
test eax, eax
je 0x51bc59
mov eax, dword [ebp - 0x222c]
push ebx
lea ecx, [ebp - 0x2238]
mov dword [ebp - 0x2238], eax
mov dword [ebp - 0x2234], edi
call fcn.0051b790
mov dword [ebp - 0x2238], edi
mov dword [ebp - 0x2234], edi
cmp esi, edi
je 0x51bcf2
mov esi, dword [ebp - 0x221c]
mov eax, ebx
mov ecx, esi
call fcn.0051b9b0
mov edi, eax
test edi, edi
jl 0x51c1b2
mov edi, ebx
mov ecx, esi
call fcn.0051b6f0
mov edi, eax
test edi, edi
jl 0x51c1b2
mov dword [ebp - 0x2234], 0
cmp word [ebx], 0x7b
jne 0x51bce3
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
cmp eax, 1
jne 0x51bce3
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x2224]
push 0
push eax
push ecx
mov ecx, dword [ebp - 0x221c]
push ebx
call fcn.0051bb30
mov edi, eax
test edi, edi
jl 0x51c21d
mov ecx, dword [ebp - 0x221c]
mov eax, ebx
call fcn.0051b9b0
mov edi, eax
test edi, edi
jl 0x51c21d
cmp word [ebx], 0x7d
jne 0x51bbb0
jmp 0x51c21d
mov dword [ebp - 0x2234], edi
jmp 0x51bcfc
xor edi, edi
push str.NoRemove
push ebx
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x51bd2b
mov ecx, dword [ebp - 0x221c]
mov dword [ebp - 0x2228], eax
mov eax, ebx
call fcn.0051b9b0
mov edi, eax
test edi, edi
jl 0x51c21d
xor edi, edi
push 0x595f10
push ebx
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x51be5a
mov ecx, dword [ebp - 0x221c]
lea eax, [ebp - 0x2218]
call fcn.0051b9b0
mov edi, eax
test edi, edi
jl 0x51c21d
mov ecx, dword [ebp - 0x221c]
mov eax, ebx
call fcn.0051b9b0
mov edi, eax
test edi, edi
jl 0x51c21d
cmp word [ebx], 0x3d
jne 0x51c1a0
xor esi, esi
cmp dword [ebp + 0x10], esi
je 0x51bdce
mov ecx, dword [ebp - 0x222c]
push ebx
lea edx, [ebp - 0x224c]
mov dword [ebp - 0x224c], ecx
mov ecx, dword [ebp - 0x221c]
push edx
lea edx, [ebp - 0x2218]
mov dword [ebp - 0x2248], esi
call fcn.0051b3a0
mov edi, eax
cmp edi, esi
mov dword [ebp - 0x224c], esi
mov dword [ebp - 0x2248], esi
jl 0x51c1ba
mov dword [ebp - 0x2248], esi
jmp 0x51bc97
cmp dword [ebp + 0x14], esi
jne 0x51be44
cmp dword [ebp - 0x2228], esi
je 0x51be44
mov eax, dword [ebp - 0x222c]
xor edi, edi
push eax
mov ecx, 0x20006
xor edx, edx
lea esi, [ebp - 0x2240]
mov dword [ebp - 0x2240], edi
mov dword [ebp - 0x223c], edi
call fcn.00423690
cmp eax, edi
jne 0x51c1d2
mov esi, dword [ebp - 0x2240]
lea ecx, [ebp - 0x2218]
push ecx
push esi
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
cmp eax, edi
je 0x51be2b
cmp eax, 2
jne 0x51c1d2
cmp esi, edi
je 0x51be3c
push esi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x2240], edi
mov dword [ebp - 0x223c], edi
xor esi, esi
mov ecx, dword [ebp - 0x221c]
mov edi, ebx
call fcn.0051b6f0
mov edi, eax
cmp edi, esi
jmp 0x51bcdd
push 0x5c
mov eax, ebx
call fcn.0051b110
add esp, 4
test eax, eax
jne 0x51c1a0
cmp dword [ebp + 0x10], edi
je 0x51bf7c
mov eax, dword [ebp - 0x222c]
lea edx, [ebp - 0x2228]
push edx
push 0x2001f
push edi
push ebx
push eax
mov dword [ebp - 0x2228], edi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
cmp eax, edi
jne 0x51bec7
mov ecx, dword [ebp - 0x2224]
xor eax, eax
cmp ecx, edi
je 0x51beaf
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp - 0x2228]
mov dword [ebp - 0x2220], edi
mov dword [ebp - 0x2224], ecx
cmp eax, edi
je 0x51bf37
xor edi, edi
mov eax, dword [ebp - 0x222c]
lea edx, [ebp - 0x2228]
push edx
push 0x20019
push edi
push ebx
push eax
mov dword [ebp - 0x2228], edi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
cmp eax, edi
jne 0x51bf15
mov ecx, dword [ebp - 0x2224]
xor eax, eax
cmp ecx, edi
je 0x51beff
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp - 0x2228]
mov dword [ebp - 0x2220], edi
mov dword [ebp - 0x2224], ecx
cmp eax, edi
je 0x51bf37
mov edx, dword [ebp - 0x222c]
push ebx
push edx
mov edx, 0x2001f
lea esi, [ebp - 0x2224]
call fcn.004208f0
mov edi, eax
test edi, edi
jne 0x51c1df
mov ecx, dword [ebp - 0x221c]
mov eax, ebx
call fcn.0051b9b0
mov edi, eax
test edi, edi
jl 0x51c21d
cmp word [ebx], 0x3d
jne 0x51bc97
mov ecx, dword [ebp - 0x221c]
push ebx
lea eax, [ebp - 0x2224]
push eax
xor edx, edx
call fcn.0051b3a0
mov edi, eax
test edi, edi
jl 0x51c21d
jmp 0x51bc97
cmp dword [ebp + 0x14], edi
jne 0x51c0a5
mov edx, dword [ebp - 0x222c]
lea ecx, [ebp - 0x2230]
push ecx
push 0x20019
push edi
push ebx
push edx
mov dword [ebp - 0x2230], edi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
cmp eax, edi
jne 0x51bfcf
mov ecx, dword [ebp - 0x2224]
xor eax, eax
cmp ecx, edi
je 0x51bfbd
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp - 0x2230]
mov dword [ebp - 0x2220], edi
mov dword [ebp - 0x2224], ecx
mov dword [ebp - 0x2230], eax
cmp eax, edi
je 0x51bfe0
mov dword [ebp + 0x14], 1
push 0xffffffffffffffff
push ebx
lea edx, [ebp - 0x218]
push 0x104
push edx
call fcn.0053e78e
mov ecx, dword [ebp - 0x221c]
add esp, 0x10
mov eax, ebx
call fcn.0051b9b0
mov edi, eax
test edi, edi
jl 0x51c21d
mov ecx, dword [ebp - 0x221c]
mov edi, ebx
call fcn.0051b6f0
mov edi, eax
test edi, edi
jl 0x51c21d
cmp word [ebx], 0x7b
jne 0x51c075
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
cmp eax, 1
jne 0x51c075
mov esi, dword [ebp + 0x14]
mov eax, dword [ebp - 0x2224]
mov ecx, dword [ebp - 0x221c]
push esi
push 0
push eax
push ebx
call fcn.0051bb30
mov edi, eax
test edi, edi
jge 0x51c05e
test esi, esi
je 0x51c21d
mov ecx, dword [ebp - 0x221c]
mov eax, ebx
call fcn.0051b9b0
mov edi, eax
test edi, edi
jl 0x51c21d
mov eax, dword [ebp - 0x2230]
mov ecx, dword [ebp - 0x2244]
mov dword [ebp + 0x14], ecx
cmp eax, 2
je 0x51bce3
test eax, eax
je 0x51c0b4
test ecx, ecx
jne 0x51bce3
call fcn.0051b970
mov edi, eax
jmp 0x51c21d
mov dword [ebp - 0x2230], 2
jmp 0x51bfd9
mov esi, dword [ebp - 0x2224]
test ecx, ecx
je 0x51c101
mov ecx, esi
call fcn.0051b920
test eax, eax
je 0x51c101
lea edx, [ebp - 0x218]
push edx
call fcn.0051b750
test eax, eax
je 0x51bce3
cmp dword [ebp - 0x2228], 0
je 0x51bce3
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x2224]
call fcn.0051b790
jmp 0x51bce3
mov ecx, esi
call fcn.0051b920
mov dword [ebp - 0x2258], eax
xor eax, eax
mov dword [ebp - 0x2230], eax
test esi, esi
je 0x51c131
push esi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x2230], eax
mov dword [ebp - 0x2224], 0
mov dword [ebp - 0x2220], 0
test eax, eax
jne 0x51c1f3
cmp dword [ebp - 0x2228], eax
je 0x51bce3
cmp dword [ebp - 0x2258], eax
jne 0x51bce3
mov edx, dword [ebp - 0x222c]
lea ecx, [ebp - 0x218]
push ecx
push edx
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
xor ecx, ecx
mov dword [ebp - 0x2254], ecx
mov dword [ebp - 0x2250], ecx
cmp eax, ecx
jne 0x51c20b
lea esi, [ebp - 0x2254]
call fcn.00423710
jmp 0x51bce3
lea esi, [ebp - 0x2238]
call fcn.00423710
lea esi, [ebp - 0x2224]
call fcn.00423710
mov eax, 0x80020009
jmp 0x51c230
lea esi, [ebp - 0x2238]
jmp 0x51c218
lea esi, [ebp - 0x224c]
call fcn.00423710
lea esi, [ebp - 0x2224]
call fcn.00423710
jmp 0x51c22e
call fcn.0051b970
lea esi, [ebp - 0x2240]
jmp 0x51c216
lea esi, [ebp - 0x2224]
call fcn.00423710
mov eax, edi
call fcn.0051b970
jmp 0x51c230
lea esi, [ebp - 0x2224]
call fcn.00423710
mov eax, dword [ebp - 0x2230]
call fcn.0051b970
jmp 0x51c230
call fcn.0051b970
lea esi, [ebp - 0x2254]
mov edi, eax
call fcn.00423710
mov eax, dword [ebp - 0x2224]
test eax, eax
je 0x51c22e
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, edi
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.0053c15d
mov esp, ebp
pop ebp
ret 0x10