Based on the example given in the question (see here) the following (hex-encoded) bytes would be hashed:
From the Public-Key Packet
Ciphertype Byte: 99
Key Length: 01 0d
CreatedAt: 5e f4 a2 c6
n (with tag): 08 00 a8 14 6d b3 75 12 72 33 1e 92 54 c5 43 f6 44 d2 22 5d 4d 9b 0c b8 5d 60 60 8b f0 39 08 1e 31 29 e2 f5 4c 83 e0 ...
The public key follows the OpenPGP message format.
The part inside the -----…----- blocks, apart from the headers, is encoded in base64 (the OpenPGP specification calls it Radix-64). If you decode it, you'll see that only the first byte of the data changes: mDME decodes to 0x98 0x33 0x04 while xjME decodes to 0xc6 0x33 0x04.
The data that's encoded in Base64 ...
Needed to stay out of libgcrypt repository and instead remain focused within the higher level gnupg repository, specifically gnupg/g10/keyid.c. The keygrip_from_pk() function is what makes the public key algo specific calls to build the S expressions that feeds the lower level gcry_pk_get_keygrip() function used to calculate the binary keygrip array that is ...