Function at 0x4d681b
Capabilities:
Check for software breakpoints

Disassembly:
push ebp
lea ebp, [esp - 0x70]
sub esp, 0x1f4
push ebx
xor ebx, ebx
push esi
xor esi, esi
inc ebx
cmp dword [ebp + 0x7c], 2
push edi
mov byte [ebp + 0x6c], 0
jne 0x4d684d
cmp byte [0x465357], 0
mov dword [ebp + 0x7c], ebx
jne 0x4d684d
mov byte [0x465357], bl
mov byte [ebp + 0x6c], bl
cmp dword [0x466198], esi
je 0x4d6860
push esi
mov ecx, 0x466180
call fcn.0050dccb
cmp dword [ebp + 0x78], reloc.WINMM.dll_midiStreamOut
push 0xa
pop edi
jne 0x4d6875
mov dword [ebp + 0x78], edi
mov byte [ebp + 0x38], 1
jmp 0x4d6883
cmp dword [ebp + 0x78], 5
setle byte [ebp + 0x38]
cmp byte [ebp + 0x38], 0
je 0x4d6888
mov dword [ebp + 0x18], esi
jmp 0x4d6891
call dword [fcn.0045826c]
mov dword [ebp + 0x18], eax
cmp dword [0x466ed4], esi
je 0x4d689e
call fcn.004d7a56
cmp dword [0x466100], esi
mov byte [ebp + 0x6f], 0
je 0x4d68b7
call fcn.004d616e
test al, al
je 0x4d68b7
mov byte [ebp + 0x6f], 1
cmp dword [ebp + 0x78], esi
jle 0x4d6943
cmp dword [ebp + 0x7c], ebx
jne 0x4d6943
inc dword [0x465358]
cmp byte [0x465350], 0
mov byte [ebp + 0x6e], 1
jne 0x4d68f2
push esi
push edi
push 9
push dword [0x465208]
call dword [0x458528]
test eax, eax
setne al
mov byte [0x465350], al
mov ebx, dword [ebp + 0x78]
mov byte [ebp + 0x67], 0
mov byte [ebp + 0x6d], 0
mov esi, dword [fcn.0045826c]
call esi
xor ecx, ecx
cmp dword [ebp + 0x78], ecx
mov edi, eax
jle 0x4d6a99
cmp byte [ebp + 0x6d], cl
jne 0x4d6a99
cmp byte [0x465357], cl
jne 0x4d6aa6
cmp byte [0x4651f0], cl
je 0x4d6949
cmp byte [0x463069], cl
je 0x4d6949
cmp dword [0x465370], ecx
jne 0x4d6949
xor eax, eax
jmp 0x4d694e
mov byte [ebp + 0x6e], 0
jmp 0x4d68f2
mov eax, 0x311
push eax
push ecx
push ecx
lea eax, [ebp + 0x44]
push eax
call dword [0x4584b4]
cmp eax, reloc.WINMM.dll_midiStreamOut
je 0x4d68fd
call esi
mov ecx, eax
sub ecx, edi
cmp ecx, 3
jbe 0x4d6970
mov dword [0x466150], eax
cmp dword [0x465b0c], 0
je 0x4d699d
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp + 0x44]
push eax
push dword [ebp + 0x50]
push dword [ebp + 0x4c]
push dword [ebp + 0x48]
push dword [ebp + 0x44]
call fcn.004d62f7
add esp, 0x18
test al, al
jne 0x4d68fd
cmp dword [0x468ee8], 0
je 0x4d6e2a
mov eax, dword [ebp + 0x44]
test eax, eax
je 0x4d6e2a
cmp eax, dword [0x465208]
je 0x4d6e2a
cmp dword [ebp + 0x48], reloc.WINMM.dll_midiStreamOut
je 0x4d6e2a
cmp dword [ebp + 0x48], reloc.WINMM.dll_midiStreamOut
je 0x4d6e2a
cmp dword [ebp + 0x48], reloc.WINMM.dll_midiStreamOut
jne 0x4d6ddb
mov eax, dword [ebp + 0x4c]
cmp eax, 0x22
je 0x4d6a08
cmp eax, 0x21
je 0x4d6a08
cmp eax, 9
je 0x4d6a08
cmp eax, 0x25
je 0x4d6a08
cmp eax, 0x27
jne 0x4d6d0c
call dword [0x4584b8]
mov esi, eax
test esi, esi
je 0x4d6d0c
push esi
call fcn.00505fb3
test eax, eax
pop ecx
je 0x4d6d0c
push eax
call fcn.004fcf1a
mov ebx, eax
test ebx, ebx
pop ecx
je 0x4d6d0c
cmp byte [ebx + 0x54], 0
je 0x4d6d0c
push 0
push esi
mov ecx, ebx
call fcn.004fcebb
mov edi, eax
test edi, edi
mov dword [ebp + 0x68], edi
je 0x4d6d0c
mov al, byte [edi + 4]
cmp al, 0xf
je 0x4d6d0c
xor esi, esi
cmp al, 0x13
mov eax, dword [ebp + 0x4c]
jne 0x4d6c8c
cmp eax, 0x25
mov esi, edi
je 0x4d6a81
cmp eax, 0x27
jne 0x4d6c8c
cmp eax, 0x27
sete al
push 0
push 0
push eax
push edi
mov ecx, ebx
call fcn.00500516
jmp 0x4d68fd
cmp byte [0x465357], 0
je 0x4d6bfb
call dword [fcn.004584bc]
mov esi, eax
test esi, esi
je 0x4d6bfb
push 0
push esi
call dword [0x4584c0]
cmp eax, dword [0x465c44]
jne 0x4d6bfb
cmp dword [0x46537c], 0
je 0x4d6afc
push 0x20
lea eax, [ebp - 0x3c]
push eax
push esi
call dword [0x4584c4]
lea eax, [ebp - 0x3c]
push 0x4585f8
push eax
call fcn.00520be7
neg eax
sbb al, al
pop ecx
inc al
pop ecx
mov byte [ebp + 0x43], al
jne 0x4d6b36
call dword [0x4584b8]
test eax, eax
je 0x4d6bfb
push 0x20
lea ecx, [ebp - 0x3c]
push ecx
push eax
call dword [0x4584c4]
lea eax, [ebp - 0x3c]
push 0x4585e8
push eax
call fcn.0050ca68
neg eax
sbb al, al
pop ecx
inc al
pop ecx
mov byte [ebp + 0x43], al
je 0x4d6bfb
mov esi, dword [0x4584c8]
xor eax, eax
push eax
push 0x1ff
push eax
push eax
lea eax, [ebp + 0x44]
push eax
call esi
test eax, eax
jne 0x4d6b82
cmp byte [0x4651f0], al
je 0x4d6b68
cmp byte [0x463069], al
je 0x4d6b68
cmp dword [0x465370], eax
je 0x4d6b6d
mov eax, 0x311
push 1
push eax
push 0x20e
push 0
lea eax, [ebp + 0x44]
push eax
call esi
jmp 0x4d6c2d
cmp byte [0x4651f0], 0
mov esi, dword [ebp + 0x54]
je 0x4d6ba1
cmp byte [0x463069], 0
je 0x4d6ba1
xor eax, eax
cmp dword [0x465370], eax
je 0x4d6ba6
mov eax, 0x311
push 0
push eax
push 0x20e
push 0
lea eax, [ebp + 0x44]
push eax
call dword [0x4584c8]
test eax, eax
je 0x4d6bc7
mov eax, dword [ebp + 0x54]
sub eax, esi
test eax, eax
jle 0x4d6bd0
push 1
push 0x1ff
jmp 0x4d6c1f
cmp byte [0x4651f0], 0
je 0x4d6bec
cmp byte [0x463069], 0
je 0x4d6bec
xor eax, eax
cmp dword [0x465370], eax
je 0x4d6bf1
mov eax, 0x311
push 1
push eax
push 0x20e
jmp 0x4d6c21
cmp byte [0x4651f0], 0
je 0x4d6c17
cmp byte [0x463069], 0
je 0x4d6c17
xor eax, eax
cmp dword [0x465370], eax
je 0x4d6c1c
mov eax, 0x311
push 1
push eax
push 0
lea eax, [ebp + 0x44]
push 0
push eax
call dword [0x4584c8]
xor esi, esi
cmp eax, esi
jne 0x4d6970
call dword [fcn.0045826c]
mov ecx, eax
sub ecx, edi
cmp ecx, 3
jbe 0x4d6c4b
mov dword [0x466150], eax
cmp dword [ebp + 0x78], esi
jne 0x4d6c66
cmp byte [ebp + 0x67], 0
jne 0x4d6c66
push esi
call dword [fcn.00458264]
mov byte [ebp + 0x67], 1
jmp 0x4d68fd
push dword [ebp + 0x38]
push dword [ebp + 0x18]
push dword [ebp + 0x78]
call fcn.004d7a15
add esp, 0xc
test eax, eax
jne 0x4d7980
push 5
call dword [fcn.00458264]
jmp 0x4d68fd
cmp eax, 0x25
je 0x4d6d0c
cmp eax, 0x27
je 0x4d6d0c
push 0x11
call dword [fcn.004584cc]
test ah, ah
jns 0x4d6d0c
cmp dword [ebp + 0x4c], 9
jne 0x4d6cbc
cmp byte [edi + 4], 0xc
jne 0x4d6cbc
push 0xfffffffffffffff0
push dword [edi]
call dword [fcn.004584d0]
test al, 4
jne 0x4d6d0c
test esi, esi
jne 0x4d6ce1
xor eax, eax
mov al, byte [edi + 6]
mov ecx, ebx
push eax
call fcn.004fd510
mov esi, eax
test esi, esi
jne 0x4d6ce1
push eax
mov ecx, ebx
call fcn.004fd510
mov esi, eax
test esi, esi
je 0x4d6d0c
cmp dword [ebp + 0x4c], 0x22
je 0x4d6cfd
cmp dword [ebp + 0x4c], 9
jne 0x4d6cf9
push 0x10
call dword [fcn.004584cc]
test ah, ah
jns 0x4d6cfd
xor al, al
jmp 0x4d6d01
xor eax, eax
mov al, 1
push 1
push 1
push eax
push esi
jmp 0x4d6a8d
cmp dword [ebp + 0x4c], 0x1b
je 0x4d6d32
cmp dword [ebp + 0x4c], 9
je 0x4d6d32
cmp dword [ebp + 0x4c], 0x41
jne 0x4d6db5
push 0x11
call dword [fcn.004584cc]
test ah, ah
jns 0x4d6db5
call dword [0x4584b8]
mov esi, eax
test esi, esi
je 0x4d6db5
push esi
call fcn.00505fb3
test eax, eax
pop ecx
je 0x4d6db5
push eax
call fcn.004fcf1a
mov ebx, eax
test ebx, ebx
pop ecx
je 0x4d6db5
push 0
push esi
mov ecx, ebx
call fcn.004fcebb
test eax, eax
mov dword [ebp + 0x68], eax
je 0x4d6db5
cmp byte [eax + 4], 0xc
jne 0x4d6db5
cmp dword [ebp + 0x4c], 0x1b
je 0x4d6da9
cmp dword [ebp + 0x4c], 0x41
je 0x4d6d8d
test byte [eax + 5], 0x80
je 0x4d6db5
push 0x4585e4
push 1
push 0xc2
jmp 0x4d6d9c
test byte [eax + 5], 2
jne 0x4d6db5
push 0xffffffffffffffff
push 0
push 0xb1
push dword [eax]
call dword [fcn.004584d4]
jmp 0x4d68fd
mov ecx, ebx
call fcn.004fcc55
jmp 0x4d68fd
mov eax, dword [0x468eec]
xor ecx, ecx
cmp eax, ecx
je 0x4d6ddb
cmp dword [ebp + 0x4c], 0xd
jne 0x4d6dca
push ecx
push ecx
jmp 0x4d6dd3
cmp dword [ebp + 0x4c], 0x1b
jne 0x4d6ddb
push ecx
push 1
push 0x1116
push eax
jmp 0x4d6d9e
xor edi, edi
mov esi, 0x465928
mov eax, dword [esi]
test eax, eax
je 0x4d6e1f
cmp dword [eax], 0
je 0x4d6e16
mov ecx, dword [ebp + 0x48]
mov dword [0x4651e8], ecx
lea ecx, [ebp + 0x44]
push ecx
mov byte [0x4651ec], 1
push dword [eax]
call dword [0x4584d8]
test eax, eax
jne 0x4d7369
mov byte [0x4651ec], al
inc edi
cmp dword [0x468ee8], edi
je 0x4d6e2a
add esi, 4
cmp esi, 0x465ab4
jl 0x4d6de2
mov ecx, dword [ebp + 0x48]
mov eax, 0x312
cmp ecx, eax
ja 0x4d6f7f
je 0x4d6fc2
mov eax, ecx
sub eax, 0x12
je 0x4d6f6a
sub eax, 0x39
je 0x4d6f5a
sub eax, 0xb5
je 0x4d6f2e
sub eax, 0x13
jne 0x4d72e9
xor esi, esi
cmp dword [ebp + 0x50], esi
jne 0x4d72e9
mov eax, dword [0x465208]
cmp dword [ebp + 0x44], eax
jne 0x4d72e9
cmp dword [0x466ed4], esi
je 0x4d6e8e
call fcn.004d7a56
call dword [fcn.0045826c]
cmp dword [0x466100], esi
mov dword [0x466154], eax
je 0x4d6eae
call fcn.004d616e
test al, al
je 0x4d6eae
mov byte [ebp + 0x6f], 1
cmp dword [ebp + 0x7c], esi
je 0x4d68fd
cmp dword [ebp + 0x78], 1
jl 0x4d68fd
push dword [ebp + 0x38]
push dword [ebp + 0x18]
push dword [ebp + 0x78]
call fcn.004d7a15
add esp, 0xc
test eax, eax
je 0x4d68fd
cmp byte [ebp + 0x6c], 0
je 0x4d6ee7
mov byte [0x465357], 0
cmp byte [ebp + 0x6e], 0
je 0x4d6ef3
dec dword [0x465358]
cmp byte [0x465350], 0
je 0x4d79e5
xor eax, eax
cmp dword [ebp + 0x78], eax
jle 0x4d7a0a
cmp dword [0x465358], eax
jne 0x4d7a0a
cmp dword [0x466100], eax
jne 0x4d7a0a
cmp dword [0x466ed4], eax
jmp 0x4d79bd
mov eax, dword [ebp + 0x44]
cmp eax, dword [0x46520c]
jne 0x4d72e9
cmp dword [ebp + 0x4c], 0x1b
jne 0x4d72e9
push 0
push dword [0x465208]
call dword [fcn.004584dc]
jmp 0x4d68fd
and dword [0x465340], 0
mov byte [ebp + 0x6d], 1
jmp 0x4d68fd
push 0
push 0
push 6
mov ecx, 0x465c88
call fcn.004e051a
jmp 0x4d68fd
cmp ecx, 0x400
jb 0x4d72e9
cmp ecx, 0x401
jbe 0x4d6faf
cmp ecx, 0x402
je 0x4d6fc2
cmp ecx, 0x414
je 0x4d6fc2
cmp ecx, 0x415
jne 0x4d72e9
mov eax, dword [ebp + 0x44]
test eax, eax
je 0x4d6fc2
cmp eax, dword [0x465208]
jne 0x4d72e9
mov eax, ecx
xor esi, esi
xor edi, edi
sub eax, 0x401
je 0x4d719e
dec eax
je 0x4d7179
sub eax, 0x12
je 0x4d7035
dec eax
je 0x4d702b
mov eax, dword [0x4641d0]
movzx eax, word [eax]
cmp dword [ebp + 0x4c], eax
jae 0x4d68fd
mov eax, dword [ebp + 0x4c]
mov ecx, dword [eax*4 + reloc.WINMM.dll_midiStreamOut]
lea eax, [ebp + 0x34]
push eax
mov dword [ebp + 0x14], ecx
call fcn.004da53e
test eax, eax
mov dword [ebp + 0x24], eax
je 0x4d68fd
mov ecx, eax
mov al, byte [ecx + 0x18]
cmp al, 1
je 0x4d7024
cmp al, 3
je 0x4d7024
and dword [ebp + 0x34], edi
mov eax, dword [ecx]
jmp 0x4d7210
mov eax, dword [0x4660e8]
jmp 0x4d7210
push dword [ebp + 0x44]
call fcn.004fcf1a
mov ebx, eax
cmp ebx, esi
pop ecx
je 0x4d72e9
mov eax, dword [ebx + 8]
mov ecx, dword [ebp + 0x4c]
mov edx, dword [ebp + 0x50]
mov dword [ebp + 8], eax
movzx eax, cx
shr ecx, 0x10
cmp eax, 8
mov dword [ebp + 0x60], edx
mov dword [ebp + 0x1c], eax
mov dword [ebp + 0x10], ecx
jne 0x4d7076
mov dword [ebp + 0x60], ecx
mov ecx, 0x2af8
mov dword [ebp + 0xc], edx
mov dword [ebp + 0x10], ecx
cmp ecx, dword [ebx + 0xc]
jae 0x4d7089
mov edx, dword [ebx + 0x14]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*4]
mov dword [ebp + 0x68], ecx
jmp 0x4d708c
mov dword [ebp + 0x68], esi
sub eax, 5
mov dword [ebp + 0x30], esi
mov byte [ebp + 0x66], 0
je 0x4d7130
dec eax
je 0x4d711d
dec eax
je 0x4d7107
dec eax
je 0x4d70f4
dec eax
je 0x4d70e4
cmp dword [ebp + 0x68], esi
je 0x4d68fd
mov eax, dword [ebp + 0x68]
mov ecx, dword [eax + 0xc]
test ecx, ecx
mov dword [ebp + 0x3c], ecx
jne 0x4d70d4
test byte [eax + 5], 1
je 0x4d68fd
mov ecx, ebx
call fcn.004f9ac3
jmp 0x4d68fd
test byte [eax + 5], 4
jne 0x4d68fd
mov byte [ebp + 0x66], 1
jmp 0x4d7159
mov eax, dword [ebx + 0x2c]
cmp eax, esi
mov dword [ebp + 0x3c], eax
je 0x4d68fd
jmp 0x4d7159
mov eax, dword [ebx + 0x24]
cmp eax, esi
mov dword [ebp + 0x3c], eax
je 0x4d68fd
lea eax, [ebx + 0x32]
jmp 0x4d7118
mov eax, dword [ebx + 0x20]
cmp eax, esi
mov dword [ebp + 0x3c], eax
je 0x4d68fd
lea eax, [ebx + 0x31]
mov dword [ebp + 0x30], eax
jmp 0x4d7159
mov eax, dword [ebx + 0x1c]
cmp eax, esi
mov dword [ebp + 0x3c], eax
je 0x4d68fd
lea eax, [ebx + 0x30]
jmp 0x4d7118
mov eax, dword [ebx + 0x28]
cmp eax, esi
mov edi, dword [ebx + 0x6c]
mov dword [ebp + 0x3c], eax
je 0x4d7161
cmp edi, esi
je 0x4d68fd
xor esi, esi
push esi
push esi
push 0xffffffffffffffff
push edi
call dword [0x458300]
cmp eax, esi
mov dword [ebp + 0x60], eax
je 0x4d7161
mov eax, dword [ebp + 0x3c]
jmp 0x4d7210
cmp edi, esi
je 0x4d68fd
push edi
call dword [fcn.00458304]
and dword [ebx + 0x6c], 0
jmp 0x4d68fd
push dword [ebp + 0x50]
mov ecx, 0x465c88
call fcn.00501379
cmp eax, esi
mov dword [ebp + 0x28], eax
je 0x4d68fd
mov eax, dword [eax + 0xc]
test eax, eax
je 0x4d68fd
jmp 0x4d7210
mov eax, dword [ebp + 0x4c]
cmp eax, dword [0x466edc]
jae 0x4d68fd
mov eax, dword [0x466ed8]
mov ecx, dword [ebp + 0x4c]
mov esi, dword [eax + ecx*4]
xor eax, eax
mov al, byte [esi + 0x20]
test al, al
mov dword [ebp + 0x2c], esi
je 0x4d71e9
push dword [esi + 0x10]
push dword [esi + 0xc]
push eax
call fcn.004d8849
add esp, 0xc
test eax, eax
mov dword [ebp + 0x34], eax
je 0x4d68fd
mov al, byte [esi + 0x20]
cmp al, 1
je 0x4d71ed
cmp al, 3
je 0x4d71ed
and dword [ebp + 0x34], 0
push dword [ebp + 0x50]
mov ecx, esi
call fcn.004d84ad
mov eax, dword [esi + 8]
cmp byte [eax], 0
jne 0x4d68fd
mov al, byte [ebp + 0x50]
mov byte [0x466118], al
mov eax, dword [ebp + 0x2c]
mov eax, dword [eax]
mov eax, dword [eax + 4]
mov ecx, dword [0x46535c]
cmp ecx, dword [0x463078]
mov al, byte [eax]
mov byte [ebp + 0x20], al
jl 0x4d7253
cmp ecx, 0x14
jg 0x4d7387
cmp al, 0xd5
je 0x4d7253
cmp al, 0xc1
je 0x4d7253
cmp al, 0xcf
je 0x4d7253
cmp al, 0xd0
je 0x4d7253
cmp al, 0xcb
je 0x4d7253
cmp al, 0xcc
je 0x4d7253
cmp al, 0xcd
je 0x4d7253
cmp al, 0xce
jne 0x4d7387
mov eax, dword [ebp + 0x48]
sub eax, 0x401
je 0x4d7379
dec eax
je 0x4d72b1
sub eax, 0x12
je 0x4d72a5
dec eax
je 0x4d7291
push dword [ebp + 0x24]
mov ecx, dword [ebp + 0x14]
call fcn.004da459
test al, al
jne 0x4d7289
push dword [ebp + 0x24]
call fcn.004da496
pop ecx
jmp 0x4d68fd
mov eax, dword [ebp + 0x24]
jmp 0x4d737c
cmp byte [0x4660e4], 0
jne 0x4d68fd
xor esi, esi
jmp 0x4d737f
mov eax, dword [ebp + 0x30]
test eax, eax
je 0x4d729e
cmp byte [eax], 0
jmp 0x4d7298
mov eax, dword [ebp + 0x28]
mov esi, dword [eax + 0x18]
mov eax, dword [ebp + 0x4c]
cmp eax, 0x63
jae 0x4d7375
mov ebx, dword [eax*4 + reloc.WINMM.dll_midiStreamOut]
test ebx, ebx
jne 0x4d737f
cmp dword [ebp + 0x44], ebx
je 0x4d737f
mov eax, dword [0x465208]
cmp dword [ebp + 0x44], eax
je 0x4d737f
call dword [fcn.004584bc]
mov esi, eax
test esi, esi
je 0x4d7936
push 0
push esi
call dword [0x4584c0]
cmp eax, dword [0x465c44]
jne 0x4d7936
push 0x20
lea eax, [ebp - 0x3c]
push eax
push esi
call dword [0x4584c4]
lea eax, [ebp - 0x3c]
push 0x4585f8
push eax
call fcn.00520be7
test eax, eax
pop ecx
pop ecx
jne 0x4d7936
mov eax, dword [ebp + 0x48]
mov dword [0x4651e8], eax
lea eax, [ebp + 0x44]
push eax
push esi
mov byte [0x4651ec], 1
call dword [0x4584d8]
test eax, eax
je 0x4d792f
cmp dword [0x46537c], 0
je 0x4d7369
push 0x465b28
call dword [0x458268]
mov byte [0x4651ec], 0
jmp 0x4d68fd
xor ebx, ebx
jmp 0x4d737f
mov eax, dword [ebp + 0x2c]
mov esi, dword [eax + 0x14]
cmp esi, dword [0x465164]
jge 0x4d738e
test edi, edi
jmp 0x4d7163
cmp dword [0x466100], 0
mov byte [ebp + 0x6f], 1
jne 0x4d73c6
cmp dword [0x466ed4], 0
jne 0x4d73c6
cmp byte [0x465350], 0
je 0x4d73c6
push 9
push dword [0x465208]
call dword [fcn.0045853c]
test eax, eax
je 0x4d73c6
mov byte [0x465350], 0
mov eax, dword [ebp + 0x48]
cmp eax, 0x402
je 0x4d741e
cmp eax, 0x413
jbe 0x4d73de
cmp eax, 0x415
jbe 0x4d7449
cmp eax, 0x401
mov ecx, dword [0x4660d8]
mov dword [0x4660dc], ecx
mov ecx, dword [0x466110]
mov dword [0x466114], ecx
jne 0x4d7406
mov eax, dword [ebp + 0x2c]
mov eax, dword [eax]
mov eax, dword [eax]
jmp 0x4d740c
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 4]
mov dword [0x4660d8], eax
call dword [fcn.0045826c]
mov dword [0x466110], eax
jmp 0x4d7449
mov eax, dword [ebp + 0x28]
mov edi, 0x105
push edi
push dword [eax]
push 0x465ecc
call fcn.00503ed0
mov eax, dword [ebp + 0x28]
mov eax, dword [eax + 0x14]
push edi
push dword [eax]
push 0x465fd1
call fcn.00503ed0
add esp, 0x18
mov ecx, dword [0x465b20]
push 0x80
call fcn.004ccf90
push eax
lea eax, [ebp - 0xbc]
push eax
call fcn.00503ed0
push 0xc8
lea eax, reloc.WINMM.dll_midiStreamOut
push 0x465138
push eax
call fcn.005208a7
push dword [ebp + 0x20]
xor edi, edi
inc edi
push edi
push 0
push esi
call fcn.004d6745
add esp, 0x28
push 0
mov ecx, 0x465c88
call fcn.004d6670
cmp dword [0x46537c], 0
je 0x4d74ae
push 0x465b28
call dword [0x458268]
call dword [fcn.0045826c]
mov dword [0x466154], eax
mov dword [0x466150], eax
mov eax, dword [ebp + 0x48]
sub eax, 0x401
je 0x4d7883
dec eax
je 0x4d7858
sub eax, 0x12
je 0x4d7573
dec eax
je 0x4d750a
mov ecx, dword [ebp + 0x14]
mov al, byte [ecx + 0x12]
cmp al, 0x9e
je 0x4d74ed
cmp al, 0x9f
jne 0x4d74f5
mov eax, dword [ebp + 0x50]
mov dword [0x465170], eax
mov eax, dword [ebp + 0x34]
push dword [ebp + 0x24]
mov dword [0x4651d4], eax
call fcn.004da633
jmp 0x4d7893
call dword [0x4584e0]
test eax, eax
je 0x4d753d
mov esi, dword [0x458550]
push edi
call esi
test eax, eax
jne 0x4d7535
push 0xf
call esi
test eax, eax
jne 0x4d7535
mov dword [0x465170], 2
jmp 0x4d7544
mov dword [0x465170], edi
jmp 0x4d7544
and dword [0x465170], 0
push dword [0x465170]
mov ecx, dword [0x465b20]
call fcn.004ccb4f
mov ecx, dword [0x4660e8]
mov byte [0x4660e4], 1
call fcn.004d0bb6
mov byte [0x4660e4], 0
jmp 0x4d7893
mov ecx, dword [ebp + 0x1c]
push 5
pop edi
cmp ecx, edi
mov byte [ebp - 8], 0
je 0x4d7752
jbe 0x4d76cb
cmp ecx, 8
jbe 0x4d7664
cmp ecx, 9
jne 0x4d76cb
mov ecx, dword [ebp + 0x58]
mov esi, dword [ebp + 0x68]
xor eax, eax
cmp dword [ebp + 0x60], eax
mov dword [0x465174], ecx
mov ecx, dword [ebp + 0x5c]
sete al
and dword [ebp + 0x60], 0
test esi, esi
mov dword [0x465178], ecx
lea eax, [eax + eax + 1]
mov dword [0x46516c], eax
je 0x4d7651
cmp eax, 1
jne 0x4d75e1
push 0x465174
push esi
mov ecx, ebx
call fcn.004fa46d
movzx eax, byte [esi + 4]
sub eax, 9
je 0x4d763c
dec eax
je 0x4d7631
dec eax
jne 0x4d7651
cmp dword [0x46516c], 1
jne 0x4d7604
push 0
push 9
push 0x110a
jmp 0x4d7627
mov eax, dword [ebp + 0x58]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp + 0x5c]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x1c]
push eax
push dword [esi]
call dword [0x4584e4]
lea eax, [ebp - 0x1c]
push eax
push 0
push 0x1111
push dword [esi]
call dword [fcn.004584d4]
jmp 0x4d764e
push 1
push 0xffffffffffffffff
push 0x100c
jmp 0x4d7645
push 0
push 0
push 0x19f
push dword [esi]
call dword [fcn.004584d4]
inc eax
mov dword [ebp + 0x60], eax
push dword [ebx]
push 0x465174
call fcn.00503c6f
pop ecx
pop ecx
jmp 0x4d77a5
cmp ecx, 8
mov esi, dword [ebp + 0x68]
mov dword [0x46516c], 1
jne 0x4d779d
mov eax, dword [ebp + 0xc]
mov dword [0x465174], eax
push dword [ebp + 0x60]
mov ecx, dword [0x465b20]
call fcn.004ccb4f
mov eax, dword [ebx]
mov edi, dword [ebp + 0x10]
mov dword [0x4651d4], eax
mov eax, dword [ebx + 8]
mov dword [0x46517c], eax
mov eax, dword [ebx + 8]
mov dword [0x465184], eax
mov eax, dword [ebp + 0x60]
mov dword [0x465170], eax
mov eax, dword [ebp + 0x30]
test eax, eax
mov dword [0x465180], edi
je 0x4d77bf
mov byte [eax], 1
jmp 0x4d77c9
mov esi, dword [ebp + 0x68]
mov al, byte [esi + 4]
cmp al, 0xa
je 0x4d76fc
cmp al, 0x15
jne 0x4d774a
mov eax, dword [ebp + 0x58]
mov dword [0x465174], eax
mov eax, dword [ebp + 0x5c]
mov dword [0x465178], eax
push dword [ebx]
push 0x465174
call fcn.00503c6f
pop ecx
pop ecx
mov ecx, dword [ebp + 0x1c]
jmp 0x4d774a
cmp cl, 0x49
jne 0x4d774a
test ch, 1
lea eax, [ebp - 8]
je 0x4d770f
mov byte [ebp - 8], 0x53
jmp 0x4d7718
test ch, 2
je 0x4d771b
mov byte [ebp - 8], 0x73
lea eax, [ebp - 7]
test ch, 4
je 0x4d7725
mov byte [eax], 0x46
jmp 0x4d772d
test ch, 8
je 0x4d772e
mov byte [eax], 0x66
inc eax
test ch, 0x10
je 0x4d7738
mov byte [eax], 0x43
jmp 0x4d7740
test ch, 0x20
je 0x4d7741
mov byte [eax], 0x63
inc eax
push 0x49
pop ecx
mov byte [eax], 0
mov dword [ebp + 0x1c], ecx
mov dword [0x46516c], ecx
jmp 0x4d7794
mov eax, dword [ebp + 0x58]
mov dword [0x465174], eax
mov eax, dword [ebp + 0x5c]
mov dword [0x46516c], edi
mov dword [0x465178], eax
push dword [ebx]
push 0x465174
call fcn.00503c6f
pop ecx
pop ecx
push 0xffffffffffffffec
push dword [ebx]
call dword [fcn.004584d0]
and eax, 0xffffffef
push eax
push 0xffffffffffffffec
push dword [ebx]
call dword [0x4584e8]
mov esi, dword [ebp + 0x68]
mov ecx, dword [ebp + 0x1c]
cmp ecx, 8
je 0x4d7682
cmp ecx, edi
je 0x4d7682
mov ecx, dword [0x465b20]
push 1
push 0
push 0xffffffffffffffff
lea eax, [ebp - 8]
push eax
call fcn.004cc7e9
jmp 0x4d7690
cmp byte [ebp + 0x66], 0
je 0x4d77c9
or byte [esi + 5], 4
mov ecx, dword [ebp + 0x3c]
call fcn.004d0bb6
mov eax, dword [ebp + 8]
mov ebx, dword [eax*4 + reloc.WINMM.dll_midiStreamOut]
test ebx, ebx
je 0x4d7893
cmp edi, dword [ebx + 0xc]
jae 0x4d77f3
mov ecx, dword [ebx + 0x14]
lea eax, [edi + edi*4]
lea ecx, [ecx + eax*4]
jmp 0x4d77f5
xor ecx, ecx
mov eax, dword [ebp + 0x1c]
sub eax, 5
mov dword [ebp + 0x68], ecx
je 0x4d782c
dec eax
je 0x4d7826
dec eax
je 0x4d7820
dec eax
je 0x4d781a
dec eax
je 0x4d7893
test ecx, ecx
je 0x4d7893
and byte [ecx + 5], 0xfb
jmp 0x4d7893
mov byte [ebx + 0x32], 0
jmp 0x4d7893
mov byte [ebx + 0x31], 0
jmp 0x4d7893
mov byte [ebx + 0x30], 0
jmp 0x4d7893
mov eax, dword [ebx + 0x6c]
test eax, eax
je 0x4d783e
push eax
call dword [fcn.00458304]
and dword [ebx + 0x6c], 0
push 0xffffffffffffffec
push dword [ebx]
call dword [fcn.004584d0]
or eax, 0x10
push eax
push 0xffffffffffffffec
push dword [ebx]
call dword [0x4584e8]
jmp 0x4d7893
test ebx, ebx
je 0x4d7876
mov eax, dword [ebx]
mov dword [0x4651d4], eax
mov dword [0x46516c], edi
mov eax, dword [ebx + 8]
mov dword [0x465184], eax
mov dword [0x46517c], eax
mov eax, dword [ebp + 0x28]
mov ecx, dword [eax + 0xc]
call fcn.004d0bb6
jmp 0x4d7893
mov eax, dword [ebp + 0x34]
mov ecx, dword [ebp + 0x2c]
mov dword [0x4651d4], eax
call fcn.004d876b
push 1
lea eax, [ebp - 0xbc]
push eax
lea eax, reloc.WINMM.dll_midiStreamOut
push eax
call fcn.004d658e
add esp, 0xc
cmp dword [ebp + 0x7c], 0
jne 0x4d78d5
mov byte [0x4651f0], 1
mov byte [0x4651f2], 0
mov byte [0x4651f1], 1
mov dword [0x465164], 0x80000000
jmp 0x4d68fd
push dword [ebp + 0x38]
push dword [ebp + 0x18]
push dword [ebp + 0x78]
call fcn.004d7a15
add esp, 0xc
test eax, eax
je 0x4d78f7
mov byte [ebp + 0x6d], 1
mov byte [ebp + 0x38], 1
jmp 0x4d68fd
cmp byte [ebp + 0x6e], 0
je 0x4d68fd
cmp byte [0x465350], 0
jne 0x4d68fd
push 0
push 0xa
push 9
push dword [0x465208]
call dword [0x458528]
test eax, eax
setne al
mov byte [0x465350], al
jmp 0x4d68fd
mov byte [0x4651ec], 0
mov eax, dword [0x465218]
test eax, eax
je 0x4d7958
lea ecx, [ebp + 0x44]
push ecx
push eax
push dword [0x465208]
call dword [0x4584ec]
test eax, eax
jne 0x4d68fd
mov eax, dword [ebp + 0x48]
mov dword [0x4651e8], eax
lea eax, [ebp + 0x44]
push eax
mov byte [0x4651ec], 1
call dword [0x458520]
lea eax, [ebp + 0x44]
push eax
call dword [0x458524]
jmp 0x4d7369
cmp byte [ebp + 0x6c], 0
je 0x4d798d
mov byte [0x465357], 0
cmp byte [ebp + 0x6e], 0
je 0x4d7999
dec dword [0x465358]
cmp byte [0x465350], 0
je 0x4d79da
cmp dword [ebp + 0x78], esi
jle 0x4d7a0a
cmp dword [0x465358], esi
jne 0x4d7a0a
cmp dword [0x466100], esi
jne 0x4d7a0a
cmp dword [0x466ed4], esi
jne 0x4d7a0a
push 9
push dword [0x465208]
call dword [fcn.0045853c]
test eax, eax
je 0x4d7a0a
mov byte [0x465350], 0
jmp 0x4d7a0a
cmp dword [0x465358], esi
je 0x4d7a0a
push esi
jmp 0x4d79f0
cmp dword [0x465358], 0
je 0x4d7a0a
push 0
push 0xa
push 9
push dword [0x465208]
call dword [0x458528]
test eax, eax
setne al
mov byte [0x465350], al
mov al, byte [ebp + 0x6f]
pop edi
pop esi
pop ebx
add ebp, 0x70
leave
ret