WheapErrorContainsMemorySection

INT64 __fastcall WheapErrorContainsMemorySection(INT64 a1){
  unsigned int v1; 
  char v2; 
  unsigned int v3; 
  INT64 v4; 
  unsigned int *v5; 
  unsigned int *v6; 
  __int64 v7; 
  v1 = *(unsigned __int16 *)(a1 + 10);
  if( !(_WORD)v1 )
    return 0i64;
  v2 = 0;
  v3 = 0;
  v4 = a1 + 128;
  while( 1 )
  {
    v5 = (unsigned int *)v4;
    if( (*(_BYTE *)(v4 + 12) & 1) != 0 )
      break;
    ++v3;
    v4 += 72i64;
    if( v3 >= v1 )
      goto LABEL_8;
  }
  v2 = 1;
LABEL_8:
  v6 = (unsigned int *)(a1 + 128);
  if( v2 )
    v6 = v5;
  v7 = *((_QWORD *)v6 + 2) - *(_QWORD *)&MEMORY_ERROR_SECTION_GUID.Data1;
  if( !v7 )
    v7 = *((_QWORD *)v6 + 3) - *(_QWORD *)MEMORY_ERROR_SECTION_GUID.Data4;
  if( v7 )
    return 0i64;
  else
    return a1 + *v6;
}

Referenced by:

WheapPersistPageForMemoryError