Function at 0x407c8a
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x310
push esi
push edi
mov esi, 0x104
push esi
lea eax, [ebp - 0x310]
push eax
push dword [0x4b0600]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push dword [0x49b3f0]
push str.utf8
call fcn.00406082
mov dword [0x49b3f0], eax
movzx eax, byte [0x49ed00]
push eax
push str.eq_ws
call fcn.00406082
mov byte [0x49ed00], al
movsx eax, byte [0x49bd0c]
push eax
push str.check_ft_startup
call fcn.00406082
push 0x10
push 0x4a0ce0
push 0x488088
mov byte [0x49bd0c], al
call fcn.00406402
movsx eax, byte [0x4a0ac4]
push eax
push str.inet_mode
call fcn.00406082
push dword [0x49b3f4]
mov byte [0x4a0ac4], al
push str.pe_fontsize
call fcn.00406082
push dword [0x49b3f8]
mov dword [0x49b3f4], eax
push str.pe_direction
call fcn.00406082
mov dword [0x49b3f8], eax
movzx eax, byte [0x4a0ac5]
push eax
push str.ospb
call fcn.00406082
mov byte [0x4a0ac5], al
movzx eax, byte [0x4a0ac6]
add esp, 0x44
push eax
push str.vista_thumbnail
call fcn.00406082
mov byte [0x4a0ac6], al
movsx eax, byte [0x49e8e0]
push eax
push str.visplugin_num
call fcn.00406082
mov byte [0x49e8e0], al
movsx eax, byte [0x49bc24]
push eax
push str.visplugin_priority
call fcn.00406082
mov byte [0x49bc24], al
movsx eax, byte [0x4a04a0]
push eax
push str.visplugin_autoexec
call fcn.00406082
mov byte [0x4a04a0], al
movzx eax, byte [0x49fb6c]
push eax
push str.dspplugin_num
call fcn.00406082
mov byte [0x49fb6c], al
movzx eax, byte [0x49ee0c]
push eax
push str.sticon
call fcn.00406082
mov byte [0x49ee0c], al
movzx eax, byte [0x4a0ac7]
push eax
push str.splash
call fcn.00406082
mov byte [0x4a0ac7], al
movzx eax, byte [0x49fb6d]
push eax
push str.taskbar
call fcn.00406082
mov byte [0x49fb6d], al
movzx eax, byte [0x49bcb7]
add esp, 0x40
push eax
push str.dropaotfs
call fcn.00406082
mov byte [0x49bcb7], al
movzx eax, byte [0x49bcaa]
push eax
push str.ascb_new
call fcn.00406082
mov byte [0x49bcaa], al
movzx eax, byte [0x49bcab]
push eax
push str.ttips
call fcn.00406082
mov byte [0x49bcab], al
movzx eax, byte [0x49bcb6]
push eax
push str.keeponscreen
call fcn.00406082
mov byte [0x49bcb6], al
movzx eax, byte [0x4a018a]
push eax
push str.riol
call fcn.00406082
mov byte [0x4a018a], al
movzx eax, byte [0x49bcad]
push eax
push str.whichicon
call fcn.00406082
mov byte [0x49bcad], al
movzx eax, byte [0x49bcae]
push eax
push str.whichicon2
call fcn.00406082
mov byte [0x49bcae], al
movzx eax, byte [0x49eaf0]
push eax
push str.addtolist
call fcn.00406082
mov byte [0x49eaf0], al
movzx eax, byte [0x49bcaf]
add esp, 0x40
push eax
push str.snap
call fcn.00406082
mov byte [0x49bcaf], al
movzx eax, byte [0x49bcb0]
push eax
push str.snaplen
call fcn.00406082
mov byte [0x49bcb0], al
movzx eax, byte [0x49bcb1]
push eax
push str.parent
call fcn.00406082
mov byte [0x49bcb1], al
movzx eax, byte [0x49bcb2]
push eax
push str.hilite
call fcn.00406082
mov byte [0x49bcb2], al
movzx eax, byte [0x49bcb3]
push eax
push str.disvis
call fcn.00406082
mov byte [0x49bcb3], al
movzx eax, byte [0x4a0189]
push eax
push str.minst
call fcn.00406082
mov byte [0x4a0189], al
movzx eax, byte [0x49bc27]
push eax
push str.eqdsize
call fcn.00406082
mov byte [0x49bc27], al
movzx eax, byte [0x49bcb4]
push eax
push str.pladv
call fcn.00406082
mov byte [0x49bcb4], al
movsx eax, byte [0x4a0cdc]
add esp, 0x40
push eax
push str.bifont
call fcn.00406082
mov byte [0x4a0cdc], al
movzx eax, byte [0x49de98]
push eax
push str.autoload_eq
call fcn.00406082
mov byte [0x49de98], al
movzx eax, byte [0x49bc26]
push eax
push str.playlist_recyclebin
call fcn.00406082
mov byte [0x49bc26], al
movzx eax, byte [0x49f019]
push eax
push str.use_eq
call fcn.00406082
push dword [0x49bcb8]
mov byte [0x49f019], al
push 0x48785c
call fcn.00406082
push dword [0x49bcbc]
mov dword [0x49bcb8], eax
push 0x487858
call fcn.00406082
mov dword [0x49bcbc], eax
movzx eax, byte [0x49e8e1]
push eax
push str.minimized
call fcn.00406082
mov byte [0x49e8e1], al
movzx eax, byte [0x49f749]
push eax
push 0x487848
call fcn.00406082
mov byte [0x49f749], al
movzx eax, byte [0x49e0b0]
add esp, 0x40
push eax
push 0x487840
call fcn.00406082
mov byte [0x49e0b0], al
movzx eax, byte [0x49d768]
push eax
push 0x487838
call fcn.00406082
mov byte [0x49d768], al
movzx eax, byte [0x49bcc0]
push eax
push str.volume
call fcn.00406082
mov byte [0x49bcc0], al
movsx eax, byte [0x49f434]
push eax
push 0x48782c
call fcn.00406082
mov byte [0x49f434], al
movzx eax, byte [0x49bcc1]
push eax
push str.easymove
call fcn.00406082
mov byte [0x49bcc1], al
movzx eax, byte [0x49ee0d]
push eax
push str.dsize
call fcn.00406082
mov byte [0x49ee0d], al
movzx eax, byte [0x49f748]
push eax
push str.timeleftmode
call fcn.00406082
mov byte [0x49f748], al
movzx eax, byte [0x49bcc2]
push eax
push str.autoscrollname
call fcn.00406082
mov byte [0x49bcc2], al
movzx eax, byte [0x49bcc3]
add esp, 0x40
push eax
push 0x4877f4
call fcn.00406082
mov byte [0x49bcc3], al
movzx eax, byte [0x49bcc4]
push eax
push str.safire
call fcn.00406082
mov byte [0x49bcc4], al
movzx eax, byte [0x49bcc5]
push eax
push str.saref
call fcn.00406082
mov byte [0x49bcc5], al
movzx eax, byte [0x49bcc6]
push eax
push str.safalloff
call fcn.00406082
mov byte [0x49bcc6], al
movzx eax, byte [0x49bcc7]
push eax
push str.sa_peaks
call fcn.00406082
mov byte [0x49bcc7], al
movzx eax, byte [0x49bcc8]
push eax
push str.sa_peak_falloff
call fcn.00406082
push dword [0x49bccc]
mov byte [0x49bcc8], al
push str.eq_wx
call fcn.00406082
push dword [0x49bcd0]
mov dword [0x49bccc], eax
push str.eq_wy
call fcn.00406082
add esp, 0x40
push dword [0x49bcd4]
mov dword [0x49bcd0], eax
push str.eq_open
call fcn.00406082
push dword [0x49bcd8]
mov dword [0x49bcd4], eax
push str.mw_open
call fcn.00406082
push dword [0x49bcdc]
mov dword [0x49bcd8], eax
push str.pe_wx
call fcn.00406082
push dword [0x49bce0]
mov dword [0x49bcdc], eax
push str.pe_wy
call fcn.00406082
push dword [0x49bce4]
mov dword [0x49bce0], eax
push str.pe_open
call fcn.00406082
push dword [0x49bce8]
mov dword [0x49bce4], eax
push str.pe_width
call fcn.00406082
push dword [0x49bcec]
mov dword [0x49bce8], eax
push str.pe_height
call fcn.00406082
push dword [0x49fa60]
mov dword [0x49bcec], eax
push str.pe_height_ws
call fcn.00406082
add esp, 0x40
mov ecx, 0x4aeb44
mov dword [0x49fa60], eax
call fcn.0046fd5f
push eax
push str.eq_limiter
call fcn.00406082
test eax, eax
setne al
pop ecx
pop ecx
lea ecx, [ebp - 8]
push eax
call fcn.0046fd71
push dword [0x4aeb40]
mov al, byte [ebp - 4]
push str.eq_type
mov byte [0x4aeb48], al
call fcn.00406082
pop ecx
pop ecx
push eax
mov ecx, 0x4aeb3c
call fcn.0046fe6b
push dword [0x4aeb38]
push str.eq_frequencies
call fcn.00406082
pop ecx
pop ecx
push eax
mov ecx, 0x4aeb34
call fcn.0046fe6b
push dword [0x49bd10]
push str.video_wx
call fcn.00406082
push dword [0x49bd14]
mov dword [0x49bd10], eax
push str.video_wy
call fcn.00406082
push dword [0x4a0cf0]
mov dword [0x49bd14], eax
push str.video_open
call fcn.00406082
push dword [0x49bd18]
mov dword [0x4a0cf0], eax
push str.video_width
call fcn.00406082
push dword [0x49bd1c]
mov dword [0x49bd18], eax
push str.video_height
call fcn.00406082
push dword [0x49bd20]
mov dword [0x49bd1c], eax
push str.video_ratio1
call fcn.00406082
push dword [0x49bd24]
mov dword [0x49bd20], eax
push str.video_ratio2
call fcn.00406082
push dword [0x49eaec]
mov dword [0x49bd24], eax
push str.video_useratio
call fcn.00406082
mov dword [0x49eaec], eax
movzx eax, byte [0x49f018]
add esp, 0x40
push eax
push str.windowshade
call fcn.00406082
mov byte [0x49f018], al
movzx eax, byte [0x49bcf8]
push eax
push str.preamp
call fcn.00406082
push dword [0x49f430]
mov byte [0x49bcf8], al
push str.pilp
call fcn.00406082
mov dword [0x49f430], eax
movzx eax, byte [0x49ee0e]
push eax
push str.randskin
call fcn.00406082
add esp, 0x20
cmp word [0x4a0ad0], 0
mov byte [0x49ee0e], al
jne 0x4083ee
push esi
push 0x4a0ad0
push 0x48769c
call fcn.0040609c
add esp, 0xc
push ebx
push esi
push 0x4a0298
push 0x4872d0
call fcn.0040609c
push dword [0x4aa720]
push str.prefs_last_page
call fcn.00406082
mov ecx, eax
and eax, 0xff
mov dword [0x4aa720], eax
movzx eax, byte [0x4a0188]
push eax
sar ecx, 8
push str.rofiob
mov dword [0x49cdd8], ecx
call fcn.00406082
mov byte [0x4a0188], al
movzx eax, byte [0x49bcb5]
push eax
push str.shownumsinpl
call fcn.00406082
mov edi, 0x80
push edi
push str.out_ds.dll
push str.outname
mov byte [0x49bcb5], al
call fcn.00406402
movzx eax, byte [0x49bca8]
push eax
push str.usecursors
call fcn.00406082
mov byte [0x49bca8], al
movzx eax, byte [0x49bca9]
push eax
push str.fixtitles
call fcn.00406082
mov byte [0x49bca9], al
movzx eax, byte [0x49bcac]
add esp, 0x40
push eax
push 0x48796c
call fcn.00406082
mov byte [0x49bcac], al
movzx eax, byte [0x49bc25]
push eax
push str.shuffle_morph_rate
call fcn.00406082
push dword [0x49bc20]
mov byte [0x49bc25], al
push str.useexttitles
call fcn.00406082
push dword [0x49bcfc]
mov dword [0x49bc20], eax
push str.newverchk
call fcn.00406082
push dword [0x49bd00]
mov dword [0x49bcfc], eax
push str.newverchk2
call fcn.00406082
push dword [0x4a0cd8]
mov dword [0x49bd00], eax
push str.newverchk3
call fcn.00406082
push dword [0x49f854]
mov dword [0x4a0cd8], eax
push str.embedwnd_freesize
call fcn.00406082
add esp, 0x38
mov ecx, 0x4aeaa0
mov dword [0x49f854], eax
call fcn.0046fd5f
push eax
push str.video_vsync
call fcn.00406082
test eax, eax
setne al
pop ecx
pop ecx
lea ecx, [ebp - 8]
push eax
call fcn.0046fd71
push dword [0x49bd28]
mov al, byte [ebp - 4]
push str.video_aspectadj
mov byte [0x4aeaa4], al
call fcn.00406082
pop ecx
pop ecx
mov ecx, 0x4aea90
mov dword [0x49bd28], eax
call fcn.0046fd5f
push eax
push str.video_overlays
call fcn.00406082
test eax, eax
setne al
pop ecx
pop ecx
lea ecx, [ebp - 8]
push eax
call fcn.0046fd71
mov al, byte [ebp - 4]
mov ecx, 0x4aeab0
mov byte [0x4aea94], al
call fcn.0046fd5f
push eax
push str.video_gdiplus
call fcn.00406082
test eax, eax
setne al
pop ecx
pop ecx
lea ecx, [ebp - 8]
push eax
call fcn.0046fd71
mov al, byte [ebp - 4]
mov ecx, 0x4aeaa8
mov byte [0x4aeab4], al
call fcn.0046fd5f
push eax
push str.video_ddraw
call fcn.00406082
test eax, eax
setne al
pop ecx
pop ecx
lea ecx, [ebp - 8]
push eax
call fcn.0046fd71
push dword [0x49bd2c]
mov al, byte [ebp - 4]
push str.video_updsize
mov byte [0x4aeaac], al
call fcn.00406082
pop ecx
pop ecx
mov ecx, 0x4aeab8
mov dword [0x49bd2c], eax
call fcn.0046fd5f
push eax
push str.video_autoopen
call fcn.00406082
test eax, eax
setne al
pop ecx
pop ecx
lea ecx, [ebp - 8]
push eax
call fcn.0046fdb4
mov al, byte [ebp - 4]
mov ecx, 0x4aeac0
mov byte [0x4aeabc], al
call fcn.0046fd5f
push eax
push str.video_autoclose
call fcn.00406082
test eax, eax
setne al
pop ecx
pop ecx
push eax
lea ecx, [ebp - 8]
call fcn.0046fdb4
push dword [0x49bd30]
mov al, byte [ebp - 4]
push str.video_noss
mov byte [0x4aeac4], al
call fcn.00406082
push dword [0x49bd34]
mov dword [0x49bd30], eax
push str.video_osd
call fcn.00406082
add esp, 0x10
mov ecx, 0x4aea98
mov dword [0x49bd34], eax
call fcn.0046fd5f
push eax
push str.video_yv12
call fcn.00406082
test eax, eax
setne al
pop ecx
pop ecx
lea ecx, [ebp - 8]
push eax
call fcn.0046fd71
push dword [0x49bd38]
mov al, byte [ebp - 4]
push str.video_stopclose
mov byte [0x4aea9c], al
call fcn.00406082
push dword [0x4a0cf4]
mov dword [0x49bd38], eax
push str.video_auto_fs
call fcn.00406082
push dword [0x49bd04]
mov dword [0x4a0cf4], eax
push str.dotitlenum
call fcn.00406082
push dword [0x49bd08]
mov dword [0x49bd04], eax
push str.dotasknum
call fcn.00406082
push dword [0x49bcf0]
mov dword [0x49bd08], eax
push str.plscrollsize
call fcn.00406082
push dword [0x49bcf4]
mov dword [0x49bcf0], eax
push str.plmw2xscroll
call fcn.00406082
push dword [0x4aeb2c]
mov dword [0x49bcf4], eax
push str.playback_thread_priority
call fcn.00406082
add esp, 0x38
push eax
mov ecx, 0x4aeb28
call fcn.0046fe6b
push dword [0x4aeadc]
push str.audio_bits
call fcn.00406082
pop ecx
pop ecx
push eax
mov ecx, 0x4aead8
call fcn.0046fe6b
mov ecx, 0x4aeae0
call fcn.0046fd5f
push eax
push str.audio_mono
call fcn.00406082
test eax, eax
setne al
pop ecx
pop ecx
lea ecx, [ebp - 8]
push eax
call fcn.0046fd71
mov al, byte [ebp - 4]
mov byte [0x4aeae4], al
mov ecx, 0x4aeae8
call fcn.0046fd5f
push eax
push str.audio_surround
call fcn.00406082
test eax, eax
setne al
pop ecx
pop ecx
lea ecx, [ebp - 8]
push eax
call fcn.0046fd71
mov al, byte [ebp - 4]
mov ecx, 0x4aeaf0
mov byte [0x4aeaec], al
call fcn.0046fd5f
push eax
push str.audio_dither
call fcn.00406082
test eax, eax
setne al
pop ecx
pop ecx
lea ecx, [ebp - 8]
push eax
call fcn.0046fd71
mov al, byte [ebp - 4]
mov ecx, 0x4aeaf8
mov byte [0x4aeaf4], al
call fcn.0046fd5f
push eax
push 0x487548
call fcn.00406082
test eax, eax
setne al
pop ecx
pop ecx
lea ecx, [ebp - 8]
push eax
call fcn.0046fd71
push dword [0x4aeb04]
mov al, byte [ebp - 4]
push 0x487538
mov byte [0x4aeafc], al
call fcn.00406082
pop ecx
pop ecx
push eax
mov ecx, 0x4aeb00
call fcn.0046fe6b
push dword [0x4aeb0c]
push 0x487524
call fcn.00406082
pop ecx
pop ecx
push eax
mov ecx, 0x4aeb08
call fcn.0046fe6b
mov ecx, 0x4aeb10
call fcn.0046fd5f
push eax
push 0x487508
call fcn.00406082
test eax, eax
setne al
pop ecx
pop ecx
lea ecx, [ebp - 8]
push eax
call fcn.0046fd71
fld dword [0x4aeb1c]
mov al, byte [ebp - 4]
fmul dword [0x487504]
mov byte [0x4aeb14], al
call fcn.004839c0
push eax
push str.replaygain_non_rg_gain
call fcn.00406082
mov dword [ebp - 4], eax
fild dword [ebp - 4]
add esp, 4
fmul dword [0x488084]
mov ecx, 0x4aeb18
fstp dword [esp]
call fcn.0046fe1b
fstp st(0)
fld dword [0x4aeb24]
fmul dword [0x487504]
call fcn.004839c0
push eax
push 0x4874d8
call fcn.00406082
mov dword [ebp - 4], eax
fild dword [ebp - 4]
add esp, 4
mov ecx, 0x4aeb20
fmul dword [0x488084]
fstp dword [esp]
call fcn.0046fe1b
push dword [0x4a0d00]
fstp st(0)
push str.last_classic_skin_page
call fcn.00406082
push dword [0x4a0d04]
mov dword [0x4a0d00], eax
push str.last_playback_page
call fcn.00406082
push dword [0x49bd3c]
mov dword [0x4a0d04], eax
push str.video_remove_fs_on_stop
call fcn.00406082
push dword [0x49bd40]
mov dword [0x49bd3c], eax
push str.wav_do_header
call fcn.00406082
push dword [0x4a0cf8]
mov dword [0x49bd40], eax
push str.wav_convert
call fcn.00406082
push 8
push 0x49bd44
push str.wav_ext
mov dword [0x4a0cf8], eax
call fcn.00406402
push dword [0x49e0ac]
push 0x4878c4
call fcn.00406082
push edi
mov ebx, 0x4b0500
push ebx
push str.playlist_custom_font
mov dword [0x49e0ac], eax
call fcn.0040609c
xor eax, eax
add esp, 0x48
cmp word [0x4b0500], ax
jne 0x4089cc
push 0x488078
push edi
push ebx
call fcn.0047aaff
xor eax, eax
push eax
push eax
push 0x7f
push 0x4b0040
push 0xffffffffffffffff
push ebx
push eax
push eax
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
test eax, eax
je 0x4089eb
mov byte [eax + 0x4b0040], 0
push dword [0x49c934]
push str.custom_plfont
call fcn.00406082
push dword [0x4a0cfc]
mov dword [0x49c934], eax
push str.no_registry
call fcn.00406082
add esp, 0x10
mov ecx, 0x4aeacc
mov dword [0x4a0cfc], eax
call fcn.0046fd5f
push eax
push 0x487af4
call fcn.00406082
test eax, eax
setne al
pop ecx
pop ecx
lea ecx, [ebp - 8]
push eax
call fcn.0046fd71
mov al, byte [ebp - 4]
mov ebx, 0x100
push ebx
push 0x49e8e8
push 0x487aec
mov byte [0x4aead0], al
call fcn.00406402
push 0x20
push 0x49b3fc
push str.defext
call fcn.00406402
push 0x400
push str.__artist______if2__title___filepart__filename___
push str.titlefmt
call fcn.0040609c
push esi
push 0x49e1c0
push str.visplugin_name
call fcn.00406402
push esi
push 0x49e0b8
push str.dspplugin_name
call fcn.00406402
movzx eax, byte [0x4a0ac8]
push eax
push str.zeropadplnum
call fcn.00406082
add esp, 0x44
mov ecx, 0x4aeb54
mov byte [0x4a0ac8], al
call fcn.0046fd5f
push eax
push str.accessibility_modalbeep
call fcn.00406082
test eax, eax
setne al
pop ecx
pop ecx
lea ecx, [ebp - 8]
push eax
call fcn.0046fd71
mov al, byte [ebp - 4]
mov ecx, 0x4aeb5c
mov byte [0x4aeb58], al
call fcn.0046fd5f
push eax
push 0x4873f8
call fcn.00406082
test eax, eax
setne al
pop ecx
pop ecx
lea ecx, [ebp - 8]
push eax
call fcn.0046fd71
mov al, byte [ebp - 4]
push 0x3f
mov byte [0x4aeb60], al
mov byte [ebp - 0x108], 0
pop ecx
xor eax, eax
lea edi, [ebp - 0x107]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea esi, [ebp - 0x108]
push ebx
mov eax, esi
push eax
push str.eq_data
call fcn.00406402
xor edi, edi
add esp, 0xc
xor ebx, ebx
inc edi
mov al, byte [esi]
xor ecx, ecx
xor edx, edx
cmp al, 0x30
jl 0x408b92
cmp al, 0x39
jg 0x408b67
movsx eax, al
lea ecx, [ecx + ecx*4]
inc esi
lea ecx, [eax + ecx*2 - 0x30]
mov al, byte [esi]
cmp al, 0x30
mov edx, edi
jge 0x408b50
test edx, edx
je 0x408b92
inc esi
test ecx, ecx
jle 0x408b74
mov eax, ecx
jmp 0x408b76
xor eax, eax
cmp eax, 0x3f
jle 0x408b80
push 0x3f
pop ecx
jmp 0x408b86
test ecx, ecx
jg 0x408b86
xor ecx, ecx
mov byte [ebx + 0x49c498], cl
inc ebx
cmp ebx, 0xa
jl 0x408b46
push edi
push str.utf8
mov dword [0x49b3f0], edi
call fcn.004063cc
cmp dword [ebp + 8], 0
pop ecx
pop ecx
pop ebx
jne 0x408bf4
mov esi, 0x49fb70
push esi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
push edi
push edi
jne 0x408bda
push str..m3u
push 0x49d978
call fcn.0043faa6
push edi
push edi
push esi
call fcn.0046dc77
add esp, 0x1c
jmp 0x408be8
push str..m3u8
push esi
call fcn.0043faa6
add esp, 0x10
push dword [0x49f430]
call fcn.0043ebe1
pop ecx
call fcn.0041c02b
pop edi
pop esi
leave
ret