Your source code
Reading what you sent, copying it, downloading it, and sending a corrected version.
Source code on a submission's screen opens what you actually sent.
Whether you may read it is the activity's decision, even though you sent it. Where the activity does not share a submission's files with you, there is no Source code button on the submission's screen, and reaching the editor by its address gives you a notice instead: The source code is not available.
It is a full editor, read-only until you say otherwise, with your language's highlighting. A submission carrying several files gets a tab per file; a submission with one shows its name above the editor.
Copy and download
Copy puts the file on screen into the clipboard. Download saves it under its own name. Both act on what is currently displayed — including your unsaved edits, if you have started editing.
Edit and resubmit
Edit and resubmit unlocks the editor. The button then becomes Send as a new submission.
The original is never rewritten
Sending creates a new submission; this one is left untouched. The submission you are looking at stays exactly as it was judged — same source, same verdict, same score. What you send becomes a new submission, and you land on its screen.
The new submission carries the same declaration the original did — the same problem type and the same language — so it is judged as what it is rather than as whatever a default would have made it.
It is an ordinary submission in every other way: it spends your allowance, it appears in My submissions, and it is refused if the round has stopped accepting.