Function at 0x140040990
Capabilities:
Install driver

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0x10]
sub rsp, 0x110
mov rax, qword [0x140479900]
xor rax, rsp
mov qword [rbp - 0x10], rax
xor r12d, r12d
mov dword [rbp - 0x60], r8d
mov rdi, r9
mov r15, rdx
mov rsi, rcx
test r9, r9
je 0x1400409cd
mov dword [r9], r12d
mov dword [rsp + 0x50], r12d
lea rax, [0x140133588]
mov qword [rsp + 0x48], r12
lea r9, [rbp - 0x20]
mov dword [rsp + 0x40], 0x60
lea r8, [rsp + 0x68]
mov qword [rbp - 0x50], rax
lea rcx, [rsp + 0x60]
lea rax, [rbp - 0x58]
mov dword [rbp - 0x58], 0x180016
xorps xmm0, xmm0
mov dword [rsp + 0x68], Ordinal_50
mov r14d, 1
mov qword [rsp + 0x70], r12
mov dword [rsp + 0x38], r14d
mov edx, 0x100000
mov dword [rsp + 0x30], 7
mov ebx, Ordinal_27
mov dword [rsp + 0x28], 0x80
mov qword [rsp + 0x20], r12
mov qword [rsp + 0x78], rax
mov dword [rbp - 0x80], 0x40
movdqu xmmword [rbp - 0x78], xmm0
call qword [sym.imp.ntdll.dll_NtCreateFile]
test eax, eax
jns 0x140040aa7
mov rdx, rsi
lea rcx, [rbp - 0x58]
call qword [sym.imp.ntdll.dll_RtlInitUnicodeString]
lea rcx, [rbp - 0x58]
call qword [sym.imp.ntdll.dll_NtLoadDriver]
mov ebx, eax
test eax, eax
jns 0x140040a8c
mov r8d, eax
lea rcx, str.Failed_to_load_driver_service__ls._NtLoadDriver:__08X._n
mov rdx, rsi
call fcn.14003fa50
jmp 0x140040bce
movzx edx, r14b
lea rcx, [rsp + 0x60]
call fcn.140040680
test eax, eax
js 0x140040bd0
mov ebx, Ordinal_27
mov rax, qword gs:[0x30]
mov qword [rsp + 0x108], r13
mov r13d, 0x23f0
mov rcx, qword [rax + 0x60]
mov eax, 4
movzx esi, word [rcx + 0x120]
cmp si, r13w
cmovae r14d, eax
movzx eax, byte [rbp - 0x60]
mov byte [rbp - 0x68], al
test rdi, rdi
je 0x140040b45
mov rcx, qword [rsp + 0x60]
lea rax, [rbp - 0x64]
mov dword [rsp + 0x48], r12d
xor r9d, r9d
mov qword [rsp + 0x40], r12
xor r8d, r8d
mov qword [rbp - 0x48], rax
xor edx, edx
mov dword [rsp + 0x38], ebx
lea rax, [rbp - 0x48]
mov qword [rsp + 0x30], rax
lea rax, [rbp - 0x30]
mov dword [rsp + 0x28], 0xc3502808
mov qword [rsp + 0x20], rax
mov dword [rbp - 0x64], r12d
mov qword [rbp - 0x40], r15
mov dword [rbp - 0x38], r14d
call qword [sym.imp.ntdll.dll_NtDeviceIoControlFile]
mov ebx, eax
test eax, eax
jns 0x140040b40
lea rcx, str.NtDeviceIoControlFile_IOCTL_GIO_MEMCPY__READ_failed:_error__08X_n
jmp 0x140040bb4
mov eax, dword [rbp - 0x64]
mov dword [rdi], eax
mov dword [rsp + 0x48], r12d
lea rcx, [rbp - 0x68]
mov qword [rsp + 0x40], r12
lea rax, [rbp - 0x60]
mov dword [rsp + 0x38], Ordinal_27
xorps xmm0, xmm0
cmp si, r13w
mov qword [rbp - 0x48], r15
mov dword [rbp - 0x38], r14d
cmovb rax, rcx
xor r9d, r9d
mov rcx, qword [rsp + 0x60]
xor r8d, r8d
mov qword [rbp - 0x40], rax
xor edx, edx
lea rax, [rbp - 0x48]
mov qword [rsp + 0x30], rax
lea rax, [rbp - 0x30]
mov dword [rsp + 0x28], 0xc3502808
mov qword [rsp + 0x20], rax
movups xmmword [rbp - 0x30], xmm0
call qword [sym.imp.ntdll.dll_NtDeviceIoControlFile]
mov ebx, eax
test eax, eax
jns 0x140040bbb
lea rcx, str.NtDeviceIoControlFile_IOCTL_GIO_MEMCPY__WRITE_failed:_error__08X_n
mov edx, eax
call fcn.14003fa50
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.ntdll.dll_NtClose]
mov r13, qword [rsp + 0x108]
mov eax, ebx
mov rcx, qword [rbp - 0x10]
xor rcx, rsp
call fcn.14012c2b0
add rsp, 0x110
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret