Function at 0x140002120
Capabilities:
Create device object

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
mov qword [rax + 0x20], rsi
push rdi
sub rsp, 0x40
mov rbx, rcx
lea rdi, [rcx + 0x70]
xor esi, esi
mov qword [rax + 8], rsi
lea rax, [0x1400017e0]
mov qword [rcx + 0x68], rax
lea rax, [0x1400017b0]
lea ecx, [rsi + 0x1c]
rep stosq qword [rdi], rax
lea rax, [0x1400016e0]
mov qword [rbx + 0xe0], rax
call fcn.14000108c
test eax, eax
js 0x14000238a
call fcn.140002458
test al, al
je 0x14000238a
lea rdx, [0x140002da0]
lea rcx, [0x140006688]
call qword [sym.imp.ntoskrnl.exe_RtlInitUnicodeString]
lea rbp, [0x140006698]
mov rcx, rbp
lea rdx, [0x140002dc0]
call qword [sym.imp.ntoskrnl.exe_RtlInitUnicodeString]
lea rax, [rsp + 0x50]
xor edx, edx
mov qword [rsp + 0x30], rax
lea r9d, [rsi + 0x22]
mov byte [rsp + 0x28], sil
lea r8, [0x140006688]
mov rcx, rbx
mov dword [rsp + 0x20], 0x100
call qword [sym.imp.ntoskrnl.exe_IoCreateDevice]
mov edi, eax
test eax, eax
js 0x1400021ee
mov rax, qword [rsp + 0x50]
test rax, rax
jne 0x1400021fa
mov edi, 0xc00000e9
call fcn.140001000
mov eax, edi
jmp 0x14000238f
or dword [rax + 0x30], 4
lea rdx, [0x140006688]
mov rax, qword [rsp + 0x50]
mov rcx, rbp
btr dword [rax + 0x30], 7
call qword [sym.imp.ntoskrnl.exe_IoCreateSymbolicLink]
mov edi, eax
test eax, eax
jns 0x14000222f
call fcn.140001000
mov rcx, qword [rbx + 8]
call qword [sym.imp.ntoskrnl.exe_IoDeleteDevice]
jmp 0x1400021f3
lea rax, [0x1400064c0]
lea rcx, [0x140006500]
mov qword [0x1400064c8], rax
mov qword [0x1400064c0], rax
call qword [sym.imp.ntoskrnl.exe_ExInitializeResourceLite]
mov word [rsp + 0x30], si
lea rcx, [0x140006580]
mov dword [rsp + 0x28], 0x6c6a6e69
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x20], 0x20
xor edx, edx
call qword [sym.imp.ntoskrnl.exe_ExInitializeNPagedLookasideList]
mov word [rsp + 0x30], si
lea rcx, [0x140006600]
mov dword [rsp + 0x28], 0x646a6e69
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x20], 0x18
xor edx, edx
call qword [sym.imp.ntoskrnl.exe_ExInitializeNPagedLookasideList]
xorps xmm0, xmm0
lea rcx, [0x140002df0]
movups xmmword [0x1400064e0], xmm0
movups xmmword [0x1400064f0], xmm0
call fcn.1400013f4
lea rcx, [0x140002e10]
mov qword [0x140006568], rax
call fcn.1400013f4
lea rcx, [0x140002e30]
mov qword [0x140006570], rax
call fcn.1400013f4
lea rcx, [0x140002e50]
mov qword [0x140006578], rax
call fcn.1400013f4
cmp qword [0x140006568], rsi
mov qword [0x140006680], rax
je 0x140002372
cmp qword [0x140006570], rsi
je 0x140002372
cmp qword [0x140006578], rsi
je 0x140002372
test rax, rax
je 0x140002372
lea rcx, [0x140001d90]
call qword [sym.imp.ntoskrnl.exe_PsSetLoadImageNotifyRoutine]
mov edi, eax
test eax, eax
jns 0x14000234a
call fcn.140001000
mov rcx, rbp
call qword [sym.imp.ntoskrnl.exe_IoDeleteSymbolicLink]
jmp 0x140002223
xor edx, edx
lea rcx, [0x1400015e0]
call qword [sym.imp.ntoskrnl.exe_PsSetCreateProcessNotifyRoutine]
mov edi, eax
test eax, eax
jns 0x14000236e
lea rcx, [0x140001d90]
call qword [sym.imp.ntoskrnl.exe_PsRemoveLoadImageNotifyRoutine]
jmp 0x140002337
xor eax, eax
jmp 0x14000238f
call fcn.140001000
mov rcx, rbp
call qword [sym.imp.ntoskrnl.exe_IoDeleteSymbolicLink]
mov rcx, qword [rbx + 8]
call qword [sym.imp.ntoskrnl.exe_IoDeleteDevice]
mov eax, 0xc0000001
mov rbx, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x68]
add rsp, 0x40
pop rdi
ret