Function at 0x40d910
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x8c
mov eax, dword [0x5eae84]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, ecx
mov eax, dword [esi + 0xac]
cmp eax, 1
je 0x40dabc
cmp eax, 5
ja case.0x40d93e.1
jmp dword [eax*4 + 0x40db68]
push str._warn_
lea eax, [ebp - 0x88]
push 0x80
push eax
call dword [sym.imp.MSVCR110.dll_strcpy_s]
push dword [esi + 8]
lea eax, [ebp - 0x82]
push str.Play_sound_is_not_ready__d_
push 0x7a
push eax
call dword [sym.imp.MSVCR110.dll_sprintf_s]
add esp, 0x1c
mov word [ebp + eax - 0x82], 0xa
lea eax, [ebp - 0x88]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
or al, 0xff
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0057d22e
mov esp, ebp
pop ebp
ret 8
push dword [esi + 8]
lea eax, [ebp - 0x88]
push str.Play_sound_is_already_play_waiting__d_
push 0x80
push eax
call dword [sym.imp.MSVCR110.dll_sprintf_s]
mov word [ebp + eax - 0x88], 0xa
add esp, 0x10
lea eax, [ebp - 0x88]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
xor al, al
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0057d22e
mov esp, ebp
pop ebp
ret 8
push dword [esi + 8]
lea eax, [ebp - 0x88]
push str.Play_sound_is_already_playing__d_
push 0x80
push eax
call dword [sym.imp.MSVCR110.dll_sprintf_s]
mov word [ebp + eax - 0x88], 0xa
add esp, 0x10
lea eax, [ebp - 0x88]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
xor al, al
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0057d22e
mov esp, ebp
pop ebp
ret 8
push dword [esi + 8]
lea eax, [ebp - 0x88]
push str.Play_sound_is_already_finish_waiting__d_
push 0x80
push eax
call dword [sym.imp.MSVCR110.dll_sprintf_s]
mov word [ebp + eax - 0x88], 0xa
add esp, 0x10
lea eax, [ebp - 0x88]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
xor al, al
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0057d22e
mov esp, ebp
pop ebp
ret 8
push dword [esi + 8]
lea eax, [ebp - 0x88]
push str.Play_sound_is_already_finished__d_
push 0x80
push eax
call dword [sym.imp.MSVCR110.dll_sprintf_s]
mov word [ebp + eax - 0x88], 0xa
add esp, 0x10
lea eax, [ebp - 0x88]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
xor al, al
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0057d22e
mov esp, ebp
pop ebp
ret 8
mov eax, dword [esi + 0x2c]
test eax, eax
jne 0x40daca
movss xmm2, dword [esi + 0x24]
jmp 0x40daf0
movd xmm2, dword [esi + 0x28]
cvtdq2ps xmm2, xmm2
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm2, xmm0
movss xmm0, dword [esi + 0x24]
subss xmm0, dword [esi + 0x20]
mulss xmm2, xmm0
addss xmm2, dword [esi + 0x20]
mov eax, dword [ebp + 8]
xor ecx, ecx
test eax, eax
setne cl
mov dword [esi + 0x2c], eax
mov eax, dword [ebp + 0xc]
movss dword [esi + 0x20], xmm2
mov dword [esi + 0x24], 0x3f800000
mov dword [esi + 0x28], 0
xor ecx, dword [esi + 0x30]
and ecx, 1
xor dword [esi + 0x30], ecx
add dword [esi + 0xb8], eax
mov dword [esi + 0xc8], eax
mov eax, dword [esi]
mov ecx, esi
mov eax, dword [eax + 0x10]
call eax
test al, al
jne 0x40db50
mov dword [esi + 0xac], 2
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0057d22e
mov esp, ebp
pop ebp
ret 8
mov ecx, esi
call fcn.0040e590
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop esi
call fcn.0057d22e
mov esp, ebp
pop ebp
ret 8