IopErrorLogGetEntry

_LIST_ENTRY *__stdcall IopErrorLogGetEntry(){
  unsigned __int8 v0; 
  _LIST_ENTRY *v1; 
  unsigned __int64 v2; 
  __int64 v4; 

  v0 = KeAcquireSpinLockRaiseToDpc(&IopErrorLogLock);
  v1 = (_LIST_ENTRY *)*(&stru_140C452E0 + 218);
  v2 = v0;
  if( (_UNKNOWN *)*(&stru_140C452E0 + 218) == (_UNKNOWN *)((char *)&stru_140C452E0 + 1744) )
  {
    *(&stru_140C452E0 + 614) = 0;
    v1 = 0i64;
  }
  else
  {
    v4 = **(&stru_140C452E0 + 218);
    if( *(_UNKNOWN **)(*(&stru_140C452E0 + 218) + 8i64) != (_UNKNOWN *)((char *)&stru_140C452E0 + 1744)
      || *(_QWORD *)(v4 + 8) != *(&stru_140C452E0 + 218) )
    {
      __fastfail(3u);
    }
    *(&stru_140C452E0 + 218) = **(&stru_140C452E0 + 218);
    *(_QWORD *)(v4 + 8) = (char *)&stru_140C452E0 + 1744;
  }
  KxReleaseSpinLock(&IopErrorLogLock);
  __writecr8(v2);
  return v1;
}

Referenced by:

IopErrorLogThread