ExpAddFastOwnerEntryToThreadList

INT64 *__fastcall ExpAddFastOwnerEntryToThreadList(INT64 a1, INT64 a2, CHAR a3, INT64 a4){
  INT64 *result; 
  INT64 v5; 

  *(_BYTE *)(a4 + 18) = 1;
  *(_QWORD *)(a4 + 48) = a4 + 40;
  *(_QWORD *)(a4 + 40) = a4 + 40;
  if( a3 )
    result = (INT64 *)(a1 + 1600);
  else
    result = (INT64 *)(a1 + 1576);
  v5 = *result;
  if( *(INT64 **)(*result + 8) != result )
    __fastfail(3u);
  *(_QWORD *)a4 = v5;
  *(_QWORD *)(a4 + 8) = result;
  *(_QWORD *)(v5 + 8) = a4;
  *result = a4;
  return result;
}

Referenced by:

ExAcquireFastResourceExclusive
ExAcquireFastResourceShared
ExAcquireFastResourceSharedStarveExclusive
ExDisownFastResource