Function at 0x45df08
Capabilities:
Delete registry key

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x2c
xor eax, eax
push ebx
push esi
push edi
mov esi, eax
mov dword [ebp - 0x2c], eax
mov edi, eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], eax
mov byte [ebp - 0x1c], al
mov dword [ebp - 0x18], eax
mov dword [ebp - 0xc], eax
mov dword [ebp - 4], esi
mov dword [ebp - 8], edi
mov dword [ebp - 0x14], eax
call fcn.0043b5be
mov dword [ebp - 0x10], eax
test eax, eax
jne 0x45dfbe
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, 0x80070000
test eax, eax
jle 0x45df59
movzx eax, ax
or eax, esi
test eax, eax
jns 0x45df6e
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
test ebx, ebx
jle 0x45df73
movzx ebx, bx
or ebx, esi
jmp 0x45df73
mov ebx, 0x80004005
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
call dword [sym.imp.WDSCORE.dll_CurrentIP]
push ebx
push 0x413838
push 0x2000000
mov esi, eax
call fcn.0045ab3f
add esp, 0xc
xor ecx, ecx
push ecx
push ecx
push edi
push esi
push 0x41381c
push 0x4131e8
push 0x376
push ecx
push 0x41216c
push ecx
push eax
call dword [sym.imp.WDSCORE.dll_WdsSetupLogMessageW]
jmp 0x45e0c3
lea edx, [ebp - 0xc]
mov ecx, 0x41379c
call fcn.0045dc32
mov ebx, eax
test ebx, ebx
js 0x45e071
mov esi, 0x41379c
lea edx, [ebp - 4]
mov ecx, esi
call fcn.0045dd4f
mov ebx, eax
test ebx, ebx
js 0x45e06e
lea edx, [ebp - 8]
mov ecx, esi
call fcn.0045de6c
mov ebx, eax
test ebx, ebx
js 0x45e06b
mov edx, dword [ebp - 0xc]
push ecx
push ecx
call fcn.0043b897
test eax, eax
jne 0x45e0d2
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
test ebx, ebx
jle 0x45e025
movzx ebx, bx
or ebx, 0x80070000
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
call dword [sym.imp.WDSCORE.dll_CurrentIP]
push ebx
push 0x413874
push 0x2000000
mov esi, eax
call fcn.0045ab3f
add esp, 0xc
xor ecx, ecx
push ecx
push ecx
push edi
push esi
push 0x41381c
push 0x4131e8
push 0x3a3
push ecx
push 0x41216c
push ecx
push eax
call dword [sym.imp.WDSCORE.dll_WdsSetupLogMessageW]
mov edi, dword [ebp - 8]
mov esi, dword [ebp - 4]
cmp dword [ebp - 0xc], 0
je 0x45e089
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push dword [ebp - 0xc]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
test edi, edi
je 0x45e09d
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push edi
push 0
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
test esi, esi
je 0x45e0b1
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push esi
push 0
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
push dword [ebp - 0x10]
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
lea ecx, [ebp - 0x2c]
call fcn.0045d93c
pop edi
pop esi
mov eax, ebx
pop ebx
leave
ret
push dword [ebp - 4]
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegDeleteTreeW]
mov ebx, eax
mov esi, 0x80070000
test ebx, ebx
jle 0x45e0f0
movzx ebx, bx
or ebx, esi
cmp ebx, 0x80070002
je 0x45e13c
test ebx, ebx
jns 0x45e13c
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
call dword [sym.imp.WDSCORE.dll_CurrentIP]
push ebx
push dword [ebp - 4]
mov esi, eax
push 0x4138b4
push 0x2000000
call fcn.0045ab3f
add esp, 0x10
xor ecx, ecx
push ecx
push ecx
push edi
push esi
push 0x41381c
push 0x4131e8
push 0x3b4
jmp 0x45e05d
mov edi, dword [ebp - 8]
push edi
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegDeleteTreeW]
test eax, eax
jle 0x45e154
movzx eax, ax
or eax, esi
lea ebx, [eax + 0x7ff8fffe]
neg ebx
sbb ebx, ebx
and ebx, eax
jge 0x45e1a2
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
call dword [sym.imp.WDSCORE.dll_CurrentIP]
push ebx
push dword [ebp - 8]
mov esi, eax
push 0x4138ec
push 0x2000000
call fcn.0045ab3f
add esp, 0x10
xor ecx, ecx
push ecx
push ecx
push edi
push esi
push 0x41381c
push 0x4131e8
push 0x3c0
jmp 0x45e05d
lea ecx, [ebp - 0x14]
call fcn.0045e34d
mov ebx, eax
test ebx, ebx
jns 0x45e1f0
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
call dword [sym.imp.WDSCORE.dll_CurrentIP]
push ebx
push dword [ebp - 0xc]
mov esi, eax
push 0x413930
push 0x2000000
call fcn.0045ab3f
add esp, 0x10
xor ecx, ecx
push ecx
push ecx
push edi
push esi
push 0x41381c
push 0x4131e8
push 0x3c9
jmp 0x45e05d
cmp dword [ebp - 0x14], 0
je 0x45e212
mov eax, dword [0x48ecbc]
cmp eax, 0xffffffff
je 0x45e212
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
je 0x45e271
or dword [0x48ecbc], 0xffffffff
push dword [ebp - 0xc]
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegDeleteTreeW]
mov ebx, eax
test ebx, ebx
jle 0x45e22b
movzx ebx, bx
or ebx, esi
cmp ebx, 0x80070002
jne 0x45e2bf
xor ebx, ebx
inc ebx
mov ecx, dword [ebp - 0x10]
xor edx, edx
call fcn.0043879a
test eax, eax
jne 0x45e06e
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
test ebx, ebx
jle 0x45e25d
movzx ebx, bx
or ebx, esi
cmp ebx, 0x80070002
jne 0x45e307
xor ebx, ebx
inc ebx
jmp 0x45e06e
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
test ebx, ebx
jle 0x45e282
movzx ebx, bx
or ebx, esi
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
call dword [sym.imp.WDSCORE.dll_CurrentIP]
push ebx
push 0x413978
push 0x2000000
mov esi, eax
call fcn.0045ab3f
add esp, 0xc
xor ecx, ecx
push ecx
push ecx
push edi
push esi
push 0x41381c
push 0x4131e8
push 0x3d7
jmp 0x45e05d
test ebx, ebx
jns 0x45e23a
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
call dword [sym.imp.WDSCORE.dll_CurrentIP]
push ebx
push dword [ebp - 0xc]
mov esi, eax
push 0x4139c0
push 0x2000000
call fcn.0045ab3f
add esp, 0x10
xor ecx, ecx
push ecx
push ecx
push edi
push esi
push 0x41381c
push 0x4131e8
push 0x400
jmp 0x45e05d
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
call dword [sym.imp.WDSCORE.dll_CurrentIP]
push ebx
push dword [ebp - 0x10]
mov esi, eax
push 0x4139fc
push 0x2000000
call fcn.0045ab3f
add esp, 0x10
xor ecx, ecx
push ecx
push ecx
push edi
push esi
push 0x41381c
push 0x4131e8
push 0x412
jmp 0x45e05d