Function at 0x407ae0
Capabilities:
Print debug messages

Disassembly:
push ecx
mov eax, dword [0x41aea8]
test eax, eax
je 0x407d69
mov ecx, dword [0x41ae90]
mov edx, dword [ecx + 0xe44]
mov eax, dword [ecx + 0xe40]
cmp edx, eax
jbe 0x407b0f
sub eax, edx
add eax, 0x64
mov dword [esp], eax
jmp 0x407b15
sub eax, edx
mov dword [esp], eax
mov edx, dword [0x41ae98]
push ebx
push ebp
push esi
test edx, edx
push edi
je 0x407c11
test eax, eax
jbe 0x407d24
mov ebx, eax
mov eax, dword [ecx + 0xe44]
mov edi, 0
lea edx, [eax + 0x80]
shl edx, 4
shl eax, 4
mov esi, dword [edx + ecx]
mov edx, dword [eax + ecx + 0x804]
push esi
lea eax, [edx + edx*2]
shl eax, 4
add eax, edx
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
lea edx, [eax + eax*8]
mov eax, 0x10624dd3
shl edx, 1
mul edx
mov eax, dword [0x41aeb0]
shr edx, 6
add eax, edx
mov edx, dword [0x41aeb4]
adc edx, edi
cmp esi, 4
mov dword [0x41aeb0], eax
mov dword [0x41aeb4], edx
jb 0x407bbd
mov ebp, dword [0x41aeb8]
add ebp, ecx
push ebp
push edx
push eax
call fcn.00408460
mov eax, dword [0x41aeb8]
add esp, 0x10
add eax, esi
cmp eax, 0x738
mov dword [0x41aeb8], eax
jb 0x407bd8
mov dword [0x41aeb8], edi
jmp 0x407bd8
mov esi, dword [ecx + 0xe44]
shl esi, 4
lea ecx, [esi + ecx + 0x808]
push ecx
push edx
push eax
call fcn.00408460
add esp, 0x10
mov eax, dword [0x41ae90]
mov ecx, dword [eax + 0xe44]
inc ecx
mov dword [eax + 0xe44], ecx
mov ecx, dword [0x41ae90]
cmp dword [ecx + 0xe44], 0x64
jb 0x407c05
mov dword [ecx + 0xe44], edi
mov ecx, dword [0x41ae90]
dec ebx
jne 0x407b31
jmp 0x407d24
mov edi, 0x2ee0
xor ebx, ebx
xor ebp, ebp
mov dword [0x41aeb0], edi
test eax, eax
mov dword [0x41aeb4], ebx
jbe 0x407d1a
jmp 0x407c3c
mov ebx, dword [0x41aeb4]
mov edi, dword [0x41aeb0]
mov eax, dword [ecx + 0xe44]
lea edx, [eax + 0x80]
shl edx, 4
test ebp, ebp
mov esi, dword [edx + ecx]
je 0x407c8a
shl eax, 4
mov edx, dword [eax + ecx + 0x804]
lea eax, [edx + edx*2]
shl eax, 4
add eax, edx
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
lea edx, [eax + eax*8]
mov eax, 0x10624dd3
shl edx, 1
mul edx
shr edx, 6
add edi, edx
adc ebx, 0
mov dword [0x41aeb0], edi
mov dword [0x41aeb4], ebx
cmp esi, 4
push esi
jb 0x407cc1
mov eax, dword [0x41aeb8]
add eax, ecx
push eax
push ebx
push edi
call fcn.00408460
mov eax, dword [0x41aeb8]
add esp, 0x10
add eax, esi
cmp eax, 0x738
mov dword [0x41aeb8], eax
jb 0x407cdc
mov dword [0x41aeb8], 0
jmp 0x407cdc
mov edx, dword [ecx + 0xe44]
shl edx, 4
lea eax, [edx + ecx + 0x808]
push eax
push ebx
push edi
call fcn.00408460
add esp, 0x10
mov eax, dword [0x41ae90]
mov ecx, dword [eax + 0xe44]
inc ecx
mov dword [eax + 0xe44], ecx
mov ecx, dword [0x41ae90]
cmp dword [ecx + 0xe44], 0x64
jb 0x407d0d
mov dword [ecx + 0xe44], 0
mov ecx, dword [0x41ae90]
mov eax, dword [esp + 0x10]
inc ebp
cmp ebp, eax
jb 0x407c30
mov dword [0x41ae98], 1
mov eax, dword [0x41ae9c]
pop edi
pop esi
pop ebp
test eax, eax
pop ebx
jne 0x407d69
mov ecx, dword [0x41aea8]
push ecx
call dword [sym.imp.WINMM.dll_waveOutPause]
call fcn.004079e0
test eax, eax
jne 0x407d52
push 0x414228
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov edx, dword [0x41aea8]
mov dword [0x41ae9c], 1
push edx
call dword [sym.imp.WINMM.dll_waveOutRestart]
pop ecx
ret