Function at 0x4090ac
Capabilities:
Delete registry value
Query or enumerate registry value
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18c
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov dword [ebp - 8], str.Winamp.File
cmp byte [edi], 0
je 0x409491
mov esi, dword [sym.imp.MSVCRT.dll__stricmp]
push 0x44b7f4
push edi
call esi
pop ecx
test eax, eax
pop ecx
je 0x4090ed
push 0x44b7f0
push edi
call esi
pop ecx
test eax, eax
pop ecx
jne 0x4090f4
mov dword [ebp - 8], str.Winamp.PlayList
push 0x44b6d0
push edi
call esi
pop ecx
test eax, eax
pop ecx
je 0x409110
push 0x44b7ec
push edi
call esi
pop ecx
test eax, eax
pop ecx
jne 0x409117
mov dword [ebp - 8], str.Winamp.SkinZip
push edi
lea eax, [ebp - 0x88]
push 0x44b700
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
xor ebx, ebx
add esp, 0xc
cmp dword [ebp + 0xc], ebx
je 0x4092e7
push 0x44b7f0
push edi
call esi
mov edi, dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
pop ecx
test eax, eax
pop ecx
mov ebx, 0x104
jne 0x409194
lea eax, [ebp - 0x18c]
push ebx
push eax
push dword [0x45bf10]
call edi
push 0
lea eax, [ebp - 0x18c]
push 0x44b7e4
push eax
push str.audio_x_scpls
call fcn.00409503
push 0
lea eax, [ebp - 0x18c]
push 0x44b7e4
push eax
push str.audio_scpls
call fcn.00409503
add esp, 0x20
push 0x44b7c4
push dword [ebp + 8]
call esi
pop ecx
test eax, eax
pop ecx
jne 0x4091e7
lea eax, [ebp - 0x18c]
push ebx
push eax
push dword [0x45bf10]
call edi
push 1
lea eax, [ebp - 0x18c]
push str..wma
push eax
push str.audio_x_ms_wma
call fcn.00409503
push 1
lea eax, [ebp - 0x18c]
push str..wma
push eax
push str.application_x_msdownload
call fcn.00409503
add esp, 0x20
push 0x44b7f4
push dword [ebp + 8]
call esi
pop ecx
test eax, eax
pop ecx
jne 0x40923a
lea eax, [ebp - 0x18c]
push ebx
push eax
push dword [0x45bf10]
call edi
push 0
lea eax, [ebp - 0x18c]
push 0x44b788
push eax
push str.audio_x_mpegurl
call fcn.00409503
push 0
lea eax, [ebp - 0x18c]
push 0x44b788
push eax
push str.audio_mpegurl
call fcn.00409503
add esp, 0x20
push 0x44b764
push dword [ebp + 8]
call esi
pop ecx
test eax, eax
pop ecx
jne 0x4092e2
lea eax, [ebp - 0x18c]
push ebx
push eax
push dword [0x45bf10]
call edi
xor edi, edi
mov esi, str..mp3
inc edi
lea eax, [ebp - 0x18c]
push edi
push esi
push eax
push str.audio_x_mpeg
call fcn.00409503
push edi
lea eax, [ebp - 0x18c]
push esi
push eax
push str.audio_x_mp3
call fcn.00409503
push edi
lea eax, [ebp - 0x18c]
push esi
push eax
push str.audio_x_mpg
call fcn.00409503
push edi
lea eax, [ebp - 0x18c]
push esi
push eax
push str.audio_mp3
call fcn.00409503
add esp, 0x40
lea eax, [ebp - 0x18c]
push edi
push esi
push eax
push str.audio_mpg
call fcn.00409503
push edi
lea eax, [ebp - 0x18c]
push esi
push eax
push str.audio_mpeg
call fcn.00409503
add esp, 0x20
xor ebx, ebx
jmp 0x4092ea
xor edi, edi
inc edi
jmp 0x4092de
xor edi, edi
inc edi
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x88]
push eax
push 0x80000000
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x409491
cmp dword [ebp + 0xc], ebx
je 0x4093ab
lea eax, [ebp + 8]
mov dword [ebp + 8], 0x80
push eax
lea eax, [ebp - 0x88]
push eax
push ebx
push ebx
push ebx
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
push dword [ebp - 8]
test eax, eax
jne 0x40938f
lea eax, [ebp - 0x88]
push eax
call sub.MSVCRT.dll_strcmp
pop ecx
test eax, eax
pop ecx
je 0x409483
lea eax, [ebp - 0x88]
push eax
call sub.MSVCRT.dll_strlen
pop ecx
inc eax
push eax
lea eax, [ebp - 0x88]
mov esi, dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
push eax
push edi
push ebx
push str.Winamp_Back
push dword [ebp - 4]
call esi
push dword [ebp - 8]
call sub.MSVCRT.dll_strlen
pop ecx
inc eax
push eax
push dword [ebp - 8]
push edi
push ebx
push ebx
push dword [ebp - 4]
call esi
jmp 0x409483
call sub.MSVCRT.dll_strlen
pop ecx
inc eax
push eax
push dword [ebp - 8]
push edi
push ebx
push ebx
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
jmp 0x409483
lea eax, [ebp + 0xc]
mov esi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
push eax
lea eax, [ebp - 0x88]
push eax
push ebx
push ebx
push ebx
push dword [ebp - 4]
mov dword [ebp + 0xc], 0x80
call esi
test eax, eax
jne 0x409483
push dword [ebp - 8]
lea eax, [ebp - 0x88]
push eax
call sub.MSVCRT.dll_strcmp
pop ecx
test eax, eax
pop ecx
jne 0x409483
lea eax, [ebp + 0xc]
mov dword [ebp + 0xc], 0x80
push eax
lea eax, [ebp - 0x88]
push eax
push ebx
push ebx
push str.Winamp_Back
push dword [ebp - 4]
call esi
test eax, eax
jne 0x409444
lea eax, [ebp - 0x88]
push eax
call sub.MSVCRT.dll_strlen
pop ecx
inc eax
push eax
lea eax, [ebp - 0x88]
push eax
push edi
push ebx
push ebx
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
test eax, eax
jne 0x409483
push str.Winamp_Back
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
jmp 0x409483
push ebx
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push dword [ebp + 8]
lea eax, [ebp - 0x88]
mov dword [ebp - 4], ebx
push 0x44b700
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
lea eax, [ebp - 0x88]
push eax
push 0x80000000
call fcn.00409496
add esp, 0x14
cmp dword [ebp - 4], ebx
je 0x409491
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
pop esi
pop ebx
leave
ret