int __fastcall KiSuspendUmsThread(_ETHREAD *a1, _DWORD *a2){
INT64 v2;
int result;
v2 = *(_QWORD *)a1->Tcb.WaitBlock[3].Object;
*a2 = 0;
if( (*((_DWORD *)a1->Tcb.WaitBlock[3].Object + 20) & 4) != 0 )
result = PspRundownUmsThreadForApcDelivery(a1, a2, v2, 0);
else
result = 0;
if( result >= 0 )
return KeUpdateUmsThreadState(v2, 1i64, 0);
return result;
}