HalpValidateMpns
INT64 __fastcall HalpValidateMpns(){
unsigned int v0;
unsigned int v1;
WCHAR *v2;
__int64 v3;
__int64 v4;
unsigned int v5;
unsigned int v6;
_BYTE *v7;
__int64 v8;
v0 = 1;
v1 = 1;
if( (unsigned int)(HalpChannelMemoryRangeCount - 1) > 1 )
{
v2 = HalpChannelMemoryRanges + 8;
do
{
v3 = *(_QWORD *)v2;
v4 = *(_QWORD *)&HalpChannelMemoryRanges[8 * v1 - 8];
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)
|| HalpChannelMemoryRanges[8 * v1 - 3] != 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 < HalpChannelMemoryRangeCount - 1 );
}
return v0;
}Referenced by:
HalpChannelInitializeStaticConfiguration