ExpWin32OpenProcedure

INT64 __fastcall ExpWin32OpenProcedure(
        _OB_OPEN_REASON OpenReason,
        CHAR AccessMode,
        _EPROCESS *Process,
        VOID *Object,
        UINT64 *GrantedAccess,
        UINT64 HandleCount){
  int v6; 
  unsigned int v7; 
  unsigned __int64 v8; 
  POBJECT_TYPE *v9; 
  int v10; 
  INT64 v11; 
  int v13[2]; 
  _EPROCESS *v14; 
  VOID *v15; 
  int v16; 
  int v17; 
  UINT64 v18; 
  v6 = *(_DWORD *)Object;
  v13[1] = 0;
  v7 = -1073741823;
  LODWORD(v18) = v6;
  v8 = (unsigned __int8)*((char *)Object - 24) ^ (unsigned __int64)(unsigned __int8)((unsigned __int16)((_WORD)Object - 48) >> 8);
  v13[0] = OpenReason;
  v14 = Process;
  v15 = Object;
  v9 = (POBJECT_TYPE *)ObTypeIndexTable[(unsigned __int8)ObHeaderCookie ^ v8];
  v10 = *(_DWORD *)GrantedAccess;
  v17 = HandleCount;
  v16 = v10;
  if( v9 == (POBJECT_TYPE *)ExActivationObjectType )
  {
    v11 = 37i64;
    return(unsigned int)PsInvokeWin32Callout(v11, v13, 1i64, &v18);
  }
  if( v9 == (POBJECT_TYPE *)ExCoreMessagingObjectType )
  {
    v11 = 33i64;
    return(unsigned int)PsInvokeWin32Callout(v11, v13, 1i64, &v18);
  }
  if( v9 == (POBJECT_TYPE *)ExRawInputManagerObjectType )
  {
    v11 = 27i64;
    return(unsigned int)PsInvokeWin32Callout(v11, v13, 1i64, &v18);
  }
  if( v9 == (POBJECT_TYPE *)ExCompositionObjectType )
  {
    v11 = 18i64;
    return(unsigned int)PsInvokeWin32Callout(v11, v13, 1i64, &v18);
  }
  if( v9 == ExDesktopObjectType )
  {
    v11 = 8i64;
    return(unsigned int)PsInvokeWin32Callout(v11, v13, 1i64, &v18);
  }
  if( v9 == (POBJECT_TYPE *)ExWindowStationObjectType )
  {
    v11 = 16i64;
    return(unsigned int)PsInvokeWin32Callout(v11, v13, 1i64, &v18);
  }
  return v7;
}

Referenced by:

No references.