ObpPreInterceptHandleCreate
NTSTATUS __stdcall ObpPreInterceptHandleCreate(
PVOID Object,
INT8 KernelHandle,
INT64 *DesiredAccess,
LIST_ENTRY *ThreadCallbackListHead){
unsigned __int64 v6;
int v8;
__int64 v9;
int v10;
int v11;
NTSTATUS result;
int v13[2];
__int128 v14;
int v15;
int v16;
PVOID v17;
__int64 v18;
__int64 v19;
int *v20;
v6 = (unsigned __int8)*((char *)Object - 24) ^ (unsigned __int64)(unsigned __int8)((unsigned __int16)((_WORD)Object - 48) >> 8);
v16 = 0;
v8 = *(_DWORD *)DesiredAccess;
v14 = 0i64;
v9 = ObTypeIndexTable[(unsigned __int8)ObHeaderCookie ^ v6];
v10 = *(_DWORD *)(v9 + 96);
v20 = v13;
v11 = v8 & v10;
v13[1] = v8;
v13[0] = v8;
v15 = 1;
v17 = Object;
v16 = KernelHandle & 1;
v19 = 0i64;
v14 = 0i64;
v18 = v9;
result = ObpCallPreOperationCallbacks(v9, (__int64)&v15, ThreadCallbackListHead);
if( result >= 0 && !KernelHandle )
*(_DWORD *)DesiredAccess &= v11 | v13[0];
return result;
}Referenced by:
ObpCreateHandle