NTSTATUS __stdcall EmpAllocatePool(_SIZE_T NumberOfBytes){
__int64 *v1;
_DWORD *v2;
__int64 v3;
unsigned __int64 v4;
unsigned __int64 v5;
v3 = *v1;
v4 = (*(_QWORD *)&NumberOfBytes + 7i64) & 0xFFFFFFFFFFFFFFF8ui64;
if( *v1 && (v5 = (unsigned int)*v2, v5 >= v4) )
{
*v1 = v3 + v4;
*v2 = v5 - v4;
}
else
{
LODWORD(v3) = (unsigned int)ExAllocatePoolWithTag(1ui64, *(UINT64 *)&NumberOfBytes, 1986350405i64);
}
return v3;
}