Function at 0x1400bea00
Capabilities:
Delete registry value
Resolve function by parsing pe exports
Set registry value

Disassembly:
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xb8
mov qword [rsp + 0xa8], 0xfffffffffffffffe
movsxd rbx, edx
mov r12, rcx
cmp ebx, 0x21
ja 0x1400bf479
mov rdi, rbx
lea rax, [rbx + rbx*2 + 0x2a]
cmp dword [rcx + rax*4], 0
je 0x1400bf479
mov qword [rsp + 0x58], 0
call fcn.14013e120
mov r11, rax
xor ecx, ecx
test rax, rax
setne cl
test ecx, ecx
jne 0x1400bea6d
mov ecx, 0x80004005
call fcn.140001c70
int3
mov rax, qword [rax]
mov rcx, r11
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x88], rax
mov r9d, ebx
lea r8, str.SoftwareRealtekAudioGUI_INFORMATIONJackInfomation
lea rdx, str._sJack_d
lea rcx, [rsp + 0x88]
call fcn.140001df0
mov qword [rsp + 0x98], 0
lea rax, [rsp + 0x98]
mov qword [rsp + 0x20], rax
mov r9d, 0x2001f
xor r8d, r8d
mov rbx, qword [rsp + 0x88]
mov rdx, rbx
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x1400beaed
mov rsi, qword [rsp + 0x98]
mov qword [rsp + 0x58], rsi
jmp 0x1400beb57
mov qword [rsp + 0x90], 0
lea rax, [rsp + 0xa0]
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x90]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0x2001f
mov dword [rsp + 0x20], 0
xor r9d, r9d
xor r8d, r8d
mov rdx, rbx
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
jne 0x1400bf45c
mov rsi, qword [rsp + 0x90]
mov qword [rsp + 0x58], rsi
lea rdi, [rdi + rdi*2]
mov r13d, dword [r12 + rdi*4 + 0xac]
mov dword [rsp + 0x50], r13d
movsxd rbx, r13d
mov rbp, rbx
imul rbp, rbp, 0xac
mov rax, qword [r12 + 0x260]
mov cl, byte [rax + rbp + 0xc8]
shr ecx, 1
and ecx, 1
mov dword [rsp + 0x68], ecx
mov dword [rsp + 0x28], 4
lea rax, [rsp + 0x68]
mov qword [rsp + 0x20], rax
mov r9d, 4
xor r8d, r8d
lea rdx, str.JackStatus
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov r11, qword [r12 + 0x260]
mov eax, dword [r11 + rbx*4 + 0x3c]
mov dword [rsp + 0x80], eax
mov dword [rsp + 0x28], 4
lea rax, [rsp + 0x80]
mov qword [rsp + 0x20], rax
mov r9d, 4
xor r8d, r8d
lea rdx, str.JackStatusChangedWhenPowerDown
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov r11d, dword [r12 + rdi*4 + 0xb0]
mov dword [rsp + 0x70], r11d
mov dword [rsp + 0x28], 4
lea rax, [rsp + 0x70]
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 r11, qword [r12 + 0x260]
mov ebx, dword [r11 + rbp + 0x14c]
mov eax, dword [r11 + rbp + 0x15c]
mov dword [rsp + 0x108], eax
mov r15d, dword [r11 + rbp + 0x164]
mov ecx, eax
shl ecx, 8
add ecx, 0x100
and ecx, 0xf00
mov eax, r15d
and eax, 0xf
shl eax, 0xc
or ecx, eax
or ecx, ebx
mov dword [rsp + 0x78], ecx
mov dword [rsp + 0x28], 4
lea rax, [rsp + 0x78]
mov qword [rsp + 0x20], rax
mov r9d, 4
xor r8d, r8d
lea rdx, str.JackWidgetId
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
xor r11d, r11d
mov dword [rsp + 0x110], r11d
xor ecx, ecx
mov dword [rsp + 0x118], ecx
mov rdx, qword [r12 + 0x260]
cmp r13d, dword [rdx + 0x14]
jae 0x1400bed7f
mov rcx, r13
lea rax, [r13 + 2]
imul rax, rax, 0xac
cmp dword [rax + rdx], r11d
je 0x1400bed07
imul rcx, rcx, 0xac
mov r11d, dword [rcx + rdx + 0x150]
mov dword [rsp + 0x110], r11d
mov ecx, dword [rcx + rdx + 0x154]
mov dword [rsp + 0x118], ecx
jmp 0x1400bed37
imul rcx, rcx, 0xac
mov r11d, dword [rcx + rdx + 0xc4]
shr r11d, 8
and r11d, 0xf
mov dword [rsp + 0x110], r11d
mov ecx, dword [rcx + rdx + 0xbc]
and ecx, 0xf
mov dword [rsp + 0x118], ecx
mov rax, qword [rdx + 0x1658]
test rax, rax
je 0x1400bed7f
cmp qword [rax + 0x538], 0
je 0x1400bed7f
mov rcx, qword [rax + 0x538]
mov rax, qword [rcx]
lea r9, [rsp + 0x118]
lea r8, [rsp + 0x110]
mov edx, r13d
call qword [rax + 0x140]
mov r11d, dword [rsp + 0x110]
mov ecx, dword [rsp + 0x118]
test r15d, r15d
je 0x1400beda1
mov rax, qword [r12 + 0x260]
mov edx, dword [rax + 0x1648]
mov r12d, dword [rax + 0x164c]
mov edi, dword [rax + 0x1650]
jmp 0x1400bedbc
mov rax, qword [r12 + 0x260]
mov edx, dword [rax + 0x163c]
mov r12d, dword [rax + 0x1640]
mov edi, dword [rax + 0x1644]
xor ebp, ebp
cmp ebx, edx
sete bpl
cmp r11d, 2
jne 0x1400beddc
cmp ecx, 0xa
je 0x1400bedd4
cmp ecx, 0xb
jne 0x1400beddc
mov r14d, 1
jmp 0x1400bedeb
xor r14d, r14d
cmp r11d, 8
je 0x1400bedf0
cmp r11d, 0xa
je 0x1400bedf0
xor r13d, r13d
jmp 0x1400bedf6
mov r13d, 1
test ebp, ebp
je 0x1400bee0a
lea rdx, str.EndpointIdForHiddenJack
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
mov rax, qword [rsp + 0x100]
mov rax, qword [rax + 0x98]
mov r9, qword [rax + 0x1bd0]
movsxd r11, ebp
movsxd r14, r14d
movsxd r13, r13d
test r9, r9
je 0x1400bf11a
mov r10d, dword [rsp + 0x108]
nop
nop
mov rcx, qword [r9 + 0x10]
mov r9, qword [r9]
test rcx, rcx
je 0x1400bef62
test r11, r11
je 0x1400bef09
test r14, r14
jne 0x1400beebc
test r13, r13
je 0x1400bef09
mov ebp, dword [rsp + 0x108]
cmp ebp, dword [rcx + reloc.COMCTL32.dll_Ordinal_380]
jne 0x1400bef5a
cmp r15d, dword [rcx + 0x170]
jne 0x1400bef55
xor edx, edx
mov r8d, dword [rcx + 0x3a4]
test r8d, r8d
je 0x1400bef5f
lea rax, [rcx + 0x3a8]
cmp dword [rax], edi
je 0x1400bef70
add edx, 1
add rax, 4
cmp edx, r8d
jb 0x1400beea0
mov r10d, ebp
jmp 0x1400bef62
mov ebp, dword [rsp + 0x108]
cmp ebp, dword [rcx + reloc.COMCTL32.dll_Ordinal_380]
jne 0x1400bef4b
cmp r15d, dword [rcx + 0x170]
jne 0x1400bef46
xor edx, edx
mov r8d, dword [rcx + 0x3a4]
test r8d, r8d
je 0x1400bef50
lea rax, [rcx + 0x3a8]
nop
cmp dword [rax], ebx
je 0x1400befc2
add edx, 1
add rax, 4
cmp edx, r8d
jb 0x1400beef0
mov r10d, ebp
jmp 0x1400bef62
cmp r10d, dword [rcx + reloc.COMCTL32.dll_Ordinal_380]
jne 0x1400bef62
cmp r15d, dword [rcx + 0x170]
jne 0x1400bef62
xor edx, edx
mov r8d, dword [rcx + 0x3a4]
test r8d, r8d
je 0x1400bef62
lea rax, [rcx + 0x3a8]
cmp dword [rax], ebx
je 0x1400bf0cd
add edx, 1
add rax, 4
cmp edx, r8d
jb 0x1400bef30
jmp 0x1400bef62
mov r10d, ebp
jmp 0x1400bef62
mov r10d, ebp
jmp 0x1400bef62
mov r10d, ebp
jmp 0x1400bef62
mov r10d, ebp
jmp 0x1400bef62
mov r10d, ebp
jmp 0x1400bef62
mov r10d, ebp
test r9, r9
je 0x1400bf11a
jmp 0x1400bee40
mov rbx, qword [rcx + 0x118]
xor eax, eax
test rbx, rbx
setne al
test eax, eax
jne 0x1400bef8e
mov ecx, 0x80004005
call fcn.140001c70
int3
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea eax, [rax + rax + 2]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rbx
mov r9d, 1
xor r8d, r8d
lea rdx, str.EndpointId
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
jmp 0x1400bf11a
mov rbx, qword [rcx + 0x118]
xor eax, eax
test rbx, rbx
setne al
test eax, eax
jne 0x1400befe0
mov ecx, 0x80004005
call fcn.140001c70
int3
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea eax, [rax + rax + 2]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rbx
mov r9d, 1
xor r8d, r8d
lea rdx, str.EndpointId
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov rax, qword [rsp + 0x100]
mov r11, qword [rax + 0x98]
mov r9, qword [r11 + 0x1bd0]
test r9, r9
je 0x1400bf11a
nop
mov rdx, qword [r9 + 0x10]
mov r9, qword [r9]
test rdx, rdx
je 0x1400bf073
cmp ebp, dword [rdx + reloc.COMCTL32.dll_Ordinal_380]
jne 0x1400bf073
cmp r15d, dword [rdx + 0x170]
jne 0x1400bf073
xor ecx, ecx
mov r8d, dword [rdx + 0x3a4]
test r8d, r8d
je 0x1400bf073
lea rax, [rdx + 0x3a8]
cmp dword [rax], r12d
je 0x1400bf07e
add ecx, 1
add rax, 4
cmp ecx, r8d
jb 0x1400bf062
test r9, r9
je 0x1400bf11a
jmp 0x1400bf030
mov rbx, qword [rdx + 0x118]
xor eax, eax
test rbx, rbx
setne al
test eax, eax
jne 0x1400bf09c
mov ecx, 0x80004005
call fcn.140001c70
int3
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea eax, [rax + rax + 2]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rbx
mov r9d, 1
xor r8d, r8d
lea rdx, str.EndpointIdForHiddenJack
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
jmp 0x1400bf11a
mov rbx, qword [rcx + 0x118]
xor eax, eax
test rbx, rbx
setne al
test eax, eax
jne 0x1400bf0eb
mov ecx, 0x80004005
call fcn.140001c70
int3
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea eax, [rax + rax + 2]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rbx
mov r9d, 1
xor r8d, r8d
lea rdx, str.EndpointId
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov r15, qword [rsp + 0x100]
mov eax, dword [rsp + 0x50]
mov dword [r15 + 0x290], eax
lea rcx, [r15 + 0x268]
call fcn.1400c1de0
lea rcx, [r15 + 0x268]
call fcn.1400c2420
call fcn.14013e120
mov r11, rax
xor ecx, ecx
test rax, rax
setne cl
test ecx, ecx
jne 0x1400bf164
mov ecx, 0x80004005
call fcn.140001c70
int3
mov rax, qword [rax]
mov rcx, r11
call qword [rax + 0x18]
lea rdi, [rax + 0x18]
mov qword [rsp + 0x50], rdi
call fcn.14013e120
mov r11, rax
xor ecx, ecx
test rax, rax
setne cl
test ecx, ecx
jne 0x1400bf195
mov ecx, 0x80004005
call fcn.140001c70
int3
mov rax, qword [rax]
mov rcx, r11
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x60], rbx
lea rdx, [rdi - 0x18]
mov r12, qword [rdx]
or ebp, 0xffffffff
cmp dword [rdx + 8], 0
je 0x1400bf210
cmp dword [rdx + 0x10], 0
jge 0x1400bf1dc
cmp dword [rdi - 0xc], 0
jge 0x1400bf1ce
mov ecx, 0x80070057
call fcn.140001c70
int3
mov dword [rdi - 0x10], 0
mov word [rdi], 0
jmp 0x1400bf210
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x1400bf1f3
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [r12]
mov rcx, r12
call qword [rax + 0x18]
lea rdi, [rax + 0x18]
mov qword [rsp + 0x50], rdi
mov rsi, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x60]
lea rdx, [rbx - 0x18]
mov r12, qword [rdx]
cmp dword [rdx + 8], 0
je 0x1400bf276
cmp dword [rdx + 0x10], 0
jge 0x1400bf242
cmp dword [rbx - 0xc], 0
jge 0x1400bf234
mov ecx, 0x80070057
call fcn.140001c70
int3
mov dword [rbx - 0x10], 0
mov word [rbx], 0
jmp 0x1400bf276
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x1400bf259
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [r12]
mov rcx, r12
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x60], rbx
mov rsi, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x50]
mov r12, qword [r15 + 0x2d8]
test r12, r12
je 0x1400bf308
lea r13, [0x1401b1cd8]
nop
mov ebx, dword [r12 + 0x10]
mov r12, qword [r12]
mov eax, ebx
shr eax, 8
movzx ecx, al
movzx eax, bl
shl ax, 8
or cx, ax
shr ebx, 0x10
xor eax, eax
cmp dword [rdi - 0x10], eax
setne al
lea rdi, [0x14019bd68]
test eax, eax
cmovne rdi, r13
movzx r9d, cx
mov r8, rdi
lea rdx, str._s_04x
lea rcx, [rsp + 0x50]
call fcn.140006340
mov r9d, ebx
mov r8, rdi
lea rdx, str._s_d
lea rcx, [rsp + 0x60]
call fcn.140006340
test r12, r12
je 0x1400bf2fe
mov rdi, qword [rsp + 0x50]
jmp 0x1400bf290
mov rdi, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x60]
xor eax, eax
test rdi, rdi
setne al
test eax, eax
jne 0x1400bf31f
mov ecx, 0x80004005
call fcn.140001c70
int3
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea eax, [rax + rax + 2]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rdi
mov r9d, 1
xor r8d, r8d
lea rdx, str.JackListTypeSequence
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
xor r11d, r11d
test rbx, rbx
setne r11b
test r11d, r11d
jne 0x1400bf368
mov ecx, 0x80004005
call fcn.140001c70
int3
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea eax, [rax + rax + 2]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rbx
mov r9d, 1
xor r8d, r8d
lea rdx, str.JackListName
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov r11d, dword [r15 + 0x308]
mov dword [rsp + 0x108], r11d
mov dword [rsp + 0x28], 4
lea rax, [rsp + 0x108]
mov qword [rsp + 0x20], rax
mov r9d, 4
xor r8d, r8d
lea rdx, str.JackListCurrSelectIndex
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test rsi, rsi
je 0x1400bf3eb
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov qword [rsp + 0x58], 0
lea rdx, [rbx - 0x18]
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x1400bf407
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x50]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x1400bf428
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x88]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], ebp
add ebp, 0xffffffff
test ebp, ebp
jg 0x1400bf44a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x1400bf479
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x1400bf479
lea rdx, [rbx - 0x18]
or ebp, 0xffffffff
lock xadd dword [rdx + 0x10], ebp
add ebp, 0xffffffff
test ebp, ebp
jg 0x1400bf479
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
add rsp, 0xb8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret