st :=
copy(st, length(st) div 2 + byte(odd(length(st))) + 1, length(st) div 2) +
copy(st, length(st) div 2 + 1, byte(odd(length(st)))) +
copy(st, 1, length(st) div 2);
st :=
copy(st, length(st) div 2 + byte(odd(length(st))) + 1, length(st) div 2) +
copy(st, length(st) div 2 + 1, byte(odd(length(st)))) +
copy(st, 1, length(st) div 2);