EtwTraceReadyThread

VOID __stdcall EtwTraceReadyThread(_ETHREAD *Thread, UINT8 AdjustReason, INT8 AdjustIncrement, UINT64 Flags){
  int v5; 
  _EPROCESS *Process; 
  char v7; 
  VOID(__stdcall *Win32StartAddress)(VOID *); 
  _EPROCESS *v9; 
  INT64 v10; 
  int UniqueThread; 
  UINT8 v12; 
  INT8 v13; 
  char v14; 
  char v15; 
  PGET_UPDATED_BUS_RESOURCE p_UniqueThread; 
  int v17; 
  int v18; 

  UniqueThread = (int)Thread->Cid.UniqueThread;
  v5 = 5249538;
  v13 = AdjustIncrement;
  v12 = AdjustReason;
  v15 = 0;
  Process = Thread->Tcb.ApcState.Process;
  v14 = ~*((_BYTE *)&Thread->Tcb.MiscFlags + 6) & 2 | KeGetPcr()->Prcb._bf_0 & 1;
  v7 = (Process->Pcb.StackCount.Value & 7) != 0 ? 4 : 0;
  Win32StartAddress = (VOID(__stdcall *)(VOID *))Thread->Win32StartAddress;
  v14 = (v7 | v14 & 0xFB) ^ ((8 * Flags) ^ (v14 | v7)) & 8;
  if( (Flags & 2) != 0 || Win32StartAddress == KeSwapProcessOrStack || (char *)Win32StartAddress == (char *)EtwpLogger )
  {
    v5 = 5245442;
  }
  else if( EtwpHostSiloState != -4548 && (*(_DWORD *)(EtwpHostSiloState + 4552) & 0x200) != 0 )
  {
    EtwpCoverageSamplerReadyThread((INT64)Thread);
  }
  v9 = Thread->Tcb.Process;
  v18 = 0;
  p_UniqueThread = (PGET_UPDATED_BUS_RESOURCE)&UniqueThread;
  v17 = 8;
  LODWORD(v10) = v5;
  EtwTraceSiloKernelEvent((INT64)v9->ServerSilo, &p_UniqueThread, 1ui64, 0x20000200ui64, 1330, v10);
}

Referenced by:

No references.