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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x22c
cmp dword [0x47b49c], 0
jne 0x40ddce
push 0x104
lea eax, [ebp - 0x22c]
push eax
push dword [0x480940]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je 0x40ddce
push ebx
mov ebx, dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
push esi
push edi
lea eax, [ebp - 4]
push eax
push str.Winamp.File
mov edi, SysReAllocString
push edi
call ebx
test eax, eax
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jne 0x40d60b
push str.Winamp_media_file
push 0x124
lea eax, [ebp - 0x128]
push eax
call fcn.004025ff
lea eax, [ebp - 0x128]
push eax
push dword [ebp - 4]
call fcn.0040d1a3
pop ecx
pop ecx
push dword [ebp - 4]
call esi
lea eax, [ebp - 4]
push eax
push str.Winamp.FileDefaultIcon
push edi
call ebx
test eax, eax
jne 0x40d657
movzx eax, byte [0x472cd5]
push eax
lea eax, [ebp - 0x22c]
push eax
push 0x46a56c
mov eax, 0x124
lea edi, [ebp - 0x128]
call fcn.0040258b
mov eax, edi
push eax
push dword [ebp - 4]
call fcn.0040d1a3
add esp, 0x14
push dword [ebp - 4]
call esi
mov edi, SysReAllocString
lea eax, [ebp - 4]
push eax
push str.Winamp.File_shell
push edi
call ebx
test eax, eax
jne 0x40d68a
cmp byte [0x475e68], al
je 0x40d676
push str.Enqueue
jmp 0x40d67b
push 0x46a324
push dword [ebp - 4]
call fcn.0040d1a3
pop ecx
pop ecx
push dword [ebp - 4]
call esi
lea eax, [ebp - 4]
push eax
push str.Winamp.File_shellPlay
push edi
call ebx
test eax, eax
jne 0x40d6b7
push 0x84
xor ecx, ecx
call fcn.0040a416
push eax
push dword [ebp - 4]
call fcn.0040d1a3
add esp, 0xc
push dword [ebp - 4]
call esi
lea eax, [ebp - 4]
push eax
push str.Winamp.File_shellPlaycommand
push edi
call ebx
test eax, eax
jne 0x40d6fb
lea eax, [ebp - 0x22c]
push eax
push str.__s_____1_
mov eax, 0x124
lea edi, [ebp - 0x128]
call fcn.0040258b
mov eax, edi
push eax
push dword [ebp - 4]
call fcn.0040d1a3
add esp, 0x10
push dword [ebp - 4]
call esi
mov edi, SysReAllocString
lea eax, [ebp - 4]
push eax
push str.Winamp.File_shellopen
push edi
call ebx
test eax, eax
jne 0x40d71f
push 0x468a9b
push dword [ebp - 4]
call fcn.0040d1a3
pop ecx
pop ecx
push dword [ebp - 4]
call esi
lea eax, [ebp - 4]
push eax
push str.Winamp.File_shellopencommand
push edi
call ebx
test eax, eax
jne 0x40d763
lea eax, [ebp - 0x22c]
push eax
push str.__s_____1_
mov eax, 0x124
lea edi, [ebp - 0x128]
call fcn.0040258b
mov eax, edi
push eax
push dword [ebp - 4]
call fcn.0040d1a3
add esp, 0x10
push dword [ebp - 4]
call esi
mov edi, SysReAllocString
lea eax, [ebp - 4]
push eax
push str.Winamp.File_shellEnqueue
push edi
call ebx
test eax, eax
jne 0x40d790
push 0x85
xor ecx, ecx
call fcn.0040a416
push eax
push dword [ebp - 4]
call fcn.0040d1a3
add esp, 0xc
push dword [ebp - 4]
call esi
lea eax, [ebp - 4]
push eax
push str.Winamp.File_shellEnqueuecommand
push edi
call ebx
test eax, eax
jne 0x40d7d4
lea eax, [ebp - 0x22c]
push eax
push str.__s___ADD____1_
mov eax, 0x124
lea edi, [ebp - 0x128]
call fcn.0040258b
mov eax, edi
push eax
push dword [ebp - 4]
call fcn.0040d1a3
add esp, 0x10
push dword [ebp - 4]
call esi
mov edi, SysReAllocString
lea eax, [ebp - 4]
push eax
push str.Winamp.File_shellListBookmark
push edi
call ebx
test eax, eax
jne 0x40d801
push 0x91
xor ecx, ecx
call fcn.0040a416
push eax
push dword [ebp - 4]
call fcn.0040d1a3
add esp, 0xc
push dword [ebp - 4]
call esi
lea eax, [ebp - 4]
push eax
push str.Winamp.File_shellListBookmarkcommand
push edi
call ebx
test eax, eax
jne 0x40d845
lea eax, [ebp - 0x22c]
push eax
push str.__s___BOOKMARK____1_
mov eax, 0x124
lea edi, [ebp - 0x128]
call fcn.0040258b
mov eax, edi
push eax
push dword [ebp - 4]
call fcn.0040d1a3
add esp, 0x10
push dword [ebp - 4]
call esi
mov edi, SysReAllocString
lea eax, [ebp - 4]
push eax
push str.CLSID46986115_84D6_459c_8F95_52DD653E532E
push edi
call ebx
test eax, eax
jne 0x40d85a
push dword [ebp - 4]
call esi
lea eax, [ebp - 4]
push eax
push str.CLSID46986115_84D6_459c_8F95_52DD653E532ELocalServer32
push edi
call ebx
test eax, eax
jne 0x40d89e
lea eax, [ebp - 0x22c]
push eax
push str.__s_
mov eax, 0x124
lea edi, [ebp - 0x128]
call fcn.0040258b
mov eax, edi
push eax
push dword [ebp - 4]
call fcn.0040d1a3
add esp, 0x10
push dword [ebp - 4]
call esi
mov edi, SysReAllocString
lea eax, [ebp - 4]
push eax
push str.CLSID77A366BA_2BE4_4a1e_9263_7734AA3E99A2
push edi
call ebx
test eax, eax
jne 0x40d8b3
push dword [ebp - 4]
call esi
lea eax, [ebp - 4]
push eax
push str.CLSID77A366BA_2BE4_4a1e_9263_7734AA3E99A2LocalServer32
push edi
call ebx
test eax, eax
jne 0x40d8f7
lea eax, [ebp - 0x22c]
push eax
push str.__s_
mov eax, 0x124
lea edi, [ebp - 0x128]
call fcn.0040258b
mov eax, edi
push eax
push dword [ebp - 4]
call fcn.0040d1a3
add esp, 0x10
push dword [ebp - 4]
call esi
mov edi, SysReAllocString
lea eax, [ebp - 4]
push eax
push str.Winamp.File_shellopenDropTarget
push edi
call ebx
test eax, eax
jne 0x40d939
push str.46986115_84D6_459c_8F95_52DD653E532E
push 0x124
lea eax, [ebp - 0x128]
push eax
call fcn.004025ff
lea eax, [ebp - 0x128]
push eax
push str.Clsid
push dword [ebp - 4]
call fcn.0040d1c4
add esp, 0xc
push dword [ebp - 4]
call esi
lea eax, [ebp - 4]
push eax
push str.Winamp.File_shellPlayDropTarget
push edi
call ebx
test eax, eax
jne 0x40d97b
push str.46986115_84D6_459c_8F95_52DD653E532E
push 0x124
lea eax, [ebp - 0x128]
push eax
call fcn.004025ff
lea eax, [ebp - 0x128]
push eax
push str.Clsid
push dword [ebp - 4]
call fcn.0040d1c4
add esp, 0xc
push dword [ebp - 4]
call esi
lea eax, [ebp - 4]
push eax
push str.Winamp.File_shellEnqueueDropTarget
push edi
call ebx
test eax, eax
jne 0x40d9bd
push str.77A366BA_2BE4_4a1e_9263_7734AA3E99A2
push 0x124
lea eax, [ebp - 0x128]
push eax
call fcn.004025ff
lea eax, [ebp - 0x128]
push eax
push str.Clsid
push dword [ebp - 4]
call fcn.0040d1c4
add esp, 0xc
push dword [ebp - 4]
call esi
lea eax, [ebp - 4]
push eax
push str.Winamp.PlayList
push edi
call ebx
test eax, eax
jne 0x40da30
push str.Winamp_playlist_file
push 0x124
lea eax, [ebp - 0x128]
push eax
call fcn.004025ff
lea eax, [ebp - 0x128]
push eax
push dword [ebp - 4]
call fcn.0040d1a3
pop ecx
pop ecx
push 4
lea eax, [ebp - 0x128]
push eax
push 3
push 0
push str.EditFlags
push dword [ebp - 4]
mov byte [ebp - 0x128], 0
mov byte [ebp - 0x127], 0
mov byte [ebp - 0x126], 1
mov byte [ebp - 0x125], 0
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
push dword [ebp - 4]
call esi
lea eax, [ebp - 4]
push eax
push str.Winamp.PlayListDefaultIcon
push edi
call ebx
test eax, eax
jne 0x40da7c
movzx eax, byte [0x472cd6]
push eax
lea eax, [ebp - 0x22c]
push eax
push 0x46a56c
mov eax, 0x124
lea edi, [ebp - 0x128]
call fcn.0040258b
mov eax, edi
push eax
push dword [ebp - 4]
call fcn.0040d1a3
add esp, 0x14
push dword [ebp - 4]
call esi
mov edi, SysReAllocString
lea eax, [ebp - 4]
push eax
push str.Winamp.PlayList_shell
push edi
call ebx
test eax, eax
jne 0x40daaf
cmp byte [0x475e68], al
je 0x40da9b
push str.Enqueue
jmp 0x40daa0
push 0x46a324
push dword [ebp - 4]
call fcn.0040d1a3
pop ecx
pop ecx
push dword [ebp - 4]
call esi
lea eax, [ebp - 4]
push eax
push str.Winamp.PlayList_shellPlay
push edi
call ebx
test eax, eax
jne 0x40dadc
push 0x84
xor ecx, ecx
call fcn.0040a416
push eax
push dword [ebp - 4]
call fcn.0040d1a3
add esp, 0xc
push dword [ebp - 4]
call esi
lea eax, [ebp - 4]
push eax
push str.Winamp.PlayList_shellPlaycommand
push edi
call ebx
test eax, eax
jne 0x40db20
lea eax, [ebp - 0x22c]
push eax
push str.__s_____1_
mov eax, 0x124
lea edi, [ebp - 0x128]
call fcn.0040258b
mov eax, edi
push eax
push dword [ebp - 4]
call fcn.0040d1a3
add esp, 0x10
push dword [ebp - 4]
call esi
mov edi, SysReAllocString
lea eax, [ebp - 4]
push eax
push str.Winamp.PlayList_shellopen
push edi
call ebx
test eax, eax
jne 0x40db44
push 0x468a9b
push dword [ebp - 4]
call fcn.0040d1a3
pop ecx
pop ecx
push dword [ebp - 4]
call esi
lea eax, [ebp - 4]
push eax
push str.Winamp.PlayList_shellopencommand
push edi
call ebx
test eax, eax
jne 0x40db88
lea eax, [ebp - 0x22c]
push eax
push str.__s_____1_
mov eax, 0x124
lea edi, [ebp - 0x128]
call fcn.0040258b
mov eax, edi
push eax
push dword [ebp - 4]
call fcn.0040d1a3
add esp, 0x10
push dword [ebp - 4]
call esi
mov edi, SysReAllocString
lea eax, [ebp - 4]
push eax
push str.Winamp.PlayList_shellEnqueue
push edi
call ebx
test eax, eax
jne 0x40dbb5
push 0x85
xor ecx, ecx
call fcn.0040a416
push eax
push dword [ebp - 4]
call fcn.0040d1a3
add esp, 0xc
push dword [ebp - 4]
call esi
lea eax, [ebp - 4]
push eax
push str.Winamp.PlayList_shellEnqueuecommand
push edi
call ebx
test eax, eax
jne 0x40dbf9
lea eax, [ebp - 0x22c]
push eax
push str.__s___ADD____1_
mov eax, 0x124
lea edi, [ebp - 0x128]
call fcn.0040258b
mov eax, edi
push eax
push dword [ebp - 4]
call fcn.0040d1a3
add esp, 0x10
push dword [ebp - 4]
call esi
mov edi, SysReAllocString
lea eax, [ebp - 4]
push eax
push str.Winamp.PlayList_shellListBookmark
push edi
call ebx
test eax, eax
jne 0x40dc26
push 0x91
xor ecx, ecx
call fcn.0040a416
push eax
push dword [ebp - 4]
call fcn.0040d1a3
add esp, 0xc
push dword [ebp - 4]
call esi
lea eax, [ebp - 4]
push eax
push str.Winamp.PlayList_shellListBookmarkcommand
push edi
call ebx
test eax, eax
jne 0x40dc6a
lea eax, [ebp - 0x22c]
push eax
push str.__s___BOOKMARK____1_
mov eax, 0x124
lea edi, [ebp - 0x128]
call fcn.0040258b
mov eax, edi
push eax
push dword [ebp - 4]
call fcn.0040d1a3
add esp, 0x10
push dword [ebp - 4]
call esi
mov edi, SysReAllocString
lea eax, [ebp - 4]
push eax
push str.Winamp.SkinZip
push edi
call ebx
test eax, eax
jne 0x40dcdd
push str.Winamp_extension_installation_file
push 0x124
lea eax, [ebp - 0x128]
push eax
call fcn.004025ff
lea eax, [ebp - 0x128]
push eax
push dword [ebp - 4]
call fcn.0040d1a3
pop ecx
pop ecx
push 4
lea eax, [ebp - 0x128]
push eax
push 3
push 0
push str.EditFlags
push dword [ebp - 4]
mov byte [ebp - 0x128], 0
mov byte [ebp - 0x127], 0
mov byte [ebp - 0x126], 1
mov byte [ebp - 0x125], 0
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
push dword [ebp - 4]
call esi
lea eax, [ebp - 4]
push eax
push str.Winamp.SkinZipDefaultIcon
push edi
call ebx
test eax, eax
jne 0x40dd29
movzx eax, byte [0x472cd5]
push eax
lea eax, [ebp - 0x22c]
push eax
push 0x46a56c
mov eax, 0x124
lea edi, [ebp - 0x128]
call fcn.0040258b
mov eax, edi
push eax
push dword [ebp - 4]
call fcn.0040d1a3
add esp, 0x14
push dword [ebp - 4]
call esi
mov edi, SysReAllocString
lea eax, [ebp - 4]
push eax
push str.Winamp.SkinZip_shell
push edi
call ebx
test eax, eax
jne 0x40dd4d
push str.Install
push dword [ebp - 4]
call fcn.0040d1a3
pop ecx
pop ecx
push dword [ebp - 4]
call esi
lea eax, [ebp - 4]
push eax
push str.Winamp.SkinZip_shellinstall
push edi
call ebx
test eax, eax
jne 0x40dd71
push 0x468a9b
push dword [ebp - 4]
call fcn.0040d1a3
pop ecx
pop ecx
push dword [ebp - 4]
call esi
lea eax, [ebp - 4]
push eax
push str.Winamp.SkinZip_shellinstallcommand
push edi
call ebx
test eax, eax
jne 0x40ddb0
lea eax, [ebp - 0x22c]
push eax
push str.__s_____1_
mov eax, 0x124
lea edi, [ebp - 0x128]
call fcn.0040258b
mov eax, edi
push eax
push dword [ebp - 4]
call fcn.0040d1a3
add esp, 0x10
push dword [ebp - 4]
call esi
push 0
push str..wsz
lea eax, [ebp - 0x22c]
push eax
push str.interface_x_winamp_skin
call fcn.0040572d
add esp, 0x10
pop edi
pop esi
pop ebx
leave
ret