HalpDpGetInterruptReplayState

INT64 __fastcall HalpDpGetInterruptReplayState(INT64 a1, INT64 *a2){
  unsigned __int32 v3; 
  INT64 result; 
  INT64 v5; 
  v3 = _InterlockedExchangeAdd((volatile signed __int32 *)(a1 + 4), 1u);
  if( v3 < *(_DWORD *)a1 )
  {
    v5 = *(_QWORD *)(a1 + 32) + v3 * *(_DWORD *)(a1 + 40);
    result = HalpInterruptSaveReplayState(v5);
    if( (int)result >= 0 )
    {
      *a2 = v5;
      return 0i64;
    }
  }
  else
  {
    if( a2 )
      *a2 = 0i64;
    return 3221225626i64;
  }
  return result;
}

Referenced by:

No references.