Function at 0x16a14
Capabilities:
Complete processing asynchronous io request

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
sub rsp, 0x20
movzx r10d, byte [r8 + 1]
mov rbp, r9
mov r12, rdx
cmp r10d, 9
mov r13, rcx
jg 0x16c0a
je 0x16bfb
xor esi, esi
lea ebx, [rsi + 1]
cmp r10d, esi
je 0x16be6
sub r10d, ebx
je 0x16bc1
sub r10d, ebx
je 0x16b3c
sub r10d, ebx
je 0x16b35
sub r10d, ebx
je 0x16b20
sub r10d, ebx
je 0x16b0b
sub r10d, ebx
je 0x16af3
sub r10d, ebx
je 0x16aa5
cmp r10d, ebx
jne 0x16cbb
mov rcx, r9
call fcn.00010580
jmp 0x16c03
mov rax, qword [rdx + 0xb8]
cmp dword [rax + 8], 4
jne 0x16cbb
mov edx, 0x10
mov r8d, 0x62735556
mov ecx, ebx
call qword [sym.imp.ntoskrnl.exe_ExAllocatePoolWithTag]
mov rdi, rax
cmp rax, rsi
je 0x16c75
mov dword [rax], ebx
mov rax, qword [rbp]
mov qword [rdi + 8], rax
mov rcx, qword [rbp]
call qword [sym.imp.ntoskrnl.exe_ObfReferenceObject]
mov qword [r12 + 0x38], rdi
jmp 0x16cbe
cmp dword [r9 + 0xc], 2
jne 0x16cbe
mov eax, dword [r9 + 0x10]
mov dword [r9 + 0xc], eax
jmp 0x16cbe
mov eax, dword [r9 + 0xc]
mov dword [r9 + 0xc], 2
mov dword [r9 + 0x10], eax
jmp 0x16cbe
mov eax, dword [r9 + 0xc]
mov dword [r9 + 0xc], 3
mov dword [r9 + 0x10], eax
jmp 0x16cbe
cmp dword [r9 + 0xc], 4
jmp 0x16af8
cmp byte [r9 + 0x49], sil
je 0x16ba6
mov eax, dword [r9 + 0xc]
mov rbx, qword [r9 + 0x20]
mov dword [r9 + 0xc], 6
mov dword [r9 + 0x10], eax
cmp rbx, rsi
je 0x16b85
mov rbx, qword [rbx + 0x40]
lea rcx, [rbx + 0x48]
call qword [sym.imp.ntoskrnl.exe_ExAcquireFastMutex]
mov rax, qword [rbp + 0x40]
mov rdx, qword [rbp + 0x38]
mov qword [rax], rdx
mov qword [rdx + 8], rax
dec dword [rbx + 0x40]
lea rcx, [rbx + 0x48]
call qword [sym.imp.ntoskrnl.exe_ExReleaseFastMutex]
mov rcx, qword [rbp + 0x28]
cmp rcx, rsi
je 0x16b98
call qword [sym.imp.ntoskrnl.exe_ExFreePool]
mov qword [rbp + 0x28], rsi
mov rcx, r13
call qword [sym.imp.ntoskrnl.exe_IoDeleteDevice]
jmp 0x16cbe
cmp byte [r9 + 0x48], sil
je 0x16cbe
mov eax, dword [r9 + 0xc]
mov dword [r9 + 0xc], esi
mov dword [r9 + 0x10], eax
jmp 0x16cbe
cmp dword [r9 + 0x4c], esi
je 0x16bd1
mov esi, 0xc0000001
jmp 0x16cbe
mov eax, dword [r9 + 0xc]
mov dword [r9 + 0xc], 4
mov dword [r9 + 0x10], eax
jmp 0x16cbe
mov eax, dword [r9 + 0xc]
mov dword [r9 + 0x1c], ebx
mov dword [r9 + 0xc], ebx
mov dword [r9 + 0x10], eax
jmp 0x16cbe
mov rcx, r9
call fcn.00016cf0
mov esi, eax
jmp 0x16cbe
sub r10d, 0xa
je 0x16cbb
mov ebx, 1
sub r10d, ebx
je 0x16cbb
sub r10d, ebx
je 0x16cae
sub r10d, 5
je 0x16ca6
sub r10d, 2
je 0x16c99
sub r10d, 2
je 0x16c5b
sub r10d, ebx
je 0x16bc7
cmp r10d, ebx
jne 0x16cbb
mov eax, dword [r9 + 0xc]
xor esi, esi
mov dword [r9 + 0xc], 5
mov dword [r9 + 0x10], eax
jmp 0x16cbe
mov edx, 0x18
mov r8d, 0x62735556
mov ecx, ebx
call qword [sym.imp.ntoskrnl.exe_ExAllocatePoolWithTag]
xor esi, esi
cmp rax, rsi
jne 0x16c7c
mov esi, 0xc000009a
jmp 0x16cbe
movdqu xmm0, xmmword [0x00012d50]
mov dword [rax + 0x10], 0xf
mov dword [rax + 0x14], esi
movdqu xmmword [rax], xmm0
mov qword [r12 + 0x38], rax
jmp 0x16cbe
mov rcx, r9
call fcn.00016dbc
jmp 0x16c03
xor esi, esi
mov byte [r9 + 0x48], sil
jmp 0x16cbe
mov rcx, r9
call fcn.00016ed8
jmp 0x16c03
mov esi, dword [rdx + 0x30]
xor edx, edx
mov rcx, r12
mov dword [r12 + 0x30], esi
call qword [sym.imp.ntoskrnl.exe_IofCompleteRequest]
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
mov eax, esi
mov rsi, qword [rsp + 0x50]
add rsp, 0x20
pop r13
pop r12
pop rdi
ret