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

Disassembly:
mov eax, 0x4ee3f1
call fcn.004eadec
sub esp, 0x238
mov eax, dword [0x516ad4]
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 [0x51a438]
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 0x4891be
cmp esi, ebx
jne 0x4891be
lea eax, [ebp - 0x23c]
push eax
xor eax, eax
inc eax
lea esi, [ebp - 0x238]
mov dword [ebp - 0x23c], 0x2e
call fcn.004035c1
mov esi, dword [ebp - 0x244]
push dword [ebp + 8]
lea eax, [ebp - 0x238]
push eax
call fcn.0040328b
mov dword [ebp - 0x23c], 0x104
mov dword [ebp - 0x220], ebx
mov dword [ebp - 0x224], ebx
cmp edi, ebx
mov byte [ebp - 4], 2
jne 0x489663
cmp esi, ebx
jne 0x489663
push str.SoftwareMicrosoftWindowsCurrentVersionExplorerFileExts_
lea edi, [ebp - 0x22c]
call fcn.004031b3
mov eax, dword [ebp - 0x238]
mov edi, dword [eax - 8]
push eax
lea eax, [ebp - 0x22c]
call fcn.0040363d
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 0x489297
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.004ae462
cmp eax, 5
jle 0x48927d
push 0x4fe614
push dword [ebp - 0x21c]
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
cmp dword [ebp - 0x21c], ebx
je 0x489297
push dword [ebp - 0x21c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x21c], ebx
mov eax, dword [0x51a438]
mov dword [ebp - 0x230], eax
push str.Audio
lea edi, [ebp - 0x240]
call fcn.004031b3
lea ecx, [ebp - 0x238]
push ecx
lea ecx, [ebp - 0x228]
push ecx
mov ecx, eax
call fcn.00403396
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x240]
add eax, 0xfffffff4
cmp eax, dword [0x51a43c]
je 0x4892e2
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.0047a008
test eax, eax
je 0x489364
mov eax, dword [ebp - 0x228]
add eax, 0xfffffff4
cmp eax, dword [0x51a43c]
je 0x489319
push eax
call fcn.004013aa
mov eax, dword [ebp - 0x230]
add eax, 0xfffffff4
cmp eax, dword [0x51a43c]
je 0x489330
push eax
call fcn.004013aa
cmp dword [ebp - 0x21c], ebx
je 0x489344
push dword [ebp - 0x21c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp - 0x22c]
add eax, 0xfffffff4
cmp eax, dword [0x51a43c]
je 0x489631
push eax
call fcn.004013aa
jmp 0x489631
mov eax, 0x105
lea ecx, [ebp - 0x230]
call fcn.00403308
push 0x4f7548
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.00403334
push ebx
push 0x2001f
push ebx
push ebx
push dword [ebp - 0x228]
xor edi, edi
push SysReAllocStringLen
lea eax, [ebp - 0x224]
call fcn.0047a008
test eax, eax
je 0x489421
mov eax, dword [ebp - 0x228]
add eax, 0xfffffff4
cmp eax, dword [0x51a43c]
je 0x4893d6
push eax
call fcn.004013aa
mov eax, dword [ebp - 0x230]
add eax, 0xfffffff4
cmp eax, dword [0x51a43c]
je 0x4893ed
push eax
call fcn.004013aa
cmp dword [ebp - 0x21c], ebx
je 0x489401
push dword [ebp - 0x21c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp - 0x22c]
add eax, 0xfffffff4
cmp eax, dword [0x51a43c]
je 0x48961d
push eax
call fcn.004013aa
jmp 0x48961d
push 1
push dword [ebp + 0xc]
mov edi, 0x4f7548
push edi
lea eax, [ebp - 0x224]
push eax
call fcn.0047a0a2
push 0x4fe5f8
lea ecx, [ebp - 0x224]
call fcn.0047a0cd
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 0x48947b
push 1
push dword [ebp - 0x230]
lea eax, [ebp - 0x220]
push str.Backup
push eax
call fcn.0047a0a2
push 1
push dword [ebp - 0x228]
lea eax, [ebp - 0x220]
push edi
push eax
call fcn.0047a0a2
cmp dword [ebp - 0x220], ebx
je 0x4894aa
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 0x48950b
push edi
push dword [ebp - 0x228]
call esi
test eax, eax
pop ecx
pop ecx
je 0x48950b
push 0x2001f
push edi
push SysReAllocStringLen
lea eax, [ebp - 0x220]
call fcn.00401247
test eax, eax
jne 0x48950b
push dword [ebp - 0x224]
push dword [ebp - 0x220]
call fcn.0047a806
cmp dword [ebp - 0x220], ebx
pop ecx
pop ecx
je 0x48950b
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 [0x51a438]
mov dword [ebp - 0x230], eax
mov eax, dword [ebp + 0x10]
cmp eax, ebx
je 0x489543
cmp word [eax], bx
je 0x489543
push eax
lea eax, [ebp - 0x230]
call fcn.00403266
jmp 0x48955e
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x230]
push str.__s__1
push eax
call fcn.004060d6
add esp, 0xc
mov esi, dword [ebp - 0x230]
push ebx
push esi
push 0x4fe5d0
lea eax, [ebp - 0x224]
call fcn.0047a051
lea eax, [esi - 0xc]
cmp eax, dword [0x51a43c]
je 0x489587
push eax
call fcn.004013aa
mov eax, dword [ebp - 0x228]
add eax, 0xfffffff4
cmp eax, dword [0x51a43c]
je 0x48959e
push eax
call fcn.004013aa
lea eax, [edi - 0xc]
cmp eax, dword [0x51a43c]
je 0x4895af
push eax
call fcn.004013aa
cmp dword [ebp - 0x21c], ebx
je 0x4895c3
push dword [ebp - 0x21c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp - 0x22c]
add eax, 0xfffffff4
cmp eax, dword [0x51a43c]
je 0x4895da
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.0047a008
test eax, eax
je 0x489698
cmp dword [ebp - 0x21c], ebx
je 0x48961d
push dword [ebp - 0x21c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [ebp - 0x224], ebx
je 0x489631
push dword [ebp - 0x224]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [ebp - 0x220], ebx
je 0x489645
push dword [ebp - 0x220]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp - 0x238]
add eax, 0xfffffff4
cmp eax, dword [0x51a43c]
je 0x48965c
push eax
call fcn.004013aa
xor eax, eax
jmp 0x48995e
push ebx
push 0x2001f
push ebx
push ebx
push dword [ebp + 8]
xor edi, edi
push SysReAllocStringLen
lea eax, [ebp - 0x224]
call fcn.0047a008
test eax, eax
je 0x4895da
cmp dword [ebp - 0x224], ebx
je 0x489645
push dword [ebp - 0x224]
jmp 0x48963f
cmp dword [ebp - 0x244], ebx
je 0x489706
push 0x81a8
lea eax, [ebp - 0x240]
call fcn.004017db
pop ecx
push ebx
push dword [eax]
lea eax, [ebp - 0x21c]
push 0x4fe5b0
call fcn.0047a051
mov eax, dword [ebp - 0x240]
add eax, 0xfffffff4
cmp eax, dword [0x51a43c]
je 0x4896db
push eax
call fcn.004013aa
push ebx
lea ecx, [ebp - 0x240]
call fcn.004889dd
pop ecx
push ebx
push dword [eax]
lea eax, [ebp - 0x21c]
push str.Playbackcommand
call fcn.0047a051
mov eax, dword [ebp - 0x240]
jmp 0x489884
cmp dword [ebp - 0x234], ebx
je 0x489836
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.0047a008
test eax, eax
jne 0x4897af
mov eax, dword [0x51a438]
mov dword [ebp - 0x228], eax
mov eax, 0x10f
lea ecx, [ebp - 0x228]
mov dword [ebp - 0x23c], 0x10e
call fcn.00403308
push 0x4f7548
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.00403334
mov esi, dword [ebp - 0x228]
push 1
push esi
push str.Backup
lea eax, [ebp - 0x22c]
push eax
call fcn.0047a0a2
lea eax, [esi - 0xc]
cmp eax, dword [0x51a43c]
je 0x4897af
push eax
call fcn.004013aa
push 0x81a9
lea eax, [ebp - 0x234]
call fcn.004017db
pop ecx
push ebx
push dword [eax]
lea eax, [ebp - 0x21c]
push 0x4fcd68
call fcn.0047a051
mov eax, dword [ebp - 0x234]
add eax, 0xfffffff4
cmp eax, dword [0x51a43c]
je 0x4897ea
push eax
call fcn.004013aa
push 1
lea ecx, [ebp - 0x234]
call fcn.004889dd
pop ecx
push ebx
push dword [eax]
lea eax, [ebp - 0x21c]
push str.PlayListcommand
call fcn.0047a051
mov eax, dword [ebp - 0x234]
add eax, 0xfffffff4
cmp eax, dword [0x51a43c]
je 0x489822
push eax
call fcn.004013aa
cmp dword [ebp - 0x22c], ebx
je 0x489836
push dword [ebp - 0x22c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push 1
mov esi, 0x4fa5a0
push esi
mov edi, 0x4f7548
push edi
lea eax, [ebp - 0x21c]
push eax
call fcn.0047a0a2
push ebx
push edi
push esi
lea eax, [ebp - 0x21c]
call fcn.0047a051
push ebx
lea ecx, [ebp - 0x234]
call fcn.004889dd
pop ecx
push ebx
push dword [eax]
lea eax, [ebp - 0x21c]
push str.opencommand
call fcn.0047a051
mov eax, dword [ebp - 0x234]
add eax, 0xfffffff4
cmp eax, dword [0x51a43c]
je 0x489895
push eax
call fcn.004013aa
push 0x81a9
lea eax, [ebp - 0x234]
call fcn.004017db
pop ecx
push ebx
push dword [eax]
lea eax, [ebp - 0x21c]
push 0x4fcd68
call fcn.0047a051
mov eax, dword [ebp - 0x234]
add eax, 0xfffffff4
cmp eax, dword [0x51a43c]
je 0x4898d0
push eax
call fcn.004013aa
push 1
lea ecx, [ebp - 0x234]
call fcn.004889dd
pop ecx
push ebx
push dword [eax]
lea eax, [ebp - 0x21c]
push str.PlayListcommand
call fcn.0047a051
mov eax, dword [ebp - 0x234]
add eax, 0xfffffff4
cmp eax, dword [0x51a43c]
je 0x489908
push eax
call fcn.004013aa
cmp dword [ebp - 0x21c], ebx
je 0x48991c
push dword [ebp - 0x21c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [ebp - 0x224], ebx
je 0x489930
push dword [ebp - 0x224]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [ebp - 0x220], ebx
je 0x489944
push dword [ebp - 0x220]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp - 0x238]
add eax, 0xfffffff4
cmp eax, dword [0x51a43c]
je 0x48995b
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.004eae3c
leave
ret