_ZN11flatbuffers10ReadScalarIjEET_PKv:
  427|  13.9M|T ReadScalar(const void *p) {
  428|  13.9M|  return EndianScalar(*reinterpret_cast<const T *>(p));
  429|  13.9M|}
_ZN11flatbuffers12EndianScalarIjEET_S1_:
  416|  16.6M|template<typename T> T EndianScalar(T t) {
  417|  16.6M|  #if FLATBUFFERS_LITTLEENDIAN
  418|  16.6M|    return t;
  419|       |  #else
  420|       |    return EndianSwap(t);
  421|       |  #endif
  422|  16.6M|}
_ZN11flatbuffers10ReadScalarIiEET_PKv:
  427|   128M|T ReadScalar(const void *p) {
  428|   128M|  return EndianScalar(*reinterpret_cast<const T *>(p));
  429|   128M|}
_ZN11flatbuffers12EndianScalarIiEET_S1_:
  416|   128M|template<typename T> T EndianScalar(T t) {
  417|   128M|  #if FLATBUFFERS_LITTLEENDIAN
  418|   128M|    return t;
  419|       |  #else
  420|       |    return EndianSwap(t);
  421|       |  #endif
  422|   128M|}
_ZN11flatbuffers10ReadScalarItEET_PKv:
  427|   151M|T ReadScalar(const void *p) {
  428|   151M|  return EndianScalar(*reinterpret_cast<const T *>(p));
  429|   151M|}
_ZN11flatbuffers12EndianScalarItEET_S1_:
  416|   151M|template<typename T> T EndianScalar(T t) {
  417|   151M|  #if FLATBUFFERS_LITTLEENDIAN
  418|   151M|    return t;
  419|       |  #else
  420|       |    return EndianSwap(t);
  421|       |  #endif
  422|   151M|}
_ZN11flatbuffers10ReadScalarIhEET_PKv:
  427|  3.75M|T ReadScalar(const void *p) {
  428|  3.75M|  return EndianScalar(*reinterpret_cast<const T *>(p));
  429|  3.75M|}
_ZN11flatbuffers12EndianScalarIhEET_S1_:
  416|  3.75M|template<typename T> T EndianScalar(T t) {
  417|  3.75M|  #if FLATBUFFERS_LITTLEENDIAN
  418|  3.75M|    return t;
  419|       |  #else
  420|       |    return EndianSwap(t);
  421|       |  #endif
  422|  3.75M|}
_ZN11flatbuffers10ReadScalarImEET_PKv:
  427|  6.04k|T ReadScalar(const void *p) {
  428|  6.04k|  return EndianScalar(*reinterpret_cast<const T *>(p));
  429|  6.04k|}
_ZN11flatbuffers12EndianScalarImEET_S1_:
  416|  6.04k|template<typename T> T EndianScalar(T t) {
  417|  6.04k|  #if FLATBUFFERS_LITTLEENDIAN
  418|  6.04k|    return t;
  419|       |  #else
  420|       |    return EndianSwap(t);
  421|       |  #endif
  422|  6.04k|}

_ZN11flatbuffers19BufferHasIdentifierEPKvPKcb:
  193|  12.7k|                                bool size_prefixed = false) {
  194|  12.7k|  return strncmp(GetBufferIdentifier(buf, size_prefixed), identifier,
  195|  12.7k|                 flatbuffers::kFileIdentifierLength) == 0;
  196|  12.7k|}
_ZN11flatbuffers19GetBufferIdentifierEPKvb:
  186|  12.7k|                                       bool size_prefixed = false) {
  187|  12.7k|  return reinterpret_cast<const char*>(buf) +
  188|  12.7k|         ((size_prefixed) ? 2 * sizeof(uoffset_t) : sizeof(uoffset_t));
  ------------------
  |  Branch (188:11): [True: 0, False: 12.7k]
  ------------------
  189|  12.7k|}
_ZN11flatbuffers14IndirectHelperINS_6OffsetINS_6StringEEEvE4ReadEPKhj:
  130|  53.5k|  static return_type Read(const uint8_t* const p, const offset_type i) {
  131|       |    // Offsets are relative to themselves, so first update the pointer to
  132|       |    // point to the offset location.
  133|  53.5k|    const uint8_t* const offset_location = p + i * element_stride;
  134|       |
  135|       |    // Then read the scalar value of the offset (which may be 32 or 64-bits) and
  136|       |    // then determine the relative location from the offset location.
  137|  53.5k|    return reinterpret_cast<return_type>(
  138|  53.5k|        offset_location + ReadScalar<offset_type>(offset_location));
  139|  53.5k|  }
_ZN11flatbuffers14IndirectHelperINS_6OffsetIN6MyGame7Example7MonsterEEEvE4ReadEPKhj:
  130|  1.00M|  static return_type Read(const uint8_t* const p, const offset_type i) {
  131|       |    // Offsets are relative to themselves, so first update the pointer to
  132|       |    // point to the offset location.
  133|  1.00M|    const uint8_t* const offset_location = p + i * element_stride;
  134|       |
  135|       |    // Then read the scalar value of the offset (which may be 32 or 64-bits) and
  136|       |    // then determine the relative location from the offset location.
  137|  1.00M|    return reinterpret_cast<return_type>(
  138|  1.00M|        offset_location + ReadScalar<offset_type>(offset_location));
  139|  1.00M|  }
_ZN11flatbuffers14IndirectHelperINS_6OffsetIN6MyGame7Example10ReferrableEEEvE4ReadEPKhj:
  130|   134k|  static return_type Read(const uint8_t* const p, const offset_type i) {
  131|       |    // Offsets are relative to themselves, so first update the pointer to
  132|       |    // point to the offset location.
  133|   134k|    const uint8_t* const offset_location = p + i * element_stride;
  134|       |
  135|       |    // Then read the scalar value of the offset (which may be 32 or 64-bits) and
  136|       |    // then determine the relative location from the offset location.
  137|   134k|    return reinterpret_cast<return_type>(
  138|   134k|        offset_location + ReadScalar<offset_type>(offset_location));
  139|   134k|  }
_ZN11flatbuffers14IndirectHelperINS_6OffsetIN6MyGame7Example4StatEEEvE4ReadEPKhj:
  130|  16.2k|  static return_type Read(const uint8_t* const p, const offset_type i) {
  131|       |    // Offsets are relative to themselves, so first update the pointer to
  132|       |    // point to the offset location.
  133|  16.2k|    const uint8_t* const offset_location = p + i * element_stride;
  134|       |
  135|       |    // Then read the scalar value of the offset (which may be 32 or 64-bits) and
  136|       |    // then determine the relative location from the offset location.
  137|  16.2k|    return reinterpret_cast<return_type>(
  138|  16.2k|        offset_location + ReadScalar<offset_type>(offset_location));
  139|  16.2k|  }

_ZN11flexbuffers22VerifyNestedFlexBufferILb0EEEbPKN11flatbuffers6VectorIhjEERNS1_16VerifierTemplateIXT_EEE:
   29|   622k|    flatbuffers::VerifierTemplate<B>& verifier) {
   30|   622k|  if (!nested) return true;
  ------------------
  |  Branch (30:7): [True: 619k, False: 2.35k]
  ------------------
   31|  2.35k|  return verifier.Check(flexbuffers::VerifyBuffer(
   32|  2.35k|      nested->data(), nested->size(), verifier.GetFlexReuseTracker()));
   33|   622k|}
_ZN11flexbuffers22VerifyNestedFlexBufferILb1EEEbPKN11flatbuffers6VectorIhjEERNS1_16VerifierTemplateIXT_EEE:
   29|   621k|    flatbuffers::VerifierTemplate<B>& verifier) {
   30|   621k|  if (!nested) return true;
  ------------------
  |  Branch (30:7): [True: 619k, False: 2.19k]
  ------------------
   31|  2.19k|  return verifier.Check(flexbuffers::VerifyBuffer(
   32|  2.19k|      nested->data(), nested->size(), verifier.GetFlexReuseTracker()));
   33|   621k|}

_ZN11flexbuffers12VerifyBufferEPKhmPNSt3__16vectorIhNS2_9allocatorIhEEEE:
 2075|  4.54k|                         std::vector<uint8_t>* reuse_tracker = nullptr) {
 2076|  4.54k|  Verifier verifier(buf, buf_len, reuse_tracker);
 2077|  4.54k|  return verifier.VerifyBuffer();
 2078|  4.54k|}
_ZN11flexbuffers8VerifierC2EPKhmPNSt3__16vectorIhNS3_9allocatorIhEEEEbm:
 1853|  4.54k|      : buf_(buf),
 1854|  4.54k|        size_(buf_len),
 1855|  4.54k|        depth_(0),
 1856|  4.54k|        max_depth_(max_depth),
 1857|  4.54k|        num_vectors_(0),
 1858|  4.54k|        max_vectors_(buf_len),
 1859|  4.54k|        check_alignment_(_check_alignment),
 1860|  4.54k|        reuse_tracker_(reuse_tracker) {
 1861|  4.54k|    FLATBUFFERS_ASSERT(static_cast<int32_t>(size_) <
 1862|  4.54k|                       FLATBUFFERS_MAX_BUFFER_SIZE);
 1863|  4.54k|    if (reuse_tracker_) {
  ------------------
  |  Branch (1863:9): [True: 0, False: 4.54k]
  ------------------
 1864|      0|      reuse_tracker_->clear();
 1865|      0|      reuse_tracker_->resize(size_, PackedType(BIT_WIDTH_8, FBT_NULL));
 1866|      0|    }
 1867|  4.54k|  }
_ZN11flexbuffers8Verifier12VerifyBufferEv:
 2052|  4.54k|  bool VerifyBuffer() {
 2053|  4.54k|    if (!Check(size_ >= 3)) return false;
  ------------------
  |  Branch (2053:9): [True: 38, False: 4.51k]
  ------------------
 2054|  4.51k|    auto end = buf_ + size_;
 2055|  4.51k|    auto byte_width = *--end;
 2056|  4.51k|    auto packed_type = *--end;
 2057|  4.51k|    return VerifyByteWidth(byte_width) && Check(end - buf_ >= byte_width) &&
  ------------------
  |  Branch (2057:12): [True: 4.46k, False: 51]
  |  Branch (2057:43): [True: 4.45k, False: 4]
  ------------------
 2058|  4.45k|           VerifyRef(Reference(end - byte_width, byte_width, packed_type));
  ------------------
  |  Branch (2058:12): [True: 3.01k, False: 1.43k]
  ------------------
 2059|  4.54k|  }
_ZNK11flexbuffers8Verifier5CheckEb:
 1871|  7.37M|  bool Check(bool ok) const {
 1872|       |    // clang-format off
 1873|       |    #ifdef FLATBUFFERS_DEBUG_VERIFICATION_FAILURE
 1874|       |      FLATBUFFERS_ASSERT(ok);
 1875|       |    #endif
 1876|       |    // clang-format on
 1877|  7.37M|    return ok;
 1878|  7.37M|  }
_ZN11flexbuffers8Verifier15VerifyByteWidthEm:
 1897|  1.31M|  bool VerifyByteWidth(size_t width) {
 1898|  1.31M|    return Check(width == 1 || width == 2 || width == 4 || width == 8);
  ------------------
  |  Branch (1898:18): [True: 1.24M, False: 70.6k]
  |  Branch (1898:32): [True: 41.5k, False: 29.1k]
  |  Branch (1898:46): [True: 21.1k, False: 8.01k]
  |  Branch (1898:60): [True: 7.83k, False: 181]
  ------------------
 1899|  1.31M|  }
_ZN11flexbuffers8Verifier9VerifyRefENS_9ReferenceE:
 1990|  1.30M|  bool VerifyRef(Reference r) {
 1991|       |    // r.parent_width_ and r.data_ already verified.
 1992|  1.30M|    if (!VerifyByteWidth(r.byte_width_) || !VerifyType(r.type_)) {
  ------------------
  |  Branch (1992:9): [True: 0, False: 1.30M]
  |  Branch (1992:44): [True: 29, False: 1.30M]
  ------------------
 1993|     29|      return false;
 1994|     29|    }
 1995|  1.30M|    if (IsInline(r.type_)) {
  ------------------
  |  Branch (1995:9): [True: 522k, False: 784k]
  ------------------
 1996|       |      // Inline scalars, don't require further verification.
 1997|   522k|      return true;
 1998|   522k|    }
 1999|       |    // All remaining types are an offset.
 2000|   784k|    auto off = ReadUInt64(r.data_, r.parent_width_);
 2001|   784k|    if (!VerifyOffset(off, r.data_)) return false;
  ------------------
  |  Branch (2001:9): [True: 236, False: 784k]
  ------------------
 2002|   784k|    auto p = r.Indirect();
 2003|   784k|    if (!VerifyAlignment(p, r.byte_width_)) return false;
  ------------------
  |  Branch (2003:9): [True: 26, False: 783k]
  ------------------
 2004|   783k|    switch (r.type_) {
 2005|  10.9k|      case FBT_INDIRECT_INT:
  ------------------
  |  Branch (2005:7): [True: 10.9k, False: 772k]
  ------------------
 2006|  12.6k|      case FBT_INDIRECT_UINT:
  ------------------
  |  Branch (2006:7): [True: 1.64k, False: 782k]
  ------------------
 2007|  18.9k|      case FBT_INDIRECT_FLOAT:
  ------------------
  |  Branch (2007:7): [True: 6.30k, False: 777k]
  ------------------
 2008|  18.9k|        return VerifyFromPointer(p, r.byte_width_);
 2009|   125k|      case FBT_KEY:
  ------------------
  |  Branch (2009:7): [True: 125k, False: 658k]
  ------------------
 2010|   125k|        return VerifyKey(p);
 2011|  7.56k|      case FBT_MAP:
  ------------------
  |  Branch (2011:7): [True: 7.56k, False: 776k]
  ------------------
 2012|  7.56k|        return VerifyVector(r, p, FBT_NULL) && VerifyKeys(p, r.byte_width_);
  ------------------
  |  Branch (2012:16): [True: 2.22k, False: 5.33k]
  |  Branch (2012:48): [True: 1.70k, False: 527]
  ------------------
 2013|   599k|      case FBT_VECTOR:
  ------------------
  |  Branch (2013:7): [True: 599k, False: 184k]
  ------------------
 2014|   599k|        return VerifyVector(r, p, FBT_NULL);
 2015|  3.84k|      case FBT_VECTOR_INT:
  ------------------
  |  Branch (2015:7): [True: 3.84k, False: 780k]
  ------------------
 2016|  3.84k|        return VerifyVector(r, p, FBT_INT);
 2017|    220|      case FBT_VECTOR_BOOL:
  ------------------
  |  Branch (2017:7): [True: 220, False: 783k]
  ------------------
 2018|  5.35k|      case FBT_VECTOR_UINT:
  ------------------
  |  Branch (2018:7): [True: 5.13k, False: 778k]
  ------------------
 2019|  5.35k|        return VerifyVector(r, p, FBT_UINT);
 2020|  2.47k|      case FBT_VECTOR_FLOAT:
  ------------------
  |  Branch (2020:7): [True: 2.47k, False: 781k]
  ------------------
 2021|  2.47k|        return VerifyVector(r, p, FBT_FLOAT);
 2022|  1.68k|      case FBT_VECTOR_KEY:
  ------------------
  |  Branch (2022:7): [True: 1.68k, False: 782k]
  ------------------
 2023|  1.68k|        return VerifyVector(r, p, FBT_KEY);
 2024|  1.09k|      case FBT_VECTOR_STRING_DEPRECATED:
  ------------------
  |  Branch (2024:7): [True: 1.09k, False: 782k]
  ------------------
 2025|       |        // Use of FBT_KEY here intentional, see elsewhere.
 2026|  1.09k|        return VerifyVector(r, p, FBT_KEY);
 2027|  1.21k|      case FBT_BLOB:
  ------------------
  |  Branch (2027:7): [True: 1.21k, False: 782k]
  ------------------
 2028|  1.21k|        return VerifyVector(r, p, FBT_UINT);
 2029|  4.72k|      case FBT_STRING:
  ------------------
  |  Branch (2029:7): [True: 4.72k, False: 779k]
  ------------------
 2030|  4.72k|        return VerifyVector(r, p, FBT_UINT) &&
  ------------------
  |  Branch (2030:16): [True: 4.65k, False: 69]
  ------------------
 2031|  4.65k|               VerifyTerminator(String(p, r.byte_width_));
  ------------------
  |  Branch (2031:16): [True: 4.64k, False: 5]
  ------------------
 2032|  1.39k|      case FBT_VECTOR_INT2:
  ------------------
  |  Branch (2032:7): [True: 1.39k, False: 782k]
  ------------------
 2033|  4.25k|      case FBT_VECTOR_UINT2:
  ------------------
  |  Branch (2033:7): [True: 2.86k, False: 781k]
  ------------------
 2034|  5.62k|      case FBT_VECTOR_FLOAT2:
  ------------------
  |  Branch (2034:7): [True: 1.36k, False: 782k]
  ------------------
 2035|  6.77k|      case FBT_VECTOR_INT3:
  ------------------
  |  Branch (2035:7): [True: 1.14k, False: 782k]
  ------------------
 2036|  9.14k|      case FBT_VECTOR_UINT3:
  ------------------
  |  Branch (2036:7): [True: 2.37k, False: 781k]
  ------------------
 2037|  9.60k|      case FBT_VECTOR_FLOAT3:
  ------------------
  |  Branch (2037:7): [True: 451, False: 783k]
  ------------------
 2038|  10.4k|      case FBT_VECTOR_INT4:
  ------------------
  |  Branch (2038:7): [True: 823, False: 783k]
  ------------------
 2039|  11.5k|      case FBT_VECTOR_UINT4:
  ------------------
  |  Branch (2039:7): [True: 1.15k, False: 782k]
  ------------------
 2040|  12.5k|      case FBT_VECTOR_FLOAT4: {
  ------------------
  |  Branch (2040:7): [True: 993, False: 783k]
  ------------------
 2041|  12.5k|        uint8_t len = 0;
 2042|  12.5k|        auto vtype = ToFixedTypedVectorElementType(r.type_, &len);
 2043|  12.5k|        if (!VerifyType(vtype)) return false;
  ------------------
  |  Branch (2043:13): [True: 0, False: 12.5k]
  ------------------
 2044|  12.5k|        return VerifyFromPointer(p, static_cast<size_t>(r.byte_width_) * len);
 2045|  12.5k|      }
 2046|     11|      default:
  ------------------
  |  Branch (2046:7): [True: 11, False: 783k]
  ------------------
 2047|     11|        return false;
 2048|   783k|    }
 2049|   783k|  }
_ZN11flexbuffers8Verifier10VerifyTypeEi:
 1901|  1.31M|  bool VerifyType(int type) { return Check(type >= 0 && type < FBT_MAX_TYPE); }
  ------------------
  |  Branch (1901:44): [True: 1.31M, False: 0]
  |  Branch (1901:57): [True: 1.31M, False: 29]
  ------------------
_ZN11flexbuffers8IsInlineENS_4TypeE:
   89|  1.32M|inline bool IsInline(Type t) { return t <= FBT_FLOAT || t == FBT_BOOL; }
  ------------------
  |  Branch (89:39): [True: 537k, False: 786k]
  |  Branch (89:57): [True: 1.91k, False: 784k]
  ------------------
_ZN11flexbuffers10ReadUInt64EPKhh:
  160|  2.81M|inline uint64_t ReadUInt64(const uint8_t* data, uint8_t byte_width) {
  161|       |  // This is the "hottest" function (all offset lookups use this), so worth
  162|       |  // optimizing if possible.
  163|       |  // TODO: GCC apparently replaces memcpy by a rep movsb, but only if count is a
  164|       |  // constant, which here it isn't. Test if memcpy is still faster than
  165|       |  // the conditionals in ReadSizedScalar. Can also use inline asm.
  166|       |
  167|       |  // clang-format off
  168|       |  #if defined(_MSC_VER) && defined(_M_X64) && !defined(_M_ARM64EC)
  169|       |  // This is 64-bit Windows only, __movsb does not work on 32-bit Windows.
  170|       |    uint64_t u = 0;
  171|       |    __movsb(reinterpret_cast<uint8_t *>(&u),
  172|       |            reinterpret_cast<const uint8_t *>(data), byte_width);
  173|       |    return flatbuffers::EndianScalar(u);
  174|       |  #else
  175|  2.81M|    return ReadSizedScalar<uint64_t, uint8_t, uint16_t, uint32_t, uint64_t>(
  176|  2.81M|             data, byte_width);
  177|  2.81M|  #endif
  178|       |  // clang-format on
  179|  2.81M|}
_ZN11flexbuffers15ReadSizedScalarImhtjmEET_PKhh:
  145|  2.81M|R ReadSizedScalar(const uint8_t* data, uint8_t byte_width) {
  146|  2.81M|  return byte_width < 4
  ------------------
  |  Branch (146:10): [True: 2.80M, False: 15.2k]
  ------------------
  147|  2.81M|             ? (byte_width < 2
  ------------------
  |  Branch (147:17): [True: 2.49M, False: 304k]
  ------------------
  148|  2.80M|                    ? static_cast<R>(flatbuffers::ReadScalar<T1>(data))
  149|  2.80M|                    : static_cast<R>(flatbuffers::ReadScalar<T2>(data)))
  150|  2.81M|             : (byte_width < 8
  ------------------
  |  Branch (150:17): [True: 9.19k, False: 6.04k]
  ------------------
  151|  15.2k|                    ? static_cast<R>(flatbuffers::ReadScalar<T4>(data))
  152|  15.2k|                    : static_cast<R>(flatbuffers::ReadScalar<T8>(data)));
  153|  2.81M|}
_ZN11flexbuffers8Verifier12VerifyOffsetEmPKh:
 1903|   786k|  bool VerifyOffset(uint64_t off, const uint8_t* p) {
 1904|   786k|    return Check(off <= static_cast<uint64_t>(size_)) &&
  ------------------
  |  Branch (1904:12): [True: 786k, False: 380]
  ------------------
 1905|   786k|           off <= static_cast<uint64_t>(p - buf_);
  ------------------
  |  Branch (1905:12): [True: 785k, False: 101]
  ------------------
 1906|   786k|  }
_ZNK11flexbuffers9Reference8IndirectEv:
  819|   784k|  const uint8_t* Indirect() const {
  820|   784k|    return flexbuffers::Indirect(data_, parent_width_);
  821|   784k|  }
_ZN11flexbuffers8IndirectEPKhh:
  186|   784k|inline const uint8_t* Indirect(const uint8_t* offset, uint8_t byte_width) {
  187|   784k|  return offset - ReadUInt64(offset, byte_width);
  188|   784k|}
_ZNK11flexbuffers8Verifier15VerifyAlignmentEPKhm:
 1908|   784k|  bool VerifyAlignment(const uint8_t* p, size_t size) const {
 1909|   784k|    auto o = static_cast<size_t>(p - buf_);
 1910|   784k|    return Check((o & (size - 1)) == 0 || !check_alignment_);
  ------------------
  |  Branch (1910:18): [True: 783k, False: 26]
  |  Branch (1910:43): [True: 0, False: 26]
  ------------------
 1911|   784k|  }
_ZN11flexbuffers8Verifier17VerifyFromPointerEPKhm:
 1888|  1.27M|  bool VerifyFromPointer(const uint8_t* p, size_t len) {
 1889|  1.27M|    auto o = static_cast<size_t>(p - buf_);
 1890|  1.27M|    return VerifyFrom(o, len);
 1891|  1.27M|  }
_ZNK11flexbuffers8Verifier10VerifyFromEmm:
 1881|  1.27M|  bool VerifyFrom(size_t elem, size_t elem_len) const {
 1882|  1.27M|    return Check(elem_len < size_ && elem <= size_ - elem_len);
  ------------------
  |  Branch (1882:18): [True: 1.27M, False: 311]
  |  Branch (1882:38): [True: 1.27M, False: 63]
  ------------------
 1883|  1.27M|  }
_ZN11flexbuffers8Verifier9VerifyKeyEPKh:
 1976|   125k|  bool VerifyKey(const uint8_t* p) {
 1977|   125k|    FLEX_CHECK_VERIFIED(p, PackedType(BIT_WIDTH_8, FBT_KEY));
  ------------------
  |  | 1915|   125k|  if (reuse_tracker_) {                                         \
  |  |  ------------------
  |  |  |  Branch (1915:7): [True: 0, False: 125k]
  |  |  ------------------
  |  | 1916|      0|    auto packed_type = PACKED_TYPE;                             \
  |  | 1917|      0|    auto existing = (*reuse_tracker_)[P - buf_];                \
  |  | 1918|      0|    if (existing == packed_type) return true;                   \
  |  |  ------------------
  |  |  |  Branch (1918:9): [True: 0, False: 0]
  |  |  ------------------
  |  | 1919|      0|    /* Fail verification if already set with different type! */ \
  |  | 1920|      0|    if (!Check(existing == 0)) return false;                    \
  |  |  ------------------
  |  |  |  Branch (1920:9): [True: 0, False: 0]
  |  |  ------------------
  |  | 1921|      0|    (*reuse_tracker_)[P - buf_] = packed_type;                  \
  |  | 1922|      0|  }
  ------------------
 1978|   558k|    while (p < buf_ + size_)
  ------------------
  |  Branch (1978:12): [True: 558k, False: 0]
  ------------------
 1979|   558k|      if (!*p++) return true;
  ------------------
  |  Branch (1979:11): [True: 125k, False: 433k]
  ------------------
 1980|      0|    return false;
 1981|   125k|  }
_ZN11flexbuffers8Verifier12VerifyVectorENS_9ReferenceEPKhNS_4TypeE:
 1924|   628k|  bool VerifyVector(Reference r, const uint8_t* p, Type elem_type) {
 1925|       |    // Any kind of nesting goes thru this function, so guard against that
 1926|       |    // here, both with simple nesting checks, and the reuse tracker if on.
 1927|   628k|    depth_++;
 1928|   628k|    num_vectors_++;
 1929|   628k|    if (!Check(depth_ <= max_depth_ && num_vectors_ <= max_vectors_))
  ------------------
  |  Branch (1929:9): [True: 317, False: 628k]
  |  Branch (1929:16): [True: 628k, False: 23]
  |  Branch (1929:40): [True: 628k, False: 294]
  ------------------
 1930|    317|      return false;
 1931|   628k|    auto size_byte_width = r.byte_width_;
 1932|   628k|    if (!VerifyBeforePointer(p, size_byte_width)) return false;
  ------------------
  |  Branch (1932:9): [True: 14, False: 628k]
  ------------------
 1933|   628k|    FLEX_CHECK_VERIFIED(p - size_byte_width,
  ------------------
  |  | 1915|   628k|  if (reuse_tracker_) {                                         \
  |  |  ------------------
  |  |  |  Branch (1915:7): [True: 0, False: 628k]
  |  |  ------------------
  |  | 1916|      0|    auto packed_type = PACKED_TYPE;                             \
  |  | 1917|      0|    auto existing = (*reuse_tracker_)[P - buf_];                \
  |  | 1918|      0|    if (existing == packed_type) return true;                   \
  |  |  ------------------
  |  |  |  Branch (1918:9): [True: 0, False: 0]
  |  |  ------------------
  |  | 1919|      0|    /* Fail verification if already set with different type! */ \
  |  | 1920|      0|    if (!Check(existing == 0)) return false;                    \
  |  |  ------------------
  |  |  |  Branch (1920:9): [True: 0, False: 0]
  |  |  ------------------
  |  | 1921|      0|    (*reuse_tracker_)[P - buf_] = packed_type;                  \
  |  | 1922|      0|  }
  ------------------
 1934|   628k|                        PackedType(Builder::WidthB(size_byte_width), r.type_));
 1935|   628k|    auto sized = Sized(p, size_byte_width);
 1936|   628k|    auto num_elems = sized.size();
 1937|   628k|    auto elem_byte_width = r.type_ == FBT_STRING || r.type_ == FBT_BLOB
  ------------------
  |  Branch (1937:28): [True: 4.69k, False: 623k]
  |  Branch (1937:53): [True: 1.20k, False: 622k]
  ------------------
 1938|   628k|                               ? uint8_t(1)
 1939|   628k|                               : r.byte_width_;
 1940|   628k|    auto max_elems = SIZE_MAX / elem_byte_width;
 1941|   628k|    if (!Check(num_elems < max_elems))
  ------------------
  |  Branch (1941:9): [True: 40, False: 628k]
  ------------------
 1942|     40|      return false;  // Protect against byte_size overflowing.
 1943|   628k|    auto byte_size = num_elems * elem_byte_width;
 1944|   628k|    if (!VerifyFromPointer(p, byte_size)) return false;
  ------------------
  |  Branch (1944:9): [True: 304, False: 628k]
  ------------------
 1945|   628k|    if (elem_type == FBT_NULL) {
  ------------------
  |  Branch (1945:9): [True: 606k, False: 21.7k]
  ------------------
 1946|       |      // Verify type bytes after the vector.
 1947|   606k|      if (!VerifyFromPointer(p + byte_size, num_elems)) return false;
  ------------------
  |  Branch (1947:11): [True: 32, False: 606k]
  ------------------
 1948|   606k|      auto v = Vector(p, size_byte_width);
 1949|  1.77M|      for (size_t i = 0; i < num_elems; i++)
  ------------------
  |  Branch (1949:26): [True: 1.17M, False: 597k]
  ------------------
 1950|  1.17M|        if (!VerifyRef(v[i])) return false;
  ------------------
  |  Branch (1950:13): [True: 8.87k, False: 1.16M]
  ------------------
 1951|   606k|    } else if (elem_type == FBT_KEY) {
  ------------------
  |  Branch (1951:16): [True: 4.47k, False: 17.3k]
  ------------------
 1952|  4.47k|      auto v = TypedVector(p, elem_byte_width, FBT_KEY);
 1953|   128k|      for (size_t i = 0; i < num_elems; i++)
  ------------------
  |  Branch (1953:26): [True: 123k, False: 4.41k]
  ------------------
 1954|   123k|        if (!VerifyRef(v[i])) return false;
  ------------------
  |  Branch (1954:13): [True: 61, False: 123k]
  ------------------
 1955|  17.3k|    } else {
 1956|  17.3k|      FLATBUFFERS_ASSERT(IsInline(elem_type));
 1957|  17.3k|    }
 1958|   619k|    depth_--;
 1959|   619k|    return true;
 1960|   628k|  }
_ZN11flexbuffers8Verifier19VerifyBeforePointerEPKhm:
 1892|   630k|  bool VerifyBeforePointer(const uint8_t* p, size_t len) {
 1893|   630k|    auto o = static_cast<size_t>(p - buf_);
 1894|   630k|    return VerifyBefore(o, len);
 1895|   630k|  }
_ZNK11flexbuffers8Verifier12VerifyBeforeEmm:
 1884|   630k|  bool VerifyBefore(size_t elem, size_t elem_len) const {
 1885|   630k|    return Check(elem_len <= elem);
 1886|   630k|  }
_ZN11flexbuffers5SizedC2EPKhh:
  234|  1.24M|      : Object(data, byte_width), size_(read_size()) {}
_ZN11flexbuffers6ObjectC2EPKhh:
  222|  1.24M|      : data_(data), byte_width_(byte_width) {}
_ZNK11flexbuffers5Sized9read_sizeEv:
  240|  1.24M|  size_t read_size() const {
  241|  1.24M|    return static_cast<size_t>(ReadUInt64(data_ - byte_width_, byte_width_));
  242|  1.24M|  }
_ZNK11flexbuffers5Sized4sizeEv:
  238|  1.93M|  size_t size() const { return size_; }
_ZN11flexbuffers6VectorC2EPKhh:
  282|   606k|  Vector(const uint8_t* data, uint8_t byte_width) : Sized(data, byte_width) {}
_ZNK11flexbuffers6VectorixEm:
  946|  1.17M|inline Reference Vector::operator[](size_t i) const {
  947|  1.17M|  auto len = size();
  948|  1.17M|  if (i >= len) return Reference(nullptr, 1, NullPackedType());
  ------------------
  |  Branch (948:7): [True: 0, False: 1.17M]
  ------------------
  949|  1.17M|  auto packed_type = (data_ + len * byte_width_)[i];
  950|  1.17M|  auto elem = data_ + i * byte_width_;
  951|  1.17M|  return Reference(elem, byte_width_, packed_type);
  952|  1.17M|}
_ZN11flexbuffers11TypedVectorC2EPKhhNS_4TypeE:
  296|  4.47k|      : Sized(data, byte_width), type_(element_type) {}
_ZNK11flexbuffers11TypedVectorixEm:
  954|   123k|inline Reference TypedVector::operator[](size_t i) const {
  955|   123k|  auto len = size();
  956|   123k|  if (i >= len) return Reference(nullptr, 1, NullPackedType());
  ------------------
  |  Branch (956:7): [True: 0, False: 123k]
  ------------------
  957|   123k|  auto elem = data_ + i * byte_width_;
  958|   123k|  return Reference(elem, byte_width_, 1, type_);
  959|   123k|}
_ZN11flexbuffers9ReferenceC2EPKhhhNS_4TypeE:
  411|   125k|      : data_(data),
  412|   125k|        parent_width_(parent_width),
  413|   125k|        byte_width_(byte_width),
  414|   125k|        type_(type) {}
_ZN11flexbuffers8Verifier10VerifyKeysEPKhh:
 1962|  2.22k|  bool VerifyKeys(const uint8_t* p, uint8_t byte_width) {
 1963|       |    // The vector part of the map has already been verified.
 1964|  2.22k|    const size_t num_prefixed_fields = 3;
 1965|  2.22k|    if (!VerifyBeforePointer(p, byte_width * num_prefixed_fields)) return false;
  ------------------
  |  Branch (1965:9): [True: 15, False: 2.21k]
  ------------------
 1966|  2.21k|    p -= byte_width * num_prefixed_fields;
 1967|  2.21k|    auto off = ReadUInt64(p, byte_width);
 1968|  2.21k|    if (!VerifyOffset(off, p)) return false;
  ------------------
  |  Branch (1968:9): [True: 245, False: 1.96k]
  ------------------
 1969|  1.96k|    auto key_byte_with =
 1970|  1.96k|        static_cast<uint8_t>(ReadUInt64(p + byte_width, byte_width));
 1971|  1.96k|    if (!VerifyByteWidth(key_byte_with)) return false;
  ------------------
  |  Branch (1971:9): [True: 130, False: 1.83k]
  ------------------
 1972|  1.83k|    return VerifyVector(Reference(p, byte_width, key_byte_with, FBT_VECTOR_KEY),
 1973|  1.83k|                        p - off, FBT_KEY);
 1974|  1.96k|  }
_ZN11flexbuffers8Verifier16VerifyTerminatorERKNS_6StringE:
 1985|  4.65k|  bool VerifyTerminator(const String& s) {
 1986|  4.65k|    return VerifyFromPointer(reinterpret_cast<const uint8_t*>(s.c_str()),
 1987|  4.65k|                             s.size() + 1);
 1988|  4.65k|  }
_ZNK11flexbuffers6String5c_strEv:
  257|  4.65k|  const char* c_str() const { return reinterpret_cast<const char*>(data_); }
_ZN11flexbuffers6StringC2EPKhh:
  251|  4.65k|  String(const uint8_t* data, uint8_t byte_width) : Sized(data, byte_width) {}
_ZN11flexbuffers29ToFixedTypedVectorElementTypeENS_4TypeEPh:
  126|  12.5k|inline Type ToFixedTypedVectorElementType(Type t, uint8_t* len) {
  127|  12.5k|  FLATBUFFERS_ASSERT(IsFixedTypedVector(t));
  128|  12.5k|  auto fixed_type = t - FBT_VECTOR_INT2;
  129|  12.5k|  *len = static_cast<uint8_t>(fixed_type / 3 +
  130|  12.5k|                              2);  // 3 types each, starting from length 2.
  131|  12.5k|  return static_cast<Type>(fixed_type % 3 + FBT_INT);
  132|  12.5k|}
_ZN11flexbuffers18IsFixedTypedVectorENS_4TypeE:
  100|  12.5k|inline bool IsFixedTypedVector(Type t) {
  101|  12.5k|  return t >= FBT_VECTOR_INT2 && t <= FBT_VECTOR_FLOAT4;
  ------------------
  |  Branch (101:10): [True: 12.5k, False: 0]
  |  Branch (101:34): [True: 12.5k, False: 0]
  ------------------
  102|  12.5k|}
_ZN11flexbuffers9ReferenceC2EPKhhh:
  417|  1.18M|      : data_(data),
  418|  1.18M|        parent_width_(parent_width),
  419|  1.18M|        byte_width_(static_cast<uint8_t>(1 << (packed_type & 3))),
  420|  1.18M|        type_(static_cast<Type>(packed_type >> 2)) {}

_ZNK11flatbuffers5Table16VerifyTableStartILb0EEEbRNS_16VerifierTemplateIXT_EEE:
  153|  1.20M|  bool VerifyTableStart(VerifierTemplate<B>& verifier) const {
  154|  1.20M|    return verifier.VerifyTableStart(data_);
  155|  1.20M|  }
_ZNK11flatbuffers5Table11VerifyFieldIN6MyGame7Example4Vec3ELb0EEEbRKNS_16VerifierTemplateIXT0_EEEtm:
  160|   626k|                   size_t align) const {
  161|       |    // Calling GetOptionalFieldOffset should be safe now thanks to
  162|       |    // VerifyTable().
  163|   626k|    auto field_offset = GetOptionalFieldOffset(field);
  164|       |    // Check the actual field.
  165|   626k|    return !field_offset ||
  ------------------
  |  Branch (165:12): [True: 621k, False: 5.59k]
  ------------------
  166|  5.59k|           verifier.template VerifyField<T>(data_, field_offset, align);
  ------------------
  |  Branch (166:12): [True: 5.53k, False: 67]
  ------------------
  167|   626k|  }
_ZNK11flatbuffers5Table22GetOptionalFieldOffsetEt:
   36|   125M|  voffset_t GetOptionalFieldOffset(voffset_t field) const {
   37|       |    // The vtable offset is always at the start.
   38|   125M|    auto vtable = GetVTable();
   39|       |    // The first element is the size of the vtable (fields + type id + itself).
   40|   125M|    auto vtsize = ReadScalar<voffset_t>(vtable);
   41|       |    // If the field we're accessing is outside the vtable, we're reading older
   42|       |    // data, so it's the same as if the offset was 0 (not present).
   43|   125M|    return field < vtsize ? ReadScalar<voffset_t>(vtable + field) : 0;
  ------------------
  |  Branch (43:12): [True: 21.0M, False: 104M]
  ------------------
   44|   125M|  }
_ZNK11flatbuffers5Table9GetVTableEv:
   30|   125M|  const uint8_t* GetVTable() const {
   31|   125M|    return data_ - ReadScalar<soffset_t>(data_);
   32|   125M|  }
_ZNK11flatbuffers5Table11VerifyFieldIsLb0EEEbRKNS_16VerifierTemplateIXT0_EEEtm:
  160|  1.25M|                   size_t align) const {
  161|       |    // Calling GetOptionalFieldOffset should be safe now thanks to
  162|       |    // VerifyTable().
  163|  1.25M|    auto field_offset = GetOptionalFieldOffset(field);
  164|       |    // Check the actual field.
  165|  1.25M|    return !field_offset ||
  ------------------
  |  Branch (165:12): [True: 1.08M, False: 168k]
  ------------------
  166|   168k|           verifier.template VerifyField<T>(data_, field_offset, align);
  ------------------
  |  Branch (166:12): [True: 168k, False: 73]
  ------------------
  167|  1.25M|  }
_ZNK11flatbuffers5Table20VerifyOffsetRequiredIjLb0EEEbRKNS_16VerifierTemplateIXT0_EEEt:
  189|   626k|                            voffset_t field) const {
  190|   626k|    auto field_offset = GetOptionalFieldOffset(field);
  191|   626k|    return verifier.Check(field_offset != 0) &&
  ------------------
  |  Branch (191:12): [True: 626k, False: 117]
  ------------------
  192|   626k|           verifier.template VerifyOffset<OffsetT>(data_, field_offset);
  ------------------
  |  Branch (192:12): [True: 626k, False: 143]
  ------------------
  193|   626k|  }
_ZNK11flatbuffers5Table10GetPointerIPKNS_6StringEjEET_t:
   60|  1.31M|  P GetPointer(voffset_t field) const {
   61|  1.31M|    return const_cast<Table*>(this)->GetPointer<P, OffsetSize>(field);
   62|  1.31M|  }
_ZN11flatbuffers5Table10GetPointerIPKNS_6StringEjEET_t:
   53|  1.31M|  P GetPointer(voffset_t field) {
   54|  1.31M|    auto field_offset = GetOptionalFieldOffset(field);
   55|  1.31M|    auto p = data_ + field_offset;
   56|  1.31M|    return field_offset ? reinterpret_cast<P>(p + ReadScalar<OffsetSize>(p))
  ------------------
  |  Branch (56:12): [True: 1.26M, False: 47.4k]
  ------------------
   57|  1.31M|                        : nullptr;
   58|  1.31M|  }
_ZNK11flatbuffers5Table12VerifyOffsetIjLb0EEEbRKNS_16VerifierTemplateIXT0_EEEt:
  181|  16.2M|                    voffset_t field) const {
  182|  16.2M|    auto field_offset = GetOptionalFieldOffset(field);
  183|  16.2M|    return !field_offset ||
  ------------------
  |  Branch (183:12): [True: 14.5M, False: 1.62M]
  ------------------
  184|  1.62M|           verifier.template VerifyOffset<OffsetT>(data_, field_offset);
  ------------------
  |  Branch (184:12): [True: 1.62M, False: 738]
  ------------------
  185|  16.2M|  }
_ZNK11flatbuffers5Table10GetPointerIPKNS_6VectorIhjEEjEET_t:
   60|  9.95M|  P GetPointer(voffset_t field) const {
   61|  9.95M|    return const_cast<Table*>(this)->GetPointer<P, OffsetSize>(field);
   62|  9.95M|  }
_ZN11flatbuffers5Table10GetPointerIPKNS_6VectorIhjEEjEET_t:
   53|  9.95M|  P GetPointer(voffset_t field) {
   54|  9.95M|    auto field_offset = GetOptionalFieldOffset(field);
   55|  9.95M|    auto p = data_ + field_offset;
   56|  9.95M|    return field_offset ? reinterpret_cast<P>(p + ReadScalar<OffsetSize>(p))
  ------------------
  |  Branch (56:12): [True: 1.27M, False: 8.67M]
  ------------------
   57|  9.95M|                        : nullptr;
   58|  9.95M|  }
_ZNK11flatbuffers5Table11VerifyFieldIhLb0EEEbRKNS_16VerifierTemplateIXT0_EEEtm:
  160|  3.57M|                   size_t align) const {
  161|       |    // Calling GetOptionalFieldOffset should be safe now thanks to
  162|       |    // VerifyTable().
  163|  3.57M|    auto field_offset = GetOptionalFieldOffset(field);
  164|       |    // Check the actual field.
  165|  3.57M|    return !field_offset ||
  ------------------
  |  Branch (165:12): [True: 2.90M, False: 667k]
  ------------------
  166|   667k|           verifier.template VerifyField<T>(data_, field_offset, align);
  ------------------
  |  Branch (166:12): [True: 666k, False: 231]
  ------------------
  167|  3.57M|  }
_ZNK11flatbuffers5Table10GetPointerIPKvjEET_t:
   60|  3.73M|  P GetPointer(voffset_t field) const {
   61|  3.73M|    return const_cast<Table*>(this)->GetPointer<P, OffsetSize>(field);
   62|  3.73M|  }
_ZN11flatbuffers5Table10GetPointerIPKvjEET_t:
   53|  3.73M|  P GetPointer(voffset_t field) {
   54|  3.73M|    auto field_offset = GetOptionalFieldOffset(field);
   55|  3.73M|    auto p = data_ + field_offset;
   56|  3.73M|    return field_offset ? reinterpret_cast<P>(p + ReadScalar<OffsetSize>(p))
  ------------------
  |  Branch (56:12): [True: 968k, False: 2.76M]
  ------------------
   57|  3.73M|                        : nullptr;
   58|  3.73M|  }
_ZNK11flatbuffers5Table8GetFieldIhEET_tS2_:
   47|  3.73M|  T GetField(voffset_t field, T defaultval) const {
   48|  3.73M|    auto field_offset = GetOptionalFieldOffset(field);
   49|  3.73M|    return field_offset ? ReadScalar<T>(data_ + field_offset) : defaultval;
  ------------------
  |  Branch (49:12): [True: 1.25M, False: 2.47M]
  ------------------
   50|  3.73M|  }
_ZNK11flatbuffers5Table10GetPointerIPKNS_6VectorIPKN6MyGame7Example4TestEjEEjEET_t:
   60|  2.49M|  P GetPointer(voffset_t field) const {
   61|  2.49M|    return const_cast<Table*>(this)->GetPointer<P, OffsetSize>(field);
   62|  2.49M|  }
_ZN11flatbuffers5Table10GetPointerIPKNS_6VectorIPKN6MyGame7Example4TestEjEEjEET_t:
   53|  2.49M|  P GetPointer(voffset_t field) {
   54|  2.49M|    auto field_offset = GetOptionalFieldOffset(field);
   55|  2.49M|    auto p = data_ + field_offset;
   56|  2.49M|    return field_offset ? reinterpret_cast<P>(p + ReadScalar<OffsetSize>(p))
  ------------------
  |  Branch (56:12): [True: 285k, False: 2.20M]
  ------------------
   57|  2.49M|                        : nullptr;
   58|  2.49M|  }
_ZNK11flatbuffers5Table10GetPointerIPKNS_6VectorINS_6OffsetINS_6StringEEEjEEjEET_t:
   60|  4.98M|  P GetPointer(voffset_t field) const {
   61|  4.98M|    return const_cast<Table*>(this)->GetPointer<P, OffsetSize>(field);
   62|  4.98M|  }
_ZN11flatbuffers5Table10GetPointerIPKNS_6VectorINS_6OffsetINS_6StringEEEjEEjEET_t:
   53|  4.98M|  P GetPointer(voffset_t field) {
   54|  4.98M|    auto field_offset = GetOptionalFieldOffset(field);
   55|  4.98M|    auto p = data_ + field_offset;
   56|  4.98M|    return field_offset ? reinterpret_cast<P>(p + ReadScalar<OffsetSize>(p))
  ------------------
  |  Branch (56:12): [True: 58.3k, False: 4.92M]
  ------------------
   57|  4.98M|                        : nullptr;
   58|  4.98M|  }
_ZNK11flatbuffers5Table10GetPointerIPKNS_6VectorINS_6OffsetIN6MyGame7Example7MonsterEEEjEEjEET_t:
   60|  2.49M|  P GetPointer(voffset_t field) const {
   61|  2.49M|    return const_cast<Table*>(this)->GetPointer<P, OffsetSize>(field);
   62|  2.49M|  }
_ZN11flatbuffers5Table10GetPointerIPKNS_6VectorINS_6OffsetIN6MyGame7Example7MonsterEEEjEEjEET_t:
   53|  2.49M|  P GetPointer(voffset_t field) {
   54|  2.49M|    auto field_offset = GetOptionalFieldOffset(field);
   55|  2.49M|    auto p = data_ + field_offset;
   56|  2.49M|    return field_offset ? reinterpret_cast<P>(p + ReadScalar<OffsetSize>(p))
  ------------------
  |  Branch (56:12): [True: 518k, False: 1.97M]
  ------------------
   57|  2.49M|                        : nullptr;
   58|  2.49M|  }
_ZNK11flatbuffers5Table10GetPointerIPKN6MyGame7Example7MonsterEjEET_t:
   60|  1.24M|  P GetPointer(voffset_t field) const {
   61|  1.24M|    return const_cast<Table*>(this)->GetPointer<P, OffsetSize>(field);
   62|  1.24M|  }
_ZN11flatbuffers5Table10GetPointerIPKN6MyGame7Example7MonsterEjEET_t:
   53|  1.24M|  P GetPointer(voffset_t field) {
   54|  1.24M|    auto field_offset = GetOptionalFieldOffset(field);
   55|  1.24M|    auto p = data_ + field_offset;
   56|  1.24M|    return field_offset ? reinterpret_cast<P>(p + ReadScalar<OffsetSize>(p))
  ------------------
  |  Branch (56:12): [True: 214k, False: 1.03M]
  ------------------
   57|  1.24M|                        : nullptr;
   58|  1.24M|  }
_ZNK11flatbuffers5Table11VerifyFieldItLb0EEEbRKNS_16VerifierTemplateIXT0_EEEtm:
  160|  31.5k|                   size_t align) const {
  161|       |    // Calling GetOptionalFieldOffset should be safe now thanks to
  162|       |    // VerifyTable().
  163|  31.5k|    auto field_offset = GetOptionalFieldOffset(field);
  164|       |    // Check the actual field.
  165|  31.5k|    return !field_offset ||
  ------------------
  |  Branch (165:12): [True: 23.8k, False: 7.66k]
  ------------------
  166|  7.66k|           verifier.template VerifyField<T>(data_, field_offset, align);
  ------------------
  |  Branch (166:12): [True: 7.61k, False: 44]
  ------------------
  167|  31.5k|  }
_ZNK11flatbuffers5Table10GetPointerIPKN6MyGame7Example4StatEjEET_t:
   60|  1.24M|  P GetPointer(voffset_t field) const {
   61|  1.24M|    return const_cast<Table*>(this)->GetPointer<P, OffsetSize>(field);
   62|  1.24M|  }
_ZN11flatbuffers5Table10GetPointerIPKN6MyGame7Example4StatEjEET_t:
   53|  1.24M|  P GetPointer(voffset_t field) {
   54|  1.24M|    auto field_offset = GetOptionalFieldOffset(field);
   55|  1.24M|    auto p = data_ + field_offset;
   56|  1.24M|    return field_offset ? reinterpret_cast<P>(p + ReadScalar<OffsetSize>(p))
  ------------------
  |  Branch (56:12): [True: 47.4k, False: 1.19M]
  ------------------
   57|  1.24M|                        : nullptr;
   58|  1.24M|  }
_ZNK11flatbuffers5Table11VerifyFieldIiLb0EEEbRKNS_16VerifierTemplateIXT0_EEEtm:
  160|  1.24M|                   size_t align) const {
  161|       |    // Calling GetOptionalFieldOffset should be safe now thanks to
  162|       |    // VerifyTable().
  163|  1.24M|    auto field_offset = GetOptionalFieldOffset(field);
  164|       |    // Check the actual field.
  165|  1.24M|    return !field_offset ||
  ------------------
  |  Branch (165:12): [True: 1.23M, False: 8.22k]
  ------------------
  166|  8.22k|           verifier.template VerifyField<T>(data_, field_offset, align);
  ------------------
  |  Branch (166:12): [True: 8.18k, False: 41]
  ------------------
  167|  1.24M|  }
_ZNK11flatbuffers5Table11VerifyFieldIjLb0EEEbRKNS_16VerifierTemplateIXT0_EEEtm:
  160|  1.24M|                   size_t align) const {
  161|       |    // Calling GetOptionalFieldOffset should be safe now thanks to
  162|       |    // VerifyTable().
  163|  1.24M|    auto field_offset = GetOptionalFieldOffset(field);
  164|       |    // Check the actual field.
  165|  1.24M|    return !field_offset ||
  ------------------
  |  Branch (165:12): [True: 1.20M, False: 44.1k]
  ------------------
  166|  44.1k|           verifier.template VerifyField<T>(data_, field_offset, align);
  ------------------
  |  Branch (166:12): [True: 44.1k, False: 54]
  ------------------
  167|  1.24M|  }
_ZNK11flatbuffers5Table11VerifyFieldIlLb0EEEbRKNS_16VerifierTemplateIXT0_EEEtm:
  160|  1.27M|                   size_t align) const {
  161|       |    // Calling GetOptionalFieldOffset should be safe now thanks to
  162|       |    // VerifyTable().
  163|  1.27M|    auto field_offset = GetOptionalFieldOffset(field);
  164|       |    // Check the actual field.
  165|  1.27M|    return !field_offset ||
  ------------------
  |  Branch (165:12): [True: 1.26M, False: 13.3k]
  ------------------
  166|  13.3k|           verifier.template VerifyField<T>(data_, field_offset, align);
  ------------------
  |  Branch (166:12): [True: 13.2k, False: 106]
  ------------------
  167|  1.27M|  }
_ZNK11flatbuffers5Table11VerifyFieldImLb0EEEbRKNS_16VerifierTemplateIXT0_EEEtm:
  160|  4.41M|                   size_t align) const {
  161|       |    // Calling GetOptionalFieldOffset should be safe now thanks to
  162|       |    // VerifyTable().
  163|  4.41M|    auto field_offset = GetOptionalFieldOffset(field);
  164|       |    // Check the actual field.
  165|  4.41M|    return !field_offset ||
  ------------------
  |  Branch (165:12): [True: 4.36M, False: 51.4k]
  ------------------
  166|  51.4k|           verifier.template VerifyField<T>(data_, field_offset, align);
  ------------------
  |  Branch (166:12): [True: 51.2k, False: 155]
  ------------------
  167|  4.41M|  }
_ZNK11flatbuffers5Table11VerifyFieldIfLb0EEEbRKNS_16VerifierTemplateIXT0_EEEtm:
  160|  6.20M|                   size_t align) const {
  161|       |    // Calling GetOptionalFieldOffset should be safe now thanks to
  162|       |    // VerifyTable().
  163|  6.20M|    auto field_offset = GetOptionalFieldOffset(field);
  164|       |    // Check the actual field.
  165|  6.20M|    return !field_offset ||
  ------------------
  |  Branch (165:12): [True: 6.17M, False: 26.3k]
  ------------------
  166|  26.3k|           verifier.template VerifyField<T>(data_, field_offset, align);
  ------------------
  |  Branch (166:12): [True: 26.2k, False: 93]
  ------------------
  167|  6.20M|  }
_ZNK11flatbuffers5Table10GetPointerIPKNS_6VectorIPKN6MyGame7Example7AbilityEjEEjEET_t:
   60|  1.24M|  P GetPointer(voffset_t field) const {
   61|  1.24M|    return const_cast<Table*>(this)->GetPointer<P, OffsetSize>(field);
   62|  1.24M|  }
_ZN11flatbuffers5Table10GetPointerIPKNS_6VectorIPKN6MyGame7Example7AbilityEjEEjEET_t:
   53|  1.24M|  P GetPointer(voffset_t field) {
   54|  1.24M|    auto field_offset = GetOptionalFieldOffset(field);
   55|  1.24M|    auto p = data_ + field_offset;
   56|  1.24M|    return field_offset ? reinterpret_cast<P>(p + ReadScalar<OffsetSize>(p))
  ------------------
  |  Branch (56:12): [True: 15.4k, False: 1.22M]
  ------------------
   57|  1.24M|                        : nullptr;
   58|  1.24M|  }
