committing hash function breakdown with comments from the official doc