Function at 0x411d8a
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x54
push ebx
push esi
xor ebx, ebx
push edi
push ebx
push 0x5c
lea ecx, [ebp + 8]
call dword [sym.imp.MSVCP60.dll_public:_unsigned_int___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::find_unsigned_short_int__unsigned_int_const]
mov ecx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
cmp eax, dword [ecx]
jne 0x411dd6
lea ecx, [ebp + 8]
call dword [sym.imp.MSVCP60.dll_public:_unsigned_short_int_const____thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::c_str_void_const]
push eax
lea eax, [ebp - 0x20]
push 0x30
push eax
call fcn.004135de
add esp, 0xc
lea ecx, [ebp + 8]
push eax
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int______thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::operator_class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int___const__]
lea ecx, [ebp - 0x20]
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::destructor_void_]
mov ecx, dword [ebp + 0x1c]
call dword [sym.imp.MSVCP60.dll_public:_unsigned_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::length_void_const]
test eax, eax
lea ecx, [ebp + 8]
jbe 0x411f46
call dword [sym.imp.MSVCP60.dll_public:_unsigned_short_int_const____thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::c_str_void_const]
push eax
sub esp, 0x10
mov ecx, esp
push dword [ebp + 0x1c]
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
call fcn.00412e4e
add esp, 0x14
push str._alias_audio
lea eax, [ebp - 0x50]
push dword [ebp + 0x18]
push eax
call fcn.00412795
pop ecx
pop ecx
push eax
lea eax, [ebp + 8]
push str.__type
push eax
lea eax, [ebp - 0x40]
push str.open__
push eax
call sub.MSVCP60.dll_class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int_____cdecl_std::operator_unsigned_short_int_const___class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int___const__
add esp, 0xc
push eax
lea eax, [ebp - 0x30]
push eax
call sub.MSVCP60.dll_class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int_____cdecl_std::operator_class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int___const___unsigned_short_int_const__
add esp, 0xc
push eax
lea eax, [ebp - 0x20]
push eax
call sub.MSVCP60.dll_class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int_____cdecl_std::operator_class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int___const___class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int___const__
add esp, 0xc
push eax
lea eax, [ebp - 0x10]
push eax
call sub.MSVCP60.dll_class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int_____cdecl_std::operator_class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int___const___unsigned_short_int_const__
add esp, 0xc
lea ecx, [ebp - 0x20]
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::destructor_void_]
lea ecx, [ebp - 0x30]
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::destructor_void_]
lea ecx, [ebp - 0x40]
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::destructor_void_]
lea ecx, [ebp - 0x50]
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::destructor_void_]
push ebx
push ebx
push ebx
lea ecx, [ebp - 0x10]
call dword [sym.imp.MSVCP60.dll_public:_unsigned_short_int_const____thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::c_str_void_const]
push eax
call dword [sym.imp.WINMM.dll_mciSendStringW]
mov esi, dword [sym.imp.WINMM.dll_mciSendStringA]
push ebx
push ebx
push ebx
push str.play_audio
call esi
sub esp, 0x10
lea eax, [ebp + 0x1f]
mov ecx, esp
push eax
push 0x415664
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const___class_std::allocator_char__const__]
push 0xa9
mov ecx, 0x41c178
call fcn.004020c2
push ebx
push ebx
push 1
push ebx
call dword [sym.imp.KERNEL32.dll_CreateEventA]
cmp eax, ebx
mov dword [0x41c1d4], eax
je 0x411fcb
cmp byte [0x41c1d2], bl
je 0x411ef6
push ebx
push ebx
push ebx
push str.pause_audio
call esi
mov byte [0x41c1d2], bl
cmp byte [0x41c1d3], bl
je 0x411f0e
push ebx
push ebx
push ebx
push str.resume_audio
call esi
mov byte [0x41c1d3], bl
push ebx
lea eax, [ebp - 0x54]
push 0x14
push eax
push str.status_audio_mode
call esi
mov eax, str.stopped
lea edi, [ebp - 0x54]
mov dl, byte [edi]
mov cl, dl
cmp dl, byte [eax]
jne 0x411f83
cmp cl, bl
je 0x411f42
mov dl, byte [edi + 1]
mov cl, dl
cmp dl, byte [eax + 1]
jne 0x411f83
inc edi
inc edi
inc eax
inc eax
cmp cl, bl
jne 0x411f24
xor eax, eax
jmp 0x411f88
call dword [sym.imp.MSVCP60.dll_public:_unsigned_short_int_const____thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::c_str_void_const]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x411e07
sub esp, 0x10
lea eax, [ebp + 0x1f]
mov ecx, esp
push eax
push 0x415664
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const___class_std::allocator_char__const__]
push 0xa8
mov ecx, 0x41c178
call fcn.004020c2
jmp 0x41200b
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x411f98
push dword [0x41c1d4]
call dword [sym.imp.KERNEL32.dll_SetEvent]
push 0x1f4
push dword [0x41c1d4]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x411fbf
push dword [0x41c1d4]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [0x41c1d4], ebx
cmp dword [0x41c1d4], ebx
jne 0x411ede
push ebx
push ebx
push ebx
push str.stop_audio
call esi
push ebx
push ebx
push ebx
push str.close_audio
call esi
sub esp, 0x10
lea eax, [ebp + 0x1f]
mov ecx, esp
push eax
push 0x415664
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const___class_std::allocator_char__const__]
push 0xaa
mov ecx, 0x41c178
call fcn.004020c2
lea ecx, [ebp - 0x10]
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::destructor_void_]
lea ecx, [ebp + 8]
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::destructor_void_]
pop edi
pop esi
pop ebx
leave
ret