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

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

    *first = *second = *first;
  }
}