Every single program I’ve disassembled (except for libraries) contained this at the end

Disassembly of section .fini:

0000000000002f58 <.fini>:
    2f58:       f3 0f 1e fa             endbr64
    2f5c:       48 83 ec 08             sub    $0x8,%rsp
    2f60:       48 83 c4 08             add    $0x8,%rsp
    2f64:       c3                      ret

I don’t understand the point of subtracting and then adding the same value to the same address of memory. What’s the meaning of these instructions? I am new to low-level stuff.

I first thought that the processor saturates subtraction like the saturating_sub in rust, and the instructions mean “If 0x8 is smaller than %rsp, set it to %rsp” but it turns out it doesn’t.