Function at 0x1c44c
Capabilities:
Complete processing asynchronous io request

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
mov r13, rcx
mov rcx, r9
mov rsi, r9
mov rdi, r8
mov rbp, rdx
call fcn.0001105c
movzx r11d, byte [rdi + 1]
xor r12d, r12d
cmp r11d, r12d
je 0x1c811
lea ebx, [r12 + 1]
sub r11d, ebx
je 0x1c7e1
sub r11d, ebx
je 0x1c6ea
sub r11d, ebx
je 0x1c6e4
sub r11d, ebx
je 0x1c6ab
sub r11d, ebx
je 0x1c69c
sub r11d, ebx
je 0x1c687
sub r11d, ebx
je 0x1c539
cmp r11d, 0x10
jne 0x1c7f2
mov eax, dword [rsi + 0xc]
mov rcx, rsi
mov dword [rsi + 0xc], 5
mov dword [rsi + 0x10], eax
call fcn.0001c8f4
lea rcx, [rsi + 0x48]
call qword [sym.imp.ntoskrnl.exe_ExAcquireFastMutex]
lea r11, [rsi + 0x30]
mov r9, qword [r11]
mov r10, qword [r9]
jmp 0x1c525
mov rax, qword [r9 + 8]
mov rdx, qword [r9]
mov qword [rax], rdx
mov qword [rdx + 8], rax
mov qword [r9 + 8], r9
mov qword [r9], r9
mov qword [r9 - 0x18], r12
mov byte [r9 + 0x11], bl
mov r9, r10
mov r10, qword [r10]
cmp r9, r11
jne 0x1c502
lea rcx, [rsi + 0x48]
call qword [sym.imp.ntoskrnl.exe_ExReleaseFastMutex]
jmp 0x1c7ee
cmp dword [rdi + 8], r12d
jne 0x1c7f2
mov rax, qword [r13 + 0x40]
cmp dword [rax + 0xc8], r12d
jle 0x1c560
lock add dword [rax + 0xc8], 0xffffffff
mov rcx, r13
call fcn.00021684
lea rcx, [rsi + 0x48]
call qword [sym.imp.ntoskrnl.exe_ExAcquireFastMutex]
mov r14, qword [rbp + 0x38]
cmp r14, r12
je 0x1c58b
mov r13d, dword [r14]
cmp dword [rsi + 0x40], r12d
jne 0x1c58e
lea rcx, [rsi + 0x48]
call qword [sym.imp.ntoskrnl.exe_ExReleaseFastMutex]
jmp 0x1c7f2
mov r13d, r12d
mov ecx, r12d
lea r12, [rsi + 0x30]
mov rax, qword [r12]
jmp 0x1c5a6
cmp byte [rax + 0x10], 0
je 0x1c5a3
add ecx, ebx
mov rax, qword [rax]
cmp rax, r12
jne 0x1c59b
lea edi, [rcx + r13]
mov r8d, 0x4d525356
mov ecx, ebx
lea edx, [rdi*8 + 0xf]
call qword [sym.imp.ntoskrnl.exe_ExAllocatePoolWithTag]
mov qword [rsp + 0x90], rax
test rax, rax
jne 0x1c5fb
lea rcx, [rsi + 0x48]
call qword [sym.imp.ntoskrnl.exe_ExReleaseFastMutex]
mov ebx, 0xc000009a
xor edx, edx
mov rcx, rbp
mov dword [rbp + 0x30], ebx
call qword [sym.imp.ntoskrnl.exe_IofCompleteRequest]
mov rcx, rsi
call fcn.0001108c
jmp 0x1c7da
test r13d, r13d
je 0x1c61c
mov r8d, r13d
lea rdx, [r14 + 8]
lea rcx, [rax + 8]
shl r8, 3
call fcn.00015fc0
mov rax, qword [rsp + 0x90]
mov dword [rax], edi
mov rdi, qword [r12]
movsxd rcx, r13d
cmp rdi, r12
je 0x1c658
lea r13, [rax + rcx*8 + 8]
cmp byte [rdi + 0x10], 0
je 0x1c64d
mov rax, qword [rdi - 0x38]
mov qword [r13], rax
mov rcx, qword [rdi - 0x38]
call qword [sym.imp.ntoskrnl.exe_ObfReferenceObject]
add r13, 8
jmp 0x1c650
mov byte [rdi + 0x11], bl
mov rdi, qword [rdi]
cmp rdi, r12
jne 0x1c62f
test r14, r14
je 0x1c668
xor edx, edx
mov rcx, r14
call qword [sym.imp.ntoskrnl.exe_ExFreePoolWithTag]
mov rax, qword [rsp + 0x90]
lea rcx, [rsi + 0x48]
mov qword [rbp + 0x38], rax
call qword [sym.imp.ntoskrnl.exe_ExReleaseFastMutex]
and dword [rbp + 0x30], 0
jmp 0x1c7f2
cmp dword [rsi + 0xc], 2
jne 0x1c7ee
mov eax, dword [rsi + 0x10]
mov dword [rsi + 0xc], eax
jmp 0x1c7ee
mov eax, dword [rsi + 0xc]
mov dword [rsi + 0xc], 2
jmp 0x1c7eb
mov rcx, rsi
call fcn.0001108c
lea rcx, [rsi + 0xa0]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov qword [rsp + 0x20], r12
call qword [sym.imp.ntoskrnl.exe_KeWaitForSingleObject]
mov rcx, rsi
call fcn.0001105c
mov eax, dword [rsi + 0xc]
mov dword [rsi + 0xc], 3
jmp 0x1c7eb
cmp dword [rsi + 0xc], 4
jmp 0x1c68b
cmp dword [rsi + 0xc], 5
je 0x1c6f8
mov rcx, rsi
call fcn.0001c8f4
mov eax, dword [rsi + 0xc]
mov rcx, rsi
mov dword [rsi + 0xc], 6
mov dword [rsi + 0x10], eax
call fcn.0001108c
mov rcx, rsi
call fcn.0001108c
lea rcx, [rsi + 0x88]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov qword [rsp + 0x20], r12
call qword [sym.imp.ntoskrnl.exe_KeWaitForSingleObject]
lea rcx, [rsi + 0x48]
call qword [sym.imp.ntoskrnl.exe_ExAcquireFastMutex]
lea r15, [rsi + 0x30]
mov rdi, qword [r15]
mov r12, qword [rdi]
jmp 0x1c79a
mov rax, qword [rdi + 8]
mov rcx, qword [rdi]
mov rdx, rdi
mov qword [rax], rcx
mov qword [rcx + 8], rax
cmp dword [rdi - 0x2c], 5
jne 0x1c76d
mov qword [rdi + 8], rdx
mov qword [rdi], rdx
and qword [rdi - 0x18], 0
mov byte [rdi + 0x11], bl
jmp 0x1c793
dec dword [rsi + 0x40]
mov rcx, qword [rdi - 0x10]
mov r14, qword [rdi - 0x38]
test rcx, rcx
je 0x1c78a
xor edx, edx
call qword [sym.imp.ntoskrnl.exe_ExFreePoolWithTag]
and qword [rdi - 0x10], 0
mov rcx, r14
call qword [sym.imp.ntoskrnl.exe_IoDeleteDevice]
mov rdi, r12
mov r12, qword [r12]
cmp rdi, r15
jne 0x1c745
lea rcx, [rsi + 0x48]
call qword [sym.imp.ntoskrnl.exe_ExReleaseFastMutex]
and dword [rbp + 0x30], 0
add byte [rbp + 0x43], bl
add qword [rbp + 0xb8], 0x48
mov rcx, qword [rsi + 0x28]
mov rdx, rbp
call qword [sym.imp.ntoskrnl.exe_IofCallDriver]
mov rcx, qword [rsi + 0x28]
mov ebx, eax
call qword [sym.imp.ntoskrnl.exe_IoDetachDevice]
mov rcx, r13
call qword [sym.imp.ntoskrnl.exe_IoDeleteDevice]
mov eax, ebx
jmp 0x1c8d0
mov eax, dword [rsi + 0xc]
mov dword [rsi + 0xc], 4
mov dword [rsi + 0x10], eax
mov dword [rbp + 0x30], r12d
add byte [rbp + 0x43], bl
add qword [rbp + 0xb8], 0x48
mov rcx, qword [rsi + 0x28]
mov rdx, rbp
call qword [sym.imp.ntoskrnl.exe_IofCallDriver]
mov ebx, eax
jmp 0x1c5ee
mov rdi, qword [rsi + 0x28]
lea rcx, [rsp + 0x30]
xor r8d, r8d
xor edx, edx
call qword [sym.imp.ntoskrnl.exe_KeInitializeEvent]
mov rdx, qword [rbp + 0xb8]
mov r8d, 0x38
lea rbx, [rdx - 0x48]
mov rcx, rbx
call fcn.00015fc0
mov byte [rbx + 3], r12b
mov rax, qword [rbp + 0xb8]
lea rcx, [0x000110e4]
mov rdx, rbp
mov byte [rax - 0x45], 0xe0
mov qword [rax - 0x10], rcx
lea rcx, [rsp + 0x30]
mov qword [rax - 8], rcx
mov rcx, rdi
call qword [sym.imp.ntoskrnl.exe_IofCallDriver]
mov edi, eax
cmp eax, 0x103
jne 0x1c891
lea rcx, [rsp + 0x30]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov qword [rsp + 0x20], r12
call qword [sym.imp.ntoskrnl.exe_KeWaitForSingleObject]
mov edi, dword [rbp + 0x30]
cmp edi, r12d
jl 0x1c8b8
mov ebx, 1
lea rcx, [rsi + 0xb8]
mov dl, bl
call qword [sym.imp.ntoskrnl.exe_IoSetDeviceInterfaceState]
mov ecx, dword [rsi + 0xc]
mov dword [rsi + 0x1c], ebx
mov dword [rsi + 0x10], ecx
mov edi, eax
mov dword [rsi + 0xc], ebx
xor edx, edx
mov rcx, rbp
mov dword [rbp + 0x30], edi
call qword [sym.imp.ntoskrnl.exe_IofCompleteRequest]
mov rcx, rsi
call fcn.0001108c
mov eax, edi
lea r11, [rsp + 0x50]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret