Function at 0x6664cc40
Capabilities:
Get process heap flags

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x5c
mov edi, dword [ebp + 0x10]
mov ebx, dword [ebp + 0x14]
mov esi, dword [ebp + 0x18]
test byte [0x66650068], 8
jne 0x6664cf18
cmp edi, 0xa
jbe 0x6664cea8
lea eax, [edi - 0x6001]
cmp eax, 0x51
ja case.0x6664cc77.24578
jmp dword [eax*4 + 0x6665374c]
test byte [0x66650068], 8
je 0x6664ccaf
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], 0x6665336e
mov dword [esp + 8], str.PCM_StreamOpen
mov dword [esp + 4], 0x66650068
mov dword [esp], 3
call fcn.6664bca0
test byte [ebx + 0x18], 2
je 0x6664ccd1
mov dword [esp + 8], 0x47a
mov dword [esp + 4], str..._.._.._.._proton_wine_dlls_msacm32_pcmconverter.c
mov dword [esp], str.__adsi__fdwOpen__ACM_STREAMOPENF_ASYNC_
call sub.ucrtbase.dll__assert
mov edx, dword [ebx + 4]
movzx eax, word [edx + 0xe]
cmp ax, 0x10
je 0x6664d8b0
cmp ax, 0x18
jne 0x6664d2d8
movzx eax, word [edx + 2]
movzx ecx, word [edx + 0xc]
mov esi, 0x18
lea eax, [eax + eax*2]
cmp ecx, eax
je 0x6664d47a
test byte [0x66650068], 1
je case.0x6664cc77.24596
mov dword [esp + 0xc], str.Source:_24_bit_samples_must_be_packed_n
mov dword [esp + 8], str.PCM_StreamOpen
mov dword [esp + 4], 0x66650068
mov dword [esp], 0
call fcn.6664bca0
mov eax, 8
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret 0x14
test byte [0x66650068], 8
je 0x6664cd71
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], 0x6665336e
mov dword [esp + 8], str.PCM_DriverDetails
mov dword [esp + 4], 0x66650068
mov dword [esp], 3
call fcn.6664bca0
lea eax, [ebx + 0x28]
mov dword [ebx + 4], 0x63647561
mov dword [ebx + 8], 0
mov dword [ebx + 0xc], 0x260001
mov dword [ebx + 0x10], 0x1000000
mov dword [ebx + 0x14], 0x1000000
mov dword [ebx + 0x18], 2
mov dword [ebx + 0x1c], 1
mov dword [ebx + 0x20], 0
mov dword [ebx + 0x24], 0
mov dword [esp + 0x14], 0x20
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 8], str.MS_PCM
mov dword [esp + 4], 0
mov dword [esp], 0
call sub.kernel32.dll_MultiByteToWideChar
lea eax, [ebx + 0x68]
sub esp, 0x18
mov dword [esp + 0x14], pe_nt_image_headers32
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 8], str.Wine_PCM_converter
mov dword [esp + 4], 0
mov dword [esp], 0
call sub.kernel32.dll_MultiByteToWideChar
lea eax, [ebx + 0x168]
sub esp, 0x18
mov dword [esp + 0x14], 0x50
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 8], str.Brought_to_you_by_the_Wine_team...
mov dword [esp + 4], 0
mov dword [esp], 0
call sub.kernel32.dll_MultiByteToWideChar
lea eax, [ebx + 0x208]
sub esp, 0x18
mov dword [esp + 0x14], pe_nt_image_headers32
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 8], str.Refer_to_LICENSE_file
mov dword [esp + 4], 0
mov dword [esp], 0
call sub.kernel32.dll_MultiByteToWideChar
xor eax, eax
mov word [ebx + 0x308], ax
sub esp, 0x18
lea esp, [ebp - 0xc]
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret 0x14
test edi, edi
jne 0x6664ced8
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], ebx
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp + 8], edi
mov dword [esp], eax
call sub.winmm.dll_DefDriverProc
sub esp, 0x14
jmp 0x6664cd36
sub edi, 3
cmp edi, 7
ja case.0x6664cee0.5
jmp dword [edi*4 + 0x66653894]
test byte [0x66650068], 8
jne 0x6664d5a8
lea esp, [ebp - 0xc]
mov eax, 1
pop ebx
pop esi
pop edi
pop ebp
ret 0x14
lea esp, [ebp - 0xc]
mov eax, 2
pop ebx
pop esi
pop edi
pop ebp
ret 0x14
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x20], esi
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x18], edi
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.__08lx__p__u__08lx__08lx___n
mov dword [esp + 8], str.PCM_DriverProc
mov dword [esp + 4], 0x66650068
mov dword [esp], 3
call fcn.6664bca0
jmp 0x6664cc5f
mov dword [esp + 0xc], 0
mov dword [esp + 8], str.Wine_Driver
mov dword [esp + 4], str.MSACM_PCM_filter__
mov dword [esp], 0
call sub.user32.dll_MessageBoxA
mov eax, 1
sub esp, 0x10
jmp 0x6664cd36
test byte [0x66650068], 8
jne 0x6664d878
cmp esi, 1
je 0x6664d8c0
cmp esi, 2
je 0x6664d540
test esi, esi
je 0x6664d580
test byte [0x66650068], 4
je case.0x6664cc77.24596
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], str.Unsupported_query__08x_n
mov dword [esp + 8], str.PCM_FormatTagDetails
mov dword [esp + 4], 0x66650068
mov dword [esp], 2
call fcn.6664bca0
mov eax, 8
jmp 0x6664cd36
test byte [0x66650068], 8
jne 0x6664d840
test esi, esi
je 0x6664d4c0
cmp esi, 1
je 0x6664d350
test byte [0x66650068], 4
je case.0x6664cc77.24596
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], str.Unsupported_query__08x_n
mov dword [esp + 8], str.PCM_FormatDetails
mov dword [esp + 4], 0x66650068
mov dword [esp], 2
call fcn.6664bca0
mov eax, 8
jmp 0x6664cd36
mov eax, dword [ebx + 4]
movzx edx, word [eax + 0xc]
mov eax, dword [ebx + 8]
movzx edi, word [eax + 0xc]
neg edx
neg edi
test byte [0x66650068], 8
jne 0x6664d800
mov eax, dword [esi + 4]
test eax, eax
je 0x6664d400
cmp eax, 1
je 0x6664d388
test byte [0x66650068], 4
je case.0x6664cc77.24596
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Unsupported_query__08x_n
mov dword [esp + 8], str.PCM_StreamSize
mov dword [esp + 4], 0x66650068
mov dword [esp], 2
call fcn.6664bca0
mov eax, 8
jmp 0x6664cd36
test byte [0x66650068], 8
jne 0x6664d7c8
test esi, esi
je case.0x6664cee0.5
xor eax, eax
cmp dword [esi + 4], 0x63647561
jne 0x6664cd36
mov edx, dword [esi + 8]
test edx, edx
je case.0x6664cee0.5
jmp 0x6664cd36
test byte [0x66650068], 8
jne 0x6664d768
cmp dword [ebx + 0xc], 0xf
jbe 0x6664d8d0
cmp dword [ebx + 0x14], 0xf
jbe 0x6664d8d0
mov eax, dword [ebx + 8]
call fcn.6664cba0
cmp eax, 0xffffffff
je 0x6664d8d0
mov eax, dword [ebx + 4]
test eax, 0x20000
jne 0x6664d142
mov edx, dword [ebx + 8]
mov eax, dword [ebx + 0x10]
movzx edx, word [edx + 2]
mov word [eax + 2], dx
mov eax, dword [ebx + 4]
test eax, 0x40000
jne 0x6664d158
mov edx, dword [ebx + 8]
mov eax, dword [ebx + 0x10]
mov edx, dword [edx + 4]
mov dword [eax + 4], edx
mov eax, dword [ebx + 4]
test eax, 0x80000
jne 0x6664d170
mov edx, dword [ebx + 8]
mov eax, dword [ebx + 0x10]
movzx edx, word [edx + 0xe]
mov word [eax + 0xe], dx
mov eax, dword [ebx + 4]
test eax, 0x10000
jne 0x6664d920
mov eax, dword [ebx + 8]
movzx eax, word [eax]
cmp ax, 1
jne 0x6664dab7
mov eax, dword [ebx + 0x10]
mov edx, 1
mov word [eax], dx
mov eax, dword [ebx + 0x10]
call fcn.6664cba0
cmp eax, 0xffffffff
je 0x6664d8d0
mov edx, dword [ebx + 0x10]
movzx eax, word [edx + 2]
movzx ecx, word [edx + 0xe]
imul eax, ecx
sar eax, 3
mov word [edx + 0xc], ax
mov eax, dword [ebx + 0x10]
movzx edx, word [eax + 0xc]
imul edx, dword [eax + 4]
mov dword [eax + 8], edx
xor eax, eax
jmp 0x6664cd36
mov eax, dword [ebx + 4]
xor edx, edx
mov edi, dword [ebx + 0x20]
movzx ecx, word [eax + 0xc]
mov eax, dword [esi + 0x10]
div ecx
xor edx, edx
mov dword [ebp - 0x20], eax
mov eax, dword [ebx + 8]
movzx ecx, word [eax + 0xc]
mov eax, dword [esi + 0x20]
div ecx
mov dword [ebp - 0x1c], eax
test byte [0x66650068], 8
jne 0x6664d5e0
mov eax, dword [esi + 0x2c]
test eax, 0xffffffcb
je 0x6664d240
test byte [0x66650068], 1
je 0x6664d240
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Unsupported_fdwConvert___08x___ignoring_it_n
mov dword [esp + 8], 0x666538b4
mov dword [esp + 4], 0x66650068
mov dword [esp], 0
call fcn.6664bca0
nop
mov edx, dword [esi + 0x1c]
mov eax, dword [esi + 0xc]
test byte [ebx + 0x1c], 1
jne 0x6664d320
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x38], ecx
mov ecx, dword [ebp - 0x1c]
cmp dword [ebp - 0x38], ecx
jae 0x6664d910
mov ecx, dword [ebp - 0x38]
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 0x38]
mov dword [esp + 8], edx
mov dword [esp], eax
mov dword [esp + 4], ecx
call dword [edi]
mov eax, dword [ebx + 4]
movzx eax, word [eax + 0xc]
imul eax, dword [ebp - 0x20]
mov dword [esi + 0x14], eax
mov eax, dword [ebx + 8]
movzx eax, word [eax + 0xc]
imul eax, dword [ebp - 0x1c]
mov dword [esi + 0x24], eax
xor eax, eax
jmp 0x6664cd36
test byte [0x66650068], 8
jne 0x6664d798
mov edx, dword [ebx + 0x20]
mov dword [esp + 4], 0
mov eax, dword fs:[0x18]
mov dword [esp + 8], edx
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call sub.kernel32.dll_HeapFree
xor eax, eax
sub esp, 0xc
jmp 0x6664cd36
cmp ax, 8
je 0x6664d478
test byte [0x66650068], 1
je case.0x6664cc77.24596
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Unsupported_source_bit_depth:__u_n
mov dword [esp + 8], str.PCM_StreamOpen
mov dword [esp + 4], 0x66650068
mov dword [esp], 0
call fcn.6664bca0
jmp case.0x6664cc77.24596
lea ecx, [ebp - 0x1c]
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
mov edx, dword [ebx + 8]
mov edx, dword [edx + 4]
mov dword [esp + 4], eax
mov dword [esp + 0xc], edx
lea edx, [ebp - 0x20]
mov dword [esp + 8], edx
mov eax, dword [ebx + 4]
mov eax, dword [eax + 4]
mov dword [esp], eax
call dword [edi]
jmp 0x6664d278
mov eax, dword [ebx + 0x10]
call fcn.6664cba0
cmp eax, 0xffffffff
je 0x6664db3e
xor ecx, ecx
mov dword [ebx + 8], 1
xor eax, eax
mov dword [ebx + 0xc], 2
mov word [ebx + 0x18], cx
mov dword [ebx + 0x14], 0x10
jmp 0x6664cd36
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 4]
and edi, dword [esi + 0xc]
mov eax, dword [eax + 8]
mov ebx, dword [ecx + 8]
test eax, eax
je 0x6664da5d
fnstcw word [ebp - 0x2a]
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], 0
fild qword [ebp - 0x38]
mov dword [ebp - 0x38], edi
movzx eax, word [ebp - 0x2a]
mov dword [ebp - 0x34], 0
fild qword [ebp - 0x38]
mov dword [ebp - 0x38], ebx
or ah, 0xc
mov dword [ebp - 0x34], 0
fild qword [ebp - 0x38]
mov word [ebp - 0x2c], ax
fmulp st(1)
fadd st(1)
fsub dword [0x66653db0]
fdivrp st(1)
fldcw word [ebp - 0x2c]
fistp qword [ebp - 0x38]
fldcw word [ebp - 0x2a]
mov eax, dword [ebp - 0x38]
and edx, eax
xor eax, eax
mov dword [esi + 8], edx
jmp 0x6664cd36
mov eax, dword [ebx + 4]
mov ecx, dword [ebx + 8]
and edx, dword [esi + 8]
mov eax, dword [eax + 8]
mov ecx, dword [ecx + 8]
mov ebx, edx
test eax, eax
je 0x6664da8a
fnstcw word [ebp - 0x2a]
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], 0
fild qword [ebp - 0x38]
mov dword [ebp - 0x38], ebx
movzx eax, word [ebp - 0x2a]
mov dword [ebp - 0x34], 0
fild qword [ebp - 0x38]
mov dword [ebp - 0x38], ecx
or ah, 0xc
mov dword [ebp - 0x34], 0
fild qword [ebp - 0x38]
mov word [ebp - 0x2c], ax
fmulp st(1)
fadd st(1)
fsub dword [0x66653db0]
fdivrp st(1)
fldcw word [ebp - 0x2c]
fistp qword [ebp - 0x38]
fldcw word [ebp - 0x2a]
mov eax, dword [ebp - 0x38]
and edi, eax
xor eax, eax
mov dword [esi + 0xc], edi
jmp 0x6664cd36
xor esi, esi
mov ecx, dword [ebx + 8]
movzx eax, word [ecx + 0xe]
cmp ax, 0x10
je 0x6664da23
cmp ax, 0x18
je 0x6664d9f0
cmp ax, 8
je 0x6664d970
test byte [0x66650068], 1
je case.0x6664cc77.24596
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Unsupported_destination_bit_depth:__u_n
jmp 0x6664d2fb
cmp dword [ebx + 4], 0x23
ja 0x6664da3c
mov eax, dword [ebx + 0x10]
mov esi, 1
mov word [eax], si
mov eax, dword [ebx + 4]
mov edx, dword [ebx + 0x10]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x66653c00]
mov word [edx + 2], ax
mov eax, dword [ebx + 4]
mov edx, dword [ebx + 0x10]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x66653c08]
mov dword [edx + 4], eax
mov eax, dword [ebx + 4]
mov edx, dword [ebx + 0x10]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x66653c04]
mov word [edx + 0xe], ax
mov edx, dword [ebx + 0x10]
movzx eax, word [edx + 2]
movzx ecx, word [edx + 0xe]
imul eax, ecx
sar eax, 3
mov word [edx + 0xc], ax
mov eax, dword [ebx + 0x10]
movzx edx, word [eax + 0xc]
imul edx, dword [eax + 4]
mov dword [eax + 8], edx
jmp 0x6664d361
cmp dword [ebx + 8], 1
ja 0x6664d587
xor edi, edi
mov dword [ebx + 4], 0
xor eax, eax
mov dword [ebx + 8], 1
mov dword [ebx + 0xc], 0x10
mov dword [ebx + 0x10], 2
mov dword [ebx + 0x14], 0x24
mov word [ebx + 0x18], di
jmp 0x6664cd36
mov eax, dword [ebx + 4]
test eax, eax
je 0x6664d546
test byte [0x66650068], 4
jne 0x6664dad5
lea esi, [esi]
mov eax, 0x200
jmp 0x6664cd36
mov eax, dword [ebp + 8]
mov dword [esp + 0xc], str.__d__n
mov dword [esp + 8], str.PCM_drvClose
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0x66650068
mov dword [esp], 3
call fcn.6664bca0
mov eax, 1
jmp 0x6664cd36
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], str.__p___p__n
mov dword [esp + 8], 0x666538b4
mov dword [esp + 4], 0x66650068
mov dword [esp], 3
call fcn.6664bca0
test byte [0x66650068], 8
je 0x6664d203
mov eax, dword [esi + 0x10]
mov dword [esp + 0xc], str.nsrc_d_adsh__cbSrcLength_d_n
mov dword [esp + 8], 0x666538b4
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x20]
mov dword [esp + 4], 0x66650068
mov dword [esp + 0x10], eax
mov dword [esp], 3
call fcn.6664bca0
test byte [0x66650068], 8
je 0x6664d203
mov eax, dword [esi + 0x20]
mov dword [esp + 0xc], str.ndst_d_adsh__cbDstLength_d_n
mov dword [esp + 8], 0x666538b4
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x1c]
mov dword [esp + 4], 0x66650068
mov dword [esp + 0x10], eax
mov dword [esp], 3
call fcn.6664bca0
test byte [0x66650068], 8
je 0x6664d203
mov eax, dword [ebx + 4]
movzx edx, word [eax + 0x10]
mov dword [esp + 0x28], edx
movzx edx, word [eax + 0xe]
mov dword [esp + 0x24], edx
movzx edx, word [eax + 0xc]
mov dword [esp + 0x20], edx
mov edx, dword [eax + 8]
mov dword [esp + 0x1c], edx
mov edx, dword [eax + 4]
mov dword [esp + 0x18], edx
movzx edx, word [eax + 2]
mov dword [esp + 0x14], edx
movzx eax, word [eax]
mov dword [esp + 0xc], 0x66653630
mov dword [esp + 0x10], eax
mov dword [esp + 8], 0x666538b4
mov dword [esp + 4], 0x66650068
mov dword [esp], 3
call fcn.6664bca0
test byte [0x66650068], 8
je 0x6664d203
mov eax, dword [ebx + 8]
movzx edx, word [eax + 0x10]
mov dword [esp + 0x28], edx
movzx edx, word [eax + 0xe]
mov dword [esp + 0x24], edx
movzx edx, word [eax + 0xc]
mov dword [esp + 0x20], edx
mov edx, dword [eax + 8]
mov dword [esp + 0x1c], edx
mov edx, dword [eax + 4]
mov dword [esp + 0x18], edx
movzx edx, word [eax + 2]
mov dword [esp + 0x14], edx
movzx eax, word [eax]
mov dword [esp + 0xc], 0x666536a8
mov dword [esp + 0x10], eax
mov dword [esp + 8], 0x666538b4
mov dword [esp + 4], 0x66650068
mov dword [esp], 3
call fcn.6664bca0
jmp 0x6664d203
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], 0x6665336e
mov dword [esp + 8], str.PCM_FormatSuggest
mov dword [esp + 4], 0x66650068
mov dword [esp], 3
call fcn.6664bca0
jmp 0x6664d102
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], 0x6665336e
mov dword [esp + 8], str.PCM_StreamClose
mov dword [esp + 4], 0x66650068
mov dword [esp], 3
call fcn.6664bca0
jmp 0x6664d2a8
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], str.__p___p__n
mov dword [esp + 8], str.PCM_drvOpen
mov dword [esp + 4], 0x66650068
mov dword [esp], 3
call fcn.6664bca0
jmp 0x6664d0ce
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], str.__p___p__n
mov dword [esp + 8], str.PCM_StreamSize
mov dword [esp + 4], 0x66650068
mov dword [esp], 3
mov dword [ebp - 0x38], edx
call fcn.6664bca0
mov edx, dword [ebp - 0x38]
jmp 0x6664d06e
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], str.__p___08x__n
mov dword [esp + 8], str.PCM_FormatDetails
mov dword [esp + 4], 0x66650068
mov dword [esp], 3
call fcn.6664bca0
jmp 0x6664cfff
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], str.__p___08x__n
mov dword [esp + 8], str.PCM_FormatTagDetails
mov dword [esp + 4], 0x66650068
mov dword [esp], 3
call fcn.6664bca0
jmp 0x6664cf99
mov esi, 0xc
jmp 0x6664d47a
cmp dword [ebx + 8], 1
je 0x6664d546
jmp 0x6664d587
test byte [0x66650068], 4
je 0x6664d598
mov dword [esp + 0xc], str.not_possible_n
mov dword [esp + 8], str.PCM_FormatSuggest
mov dword [esp + 4], 0x66650068
mov dword [esp], 2
call fcn.6664bca0
mov eax, 0x200
jmp 0x6664cd36
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x38], ecx
jmp 0x6664d268
mov eax, dword [ebx + 0x10]
movzx edx, word [eax]
cmp dx, 1
je 0x6664d199
test byte [0x66650068], 4
je 0x6664d598
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], str.destination_format_0x_x_not_supported_n
mov dword [esp + 8], str.PCM_FormatSuggest
mov dword [esp + 4], 0x66650068
mov dword [esp], 2
call fcn.6664bca0
jmp 0x6664d598
movzx eax, word [ecx + 2]
cmp word [edx + 2], 1
jne 0x6664d97e
add esi, 2
cmp ax, 1
mov dword [esp + 8], 4
sete al
mov dword [esp + 4], 0
movzx eax, al
add esi, eax
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call sub.kernel32.dll_HeapAlloc
sub esp, 0xc
mov edi, eax
test eax, eax
je 0x6664dafe
mov eax, dword [ebx + 8]
mov edx, dword [ebx + 4]
mov eax, dword [eax + 4]
cmp dword [edx + 4], eax
je 0x6664da2f
mov eax, dword [esi*4 + 0x66653ac0]
mov edx, 1
mov dword [edi], eax
test eax, eax
je 0x6664db08
mov dword [ebx + 0x20], edi
xor eax, eax
mov dword [ebx + 0x1c], edx
jmp 0x6664cd36
movzx eax, word [ecx + 2]
movzx edi, word [ecx + 0xc]
add esi, 8
movzx ecx, ax
lea ecx, [ecx + ecx*2]
cmp edi, ecx
je 0x6664d974
test byte [0x66650068], 1
je case.0x6664cc77.24596
mov dword [esp + 0xc], str.Destination:_24_bit_samples_must_be_packed_n
jmp 0x6664cd15
movzx eax, word [ecx + 2]
add esi, 4
jmp 0x6664d974
mov eax, dword [esi*4 + 0x66653b60]
xor edx, edx
mov dword [edi], eax
jmp 0x6664d9d7
mov dword [esp + 8], 0x421
mov dword [esp + 4], str..._.._.._.._proton_wine_dlls_msacm32_pcmconverter.c
mov dword [esp], str.afd__dwFormatIndex___ARRAY_SIZE_PCM_Formats_
call sub.ucrtbase.dll__assert
jmp 0x6664d4ca
mov dword [esp + 8], 0x4d1
mov dword [esp + 4], str..._.._.._.._proton_wine_dlls_msacm32_pcmconverter.c
mov dword [esp], 0x666535f0
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x38], edx
call sub.ucrtbase.dll__assert
mov eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0x38]
jmp 0x6664d39f
mov dword [esp + 8], 0x4d1
mov dword [esp + 4], str..._.._.._.._proton_wine_dlls_msacm32_pcmconverter.c
mov dword [esp], 0x666535f0
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x38], eax
call sub.ucrtbase.dll__assert
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x38]
jmp 0x6664d419
test byte [0x66650068], 4
je 0x6664d598
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.source_format_0x_x_not_supported_n
jmp 0x6664d949
mov dword [esp + 0xc], str.not_possible_n
mov dword [esp + 8], str.PCM_FormatTagDetails
mov dword [esp + 4], 0x66650068
mov dword [esp], 2
call fcn.6664bca0
jmp 0x6664d598
mov eax, 7
jmp 0x6664cd36
test byte [0x66650068], 1
jne 0x6664db79
mov dword [esp + 8], edi
mov dword [esp + 4], 0
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call sub.kernel32.dll_HeapFree
mov eax, 8
sub esp, 0xc
jmp 0x6664cd36
test byte [0x66650068], 4
je 0x6664d598
mov dword [esp + 0xc], str.not_possible_n
mov dword [esp + 8], str.PCM_FormatDetails
mov dword [esp + 4], 0x66650068
mov dword [esp], 2
call fcn.6664bca0
mov eax, 0x200
jmp 0x6664cd36
mov eax, dword [ebx + 8]
movzx eax, word [eax + 0xe]
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 4]
movzx eax, word [eax + 0xe]
mov dword [esp + 0xc], str.Unimplemented_conversion_from__u_____u_bps_n
mov dword [esp + 8], str.PCM_StreamOpen
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0x66650068
mov dword [esp], 0
call fcn.6664bca0
jmp 0x6664db11