KdpSetCommonState

UINT8 __fastcall KdpSetCommonState(int a1, __int64 a2, __int64 a3){
  __int16 v4; 
  unsigned int ActiveProcessorCount; 
  unsigned int v7; 
  char *v8; 
  __int64 v9; 
  UINT8 result; 
  UINT64 Flags; 
  UINT64 Flagsa; 
  UINT64 TotalSize; 
  LODWORD(TotalSize) = 0;
  v4 = KeProcessorLevel;
  *(_DWORD *)a3 = a1;
  *(_WORD *)(a3 + 4) = v4;
  *(_WORD *)(a3 + 6) = *((_DWORD *)KeGetPcr() + 105);
  ActiveProcessorCount = KeQueryActiveProcessorCountEx(0xFFFFu);
  v7 = *(unsigned __int16 *)(a3 + 6);
  *(_DWORD *)(a3 + 8) = ActiveProcessorCount;
  if( ActiveProcessorCount <= v7 )
    *(_DWORD *)(a3 + 8) = v7 + 1;
  *(_QWORD *)(a3 + 16) = KeGetCurrentThread();
  v8 = *(char **)(a2 + 248);
  *(_QWORD *)(a3 + 24) = v8;
  *(_OWORD *)(a3 + 192) = 0i64;
  *(_OWORD *)(a3 + 208) = 0i64;
  LODWORD(Flags) = 4;
  *(_OWORD *)(a3 + 224) = 0i64;
  KdpCopyMemoryChunks((UINT64)v8, (PVOID)(a3 + 216), 0x10ui64, 0i64, Flags, &TotalSize);
  v9 = (unsigned int)TotalSize;
  *(_WORD *)(a3 + 212) = TotalSize;
  result = KdpDeleteBreakpointRange(v8, &v8[v9 - 1]);
  if( result )
  {
    LODWORD(Flagsa) = 4;
    return KdpCopyMemoryChunks((UINT64)v8, (PVOID)(a3 + 216), (unsigned int)v9, 0i64, Flagsa, &TotalSize);
  }
  return result;
}

Referenced by:

KdpReportCommandStringStateChange
KdpReportExceptionStateChange
KdpReportLoadSymbolsStateChange