Function at 0x140112950
Capabilities:
Install driver
Unload driver

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push r12
push r14
push r15
lea rbp, [rsp - 8]
sub rsp, 0x108
xor esi, esi
mov dword [rsp + 0x60], 0x180016
mov dword [rsp + 0x50], esi
lea rax, [rsp + 0x60]
mov qword [rsp + 0x48], rsi
lea r15, str.DeviceGIO
mov dword [rsp + 0x40], 0x60
lea r9, [rbp - 0x38]
mov dword [rsp + 0x38], 1
lea r8, [rsp + 0x70]
mov dword [rsp + 0x30], 7
lea rcx, [rbp + 0x48]
xorps xmm0, xmm0
mov dword [rsp + 0x28], 0x80
mov edx, 0x100000
mov qword [rsp + 0x20], rsi
mov r14d, 0x18
mov qword [rsp + 0x68], r15
mov dword [rsp + 0x70], 0x30
mov qword [rsp + 0x78], rsi
mov qword [rbp - 0x80], rax
mov dword [rbp - 0x78], 0x40
movdqu xmmword [rbp - 0x70], xmm0
call qword [sym.imp.ntdll.dll_NtCreateFile]
test eax, eax
jns 0x140112ad3
lea rdx, [0x14016bfe0]
lea rcx, [rsp + 0x60]
call qword [sym.imp.ntdll.dll_RtlInitUnicodeString]
lea rcx, [rsp + 0x60]
call qword [sym.imp.ntdll.dll_NtLoadDriver]
mov ebx, eax
test eax, eax
jns 0x140112a3c
mov r8d, eax
lea rdx, [0x14016bfe0]
lea rcx, str.Failed_to_load_driver_service__ls._NtLoadDriver:__08X._n
call fcn.1401124f0
jmp 0x140112d71
mov dword [rsp + 0x50], esi
lea rax, [rsp + 0x60]
mov qword [rsp + 0x48], rsi
lea r9, [rbp - 0x38]
mov dword [rsp + 0x40], 0x60
lea r8, [rsp + 0x70]
mov dword [rsp + 0x38], 1
lea rcx, [rbp + 0x48]
mov dword [rsp + 0x30], 7
xorps xmm0, xmm0
mov dword [rsp + 0x28], 0x80
mov edx, 0x100000
mov qword [rsp + 0x20], rsi
mov dword [rsp + 0x60], 0x180016
mov qword [rsp + 0x68], r15
mov dword [rsp + 0x70], 0x30
mov qword [rsp + 0x78], rsi
mov qword [rbp - 0x80], rax
mov dword [rbp - 0x78], 0x40
movdqu xmmword [rbp - 0x70], xmm0
call qword [sym.imp.ntdll.dll_NtCreateFile]
mov ebx, eax
test eax, eax
jns 0x140112ad3
mov r8d, eax
lea rdx, [rsp + 0x60]
lea rcx, str.Failed_to_obtain_handle_to_device__wZ:_NtCreateFile:__08X._n
call fcn.1401124f0
jmp 0x140112d71
lea rcx, [rbp - 0x38]
mov qword [rsp + 0x100], rdi
call fcn.140112560
lea rcx, str.____Where:__p_n
mov rdi, qword [rax]
mov rbx, qword [rax + 8]
mov rdx, rdi
call fcn.1401124f0
mov rdx, rbx
lea rcx, str.____What_:__p_n
call fcn.1401124f0
mov rcx, qword [rbp + 0x48]
lea rax, [rbp + 0x40]
mov dword [rsp + 0x48], esi
xorps xmm0, xmm0
mov qword [rsp + 0x40], rsi
xor r9d, r9d
mov qword [rbp - 0x28], rax
xor r8d, r8d
mov dword [rsp + 0x38], r14d
lea rax, [rbp - 0x28]
mov qword [rsp + 0x30], rax
xor edx, edx
lea rax, [rbp - 0x10]
mov dword [rsp + 0x28], 0xc3502808
mov qword [rsp + 0x20], rax
mov qword [rbp + 0x40], rsi
mov qword [rbp - 0x20], rdi
mov dword [rbp - 0x18], 8
movups xmmword [rbp - 0x10], xmm0
call qword [sym.imp.ntdll.dll_NtDeviceIoControlFile]
test eax, eax
jns 0x140112b73
mov edx, eax
lea rcx, str.NtDeviceIoControlFile_IOCTL_GIO_MEMCPY__WRITE_failed:_error__08X_n
call fcn.1401124f0
mov rdx, qword [rbp + 0x40]
lea rcx, str.___Original_Callback_:__p_n
call fcn.1401124f0
mov rcx, qword [rbp + 0x48]
lea rax, [rbp + 0x50]
mov dword [rsp + 0x48], esi
xorps xmm0, xmm0
mov qword [rsp + 0x40], rsi
xor r9d, r9d
mov qword [rbp - 0x58], rax
xor r8d, r8d
mov dword [rsp + 0x38], r14d
lea rax, [rbp - 0x60]
mov qword [rsp + 0x30], rax
xor edx, edx
lea rax, [rbp - 0x48]
mov dword [rsp + 0x28], 0xc3502808
mov qword [rsp + 0x20], rax
mov qword [rbp + 0x50], rbx
mov qword [rbp - 0x60], rdi
mov dword [rbp - 0x50], 8
movups xmmword [rbp - 0x48], xmm0
call qword [sym.imp.ntdll.dll_NtDeviceIoControlFile]
test eax, eax
jns 0x140112bed
mov edx, eax
lea rcx, str.NtDeviceIoControlFile_IOCTL_GIO_MEMCPY__WRITE_failed:_error__08X_n
call fcn.1401124f0
lea rdx, [0x14016bdd0]
lea rcx, [rsp + 0x60]
call qword [sym.imp.ntdll.dll_RtlInitUnicodeString]
lea rcx, [rsp + 0x60]
call qword [sym.imp.ntdll.dll_NtLoadDriver]
mov ebx, eax
test eax, eax
jns 0x140112c2b
mov r8d, eax
lea rdx, [0x14016bdd0]
lea rcx, str.Failed_to_load_driver_service__ls._NtLoadDriver:__08X._n
call fcn.1401124f0
jmp 0x140112d69
mov dword [rsp + 0x50], esi
lea rax, [rsp + 0x60]
mov qword [rsp + 0x48], rsi
lea r9, [rbp - 0x38]
mov dword [rsp + 0x40], 0x60
lea r8, [rsp + 0x70]
mov dword [rsp + 0x38], 1
lea rcx, [rbp + 0x48]
mov dword [rsp + 0x30], 7
xorps xmm0, xmm0
mov dword [rsp + 0x28], 0x80
mov edx, 0x100000
mov qword [rsp + 0x20], rsi
mov dword [rsp + 0x60], 0x180016
mov qword [rsp + 0x68], r15
mov dword [rsp + 0x70], 0x30
mov qword [rsp + 0x78], rsi
mov qword [rbp - 0x80], rax
mov dword [rbp - 0x78], 0x40
movdqu xmmword [rbp - 0x70], xmm0
call qword [sym.imp.ntdll.dll_NtCreateFile]
mov ebx, eax
test eax, eax
jns 0x140112cc2
mov r8d, eax
lea rdx, [rsp + 0x60]
lea rcx, str.Failed_to_obtain_handle_to_device__wZ:_NtCreateFile:__08X._n
call fcn.1401124f0
jmp 0x140112d69
lea rcx, str.___Successfully_Loaded_unsigned_driver__n
call fcn.1401124f0
mov rcx, qword [rbp + 0x48]
lea rax, [rbp + 0x40]
mov dword [rsp + 0x48], esi
xorps xmm0, xmm0
mov qword [rsp + 0x40], rsi
xor r9d, r9d
mov qword [rbp - 0x58], rax
xor r8d, r8d
mov dword [rsp + 0x38], r14d
lea rax, [rbp - 0x60]
mov qword [rsp + 0x30], rax
xor edx, edx
lea rax, [rbp - 0x48]
mov dword [rsp + 0x28], 0xc3502808
mov qword [rsp + 0x20], rax
mov qword [rbp - 0x60], rdi
mov dword [rbp - 0x50], 8
movups xmmword [rbp - 0x48], xmm0
call qword [sym.imp.ntdll.dll_NtDeviceIoControlFile]
mov ebx, eax
test eax, eax
jns 0x140112d36
mov edx, eax
lea rcx, str.NtDeviceIoControlFile_IOCTL_GIO_MEMCPY__WRITE_failed:_error__08X_n
call fcn.1401124f0
lea rcx, str.___Restored_callback__n
call fcn.1401124f0
lea rdx, [0x14016bfe0]
lea rcx, [rsp + 0x60]
call qword [sym.imp.ntdll.dll_RtlInitUnicodeString]
lea rcx, [rsp + 0x60]
call qword [sym.imp.ntdll.dll_NtUnloadDriver]
mov rcx, qword [rbp + 0x48]
call qword [sym.imp.ntdll.dll_NtClose]
mov rdi, qword [rsp + 0x100]
mov eax, ebx
add rsp, 0x108
pop r15
pop r14
pop r12
pop rsi
pop rbx
pop rbp
ret