Function at 0x145f2
Capabilities:
Complete processing asynchronous io request

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, dword [0x1cf4c]
lea eax, [ebp - 6]
push eax
add esi, 0xfffffdf8
call dword [sym.imp.ntoskrnl.exe_IoAcquireCancelSpinLock]
mov ebx, dword [sym.imp.HAL.dll_KfAcquireSpinLock]
lea ecx, [esi + 4]
call ebx
lea ecx, [edi + 0xc0]
mov byte [ebp - 1], al
mov dword [ebp - 0xc], ecx
call ebx
and byte [esi + 0x268], 0
cmp byte [ebp + 0xc], 0
mov byte [ebp - 2], al
je 0x146b3
mov dl, 1
xor eax, eax
mov ecx, dword [ebp + 8]
cmp byte [ecx + eax + 0xc], 0
je 0x1464d
xor dl, dl
inc eax
cmp eax, 6
jb 0x14641
test dl, dl
je 0x14664
mov ax, word [ecx + 0xa]
mov word [esi + 0x160], ax
jmp 0x14676
mov eax, dword [ecx + 0xa]
mov dword [esi + 0x160], eax
mov eax, dword [ecx + 0xe]
mov dword [esi + 0x164], eax
mov ax, word [ecx + 0x1c]
cmp ax, 1
jbe 0x146a8
mov word [esi + 0x118], ax
movzx eax, ax
imul eax, eax, 0x226
push 0x64
cdq
pop ebx
idiv ebx
cmp dword [esi + 0x14], 4
mov dword [esi + 0x104], eax
je 0x146a8
mov dword [esi + 0x108], eax
mov ax, word [ecx + 0x1e]
mov word [esi + 0x11a], ax
mov eax, dword [esi + 0x14]
push 2
pop ebx
cmp eax, ebx
jne 0x1477f
cmp dword [esi + 0x18], 3
jne 0x1477f
mov cl, byte [ebp - 1]
mov al, byte [ebp - 6]
mov byte [ebp - 6], cl
push dword [ebp - 6]
mov byte [ebp - 1], al
call dword [sym.imp.ntoskrnl.exe_IoReleaseCancelSpinLock]
push 0
push 0x10
lea eax, [esi + 0xb0]
push eax
lea eax, [esi + 0x160]
push eax
push 1
call dword [edi + 0x33c]
mov eax, dword [edi + 0x3e8]
mov ecx, dword [esi + 0xb8]
add eax, 0xffffffe2
cmp eax, ecx
jb 0x1470f
mov eax, ecx
add eax, 0xffffffd0
mov dword [esi + 0xc0], eax
lea eax, [esi + 0x1b8]
push eax
mov word [esi + 0x3c], 6
mov word [esi + 0x3e], bx
mov word [esi + 0x40], 6
mov dword [esi + 0x18], ebx
call dword [sym.imp.ntoskrnl.exe_KeCancelTimer]
test al, al
jne 0x14746
inc dword [esi + 0xc]
and dword [esi + 0x150], 0
mov dl, byte [ebp - 2]
mov ecx, dword [ebp - 0xc]
mov ebx, dword [sym.imp.HAL.dll_KfReleaseSpinLock]
call ebx
push esi
push 0x1418e
push dword [edi + 0x3c8]
lea eax, [esi + 0x188]
push eax
call sub.TDI.SYS_CTEStartTimer
mov dl, byte [ebp - 1]
lea ecx, [esi + 4]
call ebx
push esi
call fcn.00016d16
jmp 0x148c4
cmp eax, 3
jne 0x148a5
cmp dword [esi + 0x18], eax
jne 0x148a5
lea eax, [esi + 0x140]
mov ecx, dword [eax]
xor edx, edx
cmp ecx, edx
je 0x147ad
mov dword [eax], edx
mov dword [ebp + 0xc], ecx
xor eax, eax
add ecx, 0x38
xchg dword [ecx], eax
jmp 0x147c3
lea eax, [esi + 0x144]
mov ecx, dword [eax]
cmp ecx, edx
je 0x147c0
mov dword [ebp + 0xc], ecx
mov dword [eax], edx
jmp 0x147c3
mov dword [ebp + 0xc], edx
mov cl, byte [ebp - 1]
mov al, byte [ebp - 6]
mov byte [ebp - 6], cl
push dword [ebp - 6]
mov byte [ebp - 1], al
call dword [sym.imp.ntoskrnl.exe_IoReleaseCancelSpinLock]
push 0
push 0x10
lea eax, [esi + 0xb0]
push eax
lea eax, [esi + 0x160]
push eax
push 1
call dword [edi + 0x33c]
mov eax, dword [esi + 0xb8]
mov ecx, dword [esi + 0xc0]
lea edx, [eax - 0x30]
cmp ecx, edx
jbe 0x1481f
mov ecx, dword [edi + 0x3e8]
add ecx, 0xffffffe2
cmp ecx, eax
jae 0x14814
mov eax, ecx
add eax, 0xffffffd0
mov dword [esi + 0xc0], eax
jmp 0x14834
mov eax, dword [edi + 0x3e8]
add eax, 0xffffffb2
cmp eax, ecx
jae 0x1482e
mov ecx, eax
mov dword [esi + 0xc0], ecx
cmp dword [esi + 0x20], 0
mov word [esi + 0x3c], 6
mov word [esi + 0x3e], bx
mov word [esi + 0x40], 6
je 0x14850
mov word [esi + 0x36], 6
mov dl, byte [ebp - 2]
mov ecx, dword [ebp - 0xc]
mov ebx, dword [sym.imp.HAL.dll_KfReleaseSpinLock]
xor eax, eax
inc eax
mov dword [esi + 0x14], 4
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], eax
inc dword [edi + 0x44c]
call ebx
push esi
call fcn.0001c082
lea eax, [ebp - 1]
push eax
push dword [esi + 0x15c]
push dword [esi + 0x158]
push esi
call fcn.00016f11
mov ecx, dword [ebp + 0xc]
test ecx, ecx
je 0x148c4
and dword [ecx + 0x18], 0
mov dl, 2
call dword [sym.imp.ntoskrnl.exe_IofCompleteRequest]
jmp 0x148c4
mov dl, byte [ebp - 2]
mov ecx, dword [ebp - 0xc]
mov ebx, dword [sym.imp.HAL.dll_KfReleaseSpinLock]
call ebx
mov dl, byte [ebp - 1]
lea ecx, [esi + 4]
call ebx
push dword [ebp - 6]
call dword [sym.imp.ntoskrnl.exe_IoReleaseCancelSpinLock]
mov ecx, dword [esi + 8]
call dword [sym.imp.HAL.dll_KfAcquireSpinLock]
dec dword [esi + 0xc]
mov ecx, dword [esi + 8]
mov dl, al
jne 0x148e7
inc dword [esi + 0x154]
call ebx
push esi
call fcn.00013c06
jmp 0x148e9
call ebx
pop edi
pop esi
pop ebx
leave
ret 8