_ZNK11flatbuffers5Table10GetPointerIPKNS_6VectorIljEEjEET_t:
   60|  1.24M|  P GetPointer(voffset_t field) const {
   61|  1.24M|    return const_cast<Table*>(this)->GetPointer<P, OffsetSize>(field);
   62|  1.24M|  }
_ZN11flatbuffers5Table10GetPointerIPKNS_6VectorIljEEjEET_t:
   53|  1.24M|  P GetPointer(voffset_t field) {
   54|  1.24M|    auto field_offset = GetOptionalFieldOffset(field);
   55|  1.24M|    auto p = data_ + field_offset;
   56|  1.24M|    return field_offset ? reinterpret_cast<P>(p + ReadScalar<OffsetSize>(p))
  ------------------
  |  Branch (56:12): [True: 11.6k, False: 1.23M]
  ------------------
   57|  1.24M|                        : nullptr;
   58|  1.24M|  }
_ZNK11flatbuffers5Table10GetPointerIPKNS_6VectorIdjEEjEET_t:
   60|  1.24M|  P GetPointer(voffset_t field) const {
   61|  1.24M|    return const_cast<Table*>(this)->GetPointer<P, OffsetSize>(field);
   62|  1.24M|  }
_ZN11flatbuffers5Table10GetPointerIPKNS_6VectorIdjEEjEET_t:
   53|  1.24M|  P GetPointer(voffset_t field) {
   54|  1.24M|    auto field_offset = GetOptionalFieldOffset(field);
   55|  1.24M|    auto p = data_ + field_offset;
   56|  1.24M|    return field_offset ? reinterpret_cast<P>(p + ReadScalar<OffsetSize>(p))
  ------------------
  |  Branch (56:12): [True: 22.9k, False: 1.21M]
  ------------------
   57|  1.24M|                        : nullptr;
   58|  1.24M|  }
_ZNK11flatbuffers5Table10GetPointerIPKN6MyGame17InParentNamespaceEjEET_t:
   60|  1.24M|  P GetPointer(voffset_t field) const {
   61|  1.24M|    return const_cast<Table*>(this)->GetPointer<P, OffsetSize>(field);
   62|  1.24M|  }
_ZN11flatbuffers5Table10GetPointerIPKN6MyGame17InParentNamespaceEjEET_t:
   53|  1.24M|  P GetPointer(voffset_t field) {
   54|  1.24M|    auto field_offset = GetOptionalFieldOffset(field);
   55|  1.24M|    auto p = data_ + field_offset;
   56|  1.24M|    return field_offset ? reinterpret_cast<P>(p + ReadScalar<OffsetSize>(p))
  ------------------
  |  Branch (56:12): [True: 14.1k, False: 1.22M]
  ------------------
   57|  1.24M|                        : nullptr;
   58|  1.24M|  }
_ZNK11flatbuffers5Table10GetPointerIPKNS_6VectorINS_6OffsetIN6MyGame7Example10ReferrableEEEjEEjEET_t:
   60|  4.96M|  P GetPointer(voffset_t field) const {
   61|  4.96M|    return const_cast<Table*>(this)->GetPointer<P, OffsetSize>(field);
   62|  4.96M|  }
_ZN11flatbuffers5Table10GetPointerIPKNS_6VectorINS_6OffsetIN6MyGame7Example10ReferrableEEEjEEjEET_t:
   53|  4.96M|  P GetPointer(voffset_t field) {
   54|  4.96M|    auto field_offset = GetOptionalFieldOffset(field);
   55|  4.96M|    auto p = data_ + field_offset;
   56|  4.96M|    return field_offset ? reinterpret_cast<P>(p + ReadScalar<OffsetSize>(p))
  ------------------
  |  Branch (56:12): [True: 92.8k, False: 4.87M]
  ------------------
   57|  4.96M|                        : nullptr;
   58|  4.96M|  }
_ZNK11flatbuffers5Table10GetPointerIPKNS_6VectorImjEEjEET_t:
   60|  3.72M|  P GetPointer(voffset_t field) const {
   61|  3.72M|    return const_cast<Table*>(this)->GetPointer<P, OffsetSize>(field);
   62|  3.72M|  }
_ZN11flatbuffers5Table10GetPointerIPKNS_6VectorImjEEjEET_t:
   53|  3.72M|  P GetPointer(voffset_t field) {
   54|  3.72M|    auto field_offset = GetOptionalFieldOffset(field);
   55|  3.72M|    auto p = data_ + field_offset;
   56|  3.72M|    return field_offset ? reinterpret_cast<P>(p + ReadScalar<OffsetSize>(p))
  ------------------
  |  Branch (56:12): [True: 41.7k, False: 3.67M]
  ------------------
   57|  3.72M|                        : nullptr;
   58|  3.72M|  }
_ZNK11flatbuffers5Table10GetPointerIPKNS_6VectorIN6MyGame7Example5ColorEjEEjEET_t:
   60|  1.23M|  P GetPointer(voffset_t field) const {
   61|  1.23M|    return const_cast<Table*>(this)->GetPointer<P, OffsetSize>(field);
   62|  1.23M|  }
_ZN11flatbuffers5Table10GetPointerIPKNS_6VectorIN6MyGame7Example5ColorEjEEjEET_t:
   53|  1.23M|  P GetPointer(voffset_t field) {
   54|  1.23M|    auto field_offset = GetOptionalFieldOffset(field);
   55|  1.23M|    auto p = data_ + field_offset;
   56|  1.23M|    return field_offset ? reinterpret_cast<P>(p + ReadScalar<OffsetSize>(p))
  ------------------
  |  Branch (56:12): [True: 8.03k, False: 1.23M]
  ------------------
   57|  1.23M|                        : nullptr;
   58|  1.23M|  }
_ZNK11flatbuffers5Table11VerifyFieldIaLb0EEEbRKNS_16VerifierTemplateIXT0_EEEtm:
  160|   619k|                   size_t align) const {
  161|       |    // Calling GetOptionalFieldOffset should be safe now thanks to
  162|       |    // VerifyTable().
  163|   619k|    auto field_offset = GetOptionalFieldOffset(field);
  164|       |    // Check the actual field.
  165|   619k|    return !field_offset ||
  ------------------
  |  Branch (165:12): [True: 617k, False: 2.45k]
  ------------------
  166|  2.45k|           verifier.template VerifyField<T>(data_, field_offset, align);
  ------------------
  |  Branch (166:12): [True: 2.41k, False: 39]
  ------------------
  167|   619k|  }
_ZNK11flatbuffers5Table10GetPointerIPKNS_6VectorINS_6OffsetIN6MyGame7Example4StatEEEjEEjEET_t:
   60|  2.47M|  P GetPointer(voffset_t field) const {
   61|  2.47M|    return const_cast<Table*>(this)->GetPointer<P, OffsetSize>(field);
   62|  2.47M|  }
_ZN11flatbuffers5Table10GetPointerIPKNS_6VectorINS_6OffsetIN6MyGame7Example4StatEEEjEEjEET_t:
   53|  2.47M|  P GetPointer(voffset_t field) {
   54|  2.47M|    auto field_offset = GetOptionalFieldOffset(field);
   55|  2.47M|    auto p = data_ + field_offset;
   56|  2.47M|    return field_offset ? reinterpret_cast<P>(p + ReadScalar<OffsetSize>(p))
  ------------------
  |  Branch (56:12): [True: 12.8k, False: 2.46M]
  ------------------
   57|  2.47M|                        : nullptr;
   58|  2.47M|  }
_ZNK11flatbuffers5Table11VerifyFieldIN6MyGame7Example4TestELb0EEEbRKNS_16VerifierTemplateIXT0_EEEtm:
  160|   619k|                   size_t align) const {
  161|       |    // Calling GetOptionalFieldOffset should be safe now thanks to
  162|       |    // VerifyTable().
  163|   619k|    auto field_offset = GetOptionalFieldOffset(field);
  164|       |    // Check the actual field.
  165|   619k|    return !field_offset ||
  ------------------
  |  Branch (165:12): [True: 617k, False: 1.68k]
  ------------------
  166|  1.68k|           verifier.template VerifyField<T>(data_, field_offset, align);
  ------------------
  |  Branch (166:12): [True: 1.63k, False: 52]
  ------------------
  167|   619k|  }
_ZNK11flatbuffers5Table11VerifyFieldIdLb0EEEbRKNS_16VerifierTemplateIXT0_EEEtm:
  160|   619k|                   size_t align) const {
  161|       |    // Calling GetOptionalFieldOffset should be safe now thanks to
  162|       |    // VerifyTable().
  163|   619k|    auto field_offset = GetOptionalFieldOffset(field);
  164|       |    // Check the actual field.
  165|   619k|    return !field_offset ||
  ------------------
  |  Branch (165:12): [True: 617k, False: 2.11k]
  ------------------
  166|  2.11k|           verifier.template VerifyField<T>(data_, field_offset, align);
  ------------------
  |  Branch (166:12): [True: 2.06k, False: 53]
  ------------------
  167|   619k|  }
_ZNK11flatbuffers5Table16VerifyTableStartILb1EEEbRNS_16VerifierTemplateIXT_EEE:
  153|  1.20M|  bool VerifyTableStart(VerifierTemplate<B>& verifier) const {
  154|  1.20M|    return verifier.VerifyTableStart(data_);
  155|  1.20M|  }
_ZNK11flatbuffers5Table11VerifyFieldIN6MyGame7Example4Vec3ELb1EEEbRKNS_16VerifierTemplateIXT0_EEEtm:
  160|   626k|                   size_t align) const {
  161|       |    // Calling GetOptionalFieldOffset should be safe now thanks to
  162|       |    // VerifyTable().
  163|   626k|    auto field_offset = GetOptionalFieldOffset(field);
  164|       |    // Check the actual field.
  165|   626k|    return !field_offset ||
  ------------------
  |  Branch (165:12): [True: 620k, False: 5.59k]
  ------------------
  166|  5.59k|           verifier.template VerifyField<T>(data_, field_offset, align);
  ------------------
  |  Branch (166:12): [True: 5.52k, False: 67]
  ------------------
  167|   626k|  }
_ZNK11flatbuffers5Table11VerifyFieldIsLb1EEEbRKNS_16VerifierTemplateIXT0_EEEtm:
  160|  1.25M|                   size_t align) const {
  161|       |    // Calling GetOptionalFieldOffset should be safe now thanks to
  162|       |    // VerifyTable().
  163|  1.25M|    auto field_offset = GetOptionalFieldOffset(field);
  164|       |    // Check the actual field.
  165|  1.25M|    return !field_offset ||
  ------------------
  |  Branch (165:12): [True: 1.08M, False: 168k]
  ------------------
  166|   168k|           verifier.template VerifyField<T>(data_, field_offset, align);
  ------------------
  |  Branch (166:12): [True: 168k, False: 73]
  ------------------
  167|  1.25M|  }
_ZNK11flatbuffers5Table20VerifyOffsetRequiredIjLb1EEEbRKNS_16VerifierTemplateIXT0_EEEt:
  189|   625k|                            voffset_t field) const {
  190|   625k|    auto field_offset = GetOptionalFieldOffset(field);
  191|   625k|    return verifier.Check(field_offset != 0) &&
  ------------------
  |  Branch (191:12): [True: 625k, False: 116]
  ------------------
  192|   625k|           verifier.template VerifyOffset<OffsetT>(data_, field_offset);
  ------------------
  |  Branch (192:12): [True: 625k, False: 143]
  ------------------
  193|   625k|  }
_ZNK11flatbuffers5Table12VerifyOffsetIjLb1EEEbRKNS_16VerifierTemplateIXT0_EEEt:
  181|  16.1M|                    voffset_t field) const {
  182|  16.1M|    auto field_offset = GetOptionalFieldOffset(field);
  183|  16.1M|    return !field_offset ||
  ------------------
  |  Branch (183:12): [True: 14.5M, False: 1.62M]
  ------------------
  184|  1.62M|           verifier.template VerifyOffset<OffsetT>(data_, field_offset);
  ------------------
  |  Branch (184:12): [True: 1.61M, False: 718]
  ------------------
  185|  16.1M|  }
_ZNK11flatbuffers5Table11VerifyFieldIhLb1EEEbRKNS_16VerifierTemplateIXT0_EEEtm:
  160|  3.56M|                   size_t align) const {
  161|       |    // Calling GetOptionalFieldOffset should be safe now thanks to
  162|       |    // VerifyTable().
  163|  3.56M|    auto field_offset = GetOptionalFieldOffset(field);
  164|       |    // Check the actual field.
  165|  3.56M|    return !field_offset ||
  ------------------
  |  Branch (165:12): [True: 2.90M, False: 666k]
  ------------------
  166|   666k|           verifier.template VerifyField<T>(data_, field_offset, align);
  ------------------
  |  Branch (166:12): [True: 666k, False: 231]
  ------------------
  167|  3.56M|  }
_ZNK11flatbuffers5Table11VerifyFieldItLb1EEEbRKNS_16VerifierTemplateIXT0_EEEtm:
  160|  31.2k|                   size_t align) const {
  161|       |    // Calling GetOptionalFieldOffset should be safe now thanks to
  162|       |    // VerifyTable().
  163|  31.2k|    auto field_offset = GetOptionalFieldOffset(field);
  164|       |    // Check the actual field.
  165|  31.2k|    return !field_offset ||
  ------------------
  |  Branch (165:12): [True: 23.8k, False: 7.40k]
  ------------------
  166|  7.40k|           verifier.template VerifyField<T>(data_, field_offset, align);
  ------------------
  |  Branch (166:12): [True: 7.35k, False: 44]
  ------------------
  167|  31.2k|  }
_ZNK11flatbuffers5Table11VerifyFieldIiLb1EEEbRKNS_16VerifierTemplateIXT0_EEEtm:
  160|  1.24M|                   size_t align) const {
  161|       |    // Calling GetOptionalFieldOffset should be safe now thanks to
  162|       |    // VerifyTable().
  163|  1.24M|    auto field_offset = GetOptionalFieldOffset(field);
  164|       |    // Check the actual field.
  165|  1.24M|    return !field_offset ||
  ------------------
  |  Branch (165:12): [True: 1.23M, False: 7.89k]
  ------------------
  166|  7.89k|           verifier.template VerifyField<T>(data_, field_offset, align);
  ------------------
  |  Branch (166:12): [True: 7.85k, False: 41]
  ------------------
  167|  1.24M|  }
_ZNK11flatbuffers5Table11VerifyFieldIjLb1EEEbRKNS_16VerifierTemplateIXT0_EEEtm:
  160|  1.24M|                   size_t align) const {
  161|       |    // Calling GetOptionalFieldOffset should be safe now thanks to
  162|       |    // VerifyTable().
  163|  1.24M|    auto field_offset = GetOptionalFieldOffset(field);
  164|       |    // Check the actual field.
  165|  1.24M|    return !field_offset ||
  ------------------
  |  Branch (165:12): [True: 1.19M, False: 43.9k]
  ------------------
  166|  43.9k|           verifier.template VerifyField<T>(data_, field_offset, align);
  ------------------
  |  Branch (166:12): [True: 43.9k, False: 54]
  ------------------
  167|  1.24M|  }
_ZNK11flatbuffers5Table11VerifyFieldIlLb1EEEbRKNS_16VerifierTemplateIXT0_EEEtm:
  160|  1.27M|                   size_t align) const {
  161|       |    // Calling GetOptionalFieldOffset should be safe now thanks to
  162|       |    // VerifyTable().
  163|  1.27M|    auto field_offset = GetOptionalFieldOffset(field);
  164|       |    // Check the actual field.
  165|  1.27M|    return !field_offset ||
  ------------------
  |  Branch (165:12): [True: 1.26M, False: 13.1k]
  ------------------
  166|  13.1k|           verifier.template VerifyField<T>(data_, field_offset, align);
  ------------------
  |  Branch (166:12): [True: 13.0k, False: 106]
  ------------------
  167|  1.27M|  }
_ZNK11flatbuffers5Table11VerifyFieldImLb1EEEbRKNS_16VerifierTemplateIXT0_EEEtm:
  160|  4.40M|                   size_t align) const {
  161|       |    // Calling GetOptionalFieldOffset should be safe now thanks to
  162|       |    // VerifyTable().
  163|  4.40M|    auto field_offset = GetOptionalFieldOffset(field);
  164|       |    // Check the actual field.
  165|  4.40M|    return !field_offset ||
  ------------------
  |  Branch (165:12): [True: 4.35M, False: 51.2k]
  ------------------
  166|  51.2k|           verifier.template VerifyField<T>(data_, field_offset, align);
  ------------------
  |  Branch (166:12): [True: 51.0k, False: 155]
  ------------------
  167|  4.40M|  }
_ZNK11flatbuffers5Table11VerifyFieldIfLb1EEEbRKNS_16VerifierTemplateIXT0_EEEtm:
  160|  6.19M|                   size_t align) const {
  161|       |    // Calling GetOptionalFieldOffset should be safe now thanks to
  162|       |    // VerifyTable().
  163|  6.19M|    auto field_offset = GetOptionalFieldOffset(field);
  164|       |    // Check the actual field.
  165|  6.19M|    return !field_offset ||
  ------------------
  |  Branch (165:12): [True: 6.17M, False: 26.2k]
  ------------------
  166|  26.2k|           verifier.template VerifyField<T>(data_, field_offset, align);
  ------------------
  |  Branch (166:12): [True: 26.1k, False: 93]
  ------------------
  167|  6.19M|  }
_ZNK11flatbuffers5Table11VerifyFieldIaLb1EEEbRKNS_16VerifierTemplateIXT0_EEEtm:
  160|   619k|                   size_t align) const {
  161|       |    // Calling GetOptionalFieldOffset should be safe now thanks to
  162|       |    // VerifyTable().
  163|   619k|    auto field_offset = GetOptionalFieldOffset(field);
  164|       |    // Check the actual field.
  165|   619k|    return !field_offset ||
  ------------------
  |  Branch (165:12): [True: 616k, False: 2.45k]
  ------------------
  166|  2.45k|           verifier.template VerifyField<T>(data_, field_offset, align);
  ------------------
  |  Branch (166:12): [True: 2.41k, False: 39]
  ------------------
  167|   619k|  }
_ZNK11flatbuffers5Table11VerifyFieldIN6MyGame7Example4TestELb1EEEbRKNS_16VerifierTemplateIXT0_EEEtm:
  160|   618k|                   size_t align) const {
  161|       |    // Calling GetOptionalFieldOffset should be safe now thanks to
  162|       |    // VerifyTable().
  163|   618k|    auto field_offset = GetOptionalFieldOffset(field);
  164|       |    // Check the actual field.
  165|   618k|    return !field_offset ||
  ------------------
  |  Branch (165:12): [True: 617k, False: 1.68k]
  ------------------
  166|  1.68k|           verifier.template VerifyField<T>(data_, field_offset, align);
  ------------------
  |  Branch (166:12): [True: 1.63k, False: 52]
  ------------------
  167|   618k|  }
_ZNK11flatbuffers5Table11VerifyFieldIdLb1EEEbRKNS_16VerifierTemplateIXT0_EEEtm:
  160|   618k|                   size_t align) const {
  161|       |    // Calling GetOptionalFieldOffset should be safe now thanks to
  162|       |    // VerifyTable().
  163|   618k|    auto field_offset = GetOptionalFieldOffset(field);
  164|       |    // Check the actual field.
  165|   618k|    return !field_offset ||
  ------------------
  |  Branch (165:12): [True: 616k, False: 2.11k]
  ------------------
  166|  2.11k|           verifier.template VerifyField<T>(data_, field_offset, align);
  ------------------
  |  Branch (166:12): [True: 2.06k, False: 53]
  ------------------
  167|   618k|  }

_ZNK11flatbuffers6VectorINS_6OffsetINS_6StringEEEjE4sizeEv:
  178|   135k|  SizeT size() const { return EndianScalar(length_); }
_ZNK11flatbuffers6VectorINS_6OffsetINS_6StringEEEjE3GetEj:
  194|  53.5k|  return_type Get(SizeT i) const {
  195|  53.5k|    FLATBUFFERS_ASSERT(i < size());
  196|  53.5k|    return IndirectHelper<T>::Read(Data(), i);
  197|  53.5k|  }
_ZNK11flatbuffers6VectorINS_6OffsetINS_6StringEEEjE4DataEv:
  274|  53.5k|  const uint8_t* Data() const {
  275|  53.5k|    return reinterpret_cast<const uint8_t*>(&length_ + 1);
  276|  53.5k|  }
_ZNK11flatbuffers6VectorINS_6OffsetIN6MyGame7Example7MonsterEEEjE4sizeEv:
  178|  2.25M|  SizeT size() const { return EndianScalar(length_); }
_ZNK11flatbuffers6VectorINS_6OffsetIN6MyGame7Example7MonsterEEEjE3GetEj:
  194|  1.00M|  return_type Get(SizeT i) const {
  195|  1.00M|    FLATBUFFERS_ASSERT(i < size());
  196|  1.00M|    return IndirectHelper<T>::Read(Data(), i);
  197|  1.00M|  }
_ZNK11flatbuffers6VectorINS_6OffsetIN6MyGame7Example7MonsterEEEjE4DataEv:
  274|  1.00M|  const uint8_t* Data() const {
  275|  1.00M|    return reinterpret_cast<const uint8_t*>(&length_ + 1);
  276|  1.00M|  }
_ZNK11flatbuffers6VectorIhjE4sizeEv:
  178|  42.0k|  SizeT size() const { return EndianScalar(length_); }
_ZNK11flatbuffers6VectorIhjE4dataEv:
  281|  23.2k|  const T* data() const { return reinterpret_cast<const T*>(Data()); }
_ZNK11flatbuffers6VectorIhjE4DataEv:
  274|  23.2k|  const uint8_t* Data() const {
  275|  23.2k|    return reinterpret_cast<const uint8_t*>(&length_ + 1);
  276|  23.2k|  }
_ZNK11flatbuffers6VectorINS_6OffsetIN6MyGame7Example10ReferrableEEEjE4sizeEv:
  178|   316k|  SizeT size() const { return EndianScalar(length_); }
_ZNK11flatbuffers6VectorINS_6OffsetIN6MyGame7Example10ReferrableEEEjE3GetEj:
  194|   134k|  return_type Get(SizeT i) const {
  195|   134k|    FLATBUFFERS_ASSERT(i < size());
  196|   134k|    return IndirectHelper<T>::Read(Data(), i);
  197|   134k|  }
_ZNK11flatbuffers6VectorINS_6OffsetIN6MyGame7Example10ReferrableEEEjE4DataEv:
  274|   134k|  const uint8_t* Data() const {
  275|   134k|    return reinterpret_cast<const uint8_t*>(&length_ + 1);
  276|   134k|  }
_ZNK11flatbuffers6VectorINS_6OffsetIN6MyGame7Example4StatEEEjE4sizeEv:
  178|  38.5k|  SizeT size() const { return EndianScalar(length_); }
_ZNK11flatbuffers6VectorINS_6OffsetIN6MyGame7Example4StatEEEjE3GetEj:
  194|  16.2k|  return_type Get(SizeT i) const {
  195|  16.2k|    FLATBUFFERS_ASSERT(i < size());
  196|  16.2k|    return IndirectHelper<T>::Read(Data(), i);
  197|  16.2k|  }
_ZNK11flatbuffers6VectorINS_6OffsetIN6MyGame7Example4StatEEEjE4DataEv:
  274|  16.2k|  const uint8_t* Data() const {
  275|  16.2k|    return reinterpret_cast<const uint8_t*>(&length_ + 1);
  276|  16.2k|  }

_ZN11flatbuffers16VerifierTemplateILb0EEC2EPKhmjjb:
   55|  6.37k|      : VerifierTemplate(buf, buf_len, [&] {
   56|  6.37k|          Options opts;
   57|  6.37k|          opts.max_depth = max_depth;
   58|  6.37k|          opts.max_tables = max_tables;
   59|  6.37k|          opts.check_alignment = check_alignment;
   60|  6.37k|          return opts;
   61|  6.37k|        }()) {}
_ZZN11flatbuffers16VerifierTemplateILb0EEC1EPKhmjjbENKUlvE_clEv:
   55|  6.37k|      : VerifierTemplate(buf, buf_len, [&] {
   56|  6.37k|          Options opts;
   57|  6.37k|          opts.max_depth = max_depth;
   58|  6.37k|          opts.max_tables = max_tables;
   59|  6.37k|          opts.check_alignment = check_alignment;
   60|  6.37k|          return opts;
   61|  6.37k|        }()) {}
_ZN11flatbuffers16VerifierTemplateILb0EEC2EPKhmRKNS1_7OptionsE:
   46|  15.8k|      : buf_(buf), size_(buf_len), opts_(opts) {
   47|  15.8k|    FLATBUFFERS_ASSERT(size_ < opts.max_size);
   48|  15.8k|  }
_ZN11flatbuffers16VerifierTemplateILb0EE12VerifyBufferIN6MyGame7Example7MonsterEEEbPKc:
  251|  15.8k|  bool VerifyBuffer(const char* const identifier) {
  252|  15.8k|    return VerifyBufferFromStart<T>(identifier, 0);
  253|  15.8k|  }
_ZN11flatbuffers16VerifierTemplateILb0EE21VerifyBufferFromStartIN6MyGame7Example7MonsterEEEbPKcm:
  203|  15.8k|  bool VerifyBufferFromStart(const char* const identifier, const size_t start) {
  204|       |    // Buffers have to be of some size to be valid. The reason it is a runtime
  205|       |    // check instead of static_assert, is that nested flatbuffers go through
  206|       |    // this call and their size is determined at runtime.
  207|  15.8k|    if (!Check(size_ >= FLATBUFFERS_MIN_BUFFER_SIZE)) return false;
  ------------------
  |  |  349|  15.8k|#define FLATBUFFERS_MIN_BUFFER_SIZE sizeof(::flatbuffers::uoffset_t) + \
  |  |  350|  15.8k|  sizeof(::flatbuffers::soffset_t) + sizeof(uint16_t) + sizeof(uint16_t)
  ------------------
  |  Branch (207:9): [True: 8, False: 15.8k]
  ------------------
  208|       |
  209|       |    // If an identifier is provided, check that we have a buffer
  210|  15.8k|    if (identifier && !Check((size_ >= 2 * sizeof(flatbuffers::uoffset_t) &&
  ------------------
  |  Branch (210:9): [True: 6.37k, False: 9.48k]
  |  Branch (210:23): [True: 35, False: 6.33k]
  |  Branch (210:31): [True: 6.37k, False: 0]
  ------------------
  211|  6.37k|                              BufferHasIdentifier(buf_ + start, identifier)))) {
  ------------------
  |  Branch (211:31): [True: 6.33k, False: 35]
  ------------------
  212|     35|      return false;
  213|     35|    }
  214|       |
  215|       |    // Call T::Verify, which must be in the generated code for this type.
  216|  15.8k|    const auto o = VerifyOffset<uoffset_t>(start);
  217|  15.8k|    if (!Check(o != 0)) return false;
  ------------------
  |  Branch (217:9): [True: 188, False: 15.6k]
  ------------------
  218|  15.6k|    if (!(reinterpret_cast<const T*>(buf_ + start + o)->Verify(*this))) {
  ------------------
  |  Branch (218:9): [True: 5.60k, False: 10.0k]
  ------------------
  219|  5.60k|      return false;
  220|  5.60k|    }
  221|  10.0k|    if (TrackVerifierBufferSize) {
  ------------------
  |  Branch (221:9): [Folded, False: 10.0k]
  ------------------
  222|      0|      if (GetComputedSize() == 0) return false;
  ------------------
  |  Branch (222:11): [True: 0, False: 0]
  ------------------
  223|      0|    }
  224|  10.0k|    return true;
  225|  10.0k|  }
