RtlpStdGetRecordedStackTraceIndex

INT64 __fastcall RtlpStdGetRecordedStackTraceIndex(INT64 a1, UINT16 *a2){
  __int64 v2; 
  unsigned int v5; 
  UINT16 *v6; 
  UINT64 v7; 
  INT64 v8; 
  VOID *v9; 
  char v10; 
  _QWORD *v11; 
  __int64 v12; 
  unsigned __int64 v13; 
  v2 = a2[7];
  v5 = 0;
  if( (_WORD)v2 )
  {
    v6 = a2 + 8;
    do
    {
      v5 += *(_DWORD *)v6;
      v6 += 4;
      --v2;
    }
    while( v2 );
  }
  v7 = v5 % *(_DWORD *)(a1 + 720);
  v8 = a1 + 24i64 * (unsigned int)v7;
  KeAcquireSpinLockRaiseToDpc((UINT64 *)(v8 + 736), v7);
  *(_BYTE *)(v8 + 744) = v10;
  if( *(_DWORD *)(a2 + 5) )
  {
    LODWORD(v12) = a2[6] + (a2[5] << 16);
  }
  else
  {
    v11 = (_QWORD *)RtlpStdExtendUpperWatermark((UINT64 *)a1, v9);
    if( v11 )
    {
      *v11 = a2;
      v12 = (__int64)(*(_QWORD *)(a1 + 184) - (_QWORD)v11) >> 3;
      a2[6] = v12;
      a2[5] = WORD1(v12);
    }
    else
    {
      LODWORD(v12) = 0;
    }
  }
  v13 = *(unsigned __int8 *)(v8 + 744);
  KxReleaseSpinLock((UINT64 *)(v8 + 736));
  __writecr8(v13);
  return(unsigned int)v12;
}

Referenced by:

ExInitializeResourceLite
ExpInitializeResource