The r10-instead-of-rcx quirk you'll learn here exists because the x86-64 `syscall` instruction itself clobbers rcx and r11 to hold the return address and flags, a detail glibc's syscall wrappers and Go's runtime assembly both have to account for by hand. This ABI is exactly what `objdump -d` reveals when reverse-engineering a stripped binary, and mismatching it is a classic bug in hand-written syscall stubs for new libc ports.