KdpRestoreBreakPointEx

VOID __stdcall KdpRestoreBreakPointEx(_DBGKD_MANIPULATE_STATE64 *m, _STRING *AdditionalData){
  unsigned int Unused; 
  char *v5; 
  unsigned int i; 
  UINT64 Flags; 
  UINT64 ActualSize; 
  __int64 v9[3]; 
  char Buffer[128]; 

  LODWORD(ActualSize) = 0;
  Unused = m->u.GetContext.Unused;
  v9[0] = 56i64;
  v9[1] = (__int64)m;
  if( AdditionalData->Length == 4i64 * Unused
    && (LODWORD(Flags) = 4,
        KdpCopyMemoryChunks((UINT64)AdditionalData->Buffer, Buffer, 4 * Unused, 0i64, Flags, &ActualSize),
        (unsigned int)ActualSize == 4i64 * m->u.GetContext.Unused) )
  {
    m->ReturnStatus = 0;
    v5 = Buffer;
    for( i = 0; i < m->u.GetContext.Unused; v5 += 4 )
    {
      if( !KdpDeleteBreakpoint(*(unsigned int *)v5) )
        m->ReturnStatus = -1073741823;
      ++i;
    }
  }
  else
  {
    m->ReturnStatus = -1073741823;
  }
  KdSendPacket(2i64, v9, AdditionalData, &KdpContext);
}

Referenced by:

KdpSendWaitContinue