KdpRestoreBreakPointEx

INT64 __fastcall KdpRestoreBreakPointEx(INT64 a1, UINT16 *a2){
  unsigned int v3; 
  char *v5; 
  unsigned int i; 
  UINT64 Flags; 
  UINT64 ActualSize; 
  __int64 v10[3]; 
  char Buffer[128]; 
  LODWORD(ActualSize) = 0;
  v3 = *(_DWORD *)(a1 + 16);
  v10[0] = 56i64;
  v10[1] = a1;
  if( *a2 == 4i64 * v3
    && (LODWORD(Flags) = 4,
        KdpCopyMemoryChunks(*((_QWORD *)a2 + 1), Buffer, 4 * v3, 0i64, Flags, &ActualSize),
        (unsigned int)ActualSize == 4i64 * *(unsigned int *)(a1 + 16)) )
  {
    *(_DWORD *)(a1 + 8) = 0;
    v5 = Buffer;
    for( i = 0; i < *(_DWORD *)(a1 + 16); v5 += 4 )
    {
      if( !KdpDeleteBreakpoint(*(unsigned int *)v5) )
        *(_DWORD *)(a1 + 8) = -1073741823;
      ++i;
    }
  }
  else
  {
    *(_DWORD *)(a1 + 8) = -1073741823;
  }
  return KdSendPacket(2i64, v10, a2, &KdpContext);
}

Referenced by:

KdpSendWaitContinue