Function at 0x40966d
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 [0x45bf10]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je 0x40a0e1
push ebx
push esi
lea eax, [ebp - 4]
push edi
push eax
push str.Winamp.File
push 0x80000000
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 0x4096f6
lea eax, [ebp - 0x12c]
push str.Winamp_
push eax
call sub.MSVCRT.dll_strcpy
lea eax, [ebp - 0x12c]
push eax
call sub.MSVCRT.dll_strlen
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 0x80000000
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x409755
movzx eax, byte [0x44ae4d]
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 sub.MSVCRT.dll_strlen
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 0x80000000
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x409793
cmp byte [0x45e0e7], bl
je 0x40977e
push 8
push str.Enqueue
jmp 0x409785
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 0x80000000
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x4097d6
push ebx
push ebx
push 0x84
call fcn.004394a8
push eax
mov dword [ebp - 8], eax
call sub.MSVCRT.dll_strlen
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 0x80000000
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x40982d
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 sub.MSVCRT.dll_strlen
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 0x80000000
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x40985a
push 1
push 0x450890
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 0x80000000
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x4098b1
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 sub.MSVCRT.dll_strlen
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 0x80000000
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x4098f4
push ebx
push ebx
push 0x85
call fcn.004394a8
push eax
mov dword [ebp - 8], eax
call sub.MSVCRT.dll_strlen
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 0x80000000
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x40994b
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 sub.MSVCRT.dll_strlen
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 0x80000000
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x40998e
push ebx
push ebx
push 0x91
call fcn.004394a8
push eax
mov dword [ebp - 8], eax
call sub.MSVCRT.dll_strlen
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 0x80000000
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x4099e5
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 sub.MSVCRT.dll_strlen
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 0x80000000
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x409a02
push dword [ebp - 4]
call edi
lea eax, [ebp - 4]
push eax
push str.CLSID46986115_84D6_459c_8F95_52DD653E532ELocalServer32
push 0x80000000
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x409a59
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 sub.MSVCRT.dll_strlen
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 0x80000000
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x409a76
push dword [ebp - 4]
call edi
lea eax, [ebp - 4]
push eax
push str.CLSID77A366BA_2BE4_4a1e_9263_7734AA3E99A2LocalServer32
push 0x80000000
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x409acd
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 sub.MSVCRT.dll_strlen
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 0x80000000
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x409b21
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 sub.MSVCRT.dll_strlen
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 0x80000000
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x409b75
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 sub.MSVCRT.dll_strlen
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 0x80000000
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x409bc9
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 sub.MSVCRT.dll_strlen
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 0x80000000
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x409c47
lea eax, [ebp - 0x12c]
push 0x44ba74
push eax
call sub.MSVCRT.dll_strcpy
lea eax, [ebp - 0x12c]
push eax
call sub.MSVCRT.dll_strlen
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 0x80000000
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x409ca6
movzx eax, byte [0x44ae4e]
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 sub.MSVCRT.dll_strlen
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 0x80000000
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x409ce4
cmp byte [0x45e0e7], bl
je 0x409ccf
push 8
push str.Enqueue
jmp 0x409cd6
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 0x80000000
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x409d27
push ebx
push ebx
push 0x84
call fcn.004394a8
push eax
mov dword [ebp - 8], eax
call sub.MSVCRT.dll_strlen
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 0x80000000
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x409d7e
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 sub.MSVCRT.dll_strlen
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 0x80000000
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x409dab
push 1
push 0x450890
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 0x80000000
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x409e02
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 sub.MSVCRT.dll_strlen
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 0x80000000
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x409e45
push ebx
push ebx
push 0x85
call fcn.004394a8
push eax
mov dword [ebp - 8], eax
call sub.MSVCRT.dll_strlen
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 0x80000000
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x409e9c
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 sub.MSVCRT.dll_strlen
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 0x80000000
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x409edf
push ebx
push ebx
push 0x91
call fcn.004394a8
push eax
mov dword [ebp - 8], eax
call sub.MSVCRT.dll_strlen
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 0x80000000
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x409f36
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 sub.MSVCRT.dll_strlen
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 0x80000000
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x409fb4
lea eax, [ebp - 0x12c]
push str.Winamp__
push eax
call sub.MSVCRT.dll_strcpy
lea eax, [ebp - 0x12c]
push eax
call sub.MSVCRT.dll_strlen
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 0x80000000
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x40a013
movzx eax, byte [0x44ae4d]
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 sub.MSVCRT.dll_strlen
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 0x80000000
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x40a040
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 0x80000000
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x40a06d
push 1
push 0x450890
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 0x80000000
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x40a0c4
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 sub.MSVCRT.dll_strlen
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 0x44b6d0
push eax
push str.interface_x_winamp_skin
call fcn.00409503
add esp, 0x10
pop edi
pop esi
pop ebx
leave
ret