KdpPrintString

UINT8 __fastcall KdpPrintString(_STRING *Output){
  UINT64 Length; 
  char *Buffer; 
  UINT64 *v3; 
  UINT64 v4; 
  UINT64 Flags; 
  UINT64 ActualSize; 
  __int128 v8; 
  __int128 v9; 
  int v10; 
  __int16 v11; 
  __int16 v12; 
  int v13; 
  int v14; 
  Length = Output->Length;
  Buffer = Output->Buffer;
  LODWORD(ActualSize) = 0;
  v14 = 0;
  LODWORD(Flags) = 4;
  v8 = 0i64;
  v9 = 0i64;
  KdpCopyMemoryChunks((UINT64)Buffer, KdpMessageBuffer, Length, 0i64, Flags, &ActualSize);
  if( (unsigned __int64)(unsigned int)ActualSize + 16 > (unsigned int)KdTransportMaxPacketSize )
    LODWORD(ActualSize) = KdTransportMaxPacketSize - 16;
  v11 = KeProcessorLevel;
  v10 = 12848;
  v12 = *((_DWORD *)KeGetPcr() + 105);
  LOWORD(v9) = 16;
  *((_QWORD *)&v9 + 1) = &v10;
  v13 = ActualSize;
  LOWORD(v8) = ActualSize;
  *((_QWORD *)&v8 + 1) = KdpMessageBuffer;
  KdSendPacket(3i64, &v9, &v8, &KdpContext);
  return KdpPollBreakInWithPortLock(v4, v3);
}

Referenced by:

KdRefreshDebuggerNotPresent
KdpPrint