daran:
Result := Result + WideChar(dez);
Das ist das schlimmste was du dem Speicher antun kannst.
Du weißt das Result am Ende eine Größe von "28 * SizeOf(WideChar)" hat. Also setze result gleich auf diese Größe um zu vermeiden das der Speicher jedes mal neu reserviert und umkopert werden muss.