Function at 0x13140
Capabilities:
Complete processing asynchronous io request

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x60
mov rsi, qword [rdx + 0xb8]
mov rdi, rdx
mov rbp, rcx
cmp byte [rsi + 1], 1
mov qword [rsp + 0x38], rsi
jne 0x13483
mov eax, dword [rsi + 0x18]
test eax, eax
jle 0x13483
cmp eax, 3
jle 0x13191
add eax, 0xffffffdb
cmp eax, 1
ja 0x13483
mov rdx, qword [rsi + 0x30]
test rdx, rdx
jne 0x131b0
inc byte [rdi + 0x43]
lea rax, [rsi + 0x48]
mov rdx, rdi
mov qword [rdi + 0xb8], rax
jmp 0x13491
lea rax, [rcx + 0x70]
mov r14, rax
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x131e9
mov r8, qword [rdx + 0x18]
cmp qword [rcx + 0x20], r8
jb 0x131d3
mov r14, rcx
mov rcx, qword [rcx + 0x10]
jmp 0x131d7
mov rcx, qword [rcx + 0x18]
test rcx, rcx
jne 0x131c4
cmp r14, rax
je 0x131ee
cmp r8, qword [r14 + 0x20]
cmovb r14, rax
cmp r14, rax
jne 0x13208
inc byte [rdi + 0x43]
lea rax, [rsi + 0x48]
mov rdx, rdi
mov qword [rdi + 0xb8], rax
mov rcx, qword [rbp + 0x48]
jmp 0x13495
lea rcx, [rsi - 0x48]
mov rdx, rsi
mov r8d, 0x38
call fcn.00021e50
lea rcx, [rsp + 0x40]
xor r8d, r8d
xor edx, edx
mov byte [rsi - 0x45], 0
call qword [sym.imp.ntoskrnl.exe_KeInitializeEvent]
mov r11, qword [rdi + 0xb8]
lea rax, [0x000134bc]
mov qword [r11 - 0x10], rax
lea rax, [rsp + 0x40]
mov byte [r11 - 0x45], 0xe0
mov qword [r11 - 8], rax
mov rcx, qword [rbp + 0x48]
mov rdx, rdi
call qword [sym.imp.ntoskrnl.exe_IofCallDriver]
mov ebx, eax
cmp eax, 0x103
jne 0x1327f
and qword [rsp + 0x20], 0
lea rcx, [rsp + 0x40]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
call qword [sym.imp.ntoskrnl.exe_KeWaitForSingleObject]
mov ebx, eax
test ebx, ebx
je 0x13295
xor edx, edx
mov rcx, rdi
call qword [sym.imp.ntoskrnl.exe_IofCompleteRequest]
mov eax, ebx
jmp 0x1349b
mov rbx, qword [rdi + 0x70]
mov qword [rsp + 0xb8], rbx
test rbx, rbx
je 0x13474
movabs r9, 0x2aaaaaaaaaaaaaab
mov ecx, dword [rsi + 0x18]
xor r15d, r15d
xor r12d, r12d
xor ebp, ebp
xor r13d, r13d
sub ecx, 1
je 0x132f3
sub ecx, 1
je 0x132ed
sub ecx, 1
je 0x132e7
sub ecx, 0x22
je 0x132e1
cmp ecx, 1
jne 0x13301
lea r15, [rbx + 0x50]
jmp 0x132f7
lea r15, [rbx + 0x68]
jmp 0x132f7
lea r15, [rbx + 0x5e]
jmp 0x132f7
lea r15, [rbx + 0x44]
jmp 0x132f7
lea r15, [rbx + 0x40]
mov r12d, dword [rbx + 0x3c]
mov ebp, dword [rbx]
lea r13, [rbx + 0x38]
mov rdi, qword [r14 + 0x28]
xor r8d, r8d
mov rax, r9
mov rcx, qword [rdi + 0x28]
add rdi, 0x20
mov dword [rsp + 0xb0], r8d
sub rcx, qword [rdi]
imul rcx
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rdx, rax
je 0x13455
shr r12d, 1
xor ebx, ebx
lea esi, [rbx + 1]
mov rcx, qword [rdi + 8]
mov rax, r9
sub rcx, qword [rdi]
imul rcx
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rdx, rsi
jae 0x1337a
mov rdx, rsi
mov rcx, rdi
call fcn.000151a0
mov r8d, dword [rsp + 0xb0]
movabs r9, 0x2aaaaaaaaaaaaaab
mov rax, qword [rdi]
mov rdi, qword [rbx + rax + 8]
sub rdi, qword [rbx + rax]
sar rdi, 1
cmp r12d, edi
jne 0x13407
mov r8, qword [r14 + 0x28]
mov rax, r9
mov rcx, qword [r8 + 0x28]
add r8, 0x20
sub rcx, qword [r8]
mov qword [rsp + 0x30], r8
imul rcx
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rdx, rsi
jae 0x133cb
mov rdx, rsi
mov rcx, r8
call fcn.000151a0
mov r8, qword [rsp + 0x30]
mov rax, qword [r8]
mov rcx, r15
mov r8d, edi
mov rdx, qword [rbx + rax]
call qword [sym.imp.ntoskrnl.exe__wcsnicmp]
mov r8d, dword [rsp + 0xb0]
movabs r9, 0x2aaaaaaaaaaaaaab
test eax, eax
jne 0x13407
mov eax, dword [r13]
shr eax, 4
test al, 1
jne 0x13407
mov dword [r13], 0x10
mov rdi, qword [r14 + 0x28]
inc r8d
mov rax, r9
mov rcx, qword [rdi + 0x28]
add rdi, 0x20
inc rsi
sub rcx, qword [rdi]
add rbx, 0x18
mov dword [rsp + 0xb0], r8d
imul rcx
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rdx, rax
mov eax, r8d
cmp rax, rdx
jb 0x1333d
mov rbx, qword [rsp + 0xb8]
mov rsi, qword [rsp + 0x38]
test ebp, ebp
je 0x1346c
mov eax, ebp
add rbx, rax
mov qword [rsp + 0xb8], rbx
jne 0x132b4
mov rdi, qword [rsp + 0xa8]
xor edx, edx
mov rcx, rdi
call qword [sym.imp.ntoskrnl.exe_IofCompleteRequest]
xor eax, eax
jmp 0x1349b
inc byte [rdx + 0x43]
lea rax, [rsi + 0x48]
mov qword [rdx + 0xb8], rax
mov rcx, qword [rcx + 0x48]
call qword [sym.imp.ntoskrnl.exe_IofCallDriver]
mov rbx, qword [rsp + 0xa0]
add rsp, 0x60
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret