Function at 0x45d158
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.0043a80e
mov dword [ebp - 0x10], eax
test eax, eax
jne 0x45d20e
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, 0x80070000
test eax, eax
jle 0x45d1a9
movzx eax, ax
or eax, esi
test eax, eax
jns 0x45d1be
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
test ebx, ebx
jle 0x45d1c3
movzx ebx, bx
or ebx, esi
jmp 0x45d1c3
mov ebx, 0x80004005
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
call dword [sym.imp.WDSCORE.dll_CurrentIP]
push ebx
push 0x413708
push 0x2000000
mov esi, eax
call fcn.00459d8f
add esp, 0xc
xor ecx, ecx
push ecx
push ecx
push edi
push esi
push 0x4136ec
push 0x4130b8
push 0x376
push ecx
push 0x41203c
push ecx
push eax
call dword [sym.imp.WDSCORE.dll_WdsSetupLogMessageW]
jmp 0x45d313
lea edx, [ebp - 0xc]
mov ecx, 0x41366c
call fcn.0045ce82
mov ebx, eax
test ebx, ebx
js 0x45d2c1
mov esi, 0x41366c
lea edx, [ebp - 4]
mov ecx, esi
call fcn.0045cf9f
mov ebx, eax
test ebx, ebx
js 0x45d2be
lea edx, [ebp - 8]
mov ecx, esi
call fcn.0045d0bc
mov ebx, eax
test ebx, ebx
js 0x45d2bb
mov edx, dword [ebp - 0xc]
push ecx
push ecx
call fcn.0043aae7
test eax, eax
jne 0x45d322
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
test ebx, ebx
jle 0x45d275
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 0x413744
push 0x2000000
mov esi, eax
call fcn.00459d8f
add esp, 0xc
xor ecx, ecx
push ecx
push ecx
push edi
push esi
push 0x4136ec
push 0x4130b8
push 0x3a3
push ecx
push 0x41203c
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 0x45d2d9
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 0x45d2ed
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push edi
push 0
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
test esi, esi
je 0x45d301
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.0045cb8c
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 0x45d340
movzx ebx, bx
or ebx, esi
cmp ebx, 0x80070002
je 0x45d38c
test ebx, ebx
jns 0x45d38c
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 0x413784
push 0x2000000
call fcn.00459d8f
add esp, 0x10
xor ecx, ecx
push ecx
push ecx
push edi
push esi
push 0x4136ec
push 0x4130b8
push 0x3b4
jmp 0x45d2ad
mov edi, dword [ebp - 8]
push edi
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegDeleteTreeW]
test eax, eax
jle 0x45d3a4
movzx eax, ax
or eax, esi
lea ebx, [eax + 0x7ff8fffe]
neg ebx
sbb ebx, ebx
and ebx, eax
jge 0x45d3f2
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 0x4137bc
push 0x2000000
call fcn.00459d8f
add esp, 0x10
xor ecx, ecx
push ecx
push ecx
push edi
push esi
push 0x4136ec
push 0x4130b8
push 0x3c0
jmp 0x45d2ad
lea ecx, [ebp - 0x14]
call fcn.0045d59d
mov ebx, eax
test ebx, ebx
jns 0x45d440
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 0x413800
push 0x2000000
call fcn.00459d8f
add esp, 0x10
xor ecx, ecx
push ecx
push ecx
push edi
push esi
push 0x4136ec
push 0x4130b8
push 0x3c9
jmp 0x45d2ad
cmp dword [ebp - 0x14], 0
je 0x45d462
mov eax, dword [0x48dcbc]
cmp eax, 0xffffffff
je 0x45d462
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
je 0x45d4c1
or dword [0x48dcbc], 0xffffffff
push dword [ebp - 0xc]
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegDeleteTreeW]
mov ebx, eax
test ebx, ebx
jle 0x45d47b
movzx ebx, bx
or ebx, esi
cmp ebx, 0x80070002
jne 0x45d50f
xor ebx, ebx
inc ebx
mov ecx, dword [ebp - 0x10]
xor edx, edx
call fcn.004379f7
test eax, eax
jne 0x45d2be
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
test ebx, ebx
jle 0x45d4ad
movzx ebx, bx
or ebx, esi
cmp ebx, 0x80070002
jne 0x45d557
xor ebx, ebx
inc ebx
jmp 0x45d2be
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
test ebx, ebx
jle 0x45d4d2
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 0x413848
push 0x2000000
mov esi, eax
call fcn.00459d8f
add esp, 0xc
xor ecx, ecx
push ecx
push ecx
push edi
push esi
push 0x4136ec
push 0x4130b8
push 0x3d7
jmp 0x45d2ad
test ebx, ebx
jns 0x45d48a
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 0x413890
push 0x2000000
call fcn.00459d8f
add esp, 0x10
xor ecx, ecx
push ecx
push ecx
push edi
push esi
push 0x4136ec
push 0x4130b8
push 0x400
jmp 0x45d2ad
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 0x4138cc
push 0x2000000
call fcn.00459d8f
add esp, 0x10
xor ecx, ecx
push ecx
push ecx
push edi
push esi
push 0x4136ec
push 0x4130b8
push 0x412
jmp 0x45d2ad