Function at 0x407c49
Capabilities:
Delete registry key

Disassembly:
push 0x188
mov eax, 0x47e0a1
call fcn.0047a72d
push dword [ebp + 0xc]
mov edx, str.Removing_registry_key_
lea ecx, [ebp - 0x6c]
push dword [ebp + 8]
call fcn.00412ed1
xor ebx, ebx
mov dword [ebp - 4], ebx
mov edx, eax
push 0x49a95c
lea ecx, [ebp - 0x2c]
call fcn.00411db0
add esp, 0xc
push 2
pop eax
mov byte [ebp - 4], al
lea ecx, [ebp - 0x6c]
call fcn.004100f5
push dword [ebp + 0xc]
lea ecx, [ebp - 0x4c]
push dword [ebp + 8]
call fcn.00431790
pop ecx
pop ecx
mov byte [ebp - 4], 4
lea eax, [ebp - 0x54]
push eax
lea ecx, [ebp - 0x4c]
call fcn.0041011a
push ecx
push ecx
push 0x20006
push dword [eax + 4]
lea ecx, [ebp - 0x130]
push dword [eax]
push 2
call fcn.0040f457
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x12c]
test eax, eax
je 0x407d62
push 2
pop ecx
mov esi, ebx
cmp eax, ecx
je 0x407cea
cmp eax, 3
cmovne esi, ecx
push str.failed:
lea edx, [ebp - 0x2c]
lea ecx, [ebp - 0x8c]
call fcn.00412085
pop ecx
mov edi, eax
mov byte [ebp - 4], 6
lea eax, [ebp - 0x1c]
cmp dword [ebp - 0x12c], 0
lea ecx, [ebp - 0x130]
push eax
jne 0x407d1e
call fcn.0040f680
jmp 0x407d23
call fcn.0040f560
push dword [ebp - 0x18]
mov edx, edi
lea ecx, [ebp - 0x7c]
push dword [ebp - 0x1c]
call fcn.00411e00
pop ecx
pop ecx
mov byte [ebp - 4], 7
mov edx, esi
mov ecx, eax
call fcn.00404b3c
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x7c]
call fcn.004100f5
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x8c]
call fcn.004100f5
jmp 0x407e86
cmp dword [ebp - 0x34], 0
mov eax, 0x4ca5a8
cmovne eax, dword [ebp - 0x38]
push eax
push dword [ebp - 0xc0]
call dword [sym.imp.SHLWAPI.dll_SHDeleteEmptyKeyW]
mov ecx, eax
test ecx, ecx
jne 0x407db9
push str.succeeded.
lea edx, [ebp - 0x2c]
lea ecx, [ebp - 0x9c]
call fcn.00411e8a
pop ecx
mov byte [ebp - 4], 0xc
xor edx, edx
mov ecx, eax
call fcn.00404b3c
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x9c]
call fcn.004100f5
mov bl, 1
jmp 0x407e86
mov eax, ebx
mov dword [ebp - 0x14], eax
cmp ecx, 0x91
jne 0x407dcf
or dword [0x4cabcc], 0x20
jmp 0x407ddf
push 2
pop edx
cmp ecx, edx
je 0x407ddf
cmp ecx, 3
cmovne eax, edx
mov dword [ebp - 0x14], eax
push ecx
push ecx
mov eax, esp
push ecx
mov dword [eax], str.SHDeleteEmptyKey__
mov dword [eax + 4], 0x12
mov eax, ecx
cdq
lea ecx, [ebp - 0x194]
push edx
push eax
call fcn.004024a8
mov ebx, eax
mov byte [ebp - 4], 0x10
lea edx, [ebp - 0x2c]
push str.failed:
lea ecx, [ebp - 0xbc]
call fcn.00412085
pop ecx
mov edi, eax
mov byte [ebp - 4], 0x11
lea eax, [ebp - 0x5c]
mov ecx, dword [ebx]
push eax
mov esi, dword [ecx]
mov ecx, esi
call dword [0x48d4b4]
mov ecx, ebx
call esi
mov edx, edi
lea ecx, [ebp - 0xac]
push dword [eax + 4]
push dword [eax]
call fcn.00411e00
pop ecx
pop ecx
mov byte [ebp - 4], 0x12
mov ecx, eax
mov edx, dword [ebp - 0x14]
call fcn.00404b3c
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0xac]
call fcn.004100f5
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0xbc]
call fcn.004100f5
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x194]
call fcn.004025b0
xor ebx, ebx
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x130]
call fcn.0043ccb0
push 2
pop eax
mov byte [ebp - 4], al
lea ecx, [ebp - 0x4c]
call fcn.00402a60
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c]
call fcn.004100f5
mov al, bl
call fcn.0047a6d7
ret