Function at 0x140006bb0
Capabilities:
Set registry value

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x20], rdi
push rbp
lea rbp, [rsp - 0x1e0]
sub rsp, 0x2e0
mov rax, qword [0x140039080]
xor rax, rsp
mov qword [rbp + 0x1d0], rax
movdqa xmm0, xmmword [0x140033c60]
lea rcx, [0x1400068a0]
xor edi, edi
mov dword [rsp + 0x70], 0x104
xor edx, edx
mov dword [rsp + 0x50], edi
movdqu xmmword [rbp - 0x70], xmm0
mov word [rbp - 0x80], di
mov rbx, r8
mov dword [rsp + 0x54], edi
call qword [sym.imp.DIFXAPI.dll_DIFXAPISetLogCallbackW]
mov rdx, rbx
call fcn.1400021b0
lea rdx, [0x140033390]
call fcn.140002a10
test eax, eax
je 0x140006c48
lea rdx, [0x140033390]
call fcn.140002b40
mov r8, rax
lea rcx, [0x14003ba60]
mov edx, 0x104
call fcn.14000ed98
lea rdx, str.rdev
call fcn.140002a10
test eax, eax
je 0x140006dc9
movdqa xmm0, xmmword [0x140033c60]
lea rdx, str.rdev
movdqu xmmword [rbp - 0x50], xmm0
mov word [rbp - 0x60], di
mov dword [rsp + 0x68], edi
mov dword [rsp + 0x6c], edi
call fcn.140002b40
mov rbx, 0xffffffffffffffff
nop dword [rax + rax]
inc rbx
cmp word [rax + rbx*2], di
jne 0x140006c90
mov r8, rbx
lea rcx, [rbp - 0x60]
mov rdx, rax
call fcn.1400040b0
cmp qword [rbp - 0x48], 8
lea rcx, [rbp - 0x60]
lea rdx, [rsp + 0x68]
cmovae rcx, qword [rbp - 0x60]
call fcn.1400068b0
mov dword [rsp + 0x58], eax
test eax, eax
jne 0x140006ce1
lea rcx, str.Device_removed_succesfully
call fcn.140006710
mov eax, edi
cmp dword [rsp + 0x68], eax
setne al
mov dword [rsp + 0x6c], eax
mov qword [rsp + 0x40], rdi
lea rax, [rsp + 0x78]
mov qword [rsp + 0x38], rax
lea rdx, str.SoftwareIntelDifx64
mov qword [rsp + 0x30], rdi
xor r9d, r9d
mov dword [rsp + 0x28], 0xf023f
xor r8d, r8d
mov rcx, 0xffffffff80000002
mov dword [rsp + 0x20], edi
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
mov rcx, qword [rsp + 0x78]
lea rax, [rsp + 0x58]
mov dword [rsp + 0x28], 4
lea rdx, str.Code
mov r9d, 4
mov qword [rsp + 0x20], rax
xor r8d, r8d
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov rcx, qword [rsp + 0x78]
lea rax, [rsp + 0x6c]
mov dword [rsp + 0x28], 4
lea rdx, str.Reboot
mov r9d, 4
mov qword [rsp + 0x20], rax
xor r8d, r8d
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov rcx, qword [rsp + 0x78]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rdx, qword [rbp - 0x48]
cmp rdx, 8
jb 0x140007116
mov rcx, qword [rbp - 0x60]
lea rdx, [rdx*2 + 2]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140006dbf
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000717e
call fcn.140008a54
jmp 0x140007116
lea rdx, str.uninstall
call fcn.140002a10
test eax, eax
je 0x140006eb9
lea rdx, str.flags
call fcn.140002b40
mov rcx, rax
call fcn.14000ed6c
lea rdx, str.driverinf
mov ebx, eax
call fcn.140002b40
mov rcx, rax
lea r9, [rsp + 0x54]
xor r8d, r8d
mov edx, ebx
call qword [sym.imp.DIFXAPI.dll_DriverPackageUninstallW]
lea rdx, str.keypath
mov dword [rsp + 0x50], eax
call fcn.140002b40
mov qword [rsp + 0x40], rdi
mov rdx, rax
lea rax, [rsp + 0x60]
xor r9d, r9d
mov qword [rsp + 0x38], rax
xor r8d, r8d
mov qword [rsp + 0x30], rdi
mov rcx, 0xffffffff80000002
mov dword [rsp + 0x28], 0xf023f
mov dword [rsp + 0x20], edi
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
jne 0x140007105
mov rcx, qword [rsp + 0x60]
lea rax, [rsp + 0x50]
mov dword [rsp + 0x28], 4
lea rdx, str.Code
mov r9d, 4
mov qword [rsp + 0x20], rax
xor r8d, r8d
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov eax, edi
mov dword [rsp + 0x28], 4
cmp dword [rsp + 0x54], eax
lea rdx, str.Reboot
mov r9d, 4
setne al
mov dword [rsp + 0x58], eax
lea rax, [rsp + 0x58]
jmp 0x1400070e7
lea rdx, str.driverinf
call fcn.140002a10
test eax, eax
je 0x140007111
lea rdx, str.flags
call fcn.140002a10
test eax, eax
je 0x140007111
lea rdx, str.keypath
call fcn.140002a10
test eax, eax
je 0x140007111
lea rdx, str.driverinf
mov qword [rsp + 0x2f0], rsi
call fcn.140002b40
mov rbx, 0xffffffffffffffff
mov r8, rbx
inc r8
cmp word [rax + r8*2], di
jne 0x140006f13
mov rdx, rax
lea rcx, [rbp - 0x80]
call fcn.1400040b0
lea rdx, str.flags
call fcn.140002b40
mov rcx, rax
call fcn.14000ed6c
lea rdx, str.preinstall
mov esi, eax
call fcn.140002a10
test eax, eax
je 0x140006f6a
cmp qword [rbp - 0x68], 8
lea rcx, [rbp - 0x80]
cmovae rcx, qword [rbp - 0x80]
or esi, 1
mov edx, esi
call qword [sym.imp.DIFXAPI.dll_DriverPackagePreinstallW]
jmp 0x140006fe9
lea rdx, str.diinstall
call fcn.140002a10
test eax, eax
je 0x140006fbf
lea rcx, str.RS1_or_greater_detected.__Executing_DiInstallDriver.
call fcn.140006710
cmp qword [rbp - 0x68], 8
lea rdx, [rbp - 0x80]
lea r9, [rsp + 0x54]
cmovae rdx, qword [rbp - 0x80]
xor ecx, ecx
lea r8d, [rcx + 2]
call qword [sym.imp.newdev.dll_DiInstallDriverW]
test eax, eax
jne 0x140006fed
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea rcx, str.DiInstllDriver_FAILED._Error_0x_X
call fcn.140006710
jmp 0x140006fed
lea rcx, str.OS_is_less_than_RS1.__DIFx_api_used_to_install_driver.
call fcn.140006710
cmp qword [rbp - 0x68], 8
lea rcx, [rbp - 0x80]
lea r9, [rsp + 0x54]
mov edx, esi
cmovae rcx, qword [rbp - 0x80]
xor r8d, r8d
call qword [sym.imp.DIFXAPI.dll_DriverPackageInstallW]
mov dword [rsp + 0x50], eax
cmp qword [rbp - 0x68], 8
lea rcx, [rbp - 0x80]
lea r8, [rsp + 0x70]
cmovae rcx, qword [rbp - 0x80]
lea rdx, [rbp - 0x40]
call qword [sym.imp.DIFXAPI.dll_DriverPackageGetPathW]
lea rdx, str.keypath
call fcn.140002b40
mov qword [rsp + 0x40], rdi
mov rdx, rax
lea rax, [rsp + 0x60]
xor r9d, r9d
mov qword [rsp + 0x38], rax
xor r8d, r8d
mov qword [rsp + 0x30], rdi
mov rcx, 0xffffffff80000002
mov dword [rsp + 0x28], 0xf023f
mov dword [rsp + 0x20], edi
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
mov rsi, qword [rsp + 0x2f0]
test eax, eax
jne 0x140007105
mov rcx, qword [rsp + 0x60]
lea rax, [rsp + 0x50]
mov dword [rsp + 0x28], 4
lea rdx, str.Code
mov r9d, 4
mov qword [rsp + 0x20], rax
xor r8d, r8d
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov rcx, qword [rsp + 0x60]
lea rdx, str.Reboot
mov eax, edi
mov dword [rsp + 0x28], 4
cmp dword [rsp + 0x54], eax
mov r9d, 4
setne al
xor r8d, r8d
mov dword [rsp + 0x58], eax
lea rax, [rsp + 0x58]
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
lea rax, [rbp - 0x40]
inc rbx
cmp word [rax + rbx*2], di
jne 0x1400070c7
add ebx, ebx
lea rax, [rbp - 0x40]
mov dword [rsp + 0x28], ebx
lea rdx, str.StorePath
mov r9d, 1
mov rcx, qword [rsp + 0x60]
xor r8d, r8d
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.DIFXAPI.dll_DIFXAPISetLogCallbackW]
jmp 0x140007116
mov edi, 1
mov rdx, qword [rbp - 0x68]
cmp rdx, 8
jb 0x140007152
mov rcx, qword [rbp - 0x80]
lea rdx, [rdx*2 + 2]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000714d
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140007178
call fcn.140008a54
mov eax, edi
mov rcx, qword [rbp + 0x1d0]
xor rcx, rsp
call fcn.140008740
lea r11, [rsp + 0x2e0]
mov rbx, qword [r11 + 0x18]
mov rdi, qword [r11 + 0x28]
mov rsp, r11
pop rbp
ret
call fcn.14000cba8
int3
call fcn.14000cba8
int3