Function at 0x15c1c
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 0x15e8c
je 0x15e7d
xor esi, esi
lea ebx, [rsi + 1]
cmp r10d, esi
je 0x15e68
sub r10d, ebx
je 0x15e43
sub r10d, ebx
je 0x15dbc
sub r10d, ebx
je 0x15db5
sub r10d, ebx
je 0x15da0
sub r10d, ebx
je 0x15d8b
sub r10d, ebx
je 0x15d73
sub r10d, ebx
je 0x15d25
cmp r10d, ebx
jne 0x15f3d
mov rcx, qword [rdx + 0xb8]
lea rdx, [0x00012090]
mov rax, qword [rcx + 8]
mov r8, qword [rax]
cmp r8, qword [rdx]
jne 0x15cd0
mov r8, qword [rax + 8]
cmp r8, qword [rdx + 8]
jne 0x15cd0
mov eax, esi
jmp 0x15cd5
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, esi
jne 0x15d1b
cmp word [rcx + 0x10], 0x38
jae 0x15cf0
cmp word [rcx + 0x12], bx
je 0x15cf0
mov esi, 0xc000000d
jmp 0x15f40
mov rax, qword [rcx + 0x18]
lea rcx, [fcn.000107a8]
mov qword [rax + 8], rcx
lea rcx, [0x000107b4]
mov qword [rax + 0x18], r9
mov qword [rax + 0x10], rcx
mov rcx, r9
call fcn.000107a8
jmp 0x15f40
mov esi, dword [r12 + 0x30]
jmp 0x15f40
mov rax, qword [rdx + 0xb8]
cmp dword [rax + 8], 4
jne 0x15f3d
mov edx, 0x10
mov r8d, 0x4d525356
mov ecx, ebx
call qword [sym.imp.ntoskrnl.exe_ExAllocatePoolWithTag]
mov rdi, rax
cmp rax, rsi
je 0x15ef7
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 0x15f40
cmp dword [r9 + 0xc], 2
jne 0x15f40
mov eax, dword [r9 + 0x10]
mov dword [r9 + 0xc], eax
jmp 0x15f40
mov eax, dword [r9 + 0xc]
mov dword [r9 + 0xc], 2
mov dword [r9 + 0x10], eax
jmp 0x15f40
mov eax, dword [r9 + 0xc]
mov dword [r9 + 0xc], 3
mov dword [r9 + 0x10], eax
jmp 0x15f40
cmp dword [r9 + 0xc], 4
jmp 0x15d78
cmp byte [r9 + 0x49], sil
je 0x15e28
mov eax, dword [r9 + 0xc]
mov rbx, qword [r9 + 0x20]
mov dword [r9 + 0xc], 6
mov dword [r9 + 0x10], eax
cmp rbx, rsi
je 0x15e05
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 0x15e1a
xor edx, edx
call qword [sym.imp.ntoskrnl.exe_ExFreePoolWithTag]
mov qword [rbp + 0x28], rsi
mov rcx, r13
call qword [sym.imp.ntoskrnl.exe_IoDeleteDevice]
jmp 0x15f40
cmp byte [r9 + 0x48], sil
je 0x15f40
mov eax, dword [r9 + 0xc]
mov dword [r9 + 0xc], esi
mov dword [r9 + 0x10], eax
jmp 0x15f40
cmp dword [r9 + 0x4c], esi
je 0x15e53
mov esi, 0xc0000001
jmp 0x15f40
mov eax, dword [r9 + 0xc]
mov dword [r9 + 0xc], 4
mov dword [r9 + 0x10], eax
jmp 0x15f40
mov eax, dword [r9 + 0xc]
mov dword [r9 + 0x1c], ebx
mov dword [r9 + 0xc], ebx
mov dword [r9 + 0x10], eax
jmp 0x15f40
mov rcx, r9
call fcn.00015f74
mov esi, eax
jmp 0x15f40
sub r10d, 0xa
je 0x15f3d
mov ebx, 1
sub r10d, ebx
je 0x15f3d
sub r10d, ebx
je 0x15f30
sub r10d, 5
je 0x15f28
sub r10d, 2
je 0x15f1b
sub r10d, 2
je 0x15edd
sub r10d, ebx
je 0x15e49
cmp r10d, ebx
jne 0x15f3d
mov eax, dword [r9 + 0xc]
xor esi, esi
mov dword [r9 + 0xc], 5
mov dword [r9 + 0x10], eax
jmp 0x15f40
mov edx, 0x18
mov r8d, 0x4d525356
mov ecx, ebx
call qword [sym.imp.ntoskrnl.exe_ExAllocatePoolWithTag]
xor esi, esi
cmp rax, rsi
jne 0x15efe
mov esi, 0xc000009a
jmp 0x15f40
movdqu xmm0, xmmword [0x000120a0]
mov dword [rax + 0x10], 0xf
mov dword [rax + 0x14], esi
movdqu xmmword [rax], xmm0
mov qword [r12 + 0x38], rax
jmp 0x15f40
mov rcx, r9
call fcn.00016040
jmp 0x15e85
xor esi, esi
mov byte [r9 + 0x48], sil
jmp 0x15f40
mov rcx, r9
call fcn.000161f0
jmp 0x15e85
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