_ZNK11flatbuffers16VerifierTemplateILb0EE5CheckEb:
   64|  31.5M|  bool Check(const bool ok) const {
   65|       |    // clang-format off
   66|       |    #ifdef FLATBUFFERS_DEBUG_VERIFICATION_FAILURE
   67|       |      if (opts_.assert) { FLATBUFFERS_ASSERT(ok); }
   68|       |    #endif
   69|       |    // clang-format on
   70|  31.5M|    if (TrackVerifierBufferSize) {
  ------------------
  |  Branch (70:9): [Folded, False: 31.5M]
  ------------------
   71|      0|      if (!ok) {
  ------------------
  |  Branch (71:11): [True: 0, False: 0]
  ------------------
   72|      0|        upper_bound_ = 0;
   73|      0|      }
   74|      0|    }
   75|  31.5M|    return ok;
   76|  31.5M|  }
_ZNK11flatbuffers16VerifierTemplateILb0EE12VerifyOffsetIjiEEmm:
  265|  2.26M|  size_t VerifyOffset(const size_t start) const {
  266|  2.26M|    if (!Verify<OffsetT>(start)) return 0;
  ------------------
  |  Branch (266:9): [True: 331, False: 2.26M]
  ------------------
  267|  2.26M|    const auto o = ReadScalar<OffsetT>(buf_ + start);
  268|       |    // May not point to itself.
  269|  2.26M|    if (!Check(o != 0)) return 0;
  ------------------
  |  Branch (269:9): [True: 71, False: 2.26M]
  ------------------
  270|       |    // Can't wrap around larger than the max size.
  271|  2.26M|    if (!Check(static_cast<SOffsetT>(o) >= 0)) return 0;
  ------------------
  |  Branch (271:9): [True: 229, False: 2.26M]
  ------------------
  272|       |    // Must be inside the buffer to create a pointer from it (pointer outside
  273|       |    // buffer is UB).
  274|  2.26M|    if (!Verify(start + o, 1)) return 0;
  ------------------
  |  Branch (274:9): [True: 438, False: 2.26M]
  ------------------
  275|  2.26M|    return o;
  276|  2.26M|  }
_ZNK11flatbuffers16VerifierTemplateILb0EE6VerifyIjEEbm:
   95|  3.91M|  bool Verify(const size_t elem) const {
   96|  3.91M|    return VerifyAlignment(elem, sizeof(T)) && Verify(elem, sizeof(T));
  ------------------
  |  Branch (96:12): [True: 3.91M, False: 329]
  |  Branch (96:48): [True: 3.91M, False: 344]
  ------------------
   97|  3.91M|  }
_ZNK11flatbuffers16VerifierTemplateILb0EE15VerifyAlignmentEmm:
   89|  8.53M|  bool VerifyAlignment(const size_t elem, const size_t align) const {
   90|  8.53M|    return Check((elem & (align - 1)) == 0 || !opts_.check_alignment);
  ------------------
  |  Branch (90:18): [True: 8.52M, False: 665]
  |  Branch (90:47): [True: 0, False: 665]
  ------------------
   91|  8.53M|  }
_ZNK11flatbuffers16VerifierTemplateILb0EE6VerifyEmm:
   79|  13.1M|  bool Verify(const size_t elem, const size_t elem_len) const {
   80|  13.1M|    if (TrackVerifierBufferSize) {
  ------------------
  |  Branch (80:9): [Folded, False: 13.1M]
  ------------------
   81|      0|      auto upper_bound = elem + elem_len;
   82|      0|      if (upper_bound_ < upper_bound) {
  ------------------
  |  Branch (82:11): [True: 0, False: 0]
  ------------------
   83|      0|        upper_bound_ = upper_bound;
   84|      0|      }
   85|      0|    }
   86|  13.1M|    return Check(elem_len < size_ && elem <= size_ - elem_len);
  ------------------
  |  Branch (86:18): [True: 13.1M, False: 1.25k]
  |  Branch (86:38): [True: 13.1M, False: 2.25k]
  ------------------
   87|  13.1M|  }
_ZN11flatbuffers16VerifierTemplateILb0EE16VerifyTableStartEPKh:
  185|  1.20M|  bool VerifyTableStart(const uint8_t* const table) {
  186|       |    // Check the vtable offset.
  187|  1.20M|    const auto tableo = static_cast<size_t>(table - buf_);
  188|  1.20M|    if (!Verify<soffset_t>(tableo)) return false;
  ------------------
  |  Branch (188:9): [True: 329, False: 1.20M]
  ------------------
  189|       |    // This offset may be signed, but doing the subtraction unsigned always
  190|       |    // gives the result we want.
  191|  1.20M|    const auto vtableo =
  192|  1.20M|        tableo - static_cast<size_t>(ReadScalar<soffset_t>(table));
  193|       |    // Check the vtable size field, then check vtable fits in its entirety.
  194|  1.20M|    if (!(VerifyComplexity() && Verify<voffset_t>(vtableo) &&
  ------------------
  |  Branch (194:11): [True: 1.20M, False: 2]
  |  Branch (194:33): [True: 1.20M, False: 187]
  ------------------
  195|  1.20M|          VerifyAlignment(ReadScalar<voffset_t>(buf_ + vtableo),
  ------------------
  |  Branch (195:11): [True: 1.20M, False: 4]
  ------------------
  196|  1.20M|                          sizeof(voffset_t))))
  197|    193|      return false;
  198|  1.20M|    const auto vsize = ReadScalar<voffset_t>(buf_ + vtableo);
  199|  1.20M|    return Check((vsize & 1) == 0) && Verify(vtableo, vsize);
  ------------------
  |  Branch (199:12): [True: 1.20M, False: 0]
  |  Branch (199:39): [True: 1.20M, False: 50]
  ------------------
  200|  1.20M|  }
_ZNK11flatbuffers16VerifierTemplateILb0EE6VerifyIiEEbm:
   95|  1.20M|  bool Verify(const size_t elem) const {
   96|  1.20M|    return VerifyAlignment(elem, sizeof(T)) && Verify(elem, sizeof(T));
  ------------------
  |  Branch (96:12): [True: 1.20M, False: 81]
  |  Branch (96:48): [True: 1.20M, False: 248]
  ------------------
   97|  1.20M|  }
_ZN11flatbuffers16VerifierTemplateILb0EE16VerifyComplexityEv:
  286|  1.20M|  bool VerifyComplexity() {
  287|  1.20M|    depth_++;
  288|  1.20M|    num_tables_++;
  289|  1.20M|    return Check(depth_ <= opts_.max_depth && num_tables_ <= opts_.max_tables);
  ------------------
  |  Branch (289:18): [True: 1.20M, False: 1]
  |  Branch (289:47): [True: 1.20M, False: 1]
  ------------------
  290|  1.20M|  }
_ZNK11flatbuffers16VerifierTemplateILb0EE6VerifyItEEbm:
   95|  1.20M|  bool Verify(const size_t elem) const {
   96|  1.20M|    return VerifyAlignment(elem, sizeof(T)) && Verify(elem, sizeof(T));
  ------------------
  |  Branch (96:12): [True: 1.20M, False: 26]
  |  Branch (96:48): [True: 1.20M, False: 161]
  ------------------
   97|  1.20M|  }
_ZNK11flatbuffers16VerifierTemplateILb0EE11VerifyFieldIN6MyGame7Example4Vec3EEEbPKhtm:
  112|  5.59k|                   const size_t align) const {
  113|  5.59k|    const auto f = static_cast<size_t>(base - buf_) + elem_off;
  114|  5.59k|    return VerifyAlignment(f, align) && Verify(f, sizeof(T));
  ------------------
  |  Branch (114:12): [True: 5.58k, False: 13]
  |  Branch (114:41): [True: 5.53k, False: 54]
  ------------------
  115|  5.59k|  }
_ZNK11flatbuffers16VerifierTemplateILb0EE11VerifyFieldIsEEbPKhtm:
  112|   168k|                   const size_t align) const {
  113|   168k|    const auto f = static_cast<size_t>(base - buf_) + elem_off;
  114|   168k|    return VerifyAlignment(f, align) && Verify(f, sizeof(T));
  ------------------
  |  Branch (114:12): [True: 168k, False: 11]
  |  Branch (114:41): [True: 168k, False: 62]
  ------------------
  115|   168k|  }
_ZNK11flatbuffers16VerifierTemplateILb0EE12VerifyOffsetIjEEmPKht:
  279|  2.24M|  size_t VerifyOffset(const uint8_t* const base, const voffset_t start) const {
  280|  2.24M|    return VerifyOffset<OffsetT>(static_cast<size_t>(base - buf_) + start);
  281|  2.24M|  }
_ZNK11flatbuffers16VerifierTemplateILb0EE12VerifyStringEPKNS_6StringE:
  137|   684k|  bool VerifyString(const String* const str) const {
  138|   684k|    size_t end;
  139|   684k|    return !str || (VerifyVectorOrString<uoffset_t>(
  ------------------
  |  Branch (139:12): [True: 23.8k, False: 660k]
  |  Branch (139:21): [True: 660k, False: 426]
  ------------------
  140|   660k|                        reinterpret_cast<const uint8_t*>(str), 1, &end) &&
  141|   660k|                    Verify(end, 1) &&           // Must have terminator
  ------------------
  |  Branch (141:21): [True: 660k, False: 31]
  ------------------
  142|   660k|                    Check(buf_[end] == '\0'));  // Terminating byte must be 0.
  ------------------
  |  Branch (142:21): [True: 660k, False: 55]
  ------------------
  143|   684k|  }
_ZNK11flatbuffers16VerifierTemplateILb0EE20VerifyVectorOrStringIjEEbPKhmPm:
  148|  1.65M|                            size_t* const end = nullptr) const {
  149|  1.65M|    const auto vec_offset = static_cast<size_t>(vec - buf_);
  150|       |    // Check we can read the size field.
  151|  1.65M|    if (!Verify<LenT>(vec_offset)) return false;
  ------------------
  |  Branch (151:9): [True: 342, False: 1.65M]
  ------------------
  152|       |    // Check the whole array. If this is a string, the byte past the array must
  153|       |    // be 0.
  154|  1.65M|    const LenT size = ReadScalar<LenT>(vec);
  155|  1.65M|    const auto max_elems = opts_.max_size / elem_size;
  156|  1.65M|    if (!Check(size < max_elems))
  ------------------
  |  Branch (156:9): [True: 143, False: 1.65M]
  ------------------
  157|    143|      return false;  // Protect against byte_size overflowing.
  158|  1.65M|    const auto byte_size = sizeof(LenT) + elem_size * size;
  159|  1.65M|    if (end) *end = vec_offset + byte_size;
  ------------------
  |  Branch (159:9): [True: 660k, False: 991k]
  ------------------
  160|  1.65M|    return Verify(vec_offset, byte_size);
  161|  1.65M|  }
_ZNK11flatbuffers16VerifierTemplateILb0EE12VerifyVectorITpTnRiJEhjEEbPKNS_6VectorIT0_T1_EE:
  125|  3.11M|  bool VerifyVector(const Vector<T, LenT>* const vec) const {
  126|  3.11M|    return !vec || VerifyVectorOrString<LenT>(
  ------------------
  |  Branch (126:12): [True: 2.48M, False: 627k]
  |  Branch (126:20): [True: 627k, False: 154]
  ------------------
  127|   627k|                       reinterpret_cast<const uint8_t*>(vec), sizeof(T));
  128|  3.11M|  }
_ZNK11flatbuffers16VerifierTemplateILb0EE11VerifyFieldIhEEbPKhtm:
  112|   667k|                   const size_t align) const {
  113|   667k|    const auto f = static_cast<size_t>(base - buf_) + elem_off;
  114|   667k|    return VerifyAlignment(f, align) && Verify(f, sizeof(T));
  ------------------
  |  Branch (114:12): [True: 667k, False: 0]
  |  Branch (114:41): [True: 666k, False: 231]
  ------------------
  115|   667k|  }
_ZN11flatbuffers16VerifierTemplateILb0EE11VerifyTableIN6MyGame7Example23TestSimpleTableWithEnumEEEbPKT_:
  119|   461k|  bool VerifyTable(const T* const table) {
  120|   461k|    return !table || table->Verify(*this);
  ------------------
  |  Branch (120:12): [True: 4.55k, False: 456k]
  |  Branch (120:22): [True: 456k, False: 82]
  ------------------
  121|   461k|  }
_ZN11flatbuffers16VerifierTemplateILb0EE11VerifyTableIN6MyGame8Example27MonsterEEEbPKT_:
  119|  15.5k|  bool VerifyTable(const T* const table) {
  120|  15.5k|    return !table || table->Verify(*this);
  ------------------
  |  Branch (120:12): [True: 905, False: 14.6k]
  |  Branch (120:22): [True: 14.6k, False: 4]
  ------------------
  121|  15.5k|  }
_ZNK11flatbuffers16VerifierTemplateILb0EE12VerifyVectorITpTnRiJEN6MyGame7Example4TestEjEEbPKNS_6VectorIPKT0_T1_EE:
  132|  1.24M|  bool VerifyVector(const Vector<const T*, LenT>* const vec) const {
  133|  1.24M|    return VerifyVector(reinterpret_cast<const Vector<T, LenT>*>(vec));
  134|  1.24M|  }
_ZNK11flatbuffers16VerifierTemplateILb0EE12VerifyVectorITpTnRiJEN6MyGame7Example4TestEjEEbPKNS_6VectorIT0_T1_EE:
  125|  1.24M|  bool VerifyVector(const Vector<T, LenT>* const vec) const {
  126|  1.24M|    return !vec || VerifyVectorOrString<LenT>(
  ------------------
  |  Branch (126:12): [True: 1.10M, False: 143k]
  |  Branch (126:20): [True: 142k, False: 152]
  ------------------
  127|   143k|                       reinterpret_cast<const uint8_t*>(vec), sizeof(T));
  128|  1.24M|  }
_ZNK11flatbuffers16VerifierTemplateILb0EE12VerifyVectorITpTnRiJENS_6OffsetINS_6StringEEEjEEbPKNS_6VectorIT0_T1_EE:
  125|  1.24M|  bool VerifyVector(const Vector<T, LenT>* const vec) const {
  126|  1.24M|    return !vec || VerifyVectorOrString<LenT>(
  ------------------
  |  Branch (126:12): [True: 1.23M, False: 14.7k]
  |  Branch (126:20): [True: 14.5k, False: 146]
  ------------------
  127|  14.7k|                       reinterpret_cast<const uint8_t*>(vec), sizeof(T));
  128|  1.24M|  }
_ZNK11flatbuffers16VerifierTemplateILb0EE21VerifyVectorOfStringsEPKNS_6VectorINS_6OffsetINS_6StringEEEjEE:
  164|  1.24M|  bool VerifyVectorOfStrings(const Vector<Offset<String>>* const vec) const {
  165|  1.24M|    if (vec) {
  ------------------
  |  Branch (165:9): [True: 14.5k, False: 1.23M]
  ------------------
  166|  41.1k|      for (uoffset_t i = 0; i < vec->size(); i++) {
  ------------------
  |  Branch (166:29): [True: 26.7k, False: 14.3k]
  ------------------
  167|  26.7k|        if (!VerifyString(vec->Get(i))) return false;
  ------------------
  |  Branch (167:13): [True: 194, False: 26.5k]
  ------------------
  168|  26.7k|      }
  169|  14.5k|    }
  170|  1.24M|    return true;
  171|  1.24M|  }
_ZNK11flatbuffers16VerifierTemplateILb0EE12VerifyVectorITpTnRiJENS_6OffsetIN6MyGame7Example7MonsterEEEjEEbPKNS_6VectorIT0_T1_EE:
  125|   625k|  bool VerifyVector(const Vector<T, LenT>* const vec) const {
  126|   625k|    return !vec || VerifyVectorOrString<LenT>(
  ------------------
  |  Branch (126:12): [True: 495k, False: 129k]
  |  Branch (126:20): [True: 129k, False: 124]
  ------------------
  127|   129k|                       reinterpret_cast<const uint8_t*>(vec), sizeof(T));
  128|   625k|  }
_ZN11flatbuffers16VerifierTemplateILb0EE20VerifyVectorOfTablesIN6MyGame7Example7MonsterEEEbPKNS_6VectorINS_6OffsetIT_EEjEE:
  175|   624k|  bool VerifyVectorOfTables(const Vector<Offset<T>>* const vec) {
  176|   624k|    if (vec) {
  ------------------
  |  Branch (176:9): [True: 129k, False: 495k]
  ------------------
  177|   628k|      for (uoffset_t i = 0; i < vec->size(); i++) {
  ------------------
  |  Branch (177:29): [True: 500k, False: 128k]
  ------------------
  178|   500k|        if (!vec->Get(i)->Verify(*this)) return false;
  ------------------
  |  Branch (178:13): [True: 1.49k, False: 499k]
  ------------------
  179|   500k|      }
  180|   129k|    }
  181|   623k|    return true;
  182|   624k|  }
_ZN11flatbuffers16VerifierTemplateILb0EE11VerifyTableIN6MyGame7Example7MonsterEEEbPKT_:
  119|   629k|  bool VerifyTable(const T* const table) {
  120|   629k|    return !table || table->Verify(*this);
  ------------------
  |  Branch (120:12): [True: 518k, False: 110k]
  |  Branch (120:22): [True: 110k, False: 558]
  ------------------
  121|   629k|  }
_ZN11flatbuffers16VerifierTemplateILb0EE22VerifyNestedFlatBufferIN6MyGame7Example7MonsterETpTnRiJEjEEbPKNS_6VectorIhT1_EEPKc:
  229|  1.24M|                              const char* const identifier) {
  230|       |    // Caller opted out of this.
  231|  1.24M|    if (!opts_.check_nested_flatbuffers) return true;
  ------------------
  |  Branch (231:9): [True: 0, False: 1.24M]
  ------------------
  232|       |
  233|       |    // An empty buffer is OK as it indicates not present.
  234|  1.24M|    if (!buf) return true;
  ------------------
  |  Branch (234:9): [True: 1.23M, False: 9.51k]
  ------------------
  235|       |
  236|       |    // If there is a nested buffer, it must be greater than the min size.
  237|  9.51k|    if (!Check(buf->size() >= FLATBUFFERS_MIN_BUFFER_SIZE)) return false;
  ------------------
  |  |  349|  9.51k|#define FLATBUFFERS_MIN_BUFFER_SIZE sizeof(::flatbuffers::uoffset_t) + \
  |  |  350|  9.51k|  sizeof(::flatbuffers::soffset_t) + sizeof(uint16_t) + sizeof(uint16_t)
  ------------------
  |  Branch (237:9): [True: 33, False: 9.48k]
  ------------------
  238|       |
  239|  9.48k|    VerifierTemplate<TrackVerifierBufferSize> nested_verifier(
  240|  9.48k|        buf->data(), buf->size(), opts_);
  241|  9.48k|    return nested_verifier.VerifyBuffer<T>(identifier);
  242|  9.51k|  }
_ZN11flatbuffers16VerifierTemplateILb0EE11VerifyTableIN6MyGame7Example4StatEEEbPKT_:
  119|   623k|  bool VerifyTable(const T* const table) {
  120|   623k|    return !table || table->Verify(*this);
  ------------------
  |  Branch (120:12): [True: 599k, False: 23.8k]
  |  Branch (120:22): [True: 23.5k, False: 352]
  ------------------
  121|   623k|  }
_ZNK11flatbuffers16VerifierTemplateILb0EE11VerifyFieldItEEbPKhtm:
  112|  7.66k|                   const size_t align) const {
  113|  7.66k|    const auto f = static_cast<size_t>(base - buf_) + elem_off;
  114|  7.66k|    return VerifyAlignment(f, align) && Verify(f, sizeof(T));
  ------------------
  |  Branch (114:12): [True: 7.65k, False: 11]
  |  Branch (114:41): [True: 7.61k, False: 33]
  ------------------
  115|  7.66k|  }
_ZNK11flatbuffers16VerifierTemplateILb0EE11VerifyFieldIiEEbPKhtm:
  112|  8.22k|                   const size_t align) const {
  113|  8.22k|    const auto f = static_cast<size_t>(base - buf_) + elem_off;
  114|  8.22k|    return VerifyAlignment(f, align) && Verify(f, sizeof(T));
  ------------------
  |  Branch (114:12): [True: 8.21k, False: 9]
  |  Branch (114:41): [True: 8.18k, False: 32]
  ------------------
  115|  8.22k|  }
_ZNK11flatbuffers16VerifierTemplateILb0EE11VerifyFieldIjEEbPKhtm:
  112|  44.1k|                   const size_t align) const {
  113|  44.1k|    const auto f = static_cast<size_t>(base - buf_) + elem_off;
  114|  44.1k|    return VerifyAlignment(f, align) && Verify(f, sizeof(T));
  ------------------
  |  Branch (114:12): [True: 44.1k, False: 15]
  |  Branch (114:41): [True: 44.1k, False: 39]
  ------------------
  115|  44.1k|  }
_ZNK11flatbuffers16VerifierTemplateILb0EE11VerifyFieldIlEEbPKhtm:
  112|  13.3k|                   const size_t align) const {
  113|  13.3k|    const auto f = static_cast<size_t>(base - buf_) + elem_off;
  114|  13.3k|    return VerifyAlignment(f, align) && Verify(f, sizeof(T));
  ------------------
  |  Branch (114:12): [True: 13.3k, False: 28]
  |  Branch (114:41): [True: 13.2k, False: 78]
  ------------------
  115|  13.3k|  }
_ZNK11flatbuffers16VerifierTemplateILb0EE11VerifyFieldImEEbPKhtm:
  112|  51.4k|                   const size_t align) const {
  113|  51.4k|    const auto f = static_cast<size_t>(base - buf_) + elem_off;
  114|  51.4k|    return VerifyAlignment(f, align) && Verify(f, sizeof(T));
  ------------------
  |  Branch (114:12): [True: 51.3k, False: 77]
  |  Branch (114:41): [True: 51.2k, False: 78]
  ------------------
  115|  51.4k|  }
_ZNK11flatbuffers16VerifierTemplateILb0EE11VerifyFieldIfEEbPKhtm:
  112|  26.3k|                   const size_t align) const {
  113|  26.3k|    const auto f = static_cast<size_t>(base - buf_) + elem_off;
  114|  26.3k|    return VerifyAlignment(f, align) && Verify(f, sizeof(T));
  ------------------
  |  Branch (114:12): [True: 26.2k, False: 34]
  |  Branch (114:41): [True: 26.2k, False: 59]
  ------------------
  115|  26.3k|  }
_ZNK11flatbuffers16VerifierTemplateILb0EE12VerifyVectorITpTnRiJEN6MyGame7Example7AbilityEjEEbPKNS_6VectorIPKT0_T1_EE:
  132|   622k|  bool VerifyVector(const Vector<const T*, LenT>* const vec) const {
  133|   622k|    return VerifyVector(reinterpret_cast<const Vector<T, LenT>*>(vec));
  134|   622k|  }
_ZNK11flatbuffers16VerifierTemplateILb0EE12VerifyVectorITpTnRiJEN6MyGame7Example7AbilityEjEEbPKNS_6VectorIT0_T1_EE:
  125|   622k|  bool VerifyVector(const Vector<T, LenT>* const vec) const {
  126|   622k|    return !vec || VerifyVectorOrString<LenT>(
  ------------------
  |  Branch (126:12): [True: 614k, False: 7.77k]
  |  Branch (126:20): [True: 7.63k, False: 135]
  ------------------
  127|  7.77k|                       reinterpret_cast<const uint8_t*>(vec), sizeof(T));
  128|   622k|  }
_ZN11flatbuffers16VerifierTemplateILb0EE19GetFlexReuseTrackerEv:
  321|  2.35k|  std::vector<uint8_t>* GetFlexReuseTracker() { return flex_reuse_tracker_; }
_ZNK11flatbuffers16VerifierTemplateILb0EE12VerifyVectorITpTnRiJEljEEbPKNS_6VectorIT0_T1_EE:
  125|   621k|  bool VerifyVector(const Vector<T, LenT>* const vec) const {
  126|   621k|    return !vec || VerifyVectorOrString<LenT>(
  ------------------
  |  Branch (126:12): [True: 615k, False: 5.82k]
  |  Branch (126:20): [True: 5.69k, False: 130]
  ------------------
  127|  5.82k|                       reinterpret_cast<const uint8_t*>(vec), sizeof(T));
  128|   621k|  }
_ZNK11flatbuffers16VerifierTemplateILb0EE12VerifyVectorITpTnRiJEdjEEbPKNS_6VectorIT0_T1_EE:
  125|   621k|  bool VerifyVector(const Vector<T, LenT>* const vec) const {
  126|   621k|    return !vec || VerifyVectorOrString<LenT>(
  ------------------
  |  Branch (126:12): [True: 609k, False: 11.4k]
  |  Branch (126:20): [True: 11.3k, False: 137]
  ------------------
  127|  11.4k|                       reinterpret_cast<const uint8_t*>(vec), sizeof(T));
  128|   621k|  }
_ZN11flatbuffers16VerifierTemplateILb0EE11VerifyTableIN6MyGame17InParentNamespaceEEEbPKT_:
  119|   620k|  bool VerifyTable(const T* const table) {
  120|   620k|    return !table || table->Verify(*this);
  ------------------
  |  Branch (120:12): [True: 613k, False: 7.05k]
  |  Branch (120:22): [True: 7.05k, False: 7]
  ------------------
  121|   620k|  }
_ZNK11flatbuffers16VerifierTemplateILb0EE12VerifyVectorITpTnRiJENS_6OffsetIN6MyGame7Example10ReferrableEEEjEEbPKNS_6VectorIT0_T1_EE:
  125|  1.24M|  bool VerifyVector(const Vector<T, LenT>* const vec) const {
  126|  1.24M|    return !vec || VerifyVectorOrString<LenT>(
  ------------------
  |  Branch (126:12): [True: 1.21M, False: 23.2k]
  |  Branch (126:20): [True: 23.1k, False: 134]
  ------------------
  127|  23.2k|                       reinterpret_cast<const uint8_t*>(vec), sizeof(T));
  128|  1.24M|  }
_ZN11flatbuffers16VerifierTemplateILb0EE20VerifyVectorOfTablesIN6MyGame7Example10ReferrableEEEbPKNS_6VectorINS_6OffsetIT_EEjEE:
  175|  1.24M|  bool VerifyVectorOfTables(const Vector<Offset<T>>* const vec) {
  176|  1.24M|    if (vec) {
  ------------------
  |  Branch (176:9): [True: 23.1k, False: 1.21M]
  ------------------
  177|  90.5k|      for (uoffset_t i = 0; i < vec->size(); i++) {
  ------------------
  |  Branch (177:29): [True: 67.4k, False: 23.0k]
  ------------------
  178|  67.4k|        if (!vec->Get(i)->Verify(*this)) return false;
  ------------------
  |  Branch (178:13): [True: 87, False: 67.3k]
  ------------------
  179|  67.4k|      }
  180|  23.1k|    }
  181|  1.24M|    return true;
  182|  1.24M|  }
_ZNK11flatbuffers16VerifierTemplateILb0EE12VerifyVectorITpTnRiJEmjEEbPKNS_6VectorIT0_T1_EE:
  125|  1.86M|  bool VerifyVector(const Vector<T, LenT>* const vec) const {
  126|  1.86M|    return !vec || VerifyVectorOrString<LenT>(
  ------------------
  |  Branch (126:12): [True: 1.84M, False: 20.8k]
  |  Branch (126:20): [True: 20.7k, False: 160]
  ------------------
  127|  20.8k|                       reinterpret_cast<const uint8_t*>(vec), sizeof(T));
  128|  1.86M|  }
