the function "f" is the xor (^) of "c" iterations of chained prfs. the first iteration of prf uses "password" as the prf key and "salt" concatenated with "i" encoded as a big-endian 32-bit integer as the input. (note that "i" is a 1-based index.) subsequent iterations of prf use "password" as the prf key and the output of the previous prf computation as the input: