INT64 __fastcall AlpcpCaptureWorkOnBehalfAttribute(INT64 a1){
_ETHREAD *CurrentThread;
__int64 WorkOnBehalfThread;
struct _DMA_ADAPTER *v4;
__int64 v5;
_ETHREAD *v6;
int v8;
_ALPC_WORK_ON_BEHALF_TICKET Ticket;
CurrentThread = (_ETHREAD *)KeGetCurrentThread();
v8 = 0;
Ticket = 0i64;
WorkOnBehalfThread = PsGetWorkOnBehalfThread((__int64)CurrentThread, &v8);
v4 = (struct _DMA_ADAPTER *)WorkOnBehalfThread;
if( WorkOnBehalfThread )
{
v6 = (_ETHREAD *)WorkOnBehalfThread;
goto LABEL_5;
}
IoThreadToProcess(CurrentThread);
if( *(_QWORD *)(v5 + 2392) || PoEnergyEstimationEnabled() )
{
v6 = CurrentThread;
LABEL_5:
PsEncodeThreadWorkOnBehalfTicket(v6, &Ticket);
}
if( v8 )
HalPutDmaAdapter(v4);
*(_ALPC_WORK_ON_BEHALF_TICKET *)(a1 + 64) = Ticket;
return 0i64;
}