_ZNK11flatbuffers16VerifierTemplateILb0EE12VerifyVectorITpTnRiJEN6MyGame7Example5ColorEjEEbPKNS_6VectorIT0_T1_EE:
  125|   620k|  bool VerifyVector(const Vector<T, LenT>* const vec) const {
  126|   620k|    return !vec || VerifyVectorOrString<LenT>(
  ------------------
  |  Branch (126:12): [True: 616k, False: 4.01k]
  |  Branch (126:20): [True: 3.88k, False: 133]
  ------------------
  127|  4.01k|                       reinterpret_cast<const uint8_t*>(vec), sizeof(T));
  128|   620k|  }
_ZNK11flatbuffers16VerifierTemplateILb0EE11VerifyFieldIaEEbPKhtm:
  112|  2.45k|                   const size_t align) const {
  113|  2.45k|    const auto f = static_cast<size_t>(base - buf_) + elem_off;
  114|  2.45k|    return VerifyAlignment(f, align) && Verify(f, sizeof(T));
  ------------------
  |  Branch (114:12): [True: 2.45k, False: 0]
  |  Branch (114:41): [True: 2.41k, False: 39]
  ------------------
  115|  2.45k|  }
_ZNK11flatbuffers16VerifierTemplateILb0EE12VerifyVectorITpTnRiJENS_6OffsetIN6MyGame7Example4StatEEEjEEbPKNS_6VectorIT0_T1_EE:
  125|   619k|  bool VerifyVector(const Vector<T, LenT>* const vec) const {
  126|   619k|    return !vec || VerifyVectorOrString<LenT>(
  ------------------
  |  Branch (126:12): [True: 616k, False: 3.25k]
  |  Branch (126:20): [True: 3.14k, False: 106]
  ------------------
  127|  3.25k|                       reinterpret_cast<const uint8_t*>(vec), sizeof(T));
  128|   619k|  }
_ZN11flatbuffers16VerifierTemplateILb0EE20VerifyVectorOfTablesIN6MyGame7Example4StatEEEbPKNS_6VectorINS_6OffsetIT_EEjEE:
  175|   619k|  bool VerifyVectorOfTables(const Vector<Offset<T>>* const vec) {
  176|   619k|    if (vec) {
  ------------------
  |  Branch (176:9): [True: 3.14k, False: 616k]
  ------------------
  177|  11.1k|      for (uoffset_t i = 0; i < vec->size(); i++) {
  ------------------
  |  Branch (177:29): [True: 8.12k, False: 3.00k]
  ------------------
  178|  8.12k|        if (!vec->Get(i)->Verify(*this)) return false;
  ------------------
  |  Branch (178:13): [True: 142, False: 7.98k]
  ------------------
  179|  8.12k|      }
  180|  3.14k|    }
  181|   619k|    return true;
  182|   619k|  }
_ZNK11flatbuffers16VerifierTemplateILb0EE11VerifyFieldIN6MyGame7Example4TestEEEbPKhtm:
  112|  1.68k|                   const size_t align) const {
  113|  1.68k|    const auto f = static_cast<size_t>(base - buf_) + elem_off;
  114|  1.68k|    return VerifyAlignment(f, align) && Verify(f, sizeof(T));
  ------------------
  |  Branch (114:12): [True: 1.67k, False: 15]
  |  Branch (114:41): [True: 1.63k, False: 37]
  ------------------
  115|  1.68k|  }
_ZNK11flatbuffers16VerifierTemplateILb0EE11VerifyFieldIdEEbPKhtm:
  112|  2.11k|                   const size_t align) const {
  113|  2.11k|    const auto f = static_cast<size_t>(base - buf_) + elem_off;
  114|  2.11k|    return VerifyAlignment(f, align) && Verify(f, sizeof(T));
  ------------------
  |  Branch (114:12): [True: 2.10k, False: 12]
  |  Branch (114:41): [True: 2.06k, False: 41]
  ------------------
  115|  2.11k|  }
_ZN11flatbuffers16VerifierTemplateILb0EE8EndTableEv:
  293|  1.19M|  bool EndTable() {
  294|  1.19M|    depth_--;
  295|  1.19M|    return true;
  296|  1.19M|  }
_ZN11flatbuffers16VerifierTemplateILb1EEC2EPKhmjjb:
   55|  6.37k|      : VerifierTemplate(buf, buf_len, [&] {
   56|  6.37k|          Options opts;
   57|  6.37k|          opts.max_depth = max_depth;
   58|  6.37k|          opts.max_tables = max_tables;
   59|  6.37k|          opts.check_alignment = check_alignment;
   60|  6.37k|          return opts;
   61|  6.37k|        }()) {}
_ZZN11flatbuffers16VerifierTemplateILb1EEC1EPKhmjjbENKUlvE_clEv:
   55|  6.37k|      : VerifierTemplate(buf, buf_len, [&] {
   56|  6.37k|          Options opts;
   57|  6.37k|          opts.max_depth = max_depth;
   58|  6.37k|          opts.max_tables = max_tables;
   59|  6.37k|          opts.check_alignment = check_alignment;
   60|  6.37k|          return opts;
   61|  6.37k|        }()) {}
_ZN11flatbuffers16VerifierTemplateILb1EEC2EPKhmRKNS1_7OptionsE:
   46|  15.6k|      : buf_(buf), size_(buf_len), opts_(opts) {
   47|  15.6k|    FLATBUFFERS_ASSERT(size_ < opts.max_size);
   48|  15.6k|  }
_ZN11flatbuffers16VerifierTemplateILb1EE12VerifyBufferIN6MyGame7Example7MonsterEEEbPKc:
  251|  15.6k|  bool VerifyBuffer(const char* const identifier) {
  252|  15.6k|    return VerifyBufferFromStart<T>(identifier, 0);
  253|  15.6k|  }
_ZN11flatbuffers16VerifierTemplateILb1EE21VerifyBufferFromStartIN6MyGame7Example7MonsterEEEbPKcm:
  203|  15.6k|  bool VerifyBufferFromStart(const char* const identifier, const size_t start) {
  204|       |    // Buffers have to be of some size to be valid. The reason it is a runtime
  205|       |    // check instead of static_assert, is that nested flatbuffers go through
  206|       |    // this call and their size is determined at runtime.
  207|  15.6k|    if (!Check(size_ >= FLATBUFFERS_MIN_BUFFER_SIZE)) return false;
  ------------------
  |  |  349|  15.6k|#define FLATBUFFERS_MIN_BUFFER_SIZE sizeof(::flatbuffers::uoffset_t) + \
  |  |  350|  15.6k|  sizeof(::flatbuffers::soffset_t) + sizeof(uint16_t) + sizeof(uint16_t)
  ------------------
  |  Branch (207:9): [True: 8, False: 15.6k]
  ------------------
  208|       |
  209|       |    // If an identifier is provided, check that we have a buffer
  210|  15.6k|    if (identifier && !Check((size_ >= 2 * sizeof(flatbuffers::uoffset_t) &&
  ------------------
  |  Branch (210:9): [True: 6.37k, False: 9.23k]
  |  Branch (210:23): [True: 35, False: 6.33k]
  |  Branch (210:31): [True: 6.37k, False: 0]
  ------------------
  211|  6.37k|                              BufferHasIdentifier(buf_ + start, identifier)))) {
  ------------------
  |  Branch (211:31): [True: 6.33k, False: 35]
  ------------------
  212|     35|      return false;
  213|     35|    }
  214|       |
  215|       |    // Call T::Verify, which must be in the generated code for this type.
  216|  15.5k|    const auto o = VerifyOffset<uoffset_t>(start);
  217|  15.5k|    if (!Check(o != 0)) return false;
  ------------------
  |  Branch (217:9): [True: 188, False: 15.3k]
  ------------------
  218|  15.3k|    if (!(reinterpret_cast<const T*>(buf_ + start + o)->Verify(*this))) {
  ------------------
  |  Branch (218:9): [True: 5.61k, False: 9.76k]
  ------------------
  219|  5.61k|      return false;
  220|  5.61k|    }
  221|  9.76k|    if (TrackVerifierBufferSize) {
  ------------------
  |  Branch (221:9): [True: 9.76k, Folded]
  ------------------
  222|  9.76k|      if (GetComputedSize() == 0) return false;
  ------------------
  |  Branch (222:11): [True: 585, False: 9.18k]
  ------------------
  223|  9.76k|    }
  224|  9.18k|    return true;
  225|  9.76k|  }
_ZNK11flatbuffers16VerifierTemplateILb1EE5CheckEb:
   64|  31.5M|  bool Check(const bool ok) const {
   65|       |    // clang-format off
   66|       |    #ifdef FLATBUFFERS_DEBUG_VERIFICATION_FAILURE
   67|       |      if (opts_.assert) { FLATBUFFERS_ASSERT(ok); }
   68|       |    #endif
   69|       |    // clang-format on
   70|  31.5M|    if (TrackVerifierBufferSize) {
  ------------------
  |  Branch (70:9): [True: 31.5M, Folded]
  ------------------
   71|  31.5M|      if (!ok) {
  ------------------
  |  Branch (71:11): [True: 5.72k, False: 31.5M]
  ------------------
   72|  5.72k|        upper_bound_ = 0;
   73|  5.72k|      }
   74|  31.5M|    }
   75|  31.5M|    return ok;
   76|  31.5M|  }
_ZNK11flatbuffers16VerifierTemplateILb1EE12VerifyOffsetIjiEEmm:
  265|  2.26M|  size_t VerifyOffset(const size_t start) const {
  266|  2.26M|    if (!Verify<OffsetT>(start)) return 0;
  ------------------
  |  Branch (266:9): [True: 313, False: 2.26M]
  ------------------
  267|  2.26M|    const auto o = ReadScalar<OffsetT>(buf_ + start);
  268|       |    // May not point to itself.
  269|  2.26M|    if (!Check(o != 0)) return 0;
  ------------------
  |  Branch (269:9): [True: 71, False: 2.26M]
  ------------------
  270|       |    // Can't wrap around larger than the max size.
  271|  2.26M|    if (!Check(static_cast<SOffsetT>(o) >= 0)) return 0;
  ------------------
  |  Branch (271:9): [True: 229, False: 2.26M]
  ------------------
  272|       |    // Must be inside the buffer to create a pointer from it (pointer outside
  273|       |    // buffer is UB).
  274|  2.26M|    if (!Verify(start + o, 1)) return 0;
  ------------------
  |  Branch (274:9): [True: 436, False: 2.26M]
  ------------------
  275|  2.26M|    return o;
  276|  2.26M|  }
_ZNK11flatbuffers16VerifierTemplateILb1EE6VerifyIjEEbm:
   95|  3.91M|  bool Verify(const size_t elem) const {
   96|  3.91M|    return VerifyAlignment(elem, sizeof(T)) && Verify(elem, sizeof(T));
  ------------------
  |  Branch (96:12): [True: 3.91M, False: 317]
  |  Branch (96:48): [True: 3.91M, False: 337]
  ------------------
   97|  3.91M|  }
_ZNK11flatbuffers16VerifierTemplateILb1EE15VerifyAlignmentEmm:
   89|  8.52M|  bool VerifyAlignment(const size_t elem, const size_t align) const {
   90|  8.52M|    return Check((elem & (align - 1)) == 0 || !opts_.check_alignment);
  ------------------
  |  Branch (90:18): [True: 8.51M, False: 652]
  |  Branch (90:47): [True: 0, False: 652]
  ------------------
   91|  8.52M|  }
_ZNK11flatbuffers16VerifierTemplateILb1EE6VerifyEmm:
   79|  13.0M|  bool Verify(const size_t elem, const size_t elem_len) const {
   80|  13.0M|    if (TrackVerifierBufferSize) {
  ------------------
  |  Branch (80:9): [True: 13.0M, Folded]
  ------------------
   81|  13.0M|      auto upper_bound = elem + elem_len;
   82|  13.0M|      if (upper_bound_ < upper_bound) {
  ------------------
  |  Branch (82:11): [True: 104k, False: 12.9M]
  ------------------
   83|   104k|        upper_bound_ = upper_bound;
   84|   104k|      }
   85|  13.0M|    }
   86|  13.0M|    return Check(elem_len < size_ && elem <= size_ - elem_len);
  ------------------
  |  Branch (86:18): [True: 13.0M, False: 1.25k]
  |  Branch (86:38): [True: 13.0M, False: 2.24k]
  ------------------
   87|  13.0M|  }
_ZN11flatbuffers16VerifierTemplateILb1EE16VerifyTableStartEPKh:
  185|  1.20M|  bool VerifyTableStart(const uint8_t* const table) {
  186|       |    // Check the vtable offset.
  187|  1.20M|    const auto tableo = static_cast<size_t>(table - buf_);
  188|  1.20M|    if (!Verify<soffset_t>(tableo)) return false;
  ------------------
  |  Branch (188:9): [True: 329, False: 1.20M]
  ------------------
  189|       |    // This offset may be signed, but doing the subtraction unsigned always
  190|       |    // gives the result we want.
  191|  1.20M|    const auto vtableo =
  192|  1.20M|        tableo - static_cast<size_t>(ReadScalar<soffset_t>(table));
  193|       |    // Check the vtable size field, then check vtable fits in its entirety.
  194|  1.20M|    if (!(VerifyComplexity() && Verify<voffset_t>(vtableo) &&
  ------------------
  |  Branch (194:11): [True: 1.20M, False: 2]
  |  Branch (194:33): [True: 1.20M, False: 185]
  ------------------
  195|  1.20M|          VerifyAlignment(ReadScalar<voffset_t>(buf_ + vtableo),
  ------------------
  |  Branch (195:11): [True: 1.20M, False: 4]
  ------------------
  196|  1.20M|                          sizeof(voffset_t))))
  197|    191|      return false;
  198|  1.20M|    const auto vsize = ReadScalar<voffset_t>(buf_ + vtableo);
  199|  1.20M|    return Check((vsize & 1) == 0) && Verify(vtableo, vsize);
  ------------------
  |  Branch (199:12): [True: 1.20M, False: 0]
  |  Branch (199:39): [True: 1.20M, False: 50]
  ------------------
  200|  1.20M|  }
_ZNK11flatbuffers16VerifierTemplateILb1EE6VerifyIiEEbm:
   95|  1.20M|  bool Verify(const size_t elem) const {
   96|  1.20M|    return VerifyAlignment(elem, sizeof(T)) && Verify(elem, sizeof(T));
  ------------------
  |  Branch (96:12): [True: 1.20M, False: 81]
  |  Branch (96:48): [True: 1.20M, False: 248]
  ------------------
   97|  1.20M|  }
_ZN11flatbuffers16VerifierTemplateILb1EE16VerifyComplexityEv:
  286|  1.20M|  bool VerifyComplexity() {
  287|  1.20M|    depth_++;
  288|  1.20M|    num_tables_++;
  289|  1.20M|    return Check(depth_ <= opts_.max_depth && num_tables_ <= opts_.max_tables);
  ------------------
  |  Branch (289:18): [True: 1.20M, False: 1]
  |  Branch (289:47): [True: 1.20M, False: 1]
  ------------------
  290|  1.20M|  }
_ZNK11flatbuffers16VerifierTemplateILb1EE6VerifyItEEbm:
   95|  1.20M|  bool Verify(const size_t elem) const {
   96|  1.20M|    return VerifyAlignment(elem, sizeof(T)) && Verify(elem, sizeof(T));
  ------------------
  |  Branch (96:12): [True: 1.20M, False: 25]
  |  Branch (96:48): [True: 1.20M, False: 160]
  ------------------
   97|  1.20M|  }
_ZNK11flatbuffers16VerifierTemplateILb1EE11VerifyFieldIN6MyGame7Example4Vec3EEEbPKhtm:
  112|  5.59k|                   const size_t align) const {
  113|  5.59k|    const auto f = static_cast<size_t>(base - buf_) + elem_off;
  114|  5.59k|    return VerifyAlignment(f, align) && Verify(f, sizeof(T));
  ------------------
  |  Branch (114:12): [True: 5.58k, False: 13]
  |  Branch (114:41): [True: 5.52k, False: 54]
  ------------------
  115|  5.59k|  }
_ZNK11flatbuffers16VerifierTemplateILb1EE11VerifyFieldIsEEbPKhtm:
  112|   168k|                   const size_t align) const {
  113|   168k|    const auto f = static_cast<size_t>(base - buf_) + elem_off;
  114|   168k|    return VerifyAlignment(f, align) && Verify(f, sizeof(T));
  ------------------
  |  Branch (114:12): [True: 168k, False: 11]
  |  Branch (114:41): [True: 168k, False: 62]
  ------------------
  115|   168k|  }
_ZNK11flatbuffers16VerifierTemplateILb1EE12VerifyOffsetIjEEmPKht:
  279|  2.24M|  size_t VerifyOffset(const uint8_t* const base, const voffset_t start) const {
  280|  2.24M|    return VerifyOffset<OffsetT>(static_cast<size_t>(base - buf_) + start);
  281|  2.24M|  }
_ZNK11flatbuffers16VerifierTemplateILb1EE12VerifyStringEPKNS_6StringE:
  137|   683k|  bool VerifyString(const String* const str) const {
  138|   683k|    size_t end;
  139|   683k|    return !str || (VerifyVectorOrString<uoffset_t>(
  ------------------
  |  Branch (139:12): [True: 23.5k, False: 660k]
  |  Branch (139:21): [True: 659k, False: 426]
  ------------------
  140|   660k|                        reinterpret_cast<const uint8_t*>(str), 1, &end) &&
  141|   659k|                    Verify(end, 1) &&           // Must have terminator
  ------------------
  |  Branch (141:21): [True: 659k, False: 31]
  ------------------
  142|   659k|                    Check(buf_[end] == '\0'));  // Terminating byte must be 0.
  ------------------
  |  Branch (142:21): [True: 659k, False: 55]
  ------------------
  143|   683k|  }
_ZNK11flatbuffers16VerifierTemplateILb1EE20VerifyVectorOrStringIjEEbPKhmPm:
  148|  1.65M|                            size_t* const end = nullptr) const {
  149|  1.65M|    const auto vec_offset = static_cast<size_t>(vec - buf_);
  150|       |    // Check we can read the size field.
  151|  1.65M|    if (!Verify<LenT>(vec_offset)) return false;
  ------------------
  |  Branch (151:9): [True: 341, False: 1.65M]
  ------------------
  152|       |    // Check the whole array. If this is a string, the byte past the array must
  153|       |    // be 0.
  154|  1.65M|    const LenT size = ReadScalar<LenT>(vec);
  155|  1.65M|    const auto max_elems = opts_.max_size / elem_size;
  156|  1.65M|    if (!Check(size < max_elems))
  ------------------
  |  Branch (156:9): [True: 143, False: 1.65M]
  ------------------
  157|    143|      return false;  // Protect against byte_size overflowing.
  158|  1.65M|    const auto byte_size = sizeof(LenT) + elem_size * size;
  159|  1.65M|    if (end) *end = vec_offset + byte_size;
  ------------------
  |  Branch (159:9): [True: 660k, False: 990k]
  ------------------
  160|  1.65M|    return Verify(vec_offset, byte_size);
  161|  1.65M|  }
_ZNK11flatbuffers16VerifierTemplateILb1EE12VerifyVectorITpTnRiJEhjEEbPKNS_6VectorIT0_T1_EE:
  125|  3.11M|  bool VerifyVector(const Vector<T, LenT>* const vec) const {
  126|  3.11M|    return !vec || VerifyVectorOrString<LenT>(
  ------------------
  |  Branch (126:12): [True: 2.48M, False: 626k]
  |  Branch (126:20): [True: 626k, False: 154]
  ------------------
  127|   626k|                       reinterpret_cast<const uint8_t*>(vec), sizeof(T));
  128|  3.11M|  }
_ZNK11flatbuffers16VerifierTemplateILb1EE11VerifyFieldIhEEbPKhtm:
  112|   666k|                   const size_t align) const {
  113|   666k|    const auto f = static_cast<size_t>(base - buf_) + elem_off;
  114|   666k|    return VerifyAlignment(f, align) && Verify(f, sizeof(T));
  ------------------
  |  Branch (114:12): [True: 666k, False: 0]
  |  Branch (114:41): [True: 666k, False: 231]
  ------------------
  115|   666k|  }
_ZN11flatbuffers16VerifierTemplateILb1EE11VerifyTableIN6MyGame7Example23TestSimpleTableWithEnumEEEbPKT_:
  119|   461k|  bool VerifyTable(const T* const table) {
  120|   461k|    return !table || table->Verify(*this);
  ------------------
  |  Branch (120:12): [True: 4.55k, False: 456k]
  |  Branch (120:22): [True: 456k, False: 82]
  ------------------
  121|   461k|  }
_ZN11flatbuffers16VerifierTemplateILb1EE11VerifyTableIN6MyGame8Example27MonsterEEEbPKT_:
  119|  15.5k|  bool VerifyTable(const T* const table) {
  120|  15.5k|    return !table || table->Verify(*this);
  ------------------
  |  Branch (120:12): [True: 901, False: 14.6k]
  |  Branch (120:22): [True: 14.6k, False: 4]
  ------------------
  121|  15.5k|  }
_ZNK11flatbuffers16VerifierTemplateILb1EE12VerifyVectorITpTnRiJEN6MyGame7Example4TestEjEEbPKNS_6VectorIPKT0_T1_EE:
  132|  1.24M|  bool VerifyVector(const Vector<const T*, LenT>* const vec) const {
  133|  1.24M|    return VerifyVector(reinterpret_cast<const Vector<T, LenT>*>(vec));
  134|  1.24M|  }
_ZNK11flatbuffers16VerifierTemplateILb1EE12VerifyVectorITpTnRiJEN6MyGame7Example4TestEjEEbPKNS_6VectorIT0_T1_EE:
  125|  1.24M|  bool VerifyVector(const Vector<T, LenT>* const vec) const {
  126|  1.24M|    return !vec || VerifyVectorOrString<LenT>(
  ------------------
  |  Branch (126:12): [True: 1.10M, False: 142k]
  |  Branch (126:20): [True: 142k, False: 152]
  ------------------
  127|   142k|                       reinterpret_cast<const uint8_t*>(vec), sizeof(T));
  128|  1.24M|  }
_ZNK11flatbuffers16VerifierTemplateILb1EE12VerifyVectorITpTnRiJENS_6OffsetINS_6StringEEEjEEbPKNS_6VectorIT0_T1_EE:
  125|  1.24M|  bool VerifyVector(const Vector<T, LenT>* const vec) const {
  126|  1.24M|    return !vec || VerifyVectorOrString<LenT>(
  ------------------
  |  Branch (126:12): [True: 1.23M, False: 14.6k]
  |  Branch (126:20): [True: 14.4k, False: 145]
  ------------------
  127|  14.6k|                       reinterpret_cast<const uint8_t*>(vec), sizeof(T));
  128|  1.24M|  }
_ZNK11flatbuffers16VerifierTemplateILb1EE21VerifyVectorOfStringsEPKNS_6VectorINS_6OffsetINS_6StringEEEjEE:
  164|  1.24M|  bool VerifyVectorOfStrings(const Vector<Offset<String>>* const vec) const {
  165|  1.24M|    if (vec) {
  ------------------
  |  Branch (165:9): [True: 14.4k, False: 1.23M]
  ------------------
  166|  41.0k|      for (uoffset_t i = 0; i < vec->size(); i++) {
  ------------------
  |  Branch (166:29): [True: 26.7k, False: 14.2k]
  ------------------
  167|  26.7k|        if (!VerifyString(vec->Get(i))) return false;
  ------------------
  |  Branch (167:13): [True: 194, False: 26.5k]
  ------------------
  168|  26.7k|      }
  169|  14.4k|    }
  170|  1.24M|    return true;
  171|  1.24M|  }
_ZNK11flatbuffers16VerifierTemplateILb1EE12VerifyVectorITpTnRiJENS_6OffsetIN6MyGame7Example7MonsterEEEjEEbPKNS_6VectorIT0_T1_EE:
  125|   624k|  bool VerifyVector(const Vector<T, LenT>* const vec) const {
  126|   624k|    return !vec || VerifyVectorOrString<LenT>(
  ------------------
  |  Branch (126:12): [True: 494k, False: 129k]
  |  Branch (126:20): [True: 129k, False: 124]
  ------------------
  127|   129k|                       reinterpret_cast<const uint8_t*>(vec), sizeof(T));
  128|   624k|  }
_ZN11flatbuffers16VerifierTemplateILb1EE20VerifyVectorOfTablesIN6MyGame7Example7MonsterEEEbPKNS_6VectorINS_6OffsetIT_EEjEE:
  175|   624k|  bool VerifyVectorOfTables(const Vector<Offset<T>>* const vec) {
  176|   624k|    if (vec) {
  ------------------
  |  Branch (176:9): [True: 129k, False: 494k]
  ------------------
  177|   628k|      for (uoffset_t i = 0; i < vec->size(); i++) {
  ------------------
  |  Branch (177:29): [True: 500k, False: 128k]
  ------------------
  178|   500k|        if (!vec->Get(i)->Verify(*this)) return false;
  ------------------
  |  Branch (178:13): [True: 1.49k, False: 498k]
  ------------------
  179|   500k|      }
  180|   129k|    }
  181|   622k|    return true;
  182|   624k|  }
_ZN11flatbuffers16VerifierTemplateILb1EE11VerifyTableIN6MyGame7Example7MonsterEEEbPKT_:
  119|   628k|  bool VerifyTable(const T* const table) {
  120|   628k|    return !table || table->Verify(*this);
  ------------------
  |  Branch (120:12): [True: 517k, False: 110k]
  |  Branch (120:22): [True: 110k, False: 560]
  ------------------
  121|   628k|  }
_ZN11flatbuffers16VerifierTemplateILb1EE22VerifyNestedFlatBufferIN6MyGame7Example7MonsterETpTnRiJEjEEbPKNS_6VectorIhT1_EEPKc:
  229|  1.24M|                              const char* const identifier) {
  230|       |    // Caller opted out of this.
  231|  1.24M|    if (!opts_.check_nested_flatbuffers) return true;
  ------------------
  |  Branch (231:9): [True: 0, False: 1.24M]
  ------------------
  232|       |
  233|       |    // An empty buffer is OK as it indicates not present.
  234|  1.24M|    if (!buf) return true;
  ------------------
  |  Branch (234:9): [True: 1.23M, False: 9.26k]
  ------------------
  235|       |
  236|       |    // If there is a nested buffer, it must be greater than the min size.
  237|  9.26k|    if (!Check(buf->size() >= FLATBUFFERS_MIN_BUFFER_SIZE)) return false;
  ------------------
  |  |  349|  9.26k|#define FLATBUFFERS_MIN_BUFFER_SIZE sizeof(::flatbuffers::uoffset_t) + \
  |  |  350|  9.26k|  sizeof(::flatbuffers::soffset_t) + sizeof(uint16_t) + sizeof(uint16_t)
  ------------------
  |  Branch (237:9): [True: 33, False: 9.23k]
  ------------------
  238|       |
  239|  9.23k|    VerifierTemplate<TrackVerifierBufferSize> nested_verifier(
  240|  9.23k|        buf->data(), buf->size(), opts_);
  241|  9.23k|    return nested_verifier.VerifyBuffer<T>(identifier);
  242|  9.26k|  }
