Function at 0x136ec
Capabilities:
Create device object

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x118
xor r15d, r15d
mov r12, rdx
mov rsi, rcx
lea eax, [r15 + 4]
mov qword [rsp + 0x40], r15
lea r13d, [r15 + 0x7a]
lea edi, [rax + 0x3d]
mov dword [rsp + 0x50], eax
mov dword [rsp + 0x60], eax
movzx r14d, di
mov word [rsp + 0x170], di
mov qword [0x0002aca8], rcx
call fcn.00022934
call fcn.00012eac
movzx ebx, di
lea rdi, [0x00028830]
lea rcx, [rsp + 0x78]
mov qword [rsp + 0x58], r15
mov rdx, rdi
mov qword [rsp + 0x48], r15
movzx ebp, r13w
call qword [sym.imp.ntoskrnl.exe_RtlInitUnicodeString]
mov edx, r15d
lea ecx, [r15 + 1]
cmp r15w, word [0x00028830]
je 0x1378d
mov rax, rdi
add rax, 2
add edx, ecx
cmp r15w, word [rax]
jne 0x13781
movsxd rdi, edx
lea r9, [rsp + 0x48]
lea r8, [rsp + 0x58]
lea rcx, [rsp + 0x78]
mov edx, 0x80
call qword [sym.imp.ntoskrnl.exe_IoGetDeviceObjectPointer]
cmp eax, r15d
jge 0x13845
mov r14d, 1
lea r13, [0x00028830]
mov r12d, 0xffff
lea esi, [r14 + 0x40]
movzx eax, bx
sub ax, si
cmp ax, 0x19
ja 0x13826
lea eax, [rbp - 0x61]
cmp ax, 0x19
ja 0x13826
lea rcx, [rsp + 0x78]
mov rdx, r13
mov word [r13 + rdi*2], bx
mov word [r13 + rdi*2 + 2], bp
mov word [r13 + rdi*2 + 4], r15w
call qword [sym.imp.ntoskrnl.exe_RtlInitUnicodeString]
lea r9, [rsp + 0x48]
lea r8, [rsp + 0x58]
lea rcx, [rsp + 0x78]
mov edx, 0x80
add bx, r14w
add bp, r12w
call qword [sym.imp.ntoskrnl.exe_IoGetDeviceObjectPointer]
cmp eax, r15d
jl 0x137ca
mov rsi, qword [rsp + 0x160]
mov r12, qword [rsp + 0x168]
mov r14w, word [rsp + 0x170]
mov r13d, 0x7a
mov rcx, qword [rsp + 0x58]
lea rax, [0x00028830]
mov word [rax + rdi*2], r15w
mov word [rax + rdi*2 + 2], r15w
mov word [rax + rdi*2 + 4], r15w
cmp rcx, r15
je 0x1386d
call qword [sym.imp.ntoskrnl.exe_ObfDereferenceObject]
mov rax, qword [rsp + 0x48]
cmp rax, r15
je 0x138b6
mov rcx, qword [rax + 0x40]
cmp rcx, r15
je 0x13888
cmp dword [rcx], 0x48524445
je 0x138b6
lea rdx, [0x000288b0]
lea rcx, [rsp + 0xf8]
call qword [sym.imp.ntoskrnl.exe_RtlInitUnicodeString]
lea rcx, [rsp + 0xf8]
call qword [sym.imp.ntoskrnl.exe_IoDeleteSymbolicLink]
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.ntoskrnl.exe_IoDeleteDevice]
lea rdx, [0x00024400]
lea rcx, [rsp + 0x88]
call qword [sym.imp.ntoskrnl.exe_RtlInitUnicodeString]
lea rdx, [rsp + 0x60]
lea r9, [rsp + 0x178]
mov qword [rsp + 0x20], rdx
lea r8, [rsp + 0x50]
lea rdx, [rsp + 0x88]
mov rcx, r12
call fcn.000129a8
mov ebp, 1
cmp eax, r15d
jne 0x1392d
cmp dword [rsp + 0x178], ebp
je 0x1392d
lea r8d, [rbp + 3]
lea r9, [rsp + 0x178]
lea rdx, [rsp + 0x88]
mov rcx, r12
mov dword [rsp + 0x178], ebp
mov dword [rsp + 0x20], r8d
call fcn.000128dc
mov rcx, rsi
call fcn.00012bec
lea rcx, [0x0002daf0]
mov r8b, bpl
mov rdx, r12
call qword [sym.imp.ntoskrnl.exe_RtlUpcaseUnicodeString]
lea r12, [0x00028830]
lea rcx, [rsp + 0x68]
mov rdx, r12
call qword [sym.imp.ntoskrnl.exe_RtlInitUnicodeString]
mov edi, r15d
cmp r15w, word [0x00028830]
je 0x13979
mov rax, r12
add rax, 2
add edi, ebp
cmp r15w, word [rax]
jne 0x1396d
mov r9d, 0x22
lea rax, [rsp + 0x40]
lea r8, [rsp + 0x68]
mov qword [rsp + 0x30], rax
lea edx, [r9 - 0x12]
mov rcx, rsi
mov byte [rsp + 0x28], r15b
mov dword [rsp + 0x20], r15d
call qword [sym.imp.ntoskrnl.exe_IoCreateDevice]
cmp eax, r15d
mov ebx, eax
movsxd rdi, edi
jge 0x13a42
mov rcx, qword [rsp + 0x40]
cmp rcx, r15
je 0x139c3
call qword [sym.imp.ntoskrnl.exe_IoDeleteDevice]
lea eax, [r14 - 0x41]
cmp ax, 0x19
ja 0x13c4d
lea eax, [r13 - 0x61]
cmp ax, 0x19
ja 0x13c4d
lea rcx, [rsp + 0x68]
mov rdx, r12
mov word [r12 + rdi*2], r14w
mov word [r12 + rdi*2 + 2], r13w
mov word [r12 + rdi*2 + 4], r15w
call qword [sym.imp.ntoskrnl.exe_RtlInitUnicodeString]
mov r9d, 0x22
lea r11, [rsp + 0x40]
lea r8, [rsp + 0x68]
mov qword [rsp + 0x30], r11
lea edx, [r9 - 0x12]
mov rcx, rsi
mov byte [rsp + 0x28], r15b
mov dword [rsp + 0x20], r15d
call qword [sym.imp.ntoskrnl.exe_IoCreateDevice]
mov ebx, eax
mov eax, 0xffff
add r14w, bp
add r13w, ax
cmp ebx, r15d
jl 0x139b3
mov rax, qword [rsp + 0x40]
lea rdx, [0x000288b0]
mov rcx, qword [rax + 0x40]
mov dword [rcx], 0x48524445
mov rax, qword [rsp + 0x40]
mov qword [rcx + 8], rax
lea rcx, [rsp + 0xc8]
call qword [sym.imp.ntoskrnl.exe_RtlInitUnicodeString]
lea rdx, [rsp + 0x68]
lea rcx, [rsp + 0xc8]
call qword [sym.imp.ntoskrnl.exe_IoCreateSymbolicLink]
lea rdi, [rsi + 0x70]
mov ecx, 0x1b
mov ebx, eax
cmp eax, r15d
lea rax, [0x00013c6c]
rep stosq qword [rdi], rax
lea rax, [fcn.00013f08]
cmovl ebx, r15d
mov qword [rsi + 0x68], rax
call fcn.000145ec
mov rcx, rsi
mov qword [0x0002dae0], r15
mov qword [0x0002acd8], r15
mov qword [0x0002ace0], r15
call fcn.00014f00
mov rcx, rsi
call fcn.0001f6b0
cmp byte [0x00029bd4], r15b
jne 0x13b52
cmp dword [0x0002ada8], r15d
jne 0x13b52
mov r8d, dword [0x0002adb0]
mov edx, dword [0x0002adb4]
mov ecx, ebp
call fcn.000220dc
lea rdx, [0x00028930]
lea rcx, [rsp + 0xd8]
mov dword [0x0002ac98], r15d
call qword [sym.imp.ntoskrnl.exe_RtlInitUnicodeString]
lea rdx, [0x00028b30]
lea rcx, [rsp + 0xe8]
call qword [sym.imp.ntoskrnl.exe_RtlInitUnicodeString]
mov eax, 4
lea r9, [0x0002ac98]
lea rdx, [rsp + 0xe8]
lea rcx, [rsp + 0xd8]
mov r8d, eax
mov dword [rsp + 0x20], eax
call fcn.000128dc
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ntoskrnl.exe_IoRegisterShutdownNotification]
mov qword [rsp + 0x160], r15
lea rcx, [0x0002cdb8]
xor r8d, r8d
mov edx, ebp
mov dword [0x0002cda0], ebp
mov qword [0x0002cda8], r15
mov dword [0x0002cdb0], r15d
call qword [sym.imp.ntoskrnl.exe_KeInitializeEvent]
lea rcx, [0x0002ce20]
xor r8d, r8d
mov edx, ebp
call qword [sym.imp.ntoskrnl.exe_KeInitializeEvent]
lea rax, [0x000225fc]
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x28], rax
mov edi, 0x1fffff
lea r8, [rsp + 0x98]
lea rcx, [rsp + 0x160]
xor r9d, r9d
mov edx, edi
mov qword [rsp + 0x20], r15
mov dword [rsp + 0x98], 0x30
mov qword [rsp + 0xa0], r15
mov dword [rsp + 0xb0], 0x200
mov qword [rsp + 0xa8], r15
mov qword [rsp + 0xb8], r15
mov qword [rsp + 0xc0], r15
call qword [sym.imp.ntoskrnl.exe_PsCreateSystemThread]
cmp eax, r15d
jl 0x13c43
mov rcx, qword [rsp + 0x160]
lea rax, [0x0002ce38]
xor r9d, r9d
xor r8d, r8d
mov edx, edi
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], rax
call qword [sym.imp.ntoskrnl.exe_ObReferenceObjectByHandle]
mov rcx, qword [rsp + 0x160]
call qword [sym.imp.ntoskrnl.exe_ZwClose]
mov rcx, qword [rsp + 0x40]
btr dword [rcx + 0x30], 7
mov eax, ebx
add rsp, 0x118
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret