Function at 0x67c195b0
Capabilities:
Get process heap flags

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x4c
movzx eax, byte [0x67c213b0]
mov ebx, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
test al, 8
jne 0x67c19700
cmp dword [ebx + 0x74], 1
je 0x67c1992f
test edx, edx
je 0x67c19891
movzx ecx, word [edx + 0xe]
test al, 8
jne 0x67c19740
cmp cx, 7
jbe 0x67c198c0
test cl, 7
jne 0x67c198c0
movzx eax, word [edx + 2]
test ax, ax
je 0x67c198c0
mov edi, dword [edx + 4]
test edi, edi
je 0x67c198c0
mov esi, dword [edx + 8]
test esi, esi
je 0x67c198c0
movzx edi, cx
movzx esi, word [edx + 0xc]
imul eax, edi
sar eax, 3
cmp esi, eax
jne 0x67c198c0
cmp word [edx], 0xfffe
jne 0x67c19647
cmp word [edx + 0x12], cx
ja 0x67c198c0
lea esi, [ebx + 0xac]
mov dword [ebp + 0xc], edx
lea edi, [ebx + 0xb0]
mov dword [esp], esi
call dword [sym.imp.kernel32.dll_AcquireSRWLockExclusive]
sub esp, 4
mov dword [esp], edi
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov edx, dword [ebp + 0xc]
sub esp, 4
cmp dword [ebx + 0x74], 4
je 0x67c197a8
mov dword [esp], edx
call fcn.67c18540
test eax, eax
mov dword [ebp - 0x1c], eax
je 0x67c196f0
mov ecx, dword [ebx + 0x80]
mov dword [esp + 4], 0
mov eax, dword fs:[0x18]
mov dword [esp + 8], ecx
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
mov edx, dword [ebp - 0x1c]
sub esp, 0xc
mov dword [ebx + 0x80], edx
xor edx, edx
mov dword [ebp - 0x1c], edx
mov dword [esp], edi
call dword [sym.imp.kernel32.dll_LeaveCriticalSection]
sub esp, 4
mov dword [esp], esi
call dword [sym.imp.kernel32.dll_ReleaseSRWLockExclusive]
mov edx, dword [ebp - 0x1c]
sub esp, 4
lea esp, [ebp - 0xc]
mov eax, edx
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, 0x8007000e
jmp 0x67c196bf
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], 0x67c32dae
mov dword [esp + 8], str.primarybuffer_SetFormat
mov dword [esp + 4], 0x67c213b0
mov dword [esp], 3
call fcn.67c16440
movzx eax, byte [0x67c213b0]
mov edx, dword [ebp + 0xc]
jmp 0x67c195ce
movzx eax, word [edx + 0x10]
mov dword [esp + 0x24], ecx
mov dword [ebp + 0xc], edx
mov dword [esp + 0x28], eax
movzx eax, word [edx + 0xc]
mov dword [esp + 0x20], eax
mov eax, dword [edx + 8]
mov dword [esp + 0x1c], eax
mov eax, dword [edx + 4]
mov dword [esp + 0x18], eax
movzx eax, word [edx + 2]
mov dword [esp + 0x14], eax
movzx eax, word [edx]
mov dword [esp + 0xc], str._formattag0x_04x_chans_d_samplerate_ld_bytespersec_ld_blockalign_d_bitspersamp_d_cbSize_d__n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.primarybuffer_SetFormat
mov dword [esp + 4], 0x67c213b0
mov dword [esp], 3
call fcn.67c16440
mov edx, dword [ebp + 0xc]
movzx ecx, word [edx + 0xe]
jmp 0x67c195ec
mov eax, dword [ebx + 0x80]
mov dword [esp], edx
mov dword [ebp - 0x1c], eax
call fcn.67c18540
mov dword [ebx + 0x80], eax
mov edx, eax
test eax, eax
je 0x67c196f0
cmp word [eax], 0xfffe
je 0x67c19870
mov dword [esp + 4], 1
mov dword [esp], ebx
call fcn.67c18670
mov edx, eax
test eax, eax
jns 0x67c19838
test byte [0x67c213b0], 2
jne 0x67c198d0
mov ecx, dword [ebx + 0x80]
mov dword [esp + 4], 0
mov eax, dword fs:[0x18]
mov dword [esp + 8], ecx
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x20], edx
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x20]
sub esp, 0xc
mov dword [ebx + 0x80], eax
jmp 0x67c196bf
mov ecx, dword [ebp - 0x1c]
mov dword [esp + 4], 0
mov dword [ebp - 0x20], eax
mov dword [esp + 8], ecx
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
mov edx, dword [ebp - 0x20]
sub esp, 0xc
jmp 0x67c196bf
cmp word [eax + 0x12], 0
jne 0x67c197d3
test byte [0x67c213b0], 8
jne 0x67c19900
movzx eax, word [edx + 0xe]
mov word [edx + 0x12], ax
jmp 0x67c197d3
test al, 4
je 0x67c198c0
mov dword [esp + 0xc], 0x67c33360
mov dword [esp + 8], str.primarybuffer_SetFormat
mov dword [esp + 4], 0x67c213b0
mov dword [esp], 2
call fcn.67c16440
lea esi, [esi]
mov edx, 0x80070057
jmp 0x67c196dd
mov dword [esp + 0xc], str.No_formats_could_be_opened_n
mov dword [esp + 8], str.primarybuffer_SetFormat
mov dword [esp + 4], 0x67c213b0
mov dword [esp], 1
mov dword [ebp - 0x20], eax
call fcn.67c16440
mov edx, dword [ebp - 0x20]
jmp 0x67c197f6
mov dword [esp + 0xc], str.Correcting_0_valid_bits_per_sample_n
mov dword [esp + 8], str.primarybuffer_SetFormat
mov dword [esp + 4], 0x67c213b0
mov dword [esp], 3
mov dword [ebp - 0x20], eax
call fcn.67c16440
mov edx, dword [ebp - 0x20]
jmp 0x67c19884
mov edx, 0x88780046
test al, 4
je 0x67c196dd
mov dword [esp + 0xc], str.failed_priority_check__n
mov dword [esp + 8], str.primarybuffer_SetFormat
mov dword [esp + 4], 0x67c213b0
mov dword [esp], 2
mov dword [ebp - 0x1c], edx
call fcn.67c16440
mov edx, dword [ebp - 0x1c]
jmp 0x67c196dd