Consider the following unit test:
[TestMethod] public void TestByteToString() { var guid = new Guid(\"61772f3ae5de5f4a8577eb1003c5c054\");
A GUID is structured as follows:
int a short b short c byte[8] d
So for the part represented by a your code gets the bytes reversed. All other parts are transformed correctly.
a