Function at 0x4086a0
Capabilities:
Delete registry value
Query or enumerate registry key

Disassembly:
push ebp
lea ebp, [esp - 0x404]
sub esp, 0x404
push 0xffffffffffffffff
push 0x425d00
mov eax, dword fs:[0]
push eax
sub esp, 0x24
mov eax, dword [0x432a20]
xor eax, ebp
mov dword [ebp + 0x400], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov edi, ecx
mov dword [ebp - 0x30], edi
mov ebx, dword [ebp + 0x40c]
mov esi, dword [ebp + 0x410]
mov byte [ebp - 0x11], 0
xor eax, eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], 0xf003f
mov byte [ebp - 0x12], al
mov dword [ebp - 4], eax
call fcn.00409930
test eax, eax
je 0x408719
mov dword [ebp - 0x18], 0xf013f
mov dword [ebp - 0x28], 0
lea eax, [ebp - 0x28]
push eax
call fcn.00409b70
add esp, 4
lea ecx, [ebp - 0x1c]
push ecx
mov edx, dword [ebp - 0x18]
push edx
push 0
push esi
push ebx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x4087bb
push str.DrvCntCode
mov eax, dword [ebp - 0x1c]
push eax
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
cmp byte [ebp + 0x414], 0
jne 0x40878c
push 0
push 0
push 0
push 0
lea ecx, [ebp - 0x24]
push ecx
push 0
push 0
lea edx, [ebp - 0x20]
push edx
push 0
push 0
push 0
mov eax, dword [ebp - 0x1c]
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyA]
test eax, eax
jne 0x40879c
cmp dword [ebp - 0x20], eax
jne 0x408790
cmp dword [ebp - 0x24], eax
jne 0x408790
mov byte [ebp - 0x12], 1
mov ecx, dword [ebp - 0x1c]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x4087ce
push esi
push str.QueryInfoKey___s_
lea edx, [edi + 4]
mov ecx, eax
call fcn.00406dd0
add esp, 8
mov ecx, dword [ebp - 0x1c]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x4087ce
push esi
push str.Open_Key___s_
lea edx, [edi + 4]
mov ecx, eax
call fcn.00406dd0
add esp, 8
mov ecx, dword [ebp - 0x28]
call fcn.00409ae0
cmp byte [ebp - 0x12], 0
je 0x4088cc
call fcn.00409930
test eax, eax
je 0x4087f5
push edi
mov edx, esi
mov ecx, ebx
call fcn.00408930
jmp 0x408829
push 0x438b04
mov ecx, esi
mov edx, ebx
call fcn.00401440
test eax, eax
jne 0x40880d
mov byte [ebp - 0x11], 1
jmp 0x408834
push esi
push str.Delete_Key___s_
lea edx, [edi + 4]
mov ecx, eax
call fcn.00406dd0
add esp, 8
push esi
push ebx
mov ecx, edi
call fcn.00408b20
mov byte [ebp - 0x11], al
test al, al
je 0x4088fd
push esi
push str.Delete__s_Registry_Success__
lea ecx, [edi + 4]
call fcn.00406f10
add esp, 8
push esi
lea ecx, [ebp - 0x18]
call fcn.00404fc0
mov byte [ebp - 4], 1
push 0x400
push 0
lea edx, [ebp]
push edx
call fcn.00416c00
add esp, 0xc
mov cl, 0x5c
lea esi, [ebp - 0x18]
call fcn.004044e0
cmp eax, 0xffffffff
je 0x4088c0
push eax
lea eax, [ebp - 0x2c]
push eax
mov ecx, esi
call fcn.00404650
mov byte [ebp - 4], 2
mov eax, dword [eax]
push eax
push 0x400
lea ecx, [ebp]
push ecx
call fcn.004124ad
add esp, 0xc
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2c]
call fcn.00404f60
lea edx, [ebp]
push edx
call fcn.00409540
add esp, 4
push 0
mov eax, edx
push eax
push ebx
mov ecx, edi
call fcn.004086a0
mov byte [ebp - 0x11], al
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x18]
call fcn.00404f60
mov dword [ebp - 4], 0xffffffff
mov al, byte [ebp - 0x11]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x400]
xor ecx, ebp
call fcn.00412333
add ebp, 0x404
mov esp, ebp
pop ebp
ret 0xc
push esi
push str.Delete__s_Registry_failed__
lea ecx, [edi + 4]
call fcn.00406f10
add esp, 8
jmp 0x4088cc