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

Disassembly:
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1f]
sub rsp, 0xc8
mov qword [rbp + 7], 0xfffffffffffffffe
movsxd rbx, edx
mov r13, rcx
cmp ebx, 0x21
ja 0x1400899cb
mov rdi, rbx
lea rax, [rbx + rbx*2]
cmp dword [rcx + rax*4 + 0xa8], 0
je 0x1400899e3
xor esi, esi
mov qword [rbp - 0x59], rsi
mov dword [rbp - 0x51], esi
mov qword [rbp - 0x49], rsi
call fcn.1400f9930
mov rcx, rax
test rax, rax
je 0x1400899f7
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x41], rax
mov r9d, ebx
lea r8, str.SoftwareRealtekAudioGUI_INFORMATIONJackInfomation
lea rdx, str._sJack_d
lea rcx, [rbp - 0x41]
call fcn.14000dfa0
mov r9d, 0x2001f
mov rbx, qword [rbp - 0x41]
mov r8, rbx
mov rdx, 0xffffffff80000002
lea rcx, [rbp - 0x59]
call fcn.140015610
or r12, 0xffffffffffffffff
test eax, eax
je 0x140089131
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x30], rsi
mov dword [rsp + 0x28], 0x2001f
mov dword [rsp + 0x20], esi
xor r9d, r9d
mov r8, rbx
mov rdx, 0xffffffff80000002
lea rcx, [rbp - 0x59]
call fcn.1400153d0
test eax, eax
je 0x140089131
lea r8, str.JackMgr.cpp
mov edx, 0x10f
lea rcx, str._VCpl__RETURN_ON_FALSE:_Line___d__File___s_n
call fcn.140055180
jmp 0x1400899a0
lea rax, [rdi + rdi*2]
lea r14, [rax*4]
movsxd rax, dword [r14 + r13 + 0xac]
mov dword [rbp - 0x69], eax
mov rsi, rax
imul r15, rax, 0xac
mov rax, qword [r13 + 0x260]
movzx edi, word [r15 + rax + 0xc8]
shr edi, 1
and edi, 1
mov dword [rbp - 0x35], 0
mov dword [rbp - 0x39], 4
lea rax, [rbp - 0x39]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x35]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 0x31]
xor r8d, r8d
lea rdx, str.JackStatus
mov rcx, qword [rbp - 0x59]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov ebx, eax
test eax, eax
jne 0x1400891b1
mov eax, SafeArrayDestroy
cmp dword [rbp - 0x31], 4
cmovne ebx, eax
mov dword [rbp - 0x29], edi
mov dword [rsp + 0x28], 4
lea rax, [rbp - 0x29]
mov qword [rsp + 0x20], rax
mov r9d, 4
xor r8d, r8d
lea rdx, str.JackStatus
mov rcx, qword [rbp - 0x59]
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov rax, qword [r13 + 0x260]
mov ecx, dword [rax + rsi*4 + 0x3c]
mov dword [rbp - 0x21], ecx
mov dword [rsp + 0x28], 4
lea rax, [rbp - 0x21]
mov qword [rsp + 0x20], rax
mov r9d, 4
xor r8d, r8d
lea rdx, str.JackStatusChangedWhenPowerDown
mov rsi, qword [rbp - 0x59]
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
cmp ebx, 2
jne 0x140089253
test edi, edi
je 0x140089253
mov dword [rbp - 0x19], 1
mov dword [rsp + 0x28], 4
lea rax, [rbp - 0x19]
mov qword [rsp + 0x20], rax
lea r9d, [rbx + 2]
xor r8d, r8d
lea rdx, str.JackStatusChangedWhenPowerDown
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov eax, dword [r14 + r13 + 0xb0]
mov dword [rbp - 0x11], eax
mov dword [rsp + 0x28], 4
lea rax, [rbp - 0x11]
mov qword [rsp + 0x20], rax
mov r9d, 4
xor r8d, r8d
lea rdx, str.JackIconTypeColor
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov rax, qword [r13 + 0x260]
mov ebx, dword [r15 + rax + 0x14c]
mov esi, dword [r15 + rax + 0x15c]
mov edi, dword [r15 + rax + 0x164]
mov ecx, esi
shl ecx, 8
add ecx, 0x100
and ecx, 0xf00
mov eax, edi
and eax, 0xf
shl eax, 0xc
or ecx, eax
or ecx, ebx
mov dword [rbp - 9], ecx
mov dword [rsp + 0x28], 4
lea rax, [rbp - 9]
mov qword [rsp + 0x20], rax
mov r9d, 4
xor r8d, r8d
lea rdx, str.JackWidgetId
mov rcx, qword [rbp - 0x59]
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
xor r10d, r10d
mov ecx, r10d
mov dword [rbp + 0x6f], ecx
mov eax, r10d
mov dword [rbp + 0x77], eax
mov rdx, qword [r13 + 0x260]
mov r11d, dword [rbp - 0x69]
cmp r11d, dword [rdx + 0x14]
jae 0x1400893a0
imul r8, r11, 0xac
add r8, rdx
lea rax, [r11 + 2]
imul rcx, rax, 0xac
cmp dword [rcx + rdx], r10d
je 0x140089344
mov ecx, dword [r8 + 0x150]
mov dword [rbp + 0x6f], ecx
mov eax, dword [r8 + 0x154]
jmp 0x14008935e
mov ecx, dword [r8 + 0xc4]
shr ecx, 8
and ecx, 0xf
mov dword [rbp + 0x6f], ecx
mov eax, dword [r8 + 0xbc]
and eax, 0xf
mov dword [rbp + 0x77], eax
mov r10, qword [rdx + 0x1658]
test r10, r10
je 0x14008939d
mov r10, qword [r10 + 0x538]
test r10, r10
je 0x14008939d
mov rax, qword [r10]
lea r9, [rbp + 0x77]
lea r8, [rbp + 0x6f]
mov edx, r11d
mov rcx, r10
call qword [rax + 0x140]
mov rdx, qword [r13 + 0x260]
mov ecx, dword [rbp + 0x6f]
mov eax, dword [rbp + 0x77]
xor r10d, r10d
test edi, edi
je 0x1400893bb
mov r13d, dword [rdx + 0x1648]
mov r14d, dword [rdx + 0x164c]
mov r15d, dword [rdx + 0x1650]
jmp 0x1400893d0
mov r13d, dword [rdx + 0x163c]
mov r14d, dword [rdx + 0x1640]
mov r15d, dword [rdx + 0x1644]
cmp ecx, 2
jne 0x1400893eb
add eax, 0xfffffff6
cmp eax, 1
ja 0x1400893eb
mov qword [rbp - 0x61], 1
mov qword [rbp - 1], r10
jmp 0x140089407
mov qword [rbp - 0x61], r10
lea eax, [rcx - 8]
test eax, 0xfffffffd
je 0x1400893ff
mov qword [rbp - 1], r10
jmp 0x140089407
mov qword [rbp - 1], 1
cmp ebx, r13d
jne 0x140089420
lea rdx, str.EndpointIdForHiddenJack
mov rcx, qword [rbp - 0x59]
call qword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
xor r10d, r10d
mov dword [rbp + 0x7f], r10d
mov rax, qword [rbp + 0x67]
mov rax, qword [rax + 0x98]
mov r9, qword [rax + 0x1bd8]
test r9, r9
je 0x1400895fc
mov rax, r9
mov r9, qword [r9]
mov rax, qword [rax + 0x10]
test rax, rax
je 0x140089436
cmp ebx, r13d
jne 0x1400894e7
cmp qword [rbp - 0x61], 0
jne 0x1400894a9
cmp qword [rbp - 1], 0
je 0x1400894e7
cmp esi, dword [rax + reloc.COMCTL32.dll_Ordinal_380]
jne 0x140089436
cmp edi, dword [rax + 0x170]
jne 0x140089436
mov edx, r10d
mov r8d, dword [rax + 0x3a4]
test r8d, r8d
je 0x140089436
nop dword [rax + rax]
mov ecx, edx
cmp dword [rax + rcx*4 + 0x3a8], r15d
je 0x140089633
inc edx
cmp edx, r8d
jb 0x140089490
jmp 0x140089436
cmp esi, dword [rax + reloc.COMCTL32.dll_Ordinal_380]
jne 0x140089436
cmp edi, dword [rax + 0x170]
jne 0x140089436
mov edx, r10d
mov r8d, dword [rax + 0x3a4]
test r8d, r8d
je 0x140089436
mov ecx, edx
cmp dword [rax + rcx*4 + 0x3a8], ebx
je 0x14008953b
inc edx
cmp edx, r8d
jb 0x1400894d0
jmp 0x140089436
cmp esi, dword [rax + reloc.COMCTL32.dll_Ordinal_380]
jne 0x140089436
cmp edi, dword [rax + 0x170]
jne 0x140089436
mov edx, r10d
mov r8d, dword [rax + 0x3a4]
test r8d, r8d
je 0x140089436
nop dword [rax]
nop word [rax + rax]
mov ecx, edx
cmp dword [rax + rcx*4 + 0x3a8], ebx
je 0x140089710
inc edx
cmp edx, r8d
jb 0x140089520
jmp 0x140089436
mov rcx, qword [rax + 0x118]
test rcx, rcx
je 0x140089588
mov rax, r12
nop word [rax + rax]
lea rax, [rax + 1]
cmp word [rcx + rax*2], 0
jne 0x140089550
lea eax, [rax*2 + 2]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rcx
mov r9d, 1
xor r8d, r8d
lea rdx, str.EndpointId
mov rcx, qword [rbp - 0x59]
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
xor r10d, r10d
mov rax, qword [rbp + 0x67]
mov rax, qword [rax + 0x98]
mov r9, qword [rax + 0x1bd8]
test r9, r9
je 0x1400895fc
nop
mov rdx, r9
test r9, r9
je 0x140089a0d
mov r9, qword [r9]
mov rdx, qword [rdx + 0x10]
test rdx, rdx
je 0x1400895f7
cmp esi, dword [rdx + reloc.COMCTL32.dll_Ordinal_380]
jne 0x1400895f7
cmp edi, dword [rdx + 0x170]
jne 0x1400895f7
mov ecx, r10d
mov r8d, dword [rdx + 0x3a4]
test r8d, r8d
je 0x1400895f7
nop word [rax + rax]
mov eax, ecx
cmp dword [rdx + rax*4 + 0x3a8], r14d
je 0x1400896cc
inc ecx
cmp ecx, r8d
jb 0x1400895e0
test r9, r9
jne 0x1400895a0
mov ecx, 0x3e8
call qword [sym.imp.KERNEL32.dll_Sleep]
mov rax, qword [rbp + 0x67]
mov rcx, qword [rax + 0x98]
add rcx, 0x1bc8
call fcn.1400a7890
mov ecx, dword [rbp + 0x7f]
inc ecx
mov dword [rbp + 0x7f], ecx
cmp ecx, 2
jge 0x140089677
xor r10d, r10d
jmp 0x140089424
mov rcx, qword [rax + 0x118]
test rcx, rcx
je 0x140089677
mov rax, r12
lea rax, [rax + 1]
cmp word [rcx + rax*2], 0
jne 0x140089642
lea eax, [rax*2 + 2]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rcx
mov r9d, 1
xor r8d, r8d
lea rdx, str.EndpointId
mov rcx, qword [rbp - 0x59]
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov r15, qword [rbp + 0x67]
mov eax, dword [rbp - 0x69]
mov dword [r15 + 0x290], eax
lea rcx, [r15 + 0x268]
call fcn.14008c0e0
lea rcx, [r15 + 0x268]
call fcn.14008c7d0
test eax, eax
jne 0x1400896b9
lea r8, str.JackReteskInfo.cpp
mov edx, 0x2a2
lea rcx, str._VCpl__RETURN_ON_FALSE:_Line___d__File___s_n
call fcn.140055180
call fcn.1400f9930
mov rcx, rax
test rax, rax
je 0x140089a02
jmp 0x140089733
mov rcx, qword [rdx + 0x118]
test rcx, rcx
je 0x140089677
mov rax, r12
nop dword [rax + rax]
lea rax, [rax + 1]
cmp word [rcx + rax*2], 0
jne 0x1400896e0
lea eax, [rax*2 + 2]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rcx
mov r9d, 1
xor r8d, r8d
lea rdx, str.EndpointIdForHiddenJack
jmp 0x14008966d
mov rcx, qword [rax + 0x118]
test rcx, rcx
je 0x140089677
mov rax, r12
lea rax, [rax + 1]
cmp word [rcx + rax*2], 0
jne 0x140089723
jmp 0x14008964d
mov rax, qword [rax]
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rbp - 0x69], rbx
call fcn.1400f9930
mov rcx, rax
test rax, rax
je 0x140089a13
mov rax, qword [rax]
call qword [rax + 0x18]
lea rdi, [rax + 0x18]
mov qword [rbp - 0x61], rdi
lea rdx, [rbx - 0x18]
mov rsi, qword [rdx]
cmp dword [rdx + 8], 0
je 0x1400897b2
cmp dword [rdx + 0x10], 0
jge 0x140089787
cmp dword [rbx - 0xc], 0
jl 0x140089a1e
xor eax, eax
mov dword [rbx - 0x10], eax
mov word [rbx], ax
jmp 0x1400897b4
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14008979d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rbp - 0x69], rbx
mov rdi, qword [rbp - 0x61]
xor eax, eax
lea rdx, [rdi - 0x18]
mov rsi, qword [rdx]
cmp dword [rdx + 8], 0
je 0x140089804
cmp dword [rdx + 0x10], 0
jge 0x1400897d9
cmp dword [rdi - 0xc], 0
jl 0x140089a29
mov dword [rdi - 0x10], eax
mov word [rdi], ax
jmp 0x140089804
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400897ef
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x18]
lea rdi, [rax + 0x18]
mov qword [rbp - 0x61], rdi
mov rbx, qword [rbp - 0x69]
mov r14, qword [r15 + 0x2d8]
test r14, r14
je 0x140089882
lea r13, [0x140352c30]
nop word [rax + rax]
mov esi, dword [r14 + 0x10]
mov r14, qword [r14]
lea rdi, [0x140345b70]
cmp dword [rbx - 0x10], 0
cmovne rdi, r13
mov eax, esi
shr eax, 8
movzx r9d, al
movzx eax, sil
shl eax, 8
or r9d, eax
mov r8, rdi
lea rdx, str._s_04x
lea rcx, [rbp - 0x69]
call fcn.140044c80
shr esi, 0x10
mov r9d, esi
mov r8, rdi
lea rdx, str._s_d
lea rcx, [rbp - 0x61]
call fcn.140044c80
mov rbx, qword [rbp - 0x69]
test r14, r14
jne 0x140089820
mov rdi, qword [rbp - 0x61]
test rbx, rbx
je 0x1400898ca
mov rax, r12
nop word [rax + rax]
lea rax, [rax + 1]
cmp word [rbx + rax*2], 0
jne 0x140089890
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 rbx, qword [rbp - 0x59]
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
jmp 0x1400898ce
mov rbx, qword [rbp - 0x59]
test rdi, rdi
je 0x140089914
mov rax, r12
nop word [rax + rax]
lea rax, [rax + 1]
cmp word [rdi + rax*2], 0
jne 0x1400898e0
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, rbx
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov eax, dword [r15 + 0x308]
mov dword [rbp + 0x7f], eax
mov dword [rsp + 0x28], 4
lea rax, [rbp + 0x7f]
mov qword [rsp + 0x20], rax
mov r9d, 4
xor r8d, r8d
lea rdx, str.JackListCurrSelectIndex
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test rbx, rbx
je 0x14008995e
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
mov qword [rbp - 0x59], rax
jmp 0x140089960
xor eax, eax
mov dword [rbp - 0x51], eax
lea rdx, [rdi - 0x18]
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14008997e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x69]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14008999c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rbx, qword [rbp - 0x41]
lea rdx, [rbx - 0x18]
lock xadd dword [rdx + 0x10], r12d
sub r12d, 1
jg 0x1400899ba
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rcx, qword [rbp - 0x59]
test rcx, rcx
je 0x1400899e3
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x1400899e3
lea r8, str.JackMgr.cpp
mov edx, 0xfd
lea rcx, str._VCpl__RETURN_ON_FALSE:_Line___d__File___s_n
call fcn.140055180
add rsp, 0xc8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov ecx, 0x80004005
call fcn.14000de90
nop
mov ecx, 0x80004005
call fcn.14000de90
int3
call fcn.1400f91a0
nop
mov ecx, 0x80004005
call fcn.14000de90
nop
mov ecx, 0x80070057
call fcn.14000de90
int3
mov ecx, 0x80070057
call fcn.14000de90
int3