KiDpcWatchdogCaptureStack

UINT64 __fastcall KiDpcWatchdogCaptureStack(INT64 a1){
  __int64 v2; 
  __int64 v3; 
  UINT64 result; 
  v2 = *(_QWORD *)(a1 + 33960);
  v3 = *(_QWORD *)(a1 + 33968);
  if( v3 + 416 > v2 + 8 * ((unsigned __int64)(unsigned int)KiDpcWatchdogProfileArrayLength - 2) )
  {
    *(_QWORD *)(a1 + 33968) = v2;
    v3 = v2;
  }
  result = RtlWalkFrameChain((VOID **)(v3 + 8), 0x32ui64, 0x200ui64);
  if( (unsigned int)(result - 3) <= 0x31 )
  {
    *(_WORD *)v3 = result - 2;
    *(_QWORD *)(a1 + 33968) += 8i64 * (unsigned int)(result - 2) + 16;
    *(_OWORD *)*(_QWORD *)(a1 + 33968) = 0i64;
    result = *(_QWORD *)(a1 + 33968);
    *(_QWORD *)(result - 8) = 0i64;
  }
  return result;
}

Referenced by:

KeAccumulateTicks