SshpWriteBlocker

NTSTATUS __stdcall SshpWriteBlocker(PKSPIN_LOCK SpinLock){
  UINT64 v1; 
  KSPIN_LOCK v2; 
  unsigned __int64 v3; 
  unsigned __int8 v5; 
  unsigned __int64 v6; 
  __int128 v7; 
  __int128 v8; 
  __int128 v9; 
  __int128 v10; 
  __int128 v11; 
  __int128 v12; 
  __int128 v13; 
  __int128 v14; 
  __int128 v15; 
  __int128 v16; 
  __int128 v17; 
  __int128 v18; 
  __int128 v19; 
  __int128 v20; 
  __int128 v21; 
  int v22; 
  unsigned __int64 v23; 
  int v24; 
  unsigned __int64 v25; 
  __int64 v26; 
  UINT64 UserDataCount; 
  char v29; 
  int v30; 
  int v31; 
  __int64 v32; 
  __int64 v33; 
  __int64 v34; 
  __int64 v35; 
  __int128 v36[3]; 
  __int128 v37[2]; 
  __int128 v38; 
  __int128 v39[2]; 
  __int128 v40[3]; 
  __int128 v41[2]; 
  __int128 v42; 
  __int128 v43[2]; 
  EVENT_DATA_DESCRIPTOR UserData; 
  KSPIN_LOCK v45; 
  __int64 v46; 
  int *v47; 
  __int64 v48; 
  __int64 v49; 
  int v50; 
  int v51; 
  KSPIN_LOCK v52; 
  __int64 v53; 
  __int128 *v54; 
  __int64 v55; 
  __int64 *v56; 
  __int64 v57; 
  struct _EVENT_DATA_DESCRIPTOR v58; 
  __int64 *v59; 
  __int64 v60; 
  KSPIN_LOCK v61; 
  __int64 v62; 
  KSPIN_LOCK v63; 
  __int64 v64; 
  int *v65; 
  __int64 v66; 
  __int64 v67; 
  int v68[2]; 
  int *v69; 
  __int64 v70; 
  __int64 *v71; 
  __int64 v72; 
  __int64 v73; 
  __int64 v74; 
  __int64 v75; 
  __int64 v76; 
  __int64 v77; 
  __int64 v78; 
  __int128 *v79; 
  __int64 v80; 
  __int64 *v81; 
  __int64 v82; 
  __int64 v83; 
  __int64 v84; 
  __int64 v85; 
  __int64 v86; 
  __int64 v87; 
  __int64 v88; 
  __int128 *v89; 
  __int64 v90; 
  __int64 *v91; 
  __int64 v92; 
  v2 = SpinLock[36];
  v30 = 0;
  v3 = v1;
  v29 = 0;
  KeAcquireSpinLockRaiseToDpc(SpinLock, v1);
  v6 = v5;
  if( (SpinLock[1] & 2) != 0 )
    SshpStopBlockerAccounting((INT64)SpinLock, *(UINT64 *)&KUSER_SHARED_DATA.InterruptTime.LowPart, 2i64);
  v7 = *(_OWORD *)(SpinLock + 5);
  v36[0] = *(_OWORD *)(SpinLock + 3);
  v8 = *(_OWORD *)(SpinLock + 7);
  v36[1] = v7;
  v9 = *(_OWORD *)(SpinLock + 9);
  v36[2] = v8;
  v10 = *(_OWORD *)(SpinLock + 11);
  v37[0] = v9;
  v11 = *(_OWORD *)(SpinLock + 13);
  v37[1] = v10;
  v12 = *(_OWORD *)(SpinLock + 15);
  v38 = v11;
  v13 = *(_OWORD *)(SpinLock + 17);
  v39[0] = v12;
  v14 = *(_OWORD *)(SpinLock + 19);
  v39[1] = v13;
  v15 = *(_OWORD *)(SpinLock + 21);
  v40[0] = v14;
  v16 = *(_OWORD *)(SpinLock + 23);
  v40[1] = v15;
  v17 = *(_OWORD *)(SpinLock + 25);
  v40[2] = v16;
  v18 = *(_OWORD *)(SpinLock + 27);
  v41[0] = v17;
  v19 = *(_OWORD *)(SpinLock + 29);
  v41[1] = v18;
  v20 = *(_OWORD *)(SpinLock + 31);
  v42 = v19;
  v21 = *(_OWORD *)(SpinLock + 33);
  v43[0] = v20;
  v43[1] = v21;
  memset((INT64)(SpinLock + 3), 0i64);
  memset((INT64)(SpinLock + 19), 0i64);
  v22 = SpinLock[1] & 4;
  KxReleaseSpinLock(SpinLock);
  __writecr8(v6);
  v23 = SshpSessionGuid - *(_QWORD *)&GUID_SPM_LOW_POWER_CS.Data1;
  if( (_QWORD)SshpSessionGuid == *(_QWORD *)&GUID_SPM_LOW_POWER_CS.Data1 )
    v23 = *((_QWORD *)&SshpSessionGuid + 1) - *(_QWORD *)GUID_SPM_LOW_POWER_CS.Data4;
  if( !v23 )
  {
    if( SshpTraceHandleRegistered && v22 )
    {
      v30 = *(unsigned __int16 *)(v2 + 80) >> 1;
      v29 = SshpSessionId;
      UserData.Ptr = (unsigned __int64)&v29;
      v45 = v2 + 48;
      v47 = &v30;
      *(_QWORD *)&UserData.Size = 1i64;
      v46 = 16i64;
      v48 = 4i64;
      v24 = *(unsigned __int16 *)(v2 + 80);
      v49 = *(_QWORD *)(v2 + 88);
      v52 = v2 + 64;
      v54 = v36;
      v56 = &SshpSessionId;
      LODWORD(UserDataCount) = 7;
      v50 = v24;
      v51 = 0;
      v53 = 16i64;
      v55 = 8i64;
      v57 = 8i64;
      LODWORD(v23) = EtwWriteEx(
                       SshpTraceHandle,
                       (EVENT_DESCRIPTOR *)&SLEEPSTUDY_EVT_SCENARIO_BLOCKER,
                       0i64,
                       0i64,
                       0i64,
                       0i64,
                       UserDataCount,
                       &UserData);
    }
    if( v3 )
    {
      v23 = 100i64 * *(_QWORD *)&v36[0] / v3;
      v25 = v23;
    }
    else
    {
      v25 = 0i64;
    }
    if( v3 >= SshpSessionThresholdHns )
    {
      LODWORD(v23) = SshpActiveThresholdPercent;
      if( v25 >= (unsigned int)SshpActiveThresholdPercent )
      {
        if( SshpTelemetryHandleRegistered )
        {
          if( (unsigned int)dword_140C046E0 > 5 )
          {
            LOBYTE(v23) = tlgKeywordOn((__int64)&dword_140C046E0, 0x400000000000i64);
            if( (_BYTE)v23 )
            {
              v32 = SshpSessionId;
              v33 = v26;
              v59 = &v32;
              v60 = 8i64;
              v61 = v2 + 48;
              v62 = 16i64;
              v63 = v2 + 64;
              v65 = v68;
              v67 = *(_QWORD *)(v2 + 88);
              v68[0] = *(unsigned __int16 *)(v2 + 80);
              v31 = *(_DWORD *)(v2 + 40);
              v69 = &v31;
              v71 = &v33;
              v73 = (__int64)&v38 + 8;
              v75 = (__int64)v36 + 8;
              v77 = (__int64)v39 + 12;
              v79 = v37;
              v34 = *(_QWORD *)&v40[0];
              v81 = &v34;
              v83 = (__int64)&v42 + 8;
              v85 = (__int64)v40 + 8;
              v87 = (__int64)v43 + 12;
              v89 = v41;
              v91 = &v35;
              v64 = 16i64;
              v66 = 2i64;
              v68[1] = 0;
              v70 = 4i64;
              v72 = 8i64;
              v74 = 20i64;
              v76 = 40i64;
              v78 = 20i64;
              v80 = 40i64;
              v82 = 8i64;
              v84 = 20i64;
              v86 = 40i64;
              v88 = 20i64;
              v90 = 40i64;
              v35 = 0x1000000i64;
              v92 = 8i64;
              LODWORD(v23) = tlgWriteTransfer_EtwWriteTransfer(
                               (__int64)&dword_140C046E0,
                               (unsigned __int8 *)word_1400299DA,
                               0i64,
                               0i64,
                               0x13u,
                               &v58);
            }
          }
        }
      }
    }
  }
  return v23;
}

Referenced by:

SshpSendSessionData