Function at 0x140007e80
Capabilities:
Set registry value

Disassembly:
mov qword [rsp + 0x20], rdi
push rbp
lea rbp, [rsp - 0x1b0]
sub rsp, 0x2b0
mov rax, qword [0x14003a088]
xor rax, rsp
mov qword [rbp + 0x1a0], rax
xor edi, edi
mov qword [rbp - 0x80], 7
mov rdx, r8
mov qword [rsp + 0x78], rdi
mov word [rsp + 0x68], di
mov dword [rsp + 0x54], edi
mov dword [rsp + 0x64], 0x104
call fcn.140002620
lea rdx, str.hwnd
call fcn.140002b30
test eax, eax
je 0x140007efc
lea rdx, str.hwnd
call fcn.140002c30
mov rcx, rax
call fcn.14001044c
movsxd rcx, eax
mov qword [0x14003cae0], rcx
lea rdx, str.rdev
mov qword [rsp + 0x2c0], rbx
call fcn.140002b30
test eax, eax
je 0x140007f1e
call fcn.140007cf0
jmp 0x14000822a
lea rdx, str.uninstall
call fcn.140002b30
test eax, eax
je 0x14000802c
lea rdx, str.flags
call fcn.140002c30
mov rcx, rax
call fcn.14001044c
lea rdx, str.driverinf
mov ebx, eax
call fcn.140002c30
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.140002c30
mov qword [rsp + 0x40], rdi
mov rdx, rax
lea rax, [rsp + 0x58]
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 0x14000822a
mov rcx, qword [rsp + 0x58]
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 + 0x58]
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 + 0x60], eax
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x14000822a
lea rdx, str.driverinf
call fcn.140002b30
test eax, eax
je 0x140008225
lea rdx, str.flags
call fcn.140002b30
test eax, eax
je 0x140008225
lea rdx, str.keypath
call fcn.140002b30
test eax, eax
je 0x140008225
lea rdx, str.driverinf
mov qword [rsp + 0x2c8], rsi
call fcn.140002c30
or rbx, 0xffffffffffffffff
cmp word [rax], di
jne 0x14000808a
mov r8, rdi
jmp 0x14000809a
mov r8, rbx
nop dword [rax]
inc r8
cmp word [rax + r8*2], di
jne 0x140008090
mov rdx, rax
lea rcx, [rsp + 0x68]
call fcn.140004500
lea rdx, str.flags
call fcn.140002c30
mov rcx, rax
call fcn.14001044c
lea rdx, str.preinstall
mov esi, eax
call fcn.140002b30
lea rcx, [rsp + 0x68]
test eax, eax
je 0x1400080ea
cmp qword [rbp - 0x80], 8
cmovae rcx, qword [rsp + 0x68]
or esi, 1
mov edx, esi
call qword [sym.imp.DIFXAPI.dll_DriverPackagePreinstallW]
jmp 0x140008105
cmp qword [rbp - 0x80], 8
lea r9, [rsp + 0x54]
mov edx, esi
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]
mov dword [rsp + 0x50], eax
cmovae rcx, qword [rsp + 0x68]
lea rdx, [rbp - 0x70]
call qword [sym.imp.DIFXAPI.dll_DriverPackageGetPathW]
lea rdx, str.keypath
call fcn.140002c30
mov qword [rsp + 0x40], rdi
mov rdx, rax
lea rax, [rsp + 0x58]
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 + 0x2c8]
test eax, eax
jne 0x14000822a
mov rcx, qword [rsp + 0x58]
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 + 0x58]
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 + 0x60], eax
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
lea rax, [rbp - 0x70]
inc rbx
cmp word [rax + rbx*2], di
jne 0x1400081e5
mov rcx, qword [rsp + 0x58]
lea rax, [rbp - 0x70]
add ebx, ebx
lea rdx, str.StorePath
mov dword [rsp + 0x28], ebx
mov r9d, 1
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]
jmp 0x14000822a
mov edi, 1
mov r8, qword [rbp - 0x80]
mov rbx, qword [rsp + 0x2c0]
cmp r8, 8
jb 0x14000824e
mov rdx, qword [rsp + 0x68]
lea rcx, [rsp + 0x68]
inc r8
call fcn.140004d90
mov eax, edi
mov rcx, qword [rbp + 0x1a0]
xor rcx, rsp
call fcn.140009810
mov rdi, qword [rsp + 0x2d8]
add rsp, 0x2b0
pop rbp
ret