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 sub.TDI.SYS_TdiMapUserRequest
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