Function at 0x4d16a3
Capabilities:
Check http status code
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x35a8
call fcn.00521447
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
mov dword [ebp - 0x28], eax
mov al, byte [ecx]
sub al, 2
push ebx
push esi
xor esi, esi
neg al
mov dword [ebp - 0x5c], ecx
mov ecx, dword [ecx + 4]
push edi
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x60], 0x4585d8
mov dword [ebp - 8], esi
sbb eax, eax
not eax
and eax, dword [0x467ff0]
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x54], eax
mov eax, dword [ebp + 8]
lea eax, [eax + eax*2]
lea eax, [ecx + eax*4]
mov ecx, dword [eax + 4]
mov ebx, dword [eax + 8]
mov dword [ebp - 4], ecx
mov dword [ebp - 0x24], ebx
test ebx, ebx
je 0x4d1708
cmp dword [ebx], 0
je 0x4d1708
mov edi, ebx
jmp 0x4d170a
xor edi, edi
test edi, edi
mov dword [ebp - 0x1c], edi
je 0x4d171a
cmp ecx, dword [edi]
jb 0x4d1723
jmp 0x4d1d7f
cmp byte [ecx], 0
je 0x4d1fd3
cmp esi, 0x1ff
jg 0x4d2487
push dword [ebp - 4]
call fcn.004ccc79
mov dword [ebp - 4], eax
mov al, byte [eax]
test al, al
pop ecx
mov byte [ebp - 0x61], al
je 0x4d1d77
test edi, edi
je 0x4d1757
mov ecx, dword [ebp - 4]
cmp ecx, dword [edi]
jae 0x4d1d77
mov edi, dword [ebp - 8]
mov edx, dword [ebp - 4]
movsx eax, al
shl edi, 4
cmp eax, 0x5e
lea ecx, [edx + 1]
movsx ebx, byte [ecx]
mov dword [ebp - 0x48], edi
lea esi, reloc.WINMM.dll_midiStreamOut
mov dword [ebp - 0x18], ecx
jg 0x4d1c7c
je 0x4d1c5c
cmp eax, 0x2c
jg 0x4d1986
je 0x4d197a
sub eax, 0x21
je 0x4d1965
dec eax
je 0x4d18fc
sub eax, 4
je 0x4d18b5
dec eax
dec eax
je 0x4d1878
dec eax
je 0x4d186c
dec eax
je 0x4d1826
dec eax
jne 0x4d1c8d
cmp ebx, 0x3d
jne 0x4d17da
mov dword [ebp - 4], ecx
mov dword [esi + 8], 0xd
jmp 0x4d1d63
cmp dword [ebp - 8], 0
je 0x4d180a
cmp dword [ebp + edi - reloc.WINMM.dll_midiStreamOut], 0xa
jge 0x4d180a
cmp ebx, 0x2b
jne 0x4d17fe
mov dword [ebp - 4], ecx
mov dword [esi + 8], 7
jmp 0x4d1d63
mov dword [esi + 8], 0x2a
jmp 0x4d1d63
cmp ebx, 0x2b
jne 0x4d181e
mov dword [ebp - 4], ecx
mov dword [esi + 8], 0x35
jmp 0x4d1d63
dec dword [ebp - 8]
jmp 0x4d1d63
cmp ebx, 0x3d
jne 0x4d183a
mov dword [ebp - 4], ecx
mov dword [esi + 8], 0xf
jmp 0x4d1d63
cmp ebx, 0x2a
jne 0x4d184e
mov dword [ebp - 4], ecx
mov dword [esi + 8], 0x34
jmp 0x4d1d63
cmp dword [ebp - 8], 0
je 0x4d1865
cmp dword [ebp + edi - reloc.WINMM.dll_midiStreamOut], 0xa
jge 0x4d1865
push 0x2c
jmp 0x4d18f3
push 0x33
jmp 0x4d18f3
mov dword [esi + 8], 9
jmp 0x4d1d63
cmp dword [ebp - 8], 0
je 0x4d189f
cmp dword [ebp + edi - reloc.WINMM.dll_midiStreamOut], 0xa
jge 0x4d189f
cmp dword [ebp - 8], reloc.WINMM.dll_midiStreamOut
jg 0x4d2487
inc dword [ebp - 8]
mov dword [esi + 8], 0x24
mov eax, dword [ebp - 8]
shl eax, 4
mov dword [ebp + eax - reloc.WINMM.dll_midiStreamOut], 0xa
jmp 0x4d1d63
cmp ebx, 0x26
jne 0x4d18c9
mov dword [ebp - 4], ecx
mov dword [esi + 8], 0x1b
jmp 0x4d1d63
cmp ebx, 0x3d
jne 0x4d18dd
mov dword [ebp - 4], ecx
mov dword [esi + 8], 0x14
jmp 0x4d1d63
cmp dword [ebp - 8], 0
je 0x4d18f1
cmp dword [ebp + edi - reloc.WINMM.dll_midiStreamOut], 0xa
jge 0x4d18f1
push 0x27
jmp 0x4d18f3
push 0x32
pop eax
mov dword [esi + 8], eax
jmp 0x4d1d63
cmp dword [ebp - 8], 0
je 0x4d1923
cmp dword [ebp + edi - reloc.WINMM.dll_midiStreamOut], 0xa
jge 0x4d1923
cmp dword [ebp - 8], reloc.WINMM.dll_midiStreamOut
jg 0x4d2487
inc dword [ebp - 8]
mov dword [esi + 8], 0x24
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x28]
shl eax, 4
and dword [ebp + eax - reloc.WINMM.dll_midiStreamOut], 0
mov dword [ebp + eax - reloc.WINMM.dll_midiStreamOut], edx
mov al, byte [ecx]
test al, al
je 0x4d2487
cmp al, 0x22
jne 0x4d1953
inc ecx
mov al, byte [ecx]
cmp al, 0x22
mov dword [ebp - 4], ecx
jne 0x4d1959
mov byte [edx], al
inc edx
inc ecx
jmp 0x4d193b
mov byte [edx], 0
inc edx
mov dword [ebp - 0x28], edx
jmp 0x4d1d66
cmp ebx, 0x3d
je 0x4d1a41
mov dword [esi + 8], 0x30
jmp 0x4d1d63
mov dword [esi + 8], 0xb
jmp 0x4d1d63
sub eax, 0x2d
je 0x4d1af0
dec eax
dec eax
je 0x4d1aa5
sub eax, 0xb
je 0x4d1a85
dec eax
dec eax
je 0x4d1a2a
dec eax
je 0x4d1a0a
dec eax
je 0x4d19c1
dec eax
jne 0x4d1c8d
mov dword [esi + 8], 0x19
jmp 0x4d1d63
sub ebx, 0x3d
je 0x4d19fb
dec ebx
je 0x4d19d5
mov dword [esi + 8], 0x20
jmp 0x4d1d63
lea eax, [edx + 2]
cmp byte [eax], 0x3d
jne 0x4d19ec
mov dword [ebp - 4], eax
mov dword [esi + 8], 0x16
jmp 0x4d1d63
mov dword [ebp - 4], ecx
mov dword [esi + 8], 0x29
jmp 0x4d1d63
mov dword [ebp - 4], ecx
mov dword [esi + 8], 0x22
jmp 0x4d1d63
cmp ebx, 0x3d
jne 0x4d1a1e
mov dword [ebp - 4], ecx
mov dword [esi + 8], 0x1e
jmp 0x4d1d63
mov dword [esi + 8], 0x1d
jmp 0x4d1d63
sub ebx, 0x3c
je 0x4d1a5f
dec ebx
je 0x4d1a50
dec ebx
je 0x4d1a41
mov dword [esi + 8], 0x21
jmp 0x4d1d63
mov dword [ebp - 4], ecx
mov dword [esi + 8], 0x1f
jmp 0x4d1d63
mov dword [ebp - 4], ecx
mov dword [esi + 8], 0x23
jmp 0x4d1d63
lea eax, [edx + 2]
cmp byte [eax], 0x3d
jne 0x4d1a76
mov dword [ebp - 4], eax
mov dword [esi + 8], 0x15
jmp 0x4d1d63
mov dword [ebp - 4], ecx
mov dword [esi + 8], 0x28
jmp 0x4d1d63
cmp ebx, 0x3d
jne 0x4d1a99
mov dword [ebp - 4], ecx
mov dword [esi + 8], 0xc
jmp 0x4d1d63
mov dword [esi + 8], 0x18
jmp 0x4d1d63
cmp ebx, 0x3d
jne 0x4d1ab9
mov dword [ebp - 4], ecx
mov dword [esi + 8], 0x10
jmp 0x4d1d63
cmp ebx, 0x2f
jne 0x4d1ae4
lea eax, [edx + 2]
cmp byte [eax], 0x3d
jne 0x4d1ad5
mov dword [ebp - 4], eax
mov dword [esi + 8], 0x11
jmp 0x4d1d63
mov dword [ebp - 4], ecx
mov dword [esi + 8], 0x2e
jmp 0x4d1d63
mov dword [esi + 8], 0x2d
jmp 0x4d1d63
cmp ebx, 0x3d
jne 0x4d1b04
mov dword [ebp - 4], ecx
mov dword [esi + 8], 0xe
jmp 0x4d1d63
cmp dword [ebp - 8], 0
je 0x4d1b34
cmp dword [ebp + edi - reloc.WINMM.dll_midiStreamOut], 0xa
jge 0x4d1b34
cmp ebx, 0x2d
jne 0x4d1b28
mov dword [ebp - 4], ecx
mov dword [esi + 8], 8
jmp 0x4d1d63
mov dword [esi + 8], 0x2b
jmp 0x4d1d63
cmp ebx, 0x2d
jne 0x4d1b48
mov dword [ebp - 4], ecx
mov dword [esi + 8], 0x36
jmp 0x4d1d63
cmp ebx, 0x30
mov dword [esi + 8], 0x2f
jl 0x4d1b59
cmp ebx, 0x39
jle 0x4d1b62
cmp ebx, 0x2e
jne 0x4d1d63
mov edi, dword [ebp - 4]
add edi, 2
mov ebx, 0x45bdec
jmp 0x4d1b70
inc edi
movsx eax, byte [edi]
push eax
push ebx
call fcn.00520fd7
test eax, eax
pop ecx
pop ecx
je 0x4d1b6f
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x4d1b8f
cmp edi, dword [eax]
jae 0x4d1d63
push edi
call fcn.004ccc79
cmp byte [eax], 0x2a
pop ecx
jne 0x4d1ba5
cmp byte [eax + 1], 0x2a
je 0x4d1d63
movsx eax, byte [edi - 1]
push eax
call fcn.0050cef6
cmp eax, 0x45
pop ecx
jne 0x4d1bf7
mov ebx, dword [ebp - 4]
cmp byte [ebx], 0x30
jne 0x4d1bcf
mov eax, dword [ebp - 0x18]
movsx eax, byte [eax]
push eax
call fcn.0050cef6
cmp eax, 0x58
pop ecx
je 0x4d1bf7
cmp byte [ebx], 0x2d
jne 0x4d1bec
mov eax, dword [ebp - 0x18]
cmp byte [eax], 0x30
jne 0x4d1bec
movsx eax, byte [ebx + 2]
push eax
call fcn.0050cef6
cmp eax, 0x58
pop ecx
je 0x4d1bf7
inc edi
mov al, byte [edi]
cmp al, 0x30
jl 0x4d1bf7
cmp al, 0x39
jle 0x4d1bec
mov eax, dword [ebp - 8]
test eax, eax
je 0x4d1c21
mov ecx, dword [ebp - 0x48]
cmp dword [ebp + ecx - reloc.WINMM.dll_midiStreamOut], 0xa
jge 0x4d1c21
cmp eax, 0x1fe
jg 0x4d2487
inc eax
mov dword [esi + 8], 0x24
mov dword [ebp - 8], eax
mov ebx, dword [ebp - 0x28]
mov esi, edi
sub esi, dword [ebp - 4]
shl eax, 4
push esi
push dword [ebp - 4]
mov dword [ebp + eax - reloc.WINMM.dll_midiStreamOut], 4
push ebx
mov dword [ebp + eax - reloc.WINMM.dll_midiStreamOut], ebx
call fcn.005208a7
add ebx, esi
add esp, 0xc
mov byte [ebx], 0
inc ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 4], edi
jmp 0x4d1d66
cmp ebx, 0x3d
jne 0x4d1c70
mov dword [ebp - 4], ecx
mov dword [esi + 8], 0x13
jmp 0x4d1d63
mov dword [esi + 8], 0x26
jmp 0x4d1d63
sub eax, 0x7c
je 0x4d1d3a
dec eax
dec eax
je 0x4d1d31
cmp byte [ebp - 0x61], 0x2e
jne 0x4d1cbd
cmp ebx, 0x3d
jne 0x4d1ca7
mov dword [ebp - 4], ecx
mov dword [esi + 8], 0x17
jmp 0x4d1d63
cmp ebx, 0x20
je 0x4d1cb1
cmp ebx, 9
jne 0x4d1cbd
mov dword [esi + 8], 0x24
jmp 0x4d1d63
mov edi, dword [ebp - 0x18]
jmp 0x4d1cc3
inc edi
movsx eax, byte [edi]
push eax
push 0x45bdec
call fcn.00520fd7
test eax, eax
pop ecx
pop ecx
je 0x4d1cc2
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x4d1ce6
cmp edi, dword [eax]
jae 0x4d1e0a
mov eax, edi
sub eax, dword [ebp - 4]
cmp eax, 3
jne 0x4d1ba5
mov eax, dword [ebp - 4]
mov al, byte [eax]
cmp al, 0x6e
je 0x4d1d05
cmp al, 0x4e
jne 0x4d1ba5
cmp ebx, 0x6f
je 0x4d1d13
cmp ebx, 0x4f
jne 0x4d1ba5
mov eax, dword [ebp - 4]
mov al, byte [eax + 2]
cmp al, 0x74
je 0x4d1d25
cmp al, 0x54
jne 0x4d1ba5
mov dword [esi + 8], 0x1c
jmp 0x4d1c54
mov dword [esi + 8], 0x31
jmp 0x4d1d63
cmp ebx, 0x7c
jne 0x4d1d4b
mov dword [ebp - 4], ecx
mov dword [esi + 8], 0x1a
jmp 0x4d1d63
cmp ebx, 0x3d
jne 0x4d1d5c
mov dword [ebp - 4], ecx
mov dword [esi + 8], 0x12
jmp 0x4d1d63
mov dword [esi + 8], 0x25
inc dword [ebp - 4]
inc dword [ebp - 8]
mov edi, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x24]
mov esi, dword [ebp - 8]
jmp 0x4d1723
test edi, edi
je 0x4d1fd3
cmp esi, 0x1ff
jg 0x4d2487
cmp byte [edi + 8], 0
je 0x4d1dd9
test esi, esi
je 0x4d1dbd
mov eax, esi
shl eax, 4
lea eax, reloc.WINMM.dll_midiStreamOut
cmp dword [eax - 0x10], 0xa
jge 0x4d1dbd
cmp esi, 0x1fe
jg 0x4d2487
inc esi
mov dword [eax], 0x24
mov dword [ebp - 8], esi
mov eax, esi
shl eax, 4
mov dword [ebp + eax - reloc.WINMM.dll_midiStreamOut], 0x37
mov dword [ebp + eax - reloc.WINMM.dll_midiStreamOut], ebx
jmp 0x4d1fb7
mov eax, dword [edi]
mov cl, byte [eax]
cmp cl, byte [0x46308d]
jne 0x4d1f30
mov ecx, dword [ebp - 0x1c]
movzx edi, word [ecx + 0xa]
add edi, eax
mov esi, 0x45bdec
jmp 0x4d1dfa
inc edi
movsx eax, byte [edi]
push eax
push esi
call fcn.00520fd7
test eax, eax
pop ecx
pop ecx
je 0x4d1df9
cmp dword [ebp - 8], 0
je 0x4d1e39
mov eax, dword [ebp - 8]
shl eax, 4
lea eax, reloc.WINMM.dll_midiStreamOut
cmp dword [eax - 0x10], 0xa
jge 0x4d1e39
cmp dword [ebp - 8], reloc.WINMM.dll_midiStreamOut
jg 0x4d2487
inc dword [ebp - 8]
mov dword [eax], 0x24
mov eax, dword [ebp - 0x28]
mov ebx, dword [ebp - 8]
mov ecx, edi
sub ecx, dword [ebp - 4]
shl ebx, 4
push ecx
push dword [ebp - 4]
mov dword [ebp + ebx - reloc.WINMM.dll_midiStreamOut], 5
push eax
mov dword [ebp + ebx - reloc.WINMM.dll_midiStreamOut], eax
mov dword [ebp - 0x1c], ecx
call fcn.005208a7
mov eax, dword [ebp - 0x24]
add esp, 0xc
mov dword [ebp - 0x48], eax
jmp 0x4d1e75
cmp ecx, edi
jae 0x4d1e81
add eax, 0xc
mov ecx, dword [eax]
test ecx, ecx
mov dword [ebp - 0x24], eax
jne 0x4d1e71
mov eax, dword [ebp - 0x24]
sub eax, dword [ebp - 0x48]
push 0xc
cdq
pop ecx
idiv ecx
sub dword [ebp - 0x24], ecx
lea esi, [eax + eax*2]
shl esi, 2
lea eax, [esi + 0xc]
add eax, 3
and eax, 0xfffffffc
call fcn.00521447
mov dword [ebp - 0x18], esp
push esi
push dword [ebp - 0x48]
push dword [ebp - 0x18]
call fcn.005208a7
mov eax, dword [ebp - 0x18]
add esp, 0xc
and dword [esi + eax], 0
jmp 0x4d1eca
mov ecx, dword [ebp - 0x28]
sub ecx, dword [ebp - 4]
add dword [eax], ecx
add eax, 0xc
cmp dword [eax], 0
jne 0x4d1ebf
mov ecx, dword [ebp - 0x18]
mov dword [ebp + ebx - reloc.WINMM.dll_midiStreamOut], ecx
mov ecx, dword [ebp - 0x1c]
add dword [ebp - 0x28], ecx
cmp byte [edi], 0x28
jne 0x4d1f1b
cmp dword [ebp - 8], reloc.WINMM.dll_midiStreamOut
jg 0x4d2487
mov ecx, dword [ebp - 0x18]
inc dword [ebp - 8]
mov byte [eax + 8], 1
mov cl, byte [ecx + 9]
mov byte [eax + 9], cl
mov ecx, dword [ebp - 8]
shl ecx, 4
mov dword [ebp + ecx - reloc.WINMM.dll_midiStreamOut], 0x37
mov dword [ebp + ecx - reloc.WINMM.dll_midiStreamOut], eax
jmp 0x4d1f1f
mov byte [eax + 8], 0
mov eax, dword [ebp - 0x28]
inc dword [ebp - 0x28]
mov byte [eax], 0
mov dword [ebp - 4], edi
jmp 0x4d1fbe
test esi, esi
je 0x4d1f5c
mov eax, esi
shl eax, 4
lea eax, reloc.WINMM.dll_midiStreamOut
cmp dword [eax - 0x10], 0xa
jge 0x4d1f5c
cmp esi, 0x1fe
jg 0x4d2487
inc esi
mov dword [eax], 0x24
mov dword [ebp - 8], esi
mov ecx, dword [edi + 4]
mov al, byte [ecx + 0xf]
test al, al
jne 0x4d1f6c
mov eax, dword [ecx + 4]
mov al, byte [eax + 0xf]
cmp al, 1
jne 0x4d1f95
cmp byte [0x46534d], 0
jne 0x4d1f83
call fcn.004ccf75
cmp dword [eax], 0
je 0x4d1f95
mov eax, esi
shl eax, 4
mov dword [ebp + eax - reloc.WINMM.dll_midiStreamOut], 3
jmp 0x4d1fad
mov eax, esi
shl eax, 4
and dword [ebp + eax - reloc.WINMM.dll_midiStreamOut], 0
mov dword [ebp + eax - reloc.WINMM.dll_midiStreamOut], 5
mov ecx, dword [edi + 4]
mov dword [ebp + eax - reloc.WINMM.dll_midiStreamOut], ecx
movzx eax, word [edi + 0xa]
add dword [ebp - 4], eax
add dword [ebp - 0x24], 0xc
inc dword [ebp - 8]
mov ebx, dword [ebp - 0x24]
mov esi, dword [ebp - 8]
mov ecx, dword [ebp - 4]
jmp 0x4d16fb
cmp esi, 0x1ff
jg 0x4d2487
xor edi, edi
shl esi, 4
lea eax, [ebp - 0x84]
inc edi
and dword [ebp - 0x1c], 0
mov dword [ebp + esi - reloc.WINMM.dll_midiStreamOut], 0x38
mov dword [ebp - 0x7c], 6
mov dword [ebp - reloc.WINMM.dll_midiStreamOut], eax
lea ecx, reloc.WINMM.dll_midiStreamOut
mov dword [ebp - 8], edi
mov esi, dword [ecx + 8]
lea eax, reloc.WINMM.dll_midiStreamOut
mov ebx, edi
sub eax, 4
shl ebx, 2
cmp esi, 6
mov edx, dword [ebx + eax]
mov edx, dword [edx + 8]
mov dword [ebp - 0x10], edx
jge 0x4d20a7
cmp esi, 5
jne 0x4d208a
cmp dword [ecx + 4], 0
jne 0x4d208a
mov eax, dword [ecx]
mov bl, byte [eax + 0xf]
test bl, bl
jne 0x4d2049
mov edx, dword [eax + 4]
mov bl, byte [edx + 0xf]
cmp bl, 1
je 0x4d2060
mov dl, byte [eax + 0xf]
test dl, dl
jne 0x4d205b
mov eax, dword [eax + 4]
mov dl, byte [eax + 0xf]
cmp dl, 2
jne 0x4d208a
mov eax, dword [ecx + 0x18]
cmp eax, 0x17
jg 0x4d206d
cmp eax, 0xc
jge 0x4d2083
cmp eax, 7
je 0x4d2083
cmp eax, 8
je 0x4d2083
cmp dword [ebp - 0x10], 0x35
je 0x4d2083
cmp dword [ebp - 0x10], 0x36
jne 0x4d208a
mov dword [ecx + 8], 3
mov eax, dword [ebp - 0x30]
lea eax, reloc.WINMM.dll_midiStreamOut
mov dword [eax], ecx
mov eax, dword [eax]
add ecx, 0x10
and dword [eax + 0xc], 0
inc dword [ebp - 0x30]
jmp 0x4d2010
mov edx, esi
sub edx, 9
je 0x4d2230
dec edx
je 0x4d21e4
sub edx, 0xe
je 0x4d21f4
sub edx, 0x1f
je 0x4d21d6
dec edx
je 0x4d21c6
movzx eax, byte [esi + 0x464468]
cdq
push 2
pop edi
idiv edi
movzx eax, byte [esi + 0x464468]
add edx, eax
mov eax, dword [ebp - 0x10]
movzx edi, byte [eax + 0x464468]
cmp edi, edx
jl 0x4d2121
cmp esi, 0x17
jg 0x4d2105
cmp esi, 0xc
jl 0x4d2105
cmp eax, 0x33
jne 0x4d2121
cmp eax, 0x34
jne 0x4d2259
cmp esi, 0x2f
jl 0x4d2118
cmp esi, 0x33
jle 0x4d2121
cmp esi, 0x1c
jne 0x4d2259
cmp esi, 0x1b
jg 0x4d213c
cmp esi, 0x19
jl 0x4d213c
mov eax, dword [ebp - 0x30]
test eax, eax
je 0x4d213c
mov eax, dword [ebp + eax*4 - reloc.WINMM.dll_midiStreamOut]
mov dword [eax + 0xc], ecx
cmp esi, 0xb
je 0x4d214d
inc dword [ebp - 8]
mov dword [ebp + ebx - reloc.WINMM.dll_midiStreamOut], ecx
jmp 0x4d21bb
cmp dword [ebp - 0x1c], 0
jne 0x4d21bb
inc dword [ebp - 8]
cmp dword [ecx + 0x18], 0x38
mov dword [ebp + ebx - reloc.WINMM.dll_midiStreamOut], ecx
lea eax, [ecx + 0x10]
je 0x4d21bb
push 0xc
pop edi
cmp dword [eax + 0x18], 0x1d
jne 0x4d21bb
mov edx, dword [eax + 8]
cmp edx, 3
je 0x4d21af
cmp edx, 5
jne 0x4d21bb
cmp dword [eax + 4], 0
jne 0x4d21bb
mov esi, dword [eax]
mov dl, byte [esi + 0xf]
test dl, dl
jne 0x4d2191
mov edx, dword [esi + 4]
mov dl, byte [edx + 0xf]
cmp dl, 1
je 0x4d21a8
mov dl, byte [esi + 0xf]
test dl, dl
jne 0x4d21a3
mov edx, dword [esi + 4]
mov dl, byte [edx + 0xf]
cmp dl, 2
jne 0x4d21bb
mov dword [eax + 8], 3
mov dword [eax + 0x18], edi
add eax, 0x20
cmp dword [eax + 8], 0x38
jne 0x4d2169
add ecx, 0x10
mov edi, dword [ebp - 8]
jmp 0x4d2010
cmp dword [ebp - 0x10], 6
je 0x4d227c
cmp dword [ebp - 0x10], 0xa
jmp 0x4d2253
inc dword [ebp - 0x1c]
mov dword [ebp + ebx - reloc.WINMM.dll_midiStreamOut], ecx
inc edi
add ecx, 0x10
mov dword [ebp + edi*4 - reloc.WINMM.dll_midiStreamOut], ecx
inc edi
add ecx, 0x10
jmp 0x4d200d
cmp dword [ebp - 0x10], 6
je 0x4d2487
mov esi, dword [ebp - 0x30]
dec edi
cmp dword [ebp - 0x10], 0x19
lea edx, reloc.WINMM.dll_midiStreamOut
mov eax, dword [edx]
mov dword [ebp - 8], edi
mov dword [ebp + esi*4 - reloc.WINMM.dll_midiStreamOut], eax
jne 0x4d209b
mov dword [eax + 0xc], ecx
inc edi
mov dword [edx], ecx
mov dword [ebp - 8], edi
add ecx, 0x10
jmp 0x4d209f
cmp dword [ebp - 0x10], 0xa
jne 0x4d224f
dec edi
mov eax, dword [eax + edi*4]
add ecx, 0x10
cmp dword [eax + 8], 0x37
mov dword [ebp - 8], edi
jne 0x4d2010
dec dword [ebp - 0x1c]
jmp 0x4d2259
cmp dword [ebp - 0x10], 6
je 0x4d2487
dec dword [ebp - 8]
mov eax, dword [ebp - 8]
mov eax, dword [ebp + eax*4 - reloc.WINMM.dll_midiStreamOut]
mov edx, dword [ebp - 0x30]
and dword [eax + 0xc], 0
inc dword [ebp - 0x30]
mov dword [ebp + edx*4 - reloc.WINMM.dll_midiStreamOut], eax
jmp 0x4d21be
dec edi
xor ecx, ecx
mov dword [ebp - 8], edi
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x14], ecx
cmp ecx, dword [ebp - 0x30]
jge 0x4d3a5f
mov eax, ecx
shl eax, 2
mov ebx, dword [ebp + eax - reloc.WINMM.dll_midiStreamOut]
mov dword [ebp - 0x44], eax
mov eax, dword [ebx + 8]
cmp eax, 6
jge 0x4d24d8
cmp eax, 5
jne 0x4d382b
mov eax, dword [ebx + 4]
xor edi, edi
cmp eax, edi
jne 0x4d239e
mov ecx, dword [ebx]
push edi
call fcn.004ccfbb
mov esi, eax
inc esi
cmp esi, 1
jne 0x4d22f8
mov eax, dword [ebx]
mov cl, byte [eax + 0xf]
test cl, cl
jne 0x4d22e4
mov eax, dword [eax + 4]
mov cl, byte [eax + 0xf]
cmp cl, 1
je 0x4d3824
mov dword [ebx], 0x4585d8
jmp 0x4d2d1d
mov ecx, dword [ebx]
mov al, byte [ecx + 0xf]
test al, al
jne 0x4d2307
mov eax, dword [ecx + 4]
mov al, byte [eax + 0xf]
cmp al, 1
jne 0x4d2318
call fcn.004ccf75
cmp dword [eax], edi
jne 0x4d3824
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
sub eax, dword [ebp - 0x28]
mov ecx, dword [ebp + 0x18]
add eax, dword [ecx]
cmp esi, eax
ja 0x4d2331
mov eax, dword [ebp - 0x28]
add dword [ebp - 0x28], esi
jmp 0x4d2380
cmp esi, 0x1001
jae 0x4d2357
cmp dword [ebp - 0x50], reloc.WINMM.dll_midiStreamOut
jae 0x4d2357
mov eax, esi
add eax, 3
and eax, 0xfffffffc
call fcn.00521447
add dword [ebp - 0x50], esi
mov dword [ebp - 0x2c], esp
jmp 0x4d2383
cmp dword [ebp - 0x34], 0xc8
je 0x4d3976
push esi
call fcn.00509c8b
cmp eax, edi
pop ecx
mov ecx, dword [ebp - 0x34]
mov dword [ebp + ecx*4 - reloc.WINMM.dll_midiStreamOut], eax
je 0x4d3976
inc dword [ebp - 0x34]
mov dword [ebp - 0x2c], eax
push dword [ebp - 0x2c]
mov ecx, dword [ebx]
call fcn.004ccfbb
mov eax, dword [ebp - 0x2c]
mov dword [ebx], eax
mov dword [ebx + 8], 4
jmp 0x4d382b
mov esi, dword [ebx]
mov dword [ebx], 0x4585d8
mov dword [ebx + 8], edi
cmp dword [esi], edi
mov dword [ebp - 4], eax
je 0x4d2419
mov eax, dword [ebp - 4]
jmp 0x4d23cb
cmp edi, 0xfd
jge 0x4d23d7
mov cl, byte [eax]
mov byte [ebp + edi - 0x184], cl
inc edi
inc eax
mov dword [ebp - 4], eax
cmp eax, dword [esi]
jb 0x4d23b5
cmp edi, 0xfd
jl 0x4d23df
cmp eax, dword [esi]
jb 0x4d382b
mov ecx, dword [esi + 4]
push 0
call fcn.004ccfbb
mov ecx, 0xfd
sub ecx, edi
cmp eax, ecx
ja 0x4d382b
mov ecx, dword [esi + 4]
lea eax, reloc.WINMM.dll_midiStreamOut
push eax
call fcn.004ccfbb
add edi, eax
movzx eax, word [esi + 0xa]
add dword [ebp - 4], eax
add esi, 0xc
cmp dword [esi], 0
jne 0x4d23b0
mov ecx, dword [ebp - 4]
jmp 0x4d242f
cmp edi, 0xfd
jge 0x4d243d
mov byte [ebp + edi - 0x184], al
inc edi
inc ecx
mov al, byte [ecx]
test al, al
jne 0x4d241e
cmp edi, 0xfd
jl 0x4d2446
cmp byte [ecx], 0
jne 0x4d382b
test edi, edi
je 0x4d382b
mov byte [ebp + edi - 0x184], 0
cmp byte [esi + 8], 0
mov ecx, 0x465c88
lea eax, reloc.WINMM.dll_midiStreamOut
je 0x4d24aa
push edi
push eax
call fcn.005171cf
test eax, eax
mov dword [esi + 4], eax
je 0x4d2487
movzx ecx, byte [esi + 9]
cmp ecx, dword [eax + 0xc]
jg 0x4d2487
cmp ecx, dword [eax + 0x10]
jge 0x4d3968
mov ecx, dword [ebp - 0x54]
test ecx, ecx
je 0x4d24a2
cmp dword [ebp - 0x60], 0
je 0x4d24a2
push 1
push 0
push 0xffffffffffffffff
push dword [ebp - 0x60]
call fcn.004cc7e9
mov esi, dword [ebp - 0x34]
jmp 0x4d3c53
push 0
push 3
push edi
push eax
call fcn.004e73d1
test eax, eax
je 0x4d3b73
mov cl, byte [eax + 0xf]
test cl, cl
jne 0x4d24ca
mov ecx, dword [eax + 4]
mov cl, byte [ecx + 0xf]
cmp cl, 1
jne 0x4d382b
jmp 0x4d366c
cmp eax, 0x37
jne 0x4d2a24
mov eax, dword [ebx]
movzx esi, byte [eax + 9]
cmp esi, edi
mov edx, dword [eax + 4]
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x68], esi
jg 0x4d2487
cmp byte [edx + 0x31], 0
je 0x4d2648
mov eax, edx
mov dword [ebx + 8], 1
mov ecx, dword [eax]
mov dword [ebx], ecx
lea ecx, reloc.WINMM.dll_midiStreamOut
mov dword [ebx + 4], ecx
mov ecx, dword [ebx + 0xc]
and dword [ebx + 0xc], 0
sub edi, esi
mov dword [ebp - 0x18], ecx
lea ecx, reloc.WINMM.dll_midiStreamOut
push esi
push ecx
push ebx
mov dword [ebp - 8], edi
call dword [eax + 4]
add esp, 0xc
test edi, edi
jne 0x4d2551
mov eax, dword [ebp - 0x30]
dec eax
cmp dword [ebp - 0x14], eax
jne 0x4d2551
cmp dword [ebp - 0x54], edi
mov dword [ebp - 0x1c], 1
je 0x4d2555
xor esi, esi
inc esi
jmp 0x4d2557
and dword [ebp - 0x1c], 0
xor esi, esi
mov edx, dword [ebx + 0xc]
xor ecx, ecx
inc ecx
test edx, edx
je 0x4d25fb
cmp edx, dword [ebx]
jne 0x4d25e1
test esi, esi
jne 0x4d3984
mov eax, dword [ebp - 0x30]
dec eax
cmp dword [ebp - 0x14], eax
jge 0x4d25df
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp + eax - reloc.WINMM.dll_midiStreamOut]
cmp dword [eax + 8], 0xc
jne 0x4d25df
test edi, edi
je 0x4d25df
mov eax, dword [ebp + edi*4 - reloc.WINMM.dll_midiStreamOut]
cmp dword [eax + 8], 3
jne 0x4d25df
mov eax, dword [eax]
mov cl, byte [eax + 0xf]
test cl, cl
jne 0x4d25aa
mov eax, dword [eax + 4]
mov cl, byte [eax + 0xf]
cmp cl, 1
jne 0x4d25df
push dword [ebx + 4]
mov esi, dword [ebp + edi*4 - reloc.WINMM.dll_midiStreamOut]
mov ecx, dword [esi]
dec edi
push edx
mov dword [ebp - 8], edi
call fcn.004e79bd
inc dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp + eax*4 - reloc.WINMM.dll_midiStreamOut]
mov eax, dword [eax + 0xc]
mov dword [ebx + 0xc], eax
mov eax, dword [esi]
jmp 0x4d366c
xor ecx, ecx
cmp dword [ebp - 0x34], 0xc8
je 0x4d3a2e
mov eax, dword [ebp - 0x34]
inc dword [ebp - 0x34]
mov dword [ebp + eax*4 - reloc.WINMM.dll_midiStreamOut], edx
mov eax, dword [ebp - 0x18]
mov dword [ebx + 0xc], eax
mov eax, dword [ebx + 8]
cmp eax, 1
je 0x4d382b
cmp eax, 2
je 0x4d382b
test esi, esi
jne 0x4d3997
mov eax, dword [ebx]
cmp byte [eax], 0
jne 0x4d2630
mov dword [ebx], 0x4585d8
jmp 0x4d382b
test ecx, ecx
mov dword [ebp - 0x2c], eax
je 0x4d295a
xor ecx, ecx
cmp dword [ebp - 0x1c], ecx
sete cl
jmp 0x4d295a
cmp dword [edx + 0x28], 0
jle 0x4d26cb
mov edx, dword [edx + 0xc]
cmp esi, edx
mov eax, esi
jl 0x4d2659
mov eax, edx
dec eax
cmp eax, reloc.WINMM.dll_midiStreamOut
jle 0x4d26ad
mov esi, eax
shl esi, 4
lea ecx, reloc.WINMM.dll_midiStreamOut
inc eax
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x1c], eax
sub dword [ebp - 0x18], 4
mov eax, dword [ebp - 0x18]
mov edi, dword [eax]
cmp dword [edi + 8], 3
jne 0x4d269f
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 8]
cmp word [eax + esi + 4], 0
jne 0x4d269f
mov ecx, dword [edi]
call fcn.004ccf90
mov dword [edi], eax
mov dword [edi + 8], 4
sub esi, 0x10
dec dword [ebp - 0x1c]
jne 0x4d2672
mov esi, dword [ebp - 0x68]
mov edi, dword [ebp - 8]
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x40]
push eax
push dword [ebp - 0xc]
call fcn.004e78af
add esp, 0xc
test eax, eax
je 0x4d3a2e
mov edx, dword [ebp - 0xc]
mov eax, dword [edx + 0xc]
dec eax
cmp eax, esi
mov dword [ebp - 0x10], eax
jl 0x4d274b
mov edi, eax
sub eax, esi
shl edi, 4
inc eax
sub dword [ebp - 0x10], eax
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 8]
add eax, edi
cmp word [eax + 4], 0
je 0x4d26fd
mov ecx, dword [eax]
and dword [ecx + 4], 0
mov byte [ecx + 0xf], 1
movzx ecx, word [eax + 6]
dec ecx
je 0x4d272a
dec ecx
je 0x4d271b
dec ecx
jne 0x4d273a
fld qword [eax + 8]
push ecx
push ecx
mov ecx, dword [eax]
fstp qword [esp]
call fcn.004e7aa1
jmp 0x4d273a
push dword [eax + 0xc]
mov ecx, dword [eax]
push dword [eax + 8]
call fcn.004ccb7f
jmp 0x4d273a
mov ecx, dword [eax]
push 1
push 0
push 0xffffffffffffffff
push dword [eax + 8]
call fcn.004cc7e9
sub edi, 0x10
dec dword [ebp - 0x18]
jne 0x4d26e4
mov edi, dword [ebp - 8]
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
cmp eax, reloc.WINMM.dll_midiStreamOut
jle 0x4d27bc
mov ecx, eax
shl ecx, 4
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp + edi*4 - reloc.WINMM.dll_midiStreamOut]
dec edi
cmp dword [eax + 8], 6
mov dword [ebp - 8], edi
jge 0x4d39a7
mov esi, dword [edx + 8]
add ecx, esi
cmp word [ecx + 4], 0
je 0x4d279f
cmp dword [eax + 8], 3
jne 0x4d39bf
mov eax, dword [eax]
mov ecx, dword [ecx]
jmp 0x4d278c
mov eax, dword [eax + 4]
cmp byte [eax + 0xf], 0
je 0x4d2789
cmp eax, ecx
je 0x4d27aa
mov dword [ecx + 4], eax
mov byte [ecx + 0xf], 0
jmp 0x4d27aa
mov ecx, dword [ecx]
push eax
call fcn.004cca4a
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x18]
dec dword [ebp - 0x10]
sub ecx, 0x10
cmp dword [ebp - 0x10], 0xffffffff
mov dword [ebp - 0x18], ecx
jg 0x4d2758
mov ecx, dword [ebp - 0xc]
lea eax, [ebp - 0x2c]
push eax
call fcn.004d3cdf
cmp eax, 8
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
je 0x4d3a3b
test eax, eax
je 0x4d3a3b
test edi, edi
mov edx, dword [0x4651cc]
jne 0x4d285f
mov eax, dword [ebp - 0x30]
dec eax
cmp dword [ebp - 0x14], eax
jne 0x4d285f
mov esi, dword [ebp - 0x54]
test esi, esi
mov dword [ebp - 0x1c], 1
je 0x4d2826
cmp dword [ebp - 0x40], 0
je 0x4d39d7
cmp edx, dword [ebp - 0xc]
jne 0x4d39d7
cmp byte [esi + 0xe], 0
je 0x4d39d7
test byte [esi + 0xd], 4
jne 0x4d39d7
mov eax, dword [ebp - 0x5c]
cmp byte [eax], 3
je 0x4d3a16
mov ecx, dword [ebp - 0x2c]
cmp byte [ecx], 0
jne 0x4d2865
mov dword [ebx], 0x4585d8
mov dword [ebx + 8], 4
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x40]
push eax
push dword [ebp - 0xc]
call fcn.004cceb9
add esp, 0xc
jmp 0x4d382b
and dword [ebp - 0x1c], 0
jmp 0x4d2832
mov eax, dword [ebp - 0x30]
dec eax
cmp dword [ebp - 0x14], eax
jge 0x4d292e
mov eax, dword [ebp - 0x14]
shl eax, 2
mov eax, dword [ebp + eax - reloc.WINMM.dll_midiStreamOut]
cmp dword [eax + 8], 0xc
jne 0x4d292e
test edi, edi
je 0x4d292e
mov eax, dword [ebp + edi*4 - reloc.WINMM.dll_midiStreamOut]
cmp dword [eax + 8], 3
jne 0x4d292e
mov esi, dword [eax]
mov al, byte [esi + 0xf]
test al, al
jne 0x4d28b1
mov eax, dword [esi + 4]
mov al, byte [eax + 0xf]
cmp al, 1
jne 0x4d292e
cmp dword [ebp - 0x40], 0
je 0x4d28cc
cmp edx, dword [ebp - 0xc]
jne 0x4d28cc
cmp byte [esi + 0xe], 0
je 0x4d28cc
test byte [esi + 0xd], 4
je 0x4d292e
dec edi
push ecx
mov dword [ebp - 8], edi
call fcn.00520ea7
pop ecx
mov ecx, dword [ebp - 0x2c]
cmp ecx, dword [0x468690]
jne 0x4d2900
cmp eax, 0x40
jb 0x4d2900
push eax
push ecx
mov ecx, esi
call fcn.004e79bd
and dword [0x468690], 0
and dword [0x468694], 0
jmp 0x4d290d
push 1
push 0
push eax
push ecx
mov ecx, esi
call fcn.004cc7e9
inc dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp + eax*4 - reloc.WINMM.dll_midiStreamOut]
mov eax, dword [eax + 0xc]
mov dword [ebx + 0xc], eax
mov dword [ebx], esi
mov dword [ebx + 8], 3
jmp 0x4d2847
cmp ecx, dword [0x468690]
jne 0x4d2957
xor ecx, ecx
cmp dword [ebp - 0x1c], ecx
jne 0x4d295a
mov eax, dword [ebp - 0x14]
jmp 0x4d294f
mov edx, dword [ebp + eax*4 - reloc.WINMM.dll_midiStreamOut]
cmp dword [edx + 8], 0x37
je 0x4d2957
inc eax
cmp eax, dword [ebp - 0x30]
jl 0x4d2942
jmp 0x4d295a
xor ecx, ecx
inc ecx
test ecx, ecx
mov dword [ebx + 8], 4
je 0x4d2a04
push dword [ebp - 0x2c]
call fcn.00520ea7
mov esi, eax
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
sub eax, dword [ebp - 0x28]
pop ecx
mov ecx, dword [ebp + 0x18]
add eax, dword [ecx]
inc esi
cmp esi, eax
ja 0x4d299a
push esi
push dword [ebp - 0x2c]
push dword [ebp - 0x28]
call fcn.005208a7
add esp, 0xc
add dword [ebp - 0x28], esi
jmp 0x4d2a07
cmp esi, 0x1001
jae 0x4d29cc
cmp dword [ebp - 0x50], reloc.WINMM.dll_midiStreamOut
jae 0x4d29cc
mov eax, esi
add eax, 3
and eax, 0xfffffffc
call fcn.00521447
mov eax, esp
push esi
push dword [ebp - 0x2c]
push eax
call fcn.005208a7
add esp, 0xc
add dword [ebp - 0x50], esi
jmp 0x4d2a07
cmp dword [ebp - 0x34], 0xc8
je 0x4d3a2e
push esi
call fcn.00509c8b
test eax, eax
pop ecx
mov ecx, dword [ebp - 0x34]
mov dword [ebp + ecx*4 - reloc.WINMM.dll_midiStreamOut], eax
je 0x4d3a2e
push esi
push dword [ebp - 0x2c]
push eax
call fcn.005208a7
add esp, 0xc
inc dword [ebp - 0x34]
jmp 0x4d2a07
mov eax, dword [ebp - 0x2c]
mov dword [ebx], eax
mov eax, dword [ebp - 0xc]
cmp byte [eax + 0x31], 0
jne 0x4d382b
lea ecx, [ebp - 0x58]
push ecx
lea ecx, [ebp - 0x40]
push ecx
push eax
jmp 0x4d2852
cmp eax, 0x18
jne 0x4d2a59
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x4d3968
cmp dword [ebp - 8], 0
je 0x4d3968
dec dword [ebp - 8]
mov ecx, dword [ebp - 8]
mov esi, dword [ebp + ecx*4 - reloc.WINMM.dll_midiStreamOut]
mov edi, ebx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov dword [ebx + 0xc], eax
jmp 0x4d3835
test edi, edi
je 0x4d2487
mov esi, dword [ebp + edi*4 - reloc.WINMM.dll_midiStreamOut]
mov edx, dword [esi + 8]
dec edi
cmp edx, 6
mov dword [ebp - 8], edi
jge 0x4d2487
cmp eax, 0x19
jne 0x4d2ab5
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x4d2487
inc ecx
cmp dword [ebp + ecx*4 - reloc.WINMM.dll_midiStreamOut], eax
mov dword [ebp - 0x14], ecx
je 0x4d2aa4
mov edx, eax
inc ecx
cmp dword [ebp + ecx*4 - reloc.WINMM.dll_midiStreamOut], edx
jne 0x4d2a97
mov dword [ebp - 0x14], ecx
mov eax, dword [eax + 0xc]
mov dword [esi + 0xc], eax
mov edi, ebx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
jmp 0x4d382b
cmp eax, 0xb
je 0x4d3968
cmp eax, 0xc
je 0x4d2b00
mov eax, edx
xor edi, edi
sub eax, edi
je 0x4d2af4
sub eax, 3
je 0x4d2aeb
dec eax
jne 0x4d2af9
mov eax, dword [esi]
push edi
push 1
push edi
push 1
push eax
mov dword [ebp - 0x24], eax
call fcn.004ccd74
add esp, 0x14
mov edi, eax
jmp 0x4d2afb
mov ecx, dword [esi]
call fcn.004ccf90
jmp 0x4d2ad5
mov eax, dword [esi]
mov dword [ebp - 0x24], eax
mov edi, edx
mov dword [ebp - 0x4c], edi
jmp 0x4d2b03
mov edi, dword [ebp - 0x4c]
mov eax, dword [ebx + 8]
mov edx, dword [ebp - 0x24]
xor ecx, ecx
cmp eax, 0x30
mov dword [ebp - 0x18], ecx
jg 0x4d2c48
je 0x4d2bf8
cmp eax, 7
jl 0x4d2d57
cmp eax, 8
jle 0x4d2c75
cmp eax, 0x19
jle 0x4d2d57
cmp eax, 0x1b
jle 0x4d2b98
cmp eax, 0x1c
je 0x4d2bf8
cmp eax, 0x2f
jne 0x4d2d57
cmp edi, 1
jne 0x4d2b78
cmp dword [esi + 8], edi
jne 0x4d2b60
mov eax, dword [esi]
mov edx, dword [esi + 4]
jmp 0x4d2b67
push edx
call fcn.004cccd3
pop ecx
neg eax
adc edx, 0
neg edx
mov dword [ebx], eax
mov dword [ebx + 4], edx
jmp 0x4d2d1d
cmp edi, 2
jne 0x4d374e
cmp dword [esi + 8], edi
jne 0x4d2b8a
fld qword [esi]
jmp 0x4d2b91
push edx
call fcn.004cc42c
pop ecx
fchs
jmp 0x4d2d1b
cmp edi, 1
jne 0x4d2bb4
cmp dword [esi + 8], edi
jne 0x4d2ba9
mov eax, dword [esi]
mov edx, dword [esi + 4]
jmp 0x4d2bb0
push edx
call fcn.004cccd3
pop ecx
or eax, edx
jmp 0x4d2bf4
cmp edi, 2
jne 0x4d2bf1
cmp dword [esi + 8], edi
jne 0x4d2bc2
fld qword [esi]
jmp 0x4d2bc9
push edx
call fcn.004cc42c
pop ecx
fld qword [0x45aab0]
fld st(1)
fucompp
fnstsw ax
fstp st(0)
test ah, 0x44
jp 0x4d2c43
xor eax, eax
xor ecx, ecx
mov dword [ebx + 4], ecx
mov dword [ebx], eax
mov dword [ebx + 8], 1
jmp 0x4d382b
cmp byte [edx], 0
je 0x4d2bdc
jmp 0x4d2c43
cmp edi, 1
jne 0x4d2c14
cmp dword [esi + 8], edi
jne 0x4d2c09
mov eax, dword [esi]
mov edx, dword [esi + 4]
jmp 0x4d2c10
push edx
call fcn.004cccd3
pop ecx
or eax, edx
jmp 0x4d2c41
cmp edi, 2
jne 0x4d2c3e
cmp dword [esi + 8], edi
jne 0x4d2c22
fld qword [esi]
jmp 0x4d2c29
push edx
call fcn.004cc42c
pop ecx
fld qword [0x45aab0]
fld st(1)
fucompp
fnstsw ax
fstp st(0)
test ah, 0x44
jp 0x4d2bdc
jmp 0x4d2c43
cmp byte [edx], 0
jne 0x4d2bdc
xor eax, eax
inc eax
jmp 0x4d2bde
cmp eax, 0x31
je 0x4d375c
cmp eax, 0x32
je 0x4d3734
cmp eax, 0x33
je 0x4d375c
cmp eax, 0x34
jle 0x4d2d57
cmp eax, 0x36
jg 0x4d2d57
xor ecx, ecx
cmp eax, 0x35
setge cl
mov dword [ebp - 0x18], ecx
mov ecx, dword [esi + 8]
cmp ecx, 3
jne 0x4d2d90
test edi, edi
je 0x4d2d25
cmp eax, 7
je 0x4d2ca4
cmp eax, 0x35
je 0x4d2ca4
or dword [ebp - 0x1c], reloc.WINMM.dll_midiStreamOut
jmp 0x4d2cab
mov dword [ebp - 0x1c], 1
cmp edi, 1
push edx
jne 0x4d2cd0
call fcn.004cccd3
mov dword [ebx], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebx + 4], edx
cdq
add eax, dword [ebx]
pop ecx
adc edx, dword [ebx + 4]
mov ecx, dword [esi]
push edx
push eax
call fcn.004ccb7f
jmp 0x4d2ce9
call fcn.004cc42c
fst qword [ebx]
fild dword [ebp - 0x1c]
push ecx
mov ecx, dword [esi]
fadd st(1)
fstp qword [esp]
fstp st(0)
call fcn.004e7aa1
cmp dword [ebp - 0x18], 0
je 0x4d2d1d
mov esi, dword [esi]
mov al, byte [esi + 0xf]
test al, al
jne 0x4d2cfe
mov eax, dword [esi + 4]
mov al, byte [eax + 0xf]
cmp al, 1
je 0x4d3822
cmp edi, 1
jne 0x4d2d16
mov eax, dword [ebp - 0x1c]
cdq
add dword [ebx], eax
adc dword [ebx + 4], edx
jmp 0x4d2d1d
fild dword [ebp - 0x1c]
fadd qword [ebx]
fstp qword [ebx]
mov dword [ebx + 8], edi
jmp 0x4d382b
cmp ecx, 3
jne 0x4d2d90
mov ecx, dword [esi]
push 1
xor edi, edi
push edi
push 0xffffffffffffffff
push edi
call fcn.004cc7e9
cmp dword [ebp - 0x18], edi
je 0x4d2d90
mov esi, dword [esi]
mov al, byte [esi + 0xf]
test al, al
jne 0x4d2d4d
mov eax, dword [esi + 4]
mov al, byte [eax + 0xf]
cmp al, 1
je 0x4d3822
jmp 0x4d2d90
cmp dword [ebp - 8], ecx
je 0x4d2487
dec dword [ebp - 8]
mov ecx, dword [ebp - 8]
mov edi, dword [ebp + ecx*4 - reloc.WINMM.dll_midiStreamOut]
mov ecx, dword [edi + 8]
cmp ecx, 6
jge 0x4d2487
cmp eax, 0x17
jg 0x4d2e49
cmp eax, 0xc
jl 0x4d2e49
cmp ecx, 3
je 0x4d2d9f
and dword [ebx + 8], 0
mov dword [ebx], 0x4585d8
jmp 0x4d382b
add eax, 0xfffffff4
cmp eax, 0xb
ja 0x4d2e44
jmp dword [eax*4 + 0x408a10]
mov eax, dword [edi]
mov dword [ebp - 0x18], eax
mov ecx, dword [edi + 8]
mov eax, ecx
sub eax, 0
je 0x4d2e7c
sub eax, 3
je 0x4d2e73
dec eax
jne 0x4d2e81
mov eax, dword [edi]
push 0
push 1
push 0
push 1
push eax
mov dword [ebp - 0x48], eax
call fcn.004ccd74
add esp, 0x14
jmp 0x4d2e83
mov ecx, dword [edi]
call fcn.004ccf90
jmp 0x4d2e5d
mov eax, dword [edi]
mov dword [ebp - 0x48], eax
mov eax, ecx
cmp dword [ebp - 0x4c], 0
je 0x4d32ec
test eax, eax
je 0x4d32ec
mov ecx, dword [ebx + 8]
cmp ecx, 0x24
je 0x4d32ec
cmp dword [ebp - 0x4c], 1
jne 0x4d2eb1
cmp eax, 1
jne 0x4d2eb1
cmp ecx, 0x2d
jne 0x4d2ec3
cmp ecx, 0x29
jg 0x4d30d4
cmp ecx, 0x25
jl 0x4d30d4
mov eax, dword [esi + 8]
dec eax
je 0x4d2eee
dec eax
je 0x4d2edf
push dword [ebp - 0x24]
call fcn.004cccd3
mov esi, eax
pop ecx
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x38], edx
jmp 0x4d2efc
fld qword [esi]
call fcn.005219c3
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], edx
jmp 0x4d2ef9
mov eax, dword [esi]
mov dword [ebp - 0x3c], eax
mov eax, dword [esi + 4]
mov dword [ebp - 0x38], eax
mov esi, dword [ebp - 0x3c]
mov eax, dword [edi + 8]
dec eax
je 0x4d2f19
dec eax
je 0x4d2f10
push dword [ebp - 0x48]
call fcn.004cccd3
pop ecx
jmp 0x4d2f1e
fld qword [edi]
call fcn.005219c3
jmp 0x4d2f1e
mov eax, dword [edi]
mov edx, dword [edi + 4]
mov ecx, dword [ebx + 8]
xor edi, edi
inc edi
cmp ecx, 0x27
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x70], edx
mov dword [ebp - 0x10], edi
jg 0x4d2fbf
je 0x4d2fb5
sub ecx, 0x1d
cmp ecx, 9
ja 0x4d300d
jmp dword [ecx*4 + 0x408a40]
and eax, esi
and edx, dword [ebp - 0x38]
jmp 0x4d30ca
sub ecx, 0x28
je 0x4d30c3
dec ecx
je 0x4d30ba
dec ecx
je 0x4d30b3
dec ecx
je 0x4d30ac
dec ecx
je 0x4d309f
dec ecx
dec ecx
je 0x4d3087
sub ecx, 6
jne 0x4d300d
mov ecx, eax
or ecx, edx
jne 0x4d3018
cmp dword [ebp - 0x38], 0
jg 0x4d3022
jl 0x4d3003
test esi, esi
jae 0x4d3022
mov dword [ebx], 0x4585d8
and dword [ebp - 0x10], 0
mov eax, dword [ebp - 0x10]
mov dword [ebx + 8], eax
jmp 0x4d3802
test edx, edx
jg 0x4d3022
jl 0x4d3026
test eax, eax
jb 0x4d3026
xor edi, edi
jmp 0x4d3033
neg eax
adc edx, 0
neg edx
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x70], edx
fild qword [ebp - 0x3c]
sub esp, 0x10
fstp qword [esp + 8]
fild qword [ebp - 0x74]
fstp qword [esp]
call fcn.004eaafa
test edi, edi
fst qword [ebp - 0x20]
fstp qword [ebx]
je 0x4d3069
push 0
push 2
push dword [ebp - 0x38]
push esi
call fcn.00521817
or eax, edx
je 0x4d3069
fld qword [ebp - 0x20]
fchs
fstp qword [ebx]
cmp dword [ebp - 0x38], 0
jg 0x4d307e
jl 0x4d3075
test esi, esi
jae 0x4d307e
mov dword [ebp - 0x10], 2
jmp 0x4d300d
fld qword [ebx]
call fcn.005219c3
jmp 0x4d30ca
mov ecx, esi
or ecx, dword [ebp - 0x38]
je 0x4d3003
push dword [ebp - 0x38]
push esi
push edx
push eax
call fcn.00521917
jmp 0x4d30ca
push dword [ebp - 0x38]
push esi
push edx
push eax
call fcn.005218d7
jmp 0x4d30ca
sub eax, esi
sbb edx, dword [ebp - 0x38]
jmp 0x4d30ca
add eax, esi
adc edx, dword [ebp - 0x38]
jmp 0x4d30ca
mov ecx, esi
call fcn.00521a47
jmp 0x4d30ca
mov ecx, esi
call fcn.00521a77
mov dword [ebx + 4], edx
mov dword [ebx], eax
jmp 0x4d300d
mov eax, dword [esi + 8]
dec eax
je 0x4d30ec
dec eax
je 0x4d30e8
push dword [ebp - 0x24]
call fcn.004cc477
pop ecx
jmp 0x4d30ee
fld qword [esi]
jmp 0x4d30ee
fild qword [esi]
mov eax, dword [edi + 8]
fstp qword [ebp - 0x20]
dec eax
je 0x4d3109
dec eax
je 0x4d3105
push dword [ebp - 0x48]
call fcn.004cc477
pop ecx
jmp 0x4d310b
fld qword [edi]
jmp 0x4d310b
fild qword [edi]
mov ecx, dword [ebx + 8]
fst qword [ebp - 0x6c]
cmp ecx, 0x1d
jl 0x4d3122
cmp ecx, 0x23
jg 0x4d3122
xor esi, esi
inc esi
mov edi, esi
jmp 0x4d3128
push 2
xor esi, esi
pop edi
inc esi
cmp ecx, 0x23
jg 0x4d31b5
je 0x4d31ab
cmp ecx, 0x1d
jl 0x4d32bb
cmp ecx, 0x1e
jle 0x4d3197
cmp ecx, 0x1f
je 0x4d3185
cmp ecx, 0x20
je 0x4d317b
cmp ecx, 0x21
je 0x4d3171
cmp ecx, 0x22
jne 0x4d32bb
fcomp qword [ebp - 0x20]
fnstsw ax
test ah, 1
je 0x4d31a7
xor eax, eax
xor ecx, ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
jmp 0x4d32bd
fcomp qword [ebp - 0x20]
fnstsw ax
test ah, 5
jmp 0x4d31a5
fcomp qword [ebp - 0x20]
fnstsw ax
test ah, 0x41
jmp 0x4d3161
fld qword [ebp - 0x20]
fld st(1)
fucompp
fnstsw ax
fstp st(0)
test ah, 0x44
jnp 0x4d3163
jmp 0x4d31a7
fld qword [ebp - 0x20]
fld st(1)
fucompp
fnstsw ax
fstp st(0)
test ah, 0x44
jp 0x4d3163
mov eax, esi
jmp 0x4d3165
fcomp qword [ebp - 0x20]
fnstsw ax
test ah, 0x41
jmp 0x4d31a5
cmp ecx, 0x2a
je 0x4d32e5
cmp ecx, 0x2b
je 0x4d32e0
cmp ecx, 0x2c
je 0x4d32db
jle 0x4d32bb
cmp ecx, 0x2e
jle 0x4d32a1
cmp ecx, 0x34
jne 0x4d32bb
fcom qword [0x45aab0]
fnstsw ax
test ah, 5
jnp 0x4d31f7
xor esi, esi
fld qword [0x45aab0]
fld st(1)
fucompp
fnstsw ax
test ah, 0x44
jp 0x4d3218
fld qword [ebp - 0x20]
fcomp qword [0x45aab0]
fnstsw ax
test ah, 5
jnp 0x4d3295
test esi, esi
je 0x4d3246
fstp st(0)
sub esp, 0x10
fld1
fstp qword [esp + 8]
fld qword [ebp - 0x20]
fstp qword [esp]
call fcn.004eaaba
fld qword [0x45aab0]
fucompp
fnstsw ax
test ah, 0x44
jp 0x4d3297
fld qword [ebp - 0x6c]
fchs
fld qword [ebp - 0x20]
sub esp, 0x10
fstp qword [esp + 8]
fstp qword [esp]
call fcn.004eaafa
test esi, esi
fstp qword [ebx]
je 0x4d32bd
fld qword [0x45c988]
sub esp, 0x10
fstp qword [esp + 8]
fld qword [ebp - 0x20]
fstp qword [esp]
call fcn.004eaaba
push ecx
push ecx
fstp qword [esp]
call fcn.004eaa89
fld qword [0x45b458]
fucompp
fnstsw ax
test ah, 0x44
jp 0x4d32bd
fld qword [ebx]
fchs
jmp 0x4d32e8
fstp st(0)
mov dword [ebx], 0x4585d8
xor edi, edi
jmp 0x4d32bd
fld qword [0x45aab0]
fld qword [ebp - 0x20]
fucompp
fnstsw ax
test ah, 0x44
jp 0x4d32c5
mov dword [ebx], 0x4585d8
xor edi, edi
fstp st(0)
mov dword [ebx + 8], edi
jmp 0x4d3802
cmp ecx, 0x2e
fdiv qword [ebp - 0x20]
fst qword [ebx]
jne 0x4d32bb
push ecx
push ecx
fstp qword [esp]
call fcn.004eaa92
jmp 0x4d32e8
fmul qword [ebp - 0x20]
jmp 0x4d32e8
fsub qword [ebp - 0x20]
jmp 0x4d32e8
fadd qword [ebp - 0x20]
fstp qword [ebx]
jmp 0x4d32bd
mov eax, dword [esi + 8]
dec eax
je 0x4d3322
dec eax
je 0x4d32fa
mov eax, dword [ebp - 0x24]
jmp 0x4d3336
fld qword [esi]
push ecx
push ecx
fstp qword [esp]
push 0x4651ac
lea eax, reloc.WINMM.dll_midiStreamOut
push 0x100
push eax
call fcn.004d4eb6
add esp, 0x14
lea eax, reloc.WINMM.dll_midiStreamOut
jmp 0x4d3336
lea eax, reloc.WINMM.dll_midiStreamOut
push eax
push dword [esi + 4]
push dword [esi]
call fcn.004ccbb3
add esp, 0xc
mov dword [ebp - 4], eax
mov eax, dword [edi + 8]
dec eax
je 0x4d336f
dec eax
je 0x4d3347
mov eax, dword [ebp - 0x48]
jmp 0x4d3383
fld qword [edi]
push ecx
push ecx
fstp qword [esp]
push 0x4651ac
lea eax, reloc.WINMM.dll_midiStreamOut
push 0x100
push eax
call fcn.004d4eb6
add esp, 0x14
lea eax, reloc.WINMM.dll_midiStreamOut
jmp 0x4d3383
lea eax, reloc.WINMM.dll_midiStreamOut
push eax
push dword [edi + 4]
push dword [edi]
call fcn.004ccbb3
add esp, 0xc
mov dword [ebp - 0xc], eax
mov eax, dword [ebx + 8]
add eax, 0xffffffe3
cmp eax, 7
mov dword [ebp - 0x10], 1
ja 0x4d3003
jmp dword [eax*4 + 0x408a68]
mov dword [ebx], eax
jmp 0x4d3824
cmp dword [esi + 8], 3
jne 0x4d374e
mov eax, edx
cdq
mov dword [ebx + 8], 1
mov dword [ebx], eax
mov dword [ebx + 4], edx
jmp 0x4d382b
mov dword [ebx], 0x4585d8
mov dword [ebx + 8], ecx
jmp 0x4d382b
cmp edi, 1
jne 0x4d3775
cmp dword [esi + 8], edi
jne 0x4d376d
mov eax, dword [esi]
mov edx, dword [esi + 4]
jmp 0x4d378f
push edx
call fcn.004cccd3
jmp 0x4d378e
cmp edi, 2
jne 0x4d37f9
cmp dword [esi + 8], edi
jne 0x4d3788
fld qword [esi]
call fcn.005219c3
jmp 0x4d378f
push edx
call fcn.004cccfb
pop ecx
cmp dword [ebx + 8], 0x31
jne 0x4d37c1
test edx, edx
jl 0x4d37b5
jg 0x4d379f
test eax, eax
jb 0x4d37b5
test edx, edx
jg 0x4d37b5
jl 0x4d37aa
cmp eax, reloc.WINMM.dll_midiStreamOut
ja 0x4d37b5
and dword [ebx + 4], 0
not eax
jmp 0x4d2be3
not edx
not eax
mov dword [ebx + 4], edx
jmp 0x4d2be3
test edx, edx
jl 0x4d2bdc
jg 0x4d37d6
cmp eax, 0x100
jb 0x4d2bdc
test edx, edx
jg 0x4d2bdc
jl 0x4d37e9
cmp eax, reloc.WINMM.dll_midiStreamOut
ja 0x4d2bdc
movzx eax, byte [eax]
cdq
mov dword [ebx], eax
mov dword [ebx + 4], edx
mov ecx, edx
jmp 0x4d2be0
mov dword [ebx], 0x4585d8
mov dword [ebx + 8], ecx
mov esi, dword [ebp - 0x18]
test esi, esi
je 0x4d382b
push ebx
mov ecx, esi
call fcn.004cca4a
mov al, byte [esi + 0xf]
test al, al
jne 0x4d381e
mov eax, dword [esi + 4]
mov al, byte [eax + 0xf]
cmp al, 2
je 0x4d382b
mov dword [ebx], esi
mov dword [ebx + 8], 3
cmp dword [ebx + 0xc], 0
je 0x4d3931
mov ecx, dword [ebx + 8]
mov eax, ecx
sub eax, 0
je 0x4d386b
sub eax, 3
je 0x4d3862
dec eax
jne 0x4d3870
mov eax, dword [ebx]
push 0
push 1
push 0
push 1
push eax
mov dword [ebp - 0x24], eax
call fcn.004ccd74
add esp, 0x14
mov dword [ebp - 0x4c], eax
jmp 0x4d3873
mov ecx, dword [ebx]
call fcn.004ccf90
jmp 0x4d3849
mov eax, dword [ebx]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x4c], ecx
mov eax, dword [ebp - 0x4c]
dec eax
je 0x4d38b5
dec eax
je 0x4d388a
mov ecx, dword [ebp - 0x24]
xor eax, eax
cmp byte [ecx], al
setne al
mov edi, eax
jmp 0x4d38d3
cmp dword [ebx + 8], 2
jne 0x4d3894
fld qword [ebx]
jmp 0x4d389d
push dword [ebp - 0x24]
call fcn.004cc42c
pop ecx
fld qword [0x45aab0]
xor edi, edi
fld st(1)
fucompp
fnstsw ax
fstp st(0)
test ah, 0x44
jnp 0x4d38d3
inc edi
jmp 0x4d38d3
xor edi, edi
inc edi
cmp dword [ebx + 8], edi
jne 0x4d38c4
mov eax, dword [ebx]
mov edx, dword [ebx + 4]
jmp 0x4d38cd
push dword [ebp - 0x24]
call fcn.004cccd3
pop ecx
or eax, edx
jne 0x4d38d3
xor edi, edi
mov ecx, dword [ebx + 0xc]
cmp dword [ecx + 8], 0x19
je 0x4d3940
mov esi, dword [ebp - 0x14]
xor eax, eax
cmp dword [ecx + 8], 0x1a
sete al
cmp edi, eax
jne 0x4d3968
inc esi
cmp dword [ebp + esi*4 - reloc.WINMM.dll_midiStreamOut], ecx
mov dword [ebp - 0x14], esi
je 0x4d3906
inc esi
cmp dword [ebp + esi*4 - reloc.WINMM.dll_midiStreamOut], ecx
jne 0x4d38f9
mov dword [ebp - 0x14], esi
mov eax, dword [ebp + esi*4 - reloc.WINMM.dll_midiStreamOut]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x4d391a
cmp dword [ecx + 8], 0x19
jne 0x4d38df
mov eax, edi
cdq
mov dword [ebx + 8], 1
mov dword [ebx], eax
mov dword [ebx + 4], edx
mov dword [ebx + 0xc], ecx
jmp 0x4d382b
mov eax, dword [ebp - 8]
inc dword [ebp - 8]
mov dword [ebp + eax*4 - reloc.WINMM.dll_midiStreamOut], ebx
jmp 0x4d3968
test edi, edi
jne 0x4d3968
inc dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp + eax*4 - reloc.WINMM.dll_midiStreamOut]
cmp eax, dword [ebx + 0xc]
je 0x4d3968
mov ebx, dword [ebx + 0xc]
inc dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
cmp dword [ebp + eax*4 - reloc.WINMM.dll_midiStreamOut], ebx
jne 0x4d3959
inc dword [ebp - 0x14]
mov edi, dword [ebp - 8]
mov ecx, dword [ebp - 0x14]
jmp 0x4d228b
mov eax, dword [ebx]
push dword [eax + 0x10]
mov ecx, dword [ebp - 0x5c]
push edi
jmp 0x4d3b69
push dword [ebx + 4]
mov ecx, dword [ebp - 0x54]
push dword [ebx + 0xc]
call fcn.004e79bd
jmp 0x4d24a2
mov ecx, dword [ebp - 0x54]
push 1
push 0
push 0xffffffffffffffff
push dword [ebx]
jmp 0x4d249d
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x40]
push eax
push dword [ebp - 0xc]
call fcn.004cceb9
add esp, 0xc
jmp 0x4d3b73
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x40]
push eax
push dword [ebp - 0xc]
call fcn.004cceb9
add esp, 0xc
jmp 0x4d2487
push dword [ebp - 0x2c]
call fcn.00520ea7
pop ecx
mov ecx, dword [ebp - 0x2c]
cmp ecx, dword [0x468690]
jne 0x4d3a09
cmp eax, 0x40
jb 0x4d3a09
push eax
push ecx
mov ecx, esi
call fcn.004e79bd
and dword [0x468690], 0
and dword [0x468694], 0
jmp 0x4d3a16
push 1
push 0
push eax
push ecx
mov ecx, esi
call fcn.004cc7e9
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x40]
push eax
push dword [ebp - 0xc]
call fcn.004cceb9
add esp, 0xc
jmp 0x4d24a2
mov eax, dword [ebp - 0xc]
push dword [eax]
mov ecx, dword [ebp - 0x5c]
jmp 0x4d3b67
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x40]
push eax
push dword [ebp - 0xc]
call fcn.004cceb9
add esp, 0xc
and dword [ebp - 0x60], 0
jmp 0x4d24a2
mov eax, dword [ebp - 0x5c]
cmp byte [eax], 3
je 0x4d24a2
cmp edi, 1
jne 0x4d2487
mov ecx, dword [ebp - 0x54]
test ecx, ecx
mov edx, dword [ebp - reloc.WINMM.dll_midiStreamOut]
mov esi, edx
je 0x4d3a8e
push edx
call fcn.004cca4a
jmp 0x4d24a2
mov ebx, dword [ebp + 0x10]
mov eax, dword [edx + 8]
test eax, eax
mov ecx, dword [ebx]
mov dword [ebp - 0x60], ecx
je 0x4d3ab6
cmp eax, 1
je 0x4d3aea
cmp eax, 2
je 0x4d3ace
jle 0x4d24a2
cmp eax, 4
jg 0x4d24a2
cmp eax, 3
jne 0x4d3b06
mov ecx, dword [edx]
call fcn.004ccf90
mov dword [ebp - 0x2c], eax
mov ecx, dword [esi]
call fcn.004ccf4f
jmp 0x4d3b12
fld qword [edx]
push ecx
push ecx
fstp qword [esp]
push 0x4651ac
push 0x100
push ecx
call fcn.004d4eb6
add esp, 0x14
jmp 0x4d3afe
push ecx
push dword [edx + 4]
push dword [edx]
call fcn.004ccbb3
push eax
call fcn.00520ea7
add esp, 0x10
inc eax
add dword [ebx], eax
jmp 0x4d24a2
mov edx, dword [edx]
push edx
mov dword [ebp - 0x2c], edx
call fcn.00520ea7
pop ecx
mov esi, dword [ebp - 0x5c]
mov ecx, dword [esi + 4]
mov edi, eax
mov eax, dword [ebp + 8]
lea eax, [eax + eax*2]
mov ax, word [ecx + eax*4 + 2]
inc edi
cmp ax, 0xff
mov dword [ebp - 0x10], edi
jae 0x4d3b36
mov eax, 0xff
jmp 0x4d3b39
movzx eax, ax
mov ecx, dword [ebp + 0x20]
lea eax, [eax + ecx + 1]
cmp edi, eax
jbe 0x4d3c2a
mov ecx, dword [ebp + 0x18]
mov edi, dword [ecx]
sub edi, eax
add edi, dword [ebp - 0x10]
push edi
call fcn.00509c8b
test eax, eax
pop ecx
mov dword [ebp + 0x10], eax
jne 0x4d3b82
mov ecx, esi
push 0x4585d8
push 0
push 0x459e5c
call fcn.00515863
mov eax, dword [ebp + 0xc]
and dword [ebp - 0x60], 0
and dword [eax], 0
jmp 0x4d24a2
cmp edi, 0x400000
jbe 0x4d3b90
inc dword [0x468698]
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
mov esi, dword [ebx]
sub esi, eax
je 0x4d3ba8
push esi
push eax
push dword [ebp + 0x10]
call fcn.005208a7
add esp, 0xc
push dword [ebp - 0x10]
mov eax, dword [ebp + 0x10]
push dword [ebp - 0x2c]
add eax, esi
push eax
mov dword [ebx], eax
mov dword [ebp - 0x60], eax
call fcn.005208a7
mov eax, dword [ebp + 0x14]
push dword [eax]
call fcn.00509248
mov eax, dword [ebp + 0x18]
add esp, 0x10
cmp dword [eax], reloc.WINMM.dll_midiStreamOut
jbe 0x4d3bdc
dec dword [0x468698]
mov eax, dword [ebp + 0x14]
mov edx, dword [eax]
mov eax, dword [ebp + 0x18]
add edx, dword [eax]
xor eax, eax
cmp dword [ebp + 8], eax
mov dword [ebp - 0x14], eax
jle 0x4d3c18
mov ecx, dword [ebp + 0x1c]
mov esi, dword [ebp + 0x14]
mov esi, dword [esi]
lea ecx, [ecx + eax*4]
mov eax, dword [ecx]
cmp eax, esi
jb 0x4d3c0c
cmp eax, edx
jae 0x4d3c0c
sub eax, esi
add eax, dword [ebp + 0x10]
mov dword [ecx], eax
mov eax, dword [ebp - 0x14]
inc eax
cmp eax, dword [ebp + 8]
mov dword [ebp - 0x14], eax
jl 0x4d3bf0
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x14]
mov dword [ecx], eax
mov eax, dword [ebp + 0x18]
mov dword [eax], edi
mov edi, dword [ebp - 0x10]
jmp 0x4d3c3e
mov eax, dword [ebx]
cmp eax, dword [ebp - 0x2c]
je 0x4d3c3e
push edi
push dword [ebp - 0x2c]
push eax
call fcn.00521097
add esp, 0xc
add dword [ebx], edi
jmp 0x4d24a2
push dword [ebp + esi*4 - 0x15ac]
dec esi
call fcn.00509248
pop ecx
test esi, esi
jne 0x4d3c45
mov eax, dword [ebp - 0x60]
lea esp, reloc.WINMM.dll_midiStreamOut
pop edi
pop esi
pop ebx
leave
ret 0x1c