Function at 0x407b00
Capabilities:
Delete registry key

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x55ec5d
mov eax, dword fs:[0]
push eax
sub esp, 0x28
mov eax, dword [0x640040]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, ecx
mov dword [ebp - 0x34], eax
mov ebx, dword [eax + 0x20]
xor dl, dl
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov edi, dword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
mov byte [ebp - 0x25], dl
test ebx, ebx
je 0x407d96
nop dword [eax]
mov eax, ebx
lea ecx, [ebp - 0x14]
mov ebx, dword [ebx]
add eax, 8
push eax
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__30]
mov dword [ebp - 4], 0
mov eax, dword [ebp - 0x14]
cmp dword [eax - 0xc], 0
jle 0x407d7b
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp - 0x30]
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__30]
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x30]
cmp dword [eax - 0xc], 1
jge 0x407ba1
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x30]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
jmp 0x407c78
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x24], 0
push ecx
push 0xf003f
push 0
push eax
push SysReAllocString
mov dword [ebp - 0x18], 0
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x407bdc
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x30]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
jmp 0x407c78
lea eax, [ebp - 0x18]
push eax
push 0xf003f
push 0
push 0x589e44
push dword [ebp - 0x24]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x407c0d
push dword [ebp - 0x24]
call esi
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x30]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
jmp 0x407c78
push 0x588d60
push dword [ebp - 0x18]
call edi
test eax, eax
je 0x407c22
push dword [ebp - 0x18]
call esi
jmp 0x407bf9
push 0x588d54
push dword [ebp - 0x18]
call edi
push dword [ebp - 0x18]
test eax, eax
je 0x407c37
call esi
jmp 0x407bf9
call esi
push 0x589e44
push dword [ebp - 0x24]
call edi
test eax, eax
jne 0x407bf9
push str.CLSID
push dword [ebp - 0x24]
call edi
push dword [ebp - 0x24]
test eax, eax
jne 0x407bfc
call esi
push dword [ebp - 0x30]
push SysReAllocString
call edi
test eax, eax
jne 0x407bfe
mov byte [ebp - 4], al
lea ecx, [ebp - 0x30]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
mov byte [ebp - 0x25], 1
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp - 0x2c]
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__30]
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x2c]
cmp dword [eax - 0xc], 1
jge 0x407ca4
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x2c]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
jmp 0x407d7b
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0x1c], 0
push ecx
push 0xf003f
push 0
push eax
push SysReAllocString
mov dword [ebp - 0x20], 0
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x407cdf
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x2c]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
jmp 0x407d7b
lea eax, [ebp - 0x20]
push eax
push 0xf003f
push 0
push 0x589e3c
push dword [ebp - 0x1c]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x407d10
push dword [ebp - 0x1c]
call esi
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x2c]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
jmp 0x407d7b
push 0x588d60
push dword [ebp - 0x20]
call edi
test eax, eax
je 0x407d25
push dword [ebp - 0x20]
call esi
jmp 0x407cfc
push 0x588d54
push dword [ebp - 0x20]
call edi
push dword [ebp - 0x20]
test eax, eax
je 0x407d3a
call esi
jmp 0x407cfc
call esi
push 0x589e3c
push dword [ebp - 0x1c]
call edi
test eax, eax
jne 0x407cfc
push str.CLSID
push dword [ebp - 0x1c]
call edi
push dword [ebp - 0x1c]
test eax, eax
jne 0x407cff
call esi
push dword [ebp - 0x2c]
push SysReAllocString
call edi
test eax, eax
jne 0x407d01
mov byte [ebp - 4], al
lea ecx, [ebp - 0x2c]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
mov byte [ebp - 0x25], 1
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x14]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
test ebx, ebx
jne 0x407b50
mov dl, byte [ebp - 0x25]
mov eax, dword [ebp - 0x34]
mov ebx, dword [eax + 0x3c]
test ebx, ebx
je 0x407eb8
mov eax, ebx
lea ecx, [ebp - 0x14]
mov ebx, dword [ebx]
add eax, 8
push eax
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__30]
mov dword [ebp - 4], 3
mov eax, dword [ebp - 0x14]
cmp dword [eax - 0xc], 0
jle 0x407e9a
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp - 0x1c]
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__30]
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x1c]
cmp dword [eax - 0xc], 1
jge 0x407df5
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x1c]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
jmp 0x407e9a
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x20], 0
push ecx
push 0xf003f
push 0
push eax
push SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x407e26
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x1c]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
jmp 0x407e9a
push str.CLSID
push dword [ebp - 0x20]
call edi
test eax, eax
je 0x407e48
push dword [ebp - 0x20]
call esi
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x1c]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
jmp 0x407e9a
push str.CurVer
push dword [ebp - 0x20]
call edi
push dword [ebp - 0x20]
test eax, eax
je 0x407e6a
call esi
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x1c]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
jmp 0x407e9a
call esi
push dword [ebp - 0x1c]
push SysReAllocString
call edi
test eax, eax
je 0x407e89
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x1c]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
jmp 0x407e9a
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x1c]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
mov byte [ebp - 0x25], 1
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x14]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
test ebx, ebx
jne 0x407da4
mov dl, byte [ebp - 0x25]
mov eax, dword [ebp - 0x34]
mov ebx, dword [eax + 4]
test ebx, ebx
je 0x408093
mov eax, ebx
lea ecx, [ebp - 0x18]
mov ebx, dword [ebx]
add eax, 8
push eax
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__30]
mov dword [ebp - 4], 5
mov eax, dword [ebp - 0x18]
cmp dword [eax - 0xc], 0
jle 0x408076
lea eax, [ebp - 0x18]
push eax
lea ecx, [ebp - 0x2c]
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__30]
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x2c]
cmp dword [eax - 0xc], 1
jge 0x407f14
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x2c]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
jmp 0x407fe5
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x1c], 0
push eax
push 0xf003f
push 0
push str.CLSID
push SysReAllocString
mov dword [ebp - 0x24], 0
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x407f53
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x2c]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
jmp 0x407fe5
lea eax, [ebp - 0x24]
push eax
push 0xf003f
push 0
push dword [ebp - 0x2c]
push dword [ebp - 0x1c]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x407f82
push dword [ebp - 0x1c]
call esi
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x2c]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
jmp 0x407fe5
push str.ProgID
push dword [ebp - 0x24]
call edi
test eax, eax
je 0x407f97
push dword [ebp - 0x24]
call esi
jmp 0x407f6e
push str.VersionIndependentProgID
push dword [ebp - 0x24]
call edi
test eax, eax
je 0x407fac
push dword [ebp - 0x24]
call esi
jmp 0x407f6e
push str.LocalServer32
push dword [ebp - 0x24]
call edi
push dword [ebp - 0x24]
test eax, eax
je 0x407fc1
call esi
jmp 0x407f6e
call esi
push dword [ebp - 0x2c]
push dword [ebp - 0x1c]
call edi
push dword [ebp - 0x1c]
test eax, eax
jne 0x407f71
call esi
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x2c]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
mov byte [ebp - 0x25], 1
lea eax, [ebp - 0x18]
push eax
lea ecx, [ebp - 0x20]
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__30]
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x20]
cmp dword [eax - 0xc], 1
jge 0x40800e
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x20]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
jmp 0x408076
lea eax, [ebp - 0x14]
mov dword [ebp - 0x14], 0
push eax
push 0xf003f
push 0
push str.AppID
push SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x408043
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x20]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
jmp 0x408076
push dword [ebp - 0x20]
push dword [ebp - 0x14]
call edi
push dword [ebp - 0x14]
test eax, eax
je 0x408063
call esi
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x20]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
jmp 0x408076
call esi
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x20]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
mov byte [ebp - 0x25], 1
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x18]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
test ebx, ebx
jne 0x407ec3
mov al, byte [ebp - 0x25]
jmp 0x408095
mov al, dl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0055c86d
mov esp, ebp
pop ebp
ret