HalpGetMcaExtendedLogStatusBlock
_DWORD *__fastcall HalpGetMcaExtendedLogStatusBlock(INT64 a1){
_DWORD *v1;
unsigned __int64 v3;
__int64 v4;
unsigned __int64 v5;
int v7;
v7 = 0;
v1 = 0i64;
if( HalpMcaExtendedLoggingSupported )
{
if( qword_140CF6228 )
{
if( ((int(__fastcall *)(_QWORD, int *, _QWORD))off_140C007C8[0])(*(unsigned int *)(a1 + 16), &v7, 0i64) >= 0 )
{
v3 = (unsigned int)(*(_DWORD *)(a1 + 36) + v7 * dword_140CF6238);
if( v3 < qword_140CF6230 )
{
v4 = *(_QWORD *)(qword_140CF6228 + 8 * v3 + 64);
if( v4 < 0 )
{
v5 = v4 & 0x7FFFFFFFFFFFFFFFi64;
if( v5 >= qword_140CF6240 && v5 + 4096 <= qword_140CF6240 + qword_140CF6250 )
{
v1 = (char *)qword_140CF6248 + v5 - qword_140CF6240;
if( !*v1 )
return 0i64;
if( (int)HalpVerifyGenericError((_QWORD *)a1, (char *)qword_140CF6248 + v5 - qword_140CF6240) < 0 )
{
*v1 = 0;
return 0i64;
}
}
}
}
}
}
}
return v1;
}Referenced by:
HalpAddMcaExtendedLogToMemoryErrorSection