Function at 0x1a39e
Capabilities:
Complete processing asynchronous io request

Disassembly:
push ebp
mov ebp, esp
push ecx
mov eax, dword [0x1cf4c]
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, dword [ebx + 0x4c]
cmp esi, dword [ebx + 0x7c]
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push edi
jne 0x1a4e1
mov cx, word [ebx + 0x5c]
cmp ax, cx
jne 0x1a4e1
xor edi, edi
cmp dword [ebx + 0x74], edi
je 0x1a4e3
cmp esi, edi
jne 0x1a3e5
cmp cx, word [ebx + 0x70]
je 0x1a81a
cmp dword [ebx + 0x20], edi
mov dword [ebx + 0x110], edi
mov dword [ebx + 0x4c], edi
mov dword [ebx + 0x60], edi
mov eax, dword [0x1cf4c]
mov eax, dword [eax + 0x3dc]
mov dword [ebx + 0x48], eax
mov eax, dword [ebx + 0x104]
mov dword [ebx + 0x108], eax
je 0x1a434
mov ax, word [ebp + 0x10]
mov word [ebx + 0x38], ax
mov ax, cx
sub ax, word [ebx + 0x3a]
js 0x1a429
push ebx
call fcn.00019b40
jmp 0x1a434
mov ax, word [ebx + 0x3e]
add ax, cx
mov word [ebx + 0x3a], ax
mov eax, dword [ebx + 0x74]
mov ecx, dword [ebx + 0x78]
and byte [ebx + 0x44], 0
cmp eax, ecx
jne 0x1a447
mov dword [eax + 0x58], edi
jmp 0x1a450
mov edx, dword [ecx + 0x58]
mov dword [ebx + 0x24], edx
mov dword [ecx + 0x58], edi
dec dword [eax + 0x5c]
mov esi, dword [eax + 0x5c]
neg esi
sbb esi, esi
not esi
push ebx
and esi, eax
call fcn.00019ba6
mov dl, byte [ebp + 0x18]
lea ecx, [ebx + 4]
call dword [sym.imp.HAL.dll_KfReleaseSpinLock]
cmp esi, edi
je 0x1a826
mov edi, dword [esi + 0x58]
and dword [esi + 0x18], 0
lea eax, [ebp + 8]
push eax
call dword [sym.imp.ntoskrnl.exe_IoAcquireCancelSpinLock]
xor eax, eax
lea ecx, [esi + 0x38]
xchg dword [ecx], eax
push dword [ebp + 8]
call dword [sym.imp.ntoskrnl.exe_IoReleaseCancelSpinLock]
mov dl, 2
mov ecx, esi
call dword [sym.imp.ntoskrnl.exe_IofCompleteRequest]
mov ecx, dword [ebx + 8]
inc dword [ebx + 0x238]
mov esi, edi
call dword [sym.imp.HAL.dll_KfAcquireSpinLock]
dec dword [ebx + 0xc]
mov ecx, dword [ebx + 8]
mov dl, al
jne 0x1a4d2
inc dword [ebx + 0x154]
call dword [sym.imp.HAL.dll_KfReleaseSpinLock]
push ebx
call fcn.00013c06
jmp 0x1a4d8
call dword [sym.imp.HAL.dll_KfReleaseSpinLock]
test edi, edi
jne 0x1a478
jmp 0x1a826
xor edi, edi
mov dx, word [ebx + 0x5c]
cmp ax, dx
jne 0x1a5fe
mov ecx, dword [ebx + 0x20]
cmp ecx, edi
jne 0x1a505
movzx edi, word [ebp + 0x10]
cmp edi, esi
jne 0x1a5fc
xor edi, edi
cmp dword [ebx + 0x50], edi
je 0x1a5fe
cmp ecx, edi
mov dword [ebx + 0x110], edi
je 0x1a586
cmp dword [ebx + 0x18], 7
jne 0x1a553
mov ax, word [ebp + 0x10]
cmp word [ebx + 0x38], ax
je 0x1a546
mov word [ebx + 0x38], ax
mov eax, dword [0x1cf4c]
mov eax, dword [eax + 0x3dc]
mov dword [ebx + 0x48], eax
mov eax, dword [ebx + 0x104]
mov dword [ebx + 0x108], eax
mov ax, word [ebx + 0x3e]
add ax, dx
mov word [ebx + 0x3a], ax
jmp 0x1a5a0
mov eax, dword [0x1cf4c]
mov eax, dword [eax + 0x3dc]
mov dword [ebx + 0x48], eax
mov eax, dword [ebx + 0x104]
mov dword [ebx + 0x108], eax
mov ax, word [ebp + 0x10]
mov word [ebx + 0x38], ax
mov ax, dx
sub ax, word [ebx + 0x3a]
js 0x1a546
push ebx
call fcn.00019b40
jmp 0x1a5a0
mov eax, dword [0x1cf4c]
mov eax, dword [eax + 0x3dc]
mov dword [ebx + 0x48], eax
mov eax, dword [ebx + 0x104]
mov dword [ebx + 0x108], eax
and byte [ebx + 0x44], 0
push 5
pop ecx
lea edi, [ebx + 0x60]
lea esi, [ebx + 0x4c]
push 2
rep movsd dword es:[edi], dword [esi]
pop esi
cmp dword [ebx + 0x18], esi
je 0x1a81a
push dword [ebx + 8]
xor edx, edx
lea ecx, [ebx + 0xc]
inc edx
call dword [sym.imp.ntoskrnl.exe_ExfInterlockedAddUlong]
mov eax, dword [ebp - 4]
and dword [ebx + 0x150], 0
lea ecx, [eax + 0xc0]
push ecx
lea edx, [ebx + 0xd0]
lea ecx, [eax + 0x124]
mov byte [ebx + 0xe8], 1
call dword [sym.imp.ntoskrnl.exe_ExfInterlockedInsertTailList]
mov dword [ebx + 0x18], esi
jmp 0x1a81a
xor edi, edi
cmp dword [ebx + 0x74], edi
je 0x1a81a
cmp byte [ebp + 0x14], 0
je 0x1a759
mov edi, dword [ebx + 0x20]
test edi, edi
je 0x1a6e1
mov cx, word [ebx + 0x70]
cmp cx, dx
jae 0x1a632
cmp ax, cx
jb 0x1a62f
cmp ax, dx
jb 0x1a646
cmp cx, dx
jbe 0x1a6d9
cmp ax, cx
jae 0x1a649
cmp ax, dx
jae 0x1a6d9
cmp ax, cx
push eax
setne byte [ebp + 0x17]
and dword [ebx + 0x110], 0
push ebx
call fcn.00019d18
mov eax, dword [ebp - 4]
inc dword [ebx + 0x240]
mov byte [ebx + 0x44], 1
inc dword [eax + 0x4c8]
lea edi, [ebx + 0x4c]
mov edx, dword [edi]
lea esi, [ebx + 0x60]
sub edx, dword [esi]
lea ecx, [eax + 0x4d0]
call dword [sym.imp.ntoskrnl.exe_ExInterlockedAddLargeStatistic]
cmp byte [ebp + 0x17], 0
push 5
pop ecx
rep movsd dword es:[edi], dword [esi]
je 0x1a6b9
mov ax, word [ebx + 0x70]
sub ax, word [ebx + 0x3a]
js 0x1a69f
push ebx
call fcn.00019b40
mov eax, dword [0x1cf4c]
mov eax, dword [eax + 0x3dc]
mov dword [ebx + 0x48], eax
mov eax, dword [ebx + 0x104]
mov dword [ebx + 0x108], eax
mov ax, word [ebp + 0x10]
mov word [ebx + 0x38], ax
cmp dword [ebx + 0x18], 2
je 0x1a81a
push dword [ebp + 0x18]
push ebx
call fcn.00019f02
jmp 0x1a826
test edi, edi
jne 0x1a81a
cmp ax, word [ebx + 0x70]
jne 0x1a81a
movzx eax, word [ebp + 0x10]
cmp eax, esi
ja 0x1a81a
and dword [ebx + 0x110], 0
lea esi, [ebx + 0x60]
sub eax, dword [esi]
push eax
push ebx
mov dword [ebp + 0x14], eax
call fcn.00019cb2
mov eax, dword [ebp - 4]
inc dword [ebx + 0x240]
inc dword [eax + 0x4c8]
lea edi, [ebx + 0x4c]
mov edx, dword [edi]
sub edx, dword [esi]
lea ecx, [eax + 0x4d0]
call dword [sym.imp.ntoskrnl.exe_ExInterlockedAddLargeStatistic]
cmp dword [ebp + 0x14], 0
push 5
pop ecx
rep movsd dword es:[edi], dword [esi]
je 0x1a6c1
mov eax, dword [0x1cf4c]
mov eax, dword [eax + 0x3dc]
mov dword [ebx + 0x48], eax
mov eax, dword [ebx + 0x104]
mov dword [ebx + 0x108], eax
jmp 0x1a6c1
cmp dword [ebx + 0x20], edi
je 0x1a81a
mov cx, word [ebx + 0x70]
cmp cx, dx
jae 0x1a778
cmp ax, cx
jb 0x1a775
cmp ax, dx
jb 0x1a78c
cmp cx, dx
jbe 0x1a81a
cmp ax, cx
jae 0x1a78f
cmp ax, dx
jae 0x1a81a
cmp ax, cx
push eax
push ebx
setne byte [ebp + 0x17]
call fcn.00019d18
cmp byte [ebp + 0x17], 0
mov ax, word [ebp + 0x10]
mov word [ebx + 0x38], ax
je 0x1a81a
mov ax, word [ebx + 0x70]
sub ax, word [ebx + 0x3a]
js 0x1a7b8
push ebx
call fcn.00019b40
cmp dword [ebx + 0x50], edi
mov eax, dword [0x1cf4c]
mov eax, dword [eax + 0x3dc]
mov dword [ebx + 0x48], eax
mov eax, dword [ebx + 0x104]
mov dword [ebx + 0x108], eax
je 0x1a81a
push 2
pop esi
cmp dword [ebx + 0x18], esi
je 0x1a81a
push dword [ebx + 8]
xor edx, edx
lea ecx, [ebx + 0xc]
inc edx
call dword [sym.imp.ntoskrnl.exe_ExfInterlockedAddUlong]
mov eax, dword [ebp - 4]
lea ecx, [eax + 0xc0]
push ecx
lea edx, [ebx + 0xd0]
lea ecx, [eax + 0x124]
mov dword [ebx + 0x150], edi
mov byte [ebx + 0xe8], 1
mov dword [ebx + 0x18], esi
call dword [sym.imp.ntoskrnl.exe_ExfInterlockedInsertTailList]
mov dl, byte [ebp + 0x18]
lea ecx, [ebx + 4]
call dword [sym.imp.HAL.dll_KfReleaseSpinLock]
pop edi
pop esi
pop ebx
leave
ret 0x14