reverse (ulong -&w array[], int length)
{
  steps = (length - (length %% 2)) / 2;

  for (i = 0; i < steps; i ++)
  {
    first = &array[i];
    second = &array[pair - 1, { pair = length - i }];

    *first = *second = *first;
  }
}