ExpPrepareToWaitForResourceShared

INT64 __fastcall ExpPrepareToWaitForResourceShared(INT64 a1, INT64 a2, INT64 a3){
  ++*(_DWORD *)(a1 + 72);
  *(_OWORD *)a3 = 0i64;
  *(_OWORD *)(a3 + 16) = 0i64;
  *(_OWORD *)(a3 + 32) = 0i64;
  *(_QWORD *)(a3 + 16) = a2;
  *(_DWORD *)(a3 + 28) = 0;
  *(_WORD *)(a3 + 24) = 1;
  *(_BYTE *)(a3 + 26) = 6;
  *(_QWORD *)(a3 + 40) = a3 + 32;
  *(_QWORD *)(a3 + 32) = a3 + 32;
  return RtlInsertHeadCircularList((INT64 *)(a1 + 32), (_QWORD *)a3);
}

Referenced by:

ExAcquireFastResourceShared
ExAcquireFastResourceSharedStarveExclusive
ExAcquireSharedWaitForExclusive
ExpAcquireSharedStarveExclusive