KdpSetContext

INT64 __fastcall KdpSetContext(INT64 a1, UINT16 *a2, CONTEXT *a3){
  __int64 v4; 
  _CONTEXT *v5; 
  __int128 v7; 
  UINT64 ContextFlags; 
  v7 = 0i64;
  LODWORD(ContextFlags) = 0;
  v4 = *(unsigned __int16 *)(a1 + 6);
  *((_QWORD *)&v7 + 1) = a1;
  LOWORD(v7) = 56;
  if( (unsigned __int16)v4 < 0x500u && *(&KiProcessorBlock + v4) && KdpContextSent )
  {
    *(_DWORD *)(a1 + 8) = 0;
    if( (_WORD)v4 != (unsigned __int16)*((_DWORD *)KeGetPcr() + 105) )
      a3 = (CONTEXT *)*((_QWORD *)*(&KiProcessorBlock + v4) + 4280);
    v5 = (_CONTEXT *)*((_QWORD *)a2 + 1);
    KdpSanitizeContextFlags(v5, *a2, &ContextFlags);
    KdpCopyContext(a3, (unsigned int)ContextFlags, v5);
  }
  else
  {
    *(_DWORD *)(a1 + 8) = -1073741823;
  }
  return KdSendPacket(2i64, &v7, 0i64, &KdpContext);
}

Referenced by:

KdpSendWaitContinue