Function at 0x1400bd550
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 0x1400bdfc9
mov rdi, rbx
lea rax, [rbx + rbx*2 + 0x2a]
cmp dword [rcx + rax*4], 0
je 0x1400bdfc9
mov qword [rsp + 0x58], 0
call fcn.14013d07c
mov r11, rax
xor ecx, ecx
test rax, rax
setne cl
test ecx, ecx
jne 0x1400bd5bd
mov ecx, 0x80004005
call fcn.140001c00
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.140001f50
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 0x1400bd63d
mov rsi, qword [rsp + 0x98]
mov qword [rsp + 0x58], rsi
jmp 0x1400bd6a7
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 0x1400bdfac
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 0x1400bd8cf
mov rcx, r13
lea rax, [r13 + 2]
imul rax, rax, 0xac
cmp dword [rax + rdx], r11d
je 0x1400bd857
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 0x1400bd887
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 0x1400bd8cf
cmp qword [rax + 0x538], 0
je 0x1400bd8cf
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 0x1400bd8f1
mov rax, qword [r12 + 0x260]
mov edx, dword [rax + 0x1648]
mov r12d, dword [rax + 0x164c]
mov edi, dword [rax + 0x1650]
jmp 0x1400bd90c
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 0x1400bd92c
cmp ecx, 0xa
je 0x1400bd924
cmp ecx, 0xb
jne 0x1400bd92c
mov r14d, 1
jmp 0x1400bd93b
xor r14d, r14d
cmp r11d, 8
je 0x1400bd940
cmp r11d, 0xa
je 0x1400bd940
xor r13d, r13d
jmp 0x1400bd946
mov r13d, 1
test ebp, ebp
je 0x1400bd95a
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 + 0x1bd8]
movsxd r11, ebp
movsxd r14, r14d
movsxd r13, r13d
test r9, r9
je 0x1400bdc6a
mov r10d, dword [rsp + 0x108]
nop
nop
mov rcx, qword [r9 + 0x10]
mov r9, qword [r9]
test rcx, rcx
je 0x1400bdab2
test r11, r11
je 0x1400bda59
test r14, r14
jne 0x1400bda0c
test r13, r13
je 0x1400bda59
mov ebp, dword [rsp + 0x108]
cmp ebp, dword [rcx + reloc.COMCTL32.dll_Ordinal_380]
jne 0x1400bdaaa
cmp r15d, dword [rcx + 0x170]
jne 0x1400bdaa5
xor edx, edx
mov r8d, dword [rcx + 0x3a4]
test r8d, r8d
je 0x1400bdaaf
lea rax, [rcx + 0x3a8]
cmp dword [rax], edi
je 0x1400bdac0
add edx, 1
add rax, 4
cmp edx, r8d
jb 0x1400bd9f0
mov r10d, ebp
jmp 0x1400bdab2
mov ebp, dword [rsp + 0x108]
cmp ebp, dword [rcx + reloc.COMCTL32.dll_Ordinal_380]
jne 0x1400bda9b
cmp r15d, dword [rcx + 0x170]
jne 0x1400bda96
xor edx, edx
mov r8d, dword [rcx + 0x3a4]
test r8d, r8d
je 0x1400bdaa0
lea rax, [rcx + 0x3a8]
nop
cmp dword [rax], ebx
je 0x1400bdb12
add edx, 1
add rax, 4
cmp edx, r8d
jb 0x1400bda40
mov r10d, ebp
jmp 0x1400bdab2
cmp r10d, dword [rcx + reloc.COMCTL32.dll_Ordinal_380]
jne 0x1400bdab2
cmp r15d, dword [rcx + 0x170]
jne 0x1400bdab2
xor edx, edx
mov r8d, dword [rcx + 0x3a4]
test r8d, r8d
je 0x1400bdab2
lea rax, [rcx + 0x3a8]
cmp dword [rax], ebx
je 0x1400bdc1d
add edx, 1
add rax, 4
cmp edx, r8d
jb 0x1400bda80
jmp 0x1400bdab2
mov r10d, ebp
jmp 0x1400bdab2
mov r10d, ebp
jmp 0x1400bdab2
mov r10d, ebp
jmp 0x1400bdab2
mov r10d, ebp
jmp 0x1400bdab2
mov r10d, ebp
jmp 0x1400bdab2
mov r10d, ebp
test r9, r9
je 0x1400bdc6a
jmp 0x1400bd990
mov rbx, qword [rcx + 0x118]
xor eax, eax
test rbx, rbx
setne al
test eax, eax
jne 0x1400bdade
mov ecx, 0x80004005
call fcn.140001c00
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 0x1400bdc6a
mov rbx, qword [rcx + 0x118]
xor eax, eax
test rbx, rbx
setne al
test eax, eax
jne 0x1400bdb30
mov ecx, 0x80004005
call fcn.140001c00
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 + 0x1bd8]
test r9, r9
je 0x1400bdc6a
nop
mov rdx, qword [r9 + 0x10]
mov r9, qword [r9]
test rdx, rdx
je 0x1400bdbc3
cmp ebp, dword [rdx + reloc.COMCTL32.dll_Ordinal_380]
jne 0x1400bdbc3
cmp r15d, dword [rdx + 0x170]
jne 0x1400bdbc3
xor ecx, ecx
mov r8d, dword [rdx + 0x3a4]
test r8d, r8d
je 0x1400bdbc3
lea rax, [rdx + 0x3a8]
cmp dword [rax], r12d
je 0x1400bdbce
add ecx, 1
add rax, 4
cmp ecx, r8d
jb 0x1400bdbb2
test r9, r9
je 0x1400bdc6a
jmp 0x1400bdb80
mov rbx, qword [rdx + 0x118]
xor eax, eax
test rbx, rbx
setne al
test eax, eax
jne 0x1400bdbec
mov ecx, 0x80004005
call fcn.140001c00
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 0x1400bdc6a
mov rbx, qword [rcx + 0x118]
xor eax, eax
test rbx, rbx
setne al
test eax, eax
jne 0x1400bdc3b
mov ecx, 0x80004005
call fcn.140001c00
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.1400c0980
lea rcx, [r15 + 0x268]
call fcn.1400c0fa0
call fcn.14013d07c
mov r11, rax
xor ecx, ecx
test rax, rax
setne cl
test ecx, ecx
jne 0x1400bdcb4
mov ecx, 0x80004005
call fcn.140001c00
int3
mov rax, qword [rax]
mov rcx, r11
call qword [rax + 0x18]
lea rdi, [rax + 0x18]
mov qword [rsp + 0x50], rdi
call fcn.14013d07c
mov r11, rax
xor ecx, ecx
test rax, rax
setne cl
test ecx, ecx
jne 0x1400bdce5
mov ecx, 0x80004005
call fcn.140001c00
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 0x1400bdd60
cmp dword [rdx + 0x10], 0
jge 0x1400bdd2c
cmp dword [rdi - 0xc], 0
jge 0x1400bdd1e
mov ecx, 0x80070057
call fcn.140001c00
int3
mov dword [rdi - 0x10], 0
mov word [rdi], 0
jmp 0x1400bdd60
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x1400bdd43
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 0x1400bddc6
cmp dword [rdx + 0x10], 0
jge 0x1400bdd92
cmp dword [rbx - 0xc], 0
jge 0x1400bdd84
mov ecx, 0x80070057
call fcn.140001c00
int3
mov dword [rbx - 0x10], 0
mov word [rbx], 0
jmp 0x1400bddc6
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x1400bdda9
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 0x1400bde58
lea r13, [0x1401b3140]
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, [0x14019cf88]
test eax, eax
cmovne rdi, r13
movzx r9d, cx
mov r8, rdi
lea rdx, str._s_04x
lea rcx, [rsp + 0x50]
call fcn.140006a00
mov r9d, ebx
mov r8, rdi
lea rdx, str._s_d
lea rcx, [rsp + 0x60]
call fcn.140006a00
test r12, r12
je 0x1400bde4e
mov rdi, qword [rsp + 0x50]
jmp 0x1400bdde0
mov rdi, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x60]
xor eax, eax
test rdi, rdi
setne al
test eax, eax
jne 0x1400bde6f
mov ecx, 0x80004005
call fcn.140001c00
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 0x1400bdeb8
mov ecx, 0x80004005
call fcn.140001c00
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 0x1400bdf3b
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 0x1400bdf57
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 0x1400bdf78
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 0x1400bdf9a
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 0x1400bdfc9
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x1400bdfc9
lea rdx, [rbx - 0x18]
or ebp, 0xffffffff
lock xadd dword [rdx + 0x10], ebp
add ebp, 0xffffffff
test ebp, ebp
jg 0x1400bdfc9
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