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

Disassembly:
push ebp
lea ebp, [esp - 0x1a8]
sub esp, 0x228
mov eax, dword [0x1001e248]
xor eax, ebp
and dword [ebp - 0x6c], 0
mov dword [ebp + 0x1a4], eax
mov eax, dword [ebp + 0x1b4]
push ebx
push esi
mov dword [ebp - 0x74], eax
mov eax, dword [ebp + 0x1bc]
push edi
mov edi, dword [ebp + 0x1b0]
mov dword [ebp - 0x70], ecx
mov dword [ebp - 0x80], eax
jmp 0x10016328
mov esi, dword [sym.imp.KERNEL32.dll_lstrcmpiA]
push str.Delete
push edi
mov dword [ebp - 0x78], 1
call esi
mov ebx, eax
neg ebx
push str.ForceRemove
sbb ebx, ebx
push edi
inc ebx
call esi
test eax, eax
je 0x10015f28
test ebx, ebx
je 0x10015fd5
mov ecx, dword [ebp - 0x70]
push edi
call fcn.10015ad1
mov esi, eax
test esi, esi
jl 0x10016381
cmp dword [ebp + 0x1b8], 0
je 0x10015fd5
and dword [ebp - 0x68], 0
mov cl, byte [edi]
mov eax, edi
jmp 0x10015f60
cmp cl, 0x5c
je 0x10015f66
push eax
call dword [sym.imp.USER32.dll_CharNextA]
mov cl, byte [eax]
test cl, cl
jne 0x10015f52
jmp 0x10015f6e
test eax, eax
jne 0x1001633f
mov esi, 0x1001b388
push dword [esi]
push edi
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x10015f9e
add esi, 4
cmp esi, str.TypeLib
jl 0x10015f73
mov eax, dword [ebp - 0x74]
push edi
lea ecx, [ebp - 0x68]
mov dword [ebp - 0x68], eax
call fcn.10001e7a
and dword [ebp - 0x68], 0
test ebx, ebx
je 0x10015fcd
mov ecx, dword [ebp - 0x70]
push edi
call fcn.10015ad1
mov esi, eax
test esi, esi
jl 0x1001634e
mov ecx, dword [ebp - 0x70]
push edi
call fcn.100163da
lea ecx, [ebp - 0x68]
mov esi, eax
call fcn.10001727
jmp 0x10016176
lea ecx, [ebp - 0x68]
call fcn.10001727
push str.NoRemove
push edi
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x10015ffb
mov ecx, dword [ebp - 0x70]
and dword [ebp - 0x78], eax
push edi
call fcn.10015ad1
mov esi, eax
test esi, esi
jl 0x10016381
push 0x1001b478
push edi
xor esi, esi
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x100160d5
mov ecx, dword [ebp - 0x70]
lea eax, [ebp - 0x64]
push eax
call fcn.10015ad1
mov esi, eax
xor ebx, ebx
cmp esi, ebx
jl 0x10016381
mov ecx, dword [ebp - 0x70]
push edi
call fcn.10015ad1
mov esi, eax
cmp esi, ebx
jl 0x10016381
cmp byte [edi], 0x3d
jne 0x10016347
cmp dword [ebp + 0x1b8], ebx
je 0x10016078
mov eax, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x70]
mov dword [ebp - 0x7c], eax
push edi
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0x7c]
push eax
call fcn.1001643e
lea ecx, [ebp - 0x7c]
mov esi, eax
mov dword [ebp - 0x7c], ebx
call fcn.10001727
cmp esi, ebx
jmp 0x10016178
cmp dword [ebp + 0x1bc], ebx
jne 0x100160c3
cmp dword [ebp - 0x78], ebx
je 0x100160c3
push 0x20006
push ebx
push dword [ebp - 0x74]
lea ecx, [ebp - 0x68]
mov dword [ebp - 0x68], ebx
call fcn.1000178c
cmp eax, ebx
jne 0x10016353
lea eax, [ebp - 0x64]
push eax
push dword [ebp - 0x68]
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
cmp eax, ebx
je 0x100160bb
cmp eax, 2
jne 0x10016353
lea ecx, [ebp - 0x68]
call fcn.10001727
mov ecx, dword [ebp - 0x70]
push edi
call fcn.100163da
mov esi, eax
cmp esi, ebx
jmp 0x10016332
mov cl, byte [edi]
mov eax, edi
jmp 0x100160e9
cmp cl, 0x5c
je 0x100160ef
push eax
call dword [sym.imp.USER32.dll_CharNextA]
mov cl, byte [eax]
test cl, cl
jne 0x100160db
jmp 0x100160f7
cmp eax, esi
jne 0x10016347
cmp dword [ebp + 0x1b8], esi
je 0x10016183
mov ebx, 0x2001f
push ebx
push edi
push dword [ebp - 0x74]
lea ecx, [ebp - 0x6c]
call fcn.1000178c
test eax, eax
je 0x10016149
push 0x20019
push edi
push dword [ebp - 0x74]
lea ecx, [ebp - 0x6c]
call fcn.1000178c
test eax, eax
je 0x10016149
push esi
push esi
push ebx
push esi
push esi
push edi
push dword [ebp - 0x74]
lea ecx, [ebp - 0x6c]
call fcn.1000173e
mov ebx, eax
cmp ebx, esi
jne 0x1001635f
mov ecx, dword [ebp - 0x70]
push edi
call fcn.10015ad1
mov esi, eax
test esi, esi
jl 0x10016381
cmp byte [edi], 0x3d
jne 0x100162f1
mov ecx, dword [ebp - 0x70]
push edi
push 0
lea eax, [ebp - 0x6c]
push eax
call fcn.1001643e
mov esi, eax
test esi, esi
jl 0x10016381
jmp 0x100162f1
cmp dword [ebp + 0x1bc], esi
jne 0x100161a1
push 0x20019
push edi
push dword [ebp - 0x74]
lea ecx, [ebp - 0x6c]
call fcn.1000178c
mov dword [ebp - 0x68], eax
jmp 0x100161a8
mov dword [ebp - 0x68], 2
cmp dword [ebp - 0x68], esi
je 0x100161b7
mov dword [ebp + 0x1bc], 1
push 0x104
push edi
lea eax, [ebp + 0xa0]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
mov ebx, dword [ebp - 0x70]
push edi
mov ecx, ebx
call fcn.10015ad1
mov esi, eax
test esi, esi
jl 0x10016381
push edi
mov ecx, ebx
call fcn.100163da
mov esi, eax
test esi, esi
jl 0x10016381
cmp byte [edi], 0x7b
jne 0x1001622e
push dword [ebp + 0x1bc]
mov ecx, ebx
push 0
push dword [ebp - 0x6c]
push edi
call fcn.10015eb6
mov esi, eax
test esi, esi
jge 0x1001621c
cmp dword [ebp + 0x1bc], 0
je 0x10016381
push edi
mov ecx, ebx
call fcn.10015ad1
mov esi, eax
test esi, esi
jl 0x10016381
cmp dword [ebp - 0x68], 2
mov eax, dword [ebp - 0x80]
mov dword [ebp + 0x1bc], eax
je 0x10016334
xor eax, eax
cmp dword [ebp - 0x68], eax
je 0x10016261
cmp dword [ebp - 0x80], eax
jne 0x10016334
push dword [ebp - 0x68]
call fcn.10010b24
pop ecx
mov esi, eax
jmp 0x10016381
cmp dword [ebp - 0x80], eax
je 0x100162b7
push dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x70]
call fcn.100163a5
test eax, eax
je 0x100162b7
mov ebx, 0x1001b388
push dword [ebx]
lea eax, [ebp + 0xa0]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x10016334
add ebx, 4
cmp ebx, str.TypeLib
jl 0x1001627a
cmp dword [ebp - 0x78], 0
je 0x10016334
lea eax, [ebp + 0xa0]
push eax
lea ecx, [ebp - 0x6c]
call fcn.10001e7a
jmp 0x10016334
lea ecx, [ebp - 0x6c]
call fcn.10001727
mov ebx, eax
test ebx, ebx
jne 0x1001635f
cmp dword [ebp - 0x78], eax
je 0x10016334
lea eax, [ebp + 0xa0]
push eax
push dword [ebp - 0x74]
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
and dword [ebp - 0x78], ebx
test eax, eax
jne 0x10016370
lea ecx, [ebp - 0x78]
call fcn.10001727
cmp dword [ebp + 0x1b8], 0
je 0x10016334
cmp byte [edi], 0x7b
jne 0x10016334
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cmp eax, 1
jne 0x10016334
mov ecx, dword [ebp - 0x70]
push 0
push dword [ebp + 0x1b8]
push dword [ebp - 0x6c]
push edi
call fcn.10015eb6
mov esi, eax
test esi, esi
jl 0x10016381
mov ecx, dword [ebp - 0x70]
push edi
call fcn.10015ad1
mov esi, eax
test esi, esi
jl 0x10016381
cmp byte [edi], 0x7d
jne 0x10015ef8
jmp 0x10016381
lea ecx, [ebp - 0x68]
call fcn.10001727
mov esi, 0x80020009
jmp 0x10016381
lea ecx, [ebp - 0x68]
jmp 0x1001637c
push eax
call fcn.10010b24
pop ecx
lea ecx, [ebp - 0x68]
jmp 0x1001637a
lea ecx, [ebp - 0x6c]
call fcn.10001727
push ebx
call fcn.10010b24
pop ecx
jmp 0x1001638b
push eax
call fcn.10010b24
pop ecx
lea ecx, [ebp - 0x78]
mov esi, eax
call fcn.10001727
lea ecx, [ebp - 0x6c]
call fcn.10001727
mov eax, esi
mov ecx, dword [ebp + 0x1a4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10018081
add ebp, 0x1a8
leave
ret 0x10