ExpWin32DeleteProcedure

VOID __fastcall ExpWin32DeleteProcedure(VOID *Object){
  unsigned __int64 v1; 
  POBJECT_TYPE *v2; 
  INT64 v3; 
  UINT64 v4; 
  VOID *v5; 
  LODWORD(v4) = *(_DWORD *)Object;
  v1 = (unsigned __int8)*((char *)Object - 24) ^ (unsigned __int64)(unsigned __int8)((unsigned __int16)((_WORD)Object - 48) >> 8);
  v5 = Object;
  v2 = (POBJECT_TYPE *)ObTypeIndexTable[(unsigned __int8)ObHeaderCookie ^ v1];
  if( v2 == (POBJECT_TYPE *)ExActivationObjectType )
  {
    v3 = 40i64;
    goto LABEL_6;
  }
  if( v2 == (POBJECT_TYPE *)ExCoreMessagingObjectType )
  {
    v3 = 36i64;
    goto LABEL_6;
  }
  if( v2 == (POBJECT_TYPE *)ExRawInputManagerObjectType )
  {
    v3 = 30i64;
    goto LABEL_6;
  }
  if( v2 == (POBJECT_TYPE *)ExCompositionObjectType )
  {
    v3 = 21i64;
LABEL_6:
    PsInvokeWin32Callout(v3, &v5, 1i64, &v4);
    return;
  }
  if( v2 == ExDesktopObjectType )
  {
    v3 = 11i64;
    goto LABEL_6;
  }
  if( v2 == (POBJECT_TYPE *)ExWindowStationObjectType )
  {
    v3 = 14i64;
    goto LABEL_6;
  }
}

Referenced by:

No references.