Function at 0x4094a8
Capabilities:
Persist via default file association registry key
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x230
lea eax, [ebp - 0x230]
push 0x104
push eax
push dword [0x4618b0]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je 0x409f1c
push ebx
push esi
lea eax, [ebp - 4]
push edi
push eax
push str.Winamp.File
push SysReAllocStringLen
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
mov esi, dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov edi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor ebx, ebx
test eax, eax
jne 0x409531
lea eax, [ebp - 0x12c]
push str.Winamp_media_file
push eax
call fcn.0043cfd0
lea eax, [ebp - 0x12c]
push eax
call fcn.0043d4e0
add esp, 0xc
inc eax
push eax
lea eax, [ebp - 0x12c]
push eax
push 1
push ebx
push ebx
push dword [ebp - 4]
call esi
push dword [ebp - 4]
call edi
lea eax, [ebp - 4]
push eax
push str.Winamp.FileDefaultIcon
push SysReAllocStringLen
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x409590
movzx eax, byte [0x44e0bd]
push eax
lea eax, [ebp - 0x230]
push eax
lea eax, [ebp - 0x12c]
push str._s__d
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
lea eax, [ebp - 0x12c]
push eax
call fcn.0043d4e0
add esp, 0x14
inc eax
push eax
lea eax, [ebp - 0x12c]
push eax
push 1
push ebx
push ebx
push dword [ebp - 4]
call esi
push dword [ebp - 4]
call edi
lea eax, [ebp - 4]
push eax
push str.Winamp.File_shell
push SysReAllocStringLen
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x4095ce
cmp byte [0x463407], bl
je 0x4095b9
push 8
push str.Enqueue
jmp 0x4095c0
push 5
push str.Play
push 1
push ebx
push ebx
push dword [ebp - 4]
call esi
push dword [ebp - 4]
call edi
lea eax, [ebp - 4]
push eax
push str.Winamp.File_shellPlay
push SysReAllocStringLen
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x409611
push ebx
push ebx
push 0x84
call fcn.00433097
push eax
mov dword [ebp - 8], eax
call fcn.0043d4e0
add esp, 0x10
inc eax
push eax
push dword [ebp - 8]
push 1
push ebx
push ebx
push dword [ebp - 4]
call esi
push dword [ebp - 4]
call edi
lea eax, [ebp - 4]
push eax
push str.Winamp.File_shellPlaycommand
push SysReAllocStringLen
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x409668
lea eax, [ebp - 0x230]
push eax
lea eax, [ebp - 0x12c]
push str.__s_____1_
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
lea eax, [ebp - 0x12c]
push eax
call fcn.0043d4e0
add esp, 0x10
inc eax
push eax
lea eax, [ebp - 0x12c]
push eax
push 1
push ebx
push ebx
push dword [ebp - 4]
call esi
push dword [ebp - 4]
call edi
lea eax, [ebp - 4]
push eax
push str.Winamp.File_shellopen
push SysReAllocStringLen
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x409695
push 1
push 0x4564f8
push 1
push ebx
push ebx
push dword [ebp - 4]
call esi
push dword [ebp - 4]
call edi
lea eax, [ebp - 4]
push eax
push str.Winamp.File_shellopencommand
push SysReAllocStringLen
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x4096ec
lea eax, [ebp - 0x230]
push eax
lea eax, [ebp - 0x12c]
push str.__s_____1_
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
lea eax, [ebp - 0x12c]
push eax
call fcn.0043d4e0
add esp, 0x10
inc eax
push eax
lea eax, [ebp - 0x12c]
push eax
push 1
push ebx
push ebx
push dword [ebp - 4]
call esi
push dword [ebp - 4]
call edi
lea eax, [ebp - 4]
push eax
push str.Winamp.File_shellEnqueue
push SysReAllocStringLen
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x40972f
push ebx
push ebx
push 0x85
call fcn.00433097
push eax
mov dword [ebp - 8], eax
call fcn.0043d4e0
add esp, 0x10
inc eax
push eax
push dword [ebp - 8]
push 1
push ebx
push ebx
push dword [ebp - 4]
call esi
push dword [ebp - 4]
call edi
lea eax, [ebp - 4]
push eax
push str.Winamp.File_shellEnqueuecommand
push SysReAllocStringLen
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x409786
lea eax, [ebp - 0x230]
push eax
lea eax, [ebp - 0x12c]
push str.__s___ADD____1_
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
lea eax, [ebp - 0x12c]
push eax
call fcn.0043d4e0
add esp, 0x10
inc eax
push eax
lea eax, [ebp - 0x12c]
push eax
push 1
push ebx
push ebx
push dword [ebp - 4]
call esi
push dword [ebp - 4]
call edi
lea eax, [ebp - 4]
push eax
push str.Winamp.File_shellListBookmark
push SysReAllocStringLen
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x4097c9
push ebx
push ebx
push 0x91
call fcn.00433097
push eax
mov dword [ebp - 8], eax
call fcn.0043d4e0
add esp, 0x10
inc eax
push eax
push dword [ebp - 8]
push 1
push ebx
push ebx
push dword [ebp - 4]
call esi
push dword [ebp - 4]
call edi
lea eax, [ebp - 4]
push eax
push str.Winamp.File_shellListBookmarkcommand
push SysReAllocStringLen
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x409820
lea eax, [ebp - 0x230]
push eax
lea eax, [ebp - 0x12c]
push str.__s___BOOKMARK____1_
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
lea eax, [ebp - 0x12c]
push eax
call fcn.0043d4e0
add esp, 0x10
inc eax
push eax
lea eax, [ebp - 0x12c]
push eax
push 1
push ebx
push ebx
push dword [ebp - 4]
call esi
push dword [ebp - 4]
call edi
lea eax, [ebp - 4]
push eax
push str.CLSID46986115_84D6_459c_8F95_52DD653E532E
push SysReAllocStringLen
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x40983d
push dword [ebp - 4]
call edi
lea eax, [ebp - 4]
push eax
push str.CLSID46986115_84D6_459c_8F95_52DD653E532ELocalServer32
push SysReAllocStringLen
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x409894
lea eax, [ebp - 0x230]
push eax
lea eax, [ebp - 0x12c]
push str.__s_
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
lea eax, [ebp - 0x12c]
push eax
call fcn.0043d4e0
add esp, 0x10
inc eax
push eax
lea eax, [ebp - 0x12c]
push eax
push 1
push ebx
push ebx
push dword [ebp - 4]
call esi
push dword [ebp - 4]
call edi
lea eax, [ebp - 4]
push eax
push str.CLSID77A366BA_2BE4_4a1e_9263_7734AA3E99A2
push SysReAllocStringLen
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x4098b1
push dword [ebp - 4]
call edi
lea eax, [ebp - 4]
push eax
push str.CLSID77A366BA_2BE4_4a1e_9263_7734AA3E99A2LocalServer32
push SysReAllocStringLen
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x409908
lea eax, [ebp - 0x230]
push eax
lea eax, [ebp - 0x12c]
push str.__s_
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
lea eax, [ebp - 0x12c]
push eax
call fcn.0043d4e0
add esp, 0x10
inc eax
push eax
lea eax, [ebp - 0x12c]
push eax
push 1
push ebx
push ebx
push dword [ebp - 4]
call esi
push dword [ebp - 4]
call edi
lea eax, [ebp - 4]
push eax
push str.Winamp.File_shellopenDropTarget
push SysReAllocStringLen
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x40995c
lea eax, [ebp - 0x12c]
push str.46986115_84D6_459c_8F95_52DD653E532E
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
lea eax, [ebp - 0x12c]
push eax
call fcn.0043d4e0
add esp, 0xc
inc eax
push eax
lea eax, [ebp - 0x12c]
push eax
push 1
push ebx
push str.Clsid
push dword [ebp - 4]
call esi
push dword [ebp - 4]
call edi
lea eax, [ebp - 4]
push eax
push str.Winamp.File_shellPlayDropTarget
push SysReAllocStringLen
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x4099b0
lea eax, [ebp - 0x12c]
push str.46986115_84D6_459c_8F95_52DD653E532E
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
lea eax, [ebp - 0x12c]
push eax
call fcn.0043d4e0
add esp, 0xc
inc eax
push eax
lea eax, [ebp - 0x12c]
push eax
push 1
push ebx
push str.Clsid
push dword [ebp - 4]
call esi
push dword [ebp - 4]
call edi
lea eax, [ebp - 4]
push eax
push str.Winamp.File_shellEnqueueDropTarget
push SysReAllocStringLen
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x409a04
lea eax, [ebp - 0x12c]
push str.77A366BA_2BE4_4a1e_9263_7734AA3E99A2
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
lea eax, [ebp - 0x12c]
push eax
call fcn.0043d4e0
add esp, 0xc
inc eax
push eax
lea eax, [ebp - 0x12c]
push eax
push 1
push ebx
push str.Clsid
push dword [ebp - 4]
call esi
push dword [ebp - 4]
call edi
lea eax, [ebp - 4]
push eax
push str.Winamp.Playlist
push SysReAllocStringLen
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x409a82
lea eax, [ebp - 0x12c]
push str.Winamp_playlist_file
push eax
call fcn.0043cfd0
lea eax, [ebp - 0x12c]
push eax
call fcn.0043d4e0
add esp, 0xc
inc eax
push eax
lea eax, [ebp - 0x12c]
push eax
push 1
push ebx
push ebx
push dword [ebp - 4]
call esi
lea eax, [ebp - 0x12c]
push 4
push eax
push 3
push ebx
push str.EditFlags
push dword [ebp - 4]
mov byte [ebp - 0x12c], bl
mov byte [ebp - 0x12b], bl
mov byte [ebp - 0x12a], 1
mov byte [ebp - 0x129], bl
call esi
push dword [ebp - 4]
call edi
lea eax, [ebp - 4]
push eax
push str.Winamp.PlayListDefaultIcon
push SysReAllocStringLen
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x409ae1
movzx eax, byte [0x44e0be]
push eax
lea eax, [ebp - 0x230]
push eax
lea eax, [ebp - 0x12c]
push str._s__d
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
lea eax, [ebp - 0x12c]
push eax
call fcn.0043d4e0
add esp, 0x14
inc eax
push eax
lea eax, [ebp - 0x12c]
push eax
push 1
push ebx
push ebx
push dword [ebp - 4]
call esi
push dword [ebp - 4]
call edi
lea eax, [ebp - 4]
push eax
push str.Winamp.PlayList_shell
push SysReAllocStringLen
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x409b1f
cmp byte [0x463407], bl
je 0x409b0a
push 8
push str.Enqueue
jmp 0x409b11
push 5
push str.Play
push 1
push ebx
push ebx
push dword [ebp - 4]
call esi
push dword [ebp - 4]
call edi
lea eax, [ebp - 4]
push eax
push str.Winamp.PlayList_shellPlay
push SysReAllocStringLen
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x409b62
push ebx
push ebx
push 0x84
call fcn.00433097
push eax
mov dword [ebp - 8], eax
call fcn.0043d4e0
add esp, 0x10
inc eax
push eax
push dword [ebp - 8]
push 1
push ebx
push ebx
push dword [ebp - 4]
call esi
push dword [ebp - 4]
call edi
lea eax, [ebp - 4]
push eax
push str.Winamp.PlayList_shellPlaycommand
push SysReAllocStringLen
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x409bb9
lea eax, [ebp - 0x230]
push eax
lea eax, [ebp - 0x12c]
push str.__s_____1_
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
lea eax, [ebp - 0x12c]
push eax
call fcn.0043d4e0
add esp, 0x10
inc eax
push eax
lea eax, [ebp - 0x12c]
push eax
push 1
push ebx
push ebx
push dword [ebp - 4]
call esi
push dword [ebp - 4]
call edi
lea eax, [ebp - 4]
push eax
push str.Winamp.PlayList_shellopen
push SysReAllocStringLen
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x409be6
push 1
push 0x4564f8
push 1
push ebx
push ebx
push dword [ebp - 4]
call esi
push dword [ebp - 4]
call edi
lea eax, [ebp - 4]
push eax
push str.Winamp.PlayList_shellopencommand
push SysReAllocStringLen
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x409c3d
lea eax, [ebp - 0x230]
push eax
lea eax, [ebp - 0x12c]
push str.__s_____1_
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
lea eax, [ebp - 0x12c]
push eax
call fcn.0043d4e0
add esp, 0x10
inc eax
push eax
lea eax, [ebp - 0x12c]
push eax
push 1
push ebx
push ebx
push dword [ebp - 4]
call esi
push dword [ebp - 4]
call edi
lea eax, [ebp - 4]
push eax
push str.Winamp.PlayList_shellEnqueue
push SysReAllocStringLen
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x409c80
push ebx
push ebx
push 0x85
call fcn.00433097
push eax
mov dword [ebp - 8], eax
call fcn.0043d4e0
add esp, 0x10
inc eax
push eax
push dword [ebp - 8]
push 1
push ebx
push ebx
push dword [ebp - 4]
call esi
push dword [ebp - 4]
call edi
lea eax, [ebp - 4]
push eax
push str.Winamp.PlayList_shellEnqueuecommand
push SysReAllocStringLen
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x409cd7
lea eax, [ebp - 0x230]
push eax
lea eax, [ebp - 0x12c]
push str.__s___ADD____1_
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
lea eax, [ebp - 0x12c]
push eax
call fcn.0043d4e0
add esp, 0x10
inc eax
push eax
lea eax, [ebp - 0x12c]
push eax
push 1
push ebx
push ebx
push dword [ebp - 4]
call esi
push dword [ebp - 4]
call edi
lea eax, [ebp - 4]
push eax
push str.Winamp.PlayList_shellListBookmark
push SysReAllocStringLen
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x409d1a
push ebx
push ebx
push 0x91
call fcn.00433097
push eax
mov dword [ebp - 8], eax
call fcn.0043d4e0
add esp, 0x10
inc eax
push eax
push dword [ebp - 8]
push 1
push ebx
push ebx
push dword [ebp - 4]
call esi
push dword [ebp - 4]
call edi
lea eax, [ebp - 4]
push eax
push str.Winamp.PlayList_shellListBookmarkcommand
push SysReAllocStringLen
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x409d71
lea eax, [ebp - 0x230]
push eax
lea eax, [ebp - 0x12c]
push str.__s___BOOKMARK____1_
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
lea eax, [ebp - 0x12c]
push eax
call fcn.0043d4e0
add esp, 0x10
inc eax
push eax
lea eax, [ebp - 0x12c]
push eax
push 1
push ebx
push ebx
push dword [ebp - 4]
call esi
push dword [ebp - 4]
call edi
lea eax, [ebp - 4]
push eax
push str.Winamp.SkinZip
push SysReAllocStringLen
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x409def
lea eax, [ebp - 0x12c]
push str.Winamp_extension_installation_file
push eax
call fcn.0043cfd0
lea eax, [ebp - 0x12c]
push eax
call fcn.0043d4e0
add esp, 0xc
inc eax
push eax
lea eax, [ebp - 0x12c]
push eax
push 1
push ebx
push ebx
push dword [ebp - 4]
call esi
lea eax, [ebp - 0x12c]
push 4
push eax
push 3
push ebx
push str.EditFlags
push dword [ebp - 4]
mov byte [ebp - 0x12c], bl
mov byte [ebp - 0x12b], bl
mov byte [ebp - 0x12a], 1
mov byte [ebp - 0x129], bl
call esi
push dword [ebp - 4]
call edi
lea eax, [ebp - 4]
push eax
push str.Winamp.SkinZipDefaultIcon
push SysReAllocStringLen
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x409e4e
movzx eax, byte [0x44e0bd]
push eax
lea eax, [ebp - 0x230]
push eax
lea eax, [ebp - 0x12c]
push str._s__d
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
lea eax, [ebp - 0x12c]
push eax
call fcn.0043d4e0
add esp, 0x14
inc eax
push eax
lea eax, [ebp - 0x12c]
push eax
push 1
push ebx
push ebx
push dword [ebp - 4]
call esi
push dword [ebp - 4]
call edi
lea eax, [ebp - 4]
push eax
push str.Winamp.SkinZip_shell
push SysReAllocStringLen
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x409e7b
push 8
push str.Install
push 1
push ebx
push ebx
push dword [ebp - 4]
call esi
push dword [ebp - 4]
call edi
lea eax, [ebp - 4]
push eax
push str.Winamp.SkinZip_shellinstall
push SysReAllocStringLen
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x409ea8
push 1
push 0x4564f8
push 1
push ebx
push ebx
push dword [ebp - 4]
call esi
push dword [ebp - 4]
call edi
lea eax, [ebp - 4]
push eax
push str.Winamp.SkinZip_shellinstallcommand
push SysReAllocStringLen
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x409eff
lea eax, [ebp - 0x230]
push eax
lea eax, [ebp - 0x12c]
push str.__s_____1_
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
lea eax, [ebp - 0x12c]
push eax
call fcn.0043d4e0
add esp, 0x10
inc eax
push eax
lea eax, [ebp - 0x12c]
push eax
push 1
push ebx
push ebx
push dword [ebp - 4]
call esi
push dword [ebp - 4]
call edi
push ebx
lea eax, [ebp - 0x230]
push 0x44e854
push eax
push str.interface_x_winamp_skin
call fcn.0040933e
add esp, 0x10
pop edi
pop esi
pop ebx
leave
ret