Function at 0x5dca1f
Capabilities:
Get common file path
Get startup folder

Disassembly:
push 0x25c
mov eax, 0x6116f1
call fcn.004db4be
cmp dword [0x6752e0], 0
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 0x14]
mov dword [ebp - 0x21c], eax
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x228], esi
mov dword [ebp - 0x220], eax
jne 0x5dca5f
mov eax, 0x80004005
jmp 0x5dcf6a
lea eax, [ebp - 0x22c]
mov ecx, esi
push eax
call fcn.005d647d
and dword [ebp - 4], 0
lea eax, [esi + 0x8c]
push eax
lea ecx, [ebp - 0x23c]
call fcn.0040d36e
push ecx
xor ebx, ebx
push ecx
inc ebx
mov ecx, 0x6752d0
mov byte [ebp - 4], bl
call fcn.004b5263
mov eax, 0x6752b8
push eax
mov dword [ebp - 0x240], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push ecx
push ecx
mov byte [ebp - 4], 2
push dword [ebp - 0x21c]
push esi
call fcn.005daf3e
mov ecx, dword [ebp - 0x228]
mov esi, eax
push str.Title
lea eax, [ebp - 0x234]
push eax
call fcn.00416eed
mov ecx, dword [ebp - 0x228]
lea eax, [ebp - 0x230]
push str.Artist
push eax
mov byte [ebp - 4], 3
call fcn.00416eed
mov byte [ebp - 4], 4
test esi, esi
jne 0x5dcc59
push esi
push ecx
lea eax, [ebp - 0x230]
mov ecx, esp
push eax
call fcn.0040d36e
push ecx
lea eax, [ebp - 0x234]
mov ecx, esp
push eax
call fcn.0040d36e
lea eax, [ebp - 0x21c]
push eax
call fcn.005d11dc
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x21c]
test ecx, ecx
je 0x5dcf10
mov ebx, dword [ebp - 0x228]
mov dword [ecx + 0x2c], 2
mov eax, dword [ebp - 0x21c]
push str.Album
mov ecx, dword [ebx + 0x18]
mov dword [eax + 0x9c], ecx
mov eax, dword [ebp - 0x21c]
mov ecx, dword [ebx + 0x10]
mov dword [eax + 0x98], ecx
lea eax, [ebp - 0x220]
push eax
mov ecx, ebx
call fcn.00416eed
mov ecx, dword [ebp - 0x21c]
push eax
lea ecx, [ecx + 0x20]
call fcn.0040d242
mov ecx, dword [ebp - 0x220]
mov esi, 0x668010
add ecx, 0xfffffff4
cmp ecx, esi
je 0x5dcb9a
call fcn.00407965
lea eax, [ebp - 0x220]
mov ecx, ebx
push eax
call fcn.005d65c3
mov ecx, dword [ebp - 0x21c]
push eax
lea ecx, [ecx + 0x24]
call fcn.0040d242
mov ecx, dword [ebp - 0x220]
add ecx, 0xfffffff4
cmp ecx, esi
je 0x5dcbc9
call fcn.00407965
lea eax, [ebx + 0x8c]
push eax
lea ecx, [ebp - 0x220]
call fcn.0040d36e
mov ecx, dword [ebp - 0x21c]
lea eax, [ebp - 0x220]
push eax
lea ecx, [ecx + 0xc4]
call fcn.0040d242
mov ecx, dword [ebp - 0x220]
add ecx, 0xfffffff4
cmp ecx, esi
je 0x5dcc05
call fcn.00407965
lea eax, [ebx + 0x90]
push eax
lea ecx, [ebp - 0x220]
call fcn.0040d36e
mov ecx, dword [ebp - 0x21c]
lea eax, [ebp - 0x220]
push eax
lea ecx, [ecx + 0xc8]
call fcn.0040d242
mov ecx, dword [ebp - 0x220]
add ecx, 0xfffffff4
cmp ecx, esi
je 0x5dcc41
call fcn.00407965
mov ecx, dword [ebp - 0x21c]
test ecx, ecx
je 0x5dcf10
call fcn.0044e6da
jmp 0x5dcf10
push edi
lea eax, [ebp - 0x22c]
mov ecx, 0x675240
push eax
call fcn.004b5c41
test al, al
je 0x5dcd43
mov ecx, dword [edi]
xor esi, esi
cmp dword [ecx + 0x80], esi
jne 0x5dcc90
test ecx, ecx
je 0x5dcc89
mov eax, dword [ecx]
push ecx
call dword [eax + 0x20]
mov dword [edi], esi
jmp 0x5dcd4d
test ecx, ecx
je 0x5dcd4d
push esi
push ecx
lea eax, [ebp - 0x230]
mov ecx, esp
push eax
call fcn.0040d36e
push ecx
lea eax, [ebp - 0x234]
mov ecx, esp
push eax
call fcn.0040d36e
lea eax, [ebp - 0x21c]
push eax
call fcn.005d11dc
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x21c]
test ecx, ecx
je 0x5dcce9
mov eax, dword [edi]
xor edx, edx
cmp dword [eax + 0x80], 4
sete dl
inc edx
mov dword [ecx + 0x2c], edx
mov ecx, dword [ebp - 0x21c]
mov eax, dword [edi]
mov esi, dword [ebp - 0x220]
mov edx, dword [eax + 0x104]
test edx, esi
jne 0x5dcd36
or edx, esi
mov dword [eax + 0x104], edx
mov eax, dword [ebp - 0x21c]
test eax, eax
je 0x5dcd10
mov dword [eax + 0x50], edx
test dl, 1
jne 0x5dcd28
test dl, 2
je 0x5dcd1f
push 3
pop ebx
jmp 0x5dcd28
push 5
test dl, 4
pop eax
cmovne ebx, eax
mov ecx, dword [edi]
push ebx
call fcn.005d9838
mov ecx, dword [ebp - 0x21c]
mov byte [ebp - 4], 4
test ecx, ecx
je 0x5dcd43
call fcn.0044e6da
xor esi, esi
cmp dword [edi], esi
jne 0x5dcf10
mov ecx, dword [0x675238]
call fcn.005dbb1f
test eax, eax
jne 0x5dce21
mov eax, dword [0x668294]
mov dword [ebp - 0x21c], eax
lea eax, [ebp - 0x218]
mov byte [ebp - 4], 7
push eax
push esi
push esi
push 0x1a
push esi
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
js 0x5dcde0
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x224]
call fcn.0040d2ee
push str.TTPlayercache_
mov edx, eax
lea ecx, [ebp - 0x238]
call fcn.0040ce1d
push eax
lea ecx, [ebp - 0x21c]
call fcn.0040d242
mov ecx, dword [ebp - 0x238]
mov ebx, 0x668010
add ecx, 0xfffffff4
cmp ecx, ebx
je 0x5dcdcc
call fcn.00407965
mov ecx, dword [ebp - 0x224]
add ecx, 0xfffffff4
cmp ecx, ebx
je 0x5dcdfe
call fcn.00407965
jmp 0x5dcdfe
mov esi, str.C:TTPMusiccache_
push esi
call fcn.00505bb3
pop ecx
push esi
push eax
lea ecx, [ebp - 0x21c]
call fcn.0040f513
mov ebx, 0x668010
mov esi, dword [ebp - 0x21c]
push esi
call fcn.005dc597
mov ecx, dword [0x675238]
call fcn.005dba71
lea ecx, [esi - 0xc]
cmp ecx, ebx
je 0x5dce21
call fcn.00407965
lea ecx, [ebp - 0x268]
call fcn.004b5538
mov eax, ecx
mov byte [ebp - 4], 8
push eax
lea eax, [ebp - 0x22c]
mov ebx, 0x675270
push eax
mov ecx, ebx
call fcn.004b5aa4
push 0x148
test al, al
je 0x5dcea8
call fcn.004da873
mov dword [ebp - 0x224], eax
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x268]
mov dword [esp], 0x6752d0
push ecx
push dword [ebp - 0x220]
mov ecx, eax
push dword [0x675238]
push dword [0x6752e0]
push dword [ebp - 0x228]
call fcn.005d8048
mov esi, eax
mov byte [ebp - 4], 8
lea eax, [ebp - 0x268]
mov ecx, ebx
push eax
lea eax, [ebp - 0x22c]
push eax
call fcn.004b5ad8
jmp 0x5dcee5
call fcn.004da873
mov dword [ebp - 0x224], eax
mov byte [ebp - 4], 0xa
mov ecx, eax
mov dword [esp], 0x6752d0
push 0
push dword [ebp - 0x220]
push dword [0x675238]
push dword [0x6752e0]
push dword [ebp - 0x228]
call fcn.005d8048
mov esi, eax
mov byte [ebp - 4], 8
push esi
mov ecx, edi
call fcn.004293e4
mov eax, dword [esi]
push esi
call dword [eax + 0x20]
push edi
lea eax, [ebp - 0x22c]
mov ecx, 0x675240
push eax
call fcn.004b5c75
lea ecx, [ebp - 0x268]
call fcn.004b5737
mov ecx, dword [ebp - 0x230]
mov ebx, 0x668010
add ecx, 0xfffffff4
cmp ecx, ebx
je 0x5dcf27
call fcn.00407965
mov ecx, dword [ebp - 0x234]
add ecx, 0xfffffff4
cmp ecx, ebx
je 0x5dcf39
call fcn.00407965
push 0x6752b8
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [ebp - 0x23c]
add ecx, 0xfffffff4
cmp ecx, ebx
je 0x5dcf56
call fcn.00407965
mov ecx, dword [ebp - 0x22c]
add ecx, 0xfffffff4
cmp ecx, ebx
je 0x5dcf68
call fcn.00407965
xor eax, eax
call fcn.004db46d
ret 0x18