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.