Function at 0x140006690
Capabilities:
Set registry value

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rdi
push rbp
lea rbp, [rsp - 0x1b0]
sub rsp, 0x2b0
mov rax, qword [0x140021410]
xor rax, rsp
mov qword [rbp + 0x1a0], rax
xor ebx, ebx
lea rcx, [0x140006200]
xor edx, edx
mov rdi, r8
mov qword [rbp - 0x80], 7
mov dword [rsp + 0x64], 0x104
mov qword [rsp + 0x78], rbx
mov word [rsp + 0x68], bx
mov dword [rsp + 0x50], ebx
call qword [sym.imp.DIFXAPI.dll_DIFXAPISetLogCallbackW]
mov rcx, rdi
call fcn.140001c80
lea rcx, [0x14001bf10]
call fcn.1400020b0
test eax, eax
je 0x140006725
lea rcx, [0x14001bf10]
call fcn.1400021c0
lea rcx, [0x140024200]
mov edx, 0x104
mov r8, rax
call fcn.140008d88
lea rcx, str.rdev
call fcn.1400020b0
test eax, eax
je 0x140006752
call fcn.140006500
cmp qword [rbp - 0x80], 8
jb 0x14000674b
mov rcx, qword [rsp + 0x68]
call fcn.1400087dc
xor eax, eax
jmp 0x140006a45
lea rcx, str.uninstall
call fcn.1400020b0
test eax, eax
je 0x140006840
lea rcx, str.flags
call fcn.1400021c0
mov rcx, rax
call fcn.14000898c
lea rcx, str.driverinf
mov edi, eax
call fcn.1400021c0
lea r9, [rsp + 0x50]
xor r8d, r8d
mov edx, edi
mov rcx, rax
call qword [sym.imp.DIFXAPI.dll_DriverPackageUninstallW]
lea rcx, str.keypath
mov dword [rsp + 0x54], eax
call fcn.1400021c0
mov qword [rsp + 0x40], rbx
mov rdx, rax
lea rax, [rsp + 0x58]
xor r9d, r9d
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rbx
xor r8d, r8d
mov rcx, 0xffffffff80000002
mov dword [rsp + 0x28], 0xf023f
mov dword [rsp + 0x20], ebx
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
jne 0x140006a20
mov rcx, qword [rsp + 0x58]
lea rax, [rsp + 0x54]
lea rdx, str.Code
mov r9d, 4
xor r8d, r8d
mov dword [rsp + 0x28], 4
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
cmp dword [rsp + 0x50], ebx
setne bl
mov dword [rsp + 0x28], 4
lea rax, [rsp + 0x60]
mov r9d, 4
lea rdx, str.Reboot
mov dword [rsp + 0x60], ebx
jmp 0x140006a02
lea rcx, str.driverinf
call fcn.1400020b0
test eax, eax
je 0x140006a2f
lea rcx, str.flags
call fcn.1400020b0
test eax, eax
je 0x140006a2f
lea rcx, str.keypath
call fcn.1400020b0
test eax, eax
je 0x140006a2f
lea rcx, str.driverinf
call fcn.1400021c0
or rcx, 0xffffffffffffffff
mov rdx, rax
xor eax, eax
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
lea r8, [rcx - 1]
lea rcx, [rsp + 0x68]
call fcn.140004090
lea rcx, str.flags
call fcn.1400021c0
mov rcx, rax
call fcn.14000898c
lea rcx, str.preinstall
mov edi, eax
call fcn.1400020b0
lea rcx, [rsp + 0x68]
test eax, eax
je 0x1400068eb
cmp qword [rbp - 0x80], 8
cmovae rcx, qword [rsp + 0x68]
or edi, 1
mov edx, edi
call qword [sym.imp.DIFXAPI.dll_DriverPackagePreinstallW]
jmp 0x140006906
cmp qword [rbp - 0x80], 8
lea r9, [rsp + 0x50]
mov edx, edi
cmovae rcx, qword [rsp + 0x68]
xor r8d, r8d
call qword [sym.imp.DIFXAPI.dll_DriverPackageInstallW]
cmp qword [rbp - 0x80], 8
lea rcx, [rsp + 0x68]
lea r8, [rsp + 0x64]
cmovae rcx, qword [rsp + 0x68]
lea rdx, [rbp - 0x70]
mov dword [rsp + 0x54], eax
call qword [sym.imp.DIFXAPI.dll_DriverPackageGetPathW]
lea rcx, str.keypath
call fcn.1400021c0
mov qword [rsp + 0x40], rbx
xor r9d, r9d
mov rdx, rax
lea rax, [rsp + 0x58]
xor r8d, r8d
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rbx
mov rcx, 0xffffffff80000002
mov dword [rsp + 0x28], 0xf023f
mov dword [rsp + 0x20], ebx
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
jne 0x140006a20
mov rcx, qword [rsp + 0x58]
lea rax, [rsp + 0x54]
lea rdx, str.Code
mov r9d, 4
xor r8d, r8d
mov dword [rsp + 0x28], 4
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
cmp dword [rsp + 0x50], ebx
mov rcx, qword [rsp + 0x58]
setne bl
lea rax, [rsp + 0x60]
lea rdx, str.Reboot
xor r8d, r8d
mov r9d, 4
mov dword [rsp + 0x28], 4
mov dword [rsp + 0x60], ebx
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
or rcx, 0xffffffffffffffff
xor eax, eax
lea rdi, [rbp - 0x70]
mov r9d, 1
lea rdx, str.StorePath
repne scasw ax, word [rdi]
lea rax, [rbp - 0x70]
not rcx
dec rcx
add ecx, ecx
mov dword [rsp + 0x28], ecx
mov rcx, qword [rsp + 0x58]
xor r8d, r8d
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.DIFXAPI.dll_DIFXAPISetLogCallbackW]
jmp 0x14000673a
cmp qword [rbp - 0x80], 8
jb 0x140006a40
mov rcx, qword [rsp + 0x68]
call fcn.1400087dc
mov eax, 1
mov rcx, qword [rbp + 0x1a0]
xor rcx, rsp
call fcn.140007dd0
lea r11, [rsp + 0x2b0]
mov rbx, qword [r11 + 0x10]
mov rdi, qword [r11 + 0x18]
mov rsp, r11
pop rbp
ret