Function at 0x14007b5c0
Capabilities:
Print debug messages

Disassembly:
push rsi
sub rsp, 0x30
mov qword [rsp + 0x48], rbp
mov rsi, rcx
mov qword [rsp + 0x58], r12
xor r12d, r12d
mov qword [rsp + 0x28], r14
xor r14d, r14d
mov qword [rsp + 0x20], r15
xor r15d, r15d
call fcn.140014310
lea rcx, [rsi + 0x10]
movzx ebp, word [rax + 0x92]
and ebp, 1
call fcn.14005ee50
call fcn.140014310
cmp dword [rax + 0x84], 1
jne 0x14007b655
mov r9d, dword [rsi + 0x68]
xor r8d, r8d
test r9d, r9d
je 0x14007b650
lea rdx, [rsi + 0x19c]
nop
mov eax, dword [rdx - 0x84]
and eax, 0xf000
cmp eax, 0x1000
jne 0x14007b641
mov ecx, dword [rdx]
cmp cl, 6
jae 0x14007b641
shr ecx, 8
cmp cl, 4
jne 0x14007b65f
inc r8d
add rdx, 0xb0
cmp r8d, r9d
jb 0x14007b620
mov ebp, 1
cmp dword [rsi + 0x68], r12d
jbe 0x14007b87f
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x50], rdi
xor edi, edi
nop dword [rax + rax]
mov eax, edi
imul rbx, rax, 0xb0
add rbx, rsi
movzx ecx, byte [rbx + 0x19d]
lea eax, [rcx - 7]
cmp al, 1
jbe 0x14007b788
cmp cl, 1
jne 0x14007b6a6
mov ecx, dword [rbx + 0x19c]
cmp cl, 3
jae 0x14007b6a6
add cl, cl
mov byte [rbx + 0x19c], cl
mov ecx, dword [rbx + 0x118]
mov eax, ecx
and eax, 0xf000
sub eax, 0x3000
test eax, 0xffffefff
jne 0x14007b6e5
and ecx, 0xffff1fff
bts ecx, 0xc
mov dword [rbx + 0x118], ecx
call fcn.140014310
test rax, rax
je 0x14007b6e5
call fcn.140014310
or dword [rax + 0x90], 2
test ebp, ebp
je 0x14007b720
mov ecx, dword [rbx + 0x118]
mov eax, ecx
and eax, 0xf000
cmp eax, 0x2000
jne 0x14007b720
mov edx, dword [rbx + 0x19c]
cmp dl, 6
jae 0x14007b720
shr edx, 8
cmp dl, 4
je 0x14007b720
and ecx, 0xffff1fff
bts ecx, 0xc
mov dword [rbx + 0x118], ecx
cmp dword [rbx + 0x1b0], 0xffffffff
jne 0x14007b782
mov edx, dword [rbx + 0x19c]
movzx ecx, dl
cmp ecx, 6
jae 0x14007b759
mov eax, dword [rbx + 0x118]
and eax, 0xf000
cmp eax, 0x1000
jne 0x14007b759
mov eax, edx
shr eax, 8
cmp al, 4
je 0x14007b759
cmp r12d, ecx
cmovbe r12d, ecx
cmp ecx, 3
jae 0x14007b788
mov eax, dword [rbx + 0x118]
and eax, 0xf000
cmp eax, 0x2000
jne 0x14007b788
shr edx, 8
cmp dl, 4
je 0x14007b788
cmp r15d, ecx
ja 0x14007b788
mov r15d, ecx
jmp 0x14007b788
mov r14d, 1
mov eax, dword [rsi + 0x68]
inc edi
cmp edi, eax
jb 0x14007b670
test r14d, r14d
je 0x14007b875
mov ebx, 1
xor ebp, ebp
xor edi, edi
xor r11d, r11d
xor r9d, r9d
test eax, eax
je 0x14007b875
nop word [rax + rax]
mov eax, r9d
imul rdx, rax, 0xb0
add rdx, rsi
movzx r10d, byte [rdx + 0x19d]
lea eax, [r10 - 7]
cmp al, 1
jbe 0x14007b855
cmp dword [rdx + 0x1b0], ebx
jne 0x14007b855
mov r8d, dword [rdx + 0x19c]
mov ebp, 1
mov eax, r8d
cmp r8b, 6
jae 0x14007b829
mov ecx, dword [rdx + 0x118]
and ecx, 0xf000
cmp ecx, 0x1000
jne 0x14007b829
cmp r10b, 4
je 0x14007b829
inc edi
inc r8b
add r8b, r12b
mov byte [rdx + 0x19c], r8b
mov eax, dword [rdx + 0x19c]
cmp al, 3
jae 0x14007b855
mov ecx, dword [rdx + 0x118]
and ecx, 0xf000
cmp ecx, 0x2000
jne 0x14007b855
cmp r10b, 4
je 0x14007b855
inc r11d
inc al
add al, r15b
mov byte [rdx + 0x19c], al
mov eax, dword [rsi + 0x68]
inc r9d
cmp r9d, eax
jb 0x14007b7c0
test ebp, ebp
je 0x14007b875
inc ebx
add r12d, edi
add r15d, r11d
jmp 0x14007b7a3
mov rbx, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x50]
lock dec dword [rsi + 0x28]
mov eax, dword [rsi + 0x28]
mov r15, qword [rsp + 0x20]
mov r14, qword [rsp + 0x28]
mov r12, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x48]
jne 0x14007b8ac
mov rcx, qword [rsi + 0x20]
add rsp, 0x30
pop rsi
jmp qword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_SetEvent]
mov eax, dword [rsi + 0x28]
cmp eax, 0x32
jle 0x14007b8d2
mov r8d, 0x6a
lea rdx, str.CDataAccessProtector::FinishAccess
lea rcx, str._s__d_calling_FinishAccess_isnt_matched_RequestAccess_or_directly_return_in_EnumAudioDeviceStart_loop
add rsp, 0x30
pop rsi
jmp fcn.140075db0
add rsp, 0x30
pop rsi
ret