FsRtlLookupLastBaseMcbEntryAndIndex
VOID __stdcall FsRtlLookupLastBaseMcbEntryAndIndex(_BASE_MCB *Mcb, INT64 *LargeVbn, INT64 *LargeLbn, UINT64 *Index){
int v4;
ULONG PairCount;
_DWORD *Mapping;
int v10;
int v11;
int v12;
v4 = 0;
PairCount = Mcb->PairCount;
if( PairCount )
{
Mapping = Mcb->Mapping;
v10 = Mapping[2 * PairCount - 1];
if( v10 == -1 )
{
v12 = -1;
}
else
{
if( PairCount == 1 )
v11 = 0;
else
v11 = Mapping[2 * PairCount - 4];
v12 = v10 - v11 + Mapping[2 * PairCount - 2] - 1;
}
*(_DWORD *)LargeLbn = v12;
*(_DWORD *)LargeVbn = *((_DWORD *)Mcb->Mapping + 2 * (Mcb->PairCount - 1)) - 1;
*(_DWORD *)Index = Mcb->PairCount - 1;
}
*((_DWORD *)LargeVbn + 1) = (*(_DWORD *)LargeVbn != -1) - 1;
LOBYTE(v4) = *(_DWORD *)LargeLbn != -1;
*((_DWORD *)LargeLbn + 1) = v4 - 1;
}Referenced by:
FsRtlLookupLastLargeMcbEntryAndIndex