Function at 0x47c8e9
Capabilities:
Delete registry key
Delete registry value

Disassembly:
mov eax, 0x4ca02a
call fcn.004c7e20
sub esp, 0x238
mov eax, dword [0x4ed384]
push ebx
push esi
mov esi, dword [sym.imp.MSVCRT.dll__wcsicmp]
push edi
push str.AudioCD
push dword [ebp + 8]
mov dword [ebp - 0x10], eax
call esi
mov edi, eax
neg edi
sbb edi, edi
push str.Directory
push dword [ebp + 8]
inc edi
mov dword [ebp - 0x234], edi
call esi
mov esi, eax
mov eax, dword [0x4f0980]
add esp, 0x10
neg esi
sbb esi, esi
inc esi
mov dword [ebp - 0x244], esi
mov dword [ebp - 0x238], eax
xor ebx, ebx
cmp edi, ebx
mov dword [ebp - 4], ebx
jne 0x47c978
cmp esi, ebx
jne 0x47c978
lea eax, [ebp - 0x23c]
push eax
xor eax, eax
inc eax
lea esi, [ebp - 0x238]
mov dword [ebp - 0x23c], 0x2e
call fcn.004032fb
mov esi, dword [ebp - 0x244]
push dword [ebp + 8]
lea eax, [ebp - 0x238]
push eax
call fcn.00402fdb
mov dword [ebp - 0x23c], 0x104
mov dword [ebp - 0x220], ebx
mov dword [ebp - 0x224], ebx
cmp edi, ebx
mov byte [ebp - 4], 2
jne 0x47ce1d
cmp esi, ebx
jne 0x47ce1d
push str.SoftwareMicrosoftWindowsCurrentVersionExplorerFileExts_
lea edi, [ebp - 0x22c]
call fcn.00402f03
mov eax, dword [ebp - 0x238]
mov edi, dword [eax - 8]
push eax
lea eax, [ebp - 0x22c]
call fcn.00403377
mov dword [ebp - 0x21c], ebx
mov esi, 0x2001f
push esi
push dword [ebp - 0x22c]
lea eax, [ebp - 0x21c]
push reloc.ttpcomm.dll_Ordinal_1
call fcn.00401247
test eax, eax
jne 0x47ca51
mov edi, dword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
push str.Application
push dword [ebp - 0x21c]
call edi
push str.Progid
push dword [ebp - 0x21c]
call edi
call fcn.0049dd85
cmp eax, 5
jle 0x47ca37
push 0x4d7d14
push dword [ebp - 0x21c]
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
cmp dword [ebp - 0x21c], ebx
je 0x47ca51
push dword [ebp - 0x21c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x21c], ebx
mov eax, dword [0x4f0980]
mov dword [ebp - 0x230], eax
push str.Audio
lea edi, [ebp - 0x240]
call fcn.00402f03
lea ecx, [ebp - 0x238]
push ecx
lea ecx, [ebp - 0x228]
push ecx
mov ecx, eax
call fcn.004030d0
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x240]
add eax, 0xfffffff4
cmp eax, dword [0x4f0984]
je 0x47ca9c
push eax
call fcn.004013aa
push ebx
push esi
push ebx
push ebx
push dword [ebp - 0x238]
xor edi, edi
push SysReAllocStringLen
lea eax, [ebp - 0x220]
call fcn.0047090e
test eax, eax
je 0x47cb1e
mov eax, dword [ebp - 0x228]
add eax, 0xfffffff4
cmp eax, dword [0x4f0984]
je 0x47cad3
push eax
call fcn.004013aa
mov eax, dword [ebp - 0x230]
add eax, 0xfffffff4
cmp eax, dword [0x4f0984]
je 0x47caea
push eax
call fcn.004013aa
cmp dword [ebp - 0x21c], ebx
je 0x47cafe
push dword [ebp - 0x21c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp - 0x22c]
add eax, 0xfffffff4
cmp eax, dword [0x4f0984]
je 0x47cdeb
push eax
call fcn.004013aa
jmp 0x47cdeb
mov eax, 0x105
lea ecx, [ebp - 0x230]
call fcn.00403042
push 0x4d1350
lea ecx, [ebp - 0x220]
push ecx
lea esi, [ebp - 0x23c]
mov edi, eax
call fcn.0040127a
or eax, 0xffffffff
lea ecx, [ebp - 0x230]
call fcn.0040306e
push ebx
push 0x2001f
push ebx
push ebx
push dword [ebp - 0x228]
xor edi, edi
push SysReAllocStringLen
lea eax, [ebp - 0x224]
call fcn.0047090e
test eax, eax
je 0x47cbdb
mov eax, dword [ebp - 0x228]
add eax, 0xfffffff4
cmp eax, dword [0x4f0984]
je 0x47cb90
push eax
call fcn.004013aa
mov eax, dword [ebp - 0x230]
add eax, 0xfffffff4
cmp eax, dword [0x4f0984]
je 0x47cba7
push eax
call fcn.004013aa
cmp dword [ebp - 0x21c], ebx
je 0x47cbbb
push dword [ebp - 0x21c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp - 0x22c]
add eax, 0xfffffff4
cmp eax, dword [0x4f0984]
je 0x47cdd7
push eax
call fcn.004013aa
jmp 0x47cdd7
push 1
push dword [ebp + 0xc]
mov edi, 0x4d1350
push edi
lea eax, [ebp - 0x224]
push eax
call fcn.004709a8
push 0x4d7cf8
lea ecx, [ebp - 0x224]
call fcn.004709d3
push dword [ebp - 0x228]
mov esi, dword [sym.imp.MSVCRT.dll__wcsicmp]
push dword [ebp - 0x230]
call esi
test eax, eax
pop ecx
pop ecx
je 0x47cc35
push 1
push dword [ebp - 0x230]
lea eax, [ebp - 0x220]
push str.Backup
push eax
call fcn.004709a8
push 1
push dword [ebp - 0x228]
lea eax, [ebp - 0x220]
push edi
push eax
call fcn.004709a8
cmp dword [ebp - 0x220], ebx
je 0x47cc64
push dword [ebp - 0x220]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x220], ebx
mov edi, dword [ebp - 0x230]
cmp dword [edi - 8], ebx
je 0x47ccc5
push edi
push dword [ebp - 0x228]
call esi
test eax, eax
pop ecx
pop ecx
je 0x47ccc5
push 0x2001f
push edi
push SysReAllocStringLen
lea eax, [ebp - 0x220]
call fcn.00401247
test eax, eax
jne 0x47ccc5
push dword [ebp - 0x224]
push dword [ebp - 0x220]
call fcn.00470be7
cmp dword [ebp - 0x220], ebx
pop ecx
pop ecx
je 0x47ccc5
push dword [ebp - 0x220]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x220], ebx
push 0x104
lea eax, [ebp - 0x218]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov eax, dword [0x4f0980]
mov dword [ebp - 0x230], eax
mov eax, dword [ebp + 0x10]
cmp eax, ebx
je 0x47ccfd
cmp word [eax], bx
je 0x47ccfd
push eax
lea eax, [ebp - 0x230]
call fcn.00402fb6
jmp 0x47cd18
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x230]
push str.__s__1
push eax
call fcn.00405986
add esp, 0xc
mov esi, dword [ebp - 0x230]
push ebx
push esi
push 0x4d7cd0
lea eax, [ebp - 0x224]
call fcn.00470957
lea eax, [esi - 0xc]
cmp eax, dword [0x4f0984]
je 0x47cd41
push eax
call fcn.004013aa
mov eax, dword [ebp - 0x228]
add eax, 0xfffffff4
cmp eax, dword [0x4f0984]
je 0x47cd58
push eax
call fcn.004013aa
lea eax, [edi - 0xc]
cmp eax, dword [0x4f0984]
je 0x47cd69
push eax
call fcn.004013aa
cmp dword [ebp - 0x21c], ebx
je 0x47cd7d
push dword [ebp - 0x21c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp - 0x22c]
add eax, 0xfffffff4
cmp eax, dword [0x4f0984]
je 0x47cd94
push eax
call fcn.004013aa
push ebx
mov esi, 0x2001f
push esi
push ebx
push ebx
push str.shell
push dword [ebp - 0x224]
xor edi, edi
lea eax, [ebp - 0x21c]
mov dword [ebp - 0x21c], ebx
call fcn.0047090e
test eax, eax
je 0x47ce52
cmp dword [ebp - 0x21c], ebx
je 0x47cdd7
push dword [ebp - 0x21c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [ebp - 0x224], ebx
je 0x47cdeb
push dword [ebp - 0x224]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [ebp - 0x220], ebx
je 0x47cdff
push dword [ebp - 0x220]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp - 0x238]
add eax, 0xfffffff4
cmp eax, dword [0x4f0984]
je 0x47ce16
push eax
call fcn.004013aa
xor eax, eax
jmp 0x47d118
push ebx
push 0x2001f
push ebx
push ebx
push dword [ebp + 8]
xor edi, edi
push SysReAllocStringLen
lea eax, [ebp - 0x224]
call fcn.0047090e
test eax, eax
je 0x47cd94
cmp dword [ebp - 0x224], ebx
je 0x47cdff
push dword [ebp - 0x224]
jmp 0x47cdf9
cmp dword [ebp - 0x244], ebx
je 0x47cec0
push 0x81a8
lea eax, [ebp - 0x240]
call fcn.00408e92
pop ecx
push ebx
push dword [eax]
lea eax, [ebp - 0x21c]
push 0x4d7cb0
call fcn.00470957
mov eax, dword [ebp - 0x240]
add eax, 0xfffffff4
cmp eax, dword [0x4f0984]
je 0x47ce95
push eax
call fcn.004013aa
push ebx
lea ecx, [ebp - 0x240]
call fcn.0047c197
pop ecx
push ebx
push dword [eax]
lea eax, [ebp - 0x21c]
push str.Playbackcommand
call fcn.00470957
mov eax, dword [ebp - 0x240]
jmp 0x47d03e
cmp dword [ebp - 0x234], ebx
je 0x47cff0
push ebx
push esi
push ebx
push ebx
push str.opencommand
push dword [ebp - 0x21c]
xor edi, edi
lea eax, [ebp - 0x22c]
mov dword [ebp - 0x22c], ebx
call fcn.0047090e
test eax, eax
jne 0x47cf69
mov eax, dword [0x4f0980]
mov dword [ebp - 0x228], eax
mov eax, 0x10f
lea ecx, [ebp - 0x228]
mov dword [ebp - 0x23c], 0x10e
call fcn.00403042
push 0x4d1350
lea ecx, [ebp - 0x22c]
push ecx
lea esi, [ebp - 0x23c]
mov edi, eax
call fcn.0040127a
or eax, 0xffffffff
lea ecx, [ebp - 0x228]
call fcn.0040306e
mov esi, dword [ebp - 0x228]
push 1
push esi
push str.Backup
lea eax, [ebp - 0x22c]
push eax
call fcn.004709a8
lea eax, [esi - 0xc]
cmp eax, dword [0x4f0984]
je 0x47cf69
push eax
call fcn.004013aa
push 0x81a9
lea eax, [ebp - 0x234]
call fcn.00408e92
pop ecx
push ebx
push dword [eax]
lea eax, [ebp - 0x21c]
push 0x4d63f8
call fcn.00470957
mov eax, dword [ebp - 0x234]
add eax, 0xfffffff4
cmp eax, dword [0x4f0984]
je 0x47cfa4
push eax
call fcn.004013aa
push 1
lea ecx, [ebp - 0x234]
call fcn.0047c197
pop ecx
push ebx
push dword [eax]
lea eax, [ebp - 0x21c]
push str.PlayListcommand
call fcn.00470957
mov eax, dword [ebp - 0x234]
add eax, 0xfffffff4
cmp eax, dword [0x4f0984]
je 0x47cfdc
push eax
call fcn.004013aa
cmp dword [ebp - 0x22c], ebx
je 0x47cff0
push dword [ebp - 0x22c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push 1
mov esi, 0x4d4218
push esi
mov edi, 0x4d1350
push edi
lea eax, [ebp - 0x21c]
push eax
call fcn.004709a8
push ebx
push edi
push esi
lea eax, [ebp - 0x21c]
call fcn.00470957
push ebx
lea ecx, [ebp - 0x234]
call fcn.0047c197
pop ecx
push ebx
push dword [eax]
lea eax, [ebp - 0x21c]
push str.opencommand
call fcn.00470957
mov eax, dword [ebp - 0x234]
add eax, 0xfffffff4
cmp eax, dword [0x4f0984]
je 0x47d04f
push eax
call fcn.004013aa
push 0x81a9
lea eax, [ebp - 0x234]
call fcn.00408e92
pop ecx
push ebx
push dword [eax]
lea eax, [ebp - 0x21c]
push 0x4d63f8
call fcn.00470957
mov eax, dword [ebp - 0x234]
add eax, 0xfffffff4
cmp eax, dword [0x4f0984]
je 0x47d08a
push eax
call fcn.004013aa
push 1
lea ecx, [ebp - 0x234]
call fcn.0047c197
pop ecx
push ebx
push dword [eax]
lea eax, [ebp - 0x21c]
push str.PlayListcommand
call fcn.00470957
mov eax, dword [ebp - 0x234]
add eax, 0xfffffff4
cmp eax, dword [0x4f0984]
je 0x47d0c2
push eax
call fcn.004013aa
cmp dword [ebp - 0x21c], ebx
je 0x47d0d6
push dword [ebp - 0x21c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [ebp - 0x224], ebx
je 0x47d0ea
push dword [ebp - 0x224]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [ebp - 0x220], ebx
je 0x47d0fe
push dword [ebp - 0x220]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp - 0x238]
add eax, 0xfffffff4
cmp eax, dword [0x4f0984]
je 0x47d115
push eax
call fcn.004013aa
xor eax, eax
inc eax
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
mov ecx, dword [ebp - 0x10]
pop ebx
call fcn.004c7b01
leave
ret