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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x414
cmp byte [0x4a08b8], 0
push ebx
push esi
push edi
mov edi, 0x103
mov ebx, 0x49d770
mov esi, 0x4a08b8
jne 0x407165
xor eax, eax
push eax
push eax
push edi
push esi
push 0xffffffffffffffff
push ebx
push eax
push eax
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
test eax, eax
je 0x407165
mov byte [eax + 0x4a08b8], 0
cmp word [0x4a04a8], 0
jne 0x407192
push edi
mov edi, 0x4a04a8
push edi
push 0xffffffffffffffff
push esi
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
test eax, eax
je 0x407197
and word [eax*2 + 0x4a04a8], 0
jmp 0x407197
mov edi, 0x4a04a8
cmp word [0x4a06b0], 0
jne 0x4071b1
push edi
push 0x104
push 0x4a06b0
call fcn.0047aaff
push 0
push edi
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
push 0
push esi
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
mov esi, dword [sym.imp.SHLWAPI.dll_PathCombineW]
push str.Winamp.m3u
push edi
push 0x49d978
call esi
push str.Winamp.m3u8
push edi
push 0x49fb70
call esi
mov edi, dword [sym.imp.SHLWAPI.dll_PathCombineA]
push str.Winamp.pic
push 0x4a08b8
push 0x4a0190
call edi
push str.Winamp.lks
push 0x4a08b8
push 0x49f750
call edi
push str.Winamp.bm
push 0x4a08b8
push 0x49dea0
call edi
push str.Winampmb.htm
push 0x4a08b8
push 0x49dfa8
call edi
push str.Winamp.q1
push 0x4a08b8
push 0x49ed08
call edi
push str.Winamp.q2
push 0x4a08b8
push 0x49e9e8
call edi
lea eax, [ebp - 0x414]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
push str.Winamp.tmp
lea eax, [ebp - 0x414]
push eax
push 0x49fa68
call edi
push str.demo.mp3
push 0x4a04a8
push 0x49fd78
call esi
push 0
push 0x4a08b8
call fcn.00402cab
pop ecx
pop ecx
push str.jsapisec.ini
push eax
push 0x49eaf8
mov dword [ebp - 4], eax
call esi
push dword [ebp - 4]
call dword [sym.imp.NSCRT.dll_free]
cmp byte [0x4a09c0], 0
pop ecx
je 0x407300
push 0x4a09c0
call dword [sym.imp.SHLWAPI.dll_PathIsFileSpecA]
test eax, eax
jne 0x4072d4
push 0x4a09c0
call dword [sym.imp.SHLWAPI.dll_PathIsRelativeA]
test eax, eax
je 0x407311
push 0x4a09c0
push 0x4a08b8
lea eax, [ebp - 0x108]
push eax
call edi
push 0x104
lea eax, [ebp - 0x108]
push eax
push 0x4a09c0
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
jmp 0x407311
push str.Winamp.ini
push 0x4a08b8
push 0x4a09c0
call edi
push dword [0x49b3f0]
push str.utf8
call fcn.00406082
push 0
push 0
push ebx
mov dword [0x49b3f0], eax
call fcn.00402b25
add esp, 0x14
push 0x487bc8
push ebx
push 0x49e4d0
mov dword [ebp - 4], eax
call esi
push str.Plugins
push ebx
push 0x49f020
call esi
push str.System
push ebx
push 0x49dc90
call esi
push 0x487bc8
push ebx
push 0x49e4d0
call esi
push 0x487b9c
push ebx
push 0x49f228
call esi
mov esi, 0x487b94
push esi
push dword [ebp - 4]
push 0x49db88
call edi
push esi
push dword [ebp - 4]
mov ebx, 0x49f438
push ebx
call edi
mov esi, 0x104
push esi
lea eax, [ebp - 0x310]
push eax
xor edi, edi
push str.PluginDir
mov word [ebp - 0x310], di
call fcn.0040609c
add esp, 0xc
lea eax, [ebp - 0x310]
mov cx, word [eax]
cmp cx, 0x20
je 0x4073cb
cmp cx, 9
jne 0x4073cf
inc eax
inc eax
jmp 0x4073bc
cmp word [eax], di
je 0x4073e6
lea eax, [ebp - 0x310]
push eax
push esi
push 0x49f020
call fcn.0047aaff
push esi
lea eax, [ebp - 0x108]
push eax
push str.DSPDir
mov byte [ebp - 0x108], 0
call fcn.00406402
add esp, 0xc
lea eax, [ebp - 0x108]
mov cl, byte [eax]
cmp cl, 0x20
je 0x407414
cmp cl, 9
jne 0x407417
inc eax
jmp 0x407408
cmp byte [eax], 0
je 0x40742a
lea eax, [ebp - 0x108]
push eax
push esi
push ebx
call fcn.00402db5
push esi
lea eax, [ebp - 0x108]
push eax
push str.VISDir
mov byte [ebp - 0x108], 0
call fcn.00406402
add esp, 0xc
lea eax, [ebp - 0x108]
mov cl, byte [eax]
cmp cl, 0x20
je 0x407458
cmp cl, 9
jne 0x40745b
inc eax
jmp 0x40744c
cmp byte [eax], 0
je 0x407472
lea eax, [ebp - 0x108]
push eax
push esi
push 0x49db88
call fcn.00402db5
push esi
lea eax, [ebp - 0x310]
push eax
push str.SkinDir
mov word [ebp - 0x310], di
call fcn.0040609c
add esp, 0xc
lea eax, [ebp - 0x310]
mov cx, word [eax]
cmp cx, 0x20
je 0x4074a3
cmp cx, 9
jne 0x4074a7
inc eax
inc eax
jmp 0x407494
cmp word [eax], di
je 0x4074be
lea eax, [ebp - 0x310]
push eax
push esi
push 0x49e4d0
call fcn.0047aaff
push esi
lea eax, [ebp - 0x310]
push eax
push str.LangDir
mov word [ebp - 0x310], di
call fcn.0040609c
add esp, 0xc
lea eax, [ebp - 0x310]
mov cx, word [eax]
cmp cx, 0x20
je 0x4074ef
cmp cx, 9
jne 0x4074f3
inc eax
inc eax
jmp 0x4074e0
cmp word [eax], di
je 0x40750a
lea eax, [ebp - 0x310]
push eax
push esi
push 0x49f228
call fcn.0047aaff
mov edi, dword [sym.imp.KERNEL32.dll_GetTempPathW]
lea eax, [ebp - 0x310]
push eax
push esi
call edi
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
push 0x49ff80
call ebx
push eax
push 0x487b60
lea eax, [ebp - 0x310]
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
lea eax, [ebp - 0x310]
push eax
push esi
call edi
push 0x49f540
call ebx
push eax
push 0x487b58
lea eax, [ebp - 0x310]
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
movzx eax, byte [0x4a0189]
push eax
push str.minst
call fcn.00406082
push dword [ebp - 4]
mov byte [0x4a0189], al
call dword [sym.imp.NSCRT.dll_free]
add esp, 0xc
pop edi
pop esi
pop ebx
leave
ret