Function at 0x408930
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5747e7
mov eax, dword fs:[0]
push eax
sub esp, 0x85c
mov eax, dword [0x5dbcc8]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov esi, ecx
push 0x3ff
lea ecx, [ebp - 0x40f]
push 0
push ecx
mov dword [ebp - 0x81c], eax
mov dword [ebp - 0x814], esi
mov byte [ebp - 0x410], 0
call fcn.00549e40
add esp, 0xc
push 1
push 0x1c
lea edx, [ebp - 0x410]
push edx
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
push 0x3ff
lea eax, [ebp - 0x80f]
push 0
push eax
mov byte [ebp - 0x810], 0
call fcn.00549e40
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenW]
add esp, 0xc
push 0x5a52f8
call edi
inc eax
cmp eax, 0x3fffffff
jg 0x408a15
lea ebx, [eax + eax]
mov eax, ebx
call fcn.0054bbf0
mov esi, esp
test esi, esi
je 0x408a0f
push 0
push 0
push ebx
push esi
push 0xffffffffffffffff
push 0x5a52f8
push 0
push 3
mov byte [esi], 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
neg eax
sbb eax, eax
and eax, esi
mov esi, dword [ebp - 0x814]
mov dword [ebp - 0x818], eax
jmp 0x408a1f
mov esi, dword [ebp - 0x814]
mov dword [ebp - 0x818], 0
push str.1905Cache1
call edi
inc eax
cmp eax, 0x3fffffff
jg 0x408a6c
lea ebx, [eax + eax]
mov eax, ebx
call fcn.0054bbf0
mov esi, esp
test esi, esi
je 0x408a66
push 0
push 0
push ebx
push esi
push 0xffffffffffffffff
push str.1905Cache1
push 0
push 3
mov byte [esi], 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
neg eax
sbb eax, eax
and eax, esi
mov esi, dword [ebp - 0x814]
jmp 0x408a6e
mov esi, dword [ebp - 0x814]
xor eax, eax
mov ebx, dword [ebp - 0x81c]
mov ecx, dword [ebp - 0x818]
push ebx
push ecx
push eax
lea edx, [ebp - 0x410]
push edx
lea eax, [ebp - 0x810]
push str._s_s_s_s.xml
push eax
call fcn.00546876
add esp, 0x18
lea ecx, [ebp - 0x810]
push ecx
lea ecx, [ebp - 0x868]
call fcn.005627e0
push 0
lea ecx, [ebp - 0x868]
mov dword [ebp - 4], 0
call fcn.00563740
test al, al
je 0x408d65
lea ecx, [ebp - 0x868]
call fcn.00561e40
mov ecx, eax
call fcn.00561e40
mov edi, eax
test edi, edi
je 0x408d65
mov eax, dword [edi + 0x20]
mov ecx, str.item
add eax, 8
lea ecx, [ecx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x408b10
test dl, dl
je 0x408b0c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x408b10
add eax, 2
add ecx, 2
test dl, dl
jne 0x408af0
xor eax, eax
jmp 0x408b15
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x408b5a
mov edx, dword [edi + 0x4c]
lea ecx, [edi + 0x2c]
mov eax, edx
sub eax, ecx
neg eax
sbb eax, eax
and eax, edx
mov eax, dword [eax + 0x18]
mov ecx, ebx
add eax, 8
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x408b51
test dl, dl
je 0x408b4d
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x408b51
add eax, 2
add ecx, 2
test dl, dl
jne 0x408b31
xor eax, eax
jmp 0x408b56
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x408b70
mov ecx, edi
call fcn.00561e70
mov edi, eax
test edi, edi
jne 0x408ae2
jmp 0x408d65
push ebx
lea ecx, [esi + 4]
mov dword [esi], 1
call fcn.0040d2c0
mov ecx, edi
call fcn.00561e40
mov edi, eax
test edi, edi
je 0x408d65
mov ebx, dword [edi + 0x20]
add ebx, 8
mov ecx, str.title
mov eax, ebx
lea ecx, [ecx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x408bc0
test dl, dl
je 0x408bbc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x408bc0
add eax, 2
add ecx, 2
test dl, dl
jne 0x408ba0
xor eax, eax
jmp 0x408bc5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x408c0d
mov ecx, edi
call fcn.00561f30
lea edx, [ebp - 0x81c]
push edx
mov ebx, eax
call fcn.004046c0
add esp, 4
lea ecx, [esi + 0x24]
push eax
mov byte [ebp - 4], 1
call fcn.0040d610
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x81c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jmp 0x408d48
mov ecx, str.playLink
mov eax, ebx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x408c34
test dl, dl
je 0x408c30
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x408c34
add eax, 2
add ecx, 2
test dl, dl
jne 0x408c14
xor eax, eax
jmp 0x408c39
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x408c71
mov ecx, edi
call fcn.00561f30
lea ecx, [ebp - 0x818]
push ecx
mov ebx, eax
call fcn.004046c0
add esp, 4
lea ecx, [esi + 0x68]
push eax
mov byte [ebp - 4], 2
call fcn.0040d610
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x818]
jmp 0x408d38
mov ecx, str.imageLink
mov eax, ebx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x408c98
test dl, dl
je 0x408c94
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x408c98
add eax, 2
add ecx, 2
test dl, dl
jne 0x408c78
xor eax, eax
jmp 0x408c9d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x408cd2
mov ecx, edi
call fcn.00561f30
lea ecx, [ebp - 0x814]
push ecx
mov ebx, eax
call fcn.004046c0
add esp, 4
lea ecx, [esi + 0x2c]
push eax
mov byte [ebp - 4], 3
call fcn.0040d610
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x814]
jmp 0x408d38
mov ecx, 0x5a5578
mov eax, ebx
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x408d00
test dl, dl
je 0x408cfc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x408d00
add eax, 2
add ecx, 2
test dl, dl
jne 0x408ce0
xor eax, eax
jmp 0x408d05
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x408d54
mov ecx, edi
call fcn.00561f30
lea ecx, [ebp - 0x820]
push ecx
mov ebx, eax
call fcn.004046c0
add esp, 4
lea ecx, [esi + 0x60]
push eax
mov byte [ebp - 4], 4
call fcn.0040d610
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x820]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x408d54
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, edi
call fcn.00561e70
mov edi, eax
test edi, edi
jne 0x408b90
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x834]
mov dword [ebp - method.TiXmlDocument.virtual_0], vtable.TiXmlDocument.0
cmp eax, 0x5e4810
je 0x408d8c
push eax
call fcn.00444c84
add esp, 4
lea ecx, [ebp - 0x868]
call fcn.005624c0
lea esp, [ebp - 0x878]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00545eb2
mov esp, ebp
pop ebp
ret