Function at 0x140058240
Capabilities:
Set registry value

Disassembly:
mov rax, rsp
push rsi
push rdi
push r12
sub rsp, 0x90
mov qword [rsp + 0x80], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
mov r12d, r9d
mov esi, r8d
mov edi, edx
mov rbx, rcx
cmp dword [rcx + 0x3e0], 0
je 0x1400582a9
mov rax, qword [rcx + 0x148]
add rcx, 0x148
call qword [rax + 0x40]
test eax, eax
je 0x1400582a9
mov rax, qword [rbx + 0x148]
mov r9d, r12d
mov r8d, esi
mov edx, edi
lea rcx, [rbx + 0x148]
call qword [rax + 0x28]
jmp 0x140058678
cmp edi, 0x23000212
ja 0x14005839c
cmp edi, 0x23000212
je 0x140058367
sub edi, 0x23000109
je 0x140058354
sub edi, 6
je 0x140058325
sub edi, 1
je 0x140058316
cmp edi, 0x101
jne 0x140058676
and dword [rbx + 0x3e8], 0xfffffffe
and esi, 1
or dword [rbx + 0x3e8], esi
mov rcx, qword [0x140206cc0]
test rcx, rcx
je 0x140058676
mov rax, qword [rcx]
xor r8d, r8d
mov edx, 0x23000211
call qword [rax + 0x58]
jmp 0x140058676
mov ecx, 2
call fcn.1400745e0
jmp 0x140058676
lea rcx, [rbx - 8]
mov edx, esi
call fcn.140058c90
mov rcx, qword [0x140206cc0]
test rcx, rcx
je 0x14005834a
mov rax, qword [rcx]
xor r8d, r8d
mov edx, 0x2300010f
call qword [rax + 0x58]
mov eax, 1
jmp 0x140058678
lea rcx, [rbx - 8]
call fcn.140057670
mov eax, 1
jmp 0x140058678
and dword [rbx + 0x3e8], 0xfffffffd
and esi, 1
add esi, esi
or dword [rbx + 0x3e8], esi
mov rcx, qword [0x140206cc0]
test rcx, rcx
je 0x140058676
mov rax, qword [rcx]
xor r8d, r8d
mov edx, 0x23000212
call qword [rax + 0x58]
jmp 0x140058676
sub edi, 0x23000213
je 0x140058663
sub edi, 1
je 0x14005864e
sub edi, 0xc
je 0x140058643
cmp edi, 0x3e3
jne 0x140058676
xor r12d, r12d
mov qword [rsp + 0x58], r12
call fcn.14012a060
mov rdx, rax
mov ecx, r12d
test rax, rax
setne cl
test ecx, ecx
jne 0x1400583ee
mov ecx, 0x80004005
call fcn.140002cb0
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x60], rbx
lea rdx, str.SoftwareRealtekSBCoexist
or rbp, 0xffffffffffffffff
test rdx, 0xffffffffffff0000
jne 0x14005843a
movzx edi, dx
mov ecx, edi
call fcn.140138f84
test rax, rax
je 0x14005845b
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x60]
call fcn.140004c30
mov rbx, qword [rsp + 0x60]
jmp 0x14005845b
xor eax, eax
mov rcx, rbp
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
lea rcx, [rsp + 0x60]
call fcn.140003210
mov rbx, qword [rsp + 0x60]
mov qword [rsp + 0x68], r12
lea rax, [rsp + 0x68]
mov qword [rsp + 0x20], rax
mov r9d, 0x20019
xor r8d, r8d
mov rdx, rbx
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x140058625
mov rdi, qword [rsp + 0x68]
mov qword [rsp + 0x58], rdi
test rdi, rdi
je 0x1400584ab
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rdi, r12
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x70], r12
lea rax, [rsp + 0x70]
mov qword [rsp + 0x20], rax
mov r9d, 0x20006
xor r8d, r8d
mov rdx, rbx
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x1400584f6
mov eax, r12d
test rdi, rdi
je 0x1400584e8
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rdi, qword [rsp + 0x70]
mov qword [rsp + 0x58], rdi
test eax, eax
je 0x140058562
mov qword [rsp + 0x78], r12
lea rax, [rsp + 0x50]
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x78]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x28], 0x20019
mov dword [rsp + 0x20], r12d
xor r9d, r9d
xor r8d, r8d
mov rdx, rbx
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
jne 0x1400585e4
mov eax, r12d
test rdi, rdi
je 0x140058550
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rdi, qword [rsp + 0x78]
mov qword [rsp + 0x58], rdi
test eax, eax
jne 0x1400585e4
mov dword [rsp + 0xb0], esi
mov dword [rsp + 0x28], 4
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x20], rax
mov r9d, 4
xor r8d, r8d
lea rdx, str.DisablePopUp
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov esi, eax
test rdi, rdi
je 0x1400585ac
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov qword [rsp + 0x58], r12
test esi, esi
sete r12b
lea rdx, [rbx - 0x18]
lock xadd dword [rdx + 0x10], ebp
add ebp, 0xffffffff
test ebp, ebp
jg 0x1400585cc
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 0x1400585dc
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, r12d
jmp 0x140058678
test rdi, rdi
je 0x1400585f7
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov qword [rsp + 0x58], r12
lea rdx, [rbx - 0x18]
lock xadd dword [rdx + 0x10], ebp
add ebp, 0xffffffff
test ebp, ebp
jg 0x140058611
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 0x140058621
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
jmp 0x140058678
lea rdx, [rbx - 0x18]
lock xadd dword [rdx + 0x10], ebp
add ebp, 0xffffffff
test ebp, ebp
jg 0x14005863f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
xor eax, eax
jmp 0x140058678
lea rcx, [rbx - 8]
call fcn.140057370
jmp 0x140058678
and dword [rbx + 0x3e8], 0xfffffff7
and esi, 1
shl esi, 3
or dword [rbx + 0x3e8], esi
jmp 0x140058676
and dword [rbx + 0x3e8], 0xfffffffb
and esi, 1
shl esi, 2
or dword [rbx + 0x3e8], esi
xor eax, eax
lea r11, [rsp + 0x90]
mov rbx, qword [r11 + 0x28]
mov rbp, qword [r11 + 0x30]
mov rsp, r11
pop r12
pop rdi
pop rsi
ret