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

Disassembly:
mov eax, 0x41e359
call fcn.00411ea8
sub esp, 0x224
and dword [ebp - 0x14], 0
push esi
push edi
mov dword [ebp - 0x10], ecx
mov eax, dword [ebp + 0x14]
mov edi, dword [ebp + 8]
and dword [ebp - 4], 0
push edi
mov dword [ebp - 0x24], eax
call fcn.0040ae15
mov esi, eax
test esi, esi
jl 0x40b6f6
push ebx
jmp 0x40b6b3
mov esi, dword [sym.imp.KERNEL32.DLL_lstrcmpiA]
push str.Delete
push edi
mov dword [ebp - 0x1c], 1
call esi
mov ebx, eax
neg ebx
push str.ForceRemove
sbb ebx, ebx
push edi
inc ebx
call esi
test eax, eax
je 0x40b29a
test ebx, ebx
je 0x40b349
mov ecx, dword [ebp - 0x10]
push edi
call fcn.0040ae15
mov esi, eax
test esi, esi
jl 0x40b6f5
cmp dword [ebp + 0x10], 0
je 0x40b349
and dword [ebp + 8], 0
mov cl, byte [edi]
mov byte [ebp - 4], 1
mov eax, edi
jmp 0x40b2d3
cmp cl, 0x5c
je 0x40b2d9
push eax
call dword [sym.imp.USER32.dll_CharNextA]
mov cl, byte [eax]
test cl, cl
jne 0x40b2c5
jmp 0x40b2e1
test eax, eax
jne 0x40b6be
mov esi, 0x41f498
push dword [esi]
push edi
call dword [sym.imp.KERNEL32.DLL_lstrcmpiA]
test eax, eax
je 0x40b311
add esi, 4
cmp esi, str.TypeLib
jl 0x40b2e6
mov eax, dword [ebp + 0xc]
push edi
lea ecx, [ebp + 8]
mov dword [ebp + 8], eax
call fcn.0040b7a8
and dword [ebp + 8], 0
test ebx, ebx
je 0x40b33d
mov ecx, dword [ebp - 0x10]
push edi
call fcn.0040ae15
mov esi, eax
test esi, esi
jl 0x40b6cd
mov ecx, dword [ebp - 0x10]
push edi
call fcn.0040b758
mov esi, eax
lea ecx, [ebp + 8]
test esi, esi
jmp 0x40b3e9
lea ecx, [ebp + 8]
mov byte [ebp - 4], 0
call fcn.00408fed
push str.NoRemove
push edi
call dword [sym.imp.KERNEL32.DLL_lstrcmpiA]
test eax, eax
jne 0x40b36f
mov ecx, dword [ebp - 0x10]
and dword [ebp - 0x1c], eax
push edi
call fcn.0040ae15
mov esi, eax
test esi, esi
jl 0x40b6f5
push 0x41f588
push edi
xor esi, esi
call dword [sym.imp.KERNEL32.DLL_lstrcmpiA]
test eax, eax
jne 0x40b455
mov ecx, dword [ebp - 0x10]
lea eax, [ebp - 0x230]
push eax
call fcn.0040ae15
mov esi, eax
xor ebx, ebx
cmp esi, ebx
jl 0x40b6f5
mov ecx, dword [ebp - 0x10]
push edi
call fcn.0040ae15
mov esi, eax
cmp esi, ebx
jl 0x40b6f5
cmp byte [edi], 0x3d
jne 0x40b6c6
cmp dword [ebp + 0x10], ebx
je 0x40b3f8
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x20], eax
push edi
lea eax, [ebp - 0x230]
push eax
lea eax, [ebp - 0x20]
push eax
mov byte [ebp - 4], 2
call fcn.0040b832
mov esi, eax
mov dword [ebp - 0x20], ebx
lea ecx, [ebp - 0x20]
cmp esi, ebx
jl 0x40b6f0
mov byte [ebp - 4], 0
jmp 0x40b671
cmp dword [ebp + 0x14], ebx
jne 0x40b443
cmp dword [ebp - 0x1c], ebx
je 0x40b443
push 0x20006
push ebx
push dword [ebp + 0xc]
lea ecx, [ebp - 0x18]
mov dword [ebp - 0x18], ebx
call fcn.00409004
cmp eax, ebx
jne 0x40b6d2
lea eax, [ebp - 0x230]
push eax
push dword [ebp - 0x18]
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
cmp eax, ebx
je 0x40b43b
cmp eax, 2
jne 0x40b6d2
lea ecx, [ebp - 0x18]
call fcn.00408fed
mov ecx, dword [ebp - 0x10]
push edi
call fcn.0040b758
mov esi, eax
cmp esi, ebx
jmp 0x40b6b1
mov cl, byte [edi]
mov eax, edi
jmp 0x40b469
cmp cl, 0x5c
je 0x40b46f
push eax
call dword [sym.imp.USER32.dll_CharNextA]
mov cl, byte [eax]
test cl, cl
jne 0x40b45b
jmp 0x40b477
cmp eax, esi
jne 0x40b6c6
cmp dword [ebp + 0x10], esi
je 0x40b51d
mov ebx, 0x2001f
push ebx
push edi
push dword [ebp + 0xc]
lea ecx, [ebp - 0x14]
call fcn.00409004
test eax, eax
je 0x40b4e3
push 0x20019
push edi
push dword [ebp + 0xc]
lea ecx, [ebp - 0x14]
call fcn.00409004
test eax, eax
je 0x40b4e3
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x1c]
push eax
push esi
push ebx
push esi
push esi
push esi
push edi
push dword [ebp + 0xc]
mov dword [ebp - 0x1c], esi
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
cmp eax, esi
jne 0x40b6de
lea ecx, [ebp - 0x14]
call fcn.00408fed
cmp eax, esi
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x14], ecx
jne 0x40b6de
mov ecx, dword [ebp - 0x10]
push edi
call fcn.0040ae15
mov esi, eax
test esi, esi
jl 0x40b6f5
cmp byte [edi], 0x3d
jne 0x40b676
mov ecx, dword [ebp - 0x10]
push edi
push 0
lea eax, [ebp - 0x14]
push eax
call fcn.0040b832
mov esi, eax
test esi, esi
jl 0x40b6f5
jmp 0x40b676
cmp dword [ebp + 0x14], esi
jne 0x40b538
push 0x20019
push edi
push dword [ebp + 0xc]
lea ecx, [ebp - 0x14]
call fcn.00409004
mov dword [ebp - 0x18], eax
jmp 0x40b53f
mov dword [ebp - 0x18], 2
cmp dword [ebp - 0x18], esi
je 0x40b54b
mov dword [ebp + 0x14], 1
push 0x104
push edi
lea eax, [ebp - 0x12c]
push eax
call dword [sym.imp.KERNEL32.DLL_lstrcpynA]
mov ebx, dword [ebp - 0x10]
push edi
mov ecx, ebx
call fcn.0040ae15
mov esi, eax
test esi, esi
jl 0x40b6f5
push edi
mov ecx, ebx
call fcn.0040b758
mov esi, eax
test esi, esi
jl 0x40b6f5
cmp byte [edi], 0x7b
jne 0x40b5bc
push dword [ebp + 0x14]
mov ecx, ebx
push 0
push dword [ebp - 0x14]
push edi
call fcn.0040b22e
mov esi, eax
test esi, esi
jge 0x40b5aa
cmp dword [ebp + 0x14], 0
je 0x40b6f5
push edi
mov ecx, ebx
call fcn.0040ae15
mov esi, eax
test esi, esi
jl 0x40b6f5
cmp dword [ebp - 0x18], 2
mov eax, dword [ebp - 0x24]
mov dword [ebp + 0x14], eax
je 0x40b6b3
xor ebx, ebx
cmp dword [ebp - 0x18], ebx
je 0x40b5eb
cmp eax, ebx
jne 0x40b6b3
push dword [ebp - 0x18]
call fcn.0040b710
pop ecx
mov esi, eax
jmp 0x40b6f5
cmp dword [ebp - 0x24], ebx
je 0x40b641
push dword [ebp - 0x14]
mov ecx, dword [ebp - 0x10]
call fcn.0040b723
test eax, eax
je 0x40b641
mov ebx, 0x41f498
push dword [ebx]
lea eax, [ebp - 0x12c]
push eax
call dword [sym.imp.KERNEL32.DLL_lstrcmpiA]
test eax, eax
je 0x40b6b3
add ebx, 4
cmp ebx, str.TypeLib
jl 0x40b604
cmp dword [ebp - 0x1c], 0
je 0x40b6b3
lea eax, [ebp - 0x12c]
push eax
lea ecx, [ebp - 0x14]
call fcn.0040b7a8
jmp 0x40b6b3
lea ecx, [ebp - 0x14]
call fcn.00408fed
cmp eax, ebx
jne 0x40b6de
cmp dword [ebp - 0x1c], ebx
je 0x40b6b3
lea eax, [ebp - 0x12c]
push eax
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
and dword [ebp - 0x1c], 0
test eax, eax
jne 0x40b6e4
lea ecx, [ebp - 0x1c]
call fcn.00408fed
cmp dword [ebp + 0x10], 0
je 0x40b6b3
cmp byte [edi], 0x7b
jne 0x40b6b3
push edi
call dword [sym.imp.KERNEL32.DLL_lstrlenA]
cmp eax, 1
jne 0x40b6b3
mov ecx, dword [ebp - 0x10]
push 0
push dword [ebp + 0x10]
push dword [ebp - 0x14]
push edi
call fcn.0040b22e
mov esi, eax
test esi, esi
jl 0x40b6f5
mov ecx, dword [ebp - 0x10]
push edi
call fcn.0040ae15
mov esi, eax
test esi, esi
jl 0x40b6f5
cmp byte [edi], 0x7d
jne 0x40b26a
jmp 0x40b6f5
lea ecx, [ebp + 8]
call fcn.00408fed
mov esi, 0x80020009
jmp 0x40b6f5
lea ecx, [ebp + 8]
jmp 0x40b6f0
push eax
call fcn.0040b710
pop ecx
lea ecx, [ebp - 0x18]
jmp 0x40b6ee
push eax
jmp 0x40b5de
push eax
call fcn.0040b710
pop ecx
lea ecx, [ebp - 0x1c]
mov esi, eax
call fcn.00408fed
pop ebx
lea ecx, [ebp - 0x14]
call fcn.00408fed
mov ecx, dword [ebp - 0xc]
pop edi
mov eax, esi
pop esi
mov dword fs:[0], ecx
leave
ret 0x10