Function at 0x28bd0
Capabilities:
Complete processing asynchronous io request

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r12
sub rsp, 0x30
lea rbp, [rdx + 0x38]
xor r12d, r12d
mov rsi, rdx
mov rdx, qword [rdx + 0xb8]
mov qword [rbp], r12
mov edi, 0xc0000002
mov al, byte [rdx]
test al, al
je 0x28ece
cmp al, 2
je 0x28ece
cmp al, 0xe
jne 0x28ed1
mov eax, dword [rdx + 0x18]
cmp eax, 0x9c4060d4
ja 0x28d63
je 0x28d14
cmp eax, 0x9c40208c
ja 0x28cf4
je 0x28cd5
cmp eax, 0x9c402000
je 0x28cbe
cmp eax, 0x9c402004
je 0x28ca1
cmp eax, 0x9c402084
je 0x28c82
cmp eax, 0x9c402088
jne 0x28ed1
mov rcx, qword [rsi + 0x18]
mov r9d, dword [rdx + 8]
mov edx, dword [rdx + 0x10]
mov r8, rcx
mov qword [rsp + 0x20], rbp
call fcn.00028f30
mov edi, eax
jmp 0x28ed1
mov rcx, qword [rsi + 0x18]
mov r9d, dword [rdx + 8]
mov edx, dword [rdx + 0x10]
mov r8, rcx
mov qword [rsp + 0x20], rbp
call fcn.00028f00
mov edi, eax
jmp 0x28ed1
mov rax, qword [0x0002f2f0]
mov rdx, qword [rsi + 0x18]
mov ecx, dword [rax + 4]
mov dword [rdx], ecx
mov qword [rbp], 4
jmp 0x28ece
mov rax, qword [rsi + 0x18]
mov dword [rax], 0x1020005
mov qword [rbp], 4
jmp 0x28ece
mov rcx, qword [rsi + 0x18]
mov r9d, dword [rdx + 8]
mov edx, dword [rdx + 0x10]
mov r8, rcx
mov qword [rsp + 0x20], rbp
call fcn.00028f60
mov edi, eax
jmp 0x28ed1
cmp eax, 0x9c402090
je 0x28d43
cmp eax, 0x9c4060c4
je 0x28d14
cmp eax, 0x9c4060cc
je 0x28d14
cmp eax, 0x9c4060d0
jne 0x28ed1
mov rcx, qword [rsi + 0x18]
mov r8d, dword [rdx + 0x10]
mov edx, dword [rcx]
cmp eax, 0x9c4060cc
je 0x28d57
cmp eax, 0x9c4060d0
je 0x28d49
cmp eax, 0x9c4060d4
jne 0x28eb6
in eax, dx
mov dword [rcx], eax
mov dword [rbp], r8d
jmp 0x28ece
hlt
in ax, dx
mov word [rcx], ax
mov dword [rbp], r8d
jmp 0x28ece
in al, dx
mov byte [rcx], al
mov dword [rbp], r8d
jmp 0x28ece
cmp eax, 0x9c40a0dc
ja 0x28dfe
je 0x28d90
cmp eax, 0x9c406104
je 0x28ddf
cmp eax, 0x9c406144
je 0x28dc0
cmp eax, 0x9c40a0c8
je 0x28d90
cmp eax, 0x9c40a0d8
jne 0x28ed1
mov rcx, qword [rsi + 0x18]
mov edx, dword [rcx]
cmp eax, 0x9c40a0d8
je 0x28ec9
cmp eax, 0x9c40a0dc
je 0x28ec1
cmp eax, 0x9c40a0e0
jne 0x28eba
mov eax, dword [rcx + 4]
out dx, eax
jmp 0x28ece
mov rcx, qword [rsi + 0x18]
mov r9d, dword [rdx + 8]
mov edx, dword [rdx + 0x10]
mov r8, rcx
mov qword [rsp + 0x20], rbp
call fcn.00028f90
mov edi, eax
jmp 0x28ed1
mov rcx, qword [rsi + 0x18]
mov r9d, dword [rdx + 8]
mov edx, dword [rdx + 0x10]
mov r8, rcx
mov qword [rsp + 0x20], rbp
call fcn.00029050
mov edi, eax
jmp 0x28ed1
cmp eax, 0x9c40a0e0
je 0x28d90
cmp eax, 0x9c40a108
je 0x28eb6
cmp eax, 0x9c40a148
je 0x28e59
cmp eax, 0x9c40a14c
jne 0x28ed1
mov eax, dword [rdx + 8]
mov rcx, qword [rsi + 0x18]
mov dword [rbp], r12d
cmp eax, 0x262
jae 0x28e3e
mov edi, 0xc000000e
jmp 0x28ed1
lea rdx, [0x0002eec0]
mov r8d, 0x262
call fcn.0002b3c0
mov dword [rbp], 0x262
jmp 0x28ece
mov ebx, dword [rdx + 0x10]
cmp ebx, 8
jb 0x28eba
mov r9, qword [rsi + 0x18]
mov dword [rbp], r12d
add ebx, 0xfffffff8
mov ecx, dword [r9]
mov r10d, dword [r9 + 4]
add r9, 8
mov r8d, ecx
mov eax, ecx
shr ecx, 8
shr r8d, 3
and eax, 7
movzx edx, cl
and r8d, 0x1f
shl eax, 5
mov ecx, 4
or r8d, eax
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], r10d
call qword [sym.imp.HAL.dll_HalSetBusDataByOffset]
mov edi, r12d
mov ecx, 0xe0000003
cmp eax, ebx
cmovne edi, ecx
jmp 0x28ed1
mov dword [rbp], r12d
mov edi, 0xc000000d
jmp 0x28ed1
movzx eax, word [rcx + 4]
out dx, ax
jmp 0x28ece
movzx eax, byte [rcx + 4]
out dx, al
mov edi, r12d
xor edx, edx
mov rcx, rsi
mov dword [rsi + 0x30], edi
call qword [sym.imp.ntoskrnl.exe_IofCompleteRequest]
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
mov eax, edi
mov rdi, qword [rsp + 0x58]
add rsp, 0x30
pop r12
ret