MiCheckLogPinDriverAddresses
VOID __stdcall MiCheckLogPinDriverAddresses(){
unsigned int *Buffer;
unsigned int v1;
unsigned int *v2;
bool i;
bool v4;
bool v5;
unsigned int v6;
char *v7;
unsigned int v8;
_DWORD *v9;
unsigned int v10;
_DWORD *v11;
if( *(&stru_140C4DB30 + 542) )
{
if( BitMapHeader.SizeOfBitMap )
{
if( BitMapHeader.SizeOfBitMap > 1 )
{
Buffer = BitMapHeader.Buffer;
v1 = *BitMapHeader.Buffer;
v2 = &BitMapHeader.Buffer[(unsigned __int64)(BitMapHeader.SizeOfBitMap - 1) >> 5];
if( BitMapHeader.Buffer != v2 )
{
for( i = v1 == 0; i; i = *Buffer == 0 )
{
if( ++Buffer == v2 )
{
v4 = ((0xFFFFFFFF >> ~(LOBYTE(BitMapHeader.SizeOfBitMap) - 1)) & *Buffer) == 0;
goto LABEL_10;
}
}
goto LABEL_20;
}
v4 = (v1 & (0xFFFFFFFF >> (32 - LOBYTE(BitMapHeader.SizeOfBitMap)))) == 0;
LABEL_10:
v5 = v4;
goto LABEL_11;
}
if( BitMapHeader.SizeOfBitMap == 1 )
{
v5 = !_bittest((const signed __int32 *)BitMapHeader.Buffer, 0);
LABEL_11:
if( v5 )
{
v6 = 0;
v7 = (char *)&unk_140C29FB0;
LABEL_13:
v8 = 0;
v9 = v7;
LABEL_14:
v10 = 0;
v11 = v9;
while( *v11 == v11[1] )
{
++v10;
v11 += 2;
if( v10 >= 2 )
{
++v8;
v9 += 4;
if( v8 < 2 )
goto LABEL_14;
++v6;
v7 += 32;
if( v6 < 2 )
goto LABEL_13;
return;
}
}
}
}
}
LABEL_20:
if( !_InterlockedCompareExchange16(&word_140C2A010, 1, 0) )
{
WorkItem.Parameter = 0i64;
WorkItem.List.Flink = 0i64;
WorkItem.WorkerRoutine = (void(__fastcall *)(void *))MiLogPinDriverAddressesWorker;
ExQueueWorkItem(&WorkItem, DelayedWorkQueue);
}
}
}Referenced by:
MiWorkingSetManager