_ZN11flatbuffers16VerifierTemplateILb1EE11VerifyTableIN6MyGame7Example4StatEEEbPKT_:
  119|   622k|  bool VerifyTable(const T* const table) {
  120|   622k|    return !table || table->Verify(*this);
  ------------------
  |  Branch (120:12): [True: 598k, False: 23.5k]
  |  Branch (120:22): [True: 23.2k, False: 352]
  ------------------
  121|   622k|  }
_ZNK11flatbuffers16VerifierTemplateILb1EE11VerifyFieldItEEbPKhtm:
  112|  7.40k|                   const size_t align) const {
  113|  7.40k|    const auto f = static_cast<size_t>(base - buf_) + elem_off;
  114|  7.40k|    return VerifyAlignment(f, align) && Verify(f, sizeof(T));
  ------------------
  |  Branch (114:12): [True: 7.38k, False: 11]
  |  Branch (114:41): [True: 7.35k, False: 33]
  ------------------
  115|  7.40k|  }
_ZNK11flatbuffers16VerifierTemplateILb1EE11VerifyFieldIiEEbPKhtm:
  112|  7.89k|                   const size_t align) const {
  113|  7.89k|    const auto f = static_cast<size_t>(base - buf_) + elem_off;
  114|  7.89k|    return VerifyAlignment(f, align) && Verify(f, sizeof(T));
  ------------------
  |  Branch (114:12): [True: 7.88k, False: 9]
  |  Branch (114:41): [True: 7.85k, False: 32]
  ------------------
  115|  7.89k|  }
_ZNK11flatbuffers16VerifierTemplateILb1EE11VerifyFieldIjEEbPKhtm:
  112|  43.9k|                   const size_t align) const {
  113|  43.9k|    const auto f = static_cast<size_t>(base - buf_) + elem_off;
  114|  43.9k|    return VerifyAlignment(f, align) && Verify(f, sizeof(T));
  ------------------
  |  Branch (114:12): [True: 43.9k, False: 15]
  |  Branch (114:41): [True: 43.9k, False: 39]
  ------------------
  115|  43.9k|  }
_ZNK11flatbuffers16VerifierTemplateILb1EE11VerifyFieldIlEEbPKhtm:
  112|  13.1k|                   const size_t align) const {
  113|  13.1k|    const auto f = static_cast<size_t>(base - buf_) + elem_off;
  114|  13.1k|    return VerifyAlignment(f, align) && Verify(f, sizeof(T));
  ------------------
  |  Branch (114:12): [True: 13.0k, False: 28]
  |  Branch (114:41): [True: 13.0k, False: 78]
  ------------------
  115|  13.1k|  }
_ZNK11flatbuffers16VerifierTemplateILb1EE11VerifyFieldImEEbPKhtm:
  112|  51.2k|                   const size_t align) const {
  113|  51.2k|    const auto f = static_cast<size_t>(base - buf_) + elem_off;
  114|  51.2k|    return VerifyAlignment(f, align) && Verify(f, sizeof(T));
  ------------------
  |  Branch (114:12): [True: 51.1k, False: 77]
  |  Branch (114:41): [True: 51.0k, False: 78]
  ------------------
  115|  51.2k|  }
_ZNK11flatbuffers16VerifierTemplateILb1EE11VerifyFieldIfEEbPKhtm:
  112|  26.2k|                   const size_t align) const {
  113|  26.2k|    const auto f = static_cast<size_t>(base - buf_) + elem_off;
  114|  26.2k|    return VerifyAlignment(f, align) && Verify(f, sizeof(T));
  ------------------
  |  Branch (114:12): [True: 26.1k, False: 34]
  |  Branch (114:41): [True: 26.1k, False: 59]
  ------------------
  115|  26.2k|  }
_ZNK11flatbuffers16VerifierTemplateILb1EE12VerifyVectorITpTnRiJEN6MyGame7Example7AbilityEjEEbPKNS_6VectorIPKT0_T1_EE:
  132|   621k|  bool VerifyVector(const Vector<const T*, LenT>* const vec) const {
  133|   621k|    return VerifyVector(reinterpret_cast<const Vector<T, LenT>*>(vec));
  134|   621k|  }
_ZNK11flatbuffers16VerifierTemplateILb1EE12VerifyVectorITpTnRiJEN6MyGame7Example7AbilityEjEEbPKNS_6VectorIT0_T1_EE:
  125|   621k|  bool VerifyVector(const Vector<T, LenT>* const vec) const {
  126|   621k|    return !vec || VerifyVectorOrString<LenT>(
  ------------------
  |  Branch (126:12): [True: 613k, False: 7.69k]
  |  Branch (126:20): [True: 7.56k, False: 135]
  ------------------
  127|  7.69k|                       reinterpret_cast<const uint8_t*>(vec), sizeof(T));
  128|   621k|  }
_ZN11flatbuffers16VerifierTemplateILb1EE19GetFlexReuseTrackerEv:
  321|  2.19k|  std::vector<uint8_t>* GetFlexReuseTracker() { return flex_reuse_tracker_; }
_ZNK11flatbuffers16VerifierTemplateILb1EE12VerifyVectorITpTnRiJEljEEbPKNS_6VectorIT0_T1_EE:
  125|   620k|  bool VerifyVector(const Vector<T, LenT>* const vec) const {
  126|   620k|    return !vec || VerifyVectorOrString<LenT>(
  ------------------
  |  Branch (126:12): [True: 614k, False: 5.82k]
  |  Branch (126:20): [True: 5.69k, False: 130]
  ------------------
  127|  5.82k|                       reinterpret_cast<const uint8_t*>(vec), sizeof(T));
  128|   620k|  }
_ZNK11flatbuffers16VerifierTemplateILb1EE12VerifyVectorITpTnRiJEdjEEbPKNS_6VectorIT0_T1_EE:
  125|   620k|  bool VerifyVector(const Vector<T, LenT>* const vec) const {
  126|   620k|    return !vec || VerifyVectorOrString<LenT>(
  ------------------
  |  Branch (126:12): [True: 608k, False: 11.4k]
  |  Branch (126:20): [True: 11.3k, False: 136]
  ------------------
  127|  11.4k|                       reinterpret_cast<const uint8_t*>(vec), sizeof(T));
  128|   620k|  }
_ZN11flatbuffers16VerifierTemplateILb1EE11VerifyTableIN6MyGame17InParentNamespaceEEEbPKT_:
  119|   620k|  bool VerifyTable(const T* const table) {
  120|   620k|    return !table || table->Verify(*this);
  ------------------
  |  Branch (120:12): [True: 613k, False: 7.05k]
  |  Branch (120:22): [True: 7.05k, False: 7]
  ------------------
  121|   620k|  }
_ZNK11flatbuffers16VerifierTemplateILb1EE12VerifyVectorITpTnRiJENS_6OffsetIN6MyGame7Example10ReferrableEEEjEEbPKNS_6VectorIT0_T1_EE:
  125|  1.24M|  bool VerifyVector(const Vector<T, LenT>* const vec) const {
  126|  1.24M|    return !vec || VerifyVectorOrString<LenT>(
  ------------------
  |  Branch (126:12): [True: 1.21M, False: 23.2k]
  |  Branch (126:20): [True: 23.1k, False: 134]
  ------------------
  127|  23.2k|                       reinterpret_cast<const uint8_t*>(vec), sizeof(T));
  128|  1.24M|  }
_ZN11flatbuffers16VerifierTemplateILb1EE20VerifyVectorOfTablesIN6MyGame7Example10ReferrableEEEbPKNS_6VectorINS_6OffsetIT_EEjEE:
  175|  1.24M|  bool VerifyVectorOfTables(const Vector<Offset<T>>* const vec) {
  176|  1.24M|    if (vec) {
  ------------------
  |  Branch (176:9): [True: 23.1k, False: 1.21M]
  ------------------
  177|  90.5k|      for (uoffset_t i = 0; i < vec->size(); i++) {
  ------------------
  |  Branch (177:29): [True: 67.4k, False: 23.0k]
  ------------------
  178|  67.4k|        if (!vec->Get(i)->Verify(*this)) return false;
  ------------------
  |  Branch (178:13): [True: 87, False: 67.3k]
  ------------------
  179|  67.4k|      }
  180|  23.1k|    }
  181|  1.24M|    return true;
  182|  1.24M|  }
_ZNK11flatbuffers16VerifierTemplateILb1EE12VerifyVectorITpTnRiJEmjEEbPKNS_6VectorIT0_T1_EE:
  125|  1.85M|  bool VerifyVector(const Vector<T, LenT>* const vec) const {
  126|  1.85M|    return !vec || VerifyVectorOrString<LenT>(
  ------------------
  |  Branch (126:12): [True: 1.83M, False: 20.8k]
  |  Branch (126:20): [True: 20.7k, False: 160]
  ------------------
  127|  20.8k|                       reinterpret_cast<const uint8_t*>(vec), sizeof(T));
  128|  1.85M|  }
_ZNK11flatbuffers16VerifierTemplateILb1EE12VerifyVectorITpTnRiJEN6MyGame7Example5ColorEjEEbPKNS_6VectorIT0_T1_EE:
  125|   619k|  bool VerifyVector(const Vector<T, LenT>* const vec) const {
  126|   619k|    return !vec || VerifyVectorOrString<LenT>(
  ------------------
  |  Branch (126:12): [True: 615k, False: 4.01k]
  |  Branch (126:20): [True: 3.88k, False: 133]
  ------------------
  127|  4.01k|                       reinterpret_cast<const uint8_t*>(vec), sizeof(T));
  128|   619k|  }
_ZNK11flatbuffers16VerifierTemplateILb1EE11VerifyFieldIaEEbPKhtm:
  112|  2.45k|                   const size_t align) const {
  113|  2.45k|    const auto f = static_cast<size_t>(base - buf_) + elem_off;
  114|  2.45k|    return VerifyAlignment(f, align) && Verify(f, sizeof(T));
  ------------------
  |  Branch (114:12): [True: 2.45k, False: 0]
  |  Branch (114:41): [True: 2.41k, False: 39]
  ------------------
  115|  2.45k|  }
_ZNK11flatbuffers16VerifierTemplateILb1EE12VerifyVectorITpTnRiJENS_6OffsetIN6MyGame7Example4StatEEEjEEbPKNS_6VectorIT0_T1_EE:
  125|   619k|  bool VerifyVector(const Vector<T, LenT>* const vec) const {
  126|   619k|    return !vec || VerifyVectorOrString<LenT>(
  ------------------
  |  Branch (126:12): [True: 615k, False: 3.25k]
  |  Branch (126:20): [True: 3.14k, False: 106]
  ------------------
  127|  3.25k|                       reinterpret_cast<const uint8_t*>(vec), sizeof(T));
  128|   619k|  }
_ZN11flatbuffers16VerifierTemplateILb1EE20VerifyVectorOfTablesIN6MyGame7Example4StatEEEbPKNS_6VectorINS_6OffsetIT_EEjEE:
  175|   619k|  bool VerifyVectorOfTables(const Vector<Offset<T>>* const vec) {
  176|   619k|    if (vec) {
  ------------------
  |  Branch (176:9): [True: 3.14k, False: 615k]
  ------------------
  177|  11.1k|      for (uoffset_t i = 0; i < vec->size(); i++) {
  ------------------
  |  Branch (177:29): [True: 8.12k, False: 3.00k]
  ------------------
  178|  8.12k|        if (!vec->Get(i)->Verify(*this)) return false;
  ------------------
  |  Branch (178:13): [True: 142, False: 7.98k]
  ------------------
  179|  8.12k|      }
  180|  3.14k|    }
  181|   618k|    return true;
  182|   619k|  }
_ZNK11flatbuffers16VerifierTemplateILb1EE11VerifyFieldIN6MyGame7Example4TestEEEbPKhtm:
  112|  1.68k|                   const size_t align) const {
  113|  1.68k|    const auto f = static_cast<size_t>(base - buf_) + elem_off;
  114|  1.68k|    return VerifyAlignment(f, align) && Verify(f, sizeof(T));
  ------------------
  |  Branch (114:12): [True: 1.67k, False: 15]
  |  Branch (114:41): [True: 1.63k, False: 37]
  ------------------
  115|  1.68k|  }
_ZNK11flatbuffers16VerifierTemplateILb1EE11VerifyFieldIdEEbPKhtm:
  112|  2.11k|                   const size_t align) const {
  113|  2.11k|    const auto f = static_cast<size_t>(base - buf_) + elem_off;
  114|  2.11k|    return VerifyAlignment(f, align) && Verify(f, sizeof(T));
  ------------------
  |  Branch (114:12): [True: 2.10k, False: 12]
  |  Branch (114:41): [True: 2.06k, False: 41]
  ------------------
  115|  2.11k|  }
_ZN11flatbuffers16VerifierTemplateILb1EE8EndTableEv:
  293|  1.19M|  bool EndTable() {
  294|  1.19M|    depth_--;
  295|  1.19M|    return true;
  296|  1.19M|  }
_ZNK11flatbuffers16VerifierTemplateILb1EE15GetComputedSizeEv:
  307|  9.76k|  size_t GetComputedSize() const {
  308|  9.76k|    if (TrackVerifierBufferSize) {
  ------------------
  |  Branch (308:9): [True: 9.76k, Folded]
  ------------------
  309|  9.76k|      uintptr_t size = upper_bound_;
  310|       |      // Align the size to uoffset_t
  311|  9.76k|      size = (size - 1 + sizeof(uoffset_t)) & ~(sizeof(uoffset_t) - 1);
  312|  9.76k|      return (size > size_) ? 0 : size;
  ------------------
  |  Branch (312:14): [True: 585, False: 9.18k]
  ------------------
  313|  9.76k|    }
  314|       |    // Must use SizeVerifier, or (deprecated) turn on
  315|       |    // FLATBUFFERS_TRACK_VERIFIER_BUFFER_SIZE, for this to work.
  316|      0|    (void)upper_bound_;
  317|      0|    FLATBUFFERS_ASSERT(false);
  318|      0|    return 0;
  319|      0|  }

_ZN6MyGame7Example19VerifyMonsterBufferILb0EEEbRN11flatbuffers16VerifierTemplateIXT_EEE:
 4318|  6.37k|    ::flatbuffers::VerifierTemplate<B> &verifier) {
 4319|  6.37k|  return verifier.template VerifyBuffer<MyGame::Example::Monster>(MonsterIdentifier());
 4320|  6.37k|}
_ZNK6MyGame7Example7Monster6VerifyILb0EEEbRN11flatbuffers16VerifierTemplateIXT_EEE:
 1930|   627k|  bool Verify(::flatbuffers::VerifierTemplate<B> &verifier) const {
 1931|   627k|    return VerifyTableStart(verifier) &&
  ------------------
  |  Branch (1931:12): [True: 626k, False: 459]
  ------------------
 1932|   626k|           VerifyField<MyGame::Example::Vec3>(verifier, VT_POS, 8) &&
  ------------------
  |  Branch (1932:12): [True: 626k, False: 67]
  ------------------
 1933|   626k|           VerifyField<int16_t>(verifier, VT_MANA, 2) &&
  ------------------
  |  Branch (1933:12): [True: 626k, False: 35]
  ------------------
 1934|   626k|           VerifyField<int16_t>(verifier, VT_HP, 2) &&
  ------------------
  |  Branch (1934:12): [True: 626k, False: 38]
  ------------------
 1935|   626k|           VerifyOffsetRequired(verifier, VT_NAME) &&
  ------------------
  |  Branch (1935:12): [True: 626k, False: 260]
  ------------------
 1936|   626k|           verifier.VerifyString(name()) &&
  ------------------
  |  Branch (1936:12): [True: 626k, False: 163]
  ------------------
 1937|   626k|           VerifyOffset(verifier, VT_INVENTORY) &&
  ------------------
  |  Branch (1937:12): [True: 625k, False: 105]
  ------------------
 1938|   625k|           verifier.VerifyVector(inventory()) &&
  ------------------
  |  Branch (1938:12): [True: 625k, False: 107]
  ------------------
 1939|   625k|           VerifyField<uint8_t>(verifier, VT_COLOR, 1) &&
  ------------------
  |  Branch (1939:12): [True: 625k, False: 33]
  ------------------
 1940|   625k|           VerifyField<uint8_t>(verifier, VT_TEST_TYPE, 1) &&
  ------------------
  |  Branch (1940:12): [True: 625k, False: 29]
  ------------------
 1941|   625k|           VerifyOffset(verifier, VT_TEST) &&
  ------------------
  |  Branch (1941:12): [True: 625k, False: 11]
  ------------------
 1942|   625k|           VerifyAny(verifier, test(), test_type()) &&
  ------------------
  |  Branch (1942:12): [True: 625k, False: 273]
  ------------------
 1943|   625k|           VerifyOffset(verifier, VT_TEST4) &&
  ------------------
  |  Branch (1943:12): [True: 625k, False: 8]
  ------------------
 1944|   625k|           verifier.VerifyVector(test4()) &&
  ------------------
  |  Branch (1944:12): [True: 625k, False: 128]
  ------------------
 1945|   625k|           VerifyOffset(verifier, VT_TESTARRAYOFSTRING) &&
  ------------------
  |  Branch (1945:12): [True: 625k, False: 21]
  ------------------
 1946|   625k|           verifier.VerifyVector(testarrayofstring()) &&
  ------------------
  |  Branch (1946:12): [True: 625k, False: 129]
  ------------------
 1947|   625k|           verifier.VerifyVectorOfStrings(testarrayofstring()) &&
  ------------------
  |  Branch (1947:12): [True: 625k, False: 181]
  ------------------
 1948|   625k|           VerifyOffset(verifier, VT_TESTARRAYOFTABLES) &&
  ------------------
  |  Branch (1948:12): [True: 625k, False: 14]
  ------------------
 1949|   625k|           verifier.VerifyVector(testarrayoftables()) &&
  ------------------
  |  Branch (1949:12): [True: 624k, False: 124]
  ------------------
 1950|   624k|           verifier.VerifyVectorOfTables(testarrayoftables()) &&
  ------------------
  |  Branch (1950:12): [True: 623k, False: 1.49k]
  ------------------
 1951|   623k|           VerifyOffset(verifier, VT_ENEMY) &&
  ------------------
  |  Branch (1951:12): [True: 623k, False: 88]
  ------------------
 1952|   623k|           verifier.VerifyTable(enemy()) &&
  ------------------
  |  Branch (1952:12): [True: 623k, False: 119]
  ------------------
 1953|   623k|           VerifyOffset(verifier, VT_TESTNESTEDFLATBUFFER) &&
  ------------------
  |  Branch (1953:12): [True: 623k, False: 25]
  ------------------
 1954|   623k|           verifier.VerifyVector(testnestedflatbuffer()) &&
  ------------------
  |  Branch (1954:12): [True: 623k, False: 9]
  ------------------
 1955|   623k|           verifier.template VerifyNestedFlatBuffer<MyGame::Example::Monster>(testnestedflatbuffer(), nullptr) &&
  ------------------
  |  Branch (1955:12): [True: 623k, False: 136]
  ------------------
 1956|   623k|           VerifyOffset(verifier, VT_TESTEMPTY) &&
  ------------------
  |  Branch (1956:12): [True: 623k, False: 5]
  ------------------
 1957|   623k|           verifier.VerifyTable(testempty()) &&
  ------------------
  |  Branch (1957:12): [True: 622k, False: 352]
  ------------------
 1958|   622k|           VerifyField<uint8_t>(verifier, VT_TESTBOOL, 1) &&
  ------------------
  |  Branch (1958:12): [True: 622k, False: 24]
  ------------------
 1959|   622k|           VerifyField<int32_t>(verifier, VT_TESTHASHS32_FNV1, 4) &&
  ------------------
  |  Branch (1959:12): [True: 622k, False: 29]
  ------------------
 1960|   622k|           VerifyField<uint32_t>(verifier, VT_TESTHASHU32_FNV1, 4) &&
  ------------------
  |  Branch (1960:12): [True: 622k, False: 40]
  ------------------
 1961|   622k|           VerifyField<int64_t>(verifier, VT_TESTHASHS64_FNV1, 8) &&
  ------------------
  |  Branch (1961:12): [True: 622k, False: 41]
  ------------------
 1962|   622k|           VerifyField<uint64_t>(verifier, VT_TESTHASHU64_FNV1, 8) &&
  ------------------
  |  Branch (1962:12): [True: 622k, False: 34]
  ------------------
 1963|   622k|           VerifyField<int32_t>(verifier, VT_TESTHASHS32_FNV1A, 4) &&
  ------------------
  |  Branch (1963:12): [True: 622k, False: 12]
  ------------------
 1964|   622k|           VerifyField<uint32_t>(verifier, VT_TESTHASHU32_FNV1A, 4) &&
  ------------------
  |  Branch (1964:12): [True: 622k, False: 14]
  ------------------
 1965|   622k|           VerifyField<int64_t>(verifier, VT_TESTHASHS64_FNV1A, 8) &&
  ------------------
  |  Branch (1965:12): [True: 622k, False: 18]
  ------------------
 1966|   622k|           VerifyField<uint64_t>(verifier, VT_TESTHASHU64_FNV1A, 8) &&
  ------------------
  |  Branch (1966:12): [True: 622k, False: 18]
  ------------------
 1967|   622k|           VerifyOffset(verifier, VT_TESTARRAYOFBOOLS) &&
  ------------------
  |  Branch (1967:12): [True: 622k, False: 6]
  ------------------
 1968|   622k|           verifier.VerifyVector(testarrayofbools()) &&
  ------------------
  |  Branch (1968:12): [True: 622k, False: 12]
  ------------------
 1969|   622k|           VerifyField<float>(verifier, VT_TESTF, 4) &&
  ------------------
  |  Branch (1969:12): [True: 622k, False: 28]
  ------------------
 1970|   622k|           VerifyField<float>(verifier, VT_TESTF2, 4) &&
  ------------------
  |  Branch (1970:12): [True: 622k, False: 12]
  ------------------
 1971|   622k|           VerifyField<float>(verifier, VT_TESTF3, 4) &&
  ------------------
  |  Branch (1971:12): [True: 622k, False: 10]
  ------------------
 1972|   622k|           VerifyOffset(verifier, VT_TESTARRAYOFSTRING2) &&
  ------------------
  |  Branch (1972:12): [True: 622k, False: 12]
  ------------------
 1973|   622k|           verifier.VerifyVector(testarrayofstring2()) &&
  ------------------
  |  Branch (1973:12): [True: 622k, False: 17]
  ------------------
 1974|   622k|           verifier.VerifyVectorOfStrings(testarrayofstring2()) &&
  ------------------
  |  Branch (1974:12): [True: 622k, False: 13]
  ------------------
 1975|   622k|           VerifyOffset(verifier, VT_TESTARRAYOFSORTEDSTRUCT) &&
  ------------------
  |  Branch (1975:12): [True: 622k, False: 10]
  ------------------
 1976|   622k|           verifier.VerifyVector(testarrayofsortedstruct()) &&
  ------------------
  |  Branch (1976:12): [True: 622k, False: 135]
  ------------------
 1977|   622k|           VerifyOffset(verifier, VT_FLEX) &&
  ------------------
  |  Branch (1977:12): [True: 622k, False: 6]
  ------------------
 1978|   622k|           verifier.VerifyVector(flex()) &&
  ------------------
  |  Branch (1978:12): [True: 622k, False: 16]
  ------------------
 1979|   622k|           flexbuffers::VerifyNestedFlexBuffer(flex(), verifier) &&
  ------------------
  |  Branch (1979:12): [True: 621k, False: 831]
  ------------------
 1980|   621k|           VerifyOffset(verifier, VT_TEST5) &&
  ------------------
  |  Branch (1980:12): [True: 621k, False: 67]
  ------------------
 1981|   621k|           verifier.VerifyVector(test5()) &&
  ------------------
  |  Branch (1981:12): [True: 621k, False: 24]
  ------------------
 1982|   621k|           VerifyOffset(verifier, VT_VECTOR_OF_LONGS) &&
  ------------------
  |  Branch (1982:12): [True: 621k, False: 16]
  ------------------
 1983|   621k|           verifier.VerifyVector(vector_of_longs()) &&
  ------------------
  |  Branch (1983:12): [True: 621k, False: 130]
  ------------------
 1984|   621k|           VerifyOffset(verifier, VT_VECTOR_OF_DOUBLES) &&
  ------------------
  |  Branch (1984:12): [True: 621k, False: 14]
  ------------------
 1985|   621k|           verifier.VerifyVector(vector_of_doubles()) &&
  ------------------
  |  Branch (1985:12): [True: 620k, False: 137]
  ------------------
 1986|   620k|           VerifyOffset(verifier, VT_PARENT_NAMESPACE_TEST) &&
  ------------------
  |  Branch (1986:12): [True: 620k, False: 8]
  ------------------
 1987|   620k|           verifier.VerifyTable(parent_namespace_test()) &&
  ------------------
  |  Branch (1987:12): [True: 620k, False: 7]
  ------------------
 1988|   620k|           VerifyOffset(verifier, VT_VECTOR_OF_REFERRABLES) &&
  ------------------
  |  Branch (1988:12): [True: 620k, False: 14]
  ------------------
 1989|   620k|           verifier.VerifyVector(vector_of_referrables()) &&
  ------------------
  |  Branch (1989:12): [True: 620k, False: 123]
  ------------------
 1990|   620k|           verifier.VerifyVectorOfTables(vector_of_referrables()) &&
  ------------------
  |  Branch (1990:12): [True: 620k, False: 73]
  ------------------
 1991|   620k|           VerifyField<uint64_t>(verifier, VT_SINGLE_WEAK_REFERENCE, 8) &&
  ------------------
  |  Branch (1991:12): [True: 620k, False: 11]
  ------------------
 1992|   620k|           VerifyOffset(verifier, VT_VECTOR_OF_WEAK_REFERENCES) &&
  ------------------
  |  Branch (1992:12): [True: 620k, False: 9]
  ------------------
 1993|   620k|           verifier.VerifyVector(vector_of_weak_references()) &&
  ------------------
  |  Branch (1993:12): [True: 620k, False: 103]
  ------------------
 1994|   620k|           VerifyOffset(verifier, VT_VECTOR_OF_STRONG_REFERRABLES) &&
  ------------------
  |  Branch (1994:12): [True: 620k, False: 7]
  ------------------
 1995|   620k|           verifier.VerifyVector(vector_of_strong_referrables()) &&
  ------------------
  |  Branch (1995:12): [True: 620k, False: 11]
  ------------------
 1996|   620k|           verifier.VerifyVectorOfTables(vector_of_strong_referrables()) &&
  ------------------
  |  Branch (1996:12): [True: 620k, False: 14]
  ------------------
 1997|   620k|           VerifyField<uint64_t>(verifier, VT_CO_OWNING_REFERENCE, 8) &&
  ------------------
  |  Branch (1997:12): [True: 620k, False: 10]
  ------------------
 1998|   620k|           VerifyOffset(verifier, VT_VECTOR_OF_CO_OWNING_REFERENCES) &&
  ------------------
  |  Branch (1998:12): [True: 620k, False: 6]
  ------------------
 1999|   620k|           verifier.VerifyVector(vector_of_co_owning_references()) &&
  ------------------
  |  Branch (1999:12): [True: 620k, False: 29]
  ------------------
 2000|   620k|           VerifyField<uint64_t>(verifier, VT_NON_OWNING_REFERENCE, 8) &&
  ------------------
  |  Branch (2000:12): [True: 620k, False: 12]
  ------------------
 2001|   620k|           VerifyOffset(verifier, VT_VECTOR_OF_NON_OWNING_REFERENCES) &&
  ------------------
  |  Branch (2001:12): [True: 620k, False: 5]
  ------------------
 2002|   620k|           verifier.VerifyVector(vector_of_non_owning_references()) &&
  ------------------
  |  Branch (2002:12): [True: 620k, False: 28]
  ------------------
 2003|   620k|           VerifyField<uint8_t>(verifier, VT_ANY_UNIQUE_TYPE, 1) &&
  ------------------
  |  Branch (2003:12): [True: 620k, False: 34]
  ------------------
 2004|   620k|           VerifyOffset(verifier, VT_ANY_UNIQUE) &&
  ------------------
  |  Branch (2004:12): [True: 620k, False: 13]
  ------------------
 2005|   620k|           VerifyAnyUniqueAliases(verifier, any_unique(), any_unique_type()) &&
  ------------------
  |  Branch (2005:12): [True: 620k, False: 140]
  ------------------
 2006|   620k|           VerifyField<uint8_t>(verifier, VT_ANY_AMBIGUOUS_TYPE, 1) &&
  ------------------
  |  Branch (2006:12): [True: 620k, False: 32]
  ------------------
 2007|   620k|           VerifyOffset(verifier, VT_ANY_AMBIGUOUS) &&
  ------------------
  |  Branch (2007:12): [True: 620k, False: 7]
  ------------------
 2008|   620k|           VerifyAnyAmbiguousAliases(verifier, any_ambiguous(), any_ambiguous_type()) &&
  ------------------
  |  Branch (2008:12): [True: 620k, False: 112]
  ------------------
 2009|   620k|           VerifyOffset(verifier, VT_VECTOR_OF_ENUMS) &&
  ------------------
  |  Branch (2009:12): [True: 620k, False: 32]
  ------------------
 2010|   620k|           verifier.VerifyVector(vector_of_enums()) &&
  ------------------
  |  Branch (2010:12): [True: 619k, False: 133]
  ------------------
 2011|   619k|           VerifyField<int8_t>(verifier, VT_SIGNED_ENUM, 1) &&
  ------------------
  |  Branch (2011:12): [True: 619k, False: 39]
  ------------------
 2012|   619k|           VerifyOffset(verifier, VT_TESTREQUIREDNESTEDFLATBUFFER) &&
  ------------------
  |  Branch (2012:12): [True: 619k, False: 11]
  ------------------
 2013|   619k|           verifier.VerifyVector(testrequirednestedflatbuffer()) &&
  ------------------
  |  Branch (2013:12): [True: 619k, False: 10]
  ------------------
 2014|   619k|           verifier.template VerifyNestedFlatBuffer<MyGame::Example::Monster>(testrequirednestedflatbuffer(), nullptr) &&
  ------------------
  |  Branch (2014:12): [True: 619k, False: 37]
  ------------------
 2015|   619k|           VerifyOffset(verifier, VT_SCALAR_KEY_SORTED_TABLES) &&
  ------------------
  |  Branch (2015:12): [True: 619k, False: 24]
  ------------------
 2016|   619k|           verifier.VerifyVector(scalar_key_sorted_tables()) &&
  ------------------
  |  Branch (2016:12): [True: 619k, False: 106]
  ------------------
 2017|   619k|           verifier.VerifyVectorOfTables(scalar_key_sorted_tables()) &&
  ------------------
  |  Branch (2017:12): [True: 619k, False: 142]
  ------------------
 2018|   619k|           VerifyField<MyGame::Example::Test>(verifier, VT_NATIVE_INLINE, 2) &&
  ------------------
  |  Branch (2018:12): [True: 619k, False: 52]
  ------------------
 2019|   619k|           VerifyField<uint64_t>(verifier, VT_LONG_ENUM_NON_ENUM_DEFAULT, 8) &&
  ------------------
  |  Branch (2019:12): [True: 619k, False: 17]
  ------------------
 2020|   619k|           VerifyField<uint64_t>(verifier, VT_LONG_ENUM_NORMAL_DEFAULT, 8) &&
  ------------------
  |  Branch (2020:12): [True: 619k, False: 11]
  ------------------
 2021|   619k|           VerifyField<float>(verifier, VT_NAN_DEFAULT, 4) &&
  ------------------
  |  Branch (2021:12): [True: 619k, False: 6]
  ------------------
 2022|   619k|           VerifyField<float>(verifier, VT_INF_DEFAULT, 4) &&
  ------------------
  |  Branch (2022:12): [True: 619k, False: 5]
  ------------------
 2023|   619k|           VerifyField<float>(verifier, VT_POSITIVE_INF_DEFAULT, 4) &&
  ------------------
  |  Branch (2023:12): [True: 619k, False: 6]
  ------------------
 2024|   619k|           VerifyField<float>(verifier, VT_INFINITY_DEFAULT, 4) &&
  ------------------
  |  Branch (2024:12): [True: 619k, False: 6]
  ------------------
 2025|   619k|           VerifyField<float>(verifier, VT_POSITIVE_INFINITY_DEFAULT, 4) &&
  ------------------
  |  Branch (2025:12): [True: 619k, False: 8]
  ------------------
 2026|   619k|           VerifyField<float>(verifier, VT_NEGATIVE_INF_DEFAULT, 4) &&
  ------------------
  |  Branch (2026:12): [True: 619k, False: 7]
  ------------------
 2027|   619k|           VerifyField<float>(verifier, VT_NEGATIVE_INFINITY_DEFAULT, 4) &&
  ------------------
  |  Branch (2027:12): [True: 619k, False: 5]
  ------------------
 2028|   619k|           VerifyField<double>(verifier, VT_DOUBLE_INF_DEFAULT, 8) &&
  ------------------
  |  Branch (2028:12): [True: 619k, False: 53]
  ------------------
 2029|   619k|           verifier.EndTable();
  ------------------
  |  Branch (2029:12): [True: 619k, False: 0]
  ------------------
 2030|   627k|  }
