Function at 0x414f58
Capabilities:
Check for time delay via gettickcount
Check if file exists
Copy file
Create directory
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x828
cmp word [0x5011d8], 0
push ebx
push esi
push edi
mov edi, 0x104
jne 0x414f83
push 0x5015e8
push edi
push 0x5011d8
call fcn.0040c4d6
cmp word [0x500dc8], 0
mov esi, 0x500dc8
jne 0x414f9e
push 0x5011d8
push edi
push esi
call fcn.0040c4d6
cmp word [0x500fd0], 0
jne 0x414fb4
push esi
push edi
push 0x500fd0
call fcn.0040c4d6
xor ebx, ebx
push ebx
push esi
mov esi, dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
call esi
push ebx
push 0x5011d8
call esi
mov esi, dword [sym.imp.SHLWAPI.dll_PathCombineW]
push str.Winamp.m3u
push 0x500dc8
push 0x501f10
call esi
push str.Winamp.m3u8
push 0x500dc8
push 0x501d08
call esi
push str.Winamp.bm
push 0x5011d8
push 0x503770
call esi
push str.Winamp.bm8
push 0x5011d8
push 0x503978
call esi
push 0x503978
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x415032
push ebx
push 0x503978
push 0x503770
call dword [sym.imp.KERNEL32.dll_CopyFileW]
push str.Winamp.q1
push 0x5011d8
push 0x502118
call esi
push str.Winamp.q2
push 0x5011d8
push 0x502320
call esi
push 0x208
lea eax, [ebp - 0x828]
push ebx
push eax
call fcn.0049a3b0
mov ebx, dword [sym.imp.KERNEL32.dll_GetTempPathW]
lea eax, [ebp - 0x828]
add esp, 0xc
push eax
push edi
call ebx
push str.Winamp.tmp
lea eax, [ebp - 0x828]
push eax
push 0x502528
call esi
push str.demo.mp3
push 0x500dc8
push 0x503158
call esi
push str.jsapisec.ini
mov edi, 0x5011d8
push edi
push 0x503d88
call esi
push str.Pluginsgen_ml.ini
push edi
push 0x5017f0
call esi
cmp word [0x5019f8], 0
je 0x41511b
mov edi, 0x5019f8
push edi
call dword [sym.imp.SHLWAPI.dll_PathIsFileSpecW]
test eax, eax
jne 0x4150e1
push edi
call dword [sym.imp.SHLWAPI.dll_PathIsRelativeW]
test eax, eax
je 0x415129
push 0x208
lea eax, [ebp - 0x210]
push 0
push eax
call fcn.0049a3b0
add esp, 0xc
lea eax, [ebp - 0x210]
push edi
push 0x5011d8
push eax
call esi
push 0x104
lea eax, [ebp - 0x210]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_lstrcpynW]
jmp 0x415129
push str.Winamp.ini
push edi
mov edi, 0x5019f8
push edi
call esi
push edi
lea ecx, [ebp - 0x418]
call fcn.0040dbab
push eax
push 0x104
push 0x501c00
call fcn.00411dad
push dword [0x4f7388]
push 0x4ccc78
call fcn.00411eb7
pop ecx
pop ecx
mov edi, 0x4cda00
mov dword [0x4f7388], eax
push edi
push 0x5015e8
push 0x502f50
call esi
push str.Plugins
push 0x5015e8
push 0x502730
call esi
push str.System
push 0x5015e8
push 0x502938
call esi
push edi
mov edi, 0x5015e8
push edi
push 0x502f50
call esi
push 0x4cda2c
push edi
push 0x503b80
call esi
mov edi, str.Plugins
push edi
push 0x5015e8
push 0x502b40
call esi
push edi
push 0x5015e8
push 0x502d48
call esi
push 0x206
xor esi, esi
lea eax, [ebp - 0x20e]
push esi
push eax
call fcn.0049a3b0
xor eax, eax
mov edi, 0x104
mov word [ebp - 0x210], ax
lea eax, [ebp - 0x210]
push edi
push eax
push str.PluginDir
call fcn.00411f86
add esp, 0x18
mov dword [ebp - 4], 9
lea eax, [ebp - 0x210]
push 0x20
pop edx
movzx ecx, word [eax]
cmp cx, dx
je 0x41521f
cmp cx, word [ebp - 4]
jne 0x415225
inc eax
add eax, 1
jne 0x415211
test eax, eax
je 0x415240
cmp word [eax], si
je 0x415240
lea eax, [ebp - 0x210]
push eax
push edi
push 0x502730
call fcn.0040c4d6
push 0x208
lea eax, [ebp - 0x210]
push esi
push eax
call fcn.0049a3b0
push edi
lea eax, [ebp - 0x210]
push eax
push str.DSPDir
call fcn.00411f86
add esp, 0x18
lea eax, [ebp - 0x210]
push 0x20
pop edx
movzx ecx, word [eax]
cmp cx, dx
je 0x41527e
cmp cx, word [ebp - 4]
jne 0x415284
inc eax
add eax, 1
jne 0x415270
test eax, eax
je 0x41529f
cmp word [eax], si
je 0x41529f
lea eax, [ebp - 0x210]
push eax
push edi
push 0x502d48
call fcn.0040c4d6
push 0x208
lea eax, [ebp - 0x210]
push esi
push eax
call fcn.0049a3b0
push edi
lea eax, [ebp - 0x210]
push eax
push str.VISDir
call fcn.00411f86
add esp, 0x18
lea eax, [ebp - 0x210]
push 0x20
pop edx
movzx ecx, word [eax]
cmp cx, dx
je 0x4152dd
cmp cx, word [ebp - 4]
jne 0x4152e3
inc eax
add eax, 1
jne 0x4152cf
test eax, eax
je 0x4152fe
cmp word [eax], si
je 0x4152fe
lea eax, [ebp - 0x210]
push eax
push edi
push 0x502b40
call fcn.0040c4d6
push 0x208
lea eax, [ebp - 0x210]
push esi
push eax
call fcn.0049a3b0
push edi
lea eax, [ebp - 0x210]
push eax
push str.SkinDir
call fcn.00411f86
add esp, 0x18
lea eax, [ebp - 0x210]
push 0x20
pop edx
movzx ecx, word [eax]
cmp cx, dx
je 0x41533c
cmp cx, word [ebp - 4]
jne 0x415342
inc eax
add eax, 1
jne 0x41532e
test eax, eax
je 0x41535d
cmp word [eax], si
je 0x41535d
lea eax, [ebp - 0x210]
push eax
push edi
push 0x502f50
call fcn.0040c4d6
push 0x208
lea eax, [ebp - 0x210]
push esi
push eax
call fcn.0049a3b0
push edi
lea eax, [ebp - 0x210]
push eax
push str.LangDir
call fcn.00411f86
add esp, 0x18
lea eax, [ebp - 0x210]
push 0x20
pop edx
movzx ecx, word [eax]
cmp cx, dx
je 0x41539b
cmp cx, word [ebp - 4]
jne 0x4153a1
inc eax
add eax, 1
jne 0x41538d
test eax, eax
je 0x4153bc
cmp word [eax], si
je 0x4153bc
lea eax, [ebp - 0x210]
push eax
push edi
push 0x503b80
call fcn.0040c4d6
push 0x208
lea eax, [ebp - 0x620]
push esi
push eax
call fcn.0049a3b0
add esp, 0xc
lea eax, [ebp - 0x620]
push eax
push edi
call ebx
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
push 0x503360
call esi
mov edi, dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
push eax
push 0x4cda64
lea eax, [ebp - 0x620]
push eax
call edi
call fcn.0041267e
xor ebx, ebx
push ebx
push 0x4cda6c
push 0x503f90
call fcn.004a574d
add esp, 0xc
test eax, eax
je 0x415464
push ebx
push 0x4cda6c
push ebx
call fcn.004a574d
add esp, 0xc
test eax, eax
je 0x415464
push eax
push 0x4cda70
lea eax, [ebp - 8]
xorps xmm0, xmm0
push 4
push eax
movlpd qword [ebp - 8], xmm0
call fcn.0040adba
add esp, 0x10
lea eax, [ebp - 8]
push 4
push eax
call dword [sym.imp.USER32.dll_CharUpperBuffW]
push 0x503568
call esi
push eax
lea eax, [ebp - 8]
push eax
jmp 0x415471
push 0x503568
call esi
push eax
push 0x4cda78
lea eax, [ebp - 0x620]
push eax
call edi
movzx eax, byte [0x501d05]
push eax
push str.minst
call fcn.00411eb7
pop ecx
pop ecx
pop edi
pop esi
mov byte [0x501d05], al
pop ebx
leave
ret