Function at 0x409f35
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, 0x4638a0
push edi
push esi
push dword [0x4618b0]
call ebx
test eax, eax
je 0x409f97
push 0x4564f8
push 0x44eec0
push esi
call fcn.0043363c
mov cl, byte [eax]
add esp, 0xc
cmp cl, 0x5c
jne 0x409f88
and byte [eax + 1], 0
push str.Winamp.
push esi
call fcn.0043cfe0
jmp 0x409fa2
cmp cl, 0x2e
jne 0x409f93
and byte [eax + 1], 0
jmp 0x409fa4
test cl, cl
jne 0x409fa4
push str.C:Winamp.
push esi
call fcn.0043cfd0
pop ecx
pop ecx
lea eax, [esp + 0x10]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
push 0x463300
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
lea eax, [esp + 0x18]
push 0x44eea8
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameA]
push edi
mov edi, 0x463e40
push edi
push dword [0x4618b0]
call ebx
mov eax, edi
dec eax
push eax
push 0x44dfc0
push edi
call fcn.0043363c
and byte [eax + 1], 0
mov ebx, 0x464620
push edi
push ebx
call fcn.0043cfd0
push ebx
push 0x463d20
call fcn.0043cfd0
push str.Skins
push ebx
call fcn.0043cfe0
push str.Plugins
push edi
call fcn.0043cfe0
push edi
push 0x462fa0
call fcn.0043cfd0
push edi
push 0x4630c0
call fcn.0043cfd0
push esi
push 0x464080
call fcn.0043cfd0
add esp, 0x44
push esi
push 0x4631e0
call fcn.0043cfd0
push esi
push 0x463f60
call fcn.0043cfd0
mov ebx, 0x4639c0
push esi
push ebx
call fcn.0043cfd0
push esi
push 0x464500
call fcn.0043cfd0
push esi
push 0x4643e0
call fcn.0043cfd0
push esi
push 0x462e80
call fcn.0043cfd0
mov ebp, 0x4641a0
push esi
push ebp
call fcn.0043cfd0
mov eax, ebp
dec eax
push eax
push 0x44dfc0
push ebp
call fcn.0043363c
and byte [eax + 1], 0
add esp, 0x44
push str.demo.mp3
push ebp
call fcn.0043cfe0
push 0x44ee88
push esi
call fcn.0043cfe0
push 0x44ee84
push 0x4631e0
call fcn.0043cfe0
push 0x44ee80
push 0x463f60
call fcn.0043cfe0
push ebx
call fcn.0043d4e0
and byte [eax + 0x4639bf], 0
push str.mb.htm
push ebx
call fcn.0043cfe0
push 0x44e85c
push 0x464080
call fcn.0043cfe0
push 0x44ee74
push 0x464500
call fcn.0043cfe0
push 0x44ee70
push 0x4643e0
call fcn.0043cfe0
add esp, 0x44
push 0x44ee6c
push 0x462e80
call fcn.0043cfe0
cmp byte [0x4566f8], 0
pop ecx
pop ecx
je 0x40a170
mov ebp, 0x44dfc0
mov ebx, 0x4566f8
push ebp
push ebx
call fcn.0043cf55
pop ecx
pop ecx
test eax, eax
push ebx
je 0x40a159
push esi
jmp 0x40a169
mov eax, esi
dec eax
push eax
push ebp
push esi
call fcn.0043363c
add esp, 0xc
inc eax
push eax
call fcn.0043cfd0
pop ecx
pop ecx
mov ebp, 0x104
push esi
lea eax, [esp + 0x14]
push ebp
mov ebx, 0x4564f8
push eax
push ebx
push str.PluginDir
push dword [0x461344]
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [esp + 0x10]
mov cl, byte [eax]
cmp cl, 0x20
je 0x40a1a3
cmp cl, 9
jne 0x40a1a6
inc eax
jmp 0x40a197
cmp byte [eax], 0
je 0x40a1b8
lea eax, [esp + 0x10]
push eax
push edi
call fcn.0043cfd0
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 [0x461344]
call edi
lea eax, [esp + 0x10]
mov cl, byte [eax]
cmp cl, 0x20
je 0x40a1e3
cmp cl, 9
jne 0x40a1e6
inc eax
jmp 0x40a1d7
cmp byte [eax], 0
je 0x40a1fc
lea eax, [esp + 0x10]
push eax
push 0x4630c0
call fcn.0043cfd0
pop ecx
pop ecx
push esi
lea eax, [esp + 0x14]
push ebp
push eax
push ebx
push str.VISDir
push dword [0x461344]
call edi
lea eax, [esp + 0x10]
mov cl, byte [eax]
cmp cl, 0x20
je 0x40a221
cmp cl, 9
jne 0x40a224
inc eax
jmp 0x40a215
cmp byte [eax], 0
je 0x40a23a
lea eax, [esp + 0x10]
push eax
push 0x462fa0
call fcn.0043cfd0
pop ecx
pop ecx
push esi
lea eax, [esp + 0x14]
push ebp
push eax
push ebx
push str.SkinDir
push dword [0x461344]
call edi
pop edi
pop esi
pop ebp
lea eax, [esp + 4]
pop ebx
mov cl, byte [eax]
cmp cl, 0x20
je 0x40a263
cmp cl, 9
jne 0x40a266
inc eax
jmp 0x40a257
cmp byte [eax], 0
je 0x40a27c
lea eax, [esp]
push eax
push 0x464620
call fcn.0043cfd0
pop ecx
pop ecx
movzx eax, byte [0x4631c8]
push eax
push str.config_minst
call fcn.00408de4
mov byte [0x4631c8], al
add esp, 0x10c
ret