Function at 0x14007c510
Capabilities:
Delete registry value
Query or enumerate registry value
Set registry value

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xb0]
sub rsp, 0x1b0
mov rax, qword [0x1401aa010]
xor rax, rsp
mov qword [rbp + 0xa0], rax
mov dword [rsp + 0x68], edx
mov r14d, ecx
test edx, edx
je 0x14007c558
call fcn.14007d5e0
test eax, eax
je 0x14007d566
call fcn.14003a6b0
mov rdi, rax
test rax, rax
jne 0x14007c583
mov r8d, BSTR_UserMarshal
lea rdx, str.CJackInfoRegWriter::UpdateJackInfoToReg
lea rcx, str._s__d_RETURN_FALSE_ON_FALSE
call fcn.140075db0
jmp 0x14007d566
call fcn.14002b4b0
mov rsi, rax
test rax, rax
jne 0x14007c598
mov r8d, reloc.OLEAUT32.dll_BSTR_UserFree
jmp 0x14007c56b
mov edx, r14d
mov rcx, rsi
call fcn.14007dd40
mov ebx, eax
cmp eax, 0x21
jae 0x14007d546
lea r12, [rbx + 0x14]
lea r12, [rbx + r12*2]
lea r12, [rsi + r12*4]
test r12, r12
je 0x14007d546
xorps xmm0, xmm0
movups xmmword [rbp - 0x50], xmm0
xor r14d, r14d
mov qword [rbp - 0x50], r14
mov dword [rbp - 0x48], r14d
mov qword [rbp - 0x40], r14
call fcn.14000cd60
mov rcx, rax
test rax, rax
je 0x14007d59d
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
call qword [case.0x14005eeb3.0]
add rax, 0x18
mov qword [rbp], rax
mov r9d, ebx
lea r8, str.SoftwareRealtekAudioGUI_INFORMATIONJackInfomation
lea rdx, str._sJack_d
lea rcx, [rbp]
call fcn.14000ec90
mov r9d, 0x2001f
mov rbx, qword [rbp]
mov r8, rbx
mov rdx, 0xffffffff80000002
lea rcx, [rbp - 0x50]
call fcn.140035040
lea r13, [r14 - 1]
test eax, eax
je 0x14007c68a
mov dword [rsp + 0x28], 0x2001f
mov r8, rbx
mov rdx, 0xffffffff80000002
lea rcx, [rbp - 0x50]
call fcn.14007dad0
test eax, eax
je 0x14007c68a
mov rdx, rbx
lea rcx, str.CJackMgr::UpdateUIJackInfoToReg_:_Failed_to_create__s_n
call fcn.140075db0
mov r8d, 0x139
lea rdx, str.CJackInfoRegWriter::UpdateJackInfoToReg
lea rcx, str._s__d_RETURN_FALSE_ON_FALSE
call fcn.140075db0
jmp 0x14007d50e
mov dword [rsp + 0x6c], r14d
mov r15d, dword [r12 + 4]
mov dword [rbp - 0x34], r14d
mov dword [rbp - 0x38], 4
lea rax, [rbp - 0x38]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x34]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 0x30]
xor r8d, r8d
lea rdx, str.JackStatus
mov rbx, qword [rbp - 0x50]
mov rcx, rbx
call qword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegQueryValueExW]
mov esi, eax
test eax, eax
jne 0x14007c6e1
mov esi, r14d
mov eax, SafeArrayDestroy
cmp dword [rbp - 0x30], 4
cmovne esi, eax
mov ecx, r15d
call fcn.14007bf50
lea rcx, [rdi + 0x10]
call fcn.14005ee50
movsxd rcx, r15d
imul r13, rcx, 0xb0
add r13, rdi
movzx eax, word [r13 + reloc.OLEAUT32.dll_BSTR_UserUnmarshal]
mov dword [rsp + 0x54], eax
mov eax, dword [rdi + rcx*4 + 0x8c]
mov dword [rbp - 0x28], eax
mov dword [rsp + 0x28], 4
lea rax, [rbp - 0x28]
mov qword [rsp + 0x20], rax
mov r9d, 4
xor r8d, r8d
lea rdx, str.JackStatusChangedWhenPowerDown
mov rcx, rbx
call qword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegSetValueExW]
cmp esi, 2
jne 0x14007c77a
test byte [rsp + 0x54], sil
je 0x14007c77a
mov dword [rbp - 0x20], 1
mov dword [rsp + 0x28], 4
lea rax, [rbp - 0x20]
mov qword [rsp + 0x20], rax
lea r9d, [rsi + 2]
xor r8d, r8d
lea rdx, str.JackStatusChangedWhenPowerDown
mov rcx, rbx
call qword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegSetValueExW]
mov eax, dword [r12 + 8]
mov dword [rbp - 0x18], eax
mov dword [rsp + 0x28], 4
lea rax, [rbp - 0x18]
mov qword [rsp + 0x20], rax
mov r9d, 4
xor r8d, r8d
lea rdx, str.JackIconTypeColor
mov rcx, rbx
call qword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegSetValueExW]
mov esi, dword [r13 + 0x1a0]
mov eax, dword [r13 + 0x1b0]
mov dword [rsp + 0x50], eax
mov r12d, dword [r13 + 0x1b8]
mov dword [rsp + 0x74], r12d
mov ecx, eax
shl ecx, 8
add ecx, 0x100
and ecx, 0xf00
mov eax, r12d
shl eax, 0xc
add eax, 0x1000
and eax, 0xf000
or ecx, eax
or ecx, esi
mov dword [rbp - 0x10], ecx
mov dword [rsp + 0x28], 4
lea rax, [rbp - 0x10]
mov qword [rsp + 0x20], rax
mov r9d, 4
xor r8d, r8d
lea rdx, str.JackWidgetId
mov rcx, rbx
call qword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegSetValueExW]
test r12d, r12d
js 0x14007c868
lfence
mov ecx, r12d
call fcn.1400a3640
test eax, eax
jne 0x14007c864
mov dword [rbp - 8], 1
mov dword [rsp + 0x28], 4
lea rax, [rbp - 8]
mov qword [rsp + 0x20], rax
mov r9d, 4
xor r8d, r8d
lea rdx, str.Docking
mov rcx, qword [rbp - 0x50]
call qword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegSetValueExW]
jmp 0x14007c878
mov rbx, qword [rbp - 0x50]
lea rdx, str.Docking
mov rcx, rbx
call qword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegDeleteValueW]
movzx eax, word [r13 + reloc.OLEAUT32.dll_BSTR_UserUnmarshal]
mov dword [rsp + 0x70], eax
mov dword [rbp - 0x80], r14d
mov dword [rbp - 0x70], r14d
cmp r15d, dword [rdi + 0x68]
jae 0x14007c901
imul rcx, r15, 0xb0
cmp dword [rcx + rdi + 0x1ac], 0
je 0x14007c8b6
mov eax, dword [rcx + rdi + 0x1a4]
mov dword [rbp - 0x80], eax
mov eax, dword [rcx + rdi + 0x1a8]
jmp 0x14007c8d0
mov eax, dword [rcx + rdi + 0x118]
shr eax, 8
and eax, 0xf
mov dword [rbp - 0x80], eax
mov eax, dword [rcx + rdi + 0x110]
and eax, 0xf
mov dword [rbp - 0x70], eax
call fcn.14006b0c0
mov r10, rax
test rax, rax
je 0x14007c901
lfence
mov rcx, qword [rax]
mov rax, qword [rcx + 0x80]
lea r9, [rbp - 0x70]
lea r8, [rbp - 0x80]
mov edx, r15d
mov rcx, r10
call qword [case.0x14005eeb3.0]
test r12d, r12d
js 0x14007c922
mov ecx, dword [rdi + 0x1724]
mov dword [rsp + 0x5c], ecx
mov ecx, dword [rdi + 0x1720]
mov dword [rsp + 0x54], ecx
mov ebx, dword [rdi + 0x171c]
jmp 0x14007c93c
mov eax, dword [rdi + 0x1718]
mov dword [rsp + 0x5c], eax
mov eax, dword [rdi + 0x1714]
mov dword [rsp + 0x54], eax
mov ebx, dword [rdi + 0x1710]
mov dword [rsp + 0x60], ebx
lock dec dword [rdi + 0x28]
mov eax, dword [rdi + 0x28]
jne 0x14007c955
mov rcx, qword [rdi + 0x20]
call qword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_SetEvent]
jmp 0x14007c976
mov eax, dword [rdi + 0x28]
cmp eax, 0x32
jle 0x14007c976
mov r8d, 0x6a
lea rdx, str.CDataAccessProtector::FinishAccess
lea rcx, str._s__d_calling_FinishAccess_isnt_matched_RequestAccess_or_directly_return_in_EnumAudioDeviceStart_loop
call fcn.140075db0
mov edx, r14d
cmp esi, ebx
sete dl
mov ecx, dword [rbp - 0x80]
cmp ecx, 2
jne 0x14007c9a1
mov eax, dword [rbp - 0x70]
add eax, 0xfffffff6
cmp eax, 1
ja 0x14007c9a1
mov r8d, 1
mov dword [rsp + 0x58], r8d
mov ecx, r14d
jmp 0x14007c9bd
mov r8d, r14d
mov dword [rsp + 0x58], r14d
lea eax, [rcx - 8]
test eax, 0xfffffffd
je 0x14007c9b8
mov ecx, r14d
jmp 0x14007c9bd
mov ecx, 1
mov dword [rsp + 0x64], ecx
cmp dword [0x1401b2668], 0
je 0x14007ca1a
mov rax, qword [0x1401ab9a8]
test byte [rax + 0x1c], 1
jne 0x14007c9e0
cmp dword [0x1401b266c], 0
je 0x14007ca1a
mov dword [rsp + 0x48], ecx
mov dword [rsp + 0x40], r8d
mov dword [rsp + 0x38], edx
mov dword [rsp + 0x30], r12d
mov eax, dword [rsp + 0x50]
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], esi
mov r9d, r15d
mov r8d, 0x18b
lea rdx, str.CJackInfoRegWriter::UpdateJackInfoToReg
lea rcx, str._s__d_JackIdx_d_Wid_d_SecCodec_d_UsbCodec_d_bUAJ_d_bUAJHeadset_d_bUAJDedicatedMicOrLinein_d
call fcn.140075db0
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 0x10], xmm0
movups xmmword [rbp + 0x20], xmm0
movups xmmword [rbp + 0x30], xmm0
movups xmmword [rbp + 0x40], xmm0
movups xmmword [rbp + 0x50], xmm0
movups xmmword [rbp + 0x60], xmm0
movups xmmword [rbp + 0x70], xmm0
movups xmmword [rbp + 0x80], xmm0
mov qword [rbp + 0x90], rax
lea rcx, [rbp + 0x10]
call fcn.1400a4be0
xorps xmm0, xmm0
movdqa xmmword [rbp + 0x30], xmm0
xorps xmm1, xmm1
movdqa xmmword [rbp + 0x40], xmm1
mov qword [rbp + 0x50], r14
mov dword [rbp + 0x58], 0xa
movdqa xmmword [rbp + 0x60], xmm0
movdqa xmmword [rbp + 0x70], xmm1
mov qword [rbp + 0x80], r14
mov dword [rbp + 0x88], 0xa
mov r13, 0xffffffffffffffff
mov dword [rbp + 0x90], r13d
mov dword [rbp + 0x2c], r14d
mov dword [rbp + 0x28], r15d
lea rcx, [rbp + 0x10]
call fcn.14007ed90
lea rcx, [rbp + 0x10]
call fcn.14007f650
test eax, eax
jne 0x14007cacd
mov r8d, 0x2eb
lea rdx, str.CJackReteskInfo::SetCurrSelPinIndex
lea rcx, str._s__d_RETURN_ON_FALSE
call fcn.140075db0
call fcn.14000cd60
mov rcx, rax
test rax, rax
je 0x14007d5a8
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
call qword [case.0x14005eeb3.0]
lea rbx, [rax + 0x18]
mov qword [rbp - 0x68], rbx
call fcn.14000cd60
mov rcx, rax
test rax, rax
je 0x14007d5b3
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
call qword [case.0x14005eeb3.0]
lea rdi, [rax + 0x18]
mov qword [rbp - 0x58], rdi
lea rdx, [rbx - 0x18]
mov r15, qword [rdx]
cmp dword [rdx + 8], 0
je 0x14007cb7c
cmp dword [rdx + 0x10], 0
jge 0x14007cb40
cmp dword [rbx - 0xc], 0
jl 0x14007d5be
mov dword [rbx - 0x10], r14d
mov word [rbx], r14w
jmp 0x14007cb7c
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14007cb60
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x14005eeb3.0]
mov rax, qword [r15]
mov rcx, r15
mov rax, qword [rax + 0x18]
call qword [case.0x14005eeb3.0]
lea rbx, [rax + 0x18]
mov qword [rbp - 0x68], rbx
mov rdi, qword [rbp - 0x58]
lea rdx, [rdi - 0x18]
mov r15, qword [rdx]
cmp dword [rdx + 8], 0
je 0x14007cbdf
cmp dword [rdx + 0x10], 0
jge 0x14007cba3
cmp dword [rdi - 0xc], 0
jl 0x14007d5be
mov dword [rdi - 0x10], r14d
mov word [rdi], r14w
jmp 0x14007cbdf
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14007cbc3
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x14005eeb3.0]
mov rax, qword [r15]
mov rcx, r15
mov rax, qword [rax + 0x18]
call qword [case.0x14005eeb3.0]
lea rdi, [rax + 0x18]
mov qword [rbp - 0x58], rdi
mov rbx, qword [rbp - 0x68]
mov r15d, dword [rbp + 0x90]
mov dword [rsp + 0x78], r15d
mov r12d, r14d
mov rcx, qword [rbp + 0x60]
test rcx, rcx
je 0x14007cd8d
lea rdx, [0x14015be40]
nop dword [rax]
nop word [rax + rax]
mov edi, dword [rcx + 0x10]
mov rcx, qword [rcx]
mov qword [rbp - 0x78], rcx
mov ecx, edi
shr ecx, 8
movzx r15d, dil
shl r15w, 8
movzx eax, cl
or r15w, ax
mov r13d, edi
shr r13d, 0x10
mov dword [rbp - 0x60], r13d
mov eax, dword [rbx - 0x10]
test byte [rsp + 0x70], 8
je 0x14007cce5
lea rbx, [0x14011c160]
test eax, eax
cmovne rbx, rdx
movzx r9d, r15w
mov r8, rbx
lea rdx, str._s_04x
lea rcx, [rbp - 0x68]
call fcn.14007d8b0
movzx r9d, r13w
mov r8, rbx
lea rdx, str._s_d
lea rcx, [rbp - 0x58]
call fcn.14007d8b0
call fcn.140014310
test dword [rax + 0x348], 0x4000000
je 0x14007ccdf
cmp dil, 2
jne 0x14007ccdf
and edi, 0xff00
lea eax, [rdi - 0xa00]
test eax, 0xfffffcff
jne 0x14007ccdf
cmp edi, 0xd00
je 0x14007ccdf
mov r15d, r12d
mov dword [rsp + 0x78], r12d
mov r9d, r12d
mov r8d, 0x1b8
lea rdx, str.CJackInfoRegWriter::UpdateJackInfoToReg
lea rcx, str._s__d_NoWavesUINeedAutoDetectHeadset_dwJackRetaskListCurrSelectIndex_d
call fcn.140075db0
mov rbx, qword [rbp - 0x68]
jmp 0x14007cd37
mov rbx, qword [rbp - 0x68]
jmp 0x14007cd32
movzx r13d, cl
movzx edi, dil
mov eax, dword [rbp - 0x70]
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x28], r13d
mov eax, dword [rbp - 0x80]
mov dword [rsp + 0x20], eax
mov r9d, edi
mov r8d, 0x1bd
lea rdx, str.CJackInfoRegWriter::UpdateJackInfoToReg
lea rcx, str._s__d_RtskOptionData.nDeviceType_d_dwDevType_d_RtskOptionData.nSequence_d_dwSeq_d
call fcn.140075db0
mov eax, dword [rbp - 0x80]
cmp edi, eax
je 0x14007cd2c
test eax, eax
jne 0x14007cd32
cmp edi, 1
jne 0x14007cd32
cmp r13d, dword [rbp - 0x70]
je 0x14007cd50
mov r15d, dword [rsp + 0x78]
inc r12d
mov rcx, qword [rbp - 0x78]
test rcx, rcx
lea rdx, [0x14015be40]
jne 0x14007cc10
jmp 0x14007cd82
movzx r8d, r15w
lea rdx, str._04x
lea rcx, [rbp - 0x68]
call fcn.14007d8b0
movzx r8d, word [rbp - 0x60]
lea rdx, [0x140156314]
lea rcx, [rbp - 0x58]
call fcn.14007d8b0
mov rbx, qword [rbp - 0x68]
mov r15d, dword [rsp + 0x78]
mov r13, 0xffffffffffffffff
mov rdi, qword [rbp - 0x58]
mov r12, qword [rbp - 0x50]
test rbx, rbx
je 0x14007cdd4
mov rax, r13
nop dword [rax]
lea rax, [rax + 1]
cmp word [rbx + rax*2], 0
jne 0x14007cda0
lea eax, [rax*2 + 2]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rbx
mov r9d, 1
xor r8d, r8d
lea rdx, str.JackListTypeSequence
mov rcx, r12
call qword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegSetValueExW]
test rdi, rdi
je 0x14007ce14
mov rax, r13
nop dword [rax]
lea rax, [rax + 1]
cmp word [rdi + rax*2], 0
jne 0x14007cde0
lea eax, [rax*2 + 2]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rdi
mov r9d, 1
xor r8d, r8d
lea rdx, str.JackListName
mov rcx, r12
call qword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegSetValueExW]
mov dword [rbp - 0x60], r15d
mov dword [rsp + 0x28], 4
lea rax, [rbp - 0x60]
mov qword [rsp + 0x20], rax
mov r9d, 4
xor r8d, r8d
lea rdx, str.JackListCurrSelectIndex
mov rcx, r12
call qword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegSetValueExW]
call fcn.14000cd60
mov rcx, rax
test rax, rax
je 0x14007d5c9
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
call qword [case.0x14005eeb3.0]
add rax, 0x18
mov qword [rsp + 0x78], rax
lea rbx, [0x14011c160]
mov rdx, rbx
lea rcx, [rsp + 0x78]
call fcn.14000c4c0
test al, al
jne 0x14007ce9f
mov rax, r13
inc rax
cmp word [rbx + rax*2], 0
jne 0x14007ce84
mov r8d, eax
mov rdx, rbx
lea rcx, [rsp + 0x78]
call fcn.14000c750
nop
call fcn.14000cd60
mov rcx, rax
test rax, rax
je 0x14007d592
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
call qword [case.0x14005eeb3.0]
add rax, 0x18
mov qword [rbp - 0x78], rax
mov rdx, rbx
lea rcx, [rbp - 0x78]
call fcn.14000c4c0
test al, al
jne 0x14007cefa
mov rax, r13
nop dword [rax + rax]
inc rax
cmp word [rbx + rax*2], 0
jne 0x14007cee0
mov r8d, eax
mov rdx, rbx
lea rcx, [rbp - 0x78]
call fcn.14000c750
nop
call fcn.140014660
mov rcx, rax
call fcn.1400aa410
call fcn.140014660
cmp dword [rax + 0x140], 0
jne 0x14007cf4d
cmp dword [0x1401b2668], 0
je 0x14007cf4d
mov rax, qword [0x1401ab9a8]
test byte [rax + 0x1c], 1
jne 0x14007cf34
cmp dword [0x1401b266c], 0
je 0x14007cf4d
mov r8d, 0x49
lea rdx, str.CMMPlatform::AudioDevList_GetHeadPosition
lea rcx, str._s__d_please_call_AudioDevList_AddRef_before_AudioDevList_GetHeadPosition
call fcn.140075db0
call fcn.140014660
mov rbx, qword [rax + 0xe0]
test rbx, rbx
je 0x14007d27d
mov edi, dword [rsp + 0x5c]
mov r15d, dword [rsp + 0x74]
nop dword [rax + rax]
call fcn.140014660
call fcn.140014660
mov rcx, qword [rbx + 0x10]
mov rbx, qword [rbx]
test rcx, rcx
je 0x14007d073
cmp esi, dword [rsp + 0x60]
jne 0x14007d031
cmp dword [rsp + 0x58], 0
jne 0x14007cff5
cmp dword [rsp + 0x64], 0
je 0x14007d031
mov eax, dword [rsp + 0x50]
cmp eax, dword [rcx + 0x190]
jne 0x14007d073
cmp r15d, dword [rcx + 0x188]
jne 0x14007d073
mov edx, r14d
mov r8d, dword [rcx + 0x2b0]
test r8d, r8d
je 0x14007d073
lea rax, [rcx + 0x2b4]
nop dword [rax]
cmp dword [rax], edi
je 0x14007d211
inc edx
add rax, 4
cmp edx, r8d
jb 0x14007cfe0
jmp 0x14007d073
mov eax, dword [rsp + 0x50]
cmp eax, dword [rcx + 0x190]
jne 0x14007d073
cmp r15d, dword [rcx + 0x188]
jne 0x14007d073
mov edx, r14d
mov r8d, dword [rcx + 0x2b0]
test r8d, r8d
je 0x14007d073
lea rax, [rcx + 0x2b4]
cmp dword [rax], esi
je 0x14007d081
inc edx
add rax, 4
cmp edx, r8d
jb 0x14007d020
jmp 0x14007d073
mov eax, dword [rsp + 0x50]
cmp eax, dword [rcx + 0x190]
jne 0x14007d073
cmp r15d, dword [rcx + 0x188]
jne 0x14007d073
mov edx, r14d
mov r8d, dword [rcx + 0x2b0]
test r8d, r8d
je 0x14007d073
lea rax, [rcx + 0x2b4]
nop dword [rax]
cmp dword [rax], esi
je 0x14007d211
inc edx
add rax, 4
cmp edx, r8d
jb 0x14007d060
test rbx, rbx
je 0x14007d27d
jmp 0x14007cf70
mov rdx, qword [rcx + 0x10]
lea rcx, [rdx - 0x18]
mov rbx, qword [rsp + 0x78]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x14007d0ed
cmp dword [rbx + 0x10], 0
jl 0x14007d0df
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x14007d0df
call fcn.14000ec00
mov rdi, rax
mov ecx, r13d
lock xadd dword [rbx + 0x10], ecx
sub ecx, 1
jg 0x14007d0d0
lfence
mov rcx, qword [rbx]
mov r8, qword [rcx]
mov rdx, rbx
mov rax, qword [r8 + 8]
call qword [case.0x14005eeb3.0]
lea rax, [rdi + 0x18]
mov qword [rsp + 0x78], rax
mov r12, qword [rbp - 0x50]
jmp 0x14007d0ed
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x78]
call fcn.14000c750
call fcn.140014660
cmp dword [rax + 0x140], 0
jne 0x14007d133
cmp dword [0x1401b2668], 0
je 0x14007d133
mov rax, qword [0x1401ab9a8]
test byte [rax + 0x1c], 1
jne 0x14007d11a
cmp dword [0x1401b266c], 0
je 0x14007d133
mov r8d, 0x49
lea rdx, str.CMMPlatform::AudioDevList_GetHeadPosition
lea rcx, str._s__d_please_call_AudioDevList_AddRef_before_AudioDevList_GetHeadPosition
call fcn.140075db0
call fcn.140014660
mov rbx, qword [rax + 0xe0]
test rbx, rbx
je 0x14007d27d
mov edi, dword [rsp + 0x54]
nop dword [rax]
call fcn.140014660
call fcn.140014660
mov rdx, qword [rbx + 0x10]
mov rbx, qword [rbx]
test rdx, rdx
je 0x14007d1a0
mov eax, dword [rsp + 0x50]
cmp eax, dword [rdx + 0x190]
jne 0x14007d1a0
cmp r15d, dword [rdx + 0x188]
jne 0x14007d1a0
mov ecx, r14d
mov r8d, dword [rdx + 0x2b0]
test r8d, r8d
je 0x14007d1a0
lea rax, [rdx + 0x2b4]
cmp dword [rax], edi
je 0x14007d1ab
inc ecx
add rax, 4
cmp ecx, r8d
jb 0x14007d191
test rbx, rbx
je 0x14007d27d
jmp 0x14007d150
mov rdx, qword [rdx + 0x10]
lea rcx, [rdx - 0x18]
mov rbx, qword [rbp - 0x78]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x14007d27d
cmp dword [rbx + 0x10], 0
jl 0x14007d20b
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x14007d20b
call fcn.14000ec00
mov rdi, rax
mov ecx, r13d
lock xadd dword [rbx + 0x10], ecx
sub ecx, 1
jg 0x14007d1fd
lfence
mov rcx, qword [rbx]
mov r8, qword [rcx]
mov rdx, rbx
mov rax, qword [r8 + 8]
call qword [case.0x14005eeb3.0]
lea rax, [rdi + 0x18]
mov qword [rbp - 0x78], rax
mov r12, qword [rbp - 0x50]
jmp 0x14007d27d
lea rcx, [rbp - 0x78]
jmp 0x14007d274
mov rbx, qword [rsp + 0x78]
mov rdx, qword [rcx + 0x10]
add rbx, 0xffffffffffffffe8
lea rcx, [rdx - 0x18]
cmp rcx, rbx
je 0x14007d27d
cmp dword [rbx + 0x10], 0
jl 0x14007d26f
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x14007d26f
call fcn.14000ec00
mov ecx, r13d
lock xadd dword [rbx + 0x10], ecx
sub ecx, 1
mov rdi, rax
jg 0x14007d260
lfence
mov rcx, qword [rbx]
mov r8, qword [rcx]
mov rdx, rbx
mov rax, qword [r8 + 8]
call qword [case.0x14005eeb3.0]
lea rax, [rdi + 0x18]
mov r12, qword [rbp - 0x50]
mov qword [rsp + 0x78], rax
jmp 0x14007d27d
lea rcx, [rsp + 0x78]
mov r8d, dword [rdx - 0x10]
call fcn.14000c750
call fcn.140014660
mov ecx, dword [rax + 0x140]
sub ecx, 1
mov dword [rax + 0x140], ecx
jne 0x14007d2a2
mov rcx, qword [rax + 0x150]
call qword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_SetEvent]
jmp 0x14007d2c0
cmp ecx, 0x32
jle 0x14007d2c0
mov r8d, 0x8b
lea rdx, str.CMMPlatform::AudioDevList_Release
lea rcx, str._s__d_calling_AudioDevList_Release_isnt_matched_AudioDevList_AddRef_or_directly_return_in_EnumAudioDeviceStart_loop
call fcn.140075db0
mov rax, qword [rsp + 0x78]
mov ebx, dword [rsp + 0x68]
cmp dword [rax - 0x10], 0
je 0x14007d397
test ebx, ebx
jne 0x14007d2ea
cmp dword [rsp + 0x58], ebx
je 0x14007d2ea
mov rax, qword [rbp - 0x78]
cmp dword [rax - 0x10], ebx
je 0x14007d397
mov edi, 1
mov rcx, qword [rsp + 0x78]
mov rax, r13
nop word [rax + rax]
lea rax, [rax + 1]
cmp word [rcx + rax*2], 0
jne 0x14007d300
lea eax, [rax*2 + 2]
mov dword [rsp + 0x28], eax
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x20], rax
mov r9d, edi
xor r8d, r8d
lea rdx, str.EndpointId
mov rcx, r12
call qword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegSetValueExW]
mov rax, qword [rbp - 0x78]
cmp dword [rax - 0x10], 0
jne 0x14007d352
lea rdx, str.EndpointIdForHiddenJack
mov rcx, r12
call qword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegDeleteValueW]
jmp 0x14007d39b
mov rcx, qword [rbp - 0x78]
mov rax, r13
nop dword [rax]
lea rax, [rax + 1]
cmp word [rcx + rax*2], 0
jne 0x14007d360
lea eax, [rax*2 + 2]
mov dword [rsp + 0x28], eax
mov rax, qword [rbp - 0x78]
mov qword [rsp + 0x20], rax
mov r9d, edi
xor r8d, r8d
lea rdx, str.EndpointIdForHiddenJack
mov rcx, r12
call qword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegSetValueExW]
jmp 0x14007d39b
mov edi, dword [rsp + 0x6c]
test r12, r12
je 0x14007d3ad
mov rcx, r12
call qword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegCloseKey]
mov qword [rbp - 0x50], r14
mov dword [rbp - 0x48], r14d
cmp dword [0x1401b2668], 0
je 0x14007d403
mov rax, qword [0x1401ab9a8]
test byte [rax + 0x1c], 1
jne 0x14007d3d0
cmp dword [0x1401b266c], 0
je 0x14007d403
mov rax, qword [rbp - 0x78]
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], ebx
mov r9d, edi
mov r8d, 0x226
lea rdx, str.CJackInfoRegWriter::UpdateJackInfoToReg
lea rcx, str._s__d_FoundEp_d_AutoDetectHeadset_d_EpId_s_HeadsetMicEpId_s
call fcn.140075db0
mov r14d, edi
mov rdx, qword [rbp - 0x78]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14007d42f
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x14005eeb3.0]
nop
mov rdx, qword [rsp + 0x78]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14007d459
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x14005eeb3.0]
nop
mov rdx, qword [rbp - 0x58]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14007d482
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x14005eeb3.0]
nop
mov rdx, qword [rbp - 0x68]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14007d4ab
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x14005eeb3.0]
nop
lea rcx, [rbp + 0x60]
call fcn.140015280
lea rcx, [rbp + 0x30]
call fcn.140021020
nop
mov eax, dword [0x1401b26ac]
cmp eax, 1
jne 0x14007d4d9
call fcn.1400a5c30
call fcn.1400a7b60
mov eax, dword [0x1401b26ac]
dec eax
mov dword [0x1401b26ac], eax
mov rdx, qword [rbp + 0x10]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14007d50a
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x14005eeb3.0]
nop
mov rbx, qword [rbp]
lea rdx, [rbx - 0x18]
lock xadd dword [rdx + 0x10], r13d
sub r13d, 1
jg 0x14007d532
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x14005eeb3.0]
nop
mov rcx, qword [rbp - 0x50]
test rcx, rcx
je 0x14007d541
call qword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegCloseKey]
mov eax, r14d
jmp 0x14007d568
mov dword [rsp + 0x20], ebx
mov r9d, r14d
mov r8d, reloc.OLEAUT32.dll_LPSAFEARRAY_UserMarshal
lea rdx, str.CJackInfoRegWriter::UpdateJackInfoToReg
lea rcx, str._s__d_nPinIndex_d_nUIJackPinIndex_d
call fcn.140075db0
xor eax, eax
mov rcx, qword [rbp + 0xa0]
xor rcx, rsp
call fcn.1400f4410
mov rbx, qword [rsp + 0x200]
add rsp, 0x1b0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov ecx, 0x80004005
call fcn.14000ce90
nop
mov ecx, 0x80004005
call fcn.14000ce90
nop
mov ecx, 0x80004005
call fcn.14000ce90
nop
mov ecx, 0x80004005
call fcn.14000ce90
nop
mov ecx, 0x80070057
call fcn.14000ce90
int3
mov ecx, 0x80004005
call fcn.14000ce90
int3