HalpVerifyGenericError
INT64 __fastcall HalpVerifyGenericError(_QWORD *a1, _DWORD *a2){
unsigned int v2;
unsigned int v3;
__int64 v5;
unsigned int v6;
unsigned int v7;
unsigned int v8;
__int64 v9;
__int64 v10;
int v11;
int v12;
unsigned int v13;
v2 = 20;
v3 = a2[3] + 20;
if( v3 < 0x14 )
return(unsigned int)-1073741811;
v5 = (unsigned int)a2[1];
v6 = 0;
if( (_DWORD)v5 )
{
if( a2[2] && v3 > (unsigned int)v5 )
return(unsigned int)-1073741811;
}
v7 = a2[2];
v8 = v7 + v5;
if( v7 + (unsigned int)v5 < (unsigned int)v5 )
return(unsigned int)-1073741811;
if( v7 < 0x20 )
return(unsigned int)-1073741811;
v9 = a1[5];
v10 = (unsigned int)a2[1];
if( *(_QWORD *)((char *)a2 + v5 + 8) != v9
|| (v9 & 0x800000000000000i64) != 0 && *(_QWORD *)((char *)a2 + v10 + 24) != a1[7] )
{
return(unsigned int)-1073741811;
}
if( (v9 & 0x400000000000000i64) != 0 && *(_QWORD *)((char *)a2 + v10 + 16) != a1[6] )
return(unsigned int)-1073741811;
v11 = (*a2 >> 4) & 0x3FF;
if( v11 )
{
while( v2 + 72 >= v2 )
{
if( v2 + 72 > v3 )
break;
v12 = *(_DWORD *)((char *)a2 + v2 + 24) + 72;
if( *(_DWORD *)((char *)a2 + v2 + 24) >= 0xFFFFFFB8 )
break;
v13 = v2 + v12;
if( v2 + v12 < v2 )
break;
v2 += v12;
if( v13 > v8 )
break;
if( !--v11 )
return v6;
}
return(unsigned int)-1073741811;
}
return v6;
}Referenced by:
HalpGetMcaExtendedLogStatusBlock