function _getMessage(buffer /*: Buffer*/) /*: Array<BigInt>*/ {
  const words = [];
  let word = 0n;
  let byteLen = 0n;
  for (const c of buffer) {
    const b = byteLen++ & 0x7n;
    word |= BigInt(c) << (b << 3n);
    if (byteLen % 8n == 0n) {
      words.push(word);
      word = 0n;
    }
  }
  // Store original size (in bits)
  const bitSize = (byteLen << 3n) & U64;

  // Pad our message with a byte of 0x1 ala MD4 (Tiger1) padding
  const b = byteLen & 0x7n;
  if (b) {
    word |= 0x1n << (b << 3n);
    words.push(word);
    byteLen += 8n - b;
  } else {
    words.push(0x1n);
    byteLen += 8n;
  }

  for (byteLen %= 64n; byteLen < 56n; byteLen += 8n) {
    words.push(0n);
  }
  words.push(bitSize);
  return words;
}
(c) Meta Platforms, Inc. and affiliates. Confidential and proprietary.

An implementation of the Tiger hash function.  It specifically
supports the original PHP implementation that swapped byte order
(endianness) of the resulting digest to keep backwards
compatibility:
https://github.com/facebook/hhvm/blob/281303d/hphp/runtime/ext/hash/ext_hash.cpp#L94-L97

More on the Tiger algorithm:
  https://www.cs.technion.ac.il/~biham/Reports/Tiger/tiger/node3.html
  https://www.cl.cam.ac.uk/~rja14/Papers/tiger.pdf
  https://www.cl.cam.ac.uk/~rja14/Papers/tigersb.pdf

Implementation in C:
  https://www.cs.technion.ac.il/~biham/Reports/Tiger/tiger/node7.html

Flow does not support BigInt yet

@noflow
@oncall i18n_fbt_js