ExGenRandom

UINT64 __stdcall ExGenRandom(_EX_GEN_RANDOM_DOMAIN Domain){
  __int64 v1; 
  unsigned __int8 CurrentIrql; 
  __int64 v3; 
  char *v4; 
  int v5; 
  int v6; 
  __int64 v7; 
  int v8; 
  unsigned int v9; 
  int v10; 
  __int32 v11; 
  char v12; 
  __int64 v14; 

  v1 = Domain;
  CurrentIrql = KeGetCurrentIrql();
  __writecr8(2ui64);
  KxAcquireSpinLock((UINT64 *)&WheapDeferredInternalLogsEventLock + 90);
  if( (_DWORD)v1 == 1 && *(&WheapDeferredInternalLogsEventLock + 178) )
  {
    v14 = (unsigned int)(*(&WheapDeferredInternalLogsEventLock + 178) - 1);
    v8 = *((_DWORD *)&WheapDeferredInternalLogsEventLock + v14 + 304);
    --*(&WheapDeferredInternalLogsEventLock + 178);
    memset((char *)&WheapDeferredInternalLogsEventLock + 4 * v14 + 1216, 0, 4ui64);
  }
  else
  {
    v3 = 0i64;
    v4 = (char *)&WheapDeferredInternalLogsEventLock + 228 * v1 + 736;
    v5 = *((_DWORD *)v4 + 55);
    v6 = *((_DWORD *)v4 + 56);
    if( v5 != 54 )
      v3 = (unsigned int)(v5 + 1);
    v7 = 0i64;
    if( v6 != 54 )
      v7 = (unsigned int)(v6 + 1);
    v8 = *(_DWORD *)&v4[4 * v3] - *(_DWORD *)&v4[4 * v7];
    *(_DWORD *)&v4[4 * v3] = v8;
    *((_DWORD *)v4 + 55) = v3;
    *((_DWORD *)v4 + 56) = v7;
  }
  KxReleaseSpinLock((UINT64 *)&WheapDeferredInternalLogsEventLock + 90);
  __writecr8(CurrentIrql);
  v9 = *(&WheapDeferredInternalLogsEventLock + 505) ^ v8;
  if( ((unsigned __int64)KeFeatureBits & 0x100000000i64) != 0 )
  {
    v10 = 0;
    while( 1 )
    {
      v11 = __rdrand();
      if( v12 )
        break;
      if( (unsigned int)++v10 >= 0xA )
        return v9;
    }
    v9 ^= v11;
  }
  return v9;
}

Referenced by:

CcBcbProfiler
CcInitializeCacheManager
CmpCmdInit
EtwpCovSampCaptureContextStart
EtwpCovSampStrideSamplerInitialize
ExInitializePoolTracker
ExRngInitializeSystem
ExpInitSystemPhase0
ExpTimerInitialization
IopInitializeInMemoryDumpData
MiAddSubRegionEntropy
MiAllocateNewSubAllocatedRegion
MiAssignSessionRanges
MiAssignSoftwareWsleRegion
MiAssignSystemVa
MiAssignTopLevelRanges
MiBuildDynamicRegion
MiGenerateRandomPte
MiGenerateSecureCookie
MiInitializeBootDefaults
MiInitializeColorTable
MiInitializeNonPagedPool
MiInitializeProcessBottomUpEntropy
MiInitializeProcessTopDownEntropy
MiInitializeRelocations
MiInitializeSharedUserData
MiInitializeSystemPtes
MiInitializeTopLevelBitmap
MiInitializeUltraSpace
MiMapViewOfImageSection
MiProcessLoadConfigForDriver
MiReserveDriverPtes
MiSelectImageBase
MiSelectOverflowDllBase
NtQueryInformationProcess
ObInitSystem
PspPrepareSystemDllInitBlock
PspSetupUserStack
PspUserThreadStartup
PspWow64InitThreadGuestArm
PspWow64InitThreadGuestx86
RtlRandom
RtlRandomEx
RtlpAllocateHeap
RtlpCreateHeapEncoding
RtlpHeapGenerateRandomValue64
RtlpHpSegMgrApplyLargePagePolicy
RtlpLfhIncrementDataSlot
sub_1405BC6E0
sub_1405CA010
sub_14065FACC