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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x11c
mov eax, dword [ebp + 0x14]
and dword [ebp - 4], 0
and dword [ebp - 0xc], 0
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
push edi
mov dword [ebp - 8], ecx
mov dword [ebp - 0x14], eax
call fcn.508723fb
mov esi, eax
test esi, esi
jge 0x508728d4
lea ecx, [ebp - 4]
call fcn.50872cc7
jmp 0x50872c3b
mov esi, dword [sym.imp.KERNEL32.dll_lstrcmpiA]
push 0x508711fc
push edi
mov dword [ebp - 0x10], 1
call esi
mov ebx, eax
neg ebx
push 0x50871210
sbb ebx, ebx
push edi
inc ebx
call esi
test eax, eax
je 0x508727ea
test ebx, ebx
je 0x508728f1
mov ecx, dword [ebp - 8]
push edi
call fcn.508723fb
mov esi, eax
test esi, esi
jl 0x50872c2c
cmp dword [ebp + 0x10], 0
je 0x508728f1
and dword [ebp + 8], 0
mov cl, byte [edi]
mov eax, edi
jmp 0x50872823
cmp cl, 0x5c
je 0x50872c4a
push eax
call dword [sym.imp.USER32.dll_CharNextA]
mov cl, byte [eax]
test cl, cl
jne 0x50872811
mov esi, 0x50875020
push dword [esi]
push edi
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x50872857
add esi, 4
cmp esi, 0x50875050
jl 0x5087282c
mov eax, dword [ebp + 0xc]
push edi
lea ecx, [ebp + 8]
mov dword [ebp + 8], eax
call fcn.508730ff
and dword [ebp + 8], 0
test ebx, ebx
je 0x508728e2
mov ecx, dword [ebp - 8]
push edi
call fcn.508723fb
mov esi, eax
xor ebx, ebx
cmp esi, ebx
jl 0x50872c6a
mov ecx, dword [ebp - 8]
push edi
call fcn.508730af
mov esi, eax
cmp esi, ebx
jl 0x50872c6a
cmp dword [ebp + 8], ebx
je 0x50872895
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp byte [edi], 0x7b
jne 0x508728d4
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cmp eax, 1
jne 0x508728d4
mov ecx, dword [ebp - 8]
push 0
push dword [ebp + 0x10]
push dword [ebp - 4]
push edi
call fcn.5087277d
mov esi, eax
test esi, esi
jl 0x50872c2c
mov ecx, dword [ebp - 8]
push edi
call fcn.508723fb
mov esi, eax
test esi, esi
jl 0x50872c2c
cmp byte [edi], 0x7d
jne 0x508727ba
jmp 0x50872c2c
cmp dword [ebp + 8], 0
je 0x508728f1
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push 0x50871204
push edi
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x50872917
mov ecx, dword [ebp - 8]
and dword [ebp - 0x10], eax
push edi
call fcn.508723fb
mov esi, eax
test esi, esi
jl 0x50872c2c
push 0x5087121c
push edi
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x508729f6
mov ecx, dword [ebp - 8]
lea eax, [ebp - 0x11c]
push eax
call fcn.508723fb
mov esi, eax
test esi, esi
jl 0x50872c2c
mov ecx, dword [ebp - 8]
push edi
call fcn.508723fb
mov esi, eax
test esi, esi
jl 0x50872c2c
cmp byte [edi], 0x3d
jne 0x50872c7a
xor ebx, ebx
cmp dword [ebp + 0x10], ebx
je 0x50872993
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 8]
mov dword [ebp + 8], eax
push edi
lea eax, [ebp - 0x11c]
push eax
lea eax, [ebp + 8]
push eax
call fcn.50872d13
mov esi, eax
cmp esi, ebx
mov dword [ebp + 8], ebx
jl 0x50872c98
jmp 0x50872895
cmp dword [ebp + 0x14], ebx
jne 0x508729e4
cmp dword [ebp - 0x10], ebx
je 0x508729e4
push 0x20006
push ebx
push dword [ebp + 0xc]
lea ecx, [ebp + 8]
mov dword [ebp + 8], ebx
call fcn.50872cde
cmp eax, ebx
jne 0x50872c62
lea eax, [ebp - 0x11c]
push eax
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
cmp eax, ebx
je 0x508729d6
cmp eax, 2
jne 0x50872c62
cmp dword [ebp + 8], ebx
je 0x508729e4
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp - 8]
push edi
call fcn.508730af
mov esi, eax
cmp esi, ebx
jmp 0x508728ce
mov cl, byte [edi]
mov eax, edi
jmp 0x50872a0e
cmp cl, 0x5c
je 0x50872c7a
push eax
call dword [sym.imp.USER32.dll_CharNextA]
mov cl, byte [eax]
test cl, cl
jne 0x508729fc
xor esi, esi
cmp dword [ebp + 0x10], esi
je 0x50872ac4
mov esi, 0x2001f
push esi
push edi
push dword [ebp + 0xc]
lea ecx, [ebp - 4]
call fcn.50872cde
test eax, eax
je 0x50872a8a
push 0x20019
push edi
push dword [ebp + 0xc]
lea ecx, [ebp - 4]
call fcn.50872cde
test eax, eax
je 0x50872a8a
lea eax, [ebp - 0x18]
push eax
xor ebx, ebx
lea eax, [ebp + 8]
push eax
push ebx
push esi
push ebx
push ebx
push ebx
push edi
push dword [ebp + 0xc]
mov dword [ebp + 8], ebx
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
cmp eax, ebx
jne 0x50872c90
xor eax, eax
cmp dword [ebp - 4], ebx
je 0x50872a7c
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp eax, ebx
mov ecx, dword [ebp + 8]
mov dword [ebp - 4], ecx
jne 0x50872c90
mov ecx, dword [ebp - 8]
push edi
call fcn.508723fb
mov esi, eax
test esi, esi
jl 0x50872c2c
cmp byte [edi], 0x3d
jne 0x50872895
mov ecx, dword [ebp - 8]
push edi
push 0
lea eax, [ebp - 4]
push eax
call fcn.50872d13
mov esi, eax
test esi, esi
jl 0x50872c2c
jmp 0x50872895
cmp dword [ebp + 0x14], esi
jne 0x50872adf
push 0x20019
push edi
push dword [ebp + 0xc]
lea ecx, [ebp - 4]
call fcn.50872cde
mov dword [ebp + 8], eax
jmp 0x50872ae6
mov dword [ebp + 8], 2
cmp dword [ebp + 8], esi
je 0x50872af2
mov dword [ebp + 0x14], 1
cmp dword [ebp - 0xc], esi
jne 0x50872b04
mov eax, 0x104
call fcn.508744f0
mov dword [ebp - 0xc], esp
push 0x104
push edi
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
mov ebx, dword [ebp - 8]
push edi
mov ecx, ebx
call fcn.508723fb
mov esi, eax
test esi, esi
jl 0x50872c2c
push edi
mov ecx, ebx
call fcn.508730af
mov esi, eax
test esi, esi
jl 0x50872c2c
cmp byte [edi], 0x7b
jne 0x50872b71
push dword [ebp + 0x14]
mov ecx, ebx
push 0
push dword [ebp - 4]
push edi
call fcn.5087277d
mov esi, eax
test esi, esi
jge 0x50872b5f
cmp dword [ebp + 0x14], 0
je 0x50872c2c
push edi
mov ecx, ebx
call fcn.508723fb
mov esi, eax
test esi, esi
jl 0x50872c2c
cmp dword [ebp + 8], 2
mov eax, dword [ebp - 0x14]
mov dword [ebp + 0x14], eax
je 0x508728d4
xor ebx, ebx
cmp dword [ebp + 8], ebx
je 0x50872b98
cmp eax, ebx
jne 0x508728d4
push dword [ebp + 8]
jmp 0x50872c25
cmp dword [ebp - 0x14], ebx
je 0x50872be9
push dword [ebp - 4]
mov ecx, dword [ebp - 8]
call fcn.5087307a
test eax, eax
je 0x50872be9
mov ebx, 0x50875020
push dword [ebx]
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x508728d4
add ebx, 4
cmp ebx, 0x50875050
jl 0x50872bb1
cmp dword [ebp - 0x10], 0
je 0x508728d4
push dword [ebp - 0xc]
lea ecx, [ebp - 4]
call fcn.508730ff
jmp 0x508728d4
cmp dword [ebp - 4], ebx
je 0x50872c07
push dword [ebp - 4]
mov ebx, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
call ebx
and dword [ebp - 4], 0
test eax, eax
jne 0x50872c9d
xor ebx, ebx
cmp dword [ebp - 0x10], ebx
je 0x508728d4
push dword [ebp - 0xc]
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
test eax, eax
je 0x508728d4
push eax
call fcn.50872cb2
mov esi, eax
cmp dword [ebp - 4], 0
je 0x50872c3b
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, esi
lea esp, [ebp - 0x128]
pop edi
pop esi
pop ebx
leave
ret 0x10
xor esi, esi
cmp dword [ebp + 8], esi
je 0x50872c5d
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp + 8], esi
cmp dword [ebp - 4], esi
jmp 0x50872c7e
push eax
call fcn.50872cb2
mov esi, eax
cmp dword [ebp + 8], ebx
je 0x50872c2c
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x50872c2c
cmp dword [ebp - 4], 0
je 0x50872c89
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, 0x80020009
jmp 0x50872c3d
push eax
call fcn.50872cb2
mov esi, eax
cmp dword [ebp - 4], ebx
jmp 0x50872c30
push eax
call fcn.50872cb2
cmp dword [ebp - 4], 0
mov esi, eax
je 0x50872c3b
push dword [ebp - 4]
call ebx
jmp 0x50872c3b