FsRtlUninitializeSmallMcb

INT64 __fastcall FsRtlUninitializeSmallMcb(INT64 a1){
  INT64 CompleteDev; 
  INT64(__fastcall *v2)(INT64); 
  __int64 v3; 
  __int64(__fastcall *v4)(__int64, __int64, _QWORD, unsigned __int64); 
  __int64 v5; 
  __int64 v6; 
  unsigned __int64 v7; 
  unsigned __int64 v8; 
  unsigned __int64 *v9; 
  unsigned __int64 v10; 
  __int64 v12; 
  CompleteDev = FsRtlMdlReadCompleteDevEx(a1);
  if( *(_QWORD *)(CompleteDev + 2048) )
    return(*(__int64(__fastcall **)(INT64, _QWORD))(CompleteDev + 624))(CompleteDev + 2048, 0i64);
  v2 = (INT64(__fastcall *)(INT64))CompleteDev;
  v3 = *(_QWORD *)(CompleteDev + 1992);
  v4 = *(__int64(__fastcall **)(__int64, __int64, _QWORD, unsigned __int64))(CompleteDev + 256);
  v5 = *(unsigned int *)(CompleteDev + 2020);
  v6 = *(_QWORD *)(CompleteDev + 2000);
  v7 = (unsigned __int64)&v12 ^ v3;
  do
  {
    v8 = *(_QWORD *)v2 ^ v7;
    *(_QWORD *)v2 = v8;
    v7 = __ROR8__(v8, 3);
    v2 = (INT64(__fastcall *)(INT64))((char *)v2 + 8);
  }
  while( (unsigned __int64)v2 < (unsigned __int64)FsRtlUninitializeSmallMcb );
  v9 = (unsigned __int64 *)&loc_140A11156;
  do
  {
    v10 = *v9 ^ v7;
    *v9 = v10;
    v7 = __ROR8__(v10, 5);
    ++v9;
  }
  while( (unsigned __int64)v9 < CompleteDev + v5 - 7 );
  return v4(v3, v6, v4, v7);
}

Referenced by:

No references.