_ZNK6MyGame7Example7Monster4nameEv:
 1438|  1.25M|  const ::flatbuffers::String *name() const {
 1439|  1.25M|    return GetPointer<const ::flatbuffers::String *>(VT_NAME);
 1440|  1.25M|  }
_ZNK6MyGame7Example7Monster9inventoryEv:
 1456|  1.25M|  const ::flatbuffers::Vector<uint8_t> *inventory() const {
 1457|  1.25M|    return GetPointer<const ::flatbuffers::Vector<uint8_t> *>(VT_INVENTORY);
 1458|  1.25M|  }
_ZN6MyGame7Example9VerifyAnyILb0EEEbRN11flatbuffers16VerifierTemplateIXT_EEEPKvNS0_3AnyE:
 3455|   625k|inline bool VerifyAny(::flatbuffers::VerifierTemplate<B> &verifier, const void *obj, Any type) {
 3456|   625k|  switch (type) {
 3457|  44.0k|    case Any::NONE: {
  ------------------
  |  Branch (3457:5): [True: 44.0k, False: 581k]
  ------------------
 3458|  44.0k|      return true;
 3459|      0|    }
 3460|  3.15k|    case Any::Monster: {
  ------------------
  |  Branch (3460:5): [True: 3.15k, False: 622k]
  ------------------
 3461|  3.15k|      auto ptr = reinterpret_cast<const MyGame::Example::Monster *>(obj);
 3462|  3.15k|      return verifier.VerifyTable(ptr);
 3463|      0|    }
 3464|   459k|    case Any::TestSimpleTableWithEnum: {
  ------------------
  |  Branch (3464:5): [True: 459k, False: 166k]
  ------------------
 3465|   459k|      auto ptr = reinterpret_cast<const MyGame::Example::TestSimpleTableWithEnum *>(obj);
 3466|   459k|      return verifier.VerifyTable(ptr);
 3467|      0|    }
 3468|  14.6k|    case Any::MyGame_Example2_Monster: {
  ------------------
  |  Branch (3468:5): [True: 14.6k, False: 611k]
  ------------------
 3469|  14.6k|      auto ptr = reinterpret_cast<const MyGame::Example2::Monster *>(obj);
 3470|  14.6k|      return verifier.VerifyTable(ptr);
 3471|      0|    }
 3472|   104k|    default: return true;
  ------------------
  |  Branch (3472:5): [True: 104k, False: 520k]
  ------------------
 3473|   625k|  }
 3474|   625k|}
_ZNK6MyGame7Example23TestSimpleTableWithEnum6VerifyILb0EEEbRN11flatbuffers16VerifierTemplateIXT_EEE:
 1018|   456k|  bool Verify(::flatbuffers::VerifierTemplate<B> &verifier) const {
 1019|   456k|    return VerifyTableStart(verifier) &&
  ------------------
  |  Branch (1019:12): [True: 456k, False: 3]
  ------------------
 1020|   456k|           VerifyField<uint8_t>(verifier, VT_COLOR, 1) &&
  ------------------
  |  Branch (1020:12): [True: 456k, False: 79]
  ------------------
 1021|   456k|           verifier.EndTable();
  ------------------
  |  Branch (1021:12): [True: 456k, False: 0]
  ------------------
 1022|   456k|  }
_ZNK6MyGame8Example27Monster6VerifyILb0EEEbRN11flatbuffers16VerifierTemplateIXT_EEE:
  946|  14.6k|  bool Verify(::flatbuffers::VerifierTemplate<B> &verifier) const {
  947|  14.6k|    return VerifyTableStart(verifier) &&
  ------------------
  |  Branch (947:12): [True: 14.6k, False: 4]
  ------------------
  948|  14.6k|           verifier.EndTable();
  ------------------
  |  Branch (948:12): [True: 14.6k, False: 0]
  ------------------
  949|  14.6k|  }
_ZNK6MyGame7Example7Monster4testEv:
 1471|  1.25M|  const void *test() const {
 1472|  1.25M|    return GetPointer<const void *>(VT_TEST);
 1473|  1.25M|  }
_ZNK6MyGame7Example7Monster9test_typeEv:
 1468|  1.25M|  MyGame::Example::Any test_type() const {
 1469|  1.25M|    return static_cast<MyGame::Example::Any>(GetField<uint8_t>(VT_TEST_TYPE, 0));
 1470|  1.25M|  }
_ZNK6MyGame7Example7Monster5test4Ev:
 1497|  1.25M|  const ::flatbuffers::Vector<const MyGame::Example::Test *> *test4() const {
 1498|  1.25M|    return GetPointer<const ::flatbuffers::Vector<const MyGame::Example::Test *> *>(VT_TEST4);
 1499|  1.25M|  }
_ZNK6MyGame7Example7Monster17testarrayofstringEv:
 1503|  2.49M|  const ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *testarrayofstring() const {
 1504|  2.49M|    return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *>(VT_TESTARRAYOFSTRING);
 1505|  2.49M|  }
_ZNK6MyGame7Example7Monster17testarrayoftablesEv:
 1511|  2.49M|  const ::flatbuffers::Vector<::flatbuffers::Offset<MyGame::Example::Monster>> *testarrayoftables() const {
 1512|  2.49M|    return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<MyGame::Example::Monster>> *>(VT_TESTARRAYOFTABLES);
 1513|  2.49M|  }
_ZNK6MyGame7Example7Monster5enemyEv:
 1517|  1.24M|  const MyGame::Example::Monster *enemy() const {
 1518|  1.24M|    return GetPointer<const MyGame::Example::Monster *>(VT_ENEMY);
 1519|  1.24M|  }
_ZNK6MyGame7Example7Monster20testnestedflatbufferEv:
 1523|  2.49M|  const ::flatbuffers::Vector<uint8_t> *testnestedflatbuffer() const {
 1524|  2.49M|    return GetPointer<const ::flatbuffers::Vector<uint8_t> *>(VT_TESTNESTEDFLATBUFFER);
 1525|  2.49M|  }
_ZNK6MyGame7Example4Stat6VerifyILb0EEEbRN11flatbuffers16VerifierTemplateIXT_EEE:
 1120|  32.0k|  bool Verify(::flatbuffers::VerifierTemplate<B> &verifier) const {
 1121|  32.0k|    return VerifyTableStart(verifier) &&
  ------------------
  |  Branch (1121:12): [True: 31.9k, False: 54]
  ------------------
 1122|  31.9k|           VerifyOffset(verifier, VT_ID) &&
  ------------------
  |  Branch (1122:12): [True: 31.7k, False: 194]
  ------------------
 1123|  31.7k|           verifier.VerifyString(id()) &&
  ------------------
  |  Branch (1123:12): [True: 31.6k, False: 155]
  ------------------
 1124|  31.6k|           VerifyField<int64_t>(verifier, VT_VAL, 8) &&
  ------------------
  |  Branch (1124:12): [True: 31.5k, False: 47]
  ------------------
 1125|  31.5k|           VerifyField<uint16_t>(verifier, VT_COUNT, 2) &&
  ------------------
  |  Branch (1125:12): [True: 31.5k, False: 44]
  ------------------
 1126|  31.5k|           verifier.EndTable();
  ------------------
  |  Branch (1126:12): [True: 31.5k, False: 0]
  ------------------
 1127|  32.0k|  }
_ZNK6MyGame7Example4Stat2idEv:
 1088|  63.2k|  const ::flatbuffers::String *id() const {
 1089|  63.2k|    return GetPointer<const ::flatbuffers::String *>(VT_ID);
 1090|  63.2k|  }
_ZNK6MyGame7Example7Monster9testemptyEv:
 1534|  1.24M|  const MyGame::Example::Stat *testempty() const {
 1535|  1.24M|    return GetPointer<const MyGame::Example::Stat *>(VT_TESTEMPTY);
 1536|  1.24M|  }
_ZNK6MyGame7Example7Monster16testarrayofboolsEv:
 1594|  1.24M|  const ::flatbuffers::Vector<uint8_t> *testarrayofbools() const {
 1595|  1.24M|    return GetPointer<const ::flatbuffers::Vector<uint8_t> *>(VT_TESTARRAYOFBOOLS);
 1596|  1.24M|  }
_ZNK6MyGame7Example7Monster18testarrayofstring2Ev:
 1618|  2.48M|  const ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *testarrayofstring2() const {
 1619|  2.48M|    return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *>(VT_TESTARRAYOFSTRING2);
 1620|  2.48M|  }
_ZNK6MyGame7Example7Monster23testarrayofsortedstructEv:
 1624|  1.24M|  const ::flatbuffers::Vector<const MyGame::Example::Ability *> *testarrayofsortedstruct() const {
 1625|  1.24M|    return GetPointer<const ::flatbuffers::Vector<const MyGame::Example::Ability *> *>(VT_TESTARRAYOFSORTEDSTRUCT);
 1626|  1.24M|  }
_ZNK6MyGame7Example7Monster4flexEv:
 1630|  2.48M|  const ::flatbuffers::Vector<uint8_t> *flex() const {
 1631|  2.48M|    return GetPointer<const ::flatbuffers::Vector<uint8_t> *>(VT_FLEX);
 1632|  2.48M|  }
_ZNK6MyGame7Example7Monster5test5Ev:
 1641|  1.24M|  const ::flatbuffers::Vector<const MyGame::Example::Test *> *test5() const {
 1642|  1.24M|    return GetPointer<const ::flatbuffers::Vector<const MyGame::Example::Test *> *>(VT_TEST5);
 1643|  1.24M|  }
_ZNK6MyGame7Example7Monster15vector_of_longsEv:
 1647|  1.24M|  const ::flatbuffers::Vector<int64_t> *vector_of_longs() const {
 1648|  1.24M|    return GetPointer<const ::flatbuffers::Vector<int64_t> *>(VT_VECTOR_OF_LONGS);
 1649|  1.24M|  }
_ZNK6MyGame7Example7Monster17vector_of_doublesEv:
 1653|  1.24M|  const ::flatbuffers::Vector<double> *vector_of_doubles() const {
 1654|  1.24M|    return GetPointer<const ::flatbuffers::Vector<double> *>(VT_VECTOR_OF_DOUBLES);
 1655|  1.24M|  }
_ZNK6MyGame17InParentNamespace6VerifyILb0EEEbRN11flatbuffers16VerifierTemplateIXT_EEE:
  891|  7.05k|  bool Verify(::flatbuffers::VerifierTemplate<B> &verifier) const {
  892|  7.05k|    return VerifyTableStart(verifier) &&
  ------------------
  |  Branch (892:12): [True: 7.05k, False: 7]
  ------------------
  893|  7.05k|           verifier.EndTable();
  ------------------
  |  Branch (893:12): [True: 7.05k, False: 0]
  ------------------
  894|  7.05k|  }
_ZNK6MyGame7Example7Monster21parent_namespace_testEv:
 1659|  1.24M|  const MyGame::InParentNamespace *parent_namespace_test() const {
 1660|  1.24M|    return GetPointer<const MyGame::InParentNamespace *>(VT_PARENT_NAMESPACE_TEST);
 1661|  1.24M|  }
_ZNK6MyGame7Example7Monster21vector_of_referrablesEv:
 1665|  2.48M|  const ::flatbuffers::Vector<::flatbuffers::Offset<MyGame::Example::Referrable>> *vector_of_referrables() const {
 1666|  2.48M|    return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<MyGame::Example::Referrable>> *>(VT_VECTOR_OF_REFERRABLES);
 1667|  2.48M|  }
_ZNK6MyGame7Example10Referrable6VerifyILb0EEEbRN11flatbuffers16VerifierTemplateIXT_EEE:
 1232|  67.4k|  bool Verify(::flatbuffers::VerifierTemplate<B> &verifier) const {
 1233|  67.4k|    return VerifyTableStart(verifier) &&
  ------------------
  |  Branch (1233:12): [True: 67.4k, False: 45]
  ------------------
 1234|  67.4k|           VerifyField<uint64_t>(verifier, VT_ID, 8) &&
  ------------------
  |  Branch (1234:12): [True: 67.3k, False: 42]
  ------------------
 1235|  67.3k|           verifier.EndTable();
  ------------------
  |  Branch (1235:12): [True: 67.3k, False: 0]
  ------------------
 1236|  67.4k|  }
_ZNK6MyGame7Example7Monster25vector_of_weak_referencesEv:
 1677|  1.24M|  const ::flatbuffers::Vector<uint64_t> *vector_of_weak_references() const {
 1678|  1.24M|    return GetPointer<const ::flatbuffers::Vector<uint64_t> *>(VT_VECTOR_OF_WEAK_REFERENCES);
 1679|  1.24M|  }
_ZNK6MyGame7Example7Monster28vector_of_strong_referrablesEv:
 1683|  2.48M|  const ::flatbuffers::Vector<::flatbuffers::Offset<MyGame::Example::Referrable>> *vector_of_strong_referrables() const {
 1684|  2.48M|    return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<MyGame::Example::Referrable>> *>(VT_VECTOR_OF_STRONG_REFERRABLES);
 1685|  2.48M|  }
_ZNK6MyGame7Example7Monster30vector_of_co_owning_referencesEv:
 1695|  1.24M|  const ::flatbuffers::Vector<uint64_t> *vector_of_co_owning_references() const {
 1696|  1.24M|    return GetPointer<const ::flatbuffers::Vector<uint64_t> *>(VT_VECTOR_OF_CO_OWNING_REFERENCES);
 1697|  1.24M|  }
_ZNK6MyGame7Example7Monster31vector_of_non_owning_referencesEv:
 1707|  1.24M|  const ::flatbuffers::Vector<uint64_t> *vector_of_non_owning_references() const {
 1708|  1.24M|    return GetPointer<const ::flatbuffers::Vector<uint64_t> *>(VT_VECTOR_OF_NON_OWNING_REFERENCES);
 1709|  1.24M|  }
_ZN6MyGame7Example22VerifyAnyUniqueAliasesILb0EEEbRN11flatbuffers16VerifierTemplateIXT_EEEPKvNS0_16AnyUniqueAliasesE:
 3570|   620k|inline bool VerifyAnyUniqueAliases(::flatbuffers::VerifierTemplate<B> &verifier, const void *obj, AnyUniqueAliases type) {
 3571|   620k|  switch (type) {
 3572|   614k|    case AnyUniqueAliases::NONE: {
  ------------------
  |  Branch (3572:5): [True: 614k, False: 5.97k]
  ------------------
 3573|   614k|      return true;
 3574|      0|    }
 3575|    754|    case AnyUniqueAliases::M: {
  ------------------
  |  Branch (3575:5): [True: 754, False: 619k]
  ------------------
 3576|    754|      auto ptr = reinterpret_cast<const MyGame::Example::Monster *>(obj);
 3577|    754|      return verifier.VerifyTable(ptr);
 3578|      0|    }
 3579|  2.14k|    case AnyUniqueAliases::TS: {
  ------------------
  |  Branch (3579:5): [True: 2.14k, False: 618k]
  ------------------
 3580|  2.14k|      auto ptr = reinterpret_cast<const MyGame::Example::TestSimpleTableWithEnum *>(obj);
 3581|  2.14k|      return verifier.VerifyTable(ptr);
 3582|      0|    }
 3583|    875|    case AnyUniqueAliases::M2: {
  ------------------
  |  Branch (3583:5): [True: 875, False: 619k]
  ------------------
 3584|    875|      auto ptr = reinterpret_cast<const MyGame::Example2::Monster *>(obj);
 3585|    875|      return verifier.VerifyTable(ptr);
 3586|      0|    }
 3587|  2.21k|    default: return true;
  ------------------
  |  Branch (3587:5): [True: 2.21k, False: 618k]
  ------------------
 3588|   620k|  }
 3589|   620k|}
_ZNK6MyGame7Example7Monster10any_uniqueEv:
 1716|  1.24M|  const void *any_unique() const {
 1717|  1.24M|    return GetPointer<const void *>(VT_ANY_UNIQUE);
 1718|  1.24M|  }
_ZNK6MyGame7Example7Monster15any_unique_typeEv:
 1713|  1.24M|  MyGame::Example::AnyUniqueAliases any_unique_type() const {
 1714|  1.24M|    return static_cast<MyGame::Example::AnyUniqueAliases>(GetField<uint8_t>(VT_ANY_UNIQUE_TYPE, 0));
 1715|  1.24M|  }
_ZN6MyGame7Example25VerifyAnyAmbiguousAliasesILb0EEEbRN11flatbuffers16VerifierTemplateIXT_EEEPKvNS0_19AnyAmbiguousAliasesE:
 3685|   620k|inline bool VerifyAnyAmbiguousAliases(::flatbuffers::VerifierTemplate<B> &verifier, const void *obj, AnyAmbiguousAliases type) {
 3686|   620k|  switch (type) {
 3687|   616k|    case AnyAmbiguousAliases::NONE: {
  ------------------
  |  Branch (3687:5): [True: 616k, False: 4.14k]
  ------------------
 3688|   616k|      return true;
 3689|      0|    }
 3690|    515|    case AnyAmbiguousAliases::M1: {
  ------------------
  |  Branch (3690:5): [True: 515, False: 619k]
  ------------------
 3691|    515|      auto ptr = reinterpret_cast<const MyGame::Example::Monster *>(obj);
 3692|    515|      return verifier.VerifyTable(ptr);
 3693|      0|    }
 3694|    859|    case AnyAmbiguousAliases::M2: {
  ------------------
  |  Branch (3694:5): [True: 859, False: 619k]
  ------------------
 3695|    859|      auto ptr = reinterpret_cast<const MyGame::Example::Monster *>(obj);
 3696|    859|      return verifier.VerifyTable(ptr);
 3697|      0|    }
 3698|    560|    case AnyAmbiguousAliases::M3: {
  ------------------
  |  Branch (3698:5): [True: 560, False: 619k]
  ------------------
 3699|    560|      auto ptr = reinterpret_cast<const MyGame::Example::Monster *>(obj);
 3700|    560|      return verifier.VerifyTable(ptr);
 3701|      0|    }
 3702|  2.21k|    default: return true;
  ------------------
  |  Branch (3702:5): [True: 2.21k, False: 618k]
  ------------------
 3703|   620k|  }
 3704|   620k|}
_ZNK6MyGame7Example7Monster13any_ambiguousEv:
 1745|  1.23M|  const void *any_ambiguous() const {
 1746|  1.23M|    return GetPointer<const void *>(VT_ANY_AMBIGUOUS);
 1747|  1.23M|  }
_ZNK6MyGame7Example7Monster18any_ambiguous_typeEv:
 1742|  1.23M|  MyGame::Example::AnyAmbiguousAliases any_ambiguous_type() const {
 1743|  1.23M|    return static_cast<MyGame::Example::AnyAmbiguousAliases>(GetField<uint8_t>(VT_ANY_AMBIGUOUS_TYPE, 0));
 1744|  1.23M|  }
_ZNK6MyGame7Example7Monster15vector_of_enumsEv:
 1769|  1.23M|  const ::flatbuffers::Vector<MyGame::Example::Color> *vector_of_enums() const {
 1770|  1.23M|    return GetPointer<const ::flatbuffers::Vector<MyGame::Example::Color> *>(VT_VECTOR_OF_ENUMS);
 1771|  1.23M|  }
_ZNK6MyGame7Example7Monster28testrequirednestedflatbufferEv:
 1781|  2.47M|  const ::flatbuffers::Vector<uint8_t> *testrequirednestedflatbuffer() const {
 1782|  2.47M|    return GetPointer<const ::flatbuffers::Vector<uint8_t> *>(VT_TESTREQUIREDNESTEDFLATBUFFER);
 1783|  2.47M|  }
_ZNK6MyGame7Example7Monster24scalar_key_sorted_tablesEv:
 1792|  2.47M|  const ::flatbuffers::Vector<::flatbuffers::Offset<MyGame::Example::Stat>> *scalar_key_sorted_tables() const {
 1793|  2.47M|    return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<MyGame::Example::Stat>> *>(VT_SCALAR_KEY_SORTED_TABLES);
 1794|  2.47M|  }
_ZN6MyGame7Example17MonsterIdentifierEv:
 4302|  12.7k|inline const char *MonsterIdentifier() {
 4303|  12.7k|  return "MONS";
 4304|  12.7k|}
_ZN6MyGame7Example19VerifyMonsterBufferILb1EEEbRN11flatbuffers16VerifierTemplateIXT_EEE:
 4318|  6.37k|    ::flatbuffers::VerifierTemplate<B> &verifier) {
 4319|  6.37k|  return verifier.template VerifyBuffer<MyGame::Example::Monster>(MonsterIdentifier());
 4320|  6.37k|}
