Function at 0x4067e5
Capabilities:
Check for time delay via gettickcount
Create directory
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x414
cmp byte [0x486ef8], 0
push ebx
push esi
push edi
mov ebx, 0x4844d0
mov edi, 0x104
jne 0x406810
push ebx
push edi
push 0x486ef8
call fcn.00402e02
xor eax, eax
cmp word [0x486ae8], ax
mov esi, 0x486ae8
jne 0x406842
push 0x103
push esi
push 0xffffffffffffffff
push 0x486ef8
push eax
push eax
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
test eax, eax
je 0x406842
and word [eax*2 + 0x486ae8], 0
cmp word [0x486cf0], 0
jne 0x406858
push esi
push edi
push 0x486cf0
call fcn.00467521
push 0
push esi
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
push 0
push 0x486ef8
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
push str.Winamp.m3u
push esi
push 0x4845d8
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
push str.Winamp.m3u8
push esi
push 0x4861b0
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
mov esi, dword [sym.imp.SHLWAPI.dll_PathCombineA]
push str.Winamp.pic
push 0x486ef8
push 0x4867d0
call esi
push str.Winamp.lks
push 0x486ef8
push 0x485d90
call esi
push str.Winamp.bm
push 0x486ef8
push 0x4849f8
call esi
push str.Winampmb.htm
push 0x486ef8
push 0x484b00
call esi
push str.Winamp.q1
push 0x486ef8
push 0x485448
call esi
push str.Winamp.q2
push 0x486ef8
push 0x485338
call esi
lea eax, [ebp - 0x414]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
push str.Winamp.tmp
lea eax, [ebp - 0x414]
push eax
push 0x4860a8
call esi
push str.demo.mp3
push 0x486ae8
push 0x4863b8
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
cmp byte [0x487000], 0
je 0x406981
push 0x487000
call dword [sym.imp.SHLWAPI.dll_PathIsFileSpecA]
test eax, eax
jne 0x406959
push 0x487000
call dword [sym.imp.SHLWAPI.dll_PathIsRelativeA]
test eax, eax
je 0x406992
push 0x487000
push 0x486ef8
lea eax, [ebp - 0x108]
push eax
call esi
push edi
lea eax, [ebp - 0x108]
push eax
push 0x487000
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
jmp 0x406992
push str.Winamp.ini
push 0x486ef8
push 0x487000
call esi
push dword [0x4823c0]
push str.utf8
call fcn.004052c1
push 0
push ebx
mov dword [0x4823c0], eax
call fcn.00402cf8
add esp, 0x10
push 0x473d04
push eax
push 0x484e20
mov dword [ebp - 4], eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
push dword [ebp - 4]
call dword [sym.imp.NSCRT.dll_free]
mov dword [esp], str.Plugins
push ebx
push 0x485760
call esi
push str.System
push ebx
push 0x4848f0
call esi
push 0
push ebx
call fcn.00402cf8
pop ecx
pop ecx
push 0x473d04
mov esi, eax
push esi
push 0x484e20
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
push esi
mov esi, dword [sym.imp.NSCRT.dll_free]
call esi
push 0
push ebx
call fcn.00402cf8
add esp, 0xc
push 0x473ce8
mov ebx, eax
push ebx
push 0x485868
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
push ebx
call esi
pop ecx
mov esi, 0x485760
push esi
push edi
push 0x4847e8
call fcn.00402e02
push esi
push edi
mov ebx, 0x485a78
push ebx
call fcn.00402e02
push edi
lea eax, [ebp - 0x108]
push eax
push str.PluginDir
mov byte [ebp - 0x108], 0
call fcn.004056ca
add esp, 0xc
lea eax, [ebp - 0x108]
mov cl, byte [eax]
cmp cl, 0x20
je 0x406a7f
cmp cl, 9
jne 0x406a82
inc eax
jmp 0x406a73
cmp byte [eax], 0
je 0x406a95
lea eax, [ebp - 0x108]
push eax
push edi
push esi
call fcn.00402e02
push edi
lea eax, [ebp - 0x108]
push eax
push str.DSPDir
mov byte [ebp - 0x108], 0
call fcn.004056ca
add esp, 0xc
lea eax, [ebp - 0x108]
mov cl, byte [eax]
cmp cl, 0x20
je 0x406ac3
cmp cl, 9
jne 0x406ac6
inc eax
jmp 0x406ab7
cmp byte [eax], 0
je 0x406ad9
lea eax, [ebp - 0x108]
push eax
push edi
push ebx
call fcn.00402e02
push edi
lea eax, [ebp - 0x108]
push eax
push str.VISDir
mov byte [ebp - 0x108], 0
call fcn.004056ca
add esp, 0xc
lea eax, [ebp - 0x108]
mov cl, byte [eax]
cmp cl, 0x20
je 0x406b07
cmp cl, 9
jne 0x406b0a
inc eax
jmp 0x406afb
cmp byte [eax], 0
je 0x406b21
lea eax, [ebp - 0x108]
push eax
push edi
push 0x4847e8
call fcn.00402e02
push edi
lea eax, [ebp - 0x310]
push eax
xor esi, esi
push str.SkinDir
mov word [ebp - 0x310], si
call fcn.004052db
add esp, 0xc
lea eax, [ebp - 0x310]
mov cx, word [eax]
cmp cx, 0x20
je 0x406b54
cmp cx, 9
jne 0x406b58
inc eax
inc eax
jmp 0x406b45
cmp word [eax], si
je 0x406b6f
lea eax, [ebp - 0x310]
push eax
push edi
push 0x484e20
call fcn.00467521
push edi
lea eax, [ebp - 0x310]
push eax
push str.LangDir
mov word [ebp - 0x310], si
call fcn.004052db
add esp, 0xc
lea eax, [ebp - 0x310]
mov cx, word [eax]
cmp cx, 0x20
je 0x406ba0
cmp cx, 9
jne 0x406ba4
inc eax
inc eax
jmp 0x406b91
cmp word [eax], si
je 0x406bbb
lea eax, [ebp - 0x310]
push eax
push edi
push 0x485868
call fcn.00467521
mov esi, dword [sym.imp.KERNEL32.dll_GetTempPathW]
lea eax, [ebp - 0x310]
push eax
push edi
call esi
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
push 0x4865c0
call ebx
push eax
push 0x473cb4
lea eax, [ebp - 0x310]
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
lea eax, [ebp - 0x310]
push eax
push edi
call esi
push 0x485b80
call ebx
push eax
push 0x473cac
lea eax, [ebp - 0x310]
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
movzx eax, byte [0x4867c9]
push eax
push str.minst
call fcn.004052c1
pop ecx
pop ecx
pop edi
pop esi
mov byte [0x4867c9], al
pop ebx
leave
ret