All pastes #465330 Raw Edit

Someone

public text v1 · immutable
#465330 ·published 2007-04-30 02:14 UTC
rendered paste body
int DecodeStarcraftKey( char *key) {
  unsigned long  /*r*/n, n2, v, v2/*, keyvalue*/;
  char /*c1, */c2, c;
  int bValid;
  int i;

  v = 3;
  for (i = 0; i < 12; i++) {
    c = key[i];
    n = Get_Num_Value(c);
    n2 = v * 2;
    n ^= n2;
    v += n;
  }

  v %= 10;
  if (Get_Hex_Value(v) == key[12])
    bValid = 0;
  else
    bValid = -1;

  v = 194;
  for (i = 11; /*v >= 7,*/ i >= 0; i--) {
    c = key[i];
    n = v / 12;
    n2 = v % 12;
    v -= 17;
    c2 = key[n2];
    key[i] = c2;
    key[n2] = c;
  }

  v2 = 0x13AC9741;
  for (i = 11; i >= 0; i--) {
    c = toupper(key[i]);
    key[i] = c;
    if (c <= '7') {
      v = v2;
      c2 = v & 0xFF;
      c2 &= 7;
      c2 ^= c;
      v >>= 3;
      key[i] = c2;
      v2 = v;
    } else if (c < 'A') {
      c2 = (unsigned char) i;
      c2 &= 1;
      c2 ^= c;
      key[i] = c2;
    }
  }
  return bValid;
}