ExpPrepareToWaitForResourceExclusive
INT64 __fastcall ExpPrepareToWaitForResourceExclusive(INT64 a1, INT64 a2, INT64 a3){
INT64 result;
INT64 *v4;
++*(_DWORD *)(a1 + 76);
*(_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;
result = *(_QWORD *)(a1 + 40);
if( result )
{
v4 = *(INT64 **)(result + 8);
if( *v4 != result )
__fastfail(3u);
*(_QWORD *)a3 = result;
*(_QWORD *)(a3 + 8) = v4;
*v4 = a3;
*(_QWORD *)(result + 8) = a3;
}
else
{
*(_QWORD *)(a3 + 8) = a3;
*(_QWORD *)a3 = a3;
*(_QWORD *)(a1 + 40) = a3;
}
return result;
}Referenced by:
ExAcquireFastResourceExclusive
ExAcquireResourceExclusiveLite