Function at 0x140074220
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 [0x140178010]
xor rax, rsp
mov qword [rbp + 0xa0], rax
mov dword [rsp + 0x68], edx
mov r14d, ecx
test edx, edx
je 0x140074268
call fcn.1400752f0
test eax, eax
je 0x140075276
call fcn.14002fcd0
mov rdi, rax
test rax, rax
jne 0x140074293
mov r8d, BSTR_UserMarshal
lea rdx, str.CJackInfoRegWriter::UpdateJackInfoToReg
lea rcx, str._s__d_RETURN_FALSE_ON_FALSE
call fcn.14006dd20
jmp 0x140075276
call fcn.1400221c0
mov rsi, rax
test rax, rax
jne 0x1400742a8
mov r8d, reloc.OLEAUT32.dll_BSTR_UserFree
jmp 0x14007427b
mov edx, r14d
mov rcx, rsi
call fcn.140075a50
mov ebx, eax
cmp eax, 0x21
jae 0x140075256
lea r12, [rbx + 0x14]
lea r12, [rbx + r12*2]
lea r12, [rsi + r12*4]
test r12, r12
je 0x140075256
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.140004e00
mov rcx, rax
test rax, rax
je 0x1400752ad
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
call qword [case.0x140050923.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.140006d30
mov r9d, 0x2001f
mov rbx, qword [rbp]
mov r8, rbx
mov rdx, 0xffffffff80000002
lea rcx, [rbp - 0x50]
call fcn.14002b400
lea r13, [r14 - 1]
test eax, eax
je 0x14007439a
mov dword [rsp + 0x28], 0x2001f
mov r8, rbx
mov rdx, 0xffffffff80000002
lea rcx, [rbp - 0x50]
call fcn.1400757e0
test eax, eax
je 0x14007439a
mov rdx, rbx
lea rcx, str.CJackMgr::UpdateUIJackInfoToReg_:_Failed_to_create__s_n
call fcn.14006dd20
mov r8d, 0x139
lea rdx, str.CJackInfoRegWriter::UpdateJackInfoToReg
lea rcx, str._s__d_RETURN_FALSE_ON_FALSE
call fcn.14006dd20
jmp 0x14007521e
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 0x1400743f1
mov esi, r14d
mov eax, SafeArrayDestroy
cmp dword [rbp - 0x30], 4
cmovne esi, eax
mov ecx, r15d
call fcn.140073c60
lea rcx, [rdi + 0x10]
call fcn.1400508c0
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 0x14007448a
test byte [rsp + 0x54], sil
je 0x14007448a
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 0x140074578
lfence
mov ecx, r12d
call fcn.14009ab80
test eax, eax
jne 0x140074574
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 0x140074588
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 0x140074611
imul rcx, r15, 0xb0
cmp dword [rcx + rdi + 0x1ac], 0
je 0x1400745c6
mov eax, dword [rcx + rdi + 0x1a4]
mov dword [rbp - 0x80], eax
mov eax, dword [rcx + rdi + 0x1a8]
jmp 0x1400745e0
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.140063590
mov r10, rax
test rax, rax
je 0x140074611
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.0x140050923.0]
test r12d, r12d
js 0x140074632
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 0x14007464c
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 0x140074665
mov rcx, qword [rdi + 0x20]
call qword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_SetEvent]
jmp 0x140074686
mov eax, dword [rdi + 0x28]
cmp eax, 0x32
jle 0x140074686
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.14006dd20
mov edx, r14d
cmp esi, ebx
sete dl
mov ecx, dword [rbp - 0x80]
cmp ecx, 2
jne 0x1400746b1
mov eax, dword [rbp - 0x70]
add eax, 0xfffffff6
cmp eax, 1
ja 0x1400746b1
mov r8d, 1
mov dword [rsp + 0x58], r8d
mov ecx, r14d
jmp 0x1400746cd
mov r8d, r14d
mov dword [rsp + 0x58], r14d
lea eax, [rcx - 8]
test eax, 0xfffffffd
je 0x1400746c8
mov ecx, r14d
jmp 0x1400746cd
mov ecx, 1
mov dword [rsp + 0x64], ecx
cmp dword [0x140180270], 0
je 0x14007472a
cmp dword [0x140180274], 0
jne 0x1400746f0
mov rax, qword [0x140179638]
test byte [rax + 0x1c], 1
je 0x14007472a
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.14006dd20
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.14009c120
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.140076aa0
lea rcx, [rbp + 0x10]
call fcn.140077360
test eax, eax
jne 0x1400747dd
mov r8d, 0x2eb
lea rdx, str.CJackReteskInfo::SetCurrSelPinIndex
lea rcx, str._s__d_RETURN_ON_FALSE
call fcn.14006dd20
call fcn.140004e00
mov rcx, rax
test rax, rax
je 0x1400752b8
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
call qword [case.0x140050923.0]
lea rbx, [rax + 0x18]
mov qword [rbp - 0x68], rbx
call fcn.140004e00
mov rcx, rax
test rax, rax
je 0x1400752c3
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
call qword [case.0x140050923.0]
lea rdi, [rax + 0x18]
mov qword [rbp - 0x58], rdi
lea rdx, [rbx - 0x18]
mov r15, qword [rdx]
cmp dword [rdx + 8], 0
je 0x14007488c
cmp dword [rdx + 0x10], 0
jge 0x140074850
cmp dword [rbx - 0xc], 0
jl 0x1400752ce
mov dword [rbx - 0x10], r14d
mov word [rbx], r14w
jmp 0x14007488c
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140074870
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x140050923.0]
mov rax, qword [r15]
mov rcx, r15
mov rax, qword [rax + 0x18]
call qword [case.0x140050923.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 0x1400748ef
cmp dword [rdx + 0x10], 0
jge 0x1400748b3
cmp dword [rdi - 0xc], 0
jl 0x1400752ce
mov dword [rdi - 0x10], r14d
mov word [rdi], r14w
jmp 0x1400748ef
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400748d3
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x140050923.0]
mov rax, qword [r15]
mov rcx, r15
mov rax, qword [rax + 0x18]
call qword [case.0x140050923.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 0x140074a9d
lea rdx, [0x140131d90]
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 0x1400749f5
lea rbx, [0x140103060]
test eax, eax
cmovne rbx, rdx
movzx r9d, r15w
mov r8, rbx
lea rdx, str._s_04x
lea rcx, [rbp - 0x68]
call fcn.1400755c0
movzx r9d, r13w
mov r8, rbx
lea rdx, str._s_d
lea rcx, [rbp - 0x58]
call fcn.1400755c0
call fcn.14000bb10
test dword [rax + 0x348], 0x4000000
je 0x1400749ef
cmp dil, 2
jne 0x1400749ef
and edi, 0xff00
lea eax, [rdi - 0xa00]
test eax, 0xfffffcff
jne 0x1400749ef
cmp edi, 0xd00
je 0x1400749ef
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.14006dd20
mov rbx, qword [rbp - 0x68]
jmp 0x140074a47
mov rbx, qword [rbp - 0x68]
jmp 0x140074a42
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.14006dd20
mov eax, dword [rbp - 0x80]
cmp edi, eax
je 0x140074a3c
test eax, eax
jne 0x140074a42
cmp edi, 1
jne 0x140074a42
cmp r13d, dword [rbp - 0x70]
je 0x140074a60
mov r15d, dword [rsp + 0x78]
inc r12d
mov rcx, qword [rbp - 0x78]
test rcx, rcx
lea rdx, [0x140131d90]
jne 0x140074920
jmp 0x140074a92
movzx r8d, r15w
lea rdx, str._04x
lea rcx, [rbp - 0x68]
call fcn.1400755c0
movzx r8d, word [rbp - 0x60]
lea rdx, [0x1401223d4]
lea rcx, [rbp - 0x58]
call fcn.1400755c0
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 0x140074ae4
mov rax, r13
nop dword [rax]
lea rax, [rax + 1]
cmp word [rbx + rax*2], 0
jne 0x140074ab0
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 0x140074b24
mov rax, r13
nop dword [rax]
lea rax, [rax + 1]
cmp word [rdi + rax*2], 0
jne 0x140074af0
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.140004e00
mov rcx, rax
test rax, rax
je 0x1400752d9
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
call qword [case.0x140050923.0]
add rax, 0x18
mov qword [rsp + 0x78], rax
lea rbx, [0x140103060]
mov rdx, rbx
lea rcx, [rsp + 0x78]
call fcn.140004560
test al, al
jne 0x140074baf
mov rax, r13
inc rax
cmp word [rbx + rax*2], 0
jne 0x140074b94
mov r8d, eax
mov rdx, rbx
lea rcx, [rsp + 0x78]
call fcn.1400047f0
nop
call fcn.140004e00
mov rcx, rax
test rax, rax
je 0x1400752a2
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
call qword [case.0x140050923.0]
add rax, 0x18
mov qword [rbp - 0x78], rax
mov rdx, rbx
lea rcx, [rbp - 0x78]
call fcn.140004560
test al, al
jne 0x140074c0a
mov rax, r13
nop dword [rax + rax]
inc rax
cmp word [rbx + rax*2], 0
jne 0x140074bf0
mov r8d, eax
mov rdx, rbx
lea rcx, [rbp - 0x78]
call fcn.1400047f0
nop
call fcn.14000bd10
mov rcx, rax
call fcn.1400a1a60
call fcn.14000bd10
cmp dword [rax + 0x140], 0
jne 0x140074c5d
cmp dword [0x140180270], 0
je 0x140074c5d
cmp dword [0x140180274], 0
jne 0x140074c44
mov rax, qword [0x140179638]
test byte [rax + 0x1c], 1
je 0x140074c5d
mov r8d, 0x3e
lea rdx, str.CMMPlatform::AudioDevList_GetHeadPosition
lea rcx, str._s__d_please_call_AudioDevList_AddRef_before_AudioDevList_GetHeadPosition
call fcn.14006dd20
call fcn.14000bd10
mov rbx, qword [rax + 0xe0]
test rbx, rbx
je 0x140074f8d
mov edi, dword [rsp + 0x5c]
mov r15d, dword [rsp + 0x74]
nop dword [rax + rax]
call fcn.14000bd10
call fcn.14000bd10
mov rcx, qword [rbx + 0x10]
mov rbx, qword [rbx]
test rcx, rcx
je 0x140074d83
cmp esi, dword [rsp + 0x60]
jne 0x140074d41
cmp dword [rsp + 0x58], 0
jne 0x140074d05
cmp dword [rsp + 0x64], 0
je 0x140074d41
mov eax, dword [rsp + 0x50]
cmp eax, dword [rcx + 0x188]
jne 0x140074d83
cmp r15d, dword [rcx + 0x180]
jne 0x140074d83
mov edx, r14d
mov r8d, dword [rcx + 0x228]
test r8d, r8d
je 0x140074d83
lea rax, [rcx + 0x22c]
nop dword [rax]
cmp dword [rax], edi
je 0x140074f21
inc edx
add rax, 4
cmp edx, r8d
jb 0x140074cf0
jmp 0x140074d83
mov eax, dword [rsp + 0x50]
cmp eax, dword [rcx + 0x188]
jne 0x140074d83
cmp r15d, dword [rcx + 0x180]
jne 0x140074d83
mov edx, r14d
mov r8d, dword [rcx + 0x228]
test r8d, r8d
je 0x140074d83
lea rax, [rcx + 0x22c]
cmp dword [rax], esi
je 0x140074d91
inc edx
add rax, 4
cmp edx, r8d
jb 0x140074d30
jmp 0x140074d83
mov eax, dword [rsp + 0x50]
cmp eax, dword [rcx + 0x188]
jne 0x140074d83
cmp r15d, dword [rcx + 0x180]
jne 0x140074d83
mov edx, r14d
mov r8d, dword [rcx + 0x228]
test r8d, r8d
je 0x140074d83
lea rax, [rcx + 0x22c]
nop dword [rax]
cmp dword [rax], esi
je 0x140074f21
inc edx
add rax, 4
cmp edx, r8d
jb 0x140074d70
test rbx, rbx
je 0x140074f8d
jmp 0x140074c80
mov rdx, qword [rcx + 0x10]
lea rcx, [rdx - 0x18]
mov rbx, qword [rsp + 0x78]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x140074dfd
cmp dword [rbx + 0x10], 0
jl 0x140074def
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x140074def
call fcn.140006ca0
mov rdi, rax
mov ecx, r13d
lock xadd dword [rbx + 0x10], ecx
sub ecx, 1
jg 0x140074de0
lfence
mov rcx, qword [rbx]
mov r8, qword [rcx]
mov rdx, rbx
mov rax, qword [r8 + 8]
call qword [case.0x140050923.0]
lea rax, [rdi + 0x18]
mov qword [rsp + 0x78], rax
mov r12, qword [rbp - 0x50]
jmp 0x140074dfd
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x78]
call fcn.1400047f0
call fcn.14000bd10
cmp dword [rax + 0x140], 0
jne 0x140074e43
cmp dword [0x140180270], 0
je 0x140074e43
cmp dword [0x140180274], 0
jne 0x140074e2a
mov rax, qword [0x140179638]
test byte [rax + 0x1c], 1
je 0x140074e43
mov r8d, 0x3e
lea rdx, str.CMMPlatform::AudioDevList_GetHeadPosition
lea rcx, str._s__d_please_call_AudioDevList_AddRef_before_AudioDevList_GetHeadPosition
call fcn.14006dd20
call fcn.14000bd10
mov rbx, qword [rax + 0xe0]
test rbx, rbx
je 0x140074f8d
mov edi, dword [rsp + 0x54]
nop dword [rax]
call fcn.14000bd10
call fcn.14000bd10
mov rdx, qword [rbx + 0x10]
mov rbx, qword [rbx]
test rdx, rdx
je 0x140074eb0
mov eax, dword [rsp + 0x50]
cmp eax, dword [rdx + 0x188]
jne 0x140074eb0
cmp r15d, dword [rdx + 0x180]
jne 0x140074eb0
mov ecx, r14d
mov r8d, dword [rdx + 0x228]
test r8d, r8d
je 0x140074eb0
lea rax, [rdx + 0x22c]
cmp dword [rax], edi
je 0x140074ebb
inc ecx
add rax, 4
cmp ecx, r8d
jb 0x140074ea1
test rbx, rbx
je 0x140074f8d
jmp 0x140074e60
mov rdx, qword [rdx + 0x10]
lea rcx, [rdx - 0x18]
mov rbx, qword [rbp - 0x78]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x140074f8d
cmp dword [rbx + 0x10], 0
jl 0x140074f1b
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x140074f1b
call fcn.140006ca0
mov rdi, rax
mov ecx, r13d
lock xadd dword [rbx + 0x10], ecx
sub ecx, 1
jg 0x140074f0d
lfence
mov rcx, qword [rbx]
mov r8, qword [rcx]
mov rdx, rbx
mov rax, qword [r8 + 8]
call qword [case.0x140050923.0]
lea rax, [rdi + 0x18]
mov qword [rbp - 0x78], rax
mov r12, qword [rbp - 0x50]
jmp 0x140074f8d
lea rcx, [rbp - 0x78]
jmp 0x140074f84
mov rbx, qword [rsp + 0x78]
mov rdx, qword [rcx + 0x10]
add rbx, 0xffffffffffffffe8
lea rcx, [rdx - 0x18]
cmp rcx, rbx
je 0x140074f8d
cmp dword [rbx + 0x10], 0
jl 0x140074f7f
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x140074f7f
call fcn.140006ca0
mov ecx, r13d
lock xadd dword [rbx + 0x10], ecx
sub ecx, 1
mov rdi, rax
jg 0x140074f70
lfence
mov rcx, qword [rbx]
mov r8, qword [rcx]
mov rdx, rbx
mov rax, qword [r8 + 8]
call qword [case.0x140050923.0]
lea rax, [rdi + 0x18]
mov r12, qword [rbp - 0x50]
mov qword [rsp + 0x78], rax
jmp 0x140074f8d
lea rcx, [rsp + 0x78]
mov r8d, dword [rdx - 0x10]
call fcn.1400047f0
call fcn.14000bd10
mov ecx, dword [rax + 0x140]
sub ecx, 1
mov dword [rax + 0x140], ecx
jne 0x140074fb2
mov rcx, qword [rax + 0x150]
call qword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_SetEvent]
jmp 0x140074fd0
cmp ecx, 0x32
jle 0x140074fd0
mov r8d, 0x80
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.14006dd20
mov rax, qword [rsp + 0x78]
mov ebx, dword [rsp + 0x68]
cmp dword [rax - 0x10], 0
je 0x1400750a7
test ebx, ebx
jne 0x140074ffa
cmp dword [rsp + 0x58], ebx
je 0x140074ffa
mov rax, qword [rbp - 0x78]
cmp dword [rax - 0x10], ebx
je 0x1400750a7
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 0x140075010
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 0x140075062
lea rdx, str.EndpointIdForHiddenJack
mov rcx, r12
call qword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegDeleteValueW]
jmp 0x1400750ab
mov rcx, qword [rbp - 0x78]
mov rax, r13
nop dword [rax]
lea rax, [rax + 1]
cmp word [rcx + rax*2], 0
jne 0x140075070
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 0x1400750ab
mov edi, dword [rsp + 0x6c]
test r12, r12
je 0x1400750bd
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 [0x140180270], 0
je 0x140075113
cmp dword [0x140180274], 0
jne 0x1400750e0
mov rax, qword [0x140179638]
test byte [rax + 0x1c], 1
je 0x140075113
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.14006dd20
mov r14d, edi
mov rdx, qword [rbp - 0x78]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14007513f
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x140050923.0]
nop
mov rdx, qword [rsp + 0x78]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140075169
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x140050923.0]
nop
mov rdx, qword [rbp - 0x58]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140075192
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x140050923.0]
nop
mov rdx, qword [rbp - 0x68]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400751bb
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x140050923.0]
nop
lea rcx, [rbp + 0x60]
call fcn.14000c930
lea rcx, [rbp + 0x30]
call fcn.1400180a0
nop
mov eax, dword [0x1401802b8]
cmp eax, 1
jne 0x1400751e9
call fcn.14009d170
call fcn.14009f0a0
mov eax, dword [0x1401802b8]
dec eax
mov dword [0x1401802b8], eax
mov rdx, qword [rbp + 0x10]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14007521a
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x140050923.0]
nop
mov rbx, qword [rbp]
lea rdx, [rbx - 0x18]
lock xadd dword [rdx + 0x10], r13d
sub r13d, 1
jg 0x140075242
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x140050923.0]
nop
mov rcx, qword [rbp - 0x50]
test rcx, rcx
je 0x140075251
call qword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegCloseKey]
mov eax, r14d
jmp 0x140075278
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.14006dd20
xor eax, eax
mov rcx, qword [rbp + 0xa0]
xor rcx, rsp
call fcn.1400df340
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.140004f30
nop
mov ecx, 0x80004005
call fcn.140004f30
nop
mov ecx, 0x80004005
call fcn.140004f30
nop
mov ecx, 0x80004005
call fcn.140004f30
nop
mov ecx, 0x80070057
call fcn.140004f30
int3
mov ecx, 0x80004005
call fcn.140004f30
int3