NTSTATUS __stdcall ObpPostInterceptHandleDuplicate(
VOID *Object,
UINT8 KernelHandle,
INT64 Status,
UINT64 GrantedAccess,
_LIST_ENTRY *ThreadCallbackListHead){
unsigned __int64 v5;
_OB_POST_OPERATION_INFORMATION PostOperationInfo;
int v8;
PostOperationInfo.Object = Object;
PostOperationInfo.Operation = 2;
PostOperationInfo.CallContext = 0i64;
PostOperationInfo.Parameters = (POB_POST_OPERATION_PARAMETERS)&v8;
*(&PostOperationInfo.ReturnStatus + 1) = 0;
PostOperationInfo.ReturnStatus = Status;
PostOperationInfo.Flags = KernelHandle & 1;
v5 = (unsigned __int8)*((char *)Object - 24) ^ (unsigned __int64)(unsigned __int8)((unsigned __int16)((_WORD)Object - 48) >> 8);
v8 = GrantedAccess;
PostOperationInfo.ObjectType = (POBJECT_TYPE)ObTypeIndexTable[(unsigned __int8)ObHeaderCookie ^ v5];
ObpCallPostOperationCallbacks(&PostOperationInfo, ThreadCallbackListHead);
return 0;
}