Function at 0x40a0fb
Capabilities:
Get common file path
Read .ini file

Disassembly:
sub esp, 0x104
push ebx
push ebp
push esi
mov ebx, dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push edi
mov edi, 0x103
mov esi, 0x45e580
push edi
push esi
push dword [0x45bf10]
call ebx
test eax, eax
je 0x40a15d
push 0x450890
push 0x44be40
push esi
call fcn.00439a62
mov cl, byte [eax]
add esp, 0xc
cmp cl, 0x5c
jne 0x40a14e
and byte [eax + 1], 0
push str.Winamp.
push esi
call sub.MSVCRT.dll_strcat
jmp 0x40a168
cmp cl, 0x2e
jne 0x40a159
and byte [eax + 1], 0
jmp 0x40a16a
test cl, cl
jne 0x40a16a
push str.C:Winamp.
push esi
call sub.MSVCRT.dll_strcpy
pop ecx
pop ecx
lea eax, [esp + 0x10]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
push 0x45dfe0
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
lea eax, [esp + 0x18]
push 0x44be28
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameA]
push edi
mov edi, 0x45eb20
push edi
push dword [0x45bf10]
call ebx
mov eax, edi
dec eax
push eax
push 0x44ad50
push edi
call fcn.00439a62
and byte [eax + 1], 0
mov ebx, 0x45f300
push edi
push ebx
call sub.MSVCRT.dll_strcpy
push ebx
push 0x45ea00
call sub.MSVCRT.dll_strcpy
push str.Skins
push ebx
call sub.MSVCRT.dll_strcat
push str.Plugins
push edi
call sub.MSVCRT.dll_strcat
push edi
push 0x45dc80
call sub.MSVCRT.dll_strcpy
push edi
push 0x45dda0
call sub.MSVCRT.dll_strcpy
push esi
push 0x45ed60
call sub.MSVCRT.dll_strcpy
add esp, 0x44
push esi
push 0x45dec0
call sub.MSVCRT.dll_strcpy
push esi
push 0x45ec40
call sub.MSVCRT.dll_strcpy
mov ebx, 0x45e6a0
push esi
push ebx
call sub.MSVCRT.dll_strcpy
push esi
push 0x45f1e0
call sub.MSVCRT.dll_strcpy
push esi
push 0x45f0c0
call sub.MSVCRT.dll_strcpy
push esi
push 0x45db60
call sub.MSVCRT.dll_strcpy
mov ebp, 0x45ee80
push esi
push ebp
call sub.MSVCRT.dll_strcpy
mov eax, ebp
dec eax
push eax
push 0x44ad50
push ebp
call fcn.00439a62
and byte [eax + 1], 0
add esp, 0x44
push str.demo.mp3
push ebp
call sub.MSVCRT.dll_strcat
push 0x44be08
push esi
call sub.MSVCRT.dll_strcat
push 0x44be04
push 0x45dec0
call sub.MSVCRT.dll_strcat
push 0x44be00
push 0x45ec40
call sub.MSVCRT.dll_strcat
push ebx
call sub.MSVCRT.dll_strlen
and byte [eax + 0x45e69f], 0
push str.mb.htm
push ebx
call sub.MSVCRT.dll_strcat
push 0x44b7f4
push 0x45ed60
call sub.MSVCRT.dll_strcat
push 0x44bdf4
push 0x45f1e0
call sub.MSVCRT.dll_strcat
push 0x44bdf0
push 0x45f0c0
call sub.MSVCRT.dll_strcat
add esp, 0x44
push 0x44bdec
push 0x45db60
call sub.MSVCRT.dll_strcat
cmp byte [0x450a98], 0
pop ecx
pop ecx
je 0x40a337
mov ebp, 0x44ad50
mov ebx, 0x450a98
push ebp
push ebx
call dword [sym.imp.MSVCRT.dll__mbsstr]
pop ecx
pop ecx
test eax, eax
push ebx
je 0x40a320
push esi
jmp 0x40a330
mov eax, esi
dec eax
push eax
push ebp
push esi
call fcn.00439a62
add esp, 0xc
inc eax
push eax
call sub.MSVCRT.dll_strcpy
pop ecx
pop ecx
mov ebp, 0x104
push esi
lea eax, [esp + 0x14]
push ebp
mov ebx, 0x450890
push eax
push ebx
push str.PluginDir
push dword [0x45b9a4]
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [esp + 0x10]
mov cl, byte [eax]
cmp cl, 0x20
je 0x40a36a
cmp cl, 9
jne 0x40a36d
inc eax
jmp 0x40a35e
cmp byte [eax], 0
je 0x40a37f
lea eax, [esp + 0x10]
push eax
push edi
call sub.MSVCRT.dll_strcpy
pop ecx
pop ecx
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push esi
lea eax, [esp + 0x14]
push ebp
push eax
push ebx
push str.DSPDir
push dword [0x45b9a4]
call edi
lea eax, [esp + 0x10]
mov cl, byte [eax]
cmp cl, 0x20
je 0x40a3aa
cmp cl, 9
jne 0x40a3ad
inc eax
jmp 0x40a39e
cmp byte [eax], 0
je 0x40a3c3
lea eax, [esp + 0x10]
push eax
push 0x45dda0
call sub.MSVCRT.dll_strcpy
pop ecx
pop ecx
push esi
lea eax, [esp + 0x14]
push ebp
push eax
push ebx
push str.VISDir
push dword [0x45b9a4]
call edi
lea eax, [esp + 0x10]
mov cl, byte [eax]
cmp cl, 0x20
je 0x40a3e8
cmp cl, 9
jne 0x40a3eb
inc eax
jmp 0x40a3dc
cmp byte [eax], 0
je 0x40a401
lea eax, [esp + 0x10]
push eax
push 0x45dc80
call sub.MSVCRT.dll_strcpy
pop ecx
pop ecx
push esi
lea eax, [esp + 0x14]
push ebp
push eax
push ebx
push str.SkinDir
push dword [0x45b9a4]
call edi
pop edi
pop esi
pop ebp
lea eax, [esp + 4]
pop ebx
mov cl, byte [eax]
cmp cl, 0x20
je 0x40a42a
cmp cl, 9
jne 0x40a42d
inc eax
jmp 0x40a41e
cmp byte [eax], 0
je 0x40a443
lea eax, [esp]
push eax
push 0x45f300
call sub.MSVCRT.dll_strcpy
pop ecx
pop ecx
movzx eax, byte [0x45dea8]
push eax
push str.config_minst
call fcn.00408fab
mov byte [0x45dea8], al
add esp, 0x10c
ret