ExpFreeOwnerEntry

NTSTATUS __stdcall ExpFreeOwnerEntry(INT64 a1){
  int v1; 
  UINT64 v3; 
  NTSTATUS result; 

  v1 = *(_DWORD *)(a1 + 8);
  v3 = *(_QWORD *)a1;
  if( (v1 & 2) != 0 )
  {
    v3 &= 0xFFFFFFFFFFFFFFFCui64;
  }
  else if( (v3 & 3) != 0 )
  {
LABEL_11:
    result = 0;
    *(_QWORD *)a1 = 0i64;
    return result;
  }
  if( !v3 )
    goto LABEL_11;
  if( (v1 & 1) != 0 )
  {
    PsBoostThreadIoEx((_ETHREAD *)v3, 1u, 0, 0i64);
    *(_DWORD *)(a1 + 8) &= ~1u;
    v1 = *(_DWORD *)(a1 + 8);
  }
  if( (v1 & 4) != 0 )
  {
    PsBoostThreadIoQoS((_ETHREAD *)v3, 1ui64);
    *(_DWORD *)(a1 + 8) &= ~4u;
    v1 = *(_DWORD *)(a1 + 8);
  }
  if( (v1 & 2) != 0 )
  {
    ObDereferenceObjectDeferDelete(v3);
    *(_DWORD *)(a1 + 8) &= ~2u;
  }
  result = 0;
  *(_QWORD *)a1 = 0i64;
  return result;
}

Referenced by:

CcUnpinFileDataEx