`spiral[n_] := Module[
{l = {{0, 0}, {1, 0}}, xPr, sPr},
xPr@l_ := Reverse @@ Differences[l[[-2 ;;]]] {1, -1} + Last@l;
sPr@l_ := 2 l[[-1]] - l[[-2]];
Do[AppendTo[l, If[MemberQ[l, xPr@l], sPr@l, xPr@l]], {n - 2}]; l]
ListLinePlot[spiral@100, AspectRatio -> 1]`