Function at 0x12d14
Capabilities:
Complete processing asynchronous io request

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
sub rsp, 0x40
mov rbx, qword [rdx + 0xb8]
xor r13d, r13d
cmp byte [rdx + 0x43], 1
mov rdi, r13
mov rbp, r8
mov rsi, rdx
mov r12, rcx
jg 0x12d6a
call fcn.00015240
mov rdi, rax
cmp rax, r13
je 0x12d6a
mov rcx, qword [rbx + 0x38]
mov qword [rax], rcx
mov rcx, qword [rbx + 0x40]
mov qword [rax + 8], rcx
mov cl, byte [rbx + 3]
mov byte [rax + 0x10], cl
movzx eax, byte [rbx]
sub eax, 0xe
je 0x12dc6
cmp eax, 1
je 0x12de9
add qword [rsi + 0xb8], 0x48
inc byte [rsi + 0x43]
mov rax, qword [rsi + 0xb8]
cmp rdi, r13
je 0x12da1
lea rcx, [0x000131e4]
mov qword [rax - 8], rdi
mov byte [rax - 0x45], 0xe0
mov qword [rax - 0x10], rcx
mov rdx, rsi
mov rcx, rbp
call qword [sym.imp.ntoskrnl.exe_IofCallDriver]
mov rbx, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x78]
add rsp, 0x40
pop r13
pop r12
pop rdi
ret
mov rax, cr8
cmp al, r13b
jne 0x12ddf
mov r8, rbx
mov rdx, rsi
mov rcx, r12
call fcn.00055462
jmp 0x12de4
mov eax, 0xc0000002
cmp eax, r13d
jne 0x12d77
movzx edx, byte [rbx + 1]
cmp edx, 7
jg 0x130b5
je 0x1301c
sub edx, 1
je 0x12f83
sub edx, 1
je 0x12f52
sub edx, 1
je 0x12edf
sub edx, 2
je 0x12eac
cmp edx, 1
jne 0x12d77
test byte [rbx + 8], 4
je 0x12e4b
mov rcx, qword [rbx + 0x30]
call fcn.000153d0
cmp rax, r13
je 0x12e4b
cmp dword [rax], 2
jne 0x12e4b
mov rcx, qword [rax + 4]
call fcn.000153d0
cmp rdi, r13
je 0x12e5c
lea r8, [0x000134f4]
jmp 0x131a8
mov rdx, qword [rsi + 0xb8]
mov r8d, 0x38
lea rbx, [rdx - 0x48]
mov rcx, rbx
call fcn.000550e0
lea r8, [0x000134f4]
mov byte [rsp + 0x30], 1
xor r9d, r9d
mov rdx, rsi
mov rcx, r12
mov byte [rsp + 0x28], 1
mov byte [rbx + 3], r13b
mov byte [rsp + 0x20], 1
call qword [sym.imp.ntoskrnl.exe_IoSetCompletionRoutineEx]
cmp eax, r13d
jl 0x12d77
jmp 0x12da1
cmp rdi, r13
je 0x12ebd
lea r8, [0x00013574]
jmp 0x131a8
mov rdx, qword [rsi + 0xb8]
mov r8d, 0x38
lea rbx, [rdx - 0x48]
mov rcx, rbx
call fcn.000550e0
lea r8, [0x00013574]
jmp 0x12e7c
mov rdx, rbx
mov rcx, rsi
call fcn.00013298
cmp eax, 1
jne 0x12f1c
xor edx, edx
mov rcx, rsi
mov dword [rsi + 0x30], 0xc0000140
mov qword [rsi + 0x38], r13
call qword [sym.imp.ntoskrnl.exe_IofCompleteRequest]
cmp rdi, r13
je 0x12f12
mov rcx, rdi
call fcn.000152a8
mov eax, 0xc0000140
jmp 0x12dad
cmp rdi, r13
je 0x12f2d
lea r8, [0x00013408]
jmp 0x131a8
mov rdx, qword [rsi + 0xb8]
mov r8d, 0x38
lea rbx, [rdx - 0x48]
mov rcx, rbx
call fcn.000550e0
lea r8, [0x00013408]
jmp 0x12e7c
mov rcx, qword [rbx + 0x30]
call fcn.000153d0
cmp rax, r13
je 0x12d77
cmp dword [rax], 2
jne 0x12d77
mov dword [rax + 0x11], r13d
mov word [rax + 0x15], r13w
mov byte [rax + 0x10], r13b
mov qword [rax + 0x18], r13
jmp 0x12d77
mov rcx, qword [rbx + 8]
lea rax, [rsp + 0x68]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x80000000
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x68], r13
call qword [sym.imp.ntoskrnl.exe_ObReferenceObjectByHandle]
cmp eax, r13d
jne 0x12d77
cmp qword [rsp + 0x68], r13
je 0x12d77
mov rcx, qword [rbx + 0x30]
call fcn.000153d0
mov rbx, rax
cmp rax, r13
je 0x1300c
cmp dword [rax], 2
jne 0x1300c
mov rcx, qword [rsp + 0x68]
call fcn.000153d0
cmp rax, r13
je 0x1300c
cmp dword [rax], 1
jne 0x1300c
mov ecx, dword [rax + 0xc]
mov dword [rbx + 0xc], ecx
mov ecx, dword [rax + 0x11]
mov dword [rbx + 0x11], ecx
movzx ecx, word [rax + 0x15]
mov word [rbx + 0x15], cx
mov cl, byte [rax + 0x10]
mov byte [rbx + 0x10], cl
mov rax, qword [rax + 4]
mov qword [rbx + 0x18], rax
mov rcx, qword [rsp + 0x68]
call qword [sym.imp.ntoskrnl.exe_ObfDereferenceObject]
jmp 0x12d77
mov rdx, rbx
mov rcx, rsi
call fcn.00013790
cmp eax, 1
jne 0x13057
mov ebx, 0xc000000d
mov dword [rsi + 0x30], ebx
xor edx, edx
mov rcx, rsi
mov qword [rsi + 0x38], r13
call qword [sym.imp.ntoskrnl.exe_IofCompleteRequest]
cmp rdi, r13
je 0x13050
mov rcx, rdi
call fcn.000152a8
mov eax, ebx
jmp 0x12dad
cmp eax, 3
jne 0x1307f
xor edx, edx
mov rcx, rsi
mov dword [rsi + 0x30], r13d
call qword [sym.imp.ntoskrnl.exe_IofCompleteRequest]
cmp rdi, r13
je 0x13078
mov rcx, rdi
call fcn.000152a8
xor eax, eax
jmp 0x12dad
cmp rdi, r13
je 0x13090
lea r8, [0x00013d2c]
jmp 0x131a8
mov rdx, qword [rsi + 0xb8]
mov r8d, 0x38
lea rbx, [rdx - 0x48]
mov rcx, rbx
call fcn.000550e0
lea r8, [0x00013d2c]
jmp 0x12e7c
sub edx, 8
je 0x1317a
sub edx, 1
je 0x1313e
sub edx, 1
je 0x130f5
cmp edx, 1
jne 0x12d77
mov rdx, rbx
mov rcx, rsi
call fcn.00013e84
mov ebx, 0xc0000022
cmp eax, ebx
jne 0x12d77
mov dword [rsi + 0x30], 0xc0000140
jmp 0x13034
cmp rdi, r13
je 0x1310a
lea rcx, [0x00013e4c]
mov qword [rdi + 0x18], rcx
jmp 0x131ac
mov rdx, qword [rsi + 0xb8]
mov r8d, 0x38
lea rbx, [rdx - 0x48]
mov rcx, rbx
call fcn.000550e0
mov byte [rbx + 3], r13b
mov rax, qword [rsi + 0xb8]
mov qword [rax - 8], r13
lea rcx, [0x00013e4c]
jmp 0x12d99
mov rcx, qword [rbx + 0x30]
call fcn.000153d0
cmp rdi, r13
je 0x13155
lea r8, [0x00013e4c]
jmp 0x131a8
mov rdx, qword [rsi + 0xb8]
mov r8d, 0x38
lea rbx, [rdx - 0x48]
mov rcx, rbx
call fcn.000550e0
lea r8, [0x00013e4c]
jmp 0x12e7c
mov rcx, qword [rbx + 0x30]
call fcn.000153d0
test byte [rbx + 0xc], 0x80
jne 0x1319c
cmp rax, r13
je 0x1319c
cmp dword [rax], 2
jne 0x1319c
mov rcx, qword [rax + 4]
call fcn.000153d0
cmp rdi, r13
je 0x131b9
lea r8, [0x00013d78]
mov qword [rdi + 0x18], r8
mov qword [rdi + 0x20], r13
mov byte [rdi + 0x28], 0xe0
jmp 0x12d77
mov rdx, qword [rsi + 0xb8]
mov r8d, 0x38
lea rbx, [rdx - 0x48]
mov rcx, rbx
call fcn.000550e0
lea r8, [0x00013d78]
jmp 0x12e7c