Function at 0x10011140
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push 0xffffffffffffffff
push 0x1007022a
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xe80
push ebx
push ebp
push esi
push edi
mov al, byte [esp + 0x2b]
xor ebx, ebx
push ebx
lea ecx, [esp + 0x34]
mov dword [esp + 0xe9c], ebx
mov byte [esp + 0x34], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
or ecx, 0xffffffff
xor eax, eax
mov ebp, dword [esp + 0xea4]
mov edi, ebp
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push ebp
lea ecx, [esp + 0x38]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const___unsigned_int_]
mov edx, dword [esp + 0xeb0]
lea ecx, [esp + 0x30]
push ecx
lea eax, [esp + 0x20]
push edx
push eax
lea ecx, [esp + 0xeb8]
mov byte [esp + 0xea4], 1
call fcn.10015840
push 1
lea ecx, [esp + 0x34]
mov byte [esp + 0xe9c], bl
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
push ebx
push ebx
mov cl, byte [esp + 0x33]
mov byte [esp + 0x18], cl
lea ecx, [esp + 0x18]
call fcn.100159a0
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14], eax
push ebp
mov byte [esp + 0xe9c], 2
call dword [sym.imp.SHLWAPI.dll_PathFindExtensionA]
mov edi, dword [sym.imp.KERNEL32.dll_lstrcmpiA]
mov esi, eax
push str..wax
push esi
call edi
test eax, eax
je 0x10011587
push str..asx
push esi
call edi
test eax, eax
je 0x10011587
push str..wmx
push esi
call edi
test eax, eax
je 0x10011587
push str..wvx
push esi
call edi
test eax, eax
je 0x10011587
push str..wpl
push esi
call edi
test eax, eax
jne 0x100112e5
mov eax, dword [esp + 0xea8]
lea edx, [esp + 0x10]
push edx
push eax
call fcn.10011a60
add esp, 8
test eax, eax
jne 0x10011603
mov eax, dword [esp + 0x14]
mov byte [esp + 0xe98], bl
push eax
mov ecx, dword [eax]
push ecx
lea ecx, [esp + 0x24]
push ecx
lea ecx, [esp + 0x1c]
call fcn.10015910
mov edx, dword [esp + 0x14]
push edx
call fcn.1003c010
mov eax, dword [esp + 0xeb4]
add esp, 4
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], ebx
mov ecx, dword [eax]
push eax
mov dword [esp + 0xe9c], 0xffffffff
push ecx
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0xeb8]
call fcn.10015910
mov ecx, dword [esp + 0xeb0]
push ecx
call fcn.1003c010
add esp, 4
mov eax, 0x80004005
jmp 0x10011a39
push str..m3u
push esi
call edi
test eax, eax
jne 0x10011382
mov eax, dword [esp + 0xea8]
lea edx, [esp + 0x10]
push edx
push eax
call fcn.10012290
add esp, 8
test eax, eax
jne 0x10011603
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x1c]
push ecx
push edx
lea ecx, [esp + 0x18]
mov byte [esp + 0xea0], bl
call fcn.10008e90
mov eax, dword [eax]
lea ecx, [esp + 0x24]
push eax
push ecx
lea ecx, [esp + 0x1c]
call fcn.10015910
mov edx, dword [esp + 0x14]
push edx
call fcn.1003c010
mov eax, dword [esp + 0xeb4]
add esp, 4
lea ecx, [esp + 0xeac]
mov dword [esp + 0x14], ebx
push eax
lea eax, [esp + 0x24]
push eax
mov dword [esp + 0x20], ebx
mov dword [esp + 0xea0], 0xffffffff
call fcn.10008e90
mov ecx, dword [eax]
lea edx, [esp + 0x20]
push ecx
jmp 0x100116c3
push str..pls
push esi
call edi
test eax, eax
jne 0x10011441
mov edx, dword [esp + 0xea8]
lea ecx, [esp + 0x10]
push ecx
push edx
call fcn.10012cb0
add esp, 8
test eax, eax
jne 0x10011603
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x20]
push eax
push ecx
lea ecx, [esp + 0x18]
mov byte [esp + 0xea0], bl
call fcn.10008e90
mov edx, dword [eax]
lea eax, [esp + 0x20]
push edx
push eax
lea ecx, [esp + 0x1c]
call fcn.10015910
mov ecx, dword [esp + 0x14]
push ecx
call fcn.1003c010
mov eax, dword [esp + 0xeb4]
add esp, 4
lea edx, [esp + 0x20]
lea ecx, [esp + 0xeac]
push eax
push edx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0xea0], 0xffffffff
call fcn.10008e90
mov eax, dword [eax]
lea ecx, [esp + 0x20]
push eax
push ecx
lea ecx, [esp + 0xeb8]
call fcn.10015910
mov edx, dword [esp + 0xeb0]
push edx
call fcn.1003c010
add esp, 4
mov eax, 0x80004005
jmp 0x10011a39
push str..ram
push esi
call edi
test eax, eax
jne 0x100114de
mov ecx, dword [esp + 0xea8]
lea eax, [esp + 0x10]
push eax
push ecx
call fcn.10012a40
add esp, 8
test eax, eax
jne 0x10011603
mov edx, dword [esp + 0x14]
lea eax, [esp + 0x20]
push edx
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0xea0], bl
call fcn.10008e90
mov ecx, dword [eax]
lea edx, [esp + 0x20]
push ecx
push edx
lea ecx, [esp + 0x1c]
call fcn.10015910
mov eax, dword [esp + 0x14]
push eax
call fcn.1003c010
mov eax, dword [esp + 0xeb4]
add esp, 4
lea ecx, [esp + 0x20]
mov dword [esp + 0x14], ebx
push eax
push ecx
lea ecx, [esp + 0xeb4]
mov dword [esp + 0x20], ebx
mov dword [esp + 0xea0], 0xffffffff
call fcn.10008e90
mov edx, dword [eax]
lea eax, [esp + 0x20]
push edx
jmp 0x100112be
push str..smi
push esi
call edi
test eax, eax
je 0x100114fa
push str..smil
push esi
call edi
test eax, eax
jne 0x10011603
mov eax, dword [esp + 0xea8]
lea edx, [esp + 0x10]
push edx
push eax
call fcn.10012e70
add esp, 8
test eax, eax
jne 0x10011603
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x20]
push ecx
push edx
lea ecx, [esp + 0x18]
mov byte [esp + 0xea0], bl
call fcn.10008e90
mov eax, dword [eax]
lea ecx, [esp + 0x20]
push eax
push ecx
lea ecx, [esp + 0x1c]
call fcn.10015910
mov edx, dword [esp + 0x14]
push edx
call fcn.1003c010
mov eax, dword [esp + 0xeb4]
add esp, 4
lea ecx, [esp + 0xeac]
mov dword [esp + 0x14], ebx
push eax
lea eax, [esp + 0x24]
push eax
mov dword [esp + 0x20], ebx
mov dword [esp + 0xea0], 0xffffffff
call fcn.10008e90
mov ecx, dword [eax]
lea edx, [esp + 0x20]
push ecx
jmp 0x100116c3
mov esi, dword [esp + 0xea8]
lea ecx, [esp + 0x10]
push ecx
push esi
call fcn.10012440
add esp, 8
test eax, eax
jne 0x10011603
lea edx, [esp + 0x10]
push edx
push esi
call fcn.10012cb0
add esp, 8
test eax, eax
jne 0x10011603
mov eax, dword [esp + 0x14]
mov byte [esp + 0xe98], bl
push eax
mov ecx, dword [eax]
lea eax, [esp + 0x24]
push ecx
push eax
lea ecx, [esp + 0x1c]
call fcn.10015910
mov ecx, dword [esp + 0x14]
push ecx
call fcn.1003c010
mov eax, dword [esp + 0xeb4]
add esp, 4
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], ebx
mov ecx, dword [eax]
push eax
mov dword [esp + 0xe9c], 0xffffffff
push ecx
lea edx, [esp + 0x28]
jmp 0x100116c3
push 0x823
lea ecx, [esp + 0x670]
push ebp
mov ebp, dword [sym.imp.KERNEL32.dll_lstrcpynA]
push ecx
call ebp
lea edx, [esp + 0x66c]
push edx
mov dword [esp + 0x20], ebx
call dword [sym.imp.SHLWAPI.dll_PathIsURLA]
test eax, eax
je 0x100116ea
push 0x2f
lea eax, [esp + 0x670]
push ebx
push eax
mov dword [esp + 0x28], 1
call dword [sym.imp.SHLWAPI.dll_StrRChrA]
cmp eax, ebx
je 0x10011658
mov byte [eax + 1], bl
jmp 0x10011706
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x20]
push ecx
push edx
lea ecx, [esp + 0x18]
mov byte [esp + 0xea0], bl
call fcn.10008e90
mov eax, dword [eax]
lea ecx, [esp + 0x20]
push eax
push ecx
lea ecx, [esp + 0x1c]
call fcn.10015910
mov edx, dword [esp + 0x14]
push edx
call fcn.1003c010
mov eax, dword [esp + 0xeb4]
add esp, 4
lea ecx, [esp + 0xeac]
mov dword [esp + 0x14], ebx
push eax
lea eax, [esp + 0x24]
push eax
mov dword [esp + 0x20], ebx
mov dword [esp + 0xea0], 0xffffffff
call fcn.10008e90
mov ecx, dword [eax]
lea edx, [esp + 0x20]
push ecx
push edx
lea ecx, [esp + 0xeb8]
call fcn.10015910
mov eax, dword [esp + 0xeb0]
push eax
call fcn.1003c010
add esp, 4
mov eax, 0x80004005
jmp 0x10011a39
lea ecx, [esp + 0x66c]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecA]
lea edx, [esp + 0x66c]
push edx
call dword [sym.imp.SHLWAPI.dll_PathAddBackslashA]
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
cmp eax, ecx
mov dword [esp + 0x24], eax
je 0x100119f2
mov edi, dword [esp + 0xea0]
mov ecx, dword [esp + 0x1c]
mov eax, dword [eax + 0xc]
cmp ecx, ebx
jne 0x100118e2
cmp eax, ebx
jne 0x10011737
mov eax, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
push eax
call dword [sym.imp.SHLWAPI.dll_PathIsURLA]
test eax, eax
jne 0x1001177a
lea eax, [esp + 0x66c]
push 0x208
lea ecx, [esp + 0x364]
push eax
push ecx
call ebp
mov edx, dword [esp + 0x24]
mov eax, dword [edx + 0xc]
cmp eax, ebx
jne 0x10011769
mov eax, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
push eax
lea eax, [esp + 0x364]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
jmp 0x1001179a
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + 0xc]
cmp eax, ebx
jne 0x1001178a
mov eax, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
push 0x207
lea edx, [esp + 0x364]
push eax
push edx
call ebp
lea eax, [esp + 0x360]
lea ecx, [esp + 0x54]
push eax
push ecx
call dword [sym.imp.SHLWAPI.dll_PathCanonicalizeA]
lea edx, [esp + 0x54]
push edx
call dword [sym.imp.SHLWAPI.dll_PathFindExtensionA]
mov esi, eax
lea eax, [esp + 0xeac]
lea ecx, [esp + 0x54]
push eax
push ecx
call fcn.10014cc0
add esp, 8
test eax, eax
jne 0x100119dc
lea edx, [esp + 0x54]
push edx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x1001184e
test al, 0x10
je 0x1001184e
mov al, byte [esp + 0xeac]
sub esp, 0xc
mov dword [esp + 0x2c], esp
mov esi, esp
push ebx
push ebx
mov ecx, esi
mov byte [esi], al
call fcn.100159a0
mov dword [esi + 4], eax
mov dword [esi + 8], ebx
mov ecx, dword [esp + 0xebc]
lea edx, [esp + 0x50]
push ecx
push edx
lea ecx, [esp + 0xec0]
call fcn.10008e90
mov eax, dword [eax]
lea ecx, [esp + 0x60]
push eax
push ecx
mov ecx, esi
call fcn.10008e90
mov edx, dword [eax]
mov ecx, esi
push edx
call fcn.100158a0
lea eax, [esp + 0x60]
push eax
push edi
call fcn.100106f0
jmp 0x100119dc
push esi
call fcn.100146b0
add esp, 4
test eax, eax
je 0x100118c3
mov cl, byte [esp + 0xeac]
sub esp, 0xc
mov esi, esp
mov dword [esp + 0x2c], esp
push ebx
push ebx
mov byte [esi], cl
mov ecx, esi
call fcn.100159a0
mov dword [esi + 4], eax
mov dword [esi + 8], ebx
mov edx, dword [esp + 0xebc]
lea eax, [esp + 0x58]
push edx
push eax
lea ecx, [esp + 0xec0]
call fcn.10008e90
mov ecx, dword [eax]
lea edx, [esp + 0x50]
push ecx
push edx
mov ecx, esi
call fcn.10008e90
mov eax, dword [eax]
mov ecx, esi
push eax
call fcn.100158a0
lea ecx, [esp + 0x60]
lea edx, [esp + 0x60]
push ecx
push edx
push edi
call fcn.10011140
jmp 0x100119dc
lea eax, [esp + 0x54]
push ebx
push eax
mov ecx, edi
call fcn.10014db0
test eax, eax
jge 0x100119dc
lea ecx, [esp + 0x54]
push ecx
jmp 0x100119d5
cmp eax, ebx
jne 0x100118eb
mov eax, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
lea edx, [esp + 0xeac]
push edx
push eax
call fcn.10014cc0
add esp, 8
test eax, eax
jne 0x100119dc
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0xc]
cmp eax, ebx
jne 0x10011914
mov eax, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindExtensionA]
push eax
call fcn.100146b0
add esp, 4
test eax, eax
je 0x100119b3
mov cl, byte [esp + 0xeac]
sub esp, 0xc
mov esi, esp
mov dword [esp + 0x2c], esp
push ebx
push ebx
mov byte [esi], cl
mov ecx, esi
call fcn.100159a0
mov dword [esi + 4], eax
mov dword [esi + 8], ebx
mov edx, dword [esp + 0xebc]
lea eax, [esp + 0x54]
push edx
push eax
lea ecx, [esp + 0xec0]
call fcn.10008e90
mov ecx, dword [eax]
lea edx, [esp + 0x3c]
push ecx
push edx
mov ecx, esi
call fcn.10008e90
mov eax, dword [eax]
mov ecx, esi
push eax
call fcn.100158a0
lea ecx, [esp + 0x30]
mov byte [esp + 0xea4], 2
call fcn.10015350
mov ecx, eax
call dword [sym.imp.MSVCP60.dll_public:_char_const____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::c_str_void_const]
push eax
lea ecx, [esp + 0x34]
call fcn.10015350
mov ecx, eax
call dword [sym.imp.MSVCP60.dll_public:_char_const____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::c_str_void_const]
push eax
push edi
call fcn.10011140
jmp 0x100119dc
lea ecx, [esp + 0x54]
push ebx
push ecx
mov ecx, edi
call fcn.10014db0
test eax, eax
jge 0x100119dc
mov edx, dword [esp + 0x24]
mov eax, dword [edx + 0xc]
cmp eax, ebx
jne 0x100119d4
mov eax, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
push eax
mov ecx, edi
call fcn.10013940
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
mov eax, dword [eax]
cmp eax, ecx
mov dword [esp + 0x24], eax
jne 0x1001171f
mov eax, dword [ecx]
push ecx
lea ecx, [esp + 0x30]
push eax
push ecx
lea ecx, [esp + 0x1c]
mov byte [esp + 0xea4], bl
call fcn.10015910
mov edx, dword [esp + 0x14]
push edx
call fcn.1003c010
add esp, 4
lea ecx, [esp + 0xeac]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], ebx
mov dword [esp + 0xe98], 0xffffffff
call fcn.100152a0
xor eax, eax
mov ecx, dword [esp + 0xe90]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0xe8c
ret 0x18