HalpValidateMpns
NTSTATUS __stdcall HalpValidateMpns(){
NTSTATUS v0;
unsigned int v1;
_WORD *v2;
__int64 v3;
__int64 v4;
unsigned int v5;
unsigned int v6;
_BYTE *v7;
__int64 v8;
v0 = 1;
v1 = 1;
if( (unsigned int)(*(&CmpDummyThreadEvent + 1022) - 1) > 1 )
{
v2 = (_WORD *)(*(&CmpDummyThreadEvent + 510) + 16i64);
do
{
v3 = *(_QWORD *)v2;
v4 = *(_QWORD *)(*(&CmpDummyThreadEvent + 510) + 16i64 * (v1 - 1));
if( *(_WORD *)(v4 + 2) == *(_WORD *)(*(_QWORD *)v2 + 2i64) )
{
if( (*(_BYTE *)v4 & 1 | 6) != (*(_BYTE *)v3 & 1 | 6) )
return 0;
v5 = *(_DWORD *)(v4 + 24);
if( v5 != *(_DWORD *)(v3 + 24)
|| *(_DWORD *)(v4 + 28) != *(_DWORD *)(v3 + 28)
|| *(_WORD *)(*(&CmpDummyThreadEvent + 510) + 16i64 * (v1 - 1) + 10) != v2[5] )
{
return 0;
}
if( (*(_BYTE *)v4 & 2) != 0 )
{
v6 = 0;
v7 = (_BYTE *)(v4 + 32);
if( v5 )
{
v8 = v3 - v4;
while( v7[1] == v7[v8 + 1] && *v7 == v7[v8] )
{
++v6;
v7 += 2;
if( v6 >= v5 )
goto LABEL_16;
}
v0 = 0;
}
LABEL_16:
if( !v0 )
return v0;
}
}
++v1;
v2 += 8;
}
while( v1 < *(&CmpDummyThreadEvent + 1022) - 1 );
}
return v0;
}Referenced by:
HalpChannelInitializeStaticConfiguration