#include <bits/stdc++.h>
template <typename T>
bool chkmax(T &x, T y) {
  return x < y ? x = y, true : false;
}
template <typename T>
bool chkmin(T &x, T y) {
  return x > y ? x = y, true : false;
}
using namespace std;
long long ksm(long long a, long long b) {
  if (!b) return 1;
  long long ns = ksm(a, b >> 1);
  ns = ns * ns % 998244353;
  if (b & 1) ns = ns * a % 998244353;
  return ns;
}
int main() {
  int t;
  cin >> t;
  while (t--) {
    int a, b, c, d;
    scanf("%d%d%d%d", &a, &b, &c, &d);
    long long heal = 1ll * b * c;
    long long ans = 0;
    if (heal < a)
      ans = -1;
    else {
      long long cur = a / b;
      int tr = cur / d;
      long long lst = cur / d * d;
      long long dmg = 1ll * a * tr + a;
      long long hr = 1ll * lst * (lst / d + 1) / 2 * b;
      ans = dmg - hr;
    }
    printf("%lld\n", ans);
  }
  return 0;
}