_ZNK6MyGame7Example7Monster6VerifyILb1EEEbRN11flatbuffers16VerifierTemplateIXT_EEE:
 1930|   626k|  bool Verify(::flatbuffers::VerifierTemplate<B> &verifier) const {
 1931|   626k|    return VerifyTableStart(verifier) &&
  ------------------
  |  Branch (1931:12): [True: 626k, False: 457]
  ------------------
 1932|   626k|           VerifyField<MyGame::Example::Vec3>(verifier, VT_POS, 8) &&
  ------------------
  |  Branch (1932:12): [True: 625k, False: 67]
  ------------------
 1933|   625k|           VerifyField<int16_t>(verifier, VT_MANA, 2) &&
  ------------------
  |  Branch (1933:12): [True: 625k, False: 35]
  ------------------
 1934|   625k|           VerifyField<int16_t>(verifier, VT_HP, 2) &&
  ------------------
  |  Branch (1934:12): [True: 625k, False: 38]
  ------------------
 1935|   625k|           VerifyOffsetRequired(verifier, VT_NAME) &&
  ------------------
  |  Branch (1935:12): [True: 625k, False: 259]
  ------------------
 1936|   625k|           verifier.VerifyString(name()) &&
  ------------------
  |  Branch (1936:12): [True: 625k, False: 163]
  ------------------
 1937|   625k|           VerifyOffset(verifier, VT_INVENTORY) &&
  ------------------
  |  Branch (1937:12): [True: 625k, False: 105]
  ------------------
 1938|   625k|           verifier.VerifyVector(inventory()) &&
  ------------------
  |  Branch (1938:12): [True: 625k, False: 107]
  ------------------
 1939|   625k|           VerifyField<uint8_t>(verifier, VT_COLOR, 1) &&
  ------------------
  |  Branch (1939:12): [True: 625k, False: 33]
  ------------------
 1940|   625k|           VerifyField<uint8_t>(verifier, VT_TEST_TYPE, 1) &&
  ------------------
  |  Branch (1940:12): [True: 625k, False: 29]
  ------------------
 1941|   625k|           VerifyOffset(verifier, VT_TEST) &&
  ------------------
  |  Branch (1941:12): [True: 625k, False: 11]
  ------------------
 1942|   625k|           VerifyAny(verifier, test(), test_type()) &&
  ------------------
  |  Branch (1942:12): [True: 624k, False: 276]
  ------------------
 1943|   624k|           VerifyOffset(verifier, VT_TEST4) &&
  ------------------
  |  Branch (1943:12): [True: 624k, False: 8]
  ------------------
 1944|   624k|           verifier.VerifyVector(test4()) &&
  ------------------
  |  Branch (1944:12): [True: 624k, False: 128]
  ------------------
 1945|   624k|           VerifyOffset(verifier, VT_TESTARRAYOFSTRING) &&
  ------------------
  |  Branch (1945:12): [True: 624k, False: 21]
  ------------------
 1946|   624k|           verifier.VerifyVector(testarrayofstring()) &&
  ------------------
  |  Branch (1946:12): [True: 624k, False: 129]
  ------------------
 1947|   624k|           verifier.VerifyVectorOfStrings(testarrayofstring()) &&
  ------------------
  |  Branch (1947:12): [True: 624k, False: 181]
  ------------------
 1948|   624k|           VerifyOffset(verifier, VT_TESTARRAYOFTABLES) &&
  ------------------
  |  Branch (1948:12): [True: 624k, False: 14]
  ------------------
 1949|   624k|           verifier.VerifyVector(testarrayoftables()) &&
  ------------------
  |  Branch (1949:12): [True: 624k, False: 124]
  ------------------
 1950|   624k|           verifier.VerifyVectorOfTables(testarrayoftables()) &&
  ------------------
  |  Branch (1950:12): [True: 622k, False: 1.49k]
  ------------------
 1951|   622k|           VerifyOffset(verifier, VT_ENEMY) &&
  ------------------
  |  Branch (1951:12): [True: 622k, False: 87]
  ------------------
 1952|   622k|           verifier.VerifyTable(enemy()) &&
  ------------------
  |  Branch (1952:12): [True: 622k, False: 118]
  ------------------
 1953|   622k|           VerifyOffset(verifier, VT_TESTNESTEDFLATBUFFER) &&
  ------------------
  |  Branch (1953:12): [True: 622k, False: 25]
  ------------------
 1954|   622k|           verifier.VerifyVector(testnestedflatbuffer()) &&
  ------------------
  |  Branch (1954:12): [True: 622k, False: 9]
  ------------------
 1955|   622k|           verifier.template VerifyNestedFlatBuffer<MyGame::Example::Monster>(testnestedflatbuffer(), nullptr) &&
  ------------------
  |  Branch (1955:12): [True: 622k, False: 306]
  ------------------
 1956|   622k|           VerifyOffset(verifier, VT_TESTEMPTY) &&
  ------------------
  |  Branch (1956:12): [True: 622k, False: 5]
  ------------------
 1957|   622k|           verifier.VerifyTable(testempty()) &&
  ------------------
  |  Branch (1957:12): [True: 621k, False: 352]
  ------------------
 1958|   621k|           VerifyField<uint8_t>(verifier, VT_TESTBOOL, 1) &&
  ------------------
  |  Branch (1958:12): [True: 621k, False: 24]
  ------------------
 1959|   621k|           VerifyField<int32_t>(verifier, VT_TESTHASHS32_FNV1, 4) &&
  ------------------
  |  Branch (1959:12): [True: 621k, False: 29]
  ------------------
 1960|   621k|           VerifyField<uint32_t>(verifier, VT_TESTHASHU32_FNV1, 4) &&
  ------------------
  |  Branch (1960:12): [True: 621k, False: 40]
  ------------------
 1961|   621k|           VerifyField<int64_t>(verifier, VT_TESTHASHS64_FNV1, 8) &&
  ------------------
  |  Branch (1961:12): [True: 621k, False: 41]
  ------------------
 1962|   621k|           VerifyField<uint64_t>(verifier, VT_TESTHASHU64_FNV1, 8) &&
  ------------------
  |  Branch (1962:12): [True: 621k, False: 34]
  ------------------
 1963|   621k|           VerifyField<int32_t>(verifier, VT_TESTHASHS32_FNV1A, 4) &&
  ------------------
  |  Branch (1963:12): [True: 621k, False: 12]
  ------------------
 1964|   621k|           VerifyField<uint32_t>(verifier, VT_TESTHASHU32_FNV1A, 4) &&
  ------------------
  |  Branch (1964:12): [True: 621k, False: 14]
  ------------------
 1965|   621k|           VerifyField<int64_t>(verifier, VT_TESTHASHS64_FNV1A, 8) &&
  ------------------
  |  Branch (1965:12): [True: 621k, False: 18]
  ------------------
 1966|   621k|           VerifyField<uint64_t>(verifier, VT_TESTHASHU64_FNV1A, 8) &&
  ------------------
  |  Branch (1966:12): [True: 621k, False: 18]
  ------------------
 1967|   621k|           VerifyOffset(verifier, VT_TESTARRAYOFBOOLS) &&
  ------------------
  |  Branch (1967:12): [True: 621k, False: 6]
  ------------------
 1968|   621k|           verifier.VerifyVector(testarrayofbools()) &&
  ------------------
  |  Branch (1968:12): [True: 621k, False: 12]
  ------------------
 1969|   621k|           VerifyField<float>(verifier, VT_TESTF, 4) &&
  ------------------
  |  Branch (1969:12): [True: 621k, False: 28]
  ------------------
 1970|   621k|           VerifyField<float>(verifier, VT_TESTF2, 4) &&
  ------------------
  |  Branch (1970:12): [True: 621k, False: 12]
  ------------------
 1971|   621k|           VerifyField<float>(verifier, VT_TESTF3, 4) &&
  ------------------
  |  Branch (1971:12): [True: 621k, False: 10]
  ------------------
 1972|   621k|           VerifyOffset(verifier, VT_TESTARRAYOFSTRING2) &&
  ------------------
  |  Branch (1972:12): [True: 621k, False: 12]
  ------------------
 1973|   621k|           verifier.VerifyVector(testarrayofstring2()) &&
  ------------------
  |  Branch (1973:12): [True: 621k, False: 16]
  ------------------
 1974|   621k|           verifier.VerifyVectorOfStrings(testarrayofstring2()) &&
  ------------------
  |  Branch (1974:12): [True: 621k, False: 13]
  ------------------
 1975|   621k|           VerifyOffset(verifier, VT_TESTARRAYOFSORTEDSTRUCT) &&
  ------------------
  |  Branch (1975:12): [True: 621k, False: 10]
  ------------------
 1976|   621k|           verifier.VerifyVector(testarrayofsortedstruct()) &&
  ------------------
  |  Branch (1976:12): [True: 621k, False: 135]
  ------------------
 1977|   621k|           VerifyOffset(verifier, VT_FLEX) &&
  ------------------
  |  Branch (1977:12): [True: 621k, False: 6]
  ------------------
 1978|   621k|           verifier.VerifyVector(flex()) &&
  ------------------
  |  Branch (1978:12): [True: 621k, False: 16]
  ------------------
 1979|   621k|           flexbuffers::VerifyNestedFlexBuffer(flex(), verifier) &&
  ------------------
  |  Branch (1979:12): [True: 620k, False: 699]
  ------------------
 1980|   620k|           VerifyOffset(verifier, VT_TEST5) &&
  ------------------
  |  Branch (1980:12): [True: 620k, False: 48]
  ------------------
 1981|   620k|           verifier.VerifyVector(test5()) &&
  ------------------
  |  Branch (1981:12): [True: 620k, False: 24]
  ------------------
 1982|   620k|           VerifyOffset(verifier, VT_VECTOR_OF_LONGS) &&
  ------------------
  |  Branch (1982:12): [True: 620k, False: 16]
  ------------------
 1983|   620k|           verifier.VerifyVector(vector_of_longs()) &&
  ------------------
  |  Branch (1983:12): [True: 620k, False: 130]
  ------------------
 1984|   620k|           VerifyOffset(verifier, VT_VECTOR_OF_DOUBLES) &&
  ------------------
  |  Branch (1984:12): [True: 620k, False: 14]
  ------------------
 1985|   620k|           verifier.VerifyVector(vector_of_doubles()) &&
  ------------------
  |  Branch (1985:12): [True: 620k, False: 136]
  ------------------
 1986|   620k|           VerifyOffset(verifier, VT_PARENT_NAMESPACE_TEST) &&
  ------------------
  |  Branch (1986:12): [True: 620k, False: 8]
  ------------------
 1987|   620k|           verifier.VerifyTable(parent_namespace_test()) &&
  ------------------
  |  Branch (1987:12): [True: 620k, False: 7]
  ------------------
 1988|   620k|           VerifyOffset(verifier, VT_VECTOR_OF_REFERRABLES) &&
  ------------------
  |  Branch (1988:12): [True: 620k, False: 14]
  ------------------
 1989|   620k|           verifier.VerifyVector(vector_of_referrables()) &&
  ------------------
  |  Branch (1989:12): [True: 620k, False: 123]
  ------------------
 1990|   620k|           verifier.VerifyVectorOfTables(vector_of_referrables()) &&
  ------------------
  |  Branch (1990:12): [True: 620k, False: 73]
  ------------------
 1991|   620k|           VerifyField<uint64_t>(verifier, VT_SINGLE_WEAK_REFERENCE, 8) &&
  ------------------
  |  Branch (1991:12): [True: 620k, False: 11]
  ------------------
 1992|   620k|           VerifyOffset(verifier, VT_VECTOR_OF_WEAK_REFERENCES) &&
  ------------------
  |  Branch (1992:12): [True: 620k, False: 9]
  ------------------
 1993|   620k|           verifier.VerifyVector(vector_of_weak_references()) &&
  ------------------
  |  Branch (1993:12): [True: 619k, False: 103]
  ------------------
 1994|   619k|           VerifyOffset(verifier, VT_VECTOR_OF_STRONG_REFERRABLES) &&
  ------------------
  |  Branch (1994:12): [True: 619k, False: 7]
  ------------------
 1995|   619k|           verifier.VerifyVector(vector_of_strong_referrables()) &&
  ------------------
  |  Branch (1995:12): [True: 619k, False: 11]
  ------------------
 1996|   619k|           verifier.VerifyVectorOfTables(vector_of_strong_referrables()) &&
  ------------------
  |  Branch (1996:12): [True: 619k, False: 14]
  ------------------
 1997|   619k|           VerifyField<uint64_t>(verifier, VT_CO_OWNING_REFERENCE, 8) &&
  ------------------
  |  Branch (1997:12): [True: 619k, False: 10]
  ------------------
 1998|   619k|           VerifyOffset(verifier, VT_VECTOR_OF_CO_OWNING_REFERENCES) &&
  ------------------
  |  Branch (1998:12): [True: 619k, False: 6]
  ------------------
 1999|   619k|           verifier.VerifyVector(vector_of_co_owning_references()) &&
  ------------------
  |  Branch (1999:12): [True: 619k, False: 29]
  ------------------
 2000|   619k|           VerifyField<uint64_t>(verifier, VT_NON_OWNING_REFERENCE, 8) &&
  ------------------
  |  Branch (2000:12): [True: 619k, False: 12]
  ------------------
 2001|   619k|           VerifyOffset(verifier, VT_VECTOR_OF_NON_OWNING_REFERENCES) &&
  ------------------
  |  Branch (2001:12): [True: 619k, False: 5]
  ------------------
 2002|   619k|           verifier.VerifyVector(vector_of_non_owning_references()) &&
  ------------------
  |  Branch (2002:12): [True: 619k, False: 28]
  ------------------
 2003|   619k|           VerifyField<uint8_t>(verifier, VT_ANY_UNIQUE_TYPE, 1) &&
  ------------------
  |  Branch (2003:12): [True: 619k, False: 34]
  ------------------
 2004|   619k|           VerifyOffset(verifier, VT_ANY_UNIQUE) &&
  ------------------
  |  Branch (2004:12): [True: 619k, False: 13]
  ------------------
 2005|   619k|           VerifyAnyUniqueAliases(verifier, any_unique(), any_unique_type()) &&
  ------------------
  |  Branch (2005:12): [True: 619k, False: 140]
  ------------------
 2006|   619k|           VerifyField<uint8_t>(verifier, VT_ANY_AMBIGUOUS_TYPE, 1) &&
  ------------------
  |  Branch (2006:12): [True: 619k, False: 32]
  ------------------
 2007|   619k|           VerifyOffset(verifier, VT_ANY_AMBIGUOUS) &&
  ------------------
  |  Branch (2007:12): [True: 619k, False: 7]
  ------------------
 2008|   619k|           VerifyAnyAmbiguousAliases(verifier, any_ambiguous(), any_ambiguous_type()) &&
  ------------------
  |  Branch (2008:12): [True: 619k, False: 112]
  ------------------
 2009|   619k|           VerifyOffset(verifier, VT_VECTOR_OF_ENUMS) &&
  ------------------
  |  Branch (2009:12): [True: 619k, False: 32]
  ------------------
 2010|   619k|           verifier.VerifyVector(vector_of_enums()) &&
  ------------------
  |  Branch (2010:12): [True: 619k, False: 133]
  ------------------
 2011|   619k|           VerifyField<int8_t>(verifier, VT_SIGNED_ENUM, 1) &&
  ------------------
  |  Branch (2011:12): [True: 619k, False: 39]
  ------------------
 2012|   619k|           VerifyOffset(verifier, VT_TESTREQUIREDNESTEDFLATBUFFER) &&
  ------------------
  |  Branch (2012:12): [True: 619k, False: 11]
  ------------------
 2013|   619k|           verifier.VerifyVector(testrequirednestedflatbuffer()) &&
  ------------------
  |  Branch (2013:12): [True: 619k, False: 10]
  ------------------
 2014|   619k|           verifier.template VerifyNestedFlatBuffer<MyGame::Example::Monster>(testrequirednestedflatbuffer(), nullptr) &&
  ------------------
  |  Branch (2014:12): [True: 619k, False: 37]
  ------------------
 2015|   619k|           VerifyOffset(verifier, VT_SCALAR_KEY_SORTED_TABLES) &&
  ------------------
  |  Branch (2015:12): [True: 619k, False: 24]
  ------------------
 2016|   619k|           verifier.VerifyVector(scalar_key_sorted_tables()) &&
  ------------------
  |  Branch (2016:12): [True: 619k, False: 106]
  ------------------
 2017|   619k|           verifier.VerifyVectorOfTables(scalar_key_sorted_tables()) &&
  ------------------
  |  Branch (2017:12): [True: 618k, False: 142]
  ------------------
 2018|   618k|           VerifyField<MyGame::Example::Test>(verifier, VT_NATIVE_INLINE, 2) &&
  ------------------
  |  Branch (2018:12): [True: 618k, False: 52]
  ------------------
 2019|   618k|           VerifyField<uint64_t>(verifier, VT_LONG_ENUM_NON_ENUM_DEFAULT, 8) &&
  ------------------
  |  Branch (2019:12): [True: 618k, False: 17]
  ------------------
 2020|   618k|           VerifyField<uint64_t>(verifier, VT_LONG_ENUM_NORMAL_DEFAULT, 8) &&
  ------------------
  |  Branch (2020:12): [True: 618k, False: 11]
  ------------------
 2021|   618k|           VerifyField<float>(verifier, VT_NAN_DEFAULT, 4) &&
  ------------------
  |  Branch (2021:12): [True: 618k, False: 6]
  ------------------
 2022|   618k|           VerifyField<float>(verifier, VT_INF_DEFAULT, 4) &&
  ------------------
  |  Branch (2022:12): [True: 618k, False: 5]
  ------------------
 2023|   618k|           VerifyField<float>(verifier, VT_POSITIVE_INF_DEFAULT, 4) &&
  ------------------
  |  Branch (2023:12): [True: 618k, False: 6]
  ------------------
 2024|   618k|           VerifyField<float>(verifier, VT_INFINITY_DEFAULT, 4) &&
  ------------------
  |  Branch (2024:12): [True: 618k, False: 6]
  ------------------
 2025|   618k|           VerifyField<float>(verifier, VT_POSITIVE_INFINITY_DEFAULT, 4) &&
  ------------------
  |  Branch (2025:12): [True: 618k, False: 8]
  ------------------
 2026|   618k|           VerifyField<float>(verifier, VT_NEGATIVE_INF_DEFAULT, 4) &&
  ------------------
  |  Branch (2026:12): [True: 618k, False: 7]
  ------------------
 2027|   618k|           VerifyField<float>(verifier, VT_NEGATIVE_INFINITY_DEFAULT, 4) &&
  ------------------
  |  Branch (2027:12): [True: 618k, False: 5]
  ------------------
 2028|   618k|           VerifyField<double>(verifier, VT_DOUBLE_INF_DEFAULT, 8) &&
  ------------------
  |  Branch (2028:12): [True: 618k, False: 53]
  ------------------
 2029|   618k|           verifier.EndTable();
  ------------------
  |  Branch (2029:12): [True: 618k, False: 0]
  ------------------
 2030|   626k|  }
_ZN6MyGame7Example9VerifyAnyILb1EEEbRN11flatbuffers16VerifierTemplateIXT_EEEPKvNS0_3AnyE:
 3455|   625k|inline bool VerifyAny(::flatbuffers::VerifierTemplate<B> &verifier, const void *obj, Any type) {
 3456|   625k|  switch (type) {
 3457|  43.4k|    case Any::NONE: {
  ------------------
  |  Branch (3457:5): [True: 43.4k, False: 581k]
  ------------------
 3458|  43.4k|      return true;
 3459|      0|    }
 3460|  3.14k|    case Any::Monster: {
  ------------------
  |  Branch (3460:5): [True: 3.14k, False: 622k]
  ------------------
 3461|  3.14k|      auto ptr = reinterpret_cast<const MyGame::Example::Monster *>(obj);
 3462|  3.14k|      return verifier.VerifyTable(ptr);
 3463|      0|    }
 3464|   459k|    case Any::TestSimpleTableWithEnum: {
  ------------------
  |  Branch (3464:5): [True: 459k, False: 166k]
  ------------------
 3465|   459k|      auto ptr = reinterpret_cast<const MyGame::Example::TestSimpleTableWithEnum *>(obj);
 3466|   459k|      return verifier.VerifyTable(ptr);
 3467|      0|    }
 3468|  14.6k|    case Any::MyGame_Example2_Monster: {
  ------------------
  |  Branch (3468:5): [True: 14.6k, False: 610k]
  ------------------
 3469|  14.6k|      auto ptr = reinterpret_cast<const MyGame::Example2::Monster *>(obj);
 3470|  14.6k|      return verifier.VerifyTable(ptr);
 3471|      0|    }
 3472|   104k|    default: return true;
  ------------------
  |  Branch (3472:5): [True: 104k, False: 520k]
  ------------------
 3473|   625k|  }
 3474|   625k|}
_ZNK6MyGame7Example23TestSimpleTableWithEnum6VerifyILb1EEEbRN11flatbuffers16VerifierTemplateIXT_EEE:
 1018|   456k|  bool Verify(::flatbuffers::VerifierTemplate<B> &verifier) const {
 1019|   456k|    return VerifyTableStart(verifier) &&
  ------------------
  |  Branch (1019:12): [True: 456k, False: 3]
  ------------------
 1020|   456k|           VerifyField<uint8_t>(verifier, VT_COLOR, 1) &&
  ------------------
  |  Branch (1020:12): [True: 456k, False: 79]
  ------------------
 1021|   456k|           verifier.EndTable();
  ------------------
  |  Branch (1021:12): [True: 456k, False: 0]
  ------------------
 1022|   456k|  }
_ZNK6MyGame8Example27Monster6VerifyILb1EEEbRN11flatbuffers16VerifierTemplateIXT_EEE:
  946|  14.6k|  bool Verify(::flatbuffers::VerifierTemplate<B> &verifier) const {
  947|  14.6k|    return VerifyTableStart(verifier) &&
  ------------------
  |  Branch (947:12): [True: 14.6k, False: 4]
  ------------------
  948|  14.6k|           verifier.EndTable();
  ------------------
  |  Branch (948:12): [True: 14.6k, False: 0]
  ------------------
  949|  14.6k|  }
_ZNK6MyGame7Example4Stat6VerifyILb1EEEbRN11flatbuffers16VerifierTemplateIXT_EEE:
 1120|  31.7k|  bool Verify(::flatbuffers::VerifierTemplate<B> &verifier) const {
 1121|  31.7k|    return VerifyTableStart(verifier) &&
  ------------------
  |  Branch (1121:12): [True: 31.6k, False: 54]
  ------------------
 1122|  31.6k|           VerifyOffset(verifier, VT_ID) &&
  ------------------
  |  Branch (1122:12): [True: 31.4k, False: 194]
  ------------------
 1123|  31.4k|           verifier.VerifyString(id()) &&
  ------------------
  |  Branch (1123:12): [True: 31.3k, False: 155]
  ------------------
 1124|  31.3k|           VerifyField<int64_t>(verifier, VT_VAL, 8) &&
  ------------------
  |  Branch (1124:12): [True: 31.2k, False: 47]
  ------------------
 1125|  31.2k|           VerifyField<uint16_t>(verifier, VT_COUNT, 2) &&
  ------------------
  |  Branch (1125:12): [True: 31.2k, False: 44]
  ------------------
 1126|  31.2k|           verifier.EndTable();
  ------------------
  |  Branch (1126:12): [True: 31.2k, False: 0]
  ------------------
 1127|  31.7k|  }
_ZNK6MyGame17InParentNamespace6VerifyILb1EEEbRN11flatbuffers16VerifierTemplateIXT_EEE:
  891|  7.05k|  bool Verify(::flatbuffers::VerifierTemplate<B> &verifier) const {
  892|  7.05k|    return VerifyTableStart(verifier) &&
  ------------------
  |  Branch (892:12): [True: 7.05k, False: 7]
  ------------------
  893|  7.05k|           verifier.EndTable();
  ------------------
  |  Branch (893:12): [True: 7.05k, False: 0]
  ------------------
  894|  7.05k|  }
_ZNK6MyGame7Example10Referrable6VerifyILb1EEEbRN11flatbuffers16VerifierTemplateIXT_EEE:
 1232|  67.4k|  bool Verify(::flatbuffers::VerifierTemplate<B> &verifier) const {
 1233|  67.4k|    return VerifyTableStart(verifier) &&
  ------------------
  |  Branch (1233:12): [True: 67.4k, False: 45]
  ------------------
 1234|  67.4k|           VerifyField<uint64_t>(verifier, VT_ID, 8) &&
  ------------------
  |  Branch (1234:12): [True: 67.3k, False: 42]
  ------------------
 1235|  67.3k|           verifier.EndTable();
  ------------------
  |  Branch (1235:12): [True: 67.3k, False: 0]
  ------------------
 1236|  67.4k|  }
_ZN6MyGame7Example22VerifyAnyUniqueAliasesILb1EEEbRN11flatbuffers16VerifierTemplateIXT_EEEPKvNS0_16AnyUniqueAliasesE:
 3570|   619k|inline bool VerifyAnyUniqueAliases(::flatbuffers::VerifierTemplate<B> &verifier, const void *obj, AnyUniqueAliases type) {
 3571|   619k|  switch (type) {
 3572|   613k|    case AnyUniqueAliases::NONE: {
  ------------------
  |  Branch (3572:5): [True: 613k, False: 5.97k]
  ------------------
 3573|   613k|      return true;
 3574|      0|    }
 3575|    754|    case AnyUniqueAliases::M: {
  ------------------
  |  Branch (3575:5): [True: 754, False: 619k]
  ------------------
 3576|    754|      auto ptr = reinterpret_cast<const MyGame::Example::Monster *>(obj);
 3577|    754|      return verifier.VerifyTable(ptr);
 3578|      0|    }
 3579|  2.14k|    case AnyUniqueAliases::TS: {
  ------------------
  |  Branch (3579:5): [True: 2.14k, False: 617k]
  ------------------
 3580|  2.14k|      auto ptr = reinterpret_cast<const MyGame::Example::TestSimpleTableWithEnum *>(obj);
 3581|  2.14k|      return verifier.VerifyTable(ptr);
 3582|      0|    }
 3583|    875|    case AnyUniqueAliases::M2: {
  ------------------
  |  Branch (3583:5): [True: 875, False: 618k]
  ------------------
 3584|    875|      auto ptr = reinterpret_cast<const MyGame::Example2::Monster *>(obj);
 3585|    875|      return verifier.VerifyTable(ptr);
 3586|      0|    }
 3587|  2.21k|    default: return true;
  ------------------
  |  Branch (3587:5): [True: 2.21k, False: 617k]
  ------------------
 3588|   619k|  }
 3589|   619k|}
_ZN6MyGame7Example25VerifyAnyAmbiguousAliasesILb1EEEbRN11flatbuffers16VerifierTemplateIXT_EEEPKvNS0_19AnyAmbiguousAliasesE:
 3685|   619k|inline bool VerifyAnyAmbiguousAliases(::flatbuffers::VerifierTemplate<B> &verifier, const void *obj, AnyAmbiguousAliases type) {
 3686|   619k|  switch (type) {
 3687|   615k|    case AnyAmbiguousAliases::NONE: {
  ------------------
  |  Branch (3687:5): [True: 615k, False: 4.14k]
  ------------------
 3688|   615k|      return true;
 3689|      0|    }
 3690|    515|    case AnyAmbiguousAliases::M1: {
  ------------------
  |  Branch (3690:5): [True: 515, False: 619k]
  ------------------
 3691|    515|      auto ptr = reinterpret_cast<const MyGame::Example::Monster *>(obj);
 3692|    515|      return verifier.VerifyTable(ptr);
 3693|      0|    }
 3694|    859|    case AnyAmbiguousAliases::M2: {
  ------------------
  |  Branch (3694:5): [True: 859, False: 618k]
  ------------------
 3695|    859|      auto ptr = reinterpret_cast<const MyGame::Example::Monster *>(obj);
 3696|    859|      return verifier.VerifyTable(ptr);
 3697|      0|    }
 3698|    560|    case AnyAmbiguousAliases::M3: {
  ------------------
  |  Branch (3698:5): [True: 560, False: 619k]
  ------------------
 3699|    560|      auto ptr = reinterpret_cast<const MyGame::Example::Monster *>(obj);
 3700|    560|      return verifier.VerifyTable(ptr);
 3701|      0|    }
 3702|  2.21k|    default: return true;
  ------------------
  |  Branch (3702:5): [True: 2.21k, False: 617k]
  ------------------
 3703|   619k|  }
 3704|   619k|}

LLVMFuzzerTestOneInput:
   11|  6.37k|extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
   12|  6.37k|  flatbuffers::Verifier verifier(data, size);
   13|  6.37k|  MyGame::Example::VerifyMonsterBuffer(verifier);
   14|  6.37k|  flatbuffers::SizeVerifier size_verifier(data, size);
   15|  6.37k|  MyGame::Example::VerifyMonsterBuffer(size_verifier);
   16|  6.37k|  return 0;
   17|  6.37k|}

