Function at 0x1400120c0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
mov qword [rsp + 8], rcx
push rdi
push r14
push r15
sub rsp, 0x30
mov rbx, rcx
mov qword [rsp + 0x20], rcx
lea rax, vtable.IRtkAudioDriverEventNotify.0
mov qword [rcx], rax
lea rsi, [rcx + 8]
lea rax, vtable.IAudioDeviceChangeNotify.0
mov qword [rsi], rax
lea r15, [rcx + 0x10]
lea rax, vtable.IEndpointVolumeEventNotify.0
mov qword [r15], rax
lea r14, [rcx + 0x18]
lea rax, vtable.ITimerEventNotify.0
mov qword [r14], rax
add rcx, 0x20
call fcn.14009c120
nop
lea rax, vtable.CAudioDeviceMuteStateHandler.3.0
mov qword [rbx], rax
lea rax, vtable.CAudioDeviceMuteStateHandler.2.0
mov qword [rsi], rax
lea rax, vtable.CAudioDeviceMuteStateHandler.1.0
mov qword [r15], rax
lea rax, vtable.CAudioDeviceMuteStateHandler.0
mov qword [r14], rax
xor eax, eax
mov qword [rbx + 0x28], rax
mov qword [rbx + 0x30], rax
mov dword [rbx + 0x38], SafeArrayUnaccessData
mov dword [rbx + 0x58], eax
mov dword [rbx + 0x5c], 0xa
mov qword [rbx + 0x60], rax
mov qword [rbx + 0x68], rax
mov dword [rbx + 0x3c], 0x3f400000
mov dword [rbx + 0x40], 0x3e800000
mov dword [rbx + 0x44], 0x40100000
mov qword [rbx + 0x48], 0x26
mov qword [rbx + 0x50], rax
mov qword [rbx + 0x70], rax
mov qword [rbx + 0x78], rax
mov qword [rbx + 0x80], rax
mov qword [rbx + 0x88], rax
mov qword [rbx + 0x90], rax
mov dword [rbx + 0x98], eax
call fcn.14000bb10
mov rdi, rax
add rdi, 0x8c
jne 0x1400121df
lea r8d, [rdi + 0x12]
lea rdx, str.CAudioDeviceMuteStateHandler::CAudioDeviceMuteStateHandler
lea rcx, str._s__d_RETURN_ON_FALSE
call fcn.14006dd20
jmp 0x140012483
cmp byte [rdi + 0x249], 0
je 0x140012276
call fcn.14000bb10
cmp byte [rax + 0x2d5], 1
jne 0x14001221c
mov eax, dword [rdi + 0x248]
shr eax, 1
and eax, 1
mov dword [rbx + 0x7c], eax
mov eax, dword [rdi + 0x248]
and eax, 1
mov dword [rbx + 0x80], eax
jmp 0x1400122c4
call fcn.14000bb10
cmp byte [rax + 0x2d5], 2
jne 0x140012249
mov eax, dword [rdi + 0x248]
shr eax, 1
and eax, 1
mov dword [rbx + 0x7c], eax
mov eax, dword [rdi + 0x138]
shr eax, 4
and eax, 1
mov dword [rbx + 0x78], eax
jmp 0x1400122c4
call fcn.14000bb10
cmp byte [rax + 0x2d5], 3
jne 0x1400122c4
mov eax, dword [rdi + 0x248]
shr eax, 1
and eax, 1
mov dword [rbx + 0x7c], eax
mov eax, dword [rdi + 0x248]
and eax, 1
mov dword [rbx + 0x80], eax
jmp 0x1400122c4
mov eax, dword [rdi + 0x138]
shr eax, 3
and eax, 1
mov dword [rbx + 0x74], eax
mov eax, dword [rdi + 0x138]
shr eax, 4
and eax, 1
mov dword [rbx + 0x78], eax
mov eax, dword [rdi + 0x138]
shr eax, 2
and eax, 1
mov dword [rbx + 0x70], eax
mov eax, dword [rdi + 0x14c]
shr eax, 3
and eax, 1
mov dword [rbx + 0x8c], eax
mov eax, dword [rdi + 0x14]
shr eax, 5
and eax, 1
mov dword [rbx + 0x90], eax
lea rcx, [rbx + 0x28]
call fcn.140014cf0
cmp dword [rbx + 0x78], 0
je 0x1400122db
mov rcx, rbx
call fcn.140013450
cmp dword [rbx + 0x74], 0
je 0x1400122e9
mov rcx, rbx
call fcn.1400136d0
cmp dword [rbx + 0x7c], 0
je 0x1400122f7
mov rcx, rbx
call fcn.140013d60
cmp dword [rbx + 0x80], 0
je 0x140012308
mov rcx, rbx
call fcn.1400137b0
cmp dword [rbx + 0x74], 0
jne 0x140012327
cmp dword [rbx + 0x78], 0
jne 0x140012327
cmp dword [rbx + 0x7c], 0
jne 0x140012327
cmp dword [rbx + 0x80], 0
je 0x1400123c2
mov qword [rsp + 0x28], rsi
call fcn.14000bd10
mov rdi, rax
test rsi, rsi
je 0x140012372
lea rcx, [rax + 0x10]
call qword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_EnterCriticalSection]
lea rcx, [rdi + 0x38]
mov rax, qword [rcx]
test rax, rax
je 0x14001235e
nop
cmp qword [rax + 0x10], rsi
je 0x140012368
mov rax, qword [rax]
test rax, rax
jne 0x140012350
lea rdx, [rsp + 0x28]
call fcn.140006d60
lea rcx, [rdi + 0x10]
call qword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_LeaveCriticalSection]
mov qword [rsp + 0x28], r15
call fcn.140014a60
mov rdi, rax
test r15, r15
je 0x1400123c2
lea rcx, [rax + 0x18]
call qword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_EnterCriticalSection]
lea rcx, [rdi + 0x40]
mov rax, qword [rcx]
test rax, rax
je 0x1400123ae
nop word [rax + rax]
cmp qword [rax + 0x10], r15
je 0x1400123b8
mov rax, qword [rax]
test rax, rax
jne 0x1400123a0
lea rdx, [rsp + 0x28]
call fcn.140006d60
lea rcx, [rdi + 0x18]
call qword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_LeaveCriticalSection]
cmp dword [rbx + 0x7c], 0
jne 0x1400123d1
cmp dword [rbx + 0x80], 0
je 0x140012422
mov qword [rsp + 0x28], r14
call fcn.14000be90
mov rdi, rax
test r14, r14
je 0x140012422
lea rcx, [rax + 0x28]
call qword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_EnterCriticalSection]
lea rcx, [rdi + 0x50]
mov rax, qword [rcx]
test rax, rax
je 0x14001240e
nop dword [rax]
cmp qword [rax + 0x10], r14
je 0x140012418
mov rax, qword [rax]
test rax, rax
jne 0x140012400
lea rdx, [rsp + 0x28]
call fcn.140006d60
lea rcx, [rdi + 0x28]
call qword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_LeaveCriticalSection]
cmp dword [rbx + 0x70], 0
jne 0x14001243a
cmp dword [rbx + 0x8c], 0
jne 0x14001243a
cmp dword [rbx + 0x90], 0
je 0x140012483
mov qword [rsp + 0x28], rbx
call fcn.140014b20
mov rdi, rax
lea rcx, [rax + 0x20]
call qword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_EnterCriticalSection]
lea rcx, [rdi + 0x48]
mov rax, qword [rcx]
test rax, rax
je 0x14001246e
nop dword [rax]
cmp qword [rax + 0x10], rbx
je 0x140012478
mov rax, qword [rax]
test rax, rax
jne 0x140012460
lea rdx, [rsp + 0x28]
call fcn.140006d60
lea rcx, [rdi + 0x20]
call qword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_LeaveCriticalSection]
nop
mov rax, rbx
mov rbx, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x68]
add rsp, 0x30
pop r15
pop r14
pop rdi
ret