Function at 0x403ad0
Capabilities:
Delete registry key

Disassembly:
sub esp, 0x808
mov eax, dword [str.Unknown]
mov ecx, dword [0x40fdec]
mov edx, dword [0x413604]
push esi
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push edi
mov dword [esp + 0x410], eax
mov dword [esp + 0x414], ecx
mov ecx, 0x7e
xor eax, eax
lea edi, [esp + 0x418]
push str.CM_Get_DevNode_Registry_PropertyA
rep stosd dword es:[edi], eax
push edx
mov dword [esp + 0x14], eax
call esi
test eax, eax
mov dword [0x4135f4], eax
jne 0x403b50
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [esp + 0x14]
push str.Error:__PCM_Get_DevNode_Registry_Property__u
push eax
call fcn.00406f8b
lea ecx, [esp + 0x1c]
push ecx
call fcn.00406080
add esp, 0x10
xor eax, eax
pop edi
pop esi
add esp, 0x808
ret
mov edx, dword [0x413604]
push str.CM_Remove_SubTree
push edx
call esi
mov dword [0x4135fc], eax
mov eax, dword [0x4135f4]
test eax, eax
jne 0x403b9a
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [esp + 0x14]
push str.Error:__PCM_Query_Remove_SubTree__u
push eax
call fcn.00406f8b
lea ecx, [esp + 0x1c]
push ecx
call fcn.00406080
add esp, 0x10
xor eax, eax
pop edi
pop esi
add esp, 0x808
ret
mov edx, dword [0x413604]
push str.CM_Query_Remove_SubTree
push edx
call esi
mov dword [0x4135f8], eax
mov eax, dword [0x4135f4]
test eax, eax
jne 0x403be4
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [esp + 0x14]
push str.Error:__PCM_Query_Remove_SubTree__u
push eax
call fcn.00406f8b
lea ecx, [esp + 0x1c]
push ecx
call fcn.00406080
add esp, 0x10
xor eax, eax
pop edi
pop esi
add esp, 0x808
ret
mov esi, dword [esp + 0x818]
lea edx, [esp + 0xc]
push 0
lea ecx, [esp + 0x614]
push edx
push ecx
push 0
push 8
push esi
mov dword [esp + 0x24], 0x200
call eax
mov edi, eax
test edi, edi
je 0x403c3e
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push edi
lea edx, [esp + 0x18]
push str.CM_Get_DevNode_Registry_Property_Error:__u_GetLastError:__u
push edx
call fcn.00406f8b
lea eax, [esp + 0x20]
push eax
call fcn.00406080
add esp, 0x14
xor eax, eax
pop edi
pop esi
add esp, 0x808
ret
lea ecx, [esp + 0x410]
lea edx, [esp + 0x610]
push ecx
push edx
call fcn.004071b0
add esp, 8
test eax, eax
jne 0x403d77
push eax
push esi
call dword [0x4135f8]
mov edi, eax
test edi, edi
je 0x403c7e
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push edi
push str.CM_Query_Remove_SubTree_Error:__u_GetLastError:__u
jmp 0x403d8c
push 0
push esi
call dword [0x4135fc]
mov esi, eax
test esi, esi
je 0x403cbc
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push esi
lea edx, [esp + 0x18]
push str.CM_Remove_SubTree_Error:__u_GetLastError:__u
push edx
call fcn.00406f8b
lea eax, [esp + 0x20]
push eax
call fcn.00406080
add esp, 0x14
xor eax, eax
pop edi
pop esi
add esp, 0x808
ret
lea ecx, [esp + 8]
push ecx
push 0xf003f
push 0
push str.ENUM
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x403d47
mov edx, dword [esp + 0x814]
mov eax, dword [esp + 8]
push edx
push eax
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
test eax, eax
jne 0x403d0c
mov ecx, dword [esp + 8]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
mov eax, 1
pop esi
add esp, 0x808
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0
lea edx, [esp + 0x18]
push str.RegDeleteKey_Error:__u_GetLastError:__u
push edx
call fcn.00406f8b
lea eax, [esp + 0x20]
push eax
call fcn.00406080
mov ecx, dword [esp + 0x1c]
add esp, 0x14
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
xor eax, eax
pop esi
add esp, 0x808
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0
lea edx, [esp + 0x18]
push str.RegOpenKeyEx_Error:__u_GetLastError:__u
push edx
call fcn.00406f8b
lea eax, [esp + 0x20]
push eax
call fcn.00406080
add esp, 0x14
xor eax, eax
pop edi
pop esi
add esp, 0x808
ret
lea ecx, [esp + 0x410]
lea edx, [esp + 0x610]
push ecx
push edx
push str._s_didnt_match__s
lea eax, [esp + 0x1c]
push eax
call fcn.00406f8b
lea ecx, [esp + 0x20]
push ecx
call fcn.00406080
add esp, 0x14
xor eax, eax
pop edi
pop esi
add esp, 0x808
ret