MiDoGangAssignment

VOID __stdcall MiDoGangAssignment(_TOKEN *Token){
  UINT64 **v1; 
  int DefaultDacl; 
  UINT64 *v4; 
  unsigned __int16 v5; 
  UINT64 *v6; 
  _SID_AND_ATTRIBUTES *v7; 
  unsigned __int64 v8; 
  UINT64 v9; 
  int v10; 
  void *v11; 
  bool v12; 

  DefaultDacl = (int)Token->DefaultDacl;
  if( (DefaultDacl & 1) != 0 )
  {
    if( (DefaultDacl & 4) != 0 )
      v5 = *(_WORD *)Token->PrimaryGroup;
    else
      v5 = 0;
    v6 = *v1;
    if( (DefaultDacl & 0x38) != 0 )
    {
      v8 = 512i64;
      v7 = &Token->RestrictedSids[256 * (*v6 - *(_QWORD *)Token->TokenSource.SourceName)];
    }
    else
    {
      v7 = 0i64;
      v8 = 0x4000i64;
    }
    while( 1 )
    {
      v9 = v6[1];
      if( !v9 )
        break;
      if( v8 <= v9 )
        v9 = v8;
      if( v7 )
      {
        v10 = (int)Token->DefaultDacl;
        if( (v10 & 8) != 0 )
        {
          KeZeroPages(v7, v9 << 12);
        }
        else if( (v10 & 0x10) != 0 )
        {
          memset(v7, 0xFFFFFFFFi64, (_DWORD)v9 << 12);
        }
        else if( (v10 & 0x20) != 0 )
        {
          LODWORD(v11) = RtlCompareMemoryUlong(v7, (_DWORD)v9 << 12, 0i64);
          if( v11 != (void *)(v9 << 12) )
            KeBugCheckEx(0x127u, v7, (PVOID)*v6, v11, (PVOID)(v9 << 12));
        }
      }
      if( ((__int64)Token->DefaultDacl & 4) != 0 )
        MiInitializeUnusablePfns(&MmGetPfnDb()[*v6], v9, v5, HIDWORD(Token->DynamicPart));
      v12 = v6[1] == v9;
      v6[1] -= v9;
      if( v12 )
        break;
      *v6 += v9;
      if( (unsigned int)KeShouldYieldProcessor() )
        goto LABEL_4;
      if( v7 )
        v7 += 256 * v9;
    }
  }
  else
  {
    v4 = *v1;
    if( **v1 )
    {
      MiInitializeLargeMdlLeafPfns(v4, *(_QWORD *)Token->TokenSource.SourceName);
      if( *v4 )
LABEL_4:
        Token->ImpersonationLevel = SecurityIdentification;
    }
  }
}

Referenced by:

MiDpcGangTarget
MiStartDpcGang